From 6e265eb693d20a7e04b3776ec02fcdcc8048a857 Mon Sep 17 00:00:00 2001
From: Yarmo Mackenbach <yarmo@yarmo.eu>
Date: Mon, 28 Mar 2022 00:37:33 +0200
Subject: [PATCH] Release 0.15.6

---
 CHANGELOG.md     |     2 +
 dist/doip.js     | 13349 ++++++++++++++++++++++++++++++++++++++++++++-
 dist/doip.min.js |     2 +-
 package.json     |     2 +-
 4 files changed, 13351 insertions(+), 4 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index de1a08c..acdc2e3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,8 @@ 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).
 
 ## [Unreleased]
+
+## [0.15.6] - 2022-03-27
 ### Added
 - doip.keys.fetch function (with tests)
 
diff --git a/dist/doip.js b/dist/doip.js
index 6f9c24a..ff76abf 100644
--- a/dist/doip.js
+++ b/dist/doip.js
@@ -1,7 +1,13352 @@
 (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.doip = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
+module.exports = require('./lib/axios');
+},{"./lib/axios":3}],2:[function(require,module,exports){
+'use strict';
+
+var utils = require('./../utils');
+var settle = require('./../core/settle');
+var cookies = require('./../helpers/cookies');
+var buildURL = require('./../helpers/buildURL');
+var buildFullPath = require('../core/buildFullPath');
+var parseHeaders = require('./../helpers/parseHeaders');
+var isURLSameOrigin = require('./../helpers/isURLSameOrigin');
+var createError = require('../core/createError');
+var defaults = require('../defaults');
+var Cancel = require('../cancel/Cancel');
+
+module.exports = function xhrAdapter(config) {
+  return new Promise(function dispatchXhrRequest(resolve, reject) {
+    var requestData = config.data;
+    var requestHeaders = config.headers;
+    var responseType = config.responseType;
+    var onCanceled;
+    function done() {
+      if (config.cancelToken) {
+        config.cancelToken.unsubscribe(onCanceled);
+      }
+
+      if (config.signal) {
+        config.signal.removeEventListener('abort', onCanceled);
+      }
+    }
+
+    if (utils.isFormData(requestData)) {
+      delete requestHeaders['Content-Type']; // Let the browser set it
+    }
+
+    var request = new XMLHttpRequest();
+
+    // HTTP basic authentication
+    if (config.auth) {
+      var username = config.auth.username || '';
+      var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';
+      requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);
+    }
+
+    var fullPath = buildFullPath(config.baseURL, config.url);
+    request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);
+
+    // Set the request timeout in MS
+    request.timeout = config.timeout;
+
+    function onloadend() {
+      if (!request) {
+        return;
+      }
+      // Prepare the response
+      var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;
+      var responseData = !responseType || responseType === 'text' ||  responseType === 'json' ?
+        request.responseText : request.response;
+      var response = {
+        data: responseData,
+        status: request.status,
+        statusText: request.statusText,
+        headers: responseHeaders,
+        config: config,
+        request: request
+      };
+
+      settle(function _resolve(value) {
+        resolve(value);
+        done();
+      }, function _reject(err) {
+        reject(err);
+        done();
+      }, response);
+
+      // Clean up request
+      request = null;
+    }
+
+    if ('onloadend' in request) {
+      // Use onloadend if available
+      request.onloadend = onloadend;
+    } else {
+      // Listen for ready state to emulate onloadend
+      request.onreadystatechange = function handleLoad() {
+        if (!request || request.readyState !== 4) {
+          return;
+        }
+
+        // The request errored out and we didn't get a response, this will be
+        // handled by onerror instead
+        // With one exception: request that using file: protocol, most browsers
+        // will return status as 0 even though it's a successful request
+        if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {
+          return;
+        }
+        // readystate handler is calling before onerror or ontimeout handlers,
+        // so we should call onloadend on the next 'tick'
+        setTimeout(onloadend);
+      };
+    }
+
+    // Handle browser request cancellation (as opposed to a manual cancellation)
+    request.onabort = function handleAbort() {
+      if (!request) {
+        return;
+      }
+
+      reject(createError('Request aborted', config, 'ECONNABORTED', request));
+
+      // Clean up request
+      request = null;
+    };
+
+    // Handle low level network errors
+    request.onerror = function handleError() {
+      // Real errors are hidden from us by the browser
+      // onerror should only fire if it's a network error
+      reject(createError('Network Error', config, null, request));
+
+      // Clean up request
+      request = null;
+    };
+
+    // Handle timeout
+    request.ontimeout = function handleTimeout() {
+      var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';
+      var transitional = config.transitional || defaults.transitional;
+      if (config.timeoutErrorMessage) {
+        timeoutErrorMessage = config.timeoutErrorMessage;
+      }
+      reject(createError(
+        timeoutErrorMessage,
+        config,
+        transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',
+        request));
+
+      // Clean up request
+      request = null;
+    };
+
+    // Add xsrf header
+    // This is only done if running in a standard browser environment.
+    // Specifically not if we're in a web worker, or react-native.
+    if (utils.isStandardBrowserEnv()) {
+      // Add xsrf header
+      var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?
+        cookies.read(config.xsrfCookieName) :
+        undefined;
+
+      if (xsrfValue) {
+        requestHeaders[config.xsrfHeaderName] = xsrfValue;
+      }
+    }
+
+    // Add headers to the request
+    if ('setRequestHeader' in request) {
+      utils.forEach(requestHeaders, function setRequestHeader(val, key) {
+        if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {
+          // Remove Content-Type if data is undefined
+          delete requestHeaders[key];
+        } else {
+          // Otherwise add header to the request
+          request.setRequestHeader(key, val);
+        }
+      });
+    }
+
+    // Add withCredentials to request if needed
+    if (!utils.isUndefined(config.withCredentials)) {
+      request.withCredentials = !!config.withCredentials;
+    }
+
+    // Add responseType to request if needed
+    if (responseType && responseType !== 'json') {
+      request.responseType = config.responseType;
+    }
+
+    // Handle progress if needed
+    if (typeof config.onDownloadProgress === 'function') {
+      request.addEventListener('progress', config.onDownloadProgress);
+    }
+
+    // Not all browsers support upload events
+    if (typeof config.onUploadProgress === 'function' && request.upload) {
+      request.upload.addEventListener('progress', config.onUploadProgress);
+    }
+
+    if (config.cancelToken || config.signal) {
+      // Handle cancellation
+      // eslint-disable-next-line func-names
+      onCanceled = function(cancel) {
+        if (!request) {
+          return;
+        }
+        reject(!cancel || (cancel && cancel.type) ? new Cancel('canceled') : cancel);
+        request.abort();
+        request = null;
+      };
+
+      config.cancelToken && config.cancelToken.subscribe(onCanceled);
+      if (config.signal) {
+        config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);
+      }
+    }
+
+    if (!requestData) {
+      requestData = null;
+    }
+
+    // Send the request
+    request.send(requestData);
+  });
+};
+
+},{"../cancel/Cancel":4,"../core/buildFullPath":9,"../core/createError":10,"../defaults":16,"./../core/settle":14,"./../helpers/buildURL":19,"./../helpers/cookies":21,"./../helpers/isURLSameOrigin":24,"./../helpers/parseHeaders":26,"./../utils":29}],3:[function(require,module,exports){
+'use strict';
+
+var utils = require('./utils');
+var bind = require('./helpers/bind');
+var Axios = require('./core/Axios');
+var mergeConfig = require('./core/mergeConfig');
+var defaults = require('./defaults');
+
+/**
+ * Create an instance of Axios
+ *
+ * @param {Object} defaultConfig The default config for the instance
+ * @return {Axios} A new instance of Axios
+ */
+function createInstance(defaultConfig) {
+  var context = new Axios(defaultConfig);
+  var instance = bind(Axios.prototype.request, context);
+
+  // Copy axios.prototype to instance
+  utils.extend(instance, Axios.prototype, context);
+
+  // Copy context to instance
+  utils.extend(instance, context);
+
+  // Factory for creating new instances
+  instance.create = function create(instanceConfig) {
+    return createInstance(mergeConfig(defaultConfig, instanceConfig));
+  };
+
+  return instance;
+}
+
+// Create the default instance to be exported
+var axios = createInstance(defaults);
+
+// Expose Axios class to allow class inheritance
+axios.Axios = Axios;
+
+// Expose Cancel & CancelToken
+axios.Cancel = require('./cancel/Cancel');
+axios.CancelToken = require('./cancel/CancelToken');
+axios.isCancel = require('./cancel/isCancel');
+axios.VERSION = require('./env/data').version;
+
+// Expose all/spread
+axios.all = function all(promises) {
+  return Promise.all(promises);
+};
+axios.spread = require('./helpers/spread');
+
+// Expose isAxiosError
+axios.isAxiosError = require('./helpers/isAxiosError');
+
+module.exports = axios;
+
+// Allow use of default import syntax in TypeScript
+module.exports.default = axios;
+
+},{"./cancel/Cancel":4,"./cancel/CancelToken":5,"./cancel/isCancel":6,"./core/Axios":7,"./core/mergeConfig":13,"./defaults":16,"./env/data":17,"./helpers/bind":18,"./helpers/isAxiosError":23,"./helpers/spread":27,"./utils":29}],4:[function(require,module,exports){
+'use strict';
+
+/**
+ * A `Cancel` is an object that is thrown when an operation is canceled.
+ *
+ * @class
+ * @param {string=} message The message.
+ */
+function Cancel(message) {
+  this.message = message;
+}
+
+Cancel.prototype.toString = function toString() {
+  return 'Cancel' + (this.message ? ': ' + this.message : '');
+};
+
+Cancel.prototype.__CANCEL__ = true;
+
+module.exports = Cancel;
+
+},{}],5:[function(require,module,exports){
+'use strict';
+
+var Cancel = require('./Cancel');
+
+/**
+ * A `CancelToken` is an object that can be used to request cancellation of an operation.
+ *
+ * @class
+ * @param {Function} executor The executor function.
+ */
+function CancelToken(executor) {
+  if (typeof executor !== 'function') {
+    throw new TypeError('executor must be a function.');
+  }
+
+  var resolvePromise;
+
+  this.promise = new Promise(function promiseExecutor(resolve) {
+    resolvePromise = resolve;
+  });
+
+  var token = this;
+
+  // eslint-disable-next-line func-names
+  this.promise.then(function(cancel) {
+    if (!token._listeners) return;
+
+    var i;
+    var l = token._listeners.length;
+
+    for (i = 0; i < l; i++) {
+      token._listeners[i](cancel);
+    }
+    token._listeners = null;
+  });
+
+  // eslint-disable-next-line func-names
+  this.promise.then = function(onfulfilled) {
+    var _resolve;
+    // eslint-disable-next-line func-names
+    var promise = new Promise(function(resolve) {
+      token.subscribe(resolve);
+      _resolve = resolve;
+    }).then(onfulfilled);
+
+    promise.cancel = function reject() {
+      token.unsubscribe(_resolve);
+    };
+
+    return promise;
+  };
+
+  executor(function cancel(message) {
+    if (token.reason) {
+      // Cancellation has already been requested
+      return;
+    }
+
+    token.reason = new Cancel(message);
+    resolvePromise(token.reason);
+  });
+}
+
+/**
+ * Throws a `Cancel` if cancellation has been requested.
+ */
+CancelToken.prototype.throwIfRequested = function throwIfRequested() {
+  if (this.reason) {
+    throw this.reason;
+  }
+};
+
+/**
+ * Subscribe to the cancel signal
+ */
+
+CancelToken.prototype.subscribe = function subscribe(listener) {
+  if (this.reason) {
+    listener(this.reason);
+    return;
+  }
+
+  if (this._listeners) {
+    this._listeners.push(listener);
+  } else {
+    this._listeners = [listener];
+  }
+};
+
+/**
+ * Unsubscribe from the cancel signal
+ */
+
+CancelToken.prototype.unsubscribe = function unsubscribe(listener) {
+  if (!this._listeners) {
+    return;
+  }
+  var index = this._listeners.indexOf(listener);
+  if (index !== -1) {
+    this._listeners.splice(index, 1);
+  }
+};
+
+/**
+ * Returns an object that contains a new `CancelToken` and a function that, when called,
+ * cancels the `CancelToken`.
+ */
+CancelToken.source = function source() {
+  var cancel;
+  var token = new CancelToken(function executor(c) {
+    cancel = c;
+  });
+  return {
+    token: token,
+    cancel: cancel
+  };
+};
+
+module.exports = CancelToken;
+
+},{"./Cancel":4}],6:[function(require,module,exports){
+'use strict';
+
+module.exports = function isCancel(value) {
+  return !!(value && value.__CANCEL__);
+};
+
+},{}],7:[function(require,module,exports){
+'use strict';
+
+var utils = require('./../utils');
+var buildURL = require('../helpers/buildURL');
+var InterceptorManager = require('./InterceptorManager');
+var dispatchRequest = require('./dispatchRequest');
+var mergeConfig = require('./mergeConfig');
+var validator = require('../helpers/validator');
+
+var validators = validator.validators;
+/**
+ * Create a new instance of Axios
+ *
+ * @param {Object} instanceConfig The default config for the instance
+ */
+function Axios(instanceConfig) {
+  this.defaults = instanceConfig;
+  this.interceptors = {
+    request: new InterceptorManager(),
+    response: new InterceptorManager()
+  };
+}
+
+/**
+ * Dispatch a request
+ *
+ * @param {Object} config The config specific for this request (merged with this.defaults)
+ */
+Axios.prototype.request = function request(configOrUrl, config) {
+  /*eslint no-param-reassign:0*/
+  // Allow for axios('example/url'[, config]) a la fetch API
+  if (typeof configOrUrl === 'string') {
+    config = config || {};
+    config.url = configOrUrl;
+  } else {
+    config = configOrUrl || {};
+  }
+
+  if (!config.url) {
+    throw new Error('Provided config url is not valid');
+  }
+
+  config = mergeConfig(this.defaults, config);
+
+  // Set config.method
+  if (config.method) {
+    config.method = config.method.toLowerCase();
+  } else if (this.defaults.method) {
+    config.method = this.defaults.method.toLowerCase();
+  } else {
+    config.method = 'get';
+  }
+
+  var transitional = config.transitional;
+
+  if (transitional !== undefined) {
+    validator.assertOptions(transitional, {
+      silentJSONParsing: validators.transitional(validators.boolean),
+      forcedJSONParsing: validators.transitional(validators.boolean),
+      clarifyTimeoutError: validators.transitional(validators.boolean)
+    }, false);
+  }
+
+  // filter out skipped interceptors
+  var requestInterceptorChain = [];
+  var synchronousRequestInterceptors = true;
+  this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {
+    if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {
+      return;
+    }
+
+    synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;
+
+    requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);
+  });
+
+  var responseInterceptorChain = [];
+  this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {
+    responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);
+  });
+
+  var promise;
+
+  if (!synchronousRequestInterceptors) {
+    var chain = [dispatchRequest, undefined];
+
+    Array.prototype.unshift.apply(chain, requestInterceptorChain);
+    chain = chain.concat(responseInterceptorChain);
+
+    promise = Promise.resolve(config);
+    while (chain.length) {
+      promise = promise.then(chain.shift(), chain.shift());
+    }
+
+    return promise;
+  }
+
+
+  var newConfig = config;
+  while (requestInterceptorChain.length) {
+    var onFulfilled = requestInterceptorChain.shift();
+    var onRejected = requestInterceptorChain.shift();
+    try {
+      newConfig = onFulfilled(newConfig);
+    } catch (error) {
+      onRejected(error);
+      break;
+    }
+  }
+
+  try {
+    promise = dispatchRequest(newConfig);
+  } catch (error) {
+    return Promise.reject(error);
+  }
+
+  while (responseInterceptorChain.length) {
+    promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());
+  }
+
+  return promise;
+};
+
+Axios.prototype.getUri = function getUri(config) {
+  if (!config.url) {
+    throw new Error('Provided config url is not valid');
+  }
+  config = mergeConfig(this.defaults, config);
+  return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\?/, '');
+};
+
+// Provide aliases for supported request methods
+utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {
+  /*eslint func-names:0*/
+  Axios.prototype[method] = function(url, config) {
+    return this.request(mergeConfig(config || {}, {
+      method: method,
+      url: url,
+      data: (config || {}).data
+    }));
+  };
+});
+
+utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {
+  /*eslint func-names:0*/
+  Axios.prototype[method] = function(url, data, config) {
+    return this.request(mergeConfig(config || {}, {
+      method: method,
+      url: url,
+      data: data
+    }));
+  };
+});
+
+module.exports = Axios;
+
+},{"../helpers/buildURL":19,"../helpers/validator":28,"./../utils":29,"./InterceptorManager":8,"./dispatchRequest":11,"./mergeConfig":13}],8:[function(require,module,exports){
+'use strict';
+
+var utils = require('./../utils');
+
+function InterceptorManager() {
+  this.handlers = [];
+}
+
+/**
+ * Add a new interceptor to the stack
+ *
+ * @param {Function} fulfilled The function to handle `then` for a `Promise`
+ * @param {Function} rejected The function to handle `reject` for a `Promise`
+ *
+ * @return {Number} An ID used to remove interceptor later
+ */
+InterceptorManager.prototype.use = function use(fulfilled, rejected, options) {
+  this.handlers.push({
+    fulfilled: fulfilled,
+    rejected: rejected,
+    synchronous: options ? options.synchronous : false,
+    runWhen: options ? options.runWhen : null
+  });
+  return this.handlers.length - 1;
+};
+
+/**
+ * Remove an interceptor from the stack
+ *
+ * @param {Number} id The ID that was returned by `use`
+ */
+InterceptorManager.prototype.eject = function eject(id) {
+  if (this.handlers[id]) {
+    this.handlers[id] = null;
+  }
+};
+
+/**
+ * Iterate over all the registered interceptors
+ *
+ * This method is particularly useful for skipping over any
+ * interceptors that may have become `null` calling `eject`.
+ *
+ * @param {Function} fn The function to call for each interceptor
+ */
+InterceptorManager.prototype.forEach = function forEach(fn) {
+  utils.forEach(this.handlers, function forEachHandler(h) {
+    if (h !== null) {
+      fn(h);
+    }
+  });
+};
+
+module.exports = InterceptorManager;
+
+},{"./../utils":29}],9:[function(require,module,exports){
+'use strict';
+
+var isAbsoluteURL = require('../helpers/isAbsoluteURL');
+var combineURLs = require('../helpers/combineURLs');
+
+/**
+ * Creates a new URL by combining the baseURL with the requestedURL,
+ * only when the requestedURL is not already an absolute URL.
+ * If the requestURL is absolute, this function returns the requestedURL untouched.
+ *
+ * @param {string} baseURL The base URL
+ * @param {string} requestedURL Absolute or relative URL to combine
+ * @returns {string} The combined full path
+ */
+module.exports = function buildFullPath(baseURL, requestedURL) {
+  if (baseURL && !isAbsoluteURL(requestedURL)) {
+    return combineURLs(baseURL, requestedURL);
+  }
+  return requestedURL;
+};
+
+},{"../helpers/combineURLs":20,"../helpers/isAbsoluteURL":22}],10:[function(require,module,exports){
+'use strict';
+
+var enhanceError = require('./enhanceError');
+
+/**
+ * Create an Error with the specified message, config, error code, request and response.
+ *
+ * @param {string} message The error message.
+ * @param {Object} config The config.
+ * @param {string} [code] The error code (for example, 'ECONNABORTED').
+ * @param {Object} [request] The request.
+ * @param {Object} [response] The response.
+ * @returns {Error} The created error.
+ */
+module.exports = function createError(message, config, code, request, response) {
+  var error = new Error(message);
+  return enhanceError(error, config, code, request, response);
+};
+
+},{"./enhanceError":12}],11:[function(require,module,exports){
+'use strict';
+
+var utils = require('./../utils');
+var transformData = require('./transformData');
+var isCancel = require('../cancel/isCancel');
+var defaults = require('../defaults');
+var Cancel = require('../cancel/Cancel');
+
+/**
+ * Throws a `Cancel` if cancellation has been requested.
+ */
+function throwIfCancellationRequested(config) {
+  if (config.cancelToken) {
+    config.cancelToken.throwIfRequested();
+  }
+
+  if (config.signal && config.signal.aborted) {
+    throw new Cancel('canceled');
+  }
+}
+
+/**
+ * Dispatch a request to the server using the configured adapter.
+ *
+ * @param {object} config The config that is to be used for the request
+ * @returns {Promise} The Promise to be fulfilled
+ */
+module.exports = function dispatchRequest(config) {
+  throwIfCancellationRequested(config);
+
+  // Ensure headers exist
+  config.headers = config.headers || {};
+
+  // Transform request data
+  config.data = transformData.call(
+    config,
+    config.data,
+    config.headers,
+    config.transformRequest
+  );
+
+  // Flatten headers
+  config.headers = utils.merge(
+    config.headers.common || {},
+    config.headers[config.method] || {},
+    config.headers
+  );
+
+  utils.forEach(
+    ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],
+    function cleanHeaderConfig(method) {
+      delete config.headers[method];
+    }
+  );
+
+  var adapter = config.adapter || defaults.adapter;
+
+  return adapter(config).then(function onAdapterResolution(response) {
+    throwIfCancellationRequested(config);
+
+    // Transform response data
+    response.data = transformData.call(
+      config,
+      response.data,
+      response.headers,
+      config.transformResponse
+    );
+
+    return response;
+  }, function onAdapterRejection(reason) {
+    if (!isCancel(reason)) {
+      throwIfCancellationRequested(config);
+
+      // Transform response data
+      if (reason && reason.response) {
+        reason.response.data = transformData.call(
+          config,
+          reason.response.data,
+          reason.response.headers,
+          config.transformResponse
+        );
+      }
+    }
+
+    return Promise.reject(reason);
+  });
+};
+
+},{"../cancel/Cancel":4,"../cancel/isCancel":6,"../defaults":16,"./../utils":29,"./transformData":15}],12:[function(require,module,exports){
+'use strict';
+
+/**
+ * Update an Error with the specified config, error code, and response.
+ *
+ * @param {Error} error The error to update.
+ * @param {Object} config The config.
+ * @param {string} [code] The error code (for example, 'ECONNABORTED').
+ * @param {Object} [request] The request.
+ * @param {Object} [response] The response.
+ * @returns {Error} The error.
+ */
+module.exports = function enhanceError(error, config, code, request, response) {
+  error.config = config;
+  if (code) {
+    error.code = code;
+  }
+
+  error.request = request;
+  error.response = response;
+  error.isAxiosError = true;
+
+  error.toJSON = function toJSON() {
+    return {
+      // Standard
+      message: this.message,
+      name: this.name,
+      // Microsoft
+      description: this.description,
+      number: this.number,
+      // Mozilla
+      fileName: this.fileName,
+      lineNumber: this.lineNumber,
+      columnNumber: this.columnNumber,
+      stack: this.stack,
+      // Axios
+      config: this.config,
+      code: this.code,
+      status: this.response && this.response.status ? this.response.status : null
+    };
+  };
+  return error;
+};
+
+},{}],13:[function(require,module,exports){
+'use strict';
+
+var utils = require('../utils');
+
+/**
+ * Config-specific merge-function which creates a new config-object
+ * by merging two configuration objects together.
+ *
+ * @param {Object} config1
+ * @param {Object} config2
+ * @returns {Object} New object resulting from merging config2 to config1
+ */
+module.exports = function mergeConfig(config1, config2) {
+  // eslint-disable-next-line no-param-reassign
+  config2 = config2 || {};
+  var config = {};
+
+  function getMergedValue(target, source) {
+    if (utils.isPlainObject(target) && utils.isPlainObject(source)) {
+      return utils.merge(target, source);
+    } else if (utils.isPlainObject(source)) {
+      return utils.merge({}, source);
+    } else if (utils.isArray(source)) {
+      return source.slice();
+    }
+    return source;
+  }
+
+  // eslint-disable-next-line consistent-return
+  function mergeDeepProperties(prop) {
+    if (!utils.isUndefined(config2[prop])) {
+      return getMergedValue(config1[prop], config2[prop]);
+    } else if (!utils.isUndefined(config1[prop])) {
+      return getMergedValue(undefined, config1[prop]);
+    }
+  }
+
+  // eslint-disable-next-line consistent-return
+  function valueFromConfig2(prop) {
+    if (!utils.isUndefined(config2[prop])) {
+      return getMergedValue(undefined, config2[prop]);
+    }
+  }
+
+  // eslint-disable-next-line consistent-return
+  function defaultToConfig2(prop) {
+    if (!utils.isUndefined(config2[prop])) {
+      return getMergedValue(undefined, config2[prop]);
+    } else if (!utils.isUndefined(config1[prop])) {
+      return getMergedValue(undefined, config1[prop]);
+    }
+  }
+
+  // eslint-disable-next-line consistent-return
+  function mergeDirectKeys(prop) {
+    if (prop in config2) {
+      return getMergedValue(config1[prop], config2[prop]);
+    } else if (prop in config1) {
+      return getMergedValue(undefined, config1[prop]);
+    }
+  }
+
+  var mergeMap = {
+    'url': valueFromConfig2,
+    'method': valueFromConfig2,
+    'data': valueFromConfig2,
+    'baseURL': defaultToConfig2,
+    'transformRequest': defaultToConfig2,
+    'transformResponse': defaultToConfig2,
+    'paramsSerializer': defaultToConfig2,
+    'timeout': defaultToConfig2,
+    'timeoutMessage': defaultToConfig2,
+    'withCredentials': defaultToConfig2,
+    'adapter': defaultToConfig2,
+    'responseType': defaultToConfig2,
+    'xsrfCookieName': defaultToConfig2,
+    'xsrfHeaderName': defaultToConfig2,
+    'onUploadProgress': defaultToConfig2,
+    'onDownloadProgress': defaultToConfig2,
+    'decompress': defaultToConfig2,
+    'maxContentLength': defaultToConfig2,
+    'maxBodyLength': defaultToConfig2,
+    'transport': defaultToConfig2,
+    'httpAgent': defaultToConfig2,
+    'httpsAgent': defaultToConfig2,
+    'cancelToken': defaultToConfig2,
+    'socketPath': defaultToConfig2,
+    'responseEncoding': defaultToConfig2,
+    'validateStatus': mergeDirectKeys
+  };
+
+  utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {
+    var merge = mergeMap[prop] || mergeDeepProperties;
+    var configValue = merge(prop);
+    (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);
+  });
+
+  return config;
+};
+
+},{"../utils":29}],14:[function(require,module,exports){
+'use strict';
+
+var createError = require('./createError');
+
+/**
+ * Resolve or reject a Promise based on response status.
+ *
+ * @param {Function} resolve A function that resolves the promise.
+ * @param {Function} reject A function that rejects the promise.
+ * @param {object} response The response.
+ */
+module.exports = function settle(resolve, reject, response) {
+  var validateStatus = response.config.validateStatus;
+  if (!response.status || !validateStatus || validateStatus(response.status)) {
+    resolve(response);
+  } else {
+    reject(createError(
+      'Request failed with status code ' + response.status,
+      response.config,
+      null,
+      response.request,
+      response
+    ));
+  }
+};
+
+},{"./createError":10}],15:[function(require,module,exports){
+'use strict';
+
+var utils = require('./../utils');
+var defaults = require('./../defaults');
+
+/**
+ * Transform the data for a request or a response
+ *
+ * @param {Object|String} data The data to be transformed
+ * @param {Array} headers The headers for the request or response
+ * @param {Array|Function} fns A single function or Array of functions
+ * @returns {*} The resulting transformed data
+ */
+module.exports = function transformData(data, headers, fns) {
+  var context = this || defaults;
+  /*eslint no-param-reassign:0*/
+  utils.forEach(fns, function transform(fn) {
+    data = fn.call(context, data, headers);
+  });
+
+  return data;
+};
+
+},{"./../defaults":16,"./../utils":29}],16:[function(require,module,exports){
+(function (process){(function (){
+'use strict';
+
+var utils = require('./utils');
+var normalizeHeaderName = require('./helpers/normalizeHeaderName');
+var enhanceError = require('./core/enhanceError');
+
+var DEFAULT_CONTENT_TYPE = {
+  'Content-Type': 'application/x-www-form-urlencoded'
+};
+
+function setContentTypeIfUnset(headers, value) {
+  if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {
+    headers['Content-Type'] = value;
+  }
+}
+
+function getDefaultAdapter() {
+  var adapter;
+  if (typeof XMLHttpRequest !== 'undefined') {
+    // For browsers use XHR adapter
+    adapter = require('./adapters/xhr');
+  } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {
+    // For node use HTTP adapter
+    adapter = require('./adapters/http');
+  }
+  return adapter;
+}
+
+function stringifySafely(rawValue, parser, encoder) {
+  if (utils.isString(rawValue)) {
+    try {
+      (parser || JSON.parse)(rawValue);
+      return utils.trim(rawValue);
+    } catch (e) {
+      if (e.name !== 'SyntaxError') {
+        throw e;
+      }
+    }
+  }
+
+  return (encoder || JSON.stringify)(rawValue);
+}
+
+var defaults = {
+
+  transitional: {
+    silentJSONParsing: true,
+    forcedJSONParsing: true,
+    clarifyTimeoutError: false
+  },
+
+  adapter: getDefaultAdapter(),
+
+  transformRequest: [function transformRequest(data, headers) {
+    normalizeHeaderName(headers, 'Accept');
+    normalizeHeaderName(headers, 'Content-Type');
+
+    if (utils.isFormData(data) ||
+      utils.isArrayBuffer(data) ||
+      utils.isBuffer(data) ||
+      utils.isStream(data) ||
+      utils.isFile(data) ||
+      utils.isBlob(data)
+    ) {
+      return data;
+    }
+    if (utils.isArrayBufferView(data)) {
+      return data.buffer;
+    }
+    if (utils.isURLSearchParams(data)) {
+      setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');
+      return data.toString();
+    }
+    if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {
+      setContentTypeIfUnset(headers, 'application/json');
+      return stringifySafely(data);
+    }
+    return data;
+  }],
+
+  transformResponse: [function transformResponse(data) {
+    var transitional = this.transitional || defaults.transitional;
+    var silentJSONParsing = transitional && transitional.silentJSONParsing;
+    var forcedJSONParsing = transitional && transitional.forcedJSONParsing;
+    var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';
+
+    if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {
+      try {
+        return JSON.parse(data);
+      } catch (e) {
+        if (strictJSONParsing) {
+          if (e.name === 'SyntaxError') {
+            throw enhanceError(e, this, 'E_JSON_PARSE');
+          }
+          throw e;
+        }
+      }
+    }
+
+    return data;
+  }],
+
+  /**
+   * A timeout in milliseconds to abort a request. If set to 0 (default) a
+   * timeout is not created.
+   */
+  timeout: 0,
+
+  xsrfCookieName: 'XSRF-TOKEN',
+  xsrfHeaderName: 'X-XSRF-TOKEN',
+
+  maxContentLength: -1,
+  maxBodyLength: -1,
+
+  validateStatus: function validateStatus(status) {
+    return status >= 200 && status < 300;
+  },
+
+  headers: {
+    common: {
+      'Accept': 'application/json, text/plain, */*'
+    }
+  }
+};
+
+utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {
+  defaults.headers[method] = {};
+});
+
+utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {
+  defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);
+});
+
+module.exports = defaults;
+
+}).call(this)}).call(this,require('_process'))
+},{"./adapters/http":2,"./adapters/xhr":2,"./core/enhanceError":12,"./helpers/normalizeHeaderName":25,"./utils":29,"_process":36}],17:[function(require,module,exports){
+module.exports = {
+  "version": "0.25.0"
+};
+},{}],18:[function(require,module,exports){
+'use strict';
+
+module.exports = function bind(fn, thisArg) {
+  return function wrap() {
+    var args = new Array(arguments.length);
+    for (var i = 0; i < args.length; i++) {
+      args[i] = arguments[i];
+    }
+    return fn.apply(thisArg, args);
+  };
+};
+
+},{}],19:[function(require,module,exports){
+'use strict';
+
+var utils = require('./../utils');
+
+function encode(val) {
+  return encodeURIComponent(val).
+    replace(/%3A/gi, ':').
+    replace(/%24/g, '$').
+    replace(/%2C/gi, ',').
+    replace(/%20/g, '+').
+    replace(/%5B/gi, '[').
+    replace(/%5D/gi, ']');
+}
+
+/**
+ * Build a URL by appending params to the end
+ *
+ * @param {string} url The base of the url (e.g., http://www.google.com)
+ * @param {object} [params] The params to be appended
+ * @returns {string} The formatted url
+ */
+module.exports = function buildURL(url, params, paramsSerializer) {
+  /*eslint no-param-reassign:0*/
+  if (!params) {
+    return url;
+  }
+
+  var serializedParams;
+  if (paramsSerializer) {
+    serializedParams = paramsSerializer(params);
+  } else if (utils.isURLSearchParams(params)) {
+    serializedParams = params.toString();
+  } else {
+    var parts = [];
+
+    utils.forEach(params, function serialize(val, key) {
+      if (val === null || typeof val === 'undefined') {
+        return;
+      }
+
+      if (utils.isArray(val)) {
+        key = key + '[]';
+      } else {
+        val = [val];
+      }
+
+      utils.forEach(val, function parseValue(v) {
+        if (utils.isDate(v)) {
+          v = v.toISOString();
+        } else if (utils.isObject(v)) {
+          v = JSON.stringify(v);
+        }
+        parts.push(encode(key) + '=' + encode(v));
+      });
+    });
+
+    serializedParams = parts.join('&');
+  }
+
+  if (serializedParams) {
+    var hashmarkIndex = url.indexOf('#');
+    if (hashmarkIndex !== -1) {
+      url = url.slice(0, hashmarkIndex);
+    }
+
+    url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;
+  }
+
+  return url;
+};
+
+},{"./../utils":29}],20:[function(require,module,exports){
+'use strict';
+
+/**
+ * Creates a new URL by combining the specified URLs
+ *
+ * @param {string} baseURL The base URL
+ * @param {string} relativeURL The relative URL
+ * @returns {string} The combined URL
+ */
+module.exports = function combineURLs(baseURL, relativeURL) {
+  return relativeURL
+    ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '')
+    : baseURL;
+};
+
+},{}],21:[function(require,module,exports){
+'use strict';
+
+var utils = require('./../utils');
+
+module.exports = (
+  utils.isStandardBrowserEnv() ?
+
+  // Standard browser envs support document.cookie
+    (function standardBrowserEnv() {
+      return {
+        write: function write(name, value, expires, path, domain, secure) {
+          var cookie = [];
+          cookie.push(name + '=' + encodeURIComponent(value));
+
+          if (utils.isNumber(expires)) {
+            cookie.push('expires=' + new Date(expires).toGMTString());
+          }
+
+          if (utils.isString(path)) {
+            cookie.push('path=' + path);
+          }
+
+          if (utils.isString(domain)) {
+            cookie.push('domain=' + domain);
+          }
+
+          if (secure === true) {
+            cookie.push('secure');
+          }
+
+          document.cookie = cookie.join('; ');
+        },
+
+        read: function read(name) {
+          var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)'));
+          return (match ? decodeURIComponent(match[3]) : null);
+        },
+
+        remove: function remove(name) {
+          this.write(name, '', Date.now() - 86400000);
+        }
+      };
+    })() :
+
+  // Non standard browser env (web workers, react-native) lack needed support.
+    (function nonStandardBrowserEnv() {
+      return {
+        write: function write() {},
+        read: function read() { return null; },
+        remove: function remove() {}
+      };
+    })()
+);
+
+},{"./../utils":29}],22:[function(require,module,exports){
+'use strict';
+
+/**
+ * Determines whether the specified URL is absolute
+ *
+ * @param {string} url The URL to test
+ * @returns {boolean} True if the specified URL is absolute, otherwise false
+ */
+module.exports = function isAbsoluteURL(url) {
+  // A URL is considered absolute if it begins with "<scheme>://" or "//" (protocol-relative URL).
+  // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed
+  // by any combination of letters, digits, plus, period, or hyphen.
+  return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url);
+};
+
+},{}],23:[function(require,module,exports){
+'use strict';
+
+var utils = require('./../utils');
+
+/**
+ * Determines whether the payload is an error thrown by Axios
+ *
+ * @param {*} payload The value to test
+ * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false
+ */
+module.exports = function isAxiosError(payload) {
+  return utils.isObject(payload) && (payload.isAxiosError === true);
+};
+
+},{"./../utils":29}],24:[function(require,module,exports){
+'use strict';
+
+var utils = require('./../utils');
+
+module.exports = (
+  utils.isStandardBrowserEnv() ?
+
+  // Standard browser envs have full support of the APIs needed to test
+  // whether the request URL is of the same origin as current location.
+    (function standardBrowserEnv() {
+      var msie = /(msie|trident)/i.test(navigator.userAgent);
+      var urlParsingNode = document.createElement('a');
+      var originURL;
+
+      /**
+    * Parse a URL to discover it's components
+    *
+    * @param {String} url The URL to be parsed
+    * @returns {Object}
+    */
+      function resolveURL(url) {
+        var href = url;
+
+        if (msie) {
+        // IE needs attribute set twice to normalize properties
+          urlParsingNode.setAttribute('href', href);
+          href = urlParsingNode.href;
+        }
+
+        urlParsingNode.setAttribute('href', href);
+
+        // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils
+        return {
+          href: urlParsingNode.href,
+          protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',
+          host: urlParsingNode.host,
+          search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '',
+          hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',
+          hostname: urlParsingNode.hostname,
+          port: urlParsingNode.port,
+          pathname: (urlParsingNode.pathname.charAt(0) === '/') ?
+            urlParsingNode.pathname :
+            '/' + urlParsingNode.pathname
+        };
+      }
+
+      originURL = resolveURL(window.location.href);
+
+      /**
+    * Determine if a URL shares the same origin as the current location
+    *
+    * @param {String} requestURL The URL to test
+    * @returns {boolean} True if URL shares the same origin, otherwise false
+    */
+      return function isURLSameOrigin(requestURL) {
+        var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;
+        return (parsed.protocol === originURL.protocol &&
+            parsed.host === originURL.host);
+      };
+    })() :
+
+  // Non standard browser envs (web workers, react-native) lack needed support.
+    (function nonStandardBrowserEnv() {
+      return function isURLSameOrigin() {
+        return true;
+      };
+    })()
+);
+
+},{"./../utils":29}],25:[function(require,module,exports){
+'use strict';
+
+var utils = require('../utils');
+
+module.exports = function normalizeHeaderName(headers, normalizedName) {
+  utils.forEach(headers, function processHeader(value, name) {
+    if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {
+      headers[normalizedName] = value;
+      delete headers[name];
+    }
+  });
+};
+
+},{"../utils":29}],26:[function(require,module,exports){
+'use strict';
+
+var utils = require('./../utils');
+
+// Headers whose duplicates are ignored by node
+// c.f. https://nodejs.org/api/http.html#http_message_headers
+var ignoreDuplicateOf = [
+  'age', 'authorization', 'content-length', 'content-type', 'etag',
+  'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',
+  'last-modified', 'location', 'max-forwards', 'proxy-authorization',
+  'referer', 'retry-after', 'user-agent'
+];
+
+/**
+ * Parse headers into an object
+ *
+ * ```
+ * Date: Wed, 27 Aug 2014 08:58:49 GMT
+ * Content-Type: application/json
+ * Connection: keep-alive
+ * Transfer-Encoding: chunked
+ * ```
+ *
+ * @param {String} headers Headers needing to be parsed
+ * @returns {Object} Headers parsed into an object
+ */
+module.exports = function parseHeaders(headers) {
+  var parsed = {};
+  var key;
+  var val;
+  var i;
+
+  if (!headers) { return parsed; }
+
+  utils.forEach(headers.split('\n'), function parser(line) {
+    i = line.indexOf(':');
+    key = utils.trim(line.substr(0, i)).toLowerCase();
+    val = utils.trim(line.substr(i + 1));
+
+    if (key) {
+      if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {
+        return;
+      }
+      if (key === 'set-cookie') {
+        parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);
+      } else {
+        parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;
+      }
+    }
+  });
+
+  return parsed;
+};
+
+},{"./../utils":29}],27:[function(require,module,exports){
+'use strict';
+
+/**
+ * Syntactic sugar for invoking a function and expanding an array for arguments.
+ *
+ * Common use case would be to use `Function.prototype.apply`.
+ *
+ *  ```js
+ *  function f(x, y, z) {}
+ *  var args = [1, 2, 3];
+ *  f.apply(null, args);
+ *  ```
+ *
+ * With `spread` this example can be re-written.
+ *
+ *  ```js
+ *  spread(function(x, y, z) {})([1, 2, 3]);
+ *  ```
+ *
+ * @param {Function} callback
+ * @returns {Function}
+ */
+module.exports = function spread(callback) {
+  return function wrap(arr) {
+    return callback.apply(null, arr);
+  };
+};
+
+},{}],28:[function(require,module,exports){
+'use strict';
+
+var VERSION = require('../env/data').version;
+
+var validators = {};
+
+// eslint-disable-next-line func-names
+['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {
+  validators[type] = function validator(thing) {
+    return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;
+  };
+});
+
+var deprecatedWarnings = {};
+
+/**
+ * Transitional option validator
+ * @param {function|boolean?} validator - set to false if the transitional option has been removed
+ * @param {string?} version - deprecated version / removed since version
+ * @param {string?} message - some message with additional info
+ * @returns {function}
+ */
+validators.transitional = function transitional(validator, version, message) {
+  function formatMessage(opt, desc) {
+    return '[Axios v' + VERSION + '] Transitional option \'' + opt + '\'' + desc + (message ? '. ' + message : '');
+  }
+
+  // eslint-disable-next-line func-names
+  return function(value, opt, opts) {
+    if (validator === false) {
+      throw new Error(formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')));
+    }
+
+    if (version && !deprecatedWarnings[opt]) {
+      deprecatedWarnings[opt] = true;
+      // eslint-disable-next-line no-console
+      console.warn(
+        formatMessage(
+          opt,
+          ' has been deprecated since v' + version + ' and will be removed in the near future'
+        )
+      );
+    }
+
+    return validator ? validator(value, opt, opts) : true;
+  };
+};
+
+/**
+ * Assert object's properties type
+ * @param {object} options
+ * @param {object} schema
+ * @param {boolean?} allowUnknown
+ */
+
+function assertOptions(options, schema, allowUnknown) {
+  if (typeof options !== 'object') {
+    throw new TypeError('options must be an object');
+  }
+  var keys = Object.keys(options);
+  var i = keys.length;
+  while (i-- > 0) {
+    var opt = keys[i];
+    var validator = schema[opt];
+    if (validator) {
+      var value = options[opt];
+      var result = value === undefined || validator(value, opt, options);
+      if (result !== true) {
+        throw new TypeError('option ' + opt + ' must be ' + result);
+      }
+      continue;
+    }
+    if (allowUnknown !== true) {
+      throw Error('Unknown option ' + opt);
+    }
+  }
+}
+
+module.exports = {
+  assertOptions: assertOptions,
+  validators: validators
+};
+
+},{"../env/data":17}],29:[function(require,module,exports){
+'use strict';
+
+var bind = require('./helpers/bind');
+
+// utils is a library of generic helper functions non-specific to axios
+
+var toString = Object.prototype.toString;
+
+/**
+ * Determine if a value is an Array
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is an Array, otherwise false
+ */
+function isArray(val) {
+  return Array.isArray(val);
+}
+
+/**
+ * Determine if a value is undefined
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if the value is undefined, otherwise false
+ */
+function isUndefined(val) {
+  return typeof val === 'undefined';
+}
+
+/**
+ * Determine if a value is a Buffer
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is a Buffer, otherwise false
+ */
+function isBuffer(val) {
+  return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)
+    && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);
+}
+
+/**
+ * Determine if a value is an ArrayBuffer
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is an ArrayBuffer, otherwise false
+ */
+function isArrayBuffer(val) {
+  return toString.call(val) === '[object ArrayBuffer]';
+}
+
+/**
+ * Determine if a value is a FormData
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is an FormData, otherwise false
+ */
+function isFormData(val) {
+  return toString.call(val) === '[object FormData]';
+}
+
+/**
+ * Determine if a value is a view on an ArrayBuffer
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false
+ */
+function isArrayBufferView(val) {
+  var result;
+  if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {
+    result = ArrayBuffer.isView(val);
+  } else {
+    result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));
+  }
+  return result;
+}
+
+/**
+ * Determine if a value is a String
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is a String, otherwise false
+ */
+function isString(val) {
+  return typeof val === 'string';
+}
+
+/**
+ * Determine if a value is a Number
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is a Number, otherwise false
+ */
+function isNumber(val) {
+  return typeof val === 'number';
+}
+
+/**
+ * Determine if a value is an Object
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is an Object, otherwise false
+ */
+function isObject(val) {
+  return val !== null && typeof val === 'object';
+}
+
+/**
+ * Determine if a value is a plain Object
+ *
+ * @param {Object} val The value to test
+ * @return {boolean} True if value is a plain Object, otherwise false
+ */
+function isPlainObject(val) {
+  if (toString.call(val) !== '[object Object]') {
+    return false;
+  }
+
+  var prototype = Object.getPrototypeOf(val);
+  return prototype === null || prototype === Object.prototype;
+}
+
+/**
+ * Determine if a value is a Date
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is a Date, otherwise false
+ */
+function isDate(val) {
+  return toString.call(val) === '[object Date]';
+}
+
+/**
+ * Determine if a value is a File
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is a File, otherwise false
+ */
+function isFile(val) {
+  return toString.call(val) === '[object File]';
+}
+
+/**
+ * Determine if a value is a Blob
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is a Blob, otherwise false
+ */
+function isBlob(val) {
+  return toString.call(val) === '[object Blob]';
+}
+
+/**
+ * Determine if a value is a Function
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is a Function, otherwise false
+ */
+function isFunction(val) {
+  return toString.call(val) === '[object Function]';
+}
+
+/**
+ * Determine if a value is a Stream
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is a Stream, otherwise false
+ */
+function isStream(val) {
+  return isObject(val) && isFunction(val.pipe);
+}
+
+/**
+ * Determine if a value is a URLSearchParams object
+ *
+ * @param {Object} val The value to test
+ * @returns {boolean} True if value is a URLSearchParams object, otherwise false
+ */
+function isURLSearchParams(val) {
+  return toString.call(val) === '[object URLSearchParams]';
+}
+
+/**
+ * Trim excess whitespace off the beginning and end of a string
+ *
+ * @param {String} str The String to trim
+ * @returns {String} The String freed of excess whitespace
+ */
+function trim(str) {
+  return str.trim ? str.trim() : str.replace(/^\s+|\s+$/g, '');
+}
+
+/**
+ * Determine if we're running in a standard browser environment
+ *
+ * This allows axios to run in a web worker, and react-native.
+ * Both environments support XMLHttpRequest, but not fully standard globals.
+ *
+ * web workers:
+ *  typeof window -> undefined
+ *  typeof document -> undefined
+ *
+ * react-native:
+ *  navigator.product -> 'ReactNative'
+ * nativescript
+ *  navigator.product -> 'NativeScript' or 'NS'
+ */
+function isStandardBrowserEnv() {
+  if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||
+                                           navigator.product === 'NativeScript' ||
+                                           navigator.product === 'NS')) {
+    return false;
+  }
+  return (
+    typeof window !== 'undefined' &&
+    typeof document !== 'undefined'
+  );
+}
+
+/**
+ * Iterate over an Array or an Object invoking a function for each item.
+ *
+ * If `obj` is an Array callback will be called passing
+ * the value, index, and complete array for each item.
+ *
+ * If 'obj' is an Object callback will be called passing
+ * the value, key, and complete object for each property.
+ *
+ * @param {Object|Array} obj The object to iterate
+ * @param {Function} fn The callback to invoke for each item
+ */
+function forEach(obj, fn) {
+  // Don't bother if no value provided
+  if (obj === null || typeof obj === 'undefined') {
+    return;
+  }
+
+  // Force an array if not already something iterable
+  if (typeof obj !== 'object') {
+    /*eslint no-param-reassign:0*/
+    obj = [obj];
+  }
+
+  if (isArray(obj)) {
+    // Iterate over array values
+    for (var i = 0, l = obj.length; i < l; i++) {
+      fn.call(null, obj[i], i, obj);
+    }
+  } else {
+    // Iterate over object keys
+    for (var key in obj) {
+      if (Object.prototype.hasOwnProperty.call(obj, key)) {
+        fn.call(null, obj[key], key, obj);
+      }
+    }
+  }
+}
+
+/**
+ * Accepts varargs expecting each argument to be an object, then
+ * immutably merges the properties of each object and returns result.
+ *
+ * When multiple objects contain the same key the later object in
+ * the arguments list will take precedence.
+ *
+ * Example:
+ *
+ * ```js
+ * var result = merge({foo: 123}, {foo: 456});
+ * console.log(result.foo); // outputs 456
+ * ```
+ *
+ * @param {Object} obj1 Object to merge
+ * @returns {Object} Result of all merge properties
+ */
+function merge(/* obj1, obj2, obj3, ... */) {
+  var result = {};
+  function assignValue(val, key) {
+    if (isPlainObject(result[key]) && isPlainObject(val)) {
+      result[key] = merge(result[key], val);
+    } else if (isPlainObject(val)) {
+      result[key] = merge({}, val);
+    } else if (isArray(val)) {
+      result[key] = val.slice();
+    } else {
+      result[key] = val;
+    }
+  }
+
+  for (var i = 0, l = arguments.length; i < l; i++) {
+    forEach(arguments[i], assignValue);
+  }
+  return result;
+}
+
+/**
+ * Extends object a by mutably adding to it the properties of object b.
+ *
+ * @param {Object} a The object to be extended
+ * @param {Object} b The object to copy properties from
+ * @param {Object} thisArg The object to bind function to
+ * @return {Object} The resulting value of object a
+ */
+function extend(a, b, thisArg) {
+  forEach(b, function assignValue(val, key) {
+    if (thisArg && typeof val === 'function') {
+      a[key] = bind(val, thisArg);
+    } else {
+      a[key] = val;
+    }
+  });
+  return a;
+}
+
+/**
+ * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)
+ *
+ * @param {string} content with BOM
+ * @return {string} content value without BOM
+ */
+function stripBOM(content) {
+  if (content.charCodeAt(0) === 0xFEFF) {
+    content = content.slice(1);
+  }
+  return content;
+}
+
+module.exports = {
+  isArray: isArray,
+  isArrayBuffer: isArrayBuffer,
+  isBuffer: isBuffer,
+  isFormData: isFormData,
+  isArrayBufferView: isArrayBufferView,
+  isString: isString,
+  isNumber: isNumber,
+  isObject: isObject,
+  isPlainObject: isPlainObject,
+  isUndefined: isUndefined,
+  isDate: isDate,
+  isFile: isFile,
+  isBlob: isBlob,
+  isFunction: isFunction,
+  isStream: isStream,
+  isURLSearchParams: isURLSearchParams,
+  isStandardBrowserEnv: isStandardBrowserEnv,
+  forEach: forEach,
+  merge: merge,
+  extend: extend,
+  trim: trim,
+  stripBOM: stripBOM
+};
+
+},{"./helpers/bind":18}],30:[function(require,module,exports){
+(function (process){(function (){
+'use strict';
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+
+var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
+
+/* global window self */
+
+var isBrowser = typeof window !== 'undefined' && typeof window.document !== 'undefined';
+
+/* eslint-disable no-restricted-globals */
+var isWebWorker = (typeof self === 'undefined' ? 'undefined' : _typeof(self)) === 'object' && self.constructor && self.constructor.name === 'DedicatedWorkerGlobalScope';
+/* eslint-enable no-restricted-globals */
+
+var isNode = typeof process !== 'undefined' && process.versions != null && process.versions.node != null;
+
+/**
+ * @see https://github.com/jsdom/jsdom/releases/tag/12.0.0
+ * @see https://github.com/jsdom/jsdom/issues/1537
+ */
+/* eslint-disable no-undef */
+var isJsDom = function isJsDom() {
+  return typeof window !== 'undefined' && window.name === 'nodejs' || navigator.userAgent.includes('Node.js') || navigator.userAgent.includes('jsdom');
+};
+
+exports.isBrowser = isBrowser;
+exports.isWebWorker = isWebWorker;
+exports.isNode = isNode;
+exports.isJsDom = isJsDom;
+}).call(this)}).call(this,require('_process'))
+},{"_process":36}],31:[function(require,module,exports){
+
+},{}],32:[function(require,module,exports){
+'use strict';
+var token = '%[a-f0-9]{2}';
+var singleMatcher = new RegExp(token, 'gi');
+var multiMatcher = new RegExp('(' + token + ')+', 'gi');
+
+function decodeComponents(components, split) {
+	try {
+		// Try to decode the entire string first
+		return decodeURIComponent(components.join(''));
+	} catch (err) {
+		// Do nothing
+	}
+
+	if (components.length === 1) {
+		return components;
+	}
+
+	split = split || 1;
+
+	// Split the array in 2 parts
+	var left = components.slice(0, split);
+	var right = components.slice(split);
+
+	return Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));
+}
+
+function decode(input) {
+	try {
+		return decodeURIComponent(input);
+	} catch (err) {
+		var tokens = input.match(singleMatcher);
+
+		for (var i = 1; i < tokens.length; i++) {
+			input = decodeComponents(tokens, i).join('');
+
+			tokens = input.match(singleMatcher);
+		}
+
+		return input;
+	}
+}
+
+function customDecodeURIComponent(input) {
+	// Keep track of all the replacements and prefill the map with the `BOM`
+	var replaceMap = {
+		'%FE%FF': '\uFFFD\uFFFD',
+		'%FF%FE': '\uFFFD\uFFFD'
+	};
+
+	var match = multiMatcher.exec(input);
+	while (match) {
+		try {
+			// Decode as big chunks as possible
+			replaceMap[match[0]] = decodeURIComponent(match[0]);
+		} catch (err) {
+			var result = decode(match[0]);
+
+			if (result !== match[0]) {
+				replaceMap[match[0]] = result;
+			}
+		}
+
+		match = multiMatcher.exec(input);
+	}
+
+	// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else
+	replaceMap['%C2'] = '\uFFFD';
+
+	var entries = Object.keys(replaceMap);
+
+	for (var i = 0; i < entries.length; i++) {
+		// Replace all decoded components
+		var key = entries[i];
+		input = input.replace(new RegExp(key, 'g'), replaceMap[key]);
+	}
+
+	return input;
+}
+
+module.exports = function (encodedURI) {
+	if (typeof encodedURI !== 'string') {
+		throw new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');
+	}
+
+	try {
+		encodedURI = encodedURI.replace(/\+/g, ' ');
+
+		// Try the built in decoder first
+		return decodeURIComponent(encodedURI);
+	} catch (err) {
+		// Fallback to a more advanced decoder
+		return customDecodeURIComponent(encodedURI);
+	}
+};
+
+},{}],33:[function(require,module,exports){
+'use strict';
+module.exports = function (obj, predicate) {
+	var ret = {};
+	var keys = Object.keys(obj);
+	var isArr = Array.isArray(predicate);
+
+	for (var i = 0; i < keys.length; i++) {
+		var key = keys[i];
+		var val = obj[key];
+
+		if (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {
+			ret[key] = val;
+		}
+	}
+
+	return ret;
+};
+
+},{}],34:[function(require,module,exports){
+'use strict';
+
+module.exports = value => {
+	if (Object.prototype.toString.call(value) !== '[object Object]') {
+		return false;
+	}
+
+	const prototype = Object.getPrototypeOf(value);
+	return prototype === null || prototype === Object.prototype;
+};
+
+},{}],35:[function(require,module,exports){
+'use strict';
+const isOptionObject = require('is-plain-obj');
+
+const {hasOwnProperty} = Object.prototype;
+const {propertyIsEnumerable} = Object;
+const defineProperty = (object, name, value) => Object.defineProperty(object, name, {
+	value,
+	writable: true,
+	enumerable: true,
+	configurable: true
+});
+
+const globalThis = this;
+const defaultMergeOptions = {
+	concatArrays: false,
+	ignoreUndefined: false
+};
+
+const getEnumerableOwnPropertyKeys = value => {
+	const keys = [];
+
+	for (const key in value) {
+		if (hasOwnProperty.call(value, key)) {
+			keys.push(key);
+		}
+	}
+
+	/* istanbul ignore else  */
+	if (Object.getOwnPropertySymbols) {
+		const symbols = Object.getOwnPropertySymbols(value);
+
+		for (const symbol of symbols) {
+			if (propertyIsEnumerable.call(value, symbol)) {
+				keys.push(symbol);
+			}
+		}
+	}
+
+	return keys;
+};
+
+function clone(value) {
+	if (Array.isArray(value)) {
+		return cloneArray(value);
+	}
+
+	if (isOptionObject(value)) {
+		return cloneOptionObject(value);
+	}
+
+	return value;
+}
+
+function cloneArray(array) {
+	const result = array.slice(0, 0);
+
+	getEnumerableOwnPropertyKeys(array).forEach(key => {
+		defineProperty(result, key, clone(array[key]));
+	});
+
+	return result;
+}
+
+function cloneOptionObject(object) {
+	const result = Object.getPrototypeOf(object) === null ? Object.create(null) : {};
+
+	getEnumerableOwnPropertyKeys(object).forEach(key => {
+		defineProperty(result, key, clone(object[key]));
+	});
+
+	return result;
+}
+
+/**
+ * @param {*} merged already cloned
+ * @param {*} source something to merge
+ * @param {string[]} keys keys to merge
+ * @param {Object} config Config Object
+ * @returns {*} cloned Object
+ */
+const mergeKeys = (merged, source, keys, config) => {
+	keys.forEach(key => {
+		if (typeof source[key] === 'undefined' && config.ignoreUndefined) {
+			return;
+		}
+
+		// Do not recurse into prototype chain of merged
+		if (key in merged && merged[key] !== Object.getPrototypeOf(merged)) {
+			defineProperty(merged, key, merge(merged[key], source[key], config));
+		} else {
+			defineProperty(merged, key, clone(source[key]));
+		}
+	});
+
+	return merged;
+};
+
+/**
+ * @param {*} merged already cloned
+ * @param {*} source something to merge
+ * @param {Object} config Config Object
+ * @returns {*} cloned Object
+ *
+ * see [Array.prototype.concat ( ...arguments )](http://www.ecma-international.org/ecma-262/6.0/#sec-array.prototype.concat)
+ */
+const concatArrays = (merged, source, config) => {
+	let result = merged.slice(0, 0);
+	let resultIndex = 0;
+
+	[merged, source].forEach(array => {
+		const indices = [];
+
+		// `result.concat(array)` with cloning
+		for (let k = 0; k < array.length; k++) {
+			if (!hasOwnProperty.call(array, k)) {
+				continue;
+			}
+
+			indices.push(String(k));
+
+			if (array === merged) {
+				// Already cloned
+				defineProperty(result, resultIndex++, array[k]);
+			} else {
+				defineProperty(result, resultIndex++, clone(array[k]));
+			}
+		}
+
+		// Merge non-index keys
+		result = mergeKeys(result, array, getEnumerableOwnPropertyKeys(array).filter(key => !indices.includes(key)), config);
+	});
+
+	return result;
+};
+
+/**
+ * @param {*} merged already cloned
+ * @param {*} source something to merge
+ * @param {Object} config Config Object
+ * @returns {*} cloned Object
+ */
+function merge(merged, source, config) {
+	if (config.concatArrays && Array.isArray(merged) && Array.isArray(source)) {
+		return concatArrays(merged, source, config);
+	}
+
+	if (!isOptionObject(source) || !isOptionObject(merged)) {
+		return clone(source);
+	}
+
+	return mergeKeys(merged, source, getEnumerableOwnPropertyKeys(source), config);
+}
+
+module.exports = function (...options) {
+	const config = merge(clone(defaultMergeOptions), (this !== globalThis && this) || {}, defaultMergeOptions);
+	let merged = {_: {}};
+
+	for (const option of options) {
+		if (option === undefined) {
+			continue;
+		}
+
+		if (!isOptionObject(option)) {
+			throw new TypeError('`' + option + '` is not an Option Object');
+		}
+
+		merged = merge(merged, {_: option}, config);
+	}
+
+	return merged._;
+};
+
+},{"is-plain-obj":34}],36:[function(require,module,exports){
+// shim for using process in browser
+var process = module.exports = {};
+
+// cached from whatever global is present so that test runners that stub it
+// don't break things.  But we need to wrap it in a try catch in case it is
+// wrapped in strict mode code which doesn't define any globals.  It's inside a
+// function because try/catches deoptimize in certain engines.
+
+var cachedSetTimeout;
+var cachedClearTimeout;
+
+function defaultSetTimout() {
+    throw new Error('setTimeout has not been defined');
+}
+function defaultClearTimeout () {
+    throw new Error('clearTimeout has not been defined');
+}
+(function () {
+    try {
+        if (typeof setTimeout === 'function') {
+            cachedSetTimeout = setTimeout;
+        } else {
+            cachedSetTimeout = defaultSetTimout;
+        }
+    } catch (e) {
+        cachedSetTimeout = defaultSetTimout;
+    }
+    try {
+        if (typeof clearTimeout === 'function') {
+            cachedClearTimeout = clearTimeout;
+        } else {
+            cachedClearTimeout = defaultClearTimeout;
+        }
+    } catch (e) {
+        cachedClearTimeout = defaultClearTimeout;
+    }
+} ())
+function runTimeout(fun) {
+    if (cachedSetTimeout === setTimeout) {
+        //normal enviroments in sane situations
+        return setTimeout(fun, 0);
+    }
+    // if setTimeout wasn't available but was latter defined
+    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
+        cachedSetTimeout = setTimeout;
+        return setTimeout(fun, 0);
+    }
+    try {
+        // when when somebody has screwed with setTimeout but no I.E. maddness
+        return cachedSetTimeout(fun, 0);
+    } catch(e){
+        try {
+            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
+            return cachedSetTimeout.call(null, fun, 0);
+        } catch(e){
+            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
+            return cachedSetTimeout.call(this, fun, 0);
+        }
+    }
+
+
+}
+function runClearTimeout(marker) {
+    if (cachedClearTimeout === clearTimeout) {
+        //normal enviroments in sane situations
+        return clearTimeout(marker);
+    }
+    // if clearTimeout wasn't available but was latter defined
+    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
+        cachedClearTimeout = clearTimeout;
+        return clearTimeout(marker);
+    }
+    try {
+        // when when somebody has screwed with setTimeout but no I.E. maddness
+        return cachedClearTimeout(marker);
+    } catch (e){
+        try {
+            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally
+            return cachedClearTimeout.call(null, marker);
+        } catch (e){
+            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
+            // Some versions of I.E. have different rules for clearTimeout vs setTimeout
+            return cachedClearTimeout.call(this, marker);
+        }
+    }
+
+
+
+}
+var queue = [];
+var draining = false;
+var currentQueue;
+var queueIndex = -1;
+
+function cleanUpNextTick() {
+    if (!draining || !currentQueue) {
+        return;
+    }
+    draining = false;
+    if (currentQueue.length) {
+        queue = currentQueue.concat(queue);
+    } else {
+        queueIndex = -1;
+    }
+    if (queue.length) {
+        drainQueue();
+    }
+}
+
+function drainQueue() {
+    if (draining) {
+        return;
+    }
+    var timeout = runTimeout(cleanUpNextTick);
+    draining = true;
+
+    var len = queue.length;
+    while(len) {
+        currentQueue = queue;
+        queue = [];
+        while (++queueIndex < len) {
+            if (currentQueue) {
+                currentQueue[queueIndex].run();
+            }
+        }
+        queueIndex = -1;
+        len = queue.length;
+    }
+    currentQueue = null;
+    draining = false;
+    runClearTimeout(timeout);
+}
+
+process.nextTick = function (fun) {
+    var args = new Array(arguments.length - 1);
+    if (arguments.length > 1) {
+        for (var i = 1; i < arguments.length; i++) {
+            args[i - 1] = arguments[i];
+        }
+    }
+    queue.push(new Item(fun, args));
+    if (queue.length === 1 && !draining) {
+        runTimeout(drainQueue);
+    }
+};
+
+// v8 likes predictible objects
+function Item(fun, array) {
+    this.fun = fun;
+    this.array = array;
+}
+Item.prototype.run = function () {
+    this.fun.apply(null, this.array);
+};
+process.title = 'browser';
+process.browser = true;
+process.env = {};
+process.argv = [];
+process.version = ''; // empty string to avoid regexp issues
+process.versions = {};
+
+function noop() {}
+
+process.on = noop;
+process.addListener = noop;
+process.once = noop;
+process.off = noop;
+process.removeListener = noop;
+process.removeAllListeners = noop;
+process.emit = noop;
+process.prependListener = noop;
+process.prependOnceListener = noop;
+
+process.listeners = function (name) { return [] }
+
+process.binding = function (name) {
+    throw new Error('process.binding is not supported');
+};
+
+process.cwd = function () { return '/' };
+process.chdir = function (dir) {
+    throw new Error('process.chdir is not supported');
+};
+process.umask = function() { return 0; };
+
+},{}],37:[function(require,module,exports){
+'use strict';
+const strictUriEncode = require('strict-uri-encode');
+const decodeComponent = require('decode-uri-component');
+const splitOnFirst = require('split-on-first');
+const filterObject = require('filter-obj');
+
+const isNullOrUndefined = value => value === null || value === undefined;
+
+function encoderForArrayFormat(options) {
+	switch (options.arrayFormat) {
+		case 'index':
+			return key => (result, value) => {
+				const index = result.length;
+
+				if (
+					value === undefined ||
+					(options.skipNull && value === null) ||
+					(options.skipEmptyString && value === '')
+				) {
+					return result;
+				}
+
+				if (value === null) {
+					return [...result, [encode(key, options), '[', index, ']'].join('')];
+				}
+
+				return [
+					...result,
+					[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')
+				];
+			};
+
+		case 'bracket':
+			return key => (result, value) => {
+				if (
+					value === undefined ||
+					(options.skipNull && value === null) ||
+					(options.skipEmptyString && value === '')
+				) {
+					return result;
+				}
+
+				if (value === null) {
+					return [...result, [encode(key, options), '[]'].join('')];
+				}
+
+				return [...result, [encode(key, options), '[]=', encode(value, options)].join('')];
+			};
+
+		case 'comma':
+		case 'separator':
+			return key => (result, value) => {
+				if (value === null || value === undefined || value.length === 0) {
+					return result;
+				}
+
+				if (result.length === 0) {
+					return [[encode(key, options), '=', encode(value, options)].join('')];
+				}
+
+				return [[result, encode(value, options)].join(options.arrayFormatSeparator)];
+			};
+
+		default:
+			return key => (result, value) => {
+				if (
+					value === undefined ||
+					(options.skipNull && value === null) ||
+					(options.skipEmptyString && value === '')
+				) {
+					return result;
+				}
+
+				if (value === null) {
+					return [...result, encode(key, options)];
+				}
+
+				return [...result, [encode(key, options), '=', encode(value, options)].join('')];
+			};
+	}
+}
+
+function parserForArrayFormat(options) {
+	let result;
+
+	switch (options.arrayFormat) {
+		case 'index':
+			return (key, value, accumulator) => {
+				result = /\[(\d*)\]$/.exec(key);
+
+				key = key.replace(/\[\d*\]$/, '');
+
+				if (!result) {
+					accumulator[key] = value;
+					return;
+				}
+
+				if (accumulator[key] === undefined) {
+					accumulator[key] = {};
+				}
+
+				accumulator[key][result[1]] = value;
+			};
+
+		case 'bracket':
+			return (key, value, accumulator) => {
+				result = /(\[\])$/.exec(key);
+				key = key.replace(/\[\]$/, '');
+
+				if (!result) {
+					accumulator[key] = value;
+					return;
+				}
+
+				if (accumulator[key] === undefined) {
+					accumulator[key] = [value];
+					return;
+				}
+
+				accumulator[key] = [].concat(accumulator[key], value);
+			};
+
+		case 'comma':
+		case 'separator':
+			return (key, value, accumulator) => {
+				const isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);
+				const isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));
+				value = isEncodedArray ? decode(value, options) : value;
+				const newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);
+				accumulator[key] = newValue;
+			};
+
+		default:
+			return (key, value, accumulator) => {
+				if (accumulator[key] === undefined) {
+					accumulator[key] = value;
+					return;
+				}
+
+				accumulator[key] = [].concat(accumulator[key], value);
+			};
+	}
+}
+
+function validateArrayFormatSeparator(value) {
+	if (typeof value !== 'string' || value.length !== 1) {
+		throw new TypeError('arrayFormatSeparator must be single character string');
+	}
+}
+
+function encode(value, options) {
+	if (options.encode) {
+		return options.strict ? strictUriEncode(value) : encodeURIComponent(value);
+	}
+
+	return value;
+}
+
+function decode(value, options) {
+	if (options.decode) {
+		return decodeComponent(value);
+	}
+
+	return value;
+}
+
+function keysSorter(input) {
+	if (Array.isArray(input)) {
+		return input.sort();
+	}
+
+	if (typeof input === 'object') {
+		return keysSorter(Object.keys(input))
+			.sort((a, b) => Number(a) - Number(b))
+			.map(key => input[key]);
+	}
+
+	return input;
+}
+
+function removeHash(input) {
+	const hashStart = input.indexOf('#');
+	if (hashStart !== -1) {
+		input = input.slice(0, hashStart);
+	}
+
+	return input;
+}
+
+function getHash(url) {
+	let hash = '';
+	const hashStart = url.indexOf('#');
+	if (hashStart !== -1) {
+		hash = url.slice(hashStart);
+	}
+
+	return hash;
+}
+
+function extract(input) {
+	input = removeHash(input);
+	const queryStart = input.indexOf('?');
+	if (queryStart === -1) {
+		return '';
+	}
+
+	return input.slice(queryStart + 1);
+}
+
+function parseValue(value, options) {
+	if (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {
+		value = Number(value);
+	} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {
+		value = value.toLowerCase() === 'true';
+	}
+
+	return value;
+}
+
+function parse(query, options) {
+	options = Object.assign({
+		decode: true,
+		sort: true,
+		arrayFormat: 'none',
+		arrayFormatSeparator: ',',
+		parseNumbers: false,
+		parseBooleans: false
+	}, options);
+
+	validateArrayFormatSeparator(options.arrayFormatSeparator);
+
+	const formatter = parserForArrayFormat(options);
+
+	// Create an object with no prototype
+	const ret = Object.create(null);
+
+	if (typeof query !== 'string') {
+		return ret;
+	}
+
+	query = query.trim().replace(/^[?#&]/, '');
+
+	if (!query) {
+		return ret;
+	}
+
+	for (const param of query.split('&')) {
+		if (param === '') {
+			continue;
+		}
+
+		let [key, value] = splitOnFirst(options.decode ? param.replace(/\+/g, ' ') : param, '=');
+
+		// Missing `=` should be `null`:
+		// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters
+		value = value === undefined ? null : ['comma', 'separator'].includes(options.arrayFormat) ? value : decode(value, options);
+		formatter(decode(key, options), value, ret);
+	}
+
+	for (const key of Object.keys(ret)) {
+		const value = ret[key];
+		if (typeof value === 'object' && value !== null) {
+			for (const k of Object.keys(value)) {
+				value[k] = parseValue(value[k], options);
+			}
+		} else {
+			ret[key] = parseValue(value, options);
+		}
+	}
+
+	if (options.sort === false) {
+		return ret;
+	}
+
+	return (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {
+		const value = ret[key];
+		if (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {
+			// Sort object keys, not values
+			result[key] = keysSorter(value);
+		} else {
+			result[key] = value;
+		}
+
+		return result;
+	}, Object.create(null));
+}
+
+exports.extract = extract;
+exports.parse = parse;
+
+exports.stringify = (object, options) => {
+	if (!object) {
+		return '';
+	}
+
+	options = Object.assign({
+		encode: true,
+		strict: true,
+		arrayFormat: 'none',
+		arrayFormatSeparator: ','
+	}, options);
+
+	validateArrayFormatSeparator(options.arrayFormatSeparator);
+
+	const shouldFilter = key => (
+		(options.skipNull && isNullOrUndefined(object[key])) ||
+		(options.skipEmptyString && object[key] === '')
+	);
+
+	const formatter = encoderForArrayFormat(options);
+
+	const objectCopy = {};
+
+	for (const key of Object.keys(object)) {
+		if (!shouldFilter(key)) {
+			objectCopy[key] = object[key];
+		}
+	}
+
+	const keys = Object.keys(objectCopy);
+
+	if (options.sort !== false) {
+		keys.sort(options.sort);
+	}
+
+	return keys.map(key => {
+		const value = object[key];
+
+		if (value === undefined) {
+			return '';
+		}
+
+		if (value === null) {
+			return encode(key, options);
+		}
+
+		if (Array.isArray(value)) {
+			return value
+				.reduce(formatter(key), [])
+				.join('&');
+		}
+
+		return encode(key, options) + '=' + encode(value, options);
+	}).filter(x => x.length > 0).join('&');
+};
+
+exports.parseUrl = (url, options) => {
+	options = Object.assign({
+		decode: true
+	}, options);
+
+	const [url_, hash] = splitOnFirst(url, '#');
+
+	return Object.assign(
+		{
+			url: url_.split('?')[0] || '',
+			query: parse(extract(url), options)
+		},
+		options && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}
+	);
+};
+
+exports.stringifyUrl = (object, options) => {
+	options = Object.assign({
+		encode: true,
+		strict: true
+	}, options);
+
+	const url = removeHash(object.url).split('?')[0] || '';
+	const queryFromUrl = exports.extract(object.url);
+	const parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});
+
+	const query = Object.assign(parsedQueryFromUrl, object.query);
+	let queryString = exports.stringify(query, options);
+	if (queryString) {
+		queryString = `?${queryString}`;
+	}
+
+	let hash = getHash(object.url);
+	if (object.fragmentIdentifier) {
+		hash = `#${encode(object.fragmentIdentifier, options)}`;
+	}
+
+	return `${url}${queryString}${hash}`;
+};
+
+exports.pick = (input, filter, options) => {
+	options = Object.assign({
+		parseFragmentIdentifier: true
+	}, options);
+
+	const {url, query, fragmentIdentifier} = exports.parseUrl(input, options);
+	return exports.stringifyUrl({
+		url,
+		query: filterObject(query, filter),
+		fragmentIdentifier
+	}, options);
+};
+
+exports.exclude = (input, filter, options) => {
+	const exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);
+
+	return exports.pick(input, exclusionFilter, options);
+};
+
+},{"decode-uri-component":32,"filter-obj":33,"split-on-first":38,"strict-uri-encode":39}],38:[function(require,module,exports){
+'use strict';
+
+module.exports = (string, separator) => {
+	if (!(typeof string === 'string' && typeof separator === 'string')) {
+		throw new TypeError('Expected the arguments to be of type `string`');
+	}
+
+	if (separator === '') {
+		return [string];
+	}
+
+	const separatorIndex = string.indexOf(separator);
+
+	if (separatorIndex === -1) {
+		return [string];
+	}
+
+	return [
+		string.slice(0, separatorIndex),
+		string.slice(separatorIndex + separator.length)
+	];
+};
+
+},{}],39:[function(require,module,exports){
+'use strict';
+module.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);
+
+},{}],40:[function(require,module,exports){
+(function(module) {
+    'use strict';
+
+    module.exports.is_uri = is_iri;
+    module.exports.is_http_uri = is_http_iri;
+    module.exports.is_https_uri = is_https_iri;
+    module.exports.is_web_uri = is_web_iri;
+    // Create aliases
+    module.exports.isUri = is_iri;
+    module.exports.isHttpUri = is_http_iri;
+    module.exports.isHttpsUri = is_https_iri;
+    module.exports.isWebUri = is_web_iri;
+
+
+    // private function
+    // internal URI spitter method - direct from RFC 3986
+    var splitUri = function(uri) {
+        var splitted = uri.match(/(?:([^:\/?#]+):)?(?:\/\/([^\/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?/);
+        return splitted;
+    };
+
+    function is_iri(value) {
+        if (!value) {
+            return;
+        }
+
+        // check for illegal characters
+        if (/[^a-z0-9\:\/\?\#\[\]\@\!\$\&\'\(\)\*\+\,\;\=\.\-\_\~\%]/i.test(value)) return;
+
+        // check for hex escapes that aren't complete
+        if (/%[^0-9a-f]/i.test(value)) return;
+        if (/%[0-9a-f](:?[^0-9a-f]|$)/i.test(value)) return;
+
+        var splitted = [];
+        var scheme = '';
+        var authority = '';
+        var path = '';
+        var query = '';
+        var fragment = '';
+        var out = '';
+
+        // from RFC 3986
+        splitted = splitUri(value);
+        scheme = splitted[1]; 
+        authority = splitted[2];
+        path = splitted[3];
+        query = splitted[4];
+        fragment = splitted[5];
+
+        // scheme and path are required, though the path can be empty
+        if (!(scheme && scheme.length && path.length >= 0)) return;
+
+        // if authority is present, the path must be empty or begin with a /
+        if (authority && authority.length) {
+            if (!(path.length === 0 || /^\//.test(path))) return;
+        } else {
+            // if authority is not present, the path must not start with //
+            if (/^\/\//.test(path)) return;
+        }
+
+        // scheme must begin with a letter, then consist of letters, digits, +, ., or -
+        if (!/^[a-z][a-z0-9\+\-\.]*$/.test(scheme.toLowerCase()))  return;
+
+        // re-assemble the URL per section 5.3 in RFC 3986
+        out += scheme + ':';
+        if (authority && authority.length) {
+            out += '//' + authority;
+        }
+
+        out += path;
+
+        if (query && query.length) {
+            out += '?' + query;
+        }
+
+        if (fragment && fragment.length) {
+            out += '#' + fragment;
+        }
+
+        return out;
+    }
+
+    function is_http_iri(value, allowHttps) {
+        if (!is_iri(value)) {
+            return;
+        }
+
+        var splitted = [];
+        var scheme = '';
+        var authority = '';
+        var path = '';
+        var port = '';
+        var query = '';
+        var fragment = '';
+        var out = '';
+
+        // from RFC 3986
+        splitted = splitUri(value);
+        scheme = splitted[1]; 
+        authority = splitted[2];
+        path = splitted[3];
+        query = splitted[4];
+        fragment = splitted[5];
+
+        if (!scheme)  return;
+
+        if(allowHttps) {
+            if (scheme.toLowerCase() != 'https') return;
+        } else {
+            if (scheme.toLowerCase() != 'http') return;
+        }
+
+        // fully-qualified URIs must have an authority section that is
+        // a valid host
+        if (!authority) {
+            return;
+        }
+
+        // enable port component
+        if (/:(\d+)$/.test(authority)) {
+            port = authority.match(/:(\d+)$/)[0];
+            authority = authority.replace(/:\d+$/, '');
+        }
+
+        out += scheme + ':';
+        out += '//' + authority;
+        
+        if (port) {
+            out += port;
+        }
+        
+        out += path;
+        
+        if(query && query.length){
+            out += '?' + query;
+        }
+
+        if(fragment && fragment.length){
+            out += '#' + fragment;
+        }
+        
+        return out;
+    }
+
+    function is_https_iri(value) {
+        return is_http_iri(value, true);
+    }
+
+    function is_web_iri(value) {
+        return (is_http_iri(value) || is_https_iri(value));
+    }
+
+})(module);
+
+},{}],41:[function(require,module,exports){
+"use strict";
+
+function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = void 0;
+
+var _toDate = _interopRequireDefault(require("./lib/toDate"));
+
+var _toFloat = _interopRequireDefault(require("./lib/toFloat"));
+
+var _toInt = _interopRequireDefault(require("./lib/toInt"));
+
+var _toBoolean = _interopRequireDefault(require("./lib/toBoolean"));
+
+var _equals = _interopRequireDefault(require("./lib/equals"));
+
+var _contains = _interopRequireDefault(require("./lib/contains"));
+
+var _matches = _interopRequireDefault(require("./lib/matches"));
+
+var _isEmail = _interopRequireDefault(require("./lib/isEmail"));
+
+var _isURL = _interopRequireDefault(require("./lib/isURL"));
+
+var _isMACAddress = _interopRequireDefault(require("./lib/isMACAddress"));
+
+var _isIP = _interopRequireDefault(require("./lib/isIP"));
+
+var _isIPRange = _interopRequireDefault(require("./lib/isIPRange"));
+
+var _isFQDN = _interopRequireDefault(require("./lib/isFQDN"));
+
+var _isDate = _interopRequireDefault(require("./lib/isDate"));
+
+var _isBoolean = _interopRequireDefault(require("./lib/isBoolean"));
+
+var _isLocale = _interopRequireDefault(require("./lib/isLocale"));
+
+var _isAlpha = _interopRequireWildcard(require("./lib/isAlpha"));
+
+var _isAlphanumeric = _interopRequireWildcard(require("./lib/isAlphanumeric"));
+
+var _isNumeric = _interopRequireDefault(require("./lib/isNumeric"));
+
+var _isPassportNumber = _interopRequireDefault(require("./lib/isPassportNumber"));
+
+var _isPort = _interopRequireDefault(require("./lib/isPort"));
+
+var _isLowercase = _interopRequireDefault(require("./lib/isLowercase"));
+
+var _isUppercase = _interopRequireDefault(require("./lib/isUppercase"));
+
+var _isIMEI = _interopRequireDefault(require("./lib/isIMEI"));
+
+var _isAscii = _interopRequireDefault(require("./lib/isAscii"));
+
+var _isFullWidth = _interopRequireDefault(require("./lib/isFullWidth"));
+
+var _isHalfWidth = _interopRequireDefault(require("./lib/isHalfWidth"));
+
+var _isVariableWidth = _interopRequireDefault(require("./lib/isVariableWidth"));
+
+var _isMultibyte = _interopRequireDefault(require("./lib/isMultibyte"));
+
+var _isSemVer = _interopRequireDefault(require("./lib/isSemVer"));
+
+var _isSurrogatePair = _interopRequireDefault(require("./lib/isSurrogatePair"));
+
+var _isInt = _interopRequireDefault(require("./lib/isInt"));
+
+var _isFloat = _interopRequireWildcard(require("./lib/isFloat"));
+
+var _isDecimal = _interopRequireDefault(require("./lib/isDecimal"));
+
+var _isHexadecimal = _interopRequireDefault(require("./lib/isHexadecimal"));
+
+var _isOctal = _interopRequireDefault(require("./lib/isOctal"));
+
+var _isDivisibleBy = _interopRequireDefault(require("./lib/isDivisibleBy"));
+
+var _isHexColor = _interopRequireDefault(require("./lib/isHexColor"));
+
+var _isRgbColor = _interopRequireDefault(require("./lib/isRgbColor"));
+
+var _isHSL = _interopRequireDefault(require("./lib/isHSL"));
+
+var _isISRC = _interopRequireDefault(require("./lib/isISRC"));
+
+var _isIBAN = _interopRequireWildcard(require("./lib/isIBAN"));
+
+var _isBIC = _interopRequireDefault(require("./lib/isBIC"));
+
+var _isMD = _interopRequireDefault(require("./lib/isMD5"));
+
+var _isHash = _interopRequireDefault(require("./lib/isHash"));
+
+var _isJWT = _interopRequireDefault(require("./lib/isJWT"));
+
+var _isJSON = _interopRequireDefault(require("./lib/isJSON"));
+
+var _isEmpty = _interopRequireDefault(require("./lib/isEmpty"));
+
+var _isLength = _interopRequireDefault(require("./lib/isLength"));
+
+var _isByteLength = _interopRequireDefault(require("./lib/isByteLength"));
+
+var _isUUID = _interopRequireDefault(require("./lib/isUUID"));
+
+var _isMongoId = _interopRequireDefault(require("./lib/isMongoId"));
+
+var _isAfter = _interopRequireDefault(require("./lib/isAfter"));
+
+var _isBefore = _interopRequireDefault(require("./lib/isBefore"));
+
+var _isIn = _interopRequireDefault(require("./lib/isIn"));
+
+var _isCreditCard = _interopRequireDefault(require("./lib/isCreditCard"));
+
+var _isIdentityCard = _interopRequireDefault(require("./lib/isIdentityCard"));
+
+var _isEAN = _interopRequireDefault(require("./lib/isEAN"));
+
+var _isISIN = _interopRequireDefault(require("./lib/isISIN"));
+
+var _isISBN = _interopRequireDefault(require("./lib/isISBN"));
+
+var _isISSN = _interopRequireDefault(require("./lib/isISSN"));
+
+var _isTaxID = _interopRequireDefault(require("./lib/isTaxID"));
+
+var _isMobilePhone = _interopRequireWildcard(require("./lib/isMobilePhone"));
+
+var _isEthereumAddress = _interopRequireDefault(require("./lib/isEthereumAddress"));
+
+var _isCurrency = _interopRequireDefault(require("./lib/isCurrency"));
+
+var _isBtcAddress = _interopRequireDefault(require("./lib/isBtcAddress"));
+
+var _isISO = _interopRequireDefault(require("./lib/isISO8601"));
+
+var _isRFC = _interopRequireDefault(require("./lib/isRFC3339"));
+
+var _isISO31661Alpha = _interopRequireDefault(require("./lib/isISO31661Alpha2"));
+
+var _isISO31661Alpha2 = _interopRequireDefault(require("./lib/isISO31661Alpha3"));
+
+var _isISO2 = _interopRequireDefault(require("./lib/isISO4217"));
+
+var _isBase = _interopRequireDefault(require("./lib/isBase32"));
+
+var _isBase2 = _interopRequireDefault(require("./lib/isBase58"));
+
+var _isBase3 = _interopRequireDefault(require("./lib/isBase64"));
+
+var _isDataURI = _interopRequireDefault(require("./lib/isDataURI"));
+
+var _isMagnetURI = _interopRequireDefault(require("./lib/isMagnetURI"));
+
+var _isMimeType = _interopRequireDefault(require("./lib/isMimeType"));
+
+var _isLatLong = _interopRequireDefault(require("./lib/isLatLong"));
+
+var _isPostalCode = _interopRequireWildcard(require("./lib/isPostalCode"));
+
+var _ltrim = _interopRequireDefault(require("./lib/ltrim"));
+
+var _rtrim = _interopRequireDefault(require("./lib/rtrim"));
+
+var _trim = _interopRequireDefault(require("./lib/trim"));
+
+var _escape = _interopRequireDefault(require("./lib/escape"));
+
+var _unescape = _interopRequireDefault(require("./lib/unescape"));
+
+var _stripLow = _interopRequireDefault(require("./lib/stripLow"));
+
+var _whitelist = _interopRequireDefault(require("./lib/whitelist"));
+
+var _blacklist = _interopRequireDefault(require("./lib/blacklist"));
+
+var _isWhitelisted = _interopRequireDefault(require("./lib/isWhitelisted"));
+
+var _normalizeEmail = _interopRequireDefault(require("./lib/normalizeEmail"));
+
+var _isSlug = _interopRequireDefault(require("./lib/isSlug"));
+
+var _isLicensePlate = _interopRequireDefault(require("./lib/isLicensePlate"));
+
+var _isStrongPassword = _interopRequireDefault(require("./lib/isStrongPassword"));
+
+var _isVAT = _interopRequireDefault(require("./lib/isVAT"));
+
+function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
+
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var version = '13.7.0';
+var validator = {
+  version: version,
+  toDate: _toDate.default,
+  toFloat: _toFloat.default,
+  toInt: _toInt.default,
+  toBoolean: _toBoolean.default,
+  equals: _equals.default,
+  contains: _contains.default,
+  matches: _matches.default,
+  isEmail: _isEmail.default,
+  isURL: _isURL.default,
+  isMACAddress: _isMACAddress.default,
+  isIP: _isIP.default,
+  isIPRange: _isIPRange.default,
+  isFQDN: _isFQDN.default,
+  isBoolean: _isBoolean.default,
+  isIBAN: _isIBAN.default,
+  isBIC: _isBIC.default,
+  isAlpha: _isAlpha.default,
+  isAlphaLocales: _isAlpha.locales,
+  isAlphanumeric: _isAlphanumeric.default,
+  isAlphanumericLocales: _isAlphanumeric.locales,
+  isNumeric: _isNumeric.default,
+  isPassportNumber: _isPassportNumber.default,
+  isPort: _isPort.default,
+  isLowercase: _isLowercase.default,
+  isUppercase: _isUppercase.default,
+  isAscii: _isAscii.default,
+  isFullWidth: _isFullWidth.default,
+  isHalfWidth: _isHalfWidth.default,
+  isVariableWidth: _isVariableWidth.default,
+  isMultibyte: _isMultibyte.default,
+  isSemVer: _isSemVer.default,
+  isSurrogatePair: _isSurrogatePair.default,
+  isInt: _isInt.default,
+  isIMEI: _isIMEI.default,
+  isFloat: _isFloat.default,
+  isFloatLocales: _isFloat.locales,
+  isDecimal: _isDecimal.default,
+  isHexadecimal: _isHexadecimal.default,
+  isOctal: _isOctal.default,
+  isDivisibleBy: _isDivisibleBy.default,
+  isHexColor: _isHexColor.default,
+  isRgbColor: _isRgbColor.default,
+  isHSL: _isHSL.default,
+  isISRC: _isISRC.default,
+  isMD5: _isMD.default,
+  isHash: _isHash.default,
+  isJWT: _isJWT.default,
+  isJSON: _isJSON.default,
+  isEmpty: _isEmpty.default,
+  isLength: _isLength.default,
+  isLocale: _isLocale.default,
+  isByteLength: _isByteLength.default,
+  isUUID: _isUUID.default,
+  isMongoId: _isMongoId.default,
+  isAfter: _isAfter.default,
+  isBefore: _isBefore.default,
+  isIn: _isIn.default,
+  isCreditCard: _isCreditCard.default,
+  isIdentityCard: _isIdentityCard.default,
+  isEAN: _isEAN.default,
+  isISIN: _isISIN.default,
+  isISBN: _isISBN.default,
+  isISSN: _isISSN.default,
+  isMobilePhone: _isMobilePhone.default,
+  isMobilePhoneLocales: _isMobilePhone.locales,
+  isPostalCode: _isPostalCode.default,
+  isPostalCodeLocales: _isPostalCode.locales,
+  isEthereumAddress: _isEthereumAddress.default,
+  isCurrency: _isCurrency.default,
+  isBtcAddress: _isBtcAddress.default,
+  isISO8601: _isISO.default,
+  isRFC3339: _isRFC.default,
+  isISO31661Alpha2: _isISO31661Alpha.default,
+  isISO31661Alpha3: _isISO31661Alpha2.default,
+  isISO4217: _isISO2.default,
+  isBase32: _isBase.default,
+  isBase58: _isBase2.default,
+  isBase64: _isBase3.default,
+  isDataURI: _isDataURI.default,
+  isMagnetURI: _isMagnetURI.default,
+  isMimeType: _isMimeType.default,
+  isLatLong: _isLatLong.default,
+  ltrim: _ltrim.default,
+  rtrim: _rtrim.default,
+  trim: _trim.default,
+  escape: _escape.default,
+  unescape: _unescape.default,
+  stripLow: _stripLow.default,
+  whitelist: _whitelist.default,
+  blacklist: _blacklist.default,
+  isWhitelisted: _isWhitelisted.default,
+  normalizeEmail: _normalizeEmail.default,
+  toString: toString,
+  isSlug: _isSlug.default,
+  isStrongPassword: _isStrongPassword.default,
+  isTaxID: _isTaxID.default,
+  isDate: _isDate.default,
+  isLicensePlate: _isLicensePlate.default,
+  isVAT: _isVAT.default,
+  ibanLocales: _isIBAN.locales
+};
+var _default = validator;
+exports.default = _default;
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./lib/blacklist":43,"./lib/contains":44,"./lib/equals":45,"./lib/escape":46,"./lib/isAfter":47,"./lib/isAlpha":48,"./lib/isAlphanumeric":49,"./lib/isAscii":50,"./lib/isBIC":51,"./lib/isBase32":52,"./lib/isBase58":53,"./lib/isBase64":54,"./lib/isBefore":55,"./lib/isBoolean":56,"./lib/isBtcAddress":57,"./lib/isByteLength":58,"./lib/isCreditCard":59,"./lib/isCurrency":60,"./lib/isDataURI":61,"./lib/isDate":62,"./lib/isDecimal":63,"./lib/isDivisibleBy":64,"./lib/isEAN":65,"./lib/isEmail":66,"./lib/isEmpty":67,"./lib/isEthereumAddress":68,"./lib/isFQDN":69,"./lib/isFloat":70,"./lib/isFullWidth":71,"./lib/isHSL":72,"./lib/isHalfWidth":73,"./lib/isHash":74,"./lib/isHexColor":75,"./lib/isHexadecimal":76,"./lib/isIBAN":77,"./lib/isIMEI":78,"./lib/isIP":79,"./lib/isIPRange":80,"./lib/isISBN":81,"./lib/isISIN":82,"./lib/isISO31661Alpha2":83,"./lib/isISO31661Alpha3":84,"./lib/isISO4217":85,"./lib/isISO8601":86,"./lib/isISRC":87,"./lib/isISSN":88,"./lib/isIdentityCard":89,"./lib/isIn":90,"./lib/isInt":91,"./lib/isJSON":92,"./lib/isJWT":93,"./lib/isLatLong":94,"./lib/isLength":95,"./lib/isLicensePlate":96,"./lib/isLocale":97,"./lib/isLowercase":98,"./lib/isMACAddress":99,"./lib/isMD5":100,"./lib/isMagnetURI":101,"./lib/isMimeType":102,"./lib/isMobilePhone":103,"./lib/isMongoId":104,"./lib/isMultibyte":105,"./lib/isNumeric":106,"./lib/isOctal":107,"./lib/isPassportNumber":108,"./lib/isPort":109,"./lib/isPostalCode":110,"./lib/isRFC3339":111,"./lib/isRgbColor":112,"./lib/isSemVer":113,"./lib/isSlug":114,"./lib/isStrongPassword":115,"./lib/isSurrogatePair":116,"./lib/isTaxID":117,"./lib/isURL":118,"./lib/isUUID":119,"./lib/isUppercase":120,"./lib/isVAT":121,"./lib/isVariableWidth":122,"./lib/isWhitelisted":123,"./lib/ltrim":124,"./lib/matches":125,"./lib/normalizeEmail":126,"./lib/rtrim":127,"./lib/stripLow":128,"./lib/toBoolean":129,"./lib/toDate":130,"./lib/toFloat":131,"./lib/toInt":132,"./lib/trim":133,"./lib/unescape":134,"./lib/whitelist":141}],42:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.commaDecimal = exports.dotDecimal = exports.farsiLocales = exports.arabicLocales = exports.englishLocales = exports.decimal = exports.alphanumeric = exports.alpha = void 0;
+var alpha = {
+  'en-US': /^[A-Z]+$/i,
+  'az-AZ': /^[A-VXYZÇƏĞİıÖŞÜ]+$/i,
+  'bg-BG': /^[А-Я]+$/i,
+  'cs-CZ': /^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,
+  'da-DK': /^[A-ZÆØÅ]+$/i,
+  'de-DE': /^[A-ZÄÖÜß]+$/i,
+  'el-GR': /^[Α-ώ]+$/i,
+  'es-ES': /^[A-ZÁÉÍÑÓÚÜ]+$/i,
+  'fa-IR': /^[ابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی]+$/i,
+  'fi-FI': /^[A-ZÅÄÖ]+$/i,
+  'fr-FR': /^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,
+  'it-IT': /^[A-ZÀÉÈÌÎÓÒÙ]+$/i,
+  'nb-NO': /^[A-ZÆØÅ]+$/i,
+  'nl-NL': /^[A-ZÁÉËÏÓÖÜÚ]+$/i,
+  'nn-NO': /^[A-ZÆØÅ]+$/i,
+  'hu-HU': /^[A-ZÁÉÍÓÖŐÚÜŰ]+$/i,
+  'pl-PL': /^[A-ZĄĆĘŚŁŃÓŻŹ]+$/i,
+  'pt-PT': /^[A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,
+  'ru-RU': /^[А-ЯЁ]+$/i,
+  'sl-SI': /^[A-ZČĆĐŠŽ]+$/i,
+  'sk-SK': /^[A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,
+  'sr-RS@latin': /^[A-ZČĆŽŠĐ]+$/i,
+  'sr-RS': /^[А-ЯЂЈЉЊЋЏ]+$/i,
+  'sv-SE': /^[A-ZÅÄÖ]+$/i,
+  'th-TH': /^[ก-๐\s]+$/i,
+  'tr-TR': /^[A-ZÇĞİıÖŞÜ]+$/i,
+  'uk-UA': /^[А-ЩЬЮЯЄIЇҐі]+$/i,
+  'vi-VN': /^[A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i,
+  'ku-IQ': /^[ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,
+  ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,
+  he: /^[א-ת]+$/,
+  fa: /^['آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی']+$/i,
+  'hi-IN': /^[\u0900-\u0961]+[\u0972-\u097F]*$/i
+};
+exports.alpha = alpha;
+var alphanumeric = {
+  'en-US': /^[0-9A-Z]+$/i,
+  'az-AZ': /^[0-9A-VXYZÇƏĞİıÖŞÜ]+$/i,
+  'bg-BG': /^[0-9А-Я]+$/i,
+  'cs-CZ': /^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,
+  'da-DK': /^[0-9A-ZÆØÅ]+$/i,
+  'de-DE': /^[0-9A-ZÄÖÜß]+$/i,
+  'el-GR': /^[0-9Α-ω]+$/i,
+  'es-ES': /^[0-9A-ZÁÉÍÑÓÚÜ]+$/i,
+  'fi-FI': /^[0-9A-ZÅÄÖ]+$/i,
+  'fr-FR': /^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,
+  'it-IT': /^[0-9A-ZÀÉÈÌÎÓÒÙ]+$/i,
+  'hu-HU': /^[0-9A-ZÁÉÍÓÖŐÚÜŰ]+$/i,
+  'nb-NO': /^[0-9A-ZÆØÅ]+$/i,
+  'nl-NL': /^[0-9A-ZÁÉËÏÓÖÜÚ]+$/i,
+  'nn-NO': /^[0-9A-ZÆØÅ]+$/i,
+  'pl-PL': /^[0-9A-ZĄĆĘŚŁŃÓŻŹ]+$/i,
+  'pt-PT': /^[0-9A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,
+  'ru-RU': /^[0-9А-ЯЁ]+$/i,
+  'sl-SI': /^[0-9A-ZČĆĐŠŽ]+$/i,
+  'sk-SK': /^[0-9A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,
+  'sr-RS@latin': /^[0-9A-ZČĆŽŠĐ]+$/i,
+  'sr-RS': /^[0-9А-ЯЂЈЉЊЋЏ]+$/i,
+  'sv-SE': /^[0-9A-ZÅÄÖ]+$/i,
+  'th-TH': /^[ก-๙\s]+$/i,
+  'tr-TR': /^[0-9A-ZÇĞİıÖŞÜ]+$/i,
+  'uk-UA': /^[0-9А-ЩЬЮЯЄIЇҐі]+$/i,
+  'ku-IQ': /^[٠١٢٣٤٥٦٧٨٩0-9ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,
+  'vi-VN': /^[0-9A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i,
+  ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,
+  he: /^[0-9א-ת]+$/,
+  fa: /^['0-9آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی۱۲۳۴۵۶۷۸۹۰']+$/i,
+  'hi-IN': /^[\u0900-\u0963]+[\u0966-\u097F]*$/i
+};
+exports.alphanumeric = alphanumeric;
+var decimal = {
+  'en-US': '.',
+  ar: '٫'
+};
+exports.decimal = decimal;
+var englishLocales = ['AU', 'GB', 'HK', 'IN', 'NZ', 'ZA', 'ZM'];
+exports.englishLocales = englishLocales;
+
+for (var locale, i = 0; i < englishLocales.length; i++) {
+  locale = "en-".concat(englishLocales[i]);
+  alpha[locale] = alpha['en-US'];
+  alphanumeric[locale] = alphanumeric['en-US'];
+  decimal[locale] = decimal['en-US'];
+} // Source: http://www.localeplanet.com/java/
+
+
+var arabicLocales = ['AE', 'BH', 'DZ', 'EG', 'IQ', 'JO', 'KW', 'LB', 'LY', 'MA', 'QM', 'QA', 'SA', 'SD', 'SY', 'TN', 'YE'];
+exports.arabicLocales = arabicLocales;
+
+for (var _locale, _i = 0; _i < arabicLocales.length; _i++) {
+  _locale = "ar-".concat(arabicLocales[_i]);
+  alpha[_locale] = alpha.ar;
+  alphanumeric[_locale] = alphanumeric.ar;
+  decimal[_locale] = decimal.ar;
+}
+
+var farsiLocales = ['IR', 'AF'];
+exports.farsiLocales = farsiLocales;
+
+for (var _locale2, _i2 = 0; _i2 < farsiLocales.length; _i2++) {
+  _locale2 = "fa-".concat(farsiLocales[_i2]);
+  alphanumeric[_locale2] = alphanumeric.fa;
+  decimal[_locale2] = decimal.ar;
+} // Source: https://en.wikipedia.org/wiki/Decimal_mark
+
+
+var dotDecimal = ['ar-EG', 'ar-LB', 'ar-LY'];
+exports.dotDecimal = dotDecimal;
+var commaDecimal = ['bg-BG', 'cs-CZ', 'da-DK', 'de-DE', 'el-GR', 'en-ZM', 'es-ES', 'fr-CA', 'fr-FR', 'id-ID', 'it-IT', 'ku-IQ', 'hi-IN', 'hu-HU', 'nb-NO', 'nn-NO', 'nl-NL', 'pl-PL', 'pt-PT', 'ru-RU', 'sl-SI', 'sr-RS@latin', 'sr-RS', 'sv-SE', 'tr-TR', 'uk-UA', 'vi-VN'];
+exports.commaDecimal = commaDecimal;
+
+for (var _i3 = 0; _i3 < dotDecimal.length; _i3++) {
+  decimal[dotDecimal[_i3]] = decimal['en-US'];
+}
+
+for (var _i4 = 0; _i4 < commaDecimal.length; _i4++) {
+  decimal[commaDecimal[_i4]] = ',';
+}
+
+alpha['fr-CA'] = alpha['fr-FR'];
+alphanumeric['fr-CA'] = alphanumeric['fr-FR'];
+alpha['pt-BR'] = alpha['pt-PT'];
+alphanumeric['pt-BR'] = alphanumeric['pt-PT'];
+decimal['pt-BR'] = decimal['pt-PT']; // see #862
+
+alpha['pl-Pl'] = alpha['pl-PL'];
+alphanumeric['pl-Pl'] = alphanumeric['pl-PL'];
+decimal['pl-Pl'] = decimal['pl-PL']; // see #1455
+
+alpha['fa-AF'] = alpha.fa;
+},{}],43:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = blacklist;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function blacklist(str, chars) {
+  (0, _assertString.default)(str);
+  return str.replace(new RegExp("[".concat(chars, "]+"), 'g'), '');
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],44:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = contains;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+var _toString = _interopRequireDefault(require("./util/toString"));
+
+var _merge = _interopRequireDefault(require("./util/merge"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var defaulContainsOptions = {
+  ignoreCase: false,
+  minOccurrences: 1
+};
+
+function contains(str, elem, options) {
+  (0, _assertString.default)(str);
+  options = (0, _merge.default)(options, defaulContainsOptions);
+
+  if (options.ignoreCase) {
+    return str.toLowerCase().split((0, _toString.default)(elem).toLowerCase()).length > options.minOccurrences;
+  }
+
+  return str.split((0, _toString.default)(elem)).length > options.minOccurrences;
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136,"./util/merge":138,"./util/toString":140}],45:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = equals;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function equals(str, comparison) {
+  (0, _assertString.default)(str);
+  return str === comparison;
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],46:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = escape;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function escape(str) {
+  (0, _assertString.default)(str);
+  return str.replace(/&/g, '&amp;').replace(/"/g, '&quot;').replace(/'/g, '&#x27;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/\//g, '&#x2F;').replace(/\\/g, '&#x5C;').replace(/`/g, '&#96;');
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],47:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isAfter;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+var _toDate = _interopRequireDefault(require("./toDate"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function isAfter(str) {
+  var date = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : String(new Date());
+  (0, _assertString.default)(str);
+  var comparison = (0, _toDate.default)(date);
+  var original = (0, _toDate.default)(str);
+  return !!(original && comparison && original > comparison);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./toDate":130,"./util/assertString":136}],48:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isAlpha;
+exports.locales = void 0;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+var _alpha = require("./alpha");
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function isAlpha(_str) {
+  var locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en-US';
+  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
+  (0, _assertString.default)(_str);
+  var str = _str;
+  var ignore = options.ignore;
+
+  if (ignore) {
+    if (ignore instanceof RegExp) {
+      str = str.replace(ignore, '');
+    } else if (typeof ignore === 'string') {
+      str = str.replace(new RegExp("[".concat(ignore.replace(/[-[\]{}()*+?.,\\^$|#\\s]/g, '\\$&'), "]"), 'g'), ''); // escape regex for ignore
+    } else {
+      throw new Error('ignore should be instance of a String or RegExp');
+    }
+  }
+
+  if (locale in _alpha.alpha) {
+    return _alpha.alpha[locale].test(str);
+  }
+
+  throw new Error("Invalid locale '".concat(locale, "'"));
+}
+
+var locales = Object.keys(_alpha.alpha);
+exports.locales = locales;
+},{"./alpha":42,"./util/assertString":136}],49:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isAlphanumeric;
+exports.locales = void 0;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+var _alpha = require("./alpha");
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function isAlphanumeric(_str) {
+  var locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en-US';
+  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
+  (0, _assertString.default)(_str);
+  var str = _str;
+  var ignore = options.ignore;
+
+  if (ignore) {
+    if (ignore instanceof RegExp) {
+      str = str.replace(ignore, '');
+    } else if (typeof ignore === 'string') {
+      str = str.replace(new RegExp("[".concat(ignore.replace(/[-[\]{}()*+?.,\\^$|#\\s]/g, '\\$&'), "]"), 'g'), ''); // escape regex for ignore
+    } else {
+      throw new Error('ignore should be instance of a String or RegExp');
+    }
+  }
+
+  if (locale in _alpha.alphanumeric) {
+    return _alpha.alphanumeric[locale].test(str);
+  }
+
+  throw new Error("Invalid locale '".concat(locale, "'"));
+}
+
+var locales = Object.keys(_alpha.alphanumeric);
+exports.locales = locales;
+},{"./alpha":42,"./util/assertString":136}],50:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isAscii;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+/* eslint-disable no-control-regex */
+var ascii = /^[\x00-\x7F]+$/;
+/* eslint-enable no-control-regex */
+
+function isAscii(str) {
+  (0, _assertString.default)(str);
+  return ascii.test(str);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],51:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isBIC;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+var _isISO31661Alpha = require("./isISO31661Alpha2");
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+// https://en.wikipedia.org/wiki/ISO_9362
+var isBICReg = /^[A-Za-z]{6}[A-Za-z0-9]{2}([A-Za-z0-9]{3})?$/;
+
+function isBIC(str) {
+  (0, _assertString.default)(str); // toUpperCase() should be removed when a new major version goes out that changes
+  // the regex to [A-Z] (per the spec).
+
+  if (!_isISO31661Alpha.CountryCodes.has(str.slice(4, 6).toUpperCase())) {
+    return false;
+  }
+
+  return isBICReg.test(str);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./isISO31661Alpha2":83,"./util/assertString":136}],52:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isBase32;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var base32 = /^[A-Z2-7]+=*$/;
+
+function isBase32(str) {
+  (0, _assertString.default)(str);
+  var len = str.length;
+
+  if (len % 8 === 0 && base32.test(str)) {
+    return true;
+  }
+
+  return false;
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],53:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isBase58;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+// Accepted chars - 123456789ABCDEFGH JKLMN PQRSTUVWXYZabcdefghijk mnopqrstuvwxyz
+var base58Reg = /^[A-HJ-NP-Za-km-z1-9]*$/;
+
+function isBase58(str) {
+  (0, _assertString.default)(str);
+
+  if (base58Reg.test(str)) {
+    return true;
+  }
+
+  return false;
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],54:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isBase64;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+var _merge = _interopRequireDefault(require("./util/merge"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var notBase64 = /[^A-Z0-9+\/=]/i;
+var urlSafeBase64 = /^[A-Z0-9_\-]*$/i;
+var defaultBase64Options = {
+  urlSafe: false
+};
+
+function isBase64(str, options) {
+  (0, _assertString.default)(str);
+  options = (0, _merge.default)(options, defaultBase64Options);
+  var len = str.length;
+
+  if (options.urlSafe) {
+    return urlSafeBase64.test(str);
+  }
+
+  if (len % 4 !== 0 || notBase64.test(str)) {
+    return false;
+  }
+
+  var firstPaddingChar = str.indexOf('=');
+  return firstPaddingChar === -1 || firstPaddingChar === len - 1 || firstPaddingChar === len - 2 && str[len - 1] === '=';
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136,"./util/merge":138}],55:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isBefore;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+var _toDate = _interopRequireDefault(require("./toDate"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function isBefore(str) {
+  var date = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : String(new Date());
+  (0, _assertString.default)(str);
+  var comparison = (0, _toDate.default)(date);
+  var original = (0, _toDate.default)(str);
+  return !!(original && comparison && original < comparison);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./toDate":130,"./util/assertString":136}],56:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isBoolean;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var defaultOptions = {
+  loose: false
+};
+var strictBooleans = ['true', 'false', '1', '0'];
+var looseBooleans = [].concat(strictBooleans, ['yes', 'no']);
+
+function isBoolean(str) {
+  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultOptions;
+  (0, _assertString.default)(str);
+
+  if (options.loose) {
+    return looseBooleans.includes(str.toLowerCase());
+  }
+
+  return strictBooleans.includes(str);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],57:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isBtcAddress;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+// supports Bech32 addresses
+var bech32 = /^(bc1)[a-z0-9]{25,39}$/;
+var base58 = /^(1|3)[A-HJ-NP-Za-km-z1-9]{25,39}$/;
+
+function isBtcAddress(str) {
+  (0, _assertString.default)(str); // check for bech32
+
+  if (str.startsWith('bc1')) {
+    return bech32.test(str);
+  }
+
+  return base58.test(str);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],58:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isByteLength;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
+
+/* eslint-disable prefer-rest-params */
+function isByteLength(str, options) {
+  (0, _assertString.default)(str);
+  var min;
+  var max;
+
+  if (_typeof(options) === 'object') {
+    min = options.min || 0;
+    max = options.max;
+  } else {
+    // backwards compatibility: isByteLength(str, min [, max])
+    min = arguments[1];
+    max = arguments[2];
+  }
+
+  var len = encodeURI(str).split(/%..|./).length - 1;
+  return len >= min && (typeof max === 'undefined' || len <= max);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],59:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isCreditCard;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+/* eslint-disable max-len */
+var creditCard = /^(?:4[0-9]{12}(?:[0-9]{3,6})?|5[1-5][0-9]{14}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12,15}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11}|6[27][0-9]{14}|^(81[0-9]{14,17}))$/;
+/* eslint-enable max-len */
+
+function isCreditCard(str) {
+  (0, _assertString.default)(str);
+  var sanitized = str.replace(/[- ]+/g, '');
+
+  if (!creditCard.test(sanitized)) {
+    return false;
+  }
+
+  var sum = 0;
+  var digit;
+  var tmpNum;
+  var shouldDouble;
+
+  for (var i = sanitized.length - 1; i >= 0; i--) {
+    digit = sanitized.substring(i, i + 1);
+    tmpNum = parseInt(digit, 10);
+
+    if (shouldDouble) {
+      tmpNum *= 2;
+
+      if (tmpNum >= 10) {
+        sum += tmpNum % 10 + 1;
+      } else {
+        sum += tmpNum;
+      }
+    } else {
+      sum += tmpNum;
+    }
+
+    shouldDouble = !shouldDouble;
+  }
+
+  return !!(sum % 10 === 0 ? sanitized : false);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],60:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isCurrency;
+
+var _merge = _interopRequireDefault(require("./util/merge"));
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function currencyRegex(options) {
+  var decimal_digits = "\\d{".concat(options.digits_after_decimal[0], "}");
+  options.digits_after_decimal.forEach(function (digit, index) {
+    if (index !== 0) decimal_digits = "".concat(decimal_digits, "|\\d{").concat(digit, "}");
+  });
+  var symbol = "(".concat(options.symbol.replace(/\W/, function (m) {
+    return "\\".concat(m);
+  }), ")").concat(options.require_symbol ? '' : '?'),
+      negative = '-?',
+      whole_dollar_amount_without_sep = '[1-9]\\d*',
+      whole_dollar_amount_with_sep = "[1-9]\\d{0,2}(\\".concat(options.thousands_separator, "\\d{3})*"),
+      valid_whole_dollar_amounts = ['0', whole_dollar_amount_without_sep, whole_dollar_amount_with_sep],
+      whole_dollar_amount = "(".concat(valid_whole_dollar_amounts.join('|'), ")?"),
+      decimal_amount = "(\\".concat(options.decimal_separator, "(").concat(decimal_digits, "))").concat(options.require_decimal ? '' : '?');
+  var pattern = whole_dollar_amount + (options.allow_decimal || options.require_decimal ? decimal_amount : ''); // default is negative sign before symbol, but there are two other options (besides parens)
+
+  if (options.allow_negatives && !options.parens_for_negatives) {
+    if (options.negative_sign_after_digits) {
+      pattern += negative;
+    } else if (options.negative_sign_before_digits) {
+      pattern = negative + pattern;
+    }
+  } // South African Rand, for example, uses R 123 (space) and R-123 (no space)
+
+
+  if (options.allow_negative_sign_placeholder) {
+    pattern = "( (?!\\-))?".concat(pattern);
+  } else if (options.allow_space_after_symbol) {
+    pattern = " ?".concat(pattern);
+  } else if (options.allow_space_after_digits) {
+    pattern += '( (?!$))?';
+  }
+
+  if (options.symbol_after_digits) {
+    pattern += symbol;
+  } else {
+    pattern = symbol + pattern;
+  }
+
+  if (options.allow_negatives) {
+    if (options.parens_for_negatives) {
+      pattern = "(\\(".concat(pattern, "\\)|").concat(pattern, ")");
+    } else if (!(options.negative_sign_before_digits || options.negative_sign_after_digits)) {
+      pattern = negative + pattern;
+    }
+  } // ensure there's a dollar and/or decimal amount, and that
+  // it doesn't start with a space or a negative sign followed by a space
+
+
+  return new RegExp("^(?!-? )(?=.*\\d)".concat(pattern, "$"));
+}
+
+var default_currency_options = {
+  symbol: '$',
+  require_symbol: false,
+  allow_space_after_symbol: false,
+  symbol_after_digits: false,
+  allow_negatives: true,
+  parens_for_negatives: false,
+  negative_sign_before_digits: false,
+  negative_sign_after_digits: false,
+  allow_negative_sign_placeholder: false,
+  thousands_separator: ',',
+  decimal_separator: '.',
+  allow_decimal: true,
+  require_decimal: false,
+  digits_after_decimal: [2],
+  allow_space_after_digits: false
+};
+
+function isCurrency(str, options) {
+  (0, _assertString.default)(str);
+  options = (0, _merge.default)(options, default_currency_options);
+  return currencyRegex(options).test(str);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136,"./util/merge":138}],61:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isDataURI;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var validMediaType = /^[a-z]+\/[a-z0-9\-\+]+$/i;
+var validAttribute = /^[a-z\-]+=[a-z0-9\-]+$/i;
+var validData = /^[a-z0-9!\$&'\(\)\*\+,;=\-\._~:@\/\?%\s]*$/i;
+
+function isDataURI(str) {
+  (0, _assertString.default)(str);
+  var data = str.split(',');
+
+  if (data.length < 2) {
+    return false;
+  }
+
+  var attributes = data.shift().trim().split(';');
+  var schemeAndMediaType = attributes.shift();
+
+  if (schemeAndMediaType.substr(0, 5) !== 'data:') {
+    return false;
+  }
+
+  var mediaType = schemeAndMediaType.substr(5);
+
+  if (mediaType !== '' && !validMediaType.test(mediaType)) {
+    return false;
+  }
+
+  for (var i = 0; i < attributes.length; i++) {
+    if (!(i === attributes.length - 1 && attributes[i].toLowerCase() === 'base64') && !validAttribute.test(attributes[i])) {
+      return false;
+    }
+  }
+
+  for (var _i = 0; _i < data.length; _i++) {
+    if (!validData.test(data[_i])) {
+      return false;
+    }
+  }
+
+  return true;
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],62:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isDate;
+
+var _merge = _interopRequireDefault(require("./util/merge"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
+
+function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
+
+function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
+
+function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
+
+function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
+
+function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
+
+function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
+
+var default_date_options = {
+  format: 'YYYY/MM/DD',
+  delimiters: ['/', '-'],
+  strictMode: false
+};
+
+function isValidFormat(format) {
+  return /(^(y{4}|y{2})[.\/-](m{1,2})[.\/-](d{1,2})$)|(^(m{1,2})[.\/-](d{1,2})[.\/-]((y{4}|y{2})$))|(^(d{1,2})[.\/-](m{1,2})[.\/-]((y{4}|y{2})$))/gi.test(format);
+}
+
+function zip(date, format) {
+  var zippedArr = [],
+      len = Math.min(date.length, format.length);
+
+  for (var i = 0; i < len; i++) {
+    zippedArr.push([date[i], format[i]]);
+  }
+
+  return zippedArr;
+}
+
+function isDate(input, options) {
+  if (typeof options === 'string') {
+    // Allow backward compatbility for old format isDate(input [, format])
+    options = (0, _merge.default)({
+      format: options
+    }, default_date_options);
+  } else {
+    options = (0, _merge.default)(options, default_date_options);
+  }
+
+  if (typeof input === 'string' && isValidFormat(options.format)) {
+    var formatDelimiter = options.delimiters.find(function (delimiter) {
+      return options.format.indexOf(delimiter) !== -1;
+    });
+    var dateDelimiter = options.strictMode ? formatDelimiter : options.delimiters.find(function (delimiter) {
+      return input.indexOf(delimiter) !== -1;
+    });
+    var dateAndFormat = zip(input.split(dateDelimiter), options.format.toLowerCase().split(formatDelimiter));
+    var dateObj = {};
+
+    var _iterator = _createForOfIteratorHelper(dateAndFormat),
+        _step;
+
+    try {
+      for (_iterator.s(); !(_step = _iterator.n()).done;) {
+        var _step$value = _slicedToArray(_step.value, 2),
+            dateWord = _step$value[0],
+            formatWord = _step$value[1];
+
+        if (dateWord.length !== formatWord.length) {
+          return false;
+        }
+
+        dateObj[formatWord.charAt(0)] = dateWord;
+      }
+    } catch (err) {
+      _iterator.e(err);
+    } finally {
+      _iterator.f();
+    }
+
+    return new Date("".concat(dateObj.m, "/").concat(dateObj.d, "/").concat(dateObj.y)).getDate() === +dateObj.d;
+  }
+
+  if (!options.strictMode) {
+    return Object.prototype.toString.call(input) === '[object Date]' && isFinite(input);
+  }
+
+  return false;
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/merge":138}],63:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isDecimal;
+
+var _merge = _interopRequireDefault(require("./util/merge"));
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+var _includes = _interopRequireDefault(require("./util/includes"));
+
+var _alpha = require("./alpha");
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function decimalRegExp(options) {
+  var regExp = new RegExp("^[-+]?([0-9]+)?(\\".concat(_alpha.decimal[options.locale], "[0-9]{").concat(options.decimal_digits, "})").concat(options.force_decimal ? '' : '?', "$"));
+  return regExp;
+}
+
+var default_decimal_options = {
+  force_decimal: false,
+  decimal_digits: '1,',
+  locale: 'en-US'
+};
+var blacklist = ['', '-', '+'];
+
+function isDecimal(str, options) {
+  (0, _assertString.default)(str);
+  options = (0, _merge.default)(options, default_decimal_options);
+
+  if (options.locale in _alpha.decimal) {
+    return !(0, _includes.default)(blacklist, str.replace(/ /g, '')) && decimalRegExp(options).test(str);
+  }
+
+  throw new Error("Invalid locale '".concat(options.locale, "'"));
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./alpha":42,"./util/assertString":136,"./util/includes":137,"./util/merge":138}],64:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isDivisibleBy;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+var _toFloat = _interopRequireDefault(require("./toFloat"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function isDivisibleBy(str, num) {
+  (0, _assertString.default)(str);
+  return (0, _toFloat.default)(str) % parseInt(num, 10) === 0;
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./toFloat":131,"./util/assertString":136}],65:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isEAN;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+/**
+ * The most commonly used EAN standard is
+ * the thirteen-digit EAN-13, while the
+ * less commonly used 8-digit EAN-8 barcode was
+ * introduced for use on small packages.
+ * Also EAN/UCC-14 is used for Grouping of individual
+ * trade items above unit level(Intermediate, Carton or Pallet).
+ * For more info about EAN-14 checkout: https://www.gtin.info/itf-14-barcodes/
+ * EAN consists of:
+ * GS1 prefix, manufacturer code, product code and check digit
+ * Reference: https://en.wikipedia.org/wiki/International_Article_Number
+ * Reference: https://www.gtin.info/
+ */
+
+/**
+ * Define EAN Lenghts; 8 for EAN-8; 13 for EAN-13; 14 for EAN-14
+ * and Regular Expression for valid EANs (EAN-8, EAN-13, EAN-14),
+ * with exact numberic matching of 8 or 13 or 14 digits [0-9]
+ */
+var LENGTH_EAN_8 = 8;
+var LENGTH_EAN_14 = 14;
+var validEanRegex = /^(\d{8}|\d{13}|\d{14})$/;
+/**
+ * Get position weight given:
+ * EAN length and digit index/position
+ *
+ * @param {number} length
+ * @param {number} index
+ * @return {number}
+ */
+
+function getPositionWeightThroughLengthAndIndex(length, index) {
+  if (length === LENGTH_EAN_8 || length === LENGTH_EAN_14) {
+    return index % 2 === 0 ? 3 : 1;
+  }
+
+  return index % 2 === 0 ? 1 : 3;
+}
+/**
+ * Calculate EAN Check Digit
+ * Reference: https://en.wikipedia.org/wiki/International_Article_Number#Calculation_of_checksum_digit
+ *
+ * @param {string} ean
+ * @return {number}
+ */
+
+
+function calculateCheckDigit(ean) {
+  var checksum = ean.slice(0, -1).split('').map(function (char, index) {
+    return Number(char) * getPositionWeightThroughLengthAndIndex(ean.length, index);
+  }).reduce(function (acc, partialSum) {
+    return acc + partialSum;
+  }, 0);
+  var remainder = 10 - checksum % 10;
+  return remainder < 10 ? remainder : 0;
+}
+/**
+ * Check if string is valid EAN:
+ * Matches EAN-8/EAN-13/EAN-14 regex
+ * Has valid check digit.
+ *
+ * @param {string} str
+ * @return {boolean}
+ */
+
+
+function isEAN(str) {
+  (0, _assertString.default)(str);
+  var actualCheckDigit = Number(str.slice(-1));
+  return validEanRegex.test(str) && actualCheckDigit === calculateCheckDigit(str);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],66:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isEmail;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+var _merge = _interopRequireDefault(require("./util/merge"));
+
+var _isByteLength = _interopRequireDefault(require("./isByteLength"));
+
+var _isFQDN = _interopRequireDefault(require("./isFQDN"));
+
+var _isIP = _interopRequireDefault(require("./isIP"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var default_email_options = {
+  allow_display_name: false,
+  require_display_name: false,
+  allow_utf8_local_part: true,
+  require_tld: true,
+  blacklisted_chars: '',
+  ignore_max_length: false,
+  host_blacklist: []
+};
+/* eslint-disable max-len */
+
+/* eslint-disable no-control-regex */
+
+var splitNameAddress = /^([^\x00-\x1F\x7F-\x9F\cX]+)</i;
+var emailUserPart = /^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~]+$/i;
+var gmailUserPart = /^[a-z\d]+$/;
+var quotedEmailUser = /^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f]))*$/i;
+var emailUserUtf8Part = /^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+$/i;
+var quotedEmailUserUtf8 = /^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*$/i;
+var defaultMaxEmailLength = 254;
+/* eslint-enable max-len */
+
+/* eslint-enable no-control-regex */
+
+/**
+ * Validate display name according to the RFC2822: https://tools.ietf.org/html/rfc2822#appendix-A.1.2
+ * @param {String} display_name
+ */
+
+function validateDisplayName(display_name) {
+  var display_name_without_quotes = display_name.replace(/^"(.+)"$/, '$1'); // display name with only spaces is not valid
+
+  if (!display_name_without_quotes.trim()) {
+    return false;
+  } // check whether display name contains illegal character
+
+
+  var contains_illegal = /[\.";<>]/.test(display_name_without_quotes);
+
+  if (contains_illegal) {
+    // if contains illegal characters,
+    // must to be enclosed in double-quotes, otherwise it's not a valid display name
+    if (display_name_without_quotes === display_name) {
+      return false;
+    } // the quotes in display name must start with character symbol \
+
+
+    var all_start_with_back_slash = display_name_without_quotes.split('"').length === display_name_without_quotes.split('\\"').length;
+
+    if (!all_start_with_back_slash) {
+      return false;
+    }
+  }
+
+  return true;
+}
+
+function isEmail(str, options) {
+  (0, _assertString.default)(str);
+  options = (0, _merge.default)(options, default_email_options);
+
+  if (options.require_display_name || options.allow_display_name) {
+    var display_email = str.match(splitNameAddress);
+
+    if (display_email) {
+      var display_name = display_email[1]; // Remove display name and angle brackets to get email address
+      // Can be done in the regex but will introduce a ReDOS (See  #1597 for more info)
+
+      str = str.replace(display_name, '').replace(/(^<|>$)/g, ''); // sometimes need to trim the last space to get the display name
+      // because there may be a space between display name and email address
+      // eg. myname <address@gmail.com>
+      // the display name is `myname` instead of `myname `, so need to trim the last space
+
+      if (display_name.endsWith(' ')) {
+        display_name = display_name.substr(0, display_name.length - 1);
+      }
+
+      if (!validateDisplayName(display_name)) {
+        return false;
+      }
+    } else if (options.require_display_name) {
+      return false;
+    }
+  }
+
+  if (!options.ignore_max_length && str.length > defaultMaxEmailLength) {
+    return false;
+  }
+
+  var parts = str.split('@');
+  var domain = parts.pop();
+  var lower_domain = domain.toLowerCase();
+
+  if (options.host_blacklist.includes(lower_domain)) {
+    return false;
+  }
+
+  var user = parts.join('@');
+
+  if (options.domain_specific_validation && (lower_domain === 'gmail.com' || lower_domain === 'googlemail.com')) {
+    /*
+      Previously we removed dots for gmail addresses before validating.
+      This was removed because it allows `multiple..dots@gmail.com`
+      to be reported as valid, but it is not.
+      Gmail only normalizes single dots, removing them from here is pointless,
+      should be done in normalizeEmail
+    */
+    user = user.toLowerCase(); // Removing sub-address from username before gmail validation
+
+    var username = user.split('+')[0]; // Dots are not included in gmail length restriction
+
+    if (!(0, _isByteLength.default)(username.replace(/\./g, ''), {
+      min: 6,
+      max: 30
+    })) {
+      return false;
+    }
+
+    var _user_parts = username.split('.');
+
+    for (var i = 0; i < _user_parts.length; i++) {
+      if (!gmailUserPart.test(_user_parts[i])) {
+        return false;
+      }
+    }
+  }
+
+  if (options.ignore_max_length === false && (!(0, _isByteLength.default)(user, {
+    max: 64
+  }) || !(0, _isByteLength.default)(domain, {
+    max: 254
+  }))) {
+    return false;
+  }
+
+  if (!(0, _isFQDN.default)(domain, {
+    require_tld: options.require_tld
+  })) {
+    if (!options.allow_ip_domain) {
+      return false;
+    }
+
+    if (!(0, _isIP.default)(domain)) {
+      if (!domain.startsWith('[') || !domain.endsWith(']')) {
+        return false;
+      }
+
+      var noBracketdomain = domain.substr(1, domain.length - 2);
+
+      if (noBracketdomain.length === 0 || !(0, _isIP.default)(noBracketdomain)) {
+        return false;
+      }
+    }
+  }
+
+  if (user[0] === '"') {
+    user = user.slice(1, user.length - 1);
+    return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user);
+  }
+
+  var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart;
+  var user_parts = user.split('.');
+
+  for (var _i = 0; _i < user_parts.length; _i++) {
+    if (!pattern.test(user_parts[_i])) {
+      return false;
+    }
+  }
+
+  if (options.blacklisted_chars) {
+    if (user.search(new RegExp("[".concat(options.blacklisted_chars, "]+"), 'g')) !== -1) return false;
+  }
+
+  return true;
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./isByteLength":58,"./isFQDN":69,"./isIP":79,"./util/assertString":136,"./util/merge":138}],67:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isEmpty;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+var _merge = _interopRequireDefault(require("./util/merge"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var default_is_empty_options = {
+  ignore_whitespace: false
+};
+
+function isEmpty(str, options) {
+  (0, _assertString.default)(str);
+  options = (0, _merge.default)(options, default_is_empty_options);
+  return (options.ignore_whitespace ? str.trim().length : str.length) === 0;
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136,"./util/merge":138}],68:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isEthereumAddress;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var eth = /^(0x)[0-9a-f]{40}$/i;
+
+function isEthereumAddress(str) {
+  (0, _assertString.default)(str);
+  return eth.test(str);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],69:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isFQDN;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+var _merge = _interopRequireDefault(require("./util/merge"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var default_fqdn_options = {
+  require_tld: true,
+  allow_underscores: false,
+  allow_trailing_dot: false,
+  allow_numeric_tld: false,
+  allow_wildcard: false
+};
+
+function isFQDN(str, options) {
+  (0, _assertString.default)(str);
+  options = (0, _merge.default)(options, default_fqdn_options);
+  /* Remove the optional trailing dot before checking validity */
+
+  if (options.allow_trailing_dot && str[str.length - 1] === '.') {
+    str = str.substring(0, str.length - 1);
+  }
+  /* Remove the optional wildcard before checking validity */
+
+
+  if (options.allow_wildcard === true && str.indexOf('*.') === 0) {
+    str = str.substring(2);
+  }
+
+  var parts = str.split('.');
+  var tld = parts[parts.length - 1];
+
+  if (options.require_tld) {
+    // disallow fqdns without tld
+    if (parts.length < 2) {
+      return false;
+    }
+
+    if (!/^([a-z\u00A1-\u00A8\u00AA-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {
+      return false;
+    } // disallow spaces
+
+
+    if (/\s/.test(tld)) {
+      return false;
+    }
+  } // reject numeric TLDs
+
+
+  if (!options.allow_numeric_tld && /^\d+$/.test(tld)) {
+    return false;
+  }
+
+  return parts.every(function (part) {
+    if (part.length > 63) {
+      return false;
+    }
+
+    if (!/^[a-z_\u00a1-\uffff0-9-]+$/i.test(part)) {
+      return false;
+    } // disallow full-width chars
+
+
+    if (/[\uff01-\uff5e]/.test(part)) {
+      return false;
+    } // disallow parts starting or ending with hyphen
+
+
+    if (/^-|-$/.test(part)) {
+      return false;
+    }
+
+    if (!options.allow_underscores && /_/.test(part)) {
+      return false;
+    }
+
+    return true;
+  });
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136,"./util/merge":138}],70:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isFloat;
+exports.locales = void 0;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+var _alpha = require("./alpha");
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function isFloat(str, options) {
+  (0, _assertString.default)(str);
+  options = options || {};
+  var float = new RegExp("^(?:[-+])?(?:[0-9]+)?(?:\\".concat(options.locale ? _alpha.decimal[options.locale] : '.', "[0-9]*)?(?:[eE][\\+\\-]?(?:[0-9]+))?$"));
+
+  if (str === '' || str === '.' || str === '-' || str === '+') {
+    return false;
+  }
+
+  var value = parseFloat(str.replace(',', '.'));
+  return float.test(str) && (!options.hasOwnProperty('min') || value >= options.min) && (!options.hasOwnProperty('max') || value <= options.max) && (!options.hasOwnProperty('lt') || value < options.lt) && (!options.hasOwnProperty('gt') || value > options.gt);
+}
+
+var locales = Object.keys(_alpha.decimal);
+exports.locales = locales;
+},{"./alpha":42,"./util/assertString":136}],71:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isFullWidth;
+exports.fullWidth = void 0;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var fullWidth = /[^\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/;
+exports.fullWidth = fullWidth;
+
+function isFullWidth(str) {
+  (0, _assertString.default)(str);
+  return fullWidth.test(str);
+}
+},{"./util/assertString":136}],72:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isHSL;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var hslComma = /^hsla?\(((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?))(deg|grad|rad|turn)?(,(\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%){2}(,((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%?))?\)$/i;
+var hslSpace = /^hsla?\(((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?))(deg|grad|rad|turn)?(\s(\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%){2}\s?(\/\s((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%?)\s?)?\)$/i;
+
+function isHSL(str) {
+  (0, _assertString.default)(str); // Strip duplicate spaces before calling the validation regex (See  #1598 for more info)
+
+  var strippedStr = str.replace(/\s+/g, ' ').replace(/\s?(hsla?\(|\)|,)\s?/ig, '$1');
+
+  if (strippedStr.indexOf(',') !== -1) {
+    return hslComma.test(strippedStr);
+  }
+
+  return hslSpace.test(strippedStr);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],73:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isHalfWidth;
+exports.halfWidth = void 0;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var halfWidth = /[\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/;
+exports.halfWidth = halfWidth;
+
+function isHalfWidth(str) {
+  (0, _assertString.default)(str);
+  return halfWidth.test(str);
+}
+},{"./util/assertString":136}],74:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isHash;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var lengths = {
+  md5: 32,
+  md4: 32,
+  sha1: 40,
+  sha256: 64,
+  sha384: 96,
+  sha512: 128,
+  ripemd128: 32,
+  ripemd160: 40,
+  tiger128: 32,
+  tiger160: 40,
+  tiger192: 48,
+  crc32: 8,
+  crc32b: 8
+};
+
+function isHash(str, algorithm) {
+  (0, _assertString.default)(str);
+  var hash = new RegExp("^[a-fA-F0-9]{".concat(lengths[algorithm], "}$"));
+  return hash.test(str);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],75:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isHexColor;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var hexcolor = /^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$/i;
+
+function isHexColor(str) {
+  (0, _assertString.default)(str);
+  return hexcolor.test(str);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],76:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isHexadecimal;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var hexadecimal = /^(0x|0h)?[0-9A-F]+$/i;
+
+function isHexadecimal(str) {
+  (0, _assertString.default)(str);
+  return hexadecimal.test(str);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],77:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isIBAN;
+exports.locales = void 0;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+/**
+ * List of country codes with
+ * corresponding IBAN regular expression
+ * Reference: https://en.wikipedia.org/wiki/International_Bank_Account_Number
+ */
+var ibanRegexThroughCountryCode = {
+  AD: /^(AD[0-9]{2})\d{8}[A-Z0-9]{12}$/,
+  AE: /^(AE[0-9]{2})\d{3}\d{16}$/,
+  AL: /^(AL[0-9]{2})\d{8}[A-Z0-9]{16}$/,
+  AT: /^(AT[0-9]{2})\d{16}$/,
+  AZ: /^(AZ[0-9]{2})[A-Z0-9]{4}\d{20}$/,
+  BA: /^(BA[0-9]{2})\d{16}$/,
+  BE: /^(BE[0-9]{2})\d{12}$/,
+  BG: /^(BG[0-9]{2})[A-Z]{4}\d{6}[A-Z0-9]{8}$/,
+  BH: /^(BH[0-9]{2})[A-Z]{4}[A-Z0-9]{14}$/,
+  BR: /^(BR[0-9]{2})\d{23}[A-Z]{1}[A-Z0-9]{1}$/,
+  BY: /^(BY[0-9]{2})[A-Z0-9]{4}\d{20}$/,
+  CH: /^(CH[0-9]{2})\d{5}[A-Z0-9]{12}$/,
+  CR: /^(CR[0-9]{2})\d{18}$/,
+  CY: /^(CY[0-9]{2})\d{8}[A-Z0-9]{16}$/,
+  CZ: /^(CZ[0-9]{2})\d{20}$/,
+  DE: /^(DE[0-9]{2})\d{18}$/,
+  DK: /^(DK[0-9]{2})\d{14}$/,
+  DO: /^(DO[0-9]{2})[A-Z]{4}\d{20}$/,
+  EE: /^(EE[0-9]{2})\d{16}$/,
+  EG: /^(EG[0-9]{2})\d{25}$/,
+  ES: /^(ES[0-9]{2})\d{20}$/,
+  FI: /^(FI[0-9]{2})\d{14}$/,
+  FO: /^(FO[0-9]{2})\d{14}$/,
+  FR: /^(FR[0-9]{2})\d{10}[A-Z0-9]{11}\d{2}$/,
+  GB: /^(GB[0-9]{2})[A-Z]{4}\d{14}$/,
+  GE: /^(GE[0-9]{2})[A-Z0-9]{2}\d{16}$/,
+  GI: /^(GI[0-9]{2})[A-Z]{4}[A-Z0-9]{15}$/,
+  GL: /^(GL[0-9]{2})\d{14}$/,
+  GR: /^(GR[0-9]{2})\d{7}[A-Z0-9]{16}$/,
+  GT: /^(GT[0-9]{2})[A-Z0-9]{4}[A-Z0-9]{20}$/,
+  HR: /^(HR[0-9]{2})\d{17}$/,
+  HU: /^(HU[0-9]{2})\d{24}$/,
+  IE: /^(IE[0-9]{2})[A-Z0-9]{4}\d{14}$/,
+  IL: /^(IL[0-9]{2})\d{19}$/,
+  IQ: /^(IQ[0-9]{2})[A-Z]{4}\d{15}$/,
+  IR: /^(IR[0-9]{2})0\d{2}0\d{18}$/,
+  IS: /^(IS[0-9]{2})\d{22}$/,
+  IT: /^(IT[0-9]{2})[A-Z]{1}\d{10}[A-Z0-9]{12}$/,
+  JO: /^(JO[0-9]{2})[A-Z]{4}\d{22}$/,
+  KW: /^(KW[0-9]{2})[A-Z]{4}[A-Z0-9]{22}$/,
+  KZ: /^(KZ[0-9]{2})\d{3}[A-Z0-9]{13}$/,
+  LB: /^(LB[0-9]{2})\d{4}[A-Z0-9]{20}$/,
+  LC: /^(LC[0-9]{2})[A-Z]{4}[A-Z0-9]{24}$/,
+  LI: /^(LI[0-9]{2})\d{5}[A-Z0-9]{12}$/,
+  LT: /^(LT[0-9]{2})\d{16}$/,
+  LU: /^(LU[0-9]{2})\d{3}[A-Z0-9]{13}$/,
+  LV: /^(LV[0-9]{2})[A-Z]{4}[A-Z0-9]{13}$/,
+  MC: /^(MC[0-9]{2})\d{10}[A-Z0-9]{11}\d{2}$/,
+  MD: /^(MD[0-9]{2})[A-Z0-9]{20}$/,
+  ME: /^(ME[0-9]{2})\d{18}$/,
+  MK: /^(MK[0-9]{2})\d{3}[A-Z0-9]{10}\d{2}$/,
+  MR: /^(MR[0-9]{2})\d{23}$/,
+  MT: /^(MT[0-9]{2})[A-Z]{4}\d{5}[A-Z0-9]{18}$/,
+  MU: /^(MU[0-9]{2})[A-Z]{4}\d{19}[A-Z]{3}$/,
+  MZ: /^(MZ[0-9]{2})\d{21}$/,
+  NL: /^(NL[0-9]{2})[A-Z]{4}\d{10}$/,
+  NO: /^(NO[0-9]{2})\d{11}$/,
+  PK: /^(PK[0-9]{2})[A-Z0-9]{4}\d{16}$/,
+  PL: /^(PL[0-9]{2})\d{24}$/,
+  PS: /^(PS[0-9]{2})[A-Z0-9]{4}\d{21}$/,
+  PT: /^(PT[0-9]{2})\d{21}$/,
+  QA: /^(QA[0-9]{2})[A-Z]{4}[A-Z0-9]{21}$/,
+  RO: /^(RO[0-9]{2})[A-Z]{4}[A-Z0-9]{16}$/,
+  RS: /^(RS[0-9]{2})\d{18}$/,
+  SA: /^(SA[0-9]{2})\d{2}[A-Z0-9]{18}$/,
+  SC: /^(SC[0-9]{2})[A-Z]{4}\d{20}[A-Z]{3}$/,
+  SE: /^(SE[0-9]{2})\d{20}$/,
+  SI: /^(SI[0-9]{2})\d{15}$/,
+  SK: /^(SK[0-9]{2})\d{20}$/,
+  SM: /^(SM[0-9]{2})[A-Z]{1}\d{10}[A-Z0-9]{12}$/,
+  SV: /^(SV[0-9]{2})[A-Z0-9]{4}\d{20}$/,
+  TL: /^(TL[0-9]{2})\d{19}$/,
+  TN: /^(TN[0-9]{2})\d{20}$/,
+  TR: /^(TR[0-9]{2})\d{5}[A-Z0-9]{17}$/,
+  UA: /^(UA[0-9]{2})\d{6}[A-Z0-9]{19}$/,
+  VA: /^(VA[0-9]{2})\d{18}$/,
+  VG: /^(VG[0-9]{2})[A-Z0-9]{4}\d{16}$/,
+  XK: /^(XK[0-9]{2})\d{16}$/
+};
+/**
+ * Check whether string has correct universal IBAN format
+ * The IBAN consists of up to 34 alphanumeric characters, as follows:
+ * Country Code using ISO 3166-1 alpha-2, two letters
+ * check digits, two digits and
+ * Basic Bank Account Number (BBAN), up to 30 alphanumeric characters.
+ * NOTE: Permitted IBAN characters are: digits [0-9] and the 26 latin alphabetic [A-Z]
+ *
+ * @param {string} str - string under validation
+ * @return {boolean}
+ */
+
+function hasValidIbanFormat(str) {
+  // Strip white spaces and hyphens
+  var strippedStr = str.replace(/[\s\-]+/gi, '').toUpperCase();
+  var isoCountryCode = strippedStr.slice(0, 2).toUpperCase();
+  return isoCountryCode in ibanRegexThroughCountryCode && ibanRegexThroughCountryCode[isoCountryCode].test(strippedStr);
+}
+/**
+   * Check whether string has valid IBAN Checksum
+   * by performing basic mod-97 operation and
+   * the remainder should equal 1
+   * -- Start by rearranging the IBAN by moving the four initial characters to the end of the string
+   * -- Replace each letter in the string with two digits, A -> 10, B = 11, Z = 35
+   * -- Interpret the string as a decimal integer and
+   * -- compute the remainder on division by 97 (mod 97)
+   * Reference: https://en.wikipedia.org/wiki/International_Bank_Account_Number
+   *
+   * @param {string} str
+   * @return {boolean}
+   */
+
+
+function hasValidIbanChecksum(str) {
+  var strippedStr = str.replace(/[^A-Z0-9]+/gi, '').toUpperCase(); // Keep only digits and A-Z latin alphabetic
+
+  var rearranged = strippedStr.slice(4) + strippedStr.slice(0, 4);
+  var alphaCapsReplacedWithDigits = rearranged.replace(/[A-Z]/g, function (char) {
+    return char.charCodeAt(0) - 55;
+  });
+  var remainder = alphaCapsReplacedWithDigits.match(/\d{1,7}/g).reduce(function (acc, value) {
+    return Number(acc + value) % 97;
+  }, '');
+  return remainder === 1;
+}
+
+function isIBAN(str) {
+  (0, _assertString.default)(str);
+  return hasValidIbanFormat(str) && hasValidIbanChecksum(str);
+}
+
+var locales = Object.keys(ibanRegexThroughCountryCode);
+exports.locales = locales;
+},{"./util/assertString":136}],78:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isIMEI;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var imeiRegexWithoutHypens = /^[0-9]{15}$/;
+var imeiRegexWithHypens = /^\d{2}-\d{6}-\d{6}-\d{1}$/;
+
+function isIMEI(str, options) {
+  (0, _assertString.default)(str);
+  options = options || {}; // default regex for checking imei is the one without hyphens
+
+  var imeiRegex = imeiRegexWithoutHypens;
+
+  if (options.allow_hyphens) {
+    imeiRegex = imeiRegexWithHypens;
+  }
+
+  if (!imeiRegex.test(str)) {
+    return false;
+  }
+
+  str = str.replace(/-/g, '');
+  var sum = 0,
+      mul = 2,
+      l = 14;
+
+  for (var i = 0; i < l; i++) {
+    var digit = str.substring(l - i - 1, l - i);
+    var tp = parseInt(digit, 10) * mul;
+
+    if (tp >= 10) {
+      sum += tp % 10 + 1;
+    } else {
+      sum += tp;
+    }
+
+    if (mul === 1) {
+      mul += 1;
+    } else {
+      mul -= 1;
+    }
+  }
+
+  var chk = (10 - sum % 10) % 10;
+
+  if (chk !== parseInt(str.substring(14, 15), 10)) {
+    return false;
+  }
+
+  return true;
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],79:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isIP;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+/**
+11.3.  Examples
+
+   The following addresses
+
+             fe80::1234 (on the 1st link of the node)
+             ff02::5678 (on the 5th link of the node)
+             ff08::9abc (on the 10th organization of the node)
+
+   would be represented as follows:
+
+             fe80::1234%1
+             ff02::5678%5
+             ff08::9abc%10
+
+   (Here we assume a natural translation from a zone index to the
+   <zone_id> part, where the Nth zone of any scope is translated into
+   "N".)
+
+   If we use interface names as <zone_id>, those addresses could also be
+   represented as follows:
+
+            fe80::1234%ne0
+            ff02::5678%pvc1.3
+            ff08::9abc%interface10
+
+   where the interface "ne0" belongs to the 1st link, "pvc1.3" belongs
+   to the 5th link, and "interface10" belongs to the 10th organization.
+ * * */
+var IPv4SegmentFormat = '(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])';
+var IPv4AddressFormat = "(".concat(IPv4SegmentFormat, "[.]){3}").concat(IPv4SegmentFormat);
+var IPv4AddressRegExp = new RegExp("^".concat(IPv4AddressFormat, "$"));
+var IPv6SegmentFormat = '(?:[0-9a-fA-F]{1,4})';
+var IPv6AddressRegExp = new RegExp('^(' + "(?:".concat(IPv6SegmentFormat, ":){7}(?:").concat(IPv6SegmentFormat, "|:)|") + "(?:".concat(IPv6SegmentFormat, ":){6}(?:").concat(IPv4AddressFormat, "|:").concat(IPv6SegmentFormat, "|:)|") + "(?:".concat(IPv6SegmentFormat, ":){5}(?::").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,2}|:)|") + "(?:".concat(IPv6SegmentFormat, ":){4}(?:(:").concat(IPv6SegmentFormat, "){0,1}:").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,3}|:)|") + "(?:".concat(IPv6SegmentFormat, ":){3}(?:(:").concat(IPv6SegmentFormat, "){0,2}:").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,4}|:)|") + "(?:".concat(IPv6SegmentFormat, ":){2}(?:(:").concat(IPv6SegmentFormat, "){0,3}:").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,5}|:)|") + "(?:".concat(IPv6SegmentFormat, ":){1}(?:(:").concat(IPv6SegmentFormat, "){0,4}:").concat(IPv4AddressFormat, "|(:").concat(IPv6SegmentFormat, "){1,6}|:)|") + "(?::((?::".concat(IPv6SegmentFormat, "){0,5}:").concat(IPv4AddressFormat, "|(?::").concat(IPv6SegmentFormat, "){1,7}|:))") + ')(%[0-9a-zA-Z-.:]{1,})?$');
+
+function isIP(str) {
+  var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
+  (0, _assertString.default)(str);
+  version = String(version);
+
+  if (!version) {
+    return isIP(str, 4) || isIP(str, 6);
+  }
+
+  if (version === '4') {
+    if (!IPv4AddressRegExp.test(str)) {
+      return false;
+    }
+
+    var parts = str.split('.').sort(function (a, b) {
+      return a - b;
+    });
+    return parts[3] <= 255;
+  }
+
+  if (version === '6') {
+    return !!IPv6AddressRegExp.test(str);
+  }
+
+  return false;
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],80:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isIPRange;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+var _isIP = _interopRequireDefault(require("./isIP"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var subnetMaybe = /^\d{1,3}$/;
+var v4Subnet = 32;
+var v6Subnet = 128;
+
+function isIPRange(str) {
+  var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
+  (0, _assertString.default)(str);
+  var parts = str.split('/'); // parts[0] -> ip, parts[1] -> subnet
+
+  if (parts.length !== 2) {
+    return false;
+  }
+
+  if (!subnetMaybe.test(parts[1])) {
+    return false;
+  } // Disallow preceding 0 i.e. 01, 02, ...
+
+
+  if (parts[1].length > 1 && parts[1].startsWith('0')) {
+    return false;
+  }
+
+  var isValidIP = (0, _isIP.default)(parts[0], version);
+
+  if (!isValidIP) {
+    return false;
+  } // Define valid subnet according to IP's version
+
+
+  var expectedSubnet = null;
+
+  switch (String(version)) {
+    case '4':
+      expectedSubnet = v4Subnet;
+      break;
+
+    case '6':
+      expectedSubnet = v6Subnet;
+      break;
+
+    default:
+      expectedSubnet = (0, _isIP.default)(parts[0], '6') ? v6Subnet : v4Subnet;
+  }
+
+  return parts[1] <= expectedSubnet && parts[1] >= 0;
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./isIP":79,"./util/assertString":136}],81:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isISBN;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var isbn10Maybe = /^(?:[0-9]{9}X|[0-9]{10})$/;
+var isbn13Maybe = /^(?:[0-9]{13})$/;
+var factor = [1, 3];
+
+function isISBN(str) {
+  var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
+  (0, _assertString.default)(str);
+  version = String(version);
+
+  if (!version) {
+    return isISBN(str, 10) || isISBN(str, 13);
+  }
+
+  var sanitized = str.replace(/[\s-]+/g, '');
+  var checksum = 0;
+  var i;
+
+  if (version === '10') {
+    if (!isbn10Maybe.test(sanitized)) {
+      return false;
+    }
+
+    for (i = 0; i < 9; i++) {
+      checksum += (i + 1) * sanitized.charAt(i);
+    }
+
+    if (sanitized.charAt(9) === 'X') {
+      checksum += 10 * 10;
+    } else {
+      checksum += 10 * sanitized.charAt(9);
+    }
+
+    if (checksum % 11 === 0) {
+      return !!sanitized;
+    }
+  } else if (version === '13') {
+    if (!isbn13Maybe.test(sanitized)) {
+      return false;
+    }
+
+    for (i = 0; i < 12; i++) {
+      checksum += factor[i % 2] * sanitized.charAt(i);
+    }
+
+    if (sanitized.charAt(12) - (10 - checksum % 10) % 10 === 0) {
+      return !!sanitized;
+    }
+  }
+
+  return false;
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],82:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isISIN;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var isin = /^[A-Z]{2}[0-9A-Z]{9}[0-9]$/; // this link details how the check digit is calculated:
+// https://www.isin.org/isin-format/. it is a little bit
+// odd in that it works with digits, not numbers. in order
+// to make only one pass through the ISIN characters, the
+// each alpha character is handled as 2 characters within
+// the loop.
+
+function isISIN(str) {
+  (0, _assertString.default)(str);
+
+  if (!isin.test(str)) {
+    return false;
+  }
+
+  var double = true;
+  var sum = 0; // convert values
+
+  for (var i = str.length - 2; i >= 0; i--) {
+    if (str[i] >= 'A' && str[i] <= 'Z') {
+      var value = str[i].charCodeAt(0) - 55;
+      var lo = value % 10;
+      var hi = Math.trunc(value / 10); // letters have two digits, so handle the low order
+      // and high order digits separately.
+
+      for (var _i = 0, _arr = [lo, hi]; _i < _arr.length; _i++) {
+        var digit = _arr[_i];
+
+        if (double) {
+          if (digit >= 5) {
+            sum += 1 + (digit - 5) * 2;
+          } else {
+            sum += digit * 2;
+          }
+        } else {
+          sum += digit;
+        }
+
+        double = !double;
+      }
+    } else {
+      var _digit = str[i].charCodeAt(0) - '0'.charCodeAt(0);
+
+      if (double) {
+        if (_digit >= 5) {
+          sum += 1 + (_digit - 5) * 2;
+        } else {
+          sum += _digit * 2;
+        }
+      } else {
+        sum += _digit;
+      }
+
+      double = !double;
+    }
+  }
+
+  var check = Math.trunc((sum + 9) / 10) * 10 - sum;
+  return +str[str.length - 1] === check;
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],83:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isISO31661Alpha2;
+exports.CountryCodes = void 0;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+// from https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
+var validISO31661Alpha2CountriesCodes = new Set(['AD', 'AE', 'AF', 'AG', 'AI', 'AL', 'AM', 'AO', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AW', 'AX', 'AZ', 'BA', 'BB', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BL', 'BM', 'BN', 'BO', 'BQ', 'BR', 'BS', 'BT', 'BV', 'BW', 'BY', 'BZ', 'CA', 'CC', 'CD', 'CF', 'CG', 'CH', 'CI', 'CK', 'CL', 'CM', 'CN', 'CO', 'CR', 'CU', 'CV', 'CW', 'CX', 'CY', 'CZ', 'DE', 'DJ', 'DK', 'DM', 'DO', 'DZ', 'EC', 'EE', 'EG', 'EH', 'ER', 'ES', 'ET', 'FI', 'FJ', 'FK', 'FM', 'FO', 'FR', 'GA', 'GB', 'GD', 'GE', 'GF', 'GG', 'GH', 'GI', 'GL', 'GM', 'GN', 'GP', 'GQ', 'GR', 'GS', 'GT', 'GU', 'GW', 'GY', 'HK', 'HM', 'HN', 'HR', 'HT', 'HU', 'ID', 'IE', 'IL', 'IM', 'IN', 'IO', 'IQ', 'IR', 'IS', 'IT', 'JE', 'JM', 'JO', 'JP', 'KE', 'KG', 'KH', 'KI', 'KM', 'KN', 'KP', 'KR', 'KW', 'KY', 'KZ', 'LA', 'LB', 'LC', 'LI', 'LK', 'LR', 'LS', 'LT', 'LU', 'LV', 'LY', 'MA', 'MC', 'MD', 'ME', 'MF', 'MG', 'MH', 'MK', 'ML', 'MM', 'MN', 'MO', 'MP', 'MQ', 'MR', 'MS', 'MT', 'MU', 'MV', 'MW', 'MX', 'MY', 'MZ', 'NA', 'NC', 'NE', 'NF', 'NG', 'NI', 'NL', 'NO', 'NP', 'NR', 'NU', 'NZ', 'OM', 'PA', 'PE', 'PF', 'PG', 'PH', 'PK', 'PL', 'PM', 'PN', 'PR', 'PS', 'PT', 'PW', 'PY', 'QA', 'RE', 'RO', 'RS', 'RU', 'RW', 'SA', 'SB', 'SC', 'SD', 'SE', 'SG', 'SH', 'SI', 'SJ', 'SK', 'SL', 'SM', 'SN', 'SO', 'SR', 'SS', 'ST', 'SV', 'SX', 'SY', 'SZ', 'TC', 'TD', 'TF', 'TG', 'TH', 'TJ', 'TK', 'TL', 'TM', 'TN', 'TO', 'TR', 'TT', 'TV', 'TW', 'TZ', 'UA', 'UG', 'UM', 'US', 'UY', 'UZ', 'VA', 'VC', 'VE', 'VG', 'VI', 'VN', 'VU', 'WF', 'WS', 'YE', 'YT', 'ZA', 'ZM', 'ZW']);
+
+function isISO31661Alpha2(str) {
+  (0, _assertString.default)(str);
+  return validISO31661Alpha2CountriesCodes.has(str.toUpperCase());
+}
+
+var CountryCodes = validISO31661Alpha2CountriesCodes;
+exports.CountryCodes = CountryCodes;
+},{"./util/assertString":136}],84:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isISO31661Alpha3;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+// from https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3
+var validISO31661Alpha3CountriesCodes = new Set(['AFG', 'ALA', 'ALB', 'DZA', 'ASM', 'AND', 'AGO', 'AIA', 'ATA', 'ATG', 'ARG', 'ARM', 'ABW', 'AUS', 'AUT', 'AZE', 'BHS', 'BHR', 'BGD', 'BRB', 'BLR', 'BEL', 'BLZ', 'BEN', 'BMU', 'BTN', 'BOL', 'BES', 'BIH', 'BWA', 'BVT', 'BRA', 'IOT', 'BRN', 'BGR', 'BFA', 'BDI', 'KHM', 'CMR', 'CAN', 'CPV', 'CYM', 'CAF', 'TCD', 'CHL', 'CHN', 'CXR', 'CCK', 'COL', 'COM', 'COG', 'COD', 'COK', 'CRI', 'CIV', 'HRV', 'CUB', 'CUW', 'CYP', 'CZE', 'DNK', 'DJI', 'DMA', 'DOM', 'ECU', 'EGY', 'SLV', 'GNQ', 'ERI', 'EST', 'ETH', 'FLK', 'FRO', 'FJI', 'FIN', 'FRA', 'GUF', 'PYF', 'ATF', 'GAB', 'GMB', 'GEO', 'DEU', 'GHA', 'GIB', 'GRC', 'GRL', 'GRD', 'GLP', 'GUM', 'GTM', 'GGY', 'GIN', 'GNB', 'GUY', 'HTI', 'HMD', 'VAT', 'HND', 'HKG', 'HUN', 'ISL', 'IND', 'IDN', 'IRN', 'IRQ', 'IRL', 'IMN', 'ISR', 'ITA', 'JAM', 'JPN', 'JEY', 'JOR', 'KAZ', 'KEN', 'KIR', 'PRK', 'KOR', 'KWT', 'KGZ', 'LAO', 'LVA', 'LBN', 'LSO', 'LBR', 'LBY', 'LIE', 'LTU', 'LUX', 'MAC', 'MKD', 'MDG', 'MWI', 'MYS', 'MDV', 'MLI', 'MLT', 'MHL', 'MTQ', 'MRT', 'MUS', 'MYT', 'MEX', 'FSM', 'MDA', 'MCO', 'MNG', 'MNE', 'MSR', 'MAR', 'MOZ', 'MMR', 'NAM', 'NRU', 'NPL', 'NLD', 'NCL', 'NZL', 'NIC', 'NER', 'NGA', 'NIU', 'NFK', 'MNP', 'NOR', 'OMN', 'PAK', 'PLW', 'PSE', 'PAN', 'PNG', 'PRY', 'PER', 'PHL', 'PCN', 'POL', 'PRT', 'PRI', 'QAT', 'REU', 'ROU', 'RUS', 'RWA', 'BLM', 'SHN', 'KNA', 'LCA', 'MAF', 'SPM', 'VCT', 'WSM', 'SMR', 'STP', 'SAU', 'SEN', 'SRB', 'SYC', 'SLE', 'SGP', 'SXM', 'SVK', 'SVN', 'SLB', 'SOM', 'ZAF', 'SGS', 'SSD', 'ESP', 'LKA', 'SDN', 'SUR', 'SJM', 'SWZ', 'SWE', 'CHE', 'SYR', 'TWN', 'TJK', 'TZA', 'THA', 'TLS', 'TGO', 'TKL', 'TON', 'TTO', 'TUN', 'TUR', 'TKM', 'TCA', 'TUV', 'UGA', 'UKR', 'ARE', 'GBR', 'USA', 'UMI', 'URY', 'UZB', 'VUT', 'VEN', 'VNM', 'VGB', 'VIR', 'WLF', 'ESH', 'YEM', 'ZMB', 'ZWE']);
+
+function isISO31661Alpha3(str) {
+  (0, _assertString.default)(str);
+  return validISO31661Alpha3CountriesCodes.has(str.toUpperCase());
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],85:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isISO4217;
+exports.CurrencyCodes = void 0;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+// from https://en.wikipedia.org/wiki/ISO_4217
+var validISO4217CurrencyCodes = new Set(['AED', 'AFN', 'ALL', 'AMD', 'ANG', 'AOA', 'ARS', 'AUD', 'AWG', 'AZN', 'BAM', 'BBD', 'BDT', 'BGN', 'BHD', 'BIF', 'BMD', 'BND', 'BOB', 'BOV', 'BRL', 'BSD', 'BTN', 'BWP', 'BYN', 'BZD', 'CAD', 'CDF', 'CHE', 'CHF', 'CHW', 'CLF', 'CLP', 'CNY', 'COP', 'COU', 'CRC', 'CUC', 'CUP', 'CVE', 'CZK', 'DJF', 'DKK', 'DOP', 'DZD', 'EGP', 'ERN', 'ETB', 'EUR', 'FJD', 'FKP', 'GBP', 'GEL', 'GHS', 'GIP', 'GMD', 'GNF', 'GTQ', 'GYD', 'HKD', 'HNL', 'HRK', 'HTG', 'HUF', 'IDR', 'ILS', 'INR', 'IQD', 'IRR', 'ISK', 'JMD', 'JOD', 'JPY', 'KES', 'KGS', 'KHR', 'KMF', 'KPW', 'KRW', 'KWD', 'KYD', 'KZT', 'LAK', 'LBP', 'LKR', 'LRD', 'LSL', 'LYD', 'MAD', 'MDL', 'MGA', 'MKD', 'MMK', 'MNT', 'MOP', 'MRU', 'MUR', 'MVR', 'MWK', 'MXN', 'MXV', 'MYR', 'MZN', 'NAD', 'NGN', 'NIO', 'NOK', 'NPR', 'NZD', 'OMR', 'PAB', 'PEN', 'PGK', 'PHP', 'PKR', 'PLN', 'PYG', 'QAR', 'RON', 'RSD', 'RUB', 'RWF', 'SAR', 'SBD', 'SCR', 'SDG', 'SEK', 'SGD', 'SHP', 'SLL', 'SOS', 'SRD', 'SSP', 'STN', 'SVC', 'SYP', 'SZL', 'THB', 'TJS', 'TMT', 'TND', 'TOP', 'TRY', 'TTD', 'TWD', 'TZS', 'UAH', 'UGX', 'USD', 'USN', 'UYI', 'UYU', 'UYW', 'UZS', 'VES', 'VND', 'VUV', 'WST', 'XAF', 'XAG', 'XAU', 'XBA', 'XBB', 'XBC', 'XBD', 'XCD', 'XDR', 'XOF', 'XPD', 'XPF', 'XPT', 'XSU', 'XTS', 'XUA', 'XXX', 'YER', 'ZAR', 'ZMW', 'ZWL']);
+
+function isISO4217(str) {
+  (0, _assertString.default)(str);
+  return validISO4217CurrencyCodes.has(str.toUpperCase());
+}
+
+var CurrencyCodes = validISO4217CurrencyCodes;
+exports.CurrencyCodes = CurrencyCodes;
+},{"./util/assertString":136}],86:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isISO8601;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+/* eslint-disable max-len */
+// from http://goo.gl/0ejHHW
+var iso8601 = /^([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T\s]((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([\.,]\d+(?!:))?)?(\17[0-5]\d([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/; // same as above, except with a strict 'T' separator between date and time
+
+var iso8601StrictSeparator = /^([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T]((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([\.,]\d+(?!:))?)?(\17[0-5]\d([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/;
+/* eslint-enable max-len */
+
+var isValidDate = function isValidDate(str) {
+  // str must have passed the ISO8601 check
+  // this check is meant to catch invalid dates
+  // like 2009-02-31
+  // first check for ordinal dates
+  var ordinalMatch = str.match(/^(\d{4})-?(\d{3})([ T]{1}\.*|$)/);
+
+  if (ordinalMatch) {
+    var oYear = Number(ordinalMatch[1]);
+    var oDay = Number(ordinalMatch[2]); // if is leap year
+
+    if (oYear % 4 === 0 && oYear % 100 !== 0 || oYear % 400 === 0) return oDay <= 366;
+    return oDay <= 365;
+  }
+
+  var match = str.match(/(\d{4})-?(\d{0,2})-?(\d*)/).map(Number);
+  var year = match[1];
+  var month = match[2];
+  var day = match[3];
+  var monthString = month ? "0".concat(month).slice(-2) : month;
+  var dayString = day ? "0".concat(day).slice(-2) : day; // create a date object and compare
+
+  var d = new Date("".concat(year, "-").concat(monthString || '01', "-").concat(dayString || '01'));
+
+  if (month && day) {
+    return d.getUTCFullYear() === year && d.getUTCMonth() + 1 === month && d.getUTCDate() === day;
+  }
+
+  return true;
+};
+
+function isISO8601(str) {
+  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+  (0, _assertString.default)(str);
+  var check = options.strictSeparator ? iso8601StrictSeparator.test(str) : iso8601.test(str);
+  if (check && options.strict) return isValidDate(str);
+  return check;
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],87:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isISRC;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+// see http://isrc.ifpi.org/en/isrc-standard/code-syntax
+var isrc = /^[A-Z]{2}[0-9A-Z]{3}\d{2}\d{5}$/;
+
+function isISRC(str) {
+  (0, _assertString.default)(str);
+  return isrc.test(str);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],88:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isISSN;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var issn = '^\\d{4}-?\\d{3}[\\dX]$';
+
+function isISSN(str) {
+  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+  (0, _assertString.default)(str);
+  var testIssn = issn;
+  testIssn = options.require_hyphen ? testIssn.replace('?', '') : testIssn;
+  testIssn = options.case_sensitive ? new RegExp(testIssn) : new RegExp(testIssn, 'i');
+
+  if (!testIssn.test(str)) {
+    return false;
+  }
+
+  var digits = str.replace('-', '').toUpperCase();
+  var checksum = 0;
+
+  for (var i = 0; i < digits.length; i++) {
+    var digit = digits[i];
+    checksum += (digit === 'X' ? 10 : +digit) * (8 - i);
+  }
+
+  return checksum % 11 === 0;
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],89:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isIdentityCard;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+var _isInt = _interopRequireDefault(require("./isInt"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var validators = {
+  PL: function PL(str) {
+    (0, _assertString.default)(str);
+    var weightOfDigits = {
+      1: 1,
+      2: 3,
+      3: 7,
+      4: 9,
+      5: 1,
+      6: 3,
+      7: 7,
+      8: 9,
+      9: 1,
+      10: 3,
+      11: 0
+    };
+
+    if (str != null && str.length === 11 && (0, _isInt.default)(str, {
+      allow_leading_zeroes: true
+    })) {
+      var digits = str.split('').slice(0, -1);
+      var sum = digits.reduce(function (acc, digit, index) {
+        return acc + Number(digit) * weightOfDigits[index + 1];
+      }, 0);
+      var modulo = sum % 10;
+      var lastDigit = Number(str.charAt(str.length - 1));
+
+      if (modulo === 0 && lastDigit === 0 || lastDigit === 10 - modulo) {
+        return true;
+      }
+    }
+
+    return false;
+  },
+  ES: function ES(str) {
+    (0, _assertString.default)(str);
+    var DNI = /^[0-9X-Z][0-9]{7}[TRWAGMYFPDXBNJZSQVHLCKE]$/;
+    var charsValue = {
+      X: 0,
+      Y: 1,
+      Z: 2
+    };
+    var controlDigits = ['T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E']; // sanitize user input
+
+    var sanitized = str.trim().toUpperCase(); // validate the data structure
+
+    if (!DNI.test(sanitized)) {
+      return false;
+    } // validate the control digit
+
+
+    var number = sanitized.slice(0, -1).replace(/[X,Y,Z]/g, function (char) {
+      return charsValue[char];
+    });
+    return sanitized.endsWith(controlDigits[number % 23]);
+  },
+  FI: function FI(str) {
+    // https://dvv.fi/en/personal-identity-code#:~:text=control%20character%20for%20a-,personal,-identity%20code%20calculated
+    (0, _assertString.default)(str);
+
+    if (str.length !== 11) {
+      return false;
+    }
+
+    if (!str.match(/^\d{6}[\-A\+]\d{3}[0-9ABCDEFHJKLMNPRSTUVWXY]{1}$/)) {
+      return false;
+    }
+
+    var checkDigits = '0123456789ABCDEFHJKLMNPRSTUVWXY';
+    var idAsNumber = parseInt(str.slice(0, 6), 10) * 1000 + parseInt(str.slice(7, 10), 10);
+    var remainder = idAsNumber % 31;
+    var checkDigit = checkDigits[remainder];
+    return checkDigit === str.slice(10, 11);
+  },
+  IN: function IN(str) {
+    var DNI = /^[1-9]\d{3}\s?\d{4}\s?\d{4}$/; // multiplication table
+
+    var d = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 0, 6, 7, 8, 9, 5], [2, 3, 4, 0, 1, 7, 8, 9, 5, 6], [3, 4, 0, 1, 2, 8, 9, 5, 6, 7], [4, 0, 1, 2, 3, 9, 5, 6, 7, 8], [5, 9, 8, 7, 6, 0, 4, 3, 2, 1], [6, 5, 9, 8, 7, 1, 0, 4, 3, 2], [7, 6, 5, 9, 8, 2, 1, 0, 4, 3], [8, 7, 6, 5, 9, 3, 2, 1, 0, 4], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]]; // permutation table
+
+    var p = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 5, 7, 6, 2, 8, 3, 0, 9, 4], [5, 8, 0, 3, 7, 9, 6, 1, 4, 2], [8, 9, 1, 6, 0, 4, 3, 5, 2, 7], [9, 4, 5, 3, 1, 2, 6, 8, 7, 0], [4, 2, 8, 6, 5, 7, 3, 9, 0, 1], [2, 7, 9, 3, 8, 0, 6, 4, 1, 5], [7, 0, 4, 6, 9, 1, 3, 2, 5, 8]]; // sanitize user input
+
+    var sanitized = str.trim(); // validate the data structure
+
+    if (!DNI.test(sanitized)) {
+      return false;
+    }
+
+    var c = 0;
+    var invertedArray = sanitized.replace(/\s/g, '').split('').map(Number).reverse();
+    invertedArray.forEach(function (val, i) {
+      c = d[c][p[i % 8][val]];
+    });
+    return c === 0;
+  },
+  IR: function IR(str) {
+    if (!str.match(/^\d{10}$/)) return false;
+    str = "0000".concat(str).substr(str.length - 6);
+    if (parseInt(str.substr(3, 6), 10) === 0) return false;
+    var lastNumber = parseInt(str.substr(9, 1), 10);
+    var sum = 0;
+
+    for (var i = 0; i < 9; i++) {
+      sum += parseInt(str.substr(i, 1), 10) * (10 - i);
+    }
+
+    sum %= 11;
+    return sum < 2 && lastNumber === sum || sum >= 2 && lastNumber === 11 - sum;
+  },
+  IT: function IT(str) {
+    if (str.length !== 9) return false;
+    if (str === 'CA00000AA') return false; // https://it.wikipedia.org/wiki/Carta_d%27identit%C3%A0_elettronica_italiana
+
+    return str.search(/C[A-Z][0-9]{5}[A-Z]{2}/i) > -1;
+  },
+  NO: function NO(str) {
+    var sanitized = str.trim();
+    if (isNaN(Number(sanitized))) return false;
+    if (sanitized.length !== 11) return false;
+    if (sanitized === '00000000000') return false; // https://no.wikipedia.org/wiki/F%C3%B8dselsnummer
+
+    var f = sanitized.split('').map(Number);
+    var k1 = (11 - (3 * f[0] + 7 * f[1] + 6 * f[2] + 1 * f[3] + 8 * f[4] + 9 * f[5] + 4 * f[6] + 5 * f[7] + 2 * f[8]) % 11) % 11;
+    var k2 = (11 - (5 * f[0] + 4 * f[1] + 3 * f[2] + 2 * f[3] + 7 * f[4] + 6 * f[5] + 5 * f[6] + 4 * f[7] + 3 * f[8] + 2 * k1) % 11) % 11;
+    if (k1 !== f[9] || k2 !== f[10]) return false;
+    return true;
+  },
+  TH: function TH(str) {
+    if (!str.match(/^[1-8]\d{12}$/)) return false; // validate check digit
+
+    var sum = 0;
+
+    for (var i = 0; i < 12; i++) {
+      sum += parseInt(str[i], 10) * (13 - i);
+    }
+
+    return str[12] === ((11 - sum % 11) % 10).toString();
+  },
+  LK: function LK(str) {
+    var old_nic = /^[1-9]\d{8}[vx]$/i;
+    var new_nic = /^[1-9]\d{11}$/i;
+    if (str.length === 10 && old_nic.test(str)) return true;else if (str.length === 12 && new_nic.test(str)) return true;
+    return false;
+  },
+  'he-IL': function heIL(str) {
+    var DNI = /^\d{9}$/; // sanitize user input
+
+    var sanitized = str.trim(); // validate the data structure
+
+    if (!DNI.test(sanitized)) {
+      return false;
+    }
+
+    var id = sanitized;
+    var sum = 0,
+        incNum;
+
+    for (var i = 0; i < id.length; i++) {
+      incNum = Number(id[i]) * (i % 2 + 1); // Multiply number by 1 or 2
+
+      sum += incNum > 9 ? incNum - 9 : incNum; // Sum the digits up and add to total
+    }
+
+    return sum % 10 === 0;
+  },
+  'ar-LY': function arLY(str) {
+    // Libya National Identity Number NIN is 12 digits, the first digit is either 1 or 2
+    var NIN = /^(1|2)\d{11}$/; // sanitize user input
+
+    var sanitized = str.trim(); // validate the data structure
+
+    if (!NIN.test(sanitized)) {
+      return false;
+    }
+
+    return true;
+  },
+  'ar-TN': function arTN(str) {
+    var DNI = /^\d{8}$/; // sanitize user input
+
+    var sanitized = str.trim(); // validate the data structure
+
+    if (!DNI.test(sanitized)) {
+      return false;
+    }
+
+    return true;
+  },
+  'zh-CN': function zhCN(str) {
+    var provincesAndCities = ['11', // 北京
+    '12', // 天津
+    '13', // 河北
+    '14', // 山西
+    '15', // 内蒙古
+    '21', // 辽宁
+    '22', // 吉林
+    '23', // 黑龙江
+    '31', // 上海
+    '32', // 江苏
+    '33', // 浙江
+    '34', // 安徽
+    '35', // 福建
+    '36', // 江西
+    '37', // 山东
+    '41', // 河南
+    '42', // 湖北
+    '43', // 湖南
+    '44', // 广东
+    '45', // 广西
+    '46', // 海南
+    '50', // 重庆
+    '51', // 四川
+    '52', // 贵州
+    '53', // 云南
+    '54', // 西藏
+    '61', // 陕西
+    '62', // 甘肃
+    '63', // 青海
+    '64', // 宁夏
+    '65', // 新疆
+    '71', // 台湾
+    '81', // 香港
+    '82', // 澳门
+    '91' // 国外
+    ];
+    var powers = ['7', '9', '10', '5', '8', '4', '2', '1', '6', '3', '7', '9', '10', '5', '8', '4', '2'];
+    var parityBit = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
+
+    var checkAddressCode = function checkAddressCode(addressCode) {
+      return provincesAndCities.includes(addressCode);
+    };
+
+    var checkBirthDayCode = function checkBirthDayCode(birDayCode) {
+      var yyyy = parseInt(birDayCode.substring(0, 4), 10);
+      var mm = parseInt(birDayCode.substring(4, 6), 10);
+      var dd = parseInt(birDayCode.substring(6), 10);
+      var xdata = new Date(yyyy, mm - 1, dd);
+
+      if (xdata > new Date()) {
+        return false; // eslint-disable-next-line max-len
+      } else if (xdata.getFullYear() === yyyy && xdata.getMonth() === mm - 1 && xdata.getDate() === dd) {
+        return true;
+      }
+
+      return false;
+    };
+
+    var getParityBit = function getParityBit(idCardNo) {
+      var id17 = idCardNo.substring(0, 17);
+      var power = 0;
+
+      for (var i = 0; i < 17; i++) {
+        power += parseInt(id17.charAt(i), 10) * parseInt(powers[i], 10);
+      }
+
+      var mod = power % 11;
+      return parityBit[mod];
+    };
+
+    var checkParityBit = function checkParityBit(idCardNo) {
+      return getParityBit(idCardNo) === idCardNo.charAt(17).toUpperCase();
+    };
+
+    var check15IdCardNo = function check15IdCardNo(idCardNo) {
+      var check = /^[1-9]\d{7}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\d{3}$/.test(idCardNo);
+      if (!check) return false;
+      var addressCode = idCardNo.substring(0, 2);
+      check = checkAddressCode(addressCode);
+      if (!check) return false;
+      var birDayCode = "19".concat(idCardNo.substring(6, 12));
+      check = checkBirthDayCode(birDayCode);
+      if (!check) return false;
+      return true;
+    };
+
+    var check18IdCardNo = function check18IdCardNo(idCardNo) {
+      var check = /^[1-9]\d{5}[1-9]\d{3}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\d{3}(\d|x|X)$/.test(idCardNo);
+      if (!check) return false;
+      var addressCode = idCardNo.substring(0, 2);
+      check = checkAddressCode(addressCode);
+      if (!check) return false;
+      var birDayCode = idCardNo.substring(6, 14);
+      check = checkBirthDayCode(birDayCode);
+      if (!check) return false;
+      return checkParityBit(idCardNo);
+    };
+
+    var checkIdCardNo = function checkIdCardNo(idCardNo) {
+      var check = /^\d{15}|(\d{17}(\d|x|X))$/.test(idCardNo);
+      if (!check) return false;
+
+      if (idCardNo.length === 15) {
+        return check15IdCardNo(idCardNo);
+      }
+
+      return check18IdCardNo(idCardNo);
+    };
+
+    return checkIdCardNo(str);
+  },
+  'zh-TW': function zhTW(str) {
+    var ALPHABET_CODES = {
+      A: 10,
+      B: 11,
+      C: 12,
+      D: 13,
+      E: 14,
+      F: 15,
+      G: 16,
+      H: 17,
+      I: 34,
+      J: 18,
+      K: 19,
+      L: 20,
+      M: 21,
+      N: 22,
+      O: 35,
+      P: 23,
+      Q: 24,
+      R: 25,
+      S: 26,
+      T: 27,
+      U: 28,
+      V: 29,
+      W: 32,
+      X: 30,
+      Y: 31,
+      Z: 33
+    };
+    var sanitized = str.trim().toUpperCase();
+    if (!/^[A-Z][0-9]{9}$/.test(sanitized)) return false;
+    return Array.from(sanitized).reduce(function (sum, number, index) {
+      if (index === 0) {
+        var code = ALPHABET_CODES[number];
+        return code % 10 * 9 + Math.floor(code / 10);
+      }
+
+      if (index === 9) {
+        return (10 - sum % 10 - Number(number)) % 10 === 0;
+      }
+
+      return sum + Number(number) * (9 - index);
+    }, 0);
+  }
+};
+
+function isIdentityCard(str, locale) {
+  (0, _assertString.default)(str);
+
+  if (locale in validators) {
+    return validators[locale](str);
+  } else if (locale === 'any') {
+    for (var key in validators) {
+      // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes
+      // istanbul ignore else
+      if (validators.hasOwnProperty(key)) {
+        var validator = validators[key];
+
+        if (validator(str)) {
+          return true;
+        }
+      }
+    }
+
+    return false;
+  }
+
+  throw new Error("Invalid locale '".concat(locale, "'"));
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./isInt":91,"./util/assertString":136}],90:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isIn;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+var _toString = _interopRequireDefault(require("./util/toString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
+
+function isIn(str, options) {
+  (0, _assertString.default)(str);
+  var i;
+
+  if (Object.prototype.toString.call(options) === '[object Array]') {
+    var array = [];
+
+    for (i in options) {
+      // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes
+      // istanbul ignore else
+      if ({}.hasOwnProperty.call(options, i)) {
+        array[i] = (0, _toString.default)(options[i]);
+      }
+    }
+
+    return array.indexOf(str) >= 0;
+  } else if (_typeof(options) === 'object') {
+    return options.hasOwnProperty(str);
+  } else if (options && typeof options.indexOf === 'function') {
+    return options.indexOf(str) >= 0;
+  }
+
+  return false;
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136,"./util/toString":140}],91:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isInt;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var int = /^(?:[-+]?(?:0|[1-9][0-9]*))$/;
+var intLeadingZeroes = /^[-+]?[0-9]+$/;
+
+function isInt(str, options) {
+  (0, _assertString.default)(str);
+  options = options || {}; // Get the regex to use for testing, based on whether
+  // leading zeroes are allowed or not.
+
+  var regex = options.hasOwnProperty('allow_leading_zeroes') && !options.allow_leading_zeroes ? int : intLeadingZeroes; // Check min/max/lt/gt
+
+  var minCheckPassed = !options.hasOwnProperty('min') || str >= options.min;
+  var maxCheckPassed = !options.hasOwnProperty('max') || str <= options.max;
+  var ltCheckPassed = !options.hasOwnProperty('lt') || str < options.lt;
+  var gtCheckPassed = !options.hasOwnProperty('gt') || str > options.gt;
+  return regex.test(str) && minCheckPassed && maxCheckPassed && ltCheckPassed && gtCheckPassed;
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],92:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isJSON;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+var _merge = _interopRequireDefault(require("./util/merge"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
+
+var default_json_options = {
+  allow_primitives: false
+};
+
+function isJSON(str, options) {
+  (0, _assertString.default)(str);
+
+  try {
+    options = (0, _merge.default)(options, default_json_options);
+    var primitives = [];
+
+    if (options.allow_primitives) {
+      primitives = [null, false, true];
+    }
+
+    var obj = JSON.parse(str);
+    return primitives.includes(obj) || !!obj && _typeof(obj) === 'object';
+  } catch (e) {
+    /* ignore */
+  }
+
+  return false;
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136,"./util/merge":138}],93:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isJWT;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+var _isBase = _interopRequireDefault(require("./isBase64"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function isJWT(str) {
+  (0, _assertString.default)(str);
+  var dotSplit = str.split('.');
+  var len = dotSplit.length;
+
+  if (len > 3 || len < 2) {
+    return false;
+  }
+
+  return dotSplit.reduce(function (acc, currElem) {
+    return acc && (0, _isBase.default)(currElem, {
+      urlSafe: true
+    });
+  }, true);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./isBase64":54,"./util/assertString":136}],94:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isLatLong;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+var _merge = _interopRequireDefault(require("./util/merge"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var lat = /^\(?[+-]?(90(\.0+)?|[1-8]?\d(\.\d+)?)$/;
+var long = /^\s?[+-]?(180(\.0+)?|1[0-7]\d(\.\d+)?|\d{1,2}(\.\d+)?)\)?$/;
+var latDMS = /^(([1-8]?\d)\D+([1-5]?\d|60)\D+([1-5]?\d|60)(\.\d+)?|90\D+0\D+0)\D+[NSns]?$/i;
+var longDMS = /^\s*([1-7]?\d{1,2}\D+([1-5]?\d|60)\D+([1-5]?\d|60)(\.\d+)?|180\D+0\D+0)\D+[EWew]?$/i;
+var defaultLatLongOptions = {
+  checkDMS: false
+};
+
+function isLatLong(str, options) {
+  (0, _assertString.default)(str);
+  options = (0, _merge.default)(options, defaultLatLongOptions);
+  if (!str.includes(',')) return false;
+  var pair = str.split(',');
+  if (pair[0].startsWith('(') && !pair[1].endsWith(')') || pair[1].endsWith(')') && !pair[0].startsWith('(')) return false;
+
+  if (options.checkDMS) {
+    return latDMS.test(pair[0]) && longDMS.test(pair[1]);
+  }
+
+  return lat.test(pair[0]) && long.test(pair[1]);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136,"./util/merge":138}],95:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isLength;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
+
+/* eslint-disable prefer-rest-params */
+function isLength(str, options) {
+  (0, _assertString.default)(str);
+  var min;
+  var max;
+
+  if (_typeof(options) === 'object') {
+    min = options.min || 0;
+    max = options.max;
+  } else {
+    // backwards compatibility: isLength(str, min [, max])
+    min = arguments[1] || 0;
+    max = arguments[2];
+  }
+
+  var surrogatePairs = str.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g) || [];
+  var len = str.length - surrogatePairs.length;
+  return len >= min && (typeof max === 'undefined' || len <= max);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],96:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isLicensePlate;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var validators = {
+  'cs-CZ': function csCZ(str) {
+    return /^(([ABCDEFHKIJKLMNPRSTUVXYZ]|[0-9])-?){5,8}$/.test(str);
+  },
+  'de-DE': function deDE(str) {
+    return /^((AW|UL|AK|GA|AÖ|LF|AZ|AM|AS|ZE|AN|AB|A|KG|KH|BA|EW|BZ|HY|KM|BT|HP|B|BC|BI|BO|FN|TT|ÜB|BN|AH|BS|FR|HB|ZZ|BB|BK|BÖ|OC|OK|CW|CE|C|CO|LH|CB|KW|LC|LN|DA|DI|DE|DH|SY|NÖ|DO|DD|DU|DN|D|EI|EA|EE|FI|EM|EL|EN|PF|ED|EF|ER|AU|ZP|E|ES|NT|EU|FL|FO|FT|FF|F|FS|FD|FÜ|GE|G|GI|GF|GS|ZR|GG|GP|GR|NY|ZI|GÖ|GZ|GT|HA|HH|HM|HU|WL|HZ|WR|RN|HK|HD|HN|HS|GK|HE|HF|RZ|HI|HG|HO|HX|IK|IL|IN|J|JL|KL|KA|KS|KF|KE|KI|KT|KO|KN|KR|KC|KU|K|LD|LL|LA|L|OP|LM|LI|LB|LU|LÖ|HL|LG|MD|GN|MZ|MA|ML|MR|MY|AT|DM|MC|NZ|RM|RG|MM|ME|MB|MI|FG|DL|HC|MW|RL|MK|MG|MÜ|WS|MH|M|MS|NU|NB|ND|NM|NK|NW|NR|NI|NF|DZ|EB|OZ|TG|TO|N|OA|GM|OB|CA|EH|FW|OF|OL|OE|OG|BH|LR|OS|AA|GD|OH|KY|NP|WK|PB|PA|PE|PI|PS|P|PM|PR|RA|RV|RE|R|H|SB|WN|RS|RD|RT|BM|NE|GV|RP|SU|GL|RO|GÜ|RH|EG|RW|PN|SK|MQ|RU|SZ|RI|SL|SM|SC|HR|FZ|VS|SW|SN|CR|SE|SI|SO|LP|SG|NH|SP|IZ|ST|BF|TE|HV|OD|SR|S|AC|DW|ZW|TF|TS|TR|TÜ|UM|PZ|TP|UE|UN|UH|MN|KK|VB|V|AE|PL|RC|VG|GW|PW|VR|VK|KB|WA|WT|BE|WM|WE|AP|MO|WW|FB|WZ|WI|WB|JE|WF|WO|W|WÜ|BL|Z|GC)[- ]?[A-Z]{1,2}[- ]?\d{1,4}|(AIC|FDB|ABG|SLN|SAW|KLZ|BUL|ESB|NAB|SUL|WST|ABI|AZE|BTF|KÖT|DKB|FEU|ROT|ALZ|SMÜ|WER|AUR|NOR|DÜW|BRK|HAB|TÖL|WOR|BAD|BAR|BER|BIW|EBS|KEM|MÜB|PEG|BGL|BGD|REI|WIL|BKS|BIR|WAT|BOR|BOH|BOT|BRB|BLK|HHM|NEB|NMB|WSF|LEO|HDL|WMS|WZL|BÜS|CHA|KÖZ|ROD|WÜM|CLP|NEC|COC|ZEL|COE|CUX|DAH|LDS|DEG|DEL|RSL|DLG|DGF|LAN|HEI|MED|DON|KIB|ROK|JÜL|MON|SLE|EBE|EIC|HIG|WBS|BIT|PRÜ|LIB|EMD|WIT|ERH|HÖS|ERZ|ANA|ASZ|MAB|MEK|STL|SZB|FDS|HCH|HOR|WOL|FRG|GRA|WOS|FRI|FFB|GAP|GER|BRL|CLZ|GTH|NOH|HGW|GRZ|LÖB|NOL|WSW|DUD|HMÜ|OHA|KRU|HAL|HAM|HBS|QLB|HVL|NAU|HAS|EBN|GEO|HOH|HDH|ERK|HER|WAN|HEF|ROF|HBN|ALF|HSK|USI|NAI|REH|SAN|KÜN|ÖHR|HOL|WAR|ARN|BRG|GNT|HOG|WOH|KEH|MAI|PAR|RID|ROL|KLE|GEL|KUS|KYF|ART|SDH|LDK|DIL|MAL|VIB|LER|BNA|GHA|GRM|MTL|WUR|LEV|LIF|STE|WEL|LIP|VAI|LUP|HGN|LBZ|LWL|PCH|STB|DAN|MKK|SLÜ|MSP|TBB|MGH|MTK|BIN|MSH|EIL|HET|SGH|BID|MYK|MSE|MST|MÜR|WRN|MEI|GRH|RIE|MZG|MIL|OBB|BED|FLÖ|MOL|FRW|SEE|SRB|AIB|MOS|BCH|ILL|SOB|NMS|NEA|SEF|UFF|NEW|VOH|NDH|TDO|NWM|GDB|GVM|WIS|NOM|EIN|GAN|LAU|HEB|OHV|OSL|SFB|ERB|LOS|BSK|KEL|BSB|MEL|WTL|OAL|FÜS|MOD|OHZ|OPR|BÜR|PAF|PLÖ|CAS|GLA|REG|VIT|ECK|SIM|GOA|EMS|DIZ|GOH|RÜD|SWA|NES|KÖN|MET|LRO|BÜZ|DBR|ROS|TET|HRO|ROW|BRV|HIP|PAN|GRI|SHK|EIS|SRO|SOK|LBS|SCZ|MER|QFT|SLF|SLS|HOM|SLK|ASL|BBG|SBK|SFT|SHG|MGN|MEG|ZIG|SAD|NEN|OVI|SHA|BLB|SIG|SON|SPN|FOR|GUB|SPB|IGB|WND|STD|STA|SDL|OBG|HST|BOG|SHL|PIR|FTL|SEB|SÖM|SÜW|TIR|SAB|TUT|ANG|SDT|LÜN|LSZ|MHL|VEC|VER|VIE|OVL|ANK|OVP|SBG|UEM|UER|WLG|GMN|NVP|RDG|RÜG|DAU|FKB|WAF|WAK|SLZ|WEN|SOG|APD|WUG|GUN|ESW|WIZ|WES|DIN|BRA|BÜD|WHV|HWI|GHC|WTM|WOB|WUN|MAK|SEL|OCH|HOT|WDA)[- ]?(([A-Z][- ]?\d{1,4})|([A-Z]{2}[- ]?\d{1,3})))[- ]?(E|H)?$/.test(str);
+  },
+  'de-LI': function deLI(str) {
+    return /^FL[- ]?\d{1,5}[UZ]?$/.test(str);
+  },
+  'fi-FI': function fiFI(str) {
+    return /^(?=.{4,7})(([A-Z]{1,3}|[0-9]{1,3})[\s-]?([A-Z]{1,3}|[0-9]{1,5}))$/.test(str);
+  },
+  'pt-PT': function ptPT(str) {
+    return /^([A-Z]{2}|[0-9]{2})[ -·]?([A-Z]{2}|[0-9]{2})[ -·]?([A-Z]{2}|[0-9]{2})$/.test(str);
+  },
+  'sq-AL': function sqAL(str) {
+    return /^[A-Z]{2}[- ]?((\d{3}[- ]?(([A-Z]{2})|T))|(R[- ]?\d{3}))$/.test(str);
+  },
+  'pt-BR': function ptBR(str) {
+    return /^[A-Z]{3}[ -]?[0-9][A-Z][0-9]{2}|[A-Z]{3}[ -]?[0-9]{4}$/.test(str);
+  }
+};
+
+function isLicensePlate(str, locale) {
+  (0, _assertString.default)(str);
+
+  if (locale in validators) {
+    return validators[locale](str);
+  } else if (locale === 'any') {
+    for (var key in validators) {
+      /* eslint guard-for-in: 0 */
+      var validator = validators[key];
+
+      if (validator(str)) {
+        return true;
+      }
+    }
+
+    return false;
+  }
+
+  throw new Error("Invalid locale '".concat(locale, "'"));
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],97:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isLocale;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var localeReg = /^[A-Za-z]{2,4}([_-]([A-Za-z]{4}|[\d]{3}))?([_-]([A-Za-z]{2}|[\d]{3}))?$/;
+
+function isLocale(str) {
+  (0, _assertString.default)(str);
+
+  if (str === 'en_US_POSIX' || str === 'ca_ES_VALENCIA') {
+    return true;
+  }
+
+  return localeReg.test(str);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],98:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isLowercase;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function isLowercase(str) {
+  (0, _assertString.default)(str);
+  return str === str.toLowerCase();
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],99:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isMACAddress;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var macAddress = /^(?:[0-9a-fA-F]{2}([-:\s]))([0-9a-fA-F]{2}\1){4}([0-9a-fA-F]{2})$/;
+var macAddressNoSeparators = /^([0-9a-fA-F]){12}$/;
+var macAddressWithDots = /^([0-9a-fA-F]{4}\.){2}([0-9a-fA-F]{4})$/;
+
+function isMACAddress(str, options) {
+  (0, _assertString.default)(str);
+  /**
+   * @deprecated `no_colons` TODO: remove it in the next major
+  */
+
+  if (options && (options.no_colons || options.no_separators)) {
+    return macAddressNoSeparators.test(str);
+  }
+
+  return macAddress.test(str) || macAddressWithDots.test(str);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],100:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isMD5;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var md5 = /^[a-f0-9]{32}$/;
+
+function isMD5(str) {
+  (0, _assertString.default)(str);
+  return md5.test(str);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],101:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isMagnetURI;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var magnetURI = /^magnet:\?xt(?:\.1)?=urn:(?:aich|bitprint|btih|ed2k|ed2khash|kzhash|md5|sha1|tree:tiger):[a-z0-9]{32}(?:[a-z0-9]{8})?($|&)/i;
+
+function isMagnetURI(url) {
+  (0, _assertString.default)(url);
+  return magnetURI.test(url.trim());
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],102:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isMimeType;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+/*
+  Checks if the provided string matches to a correct Media type format (MIME type)
+
+  This function only checks is the string format follows the
+  etablished rules by the according RFC specifications.
+  This function supports 'charset' in textual media types
+  (https://tools.ietf.org/html/rfc6657).
+
+  This function does not check against all the media types listed
+  by the IANA (https://www.iana.org/assignments/media-types/media-types.xhtml)
+  because of lightness purposes : it would require to include
+  all these MIME types in this librairy, which would weigh it
+  significantly. This kind of effort maybe is not worth for the use that
+  this function has in this entire librairy.
+
+  More informations in the RFC specifications :
+  - https://tools.ietf.org/html/rfc2045
+  - https://tools.ietf.org/html/rfc2046
+  - https://tools.ietf.org/html/rfc7231#section-3.1.1.1
+  - https://tools.ietf.org/html/rfc7231#section-3.1.1.5
+*/
+// Match simple MIME types
+// NB :
+//   Subtype length must not exceed 100 characters.
+//   This rule does not comply to the RFC specs (what is the max length ?).
+var mimeTypeSimple = /^(application|audio|font|image|message|model|multipart|text|video)\/[a-zA-Z0-9\.\-\+]{1,100}$/i; // eslint-disable-line max-len
+// Handle "charset" in "text/*"
+
+var mimeTypeText = /^text\/[a-zA-Z0-9\.\-\+]{1,100};\s?charset=("[a-zA-Z0-9\.\-\+\s]{0,70}"|[a-zA-Z0-9\.\-\+]{0,70})(\s?\([a-zA-Z0-9\.\-\+\s]{1,20}\))?$/i; // eslint-disable-line max-len
+// Handle "boundary" in "multipart/*"
+
+var mimeTypeMultipart = /^multipart\/[a-zA-Z0-9\.\-\+]{1,100}(;\s?(boundary|charset)=("[a-zA-Z0-9\.\-\+\s]{0,70}"|[a-zA-Z0-9\.\-\+]{0,70})(\s?\([a-zA-Z0-9\.\-\+\s]{1,20}\))?){0,2}$/i; // eslint-disable-line max-len
+
+function isMimeType(str) {
+  (0, _assertString.default)(str);
+  return mimeTypeSimple.test(str) || mimeTypeText.test(str) || mimeTypeMultipart.test(str);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],103:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isMobilePhone;
+exports.locales = void 0;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+/* eslint-disable max-len */
+var phones = {
+  'am-AM': /^(\+?374|0)((10|[9|7][0-9])\d{6}$|[2-4]\d{7}$)/,
+  'ar-AE': /^((\+?971)|0)?5[024568]\d{7}$/,
+  'ar-BH': /^(\+?973)?(3|6)\d{7}$/,
+  'ar-DZ': /^(\+?213|0)(5|6|7)\d{8}$/,
+  'ar-LB': /^(\+?961)?((3|81)\d{6}|7\d{7})$/,
+  'ar-EG': /^((\+?20)|0)?1[0125]\d{8}$/,
+  'ar-IQ': /^(\+?964|0)?7[0-9]\d{8}$/,
+  'ar-JO': /^(\+?962|0)?7[789]\d{7}$/,
+  'ar-KW': /^(\+?965)[569]\d{7}$/,
+  'ar-LY': /^((\+?218)|0)?(9[1-6]\d{7}|[1-8]\d{7,9})$/,
+  'ar-MA': /^(?:(?:\+|00)212|0)[5-7]\d{8}$/,
+  'ar-OM': /^((\+|00)968)?(9[1-9])\d{6}$/,
+  'ar-PS': /^(\+?970|0)5[6|9](\d{7})$/,
+  'ar-SA': /^(!?(\+?966)|0)?5\d{8}$/,
+  'ar-SY': /^(!?(\+?963)|0)?9\d{8}$/,
+  'ar-TN': /^(\+?216)?[2459]\d{7}$/,
+  'az-AZ': /^(\+994|0)(5[015]|7[07]|99)\d{7}$/,
+  'bs-BA': /^((((\+|00)3876)|06))((([0-3]|[5-6])\d{6})|(4\d{7}))$/,
+  'be-BY': /^(\+?375)?(24|25|29|33|44)\d{7}$/,
+  'bg-BG': /^(\+?359|0)?8[789]\d{7}$/,
+  'bn-BD': /^(\+?880|0)1[13456789][0-9]{8}$/,
+  'ca-AD': /^(\+376)?[346]\d{5}$/,
+  'cs-CZ': /^(\+?420)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,
+  'da-DK': /^(\+?45)?\s?\d{2}\s?\d{2}\s?\d{2}\s?\d{2}$/,
+  'de-DE': /^((\+49|0)[1|3])([0|5][0-45-9]\d|6([23]|0\d?)|7([0-57-9]|6\d))\d{7,9}$/,
+  'de-AT': /^(\+43|0)\d{1,4}\d{3,12}$/,
+  'de-CH': /^(\+41|0)([1-9])\d{1,9}$/,
+  'de-LU': /^(\+352)?((6\d1)\d{6})$/,
+  'dv-MV': /^(\+?960)?(7[2-9]|91|9[3-9])\d{7}$/,
+  'el-GR': /^(\+?30|0)?(69\d{8})$/,
+  'en-AU': /^(\+?61|0)4\d{8}$/,
+  'en-BM': /^(\+?1)?441(((3|7)\d{6}$)|(5[0-3][0-9]\d{4}$)|(59\d{5}))/,
+  'en-GB': /^(\+?44|0)7\d{9}$/,
+  'en-GG': /^(\+?44|0)1481\d{6}$/,
+  'en-GH': /^(\+233|0)(20|50|24|54|27|57|26|56|23|28|55|59)\d{7}$/,
+  'en-GY': /^(\+592|0)6\d{6}$/,
+  'en-HK': /^(\+?852[-\s]?)?[456789]\d{3}[-\s]?\d{4}$/,
+  'en-MO': /^(\+?853[-\s]?)?[6]\d{3}[-\s]?\d{4}$/,
+  'en-IE': /^(\+?353|0)8[356789]\d{7}$/,
+  'en-IN': /^(\+?91|0)?[6789]\d{9}$/,
+  'en-KE': /^(\+?254|0)(7|1)\d{8}$/,
+  'en-KI': /^((\+686|686)?)?( )?((6|7)(2|3|8)[0-9]{6})$/,
+  'en-MT': /^(\+?356|0)?(99|79|77|21|27|22|25)[0-9]{6}$/,
+  'en-MU': /^(\+?230|0)?\d{8}$/,
+  'en-NA': /^(\+?264|0)(6|8)\d{7}$/,
+  'en-NG': /^(\+?234|0)?[789]\d{9}$/,
+  'en-NZ': /^(\+?64|0)[28]\d{7,9}$/,
+  'en-PK': /^((00|\+)?92|0)3[0-6]\d{8}$/,
+  'en-PH': /^(09|\+639)\d{9}$/,
+  'en-RW': /^(\+?250|0)?[7]\d{8}$/,
+  'en-SG': /^(\+65)?[3689]\d{7}$/,
+  'en-SL': /^(\+?232|0)\d{8}$/,
+  'en-TZ': /^(\+?255|0)?[67]\d{8}$/,
+  'en-UG': /^(\+?256|0)?[7]\d{8}$/,
+  'en-US': /^((\+1|1)?( |-)?)?(\([2-9][0-9]{2}\)|[2-9][0-9]{2})( |-)?([2-9][0-9]{2}( |-)?[0-9]{4})$/,
+  'en-ZA': /^(\+?27|0)\d{9}$/,
+  'en-ZM': /^(\+?26)?09[567]\d{7}$/,
+  'en-ZW': /^(\+263)[0-9]{9}$/,
+  'en-BW': /^(\+?267)?(7[1-8]{1})\d{6}$/,
+  'es-AR': /^\+?549(11|[2368]\d)\d{8}$/,
+  'es-BO': /^(\+?591)?(6|7)\d{7}$/,
+  'es-CO': /^(\+?57)?3(0(0|1|2|4|5)|1\d|2[0-4]|5(0|1))\d{7}$/,
+  'es-CL': /^(\+?56|0)[2-9]\d{1}\d{7}$/,
+  'es-CR': /^(\+506)?[2-8]\d{7}$/,
+  'es-CU': /^(\+53|0053)?5\d{7}/,
+  'es-DO': /^(\+?1)?8[024]9\d{7}$/,
+  'es-HN': /^(\+?504)?[9|8]\d{7}$/,
+  'es-EC': /^(\+?593|0)([2-7]|9[2-9])\d{7}$/,
+  'es-ES': /^(\+?34)?[6|7]\d{8}$/,
+  'es-PE': /^(\+?51)?9\d{8}$/,
+  'es-MX': /^(\+?52)?(1|01)?\d{10,11}$/,
+  'es-PA': /^(\+?507)\d{7,8}$/,
+  'es-PY': /^(\+?595|0)9[9876]\d{7}$/,
+  'es-SV': /^(\+?503)?[67]\d{7}$/,
+  'es-UY': /^(\+598|0)9[1-9][\d]{6}$/,
+  'es-VE': /^(\+?58)?(2|4)\d{9}$/,
+  'et-EE': /^(\+?372)?\s?(5|8[1-4])\s?([0-9]\s?){6,7}$/,
+  'fa-IR': /^(\+?98[\-\s]?|0)9[0-39]\d[\-\s]?\d{3}[\-\s]?\d{4}$/,
+  'fi-FI': /^(\+?358|0)\s?(4(0|1|2|4|5|6)?|50)\s?(\d\s?){4,8}\d$/,
+  'fj-FJ': /^(\+?679)?\s?\d{3}\s?\d{4}$/,
+  'fo-FO': /^(\+?298)?\s?\d{2}\s?\d{2}\s?\d{2}$/,
+  'fr-BF': /^(\+226|0)[67]\d{7}$/,
+  'fr-CM': /^(\+?237)6[0-9]{8}$/,
+  'fr-FR': /^(\+?33|0)[67]\d{8}$/,
+  'fr-GF': /^(\+?594|0|00594)[67]\d{8}$/,
+  'fr-GP': /^(\+?590|0|00590)[67]\d{8}$/,
+  'fr-MQ': /^(\+?596|0|00596)[67]\d{8}$/,
+  'fr-PF': /^(\+?689)?8[789]\d{6}$/,
+  'fr-RE': /^(\+?262|0|00262)[67]\d{8}$/,
+  'he-IL': /^(\+972|0)([23489]|5[012345689]|77)[1-9]\d{6}$/,
+  'hu-HU': /^(\+?36|06)(20|30|31|50|70)\d{7}$/,
+  'id-ID': /^(\+?62|0)8(1[123456789]|2[1238]|3[1238]|5[12356789]|7[78]|9[56789]|8[123456789])([\s?|\d]{5,11})$/,
+  'it-IT': /^(\+?39)?\s?3\d{2} ?\d{6,7}$/,
+  'it-SM': /^((\+378)|(0549)|(\+390549)|(\+3780549))?6\d{5,9}$/,
+  'ja-JP': /^(\+81[ \-]?(\(0\))?|0)[6789]0[ \-]?\d{4}[ \-]?\d{4}$/,
+  'ka-GE': /^(\+?995)?(5|79)\d{7}$/,
+  'kk-KZ': /^(\+?7|8)?7\d{9}$/,
+  'kl-GL': /^(\+?299)?\s?\d{2}\s?\d{2}\s?\d{2}$/,
+  'ko-KR': /^((\+?82)[ \-]?)?0?1([0|1|6|7|8|9]{1})[ \-]?\d{3,4}[ \-]?\d{4}$/,
+  'lt-LT': /^(\+370|8)\d{8}$/,
+  'lv-LV': /^(\+?371)2\d{7}$/,
+  'ms-MY': /^(\+?6?01){1}(([0145]{1}(\-|\s)?\d{7,8})|([236789]{1}(\s|\-)?\d{7}))$/,
+  'mz-MZ': /^(\+?258)?8[234567]\d{7}$/,
+  'nb-NO': /^(\+?47)?[49]\d{7}$/,
+  'ne-NP': /^(\+?977)?9[78]\d{8}$/,
+  'nl-BE': /^(\+?32|0)4\d{8}$/,
+  'nl-NL': /^(((\+|00)?31\(0\))|((\+|00)?31)|0)6{1}\d{8}$/,
+  'nn-NO': /^(\+?47)?[49]\d{7}$/,
+  'pl-PL': /^(\+?48)? ?[5-8]\d ?\d{3} ?\d{2} ?\d{2}$/,
+  'pt-BR': /^((\+?55\ ?[1-9]{2}\ ?)|(\+?55\ ?\([1-9]{2}\)\ ?)|(0[1-9]{2}\ ?)|(\([1-9]{2}\)\ ?)|([1-9]{2}\ ?))((\d{4}\-?\d{4})|(9[2-9]{1}\d{3}\-?\d{4}))$/,
+  'pt-PT': /^(\+?351)?9[1236]\d{7}$/,
+  'pt-AO': /^(\+244)\d{9}$/,
+  'ro-RO': /^(\+?4?0)\s?7\d{2}(\/|\s|\.|\-)?\d{3}(\s|\.|\-)?\d{3}$/,
+  'ru-RU': /^(\+?7|8)?9\d{9}$/,
+  'si-LK': /^(?:0|94|\+94)?(7(0|1|2|4|5|6|7|8)( |-)?)\d{7}$/,
+  'sl-SI': /^(\+386\s?|0)(\d{1}\s?\d{3}\s?\d{2}\s?\d{2}|\d{2}\s?\d{3}\s?\d{3})$/,
+  'sk-SK': /^(\+?421)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,
+  'sq-AL': /^(\+355|0)6[789]\d{6}$/,
+  'sr-RS': /^(\+3816|06)[- \d]{5,9}$/,
+  'sv-SE': /^(\+?46|0)[\s\-]?7[\s\-]?[02369]([\s\-]?\d){7}$/,
+  'tg-TJ': /^(\+?992)?[5][5]\d{7}$/,
+  'th-TH': /^(\+66|66|0)\d{9}$/,
+  'tr-TR': /^(\+?90|0)?5\d{9}$/,
+  'tk-TM': /^(\+993|993|8)\d{8}$/,
+  'uk-UA': /^(\+?38|8)?0\d{9}$/,
+  'uz-UZ': /^(\+?998)?(6[125-79]|7[1-69]|88|9\d)\d{7}$/,
+  'vi-VN': /^((\+?84)|0)((3([2-9]))|(5([25689]))|(7([0|6-9]))|(8([1-9]))|(9([0-9])))([0-9]{7})$/,
+  'zh-CN': /^((\+|00)86)?(1[3-9]|9[28])\d{9}$/,
+  'zh-TW': /^(\+?886\-?|0)?9\d{8}$/,
+  'dz-BT': /^(\+?975|0)?(17|16|77|02)\d{6}$/
+};
+/* eslint-enable max-len */
+// aliases
+
+phones['en-CA'] = phones['en-US'];
+phones['fr-CA'] = phones['en-CA'];
+phones['fr-BE'] = phones['nl-BE'];
+phones['zh-HK'] = phones['en-HK'];
+phones['zh-MO'] = phones['en-MO'];
+phones['ga-IE'] = phones['en-IE'];
+phones['fr-CH'] = phones['de-CH'];
+phones['it-CH'] = phones['fr-CH'];
+
+function isMobilePhone(str, locale, options) {
+  (0, _assertString.default)(str);
+
+  if (options && options.strictMode && !str.startsWith('+')) {
+    return false;
+  }
+
+  if (Array.isArray(locale)) {
+    return locale.some(function (key) {
+      // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes
+      // istanbul ignore else
+      if (phones.hasOwnProperty(key)) {
+        var phone = phones[key];
+
+        if (phone.test(str)) {
+          return true;
+        }
+      }
+
+      return false;
+    });
+  } else if (locale in phones) {
+    return phones[locale].test(str); // alias falsey locale as 'any'
+  } else if (!locale || locale === 'any') {
+    for (var key in phones) {
+      // istanbul ignore else
+      if (phones.hasOwnProperty(key)) {
+        var phone = phones[key];
+
+        if (phone.test(str)) {
+          return true;
+        }
+      }
+    }
+
+    return false;
+  }
+
+  throw new Error("Invalid locale '".concat(locale, "'"));
+}
+
+var locales = Object.keys(phones);
+exports.locales = locales;
+},{"./util/assertString":136}],104:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isMongoId;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+var _isHexadecimal = _interopRequireDefault(require("./isHexadecimal"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function isMongoId(str) {
+  (0, _assertString.default)(str);
+  return (0, _isHexadecimal.default)(str) && str.length === 24;
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./isHexadecimal":76,"./util/assertString":136}],105:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isMultibyte;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+/* eslint-disable no-control-regex */
+var multibyte = /[^\x00-\x7F]/;
+/* eslint-enable no-control-regex */
+
+function isMultibyte(str) {
+  (0, _assertString.default)(str);
+  return multibyte.test(str);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],106:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isNumeric;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+var _alpha = require("./alpha");
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var numericNoSymbols = /^[0-9]+$/;
+
+function isNumeric(str, options) {
+  (0, _assertString.default)(str);
+
+  if (options && options.no_symbols) {
+    return numericNoSymbols.test(str);
+  }
+
+  return new RegExp("^[+-]?([0-9]*[".concat((options || {}).locale ? _alpha.decimal[options.locale] : '.', "])?[0-9]+$")).test(str);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./alpha":42,"./util/assertString":136}],107:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isOctal;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var octal = /^(0o)?[0-7]+$/i;
+
+function isOctal(str) {
+  (0, _assertString.default)(str);
+  return octal.test(str);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],108:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isPassportNumber;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+/**
+ * Reference:
+ * https://en.wikipedia.org/ -- Wikipedia
+ * https://docs.microsoft.com/en-us/microsoft-365/compliance/eu-passport-number -- EU Passport Number
+ * https://countrycode.org/ -- Country Codes
+ */
+var passportRegexByCountryCode = {
+  AM: /^[A-Z]{2}\d{7}$/,
+  // ARMENIA
+  AR: /^[A-Z]{3}\d{6}$/,
+  // ARGENTINA
+  AT: /^[A-Z]\d{7}$/,
+  // AUSTRIA
+  AU: /^[A-Z]\d{7}$/,
+  // AUSTRALIA
+  BE: /^[A-Z]{2}\d{6}$/,
+  // BELGIUM
+  BG: /^\d{9}$/,
+  // BULGARIA
+  BR: /^[A-Z]{2}\d{6}$/,
+  // BRAZIL
+  BY: /^[A-Z]{2}\d{7}$/,
+  // BELARUS
+  CA: /^[A-Z]{2}\d{6}$/,
+  // CANADA
+  CH: /^[A-Z]\d{7}$/,
+  // SWITZERLAND
+  CN: /^G\d{8}$|^E(?![IO])[A-Z0-9]\d{7}$/,
+  // CHINA [G=Ordinary, E=Electronic] followed by 8-digits, or E followed by any UPPERCASE letter (except I and O) followed by 7 digits
+  CY: /^[A-Z](\d{6}|\d{8})$/,
+  // CYPRUS
+  CZ: /^\d{8}$/,
+  // CZECH REPUBLIC
+  DE: /^[CFGHJKLMNPRTVWXYZ0-9]{9}$/,
+  // GERMANY
+  DK: /^\d{9}$/,
+  // DENMARK
+  DZ: /^\d{9}$/,
+  // ALGERIA
+  EE: /^([A-Z]\d{7}|[A-Z]{2}\d{7})$/,
+  // ESTONIA (K followed by 7-digits), e-passports have 2 UPPERCASE followed by 7 digits
+  ES: /^[A-Z0-9]{2}([A-Z0-9]?)\d{6}$/,
+  // SPAIN
+  FI: /^[A-Z]{2}\d{7}$/,
+  // FINLAND
+  FR: /^\d{2}[A-Z]{2}\d{5}$/,
+  // FRANCE
+  GB: /^\d{9}$/,
+  // UNITED KINGDOM
+  GR: /^[A-Z]{2}\d{7}$/,
+  // GREECE
+  HR: /^\d{9}$/,
+  // CROATIA
+  HU: /^[A-Z]{2}(\d{6}|\d{7})$/,
+  // HUNGARY
+  IE: /^[A-Z0-9]{2}\d{7}$/,
+  // IRELAND
+  IN: /^[A-Z]{1}-?\d{7}$/,
+  // INDIA
+  ID: /^[A-C]\d{7}$/,
+  // INDONESIA
+  IR: /^[A-Z]\d{8}$/,
+  // IRAN
+  IS: /^(A)\d{7}$/,
+  // ICELAND
+  IT: /^[A-Z0-9]{2}\d{7}$/,
+  // ITALY
+  JP: /^[A-Z]{2}\d{7}$/,
+  // JAPAN
+  KR: /^[MS]\d{8}$/,
+  // SOUTH KOREA, REPUBLIC OF KOREA, [S=PS Passports, M=PM Passports]
+  LT: /^[A-Z0-9]{8}$/,
+  // LITHUANIA
+  LU: /^[A-Z0-9]{8}$/,
+  // LUXEMBURG
+  LV: /^[A-Z0-9]{2}\d{7}$/,
+  // LATVIA
+  LY: /^[A-Z0-9]{8}$/,
+  // LIBYA
+  MT: /^\d{7}$/,
+  // MALTA
+  MZ: /^([A-Z]{2}\d{7})|(\d{2}[A-Z]{2}\d{5})$/,
+  // MOZAMBIQUE
+  MY: /^[AHK]\d{8}$/,
+  // MALAYSIA
+  NL: /^[A-Z]{2}[A-Z0-9]{6}\d$/,
+  // NETHERLANDS
+  PL: /^[A-Z]{2}\d{7}$/,
+  // POLAND
+  PT: /^[A-Z]\d{6}$/,
+  // PORTUGAL
+  RO: /^\d{8,9}$/,
+  // ROMANIA
+  RU: /^\d{9}$/,
+  // RUSSIAN FEDERATION
+  SE: /^\d{8}$/,
+  // SWEDEN
+  SL: /^(P)[A-Z]\d{7}$/,
+  // SLOVANIA
+  SK: /^[0-9A-Z]\d{7}$/,
+  // SLOVAKIA
+  TR: /^[A-Z]\d{8}$/,
+  // TURKEY
+  UA: /^[A-Z]{2}\d{6}$/,
+  // UKRAINE
+  US: /^\d{9}$/ // UNITED STATES
+
+};
+/**
+ * Check if str is a valid passport number
+ * relative to provided ISO Country Code.
+ *
+ * @param {string} str
+ * @param {string} countryCode
+ * @return {boolean}
+ */
+
+function isPassportNumber(str, countryCode) {
+  (0, _assertString.default)(str);
+  /** Remove All Whitespaces, Convert to UPPERCASE */
+
+  var normalizedStr = str.replace(/\s/g, '').toUpperCase();
+  return countryCode.toUpperCase() in passportRegexByCountryCode && passportRegexByCountryCode[countryCode].test(normalizedStr);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],109:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isPort;
+
+var _isInt = _interopRequireDefault(require("./isInt"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function isPort(str) {
+  return (0, _isInt.default)(str, {
+    min: 0,
+    max: 65535
+  });
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./isInt":91}],110:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isPostalCode;
+exports.locales = void 0;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+// common patterns
+var threeDigit = /^\d{3}$/;
+var fourDigit = /^\d{4}$/;
+var fiveDigit = /^\d{5}$/;
+var sixDigit = /^\d{6}$/;
+var patterns = {
+  AD: /^AD\d{3}$/,
+  AT: fourDigit,
+  AU: fourDigit,
+  AZ: /^AZ\d{4}$/,
+  BE: fourDigit,
+  BG: fourDigit,
+  BR: /^\d{5}-\d{3}$/,
+  BY: /2[1-4]{1}\d{4}$/,
+  CA: /^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJ-NPRSTV-Z][\s\-]?\d[ABCEGHJ-NPRSTV-Z]\d$/i,
+  CH: fourDigit,
+  CN: /^(0[1-7]|1[012356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[1-5]|8[1345]|9[09])\d{4}$/,
+  CZ: /^\d{3}\s?\d{2}$/,
+  DE: fiveDigit,
+  DK: fourDigit,
+  DO: fiveDigit,
+  DZ: fiveDigit,
+  EE: fiveDigit,
+  ES: /^(5[0-2]{1}|[0-4]{1}\d{1})\d{3}$/,
+  FI: fiveDigit,
+  FR: /^\d{2}\s?\d{3}$/,
+  GB: /^(gir\s?0aa|[a-z]{1,2}\d[\da-z]?\s?(\d[a-z]{2})?)$/i,
+  GR: /^\d{3}\s?\d{2}$/,
+  HR: /^([1-5]\d{4}$)/,
+  HT: /^HT\d{4}$/,
+  HU: fourDigit,
+  ID: fiveDigit,
+  IE: /^(?!.*(?:o))[A-Za-z]\d[\dw]\s\w{4}$/i,
+  IL: /^(\d{5}|\d{7})$/,
+  IN: /^((?!10|29|35|54|55|65|66|86|87|88|89)[1-9][0-9]{5})$/,
+  IR: /\b(?!(\d)\1{3})[13-9]{4}[1346-9][013-9]{5}\b/,
+  IS: threeDigit,
+  IT: fiveDigit,
+  JP: /^\d{3}\-\d{4}$/,
+  KE: fiveDigit,
+  KR: /^(\d{5}|\d{6})$/,
+  LI: /^(948[5-9]|949[0-7])$/,
+  LT: /^LT\-\d{5}$/,
+  LU: fourDigit,
+  LV: /^LV\-\d{4}$/,
+  LK: fiveDigit,
+  MX: fiveDigit,
+  MT: /^[A-Za-z]{3}\s{0,1}\d{4}$/,
+  MY: fiveDigit,
+  NL: /^\d{4}\s?[a-z]{2}$/i,
+  NO: fourDigit,
+  NP: /^(10|21|22|32|33|34|44|45|56|57)\d{3}$|^(977)$/i,
+  NZ: fourDigit,
+  PL: /^\d{2}\-\d{3}$/,
+  PR: /^00[679]\d{2}([ -]\d{4})?$/,
+  PT: /^\d{4}\-\d{3}?$/,
+  RO: sixDigit,
+  RU: sixDigit,
+  SA: fiveDigit,
+  SE: /^[1-9]\d{2}\s?\d{2}$/,
+  SG: sixDigit,
+  SI: fourDigit,
+  SK: /^\d{3}\s?\d{2}$/,
+  TH: fiveDigit,
+  TN: fourDigit,
+  TW: /^\d{3}(\d{2})?$/,
+  UA: fiveDigit,
+  US: /^\d{5}(-\d{4})?$/,
+  ZA: fourDigit,
+  ZM: fiveDigit
+};
+var locales = Object.keys(patterns);
+exports.locales = locales;
+
+function isPostalCode(str, locale) {
+  (0, _assertString.default)(str);
+
+  if (locale in patterns) {
+    return patterns[locale].test(str);
+  } else if (locale === 'any') {
+    for (var key in patterns) {
+      // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes
+      // istanbul ignore else
+      if (patterns.hasOwnProperty(key)) {
+        var pattern = patterns[key];
+
+        if (pattern.test(str)) {
+          return true;
+        }
+      }
+    }
+
+    return false;
+  }
+
+  throw new Error("Invalid locale '".concat(locale, "'"));
+}
+},{"./util/assertString":136}],111:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isRFC3339;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+/* Based on https://tools.ietf.org/html/rfc3339#section-5.6 */
+var dateFullYear = /[0-9]{4}/;
+var dateMonth = /(0[1-9]|1[0-2])/;
+var dateMDay = /([12]\d|0[1-9]|3[01])/;
+var timeHour = /([01][0-9]|2[0-3])/;
+var timeMinute = /[0-5][0-9]/;
+var timeSecond = /([0-5][0-9]|60)/;
+var timeSecFrac = /(\.[0-9]+)?/;
+var timeNumOffset = new RegExp("[-+]".concat(timeHour.source, ":").concat(timeMinute.source));
+var timeOffset = new RegExp("([zZ]|".concat(timeNumOffset.source, ")"));
+var partialTime = new RegExp("".concat(timeHour.source, ":").concat(timeMinute.source, ":").concat(timeSecond.source).concat(timeSecFrac.source));
+var fullDate = new RegExp("".concat(dateFullYear.source, "-").concat(dateMonth.source, "-").concat(dateMDay.source));
+var fullTime = new RegExp("".concat(partialTime.source).concat(timeOffset.source));
+var rfc3339 = new RegExp("^".concat(fullDate.source, "[ tT]").concat(fullTime.source, "$"));
+
+function isRFC3339(str) {
+  (0, _assertString.default)(str);
+  return rfc3339.test(str);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],112:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isRgbColor;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var rgbColor = /^rgb\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){2}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\)$/;
+var rgbaColor = /^rgba\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){3}(0?\.\d|1(\.0)?|0(\.0)?)\)$/;
+var rgbColorPercent = /^rgb\((([0-9]%|[1-9][0-9]%|100%),){2}([0-9]%|[1-9][0-9]%|100%)\)/;
+var rgbaColorPercent = /^rgba\((([0-9]%|[1-9][0-9]%|100%),){3}(0?\.\d|1(\.0)?|0(\.0)?)\)/;
+
+function isRgbColor(str) {
+  var includePercentValues = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
+  (0, _assertString.default)(str);
+
+  if (!includePercentValues) {
+    return rgbColor.test(str) || rgbaColor.test(str);
+  }
+
+  return rgbColor.test(str) || rgbaColor.test(str) || rgbColorPercent.test(str) || rgbaColorPercent.test(str);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],113:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isSemVer;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+var _multilineRegex = _interopRequireDefault(require("./util/multilineRegex"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+/**
+ * Regular Expression to match
+ * semantic versioning (SemVer)
+ * built from multi-line, multi-parts regexp
+ * Reference: https://semver.org/
+ */
+var semanticVersioningRegex = (0, _multilineRegex.default)(['^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)', '(?:-((?:0|[1-9]\\d*|\\d*[a-z-][0-9a-z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-z-][0-9a-z-]*))*))', '?(?:\\+([0-9a-z-]+(?:\\.[0-9a-z-]+)*))?$'], 'i');
+
+function isSemVer(str) {
+  (0, _assertString.default)(str);
+  return semanticVersioningRegex.test(str);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136,"./util/multilineRegex":139}],114:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isSlug;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var charsetRegex = /^[^\s-_](?!.*?[-_]{2,})[a-z0-9-\\][^\s]*[^-_\s]$/;
+
+function isSlug(str) {
+  (0, _assertString.default)(str);
+  return charsetRegex.test(str);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],115:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isStrongPassword;
+
+var _merge = _interopRequireDefault(require("./util/merge"));
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var upperCaseRegex = /^[A-Z]$/;
+var lowerCaseRegex = /^[a-z]$/;
+var numberRegex = /^[0-9]$/;
+var symbolRegex = /^[-#!$@%^&*()_+|~=`{}\[\]:";'<>?,.\/ ]$/;
+var defaultOptions = {
+  minLength: 8,
+  minLowercase: 1,
+  minUppercase: 1,
+  minNumbers: 1,
+  minSymbols: 1,
+  returnScore: false,
+  pointsPerUnique: 1,
+  pointsPerRepeat: 0.5,
+  pointsForContainingLower: 10,
+  pointsForContainingUpper: 10,
+  pointsForContainingNumber: 10,
+  pointsForContainingSymbol: 10
+};
+/* Counts number of occurrences of each char in a string
+ * could be moved to util/ ?
+*/
+
+function countChars(str) {
+  var result = {};
+  Array.from(str).forEach(function (char) {
+    var curVal = result[char];
+
+    if (curVal) {
+      result[char] += 1;
+    } else {
+      result[char] = 1;
+    }
+  });
+  return result;
+}
+/* Return information about a password */
+
+
+function analyzePassword(password) {
+  var charMap = countChars(password);
+  var analysis = {
+    length: password.length,
+    uniqueChars: Object.keys(charMap).length,
+    uppercaseCount: 0,
+    lowercaseCount: 0,
+    numberCount: 0,
+    symbolCount: 0
+  };
+  Object.keys(charMap).forEach(function (char) {
+    /* istanbul ignore else */
+    if (upperCaseRegex.test(char)) {
+      analysis.uppercaseCount += charMap[char];
+    } else if (lowerCaseRegex.test(char)) {
+      analysis.lowercaseCount += charMap[char];
+    } else if (numberRegex.test(char)) {
+      analysis.numberCount += charMap[char];
+    } else if (symbolRegex.test(char)) {
+      analysis.symbolCount += charMap[char];
+    }
+  });
+  return analysis;
+}
+
+function scorePassword(analysis, scoringOptions) {
+  var points = 0;
+  points += analysis.uniqueChars * scoringOptions.pointsPerUnique;
+  points += (analysis.length - analysis.uniqueChars) * scoringOptions.pointsPerRepeat;
+
+  if (analysis.lowercaseCount > 0) {
+    points += scoringOptions.pointsForContainingLower;
+  }
+
+  if (analysis.uppercaseCount > 0) {
+    points += scoringOptions.pointsForContainingUpper;
+  }
+
+  if (analysis.numberCount > 0) {
+    points += scoringOptions.pointsForContainingNumber;
+  }
+
+  if (analysis.symbolCount > 0) {
+    points += scoringOptions.pointsForContainingSymbol;
+  }
+
+  return points;
+}
+
+function isStrongPassword(str) {
+  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
+  (0, _assertString.default)(str);
+  var analysis = analyzePassword(str);
+  options = (0, _merge.default)(options || {}, defaultOptions);
+
+  if (options.returnScore) {
+    return scorePassword(analysis, options);
+  }
+
+  return analysis.length >= options.minLength && analysis.lowercaseCount >= options.minLowercase && analysis.uppercaseCount >= options.minUppercase && analysis.numberCount >= options.minNumbers && analysis.symbolCount >= options.minSymbols;
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136,"./util/merge":138}],116:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isSurrogatePair;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var surrogatePair = /[\uD800-\uDBFF][\uDC00-\uDFFF]/;
+
+function isSurrogatePair(str) {
+  (0, _assertString.default)(str);
+  return surrogatePair.test(str);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],117:[function(require,module,exports){
+"use strict";
+
+function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isTaxID;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+var algorithms = _interopRequireWildcard(require("./util/algorithms"));
+
+var _isDate = _interopRequireDefault(require("./isDate"));
+
+function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
+
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
+
+function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
+
+function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
+
+function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
+
+function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
+
+function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
+
+/**
+ * TIN Validation
+ * Validates Tax Identification Numbers (TINs) from the US, EU member states and the United Kingdom.
+ *
+ * EU-UK:
+ * National TIN validity is calculated using public algorithms as made available by DG TAXUD.
+ *
+ * See `https://ec.europa.eu/taxation_customs/tin/specs/FS-TIN%20Algorithms-Public.docx` for more information.
+ *
+ * US:
+ * An Employer Identification Number (EIN), also known as a Federal Tax Identification Number,
+ *  is used to identify a business entity.
+ *
+ * NOTES:
+ *  - Prefix 47 is being reserved for future use
+ *  - Prefixes 26, 27, 45, 46 and 47 were previously assigned by the Philadelphia campus.
+ *
+ * See `http://www.irs.gov/Businesses/Small-Businesses-&-Self-Employed/How-EINs-are-Assigned-and-Valid-EIN-Prefixes`
+ * for more information.
+ */
+// Locale functions
+
+/*
+ * bg-BG validation function
+ * (Edinen graždanski nomer (EGN/ЕГН), persons only)
+ * Checks if birth date (first six digits) is valid and calculates check (last) digit
+ */
+function bgBgCheck(tin) {
+  // Extract full year, normalize month and check birth date validity
+  var century_year = tin.slice(0, 2);
+  var month = parseInt(tin.slice(2, 4), 10);
+
+  if (month > 40) {
+    month -= 40;
+    century_year = "20".concat(century_year);
+  } else if (month > 20) {
+    month -= 20;
+    century_year = "18".concat(century_year);
+  } else {
+    century_year = "19".concat(century_year);
+  }
+
+  if (month < 10) {
+    month = "0".concat(month);
+  }
+
+  var date = "".concat(century_year, "/").concat(month, "/").concat(tin.slice(4, 6));
+
+  if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {
+    return false;
+  } // split digits into an array for further processing
+
+
+  var digits = tin.split('').map(function (a) {
+    return parseInt(a, 10);
+  }); // Calculate checksum by multiplying digits with fixed values
+
+  var multip_lookup = [2, 4, 8, 5, 10, 9, 7, 3, 6];
+  var checksum = 0;
+
+  for (var i = 0; i < multip_lookup.length; i++) {
+    checksum += digits[i] * multip_lookup[i];
+  }
+
+  checksum = checksum % 11 === 10 ? 0 : checksum % 11;
+  return checksum === digits[9];
+}
+/*
+ * cs-CZ validation function
+ * (Rodné číslo (RČ), persons only)
+ * Checks if birth date (first six digits) is valid and divisibility by 11
+ * Material not in DG TAXUD document sourced from:
+ * -`https://lorenc.info/3MA381/overeni-spravnosti-rodneho-cisla.htm`
+ * -`https://www.mvcr.cz/clanek/rady-a-sluzby-dokumenty-rodne-cislo.aspx`
+ */
+
+
+function csCzCheck(tin) {
+  tin = tin.replace(/\W/, ''); // Extract full year from TIN length
+
+  var full_year = parseInt(tin.slice(0, 2), 10);
+
+  if (tin.length === 10) {
+    if (full_year < 54) {
+      full_year = "20".concat(full_year);
+    } else {
+      full_year = "19".concat(full_year);
+    }
+  } else {
+    if (tin.slice(6) === '000') {
+      return false;
+    } // Three-zero serial not assigned before 1954
+
+
+    if (full_year < 54) {
+      full_year = "19".concat(full_year);
+    } else {
+      return false; // No 18XX years seen in any of the resources
+    }
+  } // Add missing zero if needed
+
+
+  if (full_year.length === 3) {
+    full_year = [full_year.slice(0, 2), '0', full_year.slice(2)].join('');
+  } // Extract month from TIN and normalize
+
+
+  var month = parseInt(tin.slice(2, 4), 10);
+
+  if (month > 50) {
+    month -= 50;
+  }
+
+  if (month > 20) {
+    // Month-plus-twenty was only introduced in 2004
+    if (parseInt(full_year, 10) < 2004) {
+      return false;
+    }
+
+    month -= 20;
+  }
+
+  if (month < 10) {
+    month = "0".concat(month);
+  } // Check date validity
+
+
+  var date = "".concat(full_year, "/").concat(month, "/").concat(tin.slice(4, 6));
+
+  if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {
+    return false;
+  } // Verify divisibility by 11
+
+
+  if (tin.length === 10) {
+    if (parseInt(tin, 10) % 11 !== 0) {
+      // Some numbers up to and including 1985 are still valid if
+      // check (last) digit equals 0 and modulo of first 9 digits equals 10
+      var checkdigit = parseInt(tin.slice(0, 9), 10) % 11;
+
+      if (parseInt(full_year, 10) < 1986 && checkdigit === 10) {
+        if (parseInt(tin.slice(9), 10) !== 0) {
+          return false;
+        }
+      } else {
+        return false;
+      }
+    }
+  }
+
+  return true;
+}
+/*
+ * de-AT validation function
+ * (Abgabenkontonummer, persons/entities)
+ * Verify TIN validity by calling luhnCheck()
+ */
+
+
+function deAtCheck(tin) {
+  return algorithms.luhnCheck(tin);
+}
+/*
+ * de-DE validation function
+ * (Steueridentifikationsnummer (Steuer-IdNr.), persons only)
+ * Tests for single duplicate/triplicate value, then calculates ISO 7064 check (last) digit
+ * Partial implementation of spec (same result with both algorithms always)
+ */
+
+
+function deDeCheck(tin) {
+  // Split digits into an array for further processing
+  var digits = tin.split('').map(function (a) {
+    return parseInt(a, 10);
+  }); // Fill array with strings of number positions
+
+  var occurences = [];
+
+  for (var i = 0; i < digits.length - 1; i++) {
+    occurences.push('');
+
+    for (var j = 0; j < digits.length - 1; j++) {
+      if (digits[i] === digits[j]) {
+        occurences[i] += j;
+      }
+    }
+  } // Remove digits with one occurence and test for only one duplicate/triplicate
+
+
+  occurences = occurences.filter(function (a) {
+    return a.length > 1;
+  });
+
+  if (occurences.length !== 2 && occurences.length !== 3) {
+    return false;
+  } // In case of triplicate value only two digits are allowed next to each other
+
+
+  if (occurences[0].length === 3) {
+    var trip_locations = occurences[0].split('').map(function (a) {
+      return parseInt(a, 10);
+    });
+    var recurrent = 0; // Amount of neighbour occurences
+
+    for (var _i = 0; _i < trip_locations.length - 1; _i++) {
+      if (trip_locations[_i] + 1 === trip_locations[_i + 1]) {
+        recurrent += 1;
+      }
+    }
+
+    if (recurrent === 2) {
+      return false;
+    }
+  }
+
+  return algorithms.iso7064Check(tin);
+}
+/*
+ * dk-DK validation function
+ * (CPR-nummer (personnummer), persons only)
+ * Checks if birth date (first six digits) is valid and assigned to century (seventh) digit,
+ * and calculates check (last) digit
+ */
+
+
+function dkDkCheck(tin) {
+  tin = tin.replace(/\W/, ''); // Extract year, check if valid for given century digit and add century
+
+  var year = parseInt(tin.slice(4, 6), 10);
+  var century_digit = tin.slice(6, 7);
+
+  switch (century_digit) {
+    case '0':
+    case '1':
+    case '2':
+    case '3':
+      year = "19".concat(year);
+      break;
+
+    case '4':
+    case '9':
+      if (year < 37) {
+        year = "20".concat(year);
+      } else {
+        year = "19".concat(year);
+      }
+
+      break;
+
+    default:
+      if (year < 37) {
+        year = "20".concat(year);
+      } else if (year > 58) {
+        year = "18".concat(year);
+      } else {
+        return false;
+      }
+
+      break;
+  } // Add missing zero if needed
+
+
+  if (year.length === 3) {
+    year = [year.slice(0, 2), '0', year.slice(2)].join('');
+  } // Check date validity
+
+
+  var date = "".concat(year, "/").concat(tin.slice(2, 4), "/").concat(tin.slice(0, 2));
+
+  if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {
+    return false;
+  } // Split digits into an array for further processing
+
+
+  var digits = tin.split('').map(function (a) {
+    return parseInt(a, 10);
+  });
+  var checksum = 0;
+  var weight = 4; // Multiply by weight and add to checksum
+
+  for (var i = 0; i < 9; i++) {
+    checksum += digits[i] * weight;
+    weight -= 1;
+
+    if (weight === 1) {
+      weight = 7;
+    }
+  }
+
+  checksum %= 11;
+
+  if (checksum === 1) {
+    return false;
+  }
+
+  return checksum === 0 ? digits[9] === 0 : digits[9] === 11 - checksum;
+}
+/*
+ * el-CY validation function
+ * (Arithmos Forologikou Mitroou (AFM/ΑΦΜ), persons only)
+ * Verify TIN validity by calculating ASCII value of check (last) character
+ */
+
+
+function elCyCheck(tin) {
+  // split digits into an array for further processing
+  var digits = tin.slice(0, 8).split('').map(function (a) {
+    return parseInt(a, 10);
+  });
+  var checksum = 0; // add digits in even places
+
+  for (var i = 1; i < digits.length; i += 2) {
+    checksum += digits[i];
+  } // add digits in odd places
+
+
+  for (var _i2 = 0; _i2 < digits.length; _i2 += 2) {
+    if (digits[_i2] < 2) {
+      checksum += 1 - digits[_i2];
+    } else {
+      checksum += 2 * (digits[_i2] - 2) + 5;
+
+      if (digits[_i2] > 4) {
+        checksum += 2;
+      }
+    }
+  }
+
+  return String.fromCharCode(checksum % 26 + 65) === tin.charAt(8);
+}
+/*
+ * el-GR validation function
+ * (Arithmos Forologikou Mitroou (AFM/ΑΦΜ), persons/entities)
+ * Verify TIN validity by calculating check (last) digit
+ * Algorithm not in DG TAXUD document- sourced from:
+ * - `http://epixeirisi.gr/%CE%9A%CE%A1%CE%99%CE%A3%CE%99%CE%9C%CE%91-%CE%98%CE%95%CE%9C%CE%91%CE%A4%CE%91-%CE%A6%CE%9F%CE%A1%CE%9F%CE%9B%CE%9F%CE%93%CE%99%CE%91%CE%A3-%CE%9A%CE%91%CE%99-%CE%9B%CE%9F%CE%93%CE%99%CE%A3%CE%A4%CE%99%CE%9A%CE%97%CE%A3/23791/%CE%91%CF%81%CE%B9%CE%B8%CE%BC%CF%8C%CF%82-%CE%A6%CE%BF%CF%81%CE%BF%CE%BB%CE%BF%CE%B3%CE%B9%CE%BA%CE%BF%CF%8D-%CE%9C%CE%B7%CF%84%CF%81%CF%8E%CE%BF%CF%85`
+ */
+
+
+function elGrCheck(tin) {
+  // split digits into an array for further processing
+  var digits = tin.split('').map(function (a) {
+    return parseInt(a, 10);
+  });
+  var checksum = 0;
+
+  for (var i = 0; i < 8; i++) {
+    checksum += digits[i] * Math.pow(2, 8 - i);
+  }
+
+  return checksum % 11 % 10 === digits[8];
+}
+/*
+ * en-GB validation function (should go here if needed)
+ * (National Insurance Number (NINO) or Unique Taxpayer Reference (UTR),
+ * persons/entities respectively)
+ */
+
+/*
+ * en-IE validation function
+ * (Personal Public Service Number (PPS No), persons only)
+ * Verify TIN validity by calculating check (second to last) character
+ */
+
+
+function enIeCheck(tin) {
+  var checksum = algorithms.reverseMultiplyAndSum(tin.split('').slice(0, 7).map(function (a) {
+    return parseInt(a, 10);
+  }), 8);
+
+  if (tin.length === 9 && tin[8] !== 'W') {
+    checksum += (tin[8].charCodeAt(0) - 64) * 9;
+  }
+
+  checksum %= 23;
+
+  if (checksum === 0) {
+    return tin[7].toUpperCase() === 'W';
+  }
+
+  return tin[7].toUpperCase() === String.fromCharCode(64 + checksum);
+} // Valid US IRS campus prefixes
+
+
+var enUsCampusPrefix = {
+  andover: ['10', '12'],
+  atlanta: ['60', '67'],
+  austin: ['50', '53'],
+  brookhaven: ['01', '02', '03', '04', '05', '06', '11', '13', '14', '16', '21', '22', '23', '25', '34', '51', '52', '54', '55', '56', '57', '58', '59', '65'],
+  cincinnati: ['30', '32', '35', '36', '37', '38', '61'],
+  fresno: ['15', '24'],
+  internet: ['20', '26', '27', '45', '46', '47'],
+  kansas: ['40', '44'],
+  memphis: ['94', '95'],
+  ogden: ['80', '90'],
+  philadelphia: ['33', '39', '41', '42', '43', '46', '48', '62', '63', '64', '66', '68', '71', '72', '73', '74', '75', '76', '77', '81', '82', '83', '84', '85', '86', '87', '88', '91', '92', '93', '98', '99'],
+  sba: ['31']
+}; // Return an array of all US IRS campus prefixes
+
+function enUsGetPrefixes() {
+  var prefixes = [];
+
+  for (var location in enUsCampusPrefix) {
+    // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes
+    // istanbul ignore else
+    if (enUsCampusPrefix.hasOwnProperty(location)) {
+      prefixes.push.apply(prefixes, _toConsumableArray(enUsCampusPrefix[location]));
+    }
+  }
+
+  return prefixes;
+}
+/*
+ * en-US validation function
+ * Verify that the TIN starts with a valid IRS campus prefix
+ */
+
+
+function enUsCheck(tin) {
+  return enUsGetPrefixes().indexOf(tin.substr(0, 2)) !== -1;
+}
+/*
+ * es-ES validation function
+ * (Documento Nacional de Identidad (DNI)
+ * or Número de Identificación de Extranjero (NIE), persons only)
+ * Verify TIN validity by calculating check (last) character
+ */
+
+
+function esEsCheck(tin) {
+  // Split characters into an array for further processing
+  var chars = tin.toUpperCase().split(''); // Replace initial letter if needed
+
+  if (isNaN(parseInt(chars[0], 10)) && chars.length > 1) {
+    var lead_replace = 0;
+
+    switch (chars[0]) {
+      case 'Y':
+        lead_replace = 1;
+        break;
+
+      case 'Z':
+        lead_replace = 2;
+        break;
+
+      default:
+    }
+
+    chars.splice(0, 1, lead_replace); // Fill with zeros if smaller than proper
+  } else {
+    while (chars.length < 9) {
+      chars.unshift(0);
+    }
+  } // Calculate checksum and check according to lookup
+
+
+  var lookup = ['T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E'];
+  chars = chars.join('');
+  var checksum = parseInt(chars.slice(0, 8), 10) % 23;
+  return chars[8] === lookup[checksum];
+}
+/*
+ * et-EE validation function
+ * (Isikukood (IK), persons only)
+ * Checks if birth date (century digit and six following) is valid and calculates check (last) digit
+ * Material not in DG TAXUD document sourced from:
+ * - `https://www.oecd.org/tax/automatic-exchange/crs-implementation-and-assistance/tax-identification-numbers/Estonia-TIN.pdf`
+ */
+
+
+function etEeCheck(tin) {
+  // Extract year and add century
+  var full_year = tin.slice(1, 3);
+  var century_digit = tin.slice(0, 1);
+
+  switch (century_digit) {
+    case '1':
+    case '2':
+      full_year = "18".concat(full_year);
+      break;
+
+    case '3':
+    case '4':
+      full_year = "19".concat(full_year);
+      break;
+
+    default:
+      full_year = "20".concat(full_year);
+      break;
+  } // Check date validity
+
+
+  var date = "".concat(full_year, "/").concat(tin.slice(3, 5), "/").concat(tin.slice(5, 7));
+
+  if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {
+    return false;
+  } // Split digits into an array for further processing
+
+
+  var digits = tin.split('').map(function (a) {
+    return parseInt(a, 10);
+  });
+  var checksum = 0;
+  var weight = 1; // Multiply by weight and add to checksum
+
+  for (var i = 0; i < 10; i++) {
+    checksum += digits[i] * weight;
+    weight += 1;
+
+    if (weight === 10) {
+      weight = 1;
+    }
+  } // Do again if modulo 11 of checksum is 10
+
+
+  if (checksum % 11 === 10) {
+    checksum = 0;
+    weight = 3;
+
+    for (var _i3 = 0; _i3 < 10; _i3++) {
+      checksum += digits[_i3] * weight;
+      weight += 1;
+
+      if (weight === 10) {
+        weight = 1;
+      }
+    }
+
+    if (checksum % 11 === 10) {
+      return digits[10] === 0;
+    }
+  }
+
+  return checksum % 11 === digits[10];
+}
+/*
+ * fi-FI validation function
+ * (Henkilötunnus (HETU), persons only)
+ * Checks if birth date (first six digits plus century symbol) is valid
+ * and calculates check (last) digit
+ */
+
+
+function fiFiCheck(tin) {
+  // Extract year and add century
+  var full_year = tin.slice(4, 6);
+  var century_symbol = tin.slice(6, 7);
+
+  switch (century_symbol) {
+    case '+':
+      full_year = "18".concat(full_year);
+      break;
+
+    case '-':
+      full_year = "19".concat(full_year);
+      break;
+
+    default:
+      full_year = "20".concat(full_year);
+      break;
+  } // Check date validity
+
+
+  var date = "".concat(full_year, "/").concat(tin.slice(2, 4), "/").concat(tin.slice(0, 2));
+
+  if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {
+    return false;
+  } // Calculate check character
+
+
+  var checksum = parseInt(tin.slice(0, 6) + tin.slice(7, 10), 10) % 31;
+
+  if (checksum < 10) {
+    return checksum === parseInt(tin.slice(10), 10);
+  }
+
+  checksum -= 10;
+  var letters_lookup = ['A', 'B', 'C', 'D', 'E', 'F', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y'];
+  return letters_lookup[checksum] === tin.slice(10);
+}
+/*
+ * fr/nl-BE validation function
+ * (Numéro national (N.N.), persons only)
+ * Checks if birth date (first six digits) is valid and calculates check (last two) digits
+ */
+
+
+function frBeCheck(tin) {
+  // Zero month/day value is acceptable
+  if (tin.slice(2, 4) !== '00' || tin.slice(4, 6) !== '00') {
+    // Extract date from first six digits of TIN
+    var date = "".concat(tin.slice(0, 2), "/").concat(tin.slice(2, 4), "/").concat(tin.slice(4, 6));
+
+    if (!(0, _isDate.default)(date, 'YY/MM/DD')) {
+      return false;
+    }
+  }
+
+  var checksum = 97 - parseInt(tin.slice(0, 9), 10) % 97;
+  var checkdigits = parseInt(tin.slice(9, 11), 10);
+
+  if (checksum !== checkdigits) {
+    checksum = 97 - parseInt("2".concat(tin.slice(0, 9)), 10) % 97;
+
+    if (checksum !== checkdigits) {
+      return false;
+    }
+  }
+
+  return true;
+}
+/*
+ * fr-FR validation function
+ * (Numéro fiscal de référence (numéro SPI), persons only)
+ * Verify TIN validity by calculating check (last three) digits
+ */
+
+
+function frFrCheck(tin) {
+  tin = tin.replace(/\s/g, '');
+  var checksum = parseInt(tin.slice(0, 10), 10) % 511;
+  var checkdigits = parseInt(tin.slice(10, 13), 10);
+  return checksum === checkdigits;
+}
+/*
+ * fr/lb-LU validation function
+ * (numéro d’identification personnelle, persons only)
+ * Verify birth date validity and run Luhn and Verhoeff checks
+ */
+
+
+function frLuCheck(tin) {
+  // Extract date and check validity
+  var date = "".concat(tin.slice(0, 4), "/").concat(tin.slice(4, 6), "/").concat(tin.slice(6, 8));
+
+  if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {
+    return false;
+  } // Run Luhn check
+
+
+  if (!algorithms.luhnCheck(tin.slice(0, 12))) {
+    return false;
+  } // Remove Luhn check digit and run Verhoeff check
+
+
+  return algorithms.verhoeffCheck("".concat(tin.slice(0, 11)).concat(tin[12]));
+}
+/*
+ * hr-HR validation function
+ * (Osobni identifikacijski broj (OIB), persons/entities)
+ * Verify TIN validity by calling iso7064Check(digits)
+ */
+
+
+function hrHrCheck(tin) {
+  return algorithms.iso7064Check(tin);
+}
+/*
+ * hu-HU validation function
+ * (Adóazonosító jel, persons only)
+ * Verify TIN validity by calculating check (last) digit
+ */
+
+
+function huHuCheck(tin) {
+  // split digits into an array for further processing
+  var digits = tin.split('').map(function (a) {
+    return parseInt(a, 10);
+  });
+  var checksum = 8;
+
+  for (var i = 1; i < 9; i++) {
+    checksum += digits[i] * (i + 1);
+  }
+
+  return checksum % 11 === digits[9];
+}
+/*
+ * lt-LT validation function (should go here if needed)
+ * (Asmens kodas, persons/entities respectively)
+ * Current validation check is alias of etEeCheck- same format applies
+ */
+
+/*
+ * it-IT first/last name validity check
+ * Accepts it-IT TIN-encoded names as a three-element character array and checks their validity
+ * Due to lack of clarity between resources ("Are only Italian consonants used?
+ * What happens if a person has X in their name?" etc.) only two test conditions
+ * have been implemented:
+ * Vowels may only be followed by other vowels or an X character
+ * and X characters after vowels may only be followed by other X characters.
+ */
+
+
+function itItNameCheck(name) {
+  // true at the first occurence of a vowel
+  var vowelflag = false; // true at the first occurence of an X AFTER vowel
+  // (to properly handle last names with X as consonant)
+
+  var xflag = false;
+
+  for (var i = 0; i < 3; i++) {
+    if (!vowelflag && /[AEIOU]/.test(name[i])) {
+      vowelflag = true;
+    } else if (!xflag && vowelflag && name[i] === 'X') {
+      xflag = true;
+    } else if (i > 0) {
+      if (vowelflag && !xflag) {
+        if (!/[AEIOU]/.test(name[i])) {
+          return false;
+        }
+      }
+
+      if (xflag) {
+        if (!/X/.test(name[i])) {
+          return false;
+        }
+      }
+    }
+  }
+
+  return true;
+}
+/*
+ * it-IT validation function
+ * (Codice fiscale (TIN-IT), persons only)
+ * Verify name, birth date and codice catastale validity
+ * and calculate check character.
+ * Material not in DG-TAXUD document sourced from:
+ * `https://en.wikipedia.org/wiki/Italian_fiscal_code`
+ */
+
+
+function itItCheck(tin) {
+  // Capitalize and split characters into an array for further processing
+  var chars = tin.toUpperCase().split(''); // Check first and last name validity calling itItNameCheck()
+
+  if (!itItNameCheck(chars.slice(0, 3))) {
+    return false;
+  }
+
+  if (!itItNameCheck(chars.slice(3, 6))) {
+    return false;
+  } // Convert letters in number spaces back to numbers if any
+
+
+  var number_locations = [6, 7, 9, 10, 12, 13, 14];
+  var number_replace = {
+    L: '0',
+    M: '1',
+    N: '2',
+    P: '3',
+    Q: '4',
+    R: '5',
+    S: '6',
+    T: '7',
+    U: '8',
+    V: '9'
+  };
+
+  for (var _i4 = 0, _number_locations = number_locations; _i4 < _number_locations.length; _i4++) {
+    var i = _number_locations[_i4];
+
+    if (chars[i] in number_replace) {
+      chars.splice(i, 1, number_replace[chars[i]]);
+    }
+  } // Extract month and day, and check date validity
+
+
+  var month_replace = {
+    A: '01',
+    B: '02',
+    C: '03',
+    D: '04',
+    E: '05',
+    H: '06',
+    L: '07',
+    M: '08',
+    P: '09',
+    R: '10',
+    S: '11',
+    T: '12'
+  };
+  var month = month_replace[chars[8]];
+  var day = parseInt(chars[9] + chars[10], 10);
+
+  if (day > 40) {
+    day -= 40;
+  }
+
+  if (day < 10) {
+    day = "0".concat(day);
+  }
+
+  var date = "".concat(chars[6]).concat(chars[7], "/").concat(month, "/").concat(day);
+
+  if (!(0, _isDate.default)(date, 'YY/MM/DD')) {
+    return false;
+  } // Calculate check character by adding up even and odd characters as numbers
+
+
+  var checksum = 0;
+
+  for (var _i5 = 1; _i5 < chars.length - 1; _i5 += 2) {
+    var char_to_int = parseInt(chars[_i5], 10);
+
+    if (isNaN(char_to_int)) {
+      char_to_int = chars[_i5].charCodeAt(0) - 65;
+    }
+
+    checksum += char_to_int;
+  }
+
+  var odd_convert = {
+    // Maps of characters at odd places
+    A: 1,
+    B: 0,
+    C: 5,
+    D: 7,
+    E: 9,
+    F: 13,
+    G: 15,
+    H: 17,
+    I: 19,
+    J: 21,
+    K: 2,
+    L: 4,
+    M: 18,
+    N: 20,
+    O: 11,
+    P: 3,
+    Q: 6,
+    R: 8,
+    S: 12,
+    T: 14,
+    U: 16,
+    V: 10,
+    W: 22,
+    X: 25,
+    Y: 24,
+    Z: 23,
+    0: 1,
+    1: 0
+  };
+
+  for (var _i6 = 0; _i6 < chars.length - 1; _i6 += 2) {
+    var _char_to_int = 0;
+
+    if (chars[_i6] in odd_convert) {
+      _char_to_int = odd_convert[chars[_i6]];
+    } else {
+      var multiplier = parseInt(chars[_i6], 10);
+      _char_to_int = 2 * multiplier + 1;
+
+      if (multiplier > 4) {
+        _char_to_int += 2;
+      }
+    }
+
+    checksum += _char_to_int;
+  }
+
+  if (String.fromCharCode(65 + checksum % 26) !== chars[15]) {
+    return false;
+  }
+
+  return true;
+}
+/*
+ * lv-LV validation function
+ * (Personas kods (PK), persons only)
+ * Check validity of birth date and calculate check (last) digit
+ * Support only for old format numbers (not starting with '32', issued before 2017/07/01)
+ * Material not in DG TAXUD document sourced from:
+ * `https://boot.ritakafija.lv/forums/index.php?/topic/88314-personas-koda-algoritms-%C4%8Deksumma/`
+ */
+
+
+function lvLvCheck(tin) {
+  tin = tin.replace(/\W/, ''); // Extract date from TIN
+
+  var day = tin.slice(0, 2);
+
+  if (day !== '32') {
+    // No date/checksum check if new format
+    var month = tin.slice(2, 4);
+
+    if (month !== '00') {
+      // No date check if unknown month
+      var full_year = tin.slice(4, 6);
+
+      switch (tin[6]) {
+        case '0':
+          full_year = "18".concat(full_year);
+          break;
+
+        case '1':
+          full_year = "19".concat(full_year);
+          break;
+
+        default:
+          full_year = "20".concat(full_year);
+          break;
+      } // Check date validity
+
+
+      var date = "".concat(full_year, "/").concat(tin.slice(2, 4), "/").concat(day);
+
+      if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {
+        return false;
+      }
+    } // Calculate check digit
+
+
+    var checksum = 1101;
+    var multip_lookup = [1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
+
+    for (var i = 0; i < tin.length - 1; i++) {
+      checksum -= parseInt(tin[i], 10) * multip_lookup[i];
+    }
+
+    return parseInt(tin[10], 10) === checksum % 11;
+  }
+
+  return true;
+}
+/*
+ * mt-MT validation function
+ * (Identity Card Number or Unique Taxpayer Reference, persons/entities)
+ * Verify Identity Card Number structure (no other tests found)
+ */
+
+
+function mtMtCheck(tin) {
+  if (tin.length !== 9) {
+    // No tests for UTR
+    var chars = tin.toUpperCase().split(''); // Fill with zeros if smaller than proper
+
+    while (chars.length < 8) {
+      chars.unshift(0);
+    } // Validate format according to last character
+
+
+    switch (tin[7]) {
+      case 'A':
+      case 'P':
+        if (parseInt(chars[6], 10) === 0) {
+          return false;
+        }
+
+        break;
+
+      default:
+        {
+          var first_part = parseInt(chars.join('').slice(0, 5), 10);
+
+          if (first_part > 32000) {
+            return false;
+          }
+
+          var second_part = parseInt(chars.join('').slice(5, 7), 10);
+
+          if (first_part === second_part) {
+            return false;
+          }
+        }
+    }
+  }
+
+  return true;
+}
+/*
+ * nl-NL validation function
+ * (Burgerservicenummer (BSN) or Rechtspersonen Samenwerkingsverbanden Informatie Nummer (RSIN),
+ * persons/entities respectively)
+ * Verify TIN validity by calculating check (last) digit (variant of MOD 11)
+ */
+
+
+function nlNlCheck(tin) {
+  return algorithms.reverseMultiplyAndSum(tin.split('').slice(0, 8).map(function (a) {
+    return parseInt(a, 10);
+  }), 9) % 11 === parseInt(tin[8], 10);
+}
+/*
+ * pl-PL validation function
+ * (Powszechny Elektroniczny System Ewidencji Ludności (PESEL)
+ * or Numer identyfikacji podatkowej (NIP), persons/entities)
+ * Verify TIN validity by validating birth date (PESEL) and calculating check (last) digit
+ */
+
+
+function plPlCheck(tin) {
+  // NIP
+  if (tin.length === 10) {
+    // Calculate last digit by multiplying with lookup
+    var lookup = [6, 5, 7, 2, 3, 4, 5, 6, 7];
+    var _checksum = 0;
+
+    for (var i = 0; i < lookup.length; i++) {
+      _checksum += parseInt(tin[i], 10) * lookup[i];
+    }
+
+    _checksum %= 11;
+
+    if (_checksum === 10) {
+      return false;
+    }
+
+    return _checksum === parseInt(tin[9], 10);
+  } // PESEL
+  // Extract full year using month
+
+
+  var full_year = tin.slice(0, 2);
+  var month = parseInt(tin.slice(2, 4), 10);
+
+  if (month > 80) {
+    full_year = "18".concat(full_year);
+    month -= 80;
+  } else if (month > 60) {
+    full_year = "22".concat(full_year);
+    month -= 60;
+  } else if (month > 40) {
+    full_year = "21".concat(full_year);
+    month -= 40;
+  } else if (month > 20) {
+    full_year = "20".concat(full_year);
+    month -= 20;
+  } else {
+    full_year = "19".concat(full_year);
+  } // Add leading zero to month if needed
+
+
+  if (month < 10) {
+    month = "0".concat(month);
+  } // Check date validity
+
+
+  var date = "".concat(full_year, "/").concat(month, "/").concat(tin.slice(4, 6));
+
+  if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {
+    return false;
+  } // Calculate last digit by mulitplying with odd one-digit numbers except 5
+
+
+  var checksum = 0;
+  var multiplier = 1;
+
+  for (var _i7 = 0; _i7 < tin.length - 1; _i7++) {
+    checksum += parseInt(tin[_i7], 10) * multiplier % 10;
+    multiplier += 2;
+
+    if (multiplier > 10) {
+      multiplier = 1;
+    } else if (multiplier === 5) {
+      multiplier += 2;
+    }
+  }
+
+  checksum = 10 - checksum % 10;
+  return checksum === parseInt(tin[10], 10);
+}
+/*
+* pt-BR validation function
+* (Cadastro de Pessoas Físicas (CPF, persons)
+* Cadastro Nacional de Pessoas Jurídicas (CNPJ, entities)
+* Both inputs will be validated
+*/
+
+
+function ptBrCheck(tin) {
+  if (tin.length === 11) {
+    var _sum;
+
+    var remainder;
+    _sum = 0;
+    if ( // Reject known invalid CPFs
+    tin === '11111111111' || tin === '22222222222' || tin === '33333333333' || tin === '44444444444' || tin === '55555555555' || tin === '66666666666' || tin === '77777777777' || tin === '88888888888' || tin === '99999999999' || tin === '00000000000') return false;
+
+    for (var i = 1; i <= 9; i++) {
+      _sum += parseInt(tin.substring(i - 1, i), 10) * (11 - i);
+    }
+
+    remainder = _sum * 10 % 11;
+    if (remainder === 10) remainder = 0;
+    if (remainder !== parseInt(tin.substring(9, 10), 10)) return false;
+    _sum = 0;
+
+    for (var _i8 = 1; _i8 <= 10; _i8++) {
+      _sum += parseInt(tin.substring(_i8 - 1, _i8), 10) * (12 - _i8);
+    }
+
+    remainder = _sum * 10 % 11;
+    if (remainder === 10) remainder = 0;
+    if (remainder !== parseInt(tin.substring(10, 11), 10)) return false;
+    return true;
+  }
+
+  if ( // Reject know invalid CNPJs
+  tin === '00000000000000' || tin === '11111111111111' || tin === '22222222222222' || tin === '33333333333333' || tin === '44444444444444' || tin === '55555555555555' || tin === '66666666666666' || tin === '77777777777777' || tin === '88888888888888' || tin === '99999999999999') {
+    return false;
+  }
+
+  var length = tin.length - 2;
+  var identifiers = tin.substring(0, length);
+  var verificators = tin.substring(length);
+  var sum = 0;
+  var pos = length - 7;
+
+  for (var _i9 = length; _i9 >= 1; _i9--) {
+    sum += identifiers.charAt(length - _i9) * pos;
+    pos -= 1;
+
+    if (pos < 2) {
+      pos = 9;
+    }
+  }
+
+  var result = sum % 11 < 2 ? 0 : 11 - sum % 11;
+
+  if (result !== parseInt(verificators.charAt(0), 10)) {
+    return false;
+  }
+
+  length += 1;
+  identifiers = tin.substring(0, length);
+  sum = 0;
+  pos = length - 7;
+
+  for (var _i10 = length; _i10 >= 1; _i10--) {
+    sum += identifiers.charAt(length - _i10) * pos;
+    pos -= 1;
+
+    if (pos < 2) {
+      pos = 9;
+    }
+  }
+
+  result = sum % 11 < 2 ? 0 : 11 - sum % 11;
+
+  if (result !== parseInt(verificators.charAt(1), 10)) {
+    return false;
+  }
+
+  return true;
+}
+/*
+ * pt-PT validation function
+ * (Número de identificação fiscal (NIF), persons/entities)
+ * Verify TIN validity by calculating check (last) digit (variant of MOD 11)
+ */
+
+
+function ptPtCheck(tin) {
+  var checksum = 11 - algorithms.reverseMultiplyAndSum(tin.split('').slice(0, 8).map(function (a) {
+    return parseInt(a, 10);
+  }), 9) % 11;
+
+  if (checksum > 9) {
+    return parseInt(tin[8], 10) === 0;
+  }
+
+  return checksum === parseInt(tin[8], 10);
+}
+/*
+ * ro-RO validation function
+ * (Cod Numeric Personal (CNP) or Cod de înregistrare fiscală (CIF),
+ * persons only)
+ * Verify CNP validity by calculating check (last) digit (test not found for CIF)
+ * Material not in DG TAXUD document sourced from:
+ * `https://en.wikipedia.org/wiki/National_identification_number#Romania`
+ */
+
+
+function roRoCheck(tin) {
+  if (tin.slice(0, 4) !== '9000') {
+    // No test found for this format
+    // Extract full year using century digit if possible
+    var full_year = tin.slice(1, 3);
+
+    switch (tin[0]) {
+      case '1':
+      case '2':
+        full_year = "19".concat(full_year);
+        break;
+
+      case '3':
+      case '4':
+        full_year = "18".concat(full_year);
+        break;
+
+      case '5':
+      case '6':
+        full_year = "20".concat(full_year);
+        break;
+
+      default:
+    } // Check date validity
+
+
+    var date = "".concat(full_year, "/").concat(tin.slice(3, 5), "/").concat(tin.slice(5, 7));
+
+    if (date.length === 8) {
+      if (!(0, _isDate.default)(date, 'YY/MM/DD')) {
+        return false;
+      }
+    } else if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {
+      return false;
+    } // Calculate check digit
+
+
+    var digits = tin.split('').map(function (a) {
+      return parseInt(a, 10);
+    });
+    var multipliers = [2, 7, 9, 1, 4, 6, 3, 5, 8, 2, 7, 9];
+    var checksum = 0;
+
+    for (var i = 0; i < multipliers.length; i++) {
+      checksum += digits[i] * multipliers[i];
+    }
+
+    if (checksum % 11 === 10) {
+      return digits[12] === 1;
+    }
+
+    return digits[12] === checksum % 11;
+  }
+
+  return true;
+}
+/*
+ * sk-SK validation function
+ * (Rodné číslo (RČ) or bezvýznamové identifikačné číslo (BIČ), persons only)
+ * Checks validity of pre-1954 birth numbers (rodné číslo) only
+ * Due to the introduction of the pseudo-random BIČ it is not possible to test
+ * post-1954 birth numbers without knowing whether they are BIČ or RČ beforehand
+ */
+
+
+function skSkCheck(tin) {
+  if (tin.length === 9) {
+    tin = tin.replace(/\W/, '');
+
+    if (tin.slice(6) === '000') {
+      return false;
+    } // Three-zero serial not assigned before 1954
+    // Extract full year from TIN length
+
+
+    var full_year = parseInt(tin.slice(0, 2), 10);
+
+    if (full_year > 53) {
+      return false;
+    }
+
+    if (full_year < 10) {
+      full_year = "190".concat(full_year);
+    } else {
+      full_year = "19".concat(full_year);
+    } // Extract month from TIN and normalize
+
+
+    var month = parseInt(tin.slice(2, 4), 10);
+
+    if (month > 50) {
+      month -= 50;
+    }
+
+    if (month < 10) {
+      month = "0".concat(month);
+    } // Check date validity
+
+
+    var date = "".concat(full_year, "/").concat(month, "/").concat(tin.slice(4, 6));
+
+    if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {
+      return false;
+    }
+  }
+
+  return true;
+}
+/*
+ * sl-SI validation function
+ * (Davčna številka, persons/entities)
+ * Verify TIN validity by calculating check (last) digit (variant of MOD 11)
+ */
+
+
+function slSiCheck(tin) {
+  var checksum = 11 - algorithms.reverseMultiplyAndSum(tin.split('').slice(0, 7).map(function (a) {
+    return parseInt(a, 10);
+  }), 8) % 11;
+
+  if (checksum === 10) {
+    return parseInt(tin[7], 10) === 0;
+  }
+
+  return checksum === parseInt(tin[7], 10);
+}
+/*
+ * sv-SE validation function
+ * (Personnummer or samordningsnummer, persons only)
+ * Checks validity of birth date and calls luhnCheck() to validate check (last) digit
+ */
+
+
+function svSeCheck(tin) {
+  // Make copy of TIN and normalize to two-digit year form
+  var tin_copy = tin.slice(0);
+
+  if (tin.length > 11) {
+    tin_copy = tin_copy.slice(2);
+  } // Extract date of birth
+
+
+  var full_year = '';
+  var month = tin_copy.slice(2, 4);
+  var day = parseInt(tin_copy.slice(4, 6), 10);
+
+  if (tin.length > 11) {
+    full_year = tin.slice(0, 4);
+  } else {
+    full_year = tin.slice(0, 2);
+
+    if (tin.length === 11 && day < 60) {
+      // Extract full year from centenarian symbol
+      // Should work just fine until year 10000 or so
+      var current_year = new Date().getFullYear().toString();
+      var current_century = parseInt(current_year.slice(0, 2), 10);
+      current_year = parseInt(current_year, 10);
+
+      if (tin[6] === '-') {
+        if (parseInt("".concat(current_century).concat(full_year), 10) > current_year) {
+          full_year = "".concat(current_century - 1).concat(full_year);
+        } else {
+          full_year = "".concat(current_century).concat(full_year);
+        }
+      } else {
+        full_year = "".concat(current_century - 1).concat(full_year);
+
+        if (current_year - parseInt(full_year, 10) < 100) {
+          return false;
+        }
+      }
+    }
+  } // Normalize day and check date validity
+
+
+  if (day > 60) {
+    day -= 60;
+  }
+
+  if (day < 10) {
+    day = "0".concat(day);
+  }
+
+  var date = "".concat(full_year, "/").concat(month, "/").concat(day);
+
+  if (date.length === 8) {
+    if (!(0, _isDate.default)(date, 'YY/MM/DD')) {
+      return false;
+    }
+  } else if (!(0, _isDate.default)(date, 'YYYY/MM/DD')) {
+    return false;
+  }
+
+  return algorithms.luhnCheck(tin.replace(/\W/, ''));
+} // Locale lookup objects
+
+/*
+ * Tax id regex formats for various locales
+ *
+ * Where not explicitly specified in DG-TAXUD document both
+ * uppercase and lowercase letters are acceptable.
+ */
+
+
+var taxIdFormat = {
+  'bg-BG': /^\d{10}$/,
+  'cs-CZ': /^\d{6}\/{0,1}\d{3,4}$/,
+  'de-AT': /^\d{9}$/,
+  'de-DE': /^[1-9]\d{10}$/,
+  'dk-DK': /^\d{6}-{0,1}\d{4}$/,
+  'el-CY': /^[09]\d{7}[A-Z]$/,
+  'el-GR': /^([0-4]|[7-9])\d{8}$/,
+  'en-GB': /^\d{10}$|^(?!GB|NK|TN|ZZ)(?![DFIQUV])[A-Z](?![DFIQUVO])[A-Z]\d{6}[ABCD ]$/i,
+  'en-IE': /^\d{7}[A-W][A-IW]{0,1}$/i,
+  'en-US': /^\d{2}[- ]{0,1}\d{7}$/,
+  'es-ES': /^(\d{0,8}|[XYZKLM]\d{7})[A-HJ-NP-TV-Z]$/i,
+  'et-EE': /^[1-6]\d{6}(00[1-9]|0[1-9][0-9]|[1-6][0-9]{2}|70[0-9]|710)\d$/,
+  'fi-FI': /^\d{6}[-+A]\d{3}[0-9A-FHJ-NPR-Y]$/i,
+  'fr-BE': /^\d{11}$/,
+  'fr-FR': /^[0-3]\d{12}$|^[0-3]\d\s\d{2}(\s\d{3}){3}$/,
+  // Conforms both to official spec and provided example
+  'fr-LU': /^\d{13}$/,
+  'hr-HR': /^\d{11}$/,
+  'hu-HU': /^8\d{9}$/,
+  'it-IT': /^[A-Z]{6}[L-NP-V0-9]{2}[A-EHLMPRST][L-NP-V0-9]{2}[A-ILMZ][L-NP-V0-9]{3}[A-Z]$/i,
+  'lv-LV': /^\d{6}-{0,1}\d{5}$/,
+  // Conforms both to DG TAXUD spec and original research
+  'mt-MT': /^\d{3,7}[APMGLHBZ]$|^([1-8])\1\d{7}$/i,
+  'nl-NL': /^\d{9}$/,
+  'pl-PL': /^\d{10,11}$/,
+  'pt-BR': /(?:^\d{11}$)|(?:^\d{14}$)/,
+  'pt-PT': /^\d{9}$/,
+  'ro-RO': /^\d{13}$/,
+  'sk-SK': /^\d{6}\/{0,1}\d{3,4}$/,
+  'sl-SI': /^[1-9]\d{7}$/,
+  'sv-SE': /^(\d{6}[-+]{0,1}\d{4}|(18|19|20)\d{6}[-+]{0,1}\d{4})$/
+}; // taxIdFormat locale aliases
+
+taxIdFormat['lb-LU'] = taxIdFormat['fr-LU'];
+taxIdFormat['lt-LT'] = taxIdFormat['et-EE'];
+taxIdFormat['nl-BE'] = taxIdFormat['fr-BE']; // Algorithmic tax id check functions for various locales
+
+var taxIdCheck = {
+  'bg-BG': bgBgCheck,
+  'cs-CZ': csCzCheck,
+  'de-AT': deAtCheck,
+  'de-DE': deDeCheck,
+  'dk-DK': dkDkCheck,
+  'el-CY': elCyCheck,
+  'el-GR': elGrCheck,
+  'en-IE': enIeCheck,
+  'en-US': enUsCheck,
+  'es-ES': esEsCheck,
+  'et-EE': etEeCheck,
+  'fi-FI': fiFiCheck,
+  'fr-BE': frBeCheck,
+  'fr-FR': frFrCheck,
+  'fr-LU': frLuCheck,
+  'hr-HR': hrHrCheck,
+  'hu-HU': huHuCheck,
+  'it-IT': itItCheck,
+  'lv-LV': lvLvCheck,
+  'mt-MT': mtMtCheck,
+  'nl-NL': nlNlCheck,
+  'pl-PL': plPlCheck,
+  'pt-BR': ptBrCheck,
+  'pt-PT': ptPtCheck,
+  'ro-RO': roRoCheck,
+  'sk-SK': skSkCheck,
+  'sl-SI': slSiCheck,
+  'sv-SE': svSeCheck
+}; // taxIdCheck locale aliases
+
+taxIdCheck['lb-LU'] = taxIdCheck['fr-LU'];
+taxIdCheck['lt-LT'] = taxIdCheck['et-EE'];
+taxIdCheck['nl-BE'] = taxIdCheck['fr-BE']; // Regexes for locales where characters should be omitted before checking format
+
+var allsymbols = /[-\\\/!@#$%\^&\*\(\)\+\=\[\]]+/g;
+var sanitizeRegexes = {
+  'de-AT': allsymbols,
+  'de-DE': /[\/\\]/g,
+  'fr-BE': allsymbols
+}; // sanitizeRegexes locale aliases
+
+sanitizeRegexes['nl-BE'] = sanitizeRegexes['fr-BE'];
+/*
+ * Validator function
+ * Return true if the passed string is a valid tax identification number
+ * for the specified locale.
+ * Throw an error exception if the locale is not supported.
+ */
+
+function isTaxID(str) {
+  var locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en-US';
+  (0, _assertString.default)(str); // Copy TIN to avoid replacement if sanitized
+
+  var strcopy = str.slice(0);
+
+  if (locale in taxIdFormat) {
+    if (locale in sanitizeRegexes) {
+      strcopy = strcopy.replace(sanitizeRegexes[locale], '');
+    }
+
+    if (!taxIdFormat[locale].test(strcopy)) {
+      return false;
+    }
+
+    if (locale in taxIdCheck) {
+      return taxIdCheck[locale](strcopy);
+    } // Fallthrough; not all locales have algorithmic checks
+
+
+    return true;
+  }
+
+  throw new Error("Invalid locale '".concat(locale, "'"));
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./isDate":62,"./util/algorithms":135,"./util/assertString":136}],118:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isURL;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+var _isFQDN = _interopRequireDefault(require("./isFQDN"));
+
+var _isIP = _interopRequireDefault(require("./isIP"));
+
+var _merge = _interopRequireDefault(require("./util/merge"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
+
+function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
+
+function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
+
+function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
+
+function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
+
+function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
+
+/*
+options for isURL method
+
+require_protocol - if set as true isURL will return false if protocol is not present in the URL
+require_valid_protocol - isURL will check if the URL's protocol is present in the protocols option
+protocols - valid protocols can be modified with this option
+require_host - if set as false isURL will not check if host is present in the URL
+require_port - if set as true isURL will check if port is present in the URL
+allow_protocol_relative_urls - if set as true protocol relative URLs will be allowed
+validate_length - if set as false isURL will skip string length validation (IE maximum is 2083)
+
+*/
+var default_url_options = {
+  protocols: ['http', 'https', 'ftp'],
+  require_tld: true,
+  require_protocol: false,
+  require_host: true,
+  require_port: false,
+  require_valid_protocol: true,
+  allow_underscores: false,
+  allow_trailing_dot: false,
+  allow_protocol_relative_urls: false,
+  allow_fragments: true,
+  allow_query_components: true,
+  validate_length: true
+};
+var wrapped_ipv6 = /^\[([^\]]+)\](?::([0-9]+))?$/;
+
+function isRegExp(obj) {
+  return Object.prototype.toString.call(obj) === '[object RegExp]';
+}
+
+function checkHost(host, matches) {
+  for (var i = 0; i < matches.length; i++) {
+    var match = matches[i];
+
+    if (host === match || isRegExp(match) && match.test(host)) {
+      return true;
+    }
+  }
+
+  return false;
+}
+
+function isURL(url, options) {
+  (0, _assertString.default)(url);
+
+  if (!url || /[\s<>]/.test(url)) {
+    return false;
+  }
+
+  if (url.indexOf('mailto:') === 0) {
+    return false;
+  }
+
+  options = (0, _merge.default)(options, default_url_options);
+
+  if (options.validate_length && url.length >= 2083) {
+    return false;
+  }
+
+  if (!options.allow_fragments && url.includes('#')) {
+    return false;
+  }
+
+  if (!options.allow_query_components && (url.includes('?') || url.includes('&'))) {
+    return false;
+  }
+
+  var protocol, auth, host, hostname, port, port_str, split, ipv6;
+  split = url.split('#');
+  url = split.shift();
+  split = url.split('?');
+  url = split.shift();
+  split = url.split('://');
+
+  if (split.length > 1) {
+    protocol = split.shift().toLowerCase();
+
+    if (options.require_valid_protocol && options.protocols.indexOf(protocol) === -1) {
+      return false;
+    }
+  } else if (options.require_protocol) {
+    return false;
+  } else if (url.substr(0, 2) === '//') {
+    if (!options.allow_protocol_relative_urls) {
+      return false;
+    }
+
+    split[0] = url.substr(2);
+  }
+
+  url = split.join('://');
+
+  if (url === '') {
+    return false;
+  }
+
+  split = url.split('/');
+  url = split.shift();
+
+  if (url === '' && !options.require_host) {
+    return true;
+  }
+
+  split = url.split('@');
+
+  if (split.length > 1) {
+    if (options.disallow_auth) {
+      return false;
+    }
+
+    if (split[0] === '') {
+      return false;
+    }
+
+    auth = split.shift();
+
+    if (auth.indexOf(':') >= 0 && auth.split(':').length > 2) {
+      return false;
+    }
+
+    var _auth$split = auth.split(':'),
+        _auth$split2 = _slicedToArray(_auth$split, 2),
+        user = _auth$split2[0],
+        password = _auth$split2[1];
+
+    if (user === '' && password === '') {
+      return false;
+    }
+  }
+
+  hostname = split.join('@');
+  port_str = null;
+  ipv6 = null;
+  var ipv6_match = hostname.match(wrapped_ipv6);
+
+  if (ipv6_match) {
+    host = '';
+    ipv6 = ipv6_match[1];
+    port_str = ipv6_match[2] || null;
+  } else {
+    split = hostname.split(':');
+    host = split.shift();
+
+    if (split.length) {
+      port_str = split.join(':');
+    }
+  }
+
+  if (port_str !== null && port_str.length > 0) {
+    port = parseInt(port_str, 10);
+
+    if (!/^[0-9]+$/.test(port_str) || port <= 0 || port > 65535) {
+      return false;
+    }
+  } else if (options.require_port) {
+    return false;
+  }
+
+  if (options.host_whitelist) {
+    return checkHost(host, options.host_whitelist);
+  }
+
+  if (!(0, _isIP.default)(host) && !(0, _isFQDN.default)(host, options) && (!ipv6 || !(0, _isIP.default)(ipv6, 6))) {
+    return false;
+  }
+
+  host = host || ipv6;
+
+  if (options.host_blacklist && checkHost(host, options.host_blacklist)) {
+    return false;
+  }
+
+  return true;
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./isFQDN":69,"./isIP":79,"./util/assertString":136,"./util/merge":138}],119:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isUUID;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var uuid = {
+  1: /^[0-9A-F]{8}-[0-9A-F]{4}-1[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,
+  2: /^[0-9A-F]{8}-[0-9A-F]{4}-2[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,
+  3: /^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,
+  4: /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,
+  5: /^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,
+  all: /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i
+};
+
+function isUUID(str, version) {
+  (0, _assertString.default)(str);
+  var pattern = uuid[![undefined, null].includes(version) ? version : 'all'];
+  return !!pattern && pattern.test(str);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],120:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isUppercase;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function isUppercase(str) {
+  (0, _assertString.default)(str);
+  return str === str.toUpperCase();
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],121:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isVAT;
+exports.vatMatchers = void 0;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var vatMatchers = {
+  GB: /^GB((\d{3} \d{4} ([0-8][0-9]|9[0-6]))|(\d{9} \d{3})|(((GD[0-4])|(HA[5-9]))[0-9]{2}))$/,
+  IT: /^(IT)?[0-9]{11}$/,
+  NL: /^(NL)?[0-9]{9}B[0-9]{2}$/
+};
+exports.vatMatchers = vatMatchers;
+
+function isVAT(str, countryCode) {
+  (0, _assertString.default)(str);
+  (0, _assertString.default)(countryCode);
+
+  if (countryCode in vatMatchers) {
+    return vatMatchers[countryCode].test(str);
+  }
+
+  throw new Error("Invalid country code: '".concat(countryCode, "'"));
+}
+},{"./util/assertString":136}],122:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isVariableWidth;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+var _isFullWidth = require("./isFullWidth");
+
+var _isHalfWidth = require("./isHalfWidth");
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function isVariableWidth(str) {
+  (0, _assertString.default)(str);
+  return _isFullWidth.fullWidth.test(str) && _isHalfWidth.halfWidth.test(str);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./isFullWidth":71,"./isHalfWidth":73,"./util/assertString":136}],123:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = isWhitelisted;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function isWhitelisted(str, chars) {
+  (0, _assertString.default)(str);
+
+  for (var i = str.length - 1; i >= 0; i--) {
+    if (chars.indexOf(str[i]) === -1) {
+      return false;
+    }
+  }
+
+  return true;
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],124:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = ltrim;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function ltrim(str, chars) {
+  (0, _assertString.default)(str); // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping
+
+  var pattern = chars ? new RegExp("^[".concat(chars.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), "]+"), 'g') : /^\s+/g;
+  return str.replace(pattern, '');
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],125:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = matches;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function matches(str, pattern, modifiers) {
+  (0, _assertString.default)(str);
+
+  if (Object.prototype.toString.call(pattern) !== '[object RegExp]') {
+    pattern = new RegExp(pattern, modifiers);
+  }
+
+  return pattern.test(str);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],126:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = normalizeEmail;
+
+var _merge = _interopRequireDefault(require("./util/merge"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var default_normalize_email_options = {
+  // The following options apply to all email addresses
+  // Lowercases the local part of the email address.
+  // Please note this may violate RFC 5321 as per http://stackoverflow.com/a/9808332/192024).
+  // The domain is always lowercased, as per RFC 1035
+  all_lowercase: true,
+  // The following conversions are specific to GMail
+  // Lowercases the local part of the GMail address (known to be case-insensitive)
+  gmail_lowercase: true,
+  // Removes dots from the local part of the email address, as that's ignored by GMail
+  gmail_remove_dots: true,
+  // Removes the subaddress (e.g. "+foo") from the email address
+  gmail_remove_subaddress: true,
+  // Conversts the googlemail.com domain to gmail.com
+  gmail_convert_googlemaildotcom: true,
+  // The following conversions are specific to Outlook.com / Windows Live / Hotmail
+  // Lowercases the local part of the Outlook.com address (known to be case-insensitive)
+  outlookdotcom_lowercase: true,
+  // Removes the subaddress (e.g. "+foo") from the email address
+  outlookdotcom_remove_subaddress: true,
+  // The following conversions are specific to Yahoo
+  // Lowercases the local part of the Yahoo address (known to be case-insensitive)
+  yahoo_lowercase: true,
+  // Removes the subaddress (e.g. "-foo") from the email address
+  yahoo_remove_subaddress: true,
+  // The following conversions are specific to Yandex
+  // Lowercases the local part of the Yandex address (known to be case-insensitive)
+  yandex_lowercase: true,
+  // The following conversions are specific to iCloud
+  // Lowercases the local part of the iCloud address (known to be case-insensitive)
+  icloud_lowercase: true,
+  // Removes the subaddress (e.g. "+foo") from the email address
+  icloud_remove_subaddress: true
+}; // List of domains used by iCloud
+
+var icloud_domains = ['icloud.com', 'me.com']; // List of domains used by Outlook.com and its predecessors
+// This list is likely incomplete.
+// Partial reference:
+// https://blogs.office.com/2013/04/17/outlook-com-gets-two-step-verification-sign-in-by-alias-and-new-international-domains/
+
+var outlookdotcom_domains = ['hotmail.at', 'hotmail.be', 'hotmail.ca', 'hotmail.cl', 'hotmail.co.il', 'hotmail.co.nz', 'hotmail.co.th', 'hotmail.co.uk', 'hotmail.com', 'hotmail.com.ar', 'hotmail.com.au', 'hotmail.com.br', 'hotmail.com.gr', 'hotmail.com.mx', 'hotmail.com.pe', 'hotmail.com.tr', 'hotmail.com.vn', 'hotmail.cz', 'hotmail.de', 'hotmail.dk', 'hotmail.es', 'hotmail.fr', 'hotmail.hu', 'hotmail.id', 'hotmail.ie', 'hotmail.in', 'hotmail.it', 'hotmail.jp', 'hotmail.kr', 'hotmail.lv', 'hotmail.my', 'hotmail.ph', 'hotmail.pt', 'hotmail.sa', 'hotmail.sg', 'hotmail.sk', 'live.be', 'live.co.uk', 'live.com', 'live.com.ar', 'live.com.mx', 'live.de', 'live.es', 'live.eu', 'live.fr', 'live.it', 'live.nl', 'msn.com', 'outlook.at', 'outlook.be', 'outlook.cl', 'outlook.co.il', 'outlook.co.nz', 'outlook.co.th', 'outlook.com', 'outlook.com.ar', 'outlook.com.au', 'outlook.com.br', 'outlook.com.gr', 'outlook.com.pe', 'outlook.com.tr', 'outlook.com.vn', 'outlook.cz', 'outlook.de', 'outlook.dk', 'outlook.es', 'outlook.fr', 'outlook.hu', 'outlook.id', 'outlook.ie', 'outlook.in', 'outlook.it', 'outlook.jp', 'outlook.kr', 'outlook.lv', 'outlook.my', 'outlook.ph', 'outlook.pt', 'outlook.sa', 'outlook.sg', 'outlook.sk', 'passport.com']; // List of domains used by Yahoo Mail
+// This list is likely incomplete
+
+var yahoo_domains = ['rocketmail.com', 'yahoo.ca', 'yahoo.co.uk', 'yahoo.com', 'yahoo.de', 'yahoo.fr', 'yahoo.in', 'yahoo.it', 'ymail.com']; // List of domains used by yandex.ru
+
+var yandex_domains = ['yandex.ru', 'yandex.ua', 'yandex.kz', 'yandex.com', 'yandex.by', 'ya.ru']; // replace single dots, but not multiple consecutive dots
+
+function dotsReplacer(match) {
+  if (match.length > 1) {
+    return match;
+  }
+
+  return '';
+}
+
+function normalizeEmail(email, options) {
+  options = (0, _merge.default)(options, default_normalize_email_options);
+  var raw_parts = email.split('@');
+  var domain = raw_parts.pop();
+  var user = raw_parts.join('@');
+  var parts = [user, domain]; // The domain is always lowercased, as it's case-insensitive per RFC 1035
+
+  parts[1] = parts[1].toLowerCase();
+
+  if (parts[1] === 'gmail.com' || parts[1] === 'googlemail.com') {
+    // Address is GMail
+    if (options.gmail_remove_subaddress) {
+      parts[0] = parts[0].split('+')[0];
+    }
+
+    if (options.gmail_remove_dots) {
+      // this does not replace consecutive dots like example..email@gmail.com
+      parts[0] = parts[0].replace(/\.+/g, dotsReplacer);
+    }
+
+    if (!parts[0].length) {
+      return false;
+    }
+
+    if (options.all_lowercase || options.gmail_lowercase) {
+      parts[0] = parts[0].toLowerCase();
+    }
+
+    parts[1] = options.gmail_convert_googlemaildotcom ? 'gmail.com' : parts[1];
+  } else if (icloud_domains.indexOf(parts[1]) >= 0) {
+    // Address is iCloud
+    if (options.icloud_remove_subaddress) {
+      parts[0] = parts[0].split('+')[0];
+    }
+
+    if (!parts[0].length) {
+      return false;
+    }
+
+    if (options.all_lowercase || options.icloud_lowercase) {
+      parts[0] = parts[0].toLowerCase();
+    }
+  } else if (outlookdotcom_domains.indexOf(parts[1]) >= 0) {
+    // Address is Outlook.com
+    if (options.outlookdotcom_remove_subaddress) {
+      parts[0] = parts[0].split('+')[0];
+    }
+
+    if (!parts[0].length) {
+      return false;
+    }
+
+    if (options.all_lowercase || options.outlookdotcom_lowercase) {
+      parts[0] = parts[0].toLowerCase();
+    }
+  } else if (yahoo_domains.indexOf(parts[1]) >= 0) {
+    // Address is Yahoo
+    if (options.yahoo_remove_subaddress) {
+      var components = parts[0].split('-');
+      parts[0] = components.length > 1 ? components.slice(0, -1).join('-') : components[0];
+    }
+
+    if (!parts[0].length) {
+      return false;
+    }
+
+    if (options.all_lowercase || options.yahoo_lowercase) {
+      parts[0] = parts[0].toLowerCase();
+    }
+  } else if (yandex_domains.indexOf(parts[1]) >= 0) {
+    if (options.all_lowercase || options.yandex_lowercase) {
+      parts[0] = parts[0].toLowerCase();
+    }
+
+    parts[1] = 'yandex.ru'; // all yandex domains are equal, 1st preferred
+  } else if (options.all_lowercase) {
+    // Any other address
+    parts[0] = parts[0].toLowerCase();
+  }
+
+  return parts.join('@');
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/merge":138}],127:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = rtrim;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function rtrim(str, chars) {
+  (0, _assertString.default)(str);
+
+  if (chars) {
+    // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping
+    var pattern = new RegExp("[".concat(chars.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), "]+$"), 'g');
+    return str.replace(pattern, '');
+  } // Use a faster and more safe than regex trim method https://blog.stevenlevithan.com/archives/faster-trim-javascript
+
+
+  var strIndex = str.length - 1;
+
+  while (/\s/.test(str.charAt(strIndex))) {
+    strIndex -= 1;
+  }
+
+  return str.slice(0, strIndex + 1);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],128:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = stripLow;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+var _blacklist = _interopRequireDefault(require("./blacklist"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function stripLow(str, keep_new_lines) {
+  (0, _assertString.default)(str);
+  var chars = keep_new_lines ? '\\x00-\\x09\\x0B\\x0C\\x0E-\\x1F\\x7F' : '\\x00-\\x1F\\x7F';
+  return (0, _blacklist.default)(str, chars);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./blacklist":43,"./util/assertString":136}],129:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = toBoolean;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function toBoolean(str, strict) {
+  (0, _assertString.default)(str);
+
+  if (strict) {
+    return str === '1' || /^true$/i.test(str);
+  }
+
+  return str !== '0' && !/^false$/i.test(str) && str !== '';
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],130:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = toDate;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function toDate(date) {
+  (0, _assertString.default)(date);
+  date = Date.parse(date);
+  return !isNaN(date) ? new Date(date) : null;
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],131:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = toFloat;
+
+var _isFloat = _interopRequireDefault(require("./isFloat"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function toFloat(str) {
+  if (!(0, _isFloat.default)(str)) return NaN;
+  return parseFloat(str);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./isFloat":70}],132:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = toInt;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function toInt(str, radix) {
+  (0, _assertString.default)(str);
+  return parseInt(str, radix || 10);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],133:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = trim;
+
+var _rtrim = _interopRequireDefault(require("./rtrim"));
+
+var _ltrim = _interopRequireDefault(require("./ltrim"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function trim(str, chars) {
+  return (0, _rtrim.default)((0, _ltrim.default)(str, chars), chars);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./ltrim":124,"./rtrim":127}],134:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = unescape;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function unescape(str) {
+  (0, _assertString.default)(str);
+  return str.replace(/&quot;/g, '"').replace(/&#x27;/g, "'").replace(/&lt;/g, '<').replace(/&gt;/g, '>').replace(/&#x2F;/g, '/').replace(/&#x5C;/g, '\\').replace(/&#96;/g, '`').replace(/&amp;/g, '&'); // &amp; replacement has to be the last one to prevent
+  // bugs with intermediate strings containing escape sequences
+  // See: https://github.com/validatorjs/validator.js/issues/1827
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],135:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.iso7064Check = iso7064Check;
+exports.luhnCheck = luhnCheck;
+exports.reverseMultiplyAndSum = reverseMultiplyAndSum;
+exports.verhoeffCheck = verhoeffCheck;
+
+/**
+ * Algorithmic validation functions
+ * May be used as is or implemented in the workflow of other validators.
+ */
+
+/*
+ * ISO 7064 validation function
+ * Called with a string of numbers (incl. check digit)
+ * to validate according to ISO 7064 (MOD 11, 10).
+ */
+function iso7064Check(str) {
+  var checkvalue = 10;
+
+  for (var i = 0; i < str.length - 1; i++) {
+    checkvalue = (parseInt(str[i], 10) + checkvalue) % 10 === 0 ? 10 * 2 % 11 : (parseInt(str[i], 10) + checkvalue) % 10 * 2 % 11;
+  }
+
+  checkvalue = checkvalue === 1 ? 0 : 11 - checkvalue;
+  return checkvalue === parseInt(str[10], 10);
+}
+/*
+ * Luhn (mod 10) validation function
+ * Called with a string of numbers (incl. check digit)
+ * to validate according to the Luhn algorithm.
+ */
+
+
+function luhnCheck(str) {
+  var checksum = 0;
+  var second = false;
+
+  for (var i = str.length - 1; i >= 0; i--) {
+    if (second) {
+      var product = parseInt(str[i], 10) * 2;
+
+      if (product > 9) {
+        // sum digits of product and add to checksum
+        checksum += product.toString().split('').map(function (a) {
+          return parseInt(a, 10);
+        }).reduce(function (a, b) {
+          return a + b;
+        }, 0);
+      } else {
+        checksum += product;
+      }
+    } else {
+      checksum += parseInt(str[i], 10);
+    }
+
+    second = !second;
+  }
+
+  return checksum % 10 === 0;
+}
+/*
+ * Reverse TIN multiplication and summation helper function
+ * Called with an array of single-digit integers and a base multiplier
+ * to calculate the sum of the digits multiplied in reverse.
+ * Normally used in variations of MOD 11 algorithmic checks.
+ */
+
+
+function reverseMultiplyAndSum(digits, base) {
+  var total = 0;
+
+  for (var i = 0; i < digits.length; i++) {
+    total += digits[i] * (base - i);
+  }
+
+  return total;
+}
+/*
+ * Verhoeff validation helper function
+ * Called with a string of numbers
+ * to validate according to the Verhoeff algorithm.
+ */
+
+
+function verhoeffCheck(str) {
+  var d_table = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 0, 6, 7, 8, 9, 5], [2, 3, 4, 0, 1, 7, 8, 9, 5, 6], [3, 4, 0, 1, 2, 8, 9, 5, 6, 7], [4, 0, 1, 2, 3, 9, 5, 6, 7, 8], [5, 9, 8, 7, 6, 0, 4, 3, 2, 1], [6, 5, 9, 8, 7, 1, 0, 4, 3, 2], [7, 6, 5, 9, 8, 2, 1, 0, 4, 3], [8, 7, 6, 5, 9, 3, 2, 1, 0, 4], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]];
+  var p_table = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 5, 7, 6, 2, 8, 3, 0, 9, 4], [5, 8, 0, 3, 7, 9, 6, 1, 4, 2], [8, 9, 1, 6, 0, 4, 3, 5, 2, 7], [9, 4, 5, 3, 1, 2, 6, 8, 7, 0], [4, 2, 8, 6, 5, 7, 3, 9, 0, 1], [2, 7, 9, 3, 8, 0, 6, 4, 1, 5], [7, 0, 4, 6, 9, 1, 3, 2, 5, 8]]; // Copy (to prevent replacement) and reverse
+
+  var str_copy = str.split('').reverse().join('');
+  var checksum = 0;
+
+  for (var i = 0; i < str_copy.length; i++) {
+    checksum = d_table[checksum][p_table[i % 8][parseInt(str_copy[i], 10)]];
+  }
+
+  return checksum === 0;
+}
+},{}],136:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = assertString;
+
+function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
+
+function assertString(input) {
+  var isString = typeof input === 'string' || input instanceof String;
+
+  if (!isString) {
+    var invalidType = _typeof(input);
+
+    if (input === null) invalidType = 'null';else if (invalidType === 'object') invalidType = input.constructor.name;
+    throw new TypeError("Expected a string but received a ".concat(invalidType));
+  }
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{}],137:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = void 0;
+
+var includes = function includes(arr, val) {
+  return arr.some(function (arrVal) {
+    return val === arrVal;
+  });
+};
+
+var _default = includes;
+exports.default = _default;
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{}],138:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = merge;
+
+function merge() {
+  var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
+  var defaults = arguments.length > 1 ? arguments[1] : undefined;
+
+  for (var key in defaults) {
+    if (typeof obj[key] === 'undefined') {
+      obj[key] = defaults[key];
+    }
+  }
+
+  return obj;
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{}],139:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = multilineRegexp;
+
+/**
+ * Build RegExp object from an array
+ * of multiple/multi-line regexp parts
+ *
+ * @param {string[]} parts
+ * @param {string} flags
+ * @return {object} - RegExp object
+ */
+function multilineRegexp(parts, flags) {
+  var regexpAsStringLiteral = parts.join('');
+  return new RegExp(regexpAsStringLiteral, flags);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{}],140:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = toString;
+
+function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
+
+function toString(input) {
+  if (_typeof(input) === 'object' && input !== null) {
+    if (typeof input.toString === 'function') {
+      input = input.toString();
+    } else {
+      input = '[object Object]';
+    }
+  } else if (input === null || typeof input === 'undefined' || isNaN(input) && !input.length) {
+    input = '';
+  }
+
+  return String(input);
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{}],141:[function(require,module,exports){
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.default = whitelist;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function whitelist(str, chars) {
+  (0, _assertString.default)(str);
+  return str.replace(new RegExp("[^".concat(chars, "]+"), 'g'), '');
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default;
+},{"./util/assertString":136}],142:[function(require,module,exports){
+module.exports={
+  "name": "doipjs",
+  "version": "0.15.6",
+  "description": "Decentralized OpenPGP Identity Proofs library in Node.js",
+  "main": "./src/index.js",
+  "dependencies": {
+    "@openpgp/hkp-client": "^0.0.2",
+    "@openpgp/wkd-client": "^0.0.3",
+    "@xmpp/client": "^0.13.1",
+    "@xmpp/debug": "^0.13.0",
+    "axios": "^0.25.0",
+    "browser-or-node": "^1.3.0",
+    "cors": "^2.8.5",
+    "dotenv": "^8.2.0",
+    "express": "^4.17.1",
+    "express-validator": "^6.10.0",
+    "irc-upd": "^0.11.0",
+    "jsdom": "^16.5.1",
+    "merge-options": "^3.0.3",
+    "openpgp": "^5.0",
+    "query-string": "^6.14.1",
+    "valid-url": "^1.0.9",
+    "validator": "^13.5.2"
+  },
+  "devDependencies": {
+    "browserify": "^17.0.0",
+    "browserify-shim": "^3.8.14",
+    "chai": "^4.2.0",
+    "chai-as-promised": "^7.1.1",
+    "chai-match-pattern": "^1.2.0",
+    "clean-jsdoc-theme": "^3.2.4",
+    "husky": "^7.0.0",
+    "jsdoc": "^3.6.6",
+    "license-check-and-add": "^4.0.3",
+    "lint-staged": "^11.0.0",
+    "minify": "^6.0.1",
+    "mocha": "^9.2.0",
+    "nodemon": "^2.0.15",
+    "standard": "^16.0.3",
+    "webpack": "^5.70.0",
+    "webpack-cli": "^4.9.2"
+  },
+  "scripts": {
+    "release": "yarn run test && yarn run release:bundle && yarn run release:minify",
+    "release:bundle": "./node_modules/.bin/browserify ./src/index.js --standalone doip -x openpgp -x @openpgp/hkp-client -x @openpgp/wkd-client -x jsdom -x @xmpp/client -x @xmpp/debug -x irc-upd -o ./dist/doip.js",
+    "release:minify": "./node_modules/.bin/minify ./dist/doip.js > ./dist/doip.min.js",
+    "license:check": "./node_modules/.bin/license-check-and-add check",
+    "license:add": "./node_modules/.bin/license-check-and-add add",
+    "license:remove": "./node_modules/.bin/license-check-and-add remove",
+    "docs:lib": "./node_modules/.bin/jsdoc -c jsdoc-lib.json -r -d ./docs -P package.json",
+    "standard:check": "./node_modules/.bin/standard ./src",
+    "standard:fix": "./node_modules/.bin/standard --fix ./src",
+    "mocha": "./node_modules/.bin/mocha",
+    "test": "yarn run standard:check && yarn run license:check && yarn run mocha",
+    "proxy": "NODE_ENV=production node ./src/proxy/",
+    "proxy:dev": "NODE_ENV=development ./node_modules/.bin/nodemon ./src/proxy/",
+    "prepare": "husky install"
+  },
+  "repository": {
+    "type": "git",
+    "url": "https://codeberg.org/keyoxide/doipjs"
+  },
+  "homepage": "https://js.doip.rocks",
+  "keywords": [
+    "pgp",
+    "gpg",
+    "openpgp",
+    "encryption",
+    "decentralized",
+    "identity"
+  ],
+  "author": "Yarmo Mackenbach <yarmo@yarmo.eu> (https://yarmo.eu)",
+  "license": "Apache-2.0",
+  "browserify": {
+    "transform": [
+      "browserify-shim"
+    ]
+  },
+  "browserify-shim": {
+    "openpgp": "global:openpgp"
+  }
+}
+
+},{}],143:[function(require,module,exports){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const validator = require('validator')
+const validUrl = require('valid-url')
+const mergeOptions = require('merge-options')
+const proofs = require('./proofs')
+const verifications = require('./verifications')
+const claimDefinitions = require('./claimDefinitions')
+const defaults = require('./defaults')
+const E = require('./enums')
+
+/**
+ * @class
+ * @classdesc OpenPGP-based identity claim
+ * @property {string} uri             - The claim's URI
+ * @property {string} fingerprint     - The fingerprint to verify the claim against
+ * @property {string} status          - The current status of the claim
+ * @property {Array<object>} matches  - The claim definitions matched against the URI
+ * @property {object} verification    - The result of the verification process
+ */
+class Claim {
+  /**
+   * Initialize a Claim object
+   * @constructor
+   * @param {string|object} [uri]   - The URI of the identity claim or a JSONified Claim instance
+   * @param {string} [fingerprint]  - The fingerprint of the OpenPGP key
+   * @example
+   * const claim = doip.Claim();
+   * const claim = doip.Claim('dns:domain.tld?type=TXT');
+   * const claim = doip.Claim('dns:domain.tld?type=TXT', '123abc123abc');
+   * const claimAlt = doip.Claim(JSON.stringify(claim));
+   */
+  constructor (uri, fingerprint) {
+    // Import JSON
+    if (typeof uri === 'object' && 'claimVersion' in uri) {
+      const data = uri
+      switch (data.claimVersion) {
+        case 1:
+          this._uri = data.uri
+          this._fingerprint = data.fingerprint
+          this._status = data.status
+          this._matches = data.matches
+          this._verification = data.verification
+          break
+
+        default:
+          throw new Error('Invalid claim version')
+      }
+      return
+    }
+
+    // Verify validity of URI
+    if (uri && !validUrl.isUri(uri)) {
+      throw new Error('Invalid URI')
+    }
+
+    // Verify validity of fingerprint
+    if (fingerprint) {
+      try {
+        validator.isAlphanumeric(fingerprint)
+      } catch (err) {
+        throw new Error('Invalid fingerprint')
+      }
+    }
+
+    this._uri = uri || null
+    this._fingerprint = fingerprint || null
+    this._status = E.ClaimStatus.INIT
+    this._matches = null
+    this._verification = null
+  }
+
+  get uri () {
+    return this._uri
+  }
+
+  get fingerprint () {
+    return this._fingerprint
+  }
+
+  get status () {
+    return this._status
+  }
+
+  get matches () {
+    if (this._status === E.ClaimStatus.INIT) {
+      throw new Error('This claim has not yet been matched')
+    }
+    return this._matches
+  }
+
+  get verification () {
+    if (this._status !== E.ClaimStatus.VERIFIED) {
+      throw new Error('This claim has not yet been verified')
+    }
+    return this._verification
+  }
+
+  set uri (uri) {
+    if (this._status !== E.ClaimStatus.INIT) {
+      throw new Error(
+        'Cannot change the URI, this claim has already been matched'
+      )
+    }
+    // Verify validity of URI
+    if (uri && !validUrl.isUri(uri)) {
+      throw new Error('The URI was invalid')
+    }
+    // Remove leading and trailing spaces
+    uri = uri.replace(/^\s+|\s+$/g, '')
+
+    this._uri = uri
+  }
+
+  set fingerprint (fingerprint) {
+    if (this._status === E.ClaimStatus.VERIFIED) {
+      throw new Error(
+        'Cannot change the fingerprint, this claim has already been verified'
+      )
+    }
+    this._fingerprint = fingerprint
+  }
+
+  set status (anything) {
+    throw new Error("Cannot change a claim's status")
+  }
+
+  set matches (anything) {
+    throw new Error("Cannot change a claim's matches")
+  }
+
+  set verification (anything) {
+    throw new Error("Cannot change a claim's verification result")
+  }
+
+  /**
+   * Match the claim's URI to candidate definitions
+   * @function
+   */
+  match () {
+    if (this._status !== E.ClaimStatus.INIT) {
+      throw new Error('This claim was already matched')
+    }
+    if (this._uri === null) {
+      throw new Error('This claim has no URI')
+    }
+
+    this._matches = []
+
+    claimDefinitions.list.every((name, i) => {
+      const def = claimDefinitions.data[name]
+
+      // If the candidate is invalid, continue matching
+      if (!def.reURI.test(this._uri)) {
+        return true
+      }
+
+      const candidate = def.processURI(this._uri)
+      if (candidate.match.isAmbiguous) {
+        // Add to the possible candidates
+        this._matches.push(candidate)
+      } else {
+        // Set a single candidate and stop
+        this._matches = [candidate]
+        return false
+      }
+
+      // Continue matching
+      return true
+    })
+
+    this._status = E.ClaimStatus.MATCHED
+  }
+
+  /**
+   * Verify the claim. The proof for each candidate is sequentially fetched and
+   * checked for the fingerprint. The verification stops when either a positive
+   * result was obtained, or an unambiguous claim definition was processed
+   * regardless of the result.
+   * @async
+   * @function
+   * @param {object} [opts] - Options for proxy, fetchers
+   */
+  async verify (opts) {
+    if (this._status === E.ClaimStatus.INIT) {
+      throw new Error('This claim has not yet been matched')
+    }
+    if (this._status === E.ClaimStatus.VERIFIED) {
+      throw new Error('This claim has already been verified')
+    }
+    if (this._fingerprint === null) {
+      throw new Error('This claim has no fingerprint')
+    }
+
+    // Handle options
+    opts = mergeOptions(defaults.opts, opts || {})
+
+    // If there are no matches
+    if (this._matches.length === 0) {
+      this._verification = {
+        result: false,
+        completed: true,
+        proof: {},
+        errors: ['No matches for claim']
+      }
+    }
+
+    // For each match
+    for (let index = 0; index < this._matches.length; index++) {
+      const claimData = this._matches[index]
+
+      let verificationResult = null
+      let proofData = null
+      let proofFetchError
+
+      try {
+        proofData = await proofs.fetch(claimData, opts)
+      } catch (err) {
+        proofFetchError = err
+      }
+
+      if (proofData) {
+        // Run the verification process
+        verificationResult = verifications.run(
+          proofData.result,
+          claimData,
+          this._fingerprint
+        )
+        verificationResult.proof = {
+          fetcher: proofData.fetcher,
+          viaProxy: proofData.viaProxy
+        }
+      } else {
+        // Consider the proof completed but with a negative result
+        verificationResult = verificationResult || {
+          result: false,
+          completed: true,
+          proof: {},
+          errors: [proofFetchError]
+        }
+
+        if (this.isAmbiguous()) {
+          // Assume a wrong match and continue
+          continue
+        }
+      }
+
+      if (verificationResult.completed) {
+        // Store the result, keep a single match and stop verifying
+        this._verification = verificationResult
+        this._matches = [claimData]
+        index = this._matches.length
+      }
+    }
+
+    // Fail safe verification result
+    this._verification = this._verification
+      ? this._verification
+      : {
+          result: false,
+          completed: true,
+          proof: {},
+          errors: ['Unknown error']
+        }
+
+    this._status = E.ClaimStatus.VERIFIED
+  }
+
+  /**
+   * Determine the ambiguity of the claim. A claim is only unambiguous if any
+   * of the candidates is unambiguous. An ambiguous claim should never be
+   * displayed in an user interface when its result is negative.
+   * @function
+   * @returns {boolean}
+   */
+  isAmbiguous () {
+    if (this._status === E.ClaimStatus.INIT) {
+      throw new Error('The claim has not been matched yet')
+    }
+    if (this._matches.length === 0) {
+      throw new Error('The claim has no matches')
+    }
+    return this._matches.length > 1 || this._matches[0].match.isAmbiguous
+  }
+
+  /**
+   * Get a JSON representation of the Claim object. Useful when transferring
+   * data between instances/machines.
+   * @function
+   * @returns {object}
+   */
+  toJSON () {
+    return {
+      claimVersion: 1,
+      uri: this._uri,
+      fingerprint: this._fingerprint,
+      status: this._status,
+      matches: this._matches,
+      verification: this._verification
+    }
+  }
+}
+
+module.exports = Claim
+
+},{"./claimDefinitions":151,"./defaults":163,"./enums":164,"./proofs":175,"./verifications":178,"merge-options":35,"valid-url":40,"validator":41}],144:[function(require,module,exports){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const E = require('../enums')
+
+const reURI = /^https:\/\/dev\.to\/(.*)\/(.*)\/?/
+
+const processURI = (uri) => {
+  const match = uri.match(reURI)
+
+  return {
+    serviceprovider: {
+      type: 'web',
+      name: 'devto'
+    },
+    match: {
+      regularExpression: reURI,
+      isAmbiguous: false
+    },
+    profile: {
+      display: match[1],
+      uri: `https://dev.to/${match[1]}`,
+      qr: null
+    },
+    proof: {
+      uri: uri,
+      request: {
+        fetcher: E.Fetcher.HTTP,
+        access: E.ProofAccess.NOCORS,
+        format: E.ProofFormat.JSON,
+        data: {
+          url: `https://dev.to/api/articles/${match[1]}/${match[2]}`,
+          format: E.ProofFormat.JSON
+        }
+      }
+    },
+    claim: {
+      format: E.ClaimFormat.MESSAGE,
+      relation: E.ClaimRelation.CONTAINS,
+      path: ['body_markdown']
+    }
+  }
+}
+
+const tests = [
+  {
+    uri: 'https://dev.to/alice/post',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://dev.to/alice/post/',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://domain.org/alice/post',
+    shouldMatch: false
+  }
+]
+
+exports.reURI = reURI
+exports.processURI = processURI
+exports.tests = tests
+
+},{"../enums":164}],145:[function(require,module,exports){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const E = require('../enums')
+
+const reURI = /^https:\/\/(.*)\/u\/(.*)\/?/
+
+const processURI = (uri) => {
+  const match = uri.match(reURI)
+
+  return {
+    serviceprovider: {
+      type: 'web',
+      name: 'discourse'
+    },
+    match: {
+      regularExpression: reURI,
+      isAmbiguous: true
+    },
+    profile: {
+      display: `${match[2]}@${match[1]}`,
+      uri: uri,
+      qr: null
+    },
+    proof: {
+      uri: uri,
+      request: {
+        fetcher: E.Fetcher.HTTP,
+        access: E.ProofAccess.NOCORS,
+        format: E.ProofFormat.JSON,
+        data: {
+          url: `https://${match[1]}/u/${match[2]}.json`,
+          format: E.ProofFormat.JSON
+        }
+      }
+    },
+    claim: {
+      format: E.ClaimFormat.MESSAGE,
+      relation: E.ClaimRelation.CONTAINS,
+      path: ['user', 'bio_raw']
+    }
+  }
+}
+
+const tests = [
+  {
+    uri: 'https://domain.org/u/alice',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://domain.org/u/alice/',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://domain.org/alice',
+    shouldMatch: false
+  }
+]
+
+exports.reURI = reURI
+exports.processURI = processURI
+exports.tests = tests
+
+},{"../enums":164}],146:[function(require,module,exports){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const E = require('../enums')
+
+const reURI = /^dns:([a-zA-Z0-9.\-_]*)(?:\?(.*))?/
+
+const processURI = (uri) => {
+  const match = uri.match(reURI)
+
+  return {
+    serviceprovider: {
+      type: 'web',
+      name: 'dns'
+    },
+    match: {
+      regularExpression: reURI,
+      isAmbiguous: false
+    },
+    profile: {
+      display: match[1],
+      uri: `https://${match[1]}`,
+      qr: null
+    },
+    proof: {
+      uri: null,
+      request: {
+        fetcher: E.Fetcher.DNS,
+        access: E.ProofAccess.SERVER,
+        format: E.ProofFormat.JSON,
+        data: {
+          domain: match[1]
+        }
+      }
+    },
+    claim: {
+      format: E.ClaimFormat.URI,
+      relation: E.ClaimRelation.CONTAINS,
+      path: ['records', 'txt']
+    }
+  }
+}
+
+const tests = [
+  {
+    uri: 'dns:domain.org',
+    shouldMatch: true
+  },
+  {
+    uri: 'dns:domain.org?type=TXT',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://domain.org',
+    shouldMatch: false
+  }
+]
+
+exports.reURI = reURI
+exports.processURI = processURI
+exports.tests = tests
+
+},{"../enums":164}],147:[function(require,module,exports){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const E = require('../enums')
+
+const reURI = /^https:\/\/(.*)\/(.*)\/gitea_proof\/?/
+
+const processURI = (uri) => {
+  const match = uri.match(reURI)
+
+  return {
+    serviceprovider: {
+      type: 'web',
+      name: 'gitea'
+    },
+    match: {
+      regularExpression: reURI,
+      isAmbiguous: true
+    },
+    profile: {
+      display: `${match[2]}@${match[1]}`,
+      uri: `https://${match[1]}/${match[2]}`,
+      qr: null
+    },
+    proof: {
+      uri: uri,
+      request: {
+        fetcher: E.Fetcher.HTTP,
+        access: E.ProofAccess.NOCORS,
+        format: E.ProofFormat.JSON,
+        data: {
+          url: `https://${match[1]}/api/v1/repos/${match[2]}/gitea_proof`,
+          format: E.ProofFormat.JSON
+        }
+      }
+    },
+    claim: {
+      format: E.ClaimFormat.MESSAGE,
+      relation: E.ClaimRelation.EQUALS,
+      path: ['description']
+    }
+  }
+}
+
+const tests = [
+  {
+    uri: 'https://domain.org/alice/gitea_proof',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://domain.org/alice/gitea_proof/',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://domain.org/alice/other_proof',
+    shouldMatch: false
+  }
+]
+
+exports.reURI = reURI
+exports.processURI = processURI
+exports.tests = tests
+
+},{"../enums":164}],148:[function(require,module,exports){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const E = require('../enums')
+
+const reURI = /^https:\/\/gist\.github\.com\/(.*)\/(.*)\/?/
+
+const processURI = (uri) => {
+  const match = uri.match(reURI)
+
+  return {
+    serviceprovider: {
+      type: 'web',
+      name: 'github'
+    },
+    match: {
+      regularExpression: reURI,
+      isAmbiguous: false
+    },
+    profile: {
+      display: match[1],
+      uri: `https://github.com/${match[1]}`,
+      qr: null
+    },
+    proof: {
+      uri: uri,
+      request: {
+        fetcher: E.Fetcher.HTTP,
+        access: E.ProofAccess.GENERIC,
+        format: E.ProofFormat.JSON,
+        data: {
+          url: `https://api.github.com/gists/${match[2]}`,
+          format: E.ProofFormat.JSON
+        }
+      }
+    },
+    claim: {
+      format: E.ClaimFormat.MESSAGE,
+      relation: E.ClaimRelation.CONTAINS,
+      path: ['files', 'openpgp.md', 'content']
+    }
+  }
+}
+
+const tests = [
+  {
+    uri: 'https://gist.github.com/Alice/123456789',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://gist.github.com/Alice/123456789/',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://domain.org/Alice/123456789',
+    shouldMatch: false
+  }
+]
+
+exports.reURI = reURI
+exports.processURI = processURI
+exports.tests = tests
+
+},{"../enums":164}],149:[function(require,module,exports){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const E = require('../enums')
+
+const reURI = /^https:\/\/(.*)\/(.*)\/gitlab_proof\/?/
+
+const processURI = (uri) => {
+  const match = uri.match(reURI)
+
+  return {
+    serviceprovider: {
+      type: 'web',
+      name: 'gitlab'
+    },
+    match: {
+      regularExpression: reURI,
+      isAmbiguous: true
+    },
+    profile: {
+      display: `${match[2]}@${match[1]}`,
+      uri: `https://${match[1]}/${match[2]}`,
+      qr: null
+    },
+    proof: {
+      uri: uri,
+      request: {
+        fetcher: E.Fetcher.GITLAB,
+        access: E.ProofAccess.GENERIC,
+        format: E.ProofFormat.JSON,
+        data: {
+          domain: match[1],
+          username: match[2]
+        }
+      }
+    },
+    claim: {
+      format: E.ClaimFormat.MESSAGE,
+      relation: E.ClaimRelation.EQUALS,
+      path: ['description']
+    }
+  }
+}
+
+const tests = [
+  {
+    uri: 'https://gitlab.domain.org/alice/gitlab_proof',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://gitlab.domain.org/alice/gitlab_proof/',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://domain.org/alice/other_proof',
+    shouldMatch: false
+  }
+]
+
+exports.reURI = reURI
+exports.processURI = processURI
+exports.tests = tests
+
+},{"../enums":164}],150:[function(require,module,exports){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const E = require('../enums')
+
+const reURI = /^https:\/\/news\.ycombinator\.com\/user\?id=(.*)\/?/
+
+const processURI = (uri) => {
+  const match = uri.match(reURI)
+
+  return {
+    serviceprovider: {
+      type: 'web',
+      name: 'hackernews'
+    },
+    match: {
+      regularExpression: reURI,
+      isAmbiguous: false
+    },
+    profile: {
+      display: match[1],
+      uri: uri,
+      qr: null
+    },
+    proof: {
+      uri: `https://hacker-news.firebaseio.com/v0/user/${match[1]}.json`,
+      request: {
+        fetcher: E.Fetcher.HTTP,
+        access: E.ProofAccess.NOCORS,
+        format: E.ProofFormat.JSON,
+        data: {
+          url: `https://hacker-news.firebaseio.com/v0/user/${match[1]}.json`,
+          format: E.ProofFormat.JSON
+        }
+      }
+    },
+    claim: {
+      format: E.ClaimFormat.URI,
+      relation: E.ClaimRelation.CONTAINS,
+      path: ['about']
+    }
+  }
+}
+
+const tests = [
+  {
+    uri: 'https://news.ycombinator.com/user?id=Alice',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://news.ycombinator.com/user?id=Alice/',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://domain.org/user?id=Alice',
+    shouldMatch: false
+  }
+]
+
+exports.reURI = reURI
+exports.processURI = processURI
+exports.tests = tests
+
+},{"../enums":164}],151:[function(require,module,exports){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const list = [
+  'dns',
+  'irc',
+  'xmpp',
+  'matrix',
+  'twitter',
+  'reddit',
+  'liberapay',
+  'lichess',
+  'hackernews',
+  'lobsters',
+  'devto',
+  'gitea',
+  'gitlab',
+  'github',
+  'mastodon',
+  'pleroma',
+  'discourse',
+  'owncast'
+]
+
+const data = {
+  dns: require('./dns'),
+  irc: require('./irc'),
+  xmpp: require('./xmpp'),
+  matrix: require('./matrix'),
+  twitter: require('./twitter'),
+  reddit: require('./reddit'),
+  liberapay: require('./liberapay'),
+  lichess: require('./lichess'),
+  hackernews: require('./hackernews'),
+  lobsters: require('./lobsters'),
+  devto: require('./devto'),
+  gitea: require('./gitea'),
+  gitlab: require('./gitlab'),
+  github: require('./github'),
+  mastodon: require('./mastodon'),
+  pleroma: require('./pleroma'),
+  discourse: require('./discourse'),
+  owncast: require('./owncast')
+}
+
+exports.list = list
+exports.data = data
+
+},{"./devto":144,"./discourse":145,"./dns":146,"./gitea":147,"./github":148,"./gitlab":149,"./hackernews":150,"./irc":152,"./liberapay":153,"./lichess":154,"./lobsters":155,"./mastodon":156,"./matrix":157,"./owncast":158,"./pleroma":159,"./reddit":160,"./twitter":161,"./xmpp":162}],152:[function(require,module,exports){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const E = require('../enums')
+
+const reURI = /^irc:\/\/(.*)\/([a-zA-Z0-9\-[\]\\`_^{|}]*)/
+
+const processURI = (uri) => {
+  const match = uri.match(reURI)
+
+  return {
+    serviceprovider: {
+      type: 'communication',
+      name: 'irc'
+    },
+    match: {
+      regularExpression: reURI,
+      isAmbiguous: false
+    },
+    profile: {
+      display: `irc://${match[1]}/${match[2]}`,
+      uri: uri,
+      qr: null
+    },
+    proof: {
+      uri: null,
+      request: {
+        fetcher: E.Fetcher.IRC,
+        access: E.ProofAccess.SERVER,
+        format: E.ProofFormat.JSON,
+        data: {
+          domain: match[1],
+          nick: match[2]
+        }
+      }
+    },
+    claim: {
+      format: E.ClaimFormat.URI,
+      relation: E.ClaimRelation.CONTAINS,
+      path: []
+    }
+  }
+}
+
+const tests = [
+  {
+    uri: 'irc://chat.ircserver.org/Alice1',
+    shouldMatch: true
+  },
+  {
+    uri: 'irc://chat.ircserver.org/alice?param=123',
+    shouldMatch: true
+  },
+  {
+    uri: 'irc://chat.ircserver.org/alice_bob',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://chat.ircserver.org/alice',
+    shouldMatch: false
+  }
+]
+
+exports.reURI = reURI
+exports.processURI = processURI
+exports.tests = tests
+
+},{"../enums":164}],153:[function(require,module,exports){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const E = require('../enums')
+
+const reURI = /^https:\/\/liberapay\.com\/(.*)\/?/
+
+const processURI = (uri) => {
+  const match = uri.match(reURI)
+
+  return {
+    serviceprovider: {
+      type: 'web',
+      name: 'liberapay'
+    },
+    match: {
+      regularExpression: reURI,
+      isAmbiguous: false
+    },
+    profile: {
+      display: match[1],
+      uri: uri,
+      qr: null
+    },
+    proof: {
+      uri: uri,
+      request: {
+        fetcher: E.Fetcher.HTTP,
+        access: E.ProofAccess.GENERIC,
+        format: E.ProofFormat.JSON,
+        data: {
+          url: `https://liberapay.com/${match[1]}/public.json`,
+          format: E.ProofFormat.JSON
+        }
+      }
+    },
+    claim: {
+      format: E.ClaimFormat.MESSAGE,
+      relation: E.ClaimRelation.CONTAINS,
+      path: ['statements', 'content']
+    }
+  }
+}
+
+const tests = [
+  {
+    uri: 'https://liberapay.com/alice',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://liberapay.com/alice/',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://domain.org/alice',
+    shouldMatch: false
+  }
+]
+
+exports.reURI = reURI
+exports.processURI = processURI
+exports.tests = tests
+
+},{"../enums":164}],154:[function(require,module,exports){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const E = require('../enums')
+
+const reURI = /^https:\/\/lichess\.org\/@\/(.*)\/?/
+
+const processURI = (uri) => {
+  const match = uri.match(reURI)
+
+  return {
+    serviceprovider: {
+      type: 'web',
+      name: 'lichess'
+    },
+    match: {
+      regularExpression: reURI,
+      isAmbiguous: false
+    },
+    profile: {
+      display: match[1],
+      uri: uri,
+      qr: null
+    },
+    proof: {
+      uri: `https://lichess.org/api/user/${match[1]}`,
+      request: {
+        fetcher: E.Fetcher.HTTP,
+        access: E.ProofAccess.GENERIC,
+        format: E.ProofFormat.JSON,
+        data: {
+          url: `https://lichess.org/api/user/${match[1]}`,
+          format: E.ProofFormat.JSON
+        }
+      }
+    },
+    claim: {
+      format: E.ClaimFormat.FINGERPRINT,
+      relation: E.ClaimRelation.CONTAINS,
+      path: ['profile', 'links']
+    }
+  }
+}
+
+const tests = [
+  {
+    uri: 'https://lichess.org/@/Alice',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://lichess.org/@/Alice/',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://domain.org/@/Alice',
+    shouldMatch: false
+  }
+]
+
+exports.reURI = reURI
+exports.processURI = processURI
+exports.tests = tests
+
+},{"../enums":164}],155:[function(require,module,exports){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const E = require('../enums')
+
+const reURI = /^https:\/\/lobste\.rs\/u\/(.*)\/?/
+
+const processURI = (uri) => {
+  const match = uri.match(reURI)
+
+  return {
+    serviceprovider: {
+      type: 'web',
+      name: 'lobsters'
+    },
+    match: {
+      regularExpression: reURI,
+      isAmbiguous: false
+    },
+    profile: {
+      display: match[1],
+      uri: uri,
+      qr: null
+    },
+    proof: {
+      uri: `https://lobste.rs/u/${match[1]}.json`,
+      request: {
+        fetcher: E.Fetcher.HTTP,
+        access: E.ProofAccess.NOCORS,
+        format: E.ProofFormat.JSON,
+        data: {
+          url: `https://lobste.rs/u/${match[1]}.json`,
+          format: E.ProofFormat.JSON
+        }
+      }
+    },
+    claim: {
+      format: E.ClaimFormat.MESSAGE,
+      relation: E.ClaimRelation.CONTAINS,
+      path: ['about']
+    }
+  }
+}
+
+const tests = [
+  {
+    uri: 'https://lobste.rs/u/Alice',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://lobste.rs/u/Alice/',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://domain.org/u/Alice',
+    shouldMatch: false
+  }
+]
+
+exports.reURI = reURI
+exports.processURI = processURI
+exports.tests = tests
+
+},{"../enums":164}],156:[function(require,module,exports){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const E = require('../enums')
+
+const reURI = /^https:\/\/(.*)\/@(.*)\/?/
+
+const processURI = (uri) => {
+  const match = uri.match(reURI)
+
+  return {
+    serviceprovider: {
+      type: 'web',
+      name: 'mastodon'
+    },
+    match: {
+      regularExpression: reURI,
+      isAmbiguous: true
+    },
+    profile: {
+      display: `@${match[2]}@${match[1]}`,
+      uri: uri,
+      qr: null
+    },
+    proof: {
+      uri: uri,
+      request: {
+        fetcher: E.Fetcher.HTTP,
+        access: E.ProofAccess.GENERIC,
+        format: E.ProofFormat.JSON,
+        data: {
+          url: uri,
+          format: E.ProofFormat.JSON
+        }
+      }
+    },
+    claim: {
+      format: E.ClaimFormat.FINGERPRINT,
+      relation: E.ClaimRelation.CONTAINS,
+      path: ['attachment', 'value']
+    }
+  }
+}
+
+const tests = [
+  {
+    uri: 'https://domain.org/@alice',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://domain.org/@alice/',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://domain.org/alice',
+    shouldMatch: false
+  }
+]
+
+exports.reURI = reURI
+exports.processURI = processURI
+exports.tests = tests
+
+},{"../enums":164}],157:[function(require,module,exports){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const E = require('../enums')
+const queryString = require('query-string')
+
+const reURI = /^matrix:u\/(?:@)?([^@:]*:[^?]*)(\?.*)?/
+
+const processURI = (uri) => {
+  const match = uri.match(reURI)
+
+  if (!match[2]) {
+    return null
+  }
+
+  const params = queryString.parse(match[2])
+
+  if (!('org.keyoxide.e' in params && 'org.keyoxide.r' in params)) {
+    return null
+  }
+
+  const profileUrl = `https://matrix.to/#/@${match[1]}`
+  const eventUrl = `https://matrix.to/#/${params['org.keyoxide.r']}/${params['org.keyoxide.e']}`
+
+  return {
+    serviceprovider: {
+      type: 'communication',
+      name: 'matrix'
+    },
+    match: {
+      regularExpression: reURI,
+      isAmbiguous: false
+    },
+    profile: {
+      display: `@${match[1]}`,
+      uri: profileUrl,
+      qr: null
+    },
+    proof: {
+      uri: eventUrl,
+      request: {
+        fetcher: E.Fetcher.MATRIX,
+        access: E.ProofAccess.GRANTED,
+        format: E.ProofFormat.JSON,
+        data: {
+          eventId: params['org.keyoxide.e'],
+          roomId: params['org.keyoxide.r']
+        }
+      }
+    },
+    claim: {
+      format: E.ClaimFormat.MESSAGE,
+      relation: E.ClaimRelation.CONTAINS,
+      path: ['content', 'body']
+    }
+  }
+}
+
+const tests = [
+  {
+    uri:
+      'matrix:u/alice:matrix.domain.org?org.keyoxide.r=!123:domain.org&org.keyoxide.e=$123',
+    shouldMatch: true
+  },
+  {
+    uri: 'matrix:u/alice:matrix.domain.org',
+    shouldMatch: true
+  },
+  {
+    uri: 'xmpp:alice@domain.org',
+    shouldMatch: false
+  },
+  {
+    uri: 'https://domain.org/@alice',
+    shouldMatch: false
+  }
+]
+
+exports.reURI = reURI
+exports.processURI = processURI
+exports.tests = tests
+
+},{"../enums":164,"query-string":37}],158:[function(require,module,exports){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const E = require('../enums')
+
+const reURI = /^https:\/\/(.*)/
+
+const processURI = (uri) => {
+  const match = uri.match(reURI)
+
+  return {
+    serviceprovider: {
+      type: 'web',
+      name: 'owncast'
+    },
+    match: {
+      regularExpression: reURI,
+      isAmbiguous: true
+    },
+    profile: {
+      display: match[1],
+      uri: uri,
+      qr: null
+    },
+    proof: {
+      uri: `${uri}/api/config`,
+      request: {
+        fetcher: E.Fetcher.HTTP,
+        access: E.ProofAccess.GENERIC,
+        format: E.ProofFormat.JSON,
+        data: {
+          url: `${uri}/api/config`,
+          format: E.ProofFormat.JSON
+        }
+      }
+    },
+    claim: {
+      format: E.ClaimFormat.FINGERPRINT,
+      relation: E.ClaimRelation.CONTAINS,
+      path: ['socialHandles', 'url']
+    }
+  }
+}
+
+const tests = [
+  {
+    uri: 'https://live.domain.org',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://live.domain.org/',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://domain.org/live',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://domain.org/live/',
+    shouldMatch: true
+  }
+]
+
+exports.reURI = reURI
+exports.processURI = processURI
+exports.tests = tests
+
+},{"../enums":164}],159:[function(require,module,exports){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const E = require('../enums')
+
+const reURI = /^https:\/\/(.*)\/users\/(.*)\/?/
+
+const processURI = (uri) => {
+  const match = uri.match(reURI)
+
+  return {
+    serviceprovider: {
+      type: 'web',
+      name: 'pleroma'
+    },
+    match: {
+      regularExpression: reURI,
+      isAmbiguous: true
+    },
+    profile: {
+      display: `@${match[2]}@${match[1]}`,
+      uri: uri,
+      qr: null
+    },
+    proof: {
+      uri: uri,
+      request: {
+        fetcher: E.Fetcher.HTTP,
+        access: E.ProofAccess.GENERIC,
+        format: E.ProofFormat.JSON,
+        data: {
+          url: uri,
+          format: E.ProofFormat.JSON
+        }
+      }
+    },
+    claim: {
+      format: E.ClaimFormat.FINGERPRINT,
+      relation: E.ClaimRelation.CONTAINS,
+      path: ['summary']
+    }
+  }
+}
+
+const tests = [
+  {
+    uri: 'https://domain.org/users/alice',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://domain.org/users/alice/',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://domain.org/alice',
+    shouldMatch: false
+  }
+]
+
+exports.reURI = reURI
+exports.processURI = processURI
+exports.tests = tests
+
+},{"../enums":164}],160:[function(require,module,exports){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const E = require('../enums')
+
+const reURI = /^https:\/\/(?:www\.)?reddit\.com\/user\/(.*)\/comments\/(.*)\/(.*)\/?/
+
+const processURI = (uri) => {
+  const match = uri.match(reURI)
+
+  return {
+    serviceprovider: {
+      type: 'web',
+      name: 'reddit'
+    },
+    match: {
+      regularExpression: reURI,
+      isAmbiguous: false
+    },
+    profile: {
+      display: match[1],
+      uri: `https://www.reddit.com/user/${match[1]}`,
+      qr: null
+    },
+    proof: {
+      uri: uri,
+      request: {
+        fetcher: E.Fetcher.HTTP,
+        access: E.ProofAccess.NOCORS,
+        format: E.ProofFormat.JSON,
+        data: {
+          url: `https://www.reddit.com/user/${match[1]}/comments/${match[2]}.json`,
+          format: E.ProofFormat.JSON
+        }
+      }
+    },
+    claim: {
+      format: E.ClaimFormat.MESSAGE,
+      relation: E.ClaimRelation.CONTAINS,
+      path: ['data', 'children', 'data', 'selftext']
+    }
+  }
+}
+
+const tests = [
+  {
+    uri: 'https://www.reddit.com/user/Alice/comments/123456/post',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://www.reddit.com/user/Alice/comments/123456/post/',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://reddit.com/user/Alice/comments/123456/post',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://reddit.com/user/Alice/comments/123456/post/',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://domain.org/user/Alice/comments/123456/post',
+    shouldMatch: false
+  }
+]
+
+exports.reURI = reURI
+exports.processURI = processURI
+exports.tests = tests
+
+},{"../enums":164}],161:[function(require,module,exports){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const E = require('../enums')
+
+const reURI = /^https:\/\/twitter\.com\/(.*)\/status\/([0-9]*)(?:\?.*)?/
+
+const processURI = (uri) => {
+  const match = uri.match(reURI)
+
+  return {
+    serviceprovider: {
+      type: 'web',
+      name: 'twitter'
+    },
+    match: {
+      regularExpression: reURI,
+      isAmbiguous: false
+    },
+    profile: {
+      display: `@${match[1]}`,
+      uri: `https://twitter.com/${match[1]}`,
+      qr: null
+    },
+    proof: {
+      uri: uri,
+      request: {
+        fetcher: E.Fetcher.TWITTER,
+        access: E.ProofAccess.GRANTED,
+        format: E.ProofFormat.TEXT,
+        data: {
+          tweetId: match[2]
+        }
+      }
+    },
+    claim: {
+      format: E.ClaimFormat.MESSAGE,
+      relation: E.ClaimRelation.CONTAINS,
+      path: []
+    }
+  }
+}
+
+const tests = [
+  {
+    uri: 'https://twitter.com/alice/status/1234567890123456789',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://twitter.com/alice/status/1234567890123456789/',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://domain.org/alice/status/1234567890123456789',
+    shouldMatch: false
+  }
+]
+
+exports.reURI = reURI
+exports.processURI = processURI
+exports.tests = tests
+
+},{"../enums":164}],162:[function(require,module,exports){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const E = require('../enums')
+
+const reURI = /^xmpp:([a-zA-Z0-9.\-_]*)@([a-zA-Z0-9.\-_]*)(?:\?(.*))?/
+
+const processURI = (uri) => {
+  const match = uri.match(reURI)
+
+  return {
+    serviceprovider: {
+      type: 'communication',
+      name: 'xmpp'
+    },
+    match: {
+      regularExpression: reURI,
+      isAmbiguous: false
+    },
+    profile: {
+      display: `${match[1]}@${match[2]}`,
+      uri: uri,
+      qr: uri
+    },
+    proof: {
+      uri: null,
+      request: {
+        fetcher: E.Fetcher.XMPP,
+        access: E.ProofAccess.SERVER,
+        format: E.ProofFormat.TEXT,
+        data: {
+          id: `${match[1]}@${match[2]}`,
+          field: 'note'
+        }
+      }
+    },
+    claim: {
+      format: E.ClaimFormat.MESSAGE,
+      relation: E.ClaimRelation.CONTAINS,
+      path: []
+    }
+  }
+}
+
+const tests = [
+  {
+    uri: 'xmpp:alice@domain.org',
+    shouldMatch: true
+  },
+  {
+    uri: 'xmpp:alice@domain.org?omemo-sid-123456789=A1B2C3D4E5F6G7H8I9',
+    shouldMatch: true
+  },
+  {
+    uri: 'https://domain.org',
+    shouldMatch: false
+  }
+]
+
+exports.reURI = reURI
+exports.processURI = processURI
+exports.tests = tests
+
+},{"../enums":164}],163:[function(require,module,exports){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const E = require('./enums')
+
+/**
+ * Contains default values
+ * @module defaults
+ */
+
+/**
+ * The default options used throughout the library
+ * @constant {object}
+ * @property {object} proxy                           - Options related to the proxy
+ * @property {string|null} proxy.hostname             - The hostname of the proxy
+ * @property {string} proxy.policy                    - The policy that defines when to use a proxy ({@link module:enums~ProxyPolicy|here})
+ * @property {object} claims                          - Options related to claim verification
+ * @property {object} claims.irc                      - Options related to the verification of IRC claims
+ * @property {string|null} claims.irc.nick            - The nick that the library uses to connect to the IRC server
+ * @property {object} claims.matrix                   - Options related to the verification of Matrix claims
+ * @property {string|null} claims.matrix.instance     - The server hostname on which the library can log in
+ * @property {string|null} claims.matrix.accessToken  - The access token required to identify the library ({@link https://www.matrix.org/docs/guides/client-server-api|Matrix docs})
+ * @property {object} claims.xmpp                     - Options related to the verification of XMPP claims
+ * @property {string|null} claims.xmpp.service        - The server hostname on which the library can log in
+ * @property {string|null} claims.xmpp.username       - The username used to log in
+ * @property {string|null} claims.xmpp.password       - The password used to log in
+ * @property {object} claims.twitter                  - Options related to the verification of Twitter claims
+ * @property {string|null} claims.twitter.bearerToken - The Twitter API's bearer token ({@link https://developer.twitter.com/en/docs/authentication/oauth-2-0/bearer-tokens|Twitter docs})
+ */
+const opts = {
+  proxy: {
+    hostname: null,
+    policy: E.ProxyPolicy.NEVER
+  },
+  claims: {
+    irc: {
+      nick: null
+    },
+    matrix: {
+      instance: null,
+      accessToken: null
+    },
+    xmpp: {
+      service: null,
+      username: null,
+      password: null
+    },
+    twitter: {
+      bearerToken: null
+    }
+  }
+}
+
+exports.opts = opts
+
+},{"./enums":164}],164:[function(require,module,exports){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+/**
+ * Contains enums
+ * @module enums
+ */
+
+/**
+ * The proxy policy that decides how to fetch a proof
+ * @readonly
+ * @enum {string}
+ */
+const ProxyPolicy = {
+  /** Proxy usage decision depends on environment and service provider */
+  ADAPTIVE: 'adaptive',
+  /** Always use a proxy */
+  ALWAYS: 'always',
+  /** Never use a proxy, skip a verification if a proxy is inevitable */
+  NEVER: 'never'
+}
+Object.freeze(ProxyPolicy)
+
+/**
+ * Methods for fetching proofs
+ * @readonly
+ * @enum {string}
+ */
+const Fetcher = {
+  /** Basic HTTP requests */
+  HTTP: 'http',
+  /** DNS module from Node.js */
+  DNS: 'dns',
+  /** IRC module from Node.js */
+  IRC: 'irc',
+  /** XMPP module from Node.js */
+  XMPP: 'xmpp',
+  /** HTTP request to Matrix API */
+  MATRIX: 'matrix',
+  /** HTTP request to Gitlab API */
+  GITLAB: 'gitlab',
+  /** HTTP request to Twitter API */
+  TWITTER: 'twitter'
+}
+Object.freeze(Fetcher)
+
+/**
+ * Levels of access restriction for proof fetching
+ * @readonly
+ * @enum {number}
+ */
+const ProofAccess = {
+  /** Any HTTP request will work */
+  GENERIC: 0,
+  /** CORS requests are denied */
+  NOCORS: 1,
+  /** HTTP requests must contain API or access tokens */
+  GRANTED: 2,
+  /** Not accessible by HTTP request, needs server software */
+  SERVER: 3
+}
+Object.freeze(ProofAccess)
+
+/**
+ * Format of proof
+ * @readonly
+ * @enum {string}
+ */
+const ProofFormat = {
+  /** JSON format */
+  JSON: 'json',
+  /** Plaintext format */
+  TEXT: 'text'
+}
+Object.freeze(ProofFormat)
+
+/**
+ * Format of claim
+ * @readonly
+ * @enum {number}
+ */
+const ClaimFormat = {
+  /** `openpgp4fpr:123123123` */
+  URI: 0,
+  /** `123123123` */
+  FINGERPRINT: 1,
+  /** `[Verifying my OpenPGP key: openpgp4fpr:123123123]` */
+  MESSAGE: 2
+}
+Object.freeze(ClaimFormat)
+
+/**
+ * How to find the claim inside the proof's JSON data
+ * @readonly
+ * @enum {number}
+ */
+const ClaimRelation = {
+  /** Claim is somewhere in the JSON field's textual content */
+  CONTAINS: 0,
+  /** Claim is equal to the JSON field's textual content */
+  EQUALS: 1,
+  /** Claim is equal to an element of the JSON field's array of strings */
+  ONEOF: 2
+}
+Object.freeze(ClaimRelation)
+
+/**
+ * Status of the Claim instance
+ * @readonly
+ * @enum {string}
+ */
+const ClaimStatus = {
+  /** Claim has been initialized */
+  INIT: 'init',
+  /** Claim has matched its URI to candidate claim definitions */
+  MATCHED: 'matched',
+  /** Claim has verified one or multiple candidate claim definitions */
+  VERIFIED: 'verified'
+}
+Object.freeze(ClaimStatus)
+
+exports.ProxyPolicy = ProxyPolicy
+exports.Fetcher = Fetcher
+exports.ProofAccess = ProofAccess
+exports.ProofFormat = ProofFormat
+exports.ClaimFormat = ClaimFormat
+exports.ClaimRelation = ClaimRelation
+exports.ClaimStatus = ClaimStatus
+
+},{}],165:[function(require,module,exports){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const jsEnv = require('browser-or-node')
+
+/**
+ * @module fetcher/dns
+ */
+
+/**
+ * The request's timeout value in milliseconds
+ * @constant {number} timeout
+ */
+module.exports.timeout = 5000
+
+if (jsEnv.isNode) {
+  const dns = require('dns')
+
+  /**
+   * Execute a fetch request
+   * @function
+   * @async
+   * @param {object} data         - Data used in the request
+   * @param {string} data.domain  - The targeted domain
+   * @returns {object}
+   */
+  module.exports.fn = async (data, opts) => {
+    let timeoutHandle
+    const timeoutPromise = new Promise((resolve, reject) => {
+      timeoutHandle = setTimeout(
+        () => reject(new Error('Request was timed out')),
+        data.fetcherTimeout ? data.fetcherTimeout : module.exports.timeout
+      )
+    })
+
+    const fetchPromise = new Promise((resolve, reject) => {
+      dns.resolveTxt(data.domain, (err, records) => {
+        if (err) {
+          reject(err)
+          return
+        }
+
+        resolve({
+          domain: data.domain,
+          records: {
+            txt: records
+          }
+        })
+      })
+    })
+
+    return Promise.race([fetchPromise, timeoutPromise]).then((result) => {
+      clearTimeout(timeoutHandle)
+      return result
+    })
+  }
+} else {
+  module.exports.fn = null
+}
+
+},{"browser-or-node":30,"dns":31}],166:[function(require,module,exports){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const axios = require('axios')
+
+/**
+ * @module fetcher/gitlab
+ */
+
+/**
+ * The request's timeout value in milliseconds
+ * @constant {number} timeout
+ */
+module.exports.timeout = 5000
+
+/**
+ * Execute a fetch request
+ * @function
+ * @async
+ * @param {object} data           - Data used in the request
+ * @param {string} data.username  - The username of the targeted account
+ * @param {string} data.domain    - The domain on which the targeted account is registered
+ * @returns {object}
+ */
+module.exports.fn = async (data, opts) => {
+  let timeoutHandle
+  const timeoutPromise = new Promise((resolve, reject) => {
+    timeoutHandle = setTimeout(
+      () => reject(new Error('Request was timed out')),
+      data.fetcherTimeout ? data.fetcherTimeout : module.exports.timeout
+    )
+  })
+
+  const fetchPromise = new Promise((resolve, reject) => {
+    const urlUser = `https://${data.domain}/api/v4/users?username=${data.username}`
+    // const resUser = await req(urlUser, null, { Accept: 'application/json' })
+    const res = axios.get(urlUser,
+      {
+        headers: { Accept: 'application/json' }
+      })
+      .then(resUser => {
+        return resUser.data
+      })
+      .then(jsonUser => {
+        return jsonUser.find((user) => user.username === data.username)
+      })
+      .then(user => {
+        if (!user) {
+          throw new Error(`No user with username ${data.username}`)
+        }
+        return user
+      })
+      .then(user => {
+        const urlProject = `https://${data.domain}/api/v4/users/${user.id}/projects`
+        return axios.get(urlProject,
+          {
+            headers: { Accept: 'application/json' }
+          })
+      })
+      .then(resProject => {
+        return resProject.data
+      })
+      .then(jsonProject => {
+        return jsonProject.find((proj) => proj.path === 'gitlab_proof')
+      })
+      .then(project => {
+        if (!project) {
+          throw new Error('No project found')
+        }
+        return project
+      })
+      .catch(error => {
+        reject(error)
+      })
+
+    resolve(res)
+  })
+
+  return Promise.race([fetchPromise, timeoutPromise]).then((result) => {
+    clearTimeout(timeoutHandle)
+    return result
+  })
+}
+
+},{"axios":1}],167:[function(require,module,exports){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const axios = require('axios')
+const E = require('../enums')
+
+/**
+ * @module fetcher/http
+ */
+
+/**
+ * The request's timeout value in milliseconds
+ * @constant {number} timeout
+ */
+module.exports.timeout = 5000
+
+/**
+ * Execute a fetch request
+ * @function
+ * @async
+ * @param {object} data         - Data used in the request
+ * @param {string} data.url     - The URL pointing at targeted content
+ * @param {string} data.format  - The format of the targeted content
+ * @returns {object|string}
+ */
+module.exports.fn = async (data, opts) => {
+  let timeoutHandle
+  const timeoutPromise = new Promise((resolve, reject) => {
+    timeoutHandle = setTimeout(
+      () => reject(new Error('Request was timed out')),
+      data.fetcherTimeout ? data.fetcherTimeout : module.exports.timeout
+    )
+  })
+
+  const fetchPromise = new Promise((resolve, reject) => {
+    if (!data.url) {
+      reject(new Error('No valid URI provided'))
+      return
+    }
+
+    switch (data.format) {
+      case E.ProofFormat.JSON:
+        axios.get(data.url, {
+          headers: {
+            Accept: 'application/json',
+            'User-Agent': `doipjs/${require('../../package.json').version}`
+          },
+          validateStatus: function (status) {
+            return status >= 200 && status < 400
+          }
+        })
+          .then(res => {
+            resolve(res.data)
+          })
+          .catch(e => {
+            reject(e)
+          })
+        break
+      case E.ProofFormat.TEXT:
+        axios.get(data.url, {
+          validateStatus: function (status) {
+            return status >= 200 && status < 400
+          },
+          responseType: 'text'
+        })
+          .then(res => {
+            resolve(res.data)
+          })
+          .catch(e => {
+            reject(e)
+          })
+        break
+      default:
+        reject(new Error('No specified data format'))
+        break
+    }
+  })
+
+  return Promise.race([fetchPromise, timeoutPromise]).then((result) => {
+    clearTimeout(timeoutHandle)
+    return result
+  })
+}
+
+},{"../../package.json":142,"../enums":164,"axios":1}],168:[function(require,module,exports){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+exports.dns = require('./dns')
+exports.gitlab = require('./gitlab')
+exports.http = require('./http')
+exports.irc = require('./irc')
+exports.matrix = require('./matrix')
+exports.twitter = require('./twitter')
+exports.xmpp = require('./xmpp')
+
+},{"./dns":165,"./gitlab":166,"./http":167,"./irc":169,"./matrix":170,"./twitter":171,"./xmpp":172}],169:[function(require,module,exports){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const jsEnv = require('browser-or-node')
+
+/**
+ * @module fetcher/irc
+ */
+
+/**
+ * The request's timeout value in milliseconds
+ * @constant {number} timeout
+ */
+module.exports.timeout = 20000
+
+if (jsEnv.isNode) {
+  const irc = require('irc-upd')
+  const validator = require('validator')
+
+  /**
+   * Execute a fetch request
+   * @function
+   * @async
+   * @param {object} data                 - Data used in the request
+   * @param {string} data.nick            - The nick of the targeted account
+   * @param {string} data.domain          - The domain on which the targeted account is registered
+   * @param {object} opts                 - Options used to enable the request
+   * @param {string} opts.claims.irc.nick - The nick to be used by the library to log in
+   * @returns {object}
+   */
+  module.exports.fn = async (data, opts) => {
+    let timeoutHandle
+    const timeoutPromise = new Promise((resolve, reject) => {
+      timeoutHandle = setTimeout(
+        () => reject(new Error('Request was timed out')),
+        data.fetcherTimeout ? data.fetcherTimeout : module.exports.timeout
+      )
+    })
+
+    const fetchPromise = new Promise((resolve, reject) => {
+      try {
+        validator.isAscii(opts.claims.irc.nick)
+      } catch (err) {
+        throw new Error(`IRC fetcher was not set up properly (${err.message})`)
+      }
+
+      try {
+        const client = new irc.Client(data.domain, opts.claims.irc.nick, {
+          port: 6697,
+          secure: true,
+          channels: [],
+          showErrors: false,
+          debug: false
+        })
+        const reKey = /[a-zA-Z0-9\-_]+\s+:\s(openpgp4fpr:.*)/
+        const reEnd = /End\sof\s.*\staxonomy./
+        const keys = []
+
+        client.addListener('registered', (message) => {
+          client.send(`PRIVMSG NickServ TAXONOMY ${data.nick}`)
+        })
+        client.addListener('notice', (nick, to, text, message) => {
+          if (reKey.test(text)) {
+            const match = text.match(reKey)
+            keys.push(match[1])
+          }
+          if (reEnd.test(text)) {
+            client.disconnect()
+            resolve(keys)
+          }
+        })
+      } catch (error) {
+        reject(error)
+      }
+    })
+
+    return Promise.race([fetchPromise, timeoutPromise]).then((result) => {
+      clearTimeout(timeoutHandle)
+      return result
+    })
+  }
+} else {
+  module.exports.fn = null
+}
+
+},{"browser-or-node":30,"irc-upd":"irc-upd","validator":41}],170:[function(require,module,exports){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const axios = require('axios')
+const validator = require('validator')
+
+/**
+ * @module fetcher/matrix
+ */
+
+/**
+ * The request's timeout value in milliseconds
+ * @constant {number} timeout
+ */
+module.exports.timeout = 5000
+
+/**
+ * Execute a fetch request
+ * @function
+ * @async
+ * @param {object} data                           - Data used in the request
+ * @param {string} data.eventId                   - The identifier of the targeted post
+ * @param {string} data.roomId                    - The identifier of the room containing the targeted post
+ * @param {object} opts                           - Options used to enable the request
+ * @param {string} opts.claims.matrix.instance    - The server hostname on which the library can log in
+ * @param {string} opts.claims.matrix.accessToken - The access token required to identify the library ({@link https://www.matrix.org/docs/guides/client-server-api|Matrix docs})
+ * @returns {object}
+ */
+module.exports.fn = async (data, opts) => {
+  let timeoutHandle
+  const timeoutPromise = new Promise((resolve, reject) => {
+    timeoutHandle = setTimeout(
+      () => reject(new Error('Request was timed out')),
+      data.fetcherTimeout ? data.fetcherTimeout : module.exports.timeout
+    )
+  })
+
+  const fetchPromise = new Promise((resolve, reject) => {
+    try {
+      validator.isFQDN(opts.claims.matrix.instance)
+      validator.isAscii(opts.claims.matrix.accessToken)
+    } catch (err) {
+      throw new Error(`Matrix fetcher was not set up properly (${err.message})`)
+    }
+
+    const url = `https://${opts.claims.matrix.instance}/_matrix/client/r0/rooms/${data.roomId}/event/${data.eventId}?access_token=${opts.claims.matrix.accessToken}`
+    axios.get(url,
+      {
+        headers: { Accept: 'application/json' }
+      })
+      .then(res => {
+        return res.data
+      })
+      .then((res) => {
+        resolve(res)
+      })
+      .catch((error) => {
+        reject(error)
+      })
+  })
+
+  return Promise.race([fetchPromise, timeoutPromise]).then((result) => {
+    clearTimeout(timeoutHandle)
+    return result
+  })
+}
+
+},{"axios":1,"validator":41}],171:[function(require,module,exports){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const axios = require('axios')
+const validator = require('validator')
+
+/**
+ * @module fetcher/twitter
+ */
+
+/**
+ * The request's timeout value in milliseconds
+ * @constant {number} timeout
+ */
+module.exports.timeout = 5000
+
+/**
+ * Execute a fetch request
+ * @function
+ * @async
+ * @param {object} data                             - Data used in the request
+ * @param {number|string} data.tweetId              - Identifier of the tweet
+ * @param {object} opts                             - Options used to enable the request
+ * @param {string} opts.claims.twitter.bearerToken  - The Twitter API's bearer token
+ * @returns {object}
+ */
+module.exports.fn = async (data, opts) => {
+  let timeoutHandle
+  const timeoutPromise = new Promise((resolve, reject) => {
+    timeoutHandle = setTimeout(
+      () => reject(new Error('Request was timed out')),
+      data.fetcherTimeout ? data.fetcherTimeout : module.exports.timeout
+    )
+  })
+
+  const fetchPromise = new Promise((resolve, reject) => {
+    try {
+      validator.isAscii(opts.claims.twitter.bearerToken)
+    } catch (err) {
+      throw new Error(
+        `Twitter fetcher was not set up properly (${err.message})`
+      )
+    }
+
+    axios.get(
+      `https://api.twitter.com/1.1/statuses/show.json?id=${data.tweetId}&tweet_mode=extended`,
+      {
+        headers: {
+          Accept: 'application/json',
+          Authorization: `Bearer ${opts.claims.twitter.bearerToken}`
+        }
+      }
+    )
+      .then(data => {
+        return data.data
+      })
+      .then((data) => {
+        resolve(data.full_text)
+      })
+      .catch((error) => {
+        reject(error)
+      })
+  })
+
+  return Promise.race([fetchPromise, timeoutPromise]).then((result) => {
+    clearTimeout(timeoutHandle)
+    return result
+  })
+}
+
+},{"axios":1,"validator":41}],172:[function(require,module,exports){
+(function (process){(function (){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const jsEnv = require('browser-or-node')
+
+/**
+ * @module fetcher/xmpp
+ */
+
+/**
+ * The request's timeout value in milliseconds
+ * @constant {number} timeout
+ */
+module.exports.timeout = 5000
+
+if (jsEnv.isNode) {
+  const jsdom = require('jsdom')
+  const { client, xml } = require('@xmpp/client')
+  const debug = require('@xmpp/debug')
+  const validator = require('validator')
+
+  let xmpp = null
+  let iqCaller = null
+
+  const xmppStart = async (service, username, password) => {
+    return new Promise((resolve, reject) => {
+      const xmpp = client({
+        service: service,
+        username: username,
+        password: password
+      })
+      if (process.env.NODE_ENV !== 'production') {
+        debug(xmpp, true)
+      }
+      const { iqCaller } = xmpp
+      xmpp.start()
+      xmpp.on('online', (address) => {
+        resolve({ xmpp: xmpp, iqCaller: iqCaller })
+      })
+      xmpp.on('error', (error) => {
+        reject(error)
+      })
+    })
+  }
+
+  /**
+   * Execute a fetch request
+   * @function
+   * @async
+   * @param {object} data                       - Data used in the request
+   * @param {string} data.id                    - The identifier of the targeted account
+   * @param {string} data.field                 - The vCard field to return (should be "note")
+   * @param {object} opts                       - Options used to enable the request
+   * @param {string} opts.claims.xmpp.service   - The server hostname on which the library can log in
+   * @param {string} opts.claims.xmpp.username  - The username used to log in
+   * @param {string} opts.claims.xmpp.password  - The password used to log in
+   * @returns {object}
+   */
+  module.exports.fn = async (data, opts) => {
+    try {
+      validator.isFQDN(opts.claims.xmpp.service)
+      validator.isAscii(opts.claims.xmpp.username)
+      validator.isAscii(opts.claims.xmpp.password)
+    } catch (err) {
+      throw new Error(`XMPP fetcher was not set up properly (${err.message})`)
+    }
+
+    if (!xmpp || xmpp.status !== 'online') {
+      const xmppStartRes = await xmppStart(
+        opts.claims.xmpp.service,
+        opts.claims.xmpp.username,
+        opts.claims.xmpp.password
+      )
+      xmpp = xmppStartRes.xmpp
+      iqCaller = xmppStartRes.iqCaller
+    }
+
+    const response = await iqCaller.request(
+      xml('iq', { type: 'get', to: data.id }, xml('vCard', 'vcard-temp')),
+      30 * 1000
+    )
+
+    const vcardRow = response.getChild('vCard', 'vcard-temp').toString()
+    const dom = new jsdom.JSDOM(vcardRow)
+
+    let timeoutHandle
+    const timeoutPromise = new Promise((resolve, reject) => {
+      timeoutHandle = setTimeout(
+        () => reject(new Error('Request was timed out')),
+        data.fetcherTimeout ? data.fetcherTimeout : module.exports.timeout
+      )
+    })
+
+    const fetchPromise = new Promise((resolve, reject) => {
+      try {
+        let vcard
+
+        switch (data.field.toLowerCase()) {
+          case 'desc':
+          case 'note':
+            vcard = dom.window.document.querySelector('note text')
+            if (!vcard) {
+              vcard = dom.window.document.querySelector('DESC')
+            }
+            if (vcard) {
+              vcard = vcard.textContent
+            } else {
+              throw new Error('No DESC or NOTE field found in vCard')
+            }
+            break
+
+          default:
+            vcard = dom.window.document.querySelector(data).textContent
+            break
+        }
+        xmpp.stop()
+        resolve(vcard)
+      } catch (error) {
+        reject(error)
+      }
+    })
+
+    return Promise.race([fetchPromise, timeoutPromise]).then((result) => {
+      clearTimeout(timeoutHandle)
+      return result
+    })
+  }
+} else {
+  module.exports.fn = null
+}
+
+}).call(this)}).call(this,require('_process'))
+},{"@xmpp/client":"@xmpp/client","@xmpp/debug":"@xmpp/debug","_process":36,"browser-or-node":30,"jsdom":"jsdom","validator":41}],173:[function(require,module,exports){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const Claim = require('./claim')
+const claimDefinitions = require('./claimDefinitions')
+const proofs = require('./proofs')
+const keys = require('./keys')
+const signatures = require('./signatures')
+const enums = require('./enums')
+const defaults = require('./defaults')
+const utils = require('./utils')
+
+exports.Claim = Claim
+exports.claimDefinitions = claimDefinitions
+exports.proofs = proofs
+exports.keys = keys
+exports.signatures = signatures
+exports.enums = enums
+exports.defaults = defaults
+exports.utils = utils
+
+},{"./claim":143,"./claimDefinitions":151,"./defaults":163,"./enums":164,"./keys":174,"./proofs":175,"./signatures":176,"./utils":177}],174:[function(require,module,exports){
 (function (global){(function (){
-!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).doip=e()}}((function(){return function e(t,r,i){function o(s,a){if(!r[s]){if(!t[s]){var u="function"==typeof require&&require;if(!a&&u)return u(s,!0);if(n)return n(s,!0);var l=new Error("Cannot find module '"+s+"'");throw l.code="MODULE_NOT_FOUND",l}var c=r[s]={exports:{}};t[s][0].call(c.exports,(function(e){return o(t[s][1][e]||e)}),c,c.exports,e,t,r,i)}return r[s].exports}for(var n="function"==typeof require&&require,s=0;s<i.length;s++)o(i[s]);return o}({1:[function(e,t,r){(function(i){(function(){!function(e){"object"==typeof r&&void 0!==t?t.exports=e():("undefined"!=typeof window?window:void 0!==i?i:"undefined"!=typeof self?self:this).doip=e()}((function(){return function t(r,i,o){function n(a,u){if(!i[a]){if(!r[a]){var l="function"==typeof e&&e;if(!u&&l)return l(a,!0);if(s)return s(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var d=i[a]={exports:{}};r[a][0].call(d.exports,(function(e){return n(r[a][1][e]||e)}),d,d.exports,t,r,i,o)}return i[a].exports}for(var s="function"==typeof e&&e,a=0;a<o.length;a++)n(o[a]);return n}({1:[function(e,t,r){(function(i){(function(){!function(e){"object"==typeof r&&void 0!==t?t.exports=e():("undefined"!=typeof window?window:void 0!==i?i:"undefined"!=typeof self?self:this).doip=e()}((function(){return function t(r,i,o){function n(a,u){if(!i[a]){if(!r[a]){var l="function"==typeof e&&e;if(!u&&l)return l(a,!0);if(s)return s(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var d=i[a]={exports:{}};r[a][0].call(d.exports,(function(e){return n(r[a][1][e]||e)}),d,d.exports,t,r,i,o)}return i[a].exports}for(var s="function"==typeof e&&e,a=0;a<o.length;a++)n(o[a]);return n}({1:[function(e,t,r){(function(i){(function(){!function(e){"object"==typeof r&&void 0!==t?t.exports=e():("undefined"!=typeof window?window:void 0!==i?i:"undefined"!=typeof self?self:this).doip=e()}((function(){return function t(r,i,o){function n(a,u){if(!i[a]){if(!r[a]){var l="function"==typeof e&&e;if(!u&&l)return l(a,!0);if(s)return s(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var d=i[a]={exports:{}};r[a][0].call(d.exports,(function(e){return n(r[a][1][e]||e)}),d,d.exports,t,r,i,o)}return i[a].exports}for(var s="function"==typeof e&&e,a=0;a<o.length;a++)n(o[a]);return n}({1:[function(e,t,r){(function(i){(function(){!function(e){"object"==typeof r&&void 0!==t?t.exports=e():("undefined"!=typeof window?window:void 0!==i?i:"undefined"!=typeof self?self:this).doip=e()}((function(){return function t(r,i,o){function n(a,u){if(!i[a]){if(!r[a]){var l="function"==typeof e&&e;if(!u&&l)return l(a,!0);if(s)return s(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var d=i[a]={exports:{}};r[a][0].call(d.exports,(function(e){return n(r[a][1][e]||e)}),d,d.exports,t,r,i,o)}return i[a].exports}for(var s="function"==typeof e&&e,a=0;a<o.length;a++)n(o[a]);return n}({1:[function(e,t,r){(function(i){(function(){!function(e){"object"==typeof r&&void 0!==t?t.exports=e():("undefined"!=typeof window?window:void 0!==i?i:"undefined"!=typeof self?self:this).doip=e()}((function(){return function t(r,i,o){function n(a,u){if(!i[a]){if(!r[a]){var l="function"==typeof e&&e;if(!u&&l)return l(a,!0);if(s)return s(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var d=i[a]={exports:{}};r[a][0].call(d.exports,(function(e){return n(r[a][1][e]||e)}),d,d.exports,t,r,i,o)}return i[a].exports}for(var s="function"==typeof e&&e,a=0;a<o.length;a++)n(o[a]);return n}({1:[function(e,t,r){(function(i){(function(){!function(e){"object"==typeof r&&void 0!==t?t.exports=e():("undefined"!=typeof window?window:void 0!==i?i:"undefined"!=typeof self?self:this).doip=e()}((function(){return function t(r,i,o){function n(a,u){if(!i[a]){if(!r[a]){var l="function"==typeof e&&e;if(!u&&l)return l(a,!0);if(s)return s(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var d=i[a]={exports:{}};r[a][0].call(d.exports,(function(e){return n(r[a][1][e]||e)}),d,d.exports,t,r,i,o)}return i[a].exports}for(var s="function"==typeof e&&e,a=0;a<o.length;a++)n(o[a]);return n}({1:[function(e,t,r){(function(i){(function(){!function(e){"object"==typeof r&&void 0!==t?t.exports=e():("undefined"!=typeof window?window:void 0!==i?i:"undefined"!=typeof self?self:this).doip=e()}((function(){return function t(r,i,o){function n(a,u){if(!i[a]){if(!r[a]){var l="function"==typeof e&&e;if(!u&&l)return l(a,!0);if(s)return s(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var d=i[a]={exports:{}};r[a][0].call(d.exports,(function(e){return n(r[a][1][e]||e)}),d,d.exports,t,r,i,o)}return i[a].exports}for(var s="function"==typeof e&&e,a=0;a<o.length;a++)n(o[a]);return n}({1:[function(e,t,r){(function(i){(function(){!function(e){"object"==typeof r&&void 0!==t?t.exports=e():("undefined"!=typeof window?window:void 0!==i?i:"undefined"!=typeof self?self:this).doip=e()}((function(){return function t(r,i,o){function n(a,u){if(!i[a]){if(!r[a]){var l="function"==typeof e&&e;if(!u&&l)return l(a,!0);if(s)return s(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var d=i[a]={exports:{}};r[a][0].call(d.exports,(function(e){return n(r[a][1][e]||e)}),d,d.exports,t,r,i,o)}return i[a].exports}for(var s="function"==typeof e&&e,a=0;a<o.length;a++)n(o[a]);return n}({1:[function(e,t,r){"use strict";const i=e("./core");class o extends Error{constructor(e,...t){let r;super(...t),Error.captureStackTrace&&Error.captureStackTrace(this,o),this.name="StatusError",this.message=e.statusMessage,this.statusCode=e.status,this.res=e,this.json=e.json.bind(e),this.text=e.text.bind(e),this.arrayBuffer=e.arrayBuffer.bind(e),Object.defineProperty(this,"responseBody",{get:()=>(r||(r=this.arrayBuffer()),r)}),this.headers={};for(const[t,r]of e.headers.entries())this.headers[t.toLowerCase()]=r}}t.exports=i(((e,t,r,i,n)=>async(s,a,u={})=>{s=n+(s||"");let l=new URL(s);if(i||(i={}),l.username&&(i.Authorization="Basic "+btoa(l.username+":"+l.password),l=new URL(l.protocol+"//"+l.host+l.pathname+l.search)),"https:"!==l.protocol&&"http:"!==l.protocol)throw new Error("Unknown protocol, "+l.protocol);if(a)if(a instanceof ArrayBuffer||ArrayBuffer.isView(a)||"string"==typeof a);else{if("object"!=typeof a)throw new Error("Unknown body type.");a=JSON.stringify(a),i["Content-Type"]="application/json"}u=new Headers({...i||{},...u});const c=await fetch(l,{method:t,headers:u,body:a});if(c.statusCode=c.status,!e.has(c.status))throw new o(c);return"json"===r?c.json():"buffer"===r?c.arrayBuffer():"string"===r?c.text():c}))},{"./core":2}],2:[function(e,t,r){"use strict";const i=new Set(["json","buffer","string"]);t.exports=e=>(...t)=>{const r=new Set;let o,n,s,a="";return t.forEach((e=>{if("string"==typeof e)if(e.toUpperCase()===e){if(o)throw new Error(`Can't set method to ${e}, already set to ${o}.`);o=e}else if(e.startsWith("http:")||e.startsWith("https:"))a=e;else{if(!i.has(e))throw new Error("Unknown encoding, "+e);n=e}else if("number"==typeof e)r.add(e);else{if("object"!=typeof e)throw new Error("Unknown type: "+typeof e);if(Array.isArray(e)||e instanceof Set)e.forEach((e=>r.add(e)));else{if(s)throw new Error("Cannot set headers twice.");s=e}}})),o||(o="GET"),0===r.size&&r.add(200),e(r,o,n,s,a)}},{}],3:[function(e,t,r){(function(e){(function(){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i="undefined"!=typeof window&&void 0!==window.document,o="object"===("undefined"==typeof self?"undefined":t(self))&&self.constructor&&"DedicatedWorkerGlobalScope"===self.constructor.name,n=void 0!==e&&null!=e.versions&&null!=e.versions.node;r.isBrowser=i,r.isWebWorker=o,r.isNode=n,r.isJsDom=function(){return"undefined"!=typeof window&&"nodejs"===window.name||navigator.userAgent.includes("Node.js")||navigator.userAgent.includes("jsdom")}}).call(this)}).call(this,e("_process"))},{_process:9}],4:[function(e,t,r){},{}],5:[function(e,t,r){"use strict";var i="%[a-f0-9]{2}",o=new RegExp(i,"gi"),n=new RegExp("("+i+")+","gi");function s(e,t){try{return decodeURIComponent(e.join(""))}catch(e){}if(1===e.length)return e;t=t||1;var r=e.slice(0,t),i=e.slice(t);return Array.prototype.concat.call([],s(r),s(i))}function a(e){try{return decodeURIComponent(e)}catch(i){for(var t=e.match(o),r=1;r<t.length;r++)t=(e=s(t,r).join("")).match(o);return e}}t.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected `encodedURI` to be of type `string`, got `"+typeof e+"`");try{return e=e.replace(/\+/g," "),decodeURIComponent(e)}catch(t){return function(e){for(var t={"%FE%FF":"��","%FF%FE":"��"},r=n.exec(e);r;){try{t[r[0]]=decodeURIComponent(r[0])}catch(e){var i=a(r[0]);i!==r[0]&&(t[r[0]]=i)}r=n.exec(e)}t["%C2"]="�";for(var o=Object.keys(t),s=0;s<o.length;s++){var u=o[s];e=e.replace(new RegExp(u,"g"),t[u])}return e}(e)}}},{}],6:[function(e,t,r){"use strict";t.exports=function(e,t){for(var r={},i=Object.keys(e),o=Array.isArray(t),n=0;n<i.length;n++){var s=i[n],a=e[s];(o?-1!==t.indexOf(s):t(s,a,e))&&(r[s]=a)}return r}},{}],7:[function(e,t,r){"use strict";t.exports=e=>{if("[object Object]"!==Object.prototype.toString.call(e))return!1;const t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}},{}],8:[function(e,t,r){"use strict";const i=e("is-plain-obj"),{hasOwnProperty:o}=Object.prototype,{propertyIsEnumerable:n}=Object,s=(e,t,r)=>Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0}),a=this,u={concatArrays:!1,ignoreUndefined:!1},l=e=>{const t=[];for(const r in e)o.call(e,r)&&t.push(r);if(Object.getOwnPropertySymbols){const r=Object.getOwnPropertySymbols(e);for(const i of r)n.call(e,i)&&t.push(i)}return t};function c(e){return Array.isArray(e)?function(e){const t=e.slice(0,0);return l(e).forEach((r=>{s(t,r,c(e[r]))})),t}(e):i(e)?function(e){const t=null===Object.getPrototypeOf(e)?Object.create(null):{};return l(e).forEach((r=>{s(t,r,c(e[r]))})),t}(e):e}const d=(e,t,r,i)=>(r.forEach((r=>{void 0===t[r]&&i.ignoreUndefined||(r in e&&e[r]!==Object.getPrototypeOf(e)?s(e,r,f(e[r],t[r],i)):s(e,r,c(t[r])))})),e);function f(e,t,r){return r.concatArrays&&Array.isArray(e)&&Array.isArray(t)?((e,t,r)=>{let i=e.slice(0,0),n=0;return[e,t].forEach((t=>{const a=[];for(let r=0;r<t.length;r++)o.call(t,r)&&(a.push(String(r)),s(i,n++,t===e?t[r]:c(t[r])));i=d(i,t,l(t).filter((e=>!a.includes(e))),r)})),i})(e,t,r):i(t)&&i(e)?d(e,t,l(t),r):c(t)}t.exports=function(...e){const t=f(c(u),this!==a&&this||{},u);let r={_:{}};for(const o of e)if(void 0!==o){if(!i(o))throw new TypeError("`"+o+"` is not an Option Object");r=f(r,{_:o},t)}return r._}},{"is-plain-obj":7}],9:[function(e,t,r){var i,o,n=t.exports={};function s(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function u(e){if(i===setTimeout)return setTimeout(e,0);if((i===s||!i)&&setTimeout)return i=setTimeout,setTimeout(e,0);try{return i(e,0)}catch(t){try{return i.call(null,e,0)}catch(t){return i.call(this,e,0)}}}!function(){try{i="function"==typeof setTimeout?setTimeout:s}catch(e){i=s}try{o="function"==typeof clearTimeout?clearTimeout:a}catch(e){o=a}}();var l,c=[],d=!1,f=-1;function p(){d&&l&&(d=!1,l.length?c=l.concat(c):f=-1,c.length&&m())}function m(){if(!d){var e=u(p);d=!0;for(var t=c.length;t;){for(l=c,c=[];++f<t;)l&&l[f].run();f=-1,t=c.length}l=null,d=!1,function(e){if(o===clearTimeout)return clearTimeout(e);if((o===a||!o)&&clearTimeout)return o=clearTimeout,clearTimeout(e);try{o(e)}catch(t){try{return o.call(null,e)}catch(t){return o.call(this,e)}}}(e)}}function h(e,t){this.fun=e,this.array=t}function g(){}n.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];c.push(new h(e,t)),1!==c.length||d||u(m)},h.prototype.run=function(){this.fun.apply(null,this.array)},n.title="browser",n.browser=!0,n.env={},n.argv=[],n.version="",n.versions={},n.on=g,n.addListener=g,n.once=g,n.off=g,n.removeListener=g,n.removeAllListeners=g,n.emit=g,n.prependListener=g,n.prependOnceListener=g,n.listeners=function(e){return[]},n.binding=function(e){throw new Error("process.binding is not supported")},n.cwd=function(){return"/"},n.chdir=function(e){throw new Error("process.chdir is not supported")},n.umask=function(){return 0}},{}],10:[function(e,t,r){"use strict";const i=e("strict-uri-encode"),o=e("decode-uri-component"),n=e("split-on-first"),s=e("filter-obj");function a(e){if("string"!=typeof e||1!==e.length)throw new TypeError("arrayFormatSeparator must be single character string")}function u(e,t){return t.encode?t.strict?i(e):encodeURIComponent(e):e}function l(e,t){return t.decode?o(e):e}function c(e){return Array.isArray(e)?e.sort():"object"==typeof e?c(Object.keys(e)).sort(((e,t)=>Number(e)-Number(t))).map((t=>e[t])):e}function d(e){const t=e.indexOf("#");return-1!==t&&(e=e.slice(0,t)),e}function f(e){const t=(e=d(e)).indexOf("?");return-1===t?"":e.slice(t+1)}function p(e,t){return t.parseNumbers&&!Number.isNaN(Number(e))&&"string"==typeof e&&""!==e.trim()?e=Number(e):!t.parseBooleans||null===e||"true"!==e.toLowerCase()&&"false"!==e.toLowerCase()||(e="true"===e.toLowerCase()),e}function m(e,t){a((t=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},t)).arrayFormatSeparator);const r=function(e){let t;switch(e.arrayFormat){case"index":return(e,r,i)=>{t=/\[(\d*)\]$/.exec(e),e=e.replace(/\[\d*\]$/,""),t?(void 0===i[e]&&(i[e]={}),i[e][t[1]]=r):i[e]=r};case"bracket":return(e,r,i)=>{t=/(\[\])$/.exec(e),e=e.replace(/\[\]$/,""),t?void 0!==i[e]?i[e]=[].concat(i[e],r):i[e]=[r]:i[e]=r};case"comma":case"separator":return(t,r,i)=>{const o="string"==typeof r&&r.includes(e.arrayFormatSeparator),n="string"==typeof r&&!o&&l(r,e).includes(e.arrayFormatSeparator);r=n?l(r,e):r;const s=o||n?r.split(e.arrayFormatSeparator).map((t=>l(t,e))):null===r?r:l(r,e);i[t]=s};default:return(e,t,r)=>{void 0!==r[e]?r[e]=[].concat(r[e],t):r[e]=t}}}(t),i=Object.create(null);if("string"!=typeof e)return i;if(!(e=e.trim().replace(/^[?#&]/,"")))return i;for(const o of e.split("&")){if(""===o)continue;let[e,s]=n(t.decode?o.replace(/\+/g," "):o,"=");s=void 0===s?null:["comma","separator"].includes(t.arrayFormat)?s:l(s,t),r(l(e,t),s,i)}for(const e of Object.keys(i)){const r=i[e];if("object"==typeof r&&null!==r)for(const e of Object.keys(r))r[e]=p(r[e],t);else i[e]=p(r,t)}return!1===t.sort?i:(!0===t.sort?Object.keys(i).sort():Object.keys(i).sort(t.sort)).reduce(((e,t)=>{const r=i[t];return Boolean(r)&&"object"==typeof r&&!Array.isArray(r)?e[t]=c(r):e[t]=r,e}),Object.create(null))}r.extract=f,r.parse=m,r.stringify=(e,t)=>{if(!e)return"";a((t=Object.assign({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},t)).arrayFormatSeparator);const r=r=>t.skipNull&&null==e[r]||t.skipEmptyString&&""===e[r],i=function(e){switch(e.arrayFormat){case"index":return t=>(r,i)=>{const o=r.length;return void 0===i||e.skipNull&&null===i||e.skipEmptyString&&""===i?r:null===i?[...r,[u(t,e),"[",o,"]"].join("")]:[...r,[u(t,e),"[",u(o,e),"]=",u(i,e)].join("")]};case"bracket":return t=>(r,i)=>void 0===i||e.skipNull&&null===i||e.skipEmptyString&&""===i?r:null===i?[...r,[u(t,e),"[]"].join("")]:[...r,[u(t,e),"[]=",u(i,e)].join("")];case"comma":case"separator":return t=>(r,i)=>null==i||0===i.length?r:0===r.length?[[u(t,e),"=",u(i,e)].join("")]:[[r,u(i,e)].join(e.arrayFormatSeparator)];default:return t=>(r,i)=>void 0===i||e.skipNull&&null===i||e.skipEmptyString&&""===i?r:null===i?[...r,u(t,e)]:[...r,[u(t,e),"=",u(i,e)].join("")]}}(t),o={};for(const t of Object.keys(e))r(t)||(o[t]=e[t]);const n=Object.keys(o);return!1!==t.sort&&n.sort(t.sort),n.map((r=>{const o=e[r];return void 0===o?"":null===o?u(r,t):Array.isArray(o)?o.reduce(i(r),[]).join("&"):u(r,t)+"="+u(o,t)})).filter((e=>e.length>0)).join("&")},r.parseUrl=(e,t)=>{t=Object.assign({decode:!0},t);const[r,i]=n(e,"#");return Object.assign({url:r.split("?")[0]||"",query:m(f(e),t)},t&&t.parseFragmentIdentifier&&i?{fragmentIdentifier:l(i,t)}:{})},r.stringifyUrl=(e,t)=>{t=Object.assign({encode:!0,strict:!0},t);const i=d(e.url).split("?")[0]||"",o=r.extract(e.url),n=r.parse(o,{sort:!1}),s=Object.assign(n,e.query);let a=r.stringify(s,t);a&&(a="?"+a);let l=function(e){let t="";const r=e.indexOf("#");return-1!==r&&(t=e.slice(r)),t}(e.url);return e.fragmentIdentifier&&(l="#"+u(e.fragmentIdentifier,t)),`${i}${a}${l}`},r.pick=(e,t,i)=>{i=Object.assign({parseFragmentIdentifier:!0},i);const{url:o,query:n,fragmentIdentifier:a}=r.parseUrl(e,i);return r.stringifyUrl({url:o,query:s(n,t),fragmentIdentifier:a},i)},r.exclude=(e,t,i)=>{const o=Array.isArray(t)?e=>!t.includes(e):(e,r)=>!t(e,r);return r.pick(e,o,i)}},{"decode-uri-component":5,"filter-obj":6,"split-on-first":11,"strict-uri-encode":12}],11:[function(e,t,r){"use strict";t.exports=(e,t)=>{if("string"!=typeof e||"string"!=typeof t)throw new TypeError("Expected the arguments to be of type `string`");if(""===t)return[e];const r=e.indexOf(t);return-1===r?[e]:[e.slice(0,r),e.slice(r+t.length)]}},{}],12:[function(e,t,r){"use strict";t.exports=e=>encodeURIComponent(e).replace(/[!'()*]/g,(e=>"%"+e.charCodeAt(0).toString(16).toUpperCase()))},{}],13:[function(e,t,r){!function(e){"use strict";e.exports.is_uri=r,e.exports.is_http_uri=i,e.exports.is_https_uri=o,e.exports.is_web_uri=n,e.exports.isUri=r,e.exports.isHttpUri=i,e.exports.isHttpsUri=o,e.exports.isWebUri=n;var t=function(e){return e.match(/(?:([^:\/?#]+):)?(?:\/\/([^\/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?/)};function r(e){if(e&&!/[^a-z0-9\:\/\?\#\[\]\@\!\$\&\'\(\)\*\+\,\;\=\.\-\_\~\%]/i.test(e)&&!/%[^0-9a-f]/i.test(e)&&!/%[0-9a-f](:?[^0-9a-f]|$)/i.test(e)){var r,i,o,n,s,a="",u="";if(a=(r=t(e))[1],i=r[2],o=r[3],n=r[4],s=r[5],a&&a.length&&o.length>=0){if(i&&i.length){if(0!==o.length&&!/^\//.test(o))return}else if(/^\/\//.test(o))return;if(/^[a-z][a-z0-9\+\-\.]*$/.test(a.toLowerCase()))return u+=a+":",i&&i.length&&(u+="//"+i),u+=o,n&&n.length&&(u+="?"+n),s&&s.length&&(u+="#"+s),u}}}function i(e,i){if(r(e)){var o,n,s,a,u="",l="",c="",d="";if(u=(o=t(e))[1],l=o[2],n=o[3],s=o[4],a=o[5],u){if(i){if("https"!=u.toLowerCase())return}else if("http"!=u.toLowerCase())return;if(l)return/:(\d+)$/.test(l)&&(c=l.match(/:(\d+)$/)[0],l=l.replace(/:\d+$/,"")),d+=u+":",d+="//"+l,c&&(d+=c),d+=n,s&&s.length&&(d+="?"+s),a&&a.length&&(d+="#"+a),d}}}function o(e){return i(e,!0)}function n(e){return i(e)||o(e)}}(t)},{}],14:[function(e,t,r){"use strict";function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var o=Ge(e("./lib/toDate")),n=Ge(e("./lib/toFloat")),s=Ge(e("./lib/toInt")),a=Ge(e("./lib/toBoolean")),u=Ge(e("./lib/equals")),l=Ge(e("./lib/contains")),c=Ge(e("./lib/matches")),d=Ge(e("./lib/isEmail")),f=Ge(e("./lib/isURL")),p=Ge(e("./lib/isMACAddress")),m=Ge(e("./lib/isIP")),h=Ge(e("./lib/isIPRange")),g=Ge(e("./lib/isFQDN")),y=Ge(e("./lib/isDate")),b=Ge(e("./lib/isBoolean")),v=Ge(e("./lib/isLocale")),_=Be(e("./lib/isAlpha")),A=Be(e("./lib/isAlphanumeric")),S=Ge(e("./lib/isNumeric")),w=Ge(e("./lib/isPassportNumber")),x=Ge(e("./lib/isPort")),$=Ge(e("./lib/isLowercase")),M=Ge(e("./lib/isUppercase")),I=Ge(e("./lib/isIMEI")),E=Ge(e("./lib/isAscii")),P=Ge(e("./lib/isFullWidth")),O=Ge(e("./lib/isHalfWidth")),C=Ge(e("./lib/isVariableWidth")),R=Ge(e("./lib/isMultibyte")),N=Ge(e("./lib/isSemVer")),F=Ge(e("./lib/isSurrogatePair")),T=Ge(e("./lib/isInt")),j=Be(e("./lib/isFloat")),U=Ge(e("./lib/isDecimal")),D=Ge(e("./lib/isHexadecimal")),k=Ge(e("./lib/isOctal")),L=Ge(e("./lib/isDivisibleBy")),Z=Ge(e("./lib/isHexColor")),B=Ge(e("./lib/isRgbColor")),G=Ge(e("./lib/isHSL")),H=Ge(e("./lib/isISRC")),Y=Ge(e("./lib/isIBAN")),K=Ge(e("./lib/isBIC")),q=Ge(e("./lib/isMD5")),W=Ge(e("./lib/isHash")),V=Ge(e("./lib/isJWT")),z=Ge(e("./lib/isJSON")),J=Ge(e("./lib/isEmpty")),X=Ge(e("./lib/isLength")),Q=Ge(e("./lib/isByteLength")),ee=Ge(e("./lib/isUUID")),te=Ge(e("./lib/isMongoId")),re=Ge(e("./lib/isAfter")),ie=Ge(e("./lib/isBefore")),oe=Ge(e("./lib/isIn")),ne=Ge(e("./lib/isCreditCard")),se=Ge(e("./lib/isIdentityCard")),ae=Ge(e("./lib/isEAN")),ue=Ge(e("./lib/isISIN")),le=Ge(e("./lib/isISBN")),ce=Ge(e("./lib/isISSN")),de=Ge(e("./lib/isTaxID")),fe=Be(e("./lib/isMobilePhone")),pe=Ge(e("./lib/isEthereumAddress")),me=Ge(e("./lib/isCurrency")),he=Ge(e("./lib/isBtcAddress")),ge=Ge(e("./lib/isISO8601")),ye=Ge(e("./lib/isRFC3339")),be=Ge(e("./lib/isISO31661Alpha2")),ve=Ge(e("./lib/isISO31661Alpha3")),_e=Ge(e("./lib/isBase32")),Ae=Ge(e("./lib/isBase58")),Se=Ge(e("./lib/isBase64")),we=Ge(e("./lib/isDataURI")),xe=Ge(e("./lib/isMagnetURI")),$e=Ge(e("./lib/isMimeType")),Me=Ge(e("./lib/isLatLong")),Ie=Be(e("./lib/isPostalCode")),Ee=Ge(e("./lib/ltrim")),Pe=Ge(e("./lib/rtrim")),Oe=Ge(e("./lib/trim")),Ce=Ge(e("./lib/escape")),Re=Ge(e("./lib/unescape")),Ne=Ge(e("./lib/stripLow")),Fe=Ge(e("./lib/whitelist")),Te=Ge(e("./lib/blacklist")),je=Ge(e("./lib/isWhitelisted")),Ue=Ge(e("./lib/normalizeEmail")),De=Ge(e("./lib/isSlug")),ke=Ge(e("./lib/isStrongPassword")),Le=Ge(e("./lib/isVAT"));function Ze(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return Ze=function(){return e},e}function Be(e){if(e&&e.__esModule)return e;if(null===e||"object"!==i(e)&&"function"!=typeof e)return{default:e};var t=Ze();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var s=o?Object.getOwnPropertyDescriptor(e,n):null;s&&(s.get||s.set)?Object.defineProperty(r,n,s):r[n]=e[n]}return r.default=e,t&&t.set(e,r),r}function Ge(e){return e&&e.__esModule?e:{default:e}}var He={version:"13.5.2",toDate:o.default,toFloat:n.default,toInt:s.default,toBoolean:a.default,equals:u.default,contains:l.default,matches:c.default,isEmail:d.default,isURL:f.default,isMACAddress:p.default,isIP:m.default,isIPRange:h.default,isFQDN:g.default,isBoolean:b.default,isIBAN:Y.default,isBIC:K.default,isAlpha:_.default,isAlphaLocales:_.locales,isAlphanumeric:A.default,isAlphanumericLocales:A.locales,isNumeric:S.default,isPassportNumber:w.default,isPort:x.default,isLowercase:$.default,isUppercase:M.default,isAscii:E.default,isFullWidth:P.default,isHalfWidth:O.default,isVariableWidth:C.default,isMultibyte:R.default,isSemVer:N.default,isSurrogatePair:F.default,isInt:T.default,isIMEI:I.default,isFloat:j.default,isFloatLocales:j.locales,isDecimal:U.default,isHexadecimal:D.default,isOctal:k.default,isDivisibleBy:L.default,isHexColor:Z.default,isRgbColor:B.default,isHSL:G.default,isISRC:H.default,isMD5:q.default,isHash:W.default,isJWT:V.default,isJSON:z.default,isEmpty:J.default,isLength:X.default,isLocale:v.default,isByteLength:Q.default,isUUID:ee.default,isMongoId:te.default,isAfter:re.default,isBefore:ie.default,isIn:oe.default,isCreditCard:ne.default,isIdentityCard:se.default,isEAN:ae.default,isISIN:ue.default,isISBN:le.default,isISSN:ce.default,isMobilePhone:fe.default,isMobilePhoneLocales:fe.locales,isPostalCode:Ie.default,isPostalCodeLocales:Ie.locales,isEthereumAddress:pe.default,isCurrency:me.default,isBtcAddress:he.default,isISO8601:ge.default,isRFC3339:ye.default,isISO31661Alpha2:be.default,isISO31661Alpha3:ve.default,isBase32:_e.default,isBase58:Ae.default,isBase64:Se.default,isDataURI:we.default,isMagnetURI:xe.default,isMimeType:$e.default,isLatLong:Me.default,ltrim:Ee.default,rtrim:Pe.default,trim:Oe.default,escape:Ce.default,unescape:Re.default,stripLow:Ne.default,whitelist:Fe.default,blacklist:Te.default,isWhitelisted:je.default,normalizeEmail:Ue.default,toString:toString,isSlug:De.default,isStrongPassword:ke.default,isTaxID:de.default,isDate:y.default,isVAT:Le.default};r.default=He,t.exports=r.default,t.exports.default=r.default},{"./lib/blacklist":16,"./lib/contains":17,"./lib/equals":18,"./lib/escape":19,"./lib/isAfter":20,"./lib/isAlpha":21,"./lib/isAlphanumeric":22,"./lib/isAscii":23,"./lib/isBIC":24,"./lib/isBase32":25,"./lib/isBase58":26,"./lib/isBase64":27,"./lib/isBefore":28,"./lib/isBoolean":29,"./lib/isBtcAddress":30,"./lib/isByteLength":31,"./lib/isCreditCard":32,"./lib/isCurrency":33,"./lib/isDataURI":34,"./lib/isDate":35,"./lib/isDecimal":36,"./lib/isDivisibleBy":37,"./lib/isEAN":38,"./lib/isEmail":39,"./lib/isEmpty":40,"./lib/isEthereumAddress":41,"./lib/isFQDN":42,"./lib/isFloat":43,"./lib/isFullWidth":44,"./lib/isHSL":45,"./lib/isHalfWidth":46,"./lib/isHash":47,"./lib/isHexColor":48,"./lib/isHexadecimal":49,"./lib/isIBAN":50,"./lib/isIMEI":51,"./lib/isIP":52,"./lib/isIPRange":53,"./lib/isISBN":54,"./lib/isISIN":55,"./lib/isISO31661Alpha2":56,"./lib/isISO31661Alpha3":57,"./lib/isISO8601":58,"./lib/isISRC":59,"./lib/isISSN":60,"./lib/isIdentityCard":61,"./lib/isIn":62,"./lib/isInt":63,"./lib/isJSON":64,"./lib/isJWT":65,"./lib/isLatLong":66,"./lib/isLength":67,"./lib/isLocale":68,"./lib/isLowercase":69,"./lib/isMACAddress":70,"./lib/isMD5":71,"./lib/isMagnetURI":72,"./lib/isMimeType":73,"./lib/isMobilePhone":74,"./lib/isMongoId":75,"./lib/isMultibyte":76,"./lib/isNumeric":77,"./lib/isOctal":78,"./lib/isPassportNumber":79,"./lib/isPort":80,"./lib/isPostalCode":81,"./lib/isRFC3339":82,"./lib/isRgbColor":83,"./lib/isSemVer":84,"./lib/isSlug":85,"./lib/isStrongPassword":86,"./lib/isSurrogatePair":87,"./lib/isTaxID":88,"./lib/isURL":89,"./lib/isUUID":90,"./lib/isUppercase":91,"./lib/isVAT":92,"./lib/isVariableWidth":93,"./lib/isWhitelisted":94,"./lib/ltrim":95,"./lib/matches":96,"./lib/normalizeEmail":97,"./lib/rtrim":98,"./lib/stripLow":99,"./lib/toBoolean":100,"./lib/toDate":101,"./lib/toFloat":102,"./lib/toInt":103,"./lib/trim":104,"./lib/unescape":105,"./lib/whitelist":112}],15:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.commaDecimal=r.dotDecimal=r.farsiLocales=r.arabicLocales=r.englishLocales=r.decimal=r.alphanumeric=r.alpha=void 0;var i={"en-US":/^[A-Z]+$/i,"az-AZ":/^[A-VXYZÇƏĞİıÖŞÜ]+$/i,"bg-BG":/^[А-Я]+$/i,"cs-CZ":/^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,"da-DK":/^[A-ZÆØÅ]+$/i,"de-DE":/^[A-ZÄÖÜß]+$/i,"el-GR":/^[Α-ώ]+$/i,"es-ES":/^[A-ZÁÉÍÑÓÚÜ]+$/i,"fa-IR":/^[ابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی]+$/i,"fr-FR":/^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,"it-IT":/^[A-ZÀÉÈÌÎÓÒÙ]+$/i,"nb-NO":/^[A-ZÆØÅ]+$/i,"nl-NL":/^[A-ZÁÉËÏÓÖÜÚ]+$/i,"nn-NO":/^[A-ZÆØÅ]+$/i,"hu-HU":/^[A-ZÁÉÍÓÖŐÚÜŰ]+$/i,"pl-PL":/^[A-ZĄĆĘŚŁŃÓŻŹ]+$/i,"pt-PT":/^[A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,"ru-RU":/^[А-ЯЁ]+$/i,"sl-SI":/^[A-ZČĆĐŠŽ]+$/i,"sk-SK":/^[A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,"sr-RS@latin":/^[A-ZČĆŽŠĐ]+$/i,"sr-RS":/^[А-ЯЂЈЉЊЋЏ]+$/i,"sv-SE":/^[A-ZÅÄÖ]+$/i,"th-TH":/^[ก-๐\s]+$/i,"tr-TR":/^[A-ZÇĞİıÖŞÜ]+$/i,"uk-UA":/^[А-ЩЬЮЯЄIЇҐі]+$/i,"vi-VN":/^[A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i,"ku-IQ":/^[ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,ar:/^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,he:/^[א-ת]+$/,fa:/^['آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی']+$/i};r.alpha=i;var o={"en-US":/^[0-9A-Z]+$/i,"az-AZ":/^[0-9A-VXYZÇƏĞİıÖŞÜ]+$/i,"bg-BG":/^[0-9А-Я]+$/i,"cs-CZ":/^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,"da-DK":/^[0-9A-ZÆØÅ]+$/i,"de-DE":/^[0-9A-ZÄÖÜß]+$/i,"el-GR":/^[0-9Α-ω]+$/i,"es-ES":/^[0-9A-ZÁÉÍÑÓÚÜ]+$/i,"fr-FR":/^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,"it-IT":/^[0-9A-ZÀÉÈÌÎÓÒÙ]+$/i,"hu-HU":/^[0-9A-ZÁÉÍÓÖŐÚÜŰ]+$/i,"nb-NO":/^[0-9A-ZÆØÅ]+$/i,"nl-NL":/^[0-9A-ZÁÉËÏÓÖÜÚ]+$/i,"nn-NO":/^[0-9A-ZÆØÅ]+$/i,"pl-PL":/^[0-9A-ZĄĆĘŚŁŃÓŻŹ]+$/i,"pt-PT":/^[0-9A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,"ru-RU":/^[0-9А-ЯЁ]+$/i,"sl-SI":/^[0-9A-ZČĆĐŠŽ]+$/i,"sk-SK":/^[0-9A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,"sr-RS@latin":/^[0-9A-ZČĆŽŠĐ]+$/i,"sr-RS":/^[0-9А-ЯЂЈЉЊЋЏ]+$/i,"sv-SE":/^[0-9A-ZÅÄÖ]+$/i,"th-TH":/^[ก-๙\s]+$/i,"tr-TR":/^[0-9A-ZÇĞİıÖŞÜ]+$/i,"uk-UA":/^[0-9А-ЩЬЮЯЄIЇҐі]+$/i,"ku-IQ":/^[٠١٢٣٤٥٦٧٨٩0-9ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,"vi-VN":/^[0-9A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i,ar:/^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,he:/^[0-9א-ת]+$/,fa:/^['0-9آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی۱۲۳۴۵۶۷۸۹۰']+$/i};r.alphanumeric=o;var n={"en-US":".",ar:"٫"};r.decimal=n;var s=["AU","GB","HK","IN","NZ","ZA","ZM"];r.englishLocales=s;for(var a,u=0;u<s.length;u++)i[a="en-".concat(s[u])]=i["en-US"],o[a]=o["en-US"],n[a]=n["en-US"];var l=["AE","BH","DZ","EG","IQ","JO","KW","LB","LY","MA","QM","QA","SA","SD","SY","TN","YE"];r.arabicLocales=l;for(var c,d=0;d<l.length;d++)i[c="ar-".concat(l[d])]=i.ar,o[c]=o.ar,n[c]=n.ar;var f=["IR","AF"];r.farsiLocales=f;for(var p,m=0;m<f.length;m++)o[p="fa-".concat(f[m])]=o.fa,n[p]=n.ar;var h=["ar-EG","ar-LB","ar-LY"];r.dotDecimal=h;var g=["bg-BG","cs-CZ","da-DK","de-DE","el-GR","en-ZM","es-ES","fr-CA","fr-FR","id-ID","it-IT","ku-IQ","hu-HU","nb-NO","nn-NO","nl-NL","pl-PL","pt-PT","ru-RU","sl-SI","sr-RS@latin","sr-RS","sv-SE","tr-TR","uk-UA","vi-VN"];r.commaDecimal=g;for(var y=0;y<h.length;y++)n[h[y]]=n["en-US"];for(var b=0;b<g.length;b++)n[g[b]]=",";i["fr-CA"]=i["fr-FR"],o["fr-CA"]=o["fr-FR"],i["pt-BR"]=i["pt-PT"],o["pt-BR"]=o["pt-PT"],n["pt-BR"]=n["pt-PT"],i["pl-Pl"]=i["pl-PL"],o["pl-Pl"]=o["pl-PL"],n["pl-Pl"]=n["pl-PL"],i["fa-AF"]=i.fa},{}],16:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){return(0,o.default)(e),e.replace(new RegExp("[".concat(t,"]+"),"g"),"")};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],17:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t,r){return(0,i.default)(e),(r=(0,n.default)(r,a)).ignoreCase?e.toLowerCase().indexOf((0,o.default)(t).toLowerCase())>=0:e.indexOf((0,o.default)(t))>=0};var i=s(e("./util/assertString")),o=s(e("./util/toString")),n=s(e("./util/merge"));function s(e){return e&&e.__esModule?e:{default:e}}var a={ignoreCase:!1};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107,"./util/merge":109,"./util/toString":111}],18:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){return(0,o.default)(e),e===t};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],19:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),e.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\//g,"&#x2F;").replace(/\\/g,"&#x5C;").replace(/`/g,"&#96;")};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],20:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:String(new Date);(0,i.default)(e);var r=(0,o.default)(t),n=(0,o.default)(e);return!!(n&&r&&n>r)};var i=n(e("./util/assertString")),o=n(e("./toDate"));function n(e){return e&&e.__esModule?e:{default:e}}t.exports=r.default,t.exports.default=r.default},{"./toDate":101,"./util/assertString":107}],21:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"en-US",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};(0,o.default)(e);var i=e,s=r.ignore;if(s)if(s instanceof RegExp)i=i.replace(s,"");else{if("string"!=typeof s)throw new Error("ignore should be instance of a String or RegExp");i=i.replace(new RegExp("[".concat(s.replace(/[-[\]{}()*+?.,\\^$|#\\s]/g,"\\$&"),"]"),"g"),"")}if(t in n.alpha)return n.alpha[t].test(i);throw new Error("Invalid locale '".concat(t,"'"))},r.locales=void 0;var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=e("./alpha"),s=Object.keys(n.alpha);r.locales=s},{"./alpha":15,"./util/assertString":107}],22:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"en-US";if((0,o.default)(e),t in n.alphanumeric)return n.alphanumeric[t].test(e);throw new Error("Invalid locale '".concat(t,"'"))},r.locales=void 0;var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=e("./alpha"),s=Object.keys(n.alphanumeric);r.locales=s},{"./alpha":15,"./util/assertString":107}],23:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^[\x00-\x7F]+$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],24:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^[A-z]{4}[A-z]{2}\w{2}(\w{3})?$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],25:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),!(e.length%8!=0||!n.test(e))};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^[A-Z2-7]+=*$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],26:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),!!n.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^[A-HJ-NP-Za-km-z1-9]*$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],27:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){(0,i.default)(e),t=(0,o.default)(t,u);var r=e.length;if(t.urlSafe)return a.test(e);if(r%4!=0||s.test(e))return!1;var n=e.indexOf("=");return-1===n||n===r-1||n===r-2&&"="===e[r-1]};var i=n(e("./util/assertString")),o=n(e("./util/merge"));function n(e){return e&&e.__esModule?e:{default:e}}var s=/[^A-Z0-9+\/=]/i,a=/^[A-Z0-9_\-]*$/i,u={urlSafe:!1};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107,"./util/merge":109}],28:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:String(new Date);(0,i.default)(e);var r=(0,o.default)(t),n=(0,o.default)(e);return!!(n&&r&&n<r)};var i=n(e("./util/assertString")),o=n(e("./toDate"));function n(e){return e&&e.__esModule?e:{default:e}}t.exports=r.default,t.exports.default=r.default},{"./toDate":101,"./util/assertString":107}],29:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),["true","false","1","0"].indexOf(e)>=0};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],30:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^(bc1|[13])[a-zA-HJ-NP-Z0-9]{25,39}$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],31:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){var r,i;(0,o.default)(e),"object"===n(t)?(r=t.min||0,i=t.max):(r=arguments[1],i=arguments[2]);var s=encodeURI(e).split(/%..|./).length-1;return s>=r&&(void 0===i||s<=i)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],32:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){(0,o.default)(e);var t=e.replace(/[- ]+/g,"");if(!n.test(t))return!1;for(var r,i,s,a=0,u=t.length-1;u>=0;u--)r=t.substring(u,u+1),i=parseInt(r,10),a+=s&&(i*=2)>=10?i%10+1:i,s=!s;return!(a%10!=0||!t)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^(?:4[0-9]{12}(?:[0-9]{3,6})?|5[1-5][0-9]{14}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12,15}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11}|6[27][0-9]{14})$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],33:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){return(0,o.default)(e),function(e){var t="\\d{".concat(e.digits_after_decimal[0],"}");e.digits_after_decimal.forEach((function(e,r){0!==r&&(t="".concat(t,"|\\d{").concat(e,"}"))}));var r="(".concat(e.symbol.replace(/\W/,(function(e){return"\\".concat(e)})),")").concat(e.require_symbol?"":"?"),i="-?",o="[1-9]\\d{0,2}(\\".concat(e.thousands_separator,"\\d{3})*"),n="(".concat(["0","[1-9]\\d*",o].join("|"),")?"),s="(\\".concat(e.decimal_separator,"(").concat(t,"))").concat(e.require_decimal?"":"?"),a=n+(e.allow_decimal||e.require_decimal?s:"");return e.allow_negatives&&!e.parens_for_negatives&&(e.negative_sign_after_digits?a+=i:e.negative_sign_before_digits&&(a=i+a)),e.allow_negative_sign_placeholder?a="( (?!\\-))?".concat(a):e.allow_space_after_symbol?a=" ?".concat(a):e.allow_space_after_digits&&(a+="( (?!$))?"),e.symbol_after_digits?a+=r:a=r+a,e.allow_negatives&&(e.parens_for_negatives?a="(\\(".concat(a,"\\)|").concat(a,")"):e.negative_sign_before_digits||e.negative_sign_after_digits||(a=i+a)),new RegExp("^(?!-? )(?=.*\\d)".concat(a,"$"))}(t=(0,i.default)(t,s)).test(e)};var i=n(e("./util/merge")),o=n(e("./util/assertString"));function n(e){return e&&e.__esModule?e:{default:e}}var s={symbol:"$",require_symbol:!1,allow_space_after_symbol:!1,symbol_after_digits:!1,allow_negatives:!0,parens_for_negatives:!1,negative_sign_before_digits:!1,negative_sign_after_digits:!1,allow_negative_sign_placeholder:!1,thousands_separator:",",decimal_separator:".",allow_decimal:!0,require_decimal:!1,digits_after_decimal:[2],allow_space_after_digits:!1};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107,"./util/merge":109}],34:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){(0,o.default)(e);var t=e.split(",");if(t.length<2)return!1;var r=t.shift().trim().split(";"),i=r.shift();if("data:"!==i.substr(0,5))return!1;var u=i.substr(5);if(""!==u&&!n.test(u))return!1;for(var l=0;l<r.length;l++)if(l===r.length-1&&"base64"===r[l].toLowerCase());else if(!s.test(r[l]))return!1;for(var c=0;c<t.length;c++)if(!a.test(t[c]))return!1;return!0};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^[a-z]+\/[a-z0-9\-\+]+$/i,s=/^[a-z\-]+=[a-z0-9\-]+$/i,a=/^[a-z0-9!\$&'\(\)\*\+,;=\-\._~:@\/\?%\s]*$/i;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],35:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){if(t="string"==typeof t?(0,o.default)({format:t},a):(0,o.default)(t,a),"string"==typeof e&&(h=t.format,/(^(y{4}|y{2})[\/-](m{1,2})[\/-](d{1,2})$)|(^(m{1,2})[\/-](d{1,2})[\/-]((y{4}|y{2})$))|(^(d{1,2})[\/-](m{1,2})[\/-]((y{4}|y{2})$))/gi.test(h))){var r,i=t.delimiters.find((function(e){return-1!==t.format.indexOf(e)})),s=t.strictMode?i:t.delimiters.find((function(t){return-1!==e.indexOf(t)})),u=function(e,t){for(var r=[],i=Math.min(e.length,t.length),o=0;o<i;o++)r.push([e[o],t[o]]);return r}(e.split(s),t.format.toLowerCase().split(i)),l={},c=function(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=n(e))){r&&(e=r);var i=0,o=function(){};return{s:o,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s,a=!0,u=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return a=e.done,e},e:function(e){u=!0,s=e},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw s}}}}(u);try{for(c.s();!(r=c.n()).done;){var d=function(e){if(Array.isArray(e))return e}(m=r.value)||function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var r=[],i=!0,o=!1,n=void 0;try{for(var s,a=e[Symbol.iterator]();!(i=(s=a.next()).done)&&(r.push(s.value),2!==r.length);i=!0);}catch(e){o=!0,n=e}finally{try{i||null==a.return||a.return()}finally{if(o)throw n}}return r}}(m)||n(m,2)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),f=d[0],p=d[1];if(f.length!==p.length)return!1;l[p.charAt(0)]=f}}catch(e){c.e(e)}finally{c.f()}return new Date("".concat(l.m,"/").concat(l.d,"/").concat(l.y)).getDate()===+l.d}var m,h;return!t.strictMode&&"[object Date]"===Object.prototype.toString.call(e)&&isFinite(e)};var i,o=(i=e("./util/merge"))&&i.__esModule?i:{default:i};function n(e,t){if(e){if("string"==typeof e)return s(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?s(e,t):void 0}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}var a={format:"YYYY/MM/DD",delimiters:["/","-"],strictMode:!1};t.exports=r.default,t.exports.default=r.default},{"./util/merge":109}],36:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){if((0,o.default)(e),(t=(0,i.default)(t,u)).locale in s.decimal)return!(0,n.default)(l,e.replace(/ /g,""))&&function(e){return new RegExp("^[-+]?([0-9]+)?(\\".concat(s.decimal[e.locale],"[0-9]{").concat(e.decimal_digits,"})").concat(e.force_decimal?"":"?","$"))}(t).test(e);throw new Error("Invalid locale '".concat(t.locale,"'"))};var i=a(e("./util/merge")),o=a(e("./util/assertString")),n=a(e("./util/includes")),s=e("./alpha");function a(e){return e&&e.__esModule?e:{default:e}}var u={force_decimal:!1,decimal_digits:"1,",locale:"en-US"},l=["","-","+"];t.exports=r.default,t.exports.default=r.default},{"./alpha":15,"./util/assertString":107,"./util/includes":108,"./util/merge":109}],37:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){return(0,i.default)(e),(0,o.default)(e)%parseInt(t,10)==0};var i=n(e("./util/assertString")),o=n(e("./toFloat"));function n(e){return e&&e.__esModule?e:{default:e}}t.exports=r.default,t.exports.default=r.default},{"./toFloat":102,"./util/assertString":107}],38:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){(0,o.default)(e);var t,r,i=Number(e.slice(-1));return n.test(e)&&i===((r=10-(t=e).slice(0,-1).split("").map((function(e,r){return Number(e)*function(e,t){return 8===e?t%2==0?3:1:t%2==0?1:3}(t.length,r)})).reduce((function(e,t){return e+t}),0)%10)<10?r:0)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^(\d{8}|\d{13})$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],39:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){if((0,i.default)(e),(t=(0,o.default)(t,c)).require_display_name||t.allow_display_name){var r=e.match(d);if(r){var u,y=function(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var r=[],i=!0,o=!1,n=void 0;try{for(var s,a=e[Symbol.iterator]();!(i=(s=a.next()).done)&&(r.push(s.value),3!==r.length);i=!0);}catch(e){o=!0,n=e}finally{try{i||null==a.return||a.return()}finally{if(o)throw n}}return r}}(e)||function(e,t){if(e){if("string"==typeof e)return l(e,3);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?l(e,3):void 0}}(e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(r);if(u=y[1],e=y[2],u.endsWith(" ")&&(u=u.substr(0,u.length-1)),!function(e){var t=e.match(/^"(.+)"$/i),r=t?t[1]:e;if(!r.trim())return!1;if(/[\.";<>]/.test(r)){if(!t)return!1;if(r.split('"').length!==r.split('\\"').length)return!1}return!0}(u))return!1}else if(t.require_display_name)return!1}if(!t.ignore_max_length&&e.length>254)return!1;var b=e.split("@"),v=b.pop(),_=b.join("@"),A=v.toLowerCase();if(t.domain_specific_validation&&("gmail.com"===A||"googlemail.com"===A)){var S=(_=_.toLowerCase()).split("+")[0];if(!(0,n.default)(S.replace(".",""),{min:6,max:30}))return!1;for(var w=S.split("."),x=0;x<w.length;x++)if(!p.test(w[x]))return!1}if(!(!1!==t.ignore_max_length||(0,n.default)(_,{max:64})&&(0,n.default)(v,{max:254})))return!1;if(!(0,s.default)(v,{require_tld:t.require_tld})){if(!t.allow_ip_domain)return!1;if(!(0,a.default)(v)){if(!v.startsWith("[")||!v.endsWith("]"))return!1;var $=v.substr(1,v.length-2);if(0===$.length||!(0,a.default)($))return!1}}if('"'===_[0])return _=_.slice(1,_.length-1),t.allow_utf8_local_part?g.test(_):m.test(_);for(var M=t.allow_utf8_local_part?h:f,I=_.split("."),E=0;E<I.length;E++)if(!M.test(I[E]))return!1;return!t.blacklisted_chars||-1===_.search(new RegExp("[".concat(t.blacklisted_chars,"]+"),"g"))};var i=u(e("./util/assertString")),o=u(e("./util/merge")),n=u(e("./isByteLength")),s=u(e("./isFQDN")),a=u(e("./isIP"));function u(e){return e&&e.__esModule?e:{default:e}}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}var c={allow_display_name:!1,require_display_name:!1,allow_utf8_local_part:!0,require_tld:!0,blacklisted_chars:"",ignore_max_length:!1},d=/^([^\x00-\x1F\x7F-\x9F\cX]+)<(.+)>$/i,f=/^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~]+$/i,p=/^[a-z\d]+$/,m=/^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f]))*$/i,h=/^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+$/i,g=/^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*$/i;t.exports=r.default,t.exports.default=r.default},{"./isByteLength":31,"./isFQDN":42,"./isIP":52,"./util/assertString":107,"./util/merge":109}],40:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){return(0,i.default)(e),0===((t=(0,o.default)(t,s)).ignore_whitespace?e.trim().length:e.length)};var i=n(e("./util/assertString")),o=n(e("./util/merge"));function n(e){return e&&e.__esModule?e:{default:e}}var s={ignore_whitespace:!1};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107,"./util/merge":109}],41:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^(0x)[0-9a-f]{40}$/i;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],42:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){(0,i.default)(e),(t=(0,o.default)(t,s)).allow_trailing_dot&&"."===e[e.length-1]&&(e=e.substring(0,e.length-1));var r=e.split("."),n=r[r.length-1];if(t.require_tld){if(r.length<2)return!1;if(!/^([a-z\u00a1-\uffff]{2,}|xn[a-z0-9-]{2,})$/i.test(n))return!1;if(/[\s\u2002-\u200B\u202F\u205F\u3000\uFEFF\uDB40\uDC20\u00A9\uFFFD]/.test(n))return!1}return!(!t.allow_numeric_tld&&/^\d+$/.test(n))&&r.every((function(e){return!(e.length>63||!/^[a-z_\u00a1-\uffff0-9-]+$/i.test(e)||/[\uff01-\uff5e]/.test(e)||/^-|-$/.test(e)||!t.allow_underscores&&/_/.test(e))}))};var i=n(e("./util/assertString")),o=n(e("./util/merge"));function n(e){return e&&e.__esModule?e:{default:e}}var s={require_tld:!0,allow_underscores:!1,allow_trailing_dot:!1,allow_numeric_tld:!1};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107,"./util/merge":109}],43:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){(0,o.default)(e),t=t||{};var r=new RegExp("^(?:[-+])?(?:[0-9]+)?(?:\\".concat(t.locale?n.decimal[t.locale]:".","[0-9]*)?(?:[eE][\\+\\-]?(?:[0-9]+))?$"));if(""===e||"."===e||"-"===e||"+"===e)return!1;var i=parseFloat(e.replace(",","."));return r.test(e)&&(!t.hasOwnProperty("min")||i>=t.min)&&(!t.hasOwnProperty("max")||i<=t.max)&&(!t.hasOwnProperty("lt")||i<t.lt)&&(!t.hasOwnProperty("gt")||i>t.gt)},r.locales=void 0;var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=e("./alpha"),s=Object.keys(n.decimal);r.locales=s},{"./alpha":15,"./util/assertString":107}],44:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e)},r.fullWidth=void 0;var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/[^\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/;r.fullWidth=n},{"./util/assertString":107}],45:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e)||s.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^(hsl)a?\(\s*((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?))(deg|grad|rad|turn|\s*)(\s*,\s*(\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%){2}\s*(,\s*((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%?)\s*)?\)$/i,s=/^(hsl)a?\(\s*((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?))(deg|grad|rad|turn|\s)(\s*(\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%){2}\s*(\/\s*((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%?)\s*)?\)$/i;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],46:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e)},r.halfWidth=void 0;var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/[\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/;r.halfWidth=n},{"./util/assertString":107}],47:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){return(0,o.default)(e),new RegExp("^[a-fA-F0-9]{".concat(n[t],"}$")).test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n={md5:32,md4:32,sha1:40,sha256:64,sha384:96,sha512:128,ripemd128:32,ripemd160:40,tiger128:32,tiger160:40,tiger192:48,crc32:8,crc32b:8};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],48:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$/i;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],49:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^(0x|0h)?[0-9A-F]+$/i;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],50:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),function(e){var t=e.replace(/[\s\-]+/gi,"").toUpperCase(),r=t.slice(0,2).toUpperCase();return r in n&&n[r].test(t)}(e)&&function(e){var t=e.replace(/[^A-Z0-9]+/gi,"").toUpperCase();return 1===(t.slice(4)+t.slice(0,4)).replace(/[A-Z]/g,(function(e){return e.charCodeAt(0)-55})).match(/\d{1,7}/g).reduce((function(e,t){return Number(e+t)%97}),"")}(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n={AD:/^(AD[0-9]{2})\d{8}[A-Z0-9]{12}$/,AE:/^(AE[0-9]{2})\d{3}\d{16}$/,AL:/^(AL[0-9]{2})\d{8}[A-Z0-9]{16}$/,AT:/^(AT[0-9]{2})\d{16}$/,AZ:/^(AZ[0-9]{2})[A-Z0-9]{4}\d{20}$/,BA:/^(BA[0-9]{2})\d{16}$/,BE:/^(BE[0-9]{2})\d{12}$/,BG:/^(BG[0-9]{2})[A-Z]{4}\d{6}[A-Z0-9]{8}$/,BH:/^(BH[0-9]{2})[A-Z]{4}[A-Z0-9]{14}$/,BR:/^(BR[0-9]{2})\d{23}[A-Z]{1}[A-Z0-9]{1}$/,BY:/^(BY[0-9]{2})[A-Z0-9]{4}\d{20}$/,CH:/^(CH[0-9]{2})\d{5}[A-Z0-9]{12}$/,CR:/^(CR[0-9]{2})\d{18}$/,CY:/^(CY[0-9]{2})\d{8}[A-Z0-9]{16}$/,CZ:/^(CZ[0-9]{2})\d{20}$/,DE:/^(DE[0-9]{2})\d{18}$/,DK:/^(DK[0-9]{2})\d{14}$/,DO:/^(DO[0-9]{2})[A-Z]{4}\d{20}$/,EE:/^(EE[0-9]{2})\d{16}$/,EG:/^(EG[0-9]{2})\d{25}$/,ES:/^(ES[0-9]{2})\d{20}$/,FI:/^(FI[0-9]{2})\d{14}$/,FO:/^(FO[0-9]{2})\d{14}$/,FR:/^(FR[0-9]{2})\d{10}[A-Z0-9]{11}\d{2}$/,GB:/^(GB[0-9]{2})[A-Z]{4}\d{14}$/,GE:/^(GE[0-9]{2})[A-Z0-9]{2}\d{16}$/,GI:/^(GI[0-9]{2})[A-Z]{4}[A-Z0-9]{15}$/,GL:/^(GL[0-9]{2})\d{14}$/,GR:/^(GR[0-9]{2})\d{7}[A-Z0-9]{16}$/,GT:/^(GT[0-9]{2})[A-Z0-9]{4}[A-Z0-9]{20}$/,HR:/^(HR[0-9]{2})\d{17}$/,HU:/^(HU[0-9]{2})\d{24}$/,IE:/^(IE[0-9]{2})[A-Z0-9]{4}\d{14}$/,IL:/^(IL[0-9]{2})\d{19}$/,IQ:/^(IQ[0-9]{2})[A-Z]{4}\d{15}$/,IR:/^(IR[0-9]{2})0\d{2}0\d{18}$/,IS:/^(IS[0-9]{2})\d{22}$/,IT:/^(IT[0-9]{2})[A-Z]{1}\d{10}[A-Z0-9]{12}$/,JO:/^(JO[0-9]{2})[A-Z]{4}\d{22}$/,KW:/^(KW[0-9]{2})[A-Z]{4}[A-Z0-9]{22}$/,KZ:/^(KZ[0-9]{2})\d{3}[A-Z0-9]{13}$/,LB:/^(LB[0-9]{2})\d{4}[A-Z0-9]{20}$/,LC:/^(LC[0-9]{2})[A-Z]{4}[A-Z0-9]{24}$/,LI:/^(LI[0-9]{2})\d{5}[A-Z0-9]{12}$/,LT:/^(LT[0-9]{2})\d{16}$/,LU:/^(LU[0-9]{2})\d{3}[A-Z0-9]{13}$/,LV:/^(LV[0-9]{2})[A-Z]{4}[A-Z0-9]{13}$/,MC:/^(MC[0-9]{2})\d{10}[A-Z0-9]{11}\d{2}$/,MD:/^(MD[0-9]{2})[A-Z0-9]{20}$/,ME:/^(ME[0-9]{2})\d{18}$/,MK:/^(MK[0-9]{2})\d{3}[A-Z0-9]{10}\d{2}$/,MR:/^(MR[0-9]{2})\d{23}$/,MT:/^(MT[0-9]{2})[A-Z]{4}\d{5}[A-Z0-9]{18}$/,MU:/^(MU[0-9]{2})[A-Z]{4}\d{19}[A-Z]{3}$/,NL:/^(NL[0-9]{2})[A-Z]{4}\d{10}$/,NO:/^(NO[0-9]{2})\d{11}$/,PK:/^(PK[0-9]{2})[A-Z0-9]{4}\d{16}$/,PL:/^(PL[0-9]{2})\d{24}$/,PS:/^(PS[0-9]{2})[A-Z0-9]{4}\d{21}$/,PT:/^(PT[0-9]{2})\d{21}$/,QA:/^(QA[0-9]{2})[A-Z]{4}[A-Z0-9]{21}$/,RO:/^(RO[0-9]{2})[A-Z]{4}[A-Z0-9]{16}$/,RS:/^(RS[0-9]{2})\d{18}$/,SA:/^(SA[0-9]{2})\d{2}[A-Z0-9]{18}$/,SC:/^(SC[0-9]{2})[A-Z]{4}\d{20}[A-Z]{3}$/,SE:/^(SE[0-9]{2})\d{20}$/,SI:/^(SI[0-9]{2})\d{15}$/,SK:/^(SK[0-9]{2})\d{20}$/,SM:/^(SM[0-9]{2})[A-Z]{1}\d{10}[A-Z0-9]{12}$/,SV:/^(SV[0-9]{2})[A-Z0-9]{4}\d{20}$/,TL:/^(TL[0-9]{2})\d{19}$/,TN:/^(TN[0-9]{2})\d{20}$/,TR:/^(TR[0-9]{2})\d{5}[A-Z0-9]{17}$/,UA:/^(UA[0-9]{2})\d{6}[A-Z0-9]{19}$/,VA:/^(VA[0-9]{2})\d{18}$/,VG:/^(VG[0-9]{2})[A-Z0-9]{4}\d{16}$/,XK:/^(XK[0-9]{2})\d{16}$/};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],51:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){(0,o.default)(e);var r=n;if((t=t||{}).allow_hyphens&&(r=s),!r.test(e))return!1;e=e.replace(/-/g,"");for(var i=0,a=2,u=0;u<14;u++){var l=e.substring(14-u-1,14-u),c=parseInt(l,10)*a;i+=c>=10?c%10+1:c,1===a?a+=1:a-=1}return(10-i%10)%10===parseInt(e.substring(14,15),10)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^[0-9]{15}$/,s=/^\d{2}-\d{6}-\d{6}-\d{1}$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],52:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if((0,o.default)(t),!(r=String(r)))return e(t,4)||e(t,6);if("4"===r){if(!n.test(t))return!1;var i=t.split(".").sort((function(e,t){return e-t}));return i[3]<=255}if("6"===r){var a=[t];if(t.includes("%")){if(2!==(a=t.split("%")).length)return!1;if(!a[0].includes(":"))return!1;if(""===a[1])return!1}var u=a[0].split(":"),l=!1,c=e(u[u.length-1],4),d=c?7:8;if(u.length>d)return!1;if("::"===t)return!0;"::"===t.substr(0,2)?(u.shift(),u.shift(),l=!0):"::"===t.substr(t.length-2)&&(u.pop(),u.pop(),l=!0);for(var f=0;f<u.length;++f)if(""===u[f]&&f>0&&f<u.length-1){if(l)return!1;l=!0}else if(c&&f===u.length-1);else if(!s.test(u[f]))return!1;return l?u.length>=1:u.length===d}return!1};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/,s=/^[0-9A-F]{1,4}$/i;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],53:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){(0,i.default)(e);var t=e.split("/");return 2===t.length&&!!s.test(t[1])&&!(t[1].length>1&&t[1].startsWith("0"))&&(0,o.default)(t[0],4)&&t[1]<=32&&t[1]>=0};var i=n(e("./util/assertString")),o=n(e("./isIP"));function n(e){return e&&e.__esModule?e:{default:e}}var s=/^\d{1,2}$/;t.exports=r.default,t.exports.default=r.default},{"./isIP":52,"./util/assertString":107}],54:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if((0,o.default)(t),!(r=String(r)))return e(t,10)||e(t,13);var i,u=t.replace(/[\s-]+/g,""),l=0;if("10"===r){if(!n.test(u))return!1;for(i=0;i<9;i++)l+=(i+1)*u.charAt(i);if("X"===u.charAt(9)?l+=100:l+=10*u.charAt(9),l%11==0)return!!u}else if("13"===r){if(!s.test(u))return!1;for(i=0;i<12;i++)l+=a[i%2]*u.charAt(i);if(u.charAt(12)-(10-l%10)%10==0)return!!u}return!1};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^(?:[0-9]{9}X|[0-9]{10})$/,s=/^(?:[0-9]{13})$/,a=[1,3];t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],55:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){if((0,o.default)(e),!n.test(e))return!1;for(var t,r,i=e.replace(/[A-Z]/g,(function(e){return parseInt(e,36)})),s=0,a=!0,u=i.length-2;u>=0;u--)t=i.substring(u,u+1),r=parseInt(t,10),s+=a&&(r*=2)>=10?r+1:r,a=!a;return parseInt(e.substr(e.length-1),10)===(1e4-s)%10};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^[A-Z]{2}[0-9A-Z]{9}[0-9]$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],56:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e),(0,o.default)(s,e.toUpperCase())};var i=n(e("./util/assertString")),o=n(e("./util/includes"));function n(e){return e&&e.__esModule?e:{default:e}}var s=["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"];t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107,"./util/includes":108}],57:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e),(0,o.default)(s,e.toUpperCase())};var i=n(e("./util/assertString")),o=n(e("./util/includes"));function n(e){return e&&e.__esModule?e:{default:e}}var s=["AFG","ALA","ALB","DZA","ASM","AND","AGO","AIA","ATA","ATG","ARG","ARM","ABW","AUS","AUT","AZE","BHS","BHR","BGD","BRB","BLR","BEL","BLZ","BEN","BMU","BTN","BOL","BES","BIH","BWA","BVT","BRA","IOT","BRN","BGR","BFA","BDI","KHM","CMR","CAN","CPV","CYM","CAF","TCD","CHL","CHN","CXR","CCK","COL","COM","COG","COD","COK","CRI","CIV","HRV","CUB","CUW","CYP","CZE","DNK","DJI","DMA","DOM","ECU","EGY","SLV","GNQ","ERI","EST","ETH","FLK","FRO","FJI","FIN","FRA","GUF","PYF","ATF","GAB","GMB","GEO","DEU","GHA","GIB","GRC","GRL","GRD","GLP","GUM","GTM","GGY","GIN","GNB","GUY","HTI","HMD","VAT","HND","HKG","HUN","ISL","IND","IDN","IRN","IRQ","IRL","IMN","ISR","ITA","JAM","JPN","JEY","JOR","KAZ","KEN","KIR","PRK","KOR","KWT","KGZ","LAO","LVA","LBN","LSO","LBR","LBY","LIE","LTU","LUX","MAC","MKD","MDG","MWI","MYS","MDV","MLI","MLT","MHL","MTQ","MRT","MUS","MYT","MEX","FSM","MDA","MCO","MNG","MNE","MSR","MAR","MOZ","MMR","NAM","NRU","NPL","NLD","NCL","NZL","NIC","NER","NGA","NIU","NFK","MNP","NOR","OMN","PAK","PLW","PSE","PAN","PNG","PRY","PER","PHL","PCN","POL","PRT","PRI","QAT","REU","ROU","RUS","RWA","BLM","SHN","KNA","LCA","MAF","SPM","VCT","WSM","SMR","STP","SAU","SEN","SRB","SYC","SLE","SGP","SXM","SVK","SVN","SLB","SOM","ZAF","SGS","SSD","ESP","LKA","SDN","SUR","SJM","SWZ","SWE","CHE","SYR","TWN","TJK","TZA","THA","TLS","TGO","TKL","TON","TTO","TUN","TUR","TKM","TCA","TUV","UGA","UKR","ARE","GBR","USA","UMI","URY","UZB","VUT","VEN","VNM","VGB","VIR","WLF","ESH","YEM","ZMB","ZWE"];t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107,"./util/includes":108}],58:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,o.default)(e);var r=t.strictSeparator?s.test(e):n.test(e);return r&&t.strict?a(e):r};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T\s]((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([\.,]\d+(?!:))?)?(\17[0-5]\d([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/,s=/^([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T]((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([\.,]\d+(?!:))?)?(\17[0-5]\d([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/,a=function(e){var t=e.match(/^(\d{4})-?(\d{3})([ T]{1}\.*|$)/);if(t){var r=Number(t[1]),i=Number(t[2]);return r%4==0&&r%100!=0||r%400==0?i<=366:i<=365}var o=e.match(/(\d{4})-?(\d{0,2})-?(\d*)/).map(Number),n=o[1],s=o[2],a=o[3],u=s?"0".concat(s).slice(-2):s,l=a?"0".concat(a).slice(-2):a,c=new Date("".concat(n,"-").concat(u||"01","-").concat(l||"01"));return!s||!a||c.getUTCFullYear()===n&&c.getUTCMonth()+1===s&&c.getUTCDate()===a};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],59:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^[A-Z]{2}[0-9A-Z]{3}\d{2}\d{5}$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],60:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,o.default)(e);var r=n;if(r=t.require_hyphen?r.replace("?",""):r,!(r=t.case_sensitive?new RegExp(r):new RegExp(r,"i")).test(e))return!1;for(var i=e.replace("-","").toUpperCase(),s=0,a=0;a<i.length;a++){var u=i[a];s+=("X"===u?10:+u)*(8-a)}return s%11==0};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n="^\\d{4}-?\\d{3}[\\dX]$";t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],61:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){if((0,o.default)(e),t in n)return n[t](e);if("any"===t){for(var r in n)if(n.hasOwnProperty(r)&&(0,n[r])(e))return!0;return!1}throw new Error("Invalid locale '".concat(t,"'"))};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n={ES:function(e){(0,o.default)(e);var t={X:0,Y:1,Z:2},r=e.trim().toUpperCase();if(!/^[0-9X-Z][0-9]{7}[TRWAGMYFPDXBNJZSQVHLCKE]$/.test(r))return!1;var i=r.slice(0,-1).replace(/[X,Y,Z]/g,(function(e){return t[e]}));return r.endsWith(["T","R","W","A","G","M","Y","F","P","D","X","B","N","J","Z","S","Q","V","H","L","C","K","E"][i%23])},IN:function(e){var t=[[0,1,2,3,4,5,6,7,8,9],[1,2,3,4,0,6,7,8,9,5],[2,3,4,0,1,7,8,9,5,6],[3,4,0,1,2,8,9,5,6,7],[4,0,1,2,3,9,5,6,7,8],[5,9,8,7,6,0,4,3,2,1],[6,5,9,8,7,1,0,4,3,2],[7,6,5,9,8,2,1,0,4,3],[8,7,6,5,9,3,2,1,0,4],[9,8,7,6,5,4,3,2,1,0]],r=[[0,1,2,3,4,5,6,7,8,9],[1,5,7,6,2,8,3,0,9,4],[5,8,0,3,7,9,6,1,4,2],[8,9,1,6,0,4,3,5,2,7],[9,4,5,3,1,2,6,8,7,0],[4,2,8,6,5,7,3,9,0,1],[2,7,9,3,8,0,6,4,1,5],[7,0,4,6,9,1,3,2,5,8]],i=e.trim();if(!/^[1-9]\d{3}\s?\d{4}\s?\d{4}$/.test(i))return!1;var o=0;return i.replace(/\s/g,"").split("").map(Number).reverse().forEach((function(e,i){o=t[o][r[i%8][e]]})),0===o},IT:function(e){return 9===e.length&&"CA00000AA"!==e&&e.search(/C[A-Z][0-9]{5}[A-Z]{2}/i)>-1},NO:function(e){var t=e.trim();if(isNaN(Number(t)))return!1;if(11!==t.length)return!1;if("00000000000"===t)return!1;var r=t.split("").map(Number),i=(11-(3*r[0]+7*r[1]+6*r[2]+1*r[3]+8*r[4]+9*r[5]+4*r[6]+5*r[7]+2*r[8])%11)%11,o=(11-(5*r[0]+4*r[1]+3*r[2]+2*r[3]+7*r[4]+6*r[5]+5*r[6]+4*r[7]+3*r[8]+2*i)%11)%11;return i===r[9]&&o===r[10]},"he-IL":function(e){var t=e.trim();if(!/^\d{9}$/.test(t))return!1;for(var r,i=t,o=0,n=0;n<i.length;n++)o+=(r=Number(i[n])*(n%2+1))>9?r-9:r;return o%10==0},"ar-TN":function(e){var t=e.trim();return!!/^\d{8}$/.test(t)},"zh-CN":function(e){var t,r=["11","12","13","14","15","21","22","23","31","32","33","34","35","36","37","41","42","43","44","45","46","50","51","52","53","54","61","62","63","64","65","71","81","82","91"],i=["7","9","10","5","8","4","2","1","6","3","7","9","10","5","8","4","2"],o=["1","0","X","9","8","7","6","5","4","3","2"],n=function(e){return r.includes(e)},s=function(e){var t=parseInt(e.substring(0,4),10),r=parseInt(e.substring(4,6),10),i=parseInt(e.substring(6),10),o=new Date(t,r-1,i);return!(o>new Date)&&o.getFullYear()===t&&o.getMonth()===r-1&&o.getDate()===i},a=function(e){return function(e){for(var t=e.substring(0,17),r=0,n=0;n<17;n++)r+=parseInt(t.charAt(n),10)*parseInt(i[n],10);return o[r%11]}(e)===e.charAt(17).toUpperCase()};return!!/^\d{15}|(\d{17}(\d|x|X))$/.test(t=e)&&(15===t.length?function(e){var t=/^[1-9]\d{7}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\d{3}$/.test(e);if(!t)return!1;var r=e.substring(0,2);if(!(t=n(r)))return!1;var i="19".concat(e.substring(6,12));return!!(t=s(i))}(t):function(e){var t=/^[1-9]\d{5}[1-9]\d{3}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\d{3}(\d|x|X)$/.test(e);if(!t)return!1;var r=e.substring(0,2);if(!(t=n(r)))return!1;var i=e.substring(6,14);return!!(t=s(i))&&a(e)}(t))},"zh-TW":function(e){var t={A:10,B:11,C:12,D:13,E:14,F:15,G:16,H:17,I:34,J:18,K:19,L:20,M:21,N:22,O:35,P:23,Q:24,R:25,S:26,T:27,U:28,V:29,W:32,X:30,Y:31,Z:33},r=e.trim().toUpperCase();return!!/^[A-Z][0-9]{9}$/.test(r)&&Array.from(r).reduce((function(e,r,i){if(0===i){var o=t[r];return o%10*9+Math.floor(o/10)}return 9===i?(10-e%10-Number(r))%10==0:e+Number(r)*(9-i)}),0)}};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],62:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){var r;if((0,i.default)(e),"[object Array]"===Object.prototype.toString.call(t)){var n=[];for(r in t)({}).hasOwnProperty.call(t,r)&&(n[r]=(0,o.default)(t[r]));return n.indexOf(e)>=0}return"object"===s(t)?t.hasOwnProperty(e):!(!t||"function"!=typeof t.indexOf)&&t.indexOf(e)>=0};var i=n(e("./util/assertString")),o=n(e("./util/toString"));function n(e){return e&&e.__esModule?e:{default:e}}function s(e){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107,"./util/toString":111}],63:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){(0,o.default)(e);var r=(t=t||{}).hasOwnProperty("allow_leading_zeroes")&&!t.allow_leading_zeroes?n:s,i=!t.hasOwnProperty("min")||e>=t.min,a=!t.hasOwnProperty("max")||e<=t.max,u=!t.hasOwnProperty("lt")||e<t.lt,l=!t.hasOwnProperty("gt")||e>t.gt;return r.test(e)&&i&&a&&u&&l};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^(?:[-+]?(?:0|[1-9][0-9]*))$/,s=/^[-+]?[0-9]+$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],64:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){(0,i.default)(e);try{t=(0,o.default)(t,a);var r=[];t.allow_primitives&&(r=[null,!1,!0]);var n=JSON.parse(e);return r.includes(n)||!!n&&"object"===s(n)}catch(e){}return!1};var i=n(e("./util/assertString")),o=n(e("./util/merge"));function n(e){return e&&e.__esModule?e:{default:e}}function s(e){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var a={allow_primitives:!1};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107,"./util/merge":109}],65:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){(0,i.default)(e);var t=e.split("."),r=t.length;return!(r>3||r<2)&&t.reduce((function(e,t){return e&&(0,o.default)(t,{urlSafe:!0})}),!0)};var i=n(e("./util/assertString")),o=n(e("./isBase64"));function n(e){return e&&e.__esModule?e:{default:e}}t.exports=r.default,t.exports.default=r.default},{"./isBase64":27,"./util/assertString":107}],66:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){if((0,i.default)(e),t=(0,o.default)(t,c),!e.includes(","))return!1;var r=e.split(",");return!(r[0].startsWith("(")&&!r[1].endsWith(")")||r[1].endsWith(")")&&!r[0].startsWith("("))&&(t.checkDMS?u.test(r[0])&&l.test(r[1]):s.test(r[0])&&a.test(r[1]))};var i=n(e("./util/assertString")),o=n(e("./util/merge"));function n(e){return e&&e.__esModule?e:{default:e}}var s=/^\(?[+-]?(90(\.0+)?|[1-8]?\d(\.\d+)?)$/,a=/^\s?[+-]?(180(\.0+)?|1[0-7]\d(\.\d+)?|\d{1,2}(\.\d+)?)\)?$/,u=/^(([1-8]?\d)\D+([1-5]?\d|60)\D+([1-5]?\d|60)(\.\d+)?|90\D+0\D+0)\D+[NSns]?$/i,l=/^\s*([1-7]?\d{1,2}\D+([1-5]?\d|60)\D+([1-5]?\d|60)(\.\d+)?|180\D+0\D+0)\D+[EWew]?$/i,c={checkDMS:!1};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107,"./util/merge":109}],67:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){var r,i;(0,o.default)(e),"object"===n(t)?(r=t.min||0,i=t.max):(r=arguments[1]||0,i=arguments[2]);var s=e.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g)||[],a=e.length-s.length;return a>=r&&(void 0===i||a<=i)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],68:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),"en_US_POSIX"===e||"ca_ES_VALENCIA"===e||n.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^[A-z]{2,4}([_-]([A-z]{4}|[\d]{3}))?([_-]([A-z]{2}|[\d]{3}))?$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],69:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),e===e.toLowerCase()};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],70:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){return(0,o.default)(e),t&&t.no_colons?s.test(e):n.test(e)||a.test(e)||u.test(e)||l.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$/,s=/^([0-9a-fA-F]){12}$/,a=/^([0-9a-fA-F][0-9a-fA-F]-){5}([0-9a-fA-F][0-9a-fA-F])$/,u=/^([0-9a-fA-F][0-9a-fA-F]\s){5}([0-9a-fA-F][0-9a-fA-F])$/,l=/^([0-9a-fA-F]{4}).([0-9a-fA-F]{4}).([0-9a-fA-F]{4})$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],71:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^[a-f0-9]{32}$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],72:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e.trim())};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^magnet:\?xt=urn:[a-z0-9]+:[a-z0-9]{32,40}&dn=.+&tr=.+$/i;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],73:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e)||s.test(e)||a.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^(application|audio|font|image|message|model|multipart|text|video)\/[a-zA-Z0-9\.\-\+]{1,100}$/i,s=/^text\/[a-zA-Z0-9\.\-\+]{1,100};\s?charset=("[a-zA-Z0-9\.\-\+\s]{0,70}"|[a-zA-Z0-9\.\-\+]{0,70})(\s?\([a-zA-Z0-9\.\-\+\s]{1,20}\))?$/i,a=/^multipart\/[a-zA-Z0-9\.\-\+]{1,100}(;\s?(boundary|charset)=("[a-zA-Z0-9\.\-\+\s]{0,70}"|[a-zA-Z0-9\.\-\+]{0,70})(\s?\([a-zA-Z0-9\.\-\+\s]{1,20}\))?){0,2}$/i;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],74:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t,r){if((0,o.default)(e),r&&r.strictMode&&!e.startsWith("+"))return!1;if(Array.isArray(t))return t.some((function(t){return!(!n.hasOwnProperty(t)||!n[t].test(e))}));if(t in n)return n[t].test(e);if(!t||"any"===t){for(var i in n)if(n.hasOwnProperty(i)&&n[i].test(e))return!0;return!1}throw new Error("Invalid locale '".concat(t,"'"))},r.locales=void 0;var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n={"am-AM":/^(\+?374|0)((10|[9|7][0-9])\d{6}$|[2-4]\d{7}$)/,"ar-AE":/^((\+?971)|0)?5[024568]\d{7}$/,"ar-BH":/^(\+?973)?(3|6)\d{7}$/,"ar-DZ":/^(\+?213|0)(5|6|7)\d{8}$/,"ar-LB":/^(\+?961)?((3|81)\d{6}|7\d{7})$/,"ar-EG":/^((\+?20)|0)?1[0125]\d{8}$/,"ar-IQ":/^(\+?964|0)?7[0-9]\d{8}$/,"ar-JO":/^(\+?962|0)?7[789]\d{7}$/,"ar-KW":/^(\+?965)[569]\d{7}$/,"ar-LY":/^((\+?218)|0)?(9[1-6]\d{7}|[1-8]\d{7,9})$/,"ar-MA":/^(?:(?:\+|00)212|0)[5-7]\d{8}$/,"ar-SA":/^(!?(\+?966)|0)?5\d{8}$/,"ar-SY":/^(!?(\+?963)|0)?9\d{8}$/,"ar-TN":/^(\+?216)?[2459]\d{7}$/,"az-AZ":/^(\+994|0)(5[015]|7[07]|99)\d{7}$/,"bs-BA":/^((((\+|00)3876)|06))((([0-3]|[5-6])\d{6})|(4\d{7}))$/,"be-BY":/^(\+?375)?(24|25|29|33|44)\d{7}$/,"bg-BG":/^(\+?359|0)?8[789]\d{7}$/,"bn-BD":/^(\+?880|0)1[13456789][0-9]{8}$/,"ca-AD":/^(\+376)?[346]\d{5}$/,"cs-CZ":/^(\+?420)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,"da-DK":/^(\+?45)?\s?\d{2}\s?\d{2}\s?\d{2}\s?\d{2}$/,"de-DE":/^(\+49)?0?[1|3]([0|5][0-45-9]\d|6([23]|0\d?)|7([0-57-9]|6\d))\d{7}$/,"de-AT":/^(\+43|0)\d{1,4}\d{3,12}$/,"de-CH":/^(\+41|0)(7[5-9])\d{1,7}$/,"de-LU":/^(\+352)?((6\d1)\d{6})$/,"el-GR":/^(\+?30|0)?(69\d{8})$/,"en-AU":/^(\+?61|0)4\d{8}$/,"en-GB":/^(\+?44|0)7\d{9}$/,"en-GG":/^(\+?44|0)1481\d{6}$/,"en-GH":/^(\+233|0)(20|50|24|54|27|57|26|56|23|28)\d{7}$/,"en-HK":/^(\+?852[-\s]?)?[456789]\d{3}[-\s]?\d{4}$/,"en-MO":/^(\+?853[-\s]?)?[6]\d{3}[-\s]?\d{4}$/,"en-IE":/^(\+?353|0)8[356789]\d{7}$/,"en-IN":/^(\+?91|0)?[6789]\d{9}$/,"en-KE":/^(\+?254|0)(7|1)\d{8}$/,"en-MT":/^(\+?356|0)?(99|79|77|21|27|22|25)[0-9]{6}$/,"en-MU":/^(\+?230|0)?\d{8}$/,"en-NG":/^(\+?234|0)?[789]\d{9}$/,"en-NZ":/^(\+?64|0)[28]\d{7,9}$/,"en-PK":/^((\+92)|(0092))-{0,1}\d{3}-{0,1}\d{7}$|^\d{11}$|^\d{4}-\d{7}$/,"en-PH":/^(09|\+639)\d{9}$/,"en-RW":/^(\+?250|0)?[7]\d{8}$/,"en-SG":/^(\+65)?[689]\d{7}$/,"en-SL":/^(?:0|94|\+94)?(7(0|1|2|5|6|7|8)( |-)?\d)\d{6}$/,"en-TZ":/^(\+?255|0)?[67]\d{8}$/,"en-UG":/^(\+?256|0)?[7]\d{8}$/,"en-US":/^((\+1|1)?( |-)?)?(\([2-9][0-9]{2}\)|[2-9][0-9]{2})( |-)?([2-9][0-9]{2}( |-)?[0-9]{4})$/,"en-ZA":/^(\+?27|0)\d{9}$/,"en-ZM":/^(\+?26)?09[567]\d{7}$/,"en-ZW":/^(\+263)[0-9]{9}$/,"es-AR":/^\+?549(11|[2368]\d)\d{8}$/,"es-BO":/^(\+?591)?(6|7)\d{7}$/,"es-CO":/^(\+?57)?([1-8]{1}|3[0-9]{2})?[2-9]{1}\d{6}$/,"es-CL":/^(\+?56|0)[2-9]\d{1}\d{7}$/,"es-CR":/^(\+506)?[2-8]\d{7}$/,"es-DO":/^(\+?1)?8[024]9\d{7}$/,"es-HN":/^(\+?504)?[9|8]\d{7}$/,"es-EC":/^(\+?593|0)([2-7]|9[2-9])\d{7}$/,"es-ES":/^(\+?34)?[6|7]\d{8}$/,"es-PE":/^(\+?51)?9\d{8}$/,"es-MX":/^(\+?52)?(1|01)?\d{10,11}$/,"es-PA":/^(\+?507)\d{7,8}$/,"es-PY":/^(\+?595|0)9[9876]\d{7}$/,"es-UY":/^(\+598|0)9[1-9][\d]{6}$/,"et-EE":/^(\+?372)?\s?(5|8[1-4])\s?([0-9]\s?){6,7}$/,"fa-IR":/^(\+?98[\-\s]?|0)9[0-39]\d[\-\s]?\d{3}[\-\s]?\d{4}$/,"fi-FI":/^(\+?358|0)\s?(4(0|1|2|4|5|6)?|50)\s?(\d\s?){4,8}\d$/,"fj-FJ":/^(\+?679)?\s?\d{3}\s?\d{4}$/,"fo-FO":/^(\+?298)?\s?\d{2}\s?\d{2}\s?\d{2}$/,"fr-FR":/^(\+?33|0)[67]\d{8}$/,"fr-GF":/^(\+?594|0|00594)[67]\d{8}$/,"fr-GP":/^(\+?590|0|00590)[67]\d{8}$/,"fr-MQ":/^(\+?596|0|00596)[67]\d{8}$/,"fr-RE":/^(\+?262|0|00262)[67]\d{8}$/,"he-IL":/^(\+972|0)([23489]|5[012345689]|77)[1-9]\d{6}$/,"hu-HU":/^(\+?36)(20|30|70)\d{7}$/,"id-ID":/^(\+?62|0)8(1[123456789]|2[1238]|3[1238]|5[12356789]|7[78]|9[56789]|8[123456789])([\s?|\d]{5,11})$/,"it-IT":/^(\+?39)?\s?3\d{2} ?\d{6,7}$/,"it-SM":/^((\+378)|(0549)|(\+390549)|(\+3780549))?6\d{5,9}$/,"ja-JP":/^(\+81[ \-]?(\(0\))?|0)[6789]0[ \-]?\d{4}[ \-]?\d{4}$/,"ka-GE":/^(\+?995)?(5|79)\d{7}$/,"kk-KZ":/^(\+?7|8)?7\d{9}$/,"kl-GL":/^(\+?299)?\s?\d{2}\s?\d{2}\s?\d{2}$/,"ko-KR":/^((\+?82)[ \-]?)?0?1([0|1|6|7|8|9]{1})[ \-]?\d{3,4}[ \-]?\d{4}$/,"lt-LT":/^(\+370|8)\d{8}$/,"ms-MY":/^(\+?6?01){1}(([0145]{1}(\-|\s)?\d{7,8})|([236789]{1}(\s|\-)?\d{7}))$/,"nb-NO":/^(\+?47)?[49]\d{7}$/,"ne-NP":/^(\+?977)?9[78]\d{8}$/,"nl-BE":/^(\+?32|0)4?\d{8}$/,"nl-NL":/^(((\+|00)?31\(0\))|((\+|00)?31)|0)6{1}\d{8}$/,"nn-NO":/^(\+?47)?[49]\d{7}$/,"pl-PL":/^(\+?48)? ?[5-8]\d ?\d{3} ?\d{2} ?\d{2}$/,"pt-BR":/^((\+?55\ ?[1-9]{2}\ ?)|(\+?55\ ?\([1-9]{2}\)\ ?)|(0[1-9]{2}\ ?)|(\([1-9]{2}\)\ ?)|([1-9]{2}\ ?))((\d{4}\-?\d{4})|(9[2-9]{1}\d{3}\-?\d{4}))$/,"pt-PT":/^(\+?351)?9[1236]\d{7}$/,"ro-RO":/^(\+?4?0)\s?7\d{2}(\/|\s|\.|\-)?\d{3}(\s|\.|\-)?\d{3}$/,"ru-RU":/^(\+?7|8)?9\d{9}$/,"sl-SI":/^(\+386\s?|0)(\d{1}\s?\d{3}\s?\d{2}\s?\d{2}|\d{2}\s?\d{3}\s?\d{3})$/,"sk-SK":/^(\+?421)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,"sq-AL":/^(\+355|0)6[789]\d{6}$/,"sr-RS":/^(\+3816|06)[- \d]{5,9}$/,"sv-SE":/^(\+?46|0)[\s\-]?7[\s\-]?[02369]([\s\-]?\d){7}$/,"th-TH":/^(\+66|66|0)\d{9}$/,"tr-TR":/^(\+?90|0)?5\d{9}$/,"uk-UA":/^(\+?38|8)?0\d{9}$/,"uz-UZ":/^(\+?998)?(6[125-79]|7[1-69]|88|9\d)\d{7}$/,"vi-VN":/^(\+?84|0)((3([2-9]))|(5([2689]))|(7([0|6-9]))|(8([1-6|89]))|(9([0-9])))([0-9]{7})$/,"zh-CN":/^((\+|00)86)?1([3568][0-9]|4[579]|6[67]|7[01235678]|9[012356789])[0-9]{8}$/,"zh-TW":/^(\+?886\-?|0)?9\d{8}$/};n["en-CA"]=n["en-US"],n["fr-CA"]=n["en-CA"],n["fr-BE"]=n["nl-BE"],n["zh-HK"]=n["en-HK"],n["zh-MO"]=n["en-MO"],n["ga-IE"]=n["en-IE"];var s=Object.keys(n);r.locales=s},{"./util/assertString":107}],75:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e),(0,o.default)(e)&&24===e.length};var i=n(e("./util/assertString")),o=n(e("./isHexadecimal"));function n(e){return e&&e.__esModule?e:{default:e}}t.exports=r.default,t.exports.default=r.default},{"./isHexadecimal":49,"./util/assertString":107}],76:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/[^\x00-\x7F]/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],77:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){return(0,o.default)(e),t&&t.no_symbols?s.test(e):new RegExp("^[+-]?([0-9]*[".concat((t||{}).locale?n.decimal[t.locale]:".","])?[0-9]+$")).test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=e("./alpha"),s=/^[0-9]+$/;t.exports=r.default,t.exports.default=r.default},{"./alpha":15,"./util/assertString":107}],78:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^(0o)?[0-7]+$/i;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],79:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){(0,o.default)(e);var r=e.replace(/\s/g,"").toUpperCase();return t.toUpperCase()in n&&n[t].test(r)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n={AM:/^[A-Z]{2}\d{7}$/,AR:/^[A-Z]{3}\d{6}$/,AT:/^[A-Z]\d{7}$/,AU:/^[A-Z]\d{7}$/,BE:/^[A-Z]{2}\d{6}$/,BG:/^\d{9}$/,BY:/^[A-Z]{2}\d{7}$/,CA:/^[A-Z]{2}\d{6}$/,CH:/^[A-Z]\d{7}$/,CN:/^[GE]\d{8}$/,CY:/^[A-Z](\d{6}|\d{8})$/,CZ:/^\d{8}$/,DE:/^[CFGHJKLMNPRTVWXYZ0-9]{9}$/,DK:/^\d{9}$/,DZ:/^\d{9}$/,EE:/^([A-Z]\d{7}|[A-Z]{2}\d{7})$/,ES:/^[A-Z0-9]{2}([A-Z0-9]?)\d{6}$/,FI:/^[A-Z]{2}\d{7}$/,FR:/^\d{2}[A-Z]{2}\d{5}$/,GB:/^\d{9}$/,GR:/^[A-Z]{2}\d{7}$/,HR:/^\d{9}$/,HU:/^[A-Z]{2}(\d{6}|\d{7})$/,IE:/^[A-Z0-9]{2}\d{7}$/,IN:/^[A-Z]{1}-?\d{7}$/,IS:/^(A)\d{7}$/,IT:/^[A-Z0-9]{2}\d{7}$/,JP:/^[A-Z]{2}\d{7}$/,KR:/^[MS]\d{8}$/,LT:/^[A-Z0-9]{8}$/,LU:/^[A-Z0-9]{8}$/,LV:/^[A-Z0-9]{2}\d{7}$/,MT:/^\d{7}$/,NL:/^[A-Z]{2}[A-Z0-9]{6}\d$/,PO:/^[A-Z]{2}\d{7}$/,PT:/^[A-Z]\d{6}$/,RO:/^\d{8,9}$/,RU:/^\d{2}\d{2}\d{6}$/,SE:/^\d{8}$/,SL:/^(P)[A-Z]\d{7}$/,SK:/^[0-9A-Z]\d{7}$/,TR:/^[A-Z]\d{8}$/,UA:/^[A-Z]{2}\d{6}$/,US:/^\d{9}$/};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],80:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e,{min:0,max:65535})};var i,o=(i=e("./isInt"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./isInt":63}],81:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){if((0,o.default)(e),t in u)return u[t].test(e);if("any"===t){for(var r in u)if(u.hasOwnProperty(r)&&u[r].test(e))return!0;return!1}throw new Error("Invalid locale '".concat(t,"'"))},r.locales=void 0;var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^\d{4}$/,s=/^\d{5}$/,a=/^\d{6}$/,u={AD:/^AD\d{3}$/,AT:n,AU:n,AZ:/^AZ\d{4}$/,BE:n,BG:n,BR:/^\d{5}-\d{3}$/,BY:/2[1-4]{1}\d{4}$/,CA:/^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJ-NPRSTV-Z][\s\-]?\d[ABCEGHJ-NPRSTV-Z]\d$/i,CH:n,CN:/^(0[1-7]|1[012356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[1-5]|8[1345]|9[09])\d{4}$/,CZ:/^\d{3}\s?\d{2}$/,DE:s,DK:n,DO:s,DZ:s,EE:s,ES:/^(5[0-2]{1}|[0-4]{1}\d{1})\d{3}$/,FI:s,FR:/^\d{2}\s?\d{3}$/,GB:/^(gir\s?0aa|[a-z]{1,2}\d[\da-z]?\s?(\d[a-z]{2})?)$/i,GR:/^\d{3}\s?\d{2}$/,HR:/^([1-5]\d{4}$)/,HT:/^HT\d{4}$/,HU:n,ID:s,IE:/^(?!.*(?:o))[A-z]\d[\dw]\s\w{4}$/i,IL:/^(\d{5}|\d{7})$/,IN:/^((?!10|29|35|54|55|65|66|86|87|88|89)[1-9][0-9]{5})$/,IR:/\b(?!(\d)\1{3})[13-9]{4}[1346-9][013-9]{5}\b/,IS:/^\d{3}$/,IT:s,JP:/^\d{3}\-\d{4}$/,KE:s,LI:/^(948[5-9]|949[0-7])$/,LT:/^LT\-\d{5}$/,LU:n,LV:/^LV\-\d{4}$/,MX:s,MT:/^[A-Za-z]{3}\s{0,1}\d{4}$/,MY:s,NL:/^\d{4}\s?[a-z]{2}$/i,NO:n,NP:/^(10|21|22|32|33|34|44|45|56|57)\d{3}$|^(977)$/i,NZ:n,PL:/^\d{2}\-\d{3}$/,PR:/^00[679]\d{2}([ -]\d{4})?$/,PT:/^\d{4}\-\d{3}?$/,RO:a,RU:a,SA:s,SE:/^[1-9]\d{2}\s?\d{2}$/,SG:a,SI:n,SK:/^\d{3}\s?\d{2}$/,TH:s,TN:n,TW:/^\d{3}(\d{2})?$/,UA:s,US:/^\d{5}(-\d{4})?$/,ZA:n,ZM:s},l=Object.keys(u);r.locales=l},{"./util/assertString":107}],82:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),f.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/([01][0-9]|2[0-3])/,s=/[0-5][0-9]/,a=new RegExp("[-+]".concat(n.source,":").concat(s.source)),u=new RegExp("([zZ]|".concat(a.source,")")),l=new RegExp("".concat(n.source,":").concat(s.source,":").concat(/([0-5][0-9]|60)/.source).concat(/(\.[0-9]+)?/.source)),c=new RegExp("".concat(/[0-9]{4}/.source,"-").concat(/(0[1-9]|1[0-2])/.source,"-").concat(/([12]\d|0[1-9]|3[01])/.source)),d=new RegExp("".concat(l.source).concat(u.source)),f=new RegExp("".concat(c.source,"[ tT]").concat(d.source));t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],83:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return(0,o.default)(e),t?n.test(e)||s.test(e)||a.test(e)||u.test(e):n.test(e)||s.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^rgb\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){2}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\)$/,s=/^rgba\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){3}(0?\.\d|1(\.0)?|0(\.0)?)\)$/,a=/^rgb\((([0-9]%|[1-9][0-9]%|100%),){2}([0-9]%|[1-9][0-9]%|100%)\)/,u=/^rgba\((([0-9]%|[1-9][0-9]%|100%),){3}(0?\.\d|1(\.0)?|0(\.0)?)\)/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],84:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e),n.test(e)};var i=o(e("./util/assertString"));function o(e){return e&&e.__esModule?e:{default:e}}var n=(0,o(e("./util/multilineRegex")).default)(["^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)","(?:-((?:0|[1-9]\\d*|\\d*[a-z-][0-9a-z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-z-][0-9a-z-]*))*))","?(?:\\+([0-9a-z-]+(?:\\.[0-9a-z-]+)*))?$"],"i");t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107,"./util/multilineRegex":110}],85:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^[^\s-_](?!.*?[-_]{2,})([a-z0-9-\\]{1,})[^\s]*[^-_\s]$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],86:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;(0,o.default)(e);var r=d(e);return(t=(0,i.default)(t||{},c)).returnScore?f(r,t):r.length>=t.minLength&&r.lowercaseCount>=t.minLowercase&&r.uppercaseCount>=t.minUppercase&&r.numberCount>=t.minNumbers&&r.symbolCount>=t.minSymbols};var i=n(e("./util/merge")),o=n(e("./util/assertString"));function n(e){return e&&e.__esModule?e:{default:e}}var s=/^[A-Z]$/,a=/^[a-z]$/,u=/^[0-9]$/,l=/^[-#!$%^&*()_+|~=`{}\[\]:";'<>?,.\/ ]$/,c={minLength:8,minLowercase:1,minUppercase:1,minNumbers:1,minSymbols:1,returnScore:!1,pointsPerUnique:1,pointsPerRepeat:.5,pointsForContainingLower:10,pointsForContainingUpper:10,pointsForContainingNumber:10,pointsForContainingSymbol:10};function d(e){var t,r,i=(t=e,r={},Array.from(t).forEach((function(e){r[e]?r[e]+=1:r[e]=1})),r),o={length:e.length,uniqueChars:Object.keys(i).length,uppercaseCount:0,lowercaseCount:0,numberCount:0,symbolCount:0};return Object.keys(i).forEach((function(e){s.test(e)?o.uppercaseCount+=i[e]:a.test(e)?o.lowercaseCount+=i[e]:u.test(e)?o.numberCount+=i[e]:l.test(e)&&(o.symbolCount+=i[e])})),o}function f(e,t){var r=0;return r+=e.uniqueChars*t.pointsPerUnique,r+=(e.length-e.uniqueChars)*t.pointsPerRepeat,e.lowercaseCount>0&&(r+=t.pointsForContainingLower),e.uppercaseCount>0&&(r+=t.pointsForContainingUpper),e.numberCount>0&&(r+=t.pointsForContainingNumber),e.symbolCount>0&&(r+=t.pointsForContainingSymbol),r}t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107,"./util/merge":109}],87:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/[\uD800-\uDBFF][\uDC00-\uDFFF]/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],88:[function(e,t,r){"use strict";function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"en-US";(0,o.default)(e);var r=e.slice(0);if(t in p)return t in g&&(r=r.replace(g[t],"")),!!p[t].test(r)&&(!(t in m)||m[t](r));throw new Error("Invalid locale '".concat(t,"'"))};var o=u(e("./util/assertString")),n=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==i(e)&&"function"!=typeof e)return{default:e};var t=a();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var s=o?Object.getOwnPropertyDescriptor(e,n):null;s&&(s.get||s.set)?Object.defineProperty(r,n,s):r[n]=e[n]}return r.default=e,t&&t.set(e,r),r}(e("./util/algorithms")),s=u(e("./isDate"));function a(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return a=function(){return e},e}function u(e){return e&&e.__esModule?e:{default:e}}function l(e){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?c(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}var d={andover:["10","12"],atlanta:["60","67"],austin:["50","53"],brookhaven:["01","02","03","04","05","06","11","13","14","16","21","22","23","25","34","51","52","54","55","56","57","58","59","65"],cincinnati:["30","32","35","36","37","38","61"],fresno:["15","24"],internet:["20","26","27","45","46","47"],kansas:["40","44"],memphis:["94","95"],ogden:["80","90"],philadelphia:["33","39","41","42","43","46","48","62","63","64","66","68","71","72","73","74","75","76","77","81","82","83","84","85","86","87","88","91","92","93","98","99"],sba:["31"]};function f(e){for(var t=!1,r=!1,i=0;i<3;i++)if(!t&&/[AEIOU]/.test(e[i]))t=!0;else if(!r&&t&&"X"===e[i])r=!0;else if(i>0){if(t&&!r&&!/[AEIOU]/.test(e[i]))return!1;if(r&&!/X/.test(e[i]))return!1}return!0}var p={"bg-BG":/^\d{10}$/,"cs-CZ":/^\d{6}\/{0,1}\d{3,4}$/,"de-AT":/^\d{9}$/,"de-DE":/^[1-9]\d{10}$/,"dk-DK":/^\d{6}-{0,1}\d{4}$/,"el-CY":/^[09]\d{7}[A-Z]$/,"el-GR":/^([0-4]|[7-9])\d{8}$/,"en-GB":/^\d{10}$|^(?!GB|NK|TN|ZZ)(?![DFIQUV])[A-Z](?![DFIQUVO])[A-Z]\d{6}[ABCD ]$/i,"en-IE":/^\d{7}[A-W][A-IW]{0,1}$/i,"en-US":/^\d{2}[- ]{0,1}\d{7}$/,"es-ES":/^(\d{0,8}|[XYZKLM]\d{7})[A-HJ-NP-TV-Z]$/i,"et-EE":/^[1-6]\d{6}(00[1-9]|0[1-9][0-9]|[1-6][0-9]{2}|70[0-9]|710)\d$/,"fi-FI":/^\d{6}[-+A]\d{3}[0-9A-FHJ-NPR-Y]$/i,"fr-BE":/^\d{11}$/,"fr-FR":/^[0-3]\d{12}$|^[0-3]\d\s\d{2}(\s\d{3}){3}$/,"fr-LU":/^\d{13}$/,"hr-HR":/^\d{11}$/,"hu-HU":/^8\d{9}$/,"it-IT":/^[A-Z]{6}[L-NP-V0-9]{2}[A-EHLMPRST][L-NP-V0-9]{2}[A-ILMZ][L-NP-V0-9]{3}[A-Z]$/i,"lv-LV":/^\d{6}-{0,1}\d{5}$/,"mt-MT":/^\d{3,7}[APMGLHBZ]$|^([1-8])\1\d{7}$/i,"nl-NL":/^\d{9}$/,"pl-PL":/^\d{10,11}$/,"pt-PT":/^\d{9}$/,"ro-RO":/^\d{13}$/,"sk-SK":/^\d{6}\/{0,1}\d{3,4}$/,"sl-SI":/^[1-9]\d{7}$/,"sv-SE":/^(\d{6}[-+]{0,1}\d{4}|(18|19|20)\d{6}[-+]{0,1}\d{4})$/};p["lb-LU"]=p["fr-LU"],p["lt-LT"]=p["et-EE"],p["nl-BE"]=p["fr-BE"];var m={"bg-BG":function(e){var t=e.slice(0,2),r=parseInt(e.slice(2,4),10);r>40?(r-=40,t="20".concat(t)):r>20?(r-=20,t="18".concat(t)):t="19".concat(t),r<10&&(r="0".concat(r));var i="".concat(t,"/").concat(r,"/").concat(e.slice(4,6));if(!(0,s.default)(i,"YYYY/MM/DD"))return!1;for(var o=e.split("").map((function(e){return parseInt(e,10)})),n=[2,4,8,5,10,9,7,3,6],a=0,u=0;u<n.length;u++)a+=o[u]*n[u];return(a=a%11==10?0:a%11)===o[9]},"cs-CZ":function(e){e=e.replace(/\W/,"");var t=parseInt(e.slice(0,2),10);if(10===e.length)t=t<54?"20".concat(t):"19".concat(t);else{if("000"===e.slice(6))return!1;if(!(t<54))return!1;t="19".concat(t)}3===t.length&&(t=[t.slice(0,2),"0",t.slice(2)].join(""));var r=parseInt(e.slice(2,4),10);if(r>50&&(r-=50),r>20){if(parseInt(t,10)<2004)return!1;r-=20}r<10&&(r="0".concat(r));var i="".concat(t,"/").concat(r,"/").concat(e.slice(4,6));if(!(0,s.default)(i,"YYYY/MM/DD"))return!1;if(10===e.length&&parseInt(e,10)%11!=0){var o=parseInt(e.slice(0,9),10)%11;if(!(parseInt(t,10)<1986&&10===o))return!1;if(0!==parseInt(e.slice(9),10))return!1}return!0},"de-AT":function(e){return n.luhnCheck(e)},"de-DE":function(e){for(var t=e.split("").map((function(e){return parseInt(e,10)})),r=[],i=0;i<t.length-1;i++){r.push("");for(var o=0;o<t.length-1;o++)t[i]===t[o]&&(r[i]+=o)}if(2!==(r=r.filter((function(e){return e.length>1}))).length&&3!==r.length)return!1;if(3===r[0].length){for(var s=r[0].split("").map((function(e){return parseInt(e,10)})),a=0,u=0;u<s.length-1;u++)s[u]+1===s[u+1]&&(a+=1);if(2===a)return!1}return n.iso7064Check(e)},"dk-DK":function(e){e=e.replace(/\W/,"");var t=parseInt(e.slice(4,6),10);switch(e.slice(6,7)){case"0":case"1":case"2":case"3":t="19".concat(t);break;case"4":case"9":t=t<37?"20".concat(t):"19".concat(t);break;default:if(t<37)t="20".concat(t);else{if(!(t>58))return!1;t="18".concat(t)}}3===t.length&&(t=[t.slice(0,2),"0",t.slice(2)].join(""));var r="".concat(t,"/").concat(e.slice(2,4),"/").concat(e.slice(0,2));if(!(0,s.default)(r,"YYYY/MM/DD"))return!1;for(var i=e.split("").map((function(e){return parseInt(e,10)})),o=0,n=4,a=0;a<9;a++)o+=i[a]*n,1==(n-=1)&&(n=7);return 1!=(o%=11)&&(0===o?0===i[9]:i[9]===11-o)},"el-CY":function(e){for(var t=e.slice(0,8).split("").map((function(e){return parseInt(e,10)})),r=0,i=1;i<t.length;i+=2)r+=t[i];for(var o=0;o<t.length;o+=2)t[o]<2?r+=1-t[o]:(r+=2*(t[o]-2)+5,t[o]>4&&(r+=2));return String.fromCharCode(r%26+65)===e.charAt(8)},"el-GR":function(e){for(var t=e.split("").map((function(e){return parseInt(e,10)})),r=0,i=0;i<8;i++)r+=t[i]*Math.pow(2,8-i);return r%11===t[8]},"en-IE":function(e){var t=n.reverseMultiplyAndSum(e.split("").slice(0,7).map((function(e){return parseInt(e,10)})),8);return 9===e.length&&"W"!==e[8]&&(t+=9*(e[8].charCodeAt(0)-64)),0==(t%=23)?"W"===e[7].toUpperCase():e[7].toUpperCase()===String.fromCharCode(64+t)},"en-US":function(e){return-1!==function(){var e=[];for(var t in d)d.hasOwnProperty(t)&&e.push.apply(e,l(d[t]));return e}().indexOf(e.substr(0,2))},"es-ES":function(e){var t=e.toUpperCase().split("");if(isNaN(parseInt(t[0],10))&&t.length>1){var r=0;switch(t[0]){case"Y":r=1;break;case"Z":r=2}t.splice(0,1,r)}else for(;t.length<9;)t.unshift(0);t=t.join("");var i=parseInt(t.slice(0,8),10)%23;return t[8]===["T","R","W","A","G","M","Y","F","P","D","X","B","N","J","Z","S","Q","V","H","L","C","K","E"][i]},"et-EE":function(e){var t=e.slice(1,3);switch(e.slice(0,1)){case"1":case"2":t="18".concat(t);break;case"3":case"4":t="19".concat(t);break;default:t="20".concat(t)}var r="".concat(t,"/").concat(e.slice(3,5),"/").concat(e.slice(5,7));if(!(0,s.default)(r,"YYYY/MM/DD"))return!1;for(var i=e.split("").map((function(e){return parseInt(e,10)})),o=0,n=1,a=0;a<10;a++)o+=i[a]*n,10===(n+=1)&&(n=1);if(o%11==10){o=0,n=3;for(var u=0;u<10;u++)o+=i[u]*n,10===(n+=1)&&(n=1);if(o%11==10)return 0===i[10]}return o%11===i[10]},"fi-FI":function(e){var t=e.slice(4,6);switch(e.slice(6,7)){case"+":t="18".concat(t);break;case"-":t="19".concat(t);break;default:t="20".concat(t)}var r="".concat(t,"/").concat(e.slice(2,4),"/").concat(e.slice(0,2));if(!(0,s.default)(r,"YYYY/MM/DD"))return!1;var i=parseInt(e.slice(0,6)+e.slice(7,10),10)%31;return i<10?i===parseInt(e.slice(10),10):["A","B","C","D","E","F","H","J","K","L","M","N","P","R","S","T","U","V","W","X","Y"][i-=10]===e.slice(10)},"fr-BE":function(e){if("00"!==e.slice(2,4)||"00"!==e.slice(4,6)){var t="".concat(e.slice(0,2),"/").concat(e.slice(2,4),"/").concat(e.slice(4,6));if(!(0,s.default)(t,"YY/MM/DD"))return!1}var r=97-parseInt(e.slice(0,9),10)%97,i=parseInt(e.slice(9,11),10);return r===i||(r=97-parseInt("2".concat(e.slice(0,9)),10)%97)===i},"fr-FR":function(e){return e=e.replace(/\s/g,""),parseInt(e.slice(0,10),10)%511===parseInt(e.slice(10,13),10)},"fr-LU":function(e){var t="".concat(e.slice(0,4),"/").concat(e.slice(4,6),"/").concat(e.slice(6,8));return!!(0,s.default)(t,"YYYY/MM/DD")&&!!n.luhnCheck(e.slice(0,12))&&n.verhoeffCheck("".concat(e.slice(0,11)).concat(e[12]))},"hr-HR":function(e){return n.iso7064Check(e)},"hu-HU":function(e){for(var t=e.split("").map((function(e){return parseInt(e,10)})),r=8,i=1;i<9;i++)r+=t[i]*(i+1);return r%11===t[9]},"it-IT":function(e){var t=e.toUpperCase().split("");if(!f(t.slice(0,3)))return!1;if(!f(t.slice(3,6)))return!1;for(var r={L:"0",M:"1",N:"2",P:"3",Q:"4",R:"5",S:"6",T:"7",U:"8",V:"9"},i=0,o=[6,7,9,10,12,13,14];i<o.length;i++){var n=o[i];t[n]in r&&t.splice(n,1,r[t[n]])}var a={A:"01",B:"02",C:"03",D:"04",E:"05",H:"06",L:"07",M:"08",P:"09",R:"10",S:"11",T:"12"}[t[8]],u=parseInt(t[9]+t[10],10);u>40&&(u-=40),u<10&&(u="0".concat(u));var l="".concat(t[6]).concat(t[7],"/").concat(a,"/").concat(u);if(!(0,s.default)(l,"YY/MM/DD"))return!1;for(var c=0,d=1;d<t.length-1;d+=2){var p=parseInt(t[d],10);isNaN(p)&&(p=t[d].charCodeAt(0)-65),c+=p}for(var m={A:1,B:0,C:5,D:7,E:9,F:13,G:15,H:17,I:19,J:21,K:2,L:4,M:18,N:20,O:11,P:3,Q:6,R:8,S:12,T:14,U:16,V:10,W:22,X:25,Y:24,Z:23,0:1,1:0},h=0;h<t.length-1;h+=2){var g=0;if(t[h]in m)g=m[t[h]];else{var y=parseInt(t[h],10);g=2*y+1,y>4&&(g+=2)}c+=g}return String.fromCharCode(65+c%26)===t[15]},"lv-LV":function(e){var t=(e=e.replace(/\W/,"")).slice(0,2);if("32"!==t){if("00"!==e.slice(2,4)){var r=e.slice(4,6);switch(e[6]){case"0":r="18".concat(r);break;case"1":r="19".concat(r);break;default:r="20".concat(r)}var i="".concat(r,"/").concat(e.slice(2,4),"/").concat(t);if(!(0,s.default)(i,"YYYY/MM/DD"))return!1}for(var o=1101,n=[1,6,3,7,9,10,5,8,4,2],a=0;a<e.length-1;a++)o-=parseInt(e[a],10)*n[a];return parseInt(e[10],10)===o%11}return!0},"mt-MT":function(e){if(9!==e.length){for(var t=e.toUpperCase().split("");t.length<8;)t.unshift(0);switch(e[7]){case"A":case"P":if(0===parseInt(t[6],10))return!1;break;default:var r=parseInt(t.join("").slice(0,5),10);if(r>32e3)return!1;if(r===parseInt(t.join("").slice(5,7),10))return!1}}return!0},"nl-NL":function(e){return n.reverseMultiplyAndSum(e.split("").slice(0,8).map((function(e){return parseInt(e,10)})),9)%11===parseInt(e[8],10)},"pl-PL":function(e){if(10===e.length){for(var t=[6,5,7,2,3,4,5,6,7],r=0,i=0;i<t.length;i++)r+=parseInt(e[i],10)*t[i];return 10!=(r%=11)&&r===parseInt(e[9],10)}var o=e.slice(0,2),n=parseInt(e.slice(2,4),10);n>80?(o="18".concat(o),n-=80):n>60?(o="22".concat(o),n-=60):n>40?(o="21".concat(o),n-=40):n>20?(o="20".concat(o),n-=20):o="19".concat(o),n<10&&(n="0".concat(n));var a="".concat(o,"/").concat(n,"/").concat(e.slice(4,6));if(!(0,s.default)(a,"YYYY/MM/DD"))return!1;for(var u=0,l=1,c=0;c<e.length-1;c++)u+=parseInt(e[c],10)*l%10,(l+=2)>10?l=1:5===l&&(l+=2);return(u=10-u%10)===parseInt(e[10],10)},"pt-PT":function(e){var t=11-n.reverseMultiplyAndSum(e.split("").slice(0,8).map((function(e){return parseInt(e,10)})),9)%11;return t>9?0===parseInt(e[8],10):t===parseInt(e[8],10)},"ro-RO":function(e){if("9000"!==e.slice(0,4)){var t=e.slice(1,3);switch(e[0]){case"1":case"2":t="19".concat(t);break;case"3":case"4":t="18".concat(t);break;case"5":case"6":t="20".concat(t)}var r="".concat(t,"/").concat(e.slice(3,5),"/").concat(e.slice(5,7));if(8===r.length){if(!(0,s.default)(r,"YY/MM/DD"))return!1}else if(!(0,s.default)(r,"YYYY/MM/DD"))return!1;for(var i=e.split("").map((function(e){return parseInt(e,10)})),o=[2,7,9,1,4,6,3,5,8,2,7,9],n=0,a=0;a<o.length;a++)n+=i[a]*o[a];return n%11==10?1===i[12]:i[12]===n%11}return!0},"sk-SK":function(e){if(9===e.length){if("000"===(e=e.replace(/\W/,"")).slice(6))return!1;var t=parseInt(e.slice(0,2),10);if(t>53)return!1;t=t<10?"190".concat(t):"19".concat(t);var r=parseInt(e.slice(2,4),10);r>50&&(r-=50),r<10&&(r="0".concat(r));var i="".concat(t,"/").concat(r,"/").concat(e.slice(4,6));if(!(0,s.default)(i,"YYYY/MM/DD"))return!1}return!0},"sl-SI":function(e){var t=11-n.reverseMultiplyAndSum(e.split("").slice(0,7).map((function(e){return parseInt(e,10)})),8)%11;return 10===t?0===parseInt(e[7],10):t===parseInt(e[7],10)},"sv-SE":function(e){var t=e.slice(0);e.length>11&&(t=t.slice(2));var r="",i=t.slice(2,4),o=parseInt(t.slice(4,6),10);if(e.length>11)r=e.slice(0,4);else if(r=e.slice(0,2),11===e.length&&o<60){var a=(new Date).getFullYear().toString(),u=parseInt(a.slice(0,2),10);if(a=parseInt(a,10),"-"===e[6])r=parseInt("".concat(u).concat(r),10)>a?"".concat(u-1).concat(r):"".concat(u).concat(r);else if(r="".concat(u-1).concat(r),a-parseInt(r,10)<100)return!1}o>60&&(o-=60),o<10&&(o="0".concat(o));var l="".concat(r,"/").concat(i,"/").concat(o);if(8===l.length){if(!(0,s.default)(l,"YY/MM/DD"))return!1}else if(!(0,s.default)(l,"YYYY/MM/DD"))return!1;return n.luhnCheck(e.replace(/\W/,""))}};m["lb-LU"]=m["fr-LU"],m["lt-LT"]=m["et-EE"],m["nl-BE"]=m["fr-BE"];var h=/[-\\\/!@#$%\^&\*\(\)\+\=\[\]]+/g,g={"de-AT":h,"de-DE":/[\/\\]/g,"fr-BE":h};g["nl-BE"]=g["fr-BE"],t.exports=r.default,t.exports.default=r.default},{"./isDate":35,"./util/algorithms":106,"./util/assertString":107}],89:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){if((0,i.default)(e),!e||/[\s<>]/.test(e))return!1;if(0===e.indexOf("mailto:"))return!1;if((t=(0,s.default)(t,u)).validate_length&&e.length>=2083)return!1;var r,a,d,f,p,m,h,g;if(h=e.split("#"),e=h.shift(),h=e.split("?"),e=h.shift(),(h=e.split("://")).length>1){if(r=h.shift().toLowerCase(),t.require_valid_protocol&&-1===t.protocols.indexOf(r))return!1}else{if(t.require_protocol)return!1;if("//"===e.substr(0,2)){if(!t.allow_protocol_relative_urls)return!1;h[0]=e.substr(2)}}if(""===(e=h.join("://")))return!1;if(h=e.split("/"),""===(e=h.shift())&&!t.require_host)return!0;if((h=e.split("@")).length>1){if(t.disallow_auth)return!1;if(-1===(a=h.shift()).indexOf(":")||a.indexOf(":")>=0&&a.split(":").length>2)return!1}m=null,g=null;var y=(f=h.join("@")).match(l);if(y?(d="",g=y[1],m=y[2]||null):(d=(h=f.split(":")).shift(),h.length&&(m=h.join(":"))),null!==m){if(p=parseInt(m,10),!/^[0-9]+$/.test(m)||p<=0||p>65535)return!1}else if(t.require_port)return!1;return!(!((0,n.default)(d)||(0,o.default)(d,t)||g&&(0,n.default)(g,6))||(d=d||g,t.host_whitelist&&!c(d,t.host_whitelist)||t.host_blacklist&&c(d,t.host_blacklist)))};var i=a(e("./util/assertString")),o=a(e("./isFQDN")),n=a(e("./isIP")),s=a(e("./util/merge"));function a(e){return e&&e.__esModule?e:{default:e}}var u={protocols:["http","https","ftp"],require_tld:!0,require_protocol:!1,require_host:!0,require_port:!1,require_valid_protocol:!0,allow_underscores:!1,allow_trailing_dot:!1,allow_protocol_relative_urls:!1,validate_length:!0},l=/^\[([^\]]+)\](?::([0-9]+))?$/;function c(e,t){for(var r=0;r<t.length;r++){var i=t[r];if(e===i||(o=i,"[object RegExp]"===Object.prototype.toString.call(o)&&i.test(e)))return!0}var o;return!1}t.exports=r.default,t.exports.default=r.default},{"./isFQDN":42,"./isIP":52,"./util/assertString":107,"./util/merge":109}],90:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"all";(0,o.default)(e);var r=n[t];return r&&r.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n={3:/^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,4:/^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,5:/^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,all:/^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],91:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),e===e.toUpperCase()};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],92:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){if((0,o.default)(e),(0,o.default)(t),t in n)return n[t].test(e);throw new Error("Invalid country code: '".concat(t,"'"))},r.vatMatchers=void 0;var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n={GB:/^GB((\d{3} \d{4} ([0-8][0-9]|9[0-6]))|(\d{9} \d{3})|(((GD[0-4])|(HA[5-9]))[0-9]{2}))$/};r.vatMatchers=n},{"./util/assertString":107}],93:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.fullWidth.test(e)&&s.halfWidth.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=e("./isFullWidth"),s=e("./isHalfWidth");t.exports=r.default,t.exports.default=r.default},{"./isFullWidth":44,"./isHalfWidth":46,"./util/assertString":107}],94:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){(0,o.default)(e);for(var r=e.length-1;r>=0;r--)if(-1===t.indexOf(e[r]))return!1;return!0};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],95:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){(0,o.default)(e);var r=t?new RegExp("^[".concat(t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"]+"),"g"):/^\s+/g;return e.replace(r,"")};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],96:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t,r){return(0,o.default)(e),"[object RegExp]"!==Object.prototype.toString.call(t)&&(t=new RegExp(t,r)),t.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],97:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){t=(0,o.default)(t,n);var r=e.split("@"),i=r.pop(),d=[r.join("@"),i];if(d[1]=d[1].toLowerCase(),"gmail.com"===d[1]||"googlemail.com"===d[1]){if(t.gmail_remove_subaddress&&(d[0]=d[0].split("+")[0]),t.gmail_remove_dots&&(d[0]=d[0].replace(/\.+/g,c)),!d[0].length)return!1;(t.all_lowercase||t.gmail_lowercase)&&(d[0]=d[0].toLowerCase()),d[1]=t.gmail_convert_googlemaildotcom?"gmail.com":d[1]}else if(s.indexOf(d[1])>=0){if(t.icloud_remove_subaddress&&(d[0]=d[0].split("+")[0]),!d[0].length)return!1;(t.all_lowercase||t.icloud_lowercase)&&(d[0]=d[0].toLowerCase())}else if(a.indexOf(d[1])>=0){if(t.outlookdotcom_remove_subaddress&&(d[0]=d[0].split("+")[0]),!d[0].length)return!1;(t.all_lowercase||t.outlookdotcom_lowercase)&&(d[0]=d[0].toLowerCase())}else if(u.indexOf(d[1])>=0){if(t.yahoo_remove_subaddress){var f=d[0].split("-");d[0]=f.length>1?f.slice(0,-1).join("-"):f[0]}if(!d[0].length)return!1;(t.all_lowercase||t.yahoo_lowercase)&&(d[0]=d[0].toLowerCase())}else l.indexOf(d[1])>=0?((t.all_lowercase||t.yandex_lowercase)&&(d[0]=d[0].toLowerCase()),d[1]="yandex.ru"):t.all_lowercase&&(d[0]=d[0].toLowerCase());return d.join("@")};var i,o=(i=e("./util/merge"))&&i.__esModule?i:{default:i},n={all_lowercase:!0,gmail_lowercase:!0,gmail_remove_dots:!0,gmail_remove_subaddress:!0,gmail_convert_googlemaildotcom:!0,outlookdotcom_lowercase:!0,outlookdotcom_remove_subaddress:!0,yahoo_lowercase:!0,yahoo_remove_subaddress:!0,yandex_lowercase:!0,icloud_lowercase:!0,icloud_remove_subaddress:!0},s=["icloud.com","me.com"],a=["hotmail.at","hotmail.be","hotmail.ca","hotmail.cl","hotmail.co.il","hotmail.co.nz","hotmail.co.th","hotmail.co.uk","hotmail.com","hotmail.com.ar","hotmail.com.au","hotmail.com.br","hotmail.com.gr","hotmail.com.mx","hotmail.com.pe","hotmail.com.tr","hotmail.com.vn","hotmail.cz","hotmail.de","hotmail.dk","hotmail.es","hotmail.fr","hotmail.hu","hotmail.id","hotmail.ie","hotmail.in","hotmail.it","hotmail.jp","hotmail.kr","hotmail.lv","hotmail.my","hotmail.ph","hotmail.pt","hotmail.sa","hotmail.sg","hotmail.sk","live.be","live.co.uk","live.com","live.com.ar","live.com.mx","live.de","live.es","live.eu","live.fr","live.it","live.nl","msn.com","outlook.at","outlook.be","outlook.cl","outlook.co.il","outlook.co.nz","outlook.co.th","outlook.com","outlook.com.ar","outlook.com.au","outlook.com.br","outlook.com.gr","outlook.com.pe","outlook.com.tr","outlook.com.vn","outlook.cz","outlook.de","outlook.dk","outlook.es","outlook.fr","outlook.hu","outlook.id","outlook.ie","outlook.in","outlook.it","outlook.jp","outlook.kr","outlook.lv","outlook.my","outlook.ph","outlook.pt","outlook.sa","outlook.sg","outlook.sk","passport.com"],u=["rocketmail.com","yahoo.ca","yahoo.co.uk","yahoo.com","yahoo.de","yahoo.fr","yahoo.in","yahoo.it","ymail.com"],l=["yandex.ru","yandex.ua","yandex.kz","yandex.com","yandex.by","ya.ru"];function c(e){return e.length>1?e:""}t.exports=r.default,t.exports.default=r.default},{"./util/merge":109}],98:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){(0,o.default)(e);var r=t?new RegExp("[".concat(t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"]+$"),"g"):/\s+$/g;return e.replace(r,"")};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],99:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){(0,i.default)(e);var r=t?"\\x00-\\x09\\x0B\\x0C\\x0E-\\x1F\\x7F":"\\x00-\\x1F\\x7F";return(0,o.default)(e,r)};var i=n(e("./util/assertString")),o=n(e("./blacklist"));function n(e){return e&&e.__esModule?e:{default:e}}t.exports=r.default,t.exports.default=r.default},{"./blacklist":16,"./util/assertString":107}],100:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){return(0,o.default)(e),t?"1"===e||/^true$/i.test(e):"0"!==e&&!/^false$/i.test(e)&&""!==e};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],101:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),e=Date.parse(e),isNaN(e)?null:new Date(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],102:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e)?parseFloat(e):NaN};var i,o=(i=e("./isFloat"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./isFloat":43}],103:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){return(0,o.default)(e),parseInt(e,t||10)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],104:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){return(0,i.default)((0,o.default)(e,t),t)};var i=n(e("./rtrim")),o=n(e("./ltrim"));function n(e){return e&&e.__esModule?e:{default:e}}t.exports=r.default,t.exports.default=r.default},{"./ltrim":95,"./rtrim":98}],105:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),e.replace(/&amp;/g,"&").replace(/&quot;/g,'"').replace(/&#x27;/g,"'").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&#x2F;/g,"/").replace(/&#x5C;/g,"\\").replace(/&#96;/g,"`")};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],106:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.iso7064Check=function(e){for(var t=10,r=0;r<e.length-1;r++)t=(parseInt(e[r],10)+t)%10==0?9:(parseInt(e[r],10)+t)%10*2%11;return(t=1===t?0:11-t)===parseInt(e[10],10)},r.luhnCheck=function(e){for(var t=0,r=!1,i=e.length-1;i>=0;i--){if(r){var o=2*parseInt(e[i],10);t+=o>9?o.toString().split("").map((function(e){return parseInt(e,10)})).reduce((function(e,t){return e+t}),0):o}else t+=parseInt(e[i],10);r=!r}return t%10==0},r.reverseMultiplyAndSum=function(e,t){for(var r=0,i=0;i<e.length;i++)r+=e[i]*(t-i);return r},r.verhoeffCheck=function(e){for(var t=[[0,1,2,3,4,5,6,7,8,9],[1,2,3,4,0,6,7,8,9,5],[2,3,4,0,1,7,8,9,5,6],[3,4,0,1,2,8,9,5,6,7],[4,0,1,2,3,9,5,6,7,8],[5,9,8,7,6,0,4,3,2,1],[6,5,9,8,7,1,0,4,3,2],[7,6,5,9,8,2,1,0,4,3],[8,7,6,5,9,3,2,1,0,4],[9,8,7,6,5,4,3,2,1,0]],r=[[0,1,2,3,4,5,6,7,8,9],[1,5,7,6,2,8,3,0,9,4],[5,8,0,3,7,9,6,1,4,2],[8,9,1,6,0,4,3,5,2,7],[9,4,5,3,1,2,6,8,7,0],[4,2,8,6,5,7,3,9,0,1],[2,7,9,3,8,0,6,4,1,5],[7,0,4,6,9,1,3,2,5,8]],i=e.split("").reverse().join(""),o=0,n=0;n<i.length;n++)o=t[o][r[n%8][parseInt(i[n],10)]];return 0===o}},{}],107:[function(e,t,r){"use strict";function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){if(!("string"==typeof e||e instanceof String)){var t=i(e);throw null===e?t="null":"object"===t&&(t=e.constructor.name),new TypeError("Expected a string but received a ".concat(t))}},t.exports=r.default,t.exports.default=r.default},{}],108:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0,r.default=function(e,t){return e.some((function(e){return t===e}))},t.exports=r.default,t.exports.default=r.default},{}],109:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;for(var r in t)void 0===e[r]&&(e[r]=t[r]);return e},t.exports=r.default,t.exports.default=r.default},{}],110:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){var r=e.join("");return new RegExp(r,t)},t.exports=r.default,t.exports.default=r.default},{}],111:[function(e,t,r){"use strict";function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return"object"===i(e)&&null!==e?e="function"==typeof e.toString?e.toString():"[object Object]":(null==e||isNaN(e)&&!e.length)&&(e=""),String(e)},t.exports=r.default,t.exports.default=r.default},{}],112:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){return(0,o.default)(e),e.replace(new RegExp("[^".concat(t,"]+"),"g"),"")};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],113:[function(e,t,r){t.exports={name:"doipjs",version:"0.13.0",description:"Decentralized OpenPGP Identity Proofs library in Node.js",main:"src/index.js",dependencies:{"@xmpp/client":"^0.12.0","@xmpp/debug":"^0.12.0",bent:"^7.3.12","browser-or-node":"^1.3.0",cors:"^2.8.5",dotenv:"^8.2.0",express:"^4.17.1","express-validator":"^6.10.0","irc-upd":"^0.11.0",jsdom:"^16.5.1","merge-options":"^3.0.3",openpgp:"^4.10.9","query-string":"^6.14.1","valid-url":"^1.0.9",validator:"^13.5.2"},devDependencies:{browserify:"^17.0.0","browserify-shim":"^3.8.14",chai:"^4.2.0","chai-as-promised":"^7.1.1","chai-match-pattern":"^1.2.0","clean-jsdoc-theme":"^3.2.4",husky:"^7.0.0",jsdoc:"^3.6.6","license-check-and-add":"^3.0.4","lint-staged":"^11.0.0",minify:"^6.0.1",mocha:"^8.2.0",nodemon:"^2.0.7",standard:"^16.0.3"},scripts:{"release:bundle":"./node_modules/.bin/browserify ./src/index.js --standalone doip -x openpgp -x jsdom -x @xmpp/client -x @xmpp/debug -x irc-upd -o ./dist/doip.js","release:minify":"./node_modules/.bin/minify ./dist/doip.js > ./dist/doip.min.js","prettier:check":"./node_modules/.bin/prettier --check .","prettier:write":"./node_modules/.bin/prettier --write .","license:check":"./node_modules/.bin/license-check-and-add check","license:add":"./node_modules/.bin/license-check-and-add add","license:remove":"./node_modules/.bin/license-check-and-add remove","docs:lib":"./node_modules/.bin/jsdoc -c jsdoc-lib.json -r -d ./docs -P package.json",standard:"./node_modules/.bin/standard ./src",mocha:"./node_modules/.bin/mocha",test:"yarn run standard && yarn run license:check && yarn run mocha",proxy:"NODE_ENV=production node ./src/proxy/","proxy:dev":"NODE_ENV=development ./node_modules/.bin/nodemon ./src/proxy/",prepare:"husky install"},repository:{type:"git",url:"https://codeberg.org/keyoxide/doipjs"},homepage:"https://js.doip.rocks",keywords:["pgp","gpg","openpgp","encryption","decentralized","identity"],author:"Yarmo Mackenbach <yarmo@yarmo.eu> (https://yarmo.eu)",license:"Apache-2.0",browserify:{transform:["browserify-shim"]},"browserify-shim":{openpgp:"global:openpgp"}}},{}],114:[function(e,t,r){const i=e("validator"),o=e("valid-url"),n=e("merge-options"),s=e("./proofs"),a=e("./verifications"),u=e("./claimDefinitions"),l=e("./defaults"),c=e("./enums");t.exports=class{constructor(e,t){if("object"==typeof e&&"claimVersion"in e){const t=e;if(1!==t.claimVersion)throw new Error("Invalid claim version");this._uri=t.uri,this._fingerprint=t.fingerprint,this._status=t.status,this._matches=t.matches,this._verification=t.verification}else{if(e&&!o.isUri(e))throw new Error("Invalid URI");if(t)try{i.isAlphanumeric(t)}catch(e){throw new Error("Invalid fingerprint")}this._uri=e||null,this._fingerprint=t||null,this._status=c.ClaimStatus.INIT,this._matches=null,this._verification=null}}get uri(){return this._uri}get fingerprint(){return this._fingerprint}get status(){return this._status}get matches(){if(this._status===c.ClaimStatus.INIT)throw new Error("This claim has not yet been matched");return this._matches}get verification(){if(this._status!==c.ClaimStatus.VERIFIED)throw new Error("This claim has not yet been verified");return this._verification}set uri(e){if(this._status!==c.ClaimStatus.INIT)throw new Error("Cannot change the URI, this claim has already been matched");if(e&&!o.isUri(e))throw new Error("The URI was invalid");e=e.replace(/^\s+|\s+$/g,""),this._uri=e}set fingerprint(e){if(this._status===c.ClaimStatus.VERIFIED)throw new Error("Cannot change the fingerprint, this claim has already been verified");this._fingerprint=e}set status(e){throw new Error("Cannot change a claim's status")}set matches(e){throw new Error("Cannot change a claim's matches")}set verification(e){throw new Error("Cannot change a claim's verification result")}match(){if(this._status!==c.ClaimStatus.INIT)throw new Error("This claim was already matched");if(null===this._uri)throw new Error("This claim has no URI");this._matches=[],u.list.every(((e,t)=>{const r=u.data[e];if(!r.reURI.test(this._uri))return!0;const i=r.processURI(this._uri);return i.match.isAmbiguous?(this._matches.push(i),!0):(this._matches=[i],!1)})),this._status=c.ClaimStatus.MATCHED}async verify(e){if(this._status===c.ClaimStatus.INIT)throw new Error("This claim has not yet been matched");if(this._status===c.ClaimStatus.VERIFIED)throw new Error("This claim has already been verified");if(null===this._fingerprint)throw new Error("This claim has no fingerprint");e=n(l.opts,e||{}),0===this._matches.length&&(this._verification={result:!1,completed:!0,proof:{},errors:["No matches for claim"]});for(let t=0;t<this._matches.length;t++){const r=this._matches[t];let i,o=null,n=null;try{n=await s.fetch(r,e)}catch(e){i=e}if(n)o=a.run(n.result,r,this._fingerprint),o.proof={fetcher:n.fetcher,viaProxy:n.viaProxy};else if(o=o||{result:!1,completed:!0,proof:{},errors:[i]},this.isAmbiguous())continue;o.completed&&(this._verification=o,this._matches=[r],t=this._matches.length)}this._verification=this._verification?this._verification:{result:!1,completed:!0,proof:{},errors:["Unknown error"]},this._status=c.ClaimStatus.VERIFIED}isAmbiguous(){if(this._status===c.ClaimStatus.INIT)throw new Error("The claim has not been matched yet");if(0===this._matches.length)throw new Error("The claim has no matches");return this._matches.length>1||this._matches[0].match.isAmbiguous}toJSON(){return{claimVersion:1,uri:this._uri,fingerprint:this._fingerprint,status:this._status,matches:this._matches,verification:this._verification}}}},{"./claimDefinitions":123,"./defaults":134,"./enums":135,"./proofs":146,"./verifications":149,"merge-options":8,"valid-url":13,validator:14}],115:[function(e,t,r){const i=e("../enums"),o=/^https:\/\/dev\.to\/(.*)\/(.*)\/?/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"web",name:"devto"},match:{regularExpression:o,isAmbiguous:!1},profile:{display:t[1],uri:"https://dev.to/"+t[1],qr:null},proof:{uri:e,request:{fetcher:i.Fetcher.HTTP,access:i.ProofAccess.NOCORS,format:i.ProofFormat.JSON,data:{url:`https://dev.to/api/articles/${t[1]}/${t[2]}`,format:i.ProofFormat.JSON}}},claim:{format:i.ClaimFormat.MESSAGE,relation:i.ClaimRelation.CONTAINS,path:["body_markdown"]}}},r.tests=[{uri:"https://dev.to/alice/post",shouldMatch:!0},{uri:"https://dev.to/alice/post/",shouldMatch:!0},{uri:"https://domain.org/alice/post",shouldMatch:!1}]},{"../enums":135}],116:[function(e,t,r){const i=e("../enums"),o=/^https:\/\/(.*)\/u\/(.*)\/?/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"web",name:"discourse"},match:{regularExpression:o,isAmbiguous:!0},profile:{display:`${t[2]}@${t[1]}`,uri:e,qr:null},proof:{uri:e,request:{fetcher:i.Fetcher.HTTP,access:i.ProofAccess.NOCORS,format:i.ProofFormat.JSON,data:{url:`https://${t[1]}/u/${t[2]}.json`,format:i.ProofFormat.JSON}}},claim:{format:i.ClaimFormat.MESSAGE,relation:i.ClaimRelation.CONTAINS,path:["user","bio_raw"]}}},r.tests=[{uri:"https://domain.org/u/alice",shouldMatch:!0},{uri:"https://domain.org/u/alice/",shouldMatch:!0},{uri:"https://domain.org/alice",shouldMatch:!1}]},{"../enums":135}],117:[function(e,t,r){const i=e("../enums"),o=/^dns:([a-zA-Z0-9.\-_]*)(?:\?(.*))?/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"web",name:"dns"},match:{regularExpression:o,isAmbiguous:!1},profile:{display:t[1],uri:"https://"+t[1],qr:null},proof:{uri:null,request:{fetcher:i.Fetcher.DNS,access:i.ProofAccess.SERVER,format:i.ProofFormat.JSON,data:{domain:t[1]}}},claim:{format:i.ClaimFormat.URI,relation:i.ClaimRelation.CONTAINS,path:["records","txt"]}}},r.tests=[{uri:"dns:domain.org",shouldMatch:!0},{uri:"dns:domain.org?type=TXT",shouldMatch:!0},{uri:"https://domain.org",shouldMatch:!1}]},{"../enums":135}],118:[function(e,t,r){const i=e("../enums"),o=/^https:\/\/(.*)\/users\/(.*)\/?/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"web",name:"fediverse"},match:{regularExpression:o,isAmbiguous:!0},profile:{display:`@${t[2]}@${t[1]}`,uri:e,qr:null},proof:{uri:e,request:{fetcher:i.Fetcher.HTTP,access:i.ProofAccess.GENERIC,format:i.ProofFormat.JSON,data:{url:e,format:i.ProofFormat.JSON}}},claim:{format:i.ClaimFormat.FINGERPRINT,relation:i.ClaimRelation.CONTAINS,path:["summary"]}}},r.tests=[{uri:"https://domain.org/users/alice",shouldMatch:!0},{uri:"https://domain.org/users/alice/",shouldMatch:!0},{uri:"https://domain.org/alice",shouldMatch:!1}]},{"../enums":135}],119:[function(e,t,r){const i=e("../enums"),o=/^https:\/\/(.*)\/(.*)\/gitea_proof\/?/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"web",name:"gitea"},match:{regularExpression:o,isAmbiguous:!0},profile:{display:`${t[2]}@${t[1]}`,uri:`https://${t[1]}/${t[2]}`,qr:null},proof:{uri:e,request:{fetcher:i.Fetcher.HTTP,access:i.ProofAccess.NOCORS,format:i.ProofFormat.JSON,data:{url:`https://${t[1]}/api/v1/repos/${t[2]}/gitea_proof`,format:i.ProofFormat.JSON}}},claim:{format:i.ClaimFormat.MESSAGE,relation:i.ClaimRelation.EQUALS,path:["description"]}}},r.tests=[{uri:"https://domain.org/alice/gitea_proof",shouldMatch:!0},{uri:"https://domain.org/alice/gitea_proof/",shouldMatch:!0},{uri:"https://domain.org/alice/other_proof",shouldMatch:!1}]},{"../enums":135}],120:[function(e,t,r){const i=e("../enums"),o=/^https:\/\/gist\.github\.com\/(.*)\/(.*)\/?/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"web",name:"github"},match:{regularExpression:o,isAmbiguous:!1},profile:{display:t[1],uri:"https://github.com/"+t[1],qr:null},proof:{uri:e,request:{fetcher:i.Fetcher.HTTP,access:i.ProofAccess.GENERIC,format:i.ProofFormat.JSON,data:{url:"https://api.github.com/gists/"+t[2],format:i.ProofFormat.JSON}}},claim:{format:i.ClaimFormat.MESSAGE,relation:i.ClaimRelation.CONTAINS,path:["files","openpgp.md","content"]}}},r.tests=[{uri:"https://gist.github.com/Alice/123456789",shouldMatch:!0},{uri:"https://gist.github.com/Alice/123456789/",shouldMatch:!0},{uri:"https://domain.org/Alice/123456789",shouldMatch:!1}]},{"../enums":135}],121:[function(e,t,r){const i=e("../enums"),o=/^https:\/\/(.*)\/(.*)\/gitlab_proof\/?/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"web",name:"gitlab"},match:{regularExpression:o,isAmbiguous:!0},profile:{display:`${t[2]}@${t[1]}`,uri:`https://${t[1]}/${t[2]}`,qr:null},proof:{uri:e,request:{fetcher:i.Fetcher.GITLAB,access:i.ProofAccess.GENERIC,format:i.ProofFormat.JSON,data:{domain:t[1],username:t[2]}}},claim:{format:i.ClaimFormat.MESSAGE,relation:i.ClaimRelation.EQUALS,path:["description"]}}},r.tests=[{uri:"https://gitlab.domain.org/alice/gitlab_proof",shouldMatch:!0},{uri:"https://gitlab.domain.org/alice/gitlab_proof/",shouldMatch:!0},{uri:"https://domain.org/alice/other_proof",shouldMatch:!1}]},{"../enums":135}],122:[function(e,t,r){const i=e("../enums"),o=/^https:\/\/news\.ycombinator\.com\/user\?id=(.*)\/?/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"web",name:"hackernews"},match:{regularExpression:o,isAmbiguous:!1},profile:{display:t[1],uri:e,qr:null},proof:{uri:`https://hacker-news.firebaseio.com/v0/user/${t[1]}.json`,request:{fetcher:i.Fetcher.HTTP,access:i.ProofAccess.NOCORS,format:i.ProofFormat.JSON,data:{url:`https://hacker-news.firebaseio.com/v0/user/${t[1]}.json`,format:i.ProofFormat.JSON}}},claim:{format:i.ClaimFormat.URI,relation:i.ClaimRelation.CONTAINS,path:["about"]}}},r.tests=[{uri:"https://news.ycombinator.com/user?id=Alice",shouldMatch:!0},{uri:"https://news.ycombinator.com/user?id=Alice/",shouldMatch:!0},{uri:"https://domain.org/user?id=Alice",shouldMatch:!1}]},{"../enums":135}],123:[function(e,t,r){const i={dns:e("./dns"),irc:e("./irc"),xmpp:e("./xmpp"),matrix:e("./matrix"),twitter:e("./twitter"),reddit:e("./reddit"),liberapay:e("./liberapay"),lichess:e("./lichess"),hackernews:e("./hackernews"),lobsters:e("./lobsters"),devto:e("./devto"),gitea:e("./gitea"),gitlab:e("./gitlab"),github:e("./github"),mastodon:e("./mastodon"),fediverse:e("./fediverse"),discourse:e("./discourse"),owncast:e("./owncast")};r.list=["dns","irc","xmpp","matrix","twitter","reddit","liberapay","lichess","hackernews","lobsters","devto","gitea","gitlab","github","mastodon","fediverse","discourse","owncast"],r.data=i},{"./devto":115,"./discourse":116,"./dns":117,"./fediverse":118,"./gitea":119,"./github":120,"./gitlab":121,"./hackernews":122,"./irc":124,"./liberapay":125,"./lichess":126,"./lobsters":127,"./mastodon":128,"./matrix":129,"./owncast":130,"./reddit":131,"./twitter":132,"./xmpp":133}],124:[function(e,t,r){const i=e("../enums"),o=/^irc:\/\/(.*)\/([a-zA-Z0-9\-[\]\\`_^{|}]*)/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"communication",name:"irc"},match:{regularExpression:o,isAmbiguous:!1},profile:{display:`irc://${t[1]}/${t[2]}`,uri:e,qr:null},proof:{uri:null,request:{fetcher:i.Fetcher.IRC,access:i.ProofAccess.SERVER,format:i.ProofFormat.JSON,data:{domain:t[1],nick:t[2]}}},claim:{format:i.ClaimFormat.URI,relation:i.ClaimRelation.CONTAINS,path:[]}}},r.tests=[{uri:"irc://chat.ircserver.org/Alice1",shouldMatch:!0},{uri:"irc://chat.ircserver.org/alice?param=123",shouldMatch:!0},{uri:"irc://chat.ircserver.org/alice_bob",shouldMatch:!0},{uri:"https://chat.ircserver.org/alice",shouldMatch:!1}]},{"../enums":135}],125:[function(e,t,r){const i=e("../enums"),o=/^https:\/\/liberapay\.com\/(.*)\/?/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"web",name:"liberapay"},match:{regularExpression:o,isAmbiguous:!1},profile:{display:t[1],uri:e,qr:null},proof:{uri:e,request:{fetcher:i.Fetcher.HTTP,access:i.ProofAccess.GENERIC,format:i.ProofFormat.JSON,data:{url:`https://liberapay.com/${t[1]}/public.json`,format:i.ProofFormat.JSON}}},claim:{format:i.ClaimFormat.MESSAGE,relation:i.ClaimRelation.CONTAINS,path:["statements","content"]}}},r.tests=[{uri:"https://liberapay.com/alice",shouldMatch:!0},{uri:"https://liberapay.com/alice/",shouldMatch:!0},{uri:"https://domain.org/alice",shouldMatch:!1}]},{"../enums":135}],126:[function(e,t,r){const i=e("../enums"),o=/^https:\/\/lichess\.org\/@\/(.*)\/?/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"web",name:"lichess"},match:{regularExpression:o,isAmbiguous:!1},profile:{display:t[1],uri:e,qr:null},proof:{uri:"https://lichess.org/api/user/"+t[1],request:{fetcher:i.Fetcher.HTTP,access:i.ProofAccess.GENERIC,format:i.ProofFormat.JSON,data:{url:"https://lichess.org/api/user/"+t[1],format:i.ProofFormat.JSON}}},claim:{format:i.ClaimFormat.FINGERPRINT,relation:i.ClaimRelation.CONTAINS,path:["profile","links"]}}},r.tests=[{uri:"https://lichess.org/@/Alice",shouldMatch:!0},{uri:"https://lichess.org/@/Alice/",shouldMatch:!0},{uri:"https://domain.org/@/Alice",shouldMatch:!1}]},{"../enums":135}],127:[function(e,t,r){const i=e("../enums"),o=/^https:\/\/lobste\.rs\/u\/(.*)\/?/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"web",name:"lobsters"},match:{regularExpression:o,isAmbiguous:!1},profile:{display:t[1],uri:e,qr:null},proof:{uri:`https://lobste.rs/u/${t[1]}.json`,request:{fetcher:i.Fetcher.HTTP,access:i.ProofAccess.NOCORS,format:i.ProofFormat.JSON,data:{url:`https://lobste.rs/u/${t[1]}.json`,format:i.ProofFormat.JSON}}},claim:{format:i.ClaimFormat.MESSAGE,relation:i.ClaimRelation.CONTAINS,path:["about"]}}},r.tests=[{uri:"https://lobste.rs/u/Alice",shouldMatch:!0},{uri:"https://lobste.rs/u/Alice/",shouldMatch:!0},{uri:"https://domain.org/u/Alice",shouldMatch:!1}]},{"../enums":135}],128:[function(e,t,r){const i=e("../enums"),o=/^https:\/\/(.*)\/@(.*)\/?/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"web",name:"mastodon"},match:{regularExpression:o,isAmbiguous:!0},profile:{display:`@${t[2]}@${t[1]}`,uri:e,qr:null},proof:{uri:e,request:{fetcher:i.Fetcher.HTTP,access:i.ProofAccess.GENERIC,format:i.ProofFormat.JSON,data:{url:e,format:i.ProofFormat.JSON}}},claim:{format:i.ClaimFormat.FINGERPRINT,relation:i.ClaimRelation.CONTAINS,path:["attachment","value"]}}},r.tests=[{uri:"https://domain.org/@alice",shouldMatch:!0},{uri:"https://domain.org/@alice/",shouldMatch:!0},{uri:"https://domain.org/alice",shouldMatch:!1}]},{"../enums":135}],129:[function(e,t,r){const i=e("../enums"),o=e("query-string"),n=/^matrix:u\/(?:@)?([^@:]*:[^?]*)(\?.*)?/;r.reURI=n,r.processURI=e=>{const t=e.match(n);if(!t[2])return null;const r=o.parse(t[2]);if(!("org.keyoxide.e"in r)||!("org.keyoxide.r"in r))return null;const s="https://matrix.to/#/@"+t[1],a=`https://matrix.to/#/${r["org.keyoxide.r"]}/${r["org.keyoxide.e"]}`;return{serviceprovider:{type:"communication",name:"matrix"},match:{regularExpression:n,isAmbiguous:!1},profile:{display:"@"+t[1],uri:s,qr:null},proof:{uri:a,request:{fetcher:i.Fetcher.MATRIX,access:i.ProofAccess.GRANTED,format:i.ProofFormat.JSON,data:{eventId:r["org.keyoxide.e"],roomId:r["org.keyoxide.r"]}}},claim:{format:i.ClaimFormat.MESSAGE,relation:i.ClaimRelation.CONTAINS,path:["content","body"]}}},r.tests=[{uri:"matrix:u/alice:matrix.domain.org?org.keyoxide.r=!123:domain.org&org.keyoxide.e=$123",shouldMatch:!0},{uri:"matrix:u/alice:matrix.domain.org",shouldMatch:!0},{uri:"xmpp:alice@domain.org",shouldMatch:!1},{uri:"https://domain.org/@alice",shouldMatch:!1}]},{"../enums":135,"query-string":10}],130:[function(e,t,r){const i=e("../enums"),o=/^https:\/\/(.*)/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"web",name:"owncast"},match:{regularExpression:o,isAmbiguous:!0},profile:{display:t[1],uri:e,qr:null},proof:{uri:e+"/api/config",request:{fetcher:i.Fetcher.HTTP,access:i.ProofAccess.GENERIC,format:i.ProofFormat.JSON,data:{url:e+"/api/config",format:i.ProofFormat.JSON}}},claim:{format:i.ClaimFormat.FINGERPRINT,relation:i.ClaimRelation.CONTAINS,path:["socialHandles","url"]}}},r.tests=[{uri:"https://live.domain.org",shouldMatch:!0},{uri:"https://live.domain.org/",shouldMatch:!0},{uri:"https://domain.org/live",shouldMatch:!0},{uri:"https://domain.org/live/",shouldMatch:!0}]},{"../enums":135}],131:[function(e,t,r){const i=e("../enums"),o=/^https:\/\/(?:www\.)?reddit\.com\/user\/(.*)\/comments\/(.*)\/(.*)\/?/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"web",name:"reddit"},match:{regularExpression:o,isAmbiguous:!1},profile:{display:t[1],uri:"https://www.reddit.com/user/"+t[1],qr:null},proof:{uri:e,request:{fetcher:i.Fetcher.HTTP,access:i.ProofAccess.NOCORS,format:i.ProofFormat.JSON,data:{url:`https://www.reddit.com/user/${t[1]}/comments/${t[2]}.json`,format:i.ProofFormat.JSON}}},claim:{format:i.ClaimFormat.MESSAGE,relation:i.ClaimRelation.CONTAINS,path:["data","children","data","selftext"]}}},r.tests=[{uri:"https://www.reddit.com/user/Alice/comments/123456/post",shouldMatch:!0},{uri:"https://www.reddit.com/user/Alice/comments/123456/post/",shouldMatch:!0},{uri:"https://reddit.com/user/Alice/comments/123456/post",shouldMatch:!0},{uri:"https://reddit.com/user/Alice/comments/123456/post/",shouldMatch:!0},{uri:"https://domain.org/user/Alice/comments/123456/post",shouldMatch:!1}]},{"../enums":135}],132:[function(e,t,r){const i=e("../enums"),o=/^https:\/\/twitter\.com\/(.*)\/status\/([0-9]*)(?:\?.*)?/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"web",name:"twitter"},match:{regularExpression:o,isAmbiguous:!1},profile:{display:"@"+t[1],uri:"https://twitter.com/"+t[1],qr:null},proof:{uri:e,request:{fetcher:i.Fetcher.TWITTER,access:i.ProofAccess.GRANTED,format:i.ProofFormat.TEXT,data:{tweetId:t[2]}}},claim:{format:i.ClaimFormat.MESSAGE,relation:i.ClaimRelation.CONTAINS,path:[]}}},r.tests=[{uri:"https://twitter.com/alice/status/1234567890123456789",shouldMatch:!0},{uri:"https://twitter.com/alice/status/1234567890123456789/",shouldMatch:!0},{uri:"https://domain.org/alice/status/1234567890123456789",shouldMatch:!1}]},{"../enums":135}],133:[function(e,t,r){const i=e("../enums"),o=/^xmpp:([a-zA-Z0-9.\-_]*)@([a-zA-Z0-9.\-_]*)(?:\?(.*))?/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"communication",name:"xmpp"},match:{regularExpression:o,isAmbiguous:!1},profile:{display:`${t[1]}@${t[2]}`,uri:e,qr:e},proof:{uri:null,request:{fetcher:i.Fetcher.XMPP,access:i.ProofAccess.SERVER,format:i.ProofFormat.TEXT,data:{id:`${t[1]}@${t[2]}`,field:"note"}}},claim:{format:i.ClaimFormat.MESSAGE,relation:i.ClaimRelation.CONTAINS,path:[]}}},r.tests=[{uri:"xmpp:alice@domain.org",shouldMatch:!0},{uri:"xmpp:alice@domain.org?omemo-sid-123456789=A1B2C3D4E5F6G7H8I9",shouldMatch:!0},{uri:"https://domain.org",shouldMatch:!1}]},{"../enums":135}],134:[function(e,t,r){const i={proxy:{hostname:null,policy:e("./enums").ProxyPolicy.NEVER},claims:{irc:{nick:null},matrix:{instance:null,accessToken:null},xmpp:{service:null,username:null,password:null},twitter:{bearerToken:null}}};r.opts=i},{"./enums":135}],135:[function(e,t,r){const i={ADAPTIVE:"adaptive",ALWAYS:"always",NEVER:"never"};Object.freeze(i);const o={HTTP:"http",DNS:"dns",IRC:"irc",XMPP:"xmpp",MATRIX:"matrix",GITLAB:"gitlab",TWITTER:"twitter"};Object.freeze(o);const n={GENERIC:0,NOCORS:1,GRANTED:2,SERVER:3};Object.freeze(n);const s={JSON:"json",TEXT:"text"};Object.freeze(s);const a={URI:0,FINGERPRINT:1,MESSAGE:2};Object.freeze(a);const u={CONTAINS:0,EQUALS:1,ONEOF:2};Object.freeze(u);const l={INIT:"init",MATCHED:"matched",VERIFIED:"verified"};Object.freeze(l),r.ProxyPolicy=i,r.Fetcher=o,r.ProofAccess=n,r.ProofFormat=s,r.ClaimFormat=a,r.ClaimRelation=u,r.ClaimStatus=l},{}],136:[function(e,t,r){const i=e("browser-or-node");if(t.exports.timeout=5e3,i.isNode){const r=e("dns");t.exports.fn=async(e,i)=>{let o;const n=new Promise(((r,i)=>{o=setTimeout((()=>i(new Error("Request was timed out"))),e.fetcherTimeout?e.fetcherTimeout:t.exports.timeout)})),s=new Promise(((t,i)=>{r.resolveTxt(e.domain,((r,o)=>{r?i(r):t({domain:e.domain,records:{txt:o}})}))}));return Promise.race([s,n]).then((e=>(clearTimeout(o),e)))}}else t.exports.fn=null},{"browser-or-node":3,dns:4}],137:[function(e,t,r){const i=e("bent")("GET");t.exports.timeout=5e3,t.exports.fn=async(e,r)=>{let o;const n=new Promise(((r,i)=>{o=setTimeout((()=>i(new Error("Request was timed out"))),e.fetcherTimeout?e.fetcherTimeout:t.exports.timeout)})),s=new Promise(((t,r)=>{const o=`https://${e.domain}/api/v4/users?username=${e.username}`;t(i(o,null,{Accept:"application/json"}).then((e=>e.json())).then((t=>t.find((t=>t.username===e.username)))).then((t=>{if(!t)throw new Error("No user with username "+e.username);return t})).then((t=>{const r=`https://${e.domain}/api/v4/users/${t.id}/projects`;return i(r,null,{Accept:"application/json"})})).then((e=>e.json())).then((e=>e.find((e=>"gitlab_proof"===e.path)))).then((e=>{if(!e)throw new Error("No project found");return e})).catch((e=>{r(e)})))}));return Promise.race([s,n]).then((e=>(clearTimeout(o),e)))}},{bent:1}],138:[function(e,t,r){const i=e("bent")("GET"),o=e("../enums");t.exports.timeout=5e3,t.exports.fn=async(r,n)=>{let s;const a=new Promise(((e,i)=>{s=setTimeout((()=>i(new Error("Request was timed out"))),r.fetcherTimeout?r.fetcherTimeout:t.exports.timeout)})),u=new Promise(((t,n)=>{if(r.url)switch(r.format){case o.ProofFormat.JSON:i(r.url,null,{Accept:"application/json","User-Agent":"doipjs/"+e("../../package.json").version}).then((async e=>await e.json())).then((e=>{t(e)})).catch((e=>{n(e)}));break;case o.ProofFormat.TEXT:i(r.url).then((async e=>await e.text())).then((e=>{t(e)})).catch((e=>{n(e)}));break;default:n(new Error("No specified data format"))}else n(new Error("No valid URI provided"))}));return Promise.race([u,a]).then((e=>(clearTimeout(s),e)))}},{"../../package.json":113,"../enums":135,bent:1}],139:[function(e,t,r){r.dns=e("./dns"),r.gitlab=e("./gitlab"),r.http=e("./http"),r.irc=e("./irc"),r.matrix=e("./matrix"),r.twitter=e("./twitter"),r.xmpp=e("./xmpp")},{"./dns":136,"./gitlab":137,"./http":138,"./irc":140,"./matrix":141,"./twitter":142,"./xmpp":143}],140:[function(e,t,r){const i=e("browser-or-node");if(t.exports.timeout=2e4,i.isNode){const r=e("irc-upd"),i=e("validator");t.exports.fn=async(e,o)=>{let n;const s=new Promise(((r,i)=>{n=setTimeout((()=>i(new Error("Request was timed out"))),e.fetcherTimeout?e.fetcherTimeout:t.exports.timeout)})),a=new Promise(((t,n)=>{try{i.isAscii(o.claims.irc.nick)}catch(e){throw new Error(`IRC fetcher was not set up properly (${e.message})`)}try{const i=new r.Client(e.domain,o.claims.irc.nick,{port:6697,secure:!0,channels:[],showErrors:!1,debug:!1}),n=/[a-zA-Z0-9\-_]+\s+:\s(openpgp4fpr:.*)/,s=/End\sof\s.*\staxonomy./,a=[];i.addListener("registered",(t=>{i.send("PRIVMSG NickServ TAXONOMY "+e.nick)})),i.addListener("notice",((e,r,o,u)=>{if(n.test(o)){const e=o.match(n);a.push(e[1])}s.test(o)&&(i.disconnect(),t(a))}))}catch(e){n(e)}}));return Promise.race([a,s]).then((e=>(clearTimeout(n),e)))}}else t.exports.fn=null},{"browser-or-node":3,"irc-upd":"irc-upd",validator:14}],141:[function(e,t,r){const i=e("bent")("GET"),o=e("validator");t.exports.timeout=5e3,t.exports.fn=async(e,r)=>{let n;const s=new Promise(((r,i)=>{n=setTimeout((()=>i(new Error("Request was timed out"))),e.fetcherTimeout?e.fetcherTimeout:t.exports.timeout)})),a=new Promise(((t,n)=>{try{o.isFQDN(r.claims.matrix.instance),o.isAscii(r.claims.matrix.accessToken)}catch(e){throw new Error(`Matrix fetcher was not set up properly (${e.message})`)}const s=`https://${r.claims.matrix.instance}/_matrix/client/r0/rooms/${e.roomId}/event/${e.eventId}?access_token=${r.claims.matrix.accessToken}`;i(s,null,{Accept:"application/json"}).then((async e=>await e.json())).then((e=>{t(e)})).catch((e=>{n(e)}))}));return Promise.race([a,s]).then((e=>(clearTimeout(n),e)))}},{bent:1,validator:14}],142:[function(e,t,r){const i=e("bent")("GET"),o=e("validator");t.exports.timeout=5e3,t.exports.fn=async(e,r)=>{let n;const s=new Promise(((r,i)=>{n=setTimeout((()=>i(new Error("Request was timed out"))),e.fetcherTimeout?e.fetcherTimeout:t.exports.timeout)})),a=new Promise(((t,n)=>{try{o.isAscii(r.claims.twitter.bearerToken)}catch(e){throw new Error(`Twitter fetcher was not set up properly (${e.message})`)}i(`https://api.twitter.com/1.1/statuses/show.json?id=${e.tweetId}&tweet_mode=extended`,null,{Accept:"application/json",Authorization:"Bearer "+r.claims.twitter.bearerToken}).then((async e=>await e.json())).then((e=>{t(e.full_text)})).catch((e=>{n(e)}))}));return Promise.race([a,s]).then((e=>(clearTimeout(n),e)))}},{bent:1,validator:14}],143:[function(e,t,r){(function(r){(function(){const i=e("browser-or-node");if(t.exports.timeout=5e3,i.isNode){const i=e("jsdom"),{client:o,xml:n}=e("@xmpp/client"),s=e("@xmpp/debug"),a=e("validator");let u=null,l=null;const c=async(e,t,i)=>new Promise(((n,a)=>{const u=o({service:e,username:t,password:i});"production"!==r.env.NODE_ENV&&s(u,!0);const{iqCaller:l}=u;u.start(),u.on("online",(e=>{n({xmpp:u,iqCaller:l})})),u.on("error",(e=>{a(e)}))}));t.exports.fn=async(e,r)=>{try{a.isFQDN(r.claims.xmpp.service),a.isAscii(r.claims.xmpp.username),a.isAscii(r.claims.xmpp.password)}catch(e){throw new Error(`XMPP fetcher was not set up properly (${e.message})`)}if(!u||"online"!==u.status){const e=await c(r.claims.xmpp.service,r.claims.xmpp.username,r.claims.xmpp.password);u=e.xmpp,l=e.iqCaller}const o=(await l.request(n("iq",{type:"get",to:e.id},n("vCard","vcard-temp")),3e4)).getChild("vCard","vcard-temp").toString(),s=new i.JSDOM(o);let d;const f=new Promise(((r,i)=>{d=setTimeout((()=>i(new Error("Request was timed out"))),e.fetcherTimeout?e.fetcherTimeout:t.exports.timeout)})),p=new Promise(((t,r)=>{try{let r;switch(e.field.toLowerCase()){case"desc":case"note":if(r=s.window.document.querySelector("note text"),r||(r=s.window.document.querySelector("DESC")),!r)throw new Error("No DESC or NOTE field found in vCard");r=r.textContent;break;default:r=s.window.document.querySelector(e).textContent}u.stop(),t(r)}catch(e){r(e)}}));return Promise.race([p,f]).then((e=>(clearTimeout(d),e)))}}else t.exports.fn=null}).call(this)}).call(this,e("_process"))},{"@xmpp/client":"@xmpp/client","@xmpp/debug":"@xmpp/debug",_process:9,"browser-or-node":3,jsdom:"jsdom",validator:14}],144:[function(e,t,r){const i=e("./claim"),o=e("./claimDefinitions"),n=e("./proofs"),s=e("./keys"),a=e("./signatures"),u=e("./enums"),l=e("./defaults"),c=e("./utils");r.Claim=i,r.claimDefinitions=o,r.proofs=n,r.keys=s,r.signatures=a,r.enums=u,r.defaults=l,r.utils=c},{"./claim":114,"./claimDefinitions":123,"./defaults":134,"./enums":135,"./keys":145,"./proofs":146,"./signatures":147,"./utils":148}],145:[function(e,t,r){(function(t){(function(){const i=e("bent")("GET"),o=e("valid-url"),n="undefined"!=typeof window?window.openpgp:void 0!==t?t.openpgp:null,s=e("./claim");r.fetchHKP=async(e,t)=>{const r=t?"https://"+t:"https://keys.openpgp.org",i=new n.HKP(r),o={query:e},s=await i.lookup(o).catch((e=>{throw new Error(`Key does not exist or could not be fetched (${e})`)}));if(!s)throw new Error("Key does not exist or could not be fetched");return await n.key.readArmored(s).then((e=>e.keys[0])).catch((e=>{throw new Error(`Key does not exist or could not be fetched (${e})`)}))},r.fetchWKD=async e=>{const t=new n.WKD,r={email:e};return await t.lookup(r).then((e=>e.keys[0])).catch((e=>{throw new Error(`Key does not exist or could not be fetched (${e})`)}))},r.fetchKeybase=async(e,t)=>{const r=`https://keybase.io/${e}/pgp_keys.asc?fingerprint=${t}`;let o;try{o=await i(r).then((e=>{if(200===e.status)return e})).then((e=>e.text()))}catch(e){throw new Error("Error fetching Keybase key: "+e.message)}return await n.key.readArmored(o).then((e=>e.keys[0])).catch((e=>{throw new Error(`Key does not exist or could not be fetched (${e})`)}))},r.fetchPlaintext=async e=>(await n.key.readArmored(e)).keys[0],r.fetchURI=async e=>{if(!o.isUri(e))throw new Error("Invalid URI");const t=e.match(/([a-zA-Z0-9]*):([a-zA-Z0-9@._=+-]*)(?::([a-zA-Z0-9@._=+-]*))?/);if(!t[1])throw new Error("Invalid URI");switch(t[1]){case"hkp":return r.fetchHKP(t[3]?t[3]:t[2],t[3]?t[2]:null);case"wkd":return r.fetchWKD(t[2]);case"kb":return r.fetchKeybase(t[2],t.length>=4?t[3]:null);default:throw new Error("Invalid URI protocol")}},r.process=async e=>{if(!(e&&e instanceof n.key.Key))throw new Error("Invalid public key");const t=await e.primaryKey.getFingerprint(),r=await e.getPrimaryUser(),i=e.users,o=[];return i.forEach(((e,i)=>{if(o[i]={userData:{id:e.userId?e.userId.userid:null,name:e.userId?e.userId.name:null,email:e.userId?e.userId.email:null,comment:e.userId?e.userId.comment:null,isPrimary:r.index===i,isRevoked:!1},claims:[]},"selfCertifications"in e&&e.selfCertifications.length>0){const r=e.selfCertifications[0],a=r.rawNotations;o[i].claims=a.filter((({name:e,humanReadable:t})=>t&&("proof@ariadne.id"===e||"proof@metacode.biz"===e))).map((({value:e})=>new s(n.util.decode_utf8(e),t))),o[i].userData.isRevoked=r.revoked}})),{fingerprint:t,users:o,primaryUserIndex:r.index,key:{data:e,fetchMethod:null,uri:null}}}}).call(this)}).call(this,void 0!==i?i:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./claim":114,bent:1,"valid-url":13}],146:[function(e,t,r){const i=e("browser-or-node"),o=e("./fetcher"),n=e("./utils"),s=e("./enums"),a=(e,t)=>new Promise(((r,i)=>{o[e.proof.request.fetcher].fn(e.proof.request.data,t).then((t=>r({fetcher:e.proof.request.fetcher,data:e,viaProxy:!1,result:t}))).catch((e=>i(e)))})),u=(e,t)=>new Promise(((r,i)=>{let s;try{s=n.generateProxyURL(e.proof.request.fetcher,e.proof.request.data,t)}catch(e){i(e)}const a={url:s,format:e.proof.request.format,fetcherTimeout:o[e.proof.request.fetcher].timeout};o.http.fn(a,t).then((t=>r({fetcher:"http",data:e,viaProxy:!0,result:t}))).catch((e=>i(e)))})),l=(e,t)=>new Promise(((r,i)=>{a(e,t).then((e=>r(e))).catch((o=>{u(e,t).then((e=>r(e))).catch((e=>i(e)))}))}));r.fetch=(e,t)=>(e.proof.request.fetcher===s.Fetcher.HTTP&&(e.proof.request.data.format=e.proof.request.format),i.isNode?((e,t)=>{switch(t.proxy.policy){case s.ProxyPolicy.ALWAYS:return u(e,t);case s.ProxyPolicy.NEVER:return a(e,t);case s.ProxyPolicy.ADAPTIVE:return l(e,t);default:throw new Error("Invalid proxy policy")}})(e,t):((e,t)=>{switch(t.proxy.policy){case s.ProxyPolicy.ALWAYS:return u(e,t);case s.ProxyPolicy.NEVER:switch(e.proof.request.access){case s.ProofAccess.GENERIC:case s.ProofAccess.GRANTED:return a(e,t);case s.ProofAccess.NOCORS:case s.ProofAccess.SERVER:throw new Error("Impossible to fetch proof (bad combination of service access and proxy policy)");default:throw new Error("Invalid proof access value")}case s.ProxyPolicy.ADAPTIVE:switch(e.proof.request.access){case s.ProofAccess.GENERIC:return l(e,t);case s.ProofAccess.NOCORS:return u(e,t);case s.ProofAccess.GRANTED:return l(e,t);case s.ProofAccess.SERVER:return u(e,t);default:throw new Error("Invalid proof access value")}default:throw new Error("Invalid proxy policy")}})(e,t))},{"./enums":135,"./fetcher":139,"./utils":148,"browser-or-node":3}],147:[function(e,t,r){(function(t){(function(){const i="undefined"!=typeof window?window.openpgp:void 0!==t?t.openpgp:null,o=e("./claim"),n=e("./keys");r.process=async e=>{let t;const r={fingerprint:null,users:[{userData:{},claims:[]}],primaryUserIndex:null,key:{data:null,fetchMethod:null,uri:null}};try{t=await i.cleartext.readArmored(e)}catch(e){throw new Error("invalid_signature")}const s=t.signature.packets[0].issuerKeyId.toHex(),a=t.signature.packets[0].signersUserId,u=t.signature.packets[0].preferredKeyServer||"https://keys.openpgp.org/",l=t.getText(),c=[];if(l.split("\n").forEach(((e,t)=>{const i=e.match(/^([a-zA-Z0-9]*)=(.*)$/i);if(i)switch(i[1].toLowerCase()){case"key":c.push(i[2]);break;case"proof":r.users[0].claims.push(new o(i[2]))}})),c.length>0)try{r.key.uri=c[0],r.key.data=await n.fetchURI(r.key.uri),r.key.fetchMethod=r.key.uri.split(":")[0]}catch(e){}if(!r.key.data&&a)try{r.key.uri="wkd:"+a,r.key.data=await n.fetchURI(r.key.uri),r.key.fetchMethod="wkd"}catch(e){}if(!r.key.data)try{const e=u.match(/^(.*:\/\/)?([^/]*)(?:\/)?$/i);r.key.uri=`hkp:${e[2]}:${s||a}`,r.key.data=await n.fetchURI(r.key.uri),r.key.fetchMethod="hkp"}catch(e){throw new Error("key_not_found")}r.fingerprint=r.key.data.keyPacket.getFingerprint(),r.users[0].claims.forEach((e=>{e.fingerprint=r.fingerprint}));const d=await r.key.data.getPrimaryUser();let f;return a&&r.key.data.users.forEach((e=>{e.userId.email===a&&(f=e)})),f||(f=d.user),r.users[0].userData={id:f.userId?f.userId.userid:null,name:f.userId?f.userId.name:null,email:f.userId?f.userId.email:null,comment:f.userId?f.userId.comment:null,isPrimary:d.user.userId.userid===f.userId.userid},r.primaryUserIndex=r.users[0].userData.isPrimary?0:null,r}}).call(this)}).call(this,void 0!==i?i:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./claim":114,"./keys":145}],148:[function(e,t,r){const i=e("validator"),o=e("./enums");r.generateProxyURL=(e,t,r)=>{try{i.isFQDN(r.proxy.hostname)}catch(e){throw new Error("Invalid proxy hostname")}const o=[];return Object.keys(t).forEach((e=>{o.push(`${e}=${encodeURIComponent(t[e])}`)})),`https://${r.proxy.hostname}/api/2/get/${e}?${o.join("&")}`},r.generateClaim=(e,t)=>{switch(t){case o.ClaimFormat.URI:return"openpgp4fpr:"+e;case o.ClaimFormat.MESSAGE:return`[Verifying my OpenPGP key: openpgp4fpr:${e}]`;case o.ClaimFormat.FINGERPRINT:return e;default:throw new Error("No valid claim format")}}},{"./enums":135,validator:14}],149:[function(e,t,r){const i=e("./utils"),o=e("./enums"),n=(e,t,r,i)=>{let s;if(!e)return!1;if(Array.isArray(e)){let o=!1;return e.forEach(((e,s)=>{o||(o=n(e,t,r,i))})),o}if(0===t.length)switch(i){case o.ClaimRelation.EQUALS:return e.replace(/\r?\n|\r|\\/g,"").toLowerCase()===r.toLowerCase();case o.ClaimRelation.ONEOF:return s=new RegExp(r,"gi"),s.test(e.join("|"));case o.ClaimRelation.CONTAINS:default:return s=new RegExp(r,"gi"),s.test(e.replace(/\r?\n|\r|\\/g,""))}if(!(t[0]in e))throw new Error("err_json_structure_incorrect");return n(e[t[0]],t.slice(1),r,i)};r.run=(e,t,r)=>{const s={result:!1,completed:!1,errors:[]};switch(t.proof.request.format){case o.ProofFormat.JSON:try{s.result=n(e,t.claim.path,i.generateClaim(r,t.claim.format),t.claim.relation),s.completed=!0}catch(e){s.errors.push(e.message?e.message:e)}break;case o.ProofFormat.TEXT:try{const o=new RegExp(i.generateClaim(r,t.claim.format).replace("[","\\[").replace("]","\\]"),"gi");s.result=o.test(e.replace(/\r?\n|\r/,"")),s.completed=!0}catch(e){s.errors.push("err_unknown_text_verification")}}return s}},{"./enums":135,"./utils":148}]},{},[144])(144)}))}).call(this)}).call(this,void 0!==i?i:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1])(1)}))}).call(this)}).call(this,void 0!==i?i:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1])(1)}))}).call(this)}).call(this,void 0!==i?i:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1])(1)}))}).call(this)}).call(this,void 0!==i?i:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1])(1)}))}).call(this)}).call(this,void 0!==i?i:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1])(1)}))}).call(this)}).call(this,void 0!==i?i:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1])(1)}))}).call(this)}).call(this,void 0!==i?i:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1])(1)}))}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1])(1)}));
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const axios = require('axios')
+const validUrl = require('valid-url')
+const openpgp = (typeof window !== "undefined" ? window['openpgp'] : typeof global !== "undefined" ? global['openpgp'] : null)
+const HKP = require('@openpgp/hkp-client')
+const WKD = require('@openpgp/wkd-client')
+const Claim = require('./claim')
+
+/**
+ * Functions related to the fetching and handling of keys
+ * @module keys
+ */
+
+/**
+ * Fetch a public key using keyservers
+ * @function
+ * @param {string} identifier                         - Fingerprint or email address
+ * @param {string} [keyserverDomain=keys.openpgp.org] - Domain of the keyserver
+ * @returns {openpgp.PublicKey}
+ * @example
+ * const key1 = doip.keys.fetchHKP('alice@domain.tld');
+ * const key2 = doip.keys.fetchHKP('123abc123abc');
+ */
+const fetchHKP = async (identifier, keyserverDomain) => {
+  const keyserverBaseUrl = keyserverDomain
+    ? `https://${keyserverDomain}`
+    : 'https://keys.openpgp.org'
+
+  const hkp = new HKP(keyserverBaseUrl)
+  const lookupOpts = {
+    query: identifier
+  }
+
+  const publicKey = await hkp
+    .lookup(lookupOpts)
+    .catch((error) => {
+      throw new Error(`Key does not exist or could not be fetched (${error})`)
+    })
+
+  if (!publicKey) {
+    throw new Error('Key does not exist or could not be fetched')
+  }
+
+  return await openpgp.readKey({
+    armoredKey: publicKey
+  })
+    .catch((error) => {
+      throw new Error(`Key could not be read (${error})`)
+    })
+}
+
+/**
+ * Fetch a public key using Web Key Directory
+ * @function
+ * @param {string} identifier - Identifier of format 'username@domain.tld`
+ * @returns {openpgp.PublicKey}
+ * @example
+ * const key = doip.keys.fetchWKD('alice@domain.tld');
+ */
+const fetchWKD = async (identifier) => {
+  const wkd = new WKD()
+  const lookupOpts = {
+    email: identifier
+  }
+
+  const publicKey = await wkd
+    .lookup(lookupOpts)
+    .catch((error) => {
+      throw new Error(`Key does not exist or could not be fetched (${error})`)
+    })
+
+  if (!publicKey) {
+    throw new Error('Key does not exist or could not be fetched')
+  }
+
+  return await openpgp.readKey({
+    binaryKey: publicKey
+  })
+    .catch((error) => {
+      throw new Error(`Key could not be read (${error})`)
+    })
+}
+
+/**
+ * Fetch a public key from Keybase
+ * @function
+ * @param {string} username     - Keybase username
+ * @param {string} fingerprint  - Fingerprint of key
+ * @returns {openpgp.PublicKey}
+ * @example
+ * const key = doip.keys.fetchKeybase('alice', '123abc123abc');
+ */
+const fetchKeybase = async (username, fingerprint) => {
+  const keyLink = `https://keybase.io/${username}/pgp_keys.asc?fingerprint=${fingerprint}`
+  let rawKeyContent
+  try {
+    rawKeyContent = await axios.get(
+      keyLink,
+      {
+        responseType: 'text'
+      }
+    )
+      .then((response) => {
+        if (response.status === 200) {
+          return response
+        }
+      })
+      .then((response) => response.data)
+  } catch (e) {
+    throw new Error(`Error fetching Keybase key: ${e.message}`)
+  }
+
+  return await openpgp.readKey({
+    armoredKey: rawKeyContent
+  })
+    .catch((error) => {
+      throw new Error(`Key does not exist or could not be fetched (${error})`)
+    })
+}
+
+/**
+ * Get a public key from plaintext data
+ * @function
+ * @param {string} rawKeyContent - Plaintext ASCII-formatted public key data
+ * @returns {openpgp.PublicKey}
+ * @example
+ * const plainkey = `-----BEGIN PGP PUBLIC KEY BLOCK-----
+ *
+ * mQINBF0mIsIBEADacleiyiV+z6FIunvLWrO6ZETxGNVpqM+WbBQKdW1BVrJBBolg
+ * [...]
+ * =6lib
+ * -----END PGP PUBLIC KEY BLOCK-----`
+ * const key = doip.keys.fetchPlaintext(plainkey);
+ */
+const fetchPlaintext = async (rawKeyContent) => {
+  const publicKey = await openpgp.readKey({
+    armoredKey: rawKeyContent
+  })
+    .catch((error) => {
+      throw new Error(`Key could not be read (${error})`)
+    })
+
+  return publicKey
+}
+
+/**
+ * Fetch a public key using an URI
+ * @function
+ * @param {string} uri - URI that defines the location of the key
+ * @returns {openpgp.PublicKey}
+ * @example
+ * const key1 = doip.keys.fetchURI('hkp:alice@domain.tld');
+ * const key2 = doip.keys.fetchURI('hkp:123abc123abc');
+ * const key3 = doip.keys.fetchURI('wkd:alice@domain.tld');
+ */
+const fetchURI = async (uri) => {
+  if (!validUrl.isUri(uri)) {
+    throw new Error('Invalid URI')
+  }
+
+  const re = /([a-zA-Z0-9]*):([a-zA-Z0-9@._=+-]*)(?::([a-zA-Z0-9@._=+-]*))?/
+  const match = uri.match(re)
+
+  if (!match[1]) {
+    throw new Error('Invalid URI')
+  }
+
+  switch (match[1]) {
+    case 'hkp':
+      return await fetchHKP(
+        match[3] ? match[3] : match[2],
+        match[3] ? match[2] : null
+      )
+
+    case 'wkd':
+      return await fetchWKD(match[2])
+
+    case 'kb':
+      return await fetchKeybase(match[2], match.length >= 4 ? match[3] : null)
+
+    default:
+      throw new Error('Invalid URI protocol')
+  }
+}
+
+/**
+ * Fetch a public key
+ *
+ * This function will attempt to detect the identifier and fetch the key
+ * accordingly. If the identifier is an email address, it will first try and
+ * fetch the key using WKD and then HKP. Otherwise, it will try HKP only.
+ *
+ * This function will also try and parse the input as a plaintext key
+ * @function
+ * @param {string} identifier - URI that defines the location of the key
+ * @returns {openpgp.PublicKey}
+ * @example
+ * const key1 = doip.keys.fetch('alice@domain.tld');
+ * const key2 = doip.keys.fetch('123abc123abc');
+ */
+const fetch = async (identifier) => {
+  const re = /([a-zA-Z0-9@._=+-]*)(?::([a-zA-Z0-9@._=+-]*))?/
+  const match = identifier.match(re)
+
+  let pubKey = null
+
+  // Attempt plaintext
+  if (!pubKey) {
+    try {
+      pubKey = await fetchPlaintext(identifier)
+    } catch (e) {}
+  }
+
+  // Attempt WKD
+  if (!pubKey && identifier.includes('@')) {
+    try {
+      pubKey = await fetchWKD(match[1])
+    } catch (e) {}
+  }
+
+  // Attempt HKP
+  if (!pubKey) {
+    pubKey = await fetchHKP(
+      match[2] ? match[2] : match[1],
+      match[2] ? match[1] : null
+    )
+  }
+
+  if (!pubKey) {
+    throw new Error('Key does not exist or could not be fetched')
+  }
+
+  return pubKey
+}
+
+/**
+ * Process a public key to get user data and claims
+ * @function
+ * @param {openpgp.PublicKey} publicKey - The public key to process
+ * @returns {object}
+ * @example
+ * const key = doip.keys.fetchURI('hkp:alice@domain.tld');
+ * const data = doip.keys.process(key);
+ * data.users[0].claims.forEach(claim => {
+ *   console.log(claim.uri);
+ * });
+ */
+const process = async (publicKey) => {
+  if (!publicKey || !(publicKey instanceof openpgp.PublicKey)) {
+    throw new Error('Invalid public key')
+  }
+
+  const fingerprint = publicKey.getFingerprint()
+  const primaryUser = await publicKey.getPrimaryUser()
+  const users = publicKey.users
+  const usersOutput = []
+
+  users.forEach((user, i) => {
+    usersOutput[i] = {
+      userData: {
+        id: user.userID ? user.userID.userID : null,
+        name: user.userID ? user.userID.name : null,
+        email: user.userID ? user.userID.email : null,
+        comment: user.userID ? user.userID.comment : null,
+        isPrimary: primaryUser.index === i,
+        isRevoked: false
+      },
+      claims: []
+    }
+
+    if ('selfCertifications' in user && user.selfCertifications.length > 0) {
+      const selfCertification = user.selfCertifications[0]
+
+      const notations = selfCertification.rawNotations
+      usersOutput[i].claims = notations
+        .filter(
+          ({ name, humanReadable }) =>
+            humanReadable && (name === 'proof@ariadne.id' || name === 'proof@metacode.biz')
+        )
+        .map(
+          ({ value }) =>
+            new Claim(new TextDecoder().decode(value), fingerprint)
+        )
+
+      usersOutput[i].userData.isRevoked = selfCertification.revoked
+    }
+  })
+
+  return {
+    fingerprint: fingerprint,
+    users: usersOutput,
+    primaryUserIndex: primaryUser.index,
+    key: {
+      data: publicKey,
+      fetchMethod: null,
+      uri: null
+    }
+  }
+}
+
+exports.fetchHKP = fetchHKP
+exports.fetchWKD = fetchWKD
+exports.fetchKeybase = fetchKeybase
+exports.fetchPlaintext = fetchPlaintext
+exports.fetchURI = fetchURI
+exports.fetch = fetch
+exports.process = process
 
 }).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{}]},{},[1])(1)
+},{"./claim":143,"@openpgp/hkp-client":"@openpgp/hkp-client","@openpgp/wkd-client":"@openpgp/wkd-client","axios":1,"valid-url":40}],175:[function(require,module,exports){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const jsEnv = require('browser-or-node')
+const fetcher = require('./fetcher')
+const utils = require('./utils')
+const E = require('./enums')
+
+/**
+ * @module proofs
+ */
+
+/**
+ * Delegate the proof request to the correct fetcher.
+ * This method uses the current environment (browser/node), certain values from
+ * the `data` parameter and the proxy policy set in the `opts` parameter to
+ * choose the right approach to fetch the proof. An error will be thrown if no
+ * approach is possible.
+ * @async
+ * @param {object} data - Data from a claim definition
+ * @param {object} opts - Options to enable the request
+ * @returns {Promise<object|string>}
+ */
+const fetch = (data, opts) => {
+  switch (data.proof.request.fetcher) {
+    case E.Fetcher.HTTP:
+      data.proof.request.data.format = data.proof.request.format
+      break
+
+    default:
+      break
+  }
+
+  if (jsEnv.isNode) {
+    return handleNodeRequests(data, opts)
+  }
+
+  return handleBrowserRequests(data, opts)
+}
+
+const handleBrowserRequests = (data, opts) => {
+  switch (opts.proxy.policy) {
+    case E.ProxyPolicy.ALWAYS:
+      return createProxyRequestPromise(data, opts)
+
+    case E.ProxyPolicy.NEVER:
+      switch (data.proof.request.access) {
+        case E.ProofAccess.GENERIC:
+        case E.ProofAccess.GRANTED:
+          return createDefaultRequestPromise(data, opts)
+        case E.ProofAccess.NOCORS:
+        case E.ProofAccess.SERVER:
+          throw new Error(
+            'Impossible to fetch proof (bad combination of service access and proxy policy)'
+          )
+        default:
+          throw new Error('Invalid proof access value')
+      }
+
+    case E.ProxyPolicy.ADAPTIVE:
+      switch (data.proof.request.access) {
+        case E.ProofAccess.GENERIC:
+          return createFallbackRequestPromise(data, opts)
+        case E.ProofAccess.NOCORS:
+          return createProxyRequestPromise(data, opts)
+        case E.ProofAccess.GRANTED:
+          return createFallbackRequestPromise(data, opts)
+        case E.ProofAccess.SERVER:
+          return createProxyRequestPromise(data, opts)
+        default:
+          throw new Error('Invalid proof access value')
+      }
+
+    default:
+      throw new Error('Invalid proxy policy')
+  }
+}
+
+const handleNodeRequests = (data, opts) => {
+  switch (opts.proxy.policy) {
+    case E.ProxyPolicy.ALWAYS:
+      return createProxyRequestPromise(data, opts)
+
+    case E.ProxyPolicy.NEVER:
+      return createDefaultRequestPromise(data, opts)
+
+    case E.ProxyPolicy.ADAPTIVE:
+      return createFallbackRequestPromise(data, opts)
+
+    default:
+      throw new Error('Invalid proxy policy')
+  }
+}
+
+const createDefaultRequestPromise = (data, opts) => {
+  return new Promise((resolve, reject) => {
+    fetcher[data.proof.request.fetcher]
+      .fn(data.proof.request.data, opts)
+      .then((res) => {
+        return resolve({
+          fetcher: data.proof.request.fetcher,
+          data: data,
+          viaProxy: false,
+          result: res
+        })
+      })
+      .catch((err) => {
+        return reject(err)
+      })
+  })
+}
+
+const createProxyRequestPromise = (data, opts) => {
+  return new Promise((resolve, reject) => {
+    let proxyUrl
+    try {
+      proxyUrl = utils.generateProxyURL(
+        data.proof.request.fetcher,
+        data.proof.request.data,
+        opts
+      )
+    } catch (err) {
+      reject(err)
+    }
+
+    const requestData = {
+      url: proxyUrl,
+      format: data.proof.request.format,
+      fetcherTimeout: fetcher[data.proof.request.fetcher].timeout
+    }
+    fetcher.http
+      .fn(requestData, opts)
+      .then((res) => {
+        return resolve({
+          fetcher: 'http',
+          data: data,
+          viaProxy: true,
+          result: res
+        })
+      })
+      .catch((err) => {
+        return reject(err)
+      })
+  })
+}
+
+const createFallbackRequestPromise = (data, opts) => {
+  return new Promise((resolve, reject) => {
+    createDefaultRequestPromise(data, opts)
+      .then((res) => {
+        return resolve(res)
+      })
+      .catch((err1) => {
+        createProxyRequestPromise(data, opts)
+          .then((res) => {
+            return resolve(res)
+          })
+          .catch((err2) => {
+            return reject(err2)
+          })
+      })
+  })
+}
+
+exports.fetch = fetch
+
+},{"./enums":164,"./fetcher":168,"./utils":177,"browser-or-node":30}],176:[function(require,module,exports){
+(function (global){(function (){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const openpgp = (typeof window !== "undefined" ? window['openpgp'] : typeof global !== "undefined" ? global['openpgp'] : null)
+const Claim = require('./claim')
+const keys = require('./keys')
+
+/**
+ * @module signatures
+ */
+
+/**
+ * Extract data from a signature and fetch the associated key
+ * @async
+ * @param {string} signature - The plaintext signature to process
+ * @returns {Promise<object>}
+ */
+const process = async (signature) => {
+  let sigData
+  const result = {
+    fingerprint: null,
+    users: [
+      {
+        userData: {},
+        claims: []
+      }
+    ],
+    primaryUserIndex: null,
+    key: {
+      data: null,
+      fetchMethod: null,
+      uri: null
+    }
+  }
+
+  // Read the signature
+  try {
+    sigData = await openpgp.readCleartextMessage({
+      cleartextMessage: signature
+    })
+  } catch (e) {
+    throw new Error(`Signature could not be read (${e.message})`)
+  }
+
+  const issuerKeyID = sigData.signature.packets[0].issuerKeyID.toHex()
+  const signersUserID = sigData.signature.packets[0].signersUserID
+  const preferredKeyServer =
+    sigData.signature.packets[0].preferredKeyServer ||
+    'https://keys.openpgp.org/'
+  const text = sigData.getText()
+  const sigKeys = []
+
+  text.split('\n').forEach((line, i) => {
+    const match = line.match(/^([a-zA-Z0-9]*)=(.*)$/i)
+    if (!match) {
+      return
+    }
+    switch (match[1].toLowerCase()) {
+      case 'key':
+        sigKeys.push(match[2])
+        break
+
+      case 'proof':
+        result.users[0].claims.push(new Claim(match[2]))
+        break
+
+      default:
+        break
+    }
+  })
+
+  // Try overruling key
+  if (sigKeys.length > 0) {
+    try {
+      result.key.uri = sigKeys[0]
+      result.key.data = await keys.fetchURI(result.key.uri)
+      result.key.fetchMethod = result.key.uri.split(':')[0]
+    } catch (e) {}
+  }
+  // Try WKD
+  if (!result.key.data && signersUserID) {
+    try {
+      result.key.uri = `wkd:${signersUserID}`
+      result.key.data = await keys.fetchURI(result.key.uri)
+      result.key.fetchMethod = 'wkd'
+    } catch (e) {}
+  }
+  // Try HKP
+  if (!result.key.data) {
+    try {
+      const match = preferredKeyServer.match(/^(.*:\/\/)?([^/]*)(?:\/)?$/i)
+      result.key.uri = `hkp:${match[2]}:${issuerKeyID || signersUserID}`
+      result.key.data = await keys.fetchURI(result.key.uri)
+      result.key.fetchMethod = 'hkp'
+    } catch (e) {
+      throw new Error('Public key not found')
+    }
+  }
+
+  // Verify the signature
+  const verificationResult = await openpgp.verify({
+    message: sigData,
+    verificationKeys: result.key.data
+  })
+  const { verified } = verificationResult.signatures[0]
+  try {
+    await verified
+  } catch (e) {
+    throw new Error(`Signature could not be verified (${e.message})`)
+  }
+
+  result.fingerprint = result.key.data.keyPacket.getFingerprint()
+
+  result.users[0].claims.forEach((claim) => {
+    claim.fingerprint = result.fingerprint
+  })
+
+  const primaryUserData = await result.key.data.getPrimaryUser()
+  let userData
+
+  if (signersUserID) {
+    result.key.data.users.forEach((user) => {
+      if (user.userID.email === signersUserID) {
+        userData = user
+      }
+    })
+  }
+  if (!userData) {
+    userData = primaryUserData.user
+  }
+
+  result.users[0].userData = {
+    id: userData.userID ? userData.userID.userID : null,
+    name: userData.userID ? userData.userID.name : null,
+    email: userData.userID ? userData.userID.email : null,
+    comment: userData.userID ? userData.userID.comment : null,
+    isPrimary: primaryUserData.user.userID.userID === userData.userID.userID
+  }
+
+  result.primaryUserIndex = result.users[0].userData.isPrimary ? 0 : null
+
+  return result
+}
+
+exports.process = process
+
+}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
+},{"./claim":143,"./keys":174}],177:[function(require,module,exports){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const validator = require('validator')
+const E = require('./enums')
+
+/**
+ * @module utils
+ */
+
+/**
+ * Generate an URL to request data from a proxy server
+ * @param {string} type                 - The name of the fetcher the proxy must use
+ * @param {object} data                 - The data the proxy must provide to the fetcher
+ * @param {object} opts                 - Options to enable the request
+ * @param {object} opts.proxy.hostname  - The hostname of the proxy server
+ * @returns {string}
+ */
+const generateProxyURL = (type, data, opts) => {
+  try {
+    validator.isFQDN(opts.proxy.hostname)
+  } catch (err) {
+    throw new Error('Invalid proxy hostname')
+  }
+
+  const queryStrings = []
+
+  Object.keys(data).forEach((key) => {
+    queryStrings.push(`${key}=${encodeURIComponent(data[key])}`)
+  })
+
+  return `https://${opts.proxy.hostname}/api/2/get/${type}?${queryStrings.join(
+    '&'
+  )}`
+}
+
+/**
+ * Generate the string that must be found in the proof to verify a claim
+ * @param {string} fingerprint  - The fingerprint of the claim
+ * @param {number} format       - The claim's format (see {@link module:enums~ClaimFormat|enums.ClaimFormat})
+ * @returns {string}
+ */
+const generateClaim = (fingerprint, format) => {
+  switch (format) {
+    case E.ClaimFormat.URI:
+      return `openpgp4fpr:${fingerprint}`
+    case E.ClaimFormat.MESSAGE:
+      return `[Verifying my OpenPGP key: openpgp4fpr:${fingerprint}]`
+    case E.ClaimFormat.FINGERPRINT:
+      return fingerprint
+    default:
+      throw new Error('No valid claim format')
+  }
+}
+
+exports.generateProxyURL = generateProxyURL
+exports.generateClaim = generateClaim
+
+},{"./enums":164,"validator":41}],178:[function(require,module,exports){
+/*
+Copyright 2021 Yarmo Mackenbach
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+const utils = require('./utils')
+const E = require('./enums')
+
+/**
+ * @module verifications
+ * @ignore
+ */
+
+const runJSON = (proofData, checkPath, checkClaim, checkRelation) => {
+  let re
+
+  if (!proofData) {
+    return false
+  }
+
+  if (Array.isArray(proofData)) {
+    let result = false
+    proofData.forEach((item, i) => {
+      if (result) {
+        return
+      }
+      result = runJSON(item, checkPath, checkClaim, checkRelation)
+    })
+    return result
+  }
+
+  if (checkPath.length === 0) {
+    switch (checkRelation) {
+      case E.ClaimRelation.EQUALS:
+        return (
+          proofData.replace(/\r?\n|\r|\\/g, '').toLowerCase() ===
+          checkClaim.toLowerCase()
+        )
+
+      case E.ClaimRelation.ONEOF:
+        re = new RegExp(checkClaim, 'gi')
+        return re.test(proofData.join('|'))
+
+      case E.ClaimRelation.CONTAINS:
+      default:
+        re = new RegExp(checkClaim, 'gi')
+        return re.test(proofData.replace(/\r?\n|\r|\\/g, ''))
+    }
+  }
+
+  if (!(checkPath[0] in proofData)) {
+    throw new Error('err_json_structure_incorrect')
+  }
+
+  return runJSON(
+    proofData[checkPath[0]],
+    checkPath.slice(1),
+    checkClaim,
+    checkRelation
+  )
+}
+
+/**
+ * Run the verification by finding the formatted fingerprint in the proof
+ * @param {object} proofData    - The proof data
+ * @param {object} claimData    - The claim data
+ * @param {string} fingerprint  - The fingerprint
+ * @returns {object}
+ */
+const run = (proofData, claimData, fingerprint) => {
+  const res = {
+    result: false,
+    completed: false,
+    errors: []
+  }
+
+  switch (claimData.proof.request.format) {
+    case E.ProofFormat.JSON:
+      try {
+        res.result = runJSON(
+          proofData,
+          claimData.claim.path,
+          utils.generateClaim(fingerprint, claimData.claim.format),
+          claimData.claim.relation
+        )
+        res.completed = true
+      } catch (error) {
+        res.errors.push(error.message ? error.message : error)
+      }
+      break
+    case E.ProofFormat.TEXT:
+      try {
+        const re = new RegExp(
+          utils
+            .generateClaim(fingerprint, claimData.claim.format)
+            .replace('[', '\\[')
+            .replace(']', '\\]'),
+          'gi'
+        )
+        res.result = re.test(proofData.replace(/\r?\n|\r/, ''))
+        res.completed = true
+      } catch (error) {
+        res.errors.push('err_unknown_text_verification')
+      }
+      break
+  }
+
+  return res
+}
+
+exports.run = run
+
+},{"./enums":164,"./utils":177}]},{},[173])(173)
 });
diff --git a/dist/doip.min.js b/dist/doip.min.js
index ebdbc34..b8bd234 100644
--- a/dist/doip.min.js
+++ b/dist/doip.min.js
@@ -1 +1 @@
-!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).doip=e()}}((function(){return function e(t,r,i){function o(s,a){if(!r[s]){if(!t[s]){var u="function"==typeof require&&require;if(!a&&u)return u(s,!0);if(n)return n(s,!0);var l=new Error("Cannot find module '"+s+"'");throw l.code="MODULE_NOT_FOUND",l}var c=r[s]={exports:{}};t[s][0].call(c.exports,(function(e){return o(t[s][1][e]||e)}),c,c.exports,e,t,r,i)}return r[s].exports}for(var n="function"==typeof require&&require,s=0;s<i.length;s++)o(i[s]);return o}({1:[function(e,t,r){(function(i){(function(){!function(e){"object"==typeof r&&void 0!==t?t.exports=e():("undefined"!=typeof window?window:void 0!==i?i:"undefined"!=typeof self?self:this).doip=e()}((function(){return function t(r,i,o){function n(a,u){if(!i[a]){if(!r[a]){var l="function"==typeof e&&e;if(!u&&l)return l(a,!0);if(s)return s(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var f=i[a]={exports:{}};r[a][0].call(f.exports,(function(e){return n(r[a][1][e]||e)}),f,f.exports,t,r,i,o)}return i[a].exports}for(var s="function"==typeof e&&e,a=0;a<o.length;a++)n(o[a]);return n}({1:[function(e,t,r){(function(i){(function(){!function(e){"object"==typeof r&&void 0!==t?t.exports=e():("undefined"!=typeof window?window:void 0!==i?i:"undefined"!=typeof self?self:this).doip=e()}((function(){return function t(r,i,o){function n(a,u){if(!i[a]){if(!r[a]){var l="function"==typeof e&&e;if(!u&&l)return l(a,!0);if(s)return s(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var f=i[a]={exports:{}};r[a][0].call(f.exports,(function(e){return n(r[a][1][e]||e)}),f,f.exports,t,r,i,o)}return i[a].exports}for(var s="function"==typeof e&&e,a=0;a<o.length;a++)n(o[a]);return n}({1:[function(e,t,r){(function(i){(function(){!function(e){"object"==typeof r&&void 0!==t?t.exports=e():("undefined"!=typeof window?window:void 0!==i?i:"undefined"!=typeof self?self:this).doip=e()}((function(){return function t(r,i,o){function n(a,u){if(!i[a]){if(!r[a]){var l="function"==typeof e&&e;if(!u&&l)return l(a,!0);if(s)return s(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var f=i[a]={exports:{}};r[a][0].call(f.exports,(function(e){return n(r[a][1][e]||e)}),f,f.exports,t,r,i,o)}return i[a].exports}for(var s="function"==typeof e&&e,a=0;a<o.length;a++)n(o[a]);return n}({1:[function(e,t,r){(function(i){(function(){!function(e){"object"==typeof r&&void 0!==t?t.exports=e():("undefined"!=typeof window?window:void 0!==i?i:"undefined"!=typeof self?self:this).doip=e()}((function(){return function t(r,i,o){function n(a,u){if(!i[a]){if(!r[a]){var l="function"==typeof e&&e;if(!u&&l)return l(a,!0);if(s)return s(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var f=i[a]={exports:{}};r[a][0].call(f.exports,(function(e){return n(r[a][1][e]||e)}),f,f.exports,t,r,i,o)}return i[a].exports}for(var s="function"==typeof e&&e,a=0;a<o.length;a++)n(o[a]);return n}({1:[function(e,t,r){(function(i){(function(){!function(e){"object"==typeof r&&void 0!==t?t.exports=e():("undefined"!=typeof window?window:void 0!==i?i:"undefined"!=typeof self?self:this).doip=e()}((function(){return function t(r,i,o){function n(a,u){if(!i[a]){if(!r[a]){var l="function"==typeof e&&e;if(!u&&l)return l(a,!0);if(s)return s(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var f=i[a]={exports:{}};r[a][0].call(f.exports,(function(e){return n(r[a][1][e]||e)}),f,f.exports,t,r,i,o)}return i[a].exports}for(var s="function"==typeof e&&e,a=0;a<o.length;a++)n(o[a]);return n}({1:[function(e,t,r){(function(i){(function(){!function(e){"object"==typeof r&&void 0!==t?t.exports=e():("undefined"!=typeof window?window:void 0!==i?i:"undefined"!=typeof self?self:this).doip=e()}((function(){return function t(r,i,o){function n(a,u){if(!i[a]){if(!r[a]){var l="function"==typeof e&&e;if(!u&&l)return l(a,!0);if(s)return s(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var f=i[a]={exports:{}};r[a][0].call(f.exports,(function(e){return n(r[a][1][e]||e)}),f,f.exports,t,r,i,o)}return i[a].exports}for(var s="function"==typeof e&&e,a=0;a<o.length;a++)n(o[a]);return n}({1:[function(e,t,r){(function(i){(function(){!function(e){"object"==typeof r&&void 0!==t?t.exports=e():("undefined"!=typeof window?window:void 0!==i?i:"undefined"!=typeof self?self:this).doip=e()}((function(){return function t(r,i,o){function n(a,u){if(!i[a]){if(!r[a]){var l="function"==typeof e&&e;if(!u&&l)return l(a,!0);if(s)return s(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var f=i[a]={exports:{}};r[a][0].call(f.exports,(function(e){return n(r[a][1][e]||e)}),f,f.exports,t,r,i,o)}return i[a].exports}for(var s="function"==typeof e&&e,a=0;a<o.length;a++)n(o[a]);return n}({1:[function(e,t,r){(function(i){(function(){!function(e){"object"==typeof r&&void 0!==t?t.exports=e():("undefined"!=typeof window?window:void 0!==i?i:"undefined"!=typeof self?self:this).doip=e()}((function(){return function t(r,i,o){function n(a,u){if(!i[a]){if(!r[a]){var l="function"==typeof e&&e;if(!u&&l)return l(a,!0);if(s)return s(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var f=i[a]={exports:{}};r[a][0].call(f.exports,(function(e){return n(r[a][1][e]||e)}),f,f.exports,t,r,i,o)}return i[a].exports}for(var s="function"==typeof e&&e,a=0;a<o.length;a++)n(o[a]);return n}({1:[function(e,t,r){(function(i){(function(){!function(e){"object"==typeof r&&void 0!==t?t.exports=e():("undefined"!=typeof window?window:void 0!==i?i:"undefined"!=typeof self?self:this).doip=e()}((function(){return function t(r,i,o){function n(a,u){if(!i[a]){if(!r[a]){var l="function"==typeof e&&e;if(!u&&l)return l(a,!0);if(s)return s(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var f=i[a]={exports:{}};r[a][0].call(f.exports,(function(e){return n(r[a][1][e]||e)}),f,f.exports,t,r,i,o)}return i[a].exports}for(var s="function"==typeof e&&e,a=0;a<o.length;a++)n(o[a]);return n}({1:[function(e,t,r){"use strict";const i=e("./core");class o extends Error{constructor(e,...t){let r;super(...t),Error.captureStackTrace&&Error.captureStackTrace(this,o),this.name="StatusError",this.message=e.statusMessage,this.statusCode=e.status,this.res=e,this.json=e.json.bind(e),this.text=e.text.bind(e),this.arrayBuffer=e.arrayBuffer.bind(e),Object.defineProperty(this,"responseBody",{get:()=>(r||(r=this.arrayBuffer()),r)}),this.headers={};for(const[t,r]of e.headers.entries())this.headers[t.toLowerCase()]=r}}t.exports=i(((e,t,r,i,n)=>async(s,a,u={})=>{s=n+(s||"");let l=new URL(s);if(i||(i={}),l.username&&(i.Authorization="Basic "+btoa(l.username+":"+l.password),l=new URL(l.protocol+"//"+l.host+l.pathname+l.search)),"https:"!==l.protocol&&"http:"!==l.protocol)throw new Error("Unknown protocol, "+l.protocol);if(a)if(a instanceof ArrayBuffer||ArrayBuffer.isView(a)||"string"==typeof a);else{if("object"!=typeof a)throw new Error("Unknown body type.");a=JSON.stringify(a),i["Content-Type"]="application/json"}u=new Headers({...i||{},...u});const c=await fetch(l,{method:t,headers:u,body:a});if(c.statusCode=c.status,!e.has(c.status))throw new o(c);return"json"===r?c.json():"buffer"===r?c.arrayBuffer():"string"===r?c.text():c}))},{"./core":2}],2:[function(e,t,r){"use strict";const i=new Set(["json","buffer","string"]);t.exports=e=>(...t)=>{const r=new Set;let o,n,s,a="";return t.forEach((e=>{if("string"==typeof e)if(e.toUpperCase()===e){if(o)throw new Error(`Can't set method to ${e}, already set to ${o}.`);o=e}else if(e.startsWith("http:")||e.startsWith("https:"))a=e;else{if(!i.has(e))throw new Error("Unknown encoding, "+e);n=e}else if("number"==typeof e)r.add(e);else{if("object"!=typeof e)throw new Error("Unknown type: "+typeof e);if(Array.isArray(e)||e instanceof Set)e.forEach((e=>r.add(e)));else{if(s)throw new Error("Cannot set headers twice.");s=e}}})),o||(o="GET"),0===r.size&&r.add(200),e(r,o,n,s,a)}},{}],3:[function(e,t,r){(function(e){(function(){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i="undefined"!=typeof window&&void 0!==window.document,o="object"===("undefined"==typeof self?"undefined":t(self))&&self.constructor&&"DedicatedWorkerGlobalScope"===self.constructor.name,n=void 0!==e&&null!=e.versions&&null!=e.versions.node;r.isBrowser=i,r.isWebWorker=o,r.isNode=n,r.isJsDom=function(){return"undefined"!=typeof window&&"nodejs"===window.name||navigator.userAgent.includes("Node.js")||navigator.userAgent.includes("jsdom")}}).call(this)}).call(this,e("_process"))},{_process:9}],4:[function(e,t,r){},{}],5:[function(e,t,r){"use strict";var i="%[a-f0-9]{2}",o=new RegExp(i,"gi"),n=new RegExp("("+i+")+","gi");function s(e,t){try{return decodeURIComponent(e.join(""))}catch(e){}if(1===e.length)return e;t=t||1;var r=e.slice(0,t),i=e.slice(t);return Array.prototype.concat.call([],s(r),s(i))}function a(e){try{return decodeURIComponent(e)}catch(i){for(var t=e.match(o),r=1;r<t.length;r++)t=(e=s(t,r).join("")).match(o);return e}}t.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected `encodedURI` to be of type `string`, got `"+typeof e+"`");try{return e=e.replace(/\+/g," "),decodeURIComponent(e)}catch(t){return function(e){for(var t={"%FE%FF":"��","%FF%FE":"��"},r=n.exec(e);r;){try{t[r[0]]=decodeURIComponent(r[0])}catch(e){var i=a(r[0]);i!==r[0]&&(t[r[0]]=i)}r=n.exec(e)}t["%C2"]="�";for(var o=Object.keys(t),s=0;s<o.length;s++){var u=o[s];e=e.replace(new RegExp(u,"g"),t[u])}return e}(e)}}},{}],6:[function(e,t,r){"use strict";t.exports=function(e,t){for(var r={},i=Object.keys(e),o=Array.isArray(t),n=0;n<i.length;n++){var s=i[n],a=e[s];(o?-1!==t.indexOf(s):t(s,a,e))&&(r[s]=a)}return r}},{}],7:[function(e,t,r){"use strict";t.exports=e=>{if("[object Object]"!==Object.prototype.toString.call(e))return!1;const t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}},{}],8:[function(e,t,r){"use strict";const i=e("is-plain-obj"),{hasOwnProperty:o}=Object.prototype,{propertyIsEnumerable:n}=Object,s=(e,t,r)=>Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0}),a=this,u={concatArrays:!1,ignoreUndefined:!1},l=e=>{const t=[];for(const r in e)o.call(e,r)&&t.push(r);if(Object.getOwnPropertySymbols){const r=Object.getOwnPropertySymbols(e);for(const i of r)n.call(e,i)&&t.push(i)}return t};function c(e){return Array.isArray(e)?function(e){const t=e.slice(0,0);return l(e).forEach((r=>{s(t,r,c(e[r]))})),t}(e):i(e)?function(e){const t=null===Object.getPrototypeOf(e)?Object.create(null):{};return l(e).forEach((r=>{s(t,r,c(e[r]))})),t}(e):e}const f=(e,t,r,i)=>(r.forEach((r=>{void 0===t[r]&&i.ignoreUndefined||(r in e&&e[r]!==Object.getPrototypeOf(e)?s(e,r,d(e[r],t[r],i)):s(e,r,c(t[r])))})),e);function d(e,t,r){return r.concatArrays&&Array.isArray(e)&&Array.isArray(t)?((e,t,r)=>{let i=e.slice(0,0),n=0;return[e,t].forEach((t=>{const a=[];for(let r=0;r<t.length;r++)o.call(t,r)&&(a.push(String(r)),s(i,n++,t===e?t[r]:c(t[r])));i=f(i,t,l(t).filter((e=>!a.includes(e))),r)})),i})(e,t,r):i(t)&&i(e)?f(e,t,l(t),r):c(t)}t.exports=function(...e){const t=d(c(u),this!==a&&this||{},u);let r={_:{}};for(const o of e)if(void 0!==o){if(!i(o))throw new TypeError("`"+o+"` is not an Option Object");r=d(r,{_:o},t)}return r._}},{"is-plain-obj":7}],9:[function(e,t,r){var i,o,n=t.exports={};function s(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function u(e){if(i===setTimeout)return setTimeout(e,0);if((i===s||!i)&&setTimeout)return i=setTimeout,setTimeout(e,0);try{return i(e,0)}catch(t){try{return i.call(null,e,0)}catch(t){return i.call(this,e,0)}}}!function(){try{i="function"==typeof setTimeout?setTimeout:s}catch(e){i=s}try{o="function"==typeof clearTimeout?clearTimeout:a}catch(e){o=a}}();var l,c=[],f=!1,d=-1;function p(){f&&l&&(f=!1,l.length?c=l.concat(c):d=-1,c.length&&m())}function m(){if(!f){var e=u(p);f=!0;for(var t=c.length;t;){for(l=c,c=[];++d<t;)l&&l[d].run();d=-1,t=c.length}l=null,f=!1,function(e){if(o===clearTimeout)return clearTimeout(e);if((o===a||!o)&&clearTimeout)return o=clearTimeout,clearTimeout(e);try{o(e)}catch(t){try{return o.call(null,e)}catch(t){return o.call(this,e)}}}(e)}}function h(e,t){this.fun=e,this.array=t}function g(){}n.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];c.push(new h(e,t)),1!==c.length||f||u(m)},h.prototype.run=function(){this.fun.apply(null,this.array)},n.title="browser",n.browser=!0,n.env={},n.argv=[],n.version="",n.versions={},n.on=g,n.addListener=g,n.once=g,n.off=g,n.removeListener=g,n.removeAllListeners=g,n.emit=g,n.prependListener=g,n.prependOnceListener=g,n.listeners=function(e){return[]},n.binding=function(e){throw new Error("process.binding is not supported")},n.cwd=function(){return"/"},n.chdir=function(e){throw new Error("process.chdir is not supported")},n.umask=function(){return 0}},{}],10:[function(e,t,r){"use strict";const i=e("strict-uri-encode"),o=e("decode-uri-component"),n=e("split-on-first"),s=e("filter-obj");function a(e){if("string"!=typeof e||1!==e.length)throw new TypeError("arrayFormatSeparator must be single character string")}function u(e,t){return t.encode?t.strict?i(e):encodeURIComponent(e):e}function l(e,t){return t.decode?o(e):e}function c(e){return Array.isArray(e)?e.sort():"object"==typeof e?c(Object.keys(e)).sort(((e,t)=>Number(e)-Number(t))).map((t=>e[t])):e}function f(e){const t=e.indexOf("#");return-1!==t&&(e=e.slice(0,t)),e}function d(e){const t=(e=f(e)).indexOf("?");return-1===t?"":e.slice(t+1)}function p(e,t){return t.parseNumbers&&!Number.isNaN(Number(e))&&"string"==typeof e&&""!==e.trim()?e=Number(e):!t.parseBooleans||null===e||"true"!==e.toLowerCase()&&"false"!==e.toLowerCase()||(e="true"===e.toLowerCase()),e}function m(e,t){a((t=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},t)).arrayFormatSeparator);const r=function(e){let t;switch(e.arrayFormat){case"index":return(e,r,i)=>{t=/\[(\d*)\]$/.exec(e),e=e.replace(/\[\d*\]$/,""),t?(void 0===i[e]&&(i[e]={}),i[e][t[1]]=r):i[e]=r};case"bracket":return(e,r,i)=>{t=/(\[\])$/.exec(e),e=e.replace(/\[\]$/,""),t?void 0!==i[e]?i[e]=[].concat(i[e],r):i[e]=[r]:i[e]=r};case"comma":case"separator":return(t,r,i)=>{const o="string"==typeof r&&r.includes(e.arrayFormatSeparator),n="string"==typeof r&&!o&&l(r,e).includes(e.arrayFormatSeparator);r=n?l(r,e):r;const s=o||n?r.split(e.arrayFormatSeparator).map((t=>l(t,e))):null===r?r:l(r,e);i[t]=s};default:return(e,t,r)=>{void 0!==r[e]?r[e]=[].concat(r[e],t):r[e]=t}}}(t),i=Object.create(null);if("string"!=typeof e)return i;if(!(e=e.trim().replace(/^[?#&]/,"")))return i;for(const o of e.split("&")){if(""===o)continue;let[e,s]=n(t.decode?o.replace(/\+/g," "):o,"=");s=void 0===s?null:["comma","separator"].includes(t.arrayFormat)?s:l(s,t),r(l(e,t),s,i)}for(const e of Object.keys(i)){const r=i[e];if("object"==typeof r&&null!==r)for(const e of Object.keys(r))r[e]=p(r[e],t);else i[e]=p(r,t)}return!1===t.sort?i:(!0===t.sort?Object.keys(i).sort():Object.keys(i).sort(t.sort)).reduce(((e,t)=>{const r=i[t];return Boolean(r)&&"object"==typeof r&&!Array.isArray(r)?e[t]=c(r):e[t]=r,e}),Object.create(null))}r.extract=d,r.parse=m,r.stringify=(e,t)=>{if(!e)return"";a((t=Object.assign({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},t)).arrayFormatSeparator);const r=r=>t.skipNull&&null==e[r]||t.skipEmptyString&&""===e[r],i=function(e){switch(e.arrayFormat){case"index":return t=>(r,i)=>{const o=r.length;return void 0===i||e.skipNull&&null===i||e.skipEmptyString&&""===i?r:null===i?[...r,[u(t,e),"[",o,"]"].join("")]:[...r,[u(t,e),"[",u(o,e),"]=",u(i,e)].join("")]};case"bracket":return t=>(r,i)=>void 0===i||e.skipNull&&null===i||e.skipEmptyString&&""===i?r:null===i?[...r,[u(t,e),"[]"].join("")]:[...r,[u(t,e),"[]=",u(i,e)].join("")];case"comma":case"separator":return t=>(r,i)=>null==i||0===i.length?r:0===r.length?[[u(t,e),"=",u(i,e)].join("")]:[[r,u(i,e)].join(e.arrayFormatSeparator)];default:return t=>(r,i)=>void 0===i||e.skipNull&&null===i||e.skipEmptyString&&""===i?r:null===i?[...r,u(t,e)]:[...r,[u(t,e),"=",u(i,e)].join("")]}}(t),o={};for(const t of Object.keys(e))r(t)||(o[t]=e[t]);const n=Object.keys(o);return!1!==t.sort&&n.sort(t.sort),n.map((r=>{const o=e[r];return void 0===o?"":null===o?u(r,t):Array.isArray(o)?o.reduce(i(r),[]).join("&"):u(r,t)+"="+u(o,t)})).filter((e=>e.length>0)).join("&")},r.parseUrl=(e,t)=>{t=Object.assign({decode:!0},t);const[r,i]=n(e,"#");return Object.assign({url:r.split("?")[0]||"",query:m(d(e),t)},t&&t.parseFragmentIdentifier&&i?{fragmentIdentifier:l(i,t)}:{})},r.stringifyUrl=(e,t)=>{t=Object.assign({encode:!0,strict:!0},t);const i=f(e.url).split("?")[0]||"",o=r.extract(e.url),n=r.parse(o,{sort:!1}),s=Object.assign(n,e.query);let a=r.stringify(s,t);a&&(a="?"+a);let l=function(e){let t="";const r=e.indexOf("#");return-1!==r&&(t=e.slice(r)),t}(e.url);return e.fragmentIdentifier&&(l="#"+u(e.fragmentIdentifier,t)),`${i}${a}${l}`},r.pick=(e,t,i)=>{i=Object.assign({parseFragmentIdentifier:!0},i);const{url:o,query:n,fragmentIdentifier:a}=r.parseUrl(e,i);return r.stringifyUrl({url:o,query:s(n,t),fragmentIdentifier:a},i)},r.exclude=(e,t,i)=>{const o=Array.isArray(t)?e=>!t.includes(e):(e,r)=>!t(e,r);return r.pick(e,o,i)}},{"decode-uri-component":5,"filter-obj":6,"split-on-first":11,"strict-uri-encode":12}],11:[function(e,t,r){"use strict";t.exports=(e,t)=>{if("string"!=typeof e||"string"!=typeof t)throw new TypeError("Expected the arguments to be of type `string`");if(""===t)return[e];const r=e.indexOf(t);return-1===r?[e]:[e.slice(0,r),e.slice(r+t.length)]}},{}],12:[function(e,t,r){"use strict";t.exports=e=>encodeURIComponent(e).replace(/[!'()*]/g,(e=>"%"+e.charCodeAt(0).toString(16).toUpperCase()))},{}],13:[function(e,t,r){!function(e){"use strict";e.exports.is_uri=r,e.exports.is_http_uri=i,e.exports.is_https_uri=o,e.exports.is_web_uri=n,e.exports.isUri=r,e.exports.isHttpUri=i,e.exports.isHttpsUri=o,e.exports.isWebUri=n;var t=function(e){return e.match(/(?:([^:\/?#]+):)?(?:\/\/([^\/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?/)};function r(e){if(e&&!/[^a-z0-9\:\/\?\#\[\]\@\!\$\&\'\(\)\*\+\,\;\=\.\-\_\~\%]/i.test(e)&&!/%[^0-9a-f]/i.test(e)&&!/%[0-9a-f](:?[^0-9a-f]|$)/i.test(e)){var r,i,o,n,s,a="",u="";if(a=(r=t(e))[1],i=r[2],o=r[3],n=r[4],s=r[5],a&&a.length&&o.length>=0){if(i&&i.length){if(0!==o.length&&!/^\//.test(o))return}else if(/^\/\//.test(o))return;if(/^[a-z][a-z0-9\+\-\.]*$/.test(a.toLowerCase()))return u+=a+":",i&&i.length&&(u+="//"+i),u+=o,n&&n.length&&(u+="?"+n),s&&s.length&&(u+="#"+s),u}}}function i(e,i){if(r(e)){var o,n,s,a,u="",l="",c="",f="";if(u=(o=t(e))[1],l=o[2],n=o[3],s=o[4],a=o[5],u){if(i){if("https"!=u.toLowerCase())return}else if("http"!=u.toLowerCase())return;if(l)return/:(\d+)$/.test(l)&&(c=l.match(/:(\d+)$/)[0],l=l.replace(/:\d+$/,"")),f+=u+":",f+="//"+l,c&&(f+=c),f+=n,s&&s.length&&(f+="?"+s),a&&a.length&&(f+="#"+a),f}}}function o(e){return i(e,!0)}function n(e){return i(e)||o(e)}}(t)},{}],14:[function(e,t,r){"use strict";function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var o=Ge(e("./lib/toDate")),n=Ge(e("./lib/toFloat")),s=Ge(e("./lib/toInt")),a=Ge(e("./lib/toBoolean")),u=Ge(e("./lib/equals")),l=Ge(e("./lib/contains")),c=Ge(e("./lib/matches")),f=Ge(e("./lib/isEmail")),d=Ge(e("./lib/isURL")),p=Ge(e("./lib/isMACAddress")),m=Ge(e("./lib/isIP")),h=Ge(e("./lib/isIPRange")),g=Ge(e("./lib/isFQDN")),y=Ge(e("./lib/isDate")),b=Ge(e("./lib/isBoolean")),v=Ge(e("./lib/isLocale")),_=Be(e("./lib/isAlpha")),A=Be(e("./lib/isAlphanumeric")),w=Ge(e("./lib/isNumeric")),S=Ge(e("./lib/isPassportNumber")),x=Ge(e("./lib/isPort")),$=Ge(e("./lib/isLowercase")),M=Ge(e("./lib/isUppercase")),E=Ge(e("./lib/isIMEI")),I=Ge(e("./lib/isAscii")),P=Ge(e("./lib/isFullWidth")),O=Ge(e("./lib/isHalfWidth")),C=Ge(e("./lib/isVariableWidth")),R=Ge(e("./lib/isMultibyte")),N=Ge(e("./lib/isSemVer")),F=Ge(e("./lib/isSurrogatePair")),T=Ge(e("./lib/isInt")),j=Be(e("./lib/isFloat")),U=Ge(e("./lib/isDecimal")),D=Ge(e("./lib/isHexadecimal")),k=Ge(e("./lib/isOctal")),L=Ge(e("./lib/isDivisibleBy")),Z=Ge(e("./lib/isHexColor")),B=Ge(e("./lib/isRgbColor")),G=Ge(e("./lib/isHSL")),H=Ge(e("./lib/isISRC")),Y=Ge(e("./lib/isIBAN")),K=Ge(e("./lib/isBIC")),q=Ge(e("./lib/isMD5")),W=Ge(e("./lib/isHash")),V=Ge(e("./lib/isJWT")),z=Ge(e("./lib/isJSON")),J=Ge(e("./lib/isEmpty")),X=Ge(e("./lib/isLength")),Q=Ge(e("./lib/isByteLength")),ee=Ge(e("./lib/isUUID")),te=Ge(e("./lib/isMongoId")),re=Ge(e("./lib/isAfter")),ie=Ge(e("./lib/isBefore")),oe=Ge(e("./lib/isIn")),ne=Ge(e("./lib/isCreditCard")),se=Ge(e("./lib/isIdentityCard")),ae=Ge(e("./lib/isEAN")),ue=Ge(e("./lib/isISIN")),le=Ge(e("./lib/isISBN")),ce=Ge(e("./lib/isISSN")),fe=Ge(e("./lib/isTaxID")),de=Be(e("./lib/isMobilePhone")),pe=Ge(e("./lib/isEthereumAddress")),me=Ge(e("./lib/isCurrency")),he=Ge(e("./lib/isBtcAddress")),ge=Ge(e("./lib/isISO8601")),ye=Ge(e("./lib/isRFC3339")),be=Ge(e("./lib/isISO31661Alpha2")),ve=Ge(e("./lib/isISO31661Alpha3")),_e=Ge(e("./lib/isBase32")),Ae=Ge(e("./lib/isBase58")),we=Ge(e("./lib/isBase64")),Se=Ge(e("./lib/isDataURI")),xe=Ge(e("./lib/isMagnetURI")),$e=Ge(e("./lib/isMimeType")),Me=Ge(e("./lib/isLatLong")),Ee=Be(e("./lib/isPostalCode")),Ie=Ge(e("./lib/ltrim")),Pe=Ge(e("./lib/rtrim")),Oe=Ge(e("./lib/trim")),Ce=Ge(e("./lib/escape")),Re=Ge(e("./lib/unescape")),Ne=Ge(e("./lib/stripLow")),Fe=Ge(e("./lib/whitelist")),Te=Ge(e("./lib/blacklist")),je=Ge(e("./lib/isWhitelisted")),Ue=Ge(e("./lib/normalizeEmail")),De=Ge(e("./lib/isSlug")),ke=Ge(e("./lib/isStrongPassword")),Le=Ge(e("./lib/isVAT"));function Ze(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return Ze=function(){return e},e}function Be(e){if(e&&e.__esModule)return e;if(null===e||"object"!==i(e)&&"function"!=typeof e)return{default:e};var t=Ze();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var s=o?Object.getOwnPropertyDescriptor(e,n):null;s&&(s.get||s.set)?Object.defineProperty(r,n,s):r[n]=e[n]}return r.default=e,t&&t.set(e,r),r}function Ge(e){return e&&e.__esModule?e:{default:e}}var He={version:"13.5.2",toDate:o.default,toFloat:n.default,toInt:s.default,toBoolean:a.default,equals:u.default,contains:l.default,matches:c.default,isEmail:f.default,isURL:d.default,isMACAddress:p.default,isIP:m.default,isIPRange:h.default,isFQDN:g.default,isBoolean:b.default,isIBAN:Y.default,isBIC:K.default,isAlpha:_.default,isAlphaLocales:_.locales,isAlphanumeric:A.default,isAlphanumericLocales:A.locales,isNumeric:w.default,isPassportNumber:S.default,isPort:x.default,isLowercase:$.default,isUppercase:M.default,isAscii:I.default,isFullWidth:P.default,isHalfWidth:O.default,isVariableWidth:C.default,isMultibyte:R.default,isSemVer:N.default,isSurrogatePair:F.default,isInt:T.default,isIMEI:E.default,isFloat:j.default,isFloatLocales:j.locales,isDecimal:U.default,isHexadecimal:D.default,isOctal:k.default,isDivisibleBy:L.default,isHexColor:Z.default,isRgbColor:B.default,isHSL:G.default,isISRC:H.default,isMD5:q.default,isHash:W.default,isJWT:V.default,isJSON:z.default,isEmpty:J.default,isLength:X.default,isLocale:v.default,isByteLength:Q.default,isUUID:ee.default,isMongoId:te.default,isAfter:re.default,isBefore:ie.default,isIn:oe.default,isCreditCard:ne.default,isIdentityCard:se.default,isEAN:ae.default,isISIN:ue.default,isISBN:le.default,isISSN:ce.default,isMobilePhone:de.default,isMobilePhoneLocales:de.locales,isPostalCode:Ee.default,isPostalCodeLocales:Ee.locales,isEthereumAddress:pe.default,isCurrency:me.default,isBtcAddress:he.default,isISO8601:ge.default,isRFC3339:ye.default,isISO31661Alpha2:be.default,isISO31661Alpha3:ve.default,isBase32:_e.default,isBase58:Ae.default,isBase64:we.default,isDataURI:Se.default,isMagnetURI:xe.default,isMimeType:$e.default,isLatLong:Me.default,ltrim:Ie.default,rtrim:Pe.default,trim:Oe.default,escape:Ce.default,unescape:Re.default,stripLow:Ne.default,whitelist:Fe.default,blacklist:Te.default,isWhitelisted:je.default,normalizeEmail:Ue.default,toString:toString,isSlug:De.default,isStrongPassword:ke.default,isTaxID:fe.default,isDate:y.default,isVAT:Le.default};r.default=He,t.exports=r.default,t.exports.default=r.default},{"./lib/blacklist":16,"./lib/contains":17,"./lib/equals":18,"./lib/escape":19,"./lib/isAfter":20,"./lib/isAlpha":21,"./lib/isAlphanumeric":22,"./lib/isAscii":23,"./lib/isBIC":24,"./lib/isBase32":25,"./lib/isBase58":26,"./lib/isBase64":27,"./lib/isBefore":28,"./lib/isBoolean":29,"./lib/isBtcAddress":30,"./lib/isByteLength":31,"./lib/isCreditCard":32,"./lib/isCurrency":33,"./lib/isDataURI":34,"./lib/isDate":35,"./lib/isDecimal":36,"./lib/isDivisibleBy":37,"./lib/isEAN":38,"./lib/isEmail":39,"./lib/isEmpty":40,"./lib/isEthereumAddress":41,"./lib/isFQDN":42,"./lib/isFloat":43,"./lib/isFullWidth":44,"./lib/isHSL":45,"./lib/isHalfWidth":46,"./lib/isHash":47,"./lib/isHexColor":48,"./lib/isHexadecimal":49,"./lib/isIBAN":50,"./lib/isIMEI":51,"./lib/isIP":52,"./lib/isIPRange":53,"./lib/isISBN":54,"./lib/isISIN":55,"./lib/isISO31661Alpha2":56,"./lib/isISO31661Alpha3":57,"./lib/isISO8601":58,"./lib/isISRC":59,"./lib/isISSN":60,"./lib/isIdentityCard":61,"./lib/isIn":62,"./lib/isInt":63,"./lib/isJSON":64,"./lib/isJWT":65,"./lib/isLatLong":66,"./lib/isLength":67,"./lib/isLocale":68,"./lib/isLowercase":69,"./lib/isMACAddress":70,"./lib/isMD5":71,"./lib/isMagnetURI":72,"./lib/isMimeType":73,"./lib/isMobilePhone":74,"./lib/isMongoId":75,"./lib/isMultibyte":76,"./lib/isNumeric":77,"./lib/isOctal":78,"./lib/isPassportNumber":79,"./lib/isPort":80,"./lib/isPostalCode":81,"./lib/isRFC3339":82,"./lib/isRgbColor":83,"./lib/isSemVer":84,"./lib/isSlug":85,"./lib/isStrongPassword":86,"./lib/isSurrogatePair":87,"./lib/isTaxID":88,"./lib/isURL":89,"./lib/isUUID":90,"./lib/isUppercase":91,"./lib/isVAT":92,"./lib/isVariableWidth":93,"./lib/isWhitelisted":94,"./lib/ltrim":95,"./lib/matches":96,"./lib/normalizeEmail":97,"./lib/rtrim":98,"./lib/stripLow":99,"./lib/toBoolean":100,"./lib/toDate":101,"./lib/toFloat":102,"./lib/toInt":103,"./lib/trim":104,"./lib/unescape":105,"./lib/whitelist":112}],15:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.commaDecimal=r.dotDecimal=r.farsiLocales=r.arabicLocales=r.englishLocales=r.decimal=r.alphanumeric=r.alpha=void 0;var i={"en-US":/^[A-Z]+$/i,"az-AZ":/^[A-VXYZÇƏĞİıÖŞÜ]+$/i,"bg-BG":/^[А-Я]+$/i,"cs-CZ":/^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,"da-DK":/^[A-ZÆØÅ]+$/i,"de-DE":/^[A-ZÄÖÜß]+$/i,"el-GR":/^[Α-ώ]+$/i,"es-ES":/^[A-ZÁÉÍÑÓÚÜ]+$/i,"fa-IR":/^[ابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی]+$/i,"fr-FR":/^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,"it-IT":/^[A-ZÀÉÈÌÎÓÒÙ]+$/i,"nb-NO":/^[A-ZÆØÅ]+$/i,"nl-NL":/^[A-ZÁÉËÏÓÖÜÚ]+$/i,"nn-NO":/^[A-ZÆØÅ]+$/i,"hu-HU":/^[A-ZÁÉÍÓÖŐÚÜŰ]+$/i,"pl-PL":/^[A-ZĄĆĘŚŁŃÓŻŹ]+$/i,"pt-PT":/^[A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,"ru-RU":/^[А-ЯЁ]+$/i,"sl-SI":/^[A-ZČĆĐŠŽ]+$/i,"sk-SK":/^[A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,"sr-RS@latin":/^[A-ZČĆŽŠĐ]+$/i,"sr-RS":/^[А-ЯЂЈЉЊЋЏ]+$/i,"sv-SE":/^[A-ZÅÄÖ]+$/i,"th-TH":/^[ก-๐\s]+$/i,"tr-TR":/^[A-ZÇĞİıÖŞÜ]+$/i,"uk-UA":/^[А-ЩЬЮЯЄIЇҐі]+$/i,"vi-VN":/^[A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i,"ku-IQ":/^[ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,ar:/^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,he:/^[א-ת]+$/,fa:/^['آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی']+$/i};r.alpha=i;var o={"en-US":/^[0-9A-Z]+$/i,"az-AZ":/^[0-9A-VXYZÇƏĞİıÖŞÜ]+$/i,"bg-BG":/^[0-9А-Я]+$/i,"cs-CZ":/^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,"da-DK":/^[0-9A-ZÆØÅ]+$/i,"de-DE":/^[0-9A-ZÄÖÜß]+$/i,"el-GR":/^[0-9Α-ω]+$/i,"es-ES":/^[0-9A-ZÁÉÍÑÓÚÜ]+$/i,"fr-FR":/^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,"it-IT":/^[0-9A-ZÀÉÈÌÎÓÒÙ]+$/i,"hu-HU":/^[0-9A-ZÁÉÍÓÖŐÚÜŰ]+$/i,"nb-NO":/^[0-9A-ZÆØÅ]+$/i,"nl-NL":/^[0-9A-ZÁÉËÏÓÖÜÚ]+$/i,"nn-NO":/^[0-9A-ZÆØÅ]+$/i,"pl-PL":/^[0-9A-ZĄĆĘŚŁŃÓŻŹ]+$/i,"pt-PT":/^[0-9A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,"ru-RU":/^[0-9А-ЯЁ]+$/i,"sl-SI":/^[0-9A-ZČĆĐŠŽ]+$/i,"sk-SK":/^[0-9A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,"sr-RS@latin":/^[0-9A-ZČĆŽŠĐ]+$/i,"sr-RS":/^[0-9А-ЯЂЈЉЊЋЏ]+$/i,"sv-SE":/^[0-9A-ZÅÄÖ]+$/i,"th-TH":/^[ก-๙\s]+$/i,"tr-TR":/^[0-9A-ZÇĞİıÖŞÜ]+$/i,"uk-UA":/^[0-9А-ЩЬЮЯЄIЇҐі]+$/i,"ku-IQ":/^[٠١٢٣٤٥٦٧٨٩0-9ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,"vi-VN":/^[0-9A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i,ar:/^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,he:/^[0-9א-ת]+$/,fa:/^['0-9آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی۱۲۳۴۵۶۷۸۹۰']+$/i};r.alphanumeric=o;var n={"en-US":".",ar:"٫"};r.decimal=n;var s=["AU","GB","HK","IN","NZ","ZA","ZM"];r.englishLocales=s;for(var a,u=0;u<s.length;u++)i[a="en-".concat(s[u])]=i["en-US"],o[a]=o["en-US"],n[a]=n["en-US"];var l=["AE","BH","DZ","EG","IQ","JO","KW","LB","LY","MA","QM","QA","SA","SD","SY","TN","YE"];r.arabicLocales=l;for(var c,f=0;f<l.length;f++)i[c="ar-".concat(l[f])]=i.ar,o[c]=o.ar,n[c]=n.ar;var d=["IR","AF"];r.farsiLocales=d;for(var p,m=0;m<d.length;m++)o[p="fa-".concat(d[m])]=o.fa,n[p]=n.ar;var h=["ar-EG","ar-LB","ar-LY"];r.dotDecimal=h;var g=["bg-BG","cs-CZ","da-DK","de-DE","el-GR","en-ZM","es-ES","fr-CA","fr-FR","id-ID","it-IT","ku-IQ","hu-HU","nb-NO","nn-NO","nl-NL","pl-PL","pt-PT","ru-RU","sl-SI","sr-RS@latin","sr-RS","sv-SE","tr-TR","uk-UA","vi-VN"];r.commaDecimal=g;for(var y=0;y<h.length;y++)n[h[y]]=n["en-US"];for(var b=0;b<g.length;b++)n[g[b]]=",";i["fr-CA"]=i["fr-FR"],o["fr-CA"]=o["fr-FR"],i["pt-BR"]=i["pt-PT"],o["pt-BR"]=o["pt-PT"],n["pt-BR"]=n["pt-PT"],i["pl-Pl"]=i["pl-PL"],o["pl-Pl"]=o["pl-PL"],n["pl-Pl"]=n["pl-PL"],i["fa-AF"]=i.fa},{}],16:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){return(0,o.default)(e),e.replace(new RegExp("[".concat(t,"]+"),"g"),"")};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],17:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t,r){return(0,i.default)(e),(r=(0,n.default)(r,a)).ignoreCase?e.toLowerCase().indexOf((0,o.default)(t).toLowerCase())>=0:e.indexOf((0,o.default)(t))>=0};var i=s(e("./util/assertString")),o=s(e("./util/toString")),n=s(e("./util/merge"));function s(e){return e&&e.__esModule?e:{default:e}}var a={ignoreCase:!1};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107,"./util/merge":109,"./util/toString":111}],18:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){return(0,o.default)(e),e===t};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],19:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),e.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\//g,"&#x2F;").replace(/\\/g,"&#x5C;").replace(/`/g,"&#96;")};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],20:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:String(new Date);(0,i.default)(e);var r=(0,o.default)(t),n=(0,o.default)(e);return!!(n&&r&&n>r)};var i=n(e("./util/assertString")),o=n(e("./toDate"));function n(e){return e&&e.__esModule?e:{default:e}}t.exports=r.default,t.exports.default=r.default},{"./toDate":101,"./util/assertString":107}],21:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"en-US",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};(0,o.default)(e);var i=e,s=r.ignore;if(s)if(s instanceof RegExp)i=i.replace(s,"");else{if("string"!=typeof s)throw new Error("ignore should be instance of a String or RegExp");i=i.replace(new RegExp("[".concat(s.replace(/[-[\]{}()*+?.,\\^$|#\\s]/g,"\\$&"),"]"),"g"),"")}if(t in n.alpha)return n.alpha[t].test(i);throw new Error("Invalid locale '".concat(t,"'"))},r.locales=void 0;var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=e("./alpha"),s=Object.keys(n.alpha);r.locales=s},{"./alpha":15,"./util/assertString":107}],22:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"en-US";if((0,o.default)(e),t in n.alphanumeric)return n.alphanumeric[t].test(e);throw new Error("Invalid locale '".concat(t,"'"))},r.locales=void 0;var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=e("./alpha"),s=Object.keys(n.alphanumeric);r.locales=s},{"./alpha":15,"./util/assertString":107}],23:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^[\x00-\x7F]+$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],24:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^[A-z]{4}[A-z]{2}\w{2}(\w{3})?$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],25:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),!(e.length%8!=0||!n.test(e))};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^[A-Z2-7]+=*$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],26:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),!!n.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^[A-HJ-NP-Za-km-z1-9]*$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],27:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){(0,i.default)(e),t=(0,o.default)(t,u);var r=e.length;if(t.urlSafe)return a.test(e);if(r%4!=0||s.test(e))return!1;var n=e.indexOf("=");return-1===n||n===r-1||n===r-2&&"="===e[r-1]};var i=n(e("./util/assertString")),o=n(e("./util/merge"));function n(e){return e&&e.__esModule?e:{default:e}}var s=/[^A-Z0-9+\/=]/i,a=/^[A-Z0-9_\-]*$/i,u={urlSafe:!1};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107,"./util/merge":109}],28:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:String(new Date);(0,i.default)(e);var r=(0,o.default)(t),n=(0,o.default)(e);return!!(n&&r&&n<r)};var i=n(e("./util/assertString")),o=n(e("./toDate"));function n(e){return e&&e.__esModule?e:{default:e}}t.exports=r.default,t.exports.default=r.default},{"./toDate":101,"./util/assertString":107}],29:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),["true","false","1","0"].indexOf(e)>=0};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],30:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^(bc1|[13])[a-zA-HJ-NP-Z0-9]{25,39}$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],31:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){var r,i;(0,o.default)(e),"object"===n(t)?(r=t.min||0,i=t.max):(r=arguments[1],i=arguments[2]);var s=encodeURI(e).split(/%..|./).length-1;return s>=r&&(void 0===i||s<=i)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],32:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){(0,o.default)(e);var t=e.replace(/[- ]+/g,"");if(!n.test(t))return!1;for(var r,i,s,a=0,u=t.length-1;u>=0;u--)r=t.substring(u,u+1),i=parseInt(r,10),a+=s&&(i*=2)>=10?i%10+1:i,s=!s;return!(a%10!=0||!t)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^(?:4[0-9]{12}(?:[0-9]{3,6})?|5[1-5][0-9]{14}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12,15}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11}|6[27][0-9]{14})$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],33:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){return(0,o.default)(e),function(e){var t="\\d{".concat(e.digits_after_decimal[0],"}");e.digits_after_decimal.forEach((function(e,r){0!==r&&(t="".concat(t,"|\\d{").concat(e,"}"))}));var r="(".concat(e.symbol.replace(/\W/,(function(e){return"\\".concat(e)})),")").concat(e.require_symbol?"":"?"),i="-?",o="[1-9]\\d{0,2}(\\".concat(e.thousands_separator,"\\d{3})*"),n="(".concat(["0","[1-9]\\d*",o].join("|"),")?"),s="(\\".concat(e.decimal_separator,"(").concat(t,"))").concat(e.require_decimal?"":"?"),a=n+(e.allow_decimal||e.require_decimal?s:"");return e.allow_negatives&&!e.parens_for_negatives&&(e.negative_sign_after_digits?a+=i:e.negative_sign_before_digits&&(a=i+a)),e.allow_negative_sign_placeholder?a="( (?!\\-))?".concat(a):e.allow_space_after_symbol?a=" ?".concat(a):e.allow_space_after_digits&&(a+="( (?!$))?"),e.symbol_after_digits?a+=r:a=r+a,e.allow_negatives&&(e.parens_for_negatives?a="(\\(".concat(a,"\\)|").concat(a,")"):e.negative_sign_before_digits||e.negative_sign_after_digits||(a=i+a)),new RegExp("^(?!-? )(?=.*\\d)".concat(a,"$"))}(t=(0,i.default)(t,s)).test(e)};var i=n(e("./util/merge")),o=n(e("./util/assertString"));function n(e){return e&&e.__esModule?e:{default:e}}var s={symbol:"$",require_symbol:!1,allow_space_after_symbol:!1,symbol_after_digits:!1,allow_negatives:!0,parens_for_negatives:!1,negative_sign_before_digits:!1,negative_sign_after_digits:!1,allow_negative_sign_placeholder:!1,thousands_separator:",",decimal_separator:".",allow_decimal:!0,require_decimal:!1,digits_after_decimal:[2],allow_space_after_digits:!1};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107,"./util/merge":109}],34:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){(0,o.default)(e);var t=e.split(",");if(t.length<2)return!1;var r=t.shift().trim().split(";"),i=r.shift();if("data:"!==i.substr(0,5))return!1;var u=i.substr(5);if(""!==u&&!n.test(u))return!1;for(var l=0;l<r.length;l++)if(l===r.length-1&&"base64"===r[l].toLowerCase());else if(!s.test(r[l]))return!1;for(var c=0;c<t.length;c++)if(!a.test(t[c]))return!1;return!0};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^[a-z]+\/[a-z0-9\-\+]+$/i,s=/^[a-z\-]+=[a-z0-9\-]+$/i,a=/^[a-z0-9!\$&'\(\)\*\+,;=\-\._~:@\/\?%\s]*$/i;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],35:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){if(t="string"==typeof t?(0,o.default)({format:t},a):(0,o.default)(t,a),"string"==typeof e&&(h=t.format,/(^(y{4}|y{2})[\/-](m{1,2})[\/-](d{1,2})$)|(^(m{1,2})[\/-](d{1,2})[\/-]((y{4}|y{2})$))|(^(d{1,2})[\/-](m{1,2})[\/-]((y{4}|y{2})$))/gi.test(h))){var r,i=t.delimiters.find((function(e){return-1!==t.format.indexOf(e)})),s=t.strictMode?i:t.delimiters.find((function(t){return-1!==e.indexOf(t)})),u=function(e,t){for(var r=[],i=Math.min(e.length,t.length),o=0;o<i;o++)r.push([e[o],t[o]]);return r}(e.split(s),t.format.toLowerCase().split(i)),l={},c=function(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=n(e))){r&&(e=r);var i=0,o=function(){};return{s:o,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var s,a=!0,u=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return a=e.done,e},e:function(e){u=!0,s=e},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw s}}}}(u);try{for(c.s();!(r=c.n()).done;){var f=function(e){if(Array.isArray(e))return e}(m=r.value)||function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var r=[],i=!0,o=!1,n=void 0;try{for(var s,a=e[Symbol.iterator]();!(i=(s=a.next()).done)&&(r.push(s.value),2!==r.length);i=!0);}catch(e){o=!0,n=e}finally{try{i||null==a.return||a.return()}finally{if(o)throw n}}return r}}(m)||n(m,2)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),d=f[0],p=f[1];if(d.length!==p.length)return!1;l[p.charAt(0)]=d}}catch(e){c.e(e)}finally{c.f()}return new Date("".concat(l.m,"/").concat(l.d,"/").concat(l.y)).getDate()===+l.d}var m,h;return!t.strictMode&&"[object Date]"===Object.prototype.toString.call(e)&&isFinite(e)};var i,o=(i=e("./util/merge"))&&i.__esModule?i:{default:i};function n(e,t){if(e){if("string"==typeof e)return s(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?s(e,t):void 0}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}var a={format:"YYYY/MM/DD",delimiters:["/","-"],strictMode:!1};t.exports=r.default,t.exports.default=r.default},{"./util/merge":109}],36:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){if((0,o.default)(e),(t=(0,i.default)(t,u)).locale in s.decimal)return!(0,n.default)(l,e.replace(/ /g,""))&&function(e){return new RegExp("^[-+]?([0-9]+)?(\\".concat(s.decimal[e.locale],"[0-9]{").concat(e.decimal_digits,"})").concat(e.force_decimal?"":"?","$"))}(t).test(e);throw new Error("Invalid locale '".concat(t.locale,"'"))};var i=a(e("./util/merge")),o=a(e("./util/assertString")),n=a(e("./util/includes")),s=e("./alpha");function a(e){return e&&e.__esModule?e:{default:e}}var u={force_decimal:!1,decimal_digits:"1,",locale:"en-US"},l=["","-","+"];t.exports=r.default,t.exports.default=r.default},{"./alpha":15,"./util/assertString":107,"./util/includes":108,"./util/merge":109}],37:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){return(0,i.default)(e),(0,o.default)(e)%parseInt(t,10)==0};var i=n(e("./util/assertString")),o=n(e("./toFloat"));function n(e){return e&&e.__esModule?e:{default:e}}t.exports=r.default,t.exports.default=r.default},{"./toFloat":102,"./util/assertString":107}],38:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){(0,o.default)(e);var t,r,i=Number(e.slice(-1));return n.test(e)&&i===((r=10-(t=e).slice(0,-1).split("").map((function(e,r){return Number(e)*function(e,t){return 8===e?t%2==0?3:1:t%2==0?1:3}(t.length,r)})).reduce((function(e,t){return e+t}),0)%10)<10?r:0)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^(\d{8}|\d{13})$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],39:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){if((0,i.default)(e),(t=(0,o.default)(t,c)).require_display_name||t.allow_display_name){var r=e.match(f);if(r){var u,y=function(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var r=[],i=!0,o=!1,n=void 0;try{for(var s,a=e[Symbol.iterator]();!(i=(s=a.next()).done)&&(r.push(s.value),3!==r.length);i=!0);}catch(e){o=!0,n=e}finally{try{i||null==a.return||a.return()}finally{if(o)throw n}}return r}}(e)||function(e,t){if(e){if("string"==typeof e)return l(e,3);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?l(e,3):void 0}}(e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(r);if(u=y[1],e=y[2],u.endsWith(" ")&&(u=u.substr(0,u.length-1)),!function(e){var t=e.match(/^"(.+)"$/i),r=t?t[1]:e;if(!r.trim())return!1;if(/[\.";<>]/.test(r)){if(!t)return!1;if(r.split('"').length!==r.split('\\"').length)return!1}return!0}(u))return!1}else if(t.require_display_name)return!1}if(!t.ignore_max_length&&e.length>254)return!1;var b=e.split("@"),v=b.pop(),_=b.join("@"),A=v.toLowerCase();if(t.domain_specific_validation&&("gmail.com"===A||"googlemail.com"===A)){var w=(_=_.toLowerCase()).split("+")[0];if(!(0,n.default)(w.replace(".",""),{min:6,max:30}))return!1;for(var S=w.split("."),x=0;x<S.length;x++)if(!p.test(S[x]))return!1}if(!(!1!==t.ignore_max_length||(0,n.default)(_,{max:64})&&(0,n.default)(v,{max:254})))return!1;if(!(0,s.default)(v,{require_tld:t.require_tld})){if(!t.allow_ip_domain)return!1;if(!(0,a.default)(v)){if(!v.startsWith("[")||!v.endsWith("]"))return!1;var $=v.substr(1,v.length-2);if(0===$.length||!(0,a.default)($))return!1}}if('"'===_[0])return _=_.slice(1,_.length-1),t.allow_utf8_local_part?g.test(_):m.test(_);for(var M=t.allow_utf8_local_part?h:d,E=_.split("."),I=0;I<E.length;I++)if(!M.test(E[I]))return!1;return!t.blacklisted_chars||-1===_.search(new RegExp("[".concat(t.blacklisted_chars,"]+"),"g"))};var i=u(e("./util/assertString")),o=u(e("./util/merge")),n=u(e("./isByteLength")),s=u(e("./isFQDN")),a=u(e("./isIP"));function u(e){return e&&e.__esModule?e:{default:e}}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}var c={allow_display_name:!1,require_display_name:!1,allow_utf8_local_part:!0,require_tld:!0,blacklisted_chars:"",ignore_max_length:!1},f=/^([^\x00-\x1F\x7F-\x9F\cX]+)<(.+)>$/i,d=/^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~]+$/i,p=/^[a-z\d]+$/,m=/^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f]))*$/i,h=/^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+$/i,g=/^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*$/i;t.exports=r.default,t.exports.default=r.default},{"./isByteLength":31,"./isFQDN":42,"./isIP":52,"./util/assertString":107,"./util/merge":109}],40:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){return(0,i.default)(e),0===((t=(0,o.default)(t,s)).ignore_whitespace?e.trim().length:e.length)};var i=n(e("./util/assertString")),o=n(e("./util/merge"));function n(e){return e&&e.__esModule?e:{default:e}}var s={ignore_whitespace:!1};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107,"./util/merge":109}],41:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^(0x)[0-9a-f]{40}$/i;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],42:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){(0,i.default)(e),(t=(0,o.default)(t,s)).allow_trailing_dot&&"."===e[e.length-1]&&(e=e.substring(0,e.length-1));var r=e.split("."),n=r[r.length-1];if(t.require_tld){if(r.length<2)return!1;if(!/^([a-z\u00a1-\uffff]{2,}|xn[a-z0-9-]{2,})$/i.test(n))return!1;if(/[\s\u2002-\u200B\u202F\u205F\u3000\uFEFF\uDB40\uDC20\u00A9\uFFFD]/.test(n))return!1}return!(!t.allow_numeric_tld&&/^\d+$/.test(n))&&r.every((function(e){return!(e.length>63||!/^[a-z_\u00a1-\uffff0-9-]+$/i.test(e)||/[\uff01-\uff5e]/.test(e)||/^-|-$/.test(e)||!t.allow_underscores&&/_/.test(e))}))};var i=n(e("./util/assertString")),o=n(e("./util/merge"));function n(e){return e&&e.__esModule?e:{default:e}}var s={require_tld:!0,allow_underscores:!1,allow_trailing_dot:!1,allow_numeric_tld:!1};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107,"./util/merge":109}],43:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){(0,o.default)(e),t=t||{};var r=new RegExp("^(?:[-+])?(?:[0-9]+)?(?:\\".concat(t.locale?n.decimal[t.locale]:".","[0-9]*)?(?:[eE][\\+\\-]?(?:[0-9]+))?$"));if(""===e||"."===e||"-"===e||"+"===e)return!1;var i=parseFloat(e.replace(",","."));return r.test(e)&&(!t.hasOwnProperty("min")||i>=t.min)&&(!t.hasOwnProperty("max")||i<=t.max)&&(!t.hasOwnProperty("lt")||i<t.lt)&&(!t.hasOwnProperty("gt")||i>t.gt)},r.locales=void 0;var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=e("./alpha"),s=Object.keys(n.decimal);r.locales=s},{"./alpha":15,"./util/assertString":107}],44:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e)},r.fullWidth=void 0;var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/[^\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/;r.fullWidth=n},{"./util/assertString":107}],45:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e)||s.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^(hsl)a?\(\s*((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?))(deg|grad|rad|turn|\s*)(\s*,\s*(\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%){2}\s*(,\s*((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%?)\s*)?\)$/i,s=/^(hsl)a?\(\s*((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?))(deg|grad|rad|turn|\s)(\s*(\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%){2}\s*(\/\s*((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%?)\s*)?\)$/i;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],46:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e)},r.halfWidth=void 0;var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/[\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/;r.halfWidth=n},{"./util/assertString":107}],47:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){return(0,o.default)(e),new RegExp("^[a-fA-F0-9]{".concat(n[t],"}$")).test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n={md5:32,md4:32,sha1:40,sha256:64,sha384:96,sha512:128,ripemd128:32,ripemd160:40,tiger128:32,tiger160:40,tiger192:48,crc32:8,crc32b:8};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],48:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$/i;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],49:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^(0x|0h)?[0-9A-F]+$/i;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],50:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),function(e){var t=e.replace(/[\s\-]+/gi,"").toUpperCase(),r=t.slice(0,2).toUpperCase();return r in n&&n[r].test(t)}(e)&&function(e){var t=e.replace(/[^A-Z0-9]+/gi,"").toUpperCase();return 1===(t.slice(4)+t.slice(0,4)).replace(/[A-Z]/g,(function(e){return e.charCodeAt(0)-55})).match(/\d{1,7}/g).reduce((function(e,t){return Number(e+t)%97}),"")}(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n={AD:/^(AD[0-9]{2})\d{8}[A-Z0-9]{12}$/,AE:/^(AE[0-9]{2})\d{3}\d{16}$/,AL:/^(AL[0-9]{2})\d{8}[A-Z0-9]{16}$/,AT:/^(AT[0-9]{2})\d{16}$/,AZ:/^(AZ[0-9]{2})[A-Z0-9]{4}\d{20}$/,BA:/^(BA[0-9]{2})\d{16}$/,BE:/^(BE[0-9]{2})\d{12}$/,BG:/^(BG[0-9]{2})[A-Z]{4}\d{6}[A-Z0-9]{8}$/,BH:/^(BH[0-9]{2})[A-Z]{4}[A-Z0-9]{14}$/,BR:/^(BR[0-9]{2})\d{23}[A-Z]{1}[A-Z0-9]{1}$/,BY:/^(BY[0-9]{2})[A-Z0-9]{4}\d{20}$/,CH:/^(CH[0-9]{2})\d{5}[A-Z0-9]{12}$/,CR:/^(CR[0-9]{2})\d{18}$/,CY:/^(CY[0-9]{2})\d{8}[A-Z0-9]{16}$/,CZ:/^(CZ[0-9]{2})\d{20}$/,DE:/^(DE[0-9]{2})\d{18}$/,DK:/^(DK[0-9]{2})\d{14}$/,DO:/^(DO[0-9]{2})[A-Z]{4}\d{20}$/,EE:/^(EE[0-9]{2})\d{16}$/,EG:/^(EG[0-9]{2})\d{25}$/,ES:/^(ES[0-9]{2})\d{20}$/,FI:/^(FI[0-9]{2})\d{14}$/,FO:/^(FO[0-9]{2})\d{14}$/,FR:/^(FR[0-9]{2})\d{10}[A-Z0-9]{11}\d{2}$/,GB:/^(GB[0-9]{2})[A-Z]{4}\d{14}$/,GE:/^(GE[0-9]{2})[A-Z0-9]{2}\d{16}$/,GI:/^(GI[0-9]{2})[A-Z]{4}[A-Z0-9]{15}$/,GL:/^(GL[0-9]{2})\d{14}$/,GR:/^(GR[0-9]{2})\d{7}[A-Z0-9]{16}$/,GT:/^(GT[0-9]{2})[A-Z0-9]{4}[A-Z0-9]{20}$/,HR:/^(HR[0-9]{2})\d{17}$/,HU:/^(HU[0-9]{2})\d{24}$/,IE:/^(IE[0-9]{2})[A-Z0-9]{4}\d{14}$/,IL:/^(IL[0-9]{2})\d{19}$/,IQ:/^(IQ[0-9]{2})[A-Z]{4}\d{15}$/,IR:/^(IR[0-9]{2})0\d{2}0\d{18}$/,IS:/^(IS[0-9]{2})\d{22}$/,IT:/^(IT[0-9]{2})[A-Z]{1}\d{10}[A-Z0-9]{12}$/,JO:/^(JO[0-9]{2})[A-Z]{4}\d{22}$/,KW:/^(KW[0-9]{2})[A-Z]{4}[A-Z0-9]{22}$/,KZ:/^(KZ[0-9]{2})\d{3}[A-Z0-9]{13}$/,LB:/^(LB[0-9]{2})\d{4}[A-Z0-9]{20}$/,LC:/^(LC[0-9]{2})[A-Z]{4}[A-Z0-9]{24}$/,LI:/^(LI[0-9]{2})\d{5}[A-Z0-9]{12}$/,LT:/^(LT[0-9]{2})\d{16}$/,LU:/^(LU[0-9]{2})\d{3}[A-Z0-9]{13}$/,LV:/^(LV[0-9]{2})[A-Z]{4}[A-Z0-9]{13}$/,MC:/^(MC[0-9]{2})\d{10}[A-Z0-9]{11}\d{2}$/,MD:/^(MD[0-9]{2})[A-Z0-9]{20}$/,ME:/^(ME[0-9]{2})\d{18}$/,MK:/^(MK[0-9]{2})\d{3}[A-Z0-9]{10}\d{2}$/,MR:/^(MR[0-9]{2})\d{23}$/,MT:/^(MT[0-9]{2})[A-Z]{4}\d{5}[A-Z0-9]{18}$/,MU:/^(MU[0-9]{2})[A-Z]{4}\d{19}[A-Z]{3}$/,NL:/^(NL[0-9]{2})[A-Z]{4}\d{10}$/,NO:/^(NO[0-9]{2})\d{11}$/,PK:/^(PK[0-9]{2})[A-Z0-9]{4}\d{16}$/,PL:/^(PL[0-9]{2})\d{24}$/,PS:/^(PS[0-9]{2})[A-Z0-9]{4}\d{21}$/,PT:/^(PT[0-9]{2})\d{21}$/,QA:/^(QA[0-9]{2})[A-Z]{4}[A-Z0-9]{21}$/,RO:/^(RO[0-9]{2})[A-Z]{4}[A-Z0-9]{16}$/,RS:/^(RS[0-9]{2})\d{18}$/,SA:/^(SA[0-9]{2})\d{2}[A-Z0-9]{18}$/,SC:/^(SC[0-9]{2})[A-Z]{4}\d{20}[A-Z]{3}$/,SE:/^(SE[0-9]{2})\d{20}$/,SI:/^(SI[0-9]{2})\d{15}$/,SK:/^(SK[0-9]{2})\d{20}$/,SM:/^(SM[0-9]{2})[A-Z]{1}\d{10}[A-Z0-9]{12}$/,SV:/^(SV[0-9]{2})[A-Z0-9]{4}\d{20}$/,TL:/^(TL[0-9]{2})\d{19}$/,TN:/^(TN[0-9]{2})\d{20}$/,TR:/^(TR[0-9]{2})\d{5}[A-Z0-9]{17}$/,UA:/^(UA[0-9]{2})\d{6}[A-Z0-9]{19}$/,VA:/^(VA[0-9]{2})\d{18}$/,VG:/^(VG[0-9]{2})[A-Z0-9]{4}\d{16}$/,XK:/^(XK[0-9]{2})\d{16}$/};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],51:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){(0,o.default)(e);var r=n;if((t=t||{}).allow_hyphens&&(r=s),!r.test(e))return!1;e=e.replace(/-/g,"");for(var i=0,a=2,u=0;u<14;u++){var l=e.substring(14-u-1,14-u),c=parseInt(l,10)*a;i+=c>=10?c%10+1:c,1===a?a+=1:a-=1}return(10-i%10)%10===parseInt(e.substring(14,15),10)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^[0-9]{15}$/,s=/^\d{2}-\d{6}-\d{6}-\d{1}$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],52:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if((0,o.default)(t),!(r=String(r)))return e(t,4)||e(t,6);if("4"===r){if(!n.test(t))return!1;var i=t.split(".").sort((function(e,t){return e-t}));return i[3]<=255}if("6"===r){var a=[t];if(t.includes("%")){if(2!==(a=t.split("%")).length)return!1;if(!a[0].includes(":"))return!1;if(""===a[1])return!1}var u=a[0].split(":"),l=!1,c=e(u[u.length-1],4),f=c?7:8;if(u.length>f)return!1;if("::"===t)return!0;"::"===t.substr(0,2)?(u.shift(),u.shift(),l=!0):"::"===t.substr(t.length-2)&&(u.pop(),u.pop(),l=!0);for(var d=0;d<u.length;++d)if(""===u[d]&&d>0&&d<u.length-1){if(l)return!1;l=!0}else if(c&&d===u.length-1);else if(!s.test(u[d]))return!1;return l?u.length>=1:u.length===f}return!1};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/,s=/^[0-9A-F]{1,4}$/i;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],53:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){(0,i.default)(e);var t=e.split("/");return 2===t.length&&!!s.test(t[1])&&!(t[1].length>1&&t[1].startsWith("0"))&&(0,o.default)(t[0],4)&&t[1]<=32&&t[1]>=0};var i=n(e("./util/assertString")),o=n(e("./isIP"));function n(e){return e&&e.__esModule?e:{default:e}}var s=/^\d{1,2}$/;t.exports=r.default,t.exports.default=r.default},{"./isIP":52,"./util/assertString":107}],54:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if((0,o.default)(t),!(r=String(r)))return e(t,10)||e(t,13);var i,u=t.replace(/[\s-]+/g,""),l=0;if("10"===r){if(!n.test(u))return!1;for(i=0;i<9;i++)l+=(i+1)*u.charAt(i);if("X"===u.charAt(9)?l+=100:l+=10*u.charAt(9),l%11==0)return!!u}else if("13"===r){if(!s.test(u))return!1;for(i=0;i<12;i++)l+=a[i%2]*u.charAt(i);if(u.charAt(12)-(10-l%10)%10==0)return!!u}return!1};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^(?:[0-9]{9}X|[0-9]{10})$/,s=/^(?:[0-9]{13})$/,a=[1,3];t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],55:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){if((0,o.default)(e),!n.test(e))return!1;for(var t,r,i=e.replace(/[A-Z]/g,(function(e){return parseInt(e,36)})),s=0,a=!0,u=i.length-2;u>=0;u--)t=i.substring(u,u+1),r=parseInt(t,10),s+=a&&(r*=2)>=10?r+1:r,a=!a;return parseInt(e.substr(e.length-1),10)===(1e4-s)%10};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^[A-Z]{2}[0-9A-Z]{9}[0-9]$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],56:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e),(0,o.default)(s,e.toUpperCase())};var i=n(e("./util/assertString")),o=n(e("./util/includes"));function n(e){return e&&e.__esModule?e:{default:e}}var s=["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"];t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107,"./util/includes":108}],57:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e),(0,o.default)(s,e.toUpperCase())};var i=n(e("./util/assertString")),o=n(e("./util/includes"));function n(e){return e&&e.__esModule?e:{default:e}}var s=["AFG","ALA","ALB","DZA","ASM","AND","AGO","AIA","ATA","ATG","ARG","ARM","ABW","AUS","AUT","AZE","BHS","BHR","BGD","BRB","BLR","BEL","BLZ","BEN","BMU","BTN","BOL","BES","BIH","BWA","BVT","BRA","IOT","BRN","BGR","BFA","BDI","KHM","CMR","CAN","CPV","CYM","CAF","TCD","CHL","CHN","CXR","CCK","COL","COM","COG","COD","COK","CRI","CIV","HRV","CUB","CUW","CYP","CZE","DNK","DJI","DMA","DOM","ECU","EGY","SLV","GNQ","ERI","EST","ETH","FLK","FRO","FJI","FIN","FRA","GUF","PYF","ATF","GAB","GMB","GEO","DEU","GHA","GIB","GRC","GRL","GRD","GLP","GUM","GTM","GGY","GIN","GNB","GUY","HTI","HMD","VAT","HND","HKG","HUN","ISL","IND","IDN","IRN","IRQ","IRL","IMN","ISR","ITA","JAM","JPN","JEY","JOR","KAZ","KEN","KIR","PRK","KOR","KWT","KGZ","LAO","LVA","LBN","LSO","LBR","LBY","LIE","LTU","LUX","MAC","MKD","MDG","MWI","MYS","MDV","MLI","MLT","MHL","MTQ","MRT","MUS","MYT","MEX","FSM","MDA","MCO","MNG","MNE","MSR","MAR","MOZ","MMR","NAM","NRU","NPL","NLD","NCL","NZL","NIC","NER","NGA","NIU","NFK","MNP","NOR","OMN","PAK","PLW","PSE","PAN","PNG","PRY","PER","PHL","PCN","POL","PRT","PRI","QAT","REU","ROU","RUS","RWA","BLM","SHN","KNA","LCA","MAF","SPM","VCT","WSM","SMR","STP","SAU","SEN","SRB","SYC","SLE","SGP","SXM","SVK","SVN","SLB","SOM","ZAF","SGS","SSD","ESP","LKA","SDN","SUR","SJM","SWZ","SWE","CHE","SYR","TWN","TJK","TZA","THA","TLS","TGO","TKL","TON","TTO","TUN","TUR","TKM","TCA","TUV","UGA","UKR","ARE","GBR","USA","UMI","URY","UZB","VUT","VEN","VNM","VGB","VIR","WLF","ESH","YEM","ZMB","ZWE"];t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107,"./util/includes":108}],58:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,o.default)(e);var r=t.strictSeparator?s.test(e):n.test(e);return r&&t.strict?a(e):r};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T\s]((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([\.,]\d+(?!:))?)?(\17[0-5]\d([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/,s=/^([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T]((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([\.,]\d+(?!:))?)?(\17[0-5]\d([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/,a=function(e){var t=e.match(/^(\d{4})-?(\d{3})([ T]{1}\.*|$)/);if(t){var r=Number(t[1]),i=Number(t[2]);return r%4==0&&r%100!=0||r%400==0?i<=366:i<=365}var o=e.match(/(\d{4})-?(\d{0,2})-?(\d*)/).map(Number),n=o[1],s=o[2],a=o[3],u=s?"0".concat(s).slice(-2):s,l=a?"0".concat(a).slice(-2):a,c=new Date("".concat(n,"-").concat(u||"01","-").concat(l||"01"));return!s||!a||c.getUTCFullYear()===n&&c.getUTCMonth()+1===s&&c.getUTCDate()===a};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],59:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^[A-Z]{2}[0-9A-Z]{3}\d{2}\d{5}$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],60:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,o.default)(e);var r=n;if(r=t.require_hyphen?r.replace("?",""):r,!(r=t.case_sensitive?new RegExp(r):new RegExp(r,"i")).test(e))return!1;for(var i=e.replace("-","").toUpperCase(),s=0,a=0;a<i.length;a++){var u=i[a];s+=("X"===u?10:+u)*(8-a)}return s%11==0};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n="^\\d{4}-?\\d{3}[\\dX]$";t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],61:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){if((0,o.default)(e),t in n)return n[t](e);if("any"===t){for(var r in n)if(n.hasOwnProperty(r)&&(0,n[r])(e))return!0;return!1}throw new Error("Invalid locale '".concat(t,"'"))};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n={ES:function(e){(0,o.default)(e);var t={X:0,Y:1,Z:2},r=e.trim().toUpperCase();if(!/^[0-9X-Z][0-9]{7}[TRWAGMYFPDXBNJZSQVHLCKE]$/.test(r))return!1;var i=r.slice(0,-1).replace(/[X,Y,Z]/g,(function(e){return t[e]}));return r.endsWith(["T","R","W","A","G","M","Y","F","P","D","X","B","N","J","Z","S","Q","V","H","L","C","K","E"][i%23])},IN:function(e){var t=[[0,1,2,3,4,5,6,7,8,9],[1,2,3,4,0,6,7,8,9,5],[2,3,4,0,1,7,8,9,5,6],[3,4,0,1,2,8,9,5,6,7],[4,0,1,2,3,9,5,6,7,8],[5,9,8,7,6,0,4,3,2,1],[6,5,9,8,7,1,0,4,3,2],[7,6,5,9,8,2,1,0,4,3],[8,7,6,5,9,3,2,1,0,4],[9,8,7,6,5,4,3,2,1,0]],r=[[0,1,2,3,4,5,6,7,8,9],[1,5,7,6,2,8,3,0,9,4],[5,8,0,3,7,9,6,1,4,2],[8,9,1,6,0,4,3,5,2,7],[9,4,5,3,1,2,6,8,7,0],[4,2,8,6,5,7,3,9,0,1],[2,7,9,3,8,0,6,4,1,5],[7,0,4,6,9,1,3,2,5,8]],i=e.trim();if(!/^[1-9]\d{3}\s?\d{4}\s?\d{4}$/.test(i))return!1;var o=0;return i.replace(/\s/g,"").split("").map(Number).reverse().forEach((function(e,i){o=t[o][r[i%8][e]]})),0===o},IT:function(e){return 9===e.length&&"CA00000AA"!==e&&e.search(/C[A-Z][0-9]{5}[A-Z]{2}/i)>-1},NO:function(e){var t=e.trim();if(isNaN(Number(t)))return!1;if(11!==t.length)return!1;if("00000000000"===t)return!1;var r=t.split("").map(Number),i=(11-(3*r[0]+7*r[1]+6*r[2]+1*r[3]+8*r[4]+9*r[5]+4*r[6]+5*r[7]+2*r[8])%11)%11,o=(11-(5*r[0]+4*r[1]+3*r[2]+2*r[3]+7*r[4]+6*r[5]+5*r[6]+4*r[7]+3*r[8]+2*i)%11)%11;return i===r[9]&&o===r[10]},"he-IL":function(e){var t=e.trim();if(!/^\d{9}$/.test(t))return!1;for(var r,i=t,o=0,n=0;n<i.length;n++)o+=(r=Number(i[n])*(n%2+1))>9?r-9:r;return o%10==0},"ar-TN":function(e){var t=e.trim();return!!/^\d{8}$/.test(t)},"zh-CN":function(e){var t,r=["11","12","13","14","15","21","22","23","31","32","33","34","35","36","37","41","42","43","44","45","46","50","51","52","53","54","61","62","63","64","65","71","81","82","91"],i=["7","9","10","5","8","4","2","1","6","3","7","9","10","5","8","4","2"],o=["1","0","X","9","8","7","6","5","4","3","2"],n=function(e){return r.includes(e)},s=function(e){var t=parseInt(e.substring(0,4),10),r=parseInt(e.substring(4,6),10),i=parseInt(e.substring(6),10),o=new Date(t,r-1,i);return!(o>new Date)&&o.getFullYear()===t&&o.getMonth()===r-1&&o.getDate()===i},a=function(e){return function(e){for(var t=e.substring(0,17),r=0,n=0;n<17;n++)r+=parseInt(t.charAt(n),10)*parseInt(i[n],10);return o[r%11]}(e)===e.charAt(17).toUpperCase()};return!!/^\d{15}|(\d{17}(\d|x|X))$/.test(t=e)&&(15===t.length?function(e){var t=/^[1-9]\d{7}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\d{3}$/.test(e);if(!t)return!1;var r=e.substring(0,2);if(!(t=n(r)))return!1;var i="19".concat(e.substring(6,12));return!!(t=s(i))}(t):function(e){var t=/^[1-9]\d{5}[1-9]\d{3}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\d{3}(\d|x|X)$/.test(e);if(!t)return!1;var r=e.substring(0,2);if(!(t=n(r)))return!1;var i=e.substring(6,14);return!!(t=s(i))&&a(e)}(t))},"zh-TW":function(e){var t={A:10,B:11,C:12,D:13,E:14,F:15,G:16,H:17,I:34,J:18,K:19,L:20,M:21,N:22,O:35,P:23,Q:24,R:25,S:26,T:27,U:28,V:29,W:32,X:30,Y:31,Z:33},r=e.trim().toUpperCase();return!!/^[A-Z][0-9]{9}$/.test(r)&&Array.from(r).reduce((function(e,r,i){if(0===i){var o=t[r];return o%10*9+Math.floor(o/10)}return 9===i?(10-e%10-Number(r))%10==0:e+Number(r)*(9-i)}),0)}};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],62:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){var r;if((0,i.default)(e),"[object Array]"===Object.prototype.toString.call(t)){var n=[];for(r in t)({}).hasOwnProperty.call(t,r)&&(n[r]=(0,o.default)(t[r]));return n.indexOf(e)>=0}return"object"===s(t)?t.hasOwnProperty(e):!(!t||"function"!=typeof t.indexOf)&&t.indexOf(e)>=0};var i=n(e("./util/assertString")),o=n(e("./util/toString"));function n(e){return e&&e.__esModule?e:{default:e}}function s(e){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107,"./util/toString":111}],63:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){(0,o.default)(e);var r=(t=t||{}).hasOwnProperty("allow_leading_zeroes")&&!t.allow_leading_zeroes?n:s,i=!t.hasOwnProperty("min")||e>=t.min,a=!t.hasOwnProperty("max")||e<=t.max,u=!t.hasOwnProperty("lt")||e<t.lt,l=!t.hasOwnProperty("gt")||e>t.gt;return r.test(e)&&i&&a&&u&&l};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^(?:[-+]?(?:0|[1-9][0-9]*))$/,s=/^[-+]?[0-9]+$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],64:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){(0,i.default)(e);try{t=(0,o.default)(t,a);var r=[];t.allow_primitives&&(r=[null,!1,!0]);var n=JSON.parse(e);return r.includes(n)||!!n&&"object"===s(n)}catch(e){}return!1};var i=n(e("./util/assertString")),o=n(e("./util/merge"));function n(e){return e&&e.__esModule?e:{default:e}}function s(e){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var a={allow_primitives:!1};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107,"./util/merge":109}],65:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){(0,i.default)(e);var t=e.split("."),r=t.length;return!(r>3||r<2)&&t.reduce((function(e,t){return e&&(0,o.default)(t,{urlSafe:!0})}),!0)};var i=n(e("./util/assertString")),o=n(e("./isBase64"));function n(e){return e&&e.__esModule?e:{default:e}}t.exports=r.default,t.exports.default=r.default},{"./isBase64":27,"./util/assertString":107}],66:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){if((0,i.default)(e),t=(0,o.default)(t,c),!e.includes(","))return!1;var r=e.split(",");return!(r[0].startsWith("(")&&!r[1].endsWith(")")||r[1].endsWith(")")&&!r[0].startsWith("("))&&(t.checkDMS?u.test(r[0])&&l.test(r[1]):s.test(r[0])&&a.test(r[1]))};var i=n(e("./util/assertString")),o=n(e("./util/merge"));function n(e){return e&&e.__esModule?e:{default:e}}var s=/^\(?[+-]?(90(\.0+)?|[1-8]?\d(\.\d+)?)$/,a=/^\s?[+-]?(180(\.0+)?|1[0-7]\d(\.\d+)?|\d{1,2}(\.\d+)?)\)?$/,u=/^(([1-8]?\d)\D+([1-5]?\d|60)\D+([1-5]?\d|60)(\.\d+)?|90\D+0\D+0)\D+[NSns]?$/i,l=/^\s*([1-7]?\d{1,2}\D+([1-5]?\d|60)\D+([1-5]?\d|60)(\.\d+)?|180\D+0\D+0)\D+[EWew]?$/i,c={checkDMS:!1};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107,"./util/merge":109}],67:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){var r,i;(0,o.default)(e),"object"===n(t)?(r=t.min||0,i=t.max):(r=arguments[1]||0,i=arguments[2]);var s=e.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g)||[],a=e.length-s.length;return a>=r&&(void 0===i||a<=i)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],68:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),"en_US_POSIX"===e||"ca_ES_VALENCIA"===e||n.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^[A-z]{2,4}([_-]([A-z]{4}|[\d]{3}))?([_-]([A-z]{2}|[\d]{3}))?$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],69:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),e===e.toLowerCase()};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],70:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){return(0,o.default)(e),t&&t.no_colons?s.test(e):n.test(e)||a.test(e)||u.test(e)||l.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$/,s=/^([0-9a-fA-F]){12}$/,a=/^([0-9a-fA-F][0-9a-fA-F]-){5}([0-9a-fA-F][0-9a-fA-F])$/,u=/^([0-9a-fA-F][0-9a-fA-F]\s){5}([0-9a-fA-F][0-9a-fA-F])$/,l=/^([0-9a-fA-F]{4}).([0-9a-fA-F]{4}).([0-9a-fA-F]{4})$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],71:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^[a-f0-9]{32}$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],72:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e.trim())};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^magnet:\?xt=urn:[a-z0-9]+:[a-z0-9]{32,40}&dn=.+&tr=.+$/i;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],73:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e)||s.test(e)||a.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^(application|audio|font|image|message|model|multipart|text|video)\/[a-zA-Z0-9\.\-\+]{1,100}$/i,s=/^text\/[a-zA-Z0-9\.\-\+]{1,100};\s?charset=("[a-zA-Z0-9\.\-\+\s]{0,70}"|[a-zA-Z0-9\.\-\+]{0,70})(\s?\([a-zA-Z0-9\.\-\+\s]{1,20}\))?$/i,a=/^multipart\/[a-zA-Z0-9\.\-\+]{1,100}(;\s?(boundary|charset)=("[a-zA-Z0-9\.\-\+\s]{0,70}"|[a-zA-Z0-9\.\-\+]{0,70})(\s?\([a-zA-Z0-9\.\-\+\s]{1,20}\))?){0,2}$/i;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],74:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t,r){if((0,o.default)(e),r&&r.strictMode&&!e.startsWith("+"))return!1;if(Array.isArray(t))return t.some((function(t){return!(!n.hasOwnProperty(t)||!n[t].test(e))}));if(t in n)return n[t].test(e);if(!t||"any"===t){for(var i in n)if(n.hasOwnProperty(i)&&n[i].test(e))return!0;return!1}throw new Error("Invalid locale '".concat(t,"'"))},r.locales=void 0;var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n={"am-AM":/^(\+?374|0)((10|[9|7][0-9])\d{6}$|[2-4]\d{7}$)/,"ar-AE":/^((\+?971)|0)?5[024568]\d{7}$/,"ar-BH":/^(\+?973)?(3|6)\d{7}$/,"ar-DZ":/^(\+?213|0)(5|6|7)\d{8}$/,"ar-LB":/^(\+?961)?((3|81)\d{6}|7\d{7})$/,"ar-EG":/^((\+?20)|0)?1[0125]\d{8}$/,"ar-IQ":/^(\+?964|0)?7[0-9]\d{8}$/,"ar-JO":/^(\+?962|0)?7[789]\d{7}$/,"ar-KW":/^(\+?965)[569]\d{7}$/,"ar-LY":/^((\+?218)|0)?(9[1-6]\d{7}|[1-8]\d{7,9})$/,"ar-MA":/^(?:(?:\+|00)212|0)[5-7]\d{8}$/,"ar-SA":/^(!?(\+?966)|0)?5\d{8}$/,"ar-SY":/^(!?(\+?963)|0)?9\d{8}$/,"ar-TN":/^(\+?216)?[2459]\d{7}$/,"az-AZ":/^(\+994|0)(5[015]|7[07]|99)\d{7}$/,"bs-BA":/^((((\+|00)3876)|06))((([0-3]|[5-6])\d{6})|(4\d{7}))$/,"be-BY":/^(\+?375)?(24|25|29|33|44)\d{7}$/,"bg-BG":/^(\+?359|0)?8[789]\d{7}$/,"bn-BD":/^(\+?880|0)1[13456789][0-9]{8}$/,"ca-AD":/^(\+376)?[346]\d{5}$/,"cs-CZ":/^(\+?420)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,"da-DK":/^(\+?45)?\s?\d{2}\s?\d{2}\s?\d{2}\s?\d{2}$/,"de-DE":/^(\+49)?0?[1|3]([0|5][0-45-9]\d|6([23]|0\d?)|7([0-57-9]|6\d))\d{7}$/,"de-AT":/^(\+43|0)\d{1,4}\d{3,12}$/,"de-CH":/^(\+41|0)(7[5-9])\d{1,7}$/,"de-LU":/^(\+352)?((6\d1)\d{6})$/,"el-GR":/^(\+?30|0)?(69\d{8})$/,"en-AU":/^(\+?61|0)4\d{8}$/,"en-GB":/^(\+?44|0)7\d{9}$/,"en-GG":/^(\+?44|0)1481\d{6}$/,"en-GH":/^(\+233|0)(20|50|24|54|27|57|26|56|23|28)\d{7}$/,"en-HK":/^(\+?852[-\s]?)?[456789]\d{3}[-\s]?\d{4}$/,"en-MO":/^(\+?853[-\s]?)?[6]\d{3}[-\s]?\d{4}$/,"en-IE":/^(\+?353|0)8[356789]\d{7}$/,"en-IN":/^(\+?91|0)?[6789]\d{9}$/,"en-KE":/^(\+?254|0)(7|1)\d{8}$/,"en-MT":/^(\+?356|0)?(99|79|77|21|27|22|25)[0-9]{6}$/,"en-MU":/^(\+?230|0)?\d{8}$/,"en-NG":/^(\+?234|0)?[789]\d{9}$/,"en-NZ":/^(\+?64|0)[28]\d{7,9}$/,"en-PK":/^((\+92)|(0092))-{0,1}\d{3}-{0,1}\d{7}$|^\d{11}$|^\d{4}-\d{7}$/,"en-PH":/^(09|\+639)\d{9}$/,"en-RW":/^(\+?250|0)?[7]\d{8}$/,"en-SG":/^(\+65)?[689]\d{7}$/,"en-SL":/^(?:0|94|\+94)?(7(0|1|2|5|6|7|8)( |-)?\d)\d{6}$/,"en-TZ":/^(\+?255|0)?[67]\d{8}$/,"en-UG":/^(\+?256|0)?[7]\d{8}$/,"en-US":/^((\+1|1)?( |-)?)?(\([2-9][0-9]{2}\)|[2-9][0-9]{2})( |-)?([2-9][0-9]{2}( |-)?[0-9]{4})$/,"en-ZA":/^(\+?27|0)\d{9}$/,"en-ZM":/^(\+?26)?09[567]\d{7}$/,"en-ZW":/^(\+263)[0-9]{9}$/,"es-AR":/^\+?549(11|[2368]\d)\d{8}$/,"es-BO":/^(\+?591)?(6|7)\d{7}$/,"es-CO":/^(\+?57)?([1-8]{1}|3[0-9]{2})?[2-9]{1}\d{6}$/,"es-CL":/^(\+?56|0)[2-9]\d{1}\d{7}$/,"es-CR":/^(\+506)?[2-8]\d{7}$/,"es-DO":/^(\+?1)?8[024]9\d{7}$/,"es-HN":/^(\+?504)?[9|8]\d{7}$/,"es-EC":/^(\+?593|0)([2-7]|9[2-9])\d{7}$/,"es-ES":/^(\+?34)?[6|7]\d{8}$/,"es-PE":/^(\+?51)?9\d{8}$/,"es-MX":/^(\+?52)?(1|01)?\d{10,11}$/,"es-PA":/^(\+?507)\d{7,8}$/,"es-PY":/^(\+?595|0)9[9876]\d{7}$/,"es-UY":/^(\+598|0)9[1-9][\d]{6}$/,"et-EE":/^(\+?372)?\s?(5|8[1-4])\s?([0-9]\s?){6,7}$/,"fa-IR":/^(\+?98[\-\s]?|0)9[0-39]\d[\-\s]?\d{3}[\-\s]?\d{4}$/,"fi-FI":/^(\+?358|0)\s?(4(0|1|2|4|5|6)?|50)\s?(\d\s?){4,8}\d$/,"fj-FJ":/^(\+?679)?\s?\d{3}\s?\d{4}$/,"fo-FO":/^(\+?298)?\s?\d{2}\s?\d{2}\s?\d{2}$/,"fr-FR":/^(\+?33|0)[67]\d{8}$/,"fr-GF":/^(\+?594|0|00594)[67]\d{8}$/,"fr-GP":/^(\+?590|0|00590)[67]\d{8}$/,"fr-MQ":/^(\+?596|0|00596)[67]\d{8}$/,"fr-RE":/^(\+?262|0|00262)[67]\d{8}$/,"he-IL":/^(\+972|0)([23489]|5[012345689]|77)[1-9]\d{6}$/,"hu-HU":/^(\+?36)(20|30|70)\d{7}$/,"id-ID":/^(\+?62|0)8(1[123456789]|2[1238]|3[1238]|5[12356789]|7[78]|9[56789]|8[123456789])([\s?|\d]{5,11})$/,"it-IT":/^(\+?39)?\s?3\d{2} ?\d{6,7}$/,"it-SM":/^((\+378)|(0549)|(\+390549)|(\+3780549))?6\d{5,9}$/,"ja-JP":/^(\+81[ \-]?(\(0\))?|0)[6789]0[ \-]?\d{4}[ \-]?\d{4}$/,"ka-GE":/^(\+?995)?(5|79)\d{7}$/,"kk-KZ":/^(\+?7|8)?7\d{9}$/,"kl-GL":/^(\+?299)?\s?\d{2}\s?\d{2}\s?\d{2}$/,"ko-KR":/^((\+?82)[ \-]?)?0?1([0|1|6|7|8|9]{1})[ \-]?\d{3,4}[ \-]?\d{4}$/,"lt-LT":/^(\+370|8)\d{8}$/,"ms-MY":/^(\+?6?01){1}(([0145]{1}(\-|\s)?\d{7,8})|([236789]{1}(\s|\-)?\d{7}))$/,"nb-NO":/^(\+?47)?[49]\d{7}$/,"ne-NP":/^(\+?977)?9[78]\d{8}$/,"nl-BE":/^(\+?32|0)4?\d{8}$/,"nl-NL":/^(((\+|00)?31\(0\))|((\+|00)?31)|0)6{1}\d{8}$/,"nn-NO":/^(\+?47)?[49]\d{7}$/,"pl-PL":/^(\+?48)? ?[5-8]\d ?\d{3} ?\d{2} ?\d{2}$/,"pt-BR":/^((\+?55\ ?[1-9]{2}\ ?)|(\+?55\ ?\([1-9]{2}\)\ ?)|(0[1-9]{2}\ ?)|(\([1-9]{2}\)\ ?)|([1-9]{2}\ ?))((\d{4}\-?\d{4})|(9[2-9]{1}\d{3}\-?\d{4}))$/,"pt-PT":/^(\+?351)?9[1236]\d{7}$/,"ro-RO":/^(\+?4?0)\s?7\d{2}(\/|\s|\.|\-)?\d{3}(\s|\.|\-)?\d{3}$/,"ru-RU":/^(\+?7|8)?9\d{9}$/,"sl-SI":/^(\+386\s?|0)(\d{1}\s?\d{3}\s?\d{2}\s?\d{2}|\d{2}\s?\d{3}\s?\d{3})$/,"sk-SK":/^(\+?421)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,"sq-AL":/^(\+355|0)6[789]\d{6}$/,"sr-RS":/^(\+3816|06)[- \d]{5,9}$/,"sv-SE":/^(\+?46|0)[\s\-]?7[\s\-]?[02369]([\s\-]?\d){7}$/,"th-TH":/^(\+66|66|0)\d{9}$/,"tr-TR":/^(\+?90|0)?5\d{9}$/,"uk-UA":/^(\+?38|8)?0\d{9}$/,"uz-UZ":/^(\+?998)?(6[125-79]|7[1-69]|88|9\d)\d{7}$/,"vi-VN":/^(\+?84|0)((3([2-9]))|(5([2689]))|(7([0|6-9]))|(8([1-6|89]))|(9([0-9])))([0-9]{7})$/,"zh-CN":/^((\+|00)86)?1([3568][0-9]|4[579]|6[67]|7[01235678]|9[012356789])[0-9]{8}$/,"zh-TW":/^(\+?886\-?|0)?9\d{8}$/};n["en-CA"]=n["en-US"],n["fr-CA"]=n["en-CA"],n["fr-BE"]=n["nl-BE"],n["zh-HK"]=n["en-HK"],n["zh-MO"]=n["en-MO"],n["ga-IE"]=n["en-IE"];var s=Object.keys(n);r.locales=s},{"./util/assertString":107}],75:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e),(0,o.default)(e)&&24===e.length};var i=n(e("./util/assertString")),o=n(e("./isHexadecimal"));function n(e){return e&&e.__esModule?e:{default:e}}t.exports=r.default,t.exports.default=r.default},{"./isHexadecimal":49,"./util/assertString":107}],76:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/[^\x00-\x7F]/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],77:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){return(0,o.default)(e),t&&t.no_symbols?s.test(e):new RegExp("^[+-]?([0-9]*[".concat((t||{}).locale?n.decimal[t.locale]:".","])?[0-9]+$")).test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=e("./alpha"),s=/^[0-9]+$/;t.exports=r.default,t.exports.default=r.default},{"./alpha":15,"./util/assertString":107}],78:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^(0o)?[0-7]+$/i;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],79:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){(0,o.default)(e);var r=e.replace(/\s/g,"").toUpperCase();return t.toUpperCase()in n&&n[t].test(r)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n={AM:/^[A-Z]{2}\d{7}$/,AR:/^[A-Z]{3}\d{6}$/,AT:/^[A-Z]\d{7}$/,AU:/^[A-Z]\d{7}$/,BE:/^[A-Z]{2}\d{6}$/,BG:/^\d{9}$/,BY:/^[A-Z]{2}\d{7}$/,CA:/^[A-Z]{2}\d{6}$/,CH:/^[A-Z]\d{7}$/,CN:/^[GE]\d{8}$/,CY:/^[A-Z](\d{6}|\d{8})$/,CZ:/^\d{8}$/,DE:/^[CFGHJKLMNPRTVWXYZ0-9]{9}$/,DK:/^\d{9}$/,DZ:/^\d{9}$/,EE:/^([A-Z]\d{7}|[A-Z]{2}\d{7})$/,ES:/^[A-Z0-9]{2}([A-Z0-9]?)\d{6}$/,FI:/^[A-Z]{2}\d{7}$/,FR:/^\d{2}[A-Z]{2}\d{5}$/,GB:/^\d{9}$/,GR:/^[A-Z]{2}\d{7}$/,HR:/^\d{9}$/,HU:/^[A-Z]{2}(\d{6}|\d{7})$/,IE:/^[A-Z0-9]{2}\d{7}$/,IN:/^[A-Z]{1}-?\d{7}$/,IS:/^(A)\d{7}$/,IT:/^[A-Z0-9]{2}\d{7}$/,JP:/^[A-Z]{2}\d{7}$/,KR:/^[MS]\d{8}$/,LT:/^[A-Z0-9]{8}$/,LU:/^[A-Z0-9]{8}$/,LV:/^[A-Z0-9]{2}\d{7}$/,MT:/^\d{7}$/,NL:/^[A-Z]{2}[A-Z0-9]{6}\d$/,PO:/^[A-Z]{2}\d{7}$/,PT:/^[A-Z]\d{6}$/,RO:/^\d{8,9}$/,RU:/^\d{2}\d{2}\d{6}$/,SE:/^\d{8}$/,SL:/^(P)[A-Z]\d{7}$/,SK:/^[0-9A-Z]\d{7}$/,TR:/^[A-Z]\d{8}$/,UA:/^[A-Z]{2}\d{6}$/,US:/^\d{9}$/};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],80:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e,{min:0,max:65535})};var i,o=(i=e("./isInt"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./isInt":63}],81:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){if((0,o.default)(e),t in u)return u[t].test(e);if("any"===t){for(var r in u)if(u.hasOwnProperty(r)&&u[r].test(e))return!0;return!1}throw new Error("Invalid locale '".concat(t,"'"))},r.locales=void 0;var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^\d{4}$/,s=/^\d{5}$/,a=/^\d{6}$/,u={AD:/^AD\d{3}$/,AT:n,AU:n,AZ:/^AZ\d{4}$/,BE:n,BG:n,BR:/^\d{5}-\d{3}$/,BY:/2[1-4]{1}\d{4}$/,CA:/^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJ-NPRSTV-Z][\s\-]?\d[ABCEGHJ-NPRSTV-Z]\d$/i,CH:n,CN:/^(0[1-7]|1[012356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[1-5]|8[1345]|9[09])\d{4}$/,CZ:/^\d{3}\s?\d{2}$/,DE:s,DK:n,DO:s,DZ:s,EE:s,ES:/^(5[0-2]{1}|[0-4]{1}\d{1})\d{3}$/,FI:s,FR:/^\d{2}\s?\d{3}$/,GB:/^(gir\s?0aa|[a-z]{1,2}\d[\da-z]?\s?(\d[a-z]{2})?)$/i,GR:/^\d{3}\s?\d{2}$/,HR:/^([1-5]\d{4}$)/,HT:/^HT\d{4}$/,HU:n,ID:s,IE:/^(?!.*(?:o))[A-z]\d[\dw]\s\w{4}$/i,IL:/^(\d{5}|\d{7})$/,IN:/^((?!10|29|35|54|55|65|66|86|87|88|89)[1-9][0-9]{5})$/,IR:/\b(?!(\d)\1{3})[13-9]{4}[1346-9][013-9]{5}\b/,IS:/^\d{3}$/,IT:s,JP:/^\d{3}\-\d{4}$/,KE:s,LI:/^(948[5-9]|949[0-7])$/,LT:/^LT\-\d{5}$/,LU:n,LV:/^LV\-\d{4}$/,MX:s,MT:/^[A-Za-z]{3}\s{0,1}\d{4}$/,MY:s,NL:/^\d{4}\s?[a-z]{2}$/i,NO:n,NP:/^(10|21|22|32|33|34|44|45|56|57)\d{3}$|^(977)$/i,NZ:n,PL:/^\d{2}\-\d{3}$/,PR:/^00[679]\d{2}([ -]\d{4})?$/,PT:/^\d{4}\-\d{3}?$/,RO:a,RU:a,SA:s,SE:/^[1-9]\d{2}\s?\d{2}$/,SG:a,SI:n,SK:/^\d{3}\s?\d{2}$/,TH:s,TN:n,TW:/^\d{3}(\d{2})?$/,UA:s,US:/^\d{5}(-\d{4})?$/,ZA:n,ZM:s},l=Object.keys(u);r.locales=l},{"./util/assertString":107}],82:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),d.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/([01][0-9]|2[0-3])/,s=/[0-5][0-9]/,a=new RegExp("[-+]".concat(n.source,":").concat(s.source)),u=new RegExp("([zZ]|".concat(a.source,")")),l=new RegExp("".concat(n.source,":").concat(s.source,":").concat(/([0-5][0-9]|60)/.source).concat(/(\.[0-9]+)?/.source)),c=new RegExp("".concat(/[0-9]{4}/.source,"-").concat(/(0[1-9]|1[0-2])/.source,"-").concat(/([12]\d|0[1-9]|3[01])/.source)),f=new RegExp("".concat(l.source).concat(u.source)),d=new RegExp("".concat(c.source,"[ tT]").concat(f.source));t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],83:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return(0,o.default)(e),t?n.test(e)||s.test(e)||a.test(e)||u.test(e):n.test(e)||s.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^rgb\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){2}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\)$/,s=/^rgba\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){3}(0?\.\d|1(\.0)?|0(\.0)?)\)$/,a=/^rgb\((([0-9]%|[1-9][0-9]%|100%),){2}([0-9]%|[1-9][0-9]%|100%)\)/,u=/^rgba\((([0-9]%|[1-9][0-9]%|100%),){3}(0?\.\d|1(\.0)?|0(\.0)?)\)/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],84:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e),n.test(e)};var i=o(e("./util/assertString"));function o(e){return e&&e.__esModule?e:{default:e}}var n=(0,o(e("./util/multilineRegex")).default)(["^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)","(?:-((?:0|[1-9]\\d*|\\d*[a-z-][0-9a-z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-z-][0-9a-z-]*))*))","?(?:\\+([0-9a-z-]+(?:\\.[0-9a-z-]+)*))?$"],"i");t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107,"./util/multilineRegex":110}],85:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/^[^\s-_](?!.*?[-_]{2,})([a-z0-9-\\]{1,})[^\s]*[^-_\s]$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],86:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;(0,o.default)(e);var r=f(e);return(t=(0,i.default)(t||{},c)).returnScore?d(r,t):r.length>=t.minLength&&r.lowercaseCount>=t.minLowercase&&r.uppercaseCount>=t.minUppercase&&r.numberCount>=t.minNumbers&&r.symbolCount>=t.minSymbols};var i=n(e("./util/merge")),o=n(e("./util/assertString"));function n(e){return e&&e.__esModule?e:{default:e}}var s=/^[A-Z]$/,a=/^[a-z]$/,u=/^[0-9]$/,l=/^[-#!$%^&*()_+|~=`{}\[\]:";'<>?,.\/ ]$/,c={minLength:8,minLowercase:1,minUppercase:1,minNumbers:1,minSymbols:1,returnScore:!1,pointsPerUnique:1,pointsPerRepeat:.5,pointsForContainingLower:10,pointsForContainingUpper:10,pointsForContainingNumber:10,pointsForContainingSymbol:10};function f(e){var t,r,i=(t=e,r={},Array.from(t).forEach((function(e){r[e]?r[e]+=1:r[e]=1})),r),o={length:e.length,uniqueChars:Object.keys(i).length,uppercaseCount:0,lowercaseCount:0,numberCount:0,symbolCount:0};return Object.keys(i).forEach((function(e){s.test(e)?o.uppercaseCount+=i[e]:a.test(e)?o.lowercaseCount+=i[e]:u.test(e)?o.numberCount+=i[e]:l.test(e)&&(o.symbolCount+=i[e])})),o}function d(e,t){var r=0;return r+=e.uniqueChars*t.pointsPerUnique,r+=(e.length-e.uniqueChars)*t.pointsPerRepeat,e.lowercaseCount>0&&(r+=t.pointsForContainingLower),e.uppercaseCount>0&&(r+=t.pointsForContainingUpper),e.numberCount>0&&(r+=t.pointsForContainingNumber),e.symbolCount>0&&(r+=t.pointsForContainingSymbol),r}t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107,"./util/merge":109}],87:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=/[\uD800-\uDBFF][\uDC00-\uDFFF]/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],88:[function(e,t,r){"use strict";function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"en-US";(0,o.default)(e);var r=e.slice(0);if(t in p)return t in g&&(r=r.replace(g[t],"")),!!p[t].test(r)&&(!(t in m)||m[t](r));throw new Error("Invalid locale '".concat(t,"'"))};var o=u(e("./util/assertString")),n=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==i(e)&&"function"!=typeof e)return{default:e};var t=a();if(t&&t.has(e))return t.get(e);var r={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var s=o?Object.getOwnPropertyDescriptor(e,n):null;s&&(s.get||s.set)?Object.defineProperty(r,n,s):r[n]=e[n]}return r.default=e,t&&t.set(e,r),r}(e("./util/algorithms")),s=u(e("./isDate"));function a(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return a=function(){return e},e}function u(e){return e&&e.__esModule?e:{default:e}}function l(e){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?c(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}var f={andover:["10","12"],atlanta:["60","67"],austin:["50","53"],brookhaven:["01","02","03","04","05","06","11","13","14","16","21","22","23","25","34","51","52","54","55","56","57","58","59","65"],cincinnati:["30","32","35","36","37","38","61"],fresno:["15","24"],internet:["20","26","27","45","46","47"],kansas:["40","44"],memphis:["94","95"],ogden:["80","90"],philadelphia:["33","39","41","42","43","46","48","62","63","64","66","68","71","72","73","74","75","76","77","81","82","83","84","85","86","87","88","91","92","93","98","99"],sba:["31"]};function d(e){for(var t=!1,r=!1,i=0;i<3;i++)if(!t&&/[AEIOU]/.test(e[i]))t=!0;else if(!r&&t&&"X"===e[i])r=!0;else if(i>0){if(t&&!r&&!/[AEIOU]/.test(e[i]))return!1;if(r&&!/X/.test(e[i]))return!1}return!0}var p={"bg-BG":/^\d{10}$/,"cs-CZ":/^\d{6}\/{0,1}\d{3,4}$/,"de-AT":/^\d{9}$/,"de-DE":/^[1-9]\d{10}$/,"dk-DK":/^\d{6}-{0,1}\d{4}$/,"el-CY":/^[09]\d{7}[A-Z]$/,"el-GR":/^([0-4]|[7-9])\d{8}$/,"en-GB":/^\d{10}$|^(?!GB|NK|TN|ZZ)(?![DFIQUV])[A-Z](?![DFIQUVO])[A-Z]\d{6}[ABCD ]$/i,"en-IE":/^\d{7}[A-W][A-IW]{0,1}$/i,"en-US":/^\d{2}[- ]{0,1}\d{7}$/,"es-ES":/^(\d{0,8}|[XYZKLM]\d{7})[A-HJ-NP-TV-Z]$/i,"et-EE":/^[1-6]\d{6}(00[1-9]|0[1-9][0-9]|[1-6][0-9]{2}|70[0-9]|710)\d$/,"fi-FI":/^\d{6}[-+A]\d{3}[0-9A-FHJ-NPR-Y]$/i,"fr-BE":/^\d{11}$/,"fr-FR":/^[0-3]\d{12}$|^[0-3]\d\s\d{2}(\s\d{3}){3}$/,"fr-LU":/^\d{13}$/,"hr-HR":/^\d{11}$/,"hu-HU":/^8\d{9}$/,"it-IT":/^[A-Z]{6}[L-NP-V0-9]{2}[A-EHLMPRST][L-NP-V0-9]{2}[A-ILMZ][L-NP-V0-9]{3}[A-Z]$/i,"lv-LV":/^\d{6}-{0,1}\d{5}$/,"mt-MT":/^\d{3,7}[APMGLHBZ]$|^([1-8])\1\d{7}$/i,"nl-NL":/^\d{9}$/,"pl-PL":/^\d{10,11}$/,"pt-PT":/^\d{9}$/,"ro-RO":/^\d{13}$/,"sk-SK":/^\d{6}\/{0,1}\d{3,4}$/,"sl-SI":/^[1-9]\d{7}$/,"sv-SE":/^(\d{6}[-+]{0,1}\d{4}|(18|19|20)\d{6}[-+]{0,1}\d{4})$/};p["lb-LU"]=p["fr-LU"],p["lt-LT"]=p["et-EE"],p["nl-BE"]=p["fr-BE"];var m={"bg-BG":function(e){var t=e.slice(0,2),r=parseInt(e.slice(2,4),10);r>40?(r-=40,t="20".concat(t)):r>20?(r-=20,t="18".concat(t)):t="19".concat(t),r<10&&(r="0".concat(r));var i="".concat(t,"/").concat(r,"/").concat(e.slice(4,6));if(!(0,s.default)(i,"YYYY/MM/DD"))return!1;for(var o=e.split("").map((function(e){return parseInt(e,10)})),n=[2,4,8,5,10,9,7,3,6],a=0,u=0;u<n.length;u++)a+=o[u]*n[u];return(a=a%11==10?0:a%11)===o[9]},"cs-CZ":function(e){e=e.replace(/\W/,"");var t=parseInt(e.slice(0,2),10);if(10===e.length)t=t<54?"20".concat(t):"19".concat(t);else{if("000"===e.slice(6))return!1;if(!(t<54))return!1;t="19".concat(t)}3===t.length&&(t=[t.slice(0,2),"0",t.slice(2)].join(""));var r=parseInt(e.slice(2,4),10);if(r>50&&(r-=50),r>20){if(parseInt(t,10)<2004)return!1;r-=20}r<10&&(r="0".concat(r));var i="".concat(t,"/").concat(r,"/").concat(e.slice(4,6));if(!(0,s.default)(i,"YYYY/MM/DD"))return!1;if(10===e.length&&parseInt(e,10)%11!=0){var o=parseInt(e.slice(0,9),10)%11;if(!(parseInt(t,10)<1986&&10===o))return!1;if(0!==parseInt(e.slice(9),10))return!1}return!0},"de-AT":function(e){return n.luhnCheck(e)},"de-DE":function(e){for(var t=e.split("").map((function(e){return parseInt(e,10)})),r=[],i=0;i<t.length-1;i++){r.push("");for(var o=0;o<t.length-1;o++)t[i]===t[o]&&(r[i]+=o)}if(2!==(r=r.filter((function(e){return e.length>1}))).length&&3!==r.length)return!1;if(3===r[0].length){for(var s=r[0].split("").map((function(e){return parseInt(e,10)})),a=0,u=0;u<s.length-1;u++)s[u]+1===s[u+1]&&(a+=1);if(2===a)return!1}return n.iso7064Check(e)},"dk-DK":function(e){e=e.replace(/\W/,"");var t=parseInt(e.slice(4,6),10);switch(e.slice(6,7)){case"0":case"1":case"2":case"3":t="19".concat(t);break;case"4":case"9":t=t<37?"20".concat(t):"19".concat(t);break;default:if(t<37)t="20".concat(t);else{if(!(t>58))return!1;t="18".concat(t)}}3===t.length&&(t=[t.slice(0,2),"0",t.slice(2)].join(""));var r="".concat(t,"/").concat(e.slice(2,4),"/").concat(e.slice(0,2));if(!(0,s.default)(r,"YYYY/MM/DD"))return!1;for(var i=e.split("").map((function(e){return parseInt(e,10)})),o=0,n=4,a=0;a<9;a++)o+=i[a]*n,1==(n-=1)&&(n=7);return 1!=(o%=11)&&(0===o?0===i[9]:i[9]===11-o)},"el-CY":function(e){for(var t=e.slice(0,8).split("").map((function(e){return parseInt(e,10)})),r=0,i=1;i<t.length;i+=2)r+=t[i];for(var o=0;o<t.length;o+=2)t[o]<2?r+=1-t[o]:(r+=2*(t[o]-2)+5,t[o]>4&&(r+=2));return String.fromCharCode(r%26+65)===e.charAt(8)},"el-GR":function(e){for(var t=e.split("").map((function(e){return parseInt(e,10)})),r=0,i=0;i<8;i++)r+=t[i]*Math.pow(2,8-i);return r%11===t[8]},"en-IE":function(e){var t=n.reverseMultiplyAndSum(e.split("").slice(0,7).map((function(e){return parseInt(e,10)})),8);return 9===e.length&&"W"!==e[8]&&(t+=9*(e[8].charCodeAt(0)-64)),0==(t%=23)?"W"===e[7].toUpperCase():e[7].toUpperCase()===String.fromCharCode(64+t)},"en-US":function(e){return-1!==function(){var e=[];for(var t in f)f.hasOwnProperty(t)&&e.push.apply(e,l(f[t]));return e}().indexOf(e.substr(0,2))},"es-ES":function(e){var t=e.toUpperCase().split("");if(isNaN(parseInt(t[0],10))&&t.length>1){var r=0;switch(t[0]){case"Y":r=1;break;case"Z":r=2}t.splice(0,1,r)}else for(;t.length<9;)t.unshift(0);t=t.join("");var i=parseInt(t.slice(0,8),10)%23;return t[8]===["T","R","W","A","G","M","Y","F","P","D","X","B","N","J","Z","S","Q","V","H","L","C","K","E"][i]},"et-EE":function(e){var t=e.slice(1,3);switch(e.slice(0,1)){case"1":case"2":t="18".concat(t);break;case"3":case"4":t="19".concat(t);break;default:t="20".concat(t)}var r="".concat(t,"/").concat(e.slice(3,5),"/").concat(e.slice(5,7));if(!(0,s.default)(r,"YYYY/MM/DD"))return!1;for(var i=e.split("").map((function(e){return parseInt(e,10)})),o=0,n=1,a=0;a<10;a++)o+=i[a]*n,10===(n+=1)&&(n=1);if(o%11==10){o=0,n=3;for(var u=0;u<10;u++)o+=i[u]*n,10===(n+=1)&&(n=1);if(o%11==10)return 0===i[10]}return o%11===i[10]},"fi-FI":function(e){var t=e.slice(4,6);switch(e.slice(6,7)){case"+":t="18".concat(t);break;case"-":t="19".concat(t);break;default:t="20".concat(t)}var r="".concat(t,"/").concat(e.slice(2,4),"/").concat(e.slice(0,2));if(!(0,s.default)(r,"YYYY/MM/DD"))return!1;var i=parseInt(e.slice(0,6)+e.slice(7,10),10)%31;return i<10?i===parseInt(e.slice(10),10):["A","B","C","D","E","F","H","J","K","L","M","N","P","R","S","T","U","V","W","X","Y"][i-=10]===e.slice(10)},"fr-BE":function(e){if("00"!==e.slice(2,4)||"00"!==e.slice(4,6)){var t="".concat(e.slice(0,2),"/").concat(e.slice(2,4),"/").concat(e.slice(4,6));if(!(0,s.default)(t,"YY/MM/DD"))return!1}var r=97-parseInt(e.slice(0,9),10)%97,i=parseInt(e.slice(9,11),10);return r===i||(r=97-parseInt("2".concat(e.slice(0,9)),10)%97)===i},"fr-FR":function(e){return e=e.replace(/\s/g,""),parseInt(e.slice(0,10),10)%511===parseInt(e.slice(10,13),10)},"fr-LU":function(e){var t="".concat(e.slice(0,4),"/").concat(e.slice(4,6),"/").concat(e.slice(6,8));return!!(0,s.default)(t,"YYYY/MM/DD")&&!!n.luhnCheck(e.slice(0,12))&&n.verhoeffCheck("".concat(e.slice(0,11)).concat(e[12]))},"hr-HR":function(e){return n.iso7064Check(e)},"hu-HU":function(e){for(var t=e.split("").map((function(e){return parseInt(e,10)})),r=8,i=1;i<9;i++)r+=t[i]*(i+1);return r%11===t[9]},"it-IT":function(e){var t=e.toUpperCase().split("");if(!d(t.slice(0,3)))return!1;if(!d(t.slice(3,6)))return!1;for(var r={L:"0",M:"1",N:"2",P:"3",Q:"4",R:"5",S:"6",T:"7",U:"8",V:"9"},i=0,o=[6,7,9,10,12,13,14];i<o.length;i++){var n=o[i];t[n]in r&&t.splice(n,1,r[t[n]])}var a={A:"01",B:"02",C:"03",D:"04",E:"05",H:"06",L:"07",M:"08",P:"09",R:"10",S:"11",T:"12"}[t[8]],u=parseInt(t[9]+t[10],10);u>40&&(u-=40),u<10&&(u="0".concat(u));var l="".concat(t[6]).concat(t[7],"/").concat(a,"/").concat(u);if(!(0,s.default)(l,"YY/MM/DD"))return!1;for(var c=0,f=1;f<t.length-1;f+=2){var p=parseInt(t[f],10);isNaN(p)&&(p=t[f].charCodeAt(0)-65),c+=p}for(var m={A:1,B:0,C:5,D:7,E:9,F:13,G:15,H:17,I:19,J:21,K:2,L:4,M:18,N:20,O:11,P:3,Q:6,R:8,S:12,T:14,U:16,V:10,W:22,X:25,Y:24,Z:23,0:1,1:0},h=0;h<t.length-1;h+=2){var g=0;if(t[h]in m)g=m[t[h]];else{var y=parseInt(t[h],10);g=2*y+1,y>4&&(g+=2)}c+=g}return String.fromCharCode(65+c%26)===t[15]},"lv-LV":function(e){var t=(e=e.replace(/\W/,"")).slice(0,2);if("32"!==t){if("00"!==e.slice(2,4)){var r=e.slice(4,6);switch(e[6]){case"0":r="18".concat(r);break;case"1":r="19".concat(r);break;default:r="20".concat(r)}var i="".concat(r,"/").concat(e.slice(2,4),"/").concat(t);if(!(0,s.default)(i,"YYYY/MM/DD"))return!1}for(var o=1101,n=[1,6,3,7,9,10,5,8,4,2],a=0;a<e.length-1;a++)o-=parseInt(e[a],10)*n[a];return parseInt(e[10],10)===o%11}return!0},"mt-MT":function(e){if(9!==e.length){for(var t=e.toUpperCase().split("");t.length<8;)t.unshift(0);switch(e[7]){case"A":case"P":if(0===parseInt(t[6],10))return!1;break;default:var r=parseInt(t.join("").slice(0,5),10);if(r>32e3)return!1;if(r===parseInt(t.join("").slice(5,7),10))return!1}}return!0},"nl-NL":function(e){return n.reverseMultiplyAndSum(e.split("").slice(0,8).map((function(e){return parseInt(e,10)})),9)%11===parseInt(e[8],10)},"pl-PL":function(e){if(10===e.length){for(var t=[6,5,7,2,3,4,5,6,7],r=0,i=0;i<t.length;i++)r+=parseInt(e[i],10)*t[i];return 10!=(r%=11)&&r===parseInt(e[9],10)}var o=e.slice(0,2),n=parseInt(e.slice(2,4),10);n>80?(o="18".concat(o),n-=80):n>60?(o="22".concat(o),n-=60):n>40?(o="21".concat(o),n-=40):n>20?(o="20".concat(o),n-=20):o="19".concat(o),n<10&&(n="0".concat(n));var a="".concat(o,"/").concat(n,"/").concat(e.slice(4,6));if(!(0,s.default)(a,"YYYY/MM/DD"))return!1;for(var u=0,l=1,c=0;c<e.length-1;c++)u+=parseInt(e[c],10)*l%10,(l+=2)>10?l=1:5===l&&(l+=2);return(u=10-u%10)===parseInt(e[10],10)},"pt-PT":function(e){var t=11-n.reverseMultiplyAndSum(e.split("").slice(0,8).map((function(e){return parseInt(e,10)})),9)%11;return t>9?0===parseInt(e[8],10):t===parseInt(e[8],10)},"ro-RO":function(e){if("9000"!==e.slice(0,4)){var t=e.slice(1,3);switch(e[0]){case"1":case"2":t="19".concat(t);break;case"3":case"4":t="18".concat(t);break;case"5":case"6":t="20".concat(t)}var r="".concat(t,"/").concat(e.slice(3,5),"/").concat(e.slice(5,7));if(8===r.length){if(!(0,s.default)(r,"YY/MM/DD"))return!1}else if(!(0,s.default)(r,"YYYY/MM/DD"))return!1;for(var i=e.split("").map((function(e){return parseInt(e,10)})),o=[2,7,9,1,4,6,3,5,8,2,7,9],n=0,a=0;a<o.length;a++)n+=i[a]*o[a];return n%11==10?1===i[12]:i[12]===n%11}return!0},"sk-SK":function(e){if(9===e.length){if("000"===(e=e.replace(/\W/,"")).slice(6))return!1;var t=parseInt(e.slice(0,2),10);if(t>53)return!1;t=t<10?"190".concat(t):"19".concat(t);var r=parseInt(e.slice(2,4),10);r>50&&(r-=50),r<10&&(r="0".concat(r));var i="".concat(t,"/").concat(r,"/").concat(e.slice(4,6));if(!(0,s.default)(i,"YYYY/MM/DD"))return!1}return!0},"sl-SI":function(e){var t=11-n.reverseMultiplyAndSum(e.split("").slice(0,7).map((function(e){return parseInt(e,10)})),8)%11;return 10===t?0===parseInt(e[7],10):t===parseInt(e[7],10)},"sv-SE":function(e){var t=e.slice(0);e.length>11&&(t=t.slice(2));var r="",i=t.slice(2,4),o=parseInt(t.slice(4,6),10);if(e.length>11)r=e.slice(0,4);else if(r=e.slice(0,2),11===e.length&&o<60){var a=(new Date).getFullYear().toString(),u=parseInt(a.slice(0,2),10);if(a=parseInt(a,10),"-"===e[6])r=parseInt("".concat(u).concat(r),10)>a?"".concat(u-1).concat(r):"".concat(u).concat(r);else if(r="".concat(u-1).concat(r),a-parseInt(r,10)<100)return!1}o>60&&(o-=60),o<10&&(o="0".concat(o));var l="".concat(r,"/").concat(i,"/").concat(o);if(8===l.length){if(!(0,s.default)(l,"YY/MM/DD"))return!1}else if(!(0,s.default)(l,"YYYY/MM/DD"))return!1;return n.luhnCheck(e.replace(/\W/,""))}};m["lb-LU"]=m["fr-LU"],m["lt-LT"]=m["et-EE"],m["nl-BE"]=m["fr-BE"];var h=/[-\\\/!@#$%\^&\*\(\)\+\=\[\]]+/g,g={"de-AT":h,"de-DE":/[\/\\]/g,"fr-BE":h};g["nl-BE"]=g["fr-BE"],t.exports=r.default,t.exports.default=r.default},{"./isDate":35,"./util/algorithms":106,"./util/assertString":107}],89:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){if((0,i.default)(e),!e||/[\s<>]/.test(e))return!1;if(0===e.indexOf("mailto:"))return!1;if((t=(0,s.default)(t,u)).validate_length&&e.length>=2083)return!1;var r,a,f,d,p,m,h,g;if(h=e.split("#"),e=h.shift(),h=e.split("?"),e=h.shift(),(h=e.split("://")).length>1){if(r=h.shift().toLowerCase(),t.require_valid_protocol&&-1===t.protocols.indexOf(r))return!1}else{if(t.require_protocol)return!1;if("//"===e.substr(0,2)){if(!t.allow_protocol_relative_urls)return!1;h[0]=e.substr(2)}}if(""===(e=h.join("://")))return!1;if(h=e.split("/"),""===(e=h.shift())&&!t.require_host)return!0;if((h=e.split("@")).length>1){if(t.disallow_auth)return!1;if(-1===(a=h.shift()).indexOf(":")||a.indexOf(":")>=0&&a.split(":").length>2)return!1}m=null,g=null;var y=(d=h.join("@")).match(l);if(y?(f="",g=y[1],m=y[2]||null):(f=(h=d.split(":")).shift(),h.length&&(m=h.join(":"))),null!==m){if(p=parseInt(m,10),!/^[0-9]+$/.test(m)||p<=0||p>65535)return!1}else if(t.require_port)return!1;return!(!((0,n.default)(f)||(0,o.default)(f,t)||g&&(0,n.default)(g,6))||(f=f||g,t.host_whitelist&&!c(f,t.host_whitelist)||t.host_blacklist&&c(f,t.host_blacklist)))};var i=a(e("./util/assertString")),o=a(e("./isFQDN")),n=a(e("./isIP")),s=a(e("./util/merge"));function a(e){return e&&e.__esModule?e:{default:e}}var u={protocols:["http","https","ftp"],require_tld:!0,require_protocol:!1,require_host:!0,require_port:!1,require_valid_protocol:!0,allow_underscores:!1,allow_trailing_dot:!1,allow_protocol_relative_urls:!1,validate_length:!0},l=/^\[([^\]]+)\](?::([0-9]+))?$/;function c(e,t){for(var r=0;r<t.length;r++){var i=t[r];if(e===i||(o=i,"[object RegExp]"===Object.prototype.toString.call(o)&&i.test(e)))return!0}var o;return!1}t.exports=r.default,t.exports.default=r.default},{"./isFQDN":42,"./isIP":52,"./util/assertString":107,"./util/merge":109}],90:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"all";(0,o.default)(e);var r=n[t];return r&&r.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n={3:/^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,4:/^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,5:/^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,all:/^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],91:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),e===e.toUpperCase()};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],92:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){if((0,o.default)(e),(0,o.default)(t),t in n)return n[t].test(e);throw new Error("Invalid country code: '".concat(t,"'"))},r.vatMatchers=void 0;var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n={GB:/^GB((\d{3} \d{4} ([0-8][0-9]|9[0-6]))|(\d{9} \d{3})|(((GD[0-4])|(HA[5-9]))[0-9]{2}))$/};r.vatMatchers=n},{"./util/assertString":107}],93:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),n.fullWidth.test(e)&&s.halfWidth.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i},n=e("./isFullWidth"),s=e("./isHalfWidth");t.exports=r.default,t.exports.default=r.default},{"./isFullWidth":44,"./isHalfWidth":46,"./util/assertString":107}],94:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){(0,o.default)(e);for(var r=e.length-1;r>=0;r--)if(-1===t.indexOf(e[r]))return!1;return!0};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],95:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){(0,o.default)(e);var r=t?new RegExp("^[".concat(t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"]+"),"g"):/^\s+/g;return e.replace(r,"")};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],96:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t,r){return(0,o.default)(e),"[object RegExp]"!==Object.prototype.toString.call(t)&&(t=new RegExp(t,r)),t.test(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],97:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){t=(0,o.default)(t,n);var r=e.split("@"),i=r.pop(),f=[r.join("@"),i];if(f[1]=f[1].toLowerCase(),"gmail.com"===f[1]||"googlemail.com"===f[1]){if(t.gmail_remove_subaddress&&(f[0]=f[0].split("+")[0]),t.gmail_remove_dots&&(f[0]=f[0].replace(/\.+/g,c)),!f[0].length)return!1;(t.all_lowercase||t.gmail_lowercase)&&(f[0]=f[0].toLowerCase()),f[1]=t.gmail_convert_googlemaildotcom?"gmail.com":f[1]}else if(s.indexOf(f[1])>=0){if(t.icloud_remove_subaddress&&(f[0]=f[0].split("+")[0]),!f[0].length)return!1;(t.all_lowercase||t.icloud_lowercase)&&(f[0]=f[0].toLowerCase())}else if(a.indexOf(f[1])>=0){if(t.outlookdotcom_remove_subaddress&&(f[0]=f[0].split("+")[0]),!f[0].length)return!1;(t.all_lowercase||t.outlookdotcom_lowercase)&&(f[0]=f[0].toLowerCase())}else if(u.indexOf(f[1])>=0){if(t.yahoo_remove_subaddress){var d=f[0].split("-");f[0]=d.length>1?d.slice(0,-1).join("-"):d[0]}if(!f[0].length)return!1;(t.all_lowercase||t.yahoo_lowercase)&&(f[0]=f[0].toLowerCase())}else l.indexOf(f[1])>=0?((t.all_lowercase||t.yandex_lowercase)&&(f[0]=f[0].toLowerCase()),f[1]="yandex.ru"):t.all_lowercase&&(f[0]=f[0].toLowerCase());return f.join("@")};var i,o=(i=e("./util/merge"))&&i.__esModule?i:{default:i},n={all_lowercase:!0,gmail_lowercase:!0,gmail_remove_dots:!0,gmail_remove_subaddress:!0,gmail_convert_googlemaildotcom:!0,outlookdotcom_lowercase:!0,outlookdotcom_remove_subaddress:!0,yahoo_lowercase:!0,yahoo_remove_subaddress:!0,yandex_lowercase:!0,icloud_lowercase:!0,icloud_remove_subaddress:!0},s=["icloud.com","me.com"],a=["hotmail.at","hotmail.be","hotmail.ca","hotmail.cl","hotmail.co.il","hotmail.co.nz","hotmail.co.th","hotmail.co.uk","hotmail.com","hotmail.com.ar","hotmail.com.au","hotmail.com.br","hotmail.com.gr","hotmail.com.mx","hotmail.com.pe","hotmail.com.tr","hotmail.com.vn","hotmail.cz","hotmail.de","hotmail.dk","hotmail.es","hotmail.fr","hotmail.hu","hotmail.id","hotmail.ie","hotmail.in","hotmail.it","hotmail.jp","hotmail.kr","hotmail.lv","hotmail.my","hotmail.ph","hotmail.pt","hotmail.sa","hotmail.sg","hotmail.sk","live.be","live.co.uk","live.com","live.com.ar","live.com.mx","live.de","live.es","live.eu","live.fr","live.it","live.nl","msn.com","outlook.at","outlook.be","outlook.cl","outlook.co.il","outlook.co.nz","outlook.co.th","outlook.com","outlook.com.ar","outlook.com.au","outlook.com.br","outlook.com.gr","outlook.com.pe","outlook.com.tr","outlook.com.vn","outlook.cz","outlook.de","outlook.dk","outlook.es","outlook.fr","outlook.hu","outlook.id","outlook.ie","outlook.in","outlook.it","outlook.jp","outlook.kr","outlook.lv","outlook.my","outlook.ph","outlook.pt","outlook.sa","outlook.sg","outlook.sk","passport.com"],u=["rocketmail.com","yahoo.ca","yahoo.co.uk","yahoo.com","yahoo.de","yahoo.fr","yahoo.in","yahoo.it","ymail.com"],l=["yandex.ru","yandex.ua","yandex.kz","yandex.com","yandex.by","ya.ru"];function c(e){return e.length>1?e:""}t.exports=r.default,t.exports.default=r.default},{"./util/merge":109}],98:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){(0,o.default)(e);var r=t?new RegExp("[".concat(t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"]+$"),"g"):/\s+$/g;return e.replace(r,"")};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],99:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){(0,i.default)(e);var r=t?"\\x00-\\x09\\x0B\\x0C\\x0E-\\x1F\\x7F":"\\x00-\\x1F\\x7F";return(0,o.default)(e,r)};var i=n(e("./util/assertString")),o=n(e("./blacklist"));function n(e){return e&&e.__esModule?e:{default:e}}t.exports=r.default,t.exports.default=r.default},{"./blacklist":16,"./util/assertString":107}],100:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){return(0,o.default)(e),t?"1"===e||/^true$/i.test(e):"0"!==e&&!/^false$/i.test(e)&&""!==e};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],101:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),e=Date.parse(e),isNaN(e)?null:new Date(e)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],102:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e)?parseFloat(e):NaN};var i,o=(i=e("./isFloat"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./isFloat":43}],103:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){return(0,o.default)(e),parseInt(e,t||10)};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],104:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){return(0,i.default)((0,o.default)(e,t),t)};var i=n(e("./rtrim")),o=n(e("./ltrim"));function n(e){return e&&e.__esModule?e:{default:e}}t.exports=r.default,t.exports.default=r.default},{"./ltrim":95,"./rtrim":98}],105:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,o.default)(e),e.replace(/&amp;/g,"&").replace(/&quot;/g,'"').replace(/&#x27;/g,"'").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&#x2F;/g,"/").replace(/&#x5C;/g,"\\").replace(/&#96;/g,"`")};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],106:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.iso7064Check=function(e){for(var t=10,r=0;r<e.length-1;r++)t=(parseInt(e[r],10)+t)%10==0?9:(parseInt(e[r],10)+t)%10*2%11;return(t=1===t?0:11-t)===parseInt(e[10],10)},r.luhnCheck=function(e){for(var t=0,r=!1,i=e.length-1;i>=0;i--){if(r){var o=2*parseInt(e[i],10);t+=o>9?o.toString().split("").map((function(e){return parseInt(e,10)})).reduce((function(e,t){return e+t}),0):o}else t+=parseInt(e[i],10);r=!r}return t%10==0},r.reverseMultiplyAndSum=function(e,t){for(var r=0,i=0;i<e.length;i++)r+=e[i]*(t-i);return r},r.verhoeffCheck=function(e){for(var t=[[0,1,2,3,4,5,6,7,8,9],[1,2,3,4,0,6,7,8,9,5],[2,3,4,0,1,7,8,9,5,6],[3,4,0,1,2,8,9,5,6,7],[4,0,1,2,3,9,5,6,7,8],[5,9,8,7,6,0,4,3,2,1],[6,5,9,8,7,1,0,4,3,2],[7,6,5,9,8,2,1,0,4,3],[8,7,6,5,9,3,2,1,0,4],[9,8,7,6,5,4,3,2,1,0]],r=[[0,1,2,3,4,5,6,7,8,9],[1,5,7,6,2,8,3,0,9,4],[5,8,0,3,7,9,6,1,4,2],[8,9,1,6,0,4,3,5,2,7],[9,4,5,3,1,2,6,8,7,0],[4,2,8,6,5,7,3,9,0,1],[2,7,9,3,8,0,6,4,1,5],[7,0,4,6,9,1,3,2,5,8]],i=e.split("").reverse().join(""),o=0,n=0;n<i.length;n++)o=t[o][r[n%8][parseInt(i[n],10)]];return 0===o}},{}],107:[function(e,t,r){"use strict";function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){if(!("string"==typeof e||e instanceof String)){var t=i(e);throw null===e?t="null":"object"===t&&(t=e.constructor.name),new TypeError("Expected a string but received a ".concat(t))}},t.exports=r.default,t.exports.default=r.default},{}],108:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0,r.default=function(e,t){return e.some((function(e){return t===e}))},t.exports=r.default,t.exports.default=r.default},{}],109:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;for(var r in t)void 0===e[r]&&(e[r]=t[r]);return e},t.exports=r.default,t.exports.default=r.default},{}],110:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){var r=e.join("");return new RegExp(r,t)},t.exports=r.default,t.exports.default=r.default},{}],111:[function(e,t,r){"use strict";function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return"object"===i(e)&&null!==e?e="function"==typeof e.toString?e.toString():"[object Object]":(null==e||isNaN(e)&&!e.length)&&(e=""),String(e)},t.exports=r.default,t.exports.default=r.default},{}],112:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){return(0,o.default)(e),e.replace(new RegExp("[^".concat(t,"]+"),"g"),"")};var i,o=(i=e("./util/assertString"))&&i.__esModule?i:{default:i};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":107}],113:[function(e,t,r){t.exports={name:"doipjs",version:"0.13.0",description:"Decentralized OpenPGP Identity Proofs library in Node.js",main:"src/index.js",dependencies:{"@xmpp/client":"^0.12.0","@xmpp/debug":"^0.12.0",bent:"^7.3.12","browser-or-node":"^1.3.0",cors:"^2.8.5",dotenv:"^8.2.0",express:"^4.17.1","express-validator":"^6.10.0","irc-upd":"^0.11.0",jsdom:"^16.5.1","merge-options":"^3.0.3",openpgp:"^4.10.9","query-string":"^6.14.1","valid-url":"^1.0.9",validator:"^13.5.2"},devDependencies:{browserify:"^17.0.0","browserify-shim":"^3.8.14",chai:"^4.2.0","chai-as-promised":"^7.1.1","chai-match-pattern":"^1.2.0","clean-jsdoc-theme":"^3.2.4",husky:"^7.0.0",jsdoc:"^3.6.6","license-check-and-add":"^3.0.4","lint-staged":"^11.0.0",minify:"^6.0.1",mocha:"^8.2.0",nodemon:"^2.0.7",standard:"^16.0.3"},scripts:{"release:bundle":"./node_modules/.bin/browserify ./src/index.js --standalone doip -x openpgp -x jsdom -x @xmpp/client -x @xmpp/debug -x irc-upd -o ./dist/doip.js","release:minify":"./node_modules/.bin/minify ./dist/doip.js > ./dist/doip.min.js","prettier:check":"./node_modules/.bin/prettier --check .","prettier:write":"./node_modules/.bin/prettier --write .","license:check":"./node_modules/.bin/license-check-and-add check","license:add":"./node_modules/.bin/license-check-and-add add","license:remove":"./node_modules/.bin/license-check-and-add remove","docs:lib":"./node_modules/.bin/jsdoc -c jsdoc-lib.json -r -d ./docs -P package.json",standard:"./node_modules/.bin/standard ./src",mocha:"./node_modules/.bin/mocha",test:"yarn run standard && yarn run license:check && yarn run mocha",proxy:"NODE_ENV=production node ./src/proxy/","proxy:dev":"NODE_ENV=development ./node_modules/.bin/nodemon ./src/proxy/",prepare:"husky install"},repository:{type:"git",url:"https://codeberg.org/keyoxide/doipjs"},homepage:"https://js.doip.rocks",keywords:["pgp","gpg","openpgp","encryption","decentralized","identity"],author:"Yarmo Mackenbach <yarmo@yarmo.eu> (https://yarmo.eu)",license:"Apache-2.0",browserify:{transform:["browserify-shim"]},"browserify-shim":{openpgp:"global:openpgp"}}},{}],114:[function(e,t,r){const i=e("validator"),o=e("valid-url"),n=e("merge-options"),s=e("./proofs"),a=e("./verifications"),u=e("./claimDefinitions"),l=e("./defaults"),c=e("./enums");t.exports=class{constructor(e,t){if("object"==typeof e&&"claimVersion"in e){const t=e;if(1!==t.claimVersion)throw new Error("Invalid claim version");this._uri=t.uri,this._fingerprint=t.fingerprint,this._status=t.status,this._matches=t.matches,this._verification=t.verification}else{if(e&&!o.isUri(e))throw new Error("Invalid URI");if(t)try{i.isAlphanumeric(t)}catch(e){throw new Error("Invalid fingerprint")}this._uri=e||null,this._fingerprint=t||null,this._status=c.ClaimStatus.INIT,this._matches=null,this._verification=null}}get uri(){return this._uri}get fingerprint(){return this._fingerprint}get status(){return this._status}get matches(){if(this._status===c.ClaimStatus.INIT)throw new Error("This claim has not yet been matched");return this._matches}get verification(){if(this._status!==c.ClaimStatus.VERIFIED)throw new Error("This claim has not yet been verified");return this._verification}set uri(e){if(this._status!==c.ClaimStatus.INIT)throw new Error("Cannot change the URI, this claim has already been matched");if(e&&!o.isUri(e))throw new Error("The URI was invalid");e=e.replace(/^\s+|\s+$/g,""),this._uri=e}set fingerprint(e){if(this._status===c.ClaimStatus.VERIFIED)throw new Error("Cannot change the fingerprint, this claim has already been verified");this._fingerprint=e}set status(e){throw new Error("Cannot change a claim's status")}set matches(e){throw new Error("Cannot change a claim's matches")}set verification(e){throw new Error("Cannot change a claim's verification result")}match(){if(this._status!==c.ClaimStatus.INIT)throw new Error("This claim was already matched");if(null===this._uri)throw new Error("This claim has no URI");this._matches=[],u.list.every(((e,t)=>{const r=u.data[e];if(!r.reURI.test(this._uri))return!0;const i=r.processURI(this._uri);return i.match.isAmbiguous?(this._matches.push(i),!0):(this._matches=[i],!1)})),this._status=c.ClaimStatus.MATCHED}async verify(e){if(this._status===c.ClaimStatus.INIT)throw new Error("This claim has not yet been matched");if(this._status===c.ClaimStatus.VERIFIED)throw new Error("This claim has already been verified");if(null===this._fingerprint)throw new Error("This claim has no fingerprint");e=n(l.opts,e||{}),0===this._matches.length&&(this._verification={result:!1,completed:!0,proof:{},errors:["No matches for claim"]});for(let t=0;t<this._matches.length;t++){const r=this._matches[t];let i,o=null,n=null;try{n=await s.fetch(r,e)}catch(e){i=e}if(n)o=a.run(n.result,r,this._fingerprint),o.proof={fetcher:n.fetcher,viaProxy:n.viaProxy};else if(o=o||{result:!1,completed:!0,proof:{},errors:[i]},this.isAmbiguous())continue;o.completed&&(this._verification=o,this._matches=[r],t=this._matches.length)}this._verification=this._verification?this._verification:{result:!1,completed:!0,proof:{},errors:["Unknown error"]},this._status=c.ClaimStatus.VERIFIED}isAmbiguous(){if(this._status===c.ClaimStatus.INIT)throw new Error("The claim has not been matched yet");if(0===this._matches.length)throw new Error("The claim has no matches");return this._matches.length>1||this._matches[0].match.isAmbiguous}toJSON(){return{claimVersion:1,uri:this._uri,fingerprint:this._fingerprint,status:this._status,matches:this._matches,verification:this._verification}}}},{"./claimDefinitions":123,"./defaults":134,"./enums":135,"./proofs":146,"./verifications":149,"merge-options":8,"valid-url":13,validator:14}],115:[function(e,t,r){const i=e("../enums"),o=/^https:\/\/dev\.to\/(.*)\/(.*)\/?/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"web",name:"devto"},match:{regularExpression:o,isAmbiguous:!1},profile:{display:t[1],uri:"https://dev.to/"+t[1],qr:null},proof:{uri:e,request:{fetcher:i.Fetcher.HTTP,access:i.ProofAccess.NOCORS,format:i.ProofFormat.JSON,data:{url:`https://dev.to/api/articles/${t[1]}/${t[2]}`,format:i.ProofFormat.JSON}}},claim:{format:i.ClaimFormat.MESSAGE,relation:i.ClaimRelation.CONTAINS,path:["body_markdown"]}}},r.tests=[{uri:"https://dev.to/alice/post",shouldMatch:!0},{uri:"https://dev.to/alice/post/",shouldMatch:!0},{uri:"https://domain.org/alice/post",shouldMatch:!1}]},{"../enums":135}],116:[function(e,t,r){const i=e("../enums"),o=/^https:\/\/(.*)\/u\/(.*)\/?/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"web",name:"discourse"},match:{regularExpression:o,isAmbiguous:!0},profile:{display:`${t[2]}@${t[1]}`,uri:e,qr:null},proof:{uri:e,request:{fetcher:i.Fetcher.HTTP,access:i.ProofAccess.NOCORS,format:i.ProofFormat.JSON,data:{url:`https://${t[1]}/u/${t[2]}.json`,format:i.ProofFormat.JSON}}},claim:{format:i.ClaimFormat.MESSAGE,relation:i.ClaimRelation.CONTAINS,path:["user","bio_raw"]}}},r.tests=[{uri:"https://domain.org/u/alice",shouldMatch:!0},{uri:"https://domain.org/u/alice/",shouldMatch:!0},{uri:"https://domain.org/alice",shouldMatch:!1}]},{"../enums":135}],117:[function(e,t,r){const i=e("../enums"),o=/^dns:([a-zA-Z0-9.\-_]*)(?:\?(.*))?/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"web",name:"dns"},match:{regularExpression:o,isAmbiguous:!1},profile:{display:t[1],uri:"https://"+t[1],qr:null},proof:{uri:null,request:{fetcher:i.Fetcher.DNS,access:i.ProofAccess.SERVER,format:i.ProofFormat.JSON,data:{domain:t[1]}}},claim:{format:i.ClaimFormat.URI,relation:i.ClaimRelation.CONTAINS,path:["records","txt"]}}},r.tests=[{uri:"dns:domain.org",shouldMatch:!0},{uri:"dns:domain.org?type=TXT",shouldMatch:!0},{uri:"https://domain.org",shouldMatch:!1}]},{"../enums":135}],118:[function(e,t,r){const i=e("../enums"),o=/^https:\/\/(.*)\/users\/(.*)\/?/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"web",name:"fediverse"},match:{regularExpression:o,isAmbiguous:!0},profile:{display:`@${t[2]}@${t[1]}`,uri:e,qr:null},proof:{uri:e,request:{fetcher:i.Fetcher.HTTP,access:i.ProofAccess.GENERIC,format:i.ProofFormat.JSON,data:{url:e,format:i.ProofFormat.JSON}}},claim:{format:i.ClaimFormat.FINGERPRINT,relation:i.ClaimRelation.CONTAINS,path:["summary"]}}},r.tests=[{uri:"https://domain.org/users/alice",shouldMatch:!0},{uri:"https://domain.org/users/alice/",shouldMatch:!0},{uri:"https://domain.org/alice",shouldMatch:!1}]},{"../enums":135}],119:[function(e,t,r){const i=e("../enums"),o=/^https:\/\/(.*)\/(.*)\/gitea_proof\/?/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"web",name:"gitea"},match:{regularExpression:o,isAmbiguous:!0},profile:{display:`${t[2]}@${t[1]}`,uri:`https://${t[1]}/${t[2]}`,qr:null},proof:{uri:e,request:{fetcher:i.Fetcher.HTTP,access:i.ProofAccess.NOCORS,format:i.ProofFormat.JSON,data:{url:`https://${t[1]}/api/v1/repos/${t[2]}/gitea_proof`,format:i.ProofFormat.JSON}}},claim:{format:i.ClaimFormat.MESSAGE,relation:i.ClaimRelation.EQUALS,path:["description"]}}},r.tests=[{uri:"https://domain.org/alice/gitea_proof",shouldMatch:!0},{uri:"https://domain.org/alice/gitea_proof/",shouldMatch:!0},{uri:"https://domain.org/alice/other_proof",shouldMatch:!1}]},{"../enums":135}],120:[function(e,t,r){const i=e("../enums"),o=/^https:\/\/gist\.github\.com\/(.*)\/(.*)\/?/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"web",name:"github"},match:{regularExpression:o,isAmbiguous:!1},profile:{display:t[1],uri:"https://github.com/"+t[1],qr:null},proof:{uri:e,request:{fetcher:i.Fetcher.HTTP,access:i.ProofAccess.GENERIC,format:i.ProofFormat.JSON,data:{url:"https://api.github.com/gists/"+t[2],format:i.ProofFormat.JSON}}},claim:{format:i.ClaimFormat.MESSAGE,relation:i.ClaimRelation.CONTAINS,path:["files","openpgp.md","content"]}}},r.tests=[{uri:"https://gist.github.com/Alice/123456789",shouldMatch:!0},{uri:"https://gist.github.com/Alice/123456789/",shouldMatch:!0},{uri:"https://domain.org/Alice/123456789",shouldMatch:!1}]},{"../enums":135}],121:[function(e,t,r){const i=e("../enums"),o=/^https:\/\/(.*)\/(.*)\/gitlab_proof\/?/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"web",name:"gitlab"},match:{regularExpression:o,isAmbiguous:!0},profile:{display:`${t[2]}@${t[1]}`,uri:`https://${t[1]}/${t[2]}`,qr:null},proof:{uri:e,request:{fetcher:i.Fetcher.GITLAB,access:i.ProofAccess.GENERIC,format:i.ProofFormat.JSON,data:{domain:t[1],username:t[2]}}},claim:{format:i.ClaimFormat.MESSAGE,relation:i.ClaimRelation.EQUALS,path:["description"]}}},r.tests=[{uri:"https://gitlab.domain.org/alice/gitlab_proof",shouldMatch:!0},{uri:"https://gitlab.domain.org/alice/gitlab_proof/",shouldMatch:!0},{uri:"https://domain.org/alice/other_proof",shouldMatch:!1}]},{"../enums":135}],122:[function(e,t,r){const i=e("../enums"),o=/^https:\/\/news\.ycombinator\.com\/user\?id=(.*)\/?/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"web",name:"hackernews"},match:{regularExpression:o,isAmbiguous:!1},profile:{display:t[1],uri:e,qr:null},proof:{uri:`https://hacker-news.firebaseio.com/v0/user/${t[1]}.json`,request:{fetcher:i.Fetcher.HTTP,access:i.ProofAccess.NOCORS,format:i.ProofFormat.JSON,data:{url:`https://hacker-news.firebaseio.com/v0/user/${t[1]}.json`,format:i.ProofFormat.JSON}}},claim:{format:i.ClaimFormat.URI,relation:i.ClaimRelation.CONTAINS,path:["about"]}}},r.tests=[{uri:"https://news.ycombinator.com/user?id=Alice",shouldMatch:!0},{uri:"https://news.ycombinator.com/user?id=Alice/",shouldMatch:!0},{uri:"https://domain.org/user?id=Alice",shouldMatch:!1}]},{"../enums":135}],123:[function(e,t,r){const i={dns:e("./dns"),irc:e("./irc"),xmpp:e("./xmpp"),matrix:e("./matrix"),twitter:e("./twitter"),reddit:e("./reddit"),liberapay:e("./liberapay"),lichess:e("./lichess"),hackernews:e("./hackernews"),lobsters:e("./lobsters"),devto:e("./devto"),gitea:e("./gitea"),gitlab:e("./gitlab"),github:e("./github"),mastodon:e("./mastodon"),fediverse:e("./fediverse"),discourse:e("./discourse"),owncast:e("./owncast")};r.list=["dns","irc","xmpp","matrix","twitter","reddit","liberapay","lichess","hackernews","lobsters","devto","gitea","gitlab","github","mastodon","fediverse","discourse","owncast"],r.data=i},{"./devto":115,"./discourse":116,"./dns":117,"./fediverse":118,"./gitea":119,"./github":120,"./gitlab":121,"./hackernews":122,"./irc":124,"./liberapay":125,"./lichess":126,"./lobsters":127,"./mastodon":128,"./matrix":129,"./owncast":130,"./reddit":131,"./twitter":132,"./xmpp":133}],124:[function(e,t,r){const i=e("../enums"),o=/^irc:\/\/(.*)\/([a-zA-Z0-9\-[\]\\`_^{|}]*)/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"communication",name:"irc"},match:{regularExpression:o,isAmbiguous:!1},profile:{display:`irc://${t[1]}/${t[2]}`,uri:e,qr:null},proof:{uri:null,request:{fetcher:i.Fetcher.IRC,access:i.ProofAccess.SERVER,format:i.ProofFormat.JSON,data:{domain:t[1],nick:t[2]}}},claim:{format:i.ClaimFormat.URI,relation:i.ClaimRelation.CONTAINS,path:[]}}},r.tests=[{uri:"irc://chat.ircserver.org/Alice1",shouldMatch:!0},{uri:"irc://chat.ircserver.org/alice?param=123",shouldMatch:!0},{uri:"irc://chat.ircserver.org/alice_bob",shouldMatch:!0},{uri:"https://chat.ircserver.org/alice",shouldMatch:!1}]},{"../enums":135}],125:[function(e,t,r){const i=e("../enums"),o=/^https:\/\/liberapay\.com\/(.*)\/?/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"web",name:"liberapay"},match:{regularExpression:o,isAmbiguous:!1},profile:{display:t[1],uri:e,qr:null},proof:{uri:e,request:{fetcher:i.Fetcher.HTTP,access:i.ProofAccess.GENERIC,format:i.ProofFormat.JSON,data:{url:`https://liberapay.com/${t[1]}/public.json`,format:i.ProofFormat.JSON}}},claim:{format:i.ClaimFormat.MESSAGE,relation:i.ClaimRelation.CONTAINS,path:["statements","content"]}}},r.tests=[{uri:"https://liberapay.com/alice",shouldMatch:!0},{uri:"https://liberapay.com/alice/",shouldMatch:!0},{uri:"https://domain.org/alice",shouldMatch:!1}]},{"../enums":135}],126:[function(e,t,r){const i=e("../enums"),o=/^https:\/\/lichess\.org\/@\/(.*)\/?/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"web",name:"lichess"},match:{regularExpression:o,isAmbiguous:!1},profile:{display:t[1],uri:e,qr:null},proof:{uri:"https://lichess.org/api/user/"+t[1],request:{fetcher:i.Fetcher.HTTP,access:i.ProofAccess.GENERIC,format:i.ProofFormat.JSON,data:{url:"https://lichess.org/api/user/"+t[1],format:i.ProofFormat.JSON}}},claim:{format:i.ClaimFormat.FINGERPRINT,relation:i.ClaimRelation.CONTAINS,path:["profile","links"]}}},r.tests=[{uri:"https://lichess.org/@/Alice",shouldMatch:!0},{uri:"https://lichess.org/@/Alice/",shouldMatch:!0},{uri:"https://domain.org/@/Alice",shouldMatch:!1}]},{"../enums":135}],127:[function(e,t,r){const i=e("../enums"),o=/^https:\/\/lobste\.rs\/u\/(.*)\/?/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"web",name:"lobsters"},match:{regularExpression:o,isAmbiguous:!1},profile:{display:t[1],uri:e,qr:null},proof:{uri:`https://lobste.rs/u/${t[1]}.json`,request:{fetcher:i.Fetcher.HTTP,access:i.ProofAccess.NOCORS,format:i.ProofFormat.JSON,data:{url:`https://lobste.rs/u/${t[1]}.json`,format:i.ProofFormat.JSON}}},claim:{format:i.ClaimFormat.MESSAGE,relation:i.ClaimRelation.CONTAINS,path:["about"]}}},r.tests=[{uri:"https://lobste.rs/u/Alice",shouldMatch:!0},{uri:"https://lobste.rs/u/Alice/",shouldMatch:!0},{uri:"https://domain.org/u/Alice",shouldMatch:!1}]},{"../enums":135}],128:[function(e,t,r){const i=e("../enums"),o=/^https:\/\/(.*)\/@(.*)\/?/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"web",name:"mastodon"},match:{regularExpression:o,isAmbiguous:!0},profile:{display:`@${t[2]}@${t[1]}`,uri:e,qr:null},proof:{uri:e,request:{fetcher:i.Fetcher.HTTP,access:i.ProofAccess.GENERIC,format:i.ProofFormat.JSON,data:{url:e,format:i.ProofFormat.JSON}}},claim:{format:i.ClaimFormat.FINGERPRINT,relation:i.ClaimRelation.CONTAINS,path:["attachment","value"]}}},r.tests=[{uri:"https://domain.org/@alice",shouldMatch:!0},{uri:"https://domain.org/@alice/",shouldMatch:!0},{uri:"https://domain.org/alice",shouldMatch:!1}]},{"../enums":135}],129:[function(e,t,r){const i=e("../enums"),o=e("query-string"),n=/^matrix:u\/(?:@)?([^@:]*:[^?]*)(\?.*)?/;r.reURI=n,r.processURI=e=>{const t=e.match(n);if(!t[2])return null;const r=o.parse(t[2]);if(!("org.keyoxide.e"in r)||!("org.keyoxide.r"in r))return null;const s="https://matrix.to/#/@"+t[1],a=`https://matrix.to/#/${r["org.keyoxide.r"]}/${r["org.keyoxide.e"]}`;return{serviceprovider:{type:"communication",name:"matrix"},match:{regularExpression:n,isAmbiguous:!1},profile:{display:"@"+t[1],uri:s,qr:null},proof:{uri:a,request:{fetcher:i.Fetcher.MATRIX,access:i.ProofAccess.GRANTED,format:i.ProofFormat.JSON,data:{eventId:r["org.keyoxide.e"],roomId:r["org.keyoxide.r"]}}},claim:{format:i.ClaimFormat.MESSAGE,relation:i.ClaimRelation.CONTAINS,path:["content","body"]}}},r.tests=[{uri:"matrix:u/alice:matrix.domain.org?org.keyoxide.r=!123:domain.org&org.keyoxide.e=$123",shouldMatch:!0},{uri:"matrix:u/alice:matrix.domain.org",shouldMatch:!0},{uri:"xmpp:alice@domain.org",shouldMatch:!1},{uri:"https://domain.org/@alice",shouldMatch:!1}]},{"../enums":135,"query-string":10}],130:[function(e,t,r){const i=e("../enums"),o=/^https:\/\/(.*)/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"web",name:"owncast"},match:{regularExpression:o,isAmbiguous:!0},profile:{display:t[1],uri:e,qr:null},proof:{uri:e+"/api/config",request:{fetcher:i.Fetcher.HTTP,access:i.ProofAccess.GENERIC,format:i.ProofFormat.JSON,data:{url:e+"/api/config",format:i.ProofFormat.JSON}}},claim:{format:i.ClaimFormat.FINGERPRINT,relation:i.ClaimRelation.CONTAINS,path:["socialHandles","url"]}}},r.tests=[{uri:"https://live.domain.org",shouldMatch:!0},{uri:"https://live.domain.org/",shouldMatch:!0},{uri:"https://domain.org/live",shouldMatch:!0},{uri:"https://domain.org/live/",shouldMatch:!0}]},{"../enums":135}],131:[function(e,t,r){const i=e("../enums"),o=/^https:\/\/(?:www\.)?reddit\.com\/user\/(.*)\/comments\/(.*)\/(.*)\/?/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"web",name:"reddit"},match:{regularExpression:o,isAmbiguous:!1},profile:{display:t[1],uri:"https://www.reddit.com/user/"+t[1],qr:null},proof:{uri:e,request:{fetcher:i.Fetcher.HTTP,access:i.ProofAccess.NOCORS,format:i.ProofFormat.JSON,data:{url:`https://www.reddit.com/user/${t[1]}/comments/${t[2]}.json`,format:i.ProofFormat.JSON}}},claim:{format:i.ClaimFormat.MESSAGE,relation:i.ClaimRelation.CONTAINS,path:["data","children","data","selftext"]}}},r.tests=[{uri:"https://www.reddit.com/user/Alice/comments/123456/post",shouldMatch:!0},{uri:"https://www.reddit.com/user/Alice/comments/123456/post/",shouldMatch:!0},{uri:"https://reddit.com/user/Alice/comments/123456/post",shouldMatch:!0},{uri:"https://reddit.com/user/Alice/comments/123456/post/",shouldMatch:!0},{uri:"https://domain.org/user/Alice/comments/123456/post",shouldMatch:!1}]},{"../enums":135}],132:[function(e,t,r){const i=e("../enums"),o=/^https:\/\/twitter\.com\/(.*)\/status\/([0-9]*)(?:\?.*)?/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"web",name:"twitter"},match:{regularExpression:o,isAmbiguous:!1},profile:{display:"@"+t[1],uri:"https://twitter.com/"+t[1],qr:null},proof:{uri:e,request:{fetcher:i.Fetcher.TWITTER,access:i.ProofAccess.GRANTED,format:i.ProofFormat.TEXT,data:{tweetId:t[2]}}},claim:{format:i.ClaimFormat.MESSAGE,relation:i.ClaimRelation.CONTAINS,path:[]}}},r.tests=[{uri:"https://twitter.com/alice/status/1234567890123456789",shouldMatch:!0},{uri:"https://twitter.com/alice/status/1234567890123456789/",shouldMatch:!0},{uri:"https://domain.org/alice/status/1234567890123456789",shouldMatch:!1}]},{"../enums":135}],133:[function(e,t,r){const i=e("../enums"),o=/^xmpp:([a-zA-Z0-9.\-_]*)@([a-zA-Z0-9.\-_]*)(?:\?(.*))?/;r.reURI=o,r.processURI=e=>{const t=e.match(o);return{serviceprovider:{type:"communication",name:"xmpp"},match:{regularExpression:o,isAmbiguous:!1},profile:{display:`${t[1]}@${t[2]}`,uri:e,qr:e},proof:{uri:null,request:{fetcher:i.Fetcher.XMPP,access:i.ProofAccess.SERVER,format:i.ProofFormat.TEXT,data:{id:`${t[1]}@${t[2]}`,field:"note"}}},claim:{format:i.ClaimFormat.MESSAGE,relation:i.ClaimRelation.CONTAINS,path:[]}}},r.tests=[{uri:"xmpp:alice@domain.org",shouldMatch:!0},{uri:"xmpp:alice@domain.org?omemo-sid-123456789=A1B2C3D4E5F6G7H8I9",shouldMatch:!0},{uri:"https://domain.org",shouldMatch:!1}]},{"../enums":135}],134:[function(e,t,r){const i={proxy:{hostname:null,policy:e("./enums").ProxyPolicy.NEVER},claims:{irc:{nick:null},matrix:{instance:null,accessToken:null},xmpp:{service:null,username:null,password:null},twitter:{bearerToken:null}}};r.opts=i},{"./enums":135}],135:[function(e,t,r){const i={ADAPTIVE:"adaptive",ALWAYS:"always",NEVER:"never"};Object.freeze(i);const o={HTTP:"http",DNS:"dns",IRC:"irc",XMPP:"xmpp",MATRIX:"matrix",GITLAB:"gitlab",TWITTER:"twitter"};Object.freeze(o);const n={GENERIC:0,NOCORS:1,GRANTED:2,SERVER:3};Object.freeze(n);const s={JSON:"json",TEXT:"text"};Object.freeze(s);const a={URI:0,FINGERPRINT:1,MESSAGE:2};Object.freeze(a);const u={CONTAINS:0,EQUALS:1,ONEOF:2};Object.freeze(u);const l={INIT:"init",MATCHED:"matched",VERIFIED:"verified"};Object.freeze(l),r.ProxyPolicy=i,r.Fetcher=o,r.ProofAccess=n,r.ProofFormat=s,r.ClaimFormat=a,r.ClaimRelation=u,r.ClaimStatus=l},{}],136:[function(e,t,r){const i=e("browser-or-node");if(t.exports.timeout=5e3,i.isNode){const r=e("dns");t.exports.fn=async(e,i)=>{let o;const n=new Promise(((r,i)=>{o=setTimeout((()=>i(new Error("Request was timed out"))),e.fetcherTimeout?e.fetcherTimeout:t.exports.timeout)})),s=new Promise(((t,i)=>{r.resolveTxt(e.domain,((r,o)=>{r?i(r):t({domain:e.domain,records:{txt:o}})}))}));return Promise.race([s,n]).then((e=>(clearTimeout(o),e)))}}else t.exports.fn=null},{"browser-or-node":3,dns:4}],137:[function(e,t,r){const i=e("bent")("GET");t.exports.timeout=5e3,t.exports.fn=async(e,r)=>{let o;const n=new Promise(((r,i)=>{o=setTimeout((()=>i(new Error("Request was timed out"))),e.fetcherTimeout?e.fetcherTimeout:t.exports.timeout)})),s=new Promise(((t,r)=>{const o=`https://${e.domain}/api/v4/users?username=${e.username}`;t(i(o,null,{Accept:"application/json"}).then((e=>e.json())).then((t=>t.find((t=>t.username===e.username)))).then((t=>{if(!t)throw new Error("No user with username "+e.username);return t})).then((t=>{const r=`https://${e.domain}/api/v4/users/${t.id}/projects`;return i(r,null,{Accept:"application/json"})})).then((e=>e.json())).then((e=>e.find((e=>"gitlab_proof"===e.path)))).then((e=>{if(!e)throw new Error("No project found");return e})).catch((e=>{r(e)})))}));return Promise.race([s,n]).then((e=>(clearTimeout(o),e)))}},{bent:1}],138:[function(e,t,r){const i=e("bent")("GET"),o=e("../enums");t.exports.timeout=5e3,t.exports.fn=async(r,n)=>{let s;const a=new Promise(((e,i)=>{s=setTimeout((()=>i(new Error("Request was timed out"))),r.fetcherTimeout?r.fetcherTimeout:t.exports.timeout)})),u=new Promise(((t,n)=>{if(r.url)switch(r.format){case o.ProofFormat.JSON:i(r.url,null,{Accept:"application/json","User-Agent":"doipjs/"+e("../../package.json").version}).then((async e=>await e.json())).then((e=>{t(e)})).catch((e=>{n(e)}));break;case o.ProofFormat.TEXT:i(r.url).then((async e=>await e.text())).then((e=>{t(e)})).catch((e=>{n(e)}));break;default:n(new Error("No specified data format"))}else n(new Error("No valid URI provided"))}));return Promise.race([u,a]).then((e=>(clearTimeout(s),e)))}},{"../../package.json":113,"../enums":135,bent:1}],139:[function(e,t,r){r.dns=e("./dns"),r.gitlab=e("./gitlab"),r.http=e("./http"),r.irc=e("./irc"),r.matrix=e("./matrix"),r.twitter=e("./twitter"),r.xmpp=e("./xmpp")},{"./dns":136,"./gitlab":137,"./http":138,"./irc":140,"./matrix":141,"./twitter":142,"./xmpp":143}],140:[function(e,t,r){const i=e("browser-or-node");if(t.exports.timeout=2e4,i.isNode){const r=e("irc-upd"),i=e("validator");t.exports.fn=async(e,o)=>{let n;const s=new Promise(((r,i)=>{n=setTimeout((()=>i(new Error("Request was timed out"))),e.fetcherTimeout?e.fetcherTimeout:t.exports.timeout)})),a=new Promise(((t,n)=>{try{i.isAscii(o.claims.irc.nick)}catch(e){throw new Error(`IRC fetcher was not set up properly (${e.message})`)}try{const i=new r.Client(e.domain,o.claims.irc.nick,{port:6697,secure:!0,channels:[],showErrors:!1,debug:!1}),n=/[a-zA-Z0-9\-_]+\s+:\s(openpgp4fpr:.*)/,s=/End\sof\s.*\staxonomy./,a=[];i.addListener("registered",(t=>{i.send("PRIVMSG NickServ TAXONOMY "+e.nick)})),i.addListener("notice",((e,r,o,u)=>{if(n.test(o)){const e=o.match(n);a.push(e[1])}s.test(o)&&(i.disconnect(),t(a))}))}catch(e){n(e)}}));return Promise.race([a,s]).then((e=>(clearTimeout(n),e)))}}else t.exports.fn=null},{"browser-or-node":3,"irc-upd":"irc-upd",validator:14}],141:[function(e,t,r){const i=e("bent")("GET"),o=e("validator");t.exports.timeout=5e3,t.exports.fn=async(e,r)=>{let n;const s=new Promise(((r,i)=>{n=setTimeout((()=>i(new Error("Request was timed out"))),e.fetcherTimeout?e.fetcherTimeout:t.exports.timeout)})),a=new Promise(((t,n)=>{try{o.isFQDN(r.claims.matrix.instance),o.isAscii(r.claims.matrix.accessToken)}catch(e){throw new Error(`Matrix fetcher was not set up properly (${e.message})`)}const s=`https://${r.claims.matrix.instance}/_matrix/client/r0/rooms/${e.roomId}/event/${e.eventId}?access_token=${r.claims.matrix.accessToken}`;i(s,null,{Accept:"application/json"}).then((async e=>await e.json())).then((e=>{t(e)})).catch((e=>{n(e)}))}));return Promise.race([a,s]).then((e=>(clearTimeout(n),e)))}},{bent:1,validator:14}],142:[function(e,t,r){const i=e("bent")("GET"),o=e("validator");t.exports.timeout=5e3,t.exports.fn=async(e,r)=>{let n;const s=new Promise(((r,i)=>{n=setTimeout((()=>i(new Error("Request was timed out"))),e.fetcherTimeout?e.fetcherTimeout:t.exports.timeout)})),a=new Promise(((t,n)=>{try{o.isAscii(r.claims.twitter.bearerToken)}catch(e){throw new Error(`Twitter fetcher was not set up properly (${e.message})`)}i(`https://api.twitter.com/1.1/statuses/show.json?id=${e.tweetId}&tweet_mode=extended`,null,{Accept:"application/json",Authorization:"Bearer "+r.claims.twitter.bearerToken}).then((async e=>await e.json())).then((e=>{t(e.full_text)})).catch((e=>{n(e)}))}));return Promise.race([a,s]).then((e=>(clearTimeout(n),e)))}},{bent:1,validator:14}],143:[function(e,t,r){(function(r){(function(){const i=e("browser-or-node");if(t.exports.timeout=5e3,i.isNode){const i=e("jsdom"),{client:o,xml:n}=e("@xmpp/client"),s=e("@xmpp/debug"),a=e("validator");let u=null,l=null;const c=async(e,t,i)=>new Promise(((n,a)=>{const u=o({service:e,username:t,password:i});"production"!==r.env.NODE_ENV&&s(u,!0);const{iqCaller:l}=u;u.start(),u.on("online",(e=>{n({xmpp:u,iqCaller:l})})),u.on("error",(e=>{a(e)}))}));t.exports.fn=async(e,r)=>{try{a.isFQDN(r.claims.xmpp.service),a.isAscii(r.claims.xmpp.username),a.isAscii(r.claims.xmpp.password)}catch(e){throw new Error(`XMPP fetcher was not set up properly (${e.message})`)}if(!u||"online"!==u.status){const e=await c(r.claims.xmpp.service,r.claims.xmpp.username,r.claims.xmpp.password);u=e.xmpp,l=e.iqCaller}const o=(await l.request(n("iq",{type:"get",to:e.id},n("vCard","vcard-temp")),3e4)).getChild("vCard","vcard-temp").toString(),s=new i.JSDOM(o);let f;const d=new Promise(((r,i)=>{f=setTimeout((()=>i(new Error("Request was timed out"))),e.fetcherTimeout?e.fetcherTimeout:t.exports.timeout)})),p=new Promise(((t,r)=>{try{let r;switch(e.field.toLowerCase()){case"desc":case"note":if(r=s.window.document.querySelector("note text"),r||(r=s.window.document.querySelector("DESC")),!r)throw new Error("No DESC or NOTE field found in vCard");r=r.textContent;break;default:r=s.window.document.querySelector(e).textContent}u.stop(),t(r)}catch(e){r(e)}}));return Promise.race([p,d]).then((e=>(clearTimeout(f),e)))}}else t.exports.fn=null}).call(this)}).call(this,e("_process"))},{"@xmpp/client":"@xmpp/client","@xmpp/debug":"@xmpp/debug",_process:9,"browser-or-node":3,jsdom:"jsdom",validator:14}],144:[function(e,t,r){const i=e("./claim"),o=e("./claimDefinitions"),n=e("./proofs"),s=e("./keys"),a=e("./signatures"),u=e("./enums"),l=e("./defaults"),c=e("./utils");r.Claim=i,r.claimDefinitions=o,r.proofs=n,r.keys=s,r.signatures=a,r.enums=u,r.defaults=l,r.utils=c},{"./claim":114,"./claimDefinitions":123,"./defaults":134,"./enums":135,"./keys":145,"./proofs":146,"./signatures":147,"./utils":148}],145:[function(e,t,r){(function(t){(function(){const i=e("bent")("GET"),o=e("valid-url"),n="undefined"!=typeof window?window.openpgp:void 0!==t?t.openpgp:null,s=e("./claim");r.fetchHKP=async(e,t)=>{const r=t?"https://"+t:"https://keys.openpgp.org",i=new n.HKP(r),o={query:e},s=await i.lookup(o).catch((e=>{throw new Error(`Key does not exist or could not be fetched (${e})`)}));if(!s)throw new Error("Key does not exist or could not be fetched");return await n.key.readArmored(s).then((e=>e.keys[0])).catch((e=>{throw new Error(`Key does not exist or could not be fetched (${e})`)}))},r.fetchWKD=async e=>{const t=new n.WKD,r={email:e};return await t.lookup(r).then((e=>e.keys[0])).catch((e=>{throw new Error(`Key does not exist or could not be fetched (${e})`)}))},r.fetchKeybase=async(e,t)=>{const r=`https://keybase.io/${e}/pgp_keys.asc?fingerprint=${t}`;let o;try{o=await i(r).then((e=>{if(200===e.status)return e})).then((e=>e.text()))}catch(e){throw new Error("Error fetching Keybase key: "+e.message)}return await n.key.readArmored(o).then((e=>e.keys[0])).catch((e=>{throw new Error(`Key does not exist or could not be fetched (${e})`)}))},r.fetchPlaintext=async e=>(await n.key.readArmored(e)).keys[0],r.fetchURI=async e=>{if(!o.isUri(e))throw new Error("Invalid URI");const t=e.match(/([a-zA-Z0-9]*):([a-zA-Z0-9@._=+-]*)(?::([a-zA-Z0-9@._=+-]*))?/);if(!t[1])throw new Error("Invalid URI");switch(t[1]){case"hkp":return r.fetchHKP(t[3]?t[3]:t[2],t[3]?t[2]:null);case"wkd":return r.fetchWKD(t[2]);case"kb":return r.fetchKeybase(t[2],t.length>=4?t[3]:null);default:throw new Error("Invalid URI protocol")}},r.process=async e=>{if(!(e&&e instanceof n.key.Key))throw new Error("Invalid public key");const t=await e.primaryKey.getFingerprint(),r=await e.getPrimaryUser(),i=e.users,o=[];return i.forEach(((e,i)=>{if(o[i]={userData:{id:e.userId?e.userId.userid:null,name:e.userId?e.userId.name:null,email:e.userId?e.userId.email:null,comment:e.userId?e.userId.comment:null,isPrimary:r.index===i,isRevoked:!1},claims:[]},"selfCertifications"in e&&e.selfCertifications.length>0){const r=e.selfCertifications[0],a=r.rawNotations;o[i].claims=a.filter((({name:e,humanReadable:t})=>t&&("proof@ariadne.id"===e||"proof@metacode.biz"===e))).map((({value:e})=>new s(n.util.decode_utf8(e),t))),o[i].userData.isRevoked=r.revoked}})),{fingerprint:t,users:o,primaryUserIndex:r.index,key:{data:e,fetchMethod:null,uri:null}}}}).call(this)}).call(this,void 0!==i?i:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./claim":114,bent:1,"valid-url":13}],146:[function(e,t,r){const i=e("browser-or-node"),o=e("./fetcher"),n=e("./utils"),s=e("./enums"),a=(e,t)=>new Promise(((r,i)=>{o[e.proof.request.fetcher].fn(e.proof.request.data,t).then((t=>r({fetcher:e.proof.request.fetcher,data:e,viaProxy:!1,result:t}))).catch((e=>i(e)))})),u=(e,t)=>new Promise(((r,i)=>{let s;try{s=n.generateProxyURL(e.proof.request.fetcher,e.proof.request.data,t)}catch(e){i(e)}const a={url:s,format:e.proof.request.format,fetcherTimeout:o[e.proof.request.fetcher].timeout};o.http.fn(a,t).then((t=>r({fetcher:"http",data:e,viaProxy:!0,result:t}))).catch((e=>i(e)))})),l=(e,t)=>new Promise(((r,i)=>{a(e,t).then((e=>r(e))).catch((o=>{u(e,t).then((e=>r(e))).catch((e=>i(e)))}))}));r.fetch=(e,t)=>(e.proof.request.fetcher===s.Fetcher.HTTP&&(e.proof.request.data.format=e.proof.request.format),i.isNode?((e,t)=>{switch(t.proxy.policy){case s.ProxyPolicy.ALWAYS:return u(e,t);case s.ProxyPolicy.NEVER:return a(e,t);case s.ProxyPolicy.ADAPTIVE:return l(e,t);default:throw new Error("Invalid proxy policy")}})(e,t):((e,t)=>{switch(t.proxy.policy){case s.ProxyPolicy.ALWAYS:return u(e,t);case s.ProxyPolicy.NEVER:switch(e.proof.request.access){case s.ProofAccess.GENERIC:case s.ProofAccess.GRANTED:return a(e,t);case s.ProofAccess.NOCORS:case s.ProofAccess.SERVER:throw new Error("Impossible to fetch proof (bad combination of service access and proxy policy)");default:throw new Error("Invalid proof access value")}case s.ProxyPolicy.ADAPTIVE:switch(e.proof.request.access){case s.ProofAccess.GENERIC:return l(e,t);case s.ProofAccess.NOCORS:return u(e,t);case s.ProofAccess.GRANTED:return l(e,t);case s.ProofAccess.SERVER:return u(e,t);default:throw new Error("Invalid proof access value")}default:throw new Error("Invalid proxy policy")}})(e,t))},{"./enums":135,"./fetcher":139,"./utils":148,"browser-or-node":3}],147:[function(e,t,r){(function(t){(function(){const i="undefined"!=typeof window?window.openpgp:void 0!==t?t.openpgp:null,o=e("./claim"),n=e("./keys");r.process=async e=>{let t;const r={fingerprint:null,users:[{userData:{},claims:[]}],primaryUserIndex:null,key:{data:null,fetchMethod:null,uri:null}};try{t=await i.cleartext.readArmored(e)}catch(e){throw new Error("invalid_signature")}const s=t.signature.packets[0].issuerKeyId.toHex(),a=t.signature.packets[0].signersUserId,u=t.signature.packets[0].preferredKeyServer||"https://keys.openpgp.org/",l=t.getText(),c=[];if(l.split("\n").forEach(((e,t)=>{const i=e.match(/^([a-zA-Z0-9]*)=(.*)$/i);if(i)switch(i[1].toLowerCase()){case"key":c.push(i[2]);break;case"proof":r.users[0].claims.push(new o(i[2]))}})),c.length>0)try{r.key.uri=c[0],r.key.data=await n.fetchURI(r.key.uri),r.key.fetchMethod=r.key.uri.split(":")[0]}catch(e){}if(!r.key.data&&a)try{r.key.uri="wkd:"+a,r.key.data=await n.fetchURI(r.key.uri),r.key.fetchMethod="wkd"}catch(e){}if(!r.key.data)try{const e=u.match(/^(.*:\/\/)?([^/]*)(?:\/)?$/i);r.key.uri=`hkp:${e[2]}:${s||a}`,r.key.data=await n.fetchURI(r.key.uri),r.key.fetchMethod="hkp"}catch(e){throw new Error("key_not_found")}r.fingerprint=r.key.data.keyPacket.getFingerprint(),r.users[0].claims.forEach((e=>{e.fingerprint=r.fingerprint}));const f=await r.key.data.getPrimaryUser();let d;return a&&r.key.data.users.forEach((e=>{e.userId.email===a&&(d=e)})),d||(d=f.user),r.users[0].userData={id:d.userId?d.userId.userid:null,name:d.userId?d.userId.name:null,email:d.userId?d.userId.email:null,comment:d.userId?d.userId.comment:null,isPrimary:f.user.userId.userid===d.userId.userid},r.primaryUserIndex=r.users[0].userData.isPrimary?0:null,r}}).call(this)}).call(this,void 0!==i?i:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./claim":114,"./keys":145}],148:[function(e,t,r){const i=e("validator"),o=e("./enums");r.generateProxyURL=(e,t,r)=>{try{i.isFQDN(r.proxy.hostname)}catch(e){throw new Error("Invalid proxy hostname")}const o=[];return Object.keys(t).forEach((e=>{o.push(`${e}=${encodeURIComponent(t[e])}`)})),`https://${r.proxy.hostname}/api/2/get/${e}?${o.join("&")}`},r.generateClaim=(e,t)=>{switch(t){case o.ClaimFormat.URI:return"openpgp4fpr:"+e;case o.ClaimFormat.MESSAGE:return`[Verifying my OpenPGP key: openpgp4fpr:${e}]`;case o.ClaimFormat.FINGERPRINT:return e;default:throw new Error("No valid claim format")}}},{"./enums":135,validator:14}],149:[function(e,t,r){const i=e("./utils"),o=e("./enums"),n=(e,t,r,i)=>{let s;if(!e)return!1;if(Array.isArray(e)){let o=!1;return e.forEach(((e,s)=>{o||(o=n(e,t,r,i))})),o}if(0===t.length)switch(i){case o.ClaimRelation.EQUALS:return e.replace(/\r?\n|\r|\\/g,"").toLowerCase()===r.toLowerCase();case o.ClaimRelation.ONEOF:return s=new RegExp(r,"gi"),s.test(e.join("|"));case o.ClaimRelation.CONTAINS:default:return s=new RegExp(r,"gi"),s.test(e.replace(/\r?\n|\r|\\/g,""))}if(!(t[0]in e))throw new Error("err_json_structure_incorrect");return n(e[t[0]],t.slice(1),r,i)};r.run=(e,t,r)=>{const s={result:!1,completed:!1,errors:[]};switch(t.proof.request.format){case o.ProofFormat.JSON:try{s.result=n(e,t.claim.path,i.generateClaim(r,t.claim.format),t.claim.relation),s.completed=!0}catch(e){s.errors.push(e.message?e.message:e)}break;case o.ProofFormat.TEXT:try{const o=new RegExp(i.generateClaim(r,t.claim.format).replace("[","\\[").replace("]","\\]"),"gi");s.result=o.test(e.replace(/\r?\n|\r/,"")),s.completed=!0}catch(e){s.errors.push("err_unknown_text_verification")}}return s}},{"./enums":135,"./utils":148}]},{},[144])(144)}))}).call(this)}).call(this,void 0!==i?i:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1])(1)}))}).call(this)}).call(this,void 0!==i?i:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1])(1)}))}).call(this)}).call(this,void 0!==i?i:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1])(1)}))}).call(this)}).call(this,void 0!==i?i:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1])(1)}))}).call(this)}).call(this,void 0!==i?i:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1])(1)}))}).call(this)}).call(this,void 0!==i?i:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1])(1)}))}).call(this)}).call(this,void 0!==i?i:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1])(1)}))}).call(this)}).call(this,void 0!==i?i:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1])(1)}))}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1])(1)}));
+!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).doip=e()}}((function(){return function e(t,r,n){function i(a,s){if(!r[a]){if(!t[a]){var u="function"==typeof require&&require;if(!s&&u)return u(a,!0);if(o)return o(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var c=r[a]={exports:{}};t[a][0].call(c.exports,(function(e){return i(t[a][1][e]||e)}),c,c.exports,e,t,r,n)}return r[a].exports}for(var o="function"==typeof require&&require,a=0;a<n.length;a++)i(n[a]);return i}({1:[function(e,t,r){t.exports=e("./lib/axios")},{"./lib/axios":3}],2:[function(e,t,r){"use strict";var n=e("./../utils"),i=e("./../core/settle"),o=e("./../helpers/cookies"),a=e("./../helpers/buildURL"),s=e("../core/buildFullPath"),u=e("./../helpers/parseHeaders"),l=e("./../helpers/isURLSameOrigin"),c=e("../core/createError"),d=e("../defaults"),f=e("../cancel/Cancel");t.exports=function(e){return new Promise((function(t,r){var p,h=e.data,m=e.headers,g=e.responseType;function v(){e.cancelToken&&e.cancelToken.unsubscribe(p),e.signal&&e.signal.removeEventListener("abort",p)}n.isFormData(h)&&delete m["Content-Type"];var b=new XMLHttpRequest;if(e.auth){var y=e.auth.username||"",S=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";m.Authorization="Basic "+btoa(y+":"+S)}var A=s(e.baseURL,e.url);function _(){if(b){var n="getAllResponseHeaders"in b?u(b.getAllResponseHeaders()):null,o={data:g&&"text"!==g&&"json"!==g?b.response:b.responseText,status:b.status,statusText:b.statusText,headers:n,config:e,request:b};i((function(e){t(e),v()}),(function(e){r(e),v()}),o),b=null}}if(b.open(e.method.toUpperCase(),a(A,e.params,e.paramsSerializer),!0),b.timeout=e.timeout,"onloadend"in b?b.onloadend=_:b.onreadystatechange=function(){b&&4===b.readyState&&(0!==b.status||b.responseURL&&0===b.responseURL.indexOf("file:"))&&setTimeout(_)},b.onabort=function(){b&&(r(c("Request aborted",e,"ECONNABORTED",b)),b=null)},b.onerror=function(){r(c("Network Error",e,null,b)),b=null},b.ontimeout=function(){var t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded",n=e.transitional||d.transitional;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),r(c(t,e,n.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",b)),b=null},n.isStandardBrowserEnv()){var E=(e.withCredentials||l(A))&&e.xsrfCookieName?o.read(e.xsrfCookieName):void 0;E&&(m[e.xsrfHeaderName]=E)}"setRequestHeader"in b&&n.forEach(m,(function(e,t){void 0===h&&"content-type"===t.toLowerCase()?delete m[t]:b.setRequestHeader(t,e)})),n.isUndefined(e.withCredentials)||(b.withCredentials=!!e.withCredentials),g&&"json"!==g&&(b.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&b.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&b.upload&&b.upload.addEventListener("progress",e.onUploadProgress),(e.cancelToken||e.signal)&&(p=function(e){b&&(r(!e||e&&e.type?new f("canceled"):e),b.abort(),b=null)},e.cancelToken&&e.cancelToken.subscribe(p),e.signal&&(e.signal.aborted?p():e.signal.addEventListener("abort",p))),h||(h=null),b.send(h)}))}},{"../cancel/Cancel":4,"../core/buildFullPath":9,"../core/createError":10,"../defaults":16,"./../core/settle":14,"./../helpers/buildURL":19,"./../helpers/cookies":21,"./../helpers/isURLSameOrigin":24,"./../helpers/parseHeaders":26,"./../utils":29}],3:[function(e,t,r){"use strict";var n=e("./utils"),i=e("./helpers/bind"),o=e("./core/Axios"),a=e("./core/mergeConfig");var s=function e(t){var r=new o(t),s=i(o.prototype.request,r);return n.extend(s,o.prototype,r),n.extend(s,r),s.create=function(r){return e(a(t,r))},s}(e("./defaults"));s.Axios=o,s.Cancel=e("./cancel/Cancel"),s.CancelToken=e("./cancel/CancelToken"),s.isCancel=e("./cancel/isCancel"),s.VERSION=e("./env/data").version,s.all=function(e){return Promise.all(e)},s.spread=e("./helpers/spread"),s.isAxiosError=e("./helpers/isAxiosError"),t.exports=s,t.exports.default=s},{"./cancel/Cancel":4,"./cancel/CancelToken":5,"./cancel/isCancel":6,"./core/Axios":7,"./core/mergeConfig":13,"./defaults":16,"./env/data":17,"./helpers/bind":18,"./helpers/isAxiosError":23,"./helpers/spread":27,"./utils":29}],4:[function(e,t,r){"use strict";function n(e){this.message=e}n.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},n.prototype.__CANCEL__=!0,t.exports=n},{}],5:[function(e,t,r){"use strict";var n=e("./Cancel");function i(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function(e){t=e}));var r=this;this.promise.then((function(e){if(r._listeners){var t,n=r._listeners.length;for(t=0;t<n;t++)r._listeners[t](e);r._listeners=null}})),this.promise.then=function(e){var t,n=new Promise((function(e){r.subscribe(e),t=e})).then(e);return n.cancel=function(){r.unsubscribe(t)},n},e((function(e){r.reason||(r.reason=new n(e),t(r.reason))}))}i.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},i.prototype.subscribe=function(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]},i.prototype.unsubscribe=function(e){if(this._listeners){var t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}},i.source=function(){var e;return{token:new i((function(t){e=t})),cancel:e}},t.exports=i},{"./Cancel":4}],6:[function(e,t,r){"use strict";t.exports=function(e){return!(!e||!e.__CANCEL__)}},{}],7:[function(e,t,r){"use strict";var n=e("./../utils"),i=e("../helpers/buildURL"),o=e("./InterceptorManager"),a=e("./dispatchRequest"),s=e("./mergeConfig"),u=e("../helpers/validator"),l=u.validators;function c(e){this.defaults=e,this.interceptors={request:new o,response:new o}}c.prototype.request=function(e,t){if("string"==typeof e?(t=t||{}).url=e:t=e||{},!t.url)throw new Error("Provided config url is not valid");(t=s(this.defaults,t)).method?t.method=t.method.toLowerCase():this.defaults.method?t.method=this.defaults.method.toLowerCase():t.method="get";var r=t.transitional;void 0!==r&&u.assertOptions(r,{silentJSONParsing:l.transitional(l.boolean),forcedJSONParsing:l.transitional(l.boolean),clarifyTimeoutError:l.transitional(l.boolean)},!1);var n=[],i=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(i=i&&e.synchronous,n.unshift(e.fulfilled,e.rejected))}));var o,c=[];if(this.interceptors.response.forEach((function(e){c.push(e.fulfilled,e.rejected)})),!i){var d=[a,void 0];for(Array.prototype.unshift.apply(d,n),d=d.concat(c),o=Promise.resolve(t);d.length;)o=o.then(d.shift(),d.shift());return o}for(var f=t;n.length;){var p=n.shift(),h=n.shift();try{f=p(f)}catch(e){h(e);break}}try{o=a(f)}catch(e){return Promise.reject(e)}for(;c.length;)o=o.then(c.shift(),c.shift());return o},c.prototype.getUri=function(e){if(!e.url)throw new Error("Provided config url is not valid");return e=s(this.defaults,e),i(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},n.forEach(["delete","get","head","options"],(function(e){c.prototype[e]=function(t,r){return this.request(s(r||{},{method:e,url:t,data:(r||{}).data}))}})),n.forEach(["post","put","patch"],(function(e){c.prototype[e]=function(t,r,n){return this.request(s(n||{},{method:e,url:t,data:r}))}})),t.exports=c},{"../helpers/buildURL":19,"../helpers/validator":28,"./../utils":29,"./InterceptorManager":8,"./dispatchRequest":11,"./mergeConfig":13}],8:[function(e,t,r){"use strict";var n=e("./../utils");function i(){this.handlers=[]}i.prototype.use=function(e,t,r){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!r&&r.synchronous,runWhen:r?r.runWhen:null}),this.handlers.length-1},i.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},i.prototype.forEach=function(e){n.forEach(this.handlers,(function(t){null!==t&&e(t)}))},t.exports=i},{"./../utils":29}],9:[function(e,t,r){"use strict";var n=e("../helpers/isAbsoluteURL"),i=e("../helpers/combineURLs");t.exports=function(e,t){return e&&!n(t)?i(e,t):t}},{"../helpers/combineURLs":20,"../helpers/isAbsoluteURL":22}],10:[function(e,t,r){"use strict";var n=e("./enhanceError");t.exports=function(e,t,r,i,o){var a=new Error(e);return n(a,t,r,i,o)}},{"./enhanceError":12}],11:[function(e,t,r){"use strict";var n=e("./../utils"),i=e("./transformData"),o=e("../cancel/isCancel"),a=e("../defaults"),s=e("../cancel/Cancel");function u(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new s("canceled")}t.exports=function(e){return u(e),e.headers=e.headers||{},e.data=i.call(e,e.data,e.headers,e.transformRequest),e.headers=n.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),n.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete e.headers[t]})),(e.adapter||a.adapter)(e).then((function(t){return u(e),t.data=i.call(e,t.data,t.headers,e.transformResponse),t}),(function(t){return o(t)||(u(e),t&&t.response&&(t.response.data=i.call(e,t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))}},{"../cancel/Cancel":4,"../cancel/isCancel":6,"../defaults":16,"./../utils":29,"./transformData":15}],12:[function(e,t,r){"use strict";t.exports=function(e,t,r,n,i){return e.config=t,r&&(e.code=r),e.request=n,e.response=i,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null}},e}},{}],13:[function(e,t,r){"use strict";var n=e("../utils");t.exports=function(e,t){t=t||{};var r={};function i(e,t){return n.isPlainObject(e)&&n.isPlainObject(t)?n.merge(e,t):n.isPlainObject(t)?n.merge({},t):n.isArray(t)?t.slice():t}function o(r){return n.isUndefined(t[r])?n.isUndefined(e[r])?void 0:i(void 0,e[r]):i(e[r],t[r])}function a(e){if(!n.isUndefined(t[e]))return i(void 0,t[e])}function s(r){return n.isUndefined(t[r])?n.isUndefined(e[r])?void 0:i(void 0,e[r]):i(void 0,t[r])}function u(r){return r in t?i(e[r],t[r]):r in e?i(void 0,e[r]):void 0}var l={url:a,method:a,data:a,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,responseEncoding:s,validateStatus:u};return n.forEach(Object.keys(e).concat(Object.keys(t)),(function(e){var t=l[e]||o,i=t(e);n.isUndefined(i)&&t!==u||(r[e]=i)})),r}},{"../utils":29}],14:[function(e,t,r){"use strict";var n=e("./createError");t.exports=function(e,t,r){var i=r.config.validateStatus;r.status&&i&&!i(r.status)?t(n("Request failed with status code "+r.status,r.config,null,r.request,r)):e(r)}},{"./createError":10}],15:[function(e,t,r){"use strict";var n=e("./../utils"),i=e("./../defaults");t.exports=function(e,t,r){var o=this||i;return n.forEach(r,(function(r){e=r.call(o,e,t)})),e}},{"./../defaults":16,"./../utils":29}],16:[function(e,t,r){(function(r){(function(){"use strict";var n=e("./utils"),i=e("./helpers/normalizeHeaderName"),o=e("./core/enhanceError"),a={"Content-Type":"application/x-www-form-urlencoded"};function s(e,t){!n.isUndefined(e)&&n.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var u,l={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:("undefined"!=typeof XMLHttpRequest?u=e("./adapters/xhr"):void 0!==r&&"[object process]"===Object.prototype.toString.call(r)&&(u=e("./adapters/http")),u),transformRequest:[function(e,t){return i(t,"Accept"),i(t,"Content-Type"),n.isFormData(e)||n.isArrayBuffer(e)||n.isBuffer(e)||n.isStream(e)||n.isFile(e)||n.isBlob(e)?e:n.isArrayBufferView(e)?e.buffer:n.isURLSearchParams(e)?(s(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):n.isObject(e)||t&&"application/json"===t["Content-Type"]?(s(t,"application/json"),function(e,t,r){if(n.isString(e))try{return(t||JSON.parse)(e),n.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(r||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=this.transitional||l.transitional,r=t&&t.silentJSONParsing,i=t&&t.forcedJSONParsing,a=!r&&"json"===this.responseType;if(a||i&&n.isString(e)&&e.length)try{return JSON.parse(e)}catch(e){if(a){if("SyntaxError"===e.name)throw o(e,this,"E_JSON_PARSE");throw e}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};n.forEach(["delete","get","head"],(function(e){l.headers[e]={}})),n.forEach(["post","put","patch"],(function(e){l.headers[e]=n.merge(a)})),t.exports=l}).call(this)}).call(this,e("_process"))},{"./adapters/http":2,"./adapters/xhr":2,"./core/enhanceError":12,"./helpers/normalizeHeaderName":25,"./utils":29,_process:36}],17:[function(e,t,r){t.exports={version:"0.25.0"}},{}],18:[function(e,t,r){"use strict";t.exports=function(e,t){return function(){for(var r=new Array(arguments.length),n=0;n<r.length;n++)r[n]=arguments[n];return e.apply(t,r)}}},{}],19:[function(e,t,r){"use strict";var n=e("./../utils");function i(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}t.exports=function(e,t,r){if(!t)return e;var o;if(r)o=r(t);else if(n.isURLSearchParams(t))o=t.toString();else{var a=[];n.forEach(t,(function(e,t){null!=e&&(n.isArray(e)?t+="[]":e=[e],n.forEach(e,(function(e){n.isDate(e)?e=e.toISOString():n.isObject(e)&&(e=JSON.stringify(e)),a.push(i(t)+"="+i(e))})))})),o=a.join("&")}if(o){var s=e.indexOf("#");-1!==s&&(e=e.slice(0,s)),e+=(-1===e.indexOf("?")?"?":"&")+o}return e}},{"./../utils":29}],20:[function(e,t,r){"use strict";t.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},{}],21:[function(e,t,r){"use strict";var n=e("./../utils");t.exports=n.isStandardBrowserEnv()?{write:function(e,t,r,i,o,a){var s=[];s.push(e+"="+encodeURIComponent(t)),n.isNumber(r)&&s.push("expires="+new Date(r).toGMTString()),n.isString(i)&&s.push("path="+i),n.isString(o)&&s.push("domain="+o),!0===a&&s.push("secure"),document.cookie=s.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},{"./../utils":29}],22:[function(e,t,r){"use strict";t.exports=function(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}},{}],23:[function(e,t,r){"use strict";var n=e("./../utils");t.exports=function(e){return n.isObject(e)&&!0===e.isAxiosError}},{"./../utils":29}],24:[function(e,t,r){"use strict";var n=e("./../utils");t.exports=n.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a");function i(e){var n=e;return t&&(r.setAttribute("href",n),n=r.href),r.setAttribute("href",n),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:"/"===r.pathname.charAt(0)?r.pathname:"/"+r.pathname}}return e=i(window.location.href),function(t){var r=n.isString(t)?i(t):t;return r.protocol===e.protocol&&r.host===e.host}}():function(){return!0}},{"./../utils":29}],25:[function(e,t,r){"use strict";var n=e("../utils");t.exports=function(e,t){n.forEach(e,(function(r,n){n!==t&&n.toUpperCase()===t.toUpperCase()&&(e[t]=r,delete e[n])}))}},{"../utils":29}],26:[function(e,t,r){"use strict";var n=e("./../utils"),i=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];t.exports=function(e){var t,r,o,a={};return e?(n.forEach(e.split("\n"),(function(e){if(o=e.indexOf(":"),t=n.trim(e.substr(0,o)).toLowerCase(),r=n.trim(e.substr(o+1)),t){if(a[t]&&i.indexOf(t)>=0)return;a[t]="set-cookie"===t?(a[t]?a[t]:[]).concat([r]):a[t]?a[t]+", "+r:r}})),a):a}},{"./../utils":29}],27:[function(e,t,r){"use strict";t.exports=function(e){return function(t){return e.apply(null,t)}}},{}],28:[function(e,t,r){"use strict";var n=e("../env/data").version,i={};["object","boolean","number","function","string","symbol"].forEach((function(e,t){i[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}}));var o={};i.transitional=function(e,t,r){function i(e,t){return"[Axios v"+n+"] Transitional option '"+e+"'"+t+(r?". "+r:"")}return function(r,n,a){if(!1===e)throw new Error(i(n," has been removed"+(t?" in "+t:"")));return t&&!o[n]&&(o[n]=!0,console.warn(i(n," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(r,n,a)}},t.exports={assertOptions:function(e,t,r){if("object"!=typeof e)throw new TypeError("options must be an object");for(var n=Object.keys(e),i=n.length;i-- >0;){var o=n[i],a=t[o];if(a){var s=e[o],u=void 0===s||a(s,o,e);if(!0!==u)throw new TypeError("option "+o+" must be "+u)}else if(!0!==r)throw Error("Unknown option "+o)}},validators:i}},{"../env/data":17}],29:[function(e,t,r){"use strict";var n=e("./helpers/bind"),i=Object.prototype.toString;function o(e){return Array.isArray(e)}function a(e){return void 0===e}function s(e){return"[object ArrayBuffer]"===i.call(e)}function u(e){return null!==e&&"object"==typeof e}function l(e){if("[object Object]"!==i.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function c(e){return"[object Function]"===i.call(e)}function d(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),o(e))for(var r=0,n=e.length;r<n;r++)t.call(null,e[r],r,e);else for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.call(null,e[i],i,e)}t.exports={isArray:o,isArrayBuffer:s,isBuffer:function(e){return null!==e&&!a(e)&&null!==e.constructor&&!a(e.constructor)&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)},isFormData:function(e){return"[object FormData]"===i.call(e)},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&s(e.buffer)},isString:function(e){return"string"==typeof e},isNumber:function(e){return"number"==typeof e},isObject:u,isPlainObject:l,isUndefined:a,isDate:function(e){return"[object Date]"===i.call(e)},isFile:function(e){return"[object File]"===i.call(e)},isBlob:function(e){return"[object Blob]"===i.call(e)},isFunction:c,isStream:function(e){return u(e)&&c(e.pipe)},isURLSearchParams:function(e){return"[object URLSearchParams]"===i.call(e)},isStandardBrowserEnv:function(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!=typeof window&&"undefined"!=typeof document)},forEach:d,merge:function e(){var t={};function r(r,n){l(t[n])&&l(r)?t[n]=e(t[n],r):l(r)?t[n]=e({},r):o(r)?t[n]=r.slice():t[n]=r}for(var n=0,i=arguments.length;n<i;n++)d(arguments[n],r);return t},extend:function(e,t,r){return d(t,(function(t,i){e[i]=r&&"function"==typeof t?n(t,r):t})),e},trim:function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")},stripBOM:function(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),e}}},{"./helpers/bind":18}],30:[function(e,t,r){(function(e){(function(){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n="undefined"!=typeof window&&void 0!==window.document,i="object"===("undefined"==typeof self?"undefined":t(self))&&self.constructor&&"DedicatedWorkerGlobalScope"===self.constructor.name,o=void 0!==e&&null!=e.versions&&null!=e.versions.node;r.isBrowser=n,r.isWebWorker=i,r.isNode=o,r.isJsDom=function(){return"undefined"!=typeof window&&"nodejs"===window.name||navigator.userAgent.includes("Node.js")||navigator.userAgent.includes("jsdom")}}).call(this)}).call(this,e("_process"))},{_process:36}],31:[function(e,t,r){},{}],32:[function(e,t,r){"use strict";var n="%[a-f0-9]{2}",i=new RegExp(n,"gi"),o=new RegExp("("+n+")+","gi");function a(e,t){try{return decodeURIComponent(e.join(""))}catch(e){}if(1===e.length)return e;t=t||1;var r=e.slice(0,t),n=e.slice(t);return Array.prototype.concat.call([],a(r),a(n))}function s(e){try{return decodeURIComponent(e)}catch(n){for(var t=e.match(i),r=1;r<t.length;r++)t=(e=a(t,r).join("")).match(i);return e}}t.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected `encodedURI` to be of type `string`, got `"+typeof e+"`");try{return e=e.replace(/\+/g," "),decodeURIComponent(e)}catch(t){return function(e){for(var t={"%FE%FF":"��","%FF%FE":"��"},r=o.exec(e);r;){try{t[r[0]]=decodeURIComponent(r[0])}catch(e){var n=s(r[0]);n!==r[0]&&(t[r[0]]=n)}r=o.exec(e)}t["%C2"]="�";for(var i=Object.keys(t),a=0;a<i.length;a++){var u=i[a];e=e.replace(new RegExp(u,"g"),t[u])}return e}(e)}}},{}],33:[function(e,t,r){"use strict";t.exports=function(e,t){for(var r={},n=Object.keys(e),i=Array.isArray(t),o=0;o<n.length;o++){var a=n[o],s=e[a];(i?-1!==t.indexOf(a):t(a,s,e))&&(r[a]=s)}return r}},{}],34:[function(e,t,r){"use strict";t.exports=e=>{if("[object Object]"!==Object.prototype.toString.call(e))return!1;const t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}},{}],35:[function(e,t,r){"use strict";const n=e("is-plain-obj"),{hasOwnProperty:i}=Object.prototype,{propertyIsEnumerable:o}=Object,a=(e,t,r)=>Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0}),s=this,u={concatArrays:!1,ignoreUndefined:!1},l=e=>{const t=[];for(const r in e)i.call(e,r)&&t.push(r);if(Object.getOwnPropertySymbols){const r=Object.getOwnPropertySymbols(e);for(const n of r)o.call(e,n)&&t.push(n)}return t};function c(e){return Array.isArray(e)?function(e){const t=e.slice(0,0);return l(e).forEach((r=>{a(t,r,c(e[r]))})),t}(e):n(e)?function(e){const t=null===Object.getPrototypeOf(e)?Object.create(null):{};return l(e).forEach((r=>{a(t,r,c(e[r]))})),t}(e):e}const d=(e,t,r,n)=>(r.forEach((r=>{void 0===t[r]&&n.ignoreUndefined||(r in e&&e[r]!==Object.getPrototypeOf(e)?a(e,r,f(e[r],t[r],n)):a(e,r,c(t[r])))})),e);function f(e,t,r){return r.concatArrays&&Array.isArray(e)&&Array.isArray(t)?((e,t,r)=>{let n=e.slice(0,0),o=0;return[e,t].forEach((t=>{const s=[];for(let r=0;r<t.length;r++)i.call(t,r)&&(s.push(String(r)),a(n,o++,t===e?t[r]:c(t[r])));n=d(n,t,l(t).filter((e=>!s.includes(e))),r)})),n})(e,t,r):n(t)&&n(e)?d(e,t,l(t),r):c(t)}t.exports=function(...e){const t=f(c(u),this!==s&&this||{},u);let r={_:{}};for(const i of e)if(void 0!==i){if(!n(i))throw new TypeError("`"+i+"` is not an Option Object");r=f(r,{_:i},t)}return r._}},{"is-plain-obj":34}],36:[function(e,t,r){var n,i,o=t.exports={};function a(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function u(e){if(n===setTimeout)return setTimeout(e,0);if((n===a||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:a}catch(e){n=a}try{i="function"==typeof clearTimeout?clearTimeout:s}catch(e){i=s}}();var l,c=[],d=!1,f=-1;function p(){d&&l&&(d=!1,l.length?c=l.concat(c):f=-1,c.length&&h())}function h(){if(!d){var e=u(p);d=!0;for(var t=c.length;t;){for(l=c,c=[];++f<t;)l&&l[f].run();f=-1,t=c.length}l=null,d=!1,function(e){if(i===clearTimeout)return clearTimeout(e);if((i===s||!i)&&clearTimeout)return i=clearTimeout,clearTimeout(e);try{i(e)}catch(t){try{return i.call(null,e)}catch(t){return i.call(this,e)}}}(e)}}function m(e,t){this.fun=e,this.array=t}function g(){}o.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];c.push(new m(e,t)),1!==c.length||d||u(h)},m.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=g,o.addListener=g,o.once=g,o.off=g,o.removeListener=g,o.removeAllListeners=g,o.emit=g,o.prependListener=g,o.prependOnceListener=g,o.listeners=function(e){return[]},o.binding=function(e){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(e){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},{}],37:[function(e,t,r){"use strict";const n=e("strict-uri-encode"),i=e("decode-uri-component"),o=e("split-on-first"),a=e("filter-obj");function s(e){if("string"!=typeof e||1!==e.length)throw new TypeError("arrayFormatSeparator must be single character string")}function u(e,t){return t.encode?t.strict?n(e):encodeURIComponent(e):e}function l(e,t){return t.decode?i(e):e}function c(e){return Array.isArray(e)?e.sort():"object"==typeof e?c(Object.keys(e)).sort(((e,t)=>Number(e)-Number(t))).map((t=>e[t])):e}function d(e){const t=e.indexOf("#");return-1!==t&&(e=e.slice(0,t)),e}function f(e){const t=(e=d(e)).indexOf("?");return-1===t?"":e.slice(t+1)}function p(e,t){return t.parseNumbers&&!Number.isNaN(Number(e))&&"string"==typeof e&&""!==e.trim()?e=Number(e):!t.parseBooleans||null===e||"true"!==e.toLowerCase()&&"false"!==e.toLowerCase()||(e="true"===e.toLowerCase()),e}function h(e,t){s((t=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},t)).arrayFormatSeparator);const r=function(e){let t;switch(e.arrayFormat){case"index":return(e,r,n)=>{t=/\[(\d*)\]$/.exec(e),e=e.replace(/\[\d*\]$/,""),t?(void 0===n[e]&&(n[e]={}),n[e][t[1]]=r):n[e]=r};case"bracket":return(e,r,n)=>{t=/(\[\])$/.exec(e),e=e.replace(/\[\]$/,""),t?void 0!==n[e]?n[e]=[].concat(n[e],r):n[e]=[r]:n[e]=r};case"comma":case"separator":return(t,r,n)=>{const i="string"==typeof r&&r.includes(e.arrayFormatSeparator),o="string"==typeof r&&!i&&l(r,e).includes(e.arrayFormatSeparator);r=o?l(r,e):r;const a=i||o?r.split(e.arrayFormatSeparator).map((t=>l(t,e))):null===r?r:l(r,e);n[t]=a};default:return(e,t,r)=>{void 0!==r[e]?r[e]=[].concat(r[e],t):r[e]=t}}}(t),n=Object.create(null);if("string"!=typeof e)return n;if(!(e=e.trim().replace(/^[?#&]/,"")))return n;for(const i of e.split("&")){if(""===i)continue;let[e,a]=o(t.decode?i.replace(/\+/g," "):i,"=");a=void 0===a?null:["comma","separator"].includes(t.arrayFormat)?a:l(a,t),r(l(e,t),a,n)}for(const e of Object.keys(n)){const r=n[e];if("object"==typeof r&&null!==r)for(const e of Object.keys(r))r[e]=p(r[e],t);else n[e]=p(r,t)}return!1===t.sort?n:(!0===t.sort?Object.keys(n).sort():Object.keys(n).sort(t.sort)).reduce(((e,t)=>{const r=n[t];return Boolean(r)&&"object"==typeof r&&!Array.isArray(r)?e[t]=c(r):e[t]=r,e}),Object.create(null))}r.extract=f,r.parse=h,r.stringify=(e,t)=>{if(!e)return"";s((t=Object.assign({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},t)).arrayFormatSeparator);const r=r=>t.skipNull&&null==e[r]||t.skipEmptyString&&""===e[r],n=function(e){switch(e.arrayFormat){case"index":return t=>(r,n)=>{const i=r.length;return void 0===n||e.skipNull&&null===n||e.skipEmptyString&&""===n?r:null===n?[...r,[u(t,e),"[",i,"]"].join("")]:[...r,[u(t,e),"[",u(i,e),"]=",u(n,e)].join("")]};case"bracket":return t=>(r,n)=>void 0===n||e.skipNull&&null===n||e.skipEmptyString&&""===n?r:null===n?[...r,[u(t,e),"[]"].join("")]:[...r,[u(t,e),"[]=",u(n,e)].join("")];case"comma":case"separator":return t=>(r,n)=>null==n||0===n.length?r:0===r.length?[[u(t,e),"=",u(n,e)].join("")]:[[r,u(n,e)].join(e.arrayFormatSeparator)];default:return t=>(r,n)=>void 0===n||e.skipNull&&null===n||e.skipEmptyString&&""===n?r:null===n?[...r,u(t,e)]:[...r,[u(t,e),"=",u(n,e)].join("")]}}(t),i={};for(const t of Object.keys(e))r(t)||(i[t]=e[t]);const o=Object.keys(i);return!1!==t.sort&&o.sort(t.sort),o.map((r=>{const i=e[r];return void 0===i?"":null===i?u(r,t):Array.isArray(i)?i.reduce(n(r),[]).join("&"):u(r,t)+"="+u(i,t)})).filter((e=>e.length>0)).join("&")},r.parseUrl=(e,t)=>{t=Object.assign({decode:!0},t);const[r,n]=o(e,"#");return Object.assign({url:r.split("?")[0]||"",query:h(f(e),t)},t&&t.parseFragmentIdentifier&&n?{fragmentIdentifier:l(n,t)}:{})},r.stringifyUrl=(e,t)=>{t=Object.assign({encode:!0,strict:!0},t);const n=d(e.url).split("?")[0]||"",i=r.extract(e.url),o=r.parse(i,{sort:!1}),a=Object.assign(o,e.query);let s=r.stringify(a,t);s&&(s=`?${s}`);let l=function(e){let t="";const r=e.indexOf("#");return-1!==r&&(t=e.slice(r)),t}(e.url);return e.fragmentIdentifier&&(l=`#${u(e.fragmentIdentifier,t)}`),`${n}${s}${l}`},r.pick=(e,t,n)=>{n=Object.assign({parseFragmentIdentifier:!0},n);const{url:i,query:o,fragmentIdentifier:s}=r.parseUrl(e,n);return r.stringifyUrl({url:i,query:a(o,t),fragmentIdentifier:s},n)},r.exclude=(e,t,n)=>{const i=Array.isArray(t)?e=>!t.includes(e):(e,r)=>!t(e,r);return r.pick(e,i,n)}},{"decode-uri-component":32,"filter-obj":33,"split-on-first":38,"strict-uri-encode":39}],38:[function(e,t,r){"use strict";t.exports=(e,t)=>{if("string"!=typeof e||"string"!=typeof t)throw new TypeError("Expected the arguments to be of type `string`");if(""===t)return[e];const r=e.indexOf(t);return-1===r?[e]:[e.slice(0,r),e.slice(r+t.length)]}},{}],39:[function(e,t,r){"use strict";t.exports=e=>encodeURIComponent(e).replace(/[!'()*]/g,(e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`))},{}],40:[function(e,t,r){!function(e){"use strict";e.exports.is_uri=r,e.exports.is_http_uri=n,e.exports.is_https_uri=i,e.exports.is_web_uri=o,e.exports.isUri=r,e.exports.isHttpUri=n,e.exports.isHttpsUri=i,e.exports.isWebUri=o;var t=function(e){return e.match(/(?:([^:\/?#]+):)?(?:\/\/([^\/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?/)};function r(e){if(e&&!/[^a-z0-9\:\/\?\#\[\]\@\!\$\&\'\(\)\*\+\,\;\=\.\-\_\~\%]/i.test(e)&&!/%[^0-9a-f]/i.test(e)&&!/%[0-9a-f](:?[^0-9a-f]|$)/i.test(e)){var r,n,i,o,a,s="",u="";if(s=(r=t(e))[1],n=r[2],i=r[3],o=r[4],a=r[5],s&&s.length&&i.length>=0){if(n&&n.length){if(0!==i.length&&!/^\//.test(i))return}else if(/^\/\//.test(i))return;if(/^[a-z][a-z0-9\+\-\.]*$/.test(s.toLowerCase()))return u+=s+":",n&&n.length&&(u+="//"+n),u+=i,o&&o.length&&(u+="?"+o),a&&a.length&&(u+="#"+a),u}}}function n(e,n){if(r(e)){var i,o,a,s,u="",l="",c="",d="";if(u=(i=t(e))[1],l=i[2],o=i[3],a=i[4],s=i[5],u){if(n){if("https"!=u.toLowerCase())return}else if("http"!=u.toLowerCase())return;if(l)return/:(\d+)$/.test(l)&&(c=l.match(/:(\d+)$/)[0],l=l.replace(/:\d+$/,"")),d+=u+":",d+="//"+l,c&&(d+=c),d+=o,a&&a.length&&(d+="?"+a),s&&s.length&&(d+="#"+s),d}}}function i(e){return n(e,!0)}function o(e){return n(e)||i(e)}}(t)},{}],41:[function(e,t,r){"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var i=Ke(e("./lib/toDate")),o=Ke(e("./lib/toFloat")),a=Ke(e("./lib/toInt")),s=Ke(e("./lib/toBoolean")),u=Ke(e("./lib/equals")),l=Ke(e("./lib/contains")),c=Ke(e("./lib/matches")),d=Ke(e("./lib/isEmail")),f=Ke(e("./lib/isURL")),p=Ke(e("./lib/isMACAddress")),h=Ke(e("./lib/isIP")),m=Ke(e("./lib/isIPRange")),g=Ke(e("./lib/isFQDN")),v=Ke(e("./lib/isDate")),b=Ke(e("./lib/isBoolean")),y=Ke(e("./lib/isLocale")),S=He(e("./lib/isAlpha")),A=He(e("./lib/isAlphanumeric")),_=Ke(e("./lib/isNumeric")),E=Ke(e("./lib/isPassportNumber")),M=Ke(e("./lib/isPort")),w=Ke(e("./lib/isLowercase")),x=Ke(e("./lib/isUppercase")),$=Ke(e("./lib/isIMEI")),I=Ke(e("./lib/isAscii")),R=Ke(e("./lib/isFullWidth")),O=Ke(e("./lib/isHalfWidth")),P=Ke(e("./lib/isVariableWidth")),C=Ke(e("./lib/isMultibyte")),N=Ke(e("./lib/isSemVer")),T=Ke(e("./lib/isSurrogatePair")),F=Ke(e("./lib/isInt")),L=He(e("./lib/isFloat")),D=Ke(e("./lib/isDecimal")),B=Ke(e("./lib/isHexadecimal")),U=Ke(e("./lib/isOctal")),Z=Ke(e("./lib/isDivisibleBy")),j=Ke(e("./lib/isHexColor")),k=Ke(e("./lib/isRgbColor")),G=Ke(e("./lib/isHSL")),H=Ke(e("./lib/isISRC")),K=He(e("./lib/isIBAN")),W=Ke(e("./lib/isBIC")),Y=Ke(e("./lib/isMD5")),V=Ke(e("./lib/isHash")),q=Ke(e("./lib/isJWT")),z=Ke(e("./lib/isJSON")),J=Ke(e("./lib/isEmpty")),X=Ke(e("./lib/isLength")),Q=Ke(e("./lib/isByteLength")),ee=Ke(e("./lib/isUUID")),te=Ke(e("./lib/isMongoId")),re=Ke(e("./lib/isAfter")),ne=Ke(e("./lib/isBefore")),ie=Ke(e("./lib/isIn")),oe=Ke(e("./lib/isCreditCard")),ae=Ke(e("./lib/isIdentityCard")),se=Ke(e("./lib/isEAN")),ue=Ke(e("./lib/isISIN")),le=Ke(e("./lib/isISBN")),ce=Ke(e("./lib/isISSN")),de=Ke(e("./lib/isTaxID")),fe=He(e("./lib/isMobilePhone")),pe=Ke(e("./lib/isEthereumAddress")),he=Ke(e("./lib/isCurrency")),me=Ke(e("./lib/isBtcAddress")),ge=Ke(e("./lib/isISO8601")),ve=Ke(e("./lib/isRFC3339")),be=Ke(e("./lib/isISO31661Alpha2")),ye=Ke(e("./lib/isISO31661Alpha3")),Se=Ke(e("./lib/isISO4217")),Ae=Ke(e("./lib/isBase32")),_e=Ke(e("./lib/isBase58")),Ee=Ke(e("./lib/isBase64")),Me=Ke(e("./lib/isDataURI")),we=Ke(e("./lib/isMagnetURI")),xe=Ke(e("./lib/isMimeType")),$e=Ke(e("./lib/isLatLong")),Ie=He(e("./lib/isPostalCode")),Re=Ke(e("./lib/ltrim")),Oe=Ke(e("./lib/rtrim")),Pe=Ke(e("./lib/trim")),Ce=Ke(e("./lib/escape")),Ne=Ke(e("./lib/unescape")),Te=Ke(e("./lib/stripLow")),Fe=Ke(e("./lib/whitelist")),Le=Ke(e("./lib/blacklist")),De=Ke(e("./lib/isWhitelisted")),Be=Ke(e("./lib/normalizeEmail")),Ue=Ke(e("./lib/isSlug")),Ze=Ke(e("./lib/isLicensePlate")),je=Ke(e("./lib/isStrongPassword")),ke=Ke(e("./lib/isVAT"));function Ge(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return Ge=function(){return e},e}function He(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=Ge();if(t&&t.has(e))return t.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=i?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}return r.default=e,t&&t.set(e,r),r}function Ke(e){return e&&e.__esModule?e:{default:e}}var We={version:"13.7.0",toDate:i.default,toFloat:o.default,toInt:a.default,toBoolean:s.default,equals:u.default,contains:l.default,matches:c.default,isEmail:d.default,isURL:f.default,isMACAddress:p.default,isIP:h.default,isIPRange:m.default,isFQDN:g.default,isBoolean:b.default,isIBAN:K.default,isBIC:W.default,isAlpha:S.default,isAlphaLocales:S.locales,isAlphanumeric:A.default,isAlphanumericLocales:A.locales,isNumeric:_.default,isPassportNumber:E.default,isPort:M.default,isLowercase:w.default,isUppercase:x.default,isAscii:I.default,isFullWidth:R.default,isHalfWidth:O.default,isVariableWidth:P.default,isMultibyte:C.default,isSemVer:N.default,isSurrogatePair:T.default,isInt:F.default,isIMEI:$.default,isFloat:L.default,isFloatLocales:L.locales,isDecimal:D.default,isHexadecimal:B.default,isOctal:U.default,isDivisibleBy:Z.default,isHexColor:j.default,isRgbColor:k.default,isHSL:G.default,isISRC:H.default,isMD5:Y.default,isHash:V.default,isJWT:q.default,isJSON:z.default,isEmpty:J.default,isLength:X.default,isLocale:y.default,isByteLength:Q.default,isUUID:ee.default,isMongoId:te.default,isAfter:re.default,isBefore:ne.default,isIn:ie.default,isCreditCard:oe.default,isIdentityCard:ae.default,isEAN:se.default,isISIN:ue.default,isISBN:le.default,isISSN:ce.default,isMobilePhone:fe.default,isMobilePhoneLocales:fe.locales,isPostalCode:Ie.default,isPostalCodeLocales:Ie.locales,isEthereumAddress:pe.default,isCurrency:he.default,isBtcAddress:me.default,isISO8601:ge.default,isRFC3339:ve.default,isISO31661Alpha2:be.default,isISO31661Alpha3:ye.default,isISO4217:Se.default,isBase32:Ae.default,isBase58:_e.default,isBase64:Ee.default,isDataURI:Me.default,isMagnetURI:we.default,isMimeType:xe.default,isLatLong:$e.default,ltrim:Re.default,rtrim:Oe.default,trim:Pe.default,escape:Ce.default,unescape:Ne.default,stripLow:Te.default,whitelist:Fe.default,blacklist:Le.default,isWhitelisted:De.default,normalizeEmail:Be.default,toString:toString,isSlug:Ue.default,isStrongPassword:je.default,isTaxID:de.default,isDate:v.default,isLicensePlate:Ze.default,isVAT:ke.default,ibanLocales:K.locales};r.default=We,t.exports=r.default,t.exports.default=r.default},{"./lib/blacklist":43,"./lib/contains":44,"./lib/equals":45,"./lib/escape":46,"./lib/isAfter":47,"./lib/isAlpha":48,"./lib/isAlphanumeric":49,"./lib/isAscii":50,"./lib/isBIC":51,"./lib/isBase32":52,"./lib/isBase58":53,"./lib/isBase64":54,"./lib/isBefore":55,"./lib/isBoolean":56,"./lib/isBtcAddress":57,"./lib/isByteLength":58,"./lib/isCreditCard":59,"./lib/isCurrency":60,"./lib/isDataURI":61,"./lib/isDate":62,"./lib/isDecimal":63,"./lib/isDivisibleBy":64,"./lib/isEAN":65,"./lib/isEmail":66,"./lib/isEmpty":67,"./lib/isEthereumAddress":68,"./lib/isFQDN":69,"./lib/isFloat":70,"./lib/isFullWidth":71,"./lib/isHSL":72,"./lib/isHalfWidth":73,"./lib/isHash":74,"./lib/isHexColor":75,"./lib/isHexadecimal":76,"./lib/isIBAN":77,"./lib/isIMEI":78,"./lib/isIP":79,"./lib/isIPRange":80,"./lib/isISBN":81,"./lib/isISIN":82,"./lib/isISO31661Alpha2":83,"./lib/isISO31661Alpha3":84,"./lib/isISO4217":85,"./lib/isISO8601":86,"./lib/isISRC":87,"./lib/isISSN":88,"./lib/isIdentityCard":89,"./lib/isIn":90,"./lib/isInt":91,"./lib/isJSON":92,"./lib/isJWT":93,"./lib/isLatLong":94,"./lib/isLength":95,"./lib/isLicensePlate":96,"./lib/isLocale":97,"./lib/isLowercase":98,"./lib/isMACAddress":99,"./lib/isMD5":100,"./lib/isMagnetURI":101,"./lib/isMimeType":102,"./lib/isMobilePhone":103,"./lib/isMongoId":104,"./lib/isMultibyte":105,"./lib/isNumeric":106,"./lib/isOctal":107,"./lib/isPassportNumber":108,"./lib/isPort":109,"./lib/isPostalCode":110,"./lib/isRFC3339":111,"./lib/isRgbColor":112,"./lib/isSemVer":113,"./lib/isSlug":114,"./lib/isStrongPassword":115,"./lib/isSurrogatePair":116,"./lib/isTaxID":117,"./lib/isURL":118,"./lib/isUUID":119,"./lib/isUppercase":120,"./lib/isVAT":121,"./lib/isVariableWidth":122,"./lib/isWhitelisted":123,"./lib/ltrim":124,"./lib/matches":125,"./lib/normalizeEmail":126,"./lib/rtrim":127,"./lib/stripLow":128,"./lib/toBoolean":129,"./lib/toDate":130,"./lib/toFloat":131,"./lib/toInt":132,"./lib/trim":133,"./lib/unescape":134,"./lib/whitelist":141}],42:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.commaDecimal=r.dotDecimal=r.farsiLocales=r.arabicLocales=r.englishLocales=r.decimal=r.alphanumeric=r.alpha=void 0;var n={"en-US":/^[A-Z]+$/i,"az-AZ":/^[A-VXYZÇƏĞİıÖŞÜ]+$/i,"bg-BG":/^[А-Я]+$/i,"cs-CZ":/^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,"da-DK":/^[A-ZÆØÅ]+$/i,"de-DE":/^[A-ZÄÖÜß]+$/i,"el-GR":/^[Α-ώ]+$/i,"es-ES":/^[A-ZÁÉÍÑÓÚÜ]+$/i,"fa-IR":/^[ابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی]+$/i,"fi-FI":/^[A-ZÅÄÖ]+$/i,"fr-FR":/^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,"it-IT":/^[A-ZÀÉÈÌÎÓÒÙ]+$/i,"nb-NO":/^[A-ZÆØÅ]+$/i,"nl-NL":/^[A-ZÁÉËÏÓÖÜÚ]+$/i,"nn-NO":/^[A-ZÆØÅ]+$/i,"hu-HU":/^[A-ZÁÉÍÓÖŐÚÜŰ]+$/i,"pl-PL":/^[A-ZĄĆĘŚŁŃÓŻŹ]+$/i,"pt-PT":/^[A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,"ru-RU":/^[А-ЯЁ]+$/i,"sl-SI":/^[A-ZČĆĐŠŽ]+$/i,"sk-SK":/^[A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,"sr-RS@latin":/^[A-ZČĆŽŠĐ]+$/i,"sr-RS":/^[А-ЯЂЈЉЊЋЏ]+$/i,"sv-SE":/^[A-ZÅÄÖ]+$/i,"th-TH":/^[ก-๐\s]+$/i,"tr-TR":/^[A-ZÇĞİıÖŞÜ]+$/i,"uk-UA":/^[А-ЩЬЮЯЄIЇҐі]+$/i,"vi-VN":/^[A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i,"ku-IQ":/^[ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,ar:/^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,he:/^[א-ת]+$/,fa:/^['آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی']+$/i,"hi-IN":/^[\u0900-\u0961]+[\u0972-\u097F]*$/i};r.alpha=n;var i={"en-US":/^[0-9A-Z]+$/i,"az-AZ":/^[0-9A-VXYZÇƏĞİıÖŞÜ]+$/i,"bg-BG":/^[0-9А-Я]+$/i,"cs-CZ":/^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,"da-DK":/^[0-9A-ZÆØÅ]+$/i,"de-DE":/^[0-9A-ZÄÖÜß]+$/i,"el-GR":/^[0-9Α-ω]+$/i,"es-ES":/^[0-9A-ZÁÉÍÑÓÚÜ]+$/i,"fi-FI":/^[0-9A-ZÅÄÖ]+$/i,"fr-FR":/^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,"it-IT":/^[0-9A-ZÀÉÈÌÎÓÒÙ]+$/i,"hu-HU":/^[0-9A-ZÁÉÍÓÖŐÚÜŰ]+$/i,"nb-NO":/^[0-9A-ZÆØÅ]+$/i,"nl-NL":/^[0-9A-ZÁÉËÏÓÖÜÚ]+$/i,"nn-NO":/^[0-9A-ZÆØÅ]+$/i,"pl-PL":/^[0-9A-ZĄĆĘŚŁŃÓŻŹ]+$/i,"pt-PT":/^[0-9A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,"ru-RU":/^[0-9А-ЯЁ]+$/i,"sl-SI":/^[0-9A-ZČĆĐŠŽ]+$/i,"sk-SK":/^[0-9A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,"sr-RS@latin":/^[0-9A-ZČĆŽŠĐ]+$/i,"sr-RS":/^[0-9А-ЯЂЈЉЊЋЏ]+$/i,"sv-SE":/^[0-9A-ZÅÄÖ]+$/i,"th-TH":/^[ก-๙\s]+$/i,"tr-TR":/^[0-9A-ZÇĞİıÖŞÜ]+$/i,"uk-UA":/^[0-9А-ЩЬЮЯЄIЇҐі]+$/i,"ku-IQ":/^[٠١٢٣٤٥٦٧٨٩0-9ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,"vi-VN":/^[0-9A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i,ar:/^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,he:/^[0-9א-ת]+$/,fa:/^['0-9آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی۱۲۳۴۵۶۷۸۹۰']+$/i,"hi-IN":/^[\u0900-\u0963]+[\u0966-\u097F]*$/i};r.alphanumeric=i;var o={"en-US":".",ar:"٫"};r.decimal=o;var a=["AU","GB","HK","IN","NZ","ZA","ZM"];r.englishLocales=a;for(var s,u=0;u<a.length;u++)n[s="en-".concat(a[u])]=n["en-US"],i[s]=i["en-US"],o[s]=o["en-US"];var l=["AE","BH","DZ","EG","IQ","JO","KW","LB","LY","MA","QM","QA","SA","SD","SY","TN","YE"];r.arabicLocales=l;for(var c,d=0;d<l.length;d++)n[c="ar-".concat(l[d])]=n.ar,i[c]=i.ar,o[c]=o.ar;var f=["IR","AF"];r.farsiLocales=f;for(var p,h=0;h<f.length;h++)i[p="fa-".concat(f[h])]=i.fa,o[p]=o.ar;var m=["ar-EG","ar-LB","ar-LY"];r.dotDecimal=m;var g=["bg-BG","cs-CZ","da-DK","de-DE","el-GR","en-ZM","es-ES","fr-CA","fr-FR","id-ID","it-IT","ku-IQ","hi-IN","hu-HU","nb-NO","nn-NO","nl-NL","pl-PL","pt-PT","ru-RU","sl-SI","sr-RS@latin","sr-RS","sv-SE","tr-TR","uk-UA","vi-VN"];r.commaDecimal=g;for(var v=0;v<m.length;v++)o[m[v]]=o["en-US"];for(var b=0;b<g.length;b++)o[g[b]]=",";n["fr-CA"]=n["fr-FR"],i["fr-CA"]=i["fr-FR"],n["pt-BR"]=n["pt-PT"],i["pt-BR"]=i["pt-PT"],o["pt-BR"]=o["pt-PT"],n["pl-Pl"]=n["pl-PL"],i["pl-Pl"]=i["pl-PL"],o["pl-Pl"]=o["pl-PL"],n["fa-AF"]=n.fa},{}],43:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){return(0,i.default)(e),e.replace(new RegExp("[".concat(t,"]+"),"g"),"")};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],44:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t,r){if((0,n.default)(e),(r=(0,o.default)(r,s)).ignoreCase)return e.toLowerCase().split((0,i.default)(t).toLowerCase()).length>r.minOccurrences;return e.split((0,i.default)(t)).length>r.minOccurrences};var n=a(e("./util/assertString")),i=a(e("./util/toString")),o=a(e("./util/merge"));function a(e){return e&&e.__esModule?e:{default:e}}var s={ignoreCase:!1,minOccurrences:1};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136,"./util/merge":138,"./util/toString":140}],45:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){return(0,i.default)(e),e===t};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],46:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e),e.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\//g,"&#x2F;").replace(/\\/g,"&#x5C;").replace(/`/g,"&#96;")};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],47:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:String(new Date);(0,n.default)(e);var r=(0,i.default)(t),o=(0,i.default)(e);return!!(o&&r&&o>r)};var n=o(e("./util/assertString")),i=o(e("./toDate"));function o(e){return e&&e.__esModule?e:{default:e}}t.exports=r.default,t.exports.default=r.default},{"./toDate":130,"./util/assertString":136}],48:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"en-US",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};(0,i.default)(e);var n=e,a=r.ignore;if(a)if(a instanceof RegExp)n=n.replace(a,"");else{if("string"!=typeof a)throw new Error("ignore should be instance of a String or RegExp");n=n.replace(new RegExp("[".concat(a.replace(/[-[\]{}()*+?.,\\^$|#\\s]/g,"\\$&"),"]"),"g"),"")}if(t in o.alpha)return o.alpha[t].test(n);throw new Error("Invalid locale '".concat(t,"'"))},r.locales=void 0;var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n},o=e("./alpha");var a=Object.keys(o.alpha);r.locales=a},{"./alpha":42,"./util/assertString":136}],49:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"en-US",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};(0,i.default)(e);var n=e,a=r.ignore;if(a)if(a instanceof RegExp)n=n.replace(a,"");else{if("string"!=typeof a)throw new Error("ignore should be instance of a String or RegExp");n=n.replace(new RegExp("[".concat(a.replace(/[-[\]{}()*+?.,\\^$|#\\s]/g,"\\$&"),"]"),"g"),"")}if(t in o.alphanumeric)return o.alphanumeric[t].test(n);throw new Error("Invalid locale '".concat(t,"'"))},r.locales=void 0;var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n},o=e("./alpha");var a=Object.keys(o.alphanumeric);r.locales=a},{"./alpha":42,"./util/assertString":136}],50:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e),o.test(e)};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=/^[\x00-\x7F]+$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],51:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){if((0,i.default)(e),!o.CountryCodes.has(e.slice(4,6).toUpperCase()))return!1;return a.test(e)};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n},o=e("./isISO31661Alpha2");var a=/^[A-Za-z]{6}[A-Za-z0-9]{2}([A-Za-z0-9]{3})?$/;t.exports=r.default,t.exports.default=r.default},{"./isISO31661Alpha2":83,"./util/assertString":136}],52:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){if((0,i.default)(e),e.length%8==0&&o.test(e))return!0;return!1};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=/^[A-Z2-7]+=*$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],53:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){if((0,i.default)(e),o.test(e))return!0;return!1};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=/^[A-HJ-NP-Za-km-z1-9]*$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],54:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){(0,n.default)(e),t=(0,i.default)(t,u);var r=e.length;if(t.urlSafe)return s.test(e);if(r%4!=0||a.test(e))return!1;var o=e.indexOf("=");return-1===o||o===r-1||o===r-2&&"="===e[r-1]};var n=o(e("./util/assertString")),i=o(e("./util/merge"));function o(e){return e&&e.__esModule?e:{default:e}}var a=/[^A-Z0-9+\/=]/i,s=/^[A-Z0-9_\-]*$/i,u={urlSafe:!1};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136,"./util/merge":138}],55:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:String(new Date);(0,n.default)(e);var r=(0,i.default)(t),o=(0,i.default)(e);return!!(o&&r&&o<r)};var n=o(e("./util/assertString")),i=o(e("./toDate"));function o(e){return e&&e.__esModule?e:{default:e}}t.exports=r.default,t.exports.default=r.default},{"./toDate":130,"./util/assertString":136}],56:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o;if((0,i.default)(e),t.loose)return s.includes(e.toLowerCase());return a.includes(e)};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o={loose:!1},a=["true","false","1","0"],s=[].concat(a,["yes","no"]);t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],57:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){if((0,i.default)(e),e.startsWith("bc1"))return o.test(e);return a.test(e)};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=/^(bc1)[a-z0-9]{25,39}$/,a=/^(1|3)[A-HJ-NP-Za-km-z1-9]{25,39}$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],58:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){var r,n;(0,i.default)(e),"object"===o(t)?(r=t.min||0,n=t.max):(r=arguments[1],n=arguments[2]);var a=encodeURI(e).split(/%..|./).length-1;return a>=r&&(void 0===n||a<=n)};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],59:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){(0,i.default)(e);var t=e.replace(/[- ]+/g,"");if(!o.test(t))return!1;for(var r,n,a,s=0,u=t.length-1;u>=0;u--)r=t.substring(u,u+1),n=parseInt(r,10),s+=a&&(n*=2)>=10?n%10+1:n,a=!a;return!(s%10!=0||!t)};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=/^(?:4[0-9]{12}(?:[0-9]{3,6})?|5[1-5][0-9]{14}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12,15}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11}|6[27][0-9]{14}|^(81[0-9]{14,17}))$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],60:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){return(0,i.default)(e),function(e){var t="\\d{".concat(e.digits_after_decimal[0],"}");e.digits_after_decimal.forEach((function(e,r){0!==r&&(t="".concat(t,"|\\d{").concat(e,"}"))}));var r="(".concat(e.symbol.replace(/\W/,(function(e){return"\\".concat(e)})),")").concat(e.require_symbol?"":"?"),n="-?",i="[1-9]\\d{0,2}(\\".concat(e.thousands_separator,"\\d{3})*"),o="(".concat(["0","[1-9]\\d*",i].join("|"),")?"),a="(\\".concat(e.decimal_separator,"(").concat(t,"))").concat(e.require_decimal?"":"?"),s=o+(e.allow_decimal||e.require_decimal?a:"");e.allow_negatives&&!e.parens_for_negatives&&(e.negative_sign_after_digits?s+=n:e.negative_sign_before_digits&&(s=n+s));e.allow_negative_sign_placeholder?s="( (?!\\-))?".concat(s):e.allow_space_after_symbol?s=" ?".concat(s):e.allow_space_after_digits&&(s+="( (?!$))?");e.symbol_after_digits?s+=r:s=r+s;e.allow_negatives&&(e.parens_for_negatives?s="(\\(".concat(s,"\\)|").concat(s,")"):e.negative_sign_before_digits||e.negative_sign_after_digits||(s=n+s));return new RegExp("^(?!-? )(?=.*\\d)".concat(s,"$"))}(t=(0,n.default)(t,a)).test(e)};var n=o(e("./util/merge")),i=o(e("./util/assertString"));function o(e){return e&&e.__esModule?e:{default:e}}var a={symbol:"$",require_symbol:!1,allow_space_after_symbol:!1,symbol_after_digits:!1,allow_negatives:!0,parens_for_negatives:!1,negative_sign_before_digits:!1,negative_sign_after_digits:!1,allow_negative_sign_placeholder:!1,thousands_separator:",",decimal_separator:".",allow_decimal:!0,require_decimal:!1,digits_after_decimal:[2],allow_space_after_digits:!1};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136,"./util/merge":138}],61:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){(0,i.default)(e);var t=e.split(",");if(t.length<2)return!1;var r=t.shift().trim().split(";"),n=r.shift();if("data:"!==n.substr(0,5))return!1;var u=n.substr(5);if(""!==u&&!o.test(u))return!1;for(var l=0;l<r.length;l++)if((l!==r.length-1||"base64"!==r[l].toLowerCase())&&!a.test(r[l]))return!1;for(var c=0;c<t.length;c++)if(!s.test(t[c]))return!1;return!0};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=/^[a-z]+\/[a-z0-9\-\+]+$/i,a=/^[a-z\-]+=[a-z0-9\-]+$/i,s=/^[a-z0-9!\$&'\(\)\*\+,;=\-\._~:@\/\?%\s]*$/i;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],62:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){t="string"==typeof t?(0,i.default)({format:t},s):(0,i.default)(t,s);if("string"==typeof e&&(g=t.format,/(^(y{4}|y{2})[.\/-](m{1,2})[.\/-](d{1,2})$)|(^(m{1,2})[.\/-](d{1,2})[.\/-]((y{4}|y{2})$))|(^(d{1,2})[.\/-](m{1,2})[.\/-]((y{4}|y{2})$))/gi.test(g))){var r,n=t.delimiters.find((function(e){return-1!==t.format.indexOf(e)})),a=t.strictMode?n:t.delimiters.find((function(t){return-1!==e.indexOf(t)})),u=function(e,t){for(var r=[],n=Math.min(e.length,t.length),i=0;i<n;i++)r.push([e[i],t[i]]);return r}(e.split(a),t.format.toLowerCase().split(n)),l={},c=function(e,t){var r;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=o(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,u=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return s=e.done,e},e:function(e){u=!0,a=e},f:function(){try{s||null==r.return||r.return()}finally{if(u)throw a}}}}(u);try{for(c.s();!(r=c.n()).done;){var d=(h=r.value,m=2,function(e){if(Array.isArray(e))return e}(h)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var r=[],n=!0,i=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){i=!0,o=e}finally{try{n||null==s.return||s.return()}finally{if(i)throw o}}return r}(h,m)||o(h,m)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),f=d[0],p=d[1];if(f.length!==p.length)return!1;l[p.charAt(0)]=f}}catch(e){c.e(e)}finally{c.f()}return new Date("".concat(l.m,"/").concat(l.d,"/").concat(l.y)).getDate()===+l.d}var h,m;var g;if(!t.strictMode)return"[object Date]"===Object.prototype.toString.call(e)&&isFinite(e);return!1};var n,i=(n=e("./util/merge"))&&n.__esModule?n:{default:n};function o(e,t){if(e){if("string"==typeof e)return a(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?a(e,t):void 0}}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var s={format:"YYYY/MM/DD",delimiters:["/","-"],strictMode:!1};t.exports=r.default,t.exports.default=r.default},{"./util/merge":138}],63:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){if((0,i.default)(e),(t=(0,n.default)(t,u)).locale in a.decimal)return!(0,o.default)(l,e.replace(/ /g,""))&&function(e){return new RegExp("^[-+]?([0-9]+)?(\\".concat(a.decimal[e.locale],"[0-9]{").concat(e.decimal_digits,"})").concat(e.force_decimal?"":"?","$"))}(t).test(e);throw new Error("Invalid locale '".concat(t.locale,"'"))};var n=s(e("./util/merge")),i=s(e("./util/assertString")),o=s(e("./util/includes")),a=e("./alpha");function s(e){return e&&e.__esModule?e:{default:e}}var u={force_decimal:!1,decimal_digits:"1,",locale:"en-US"},l=["","-","+"];t.exports=r.default,t.exports.default=r.default},{"./alpha":42,"./util/assertString":136,"./util/includes":137,"./util/merge":138}],64:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){return(0,n.default)(e),(0,i.default)(e)%parseInt(t,10)==0};var n=o(e("./util/assertString")),i=o(e("./toFloat"));function o(e){return e&&e.__esModule?e:{default:e}}t.exports=r.default,t.exports.default=r.default},{"./toFloat":131,"./util/assertString":136}],65:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){(0,i.default)(e);var t=Number(e.slice(-1));return o.test(e)&&t===(r=e,n=10-r.slice(0,-1).split("").map((function(e,t){return Number(e)*function(e,t){return 8===e||14===e?t%2==0?3:1:t%2==0?1:3}(r.length,t)})).reduce((function(e,t){return e+t}),0)%10,n<10?n:0);var r,n};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=/^(\d{8}|\d{13}|\d{14})$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],66:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){if((0,n.default)(e),(t=(0,i.default)(t,l)).require_display_name||t.allow_display_name){var r=e.match(c);if(r){var u=r[1];if(e=e.replace(u,"").replace(/(^<|>$)/g,""),u.endsWith(" ")&&(u=u.substr(0,u.length-1)),!function(e){var t=e.replace(/^"(.+)"$/,"$1");if(!t.trim())return!1;if(/[\.";<>]/.test(t)){if(t===e)return!1;if(!(t.split('"').length===t.split('\\"').length))return!1}return!0}(u))return!1}else if(t.require_display_name)return!1}if(!t.ignore_max_length&&e.length>254)return!1;var g=e.split("@"),v=g.pop(),b=v.toLowerCase();if(t.host_blacklist.includes(b))return!1;var y=g.join("@");if(t.domain_specific_validation&&("gmail.com"===b||"googlemail.com"===b)){var S=(y=y.toLowerCase()).split("+")[0];if(!(0,o.default)(S.replace(/\./g,""),{min:6,max:30}))return!1;for(var A=S.split("."),_=0;_<A.length;_++)if(!f.test(A[_]))return!1}if(!(!1!==t.ignore_max_length||(0,o.default)(y,{max:64})&&(0,o.default)(v,{max:254})))return!1;if(!(0,a.default)(v,{require_tld:t.require_tld})){if(!t.allow_ip_domain)return!1;if(!(0,s.default)(v)){if(!v.startsWith("[")||!v.endsWith("]"))return!1;var E=v.substr(1,v.length-2);if(0===E.length||!(0,s.default)(E))return!1}}if('"'===y[0])return y=y.slice(1,y.length-1),t.allow_utf8_local_part?m.test(y):p.test(y);for(var M=t.allow_utf8_local_part?h:d,w=y.split("."),x=0;x<w.length;x++)if(!M.test(w[x]))return!1;if(t.blacklisted_chars&&-1!==y.search(new RegExp("[".concat(t.blacklisted_chars,"]+"),"g")))return!1;return!0};var n=u(e("./util/assertString")),i=u(e("./util/merge")),o=u(e("./isByteLength")),a=u(e("./isFQDN")),s=u(e("./isIP"));function u(e){return e&&e.__esModule?e:{default:e}}var l={allow_display_name:!1,require_display_name:!1,allow_utf8_local_part:!0,require_tld:!0,blacklisted_chars:"",ignore_max_length:!1,host_blacklist:[]},c=/^([^\x00-\x1F\x7F-\x9F\cX]+)</i,d=/^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~]+$/i,f=/^[a-z\d]+$/,p=/^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f]))*$/i,h=/^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+$/i,m=/^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*$/i;t.exports=r.default,t.exports.default=r.default},{"./isByteLength":58,"./isFQDN":69,"./isIP":79,"./util/assertString":136,"./util/merge":138}],67:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){return(0,n.default)(e),0===((t=(0,i.default)(t,a)).ignore_whitespace?e.trim().length:e.length)};var n=o(e("./util/assertString")),i=o(e("./util/merge"));function o(e){return e&&e.__esModule?e:{default:e}}var a={ignore_whitespace:!1};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136,"./util/merge":138}],68:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e),o.test(e)};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=/^(0x)[0-9a-f]{40}$/i;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],69:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){(0,n.default)(e),(t=(0,i.default)(t,a)).allow_trailing_dot&&"."===e[e.length-1]&&(e=e.substring(0,e.length-1));!0===t.allow_wildcard&&0===e.indexOf("*.")&&(e=e.substring(2));var r=e.split("."),o=r[r.length-1];if(t.require_tld){if(r.length<2)return!1;if(!/^([a-z\u00A1-\u00A8\u00AA-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(o))return!1;if(/\s/.test(o))return!1}if(!t.allow_numeric_tld&&/^\d+$/.test(o))return!1;return r.every((function(e){return!(e.length>63)&&(!!/^[a-z_\u00a1-\uffff0-9-]+$/i.test(e)&&(!/[\uff01-\uff5e]/.test(e)&&(!/^-|-$/.test(e)&&!(!t.allow_underscores&&/_/.test(e)))))}))};var n=o(e("./util/assertString")),i=o(e("./util/merge"));function o(e){return e&&e.__esModule?e:{default:e}}var a={require_tld:!0,allow_underscores:!1,allow_trailing_dot:!1,allow_numeric_tld:!1,allow_wildcard:!1};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136,"./util/merge":138}],70:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){(0,i.default)(e),t=t||{};var r=new RegExp("^(?:[-+])?(?:[0-9]+)?(?:\\".concat(t.locale?o.decimal[t.locale]:".","[0-9]*)?(?:[eE][\\+\\-]?(?:[0-9]+))?$"));if(""===e||"."===e||"-"===e||"+"===e)return!1;var n=parseFloat(e.replace(",","."));return r.test(e)&&(!t.hasOwnProperty("min")||n>=t.min)&&(!t.hasOwnProperty("max")||n<=t.max)&&(!t.hasOwnProperty("lt")||n<t.lt)&&(!t.hasOwnProperty("gt")||n>t.gt)},r.locales=void 0;var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n},o=e("./alpha");var a=Object.keys(o.decimal);r.locales=a},{"./alpha":42,"./util/assertString":136}],71:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e),o.test(e)},r.fullWidth=void 0;var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=/[^\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/;r.fullWidth=o},{"./util/assertString":136}],72:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){(0,i.default)(e);var t=e.replace(/\s+/g," ").replace(/\s?(hsla?\(|\)|,)\s?/gi,"$1");if(-1!==t.indexOf(","))return o.test(t);return a.test(t)};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=/^hsla?\(((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?))(deg|grad|rad|turn)?(,(\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%){2}(,((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%?))?\)$/i,a=/^hsla?\(((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?))(deg|grad|rad|turn)?(\s(\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%){2}\s?(\/\s((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%?)\s?)?\)$/i;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],73:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e),o.test(e)},r.halfWidth=void 0;var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=/[\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/;r.halfWidth=o},{"./util/assertString":136}],74:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){return(0,i.default)(e),new RegExp("^[a-fA-F0-9]{".concat(o[t],"}$")).test(e)};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o={md5:32,md4:32,sha1:40,sha256:64,sha384:96,sha512:128,ripemd128:32,ripemd160:40,tiger128:32,tiger160:40,tiger192:48,crc32:8,crc32b:8};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],75:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e),o.test(e)};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=/^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$/i;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],76:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e),o.test(e)};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=/^(0x|0h)?[0-9A-F]+$/i;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],77:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e),function(e){var t=e.replace(/[\s\-]+/gi,"").toUpperCase(),r=t.slice(0,2).toUpperCase();return r in o&&o[r].test(t)}(e)&&function(e){var t=e.replace(/[^A-Z0-9]+/gi,"").toUpperCase();return 1===(t.slice(4)+t.slice(0,4)).replace(/[A-Z]/g,(function(e){return e.charCodeAt(0)-55})).match(/\d{1,7}/g).reduce((function(e,t){return Number(e+t)%97}),"")}(e)},r.locales=void 0;var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o={AD:/^(AD[0-9]{2})\d{8}[A-Z0-9]{12}$/,AE:/^(AE[0-9]{2})\d{3}\d{16}$/,AL:/^(AL[0-9]{2})\d{8}[A-Z0-9]{16}$/,AT:/^(AT[0-9]{2})\d{16}$/,AZ:/^(AZ[0-9]{2})[A-Z0-9]{4}\d{20}$/,BA:/^(BA[0-9]{2})\d{16}$/,BE:/^(BE[0-9]{2})\d{12}$/,BG:/^(BG[0-9]{2})[A-Z]{4}\d{6}[A-Z0-9]{8}$/,BH:/^(BH[0-9]{2})[A-Z]{4}[A-Z0-9]{14}$/,BR:/^(BR[0-9]{2})\d{23}[A-Z]{1}[A-Z0-9]{1}$/,BY:/^(BY[0-9]{2})[A-Z0-9]{4}\d{20}$/,CH:/^(CH[0-9]{2})\d{5}[A-Z0-9]{12}$/,CR:/^(CR[0-9]{2})\d{18}$/,CY:/^(CY[0-9]{2})\d{8}[A-Z0-9]{16}$/,CZ:/^(CZ[0-9]{2})\d{20}$/,DE:/^(DE[0-9]{2})\d{18}$/,DK:/^(DK[0-9]{2})\d{14}$/,DO:/^(DO[0-9]{2})[A-Z]{4}\d{20}$/,EE:/^(EE[0-9]{2})\d{16}$/,EG:/^(EG[0-9]{2})\d{25}$/,ES:/^(ES[0-9]{2})\d{20}$/,FI:/^(FI[0-9]{2})\d{14}$/,FO:/^(FO[0-9]{2})\d{14}$/,FR:/^(FR[0-9]{2})\d{10}[A-Z0-9]{11}\d{2}$/,GB:/^(GB[0-9]{2})[A-Z]{4}\d{14}$/,GE:/^(GE[0-9]{2})[A-Z0-9]{2}\d{16}$/,GI:/^(GI[0-9]{2})[A-Z]{4}[A-Z0-9]{15}$/,GL:/^(GL[0-9]{2})\d{14}$/,GR:/^(GR[0-9]{2})\d{7}[A-Z0-9]{16}$/,GT:/^(GT[0-9]{2})[A-Z0-9]{4}[A-Z0-9]{20}$/,HR:/^(HR[0-9]{2})\d{17}$/,HU:/^(HU[0-9]{2})\d{24}$/,IE:/^(IE[0-9]{2})[A-Z0-9]{4}\d{14}$/,IL:/^(IL[0-9]{2})\d{19}$/,IQ:/^(IQ[0-9]{2})[A-Z]{4}\d{15}$/,IR:/^(IR[0-9]{2})0\d{2}0\d{18}$/,IS:/^(IS[0-9]{2})\d{22}$/,IT:/^(IT[0-9]{2})[A-Z]{1}\d{10}[A-Z0-9]{12}$/,JO:/^(JO[0-9]{2})[A-Z]{4}\d{22}$/,KW:/^(KW[0-9]{2})[A-Z]{4}[A-Z0-9]{22}$/,KZ:/^(KZ[0-9]{2})\d{3}[A-Z0-9]{13}$/,LB:/^(LB[0-9]{2})\d{4}[A-Z0-9]{20}$/,LC:/^(LC[0-9]{2})[A-Z]{4}[A-Z0-9]{24}$/,LI:/^(LI[0-9]{2})\d{5}[A-Z0-9]{12}$/,LT:/^(LT[0-9]{2})\d{16}$/,LU:/^(LU[0-9]{2})\d{3}[A-Z0-9]{13}$/,LV:/^(LV[0-9]{2})[A-Z]{4}[A-Z0-9]{13}$/,MC:/^(MC[0-9]{2})\d{10}[A-Z0-9]{11}\d{2}$/,MD:/^(MD[0-9]{2})[A-Z0-9]{20}$/,ME:/^(ME[0-9]{2})\d{18}$/,MK:/^(MK[0-9]{2})\d{3}[A-Z0-9]{10}\d{2}$/,MR:/^(MR[0-9]{2})\d{23}$/,MT:/^(MT[0-9]{2})[A-Z]{4}\d{5}[A-Z0-9]{18}$/,MU:/^(MU[0-9]{2})[A-Z]{4}\d{19}[A-Z]{3}$/,MZ:/^(MZ[0-9]{2})\d{21}$/,NL:/^(NL[0-9]{2})[A-Z]{4}\d{10}$/,NO:/^(NO[0-9]{2})\d{11}$/,PK:/^(PK[0-9]{2})[A-Z0-9]{4}\d{16}$/,PL:/^(PL[0-9]{2})\d{24}$/,PS:/^(PS[0-9]{2})[A-Z0-9]{4}\d{21}$/,PT:/^(PT[0-9]{2})\d{21}$/,QA:/^(QA[0-9]{2})[A-Z]{4}[A-Z0-9]{21}$/,RO:/^(RO[0-9]{2})[A-Z]{4}[A-Z0-9]{16}$/,RS:/^(RS[0-9]{2})\d{18}$/,SA:/^(SA[0-9]{2})\d{2}[A-Z0-9]{18}$/,SC:/^(SC[0-9]{2})[A-Z]{4}\d{20}[A-Z]{3}$/,SE:/^(SE[0-9]{2})\d{20}$/,SI:/^(SI[0-9]{2})\d{15}$/,SK:/^(SK[0-9]{2})\d{20}$/,SM:/^(SM[0-9]{2})[A-Z]{1}\d{10}[A-Z0-9]{12}$/,SV:/^(SV[0-9]{2})[A-Z0-9]{4}\d{20}$/,TL:/^(TL[0-9]{2})\d{19}$/,TN:/^(TN[0-9]{2})\d{20}$/,TR:/^(TR[0-9]{2})\d{5}[A-Z0-9]{17}$/,UA:/^(UA[0-9]{2})\d{6}[A-Z0-9]{19}$/,VA:/^(VA[0-9]{2})\d{18}$/,VG:/^(VG[0-9]{2})[A-Z0-9]{4}\d{16}$/,XK:/^(XK[0-9]{2})\d{16}$/};var a=Object.keys(o);r.locales=a},{"./util/assertString":136}],78:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){(0,i.default)(e);var r=o;(t=t||{}).allow_hyphens&&(r=a);if(!r.test(e))return!1;e=e.replace(/-/g,"");for(var n=0,s=2,u=0;u<14;u++){var l=e.substring(14-u-1,14-u),c=parseInt(l,10)*s;n+=c>=10?c%10+1:c,1===s?s+=1:s-=1}if((10-n%10)%10!==parseInt(e.substring(14,15),10))return!1;return!0};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=/^[0-9]{15}$/,a=/^\d{2}-\d{6}-\d{6}-\d{1}$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],79:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if((0,i.default)(t),!(r=String(r)))return e(t,4)||e(t,6);if("4"===r){if(!s.test(t))return!1;var n=t.split(".").sort((function(e,t){return e-t}));return n[3]<=255}if("6"===r)return!!l.test(t);return!1};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o="(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",a="(".concat(o,"[.]){3}").concat(o),s=new RegExp("^".concat(a,"$")),u="(?:[0-9a-fA-F]{1,4})",l=new RegExp("^("+"(?:".concat(u,":){7}(?:").concat(u,"|:)|")+"(?:".concat(u,":){6}(?:").concat(a,"|:").concat(u,"|:)|")+"(?:".concat(u,":){5}(?::").concat(a,"|(:").concat(u,"){1,2}|:)|")+"(?:".concat(u,":){4}(?:(:").concat(u,"){0,1}:").concat(a,"|(:").concat(u,"){1,3}|:)|")+"(?:".concat(u,":){3}(?:(:").concat(u,"){0,2}:").concat(a,"|(:").concat(u,"){1,4}|:)|")+"(?:".concat(u,":){2}(?:(:").concat(u,"){0,3}:").concat(a,"|(:").concat(u,"){1,5}|:)|")+"(?:".concat(u,":){1}(?:(:").concat(u,"){0,4}:").concat(a,"|(:").concat(u,"){1,6}|:)|")+"(?::((?::".concat(u,"){0,5}:").concat(a,"|(?::").concat(u,"){1,7}|:))")+")(%[0-9a-zA-Z-.:]{1,})?$");t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],80:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";(0,n.default)(e);var r=e.split("/");if(2!==r.length)return!1;if(!a.test(r[1]))return!1;if(r[1].length>1&&r[1].startsWith("0"))return!1;var o=(0,i.default)(r[0],t);if(!o)return!1;var u=null;switch(String(t)){case"4":u=32;break;case"6":u=s;break;default:u=(0,i.default)(r[0],"6")?s:32}return r[1]<=u&&r[1]>=0};var n=o(e("./util/assertString")),i=o(e("./isIP"));function o(e){return e&&e.__esModule?e:{default:e}}var a=/^\d{1,3}$/,s=128;t.exports=r.default,t.exports.default=r.default},{"./isIP":79,"./util/assertString":136}],81:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if((0,i.default)(t),!(r=String(r)))return e(t,10)||e(t,13);var n,u=t.replace(/[\s-]+/g,""),l=0;if("10"===r){if(!o.test(u))return!1;for(n=0;n<9;n++)l+=(n+1)*u.charAt(n);if("X"===u.charAt(9)?l+=100:l+=10*u.charAt(9),l%11==0)return!!u}else if("13"===r){if(!a.test(u))return!1;for(n=0;n<12;n++)l+=s[n%2]*u.charAt(n);if(u.charAt(12)-(10-l%10)%10==0)return!!u}return!1};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=/^(?:[0-9]{9}X|[0-9]{10})$/,a=/^(?:[0-9]{13})$/,s=[1,3];t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],82:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){if((0,i.default)(e),!o.test(e))return!1;for(var t=!0,r=0,n=e.length-2;n>=0;n--)if(e[n]>="A"&&e[n]<="Z")for(var a=e[n].charCodeAt(0)-55,s=a%10,u=Math.trunc(a/10),l=0,c=[s,u];l<c.length;l++){var d=c[l];r+=t?d>=5?1+2*(d-5):2*d:d,t=!t}else{var f=e[n].charCodeAt(0)-"0".charCodeAt(0);r+=t?f>=5?1+2*(f-5):2*f:f,t=!t}var p=10*Math.trunc((r+9)/10)-r;return+e[e.length-1]===p};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=/^[A-Z]{2}[0-9A-Z]{9}[0-9]$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],83:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e),o.has(e.toUpperCase())},r.CountryCodes=void 0;var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=new Set(["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"]);var a=o;r.CountryCodes=a},{"./util/assertString":136}],84:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e),o.has(e.toUpperCase())};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=new Set(["AFG","ALA","ALB","DZA","ASM","AND","AGO","AIA","ATA","ATG","ARG","ARM","ABW","AUS","AUT","AZE","BHS","BHR","BGD","BRB","BLR","BEL","BLZ","BEN","BMU","BTN","BOL","BES","BIH","BWA","BVT","BRA","IOT","BRN","BGR","BFA","BDI","KHM","CMR","CAN","CPV","CYM","CAF","TCD","CHL","CHN","CXR","CCK","COL","COM","COG","COD","COK","CRI","CIV","HRV","CUB","CUW","CYP","CZE","DNK","DJI","DMA","DOM","ECU","EGY","SLV","GNQ","ERI","EST","ETH","FLK","FRO","FJI","FIN","FRA","GUF","PYF","ATF","GAB","GMB","GEO","DEU","GHA","GIB","GRC","GRL","GRD","GLP","GUM","GTM","GGY","GIN","GNB","GUY","HTI","HMD","VAT","HND","HKG","HUN","ISL","IND","IDN","IRN","IRQ","IRL","IMN","ISR","ITA","JAM","JPN","JEY","JOR","KAZ","KEN","KIR","PRK","KOR","KWT","KGZ","LAO","LVA","LBN","LSO","LBR","LBY","LIE","LTU","LUX","MAC","MKD","MDG","MWI","MYS","MDV","MLI","MLT","MHL","MTQ","MRT","MUS","MYT","MEX","FSM","MDA","MCO","MNG","MNE","MSR","MAR","MOZ","MMR","NAM","NRU","NPL","NLD","NCL","NZL","NIC","NER","NGA","NIU","NFK","MNP","NOR","OMN","PAK","PLW","PSE","PAN","PNG","PRY","PER","PHL","PCN","POL","PRT","PRI","QAT","REU","ROU","RUS","RWA","BLM","SHN","KNA","LCA","MAF","SPM","VCT","WSM","SMR","STP","SAU","SEN","SRB","SYC","SLE","SGP","SXM","SVK","SVN","SLB","SOM","ZAF","SGS","SSD","ESP","LKA","SDN","SUR","SJM","SWZ","SWE","CHE","SYR","TWN","TJK","TZA","THA","TLS","TGO","TKL","TON","TTO","TUN","TUR","TKM","TCA","TUV","UGA","UKR","ARE","GBR","USA","UMI","URY","UZB","VUT","VEN","VNM","VGB","VIR","WLF","ESH","YEM","ZMB","ZWE"]);t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],85:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e),o.has(e.toUpperCase())},r.CurrencyCodes=void 0;var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=new Set(["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BTN","BWP","BYN","BZD","CAD","CDF","CHE","CHF","CHW","CLF","CLP","CNY","COP","COU","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MXV","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","SSP","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","UYI","UYU","UYW","UZS","VES","VND","VUV","WST","XAF","XAG","XAU","XBA","XBB","XBC","XBD","XCD","XDR","XOF","XPD","XPF","XPT","XSU","XTS","XUA","XXX","YER","ZAR","ZMW","ZWL"]);var a=o;r.CurrencyCodes=a},{"./util/assertString":136}],86:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,i.default)(e);var r=t.strictSeparator?a.test(e):o.test(e);return r&&t.strict?s(e):r};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=/^([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T\s]((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([\.,]\d+(?!:))?)?(\17[0-5]\d([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/,a=/^([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T]((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([\.,]\d+(?!:))?)?(\17[0-5]\d([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/,s=function(e){var t=e.match(/^(\d{4})-?(\d{3})([ T]{1}\.*|$)/);if(t){var r=Number(t[1]),n=Number(t[2]);return r%4==0&&r%100!=0||r%400==0?n<=366:n<=365}var i=e.match(/(\d{4})-?(\d{0,2})-?(\d*)/).map(Number),o=i[1],a=i[2],s=i[3],u=a?"0".concat(a).slice(-2):a,l=s?"0".concat(s).slice(-2):s,c=new Date("".concat(o,"-").concat(u||"01","-").concat(l||"01"));return!a||!s||c.getUTCFullYear()===o&&c.getUTCMonth()+1===a&&c.getUTCDate()===s};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],87:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e),o.test(e)};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=/^[A-Z]{2}[0-9A-Z]{3}\d{2}\d{5}$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],88:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,i.default)(e);var r=o;if(r=t.require_hyphen?r.replace("?",""):r,!(r=t.case_sensitive?new RegExp(r):new RegExp(r,"i")).test(e))return!1;for(var n=e.replace("-","").toUpperCase(),a=0,s=0;s<n.length;s++){var u=n[s];a+=("X"===u?10:+u)*(8-s)}return a%11==0};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o="^\\d{4}-?\\d{3}[\\dX]$";t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],89:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){if((0,n.default)(e),t in a)return a[t](e);if("any"===t){for(var r in a){if(a.hasOwnProperty(r))if((0,a[r])(e))return!0}return!1}throw new Error("Invalid locale '".concat(t,"'"))};var n=o(e("./util/assertString")),i=o(e("./isInt"));function o(e){return e&&e.__esModule?e:{default:e}}var a={PL:function(e){(0,n.default)(e);var t={1:1,2:3,3:7,4:9,5:1,6:3,7:7,8:9,9:1,10:3,11:0};if(null!=e&&11===e.length&&(0,i.default)(e,{allow_leading_zeroes:!0})){var r=e.split("").slice(0,-1).reduce((function(e,r,n){return e+Number(r)*t[n+1]}),0)%10,o=Number(e.charAt(e.length-1));if(0===r&&0===o||o===10-r)return!0}return!1},ES:function(e){(0,n.default)(e);var t={X:0,Y:1,Z:2},r=e.trim().toUpperCase();if(!/^[0-9X-Z][0-9]{7}[TRWAGMYFPDXBNJZSQVHLCKE]$/.test(r))return!1;var i=r.slice(0,-1).replace(/[X,Y,Z]/g,(function(e){return t[e]}));return r.endsWith(["T","R","W","A","G","M","Y","F","P","D","X","B","N","J","Z","S","Q","V","H","L","C","K","E"][i%23])},FI:function(e){if((0,n.default)(e),11!==e.length)return!1;if(!e.match(/^\d{6}[\-A\+]\d{3}[0-9ABCDEFHJKLMNPRSTUVWXY]{1}$/))return!1;return"0123456789ABCDEFHJKLMNPRSTUVWXY"[(1e3*parseInt(e.slice(0,6),10)+parseInt(e.slice(7,10),10))%31]===e.slice(10,11)},IN:function(e){var t=[[0,1,2,3,4,5,6,7,8,9],[1,2,3,4,0,6,7,8,9,5],[2,3,4,0,1,7,8,9,5,6],[3,4,0,1,2,8,9,5,6,7],[4,0,1,2,3,9,5,6,7,8],[5,9,8,7,6,0,4,3,2,1],[6,5,9,8,7,1,0,4,3,2],[7,6,5,9,8,2,1,0,4,3],[8,7,6,5,9,3,2,1,0,4],[9,8,7,6,5,4,3,2,1,0]],r=[[0,1,2,3,4,5,6,7,8,9],[1,5,7,6,2,8,3,0,9,4],[5,8,0,3,7,9,6,1,4,2],[8,9,1,6,0,4,3,5,2,7],[9,4,5,3,1,2,6,8,7,0],[4,2,8,6,5,7,3,9,0,1],[2,7,9,3,8,0,6,4,1,5],[7,0,4,6,9,1,3,2,5,8]],n=e.trim();if(!/^[1-9]\d{3}\s?\d{4}\s?\d{4}$/.test(n))return!1;var i=0;return n.replace(/\s/g,"").split("").map(Number).reverse().forEach((function(e,n){i=t[i][r[n%8][e]]})),0===i},IR:function(e){if(!e.match(/^\d{10}$/))return!1;if(e="0000".concat(e).substr(e.length-6),0===parseInt(e.substr(3,6),10))return!1;for(var t=parseInt(e.substr(9,1),10),r=0,n=0;n<9;n++)r+=parseInt(e.substr(n,1),10)*(10-n);return(r%=11)<2&&t===r||r>=2&&t===11-r},IT:function(e){return 9===e.length&&("CA00000AA"!==e&&e.search(/C[A-Z][0-9]{5}[A-Z]{2}/i)>-1)},NO:function(e){var t=e.trim();if(isNaN(Number(t)))return!1;if(11!==t.length)return!1;if("00000000000"===t)return!1;var r=t.split("").map(Number),n=(11-(3*r[0]+7*r[1]+6*r[2]+1*r[3]+8*r[4]+9*r[5]+4*r[6]+5*r[7]+2*r[8])%11)%11,i=(11-(5*r[0]+4*r[1]+3*r[2]+2*r[3]+7*r[4]+6*r[5]+5*r[6]+4*r[7]+3*r[8]+2*n)%11)%11;return n===r[9]&&i===r[10]},TH:function(e){if(!e.match(/^[1-8]\d{12}$/))return!1;for(var t=0,r=0;r<12;r++)t+=parseInt(e[r],10)*(13-r);return e[12]===((11-t%11)%10).toString()},LK:function(e){return!(10!==e.length||!/^[1-9]\d{8}[vx]$/i.test(e))||!(12!==e.length||!/^[1-9]\d{11}$/i.test(e))},"he-IL":function(e){var t=e.trim();if(!/^\d{9}$/.test(t))return!1;for(var r,n=t,i=0,o=0;o<n.length;o++)i+=(r=Number(n[o])*(o%2+1))>9?r-9:r;return i%10==0},"ar-LY":function(e){var t=e.trim();return!!/^(1|2)\d{11}$/.test(t)},"ar-TN":function(e){var t=e.trim();return!!/^\d{8}$/.test(t)},"zh-CN":function(e){var t,r=["11","12","13","14","15","21","22","23","31","32","33","34","35","36","37","41","42","43","44","45","46","50","51","52","53","54","61","62","63","64","65","71","81","82","91"],n=["7","9","10","5","8","4","2","1","6","3","7","9","10","5","8","4","2"],i=["1","0","X","9","8","7","6","5","4","3","2"],o=function(e){return r.includes(e)},a=function(e){var t=parseInt(e.substring(0,4),10),r=parseInt(e.substring(4,6),10),n=parseInt(e.substring(6),10),i=new Date(t,r-1,n);return!(i>new Date)&&(i.getFullYear()===t&&i.getMonth()===r-1&&i.getDate()===n)},s=function(e){return function(e){for(var t=e.substring(0,17),r=0,o=0;o<17;o++)r+=parseInt(t.charAt(o),10)*parseInt(n[o],10);return i[r%11]}(e)===e.charAt(17).toUpperCase()};return!!/^\d{15}|(\d{17}(\d|x|X))$/.test(t=e)&&(15===t.length?function(e){var t=/^[1-9]\d{7}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\d{3}$/.test(e);if(!t)return!1;var r=e.substring(0,2);if(!(t=o(r)))return!1;var n="19".concat(e.substring(6,12));return!!(t=a(n))}(t):function(e){var t=/^[1-9]\d{5}[1-9]\d{3}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\d{3}(\d|x|X)$/.test(e);if(!t)return!1;var r=e.substring(0,2);if(!(t=o(r)))return!1;var n=e.substring(6,14);return!!(t=a(n))&&s(e)}(t))},"zh-TW":function(e){var t={A:10,B:11,C:12,D:13,E:14,F:15,G:16,H:17,I:34,J:18,K:19,L:20,M:21,N:22,O:35,P:23,Q:24,R:25,S:26,T:27,U:28,V:29,W:32,X:30,Y:31,Z:33},r=e.trim().toUpperCase();return!!/^[A-Z][0-9]{9}$/.test(r)&&Array.from(r).reduce((function(e,r,n){if(0===n){var i=t[r];return i%10*9+Math.floor(i/10)}return 9===n?(10-e%10-Number(r))%10==0:e+Number(r)*(9-n)}),0)}};t.exports=r.default,t.exports.default=r.default},{"./isInt":91,"./util/assertString":136}],90:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){var r;if((0,n.default)(e),"[object Array]"===Object.prototype.toString.call(t)){var o=[];for(r in t)({}).hasOwnProperty.call(t,r)&&(o[r]=(0,i.default)(t[r]));return o.indexOf(e)>=0}if("object"===a(t))return t.hasOwnProperty(e);if(t&&"function"==typeof t.indexOf)return t.indexOf(e)>=0;return!1};var n=o(e("./util/assertString")),i=o(e("./util/toString"));function o(e){return e&&e.__esModule?e:{default:e}}function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136,"./util/toString":140}],91:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){(0,i.default)(e);var r=(t=t||{}).hasOwnProperty("allow_leading_zeroes")&&!t.allow_leading_zeroes?o:a,n=!t.hasOwnProperty("min")||e>=t.min,s=!t.hasOwnProperty("max")||e<=t.max,u=!t.hasOwnProperty("lt")||e<t.lt,l=!t.hasOwnProperty("gt")||e>t.gt;return r.test(e)&&n&&s&&u&&l};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=/^(?:[-+]?(?:0|[1-9][0-9]*))$/,a=/^[-+]?[0-9]+$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],92:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){(0,n.default)(e);try{t=(0,i.default)(t,s);var r=[];t.allow_primitives&&(r=[null,!1,!0]);var o=JSON.parse(e);return r.includes(o)||!!o&&"object"===a(o)}catch(e){}return!1};var n=o(e("./util/assertString")),i=o(e("./util/merge"));function o(e){return e&&e.__esModule?e:{default:e}}function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}var s={allow_primitives:!1};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136,"./util/merge":138}],93:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){(0,n.default)(e);var t=e.split("."),r=t.length;if(r>3||r<2)return!1;return t.reduce((function(e,t){return e&&(0,i.default)(t,{urlSafe:!0})}),!0)};var n=o(e("./util/assertString")),i=o(e("./isBase64"));function o(e){return e&&e.__esModule?e:{default:e}}t.exports=r.default,t.exports.default=r.default},{"./isBase64":54,"./util/assertString":136}],94:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){if((0,n.default)(e),t=(0,i.default)(t,c),!e.includes(","))return!1;var r=e.split(",");if(r[0].startsWith("(")&&!r[1].endsWith(")")||r[1].endsWith(")")&&!r[0].startsWith("("))return!1;if(t.checkDMS)return u.test(r[0])&&l.test(r[1]);return a.test(r[0])&&s.test(r[1])};var n=o(e("./util/assertString")),i=o(e("./util/merge"));function o(e){return e&&e.__esModule?e:{default:e}}var a=/^\(?[+-]?(90(\.0+)?|[1-8]?\d(\.\d+)?)$/,s=/^\s?[+-]?(180(\.0+)?|1[0-7]\d(\.\d+)?|\d{1,2}(\.\d+)?)\)?$/,u=/^(([1-8]?\d)\D+([1-5]?\d|60)\D+([1-5]?\d|60)(\.\d+)?|90\D+0\D+0)\D+[NSns]?$/i,l=/^\s*([1-7]?\d{1,2}\D+([1-5]?\d|60)\D+([1-5]?\d|60)(\.\d+)?|180\D+0\D+0)\D+[EWew]?$/i,c={checkDMS:!1};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136,"./util/merge":138}],95:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){var r,n;(0,i.default)(e),"object"===o(t)?(r=t.min||0,n=t.max):(r=arguments[1]||0,n=arguments[2]);var a=e.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g)||[],s=e.length-a.length;return s>=r&&(void 0===n||s<=n)};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],96:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){if((0,i.default)(e),t in o)return o[t](e);if("any"===t){for(var r in o){if((0,o[r])(e))return!0}return!1}throw new Error("Invalid locale '".concat(t,"'"))};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o={"cs-CZ":function(e){return/^(([ABCDEFHKIJKLMNPRSTUVXYZ]|[0-9])-?){5,8}$/.test(e)},"de-DE":function(e){return/^((AW|UL|AK|GA|AÖ|LF|AZ|AM|AS|ZE|AN|AB|A|KG|KH|BA|EW|BZ|HY|KM|BT|HP|B|BC|BI|BO|FN|TT|ÜB|BN|AH|BS|FR|HB|ZZ|BB|BK|BÖ|OC|OK|CW|CE|C|CO|LH|CB|KW|LC|LN|DA|DI|DE|DH|SY|NÖ|DO|DD|DU|DN|D|EI|EA|EE|FI|EM|EL|EN|PF|ED|EF|ER|AU|ZP|E|ES|NT|EU|FL|FO|FT|FF|F|FS|FD|FÜ|GE|G|GI|GF|GS|ZR|GG|GP|GR|NY|ZI|GÖ|GZ|GT|HA|HH|HM|HU|WL|HZ|WR|RN|HK|HD|HN|HS|GK|HE|HF|RZ|HI|HG|HO|HX|IK|IL|IN|J|JL|KL|KA|KS|KF|KE|KI|KT|KO|KN|KR|KC|KU|K|LD|LL|LA|L|OP|LM|LI|LB|LU|LÖ|HL|LG|MD|GN|MZ|MA|ML|MR|MY|AT|DM|MC|NZ|RM|RG|MM|ME|MB|MI|FG|DL|HC|MW|RL|MK|MG|MÜ|WS|MH|M|MS|NU|NB|ND|NM|NK|NW|NR|NI|NF|DZ|EB|OZ|TG|TO|N|OA|GM|OB|CA|EH|FW|OF|OL|OE|OG|BH|LR|OS|AA|GD|OH|KY|NP|WK|PB|PA|PE|PI|PS|P|PM|PR|RA|RV|RE|R|H|SB|WN|RS|RD|RT|BM|NE|GV|RP|SU|GL|RO|GÜ|RH|EG|RW|PN|SK|MQ|RU|SZ|RI|SL|SM|SC|HR|FZ|VS|SW|SN|CR|SE|SI|SO|LP|SG|NH|SP|IZ|ST|BF|TE|HV|OD|SR|S|AC|DW|ZW|TF|TS|TR|TÜ|UM|PZ|TP|UE|UN|UH|MN|KK|VB|V|AE|PL|RC|VG|GW|PW|VR|VK|KB|WA|WT|BE|WM|WE|AP|MO|WW|FB|WZ|WI|WB|JE|WF|WO|W|WÜ|BL|Z|GC)[- ]?[A-Z]{1,2}[- ]?\d{1,4}|(AIC|FDB|ABG|SLN|SAW|KLZ|BUL|ESB|NAB|SUL|WST|ABI|AZE|BTF|KÖT|DKB|FEU|ROT|ALZ|SMÜ|WER|AUR|NOR|DÜW|BRK|HAB|TÖL|WOR|BAD|BAR|BER|BIW|EBS|KEM|MÜB|PEG|BGL|BGD|REI|WIL|BKS|BIR|WAT|BOR|BOH|BOT|BRB|BLK|HHM|NEB|NMB|WSF|LEO|HDL|WMS|WZL|BÜS|CHA|KÖZ|ROD|WÜM|CLP|NEC|COC|ZEL|COE|CUX|DAH|LDS|DEG|DEL|RSL|DLG|DGF|LAN|HEI|MED|DON|KIB|ROK|JÜL|MON|SLE|EBE|EIC|HIG|WBS|BIT|PRÜ|LIB|EMD|WIT|ERH|HÖS|ERZ|ANA|ASZ|MAB|MEK|STL|SZB|FDS|HCH|HOR|WOL|FRG|GRA|WOS|FRI|FFB|GAP|GER|BRL|CLZ|GTH|NOH|HGW|GRZ|LÖB|NOL|WSW|DUD|HMÜ|OHA|KRU|HAL|HAM|HBS|QLB|HVL|NAU|HAS|EBN|GEO|HOH|HDH|ERK|HER|WAN|HEF|ROF|HBN|ALF|HSK|USI|NAI|REH|SAN|KÜN|ÖHR|HOL|WAR|ARN|BRG|GNT|HOG|WOH|KEH|MAI|PAR|RID|ROL|KLE|GEL|KUS|KYF|ART|SDH|LDK|DIL|MAL|VIB|LER|BNA|GHA|GRM|MTL|WUR|LEV|LIF|STE|WEL|LIP|VAI|LUP|HGN|LBZ|LWL|PCH|STB|DAN|MKK|SLÜ|MSP|TBB|MGH|MTK|BIN|MSH|EIL|HET|SGH|BID|MYK|MSE|MST|MÜR|WRN|MEI|GRH|RIE|MZG|MIL|OBB|BED|FLÖ|MOL|FRW|SEE|SRB|AIB|MOS|BCH|ILL|SOB|NMS|NEA|SEF|UFF|NEW|VOH|NDH|TDO|NWM|GDB|GVM|WIS|NOM|EIN|GAN|LAU|HEB|OHV|OSL|SFB|ERB|LOS|BSK|KEL|BSB|MEL|WTL|OAL|FÜS|MOD|OHZ|OPR|BÜR|PAF|PLÖ|CAS|GLA|REG|VIT|ECK|SIM|GOA|EMS|DIZ|GOH|RÜD|SWA|NES|KÖN|MET|LRO|BÜZ|DBR|ROS|TET|HRO|ROW|BRV|HIP|PAN|GRI|SHK|EIS|SRO|SOK|LBS|SCZ|MER|QFT|SLF|SLS|HOM|SLK|ASL|BBG|SBK|SFT|SHG|MGN|MEG|ZIG|SAD|NEN|OVI|SHA|BLB|SIG|SON|SPN|FOR|GUB|SPB|IGB|WND|STD|STA|SDL|OBG|HST|BOG|SHL|PIR|FTL|SEB|SÖM|SÜW|TIR|SAB|TUT|ANG|SDT|LÜN|LSZ|MHL|VEC|VER|VIE|OVL|ANK|OVP|SBG|UEM|UER|WLG|GMN|NVP|RDG|RÜG|DAU|FKB|WAF|WAK|SLZ|WEN|SOG|APD|WUG|GUN|ESW|WIZ|WES|DIN|BRA|BÜD|WHV|HWI|GHC|WTM|WOB|WUN|MAK|SEL|OCH|HOT|WDA)[- ]?(([A-Z][- ]?\d{1,4})|([A-Z]{2}[- ]?\d{1,3})))[- ]?(E|H)?$/.test(e)},"de-LI":function(e){return/^FL[- ]?\d{1,5}[UZ]?$/.test(e)},"fi-FI":function(e){return/^(?=.{4,7})(([A-Z]{1,3}|[0-9]{1,3})[\s-]?([A-Z]{1,3}|[0-9]{1,5}))$/.test(e)},"pt-PT":function(e){return/^([A-Z]{2}|[0-9]{2})[ -·]?([A-Z]{2}|[0-9]{2})[ -·]?([A-Z]{2}|[0-9]{2})$/.test(e)},"sq-AL":function(e){return/^[A-Z]{2}[- ]?((\d{3}[- ]?(([A-Z]{2})|T))|(R[- ]?\d{3}))$/.test(e)},"pt-BR":function(e){return/^[A-Z]{3}[ -]?[0-9][A-Z][0-9]{2}|[A-Z]{3}[ -]?[0-9]{4}$/.test(e)}};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],97:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){if((0,i.default)(e),"en_US_POSIX"===e||"ca_ES_VALENCIA"===e)return!0;return o.test(e)};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=/^[A-Za-z]{2,4}([_-]([A-Za-z]{4}|[\d]{3}))?([_-]([A-Za-z]{2}|[\d]{3}))?$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],98:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e),e===e.toLowerCase()};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],99:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){if((0,i.default)(e),t&&(t.no_colons||t.no_separators))return a.test(e);return o.test(e)||s.test(e)};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=/^(?:[0-9a-fA-F]{2}([-:\s]))([0-9a-fA-F]{2}\1){4}([0-9a-fA-F]{2})$/,a=/^([0-9a-fA-F]){12}$/,s=/^([0-9a-fA-F]{4}\.){2}([0-9a-fA-F]{4})$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],100:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e),o.test(e)};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=/^[a-f0-9]{32}$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],101:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e),o.test(e.trim())};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=/^magnet:\?xt(?:\.1)?=urn:(?:aich|bitprint|btih|ed2k|ed2khash|kzhash|md5|sha1|tree:tiger):[a-z0-9]{32}(?:[a-z0-9]{8})?($|&)/i;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],102:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e),o.test(e)||a.test(e)||s.test(e)};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=/^(application|audio|font|image|message|model|multipart|text|video)\/[a-zA-Z0-9\.\-\+]{1,100}$/i,a=/^text\/[a-zA-Z0-9\.\-\+]{1,100};\s?charset=("[a-zA-Z0-9\.\-\+\s]{0,70}"|[a-zA-Z0-9\.\-\+]{0,70})(\s?\([a-zA-Z0-9\.\-\+\s]{1,20}\))?$/i,s=/^multipart\/[a-zA-Z0-9\.\-\+]{1,100}(;\s?(boundary|charset)=("[a-zA-Z0-9\.\-\+\s]{0,70}"|[a-zA-Z0-9\.\-\+]{0,70})(\s?\([a-zA-Z0-9\.\-\+\s]{1,20}\))?){0,2}$/i;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],103:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t,r){if((0,i.default)(e),r&&r.strictMode&&!e.startsWith("+"))return!1;if(Array.isArray(t))return t.some((function(t){if(o.hasOwnProperty(t)&&o[t].test(e))return!0;return!1}));if(t in o)return o[t].test(e);if(!t||"any"===t){for(var n in o){if(o.hasOwnProperty(n))if(o[n].test(e))return!0}return!1}throw new Error("Invalid locale '".concat(t,"'"))},r.locales=void 0;var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o={"am-AM":/^(\+?374|0)((10|[9|7][0-9])\d{6}$|[2-4]\d{7}$)/,"ar-AE":/^((\+?971)|0)?5[024568]\d{7}$/,"ar-BH":/^(\+?973)?(3|6)\d{7}$/,"ar-DZ":/^(\+?213|0)(5|6|7)\d{8}$/,"ar-LB":/^(\+?961)?((3|81)\d{6}|7\d{7})$/,"ar-EG":/^((\+?20)|0)?1[0125]\d{8}$/,"ar-IQ":/^(\+?964|0)?7[0-9]\d{8}$/,"ar-JO":/^(\+?962|0)?7[789]\d{7}$/,"ar-KW":/^(\+?965)[569]\d{7}$/,"ar-LY":/^((\+?218)|0)?(9[1-6]\d{7}|[1-8]\d{7,9})$/,"ar-MA":/^(?:(?:\+|00)212|0)[5-7]\d{8}$/,"ar-OM":/^((\+|00)968)?(9[1-9])\d{6}$/,"ar-PS":/^(\+?970|0)5[6|9](\d{7})$/,"ar-SA":/^(!?(\+?966)|0)?5\d{8}$/,"ar-SY":/^(!?(\+?963)|0)?9\d{8}$/,"ar-TN":/^(\+?216)?[2459]\d{7}$/,"az-AZ":/^(\+994|0)(5[015]|7[07]|99)\d{7}$/,"bs-BA":/^((((\+|00)3876)|06))((([0-3]|[5-6])\d{6})|(4\d{7}))$/,"be-BY":/^(\+?375)?(24|25|29|33|44)\d{7}$/,"bg-BG":/^(\+?359|0)?8[789]\d{7}$/,"bn-BD":/^(\+?880|0)1[13456789][0-9]{8}$/,"ca-AD":/^(\+376)?[346]\d{5}$/,"cs-CZ":/^(\+?420)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,"da-DK":/^(\+?45)?\s?\d{2}\s?\d{2}\s?\d{2}\s?\d{2}$/,"de-DE":/^((\+49|0)[1|3])([0|5][0-45-9]\d|6([23]|0\d?)|7([0-57-9]|6\d))\d{7,9}$/,"de-AT":/^(\+43|0)\d{1,4}\d{3,12}$/,"de-CH":/^(\+41|0)([1-9])\d{1,9}$/,"de-LU":/^(\+352)?((6\d1)\d{6})$/,"dv-MV":/^(\+?960)?(7[2-9]|91|9[3-9])\d{7}$/,"el-GR":/^(\+?30|0)?(69\d{8})$/,"en-AU":/^(\+?61|0)4\d{8}$/,"en-BM":/^(\+?1)?441(((3|7)\d{6}$)|(5[0-3][0-9]\d{4}$)|(59\d{5}))/,"en-GB":/^(\+?44|0)7\d{9}$/,"en-GG":/^(\+?44|0)1481\d{6}$/,"en-GH":/^(\+233|0)(20|50|24|54|27|57|26|56|23|28|55|59)\d{7}$/,"en-GY":/^(\+592|0)6\d{6}$/,"en-HK":/^(\+?852[-\s]?)?[456789]\d{3}[-\s]?\d{4}$/,"en-MO":/^(\+?853[-\s]?)?[6]\d{3}[-\s]?\d{4}$/,"en-IE":/^(\+?353|0)8[356789]\d{7}$/,"en-IN":/^(\+?91|0)?[6789]\d{9}$/,"en-KE":/^(\+?254|0)(7|1)\d{8}$/,"en-KI":/^((\+686|686)?)?( )?((6|7)(2|3|8)[0-9]{6})$/,"en-MT":/^(\+?356|0)?(99|79|77|21|27|22|25)[0-9]{6}$/,"en-MU":/^(\+?230|0)?\d{8}$/,"en-NA":/^(\+?264|0)(6|8)\d{7}$/,"en-NG":/^(\+?234|0)?[789]\d{9}$/,"en-NZ":/^(\+?64|0)[28]\d{7,9}$/,"en-PK":/^((00|\+)?92|0)3[0-6]\d{8}$/,"en-PH":/^(09|\+639)\d{9}$/,"en-RW":/^(\+?250|0)?[7]\d{8}$/,"en-SG":/^(\+65)?[3689]\d{7}$/,"en-SL":/^(\+?232|0)\d{8}$/,"en-TZ":/^(\+?255|0)?[67]\d{8}$/,"en-UG":/^(\+?256|0)?[7]\d{8}$/,"en-US":/^((\+1|1)?( |-)?)?(\([2-9][0-9]{2}\)|[2-9][0-9]{2})( |-)?([2-9][0-9]{2}( |-)?[0-9]{4})$/,"en-ZA":/^(\+?27|0)\d{9}$/,"en-ZM":/^(\+?26)?09[567]\d{7}$/,"en-ZW":/^(\+263)[0-9]{9}$/,"en-BW":/^(\+?267)?(7[1-8]{1})\d{6}$/,"es-AR":/^\+?549(11|[2368]\d)\d{8}$/,"es-BO":/^(\+?591)?(6|7)\d{7}$/,"es-CO":/^(\+?57)?3(0(0|1|2|4|5)|1\d|2[0-4]|5(0|1))\d{7}$/,"es-CL":/^(\+?56|0)[2-9]\d{1}\d{7}$/,"es-CR":/^(\+506)?[2-8]\d{7}$/,"es-CU":/^(\+53|0053)?5\d{7}/,"es-DO":/^(\+?1)?8[024]9\d{7}$/,"es-HN":/^(\+?504)?[9|8]\d{7}$/,"es-EC":/^(\+?593|0)([2-7]|9[2-9])\d{7}$/,"es-ES":/^(\+?34)?[6|7]\d{8}$/,"es-PE":/^(\+?51)?9\d{8}$/,"es-MX":/^(\+?52)?(1|01)?\d{10,11}$/,"es-PA":/^(\+?507)\d{7,8}$/,"es-PY":/^(\+?595|0)9[9876]\d{7}$/,"es-SV":/^(\+?503)?[67]\d{7}$/,"es-UY":/^(\+598|0)9[1-9][\d]{6}$/,"es-VE":/^(\+?58)?(2|4)\d{9}$/,"et-EE":/^(\+?372)?\s?(5|8[1-4])\s?([0-9]\s?){6,7}$/,"fa-IR":/^(\+?98[\-\s]?|0)9[0-39]\d[\-\s]?\d{3}[\-\s]?\d{4}$/,"fi-FI":/^(\+?358|0)\s?(4(0|1|2|4|5|6)?|50)\s?(\d\s?){4,8}\d$/,"fj-FJ":/^(\+?679)?\s?\d{3}\s?\d{4}$/,"fo-FO":/^(\+?298)?\s?\d{2}\s?\d{2}\s?\d{2}$/,"fr-BF":/^(\+226|0)[67]\d{7}$/,"fr-CM":/^(\+?237)6[0-9]{8}$/,"fr-FR":/^(\+?33|0)[67]\d{8}$/,"fr-GF":/^(\+?594|0|00594)[67]\d{8}$/,"fr-GP":/^(\+?590|0|00590)[67]\d{8}$/,"fr-MQ":/^(\+?596|0|00596)[67]\d{8}$/,"fr-PF":/^(\+?689)?8[789]\d{6}$/,"fr-RE":/^(\+?262|0|00262)[67]\d{8}$/,"he-IL":/^(\+972|0)([23489]|5[012345689]|77)[1-9]\d{6}$/,"hu-HU":/^(\+?36|06)(20|30|31|50|70)\d{7}$/,"id-ID":/^(\+?62|0)8(1[123456789]|2[1238]|3[1238]|5[12356789]|7[78]|9[56789]|8[123456789])([\s?|\d]{5,11})$/,"it-IT":/^(\+?39)?\s?3\d{2} ?\d{6,7}$/,"it-SM":/^((\+378)|(0549)|(\+390549)|(\+3780549))?6\d{5,9}$/,"ja-JP":/^(\+81[ \-]?(\(0\))?|0)[6789]0[ \-]?\d{4}[ \-]?\d{4}$/,"ka-GE":/^(\+?995)?(5|79)\d{7}$/,"kk-KZ":/^(\+?7|8)?7\d{9}$/,"kl-GL":/^(\+?299)?\s?\d{2}\s?\d{2}\s?\d{2}$/,"ko-KR":/^((\+?82)[ \-]?)?0?1([0|1|6|7|8|9]{1})[ \-]?\d{3,4}[ \-]?\d{4}$/,"lt-LT":/^(\+370|8)\d{8}$/,"lv-LV":/^(\+?371)2\d{7}$/,"ms-MY":/^(\+?6?01){1}(([0145]{1}(\-|\s)?\d{7,8})|([236789]{1}(\s|\-)?\d{7}))$/,"mz-MZ":/^(\+?258)?8[234567]\d{7}$/,"nb-NO":/^(\+?47)?[49]\d{7}$/,"ne-NP":/^(\+?977)?9[78]\d{8}$/,"nl-BE":/^(\+?32|0)4\d{8}$/,"nl-NL":/^(((\+|00)?31\(0\))|((\+|00)?31)|0)6{1}\d{8}$/,"nn-NO":/^(\+?47)?[49]\d{7}$/,"pl-PL":/^(\+?48)? ?[5-8]\d ?\d{3} ?\d{2} ?\d{2}$/,"pt-BR":/^((\+?55\ ?[1-9]{2}\ ?)|(\+?55\ ?\([1-9]{2}\)\ ?)|(0[1-9]{2}\ ?)|(\([1-9]{2}\)\ ?)|([1-9]{2}\ ?))((\d{4}\-?\d{4})|(9[2-9]{1}\d{3}\-?\d{4}))$/,"pt-PT":/^(\+?351)?9[1236]\d{7}$/,"pt-AO":/^(\+244)\d{9}$/,"ro-RO":/^(\+?4?0)\s?7\d{2}(\/|\s|\.|\-)?\d{3}(\s|\.|\-)?\d{3}$/,"ru-RU":/^(\+?7|8)?9\d{9}$/,"si-LK":/^(?:0|94|\+94)?(7(0|1|2|4|5|6|7|8)( |-)?)\d{7}$/,"sl-SI":/^(\+386\s?|0)(\d{1}\s?\d{3}\s?\d{2}\s?\d{2}|\d{2}\s?\d{3}\s?\d{3})$/,"sk-SK":/^(\+?421)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,"sq-AL":/^(\+355|0)6[789]\d{6}$/,"sr-RS":/^(\+3816|06)[- \d]{5,9}$/,"sv-SE":/^(\+?46|0)[\s\-]?7[\s\-]?[02369]([\s\-]?\d){7}$/,"tg-TJ":/^(\+?992)?[5][5]\d{7}$/,"th-TH":/^(\+66|66|0)\d{9}$/,"tr-TR":/^(\+?90|0)?5\d{9}$/,"tk-TM":/^(\+993|993|8)\d{8}$/,"uk-UA":/^(\+?38|8)?0\d{9}$/,"uz-UZ":/^(\+?998)?(6[125-79]|7[1-69]|88|9\d)\d{7}$/,"vi-VN":/^((\+?84)|0)((3([2-9]))|(5([25689]))|(7([0|6-9]))|(8([1-9]))|(9([0-9])))([0-9]{7})$/,"zh-CN":/^((\+|00)86)?(1[3-9]|9[28])\d{9}$/,"zh-TW":/^(\+?886\-?|0)?9\d{8}$/,"dz-BT":/^(\+?975|0)?(17|16|77|02)\d{6}$/};o["en-CA"]=o["en-US"],o["fr-CA"]=o["en-CA"],o["fr-BE"]=o["nl-BE"],o["zh-HK"]=o["en-HK"],o["zh-MO"]=o["en-MO"],o["ga-IE"]=o["en-IE"],o["fr-CH"]=o["de-CH"],o["it-CH"]=o["fr-CH"];var a=Object.keys(o);r.locales=a},{"./util/assertString":136}],104:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,n.default)(e),(0,i.default)(e)&&24===e.length};var n=o(e("./util/assertString")),i=o(e("./isHexadecimal"));function o(e){return e&&e.__esModule?e:{default:e}}t.exports=r.default,t.exports.default=r.default},{"./isHexadecimal":76,"./util/assertString":136}],105:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e),o.test(e)};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=/[^\x00-\x7F]/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],106:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){if((0,i.default)(e),t&&t.no_symbols)return a.test(e);return new RegExp("^[+-]?([0-9]*[".concat((t||{}).locale?o.decimal[t.locale]:".","])?[0-9]+$")).test(e)};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n},o=e("./alpha");var a=/^[0-9]+$/;t.exports=r.default,t.exports.default=r.default},{"./alpha":42,"./util/assertString":136}],107:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e),o.test(e)};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=/^(0o)?[0-7]+$/i;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],108:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){(0,i.default)(e);var r=e.replace(/\s/g,"").toUpperCase();return t.toUpperCase()in o&&o[t].test(r)};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o={AM:/^[A-Z]{2}\d{7}$/,AR:/^[A-Z]{3}\d{6}$/,AT:/^[A-Z]\d{7}$/,AU:/^[A-Z]\d{7}$/,BE:/^[A-Z]{2}\d{6}$/,BG:/^\d{9}$/,BR:/^[A-Z]{2}\d{6}$/,BY:/^[A-Z]{2}\d{7}$/,CA:/^[A-Z]{2}\d{6}$/,CH:/^[A-Z]\d{7}$/,CN:/^G\d{8}$|^E(?![IO])[A-Z0-9]\d{7}$/,CY:/^[A-Z](\d{6}|\d{8})$/,CZ:/^\d{8}$/,DE:/^[CFGHJKLMNPRTVWXYZ0-9]{9}$/,DK:/^\d{9}$/,DZ:/^\d{9}$/,EE:/^([A-Z]\d{7}|[A-Z]{2}\d{7})$/,ES:/^[A-Z0-9]{2}([A-Z0-9]?)\d{6}$/,FI:/^[A-Z]{2}\d{7}$/,FR:/^\d{2}[A-Z]{2}\d{5}$/,GB:/^\d{9}$/,GR:/^[A-Z]{2}\d{7}$/,HR:/^\d{9}$/,HU:/^[A-Z]{2}(\d{6}|\d{7})$/,IE:/^[A-Z0-9]{2}\d{7}$/,IN:/^[A-Z]{1}-?\d{7}$/,ID:/^[A-C]\d{7}$/,IR:/^[A-Z]\d{8}$/,IS:/^(A)\d{7}$/,IT:/^[A-Z0-9]{2}\d{7}$/,JP:/^[A-Z]{2}\d{7}$/,KR:/^[MS]\d{8}$/,LT:/^[A-Z0-9]{8}$/,LU:/^[A-Z0-9]{8}$/,LV:/^[A-Z0-9]{2}\d{7}$/,LY:/^[A-Z0-9]{8}$/,MT:/^\d{7}$/,MZ:/^([A-Z]{2}\d{7})|(\d{2}[A-Z]{2}\d{5})$/,MY:/^[AHK]\d{8}$/,NL:/^[A-Z]{2}[A-Z0-9]{6}\d$/,PL:/^[A-Z]{2}\d{7}$/,PT:/^[A-Z]\d{6}$/,RO:/^\d{8,9}$/,RU:/^\d{9}$/,SE:/^\d{8}$/,SL:/^(P)[A-Z]\d{7}$/,SK:/^[0-9A-Z]\d{7}$/,TR:/^[A-Z]\d{8}$/,UA:/^[A-Z]{2}\d{6}$/,US:/^\d{9}$/};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],109:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e,{min:0,max:65535})};var n,i=(n=e("./isInt"))&&n.__esModule?n:{default:n};t.exports=r.default,t.exports.default=r.default},{"./isInt":91}],110:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){if((0,i.default)(e),t in u)return u[t].test(e);if("any"===t){for(var r in u){if(u.hasOwnProperty(r))if(u[r].test(e))return!0}return!1}throw new Error("Invalid locale '".concat(t,"'"))},r.locales=void 0;var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=/^\d{4}$/,a=/^\d{5}$/,s=/^\d{6}$/,u={AD:/^AD\d{3}$/,AT:o,AU:o,AZ:/^AZ\d{4}$/,BE:o,BG:o,BR:/^\d{5}-\d{3}$/,BY:/2[1-4]{1}\d{4}$/,CA:/^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJ-NPRSTV-Z][\s\-]?\d[ABCEGHJ-NPRSTV-Z]\d$/i,CH:o,CN:/^(0[1-7]|1[012356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[1-5]|8[1345]|9[09])\d{4}$/,CZ:/^\d{3}\s?\d{2}$/,DE:a,DK:o,DO:a,DZ:a,EE:a,ES:/^(5[0-2]{1}|[0-4]{1}\d{1})\d{3}$/,FI:a,FR:/^\d{2}\s?\d{3}$/,GB:/^(gir\s?0aa|[a-z]{1,2}\d[\da-z]?\s?(\d[a-z]{2})?)$/i,GR:/^\d{3}\s?\d{2}$/,HR:/^([1-5]\d{4}$)/,HT:/^HT\d{4}$/,HU:o,ID:a,IE:/^(?!.*(?:o))[A-Za-z]\d[\dw]\s\w{4}$/i,IL:/^(\d{5}|\d{7})$/,IN:/^((?!10|29|35|54|55|65|66|86|87|88|89)[1-9][0-9]{5})$/,IR:/\b(?!(\d)\1{3})[13-9]{4}[1346-9][013-9]{5}\b/,IS:/^\d{3}$/,IT:a,JP:/^\d{3}\-\d{4}$/,KE:a,KR:/^(\d{5}|\d{6})$/,LI:/^(948[5-9]|949[0-7])$/,LT:/^LT\-\d{5}$/,LU:o,LV:/^LV\-\d{4}$/,LK:a,MX:a,MT:/^[A-Za-z]{3}\s{0,1}\d{4}$/,MY:a,NL:/^\d{4}\s?[a-z]{2}$/i,NO:o,NP:/^(10|21|22|32|33|34|44|45|56|57)\d{3}$|^(977)$/i,NZ:o,PL:/^\d{2}\-\d{3}$/,PR:/^00[679]\d{2}([ -]\d{4})?$/,PT:/^\d{4}\-\d{3}?$/,RO:s,RU:s,SA:a,SE:/^[1-9]\d{2}\s?\d{2}$/,SG:s,SI:o,SK:/^\d{3}\s?\d{2}$/,TH:a,TN:o,TW:/^\d{3}(\d{2})?$/,UA:a,US:/^\d{5}(-\d{4})?$/,ZA:o,ZM:a},l=Object.keys(u);r.locales=l},{"./util/assertString":136}],111:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e),f.test(e)};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=/([01][0-9]|2[0-3])/,a=/[0-5][0-9]/,s=new RegExp("[-+]".concat(o.source,":").concat(a.source)),u=new RegExp("([zZ]|".concat(s.source,")")),l=new RegExp("".concat(o.source,":").concat(a.source,":").concat(/([0-5][0-9]|60)/.source).concat(/(\.[0-9]+)?/.source)),c=new RegExp("".concat(/[0-9]{4}/.source,"-").concat(/(0[1-9]|1[0-2])/.source,"-").concat(/([12]\d|0[1-9]|3[01])/.source)),d=new RegExp("".concat(l.source).concat(u.source)),f=new RegExp("^".concat(c.source,"[ tT]").concat(d.source,"$"));t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],112:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if((0,i.default)(e),!t)return o.test(e)||a.test(e);return o.test(e)||a.test(e)||s.test(e)||u.test(e)};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=/^rgb\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){2}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\)$/,a=/^rgba\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){3}(0?\.\d|1(\.0)?|0(\.0)?)\)$/,s=/^rgb\((([0-9]%|[1-9][0-9]%|100%),){2}([0-9]%|[1-9][0-9]%|100%)\)/,u=/^rgba\((([0-9]%|[1-9][0-9]%|100%),){3}(0?\.\d|1(\.0)?|0(\.0)?)\)/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],113:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,n.default)(e),o.test(e)};var n=i(e("./util/assertString"));function i(e){return e&&e.__esModule?e:{default:e}}var o=(0,i(e("./util/multilineRegex")).default)(["^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)","(?:-((?:0|[1-9]\\d*|\\d*[a-z-][0-9a-z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-z-][0-9a-z-]*))*))","?(?:\\+([0-9a-z-]+(?:\\.[0-9a-z-]+)*))?$"],"i");t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136,"./util/multilineRegex":139}],114:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e),o.test(e)};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=/^[^\s-_](?!.*?[-_]{2,})[a-z0-9-\\][^\s]*[^-_\s]$/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],115:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;(0,i.default)(e);var r=d(e);if((t=(0,n.default)(t||{},c)).returnScore)return f(r,t);return r.length>=t.minLength&&r.lowercaseCount>=t.minLowercase&&r.uppercaseCount>=t.minUppercase&&r.numberCount>=t.minNumbers&&r.symbolCount>=t.minSymbols};var n=o(e("./util/merge")),i=o(e("./util/assertString"));function o(e){return e&&e.__esModule?e:{default:e}}var a=/^[A-Z]$/,s=/^[a-z]$/,u=/^[0-9]$/,l=/^[-#!$@%^&*()_+|~=`{}\[\]:";'<>?,.\/ ]$/,c={minLength:8,minLowercase:1,minUppercase:1,minNumbers:1,minSymbols:1,returnScore:!1,pointsPerUnique:1,pointsPerRepeat:.5,pointsForContainingLower:10,pointsForContainingUpper:10,pointsForContainingNumber:10,pointsForContainingSymbol:10};function d(e){var t,r,n=(t=e,r={},Array.from(t).forEach((function(e){r[e]?r[e]+=1:r[e]=1})),r),i={length:e.length,uniqueChars:Object.keys(n).length,uppercaseCount:0,lowercaseCount:0,numberCount:0,symbolCount:0};return Object.keys(n).forEach((function(e){a.test(e)?i.uppercaseCount+=n[e]:s.test(e)?i.lowercaseCount+=n[e]:u.test(e)?i.numberCount+=n[e]:l.test(e)&&(i.symbolCount+=n[e])})),i}function f(e,t){var r=0;return r+=e.uniqueChars*t.pointsPerUnique,r+=(e.length-e.uniqueChars)*t.pointsPerRepeat,e.lowercaseCount>0&&(r+=t.pointsForContainingLower),e.uppercaseCount>0&&(r+=t.pointsForContainingUpper),e.numberCount>0&&(r+=t.pointsForContainingNumber),e.symbolCount>0&&(r+=t.pointsForContainingSymbol),r}t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136,"./util/merge":138}],116:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e),o.test(e)};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o=/[\uD800-\uDBFF][\uDC00-\uDFFF]/;t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],117:[function(e,t,r){"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"en-US";(0,i.default)(e);var r=e.slice(0);if(t in p)return t in g&&(r=r.replace(g[t],"")),!!p[t].test(r)&&(!(t in h)||h[t](r));throw new Error("Invalid locale '".concat(t,"'"))};var i=u(e("./util/assertString")),o=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var t=s();if(t&&t.has(e))return t.get(e);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var o in e)if(Object.prototype.hasOwnProperty.call(e,o)){var a=i?Object.getOwnPropertyDescriptor(e,o):null;a&&(a.get||a.set)?Object.defineProperty(r,o,a):r[o]=e[o]}r.default=e,t&&t.set(e,r);return r}(e("./util/algorithms")),a=u(e("./isDate"));function s(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return s=function(){return e},e}function u(e){return e&&e.__esModule?e:{default:e}}function l(e){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return c(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return c(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var d={andover:["10","12"],atlanta:["60","67"],austin:["50","53"],brookhaven:["01","02","03","04","05","06","11","13","14","16","21","22","23","25","34","51","52","54","55","56","57","58","59","65"],cincinnati:["30","32","35","36","37","38","61"],fresno:["15","24"],internet:["20","26","27","45","46","47"],kansas:["40","44"],memphis:["94","95"],ogden:["80","90"],philadelphia:["33","39","41","42","43","46","48","62","63","64","66","68","71","72","73","74","75","76","77","81","82","83","84","85","86","87","88","91","92","93","98","99"],sba:["31"]};function f(e){for(var t=!1,r=!1,n=0;n<3;n++)if(!t&&/[AEIOU]/.test(e[n]))t=!0;else if(!r&&t&&"X"===e[n])r=!0;else if(n>0){if(t&&!r&&!/[AEIOU]/.test(e[n]))return!1;if(r&&!/X/.test(e[n]))return!1}return!0}var p={"bg-BG":/^\d{10}$/,"cs-CZ":/^\d{6}\/{0,1}\d{3,4}$/,"de-AT":/^\d{9}$/,"de-DE":/^[1-9]\d{10}$/,"dk-DK":/^\d{6}-{0,1}\d{4}$/,"el-CY":/^[09]\d{7}[A-Z]$/,"el-GR":/^([0-4]|[7-9])\d{8}$/,"en-GB":/^\d{10}$|^(?!GB|NK|TN|ZZ)(?![DFIQUV])[A-Z](?![DFIQUVO])[A-Z]\d{6}[ABCD ]$/i,"en-IE":/^\d{7}[A-W][A-IW]{0,1}$/i,"en-US":/^\d{2}[- ]{0,1}\d{7}$/,"es-ES":/^(\d{0,8}|[XYZKLM]\d{7})[A-HJ-NP-TV-Z]$/i,"et-EE":/^[1-6]\d{6}(00[1-9]|0[1-9][0-9]|[1-6][0-9]{2}|70[0-9]|710)\d$/,"fi-FI":/^\d{6}[-+A]\d{3}[0-9A-FHJ-NPR-Y]$/i,"fr-BE":/^\d{11}$/,"fr-FR":/^[0-3]\d{12}$|^[0-3]\d\s\d{2}(\s\d{3}){3}$/,"fr-LU":/^\d{13}$/,"hr-HR":/^\d{11}$/,"hu-HU":/^8\d{9}$/,"it-IT":/^[A-Z]{6}[L-NP-V0-9]{2}[A-EHLMPRST][L-NP-V0-9]{2}[A-ILMZ][L-NP-V0-9]{3}[A-Z]$/i,"lv-LV":/^\d{6}-{0,1}\d{5}$/,"mt-MT":/^\d{3,7}[APMGLHBZ]$|^([1-8])\1\d{7}$/i,"nl-NL":/^\d{9}$/,"pl-PL":/^\d{10,11}$/,"pt-BR":/(?:^\d{11}$)|(?:^\d{14}$)/,"pt-PT":/^\d{9}$/,"ro-RO":/^\d{13}$/,"sk-SK":/^\d{6}\/{0,1}\d{3,4}$/,"sl-SI":/^[1-9]\d{7}$/,"sv-SE":/^(\d{6}[-+]{0,1}\d{4}|(18|19|20)\d{6}[-+]{0,1}\d{4})$/};p["lb-LU"]=p["fr-LU"],p["lt-LT"]=p["et-EE"],p["nl-BE"]=p["fr-BE"];var h={"bg-BG":function(e){var t=e.slice(0,2),r=parseInt(e.slice(2,4),10);r>40?(r-=40,t="20".concat(t)):r>20?(r-=20,t="18".concat(t)):t="19".concat(t),r<10&&(r="0".concat(r));var n="".concat(t,"/").concat(r,"/").concat(e.slice(4,6));if(!(0,a.default)(n,"YYYY/MM/DD"))return!1;for(var i=e.split("").map((function(e){return parseInt(e,10)})),o=[2,4,8,5,10,9,7,3,6],s=0,u=0;u<o.length;u++)s+=i[u]*o[u];return(s=s%11==10?0:s%11)===i[9]},"cs-CZ":function(e){e=e.replace(/\W/,"");var t=parseInt(e.slice(0,2),10);if(10===e.length)t=t<54?"20".concat(t):"19".concat(t);else{if("000"===e.slice(6))return!1;if(!(t<54))return!1;t="19".concat(t)}3===t.length&&(t=[t.slice(0,2),"0",t.slice(2)].join(""));var r=parseInt(e.slice(2,4),10);if(r>50&&(r-=50),r>20){if(parseInt(t,10)<2004)return!1;r-=20}r<10&&(r="0".concat(r));var n="".concat(t,"/").concat(r,"/").concat(e.slice(4,6));if(!(0,a.default)(n,"YYYY/MM/DD"))return!1;if(10===e.length&&parseInt(e,10)%11!=0){var i=parseInt(e.slice(0,9),10)%11;if(!(parseInt(t,10)<1986&&10===i))return!1;if(0!==parseInt(e.slice(9),10))return!1}return!0},"de-AT":function(e){return o.luhnCheck(e)},"de-DE":function(e){for(var t=e.split("").map((function(e){return parseInt(e,10)})),r=[],n=0;n<t.length-1;n++){r.push("");for(var i=0;i<t.length-1;i++)t[n]===t[i]&&(r[n]+=i)}if(2!==(r=r.filter((function(e){return e.length>1}))).length&&3!==r.length)return!1;if(3===r[0].length){for(var a=r[0].split("").map((function(e){return parseInt(e,10)})),s=0,u=0;u<a.length-1;u++)a[u]+1===a[u+1]&&(s+=1);if(2===s)return!1}return o.iso7064Check(e)},"dk-DK":function(e){e=e.replace(/\W/,"");var t=parseInt(e.slice(4,6),10);switch(e.slice(6,7)){case"0":case"1":case"2":case"3":t="19".concat(t);break;case"4":case"9":t=t<37?"20".concat(t):"19".concat(t);break;default:if(t<37)t="20".concat(t);else{if(!(t>58))return!1;t="18".concat(t)}}3===t.length&&(t=[t.slice(0,2),"0",t.slice(2)].join(""));var r="".concat(t,"/").concat(e.slice(2,4),"/").concat(e.slice(0,2));if(!(0,a.default)(r,"YYYY/MM/DD"))return!1;for(var n=e.split("").map((function(e){return parseInt(e,10)})),i=0,o=4,s=0;s<9;s++)i+=n[s]*o,1===(o-=1)&&(o=7);return 1!==(i%=11)&&(0===i?0===n[9]:n[9]===11-i)},"el-CY":function(e){for(var t=e.slice(0,8).split("").map((function(e){return parseInt(e,10)})),r=0,n=1;n<t.length;n+=2)r+=t[n];for(var i=0;i<t.length;i+=2)t[i]<2?r+=1-t[i]:(r+=2*(t[i]-2)+5,t[i]>4&&(r+=2));return String.fromCharCode(r%26+65)===e.charAt(8)},"el-GR":function(e){for(var t=e.split("").map((function(e){return parseInt(e,10)})),r=0,n=0;n<8;n++)r+=t[n]*Math.pow(2,8-n);return r%11%10===t[8]},"en-IE":function(e){var t=o.reverseMultiplyAndSum(e.split("").slice(0,7).map((function(e){return parseInt(e,10)})),8);return 9===e.length&&"W"!==e[8]&&(t+=9*(e[8].charCodeAt(0)-64)),0===(t%=23)?"W"===e[7].toUpperCase():e[7].toUpperCase()===String.fromCharCode(64+t)},"en-US":function(e){return-1!==function(){var e=[];for(var t in d)d.hasOwnProperty(t)&&e.push.apply(e,l(d[t]));return e}().indexOf(e.substr(0,2))},"es-ES":function(e){var t=e.toUpperCase().split("");if(isNaN(parseInt(t[0],10))&&t.length>1){var r=0;switch(t[0]){case"Y":r=1;break;case"Z":r=2}t.splice(0,1,r)}else for(;t.length<9;)t.unshift(0);t=t.join("");var n=parseInt(t.slice(0,8),10)%23;return t[8]===["T","R","W","A","G","M","Y","F","P","D","X","B","N","J","Z","S","Q","V","H","L","C","K","E"][n]},"et-EE":function(e){var t=e.slice(1,3);switch(e.slice(0,1)){case"1":case"2":t="18".concat(t);break;case"3":case"4":t="19".concat(t);break;default:t="20".concat(t)}var r="".concat(t,"/").concat(e.slice(3,5),"/").concat(e.slice(5,7));if(!(0,a.default)(r,"YYYY/MM/DD"))return!1;for(var n=e.split("").map((function(e){return parseInt(e,10)})),i=0,o=1,s=0;s<10;s++)i+=n[s]*o,10===(o+=1)&&(o=1);if(i%11==10){i=0,o=3;for(var u=0;u<10;u++)i+=n[u]*o,10===(o+=1)&&(o=1);if(i%11==10)return 0===n[10]}return i%11===n[10]},"fi-FI":function(e){var t=e.slice(4,6);switch(e.slice(6,7)){case"+":t="18".concat(t);break;case"-":t="19".concat(t);break;default:t="20".concat(t)}var r="".concat(t,"/").concat(e.slice(2,4),"/").concat(e.slice(0,2));if(!(0,a.default)(r,"YYYY/MM/DD"))return!1;var n=parseInt(e.slice(0,6)+e.slice(7,10),10)%31;return n<10?n===parseInt(e.slice(10),10):["A","B","C","D","E","F","H","J","K","L","M","N","P","R","S","T","U","V","W","X","Y"][n-=10]===e.slice(10)},"fr-BE":function(e){if("00"!==e.slice(2,4)||"00"!==e.slice(4,6)){var t="".concat(e.slice(0,2),"/").concat(e.slice(2,4),"/").concat(e.slice(4,6));if(!(0,a.default)(t,"YY/MM/DD"))return!1}var r=97-parseInt(e.slice(0,9),10)%97,n=parseInt(e.slice(9,11),10);return r===n||(r=97-parseInt("2".concat(e.slice(0,9)),10)%97)===n},"fr-FR":function(e){return e=e.replace(/\s/g,""),parseInt(e.slice(0,10),10)%511===parseInt(e.slice(10,13),10)},"fr-LU":function(e){var t="".concat(e.slice(0,4),"/").concat(e.slice(4,6),"/").concat(e.slice(6,8));return!!(0,a.default)(t,"YYYY/MM/DD")&&(!!o.luhnCheck(e.slice(0,12))&&o.verhoeffCheck("".concat(e.slice(0,11)).concat(e[12])))},"hr-HR":function(e){return o.iso7064Check(e)},"hu-HU":function(e){for(var t=e.split("").map((function(e){return parseInt(e,10)})),r=8,n=1;n<9;n++)r+=t[n]*(n+1);return r%11===t[9]},"it-IT":function(e){var t=e.toUpperCase().split("");if(!f(t.slice(0,3)))return!1;if(!f(t.slice(3,6)))return!1;for(var r={L:"0",M:"1",N:"2",P:"3",Q:"4",R:"5",S:"6",T:"7",U:"8",V:"9"},n=0,i=[6,7,9,10,12,13,14];n<i.length;n++){var o=i[n];t[o]in r&&t.splice(o,1,r[t[o]])}var s={A:"01",B:"02",C:"03",D:"04",E:"05",H:"06",L:"07",M:"08",P:"09",R:"10",S:"11",T:"12"}[t[8]],u=parseInt(t[9]+t[10],10);u>40&&(u-=40),u<10&&(u="0".concat(u));var l="".concat(t[6]).concat(t[7],"/").concat(s,"/").concat(u);if(!(0,a.default)(l,"YY/MM/DD"))return!1;for(var c=0,d=1;d<t.length-1;d+=2){var p=parseInt(t[d],10);isNaN(p)&&(p=t[d].charCodeAt(0)-65),c+=p}for(var h={A:1,B:0,C:5,D:7,E:9,F:13,G:15,H:17,I:19,J:21,K:2,L:4,M:18,N:20,O:11,P:3,Q:6,R:8,S:12,T:14,U:16,V:10,W:22,X:25,Y:24,Z:23,0:1,1:0},m=0;m<t.length-1;m+=2){var g=0;if(t[m]in h)g=h[t[m]];else{var v=parseInt(t[m],10);g=2*v+1,v>4&&(g+=2)}c+=g}return String.fromCharCode(65+c%26)===t[15]},"lv-LV":function(e){var t=(e=e.replace(/\W/,"")).slice(0,2);if("32"!==t){if("00"!==e.slice(2,4)){var r=e.slice(4,6);switch(e[6]){case"0":r="18".concat(r);break;case"1":r="19".concat(r);break;default:r="20".concat(r)}var n="".concat(r,"/").concat(e.slice(2,4),"/").concat(t);if(!(0,a.default)(n,"YYYY/MM/DD"))return!1}for(var i=1101,o=[1,6,3,7,9,10,5,8,4,2],s=0;s<e.length-1;s++)i-=parseInt(e[s],10)*o[s];return parseInt(e[10],10)===i%11}return!0},"mt-MT":function(e){if(9!==e.length){for(var t=e.toUpperCase().split("");t.length<8;)t.unshift(0);switch(e[7]){case"A":case"P":if(0===parseInt(t[6],10))return!1;break;default:var r=parseInt(t.join("").slice(0,5),10);if(r>32e3)return!1;if(r===parseInt(t.join("").slice(5,7),10))return!1}}return!0},"nl-NL":function(e){return o.reverseMultiplyAndSum(e.split("").slice(0,8).map((function(e){return parseInt(e,10)})),9)%11===parseInt(e[8],10)},"pl-PL":function(e){if(10===e.length){for(var t=[6,5,7,2,3,4,5,6,7],r=0,n=0;n<t.length;n++)r+=parseInt(e[n],10)*t[n];return 10!==(r%=11)&&r===parseInt(e[9],10)}var i=e.slice(0,2),o=parseInt(e.slice(2,4),10);o>80?(i="18".concat(i),o-=80):o>60?(i="22".concat(i),o-=60):o>40?(i="21".concat(i),o-=40):o>20?(i="20".concat(i),o-=20):i="19".concat(i),o<10&&(o="0".concat(o));var s="".concat(i,"/").concat(o,"/").concat(e.slice(4,6));if(!(0,a.default)(s,"YYYY/MM/DD"))return!1;for(var u=0,l=1,c=0;c<e.length-1;c++)u+=parseInt(e[c],10)*l%10,(l+=2)>10?l=1:5===l&&(l+=2);return(u=10-u%10)===parseInt(e[10],10)},"pt-BR":function(e){if(11===e.length){var t,r;if(t=0,"11111111111"===e||"22222222222"===e||"33333333333"===e||"44444444444"===e||"55555555555"===e||"66666666666"===e||"77777777777"===e||"88888888888"===e||"99999999999"===e||"00000000000"===e)return!1;for(var n=1;n<=9;n++)t+=parseInt(e.substring(n-1,n),10)*(11-n);if(10===(r=10*t%11)&&(r=0),r!==parseInt(e.substring(9,10),10))return!1;t=0;for(var i=1;i<=10;i++)t+=parseInt(e.substring(i-1,i),10)*(12-i);return 10===(r=10*t%11)&&(r=0),r===parseInt(e.substring(10,11),10)}if("00000000000000"===e||"11111111111111"===e||"22222222222222"===e||"33333333333333"===e||"44444444444444"===e||"55555555555555"===e||"66666666666666"===e||"77777777777777"===e||"88888888888888"===e||"99999999999999"===e)return!1;for(var o=e.length-2,a=e.substring(0,o),s=e.substring(o),u=0,l=o-7,c=o;c>=1;c--)u+=a.charAt(o-c)*l,(l-=1)<2&&(l=9);var d=u%11<2?0:11-u%11;if(d!==parseInt(s.charAt(0),10))return!1;o+=1,a=e.substring(0,o),u=0,l=o-7;for(var f=o;f>=1;f--)u+=a.charAt(o-f)*l,(l-=1)<2&&(l=9);return(d=u%11<2?0:11-u%11)===parseInt(s.charAt(1),10)},"pt-PT":function(e){var t=11-o.reverseMultiplyAndSum(e.split("").slice(0,8).map((function(e){return parseInt(e,10)})),9)%11;return t>9?0===parseInt(e[8],10):t===parseInt(e[8],10)},"ro-RO":function(e){if("9000"!==e.slice(0,4)){var t=e.slice(1,3);switch(e[0]){case"1":case"2":t="19".concat(t);break;case"3":case"4":t="18".concat(t);break;case"5":case"6":t="20".concat(t)}var r="".concat(t,"/").concat(e.slice(3,5),"/").concat(e.slice(5,7));if(8===r.length){if(!(0,a.default)(r,"YY/MM/DD"))return!1}else if(!(0,a.default)(r,"YYYY/MM/DD"))return!1;for(var n=e.split("").map((function(e){return parseInt(e,10)})),i=[2,7,9,1,4,6,3,5,8,2,7,9],o=0,s=0;s<i.length;s++)o+=n[s]*i[s];return o%11==10?1===n[12]:n[12]===o%11}return!0},"sk-SK":function(e){if(9===e.length){if("000"===(e=e.replace(/\W/,"")).slice(6))return!1;var t=parseInt(e.slice(0,2),10);if(t>53)return!1;t=t<10?"190".concat(t):"19".concat(t);var r=parseInt(e.slice(2,4),10);r>50&&(r-=50),r<10&&(r="0".concat(r));var n="".concat(t,"/").concat(r,"/").concat(e.slice(4,6));if(!(0,a.default)(n,"YYYY/MM/DD"))return!1}return!0},"sl-SI":function(e){var t=11-o.reverseMultiplyAndSum(e.split("").slice(0,7).map((function(e){return parseInt(e,10)})),8)%11;return 10===t?0===parseInt(e[7],10):t===parseInt(e[7],10)},"sv-SE":function(e){var t=e.slice(0);e.length>11&&(t=t.slice(2));var r="",n=t.slice(2,4),i=parseInt(t.slice(4,6),10);if(e.length>11)r=e.slice(0,4);else if(r=e.slice(0,2),11===e.length&&i<60){var s=(new Date).getFullYear().toString(),u=parseInt(s.slice(0,2),10);if(s=parseInt(s,10),"-"===e[6])r=parseInt("".concat(u).concat(r),10)>s?"".concat(u-1).concat(r):"".concat(u).concat(r);else if(r="".concat(u-1).concat(r),s-parseInt(r,10)<100)return!1}i>60&&(i-=60),i<10&&(i="0".concat(i));var l="".concat(r,"/").concat(n,"/").concat(i);if(8===l.length){if(!(0,a.default)(l,"YY/MM/DD"))return!1}else if(!(0,a.default)(l,"YYYY/MM/DD"))return!1;return o.luhnCheck(e.replace(/\W/,""))}};h["lb-LU"]=h["fr-LU"],h["lt-LT"]=h["et-EE"],h["nl-BE"]=h["fr-BE"];var m=/[-\\\/!@#$%\^&\*\(\)\+\=\[\]]+/g,g={"de-AT":m,"de-DE":/[\/\\]/g,"fr-BE":m};g["nl-BE"]=g["fr-BE"],t.exports=r.default,t.exports.default=r.default},{"./isDate":62,"./util/algorithms":135,"./util/assertString":136}],118:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){if((0,n.default)(e),!e||/[\s<>]/.test(e))return!1;if(0===e.indexOf("mailto:"))return!1;if((t=(0,a.default)(t,l)).validate_length&&e.length>=2083)return!1;if(!t.allow_fragments&&e.includes("#"))return!1;if(!t.allow_query_components&&(e.includes("?")||e.includes("&")))return!1;var r,s,f,p,h,m,g,v;if(g=e.split("#"),e=g.shift(),g=e.split("?"),e=g.shift(),(g=e.split("://")).length>1){if(r=g.shift().toLowerCase(),t.require_valid_protocol&&-1===t.protocols.indexOf(r))return!1}else{if(t.require_protocol)return!1;if("//"===e.substr(0,2)){if(!t.allow_protocol_relative_urls)return!1;g[0]=e.substr(2)}}if(""===(e=g.join("://")))return!1;if(g=e.split("/"),""===(e=g.shift())&&!t.require_host)return!0;if((g=e.split("@")).length>1){if(t.disallow_auth)return!1;if(""===g[0])return!1;if((s=g.shift()).indexOf(":")>=0&&s.split(":").length>2)return!1;var b=s.split(":"),y=(E=2,function(e){if(Array.isArray(e))return e}(_=b)||function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var r=[],n=!0,i=!1,o=void 0;try{for(var a,s=e[Symbol.iterator]();!(n=(a=s.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){i=!0,o=e}finally{try{n||null==s.return||s.return()}finally{if(i)throw o}}return r}}(_,E)||function(e,t){if(e){if("string"==typeof e)return u(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?u(e,t):void 0}}(_,E)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),S=y[0],A=y[1];if(""===S&&""===A)return!1}var _,E;p=g.join("@"),m=null,v=null;var M=p.match(c);M?(f="",v=M[1],m=M[2]||null):(g=p.split(":"),f=g.shift(),g.length&&(m=g.join(":")));if(null!==m&&m.length>0){if(h=parseInt(m,10),!/^[0-9]+$/.test(m)||h<=0||h>65535)return!1}else if(t.require_port)return!1;if(t.host_whitelist)return d(f,t.host_whitelist);if(!((0,o.default)(f)||(0,i.default)(f,t)||v&&(0,o.default)(v,6)))return!1;if(f=f||v,t.host_blacklist&&d(f,t.host_blacklist))return!1;return!0};var n=s(e("./util/assertString")),i=s(e("./isFQDN")),o=s(e("./isIP")),a=s(e("./util/merge"));function s(e){return e&&e.__esModule?e:{default:e}}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var l={protocols:["http","https","ftp"],require_tld:!0,require_protocol:!1,require_host:!0,require_port:!1,require_valid_protocol:!0,allow_underscores:!1,allow_trailing_dot:!1,allow_protocol_relative_urls:!1,allow_fragments:!0,allow_query_components:!0,validate_length:!0},c=/^\[([^\]]+)\](?::([0-9]+))?$/;function d(e,t){for(var r=0;r<t.length;r++){var n=t[r];if(e===n||(i=n,"[object RegExp]"===Object.prototype.toString.call(i)&&n.test(e)))return!0}var i;return!1}t.exports=r.default,t.exports.default=r.default},{"./isFQDN":69,"./isIP":79,"./util/assertString":136,"./util/merge":138}],119:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){(0,i.default)(e);var r=o[[void 0,null].includes(t)?"all":t];return!!r&&r.test(e)};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o={1:/^[0-9A-F]{8}-[0-9A-F]{4}-1[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,2:/^[0-9A-F]{8}-[0-9A-F]{4}-2[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,3:/^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,4:/^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,5:/^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,all:/^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],120:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e),e===e.toUpperCase()};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],121:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){if((0,i.default)(e),(0,i.default)(t),t in o)return o[t].test(e);throw new Error("Invalid country code: '".concat(t,"'"))},r.vatMatchers=void 0;var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};var o={GB:/^GB((\d{3} \d{4} ([0-8][0-9]|9[0-6]))|(\d{9} \d{3})|(((GD[0-4])|(HA[5-9]))[0-9]{2}))$/,IT:/^(IT)?[0-9]{11}$/,NL:/^(NL)?[0-9]{9}B[0-9]{2}$/};r.vatMatchers=o},{"./util/assertString":136}],122:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e),o.fullWidth.test(e)&&a.halfWidth.test(e)};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n},o=e("./isFullWidth"),a=e("./isHalfWidth");t.exports=r.default,t.exports.default=r.default},{"./isFullWidth":71,"./isHalfWidth":73,"./util/assertString":136}],123:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){(0,i.default)(e);for(var r=e.length-1;r>=0;r--)if(-1===t.indexOf(e[r]))return!1;return!0};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],124:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){(0,i.default)(e);var r=t?new RegExp("^[".concat(t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"]+"),"g"):/^\s+/g;return e.replace(r,"")};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],125:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t,r){(0,i.default)(e),"[object RegExp]"!==Object.prototype.toString.call(t)&&(t=new RegExp(t,r));return t.test(e)};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],126:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){t=(0,i.default)(t,o);var r=e.split("@"),n=r.pop(),d=[r.join("@"),n];if(d[1]=d[1].toLowerCase(),"gmail.com"===d[1]||"googlemail.com"===d[1]){if(t.gmail_remove_subaddress&&(d[0]=d[0].split("+")[0]),t.gmail_remove_dots&&(d[0]=d[0].replace(/\.+/g,c)),!d[0].length)return!1;(t.all_lowercase||t.gmail_lowercase)&&(d[0]=d[0].toLowerCase()),d[1]=t.gmail_convert_googlemaildotcom?"gmail.com":d[1]}else if(a.indexOf(d[1])>=0){if(t.icloud_remove_subaddress&&(d[0]=d[0].split("+")[0]),!d[0].length)return!1;(t.all_lowercase||t.icloud_lowercase)&&(d[0]=d[0].toLowerCase())}else if(s.indexOf(d[1])>=0){if(t.outlookdotcom_remove_subaddress&&(d[0]=d[0].split("+")[0]),!d[0].length)return!1;(t.all_lowercase||t.outlookdotcom_lowercase)&&(d[0]=d[0].toLowerCase())}else if(u.indexOf(d[1])>=0){if(t.yahoo_remove_subaddress){var f=d[0].split("-");d[0]=f.length>1?f.slice(0,-1).join("-"):f[0]}if(!d[0].length)return!1;(t.all_lowercase||t.yahoo_lowercase)&&(d[0]=d[0].toLowerCase())}else l.indexOf(d[1])>=0?((t.all_lowercase||t.yandex_lowercase)&&(d[0]=d[0].toLowerCase()),d[1]="yandex.ru"):t.all_lowercase&&(d[0]=d[0].toLowerCase());return d.join("@")};var n,i=(n=e("./util/merge"))&&n.__esModule?n:{default:n};var o={all_lowercase:!0,gmail_lowercase:!0,gmail_remove_dots:!0,gmail_remove_subaddress:!0,gmail_convert_googlemaildotcom:!0,outlookdotcom_lowercase:!0,outlookdotcom_remove_subaddress:!0,yahoo_lowercase:!0,yahoo_remove_subaddress:!0,yandex_lowercase:!0,icloud_lowercase:!0,icloud_remove_subaddress:!0},a=["icloud.com","me.com"],s=["hotmail.at","hotmail.be","hotmail.ca","hotmail.cl","hotmail.co.il","hotmail.co.nz","hotmail.co.th","hotmail.co.uk","hotmail.com","hotmail.com.ar","hotmail.com.au","hotmail.com.br","hotmail.com.gr","hotmail.com.mx","hotmail.com.pe","hotmail.com.tr","hotmail.com.vn","hotmail.cz","hotmail.de","hotmail.dk","hotmail.es","hotmail.fr","hotmail.hu","hotmail.id","hotmail.ie","hotmail.in","hotmail.it","hotmail.jp","hotmail.kr","hotmail.lv","hotmail.my","hotmail.ph","hotmail.pt","hotmail.sa","hotmail.sg","hotmail.sk","live.be","live.co.uk","live.com","live.com.ar","live.com.mx","live.de","live.es","live.eu","live.fr","live.it","live.nl","msn.com","outlook.at","outlook.be","outlook.cl","outlook.co.il","outlook.co.nz","outlook.co.th","outlook.com","outlook.com.ar","outlook.com.au","outlook.com.br","outlook.com.gr","outlook.com.pe","outlook.com.tr","outlook.com.vn","outlook.cz","outlook.de","outlook.dk","outlook.es","outlook.fr","outlook.hu","outlook.id","outlook.ie","outlook.in","outlook.it","outlook.jp","outlook.kr","outlook.lv","outlook.my","outlook.ph","outlook.pt","outlook.sa","outlook.sg","outlook.sk","passport.com"],u=["rocketmail.com","yahoo.ca","yahoo.co.uk","yahoo.com","yahoo.de","yahoo.fr","yahoo.in","yahoo.it","ymail.com"],l=["yandex.ru","yandex.ua","yandex.kz","yandex.com","yandex.by","ya.ru"];function c(e){return e.length>1?e:""}t.exports=r.default,t.exports.default=r.default},{"./util/merge":138}],127:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){if((0,i.default)(e),t){var r=new RegExp("[".concat(t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"]+$"),"g");return e.replace(r,"")}var n=e.length-1;for(;/\s/.test(e.charAt(n));)n-=1;return e.slice(0,n+1)};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],128:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){(0,n.default)(e);var r=t?"\\x00-\\x09\\x0B\\x0C\\x0E-\\x1F\\x7F":"\\x00-\\x1F\\x7F";return(0,i.default)(e,r)};var n=o(e("./util/assertString")),i=o(e("./blacklist"));function o(e){return e&&e.__esModule?e:{default:e}}t.exports=r.default,t.exports.default=r.default},{"./blacklist":43,"./util/assertString":136}],129:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){if((0,i.default)(e),t)return"1"===e||/^true$/i.test(e);return"0"!==e&&!/^false$/i.test(e)&&""!==e};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],130:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e),e=Date.parse(e),isNaN(e)?null:new Date(e)};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],131:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e)?parseFloat(e):NaN};var n,i=(n=e("./isFloat"))&&n.__esModule?n:{default:n};t.exports=r.default,t.exports.default=r.default},{"./isFloat":70}],132:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){return(0,i.default)(e),parseInt(e,t||10)};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],133:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){return(0,n.default)((0,i.default)(e,t),t)};var n=o(e("./rtrim")),i=o(e("./ltrim"));function o(e){return e&&e.__esModule?e:{default:e}}t.exports=r.default,t.exports.default=r.default},{"./ltrim":124,"./rtrim":127}],134:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){return(0,i.default)(e),e.replace(/&quot;/g,'"').replace(/&#x27;/g,"'").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&#x2F;/g,"/").replace(/&#x5C;/g,"\\").replace(/&#96;/g,"`").replace(/&amp;/g,"&")};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],135:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.iso7064Check=function(e){for(var t=10,r=0;r<e.length-1;r++)t=(parseInt(e[r],10)+t)%10==0?9:(parseInt(e[r],10)+t)%10*2%11;return(t=1===t?0:11-t)===parseInt(e[10],10)},r.luhnCheck=function(e){for(var t=0,r=!1,n=e.length-1;n>=0;n--){if(r){var i=2*parseInt(e[n],10);t+=i>9?i.toString().split("").map((function(e){return parseInt(e,10)})).reduce((function(e,t){return e+t}),0):i}else t+=parseInt(e[n],10);r=!r}return t%10==0},r.reverseMultiplyAndSum=function(e,t){for(var r=0,n=0;n<e.length;n++)r+=e[n]*(t-n);return r},r.verhoeffCheck=function(e){for(var t=[[0,1,2,3,4,5,6,7,8,9],[1,2,3,4,0,6,7,8,9,5],[2,3,4,0,1,7,8,9,5,6],[3,4,0,1,2,8,9,5,6,7],[4,0,1,2,3,9,5,6,7,8],[5,9,8,7,6,0,4,3,2,1],[6,5,9,8,7,1,0,4,3,2],[7,6,5,9,8,2,1,0,4,3],[8,7,6,5,9,3,2,1,0,4],[9,8,7,6,5,4,3,2,1,0]],r=[[0,1,2,3,4,5,6,7,8,9],[1,5,7,6,2,8,3,0,9,4],[5,8,0,3,7,9,6,1,4,2],[8,9,1,6,0,4,3,5,2,7],[9,4,5,3,1,2,6,8,7,0],[4,2,8,6,5,7,3,9,0,1],[2,7,9,3,8,0,6,4,1,5],[7,0,4,6,9,1,3,2,5,8]],n=e.split("").reverse().join(""),i=0,o=0;o<n.length;o++)i=t[i][r[o%8][parseInt(n[o],10)]];return 0===i}},{}],136:[function(e,t,r){"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){if(!("string"==typeof e||e instanceof String)){var t=n(e);throw null===e?t="null":"object"===t&&(t=e.constructor.name),new TypeError("Expected a string but received a ".concat(t))}},t.exports=r.default,t.exports.default=r.default},{}],137:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var n=function(e,t){return e.some((function(e){return t===e}))};r.default=n,t.exports=r.default,t.exports.default=r.default},{}],138:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;for(var r in t)void 0===e[r]&&(e[r]=t[r]);return e},t.exports=r.default,t.exports.default=r.default},{}],139:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){var r=e.join("");return new RegExp(r,t)},t.exports=r.default,t.exports.default=r.default},{}],140:[function(e,t,r){"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e){"object"===n(e)&&null!==e?e="function"==typeof e.toString?e.toString():"[object Object]":(null==e||isNaN(e)&&!e.length)&&(e="");return String(e)},t.exports=r.default,t.exports.default=r.default},{}],141:[function(e,t,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(e,t){return(0,i.default)(e),e.replace(new RegExp("[^".concat(t,"]+"),"g"),"")};var n,i=(n=e("./util/assertString"))&&n.__esModule?n:{default:n};t.exports=r.default,t.exports.default=r.default},{"./util/assertString":136}],142:[function(e,t,r){t.exports={name:"doipjs",version:"0.15.6",description:"Decentralized OpenPGP Identity Proofs library in Node.js",main:"./src/index.js",dependencies:{"@openpgp/hkp-client":"^0.0.2","@openpgp/wkd-client":"^0.0.3","@xmpp/client":"^0.13.1","@xmpp/debug":"^0.13.0",axios:"^0.25.0","browser-or-node":"^1.3.0",cors:"^2.8.5",dotenv:"^8.2.0",express:"^4.17.1","express-validator":"^6.10.0","irc-upd":"^0.11.0",jsdom:"^16.5.1","merge-options":"^3.0.3",openpgp:"^5.0","query-string":"^6.14.1","valid-url":"^1.0.9",validator:"^13.5.2"},devDependencies:{browserify:"^17.0.0","browserify-shim":"^3.8.14",chai:"^4.2.0","chai-as-promised":"^7.1.1","chai-match-pattern":"^1.2.0","clean-jsdoc-theme":"^3.2.4",husky:"^7.0.0",jsdoc:"^3.6.6","license-check-and-add":"^4.0.3","lint-staged":"^11.0.0",minify:"^6.0.1",mocha:"^9.2.0",nodemon:"^2.0.15",standard:"^16.0.3",webpack:"^5.70.0","webpack-cli":"^4.9.2"},scripts:{release:"yarn run test && yarn run release:bundle && yarn run release:minify","release:bundle":"./node_modules/.bin/browserify ./src/index.js --standalone doip -x openpgp -x @openpgp/hkp-client -x @openpgp/wkd-client -x jsdom -x @xmpp/client -x @xmpp/debug -x irc-upd -o ./dist/doip.js","release:minify":"./node_modules/.bin/minify ./dist/doip.js > ./dist/doip.min.js","license:check":"./node_modules/.bin/license-check-and-add check","license:add":"./node_modules/.bin/license-check-and-add add","license:remove":"./node_modules/.bin/license-check-and-add remove","docs:lib":"./node_modules/.bin/jsdoc -c jsdoc-lib.json -r -d ./docs -P package.json","standard:check":"./node_modules/.bin/standard ./src","standard:fix":"./node_modules/.bin/standard --fix ./src",mocha:"./node_modules/.bin/mocha",test:"yarn run standard:check && yarn run license:check && yarn run mocha",proxy:"NODE_ENV=production node ./src/proxy/","proxy:dev":"NODE_ENV=development ./node_modules/.bin/nodemon ./src/proxy/",prepare:"husky install"},repository:{type:"git",url:"https://codeberg.org/keyoxide/doipjs"},homepage:"https://js.doip.rocks",keywords:["pgp","gpg","openpgp","encryption","decentralized","identity"],author:"Yarmo Mackenbach <yarmo@yarmo.eu> (https://yarmo.eu)",license:"Apache-2.0",browserify:{transform:["browserify-shim"]},"browserify-shim":{openpgp:"global:openpgp"}}},{}],143:[function(e,t,r){const n=e("validator"),i=e("valid-url"),o=e("merge-options"),a=e("./proofs"),s=e("./verifications"),u=e("./claimDefinitions"),l=e("./defaults"),c=e("./enums");t.exports=class{constructor(e,t){if("object"==typeof e&&"claimVersion"in e){const t=e;if(1!==t.claimVersion)throw new Error("Invalid claim version");return this._uri=t.uri,this._fingerprint=t.fingerprint,this._status=t.status,this._matches=t.matches,void(this._verification=t.verification)}if(e&&!i.isUri(e))throw new Error("Invalid URI");if(t)try{n.isAlphanumeric(t)}catch(e){throw new Error("Invalid fingerprint")}this._uri=e||null,this._fingerprint=t||null,this._status=c.ClaimStatus.INIT,this._matches=null,this._verification=null}get uri(){return this._uri}get fingerprint(){return this._fingerprint}get status(){return this._status}get matches(){if(this._status===c.ClaimStatus.INIT)throw new Error("This claim has not yet been matched");return this._matches}get verification(){if(this._status!==c.ClaimStatus.VERIFIED)throw new Error("This claim has not yet been verified");return this._verification}set uri(e){if(this._status!==c.ClaimStatus.INIT)throw new Error("Cannot change the URI, this claim has already been matched");if(e&&!i.isUri(e))throw new Error("The URI was invalid");e=e.replace(/^\s+|\s+$/g,""),this._uri=e}set fingerprint(e){if(this._status===c.ClaimStatus.VERIFIED)throw new Error("Cannot change the fingerprint, this claim has already been verified");this._fingerprint=e}set status(e){throw new Error("Cannot change a claim's status")}set matches(e){throw new Error("Cannot change a claim's matches")}set verification(e){throw new Error("Cannot change a claim's verification result")}match(){if(this._status!==c.ClaimStatus.INIT)throw new Error("This claim was already matched");if(null===this._uri)throw new Error("This claim has no URI");this._matches=[],u.list.every(((e,t)=>{const r=u.data[e];if(!r.reURI.test(this._uri))return!0;const n=r.processURI(this._uri);return n.match.isAmbiguous?(this._matches.push(n),!0):(this._matches=[n],!1)})),this._status=c.ClaimStatus.MATCHED}async verify(e){if(this._status===c.ClaimStatus.INIT)throw new Error("This claim has not yet been matched");if(this._status===c.ClaimStatus.VERIFIED)throw new Error("This claim has already been verified");if(null===this._fingerprint)throw new Error("This claim has no fingerprint");e=o(l.opts,e||{}),0===this._matches.length&&(this._verification={result:!1,completed:!0,proof:{},errors:["No matches for claim"]});for(let t=0;t<this._matches.length;t++){const r=this._matches[t];let n,i=null,o=null;try{o=await a.fetch(r,e)}catch(e){n=e}if(o)i=s.run(o.result,r,this._fingerprint),i.proof={fetcher:o.fetcher,viaProxy:o.viaProxy};else if(i=i||{result:!1,completed:!0,proof:{},errors:[n]},this.isAmbiguous())continue;i.completed&&(this._verification=i,this._matches=[r],t=this._matches.length)}this._verification=this._verification?this._verification:{result:!1,completed:!0,proof:{},errors:["Unknown error"]},this._status=c.ClaimStatus.VERIFIED}isAmbiguous(){if(this._status===c.ClaimStatus.INIT)throw new Error("The claim has not been matched yet");if(0===this._matches.length)throw new Error("The claim has no matches");return this._matches.length>1||this._matches[0].match.isAmbiguous}toJSON(){return{claimVersion:1,uri:this._uri,fingerprint:this._fingerprint,status:this._status,matches:this._matches,verification:this._verification}}}},{"./claimDefinitions":151,"./defaults":163,"./enums":164,"./proofs":175,"./verifications":178,"merge-options":35,"valid-url":40,validator:41}],144:[function(e,t,r){const n=e("../enums"),i=/^https:\/\/dev\.to\/(.*)\/(.*)\/?/;r.reURI=i,r.processURI=e=>{const t=e.match(i);return{serviceprovider:{type:"web",name:"devto"},match:{regularExpression:i,isAmbiguous:!1},profile:{display:t[1],uri:`https://dev.to/${t[1]}`,qr:null},proof:{uri:e,request:{fetcher:n.Fetcher.HTTP,access:n.ProofAccess.NOCORS,format:n.ProofFormat.JSON,data:{url:`https://dev.to/api/articles/${t[1]}/${t[2]}`,format:n.ProofFormat.JSON}}},claim:{format:n.ClaimFormat.MESSAGE,relation:n.ClaimRelation.CONTAINS,path:["body_markdown"]}}},r.tests=[{uri:"https://dev.to/alice/post",shouldMatch:!0},{uri:"https://dev.to/alice/post/",shouldMatch:!0},{uri:"https://domain.org/alice/post",shouldMatch:!1}]},{"../enums":164}],145:[function(e,t,r){const n=e("../enums"),i=/^https:\/\/(.*)\/u\/(.*)\/?/;r.reURI=i,r.processURI=e=>{const t=e.match(i);return{serviceprovider:{type:"web",name:"discourse"},match:{regularExpression:i,isAmbiguous:!0},profile:{display:`${t[2]}@${t[1]}`,uri:e,qr:null},proof:{uri:e,request:{fetcher:n.Fetcher.HTTP,access:n.ProofAccess.NOCORS,format:n.ProofFormat.JSON,data:{url:`https://${t[1]}/u/${t[2]}.json`,format:n.ProofFormat.JSON}}},claim:{format:n.ClaimFormat.MESSAGE,relation:n.ClaimRelation.CONTAINS,path:["user","bio_raw"]}}},r.tests=[{uri:"https://domain.org/u/alice",shouldMatch:!0},{uri:"https://domain.org/u/alice/",shouldMatch:!0},{uri:"https://domain.org/alice",shouldMatch:!1}]},{"../enums":164}],146:[function(e,t,r){const n=e("../enums"),i=/^dns:([a-zA-Z0-9.\-_]*)(?:\?(.*))?/;r.reURI=i,r.processURI=e=>{const t=e.match(i);return{serviceprovider:{type:"web",name:"dns"},match:{regularExpression:i,isAmbiguous:!1},profile:{display:t[1],uri:`https://${t[1]}`,qr:null},proof:{uri:null,request:{fetcher:n.Fetcher.DNS,access:n.ProofAccess.SERVER,format:n.ProofFormat.JSON,data:{domain:t[1]}}},claim:{format:n.ClaimFormat.URI,relation:n.ClaimRelation.CONTAINS,path:["records","txt"]}}},r.tests=[{uri:"dns:domain.org",shouldMatch:!0},{uri:"dns:domain.org?type=TXT",shouldMatch:!0},{uri:"https://domain.org",shouldMatch:!1}]},{"../enums":164}],147:[function(e,t,r){const n=e("../enums"),i=/^https:\/\/(.*)\/(.*)\/gitea_proof\/?/;r.reURI=i,r.processURI=e=>{const t=e.match(i);return{serviceprovider:{type:"web",name:"gitea"},match:{regularExpression:i,isAmbiguous:!0},profile:{display:`${t[2]}@${t[1]}`,uri:`https://${t[1]}/${t[2]}`,qr:null},proof:{uri:e,request:{fetcher:n.Fetcher.HTTP,access:n.ProofAccess.NOCORS,format:n.ProofFormat.JSON,data:{url:`https://${t[1]}/api/v1/repos/${t[2]}/gitea_proof`,format:n.ProofFormat.JSON}}},claim:{format:n.ClaimFormat.MESSAGE,relation:n.ClaimRelation.EQUALS,path:["description"]}}},r.tests=[{uri:"https://domain.org/alice/gitea_proof",shouldMatch:!0},{uri:"https://domain.org/alice/gitea_proof/",shouldMatch:!0},{uri:"https://domain.org/alice/other_proof",shouldMatch:!1}]},{"../enums":164}],148:[function(e,t,r){const n=e("../enums"),i=/^https:\/\/gist\.github\.com\/(.*)\/(.*)\/?/;r.reURI=i,r.processURI=e=>{const t=e.match(i);return{serviceprovider:{type:"web",name:"github"},match:{regularExpression:i,isAmbiguous:!1},profile:{display:t[1],uri:`https://github.com/${t[1]}`,qr:null},proof:{uri:e,request:{fetcher:n.Fetcher.HTTP,access:n.ProofAccess.GENERIC,format:n.ProofFormat.JSON,data:{url:`https://api.github.com/gists/${t[2]}`,format:n.ProofFormat.JSON}}},claim:{format:n.ClaimFormat.MESSAGE,relation:n.ClaimRelation.CONTAINS,path:["files","openpgp.md","content"]}}},r.tests=[{uri:"https://gist.github.com/Alice/123456789",shouldMatch:!0},{uri:"https://gist.github.com/Alice/123456789/",shouldMatch:!0},{uri:"https://domain.org/Alice/123456789",shouldMatch:!1}]},{"../enums":164}],149:[function(e,t,r){const n=e("../enums"),i=/^https:\/\/(.*)\/(.*)\/gitlab_proof\/?/;r.reURI=i,r.processURI=e=>{const t=e.match(i);return{serviceprovider:{type:"web",name:"gitlab"},match:{regularExpression:i,isAmbiguous:!0},profile:{display:`${t[2]}@${t[1]}`,uri:`https://${t[1]}/${t[2]}`,qr:null},proof:{uri:e,request:{fetcher:n.Fetcher.GITLAB,access:n.ProofAccess.GENERIC,format:n.ProofFormat.JSON,data:{domain:t[1],username:t[2]}}},claim:{format:n.ClaimFormat.MESSAGE,relation:n.ClaimRelation.EQUALS,path:["description"]}}},r.tests=[{uri:"https://gitlab.domain.org/alice/gitlab_proof",shouldMatch:!0},{uri:"https://gitlab.domain.org/alice/gitlab_proof/",shouldMatch:!0},{uri:"https://domain.org/alice/other_proof",shouldMatch:!1}]},{"../enums":164}],150:[function(e,t,r){const n=e("../enums"),i=/^https:\/\/news\.ycombinator\.com\/user\?id=(.*)\/?/;r.reURI=i,r.processURI=e=>{const t=e.match(i);return{serviceprovider:{type:"web",name:"hackernews"},match:{regularExpression:i,isAmbiguous:!1},profile:{display:t[1],uri:e,qr:null},proof:{uri:`https://hacker-news.firebaseio.com/v0/user/${t[1]}.json`,request:{fetcher:n.Fetcher.HTTP,access:n.ProofAccess.NOCORS,format:n.ProofFormat.JSON,data:{url:`https://hacker-news.firebaseio.com/v0/user/${t[1]}.json`,format:n.ProofFormat.JSON}}},claim:{format:n.ClaimFormat.URI,relation:n.ClaimRelation.CONTAINS,path:["about"]}}},r.tests=[{uri:"https://news.ycombinator.com/user?id=Alice",shouldMatch:!0},{uri:"https://news.ycombinator.com/user?id=Alice/",shouldMatch:!0},{uri:"https://domain.org/user?id=Alice",shouldMatch:!1}]},{"../enums":164}],151:[function(e,t,r){const n={dns:e("./dns"),irc:e("./irc"),xmpp:e("./xmpp"),matrix:e("./matrix"),twitter:e("./twitter"),reddit:e("./reddit"),liberapay:e("./liberapay"),lichess:e("./lichess"),hackernews:e("./hackernews"),lobsters:e("./lobsters"),devto:e("./devto"),gitea:e("./gitea"),gitlab:e("./gitlab"),github:e("./github"),mastodon:e("./mastodon"),pleroma:e("./pleroma"),discourse:e("./discourse"),owncast:e("./owncast")};r.list=["dns","irc","xmpp","matrix","twitter","reddit","liberapay","lichess","hackernews","lobsters","devto","gitea","gitlab","github","mastodon","pleroma","discourse","owncast"],r.data=n},{"./devto":144,"./discourse":145,"./dns":146,"./gitea":147,"./github":148,"./gitlab":149,"./hackernews":150,"./irc":152,"./liberapay":153,"./lichess":154,"./lobsters":155,"./mastodon":156,"./matrix":157,"./owncast":158,"./pleroma":159,"./reddit":160,"./twitter":161,"./xmpp":162}],152:[function(e,t,r){const n=e("../enums"),i=/^irc:\/\/(.*)\/([a-zA-Z0-9\-[\]\\`_^{|}]*)/;r.reURI=i,r.processURI=e=>{const t=e.match(i);return{serviceprovider:{type:"communication",name:"irc"},match:{regularExpression:i,isAmbiguous:!1},profile:{display:`irc://${t[1]}/${t[2]}`,uri:e,qr:null},proof:{uri:null,request:{fetcher:n.Fetcher.IRC,access:n.ProofAccess.SERVER,format:n.ProofFormat.JSON,data:{domain:t[1],nick:t[2]}}},claim:{format:n.ClaimFormat.URI,relation:n.ClaimRelation.CONTAINS,path:[]}}},r.tests=[{uri:"irc://chat.ircserver.org/Alice1",shouldMatch:!0},{uri:"irc://chat.ircserver.org/alice?param=123",shouldMatch:!0},{uri:"irc://chat.ircserver.org/alice_bob",shouldMatch:!0},{uri:"https://chat.ircserver.org/alice",shouldMatch:!1}]},{"../enums":164}],153:[function(e,t,r){const n=e("../enums"),i=/^https:\/\/liberapay\.com\/(.*)\/?/;r.reURI=i,r.processURI=e=>{const t=e.match(i);return{serviceprovider:{type:"web",name:"liberapay"},match:{regularExpression:i,isAmbiguous:!1},profile:{display:t[1],uri:e,qr:null},proof:{uri:e,request:{fetcher:n.Fetcher.HTTP,access:n.ProofAccess.GENERIC,format:n.ProofFormat.JSON,data:{url:`https://liberapay.com/${t[1]}/public.json`,format:n.ProofFormat.JSON}}},claim:{format:n.ClaimFormat.MESSAGE,relation:n.ClaimRelation.CONTAINS,path:["statements","content"]}}},r.tests=[{uri:"https://liberapay.com/alice",shouldMatch:!0},{uri:"https://liberapay.com/alice/",shouldMatch:!0},{uri:"https://domain.org/alice",shouldMatch:!1}]},{"../enums":164}],154:[function(e,t,r){const n=e("../enums"),i=/^https:\/\/lichess\.org\/@\/(.*)\/?/;r.reURI=i,r.processURI=e=>{const t=e.match(i);return{serviceprovider:{type:"web",name:"lichess"},match:{regularExpression:i,isAmbiguous:!1},profile:{display:t[1],uri:e,qr:null},proof:{uri:`https://lichess.org/api/user/${t[1]}`,request:{fetcher:n.Fetcher.HTTP,access:n.ProofAccess.GENERIC,format:n.ProofFormat.JSON,data:{url:`https://lichess.org/api/user/${t[1]}`,format:n.ProofFormat.JSON}}},claim:{format:n.ClaimFormat.FINGERPRINT,relation:n.ClaimRelation.CONTAINS,path:["profile","links"]}}},r.tests=[{uri:"https://lichess.org/@/Alice",shouldMatch:!0},{uri:"https://lichess.org/@/Alice/",shouldMatch:!0},{uri:"https://domain.org/@/Alice",shouldMatch:!1}]},{"../enums":164}],155:[function(e,t,r){const n=e("../enums"),i=/^https:\/\/lobste\.rs\/u\/(.*)\/?/;r.reURI=i,r.processURI=e=>{const t=e.match(i);return{serviceprovider:{type:"web",name:"lobsters"},match:{regularExpression:i,isAmbiguous:!1},profile:{display:t[1],uri:e,qr:null},proof:{uri:`https://lobste.rs/u/${t[1]}.json`,request:{fetcher:n.Fetcher.HTTP,access:n.ProofAccess.NOCORS,format:n.ProofFormat.JSON,data:{url:`https://lobste.rs/u/${t[1]}.json`,format:n.ProofFormat.JSON}}},claim:{format:n.ClaimFormat.MESSAGE,relation:n.ClaimRelation.CONTAINS,path:["about"]}}},r.tests=[{uri:"https://lobste.rs/u/Alice",shouldMatch:!0},{uri:"https://lobste.rs/u/Alice/",shouldMatch:!0},{uri:"https://domain.org/u/Alice",shouldMatch:!1}]},{"../enums":164}],156:[function(e,t,r){const n=e("../enums"),i=/^https:\/\/(.*)\/@(.*)\/?/;r.reURI=i,r.processURI=e=>{const t=e.match(i);return{serviceprovider:{type:"web",name:"mastodon"},match:{regularExpression:i,isAmbiguous:!0},profile:{display:`@${t[2]}@${t[1]}`,uri:e,qr:null},proof:{uri:e,request:{fetcher:n.Fetcher.HTTP,access:n.ProofAccess.GENERIC,format:n.ProofFormat.JSON,data:{url:e,format:n.ProofFormat.JSON}}},claim:{format:n.ClaimFormat.FINGERPRINT,relation:n.ClaimRelation.CONTAINS,path:["attachment","value"]}}},r.tests=[{uri:"https://domain.org/@alice",shouldMatch:!0},{uri:"https://domain.org/@alice/",shouldMatch:!0},{uri:"https://domain.org/alice",shouldMatch:!1}]},{"../enums":164}],157:[function(e,t,r){const n=e("../enums"),i=e("query-string"),o=/^matrix:u\/(?:@)?([^@:]*:[^?]*)(\?.*)?/;r.reURI=o,r.processURI=e=>{const t=e.match(o);if(!t[2])return null;const r=i.parse(t[2]);if(!("org.keyoxide.e"in r)||!("org.keyoxide.r"in r))return null;const a=`https://matrix.to/#/@${t[1]}`,s=`https://matrix.to/#/${r["org.keyoxide.r"]}/${r["org.keyoxide.e"]}`;return{serviceprovider:{type:"communication",name:"matrix"},match:{regularExpression:o,isAmbiguous:!1},profile:{display:`@${t[1]}`,uri:a,qr:null},proof:{uri:s,request:{fetcher:n.Fetcher.MATRIX,access:n.ProofAccess.GRANTED,format:n.ProofFormat.JSON,data:{eventId:r["org.keyoxide.e"],roomId:r["org.keyoxide.r"]}}},claim:{format:n.ClaimFormat.MESSAGE,relation:n.ClaimRelation.CONTAINS,path:["content","body"]}}},r.tests=[{uri:"matrix:u/alice:matrix.domain.org?org.keyoxide.r=!123:domain.org&org.keyoxide.e=$123",shouldMatch:!0},{uri:"matrix:u/alice:matrix.domain.org",shouldMatch:!0},{uri:"xmpp:alice@domain.org",shouldMatch:!1},{uri:"https://domain.org/@alice",shouldMatch:!1}]},{"../enums":164,"query-string":37}],158:[function(e,t,r){const n=e("../enums"),i=/^https:\/\/(.*)/;r.reURI=i,r.processURI=e=>{const t=e.match(i);return{serviceprovider:{type:"web",name:"owncast"},match:{regularExpression:i,isAmbiguous:!0},profile:{display:t[1],uri:e,qr:null},proof:{uri:`${e}/api/config`,request:{fetcher:n.Fetcher.HTTP,access:n.ProofAccess.GENERIC,format:n.ProofFormat.JSON,data:{url:`${e}/api/config`,format:n.ProofFormat.JSON}}},claim:{format:n.ClaimFormat.FINGERPRINT,relation:n.ClaimRelation.CONTAINS,path:["socialHandles","url"]}}},r.tests=[{uri:"https://live.domain.org",shouldMatch:!0},{uri:"https://live.domain.org/",shouldMatch:!0},{uri:"https://domain.org/live",shouldMatch:!0},{uri:"https://domain.org/live/",shouldMatch:!0}]},{"../enums":164}],159:[function(e,t,r){const n=e("../enums"),i=/^https:\/\/(.*)\/users\/(.*)\/?/;r.reURI=i,r.processURI=e=>{const t=e.match(i);return{serviceprovider:{type:"web",name:"pleroma"},match:{regularExpression:i,isAmbiguous:!0},profile:{display:`@${t[2]}@${t[1]}`,uri:e,qr:null},proof:{uri:e,request:{fetcher:n.Fetcher.HTTP,access:n.ProofAccess.GENERIC,format:n.ProofFormat.JSON,data:{url:e,format:n.ProofFormat.JSON}}},claim:{format:n.ClaimFormat.FINGERPRINT,relation:n.ClaimRelation.CONTAINS,path:["summary"]}}},r.tests=[{uri:"https://domain.org/users/alice",shouldMatch:!0},{uri:"https://domain.org/users/alice/",shouldMatch:!0},{uri:"https://domain.org/alice",shouldMatch:!1}]},{"../enums":164}],160:[function(e,t,r){const n=e("../enums"),i=/^https:\/\/(?:www\.)?reddit\.com\/user\/(.*)\/comments\/(.*)\/(.*)\/?/;r.reURI=i,r.processURI=e=>{const t=e.match(i);return{serviceprovider:{type:"web",name:"reddit"},match:{regularExpression:i,isAmbiguous:!1},profile:{display:t[1],uri:`https://www.reddit.com/user/${t[1]}`,qr:null},proof:{uri:e,request:{fetcher:n.Fetcher.HTTP,access:n.ProofAccess.NOCORS,format:n.ProofFormat.JSON,data:{url:`https://www.reddit.com/user/${t[1]}/comments/${t[2]}.json`,format:n.ProofFormat.JSON}}},claim:{format:n.ClaimFormat.MESSAGE,relation:n.ClaimRelation.CONTAINS,path:["data","children","data","selftext"]}}},r.tests=[{uri:"https://www.reddit.com/user/Alice/comments/123456/post",shouldMatch:!0},{uri:"https://www.reddit.com/user/Alice/comments/123456/post/",shouldMatch:!0},{uri:"https://reddit.com/user/Alice/comments/123456/post",shouldMatch:!0},{uri:"https://reddit.com/user/Alice/comments/123456/post/",shouldMatch:!0},{uri:"https://domain.org/user/Alice/comments/123456/post",shouldMatch:!1}]},{"../enums":164}],161:[function(e,t,r){const n=e("../enums"),i=/^https:\/\/twitter\.com\/(.*)\/status\/([0-9]*)(?:\?.*)?/;r.reURI=i,r.processURI=e=>{const t=e.match(i);return{serviceprovider:{type:"web",name:"twitter"},match:{regularExpression:i,isAmbiguous:!1},profile:{display:`@${t[1]}`,uri:`https://twitter.com/${t[1]}`,qr:null},proof:{uri:e,request:{fetcher:n.Fetcher.TWITTER,access:n.ProofAccess.GRANTED,format:n.ProofFormat.TEXT,data:{tweetId:t[2]}}},claim:{format:n.ClaimFormat.MESSAGE,relation:n.ClaimRelation.CONTAINS,path:[]}}},r.tests=[{uri:"https://twitter.com/alice/status/1234567890123456789",shouldMatch:!0},{uri:"https://twitter.com/alice/status/1234567890123456789/",shouldMatch:!0},{uri:"https://domain.org/alice/status/1234567890123456789",shouldMatch:!1}]},{"../enums":164}],162:[function(e,t,r){const n=e("../enums"),i=/^xmpp:([a-zA-Z0-9.\-_]*)@([a-zA-Z0-9.\-_]*)(?:\?(.*))?/;r.reURI=i,r.processURI=e=>{const t=e.match(i);return{serviceprovider:{type:"communication",name:"xmpp"},match:{regularExpression:i,isAmbiguous:!1},profile:{display:`${t[1]}@${t[2]}`,uri:e,qr:e},proof:{uri:null,request:{fetcher:n.Fetcher.XMPP,access:n.ProofAccess.SERVER,format:n.ProofFormat.TEXT,data:{id:`${t[1]}@${t[2]}`,field:"note"}}},claim:{format:n.ClaimFormat.MESSAGE,relation:n.ClaimRelation.CONTAINS,path:[]}}},r.tests=[{uri:"xmpp:alice@domain.org",shouldMatch:!0},{uri:"xmpp:alice@domain.org?omemo-sid-123456789=A1B2C3D4E5F6G7H8I9",shouldMatch:!0},{uri:"https://domain.org",shouldMatch:!1}]},{"../enums":164}],163:[function(e,t,r){const n={proxy:{hostname:null,policy:e("./enums").ProxyPolicy.NEVER},claims:{irc:{nick:null},matrix:{instance:null,accessToken:null},xmpp:{service:null,username:null,password:null},twitter:{bearerToken:null}}};r.opts=n},{"./enums":164}],164:[function(e,t,r){const n={ADAPTIVE:"adaptive",ALWAYS:"always",NEVER:"never"};Object.freeze(n);const i={HTTP:"http",DNS:"dns",IRC:"irc",XMPP:"xmpp",MATRIX:"matrix",GITLAB:"gitlab",TWITTER:"twitter"};Object.freeze(i);const o={GENERIC:0,NOCORS:1,GRANTED:2,SERVER:3};Object.freeze(o);const a={JSON:"json",TEXT:"text"};Object.freeze(a);const s={URI:0,FINGERPRINT:1,MESSAGE:2};Object.freeze(s);const u={CONTAINS:0,EQUALS:1,ONEOF:2};Object.freeze(u);const l={INIT:"init",MATCHED:"matched",VERIFIED:"verified"};Object.freeze(l),r.ProxyPolicy=n,r.Fetcher=i,r.ProofAccess=o,r.ProofFormat=a,r.ClaimFormat=s,r.ClaimRelation=u,r.ClaimStatus=l},{}],165:[function(e,t,r){const n=e("browser-or-node");if(t.exports.timeout=5e3,n.isNode){const r=e("dns");t.exports.fn=async(e,n)=>{let i;const o=new Promise(((r,n)=>{i=setTimeout((()=>n(new Error("Request was timed out"))),e.fetcherTimeout?e.fetcherTimeout:t.exports.timeout)})),a=new Promise(((t,n)=>{r.resolveTxt(e.domain,((r,i)=>{r?n(r):t({domain:e.domain,records:{txt:i}})}))}));return Promise.race([a,o]).then((e=>(clearTimeout(i),e)))}}else t.exports.fn=null},{"browser-or-node":30,dns:31}],166:[function(e,t,r){const n=e("axios");t.exports.timeout=5e3,t.exports.fn=async(e,r)=>{let i;const o=new Promise(((r,n)=>{i=setTimeout((()=>n(new Error("Request was timed out"))),e.fetcherTimeout?e.fetcherTimeout:t.exports.timeout)})),a=new Promise(((t,r)=>{const i=`https://${e.domain}/api/v4/users?username=${e.username}`;t(n.get(i,{headers:{Accept:"application/json"}}).then((e=>e.data)).then((t=>t.find((t=>t.username===e.username)))).then((t=>{if(!t)throw new Error(`No user with username ${e.username}`);return t})).then((t=>{const r=`https://${e.domain}/api/v4/users/${t.id}/projects`;return n.get(r,{headers:{Accept:"application/json"}})})).then((e=>e.data)).then((e=>e.find((e=>"gitlab_proof"===e.path)))).then((e=>{if(!e)throw new Error("No project found");return e})).catch((e=>{r(e)})))}));return Promise.race([a,o]).then((e=>(clearTimeout(i),e)))}},{axios:1}],167:[function(e,t,r){const n=e("axios"),i=e("../enums");t.exports.timeout=5e3,t.exports.fn=async(r,o)=>{let a;const s=new Promise(((e,n)=>{a=setTimeout((()=>n(new Error("Request was timed out"))),r.fetcherTimeout?r.fetcherTimeout:t.exports.timeout)})),u=new Promise(((t,o)=>{if(r.url)switch(r.format){case i.ProofFormat.JSON:n.get(r.url,{headers:{Accept:"application/json","User-Agent":`doipjs/${e("../../package.json").version}`},validateStatus:function(e){return e>=200&&e<400}}).then((e=>{t(e.data)})).catch((e=>{o(e)}));break;case i.ProofFormat.TEXT:n.get(r.url,{validateStatus:function(e){return e>=200&&e<400},responseType:"text"}).then((e=>{t(e.data)})).catch((e=>{o(e)}));break;default:o(new Error("No specified data format"))}else o(new Error("No valid URI provided"))}));return Promise.race([u,s]).then((e=>(clearTimeout(a),e)))}},{"../../package.json":142,"../enums":164,axios:1}],168:[function(e,t,r){r.dns=e("./dns"),r.gitlab=e("./gitlab"),r.http=e("./http"),r.irc=e("./irc"),r.matrix=e("./matrix"),r.twitter=e("./twitter"),r.xmpp=e("./xmpp")},{"./dns":165,"./gitlab":166,"./http":167,"./irc":169,"./matrix":170,"./twitter":171,"./xmpp":172}],169:[function(e,t,r){const n=e("browser-or-node");if(t.exports.timeout=2e4,n.isNode){const r=e("irc-upd"),n=e("validator");t.exports.fn=async(e,i)=>{let o;const a=new Promise(((r,n)=>{o=setTimeout((()=>n(new Error("Request was timed out"))),e.fetcherTimeout?e.fetcherTimeout:t.exports.timeout)})),s=new Promise(((t,o)=>{try{n.isAscii(i.claims.irc.nick)}catch(e){throw new Error(`IRC fetcher was not set up properly (${e.message})`)}try{const n=new r.Client(e.domain,i.claims.irc.nick,{port:6697,secure:!0,channels:[],showErrors:!1,debug:!1}),o=/[a-zA-Z0-9\-_]+\s+:\s(openpgp4fpr:.*)/,a=/End\sof\s.*\staxonomy./,s=[];n.addListener("registered",(t=>{n.send(`PRIVMSG NickServ TAXONOMY ${e.nick}`)})),n.addListener("notice",((e,r,i,u)=>{if(o.test(i)){const e=i.match(o);s.push(e[1])}a.test(i)&&(n.disconnect(),t(s))}))}catch(e){o(e)}}));return Promise.race([s,a]).then((e=>(clearTimeout(o),e)))}}else t.exports.fn=null},{"browser-or-node":30,"irc-upd":"irc-upd",validator:41}],170:[function(e,t,r){const n=e("axios"),i=e("validator");t.exports.timeout=5e3,t.exports.fn=async(e,r)=>{let o;const a=new Promise(((r,n)=>{o=setTimeout((()=>n(new Error("Request was timed out"))),e.fetcherTimeout?e.fetcherTimeout:t.exports.timeout)})),s=new Promise(((t,o)=>{try{i.isFQDN(r.claims.matrix.instance),i.isAscii(r.claims.matrix.accessToken)}catch(e){throw new Error(`Matrix fetcher was not set up properly (${e.message})`)}const a=`https://${r.claims.matrix.instance}/_matrix/client/r0/rooms/${e.roomId}/event/${e.eventId}?access_token=${r.claims.matrix.accessToken}`;n.get(a,{headers:{Accept:"application/json"}}).then((e=>e.data)).then((e=>{t(e)})).catch((e=>{o(e)}))}));return Promise.race([s,a]).then((e=>(clearTimeout(o),e)))}},{axios:1,validator:41}],171:[function(e,t,r){const n=e("axios"),i=e("validator");t.exports.timeout=5e3,t.exports.fn=async(e,r)=>{let o;const a=new Promise(((r,n)=>{o=setTimeout((()=>n(new Error("Request was timed out"))),e.fetcherTimeout?e.fetcherTimeout:t.exports.timeout)})),s=new Promise(((t,o)=>{try{i.isAscii(r.claims.twitter.bearerToken)}catch(e){throw new Error(`Twitter fetcher was not set up properly (${e.message})`)}n.get(`https://api.twitter.com/1.1/statuses/show.json?id=${e.tweetId}&tweet_mode=extended`,{headers:{Accept:"application/json",Authorization:`Bearer ${r.claims.twitter.bearerToken}`}}).then((e=>e.data)).then((e=>{t(e.full_text)})).catch((e=>{o(e)}))}));return Promise.race([s,a]).then((e=>(clearTimeout(o),e)))}},{axios:1,validator:41}],172:[function(e,t,r){(function(r){(function(){const n=e("browser-or-node");if(t.exports.timeout=5e3,n.isNode){const n=e("jsdom"),{client:i,xml:o}=e("@xmpp/client"),a=e("@xmpp/debug"),s=e("validator");let u=null,l=null;const c=async(e,t,n)=>new Promise(((o,s)=>{const u=i({service:e,username:t,password:n});"production"!==r.env.NODE_ENV&&a(u,!0);const{iqCaller:l}=u;u.start(),u.on("online",(e=>{o({xmpp:u,iqCaller:l})})),u.on("error",(e=>{s(e)}))}));t.exports.fn=async(e,r)=>{try{s.isFQDN(r.claims.xmpp.service),s.isAscii(r.claims.xmpp.username),s.isAscii(r.claims.xmpp.password)}catch(e){throw new Error(`XMPP fetcher was not set up properly (${e.message})`)}if(!u||"online"!==u.status){const e=await c(r.claims.xmpp.service,r.claims.xmpp.username,r.claims.xmpp.password);u=e.xmpp,l=e.iqCaller}const i=(await l.request(o("iq",{type:"get",to:e.id},o("vCard","vcard-temp")),3e4)).getChild("vCard","vcard-temp").toString(),a=new n.JSDOM(i);let d;const f=new Promise(((r,n)=>{d=setTimeout((()=>n(new Error("Request was timed out"))),e.fetcherTimeout?e.fetcherTimeout:t.exports.timeout)})),p=new Promise(((t,r)=>{try{let r;switch(e.field.toLowerCase()){case"desc":case"note":if(r=a.window.document.querySelector("note text"),r||(r=a.window.document.querySelector("DESC")),!r)throw new Error("No DESC or NOTE field found in vCard");r=r.textContent;break;default:r=a.window.document.querySelector(e).textContent}u.stop(),t(r)}catch(e){r(e)}}));return Promise.race([p,f]).then((e=>(clearTimeout(d),e)))}}else t.exports.fn=null}).call(this)}).call(this,e("_process"))},{"@xmpp/client":"@xmpp/client","@xmpp/debug":"@xmpp/debug",_process:36,"browser-or-node":30,jsdom:"jsdom",validator:41}],173:[function(e,t,r){const n=e("./claim"),i=e("./claimDefinitions"),o=e("./proofs"),a=e("./keys"),s=e("./signatures"),u=e("./enums"),l=e("./defaults"),c=e("./utils");r.Claim=n,r.claimDefinitions=i,r.proofs=o,r.keys=a,r.signatures=s,r.enums=u,r.defaults=l,r.utils=c},{"./claim":143,"./claimDefinitions":151,"./defaults":163,"./enums":164,"./keys":174,"./proofs":175,"./signatures":176,"./utils":177}],174:[function(e,t,r){(function(t){(function(){const n=e("axios"),i=e("valid-url"),o="undefined"!=typeof window?window.openpgp:void 0!==t?t.openpgp:null,a=e("@openpgp/hkp-client"),s=e("@openpgp/wkd-client"),u=e("./claim"),l=async(e,t)=>{const r=new a(t?`https://${t}`:"https://keys.openpgp.org"),n={query:e},i=await r.lookup(n).catch((e=>{throw new Error(`Key does not exist or could not be fetched (${e})`)}));if(!i)throw new Error("Key does not exist or could not be fetched");return await o.readKey({armoredKey:i}).catch((e=>{throw new Error(`Key could not be read (${e})`)}))},c=async e=>{const t=new s,r={email:e},n=await t.lookup(r).catch((e=>{throw new Error(`Key does not exist or could not be fetched (${e})`)}));if(!n)throw new Error("Key does not exist or could not be fetched");return await o.readKey({binaryKey:n}).catch((e=>{throw new Error(`Key could not be read (${e})`)}))},d=async(e,t)=>{const r=`https://keybase.io/${e}/pgp_keys.asc?fingerprint=${t}`;let i;try{i=await n.get(r,{responseType:"text"}).then((e=>{if(200===e.status)return e})).then((e=>e.data))}catch(e){throw new Error(`Error fetching Keybase key: ${e.message}`)}return await o.readKey({armoredKey:i}).catch((e=>{throw new Error(`Key does not exist or could not be fetched (${e})`)}))},f=async e=>await o.readKey({armoredKey:e}).catch((e=>{throw new Error(`Key could not be read (${e})`)}));r.fetchHKP=l,r.fetchWKD=c,r.fetchKeybase=d,r.fetchPlaintext=f,r.fetchURI=async e=>{if(!i.isUri(e))throw new Error("Invalid URI");const t=e.match(/([a-zA-Z0-9]*):([a-zA-Z0-9@._=+-]*)(?::([a-zA-Z0-9@._=+-]*))?/);if(!t[1])throw new Error("Invalid URI");switch(t[1]){case"hkp":return await l(t[3]?t[3]:t[2],t[3]?t[2]:null);case"wkd":return await c(t[2]);case"kb":return await d(t[2],t.length>=4?t[3]:null);default:throw new Error("Invalid URI protocol")}},r.fetch=async e=>{const t=e.match(/([a-zA-Z0-9@._=+-]*)(?::([a-zA-Z0-9@._=+-]*))?/);let r=null;if(!r)try{r=await f(e)}catch(e){}if(!r&&e.includes("@"))try{r=await c(t[1])}catch(e){}if(r||(r=await l(t[2]?t[2]:t[1],t[2]?t[1]:null)),!r)throw new Error("Key does not exist or could not be fetched");return r},r.process=async e=>{if(!(e&&e instanceof o.PublicKey))throw new Error("Invalid public key");const t=e.getFingerprint(),r=await e.getPrimaryUser(),n=e.users,i=[];return n.forEach(((e,n)=>{if(i[n]={userData:{id:e.userID?e.userID.userID:null,name:e.userID?e.userID.name:null,email:e.userID?e.userID.email:null,comment:e.userID?e.userID.comment:null,isPrimary:r.index===n,isRevoked:!1},claims:[]},"selfCertifications"in e&&e.selfCertifications.length>0){const r=e.selfCertifications[0],o=r.rawNotations;i[n].claims=o.filter((({name:e,humanReadable:t})=>t&&("proof@ariadne.id"===e||"proof@metacode.biz"===e))).map((({value:e})=>new u((new TextDecoder).decode(e),t))),i[n].userData.isRevoked=r.revoked}})),{fingerprint:t,users:i,primaryUserIndex:r.index,key:{data:e,fetchMethod:null,uri:null}}}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./claim":143,"@openpgp/hkp-client":"@openpgp/hkp-client","@openpgp/wkd-client":"@openpgp/wkd-client",axios:1,"valid-url":40}],175:[function(e,t,r){const n=e("browser-or-node"),i=e("./fetcher"),o=e("./utils"),a=e("./enums"),s=(e,t)=>{switch(t.proxy.policy){case a.ProxyPolicy.ALWAYS:return c(e,t);case a.ProxyPolicy.NEVER:switch(e.proof.request.access){case a.ProofAccess.GENERIC:case a.ProofAccess.GRANTED:return l(e,t);case a.ProofAccess.NOCORS:case a.ProofAccess.SERVER:throw new Error("Impossible to fetch proof (bad combination of service access and proxy policy)");default:throw new Error("Invalid proof access value")}case a.ProxyPolicy.ADAPTIVE:switch(e.proof.request.access){case a.ProofAccess.GENERIC:return d(e,t);case a.ProofAccess.NOCORS:return c(e,t);case a.ProofAccess.GRANTED:return d(e,t);case a.ProofAccess.SERVER:return c(e,t);default:throw new Error("Invalid proof access value")}default:throw new Error("Invalid proxy policy")}},u=(e,t)=>{switch(t.proxy.policy){case a.ProxyPolicy.ALWAYS:return c(e,t);case a.ProxyPolicy.NEVER:return l(e,t);case a.ProxyPolicy.ADAPTIVE:return d(e,t);default:throw new Error("Invalid proxy policy")}},l=(e,t)=>new Promise(((r,n)=>{i[e.proof.request.fetcher].fn(e.proof.request.data,t).then((t=>r({fetcher:e.proof.request.fetcher,data:e,viaProxy:!1,result:t}))).catch((e=>n(e)))})),c=(e,t)=>new Promise(((r,n)=>{let a;try{a=o.generateProxyURL(e.proof.request.fetcher,e.proof.request.data,t)}catch(e){n(e)}const s={url:a,format:e.proof.request.format,fetcherTimeout:i[e.proof.request.fetcher].timeout};i.http.fn(s,t).then((t=>r({fetcher:"http",data:e,viaProxy:!0,result:t}))).catch((e=>n(e)))})),d=(e,t)=>new Promise(((r,n)=>{l(e,t).then((e=>r(e))).catch((i=>{c(e,t).then((e=>r(e))).catch((e=>n(e)))}))}));r.fetch=(e,t)=>{if(e.proof.request.fetcher===a.Fetcher.HTTP)e.proof.request.data.format=e.proof.request.format;return n.isNode?u(e,t):s(e,t)}},{"./enums":164,"./fetcher":168,"./utils":177,"browser-or-node":30}],176:[function(e,t,r){(function(t){(function(){const n="undefined"!=typeof window?window.openpgp:void 0!==t?t.openpgp:null,i=e("./claim"),o=e("./keys");r.process=async e=>{let t;const r={fingerprint:null,users:[{userData:{},claims:[]}],primaryUserIndex:null,key:{data:null,fetchMethod:null,uri:null}};try{t=await n.readCleartextMessage({cleartextMessage:e})}catch(e){throw new Error(`Signature could not be read (${e.message})`)}const a=t.signature.packets[0].issuerKeyID.toHex(),s=t.signature.packets[0].signersUserID,u=t.signature.packets[0].preferredKeyServer||"https://keys.openpgp.org/",l=t.getText(),c=[];if(l.split("\n").forEach(((e,t)=>{const n=e.match(/^([a-zA-Z0-9]*)=(.*)$/i);if(n)switch(n[1].toLowerCase()){case"key":c.push(n[2]);break;case"proof":r.users[0].claims.push(new i(n[2]))}})),c.length>0)try{r.key.uri=c[0],r.key.data=await o.fetchURI(r.key.uri),r.key.fetchMethod=r.key.uri.split(":")[0]}catch(e){}if(!r.key.data&&s)try{r.key.uri=`wkd:${s}`,r.key.data=await o.fetchURI(r.key.uri),r.key.fetchMethod="wkd"}catch(e){}if(!r.key.data)try{const e=u.match(/^(.*:\/\/)?([^/]*)(?:\/)?$/i);r.key.uri=`hkp:${e[2]}:${a||s}`,r.key.data=await o.fetchURI(r.key.uri),r.key.fetchMethod="hkp"}catch(e){throw new Error("Public key not found")}const d=await n.verify({message:t,verificationKeys:r.key.data}),{verified:f}=d.signatures[0];try{await f}catch(e){throw new Error(`Signature could not be verified (${e.message})`)}r.fingerprint=r.key.data.keyPacket.getFingerprint(),r.users[0].claims.forEach((e=>{e.fingerprint=r.fingerprint}));const p=await r.key.data.getPrimaryUser();let h;return s&&r.key.data.users.forEach((e=>{e.userID.email===s&&(h=e)})),h||(h=p.user),r.users[0].userData={id:h.userID?h.userID.userID:null,name:h.userID?h.userID.name:null,email:h.userID?h.userID.email:null,comment:h.userID?h.userID.comment:null,isPrimary:p.user.userID.userID===h.userID.userID},r.primaryUserIndex=r.users[0].userData.isPrimary?0:null,r}}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./claim":143,"./keys":174}],177:[function(e,t,r){const n=e("validator"),i=e("./enums");r.generateProxyURL=(e,t,r)=>{try{n.isFQDN(r.proxy.hostname)}catch(e){throw new Error("Invalid proxy hostname")}const i=[];return Object.keys(t).forEach((e=>{i.push(`${e}=${encodeURIComponent(t[e])}`)})),`https://${r.proxy.hostname}/api/2/get/${e}?${i.join("&")}`},r.generateClaim=(e,t)=>{switch(t){case i.ClaimFormat.URI:return`openpgp4fpr:${e}`;case i.ClaimFormat.MESSAGE:return`[Verifying my OpenPGP key: openpgp4fpr:${e}]`;case i.ClaimFormat.FINGERPRINT:return e;default:throw new Error("No valid claim format")}}},{"./enums":164,validator:41}],178:[function(e,t,r){const n=e("./utils"),i=e("./enums"),o=(e,t,r,n)=>{let a;if(!e)return!1;if(Array.isArray(e)){let i=!1;return e.forEach(((e,a)=>{i||(i=o(e,t,r,n))})),i}if(0===t.length)switch(n){case i.ClaimRelation.EQUALS:return e.replace(/\r?\n|\r|\\/g,"").toLowerCase()===r.toLowerCase();case i.ClaimRelation.ONEOF:return a=new RegExp(r,"gi"),a.test(e.join("|"));case i.ClaimRelation.CONTAINS:default:return a=new RegExp(r,"gi"),a.test(e.replace(/\r?\n|\r|\\/g,""))}if(!(t[0]in e))throw new Error("err_json_structure_incorrect");return o(e[t[0]],t.slice(1),r,n)};r.run=(e,t,r)=>{const a={result:!1,completed:!1,errors:[]};switch(t.proof.request.format){case i.ProofFormat.JSON:try{a.result=o(e,t.claim.path,n.generateClaim(r,t.claim.format),t.claim.relation),a.completed=!0}catch(e){a.errors.push(e.message?e.message:e)}break;case i.ProofFormat.TEXT:try{const i=new RegExp(n.generateClaim(r,t.claim.format).replace("[","\\[").replace("]","\\]"),"gi");a.result=i.test(e.replace(/\r?\n|\r/,"")),a.completed=!0}catch(e){a.errors.push("err_unknown_text_verification")}}return a}},{"./enums":164,"./utils":177}]},{},[173])(173)}));
diff --git a/package.json b/package.json
index a5138e8..f1f4254 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "doipjs",
-  "version": "0.15.5",
+  "version": "0.15.6",
   "description": "Decentralized OpenPGP Identity Proofs library in Node.js",
   "main": "./src/index.js",
   "dependencies": {