@cloudbase/ai 2.22.1 → 2.22.3

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 (53) hide show
  1. package/dist/cjs/AI.js +1 -1
  2. package/dist/cjs/bot/index.js +1 -1
  3. package/dist/cjs/index.js +1 -1
  4. package/dist/cjs/models/Ark/index.js +1 -1
  5. package/dist/cjs/models/DashScope/index.js +1 -1
  6. package/dist/cjs/models/DeepSeek/index.js +1 -1
  7. package/dist/cjs/models/Default/index.js +1 -1
  8. package/dist/cjs/models/HunYuan/index.js +1 -1
  9. package/dist/cjs/models/HunYuan/util.js +1 -1
  10. package/dist/cjs/models/HunYuanBeta/index.js +1 -1
  11. package/dist/cjs/models/HunYuanExp/index.js +1 -1
  12. package/dist/cjs/models/HunYuanOpen/index.js +1 -1
  13. package/dist/cjs/models/Moonshot/index.js +1 -1
  14. package/dist/cjs/models/Yi/index.js +1 -1
  15. package/dist/cjs/models/ZhiPu/index.js +1 -1
  16. package/dist/cjs/models/model.js +1 -1
  17. package/dist/cjs/utils.js +1 -1
  18. package/dist/esm/AI.js +1 -1
  19. package/dist/esm/bot/index.js +1 -1
  20. package/dist/esm/index.js +1 -1
  21. package/dist/esm/models/Ark/index.js +1 -1
  22. package/dist/esm/models/DashScope/index.js +1 -1
  23. package/dist/esm/models/DeepSeek/index.js +1 -1
  24. package/dist/esm/models/Default/index.js +1 -1
  25. package/dist/esm/models/HunYuan/index.js +1 -1
  26. package/dist/esm/models/HunYuan/util.js +1 -1
  27. package/dist/esm/models/HunYuanBeta/index.js +1 -1
  28. package/dist/esm/models/HunYuanExp/index.js +1 -1
  29. package/dist/esm/models/HunYuanOpen/index.js +1 -1
  30. package/dist/esm/models/Moonshot/index.js +1 -1
  31. package/dist/esm/models/Yi/index.js +1 -1
  32. package/dist/esm/models/ZhiPu/index.js +1 -1
  33. package/dist/esm/models/model.js +1 -1
  34. package/dist/esm/utils.js +1 -1
  35. package/package.json +4 -4
  36. package/src/AI.ts +2 -0
  37. package/src/bot/index.ts +2 -0
  38. package/src/index.ts +1 -0
  39. package/src/models/Ark/index.ts +2 -0
  40. package/src/models/DashScope/index.ts +2 -0
  41. package/src/models/DeepSeek/index.ts +2 -0
  42. package/src/models/Default/index.ts +2 -0
  43. package/src/models/HunYuan/index.ts +2 -0
  44. package/src/models/HunYuan/util.ts +2 -0
  45. package/src/models/HunYuanBeta/index.ts +2 -0
  46. package/src/models/HunYuanExp/index.ts +2 -0
  47. package/src/models/HunYuanOpen/index.ts +2 -0
  48. package/src/models/Moonshot/index.ts +3 -0
  49. package/src/models/Yi/index.ts +2 -0
  50. package/src/models/ZhiPu/index.ts +2 -0
  51. package/src/models/model.ts +2 -0
  52. package/src/utils.ts +3 -1
  53. package/tsconfig.json +1 -1
@@ -130,4 +130,4 @@ var YiSimpleModel = (function () {
130
130
  return YiSimpleModel;
131
131
  }());
132
132
  exports.YiSimpleModel = YiSimpleModel;
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9kZWxzL1lpL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscUNBTW9CO0FBWXBCLFNBQVMsWUFBWSxDQUFDLEtBQXlCO0lBQ3JDLElBQUEsUUFBUSxHQUF1QyxLQUFLLFNBQTVDLEVBQUUsS0FBSyxHQUFnQyxLQUFLLE1BQXJDLEVBQUUsV0FBVyxHQUFtQixLQUFLLFlBQXhCLEVBQUUsS0FBSyxHQUFZLEtBQUssTUFBakIsRUFBRSxLQUFLLEdBQUssS0FBSyxNQUFWLENBQVU7SUFFNUQsNkJBQ0ssS0FBSyxLQUNSLFFBQVEsVUFBQSxFQUNSLEtBQUssT0FBQSxFQUNMLEtBQUssT0FBQSxFQUNMLEtBQUssT0FBQSxFQUNMLFdBQVcsYUFBQSxJQUNaO0FBQ0gsQ0FBQztBQUVEO0lBR0UsdUJBQW9CLEdBQWEsRUFBUyxPQUFlLEVBQUUsTUFBZTtRQUF0RCxRQUFHLEdBQUgsR0FBRyxDQUFVO1FBQVMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUZsRCxXQUFNLEdBQUcsMkJBQTJCLENBQUE7UUFHekMsSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO1NBQ3JCO0lBQ0gsQ0FBQztJQUVELHNCQUFZLDhCQUFHO2FBQWY7WUFDRSxPQUFPLFVBQUcsSUFBSSxDQUFDLE9BQU8sY0FBSSxJQUFJLENBQUMsTUFBTSxDQUFFLENBQUE7UUFDekMsQ0FBQzs7O09BQUE7SUFFWSxrQ0FBVSxHQUF2QixVQUF3QixJQUF3QixFQUFFLE9BQW9COzs7Ozs0QkFDdkQsV0FBTSxJQUFJLENBQUMsR0FBRyxDQUFDOzRCQUMxQixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7NEJBQ2IsSUFBSSx3QkFDQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQ3JCLE1BQU0sRUFBRSxLQUFLLEdBQ2Q7NEJBQ0QsTUFBTSxFQUFFLEtBQUs7NEJBQ2IsT0FBTyxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxPQUFPO3lCQUMxQixDQUFDLEVBQUE7O3dCQVJJLEdBQUcsR0FBRyxDQUFDLFNBUVgsQ0FBcUI7d0JBQ3ZCLGlDQUFZLEdBQUcsS0FBRSxXQUFXLEVBQUUsR0FBRyxLQUFFOzs7O0tBQ3BDO0lBRVksZ0NBQVEsR0FBckIsVUFBc0IsSUFBd0IsRUFBRSxPQUFvQjs7Ozs7O3dCQUM5RCxVQUFVLEdBQW1CLElBQUksQ0FBQTt3QkFDckIsV0FBTSxJQUFJLENBQUMsR0FBRyxDQUFDO2dDQUM3QixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7Z0NBQ2IsSUFBSSx3QkFDQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQ3JCLE1BQU0sRUFBRSxJQUFJLEdBQ2I7Z0NBQ0QsTUFBTSxFQUFFLElBQUk7Z0NBQ1osT0FBTyxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxPQUFPOzZCQUMxQixDQUFDLEVBQUE7O3dCQVJJLE9BQU8sR0FBRyxTQVFkO3dCQUNJLE1BQU0sR0FBRyxJQUFBLDBCQUFrQixFQUFDLE9BQU8sQ0FBbUIsQ0FBQTt3QkFFdEQsU0FBUyxHQUFHLElBQUEsMEJBQWtCLEVBQWlCLE1BQU0sQ0FBQyxDQUFBO3dCQUN0RCxhQUFhLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLHVCQUFlLENBQWtFOzRCQUMvSCxTQUFTLFlBQUMsS0FBSyxFQUFFLFVBQVU7O2dDQUV6QixJQUFJLENBQUMsQ0FBQyxDQUFBLE1BQUEsTUFBQSxNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxPQUFPLDBDQUFHLENBQUMsQ0FBQywwQ0FBRSxLQUFLLDBDQUFFLE9BQU8sTUFBSSxNQUFBLE1BQUEsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsT0FBTywwQ0FBRyxDQUFDLENBQUMsMENBQUUsS0FBSywwQ0FBRSxVQUFVLENBQUEsQ0FBQztvQ0FBRSxPQUFNO2dDQUU1RixJQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFDLE1BQU07b0NBQzFDLElBQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FFaEUsQ0FBQTtvQ0FDRCxJQUFJLFVBQVUsSUFBSSxJQUFJO3dDQUFFLFVBQVUsR0FBRyxJQUFBLGtDQUEwQixFQUFDLE9BQU8sQ0FBQyxDQUFBO29DQUN4RSxJQUFJLFVBQVUsRUFBRTt3Q0FDZCw2QkFDSyxNQUFNLEtBQ1QsYUFBYSxFQUFFLFlBQXFCLEVBQ3BDLEtBQUssRUFBRSxPQUFPLElBQ2Y7cUNBQ0Y7b0NBQ0QsNkJBQVksTUFBTSxLQUFFLEtBQUssRUFBRSxPQUFPLElBQUU7Z0NBQ3RDLENBQUMsQ0FBQyxDQUFBO2dDQUNGLElBQU0sUUFBUSx5QkFBUSxLQUFLLEtBQUUsT0FBTyxFQUFFLFVBQVUsR0FBRSxDQUFBO2dDQUNsRCxVQUFVLENBQUMsT0FBTyx1QkFBTSxRQUFRLEtBQUUsV0FBVyxFQUFFLEtBQUssSUFBRyxDQUFBOzRCQUN6RCxDQUFDO3lCQUNGLENBQUMsQ0FBRSxDQUFBO3dCQUVKLFdBQU8sSUFBQSwyQkFBbUIsRUFBQyxhQUFhLENBQUMsRUFBQTs7OztLQUMxQztJQUNILG9CQUFDO0FBQUQsQ0FBQyxBQWxFRCxJQWtFQztBQWxFWSxzQ0FBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGNyZWF0ZUFzeW5jSXRlcmFibGUsXG4gIFRyYW5zZm9ybVN0cmVhbSxcbiAgdG9Qb2x5ZmlsbFJlYWRhYmxlLFxuICBpbnRvU3RhbmRhcmRTdHJlYW0sXG4gIGlzVG9vbENhbGxBc3Npc3RhbnRNZXNzYWdlLFxufSBmcm9tICcuLi8uLi91dGlscydcbmltcG9ydCB0eXBlIHsgWWlJbnB1dCwgWWlHZW5lcmF0ZU91dHB1dCwgWWlTdHJlYW1PdXRwdXQgfSBmcm9tICcuL3R5cGUnXG5pbXBvcnQgdHlwZSB7XG4gIE1vZGVsUmVxLFxuICBCYXNlQ2hhdE1vZGVsSW5wdXQsXG4gIERvR2VuZXJhdGVPdXRwdXQsXG4gIERvU3RyZWFtT3V0cHV0LFxuICBCYXNlRG9TdHJlYW1PdXRwdXRDaHVuayxcbiAgU2ltcGxlQ2hhdE1vZGVsLFxuICBSZXFPcHRpb25zLFxufSBmcm9tICcuLi8uLi90eXBlJ1xuXG5mdW5jdGlvbiBwcm9jZXNzSW5wdXQoaW5wdXQ6IEJhc2VDaGF0TW9kZWxJbnB1dCk6IFlpSW5wdXQge1xuICBjb25zdCB7IG1lc3NhZ2VzLCBtb2RlbCwgdGVtcGVyYXR1cmUsIHRvb2xzLCB0b3BfcCB9ID0gaW5wdXRcblxuICByZXR1cm4ge1xuICAgIC4uLmlucHV0LFxuICAgIG1lc3NhZ2VzLFxuICAgIG1vZGVsLFxuICAgIHRvb2xzLFxuICAgIHRvcF9wLFxuICAgIHRlbXBlcmF0dXJlLFxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBZaVNpbXBsZU1vZGVsIGltcGxlbWVudHMgU2ltcGxlQ2hhdE1vZGVsIHtcbiAgcHVibGljIHN1YlVybCA9ICcwMS1haS92MS9jaGF0L2NvbXBsZXRpb25zJ1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVxOiBNb2RlbFJlcSwgcHVibGljIGJhc2VVcmw6IHN0cmluZywgc3ViVXJsPzogc3RyaW5nKSB7XG4gICAgaWYgKHN1YlVybCAhPSBudWxsKSB7XG4gICAgICB0aGlzLnN1YlVybCA9IHN1YlVybFxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0IHVybCgpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5iYXNlVXJsfS8ke3RoaXMuc3ViVXJsfWBcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkb0dlbmVyYXRlKGRhdGE6IEJhc2VDaGF0TW9kZWxJbnB1dCwgb3B0aW9ucz86IFJlcU9wdGlvbnMpOiBQcm9taXNlPERvR2VuZXJhdGVPdXRwdXQ+IHtcbiAgICBjb25zdCByZXMgPSAoYXdhaXQgdGhpcy5yZXEoe1xuICAgICAgdXJsOiB0aGlzLnVybCxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgLi4ucHJvY2Vzc0lucHV0KGRhdGEpLFxuICAgICAgICBzdHJlYW06IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIHN0cmVhbTogZmFsc2UsXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pKSBhcyBZaUdlbmVyYXRlT3V0cHV0XG4gICAgcmV0dXJuIHsgLi4ucmVzLCByYXdSZXNwb25zZTogcmVzIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkb1N0cmVhbShkYXRhOiBCYXNlQ2hhdE1vZGVsSW5wdXQsIG9wdGlvbnM/OiBSZXFPcHRpb25zKTogUHJvbWlzZTxEb1N0cmVhbU91dHB1dD4ge1xuICAgIGxldCBpc1Rvb2xDYWxsOiBudWxsIHwgYm9vbGVhbiA9IG51bGxcbiAgICBjb25zdCBfc3RyZWFtID0gYXdhaXQgdGhpcy5yZXEoe1xuICAgICAgdXJsOiB0aGlzLnVybCxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgLi4ucHJvY2Vzc0lucHV0KGRhdGEpLFxuICAgICAgICBzdHJlYW06IHRydWUsXG4gICAgICB9LFxuICAgICAgc3RyZWFtOiB0cnVlLFxuICAgICAgdGltZW91dDogb3B0aW9ucz8udGltZW91dCxcbiAgICB9KVxuICAgIGNvbnN0IHN0cmVhbSA9IHRvUG9seWZpbGxSZWFkYWJsZShfc3RyZWFtKSBhcyB0eXBlb2YgX3N0cmVhbVxuXG4gICAgY29uc3QgYXJrU3RyZWFtID0gaW50b1N0YW5kYXJkU3RyZWFtPFlpU3RyZWFtT3V0cHV0PihzdHJlYW0pXG4gICAgY29uc3Qgc3RyZWFtV2l0aFJhdyA9IGFya1N0cmVhbS5waXBlVGhyb3VnaChuZXcgVHJhbnNmb3JtU3RyZWFtPFlpU3RyZWFtT3V0cHV0LCBCYXNlRG9TdHJlYW1PdXRwdXRDaHVuayAmIHsgcmF3UmVzcG9uc2U/OiBhbnkgfT4oe1xuICAgICAgdHJhbnNmb3JtKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgIC8vIOmdnuW4uOWlh+iRqVxuICAgICAgICBpZiAoIShjaHVuaz8uY2hvaWNlcz8uWzBdPy5kZWx0YT8uY29udGVudCB8fCBjaHVuaz8uY2hvaWNlcz8uWzBdPy5kZWx0YT8udG9vbF9jYWxscykpIHJldHVyblxuXG4gICAgICAgIGNvbnN0IG5ld0Nob2ljZXMgPSBjaHVuay5jaG9pY2VzLm1hcCgoY2hvaWNlKSA9PiB7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IE9iamVjdC5hc3NpZ24oY2hvaWNlLmRlbHRhLCB7IHJvbGU6ICdhc3Npc3RhbnQnIH0pIGFzIHR5cGVvZiBjaG9pY2UuZGVsdGEgJiB7XG4gICAgICAgICAgICByb2xlOiAnYXNzaXN0YW50J1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXNUb29sQ2FsbCA9PSBudWxsKSBpc1Rvb2xDYWxsID0gaXNUb29sQ2FsbEFzc2lzdGFudE1lc3NhZ2UobWVzc2FnZSlcbiAgICAgICAgICBpZiAoaXNUb29sQ2FsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4uY2hvaWNlLFxuICAgICAgICAgICAgICBmaW5pc2hfcmVhc29uOiAndG9vbF9jYWxscycgYXMgY29uc3QsXG4gICAgICAgICAgICAgIGRlbHRhOiBtZXNzYWdlLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4geyAuLi5jaG9pY2UsIGRlbHRhOiBtZXNzYWdlIH1cbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgbmV3Q2h1bmsgPSB7IC4uLmNodW5rLCBjaG9pY2VzOiBuZXdDaG9pY2VzIH1cbiAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKHsgLi4ubmV3Q2h1bmssIHJhd1Jlc3BvbnNlOiBjaHVuayB9KVxuICAgICAgfSxcbiAgICB9KSwpXG5cbiAgICByZXR1cm4gY3JlYXRlQXN5bmNJdGVyYWJsZShzdHJlYW1XaXRoUmF3KVxuICB9XG59XG4iXX0=
133
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9kZWxzL1lpL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEscUNBTW9CO0FBWXBCLFNBQVMsWUFBWSxDQUFDLEtBQXlCO0lBQ3JDLElBQUEsUUFBUSxHQUF1QyxLQUFLLFNBQTVDLEVBQUUsS0FBSyxHQUFnQyxLQUFLLE1BQXJDLEVBQUUsV0FBVyxHQUFtQixLQUFLLFlBQXhCLEVBQUUsS0FBSyxHQUFZLEtBQUssTUFBakIsRUFBRSxLQUFLLEdBQUssS0FBSyxNQUFWLENBQVU7SUFFNUQsNkJBQ0ssS0FBSyxLQUNSLFFBQVEsVUFBQSxFQUNSLEtBQUssT0FBQSxFQUNMLEtBQUssT0FBQSxFQUNMLEtBQUssT0FBQSxFQUNMLFdBQVcsYUFBQSxJQUNaO0FBQ0gsQ0FBQztBQUVEO0lBR0UsdUJBQW9CLEdBQWEsRUFBUyxPQUFlLEVBQUUsTUFBZTtRQUF0RCxRQUFHLEdBQUgsR0FBRyxDQUFVO1FBQVMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUZsRCxXQUFNLEdBQUcsMkJBQTJCLENBQUE7UUFHekMsSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO1NBQ3JCO0lBQ0gsQ0FBQztJQUVELHNCQUFZLDhCQUFHO2FBQWY7WUFDRSxPQUFPLFVBQUcsSUFBSSxDQUFDLE9BQU8sY0FBSSxJQUFJLENBQUMsTUFBTSxDQUFFLENBQUE7UUFDekMsQ0FBQzs7O09BQUE7SUFFWSxrQ0FBVSxHQUF2QixVQUF3QixJQUF3QixFQUFFLE9BQW9COzs7Ozs0QkFDdkQsV0FBTSxJQUFJLENBQUMsR0FBRyxDQUFDOzRCQUMxQixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7NEJBQ2IsSUFBSSx3QkFDQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQ3JCLE1BQU0sRUFBRSxLQUFLLEdBQ2Q7NEJBQ0QsTUFBTSxFQUFFLEtBQUs7NEJBQ2IsT0FBTyxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxPQUFPO3lCQUMxQixDQUFDLEVBQUE7O3dCQVJJLEdBQUcsR0FBRyxDQUFDLFNBUVgsQ0FBcUI7d0JBQ3ZCLGlDQUFZLEdBQUcsS0FBRSxXQUFXLEVBQUUsR0FBRyxLQUFFOzs7O0tBQ3BDO0lBRVksZ0NBQVEsR0FBckIsVUFBc0IsSUFBd0IsRUFBRSxPQUFvQjs7Ozs7O3dCQUM5RCxVQUFVLEdBQW1CLElBQUksQ0FBQTt3QkFDckIsV0FBTSxJQUFJLENBQUMsR0FBRyxDQUFDO2dDQUM3QixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7Z0NBQ2IsSUFBSSx3QkFDQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQ3JCLE1BQU0sRUFBRSxJQUFJLEdBQ2I7Z0NBQ0QsTUFBTSxFQUFFLElBQUk7Z0NBQ1osT0FBTyxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxPQUFPOzZCQUMxQixDQUFDLEVBQUE7O3dCQVJJLE9BQU8sR0FBRyxTQVFkO3dCQUNJLE1BQU0sR0FBRyxJQUFBLDBCQUFrQixFQUFDLE9BQU8sQ0FBbUIsQ0FBQTt3QkFFdEQsU0FBUyxHQUFHLElBQUEsMEJBQWtCLEVBQWlCLE1BQU0sQ0FBQyxDQUFBO3dCQUN0RCxhQUFhLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLHVCQUFlLENBQWtFOzRCQUMvSCxTQUFTLFlBQUMsS0FBSyxFQUFFLFVBQVU7O2dDQUV6QixJQUFJLENBQUMsQ0FBQyxDQUFBLE1BQUEsTUFBQSxNQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxPQUFPLDBDQUFHLENBQUMsQ0FBQywwQ0FBRSxLQUFLLDBDQUFFLE9BQU8sTUFBSSxNQUFBLE1BQUEsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsT0FBTywwQ0FBRyxDQUFDLENBQUMsMENBQUUsS0FBSywwQ0FBRSxVQUFVLENBQUEsQ0FBQztvQ0FBRSxPQUFNO2dDQUU1RixJQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFDLE1BQU07b0NBQzFDLElBQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FFaEUsQ0FBQTtvQ0FDRCxJQUFJLFVBQVUsSUFBSSxJQUFJO3dDQUFFLFVBQVUsR0FBRyxJQUFBLGtDQUEwQixFQUFDLE9BQU8sQ0FBQyxDQUFBO29DQUN4RSxJQUFJLFVBQVUsRUFBRTt3Q0FDZCw2QkFDSyxNQUFNLEtBQ1QsYUFBYSxFQUFFLFlBQXFCLEVBQ3BDLEtBQUssRUFBRSxPQUFPLElBQ2Y7cUNBQ0Y7b0NBQ0QsNkJBQVksTUFBTSxLQUFFLEtBQUssRUFBRSxPQUFPLElBQUU7Z0NBQ3RDLENBQUMsQ0FBQyxDQUFBO2dDQUNGLElBQU0sUUFBUSx5QkFBUSxLQUFLLEtBQUUsT0FBTyxFQUFFLFVBQVUsR0FBRSxDQUFBO2dDQUNsRCxVQUFVLENBQUMsT0FBTyx1QkFBTSxRQUFRLEtBQUUsV0FBVyxFQUFFLEtBQUssSUFBRyxDQUFBOzRCQUN6RCxDQUFDO3lCQUNGLENBQUMsQ0FBRSxDQUFBO3dCQUVKLFdBQU8sSUFBQSwyQkFBbUIsRUFBQyxhQUFhLENBQUMsRUFBQTs7OztLQUMxQztJQUNILG9CQUFDO0FBQUQsQ0FBQyxBQWxFRCxJQWtFQztBQWxFWSxzQ0FBYSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xuLyogZXNsaW50LWRpc2FibGUgZXFlcWVxICovXG5pbXBvcnQge1xuICBjcmVhdGVBc3luY0l0ZXJhYmxlLFxuICBUcmFuc2Zvcm1TdHJlYW0sXG4gIHRvUG9seWZpbGxSZWFkYWJsZSxcbiAgaW50b1N0YW5kYXJkU3RyZWFtLFxuICBpc1Rvb2xDYWxsQXNzaXN0YW50TWVzc2FnZSxcbn0gZnJvbSAnLi4vLi4vdXRpbHMnXG5pbXBvcnQgdHlwZSB7IFlpSW5wdXQsIFlpR2VuZXJhdGVPdXRwdXQsIFlpU3RyZWFtT3V0cHV0IH0gZnJvbSAnLi90eXBlJ1xuaW1wb3J0IHR5cGUge1xuICBNb2RlbFJlcSxcbiAgQmFzZUNoYXRNb2RlbElucHV0LFxuICBEb0dlbmVyYXRlT3V0cHV0LFxuICBEb1N0cmVhbU91dHB1dCxcbiAgQmFzZURvU3RyZWFtT3V0cHV0Q2h1bmssXG4gIFNpbXBsZUNoYXRNb2RlbCxcbiAgUmVxT3B0aW9ucyxcbn0gZnJvbSAnLi4vLi4vdHlwZSdcblxuZnVuY3Rpb24gcHJvY2Vzc0lucHV0KGlucHV0OiBCYXNlQ2hhdE1vZGVsSW5wdXQpOiBZaUlucHV0IHtcbiAgY29uc3QgeyBtZXNzYWdlcywgbW9kZWwsIHRlbXBlcmF0dXJlLCB0b29scywgdG9wX3AgfSA9IGlucHV0XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5pbnB1dCxcbiAgICBtZXNzYWdlcyxcbiAgICBtb2RlbCxcbiAgICB0b29scyxcbiAgICB0b3BfcCxcbiAgICB0ZW1wZXJhdHVyZSxcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgWWlTaW1wbGVNb2RlbCBpbXBsZW1lbnRzIFNpbXBsZUNoYXRNb2RlbCB7XG4gIHB1YmxpYyBzdWJVcmwgPSAnMDEtYWkvdjEvY2hhdC9jb21wbGV0aW9ucydcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlcTogTW9kZWxSZXEsIHB1YmxpYyBiYXNlVXJsOiBzdHJpbmcsIHN1YlVybD86IHN0cmluZykge1xuICAgIGlmIChzdWJVcmwgIT0gbnVsbCkge1xuICAgICAgdGhpcy5zdWJVcmwgPSBzdWJVcmxcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldCB1cmwoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuYmFzZVVybH0vJHt0aGlzLnN1YlVybH1gXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZG9HZW5lcmF0ZShkYXRhOiBCYXNlQ2hhdE1vZGVsSW5wdXQsIG9wdGlvbnM/OiBSZXFPcHRpb25zKTogUHJvbWlzZTxEb0dlbmVyYXRlT3V0cHV0PiB7XG4gICAgY29uc3QgcmVzID0gKGF3YWl0IHRoaXMucmVxKHtcbiAgICAgIHVybDogdGhpcy51cmwsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIC4uLnByb2Nlc3NJbnB1dChkYXRhKSxcbiAgICAgICAgc3RyZWFtOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBzdHJlYW06IGZhbHNlLFxuICAgICAgdGltZW91dDogb3B0aW9ucz8udGltZW91dCxcbiAgICB9KSkgYXMgWWlHZW5lcmF0ZU91dHB1dFxuICAgIHJldHVybiB7IC4uLnJlcywgcmF3UmVzcG9uc2U6IHJlcyB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZG9TdHJlYW0oZGF0YTogQmFzZUNoYXRNb2RlbElucHV0LCBvcHRpb25zPzogUmVxT3B0aW9ucyk6IFByb21pc2U8RG9TdHJlYW1PdXRwdXQ+IHtcbiAgICBsZXQgaXNUb29sQ2FsbDogbnVsbCB8IGJvb2xlYW4gPSBudWxsXG4gICAgY29uc3QgX3N0cmVhbSA9IGF3YWl0IHRoaXMucmVxKHtcbiAgICAgIHVybDogdGhpcy51cmwsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIC4uLnByb2Nlc3NJbnB1dChkYXRhKSxcbiAgICAgICAgc3RyZWFtOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIHN0cmVhbTogdHJ1ZSxcbiAgICAgIHRpbWVvdXQ6IG9wdGlvbnM/LnRpbWVvdXQsXG4gICAgfSlcbiAgICBjb25zdCBzdHJlYW0gPSB0b1BvbHlmaWxsUmVhZGFibGUoX3N0cmVhbSkgYXMgdHlwZW9mIF9zdHJlYW1cblxuICAgIGNvbnN0IGFya1N0cmVhbSA9IGludG9TdGFuZGFyZFN0cmVhbTxZaVN0cmVhbU91dHB1dD4oc3RyZWFtKVxuICAgIGNvbnN0IHN0cmVhbVdpdGhSYXcgPSBhcmtTdHJlYW0ucGlwZVRocm91Z2gobmV3IFRyYW5zZm9ybVN0cmVhbTxZaVN0cmVhbU91dHB1dCwgQmFzZURvU3RyZWFtT3V0cHV0Q2h1bmsgJiB7IHJhd1Jlc3BvbnNlPzogYW55IH0+KHtcbiAgICAgIHRyYW5zZm9ybShjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICAvLyDpnZ7luLjlpYfokalcbiAgICAgICAgaWYgKCEoY2h1bms/LmNob2ljZXM/LlswXT8uZGVsdGE/LmNvbnRlbnQgfHwgY2h1bms/LmNob2ljZXM/LlswXT8uZGVsdGE/LnRvb2xfY2FsbHMpKSByZXR1cm5cblxuICAgICAgICBjb25zdCBuZXdDaG9pY2VzID0gY2h1bmsuY2hvaWNlcy5tYXAoKGNob2ljZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBPYmplY3QuYXNzaWduKGNob2ljZS5kZWx0YSwgeyByb2xlOiAnYXNzaXN0YW50JyB9KSBhcyB0eXBlb2YgY2hvaWNlLmRlbHRhICYge1xuICAgICAgICAgICAgcm9sZTogJ2Fzc2lzdGFudCdcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGlzVG9vbENhbGwgPT0gbnVsbCkgaXNUb29sQ2FsbCA9IGlzVG9vbENhbGxBc3Npc3RhbnRNZXNzYWdlKG1lc3NhZ2UpXG4gICAgICAgICAgaWYgKGlzVG9vbENhbGwpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLmNob2ljZSxcbiAgICAgICAgICAgICAgZmluaXNoX3JlYXNvbjogJ3Rvb2xfY2FsbHMnIGFzIGNvbnN0LFxuICAgICAgICAgICAgICBkZWx0YTogbWVzc2FnZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHsgLi4uY2hvaWNlLCBkZWx0YTogbWVzc2FnZSB9XG4gICAgICAgIH0pXG4gICAgICAgIGNvbnN0IG5ld0NodW5rID0geyAuLi5jaHVuaywgY2hvaWNlczogbmV3Q2hvaWNlcyB9XG4gICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZSh7IC4uLm5ld0NodW5rLCByYXdSZXNwb25zZTogY2h1bmsgfSlcbiAgICAgIH0sXG4gICAgfSksKVxuXG4gICAgcmV0dXJuIGNyZWF0ZUFzeW5jSXRlcmFibGUoc3RyZWFtV2l0aFJhdylcbiAgfVxufVxuIl19
@@ -136,4 +136,4 @@ var ZhiPuSimpleModel = (function () {
136
136
  return ZhiPuSimpleModel;
137
137
  }());
138
138
  exports.ZhiPuSimpleModel = ZhiPuSimpleModel;
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9kZWxzL1poaVB1L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscUNBTW9CO0FBWXBCLFNBQVMsWUFBWSxDQUFDLEtBQXlCO0lBQ3JDLElBQUEsUUFBUSxHQUFvRCxLQUFLLFNBQXpELEVBQUUsS0FBSyxHQUE2QyxLQUFLLE1BQWxELEVBQUUsV0FBVyxHQUFnQyxLQUFLLFlBQXJDLEVBQUUsV0FBVyxHQUFtQixLQUFLLFlBQXhCLEVBQUUsS0FBSyxHQUFZLEtBQUssTUFBakIsRUFBRSxLQUFLLEdBQUssS0FBSyxNQUFWLENBQVU7SUFFekUsSUFBTSxpQkFBaUIsR0FBRztRQUN4QixJQUFJLFdBQVcsSUFBSSxXQUFXLEtBQUssTUFBTSxFQUFFO1lBQ3pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsK0JBQStCLENBQUMsQ0FBQTtTQUM5QztRQUNELE9BQU8sV0FBa0IsQ0FBQTtJQUMzQixDQUFDLENBQUE7SUFFRCw2QkFDSyxLQUFLLEtBQ1IsUUFBUSxVQUFBLEVBQ1IsS0FBSyxPQUFBLEVBQ0wsV0FBVyxhQUFBLEVBQ1gsV0FBVyxFQUFFLGlCQUFpQixFQUFFLEVBQ2hDLEtBQUssT0FBQSxFQUNMLEtBQUssT0FBQSxJQUNOO0FBQ0gsQ0FBQztBQUVEO0lBRUUsMEJBQW9CLEdBQWEsRUFBUyxPQUFlLEVBQUUsTUFBZTtRQUF0RCxRQUFHLEdBQUgsR0FBRyxDQUFVO1FBQVMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQURsRCxXQUFNLEdBQUcsb0NBQW9DLENBQUE7UUFFbEQsSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO1NBQ3JCO0lBQ0gsQ0FBQztJQUVELHNCQUFZLGlDQUFHO2FBQWY7WUFDRSxPQUFPLFVBQUcsSUFBSSxDQUFDLE9BQU8sY0FBSSxJQUFJLENBQUMsTUFBTSxDQUFFLENBQUE7UUFDekMsQ0FBQzs7O09BQUE7SUFFWSxxQ0FBVSxHQUF2QixVQUF3QixLQUF5QixFQUFFLE9BQW9COzs7Ozs7d0JBQy9ELElBQUksR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUE7d0JBQ25CLFdBQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQztnQ0FDMUIsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO2dDQUNiLElBQUksd0JBQ0MsSUFBSSxLQUNQLE1BQU0sRUFBRSxLQUFLLEdBQ2Q7Z0NBQ0QsTUFBTSxFQUFFLEtBQUs7Z0NBQ2IsT0FBTyxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxPQUFPOzZCQUMxQixDQUFDLEVBQUE7O3dCQVJJLEdBQUcsR0FBRyxDQUFDLFNBUVgsQ0FBNEI7d0JBQzlCLGlDQUFZLEdBQUcsS0FBRSxXQUFXLEVBQUUsR0FBRyxLQUFFOzs7O0tBQ3BDO0lBRVksbUNBQVEsR0FBckIsVUFBc0IsS0FBeUIsRUFBRSxPQUFvQjs7Ozs7O3dCQUM3RCxJQUFJLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFBO3dCQUM1QixVQUFVLEdBQW1CLElBQUksQ0FBQTt3QkFDckIsV0FBTSxJQUFJLENBQUMsR0FBRyxDQUFDO2dDQUM3QixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7Z0NBQ2IsSUFBSSx3QkFDQyxJQUFJLEtBQ1AsTUFBTSxFQUFFLElBQUksR0FDYjtnQ0FDRCxNQUFNLEVBQUUsSUFBSTtnQ0FDWixPQUFPLEVBQUUsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLE9BQU87NkJBQzFCLENBQUMsRUFBQTs7d0JBUkksT0FBTyxHQUFHLFNBUWQ7d0JBQ0ksTUFBTSxHQUFHLElBQUEsMEJBQWtCLEVBQUMsT0FBTyxDQUFtQixDQUFBO3dCQUV0RCxXQUFXLEdBQUcsSUFBQSwwQkFBa0IsRUFBd0IsTUFBTSxDQUFDLENBQUE7d0JBQy9ELGFBQWEsR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksdUJBQWUsQ0FBeUU7NEJBQ3hJLFNBQVMsWUFBQyxLQUFLLEVBQUUsVUFBVTtnQ0FDekIsSUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBQyxNQUFNO29DQUMxQyxJQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFBO29DQUM1QixJQUFJLFVBQVUsSUFBSSxJQUFJO3dDQUFFLFVBQVUsR0FBRyxJQUFBLGtDQUEwQixFQUFDLE9BQU8sQ0FBQyxDQUFBO29DQUN4RSxJQUFJLFVBQVUsRUFBRTt3Q0FDZCw2QkFDSyxNQUFNLEtBQ1QsYUFBYSxFQUFFLFlBQXFCLEVBQ3BDLEtBQUssRUFBRSxPQUFPLElBQ2Y7cUNBQ0Y7b0NBQ0QsT0FBTyxNQUFNLENBQUE7Z0NBQ2YsQ0FBQyxDQUFDLENBQUE7Z0NBQ0YsSUFBTSxRQUFRLHlCQUFRLEtBQUssS0FBRSxPQUFPLEVBQUUsVUFBVSxHQUFFLENBQUE7Z0NBQ2xELFVBQVUsQ0FBQyxPQUFPLHVCQUFNLFFBQVEsS0FBRSxXQUFXLEVBQUUsS0FBSyxJQUFHLENBQUE7NEJBQ3pELENBQUM7eUJBQ0YsQ0FBQyxDQUFFLENBQUE7d0JBRUosV0FBTyxJQUFBLDJCQUFtQixFQUFDLGFBQWEsQ0FBQyxFQUFBOzs7O0tBQzFDO0lBQ0gsdUJBQUM7QUFBRCxDQUFDLEFBOURELElBOERDO0FBOURZLDRDQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGNyZWF0ZUFzeW5jSXRlcmFibGUsXG4gIFRyYW5zZm9ybVN0cmVhbSxcbiAgdG9Qb2x5ZmlsbFJlYWRhYmxlLFxuICBpbnRvU3RhbmRhcmRTdHJlYW0sXG4gIGlzVG9vbENhbGxBc3Npc3RhbnRNZXNzYWdlLFxufSBmcm9tICcuLi8uLi91dGlscydcbmltcG9ydCB0eXBlIHsgWmhpUHVHZW5lcmF0ZVRleHRPdXRwdXQsIFpoaVB1SW5wdXREYXRhLCBaaGlQdVN0cmVhbVRleHRPdXRwdXQgfSBmcm9tICcuL3R5cGUnXG5pbXBvcnQgdHlwZSB7XG4gIE1vZGVsUmVxLFxuICBCYXNlQ2hhdE1vZGVsSW5wdXQsXG4gIFNpbXBsZUNoYXRNb2RlbCxcbiAgRG9TdHJlYW1PdXRwdXQsXG4gIEJhc2VEb1N0cmVhbU91dHB1dENodW5rLFxuICBEb0dlbmVyYXRlT3V0cHV0LFxuICBSZXFPcHRpb25zLFxufSBmcm9tICcuLi8uLi90eXBlJ1xuXG5mdW5jdGlvbiBwcm9jZXNzSW5wdXQoaW5wdXQ6IEJhc2VDaGF0TW9kZWxJbnB1dCk6IFpoaVB1SW5wdXREYXRhIHtcbiAgY29uc3QgeyBtZXNzYWdlcywgbW9kZWwsIHRlbXBlcmF0dXJlLCB0b29sX2Nob2ljZSwgdG9vbHMsIHRvcF9wIH0gPSBpbnB1dFxuXG4gIGNvbnN0IHByb2Nlc3NUb29sQ2hvaWNlID0gKCkgPT4ge1xuICAgIGlmICh0b29sX2Nob2ljZSAmJiB0b29sX2Nob2ljZSAhPT0gJ2F1dG8nKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ2B0b29sX2Nob2ljZWAgaXMgbm90IFxcJ2F1dG9cXCcnKVxuICAgIH1cbiAgICByZXR1cm4gdG9vbF9jaG9pY2UgYXMgYW55XG4gIH1cblxuICByZXR1cm4ge1xuICAgIC4uLmlucHV0LFxuICAgIG1lc3NhZ2VzLFxuICAgIG1vZGVsLFxuICAgIHRlbXBlcmF0dXJlLFxuICAgIHRvb2xfY2hvaWNlOiBwcm9jZXNzVG9vbENob2ljZSgpLFxuICAgIHRvb2xzLFxuICAgIHRvcF9wLFxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBaaGlQdVNpbXBsZU1vZGVsIGltcGxlbWVudHMgU2ltcGxlQ2hhdE1vZGVsIHtcbiAgcHVibGljIHN1YlVybCA9ICd6aGlwdS9hcGkvcGFhcy92NC9jaGF0L2NvbXBsZXRpb25zJ1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlcTogTW9kZWxSZXEsIHB1YmxpYyBiYXNlVXJsOiBzdHJpbmcsIHN1YlVybD86IHN0cmluZykge1xuICAgIGlmIChzdWJVcmwgIT0gbnVsbCkge1xuICAgICAgdGhpcy5zdWJVcmwgPSBzdWJVcmxcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldCB1cmwoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuYmFzZVVybH0vJHt0aGlzLnN1YlVybH1gXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZG9HZW5lcmF0ZShfZGF0YTogQmFzZUNoYXRNb2RlbElucHV0LCBvcHRpb25zPzogUmVxT3B0aW9ucyk6IFByb21pc2U8RG9HZW5lcmF0ZU91dHB1dD4ge1xuICAgIGNvbnN0IGRhdGEgPSBwcm9jZXNzSW5wdXQoX2RhdGEpXG4gICAgY29uc3QgcmVzID0gKGF3YWl0IHRoaXMucmVxKHtcbiAgICAgIHVybDogdGhpcy51cmwsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIC4uLmRhdGEsXG4gICAgICAgIHN0cmVhbTogZmFsc2UsXG4gICAgICB9LFxuICAgICAgc3RyZWFtOiBmYWxzZSxcbiAgICAgIHRpbWVvdXQ6IG9wdGlvbnM/LnRpbWVvdXQsXG4gICAgfSkpIGFzIFpoaVB1R2VuZXJhdGVUZXh0T3V0cHV0XG4gICAgcmV0dXJuIHsgLi4ucmVzLCByYXdSZXNwb25zZTogcmVzIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkb1N0cmVhbShfZGF0YTogQmFzZUNoYXRNb2RlbElucHV0LCBvcHRpb25zPzogUmVxT3B0aW9ucyk6IFByb21pc2U8RG9TdHJlYW1PdXRwdXQ+IHtcbiAgICBjb25zdCBkYXRhID0gcHJvY2Vzc0lucHV0KF9kYXRhKVxuICAgIGxldCBpc1Rvb2xDYWxsOiBudWxsIHwgYm9vbGVhbiA9IG51bGxcbiAgICBjb25zdCBfc3RyZWFtID0gYXdhaXQgdGhpcy5yZXEoe1xuICAgICAgdXJsOiB0aGlzLnVybCxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgc3RyZWFtOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIHN0cmVhbTogdHJ1ZSxcbiAgICAgIHRpbWVvdXQ6IG9wdGlvbnM/LnRpbWVvdXQsXG4gICAgfSlcbiAgICBjb25zdCBzdHJlYW0gPSB0b1BvbHlmaWxsUmVhZGFibGUoX3N0cmVhbSkgYXMgdHlwZW9mIF9zdHJlYW1cblxuICAgIGNvbnN0IHpoaXB1U3RyZWFtID0gaW50b1N0YW5kYXJkU3RyZWFtPFpoaVB1U3RyZWFtVGV4dE91dHB1dD4oc3RyZWFtKVxuICAgIGNvbnN0IHN0cmVhbVdpdGhSYXcgPSB6aGlwdVN0cmVhbS5waXBlVGhyb3VnaChuZXcgVHJhbnNmb3JtU3RyZWFtPFpoaVB1U3RyZWFtVGV4dE91dHB1dCwgQmFzZURvU3RyZWFtT3V0cHV0Q2h1bmsgJiB7IHJhd1Jlc3BvbnNlPzogYW55IH0+KHtcbiAgICAgIHRyYW5zZm9ybShjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICBjb25zdCBuZXdDaG9pY2VzID0gY2h1bmsuY2hvaWNlcy5tYXAoKGNob2ljZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBjaG9pY2UuZGVsdGFcbiAgICAgICAgICBpZiAoaXNUb29sQ2FsbCA9PSBudWxsKSBpc1Rvb2xDYWxsID0gaXNUb29sQ2FsbEFzc2lzdGFudE1lc3NhZ2UobWVzc2FnZSlcbiAgICAgICAgICBpZiAoaXNUb29sQ2FsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4uY2hvaWNlLFxuICAgICAgICAgICAgICBmaW5pc2hfcmVhc29uOiAndG9vbF9jYWxscycgYXMgY29uc3QsXG4gICAgICAgICAgICAgIGRlbHRhOiBtZXNzYWdlLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gY2hvaWNlXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnN0IG5ld0NodW5rID0geyAuLi5jaHVuaywgY2hvaWNlczogbmV3Q2hvaWNlcyB9XG4gICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZSh7IC4uLm5ld0NodW5rLCByYXdSZXNwb25zZTogY2h1bmsgfSlcbiAgICAgIH0sXG4gICAgfSksKVxuXG4gICAgcmV0dXJuIGNyZWF0ZUFzeW5jSXRlcmFibGUoc3RyZWFtV2l0aFJhdylcbiAgfVxufVxuIl19
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9kZWxzL1poaVB1L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEscUNBTW9CO0FBWXBCLFNBQVMsWUFBWSxDQUFDLEtBQXlCO0lBQ3JDLElBQUEsUUFBUSxHQUFvRCxLQUFLLFNBQXpELEVBQUUsS0FBSyxHQUE2QyxLQUFLLE1BQWxELEVBQUUsV0FBVyxHQUFnQyxLQUFLLFlBQXJDLEVBQUUsV0FBVyxHQUFtQixLQUFLLFlBQXhCLEVBQUUsS0FBSyxHQUFZLEtBQUssTUFBakIsRUFBRSxLQUFLLEdBQUssS0FBSyxNQUFWLENBQVU7SUFFekUsSUFBTSxpQkFBaUIsR0FBRztRQUN4QixJQUFJLFdBQVcsSUFBSSxXQUFXLEtBQUssTUFBTSxFQUFFO1lBQ3pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsK0JBQStCLENBQUMsQ0FBQTtTQUM5QztRQUNELE9BQU8sV0FBa0IsQ0FBQTtJQUMzQixDQUFDLENBQUE7SUFFRCw2QkFDSyxLQUFLLEtBQ1IsUUFBUSxVQUFBLEVBQ1IsS0FBSyxPQUFBLEVBQ0wsV0FBVyxhQUFBLEVBQ1gsV0FBVyxFQUFFLGlCQUFpQixFQUFFLEVBQ2hDLEtBQUssT0FBQSxFQUNMLEtBQUssT0FBQSxJQUNOO0FBQ0gsQ0FBQztBQUVEO0lBRUUsMEJBQW9CLEdBQWEsRUFBUyxPQUFlLEVBQUUsTUFBZTtRQUF0RCxRQUFHLEdBQUgsR0FBRyxDQUFVO1FBQVMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQURsRCxXQUFNLEdBQUcsb0NBQW9DLENBQUE7UUFFbEQsSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO1NBQ3JCO0lBQ0gsQ0FBQztJQUVELHNCQUFZLGlDQUFHO2FBQWY7WUFDRSxPQUFPLFVBQUcsSUFBSSxDQUFDLE9BQU8sY0FBSSxJQUFJLENBQUMsTUFBTSxDQUFFLENBQUE7UUFDekMsQ0FBQzs7O09BQUE7SUFFWSxxQ0FBVSxHQUF2QixVQUF3QixLQUF5QixFQUFFLE9BQW9COzs7Ozs7d0JBQy9ELElBQUksR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUE7d0JBQ25CLFdBQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQztnQ0FDMUIsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO2dDQUNiLElBQUksd0JBQ0MsSUFBSSxLQUNQLE1BQU0sRUFBRSxLQUFLLEdBQ2Q7Z0NBQ0QsTUFBTSxFQUFFLEtBQUs7Z0NBQ2IsT0FBTyxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxPQUFPOzZCQUMxQixDQUFDLEVBQUE7O3dCQVJJLEdBQUcsR0FBRyxDQUFDLFNBUVgsQ0FBNEI7d0JBQzlCLGlDQUFZLEdBQUcsS0FBRSxXQUFXLEVBQUUsR0FBRyxLQUFFOzs7O0tBQ3BDO0lBRVksbUNBQVEsR0FBckIsVUFBc0IsS0FBeUIsRUFBRSxPQUFvQjs7Ozs7O3dCQUM3RCxJQUFJLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFBO3dCQUM1QixVQUFVLEdBQW1CLElBQUksQ0FBQTt3QkFDckIsV0FBTSxJQUFJLENBQUMsR0FBRyxDQUFDO2dDQUM3QixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7Z0NBQ2IsSUFBSSx3QkFDQyxJQUFJLEtBQ1AsTUFBTSxFQUFFLElBQUksR0FDYjtnQ0FDRCxNQUFNLEVBQUUsSUFBSTtnQ0FDWixPQUFPLEVBQUUsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLE9BQU87NkJBQzFCLENBQUMsRUFBQTs7d0JBUkksT0FBTyxHQUFHLFNBUWQ7d0JBQ0ksTUFBTSxHQUFHLElBQUEsMEJBQWtCLEVBQUMsT0FBTyxDQUFtQixDQUFBO3dCQUV0RCxXQUFXLEdBQUcsSUFBQSwwQkFBa0IsRUFBd0IsTUFBTSxDQUFDLENBQUE7d0JBQy9ELGFBQWEsR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksdUJBQWUsQ0FBeUU7NEJBQ3hJLFNBQVMsWUFBQyxLQUFLLEVBQUUsVUFBVTtnQ0FDekIsSUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBQyxNQUFNO29DQUMxQyxJQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFBO29DQUM1QixJQUFJLFVBQVUsSUFBSSxJQUFJO3dDQUFFLFVBQVUsR0FBRyxJQUFBLGtDQUEwQixFQUFDLE9BQU8sQ0FBQyxDQUFBO29DQUN4RSxJQUFJLFVBQVUsRUFBRTt3Q0FDZCw2QkFDSyxNQUFNLEtBQ1QsYUFBYSxFQUFFLFlBQXFCLEVBQ3BDLEtBQUssRUFBRSxPQUFPLElBQ2Y7cUNBQ0Y7b0NBQ0QsT0FBTyxNQUFNLENBQUE7Z0NBQ2YsQ0FBQyxDQUFDLENBQUE7Z0NBQ0YsSUFBTSxRQUFRLHlCQUFRLEtBQUssS0FBRSxPQUFPLEVBQUUsVUFBVSxHQUFFLENBQUE7Z0NBQ2xELFVBQVUsQ0FBQyxPQUFPLHVCQUFNLFFBQVEsS0FBRSxXQUFXLEVBQUUsS0FBSyxJQUFHLENBQUE7NEJBQ3pELENBQUM7eUJBQ0YsQ0FBQyxDQUFFLENBQUE7d0JBRUosV0FBTyxJQUFBLDJCQUFtQixFQUFDLGFBQWEsQ0FBQyxFQUFBOzs7O0tBQzFDO0lBQ0gsdUJBQUM7QUFBRCxDQUFDLEFBOURELElBOERDO0FBOURZLDRDQUFnQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGVxZXFlcSAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG5pbXBvcnQge1xuICBjcmVhdGVBc3luY0l0ZXJhYmxlLFxuICBUcmFuc2Zvcm1TdHJlYW0sXG4gIHRvUG9seWZpbGxSZWFkYWJsZSxcbiAgaW50b1N0YW5kYXJkU3RyZWFtLFxuICBpc1Rvb2xDYWxsQXNzaXN0YW50TWVzc2FnZSxcbn0gZnJvbSAnLi4vLi4vdXRpbHMnXG5pbXBvcnQgdHlwZSB7IFpoaVB1R2VuZXJhdGVUZXh0T3V0cHV0LCBaaGlQdUlucHV0RGF0YSwgWmhpUHVTdHJlYW1UZXh0T3V0cHV0IH0gZnJvbSAnLi90eXBlJ1xuaW1wb3J0IHR5cGUge1xuICBNb2RlbFJlcSxcbiAgQmFzZUNoYXRNb2RlbElucHV0LFxuICBTaW1wbGVDaGF0TW9kZWwsXG4gIERvU3RyZWFtT3V0cHV0LFxuICBCYXNlRG9TdHJlYW1PdXRwdXRDaHVuayxcbiAgRG9HZW5lcmF0ZU91dHB1dCxcbiAgUmVxT3B0aW9ucyxcbn0gZnJvbSAnLi4vLi4vdHlwZSdcblxuZnVuY3Rpb24gcHJvY2Vzc0lucHV0KGlucHV0OiBCYXNlQ2hhdE1vZGVsSW5wdXQpOiBaaGlQdUlucHV0RGF0YSB7XG4gIGNvbnN0IHsgbWVzc2FnZXMsIG1vZGVsLCB0ZW1wZXJhdHVyZSwgdG9vbF9jaG9pY2UsIHRvb2xzLCB0b3BfcCB9ID0gaW5wdXRcblxuICBjb25zdCBwcm9jZXNzVG9vbENob2ljZSA9ICgpID0+IHtcbiAgICBpZiAodG9vbF9jaG9pY2UgJiYgdG9vbF9jaG9pY2UgIT09ICdhdXRvJykge1xuICAgICAgY29uc29sZS53YXJuKCdgdG9vbF9jaG9pY2VgIGlzIG5vdCBcXCdhdXRvXFwnJylcbiAgICB9XG4gICAgcmV0dXJuIHRvb2xfY2hvaWNlIGFzIGFueVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5pbnB1dCxcbiAgICBtZXNzYWdlcyxcbiAgICBtb2RlbCxcbiAgICB0ZW1wZXJhdHVyZSxcbiAgICB0b29sX2Nob2ljZTogcHJvY2Vzc1Rvb2xDaG9pY2UoKSxcbiAgICB0b29scyxcbiAgICB0b3BfcCxcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgWmhpUHVTaW1wbGVNb2RlbCBpbXBsZW1lbnRzIFNpbXBsZUNoYXRNb2RlbCB7XG4gIHB1YmxpYyBzdWJVcmwgPSAnemhpcHUvYXBpL3BhYXMvdjQvY2hhdC9jb21wbGV0aW9ucydcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZXE6IE1vZGVsUmVxLCBwdWJsaWMgYmFzZVVybDogc3RyaW5nLCBzdWJVcmw/OiBzdHJpbmcpIHtcbiAgICBpZiAoc3ViVXJsICE9IG51bGwpIHtcbiAgICAgIHRoaXMuc3ViVXJsID0gc3ViVXJsXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXQgdXJsKCkge1xuICAgIHJldHVybiBgJHt0aGlzLmJhc2VVcmx9LyR7dGhpcy5zdWJVcmx9YFxuICB9XG5cbiAgcHVibGljIGFzeW5jIGRvR2VuZXJhdGUoX2RhdGE6IEJhc2VDaGF0TW9kZWxJbnB1dCwgb3B0aW9ucz86IFJlcU9wdGlvbnMpOiBQcm9taXNlPERvR2VuZXJhdGVPdXRwdXQ+IHtcbiAgICBjb25zdCBkYXRhID0gcHJvY2Vzc0lucHV0KF9kYXRhKVxuICAgIGNvbnN0IHJlcyA9IChhd2FpdCB0aGlzLnJlcSh7XG4gICAgICB1cmw6IHRoaXMudXJsLFxuICAgICAgZGF0YToge1xuICAgICAgICAuLi5kYXRhLFxuICAgICAgICBzdHJlYW06IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIHN0cmVhbTogZmFsc2UsXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pKSBhcyBaaGlQdUdlbmVyYXRlVGV4dE91dHB1dFxuICAgIHJldHVybiB7IC4uLnJlcywgcmF3UmVzcG9uc2U6IHJlcyB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZG9TdHJlYW0oX2RhdGE6IEJhc2VDaGF0TW9kZWxJbnB1dCwgb3B0aW9ucz86IFJlcU9wdGlvbnMpOiBQcm9taXNlPERvU3RyZWFtT3V0cHV0PiB7XG4gICAgY29uc3QgZGF0YSA9IHByb2Nlc3NJbnB1dChfZGF0YSlcbiAgICBsZXQgaXNUb29sQ2FsbDogbnVsbCB8IGJvb2xlYW4gPSBudWxsXG4gICAgY29uc3QgX3N0cmVhbSA9IGF3YWl0IHRoaXMucmVxKHtcbiAgICAgIHVybDogdGhpcy51cmwsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIC4uLmRhdGEsXG4gICAgICAgIHN0cmVhbTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBzdHJlYW06IHRydWUsXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gICAgY29uc3Qgc3RyZWFtID0gdG9Qb2x5ZmlsbFJlYWRhYmxlKF9zdHJlYW0pIGFzIHR5cGVvZiBfc3RyZWFtXG5cbiAgICBjb25zdCB6aGlwdVN0cmVhbSA9IGludG9TdGFuZGFyZFN0cmVhbTxaaGlQdVN0cmVhbVRleHRPdXRwdXQ+KHN0cmVhbSlcbiAgICBjb25zdCBzdHJlYW1XaXRoUmF3ID0gemhpcHVTdHJlYW0ucGlwZVRocm91Z2gobmV3IFRyYW5zZm9ybVN0cmVhbTxaaGlQdVN0cmVhbVRleHRPdXRwdXQsIEJhc2VEb1N0cmVhbU91dHB1dENodW5rICYgeyByYXdSZXNwb25zZT86IGFueSB9Pih7XG4gICAgICB0cmFuc2Zvcm0oY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgY29uc3QgbmV3Q2hvaWNlcyA9IGNodW5rLmNob2ljZXMubWFwKChjaG9pY2UpID0+IHtcbiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gY2hvaWNlLmRlbHRhXG4gICAgICAgICAgaWYgKGlzVG9vbENhbGwgPT0gbnVsbCkgaXNUb29sQ2FsbCA9IGlzVG9vbENhbGxBc3Npc3RhbnRNZXNzYWdlKG1lc3NhZ2UpXG4gICAgICAgICAgaWYgKGlzVG9vbENhbGwpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLmNob2ljZSxcbiAgICAgICAgICAgICAgZmluaXNoX3JlYXNvbjogJ3Rvb2xfY2FsbHMnIGFzIGNvbnN0LFxuICAgICAgICAgICAgICBkZWx0YTogbWVzc2FnZSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGNob2ljZVxuICAgICAgICB9KVxuICAgICAgICBjb25zdCBuZXdDaHVuayA9IHsgLi4uY2h1bmssIGNob2ljZXM6IG5ld0Nob2ljZXMgfVxuICAgICAgICBjb250cm9sbGVyLmVucXVldWUoeyAuLi5uZXdDaHVuaywgcmF3UmVzcG9uc2U6IGNodW5rIH0pXG4gICAgICB9LFxuICAgIH0pLClcblxuICAgIHJldHVybiBjcmVhdGVBc3luY0l0ZXJhYmxlKHN0cmVhbVdpdGhSYXcpXG4gIH1cbn1cbiJdfQ==
@@ -478,4 +478,4 @@ function addToUsage(targetUsage, sourceUsage) {
478
478
  targetUsage.prompt_tokens += sourceUsage.prompt_tokens;
479
479
  targetUsage.total_tokens += sourceUsage.total_tokens;
480
480
  }
481
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWxzL21vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsa0NBTWlCO0FBd0NqQixTQUFTLFlBQVksQ0FBQyxHQUFvQjs7SUFDaEMsSUFBQSxZQUFZLEdBQW9ELEdBQUcsYUFBdkQsRUFBRSxXQUFXLEdBQXVDLEdBQUcsWUFBMUMsRUFBRSxRQUFRLEdBQTZCLEdBQUcsU0FBaEMsRUFBRSxJQUFJLEdBQXVCLEdBQUcsS0FBMUIsRUFBRSxVQUFVLEdBQVcsR0FBRyxXQUFkLEVBQUssQ0FBQyxVQUFLLEdBQUcsRUFBckUsaUVBQStELENBQUYsQ0FBUTtJQUUzRSxJQUFJLFFBQVEsSUFBSSxJQUFJLElBQUksUUFBUSxHQUFHLENBQUMsRUFBRTtRQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUE7S0FDdEQ7SUFFRCxPQUFPO1FBQ0wsRUFBRSxZQUFZLGNBQUEsRUFBRSxXQUFXLGFBQUEsRUFBRSxRQUFRLFVBQUEsRUFBRTs4QkFFbEMsQ0FBQyxLQUNKLEtBQUssRUFBRSxNQUFBLENBQUMsQ0FBQyxLQUFLLDBDQUFFLEdBQUcsQ0FBQyxVQUFDLElBQUk7Z0JBQ3ZCLElBQUksSUFBSSxJQUFJLElBQUksRUFBRTtvQkFDaEIsT0FBTyxJQUFBLCtCQUF1QixFQUFDLElBQUksQ0FBQyxDQUFBO2lCQUNyQztnQkFDRCxPQUFPLElBQUksQ0FBQTtZQUNiLENBQUMsQ0FBQyxFQUNGLEtBQUssRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQ3BDLFdBQVcsRUFBRSxVQUFVLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFV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V0FBVyxDQUFDLFlBQVksSUFBSSxXQUFXLENBQUMsWUFBWSxDQUFBO0FBQ3RELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBjcmVhdGVBc3luY0l0ZXJhYmxlLFxuICBUcmFuc2Zvcm1TdHJlYW0sXG4gIGNyZWF0ZVByb21pc2UsXG4gIGlzVG9vbENhbGxBc3Npc3RhbnRNZXNzYWdlLFxuICBmdW5jdGlvblRvb2xUb01vZGVsVG9vbCxcbn0gZnJvbSAnLi4vdXRpbHMnXG5pbXBvcnQge1xuICBCYXNlQ2hhdE1vZGVsSW5wdXQsXG4gIEJhc2VEb1N0cmVhbU91dHB1dENodW5rLFxuICBEb1N0cmVhbU91dHB1dCxcbiAgRG9HZW5lcmF0ZU91dHB1dCxcbiAgU2ltcGxlQ2hhdE1vZGVsLFxuICBUb29sQ2FsbCxcbiAgQ2hhdE1vZGVsTWVzc2FnZSxcbiAgQXN5bmNJdGVyYWJsZVJlYWRhYmxlU3RyZWFtLFxuICBVc2FnZSxcbiAgVG9vbENhbGxBc3Npc3RhbnRNZXNzYWdlLFxuICBNb2RlbFRvb2wsXG4gIEZ1bmN0aW9uVG9vbCxcbiAgUmVxT3B0aW9ucyxcbn0gZnJvbSAnLi4vdHlwZSdcblxudHlwZSBSZWFjdE1vZGVsSW5wdXQgPSBSZWFjdFByb3BzICZcbk9taXQ8QmFzZUNoYXRNb2RlbElucHV0LCAndG9vbHMnPiAmIHtcbiAgdG9vbHM/OiBBcnJheTxNb2RlbFRvb2wgfCBGdW5jdGlvblRvb2w+XG4gIHRvcFA/OiBudW1iZXJcbiAgdG9vbENob2ljZT86ICdub25lJyB8ICdhdXRvJyB8ICdjdXN0b20nXG59XG5cbmludGVyZmFjZSBJT25TdGVwRmluaXNoIHtcbiAgbWVzc2FnZXM6IEFycmF5PENoYXRNb2RlbE1lc3NhZ2U+XG4gIHRleHQ/OiBzdHJpbmdcbiAgdG9vbENhbGw/OiBUb29sQ2FsbFxuICB0b29sUmVzdWx0PzogdW5rbm93blxuICBmaW5pc2hSZWFzb24/OiBzdHJpbmdcbiAgc3RlcFVzYWdlPzogVXNhZ2VcbiAgdG90YWxVc2FnZT86IFVzYWdlXG59XG5cbmludGVyZmFjZSBSZWFjdFByb3BzIHtcbiAgbWF4U3RlcHM/OiBudW1iZXJcbiAgb25TdGVwRmluaXNoPzogKHByb3A6IElPblN0ZXBGaW5pc2gpID0+IHVua25vd25cbiAgYWJvcnRTaWduYWw/OiBBYm9ydFNpZ25hbCAvLyBUT0RPOiDlrp7njrAgYWJvcnRTaWduYWxcbn1cblxuZnVuY3Rpb24gcHJvY2Vzc0lucHV0KG9iajogUmVhY3RNb2RlbElucHV0KTogW1JlYWN0UHJvcHMsIEJhc2VDaGF0TW9kZWxJbnB1dF0ge1xuICBjb25zdCB7IG9uU3RlcEZpbmlzaCwgYWJvcnRTaWduYWwsIG1heFN0ZXBzLCB0b3BQLCB0b29sQ2hvaWNlLCAuLi5iIH0gPSBvYmpcblxuICBpZiAobWF4U3RlcHMgIT0gbnVsbCAmJiBtYXhTdGVwcyA8IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2BtYXhTdGVwc2AgbXVzZSBiZSBncmVhdGVyIHRoYW4gMC4nKVxuICB9XG5cbiAgcmV0dXJuIFtcbiAgICB7IG9uU3RlcEZpbmlzaCwgYWJvcnRTaWduYWwsIG1heFN0ZXBzIH0sXG4gICAge1xuICAgICAgLi4uYixcbiAgICAgIHRvb2xzOiBiLnRvb2xzPy5tYXAoKHRvb2wpID0+IHtcbiAgICAgICAgaWYgKCdmbicgaW4gdG9vbCkge1xuICAgICAgICAgIHJldHVybiBmdW5jdGlvblRvb2xUb01vZGVsVG9vbCh0b29sKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0b29sXG4gICAgICB9KSxcbiAgICAgIHRvcF9wOiB0b3BQICE9IG51bGwgPyB0b3BQIDogYi50b3BfcCxcbiAgICAgIHRvb2xfY2hvaWNlOiB0b29sQ2hvaWNlICE9IG51bGwgPyB0b29sQ2hvaWNlIDogYi50b29sX2Nob2ljZSxcbiAgICB9LFxuICBdXG59XG5cbmV4cG9ydCBjbGFzcyBSZWFjdE1vZGVsIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtb2RlbDogU2ltcGxlQ2hhdE1vZGVsKSB7fVxuXG4gIHB1YmxpYyBhc3luYyBnZW5lcmF0ZVRleHQoX2lucHV0OiBSZWFjdE1vZGVsSW5wdXQsIG9wdGlvbnM/OiBSZXFPcHRpb25zKTogUHJvbWlzZTx7XG4gICAgdGV4dDogc3RyaW5nXG4gICAgbWVzc2FnZXM6IEFycmF5PENoYXRNb2RlbE1lc3NhZ2U+XG4gICAgdXNhZ2U6IFVzYWdlXG4gICAgcmF3UmVzcG9uc2VzOiBBcnJheTx1bmtub3duPlxuICAgIGVycm9yPzogYW55XG4gIH0+IHtcbiAgICBjb25zdCByYXdSZXNwb25zZXMgPSBbXVxuICAgIGNvbnN0IHRvdGFsVXNhZ2U6IFVzYWdlID0geyBjb21wbGV0aW9uX3Rva2VuczogMCwgcHJvbXB0X3Rva2VuczogMCwgdG90YWxfdG9rZW5zOiAwIH1cblxuICAgIGNvbnN0IFt7IG9uU3RlcEZpbmlzaCwgbWF4U3RlcHMgPSAxMCB9LCBpbnB1dF0gPSBwcm9jZXNzSW5wdXQoX2lucHV0KVxuXG4gICAgY29uc3QgZG9HZW5lcmF0ZSA9ICgpID0+IHRoaXMubW9kZWwuZG9HZW5lcmF0ZShpbnB1dCwgb3B0aW9ucykgLy8g5ZCO57ut5Luj56CB5Lya55u05o6l5a+5IGlucHV0Lm1lc3NhZ2VzIOWOn+WcsOS/ruaUue+8jOi/memHjOS4gOebtOeUqOWQjOS4gOS4quWvueixoeWwseihjFxuICAgIGxldCBjdXJyZW50UmVzID0gYXdhaXQgZG9HZW5lcmF0ZSgpXG4gICAgbGV0IGN1cnJlbnRTdGVwID0gMVxuICAgIGN1cnJlbnRSZXMucmF3UmVzcG9uc2UgJiYgcmF3UmVzcG9uc2VzLnB1c2goY3VycmVudFJlcy5yYXdSZXNwb25zZSlcblxuICAgIGxldCB0b29sQ2FsbDogVG9vbENhbGwgfCBudWxsID0gbnVsbFxuXG4gICAgLy8gVE9ETzog5LiA5qyh5a+56K+d5pyJ5aSa5LiqIHRvb2wgY2FsbD8g55uu5YmN5rKh5pyJ6L+Z56eN546w6LGh77yM5pqC5pe25LiN5aSE55CGXG4gICAgd2hpbGUgKGN1cnJlbnRTdGVwIDwgbWF4U3RlcHMgJiYgKHRvb2xDYWxsID0gZ2V0VG9vbENhbGxGcm9tR2VuZXJhdGUoY3VycmVudFJlcykpICE9IG51bGwpIHtcbiAgICAgIGNvbnN0IHN0ZXBVc2FnZSA9IGNyZWF0ZVNvbGlkVXNhZ2UoY3VycmVudFJlcy51c2FnZSlcbiAgICAgIGFkZFRvVXNhZ2UodG90YWxVc2FnZSwgc3RlcFVzYWdlKVxuXG4gICAgICAvLyDlvZPliKTmlq3pnIDopoHlt6XlhbfosIPnlKjml7ZcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHRvb2xDYWxsUmVzdWx0ID0gYXdhaXQgY2FsbFRvb2wodG9vbENhbGwpIC8vIOiwg+eUqFxuXG4gICAgICAgIGNvbnN0IGNob2ljZSA9IGN1cnJlbnRSZXMuY2hvaWNlc1swXSAvLyBnZXRUb29sQ2FsbEZyb21HZW5lcmF0ZSDkv53or4HkuoYgY2hvaWNlIOiCr+WumuWtmOWcqFxuXG4gICAgICAgIGF3YWl0IG9uU3RlcEZpbmlzaD8uKHtcbiAgICAgICAgICBmaW5pc2hSZWFzb246IGNob2ljZS5maW5pc2hfcmVhc29uLFxuICAgICAgICAgIG1lc3NhZ2VzOiBpbnB1dC5tZXNzYWdlcy5zbGljZSgpLFxuICAgICAgICAgIHRleHQ6IGNob2ljZS5tZXNzYWdlLmNvbnRlbnQsXG4gICAgICAgICAgdG9vbENhbGwsXG4gICAgICAgICAgdG9vbFJlc3VsdDogdG9vbENhbGxSZXN1bHQsXG4gICAgICAgICAgc3RlcFVzYWdlLFxuICAgICAgICAgIHRvdGFsVXNhZ2U6IE9iamVjdC5hc3NpZ24oe30sIHRvdGFsVXNhZ2UpLFxuICAgICAgICB9KVxuXG4gICAgICAgIHB1c2hOZXdNZXNzYWdlcyhpbnB1dC5tZXNzYWdlcywgY2hvaWNlLm1lc3NhZ2UgYXMgVG9vbENhbGxBc3Npc3RhbnRNZXNzYWdlLCB0b29sQ2FsbFJlc3VsdCkgLy8g55So6LCD55So57uT5p6c5L+u5pS55pyA5paw55qE5raI5oGvXG5cbiAgICAgICAgY3VycmVudFJlcyA9IGF3YWl0IGRvR2VuZXJhdGUoKSAvLyDlvqrnjq/lr7nor51cbiAgICAgICAgY3VycmVudFJlcy5yYXdSZXNwb25zZSAmJiByYXdSZXNwb25zZXMucHVzaChjdXJyZW50UmVzLnJhd1Jlc3BvbnNlKVxuICAgICAgICBjdXJyZW50U3RlcCArPSAxXG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdGV4dDogJycsXG4gICAgICAgICAgbWVzc2FnZXM6IGlucHV0Lm1lc3NhZ2VzLFxuICAgICAgICAgIHVzYWdlOiB0b3RhbFVzYWdlLFxuICAgICAgICAgIGVycm9yOiBlLFxuICAgICAgICAgIHJhd1Jlc3BvbnNlcyxcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGxhc3RDaG9pY2UgPSBjdXJyZW50UmVzPy5jaG9pY2VzPy5bMF1cbiAgICBjb25zdCBsYXN0TWVzc2FnZSA9IGxhc3RDaG9pY2U/Lm1lc3NhZ2VcblxuICAgIGNvbnN0IHRleHQgPSBsYXN0TWVzc2FnZT8uY29udGVudCA/PyAnJ1xuICAgIGNvbnN0IG1lc3NhZ2VzID0gbGFzdE1lc3NhZ2UgPyBbLi4uaW5wdXQubWVzc2FnZXMsIGxhc3RNZXNzYWdlXSA6IGlucHV0Lm1lc3NhZ2VzXG5cbiAgICBjb25zdCBzdGVwVXNhZ2UgPSBjcmVhdGVTb2xpZFVzYWdlKGN1cnJlbnRSZXMudXNhZ2UpXG4gICAgYWRkVG9Vc2FnZSh0b3RhbFVzYWdlLCBzdGVwVXNhZ2UpXG5cbiAgICBhd2FpdCBvblN0ZXBGaW5pc2g/Lih7XG4gICAgICBmaW5pc2hSZWFzb246IGxhc3RDaG9pY2UuZmluaXNoX3JlYXNvbixcbiAgICAgIG1lc3NhZ2VzOiBtZXNzYWdlcy5zbGljZSgpLFxuICAgICAgdGV4dCxcbiAgICAgIHRvb2xDYWxsOiBnZXRUb29sQ2FsbEZyb21HZW5lcmF0ZShjdXJyZW50UmVzKSxcbiAgICAgIHRvb2xSZXN1bHQ6IG51bGwsXG4gICAgICBzdGVwVXNhZ2UsXG4gICAgICB0b3RhbFVzYWdlOiBPYmplY3QuYXNzaWduKHt9LCB0b3RhbFVzYWdlKSxcbiAgICB9KVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRleHQsXG4gICAgICBtZXNzYWdlcyxcbiAgICAgIHVzYWdlOiB0b3RhbFVzYWdlLFxuICAgICAgcmF3UmVzcG9uc2VzLFxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzdHJlYW1UZXh0KF9pbnB1dDogUmVhY3RNb2RlbElucHV0LCBvcHRpb25zPzogUmVxT3B0aW9ucyk6IFByb21pc2U8e1xuICAgIGRhdGFTdHJlYW06IERvU3RyZWFtT3V0cHV0XG4gICAgdGV4dFN0cmVhbTogQXN5bmNJdGVyYWJsZVJlYWRhYmxlU3RyZWFtPHN0cmluZz5cbiAgICBtZXNzYWdlczogUHJvbWlzZTxBcnJheTxDaGF0TW9kZWxNZXNzYWdlPj5cbiAgICB1c2FnZTogUHJvbWlzZTxVc2FnZT5cbiAgICBlcnJvcj86IGFueVxuICB9PiB7XG4gICAgY29uc3QgdG90YWxVc2FnZTogVXNhZ2UgPSB7IGNvbXBsZXRpb25fdG9rZW5zOiAwLCBwcm9tcHRfdG9rZW5zOiAwLCB0b3RhbF90b2tlbnM6IDAgfVxuXG4gICAgY29uc3QgW3sgb25TdGVwRmluaXNoLCBtYXhTdGVwcyA9IDEwIH0sIGlucHV0XSA9IHByb2Nlc3NJbnB1dChfaW5wdXQpXG4gICAgY29uc3QgZG9TdHJlYW0gPSAoKSA9PiB0aGlzLm1vZGVsLmRvU3RyZWFtKGlucHV0LCBvcHRpb25zKSAvLyDlkI7nu63ku6PnoIHkvJrnm7TmjqXlr7kgaW5wdXQubWVzc2FnZXMg5Y6f5Zyw5L+u5pS577yM6L+Z6YeM5LiA55u055So5ZCM5LiA5Liq5a+56LGh5bCx6KGMXG4gICAgbGV0IGN1cnJlbnRSZXMgPSBhd2FpdCBkb1N0cmVhbSgpXG4gICAgY29uc3QgY3VycmVudFN0ZXAgPSAxXG4gICAgbGV0IHJlYWRSZXN1bHQ6IHsgbWVzc2FnZTogVG9vbENhbGxBc3Npc3RhbnRNZXNzYWdlOyB1c2FnZTogVXNhZ2UgfSB8IG51bGwgPSBudWxsXG5cbiAgICBjb25zdCByZWFkQ3VycmVudFN0cmVhbSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IFtvbGRTdHJlYW0sIG5ld1N0cmVhbV0gPSBjdXJyZW50UmVzLnRlZSgpXG4gICAgICBjdXJyZW50UmVzID0gY3JlYXRlQXN5bmNJdGVyYWJsZShvbGRTdHJlYW0pXG4gICAgICByZXR1cm4gcmVhZEZ1bmN0aW9uQ2FsbFN0cmVhbShuZXdTdHJlYW0pXG4gICAgfVxuXG4gICAgLy8gVE9ETzog5LiA5qyh5a+56K+d5pyJ5aSa5LiqIHRvb2wgY2FsbD8g55uu5YmN5rKh5pyJ6L+Z56eN546w6LGh77yM5pqC5pe25LiN5aSE55CGXG4gICAgLy8g6L+Z6YeM5ZKMIGdlbmVyYXRlVGV4dCDkuI3lpKrkuIDmoLfvvIzpmaTkuobop6PmnpDlh7ogdG9vbENhbGwg5aSW77yM6L+Y6ZyA6KaB5LuO5rWB5Lit5p6E6YCg5Ye65YW25LuW5a6M5pW055qE5L+h5oGvXG4gICAgd2hpbGUgKGN1cnJlbnRTdGVwIDwgbWF4U3RlcHMgJiYgKHJlYWRSZXN1bHQgPSBhd2FpdCByZWFkQ3VycmVudFN0cmVhbSgpKSAhPSBudWxsKSB7XG4gICAgICBjb25zdCB7IG1lc3NhZ2U6IGFzc2lzdGFudE1lc3NhZ2UsIHVzYWdlOiBzdGVwVXNhZ2UgfSA9IHJlYWRSZXN1bHRcbiAgICAgIGFkZFRvVXNhZ2UodG90YWxVc2FnZSwgc3RlcFVzYWdlKVxuXG4gICAgICAvLyDlvZPliKTmlq3pnIDopoHlt6XlhbfosIPnlKjml7ZcbiAgICAgIGNvbnN0IHRvb2xDYWxsID0gYXNzaXN0YW50TWVzc2FnZS50b29sX2NhbGxzPy5bMF0gLy8g6L+Z5LiqIHRvb2xDYWxsIOS4gOWumuWtmOWcqFxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgdG9vbENhbGxSZXN1bHQgPSBhd2FpdCBjYWxsVG9vbCh0b29sQ2FsbCkgLy8g6LCD55SoXG5cbiAgICAgICAgYXdhaXQgb25TdGVwRmluaXNoPy4oe1xuICAgICAgICAgIGZpbmlzaFJlYXNvbjogJ3Rvb2xfY2FsbHMnLFxuICAgICAgICAgIG1lc3NhZ2VzOiBpbnB1dC5tZXNzYWdlcy5zbGljZSgpLFxuICAgICAgICAgIHRleHQ6IGFzc2lzdGFudE1lc3NhZ2UuY29udGVudCxcbiAgICAgICAgICB0b29sQ2FsbCxcbiAgICAgICAgICB0b29sUmVzdWx0OiB0b29sQ2FsbFJlc3VsdCxcbiAgICAgICAgICBzdGVwVXNhZ2UsXG4gICAgICAgICAgdG90YWxVc2FnZTogT2JqZWN0LmFzc2lnbih7fSwgdG90YWxVc2FnZSksXG4gICAgICAgIH0pXG5cbiAgICAgICAgcHVzaE5ld01lc3NhZ2VzKGlucHV0Lm1lc3NhZ2VzLCBhc3Npc3RhbnRNZXNzYWdlLCB0b29sQ2FsbFJlc3VsdCkgLy8g55So6LCD55So57uT5p6c5L+u5pS55pyA5paw55qE5raI5oGvXG4gICAgICAgIGN1cnJlbnRSZXMgPSBhd2FpdCBkb1N0cmVhbSgpIC8vIOW+queOr+WvueivnVxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zdCBbczEsIHMyXSA9IGN1cnJlbnRSZXMudGVlKClcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBtZXNzYWdlczogUHJvbWlzZS5yZXNvbHZlKGlucHV0Lm1lc3NhZ2VzKSxcbiAgICAgICAgICBkYXRhU3RyZWFtOiBjcmVhdGVBc3luY0l0ZXJhYmxlKHMxKSxcbiAgICAgICAgICB0ZXh0U3RyZWFtOiBjcmVhdGVBc3luY0l0ZXJhYmxlKHMyLnBpcGVUaHJvdWdoKG5ldyBUcmFuc2Zvcm1TdHJlYW0oe1xuICAgICAgICAgICAgdHJhbnNmb3JtKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHN0ciA9IGNodW5rPy5jaG9pY2VzPy5bMF0/LmRlbHRhPy5jb250ZW50XG4gICAgICAgICAgICAgIGlmICh0eXBlb2Ygc3RyID09PSAnc3RyaW5nJykgY29udHJvbGxlci5lbnF1ZXVlKHN0cilcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksKSwpLFxuICAgICAgICAgIHVzYWdlOiBQcm9taXNlLnJlc29sdmUodG90YWxVc2FnZSksXG4gICAgICAgICAgZXJyb3I6IGUsXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmnIDlkI7ov5Tlm57ml7bvvIzmnInlh6Dnp43mg4XlhrXvvJpcbiAgICAgKiAxLiDmsqHotoUgbWF4U3RlcCDml6Dlt6XlhbfosIPnlKhcbiAgICAgKiAyLiDotoXkuoYgbWF4U3RlcCDmnInlt6XlhbfosIPnlKhcbiAgICAgKiAzLiDotoXkuoYgbWF4U3RlcCDml6Dlt6XlhbfosIPnlKhcbiAgICAgKiBuZXZlci4g5rKh6LaFIG1heFN0ZXDvvIzmnInlt6XlhbfosIPnlKjvvIzov5nml7blgJnkvJrov5vliLDkuIrpnaLnmoQgd2hpbGUg5b6q546vIGJsb2NrIOS4reWkhOeQhlxuICAgICAqXG4gICAgICog5YW25LitIDEuIDMuIOWPr+S7peWQiOW5tu+8jOayoeacieW3peWFt+iwg+eUqOWwseW6lOivpeebtOaOpei/lOWbnu+8jOaXoOiuuiBtYXhTdGVwXG4gICAgICpcbiAgICAgKiDmiYDku6XlkIjlubbkuLrvvJpcbiAgICAgKiAxLiDml6Dlt6XlhbfosIPnlKhcbiAgICAgKiAyLiDmnInlt6XlhbfosIPnlKjvvIzkvYbmmK/otoXov4cgbWF4U3RlcFxuICAgICAqXG4gICAgICog6L+Z5Lik56eN5oOF5Ya16YO95rKh6L+b5YiwIHdoaWxlIOW+queOryBibG9jayDkuK3lpITnkIZcbiAgICAgKiDmiJHku6zpnIDopoEgYS4g5aGeIG1lc3NhZ2UgYi4g566XIFVzYWdlIGMuIOiwg+eUqCBvblN0ZXBGaW5pc2hcbiAgICAgKi9cblxuICAgIHJlYWRSZXN1bHQgPSBhd2FpdCByZWFkQ3VycmVudFN0cmVhbSgpXG5cbiAgICBpZiAocmVhZFJlc3VsdCkge1xuICAgICAgLy8g5oOF5Ya1IDIg5pyJ5bel5YW36LCD55So77yM5L2G5piv6LaF6L+HIG1heFN0ZXBcbiAgICAgIGNvbnN0IHsgbWVzc2FnZSwgdXNhZ2UgfSA9IHJlYWRSZXN1bHRcbiAgICAgIGFkZFRvVXNhZ2UodG90YWxVc2FnZSwgdXNhZ2UpXG5cbiAgICAgIGNvbnN0IG1lc3NhZ2VzID0gWy4uLmlucHV0Lm1lc3NhZ2VzLCBtZXNzYWdlXVxuXG4gICAgICBvblN0ZXBGaW5pc2goe1xuICAgICAgICBtZXNzYWdlczogbWVzc2FnZXMuc2xpY2UoKSxcbiAgICAgICAgZmluaXNoUmVhc29uOiAndG9vbF9jYWxsJyxcbiAgICAgICAgc3RlcFVzYWdlOiB1c2FnZSxcbiAgICAgICAgdGV4dDogbWVzc2FnZS5jb250ZW50LFxuICAgICAgICB0b29sQ2FsbDogbWVzc2FnZS50b29sX2NhbGxzWzBdLFxuICAgICAgICB0b3RhbFVzYWdlOiBPYmplY3QuYXNzaWduKHt9LCB0b3RhbFVzYWdlKSxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IFtzMSwgczJdID0gY3VycmVudFJlcy50ZWUoKVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbWVzc2FnZXM6IFByb21pc2UucmVzb2x2ZShbLi4uaW5wdXQubWVzc2FnZXMsIG1lc3NhZ2VdKSxcbiAgICAgICAgZGF0YVN0cmVhbTogY3JlYXRlQXN5bmNJdGVyYWJsZShzMSksXG4gICAgICAgIHRleHRTdHJlYW06IGNyZWF0ZUFzeW5jSXRlcmFibGUoczIucGlwZVRocm91Z2gobmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgICAgICAgdHJhbnNmb3JtKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgICAgICBjb25zdCBzdHIgPSBjaHVuaz8uY2hvaWNlcz8uWzBdPy5kZWx0YT8uY29udGVudFxuICAgICAgICAgICAgaWYgKHR5cGVvZiBzdHIgPT09ICdzdHJpbmcnKSBjb250cm9sbGVyLmVucXVldWUoc3RyKVxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLCksKSxcbiAgICAgICAgdXNhZ2U6IFByb21pc2UucmVzb2x2ZSh0b3RhbFVzYWdlKSxcbiAgICAgIH1cbiAgICB9XG4gICAgLy8g5oOF5Ya1IDEg5peg5bel5YW36LCD55SoXG4gICAgY29uc3QgbWVzc2FnZVByb21pc2UgPSBjcmVhdGVQcm9taXNlPEFycmF5PENoYXRNb2RlbE1lc3NhZ2U+PigpXG4gICAgY29uc3QgdXNhZ2VQcm9taXNlID0gY3JlYXRlUHJvbWlzZTxVc2FnZT4oKVxuXG4gICAgY29uc3QgbWVzc2FnZTogQ2hhdE1vZGVsTWVzc2FnZSA9IHtcbiAgICAgIHJvbGU6ICdhc3Npc3RhbnQnLFxuICAgICAgY29udGVudDogJycsXG4gICAgfVxuICAgIGxldCBmaW5pc2hSZWFzb24gPSAnJ1xuICAgIGNvbnN0IHN0ZXBVc2FnZTogVXNhZ2UgPSB7IGNvbXBsZXRpb25fdG9rZW5zOiAwLCBwcm9tcHRfdG9rZW5zOiAwLCB0b3RhbF90b2tlbnM6IDAgfVxuXG4gICAgY29uc3Qgb3JpZ2luU3RyZWFtID0gY3VycmVudFJlcy5waXBlVGhyb3VnaChuZXcgVHJhbnNmb3JtU3RyZWFtKHtcbiAgICAgIHRyYW5zZm9ybShjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICAvLyDkuI3mlLnlj5ggY2h1bmsg5YaF5a6577yM5Y+q5piv5oum5oiq5LiL5YaF5a655ou85pyA5ZCO55qE57uT5p6cXG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBjaHVuaz8uY2hvaWNlcz8uWzBdPy5kZWx0YT8uY29udGVudFxuICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgbWVzc2FnZS5jb250ZW50ICs9IGNvbnRlbnRcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlYXNvbiA9IGNodW5rPy5jaG9pY2VzPy5bMF0/LmZpbmlzaF9yZWFzb25cbiAgICAgICAgaWYgKHJlYXNvbikgZmluaXNoUmVhc29uID0gcmVhc29uXG5cbiAgICAgICAgLy8gVE9ETzog5LiN5ZCM5aSn5qih5Z6L55qEIHN0cmVhbSB1c2FnZSDmoLzlvI/kuI3kuIDmoLfvvIzlkI7nu63lj6/og73opoHosIPmlbQuXG4gICAgICAgIC8vIGh1bnl1YW4g5q+P5LiqIGNodW5rIOmDveS8muaciSB1c2FnZe+8jOmAkOatpeWinuWKoO+8jOS7peacgOWQjuS4gOS4queahOS4uuWHhjtcbiAgICAgICAgLy8gemhpcHUg5pyA5ZCOIGNodW5rIOS8muaciSB1c2FnZTtcbiAgICAgICAgaWYgKGNodW5rPy51c2FnZT8uY29tcGxldGlvbl90b2tlbnMpIHN0ZXBVc2FnZS5jb21wbGV0aW9uX3Rva2VucyA9IGNodW5rLnVzYWdlLmNvbXBsZXRpb25fdG9rZW5zXG4gICAgICAgIGlmIChjaHVuaz8udXNhZ2U/LnByb21wdF90b2tlbnMpIHN0ZXBVc2FnZS5wcm9tcHRfdG9rZW5zID0gY2h1bmsudXNhZ2UucHJvbXB0X3Rva2Vuc1xuICAgICAgICBpZiAoY2h1bms/LnVzYWdlPy50b3RhbF90b2tlbnMpIHN0ZXBVc2FnZS50b3RhbF90b2tlbnMgPSBjaHVuay51c2FnZS50b3RhbF90b2tlbnNcblxuICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY2h1bmspXG4gICAgICB9LFxuICAgICAgZmx1c2goKSB7XG4gICAgICAgIG1lc3NhZ2VQcm9taXNlLnJlcyhbLi4uaW5wdXQubWVzc2FnZXMsIG1lc3NhZ2VdKVxuICAgICAgICBhZGRUb1VzYWdlKHRvdGFsVXNhZ2UsIHN0ZXBVc2FnZSlcbiAgICAgICAgdXNhZ2VQcm9taXNlLnJlcyhPYmplY3QuYXNzaWduKHt9LCB0b3RhbFVzYWdlKSlcbiAgICAgICAgb25TdGVwRmluaXNoPy4oe1xuICAgICAgICAgIG1lc3NhZ2VzOiBbLi4uaW5wdXQubWVzc2FnZXMsIG1lc3NhZ2VdLFxuICAgICAgICAgIGZpbmlzaFJlYXNvbixcbiAgICAgICAgICB0ZXh0OiBtZXNzYWdlLmNvbnRlbnQsXG4gICAgICAgICAgc3RlcFVzYWdlLFxuICAgICAgICAgIHRvdGFsVXNhZ2U6IE9iamVjdC5hc3NpZ24oe30sIHRvdGFsVXNhZ2UpLFxuICAgICAgICB9KVxuICAgICAgfSxcbiAgICB9KSwpXG5cbiAgICBjb25zdCBbczEsIHMyXSA9IG9yaWdpblN0cmVhbS50ZWUoKVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIG1lc3NhZ2VzOiBtZXNzYWdlUHJvbWlzZS5wcm9taXNlLFxuICAgICAgZGF0YVN0cmVhbTogY3JlYXRlQXN5bmNJdGVyYWJsZShzMSksXG4gICAgICB0ZXh0U3RyZWFtOiBjcmVhdGVBc3luY0l0ZXJhYmxlKHMyLnBpcGVUaHJvdWdoKG5ldyBUcmFuc2Zvcm1TdHJlYW0oe1xuICAgICAgICB0cmFuc2Zvcm0oY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICBjb25zdCBjb250ZW50ID0gY2h1bms/LmNob2ljZXM/LlswXT8uZGVsdGE/LmNvbnRlbnRcbiAgICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoY29udGVudClcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9KSwpLCksXG4gICAgICB1c2FnZTogdXNhZ2VQcm9taXNlLnByb21pc2UsXG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGdldFRvb2xDYWxsRnJvbUdlbmVyYXRlKG91dHB1dDogRG9HZW5lcmF0ZU91dHB1dCkge1xuICBjb25zdCBjaG9pY2UgPSBvdXRwdXQ/LmNob2ljZXM/LlswXVxuXG4gIGlmICghY2hvaWNlKSByZXR1cm4gbnVsbFxuXG4gIGNvbnN0IHsgZmluaXNoX3JlYXNvbiwgbWVzc2FnZSB9ID0gY2hvaWNlXG5cbiAgaWYgKGZpbmlzaF9yZWFzb24gIT09ICd0b29sX2NhbGxzJykgcmV0dXJuIG51bGxcbiAgaWYgKCFtZXNzYWdlKSByZXR1cm4gbnVsbFxuICBpZiAoIWlzVG9vbENhbGxBc3Npc3RhbnRNZXNzYWdlKG1lc3NhZ2UpKSByZXR1cm4gbnVsbFxuXG4gIHJldHVybiBtZXNzYWdlLnRvb2xfY2FsbHNbMF1cbn1cblxuZnVuY3Rpb24gcHVzaE5ld01lc3NhZ2VzKFxuICBtZXNzYWdlczogQXJyYXk8Q2hhdE1vZGVsTWVzc2FnZT4sXG4gIGFzc2lzdGFudE1lc3NhZ2U6IFRvb2xDYWxsQXNzaXN0YW50TWVzc2FnZSxcbiAgdG9vbENhbGxSZXN1bHQ6IHVua25vd24sXG4pIHtcbiAgbWVzc2FnZXMucHVzaChhc3Npc3RhbnRNZXNzYWdlLCB7XG4gICAgcm9sZTogJ3Rvb2wnLFxuICAgIHRvb2xfY2FsbF9pZDogYXNzaXN0YW50TWVzc2FnZS50b29sX2NhbGxzWzBdLmlkLFxuICAgIGNvbnRlbnQ6IEpTT04uc3RyaW5naWZ5KHRvb2xDYWxsUmVzdWx0KSxcbiAgfSlcbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVhZEZ1bmN0aW9uQ2FsbFN0cmVhbShzdHJlYW06IFJlYWRhYmxlU3RyZWFtPEJhc2VEb1N0cmVhbU91dHB1dENodW5rPiwpOiBQcm9taXNlPHsgbWVzc2FnZTogVG9vbENhbGxBc3Npc3RhbnRNZXNzYWdlOyB1c2FnZTogVXNhZ2UgfSB8IG51bGw+IHtcbiAgY29uc3Qgc3RlcFVzYWdlOiBVc2FnZSA9IHsgY29tcGxldGlvbl90b2tlbnM6IDAsIHByb21wdF90b2tlbnM6IDAsIHRvdGFsX3Rva2VuczogMCB9XG4gIGNvbnN0IGFTdHJlYW0gPSBjcmVhdGVBc3luY0l0ZXJhYmxlKHN0cmVhbSlcblxuICBjb25zdCByZXRUb29sQ2FsbDogVG9vbENhbGwgPSB7XG4gICAgaWQ6ICcnLFxuICAgIGZ1bmN0aW9uOiB7XG4gICAgICBuYW1lOiAnJyxcbiAgICAgIGFyZ3VtZW50czogJycsXG4gICAgfSxcbiAgICB0eXBlOiAnJyxcbiAgfVxuXG4gIGNvbnN0IHJldE1lc3NhZ2U6IFRvb2xDYWxsQXNzaXN0YW50TWVzc2FnZSA9IHtcbiAgICByb2xlOiAnYXNzaXN0YW50JyxcbiAgICBjb250ZW50OiAnJyxcbiAgICB0b29sX2NhbGxzOiBbcmV0VG9vbENhbGxdLFxuICB9XG5cbiAgZm9yIGF3YWl0IChjb25zdCBjaHVuayBvZiBhU3RyZWFtKSB7XG4gICAgY29uc3QgY2hvaWNlID0gY2h1bms/LmNob2ljZXNbMF1cbiAgICBpZiAoIWNob2ljZSkgcmV0dXJuIG51bGxcblxuICAgIGNvbnN0IHsgZmluaXNoX3JlYXNvbiwgZGVsdGEgfSA9IGNob2ljZVxuXG4gICAgaWYgKGZpbmlzaF9yZWFzb24gIT09ICd0b29sX2NhbGxzJykgcmV0dXJuIG51bGxcbiAgICBpZiAoIWRlbHRhKSBjb250aW51ZVxuXG4gICAgaWYgKGRlbHRhLmNvbnRlbnQpIHJldE1lc3NhZ2UuY29udGVudCArPSBkZWx0YS5jb250ZW50XG5cbiAgICBpZiAoISgndG9vbF9jYWxscycgaW4gZGVsdGEpKSBjb250aW51ZVxuICAgIGNvbnN0IHRvb2xDYWxsID0gZGVsdGE/LnRvb2xfY2FsbHM/LlswXVxuICAgIGlmICh0b29sQ2FsbD8uaWQpIHJldFRvb2xDYWxsLmlkID0gdG9vbENhbGwuaWRcbiAgICBpZiAodG9vbENhbGw/LnR5cGUpIHJldFRvb2xDYWxsLnR5cGUgPSB0b29sQ2FsbC50eXBlXG4gICAgaWYgKHRvb2xDYWxsPy5mdW5jdGlvbj8ubmFtZSkgcmV0VG9vbENhbGwuZnVuY3Rpb24ubmFtZSA9IHRvb2xDYWxsLmZ1bmN0aW9uLm5hbWVcbiAgICBpZiAodG9vbENhbGw/LmZ1bmN0aW9uPy5hcmd1bWVudHMpIHJldFRvb2xDYWxsLmZ1bmN0aW9uLmFyZ3VtZW50cyArPSB0b29sQ2FsbC5mdW5jdGlvbi5hcmd1bWVudHNcblxuICAgIC8vIFRPRE86IOS4jeWQjOWkp+aooeWei+eahCBzdHJlYW0gdXNhZ2Ug5qC85byP5LiN5LiA5qC377yM5ZCO57ut5Y+v6IO96KaB6LCD5pW0LlxuICAgIC8vIGh1bnl1YW4g5q+P5LiqIGNodW5rIOmDveS8muaciSB1c2FnZe+8jOmAkOatpeWinuWKoO+8jOS7peacgOWQjuS4gOS4queahOS4uuWHhjtcbiAgICAvLyB6aGlwdSDmnIDlkI4gY2h1bmsg5Lya5pyJIHVzYWdlO1xuICAgIGlmIChjaHVuaz8udXNhZ2U/LmNvbXBsZXRpb25fdG9rZW5zKSBzdGVwVXNhZ2UuY29tcGxldGlvbl90b2tlbnMgPSBjaHVuay51c2FnZS5jb21wbGV0aW9uX3Rva2Vuc1xuICAgIGlmIChjaHVuaz8udXNhZ2U/LnByb21wdF90b2tlbnMpIHN0ZXBVc2FnZS5wcm9tcHRfdG9rZW5zID0gY2h1bmsudXNhZ2UucHJvbXB0X3Rva2Vuc1xuICAgIGlmIChjaHVuaz8udXNhZ2U/LnRvdGFsX3Rva2Vucykgc3RlcFVzYWdlLnRvdGFsX3Rva2VucyA9IGNodW5rLnVzYWdlLnRvdGFsX3Rva2Vuc1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBtZXNzYWdlOiByZXRNZXNzYWdlLFxuICAgIHVzYWdlOiBzdGVwVXNhZ2UsXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHRvb2xNYXAgPSBuZXcgTWFwPHN0cmluZywgQ2FsbGFibGVGdW5jdGlvbj4oKVxuXG5mdW5jdGlvbiBjYWxsVG9vbCh0b29sQ2FsbDogVG9vbENhbGwpIHtcbiAgcmV0dXJuIHRvb2xNYXAuZ2V0KHRvb2xDYWxsLmZ1bmN0aW9uLm5hbWUpKEpTT04ucGFyc2UodG9vbENhbGwuZnVuY3Rpb24uYXJndW1lbnRzKSlcbn1cblxuZnVuY3Rpb24gY3JlYXRlU29saWRVc2FnZSh1c2FnZT86IFBhcnRpYWw8VXNhZ2U+KTogVXNhZ2Uge1xuICByZXR1cm4ge1xuICAgIGNvbXBsZXRpb25fdG9rZW5zOiB1c2FnZT8uY29tcGxldGlvbl90b2tlbnMgPz8gMCxcbiAgICBwcm9tcHRfdG9rZW5zOiB1c2FnZT8ucHJvbXB0X3Rva2VucyA/PyAwLFxuICAgIHRvdGFsX3Rva2VuczogdXNhZ2U/LnRvdGFsX3Rva2VucyA/PyAwLFxuICB9XG59XG5cbmZ1bmN0aW9uIGFkZFRvVXNhZ2UodGFyZ2V0VXNhZ2U6IFVzYWdlLCBzb3VyY2VVc2FnZTogVXNhZ2UpIHtcbiAgdGFyZ2V0VXNhZ2UuY29tcGxldGlvbl90b2tlbnMgKz0gc291cmNlVXNhZ2UuY29tcGxldGlvbl90b2tlbnNcbiAgdGFyZ2V0VXNhZ2UucHJvbXB0X3Rva2VucyArPSBzb3VyY2VVc2FnZS5wcm9tcHRfdG9rZW5zXG4gIHRhcmdldFVzYWdlLnRvdGFsX3Rva2VucyArPSBzb3VyY2VVc2FnZS50b3RhbF90b2tlbnNcbn1cbiJdfQ==
481
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kZWxzL21vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsa0NBTWlCO0FBd0NqQixTQUFTLFlBQVksQ0FBQyxHQUFvQjs7SUFDaEMsSUFBQSxZQUFZLEdBQW9ELEdBQUcsYUFBdkQsRUFBRSxXQUFXLEdBQXVDLEdBQUcsWUFBMUMsRUFBRSxRQUFRLEdBQTZCLEdBQUcsU0FBaEMsRUFBRSxJQUFJLEdBQXVCLEdBQUcsS0FBMUIsRUFBRSxVQUFVLEdBQVcsR0FBRyxXQUFkLEVBQUssQ0FBQyxVQUFLLEdBQUcsRUFBckUsaUVBQStELENBQUYsQ0FBUTtJQUUzRSxJQUFJLFFBQVEsSUFBSSxJQUFJLElBQUksUUFBUSxHQUFHLENBQUMsRUFBRTtRQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUE7S0FDdEQ7SUFFRCxPQUFPO1FBQ0wsRUFBRSxZQUFZLGNBQUEsRUFBRSxXQUFXLGFBQUEsRUFBRSxRQUFRLFVBQUEsRUFBRTs4QkFFbEMsQ0FBQyxLQUNKLEtBQUssRUFBRSxNQUFBLENBQUMsQ0FBQyxLQUFLLDBDQUFFLEdBQUcsQ0FBQyxVQUFDLElBQUk7Z0JBQ3ZCLElBQUksSUFBSSxJQUFJLElBQUksRUFBRTtvQkFDaEIsT0FBTyxJQUFBLCtCQUF1QixFQUFDLElBQUksQ0FBQyxDQUFBO2lCQUNyQztnQkFDRCxPQUFPLElBQUksQ0FBQTtZQUNiLENBQUMsQ0FBQyxFQUNGLEtBQUssRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQ3BDLFdBQVcsRUFBRSxVQUFVLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFV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V0FBVyxDQUFDLFlBQVksSUFBSSxXQUFXLENBQUMsWUFBWSxDQUFBO0FBQ3RELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cbi8qIGVzbGludC1kaXNhYmxlIGVxZXFlcSAqL1xuaW1wb3J0IHtcbiAgY3JlYXRlQXN5bmNJdGVyYWJsZSxcbiAgVHJhbnNmb3JtU3RyZWFtLFxuICBjcmVhdGVQcm9taXNlLFxuICBpc1Rvb2xDYWxsQXNzaXN0YW50TWVzc2FnZSxcbiAgZnVuY3Rpb25Ub29sVG9Nb2RlbFRvb2wsXG59IGZyb20gJy4uL3V0aWxzJ1xuaW1wb3J0IHtcbiAgQmFzZUNoYXRNb2RlbElucHV0LFxuICBCYXNlRG9TdHJlYW1PdXRwdXRDaHVuayxcbiAgRG9TdHJlYW1PdXRwdXQsXG4gIERvR2VuZXJhdGVPdXRwdXQsXG4gIFNpbXBsZUNoYXRNb2RlbCxcbiAgVG9vbENhbGwsXG4gIENoYXRNb2RlbE1lc3NhZ2UsXG4gIEFzeW5jSXRlcmFibGVSZWFkYWJsZVN0cmVhbSxcbiAgVXNhZ2UsXG4gIFRvb2xDYWxsQXNzaXN0YW50TWVzc2FnZSxcbiAgTW9kZWxUb29sLFxuICBGdW5jdGlvblRvb2wsXG4gIFJlcU9wdGlvbnMsXG59IGZyb20gJy4uL3R5cGUnXG5cbnR5cGUgUmVhY3RNb2RlbElucHV0ID0gUmVhY3RQcm9wcyAmXG5PbWl0PEJhc2VDaGF0TW9kZWxJbnB1dCwgJ3Rvb2xzJz4gJiB7XG4gIHRvb2xzPzogQXJyYXk8TW9kZWxUb29sIHwgRnVuY3Rpb25Ub29sPlxuICB0b3BQPzogbnVtYmVyXG4gIHRvb2xDaG9pY2U/OiAnbm9uZScgfCAnYXV0bycgfCAnY3VzdG9tJ1xufVxuXG5pbnRlcmZhY2UgSU9uU3RlcEZpbmlzaCB7XG4gIG1lc3NhZ2VzOiBBcnJheTxDaGF0TW9kZWxNZXNzYWdlPlxuICB0ZXh0Pzogc3RyaW5nXG4gIHRvb2xDYWxsPzogVG9vbENhbGxcbiAgdG9vbFJlc3VsdD86IHVua25vd25cbiAgZmluaXNoUmVhc29uPzogc3RyaW5nXG4gIHN0ZXBVc2FnZT86IFVzYWdlXG4gIHRvdGFsVXNhZ2U/OiBVc2FnZVxufVxuXG5pbnRlcmZhY2UgUmVhY3RQcm9wcyB7XG4gIG1heFN0ZXBzPzogbnVtYmVyXG4gIG9uU3RlcEZpbmlzaD86IChwcm9wOiBJT25TdGVwRmluaXNoKSA9PiB1bmtub3duXG4gIGFib3J0U2lnbmFsPzogQWJvcnRTaWduYWwgLy8gVE9ETzog5a6e546wIGFib3J0U2lnbmFsXG59XG5cbmZ1bmN0aW9uIHByb2Nlc3NJbnB1dChvYmo6IFJlYWN0TW9kZWxJbnB1dCk6IFtSZWFjdFByb3BzLCBCYXNlQ2hhdE1vZGVsSW5wdXRdIHtcbiAgY29uc3QgeyBvblN0ZXBGaW5pc2gsIGFib3J0U2lnbmFsLCBtYXhTdGVwcywgdG9wUCwgdG9vbENob2ljZSwgLi4uYiB9ID0gb2JqXG5cbiAgaWYgKG1heFN0ZXBzICE9IG51bGwgJiYgbWF4U3RlcHMgPCAxKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdgbWF4U3RlcHNgIG11c2UgYmUgZ3JlYXRlciB0aGFuIDAuJylcbiAgfVxuXG4gIHJldHVybiBbXG4gICAgeyBvblN0ZXBGaW5pc2gsIGFib3J0U2lnbmFsLCBtYXhTdGVwcyB9LFxuICAgIHtcbiAgICAgIC4uLmIsXG4gICAgICB0b29sczogYi50b29scz8ubWFwKCh0b29sKSA9PiB7XG4gICAgICAgIGlmICgnZm4nIGluIHRvb2wpIHtcbiAgICAgICAgICByZXR1cm4gZnVuY3Rpb25Ub29sVG9Nb2RlbFRvb2wodG9vbClcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdG9vbFxuICAgICAgfSksXG4gICAgICB0b3BfcDogdG9wUCAhPSBudWxsID8gdG9wUCA6IGIudG9wX3AsXG4gICAgICB0b29sX2Nob2ljZTogdG9vbENob2ljZSAhPSBudWxsID8gdG9vbENob2ljZSA6IGIudG9vbF9jaG9pY2UsXG4gICAgfSxcbiAgXVxufVxuXG5leHBvcnQgY2xhc3MgUmVhY3RNb2RlbCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbW9kZWw6IFNpbXBsZUNoYXRNb2RlbCkge31cblxuICBwdWJsaWMgYXN5bmMgZ2VuZXJhdGVUZXh0KF9pbnB1dDogUmVhY3RNb2RlbElucHV0LCBvcHRpb25zPzogUmVxT3B0aW9ucyk6IFByb21pc2U8e1xuICAgIHRleHQ6IHN0cmluZ1xuICAgIG1lc3NhZ2VzOiBBcnJheTxDaGF0TW9kZWxNZXNzYWdlPlxuICAgIHVzYWdlOiBVc2FnZVxuICAgIHJhd1Jlc3BvbnNlczogQXJyYXk8dW5rbm93bj5cbiAgICBlcnJvcj86IGFueVxuICB9PiB7XG4gICAgY29uc3QgcmF3UmVzcG9uc2VzID0gW11cbiAgICBjb25zdCB0b3RhbFVzYWdlOiBVc2FnZSA9IHsgY29tcGxldGlvbl90b2tlbnM6IDAsIHByb21wdF90b2tlbnM6IDAsIHRvdGFsX3Rva2VuczogMCB9XG5cbiAgICBjb25zdCBbeyBvblN0ZXBGaW5pc2gsIG1heFN0ZXBzID0gMTAgfSwgaW5wdXRdID0gcHJvY2Vzc0lucHV0KF9pbnB1dClcblxuICAgIGNvbnN0IGRvR2VuZXJhdGUgPSAoKSA9PiB0aGlzLm1vZGVsLmRvR2VuZXJhdGUoaW5wdXQsIG9wdGlvbnMpIC8vIOWQjue7reS7o+eggeS8muebtOaOpeWvuSBpbnB1dC5tZXNzYWdlcyDljp/lnLDkv67mlLnvvIzov5nph4zkuIDnm7TnlKjlkIzkuIDkuKrlr7nosaHlsLHooYxcbiAgICBsZXQgY3VycmVudFJlcyA9IGF3YWl0IGRvR2VuZXJhdGUoKVxuICAgIGxldCBjdXJyZW50U3RlcCA9IDFcbiAgICBjdXJyZW50UmVzLnJhd1Jlc3BvbnNlICYmIHJhd1Jlc3BvbnNlcy5wdXNoKGN1cnJlbnRSZXMucmF3UmVzcG9uc2UpXG5cbiAgICBsZXQgdG9vbENhbGw6IFRvb2xDYWxsIHwgbnVsbCA9IG51bGxcblxuICAgIC8vIFRPRE86IOS4gOasoeWvueivneacieWkmuS4qiB0b29sIGNhbGw/IOebruWJjeayoeaciei/meenjeeOsOixoe+8jOaaguaXtuS4jeWkhOeQhlxuICAgIHdoaWxlIChjdXJyZW50U3RlcCA8IG1heFN0ZXBzICYmICh0b29sQ2FsbCA9IGdldFRvb2xDYWxsRnJvbUdlbmVyYXRlKGN1cnJlbnRSZXMpKSAhPSBudWxsKSB7XG4gICAgICBjb25zdCBzdGVwVXNhZ2UgPSBjcmVhdGVTb2xpZFVzYWdlKGN1cnJlbnRSZXMudXNhZ2UpXG4gICAgICBhZGRUb1VzYWdlKHRvdGFsVXNhZ2UsIHN0ZXBVc2FnZSlcblxuICAgICAgLy8g5b2T5Yik5pat6ZyA6KaB5bel5YW36LCD55So5pe2XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB0b29sQ2FsbFJlc3VsdCA9IGF3YWl0IGNhbGxUb29sKHRvb2xDYWxsKSAvLyDosIPnlKhcblxuICAgICAgICBjb25zdCBjaG9pY2UgPSBjdXJyZW50UmVzLmNob2ljZXNbMF0gLy8gZ2V0VG9vbENhbGxGcm9tR2VuZXJhdGUg5L+d6K+B5LqGIGNob2ljZSDogq/lrprlrZjlnKhcblxuICAgICAgICBhd2FpdCBvblN0ZXBGaW5pc2g/Lih7XG4gICAgICAgICAgZmluaXNoUmVhc29uOiBjaG9pY2UuZmluaXNoX3JlYXNvbixcbiAgICAgICAgICBtZXNzYWdlczogaW5wdXQubWVzc2FnZXMuc2xpY2UoKSxcbiAgICAgICAgICB0ZXh0OiBjaG9pY2UubWVzc2FnZS5jb250ZW50LFxuICAgICAgICAgIHRvb2xDYWxsLFxuICAgICAgICAgIHRvb2xSZXN1bHQ6IHRvb2xDYWxsUmVzdWx0LFxuICAgICAgICAgIHN0ZXBVc2FnZSxcbiAgICAgICAgICB0b3RhbFVzYWdlOiBPYmplY3QuYXNzaWduKHt9LCB0b3RhbFVzYWdlKSxcbiAgICAgICAgfSlcblxuICAgICAgICBwdXNoTmV3TWVzc2FnZXMoaW5wdXQubWVzc2FnZXMsIGNob2ljZS5tZXNzYWdlIGFzIFRvb2xDYWxsQXNzaXN0YW50TWVzc2FnZSwgdG9vbENhbGxSZXN1bHQpIC8vIOeUqOiwg+eUqOe7k+aenOS/ruaUueacgOaWsOeahOa2iOaBr1xuXG4gICAgICAgIGN1cnJlbnRSZXMgPSBhd2FpdCBkb0dlbmVyYXRlKCkgLy8g5b6q546v5a+56K+dXG4gICAgICAgIGN1cnJlbnRSZXMucmF3UmVzcG9uc2UgJiYgcmF3UmVzcG9uc2VzLnB1c2goY3VycmVudFJlcy5yYXdSZXNwb25zZSlcbiAgICAgICAgY3VycmVudFN0ZXAgKz0gMVxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHRleHQ6ICcnLFxuICAgICAgICAgIG1lc3NhZ2VzOiBpbnB1dC5tZXNzYWdlcyxcbiAgICAgICAgICB1c2FnZTogdG90YWxVc2FnZSxcbiAgICAgICAgICBlcnJvcjogZSxcbiAgICAgICAgICByYXdSZXNwb25zZXMsXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBsYXN0Q2hvaWNlID0gY3VycmVudFJlcz8uY2hvaWNlcz8uWzBdXG4gICAgY29uc3QgbGFzdE1lc3NhZ2UgPSBsYXN0Q2hvaWNlPy5tZXNzYWdlXG5cbiAgICBjb25zdCB0ZXh0ID0gbGFzdE1lc3NhZ2U/LmNvbnRlbnQgPz8gJydcbiAgICBjb25zdCBtZXNzYWdlcyA9IGxhc3RNZXNzYWdlID8gWy4uLmlucHV0Lm1lc3NhZ2VzLCBsYXN0TWVzc2FnZV0gOiBpbnB1dC5tZXNzYWdlc1xuXG4gICAgY29uc3Qgc3RlcFVzYWdlID0gY3JlYXRlU29saWRVc2FnZShjdXJyZW50UmVzLnVzYWdlKVxuICAgIGFkZFRvVXNhZ2UodG90YWxVc2FnZSwgc3RlcFVzYWdlKVxuXG4gICAgYXdhaXQgb25TdGVwRmluaXNoPy4oe1xuICAgICAgZmluaXNoUmVhc29uOiBsYXN0Q2hvaWNlLmZpbmlzaF9yZWFzb24sXG4gICAgICBtZXNzYWdlczogbWVzc2FnZXMuc2xpY2UoKSxcbiAgICAgIHRleHQsXG4gICAgICB0b29sQ2FsbDogZ2V0VG9vbENhbGxGcm9tR2VuZXJhdGUoY3VycmVudFJlcyksXG4gICAgICB0b29sUmVzdWx0OiBudWxsLFxuICAgICAgc3RlcFVzYWdlLFxuICAgICAgdG90YWxVc2FnZTogT2JqZWN0LmFzc2lnbih7fSwgdG90YWxVc2FnZSksXG4gICAgfSlcblxuICAgIHJldHVybiB7XG4gICAgICB0ZXh0LFxuICAgICAgbWVzc2FnZXMsXG4gICAgICB1c2FnZTogdG90YWxVc2FnZSxcbiAgICAgIHJhd1Jlc3BvbnNlcyxcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc3RyZWFtVGV4dChfaW5wdXQ6IFJlYWN0TW9kZWxJbnB1dCwgb3B0aW9ucz86IFJlcU9wdGlvbnMpOiBQcm9taXNlPHtcbiAgICBkYXRhU3RyZWFtOiBEb1N0cmVhbU91dHB1dFxuICAgIHRleHRTdHJlYW06IEFzeW5jSXRlcmFibGVSZWFkYWJsZVN0cmVhbTxzdHJpbmc+XG4gICAgbWVzc2FnZXM6IFByb21pc2U8QXJyYXk8Q2hhdE1vZGVsTWVzc2FnZT4+XG4gICAgdXNhZ2U6IFByb21pc2U8VXNhZ2U+XG4gICAgZXJyb3I/OiBhbnlcbiAgfT4ge1xuICAgIGNvbnN0IHRvdGFsVXNhZ2U6IFVzYWdlID0geyBjb21wbGV0aW9uX3Rva2VuczogMCwgcHJvbXB0X3Rva2VuczogMCwgdG90YWxfdG9rZW5zOiAwIH1cblxuICAgIGNvbnN0IFt7IG9uU3RlcEZpbmlzaCwgbWF4U3RlcHMgPSAxMCB9LCBpbnB1dF0gPSBwcm9jZXNzSW5wdXQoX2lucHV0KVxuICAgIGNvbnN0IGRvU3RyZWFtID0gKCkgPT4gdGhpcy5tb2RlbC5kb1N0cmVhbShpbnB1dCwgb3B0aW9ucykgLy8g5ZCO57ut5Luj56CB5Lya55u05o6l5a+5IGlucHV0Lm1lc3NhZ2VzIOWOn+WcsOS/ruaUue+8jOi/memHjOS4gOebtOeUqOWQjOS4gOS4quWvueixoeWwseihjFxuICAgIGxldCBjdXJyZW50UmVzID0gYXdhaXQgZG9TdHJlYW0oKVxuICAgIGNvbnN0IGN1cnJlbnRTdGVwID0gMVxuICAgIGxldCByZWFkUmVzdWx0OiB7IG1lc3NhZ2U6IFRvb2xDYWxsQXNzaXN0YW50TWVzc2FnZTsgdXNhZ2U6IFVzYWdlIH0gfCBudWxsID0gbnVsbFxuXG4gICAgY29uc3QgcmVhZEN1cnJlbnRTdHJlYW0gPSAoKSA9PiB7XG4gICAgICBjb25zdCBbb2xkU3RyZWFtLCBuZXdTdHJlYW1dID0gY3VycmVudFJlcy50ZWUoKVxuICAgICAgY3VycmVudFJlcyA9IGNyZWF0ZUFzeW5jSXRlcmFibGUob2xkU3RyZWFtKVxuICAgICAgcmV0dXJuIHJlYWRGdW5jdGlvbkNhbGxTdHJlYW0obmV3U3RyZWFtKVxuICAgIH1cblxuICAgIC8vIFRPRE86IOS4gOasoeWvueivneacieWkmuS4qiB0b29sIGNhbGw/IOebruWJjeayoeaciei/meenjeeOsOixoe+8jOaaguaXtuS4jeWkhOeQhlxuICAgIC8vIOi/memHjOWSjCBnZW5lcmF0ZVRleHQg5LiN5aSq5LiA5qC377yM6Zmk5LqG6Kej5p6Q5Ye6IHRvb2xDYWxsIOWklu+8jOi/mOmcgOimgeS7jua1geS4reaehOmAoOWHuuWFtuS7luWujOaVtOeahOS/oeaBr1xuICAgIHdoaWxlIChjdXJyZW50U3RlcCA8IG1heFN0ZXBzICYmIChyZWFkUmVzdWx0ID0gYXdhaXQgcmVhZEN1cnJlbnRTdHJlYW0oKSkgIT0gbnVsbCkge1xuICAgICAgY29uc3QgeyBtZXNzYWdlOiBhc3Npc3RhbnRNZXNzYWdlLCB1c2FnZTogc3RlcFVzYWdlIH0gPSByZWFkUmVzdWx0XG4gICAgICBhZGRUb1VzYWdlKHRvdGFsVXNhZ2UsIHN0ZXBVc2FnZSlcblxuICAgICAgLy8g5b2T5Yik5pat6ZyA6KaB5bel5YW36LCD55So5pe2XG4gICAgICBjb25zdCB0b29sQ2FsbCA9IGFzc2lzdGFudE1lc3NhZ2UudG9vbF9jYWxscz8uWzBdIC8vIOi/meS4qiB0b29sQ2FsbCDkuIDlrprlrZjlnKhcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHRvb2xDYWxsUmVzdWx0ID0gYXdhaXQgY2FsbFRvb2wodG9vbENhbGwpIC8vIOiwg+eUqFxuXG4gICAgICAgIGF3YWl0IG9uU3RlcEZpbmlzaD8uKHtcbiAgICAgICAgICBmaW5pc2hSZWFzb246ICd0b29sX2NhbGxzJyxcbiAgICAgICAgICBtZXNzYWdlczogaW5wdXQubWVzc2FnZXMuc2xpY2UoKSxcbiAgICAgICAgICB0ZXh0OiBhc3Npc3RhbnRNZXNzYWdlLmNvbnRlbnQsXG4gICAgICAgICAgdG9vbENhbGwsXG4gICAgICAgICAgdG9vbFJlc3VsdDogdG9vbENhbGxSZXN1bHQsXG4gICAgICAgICAgc3RlcFVzYWdlLFxuICAgICAgICAgIHRvdGFsVXNhZ2U6IE9iamVjdC5hc3NpZ24oe30sIHRvdGFsVXNhZ2UpLFxuICAgICAgICB9KVxuXG4gICAgICAgIHB1c2hOZXdNZXNzYWdlcyhpbnB1dC5tZXNzYWdlcywgYXNzaXN0YW50TWVzc2FnZSwgdG9vbENhbGxSZXN1bHQpIC8vIOeUqOiwg+eUqOe7k+aenOS/ruaUueacgOaWsOeahOa2iOaBr1xuICAgICAgICBjdXJyZW50UmVzID0gYXdhaXQgZG9TdHJlYW0oKSAvLyDlvqrnjq/lr7nor51cbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc3QgW3MxLCBzMl0gPSBjdXJyZW50UmVzLnRlZSgpXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbWVzc2FnZXM6IFByb21pc2UucmVzb2x2ZShpbnB1dC5tZXNzYWdlcyksXG4gICAgICAgICAgZGF0YVN0cmVhbTogY3JlYXRlQXN5bmNJdGVyYWJsZShzMSksXG4gICAgICAgICAgdGV4dFN0cmVhbTogY3JlYXRlQXN5bmNJdGVyYWJsZShzMi5waXBlVGhyb3VnaChuZXcgVHJhbnNmb3JtU3RyZWFtKHtcbiAgICAgICAgICAgIHRyYW5zZm9ybShjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICAgICAgICBjb25zdCBzdHIgPSBjaHVuaz8uY2hvaWNlcz8uWzBdPy5kZWx0YT8uY29udGVudFxuICAgICAgICAgICAgICBpZiAodHlwZW9mIHN0ciA9PT0gJ3N0cmluZycpIGNvbnRyb2xsZXIuZW5xdWV1ZShzdHIpXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLCksKSxcbiAgICAgICAgICB1c2FnZTogUHJvbWlzZS5yZXNvbHZlKHRvdGFsVXNhZ2UpLFxuICAgICAgICAgIGVycm9yOiBlLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5pyA5ZCO6L+U5Zue5pe277yM5pyJ5Yeg56eN5oOF5Ya177yaXG4gICAgICogMS4g5rKh6LaFIG1heFN0ZXAg5peg5bel5YW36LCD55SoXG4gICAgICogMi4g6LaF5LqGIG1heFN0ZXAg5pyJ5bel5YW36LCD55SoXG4gICAgICogMy4g6LaF5LqGIG1heFN0ZXAg5peg5bel5YW36LCD55SoXG4gICAgICogbmV2ZXIuIOayoei2hSBtYXhTdGVw77yM5pyJ5bel5YW36LCD55So77yM6L+Z5pe25YCZ5Lya6L+b5Yiw5LiK6Z2i55qEIHdoaWxlIOW+queOryBibG9jayDkuK3lpITnkIZcbiAgICAgKlxuICAgICAqIOWFtuS4rSAxLiAzLiDlj6/ku6XlkIjlubbvvIzmsqHmnInlt6XlhbfosIPnlKjlsLHlupTor6Xnm7TmjqXov5Tlm57vvIzml6DorrogbWF4U3RlcFxuICAgICAqXG4gICAgICog5omA5Lul5ZCI5bm25Li677yaXG4gICAgICogMS4g5peg5bel5YW36LCD55SoXG4gICAgICogMi4g5pyJ5bel5YW36LCD55So77yM5L2G5piv6LaF6L+HIG1heFN0ZXBcbiAgICAgKlxuICAgICAqIOi/meS4pOenjeaDheWGtemDveayoei/m+WIsCB3aGlsZSDlvqrnjq8gYmxvY2sg5Lit5aSE55CGXG4gICAgICog5oiR5Lus6ZyA6KaBIGEuIOWhniBtZXNzYWdlIGIuIOeulyBVc2FnZSBjLiDosIPnlKggb25TdGVwRmluaXNoXG4gICAgICovXG5cbiAgICByZWFkUmVzdWx0ID0gYXdhaXQgcmVhZEN1cnJlbnRTdHJlYW0oKVxuXG4gICAgaWYgKHJlYWRSZXN1bHQpIHtcbiAgICAgIC8vIOaDheWGtSAyIOacieW3peWFt+iwg+eUqO+8jOS9huaYr+i2hei/hyBtYXhTdGVwXG4gICAgICBjb25zdCB7IG1lc3NhZ2UsIHVzYWdlIH0gPSByZWFkUmVzdWx0XG4gICAgICBhZGRUb1VzYWdlKHRvdGFsVXNhZ2UsIHVzYWdlKVxuXG4gICAgICBjb25zdCBtZXNzYWdlcyA9IFsuLi5pbnB1dC5tZXNzYWdlcywgbWVzc2FnZV1cblxuICAgICAgb25TdGVwRmluaXNoKHtcbiAgICAgICAgbWVzc2FnZXM6IG1lc3NhZ2VzLnNsaWNlKCksXG4gICAgICAgIGZpbmlzaFJlYXNvbjogJ3Rvb2xfY2FsbCcsXG4gICAgICAgIHN0ZXBVc2FnZTogdXNhZ2UsXG4gICAgICAgIHRleHQ6IG1lc3NhZ2UuY29udGVudCxcbiAgICAgICAgdG9vbENhbGw6IG1lc3NhZ2UudG9vbF9jYWxsc1swXSxcbiAgICAgICAgdG90YWxVc2FnZTogT2JqZWN0LmFzc2lnbih7fSwgdG90YWxVc2FnZSksXG4gICAgICB9KVxuXG4gICAgICBjb25zdCBbczEsIHMyXSA9IGN1cnJlbnRSZXMudGVlKClcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1lc3NhZ2VzOiBQcm9taXNlLnJlc29sdmUoWy4uLmlucHV0Lm1lc3NhZ2VzLCBtZXNzYWdlXSksXG4gICAgICAgIGRhdGFTdHJlYW06IGNyZWF0ZUFzeW5jSXRlcmFibGUoczEpLFxuICAgICAgICB0ZXh0U3RyZWFtOiBjcmVhdGVBc3luY0l0ZXJhYmxlKHMyLnBpcGVUaHJvdWdoKG5ldyBUcmFuc2Zvcm1TdHJlYW0oe1xuICAgICAgICAgIHRyYW5zZm9ybShjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICAgICAgY29uc3Qgc3RyID0gY2h1bms/LmNob2ljZXM/LlswXT8uZGVsdGE/LmNvbnRlbnRcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygc3RyID09PSAnc3RyaW5nJykgY29udHJvbGxlci5lbnF1ZXVlKHN0cilcbiAgICAgICAgICB9LFxuICAgICAgICB9KSwpLCksXG4gICAgICAgIHVzYWdlOiBQcm9taXNlLnJlc29sdmUodG90YWxVc2FnZSksXG4gICAgICB9XG4gICAgfVxuICAgIC8vIOaDheWGtSAxIOaXoOW3peWFt+iwg+eUqFxuICAgIGNvbnN0IG1lc3NhZ2VQcm9taXNlID0gY3JlYXRlUHJvbWlzZTxBcnJheTxDaGF0TW9kZWxNZXNzYWdlPj4oKVxuICAgIGNvbnN0IHVzYWdlUHJvbWlzZSA9IGNyZWF0ZVByb21pc2U8VXNhZ2U+KClcblxuICAgIGNvbnN0IG1lc3NhZ2U6IENoYXRNb2RlbE1lc3NhZ2UgPSB7XG4gICAgICByb2xlOiAnYXNzaXN0YW50JyxcbiAgICAgIGNvbnRlbnQ6ICcnLFxuICAgIH1cbiAgICBsZXQgZmluaXNoUmVhc29uID0gJydcbiAgICBjb25zdCBzdGVwVXNhZ2U6IFVzYWdlID0geyBjb21wbGV0aW9uX3Rva2VuczogMCwgcHJvbXB0X3Rva2VuczogMCwgdG90YWxfdG9rZW5zOiAwIH1cblxuICAgIGNvbnN0IG9yaWdpblN0cmVhbSA9IGN1cnJlbnRSZXMucGlwZVRocm91Z2gobmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgICB0cmFuc2Zvcm0oY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgLy8g5LiN5pS55Y+YIGNodW5rIOWGheWuue+8jOWPquaYr+aLpuaIquS4i+WGheWuueaLvOacgOWQjueahOe7k+aenFxuICAgICAgICBjb25zdCBjb250ZW50ID0gY2h1bms/LmNob2ljZXM/LlswXT8uZGVsdGE/LmNvbnRlbnRcbiAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIG1lc3NhZ2UuY29udGVudCArPSBjb250ZW50XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZWFzb24gPSBjaHVuaz8uY2hvaWNlcz8uWzBdPy5maW5pc2hfcmVhc29uXG4gICAgICAgIGlmIChyZWFzb24pIGZpbmlzaFJlYXNvbiA9IHJlYXNvblxuXG4gICAgICAgIC8vIFRPRE86IOS4jeWQjOWkp+aooeWei+eahCBzdHJlYW0gdXNhZ2Ug5qC85byP5LiN5LiA5qC377yM5ZCO57ut5Y+v6IO96KaB6LCD5pW0LlxuICAgICAgICAvLyBodW55dWFuIOavj+S4qiBjaHVuayDpg73kvJrmnIkgdXNhZ2XvvIzpgJDmraXlop7liqDvvIzku6XmnIDlkI7kuIDkuKrnmoTkuLrlh4Y7XG4gICAgICAgIC8vIHpoaXB1IOacgOWQjiBjaHVuayDkvJrmnIkgdXNhZ2U7XG4gICAgICAgIGlmIChjaHVuaz8udXNhZ2U/LmNvbXBsZXRpb25fdG9rZW5zKSBzdGVwVXNhZ2UuY29tcGxldGlvbl90b2tlbnMgPSBjaHVuay51c2FnZS5jb21wbGV0aW9uX3Rva2Vuc1xuICAgICAgICBpZiAoY2h1bms/LnVzYWdlPy5wcm9tcHRfdG9rZW5zKSBzdGVwVXNhZ2UucHJvbXB0X3Rva2VucyA9IGNodW5rLnVzYWdlLnByb21wdF90b2tlbnNcbiAgICAgICAgaWYgKGNodW5rPy51c2FnZT8udG90YWxfdG9rZW5zKSBzdGVwVXNhZ2UudG90YWxfdG9rZW5zID0gY2h1bmsudXNhZ2UudG90YWxfdG9rZW5zXG5cbiAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNodW5rKVxuICAgICAgfSxcbiAgICAgIGZsdXNoKCkge1xuICAgICAgICBtZXNzYWdlUHJvbWlzZS5yZXMoWy4uLmlucHV0Lm1lc3NhZ2VzLCBtZXNzYWdlXSlcbiAgICAgICAgYWRkVG9Vc2FnZSh0b3RhbFVzYWdlLCBzdGVwVXNhZ2UpXG4gICAgICAgIHVzYWdlUHJvbWlzZS5yZXMoT2JqZWN0LmFzc2lnbih7fSwgdG90YWxVc2FnZSkpXG4gICAgICAgIG9uU3RlcEZpbmlzaD8uKHtcbiAgICAgICAgICBtZXNzYWdlczogWy4uLmlucHV0Lm1lc3NhZ2VzLCBtZXNzYWdlXSxcbiAgICAgICAgICBmaW5pc2hSZWFzb24sXG4gICAgICAgICAgdGV4dDogbWVzc2FnZS5jb250ZW50LFxuICAgICAgICAgIHN0ZXBVc2FnZSxcbiAgICAgICAgICB0b3RhbFVzYWdlOiBPYmplY3QuYXNzaWduKHt9LCB0b3RhbFVzYWdlKSxcbiAgICAgICAgfSlcbiAgICAgIH0sXG4gICAgfSksKVxuXG4gICAgY29uc3QgW3MxLCBzMl0gPSBvcmlnaW5TdHJlYW0udGVlKClcblxuICAgIHJldHVybiB7XG4gICAgICBtZXNzYWdlczogbWVzc2FnZVByb21pc2UucHJvbWlzZSxcbiAgICAgIGRhdGFTdHJlYW06IGNyZWF0ZUFzeW5jSXRlcmFibGUoczEpLFxuICAgICAgdGV4dFN0cmVhbTogY3JlYXRlQXN5bmNJdGVyYWJsZShzMi5waXBlVGhyb3VnaChuZXcgVHJhbnNmb3JtU3RyZWFtKHtcbiAgICAgICAgdHJhbnNmb3JtKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgICAgY29uc3QgY29udGVudCA9IGNodW5rPy5jaG9pY2VzPy5bMF0/LmRlbHRhPy5jb250ZW50XG4gICAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGNvbnRlbnQpXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSksKSwpLFxuICAgICAgdXNhZ2U6IHVzYWdlUHJvbWlzZS5wcm9taXNlLFxuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRUb29sQ2FsbEZyb21HZW5lcmF0ZShvdXRwdXQ6IERvR2VuZXJhdGVPdXRwdXQpIHtcbiAgY29uc3QgY2hvaWNlID0gb3V0cHV0Py5jaG9pY2VzPy5bMF1cblxuICBpZiAoIWNob2ljZSkgcmV0dXJuIG51bGxcblxuICBjb25zdCB7IGZpbmlzaF9yZWFzb24sIG1lc3NhZ2UgfSA9IGNob2ljZVxuXG4gIGlmIChmaW5pc2hfcmVhc29uICE9PSAndG9vbF9jYWxscycpIHJldHVybiBudWxsXG4gIGlmICghbWVzc2FnZSkgcmV0dXJuIG51bGxcbiAgaWYgKCFpc1Rvb2xDYWxsQXNzaXN0YW50TWVzc2FnZShtZXNzYWdlKSkgcmV0dXJuIG51bGxcblxuICByZXR1cm4gbWVzc2FnZS50b29sX2NhbGxzWzBdXG59XG5cbmZ1bmN0aW9uIHB1c2hOZXdNZXNzYWdlcyhcbiAgbWVzc2FnZXM6IEFycmF5PENoYXRNb2RlbE1lc3NhZ2U+LFxuICBhc3Npc3RhbnRNZXNzYWdlOiBUb29sQ2FsbEFzc2lzdGFudE1lc3NhZ2UsXG4gIHRvb2xDYWxsUmVzdWx0OiB1bmtub3duLFxuKSB7XG4gIG1lc3NhZ2VzLnB1c2goYXNzaXN0YW50TWVzc2FnZSwge1xuICAgIHJvbGU6ICd0b29sJyxcbiAgICB0b29sX2NhbGxfaWQ6IGFzc2lzdGFudE1lc3NhZ2UudG9vbF9jYWxsc1swXS5pZCxcbiAgICBjb250ZW50OiBKU09OLnN0cmluZ2lmeSh0b29sQ2FsbFJlc3VsdCksXG4gIH0pXG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlYWRGdW5jdGlvbkNhbGxTdHJlYW0oc3RyZWFtOiBSZWFkYWJsZVN0cmVhbTxCYXNlRG9TdHJlYW1PdXRwdXRDaHVuaz4sKTogUHJvbWlzZTx7IG1lc3NhZ2U6IFRvb2xDYWxsQXNzaXN0YW50TWVzc2FnZTsgdXNhZ2U6IFVzYWdlIH0gfCBudWxsPiB7XG4gIGNvbnN0IHN0ZXBVc2FnZTogVXNhZ2UgPSB7IGNvbXBsZXRpb25fdG9rZW5zOiAwLCBwcm9tcHRfdG9rZW5zOiAwLCB0b3RhbF90b2tlbnM6IDAgfVxuICBjb25zdCBhU3RyZWFtID0gY3JlYXRlQXN5bmNJdGVyYWJsZShzdHJlYW0pXG5cbiAgY29uc3QgcmV0VG9vbENhbGw6IFRvb2xDYWxsID0ge1xuICAgIGlkOiAnJyxcbiAgICBmdW5jdGlvbjoge1xuICAgICAgbmFtZTogJycsXG4gICAgICBhcmd1bWVudHM6ICcnLFxuICAgIH0sXG4gICAgdHlwZTogJycsXG4gIH1cblxuICBjb25zdCByZXRNZXNzYWdlOiBUb29sQ2FsbEFzc2lzdGFudE1lc3NhZ2UgPSB7XG4gICAgcm9sZTogJ2Fzc2lzdGFudCcsXG4gICAgY29udGVudDogJycsXG4gICAgdG9vbF9jYWxsczogW3JldFRvb2xDYWxsXSxcbiAgfVxuXG4gIGZvciBhd2FpdCAoY29uc3QgY2h1bmsgb2YgYVN0cmVhbSkge1xuICAgIGNvbnN0IGNob2ljZSA9IGNodW5rPy5jaG9pY2VzWzBdXG4gICAgaWYgKCFjaG9pY2UpIHJldHVybiBudWxsXG5cbiAgICBjb25zdCB7IGZpbmlzaF9yZWFzb24sIGRlbHRhIH0gPSBjaG9pY2VcblxuICAgIGlmIChmaW5pc2hfcmVhc29uICE9PSAndG9vbF9jYWxscycpIHJldHVybiBudWxsXG4gICAgaWYgKCFkZWx0YSkgY29udGludWVcblxuICAgIGlmIChkZWx0YS5jb250ZW50KSByZXRNZXNzYWdlLmNvbnRlbnQgKz0gZGVsdGEuY29udGVudFxuXG4gICAgaWYgKCEoJ3Rvb2xfY2FsbHMnIGluIGRlbHRhKSkgY29udGludWVcbiAgICBjb25zdCB0b29sQ2FsbCA9IGRlbHRhPy50b29sX2NhbGxzPy5bMF1cbiAgICBpZiAodG9vbENhbGw/LmlkKSByZXRUb29sQ2FsbC5pZCA9IHRvb2xDYWxsLmlkXG4gICAgaWYgKHRvb2xDYWxsPy50eXBlKSByZXRUb29sQ2FsbC50eXBlID0gdG9vbENhbGwudHlwZVxuICAgIGlmICh0b29sQ2FsbD8uZnVuY3Rpb24/Lm5hbWUpIHJldFRvb2xDYWxsLmZ1bmN0aW9uLm5hbWUgPSB0b29sQ2FsbC5mdW5jdGlvbi5uYW1lXG4gICAgaWYgKHRvb2xDYWxsPy5mdW5jdGlvbj8uYXJndW1lbnRzKSByZXRUb29sQ2FsbC5mdW5jdGlvbi5hcmd1bWVudHMgKz0gdG9vbENhbGwuZnVuY3Rpb24uYXJndW1lbnRzXG5cbiAgICAvLyBUT0RPOiDkuI3lkIzlpKfmqKHlnovnmoQgc3RyZWFtIHVzYWdlIOagvOW8j+S4jeS4gOagt++8jOWQjue7reWPr+iDveimgeiwg+aVtC5cbiAgICAvLyBodW55dWFuIOavj+S4qiBjaHVuayDpg73kvJrmnIkgdXNhZ2XvvIzpgJDmraXlop7liqDvvIzku6XmnIDlkI7kuIDkuKrnmoTkuLrlh4Y7XG4gICAgLy8gemhpcHUg5pyA5ZCOIGNodW5rIOS8muaciSB1c2FnZTtcbiAgICBpZiAoY2h1bms/LnVzYWdlPy5jb21wbGV0aW9uX3Rva2Vucykgc3RlcFVzYWdlLmNvbXBsZXRpb25fdG9rZW5zID0gY2h1bmsudXNhZ2UuY29tcGxldGlvbl90b2tlbnNcbiAgICBpZiAoY2h1bms/LnVzYWdlPy5wcm9tcHRfdG9rZW5zKSBzdGVwVXNhZ2UucHJvbXB0X3Rva2VucyA9IGNodW5rLnVzYWdlLnByb21wdF90b2tlbnNcbiAgICBpZiAoY2h1bms/LnVzYWdlPy50b3RhbF90b2tlbnMpIHN0ZXBVc2FnZS50b3RhbF90b2tlbnMgPSBjaHVuay51c2FnZS50b3RhbF90b2tlbnNcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbWVzc2FnZTogcmV0TWVzc2FnZSxcbiAgICB1c2FnZTogc3RlcFVzYWdlLFxuICB9XG59XG5cbmV4cG9ydCBjb25zdCB0b29sTWFwID0gbmV3IE1hcDxzdHJpbmcsIENhbGxhYmxlRnVuY3Rpb24+KClcblxuZnVuY3Rpb24gY2FsbFRvb2wodG9vbENhbGw6IFRvb2xDYWxsKSB7XG4gIHJldHVybiB0b29sTWFwLmdldCh0b29sQ2FsbC5mdW5jdGlvbi5uYW1lKShKU09OLnBhcnNlKHRvb2xDYWxsLmZ1bmN0aW9uLmFyZ3VtZW50cykpXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVNvbGlkVXNhZ2UodXNhZ2U/OiBQYXJ0aWFsPFVzYWdlPik6IFVzYWdlIHtcbiAgcmV0dXJuIHtcbiAgICBjb21wbGV0aW9uX3Rva2VuczogdXNhZ2U/LmNvbXBsZXRpb25fdG9rZW5zID8/IDAsXG4gICAgcHJvbXB0X3Rva2VuczogdXNhZ2U/LnByb21wdF90b2tlbnMgPz8gMCxcbiAgICB0b3RhbF90b2tlbnM6IHVzYWdlPy50b3RhbF90b2tlbnMgPz8gMCxcbiAgfVxufVxuXG5mdW5jdGlvbiBhZGRUb1VzYWdlKHRhcmdldFVzYWdlOiBVc2FnZSwgc291cmNlVXNhZ2U6IFVzYWdlKSB7XG4gIHRhcmdldFVzYWdlLmNvbXBsZXRpb25fdG9rZW5zICs9IHNvdXJjZVVzYWdlLmNvbXBsZXRpb25fdG9rZW5zXG4gIHRhcmdldFVzYWdlLnByb21wdF90b2tlbnMgKz0gc291cmNlVXNhZ2UucHJvbXB0X3Rva2Vuc1xuICB0YXJnZXRVc2FnZS50b3RhbF90b2tlbnMgKz0gc291cmNlVXNhZ2UudG90YWxfdG9rZW5zXG59XG4iXX0=
package/dist/cjs/utils.js CHANGED
@@ -260,4 +260,4 @@ function functionToolToModelTool(tool) {
260
260
  };
261
261
  }
262
262
  exports.functionToolToModelTool = functionToolToModelTool;
263
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZEQUE2RztBQUM3RywyRUFBaUY7QUFDakYsMkRBQTZGO0FBUTdGLHlEQUFnRDtBQUVuQyxRQUFBLGNBQWMsR0FBRyxxQ0FXN0IsQ0FBQTtBQUVZLFFBQUEsZUFBZSxHQUFHLHNDQVE5QixDQUFBO0FBRU0sSUFBTSxzQ0FBc0MsR0FBRztJQUNwRCxJQUFJLE1BQTBCLENBQUE7SUFFOUIsT0FBTyxJQUFJLHVCQUFlLENBQXNCO1FBQzlDLEtBQUssWUFBQyxVQUFVO1lBQ2QsTUFBTSxHQUFHLElBQUEsaUNBQVksRUFBQyxVQUFDLEtBQUs7Z0JBQzFCLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUU7b0JBQzFCLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7aUJBQzFCO1lBQ0gsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDO1FBQ0QsU0FBUyxZQUFDLEtBQUs7WUFDYixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3BCLENBQUM7S0FDRixDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUFmWSxRQUFBLHNDQUFzQywwQ0FlbEQ7QUFFWSxRQUFBLGtCQUFrQixHQUFHLElBQUEsaURBQTJCLEVBQUMsc0JBQWMsQ0FBQyxDQUFBO0FBRTdFO0lBcUJFLDJCQUFZLFFBQWtCLEVBQUUsT0FBZ0M7UUFBcEQseUJBQUEsRUFBQSxrQkFBa0I7UUFBRSx3QkFBQSxFQUFBLFlBQWdDO1FBQWhFLGlCQUVDO1FBcEJPLGNBQVMsR0FBRyxJQUFJLHVCQUFlLENBQUM7WUFDdEMsU0FBUyxFQUFFLFVBQUMsS0FBSyxFQUFFLFVBQVU7Z0JBQzNCLElBQU0sS0FBSyxHQUFHLEtBQUksQ0FBQyxNQUFNLENB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QUE7QUFDOUIsQ0FBQztBQVJELHNDQVFDO0FBRUQsU0FBZ0IsMEJBQTBCLENBQUMsT0FBeUI7O0lBQ2xFLE9BQU8sT0FBTyxDQUFDLElBQUksS0FBSyxXQUFXLElBQUksWUFBWSxJQUFJLE9BQU8sSUFBSSxDQUFBLE1BQUEsT0FBTyxDQUFDLFVBQVUsMENBQUcsQ0FBQyxDQUFDLEtBQUksSUFBSSxDQUFBO0FBQ25HLENBQUM7QUFGRCxnRUFFQztBQUVELFNBQWdCLHVCQUF1QixDQUFDLElBQWtCO0lBQ3hELE9BQU87UUFDTCxJQUFJLEVBQUUsVUFBVTtRQUNoQixRQUFRLEVBQUU7WUFDUixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1NBQzVCO0tBQ0YsQ0FBQTtBQUNILENBQUM7QUFURCwwREFTQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zZm9ybVN0cmVhbSBhcyBfVHJhbnNmb3JtU3RyZWFtLCBSZWFkYWJsZVN0cmVhbSBhcyBfUmVhZGFibGVTdHJlYW0gfSBmcm9tICd3ZWItc3RyZWFtcy1wb2x5ZmlsbCdcbmltcG9ydCB7IGNyZWF0ZVJlYWRhYmxlU3RyZWFtV3JhcHBlciB9IGZyb20gJ0BtYXR0aWFzYnVlbGVucy93ZWItc3RyZWFtcy1hZGFwdGVyJ1xuaW1wb3J0IHsgY3JlYXRlUGFyc2VyLCB0eXBlIEV2ZW50U291cmNlUGFyc2VyLCB0eXBlIFBhcnNlZEV2ZW50IH0gZnJvbSAnLi9ldmVudHNvdXJjZV9wYXJzZXInXG5pbXBvcnQgdHlwZSB7XG4gIEFzeW5jSXRlcmFibGVSZWFkYWJsZVN0cmVhbSxcbiAgQ2hhdE1vZGVsTWVzc2FnZSxcbiAgVG9vbENhbGxBc3Npc3RhbnRNZXNzYWdlLFxuICBNb2RlbFRvb2wsXG4gIEZ1bmN0aW9uVG9vbCxcbn0gZnJvbSAnLi90eXBlJ1xuaW1wb3J0IHsgVGV4dERlY29kZXIgfSBmcm9tICd0ZXh0LWVuY29kaW5nLXNoaW0nXG5cbmV4cG9ydCBjb25zdCBSZWFkYWJsZVN0cmVhbSA9IF9SZWFkYWJsZVN0cmVhbSBhcyB7XG4gIHByb3RvdHlwZTogUmVhZGFibGVTdHJlYW1cblxuICBuZXcgKFxuICAgIHVuZGVybHlpbmdTb3VyY2U6IFVuZGVybHlpbmdCeXRlU291cmNlLFxuICAgIHN0cmF0ZWd5Pzoge1xuICAgICAgaGlnaFdhdGVyTWFyaz86IG51bWJlclxuICAgIH0sXG4gICk6IFJlYWRhYmxlU3RyZWFtPFVpbnQ4QXJyYXk+XG4gIG5ldyA8UiA9IGFueT4odW5kZXJseWluZ1NvdXJjZTogVW5kZXJseWluZ0RlZmF1bHRTb3VyY2U8Uj4sIHN0cmF0ZWd5PzogUXVldWluZ1N0cmF0ZWd5PFI+KTogUmVhZGFibGVTdHJlYW08Uj5cbiAgbmV3IDxSID0gYW55Pih1bmRlcmx5aW5nU291cmNlPzogVW5kZXJseWluZ1NvdXJjZTxSPiwgc3RyYXRlZ3k/OiBRdWV1aW5nU3RyYXRlZ3k8Uj4pOiBSZWFkYWJsZVN0cmVhbTxSPlxufVxuXG5leHBvcnQgY29uc3QgVHJhbnNmb3JtU3RyZWFtID0gX1RyYW5zZm9ybVN0cmVhbSBhcyB7XG4gIHByb3RvdHlwZTogVHJhbnNmb3JtU3RyZWFtXG5cbiAgbmV3IDxJID0gYW55LCBPID0gYW55PihcbiAgICB0cmFuc2Zvcm1lcj86IFRyYW5zZm9ybWVyPEksIE8+LFxuICAgIHdyaXRhYmxlU3RyYXRlZ3k/OiBRdWV1aW5nU3RyYXRlZ3k8ST4sXG4gICAgcmVhZGFibGVTdHJhdGVneT86IFF1ZXVpbmdTdHJhdGVneTxPPixcbiAgKTogVHJhbnNmb3JtU3RyZWFtPEksIE8+XG59XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVFdmVudFNvdXJjZVBhcnNlclRyYW5zZm9ybVN0cmVhbSA9ICgpID0+IHtcbiAgbGV0IHBhcnNlciE6IEV2ZW50U291cmNlUGFyc2VyXG5cbiAgcmV0dXJuIG5ldyBUcmFuc2Zvcm1TdHJlYW08c3RyaW5nLCBQYXJzZWRFdmVudD4oe1xuICAgIHN0YXJ0KGNvbnRyb2xsZXIpIHtcbiAgICAgIHBhcnNlciA9IGNyZWF0ZVBhcnNlcigoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICdldmVudCcpIHtcbiAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoZXZlbnQpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSxcbiAgICB0cmFuc2Zvcm0oY2h1bmspIHtcbiAgICAgIHBhcnNlci5mZWVkKGNodW5rKVxuICAgIH0sXG4gIH0pXG59XG5cbmV4cG9ydCBjb25zdCB0b1BvbHlmaWxsUmVhZGFibGUgPSBjcmVhdGVSZWFkYWJsZVN0cmVhbVdyYXBwZXIoUmVhZGFibGVTdHJlYW0pXG5cbmV4cG9ydCBjbGFzcyBUZXh0RGVjb2RlclN0cmVhbSB7XG4gIHByaXZhdGUgaGFuZGxlOiBUZXh0RGVjb2RlclxuXG4gIHByaXZhdGUgdHJhbnNmb3JtID0gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgdHJhbnNmb3JtOiAoY2h1bmssIGNvbnRyb2xsZXIpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5oYW5kbGUuZGVjb2RlKG5ldyBVaW50OEFycmF5KGNodW5rKSwgeyBzdHJlYW06IHRydWUgfSlcblxuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZSh2YWx1ZSlcbiAgICAgIH1cbiAgICB9LFxuICAgIGZsdXNoOiAoY29udHJvbGxlcikgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmhhbmRsZS5kZWNvZGUoKVxuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZSh2YWx1ZSlcbiAgICAgIH1cblxuICAgICAgY29udHJvbGxlci50ZXJtaW5hdGUoKVxuICAgIH0sXG4gIH0pXG5cbiAgY29uc3RydWN0b3IoZW5jb2RpbmcgPSAndXRmLTgnLCBvcHRpb25zOiBUZXh0RGVjb2Rlck9wdGlvbnMgPSB7fSkge1xuICAgIHRoaXMuaGFuZGxlID0gbmV3IFRleHREZWNvZGVyKGVuY29kaW5nLCBvcHRpb25zKVxuICB9XG5cbiAgZ2V0IGVuY29kaW5nKCkge1xuICAgIHJldHVybiB0aGlzLmhhbmRsZS5lbmNvZGluZ1xuICB9XG5cbiAgZ2V0IGZhdGFsKCkge1xuICAgIHJldHVybiB0aGlzLmhhbmRsZS5mYXRhbFxuICB9XG5cbiAgZ2V0IGlnbm9yZUJPTSgpIHtcbiAgICByZXR1cm4gdGhpcy5oYW5kbGUuaWdub3JlQk9NXG4gIH1cblxuICBnZXQgcmVhZGFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNmb3JtLnJlYWRhYmxlXG4gIH1cblxuICBnZXQgd3JpdGFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNmb3JtLndyaXRhYmxlXG4gIH1cblxuICBnZXQgW1N5bWJvbC50b1N0cmluZ1RhZ10oKSB7XG4gICAgcmV0dXJuICdUZXh0RGVjb2RlclN0cmVhbSdcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQXN5bmNJdGVyYWJsZTxUPihzdHJlYW06IFJlYWRhYmxlU3RyZWFtPFQ+KSB7XG4gIGNvbnN0IF9zdHJlYW0gPSBzdHJlYW0gYXMgQXN5bmNJdGVyYWJsZVJlYWRhYmxlU3RyZWFtPFQ+XG4gIF9zdHJlYW1bU3ltYm9sLmFzeW5jSXRlcmF0b3JdID0gKCkgPT4ge1xuICAgIGNvbnN0IHJlYWRlciA9IHN0cmVhbS5nZXRSZWFkZXIoKVxuICAgIHJldHVybiB7XG4gICAgICBhc3luYyBuZXh0KCk6IFByb21pc2U8SXRlcmF0b3JSZXN1bHQ8VD4+IHtcbiAgICAgICAgY29uc3QgeyBkb25lLCB2YWx1ZSB9ID0gYXdhaXQgcmVhZGVyLnJlYWQoKVxuICAgICAgICByZXR1cm4gZG9uZSA/IHsgZG9uZTogdHJ1ZSwgdmFsdWU6IHVuZGVmaW5lZCB9IDogeyBkb25lOiBmYWxzZSwgdmFsdWUgfVxuICAgICAgfSxcbiAgICB9XG4gIH1cbiAgcmV0dXJuIF9zdHJlYW1cbn1cblxuLyoqXG4gKiDlsIYgU1NFIOS6jOi/m+WItua1gei9rOaNouS4uiBUIOexu+Wei+eahOa1gVxuICovXG5leHBvcnQgZnVuY3Rpb24gaW50b1N0YW5kYXJkU3RyZWFtPFQ+KHN0cmVhbTogUmVhZGFibGVTdHJlYW08VWludDhBcnJheT4pOiBSZWFkYWJsZVN0cmVhbTxUPiB7XG4gIHJldHVybiBjcmVhdGVBc3luY0l0ZXJhYmxlKHN0cmVhbVxuICAgIC5waXBlVGhyb3VnaChuZXcgVGV4dERlY29kZXJTdHJlYW0oKSlcbiAgICAucGlwZVRocm91Z2goY3JlYXRlRXZlbnRTb3VyY2VQYXJzZXJUcmFuc2Zvcm1TdHJlYW0oKSlcbiAgICAucGlwZVRocm91Z2gobmV3IFRyYW5zZm9ybVN0cmVhbTxQYXJzZWRFdmVudCwgVD4oe1xuICAgICAgdHJhbnNmb3JtKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UoY2h1bmsuZGF0YSkgYXMgVFxuICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShkYXRhKVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGNodW5rLmRhdGEgIT09ICdbRE9ORV0nKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ0Vycm9yIHdoZW4gdHJhbnNmb3JtaW5nIGV2ZW50IHNvdXJjZSBkYXRhIHRvIGpzb24nLCBlLCBjaHVuaylcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29udHJvbGxlci50ZXJtaW5hdGUoKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KSwpLClcbn1cblxuLyoqXG4gKiDlsIYgU1NFIOS6jOi/m+WItua1gei9rOaNouS4uuWtl+espuS4sua1gVxuICovXG5leHBvcnQgZnVuY3Rpb24gaW50b1RleHRTdHJlYW0oc3RyZWFtOiBSZWFkYWJsZVN0cmVhbTxVaW50OEFycmF5Pik6IEFzeW5jSXRlcmFibGVSZWFkYWJsZVN0cmVhbTxzdHJpbmc+IHtcbiAgcmV0dXJuIGNyZWF0ZUFzeW5jSXRlcmFibGUoKHRvUG9seWZpbGxSZWFkYWJsZShzdHJlYW0pIGFzIHR5cGVvZiBzdHJlYW0pLnBpcGVUaHJvdWdoKG5ldyBUZXh0RGVjb2RlclN0cmVhbSgpKSlcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRhYmxlU3RyZWFtMkpzb25PYmplY3Qoc3RyZWFtOiBSZWFkYWJsZVN0cmVhbSkge1xuICBjb25zdCBzID0gaW50b1RleHRTdHJlYW0oc3RyZWFtKVxuICBsZXQgdG90YWwgPSAnJ1xuICBmb3IgYXdhaXQgKGNvbnN0IGNodW5rIG9mIHMpIHtcbiAgICB0b3RhbCArPSBjaHVua1xuICB9XG4gIHJldHVybiBKU09OLnBhcnNlKHRvdGFsKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHJvbWlzZTxUID0gdW5rbm93bj4oKSB7XG4gIGxldCByZXM6ICh2YWx1ZTogVCB8IFByb21pc2VMaWtlPFQ+KSA9PiB2b2lkXG4gIGxldCByZWo6IChyZWFzb24/OiBhbnkpID0+IHZvaWRcbiAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlPFQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICByZXMgPSByZXNvbHZlXG4gICAgcmVqID0gcmVqZWN0XG4gIH0pXG4gIHJldHVybiB7IHByb21pc2UsIHJlcywgcmVqIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVG9vbENhbGxBc3Npc3RhbnRNZXNzYWdlKG1lc3NhZ2U6IENoYXRNb2RlbE1lc3NhZ2UpOiBtZXNzYWdlIGlzIFRvb2xDYWxsQXNzaXN0YW50TWVzc2FnZSB7XG4gIHJldHVybiBtZXNzYWdlLnJvbGUgPT09ICdhc3Npc3RhbnQnICYmICd0b29sX2NhbGxzJyBpbiBtZXNzYWdlICYmIG1lc3NhZ2UudG9vbF9jYWxscz8uWzBdICE9IG51bGxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZ1bmN0aW9uVG9vbFRvTW9kZWxUb29sKHRvb2w6IEZ1bmN0aW9uVG9vbCk6IE1vZGVsVG9vbCB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ2Z1bmN0aW9uJyxcbiAgICBmdW5jdGlvbjoge1xuICAgICAgZGVzY3JpcHRpb246IHRvb2wuZGVzY3JpcHRpb24sXG4gICAgICBuYW1lOiB0b29sLm5hbWUsXG4gICAgICBwYXJhbWV0ZXJzOiB0b29sLnBhcmFtZXRlcnMsXG4gICAgfSxcbiAgfVxufVxuIl19
263
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZEQUE2RztBQUM3RywyRUFBaUY7QUFDakYsMkRBQTZGO0FBUTdGLHlEQUFnRDtBQUVuQyxRQUFBLGNBQWMsR0FBRyxxQ0FXN0IsQ0FBQTtBQUVZLFFBQUEsZUFBZSxHQUFHLHNDQVE5QixDQUFBO0FBRU0sSUFBTSxzQ0FBc0MsR0FBRztJQUNwRCxJQUFJLE1BQTBCLENBQUE7SUFFOUIsT0FBTyxJQUFJLHVCQUFlLENBQXNCO1FBQzlDLEtBQUssWUFBQyxVQUFVO1lBQ2QsTUFBTSxHQUFHLElBQUEsaUNBQVksRUFBQyxVQUFDLEtBQUs7Z0JBQzFCLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUU7b0JBQzFCLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7aUJBQzFCO1lBQ0gsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDO1FBQ0QsU0FBUyxZQUFDLEtBQUs7WUFDYixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3BCLENBQUM7S0FDRixDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUFmWSxRQUFBLHNDQUFzQywwQ0FlbEQ7QUFFWSxRQUFBLGtCQUFrQixHQUFHLElBQUEsaURBQTJCLEVBQUMsc0JBQWMsQ0FBQyxDQUFBO0FBRTdFO0lBcUJFLDJCQUFZLFFBQWtCLEVBQUUsT0FBZ0M7UUFBcEQseUJBQUEsRUFBQSxrQkFBa0I7UUFBRSx3QkFBQSxFQUFBLFlBQWdDO1FBQWhFLGlCQUVDO1FBcEJPLGNBQVMsR0FBRyxJQUFJLHVCQUFlLENBQUM7WUFDdEMsU0FBUyxFQUFFLFVBQUMsS0FBSyxFQUFFLFVBQVU7Z0JBQzNCLElBQU0sS0FBSyxHQUFHLEtBQUksQ0FBQyxNQUFNLENB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QUE7QUFDOUIsQ0FBQztBQVJELHNDQVFDO0FBRUQsU0FBZ0IsMEJBQTBCLENBQUMsT0FBeUI7O0lBRWxFLE9BQU8sT0FBTyxDQUFDLElBQUksS0FBSyxXQUFXLElBQUksWUFBWSxJQUFJLE9BQU8sSUFBSSxDQUFBLE1BQUEsT0FBTyxDQUFDLFVBQVUsMENBQUcsQ0FBQyxDQUFDLEtBQUksSUFBSSxDQUFBO0FBQ25HLENBQUM7QUFIRCxnRUFHQztBQUVELFNBQWdCLHVCQUF1QixDQUFDLElBQWtCO0lBQ3hELE9BQU87UUFDTCxJQUFJLEVBQUUsVUFBVTtRQUNoQixRQUFRLEVBQUU7WUFDUixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1NBQzVCO0tBQ0YsQ0FBQTtBQUNILENBQUM7QUFURCwwREFTQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zZm9ybVN0cmVhbSBhcyBfVHJhbnNmb3JtU3RyZWFtLCBSZWFkYWJsZVN0cmVhbSBhcyBfUmVhZGFibGVTdHJlYW0gfSBmcm9tICd3ZWItc3RyZWFtcy1wb2x5ZmlsbCdcbmltcG9ydCB7IGNyZWF0ZVJlYWRhYmxlU3RyZWFtV3JhcHBlciB9IGZyb20gJ0BtYXR0aWFzYnVlbGVucy93ZWItc3RyZWFtcy1hZGFwdGVyJ1xuaW1wb3J0IHsgY3JlYXRlUGFyc2VyLCB0eXBlIEV2ZW50U291cmNlUGFyc2VyLCB0eXBlIFBhcnNlZEV2ZW50IH0gZnJvbSAnLi9ldmVudHNvdXJjZV9wYXJzZXInXG5pbXBvcnQgdHlwZSB7XG4gIEFzeW5jSXRlcmFibGVSZWFkYWJsZVN0cmVhbSxcbiAgQ2hhdE1vZGVsTWVzc2FnZSxcbiAgVG9vbENhbGxBc3Npc3RhbnRNZXNzYWdlLFxuICBNb2RlbFRvb2wsXG4gIEZ1bmN0aW9uVG9vbCxcbn0gZnJvbSAnLi90eXBlJ1xuaW1wb3J0IHsgVGV4dERlY29kZXIgfSBmcm9tICd0ZXh0LWVuY29kaW5nLXNoaW0nXG5cbmV4cG9ydCBjb25zdCBSZWFkYWJsZVN0cmVhbSA9IF9SZWFkYWJsZVN0cmVhbSBhcyB7XG4gIHByb3RvdHlwZTogUmVhZGFibGVTdHJlYW1cblxuICBuZXcgKFxuICAgIHVuZGVybHlpbmdTb3VyY2U6IFVuZGVybHlpbmdCeXRlU291cmNlLFxuICAgIHN0cmF0ZWd5Pzoge1xuICAgICAgaGlnaFdhdGVyTWFyaz86IG51bWJlclxuICAgIH0sXG4gICk6IFJlYWRhYmxlU3RyZWFtPFVpbnQ4QXJyYXk+XG4gIG5ldyA8UiA9IGFueT4odW5kZXJseWluZ1NvdXJjZTogVW5kZXJseWluZ0RlZmF1bHRTb3VyY2U8Uj4sIHN0cmF0ZWd5PzogUXVldWluZ1N0cmF0ZWd5PFI+KTogUmVhZGFibGVTdHJlYW08Uj5cbiAgbmV3IDxSID0gYW55Pih1bmRlcmx5aW5nU291cmNlPzogVW5kZXJseWluZ1NvdXJjZTxSPiwgc3RyYXRlZ3k/OiBRdWV1aW5nU3RyYXRlZ3k8Uj4pOiBSZWFkYWJsZVN0cmVhbTxSPlxufVxuXG5leHBvcnQgY29uc3QgVHJhbnNmb3JtU3RyZWFtID0gX1RyYW5zZm9ybVN0cmVhbSBhcyB7XG4gIHByb3RvdHlwZTogVHJhbnNmb3JtU3RyZWFtXG5cbiAgbmV3IDxJID0gYW55LCBPID0gYW55PihcbiAgICB0cmFuc2Zvcm1lcj86IFRyYW5zZm9ybWVyPEksIE8+LFxuICAgIHdyaXRhYmxlU3RyYXRlZ3k/OiBRdWV1aW5nU3RyYXRlZ3k8ST4sXG4gICAgcmVhZGFibGVTdHJhdGVneT86IFF1ZXVpbmdTdHJhdGVneTxPPixcbiAgKTogVHJhbnNmb3JtU3RyZWFtPEksIE8+XG59XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVFdmVudFNvdXJjZVBhcnNlclRyYW5zZm9ybVN0cmVhbSA9ICgpID0+IHtcbiAgbGV0IHBhcnNlciE6IEV2ZW50U291cmNlUGFyc2VyXG5cbiAgcmV0dXJuIG5ldyBUcmFuc2Zvcm1TdHJlYW08c3RyaW5nLCBQYXJzZWRFdmVudD4oe1xuICAgIHN0YXJ0KGNvbnRyb2xsZXIpIHtcbiAgICAgIHBhcnNlciA9IGNyZWF0ZVBhcnNlcigoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICdldmVudCcpIHtcbiAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoZXZlbnQpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSxcbiAgICB0cmFuc2Zvcm0oY2h1bmspIHtcbiAgICAgIHBhcnNlci5mZWVkKGNodW5rKVxuICAgIH0sXG4gIH0pXG59XG5cbmV4cG9ydCBjb25zdCB0b1BvbHlmaWxsUmVhZGFibGUgPSBjcmVhdGVSZWFkYWJsZVN0cmVhbVdyYXBwZXIoUmVhZGFibGVTdHJlYW0pXG5cbmV4cG9ydCBjbGFzcyBUZXh0RGVjb2RlclN0cmVhbSB7XG4gIHByaXZhdGUgaGFuZGxlOiBUZXh0RGVjb2RlclxuXG4gIHByaXZhdGUgdHJhbnNmb3JtID0gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgdHJhbnNmb3JtOiAoY2h1bmssIGNvbnRyb2xsZXIpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5oYW5kbGUuZGVjb2RlKG5ldyBVaW50OEFycmF5KGNodW5rKSwgeyBzdHJlYW06IHRydWUgfSlcblxuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZSh2YWx1ZSlcbiAgICAgIH1cbiAgICB9LFxuICAgIGZsdXNoOiAoY29udHJvbGxlcikgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmhhbmRsZS5kZWNvZGUoKVxuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZSh2YWx1ZSlcbiAgICAgIH1cblxuICAgICAgY29udHJvbGxlci50ZXJtaW5hdGUoKVxuICAgIH0sXG4gIH0pXG5cbiAgY29uc3RydWN0b3IoZW5jb2RpbmcgPSAndXRmLTgnLCBvcHRpb25zOiBUZXh0RGVjb2Rlck9wdGlvbnMgPSB7fSkge1xuICAgIHRoaXMuaGFuZGxlID0gbmV3IFRleHREZWNvZGVyKGVuY29kaW5nLCBvcHRpb25zKVxuICB9XG5cbiAgZ2V0IGVuY29kaW5nKCkge1xuICAgIHJldHVybiB0aGlzLmhhbmRsZS5lbmNvZGluZ1xuICB9XG5cbiAgZ2V0IGZhdGFsKCkge1xuICAgIHJldHVybiB0aGlzLmhhbmRsZS5mYXRhbFxuICB9XG5cbiAgZ2V0IGlnbm9yZUJPTSgpIHtcbiAgICByZXR1cm4gdGhpcy5oYW5kbGUuaWdub3JlQk9NXG4gIH1cblxuICBnZXQgcmVhZGFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNmb3JtLnJlYWRhYmxlXG4gIH1cblxuICBnZXQgd3JpdGFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNmb3JtLndyaXRhYmxlXG4gIH1cblxuICBnZXQgW1N5bWJvbC50b1N0cmluZ1RhZ10oKSB7XG4gICAgcmV0dXJuICdUZXh0RGVjb2RlclN0cmVhbSdcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQXN5bmNJdGVyYWJsZTxUPihzdHJlYW06IFJlYWRhYmxlU3RyZWFtPFQ+KSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgY29uc3QgX3N0cmVhbSA9IHN0cmVhbSBhcyBBc3luY0l0ZXJhYmxlUmVhZGFibGVTdHJlYW08VD5cbiAgKF9zdHJlYW0gYXMgYW55KVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0gPSAoKSA9PiB7XG4gICAgY29uc3QgcmVhZGVyID0gc3RyZWFtLmdldFJlYWRlcigpXG4gICAgcmV0dXJuIHtcbiAgICAgIGFzeW5jIG5leHQoKTogUHJvbWlzZTxJdGVyYXRvclJlc3VsdDxUPj4ge1xuICAgICAgICBjb25zdCB7IGRvbmUsIHZhbHVlIH0gPSBhd2FpdCByZWFkZXIucmVhZCgpXG4gICAgICAgIHJldHVybiBkb25lID8geyBkb25lOiB0cnVlLCB2YWx1ZTogdW5kZWZpbmVkIH0gOiB7IGRvbmU6IGZhbHNlLCB2YWx1ZSB9XG4gICAgICB9LFxuICAgIH1cbiAgfVxuICByZXR1cm4gX3N0cmVhbVxufVxuXG4vKipcbiAqIOWwhiBTU0Ug5LqM6L+b5Yi25rWB6L2s5o2i5Li6IFQg57G75Z6L55qE5rWBXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbnRvU3RhbmRhcmRTdHJlYW08VD4oc3RyZWFtOiBSZWFkYWJsZVN0cmVhbTxVaW50OEFycmF5Pik6IFJlYWRhYmxlU3RyZWFtPFQ+IHtcbiAgcmV0dXJuIGNyZWF0ZUFzeW5jSXRlcmFibGUoc3RyZWFtXG4gICAgLnBpcGVUaHJvdWdoKG5ldyBUZXh0RGVjb2RlclN0cmVhbSgpKVxuICAgIC5waXBlVGhyb3VnaChjcmVhdGVFdmVudFNvdXJjZVBhcnNlclRyYW5zZm9ybVN0cmVhbSgpKVxuICAgIC5waXBlVGhyb3VnaChuZXcgVHJhbnNmb3JtU3RyZWFtPFBhcnNlZEV2ZW50LCBUPih7XG4gICAgICB0cmFuc2Zvcm0oY2h1bmssIGNvbnRyb2xsZXIpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShjaHVuay5kYXRhKSBhcyBUXG4gICAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKGRhdGEpXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBpZiAoY2h1bmsuZGF0YSAhPT0gJ1tET05FXScpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignRXJyb3Igd2hlbiB0cmFuc2Zvcm1pbmcgZXZlbnQgc291cmNlIGRhdGEgdG8ganNvbicsIGUsIGNodW5rKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb250cm9sbGVyLnRlcm1pbmF0ZSgpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pLCksKVxufVxuXG4vKipcbiAqIOWwhiBTU0Ug5LqM6L+b5Yi25rWB6L2s5o2i5Li65a2X56ym5Liy5rWBXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbnRvVGV4dFN0cmVhbShzdHJlYW06IFJlYWRhYmxlU3RyZWFtPFVpbnQ4QXJyYXk+KTogQXN5bmNJdGVyYWJsZVJlYWRhYmxlU3RyZWFtPHN0cmluZz4ge1xuICByZXR1cm4gY3JlYXRlQXN5bmNJdGVyYWJsZSgodG9Qb2x5ZmlsbFJlYWRhYmxlKHN0cmVhbSkgYXMgdHlwZW9mIHN0cmVhbSkucGlwZVRocm91Z2gobmV3IFRleHREZWNvZGVyU3RyZWFtKCkpKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVhZGFibGVTdHJlYW0ySnNvbk9iamVjdChzdHJlYW06IFJlYWRhYmxlU3RyZWFtKSB7XG4gIGNvbnN0IHMgPSBpbnRvVGV4dFN0cmVhbShzdHJlYW0pXG4gIGxldCB0b3RhbCA9ICcnXG4gIGZvciBhd2FpdCAoY29uc3QgY2h1bmsgb2Ygcykge1xuICAgIHRvdGFsICs9IGNodW5rXG4gIH1cbiAgcmV0dXJuIEpTT04ucGFyc2UodG90YWwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQcm9taXNlPFQgPSB1bmtub3duPigpIHtcbiAgbGV0IHJlczogKHZhbHVlOiBUIHwgUHJvbWlzZUxpa2U8VD4pID0+IHZvaWRcbiAgbGV0IHJlajogKHJlYXNvbj86IGFueSkgPT4gdm9pZFxuICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2U8VD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHJlcyA9IHJlc29sdmVcbiAgICByZWogPSByZWplY3RcbiAgfSlcbiAgcmV0dXJuIHsgcHJvbWlzZSwgcmVzLCByZWogfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNUb29sQ2FsbEFzc2lzdGFudE1lc3NhZ2UobWVzc2FnZTogQ2hhdE1vZGVsTWVzc2FnZSk6IG1lc3NhZ2UgaXMgVG9vbENhbGxBc3Npc3RhbnRNZXNzYWdlIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuICByZXR1cm4gbWVzc2FnZS5yb2xlID09PSAnYXNzaXN0YW50JyAmJiAndG9vbF9jYWxscycgaW4gbWVzc2FnZSAmJiBtZXNzYWdlLnRvb2xfY2FsbHM/LlswXSAhPSBudWxsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmdW5jdGlvblRvb2xUb01vZGVsVG9vbCh0b29sOiBGdW5jdGlvblRvb2wpOiBNb2RlbFRvb2wge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdmdW5jdGlvbicsXG4gICAgZnVuY3Rpb246IHtcbiAgICAgIGRlc2NyaXB0aW9uOiB0b29sLmRlc2NyaXB0aW9uLFxuICAgICAgbmFtZTogdG9vbC5uYW1lLFxuICAgICAgcGFyYW1ldGVyczogdG9vbC5wYXJhbWV0ZXJzLFxuICAgIH0sXG4gIH1cbn1cbiJdfQ==
package/dist/esm/AI.js CHANGED
@@ -192,4 +192,4 @@ var AI = (function () {
192
192
  return AI;
193
193
  }());
194
194
  export { AI };
195
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQUkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQUkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sT0FBTyxDQUFBO0FBQzNCLE9BQU8sS0FBSyxNQUFNLE1BQU0sVUFBVSxDQUFBO0FBRWxDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUVuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFeEMsSUFBQSxNQUFNLEdBQUssTUFBTSxPQUFYLENBQVc7QUFFekI7SUFPRSxZQUFvQixHQUF3QixFQUFTLE9BQWUsRUFBRSxJQUE4QjtRQUFwRyxpQkFTQztRQVRtQixRQUFHLEdBQUgsR0FBRyxDQUFxQjtRQUFTLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFrRXBFLGlCQUFZLEdBQW1CLFVBQU8sRUFBdUM7Z0JBQXJDLEdBQUcsU0FBQSxFQUFFLElBQUksVUFBQSxFQUFFLE9BQU8sYUFBQSxFQUFFLE1BQU0sWUFBQSxFQUFFLE9BQU8sYUFBQTs7Ozs7Ozs7NEJBQ25FLFlBQVksR0FBRztnQ0FDbkIsY0FBYyxFQUFFLGtCQUFrQjs2QkFDbkMsQ0FBQTs0QkFFRCxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFBOzRCQUU5QixXQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO29DQUMzRCxNQUFNLEVBQUUsTUFBTTtvQ0FDZCxPQUFPLGlDQUFLLE1BQUEsSUFBSSxDQUFDLElBQUksMENBQUUsZUFBZSxJQUFHLE1BQUEsSUFBSSxDQUFDLElBQUksMENBQUUsSUFBSSxPQUFLLFlBQVksR0FBSyxPQUFPLENBQUU7b0NBQ3ZGLElBQUksRUFBRSxJQUFJLENBQUMs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QUFBO0lBQ25CLENBQUM7SUFFRCwwQkFBYSxHQUFiLFVBQWMsSUFBWSxFQUFFLEtBQWlDO1FBQzNELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRTtZQUN4QixPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFZLElBQUkscUJBQWtCLENBQUMsQ0FBQTtZQUNoRCxPQUFNO1NBQ1A7UUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFBO0lBQ3RCLENBQUM7SUFzREQsaUNBQW9CLEdBQXBCLFVBQXFCLFlBQWdDO1FBQ25ELElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsMkJBQW9CLFlBQVksQ0FBQyxJQUFJLDZDQUEwQyxDQUFDLENBQUE7U0FDOUY7UUFDRCxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUN4RCxDQUFDO0lBQ0gsU0FBQztBQUFELENBQUMsQUFuSUQsSUFtSUM7QUFFRCxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNES1JlcXVlc3RJbnRlcmZhY2UgfSBmcm9tICdAY2xvdWRiYXNlL2FkYXB0ZXItaW50ZXJmYWNlJ1xuaW1wb3J0IHsgQm90IH0gZnJvbSAnLi9ib3QnXG5pbXBvcnQgKiBhcyBtb2RlbHMgZnJvbSAnLi9tb2RlbHMnXG5pbXBvcnQgKiBhcyB0eXBlcyBmcm9tICcuL3R5cGUnXG5pbXBvcnQgeyByZWFkYWJsZVN0cmVhbTJKc29uT2JqZWN0IH0gZnJvbSAnLi91dGlscydcbmltcG9ydCB7IElDbG91ZGJhc2VDb25maWcgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzJ1xuaW1wb3J0IHsgbGFuZ0V2ZW50IH0gZnJvbSAnQGNsb3VkYmFzZS91dGlsaXRpZXMnXG5cbmNvbnN0IHsgTU9ERUxTIH0gPSBtb2RlbHNcblxuY2xhc3MgQUkge1xuICBwdWJsaWMgYWlCYXNlVXJsOiBzdHJpbmdcbiAgcHVibGljIGFpQm90QmFzZVVybDogc3RyaW5nXG4gIHB1YmxpYyBib3Q6IEJvdFxuICBwdWJsaWMgaTE4bjogSUNsb3VkYmFzZUNvbmZpZ1snaTE4biddXG4gIGRlZmF1bHRIZWFkZXJzOiB7IFt4OiBzdHJpbmddOiBhbnkgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVxOiBTREtSZXF1ZXN0SW50ZXJmYWNlLCBwdWJsaWMgYmFzZVVybDogc3RyaW5nLCBpMThuOiBJQ2xvdWRiYXNlQ29uZmlnWydpMThuJ10pIHtcbiAgICB0aGlzLmFpQmFzZVVybCA9IGAke2Jhc2VVcmx9L2FpYFxuICAgIHRoaXMuYWlCb3RCYXNlVXJsID0gYCR7YmFzZVVybH0vYWlib3RgXG4gICAgdGhpcy5ib3QgPSBuZXcgQm90KHRoaXMuYm90UmVxdWVzdCwgdGhpcy5haUJvdEJhc2VVcmwpXG4gICAgdGhpcy5pMThuID0gaTE4blxuXG4gICAgbGFuZ0V2ZW50LmJ1cy5vbihsYW5nRXZlbnQuTEFOR19DSEFOR0VfRVZFTlQsIChwYXJhbXMpID0+IHtcbiAgICAgIHRoaXMuaTE4biA9IHBhcmFtcy5kYXRhPy5pMThuIHx8IHRoaXMuaTE4blxuICAgIH0pXG4gIH1cblxuICBhc3luYyBoYW5kbGVSZXNwb25zZURhdGEocmVzcG9uc2VEYXRhOiBQcm9taXNlPHVua25vd24+IHwgUmVhZGFibGVTdHJlYW08VWludDhBcnJheT4sIGhlYWRlcj86IEhlYWRlcnMpIHtcbiAgICBjb25zdCBHT19UT19BSV9URVhUID0gYCR7dGhpcy5pMThuLnQoJ+ivt+ajgOafpeiwg+eUqOaWueW8j++8jOaIluWJjeW+gOS6keW8gOWPkSBBSSsg6aaW6aG15p+l55yL5paH5qGjJyl977yaaHR0cHM6Ly90Y2IuY2xvdWQudGVuY2VudC5jb20vZGV2Iy9haWBcblxuICAgIGlmICh0eXBlb2YgcmVzcG9uc2VEYXRhID09PSAnb2JqZWN0JyAmJiByZXNwb25zZURhdGEgJiYgJ3RoZW4nIGluIHJlc3BvbnNlRGF0YSkge1xuICAgICAgLy8g6Z2e5rWB5byP6K+35rGC77yM55u05o6l6L+U5ZueIGpzb24g5pWw5o2uXG4gICAgICBjb25zdCBqc29uID0gKGF3YWl0IHJlc3BvbnNlRGF0YSkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgICAgIGlmICh0eXBlb2YganNvbiA9PT0gJ29iamVjdCcgJiYganNvbiAmJiAnY29kZScgaW4ganNvbiAmJiBqc29uLmNvZGUgIT09ICdOT1JNQUwnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgJHt0aGlzLmkxOG4udCgnQUkrIOivt+axguWHuumUme+8jOmUmeivr+eggScpfe+8miR7anNvbi5jb2Rlfe+8jCR7dGhpcy5pMThuLnQoJ+mUmeivr+S/oeaBrycpfe+8miR7XG4gICAgICAgICAganNvbi5tZXNzYWdlXG4gICAgICAgIH1cXG4ke0dPX1RPX0FJX1RFWFR9XFxuJHtKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCAyKX1gLClcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3BvbnNlRGF0YVxuICAgIH1cbiAgICAvLyDmtYHlvI/or7fmsYLvvIzlpoLmnpzmjqXlj6Plh7rplJnvvIzkvJrlj5jmiJDkvKAganNvbiDmoLzlvI/nmoTlk43lupTvvIzpgJrov4cgaGVhZGVyIOWIpOaWreagvOW8j1xuICAgIGlmIChoZWFkZXI/LmdldD8uKCdjb250ZW50LXR5cGUnKT8uaW5jbHVkZXMoJ2FwcGxpY2F0aW9uL2pzb24nKSkge1xuICAgICAgY29uc3QganNvbiA9IGF3YWl0IHJlYWRhYmxlU3RyZWFtMkpzb25PYmplY3QocmVzcG9uc2VEYXRhIGFzIFJlYWRhYmxlU3RyZWFtPFVpbnQ4QXJyYXk+KVxuICAgICAgaWYgKHR5cGVvZiBqc29uID09PSAnb2JqZWN0JyAmJiBqc29uICYmICdjb2RlJyBpbiBqc29uICYmIGpzb24uY29kZSAhPT0gJ05PUk1BTCcpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke3RoaXMuaTE4bi50KCdBSSsg6K+35rGC5Ye66ZSZ77yM6ZSZ6K+v56CBJyl977yaJHtqc29uLmNvZGV977yMJHt0aGlzLmkxOG4udCgn6ZSZ6K+v5L+h5oGvJyl977yaJHtcbiAgICAgICAgICBqc29uLm1lc3NhZ2VcbiAgICAgICAgfVxcbiR7R09fVE9fQUlfVEVYVH1cXG4ke0pTT04uc3RyaW5naWZ5KGpzb24sIG51bGwsIDIpfWAsKVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzcG9uc2VEYXRhXG4gIH1cblxuICBjcmVhdGVNb2RlbChcbiAgICBtb2RlbDogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICBkZWZhdWx0TW9kZWxTdWJVcmw/OiBzdHJpbmdcbiAgICB9LFxuICApIHtcbiAgICBsZXQgc2ltcGxlTW9kZWw6IHR5cGVzLlNpbXBsZUNoYXRNb2RlbFxuXG4gICAgY29uc3QgU2ltcGxlTW9kZWxDb25zdHJ1Y3RvciA9IE1PREVMU1ttb2RlbF1cbiAgICBpZiAoU2ltcGxlTW9kZWxDb25zdHJ1Y3Rvcikge1xuICAgICAgc2ltcGxlTW9kZWwgPSBuZXcgU2ltcGxlTW9kZWxDb25zdHJ1Y3Rvcih0aGlzLm1vZGVsUmVxdWVzdCwgdGhpcy5haUJhc2VVcmwpXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHN1YlVybCA9IHR5cGVvZiBvcHRpb25zPy5kZWZhdWx0TW9kZWxTdWJVcmwgPT09ICdzdHJpbmcnID8gb3B0aW9ucy5kZWZhdWx0TW9kZWxTdWJVcmwgOiAnL2NoYXQvY29tcGxldGlvbnMnXG5cbiAgICAgIHNpbXBsZU1vZGVsID0gbmV3IG1vZGVscy5EZWZhdWx0U2ltcGxlTW9kZWwodGhpcy5tb2RlbFJlcXVlc3QsIHRoaXMuYWlCYXNlVXJsLCBgJHttb2RlbH0ke3N1YlVybH1gKVxuICAgIH1cblxuICAgIGNvbnN0IHJlYWN0TW9kZWwgPSBuZXcgbW9kZWxzLlJlYWN0TW9kZWwoc2ltcGxlTW9kZWwpXG4gICAgcmV0dXJuIHJlYWN0TW9kZWxcbiAgfVxuXG4gIHJlZ2lzdGVyTW9kZWwobmFtZTogc3RyaW5nLCBtb2RlbDogdHlwZXMuQ2hhdE1vZGVsQ29uc3RydWN0b3IpIHtcbiAgICBpZiAoTU9ERUxTW25hbWVdICE9IG51bGwpIHtcbiAgICAgIGNvbnNvbGUud2FybihgQUkgbW9kZWwgJHtuYW1lfSBhbHJlYWR5IGV4aXN0cyFgKVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIE1PREVMU1tuYW1lXSA9IG1vZGVsXG4gIH1cblxuICBtb2RlbFJlcXVlc3Q6IHR5cGVzLk1vZGVsUmVxID0gYXN5bmMgKHsgdXJsLCBkYXRhLCBoZWFkZXJzLCBzdHJlYW0sIHRpbWVvdXQgfSkgPT4ge1xuICAgIGNvbnN0IGZldGNoSGVhZGVycyA9IHtcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgfVxuICAgIC8vIOW4piBBY2NlcHQ6IHRleHQvZXZlbnQtc3RyZWFtICDor7fmsYLlpLTmmL7lvI/mjIflrprmmK8gU1NFIOe7lei/hyA2MHMg55qE6ZmQ5Yi2XG4gICAgc3RyZWFtICYmIE9iamVjdC5hc3NpZ24oZmV0Y2hIZWFkZXJzLCB7IEFjY2VwdDogJ3RleHQvZXZlbnQtc3RyZWFtJyB9KVxuXG4gICAgY29uc3QgeyBkYXRhOiByZXNwb25zZURhdGEsIGhlYWRlciB9ID0gKGF3YWl0IHRoaXMucmVxLmZldGNoKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgaGVhZGVyczogeyBbdGhpcy5pMThuPy5MQU5HX0hFQURFUl9LRVldOiB0aGlzLmkxOG4/LmxhbmcsIC4uLmZldGNoSGVhZGVycywgLi4uaGVhZGVycyB9LFxuICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoZGF0YSksXG4gICAgICB1cmwsXG4gICAgICBzdHJlYW0sXG4gICAgICB0aW1lb3V0LFxuICAgIH0pKSBhcyB7IGRhdGE6IFByb21pc2U8dW5rbm93bj4gfCBSZWFkYWJsZVN0cmVhbTxVaW50OEFycmF5PjsgaGVhZGVyPzogSGVhZGVycyB9XG5cbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXNwb25zZURhdGEocmVzcG9uc2VEYXRhLCBoZWFkZXIpIGFzIGFueVxuICB9XG5cbiAgYm90UmVxdWVzdDogdHlwZXMuQm90UmVxID0gYXN5bmMgKHsgbWV0aG9kLCB1cmwsIGRhdGEgPSB7fSwgaGVhZGVycywgc3RyZWFtLCB0aW1lb3V0IH0pID0+IHtcbiAgICBpZiAobWV0aG9kID09PSAnZ2V0Jykge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVzcG9uc2VEYXRhKChhd2FpdCB0aGlzLnJlcS5mZXRjaCh7IHVybDogYCR7dXJsfT8ke29iamVjdFRvUGFyYW0oZGF0YSl9YCwgbWV0aG9kLCBoZWFkZXJzLCBzdHJlYW0sIHRpbWVvdXQgfSkpLmRhdGEsKVxuICAgIH1cblxuICAgIGNvbnN0IGZldGNoSGVhZGVycyA9IHtcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgfVxuICAgIC8vIOW4piBBY2NlcHQ6IHRleHQvZXZlbnQtc3RyZWFtICDor7fmsYLlpLTmmL7lvI/mjIflrprmmK8gU1NFIOe7lei/hyA2MHMg55qE6ZmQ5Yi2XG4gICAgc3RyZWFtICYmIE9iamVjdC5hc3NpZ24oZmV0Y2hIZWFkZXJzLCB7IEFjY2VwdDogJ3RleHQvZXZlbnQtc3RyZWFtJyB9KVxuXG4gICAgY29uc3QgeyBkYXRhOiByZXNwb25zZURhdGEsIGhlYWRlciB9ID0gKGF3YWl0IHRoaXMucmVxLmZldGNoKHtcbiAgICAgIHVybCxcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGRhdGEpLFxuICAgICAgaGVhZGVyczoge1xuICAgICAgICBbdGhpcy5pMThuPy5MQU5HX0hFQURFUl9LRVldOiB0aGlzLmkxOG4/LmxhbmcsXG4gICAgICAgIC4uLmZldGNoSGVhZGVycyxcbiAgICAgICAgLi4uaGVhZGVycyxcbiAgICAgIH0sXG4gICAgICBzdHJlYW0sXG4gICAgICBtZXRob2QsXG4gICAgICB0aW1lb3V0LFxuICAgIH0pKSBhcyB7IGRhdGE6IFByb21pc2U8dW5rbm93bj4gfCBSZWFkYWJsZVN0cmVhbTxVaW50OEFycmF5PjsgaGVhZGVyPzogSGVhZGVycyB9XG5cbiAgICByZXR1cm4gdGhpcy5oYW5kbGVSZXNwb25zZURhdGEocmVzcG9uc2VEYXRhLCBoZWFkZXIpIGFzIGFueVxuXG4gICAgZnVuY3Rpb24gb2JqZWN0VG9QYXJhbShvYmo6IE9iamVjdCkge1xuICAgICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG9iailcbiAgICAgICAgLm1hcCgoW2tleSwgdmFsdWVdKSA9PiBgJHtrZXl9PSR7dmFsdWV9YClcbiAgICAgICAgLmpvaW4oJyYnKVxuICAgIH1cbiAgfVxuXG4gIHJlZ2lzdGVyRnVuY3Rpb25Ub29sKGZ1bmN0aW9uVG9vbDogdHlwZXMuRnVuY3Rpb25Ub29sKSB7XG4gICAgaWYgKG1vZGVscy50b29sTWFwLmhhcyhmdW5jdGlvblRvb2wubmFtZSkpIHtcbiAgICAgIGNvbnNvbGUud2FybihgQUkgZnVuY3Rpb24gdG9vbCAke2Z1bmN0aW9uVG9vbC5uYW1lfSBhbHJlYWR5IGV4aXN0cyBhbmQgd2lsbCBiZSBvdmVyd3JpdHRlbiFgKVxuICAgIH1cbiAgICBtb2RlbHMudG9vbE1hcC5zZXQoZnVuY3Rpb25Ub29sLm5hbWUsIGZ1bmN0aW9uVG9vbC5mbilcbiAgfVxufVxuXG5leHBvcnQgeyBBSSB9XG4iXX0=
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQUkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQUkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sT0FBTyxDQUFBO0FBQzNCLE9BQU8sS0FBSyxNQUFNLE1BQU0sVUFBVSxDQUFBO0FBRWxDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUVuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFeEMsSUFBQSxNQUFNLEdBQUssTUFBTSxPQUFYLENBQVc7QUFFekI7SUFPRSxZQUFvQixHQUF3QixFQUFTLE9BQWUsRUFBRSxJQUE4QjtRQUFwRyxpQkFTQztRQVRtQixRQUFHLEdBQUgsR0FBRyxDQUFxQjtRQUFTLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFrRXBFLGlCQUFZLEdBQW1CLFVBQU8sRUFBdUM7Z0JBQXJDLEdBQUcsU0FBQSxFQUFFLElBQUksVUFBQSxFQUFFLE9BQU8sYUFBQSxFQUFFLE1BQU0sWUFBQSxFQUFFLE9BQU8sYUFBQTs7Ozs7Ozs7NEJBQ25FLFlBQVksR0FBRztnQ0FDbkIsY0FBYyxFQUFFLGtCQUFrQjs2QkFDbkMsQ0FBQTs0QkFFRCxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFBOzRCQUU5QixXQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO29DQUMzRCxNQUFNLEVBQUUsTUFBTTtvQ0FDZCxPQUFPLGlDQUFLLE1BQUEsSUFBSSxDQUFDLElBQUksMENBQUUsZUFBZSxJQUFHLE1BQUEsSUFBSSxDQUFDLElBQUksMENBQUUsSUFBSSxPQUFLLFlBQVksR0FBSyxPQUFPLENBQUU7b0NBQ3ZGLElBQUksRUFBRSxJQUFJLENBQUMs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QUFBO0lBQ25CLENBQUM7SUFFRCwwQkFBYSxHQUFiLFVBQWMsSUFBWSxFQUFFLEtBQWlDO1FBQzNELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRTtZQUN4QixPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFZLElBQUkscUJBQWtCLENBQUMsQ0FBQTtZQUNoRCxPQUFNO1NBQ1A7UUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFBO0lBQ3RCLENBQUM7SUFzREQsaUNBQW9CLEdBQXBCLFVBQXFCLFlBQWdDO1FBQ25ELElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsMkJBQW9CLFlBQVksQ0FBQyxJQUFJLDZDQUEwQyxDQUFDLENBQUE7U0FDOUY7UUFDRCxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUN4RCxDQUFDO0lBQ0gsU0FBQztBQUFELENBQUMsQUFuSUQsSUFtSUM7QUFFRCxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBlcWVxZXEgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xuaW1wb3J0IHR5cGUgeyBTREtSZXF1ZXN0SW50ZXJmYWNlIH0gZnJvbSAnQGNsb3VkYmFzZS9hZGFwdGVyLWludGVyZmFjZSdcbmltcG9ydCB7IEJvdCB9IGZyb20gJy4vYm90J1xuaW1wb3J0ICogYXMgbW9kZWxzIGZyb20gJy4vbW9kZWxzJ1xuaW1wb3J0ICogYXMgdHlwZXMgZnJvbSAnLi90eXBlJ1xuaW1wb3J0IHsgcmVhZGFibGVTdHJlYW0ySnNvbk9iamVjdCB9IGZyb20gJy4vdXRpbHMnXG5pbXBvcnQgeyBJQ2xvdWRiYXNlQ29uZmlnIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcydcbmltcG9ydCB7IGxhbmdFdmVudCB9IGZyb20gJ0BjbG91ZGJhc2UvdXRpbGl0aWVzJ1xuXG5jb25zdCB7IE1PREVMUyB9ID0gbW9kZWxzXG5cbmNsYXNzIEFJIHtcbiAgcHVibGljIGFpQmFzZVVybDogc3RyaW5nXG4gIHB1YmxpYyBhaUJvdEJhc2VVcmw6IHN0cmluZ1xuICBwdWJsaWMgYm90OiBCb3RcbiAgcHVibGljIGkxOG46IElDbG91ZGJhc2VDb25maWdbJ2kxOG4nXVxuICBkZWZhdWx0SGVhZGVyczogeyBbeDogc3RyaW5nXTogYW55IH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlcTogU0RLUmVxdWVzdEludGVyZmFjZSwgcHVibGljIGJhc2VVcmw6IHN0cmluZywgaTE4bjogSUNsb3VkYmFzZUNvbmZpZ1snaTE4biddKSB7XG4gICAgdGhpcy5haUJhc2VVcmwgPSBgJHtiYXNlVXJsfS9haWBcbiAgICB0aGlzLmFpQm90QmFzZVVybCA9IGAke2Jhc2VVcmx9L2FpYm90YFxuICAgIHRoaXMuYm90ID0gbmV3IEJvdCh0aGlzLmJvdFJlcXVlc3QsIHRoaXMuYWlCb3RCYXNlVXJsKVxuICAgIHRoaXMuaTE4biA9IGkxOG5cblxuICAgIGxhbmdFdmVudC5idXMub24obGFuZ0V2ZW50LkxBTkdfQ0hBTkdFX0VWRU5ULCAocGFyYW1zKSA9PiB7XG4gICAgICB0aGlzLmkxOG4gPSBwYXJhbXMuZGF0YT8uaTE4biB8fCB0aGlzLmkxOG5cbiAgICB9KVxuICB9XG5cbiAgYXN5bmMgaGFuZGxlUmVzcG9uc2VEYXRhKHJlc3BvbnNlRGF0YTogUHJvbWlzZTx1bmtub3duPiB8IFJlYWRhYmxlU3RyZWFtPFVpbnQ4QXJyYXk+LCBoZWFkZXI/OiBIZWFkZXJzKSB7XG4gICAgY29uc3QgR09fVE9fQUlfVEVYVCA9IGAke3RoaXMuaTE4bi50KCfor7fmo4Dmn6XosIPnlKjmlrnlvI/vvIzmiJbliY3lvoDkupHlvIDlj5EgQUkrIOmmlumhteafpeeci+aWh+ahoycpfe+8mmh0dHBzOi8vdGNiLmNsb3VkLnRlbmNlbnQuY29tL2RldiMvYWlgXG5cbiAgICBpZiAodHlwZW9mIHJlc3BvbnNlRGF0YSA9PT0gJ29iamVjdCcgJiYgcmVzcG9uc2VEYXRhICYmICd0aGVuJyBpbiByZXNwb25zZURhdGEpIHtcbiAgICAgIC8vIOmdnua1geW8j+ivt+axgu+8jOebtOaOpei/lOWbniBqc29uIOaVsOaNrlxuICAgICAgY29uc3QganNvbiA9IChhd2FpdCByZXNwb25zZURhdGEpIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgICBpZiAodHlwZW9mIGpzb24gPT09ICdvYmplY3QnICYmIGpzb24gJiYgJ2NvZGUnIGluIGpzb24gJiYganNvbi5jb2RlICE9PSAnTk9STUFMJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7dGhpcy5pMThuLnQoJ0FJKyDor7fmsYLlh7rplJnvvIzplJnor6/noIEnKX3vvJoke2pzb24uY29kZX3vvIwke3RoaXMuaTE4bi50KCfplJnor6/kv6Hmga8nKX3vvJoke1xuICAgICAgICAgIGpzb24ubWVzc2FnZVxuICAgICAgICB9XFxuJHtHT19UT19BSV9URVhUfVxcbiR7SlNPTi5zdHJpbmdpZnkoanNvbiwgbnVsbCwgMil9YCwpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXNwb25zZURhdGFcbiAgICB9XG4gICAgLy8g5rWB5byP6K+35rGC77yM5aaC5p6c5o6l5Y+j5Ye66ZSZ77yM5Lya5Y+Y5oiQ5LygIGpzb24g5qC85byP55qE5ZON5bqU77yM6YCa6L+HIGhlYWRlciDliKTmlq3moLzlvI9cbiAgICBpZiAoaGVhZGVyPy5nZXQ/LignY29udGVudC10eXBlJyk/LmluY2x1ZGVzKCdhcHBsaWNhdGlvbi9qc29uJykpIHtcbiAgICAgIGNvbnN0IGpzb24gPSBhd2FpdCByZWFkYWJsZVN0cmVhbTJKc29uT2JqZWN0KHJlc3BvbnNlRGF0YSBhcyBSZWFkYWJsZVN0cmVhbTxVaW50OEFycmF5PilcbiAgICAgIGlmICh0eXBlb2YganNvbiA9PT0gJ29iamVjdCcgJiYganNvbiAmJiAnY29kZScgaW4ganNvbiAmJiBqc29uLmNvZGUgIT09ICdOT1JNQUwnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgJHt0aGlzLmkxOG4udCgnQUkrIOivt+axguWHuumUme+8jOmUmeivr+eggScpfe+8miR7anNvbi5jb2Rlfe+8jCR7dGhpcy5pMThuLnQoJ+mUmeivr+S/oeaBrycpfe+8miR7XG4gICAgICAgICAganNvbi5tZXNzYWdlXG4gICAgICAgIH1cXG4ke0dPX1RPX0FJX1RFWFR9XFxuJHtKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCAyKX1gLClcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3BvbnNlRGF0YVxuICB9XG5cbiAgY3JlYXRlTW9kZWwoXG4gICAgbW9kZWw6IHN0cmluZyxcbiAgICBvcHRpb25zPzoge1xuICAgICAgZGVmYXVsdE1vZGVsU3ViVXJsPzogc3RyaW5nXG4gICAgfSxcbiAgKSB7XG4gICAgbGV0IHNpbXBsZU1vZGVsOiB0eXBlcy5TaW1wbGVDaGF0TW9kZWxcblxuICAgIGNvbnN0IFNpbXBsZU1vZGVsQ29uc3RydWN0b3IgPSBNT0RFTFNbbW9kZWxdXG4gICAgaWYgKFNpbXBsZU1vZGVsQ29uc3RydWN0b3IpIHtcbiAgICAgIHNpbXBsZU1vZGVsID0gbmV3IFNpbXBsZU1vZGVsQ29uc3RydWN0b3IodGhpcy5tb2RlbFJlcXVlc3QsIHRoaXMuYWlCYXNlVXJsKVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzdWJVcmwgPSB0eXBlb2Ygb3B0aW9ucz8uZGVmYXVsdE1vZGVsU3ViVXJsID09PSAnc3RyaW5nJyA/IG9wdGlvbnMuZGVmYXVsdE1vZGVsU3ViVXJsIDogJy9jaGF0L2NvbXBsZXRpb25zJ1xuXG4gICAgICBzaW1wbGVNb2RlbCA9IG5ldyBtb2RlbHMuRGVmYXVsdFNpbXBsZU1vZGVsKHRoaXMubW9kZWxSZXF1ZXN0LCB0aGlzLmFpQmFzZVVybCwgYCR7bW9kZWx9JHtzdWJVcmx9YClcbiAgICB9XG5cbiAgICBjb25zdCByZWFjdE1vZGVsID0gbmV3IG1vZGVscy5SZWFjdE1vZGVsKHNpbXBsZU1vZGVsKVxuICAgIHJldHVybiByZWFjdE1vZGVsXG4gIH1cblxuICByZWdpc3Rlck1vZGVsKG5hbWU6IHN0cmluZywgbW9kZWw6IHR5cGVzLkNoYXRNb2RlbENvbnN0cnVjdG9yKSB7XG4gICAgaWYgKE1PREVMU1tuYW1lXSAhPSBudWxsKSB7XG4gICAgICBjb25zb2xlLndhcm4oYEFJIG1vZGVsICR7bmFtZX0gYWxyZWFkeSBleGlzdHMhYClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBNT0RFTFNbbmFtZV0gPSBtb2RlbFxuICB9XG5cbiAgbW9kZWxSZXF1ZXN0OiB0eXBlcy5Nb2RlbFJlcSA9IGFzeW5jICh7IHVybCwgZGF0YSwgaGVhZGVycywgc3RyZWFtLCB0aW1lb3V0IH0pID0+IHtcbiAgICBjb25zdCBmZXRjaEhlYWRlcnMgPSB7XG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgIH1cbiAgICAvLyDluKYgQWNjZXB0OiB0ZXh0L2V2ZW50LXN0cmVhbSAg6K+35rGC5aS05pi+5byP5oyH5a6a5pivIFNTRSDnu5Xov4cgNjBzIOeahOmZkOWItlxuICAgIHN0cmVhbSAmJiBPYmplY3QuYXNzaWduKGZldGNoSGVhZGVycywgeyBBY2NlcHQ6ICd0ZXh0L2V2ZW50LXN0cmVhbScgfSlcblxuICAgIGNvbnN0IHsgZGF0YTogcmVzcG9uc2VEYXRhLCBoZWFkZXIgfSA9IChhd2FpdCB0aGlzLnJlcS5mZXRjaCh7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIGhlYWRlcnM6IHsgW3RoaXMuaTE4bj8uTEFOR19IRUFERVJfS0VZXTogdGhpcy5pMThuPy5sYW5nLCAuLi5mZXRjaEhlYWRlcnMsIC4uLmhlYWRlcnMgfSxcbiAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGRhdGEpLFxuICAgICAgdXJsLFxuICAgICAgc3RyZWFtLFxuICAgICAgdGltZW91dCxcbiAgICB9KSkgYXMgeyBkYXRhOiBQcm9taXNlPHVua25vd24+IHwgUmVhZGFibGVTdHJlYW08VWludDhBcnJheT47IGhlYWRlcj86IEhlYWRlcnMgfVxuXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVzcG9uc2VEYXRhKHJlc3BvbnNlRGF0YSwgaGVhZGVyKSBhcyBhbnlcbiAgfVxuXG4gIGJvdFJlcXVlc3Q6IHR5cGVzLkJvdFJlcSA9IGFzeW5jICh7IG1ldGhvZCwgdXJsLCBkYXRhID0ge30sIGhlYWRlcnMsIHN0cmVhbSwgdGltZW91dCB9KSA9PiB7XG4gICAgaWYgKG1ldGhvZCA9PT0gJ2dldCcpIHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZVJlc3BvbnNlRGF0YSgoYXdhaXQgdGhpcy5yZXEuZmV0Y2goeyB1cmw6IGAke3VybH0/JHtvYmplY3RUb1BhcmFtKGRhdGEpfWAsIG1ldGhvZCwgaGVhZGVycywgc3RyZWFtLCB0aW1lb3V0IH0pKS5kYXRhLClcbiAgICB9XG5cbiAgICBjb25zdCBmZXRjaEhlYWRlcnMgPSB7XG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgIH1cbiAgICAvLyDluKYgQWNjZXB0OiB0ZXh0L2V2ZW50LXN0cmVhbSAg6K+35rGC5aS05pi+5byP5oyH5a6a5pivIFNTRSDnu5Xov4cgNjBzIOeahOmZkOWItlxuICAgIHN0cmVhbSAmJiBPYmplY3QuYXNzaWduKGZldGNoSGVhZGVycywgeyBBY2NlcHQ6ICd0ZXh0L2V2ZW50LXN0cmVhbScgfSlcblxuICAgIGNvbnN0IHsgZGF0YTogcmVzcG9uc2VEYXRhLCBoZWFkZXIgfSA9IChhd2FpdCB0aGlzLnJlcS5mZXRjaCh7XG4gICAgICB1cmwsXG4gICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShkYXRhKSxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgW3RoaXMuaTE4bj8uTEFOR19IRUFERVJfS0VZXTogdGhpcy5pMThuPy5sYW5nLFxuICAgICAgICAuLi5mZXRjaEhlYWRlcnMsXG4gICAgICAgIC4uLmhlYWRlcnMsXG4gICAgICB9LFxuICAgICAgc3RyZWFtLFxuICAgICAgbWV0aG9kLFxuICAgICAgdGltZW91dCxcbiAgICB9KSkgYXMgeyBkYXRhOiBQcm9taXNlPHVua25vd24+IHwgUmVhZGFibGVTdHJlYW08VWludDhBcnJheT47IGhlYWRlcj86IEhlYWRlcnMgfVxuXG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlUmVzcG9uc2VEYXRhKHJlc3BvbnNlRGF0YSwgaGVhZGVyKSBhcyBhbnlcblxuICAgIGZ1bmN0aW9uIG9iamVjdFRvUGFyYW0ob2JqOiBPYmplY3QpIHtcbiAgICAgIHJldHVybiBPYmplY3QuZW50cmllcyhvYmopXG4gICAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4gYCR7a2V5fT0ke3ZhbHVlfWApXG4gICAgICAgIC5qb2luKCcmJylcbiAgICB9XG4gIH1cblxuICByZWdpc3RlckZ1bmN0aW9uVG9vbChmdW5jdGlvblRvb2w6IHR5cGVzLkZ1bmN0aW9uVG9vbCkge1xuICAgIGlmIChtb2RlbHMudG9vbE1hcC5oYXMoZnVuY3Rpb25Ub29sLm5hbWUpKSB7XG4gICAgICBjb25zb2xlLndhcm4oYEFJIGZ1bmN0aW9uIHRvb2wgJHtmdW5jdGlvblRvb2wubmFtZX0gYWxyZWFkeSBleGlzdHMgYW5kIHdpbGwgYmUgb3ZlcndyaXR0ZW4hYClcbiAgICB9XG4gICAgbW9kZWxzLnRvb2xNYXAuc2V0KGZ1bmN0aW9uVG9vbC5uYW1lLCBmdW5jdGlvblRvb2wuZm4pXG4gIH1cbn1cblxuZXhwb3J0IHsgQUkgfVxuIl19
@@ -370,4 +370,4 @@ var StreamResult = (function () {
370
370
  });
371
371
  return StreamResult;
372
372
  }());
373
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYm90L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF3QkEsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsc0NBQXNDLEVBQ3RDLGlCQUFpQixFQUNqQixlQUFlLEdBQ2hCLE1BQU0sVUFBVSxDQUFBO0FBRWpCO0lBR0UsYUFBWSxHQUFXLEVBQVMsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDN0MsSUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzFCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzdCLElBQUksQ0FBQyxHQUFHLEdBQUcsVUFBQyxFQUF5QjtnQkFBdkIsSUFBQSxlQUFZLEVBQVosT0FBTyxtQkFBRyxFQUFFLEtBQUEsRUFBSyxJQUFJLGNBQXZCLFdBQXlCLENBQUY7Z0JBQU8sT0FBQSxHQUFHLHVCQUFNLElBQUksS0FBRSxPQUFPLHdCQUFPLE9BQU8sS0FBRSxhQUFhLEVBQUUsaUJBQVUsS0FBSyxDQUFFLE9BQUssQ0FBQTthQUFBLENBQUE7U0FDdEg7YUFBTTtZQUNMLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFBO1NBQ2Y7SUFDSCxDQUFDO0lBRUQsa0JBQUksR0FBSixVQUFLLEtBQWtCLEVBQUUsT0FBb0I7UUFDM0MsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQ2QsTUFBTSxFQUFFLEtBQUs7WUFDYixHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDdEIsSUFBSSxFQUFFLEtBQUs7WUFDWCxPQUFPLEVBQUUsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLE9BQU87U0FDMUIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJ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QUN6QixJQUFJO3dCQUNGLElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO3dCQUNuQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO3FCQUN6QjtvQkFBQyxPQUFPLENBQUMsRUFBRTt3QkFDVixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFOzRCQUMzQixPQUFPLENBQUMsSUFBSSxDQUFDLG1EQUFtRCxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQTt5QkFDNUU7NkJBQU07NEJBQ0wsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFBO3lCQUN2QjtxQkFDRjtnQkFDSCxDQUFDO2FBQ0YsQ0FBQyxDQUFFLENBQUUsQ0FBQTtRQUNSLENBQUM7OztPQUFBO0lBRUQsc0JBQUksb0NBQVU7YUFBZDtZQUNFLE9BQU8sbUJBQW1CLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxlQUFlLENBQTZCO2dCQUNyRyxTQUFTLFlBQUMsS0FBSyxFQUFFLFVBQVU7O29CQUN6QixVQUFVLENBQUMsT0FBTyxDQUFDLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLE9BQU8sbUNBQUksRUFBRSxDQUFDLENBQUE7Z0JBQzFDLENBQUM7YUFDRixDQUFDLENBQUUsQ0FBRSxDQUFBO1FBQ1IsQ0FBQzs7O09BQUE7SUFDSCxtQkFBQztBQUFELENBQUMsQUE1Q0QsSUE0Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIFBhcnNlZEV2ZW50IH0gZnJvbSAnLi4vZXZlbnRzb3VyY2VfcGFyc2VyJ1xuaW1wb3J0IHsgQm90UmVxLCBSZXFPcHRpb25zIH0gZnJvbSAnLi4vdHlwZSdcbmltcG9ydCB7XG4gIElCb3RDcmVhdGVDb252ZXJzYXRpb24sXG4gIElCb3REZWxldGVDb252ZXJzYXRpb24sXG4gIElCb3RHZXRDb252ZXJzYXRpb24sXG4gIElCb3RHZXRUZXh0VG9TcGVlY2hSZXN1bHQsXG4gIElCb3RQcmV2aWV3LFxuICBJQm90U2VuZE1lc3NhZ2UsXG4gIElCb3RTcGVlY2hUb1RleHQsXG4gIElCb3RUZXh0VG9TcGVlY2gsXG4gIElCb3RVcGxvYWRGaWxlcyxcbiAgSUNyZWF0ZUJvdCxcbiAgSURlbGV0ZUJvdCxcbiAgSUdlbmVyYXRlQm90LFxuICBJR2VuZXJhdGVJbWFnZSxcbiAgSUdldEJvdCxcbiAgSUdldEJvdENoYXRSZWNvcmRzLFxuICBJR2V0Qm90RmVlZGJhY2ssXG4gIElHZXRCb3RMaXN0LFxuICBJR2V0Qm90UmVjb21tZW5kUXVlc3Rpb25zLFxuICBJU2VuZEJvdEZlZWRiYWNrLFxuICBJVXBkYXRlQm90LFxufSBmcm9tICcuL3R5cGVzJ1xuaW1wb3J0IHtcbiAgY3JlYXRlQXN5bmNJdGVyYWJsZSxcbiAgdG9Qb2x5ZmlsbFJlYWRhYmxlLFxuICBjcmVhdGVFdmVudFNvdXJjZVBhcnNlclRyYW5zZm9ybVN0cmVhbSxcbiAgVGV4dERlY29kZXJTdHJlYW0sXG4gIFRyYW5zZm9ybVN0cmVhbSxcbn0gZnJvbSAnLi4vdXRpbHMnXG5cbmV4cG9ydCBjbGFzcyBCb3Qge1xuICByZXE6IEJvdFJlcVxuXG4gIGNvbnN0cnVjdG9yKHJlcTogQm90UmVxLCBwdWJsaWMgYmFzZVVybDogc3RyaW5nKSB7XG4gICAgY29uc3QgdG9rZW4gPSBhcmd1bWVudHNbMl1cbiAgICBpZiAodHlwZW9mIHRva2VuID09PSAnc3RyaW5nJykge1xuICAgICAgdGhpcy5yZXEgPSAoeyBoZWFkZXJzID0ge30sIC4uLnJlc3QgfSkgPT4gcmVxKHsgLi4ucmVzdCwgaGVhZGVyczogeyAuLi5oZWFkZXJzLCBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dG9rZW59YCB9IH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVxID0gcmVxXG4gICAgfVxuICB9XG5cbiAgbGlzdChwcm9wczogSUdldEJvdExpc3QsIG9wdGlvbnM/OiBSZXFPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxKHtcbiAgICAgIG1ldGhvZDogJ2dldCcsXG4gICAgICB1cmw6IHRoaXMuam9pbignYm90cycpLFxuICAgICAgZGF0YTogcHJvcHMsXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gIH1cblxuICBjcmVhdGUoeyBib3RJbmZvIH06IElDcmVhdGVCb3QsIG9wdGlvbnM/OiBSZXFPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiB0aGlzLmpvaW4oJ2JvdHMnKSxcbiAgICAgIGRhdGE6IGJvdEluZm8sXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gIH1cblxuICBnZXQoeyBib3RJZCB9OiBJR2V0Qm90LCBvcHRpb25zPzogUmVxT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnJlcSh7XG4gICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgdXJsOiB0aGlzLmpvaW4oYGJvdHMvJHtib3RJZH1gKSxcbiAgICAgIHRpbWVvdXQ6IG9wdGlvbnM/LnRpbWVvdXQsXG4gICAgfSlcbiAgfVxuXG4gIHVwZGF0ZSh7IGJvdElkLCBib3RJbmZvIH06IElVcGRhdGVCb3QsIG9wdGlvbnM/OiBSZXFPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxKHtcbiAgICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICAgIHVybDogdGhpcy5qb2luKGBib3RzLyR7Ym90SWR9YCksXG4gICAgICBkYXRhOiBib3RJbmZvLFxuICAgICAgdGltZW91dDogb3B0aW9ucz8udGltZW91dCxcbiAgICB9KVxuICB9XG5cbiAgZGVsZXRlKHsgYm90SWQgfTogSURlbGV0ZUJvdCwgb3B0aW9ucz86IFJlcU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5yZXEoeyBtZXRob2Q6ICdkZWxldGUnLCB1cmw6IHRoaXMuam9pbihgYm90cy8ke2JvdElkfWApLCB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0IH0pXG4gIH1cblxuICBnZXRDaGF0UmVjb3Jkcyhwcm9wczogSUdldEJvdENoYXRSZWNvcmRzLCBvcHRpb25zPzogUmVxT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnJlcSh7XG4gICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgdXJsOiB0aGlzLmpvaW4oYGJvdHMvJHtwcm9wcy5ib3RJZH0vcmVjb3Jkc2ApLFxuICAgICAgZGF0YTogcHJvcHMsXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gIH1cblxuICBzZW5kRmVlZGJhY2soeyB1c2VyRmVlZGJhY2sgfTogSVNlbmRCb3RGZWVkYmFjaywgb3B0aW9ucz86IFJlcU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5yZXEoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IHRoaXMuam9pbihgYm90cy8ke3VzZXJGZWVkYmFjay5ib3RJZH0vZmVlZGJhY2tgKSxcbiAgICAgIGRhdGE6IHVzZXJGZWVkYmFjayxcbiAgICAgIHRpbWVvdXQ6IG9wdGlvbnM/LnRpbWVvdXQsXG4gICAgfSlcbiAgfVxuXG4gIGdldEZlZWRiYWNrKHByb3BzOiBJR2V0Qm90RmVlZGJhY2ssIG9wdGlvbnM/OiBSZXFPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxKHtcbiAgICAgIG1ldGhvZDogJ2dldCcsXG4gICAgICB1cmw6IHRoaXMuam9pbihgYm90cy8ke3Byb3BzLmJvdElkfS9mZWVkYmFja2ApLFxuICAgICAgZGF0YTogcHJvcHMsXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gIH1cblxuICBhc3luYyB1cGxvYWRGaWxlcyhwcm9wczogSUJvdFVwbG9hZEZpbGVzLCBvcHRpb25zPzogUmVxT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnJlcSh7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHVybDogdGhpcy5qb2luKGBib3RzLyR7cHJvcHMuYm90SWR9L2ZpbGVzYCksXG4gICAgICBkYXRhOiBwcm9wcyxcbiAgICAgIHRpbWVvdXQ6IG9wdGlvbnM/LnRpbWVvdXQsXG4gICAgfSlcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZUNvbnZlcnNhdGlvbih7IGJvdElkLCAuLi5yZXN0IH06IElCb3RDcmVhdGVDb252ZXJzYXRpb24sIG9wdGlvbnM/OiBSZXFPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiB0aGlzLmpvaW4oYGJvdHMvJHtib3RJZH0vY29udmVyc2F0aW9uYCksXG4gICAgICBkYXRhOiByZXN0LFxuICAgICAgdGltZW91dDogb3B0aW9ucz8udGltZW91dCxcbiAgICB9KVxuICB9XG5cbiAgYXN5bmMgZ2V0Q29udmVyc2F0aW9uKHsgcGFnZVNpemUgPSAxMCwgcGFnZU51bWJlciA9IDEsIGJvdElkLCAuLi5yZXN0IH06IElCb3RHZXRDb252ZXJzYXRpb24sIG9wdGlvbnM/OiBSZXFPcHRpb25zKSB7XG4gICAgaWYgKHBhZ2VOdW1iZXIgPCAxKSB0aHJvdyBuZXcgRXJyb3IoJ3BhZ2VOdW1iZXIgbXVzdCBiZSBncmVhdGVyIHRoYW4gMCcpXG4gICAgY29uc3Qgb2Zmc2V0ID0gcGFnZVNpemUgKiAocGFnZU51bWJlciAtIDEpXG4gICAgY29uc3QgbGltaXQgPSBwYWdlU2l6ZVxuICAgIHJldHVybiB0aGlzLnJlcSh7XG4gICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgdXJsOiB0aGlzLmpvaW4oYGJvdHMvJHtib3RJZH0vY29udmVyc2F0aW9uYCksXG4gICAgICBkYXRhOiB7IC4uLnJlc3QsIG9mZnNldCwgbGltaXQgfSxcbiAgICAgIHRpbWVvdXQ6IG9wdGlvbnM/LnRpbWVvdXQsXG4gICAgfSlcbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUNvbnZlcnNhdGlvbih7IGJvdElkLCBjb252ZXJzYXRpb25JZCwgLi4ucmVzdCB9OiBJQm90RGVsZXRlQ29udmVyc2F0aW9uLCBvcHRpb25zPzogUmVxT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnJlcSh7XG4gICAgICBtZXRob2Q6ICdkZWxldGUnLFxuICAgICAgdXJsOiB0aGlzLmpvaW4oYGJvdHMvJHtib3RJZH0vY29udmVyc2F0aW9uLyR7Y29udmVyc2F0aW9uSWR9YCksXG4gICAgICBkYXRhOiByZXN0LFxuICAgICAgdGltZW91dDogb3B0aW9ucz8udGltZW91dCxcbiAgICB9KVxuICB9XG5cbiAgYXN5bmMgc3BlZWNoVG9UZXh0KHByb3BzOiBJQm90U3BlZWNoVG9UZXh0LCBvcHRpb25zPzogUmVxT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnJlcSh7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHVybDogdGhpcy5qb2luKGBib3RzLyR7cHJvcHMuYm90SWR9L3NwZWVjaC10by10ZXh0YCksXG4gICAgICBkYXRhOiBwcm9wcyxcbiAgICAgIHRpbWVvdXQ6IG9wdGlvbnM/LnRpbWVvdXQsXG4gICAgfSlcbiAgfVxuXG4gIGFzeW5jIHRleHRUb1NwZWVjaChwcm9wczogSUJvdFRleHRUb1NwZWVjaCwgb3B0aW9ucz86IFJlcU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5yZXEoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IHRoaXMuam9pbihgYm90cy8ke3Byb3BzLmJvdElkfS90ZXh0LXRvLXNwZWVjaGApLFxuICAgICAgZGF0YTogcHJvcHMsXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gIH1cblxuICBhc3luYyBnZXRUZXh0VG9TcGVlY2hSZXN1bHQocHJvcHM6IElCb3RHZXRUZXh0VG9TcGVlY2hSZXN1bHQsIG9wdGlvbnM/OiBSZXFPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxKHtcbiAgICAgIG1ldGhvZDogJ2dldCcsXG4gICAgICB1cmw6IHRoaXMuam9pbihgYm90cy8ke3Byb3BzLmJvdElkfS90ZXh0LXRvLXNwZWVjaGApLFxuICAgICAgZGF0YTogcHJvcHMsXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gIH1cblxuICBhc3luYyBnZXRSZWNvbW1lbmRRdWVzdGlvbnMocHJvcHM6IElHZXRCb3RSZWNvbW1lbmRRdWVzdGlvbnMsIG9wdGlvbnM/OiBSZXFPcHRpb25zKSB7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5yZXEoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IHRoaXMuam9pbihgYm90cy8ke3Byb3BzLmJvdElkfS9yZWNvbW1lbmQtcXVlc3Rpb25zYCksXG4gICAgICBkYXRhOiBwcm9wcyxcbiAgICAgIHN0cmVhbTogdHJ1ZSxcbiAgICAgIHRpbWVvdXQ6IG9wdGlvbnM/LnRpbWVvdXQsXG4gICAgfSlcbiAgICByZXR1cm4gbmV3IFN0cmVhbVJlc3VsdChyZXMpXG4gIH1cblxuICBhc3luYyBnZW5lcmF0ZUJvdChwcm9wczogSUdlbmVyYXRlQm90LCBvcHRpb25zPzogUmVxT3B0aW9ucykge1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMucmVxKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiB0aGlzLmpvaW4oJ2dlbmVyYXRlLWJvdCcpLFxuICAgICAgZGF0YTogcHJvcHMsXG4gICAgICBzdHJlYW06IHRydWUsXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gICAgcmV0dXJuIG5ldyBTdHJlYW1SZXN1bHQocmVzKVxuICB9XG5cbiAgYXN5bmMgZ2V0UHJldmlldyhwcm9wczogSUJvdFByZXZpZXcsIG9wdGlvbnM/OiBSZXFPcHRpb25zKSB7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5yZXEoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IHRoaXMuam9pbigncHJldmlldycpLFxuICAgICAgZGF0YTogcHJvcHMsXG4gICAgICBzdHJlYW06IHRydWUsXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gICAgcmV0dXJuIG5ldyBTdHJlYW1SZXN1bHQocmVzKVxuICB9XG5cbiAgZ2VuZXJhdGVJbWFnZShwcm9wczogSUdlbmVyYXRlSW1hZ2UsIG9wdGlvbnM/OiBSZXFPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxKHsgbWV0aG9kOiAncG9zdCcsIHVybDogdGhpcy5qb2luKCdnZW5lcmF0ZS1pbWFnZScpLCBkYXRhOiBwcm9wcywgdGltZW91dDogb3B0aW9ucz8udGltZW91dCB9KVxuICB9XG5cbiAgYXN5bmMgc2VuZE1lc3NhZ2UocHJvcHM6IElCb3RTZW5kTWVzc2FnZSwgb3B0aW9ucz86IFJlcU9wdGlvbnMpIHtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnJlcSh7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHVybDogdGhpcy5qb2luKGBib3RzLyR7cHJvcHMuYm90SWR9L3NlbmQtbWVzc2FnZWApLFxuICAgICAgZGF0YTogcHJvcHMsXG4gICAgICBzdHJlYW06IHRydWUsXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gICAgcmV0dXJuIG5ldyBTdHJlYW1SZXN1bHQocmVzKVxuICB9XG5cbiAgcHJpdmF0ZSBqb2luKHVybDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuYmFzZVVybH0vJHt1cmx9YFxuICB9XG59XG5cbnR5cGUgQm90RXZlbnRTdHJlYW1EYXRhID0geyBjb250ZW50OiBzdHJpbmcgfVxuXG5jbGFzcyBTdHJlYW1SZXN1bHQge1xuICBwcml2YXRlIF9ldmVudFNvdXJjZVN0cmVhbTogUmVhZGFibGVTdHJlYW08UGFyc2VkRXZlbnQ+XG5cbiAgY29uc3RydWN0b3IoX3N0cmVhbTogUmVhZGFibGVTdHJlYW08VWludDhBcnJheT4pIHtcbiAgICBjb25zdCBzdHJlYW0gPSB0b1BvbHlmaWxsUmVhZGFibGUoX3N0cmVhbSkgYXMgdHlwZW9mIF9zdHJlYW1cbiAgICB0aGlzLl9ldmVudFNvdXJjZVN0cmVhbSA9IHN0cmVhbVxuICAgICAgLnBpcGVUaHJvdWdoKG5ldyBUZXh0RGVjb2RlclN0cmVhbSgpKVxuICAgICAgLnBpcGVUaHJvdWdoKGNyZWF0ZUV2ZW50U291cmNlUGFyc2VyVHJhbnNmb3JtU3RyZWFtKCkpXG4gIH1cblxuICBwcml2YXRlIGdldCB0ZWVlZFN0cmVhbSgpIHtcbiAgICBjb25zdCBbczEsIHMyXSA9IHRoaXMuX2V2ZW50U291cmNlU3RyZWFtLnRlZSgpXG4gICAgdGhpcy5fZXZlbnRTb3VyY2VTdHJlYW0gPSBzMlxuICAgIHJldHVybiBzMVxuICB9XG5cbiAgZ2V0IGV2ZW50U291cmNlU3RyZWFtKCkge1xuICAgIHJldHVybiBjcmVhdGVBc3luY0l0ZXJhYmxlKHRoaXMudGVlZWRTdHJlYW0pXG4gIH1cblxuICBnZXQgZGF0YVN0cmVhbSgpIHtcbiAgICByZXR1cm4gY3JlYXRlQXN5bmNJdGVyYWJsZSh0aGlzLmV2ZW50U291cmNlU3RyZWFtLnBpcGVUaHJvdWdoKG5ldyBUcmFuc2Zvcm1TdHJlYW08UGFyc2VkRXZlbnQsIEJvdEV2ZW50U3RyZWFtRGF0YT4oe1xuICAgICAgdHJhbnNmb3JtKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UoY2h1bmsuZGF0YSlcbiAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoZGF0YSlcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChjaHVuay5kYXRhICE9PSAnW0RPTkVdJykge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdFcnJvciB3aGVuIHRyYW5zZm9ybWluZyBldmVudCBzb3VyY2UgZGF0YSB0byBqc29uJywgZSwgY2h1bmspXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIudGVybWluYXRlKClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSksKSwpXG4gIH1cblxuICBnZXQgdGV4dFN0cmVhbSgpIHtcbiAgICByZXR1cm4gY3JlYXRlQXN5bmNJdGVyYWJsZSh0aGlzLmRhdGFTdHJlYW0ucGlwZVRocm91Z2gobmV3IFRyYW5zZm9ybVN0cmVhbTxCb3RFdmVudFN0cmVhbURhdGEsIHN0cmluZz4oe1xuICAgICAgdHJhbnNmb3JtKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuaz8uY29udGVudCA/PyAnJylcbiAgICAgIH0sXG4gICAgfSksKSwpXG4gIH1cbn1cbiJdfQ==
373
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYm90L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF3QkEsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsc0NBQXNDLEVBQ3RDLGlCQUFpQixFQUNqQixlQUFlLEdBQ2hCLE1BQU0sVUFBVSxDQUFBO0FBRWpCO0lBR0UsYUFBWSxHQUFXLEVBQVMsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFFN0MsSUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzFCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzdCLElBQUksQ0FBQyxHQUFHLEdBQUcsVUFBQyxFQUF5QjtnQkFBdkIsSUFBQSxlQUFZLEVBQVosT0FBTyxtQkFBRyxFQUFFLEtBQUEsRUFBSyxJQUFJLGNBQXZCLFdBQXlCLENBQUY7Z0JBQU8sT0FBQSxHQUFHLHVCQUFNLElBQUksS0FBRSxPQUFPLHdCQUFPLE9BQU8sS0FBRSxhQUFhLEVBQUUsaUJBQVUsS0FBSyxDQUFFLE9BQUssQ0FBQTthQUFBLENBQUE7U0FDdEg7YUFBTTtZQUNMLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFBO1NBQ2Y7SUFDSCxDQUFDO0lBRUQsa0JBQUksR0FBSixVQUFLLEtBQWtCLEVBQUUsT0FBb0I7UUFDM0MsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQ2QsTUFBTSxFQUFFLEtBQUs7WUFDYixHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDdEIsSUFBSSxFQUFFLEtBQUs7WUFDWCxPQUFPLEVBQUUsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLE9BQU87U0FDMUIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJ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QUN6QixJQUFJO3dCQUNGLElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO3dCQUNuQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO3FCQUN6QjtvQkFBQyxPQUFPLENBQUMsRUFBRTt3QkFDVixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFOzRCQUMzQixPQUFPLENBQUMsSUFBSSxDQUFDLG1EQUFtRCxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQTt5QkFDNUU7NkJBQU07NEJBQ0wsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFBO3lCQUN2QjtxQkFDRjtnQkFDSCxDQUFDO2FBQ0YsQ0FBQyxDQUFFLENBQUUsQ0FBQTtRQUNSLENBQUM7OztPQUFBO0lBRUQsc0JBQUksb0NBQVU7YUFBZDtZQUNFLE9BQU8sbUJBQW1CLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxlQUFlLENBQTZCO2dCQUNyRyxTQUFTLFlBQUMsS0FBSyxFQUFFLFVBQVU7O29CQUN6QixVQUFVLENBQUMsT0FBTyxDQUFDLE1BQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLE9BQU8sbUNBQUksRUFBRSxDQUFDLENBQUE7Z0JBQzFDLENBQUM7YUFDRixDQUFDLENBQUUsQ0FBRSxDQUFBO1FBQ1IsQ0FBQzs7O09BQUE7SUFDSCxtQkFBQztBQUFELENBQUMsQUE3Q0QsSUE2Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIFBhcnNlZEV2ZW50IH0gZnJvbSAnLi4vZXZlbnRzb3VyY2VfcGFyc2VyJ1xuaW1wb3J0IHsgQm90UmVxLCBSZXFPcHRpb25zIH0gZnJvbSAnLi4vdHlwZSdcbmltcG9ydCB7XG4gIElCb3RDcmVhdGVDb252ZXJzYXRpb24sXG4gIElCb3REZWxldGVDb252ZXJzYXRpb24sXG4gIElCb3RHZXRDb252ZXJzYXRpb24sXG4gIElCb3RHZXRUZXh0VG9TcGVlY2hSZXN1bHQsXG4gIElCb3RQcmV2aWV3LFxuICBJQm90U2VuZE1lc3NhZ2UsXG4gIElCb3RTcGVlY2hUb1RleHQsXG4gIElCb3RUZXh0VG9TcGVlY2gsXG4gIElCb3RVcGxvYWRGaWxlcyxcbiAgSUNyZWF0ZUJvdCxcbiAgSURlbGV0ZUJvdCxcbiAgSUdlbmVyYXRlQm90LFxuICBJR2VuZXJhdGVJbWFnZSxcbiAgSUdldEJvdCxcbiAgSUdldEJvdENoYXRSZWNvcmRzLFxuICBJR2V0Qm90RmVlZGJhY2ssXG4gIElHZXRCb3RMaXN0LFxuICBJR2V0Qm90UmVjb21tZW5kUXVlc3Rpb25zLFxuICBJU2VuZEJvdEZlZWRiYWNrLFxuICBJVXBkYXRlQm90LFxufSBmcm9tICcuL3R5cGVzJ1xuaW1wb3J0IHtcbiAgY3JlYXRlQXN5bmNJdGVyYWJsZSxcbiAgdG9Qb2x5ZmlsbFJlYWRhYmxlLFxuICBjcmVhdGVFdmVudFNvdXJjZVBhcnNlclRyYW5zZm9ybVN0cmVhbSxcbiAgVGV4dERlY29kZXJTdHJlYW0sXG4gIFRyYW5zZm9ybVN0cmVhbSxcbn0gZnJvbSAnLi4vdXRpbHMnXG5cbmV4cG9ydCBjbGFzcyBCb3Qge1xuICByZXE6IEJvdFJlcVxuXG4gIGNvbnN0cnVjdG9yKHJlcTogQm90UmVxLCBwdWJsaWMgYmFzZVVybDogc3RyaW5nKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1yZXN0LXBhcmFtc1xuICAgIGNvbnN0IHRva2VuID0gYXJndW1lbnRzWzJdXG4gICAgaWYgKHR5cGVvZiB0b2tlbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMucmVxID0gKHsgaGVhZGVycyA9IHt9LCAuLi5yZXN0IH0pID0+IHJlcSh7IC4uLnJlc3QsIGhlYWRlcnM6IHsgLi4uaGVhZGVycywgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3Rva2VufWAgfSB9KVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlcSA9IHJlcVxuICAgIH1cbiAgfVxuXG4gIGxpc3QocHJvcHM6IElHZXRCb3RMaXN0LCBvcHRpb25zPzogUmVxT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnJlcSh7XG4gICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgdXJsOiB0aGlzLmpvaW4oJ2JvdHMnKSxcbiAgICAgIGRhdGE6IHByb3BzLFxuICAgICAgdGltZW91dDogb3B0aW9ucz8udGltZW91dCxcbiAgICB9KVxuICB9XG5cbiAgY3JlYXRlKHsgYm90SW5mbyB9OiBJQ3JlYXRlQm90LCBvcHRpb25zPzogUmVxT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnJlcSh7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHVybDogdGhpcy5qb2luKCdib3RzJyksXG4gICAgICBkYXRhOiBib3RJbmZvLFxuICAgICAgdGltZW91dDogb3B0aW9ucz8udGltZW91dCxcbiAgICB9KVxuICB9XG5cbiAgZ2V0KHsgYm90SWQgfTogSUdldEJvdCwgb3B0aW9ucz86IFJlcU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5yZXEoe1xuICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgIHVybDogdGhpcy5qb2luKGBib3RzLyR7Ym90SWR9YCksXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gIH1cblxuICB1cGRhdGUoeyBib3RJZCwgYm90SW5mbyB9OiBJVXBkYXRlQm90LCBvcHRpb25zPzogUmVxT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnJlcSh7XG4gICAgICBtZXRob2Q6ICdQQVRDSCcsXG4gICAgICB1cmw6IHRoaXMuam9pbihgYm90cy8ke2JvdElkfWApLFxuICAgICAgZGF0YTogYm90SW5mbyxcbiAgICAgIHRpbWVvdXQ6IG9wdGlvbnM/LnRpbWVvdXQsXG4gICAgfSlcbiAgfVxuXG4gIGRlbGV0ZSh7IGJvdElkIH06IElEZWxldGVCb3QsIG9wdGlvbnM/OiBSZXFPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxKHsgbWV0aG9kOiAnZGVsZXRlJywgdXJsOiB0aGlzLmpvaW4oYGJvdHMvJHtib3RJZH1gKSwgdGltZW91dDogb3B0aW9ucz8udGltZW91dCB9KVxuICB9XG5cbiAgZ2V0Q2hhdFJlY29yZHMocHJvcHM6IElHZXRCb3RDaGF0UmVjb3Jkcywgb3B0aW9ucz86IFJlcU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5yZXEoe1xuICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgIHVybDogdGhpcy5qb2luKGBib3RzLyR7cHJvcHMuYm90SWR9L3JlY29yZHNgKSxcbiAgICAgIGRhdGE6IHByb3BzLFxuICAgICAgdGltZW91dDogb3B0aW9ucz8udGltZW91dCxcbiAgICB9KVxuICB9XG5cbiAgc2VuZEZlZWRiYWNrKHsgdXNlckZlZWRiYWNrIH06IElTZW5kQm90RmVlZGJhY2ssIG9wdGlvbnM/OiBSZXFPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiB0aGlzLmpvaW4oYGJvdHMvJHt1c2VyRmVlZGJhY2suYm90SWR9L2ZlZWRiYWNrYCksXG4gICAgICBkYXRhOiB1c2VyRmVlZGJhY2ssXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gIH1cblxuICBnZXRGZWVkYmFjayhwcm9wczogSUdldEJvdEZlZWRiYWNrLCBvcHRpb25zPzogUmVxT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnJlcSh7XG4gICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgdXJsOiB0aGlzLmpvaW4oYGJvdHMvJHtwcm9wcy5ib3RJZH0vZmVlZGJhY2tgKSxcbiAgICAgIGRhdGE6IHByb3BzLFxuICAgICAgdGltZW91dDogb3B0aW9ucz8udGltZW91dCxcbiAgICB9KVxuICB9XG5cbiAgYXN5bmMgdXBsb2FkRmlsZXMocHJvcHM6IElCb3RVcGxvYWRGaWxlcywgb3B0aW9ucz86IFJlcU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5yZXEoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IHRoaXMuam9pbihgYm90cy8ke3Byb3BzLmJvdElkfS9maWxlc2ApLFxuICAgICAgZGF0YTogcHJvcHMsXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gIH1cblxuICBhc3luYyBjcmVhdGVDb252ZXJzYXRpb24oeyBib3RJZCwgLi4ucmVzdCB9OiBJQm90Q3JlYXRlQ29udmVyc2F0aW9uLCBvcHRpb25zPzogUmVxT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnJlcSh7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHVybDogdGhpcy5qb2luKGBib3RzLyR7Ym90SWR9L2NvbnZlcnNhdGlvbmApLFxuICAgICAgZGF0YTogcmVzdCxcbiAgICAgIHRpbWVvdXQ6IG9wdGlvbnM/LnRpbWVvdXQsXG4gICAgfSlcbiAgfVxuXG4gIGFzeW5jIGdldENvbnZlcnNhdGlvbih7IHBhZ2VTaXplID0gMTAsIHBhZ2VOdW1iZXIgPSAxLCBib3RJZCwgLi4ucmVzdCB9OiBJQm90R2V0Q29udmVyc2F0aW9uLCBvcHRpb25zPzogUmVxT3B0aW9ucykge1xuICAgIGlmIChwYWdlTnVtYmVyIDwgMSkgdGhyb3cgbmV3IEVycm9yKCdwYWdlTnVtYmVyIG11c3QgYmUgZ3JlYXRlciB0aGFuIDAnKVxuICAgIGNvbnN0IG9mZnNldCA9IHBhZ2VTaXplICogKHBhZ2VOdW1iZXIgLSAxKVxuICAgIGNvbnN0IGxpbWl0ID0gcGFnZVNpemVcbiAgICByZXR1cm4gdGhpcy5yZXEoe1xuICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgIHVybDogdGhpcy5qb2luKGBib3RzLyR7Ym90SWR9L2NvbnZlcnNhdGlvbmApLFxuICAgICAgZGF0YTogeyAuLi5yZXN0LCBvZmZzZXQsIGxpbWl0IH0sXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gIH1cblxuICBhc3luYyBkZWxldGVDb252ZXJzYXRpb24oeyBib3RJZCwgY29udmVyc2F0aW9uSWQsIC4uLnJlc3QgfTogSUJvdERlbGV0ZUNvbnZlcnNhdGlvbiwgb3B0aW9ucz86IFJlcU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5yZXEoe1xuICAgICAgbWV0aG9kOiAnZGVsZXRlJyxcbiAgICAgIHVybDogdGhpcy5qb2luKGBib3RzLyR7Ym90SWR9L2NvbnZlcnNhdGlvbi8ke2NvbnZlcnNhdGlvbklkfWApLFxuICAgICAgZGF0YTogcmVzdCxcbiAgICAgIHRpbWVvdXQ6IG9wdGlvbnM/LnRpbWVvdXQsXG4gICAgfSlcbiAgfVxuXG4gIGFzeW5jIHNwZWVjaFRvVGV4dChwcm9wczogSUJvdFNwZWVjaFRvVGV4dCwgb3B0aW9ucz86IFJlcU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5yZXEoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IHRoaXMuam9pbihgYm90cy8ke3Byb3BzLmJvdElkfS9zcGVlY2gtdG8tdGV4dGApLFxuICAgICAgZGF0YTogcHJvcHMsXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gIH1cblxuICBhc3luYyB0ZXh0VG9TcGVlY2gocHJvcHM6IElCb3RUZXh0VG9TcGVlY2gsIG9wdGlvbnM/OiBSZXFPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMucmVxKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiB0aGlzLmpvaW4oYGJvdHMvJHtwcm9wcy5ib3RJZH0vdGV4dC10by1zcGVlY2hgKSxcbiAgICAgIGRhdGE6IHByb3BzLFxuICAgICAgdGltZW91dDogb3B0aW9ucz8udGltZW91dCxcbiAgICB9KVxuICB9XG5cbiAgYXN5bmMgZ2V0VGV4dFRvU3BlZWNoUmVzdWx0KHByb3BzOiBJQm90R2V0VGV4dFRvU3BlZWNoUmVzdWx0LCBvcHRpb25zPzogUmVxT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnJlcSh7XG4gICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgdXJsOiB0aGlzLmpvaW4oYGJvdHMvJHtwcm9wcy5ib3RJZH0vdGV4dC10by1zcGVlY2hgKSxcbiAgICAgIGRhdGE6IHByb3BzLFxuICAgICAgdGltZW91dDogb3B0aW9ucz8udGltZW91dCxcbiAgICB9KVxuICB9XG5cbiAgYXN5bmMgZ2V0UmVjb21tZW5kUXVlc3Rpb25zKHByb3BzOiBJR2V0Qm90UmVjb21tZW5kUXVlc3Rpb25zLCBvcHRpb25zPzogUmVxT3B0aW9ucykge1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMucmVxKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiB0aGlzLmpvaW4oYGJvdHMvJHtwcm9wcy5ib3RJZH0vcmVjb21tZW5kLXF1ZXN0aW9uc2ApLFxuICAgICAgZGF0YTogcHJvcHMsXG4gICAgICBzdHJlYW06IHRydWUsXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gICAgcmV0dXJuIG5ldyBTdHJlYW1SZXN1bHQocmVzKVxuICB9XG5cbiAgYXN5bmMgZ2VuZXJhdGVCb3QocHJvcHM6IElHZW5lcmF0ZUJvdCwgb3B0aW9ucz86IFJlcU9wdGlvbnMpIHtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnJlcSh7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHVybDogdGhpcy5qb2luKCdnZW5lcmF0ZS1ib3QnKSxcbiAgICAgIGRhdGE6IHByb3BzLFxuICAgICAgc3RyZWFtOiB0cnVlLFxuICAgICAgdGltZW91dDogb3B0aW9ucz8udGltZW91dCxcbiAgICB9KVxuICAgIHJldHVybiBuZXcgU3RyZWFtUmVzdWx0KHJlcylcbiAgfVxuXG4gIGFzeW5jIGdldFByZXZpZXcocHJvcHM6IElCb3RQcmV2aWV3LCBvcHRpb25zPzogUmVxT3B0aW9ucykge1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMucmVxKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiB0aGlzLmpvaW4oJ3ByZXZpZXcnKSxcbiAgICAgIGRhdGE6IHByb3BzLFxuICAgICAgc3RyZWFtOiB0cnVlLFxuICAgICAgdGltZW91dDogb3B0aW9ucz8udGltZW91dCxcbiAgICB9KVxuICAgIHJldHVybiBuZXcgU3RyZWFtUmVzdWx0KHJlcylcbiAgfVxuXG4gIGdlbmVyYXRlSW1hZ2UocHJvcHM6IElHZW5lcmF0ZUltYWdlLCBvcHRpb25zPzogUmVxT3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLnJlcSh7IG1ldGhvZDogJ3Bvc3QnLCB1cmw6IHRoaXMuam9pbignZ2VuZXJhdGUtaW1hZ2UnKSwgZGF0YTogcHJvcHMsIHRpbWVvdXQ6IG9wdGlvbnM/LnRpbWVvdXQgfSlcbiAgfVxuXG4gIGFzeW5jIHNlbmRNZXNzYWdlKHByb3BzOiBJQm90U2VuZE1lc3NhZ2UsIG9wdGlvbnM/OiBSZXFPcHRpb25zKSB7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5yZXEoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IHRoaXMuam9pbihgYm90cy8ke3Byb3BzLmJvdElkfS9zZW5kLW1lc3NhZ2VgKSxcbiAgICAgIGRhdGE6IHByb3BzLFxuICAgICAgc3RyZWFtOiB0cnVlLFxuICAgICAgdGltZW91dDogb3B0aW9ucz8udGltZW91dCxcbiAgICB9KVxuICAgIHJldHVybiBuZXcgU3RyZWFtUmVzdWx0KHJlcylcbiAgfVxuXG4gIHByaXZhdGUgam9pbih1cmw6IHN0cmluZykge1xuICAgIHJldHVybiBgJHt0aGlzLmJhc2VVcmx9LyR7dXJsfWBcbiAgfVxufVxuXG50eXBlIEJvdEV2ZW50U3RyZWFtRGF0YSA9IHsgY29udGVudDogc3RyaW5nIH1cblxuY2xhc3MgU3RyZWFtUmVzdWx0IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICBwcml2YXRlIF9ldmVudFNvdXJjZVN0cmVhbTogUmVhZGFibGVTdHJlYW08UGFyc2VkRXZlbnQ+XG5cbiAgY29uc3RydWN0b3IoX3N0cmVhbTogUmVhZGFibGVTdHJlYW08VWludDhBcnJheT4pIHtcbiAgICBjb25zdCBzdHJlYW0gPSB0b1BvbHlmaWxsUmVhZGFibGUoX3N0cmVhbSkgYXMgdHlwZW9mIF9zdHJlYW1cbiAgICB0aGlzLl9ldmVudFNvdXJjZVN0cmVhbSA9IHN0cmVhbVxuICAgICAgLnBpcGVUaHJvdWdoKG5ldyBUZXh0RGVjb2RlclN0cmVhbSgpKVxuICAgICAgLnBpcGVUaHJvdWdoKGNyZWF0ZUV2ZW50U291cmNlUGFyc2VyVHJhbnNmb3JtU3RyZWFtKCkpXG4gIH1cblxuICBwcml2YXRlIGdldCB0ZWVlZFN0cmVhbSgpIHtcbiAgICBjb25zdCBbczEsIHMyXSA9IHRoaXMuX2V2ZW50U291cmNlU3RyZWFtLnRlZSgpXG4gICAgdGhpcy5fZXZlbnRTb3VyY2VTdHJlYW0gPSBzMlxuICAgIHJldHVybiBzMVxuICB9XG5cbiAgZ2V0IGV2ZW50U291cmNlU3RyZWFtKCkge1xuICAgIHJldHVybiBjcmVhdGVBc3luY0l0ZXJhYmxlKHRoaXMudGVlZWRTdHJlYW0pXG4gIH1cblxuICBnZXQgZGF0YVN0cmVhbSgpIHtcbiAgICByZXR1cm4gY3JlYXRlQXN5bmNJdGVyYWJsZSh0aGlzLmV2ZW50U291cmNlU3RyZWFtLnBpcGVUaHJvdWdoKG5ldyBUcmFuc2Zvcm1TdHJlYW08UGFyc2VkRXZlbnQsIEJvdEV2ZW50U3RyZWFtRGF0YT4oe1xuICAgICAgdHJhbnNmb3JtKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UoY2h1bmsuZGF0YSlcbiAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoZGF0YSlcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChjaHVuay5kYXRhICE9PSAnW0RPTkVdJykge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdFcnJvciB3aGVuIHRyYW5zZm9ybWluZyBldmVudCBzb3VyY2UgZGF0YSB0byBqc29uJywgZSwgY2h1bmspXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnRyb2xsZXIudGVybWluYXRlKClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSksKSwpXG4gIH1cblxuICBnZXQgdGV4dFN0cmVhbSgpIHtcbiAgICByZXR1cm4gY3JlYXRlQXN5bmNJdGVyYWJsZSh0aGlzLmRhdGFTdHJlYW0ucGlwZVRocm91Z2gobmV3IFRyYW5zZm9ybVN0cmVhbTxCb3RFdmVudFN0cmVhbURhdGEsIHN0cmluZz4oe1xuICAgICAgdHJhbnNmb3JtKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShjaHVuaz8uY29udGVudCA/PyAnJylcbiAgICAgIH0sXG4gICAgfSksKSwpXG4gIH1cbn1cbiJdfQ==
package/dist/esm/index.js CHANGED
@@ -144,4 +144,4 @@ function registerAi(app) {
144
144
  }
145
145
  export { AI, Bot, createAi, restModels as models, registerAi, utils };
146
146
  export * from './type';
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDekIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUMzQixPQUFPLEtBQUssTUFBTSxNQUFNLFVBQVUsQ0FBQTtBQUNsQyxPQUFPLEtBQUssS0FBSyxNQUFNLFNBQVMsQ0FBQTtBQUVoQyxJQUFNLGNBQWMsR0FBRyxJQUFJLENBQUE7QUFFbkIsSUFBQSxNQUFNLEdBQW9CLE1BQU0sT0FBMUIsRUFBSyxVQUFVLFVBQUssTUFBTSxFQUFsQyxVQUF5QixDQUFGLENBQVc7QUFReEMsSUFBTSwwQ0FBMEMsR0FBRyxVQUFDLEVBR2tDO1FBRnBGLGNBQWMsb0JBQUEsRUFDZCxHQUFHLFNBQUE7SUFFSCxJQUFNLEtBQUssR0FBcUIsVUFBTyxPQUEyQzs7Ozs7b0JBQ2hGLElBQUksT0FBTyxHQUFHLENBQUMsS0FBSyxLQUFLLFVBQVUsRUFBRTt3QkFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFBO3FCQUMvQztvQkFFTyxLQUFLLEdBQW1DLE9BQU8sTUFBMUMsRUFBRSxLQUFpQyxPQUFPLFFBQTVCLEVBQVosT0FBTyxtQkFBRyxFQUFFLEtBQUEsRUFBSyxXQUFXLFVBQUssT0FBTyxFQUFqRCxvQkFBdUMsQ0FBRixDQUFZO3lCQUVuRCxDQUFBLEtBQUssSUFBSSxJQUFJLENBQUEsRUFBYixjQUFhO29CQUNmLFdBQVcsR0FBRyxLQUFLLENBQUE7O3dCQUVKLFdBQU0sY0FBYyxFQUFFLEVBQUE7O29CQUFyQyxXQUFXLEdBQUcsQ0FBQyxTQUFzQixDQUFDLENBQUMsV0FBVyxDQUFBOzt3QkFHcEQsV0FBTyxHQUFH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QUUsUUFBUSxFQUFFLFVBQVUsSUFBSSxNQUFNLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFBO0FBQ3JFLGNBQWMsUUFBUSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJRmV0Y2hPcHRpb25zLCBTREtSZXF1ZXN0SW50ZXJmYWNlIH0gZnJvbSAnQGNsb3VkYmFzZS9hZGFwdGVyLWludGVyZmFjZSdcbmltcG9ydCB0eXBlIHsgSUNsb3VkYmFzZSwgSUNsb3VkYmFzZUNvbmZpZyB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IElDbG91ZGJhc2VDb21wb25lbnQgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL2NvbXBvbmVudCdcbmltcG9ydCB7IEFJIH0gZnJvbSAnLi9BSSdcbmltcG9ydCB7IEJvdCB9IGZyb20gJy4vYm90J1xuaW1wb3J0ICogYXMgbW9kZWxzIGZyb20gJy4vbW9kZWxzJ1xuaW1wb3J0ICogYXMgdXRpbHMgZnJvbSAnLi91dGlscydcblxuY29uc3QgQ09NUE9ORU5UX05BTUUgPSAnYWknXG5cbmNvbnN0IHsgTU9ERUxTLCAuLi5yZXN0TW9kZWxzIH0gPSBtb2RlbHNcblxuaW50ZXJmYWNlIElIYW5kbGVSZXF1ZXN0SW5zdGFuY2Uge1xuICByZXE6IFNES1JlcXVlc3RJbnRlcmZhY2Vcbn1cblxudHlwZSBIYW5kbGVSZXF1ZXN0SW5zdGFuY2VGdW5jID0gKG9wdGlvbnM6IElIYW5kbGVSZXF1ZXN0SW5zdGFuY2UpID0+IFNES1JlcXVlc3RJbnRlcmZhY2VcblxuY29uc3QgY3JlYXRlUmVxdWVzdEluc3RhbmNlV2l0aEFjY2Vzc1Rva2VuSGVhZGVyID0gKHtcbiAgZ2V0QWNjZXNzVG9rZW4sXG4gIHJlcSxcbn06IElIYW5kbGVSZXF1ZXN0SW5zdGFuY2UgJiB7IGdldEFjY2Vzc1Rva2VuOiAoKSA9PiBQcm9taXNlPHsgYWNjZXNzVG9rZW46IHN0cmluZyB9PiB9KSA9PiB7XG4gIGNvbnN0IGZldGNoOiB0eXBlb2YgcmVxLmZldGNoID0gYXN5bmMgKG9wdGlvbnM6IElGZXRjaE9wdGlvbnMgJiB7IHRva2VuPzogc3RyaW5nIH0pID0+IHtcbiAgICBpZiAodHlwZW9mIHJlcS5mZXRjaCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdyZXEuZmV0Y2ggaXMgbm90IGEgZnVuY3Rpb24nKVxuICAgIH1cblxuICAgIGNvbnN0IHsgdG9rZW4sIGhlYWRlcnMgPSB7fSwgLi4ucmVzdE9wdGlvbnMgfSA9IG9wdGlvbnNcbiAgICBsZXQgYWNjZXNzVG9rZW46IHN0cmluZ1xuICAgIGlmICh0b2tlbiAhPSBudWxsKSB7XG4gICAgICBhY2Nlc3NUb2tlbiA9IHRva2VuXG4gICAgfSBlbHNlIHtcbiAgICAgIGFjY2Vzc1Rva2VuID0gKGF3YWl0IGdldEFjY2Vzc1Rva2VuKCkpLmFjY2Vzc1Rva2VuXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcS5mZXRjaCh7XG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHthY2Nlc3NUb2tlbn1gLFxuICAgICAgICAuLi5oZWFkZXJzLFxuICAgICAgfSxcbiAgICAgIC4uLnJlc3RPcHRpb25zLFxuICAgIH0pXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGRvd25sb2FkOiByZXEuZG93bmxvYWQsXG4gICAgcG9zdDogcmVxLnBvc3QsXG4gICAgdXBsb2FkOiByZXEudXBsb2FkLFxuICAgIGZldGNoLFxuICB9XG59XG5cbmludGVyZmFjZSBBSUluaXRPcHRpb24ge1xuICBiYXNlVXJsPzogc3RyaW5nXG59XG5cbmludGVyZmFjZSBJQ3JlYXRlQWkge1xuICByZXE6IFNES1JlcXVlc3RJbnRlcmZhY2VcbiAgYmFzZVVybD86IHN0cmluZ1xuICBlbnY/OiBzdHJpbmdcbiAgZ2V0QWNjZXNzVG9rZW4/OiAoKSA9PiBQcm9taXNlPHsgYWNjZXNzVG9rZW46IHN0cmluZyB9PlxuICBoYW5kbGVSZXFJbnN0YW5jZT86IEhhbmRsZVJlcXVlc3RJbnN0YW5jZUZ1bmNcbiAgaTE4bj86IElDbG91ZGJhc2VDb25maWdbJ2kxOG4nXVxufVxuXG4vKipcbiAqIOacgOeugOWcsOWIm+W7uuS4gOS4quaOpeS6keW8gOWPkee9keWFs+acjeWKoeeahCBgQUlgIOWunuS+i++8jOivt+axguaXtuS8muiHquWKqOW4puS4iumJtOadg+ivt+axguWktOOAglxuICog5Y+q6ZyA6KaB5Lyg5YWl77yaXG4gKlxuICogLSBgZ2V0QWNjZXNzVG9rZW5gOiDojrflj5YgYWNjZXNzVG9rZW4g55qE5Ye95pWwXG4gKiAtIGByZXFgOiDor7fmsYLlh73mlbDvvIzkuIDoiKzku44gYWRhcHRlciDkuIrmi79cbiAqIC0gYGVudmA6IOS6keW8gOWPkeeOr+WigyBJRFxuICpcbiAqIOWFtuS7luWPguaVsOWPr+aMiemcgOS8oOWFpeimhuebluWHveaVsOmAu+i+keOAglxuICovXG5mdW5jdGlvbiBjcmVhdGVBaSh7IGVudiwgYmFzZVVybCwgcmVxLCBnZXRBY2Nlc3NUb2tlbiwgaGFuZGxlUmVxSW5zdGFuY2UsIGkxOG4gfTogSUNyZWF0ZUFpKSB7XG4gIGNvbnN0IGdldEJhc2VVcmwgPSAoKSA9PiB7XG4gICAgaWYgKGJhc2VVcmwgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGJhc2VVcmxcbiAgICB9XG4gICAgaWYgKGVudiA9PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2BlbnZgIGlzIHJlcXVpcmVkIHdoZW4gYGJhc2VVcmxgIGlzIG5vdCBwcm92aWRlZCEnKVxuICAgIH1cbiAgICByZXR1cm4gYGh0dHBzOi8vJHtlbnZ9LmFwaS50Y2xvdWRiYXNlZ2F0ZXdheS5jb20vdjFgXG4gIH1cblxuICBjb25zdCBnZXRSZXEgPSAoKSA9PiB7XG4gICAgaWYgKGhhbmRsZVJlcUluc3RhbmNlID09IG51bGwpIHtcbiAgICAgIGlmIChnZXRBY2Nlc3NUb2tlbiA9PSBudWxsKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignYGdldEFjY2Vzc1Rva2VuYCBpcyByZXF1aXJlZCB3aGVuIGBoYW5kbGVSZXFJbnN0YW5jZWAgaXMgbm90IHByb3ZpZGVkIScpXG4gICAgICB9XG4gICAgICByZXR1cm4gY3JlYXRlUmVxdWVzdEluc3RhbmNlV2l0aEFjY2Vzc1Rva2VuSGVhZGVyKHsgcmVxLCBnZXRBY2Nlc3NUb2tlbiB9KVxuICAgIH1cbiAgICByZXR1cm4gaGFuZGxlUmVxSW5zdGFuY2UoeyByZXEgfSlcbiAgfVxuXG4gIHJldHVybiBuZXcgQUkoZ2V0UmVxKCksIGdldEJhc2VVcmwoKSwgaTE4bilcbn1cblxuLyoqXG4gKiDliJvlu7ogYEFJYCDlrp7kvovjgIJcbiAqIOivpeWHveaVsOaMgui9veWcqCBqcyBzZGsg55qEIENsb3VkYmFzZSDlrp7kvovkuIrjgIJcbiAqIOivpeWHveaVsOiwg+eUqOS6huacrOaooeWdl+aatOmcsueahCBgY3JlYXRlQWlgIOWHveaVsO+8jOS9huiwg+eUqOaXtumAmui/h+S8oOWFpeWPguaVsOWBmuS6humAu+i+keimhueblu+8mlxuICpcbiAqIC0g5Lyg5YWl5LuOIENsb3VkYmFzZSDlrp7kvovkuIrnmoTkuK3lv4PnmoQgYHJlcWBcbiAqIC0g5Lyg5YWl5LuOIENsb3VkYmFzZSDlrp7kvovkuIrmi7/liLDnmoQgYGJhc2VVcmxgXG4gKiAtIOS8oOWFpeS4gOS4quS4jeWkhOeQhiBgcmVxYCDnmoQgYGhhbmRsZVJlcUluc3RhbmNlYO+8jOeUseS6jiBgcmVxYCDmmK/ku44gQ2xvdWRiYXNlIOWunuS+i+S4iuaLv+WIsOeahO+8jOi/meS4quS4reW/g+eahCBgcmVxYCDlt7Lnu4/lj6/nlKjkuoZcbiAqIC0g5LiN55So5Lyg5YWlIGBlbnZgIOS6hu+8jOWboOS4uuW3sue7j+S8oOS6hiBgYmFzZVVybGBcbiAqIC0g5LiN55So5Lyg5YWlIGBnZXRBY2Nlc3NUb2tlbmAg5LqG77yM5Zug5Li65Lyg5LqGIGBoYW5kbGVSZXFJbnN0YW5jZWBcbiAqL1xuZnVuY3Rpb24gYWkoXG4gIHRoaXM6IElDbG91ZGJhc2UgJiB7IGdldEVuZFBvaW50V2l0aEtleTogKGtleTogJ0dBVEVXQVknKSA9PiB7IEJBU0VfVVJMOiBzdHJpbmc7IFBST1RPQ09MOiBzdHJpbmcgfSB9LFxuICBvcHRpb25zPzogQUlJbml0T3B0aW9uLFxuKSB7XG4gIGNvbnN0IHJlcSA9IHRoaXMucmVxdWVzdFxuXG4gIGlmIChyZXEuZmV0Y2ggPT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcignY2xvdWRiYXNlLnJlcXVlc3QuZmV0Y2goKSB1bmltcGxlbWVudGVkIScpXG4gIH1cblxuICBjb25zdCBnZXRVcmxGcm9tQ2xvdWQgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBCQVNFX1VSTCwgUFJPVE9DT0wgfSA9IHRoaXMuZ2V0RW5kUG9pbnRXaXRoS2V5KCdHQVRFV0FZJylcbiAgICByZXR1cm4gYCR7UFJPVE9DT0x9JHtCQVNFX1VSTH1gXG4gIH1cblxuICBjb25zdCBiYXNlVXJsID0gb3B0aW9ucz8uYmFzZVVybCA/PyBnZXRVcmxGcm9tQ2xvdWQoKVxuXG4gIHJldHVybiBjcmVhdGVBaSh7IHJlcSwgYmFzZVVybCwgaGFuZGxlUmVxSW5zdGFuY2U6ICh7IHJlcSB9KSA9PiByZXEsIGkxOG46IHRoaXMuY29uZmlnLmkxOG4gfSlcbn1cblxuY29uc3QgY29tcG9uZW50OiBJQ2xvdWRiYXNlQ29tcG9uZW50ID0ge1xuICBuYW1lOiBDT01QT05FTlRfTkFNRSxcbiAgZW50aXR5OiB7IGFpIH0sXG59XG5cbmZ1bmN0aW9uIHJlZ2lzdGVyQWkoYXBwOiBJQ2xvdWRiYXNlKSB7XG4gIHRyeSB7XG4gICAgYXBwLnJlZ2lzdGVyQ29tcG9uZW50KGNvbXBvbmVudClcbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnNvbGUud2FybihlKVxuICB9XG59XG5cbmV4cG9ydCB7IEFJLCBCb3QsIGNyZWF0ZUFpLCByZXN0TW9kZWxzIGFzIG1vZGVscywgcmVnaXN0ZXJBaSwgdXRpbHMgfVxuZXhwb3J0ICogZnJvbSAnLi90eXBlJ1xuIl19
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUlBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDekIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUMzQixPQUFPLEtBQUssTUFBTSxNQUFNLFVBQVUsQ0FBQTtBQUNsQyxPQUFPLEtBQUssS0FBSyxNQUFNLFNBQVMsQ0FBQTtBQUVoQyxJQUFNLGNBQWMsR0FBRyxJQUFJLENBQUE7QUFFbkIsSUFBQSxNQUFNLEdBQW9CLE1BQU0sT0FBMUIsRUFBSyxVQUFVLFVBQUssTUFBTSxFQUFsQyxVQUF5QixDQUFGLENBQVc7QUFReEMsSUFBTSwwQ0FBMEMsR0FBRyxVQUFDLEVBR2tDO1FBRnBGLGNBQWMsb0JBQUEsRUFDZCxHQUFHLFNBQUE7SUFFSCxJQUFNLEtBQUssR0FBcUIsVUFBTyxPQUEyQzs7Ozs7b0JBQ2hGLElBQUksT0FBTyxHQUFHLENBQUMsS0FBSyxLQUFLLFVBQVUsRUFBRTt3QkFDbkMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFBO3FCQUMvQztvQkFFTyxLQUFLLEdBQW1DLE9BQU8sTUFBMUMsRUFBRSxLQUFpQyxPQUFPLFFBQTVCLEVBQVosT0FBTyxtQkFBRyxFQUFFLEtBQUEsRUFBSyxXQUFXLFVBQUssT0FBTyxFQUFqRCxvQkFBdUMsQ0FBRixDQUFZO3lCQUVuRCxDQUFBLEtBQUssSUFBSSxJQUFJLENBQUEsRUFBYixjQUFhO29CQUNmLFdBQVcsR0FBRyxLQUFLLENBQUE7O3dCQUVKLFdBQU0sY0FBYyxFQUFFLEVBQUE7O29CQUFyQyxXQUFXLEdBQUcsQ0FBQyxTQUFzQixDQUFDLENBQUMsV0FBVyxDQUFBOzt3QkFHcEQsV0FBTyxHQUFHLENBQUMsS0FBSyxZQUNkLE9BQU8sYUFDTCxhQUFhLEVBQUUsaUJBQVUsV0FBVyxDQUFFLElBQ25DLE9BQU8sS0FFVCxXQUFXLEVBQ2QsRUFBQTs7O1NBQ0gsQ0FBQTtJQUVELE9BQU87UUFDTCxRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVE7UUFDdEIsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJO1FBQ2QsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNO1FBQ2xCLEtBQUssT0FBQTtLQUNOLENBQUE7QUFDSCxDQUFDLENBQUE7QUF5QkQsU0FBUyxRQUFRLENBQUMsRUFBeUU7UUFBdkUsR0FBRyxTQUFBLEVBQUUsT0FBTyxhQUFBLEVBQUUsR0FBRyxTQUFBLEVBQUUsY0FBYyxvQkFBQSxFQUFFLGlCQUFpQix1QkFBQSxFQUFFLElBQUksVUFBQTtJQUM1RSxJQUFNLFVBQVUsR0FBRztRQUNqQixJQUFJLE9BQU8sSUFBSSxJQUFJLEVBQUU7WUFDbkIsT0FBTyxPQUFPLENBQUE7U0FDZjtRQUNELElBQUksR0FBRyxJQUFJLElBQUksRUFBRTtZQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQTtTQUNyRTtRQUNELE9BQU8sa0JBQVcsR0FBRyxrQ0FBK0IsQ0FBQTtJQUN0RCxDQUFDLENBQUE7SUFFRCxJQUFNLE1BQU0sR0FBRztRQUNiLElBQUksaUJBQWlCLElBQUksSUFBSSxFQUFFO1lBQzdCLElBQUksY0FBYyxJQUFJLElBQUksRUFBRTtnQkFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyx3RUFBd0UsQ0FBQyxDQUFBO2FBQzFGO1lBQ0QsT0FBTywwQ0FBMEMsQ0FBQyxFQUFFLEdBQUcsS0FBQSxFQUFFLGNBQWMsZ0JBQUEsRUFBRSxDQUFDLENBQUE7U0FDM0U7UUFDRCxPQUFPLGlCQUFpQixDQUFDLEVBQUUsR0FBRyxLQUFBLEVBQUUsQ0FBQyxDQUFBO0lBQ25DLENBQUMsQ0FBQTtJQUVELE9BQU8sSUFBSSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUE7QUFDN0MsQ0FBQztBQWFELFNBQVMsRUFBRSxDQUVULE9BQXNCO0lBRnhCLGlCQWtCQzs7SUFkQyxJQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFBO0lBRXhCLElBQUksR0FBRyxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUU7UUFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxDQUFBO0tBQzVEO0lBRUQsSUFBTSxlQUFlLEdBQUc7UUFDaEIsSUFBQSxLQUF5QixLQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEVBQXpELFFBQVEsY0FBQSxFQUFFLFFBQVEsY0FBdUMsQ0FBQTtRQUNqRSxPQUFPLFVBQUcsUUFBUSxTQUFHLFFBQVEsQ0FBRSxDQUFBO0lBQ2pDLENBQUMsQ0FBQTtJQUVELElBQU0sT0FBTyxHQUFHLE1BQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLE9BQU8sbUNBQUksZUFBZSxFQUFFLENBQUE7SUFFckQsT0FBTyxRQUFRLENBQUMsRUFBRSxHQUFHLEtBQUEsRUFBRSxPQUFPLFNBQUEsRUFBRSxpQkFBaUIsRUFBRSxVQUFDLEVBQU87Z0JBQUwsR0FBRyxTQUFBO1lBQU8sT0FBQSxHQUFHO1FBQUgsQ0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7QUFDaEcsQ0FBQztBQUVELElBQU0sU0FBUyxHQUF3QjtJQUNyQyxJQUFJLEVBQUUsY0FBYztJQUNwQixNQUFNLEVBQUUsRUFBRSxFQUFFLElBQUEsRUFBRTtDQUNmLENBQUE7QUFFRCxTQUFTLFVBQVUsQ0FBQyxHQUFlO0lBQ2pDLElBQUk7UUFDRixHQUFHLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUE7S0FDakM7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7S0FDaEI7QUFDSCxDQUFDO0FBRUQsT0FBTyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFVBQVUsSUFBSSxNQUFNLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFBO0FBQ3JFLGNBQWMsUUFBUSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgZXFlcWVxICovXG5pbXBvcnQgdHlwZSB7IElGZXRjaE9wdGlvbnMsIFNES1JlcXVlc3RJbnRlcmZhY2UgfSBmcm9tICdAY2xvdWRiYXNlL2FkYXB0ZXItaW50ZXJmYWNlJ1xuaW1wb3J0IHR5cGUgeyBJQ2xvdWRiYXNlLCBJQ2xvdWRiYXNlQ29uZmlnIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcydcbmltcG9ydCB0eXBlIHsgSUNsb3VkYmFzZUNvbXBvbmVudCB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMvY29tcG9uZW50J1xuaW1wb3J0IHsgQUkgfSBmcm9tICcuL0FJJ1xuaW1wb3J0IHsgQm90IH0gZnJvbSAnLi9ib3QnXG5pbXBvcnQgKiBhcyBtb2RlbHMgZnJvbSAnLi9tb2RlbHMnXG5pbXBvcnQgKiBhcyB1dGlscyBmcm9tICcuL3V0aWxzJ1xuXG5jb25zdCBDT01QT05FTlRfTkFNRSA9ICdhaSdcblxuY29uc3QgeyBNT0RFTFMsIC4uLnJlc3RNb2RlbHMgfSA9IG1vZGVsc1xuXG5pbnRlcmZhY2UgSUhhbmRsZVJlcXVlc3RJbnN0YW5jZSB7XG4gIHJlcTogU0RLUmVxdWVzdEludGVyZmFjZVxufVxuXG50eXBlIEhhbmRsZVJlcXVlc3RJbnN0YW5jZUZ1bmMgPSAob3B0aW9uczogSUhhbmRsZVJlcXVlc3RJbnN0YW5jZSkgPT4gU0RLUmVxdWVzdEludGVyZmFjZVxuXG5jb25zdCBjcmVhdGVSZXF1ZXN0SW5zdGFuY2VXaXRoQWNjZXNzVG9rZW5IZWFkZXIgPSAoe1xuICBnZXRBY2Nlc3NUb2tlbixcbiAgcmVxLFxufTogSUhhbmRsZVJlcXVlc3RJbnN0YW5jZSAmIHsgZ2V0QWNjZXNzVG9rZW46ICgpID0+IFByb21pc2U8eyBhY2Nlc3NUb2tlbjogc3RyaW5nIH0+IH0pID0+IHtcbiAgY29uc3QgZmV0Y2g6IHR5cGVvZiByZXEuZmV0Y2ggPSBhc3luYyAob3B0aW9uczogSUZldGNoT3B0aW9ucyAmIHsgdG9rZW4/OiBzdHJpbmcgfSkgPT4ge1xuICAgIGlmICh0eXBlb2YgcmVxLmZldGNoICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3JlcS5mZXRjaCBpcyBub3QgYSBmdW5jdGlvbicpXG4gICAgfVxuXG4gICAgY29uc3QgeyB0b2tlbiwgaGVhZGVycyA9IHt9LCAuLi5yZXN0T3B0aW9ucyB9ID0gb3B0aW9uc1xuICAgIGxldCBhY2Nlc3NUb2tlbjogc3RyaW5nXG4gICAgaWYgKHRva2VuICE9IG51bGwpIHtcbiAgICAgIGFjY2Vzc1Rva2VuID0gdG9rZW5cbiAgICB9IGVsc2Uge1xuICAgICAgYWNjZXNzVG9rZW4gPSAoYXdhaXQgZ2V0QWNjZXNzVG9rZW4oKSkuYWNjZXNzVG9rZW5cbiAgICB9XG5cbiAgICByZXR1cm4gcmVxLmZldGNoKHtcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke2FjY2Vzc1Rva2VufWAsXG4gICAgICAgIC4uLmhlYWRlcnMsXG4gICAgICB9LFxuICAgICAgLi4ucmVzdE9wdGlvbnMsXG4gICAgfSlcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZG93bmxvYWQ6IHJlcS5kb3dubG9hZCxcbiAgICBwb3N0OiByZXEucG9zdCxcbiAgICB1cGxvYWQ6IHJlcS51cGxvYWQsXG4gICAgZmV0Y2gsXG4gIH1cbn1cblxuaW50ZXJmYWNlIEFJSW5pdE9wdGlvbiB7XG4gIGJhc2VVcmw/OiBzdHJpbmdcbn1cblxuaW50ZXJmYWNlIElDcmVhdGVBaSB7XG4gIHJlcTogU0RLUmVxdWVzdEludGVyZmFjZVxuICBiYXNlVXJsPzogc3RyaW5nXG4gIGVudj86IHN0cmluZ1xuICBnZXRBY2Nlc3NUb2tlbj86ICgpID0+IFByb21pc2U8eyBhY2Nlc3NUb2tlbjogc3RyaW5nIH0+XG4gIGhhbmRsZVJlcUluc3RhbmNlPzogSGFuZGxlUmVxdWVzdEluc3RhbmNlRnVuY1xuICBpMThuPzogSUNsb3VkYmFzZUNvbmZpZ1snaTE4biddXG59XG5cbi8qKlxuICog5pyA566A5Zyw5Yib5bu65LiA5Liq5o6l5LqR5byA5Y+R572R5YWz5pyN5Yqh55qEIGBBSWAg5a6e5L6L77yM6K+35rGC5pe25Lya6Ieq5Yqo5bim5LiK6Ym05p2D6K+35rGC5aS044CCXG4gKiDlj6rpnIDopoHkvKDlhaXvvJpcbiAqXG4gKiAtIGBnZXRBY2Nlc3NUb2tlbmA6IOiOt+WPliBhY2Nlc3NUb2tlbiDnmoTlh73mlbBcbiAqIC0gYHJlcWA6IOivt+axguWHveaVsO+8jOS4gOiIrOS7jiBhZGFwdGVyIOS4iuaLv1xuICogLSBgZW52YDog5LqR5byA5Y+R546v5aKDIElEXG4gKlxuICog5YW25LuW5Y+C5pWw5Y+v5oyJ6ZyA5Lyg5YWl6KaG55uW5Ye95pWw6YC76L6R44CCXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUFpKHsgZW52LCBiYXNlVXJsLCByZXEsIGdldEFjY2Vzc1Rva2VuLCBoYW5kbGVSZXFJbnN0YW5jZSwgaTE4biB9OiBJQ3JlYXRlQWkpIHtcbiAgY29uc3QgZ2V0QmFzZVVybCA9ICgpID0+IHtcbiAgICBpZiAoYmFzZVVybCAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gYmFzZVVybFxuICAgIH1cbiAgICBpZiAoZW52ID09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignYGVudmAgaXMgcmVxdWlyZWQgd2hlbiBgYmFzZVVybGAgaXMgbm90IHByb3ZpZGVkIScpXG4gICAgfVxuICAgIHJldHVybiBgaHR0cHM6Ly8ke2Vudn0uYXBpLnRjbG91ZGJhc2VnYXRld2F5LmNvbS92MWBcbiAgfVxuXG4gIGNvbnN0IGdldFJlcSA9ICgpID0+IHtcbiAgICBpZiAoaGFuZGxlUmVxSW5zdGFuY2UgPT0gbnVsbCkge1xuICAgICAgaWYgKGdldEFjY2Vzc1Rva2VuID09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdgZ2V0QWNjZXNzVG9rZW5gIGlzIHJlcXVpcmVkIHdoZW4gYGhhbmRsZVJlcUluc3RhbmNlYCBpcyBub3QgcHJvdmlkZWQhJylcbiAgICAgIH1cbiAgICAgIHJldHVybiBjcmVhdGVSZXF1ZXN0SW5zdGFuY2VXaXRoQWNjZXNzVG9rZW5IZWFkZXIoeyByZXEsIGdldEFjY2Vzc1Rva2VuIH0pXG4gICAgfVxuICAgIHJldHVybiBoYW5kbGVSZXFJbnN0YW5jZSh7IHJlcSB9KVxuICB9XG5cbiAgcmV0dXJuIG5ldyBBSShnZXRSZXEoKSwgZ2V0QmFzZVVybCgpLCBpMThuKVxufVxuXG4vKipcbiAqIOWIm+W7uiBgQUlgIOWunuS+i+OAglxuICog6K+l5Ye95pWw5oyC6L295ZyoIGpzIHNkayDnmoQgQ2xvdWRiYXNlIOWunuS+i+S4iuOAglxuICog6K+l5Ye95pWw6LCD55So5LqG5pys5qih5Z2X5pq06Zyy55qEIGBjcmVhdGVBaWAg5Ye95pWw77yM5L2G6LCD55So5pe26YCa6L+H5Lyg5YWl5Y+C5pWw5YGa5LqG6YC76L6R6KaG55uW77yaXG4gKlxuICogLSDkvKDlhaXku44gQ2xvdWRiYXNlIOWunuS+i+S4iueahOS4reW/g+eahCBgcmVxYFxuICogLSDkvKDlhaXku44gQ2xvdWRiYXNlIOWunuS+i+S4iuaLv+WIsOeahCBgYmFzZVVybGBcbiAqIC0g5Lyg5YWl5LiA5Liq5LiN5aSE55CGIGByZXFgIOeahCBgaGFuZGxlUmVxSW5zdGFuY2Vg77yM55Sx5LqOIGByZXFgIOaYr+S7jiBDbG91ZGJhc2Ug5a6e5L6L5LiK5ou/5Yiw55qE77yM6L+Z5Liq5Lit5b+D55qEIGByZXFgIOW3sue7j+WPr+eUqOS6hlxuICogLSDkuI3nlKjkvKDlhaUgYGVudmAg5LqG77yM5Zug5Li65bey57uP5Lyg5LqGIGBiYXNlVXJsYFxuICogLSDkuI3nlKjkvKDlhaUgYGdldEFjY2Vzc1Rva2VuYCDkuobvvIzlm6DkuLrkvKDkuoYgYGhhbmRsZVJlcUluc3RhbmNlYFxuICovXG5mdW5jdGlvbiBhaShcbiAgdGhpczogSUNsb3VkYmFzZSAmIHsgZ2V0RW5kUG9pbnRXaXRoS2V5OiAoa2V5OiAnR0FURVdBWScpID0+IHsgQkFTRV9VUkw6IHN0cmluZzsgUFJPVE9DT0w6IHN0cmluZyB9IH0sXG4gIG9wdGlvbnM/OiBBSUluaXRPcHRpb24sXG4pIHtcbiAgY29uc3QgcmVxID0gdGhpcy5yZXF1ZXN0XG5cbiAgaWYgKHJlcS5mZXRjaCA9PSBudWxsKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdjbG91ZGJhc2UucmVxdWVzdC5mZXRjaCgpIHVuaW1wbGVtZW50ZWQhJylcbiAgfVxuXG4gIGNvbnN0IGdldFVybEZyb21DbG91ZCA9ICgpID0+IHtcbiAgICBjb25zdCB7IEJBU0VfVVJMLCBQUk9UT0NPTCB9ID0gdGhpcy5nZXRFbmRQb2ludFdpdGhLZXkoJ0dBVEVXQVknKVxuICAgIHJldHVybiBgJHtQUk9UT0NPTH0ke0JBU0VfVVJMfWBcbiAgfVxuXG4gIGNvbnN0IGJhc2VVcmwgPSBvcHRpb25zPy5iYXNlVXJsID8/IGdldFVybEZyb21DbG91ZCgpXG5cbiAgcmV0dXJuIGNyZWF0ZUFpKHsgcmVxLCBiYXNlVXJsLCBoYW5kbGVSZXFJbnN0YW5jZTogKHsgcmVxIH0pID0+IHJlcSwgaTE4bjogdGhpcy5jb25maWcuaTE4biB9KVxufVxuXG5jb25zdCBjb21wb25lbnQ6IElDbG91ZGJhc2VDb21wb25lbnQgPSB7XG4gIG5hbWU6IENPTVBPTkVOVF9OQU1FLFxuICBlbnRpdHk6IHsgYWkgfSxcbn1cblxuZnVuY3Rpb24gcmVnaXN0ZXJBaShhcHA6IElDbG91ZGJhc2UpIHtcbiAgdHJ5IHtcbiAgICBhcHAucmVnaXN0ZXJDb21wb25lbnQoY29tcG9uZW50KVxuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS53YXJuKGUpXG4gIH1cbn1cblxuZXhwb3J0IHsgQUksIEJvdCwgY3JlYXRlQWksIHJlc3RNb2RlbHMgYXMgbW9kZWxzLCByZWdpc3RlckFpLCB1dGlscyB9XG5leHBvcnQgKiBmcm9tICcuL3R5cGUnXG4iXX0=
@@ -124,4 +124,4 @@ var ArkSimpleModel = (function () {
124
124
  return ArkSimpleModel;
125
125
  }());
126
126
  export { ArkSimpleModel };
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9kZWxzL0Fyay9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsMEJBQTBCLEdBQzNCLE1BQU0sYUFBYSxDQUFBO0FBWXBCLFNBQVMsWUFBWSxDQUFDLEtBQXlCO0lBQ3JDLElBQUEsUUFBUSxHQUF1QyxLQUFLLFNBQTVDLEVBQUUsS0FBSyxHQUFnQyxLQUFLLE1BQXJDLEVBQUUsV0FBVyxHQUFtQixLQUFLLFlBQXhCLEVBQUUsS0FBSyxHQUFZLEtBQUssTUFBakIsRUFBRSxLQUFLLEdBQUssS0FBSyxNQUFWLENBQVU7SUFFNUQsNkJBQ0ssS0FBSyxLQUNSLFFBQVEsVUFBQSxFQUNSLEtBQUssT0FBQSxFQUNMLEtBQUssT0FBQSxFQUNMLEtBQUssT0FBQSxFQUNMLFdBQVcsYUFBQSxJQUNaO0FBQ0gsQ0FBQztBQUVEO0lBRUUsd0JBQW9CLEdBQWEsRUFBUyxPQUFlLEVBQUUsTUFBZTtRQUF0RCxRQUFHLEdBQUgsR0FBRyxDQUFVO1FBQVMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQURsRCxXQUFNLEdBQUcsNkJBQTZCLENBQUE7UUFFM0MsSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO1NBQ3JCO0lBQ0gsQ0FBQztJQUVELHNCQUFZLCtCQUFHO2FBQWY7WUFDRSxPQUFPLFVBQUcsSUFBSSxDQUFDLE9BQU8sY0FBSSxJQUFJLENBQUMsTUFBTSxDQUFFLENBQUE7UUFDekMsQ0FBQzs7O09BQUE7SUFFWSxtQ0FBVSxHQUF2QixVQUF3QixJQUF3QixFQUFFLE9BQW9COzs7Ozs0QkFDdkQsV0FBTSxJQUFJLENBQUMsR0FBRyxDQUFDOzRCQUMxQixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7NEJBQ2IsSUFBSSx3QkFDQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQ3JCLE1BQU0sRUFBRSxLQUFLLEdBQ2Q7NEJBQ0QsTUFBTSxFQUFFLEtBQUs7NEJBQ2IsT0FBTyxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxPQUFPO3lCQUMxQixDQUFDLEVBQUE7O3dCQVJJLEdBQUcsR0FBRyxDQUFDLFNBUVgsQ0FBMEI7d0JBQzVCLGlDQUFZLEdBQUcsS0FBRSxXQUFXLEVBQUUsR0FBRyxLQUFFOzs7O0tBQ3BDO0lBRVksaUNBQVEsR0FBckIsVUFBc0IsSUFBd0IsRUFBRSxPQUFvQjs7Ozs7O3dCQUM5RCxVQUFVLEdBQW1CLElBQUksQ0FBQTt3QkFDckIsV0FBTSxJQUFJLENBQUMsR0FBRyxDQUFDO2dDQUM3QixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7Z0NBQ2IsSUFBSSx3QkFDQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQ3JCLE1BQU0sRUFBRSxJQUFJLEdBQ2I7Z0NBQ0QsTUFBTSxFQUFFLElBQUk7Z0NBQ1osT0FBTyxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxPQUFPOzZCQUMxQixDQUFDLEVBQUE7O3dCQVJJLE9BQU8sR0FBRyxTQVFkO3dCQUNJLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQW1CLENBQUE7d0JBRXRELFNBQVMsR0FBRyxrQkFBa0IsQ0FBc0IsTUFBTSxDQUFDLENBQUE7d0JBQzNELGFBQWEsR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksZUFBZSxDQUF1RTs0QkFDcEksU0FBUyxZQUFDLEtBQUssRUFBRSxVQUFVO2dDQUN6QixJQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFDLE1BQU07b0NBQzFDLElBQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUE7b0NBQzVCLElBQUksVUFBVSxJQUFJLElBQUk7d0NBQUUsVUFBVSxHQUFHLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxDQUFBO29DQUN4RSxJQUFJLFVBQVUsRUFBRTt3Q0FDZCw2QkFDSyxNQUFNLEtBQ1QsYUFBYSxFQUFFLFlBQXFCLEVBQ3BDLEtBQUssRUFBRSxPQUFPLElBQ2Y7cUNBQ0Y7b0NBQ0QsT0FBTyxNQUFNLENBQUE7Z0NBQ2YsQ0FBQyxDQUFDLENBQUE7Z0NBQ0YsSUFBTSxRQUFRLHlCQUFRLEtBQUssS0FBRSxPQUFPLEVBQUUsVUFBVSxHQUFFLENBQUE7Z0NBQ2xELFVBQVUsQ0FBQyxPQUFPLHVCQUFNLFFBQVEsS0FBRSxXQUFXLEVBQUUsS0FBSyxJQUFHLENBQUE7NEJBQ3pELENBQUM7eUJBQ0YsQ0FBQyxDQUFFLENBQUE7d0JBRUosV0FBTyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsRUFBQTs7OztLQUMxQztJQUNILHFCQUFDO0FBQUQsQ0FBQyxBQTVERCxJQTREQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGNyZWF0ZUFzeW5jSXRlcmFibGUsXG4gIFRyYW5zZm9ybVN0cmVhbSxcbiAgdG9Qb2x5ZmlsbFJlYWRhYmxlLFxuICBpbnRvU3RhbmRhcmRTdHJlYW0sXG4gIGlzVG9vbENhbGxBc3Npc3RhbnRNZXNzYWdlLFxufSBmcm9tICcuLi8uLi91dGlscydcbmltcG9ydCB0eXBlIHsgQXJrR2VuZXJhdGVUZXh0T3V0cHV0LCBBcmtJbnB1dERhdGEsIEFya1N0cmVhbVRleHRPdXRwdXQgfSBmcm9tICcuL3R5cGUnXG5pbXBvcnQgdHlwZSB7XG4gIE1vZGVsUmVxLFxuICBCYXNlQ2hhdE1vZGVsSW5wdXQsXG4gIFNpbXBsZUNoYXRNb2RlbCxcbiAgRG9HZW5lcmF0ZU91dHB1dCxcbiAgRG9TdHJlYW1PdXRwdXQsXG4gIEJhc2VEb1N0cmVhbU91dHB1dENodW5rLFxuICBSZXFPcHRpb25zLFxufSBmcm9tICcuLi8uLi90eXBlJ1xuXG5mdW5jdGlvbiBwcm9jZXNzSW5wdXQoaW5wdXQ6IEJhc2VDaGF0TW9kZWxJbnB1dCk6IEFya0lucHV0RGF0YSB7XG4gIGNvbnN0IHsgbWVzc2FnZXMsIG1vZGVsLCB0ZW1wZXJhdHVyZSwgdG9vbHMsIHRvcF9wIH0gPSBpbnB1dFxuXG4gIHJldHVybiB7XG4gICAgLi4uaW5wdXQsXG4gICAgbWVzc2FnZXMsXG4gICAgbW9kZWwsXG4gICAgdG9vbHMsXG4gICAgdG9wX3AsXG4gICAgdGVtcGVyYXR1cmUsXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFya1NpbXBsZU1vZGVsIGltcGxlbWVudHMgU2ltcGxlQ2hhdE1vZGVsIHtcbiAgcHVibGljIHN1YlVybCA9ICdhcmsvYXBpL3YzL2NoYXQvY29tcGxldGlvbnMnXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVxOiBNb2RlbFJlcSwgcHVibGljIGJhc2VVcmw6IHN0cmluZywgc3ViVXJsPzogc3RyaW5nKSB7XG4gICAgaWYgKHN1YlVybCAhPSBudWxsKSB7XG4gICAgICB0aGlzLnN1YlVybCA9IHN1YlVybFxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0IHVybCgpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5iYXNlVXJsfS8ke3RoaXMuc3ViVXJsfWBcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkb0dlbmVyYXRlKGRhdGE6IEJhc2VDaGF0TW9kZWxJbnB1dCwgb3B0aW9ucz86IFJlcU9wdGlvbnMpOiBQcm9taXNlPERvR2VuZXJhdGVPdXRwdXQ+IHtcbiAgICBjb25zdCByZXMgPSAoYXdhaXQgdGhpcy5yZXEoe1xuICAgICAgdXJsOiB0aGlzLnVybCxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgLi4ucHJvY2Vzc0lucHV0KGRhdGEpLFxuICAgICAgICBzdHJlYW06IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIHN0cmVhbTogZmFsc2UsXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pKSBhcyBBcmtHZW5lcmF0ZVRleHRPdXRwdXRcbiAgICByZXR1cm4geyAuLi5yZXMsIHJhd1Jlc3BvbnNlOiByZXMgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGRvU3RyZWFtKGRhdGE6IEJhc2VDaGF0TW9kZWxJbnB1dCwgb3B0aW9ucz86IFJlcU9wdGlvbnMpOiBQcm9taXNlPERvU3RyZWFtT3V0cHV0PiB7XG4gICAgbGV0IGlzVG9vbENhbGw6IG51bGwgfCBib29sZWFuID0gbnVsbFxuICAgIGNvbnN0IF9zdHJlYW0gPSBhd2FpdCB0aGlzLnJlcSh7XG4gICAgICB1cmw6IHRoaXMudXJsLFxuICAgICAgZGF0YToge1xuICAgICAgICAuLi5wcm9jZXNzSW5wdXQoZGF0YSksXG4gICAgICAgIHN0cmVhbTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBzdHJlYW06IHRydWUsXG4gICAgICB0aW1lb3V0OiBvcHRpb25zPy50aW1lb3V0LFxuICAgIH0pXG4gICAgY29uc3Qgc3RyZWFtID0gdG9Qb2x5ZmlsbFJlYWRhYmxlKF9zdHJlYW0pIGFzIHR5cGVvZiBfc3RyZWFtXG5cbiAgICBjb25zdCBhcmtTdHJlYW0gPSBpbnRvU3RhbmRhcmRTdHJlYW08QXJrU3RyZWFtVGV4dE91dHB1dD4oc3RyZWFtKVxuICAgIGNvbnN0IHN0cmVhbVdpdGhSYXcgPSBhcmtTdHJlYW0ucGlwZVRocm91Z2gobmV3IFRyYW5zZm9ybVN0cmVhbTxBcmtTdHJlYW1UZXh0T3V0cHV0LCBCYXNlRG9TdHJlYW1PdXRwdXRDaHVuayAmIHsgcmF3UmVzcG9uc2U/OiBhbnkgfT4oe1xuICAgICAgdHJhbnNmb3JtKGNodW5rLCBjb250cm9sbGVyKSB7XG4gICAgICAgIGNvbnN0IG5ld0Nob2ljZXMgPSBjaHVuay5jaG9pY2VzLm1hcCgoY2hvaWNlKSA9PiB7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGNob2ljZS5kZWx0YVxuICAgICAgICAgIGlmIChpc1Rvb2xDYWxsID09IG51bGwpIGlzVG9vbENhbGwgPSBpc1Rvb2xDYWxsQXNzaXN0YW50TWVzc2FnZShtZXNzYWdlKVxuICAgICAgICAgIGlmIChpc1Rvb2xDYWxsKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5jaG9pY2UsXG4gICAgICAgICAgICAgIGZpbmlzaF9yZWFzb246ICd0b29sX2NhbGxzJyBhcyBjb25zdCxcbiAgICAgICAgICAgICAgZGVsdGE6IG1lc3NhZ2UsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBjaG9pY2VcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgbmV3Q2h1bmsgPSB7IC4uLmNodW5rLCBjaG9pY2VzOiBuZXdDaG9pY2VzIH1cbiAgICAgICAgY29udHJvbGxlci5lbnF1ZXVlKHsgLi4ubmV3Q2h1bmssIHJhd1Jlc3BvbnNlOiBjaHVuayB9KVxuICAgICAgfSxcbiAgICB9KSwpXG5cbiAgICByZXR1cm4gY3JlYXRlQXN5bmNJdGVyYWJsZShzdHJlYW1XaXRoUmF3KVxuICB9XG59XG4iXX0=
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9kZWxzL0Fyay9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIsMEJBQTBCLEdBQzNCLE1BQU0sYUFBYSxDQUFBO0FBWXBCLFNBQVMsWUFBWSxDQUFDLEtBQXlCO0lBQ3JDLElBQUEsUUFBUSxHQUF1QyxLQUFLLFNBQTVDLEVBQUUsS0FBSyxHQUFnQyxLQUFLLE1BQXJDLEVBQUUsV0FBVyxHQUFtQixLQUFLLFlBQXhCLEVBQUUsS0FBSyxHQUFZLEtBQUssTUFBakIsRUFBRSxLQUFLLEdBQUssS0FBSyxNQUFWLENBQVU7SUFFNUQsNkJBQ0ssS0FBSyxLQUNSLFFBQVEsVUFBQSxFQUNSLEtBQUssT0FBQSxFQUNMLEtBQUssT0FBQSxFQUNMLEtBQUssT0FBQSxFQUNMLFdBQVcsYUFBQSxJQUNaO0FBQ0gsQ0FBQztBQUVEO0lBRUUsd0JBQW9CLEdBQWEsRUFBUyxPQUFlLEVBQUUsTUFBZTtRQUF0RCxRQUFHLEdBQUgsR0FBRyxDQUFVO1FBQVMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQURsRCxXQUFNLEdBQUcsNkJBQTZCLENBQUE7UUFFM0MsSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO1NBQ3JCO0lBQ0gsQ0FBQztJQUVELHNCQUFZLCtCQUFHO2FBQWY7WUFDRSxPQUFPLFVBQUcsSUFBSSxDQUFDLE9BQU8sY0FBSSxJQUFJLENBQUMsTUFBTSxDQUFFLENBQUE7UUFDekMsQ0FBQzs7O09BQUE7SUFFWSxtQ0FBVSxHQUF2QixVQUF3QixJQUF3QixFQUFFLE9BQW9COzs7Ozs0QkFDdkQsV0FBTSxJQUFJLENBQUMsR0FBRyxDQUFDOzRCQUMxQixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7NEJBQ2IsSUFBSSx3QkFDQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQ3JCLE1BQU0sRUFBRSxLQUFLLEdBQ2Q7NEJBQ0QsTUFBTSxFQUFFLEtBQUs7NEJBQ2IsT0FBTyxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxPQUFPO3lCQUMxQixDQUFDLEVBQUE7O3dCQVJJLEdBQUcsR0FBRyxDQUFDLFNBUVgsQ0FBMEI7d0JBQzVCLGlDQUFZLEdBQUcsS0FBRSxXQUFXLEVBQUUsR0FBRyxLQUFFOzs7O0tBQ3BDO0lBRVksaUNBQVEsR0FBckIsVUFBc0IsSUFBd0IsRUFBRSxPQUFvQjs7Ozs7O3dCQUM5RCxVQUFVLEdBQW1CLElBQUksQ0FBQTt3QkFDckIsV0FBTSxJQUFJLENBQUMsR0FBRyxDQUFDO2dDQUM3QixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7Z0NBQ2IsSUFBSSx3QkFDQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQ3JCLE1BQU0sRUFBRSxJQUFJLEdBQ2I7Z0NBQ0QsTUFBTSxFQUFFLElBQUk7Z0NBQ1osT0FBTyxFQUFFLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxPQUFPOzZCQUMxQixDQUFDLEVBQUE7O3dCQVJJLE9BQU8sR0FBRyxTQVFkO3dCQUNJLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQW1CLENBQUE7d0JBRXRELFNBQVMsR0FBRyxrQkFBa0IsQ0FBc0IsTUFBTSxDQUFDLENBQUE7d0JBQzNELGFBQWEsR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksZUFBZSxDQUF1RTs0QkFDcEksU0FBUyxZQUFDLEtBQUssRUFBRSxVQUFVO2dDQUN6QixJQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFDLE1BQU07b0NBQzFDLElBQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUE7b0NBQzVCLElBQUksVUFBVSxJQUFJLElBQUk7d0NBQUUsVUFBVSxHQUFHLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxDQUFBO29DQUN4RSxJQUFJLFVBQVUsRUFBRTt3Q0FDZCw2QkFDSyxNQUFNLEtBQ1QsYUFBYSxFQUFFLFlBQXFCLEVBQ3BDLEtBQUssRUFBRSxPQUFPLElBQ2Y7cUNBQ0Y7b0NBQ0QsT0FBTyxNQUFNLENBQUE7Z0NBQ2YsQ0FBQyxDQUFDLENBQUE7Z0NBQ0YsSUFBTSxRQUFRLHlCQUFRLEtBQUssS0FBRSxPQUFPLEVBQUUsVUFBVSxHQUFFLENBQUE7Z0NBQ2xELFVBQVUsQ0FBQyxPQUFPLHVCQUFNLFFBQVEsS0FBRSxXQUFXLEVBQUUsS0FBSyxJQUFHLENBQUE7NEJBQ3pELENBQUM7eUJBQ0YsQ0FBQyxDQUFFLENBQUE7d0JBRUosV0FBTyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsRUFBQTs7OztLQUMxQztJQUNILHFCQUFDO0FBQUQsQ0FBQyxBQTVERCxJQTREQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGVxZXFlcSAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uICovXG5pbXBvcnQge1xuICBjcmVhdGVBc3luY0l0ZXJhYmxlLFxuICBUcmFuc2Zvcm1TdHJlYW0sXG4gIHRvUG9seWZpbGxSZWFkYWJsZSxcbiAgaW50b1N0YW5kYXJkU3RyZWFtLFxuICBpc1Rvb2xDYWxsQXNzaXN0YW50TWVzc2FnZSxcbn0gZnJvbSAnLi4vLi4vdXRpbHMnXG5pbXBvcnQgdHlwZSB7IEFya0dlbmVyYXRlVGV4dE91dHB1dCwgQXJrSW5wdXREYXRhLCBBcmtTdHJlYW1UZXh0T3V0cHV0IH0gZnJvbSAnLi90eXBlJ1xuaW1wb3J0IHR5cGUge1xuICBNb2RlbFJlcSxcbiAgQmFzZUNoYXRNb2RlbElucHV0LFxuICBTaW1wbGVDaGF0TW9kZWwsXG4gIERvR2VuZXJhdGVPdXRwdXQsXG4gIERvU3RyZWFtT3V0cHV0LFxuICBCYXNlRG9TdHJlYW1PdXRwdXRDaHVuayxcbiAgUmVxT3B0aW9ucyxcbn0gZnJvbSAnLi4vLi4vdHlwZSdcblxuZnVuY3Rpb24gcHJvY2Vzc0lucHV0KGlucHV0OiBCYXNlQ2hhdE1vZGVsSW5wdXQpOiBBcmtJbnB1dERhdGEge1xuICBjb25zdCB7IG1lc3NhZ2VzLCBtb2RlbCwgdGVtcGVyYXR1cmUsIHRvb2xzLCB0b3BfcCB9ID0gaW5wdXRcblxuICByZXR1cm4ge1xuICAgIC4uLmlucHV0LFxuICAgIG1lc3NhZ2VzLFxuICAgIG1vZGVsLFxuICAgIHRvb2xzLFxuICAgIHRvcF9wLFxuICAgIHRlbXBlcmF0dXJlLFxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBcmtTaW1wbGVNb2RlbCBpbXBsZW1lbnRzIFNpbXBsZUNoYXRNb2RlbCB7XG4gIHB1YmxpYyBzdWJVcmwgPSAnYXJrL2FwaS92My9jaGF0L2NvbXBsZXRpb25zJ1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlcTogTW9kZWxSZXEsIHB1YmxpYyBiYXNlVXJsOiBzdHJpbmcsIHN1YlVybD86IHN0cmluZykge1xuICAgIGlmIChzdWJVcmwgIT0gbnVsbCkge1xuICAgICAgdGhpcy5zdWJVcmwgPSBzdWJVcmxcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldCB1cmwoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuYmFzZVVybH0vJHt0aGlzLnN1YlVybH1gXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZG9HZW5lcmF0ZShkYXRhOiBCYXNlQ2hhdE1vZGVsSW5wdXQsIG9wdGlvbnM/OiBSZXFPcHRpb25zKTogUHJvbWlzZTxEb0dlbmVyYXRlT3V0cHV0PiB7XG4gICAgY29uc3QgcmVzID0gKGF3YWl0IHRoaXMucmVxKHtcbiAgICAgIHVybDogdGhpcy51cmwsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIC4uLnByb2Nlc3NJbnB1dChkYXRhKSxcbiAgICAgICAgc3RyZWFtOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICBzdHJlYW06IGZhbHNlLFxuICAgICAgdGltZW91dDogb3B0aW9ucz8udGltZW91dCxcbiAgICB9KSkgYXMgQXJrR2VuZXJhdGVUZXh0T3V0cHV0XG4gICAgcmV0dXJuIHsgLi4ucmVzLCByYXdSZXNwb25zZTogcmVzIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkb1N0cmVhbShkYXRhOiBCYXNlQ2hhdE1vZGVsSW5wdXQsIG9wdGlvbnM/OiBSZXFPcHRpb25zKTogUHJvbWlzZTxEb1N0cmVhbU91dHB1dD4ge1xuICAgIGxldCBpc1Rvb2xDYWxsOiBudWxsIHwgYm9vbGVhbiA9IG51bGxcbiAgICBjb25zdCBfc3RyZWFtID0gYXdhaXQgdGhpcy5yZXEoe1xuICAgICAgdXJsOiB0aGlzLnVybCxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgLi4ucHJvY2Vzc0lucHV0KGRhdGEpLFxuICAgICAgICBzdHJlYW06IHRydWUsXG4gICAgICB9LFxuICAgICAgc3RyZWFtOiB0cnVlLFxuICAgICAgdGltZW91dDogb3B0aW9ucz8udGltZW91dCxcbiAgICB9KVxuICAgIGNvbnN0IHN0cmVhbSA9IHRvUG9seWZpbGxSZWFkYWJsZShfc3RyZWFtKSBhcyB0eXBlb2YgX3N0cmVhbVxuXG4gICAgY29uc3QgYXJrU3RyZWFtID0gaW50b1N0YW5kYXJkU3RyZWFtPEFya1N0cmVhbVRleHRPdXRwdXQ+KHN0cmVhbSlcbiAgICBjb25zdCBzdHJlYW1XaXRoUmF3ID0gYXJrU3RyZWFtLnBpcGVUaHJvdWdoKG5ldyBUcmFuc2Zvcm1TdHJlYW08QXJrU3RyZWFtVGV4dE91dHB1dCwgQmFzZURvU3RyZWFtT3V0cHV0Q2h1bmsgJiB7IHJhd1Jlc3BvbnNlPzogYW55IH0+KHtcbiAgICAgIHRyYW5zZm9ybShjaHVuaywgY29udHJvbGxlcikge1xuICAgICAgICBjb25zdCBuZXdDaG9pY2VzID0gY2h1bmsuY2hvaWNlcy5tYXAoKGNob2ljZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBjaG9pY2UuZGVsdGFcbiAgICAgICAgICBpZiAoaXNUb29sQ2FsbCA9PSBudWxsKSBpc1Rvb2xDYWxsID0gaXNUb29sQ2FsbEFzc2lzdGFudE1lc3NhZ2UobWVzc2FnZSlcbiAgICAgICAgICBpZiAoaXNUb29sQ2FsbCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4uY2hvaWNlLFxuICAgICAgICAgICAgICBmaW5pc2hfcmVhc29uOiAndG9vbF9jYWxscycgYXMgY29uc3QsXG4gICAgICAgICAgICAgIGRlbHRhOiBtZXNzYWdlLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gY2hvaWNlXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnN0IG5ld0NodW5rID0geyAuLi5jaHVuaywgY2hvaWNlczogbmV3Q2hvaWNlcyB9XG4gICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZSh7IC4uLm5ld0NodW5rLCByYXdSZXNwb25zZTogY2h1bmsgfSlcbiAgICAgIH0sXG4gICAgfSksKVxuXG4gICAgcmV0dXJuIGNyZWF0ZUFzeW5jSXRlcmFibGUoc3RyZWFtV2l0aFJhdylcbiAgfVxufVxuIl19