@cloudbase/auth 3.3.5 → 3.3.7

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.
@@ -197,6 +197,8 @@ export interface SignInWithOtpRes {
197
197
  }
198
198
  export interface SignUpRes {
199
199
  data: {
200
+ user?: User;
201
+ session?: Session;
200
202
  verifyOtp?: OtpCallback;
201
203
  };
202
204
  error: AuthError | null;
package/dist/cjs/type.js CHANGED
@@ -3,4 +3,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AuthErrorCategory = void 0;
4
4
  var oauth_1 = require("@cloudbase/oauth");
5
5
  Object.defineProperty(exports, "AuthErrorCategory", { enumerable: true, get: function () { return oauth_1.AuthErrorCategory; } });
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDBDQUErRDtBQUV0RCxrR0FGVyx5QkFBaUIsT0FFWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgYXV0aE1vZGVscywgT0FVVEhfVFlQRSB9IGZyb20gJ0BjbG91ZGJhc2Uvb2F1dGgnXG5pbXBvcnQgeyBBdXRoRXJyb3IsIEF1dGhFcnJvckNhdGVnb3J5IH0gZnJvbSAnQGNsb3VkYmFzZS9vYXV0aCdcblxuZXhwb3J0IHsgQXV0aEVycm9yQ2F0ZWdvcnkgfVxuXG5cbi8qKlxuICogc2lnbkluQW5vbnltb3VzbHkg6K+35rGC5Y+C5pWwXG4gKlxuICogKirliY3nva7mnaHku7YqKu+8muS9v+eUqOatpOaWueazleWJje+8jOivt+ehruS/neW3suWcqOS6keW8gOWPkeaOp+WItuWPsO+8iOeOr+WigyDihpIg55m75b2V5o6I5p2DIOKGkiDouqvku73mupDliJfooajvvInlvIDlkK/jgIzljL/lkI3nmbvlvZXjgI3jgIJcbiAqXG4gKiAqKuS9v+eUqOWcuuaZryoq77yaXG4gKiAtIOaXoOmcgOeUqOaIt+azqOWGjOWNs+WPr+S9v+eUqOW6lOeUqOWKn+iDvVxuICogLSDkuLTml7borr/pl67miJblv6vpgJ/kvZPpqozlnLrmma9cbiAqIC0g5rWL6K+VL+iHquWKqOWMlueOr+Wig+S4reS4jemcgOimgeecn+WunueUqOaIt+WHreaNruaXtlxuICpcbiAqICoq5rOo5oSPKirvvJrljL/lkI3nmbvlvZXkuI7lr4bnoIHnmbvlvZXmmK/kuKTnp43ni6znq4vnmoTnmbvlvZXmlrnlvI/vvIzkuI3opoHlnKjljL/lkI3nmbvlvZXlpLHotKXlkI7oh6rliqjlm57pgIDliLDlr4bnoIHnmbvlvZXjgIJcbiAqIOWmguaenOWMv+WQjeeZu+W9lei/lOWbniBQUk9WSURFUl9OT1RfRU5BQkxFRCDplJnor6/vvIzor7TmmI7pnIDopoHlnKjmjqfliLblj7DlvIDlkK/ljL/lkI3nmbvlvZXlip/og73jgIJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTaWduSW5Bbm9ueW1vdXNseVJlcSB7XG4gIHByb3ZpZGVyX3Rva2VuPzogc3RyaW5nIC8vIOaPkOS+m+S7pOeJjFxufVxuXG5leHBvcnQgZGVjbGFyZSB0eXBlIFVzZXIgPSB7XG4gIGlkOiBhbnkgLy8g55So5oi3SURcbiAgYXVkOiBzdHJpbmcgLy8g5Y+X5LyXXG4gIHJvbGU6IHN0cmluZ1tdIC8vIOeUqOaIt+inkuiJslxuICBlbWFpbDogYW55IC8vIOmCrueusVxuICBlbWFpbF9jb25maXJtZWRfYXQ6IHN0cmluZyAvLyDpgq7nrrHnoa7orqTml7bpl7RcbiAgcGhvbmU6IGFueSAvLyDmiYvmnLrlj7dcbiAgcGhvbmVfY29uZmlybWVkX2F0OiBzdHJpbmcgLy8g5omL5py65Y+356Gu6K6k5pe26Ze0XG4gIGNvbmZpcm1lZF9hdDogc3RyaW5nIC8vIOehruiupOaXtumXtFxuICBsYXN0X3NpZ25faW5fYXQ6IHN0cmluZyAvLyDmnIDlkI7nmbvlvZXml7bpl7RcbiAgYXBwX21ldGFkYXRhOiB7XG4gICAgLy8g5bqU55So5YWD5pWw5o2uXG4gICAgcHJvdmlkZXI6IGFueSAvLyDmj5DkvpvllYZcbiAgICBwcm92aWRlcnM6IGFueVtdIC8vIOaPkOS+m+WVhuWIl+ihqFxuICB9XG4gIHVzZXJfbWV0YWRhdGE6IHtcbiAgICAvLyDnlKjmiLflhYPmlbDmja5cbiAgICBuYW1lOiBhbnkgLy8g5aeT5ZCNXG4gICAgcGljdHVyZTogYW55IC8vIOWktOWDj1xuICAgIHVzZXJuYW1lOiBhbnkgLy8g55So5oi35ZCNXG4gICAgZ2VuZGVyOiBhbnkgLy8g5oCn5YirXG4gICAgbG9jYWxlOiBhbnkgLy8g5Zyw5Yy6XG4gICAgdWlkOiBhbnkgLy8g55So5oi3SURcbiAgICBuaWNrTmFtZTogYW55IC8vIOaYteensFxuICAgIGF2YXRhclVybDogYW55IC8vIOWktOWDj1VSTFxuICAgIGxvY2F0aW9uOiBhbnkgLy8g5L2N572uXG4gICAgaGFzUGFzc3dvcmQ6IGFueSAvLyDmmK/lkKbmnInlr4bnoIFcbiAgfVxuICBpZGVudGl0aWVzOiBhbnkgLy8g6Lqr5Lu95L+h5oGvXG4gIGNyZWF0ZWRfYXQ6IHN0cmluZyAvLyDliJvlu7rml7bpl7RcbiAgdXBkYXRlZF9hdDogc3RyaW5nIC8vIOabtOaWsOaXtumXtFxuICBpc19hbm9ueW1vdXM6IGJvb2xlYW4gLy8g5piv5ZCm5Yy/5ZCN55So5oi3XG59XG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgU2Vzc2lvbiA9IHtcbiAgYWNjZXNzX3Rva2VuPzogc3RyaW5nIC8vIOiuv+mXruS7pOeJjFxuICByZWZyZXNoX3Rva2VuPzogc3RyaW5nIC8vIOWIt+aWsOS7pOeJjFxuICBleHBpcmVzX2luPzogbnVtYmVyIC8vIOi/h+acn+aXtumXtO+8iOenku+8iVxuICB0b2tlbl90eXBlPzogc3RyaW5nIC8vIOS7pOeJjOexu+Wei1xuICB1c2VyOiBVc2VyIC8vIOeUqOaIt+S/oeaBr1xufVxuXG4vKipcbiAqIHNpZ25JbldpdGhQYXNzd29yZCDor7fmsYLlj4LmlbBcbiAqXG4gKiAqKumHjeimgeaPkOekuioq77ya5L2/55So5q2k5pa55rOV5YmN77yM6K+356Gu5L+d5bey5Zyo5LqR5byA5Y+R5o6n5Yi25Y+w77yI546v5aKDIOKGkiDnmbvlvZXmjojmnYMg4oaSIOi6q+S7vea6kOWIl+ihqO+8iVxuICog5byA5ZCv44CM55So5oi35ZCN5a+G56CB55m75b2V44CN5pa55byP44CC5aaC5pyq5byA5ZCv77yM55m75b2V5pe25Lya6L+U5ZueIEF1dGhFcnJvckNhdGVnb3J5LlBST1ZJREVSX05PVF9FTkFCTEVEIOmUmeivr+OAglxuICpcbiAqICoq5Yet5o2u5p2l5rqQKirvvJpcbiAqIC0g55So5oi35omL5Yqo6L6T5YWl77yI5Lqk5LqS5byP5Zy65pmv77yJXG4gKiAtIOeOr+Wig+WPmOmHjyBFTlZfSUQgLyBVU0VSX05BTUUgLyBQQVNTV09SRO+8iOiHquWKqOWMli9hZ2VudCDlnLrmma/vvIlcbiAqIC0g6K+356Gu5L+d5Yet5o2u5a+55bqU55qE55So5oi35bey5Zyo55uu5qCHIGVudklkIOeOr+Wig+S4reazqOWGjFxuICpcbiAqICoq5bi46KeB6ZSZ6K+vKirvvJpcbiAqIC0gYGludmFsaWRfdXNlcm5hbWVfb3JfcGFzc3dvcmRg77ya55So5oi35ZCN5oiW5a+G56CB6ZSZ6K+v77yM6K+35qC45a6e5Yet5o2uXG4gKiAtIGBQUk9WSURFUl9OT1RfRU5BQkxFRGDvvJrnlKjmiLflkI3lr4bnoIHnmbvlvZXmnKrlvIDlkK/vvIzpnIDlnKjmjqfliLblj7DphY3nva5cbiAqIC0gYG5vdF9mb3VuZGDvvJrnlKjmiLfkuI3lrZjlnKjvvIzpnIDlhYjms6jlhoxcbiAqXG4gKiAqKuazqOaEjyoq77ya5LiN5ZCM5LqR5byA5Y+R546v5aKD55qE55So5oi35bqT5piv6ZqU56a755qE77yM6K+356Gu6K6kIGVudklkIOS4juWHreaNruWMuemFjeOAglxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25JbldpdGhQYXNzd29yZFJlcSB7XG4gIHVzZXJuYW1lPzogc3RyaW5nIC8vIOeUqOaIt+WQjeensO+8iOWPr+mAie+8jOS4jumCrueuseOAgeaJi+acuuWPt+S4iemAieS4gO+8ie+8jOmVv+W6piA1LTI0IOS9je+8jOaUr+aMgeWtl+espuS4reiLseaWh+OAgeaVsOWtl+OAgeeJueauiuWtl+espu+8iOS7heaUr+aMgV8t77yJ77yM5LiN5pSv5oyB5Lit5paHXG4gIGVtYWlsPzogc3RyaW5nIC8vIOmCrueuse+8iOWPr+mAie+8jOS4jueUqOaIt+WQjeOAgeaJi+acuuWPt+S4iemAieS4gO+8iVxuICBwaG9uZT86IHN0cmluZyAvLyDmiYvmnLrlj7fvvIjlj6/pgInvvIzkuI7nlKjmiLflkI3jgIHpgq7nrrHkuInpgInkuIDvvIlcbiAgcGFzc3dvcmQ6IHN0cmluZyAvLyDlr4bnoIHvvIjlv4XloavvvIlcbiAgaXNfZW5jcnlwdD86IGJvb2xlYW4gLy8g5piv5ZCm5Yqg5a+G77yM6buY6K6k5Li6ZmFsc2Vcbn1cblxuLy8g6YCa55So5ZON5bqU57G75Z6LXG5leHBvcnQgaW50ZXJmYWNlIENvbW1vblJlcyB7XG4gIGRhdGE6IHt9IC8vIOaIkOWKn+aXtuS4uuepuuWvueixoVxuICBlcnJvcjogQXV0aEVycm9yIHwgbnVsbCAvLyDplJnor6/kv6Hmga/vvIzmiJDlip/ml7bkuLpudWxsXG59XG5cbi8qKlxuICog55m75b2V5pON5L2c5ZON5bqU57G75Z6LXG4gKlxuICog5b2TIGVycm9yIOS4jeS4uiBudWxsIOaXtu+8jGVycm9yIOWvueixoeWMheWQq++8mlxuICogLSBgY2F0ZWdvcnlgOiDplJnor6/liIbnsbvvvIhBdXRoRXJyb3JDYXRlZ29yeSDmnprkuL7vvInvvIzlj6/nlKjkuo7nqIvluo/ljJbliKTmlq3plJnor6/nsbvlnotcbiAqIC0gYGhlbHBNZXNzYWdlYDog5Y+v5pON5L2c5oCn5oyH5byV5L+h5oGv77yM5YyF5ZCr5o6S5p+l5q2l6aqk5ZKM6Kej5Yaz5pa55qGIXG4gKiAtIGBsb2dpbk1ldGhvZEhpbnRgOiDnmbvlvZXmlrnlvI/pgInmi6nlu7rorq7vvIzluK7liqnpgInmi6nmraPnoa7nmoTnmbvlvZXmlrnms5VcbiAqIC0gYGNvZGVgOiDmnI3liqHnq6/ov5Tlm57nmoTplJnor6/noIHvvIjlpoIgJ2ludmFsaWRfdXNlcm5hbWVfb3JfcGFzc3dvcmQn44CBJ2ludmFsaWRfcGFzc3dvcmQn77yJXG4gKiAtIGBtZXNzYWdlYDog6ZSZ6K+v5o+P6L+wXG4gKlxuICog56S65L6L77yaXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCB7IGRhdGEsIGVycm9yIH0gPSBhd2FpdCBhdXRoLnNpZ25JbldpdGhQYXNzd29yZCh7IHVzZXJuYW1lOiAndGVzdCcsIHBhc3N3b3JkOiAnMTIzJyB9KVxuICogaWYgKGVycm9yKSB7XG4gKiAgIGlmIChlcnJvci5jYXRlZ29yeSA9PT0gQXV0aEVycm9yQ2F0ZWdvcnkuUFJPVklERVJfTk9UX0VOQUJMRUQpIHtcbiAqICAgICAvLyDouqvku73mupDmnKrlvIDlkK/vvIzlvJXlr7znlKjmiLfmiJbnrqHnkIblkZjlvIDlkK9cbiAqICAgICBjb25zb2xlLmxvZyhlcnJvci5oZWxwTWVzc2FnZSlcbiAqICAgfSBlbHNlIGlmIChlcnJvci5jYXRlZ29yeSA9PT0gQXV0aEVycm9yQ2F0ZWdvcnkuSU5WQUxJRF9DUkVERU5USUFMUykge1xuICogICAgIC8vIOWHreaNrumUmeivr++8iOWMheaLrCBpbnZhbGlkX3VzZXJuYW1lX29yX3Bhc3N3b3Jk77yJ77yM5o+Q56S655So5oi35qOA5p+l5a+G56CBXG4gKiAgICAgY29uc29sZS5sb2coZXJyb3IuaGVscE1lc3NhZ2UpXG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICpcbiAqICoqYWdlbnQv6Ieq5Yqo5YyW5Zy65pmv5rOo5oSPKirvvJpcbiAqIC0g5LiN6KaB5ZyoIHNpZ25JbkFub255bW91c2x5KCkg5aSx6LSl5ZCO6Ieq5Yqo5Zue6YCA5YiwIHNpZ25JbldpdGhQYXNzd29yZCgpXG4gKiAtIOS4pOenjeeZu+W9leaWueW8j+eahOmAgueUqOWcuuaZr+S4jeWQjO+8jOW6lOagueaNruS7u+WKoemcgOaxguaYjuehrumAieaLqVxuICogLSDkvb/nlKggZXJyb3IubG9naW5NZXRob2RIaW50IOiOt+WPluW9k+WJjeeZu+W9leaWueW8j+eahOS9v+eUqOW7uuiurlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25JblJlcyB7XG4gIGRhdGE6IHtcbiAgICB1c2VyPzogVXNlciAvLyDnlKjmiLfkv6Hmga9cbiAgICBzZXNzaW9uPzogU2Vzc2lvbiAvLyDkvJror53kv6Hmga9cbiAgfVxuICBlcnJvcjogQXV0aEVycm9yIHwgbnVsbCAvLyDplJnor6/kv6Hmga/vvIzmiJDlip/ml7bkuLpudWxsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0VXNlclJlcyB7XG4gIGRhdGE6IHtcbiAgICB1c2VyPzogVXNlciAvLyDnlKjmiLfor6bnu4bkv6Hmga9cbiAgfVxuICBlcnJvcjogQXV0aEVycm9yIHwgbnVsbCAvLyDplJnor6/kv6Hmga/vvIzmiJDlip/ml7bkuLpudWxsXG59XG5cbi8vIOabtOaWsOeUqOaIt+mqjOivgeWbnuiwg+WPguaVsFxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVVc2VyVmVyaWZ5T3RwUGFyYW1zIHtcbiAgZW1haWw/OiBzdHJpbmcgLy8g6YKu566x77yI5Y+v6YCJ77yM5LiO5omL5py65Y+35LqM6YCJ5LiA77yJXG4gIHBob25lPzogc3RyaW5nIC8vIOaJi+acuuWPt++8iOWPr+mAie+8jOS4jumCrueuseS6jOmAieS4gO+8iVxuICB0b2tlbjogc3RyaW5nIC8vIOmqjOivgeegge+8iOW/heWhq++8iVxufVxuXG4vLyDmm7TmlrDnlKjmiLfpqozor4Hlm57osIPnsbvlnotcbmRlY2xhcmUgdHlwZSBVcGRhdGVVc2VyVmVyaWZ5Q2FsbGJhY2sgPSAocGFyYW1zOiBVcGRhdGVVc2VyVmVyaWZ5T3RwUGFyYW1zKSA9PiBQcm9taXNlPEdldFVzZXJSZXM+XG5cbi8vIOabtOaWsOeUqOaIt+WTjeW6lOexu+Wei++8iOW9k+mcgOimgemqjOivgeaXtu+8iVxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVVc2VyV2l0aFZlcmlmaWNhdGlvblJlcyB7XG4gIGRhdGE6IHtcbiAgICB2ZXJpZnlPdHA/OiBVcGRhdGVVc2VyVmVyaWZ5Q2FsbGJhY2sgLy8g6aqM6K+B56CB5Zue6LCD5Ye95pWwXG4gICAgbWVzc2FnZUlkPzogc3RyaW5nIC8vIOmqjOivgeeggUlEXG4gIH1cbiAgZXJyb3I6IEF1dGhFcnJvciB8IG51bGwgLy8g6ZSZ6K+v5L+h5oGv77yM5oiQ5Yqf5pe25Li6bnVsbFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25JbldpdGhJZFRva2VuUmVxIHtcbiAgcHJvdmlkZXI/OiBzdHJpbmcgLy8g56ys5LiJ5pa55bmz5Y+w5qCH6K+G77yI5Y+v6YCJ77yJXG4gIHRva2VuOiBzdHJpbmcgLy8g56ys5LiJ5pa55bmz5Y+w55qE6Lqr5Lu95Luk54mM77yI5b+F5aGr77yJXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbkluV2l0aE9BdXRoUmVxIHtcbiAgcHJvdmlkZXI6IHN0cmluZyAvLyDnrKzkuInmlrnlubPlj7DmoIfor4bvvIjlv4XloavvvIlcbiAgb3B0aW9ucz86IHtcbiAgICAvLyDphY3nva7pgInpobnvvIjlj6/pgInvvIlcbiAgICByZWRpcmVjdFRvPzogc3RyaW5nIC8vIOWbnuiwg+WcsOWdgO+8jOm7mOiupOS4uuW9k+WJjemhtemdolxuICAgIHNraXBCcm93c2VyUmVkaXJlY3Q/OiBib29sZWFuIC8vIOaYr+WQpui3s+i9rOiHs+aOiOadg+mhtemdou+8jOm7mOiupOS4umZhbHNlXG4gICAgc3RhdGU/OiBzdHJpbmcgLy8g54q25oCB5Y+C5pWw77yM55So5LqO5a6J5YWo6aqM6K+B77yM6buY6K6k5Li66ZqP5py65a2X56ym5Liy77yI5qC85byP77yacHJkLXtwcm92aWRlcn0te+maj+acuuWtl+espuS4sn3vvIlcbiAgICBxdWVyeVBhcmFtcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gLy8g6aKd5aSW55qE5p+l6K+i5Y+C5pWw77yM5bCG5ZCI5bm25Yiw5o6I5p2DIFVSSSDkuK1cbiAgICB0eXBlPzogKHR5cGVvZiBPQVVUSF9UWVBFKVtrZXlvZiB0eXBlb2YgT0FVVEhfVFlQRV0gLy8g57G75Z6L77yI5Y+v6YCJ77yJ77yM6buY6K6k5Li6J3NpZ25faW4nLCBzaWduX2luOiDnmbvlvZXvvIxiaW5kX2lkZW50aXR5OiDnu5Hlrprouqvku71cbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25Jbk9BdXRoUmVzIHtcbiAgZGF0YToge1xuICAgIHVybD86IHN0cmluZyAvLyDmjojmnYPpobXpnaJVUkxcbiAgICBwcm92aWRlcj86IHN0cmluZyAvLyDnrKzkuInmlrnlubPlj7DmoIfor4ZcbiAgICBzY29wZXM/OiBzdHJpbmcgLy8g5o6I5p2D6IyD5Zu0XG4gIH1cbiAgZXJyb3I6IEF1dGhFcnJvciB8IG51bGwgLy8g6ZSZ6K+v5L+h5oGv77yM5oiQ5Yqf5pe25Li6bnVsbFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldENsYWltc1JlcyB7XG4gIGRhdGE6IHtcbiAgICAvLyDku6TniYzlo7DmmI7kv6Hmga9cbiAgICBjbGFpbXM/OiB7XG4gICAgICBpc3M6IHN0cmluZyAvLyBpc3N1ZXJcbiAgICAgIHN1Yjogc3RyaW5nIC8vIHN1YmplY3RcbiAgICAgIGF1ZDogc3RyaW5nIC8vICBhdWRpZW5jZVxuICAgICAgZXhwOiBudW1iZXIgLy8gIGV4cGlyYXRpb24gdGltZVxuICAgICAgaWF0OiBudW1iZXIgLy8gaXNzdWVkIGF0XG4gICAgICBhdF9oYXNoOiBzdHJpbmcgLy8gYWNjZXNzIHRva2VuIGhhc2hcbiAgICAgIG5hbWU6IHN0cmluZyAvLyDlkI3np7BcbiAgICAgIHBpY3R1cmU/OiBzdHJpbmcgLy8g5aS05YOPVVJMXG4gICAgICBlbWFpbD86IHN0cmluZyAvLyDpgq7nrrFcbiAgICAgIHBob25lX251bWJlcj86IHN0cmluZyAvLyDmiYvmnLrlj7dcbiAgICAgIHNjb3BlOiBzdHJpbmcgLy8g5o6I5p2D6IyD5Zu0XG4gICAgICBwcm9qZWN0X2lkOiBzdHJpbmcgLy8g6aG555uuSURcbiAgICAgIHByb3ZpZGVyPzogc3RyaW5nIC8vIOesrOS4ieaWueW5s+WPsOagh+ivhlxuICAgICAgcHJvdmlkZXJfdHlwZT86IHN0cmluZyAvLyDnrKzkuInmlrnlubPlj7DnsbvlnotcbiAgICAgIGdyb3Vwcz86IHN0cmluZ1tdIC8vIOeUqOaIt+e7hFxuICAgICAgbWV0YT86IHtcbiAgICAgICAgd3hPcGVuSWQ/OiBzdHJpbmdcbiAgICAgICAgd3hVbmlvbklkPzogc3RyaW5nXG4gICAgICB9XG4gICAgICB1c2VyX2lkOiBzdHJpbmcgLy8g55So5oi3SURcbiAgICAgIHJvbGVzOiBzdHJpbmdbXSAvLyDop5LoibJcbiAgICAgIHVzZXJfdHlwZTogc3RyaW5nIC8vIOeUqOaIt+exu+Wei1xuICAgICAgY2xpZW50X3R5cGU6IHN0cmluZyAvLyDlrqLmiLfnq6/nsbvlnotcbiAgICAgIGlzX3N5c3RlbV9hZG1pbjogYm9vbGVhbiAvLyDmmK/lkKbns7vnu5/nrqHnkIblkZhcbiAgICB9XG4gICAgLy8g5Luk54mM5aS06YOo5L+h5oGvXG4gICAgaGVhZGVyPzoge1xuICAgICAgYWxnOiBzdHJpbmcgLy8g5Yqg5a+G566X5rOVXG4gICAgICBraWQ6IHN0cmluZyAvLyDku6TniYxJRFxuICAgIH1cbiAgICBzaWduYXR1cmU/OiBzdHJpbmcgLy8g5Luk54mM562+5ZCNXG4gIH1cbiAgZXJyb3I6IEF1dGhFcnJvciB8IG51bGwgLy8g6ZSZ6K+v5L+h5oGv77yM5oiQ5Yqf5pe25Li6bnVsbFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVVzZXJSZXEgZXh0ZW5kcyBhdXRoTW9kZWxzLk1vZGlmeVVzZXJCYXNpY0luZm9SZXF1ZXN0IHtcbiAgZW1haWw/OiBzdHJpbmcgLy8g6YKu566x77yI5Y+v6YCJ77yJXG4gIHBob25lPzogc3RyaW5nIC8vIOaJi+acuuWPt++8iOWPr+mAie+8iVxuICB1c2VybmFtZT86IHN0cmluZyAvLyDnlKjmiLflkI3np7DvvIjlj6/pgInvvInvvIzplb/luqYgNS0yNCDkvY3vvIzmlK/mjIHlrZfnrKbkuK3oi7HmlofjgIHmlbDlrZfjgIHnibnmrorlrZfnrKbvvIjku4XmlK/mjIFfLe+8ie+8jOS4jeaUr+aMgeS4reaWh1xuICBkZXNjcmlwdGlvbj86IHN0cmluZyAvLyDmj4/ov7DvvIjlj6/pgInvvIlcbiAgYXZhdGFyX3VybD86IHN0cmluZyAvLyDlpLTlg49VUkzvvIjlj6/pgInvvIlcbiAgbmlja25hbWU/OiBzdHJpbmcgLy8g5pi156ew77yI5Y+v6YCJ77yJXG4gIGdlbmRlcj86ICdNQUxFJyB8ICdGRU1BTEUnIC8vIOaAp+WIq++8iOWPr+mAie+8iVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldFVzZXJJZGVudGl0aWVzUmVzIHtcbiAgZGF0YToge1xuICAgIGlkZW50aXRpZXM/OlxuICAgIHwgQXJyYXk8e1xuICAgICAgaWQ6IHN0cmluZyAvLyDouqvku73mupDmoIfor4ZcbiAgICAgIG5hbWU6IHN0cmluZyAvLyDouqvku73mupDlkI3np7BcbiAgICAgIHBpY3R1cmU6IHN0cmluZyAvLyDlpLTlg49VUkxcbiAgICB9PlxuICB9XG4gIGVycm9yOiBBdXRoRXJyb3IgfCBudWxsIC8vIOmUmeivr+S/oeaBr++8jOaIkOWKn+aXtuS4um51bGxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaW5rSWRlbnRpdHlSZXEge1xuICBwcm92aWRlcjogc3RyaW5nIC8vIOi6q+S7vea6kOagh+ivhu+8iOW/heWhq++8iVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVubGlua0lkZW50aXR5UmVxIHtcbiAgcHJvdmlkZXI6IHN0cmluZyAvLyDouqvku73mupDmoIfor4bvvIjlv4XloavvvIlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaW5rSWRlbnRpdHlSZXMge1xuICBkYXRhOiB7XG4gICAgcHJvdmlkZXI/OiBzdHJpbmcgLy8g57uR5a6a55qE6Lqr5Lu95rqQ5qCH6K+GXG4gICAgdHlwZT86ICh0eXBlb2YgT0FVVEhfVFlQRSlba2V5b2YgdHlwZW9mIE9BVVRIX1RZUEVdIC8vIOexu+Wei++8iOWPr+mAie+8ie+8jOm7mOiupOS4uidzaWduX2luJywgc2lnbl9pbjog55m75b2V77yMYmluZF9pZGVudGl0eTog57uR5a6a6Lqr5Lu9XG4gIH1cbiAgZXJyb3I6IEF1dGhFcnJvciB8IG51bGwgLy8g6ZSZ6K+v5L+h5oGv77yM5oiQ5Yqf5pe25Li6bnVsbFxufVxuXG5leHBvcnQgZGVjbGFyZSB0eXBlIE9uQXV0aFN0YXRlQ2hhbmdlRXZlbnQgPVxuICB8ICdTSUdORURfT1VUJyAvLyDnlKjmiLflt7Lnmbvlh7pcbiAgfCAnU0lHTkVEX0lOJyAvLyDnlKjmiLfnmbvlvZXmiJDlip9cbiAgfCAnSU5JVElBTF9TRVNTSU9OJyAvLyDliJ3lp4vkvJror53lt7Llu7rnq4tcbiAgfCAnUEFTU1dPUkRfUkVDT1ZFUlknIC8vIOWvhueggeW3sumHjee9rlxuICB8ICdUT0tFTl9SRUZSRVNIRUQnIC8vIOS7pOeJjOW3suWIt+aWsFxuICB8ICdVU0VSX1VQREFURUQnIC8vIOeUqOaIt+S/oeaBr+W3suabtOaWsFxuICB8ICdCSU5EX0lERU5USVRZJyAvLyDouqvku73mupDnu5Hlrprnu5PmnpxcblxuZXhwb3J0IGRlY2xhcmUgdHlwZSBPbkF1dGhTdGF0ZUNoYW5nZUNhbGxiYWNrID0gKFxuICBldmVudDogT25BdXRoU3RhdGVDaGFuZ2VFdmVudCxcbiAgc2Vzc2lvbjogU2Vzc2lvbixcbiAgaW5mbz86IFJlY29yZDxzdHJpbmcsIGFueT4sXG4pID0+IHZvaWRcblxudHlwZSBNb2JpbGVPdHBUeXBlID0gJ3NtcycgfCAncGhvbmVfY2hhbmdlJ1xudHlwZSBFbWFpbE90cFR5cGUgPSAnc2lnbnVwJyB8ICdpbnZpdGUnIHwgJ21hZ2ljbGluaycgfCAncmVjb3ZlcnknIHwgJ2VtYWlsX2NoYW5nZScgfCAnZW1haWwnXG5leHBvcnQgaW50ZXJmYWNlIFZlcmlmeU90cFJlcSB7XG4gIHR5cGU/OiBNb2JpbGVPdHBUeXBlIHwgRW1haWxPdHBUeXBlXG4gIGVtYWlsPzogc3RyaW5nIC8vIOmCrueuse+8iOWPr+mAie+8jOS4juaJi+acuuWPt+S6jOmAieS4gO+8iVxuICBwaG9uZT86IHN0cmluZyAvLyDmiYvmnLrlj7fvvIjlj6/pgInvvIzkuI7pgq7nrrHkuozpgInkuIDvvIlcbiAgdG9rZW46IHN0cmluZyAvLyDpqozor4HnoIHvvIjlv4XloavvvIlcbiAgbWVzc2FnZUlkPzogc3RyaW5nIC8vIOmqjOivgeeggeWvueW6lElE77yI5Y+v6YCJ77yJXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbkluV2l0aE90cFJlcSB7XG4gIGVtYWlsPzogc3RyaW5nIC8vIOmCrueuse+8iOWPr+mAie+8jOS4juaJi+acuuWPt+S6jOmAieS4gO+8iVxuICBwaG9uZT86IHN0cmluZyAvLyDmiYvmnLrlj7fvvIjlj6/pgInvvIzkuI7pgq7nrrHkuozpgInkuIDvvIlcbiAgb3B0aW9ucz86IHtcbiAgICBzaG91bGRDcmVhdGVVc2VyPzogYm9vbGVhbiAvLyDlpoLmnpznlKjmiLfkuI3lrZjlnKjmmK/lkKbliJvlu7rnlKjmiLfvvIzpu5jorqTkuLp0cnVlXG4gICAgZW1haWxSZWRpcmVjdFRvPzogc3RyaW5nIC8vIOmCrueuseeZu+W9leWbnuiwg+WcsOWdgO+8jOWhq+WGmeWQjuWImeS8muWPkemAgeiupOivgemTvuaOpeiHs+mCrueuse+8jOWQpuWImeWPkemAgemqjOivgeeggVxuICB9XG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBjb2RlIOmqjOivgeeggVxuICogQHBhcmFtIG1lc3NhZ2VJZCDlj6/pgInvvIxSZXNlbmRSZXMuZGF0YS5tZXNzYWdlSWRcbiAqIEByZXR1cm5zXG4gKi9cbmRlY2xhcmUgdHlwZSBPdHBDYWxsYmFjayA9IChwYXJhbXM6IFZlcmlmeU90cFJlcSkgPT4gUHJvbWlzZTxTaWduSW5SZXM+XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbkluV2l0aE90cFJlcyB7XG4gIGRhdGE6IFNpZ25JblJlc1snZGF0YSddICYge1xuICAgIHZlcmlmeU90cD86IE90cENhbGxiYWNrIC8vIOmqjOivgeeggeWbnuiwg+WHveaVsO+8jOaUr+aMgW1lc3NhZ2VJZOWPguaVsFxuICB9XG4gIGVycm9yOiBBdXRoRXJyb3IgfCBudWxsIC8vIOmUmeivr+S/oeaBr++8jOaIkOWKn+aXtuS4um51bGxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduVXBSZXMge1xuICBkYXRhOiB7XG4gICAgdmVyaWZ5T3RwPzogT3RwQ2FsbGJhY2sgLy8g6aqM6K+B56CB5Zue6LCD5Ye95pWw77yM5pSv5oyBbWVzc2FnZUlk5Y+C5pWwXG4gIH1cbiAgZXJyb3I6IEF1dGhFcnJvciB8IG51bGxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNlbmRSZXEge1xuICBlbWFpbD86IHN0cmluZyAvLyDpgq7nrrHvvIjlj6/pgInvvIzkuI7miYvmnLrlj7fkuozpgInkuIDvvIlcbiAgcGhvbmU/OiBzdHJpbmcgLy8g5omL5py65Y+377yI5Y+v6YCJ77yM5LiO6YKu566x5LqM6YCJ5LiA77yJXG4gIHR5cGU/OiAnc2lnbnVwJyB8ICdlbWFpbF9jaGFuZ2UnIHwgJ3Bob25lX2NoYW5nZScgfCAnc21zJyAvLyDnsbvlnovvvIjlj6/pgInvvIlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNlbmRSZXMge1xuICBkYXRhOiB7XG4gICAgbWVzc2FnZUlkPzogc3RyaW5nIC8vIOa2iOaBr0lE77yI6aqM6K+B56CBSUTvvIlcbiAgfVxuICBlcnJvcjogQXV0aEVycm9yIHwgbnVsbCAvLyDplJnor6/kv6Hmga/vvIzmiJDlip/ml7bkuLpudWxsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZ5T0F1dGhSZXEge1xuICBjb2RlPzogc3RyaW5nIC8vIOaOiOadg+egge+8iOWPr+mAie+8jOm7mOiupOS7jlVSTOWPguaVsOiOt+WPlu+8iVxuICBzdGF0ZT86IHN0cmluZyAvLyDnirbmgIHlj4LmlbDvvIjlj6/pgInvvIzpu5jorqTku45VUkzlj4LmlbDojrflj5bvvIlcbiAgcHJvdmlkZXI/OiBzdHJpbmcgLy8g56ys5LiJ5pa55bmz5Y+w5qCH6K+G77yI5Y+v6YCJ77yM6buY6K6k5LuOc2Vzc2lvbuiOt+WPlu+8iVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVVzZXJBdHRyaWJ1dGVzIHtcbiAgbm9uY2U6IHN0cmluZyAvLyDpqozor4HnoIFcbiAgcGFzc3dvcmQ6IHN0cmluZyAvLyDmlrDlr4bnoIFcbn1cblxuLy8g6YeN572u5a+G56CB5ZON5bqU57G75Z6LXG5leHBvcnQgaW50ZXJmYWNlIFJlc2V0UGFzc3dvcmRGb3JFbWFpbFJlcyB7XG4gIGRhdGE6IHtcbiAgICB1cGRhdGVVc2VyPzogKGF0dHJpYnV0ZXM6IFVwZGF0ZVVzZXJBdHRyaWJ1dGVzKSA9PiBQcm9taXNlPFNpZ25JblJlcz4gLy8g6aqM6K+B56CB5Zue6LCD5Ye95pWw77yM5pSv5oyB5paw5a+G56CB5Y+C5pWwXG4gIH1cbiAgZXJyb3I6IEF1dGhFcnJvciB8IG51bGwgLy8g6ZSZ6K+v5L+h5oGv77yM5oiQ5Yqf5pe25Li6bnVsbFxufVxuXG4vLyDph43mlrDorqTor4Hlk43lupTnsbvlnotcbmV4cG9ydCBpbnRlcmZhY2UgUmVhdXRoZW50aWNhdGVSZXMge1xuICBkYXRhOiB7XG4gICAgdXBkYXRlVXNlcj86IChhdHRyaWJ1dGVzOiBVcGRhdGVVc2VyQXR0cmlidXRlcykgPT4gUHJvbWlzZTxTaWduSW5SZXM+IC8vIOmqjOivgeeggeWbnuiwg+WHveaVsO+8jOaUr+aMgeaWsOWvhueggeWPguaVsFxuICB9XG4gIGVycm9yOiBBdXRoRXJyb3IgfCBudWxsIC8vIOmUmeivr+S/oeaBr++8jOaIkOWKn+aXtuS4um51bGxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXRTZXNzaW9uUmVxIHtcbiAgYWNjZXNzX3Rva2VuOiBzdHJpbmcgLy8g6K6/6Zeu5Luk54mMXG4gIHJlZnJlc2hfdG9rZW46IHN0cmluZyAvLyDliLfmlrDku6TniYxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZWxldGVNZVJlcSB7XG4gIHBhc3N3b3JkOiBzdHJpbmcgLy8g55So5oi35a+G56CBXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzZXRQYXNzd29yZEZvck9sZFJlcSB7XG4gIG9sZF9wYXNzd29yZDogc3RyaW5nIC8vIOaXp+WvhueggVxuICBuZXdfcGFzc3dvcmQ6IHN0cmluZyAvLyDmlrDlr4bnoIFcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWZXJpZnlPQXV0aFJlcyB7XG4gIGRhdGE6IHtcbiAgICB1c2VyPzogVXNlciAvLyDnlKjmiLfkv6Hmga9cbiAgICBzZXNzaW9uPzogU2Vzc2lvbiAvLyDkvJror53kv6Hmga9cbiAgICByZWRpcmVjdFVybD86IHN0cmluZyAvLyDot7PovaxVUkzvvIzot7PovaznrKzkuInmlrnmjojmnYPkuYvliY3nmoRVUkzmiJbnlKjmiLfosIPnlKggc2lnbkluV2l0aE9BdXRoIOaXtuS8oOWFpeeahHJlZGlyZWN0VG9cbiAgICBwcm92aWRlcj86IHN0cmluZyAvLyDnu5HlrprnmoTouqvku73mupDmoIfor4ZcbiAgICB0eXBlPzogKHR5cGVvZiBPQVVUSF9UWVBFKVtrZXlvZiB0eXBlb2YgT0FVVEhfVFlQRV0gLy8g57G75Z6L77yI5Y+v6YCJ77yJ77yM6buY6K6k5Li6J3NpZ25faW4nLCBzaWduX2luOiDnmbvlvZXvvIxiaW5kX2lkZW50aXR5OiDnu5Hlrprouqvku71cbiAgfVxuICBlcnJvcjogQXV0aEVycm9yIHwgbnVsbCAvLyDplJnor6/kv6Hmga/vvIzmiJDlip/ml7bkuLpudWxsXG59XG4iXX0=
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDBDQUErRDtBQUV0RCxrR0FGVyx5QkFBaUIsT0FFWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgYXV0aE1vZGVscywgT0FVVEhfVFlQRSB9IGZyb20gJ0BjbG91ZGJhc2Uvb2F1dGgnXG5pbXBvcnQgeyBBdXRoRXJyb3IsIEF1dGhFcnJvckNhdGVnb3J5IH0gZnJvbSAnQGNsb3VkYmFzZS9vYXV0aCdcblxuZXhwb3J0IHsgQXV0aEVycm9yQ2F0ZWdvcnkgfVxuXG5cbi8qKlxuICogc2lnbkluQW5vbnltb3VzbHkg6K+35rGC5Y+C5pWwXG4gKlxuICogKirliY3nva7mnaHku7YqKu+8muS9v+eUqOatpOaWueazleWJje+8jOivt+ehruS/neW3suWcqOS6keW8gOWPkeaOp+WItuWPsO+8iOeOr+WigyDihpIg55m75b2V5o6I5p2DIOKGkiDouqvku73mupDliJfooajvvInlvIDlkK/jgIzljL/lkI3nmbvlvZXjgI3jgIJcbiAqXG4gKiAqKuS9v+eUqOWcuuaZryoq77yaXG4gKiAtIOaXoOmcgOeUqOaIt+azqOWGjOWNs+WPr+S9v+eUqOW6lOeUqOWKn+iDvVxuICogLSDkuLTml7borr/pl67miJblv6vpgJ/kvZPpqozlnLrmma9cbiAqIC0g5rWL6K+VL+iHquWKqOWMlueOr+Wig+S4reS4jemcgOimgeecn+WunueUqOaIt+WHreaNruaXtlxuICpcbiAqICoq5rOo5oSPKirvvJrljL/lkI3nmbvlvZXkuI7lr4bnoIHnmbvlvZXmmK/kuKTnp43ni6znq4vnmoTnmbvlvZXmlrnlvI/vvIzkuI3opoHlnKjljL/lkI3nmbvlvZXlpLHotKXlkI7oh6rliqjlm57pgIDliLDlr4bnoIHnmbvlvZXjgIJcbiAqIOWmguaenOWMv+WQjeeZu+W9lei/lOWbniBQUk9WSURFUl9OT1RfRU5BQkxFRCDplJnor6/vvIzor7TmmI7pnIDopoHlnKjmjqfliLblj7DlvIDlkK/ljL/lkI3nmbvlvZXlip/og73jgIJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTaWduSW5Bbm9ueW1vdXNseVJlcSB7XG4gIHByb3ZpZGVyX3Rva2VuPzogc3RyaW5nIC8vIOaPkOS+m+S7pOeJjFxufVxuXG5leHBvcnQgZGVjbGFyZSB0eXBlIFVzZXIgPSB7XG4gIGlkOiBhbnkgLy8g55So5oi3SURcbiAgYXVkOiBzdHJpbmcgLy8g5Y+X5LyXXG4gIHJvbGU6IHN0cmluZ1tdIC8vIOeUqOaIt+inkuiJslxuICBlbWFpbDogYW55IC8vIOmCrueusVxuICBlbWFpbF9jb25maXJtZWRfYXQ6IHN0cmluZyAvLyDpgq7nrrHnoa7orqTml7bpl7RcbiAgcGhvbmU6IGFueSAvLyDmiYvmnLrlj7dcbiAgcGhvbmVfY29uZmlybWVkX2F0OiBzdHJpbmcgLy8g5omL5py65Y+356Gu6K6k5pe26Ze0XG4gIGNvbmZpcm1lZF9hdDogc3RyaW5nIC8vIOehruiupOaXtumXtFxuICBsYXN0X3NpZ25faW5fYXQ6IHN0cmluZyAvLyDmnIDlkI7nmbvlvZXml7bpl7RcbiAgYXBwX21ldGFkYXRhOiB7XG4gICAgLy8g5bqU55So5YWD5pWw5o2uXG4gICAgcHJvdmlkZXI6IGFueSAvLyDmj5DkvpvllYZcbiAgICBwcm92aWRlcnM6IGFueVtdIC8vIOaPkOS+m+WVhuWIl+ihqFxuICB9XG4gIHVzZXJfbWV0YWRhdGE6IHtcbiAgICAvLyDnlKjmiLflhYPmlbDmja5cbiAgICBuYW1lOiBhbnkgLy8g5aeT5ZCNXG4gICAgcGljdHVyZTogYW55IC8vIOWktOWDj1xuICAgIHVzZXJuYW1lOiBhbnkgLy8g55So5oi35ZCNXG4gICAgZ2VuZGVyOiBhbnkgLy8g5oCn5YirXG4gICAgbG9jYWxlOiBhbnkgLy8g5Zyw5Yy6XG4gICAgdWlkOiBhbnkgLy8g55So5oi3SURcbiAgICBuaWNrTmFtZTogYW55IC8vIOaYteensFxuICAgIGF2YXRhclVybDogYW55IC8vIOWktOWDj1VSTFxuICAgIGxvY2F0aW9uOiBhbnkgLy8g5L2N572uXG4gICAgaGFzUGFzc3dvcmQ6IGFueSAvLyDmmK/lkKbmnInlr4bnoIFcbiAgfVxuICBpZGVudGl0aWVzOiBhbnkgLy8g6Lqr5Lu95L+h5oGvXG4gIGNyZWF0ZWRfYXQ6IHN0cmluZyAvLyDliJvlu7rml7bpl7RcbiAgdXBkYXRlZF9hdDogc3RyaW5nIC8vIOabtOaWsOaXtumXtFxuICBpc19hbm9ueW1vdXM6IGJvb2xlYW4gLy8g5piv5ZCm5Yy/5ZCN55So5oi3XG59XG5cbmV4cG9ydCBkZWNsYXJlIHR5cGUgU2Vzc2lvbiA9IHtcbiAgYWNjZXNzX3Rva2VuPzogc3RyaW5nIC8vIOiuv+mXruS7pOeJjFxuICByZWZyZXNoX3Rva2VuPzogc3RyaW5nIC8vIOWIt+aWsOS7pOeJjFxuICBleHBpcmVzX2luPzogbnVtYmVyIC8vIOi/h+acn+aXtumXtO+8iOenku+8iVxuICB0b2tlbl90eXBlPzogc3RyaW5nIC8vIOS7pOeJjOexu+Wei1xuICB1c2VyOiBVc2VyIC8vIOeUqOaIt+S/oeaBr1xufVxuXG4vKipcbiAqIHNpZ25JbldpdGhQYXNzd29yZCDor7fmsYLlj4LmlbBcbiAqXG4gKiAqKumHjeimgeaPkOekuioq77ya5L2/55So5q2k5pa55rOV5YmN77yM6K+356Gu5L+d5bey5Zyo5LqR5byA5Y+R5o6n5Yi25Y+w77yI546v5aKDIOKGkiDnmbvlvZXmjojmnYMg4oaSIOi6q+S7vea6kOWIl+ihqO+8iVxuICog5byA5ZCv44CM55So5oi35ZCN5a+G56CB55m75b2V44CN5pa55byP44CC5aaC5pyq5byA5ZCv77yM55m75b2V5pe25Lya6L+U5ZueIEF1dGhFcnJvckNhdGVnb3J5LlBST1ZJREVSX05PVF9FTkFCTEVEIOmUmeivr+OAglxuICpcbiAqICoq5Yet5o2u5p2l5rqQKirvvJpcbiAqIC0g55So5oi35omL5Yqo6L6T5YWl77yI5Lqk5LqS5byP5Zy65pmv77yJXG4gKiAtIOeOr+Wig+WPmOmHjyBFTlZfSUQgLyBVU0VSX05BTUUgLyBQQVNTV09SRO+8iOiHquWKqOWMli9hZ2VudCDlnLrmma/vvIlcbiAqIC0g6K+356Gu5L+d5Yet5o2u5a+55bqU55qE55So5oi35bey5Zyo55uu5qCHIGVudklkIOeOr+Wig+S4reazqOWGjFxuICpcbiAqICoq5bi46KeB6ZSZ6K+vKirvvJpcbiAqIC0gYGludmFsaWRfdXNlcm5hbWVfb3JfcGFzc3dvcmRg77ya55So5oi35ZCN5oiW5a+G56CB6ZSZ6K+v77yM6K+35qC45a6e5Yet5o2uXG4gKiAtIGBQUk9WSURFUl9OT1RfRU5BQkxFRGDvvJrnlKjmiLflkI3lr4bnoIHnmbvlvZXmnKrlvIDlkK/vvIzpnIDlnKjmjqfliLblj7DphY3nva5cbiAqIC0gYG5vdF9mb3VuZGDvvJrnlKjmiLfkuI3lrZjlnKjvvIzpnIDlhYjms6jlhoxcbiAqXG4gKiAqKuazqOaEjyoq77ya5LiN5ZCM5LqR5byA5Y+R546v5aKD55qE55So5oi35bqT5piv6ZqU56a755qE77yM6K+356Gu6K6kIGVudklkIOS4juWHreaNruWMuemFjeOAglxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25JbldpdGhQYXNzd29yZFJlcSB7XG4gIHVzZXJuYW1lPzogc3RyaW5nIC8vIOeUqOaIt+WQjeensO+8iOWPr+mAie+8jOS4jumCrueuseOAgeaJi+acuuWPt+S4iemAieS4gO+8ie+8jOmVv+W6piA1LTI0IOS9je+8jOaUr+aMgeWtl+espuS4reiLseaWh+OAgeaVsOWtl+OAgeeJueauiuWtl+espu+8iOS7heaUr+aMgV8t77yJ77yM5LiN5pSv5oyB5Lit5paHXG4gIGVtYWlsPzogc3RyaW5nIC8vIOmCrueuse+8iOWPr+mAie+8jOS4jueUqOaIt+WQjeOAgeaJi+acuuWPt+S4iemAieS4gO+8iVxuICBwaG9uZT86IHN0cmluZyAvLyDmiYvmnLrlj7fvvIjlj6/pgInvvIzkuI7nlKjmiLflkI3jgIHpgq7nrrHkuInpgInkuIDvvIlcbiAgcGFzc3dvcmQ6IHN0cmluZyAvLyDlr4bnoIHvvIjlv4XloavvvIlcbiAgaXNfZW5jcnlwdD86IGJvb2xlYW4gLy8g5piv5ZCm5Yqg5a+G77yM6buY6K6k5Li6ZmFsc2Vcbn1cblxuLy8g6YCa55So5ZON5bqU57G75Z6LXG5leHBvcnQgaW50ZXJmYWNlIENvbW1vblJlcyB7XG4gIGRhdGE6IHt9IC8vIOaIkOWKn+aXtuS4uuepuuWvueixoVxuICBlcnJvcjogQXV0aEVycm9yIHwgbnVsbCAvLyDplJnor6/kv6Hmga/vvIzmiJDlip/ml7bkuLpudWxsXG59XG5cbi8qKlxuICog55m75b2V5pON5L2c5ZON5bqU57G75Z6LXG4gKlxuICog5b2TIGVycm9yIOS4jeS4uiBudWxsIOaXtu+8jGVycm9yIOWvueixoeWMheWQq++8mlxuICogLSBgY2F0ZWdvcnlgOiDplJnor6/liIbnsbvvvIhBdXRoRXJyb3JDYXRlZ29yeSDmnprkuL7vvInvvIzlj6/nlKjkuo7nqIvluo/ljJbliKTmlq3plJnor6/nsbvlnotcbiAqIC0gYGhlbHBNZXNzYWdlYDog5Y+v5pON5L2c5oCn5oyH5byV5L+h5oGv77yM5YyF5ZCr5o6S5p+l5q2l6aqk5ZKM6Kej5Yaz5pa55qGIXG4gKiAtIGBsb2dpbk1ldGhvZEhpbnRgOiDnmbvlvZXmlrnlvI/pgInmi6nlu7rorq7vvIzluK7liqnpgInmi6nmraPnoa7nmoTnmbvlvZXmlrnms5VcbiAqIC0gYGNvZGVgOiDmnI3liqHnq6/ov5Tlm57nmoTplJnor6/noIHvvIjlpoIgJ2ludmFsaWRfdXNlcm5hbWVfb3JfcGFzc3dvcmQn44CBJ2ludmFsaWRfcGFzc3dvcmQn77yJXG4gKiAtIGBtZXNzYWdlYDog6ZSZ6K+v5o+P6L+wXG4gKlxuICog56S65L6L77yaXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCB7IGRhdGEsIGVycm9yIH0gPSBhd2FpdCBhdXRoLnNpZ25JbldpdGhQYXNzd29yZCh7IHVzZXJuYW1lOiAndGVzdCcsIHBhc3N3b3JkOiAnMTIzJyB9KVxuICogaWYgKGVycm9yKSB7XG4gKiAgIGlmIChlcnJvci5jYXRlZ29yeSA9PT0gQXV0aEVycm9yQ2F0ZWdvcnkuUFJPVklERVJfTk9UX0VOQUJMRUQpIHtcbiAqICAgICAvLyDouqvku73mupDmnKrlvIDlkK/vvIzlvJXlr7znlKjmiLfmiJbnrqHnkIblkZjlvIDlkK9cbiAqICAgICBjb25zb2xlLmxvZyhlcnJvci5oZWxwTWVzc2FnZSlcbiAqICAgfSBlbHNlIGlmIChlcnJvci5jYXRlZ29yeSA9PT0gQXV0aEVycm9yQ2F0ZWdvcnkuSU5WQUxJRF9DUkVERU5USUFMUykge1xuICogICAgIC8vIOWHreaNrumUmeivr++8iOWMheaLrCBpbnZhbGlkX3VzZXJuYW1lX29yX3Bhc3N3b3Jk77yJ77yM5o+Q56S655So5oi35qOA5p+l5a+G56CBXG4gKiAgICAgY29uc29sZS5sb2coZXJyb3IuaGVscE1lc3NhZ2UpXG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICpcbiAqICoqYWdlbnQv6Ieq5Yqo5YyW5Zy65pmv5rOo5oSPKirvvJpcbiAqIC0g5LiN6KaB5ZyoIHNpZ25JbkFub255bW91c2x5KCkg5aSx6LSl5ZCO6Ieq5Yqo5Zue6YCA5YiwIHNpZ25JbldpdGhQYXNzd29yZCgpXG4gKiAtIOS4pOenjeeZu+W9leaWueW8j+eahOmAgueUqOWcuuaZr+S4jeWQjO+8jOW6lOagueaNruS7u+WKoemcgOaxguaYjuehrumAieaLqVxuICogLSDkvb/nlKggZXJyb3IubG9naW5NZXRob2RIaW50IOiOt+WPluW9k+WJjeeZu+W9leaWueW8j+eahOS9v+eUqOW7uuiurlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25JblJlcyB7XG4gIGRhdGE6IHtcbiAgICB1c2VyPzogVXNlciAvLyDnlKjmiLfkv6Hmga9cbiAgICBzZXNzaW9uPzogU2Vzc2lvbiAvLyDkvJror53kv6Hmga9cbiAgfVxuICBlcnJvcjogQXV0aEVycm9yIHwgbnVsbCAvLyDplJnor6/kv6Hmga/vvIzmiJDlip/ml7bkuLpudWxsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0VXNlclJlcyB7XG4gIGRhdGE6IHtcbiAgICB1c2VyPzogVXNlciAvLyDnlKjmiLfor6bnu4bkv6Hmga9cbiAgfVxuICBlcnJvcjogQXV0aEVycm9yIHwgbnVsbCAvLyDplJnor6/kv6Hmga/vvIzmiJDlip/ml7bkuLpudWxsXG59XG5cbi8vIOabtOaWsOeUqOaIt+mqjOivgeWbnuiwg+WPguaVsFxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVVc2VyVmVyaWZ5T3RwUGFyYW1zIHtcbiAgZW1haWw/OiBzdHJpbmcgLy8g6YKu566x77yI5Y+v6YCJ77yM5LiO5omL5py65Y+35LqM6YCJ5LiA77yJXG4gIHBob25lPzogc3RyaW5nIC8vIOaJi+acuuWPt++8iOWPr+mAie+8jOS4jumCrueuseS6jOmAieS4gO+8iVxuICB0b2tlbjogc3RyaW5nIC8vIOmqjOivgeegge+8iOW/heWhq++8iVxufVxuXG4vLyDmm7TmlrDnlKjmiLfpqozor4Hlm57osIPnsbvlnotcbmRlY2xhcmUgdHlwZSBVcGRhdGVVc2VyVmVyaWZ5Q2FsbGJhY2sgPSAocGFyYW1zOiBVcGRhdGVVc2VyVmVyaWZ5T3RwUGFyYW1zKSA9PiBQcm9taXNlPEdldFVzZXJSZXM+XG5cbi8vIOabtOaWsOeUqOaIt+WTjeW6lOexu+Wei++8iOW9k+mcgOimgemqjOivgeaXtu+8iVxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVVc2VyV2l0aFZlcmlmaWNhdGlvblJlcyB7XG4gIGRhdGE6IHtcbiAgICB2ZXJpZnlPdHA/OiBVcGRhdGVVc2VyVmVyaWZ5Q2FsbGJhY2sgLy8g6aqM6K+B56CB5Zue6LCD5Ye95pWwXG4gICAgbWVzc2FnZUlkPzogc3RyaW5nIC8vIOmqjOivgeeggUlEXG4gIH1cbiAgZXJyb3I6IEF1dGhFcnJvciB8IG51bGwgLy8g6ZSZ6K+v5L+h5oGv77yM5oiQ5Yqf5pe25Li6bnVsbFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25JbldpdGhJZFRva2VuUmVxIHtcbiAgcHJvdmlkZXI/OiBzdHJpbmcgLy8g56ys5LiJ5pa55bmz5Y+w5qCH6K+G77yI5Y+v6YCJ77yJXG4gIHRva2VuOiBzdHJpbmcgLy8g56ys5LiJ5pa55bmz5Y+w55qE6Lqr5Lu95Luk54mM77yI5b+F5aGr77yJXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbkluV2l0aE9BdXRoUmVxIHtcbiAgcHJvdmlkZXI6IHN0cmluZyAvLyDnrKzkuInmlrnlubPlj7DmoIfor4bvvIjlv4XloavvvIlcbiAgb3B0aW9ucz86IHtcbiAgICAvLyDphY3nva7pgInpobnvvIjlj6/pgInvvIlcbiAgICByZWRpcmVjdFRvPzogc3RyaW5nIC8vIOWbnuiwg+WcsOWdgO+8jOm7mOiupOS4uuW9k+WJjemhtemdolxuICAgIHNraXBCcm93c2VyUmVkaXJlY3Q/OiBib29sZWFuIC8vIOaYr+WQpui3s+i9rOiHs+aOiOadg+mhtemdou+8jOm7mOiupOS4umZhbHNlXG4gICAgc3RhdGU/OiBzdHJpbmcgLy8g54q25oCB5Y+C5pWw77yM55So5LqO5a6J5YWo6aqM6K+B77yM6buY6K6k5Li66ZqP5py65a2X56ym5Liy77yI5qC85byP77yacHJkLXtwcm92aWRlcn0te+maj+acuuWtl+espuS4sn3vvIlcbiAgICBxdWVyeVBhcmFtcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gLy8g6aKd5aSW55qE5p+l6K+i5Y+C5pWw77yM5bCG5ZCI5bm25Yiw5o6I5p2DIFVSSSDkuK1cbiAgICB0eXBlPzogKHR5cGVvZiBPQVVUSF9UWVBFKVtrZXlvZiB0eXBlb2YgT0FVVEhfVFlQRV0gLy8g57G75Z6L77yI5Y+v6YCJ77yJ77yM6buY6K6k5Li6J3NpZ25faW4nLCBzaWduX2luOiDnmbvlvZXvvIxiaW5kX2lkZW50aXR5OiDnu5Hlrprouqvku71cbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpZ25Jbk9BdXRoUmVzIHtcbiAgZGF0YToge1xuICAgIHVybD86IHN0cmluZyAvLyDmjojmnYPpobXpnaJVUkxcbiAgICBwcm92aWRlcj86IHN0cmluZyAvLyDnrKzkuInmlrnlubPlj7DmoIfor4ZcbiAgICBzY29wZXM/OiBzdHJpbmcgLy8g5o6I5p2D6IyD5Zu0XG4gIH1cbiAgZXJyb3I6IEF1dGhFcnJvciB8IG51bGwgLy8g6ZSZ6K+v5L+h5oGv77yM5oiQ5Yqf5pe25Li6bnVsbFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldENsYWltc1JlcyB7XG4gIGRhdGE6IHtcbiAgICAvLyDku6TniYzlo7DmmI7kv6Hmga9cbiAgICBjbGFpbXM/OiB7XG4gICAgICBpc3M6IHN0cmluZyAvLyBpc3N1ZXJcbiAgICAgIHN1Yjogc3RyaW5nIC8vIHN1YmplY3RcbiAgICAgIGF1ZDogc3RyaW5nIC8vICBhdWRpZW5jZVxuICAgICAgZXhwOiBudW1iZXIgLy8gIGV4cGlyYXRpb24gdGltZVxuICAgICAgaWF0OiBudW1iZXIgLy8gaXNzdWVkIGF0XG4gICAgICBhdF9oYXNoOiBzdHJpbmcgLy8gYWNjZXNzIHRva2VuIGhhc2hcbiAgICAgIG5hbWU6IHN0cmluZyAvLyDlkI3np7BcbiAgICAgIHBpY3R1cmU/OiBzdHJpbmcgLy8g5aS05YOPVVJMXG4gICAgICBlbWFpbD86IHN0cmluZyAvLyDpgq7nrrFcbiAgICAgIHBob25lX251bWJlcj86IHN0cmluZyAvLyDmiYvmnLrlj7dcbiAgICAgIHNjb3BlOiBzdHJpbmcgLy8g5o6I5p2D6IyD5Zu0XG4gICAgICBwcm9qZWN0X2lkOiBzdHJpbmcgLy8g6aG555uuSURcbiAgICAgIHByb3ZpZGVyPzogc3RyaW5nIC8vIOesrOS4ieaWueW5s+WPsOagh+ivhlxuICAgICAgcHJvdmlkZXJfdHlwZT86IHN0cmluZyAvLyDnrKzkuInmlrnlubPlj7DnsbvlnotcbiAgICAgIGdyb3Vwcz86IHN0cmluZ1tdIC8vIOeUqOaIt+e7hFxuICAgICAgbWV0YT86IHtcbiAgICAgICAgd3hPcGVuSWQ/OiBzdHJpbmdcbiAgICAgICAgd3hVbmlvbklkPzogc3RyaW5nXG4gICAgICB9XG4gICAgICB1c2VyX2lkOiBzdHJpbmcgLy8g55So5oi3SURcbiAgICAgIHJvbGVzOiBzdHJpbmdbXSAvLyDop5LoibJcbiAgICAgIHVzZXJfdHlwZTogc3RyaW5nIC8vIOeUqOaIt+exu+Wei1xuICAgICAgY2xpZW50X3R5cGU6IHN0cmluZyAvLyDlrqLmiLfnq6/nsbvlnotcbiAgICAgIGlzX3N5c3RlbV9hZG1pbjogYm9vbGVhbiAvLyDmmK/lkKbns7vnu5/nrqHnkIblkZhcbiAgICB9XG4gICAgLy8g5Luk54mM5aS06YOo5L+h5oGvXG4gICAgaGVhZGVyPzoge1xuICAgICAgYWxnOiBzdHJpbmcgLy8g5Yqg5a+G566X5rOVXG4gICAgICBraWQ6IHN0cmluZyAvLyDku6TniYxJRFxuICAgIH1cbiAgICBzaWduYXR1cmU/OiBzdHJpbmcgLy8g5Luk54mM562+5ZCNXG4gIH1cbiAgZXJyb3I6IEF1dGhFcnJvciB8IG51bGwgLy8g6ZSZ6K+v5L+h5oGv77yM5oiQ5Yqf5pe25Li6bnVsbFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVVzZXJSZXEgZXh0ZW5kcyBhdXRoTW9kZWxzLk1vZGlmeVVzZXJCYXNpY0luZm9SZXF1ZXN0IHtcbiAgZW1haWw/OiBzdHJpbmcgLy8g6YKu566x77yI5Y+v6YCJ77yJXG4gIHBob25lPzogc3RyaW5nIC8vIOaJi+acuuWPt++8iOWPr+mAie+8iVxuICB1c2VybmFtZT86IHN0cmluZyAvLyDnlKjmiLflkI3np7DvvIjlj6/pgInvvInvvIzplb/luqYgNS0yNCDkvY3vvIzmlK/mjIHlrZfnrKbkuK3oi7HmlofjgIHmlbDlrZfjgIHnibnmrorlrZfnrKbvvIjku4XmlK/mjIFfLe+8ie+8jOS4jeaUr+aMgeS4reaWh1xuICBkZXNjcmlwdGlvbj86IHN0cmluZyAvLyDmj4/ov7DvvIjlj6/pgInvvIlcbiAgYXZhdGFyX3VybD86IHN0cmluZyAvLyDlpLTlg49VUkzvvIjlj6/pgInvvIlcbiAgbmlja25hbWU/OiBzdHJpbmcgLy8g5pi156ew77yI5Y+v6YCJ77yJXG4gIGdlbmRlcj86ICdNQUxFJyB8ICdGRU1BTEUnIC8vIOaAp+WIq++8iOWPr+mAie+8iVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldFVzZXJJZGVudGl0aWVzUmVzIHtcbiAgZGF0YToge1xuICAgIGlkZW50aXRpZXM/OlxuICAgIHwgQXJyYXk8e1xuICAgICAgaWQ6IHN0cmluZyAvLyDouqvku73mupDmoIfor4ZcbiAgICAgIG5hbWU6IHN0cmluZyAvLyDouqvku73mupDlkI3np7BcbiAgICAgIHBpY3R1cmU6IHN0cmluZyAvLyDlpLTlg49VUkxcbiAgICB9PlxuICB9XG4gIGVycm9yOiBBdXRoRXJyb3IgfCBudWxsIC8vIOmUmeivr+S/oeaBr++8jOaIkOWKn+aXtuS4um51bGxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaW5rSWRlbnRpdHlSZXEge1xuICBwcm92aWRlcjogc3RyaW5nIC8vIOi6q+S7vea6kOagh+ivhu+8iOW/heWhq++8iVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVubGlua0lkZW50aXR5UmVxIHtcbiAgcHJvdmlkZXI6IHN0cmluZyAvLyDouqvku73mupDmoIfor4bvvIjlv4XloavvvIlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaW5rSWRlbnRpdHlSZXMge1xuICBkYXRhOiB7XG4gICAgcHJvdmlkZXI/OiBzdHJpbmcgLy8g57uR5a6a55qE6Lqr5Lu95rqQ5qCH6K+GXG4gICAgdHlwZT86ICh0eXBlb2YgT0FVVEhfVFlQRSlba2V5b2YgdHlwZW9mIE9BVVRIX1RZUEVdIC8vIOexu+Wei++8iOWPr+mAie+8ie+8jOm7mOiupOS4uidzaWduX2luJywgc2lnbl9pbjog55m75b2V77yMYmluZF9pZGVudGl0eTog57uR5a6a6Lqr5Lu9XG4gIH1cbiAgZXJyb3I6IEF1dGhFcnJvciB8IG51bGwgLy8g6ZSZ6K+v5L+h5oGv77yM5oiQ5Yqf5pe25Li6bnVsbFxufVxuXG5leHBvcnQgZGVjbGFyZSB0eXBlIE9uQXV0aFN0YXRlQ2hhbmdlRXZlbnQgPVxuICB8ICdTSUdORURfT1VUJyAvLyDnlKjmiLflt7Lnmbvlh7pcbiAgfCAnU0lHTkVEX0lOJyAvLyDnlKjmiLfnmbvlvZXmiJDlip9cbiAgfCAnSU5JVElBTF9TRVNTSU9OJyAvLyDliJ3lp4vkvJror53lt7Llu7rnq4tcbiAgfCAnUEFTU1dPUkRfUkVDT1ZFUlknIC8vIOWvhueggeW3sumHjee9rlxuICB8ICdUT0tFTl9SRUZSRVNIRUQnIC8vIOS7pOeJjOW3suWIt+aWsFxuICB8ICdVU0VSX1VQREFURUQnIC8vIOeUqOaIt+S/oeaBr+W3suabtOaWsFxuICB8ICdCSU5EX0lERU5USVRZJyAvLyDouqvku73mupDnu5Hlrprnu5PmnpxcblxuZXhwb3J0IGRlY2xhcmUgdHlwZSBPbkF1dGhTdGF0ZUNoYW5nZUNhbGxiYWNrID0gKFxuICBldmVudDogT25BdXRoU3RhdGVDaGFuZ2VFdmVudCxcbiAgc2Vzc2lvbjogU2Vzc2lvbixcbiAgaW5mbz86IFJlY29yZDxzdHJpbmcsIGFueT4sXG4pID0+IHZvaWRcblxudHlwZSBNb2JpbGVPdHBUeXBlID0gJ3NtcycgfCAncGhvbmVfY2hhbmdlJ1xudHlwZSBFbWFpbE90cFR5cGUgPSAnc2lnbnVwJyB8ICdpbnZpdGUnIHwgJ21hZ2ljbGluaycgfCAncmVjb3ZlcnknIHwgJ2VtYWlsX2NoYW5nZScgfCAnZW1haWwnXG5leHBvcnQgaW50ZXJmYWNlIFZlcmlmeU90cFJlcSB7XG4gIHR5cGU/OiBNb2JpbGVPdHBUeXBlIHwgRW1haWxPdHBUeXBlXG4gIGVtYWlsPzogc3RyaW5nIC8vIOmCrueuse+8iOWPr+mAie+8jOS4juaJi+acuuWPt+S6jOmAieS4gO+8iVxuICBwaG9uZT86IHN0cmluZyAvLyDmiYvmnLrlj7fvvIjlj6/pgInvvIzkuI7pgq7nrrHkuozpgInkuIDvvIlcbiAgdG9rZW46IHN0cmluZyAvLyDpqozor4HnoIHvvIjlv4XloavvvIlcbiAgbWVzc2FnZUlkPzogc3RyaW5nIC8vIOmqjOivgeeggeWvueW6lElE77yI5Y+v6YCJ77yJXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbkluV2l0aE90cFJlcSB7XG4gIGVtYWlsPzogc3RyaW5nIC8vIOmCrueuse+8iOWPr+mAie+8jOS4juaJi+acuuWPt+S6jOmAieS4gO+8iVxuICBwaG9uZT86IHN0cmluZyAvLyDmiYvmnLrlj7fvvIjlj6/pgInvvIzkuI7pgq7nrrHkuozpgInkuIDvvIlcbiAgb3B0aW9ucz86IHtcbiAgICBzaG91bGRDcmVhdGVVc2VyPzogYm9vbGVhbiAvLyDlpoLmnpznlKjmiLfkuI3lrZjlnKjmmK/lkKbliJvlu7rnlKjmiLfvvIzpu5jorqTkuLp0cnVlXG4gICAgZW1haWxSZWRpcmVjdFRvPzogc3RyaW5nIC8vIOmCrueuseeZu+W9leWbnuiwg+WcsOWdgO+8jOWhq+WGmeWQjuWImeS8muWPkemAgeiupOivgemTvuaOpeiHs+mCrueuse+8jOWQpuWImeWPkemAgemqjOivgeeggVxuICB9XG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBjb2RlIOmqjOivgeeggVxuICogQHBhcmFtIG1lc3NhZ2VJZCDlj6/pgInvvIxSZXNlbmRSZXMuZGF0YS5tZXNzYWdlSWRcbiAqIEByZXR1cm5zXG4gKi9cbmRlY2xhcmUgdHlwZSBPdHBDYWxsYmFjayA9IChwYXJhbXM6IFZlcmlmeU90cFJlcSkgPT4gUHJvbWlzZTxTaWduSW5SZXM+XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbkluV2l0aE90cFJlcyB7XG4gIGRhdGE6IFNpZ25JblJlc1snZGF0YSddICYge1xuICAgIHZlcmlmeU90cD86IE90cENhbGxiYWNrIC8vIOmqjOivgeeggeWbnuiwg+WHveaVsO+8jOaUr+aMgW1lc3NhZ2VJZOWPguaVsFxuICB9XG4gIGVycm9yOiBBdXRoRXJyb3IgfCBudWxsIC8vIOmUmeivr+S/oeaBr++8jOaIkOWKn+aXtuS4um51bGxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduVXBSZXMge1xuICBkYXRhOiB7XG4gICAgdXNlcj86IFVzZXIgLy8g55So5oi35L+h5oGv77yI5omL5py65Y+36aqM6K+B56CB5rOo5YaM55u05o6l6L+U5Zue77yJXG4gICAgc2Vzc2lvbj86IFNlc3Npb24gLy8g5Lya6K+d5L+h5oGv77yI5omL5py65Y+36aqM6K+B56CB5rOo5YaM55u05o6l6L+U5Zue77yJXG4gICAgdmVyaWZ5T3RwPzogT3RwQ2FsbGJhY2sgLy8g6aqM6K+B56CB5Zue6LCD5Ye95pWw77yM5pSv5oyBbWVzc2FnZUlk5Y+C5pWwXG4gIH1cbiAgZXJyb3I6IEF1dGhFcnJvciB8IG51bGxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNlbmRSZXEge1xuICBlbWFpbD86IHN0cmluZyAvLyDpgq7nrrHvvIjlj6/pgInvvIzkuI7miYvmnLrlj7fkuozpgInkuIDvvIlcbiAgcGhvbmU/OiBzdHJpbmcgLy8g5omL5py65Y+377yI5Y+v6YCJ77yM5LiO6YKu566x5LqM6YCJ5LiA77yJXG4gIHR5cGU/OiAnc2lnbnVwJyB8ICdlbWFpbF9jaGFuZ2UnIHwgJ3Bob25lX2NoYW5nZScgfCAnc21zJyAvLyDnsbvlnovvvIjlj6/pgInvvIlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNlbmRSZXMge1xuICBkYXRhOiB7XG4gICAgbWVzc2FnZUlkPzogc3RyaW5nIC8vIOa2iOaBr0lE77yI6aqM6K+B56CBSUTvvIlcbiAgfVxuICBlcnJvcjogQXV0aEVycm9yIHwgbnVsbCAvLyDplJnor6/kv6Hmga/vvIzmiJDlip/ml7bkuLpudWxsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVyaWZ5T0F1dGhSZXEge1xuICBjb2RlPzogc3RyaW5nIC8vIOaOiOadg+egge+8iOWPr+mAie+8jOm7mOiupOS7jlVSTOWPguaVsOiOt+WPlu+8iVxuICBzdGF0ZT86IHN0cmluZyAvLyDnirbmgIHlj4LmlbDvvIjlj6/pgInvvIzpu5jorqTku45VUkzlj4LmlbDojrflj5bvvIlcbiAgcHJvdmlkZXI/OiBzdHJpbmcgLy8g56ys5LiJ5pa55bmz5Y+w5qCH6K+G77yI5Y+v6YCJ77yM6buY6K6k5LuOc2Vzc2lvbuiOt+WPlu+8iVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVVzZXJBdHRyaWJ1dGVzIHtcbiAgbm9uY2U6IHN0cmluZyAvLyDpqozor4HnoIFcbiAgcGFzc3dvcmQ6IHN0cmluZyAvLyDmlrDlr4bnoIFcbn1cblxuLy8g6YeN572u5a+G56CB5ZON5bqU57G75Z6LXG5leHBvcnQgaW50ZXJmYWNlIFJlc2V0UGFzc3dvcmRGb3JFbWFpbFJlcyB7XG4gIGRhdGE6IHtcbiAgICB1cGRhdGVVc2VyPzogKGF0dHJpYnV0ZXM6IFVwZGF0ZVVzZXJBdHRyaWJ1dGVzKSA9PiBQcm9taXNlPFNpZ25JblJlcz4gLy8g6aqM6K+B56CB5Zue6LCD5Ye95pWw77yM5pSv5oyB5paw5a+G56CB5Y+C5pWwXG4gIH1cbiAgZXJyb3I6IEF1dGhFcnJvciB8IG51bGwgLy8g6ZSZ6K+v5L+h5oGv77yM5oiQ5Yqf5pe25Li6bnVsbFxufVxuXG4vLyDph43mlrDorqTor4Hlk43lupTnsbvlnotcbmV4cG9ydCBpbnRlcmZhY2UgUmVhdXRoZW50aWNhdGVSZXMge1xuICBkYXRhOiB7XG4gICAgdXBkYXRlVXNlcj86IChhdHRyaWJ1dGVzOiBVcGRhdGVVc2VyQXR0cmlidXRlcykgPT4gUHJvbWlzZTxTaWduSW5SZXM+IC8vIOmqjOivgeeggeWbnuiwg+WHveaVsO+8jOaUr+aMgeaWsOWvhueggeWPguaVsFxuICB9XG4gIGVycm9yOiBBdXRoRXJyb3IgfCBudWxsIC8vIOmUmeivr+S/oeaBr++8jOaIkOWKn+aXtuS4um51bGxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZXRTZXNzaW9uUmVxIHtcbiAgYWNjZXNzX3Rva2VuOiBzdHJpbmcgLy8g6K6/6Zeu5Luk54mMXG4gIHJlZnJlc2hfdG9rZW46IHN0cmluZyAvLyDliLfmlrDku6TniYxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZWxldGVNZVJlcSB7XG4gIHBhc3N3b3JkOiBzdHJpbmcgLy8g55So5oi35a+G56CBXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzZXRQYXNzd29yZEZvck9sZFJlcSB7XG4gIG9sZF9wYXNzd29yZDogc3RyaW5nIC8vIOaXp+WvhueggVxuICBuZXdfcGFzc3dvcmQ6IHN0cmluZyAvLyDmlrDlr4bnoIFcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWZXJpZnlPQXV0aFJlcyB7XG4gIGRhdGE6IHtcbiAgICB1c2VyPzogVXNlciAvLyDnlKjmiLfkv6Hmga9cbiAgICBzZXNzaW9uPzogU2Vzc2lvbiAvLyDkvJror53kv6Hmga9cbiAgICByZWRpcmVjdFVybD86IHN0cmluZyAvLyDot7PovaxVUkzvvIzot7PovaznrKzkuInmlrnmjojmnYPkuYvliY3nmoRVUkzmiJbnlKjmiLfosIPnlKggc2lnbkluV2l0aE9BdXRoIOaXtuS8oOWFpeeahHJlZGlyZWN0VG9cbiAgICBwcm92aWRlcj86IHN0cmluZyAvLyDnu5HlrprnmoTouqvku73mupDmoIfor4ZcbiAgICB0eXBlPzogKHR5cGVvZiBPQVVUSF9UWVBFKVtrZXlvZiB0eXBlb2YgT0FVVEhfVFlQRV0gLy8g57G75Z6L77yI5Y+v6YCJ77yJ77yM6buY6K6k5Li6J3NpZ25faW4nLCBzaWduX2luOiDnmbvlvZXvvIxiaW5kX2lkZW50aXR5OiDnu5Hlrprouqvku71cbiAgfVxuICBlcnJvcjogQXV0aEVycm9yIHwgbnVsbCAvLyDplJnor6/kv6Hmga/vvIzmiJDlip/ml7bkuLpudWxsXG59XG4iXX0=
@@ -420,4 +420,4 @@ function applyUserV1Compat(UserClass) {
420
420
  };
421
421
  }
422
422
  exports.applyUserV1Compat = applyUserV1Compat;
423
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjEtY29tcGF0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3YxLWNvbXBhdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVFBLDBDQUd5QjtBQUN6Qix5Q0FHb0I7QUFXcEI7SUFDRSw0QkFBWSxRQUlYO0lBRUQsQ0FBQztJQU1NLCtDQUFrQixHQUF6QjtRQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsNkRBQTZEO2NBQ3pFLDhEQUE4RCxDQUFFLENBQUE7SUFDdEUsQ0FBQztJQU1ZLDhDQUFpQixHQUE5QixVQUErQixRQUc5Qjs7O2dCQUNDLE1BQU0sSUFBSSxLQUFLLENBQUMsNERBQTREO3NCQUN4RSx1REFBdUQsQ0FBRSxDQUFBOzs7S0FDOUQ7SUFNWSxrREFBcUIsR0FBbEMsVUFBbUMsUUFFbEM7OztnQkFDQyxNQUFNLElBQUksS0FBSyxDQUFDLGdFQUFnRTtzQkFDNUUsMkRBQTJELENBQUUsQ0FBQTs7O0tBQ2xFO0lBQ0gseUJBQUM7QUFBRCxDQUFDLEFBeENELElBd0NDO0FBeENZLGdEQUFrQjtBQWdEL0I7SUFHRSw0QkFBWSxPQUVYO1FBQ0MsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFBO0lBQzFDLENBQUM7SUFPWSxtQ0FBTSxHQUFuQixVQUFvQixNQUFjOzs7OzRCQUVoQyxXQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsc0JBQXNCLENBQUMsY0FBTSxPQUFBLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQXZCLENBQXVCLENBQUMsRUFBQTs7d0JBQTdFLFNBQTZFLENBQUE7Ozs7O0tBQzlFO0lBQ0gseUJBQUM7QUFBRCxDQUFDLEFBbEJELElBa0JDO0FBbEJZLGdEQUFrQjtBQTBCL0I7SUFHRSwrQkFBWSxPQUVYO1FBQ0MsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFB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QzdELE1BQU0sSUFBSSxLQUFLLENBQUMsNkNBQTZDO2NBQ3pELDJEQUEyRCxDQUFFLENBQUE7SUFDbkUsQ0FBQyxDQUFBO0lBTUQsU0FBUyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsVUFBZ0IsUUFBZ0IsRUFBRSxTQUFrQjs7Ozs7d0JBQ3BGLElBQUksT0FBTyxRQUFRLEtBQUssUUFBUSxFQUFFOzRCQUNoQyxJQUFBLHNCQUFVLEVBQUMsa0JBQU0sQ0FBQyxjQUFjLEVBQUUsMkJBQTJCLENBQUMsQ0FBQTt5QkFDL0Q7d0JBR0QsV0FBTSxJQUFJLENBQUMsbUJBQW1CLENBQUM7Z0NBQzdCLEtBQUssRUFBRSxRQUFROzZCQUNoQixDQUFDLEVBQUE7O3dCQUZGLFNBRUUsQ0FBQTs7Ozs7S0FDSCxDQUFBO0lBT0QsU0FBUyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsR0FBRyxVQUFnQixZQUFvQixFQUFFLFVBQWtCOzs7Z0JBQ2hHLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQWdEO3NCQUM1RCxrRkFBa0YsQ0FBRSxDQUFBOzs7S0FDekYsQ0FBQTtJQU9ELFNBQVMsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLEdBQUcsVUFBZ0IsWUFBb0IsRUFBRSxVQUFrQjs7O2dCQUM5RixNQUFNLElBQUksS0FBSyxDQUFDLDhDQUE4QztzQkFDMUQsc0RBQXNELENBQUUsQ0FBQTs7O0tBQzdELENBQUE7SUFPRCxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxVQUFnQixVQUFrQjs7O2dCQUM3RCxNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQztzQkFDL0Msd0RBQXdELENBQUUsQ0FBQTs7O0tBQy9ELENBQUE7QUFDSCxDQUFDO0FBaEVELDhDQWdFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11c2VsZXNzLWNvbnN0cnVjdG9yICovXG4vKipcbiAqIHYxIOWFvOWuueWxglxuICog5pys5paH5Lu25YyF5ZCrIHYxIOeJiOacrOeahCBQcm92aWRlciDnsbvjgIFBdXRoIHYxIOWFvOWuueaWueazleWSjCBVc2VyIHYxIOWFvOWuueaWueazleOAglxuICogQXV0aCDnsbvpgJrov4cgZXh0ZW5kcyBBdXRoVjFDb21wYXQg5p2l57un5om/IHYxIOaWueazleOAglxuICogVXNlciDnsbvpgJrov4cgYXBwbHlVc2VyVjFDb21wYXQgbWl4aW4g5p2l5omp5bGVIHYxIOaWueazleOAglxuICovXG5pbXBvcnQgdHlwZSB7IGF1dGhNb2RlbHMgfSBmcm9tICdAY2xvdWRiYXNlL29hdXRoJ1xuaW1wb3J0IHtcbiAgTE9HSU5fU1RBVEVfQ0hBTkdFRF9UWVBFLFxuICBBVVRIX1NUQVRFX0NIQU5HRURfVFlQRSxcbn0gZnJvbSAnQGNsb3VkYmFzZS9vYXV0aCdcbmltcG9ydCB7XG4gIHRocm93RXJyb3IsXG4gIEVSUk9SUyxcbn0gZnJvbSAnLi91dGlsaXRpZXMnXG5pbXBvcnQgdHlwZSB7IFNpZ25VcFJlcyB9IGZyb20gJy4vdHlwZSdcblxuLy8gPT09PT09PT09PSB2MSDlhbzlrrkgUHJvdmlkZXIg57G7ID09PT09PT09PT1cblxuLyoqXG4gKiB2MSDlvq7kv6HnmbvlvZUgUHJvdmlkZXJcbiAqIOS9v+eUqOaWueW8jzogYXV0aC53ZWl4aW5BdXRoUHJvdmlkZXIoeyBhcHBpZCwgc2NvcGUgfSkuc2lnbkluV2l0aFJlZGlyZWN0KClcbiAqXG4gKiBAZGVwcmVjYXRlZCB2MSDlhbzlrrkgQVBJ44CC5bu66K6u5L2/55SoIGF1dGguc2lnbkluV2l0aE9BdXRoKHsgcHJvdmlkZXIgfSkg5pu/5Luj44CCXG4gKi9cbmV4cG9ydCBjbGFzcyBXZWl4aW5BdXRoUHJvdmlkZXIge1xuICBjb25zdHJ1Y3Rvcihfb3B0aW9uczoge1xuICAgIGF1dGhJbnN0YW5jZTogYW55XG4gICAgYXBwaWQ6IHN0cmluZ1xuICAgIHNjb3BlOiBzdHJpbmdcbiAgfSkge1xuICAgIC8vIHYxIOWFvOWuueexu++8jOaJgOacieaWueazleWdh+aKm+WHuuW8guW4uOaPkOekuuabv+S7o+aWueahiFxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHYxIOWFvOWuuSBBUEnjgIJcbiAgICog5bu66K6u5L2/55SoIGF1dGguc2lnbkluV2l0aE9BdXRoKHsgcHJvdmlkZXI6ICdwcm92aWRlcklkJyB9KSDmm7/ku6PjgIJcbiAgICovXG4gIHB1YmxpYyBzaWduSW5XaXRoUmVkaXJlY3QoKTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdbdjEg5YW85a65XSBXZWl4aW5BdXRoUHJvdmlkZXIuc2lnbkluV2l0aFJlZGlyZWN0KCkg5Zyo5b2T5YmN54mI5pys5Lit5peg5rOV5a6e546w44CCJ1xuICAgICAgKyAnIOW7uuiuruS9v+eUqCBhdXRoLnNpZ25JbldpdGhPQXV0aCh7IHByb3ZpZGVyOiBcXCdwcm92aWRlcklkXFwnIH0pIOabv+S7o+OAgicsKVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHYxIOWFvOWuuSBBUEnjgIJcbiAgICog5bu66K6u5L2/55SoIGF1dGgudmVyaWZ5T0F1dGgoeyBjb2RlLCBzdGF0ZSwgcHJvdmlkZXIgfSkg5pu/5Luj44CCXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0UmVkaXJlY3RSZXN1bHQoX29wdGlvbnM/OiB7XG4gICAgY3JlYXRlVXNlcj86IGJvb2xlYW5cbiAgICBzeW5jVXNlckluZm8/OiBib29sZWFuXG4gIH0pOiBQcm9taXNlPGFueT4ge1xuICAgIHRocm93IG5ldyBFcnJvcignW3YxIOWFvOWuuV0gV2VpeGluQXV0aFByb3ZpZGVyLmdldFJlZGlyZWN0UmVzdWx0KCkg5Zyo5b2T5YmN54mI5pys5Lit5peg5rOV5a6e546w44CCJ1xuICAgICAgKyAnIOW7uuiuruS9v+eUqCBhdXRoLnZlcmlmeU9BdXRoKHsgY29kZSwgc3RhdGUsIHByb3ZpZGVyIH0pIOabv+S7o+OAgicsKVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHYxIOWFvOWuuSBBUEnjgIJcbiAgICog5bu66K6u5L2/55SoIGF1dGgubGlua0lkZW50aXR5KHsgcHJvdmlkZXI6ICdwcm92aWRlcklkJyB9KSDmm7/ku6PjgIJcbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRMaW5rUmVkaXJlY3RSZXN1bHQoX29wdGlvbnM/OiB7XG4gICAgd2l0aFVuaW9uSWQ/OiBib29sZWFuXG4gIH0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1t2MSDlhbzlrrldIFdlaXhpbkF1dGhQcm92aWRlci5nZXRMaW5rUmVkaXJlY3RSZXN1bHQoKSDlnKjlvZPliY3niYjmnKzkuK3ml6Dms5Xlrp7njrDjgIInXG4gICAgICArICcg5bu66K6u5L2/55SoIGF1dGgubGlua0lkZW50aXR5KHsgcHJvdmlkZXI6IFxcJ3Byb3ZpZGVySWRcXCcgfSkg5pu/5Luj44CCJywpXG4gIH1cbn1cblxuLyoqXG4gKiB2MSDoh6rlrprkuYnnmbvlvZUgUHJvdmlkZXJcbiAqIOS9v+eUqOaWueW8jzogYXV0aC5jdXN0b21BdXRoUHJvdmlkZXIoKS5zaWduSW4odGlja2V0KVxuICpcbiAqIEBkZXByZWNhdGVkIHYxIOWFvOWuuSBBUEnjgILlu7rorq7kvb/nlKggYXV0aC5zaWduSW5XaXRoQ3VzdG9tVGlja2V0KCgpID0+IFByb21pc2UucmVzb2x2ZSh0aWNrZXQpKSDmm7/ku6PjgIJcbiAqL1xuZXhwb3J0IGNsYXNzIEN1c3RvbUF1dGhQcm92aWRlciB7XG4gIHByaXZhdGUgYXV0aEluc3RhbmNlOiBhbnlcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiB7XG4gICAgYXV0aEluc3RhbmNlOiBhbnlcbiAgfSkge1xuICAgIHRoaXMuYXV0aEluc3RhbmNlID0gb3B0aW9ucy5hdXRoSW5zdGFuY2VcbiAgfVxuXG4gIC8qKlxuICAgKiDkvb/nlKjoh6rlrprkuYnnmbvlvZXlh63mja4gdGlja2V0IOeZu+W9leS6keW8gOWPkVxuICAgKiBAcGFyYW0gdGlja2V0IOiHquWumuS5ieeZu+W9lSB0aWNrZXRcbiAgICogQGRlcHJlY2F0ZWQgdjEg5YW85a65IEFQSeOAguW7uuiuruS9v+eUqCBhdXRoLnNpZ25JbldpdGhDdXN0b21UaWNrZXQoKCkgPT4gUHJvbWlzZS5yZXNvbHZlKHRpY2tldCkpIOabv+S7o+OAglxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNpZ25Jbih0aWNrZXQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIOS9v+eUqCBBdXRoIOW3suacieeahCBzaWduSW5XaXRoQ3VzdG9tVGlja2V0IOaWueazlVxuICAgIGF3YWl0IHRoaXMuYXV0aEluc3RhbmNlLnNpZ25JbldpdGhDdXN0b21UaWNrZXQoKCkgPT4gUHJvbWlzZS5yZXNvbHZlKHRpY2tldCkpXG4gIH1cbn1cblxuLyoqXG4gKiB2MSDljL/lkI3nmbvlvZUgUHJvdmlkZXJcbiAqIOS9v+eUqOaWueW8jzogYXV0aC5hbm9ueW1vdXNBdXRoUHJvdmlkZXIoKS5zaWduSW4oKVxuICpcbiAqIEBkZXByZWNhdGVkIHYxIOWFvOWuuSBBUEnjgILlu7rorq7kvb/nlKggYXV0aC5zaWduSW5Bbm9ueW1vdXNseSh7fSkg5pu/5Luj44CCXG4gKi9cbmV4cG9ydCBjbGFzcyBBbm9ueW1vdXNBdXRoUHJvdmlkZXIge1xuICBwcml2YXRlIGF1dGhJbnN0YW5jZTogYW55XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczoge1xuICAgIGF1dGhJbnN0YW5jZTogYW55XG4gIH0pIHtcbiAgICB0aGlzLmF1dGhJbnN0YW5jZSA9IG9wdGlvbnMuYXV0aEluc3RhbmNlXG4gIH1cblxuICAvKipcbiAgICog5Yy/5ZCN55m75b2V5LqR5byA5Y+RXG4gICAqIEBkZXByZWNhdGVkIHYxIOWFvOWuuSBBUEnjgILlu7rorq7kvb/nlKggYXV0aC5zaWduSW5Bbm9ueW1vdXNseSh7fSkg5pu/5Luj44CCXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2lnbkluKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIOS9v+eUqCBBdXRoIOW3suacieeahCBzaWduSW5Bbm9ueW1vdXNseSDmlrnms5VcbiAgICBhd2FpdCB0aGlzLmF1dGhJbnN0YW5jZS5zaWduSW5Bbm9ueW1vdXNseSh7fSlcbiAgfVxufVxuXG4vLyA9PT09PT09PT09IEF1dGggdjEg5YW85a655Z+657G7ID09PT09PT09PT1cblxuLyoqXG4gKiBBdXRoVjFDb21wYXQg5Z+657G777yM5o+Q5L6bIHYxIOeJiOacrOeahOWFvOWuuSBBUEkg5pa55rOV44CCXG4gKiBBdXRoIOexu+mAmui/hyBleHRlbmRzIEF1dGhWMUNvbXBhdCDmnaXnu6fmib/ov5nkupvmlrnms5XjgIJcbiAqXG4gKiDms6jmhI/vvJrmraTnsbvkuK3nmoTmlrnms5XpgJrov4cgdGhpcyDorr/pl67lrZDnsbsgQXV0aCDnmoTmlrnms5XlkozlsZ7mgKfvvIxcbiAqIOWMheaLrDogc2lnbkluLCBzaWduVXAsIHNpZ25JbldpdGhDdXN0b21UaWNrZXQsIHNpZ25JbkFub255bW91c2x5LFxuICogZ2V0VmVyaWZpY2F0aW9uLCByZXNldFBhc3N3b3JkLCBvbkxvZ2luU3RhdGVDaGFuZ2VkLCBvbkF1dGhTdGF0ZUNoYW5nZSxcbiAqIGNyZWF0ZUxvZ2luU3RhdGUsIGZvcm1hdFBob25lLCBjb25maWcsIHNpZ25JbldpdGhPQXV0aCDnrYnjgIJcbiAqL1xuLy8gZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZyAtLSBhYnN0cmFjdCDln7rnsbvkuK0gYWJzdHJhY3Qg5aOw5piO5LiOIHB1YmxpYyDmlrnms5XmjpLluo/kuI3pgILnlKjluLjop4Top4TliJlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBdXRoVjFDb21wYXQge1xuICBhYnN0cmFjdCByZWFkb25seSBjb25maWc6IGFueVxuXG4gIC8vID09PT09PT09PT0gdjEg5YW85a65IEFQSSDmlrnms5UgPT09PT09PT09PVxuXG4gIC8qKlxuICAgKiB2MSBBUEk6IOiOt+WPlueUqOS6juW+ruS/oeeZu+W9leeahCBXZWl4aW5BdXRoUHJvdmlkZXIgLy8gY3NwZWxsOmlnbm9yZSB3ZWl4aW4gV2VpeGluXG4gICAqIEBkZXByZWNhdGVkIOW7uuiuruS9v+eUqCBhdXRoLnNpZ25JbldpdGhPQXV0aCh7IHByb3ZpZGVyOiBhcHBpZCB9KSDmm7/ku6PjgIJcbiAgICovXG4gIHB1YmxpYyB3ZWl4aW5BdXRoUHJvdmlkZXIob3B0aW9uczogeyBhcHBpZDogc3RyaW5nOyBzY29wZTogc3RyaW5nIH0pOiBXZWl4aW5BdXRoUHJvdmlkZXIge1xuICAgIHJldHVybiBuZXcgV2VpeGluQXV0aFByb3ZpZGVyKHtcbiAgICAgIGF1dGhJbnN0YW5jZTogdGhpcyxcbiAgICAgIGFwcGlkOiBvcHRpb25zLmFwcGlkLFxuICAgICAgc2NvcGU6IG9wdGlvbnMuc2NvcGUsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiB2MSBBUEk6IOiOt+WPlueUqOS6juiHquWumuS5ieeZu+W9leeahCBDdXN0b21BdXRoUHJvdmlkZXJcbiAgICogQGRlcHJlY2F0ZWQg5bu66K6u5L2/55SoIGF1dGguc2lnbkluV2l0aEN1c3RvbVRpY2tldCgoKSA9PiBQcm9taXNlLnJlc29sdmUodGlja2V0KSkg5pu/5Luj44CCXG4gICAqL1xuICBwdWJsaWMgY3VzdG9tQXV0aFByb3ZpZGVyKCk6IEN1c3RvbUF1dGhQcm92aWRlciB7XG4gICAgcmV0dXJuIG5ldyBDdXN0b21BdXRoUHJvdmlkZXIoe1xuICAgICAgYXV0aEluc3RhbmNlOiB0aGlzLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogdjEgQVBJOiDojrflj5bnlKjkuo7ljL/lkI3nmbvlvZXnmoQgQW5vbnltb3VzQXV0aFByb3ZpZGVyXG4gICAqIEBkZXByZWNhdGVkIOW7uuiuruS9v+eUqCBhdXRoLnNpZ25JbkFub255bW91c2x5KHt9KSDmm7/ku6PjgIJcbiAgICovXG4gIHB1YmxpYyBhbm9ueW1vdXNBdXRoUHJvdmlkZXIoKTogQW5vbnltb3VzQXV0aFByb3ZpZGVyIHtcbiAgICByZXR1cm4gbmV3IEFub255bW91c0F1dGhQcm92aWRlcih7XG4gICAgICBhdXRoSW5zdGFuY2U6IHRoaXMsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiB2MSBBUEk6IOS9v+eUqOmCrueuseWSjOWvhueggeazqOWGjOS6keW8gOWPkei0puaIt1xuICAgKiBAZGVwcmVjYXRlZCDlu7rorq7kvb/nlKggYXV0aC5zaWduVXAoeyBlbWFpbCwgcGFzc3dvcmQgfSkg5pu/5Luj44CCXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2lnblVwV2l0aEVtYWlsQW5kUGFzc3dvcmQoZW1haWw6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IFByb21pc2U8U2lnblVwUmVzPiB7XG4gICAgaWYgKHR5cGVvZiBlbWFpbCAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93RXJyb3IoRVJST1JTLklOVkFMSURfUEFSQU1TLCAnZW1haWwgbXVzdCBiZSBhIHN0cmluZycpXG4gICAgfVxuICAgIGlmICh0eXBlb2YgcGFzc3dvcmQgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvd0Vycm9yKEVSUk9SUy5JTlZBTElEX1BBUkFNUywgJ3Bhc3N3b3JkIG11c3QgYmUgYSBzdHJpbmcnKVxuICAgIH1cblxuICAgIC8vIOS9v+eUqCBBdXRoIOW3suacieeahCBzaWduVXAg5pa55rOVXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuc2lnblVwKHtcbiAgICAgIGVtYWlsLFxuICAgICAgcGFzc3dvcmQsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiB2MSBBUEk6IOS9v+eUqOmCrueuseWSjOWvhueggeeZu+W9leS6keW8gOWPkVxuICAgKiBAZGVwcmVjYXRlZCDlu7rorq7kvb/nlKggYXV0aC5zaWduSW5XaXRoUGFzc3dvcmQoeyBlbWFpbCwgcGFzc3dvcmQgfSkg5pu/5Luj44CCXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2lnbkluV2l0aEVtYWlsQW5kUGFzc3dvcmQoZW1haWw6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKHR5cGVvZiBlbWFpbCAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93RXJyb3IoRVJST1JTLklOVkFMSURfUEFSQU1TLCAnZW1haWwgbXVzdCBiZSBhIHN0cmluZycpXG4gICAgfVxuICAgIGlmICh0eXBlb2YgcGFzc3dvcmQgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvd0Vycm9yKEVSUk9SUy5JTlZBTElEX1BBUkFNUywgJ3Bhc3N3b3JkIG11c3QgYmUgYSBzdHJpbmcnKVxuICAgIH1cblxuICAgIC8vIOS9v+eUqCBBdXRoIOW3suacieeahCBzaWduSW4g5pa55rOVXG4gICAgYXdhaXQgdGhpcy5zaWduSW4oe1xuICAgICAgdXNlcm5hbWU6IGVtYWlsLFxuICAgICAgcGFzc3dvcmQsXG4gICAgfSlcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVMb2dpblN0YXRlKClcbiAgfVxuXG4gIC8qKlxuICAgKiB2MSBBUEk6IOWPkemAgemHjee9ruWvhueggeeahOmCruS7tlxuICAgKiBAZGVwcmVjYXRlZCDlu7rorq7kvb/nlKggYXV0aC5yZXNldFBhc3N3b3JkRm9yRW1haWwoZW1haWwpIOabv+S7o+OAglxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNlbmRQYXNzd29yZFJlc2V0RW1haWwoZW1haWw6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0eXBlb2YgZW1haWwgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvd0Vycm9yKEVSUk9SUy5JTlZBTElEX1BBUkFNUywgJ2VtYWlsIG11c3QgYmUgYSBzdHJpbmcnKVxuICAgIH1cblxuICAgIC8vIOS9v+eUqCBBdXRoIOW3suacieeahCBnZXRWZXJpZmljYXRpb24g5pa55rOVXG4gICAgYXdhaXQgdGhpcy5nZXRWZXJpZmljYXRpb24oeyBlbWFpbCB9KVxuICB9XG5cbiAgLyoqXG4gICAqIHYxIEFQSTog5L2/55So55So5oi35ZCN5a+G56CB55m75b2V5LqR5byA5Y+RXG4gICAqIEBkZXByZWNhdGVkIOW7uuiuruS9v+eUqCBhdXRoLnNpZ25JbldpdGhQYXNzd29yZCh7IHVzZXJuYW1lLCBwYXNzd29yZCB9KSDmm7/ku6PjgIJcbiAgICovXG4gIHB1YmxpYyBhc3luYyBzaWduSW5XaXRoVXNlcm5hbWVBbmRQYXNzd29yZCh1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICBpZiAodHlwZW9mIHVzZXJuYW1lICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3dFcnJvcihFUlJPUlMuSU5WQUxJRF9QQVJBTVMsICd1c2VybmFtZSBtdXN0IGJlIGEgc3RyaW5nJylcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBwYXNzd29yZCAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93RXJyb3IoRVJST1JTLklOVkFMSURfUEFSQU1TLCAncGFzc3dvcmQgbXVzdCBiZSBhIHN0cmluZycpXG4gICAgfVxuXG4gICAgLy8g5L2/55SoIEF1dGgg5bey5pyJ55qEIHNpZ25JbiDmlrnms5VcbiAgICBhd2FpdCB0aGlzLnNpZ25Jbih7XG4gICAgICB1c2VybmFtZSxcbiAgICAgIHBhc3N3b3JkLFxuICAgIH0pXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlTG9naW5TdGF0ZSgpXG4gIH1cblxuICAvKipcbiAgICogdjEgQVBJOiDlj5HpgIHmiYvmnLrpqozor4HnoIFcbiAgICogQGRlcHJlY2F0ZWQg5bu66K6u5L2/55SoIGF1dGguc2lnbkluV2l0aE90cCh7IHBob25lIH0pIOaIliBhdXRoLmdldFZlcmlmaWNhdGlvbih7IHBob25lX251bWJlciB9KSDmm7/ku6PjgIJcbiAgICovXG4gIHB1YmxpYyBhc3luYyBzZW5kUGhvbmVDb2RlKHBob25lTnVtYmVyOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAodHlwZW9mIHBob25lTnVtYmVyICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3dFcnJvcihFUlJPUlMuSU5WQUxJRF9QQVJBTVMsICdwaG9uZU51bWJlciBtdXN0IGJlIGEgc3RyaW5nJylcbiAgICB9XG5cbiAgICAvLyDkvb/nlKggQXV0aCDlt7LmnInnmoQgZ2V0VmVyaWZpY2F0aW9uIOaWueazlVxuICAgIGNvbnN0IGZvcm1hdHRlZFBob25lID0gdGhpcy5mb3JtYXRQaG9uZShwaG9uZU51bWJlcilcbiAgICBhd2FpdCB0aGlzLmdldFZlcmlmaWNhdGlvbih7IHBob25lX251bWJlcjogZm9ybWF0dGVkUGhvbmUgfSlcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgLyoqXG4gICAqIHYxIEFQSTog5omL5py65Y+35rOo5YaM77yI5pSv5oyB55+t5L+h6aqM6K+B56CBK+WvhueggeaWueW8j++8iVxuICAgKiBAZGVwcmVjYXRlZCDlu7rorq7kvb/nlKggYXV0aC5zaWduVXAoeyBwaG9uZV9udW1iZXIsIHZlcmlmaWNhdGlvbl9jb2RlLCBwYXNzd29yZD8gfSkg5pu/5Luj44CCXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2lnblVwV2l0aFBob25lQ29kZShwaG9uZU51bWJlcjogc3RyaW5nLCBwaG9uZUNvZGU6IHN0cmluZywgcGFzc3dvcmQ/OiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIGlmICh0eXBlb2YgcGhvbmVOdW1iZXIgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvd0Vycm9yKEVSUk9SUy5JTlZBTElEX1BBUkFNUywgJ3Bob25lTnVtYmVyIG11c3QgYmUgYSBzdHJpbmcnKVxuICAgIH1cbiAgICBpZiAodHlwZW9mIHBob25lQ29kZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93RXJyb3IoRVJST1JTLklOVkFMSURfUEFSQU1TLCAncGhvbmVDb2RlIG11c3QgYmUgYSBzdHJpbmcnKVxuICAgIH1cblxuICAgIGNvbnN0IGZvcm1hdHRlZFBob25lID0gdGhpcy5mb3JtYXRQaG9uZShwaG9uZU51bWJlcilcblxuICAgIC8vIOS9v+eUqCBBdXRoIOW3suacieeahCBzaWduVXAg5pa55rOVXG4gICAgYXdhaXQgdGhpcy5zaWduVXAoe1xuICAgICAgcGhvbmVfbnVtYmVyOiBmb3JtYXR0ZWRQaG9uZSxcbiAgICAgIHZlcmlmaWNhdGlvbl9jb2RlOiBwaG9uZUNvZGUsXG4gICAgICAuLi4ocGFzc3dvcmQgPyB7IHBhc3N3b3JkIH0gOiB7fSksXG4gICAgfSlcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVMb2dpblN0YXRlKClcbiAgfVxuXG4gIC8qKlxuICAgKiB2MSBBUEk6IOaJi+acuuWPt+eZu+W9le+8iOaUr+aMgeefreS/oemqjOivgeeggSBvciDlr4bnoIHmlrnlvI/vvIlcbiAgICogQGRlcHJlY2F0ZWQg5a+G56CB5pa55byP5bu66K6u5L2/55SoIGF1dGguc2lnbkluV2l0aFBhc3N3b3JkKHsgcGhvbmUsIHBhc3N3b3JkIH0pIOabv+S7o++8m1xuICAgKiDpqozor4HnoIHmlrnlvI/lu7rorq7kvb/nlKggYXV0aC5zaWduSW5XaXRoT3RwKHsgcGhvbmUgfSkg5pu/5Luj44CCXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2lnbkluV2l0aFBob25lQ29kZU9yUGFzc3dvcmQocGFyYW1zOiB7XG4gICAgcGhvbmVOdW1iZXI6IHN0cmluZ1xuICAgIHBob25lQ29kZT86IHN0cmluZ1xuICAgIHBhc3N3b3JkPzogc3RyaW5nXG4gIH0pOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHsgcGhvbmVOdW1iZXIsIHBob25lQ29kZSwgcGFzc3dvcmQgfSA9IHBhcmFtc1xuICAgIGlmICh0eXBlb2YgcGhvbmVOdW1iZXIgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvd0Vycm9yKEVSUk9SUy5JTlZBTElEX1BBUkFNUywgJ3Bob25lTnVtYmVyIG11c3QgYmUgYSBzdHJpbmcnKVxuICAgIH1cblxuICAgIGNvbnN0IGZvcm1hdHRlZFBob25lID0gdGhpcy5mb3JtYXRQaG9uZShwaG9uZU51bWJlcilcblxuICAgIGlmIChwYXNzd29yZCkge1xuICAgICAgLy8g5L2/55SoIEF1dGgg5bey5pyJ55qEIHNpZ25JbiDmlrnms5Xov5vooYzlr4bnoIHnmbvlvZVcbiAgICAgIGF3YWl0IHRoaXMuc2lnbkluKHtcbiAgICAgICAgdXNlcm5hbWU6IGZvcm1hdHRlZFBob25lLFxuICAgICAgICBwYXNzd29yZCxcbiAgICAgIH0pXG4gICAgfSBlbHNlIGlmIChwaG9uZUNvZGUpIHtcbiAgICAgIC8vIOS9v+eUqCBBdXRoIOW3suacieeahCBzaWduSW4g5pa55rOV6L+b6KGM6aqM6K+B56CB55m75b2VXG4gICAgICBhd2FpdCB0aGlzLnNpZ25Jbih7XG4gICAgICAgIHVzZXJuYW1lOiBmb3JtYXR0ZWRQaG9uZSxcbiAgICAgICAgdmVyaWZpY2F0aW9uX3Rva2VuOiBwaG9uZUNvZGUsXG4gICAgICB9IGFzIGFueSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3dFcnJvcihFUlJPUlMuSU5WQUxJRF9QQVJBTVMsICdwaG9uZUNvZGUgb3IgcGFzc3dvcmQgbXVzdCBiZSBwcm92aWRlZCcpXG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNyZWF0ZUxvZ2luU3RhdGUoKVxuICB9XG5cbiAgLyoqXG4gICAqIHYxIEFQSTog5omL5py65Y+35by65Yi26YeN572u5a+G56CBXG4gICAqIEBkZXByZWNhdGVkIOW7uuiuruS9v+eUqCBhdXRoLnJlc2V0UGFzc3dvcmRGb3JFbWFpbChwaG9uZU51bWJlcikg5pu/5Luj44CCXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZm9yY2VSZXNldFB3ZEJ5UGhvbmVDb2RlKHBhcmFtczoge1xuICAgIHBob25lTnVtYmVyOiBzdHJpbmdcbiAgICBwaG9uZUNvZGU6IHN0cmluZ1xuICAgIHBhc3N3b3JkOiBzdHJpbmdcbiAgfSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgeyBwaG9uZU51bWJlciwgcGhvbmVDb2RlLCBwYXNzd29yZCB9ID0gcGFyYW1zXG4gICAgaWYgKHR5cGVvZiBwaG9uZU51bWJlciAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93RXJyb3IoRVJST1JTLklOVkFMSURfUEFSQU1TLCAncGhvbmVOdW1iZXIgbXVzdCBiZSBhIHN0cmluZycpXG4gICAgfVxuICAgIGlmICh0eXBlb2YgcGhvbmVDb2RlICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3dFcnJvcihFUlJPUlMuSU5WQUxJRF9QQVJBTVMsICdwaG9uZUNvZGUgbXVzdCBiZSBhIHN0cmluZycpXG4gICAgfVxuICAgIGlmICh0eXBlb2YgcGFzc3dvcmQgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvd0Vycm9yKEVSUk9SUy5JTlZBTElEX1BBUkFNUywgJ3Bhc3N3b3JkIG11c3QgYmUgYSBzdHJpbmcnKVxuICAgIH1cblxuICAgIGNvbnN0IGZvcm1hdHRlZFBob25lID0gdGhpcy5mb3JtYXRQaG9uZShwaG9uZU51bWJlcilcblxuICAgIC8vIOS9v+eUqCBBdXRoIOW3suacieeahCByZXNldFBhc3N3b3JkIOaWueazlVxuICAgIGF3YWl0IHRoaXMucmVzZXRQYXNzd29yZCh7XG4gICAgICBwaG9uZV9udW1iZXI6IGZvcm1hdHRlZFBob25lLFxuICAgICAgbmV3X3Bhc3N3b3JkOiBwYXNzd29yZCxcbiAgICAgIHZlcmlmaWNhdGlvbl90b2tlbjogcGhvbmVDb2RlLFxuICAgIH0pXG5cbiAgICAvLyDph43nva7lr4bnoIHmiJDlip/lkI7kvb/nlKggQXV0aCDlt7LmnInnmoQgc2lnbkluIOaWueazleiHquWKqOeZu+W9lVxuICAgIGF3YWl0IHRoaXMuc2lnbkluKHtcbiAgICAgIHVzZXJuYW1lOiBmb3JtYXR0ZWRQaG9uZSxcbiAgICAgIHBhc3N3b3JkLFxuICAgIH0pXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlTG9naW5TdGF0ZSgpXG4gIH1cblxuICAvKipcbiAgICogdjEgQVBJOiDmjqXmlLbkuIDkuKrlm57osIPlh73mlbDvvIzlnKjliLfmlrDnn63mnJ/orr/pl67ku6TniYzliY3osIPnlKjvvIzmoLnmja7ov5Tlm57lgLzlhrPlrprmmK/lkKbliLfmlrBcbiAgICogQGRlcHJlY2F0ZWQgdjEg5YW85a65IEFQSe+8jOW9k+WJjSB2MyBTREsg5Lit5peg55u05o6l5a+55bqU5pa55rOV44CCXG4gICAqIOW7uuiuruS9v+eUqCBhdXRoLm9uQXV0aFN0YXRlQ2hhbmdlKGNhbGxiYWNrKSDnm5HlkKwgVE9LRU5fUkVGUkVTSEVEIOS6i+S7tuabv+S7o+OAglxuICAgKi9cbiAgcHVibGljIHNob3VsZFJlZnJlc2hBY2Nlc3NUb2tlbihfY2FsbGJhY2s6ICgpID0+IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1t2MSDlhbzlrrldIHNob3VsZFJlZnJlc2hBY2Nlc3NUb2tlbigpIOWcqOW9k+WJjeeJiOacrOS4reaXoOazleWunueOsOOAgidcbiAgICAgICsgJyDlu7rorq7kvb/nlKggYXV0aC5vbkF1dGhTdGF0ZUNoYW5nZShjYWxsYmFjaykg5p2l55uR5ZCsIFRPS0VOX1JFRlJFU0hFRCDkuovku7bmm7/ku6PjgIInLClcbiAgfVxuXG4gIC8qKlxuICAgKiB2MSBBUEk6IOaOpeaUtuS4gOS4quWbnuiwg+WHveaVsO+8jOWcqOeZu+W9leeKtuaAgei/h+acn+aXtuiwg+eUqFxuICAgKiBAZGVwcmVjYXRlZCDlu7rorq7kvb/nlKggYXV0aC5vbkF1dGhTdGF0ZUNoYW5nZShjYWxsYmFjaykg5pu/5Luj77yM55uR5ZCsIFNJR05FRF9PVVQg5LqL5Lu244CCXG4gICAqL1xuICBwdWJsaWMgb25Mb2dpblN0YXRlRXhwaXJlZChjYWxsYmFjazogRnVuY3Rpb24pOiB2b2lkIHtcbiAgICAvLyDkvb/nlKggQXV0aCDlt7LmnInnmoQgb25Mb2dpblN0YXRlQ2hhbmdlZCDmlrnms5VcbiAgICB0aGlzLm9uTG9naW5TdGF0ZUNoYW5nZWQoKHBhcmFtcykgPT4ge1xuICAgICAgaWYgKHBhcmFtcz8uZXZlbnRUeXBlID09PSBMT0dJTl9TVEFURV9DSEFOR0VEX1RZUEUuQ1JFREVOVElBTFNfRVJST1IpIHtcbiAgICAgICAgY2FsbGJhY2suY2FsbCh0aGlzKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogdjEgQVBJOiDmjqXmlLbkuIDkuKrlm57osIPlh73mlbDvvIzlnKjnn63mnJ/orr/pl67ku6TniYzliLfmlrDlkI7osIPnlKhcbiAgICogQGRlcHJlY2F0ZWQg5bu66K6u5L2/55SoIGF1dGgub25BdXRoU3RhdGVDaGFuZ2UoY2FsbGJhY2spIOabv+S7o++8jOebkeWQrCBUT0tFTl9SRUZSRVNIRUQg5LqL5Lu244CCXG4gICAqL1xuICBwdWJsaWMgb25BY2Nlc3NUb2tlblJlZnJlc2hlZChjYWxsYmFjazogRnVuY3Rpb24pOiB2b2lkIHtcbiAgICAvLyDkvb/nlKggQXV0aCDlt7LmnInnmoQgb25BdXRoU3RhdGVDaGFuZ2Ug5pa55rOVXG4gICAgdGhpcy5vbkF1dGhTdGF0ZUNoYW5nZSgoZXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudCA9PT0gQVVUSF9TVEFURV9DSEFOR0VEX1RZUEUuVE9LRU5fUkVGUkVTSEVEKSB7XG4gICAgICAgIGNhbGxiYWNrLmNhbGwodGhpcylcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIHYxIEFQSTog5o6l5pS25LiA5Liq5Zue6LCD5Ye95pWw77yM5Zyo5Yy/5ZCN55m75b2V54q25oCB6KKr6L2s5o2i5ZCO6LCD55SoXG4gICAqIEBkZXByZWNhdGVkIOW7uuiuruS9v+eUqCBhdXRoLm9uQXV0aFN0YXRlQ2hhbmdlKGNhbGxiYWNrKSDmm7/ku6PvvIznm5HlkKwgU0lHTkVEX0lOIOS6i+S7tuOAglxuICAgKi9cbiAgcHVibGljIG9uQW5vbnltb3VzQ29udmVydGVkKGNhbGxiYWNrOiBGdW5jdGlvbik6IHZvaWQge1xuICAgIC8vIOS9v+eUqCBBdXRoIOW3suacieeahCBvbkF1dGhTdGF0ZUNoYW5nZSDmlrnms5VcbiAgICB0aGlzLm9uQXV0aFN0YXRlQ2hhbmdlKChldmVudCkgPT4ge1xuICAgICAgaWYgKGV2ZW50ID09PSBBVVRIX1NUQVRFX0NIQU5HRURfVFlQRS5TSUdORURfSU4pIHtcbiAgICAgICAgY2FsbGJhY2suY2FsbCh0aGlzKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogdjEgQVBJOiDmjqXmlLbkuIDkuKrlm57osIPlh73mlbDvvIzlnKjnmbvlvZXnsbvlnovlj5HnlJ/lj5jljJblkI7osIPnlKhcbiAgICogQGRlcHJlY2F0ZWQg5bu66K6u5L2/55SoIGF1dGgub25BdXRoU3RhdGVDaGFuZ2UoY2FsbGJhY2spIOabv+S7o++8jOebkeWQrCBTSUdORURfSU4gLyBTSUdORURfT1VUIOS6i+S7tuOAglxuICAgKi9cbiAgcHVibGljIG9uTG9naW5UeXBlQ2hhbmdlZChjYWxsYmFjazogRnVuY3Rpb24pOiB2b2lkIHtcbiAgICAvLyDkvb/nlKggQXV0aCDlt7LmnInnmoQgb25BdXRoU3RhdGVDaGFuZ2Ug5pa55rOVXG4gICAgdGhpcy5vbkF1dGhTdGF0ZUNoYW5nZSgoZXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudCA9PT0gQVVUSF9TVEFURV9DSEFOR0VEX1RZUEUuU0lHTkVEX0lOIHx8IGV2ZW50ID09PSBBVVRIX1NUQVRFX0NIQU5HRURfVFlQRS5TSUdORURfT1VUKSB7XG4gICAgICAgIGNhbGxiYWNrLmNhbGwodGhpcylcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLy8gPT09PT09PT09PSDlo7DmmI7lrZDnsbsgQXV0aCDpnIDopoHmj5DkvpvnmoTmlrnms5Uv5bGe5oCnID09PT09PT09PT1cbiAgYWJzdHJhY3Qgc2lnbkluKHBhcmFtczogYXV0aE1vZGVscy5TaWduSW5SZXF1ZXN0KTogUHJvbWlzZTxhbnk+XG4gIGFic3RyYWN0IHNpZ25VcChwYXJhbXM6IGF1dGhNb2RlbHMuU2lnblVwUmVxdWVzdCAmIHsgcGhvbmU/OiBzdHJpbmcgfSk6IFByb21pc2U8U2lnblVwUmVzPlxuICBhYnN0cmFjdCBzaWduSW5XaXRoQ3VzdG9tVGlja2V0KGdldFRpY2tGbj86IGF1dGhNb2RlbHMuR2V0Q3VzdG9tU2lnblRpY2tldEZuKTogUHJvbWlzZTxhbnk+XG4gIGFic3RyYWN0IHNpZ25JbkFub255bW91c2x5KHBhcmFtczogYW55KTogUHJvbWlzZTxhbnk+XG4gIGFic3RyYWN0IGdldFZlcmlmaWNhdGlvbihwYXJhbXM6IGFueSwgb3B0aW9ucz86IGFueSk6IFByb21pc2U8YXV0aE1vZGVscy5HZXRWZXJpZmljYXRpb25SZXNwb25zZT5cbiAgYWJzdHJhY3QgcmVzZXRQYXNzd29yZChwYXJhbXM6IGF1dGhNb2RlbHMuUmVzZXRQYXNzd29yZFJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+XG4gIGFic3RyYWN0IG9uTG9naW5TdGF0ZUNoYW5nZWQoY2FsbGJhY2s6IEZ1bmN0aW9uKTogUHJvbWlzZTx2b2lkPlxuICBhYnN0cmFjdCBvbkF1dGhTdGF0ZUNoYW5nZShjYWxsYmFjazogYW55KTogYW55XG4gIGFic3RyYWN0IGNyZWF0ZUxvZ2luU3RhdGUocGFyYW1zPzogYW55LCBvcHRpb25zPzogYW55KTogUHJvbWlzZTxhbnk+XG4gIGFic3RyYWN0IHNpZ25JbldpdGhPQXV0aChwYXJhbXM6IGFueSk6IFByb21pc2U8YW55PlxuICBhYnN0cmFjdCBncmFudFByb3ZpZGVyVG9rZW4ocGFyYW1zOiBhdXRoTW9kZWxzLkdyYW50UHJvdmlkZXJUb2tlblJlcXVlc3QpOiBQcm9taXNlPGF1dGhNb2RlbHMuR3JhbnRQcm92aWRlclRva2VuUmVzcG9uc2U+XG4gIGFic3RyYWN0IGJpbmRXaXRoUHJvdmlkZXIocGFyYW1zOiBhdXRoTW9kZWxzLkJpbmRXaXRoUHJvdmlkZXJSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPlxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZm9ybWF0UGhvbmUocGhvbmU6IHN0cmluZyk6IHN0cmluZ1xufVxuXG4vLyA9PT09PT09PT09IFVzZXIgdjEg5YW85a65IG1peGluID09PT09PT09PT1cblxuLyoqXG4gKiDlsIYgdjEg5YW85a655pa55rOV5bqU55So5YiwIFVzZXIg57G755qEIHByb3RvdHlwZSDkuIrjgIJcbiAqIOWcqCBpbmRleC50cyDkuK3osIPnlKg6IGFwcGx5VXNlclYxQ29tcGF0KFVzZXIpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBseVVzZXJWMUNvbXBhdChVc2VyQ2xhc3M6IGFueSk6IHZvaWQge1xuICAvKipcbiAgICogdjEgQVBJOiDlsIblvZPliY3otKbmiLfkuI7oh6rlrprkuYnnmbvlvZUgVGlja2V0IOi/m+ihjOe7keWumlxuICAgKiBAZGVwcmVjYXRlZCB2MSDlhbzlrrkgQVBJ77yM5b2T5YmN54mI5pys5Lit5peg5rOV55u05o6l5a6e546w44CCXG4gICAqIOW7uuiuruS9v+eUqCBhdXRoLnNpZ25JbldpdGhDdXN0b21UaWNrZXQoKCkgPT4gUHJvbWlzZS5yZXNvbHZlKHRpY2tldCkpIOabv+S7o+OAglxuICAgKi9cbiAgVXNlckNsYXNzLnByb3RvdHlwZS5saW5rV2l0aFRpY2tldCA9IGFzeW5jIGZ1bmN0aW9uIChfdGlja2V0OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1t2MSDlhbzlrrldIFVzZXIubGlua1dpdGhUaWNrZXQoKSDlnKjlvZPliY3niYjmnKzkuK3ml6Dms5Xlrp7njrDjgIInXG4gICAgICArICcg5bu66K6u5L2/55SoIGF1dGguc2lnbkluV2l0aEN1c3RvbVRpY2tldCgoKSA9PiBQcm9taXNlLnJlc29sdmUodGlja2V0KSkg5pu/5Luj44CCJywpXG4gIH1cblxuICAvKipcbiAgICogdjEgQVBJOiDlsIblvZPliY3otKbmiLfkuI7nrKzkuInmlrnpibTmnYPmj5DkvpvmlrnvvIjku6Xph43lrprlkJHlvaLlvI/vvInov5vooYznu5HlrppcbiAgICogQGRlcHJlY2F0ZWQg5bu66K6u5L2/55SoIGF1dGgubGlua0lkZW50aXR5KHsgcHJvdmlkZXI6ICdwcm92aWRlcklkJyB9KSDmm7/ku6PjgIJcbiAgICovXG4gIFVzZXJDbGFzcy5wcm90b3R5cGUubGlua1dpdGhSZWRpcmVjdCA9IGZ1bmN0aW9uIChfcHJvdmlkZXI6IGFueSk6IHZvaWQge1xuICAgIHRocm93IG5ldyBFcnJvcignW3YxIOWFvOWuuV0gVXNlci5saW5rV2l0aFJlZGlyZWN0KCkg5Zyo5b2T5YmN54mI5pys5Lit5peg5rOV5a6e546w44CCJ1xuICAgICAgKyAnIOW7uuiuruS9v+eUqCBhdXRoLmxpbmtJZGVudGl0eSh7IHByb3ZpZGVyOiBcXCdwcm92aWRlcklkXFwnIH0pIOabv+S7o+OAgicsKVxuICB9XG5cbiAgLyoqXG4gICAqIHYxIEFQSTog5pu05paw5b2T5YmN55qE55m75b2V6YKu566xXG4gICAqIEBkZXByZWNhdGVkIOW7uuiuruS9v+eUqCBhdXRoLnVwZGF0ZVVzZXIoeyBlbWFpbDogbmV3RW1haWwgfSkg5pu/5Luj44CCXG4gICAqL1xuICBVc2VyQ2xhc3MucHJvdG90eXBlLnVwZGF0ZUVtYWlsID0gYXN5bmMgZnVuY3Rpb24gKG5ld0VtYWlsOiBzdHJpbmcsIF9wYXNzd29yZD86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0eXBlb2YgbmV3RW1haWwgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvd0Vycm9yKEVSUk9SUy5JTlZBTElEX1BBUkFNUywgJ25ld0VtYWlsIG11c3QgYmUgYSBzdHJpbmcnKVxuICAgIH1cblxuICAgIC8vIOS9v+eUqCBVc2VyIOW3suacieeahCB1cGRhdGVVc2VyQmFzaWNJbmZvIOaWueazlVxuICAgIGF3YWl0IHRoaXMudXBkYXRlVXNlckJhc2ljSW5mbyh7XG4gICAgICBlbWFpbDogbmV3RW1haWwsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiB2MSBBUEk6IOe7keWumuaJi+acuuWPt1xuICAgKiBAZGVwcmVjYXRlZCB2MSDlhbzlrrkgQVBJ77yM5b2T5YmN54mI5pys5Lit5peg5rOV55u05o6l5ZyoIFVzZXIg5LiK5a6e546w44CCXG4gICAqIOW7uuiuruS9v+eUqCBhdXRoLmJpbmRQaG9uZU51bWJlcih7IHBob25lX251bWJlciwgdmVyaWZpY2F0aW9uX3Rva2VuLCBzdWRvX3Rva2VuIH0pIOabv+S7o+OAglxuICAgKi9cbiAgVXNlckNsYXNzLnByb3RvdHlwZS5saW5rV2l0aFBob25lTnVtYmVyID0gYXN5bmMgZnVuY3Rpb24gKF9waG9uZU51bWJlcjogc3RyaW5nLCBfcGhvbmVDb2RlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1t2MSDlhbzlrrldIFVzZXIubGlua1dpdGhQaG9uZU51bWJlcigpIOWcqOW9k+WJjeeJiOacrOS4reaXoOazleWunueOsOOAgidcbiAgICAgICsgJyDlu7rorq7kvb/nlKggYXV0aC5iaW5kUGhvbmVOdW1iZXIoeyBwaG9uZV9udW1iZXIsIHZlcmlmaWNhdGlvbl90b2tlbiwgc3Vkb190b2tlbiB9KSDmm7/ku6PjgIInLClcbiAgfVxuXG4gIC8qKlxuICAgKiB2MSBBUEk6IOabtOaWsOaJi+acuuWPt1xuICAgKiBAZGVwcmVjYXRlZCB2MSDlhbzlrrkgQVBJ77yM5b2T5YmN54mI5pys5Lit5peg5rOV55u05o6l5ZyoIFVzZXIg5LiK5a6e546w44CCXG4gICAqIOW7uuiuruS9v+eUqCBhdXRoLnVwZGF0ZVVzZXIoeyBwaG9uZTogbmV3UGhvbmVOdW1iZXIgfSkg5pu/5Luj44CCXG4gICAqL1xuICBVc2VyQ2xhc3MucHJvdG90eXBlLnVwZGF0ZVBob25lTnVtYmVyID0gYXN5bmMgZnVuY3Rpb24gKF9waG9uZU51bWJlcjogc3RyaW5nLCBfcGhvbmVDb2RlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1t2MSDlhbzlrrldIFVzZXIudXBkYXRlUGhvbmVOdW1iZXIoKSDlnKjlvZPliY3niYjmnKzkuK3ml6Dms5Xlrp7njrDjgIInXG4gICAgICArICcg5bu66K6u5L2/55SoIGF1dGgudXBkYXRlVXNlcih7IHBob25lOiBuZXdQaG9uZU51bWJlciB9KSDmm7/ku6PjgIInLClcbiAgfVxuXG4gIC8qKlxuICAgKiB2MSBBUEk6IOino+e7keafkOS4queZu+W9leaWueW8j1xuICAgKiBAZGVwcmVjYXRlZCB2MSDlhbzlrrkgQVBJ77yM5b2T5YmN54mI5pys5Lit5peg5rOV55u05o6l5ZyoIFVzZXIg5LiK5a6e546w44CCXG4gICAqIOW7uuiuruS9v+eUqCBhdXRoLnVubGlua0lkZW50aXR5KHsgcHJvdmlkZXI6IGxvZ2luVHlwZSB9KSDmm7/ku6PjgIJcbiAgICovXG4gIFVzZXJDbGFzcy5wcm90b3R5cGUudW5saW5rID0gYXN5bmMgZnVuY3Rpb24gKF9sb2dpblR5cGU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRocm93IG5ldyBFcnJvcignW3YxIOWFvOWuuV0gVXNlci51bmxpbmsoKSDlnKjlvZPliY3niYjmnKzkuK3ml6Dms5Xlrp7njrDjgIInXG4gICAgICArICcg5bu66K6u5L2/55SoIGF1dGgudW5saW5rSWRlbnRpdHkoeyBwcm92aWRlcjogbG9naW5UeXBlIH0pIOabv+S7o+OAgicsKVxuICB9XG59XG4iXX0=
423
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjEtY29tcGF0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3YxLWNvbXBhdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVFBLDBDQUd5QjtBQUN6Qix5Q0FHb0I7QUFXcEI7SUFDRSw0QkFBWSxRQUlYO0lBRUQsQ0FBQztJQU1NLCtDQUFrQixHQUF6QjtRQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsNkRBQTZEO2NBQ3pFLDhEQUE4RCxDQUFFLENBQUE7SUFDdEUsQ0FBQztJQU1ZLDhDQUFpQixHQUE5QixVQUErQixRQUc5Qjs7O2dCQUNDLE1BQU0sSUFBSSxLQUFLLENBQUMsNERBQTREO3NCQUN4RSx1REFBdUQsQ0FBRSxDQUFBOzs7S0FDOUQ7SUFNWSxrREFBcUIsR0FBbEMsVUFBbUMsUUFFbEM7OztnQkFDQyxNQUFNLElBQUksS0FBSyxDQUFDLGdFQUFnRTtzQkFDNUUsMkRBQTJELENBQUUsQ0FBQTs7O0tBQ2xFO0lBQ0gseUJBQUM7QUFBRCxDQUFDLEFBeENELElBd0NDO0FBeENZLGdEQUFrQjtBQWdEL0I7SUFHRSw0QkFBWSxPQUVYO1FBQ0MsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFBO0lBQzFDLENBQUM7SUFPWSxtQ0FBTSxHQUFuQixVQUFvQixNQUFjOzs7OzRCQUVoQyxXQUFNLElBQUksQ0FBQyxZQUFZLENBQUMsc0JBQXNCLENBQUMsY0FBTSxPQUFBLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQXZCLENBQXVCLENBQUMsRUFBQTs7d0JBQTdFLFNBQTZFLENBQUE7Ozs7O0tBQzlFO0lBQ0gseUJBQUM7QUFBRCxDQUFDLEFBbEJELElBa0JDO0FBbEJZLGdEQUFrQjtBQTBCL0I7SUFHRSwrQkFBWSxPQUVYO1FBQ0MsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFB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QzdELE1BQU0sSUFBSSxLQUFLLENBQUMsNkNBQTZDO2NBQ3pELDJEQUEyRCxDQUFFLENBQUE7SUFDbkUsQ0FBQyxDQUFBO0lBTUQsU0FBUyxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsVUFBZ0IsUUFBZ0IsRUFBRSxTQUFrQjs7Ozs7d0JBQ3BGLElBQUksT0FBTyxRQUFRLEtBQUssUUFBUSxFQUFFOzRCQUNoQyxJQUFBLHNCQUFVLEVBQUMsa0JBQU0sQ0FBQyxjQUFjLEVBQUUsMkJBQTJCLENBQUMsQ0FBQTt5QkFDL0Q7d0JBR0QsV0FBTSxJQUFJLENBQUMsbUJBQW1CLENBQUM7Z0NBQzdCLEtBQUssRUFBRSxRQUFROzZCQUNoQixDQUFDLEVBQUE7O3dCQUZGLFNBRUUsQ0FBQTs7Ozs7S0FDSCxDQUFBO0lBT0QsU0FBUyxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsR0FBRyxVQUFnQixZQUFvQixFQUFFLFVBQWtCOzs7Z0JBQ2hHLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQWdEO3NCQUM1RCxrRkFBa0YsQ0FBRSxDQUFBOzs7S0FDekYsQ0FBQTtJQU9ELFNBQVMsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLEdBQUcsVUFBZ0IsWUFBb0IsRUFBRSxVQUFrQjs7O2dCQUM5RixNQUFNLElBQUksS0FBSyxDQUFDLDhDQUE4QztzQkFDMUQsc0RBQXNELENBQUUsQ0FBQTs7O0tBQzdELENBQUE7SUFPRCxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxVQUFnQixVQUFrQjs7O2dCQUM3RCxNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQztzQkFDL0Msd0RBQXdELENBQUUsQ0FBQTs7O0tBQy9ELENBQUE7QUFDSCxDQUFDO0FBaEVELDhDQWdFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11c2VsZXNzLWNvbnN0cnVjdG9yICovXG4vKipcbiAqIHYxIOWFvOWuueWxglxuICog5pys5paH5Lu25YyF5ZCrIHYxIOeJiOacrOeahCBQcm92aWRlciDnsbvjgIFBdXRoIHYxIOWFvOWuueaWueazleWSjCBVc2VyIHYxIOWFvOWuueaWueazleOAglxuICogQXV0aCDnsbvpgJrov4cgZXh0ZW5kcyBBdXRoVjFDb21wYXQg5p2l57un5om/IHYxIOaWueazleOAglxuICogVXNlciDnsbvpgJrov4cgYXBwbHlVc2VyVjFDb21wYXQgbWl4aW4g5p2l5omp5bGVIHYxIOaWueazleOAglxuICovXG5pbXBvcnQgdHlwZSB7IGF1dGhNb2RlbHMgfSBmcm9tICdAY2xvdWRiYXNlL29hdXRoJ1xuaW1wb3J0IHtcbiAgTE9HSU5fU1RBVEVfQ0hBTkdFRF9UWVBFLFxuICBBVVRIX1NUQVRFX0NIQU5HRURfVFlQRSxcbn0gZnJvbSAnQGNsb3VkYmFzZS9vYXV0aCdcbmltcG9ydCB7XG4gIHRocm93RXJyb3IsXG4gIEVSUk9SUyxcbn0gZnJvbSAnLi91dGlsaXRpZXMnXG5pbXBvcnQgdHlwZSB7IFNpZ25VcFJlcyB9IGZyb20gJy4vdHlwZSdcblxuLy8gPT09PT09PT09PSB2MSDlhbzlrrkgUHJvdmlkZXIg57G7ID09PT09PT09PT1cblxuLyoqXG4gKiB2MSDlvq7kv6HnmbvlvZUgUHJvdmlkZXJcbiAqIOS9v+eUqOaWueW8jzogYXV0aC53ZWl4aW5BdXRoUHJvdmlkZXIoeyBhcHBpZCwgc2NvcGUgfSkuc2lnbkluV2l0aFJlZGlyZWN0KClcbiAqXG4gKiBAZGVwcmVjYXRlZCB2MSDlhbzlrrkgQVBJ44CC5bu66K6u5L2/55SoIGF1dGguc2lnbkluV2l0aE9BdXRoKHsgcHJvdmlkZXIgfSkg5pu/5Luj44CCXG4gKi9cbmV4cG9ydCBjbGFzcyBXZWl4aW5BdXRoUHJvdmlkZXIge1xuICBjb25zdHJ1Y3Rvcihfb3B0aW9uczoge1xuICAgIGF1dGhJbnN0YW5jZTogYW55XG4gICAgYXBwaWQ6IHN0cmluZ1xuICAgIHNjb3BlOiBzdHJpbmdcbiAgfSkge1xuICAgIC8vIHYxIOWFvOWuueexu++8jOaJgOacieaWueazleWdh+aKm+WHuuW8guW4uOaPkOekuuabv+S7o+aWueahiFxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHYxIOWFvOWuuSBBUEnjgIJcbiAgICog5bu66K6u5L2/55SoIGF1dGguc2lnbkluV2l0aE9BdXRoKHsgcHJvdmlkZXI6ICdwcm92aWRlcklkJyB9KSDmm7/ku6PjgIJcbiAgICovXG4gIHB1YmxpYyBzaWduSW5XaXRoUmVkaXJlY3QoKTogdm9pZCB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdbdjEg5YW85a65XSBXZWl4aW5BdXRoUHJvdmlkZXIuc2lnbkluV2l0aFJlZGlyZWN0KCkg5Zyo5b2T5YmN54mI5pys5Lit5peg5rOV5a6e546w44CCJ1xuICAgICAgKyAnIOW7uuiuruS9v+eUqCBhdXRoLnNpZ25JbldpdGhPQXV0aCh7IHByb3ZpZGVyOiBcXCdwcm92aWRlcklkXFwnIH0pIOabv+S7o+OAgicsKVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHYxIOWFvOWuuSBBUEnjgIJcbiAgICog5bu66K6u5L2/55SoIGF1dGgudmVyaWZ5T0F1dGgoeyBjb2RlLCBzdGF0ZSwgcHJvdmlkZXIgfSkg5pu/5Luj44CCXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0UmVkaXJlY3RSZXN1bHQoX29wdGlvbnM/OiB7XG4gICAgY3JlYXRlVXNlcj86IGJvb2xlYW5cbiAgICBzeW5jVXNlckluZm8/OiBib29sZWFuXG4gIH0pOiBQcm9taXNlPGFueT4ge1xuICAgIHRocm93IG5ldyBFcnJvcignW3YxIOWFvOWuuV0gV2VpeGluQXV0aFByb3ZpZGVyLmdldFJlZGlyZWN0UmVzdWx0KCkg5Zyo5b2T5YmN54mI5pys5Lit5peg5rOV5a6e546w44CCJ1xuICAgICAgKyAnIOW7uuiuruS9v+eUqCBhdXRoLnZlcmlmeU9BdXRoKHsgY29kZSwgc3RhdGUsIHByb3ZpZGVyIH0pIOabv+S7o+OAgicsKVxuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHYxIOWFvOWuuSBBUEnjgIJcbiAgICog5bu66K6u5L2/55SoIGF1dGgubGlua0lkZW50aXR5KHsgcHJvdmlkZXI6ICdwcm92aWRlcklkJyB9KSDmm7/ku6PjgIJcbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRMaW5rUmVkaXJlY3RSZXN1bHQoX29wdGlvbnM/OiB7XG4gICAgd2l0aFVuaW9uSWQ/OiBib29sZWFuXG4gIH0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1t2MSDlhbzlrrldIFdlaXhpbkF1dGhQcm92aWRlci5nZXRMaW5rUmVkaXJlY3RSZXN1bHQoKSDlnKjlvZPliY3niYjmnKzkuK3ml6Dms5Xlrp7njrDjgIInXG4gICAgICArICcg5bu66K6u5L2/55SoIGF1dGgubGlua0lkZW50aXR5KHsgcHJvdmlkZXI6IFxcJ3Byb3ZpZGVySWRcXCcgfSkg5pu/5Luj44CCJywpXG4gIH1cbn1cblxuLyoqXG4gKiB2MSDoh6rlrprkuYnnmbvlvZUgUHJvdmlkZXJcbiAqIOS9v+eUqOaWueW8jzogYXV0aC5jdXN0b21BdXRoUHJvdmlkZXIoKS5zaWduSW4odGlja2V0KVxuICpcbiAqIEBkZXByZWNhdGVkIHYxIOWFvOWuuSBBUEnjgILlu7rorq7kvb/nlKggYXV0aC5zaWduSW5XaXRoQ3VzdG9tVGlja2V0KCgpID0+IFByb21pc2UucmVzb2x2ZSh0aWNrZXQpKSDmm7/ku6PjgIJcbiAqL1xuZXhwb3J0IGNsYXNzIEN1c3RvbUF1dGhQcm92aWRlciB7XG4gIHByaXZhdGUgYXV0aEluc3RhbmNlOiBhbnlcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiB7XG4gICAgYXV0aEluc3RhbmNlOiBhbnlcbiAgfSkge1xuICAgIHRoaXMuYXV0aEluc3RhbmNlID0gb3B0aW9ucy5hdXRoSW5zdGFuY2VcbiAgfVxuXG4gIC8qKlxuICAgKiDkvb/nlKjoh6rlrprkuYnnmbvlvZXlh63mja4gdGlja2V0IOeZu+W9leS6keW8gOWPkVxuICAgKiBAcGFyYW0gdGlja2V0IOiHquWumuS5ieeZu+W9lSB0aWNrZXRcbiAgICogQGRlcHJlY2F0ZWQgdjEg5YW85a65IEFQSeOAguW7uuiuruS9v+eUqCBhdXRoLnNpZ25JbldpdGhDdXN0b21UaWNrZXQoKCkgPT4gUHJvbWlzZS5yZXNvbHZlKHRpY2tldCkpIOabv+S7o+OAglxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNpZ25Jbih0aWNrZXQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIOS9v+eUqCBBdXRoIOW3suacieeahCBzaWduSW5XaXRoQ3VzdG9tVGlja2V0IOaWueazlVxuICAgIGF3YWl0IHRoaXMuYXV0aEluc3RhbmNlLnNpZ25JbldpdGhDdXN0b21UaWNrZXQoKCkgPT4gUHJvbWlzZS5yZXNvbHZlKHRpY2tldCkpXG4gIH1cbn1cblxuLyoqXG4gKiB2MSDljL/lkI3nmbvlvZUgUHJvdmlkZXJcbiAqIOS9v+eUqOaWueW8jzogYXV0aC5hbm9ueW1vdXNBdXRoUHJvdmlkZXIoKS5zaWduSW4oKVxuICpcbiAqIEBkZXByZWNhdGVkIHYxIOWFvOWuuSBBUEnjgILlu7rorq7kvb/nlKggYXV0aC5zaWduSW5Bbm9ueW1vdXNseSh7fSkg5pu/5Luj44CCXG4gKi9cbmV4cG9ydCBjbGFzcyBBbm9ueW1vdXNBdXRoUHJvdmlkZXIge1xuICBwcml2YXRlIGF1dGhJbnN0YW5jZTogYW55XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczoge1xuICAgIGF1dGhJbnN0YW5jZTogYW55XG4gIH0pIHtcbiAgICB0aGlzLmF1dGhJbnN0YW5jZSA9IG9wdGlvbnMuYXV0aEluc3RhbmNlXG4gIH1cblxuICAvKipcbiAgICog5Yy/5ZCN55m75b2V5LqR5byA5Y+RXG4gICAqIEBkZXByZWNhdGVkIHYxIOWFvOWuuSBBUEnjgILlu7rorq7kvb/nlKggYXV0aC5zaWduSW5Bbm9ueW1vdXNseSh7fSkg5pu/5Luj44CCXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2lnbkluKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIOS9v+eUqCBBdXRoIOW3suacieeahCBzaWduSW5Bbm9ueW1vdXNseSDmlrnms5VcbiAgICBhd2FpdCB0aGlzLmF1dGhJbnN0YW5jZS5zaWduSW5Bbm9ueW1vdXNseSh7fSlcbiAgfVxufVxuXG4vLyA9PT09PT09PT09IEF1dGggdjEg5YW85a655Z+657G7ID09PT09PT09PT1cblxuLyoqXG4gKiBBdXRoVjFDb21wYXQg5Z+657G777yM5o+Q5L6bIHYxIOeJiOacrOeahOWFvOWuuSBBUEkg5pa55rOV44CCXG4gKiBBdXRoIOexu+mAmui/hyBleHRlbmRzIEF1dGhWMUNvbXBhdCDmnaXnu6fmib/ov5nkupvmlrnms5XjgIJcbiAqXG4gKiDms6jmhI/vvJrmraTnsbvkuK3nmoTmlrnms5XpgJrov4cgdGhpcyDorr/pl67lrZDnsbsgQXV0aCDnmoTmlrnms5XlkozlsZ7mgKfvvIxcbiAqIOWMheaLrDogc2lnbkluLCBzaWduVXAsIHNpZ25JbldpdGhDdXN0b21UaWNrZXQsIHNpZ25JbkFub255bW91c2x5LFxuICogZ2V0VmVyaWZpY2F0aW9uLCByZXNldFBhc3N3b3JkLCBvbkxvZ2luU3RhdGVDaGFuZ2VkLCBvbkF1dGhTdGF0ZUNoYW5nZSxcbiAqIGNyZWF0ZUxvZ2luU3RhdGUsIGZvcm1hdFBob25lLCBjb25maWcsIHNpZ25JbldpdGhPQXV0aCDnrYnjgIJcbiAqL1xuLy8gZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZyAtLSBhYnN0cmFjdCDln7rnsbvkuK0gYWJzdHJhY3Qg5aOw5piO5LiOIHB1YmxpYyDmlrnms5XmjpLluo/kuI3pgILnlKjluLjop4Top4TliJlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBdXRoVjFDb21wYXQge1xuICBhYnN0cmFjdCByZWFkb25seSBjb25maWc6IGFueVxuXG4gIC8vID09PT09PT09PT0gdjEg5YW85a65IEFQSSDmlrnms5UgPT09PT09PT09PVxuXG4gIC8qKlxuICAgKiB2MSBBUEk6IOiOt+WPlueUqOS6juW+ruS/oeeZu+W9leeahCBXZWl4aW5BdXRoUHJvdmlkZXIgLy8gY3NwZWxsOmlnbm9yZSB3ZWl4aW4gV2VpeGluXG4gICAqIEBkZXByZWNhdGVkIOW7uuiuruS9v+eUqCBhdXRoLnNpZ25JbldpdGhPQXV0aCh7IHByb3ZpZGVyOiBhcHBpZCB9KSDmm7/ku6PjgIJcbiAgICovXG4gIHB1YmxpYyB3ZWl4aW5BdXRoUHJvdmlkZXIob3B0aW9uczogeyBhcHBpZDogc3RyaW5nOyBzY29wZTogc3RyaW5nIH0pOiBXZWl4aW5BdXRoUHJvdmlkZXIge1xuICAgIHJldHVybiBuZXcgV2VpeGluQXV0aFByb3ZpZGVyKHtcbiAgICAgIGF1dGhJbnN0YW5jZTogdGhpcyxcbiAgICAgIGFwcGlkOiBvcHRpb25zLmFwcGlkLFxuICAgICAgc2NvcGU6IG9wdGlvbnMuc2NvcGUsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiB2MSBBUEk6IOiOt+WPlueUqOS6juiHquWumuS5ieeZu+W9leeahCBDdXN0b21BdXRoUHJvdmlkZXJcbiAgICogQGRlcHJlY2F0ZWQg5bu66K6u5L2/55SoIGF1dGguc2lnbkluV2l0aEN1c3RvbVRpY2tldCgoKSA9PiBQcm9taXNlLnJlc29sdmUodGlja2V0KSkg5pu/5Luj44CCXG4gICAqL1xuICBwdWJsaWMgY3VzdG9tQXV0aFByb3ZpZGVyKCk6IEN1c3RvbUF1dGhQcm92aWRlciB7XG4gICAgcmV0dXJuIG5ldyBDdXN0b21BdXRoUHJvdmlkZXIoe1xuICAgICAgYXV0aEluc3RhbmNlOiB0aGlzLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogdjEgQVBJOiDojrflj5bnlKjkuo7ljL/lkI3nmbvlvZXnmoQgQW5vbnltb3VzQXV0aFByb3ZpZGVyXG4gICAqIEBkZXByZWNhdGVkIOW7uuiuruS9v+eUqCBhdXRoLnNpZ25JbkFub255bW91c2x5KHt9KSDmm7/ku6PjgIJcbiAgICovXG4gIHB1YmxpYyBhbm9ueW1vdXNBdXRoUHJvdmlkZXIoKTogQW5vbnltb3VzQXV0aFByb3ZpZGVyIHtcbiAgICByZXR1cm4gbmV3IEFub255bW91c0F1dGhQcm92aWRlcih7XG4gICAgICBhdXRoSW5zdGFuY2U6IHRoaXMsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiB2MSBBUEk6IOS9v+eUqOmCrueuseWSjOWvhueggeazqOWGjOS6keW8gOWPkei0puaIt1xuICAgKiBAZGVwcmVjYXRlZCDlu7rorq7kvb/nlKggYXV0aC5zaWduVXAoeyBlbWFpbCwgcGFzc3dvcmQgfSkg5pu/5Luj44CCXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2lnblVwV2l0aEVtYWlsQW5kUGFzc3dvcmQoZW1haWw6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IFByb21pc2U8U2lnblVwUmVzPiB7XG4gICAgaWYgKHR5cGVvZiBlbWFpbCAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93RXJyb3IoRVJST1JTLklOVkFMSURfUEFSQU1TLCAnZW1haWwgbXVzdCBiZSBhIHN0cmluZycpXG4gICAgfVxuICAgIGlmICh0eXBlb2YgcGFzc3dvcmQgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvd0Vycm9yKEVSUk9SUy5JTlZBTElEX1BBUkFNUywgJ3Bhc3N3b3JkIG11c3QgYmUgYSBzdHJpbmcnKVxuICAgIH1cblxuICAgIC8vIOS9v+eUqCBBdXRoIOW3suacieeahCBzaWduVXAg5pa55rOVXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuc2lnblVwKHtcbiAgICAgIGVtYWlsLFxuICAgICAgcGFzc3dvcmQsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiB2MSBBUEk6IOS9v+eUqOmCrueuseWSjOWvhueggeeZu+W9leS6keW8gOWPkVxuICAgKiBAZGVwcmVjYXRlZCDlu7rorq7kvb/nlKggYXV0aC5zaWduSW5XaXRoUGFzc3dvcmQoeyBlbWFpbCwgcGFzc3dvcmQgfSkg5pu/5Luj44CCXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2lnbkluV2l0aEVtYWlsQW5kUGFzc3dvcmQoZW1haWw6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKHR5cGVvZiBlbWFpbCAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93RXJyb3IoRVJST1JTLklOVkFMSURfUEFSQU1TLCAnZW1haWwgbXVzdCBiZSBhIHN0cmluZycpXG4gICAgfVxuICAgIGlmICh0eXBlb2YgcGFzc3dvcmQgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvd0Vycm9yKEVSUk9SUy5JTlZBTElEX1BBUkFNUywgJ3Bhc3N3b3JkIG11c3QgYmUgYSBzdHJpbmcnKVxuICAgIH1cblxuICAgIC8vIOS9v+eUqCBBdXRoIOW3suacieeahCBzaWduSW4g5pa55rOVXG4gICAgYXdhaXQgdGhpcy5zaWduSW4oe1xuICAgICAgdXNlcm5hbWU6IGVtYWlsLFxuICAgICAgcGFzc3dvcmQsXG4gICAgfSlcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVMb2dpblN0YXRlKClcbiAgfVxuXG4gIC8qKlxuICAgKiB2MSBBUEk6IOWPkemAgemHjee9ruWvhueggeeahOmCruS7tlxuICAgKiBAZGVwcmVjYXRlZCDlu7rorq7kvb/nlKggYXV0aC5yZXNldFBhc3N3b3JkRm9yRW1haWwoZW1haWwpIOabv+S7o+OAglxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNlbmRQYXNzd29yZFJlc2V0RW1haWwoZW1haWw6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0eXBlb2YgZW1haWwgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvd0Vycm9yKEVSUk9SUy5JTlZBTElEX1BBUkFNUywgJ2VtYWlsIG11c3QgYmUgYSBzdHJpbmcnKVxuICAgIH1cblxuICAgIC8vIOS9v+eUqCBBdXRoIOW3suacieeahCBnZXRWZXJpZmljYXRpb24g5pa55rOVXG4gICAgYXdhaXQgdGhpcy5nZXRWZXJpZmljYXRpb24oeyBlbWFpbCB9KVxuICB9XG5cbiAgLyoqXG4gICAqIHYxIEFQSTog5L2/55So55So5oi35ZCN5a+G56CB55m75b2V5LqR5byA5Y+RXG4gICAqIEBkZXByZWNhdGVkIOW7uuiuruS9v+eUqCBhdXRoLnNpZ25JbldpdGhQYXNzd29yZCh7IHVzZXJuYW1lLCBwYXNzd29yZCB9KSDmm7/ku6PjgIJcbiAgICovXG4gIHB1YmxpYyBhc3luYyBzaWduSW5XaXRoVXNlcm5hbWVBbmRQYXNzd29yZCh1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICBpZiAodHlwZW9mIHVzZXJuYW1lICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3dFcnJvcihFUlJPUlMuSU5WQUxJRF9QQVJBTVMsICd1c2VybmFtZSBtdXN0IGJlIGEgc3RyaW5nJylcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBwYXNzd29yZCAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93RXJyb3IoRVJST1JTLklOVkFMSURfUEFSQU1TLCAncGFzc3dvcmQgbXVzdCBiZSBhIHN0cmluZycpXG4gICAgfVxuXG4gICAgLy8g5L2/55SoIEF1dGgg5bey5pyJ55qEIHNpZ25JbiDmlrnms5VcbiAgICBhd2FpdCB0aGlzLnNpZ25Jbih7XG4gICAgICB1c2VybmFtZSxcbiAgICAgIHBhc3N3b3JkLFxuICAgIH0pXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlTG9naW5TdGF0ZSgpXG4gIH1cblxuICAvKipcbiAgICogdjEgQVBJOiDlj5HpgIHmiYvmnLrpqozor4HnoIFcbiAgICogQGRlcHJlY2F0ZWQg5o6o6I2Q5L2/55SoIGF1dGguc2lnbkluV2l0aE90cCh7IHBob25lIH0pIOabv+S7o++8jOWPr+iOt+W+l1wi5Y+R6YCB4oaS6aqM6K+B4oaS55m75b2VXCLlrozmlbTmtYHnqIvjgIJcbiAgICog5q2k5pa55rOV5LuF5Y+R6YCB6aqM6K+B56CB5bm26L+U5ZueIGJvb2xlYW7vvIzkuI3kvJrov5Tlm54gdmVyaWZ5T3RwIOWbnuiwg+OAglxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNlbmRQaG9uZUNvZGUocGhvbmVOdW1iZXI6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICh0eXBlb2YgcGhvbmVOdW1iZXIgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvd0Vycm9yKEVSUk9SUy5JTlZBTElEX1BBUkFNUywgJ3Bob25lTnVtYmVyIG11c3QgYmUgYSBzdHJpbmcnKVxuICAgIH1cblxuICAgIC8vIOS9v+eUqCBBdXRoIOW3suacieeahCBnZXRWZXJpZmljYXRpb24g5pa55rOVXG4gICAgY29uc3QgZm9ybWF0dGVkUGhvbmUgPSB0aGlzLmZvcm1hdFBob25lKHBob25lTnVtYmVyKVxuICAgIGF3YWl0IHRoaXMuZ2V0VmVyaWZpY2F0aW9uKHsgcGhvbmVfbnVtYmVyOiBmb3JtYXR0ZWRQaG9uZSB9KVxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvKipcbiAgICogdjEgQVBJOiDmiYvmnLrlj7fms6jlhozvvIjmlK/mjIHnn63kv6Hpqozor4HnoIEr5a+G56CB5pa55byP77yJXG4gICAqIEBkZXByZWNhdGVkIOaOqOiNkOS9v+eUqCBhdXRoLnNpZ25VcCh7IHBob25lLCBwYXNzd29yZD8gfSkg5pu/5Luj77yM5pSv5oyB6aqM6K+B56CB6aqM6K+B5LiA5L2T5YyW5rWB56iL44CCXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2lnblVwV2l0aFBob25lQ29kZShwaG9uZU51bWJlcjogc3RyaW5nLCBwaG9uZUNvZGU6IHN0cmluZywgcGFzc3dvcmQ/OiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIGlmICh0eXBlb2YgcGhvbmVOdW1iZXIgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvd0Vycm9yKEVSUk9SUy5JTlZBTElEX1BBUkFNUywgJ3Bob25lTnVtYmVyIG11c3QgYmUgYSBzdHJpbmcnKVxuICAgIH1cbiAgICBpZiAodHlwZW9mIHBob25lQ29kZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93RXJyb3IoRVJST1JTLklOVkFMSURfUEFSQU1TLCAncGhvbmVDb2RlIG11c3QgYmUgYSBzdHJpbmcnKVxuICAgIH1cblxuICAgIGNvbnN0IGZvcm1hdHRlZFBob25lID0gdGhpcy5mb3JtYXRQaG9uZShwaG9uZU51bWJlcilcblxuICAgIC8vIOS9v+eUqCBBdXRoIOW3suacieeahCBzaWduVXAg5pa55rOVXG4gICAgYXdhaXQgdGhpcy5zaWduVXAoe1xuICAgICAgcGhvbmVfbnVtYmVyOiBmb3JtYXR0ZWRQaG9uZSxcbiAgICAgIHZlcmlmaWNhdGlvbl9jb2RlOiBwaG9uZUNvZGUsXG4gICAgICAuLi4ocGFzc3dvcmQgPyB7IHBhc3N3b3JkIH0gOiB7fSksXG4gICAgfSlcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVMb2dpblN0YXRlKClcbiAgfVxuXG4gIC8qKlxuICAgKiB2MSBBUEk6IOaJi+acuuWPt+eZu+W9le+8iOaUr+aMgeefreS/oemqjOivgeeggSBvciDlr4bnoIHmlrnlvI/vvIlcbiAgICogQGRlcHJlY2F0ZWQg5a+G56CB5pa55byP5o6o6I2QIGF1dGguc2lnbkluV2l0aFBhc3N3b3JkKHsgcGhvbmUsIHBhc3N3b3JkIH0p77ybXG4gICAqIOmqjOivgeeggeaWueW8j+aOqOiNkCBhdXRoLnNpZ25JbldpdGhPdHAoeyBwaG9uZSB9Ke+8jOi/lOWbniB2ZXJpZnlPdHAg5Zue6LCD5a6M5oiQ6aqM6K+B44CCXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc2lnbkluV2l0aFBob25lQ29kZU9yUGFzc3dvcmQocGFyYW1zOiB7XG4gICAgcGhvbmVOdW1iZXI6IHN0cmluZ1xuICAgIHBob25lQ29kZT86IHN0cmluZ1xuICAgIHBhc3N3b3JkPzogc3RyaW5nXG4gIH0pOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHsgcGhvbmVOdW1iZXIsIHBob25lQ29kZSwgcGFzc3dvcmQgfSA9IHBhcmFtc1xuICAgIGlmICh0eXBlb2YgcGhvbmVOdW1iZXIgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvd0Vycm9yKEVSUk9SUy5JTlZBTElEX1BBUkFNUywgJ3Bob25lTnVtYmVyIG11c3QgYmUgYSBzdHJpbmcnKVxuICAgIH1cblxuICAgIGNvbnN0IGZvcm1hdHRlZFBob25lID0gdGhpcy5mb3JtYXRQaG9uZShwaG9uZU51bWJlcilcblxuICAgIGlmIChwYXNzd29yZCkge1xuICAgICAgLy8g5L2/55SoIEF1dGgg5bey5pyJ55qEIHNpZ25JbiDmlrnms5Xov5vooYzlr4bnoIHnmbvlvZVcbiAgICAgIGF3YWl0IHRoaXMuc2lnbkluKHtcbiAgICAgICAgdXNlcm5hbWU6IGZvcm1hdHRlZFBob25lLFxuICAgICAgICBwYXNzd29yZCxcbiAgICAgIH0pXG4gICAgfSBlbHNlIGlmIChwaG9uZUNvZGUpIHtcbiAgICAgIC8vIOS9v+eUqCBBdXRoIOW3suacieeahCBzaWduSW4g5pa55rOV6L+b6KGM6aqM6K+B56CB55m75b2VXG4gICAgICBhd2FpdCB0aGlzLnNpZ25Jbih7XG4gICAgICAgIHVzZXJuYW1lOiBmb3JtYXR0ZWRQaG9uZSxcbiAgICAgICAgdmVyaWZpY2F0aW9uX3Rva2VuOiBwaG9uZUNvZGUsXG4gICAgICB9IGFzIGFueSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3dFcnJvcihFUlJPUlMuSU5WQUxJRF9QQVJBTVMsICdwaG9uZUNvZGUgb3IgcGFzc3dvcmQgbXVzdCBiZSBwcm92aWRlZCcpXG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNyZWF0ZUxvZ2luU3RhdGUoKVxuICB9XG5cbiAgLyoqXG4gICAqIHYxIEFQSTog5omL5py65Y+35by65Yi26YeN572u5a+G56CBXG4gICAqIEBkZXByZWNhdGVkIOW7uuiuruS9v+eUqCBhdXRoLnJlc2V0UGFzc3dvcmRGb3JFbWFpbChwaG9uZU51bWJlcikg5pu/5Luj44CCXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZm9yY2VSZXNldFB3ZEJ5UGhvbmVDb2RlKHBhcmFtczoge1xuICAgIHBob25lTnVtYmVyOiBzdHJpbmdcbiAgICBwaG9uZUNvZGU6IHN0cmluZ1xuICAgIHBhc3N3b3JkOiBzdHJpbmdcbiAgfSk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgeyBwaG9uZU51bWJlciwgcGhvbmVDb2RlLCBwYXNzd29yZCB9ID0gcGFyYW1zXG4gICAgaWYgKHR5cGVvZiBwaG9uZU51bWJlciAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93RXJyb3IoRVJST1JTLklOVkFMSURfUEFSQU1TLCAncGhvbmVOdW1iZXIgbXVzdCBiZSBhIHN0cmluZycpXG4gICAgfVxuICAgIGlmICh0eXBlb2YgcGhvbmVDb2RlICE9PSAnc3RyaW5nJykge1xuICAgICAgdGhyb3dFcnJvcihFUlJPUlMuSU5WQUxJRF9QQVJBTVMsICdwaG9uZUNvZGUgbXVzdCBiZSBhIHN0cmluZycpXG4gICAgfVxuICAgIGlmICh0eXBlb2YgcGFzc3dvcmQgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvd0Vycm9yKEVSUk9SUy5JTlZBTElEX1BBUkFNUywgJ3Bhc3N3b3JkIG11c3QgYmUgYSBzdHJpbmcnKVxuICAgIH1cblxuICAgIGNvbnN0IGZvcm1hdHRlZFBob25lID0gdGhpcy5mb3JtYXRQaG9uZShwaG9uZU51bWJlcilcblxuICAgIC8vIOS9v+eUqCBBdXRoIOW3suacieeahCByZXNldFBhc3N3b3JkIOaWueazlVxuICAgIGF3YWl0IHRoaXMucmVzZXRQYXNzd29yZCh7XG4gICAgICBwaG9uZV9udW1iZXI6IGZvcm1hdHRlZFBob25lLFxuICAgICAgbmV3X3Bhc3N3b3JkOiBwYXNzd29yZCxcbiAgICAgIHZlcmlmaWNhdGlvbl90b2tlbjogcGhvbmVDb2RlLFxuICAgIH0pXG5cbiAgICAvLyDph43nva7lr4bnoIHmiJDlip/lkI7kvb/nlKggQXV0aCDlt7LmnInnmoQgc2lnbkluIOaWueazleiHquWKqOeZu+W9lVxuICAgIGF3YWl0IHRoaXMuc2lnbkluKHtcbiAgICAgIHVzZXJuYW1lOiBmb3JtYXR0ZWRQaG9uZSxcbiAgICAgIHBhc3N3b3JkLFxuICAgIH0pXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlTG9naW5TdGF0ZSgpXG4gIH1cblxuICAvKipcbiAgICogdjEgQVBJOiDmjqXmlLbkuIDkuKrlm57osIPlh73mlbDvvIzlnKjliLfmlrDnn63mnJ/orr/pl67ku6TniYzliY3osIPnlKjvvIzmoLnmja7ov5Tlm57lgLzlhrPlrprmmK/lkKbliLfmlrBcbiAgICogQGRlcHJlY2F0ZWQgdjEg5YW85a65IEFQSe+8jOW9k+WJjSB2MyBTREsg5Lit5peg55u05o6l5a+55bqU5pa55rOV44CCXG4gICAqIOW7uuiuruS9v+eUqCBhdXRoLm9uQXV0aFN0YXRlQ2hhbmdlKGNhbGxiYWNrKSDnm5HlkKwgVE9LRU5fUkVGUkVTSEVEIOS6i+S7tuabv+S7o+OAglxuICAgKi9cbiAgcHVibGljIHNob3VsZFJlZnJlc2hBY2Nlc3NUb2tlbihfY2FsbGJhY2s6ICgpID0+IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1t2MSDlhbzlrrldIHNob3VsZFJlZnJlc2hBY2Nlc3NUb2tlbigpIOWcqOW9k+WJjeeJiOacrOS4reaXoOazleWunueOsOOAgidcbiAgICAgICsgJyDlu7rorq7kvb/nlKggYXV0aC5vbkF1dGhTdGF0ZUNoYW5nZShjYWxsYmFjaykg5p2l55uR5ZCsIFRPS0VOX1JFRlJFU0hFRCDkuovku7bmm7/ku6PjgIInLClcbiAgfVxuXG4gIC8qKlxuICAgKiB2MSBBUEk6IOaOpeaUtuS4gOS4quWbnuiwg+WHveaVsO+8jOWcqOeZu+W9leeKtuaAgei/h+acn+aXtuiwg+eUqFxuICAgKiBAZGVwcmVjYXRlZCDlu7rorq7kvb/nlKggYXV0aC5vbkF1dGhTdGF0ZUNoYW5nZShjYWxsYmFjaykg5pu/5Luj77yM55uR5ZCsIFNJR05FRF9PVVQg5LqL5Lu244CCXG4gICAqL1xuICBwdWJsaWMgb25Mb2dpblN0YXRlRXhwaXJlZChjYWxsYmFjazogRnVuY3Rpb24pOiB2b2lkIHtcbiAgICAvLyDkvb/nlKggQXV0aCDlt7LmnInnmoQgb25Mb2dpblN0YXRlQ2hhbmdlZCDmlrnms5VcbiAgICB0aGlzLm9uTG9naW5TdGF0ZUNoYW5nZWQoKHBhcmFtcykgPT4ge1xuICAgICAgaWYgKHBhcmFtcz8uZXZlbnRUeXBlID09PSBMT0dJTl9TVEFURV9DSEFOR0VEX1RZUEUuQ1JFREVOVElBTFNfRVJST1IpIHtcbiAgICAgICAgY2FsbGJhY2suY2FsbCh0aGlzKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogdjEgQVBJOiDmjqXmlLbkuIDkuKrlm57osIPlh73mlbDvvIzlnKjnn63mnJ/orr/pl67ku6TniYzliLfmlrDlkI7osIPnlKhcbiAgICogQGRlcHJlY2F0ZWQg5bu66K6u5L2/55SoIGF1dGgub25BdXRoU3RhdGVDaGFuZ2UoY2FsbGJhY2spIOabv+S7o++8jOebkeWQrCBUT0tFTl9SRUZSRVNIRUQg5LqL5Lu244CCXG4gICAqL1xuICBwdWJsaWMgb25BY2Nlc3NUb2tlblJlZnJlc2hlZChjYWxsYmFjazogRnVuY3Rpb24pOiB2b2lkIHtcbiAgICAvLyDkvb/nlKggQXV0aCDlt7LmnInnmoQgb25BdXRoU3RhdGVDaGFuZ2Ug5pa55rOVXG4gICAgdGhpcy5vbkF1dGhTdGF0ZUNoYW5nZSgoZXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudCA9PT0gQVVUSF9TVEFURV9DSEFOR0VEX1RZUEUuVE9LRU5fUkVGUkVTSEVEKSB7XG4gICAgICAgIGNhbGxiYWNrLmNhbGwodGhpcylcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIHYxIEFQSTog5o6l5pS25LiA5Liq5Zue6LCD5Ye95pWw77yM5Zyo5Yy/5ZCN55m75b2V54q25oCB6KKr6L2s5o2i5ZCO6LCD55SoXG4gICAqIEBkZXByZWNhdGVkIOW7uuiuruS9v+eUqCBhdXRoLm9uQXV0aFN0YXRlQ2hhbmdlKGNhbGxiYWNrKSDmm7/ku6PvvIznm5HlkKwgU0lHTkVEX0lOIOS6i+S7tuOAglxuICAgKi9cbiAgcHVibGljIG9uQW5vbnltb3VzQ29udmVydGVkKGNhbGxiYWNrOiBGdW5jdGlvbik6IHZvaWQge1xuICAgIC8vIOS9v+eUqCBBdXRoIOW3suacieeahCBvbkF1dGhTdGF0ZUNoYW5nZSDmlrnms5VcbiAgICB0aGlzLm9uQXV0aFN0YXRlQ2hhbmdlKChldmVudCkgPT4ge1xuICAgICAgaWYgKGV2ZW50ID09PSBBVVRIX1NUQVRFX0NIQU5HRURfVFlQRS5TSUdORURfSU4pIHtcbiAgICAgICAgY2FsbGJhY2suY2FsbCh0aGlzKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogdjEgQVBJOiDmjqXmlLbkuIDkuKrlm57osIPlh73mlbDvvIzlnKjnmbvlvZXnsbvlnovlj5HnlJ/lj5jljJblkI7osIPnlKhcbiAgICogQGRlcHJlY2F0ZWQg5bu66K6u5L2/55SoIGF1dGgub25BdXRoU3RhdGVDaGFuZ2UoY2FsbGJhY2spIOabv+S7o++8jOebkeWQrCBTSUdORURfSU4gLyBTSUdORURfT1VUIOS6i+S7tuOAglxuICAgKi9cbiAgcHVibGljIG9uTG9naW5UeXBlQ2hhbmdlZChjYWxsYmFjazogRnVuY3Rpb24pOiB2b2lkIHtcbiAgICAvLyDkvb/nlKggQXV0aCDlt7LmnInnmoQgb25BdXRoU3RhdGVDaGFuZ2Ug5pa55rOVXG4gICAgdGhpcy5vbkF1dGhTdGF0ZUNoYW5nZSgoZXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudCA9PT0gQVVUSF9TVEFURV9DSEFOR0VEX1RZUEUuU0lHTkVEX0lOIHx8IGV2ZW50ID09PSBBVVRIX1NUQVRFX0NIQU5HRURfVFlQRS5TSUdORURfT1VUKSB7XG4gICAgICAgIGNhbGxiYWNrLmNhbGwodGhpcylcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLy8gPT09PT09PT09PSDlo7DmmI7lrZDnsbsgQXV0aCDpnIDopoHmj5DkvpvnmoTmlrnms5Uv5bGe5oCnID09PT09PT09PT1cbiAgYWJzdHJhY3Qgc2lnbkluKHBhcmFtczogYXV0aE1vZGVscy5TaWduSW5SZXF1ZXN0KTogUHJvbWlzZTxhbnk+XG4gIGFic3RyYWN0IHNpZ25VcChwYXJhbXM6IGF1dGhNb2RlbHMuU2lnblVwUmVxdWVzdCAmIHsgcGhvbmU/OiBzdHJpbmcgfSk6IFByb21pc2U8U2lnblVwUmVzPlxuICBhYnN0cmFjdCBzaWduSW5XaXRoQ3VzdG9tVGlja2V0KGdldFRpY2tGbj86IGF1dGhNb2RlbHMuR2V0Q3VzdG9tU2lnblRpY2tldEZuKTogUHJvbWlzZTxhbnk+XG4gIGFic3RyYWN0IHNpZ25JbkFub255bW91c2x5KHBhcmFtczogYW55KTogUHJvbWlzZTxhbnk+XG4gIGFic3RyYWN0IGdldFZlcmlmaWNhdGlvbihwYXJhbXM6IGFueSwgb3B0aW9ucz86IGFueSk6IFByb21pc2U8YXV0aE1vZGVscy5HZXRWZXJpZmljYXRpb25SZXNwb25zZT5cbiAgYWJzdHJhY3QgcmVzZXRQYXNzd29yZChwYXJhbXM6IGF1dGhNb2RlbHMuUmVzZXRQYXNzd29yZFJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+XG4gIGFic3RyYWN0IG9uTG9naW5TdGF0ZUNoYW5nZWQoY2FsbGJhY2s6IEZ1bmN0aW9uKTogUHJvbWlzZTx2b2lkPlxuICBhYnN0cmFjdCBvbkF1dGhTdGF0ZUNoYW5nZShjYWxsYmFjazogYW55KTogYW55XG4gIGFic3RyYWN0IGNyZWF0ZUxvZ2luU3RhdGUocGFyYW1zPzogYW55LCBvcHRpb25zPzogYW55KTogUHJvbWlzZTxhbnk+XG4gIGFic3RyYWN0IHNpZ25JbldpdGhPQXV0aChwYXJhbXM6IGFueSk6IFByb21pc2U8YW55PlxuICBhYnN0cmFjdCBncmFudFByb3ZpZGVyVG9rZW4ocGFyYW1zOiBhdXRoTW9kZWxzLkdyYW50UHJvdmlkZXJUb2tlblJlcXVlc3QpOiBQcm9taXNlPGF1dGhNb2RlbHMuR3JhbnRQcm92aWRlclRva2VuUmVzcG9uc2U+XG4gIGFic3RyYWN0IGJpbmRXaXRoUHJvdmlkZXIocGFyYW1zOiBhdXRoTW9kZWxzLkJpbmRXaXRoUHJvdmlkZXJSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPlxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZm9ybWF0UGhvbmUocGhvbmU6IHN0cmluZyk6IHN0cmluZ1xufVxuXG4vLyA9PT09PT09PT09IFVzZXIgdjEg5YW85a65IG1peGluID09PT09PT09PT1cblxuLyoqXG4gKiDlsIYgdjEg5YW85a655pa55rOV5bqU55So5YiwIFVzZXIg57G755qEIHByb3RvdHlwZSDkuIrjgIJcbiAqIOWcqCBpbmRleC50cyDkuK3osIPnlKg6IGFwcGx5VXNlclYxQ29tcGF0KFVzZXIpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBseVVzZXJWMUNvbXBhdChVc2VyQ2xhc3M6IGFueSk6IHZvaWQge1xuICAvKipcbiAgICogdjEgQVBJOiDlsIblvZPliY3otKbmiLfkuI7oh6rlrprkuYnnmbvlvZUgVGlja2V0IOi/m+ihjOe7keWumlxuICAgKiBAZGVwcmVjYXRlZCB2MSDlhbzlrrkgQVBJ77yM5b2T5YmN54mI5pys5Lit5peg5rOV55u05o6l5a6e546w44CCXG4gICAqIOW7uuiuruS9v+eUqCBhdXRoLnNpZ25JbldpdGhDdXN0b21UaWNrZXQoKCkgPT4gUHJvbWlzZS5yZXNvbHZlKHRpY2tldCkpIOabv+S7o+OAglxuICAgKi9cbiAgVXNlckNsYXNzLnByb3RvdHlwZS5saW5rV2l0aFRpY2tldCA9IGFzeW5jIGZ1bmN0aW9uIChfdGlja2V0OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1t2MSDlhbzlrrldIFVzZXIubGlua1dpdGhUaWNrZXQoKSDlnKjlvZPliY3niYjmnKzkuK3ml6Dms5Xlrp7njrDjgIInXG4gICAgICArICcg5bu66K6u5L2/55SoIGF1dGguc2lnbkluV2l0aEN1c3RvbVRpY2tldCgoKSA9PiBQcm9taXNlLnJlc29sdmUodGlja2V0KSkg5pu/5Luj44CCJywpXG4gIH1cblxuICAvKipcbiAgICogdjEgQVBJOiDlsIblvZPliY3otKbmiLfkuI7nrKzkuInmlrnpibTmnYPmj5DkvpvmlrnvvIjku6Xph43lrprlkJHlvaLlvI/vvInov5vooYznu5HlrppcbiAgICogQGRlcHJlY2F0ZWQg5bu66K6u5L2/55SoIGF1dGgubGlua0lkZW50aXR5KHsgcHJvdmlkZXI6ICdwcm92aWRlcklkJyB9KSDmm7/ku6PjgIJcbiAgICovXG4gIFVzZXJDbGFzcy5wcm90b3R5cGUubGlua1dpdGhSZWRpcmVjdCA9IGZ1bmN0aW9uIChfcHJvdmlkZXI6IGFueSk6IHZvaWQge1xuICAgIHRocm93IG5ldyBFcnJvcignW3YxIOWFvOWuuV0gVXNlci5saW5rV2l0aFJlZGlyZWN0KCkg5Zyo5b2T5YmN54mI5pys5Lit5peg5rOV5a6e546w44CCJ1xuICAgICAgKyAnIOW7uuiuruS9v+eUqCBhdXRoLmxpbmtJZGVudGl0eSh7IHByb3ZpZGVyOiBcXCdwcm92aWRlcklkXFwnIH0pIOabv+S7o+OAgicsKVxuICB9XG5cbiAgLyoqXG4gICAqIHYxIEFQSTog5pu05paw5b2T5YmN55qE55m75b2V6YKu566xXG4gICAqIEBkZXByZWNhdGVkIOW7uuiuruS9v+eUqCBhdXRoLnVwZGF0ZVVzZXIoeyBlbWFpbDogbmV3RW1haWwgfSkg5pu/5Luj44CCXG4gICAqL1xuICBVc2VyQ2xhc3MucHJvdG90eXBlLnVwZGF0ZUVtYWlsID0gYXN5bmMgZnVuY3Rpb24gKG5ld0VtYWlsOiBzdHJpbmcsIF9wYXNzd29yZD86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0eXBlb2YgbmV3RW1haWwgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvd0Vycm9yKEVSUk9SUy5JTlZBTElEX1BBUkFNUywgJ25ld0VtYWlsIG11c3QgYmUgYSBzdHJpbmcnKVxuICAgIH1cblxuICAgIC8vIOS9v+eUqCBVc2VyIOW3suacieeahCB1cGRhdGVVc2VyQmFzaWNJbmZvIOaWueazlVxuICAgIGF3YWl0IHRoaXMudXBkYXRlVXNlckJhc2ljSW5mbyh7XG4gICAgICBlbWFpbDogbmV3RW1haWwsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiB2MSBBUEk6IOe7keWumuaJi+acuuWPt1xuICAgKiBAZGVwcmVjYXRlZCB2MSDlhbzlrrkgQVBJ77yM5b2T5YmN54mI5pys5Lit5peg5rOV55u05o6l5ZyoIFVzZXIg5LiK5a6e546w44CCXG4gICAqIOW7uuiuruS9v+eUqCBhdXRoLmJpbmRQaG9uZU51bWJlcih7IHBob25lX251bWJlciwgdmVyaWZpY2F0aW9uX3Rva2VuLCBzdWRvX3Rva2VuIH0pIOabv+S7o+OAglxuICAgKi9cbiAgVXNlckNsYXNzLnByb3RvdHlwZS5saW5rV2l0aFBob25lTnVtYmVyID0gYXN5bmMgZnVuY3Rpb24gKF9waG9uZU51bWJlcjogc3RyaW5nLCBfcGhvbmVDb2RlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1t2MSDlhbzlrrldIFVzZXIubGlua1dpdGhQaG9uZU51bWJlcigpIOWcqOW9k+WJjeeJiOacrOS4reaXoOazleWunueOsOOAgidcbiAgICAgICsgJyDlu7rorq7kvb/nlKggYXV0aC5iaW5kUGhvbmVOdW1iZXIoeyBwaG9uZV9udW1iZXIsIHZlcmlmaWNhdGlvbl90b2tlbiwgc3Vkb190b2tlbiB9KSDmm7/ku6PjgIInLClcbiAgfVxuXG4gIC8qKlxuICAgKiB2MSBBUEk6IOabtOaWsOaJi+acuuWPt1xuICAgKiBAZGVwcmVjYXRlZCB2MSDlhbzlrrkgQVBJ77yM5b2T5YmN54mI5pys5Lit5peg5rOV55u05o6l5ZyoIFVzZXIg5LiK5a6e546w44CCXG4gICAqIOW7uuiuruS9v+eUqCBhdXRoLnVwZGF0ZVVzZXIoeyBwaG9uZTogbmV3UGhvbmVOdW1iZXIgfSkg5pu/5Luj44CCXG4gICAqL1xuICBVc2VyQ2xhc3MucHJvdG90eXBlLnVwZGF0ZVBob25lTnVtYmVyID0gYXN5bmMgZnVuY3Rpb24gKF9waG9uZU51bWJlcjogc3RyaW5nLCBfcGhvbmVDb2RlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1t2MSDlhbzlrrldIFVzZXIudXBkYXRlUGhvbmVOdW1iZXIoKSDlnKjlvZPliY3niYjmnKzkuK3ml6Dms5Xlrp7njrDjgIInXG4gICAgICArICcg5bu66K6u5L2/55SoIGF1dGgudXBkYXRlVXNlcih7IHBob25lOiBuZXdQaG9uZU51bWJlciB9KSDmm7/ku6PjgIInLClcbiAgfVxuXG4gIC8qKlxuICAgKiB2MSBBUEk6IOino+e7keafkOS4queZu+W9leaWueW8j1xuICAgKiBAZGVwcmVjYXRlZCB2MSDlhbzlrrkgQVBJ77yM5b2T5YmN54mI5pys5Lit5peg5rOV55u05o6l5ZyoIFVzZXIg5LiK5a6e546w44CCXG4gICAqIOW7uuiuruS9v+eUqCBhdXRoLnVubGlua0lkZW50aXR5KHsgcHJvdmlkZXI6IGxvZ2luVHlwZSB9KSDmm7/ku6PjgIJcbiAgICovXG4gIFVzZXJDbGFzcy5wcm90b3R5cGUudW5saW5rID0gYXN5bmMgZnVuY3Rpb24gKF9sb2dpblR5cGU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRocm93IG5ldyBFcnJvcignW3YxIOWFvOWuuV0gVXNlci51bmxpbmsoKSDlnKjlvZPliY3niYjmnKzkuK3ml6Dms5Xlrp7njrDjgIInXG4gICAgICArICcg5bu66K6u5L2/55SoIGF1dGgudW5saW5rSWRlbnRpdHkoeyBwcm92aWRlcjogbG9naW5UeXBlIH0pIOabv+S7o+OAgicsKVxuICB9XG59XG4iXX0=
@@ -45,6 +45,7 @@ export declare class User implements IUser {
45
45
  locale?: string;
46
46
  sub?: string;
47
47
  createdFrom?: string;
48
+ open_id?: string;
48
49
  private cache;
49
50
  private oauthInstance;
50
51
  constructor(options: IUserOptions);