@blinkk/root-password-protect 2.5.14-alpha.0 → 2.5.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/plugin.js +3 -3
  2. package/package.json +9 -4
package/dist/plugin.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // src/plugin/plugin.tsx
2
- import { renderJsxToString } from "@blinkk/root/jsx";
3
2
  import bodyParser from "body-parser";
4
3
  import micromatch from "micromatch";
4
+ import { renderToString } from "preact-render-to-string";
5
5
 
6
6
  // src/components/PasswordPage/PasswordPage.css.ts
7
7
  var CSS = `
@@ -338,7 +338,7 @@ async function renderPasswordPage(req, res, options) {
338
338
  res.status(401);
339
339
  setSecurityHeaders(res, nonce);
340
340
  const errorMsg = getErrorMessage(options?.error);
341
- const mainHtml = renderJsxToString(
341
+ const mainHtml = renderToString(
342
342
  /* @__PURE__ */ jsx2(PasswordPage, { error: errorMsg, nonce })
343
343
  );
344
344
  const html = `<!doctype html>
@@ -374,4 +374,4 @@ export {
374
374
  passwordProtectPlugin,
375
375
  renderPasswordPage
376
376
  };
377
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL3BsdWdpbi9wbHVnaW4udHN4IiwgIi4uL3NyYy9jb21wb25lbnRzL1Bhc3N3b3JkUGFnZS9QYXNzd29yZFBhZ2UuY3NzLnRzIiwgIi4uL3NyYy9jb21wb25lbnRzL1Bhc3N3b3JkUGFnZS9QYXNzd29yZFBhZ2UudHN4IiwgIi4uL3NyYy9jb3JlL2NzcC50cyIsICIuLi9zcmMvY29yZS9wYXNzd29yZC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHtSZXF1ZXN0LCBSZXNwb25zZSwgTmV4dEZ1bmN0aW9uLCBQbHVnaW4sIFNlcnZlcn0gZnJvbSAnQGJsaW5ray9yb290JztcbmltcG9ydCB7cmVuZGVySnN4VG9TdHJpbmd9IGZyb20gJ0BibGlua2svcm9vdC9qc3gnO1xuaW1wb3J0IGJvZHlQYXJzZXIgZnJvbSAnYm9keS1wYXJzZXInO1xuaW1wb3J0IG1pY3JvbWF0Y2ggZnJvbSAnbWljcm9tYXRjaCc7XG5pbXBvcnQge1Bhc3N3b3JkUGFnZX0gZnJvbSAnLi4vY29tcG9uZW50cy9QYXNzd29yZFBhZ2UvUGFzc3dvcmRQYWdlLmpzJztcbmltcG9ydCB7Z2VuZXJhdGVOb25jZSwgc2V0U2VjdXJpdHlIZWFkZXJzfSBmcm9tICcuLi9jb3JlL2NzcC5qcyc7XG5pbXBvcnQge2hhc2hQYXNzd29yZCwgdmVyaWZ5UGFzc3dvcmR9IGZyb20gJy4uL2NvcmUvcGFzc3dvcmQuanMnO1xuXG5jb25zdCBTRVNTSU9OX0NPT0tJRV9IQVNIID0gJ3Bhc3N3b3JkX3Byb3RlY3QuaGFzaCc7XG5jb25zdCBTRVNTSU9OX0NPT0tJRV9TQUxUID0gJ3Bhc3N3b3JkX3Byb3RlY3Quc2FsdCc7XG5cbmV4cG9ydCBlbnVtIFBhc3N3b3JkUHJvdGVjdEVycm9yIHtcbiAgVU5LTk9XTiA9ICdVTktOT1dOJyxcbiAgUEFTU1dPUkRfUkVRVUlSRUQgPSAnUEFTU1dPUkRfUkVRVUlSRUQnLFxuICBQQVNTV09SRF9JTlZBTElEID0gJ1BBU1NXT1JEX0lOVkFMSUQnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhc3N3b3JkUHJvdGVjdGVkUm91dGUge1xuICAvKipcbiAgICogVVJMIGdsb2IgcGF0dGVybiB0byBtYXRjaCAocmVnZXggbm90IHN1cHBvcnRlZCB5ZXQpLlxuICAgKi9cbiAgc291cmNlOiBzdHJpbmc7XG5cbiAgcGFzc3dvcmQ6IHtcbiAgICAvKipcbiAgICAgKiBBIGhhc2ggb2YgdGhlIHBhc3N3b3JkLiBOb3RlOiBhIHBsYWluLXRleHQgcGFzc3dvcmQgc2hvdWxkIG5ldmVyIGJlXG4gICAgICogc3RvcmVkIGluIGNvZGUuIENvbnNpZGVyIHN0b3JpbmcgdGhpcyB2YWx1ZSBpbiBhIGAuZW52YCBmaWxlIGZvciBleHRyYVxuICAgICAqIHNlY3VyaXR5LlxuICAgICAqXG4gICAgICogR2VuZXJhdGUgdGhpcyBieSBydW5uaW5nOlxuICAgICAqIGBgYFxuICAgICAqIHJvb3QtcGFzc3dvcmQtcHJvdGVjdCBnZW5lcmF0ZS1oYXNoIFwiTVlfUEFTU1dPUkRcIlxuICAgICAqIGBgYGBcbiAgICAgKi9cbiAgICBoYXNoOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBBIHJhbmRvbSBzdHJpbmcgdXNlZCB0byBnZW5lcmF0ZSB0aGUgcGFzc3dvcmQgaGFzaC5cbiAgICAgKlxuICAgICAqIEdlbmVyYXRlIHRoaXMgYnkgcnVubmluZzpcbiAgICAgKiBgYGBcbiAgICAgKiByb290LXBhc3N3b3JkLXByb3RlY3QgZ2VuZXJhdGUtaGFzaCBcIk1ZX1BBU1NXT1JEXCJcbiAgICAgKiBgYGBgXG4gICAgICovXG4gICAgc2FsdDogc3RyaW5nO1xuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBhc3N3b3JkUHJvdGVjdFBsdWdpbk9wdGlvbnMge1xuICBwcm90ZWN0ZWRSb3V0ZXM6IFBhc3N3b3JkUHJvdGVjdGVkUm91dGVbXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhc3N3b3JkUHJvdGVjdFBsdWdpbihcbiAgb3B0aW9uczogUGFzc3dvcmRQcm90ZWN0UGx1Z2luT3B0aW9uc1xuKTogUGx1Z2luIHtcbiAgY29uc3QgcHJvdGVjdGVkUm91dGVzVXNlckNvbmZpZyA9IG9wdGlvbnMucHJvdGVjdGVkUm91dGVzIHx8IFtdO1xuICBjb25zdCBwcm90ZWN0ZWRSb3V0ZXMgPSBwcm90ZWN0ZWRSb3V0ZXNVc2VyQ29uZmlnLmZpbHRlcigocHJvdGVjdGVkUm91dGUpID0+IHtcbiAgICByZXR1cm4gQm9vbGVhbihcbiAgICAgIHByb3RlY3RlZFJvdXRlLnNvdXJjZSAmJlxuICAgICAgICBwcm90ZWN0ZWRSb3V0ZS5wYXNzd29yZCAmJlxuICAgICAgICBwcm90ZWN0ZWRSb3V0ZS5wYXNzd29yZC5oYXNoICYmXG4gICAgICAgIHByb3RlY3RlZFJvdXRlLnBhc3N3b3JkLnNhbHRcbiAgICApO1xuICB9KTtcblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZmlyc3QgcGFzc3dvcmQtcHJvdGVjdGVkIHJvdXRlIHRoYXQgbWF0Y2hlcy5cbiAgICovXG4gIGZ1bmN0aW9uIGdldFByb3RlY3RlZFJvdXRlQ29uZmlnKFxuICAgIHJlcTogUmVxdWVzdFxuICApOiBQYXNzd29yZFByb3RlY3RlZFJvdXRlIHwgbnVsbCB7XG4gICAgZm9yIChjb25zdCBwcm90ZWN0ZWRSb3V0ZSBvZiBwcm90ZWN0ZWRSb3V0ZXMpIHtcbiAgICAgIGlmIChtaWNyb21hdGNoLmlzTWF0Y2gocmVxLnBhdGgsIHByb3RlY3RlZFJvdXRlLnNvdXJjZSkpIHtcbiAgICAgICAgcmV0dXJuIHByb3RlY3RlZFJvdXRlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ3Jvb3QtcGFzc3dvcmQtcHJvdGVjdCcsXG4gICAgY29uZmlndXJlU2VydmVyOiAoc2VydmVyOiBTZXJ2ZXIpID0+IHtcbiAgICAgIGlmIChwcm90ZWN0ZWRSb3V0ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHNlcnZlci51c2UoYm9keVBhcnNlci51cmxlbmNvZGVkKHtleHRlbmRlZDogdHJ1ZX0pKTtcbiAgICAgIHNlcnZlci51c2UoYXN5bmMgKHJlcTogUmVxdWVzdCwgcmVzOiBSZXNwb25zZSwgbmV4dDogTmV4dEZ1bmN0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IHByb3RlY3RlZFJvdXRlID0gZ2V0UHJvdGVjdGVkUm91dGVDb25maWcocmVxKTtcbiAgICAgICAgaWYgKHByb3RlY3RlZFJvdXRlKSB7XG4gICAgICAgICAgYXdhaXQgaGFuZGxlUHJvdGVjdGVkUm91dGUocHJvdGVjdGVkUm91dGUsIHJlcSwgcmVzLCBuZXh0KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbmV4dCgpO1xuICAgICAgfSk7XG4gICAgfSxcbiAgfTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaGFuZGxlUHJvdGVjdGVkUm91dGUoXG4gIHByb3RlY3RlZFJvdXRlOiBQYXNzd29yZFByb3RlY3RlZFJvdXRlLFxuICByZXE6IFJlcXVlc3QsXG4gIHJlczogUmVzcG9uc2UsXG4gIG5leHQ6IE5leHRGdW5jdGlvblxuKSB7XG4gIGlmIChyZXEubWV0aG9kID09PSAnUE9TVCcpIHtcbiAgICAvLyBWZXJpZnkgcGFzc3dvcmQgYW5kIGlmIHZhbGlkIHNldCBhIHNlc3Npb24gY29va2llLlxuICAgIGlmIChcbiAgICAgIHJlcS5nZXQoJ2NvbnRlbnQtdHlwZScpICE9PSAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyB8fFxuICAgICAgIXJlcS5ib2R5IHx8XG4gICAgICAhcmVxLmJvZHkucGFzc3dvcmRcbiAgICApIHtcbiAgICAgIHJlcy5zdGF0dXMoNDAwKTtcbiAgICAgIHJldHVybiByZW5kZXJQYXNzd29yZFBhZ2UocmVxLCByZXMsIHtcbiAgICAgICAgZXJyb3I6IFBhc3N3b3JkUHJvdGVjdEVycm9yLlBBU1NXT1JEX1JFUVVJUkVELFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgcGFzc3dvcmQgPSByZXEuYm9keS5wYXNzd29yZCBhcyBzdHJpbmc7XG4gICAgY29uc3QgaXNWYWxpZCA9IGF3YWl0IHZlcmlmeVBhc3N3b3JkKFxuICAgICAgcGFzc3dvcmQsXG4gICAgICBwcm90ZWN0ZWRSb3V0ZS5wYXNzd29yZC5oYXNoLFxuICAgICAgcHJvdGVjdGVkUm91dGUucGFzc3dvcmQuc2FsdFxuICAgICk7XG4gICAgaWYgKCFpc1ZhbGlkKSB7XG4gICAgICByZXR1cm4gcmVuZGVyUGFzc3dvcmRQYWdlKHJlcSwgcmVzLCB7XG4gICAgICAgIGVycm9yOiBQYXNzd29yZFByb3RlY3RFcnJvci5QQVNTV09SRF9JTlZBTElELFxuICAgICAgfSk7XG4gICAgfVxuICAgIC8vIFNldCBhIHNlc3Npb24gY29va2llIHZhbHVlIHRvIHZlcmlmeSBzdWJzZXF1ZW50IHJlcXVlc3RzLlxuICAgIGF3YWl0IHNldFNlc3Npb25Db29raWUocHJvdGVjdGVkUm91dGUsIHJlcyk7XG4gICAgcmV0dXJuIG5leHQoKTtcbiAgfVxuXG4gIC8vIElmIHByZXZpb3VzbHkgbG9nZ2VkIGluLCBjaGVjayB0aGUgc2Vzc2lvbiBjb29raWUgYWdhaW5zdCB0aGUgY3VycmVudFxuICAvLyBwYXNzd29yZCBoYXNoLlxuICBjb25zdCBpc1ZhbGlkID0gYXdhaXQgdmVyaWZ5U2Vzc2lvbkNvb2tpZShwcm90ZWN0ZWRSb3V0ZSwgcmVxKTtcbiAgaWYgKGlzVmFsaWQpIHtcbiAgICByZXR1cm4gbmV4dCgpO1xuICB9XG5cbiAgcmV0dXJuIHJlbmRlclBhc3N3b3JkUGFnZShyZXEsIHJlcyk7XG59XG5cbi8qKlxuICogU2F2ZXMgYSB2ZXJpZmljYXRpb24gdG9rZW4gdG8gdGhlIHNlc3Npb24gY29va2llIGZvciBzdWJzZXF1ZW50IHJlcXVlc3RzLlxuICovXG5hc3luYyBmdW5jdGlvbiBzZXRTZXNzaW9uQ29va2llKFxuICBwcm90ZWN0ZWRSb3V0ZTogUGFzc3dvcmRQcm90ZWN0ZWRSb3V0ZSxcbiAgcmVzOiBSZXNwb25zZVxuKSB7XG4gIGNvbnN0IHtoYXNoLCBzYWx0fSA9IGF3YWl0IGhhc2hQYXNzd29yZChwcm90ZWN0ZWRSb3V0ZS5wYXNzd29yZC5oYXNoKTtcbiAgcmVzLnNlc3Npb24uc2V0SXRlbShTRVNTSU9OX0NPT0tJRV9IQVNILCBoYXNoKTtcbiAgcmVzLnNlc3Npb24uc2V0SXRlbShTRVNTSU9OX0NPT0tJRV9TQUxULCBzYWx0KTtcbiAgcmVzLnNhdmVTZXNzaW9uKCk7XG59XG5cbi8qKlxuICogVmVyaWZpZXMgdGhlIHNlc3Npb24gY29va2llIHZhbHVlIGlzIHZhbGlkLlxuICovXG5hc3luYyBmdW5jdGlvbiB2ZXJpZnlTZXNzaW9uQ29va2llKFxuICBwcm90ZWN0ZWRSb3V0ZTogUGFzc3dvcmRQcm90ZWN0ZWRSb3V0ZSxcbiAgcmVxOiBSZXF1ZXN0XG4pIHtcbiAgY29uc3QgaGFzaCA9IHJlcS5zZXNzaW9uLmdldEl0ZW0oU0VTU0lPTl9DT09LSUVfSEFTSCk7XG4gIGNvbnN0IHNhbHQgPSByZXEuc2Vzc2lvbi5nZXRJdGVtKFNFU1NJT05fQ09PS0lFX1NBTFQpO1xuICBpZiAoIWhhc2ggfHwgIXNhbHQpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIGF3YWl0IHZlcmlmeVBhc3N3b3JkKHByb3RlY3RlZFJvdXRlLnBhc3N3b3JkLmhhc2gsIGhhc2gsIHNhbHQpO1xufVxuXG4vKipcbiAqIFJlbmRlcnMgdGhlIGxvZ2luIHBhZ2UgdG8gYSByZXNwb25zZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbmRlclBhc3N3b3JkUGFnZShcbiAgcmVxOiBSZXF1ZXN0LFxuICByZXM6IFJlc3BvbnNlLFxuICBvcHRpb25zPzoge2Vycm9yPzogUGFzc3dvcmRQcm90ZWN0RXJyb3J9XG4pIHtcbiAgLy8gSWYgdGhlcmUncyBubyBgLzQwMWAgcm91dGUsIGZhbGwgYmFjayB0byB0aGUgZGVmYXVsdCBwYXNzd29yZCBwYWdlLlxuICBjb25zdCBkZWZhdWx0SGFuZGxlciA9ICgpID0+IHtcbiAgICBjb25zdCBub25jZSA9IGdlbmVyYXRlTm9uY2UoKTtcbiAgICByZXMuc2V0SGVhZGVyKCdjb250ZW50LXR5cGUnLCAndGV4dC9odG1sJyk7XG4gICAgcmVzLnN0YXR1cyg0MDEpO1xuICAgIHNldFNlY3VyaXR5SGVhZGVycyhyZXMsIG5vbmNlKTtcbiAgICBjb25zdCBlcnJvck1zZyA9IGdldEVycm9yTWVzc2FnZShvcHRpb25zPy5lcnJvcik7XG4gICAgY29uc3QgbWFpbkh0bWwgPSByZW5kZXJKc3hUb1N0cmluZyhcbiAgICAgIDxQYXNzd29yZFBhZ2UgZXJyb3I9e2Vycm9yTXNnfSBub25jZT17bm9uY2V9IC8+XG4gICAgKTtcbiAgICBjb25zdCBodG1sID0gYDwhZG9jdHlwZSBodG1sPlxcbiR7bWFpbkh0bWx9YDtcbiAgICByZXMuc2VuZChodG1sKTtcbiAgfTtcblxuICAvLyBJZiB0aGUgYXBwIGRlZmluZXMgYHJvdXRlcy80MDEudHN4YCwgcmVuZGVyIHRoYXQgcGFnZS5cbiAgaWYgKHJlcS5yZW5kZXJlcikge1xuICAgIGNvbnN0IFtyb3V0ZSwgcm91dGVQYXJhbXNdID0gcmVxLnJlbmRlcmVyLmdldFJvdXRlKCcvNDAxJyk7XG4gICAgaWYgKHJvdXRlKSB7XG4gICAgICAvLyBBZGQgdGhlIGVycm9yIHR5cGUgdG8gdGhlIHJlcSBvYmplY3QuIFJvdXRlcyB0aGF0IGRlZmluZSBhIGBoYW5kbGUoKWBcbiAgICAgIC8vIG1ldGhvZCBzaG91bGQgYmUgYWJsZSB0byByZWFkIGZyb20gaXQgdG8gY29uc3RydWN0IGFuIGFwcHJvcHJpYXRlXG4gICAgICAvLyBlcnJvciBtZXNzYWdlIGZvciB0aGUgcGFnZS5cbiAgICAgIChyZXEgYXMgYW55KS5wYXNzd29yZFByb3RlY3QgPSB7ZXJyb3I6IG9wdGlvbnM/LmVycm9yfTtcbiAgICAgIHJldHVybiByZXEucmVuZGVyZXIuaGFuZGxlUm91dGUocmVxLCByZXMsIGRlZmF1bHRIYW5kbGVyLCByb3V0ZSwge1xuICAgICAgICBkZWZhdWx0U3RhdHVzQ29kZTogNDAxLFxuICAgICAgICByb3V0ZVBhcmFtczogcm91dGVQYXJhbXMsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGRlZmF1bHRIYW5kbGVyKCk7XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBgUGFzc3dvcmRQcm90ZWN0RXJyb3JgIHRvIGEgdXNlci1mcmllbmRseSBlcnJvciBtZXNzYWdlLlxuICovXG5mdW5jdGlvbiBnZXRFcnJvck1lc3NhZ2UoZXJyb3I/OiBQYXNzd29yZFByb3RlY3RFcnJvcikge1xuICBpZiAoIWVycm9yKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuICBpZiAoZXJyb3IgPT09IFBhc3N3b3JkUHJvdGVjdEVycm9yLlBBU1NXT1JEX1JFUVVJUkVEKSB7XG4gICAgcmV0dXJuICdCYWQgcmVxdWVzdCAobm8gcGFzc3dvcmQpLic7XG4gIH1cbiAgaWYgKGVycm9yID09PSBQYXNzd29yZFByb3RlY3RFcnJvci5QQVNTV09SRF9JTlZBTElEKSB7XG4gICAgcmV0dXJuICdJbmNvcnJlY3QgcGFzc3dvcmQuJztcbiAgfVxuICByZXR1cm4gJ1Vua25vd24gZXJyb3IuJztcbn1cbiIsICJleHBvcnQgY29uc3QgQ1NTID0gYFxuLnNpZ25pbiB7XG4gIGZvbnQtZmFtaWx5OiAnSW50ZXInLCBzeXN0ZW0tdWksIHNhbnMtc2VyaWY7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogNDhweCAyMHB4O1xuICBjb2xvcjogIzNjNDA0Mztcbn1cblxuLnNpZ25pbl9faGVhZGxpbmUge1xuICBtYXJnaW4tYm90dG9tOiA0MHB4O1xufVxuXG4uc2lnbmluX19oZWFkbGluZV9faWNvbiB7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi5zaWduaW5fX2hlYWRsaW5lX19pY29uIHN2ZyB7XG4gIHdpZHRoOiA3MnB4O1xuICBoZWlnaHQ6IDcycHg7XG59XG5cbi5zaWduaW5fX2hlYWRsaW5lX190aXRsZSB7XG4gIGZvbnQtc2l6ZTogMzZweDtcbiAgbGluZS1oZWlnaHQ6IDEuMztcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLnNpZ25pbl9faGVhZGxpbmVfX2JvZHkge1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjU7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5zaWduaW5fX2Zvcm0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDhweDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5zaWduaW5fX2Zvcm1fX3Bhc3N3b3JkIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2RhZGNlMDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBsZXR0ZXItc3BhY2luZzogLjI1cHg7XG4gIHBhZGRpbmc6IDAgMTJweDtcbiAgbWluLXdpZHRoOiAyNTBweDtcbiAgdHJhbnNpdGlvbjogYWxsIDAuMjE4cyBlYXNlO1xufVxuXG4uc2lnbmluX19mb3JtX19wYXNzd29yZDpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogI2QyZTNmYztcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg2NiwgMTMzLCAyNDQsIDAuMDQpO1xufVxuXG4uc2lnbmluX19idXR0b24ge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZ2FwOiAxMnB4O1xuICBwYWRkaW5nOiA4cHggMTFweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkYWRjZTA7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgcGFkZGluZzogMCAxMnB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRyYW5zaXRpb246IGFsbCAwLjIxOHMgZWFzZTtcbn1cblxuLnNpZ25pbl9fYnV0dG9uOmhvdmVyIHtcbiAgYm9yZGVyLWNvbG9yOiAjZDJlM2ZjO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDY2LCAxMzMsIDI0NCwgMC4wNCk7XG59XG5cbi5zaWduaW5fX2J1dHRvbl9faWNvbiB7XG4gIHdpZHRoOiAxOHB4O1xuICBoZWlnaHQ6IDE4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xufVxuXG4uc2lnbmluX19idXR0b25fX2xhYmVsIHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgbGV0dGVyLXNwYWNpbmc6IC4yNXB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogIzNjNDA0Mztcbn1cblxuLnNpZ25pbl9fZXJyb3Ige1xuICBjb2xvcjogcmVkO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXgtd2lkdGg6IDYwY2g7XG4gIG1hcmdpbjogMjBweCBhdXRvIDA7XG59XG5gO1xuIiwgImltcG9ydCB7Q1NTfSBmcm9tICcuL1Bhc3N3b3JkUGFnZS5jc3MuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhc3N3b3JkUGFnZVByb3BzIHtcbiAgbm9uY2U6IHN0cmluZztcbiAgZXJyb3I/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBQYXNzd29yZFBhZ2UocHJvcHM6IFBhc3N3b3JkUGFnZVByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGh0bWwgbGFuZz1cImVuXCI+XG4gICAgICA8aGVhZD5cbiAgICAgICAgPG1ldGEgY2hhcnNldD1cInV0Zi04XCIgLz5cbiAgICAgICAgPHRpdGxlPlByb3RlY3RlZDwvdGl0bGU+XG4gICAgICAgIDxsaW5rXG4gICAgICAgICAgcmVsPVwiaWNvblwiXG4gICAgICAgICAgaHJlZj1cImh0dHBzOi8vbGgzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9paks1MFRmUWxWX3lKdzNpLUNNbG5ENm9zSDRQYm9aQklMWnJKY1dob05NRW1veUNENWUxYkF4WGJhT1BlNXc0Z0dfU2NmMzdFWHJtWjZwOHNQMmx1ZTVmTFo0MTltNUp5TE1zPWUzODUtdzI1NlwiXG4gICAgICAgICAgdHlwZT1cImltYWdlL3BuZ1wiXG4gICAgICAgIC8+XG4gICAgICAgIDxsaW5rXG4gICAgICAgICAgaHJlZj1cImh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9SW50ZXI6d2dodEA0MDA7NTAwOzYwMDs3MDA7OTAwXCJcbiAgICAgICAgICByZWw9XCJzdHlsZXNoZWV0XCJcbiAgICAgICAgICBub25jZT17cHJvcHMubm9uY2V9XG4gICAgICAgIC8+XG4gICAgICAgIDxzdHlsZSBub25jZT17cHJvcHMubm9uY2V9PntDU1N9PC9zdHlsZT5cbiAgICAgIDwvaGVhZD5cbiAgICAgIDxib2R5PlxuICAgICAgICA8ZGl2IGlkPVwicm9vdFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2lnbmluXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNpZ25pbl9faGVhZGxpbmVcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzaWduaW5fX2hlYWRsaW5lX19pY29uXCI+XG4gICAgICAgICAgICAgICAgPFNoaWVsZEljb24gLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxoMT5UaGlzIHBhZ2UgaXMgcHJvdGVjdGVkLjwvaDE+XG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInNpZ25pbl9faGVhZGxpbmVfX2JvZHlcIj5cbiAgICAgICAgICAgICAgICBFbnRlciB0aGUgcGFzc3dvcmQgYmVsb3cgdG8gY29udGludWU6XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGZvcm0gY2xhc3NOYW1lPVwic2lnbmluX19mb3JtXCIgbWV0aG9kPVwiUE9TVFwiPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBpZD1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJzaWduaW5fX2Zvcm1fX3Bhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwicGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJwYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJQYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgYXV0b0ZvY3VzPXt0cnVlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzTmFtZT1cInNpZ25pbl9fYnV0dG9uXCIgdHlwZT1cInN1Ym1pdFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2lnbmluX19idXR0b25fX2xhYmVsXCI+U3VibWl0PC9kaXY+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAge3Byb3BzLmVycm9yICYmIDxwIGNsYXNzTmFtZT1cInNpZ25pbl9fZXJyb3JcIj57cHJvcHMuZXJyb3J9PC9wPn1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2JvZHk+XG4gICAgPC9odG1sPlxuICApO1xufVxuXG5mdW5jdGlvbiBTaGllbGRJY29uKCkge1xuICByZXR1cm4gKFxuICAgIDxzdmdcbiAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgd2lkdGg9XCIzNlwiXG4gICAgICBoZWlnaHQ9XCIzNlwiXG4gICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXG4gICAgICBzdHJva2U9XCIjZmY0NTAwXCJcbiAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgID5cbiAgICAgIDxwYXRoIHN0cm9rZT1cIm5vbmVcIiBkPVwiTTAgMGgyNHYyNEgwelwiIGZpbGw9XCJub25lXCIgLz5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMTEuOTk4IDJsLjExOCAuMDA3bC4wNTkgLjAwOGwuMDYxIC4wMTNsLjExMSAuMDM0YS45OTMgLjk5MyAwIDAgMSAuMjE3IC4xMTJsLjEwNCAuMDgybC4yNTUgLjIxOGExMSAxMSAwIDAgMCA3LjE4OSAyLjUzN2wuMzQyIC0uMDFhMSAxIDAgMCAxIDEuMDA1IC43MTdhMTMgMTMgMCAwIDEgLTkuMjA4IDE2LjI1YTEgMSAwIDAgMSAtLjUwMiAwYTEzIDEzIDAgMCAxIC05LjIwOSAtMTYuMjVhMSAxIDAgMCAxIDEuMDA1IC0uNzE3YTExIDExIDAgMCAwIDcuNTMxIC0yLjUyN2wuMjYzIC0uMjI1bC4wOTYgLS4wNzVhLjk5MyAuOTkzIDAgMCAxIC4yMTcgLS4xMTJsLjExMiAtLjAzNGEuOTcgLjk3IDAgMCAxIC4xMTkgLS4wMjFsLjExNSAtLjAwN3ptLjAwMiA3YTIgMiAwIDAgMCAtMS45OTUgMS44NWwtLjAwNSAuMTVsLjAwNSAuMTVhMiAyIDAgMCAwIC45OTUgMS41ODF2MS43NjlsLjAwNyAuMTE3YTEgMSAwIDAgMCAxLjk5MyAtLjExN2wuMDAxIC0xLjc2OGEyIDIgMCAwIDAgLTEuMDAxIC0zLjczMnpcIlxuICAgICAgICBzdHJva2Utd2lkdGg9XCIwXCJcbiAgICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICAvPlxuICAgIDwvc3ZnPlxuICApO1xufVxuIiwgImltcG9ydCBjcnlwdG8gZnJvbSAnbm9kZTpjcnlwdG8nO1xuaW1wb3J0IHtSZXNwb25zZX0gZnJvbSAnQGJsaW5ray9yb290JztcblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlTm9uY2UoKSB7XG4gIHJldHVybiBjcnlwdG8ucmFuZG9tQnl0ZXMoMTYpLnRvU3RyaW5nKCdiYXNlNjQnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFNlY3VyaXR5SGVhZGVycyhyZXM6IFJlc3BvbnNlLCBub25jZTogc3RyaW5nKSB7XG4gIHJlcy5zZXRIZWFkZXIoJ3gtZnJhbWUtb3B0aW9ucycsICdTQU1FT1JJR0lOJyk7XG4gIHJlcy5zZXRIZWFkZXIoXG4gICAgJ3N0cmljdC10cmFuc3BvcnQtc2VjdXJpdHknLFxuICAgICdtYXgtYWdlPTYzMDcyMDAwOyBpbmNsdWRlU3ViZG9tYWluczsgcHJlbG9hZCdcbiAgKTtcbiAgcmVzLnNldEhlYWRlcigneC1jb250ZW50LXR5cGUtb3B0aW9ucycsICdub3NuaWZmJyk7XG4gIHJlcy5zZXRIZWFkZXIoJ3gteHNzLXByb3RlY3Rpb24nLCAnMTsgbW9kZT1ibG9jaycpO1xuXG4gIC8vIGh0dHBzOi8vY3NwLndpdGhnb29nbGUuY29tL2RvY3Mvc3RyaWN0LWNzcC5odG1sXG4gIGNvbnN0IGRpcmVjdGl2ZXMgPSBbXG4gICAgXCJiYXNlLXVyaSAnbm9uZSdcIixcbiAgICBcIm9iamVjdC1zcmMgJ25vbmUnXCIsXG4gICAgYHNjcmlwdC1zcmMgJ25vbmNlLSR7bm9uY2V9JyAndW5zYWZlLWlubGluZScgJ3Vuc2FmZS1ldmFsJyAnc3RyaWN0LWR5bmFtaWMnIGh0dHBzOiBodHRwOmAsXG4gIF07XG4gIHJlcy5zZXRIZWFkZXIoJ2NvbnRlbnQtc2VjdXJpdHktcG9saWN5LXJlcG9ydC1vbmx5JywgZGlyZWN0aXZlcy5qb2luKCc7JykpO1xufVxuIiwgImltcG9ydCBjcnlwdG8gZnJvbSAnY3J5cHRvJztcblxuY29uc3QgUEFTU1dPUkRfSVRFUkFUSU9OUyA9IDEwMDAwO1xuY29uc3QgUEFTU1dPUkRfSEFTSF9MRU5HVEggPSA2NDtcbmNvbnN0IFBBU1NXT1JEX0RJR0VTVCA9ICdzaGEyNTYnO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaGFzaFBhc3N3b3JkKFxuICBwYXNzd29yZDogc3RyaW5nXG4pOiBQcm9taXNlPHtoYXNoOiBzdHJpbmc7IHNhbHQ6IHN0cmluZ30+IHtcbiAgY29uc3Qgc2FsdCA9IGNyeXB0by5yYW5kb21CeXRlcygxNikudG9TdHJpbmcoJ2hleCcpO1xuICBjb25zdCBoYXNoID0gYXdhaXQgZ2VuZXJhdGVIYXNoKHBhc3N3b3JkLCBzYWx0KTtcbiAgcmV0dXJuIHtoYXNoLCBzYWx0fTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHZlcmlmeVBhc3N3b3JkKFxuICBwYXNzd29yZDogc3RyaW5nLFxuICBoYXNoOiBzdHJpbmcsXG4gIHNhbHQ6IHN0cmluZ1xuKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IGdlbmVyYXRlZEhhc2ggPSBhd2FpdCBnZW5lcmF0ZUhhc2gocGFzc3dvcmQsIHNhbHQpO1xuICByZXR1cm4gaGFzaCA9PT0gZ2VuZXJhdGVkSGFzaDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlSGFzaChwYXNzd29yZDogc3RyaW5nLCBzYWx0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNyeXB0by5wYmtkZjIoXG4gICAgICBwYXNzd29yZCxcbiAgICAgIHNhbHQsXG4gICAgICBQQVNTV09SRF9JVEVSQVRJT05TLFxuICAgICAgUEFTU1dPUkRfSEFTSF9MRU5HVEgsXG4gICAgICBQQVNTV09SRF9ESUdFU1QsXG4gICAgICAoZXJyLCBkZXJpdmVkS2V5KSA9PiB7XG4gICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdwYXNzd29yZCBoYXNoaW5nIGZhaWxlZCcpO1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaGFzaCA9IGRlcml2ZWRLZXkudG9TdHJpbmcoJ2hleCcpO1xuICAgICAgICByZXNvbHZlKGhhc2gpO1xuICAgICAgfVxuICAgICk7XG4gIH0pO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUNBLFNBQVEseUJBQXdCO0FBQ2hDLE9BQU8sZ0JBQWdCO0FBQ3ZCLE9BQU8sZ0JBQWdCOzs7QUNIaEIsSUFBTSxNQUFNO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7OztBQ1ViLFNBQ0UsS0FERjtBQUhDLFNBQVMsYUFBYSxPQUEwQjtBQUNyRCxTQUNFLHFCQUFDLFVBQUssTUFBSyxNQUNUO0FBQUEseUJBQUMsVUFDQztBQUFBLDBCQUFDLFVBQUssU0FBUSxTQUFRO0FBQUEsTUFDdEIsb0JBQUMsV0FB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LEtBQ0E7QUFDQSxRQUFNLEVBQUMsTUFBTSxLQUFJLElBQUksTUFBTSxhQUFhLGVBQWUsU0FBUyxJQUFJO0FBQ3BFLE1BQUksUUFBUSxRQUFRLHFCQUFxQixJQUFJO0FBQzdDLE1BQUksUUFBUSxRQUFRLHFCQUFxQixJQUFJO0FBQzdDLE1BQUksWUFBWTtBQUNsQjtBQUtBLGVBQWUsb0JBQ2IsZ0JBQ0EsS0FDQTtBQUNBLFFBQU0sT0FBTyxJQUFJLFFBQVEsUUFBUSxtQkFBbUI7QUFDcEQsUUFBTSxPQUFPLElBQUksUUFBUSxRQUFRLG1CQUFtQjtBQUNwRCxNQUFJLENBQUMsUUFBUSxDQUFDLE1BQU07QUFDbEIsV0FBTztBQUFBLEVBQ1Q7QUFDQSxTQUFPLE1BQU0sZUFBZSxlQUFlLFNBQVMsTUFBTSxNQUFNLElBQUk7QUFDdEU7QUFLQSxlQUFzQixtQkFDcEIsS0FDQSxLQUNBLFNBQ0E7QUFFQSxRQUFNLGlCQUFpQixNQUFNO0FBQzNCLFVBQU0sUUFBUSxjQUFjO0FBQzVCLFFBQUksVUFBVSxnQkFBZ0IsV0FBVztBQUN6QyxRQUFJLE9BQU8sR0FBRztBQUNkLHVCQUFtQixLQUFLLEtBQUs7QUFDN0IsVUFBTSxXQUFXLGdCQUFnQixTQUFTLEtBQUs7QUFDL0MsVUFBTSxXQUFXO0FBQUEsTUFDZixnQkFBQUYsS0FBQyxnQkFBYSxPQUFPLFVBQVUsT0FBYztBQUFBLElBQy9DO0FBQ0EsVUFBTSxPQUFPO0FBQUEsRUFBb0IsUUFBUTtBQUN6QyxRQUFJLEtBQUssSUFBSTtBQUFBLEVBQ2Y7QUFHQSxNQUFJLElBQUksVUFBVTtBQUNoQixVQUFNLENBQUMsT0FBTyxXQUFXLElBQUksSUFBSSxTQUFTLFNBQVMsTUFBTTtBQUN6RCxRQUFJLE9BQU87QUFJVCxNQUFDLElBQVksa0JBQWtCLEVBQUMsT0FBTyxTQUFTLE1BQUs7QUFDckQsYUFBTyxJQUFJLFNBQVMsWUFBWSxLQUFLLEtBQUssZ0JBQWdCLE9BQU87QUFBQSxRQUMvRCxtQkFBbUI7QUFBQSxRQUNuQjtBQUFBLE1BQ0YsQ0FBQztBQUFBLElBQ0g7QUFBQSxFQUNGO0FBQ0EsU0FBTyxlQUFlO0FBQ3hCO0FBS0EsU0FBUyxnQkFBZ0IsT0FBOEI7QUFDckQsTUFBSSxDQUFDLE9BQU87QUFDVixXQUFPO0FBQUEsRUFDVDtBQUNBLE1BQUksVUFBVSw2Q0FBd0M7QUFDcEQsV0FBTztBQUFBLEVBQ1Q7QUFDQSxNQUFJLFVBQVUsMkNBQXVDO0FBQ25ELFdBQU87QUFBQSxFQUNUO0FBQ0EsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogWyJjcnlwdG8iLCAianN4IiwgIlBhc3N3b3JkUHJvdGVjdEVycm9yIiwgImlzVmFsaWQiXQp9Cg==
377
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL3BsdWdpbi9wbHVnaW4udHN4IiwgIi4uL3NyYy9jb21wb25lbnRzL1Bhc3N3b3JkUGFnZS9QYXNzd29yZFBhZ2UuY3NzLnRzIiwgIi4uL3NyYy9jb21wb25lbnRzL1Bhc3N3b3JkUGFnZS9QYXNzd29yZFBhZ2UudHN4IiwgIi4uL3NyYy9jb3JlL2NzcC50cyIsICIuLi9zcmMvY29yZS9wYXNzd29yZC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHtSZXF1ZXN0LCBSZXNwb25zZSwgTmV4dEZ1bmN0aW9uLCBQbHVnaW4sIFNlcnZlcn0gZnJvbSAnQGJsaW5ray9yb290JztcbmltcG9ydCBib2R5UGFyc2VyIGZyb20gJ2JvZHktcGFyc2VyJztcbmltcG9ydCBtaWNyb21hdGNoIGZyb20gJ21pY3JvbWF0Y2gnO1xuaW1wb3J0IHtyZW5kZXJUb1N0cmluZ30gZnJvbSAncHJlYWN0LXJlbmRlci10by1zdHJpbmcnO1xuaW1wb3J0IHtQYXNzd29yZFBhZ2V9IGZyb20gJy4uL2NvbXBvbmVudHMvUGFzc3dvcmRQYWdlL1Bhc3N3b3JkUGFnZS5qcyc7XG5pbXBvcnQge2dlbmVyYXRlTm9uY2UsIHNldFNlY3VyaXR5SGVhZGVyc30gZnJvbSAnLi4vY29yZS9jc3AuanMnO1xuaW1wb3J0IHtoYXNoUGFzc3dvcmQsIHZlcmlmeVBhc3N3b3JkfSBmcm9tICcuLi9jb3JlL3Bhc3N3b3JkLmpzJztcblxuY29uc3QgU0VTU0lPTl9DT09LSUVfSEFTSCA9ICdwYXNzd29yZF9wcm90ZWN0Lmhhc2gnO1xuY29uc3QgU0VTU0lPTl9DT09LSUVfU0FMVCA9ICdwYXNzd29yZF9wcm90ZWN0LnNhbHQnO1xuXG5leHBvcnQgZW51bSBQYXNzd29yZFByb3RlY3RFcnJvciB7XG4gIFVOS05PV04gPSAnVU5LTk9XTicsXG4gIFBBU1NXT1JEX1JFUVVJUkVEID0gJ1BBU1NXT1JEX1JFUVVJUkVEJyxcbiAgUEFTU1dPUkRfSU5WQUxJRCA9ICdQQVNTV09SRF9JTlZBTElEJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXNzd29yZFByb3RlY3RlZFJvdXRlIHtcbiAgLyoqXG4gICAqIFVSTCBnbG9iIHBhdHRlcm4gdG8gbWF0Y2ggKHJlZ2V4IG5vdCBzdXBwb3J0ZWQgeWV0KS5cbiAgICovXG4gIHNvdXJjZTogc3RyaW5nO1xuXG4gIHBhc3N3b3JkOiB7XG4gICAgLyoqXG4gICAgICogQSBoYXNoIG9mIHRoZSBwYXNzd29yZC4gTm90ZTogYSBwbGFpbi10ZXh0IHBhc3N3b3JkIHNob3VsZCBuZXZlciBiZVxuICAgICAqIHN0b3JlZCBpbiBjb2RlLiBDb25zaWRlciBzdG9yaW5nIHRoaXMgdmFsdWUgaW4gYSBgLmVudmAgZmlsZSBmb3IgZXh0cmFcbiAgICAgKiBzZWN1cml0eS5cbiAgICAgKlxuICAgICAqIEdlbmVyYXRlIHRoaXMgYnkgcnVubmluZzpcbiAgICAgKiBgYGBcbiAgICAgKiByb290LXBhc3N3b3JkLXByb3RlY3QgZ2VuZXJhdGUtaGFzaCBcIk1ZX1BBU1NXT1JEXCJcbiAgICAgKiBgYGBgXG4gICAgICovXG4gICAgaGFzaDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogQSByYW5kb20gc3RyaW5nIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIHBhc3N3b3JkIGhhc2guXG4gICAgICpcbiAgICAgKiBHZW5lcmF0ZSB0aGlzIGJ5IHJ1bm5pbmc6XG4gICAgICogYGBgXG4gICAgICogcm9vdC1wYXNzd29yZC1wcm90ZWN0IGdlbmVyYXRlLWhhc2ggXCJNWV9QQVNTV09SRFwiXG4gICAgICogYGBgYFxuICAgICAqL1xuICAgIHNhbHQ6IHN0cmluZztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXNzd29yZFByb3RlY3RQbHVnaW5PcHRpb25zIHtcbiAgcHJvdGVjdGVkUm91dGVzOiBQYXNzd29yZFByb3RlY3RlZFJvdXRlW107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXNzd29yZFByb3RlY3RQbHVnaW4oXG4gIG9wdGlvbnM6IFBhc3N3b3JkUHJvdGVjdFBsdWdpbk9wdGlvbnNcbik6IFBsdWdpbiB7XG4gIGNvbnN0IHByb3RlY3RlZFJvdXRlc1VzZXJDb25maWcgPSBvcHRpb25zLnByb3RlY3RlZFJvdXRlcyB8fCBbXTtcbiAgY29uc3QgcHJvdGVjdGVkUm91dGVzID0gcHJvdGVjdGVkUm91dGVzVXNlckNvbmZpZy5maWx0ZXIoKHByb3RlY3RlZFJvdXRlKSA9PiB7XG4gICAgcmV0dXJuIEJvb2xlYW4oXG4gICAgICBwcm90ZWN0ZWRSb3V0ZS5zb3VyY2UgJiZcbiAgICAgICAgcHJvdGVjdGVkUm91dGUucGFzc3dvcmQgJiZcbiAgICAgICAgcHJvdGVjdGVkUm91dGUucGFzc3dvcmQuaGFzaCAmJlxuICAgICAgICBwcm90ZWN0ZWRSb3V0ZS5wYXNzd29yZC5zYWx0XG4gICAgKTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGZpcnN0IHBhc3N3b3JkLXByb3RlY3RlZCByb3V0ZSB0aGF0IG1hdGNoZXMuXG4gICAqL1xuICBmdW5jdGlvbiBnZXRQcm90ZWN0ZWRSb3V0ZUNvbmZpZyhcbiAgICByZXE6IFJlcXVlc3RcbiAgKTogUGFzc3dvcmRQcm90ZWN0ZWRSb3V0ZSB8IG51bGwge1xuICAgIGZvciAoY29uc3QgcHJvdGVjdGVkUm91dGUgb2YgcHJvdGVjdGVkUm91dGVzKSB7XG4gICAgICBpZiAobWljcm9tYXRjaC5pc01hdGNoKHJlcS5wYXRoLCBwcm90ZWN0ZWRSb3V0ZS5zb3VyY2UpKSB7XG4gICAgICAgIHJldHVybiBwcm90ZWN0ZWRSb3V0ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG5hbWU6ICdyb290LXBhc3N3b3JkLXByb3RlY3QnLFxuICAgIGNvbmZpZ3VyZVNlcnZlcjogKHNlcnZlcjogU2VydmVyKSA9PiB7XG4gICAgICBpZiAocHJvdGVjdGVkUm91dGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBzZXJ2ZXIudXNlKGJvZHlQYXJzZXIudXJsZW5jb2RlZCh7ZXh0ZW5kZWQ6IHRydWV9KSk7XG4gICAgICBzZXJ2ZXIudXNlKGFzeW5jIChyZXE6IFJlcXVlc3QsIHJlczogUmVzcG9uc2UsIG5leHQ6IE5leHRGdW5jdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBwcm90ZWN0ZWRSb3V0ZSA9IGdldFByb3RlY3RlZFJvdXRlQ29uZmlnKHJlcSk7XG4gICAgICAgIGlmIChwcm90ZWN0ZWRSb3V0ZSkge1xuICAgICAgICAgIGF3YWl0IGhhbmRsZVByb3RlY3RlZFJvdXRlKHByb3RlY3RlZFJvdXRlLCByZXEsIHJlcywgbmV4dCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIG5leHQoKTtcbiAgICAgIH0pO1xuICAgIH0sXG4gIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGhhbmRsZVByb3RlY3RlZFJvdXRlKFxuICBwcm90ZWN0ZWRSb3V0ZTogUGFzc3dvcmRQcm90ZWN0ZWRSb3V0ZSxcbiAgcmVxOiBSZXF1ZXN0LFxuICByZXM6IFJlc3BvbnNlLFxuICBuZXh0OiBOZXh0RnVuY3Rpb25cbikge1xuICBpZiAocmVxLm1ldGhvZCA9PT0gJ1BPU1QnKSB7XG4gICAgLy8gVmVyaWZ5IHBhc3N3b3JkIGFuZCBpZiB2YWxpZCBzZXQgYSBzZXNzaW9uIGNvb2tpZS5cbiAgICBpZiAoXG4gICAgICByZXEuZ2V0KCdjb250ZW50LXR5cGUnKSAhPT0gJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcgfHxcbiAgICAgICFyZXEuYm9keSB8fFxuICAgICAgIXJlcS5ib2R5LnBhc3N3b3JkXG4gICAgKSB7XG4gICAgICByZXMuc3RhdHVzKDQwMCk7XG4gICAgICByZXR1cm4gcmVuZGVyUGFzc3dvcmRQYWdlKHJlcSwgcmVzLCB7XG4gICAgICAgIGVycm9yOiBQYXNzd29yZFByb3RlY3RFcnJvci5QQVNTV09SRF9SRVFVSVJFRCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHBhc3N3b3JkID0gcmVxLmJvZHkucGFzc3dvcmQgYXMgc3RyaW5nO1xuICAgIGNvbnN0IGlzVmFsaWQgPSBhd2FpdCB2ZXJpZnlQYXNzd29yZChcbiAgICAgIHBhc3N3b3JkLFxuICAgICAgcHJvdGVjdGVkUm91dGUucGFzc3dvcmQuaGFzaCxcbiAgICAgIHByb3RlY3RlZFJvdXRlLnBhc3N3b3JkLnNhbHRcbiAgICApO1xuICAgIGlmICghaXNWYWxpZCkge1xuICAgICAgcmV0dXJuIHJlbmRlclBhc3N3b3JkUGFnZShyZXEsIHJlcywge1xuICAgICAgICBlcnJvcjogUGFzc3dvcmRQcm90ZWN0RXJyb3IuUEFTU1dPUkRfSU5WQUxJRCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICAvLyBTZXQgYSBzZXNzaW9uIGNvb2tpZSB2YWx1ZSB0byB2ZXJpZnkgc3Vic2VxdWVudCByZXF1ZXN0cy5cbiAgICBhd2FpdCBzZXRTZXNzaW9uQ29va2llKHByb3RlY3RlZFJvdXRlLCByZXMpO1xuICAgIHJldHVybiBuZXh0KCk7XG4gIH1cblxuICAvLyBJZiBwcmV2aW91c2x5IGxvZ2dlZCBpbiwgY2hlY2sgdGhlIHNlc3Npb24gY29va2llIGFnYWluc3QgdGhlIGN1cnJlbnRcbiAgLy8gcGFzc3dvcmQgaGFzaC5cbiAgY29uc3QgaXNWYWxpZCA9IGF3YWl0IHZlcmlmeVNlc3Npb25Db29raWUocHJvdGVjdGVkUm91dGUsIHJlcSk7XG4gIGlmIChpc1ZhbGlkKSB7XG4gICAgcmV0dXJuIG5leHQoKTtcbiAgfVxuXG4gIHJldHVybiByZW5kZXJQYXNzd29yZFBhZ2UocmVxLCByZXMpO1xufVxuXG4vKipcbiAqIFNhdmVzIGEgdmVyaWZpY2F0aW9uIHRva2VuIHRvIHRoZSBzZXNzaW9uIGNvb2tpZSBmb3Igc3Vic2VxdWVudCByZXF1ZXN0cy5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gc2V0U2Vzc2lvbkNvb2tpZShcbiAgcHJvdGVjdGVkUm91dGU6IFBhc3N3b3JkUHJvdGVjdGVkUm91dGUsXG4gIHJlczogUmVzcG9uc2Vcbikge1xuICBjb25zdCB7aGFzaCwgc2FsdH0gPSBhd2FpdCBoYXNoUGFzc3dvcmQocHJvdGVjdGVkUm91dGUucGFzc3dvcmQuaGFzaCk7XG4gIHJlcy5zZXNzaW9uLnNldEl0ZW0oU0VTU0lPTl9DT09LSUVfSEFTSCwgaGFzaCk7XG4gIHJlcy5zZXNzaW9uLnNldEl0ZW0oU0VTU0lPTl9DT09LSUVfU0FMVCwgc2FsdCk7XG4gIHJlcy5zYXZlU2Vzc2lvbigpO1xufVxuXG4vKipcbiAqIFZlcmlmaWVzIHRoZSBzZXNzaW9uIGNvb2tpZSB2YWx1ZSBpcyB2YWxpZC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gdmVyaWZ5U2Vzc2lvbkNvb2tpZShcbiAgcHJvdGVjdGVkUm91dGU6IFBhc3N3b3JkUHJvdGVjdGVkUm91dGUsXG4gIHJlcTogUmVxdWVzdFxuKSB7XG4gIGNvbnN0IGhhc2ggPSByZXEuc2Vzc2lvbi5nZXRJdGVtKFNFU1NJT05fQ09PS0lFX0hBU0gpO1xuICBjb25zdCBzYWx0ID0gcmVxLnNlc3Npb24uZ2V0SXRlbShTRVNTSU9OX0NPT0tJRV9TQUxUKTtcbiAgaWYgKCFoYXNoIHx8ICFzYWx0KSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiBhd2FpdCB2ZXJpZnlQYXNzd29yZChwcm90ZWN0ZWRSb3V0ZS5wYXNzd29yZC5oYXNoLCBoYXNoLCBzYWx0KTtcbn1cblxuLyoqXG4gKiBSZW5kZXJzIHRoZSBsb2dpbiBwYWdlIHRvIGEgcmVzcG9uc2UuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZW5kZXJQYXNzd29yZFBhZ2UoXG4gIHJlcTogUmVxdWVzdCxcbiAgcmVzOiBSZXNwb25zZSxcbiAgb3B0aW9ucz86IHtlcnJvcj86IFBhc3N3b3JkUHJvdGVjdEVycm9yfVxuKSB7XG4gIC8vIElmIHRoZXJlJ3Mgbm8gYC80MDFgIHJvdXRlLCBmYWxsIGJhY2sgdG8gdGhlIGRlZmF1bHQgcGFzc3dvcmQgcGFnZS5cbiAgY29uc3QgZGVmYXVsdEhhbmRsZXIgPSAoKSA9PiB7XG4gICAgY29uc3Qgbm9uY2UgPSBnZW5lcmF0ZU5vbmNlKCk7XG4gICAgcmVzLnNldEhlYWRlcignY29udGVudC10eXBlJywgJ3RleHQvaHRtbCcpO1xuICAgIHJlcy5zdGF0dXMoNDAxKTtcbiAgICBzZXRTZWN1cml0eUhlYWRlcnMocmVzLCBub25jZSk7XG4gICAgY29uc3QgZXJyb3JNc2cgPSBnZXRFcnJvck1lc3NhZ2Uob3B0aW9ucz8uZXJyb3IpO1xuICAgIGNvbnN0IG1haW5IdG1sID0gcmVuZGVyVG9TdHJpbmcoXG4gICAgICA8UGFzc3dvcmRQYWdlIGVycm9yPXtlcnJvck1zZ30gbm9uY2U9e25vbmNlfSAvPlxuICAgICk7XG4gICAgY29uc3QgaHRtbCA9IGA8IWRvY3R5cGUgaHRtbD5cXG4ke21haW5IdG1sfWA7XG4gICAgcmVzLnNlbmQoaHRtbCk7XG4gIH07XG5cbiAgLy8gSWYgdGhlIGFwcCBkZWZpbmVzIGByb3V0ZXMvNDAxLnRzeGAsIHJlbmRlciB0aGF0IHBhZ2UuXG4gIGlmIChyZXEucmVuZGVyZXIpIHtcbiAgICBjb25zdCBbcm91dGUsIHJvdXRlUGFyYW1zXSA9IHJlcS5yZW5kZXJlci5nZXRSb3V0ZSgnLzQwMScpO1xuICAgIGlmIChyb3V0ZSkge1xuICAgICAgLy8gQWRkIHRoZSBlcnJvciB0eXBlIHRvIHRoZSByZXEgb2JqZWN0LiBSb3V0ZXMgdGhhdCBkZWZpbmUgYSBgaGFuZGxlKClgXG4gICAgICAvLyBtZXRob2Qgc2hvdWxkIGJlIGFibGUgdG8gcmVhZCBmcm9tIGl0IHRvIGNvbnN0cnVjdCBhbiBhcHByb3ByaWF0ZVxuICAgICAgLy8gZXJyb3IgbWVzc2FnZSBmb3IgdGhlIHBhZ2UuXG4gICAgICAocmVxIGFzIGFueSkucGFzc3dvcmRQcm90ZWN0ID0ge2Vycm9yOiBvcHRpb25zPy5lcnJvcn07XG4gICAgICByZXR1cm4gcmVxLnJlbmRlcmVyLmhhbmRsZVJvdXRlKHJlcSwgcmVzLCBkZWZhdWx0SGFuZGxlciwgcm91dGUsIHtcbiAgICAgICAgZGVmYXVsdFN0YXR1c0NvZGU6IDQwMSxcbiAgICAgICAgcm91dGVQYXJhbXM6IHJvdXRlUGFyYW1zLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBkZWZhdWx0SGFuZGxlcigpO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgYFBhc3N3b3JkUHJvdGVjdEVycm9yYCB0byBhIHVzZXItZnJpZW5kbHkgZXJyb3IgbWVzc2FnZS5cbiAqL1xuZnVuY3Rpb24gZ2V0RXJyb3JNZXNzYWdlKGVycm9yPzogUGFzc3dvcmRQcm90ZWN0RXJyb3IpIHtcbiAgaWYgKCFlcnJvcikge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgaWYgKGVycm9yID09PSBQYXNzd29yZFByb3RlY3RFcnJvci5QQVNTV09SRF9SRVFVSVJFRCkge1xuICAgIHJldHVybiAnQmFkIHJlcXVlc3QgKG5vIHBhc3N3b3JkKS4nO1xuICB9XG4gIGlmIChlcnJvciA9PT0gUGFzc3dvcmRQcm90ZWN0RXJyb3IuUEFTU1dPUkRfSU5WQUxJRCkge1xuICAgIHJldHVybiAnSW5jb3JyZWN0IHBhc3N3b3JkLic7XG4gIH1cbiAgcmV0dXJuICdVbmtub3duIGVycm9yLic7XG59XG4iLCAiZXhwb3J0IGNvbnN0IENTUyA9IGBcbi5zaWduaW4ge1xuICBmb250LWZhbWlseTogJ0ludGVyJywgc3lzdGVtLXVpLCBzYW5zLXNlcmlmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDQ4cHggMjBweDtcbiAgY29sb3I6ICMzYzQwNDM7XG59XG5cbi5zaWduaW5fX2hlYWRsaW5lIHtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDtcbn1cblxuLnNpZ25pbl9faGVhZGxpbmVfX2ljb24ge1xuICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4uc2lnbmluX19oZWFkbGluZV9faWNvbiBzdmcge1xuICB3aWR0aDogNzJweDtcbiAgaGVpZ2h0OiA3MnB4O1xufVxuXG4uc2lnbmluX19oZWFkbGluZV9fdGl0bGUge1xuICBmb250LXNpemU6IDM2cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi5zaWduaW5fX2hlYWRsaW5lX19ib2R5IHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBsaW5lLWhlaWdodDogMS41O1xuICBmb250LXdlaWdodDogNTAwO1xufVxuXG4uc2lnbmluX19mb3JtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZ2FwOiA4cHg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4uc2lnbmluX19mb3JtX19wYXNzd29yZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkYWRjZTA7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgbGV0dGVyLXNwYWNpbmc6IC4yNXB4O1xuICBwYWRkaW5nOiAwIDEycHg7XG4gIG1pbi13aWR0aDogMjUwcHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjIxOHMgZWFzZTtcbn1cblxuLnNpZ25pbl9fZm9ybV9fcGFzc3dvcmQ6Zm9jdXMge1xuICBib3JkZXItY29sb3I6ICNkMmUzZmM7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNjYsIDEzMywgMjQ0LCAwLjA0KTtcbn1cblxuLnNpZ25pbl9fYnV0dG9uIHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGdhcDogMTJweDtcbiAgcGFkZGluZzogOHB4IDExcHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjZGFkY2UwO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIHBhZGRpbmc6IDAgMTJweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4yMThzIGVhc2U7XG59XG5cbi5zaWduaW5fX2J1dHRvbjpob3ZlciB7XG4gIGJvcmRlci1jb2xvcjogI2QyZTNmYztcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg2NiwgMTMzLCAyNDQsIDAuMDQpO1xufVxuXG4uc2lnbmluX19idXR0b25fX2ljb24ge1xuICB3aWR0aDogMThweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cblxuLnNpZ25pbl9fYnV0dG9uX19sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGxldHRlci1zcGFjaW5nOiAuMjVweDtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgY29sb3I6ICMzYzQwNDM7XG59XG5cbi5zaWduaW5fX2Vycm9yIHtcbiAgY29sb3I6IHJlZDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWF4LXdpZHRoOiA2MGNoO1xuICBtYXJnaW46IDIwcHggYXV0byAwO1xufVxuYDtcbiIsICJpbXBvcnQge0NTU30gZnJvbSAnLi9QYXNzd29yZFBhZ2UuY3NzLmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBQYXNzd29yZFBhZ2VQcm9wcyB7XG4gIG5vbmNlOiBzdHJpbmc7XG4gIGVycm9yPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gUGFzc3dvcmRQYWdlKHByb3BzOiBQYXNzd29yZFBhZ2VQcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxodG1sIGxhbmc9XCJlblwiPlxuICAgICAgPGhlYWQ+XG4gICAgICAgIDxtZXRhIGNoYXJzZXQ9XCJ1dGYtOFwiIC8+XG4gICAgICAgIDx0aXRsZT5Qcm90ZWN0ZWQ8L3RpdGxlPlxuICAgICAgICA8bGlua1xuICAgICAgICAgIHJlbD1cImljb25cIlxuICAgICAgICAgIGhyZWY9XCJodHRwczovL2xoMy5nb29nbGV1c2VyY29udGVudC5jb20vaWpLNTBUZlFsVl95SnczaS1DTWxuRDZvc0g0UGJvWkJJTFpySmNXaG9OTUVtb3lDRDVlMWJBeFhiYU9QZTV3NGdHX1NjZjM3RVhybVo2cDhzUDJsdWU1ZkxaNDE5bTVKeUxNcz1lMzg1LXcyNTZcIlxuICAgICAgICAgIHR5cGU9XCJpbWFnZS9wbmdcIlxuICAgICAgICAvPlxuICAgICAgICA8bGlua1xuICAgICAgICAgIGhyZWY9XCJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PUludGVyOndnaHRANDAwOzUwMDs2MDA7NzAwOzkwMFwiXG4gICAgICAgICAgcmVsPVwic3R5bGVzaGVldFwiXG4gICAgICAgICAgbm9uY2U9e3Byb3BzLm5vbmNlfVxuICAgICAgICAvPlxuICAgICAgICA8c3R5bGUgbm9uY2U9e3Byb3BzLm5vbmNlfT57Q1NTfTwvc3R5bGU+XG4gICAgICA8L2hlYWQ+XG4gICAgICA8Ym9keT5cbiAgICAgICAgPGRpdiBpZD1cInJvb3RcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNpZ25pblwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzaWduaW5fX2hlYWRsaW5lXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2lnbmluX19oZWFkbGluZV9faWNvblwiPlxuICAgICAgICAgICAgICAgIDxTaGllbGRJY29uIC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8aDE+VGhpcyBwYWdlIGlzIHByb3RlY3RlZC48L2gxPlxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJzaWduaW5fX2hlYWRsaW5lX19ib2R5XCI+XG4gICAgICAgICAgICAgICAgRW50ZXIgdGhlIHBhc3N3b3JkIGJlbG93IHRvIGNvbnRpbnVlOlxuICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxmb3JtIGNsYXNzTmFtZT1cInNpZ25pbl9fZm9ybVwiIG1ldGhvZD1cIlBPU1RcIj5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgaWQ9XCJwYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwic2lnbmluX19mb3JtX19wYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgbmFtZT1cInBhc3N3b3JkXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwicGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiUGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgIGF1dG9Gb2N1cz17dHJ1ZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9XCJzaWduaW5fX2J1dHRvblwiIHR5cGU9XCJzdWJtaXRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNpZ25pbl9fYnV0dG9uX19sYWJlbFwiPlN1Ym1pdDwvZGl2PlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICAgIHtwcm9wcy5lcnJvciAmJiA8cCBjbGFzc05hbWU9XCJzaWduaW5fX2Vycm9yXCI+e3Byb3BzLmVycm9yfTwvcD59XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9ib2R5PlxuICAgIDwvaHRtbD5cbiAgKTtcbn1cblxuZnVuY3Rpb24gU2hpZWxkSWNvbigpIHtcbiAgcmV0dXJuIChcbiAgICA8c3ZnXG4gICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgIHdpZHRoPVwiMzZcIlxuICAgICAgaGVpZ2h0PVwiMzZcIlxuICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxuICAgICAgc3Ryb2tlPVwiI2ZmNDUwMFwiXG4gICAgICBmaWxsPVwibm9uZVwiXG4gICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICA+XG4gICAgICA8cGF0aCBzdHJva2U9XCJub25lXCIgZD1cIk0wIDBoMjR2MjRIMHpcIiBmaWxsPVwibm9uZVwiIC8+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTExLjk5OCAybC4xMTggLjAwN2wuMDU5IC4wMDhsLjA2MSAuMDEzbC4xMTEgLjAzNGEuOTkzIC45OTMgMCAwIDEgLjIxNyAuMTEybC4xMDQgLjA4MmwuMjU1IC4yMThhMTEgMTEgMCAwIDAgNy4xODkgMi41MzdsLjM0MiAtLjAxYTEgMSAwIDAgMSAxLjAwNSAuNzE3YTEzIDEzIDAgMCAxIC05LjIwOCAxNi4yNWExIDEgMCAwIDEgLS41MDIgMGExMyAxMyAwIDAgMSAtOS4yMDkgLTE2LjI1YTEgMSAwIDAgMSAxLjAwNSAtLjcxN2ExMSAxMSAwIDAgMCA3LjUzMSAtMi41MjdsLjI2MyAtLjIyNWwuMDk2IC0uMDc1YS45OTMgLjk5MyAwIDAgMSAuMjE3IC0uMTEybC4xMTIgLS4wMzRhLjk3IC45NyAwIDAgMSAuMTE5IC0uMDIxbC4xMTUgLS4wMDd6bS4wMDIgN2EyIDIgMCAwIDAgLTEuOTk1IDEuODVsLS4wMDUgLjE1bC4wMDUgLjE1YTIgMiAwIDAgMCAuOTk1IDEuNTgxdjEuNzY5bC4wMDcgLjExN2ExIDEgMCAwIDAgMS45OTMgLS4xMTdsLjAwMSAtMS43NjhhMiAyIDAgMCAwIC0xLjAwMSAtMy43MzJ6XCJcbiAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMFwiXG4gICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgLz5cbiAgICA8L3N2Zz5cbiAgKTtcbn1cbiIsICJpbXBvcnQgY3J5cHRvIGZyb20gJ25vZGU6Y3J5cHRvJztcbmltcG9ydCB7UmVzcG9uc2V9IGZyb20gJ0BibGlua2svcm9vdCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZU5vbmNlKCkge1xuICByZXR1cm4gY3J5cHRvLnJhbmRvbUJ5dGVzKDE2KS50b1N0cmluZygnYmFzZTY0Jyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRTZWN1cml0eUhlYWRlcnMocmVzOiBSZXNwb25zZSwgbm9uY2U6IHN0cmluZykge1xuICByZXMuc2V0SGVhZGVyKCd4LWZyYW1lLW9wdGlvbnMnLCAnU0FNRU9SSUdJTicpO1xuICByZXMuc2V0SGVhZGVyKFxuICAgICdzdHJpY3QtdHJhbnNwb3J0LXNlY3VyaXR5JyxcbiAgICAnbWF4LWFnZT02MzA3MjAwMDsgaW5jbHVkZVN1YmRvbWFpbnM7IHByZWxvYWQnXG4gICk7XG4gIHJlcy5zZXRIZWFkZXIoJ3gtY29udGVudC10eXBlLW9wdGlvbnMnLCAnbm9zbmlmZicpO1xuICByZXMuc2V0SGVhZGVyKCd4LXhzcy1wcm90ZWN0aW9uJywgJzE7IG1vZGU9YmxvY2snKTtcblxuICAvLyBodHRwczovL2NzcC53aXRoZ29vZ2xlLmNvbS9kb2NzL3N0cmljdC1jc3AuaHRtbFxuICBjb25zdCBkaXJlY3RpdmVzID0gW1xuICAgIFwiYmFzZS11cmkgJ25vbmUnXCIsXG4gICAgXCJvYmplY3Qtc3JjICdub25lJ1wiLFxuICAgIGBzY3JpcHQtc3JjICdub25jZS0ke25vbmNlfScgJ3Vuc2FmZS1pbmxpbmUnICd1bnNhZmUtZXZhbCcgJ3N0cmljdC1keW5hbWljJyBodHRwczogaHR0cDpgLFxuICBdO1xuICByZXMuc2V0SGVhZGVyKCdjb250ZW50LXNlY3VyaXR5LXBvbGljeS1yZXBvcnQtb25seScsIGRpcmVjdGl2ZXMuam9pbignOycpKTtcbn1cbiIsICJpbXBvcnQgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5cbmNvbnN0IFBBU1NXT1JEX0lURVJBVElPTlMgPSAxMDAwMDtcbmNvbnN0IFBBU1NXT1JEX0hBU0hfTEVOR1RIID0gNjQ7XG5jb25zdCBQQVNTV09SRF9ESUdFU1QgPSAnc2hhMjU2JztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhc2hQYXNzd29yZChcbiAgcGFzc3dvcmQ6IHN0cmluZ1xuKTogUHJvbWlzZTx7aGFzaDogc3RyaW5nOyBzYWx0OiBzdHJpbmd9PiB7XG4gIGNvbnN0IHNhbHQgPSBjcnlwdG8ucmFuZG9tQnl0ZXMoMTYpLnRvU3RyaW5nKCdoZXgnKTtcbiAgY29uc3QgaGFzaCA9IGF3YWl0IGdlbmVyYXRlSGFzaChwYXNzd29yZCwgc2FsdCk7XG4gIHJldHVybiB7aGFzaCwgc2FsdH07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB2ZXJpZnlQYXNzd29yZChcbiAgcGFzc3dvcmQ6IHN0cmluZyxcbiAgaGFzaDogc3RyaW5nLFxuICBzYWx0OiBzdHJpbmdcbik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCBnZW5lcmF0ZWRIYXNoID0gYXdhaXQgZ2VuZXJhdGVIYXNoKHBhc3N3b3JkLCBzYWx0KTtcbiAgcmV0dXJuIGhhc2ggPT09IGdlbmVyYXRlZEhhc2g7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUhhc2gocGFzc3dvcmQ6IHN0cmluZywgc2FsdDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjcnlwdG8ucGJrZGYyKFxuICAgICAgcGFzc3dvcmQsXG4gICAgICBzYWx0LFxuICAgICAgUEFTU1dPUkRfSVRFUkFUSU9OUyxcbiAgICAgIFBBU1NXT1JEX0hBU0hfTEVOR1RILFxuICAgICAgUEFTU1dPUkRfRElHRVNULFxuICAgICAgKGVyciwgZGVyaXZlZEtleSkgPT4ge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcigncGFzc3dvcmQgaGFzaGluZyBmYWlsZWQnKTtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGhhc2ggPSBkZXJpdmVkS2V5LnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgICAgcmVzb2x2ZShoYXNoKTtcbiAgICAgIH1cbiAgICApO1xuICB9KTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7QUFDQSxPQUFPLGdCQUFnQjtBQUN2QixPQUFPLGdCQUFnQjtBQUN2QixTQUFRLHNCQUFxQjs7O0FDSHRCLElBQU0sTUFBTTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7QUNVYixTQUNFLEtBREY7QUFIQyxTQUFTLGFBQWEsT0FBMEI7QUFDckQsU0FDRSxxQkFBQyxVQUFLLE1BQUssTUFDVDtBQUFBLHlCQUFDLFVBQ0M7QUFBQSwwQkFBQyxVQUFLLFNBQVEsU0FBUTtBQUFBLE1BQ3RCLG9CQUFDLFdB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QSxLQUNBO0FBQ0EsUUFBTSxFQUFDLE1BQU0sS0FBSSxJQUFJLE1BQU0sYUFBYSxlQUFlLFNBQVMsSUFBSTtBQUNwRSxNQUFJLFFBQVEsUUFBUSxxQkFBcUIsSUFBSTtBQUM3QyxNQUFJLFFBQVEsUUFBUSxxQkFBcUIsSUFBSTtBQUM3QyxNQUFJLFlBQVk7QUFDbEI7QUFLQSxlQUFlLG9CQUNiLGdCQUNBLEtBQ0E7QUFDQSxRQUFNLE9BQU8sSUFBSSxRQUFRLFFBQVEsbUJBQW1CO0FBQ3BELFFBQU0sT0FBTyxJQUFJLFFBQVEsUUFBUSxtQkFBbUI7QUFDcEQsTUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNO0FBQ2xCLFdBQU87QUFBQSxFQUNUO0FBQ0EsU0FBTyxNQUFNLGVBQWUsZUFBZSxTQUFTLE1BQU0sTUFBTSxJQUFJO0FBQ3RFO0FBS0EsZUFBc0IsbUJBQ3BCLEtBQ0EsS0FDQSxTQUNBO0FBRUEsUUFBTSxpQkFBaUIsTUFBTTtBQUMzQixVQUFNLFFBQVEsY0FBYztBQUM1QixRQUFJLFVBQVUsZ0JBQWdCLFdBQVc7QUFDekMsUUFBSSxPQUFPLEdBQUc7QUFDZCx1QkFBbUIsS0FBSyxLQUFLO0FBQzdCLFVBQU0sV0FBVyxnQkFBZ0IsU0FBUyxLQUFLO0FBQy9DLFVBQU0sV0FBVztBQUFBLE1BQ2YsZ0JBQUFGLEtBQUMsZ0JBQWEsT0FBTyxVQUFVLE9BQWM7QUFBQSxJQUMvQztBQUNBLFVBQU0sT0FBTztBQUFBLEVBQW9CLFFBQVE7QUFDekMsUUFBSSxLQUFLLElBQUk7QUFBQSxFQUNmO0FBR0EsTUFBSSxJQUFJLFVBQVU7QUFDaEIsVUFBTSxDQUFDLE9BQU8sV0FBVyxJQUFJLElBQUksU0FBUyxTQUFTLE1BQU07QUFDekQsUUFBSSxPQUFPO0FBSVQsTUFBQyxJQUFZLGtCQUFrQixFQUFDLE9BQU8sU0FBUyxNQUFLO0FBQ3JELGFBQU8sSUFBSSxTQUFTLFlBQVksS0FBSyxLQUFLLGdCQUFnQixPQUFPO0FBQUEsUUFDL0QsbUJBQW1CO0FBQUEsUUFDbkI7QUFBQSxNQUNGLENBQUM7QUFBQSxJQUNIO0FBQUEsRUFDRjtBQUNBLFNBQU8sZUFBZTtBQUN4QjtBQUtBLFNBQVMsZ0JBQWdCLE9BQThCO0FBQ3JELE1BQUksQ0FBQyxPQUFPO0FBQ1YsV0FBTztBQUFBLEVBQ1Q7QUFDQSxNQUFJLFVBQVUsNkNBQXdDO0FBQ3BELFdBQU87QUFBQSxFQUNUO0FBQ0EsTUFBSSxVQUFVLDJDQUF1QztBQUNuRCxXQUFPO0FBQUEsRUFDVDtBQUNBLFNBQU87QUFDVDsiLAogICJuYW1lcyI6IFsiY3J5cHRvIiwgImpzeCIsICJQYXNzd29yZFByb3RlY3RFcnJvciIsICJpc1ZhbGlkIl0KfQo=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blinkk/root-password-protect",
3
- "version": "2.5.14-alpha.0",
3
+ "version": "2.5.15",
4
4
  "author": "s@blinkk.com",
5
5
  "license": "MIT",
6
6
  "engines": {
@@ -11,6 +11,9 @@
11
11
  "url": "git+https://github.com/blinkk/rootjs.git",
12
12
  "directory": "packages/root-password-protect"
13
13
  },
14
+ "publishConfig": {
15
+ "provenance": true
16
+ },
14
17
  "files": [
15
18
  "dist/*"
16
19
  ],
@@ -37,16 +40,18 @@
37
40
  "micromatch": "4.0.5"
38
41
  },
39
42
  "peerDependencies": {
40
- "@blinkk/root": "2.5.14-alpha.0",
41
- "preact": ">=10"
43
+ "@blinkk/root": "2.5.15",
44
+ "preact": ">=10",
45
+ "preact-render-to-string": ">=5"
42
46
  },
43
47
  "devDependencies": {
44
48
  "@types/body-parser": "1.19.3",
45
49
  "@types/micromatch": "4.0.6",
46
50
  "@types/node": "20.11.25",
47
51
  "preact": "10.27.1",
52
+ "preact-render-to-string": "6.6.1",
48
53
  "tsup": "8.5.0",
49
- "@blinkk/root": "2.5.14-alpha.0"
54
+ "@blinkk/root": "2.5.15"
50
55
  },
51
56
  "scripts": {
52
57
  "build": "rm -rf dist && tsup-node",