Socket
Socket
Sign inDemoInstall

@glimmer/manager

Package Overview
Dependencies
Maintainers
12
Versions
73
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@glimmer/manager - npm Package Compare versions

Comparing version 0.76.0 to 0.77.0

29

dist/commonjs/es2017/lib/public/helper.js

@@ -11,2 +11,4 @@ "use strict";

var _destroyable = require("@glimmer/destroyable");
var _env = require("@glimmer/env");

@@ -97,14 +99,21 @@

getHelper(definition) {
return (vmArgs, vm) => {
let owner = vm.getOwner();
let manager = this.getDelegateForOwner(owner);
const args = (0, _argsProxy.argsProxyFor)(vmArgs.capture(), 'helper');
return (capturedArgs, owner) => {
var _a, _b;
let manager = this.getDelegateFor(owner);
const args = (0, _argsProxy.argsProxyFor)(capturedArgs, 'helper');
const bucket = manager.createHelper(definition, args);
if (hasDestroyable(manager)) {
vm.associateDestroyable(manager.getDestroyable(bucket));
}
if (hasValue(manager)) {
let cache = (0, _reference.createComputeRef)(() => manager.getValue(bucket), null, _env.DEBUG && manager.getDebugName && manager.getDebugName(definition));
if (hasValue(manager)) {
return (0, _reference.createComputeRef)(() => manager.getValue(bucket), null, _env.DEBUG && manager.getDebugName && manager.getDebugName(definition));
if (hasDestroyable(manager)) {
(0, _destroyable.associateDestroyableChild)(cache, manager.getDestroyable(bucket));
}
return cache;
} else if (hasDestroyable(manager)) {
let ref = (0, _reference.createConstRef)(undefined, _env.DEBUG && ((_b = (_a = manager.getDebugName) === null || _a === void 0 ? void 0 : _a.call(manager, definition)) !== null && _b !== void 0 ? _b : 'unknown helper'));
(0, _destroyable.associateDestroyableChild)(ref, manager.getDestroyable(bucket));
return ref;
} else {

@@ -119,2 +128,2 @@ return _reference.UNDEFINED_REFERENCE;

exports.CustomHelperManager = CustomHelperManager;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL3B1YmxpYy9oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBOztBQVlBOztBQUVBOztBQUNBOztBQUdNLFNBQUEsa0JBQUEsQ0FBQSxVQUFBLEVBRUosT0FBQSxHQUZJLEVBQUEsRUFFcUM7QUFFekMsTUFBSSxjQUFTLFVBQVUsS0FBdkIsTUFBQSxFQUFvQztBQUNsQyxVQUFNLElBQUEsS0FBQSxDQUFOLGdEQUFNLENBQU47QUFDRDs7QUFFRCxNQUNFLGVBQ0MsRUFBRSxPQUFPLENBQVAsUUFBQSxJQUFvQixPQUFPLENBQTdCLGtCQUFBLEtBQ0UsT0FBTyxDQUFQLFFBQUEsSUFBb0IsT0FBTyxDQUhoQyxrQkFDRSxDQURGLEVBSUU7QUFDQSxVQUFNLElBQUEsS0FBQSxDQUFOLHdKQUFNLENBQU47QUFHRDs7QUFFRCxNQUFJLGNBQVMsT0FBTyxDQUFwQixrQkFBQSxFQUF5QztBQUN2QyxVQUFNLElBQUEsS0FBQSxDQUFOLHNIQUFNLENBQU47QUFHRDs7QUFFRCxTQUFPLHFDQUFrQjtBQUN2QixJQUFBLFFBQVEsRUFBRSxPQUFPLENBQUMsT0FBTyxDQURGLFFBQ04sQ0FETTtBQUV2QixJQUFBLGNBQWMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUZSLGNBRUEsQ0FGQTtBQUd2QixJQUFBLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQVIsa0JBQUE7QUFISixHQUFsQixDQUFQO0VBT0Y7OztBQUVNLFNBQUEsUUFBQSxDQUFBLE9BQUEsRUFDMkI7QUFFL0IsU0FBTyxPQUFPLENBQVAsWUFBQSxDQUFQLFFBQUE7QUFDRDs7QUFFSyxTQUFBLGNBQUEsQ0FBQSxPQUFBLEVBQzJCO0FBRS9CLFNBQU8sT0FBTyxDQUFQLFlBQUEsQ0FBUCxjQUFBO0VBR0Y7OztBQUVNLE1BQUEsbUJBQUEsQ0FBMEI7QUFDOUIsRUFBQSxXQUFBLENBQUEsT0FBQSxFQUFrRjtBQUE5RCxTQUFBLE9BQUEsR0FBQSxPQUFBO0FBRVosU0FBQSxzQkFBQSxHQUF5QixJQUF6QixPQUF5QixFQUF6QjtBQUNBLFNBQUEsaUJBQUEsR0FBQSxJQUFBO0FBSDhFOztBQUs5RSxFQUFBLG1CQUFtQixDQUFBLEtBQUEsRUFBUztBQUNsQyxRQUFJLFFBQVEsR0FBRyxLQUFBLHNCQUFBLENBQUEsR0FBQSxDQUFmLEtBQWUsQ0FBZjs7QUFFQSxRQUFJLFFBQVEsS0FBWixTQUFBLEVBQTRCO0FBQzFCLFVBQUk7QUFBRSxRQUFBO0FBQUYsVUFBSixJQUFBO0FBQ0EsTUFBQSxRQUFRLEdBQUcsT0FBTyxDQUFsQixLQUFrQixDQUFsQjs7QUFFQSxVQUFJLGNBQVMsQ0FBQyxnQ0FBQSxHQUFBLENBQXVCLFFBQVEsQ0FBN0MsWUFBYyxDQUFkLEVBQTZEO0FBQzNEO0FBQ0EsY0FBTSxJQUFBLEtBQUEsQ0FDSix5TUFBeU0sSUFBSSxDQUFKLFNBQUEsQ0FDdk0sUUFBUSxDQUQrTCxZQUFBLENBRXhNLGFBQWEsUUFIaEIsSUFBTSxDQUFOO0FBS0Q7O0FBRUQsV0FBQSxzQkFBQSxDQUFBLEdBQUEsQ0FBQSxLQUFBLEVBQUEsUUFBQTtBQUNEOztBQUVELFdBQUEsUUFBQTtBQUNEOztBQUVELEVBQUEsY0FBYyxDQUFBLEtBQUEsRUFBcUI7QUFDakMsUUFBSSxLQUFLLEtBQVQsU0FBQSxFQUF5QjtBQUN2QixVQUFJO0FBQUUsUUFBQTtBQUFGLFVBQUosSUFBQTs7QUFFQSxVQUFJLGlCQUFpQixLQUFyQixJQUFBLEVBQWdDO0FBQzlCLFlBQUk7QUFBRSxVQUFBO0FBQUYsWUFBSixJQUFBO0FBQ0EsYUFBQSxpQkFBQSxHQUF5QixpQkFBaUIsR0FBRyxPQUFPLENBQXBELFNBQW9ELENBQXBEO0FBQ0Q7O0FBRUQsYUFBQSxpQkFBQTtBQVJGLEtBQUEsTUFTTztBQUNMLGFBQU8sS0FBQSxtQkFBQSxDQUFQLEtBQU8sQ0FBUDtBQUNEO0FBQ0Y7O0FBRUQsRUFBQSxTQUFTLENBQUEsVUFBQSxFQUFrQztBQUN6QyxXQUFPLENBQUEsTUFBQSxFQUFBLEVBQUEsS0FBZTtBQUNwQixVQUFJLEtBQUssR0FBRyxFQUFFLENBQWQsUUFBWSxFQUFaO0FBRUEsVUFBSSxPQUFPLEdBQUcsS0FBQSxtQkFBQSxDQUFkLEtBQWMsQ0FBZDtBQUVBLFlBQU0sSUFBSSxHQUFHLDZCQUFhLE1BQU0sQ0FBUCxPQUFDLEVBQWIsRUFBYixRQUFhLENBQWI7QUFDQSxZQUFNLE1BQU0sR0FBRyxPQUFPLENBQVAsWUFBQSxDQUFBLFVBQUEsRUFBZixJQUFlLENBQWY7O0FBRUEsVUFBSSxjQUFjLENBQWxCLE9BQWtCLENBQWxCLEVBQTZCO0FBQzNCLFFBQUEsRUFBRSxDQUFGLG9CQUFBLENBQXdCLE9BQU8sQ0FBUCxjQUFBLENBQXhCLE1BQXdCLENBQXhCO0FBQ0Q7O0FBRUQsVUFBSSxRQUFRLENBQVosT0FBWSxDQUFaLEVBQXVCO0FBQ3JCLGVBQU8saUNBQ0wsTUFBTyxPQUEyQyxDQUEzQyxRQUFBLENBRGMsTUFDZCxDQURGLEVBQWdCLElBQWhCLEVBR0wsY0FBUyxPQUFPLENBQWhCLFlBQUEsSUFBaUMsT0FBTyxDQUFQLFlBQUEsQ0FIbkMsVUFHbUMsQ0FINUIsQ0FBUDtBQURGLE9BQUEsTUFNTztBQUNMLGVBQUEsOEJBQUE7QUFDRDtBQXBCSCxLQUFBO0FBc0JEOztBQWxFNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5pbXBvcnQge1xuICBIZWxwZXIsXG4gIEhlbHBlckNhcGFiaWxpdGllcyxcbiAgSGVscGVyQ2FwYWJpbGl0aWVzVmVyc2lvbnMsXG4gIEhlbHBlckRlZmluaXRpb25TdGF0ZSxcbiAgSGVscGVyTWFuYWdlcixcbiAgSGVscGVyTWFuYWdlcldpdGhEZXN0cm95YWJsZSxcbiAgSGVscGVyTWFuYWdlcldpdGhWYWx1ZSxcbiAgSW50ZXJuYWxIZWxwZXJNYW5hZ2VyLFxuICBPd25lcixcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjcmVhdGVDb21wdXRlUmVmLCBVTkRFRklORURfUkVGRVJFTkNFIH0gZnJvbSAnQGdsaW1tZXIvcmVmZXJlbmNlJztcblxuaW1wb3J0IHsgYnVpbGRDYXBhYmlsaXRpZXMsIEZST01fQ0FQQUJJTElUSUVTIH0gZnJvbSAnLi4vdXRpbC9jYXBhYmlsaXRpZXMnO1xuaW1wb3J0IHsgYXJnc1Byb3h5Rm9yIH0gZnJvbSAnLi4vdXRpbC9hcmdzLXByb3h5JztcbmltcG9ydCB7IE1hbmFnZXJGYWN0b3J5IH0gZnJvbSAnLi9pbmRleCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBoZWxwZXJDYXBhYmlsaXRpZXM8VmVyc2lvbiBleHRlbmRzIGtleW9mIEhlbHBlckNhcGFiaWxpdGllc1ZlcnNpb25zPihcbiAgbWFuYWdlckFQSTogVmVyc2lvbixcbiAgb3B0aW9uczogUGFydGlhbDxIZWxwZXJDYXBhYmlsaXRpZXM+ID0ge31cbik6IEhlbHBlckNhcGFiaWxpdGllcyB7XG4gIGlmIChERUJVRyAmJiBtYW5hZ2VyQVBJICE9PSAnMy4yMycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgaGVscGVyIG1hbmFnZXIgY29tcGF0aWJpbGl0eSBzcGVjaWZpZWQnKTtcbiAgfVxuXG4gIGlmIChcbiAgICBERUJVRyAmJlxuICAgICghKG9wdGlvbnMuaGFzVmFsdWUgfHwgb3B0aW9ucy5oYXNTY2hlZHVsZWRFZmZlY3QpIHx8XG4gICAgICAob3B0aW9ucy5oYXNWYWx1ZSAmJiBvcHRpb25zLmhhc1NjaGVkdWxlZEVmZmVjdCkpXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdZb3UgbXVzdCBwYXNzIGVpdGhlciB0aGUgYGhhc1ZhbHVlYCBPUiB0aGUgYGhhc1NjaGVkdWxlZEVmZmVjdGAgY2FwYWJpbGl0eSB3aGVuIGRlZmluaW5nIGEgaGVscGVyIG1hbmFnZXIuIFBhc3NpbmcgbmVpdGhlciwgb3IgYm90aCwgaXMgbm90IHBlcm1pdHRlZC4nXG4gICAgKTtcbiAgfVxuXG4gIGlmIChERUJVRyAmJiBvcHRpb25zLmhhc1NjaGVkdWxlZEVmZmVjdCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdUaGUgYGhhc1NjaGVkdWxlZEVmZmVjdGAgY2FwYWJpbGl0eSBoYXMgbm90IHlldCBiZWVuIGltcGxlbWVudGVkIGZvciBoZWxwZXIgbWFuYWdlcnMuIFBsZWFzZSBwYXNzIGBoYXNWYWx1ZWAgaW5zdGVhZCdcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGJ1aWxkQ2FwYWJpbGl0aWVzKHtcbiAgICBoYXNWYWx1ZTogQm9vbGVhbihvcHRpb25zLmhhc1ZhbHVlKSxcbiAgICBoYXNEZXN0cm95YWJsZTogQm9vbGVhbihvcHRpb25zLmhhc0Rlc3Ryb3lhYmxlKSxcbiAgICBoYXNTY2hlZHVsZWRFZmZlY3Q6IEJvb2xlYW4ob3B0aW9ucy5oYXNTY2hlZHVsZWRFZmZlY3QpLFxuICB9KTtcbn1cblxuLy8vLy8vLy8vLy8vXG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNWYWx1ZShcbiAgbWFuYWdlcjogSGVscGVyTWFuYWdlcjx1bmtub3duPlxuKTogbWFuYWdlciBpcyBIZWxwZXJNYW5hZ2VyV2l0aFZhbHVlPHVua25vd24+IHtcbiAgcmV0dXJuIG1hbmFnZXIuY2FwYWJpbGl0aWVzLmhhc1ZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzRGVzdHJveWFibGUoXG4gIG1hbmFnZXI6IEhlbHBlck1hbmFnZXI8dW5rbm93bj5cbik6IG1hbmFnZXIgaXMgSGVscGVyTWFuYWdlcldpdGhEZXN0cm95YWJsZTx1bmtub3duPiB7XG4gIHJldHVybiBtYW5hZ2VyLmNhcGFiaWxpdGllcy5oYXNEZXN0cm95YWJsZTtcbn1cblxuLy8vLy8vLy8vLy8vXG5cbmV4cG9ydCBjbGFzcyBDdXN0b21IZWxwZXJNYW5hZ2VyPE8gZXh0ZW5kcyBPd25lciA9IE93bmVyPiBpbXBsZW1lbnRzIEludGVybmFsSGVscGVyTWFuYWdlcjxPPiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmFjdG9yeTogTWFuYWdlckZhY3Rvcnk8TyB8IHVuZGVmaW5lZCwgSGVscGVyTWFuYWdlcjx1bmtub3duPj4pIHt9XG5cbiAgcHJpdmF0ZSBoZWxwZXJNYW5hZ2VyRGVsZWdhdGVzID0gbmV3IFdlYWtNYXA8TywgSGVscGVyTWFuYWdlcjx1bmtub3duPj4oKTtcbiAgcHJpdmF0ZSB1bmRlZmluZWREZWxlZ2F0ZTogSGVscGVyTWFuYWdlcjx1bmtub3duPiB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgZ2V0RGVsZWdhdGVGb3JPd25lcihvd25lcjogTykge1xuICAgIGxldCBkZWxlZ2F0ZSA9IHRoaXMuaGVscGVyTWFuYWdlckRlbGVnYXRlcy5nZXQob3duZXIpO1xuXG4gICAgaWYgKGRlbGVnYXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGxldCB7IGZhY3RvcnkgfSA9IHRoaXM7XG4gICAgICBkZWxlZ2F0ZSA9IGZhY3Rvcnkob3duZXIpO1xuXG4gICAgICBpZiAoREVCVUcgJiYgIUZST01fQ0FQQUJJTElUSUVTIS5oYXMoZGVsZWdhdGUuY2FwYWJpbGl0aWVzKSkge1xuICAgICAgICAvLyBUT0RPOiBUaGlzIGVycm9yIG1lc3NhZ2Ugc2hvdWxkIG1ha2Ugc2Vuc2UgaW4gYm90aCBFbWJlciBhbmQgR2xpbW1lciBodHRwczovL2dpdGh1Yi5jb20vZ2xpbW1lcmpzL2dsaW1tZXItdm0vaXNzdWVzLzEyMDBcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBDdXN0b20gaGVscGVyIG1hbmFnZXJzIG11c3QgaGF2ZSBhIFxcYGNhcGFiaWxpdGllc1xcYCBwcm9wZXJ0eSB0aGF0IGlzIHRoZSByZXN1bHQgb2YgY2FsbGluZyB0aGUgXFxgY2FwYWJpbGl0aWVzKCczLjIzJylcXGAgKGltcG9ydGVkIHZpYSBcXGBpbXBvcnQgeyBjYXBhYmlsaXRpZXMgfSBmcm9tICdAZW1iZXIvaGVscGVyJztcXGApLiBSZWNlaXZlZDogXFxgJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIGRlbGVnYXRlLmNhcGFiaWxpdGllc1xuICAgICAgICAgICl9XFxgIGZvcjogXFxgJHtkZWxlZ2F0ZX1cXGBgXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuaGVscGVyTWFuYWdlckRlbGVnYXRlcy5zZXQob3duZXIsIGRlbGVnYXRlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVsZWdhdGU7XG4gIH1cblxuICBnZXREZWxlZ2F0ZUZvcihvd25lcjogTyB8IHVuZGVmaW5lZCkge1xuICAgIGlmIChvd25lciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBsZXQgeyB1bmRlZmluZWREZWxlZ2F0ZSB9ID0gdGhpcztcblxuICAgICAgaWYgKHVuZGVmaW5lZERlbGVnYXRlID09PSBudWxsKSB7XG4gICAgICAgIGxldCB7IGZhY3RvcnkgfSA9IHRoaXM7XG4gICAgICAgIHRoaXMudW5kZWZpbmVkRGVsZWdhdGUgPSB1bmRlZmluZWREZWxlZ2F0ZSA9IGZhY3RvcnkodW5kZWZpbmVkKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZERlbGVnYXRlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXREZWxlZ2F0ZUZvck93bmVyKG93bmVyKTtcbiAgICB9XG4gIH1cblxuICBnZXRIZWxwZXIoZGVmaW5pdGlvbjogSGVscGVyRGVmaW5pdGlvblN0YXRlKTogSGVscGVyIHtcbiAgICByZXR1cm4gKHZtQXJncywgdm0pID0+IHtcbiAgICAgIGxldCBvd25lciA9IHZtLmdldE93bmVyKCkgYXMgTztcblxuICAgICAgbGV0IG1hbmFnZXIgPSB0aGlzLmdldERlbGVnYXRlRm9yT3duZXIob3duZXIpO1xuXG4gICAgICBjb25zdCBhcmdzID0gYXJnc1Byb3h5Rm9yKHZtQXJncy5jYXB0dXJlKCksICdoZWxwZXInKTtcbiAgICAgIGNvbnN0IGJ1Y2tldCA9IG1hbmFnZXIuY3JlYXRlSGVscGVyKGRlZmluaXRpb24sIGFyZ3MpO1xuXG4gICAgICBpZiAoaGFzRGVzdHJveWFibGUobWFuYWdlcikpIHtcbiAgICAgICAgdm0uYXNzb2NpYXRlRGVzdHJveWFibGUobWFuYWdlci5nZXREZXN0cm95YWJsZShidWNrZXQpKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGhhc1ZhbHVlKG1hbmFnZXIpKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVDb21wdXRlUmVmKFxuICAgICAgICAgICgpID0+IChtYW5hZ2VyIGFzIEhlbHBlck1hbmFnZXJXaXRoVmFsdWU8dW5rbm93bj4pLmdldFZhbHVlKGJ1Y2tldCksXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICBERUJVRyAmJiBtYW5hZ2VyLmdldERlYnVnTmFtZSAmJiBtYW5hZ2VyLmdldERlYnVnTmFtZShkZWZpbml0aW9uKVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFVOREVGSU5FRF9SRUZFUkVOQ0U7XG4gICAgICB9XG4gICAgfTtcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL3B1YmxpYy9oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQVlBOztBQUVBOztBQUNBOztBQUdNLFNBQUEsa0JBQUEsQ0FBQSxVQUFBLEVBRUosT0FBQSxHQUZJLEVBQUEsRUFFcUM7QUFFekMsTUFBSSxjQUFTLFVBQVUsS0FBdkIsTUFBQSxFQUFvQztBQUNsQyxVQUFNLElBQUEsS0FBQSxDQUFOLGdEQUFNLENBQU47QUFDRDs7QUFFRCxNQUNFLGVBQ0MsRUFBRSxPQUFPLENBQVAsUUFBQSxJQUFvQixPQUFPLENBQTdCLGtCQUFBLEtBQ0UsT0FBTyxDQUFQLFFBQUEsSUFBb0IsT0FBTyxDQUhoQyxrQkFDRSxDQURGLEVBSUU7QUFDQSxVQUFNLElBQUEsS0FBQSxDQUFOLHdKQUFNLENBQU47QUFHRDs7QUFFRCxNQUFJLGNBQVMsT0FBTyxDQUFwQixrQkFBQSxFQUF5QztBQUN2QyxVQUFNLElBQUEsS0FBQSxDQUFOLHNIQUFNLENBQU47QUFHRDs7QUFFRCxTQUFPLHFDQUFrQjtBQUN2QixJQUFBLFFBQVEsRUFBRSxPQUFPLENBQUMsT0FBTyxDQURGLFFBQ04sQ0FETTtBQUV2QixJQUFBLGNBQWMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUZSLGNBRUEsQ0FGQTtBQUd2QixJQUFBLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQVIsa0JBQUE7QUFISixHQUFsQixDQUFQO0VBT0Y7OztBQUVNLFNBQUEsUUFBQSxDQUFBLE9BQUEsRUFDMkI7QUFFL0IsU0FBTyxPQUFPLENBQVAsWUFBQSxDQUFQLFFBQUE7QUFDRDs7QUFFSyxTQUFBLGNBQUEsQ0FBQSxPQUFBLEVBQzJCO0FBRS9CLFNBQU8sT0FBTyxDQUFQLFlBQUEsQ0FBUCxjQUFBO0VBR0Y7OztBQUVNLE1BQUEsbUJBQUEsQ0FBMEI7QUFDOUIsRUFBQSxXQUFBLENBQUEs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OEJBQUE7QUFDRDtBQTdCSCxLQUFBO0FBK0JEOztBQTNFNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhc3NvY2lhdGVEZXN0cm95YWJsZUNoaWxkIH0gZnJvbSAnQGdsaW1tZXIvZGVzdHJveWFibGUnO1xuaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuaW1wb3J0IHtcbiAgSGVscGVyLFxuICBIZWxwZXJDYXBhYmlsaXRpZXMsXG4gIEhlbHBlckNhcGFiaWxpdGllc1ZlcnNpb25zLFxuICBIZWxwZXJEZWZpbml0aW9uU3RhdGUsXG4gIEhlbHBlck1hbmFnZXIsXG4gIEhlbHBlck1hbmFnZXJXaXRoRGVzdHJveWFibGUsXG4gIEhlbHBlck1hbmFnZXJXaXRoVmFsdWUsXG4gIEludGVybmFsSGVscGVyTWFuYWdlcixcbiAgT3duZXIsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY3JlYXRlQ29tcHV0ZVJlZiwgY3JlYXRlQ29uc3RSZWYsIFVOREVGSU5FRF9SRUZFUkVOQ0UgfSBmcm9tICdAZ2xpbW1lci9yZWZlcmVuY2UnO1xuXG5pbXBvcnQgeyBidWlsZENhcGFiaWxpdGllcywgRlJPTV9DQVBBQklMSVRJRVMgfSBmcm9tICcuLi91dGlsL2NhcGFiaWxpdGllcyc7XG5pbXBvcnQgeyBhcmdzUHJveHlGb3IgfSBmcm9tICcuLi91dGlsL2FyZ3MtcHJveHknO1xuaW1wb3J0IHsgTWFuYWdlckZhY3RvcnkgfSBmcm9tICcuL2luZGV4JztcblxuZXhwb3J0IGZ1bmN0aW9uIGhlbHBlckNhcGFiaWxpdGllczxWZXJzaW9uIGV4dGVuZHMga2V5b2YgSGVscGVyQ2FwYWJpbGl0aWVzVmVyc2lvbnM+KFxuICBtYW5hZ2VyQVBJOiBWZXJzaW9uLFxuICBvcHRpb25zOiBQYXJ0aWFsPEhlbHBlckNhcGFiaWxpdGllcz4gPSB7fVxuKTogSGVscGVyQ2FwYWJpbGl0aWVzIHtcbiAgaWYgKERFQlVHICYmIG1hbmFnZXJBUEkgIT09ICczLjIzJykge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBoZWxwZXIgbWFuYWdlciBjb21wYXRpYmlsaXR5IHNwZWNpZmllZCcpO1xuICB9XG5cbiAgaWYgKFxuICAgIERFQlVHICYmXG4gICAgKCEob3B0aW9ucy5oYXNWYWx1ZSB8fCBvcHRpb25zLmhhc1NjaGVkdWxlZEVmZmVjdCkgfHxcbiAgICAgIChvcHRpb25zLmhhc1ZhbHVlICYmIG9wdGlvbnMuaGFzU2NoZWR1bGVkRWZmZWN0KSlcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ1lvdSBtdXN0IHBhc3MgZWl0aGVyIHRoZSBgaGFzVmFsdWVgIE9SIHRoZSBgaGFzU2NoZWR1bGVkRWZmZWN0YCBjYXBhYmlsaXR5IHdoZW4gZGVmaW5pbmcgYSBoZWxwZXIgbWFuYWdlci4gUGFzc2luZyBuZWl0aGVyLCBvciBib3RoLCBpcyBub3QgcGVybWl0dGVkLidcbiAgICApO1xuICB9XG5cbiAgaWYgKERFQlVHICYmIG9wdGlvbnMuaGFzU2NoZWR1bGVkRWZmZWN0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ1RoZSBgaGFzU2NoZWR1bGVkRWZmZWN0YCBjYXBhYmlsaXR5IGhhcyBub3QgeWV0IGJlZW4gaW1wbGVtZW50ZWQgZm9yIGhlbHBlciBtYW5hZ2Vycy4gUGxlYXNlIHBhc3MgYGhhc1ZhbHVlYCBpbnN0ZWFkJ1xuICAgICk7XG4gIH1cblxuICByZXR1cm4gYnVpbGRDYXBhYmlsaXRpZXMoe1xuICAgIGhhc1ZhbHVlOiBCb29sZWFuKG9wdGlvbnMuaGFzVmFsdWUpLFxuICAgIGhhc0Rlc3Ryb3lhYmxlOiBCb29sZWFuKG9wdGlvbnMuaGFzRGVzdHJveWFibGUpLFxuICAgIGhhc1NjaGVkdWxlZEVmZmVjdDogQm9vbGVhbihvcHRpb25zLmhhc1NjaGVkdWxlZEVmZmVjdCksXG4gIH0pO1xufVxuXG4vLy8vLy8vLy8vLy9cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc1ZhbHVlKFxuICBtYW5hZ2VyOiBIZWxwZXJNYW5hZ2VyPHVua25vd24+XG4pOiBtYW5hZ2VyIGlzIEhlbHBlck1hbmFnZXJXaXRoVmFsdWU8dW5rbm93bj4ge1xuICByZXR1cm4gbWFuYWdlci5jYXBhYmlsaXRpZXMuaGFzVmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNEZXN0cm95YWJsZShcbiAgbWFuYWdlcjogSGVscGVyTWFuYWdlcjx1bmtub3duPlxuKTogbWFuYWdlciBpcyBIZWxwZXJNYW5hZ2VyV2l0aERlc3Ryb3lhYmxlPHVua25vd24+IHtcbiAgcmV0dXJuIG1hbmFnZXIuY2FwYWJpbGl0aWVzLmhhc0Rlc3Ryb3lhYmxlO1xufVxuXG4vLy8vLy8vLy8vLy9cblxuZXhwb3J0IGNsYXNzIEN1c3RvbUhlbHBlck1hbmFnZXI8TyBleHRlbmRzIE93bmVyID0gT3duZXI+IGltcGxlbWVudHMgSW50ZXJuYWxIZWxwZXJNYW5hZ2VyPE8+IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYWN0b3J5OiBNYW5hZ2VyRmFjdG9yeTxPIHwgdW5kZWZpbmVkLCBIZWxwZXJNYW5hZ2VyPHVua25vd24+Pikge31cblxuICBwcml2YXRlIGhlbHBlck1hbmFnZXJEZWxlZ2F0ZXMgPSBuZXcgV2Vha01hcDxPLCBIZWxwZXJNYW5hZ2VyPHVua25vd24+PigpO1xuICBwcml2YXRlIHVuZGVmaW5lZERlbGVnYXRlOiBIZWxwZXJNYW5hZ2VyPHVua25vd24+IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBnZXREZWxlZ2F0ZUZvck93bmVyKG93bmVyOiBPKSB7XG4gICAgbGV0IGRlbGVnYXRlID0gdGhpcy5oZWxwZXJNYW5hZ2VyRGVsZWdhdGVzLmdldChvd25lcik7XG5cbiAgICBpZiAoZGVsZWdhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgbGV0IHsgZmFjdG9yeSB9ID0gdGhpcztcbiAgICAgIGRlbGVnYXRlID0gZmFjdG9yeShvd25lcik7XG5cbiAgICAgIGlmIChERUJVRyAmJiAhRlJPTV9DQVBBQklMSVRJRVMhLmhhcyhkZWxlZ2F0ZS5jYXBhYmlsaXRpZXMpKSB7XG4gICAgICAgIC8vIFRPRE86IFRoaXMgZXJyb3IgbWVzc2FnZSBzaG91bGQgbWFrZSBzZW5zZSBpbiBib3RoIEVtYmVyIGFuZCBHbGltbWVyIGh0dHBzOi8vZ2l0aHViLmNvbS9nbGltbWVyanMvZ2xpbW1lci12bS9pc3N1ZXMvMTIwMFxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEN1c3RvbSBoZWxwZXIgbWFuYWdlcnMgbXVzdCBoYXZlIGEgXFxgY2FwYWJpbGl0aWVzXFxgIHByb3BlcnR5IHRoYXQgaXMgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBcXGBjYXBhYmlsaXRpZXMoJzMuMjMnKVxcYCAoaW1wb3J0ZWQgdmlhIFxcYGltcG9ydCB7IGNhcGFiaWxpdGllcyB9IGZyb20gJ0BlbWJlci9oZWxwZXInO1xcYCkuIFJlY2VpdmVkOiBcXGAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAgZGVsZWdhdGUuY2FwYWJpbGl0aWVzXG4gICAgICAgICAgKX1cXGAgZm9yOiBcXGAke2RlbGVnYXRlfVxcYGBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5oZWxwZXJNYW5hZ2VyRGVsZWdhdGVzLnNldChvd25lciwgZGVsZWdhdGUpO1xuICAgIH1cblxuICAgIHJldHVybiBkZWxlZ2F0ZTtcbiAgfVxuXG4gIGdldERlbGVnYXRlRm9yKG93bmVyOiBPIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKG93bmVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGxldCB7IHVuZGVmaW5lZERlbGVnYXRlIH0gPSB0aGlzO1xuXG4gICAgICBpZiAodW5kZWZpbmVkRGVsZWdhdGUgPT09IG51bGwpIHtcbiAgICAgICAgbGV0IHsgZmFjdG9yeSB9ID0gdGhpcztcbiAgICAgICAgdGhpcy51bmRlZmluZWREZWxlZ2F0ZSA9IHVuZGVmaW5lZERlbGVnYXRlID0gZmFjdG9yeSh1bmRlZmluZWQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkRGVsZWdhdGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmdldERlbGVnYXRlRm9yT3duZXIob3duZXIpO1xuICAgIH1cbiAgfVxuXG4gIGdldEhlbHBlcihkZWZpbml0aW9uOiBIZWxwZXJEZWZpbml0aW9uU3RhdGUpOiBIZWxwZXIge1xuICAgIHJldHVybiAoY2FwdHVyZWRBcmdzLCBvd25lcikgPT4ge1xuICAgICAgbGV0IG1hbmFnZXIgPSB0aGlzLmdldERlbGVnYXRlRm9yKG93bmVyIGFzIE8gfCB1bmRlZmluZWQpO1xuXG4gICAgICBjb25zdCBhcmdzID0gYXJnc1Byb3h5Rm9yKGNhcHR1cmVkQXJncywgJ2hlbHBlcicpO1xuICAgICAgY29uc3QgYnVja2V0ID0gbWFuYWdlci5jcmVhdGVIZWxwZXIoZGVmaW5pdGlvbiwgYXJncyk7XG5cbiAgICAgIGlmIChoYXNWYWx1ZShtYW5hZ2VyKSkge1xuICAgICAgICBsZXQgY2FjaGUgPSBjcmVhdGVDb21wdXRlUmVmKFxuICAgICAgICAgICgpID0+IChtYW5hZ2VyIGFzIEhlbHBlck1hbmFnZXJXaXRoVmFsdWU8dW5rbm93bj4pLmdldFZhbHVlKGJ1Y2tldCksXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICBERUJVRyAmJiBtYW5hZ2VyLmdldERlYnVnTmFtZSAmJiBtYW5hZ2VyLmdldERlYnVnTmFtZShkZWZpbml0aW9uKVxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChoYXNEZXN0cm95YWJsZShtYW5hZ2VyKSkge1xuICAgICAgICAgIGFzc29jaWF0ZURlc3Ryb3lhYmxlQ2hpbGQoY2FjaGUsIG1hbmFnZXIuZ2V0RGVzdHJveWFibGUoYnVja2V0KSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2FjaGU7XG4gICAgICB9IGVsc2UgaWYgKGhhc0Rlc3Ryb3lhYmxlKG1hbmFnZXIpKSB7XG4gICAgICAgIGxldCByZWYgPSBjcmVhdGVDb25zdFJlZihcbiAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgREVCVUcgJiYgKG1hbmFnZXIuZ2V0RGVidWdOYW1lPy4oZGVmaW5pdGlvbikgPz8gJ3Vua25vd24gaGVscGVyJylcbiAgICAgICAgKTtcblxuICAgICAgICBhc3NvY2lhdGVEZXN0cm95YWJsZUNoaWxkKHJlZiwgbWFuYWdlci5nZXREZXN0cm95YWJsZShidWNrZXQpKTtcblxuICAgICAgICByZXR1cm4gcmVmO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFVOREVGSU5FRF9SRUZFUkVOQ0U7XG4gICAgICB9XG4gICAgfTtcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==

@@ -94,5 +94,4 @@ "use strict";

create(owner, element, definition, vmArgs) {
create(owner, element, definition, capturedArgs) {
let delegate = this.getDelegateFor(owner);
let capturedArgs = vmArgs.capture();
let {

@@ -111,3 +110,3 @@ useArgsProxy,

create(args) {
let params = Object.assign({}, args);
let params = (0, _util.assign)({}, args);
(0, _owner.setOwner)(params, owner);

@@ -231,2 +230,2 @@ return definition.create(args);

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL3B1YmxpYy9tb2RpZmllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFXQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFPQTs7QUFDQTs7QUFHTSxTQUFBLG9CQUFBLENBQUEsVUFBQSxFQUVKLGdCQUFBLEdBRkksRUFBQSxFQUV3RDtBQUU1RCxNQUFJLGNBQVMsVUFBVSxLQUFuQixNQUFBLElBQWtDLFVBQVUsS0FBaEQsTUFBQSxFQUE2RDtBQUMzRCxVQUFNLElBQUEsS0FBQSxDQUFOLGtEQUFNLENBQU47QUFDRDs7QUFFRCxTQUFPLHFDQUFrQjtBQUN2QixJQUFBLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FEdEIsbUJBQ0ssQ0FETDtBQUV2QixJQUFBLFlBQVksRUFBRSxVQUFVLEtBQVYsTUFBQSxHQUFBLEtBQUEsR0FGUyxJQUFBO0FBSXZCO0FBQ0E7QUFDQSxJQUFBLG1CQUFtQixFQUFFLFVBQVUsS0FBSztBQU5iLEdBQWxCLENBQVA7QUFRRDtBQWVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXdCTSxNQUFBLHFCQUFBLENBQTRCO0FBSWhDLEVBQUEsV0FBQSxDQUFBLE9BQUEsRUFBaUY7QUFBN0QsU0FBQSxPQUFBLEdBQUEsT0FBQTtBQUZaLFNBQUEseUJBQUEsR0FBNEIsSUFBNUIsT0FBNEIsRUFBNUI7QUFFNkU7O0FBRTdFLEVBQUEsY0FBYyxDQUFBLEtBQUEsRUFBUztBQUM3QixRQUFJO0FBQUUsTUFBQTtBQUFGLFFBQUosSUFBQTtBQUNBLFFBQUksUUFBUSxHQUFHLHlCQUF5QixDQUF6QixHQUFBLENBQWYsS0FBZSxDQUFmOztBQUVBLFFBQUksUUFBUSxLQUFaLFNBQUEsRUFBNEI7QUFDMUIsVUFBSTtBQUFFLFFBQUE7QUFBRixVQUFKLElBQUE7QUFDQSxNQUFBLFFBQVEsR0FBRyxPQUFPLENBQWxCLEtB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Q0FBVixHQUFBLENBQXhCLHNCQUF3QixDQUF4QjtBQUVBLFNBQU87QUFDTCxJQUFBLEtBQUssRUFEQSxZQUFBO0FBRUwsSUFBQSxVQUFVLEVBQUU7QUFGUCxHQUFQO0FBSUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5pbXBvcnQge1xuICBBcmd1bWVudHMsXG4gIENhcHR1cmVkQXJndW1lbnRzLFxuICBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcixcbiAgTW9kaWZpZXJDYXBhYmlsaXRpZXMsXG4gIE1vZGlmaWVyQ2FwYWJpbGl0aWVzVmVyc2lvbnMsXG4gIE1vZGlmaWVyTWFuYWdlcixcbiAgT3duZXIsXG4gIFZNQXJndW1lbnRzLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IHJlZ2lzdGVyRGVzdHJ1Y3RvciB9IGZyb20gJ0BnbGltbWVyL2Rlc3Ryb3lhYmxlJztcbmltcG9ydCB7IHNldE93bmVyIH0gZnJvbSAnQGdsaW1tZXIvb3duZXInO1xuaW1wb3J0IHsgdmFsdWVGb3JSZWYgfSBmcm9tICdAZ2xpbW1lci9yZWZlcmVuY2UnO1xuaW1wb3J0IHsgZGljdCB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuaW1wb3J0IHtcbiAgY3JlYXRlVXBkYXRhYmxlVGFnLFxuICBkZXByZWNhdGVNdXRhdGlvbnNJblRyYWNraW5nVHJhbnNhY3Rpb24sXG4gIHVudHJhY2ssXG4gIFVwZGF0YWJsZVRhZyxcbn0gZnJvbSAnQGdsaW1tZXIvdmFsaWRhdG9yJztcbmltcG9ydCB7IFNpbXBsZUVsZW1lbnQgfSBmcm9tICdAc2ltcGxlLWRvbS9pbnRlcmZhY2UnO1xuaW1wb3J0IHsgYnVpbGRDYXBhYmlsaXRpZXMsIEZST01fQ0FQQUJJTElUSUVTIH0gZnJvbSAnLi4vdXRpbC9jYXBhYmlsaXRpZXMnO1xuaW1wb3J0IHsgYXJnc1Byb3h5Rm9yIH0gZnJvbSAnLi4vdXRpbC9hcmdzLXByb3h5JztcbmltcG9ydCB7IE1hbmFnZXJGYWN0b3J5IH0gZnJvbSAnLic7XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2RpZmllckNhcGFiaWxpdGllczxWZXJzaW9uIGV4dGVuZHMga2V5b2YgTW9kaWZpZXJDYXBhYmlsaXRpZXNWZXJzaW9ucz4oXG4gIG1hbmFnZXJBUEk6IFZlcnNpb24sXG4gIG9wdGlvbmFsRmVhdHVyZXM6IE1vZGlmaWVyQ2FwYWJpbGl0aWVzVmVyc2lvbnNbVmVyc2lvbl0gPSB7fVxuKTogTW9kaWZpZXJDYXBhYmlsaXRpZXMge1xuICBpZiAoREVCVUcgJiYgbWFuYWdlckFQSSAhPT0gJzMuMTMnICYmIG1hbmFnZXJBUEkgIT09ICczLjIyJykge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBtb2RpZmllciBtYW5hZ2VyIGNvbXBhdGliaWxpdHkgc3BlY2lmaWVkJyk7XG4gIH1cblxuICByZXR1cm4gYnVpbGRDYXBhYmlsaXRpZXMoe1xuICAgIGRpc2FibGVBdXRvVHJhY2tpbmc6IEJvb2xlYW4ob3B0aW9uYWxGZWF0dXJlcy5kaXNhYmxlQXV0b1RyYWNraW5nKSxcbiAgICB1c2VBcmdzUHJveHk6IG1hbmFnZXJBUEkgPT09ICczLjEzJyA/IGZhbHNlIDogdHJ1ZSxcblxuICAgIC8vIFRoaXMgY2FwYWJpbGl0eSBpcyB1c2VkIGluIEVtYmVyLCBleGNsdXNpdmVseSBpbiByZXNvbHV0aW9uIG1vZGUuIFNlZSB0aGVcbiAgICAvLyBFbWJlciBnbGltbWVyIHJlc29sdmVyIGZvciBkZXRhaWxzLlxuICAgIHBhc3NGYWN0b3J5VG9DcmVhdGU6IG1hbmFnZXJBUEkgPT09ICczLjEzJyxcbiAgfSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tTW9kaWZpZXJTdGF0ZTxNb2RpZmllckluc3RhbmNlPiB7XG4gIHRhZzogVXBkYXRhYmxlVGFnO1xuICBlbGVtZW50OiBTaW1wbGVFbGVtZW50O1xuICBtb2RpZmllcjogTW9kaWZpZXJJbnN0YW5jZTtcbiAgZGVsZWdhdGU6IE1vZGlmaWVyTWFuYWdlcjxNb2RpZmllckluc3RhbmNlPjtcbiAgYXJnczogQXJndW1lbnRzO1xuICBkZWJ1Z05hbWU/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBGYWN0b3J5IHtcbiAgY3JlYXRlKHBhcmFtczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBvYmplY3Q7XG59XG5cbi8qKlxuICBUaGUgQ3VzdG9tTW9kaWZpZXJNYW5hZ2VyIGFsbG93cyBhZGRvbnMgdG8gcHJvdmlkZSBjdXN0b20gbW9kaWZpZXJcbiAgaW1wbGVtZW50YXRpb25zIHRoYXQgaW50ZWdyYXRlIHNlYW1sZXNzbHkgaW50byBFbWJlci4gVGhpcyBpcyBhY2NvbXBsaXNoZWRcbiAgdGhyb3VnaCBhIGRlbGVnYXRlLCByZWdpc3RlcmVkIHdpdGggdGhlIGN1c3RvbSBtb2RpZmllciBtYW5hZ2VyLCB3aGljaFxuICBpbXBsZW1lbnRzIGEgc2V0IG9mIGhvb2tzIHRoYXQgZGV0ZXJtaW5lIG1vZGlmaWVyIGJlaGF2aW9yLlxuICBUbyBjcmVhdGUgYSBjdXN0b20gbW9kaWZpZXIgbWFuYWdlciwgaW5zdGFudGlhdGUgYSBuZXcgQ3VzdG9tTW9kaWZpZXJNYW5hZ2VyXG4gIGNsYXNzIGFuZCBwYXNzIHRoZSBkZWxlZ2F0ZSBhcyB0aGUgZmlyc3QgYXJndW1lbnQ6XG5cbiAgYGBganNcbiAgbGV0IG1hbmFnZXIgPSBuZXcgQ3VzdG9tTW9kaWZpZXJNYW5hZ2VyKHtcbiAgICAvLyAuLi5kZWxlZ2F0ZSBpbXBsZW1lbnRhdGlvbi4uLlxuICB9KTtcbiAgYGBgXG5cbiAgIyMgRGVsZWdhdGUgSG9va3NcblxuICBUaHJvdWdob3V0IHRoZSBsaWZlY3ljbGUgb2YgYSBtb2RpZmllciwgdGhlIG1vZGlmaWVyIG1hbmFnZXIgd2lsbCBpbnZva2VcbiAgZGVsZWdhdGUgaG9va3MgdGhhdCBhcmUgcmVzcG9uc2libGUgZm9yIHN1cmZhY2luZyB0aG9zZSBsaWZlY3ljbGUgY2hhbmdlcyB0b1xuICB0aGUgZW5kIGRldmVsb3Blci5cbiAgKiBgY3JlYXRlTW9kaWZpZXIoKWAgLSBpbnZva2VkIHdoZW4gYSBuZXcgaW5zdGFuY2Ugb2YgYSBtb2RpZmllciBzaG91bGQgYmUgY3JlYXRlZFxuICAqIGBpbnN0YWxsTW9kaWZpZXIoKWAgLSBpbnZva2VkIHdoZW4gdGhlIG1vZGlmaWVyIGlzIGluc3RhbGxlZCBvbiB0aGUgZWxlbWVudFxuICAqIGB1cGRhdGVNb2RpZmllcigpYCAtIGludm9rZWQgd2hlbiB0aGUgYXJndW1lbnRzIHBhc3NlZCB0byBhIG1vZGlmaWVyIGNoYW5nZVxuICAqIGBkZXN0cm95TW9kaWZpZXIoKWAgLSBpbnZva2VkIHdoZW4gdGhlIG1vZGlmaWVyIGlzIGFib3V0IHRvIGJlIGRlc3Ryb3llZFxuKi9cbmV4cG9ydCBjbGFzcyBDdXN0b21Nb2RpZmllck1hbmFnZXI8TyBleHRlbmRzIE93bmVyLCBNb2RpZmllckluc3RhbmNlPlxuICBpbXBsZW1lbnRzIEludGVybmFsTW9kaWZpZXJNYW5hZ2VyPEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT4+IHtcbiAgcHJpdmF0ZSBjb21wb25lbnRNYW5hZ2VyRGVsZWdhdGVzID0gbmV3IFdlYWtNYXA8TywgTW9kaWZpZXJNYW5hZ2VyPE1vZGlmaWVySW5zdGFuY2U+PigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmFjdG9yeTogTWFuYWdlckZhY3Rvcnk8TywgTW9kaWZpZXJNYW5hZ2VyPE1vZGlmaWVySW5zdGFuY2U+Pikge31cblxuICBwcml2YXRlIGdldERlbGVnYXRlRm9yKG93bmVyOiBPKSB7XG4gICAgbGV0IHsgY29tcG9uZW50TWFuYWdlckRlbGVnYXRlcyB9ID0gdGhpcztcbiAgICBsZXQgZGVsZWdhdGUgPSBjb21wb25lbnRNYW5hZ2VyRGVsZWdhdGVzLmdldChvd25lcik7XG5cbiAgICBpZiAoZGVsZWdhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgbGV0IHsgZmFjdG9yeSB9ID0gdGhpcztcbiAgICAgIGRlbGVnYXRlID0gZmFjdG9yeShvd25lcik7XG5cbiAgICAgIGlmIChERUJVRyAmJiAhRlJPTV9DQVBBQklMSVRJRVMhLmhhcyhkZWxlZ2F0ZS5jYXBhYmlsaXRpZXMpKSB7XG4gICAgICAgIC8vIFRPRE86IFRoaXMgZXJyb3IgbWVzc2FnZSBzaG91bGQgbWFrZSBzZW5zZSBpbiBib3RoIEVtYmVyIGFuZCBHbGltbWVyIGh0dHBzOi8vZ2l0aHViLmNvbS9nbGltbWVyanMvZ2xpbW1lci12bS9pc3N1ZXMvMTIwMFxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEN1c3RvbSBtb2RpZmllciBtYW5hZ2VycyBtdXN0IGhhdmUgYSBcXGBjYXBhYmlsaXRpZXNcXGAgcHJvcGVydHkgdGhhdCBpcyB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgdGhlIFxcYGNhcGFiaWxpdGllcygnMy4xMycgfCAnMy4yMicpXFxgIChpbXBvcnRlZCB2aWEgXFxgaW1wb3J0IHsgY2FwYWJpbGl0aWVzIH0gZnJvbSAnQGVtYmVyL21vZGlmaWVyJztcXGApLiBSZWNlaXZlZDogXFxgJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIGRlbGVnYXRlLmNhcGFiaWxpdGllc1xuICAgICAgICAgICl9XFxgIGZvcjogXFxgJHtkZWxlZ2F0ZX1cXGBgXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGNvbXBvbmVudE1hbmFnZXJEZWxlZ2F0ZXMuc2V0KG93bmVyLCBkZWxlZ2F0ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlbGVnYXRlO1xuICB9XG5cbiAgY3JlYXRlKG93bmVyOiBPLCBlbGVtZW50OiBTaW1wbGVFbGVtZW50LCBkZWZpbml0aW9uOiBvYmplY3QsIHZtQXJnczogVk1Bcmd1bWVudHMpIHtcbiAgICBsZXQgZGVsZWdhdGUgPSB0aGlzLmdldERlbGVnYXRlRm9yKG93bmVyKTtcbiAgICBsZXQgY2FwdHVyZWRBcmdzID0gdm1BcmdzLmNhcHR1cmUoKTtcblxuICAgIGxldCB7IHVzZUFyZ3NQcm94eSwgcGFzc0ZhY3RvcnlUb0NyZWF0ZSB9ID0gZGVsZWdhdGUuY2FwYWJpbGl0aWVzO1xuXG4gICAgbGV0IGFyZ3MgPSB1c2VBcmdzUHJveHkgPyBhcmdzUHJveHlGb3IoY2FwdHVyZWRBcmdzLCAnbW9kaWZpZXInKSA6IHJlaWZ5QXJncyhjYXB0dXJlZEFyZ3MpO1xuXG4gICAgbGV0IGluc3RhbmNlOiBNb2RpZmllckluc3RhbmNlO1xuXG4gICAgbGV0IGZhY3RvcnlPckRlZmluaXRpb24gPSBkZWZpbml0aW9uO1xuXG4gICAgaWYgKHBhc3NGYWN0b3J5VG9DcmVhdGUpIHtcbiAgICAgIC8vIE1ha2UgYSBmYWtlIGZhY3RvcnkuIFdoaWxlIG5vdCBwZXJmZWN0LCB0aGlzIHNob3VsZCBnZW5lcmFsbHkgcHJldmVudFxuICAgICAgLy8gYnJlYWthZ2UgaW4gdXNlcnMgb2Ygb2xkZXIgbW9kaWZpZXIgY2FwYWJpbGl0aWVzLlxuICAgICAgZmFjdG9yeU9yRGVmaW5pdGlvbiA9IHtcbiAgICAgICAgY3JlYXRlKGFyZ3M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSB7XG4gICAgICAgICAgbGV0IHBhcmFtcyA9IE9iamVjdC5hc3NpZ24oe30sIGFyZ3MpO1xuICAgICAgICAgIHNldE93bmVyKHBhcmFtcywgb3duZXIpO1xuXG4gICAgICAgICAgcmV0dXJuIChkZWZpbml0aW9uIGFzIEZhY3RvcnkpLmNyZWF0ZShhcmdzKTtcbiAgICAgICAgfSxcblxuICAgICAgICBjbGFzczogZGVmaW5pdGlvbixcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKERFQlVHICYmIGRlcHJlY2F0ZU11dGF0aW9uc0luVHJhY2tpbmdUcmFuc2FjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBkZXByZWNhdGVNdXRhdGlvbnNJblRyYWNraW5nVHJhbnNhY3Rpb24oKCkgPT4ge1xuICAgICAgICBpbnN0YW5jZSA9IGRlbGVnYXRlLmNyZWF0ZU1vZGlmaWVyKGZhY3RvcnlPckRlZmluaXRpb24sIGFyZ3MpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGluc3RhbmNlID0gZGVsZWdhdGUuY3JlYXRlTW9kaWZpZXIoZmFjdG9yeU9yRGVmaW5pdGlvbiwgYXJncyk7XG4gICAgfVxuXG4gICAgbGV0IHRhZyA9IGNyZWF0ZVVwZGF0YWJsZVRhZygpO1xuICAgIGxldCBzdGF0ZTogQ3VzdG9tTW9kaWZpZXJTdGF0ZTxNb2RpZmllckluc3RhbmNlPjtcblxuICAgIGlmICh1c2VBcmdzUHJveHkpIHtcbiAgICAgIHN0YXRlID0ge1xuICAgICAgICB0YWcsXG4gICAgICAgIGVsZW1lbnQsXG4gICAgICAgIGRlbGVnYXRlLFxuICAgICAgICBhcmdzLFxuICAgICAgICBtb2RpZmllcjogaW5zdGFuY2UhLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RhdGUgPSB7XG4gICAgICAgIHRhZyxcbiAgICAgICAgZWxlbWVudCxcbiAgICAgICAgbW9kaWZpZXI6IGluc3RhbmNlISxcbiAgICAgICAgZGVsZWdhdGUsXG4gICAgICAgIGdldCBhcmdzKCkge1xuICAgICAgICAgIHJldHVybiByZWlmeUFyZ3MoY2FwdHVyZWRBcmdzKTtcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKERFQlVHKSB7XG4gICAgICBzdGF0ZS5kZWJ1Z05hbWUgPSB0eXBlb2YgZGVmaW5pdGlvbiA9PT0gJ2Z1bmN0aW9uJyA/IGRlZmluaXRpb24ubmFtZSA6IGRlZmluaXRpb24udG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICByZWdpc3RlckRlc3RydWN0b3Ioc3RhdGUsICgpID0+IGRlbGVnYXRlLmRlc3Ryb3lNb2RpZmllcihpbnN0YW5jZSwgc3RhdGUuYXJncykpO1xuXG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgZ2V0RGVidWdOYW1lKHsgZGVidWdOYW1lIH06IEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT4pIHtcbiAgICByZXR1cm4gZGVidWdOYW1lITtcbiAgfVxuXG4gIGdldFRhZyh7IHRhZyB9OiBDdXN0b21Nb2RpZmllclN0YXRlPE1vZGlmaWVySW5zdGFuY2U+KSB7XG4gICAgcmV0dXJuIHRhZztcbiAgfVxuXG4gIGluc3RhbGwoeyBlbGVtZW50LCBhcmdzLCBtb2RpZmllciwgZGVsZWdhdGUgfTogQ3VzdG9tTW9kaWZpZXJTdGF0ZTxNb2RpZmllckluc3RhbmNlPikge1xuICAgIGxldCB7IGNhcGFiaWxpdGllcyB9ID0gZGVsZWdhdGU7XG5cbiAgICBpZiAoY2FwYWJpbGl0aWVzLmRpc2FibGVBdXRvVHJhY2tpbmcgPT09IHRydWUpIHtcbiAgICAgIHVudHJhY2soKCkgPT4gZGVsZWdhdGUuaW5zdGFsbE1vZGlmaWVyKG1vZGlmaWVyLCBlbGVtZW50LCBhcmdzKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGVnYXRlLmluc3RhbGxNb2RpZmllcihtb2RpZmllciwgZWxlbWVudCwgYXJncyk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlKHsgYXJncywgbW9kaWZpZXIsIGRlbGVnYXRlIH06IEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT4pIHtcbiAgICBsZXQgeyBjYXBhYmlsaXRpZXMgfSA9IGRlbGVnYXRlO1xuXG4gICAgaWYgKGNhcGFiaWxpdGllcy5kaXNhYmxlQXV0b1RyYWNraW5nID09PSB0cnVlKSB7XG4gICAgICB1bnRyYWNrKCgpID0+IGRlbGVnYXRlLnVwZGF0ZU1vZGlmaWVyKG1vZGlmaWVyLCBhcmdzKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGVnYXRlLnVwZGF0ZU1vZGlmaWVyKG1vZGlmaWVyLCBhcmdzKTtcbiAgICB9XG4gIH1cblxuICBnZXREZXN0cm95YWJsZShzdGF0ZTogQ3VzdG9tTW9kaWZpZXJTdGF0ZTxNb2RpZmllckluc3RhbmNlPikge1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVpZnlBcmdzKHtcbiAgbmFtZWQsXG4gIHBvc2l0aW9uYWwsXG59OiBDYXB0dXJlZEFyZ3VtZW50cyk6IHsgbmFtZWQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+OyBwb3NpdGlvbmFsOiB1bmtub3duW10gfSB7XG4gIGxldCByZWlmaWVkTmFtZWQgPSBkaWN0KCk7XG5cbiAgZm9yIChsZXQga2V5IGluIG5hbWVkKSB7XG4gICAgcmVpZmllZE5hbWVkW2tleV0gPSB2YWx1ZUZvclJlZihuYW1lZFtrZXldKTtcbiAgfVxuXG4gIGxldCByZWlmaWVkUG9zaXRpb25hbCA9IHBvc2l0aW9uYWwubWFwKHZhbHVlRm9yUmVmKTtcblxuICByZXR1cm4ge1xuICAgIG5hbWVkOiByZWlmaWVkTmFtZWQsXG4gICAgcG9zaXRpb25hbDogcmVpZmllZFBvc2l0aW9uYWwsXG4gIH07XG59XG4iXSwic291cmNlUm9vdCI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL3B1YmxpYy9tb2RpZmllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFVQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFPQTs7QUFDQTs7QUFHTSxTQUFBLG9CQUFBLENBQUEsVUFBQSxFQUVKLGdCQUFBLEdBRkksRUFBQSxFQUV3RDtBQUU1RCxNQUFJLGNBQVMsVUFBVSxLQUFuQixNQUFBLElBQWtDLFVBQVUsS0FBaEQsTUFBQSxFQUE2RDtBQUMzRCxVQUFNLElBQUEsS0FBQSxDQUFOLGtEQUFNLENBQU47QUFDRDs7QUFFRCxTQUFPLHFDQUFrQjtBQUN2QixJQUFBLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FEdEIsbUJBQ0ssQ0FETDtBQUV2QixJQUFBLFlBQVksRUFBRSxVQUFVLEtBQVYsTUFBQSxHQUFBLEtBQUEsR0FGUyxJQUFBO0FBSXZCO0FBQ0E7QUFDQSxJQUFBLG1CQUFtQixFQUFFLFVBQVUsS0FBSztBQU5iLEdBQWxCLENBQVA7QUFRRDtBQWVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXdCTSxNQUFBLHFCQUFBLENBQTRCO0FBSWhDLEVBQUEsV0FBQSxDQUFBLE9BQUEsRUFBaUY7QUFBN0QsU0FBQSxPQUFBLEdBQUEsT0FBQTtBQUZaLFNBQUEseUJBQUEsR0FBNEIsSUFBNUIsT0FBNEIsRUFBNUI7QUFFNkU7O0FBRTdFLEVBQUEsY0FBYyxDQUFBLEtBQUEsRUFBUztBQUM3QixRQUFJO0FBQUUsTUFBQTtBQUFGLFFBQUosSUFBQTtBQUNBLFFBQUksUUFBUSxHQUFHLHlCQUF5QixDQUF6QixHQUFBLENBQWYsS0FBZSxDQUFmOztBQUVBLFFBQUksUUFBUSxLQUFaLFNBQUEsRUFBNEI7QUFDMUIsVUFBSTtBQUFFLFFBQUE7QUFBRixVQUFKLElBQUE7QUFDQSxNQUFBLFFBQVEsR0FBRyxPQUFPLENBQWxCLEtB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QSxZQUFBO0FBRUwsSUFBQSxVQUFVLEVBQUU7QUFGUCxHQUFQO0FBSUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5pbXBvcnQge1xuICBBcmd1bWVudHMsXG4gIENhcHR1cmVkQXJndW1lbnRzLFxuICBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcixcbiAgTW9kaWZpZXJDYXBhYmlsaXRpZXMsXG4gIE1vZGlmaWVyQ2FwYWJpbGl0aWVzVmVyc2lvbnMsXG4gIE1vZGlmaWVyTWFuYWdlcixcbiAgT3duZXIsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgcmVnaXN0ZXJEZXN0cnVjdG9yIH0gZnJvbSAnQGdsaW1tZXIvZGVzdHJveWFibGUnO1xuaW1wb3J0IHsgc2V0T3duZXIgfSBmcm9tICdAZ2xpbW1lci9vd25lcic7XG5pbXBvcnQgeyB2YWx1ZUZvclJlZiB9IGZyb20gJ0BnbGltbWVyL3JlZmVyZW5jZSc7XG5pbXBvcnQgeyBhc3NpZ24sIGNhc3RUb0Jyb3dzZXIsIGRpY3QgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7XG4gIGNyZWF0ZVVwZGF0YWJsZVRhZyxcbiAgZGVwcmVjYXRlTXV0YXRpb25zSW5UcmFja2luZ1RyYW5zYWN0aW9uLFxuICB1bnRyYWNrLFxuICBVcGRhdGFibGVUYWcsXG59IGZyb20gJ0BnbGltbWVyL3ZhbGlkYXRvcic7XG5pbXBvcnQgeyBTaW1wbGVFbGVtZW50IH0gZnJvbSAnQHNpbXBsZS1kb20vaW50ZXJmYWNlJztcbmltcG9ydCB7IGJ1aWxkQ2FwYWJpbGl0aWVzLCBGUk9NX0NBUEFCSUxJVElFUyB9IGZyb20gJy4uL3V0aWwvY2FwYWJpbGl0aWVzJztcbmltcG9ydCB7IGFyZ3NQcm94eUZvciB9IGZyb20gJy4uL3V0aWwvYXJncy1wcm94eSc7XG5pbXBvcnQgeyBNYW5hZ2VyRmFjdG9yeSB9IGZyb20gJy4nO1xuXG5leHBvcnQgZnVuY3Rpb24gbW9kaWZpZXJDYXBhYmlsaXRpZXM8VmVyc2lvbiBleHRlbmRzIGtleW9mIE1vZGlmaWVyQ2FwYWJpbGl0aWVzVmVyc2lvbnM+KFxuICBtYW5hZ2VyQVBJOiBWZXJzaW9uLFxuICBvcHRpb25hbEZlYXR1cmVzOiBNb2RpZmllckNhcGFiaWxpdGllc1ZlcnNpb25zW1ZlcnNpb25dID0ge31cbik6IE1vZGlmaWVyQ2FwYWJpbGl0aWVzIHtcbiAgaWYgKERFQlVHICYmIG1hbmFnZXJBUEkgIT09ICczLjEzJyAmJiBtYW5hZ2VyQVBJICE9PSAnMy4yMicpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgbW9kaWZpZXIgbWFuYWdlciBjb21wYXRpYmlsaXR5IHNwZWNpZmllZCcpO1xuICB9XG5cbiAgcmV0dXJuIGJ1aWxkQ2FwYWJpbGl0aWVzKHtcbiAgICBkaXNhYmxlQXV0b1RyYWNraW5nOiBCb29sZWFuKG9wdGlvbmFsRmVhdHVyZXMuZGlzYWJsZUF1dG9UcmFja2luZyksXG4gICAgdXNlQXJnc1Byb3h5OiBtYW5hZ2VyQVBJID09PSAnMy4xMycgPyBmYWxzZSA6IHRydWUsXG5cbiAgICAvLyBUaGlzIGNhcGFiaWxpdHkgaXMgdXNlZCBpbiBFbWJlciwgZXhjbHVzaXZlbHkgaW4gcmVzb2x1dGlvbiBtb2RlLiBTZWUgdGhlXG4gICAgLy8gRW1iZXIgZ2xpbW1lciByZXNvbHZlciBmb3IgZGV0YWlscy5cbiAgICBwYXNzRmFjdG9yeVRvQ3JlYXRlOiBtYW5hZ2VyQVBJID09PSAnMy4xMycsXG4gIH0pO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT4ge1xuICB0YWc6IFVwZGF0YWJsZVRhZztcbiAgZWxlbWVudDogU2ltcGxlRWxlbWVudDtcbiAgbW9kaWZpZXI6IE1vZGlmaWVySW5zdGFuY2U7XG4gIGRlbGVnYXRlOiBNb2RpZmllck1hbmFnZXI8TW9kaWZpZXJJbnN0YW5jZT47XG4gIGFyZ3M6IEFyZ3VtZW50cztcbiAgZGVidWdOYW1lPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgRmFjdG9yeSB7XG4gIGNyZWF0ZShwYXJhbXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogb2JqZWN0O1xufVxuXG4vKipcbiAgVGhlIEN1c3RvbU1vZGlmaWVyTWFuYWdlciBhbGxvd3MgYWRkb25zIHRvIHByb3ZpZGUgY3VzdG9tIG1vZGlmaWVyXG4gIGltcGxlbWVudGF0aW9ucyB0aGF0IGludGVncmF0ZSBzZWFtbGVzc2x5IGludG8gRW1iZXIuIFRoaXMgaXMgYWNjb21wbGlzaGVkXG4gIHRocm91Z2ggYSBkZWxlZ2F0ZSwgcmVnaXN0ZXJlZCB3aXRoIHRoZSBjdXN0b20gbW9kaWZpZXIgbWFuYWdlciwgd2hpY2hcbiAgaW1wbGVtZW50cyBhIHNldCBvZiBob29rcyB0aGF0IGRldGVybWluZSBtb2RpZmllciBiZWhhdmlvci5cbiAgVG8gY3JlYXRlIGEgY3VzdG9tIG1vZGlmaWVyIG1hbmFnZXIsIGluc3RhbnRpYXRlIGEgbmV3IEN1c3RvbU1vZGlmaWVyTWFuYWdlclxuICBjbGFzcyBhbmQgcGFzcyB0aGUgZGVsZWdhdGUgYXMgdGhlIGZpcnN0IGFyZ3VtZW50OlxuXG4gIGBgYGpzXG4gIGxldCBtYW5hZ2VyID0gbmV3IEN1c3RvbU1vZGlmaWVyTWFuYWdlcih7XG4gICAgLy8gLi4uZGVsZWdhdGUgaW1wbGVtZW50YXRpb24uLi5cbiAgfSk7XG4gIGBgYFxuXG4gICMjIERlbGVnYXRlIEhvb2tzXG5cbiAgVGhyb3VnaG91dCB0aGUgbGlmZWN5Y2xlIG9mIGEgbW9kaWZpZXIsIHRoZSBtb2RpZmllciBtYW5hZ2VyIHdpbGwgaW52b2tlXG4gIGRlbGVnYXRlIGhvb2tzIHRoYXQgYXJlIHJlc3BvbnNpYmxlIGZvciBzdXJmYWNpbmcgdGhvc2UgbGlmZWN5Y2xlIGNoYW5nZXMgdG9cbiAgdGhlIGVuZCBkZXZlbG9wZXIuXG4gICogYGNyZWF0ZU1vZGlmaWVyKClgIC0gaW52b2tlZCB3aGVuIGEgbmV3IGluc3RhbmNlIG9mIGEgbW9kaWZpZXIgc2hvdWxkIGJlIGNyZWF0ZWRcbiAgKiBgaW5zdGFsbE1vZGlmaWVyKClgIC0gaW52b2tlZCB3aGVuIHRoZSBtb2RpZmllciBpcyBpbnN0YWxsZWQgb24gdGhlIGVsZW1lbnRcbiAgKiBgdXBkYXRlTW9kaWZpZXIoKWAgLSBpbnZva2VkIHdoZW4gdGhlIGFyZ3VtZW50cyBwYXNzZWQgdG8gYSBtb2RpZmllciBjaGFuZ2VcbiAgKiBgZGVzdHJveU1vZGlmaWVyKClgIC0gaW52b2tlZCB3aGVuIHRoZSBtb2RpZmllciBpcyBhYm91dCB0byBiZSBkZXN0cm95ZWRcbiovXG5leHBvcnQgY2xhc3MgQ3VzdG9tTW9kaWZpZXJNYW5hZ2VyPE8gZXh0ZW5kcyBPd25lciwgTW9kaWZpZXJJbnN0YW5jZT5cbiAgaW1wbGVtZW50cyBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcjxDdXN0b21Nb2RpZmllclN0YXRlPE1vZGlmaWVySW5zdGFuY2U+PiB7XG4gIHByaXZhdGUgY29tcG9uZW50TWFuYWdlckRlbGVnYXRlcyA9IG5ldyBXZWFrTWFwPE8sIE1vZGlmaWVyTWFuYWdlcjxNb2RpZmllckluc3RhbmNlPj4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZhY3Rvcnk6IE1hbmFnZXJGYWN0b3J5PE8sIE1vZGlmaWVyTWFuYWdlcjxNb2RpZmllckluc3RhbmNlPj4pIHt9XG5cbiAgcHJpdmF0ZSBnZXREZWxlZ2F0ZUZvcihvd25lcjogTykge1xuICAgIGxldCB7IGNvbXBvbmVudE1hbmFnZXJEZWxlZ2F0ZXMgfSA9IHRoaXM7XG4gICAgbGV0IGRlbGVnYXRlID0gY29tcG9uZW50TWFuYWdlckRlbGVnYXRlcy5nZXQob3duZXIpO1xuXG4gICAgaWYgKGRlbGVnYXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGxldCB7IGZhY3RvcnkgfSA9IHRoaXM7XG4gICAgICBkZWxlZ2F0ZSA9IGZhY3Rvcnkob3duZXIpO1xuXG4gICAgICBpZiAoREVCVUcgJiYgIUZST01fQ0FQQUJJTElUSUVTIS5oYXMoZGVsZWdhdGUuY2FwYWJpbGl0aWVzKSkge1xuICAgICAgICAvLyBUT0RPOiBUaGlzIGVycm9yIG1lc3NhZ2Ugc2hvdWxkIG1ha2Ugc2Vuc2UgaW4gYm90aCBFbWJlciBhbmQgR2xpbW1lciBodHRwczovL2dpdGh1Yi5jb20vZ2xpbW1lcmpzL2dsaW1tZXItdm0vaXNzdWVzLzEyMDBcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBDdXN0b20gbW9kaWZpZXIgbWFuYWdlcnMgbXVzdCBoYXZlIGEgXFxgY2FwYWJpbGl0aWVzXFxgIHByb3BlcnR5IHRoYXQgaXMgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBcXGBjYXBhYmlsaXRpZXMoJzMuMTMnIHwgJzMuMjInKVxcYCAoaW1wb3J0ZWQgdmlhIFxcYGltcG9ydCB7IGNhcGFiaWxpdGllcyB9IGZyb20gJ0BlbWJlci9tb2RpZmllcic7XFxgKS4gUmVjZWl2ZWQ6IFxcYCR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICBkZWxlZ2F0ZS5jYXBhYmlsaXRpZXNcbiAgICAgICAgICApfVxcYCBmb3I6IFxcYCR7ZGVsZWdhdGV9XFxgYFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBjb21wb25lbnRNYW5hZ2VyRGVsZWdhdGVzLnNldChvd25lciwgZGVsZWdhdGUpO1xuICAgIH1cblxuICAgIHJldHVybiBkZWxlZ2F0ZTtcbiAgfVxuXG4gIGNyZWF0ZShvd25lcjogTywgZWxlbWVudDogU2ltcGxlRWxlbWVudCwgZGVmaW5pdGlvbjogb2JqZWN0LCBjYXB0dXJlZEFyZ3M6IENhcHR1cmVkQXJndW1lbnRzKSB7XG4gICAgbGV0IGRlbGVnYXRlID0gdGhpcy5nZXREZWxlZ2F0ZUZvcihvd25lcik7XG5cbiAgICBsZXQgeyB1c2VBcmdzUHJveHksIHBhc3NGYWN0b3J5VG9DcmVhdGUgfSA9IGRlbGVnYXRlLmNhcGFiaWxpdGllcztcblxuICAgIGxldCBhcmdzID0gdXNlQXJnc1Byb3h5ID8gYXJnc1Byb3h5Rm9yKGNhcHR1cmVkQXJncywgJ21vZGlmaWVyJykgOiByZWlmeUFyZ3MoY2FwdHVyZWRBcmdzKTtcblxuICAgIGxldCBpbnN0YW5jZTogTW9kaWZpZXJJbnN0YW5jZTtcblxuICAgIGxldCBmYWN0b3J5T3JEZWZpbml0aW9uID0gZGVmaW5pdGlvbjtcblxuICAgIGlmIChwYXNzRmFjdG9yeVRvQ3JlYXRlKSB7XG4gICAgICAvLyBNYWtlIGEgZmFrZSBmYWN0b3J5LiBXaGlsZSBub3QgcGVyZmVjdCwgdGhpcyBzaG91bGQgZ2VuZXJhbGx5IHByZXZlbnRcbiAgICAgIC8vIGJyZWFrYWdlIGluIHVzZXJzIG9mIG9sZGVyIG1vZGlmaWVyIGNhcGFiaWxpdGllcy5cbiAgICAgIGZhY3RvcnlPckRlZmluaXRpb24gPSB7XG4gICAgICAgIGNyZWF0ZShhcmdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikge1xuICAgICAgICAgIGxldCBwYXJhbXMgPSBhc3NpZ24oe30sIGFyZ3MpO1xuICAgICAgICAgIHNldE93bmVyKHBhcmFtcywgb3duZXIpO1xuXG4gICAgICAgICAgcmV0dXJuIChkZWZpbml0aW9uIGFzIEZhY3RvcnkpLmNyZWF0ZShhcmdzKTtcbiAgICAgICAgfSxcblxuICAgICAgICBjbGFzczogZGVmaW5pdGlvbixcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKERFQlVHICYmIGRlcHJlY2F0ZU11dGF0aW9uc0luVHJhY2tpbmdUcmFuc2FjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBkZXByZWNhdGVNdXRhdGlvbnNJblRyYWNraW5nVHJhbnNhY3Rpb24oKCkgPT4ge1xuICAgICAgICBpbnN0YW5jZSA9IGRlbGVnYXRlLmNyZWF0ZU1vZGlmaWVyKGZhY3RvcnlPckRlZmluaXRpb24sIGFyZ3MpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGluc3RhbmNlID0gZGVsZWdhdGUuY3JlYXRlTW9kaWZpZXIoZmFjdG9yeU9yRGVmaW5pdGlvbiwgYXJncyk7XG4gICAgfVxuXG4gICAgbGV0IHRhZyA9IGNyZWF0ZVVwZGF0YWJsZVRhZygpO1xuICAgIGxldCBzdGF0ZTogQ3VzdG9tTW9kaWZpZXJTdGF0ZTxNb2RpZmllckluc3RhbmNlPjtcblxuICAgIGlmICh1c2VBcmdzUHJveHkpIHtcbiAgICAgIHN0YXRlID0ge1xuICAgICAgICB0YWcsXG4gICAgICAgIGVsZW1lbnQsXG4gICAgICAgIGRlbGVnYXRlLFxuICAgICAgICBhcmdzLFxuICAgICAgICBtb2RpZmllcjogaW5zdGFuY2UhLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RhdGUgPSB7XG4gICAgICAgIHRhZyxcbiAgICAgICAgZWxlbWVudCxcbiAgICAgICAgbW9kaWZpZXI6IGluc3RhbmNlISxcbiAgICAgICAgZGVsZWdhdGUsXG4gICAgICAgIGdldCBhcmdzKCkge1xuICAgICAgICAgIHJldHVybiByZWlmeUFyZ3MoY2FwdHVyZWRBcmdzKTtcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKERFQlVHKSB7XG4gICAgICBzdGF0ZS5kZWJ1Z05hbWUgPSB0eXBlb2YgZGVmaW5pdGlvbiA9PT0gJ2Z1bmN0aW9uJyA/IGRlZmluaXRpb24ubmFtZSA6IGRlZmluaXRpb24udG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICByZWdpc3RlckRlc3RydWN0b3Ioc3RhdGUsICgpID0+IGRlbGVnYXRlLmRlc3Ryb3lNb2RpZmllcihpbnN0YW5jZSwgc3RhdGUuYXJncykpO1xuXG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgZ2V0RGVidWdOYW1lKHsgZGVidWdOYW1lIH06IEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT4pIHtcbiAgICByZXR1cm4gZGVidWdOYW1lITtcbiAgfVxuXG4gIGdldFRhZyh7IHRhZyB9OiBDdXN0b21Nb2RpZmllclN0YXRlPE1vZGlmaWVySW5zdGFuY2U+KSB7XG4gICAgcmV0dXJuIHRhZztcbiAgfVxuXG4gIGluc3RhbGwoeyBlbGVtZW50LCBhcmdzLCBtb2RpZmllciwgZGVsZWdhdGUgfTogQ3VzdG9tTW9kaWZpZXJTdGF0ZTxNb2RpZmllckluc3RhbmNlPikge1xuICAgIGxldCB7IGNhcGFiaWxpdGllcyB9ID0gZGVsZWdhdGU7XG5cbiAgICBpZiAoY2FwYWJpbGl0aWVzLmRpc2FibGVBdXRvVHJhY2tpbmcgPT09IHRydWUpIHtcbiAgICAgIHVudHJhY2soKCkgPT4gZGVsZWdhdGUuaW5zdGFsbE1vZGlmaWVyKG1vZGlmaWVyLCBjYXN0VG9Ccm93c2VyKGVsZW1lbnQsICdFTEVNRU5UJyksIGFyZ3MpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVsZWdhdGUuaW5zdGFsbE1vZGlmaWVyKG1vZGlmaWVyLCBjYXN0VG9Ccm93c2VyKGVsZW1lbnQsICdFTEVNRU5UJyksIGFyZ3MpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZSh7IGFyZ3MsIG1vZGlmaWVyLCBkZWxlZ2F0ZSB9OiBDdXN0b21Nb2RpZmllclN0YXRlPE1vZGlmaWVySW5zdGFuY2U+KSB7XG4gICAgbGV0IHsgY2FwYWJpbGl0aWVzIH0gPSBkZWxlZ2F0ZTtcblxuICAgIGlmIChjYXBhYmlsaXRpZXMuZGlzYWJsZUF1dG9UcmFja2luZyA9PT0gdHJ1ZSkge1xuICAgICAgdW50cmFjaygoKSA9PiBkZWxlZ2F0ZS51cGRhdGVNb2RpZmllcihtb2RpZmllciwgYXJncykpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWxlZ2F0ZS51cGRhdGVNb2RpZmllcihtb2RpZmllciwgYXJncyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0RGVzdHJveWFibGUoc3RhdGU6IEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT4pIHtcbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlaWZ5QXJncyh7XG4gIG5hbWVkLFxuICBwb3NpdGlvbmFsLFxufTogQ2FwdHVyZWRBcmd1bWVudHMpOiB7IG5hbWVkOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjsgcG9zaXRpb25hbDogdW5rbm93bltdIH0ge1xuICBsZXQgcmVpZmllZE5hbWVkID0gZGljdCgpO1xuXG4gIGZvciAobGV0IGtleSBpbiBuYW1lZCkge1xuICAgIHJlaWZpZWROYW1lZFtrZXldID0gdmFsdWVGb3JSZWYobmFtZWRba2V5XSk7XG4gIH1cblxuICBsZXQgcmVpZmllZFBvc2l0aW9uYWwgPSBwb3NpdGlvbmFsLm1hcCh2YWx1ZUZvclJlZik7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lZDogcmVpZmllZE5hbWVkLFxuICAgIHBvc2l0aW9uYWw6IHJlaWZpZWRQb3NpdGlvbmFsLFxuICB9O1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==

@@ -11,2 +11,4 @@ "use strict";

var _destroyable = require("@glimmer/destroyable");
var _env = require("@glimmer/env");

@@ -99,18 +101,24 @@

return function (vmArgs, vm) {
var owner = vm.getOwner();
return function (capturedArgs, owner) {
var _a, _b;
var manager = _this.getDelegateForOwner(owner);
var manager = _this.getDelegateFor(owner);
var args = (0, _argsProxy.argsProxyFor)(vmArgs.capture(), 'helper');
var args = (0, _argsProxy.argsProxyFor)(capturedArgs, 'helper');
var bucket = manager.createHelper(definition, args);
if (hasDestroyable(manager)) {
vm.associateDestroyable(manager.getDestroyable(bucket));
}
if (hasValue(manager)) {
return (0, _reference.createComputeRef)(function () {
var cache = (0, _reference.createComputeRef)(function () {
return manager.getValue(bucket);
}, null, _env.DEBUG && manager.getDebugName && manager.getDebugName(definition));
if (hasDestroyable(manager)) {
(0, _destroyable.associateDestroyableChild)(cache, manager.getDestroyable(bucket));
}
return cache;
} else if (hasDestroyable(manager)) {
var ref = (0, _reference.createConstRef)(undefined, _env.DEBUG && ((_b = (_a = manager.getDebugName) === null || _a === void 0 ? void 0 : _a.call(manager, definition)) !== null && _b !== void 0 ? _b : 'unknown helper'));
(0, _destroyable.associateDestroyableChild)(ref, manager.getDestroyable(bucket));
return ref;
} else {

@@ -126,2 +134,2 @@ return _reference.UNDEFINED_REFERENCE;

exports.CustomHelperManager = CustomHelperManager;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL3B1YmxpYy9oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBOztBQVlBOztBQUVBOztBQUNBOztBQUdNLFNBQUEsa0JBQUEsQ0FBQSxVQUFBLEVBQUEsT0FBQSxFQUVxQztBQUFBLE1BQXpDLE9BQXlDLEtBQUEsS0FBQSxDQUFBLEVBQUE7QUFBekMsSUFBQSxPQUF5QyxHQUZyQyxFQUVKO0FBQXlDOztBQUV6QyxNQUFJLGNBQVMsVUFBVSxLQUF2QixNQUFBLEVBQW9DO0FBQ2xDLFVBQU0sSUFBQSxLQUFBLENBQU4sZ0RBQU0sQ0FBTjtBQUNEOztBQUVELE1BQ0UsZUFDQyxFQUFFLE9BQU8sQ0FBUCxRQUFBLElBQW9CLE9BQU8sQ0FBN0Isa0JBQUEsS0FDRSxPQUFPLENBQVAsUUFBQSxJQUFvQixPQUFPLENBSGhDLGtCQUNFLENBREYsRUFJRTtBQUNBLFVBQU0sSUFBQSxLQUFBLENBQU4sd0pBQU0sQ0FBTjtBQUdEOztBQUVELE1BQUksY0FBUyxPQUFPLENBQXBCLGtCQUFBLEVBQXlDO0FBQ3ZDLFVBQU0sSUFBQSxLQUFBLENBQU4sc0hBQU0sQ0FBTjtBQUdEOztBQUVELFNBQU8scUNBQWtCO0FBQ3ZCLElBQUEsUUFBUSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBREYsUUFDTixDQURNO0FBRXZCLElBQUEsY0FBYyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBRlIsY0FFQSxDQUZBO0FBR3ZCLElBQUEsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBUixrQkFBQTtBQUhKLEdBQWxCLENBQVA7RUFPRjs7O0FBRU0sU0FBQSxRQUFBLENBQUEsT0FBQSxFQUMyQjtBQUUvQixTQUFPLE9BQU8sQ0FBUCxZQUFBLENBQVAsUUFBQTtBQUNEOztBQUVLLFNBQUEsY0FBQSxDQUFBLE9BQUEsRUFDMkI7QUFFL0IsU0FBTyxPQUFPLENBQVAsWUFBQSxDQUFQ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IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvZW52JztcbmltcG9ydCB7XG4gIEhlbHBlcixcbiAgSGVscGVyQ2FwYWJpbGl0aWVzLFxuICBIZWxwZXJDYXBhYmlsaXRpZXNWZXJzaW9ucyxcbiAgSGVscGVyRGVmaW5pdGlvblN0YXRlLFxuICBIZWxwZXJNYW5hZ2VyLFxuICBIZWxwZXJNYW5hZ2VyV2l0aERlc3Ryb3lhYmxlLFxuICBIZWxwZXJNYW5hZ2VyV2l0aFZhbHVlLFxuICBJbnRlcm5hbEhlbHBlck1hbmFnZXIsXG4gIE93bmVyLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNyZWF0ZUNvbXB1dGVSZWYsIFVOREVGSU5FRF9SRUZFUkVOQ0UgfSBmcm9tICdAZ2xpbW1lci9yZWZlcmVuY2UnO1xuXG5pbXBvcnQgeyBidWlsZENhcGFiaWxpdGllcywgRlJPTV9DQVBBQklMSVRJRVMgfSBmcm9tICcuLi91dGlsL2NhcGFiaWxpdGllcyc7XG5pbXBvcnQgeyBhcmdzUHJveHlGb3IgfSBmcm9tICcuLi91dGlsL2FyZ3MtcHJveHknO1xuaW1wb3J0IHsgTWFuYWdlckZhY3RvcnkgfSBmcm9tICcuL2luZGV4JztcblxuZXhwb3J0IGZ1bmN0aW9uIGhlbHBlckNhcGFiaWxpdGllczxWZXJzaW9uIGV4dGVuZHMga2V5b2YgSGVscGVyQ2FwYWJpbGl0aWVzVmVyc2lvbnM+KFxuICBtYW5hZ2VyQVBJOiBWZXJzaW9uLFxuICBvcHRpb25zOiBQYXJ0aWFsPEhlbHBlckNhcGFiaWxpdGllcz4gPSB7fVxuKTogSGVscGVyQ2FwYWJpbGl0aWVzIHtcbiAgaWYgKERFQlVHICYmIG1hbmFnZXJBUEkgIT09ICczLjIzJykge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBoZWxwZXIgbWFuYWdlciBjb21wYXRpYmlsaXR5IHNwZWNpZmllZCcpO1xuICB9XG5cbiAgaWYgKFxuICAgIERFQlVHICYmXG4gICAgKCEob3B0aW9ucy5oYXNWYWx1ZSB8fCBvcHRpb25zLmhhc1NjaGVkdWxlZEVmZmVjdCkgfHxcbiAgICAgIChvcHRpb25zLmhhc1ZhbHVlICYmIG9wdGlvbnMuaGFzU2NoZWR1bGVkRWZmZWN0KSlcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ1lvdSBtdXN0IHBhc3MgZWl0aGVyIHRoZSBgaGFzVmFsdWVgIE9SIHRoZSBgaGFzU2NoZWR1bGVkRWZmZWN0YCBjYXBhYmlsaXR5IHdoZW4gZGVmaW5pbmcgYSBoZWxwZXIgbWFuYWdlci4gUGFzc2luZyBuZWl0aGVyLCBvciBib3RoLCBpcyBub3QgcGVybWl0dGVkLidcbiAgICApO1xuICB9XG5cbiAgaWYgKERFQlVHICYmIG9wdGlvbnMuaGFzU2NoZWR1bGVkRWZmZWN0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ1RoZSBgaGFzU2NoZWR1bGVkRWZmZWN0YCBjYXBhYmlsaXR5IGhhcyBub3QgeWV0IGJlZW4gaW1wbGVtZW50ZWQgZm9yIGhlbHBlciBtYW5hZ2Vycy4gUGxlYXNlIHBhc3MgYGhhc1ZhbHVlYCBpbnN0ZWFkJ1xuICAgICk7XG4gIH1cblxuICByZXR1cm4gYnVpbGRDYXBhYmlsaXRpZXMoe1xuICAgIGhhc1ZhbHVlOiBCb29sZWFuKG9wdGlvbnMuaGFzVmFsdWUpLFxuICAgIGhhc0Rlc3Ryb3lhYmxlOiBCb29sZWFuKG9wdGlvbnMuaGFzRGVzdHJveWFibGUpLFxuICAgIGhhc1NjaGVkdWxlZEVmZmVjdDogQm9vbGVhbihvcHRpb25zLmhhc1NjaGVkdWxlZEVmZmVjdCksXG4gIH0pO1xufVxuXG4vLy8vLy8vLy8vLy9cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc1ZhbHVlKFxuICBtYW5hZ2VyOiBIZWxwZXJNYW5hZ2VyPHVua25vd24+XG4pOiBtYW5hZ2VyIGlzIEhlbHBlck1hbmFnZXJXaXRoVmFsdWU8dW5rbm93bj4ge1xuICByZXR1cm4gbWFuYWdlci5jYXBhYmlsaXRpZXMuaGFzVmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNEZXN0cm95YWJsZShcbiAgbWFuYWdlcjogSGVscGVyTWFuYWdlcjx1bmtub3duPlxuKTogbWFuYWdlciBpcyBIZWxwZXJNYW5hZ2VyV2l0aERlc3Ryb3lhYmxlPHVua25vd24+IHtcbiAgcmV0dXJuIG1hbmFnZXIuY2FwYWJpbGl0aWVzLmhhc0Rlc3Ryb3lhYmxlO1xufVxuXG4vLy8vLy8vLy8vLy9cblxuZXhwb3J0IGNsYXNzIEN1c3RvbUhlbHBlck1hbmFnZXI8TyBleHRlbmRzIE93bmVyID0gT3duZXI+IGltcGxlbWVudHMgSW50ZXJuYWxIZWxwZXJNYW5hZ2VyPE8+IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYWN0b3J5OiBNYW5hZ2VyRmFjdG9yeTxPIHwgdW5kZWZpbmVkLCBIZWxwZXJNYW5hZ2VyPHVua25vd24+Pikge31cblxuICBwcml2YXRlIGhlbHBlck1hbmFnZXJEZWxlZ2F0ZXMgPSBuZXcgV2Vha01hcDxPLCBIZWxwZXJNYW5hZ2VyPHVua25vd24+PigpO1xuICBwcml2YXRlIHVuZGVmaW5lZERlbGVnYXRlOiBIZWxwZXJNYW5hZ2VyPHVua25vd24+IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBnZXREZWxlZ2F0ZUZvck93bmVyKG93bmVyOiBPKSB7XG4gICAgbGV0IGRlbGVnYXRlID0gdGhpcy5oZWxwZXJNYW5hZ2VyRGVsZWdhdGVzLmdldChvd25lcik7XG5cbiAgICBpZiAoZGVsZWdhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgbGV0IHsgZmFjdG9yeSB9ID0gdGhpcztcbiAgICAgIGRlbGVnYXRlID0gZmFjdG9yeShvd25lcik7XG5cbiAgICAgIGlmIChERUJVRyAmJiAhRlJPTV9DQVBBQklMSVRJRVMhLmhhcyhkZWxlZ2F0ZS5jYXBhYmlsaXRpZXMpKSB7XG4gICAgICAgIC8vIFRPRE86IFRoaXMgZXJyb3IgbWVzc2FnZSBzaG91bGQgbWFrZSBzZW5zZSBpbiBib3RoIEVtYmVyIGFuZCBHbGltbWVyIGh0dHBzOi8vZ2l0aHViLmNvbS9nbGltbWVyanMvZ2xpbW1lci12bS9pc3N1ZXMvMTIwMFxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEN1c3RvbSBoZWxwZXIgbWFuYWdlcnMgbXVzdCBoYXZlIGEgXFxgY2FwYWJpbGl0aWVzXFxgIHByb3BlcnR5IHRoYXQgaXMgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBcXGBjYXBhYmlsaXRpZXMoJzMuMjMnKVxcYCAoaW1wb3J0ZWQgdmlhIFxcYGltcG9ydCB7IGNhcGFiaWxpdGllcyB9IGZyb20gJ0BlbWJlci9oZWxwZXInO1xcYCkuIFJlY2VpdmVkOiBcXGAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAgZGVsZWdhdGUuY2FwYWJpbGl0aWVzXG4gICAgICAgICAgKX1cXGAgZm9yOiBcXGAke2RlbGVnYXRlfVxcYGBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5oZWxwZXJNYW5hZ2VyRGVsZWdhdGVzLnNldChvd25lciwgZGVsZWdhdGUpO1xuICAgIH1cblxuICAgIHJldHVybiBkZWxlZ2F0ZTtcbiAgfVxuXG4gIGdldERlbGVnYXRlRm9yKG93bmVyOiBPIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKG93bmVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGxldCB7IHVuZGVmaW5lZERlbGVnYXRlIH0gPSB0aGlzO1xuXG4gICAgICBpZiAodW5kZWZpbmVkRGVsZWdhdGUgPT09IG51bGwpIHtcbiAgICAgICAgbGV0IHsgZmFjdG9yeSB9ID0gdGhpcztcbiAgICAgICAgdGhpcy51bmRlZmluZWREZWxlZ2F0ZSA9IHVuZGVmaW5lZERlbGVnYXRlID0gZmFjdG9yeSh1bmRlZmluZWQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkRGVsZWdhdGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmdldERlbGVnYXRlRm9yT3duZXIob3duZXIpO1xuICAgIH1cbiAgfVxuXG4gIGdldEhlbHBlcihkZWZpbml0aW9uOiBIZWxwZXJEZWZpbml0aW9uU3RhdGUpOiBIZWxwZXIge1xuICAgIHJldHVybiAodm1BcmdzLCB2bSkgPT4ge1xuICAgICAgbGV0IG93bmVyID0gdm0uZ2V0T3duZXIoKSBhcyBPO1xuXG4gICAgICBsZXQgbWFuYWdlciA9IHRoaXMuZ2V0RGVsZWdhdGVGb3JPd25lcihvd25lcik7XG5cbiAgICAgIGNvbnN0IGFyZ3MgPSBhcmdzUHJveHlGb3Iodm1BcmdzLmNhcHR1cmUoKSwgJ2hlbHBlcicpO1xuICAgICAgY29uc3QgYnVja2V0ID0gbWFuYWdlci5jcmVhdGVIZWxwZXIoZGVmaW5pdGlvbiwgYXJncyk7XG5cbiAgICAgIGlmIChoYXNEZXN0cm95YWJsZShtYW5hZ2VyKSkge1xuICAgICAgICB2bS5hc3NvY2lhdGVEZXN0cm95YWJsZShtYW5hZ2VyLmdldERlc3Ryb3lhYmxlKGJ1Y2tldCkpO1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzVmFsdWUobWFuYWdlcikpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUNvbXB1dGVSZWYoXG4gICAgICAgICAgKCkgPT4gKG1hbmFnZXIgYXMgSGVscGVyTWFuYWdlcldpdGhWYWx1ZTx1bmtub3duPikuZ2V0VmFsdWUoYnVja2V0KSxcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIERFQlVHICYmIG1hbmFnZXIuZ2V0RGVidWdOYW1lICYmIG1hbmFnZXIuZ2V0RGVidWdOYW1lKGRlZmluaXRpb24pXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gVU5ERUZJTkVEX1JFRkVSRU5DRTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL3B1YmxpYy9oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQVlBOztBQUVBOztBQUNBOztBQUdNLFNBQUEsa0JBQUEsQ0FBQSxVQUFBLEVBQUEsT0FBQSxFQUVxQztBQUFBLE1BQXpDLE9BQXlDLEtBQUEsS0FBQSxDQUFBLEVBQUE7QUFBekMsSUFBQSxPQUF5QyxHQUZyQyxFQUVKO0FBQXlDOztBQUV6QyxNQUFJLGNBQVMsVUFBVSxLQUF2QixNQUFBLEVBQW9DO0FBQ2xDLFVBQU0sSUFBQSxLQUFBLENBQU4sZ0RBQU0sQ0FBTjtBQUNEOztBQUVELE1BQ0UsZUFDQyxFQUFFLE9BQU8sQ0FBUCxRQUFBLElBQW9CLE9BQU8sQ0FBN0Isa0JBQUEsS0FDRSxPQUFPLENBQVAsUUFBQSxJQUFvQixPQUFPLENBSGhDLGtCQUNFLENBREYsRUFJRTtBQUNBLFVBQU0sSUFBQSxLQUFBLENBQU4sd0pBQU0sQ0FBTjtBQUdEOztBQUVELE1BQUksY0FBUyxPQUFPLENBQXBCLGtCQUFBLEVBQXlDO0FBQ3ZDLFVBQU0sSUFBQSxLQUFBLENBQU4sc0hBQU0sQ0FBTjtBQUdEOztBQUVELFNBQU8scUNBQWtCO0FBQ3ZCLElBQUEsUUFBUSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBREYsUUFDTixDQURNO0FBRXZCLElBQUEsY0FBYyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBRlIsY0FFQSxDQUZBO0FBR3ZCLElBQUEsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBUixrQkFBQTtBQUhKLEdBQWxCLENBQVA7RUFPRjs7O0FBRU0sU0FBQSxRQUFBLENBQUEsT0FBQSxFQUMyQjtBQUUvQixTQUFPLE9BQU8sQ0FBUCxZQUFBLENBQVAsUUFBQTtBQUNEOztBQUVLLFNBQUEsY0FBQSxDQUFBLE9BQUEsRUFDMkI7QUFFL0IsU0FBTyxPQUFPLENBQVAsWUFB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SUFBcUIsRUFBQSxLQUFBLEtBQXJCLENBQUEsR0FBcUIsS0FBckIsQ0FBQSxHQUFxQixFQUFBLENBQUEsSUFBQSxDQUFwQixPQUFvQixFQUFyQixVQUFxQixDQUFyQixNQUFBLElBQUEsSUFBa0MsRUFBQSxLQUFBLEtBQWxDLENBQUEsR0FBQSxFQUFBLEdBRlgsZ0JBRUUsQ0FGUSxDQUFWO0FBS0Esb0RBQXlCLEdBQXpCLEVBQStCLE9BQU8sQ0FBUCxjQUFBLENBQS9CLE1BQStCLENBQS9CO0FBRUEsZUFBQSxHQUFBO0FBUkssT0FBQSxNQVNBO0FBQ0wsZUFBQSw4QkFBQTtBQUNEO0FBN0JILEtBQUE7QUE1Q0osR0FBQTs7QUFBQSxTQUFBLG1CQUFBO0FBQUEsQ0FBQSxFQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXNzb2NpYXRlRGVzdHJveWFibGVDaGlsZCB9IGZyb20gJ0BnbGltbWVyL2Rlc3Ryb3lhYmxlJztcbmltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvZW52JztcbmltcG9ydCB7XG4gIEhlbHBlcixcbiAgSGVscGVyQ2FwYWJpbGl0aWVzLFxuICBIZWxwZXJDYXBhYmlsaXRpZXNWZXJzaW9ucyxcbiAgSGVscGVyRGVmaW5pdGlvblN0YXRlLFxuICBIZWxwZXJNYW5hZ2VyLFxuICBIZWxwZXJNYW5hZ2VyV2l0aERlc3Ryb3lhYmxlLFxuICBIZWxwZXJNYW5hZ2VyV2l0aFZhbHVlLFxuICBJbnRlcm5hbEhlbHBlck1hbmFnZXIsXG4gIE93bmVyLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNyZWF0ZUNvbXB1dGVSZWYsIGNyZWF0ZUNvbnN0UmVmLCBVTkRFRklORURfUkVGRVJFTkNFIH0gZnJvbSAnQGdsaW1tZXIvcmVmZXJlbmNlJztcblxuaW1wb3J0IHsgYnVpbGRDYXBhYmlsaXRpZXMsIEZST01fQ0FQQUJJTElUSUVTIH0gZnJvbSAnLi4vdXRpbC9jYXBhYmlsaXRpZXMnO1xuaW1wb3J0IHsgYXJnc1Byb3h5Rm9yIH0gZnJvbSAnLi4vdXRpbC9hcmdzLXByb3h5JztcbmltcG9ydCB7IE1hbmFnZXJGYWN0b3J5IH0gZnJvbSAnLi9pbmRleCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBoZWxwZXJDYXBhYmlsaXRpZXM8VmVyc2lvbiBleHRlbmRzIGtleW9mIEhlbHBlckNhcGFiaWxpdGllc1ZlcnNpb25zPihcbiAgbWFuYWdlckFQSTogVmVyc2lvbixcbiAgb3B0aW9uczogUGFydGlhbDxIZWxwZXJDYXBhYmlsaXRpZXM+ID0ge31cbik6IEhlbHBlckNhcGFiaWxpdGllcyB7XG4gIGlmIChERUJVRyAmJiBtYW5hZ2VyQVBJICE9PSAnMy4yMycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgaGVscGVyIG1hbmFnZXIgY29tcGF0aWJpbGl0eSBzcGVjaWZpZWQnKTtcbiAgfVxuXG4gIGlmIChcbiAgICBERUJVRyAmJlxuICAgICghKG9wdGlvbnMuaGFzVmFsdWUgfHwgb3B0aW9ucy5oYXNTY2hlZHVsZWRFZmZlY3QpIHx8XG4gICAgICAob3B0aW9ucy5oYXNWYWx1ZSAmJiBvcHRpb25zLmhhc1NjaGVkdWxlZEVmZmVjdCkpXG4gICkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdZb3UgbXVzdCBwYXNzIGVpdGhlciB0aGUgYGhhc1ZhbHVlYCBPUiB0aGUgYGhhc1NjaGVkdWxlZEVmZmVjdGAgY2FwYWJpbGl0eSB3aGVuIGRlZmluaW5nIGEgaGVscGVyIG1hbmFnZXIuIFBhc3NpbmcgbmVpdGhlciwgb3IgYm90aCwgaXMgbm90IHBlcm1pdHRlZC4nXG4gICAgKTtcbiAgfVxuXG4gIGlmIChERUJVRyAmJiBvcHRpb25zLmhhc1NjaGVkdWxlZEVmZmVjdCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdUaGUgYGhhc1NjaGVkdWxlZEVmZmVjdGAgY2FwYWJpbGl0eSBoYXMgbm90IHlldCBiZWVuIGltcGxlbWVudGVkIGZvciBoZWxwZXIgbWFuYWdlcnMuIFBsZWFzZSBwYXNzIGBoYXNWYWx1ZWAgaW5zdGVhZCdcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGJ1aWxkQ2FwYWJpbGl0aWVzKHtcbiAgICBoYXNWYWx1ZTogQm9vbGVhbihvcHRpb25zLmhhc1ZhbHVlKSxcbiAgICBoYXNEZXN0cm95YWJsZTogQm9vbGVhbihvcHRpb25zLmhhc0Rlc3Ryb3lhYmxlKSxcbiAgICBoYXNTY2hlZHVsZWRFZmZlY3Q6IEJvb2xlYW4ob3B0aW9ucy5oYXNTY2hlZHVsZWRFZmZlY3QpLFxuICB9KTtcbn1cblxuLy8vLy8vLy8vLy8vXG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNWYWx1ZShcbiAgbWFuYWdlcjogSGVscGVyTWFuYWdlcjx1bmtub3duPlxuKTogbWFuYWdlciBpcyBIZWxwZXJNYW5hZ2VyV2l0aFZhbHVlPHVua25vd24+IHtcbiAgcmV0dXJuIG1hbmFnZXIuY2FwYWJpbGl0aWVzLmhhc1ZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzRGVzdHJveWFibGUoXG4gIG1hbmFnZXI6IEhlbHBlck1hbmFnZXI8dW5rbm93bj5cbik6IG1hbmFnZXIgaXMgSGVscGVyTWFuYWdlcldpdGhEZXN0cm95YWJsZTx1bmtub3duPiB7XG4gIHJldHVybiBtYW5hZ2VyLmNhcGFiaWxpdGllcy5oYXNEZXN0cm95YWJsZTtcbn1cblxuLy8vLy8vLy8vLy8vXG5cbmV4cG9ydCBjbGFzcyBDdXN0b21IZWxwZXJNYW5hZ2VyPE8gZXh0ZW5kcyBPd25lciA9IE93bmVyPiBpbXBsZW1lbnRzIEludGVybmFsSGVscGVyTWFuYWdlcjxPPiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmFjdG9yeTogTWFuYWdlckZhY3Rvcnk8TyB8IHVuZGVmaW5lZCwgSGVscGVyTWFuYWdlcjx1bmtub3duPj4pIHt9XG5cbiAgcHJpdmF0ZSBoZWxwZXJNYW5hZ2VyRGVsZWdhdGVzID0gbmV3IFdlYWtNYXA8TywgSGVscGVyTWFuYWdlcjx1bmtub3duPj4oKTtcbiAgcHJpdmF0ZSB1bmRlZmluZWREZWxlZ2F0ZTogSGVscGVyTWFuYWdlcjx1bmtub3duPiB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgZ2V0RGVsZWdhdGVGb3JPd25lcihvd25lcjogTykge1xuICAgIGxldCBkZWxlZ2F0ZSA9IHRoaXMuaGVscGVyTWFuYWdlckRlbGVnYXRlcy5nZXQob3duZXIpO1xuXG4gICAgaWYgKGRlbGVnYXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGxldCB7IGZhY3RvcnkgfSA9IHRoaXM7XG4gICAgICBkZWxlZ2F0ZSA9IGZhY3Rvcnkob3duZXIpO1xuXG4gICAgICBpZiAoREVCVUcgJiYgIUZST01fQ0FQQUJJTElUSUVTIS5oYXMoZGVsZWdhdGUuY2FwYWJpbGl0aWVzKSkge1xuICAgICAgICAvLyBUT0RPOiBUaGlzIGVycm9yIG1lc3NhZ2Ugc2hvdWxkIG1ha2Ugc2Vuc2UgaW4gYm90aCBFbWJlciBhbmQgR2xpbW1lciBodHRwczovL2dpdGh1Yi5jb20vZ2xpbW1lcmpzL2dsaW1tZXItdm0vaXNzdWVzLzEyMDBcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBDdXN0b20gaGVscGVyIG1hbmFnZXJzIG11c3QgaGF2ZSBhIFxcYGNhcGFiaWxpdGllc1xcYCBwcm9wZXJ0eSB0aGF0IGlzIHRoZSByZXN1bHQgb2YgY2FsbGluZyB0aGUgXFxgY2FwYWJpbGl0aWVzKCczLjIzJylcXGAgKGltcG9ydGVkIHZpYSBcXGBpbXBvcnQgeyBjYXBhYmlsaXRpZXMgfSBmcm9tICdAZW1iZXIvaGVscGVyJztcXGApLiBSZWNlaXZlZDogXFxgJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIGRlbGVnYXRlLmNhcGFiaWxpdGllc1xuICAgICAgICAgICl9XFxgIGZvcjogXFxgJHtkZWxlZ2F0ZX1cXGBgXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuaGVscGVyTWFuYWdlckRlbGVnYXRlcy5zZXQob3duZXIsIGRlbGVnYXRlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVsZWdhdGU7XG4gIH1cblxuICBnZXREZWxlZ2F0ZUZvcihvd25lcjogTyB8IHVuZGVmaW5lZCkge1xuICAgIGlmIChvd25lciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBsZXQgeyB1bmRlZmluZWREZWxlZ2F0ZSB9ID0gdGhpcztcblxuICAgICAgaWYgKHVuZGVmaW5lZERlbGVnYXRlID09PSBudWxsKSB7XG4gICAgICAgIGxldCB7IGZhY3RvcnkgfSA9IHRoaXM7XG4gICAgICAgIHRoaXMudW5kZWZpbmVkRGVsZWdhdGUgPSB1bmRlZmluZWREZWxlZ2F0ZSA9IGZhY3RvcnkodW5kZWZpbmVkKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHVuZGVmaW5lZERlbGVnYXRlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXREZWxlZ2F0ZUZvck93bmVyKG93bmVyKTtcbiAgICB9XG4gIH1cblxuICBnZXRIZWxwZXIoZGVmaW5pdGlvbjogSGVscGVyRGVmaW5pdGlvblN0YXRlKTogSGVscGVyIHtcbiAgICByZXR1cm4gKGNhcHR1cmVkQXJncywgb3duZXIpID0+IHtcbiAgICAgIGxldCBtYW5hZ2VyID0gdGhpcy5nZXREZWxlZ2F0ZUZvcihvd25lciBhcyBPIHwgdW5kZWZpbmVkKTtcblxuICAgICAgY29uc3QgYXJncyA9IGFyZ3NQcm94eUZvcihjYXB0dXJlZEFyZ3MsICdoZWxwZXInKTtcbiAgICAgIGNvbnN0IGJ1Y2tldCA9IG1hbmFnZXIuY3JlYXRlSGVscGVyKGRlZmluaXRpb24sIGFyZ3MpO1xuXG4gICAgICBpZiAoaGFzVmFsdWUobWFuYWdlcikpIHtcbiAgICAgICAgbGV0IGNhY2hlID0gY3JlYXRlQ29tcHV0ZVJlZihcbiAgICAgICAgICAoKSA9PiAobWFuYWdlciBhcyBIZWxwZXJNYW5hZ2VyV2l0aFZhbHVlPHVua25vd24+KS5nZXRWYWx1ZShidWNrZXQpLFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgREVCVUcgJiYgbWFuYWdlci5nZXREZWJ1Z05hbWUgJiYgbWFuYWdlci5nZXREZWJ1Z05hbWUoZGVmaW5pdGlvbilcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoaGFzRGVzdHJveWFibGUobWFuYWdlcikpIHtcbiAgICAgICAgICBhc3NvY2lhdGVEZXN0cm95YWJsZUNoaWxkKGNhY2hlLCBtYW5hZ2VyLmdldERlc3Ryb3lhYmxlKGJ1Y2tldCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNhY2hlO1xuICAgICAgfSBlbHNlIGlmIChoYXNEZXN0cm95YWJsZShtYW5hZ2VyKSkge1xuICAgICAgICBsZXQgcmVmID0gY3JlYXRlQ29uc3RSZWYoXG4gICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgIERFQlVHICYmIChtYW5hZ2VyLmdldERlYnVnTmFtZT8uKGRlZmluaXRpb24pID8/ICd1bmtub3duIGhlbHBlcicpXG4gICAgICAgICk7XG5cbiAgICAgICAgYXNzb2NpYXRlRGVzdHJveWFibGVDaGlsZChyZWYsIG1hbmFnZXIuZ2V0RGVzdHJveWFibGUoYnVja2V0KSk7XG5cbiAgICAgICAgcmV0dXJuIHJlZjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBVTkRFRklORURfUkVGRVJFTkNFO1xuICAgICAgfVxuICAgIH07XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=

@@ -96,5 +96,4 @@ "use strict";

_proto.create = function create(owner, element, definition, vmArgs) {
_proto.create = function create(owner, element, definition, capturedArgs) {
var delegate = this.getDelegateFor(owner);
var capturedArgs = vmArgs.capture();
var _delegate$capabilitie = delegate.capabilities,

@@ -112,3 +111,3 @@ useArgsProxy = _delegate$capabilitie.useArgsProxy,

create: function create(args) {
var params = Object.assign({}, args);
var params = (0, _util.assign)({}, args);
(0, _owner.setOwner)(params, owner);

@@ -229,2 +228,2 @@ return definition.create(args);

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL3B1YmxpYy9tb2RpZmllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFXQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFPQTs7QUFDQTs7QUFHTSxTQUFBLG9CQUFBLENBQUEsVUFBQSxFQUFBLGdCQUFBLEVBRXdEO0FBQUEsTUFBNUQsZ0JBQTRELEtBQUEsS0FBQSxDQUFBLEVBQUE7QUFBNUQsSUFBQSxnQkFBNEQsR0FGeEQsRUFFSjtBQUE0RDs7QUFFNUQsTUFBSSxjQUFTLFVBQVUsS0FBbkIsTUFBQSxJQUFrQyxVQUFVLEtBQWhELE1BQUEsRUFBNkQ7QUFDM0QsVUFBTSxJQUFBLEtBQUEsQ0FBTixrREFBTSxDQUFOO0FBQ0Q7O0FBRUQsU0FBTyxxQ0FBa0I7QUFDdkIsSUFBQSxtQkFBbUIsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBRHRCLG1CQUNLLENBREw7QUFFdkIsSUFBQSxZQUFZLEVBQUUsVUFBVSxLQUFWLE1BQUEsR0FBQSxLQUFBLEdBRlMsSUFBQTtBQUl2QjtBQUNBO0FBQ0EsSUFBQSxtQkFBbUIsRUFBRSxVQUFVLEtBQUs7QUFOYixHQUFsQixDQUFQO0FBUUQ7QUFlRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF3QkEsSUFBTSxxQkFBTixHQUFBLGFBQUEsWUFBQTtBQUlFLFdBQUEscUJBQUEsQ0FBQSxPQUFBLEVBQWlGO0FBQTdELFNBQUEsT0FBQSxHQUFBLE9BQUE7QUFGWixTQUFBLHlCQUFBLEdBQTRCLElBQTVCLE9BQTRCLEVBQTVCO0FBRTZFOztBQUp2RixNQUFBLE1BQUEsR0FBQSxxQkFBQSxDQUFBLFNBQUE7O0FBQUEsRUFBQSxNQUFBLENBQUEsY0FBQSxHQU1VLFNBQUEsY0FBQSxDQUFBLEtBQUEsRUFBdUI7QUFBQSxRQUN2Qix5QkFEdUIsR0FBQSxLQUFBLHlCQUFBO0FBRTdCLFFBQUksUUFBUSxHQUFH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O0FBRlAsR0FBUDtBQUlEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuaW1wb3J0IHtcbiAgQXJndW1lbnRzLFxuICBDYXB0dXJlZEFyZ3VtZW50cyxcbiAgSW50ZXJuYWxNb2RpZmllck1hbmFnZXIsXG4gIE1vZGlmaWVyQ2FwYWJpbGl0aWVzLFxuICBNb2RpZmllckNhcGFiaWxpdGllc1ZlcnNpb25zLFxuICBNb2RpZmllck1hbmFnZXIsXG4gIE93bmVyLFxuICBWTUFyZ3VtZW50cyxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyByZWdpc3RlckRlc3RydWN0b3IgfSBmcm9tICdAZ2xpbW1lci9kZXN0cm95YWJsZSc7XG5pbXBvcnQgeyBzZXRPd25lciB9IGZyb20gJ0BnbGltbWVyL293bmVyJztcbmltcG9ydCB7IHZhbHVlRm9yUmVmIH0gZnJvbSAnQGdsaW1tZXIvcmVmZXJlbmNlJztcbmltcG9ydCB7IGRpY3QgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7XG4gIGNyZWF0ZVVwZGF0YWJsZVRhZyxcbiAgZGVwcmVjYXRlTXV0YXRpb25zSW5UcmFja2luZ1RyYW5zYWN0aW9uLFxuICB1bnRyYWNrLFxuICBVcGRhdGFibGVUYWcsXG59IGZyb20gJ0BnbGltbWVyL3ZhbGlkYXRvcic7XG5pbXBvcnQgeyBTaW1wbGVFbGVtZW50IH0gZnJvbSAnQHNpbXBsZS1kb20vaW50ZXJmYWNlJztcbmltcG9ydCB7IGJ1aWxkQ2FwYWJpbGl0aWVzLCBGUk9NX0NBUEFCSUxJVElFUyB9IGZyb20gJy4uL3V0aWwvY2FwYWJpbGl0aWVzJztcbmltcG9ydCB7IGFyZ3NQcm94eUZvciB9IGZyb20gJy4uL3V0aWwvYXJncy1wcm94eSc7XG5pbXBvcnQgeyBNYW5hZ2VyRmFjdG9yeSB9IGZyb20gJy4nO1xuXG5leHBvcnQgZnVuY3Rpb24gbW9kaWZpZXJDYXBhYmlsaXRpZXM8VmVyc2lvbiBleHRlbmRzIGtleW9mIE1vZGlmaWVyQ2FwYWJpbGl0aWVzVmVyc2lvbnM+KFxuICBtYW5hZ2VyQVBJOiBWZXJzaW9uLFxuICBvcHRpb25hbEZlYXR1cmVzOiBNb2RpZmllckNhcGFiaWxpdGllc1ZlcnNpb25zW1ZlcnNpb25dID0ge31cbik6IE1vZGlmaWVyQ2FwYWJpbGl0aWVzIHtcbiAgaWYgKERFQlVHICYmIG1hbmFnZXJBUEkgIT09ICczLjEzJyAmJiBtYW5hZ2VyQVBJICE9PSAnMy4yMicpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgbW9kaWZpZXIgbWFuYWdlciBjb21wYXRpYmlsaXR5IHNwZWNpZmllZCcpO1xuICB9XG5cbiAgcmV0dXJuIGJ1aWxkQ2FwYWJpbGl0aWVzKHtcbiAgICBkaXNhYmxlQXV0b1RyYWNraW5nOiBCb29sZWFuKG9wdGlvbmFsRmVhdHVyZXMuZGlzYWJsZUF1dG9UcmFja2luZyksXG4gICAgdXNlQXJnc1Byb3h5OiBtYW5hZ2VyQVBJID09PSAnMy4xMycgPyBmYWxzZSA6IHRydWUsXG5cbiAgICAvLyBUaGlzIGNhcGFiaWxpdHkgaXMgdXNlZCBpbiBFbWJlciwgZXhjbHVzaXZlbHkgaW4gcmVzb2x1dGlvbiBtb2RlLiBTZWUgdGhlXG4gICAgLy8gRW1iZXIgZ2xpbW1lciByZXNvbHZlciBmb3IgZGV0YWlscy5cbiAgICBwYXNzRmFjdG9yeVRvQ3JlYXRlOiBtYW5hZ2VyQVBJID09PSAnMy4xMycsXG4gIH0pO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT4ge1xuICB0YWc6IFVwZGF0YWJsZVRhZztcbiAgZWxlbWVudDogU2ltcGxlRWxlbWVudDtcbiAgbW9kaWZpZXI6IE1vZGlmaWVySW5zdGFuY2U7XG4gIGRlbGVnYXRlOiBNb2RpZmllck1hbmFnZXI8TW9kaWZpZXJJbnN0YW5jZT47XG4gIGFyZ3M6IEFyZ3VtZW50cztcbiAgZGVidWdOYW1lPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgRmFjdG9yeSB7XG4gIGNyZWF0ZShwYXJhbXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogb2JqZWN0O1xufVxuXG4vKipcbiAgVGhlIEN1c3RvbU1vZGlmaWVyTWFuYWdlciBhbGxvd3MgYWRkb25zIHRvIHByb3ZpZGUgY3VzdG9tIG1vZGlmaWVyXG4gIGltcGxlbWVudGF0aW9ucyB0aGF0IGludGVncmF0ZSBzZWFtbGVzc2x5IGludG8gRW1iZXIuIFRoaXMgaXMgYWNjb21wbGlzaGVkXG4gIHRocm91Z2ggYSBkZWxlZ2F0ZSwgcmVnaXN0ZXJlZCB3aXRoIHRoZSBjdXN0b20gbW9kaWZpZXIgbWFuYWdlciwgd2hpY2hcbiAgaW1wbGVtZW50cyBhIHNldCBvZiBob29rcyB0aGF0IGRldGVybWluZSBtb2RpZmllciBiZWhhdmlvci5cbiAgVG8gY3JlYXRlIGEgY3VzdG9tIG1vZGlmaWVyIG1hbmFnZXIsIGluc3RhbnRpYXRlIGEgbmV3IEN1c3RvbU1vZGlmaWVyTWFuYWdlclxuICBjbGFzcyBhbmQgcGFzcyB0aGUgZGVsZWdhdGUgYXMgdGhlIGZpcnN0IGFyZ3VtZW50OlxuXG4gIGBgYGpzXG4gIGxldCBtYW5hZ2VyID0gbmV3IEN1c3RvbU1vZGlmaWVyTWFuYWdlcih7XG4gICAgLy8gLi4uZGVsZWdhdGUgaW1wbGVtZW50YXRpb24uLi5cbiAgfSk7XG4gIGBgYFxuXG4gICMjIERlbGVnYXRlIEhvb2tzXG5cbiAgVGhyb3VnaG91dCB0aGUgbGlmZWN5Y2xlIG9mIGEgbW9kaWZpZXIsIHRoZSBtb2RpZmllciBtYW5hZ2VyIHdpbGwgaW52b2tlXG4gIGRlbGVnYXRlIGhvb2tzIHRoYXQgYXJlIHJlc3BvbnNpYmxlIGZvciBzdXJmYWNpbmcgdGhvc2UgbGlmZWN5Y2xlIGNoYW5nZXMgdG9cbiAgdGhlIGVuZCBkZXZlbG9wZXIuXG4gICogYGNyZWF0ZU1vZGlmaWVyKClgIC0gaW52b2tlZCB3aGVuIGEgbmV3IGluc3RhbmNlIG9mIGEgbW9kaWZpZXIgc2hvdWxkIGJlIGNyZWF0ZWRcbiAgKiBgaW5zdGFsbE1vZGlmaWVyKClgIC0gaW52b2tlZCB3aGVuIHRoZSBtb2RpZmllciBpcyBpbnN0YWxsZWQgb24gdGhlIGVsZW1lbnRcbiAgKiBgdXBkYXRlTW9kaWZpZXIoKWAgLSBpbnZva2VkIHdoZW4gdGhlIGFyZ3VtZW50cyBwYXNzZWQgdG8gYSBtb2RpZmllciBjaGFuZ2VcbiAgKiBgZGVzdHJveU1vZGlmaWVyKClgIC0gaW52b2tlZCB3aGVuIHRoZSBtb2RpZmllciBpcyBhYm91dCB0byBiZSBkZXN0cm95ZWRcbiovXG5leHBvcnQgY2xhc3MgQ3VzdG9tTW9kaWZpZXJNYW5hZ2VyPE8gZXh0ZW5kcyBPd25lciwgTW9kaWZpZXJJbnN0YW5jZT5cbiAgaW1wbGVtZW50cyBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcjxDdXN0b21Nb2RpZmllclN0YXRlPE1vZGlmaWVySW5zdGFuY2U+PiB7XG4gIHByaXZhdGUgY29tcG9uZW50TWFuYWdlckRlbGVnYXRlcyA9IG5ldyBXZWFrTWFwPE8sIE1vZGlmaWVyTWFuYWdlcjxNb2RpZmllckluc3RhbmNlPj4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZhY3Rvcnk6IE1hbmFnZXJGYWN0b3J5PE8sIE1vZGlmaWVyTWFuYWdlcjxNb2RpZmllckluc3RhbmNlPj4pIHt9XG5cbiAgcHJpdmF0ZSBnZXREZWxlZ2F0ZUZvcihvd25lcjogTykge1xuICAgIGxldCB7IGNvbXBvbmVudE1hbmFnZXJEZWxlZ2F0ZXMgfSA9IHRoaXM7XG4gICAgbGV0IGRlbGVnYXRlID0gY29tcG9uZW50TWFuYWdlckRlbGVnYXRlcy5nZXQob3duZXIpO1xuXG4gICAgaWYgKGRlbGVnYXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGxldCB7IGZhY3RvcnkgfSA9IHRoaXM7XG4gICAgICBkZWxlZ2F0ZSA9IGZhY3Rvcnkob3duZXIpO1xuXG4gICAgICBpZiAoREVCVUcgJiYgIUZST01fQ0FQQUJJTElUSUVTIS5oYXMoZGVsZWdhdGUuY2FwYWJpbGl0aWVzKSkge1xuICAgICAgICAvLyBUT0RPOiBUaGlzIGVycm9yIG1lc3NhZ2Ugc2hvdWxkIG1ha2Ugc2Vuc2UgaW4gYm90aCBFbWJlciBhbmQgR2xpbW1lciBodHRwczovL2dpdGh1Yi5jb20vZ2xpbW1lcmpzL2dsaW1tZXItdm0vaXNzdWVzLzEyMDBcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBDdXN0b20gbW9kaWZpZXIgbWFuYWdlcnMgbXVzdCBoYXZlIGEgXFxgY2FwYWJpbGl0aWVzXFxgIHByb3BlcnR5IHRoYXQgaXMgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBcXGBjYXBhYmlsaXRpZXMoJzMuMTMnIHwgJzMuMjInKVxcYCAoaW1wb3J0ZWQgdmlhIFxcYGltcG9ydCB7IGNhcGFiaWxpdGllcyB9IGZyb20gJ0BlbWJlci9tb2RpZmllcic7XFxgKS4gUmVjZWl2ZWQ6IFxcYCR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICBkZWxlZ2F0ZS5jYXBhYmlsaXRpZXNcbiAgICAgICAgICApfVxcYCBmb3I6IFxcYCR7ZGVsZWdhdGV9XFxgYFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBjb21wb25lbnRNYW5hZ2VyRGVsZWdhdGVzLnNldChvd25lciwgZGVsZWdhdGUpO1xuICAgIH1cblxuICAgIHJldHVybiBkZWxlZ2F0ZTtcbiAgfVxuXG4gIGNyZWF0ZShvd25lcjogTywgZWxlbWVudDogU2ltcGxlRWxlbWVudCwgZGVmaW5pdGlvbjogb2JqZWN0LCB2bUFyZ3M6IFZNQXJndW1lbnRzKSB7XG4gICAgbGV0IGRlbGVnYXRlID0gdGhpcy5nZXREZWxlZ2F0ZUZvcihvd25lcik7XG4gICAgbGV0IGNhcHR1cmVkQXJncyA9IHZtQXJncy5jYXB0dXJlKCk7XG5cbiAgICBsZXQgeyB1c2VBcmdzUHJveHksIHBhc3NGYWN0b3J5VG9DcmVhdGUgfSA9IGRlbGVnYXRlLmNhcGFiaWxpdGllcztcblxuICAgIGxldCBhcmdzID0gdXNlQXJnc1Byb3h5ID8gYXJnc1Byb3h5Rm9yKGNhcHR1cmVkQXJncywgJ21vZGlmaWVyJykgOiByZWlmeUFyZ3MoY2FwdHVyZWRBcmdzKTtcblxuICAgIGxldCBpbnN0YW5jZTogTW9kaWZpZXJJbnN0YW5jZTtcblxuICAgIGxldCBmYWN0b3J5T3JEZWZpbml0aW9uID0gZGVmaW5pdGlvbjtcblxuICAgIGlmIChwYXNzRmFjdG9yeVRvQ3JlYXRlKSB7XG4gICAgICAvLyBNYWtlIGEgZmFrZSBmYWN0b3J5LiBXaGlsZSBub3QgcGVyZmVjdCwgdGhpcyBzaG91bGQgZ2VuZXJhbGx5IHByZXZlbnRcbiAgICAgIC8vIGJyZWFrYWdlIGluIHVzZXJzIG9mIG9sZGVyIG1vZGlmaWVyIGNhcGFiaWxpdGllcy5cbiAgICAgIGZhY3RvcnlPckRlZmluaXRpb24gPSB7XG4gICAgICAgIGNyZWF0ZShhcmdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikge1xuICAgICAgICAgIGxldCBwYXJhbXMgPSBPYmplY3QuYXNzaWduKHt9LCBhcmdzKTtcbiAgICAgICAgICBzZXRPd25lcihwYXJhbXMsIG93bmVyKTtcblxuICAgICAgICAgIHJldHVybiAoZGVmaW5pdGlvbiBhcyBGYWN0b3J5KS5jcmVhdGUoYXJncyk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgY2xhc3M6IGRlZmluaXRpb24sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChERUJVRyAmJiBkZXByZWNhdGVNdXRhdGlvbnNJblRyYWNraW5nVHJhbnNhY3Rpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgZGVwcmVjYXRlTXV0YXRpb25zSW5UcmFja2luZ1RyYW5zYWN0aW9uKCgpID0+IHtcbiAgICAgICAgaW5zdGFuY2UgPSBkZWxlZ2F0ZS5jcmVhdGVNb2RpZmllcihmYWN0b3J5T3JEZWZpbml0aW9uLCBhcmdzKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpbnN0YW5jZSA9IGRlbGVnYXRlLmNyZWF0ZU1vZGlmaWVyKGZhY3RvcnlPckRlZmluaXRpb24sIGFyZ3MpO1xuICAgIH1cblxuICAgIGxldCB0YWcgPSBjcmVhdGVVcGRhdGFibGVUYWcoKTtcbiAgICBsZXQgc3RhdGU6IEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT47XG5cbiAgICBpZiAodXNlQXJnc1Byb3h5KSB7XG4gICAgICBzdGF0ZSA9IHtcbiAgICAgICAgdGFnLFxuICAgICAgICBlbGVtZW50LFxuICAgICAgICBkZWxlZ2F0ZSxcbiAgICAgICAgYXJncyxcbiAgICAgICAgbW9kaWZpZXI6IGluc3RhbmNlISxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0YXRlID0ge1xuICAgICAgICB0YWcsXG4gICAgICAgIGVsZW1lbnQsXG4gICAgICAgIG1vZGlmaWVyOiBpbnN0YW5jZSEsXG4gICAgICAgIGRlbGVnYXRlLFxuICAgICAgICBnZXQgYXJncygpIHtcbiAgICAgICAgICByZXR1cm4gcmVpZnlBcmdzKGNhcHR1cmVkQXJncyk7XG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChERUJVRykge1xuICAgICAgc3RhdGUuZGVidWdOYW1lID0gdHlwZW9mIGRlZmluaXRpb24gPT09ICdmdW5jdGlvbicgPyBkZWZpbml0aW9uLm5hbWUgOiBkZWZpbml0aW9uLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJEZXN0cnVjdG9yKHN0YXRlLCAoKSA9PiBkZWxlZ2F0ZS5kZXN0cm95TW9kaWZpZXIoaW5zdGFuY2UsIHN0YXRlLmFyZ3MpKTtcblxuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIGdldERlYnVnTmFtZSh7IGRlYnVnTmFtZSB9OiBDdXN0b21Nb2RpZmllclN0YXRlPE1vZGlmaWVySW5zdGFuY2U+KSB7XG4gICAgcmV0dXJuIGRlYnVnTmFtZSE7XG4gIH1cblxuICBnZXRUYWcoeyB0YWcgfTogQ3VzdG9tTW9kaWZpZXJTdGF0ZTxNb2RpZmllckluc3RhbmNlPikge1xuICAgIHJldHVybiB0YWc7XG4gIH1cblxuICBpbnN0YWxsKHsgZWxlbWVudCwgYXJncywgbW9kaWZpZXIsIGRlbGVnYXRlIH06IEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT4pIHtcbiAgICBsZXQgeyBjYXBhYmlsaXRpZXMgfSA9IGRlbGVnYXRlO1xuXG4gICAgaWYgKGNhcGFiaWxpdGllcy5kaXNhYmxlQXV0b1RyYWNraW5nID09PSB0cnVlKSB7XG4gICAgICB1bnRyYWNrKCgpID0+IGRlbGVnYXRlLmluc3RhbGxNb2RpZmllcihtb2RpZmllciwgZWxlbWVudCwgYXJncykpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWxlZ2F0ZS5pbnN0YWxsTW9kaWZpZXIobW9kaWZpZXIsIGVsZW1lbnQsIGFyZ3MpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZSh7IGFyZ3MsIG1vZGlmaWVyLCBkZWxlZ2F0ZSB9OiBDdXN0b21Nb2RpZmllclN0YXRlPE1vZGlmaWVySW5zdGFuY2U+KSB7XG4gICAgbGV0IHsgY2FwYWJpbGl0aWVzIH0gPSBkZWxlZ2F0ZTtcblxuICAgIGlmIChjYXBhYmlsaXRpZXMuZGlzYWJsZUF1dG9UcmFja2luZyA9PT0gdHJ1ZSkge1xuICAgICAgdW50cmFjaygoKSA9PiBkZWxlZ2F0ZS51cGRhdGVNb2RpZmllcihtb2RpZmllciwgYXJncykpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWxlZ2F0ZS51cGRhdGVNb2RpZmllcihtb2RpZmllciwgYXJncyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0RGVzdHJveWFibGUoc3RhdGU6IEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT4pIHtcbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlaWZ5QXJncyh7XG4gIG5hbWVkLFxuICBwb3NpdGlvbmFsLFxufTogQ2FwdHVyZWRBcmd1bWVudHMpOiB7IG5hbWVkOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjsgcG9zaXRpb25hbDogdW5rbm93bltdIH0ge1xuICBsZXQgcmVpZmllZE5hbWVkID0gZGljdCgpO1xuXG4gIGZvciAobGV0IGtleSBpbiBuYW1lZCkge1xuICAgIHJlaWZpZWROYW1lZFtrZXldID0gdmFsdWVGb3JSZWYobmFtZWRba2V5XSk7XG4gIH1cblxuICBsZXQgcmVpZmllZFBvc2l0aW9uYWwgPSBwb3NpdGlvbmFsLm1hcCh2YWx1ZUZvclJlZik7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lZDogcmVpZmllZE5hbWVkLFxuICAgIHBvc2l0aW9uYWw6IHJlaWZpZWRQb3NpdGlvbmFsLFxuICB9O1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL3B1YmxpYy9tb2RpZmllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFVQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFPQTs7QUFDQTs7QUFHTSxTQUFBLG9CQUFBLENBQUEsVUFBQSxFQUFBLGdCQUFBLEVBRXdEO0FBQUEsTUFBNUQsZ0JBQTRELEtBQUEsS0FBQSxDQUFBLEVBQUE7QUFBNUQsSUFBQSxnQkFBNEQsR0FGeEQsRUFFSjtBQUE0RDs7QUFFNUQsTUFBSSxjQUFTLFVBQVUsS0FBbkIsTUFBQSxJQUFrQyxVQUFVLEtBQWhELE1BQUEsRUFBNkQ7QUFDM0QsVUFBTSxJQUFBLEtBQUEsQ0FBTixrREFBTSxDQUFOO0FBQ0Q7O0FBRUQsU0FBTyxxQ0FBa0I7QUFDdkIsSUFBQSxtQkFBbUIsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBRHRCLG1CQUNLLENBREw7QUFFdkIsSUFBQSxZQUFZLEVBQUUsVUFBVSxLQUFWLE1BQUEsR0FBQSxLQUFBLEdBRlMsSUFBQTtBQUl2QjtBQUNBO0FBQ0EsSUFBQSxtQkFBbUIsRUFBRSxVQUFVLEtBQUs7QUFOYixHQUFsQixDQUFQO0FBUUQ7QUFlRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF3QkEsSUFBTSxxQkFBTixHQUFBLGFBQUEsWUFBQTtBQUlFLFdBQUEscUJBQUEsQ0FBQSxPQUFBLEVBQWlGO0FBQTdELFNBQUEsT0FBQSxHQUFBLE9BQUE7QUFGWixTQUFBLHlCQUFBLEdBQTRCLElBQTVCLE9BQTRCLEVBQTVCO0FBRTZFOztBQUp2RixNQUFBLE1BQUEsR0FBQSxxQkFBQSxDQUFBLFNBQUE7O0FBQUEsRUFBQSxNQUFBLENBQUEsY0FBQSxHQU1VLFNBQUEsY0FBQSxDQUFBLEtBQUEsRUFBdUI7QUFBQSxRQUN2Qix5QkFEdUIsR0FBQSxLQUFBLHlCQUFBO0FBRTdCLFFBQUksUUFBUSxHQUFH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ICdAZ2xpbW1lci9lbnYnO1xuaW1wb3J0IHtcbiAgQXJndW1lbnRzLFxuICBDYXB0dXJlZEFyZ3VtZW50cyxcbiAgSW50ZXJuYWxNb2RpZmllck1hbmFnZXIsXG4gIE1vZGlmaWVyQ2FwYWJpbGl0aWVzLFxuICBNb2RpZmllckNhcGFiaWxpdGllc1ZlcnNpb25zLFxuICBNb2RpZmllck1hbmFnZXIsXG4gIE93bmVyLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IHJlZ2lzdGVyRGVzdHJ1Y3RvciB9IGZyb20gJ0BnbGltbWVyL2Rlc3Ryb3lhYmxlJztcbmltcG9ydCB7IHNldE93bmVyIH0gZnJvbSAnQGdsaW1tZXIvb3duZXInO1xuaW1wb3J0IHsgdmFsdWVGb3JSZWYgfSBmcm9tICdAZ2xpbW1lci9yZWZlcmVuY2UnO1xuaW1wb3J0IHsgYXNzaWduLCBjYXN0VG9Ccm93c2VyLCBkaWN0IH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5pbXBvcnQge1xuICBjcmVhdGVVcGRhdGFibGVUYWcsXG4gIGRlcHJlY2F0ZU11dGF0aW9uc0luVHJhY2tpbmdUcmFuc2FjdGlvbixcbiAgdW50cmFjayxcbiAgVXBkYXRhYmxlVGFnLFxufSBmcm9tICdAZ2xpbW1lci92YWxpZGF0b3InO1xuaW1wb3J0IHsgU2ltcGxlRWxlbWVudCB9IGZyb20gJ0BzaW1wbGUtZG9tL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBidWlsZENhcGFiaWxpdGllcywgRlJPTV9DQVBBQklMSVRJRVMgfSBmcm9tICcuLi91dGlsL2NhcGFiaWxpdGllcyc7XG5pbXBvcnQgeyBhcmdzUHJveHlGb3IgfSBmcm9tICcuLi91dGlsL2FyZ3MtcHJveHknO1xuaW1wb3J0IHsgTWFuYWdlckZhY3RvcnkgfSBmcm9tICcuJztcblxuZXhwb3J0IGZ1bmN0aW9uIG1vZGlmaWVyQ2FwYWJpbGl0aWVzPFZlcnNpb24gZXh0ZW5kcyBrZXlvZiBNb2RpZmllckNhcGFiaWxpdGllc1ZlcnNpb25zPihcbiAgbWFuYWdlckFQSTogVmVyc2lvbixcbiAgb3B0aW9uYWxGZWF0dXJlczogTW9kaWZpZXJDYXBhYmlsaXRpZXNWZXJzaW9uc1tWZXJzaW9uXSA9IHt9XG4pOiBNb2RpZmllckNhcGFiaWxpdGllcyB7XG4gIGlmIChERUJVRyAmJiBtYW5hZ2VyQVBJICE9PSAnMy4xMycgJiYgbWFuYWdlckFQSSAhPT0gJzMuMjInKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIG1vZGlmaWVyIG1hbmFnZXIgY29tcGF0aWJpbGl0eSBzcGVjaWZpZWQnKTtcbiAgfVxuXG4gIHJldHVybiBidWlsZENhcGFiaWxpdGllcyh7XG4gICAgZGlzYWJsZUF1dG9UcmFja2luZzogQm9vbGVhbihvcHRpb25hbEZlYXR1cmVzLmRpc2FibGVBdXRvVHJhY2tpbmcpLFxuICAgIHVzZUFyZ3NQcm94eTogbWFuYWdlckFQSSA9PT0gJzMuMTMnID8gZmFsc2UgOiB0cnVlLFxuXG4gICAgLy8gVGhpcyBjYXBhYmlsaXR5IGlzIHVzZWQgaW4gRW1iZXIsIGV4Y2x1c2l2ZWx5IGluIHJlc29sdXRpb24gbW9kZS4gU2VlIHRoZVxuICAgIC8vIEVtYmVyIGdsaW1tZXIgcmVzb2x2ZXIgZm9yIGRldGFpbHMuXG4gICAgcGFzc0ZhY3RvcnlUb0NyZWF0ZTogbWFuYWdlckFQSSA9PT0gJzMuMTMnLFxuICB9KTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21Nb2RpZmllclN0YXRlPE1vZGlmaWVySW5zdGFuY2U+IHtcbiAgdGFnOiBVcGRhdGFibGVUYWc7XG4gIGVsZW1lbnQ6IFNpbXBsZUVsZW1lbnQ7XG4gIG1vZGlmaWVyOiBNb2RpZmllckluc3RhbmNlO1xuICBkZWxlZ2F0ZTogTW9kaWZpZXJNYW5hZ2VyPE1vZGlmaWVySW5zdGFuY2U+O1xuICBhcmdzOiBBcmd1bWVudHM7XG4gIGRlYnVnTmFtZT86IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIEZhY3Rvcnkge1xuICBjcmVhdGUocGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IG9iamVjdDtcbn1cblxuLyoqXG4gIFRoZSBDdXN0b21Nb2RpZmllck1hbmFnZXIgYWxsb3dzIGFkZG9ucyB0byBwcm92aWRlIGN1c3RvbSBtb2RpZmllclxuICBpbXBsZW1lbnRhdGlvbnMgdGhhdCBpbnRlZ3JhdGUgc2VhbWxlc3NseSBpbnRvIEVtYmVyLiBUaGlzIGlzIGFjY29tcGxpc2hlZFxuICB0aHJvdWdoIGEgZGVsZWdhdGUsIHJlZ2lzdGVyZWQgd2l0aCB0aGUgY3VzdG9tIG1vZGlmaWVyIG1hbmFnZXIsIHdoaWNoXG4gIGltcGxlbWVudHMgYSBzZXQgb2YgaG9va3MgdGhhdCBkZXRlcm1pbmUgbW9kaWZpZXIgYmVoYXZpb3IuXG4gIFRvIGNyZWF0ZSBhIGN1c3RvbSBtb2RpZmllciBtYW5hZ2VyLCBpbnN0YW50aWF0ZSBhIG5ldyBDdXN0b21Nb2RpZmllck1hbmFnZXJcbiAgY2xhc3MgYW5kIHBhc3MgdGhlIGRlbGVnYXRlIGFzIHRoZSBmaXJzdCBhcmd1bWVudDpcblxuICBgYGBqc1xuICBsZXQgbWFuYWdlciA9IG5ldyBDdXN0b21Nb2RpZmllck1hbmFnZXIoe1xuICAgIC8vIC4uLmRlbGVnYXRlIGltcGxlbWVudGF0aW9uLi4uXG4gIH0pO1xuICBgYGBcblxuICAjIyBEZWxlZ2F0ZSBIb29rc1xuXG4gIFRocm91Z2hvdXQgdGhlIGxpZmVjeWNsZSBvZiBhIG1vZGlmaWVyLCB0aGUgbW9kaWZpZXIgbWFuYWdlciB3aWxsIGludm9rZVxuICBkZWxlZ2F0ZSBob29rcyB0aGF0IGFyZSByZXNwb25zaWJsZSBmb3Igc3VyZmFjaW5nIHRob3NlIGxpZmVjeWNsZSBjaGFuZ2VzIHRvXG4gIHRoZSBlbmQgZGV2ZWxvcGVyLlxuICAqIGBjcmVhdGVNb2RpZmllcigpYCAtIGludm9rZWQgd2hlbiBhIG5ldyBpbnN0YW5jZSBvZiBhIG1vZGlmaWVyIHNob3VsZCBiZSBjcmVhdGVkXG4gICogYGluc3RhbGxNb2RpZmllcigpYCAtIGludm9rZWQgd2hlbiB0aGUgbW9kaWZpZXIgaXMgaW5zdGFsbGVkIG9uIHRoZSBlbGVtZW50XG4gICogYHVwZGF0ZU1vZGlmaWVyKClgIC0gaW52b2tlZCB3aGVuIHRoZSBhcmd1bWVudHMgcGFzc2VkIHRvIGEgbW9kaWZpZXIgY2hhbmdlXG4gICogYGRlc3Ryb3lNb2RpZmllcigpYCAtIGludm9rZWQgd2hlbiB0aGUgbW9kaWZpZXIgaXMgYWJvdXQgdG8gYmUgZGVzdHJveWVkXG4qL1xuZXhwb3J0IGNsYXNzIEN1c3RvbU1vZGlmaWVyTWFuYWdlcjxPIGV4dGVuZHMgT3duZXIsIE1vZGlmaWVySW5zdGFuY2U+XG4gIGltcGxlbWVudHMgSW50ZXJuYWxNb2RpZmllck1hbmFnZXI8Q3VzdG9tTW9kaWZpZXJTdGF0ZTxNb2RpZmllckluc3RhbmNlPj4ge1xuICBwcml2YXRlIGNvbXBvbmVudE1hbmFnZXJEZWxlZ2F0ZXMgPSBuZXcgV2Vha01hcDxPLCBNb2RpZmllck1hbmFnZXI8TW9kaWZpZXJJbnN0YW5jZT4+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYWN0b3J5OiBNYW5hZ2VyRmFjdG9yeTxPLCBNb2RpZmllck1hbmFnZXI8TW9kaWZpZXJJbnN0YW5jZT4+KSB7fVxuXG4gIHByaXZhdGUgZ2V0RGVsZWdhdGVGb3Iob3duZXI6IE8pIHtcbiAgICBsZXQgeyBjb21wb25lbnRNYW5hZ2VyRGVsZWdhdGVzIH0gPSB0aGlzO1xuICAgIGxldCBkZWxlZ2F0ZSA9IGNvbXBvbmVudE1hbmFnZXJEZWxlZ2F0ZXMuZ2V0KG93bmVyKTtcblxuICAgIGlmIChkZWxlZ2F0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBsZXQgeyBmYWN0b3J5IH0gPSB0aGlzO1xuICAgICAgZGVsZWdhdGUgPSBmYWN0b3J5KG93bmVyKTtcblxuICAgICAgaWYgKERFQlVHICYmICFGUk9NX0NBUEFCSUxJVElFUyEuaGFzKGRlbGVnYXRlLmNhcGFiaWxpdGllcykpIHtcbiAgICAgICAgLy8gVE9ETzogVGhpcyBlcnJvciBtZXNzYWdlIHNob3VsZCBtYWtlIHNlbnNlIGluIGJvdGggRW1iZXIgYW5kIEdsaW1tZXIgaHR0cHM6Ly9naXRodWIuY29tL2dsaW1tZXJqcy9nbGltbWVyLXZtL2lzc3Vlcy8xMjAwXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgQ3VzdG9tIG1vZGlmaWVyIG1hbmFnZXJzIG11c3QgaGF2ZSBhIFxcYGNhcGFiaWxpdGllc1xcYCBwcm9wZXJ0eSB0aGF0IGlzIHRoZSByZXN1bHQgb2YgY2FsbGluZyB0aGUgXFxgY2FwYWJpbGl0aWVzKCczLjEzJyB8ICczLjIyJylcXGAgKGltcG9ydGVkIHZpYSBcXGBpbXBvcnQgeyBjYXBhYmlsaXRpZXMgfSBmcm9tICdAZW1iZXIvbW9kaWZpZXInO1xcYCkuIFJlY2VpdmVkOiBcXGAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAgZGVsZWdhdGUuY2FwYWJpbGl0aWVzXG4gICAgICAgICAgKX1cXGAgZm9yOiBcXGAke2RlbGVnYXRlfVxcYGBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgY29tcG9uZW50TWFuYWdlckRlbGVnYXRlcy5zZXQob3duZXIsIGRlbGVnYXRlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGVsZWdhdGU7XG4gIH1cblxuICBjcmVhdGUob3duZXI6IE8sIGVsZW1lbnQ6IFNpbXBsZUVsZW1lbnQsIGRlZmluaXRpb246IG9iamVjdCwgY2FwdHVyZWRBcmdzOiBDYXB0dXJlZEFyZ3VtZW50cykge1xuICAgIGxldCBkZWxlZ2F0ZSA9IHRoaXMuZ2V0RGVsZWdhdGVGb3Iob3duZXIpO1xuXG4gICAgbGV0IHsgdXNlQXJnc1Byb3h5LCBwYXNzRmFjdG9yeVRvQ3JlYXRlIH0gPSBkZWxlZ2F0ZS5jYXBhYmlsaXRpZXM7XG5cbiAgICBsZXQgYXJncyA9IHVzZUFyZ3NQcm94eSA/IGFyZ3NQcm94eUZvcihjYXB0dXJlZEFyZ3MsICdtb2RpZmllcicpIDogcmVpZnlBcmdzKGNhcHR1cmVkQXJncyk7XG5cbiAgICBsZXQgaW5zdGFuY2U6IE1vZGlmaWVySW5zdGFuY2U7XG5cbiAgICBsZXQgZmFjdG9yeU9yRGVmaW5pdGlvbiA9IGRlZmluaXRpb247XG5cbiAgICBpZiAocGFzc0ZhY3RvcnlUb0NyZWF0ZSkge1xuICAgICAgLy8gTWFrZSBhIGZha2UgZmFjdG9yeS4gV2hpbGUgbm90IHBlcmZlY3QsIHRoaXMgc2hvdWxkIGdlbmVyYWxseSBwcmV2ZW50XG4gICAgICAvLyBicmVha2FnZSBpbiB1c2VycyBvZiBvbGRlciBtb2RpZmllciBjYXBhYmlsaXRpZXMuXG4gICAgICBmYWN0b3J5T3JEZWZpbml0aW9uID0ge1xuICAgICAgICBjcmVhdGUoYXJnczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pIHtcbiAgICAgICAgICBsZXQgcGFyYW1zID0gYXNzaWduKHt9LCBhcmdzKTtcbiAgICAgICAgICBzZXRPd25lcihwYXJhbXMsIG93bmVyKTtcblxuICAgICAgICAgIHJldHVybiAoZGVmaW5pdGlvbiBhcyBGYWN0b3J5KS5jcmVhdGUoYXJncyk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgY2xhc3M6IGRlZmluaXRpb24sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChERUJVRyAmJiBkZXByZWNhdGVNdXRhdGlvbnNJblRyYWNraW5nVHJhbnNhY3Rpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgZGVwcmVjYXRlTXV0YXRpb25zSW5UcmFja2luZ1RyYW5zYWN0aW9uKCgpID0+IHtcbiAgICAgICAgaW5zdGFuY2UgPSBkZWxlZ2F0ZS5jcmVhdGVNb2RpZmllcihmYWN0b3J5T3JEZWZpbml0aW9uLCBhcmdzKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpbnN0YW5jZSA9IGRlbGVnYXRlLmNyZWF0ZU1vZGlmaWVyKGZhY3RvcnlPckRlZmluaXRpb24sIGFyZ3MpO1xuICAgIH1cblxuICAgIGxldCB0YWcgPSBjcmVhdGVVcGRhdGFibGVUYWcoKTtcbiAgICBsZXQgc3RhdGU6IEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT47XG5cbiAgICBpZiAodXNlQXJnc1Byb3h5KSB7XG4gICAgICBzdGF0ZSA9IHtcbiAgICAgICAgdGFnLFxuICAgICAgICBlbGVtZW50LFxuICAgICAgICBkZWxlZ2F0ZSxcbiAgICAgICAgYXJncyxcbiAgICAgICAgbW9kaWZpZXI6IGluc3RhbmNlISxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0YXRlID0ge1xuICAgICAgICB0YWcsXG4gICAgICAgIGVsZW1lbnQsXG4gICAgICAgIG1vZGlmaWVyOiBpbnN0YW5jZSEsXG4gICAgICAgIGRlbGVnYXRlLFxuICAgICAgICBnZXQgYXJncygpIHtcbiAgICAgICAgICByZXR1cm4gcmVpZnlBcmdzKGNhcHR1cmVkQXJncyk7XG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChERUJVRykge1xuICAgICAgc3RhdGUuZGVidWdOYW1lID0gdHlwZW9mIGRlZmluaXRpb24gPT09ICdmdW5jdGlvbicgPyBkZWZpbml0aW9uLm5hbWUgOiBkZWZpbml0aW9uLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJEZXN0cnVjdG9yKHN0YXRlLCAoKSA9PiBkZWxlZ2F0ZS5kZXN0cm95TW9kaWZpZXIoaW5zdGFuY2UsIHN0YXRlLmFyZ3MpKTtcblxuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIGdldERlYnVnTmFtZSh7IGRlYnVnTmFtZSB9OiBDdXN0b21Nb2RpZmllclN0YXRlPE1vZGlmaWVySW5zdGFuY2U+KSB7XG4gICAgcmV0dXJuIGRlYnVnTmFtZSE7XG4gIH1cblxuICBnZXRUYWcoeyB0YWcgfTogQ3VzdG9tTW9kaWZpZXJTdGF0ZTxNb2RpZmllckluc3RhbmNlPikge1xuICAgIHJldHVybiB0YWc7XG4gIH1cblxuICBpbnN0YWxsKHsgZWxlbWVudCwgYXJncywgbW9kaWZpZXIsIGRlbGVnYXRlIH06IEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT4pIHtcbiAgICBsZXQgeyBjYXBhYmlsaXRpZXMgfSA9IGRlbGVnYXRlO1xuXG4gICAgaWYgKGNhcGFiaWxpdGllcy5kaXNhYmxlQXV0b1RyYWNraW5nID09PSB0cnVlKSB7XG4gICAgICB1bnRyYWNrKCgpID0+IGRlbGVnYXRlLmluc3RhbGxNb2RpZmllcihtb2RpZmllciwgY2FzdFRvQnJvd3NlcihlbGVtZW50LCAnRUxFTUVOVCcpLCBhcmdzKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlbGVnYXRlLmluc3RhbGxNb2RpZmllcihtb2RpZmllciwgY2FzdFRvQnJvd3NlcihlbGVtZW50LCAnRUxFTUVOVCcpLCBhcmdzKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGUoeyBhcmdzLCBtb2RpZmllciwgZGVsZWdhdGUgfTogQ3VzdG9tTW9kaWZpZXJTdGF0ZTxNb2RpZmllckluc3RhbmNlPikge1xuICAgIGxldCB7IGNhcGFiaWxpdGllcyB9ID0gZGVsZWdhdGU7XG5cbiAgICBpZiAoY2FwYWJpbGl0aWVzLmRpc2FibGVBdXRvVHJhY2tpbmcgPT09IHRydWUpIHtcbiAgICAgIHVudHJhY2soKCkgPT4gZGVsZWdhdGUudXBkYXRlTW9kaWZpZXIobW9kaWZpZXIsIGFyZ3MpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVsZWdhdGUudXBkYXRlTW9kaWZpZXIobW9kaWZpZXIsIGFyZ3MpO1xuICAgIH1cbiAgfVxuXG4gIGdldERlc3Ryb3lhYmxlKHN0YXRlOiBDdXN0b21Nb2RpZmllclN0YXRlPE1vZGlmaWVySW5zdGFuY2U+KSB7XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWlmeUFyZ3Moe1xuICBuYW1lZCxcbiAgcG9zaXRpb25hbCxcbn06IENhcHR1cmVkQXJndW1lbnRzKTogeyBuYW1lZDogUmVjb3JkPHN0cmluZywgdW5rbm93bj47IHBvc2l0aW9uYWw6IHVua25vd25bXSB9IHtcbiAgbGV0IHJlaWZpZWROYW1lZCA9IGRpY3QoKTtcblxuICBmb3IgKGxldCBrZXkgaW4gbmFtZWQpIHtcbiAgICByZWlmaWVkTmFtZWRba2V5XSA9IHZhbHVlRm9yUmVmKG5hbWVkW2tleV0pO1xuICB9XG5cbiAgbGV0IHJlaWZpZWRQb3NpdGlvbmFsID0gcG9zaXRpb25hbC5tYXAodmFsdWVGb3JSZWYpO1xuXG4gIHJldHVybiB7XG4gICAgbmFtZWQ6IHJlaWZpZWROYW1lZCxcbiAgICBwb3NpdGlvbmFsOiByZWlmaWVkUG9zaXRpb25hbCxcbiAgfTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=

@@ -0,3 +1,4 @@

import { associateDestroyableChild } from '@glimmer/destroyable';
import { DEBUG } from '@glimmer/env';
import { createComputeRef, UNDEFINED_REFERENCE } from '@glimmer/reference';
import { createComputeRef, createConstRef, UNDEFINED_REFERENCE } from '@glimmer/reference';
import { buildCapabilities, FROM_CAPABILITIES } from '../util/capabilities';

@@ -79,14 +80,21 @@ import { argsProxyFor } from '../util/args-proxy';

getHelper(definition) {
return (vmArgs, vm) => {
let owner = vm.getOwner();
let manager = this.getDelegateForOwner(owner);
const args = argsProxyFor(vmArgs.capture(), 'helper');
return (capturedArgs, owner) => {
var _a, _b;
let manager = this.getDelegateFor(owner);
const args = argsProxyFor(capturedArgs, 'helper');
const bucket = manager.createHelper(definition, args);
if (hasDestroyable(manager)) {
vm.associateDestroyable(manager.getDestroyable(bucket));
}
if (hasValue(manager)) {
let cache = createComputeRef(() => manager.getValue(bucket), null, DEBUG && manager.getDebugName && manager.getDebugName(definition));
if (hasValue(manager)) {
return createComputeRef(() => manager.getValue(bucket), null, DEBUG && manager.getDebugName && manager.getDebugName(definition));
if (hasDestroyable(manager)) {
associateDestroyableChild(cache, manager.getDestroyable(bucket));
}
return cache;
} else if (hasDestroyable(manager)) {
let ref = createConstRef(undefined, DEBUG && ((_b = (_a = manager.getDebugName) === null || _a === void 0 ? void 0 : _a.call(manager, definition)) !== null && _b !== void 0 ? _b : 'unknown helper'));
associateDestroyableChild(ref, manager.getDestroyable(bucket));
return ref;
} else {

@@ -99,2 +107,2 @@ return UNDEFINED_REFERENCE;

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL3B1YmxpYy9oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUyxLQUFULFFBQXNCLGNBQXRCO0FBWUEsU0FBUyxnQkFBVCxFQUEyQixtQkFBM0IsUUFBc0Qsb0JBQXREO0FBRUEsU0FBUyxpQkFBVCxFQUE0QixpQkFBNUIsUUFBcUQsc0JBQXJEO0FBQ0EsU0FBUyxZQUFULFFBQTZCLG9CQUE3QjtBQUdBLE9BQU0sU0FBVSxrQkFBVixDQUNKLFVBREksRUFFSixPQUFBLEdBQXVDLEVBRm5DLEVBRXFDO0FBRXpDLE1BQUksS0FBSyxJQUFJLFVBQVUsS0FBSyxNQUE1QixFQUFvQztBQUNsQyxVQUFNLElBQUksS0FBSixDQUFVLGdEQUFWLENBQU47QUFDRDs7QUFFRCxNQUNFLEtBQUssS0FDSixFQUFFLE9BQU8sQ0FBQyxRQUFSLElBQW9CLE9BQU8sQ0FBQyxrQkFBOUIsS0FDRSxPQUFPLENBQUMsUUFBUixJQUFvQixPQUFPLENBQUMsa0JBRjFCLENBRFAsRUFJRTtBQUNBLFVBQU0sSUFBSSxLQUFKLENBQ0osd0pBREksQ0FBTjtBQUdEOztBQUVELE1BQUksS0FBSyxJQUFJLE9BQU8sQ0FBQyxrQkFBckIsRUFBeUM7QUFDdkMsVUFBTSxJQUFJLEtBQUosQ0FDSixzSEFESSxDQUFOO0FBR0Q7O0FBRUQsU0FBTyxpQkFBaUIsQ0FBQztBQUN2QixJQUFBLFFBQVEsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVQsQ0FETTtBQUV2QixJQUFBLGNBQWMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLGNBQVQsQ0FGQTtBQUd2QixJQUFBLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsa0JBQVQ7QUFISixHQUFELENBQXhCO0FBS0QsQyxDQUVEOztBQUVBLE9BQU0sU0FBVSxRQUFWLENBQ0osT0FESSxFQUMyQjtBQUUvQixTQUFPLE9BQU8sQ0FBQyxZQUFSLENBQXFCLFFBQTVCO0FBQ0Q7QUFFRCxPQUFNLFNBQVUsY0FBVixDQUNKLE9BREksRUFDMkI7QUFFL0IsU0FBTyxPQUFPLENBQUMsWUFBUixDQUFxQixjQUE1QjtBQUNELEMsQ0FFRDs7QUFFQSxPQUFNLE1BQU8sbUJBQVAsQ0FBMEI7QUFDOUIsRUFBQSxXQUFBLENBQW9CLE9BQXBCLEVBQWtGO0FBQTlELFNBQUEsT0FBQSxHQUFBLE9BQUE7QUFFWixTQUFBLHNCQUFBLEdBQXlCLElBQUksT0FBSixFQUF6QjtBQUNBLFNBQUEsaUJBQUEsR0FBbUQsSUFBbkQ7QUFIOEU7O0FBSzlFLEVBQUEsbUJBQW1CLENBQUMsS0FBRCxFQUFTO0FBQ2xDLFFBQUksUUFBUSxHQUFHLEtBQUssc0JBQUwsQ0FBNEIsR0FBNUIsQ0FBZ0MsS0FBaEMsQ0FBZjs7QUFFQSxRQUFJLFFBQVEsS0FBSyxTQUFqQixFQUE0QjtBQUMxQixVQUFJO0FBQUUsUUFBQTtBQUFGLFVBQWMsSUFBbEI7QUFDQSxNQUFBLFFBQVEsR0FBRyxPQUFPLENBQUMsS0FBRCxDQUFsQjs7QUFFQSxVQUFJLEtBQUssSUFBSSxDQUFDLGlCQUFrQixDQUFDLEdBQW5CLENBQXVCLFFBQVEsQ0FBQyxZQUFoQyxDQUFkLEVBQTZEO0FBQzNEO0FBQ0EsY0FBTSxJQUFJLEtBQUosQ0FDSix5TUFBeU0sSUFBSSxDQUFDLFNBQUwsQ0FDdk0sUUFBUSxDQUFDLFlBRDhMLENBRXhNLGFBQWEsUUFBUSxJQUhsQixDQUFOO0FBS0Q7O0FBRUQsV0FBSyxzQkFBTCxDQUE0QixHQUE1QixDQUFnQyxLQUFoQyxFQUF1QyxRQUF2QztBQUNEOztBQUVELFdBQU8sUUFBUDtBQUNEOztBQUVELEVBQUEsY0FBYyxDQUFDLEtBQUQsRUFBcUI7QUFDakMsUUFBSSxLQUFLLEtBQUssU0FBZCxFQUF5QjtBQUN2QixVQUFJO0FBQUUsUUFBQTtBQUFGLFVBQXdCLElBQTVCOztBQUVBLFVBQUksaUJBQWlCLEtBQUssSUFBMUIsRUFBZ0M7QUFDOUIsWUFBSTtBQUFFLFVBQUE7QUFBRixZQUFjLElBQWxCO0FBQ0EsYUFBSyxpQkFBTCxHQUF5QixpQkFBaUIsR0FBRyxPQUFPLENBQUMsU0FBRCxDQUFwRDtBQUNEOztBQUVELGFBQU8saUJBQVA7QUFDRCxLQVRELE1BU087QUFDTCxhQUFPLEtBQUssbUJBQUwsQ0FBeUIsS0FBekIsQ0FBUDtBQUNEO0FBQ0Y7O0FBRUQsRUFBQSxTQUFTLENBQUMsVUFBRCxFQUFrQztBQUN6QyxXQUFPLENBQUMsTUFBRCxFQUFTLEVBQVQsS0FBZTtBQUNwQixVQUFJLEtBQUssR0FBRyxFQUFFLENBQUMsUUFBSCxFQUFaO0FBRUEsVUFBSSxPQUFPLEdBQUcsS0FBSyxtQkFBTCxDQUF5QixLQUF6QixDQUFkO0FBRUEsWUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxPQUFQLEVBQUQsRUFBbUIsUUFBbkIsQ0FBekI7QUFDQSxZQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsWUFBUixDQUFxQixVQUFyQixFQUFpQyxJQUFqQyxDQUFmOztBQUVBLFVBQUksY0FBYyxDQUFDLE9BQUQsQ0FBbEIsRUFBNkI7QUFDM0IsUUFBQSxFQUFFLENBQUMsb0JBQUgsQ0FBd0IsT0FBTyxDQUFDLGNBQVIsQ0FBdUIsTUFBdkIsQ0FBeEI7QUFDRDs7QUFFRCxVQUFJLFFBQVEsQ0FBQyxPQUFELENBQVosRUFBdUI7QUFDckIsZUFBTyxnQkFBZ0IsQ0FDckIsTUFBTyxPQUEyQyxDQUFDLFFBQTVDLENBQXFELE1BQXJELENBRGMsRUFFckIsSUFGcUIsRUFHckIsS0FBSyxJQUFJLE9BQU8sQ0FBQyxZQUFqQixJQUFpQyxPQUFPLENBQUMsWUFBUixDQUFxQixVQUFyQixDQUhaLENBQXZCO0FBS0QsT0FORCxNQU1PO0FBQ0wsZUFBTyxtQkFBUDtBQUNEO0FBQ0YsS0FyQkQ7QUFzQkQ7O0FBbEU2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvZW52JztcbmltcG9ydCB7XG4gIEhlbHBlcixcbiAgSGVscGVyQ2FwYWJpbGl0aWVzLFxuICBIZWxwZXJDYXBhYmlsaXRpZXNWZXJzaW9ucyxcbiAgSGVscGVyRGVmaW5pdGlvblN0YXRlLFxuICBIZWxwZXJNYW5hZ2VyLFxuICBIZWxwZXJNYW5hZ2VyV2l0aERlc3Ryb3lhYmxlLFxuICBIZWxwZXJNYW5hZ2VyV2l0aFZhbHVlLFxuICBJbnRlcm5hbEhlbHBlck1hbmFnZXIsXG4gIE93bmVyLFxufSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNyZWF0ZUNvbXB1dGVSZWYsIFVOREVGSU5FRF9SRUZFUkVOQ0UgfSBmcm9tICdAZ2xpbW1lci9yZWZlcmVuY2UnO1xuXG5pbXBvcnQgeyBidWlsZENhcGFiaWxpdGllcywgRlJPTV9DQVBBQklMSVRJRVMgfSBmcm9tICcuLi91dGlsL2NhcGFiaWxpdGllcyc7XG5pbXBvcnQgeyBhcmdzUHJveHlGb3IgfSBmcm9tICcuLi91dGlsL2FyZ3MtcHJveHknO1xuaW1wb3J0IHsgTWFuYWdlckZhY3RvcnkgfSBmcm9tICcuL2luZGV4JztcblxuZXhwb3J0IGZ1bmN0aW9uIGhlbHBlckNhcGFiaWxpdGllczxWZXJzaW9uIGV4dGVuZHMga2V5b2YgSGVscGVyQ2FwYWJpbGl0aWVzVmVyc2lvbnM+KFxuICBtYW5hZ2VyQVBJOiBWZXJzaW9uLFxuICBvcHRpb25zOiBQYXJ0aWFsPEhlbHBlckNhcGFiaWxpdGllcz4gPSB7fVxuKTogSGVscGVyQ2FwYWJpbGl0aWVzIHtcbiAgaWYgKERFQlVHICYmIG1hbmFnZXJBUEkgIT09ICczLjIzJykge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBoZWxwZXIgbWFuYWdlciBjb21wYXRpYmlsaXR5IHNwZWNpZmllZCcpO1xuICB9XG5cbiAgaWYgKFxuICAgIERFQlVHICYmXG4gICAgKCEob3B0aW9ucy5oYXNWYWx1ZSB8fCBvcHRpb25zLmhhc1NjaGVkdWxlZEVmZmVjdCkgfHxcbiAgICAgIChvcHRpb25zLmhhc1ZhbHVlICYmIG9wdGlvbnMuaGFzU2NoZWR1bGVkRWZmZWN0KSlcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ1lvdSBtdXN0IHBhc3MgZWl0aGVyIHRoZSBgaGFzVmFsdWVgIE9SIHRoZSBgaGFzU2NoZWR1bGVkRWZmZWN0YCBjYXBhYmlsaXR5IHdoZW4gZGVmaW5pbmcgYSBoZWxwZXIgbWFuYWdlci4gUGFzc2luZyBuZWl0aGVyLCBvciBib3RoLCBpcyBub3QgcGVybWl0dGVkLidcbiAgICApO1xuICB9XG5cbiAgaWYgKERFQlVHICYmIG9wdGlvbnMuaGFzU2NoZWR1bGVkRWZmZWN0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ1RoZSBgaGFzU2NoZWR1bGVkRWZmZWN0YCBjYXBhYmlsaXR5IGhhcyBub3QgeWV0IGJlZW4gaW1wbGVtZW50ZWQgZm9yIGhlbHBlciBtYW5hZ2Vycy4gUGxlYXNlIHBhc3MgYGhhc1ZhbHVlYCBpbnN0ZWFkJ1xuICAgICk7XG4gIH1cblxuICByZXR1cm4gYnVpbGRDYXBhYmlsaXRpZXMoe1xuICAgIGhhc1ZhbHVlOiBCb29sZWFuKG9wdGlvbnMuaGFzVmFsdWUpLFxuICAgIGhhc0Rlc3Ryb3lhYmxlOiBCb29sZWFuKG9wdGlvbnMuaGFzRGVzdHJveWFibGUpLFxuICAgIGhhc1NjaGVkdWxlZEVmZmVjdDogQm9vbGVhbihvcHRpb25zLmhhc1NjaGVkdWxlZEVmZmVjdCksXG4gIH0pO1xufVxuXG4vLy8vLy8vLy8vLy9cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc1ZhbHVlKFxuICBtYW5hZ2VyOiBIZWxwZXJNYW5hZ2VyPHVua25vd24+XG4pOiBtYW5hZ2VyIGlzIEhlbHBlck1hbmFnZXJXaXRoVmFsdWU8dW5rbm93bj4ge1xuICByZXR1cm4gbWFuYWdlci5jYXBhYmlsaXRpZXMuaGFzVmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNEZXN0cm95YWJsZShcbiAgbWFuYWdlcjogSGVscGVyTWFuYWdlcjx1bmtub3duPlxuKTogbWFuYWdlciBpcyBIZWxwZXJNYW5hZ2VyV2l0aERlc3Ryb3lhYmxlPHVua25vd24+IHtcbiAgcmV0dXJuIG1hbmFnZXIuY2FwYWJpbGl0aWVzLmhhc0Rlc3Ryb3lhYmxlO1xufVxuXG4vLy8vLy8vLy8vLy9cblxuZXhwb3J0IGNsYXNzIEN1c3RvbUhlbHBlck1hbmFnZXI8TyBleHRlbmRzIE93bmVyID0gT3duZXI+IGltcGxlbWVudHMgSW50ZXJuYWxIZWxwZXJNYW5hZ2VyPE8+IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYWN0b3J5OiBNYW5hZ2VyRmFjdG9yeTxPIHwgdW5kZWZpbmVkLCBIZWxwZXJNYW5hZ2VyPHVua25vd24+Pikge31cblxuICBwcml2YXRlIGhlbHBlck1hbmFnZXJEZWxlZ2F0ZXMgPSBuZXcgV2Vha01hcDxPLCBIZWxwZXJNYW5hZ2VyPHVua25vd24+PigpO1xuICBwcml2YXRlIHVuZGVmaW5lZERlbGVnYXRlOiBIZWxwZXJNYW5hZ2VyPHVua25vd24+IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBnZXREZWxlZ2F0ZUZvck93bmVyKG93bmVyOiBPKSB7XG4gICAgbGV0IGRlbGVnYXRlID0gdGhpcy5oZWxwZXJNYW5hZ2VyRGVsZWdhdGVzLmdldChvd25lcik7XG5cbiAgICBpZiAoZGVsZWdhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgbGV0IHsgZmFjdG9yeSB9ID0gdGhpcztcbiAgICAgIGRlbGVnYXRlID0gZmFjdG9yeShvd25lcik7XG5cbiAgICAgIGlmIChERUJVRyAmJiAhRlJPTV9DQVBBQklMSVRJRVMhLmhhcyhkZWxlZ2F0ZS5jYXBhYmlsaXRpZXMpKSB7XG4gICAgICAgIC8vIFRPRE86IFRoaXMgZXJyb3IgbWVzc2FnZSBzaG91bGQgbWFrZSBzZW5zZSBpbiBib3RoIEVtYmVyIGFuZCBHbGltbWVyIGh0dHBzOi8vZ2l0aHViLmNvbS9nbGltbWVyanMvZ2xpbW1lci12bS9pc3N1ZXMvMTIwMFxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEN1c3RvbSBoZWxwZXIgbWFuYWdlcnMgbXVzdCBoYXZlIGEgXFxgY2FwYWJpbGl0aWVzXFxgIHByb3BlcnR5IHRoYXQgaXMgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBcXGBjYXBhYmlsaXRpZXMoJzMuMjMnKVxcYCAoaW1wb3J0ZWQgdmlhIFxcYGltcG9ydCB7IGNhcGFiaWxpdGllcyB9IGZyb20gJ0BlbWJlci9oZWxwZXInO1xcYCkuIFJlY2VpdmVkOiBcXGAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAgZGVsZWdhdGUuY2FwYWJpbGl0aWVzXG4gICAgICAgICAgKX1cXGAgZm9yOiBcXGAke2RlbGVnYXRlfVxcYGBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5oZWxwZXJNYW5hZ2VyRGVsZWdhdGVzLnNldChvd25lciwgZGVsZWdhdGUpO1xuICAgIH1cblxuICAgIHJldHVybiBkZWxlZ2F0ZTtcbiAgfVxuXG4gIGdldERlbGVnYXRlRm9yKG93bmVyOiBPIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKG93bmVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGxldCB7IHVuZGVmaW5lZERlbGVnYXRlIH0gPSB0aGlzO1xuXG4gICAgICBpZiAodW5kZWZpbmVkRGVsZWdhdGUgPT09IG51bGwpIHtcbiAgICAgICAgbGV0IHsgZmFjdG9yeSB9ID0gdGhpcztcbiAgICAgICAgdGhpcy51bmRlZmluZWREZWxlZ2F0ZSA9IHVuZGVmaW5lZERlbGVnYXRlID0gZmFjdG9yeSh1bmRlZmluZWQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkRGVsZWdhdGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmdldERlbGVnYXRlRm9yT3duZXIob3duZXIpO1xuICAgIH1cbiAgfVxuXG4gIGdldEhlbHBlcihkZWZpbml0aW9uOiBIZWxwZXJEZWZpbml0aW9uU3RhdGUpOiBIZWxwZXIge1xuICAgIHJldHVybiAodm1BcmdzLCB2bSkgPT4ge1xuICAgICAgbGV0IG93bmVyID0gdm0uZ2V0T3duZXIoKSBhcyBPO1xuXG4gICAgICBsZXQgbWFuYWdlciA9IHRoaXMuZ2V0RGVsZWdhdGVGb3JPd25lcihvd25lcik7XG5cbiAgICAgIGNvbnN0IGFyZ3MgPSBhcmdzUHJveHlGb3Iodm1BcmdzLmNhcHR1cmUoKSwgJ2hlbHBlcicpO1xuICAgICAgY29uc3QgYnVja2V0ID0gbWFuYWdlci5jcmVhdGVIZWxwZXIoZGVmaW5pdGlvbiwgYXJncyk7XG5cbiAgICAgIGlmIChoYXNEZXN0cm95YWJsZShtYW5hZ2VyKSkge1xuICAgICAgICB2bS5hc3NvY2lhdGVEZXN0cm95YWJsZShtYW5hZ2VyLmdldERlc3Ryb3lhYmxlKGJ1Y2tldCkpO1xuICAgICAgfVxuXG4gICAgICBpZiAoaGFzVmFsdWUobWFuYWdlcikpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUNvbXB1dGVSZWYoXG4gICAgICAgICAgKCkgPT4gKG1hbmFnZXIgYXMgSGVscGVyTWFuYWdlcldpdGhWYWx1ZTx1bmtub3duPikuZ2V0VmFsdWUoYnVja2V0KSxcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIERFQlVHICYmIG1hbmFnZXIuZ2V0RGVidWdOYW1lICYmIG1hbmFnZXIuZ2V0RGVidWdOYW1lKGRlZmluaXRpb24pXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gVU5ERUZJTkVEX1JFRkVSRU5DRTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG59XG4iXSwic291cmNlUm9vdCI6IiJ9
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL3B1YmxpYy9oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUyx5QkFBVCxRQUEwQyxzQkFBMUM7QUFDQSxTQUFTLEtBQVQsUUFBc0IsY0FBdEI7QUFZQSxTQUFTLGdCQUFULEVBQTJCLGNBQTNCLEVBQTJDLG1CQUEzQyxRQUFzRSxvQkFBdEU7QUFFQSxTQUFTLGlCQUFULEVBQTRCLGlCQUE1QixRQUFxRCxzQkFBckQ7QUFDQSxTQUFTLFlBQVQsUUFBNkIsb0JBQTdCO0FBR0EsT0FBTSxTQUFVLGtCQUFWLENBQ0osVUFESSxFQUVKLE9BQUEsR0FBdUMsRUFGbkMsRUFFcUM7QUFFekMsTUFBSSxLQUFLLElBQUksVUFBVSxLQUFLLE1BQTVCLEVBQW9DO0FBQ2xDLFVBQU0sSUFBSSxLQUFKLENBQVUsZ0RBQVYsQ0FBTjtBQUNEOztBQUVELE1BQ0UsS0FBSyxLQUNKLEVBQUUsT0FBTyxDQUFDLFFBQVIsSUFBb0IsT0FBTyxDQUFDLGtCQUE5QixLQUNFLE9BQU8sQ0FBQyxRQUFSLElBQW9CLE9BQU8sQ0FBQyxrQkFGMUIsQ0FEUCxFQUlFO0FBQ0EsVUFBTSxJQUFJLEtBQUosQ0FDSix3SkFESSxDQUFOO0FBR0Q7O0FBRUQsTUFBSSxLQUFLLElBQUksT0FBTyxDQUFDLGtCQUFyQixFQUF5QztBQUN2QyxVQUFNLElBQUksS0FBSixDQUNKLHNIQURJLENBQU47QUFHRDs7QUFFRCxTQUFPLGlCQUFpQixDQUFDO0FBQ3ZCLElBQUEsUUFBUSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBVCxDQURNO0FBRXZCLElBQUEsY0FBYyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsY0FBVCxDQUZBO0FBR3ZCLElBQUEsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxrQkFBVDtBQUhKLEdBQUQsQ0FBeEI7QUFLRCxDLENBRUQ7O0FBRUEsT0FBTSxTQUFVLFFB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TUFBcUIsSUFBckIsSUFBcUIsRUFBQSxLQUFBLEtBQUEsQ0FBckIsR0FBcUIsS0FBQSxDQUFyQixHQUFxQixFQUFBLENBQUEsSUFBQSxDQUFwQixPQUFvQixFQUFHLFVBQUgsQ0FBckIsTUFBa0MsSUFBbEMsSUFBa0MsRUFBQSxLQUFBLEtBQUEsQ0FBbEMsR0FBa0MsRUFBbEMsR0FBdUMsZ0JBQTNDLENBRmlCLENBQXhCO0FBS0EsUUFBQSx5QkFBeUIsQ0FBQyxHQUFELEVBQU0sT0FBTyxDQUFDLGNBQVIsQ0FBdUIsTUFBdkIsQ0FBTixDQUF6QjtBQUVBLGVBQU8sR0FBUDtBQUNELE9BVE0sTUFTQTtBQUNMLGVBQU8sbUJBQVA7QUFDRDtBQUNGLEtBOUJEO0FBK0JEOztBQTNFNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhc3NvY2lhdGVEZXN0cm95YWJsZUNoaWxkIH0gZnJvbSAnQGdsaW1tZXIvZGVzdHJveWFibGUnO1xuaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuaW1wb3J0IHtcbiAgSGVscGVyLFxuICBIZWxwZXJDYXBhYmlsaXRpZXMsXG4gIEhlbHBlckNhcGFiaWxpdGllc1ZlcnNpb25zLFxuICBIZWxwZXJEZWZpbml0aW9uU3RhdGUsXG4gIEhlbHBlck1hbmFnZXIsXG4gIEhlbHBlck1hbmFnZXJXaXRoRGVzdHJveWFibGUsXG4gIEhlbHBlck1hbmFnZXJXaXRoVmFsdWUsXG4gIEludGVybmFsSGVscGVyTWFuYWdlcixcbiAgT3duZXIsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY3JlYXRlQ29tcHV0ZVJlZiwgY3JlYXRlQ29uc3RSZWYsIFVOREVGSU5FRF9SRUZFUkVOQ0UgfSBmcm9tICdAZ2xpbW1lci9yZWZlcmVuY2UnO1xuXG5pbXBvcnQgeyBidWlsZENhcGFiaWxpdGllcywgRlJPTV9DQVBBQklMSVRJRVMgfSBmcm9tICcuLi91dGlsL2NhcGFiaWxpdGllcyc7XG5pbXBvcnQgeyBhcmdzUHJveHlGb3IgfSBmcm9tICcuLi91dGlsL2FyZ3MtcHJveHknO1xuaW1wb3J0IHsgTWFuYWdlckZhY3RvcnkgfSBmcm9tICcuL2luZGV4JztcblxuZXhwb3J0IGZ1bmN0aW9uIGhlbHBlckNhcGFiaWxpdGllczxWZXJzaW9uIGV4dGVuZHMga2V5b2YgSGVscGVyQ2FwYWJpbGl0aWVzVmVyc2lvbnM+KFxuICBtYW5hZ2VyQVBJOiBWZXJzaW9uLFxuICBvcHRpb25zOiBQYXJ0aWFsPEhlbHBlckNhcGFiaWxpdGllcz4gPSB7fVxuKTogSGVscGVyQ2FwYWJpbGl0aWVzIHtcbiAgaWYgKERFQlVHICYmIG1hbmFnZXJBUEkgIT09ICczLjIzJykge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBoZWxwZXIgbWFuYWdlciBjb21wYXRpYmlsaXR5IHNwZWNpZmllZCcpO1xuICB9XG5cbiAgaWYgKFxuICAgIERFQlVHICYmXG4gICAgKCEob3B0aW9ucy5oYXNWYWx1ZSB8fCBvcHRpb25zLmhhc1NjaGVkdWxlZEVmZmVjdCkgfHxcbiAgICAgIChvcHRpb25zLmhhc1ZhbHVlICYmIG9wdGlvbnMuaGFzU2NoZWR1bGVkRWZmZWN0KSlcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ1lvdSBtdXN0IHBhc3MgZWl0aGVyIHRoZSBgaGFzVmFsdWVgIE9SIHRoZSBgaGFzU2NoZWR1bGVkRWZmZWN0YCBjYXBhYmlsaXR5IHdoZW4gZGVmaW5pbmcgYSBoZWxwZXIgbWFuYWdlci4gUGFzc2luZyBuZWl0aGVyLCBvciBib3RoLCBpcyBub3QgcGVybWl0dGVkLidcbiAgICApO1xuICB9XG5cbiAgaWYgKERFQlVHICYmIG9wdGlvbnMuaGFzU2NoZWR1bGVkRWZmZWN0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ1RoZSBgaGFzU2NoZWR1bGVkRWZmZWN0YCBjYXBhYmlsaXR5IGhhcyBub3QgeWV0IGJlZW4gaW1wbGVtZW50ZWQgZm9yIGhlbHBlciBtYW5hZ2Vycy4gUGxlYXNlIHBhc3MgYGhhc1ZhbHVlYCBpbnN0ZWFkJ1xuICAgICk7XG4gIH1cblxuICByZXR1cm4gYnVpbGRDYXBhYmlsaXRpZXMoe1xuICAgIGhhc1ZhbHVlOiBCb29sZWFuKG9wdGlvbnMuaGFzVmFsdWUpLFxuICAgIGhhc0Rlc3Ryb3lhYmxlOiBCb29sZWFuKG9wdGlvbnMuaGFzRGVzdHJveWFibGUpLFxuICAgIGhhc1NjaGVkdWxlZEVmZmVjdDogQm9vbGVhbihvcHRpb25zLmhhc1NjaGVkdWxlZEVmZmVjdCksXG4gIH0pO1xufVxuXG4vLy8vLy8vLy8vLy9cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc1ZhbHVlKFxuICBtYW5hZ2VyOiBIZWxwZXJNYW5hZ2VyPHVua25vd24+XG4pOiBtYW5hZ2VyIGlzIEhlbHBlck1hbmFnZXJXaXRoVmFsdWU8dW5rbm93bj4ge1xuICByZXR1cm4gbWFuYWdlci5jYXBhYmlsaXRpZXMuaGFzVmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNEZXN0cm95YWJsZShcbiAgbWFuYWdlcjogSGVscGVyTWFuYWdlcjx1bmtub3duPlxuKTogbWFuYWdlciBpcyBIZWxwZXJNYW5hZ2VyV2l0aERlc3Ryb3lhYmxlPHVua25vd24+IHtcbiAgcmV0dXJuIG1hbmFnZXIuY2FwYWJpbGl0aWVzLmhhc0Rlc3Ryb3lhYmxlO1xufVxuXG4vLy8vLy8vLy8vLy9cblxuZXhwb3J0IGNsYXNzIEN1c3RvbUhlbHBlck1hbmFnZXI8TyBleHRlbmRzIE93bmVyID0gT3duZXI+IGltcGxlbWVudHMgSW50ZXJuYWxIZWxwZXJNYW5hZ2VyPE8+IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYWN0b3J5OiBNYW5hZ2VyRmFjdG9yeTxPIHwgdW5kZWZpbmVkLCBIZWxwZXJNYW5hZ2VyPHVua25vd24+Pikge31cblxuICBwcml2YXRlIGhlbHBlck1hbmFnZXJEZWxlZ2F0ZXMgPSBuZXcgV2Vha01hcDxPLCBIZWxwZXJNYW5hZ2VyPHVua25vd24+PigpO1xuICBwcml2YXRlIHVuZGVmaW5lZERlbGVnYXRlOiBIZWxwZXJNYW5hZ2VyPHVua25vd24+IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBnZXREZWxlZ2F0ZUZvck93bmVyKG93bmVyOiBPKSB7XG4gICAgbGV0IGRlbGVnYXRlID0gdGhpcy5oZWxwZXJNYW5hZ2VyRGVsZWdhdGVzLmdldChvd25lcik7XG5cbiAgICBpZiAoZGVsZWdhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgbGV0IHsgZmFjdG9yeSB9ID0gdGhpcztcbiAgICAgIGRlbGVnYXRlID0gZmFjdG9yeShvd25lcik7XG5cbiAgICAgIGlmIChERUJVRyAmJiAhRlJPTV9DQVBBQklMSVRJRVMhLmhhcyhkZWxlZ2F0ZS5jYXBhYmlsaXRpZXMpKSB7XG4gICAgICAgIC8vIFRPRE86IFRoaXMgZXJyb3IgbWVzc2FnZSBzaG91bGQgbWFrZSBzZW5zZSBpbiBib3RoIEVtYmVyIGFuZCBHbGltbWVyIGh0dHBzOi8vZ2l0aHViLmNvbS9nbGltbWVyanMvZ2xpbW1lci12bS9pc3N1ZXMvMTIwMFxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEN1c3RvbSBoZWxwZXIgbWFuYWdlcnMgbXVzdCBoYXZlIGEgXFxgY2FwYWJpbGl0aWVzXFxgIHByb3BlcnR5IHRoYXQgaXMgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBcXGBjYXBhYmlsaXRpZXMoJzMuMjMnKVxcYCAoaW1wb3J0ZWQgdmlhIFxcYGltcG9ydCB7IGNhcGFiaWxpdGllcyB9IGZyb20gJ0BlbWJlci9oZWxwZXInO1xcYCkuIFJlY2VpdmVkOiBcXGAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAgZGVsZWdhdGUuY2FwYWJpbGl0aWVzXG4gICAgICAgICAgKX1cXGAgZm9yOiBcXGAke2RlbGVnYXRlfVxcYGBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5oZWxwZXJNYW5hZ2VyRGVsZWdhdGVzLnNldChvd25lciwgZGVsZWdhdGUpO1xuICAgIH1cblxuICAgIHJldHVybiBkZWxlZ2F0ZTtcbiAgfVxuXG4gIGdldERlbGVnYXRlRm9yKG93bmVyOiBPIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKG93bmVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGxldCB7IHVuZGVmaW5lZERlbGVnYXRlIH0gPSB0aGlzO1xuXG4gICAgICBpZiAodW5kZWZpbmVkRGVsZWdhdGUgPT09IG51bGwpIHtcbiAgICAgICAgbGV0IHsgZmFjdG9yeSB9ID0gdGhpcztcbiAgICAgICAgdGhpcy51bmRlZmluZWREZWxlZ2F0ZSA9IHVuZGVmaW5lZERlbGVnYXRlID0gZmFjdG9yeSh1bmRlZmluZWQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkRGVsZWdhdGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmdldERlbGVnYXRlRm9yT3duZXIob3duZXIpO1xuICAgIH1cbiAgfVxuXG4gIGdldEhlbHBlcihkZWZpbml0aW9uOiBIZWxwZXJEZWZpbml0aW9uU3RhdGUpOiBIZWxwZXIge1xuICAgIHJldHVybiAoY2FwdHVyZWRBcmdzLCBvd25lcikgPT4ge1xuICAgICAgbGV0IG1hbmFnZXIgPSB0aGlzLmdldERlbGVnYXRlRm9yKG93bmVyIGFzIE8gfCB1bmRlZmluZWQpO1xuXG4gICAgICBjb25zdCBhcmdzID0gYXJnc1Byb3h5Rm9yKGNhcHR1cmVkQXJncywgJ2hlbHBlcicpO1xuICAgICAgY29uc3QgYnVja2V0ID0gbWFuYWdlci5jcmVhdGVIZWxwZXIoZGVmaW5pdGlvbiwgYXJncyk7XG5cbiAgICAgIGlmIChoYXNWYWx1ZShtYW5hZ2VyKSkge1xuICAgICAgICBsZXQgY2FjaGUgPSBjcmVhdGVDb21wdXRlUmVmKFxuICAgICAgICAgICgpID0+IChtYW5hZ2VyIGFzIEhlbHBlck1hbmFnZXJXaXRoVmFsdWU8dW5rbm93bj4pLmdldFZhbHVlKGJ1Y2tldCksXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICBERUJVRyAmJiBtYW5hZ2VyLmdldERlYnVnTmFtZSAmJiBtYW5hZ2VyLmdldERlYnVnTmFtZShkZWZpbml0aW9uKVxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChoYXNEZXN0cm95YWJsZShtYW5hZ2VyKSkge1xuICAgICAgICAgIGFzc29jaWF0ZURlc3Ryb3lhYmxlQ2hpbGQoY2FjaGUsIG1hbmFnZXIuZ2V0RGVzdHJveWFibGUoYnVja2V0KSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2FjaGU7XG4gICAgICB9IGVsc2UgaWYgKGhhc0Rlc3Ryb3lhYmxlKG1hbmFnZXIpKSB7XG4gICAgICAgIGxldCByZWYgPSBjcmVhdGVDb25zdFJlZihcbiAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgREVCVUcgJiYgKG1hbmFnZXIuZ2V0RGVidWdOYW1lPy4oZGVmaW5pdGlvbikgPz8gJ3Vua25vd24gaGVscGVyJylcbiAgICAgICAgKTtcblxuICAgICAgICBhc3NvY2lhdGVEZXN0cm95YWJsZUNoaWxkKHJlZiwgbWFuYWdlci5nZXREZXN0cm95YWJsZShidWNrZXQpKTtcblxuICAgICAgICByZXR1cm4gcmVmO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFVOREVGSU5FRF9SRUZFUkVOQ0U7XG4gICAgICB9XG4gICAgfTtcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==

@@ -5,3 +5,3 @@ import { DEBUG } from '@glimmer/env';

import { valueForRef } from '@glimmer/reference';
import { dict } from '@glimmer/util';
import { assign, dict } from '@glimmer/util';
import { createUpdatableTag, deprecateMutationsInTrackingTransaction, untrack } from '@glimmer/validator';

@@ -77,5 +77,4 @@ import { buildCapabilities, FROM_CAPABILITIES } from '../util/capabilities';

create(owner, element, definition, vmArgs) {
create(owner, element, definition, capturedArgs) {
let delegate = this.getDelegateFor(owner);
let capturedArgs = vmArgs.capture();
let {

@@ -94,3 +93,3 @@ useArgsProxy,

create(args) {
let params = Object.assign({}, args);
let params = assign({}, args);
setOwner(params, owner);

@@ -211,2 +210,2 @@ return definition.create(args);

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL3B1YmxpYy9tb2RpZmllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUFTLEtBQVQsUUFBc0IsY0FBdEI7QUFXQSxTQUFTLGtCQUFULFFBQW1DLHNCQUFuQztBQUNBLFNBQVMsUUFBVCxRQUF5QixnQkFBekI7QUFDQSxTQUFTLFdBQVQsUUFBNEIsb0JBQTVCO0FBQ0EsU0FBUyxJQUFULFFBQXFCLGVBQXJCO0FBQ0EsU0FDRSxrQkFERixFQUVFLHVDQUZGLEVBR0UsT0FIRixRQUtPLG9CQUxQO0FBT0EsU0FBUyxpQkFBVCxFQUE0QixpQkFBNUIsUUFBcUQsc0JBQXJEO0FBQ0EsU0FBUyxZQUFULFFBQTZCLG9CQUE3QjtBQUdBLE9BQU0sU0FBVSxvQkFBVixDQUNKLFVBREksRUFFSixnQkFBQSxHQUEwRCxFQUZ0RCxFQUV3RDtBQUU1RCxNQUFJLEtBQUssSUFBSSxVQUFVLEtBQUssTUFBeEIsSUFBa0MsVUFBVSxLQUFLLE1BQXJELEVBQTZEO0FBQzNELFVBQU0sSUFBSSxLQUFKLENBQVUsa0RBQVYsQ0FBTjtBQUNEOztBQUVELFNBQU8saUJBQWlCLENBQUM7QUFDdkIsSUFBQSxtQkFBbUIsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsbUJBQWxCLENBREw7QUFFdkIsSUFBQSxZQUFZLEVBQUUsVUFBVSxLQUFLLE1BQWYsR0FBd0IsS0FBeEIsR0FBZ0MsSUFGdkI7QUFJdkI7QUFDQTtBQUNBLElBQUEsbUJBQW1CLEVBQUUsVUFBVSxLQUFLO0FBTmIsR0FBRCxDQUF4QjtBQVFEO0FBZUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF3QkEsT0FBTSxNQUFPLHFCQUFQLENBQTRCO0FBSWhDLEVBQUEsV0FBQSxDQUFvQixPQUFwQixFQUFpRjtBQUE3RCxTQUFBLE9BQUEsR0FBQSxPQUFBO0FBRlosU0FBQSx5QkFBQSxHQUE0QixJQUFJLE9BQUosRUFBNUI7QUFF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QUFQLENBQVA7QUFDRCxLQUZELE1BRU87QUFDTCxNQUFBLFFBQVEsQ0FBQyxjQUFULENBQXdCLFFBQXhCLEVBQWtDLElBQWxDO0FBQ0Q7QUFDRjs7QUFFRCxFQUFBLGNBQWMsQ0FBQyxLQUFELEVBQTZDO0FBQ3pELFdBQU8sS0FBUDtBQUNEOztBQTlIK0I7QUFpSWxDLE9BQU0sU0FBVSxTQUFWLENBQW9CO0FBQ3hCLEVBQUEsS0FEd0I7QUFFeEIsRUFBQTtBQUZ3QixDQUFwQixFQUdjO0FBQ2xCLE1BQUksWUFBWSxHQUFHLElBQUksRUFBdkI7O0FBRUEsT0FBSyxJQUFJLEdBQVQsSUFBZ0IsS0FBaEIsRUFBdUI7QUFDckIsSUFBQSxZQUFZLENBQUMsR0FBRCxDQUFaLEdBQW9CLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRCxDQUFOLENBQS9CO0FBQ0Q7O0FBRUQsTUFBSSxpQkFBaUIsR0FBRyxVQUFVLENBQUMsR0FBWCxDQUFlLFdBQWYsQ0FBeEI7QUFFQSxTQUFPO0FBQ0wsSUFBQSxLQUFLLEVBQUUsWUFERjtBQUVMLElBQUEsVUFBVSxFQUFFO0FBRlAsR0FBUDtBQUlEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuaW1wb3J0IHtcbiAgQXJndW1lbnRzLFxuICBDYXB0dXJlZEFyZ3VtZW50cyxcbiAgSW50ZXJuYWxNb2RpZmllck1hbmFnZXIsXG4gIE1vZGlmaWVyQ2FwYWJpbGl0aWVzLFxuICBNb2RpZmllckNhcGFiaWxpdGllc1ZlcnNpb25zLFxuICBNb2RpZmllck1hbmFnZXIsXG4gIE93bmVyLFxuICBWTUFyZ3VtZW50cyxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyByZWdpc3RlckRlc3RydWN0b3IgfSBmcm9tICdAZ2xpbW1lci9kZXN0cm95YWJsZSc7XG5pbXBvcnQgeyBzZXRPd25lciB9IGZyb20gJ0BnbGltbWVyL293bmVyJztcbmltcG9ydCB7IHZhbHVlRm9yUmVmIH0gZnJvbSAnQGdsaW1tZXIvcmVmZXJlbmNlJztcbmltcG9ydCB7IGRpY3QgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7XG4gIGNyZWF0ZVVwZGF0YWJsZVRhZyxcbiAgZGVwcmVjYXRlTXV0YXRpb25zSW5UcmFja2luZ1RyYW5zYWN0aW9uLFxuICB1bnRyYWNrLFxuICBVcGRhdGFibGVUYWcsXG59IGZyb20gJ0BnbGltbWVyL3ZhbGlkYXRvcic7XG5pbXBvcnQgeyBTaW1wbGVFbGVtZW50IH0gZnJvbSAnQHNpbXBsZS1kb20vaW50ZXJmYWNlJztcbmltcG9ydCB7IGJ1aWxkQ2FwYWJpbGl0aWVzLCBGUk9NX0NBUEFCSUxJVElFUyB9IGZyb20gJy4uL3V0aWwvY2FwYWJpbGl0aWVzJztcbmltcG9ydCB7IGFyZ3NQcm94eUZvciB9IGZyb20gJy4uL3V0aWwvYXJncy1wcm94eSc7XG5pbXBvcnQgeyBNYW5hZ2VyRmFjdG9yeSB9IGZyb20gJy4nO1xuXG5leHBvcnQgZnVuY3Rpb24gbW9kaWZpZXJDYXBhYmlsaXRpZXM8VmVyc2lvbiBleHRlbmRzIGtleW9mIE1vZGlmaWVyQ2FwYWJpbGl0aWVzVmVyc2lvbnM+KFxuICBtYW5hZ2VyQVBJOiBWZXJzaW9uLFxuICBvcHRpb25hbEZlYXR1cmVzOiBNb2RpZmllckNhcGFiaWxpdGllc1ZlcnNpb25zW1ZlcnNpb25dID0ge31cbik6IE1vZGlmaWVyQ2FwYWJpbGl0aWVzIHtcbiAgaWYgKERFQlVHICYmIG1hbmFnZXJBUEkgIT09ICczLjEzJyAmJiBtYW5hZ2VyQVBJICE9PSAnMy4yMicpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgbW9kaWZpZXIgbWFuYWdlciBjb21wYXRpYmlsaXR5IHNwZWNpZmllZCcpO1xuICB9XG5cbiAgcmV0dXJuIGJ1aWxkQ2FwYWJpbGl0aWVzKHtcbiAgICBkaXNhYmxlQXV0b1RyYWNraW5nOiBCb29sZWFuKG9wdGlvbmFsRmVhdHVyZXMuZGlzYWJsZUF1dG9UcmFja2luZyksXG4gICAgdXNlQXJnc1Byb3h5OiBtYW5hZ2VyQVBJID09PSAnMy4xMycgPyBmYWxzZSA6IHRydWUsXG5cbiAgICAvLyBUaGlzIGNhcGFiaWxpdHkgaXMgdXNlZCBpbiBFbWJlciwgZXhjbHVzaXZlbHkgaW4gcmVzb2x1dGlvbiBtb2RlLiBTZWUgdGhlXG4gICAgLy8gRW1iZXIgZ2xpbW1lciByZXNvbHZlciBmb3IgZGV0YWlscy5cbiAgICBwYXNzRmFjdG9yeVRvQ3JlYXRlOiBtYW5hZ2VyQVBJID09PSAnMy4xMycsXG4gIH0pO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT4ge1xuICB0YWc6IFVwZGF0YWJsZVRhZztcbiAgZWxlbWVudDogU2ltcGxlRWxlbWVudDtcbiAgbW9kaWZpZXI6IE1vZGlmaWVySW5zdGFuY2U7XG4gIGRlbGVnYXRlOiBNb2RpZmllck1hbmFnZXI8TW9kaWZpZXJJbnN0YW5jZT47XG4gIGFyZ3M6IEFyZ3VtZW50cztcbiAgZGVidWdOYW1lPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgRmFjdG9yeSB7XG4gIGNyZWF0ZShwYXJhbXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogb2JqZWN0O1xufVxuXG4vKipcbiAgVGhlIEN1c3RvbU1vZGlmaWVyTWFuYWdlciBhbGxvd3MgYWRkb25zIHRvIHByb3ZpZGUgY3VzdG9tIG1vZGlmaWVyXG4gIGltcGxlbWVudGF0aW9ucyB0aGF0IGludGVncmF0ZSBzZWFtbGVzc2x5IGludG8gRW1iZXIuIFRoaXMgaXMgYWNjb21wbGlzaGVkXG4gIHRocm91Z2ggYSBkZWxlZ2F0ZSwgcmVnaXN0ZXJlZCB3aXRoIHRoZSBjdXN0b20gbW9kaWZpZXIgbWFuYWdlciwgd2hpY2hcbiAgaW1wbGVtZW50cyBhIHNldCBvZiBob29rcyB0aGF0IGRldGVybWluZSBtb2RpZmllciBiZWhhdmlvci5cbiAgVG8gY3JlYXRlIGEgY3VzdG9tIG1vZGlmaWVyIG1hbmFnZXIsIGluc3RhbnRpYXRlIGEgbmV3IEN1c3RvbU1vZGlmaWVyTWFuYWdlclxuICBjbGFzcyBhbmQgcGFzcyB0aGUgZGVsZWdhdGUgYXMgdGhlIGZpcnN0IGFyZ3VtZW50OlxuXG4gIGBgYGpzXG4gIGxldCBtYW5hZ2VyID0gbmV3IEN1c3RvbU1vZGlmaWVyTWFuYWdlcih7XG4gICAgLy8gLi4uZGVsZWdhdGUgaW1wbGVtZW50YXRpb24uLi5cbiAgfSk7XG4gIGBgYFxuXG4gICMjIERlbGVnYXRlIEhvb2tzXG5cbiAgVGhyb3VnaG91dCB0aGUgbGlmZWN5Y2xlIG9mIGEgbW9kaWZpZXIsIHRoZSBtb2RpZmllciBtYW5hZ2VyIHdpbGwgaW52b2tlXG4gIGRlbGVnYXRlIGhvb2tzIHRoYXQgYXJlIHJlc3BvbnNpYmxlIGZvciBzdXJmYWNpbmcgdGhvc2UgbGlmZWN5Y2xlIGNoYW5nZXMgdG9cbiAgdGhlIGVuZCBkZXZlbG9wZXIuXG4gICogYGNyZWF0ZU1vZGlmaWVyKClgIC0gaW52b2tlZCB3aGVuIGEgbmV3IGluc3RhbmNlIG9mIGEgbW9kaWZpZXIgc2hvdWxkIGJlIGNyZWF0ZWRcbiAgKiBgaW5zdGFsbE1vZGlmaWVyKClgIC0gaW52b2tlZCB3aGVuIHRoZSBtb2RpZmllciBpcyBpbnN0YWxsZWQgb24gdGhlIGVsZW1lbnRcbiAgKiBgdXBkYXRlTW9kaWZpZXIoKWAgLSBpbnZva2VkIHdoZW4gdGhlIGFyZ3VtZW50cyBwYXNzZWQgdG8gYSBtb2RpZmllciBjaGFuZ2VcbiAgKiBgZGVzdHJveU1vZGlmaWVyKClgIC0gaW52b2tlZCB3aGVuIHRoZSBtb2RpZmllciBpcyBhYm91dCB0byBiZSBkZXN0cm95ZWRcbiovXG5leHBvcnQgY2xhc3MgQ3VzdG9tTW9kaWZpZXJNYW5hZ2VyPE8gZXh0ZW5kcyBPd25lciwgTW9kaWZpZXJJbnN0YW5jZT5cbiAgaW1wbGVtZW50cyBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcjxDdXN0b21Nb2RpZmllclN0YXRlPE1vZGlmaWVySW5zdGFuY2U+PiB7XG4gIHByaXZhdGUgY29tcG9uZW50TWFuYWdlckRlbGVnYXRlcyA9IG5ldyBXZWFrTWFwPE8sIE1vZGlmaWVyTWFuYWdlcjxNb2RpZmllckluc3RhbmNlPj4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZhY3Rvcnk6IE1hbmFnZXJGYWN0b3J5PE8sIE1vZGlmaWVyTWFuYWdlcjxNb2RpZmllckluc3RhbmNlPj4pIHt9XG5cbiAgcHJpdmF0ZSBnZXREZWxlZ2F0ZUZvcihvd25lcjogTykge1xuICAgIGxldCB7IGNvbXBvbmVudE1hbmFnZXJEZWxlZ2F0ZXMgfSA9IHRoaXM7XG4gICAgbGV0IGRlbGVnYXRlID0gY29tcG9uZW50TWFuYWdlckRlbGVnYXRlcy5nZXQob3duZXIpO1xuXG4gICAgaWYgKGRlbGVnYXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGxldCB7IGZhY3RvcnkgfSA9IHRoaXM7XG4gICAgICBkZWxlZ2F0ZSA9IGZhY3Rvcnkob3duZXIpO1xuXG4gICAgICBpZiAoREVCVUcgJiYgIUZST01fQ0FQQUJJTElUSUVTIS5oYXMoZGVsZWdhdGUuY2FwYWJpbGl0aWVzKSkge1xuICAgICAgICAvLyBUT0RPOiBUaGlzIGVycm9yIG1lc3NhZ2Ugc2hvdWxkIG1ha2Ugc2Vuc2UgaW4gYm90aCBFbWJlciBhbmQgR2xpbW1lciBodHRwczovL2dpdGh1Yi5jb20vZ2xpbW1lcmpzL2dsaW1tZXItdm0vaXNzdWVzLzEyMDBcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBDdXN0b20gbW9kaWZpZXIgbWFuYWdlcnMgbXVzdCBoYXZlIGEgXFxgY2FwYWJpbGl0aWVzXFxgIHByb3BlcnR5IHRoYXQgaXMgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBcXGBjYXBhYmlsaXRpZXMoJzMuMTMnIHwgJzMuMjInKVxcYCAoaW1wb3J0ZWQgdmlhIFxcYGltcG9ydCB7IGNhcGFiaWxpdGllcyB9IGZyb20gJ0BlbWJlci9tb2RpZmllcic7XFxgKS4gUmVjZWl2ZWQ6IFxcYCR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICBkZWxlZ2F0ZS5jYXBhYmlsaXRpZXNcbiAgICAgICAgICApfVxcYCBmb3I6IFxcYCR7ZGVsZWdhdGV9XFxgYFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBjb21wb25lbnRNYW5hZ2VyRGVsZWdhdGVzLnNldChvd25lciwgZGVsZWdhdGUpO1xuICAgIH1cblxuICAgIHJldHVybiBkZWxlZ2F0ZTtcbiAgfVxuXG4gIGNyZWF0ZShvd25lcjogTywgZWxlbWVudDogU2ltcGxlRWxlbWVudCwgZGVmaW5pdGlvbjogb2JqZWN0LCB2bUFyZ3M6IFZNQXJndW1lbnRzKSB7XG4gICAgbGV0IGRlbGVnYXRlID0gdGhpcy5nZXREZWxlZ2F0ZUZvcihvd25lcik7XG4gICAgbGV0IGNhcHR1cmVkQXJncyA9IHZtQXJncy5jYXB0dXJlKCk7XG5cbiAgICBsZXQgeyB1c2VBcmdzUHJveHksIHBhc3NGYWN0b3J5VG9DcmVhdGUgfSA9IGRlbGVnYXRlLmNhcGFiaWxpdGllcztcblxuICAgIGxldCBhcmdzID0gdXNlQXJnc1Byb3h5ID8gYXJnc1Byb3h5Rm9yKGNhcHR1cmVkQXJncywgJ21vZGlmaWVyJykgOiByZWlmeUFyZ3MoY2FwdHVyZWRBcmdzKTtcblxuICAgIGxldCBpbnN0YW5jZTogTW9kaWZpZXJJbnN0YW5jZTtcblxuICAgIGxldCBmYWN0b3J5T3JEZWZpbml0aW9uID0gZGVmaW5pdGlvbjtcblxuICAgIGlmIChwYXNzRmFjdG9yeVRvQ3JlYXRlKSB7XG4gICAgICAvLyBNYWtlIGEgZmFrZSBmYWN0b3J5LiBXaGlsZSBub3QgcGVyZmVjdCwgdGhpcyBzaG91bGQgZ2VuZXJhbGx5IHByZXZlbnRcbiAgICAgIC8vIGJyZWFrYWdlIGluIHVzZXJzIG9mIG9sZGVyIG1vZGlmaWVyIGNhcGFiaWxpdGllcy5cbiAgICAgIGZhY3RvcnlPckRlZmluaXRpb24gPSB7XG4gICAgICAgIGNyZWF0ZShhcmdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikge1xuICAgICAgICAgIGxldCBwYXJhbXMgPSBPYmplY3QuYXNzaWduKHt9LCBhcmdzKTtcbiAgICAgICAgICBzZXRPd25lcihwYXJhbXMsIG93bmVyKTtcblxuICAgICAgICAgIHJldHVybiAoZGVmaW5pdGlvbiBhcyBGYWN0b3J5KS5jcmVhdGUoYXJncyk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgY2xhc3M6IGRlZmluaXRpb24sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChERUJVRyAmJiBkZXByZWNhdGVNdXRhdGlvbnNJblRyYWNraW5nVHJhbnNhY3Rpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgZGVwcmVjYXRlTXV0YXRpb25zSW5UcmFja2luZ1RyYW5zYWN0aW9uKCgpID0+IHtcbiAgICAgICAgaW5zdGFuY2UgPSBkZWxlZ2F0ZS5jcmVhdGVNb2RpZmllcihmYWN0b3J5T3JEZWZpbml0aW9uLCBhcmdzKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpbnN0YW5jZSA9IGRlbGVnYXRlLmNyZWF0ZU1vZGlmaWVyKGZhY3RvcnlPckRlZmluaXRpb24sIGFyZ3MpO1xuICAgIH1cblxuICAgIGxldCB0YWcgPSBjcmVhdGVVcGRhdGFibGVUYWcoKTtcbiAgICBsZXQgc3RhdGU6IEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT47XG5cbiAgICBpZiAodXNlQXJnc1Byb3h5KSB7XG4gICAgICBzdGF0ZSA9IHtcbiAgICAgICAgdGFnLFxuICAgICAgICBlbGVtZW50LFxuICAgICAgICBkZWxlZ2F0ZSxcbiAgICAgICAgYXJncyxcbiAgICAgICAgbW9kaWZpZXI6IGluc3RhbmNlISxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0YXRlID0ge1xuICAgICAgICB0YWcsXG4gICAgICAgIGVsZW1lbnQsXG4gICAgICAgIG1vZGlmaWVyOiBpbnN0YW5jZSEsXG4gICAgICAgIGRlbGVnYXRlLFxuICAgICAgICBnZXQgYXJncygpIHtcbiAgICAgICAgICByZXR1cm4gcmVpZnlBcmdzKGNhcHR1cmVkQXJncyk7XG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChERUJVRykge1xuICAgICAgc3RhdGUuZGVidWdOYW1lID0gdHlwZW9mIGRlZmluaXRpb24gPT09ICdmdW5jdGlvbicgPyBkZWZpbml0aW9uLm5hbWUgOiBkZWZpbml0aW9uLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJEZXN0cnVjdG9yKHN0YXRlLCAoKSA9PiBkZWxlZ2F0ZS5kZXN0cm95TW9kaWZpZXIoaW5zdGFuY2UsIHN0YXRlLmFyZ3MpKTtcblxuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIGdldERlYnVnTmFtZSh7IGRlYnVnTmFtZSB9OiBDdXN0b21Nb2RpZmllclN0YXRlPE1vZGlmaWVySW5zdGFuY2U+KSB7XG4gICAgcmV0dXJuIGRlYnVnTmFtZSE7XG4gIH1cblxuICBnZXRUYWcoeyB0YWcgfTogQ3VzdG9tTW9kaWZpZXJTdGF0ZTxNb2RpZmllckluc3RhbmNlPikge1xuICAgIHJldHVybiB0YWc7XG4gIH1cblxuICBpbnN0YWxsKHsgZWxlbWVudCwgYXJncywgbW9kaWZpZXIsIGRlbGVnYXRlIH06IEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT4pIHtcbiAgICBsZXQgeyBjYXBhYmlsaXRpZXMgfSA9IGRlbGVnYXRlO1xuXG4gICAgaWYgKGNhcGFiaWxpdGllcy5kaXNhYmxlQXV0b1RyYWNraW5nID09PSB0cnVlKSB7XG4gICAgICB1bnRyYWNrKCgpID0+IGRlbGVnYXRlLmluc3RhbGxNb2RpZmllcihtb2RpZmllciwgZWxlbWVudCwgYXJncykpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWxlZ2F0ZS5pbnN0YWxsTW9kaWZpZXIobW9kaWZpZXIsIGVsZW1lbnQsIGFyZ3MpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZSh7IGFyZ3MsIG1vZGlmaWVyLCBkZWxlZ2F0ZSB9OiBDdXN0b21Nb2RpZmllclN0YXRlPE1vZGlmaWVySW5zdGFuY2U+KSB7XG4gICAgbGV0IHsgY2FwYWJpbGl0aWVzIH0gPSBkZWxlZ2F0ZTtcblxuICAgIGlmIChjYXBhYmlsaXRpZXMuZGlzYWJsZUF1dG9UcmFja2luZyA9PT0gdHJ1ZSkge1xuICAgICAgdW50cmFjaygoKSA9PiBkZWxlZ2F0ZS51cGRhdGVNb2RpZmllcihtb2RpZmllciwgYXJncykpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWxlZ2F0ZS51cGRhdGVNb2RpZmllcihtb2RpZmllciwgYXJncyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0RGVzdHJveWFibGUoc3RhdGU6IEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT4pIHtcbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlaWZ5QXJncyh7XG4gIG5hbWVkLFxuICBwb3NpdGlvbmFsLFxufTogQ2FwdHVyZWRBcmd1bWVudHMpOiB7IG5hbWVkOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjsgcG9zaXRpb25hbDogdW5rbm93bltdIH0ge1xuICBsZXQgcmVpZmllZE5hbWVkID0gZGljdCgpO1xuXG4gIGZvciAobGV0IGtleSBpbiBuYW1lZCkge1xuICAgIHJlaWZpZWROYW1lZFtrZXldID0gdmFsdWVGb3JSZWYobmFtZWRba2V5XSk7XG4gIH1cblxuICBsZXQgcmVpZmllZFBvc2l0aW9uYWwgPSBwb3NpdGlvbmFsLm1hcCh2YWx1ZUZvclJlZik7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lZDogcmVpZmllZE5hbWVkLFxuICAgIHBvc2l0aW9uYWw6IHJlaWZpZWRQb3NpdGlvbmFsLFxuICB9O1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL3B1YmxpYy9tb2RpZmllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUFTLEtBQVQsUUFBc0IsY0FBdEI7QUFVQSxTQUFTLGtCQUFULFFBQW1DLHNCQUFuQztBQUNBLFNBQVMsUUFBVCxRQUF5QixnQkFBekI7QUFDQSxTQUFTLFdBQVQsUUFBNEIsb0JBQTVCO0FBQ0EsU0FBUyxNQUFULEVBQWdDLElBQWhDLFFBQTRDLGVBQTVDO0FBQ0EsU0FDRSxrQkFERixFQUVFLHVDQUZGLEVBR0UsT0FIRixRQUtPLG9CQUxQO0FBT0EsU0FBUyxpQkFBVCxFQUE0QixpQkFBNUIsUUFBcUQsc0JBQXJEO0FBQ0EsU0FBUyxZQUFULFFBQTZCLG9CQUE3QjtBQUdBLE9BQU0sU0FBVSxvQkFBVixDQUNKLFVBREksRUFFSixnQkFBQSxHQUEwRCxFQUZ0RCxFQUV3RDtBQUU1RCxNQUFJLEtBQUssSUFBSSxVQUFVLEtBQUssTUFBeEIsSUFBa0MsVUFBVSxLQUFLLE1BQXJELEVBQTZEO0FBQzNELFVBQU0sSUFBSSxLQUFKLENBQVUsa0RBQVYsQ0FBTjtBQUNEOztBQUVELFNBQU8saUJBQWlCLENBQUM7QUFDdkIsSUFBQSxtQkFBbUIsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsbUJBQWxCLENBREw7QUFFdkIsSUFBQSxZQUFZLEVBQUUsVUFBVSxLQUFLLE1BQWYsR0FBd0IsS0FBeEIsR0FBZ0MsSUFGdkI7QUFJdkI7QUFDQTtBQUNBLElBQUEsbUJBQW1CLEVBQUUsVUFBVSxLQUFLO0FBTmIsR0FBRCxDQUF4QjtBQVFEO0FBZUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF3QkEsT0FBTSxNQUFPLHFCQUFQLENBQTRCO0FBSWhDLEVBQUEsV0FBQSxDQUFvQixPQUFwQixFQUFpRjtBQUE3RCxTQUFBLE9BQUEsR0FBQSxPQUFBO0FBRlosU0FBQSx5QkFBQSxHQUE0QixJQUFJLE9B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QUFDLGNBQVQsQ0FBd0IsUUFBeEIsRUFBa0MsSUFBbEM7QUFDRDtBQUNGOztBQUVELEVBQUEsY0FBYyxDQUFDLEtBQUQsRUFBNkM7QUFDekQsV0FBTyxLQUFQO0FBQ0Q7O0FBN0grQjtBQWdJbEMsT0FBTSxTQUFVLFNBQVYsQ0FBb0I7QUFDeEIsRUFBQSxLQUR3QjtBQUV4QixFQUFBO0FBRndCLENBQXBCLEVBR2M7QUFDbEIsTUFBSSxZQUFZLEdBQUcsSUFBSSxFQUF2Qjs7QUFFQSxPQUFLLElBQUksR0FBVCxJQUFnQixLQUFoQixFQUF1QjtBQUNyQixJQUFBLFlBQVksQ0FBQyxHQUFELENBQVosR0FBb0IsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFELENBQU4sQ0FBL0I7QUFDRDs7QUFFRCxNQUFJLGlCQUFpQixHQUFHLFVBQVUsQ0FBQyxHQUFYLENBQWUsV0FBZixDQUF4QjtBQUVBLFNBQU87QUFDTCxJQUFBLEtBQUssRUFBRSxZQURGO0FBRUwsSUFBQSxVQUFVLEVBQUU7QUFGUCxHQUFQO0FBSUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5pbXBvcnQge1xuICBBcmd1bWVudHMsXG4gIENhcHR1cmVkQXJndW1lbnRzLFxuICBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcixcbiAgTW9kaWZpZXJDYXBhYmlsaXRpZXMsXG4gIE1vZGlmaWVyQ2FwYWJpbGl0aWVzVmVyc2lvbnMsXG4gIE1vZGlmaWVyTWFuYWdlcixcbiAgT3duZXIsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgcmVnaXN0ZXJEZXN0cnVjdG9yIH0gZnJvbSAnQGdsaW1tZXIvZGVzdHJveWFibGUnO1xuaW1wb3J0IHsgc2V0T3duZXIgfSBmcm9tICdAZ2xpbW1lci9vd25lcic7XG5pbXBvcnQgeyB2YWx1ZUZvclJlZiB9IGZyb20gJ0BnbGltbWVyL3JlZmVyZW5jZSc7XG5pbXBvcnQgeyBhc3NpZ24sIGNhc3RUb0Jyb3dzZXIsIGRpY3QgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7XG4gIGNyZWF0ZVVwZGF0YWJsZVRhZyxcbiAgZGVwcmVjYXRlTXV0YXRpb25zSW5UcmFja2luZ1RyYW5zYWN0aW9uLFxuICB1bnRyYWNrLFxuICBVcGRhdGFibGVUYWcsXG59IGZyb20gJ0BnbGltbWVyL3ZhbGlkYXRvcic7XG5pbXBvcnQgeyBTaW1wbGVFbGVtZW50IH0gZnJvbSAnQHNpbXBsZS1kb20vaW50ZXJmYWNlJztcbmltcG9ydCB7IGJ1aWxkQ2FwYWJpbGl0aWVzLCBGUk9NX0NBUEFCSUxJVElFUyB9IGZyb20gJy4uL3V0aWwvY2FwYWJpbGl0aWVzJztcbmltcG9ydCB7IGFyZ3NQcm94eUZvciB9IGZyb20gJy4uL3V0aWwvYXJncy1wcm94eSc7XG5pbXBvcnQgeyBNYW5hZ2VyRmFjdG9yeSB9IGZyb20gJy4nO1xuXG5leHBvcnQgZnVuY3Rpb24gbW9kaWZpZXJDYXBhYmlsaXRpZXM8VmVyc2lvbiBleHRlbmRzIGtleW9mIE1vZGlmaWVyQ2FwYWJpbGl0aWVzVmVyc2lvbnM+KFxuICBtYW5hZ2VyQVBJOiBWZXJzaW9uLFxuICBvcHRpb25hbEZlYXR1cmVzOiBNb2RpZmllckNhcGFiaWxpdGllc1ZlcnNpb25zW1ZlcnNpb25dID0ge31cbik6IE1vZGlmaWVyQ2FwYWJpbGl0aWVzIHtcbiAgaWYgKERFQlVHICYmIG1hbmFnZXJBUEkgIT09ICczLjEzJyAmJiBtYW5hZ2VyQVBJICE9PSAnMy4yMicpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgbW9kaWZpZXIgbWFuYWdlciBjb21wYXRpYmlsaXR5IHNwZWNpZmllZCcpO1xuICB9XG5cbiAgcmV0dXJuIGJ1aWxkQ2FwYWJpbGl0aWVzKHtcbiAgICBkaXNhYmxlQXV0b1RyYWNraW5nOiBCb29sZWFuKG9wdGlvbmFsRmVhdHVyZXMuZGlzYWJsZUF1dG9UcmFja2luZyksXG4gICAgdXNlQXJnc1Byb3h5OiBtYW5hZ2VyQVBJID09PSAnMy4xMycgPyBmYWxzZSA6IHRydWUsXG5cbiAgICAvLyBUaGlzIGNhcGFiaWxpdHkgaXMgdXNlZCBpbiBFbWJlciwgZXhjbHVzaXZlbHkgaW4gcmVzb2x1dGlvbiBtb2RlLiBTZWUgdGhlXG4gICAgLy8gRW1iZXIgZ2xpbW1lciByZXNvbHZlciBmb3IgZGV0YWlscy5cbiAgICBwYXNzRmFjdG9yeVRvQ3JlYXRlOiBtYW5hZ2VyQVBJID09PSAnMy4xMycsXG4gIH0pO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT4ge1xuICB0YWc6IFVwZGF0YWJsZVRhZztcbiAgZWxlbWVudDogU2ltcGxlRWxlbWVudDtcbiAgbW9kaWZpZXI6IE1vZGlmaWVySW5zdGFuY2U7XG4gIGRlbGVnYXRlOiBNb2RpZmllck1hbmFnZXI8TW9kaWZpZXJJbnN0YW5jZT47XG4gIGFyZ3M6IEFyZ3VtZW50cztcbiAgZGVidWdOYW1lPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgRmFjdG9yeSB7XG4gIGNyZWF0ZShwYXJhbXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogb2JqZWN0O1xufVxuXG4vKipcbiAgVGhlIEN1c3RvbU1vZGlmaWVyTWFuYWdlciBhbGxvd3MgYWRkb25zIHRvIHByb3ZpZGUgY3VzdG9tIG1vZGlmaWVyXG4gIGltcGxlbWVudGF0aW9ucyB0aGF0IGludGVncmF0ZSBzZWFtbGVzc2x5IGludG8gRW1iZXIuIFRoaXMgaXMgYWNjb21wbGlzaGVkXG4gIHRocm91Z2ggYSBkZWxlZ2F0ZSwgcmVnaXN0ZXJlZCB3aXRoIHRoZSBjdXN0b20gbW9kaWZpZXIgbWFuYWdlciwgd2hpY2hcbiAgaW1wbGVtZW50cyBhIHNldCBvZiBob29rcyB0aGF0IGRldGVybWluZSBtb2RpZmllciBiZWhhdmlvci5cbiAgVG8gY3JlYXRlIGEgY3VzdG9tIG1vZGlmaWVyIG1hbmFnZXIsIGluc3RhbnRpYXRlIGEgbmV3IEN1c3RvbU1vZGlmaWVyTWFuYWdlclxuICBjbGFzcyBhbmQgcGFzcyB0aGUgZGVsZWdhdGUgYXMgdGhlIGZpcnN0IGFyZ3VtZW50OlxuXG4gIGBgYGpzXG4gIGxldCBtYW5hZ2VyID0gbmV3IEN1c3RvbU1vZGlmaWVyTWFuYWdlcih7XG4gICAgLy8gLi4uZGVsZWdhdGUgaW1wbGVtZW50YXRpb24uLi5cbiAgfSk7XG4gIGBgYFxuXG4gICMjIERlbGVnYXRlIEhvb2tzXG5cbiAgVGhyb3VnaG91dCB0aGUgbGlmZWN5Y2xlIG9mIGEgbW9kaWZpZXIsIHRoZSBtb2RpZmllciBtYW5hZ2VyIHdpbGwgaW52b2tlXG4gIGRlbGVnYXRlIGhvb2tzIHRoYXQgYXJlIHJlc3BvbnNpYmxlIGZvciBzdXJmYWNpbmcgdGhvc2UgbGlmZWN5Y2xlIGNoYW5nZXMgdG9cbiAgdGhlIGVuZCBkZXZlbG9wZXIuXG4gICogYGNyZWF0ZU1vZGlmaWVyKClgIC0gaW52b2tlZCB3aGVuIGEgbmV3IGluc3RhbmNlIG9mIGEgbW9kaWZpZXIgc2hvdWxkIGJlIGNyZWF0ZWRcbiAgKiBgaW5zdGFsbE1vZGlmaWVyKClgIC0gaW52b2tlZCB3aGVuIHRoZSBtb2RpZmllciBpcyBpbnN0YWxsZWQgb24gdGhlIGVsZW1lbnRcbiAgKiBgdXBkYXRlTW9kaWZpZXIoKWAgLSBpbnZva2VkIHdoZW4gdGhlIGFyZ3VtZW50cyBwYXNzZWQgdG8gYSBtb2RpZmllciBjaGFuZ2VcbiAgKiBgZGVzdHJveU1vZGlmaWVyKClgIC0gaW52b2tlZCB3aGVuIHRoZSBtb2RpZmllciBpcyBhYm91dCB0byBiZSBkZXN0cm95ZWRcbiovXG5leHBvcnQgY2xhc3MgQ3VzdG9tTW9kaWZpZXJNYW5hZ2VyPE8gZXh0ZW5kcyBPd25lciwgTW9kaWZpZXJJbnN0YW5jZT5cbiAgaW1wbGVtZW50cyBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcjxDdXN0b21Nb2RpZmllclN0YXRlPE1vZGlmaWVySW5zdGFuY2U+PiB7XG4gIHByaXZhdGUgY29tcG9uZW50TWFuYWdlckRlbGVnYXRlcyA9IG5ldyBXZWFrTWFwPE8sIE1vZGlmaWVyTWFuYWdlcjxNb2RpZmllckluc3RhbmNlPj4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZhY3Rvcnk6IE1hbmFnZXJGYWN0b3J5PE8sIE1vZGlmaWVyTWFuYWdlcjxNb2RpZmllckluc3RhbmNlPj4pIHt9XG5cbiAgcHJpdmF0ZSBnZXREZWxlZ2F0ZUZvcihvd25lcjogTykge1xuICAgIGxldCB7IGNvbXBvbmVudE1hbmFnZXJEZWxlZ2F0ZXMgfSA9IHRoaXM7XG4gICAgbGV0IGRlbGVnYXRlID0gY29tcG9uZW50TWFuYWdlckRlbGVnYXRlcy5nZXQob3duZXIpO1xuXG4gICAgaWYgKGRlbGVnYXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGxldCB7IGZhY3RvcnkgfSA9IHRoaXM7XG4gICAgICBkZWxlZ2F0ZSA9IGZhY3Rvcnkob3duZXIpO1xuXG4gICAgICBpZiAoREVCVUcgJiYgIUZST01fQ0FQQUJJTElUSUVTIS5oYXMoZGVsZWdhdGUuY2FwYWJpbGl0aWVzKSkge1xuICAgICAgICAvLyBUT0RPOiBUaGlzIGVycm9yIG1lc3NhZ2Ugc2hvdWxkIG1ha2Ugc2Vuc2UgaW4gYm90aCBFbWJlciBhbmQgR2xpbW1lciBodHRwczovL2dpdGh1Yi5jb20vZ2xpbW1lcmpzL2dsaW1tZXItdm0vaXNzdWVzLzEyMDBcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBDdXN0b20gbW9kaWZpZXIgbWFuYWdlcnMgbXVzdCBoYXZlIGEgXFxgY2FwYWJpbGl0aWVzXFxgIHByb3BlcnR5IHRoYXQgaXMgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBcXGBjYXBhYmlsaXRpZXMoJzMuMTMnIHwgJzMuMjInKVxcYCAoaW1wb3J0ZWQgdmlhIFxcYGltcG9ydCB7IGNhcGFiaWxpdGllcyB9IGZyb20gJ0BlbWJlci9tb2RpZmllcic7XFxgKS4gUmVjZWl2ZWQ6IFxcYCR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICBkZWxlZ2F0ZS5jYXBhYmlsaXRpZXNcbiAgICAgICAgICApfVxcYCBmb3I6IFxcYCR7ZGVsZWdhdGV9XFxgYFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBjb21wb25lbnRNYW5hZ2VyRGVsZWdhdGVzLnNldChvd25lciwgZGVsZWdhdGUpO1xuICAgIH1cblxuICAgIHJldHVybiBkZWxlZ2F0ZTtcbiAgfVxuXG4gIGNyZWF0ZShvd25lcjogTywgZWxlbWVudDogU2ltcGxlRWxlbWVudCwgZGVmaW5pdGlvbjogb2JqZWN0LCBjYXB0dXJlZEFyZ3M6IENhcHR1cmVkQXJndW1lbnRzKSB7XG4gICAgbGV0IGRlbGVnYXRlID0gdGhpcy5nZXREZWxlZ2F0ZUZvcihvd25lcik7XG5cbiAgICBsZXQgeyB1c2VBcmdzUHJveHksIHBhc3NGYWN0b3J5VG9DcmVhdGUgfSA9IGRlbGVnYXRlLmNhcGFiaWxpdGllcztcblxuICAgIGxldCBhcmdzID0gdXNlQXJnc1Byb3h5ID8gYXJnc1Byb3h5Rm9yKGNhcHR1cmVkQXJncywgJ21vZGlmaWVyJykgOiByZWlmeUFyZ3MoY2FwdHVyZWRBcmdzKTtcblxuICAgIGxldCBpbnN0YW5jZTogTW9kaWZpZXJJbnN0YW5jZTtcblxuICAgIGxldCBmYWN0b3J5T3JEZWZpbml0aW9uID0gZGVmaW5pdGlvbjtcblxuICAgIGlmIChwYXNzRmFjdG9yeVRvQ3JlYXRlKSB7XG4gICAgICAvLyBNYWtlIGEgZmFrZSBmYWN0b3J5LiBXaGlsZSBub3QgcGVyZmVjdCwgdGhpcyBzaG91bGQgZ2VuZXJhbGx5IHByZXZlbnRcbiAgICAgIC8vIGJyZWFrYWdlIGluIHVzZXJzIG9mIG9sZGVyIG1vZGlmaWVyIGNhcGFiaWxpdGllcy5cbiAgICAgIGZhY3RvcnlPckRlZmluaXRpb24gPSB7XG4gICAgICAgIGNyZWF0ZShhcmdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikge1xuICAgICAgICAgIGxldCBwYXJhbXMgPSBhc3NpZ24oe30sIGFyZ3MpO1xuICAgICAgICAgIHNldE93bmVyKHBhcmFtcywgb3duZXIpO1xuXG4gICAgICAgICAgcmV0dXJuIChkZWZpbml0aW9uIGFzIEZhY3RvcnkpLmNyZWF0ZShhcmdzKTtcbiAgICAgICAgfSxcblxuICAgICAgICBjbGFzczogZGVmaW5pdGlvbixcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKERFQlVHICYmIGRlcHJlY2F0ZU11dGF0aW9uc0luVHJhY2tpbmdUcmFuc2FjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBkZXByZWNhdGVNdXRhdGlvbnNJblRyYWNraW5nVHJhbnNhY3Rpb24oKCkgPT4ge1xuICAgICAgICBpbnN0YW5jZSA9IGRlbGVnYXRlLmNyZWF0ZU1vZGlmaWVyKGZhY3RvcnlPckRlZmluaXRpb24sIGFyZ3MpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGluc3RhbmNlID0gZGVsZWdhdGUuY3JlYXRlTW9kaWZpZXIoZmFjdG9yeU9yRGVmaW5pdGlvbiwgYXJncyk7XG4gICAgfVxuXG4gICAgbGV0IHRhZyA9IGNyZWF0ZVVwZGF0YWJsZVRhZygpO1xuICAgIGxldCBzdGF0ZTogQ3VzdG9tTW9kaWZpZXJTdGF0ZTxNb2RpZmllckluc3RhbmNlPjtcblxuICAgIGlmICh1c2VBcmdzUHJveHkpIHtcbiAgICAgIHN0YXRlID0ge1xuICAgICAgICB0YWcsXG4gICAgICAgIGVsZW1lbnQsXG4gICAgICAgIGRlbGVnYXRlLFxuICAgICAgICBhcmdzLFxuICAgICAgICBtb2RpZmllcjogaW5zdGFuY2UhLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RhdGUgPSB7XG4gICAgICAgIHRhZyxcbiAgICAgICAgZWxlbWVudCxcbiAgICAgICAgbW9kaWZpZXI6IGluc3RhbmNlISxcbiAgICAgICAgZGVsZWdhdGUsXG4gICAgICAgIGdldCBhcmdzKCkge1xuICAgICAgICAgIHJldHVybiByZWlmeUFyZ3MoY2FwdHVyZWRBcmdzKTtcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKERFQlVHKSB7XG4gICAgICBzdGF0ZS5kZWJ1Z05hbWUgPSB0eXBlb2YgZGVmaW5pdGlvbiA9PT0gJ2Z1bmN0aW9uJyA/IGRlZmluaXRpb24ubmFtZSA6IGRlZmluaXRpb24udG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICByZWdpc3RlckRlc3RydWN0b3Ioc3RhdGUsICgpID0+IGRlbGVnYXRlLmRlc3Ryb3lNb2RpZmllcihpbnN0YW5jZSwgc3RhdGUuYXJncykpO1xuXG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgZ2V0RGVidWdOYW1lKHsgZGVidWdOYW1lIH06IEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT4pIHtcbiAgICByZXR1cm4gZGVidWdOYW1lITtcbiAgfVxuXG4gIGdldFRhZyh7IHRhZyB9OiBDdXN0b21Nb2RpZmllclN0YXRlPE1vZGlmaWVySW5zdGFuY2U+KSB7XG4gICAgcmV0dXJuIHRhZztcbiAgfVxuXG4gIGluc3RhbGwoeyBlbGVtZW50LCBhcmdzLCBtb2RpZmllciwgZGVsZWdhdGUgfTogQ3VzdG9tTW9kaWZpZXJTdGF0ZTxNb2RpZmllckluc3RhbmNlPikge1xuICAgIGxldCB7IGNhcGFiaWxpdGllcyB9ID0gZGVsZWdhdGU7XG5cbiAgICBpZiAoY2FwYWJpbGl0aWVzLmRpc2FibGVBdXRvVHJhY2tpbmcgPT09IHRydWUpIHtcbiAgICAgIHVudHJhY2soKCkgPT4gZGVsZWdhdGUuaW5zdGFsbE1vZGlmaWVyKG1vZGlmaWVyLCBjYXN0VG9Ccm93c2VyKGVsZW1lbnQsICdFTEVNRU5UJyksIGFyZ3MpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVsZWdhdGUuaW5zdGFsbE1vZGlmaWVyKG1vZGlmaWVyLCBjYXN0VG9Ccm93c2VyKGVsZW1lbnQsICdFTEVNRU5UJyksIGFyZ3MpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZSh7IGFyZ3MsIG1vZGlmaWVyLCBkZWxlZ2F0ZSB9OiBDdXN0b21Nb2RpZmllclN0YXRlPE1vZGlmaWVySW5zdGFuY2U+KSB7XG4gICAgbGV0IHsgY2FwYWJpbGl0aWVzIH0gPSBkZWxlZ2F0ZTtcblxuICAgIGlmIChjYXBhYmlsaXRpZXMuZGlzYWJsZUF1dG9UcmFja2luZyA9PT0gdHJ1ZSkge1xuICAgICAgdW50cmFjaygoKSA9PiBkZWxlZ2F0ZS51cGRhdGVNb2RpZmllcihtb2RpZmllciwgYXJncykpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWxlZ2F0ZS51cGRhdGVNb2RpZmllcihtb2RpZmllciwgYXJncyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0RGVzdHJveWFibGUoc3RhdGU6IEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT4pIHtcbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlaWZ5QXJncyh7XG4gIG5hbWVkLFxuICBwb3NpdGlvbmFsLFxufTogQ2FwdHVyZWRBcmd1bWVudHMpOiB7IG5hbWVkOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjsgcG9zaXRpb25hbDogdW5rbm93bltdIH0ge1xuICBsZXQgcmVpZmllZE5hbWVkID0gZGljdCgpO1xuXG4gIGZvciAobGV0IGtleSBpbiBuYW1lZCkge1xuICAgIHJlaWZpZWROYW1lZFtrZXldID0gdmFsdWVGb3JSZWYobmFtZWRba2V5XSk7XG4gIH1cblxuICBsZXQgcmVpZmllZFBvc2l0aW9uYWwgPSBwb3NpdGlvbmFsLm1hcCh2YWx1ZUZvclJlZik7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lZDogcmVpZmllZE5hbWVkLFxuICAgIHBvc2l0aW9uYWw6IHJlaWZpZWRQb3NpdGlvbmFsLFxuICB9O1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==

@@ -0,3 +1,4 @@

import { associateDestroyableChild } from '@glimmer/destroyable';
import { DEBUG } from '@glimmer/env';
import { createComputeRef, UNDEFINED_REFERENCE } from '@glimmer/reference';
import { createComputeRef, createConstRef, UNDEFINED_REFERENCE } from '@glimmer/reference';
import { buildCapabilities, FROM_CAPABILITIES } from '../util/capabilities';

@@ -81,18 +82,24 @@ import { argsProxyFor } from '../util/args-proxy';

return function (vmArgs, vm) {
var owner = vm.getOwner();
return function (capturedArgs, owner) {
var _a, _b;
var manager = _this.getDelegateForOwner(owner);
var manager = _this.getDelegateFor(owner);
var args = argsProxyFor(vmArgs.capture(), 'helper');
var args = argsProxyFor(capturedArgs, 'helper');
var bucket = manager.createHelper(definition, args);
if (hasDestroyable(manager)) {
vm.associateDestroyable(manager.getDestroyable(bucket));
}
if (hasValue(manager)) {
return createComputeRef(function () {
var cache = createComputeRef(function () {
return manager.getValue(bucket);
}, null, DEBUG && manager.getDebugName && manager.getDebugName(definition));
if (hasDestroyable(manager)) {
associateDestroyableChild(cache, manager.getDestroyable(bucket));
}
return cache;
} else if (hasDestroyable(manager)) {
var ref = createConstRef(undefined, DEBUG && ((_b = (_a = manager.getDebugName) === null || _a === void 0 ? void 0 : _a.call(manager, definition)) !== null && _b !== void 0 ? _b : 'unknown helper'));
associateDestroyableChild(ref, manager.getDestroyable(bucket));
return ref;
} else {

@@ -106,2 +113,2 @@ return UNDEFINED_REFERENCE;

}();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL3B1YmxpYy9oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBQSxLQUFBLFFBQUEsY0FBQTtBQVlBLFNBQUEsZ0JBQUEsRUFBQSxtQkFBQSxRQUFBLG9CQUFBO0FBRUEsU0FBQSxpQkFBQSxFQUFBLGlCQUFBLFFBQUEsc0JBQUE7QUFDQSxTQUFBLFlBQUEsUUFBQSxvQkFBQTtBQUdBLE9BQU0sU0FBQSxrQkFBQSxDQUFBLFVBQUEsRUFFSixPQUZJLEVBRXFDO0FBQUEsTUFBekMsT0FBeUM7QUFBekMsSUFBQSxPQUF5QyxHQUZyQyxFQUVxQztBQUFBOztBQUV6QyxNQUFJLEtBQUssSUFBSSxVQUFVLEtBQXZCLE1BQUEsRUFBb0M7QUFDbEMsVUFBTSxJQUFBLEtBQUEsQ0FBTixnREFBTSxDQUFOO0FBQ0Q7O0FBRUQsTUFDRSxLQUFLLEtBQ0osRUFBRSxPQUFPLENBQVAsUUFBQSxJQUFvQixPQUFPLENBQTdCLGtCQUFBLEtBQ0UsT0FBTyxDQUFQLFFBQUEsSUFBb0IsT0FBTyxDQUhoQyxrQkFDTyxDQURQLEVBSUU7QUFDQSxVQUFNLElBQUEsS0FBQSxDQUFOLHdKQUFNLENBQU47QUFHRDs7QUFFRCxNQUFJLEtBQUssSUFBSSxPQUFPLENBQXBCLGtCQUFBLEVBQXlDO0FBQ3ZDLFVBQU0sSUFBQSxLQUFBLENBQU4sc0hBQU0sQ0FBTjtBQUdEOztBQUVELFNBQU8saUJBQWlCLENBQUM7QUFDdkIsSUFBQSxRQUFRLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FERixRQUNOLENBRE07QUFFdkIsSUFBQSxjQUFjLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FGUixjQUVBLENBRkE7QUFHdkIsSUFBQSxrQkFBa0IsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFSLGtCQUFBO0FBSEosR0FBRCxDQUF4QjtFQU9GOztBQUVBLE9BQU0sU0FBQSxRQUFBLENBQUEsT0FBQSxFQUMyQjtB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Z2xpbW1lci9lbnYnO1xuaW1wb3J0IHtcbiAgSGVscGVyLFxuICBIZWxwZXJDYXBhYmlsaXRpZXMsXG4gIEhlbHBlckNhcGFiaWxpdGllc1ZlcnNpb25zLFxuICBIZWxwZXJEZWZpbml0aW9uU3RhdGUsXG4gIEhlbHBlck1hbmFnZXIsXG4gIEhlbHBlck1hbmFnZXJXaXRoRGVzdHJveWFibGUsXG4gIEhlbHBlck1hbmFnZXJXaXRoVmFsdWUsXG4gIEludGVybmFsSGVscGVyTWFuYWdlcixcbiAgT3duZXIsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY3JlYXRlQ29tcHV0ZVJlZiwgVU5ERUZJTkVEX1JFRkVSRU5DRSB9IGZyb20gJ0BnbGltbWVyL3JlZmVyZW5jZSc7XG5cbmltcG9ydCB7IGJ1aWxkQ2FwYWJpbGl0aWVzLCBGUk9NX0NBUEFCSUxJVElFUyB9IGZyb20gJy4uL3V0aWwvY2FwYWJpbGl0aWVzJztcbmltcG9ydCB7IGFyZ3NQcm94eUZvciB9IGZyb20gJy4uL3V0aWwvYXJncy1wcm94eSc7XG5pbXBvcnQgeyBNYW5hZ2VyRmFjdG9yeSB9IGZyb20gJy4vaW5kZXgnO1xuXG5leHBvcnQgZnVuY3Rpb24gaGVscGVyQ2FwYWJpbGl0aWVzPFZlcnNpb24gZXh0ZW5kcyBrZXlvZiBIZWxwZXJDYXBhYmlsaXRpZXNWZXJzaW9ucz4oXG4gIG1hbmFnZXJBUEk6IFZlcnNpb24sXG4gIG9wdGlvbnM6IFBhcnRpYWw8SGVscGVyQ2FwYWJpbGl0aWVzPiA9IHt9XG4pOiBIZWxwZXJDYXBhYmlsaXRpZXMge1xuICBpZiAoREVCVUcgJiYgbWFuYWdlckFQSSAhPT0gJzMuMjMnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGhlbHBlciBtYW5hZ2VyIGNvbXBhdGliaWxpdHkgc3BlY2lmaWVkJyk7XG4gIH1cblxuICBpZiAoXG4gICAgREVCVUcgJiZcbiAgICAoIShvcHRpb25zLmhhc1ZhbHVlIHx8IG9wdGlvbnMuaGFzU2NoZWR1bGVkRWZmZWN0KSB8fFxuICAgICAgKG9wdGlvbnMuaGFzVmFsdWUgJiYgb3B0aW9ucy5oYXNTY2hlZHVsZWRFZmZlY3QpKVxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnWW91IG11c3QgcGFzcyBlaXRoZXIgdGhlIGBoYXNWYWx1ZWAgT1IgdGhlIGBoYXNTY2hlZHVsZWRFZmZlY3RgIGNhcGFiaWxpdHkgd2hlbiBkZWZpbmluZyBhIGhlbHBlciBtYW5hZ2VyLiBQYXNzaW5nIG5laXRoZXIsIG9yIGJvdGgsIGlzIG5vdCBwZXJtaXR0ZWQuJ1xuICAgICk7XG4gIH1cblxuICBpZiAoREVCVUcgJiYgb3B0aW9ucy5oYXNTY2hlZHVsZWRFZmZlY3QpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnVGhlIGBoYXNTY2hlZHVsZWRFZmZlY3RgIGNhcGFiaWxpdHkgaGFzIG5vdCB5ZXQgYmVlbiBpbXBsZW1lbnRlZCBmb3IgaGVscGVyIG1hbmFnZXJzLiBQbGVhc2UgcGFzcyBgaGFzVmFsdWVgIGluc3RlYWQnXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBidWlsZENhcGFiaWxpdGllcyh7XG4gICAgaGFzVmFsdWU6IEJvb2xlYW4ob3B0aW9ucy5oYXNWYWx1ZSksXG4gICAgaGFzRGVzdHJveWFibGU6IEJvb2xlYW4ob3B0aW9ucy5oYXNEZXN0cm95YWJsZSksXG4gICAgaGFzU2NoZWR1bGVkRWZmZWN0OiBCb29sZWFuKG9wdGlvbnMuaGFzU2NoZWR1bGVkRWZmZWN0KSxcbiAgfSk7XG59XG5cbi8vLy8vLy8vLy8vL1xuXG5leHBvcnQgZnVuY3Rpb24gaGFzVmFsdWUoXG4gIG1hbmFnZXI6IEhlbHBlck1hbmFnZXI8dW5rbm93bj5cbik6IG1hbmFnZXIgaXMgSGVscGVyTWFuYWdlcldpdGhWYWx1ZTx1bmtub3duPiB7XG4gIHJldHVybiBtYW5hZ2VyLmNhcGFiaWxpdGllcy5oYXNWYWx1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0Rlc3Ryb3lhYmxlKFxuICBtYW5hZ2VyOiBIZWxwZXJNYW5hZ2VyPHVua25vd24+XG4pOiBtYW5hZ2VyIGlzIEhlbHBlck1hbmFnZXJXaXRoRGVzdHJveWFibGU8dW5rbm93bj4ge1xuICByZXR1cm4gbWFuYWdlci5jYXBhYmlsaXRpZXMuaGFzRGVzdHJveWFibGU7XG59XG5cbi8vLy8vLy8vLy8vL1xuXG5leHBvcnQgY2xhc3MgQ3VzdG9tSGVscGVyTWFuYWdlcjxPIGV4dGVuZHMgT3duZXIgPSBPd25lcj4gaW1wbGVtZW50cyBJbnRlcm5hbEhlbHBlck1hbmFnZXI8Tz4ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZhY3Rvcnk6IE1hbmFnZXJGYWN0b3J5PE8gfCB1bmRlZmluZWQsIEhlbHBlck1hbmFnZXI8dW5rbm93bj4+KSB7fVxuXG4gIHByaXZhdGUgaGVscGVyTWFuYWdlckRlbGVnYXRlcyA9IG5ldyBXZWFrTWFwPE8sIEhlbHBlck1hbmFnZXI8dW5rbm93bj4+KCk7XG4gIHByaXZhdGUgdW5kZWZpbmVkRGVsZWdhdGU6IEhlbHBlck1hbmFnZXI8dW5rbm93bj4gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIGdldERlbGVnYXRlRm9yT3duZXIob3duZXI6IE8pIHtcbiAgICBsZXQgZGVsZWdhdGUgPSB0aGlzLmhlbHBlck1hbmFnZXJEZWxlZ2F0ZXMuZ2V0KG93bmVyKTtcblxuICAgIGlmIChkZWxlZ2F0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBsZXQgeyBmYWN0b3J5IH0gPSB0aGlzO1xuICAgICAgZGVsZWdhdGUgPSBmYWN0b3J5KG93bmVyKTtcblxuICAgICAgaWYgKERFQlVHICYmICFGUk9NX0NBUEFCSUxJVElFUyEuaGFzKGRlbGVnYXRlLmNhcGFiaWxpdGllcykpIHtcbiAgICAgICAgLy8gVE9ETzogVGhpcyBlcnJvciBtZXNzYWdlIHNob3VsZCBtYWtlIHNlbnNlIGluIGJvdGggRW1iZXIgYW5kIEdsaW1tZXIgaHR0cHM6Ly9naXRodWIuY29tL2dsaW1tZXJqcy9nbGltbWVyLXZtL2lzc3Vlcy8xMjAwXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgQ3VzdG9tIGhlbHBlciBtYW5hZ2VycyBtdXN0IGhhdmUgYSBcXGBjYXBhYmlsaXRpZXNcXGAgcHJvcGVydHkgdGhhdCBpcyB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgdGhlIFxcYGNhcGFiaWxpdGllcygnMy4yMycpXFxgIChpbXBvcnRlZCB2aWEgXFxgaW1wb3J0IHsgY2FwYWJpbGl0aWVzIH0gZnJvbSAnQGVtYmVyL2hlbHBlcic7XFxgKS4gUmVjZWl2ZWQ6IFxcYCR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICBkZWxlZ2F0ZS5jYXBhYmlsaXRpZXNcbiAgICAgICAgICApfVxcYCBmb3I6IFxcYCR7ZGVsZWdhdGV9XFxgYFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmhlbHBlck1hbmFnZXJEZWxlZ2F0ZXMuc2V0KG93bmVyLCBkZWxlZ2F0ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlbGVnYXRlO1xuICB9XG5cbiAgZ2V0RGVsZWdhdGVGb3Iob3duZXI6IE8gfCB1bmRlZmluZWQpIHtcbiAgICBpZiAob3duZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgbGV0IHsgdW5kZWZpbmVkRGVsZWdhdGUgfSA9IHRoaXM7XG5cbiAgICAgIGlmICh1bmRlZmluZWREZWxlZ2F0ZSA9PT0gbnVsbCkge1xuICAgICAgICBsZXQgeyBmYWN0b3J5IH0gPSB0aGlzO1xuICAgICAgICB0aGlzLnVuZGVmaW5lZERlbGVnYXRlID0gdW5kZWZpbmVkRGVsZWdhdGUgPSBmYWN0b3J5KHVuZGVmaW5lZCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB1bmRlZmluZWREZWxlZ2F0ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0RGVsZWdhdGVGb3JPd25lcihvd25lcik7XG4gICAgfVxuICB9XG5cbiAgZ2V0SGVscGVyKGRlZmluaXRpb246IEhlbHBlckRlZmluaXRpb25TdGF0ZSk6IEhlbHBlciB7XG4gICAgcmV0dXJuICh2bUFyZ3MsIHZtKSA9PiB7XG4gICAgICBsZXQgb3duZXIgPSB2bS5nZXRPd25lcigpIGFzIE87XG5cbiAgICAgIGxldCBtYW5hZ2VyID0gdGhpcy5nZXREZWxlZ2F0ZUZvck93bmVyKG93bmVyKTtcblxuICAgICAgY29uc3QgYXJncyA9IGFyZ3NQcm94eUZvcih2bUFyZ3MuY2FwdHVyZSgpLCAnaGVscGVyJyk7XG4gICAgICBjb25zdCBidWNrZXQgPSBtYW5hZ2VyLmNyZWF0ZUhlbHBlcihkZWZpbml0aW9uLCBhcmdzKTtcblxuICAgICAgaWYgKGhhc0Rlc3Ryb3lhYmxlKG1hbmFnZXIpKSB7XG4gICAgICAgIHZtLmFzc29jaWF0ZURlc3Ryb3lhYmxlKG1hbmFnZXIuZ2V0RGVzdHJveWFibGUoYnVja2V0KSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChoYXNWYWx1ZShtYW5hZ2VyKSkge1xuICAgICAgICByZXR1cm4gY3JlYXRlQ29tcHV0ZVJlZihcbiAgICAgICAgICAoKSA9PiAobWFuYWdlciBhcyBIZWxwZXJNYW5hZ2VyV2l0aFZhbHVlPHVua25vd24+KS5nZXRWYWx1ZShidWNrZXQpLFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgREVCVUcgJiYgbWFuYWdlci5nZXREZWJ1Z05hbWUgJiYgbWFuYWdlci5nZXREZWJ1Z05hbWUoZGVmaW5pdGlvbilcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBVTkRFRklORURfUkVGRVJFTkNFO1xuICAgICAgfVxuICAgIH07XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL3B1YmxpYy9oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsU0FBQSx5QkFBQSxRQUFBLHNCQUFBO0FBQ0EsU0FBQSxLQUFBLFFBQUEsY0FBQTtBQVlBLFNBQUEsZ0JBQUEsRUFBQSxjQUFBLEVBQUEsbUJBQUEsUUFBQSxvQkFBQTtBQUVBLFNBQUEsaUJBQUEsRUFBQSxpQkFBQSxRQUFBLHNCQUFBO0FBQ0EsU0FBQSxZQUFBLFFBQUEsb0JBQUE7QUFHQSxPQUFNLFNBQUEsa0JBQUEsQ0FBQSxVQUFBLEVBRUosT0FGSSxFQUVxQztBQUFBLE1BQXpDLE9BQXlDO0FBQXpDLElBQUEsT0FBeUMsR0FGckMsRUFFcUM7QUFBQTs7QUFFekMsTUFBSSxLQUFLLElBQUksVUFBVSxLQUF2QixNQUFBLEVBQW9DO0FBQ2xDLFVBQU0sSUFBQSxLQUFBLENBQU4sZ0RBQU0sQ0FBTjtBQUNEOztBQUVELE1BQ0UsS0FBSyxLQUNKLEVBQUUsT0FBTyxDQUFQLFFBQUEsSUFBb0IsT0FBTyxDQUE3QixrQkFBQSxLQUNFLE9BQU8sQ0FBUCxRQUFBLElBQW9CLE9BQU8sQ0FIaEMsa0JBQ08sQ0FEUCxFQUlFO0FBQ0EsVUFBTSxJQUFBLEtBQUEsQ0FBTix3SkFBTSxDQUFOO0FBR0Q7O0FBRUQsTUFBSSxLQUFLLElBQUksT0FBTyxDQUFwQixrQkFBQSxFQUF5QztBQUN2QyxVQUFNLElBQUEsS0FBQSxDQUFOLHNIQUFNLENBQU47QUFHRDs7QUFFRCxTQUFPLGlCQUFpQixDQUFDO0FBQ3ZCLElBQUEsUUFBUSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBREYsUUFDTixDQURNO0FBRXZCLElBQUEsY0FBYyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBRlIsY0FFQSxDQUZBO0FBR3ZCLElBQUEsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBUixrQkFBQTtBQUhKLEdBQUQsQ0FBeEI7RUFPRjs7QUFFQSxPQUFNLFNBQUEsUUFBQSxDQUFBLE9BQUEsRUFDMkI7QUFFL0IsU0FBTyxPQUFPLENBQVAsWUFBQSxDQUFQLFFBQUE7QUFDRDtBQUVELE9BQU0sU0FBQSxjQUFBLENBQUEsT0FBQSxFQUMyQjtBQUUvQixTQUFPLE9BQU8sQ0FBUCxZQUFBLENBQVAsY0FBQTtFQUdGOztBQUVBLFdBQU0sbUJBQU47QUFDRSwrQkFBQSxPQUFBLEVBQWtGO0FBQTlELFNBQUEsT0FBQSxHQUFBLE9BQUE7QUFFWixTQUFBLHNCQUFBLEdBQXlCLElBQXpCLE9BQXlCLEVBQXpCO0FBQ0EsU0FBQSxpQkFBQSxHQUFBLElBQUE7QUFIOEU7O0FBRHhGOztBQUFBLFNBTVUsbUJBTlYsR0FNVSw2QkFBbUIsS0FBbkIsRUFBNEI7QUFDbEMsUUFBSSxRQUFRLEdBQUcsS0FBQSxzQkFBQSxDQUFBLEdBQUEsQ0FBZixLQUFlLENBQWY7O0FBRUEsUUFBSSxRQUFRLEtBQVosU0FBQSxFQUE0QjtBQUFBLFVBQ3BCLE9BRG9CLEdBQzFCLElBRDBCLENBQ3BCLE9BRG9CO0FBRTFCLE1BQUEsUUFBUSxHQUFHLE9BQU8sQ0FBbEIsS0FBa0IsQ0FBbEI7O0FBRUEsVUFBSSxLQUFLLElBQUksQ0FBQyxpQkFBa0IsQ0FBbEIsR0FBQSxDQUF1QixRQUFRLENBQTdDLFlBQWMsQ0FBZCxFQUE2RDtBQUMzRDtBQUNBLGNBQU0sSUFBQSxLQUFBLHFNQUNxTSxJQUFJLENBQUosU0FBQSxDQUN2TSxRQUFRLENBRCtMLFlBQUEsQ0FEck0sZ0JBQU4sUUFBTSxPQUFOO0FBS0Q7O0FBRUQsV0FBQSxzQkFBQSxDQUFBLEdBQUEsQ0FBQSxLQUFBLEVBQUEsUUFBQTtBQUNEOztBQUVELFdBQUEsUUFBQTtBQUNELEdBMUJIOztBQUFBLFNBNEJFLGNBNUJGLEdBNEJFLHdCQUFjLEtBQWQsRUFBbUM7QUFDakMsUUFBSSxLQUFLLEtBQVQsU0FBQSxFQUF5QjtBQUFBLFVBQ2pCLGlCQURpQixHQUN2QixJQUR1QixDQUNqQixpQkFEaUI7O0FBR3ZCLFVBQUksaUJBQWlCLEtBQXJCLElBQUEsRUFBZ0M7QUFBQSxZQUN4QixPQUR3QixHQUM5QixJQUQ4QixDQUN4QixPQUR3QjtBQUU5QixhQUFBLGlCQUFBLEdBQXlCLGlCQUFpQixHQUFHLE9BQU8sQ0FBcEQsU0FBb0QsQ0FBcEQ7QUFDRDs7QUFFRCxhQUFBLGlCQUFBO0FBUkYsS0FBQSxNQVNPO0FBQ0wsYUFBTyxLQUFBLG1CQUFBLENBQVAsS0FBTyxDQUFQO0FBQ0Q7QUFDRixHQXpDSDs7QUFBQSxTQTJDRSxTQTNDRixHQTJDRSxtQkFBUyxVQUFULEVBQTJDO0FBQUE7O0FBQ3pDLFdBQU8sVUFBQSxZQUFBLEVBQUEsS0FBQSxFQUF3Qjs7O0FBQzdCLFVBQUksT0FBTyxHQUFHLEtBQUEsQ0FBQSxjQUFBLENBQWQsS0FBYyxDQUFkOztBQUVBLFVBQU0sSUFBSSxHQUFHLFlBQVksQ0FBQSxZQUFBLEVBQXpCLFFBQXlCLENBQXpCO0FBQ0EsVUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFQLFlBQUEsQ0FBQSxVQUFBLEVBQWYsSUFBZSxDQUFmOztBQUVBLFVBQUksUUFBUSxDQUFaLE9BQVksQ0FBWixFQUF1QjtBQUNyQixZQUFJLEtBQUssR0FBRyxnQkFBZ0IsQ0FDMUI7QUFBQSxpQkFBTyxPQUEyQyxDQUEzQyxRQUFBLENBRG1CLE1BQ25CLENBQVA7QUFBQSxTQUQwQixFQUFBLElBQUEsRUFHMUIsS0FBSyxJQUFJLE9BQU8sQ0FBaEIsWUFBQSxJQUFpQyxPQUFPLENBQVAsWUFBQSxDQUhuQyxVQUdtQyxDQUhQLENBQTVCOztBQU1BLFlBQUksY0FBYyxDQUFsQixPQUFrQixDQUFsQixFQUE2QjtBQUMzQixVQUFBLHlCQUF5QixDQUFBLEtBQUEsRUFBUSxPQUFPLENBQVAsY0FBQSxDQUFqQyxNQUFpQyxDQUFSLENBQXpCO0FBQ0Q7O0FBRUQsZUFBQSxLQUFBO0FBWEYsT0FBQSxNQVlPLElBQUksY0FBYyxDQUFsQixPQUFrQixDQUFsQixFQUE2QjtBQUNsQyxZQUFJLEdBQUcsR0FBRyxjQUFjLENBQUEsU0FBQSxFQUV0QixLQUFLLEtBQUksQ0FBQSxFQUFBLEdBQUEsQ0FBQSxFQUFBLEdBQUMsT0FBTyxDQUFSLFlBQUEsTUFBQSxJQUFBLElBQXFCLEVBQUEsS0FBQSxLQUFyQixDQUFBLEdBQXFCLEtBQXJCLENBQUEsR0FBcUIsRUFBQSxDQUFBLElBQUEsQ0FBcEIsT0FBb0IsRUFBckIsVUFBcUIsQ0FBckIsTUFBQSxJQUFBLElBQWtDLEVBQUEsS0FBQSxLQUFsQyxDQUFBLEdBQUEsRUFBQSxHQUZYLGdCQUVPLENBRmlCLENBQXhCO0FBS0EsUUFBQSx5QkFBeUIsQ0FBQSxHQUFBLEVBQU0sT0FBTyxDQUFQLGNBQUEsQ0FBL0IsTUFBK0IsQ0FBTixDQUF6QjtBQUVBLGVBQUEsR0FBQTtBQVJLLE9BQUEsTUFTQTtBQUNMLGVBQUEsbUJBQUE7QUFDRDtBQTdCSCxLQUFBO0FBK0JELEdBM0VIOztBQUFBO0FBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhc3NvY2lhdGVEZXN0cm95YWJsZUNoaWxkIH0gZnJvbSAnQGdsaW1tZXIvZGVzdHJveWFibGUnO1xuaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuaW1wb3J0IHtcbiAgSGVscGVyLFxuICBIZWxwZXJDYXBhYmlsaXRpZXMsXG4gIEhlbHBlckNhcGFiaWxpdGllc1ZlcnNpb25zLFxuICBIZWxwZXJEZWZpbml0aW9uU3RhdGUsXG4gIEhlbHBlck1hbmFnZXIsXG4gIEhlbHBlck1hbmFnZXJXaXRoRGVzdHJveWFibGUsXG4gIEhlbHBlck1hbmFnZXJXaXRoVmFsdWUsXG4gIEludGVybmFsSGVscGVyTWFuYWdlcixcbiAgT3duZXIsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgY3JlYXRlQ29tcHV0ZVJlZiwgY3JlYXRlQ29uc3RSZWYsIFVOREVGSU5FRF9SRUZFUkVOQ0UgfSBmcm9tICdAZ2xpbW1lci9yZWZlcmVuY2UnO1xuXG5pbXBvcnQgeyBidWlsZENhcGFiaWxpdGllcywgRlJPTV9DQVBBQklMSVRJRVMgfSBmcm9tICcuLi91dGlsL2NhcGFiaWxpdGllcyc7XG5pbXBvcnQgeyBhcmdzUHJveHlGb3IgfSBmcm9tICcuLi91dGlsL2FyZ3MtcHJveHknO1xuaW1wb3J0IHsgTWFuYWdlckZhY3RvcnkgfSBmcm9tICcuL2luZGV4JztcblxuZXhwb3J0IGZ1bmN0aW9uIGhlbHBlckNhcGFiaWxpdGllczxWZXJzaW9uIGV4dGVuZHMga2V5b2YgSGVscGVyQ2FwYWJpbGl0aWVzVmVyc2lvbnM+KFxuICBtYW5hZ2VyQVBJOiBWZXJzaW9uLFxuICBvcHRpb25zOiBQYXJ0aWFsPEhlbHBlckNhcGFiaWxpdGllcz4gPSB7fVxuKTogSGVscGVyQ2FwYWJpbGl0aWVzIHtcbiAgaWYgKERFQlVHICYmIG1hbmFnZXJBUEkgIT09ICczLjIzJykge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBoZWxwZXIgbWFuYWdlciBjb21wYXRpYmlsaXR5IHNwZWNpZmllZCcpO1xuICB9XG5cbiAgaWYgKFxuICAgIERFQlVHICYmXG4gICAgKCEob3B0aW9ucy5oYXNWYWx1ZSB8fCBvcHRpb25zLmhhc1NjaGVkdWxlZEVmZmVjdCkgfHxcbiAgICAgIChvcHRpb25zLmhhc1ZhbHVlICYmIG9wdGlvbnMuaGFzU2NoZWR1bGVkRWZmZWN0KSlcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ1lvdSBtdXN0IHBhc3MgZWl0aGVyIHRoZSBgaGFzVmFsdWVgIE9SIHRoZSBgaGFzU2NoZWR1bGVkRWZmZWN0YCBjYXBhYmlsaXR5IHdoZW4gZGVmaW5pbmcgYSBoZWxwZXIgbWFuYWdlci4gUGFzc2luZyBuZWl0aGVyLCBvciBib3RoLCBpcyBub3QgcGVybWl0dGVkLidcbiAgICApO1xuICB9XG5cbiAgaWYgKERFQlVHICYmIG9wdGlvbnMuaGFzU2NoZWR1bGVkRWZmZWN0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ1RoZSBgaGFzU2NoZWR1bGVkRWZmZWN0YCBjYXBhYmlsaXR5IGhhcyBub3QgeWV0IGJlZW4gaW1wbGVtZW50ZWQgZm9yIGhlbHBlciBtYW5hZ2Vycy4gUGxlYXNlIHBhc3MgYGhhc1ZhbHVlYCBpbnN0ZWFkJ1xuICAgICk7XG4gIH1cblxuICByZXR1cm4gYnVpbGRDYXBhYmlsaXRpZXMoe1xuICAgIGhhc1ZhbHVlOiBCb29sZWFuKG9wdGlvbnMuaGFzVmFsdWUpLFxuICAgIGhhc0Rlc3Ryb3lhYmxlOiBCb29sZWFuKG9wdGlvbnMuaGFzRGVzdHJveWFibGUpLFxuICAgIGhhc1NjaGVkdWxlZEVmZmVjdDogQm9vbGVhbihvcHRpb25zLmhhc1NjaGVkdWxlZEVmZmVjdCksXG4gIH0pO1xufVxuXG4vLy8vLy8vLy8vLy9cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc1ZhbHVlKFxuICBtYW5hZ2VyOiBIZWxwZXJNYW5hZ2VyPHVua25vd24+XG4pOiBtYW5hZ2VyIGlzIEhlbHBlck1hbmFnZXJXaXRoVmFsdWU8dW5rbm93bj4ge1xuICByZXR1cm4gbWFuYWdlci5jYXBhYmlsaXRpZXMuaGFzVmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNEZXN0cm95YWJsZShcbiAgbWFuYWdlcjogSGVscGVyTWFuYWdlcjx1bmtub3duPlxuKTogbWFuYWdlciBpcyBIZWxwZXJNYW5hZ2VyV2l0aERlc3Ryb3lhYmxlPHVua25vd24+IHtcbiAgcmV0dXJuIG1hbmFnZXIuY2FwYWJpbGl0aWVzLmhhc0Rlc3Ryb3lhYmxlO1xufVxuXG4vLy8vLy8vLy8vLy9cblxuZXhwb3J0IGNsYXNzIEN1c3RvbUhlbHBlck1hbmFnZXI8TyBleHRlbmRzIE93bmVyID0gT3duZXI+IGltcGxlbWVudHMgSW50ZXJuYWxIZWxwZXJNYW5hZ2VyPE8+IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYWN0b3J5OiBNYW5hZ2VyRmFjdG9yeTxPIHwgdW5kZWZpbmVkLCBIZWxwZXJNYW5hZ2VyPHVua25vd24+Pikge31cblxuICBwcml2YXRlIGhlbHBlck1hbmFnZXJEZWxlZ2F0ZXMgPSBuZXcgV2Vha01hcDxPLCBIZWxwZXJNYW5hZ2VyPHVua25vd24+PigpO1xuICBwcml2YXRlIHVuZGVmaW5lZERlbGVnYXRlOiBIZWxwZXJNYW5hZ2VyPHVua25vd24+IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBnZXREZWxlZ2F0ZUZvck93bmVyKG93bmVyOiBPKSB7XG4gICAgbGV0IGRlbGVnYXRlID0gdGhpcy5oZWxwZXJNYW5hZ2VyRGVsZWdhdGVzLmdldChvd25lcik7XG5cbiAgICBpZiAoZGVsZWdhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgbGV0IHsgZmFjdG9yeSB9ID0gdGhpcztcbiAgICAgIGRlbGVnYXRlID0gZmFjdG9yeShvd25lcik7XG5cbiAgICAgIGlmIChERUJVRyAmJiAhRlJPTV9DQVBBQklMSVRJRVMhLmhhcyhkZWxlZ2F0ZS5jYXBhYmlsaXRpZXMpKSB7XG4gICAgICAgIC8vIFRPRE86IFRoaXMgZXJyb3IgbWVzc2FnZSBzaG91bGQgbWFrZSBzZW5zZSBpbiBib3RoIEVtYmVyIGFuZCBHbGltbWVyIGh0dHBzOi8vZ2l0aHViLmNvbS9nbGltbWVyanMvZ2xpbW1lci12bS9pc3N1ZXMvMTIwMFxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEN1c3RvbSBoZWxwZXIgbWFuYWdlcnMgbXVzdCBoYXZlIGEgXFxgY2FwYWJpbGl0aWVzXFxgIHByb3BlcnR5IHRoYXQgaXMgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBcXGBjYXBhYmlsaXRpZXMoJzMuMjMnKVxcYCAoaW1wb3J0ZWQgdmlhIFxcYGltcG9ydCB7IGNhcGFiaWxpdGllcyB9IGZyb20gJ0BlbWJlci9oZWxwZXInO1xcYCkuIFJlY2VpdmVkOiBcXGAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAgZGVsZWdhdGUuY2FwYWJpbGl0aWVzXG4gICAgICAgICAgKX1cXGAgZm9yOiBcXGAke2RlbGVnYXRlfVxcYGBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5oZWxwZXJNYW5hZ2VyRGVsZWdhdGVzLnNldChvd25lciwgZGVsZWdhdGUpO1xuICAgIH1cblxuICAgIHJldHVybiBkZWxlZ2F0ZTtcbiAgfVxuXG4gIGdldERlbGVnYXRlRm9yKG93bmVyOiBPIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKG93bmVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGxldCB7IHVuZGVmaW5lZERlbGVnYXRlIH0gPSB0aGlzO1xuXG4gICAgICBpZiAodW5kZWZpbmVkRGVsZWdhdGUgPT09IG51bGwpIHtcbiAgICAgICAgbGV0IHsgZmFjdG9yeSB9ID0gdGhpcztcbiAgICAgICAgdGhpcy51bmRlZmluZWREZWxlZ2F0ZSA9IHVuZGVmaW5lZERlbGVnYXRlID0gZmFjdG9yeSh1bmRlZmluZWQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkRGVsZWdhdGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmdldERlbGVnYXRlRm9yT3duZXIob3duZXIpO1xuICAgIH1cbiAgfVxuXG4gIGdldEhlbHBlcihkZWZpbml0aW9uOiBIZWxwZXJEZWZpbml0aW9uU3RhdGUpOiBIZWxwZXIge1xuICAgIHJldHVybiAoY2FwdHVyZWRBcmdzLCBvd25lcikgPT4ge1xuICAgICAgbGV0IG1hbmFnZXIgPSB0aGlzLmdldERlbGVnYXRlRm9yKG93bmVyIGFzIE8gfCB1bmRlZmluZWQpO1xuXG4gICAgICBjb25zdCBhcmdzID0gYXJnc1Byb3h5Rm9yKGNhcHR1cmVkQXJncywgJ2hlbHBlcicpO1xuICAgICAgY29uc3QgYnVja2V0ID0gbWFuYWdlci5jcmVhdGVIZWxwZXIoZGVmaW5pdGlvbiwgYXJncyk7XG5cbiAgICAgIGlmIChoYXNWYWx1ZShtYW5hZ2VyKSkge1xuICAgICAgICBsZXQgY2FjaGUgPSBjcmVhdGVDb21wdXRlUmVmKFxuICAgICAgICAgICgpID0+IChtYW5hZ2VyIGFzIEhlbHBlck1hbmFnZXJXaXRoVmFsdWU8dW5rbm93bj4pLmdldFZhbHVlKGJ1Y2tldCksXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICBERUJVRyAmJiBtYW5hZ2VyLmdldERlYnVnTmFtZSAmJiBtYW5hZ2VyLmdldERlYnVnTmFtZShkZWZpbml0aW9uKVxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChoYXNEZXN0cm95YWJsZShtYW5hZ2VyKSkge1xuICAgICAgICAgIGFzc29jaWF0ZURlc3Ryb3lhYmxlQ2hpbGQoY2FjaGUsIG1hbmFnZXIuZ2V0RGVzdHJveWFibGUoYnVja2V0KSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2FjaGU7XG4gICAgICB9IGVsc2UgaWYgKGhhc0Rlc3Ryb3lhYmxlKG1hbmFnZXIpKSB7XG4gICAgICAgIGxldCByZWYgPSBjcmVhdGVDb25zdFJlZihcbiAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgREVCVUcgJiYgKG1hbmFnZXIuZ2V0RGVidWdOYW1lPy4oZGVmaW5pdGlvbikgPz8gJ3Vua25vd24gaGVscGVyJylcbiAgICAgICAgKTtcblxuICAgICAgICBhc3NvY2lhdGVEZXN0cm95YWJsZUNoaWxkKHJlZiwgbWFuYWdlci5nZXREZXN0cm95YWJsZShidWNrZXQpKTtcblxuICAgICAgICByZXR1cm4gcmVmO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFVOREVGSU5FRF9SRUZFUkVOQ0U7XG4gICAgICB9XG4gICAgfTtcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==

@@ -5,3 +5,3 @@ import { DEBUG } from '@glimmer/env';

import { valueForRef } from '@glimmer/reference';
import { dict } from '@glimmer/util';
import { assign, dict } from '@glimmer/util';
import { createUpdatableTag, deprecateMutationsInTrackingTransaction, untrack } from '@glimmer/validator';

@@ -79,5 +79,4 @@ import { buildCapabilities, FROM_CAPABILITIES } from '../util/capabilities';

_proto.create = function create(owner, element, definition, vmArgs) {
_proto.create = function create(owner, element, definition, capturedArgs) {
var delegate = this.getDelegateFor(owner);
var capturedArgs = vmArgs.capture();
var _delegate$capabilitie = delegate.capabilities,

@@ -95,3 +94,3 @@ useArgsProxy = _delegate$capabilitie.useArgsProxy,

create: function create(args) {
var params = Object.assign({}, args);
var params = assign({}, args);
setOwner(params, owner);

@@ -209,2 +208,2 @@ return definition.create(args);

}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL3B1YmxpYy9tb2RpZmllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUFBLEtBQUEsUUFBQSxjQUFBO0FBV0EsU0FBQSxrQkFBQSxRQUFBLHNCQUFBO0FBQ0EsU0FBQSxRQUFBLFFBQUEsZ0JBQUE7QUFDQSxTQUFBLFdBQUEsUUFBQSxvQkFBQTtBQUNBLFNBQUEsSUFBQSxRQUFBLGVBQUE7QUFDQSxTQUFBLGtCQUFBLEVBQUEsdUNBQUEsRUFBQSxPQUFBLFFBQUEsb0JBQUE7QUFPQSxTQUFBLGlCQUFBLEVBQUEsaUJBQUEsUUFBQSxzQkFBQTtBQUNBLFNBQUEsWUFBQSxRQUFBLG9CQUFBO0FBR0EsT0FBTSxTQUFBLG9CQUFBLENBQUEsVUFBQSxFQUVKLGdCQUZJLEVBRXdEO0FBQUEsTUFBNUQsZ0JBQTREO0FBQTVELElBQUEsZ0JBQTRELEdBRnhELEVBRXdEO0FBQUE7O0FBRTVELE1BQUksS0FBSyxJQUFJLFVBQVUsS0FBbkIsTUFBQSxJQUFrQyxVQUFVLEtBQWhELE1BQUEsRUFBNkQ7QUFDM0QsVUFBTSxJQUFBLEtBQUEsQ0FBTixrREFBTSxDQUFOO0FBQ0Q7O0FBRUQsU0FBTyxpQkFBaUIsQ0FBQztBQUN2QixJQUFBLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FEdEIsbUJBQ0ssQ0FETDtBQUV2QixJQUFBLFlBQVksRUFBRSxVQUFVLEtBQVYsTUFBQSxHQUFBLEtBQUEsR0FGUyxJQUFBO0FBSXZCO0FBQ0E7QUFDQSxJQUFBLG1CQUFtQixFQUFFLFVBQVUsS0FBSztBQU5iLEdBQUQsQ0FBeEI7QUFRRDtBQWVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBd0JBLFdBQU0scUJBQU47QUFJRSxpQ0FBQSxPQUFBLEVBQWlGO0FBQTdELFNBQUEsT0FBQSxHQUFBLE9BQUE7QUFGWixTQUFBLHlCQUFBLEdBQTRCLElBQTVCLE9BQTRCLEVBQTVCO0FB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U0FrSEUsTUFsSEYsR0FrSEUsdUJBQTBFO0FBQUEsUUFBbkUsSUFBbUUsU0FBbkUsSUFBbUU7QUFBQSxRQUFuRSxRQUFtRSxTQUFuRSxRQUFtRTtBQUFBLFFBQWpELFFBQWlELFNBQWpELFFBQWlEO0FBQUEsUUFDbEUsWUFEa0UsR0FDeEUsUUFEd0UsQ0FDbEUsWUFEa0U7O0FBR3hFLFFBQUksWUFBWSxDQUFaLG1CQUFBLEtBQUosSUFBQSxFQUErQztBQUM3QyxNQUFBLE9BQU8sQ0FBQztBQUFBLGVBQU0sUUFBUSxDQUFSLGNBQUEsQ0FBQSxRQUFBLEVBQWQsSUFBYyxDQUFOO0FBQUEsT0FBRCxDQUFQO0FBREYsS0FBQSxNQUVPO0FBQ0wsTUFBQSxRQUFRLENBQVIsY0FBQSxDQUFBLFFBQUEsRUFBQSxJQUFBO0FBQ0Q7QUFDRixHQTFISDs7QUFBQSxTQTRIRSxjQTVIRixHQTRIRSx3QkFBYyxLQUFkLEVBQTJEO0FBQ3pELFdBQUEsS0FBQTtBQUNELEdBOUhIOztBQUFBO0FBQUE7QUFpSUEsT0FBTSxTQUFBLFNBQUEsUUFHYztBQUFBLE1BSE0sS0FHTixTQUhNLEtBR047QUFBQSxNQURsQixVQUNrQixTQURsQixVQUNrQjtBQUNsQixNQUFJLFlBQVksR0FBRyxJQUFuQixFQUFBOztBQUVBLE9BQUssSUFBTCxHQUFBLElBQUEsS0FBQSxFQUF1QjtBQUNyQixJQUFBLFlBQVksQ0FBWixHQUFZLENBQVosR0FBb0IsV0FBVyxDQUFDLEtBQUssQ0FBckMsR0FBcUMsQ0FBTixDQUEvQjtBQUNEOztBQUVELE1BQUksaUJBQWlCLEdBQUcsVUFBVSxDQUFWLEdBQUEsQ0FBeEIsV0FBd0IsQ0FBeEI7QUFFQSxTQUFPO0FBQ0wsSUFBQSxLQUFLLEVBREEsWUFBQTtBQUVMLElBQUEsVUFBVSxFQUFFO0FBRlAsR0FBUDtBQUlEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuaW1wb3J0IHtcbiAgQXJndW1lbnRzLFxuICBDYXB0dXJlZEFyZ3VtZW50cyxcbiAgSW50ZXJuYWxNb2RpZmllck1hbmFnZXIsXG4gIE1vZGlmaWVyQ2FwYWJpbGl0aWVzLFxuICBNb2RpZmllckNhcGFiaWxpdGllc1ZlcnNpb25zLFxuICBNb2RpZmllck1hbmFnZXIsXG4gIE93bmVyLFxuICBWTUFyZ3VtZW50cyxcbn0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyByZWdpc3RlckRlc3RydWN0b3IgfSBmcm9tICdAZ2xpbW1lci9kZXN0cm95YWJsZSc7XG5pbXBvcnQgeyBzZXRPd25lciB9IGZyb20gJ0BnbGltbWVyL293bmVyJztcbmltcG9ydCB7IHZhbHVlRm9yUmVmIH0gZnJvbSAnQGdsaW1tZXIvcmVmZXJlbmNlJztcbmltcG9ydCB7IGRpY3QgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7XG4gIGNyZWF0ZVVwZGF0YWJsZVRhZyxcbiAgZGVwcmVjYXRlTXV0YXRpb25zSW5UcmFja2luZ1RyYW5zYWN0aW9uLFxuICB1bnRyYWNrLFxuICBVcGRhdGFibGVUYWcsXG59IGZyb20gJ0BnbGltbWVyL3ZhbGlkYXRvcic7XG5pbXBvcnQgeyBTaW1wbGVFbGVtZW50IH0gZnJvbSAnQHNpbXBsZS1kb20vaW50ZXJmYWNlJztcbmltcG9ydCB7IGJ1aWxkQ2FwYWJpbGl0aWVzLCBGUk9NX0NBUEFCSUxJVElFUyB9IGZyb20gJy4uL3V0aWwvY2FwYWJpbGl0aWVzJztcbmltcG9ydCB7IGFyZ3NQcm94eUZvciB9IGZyb20gJy4uL3V0aWwvYXJncy1wcm94eSc7XG5pbXBvcnQgeyBNYW5hZ2VyRmFjdG9yeSB9IGZyb20gJy4nO1xuXG5leHBvcnQgZnVuY3Rpb24gbW9kaWZpZXJDYXBhYmlsaXRpZXM8VmVyc2lvbiBleHRlbmRzIGtleW9mIE1vZGlmaWVyQ2FwYWJpbGl0aWVzVmVyc2lvbnM+KFxuICBtYW5hZ2VyQVBJOiBWZXJzaW9uLFxuICBvcHRpb25hbEZlYXR1cmVzOiBNb2RpZmllckNhcGFiaWxpdGllc1ZlcnNpb25zW1ZlcnNpb25dID0ge31cbik6IE1vZGlmaWVyQ2FwYWJpbGl0aWVzIHtcbiAgaWYgKERFQlVHICYmIG1hbmFnZXJBUEkgIT09ICczLjEzJyAmJiBtYW5hZ2VyQVBJICE9PSAnMy4yMicpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgbW9kaWZpZXIgbWFuYWdlciBjb21wYXRpYmlsaXR5IHNwZWNpZmllZCcpO1xuICB9XG5cbiAgcmV0dXJuIGJ1aWxkQ2FwYWJpbGl0aWVzKHtcbiAgICBkaXNhYmxlQXV0b1RyYWNraW5nOiBCb29sZWFuKG9wdGlvbmFsRmVhdHVyZXMuZGlzYWJsZUF1dG9UcmFja2luZyksXG4gICAgdXNlQXJnc1Byb3h5OiBtYW5hZ2VyQVBJID09PSAnMy4xMycgPyBmYWxzZSA6IHRydWUsXG5cbiAgICAvLyBUaGlzIGNhcGFiaWxpdHkgaXMgdXNlZCBpbiBFbWJlciwgZXhjbHVzaXZlbHkgaW4gcmVzb2x1dGlvbiBtb2RlLiBTZWUgdGhlXG4gICAgLy8gRW1iZXIgZ2xpbW1lciByZXNvbHZlciBmb3IgZGV0YWlscy5cbiAgICBwYXNzRmFjdG9yeVRvQ3JlYXRlOiBtYW5hZ2VyQVBJID09PSAnMy4xMycsXG4gIH0pO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT4ge1xuICB0YWc6IFVwZGF0YWJsZVRhZztcbiAgZWxlbWVudDogU2ltcGxlRWxlbWVudDtcbiAgbW9kaWZpZXI6IE1vZGlmaWVySW5zdGFuY2U7XG4gIGRlbGVnYXRlOiBNb2RpZmllck1hbmFnZXI8TW9kaWZpZXJJbnN0YW5jZT47XG4gIGFyZ3M6IEFyZ3VtZW50cztcbiAgZGVidWdOYW1lPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgRmFjdG9yeSB7XG4gIGNyZWF0ZShwYXJhbXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogb2JqZWN0O1xufVxuXG4vKipcbiAgVGhlIEN1c3RvbU1vZGlmaWVyTWFuYWdlciBhbGxvd3MgYWRkb25zIHRvIHByb3ZpZGUgY3VzdG9tIG1vZGlmaWVyXG4gIGltcGxlbWVudGF0aW9ucyB0aGF0IGludGVncmF0ZSBzZWFtbGVzc2x5IGludG8gRW1iZXIuIFRoaXMgaXMgYWNjb21wbGlzaGVkXG4gIHRocm91Z2ggYSBkZWxlZ2F0ZSwgcmVnaXN0ZXJlZCB3aXRoIHRoZSBjdXN0b20gbW9kaWZpZXIgbWFuYWdlciwgd2hpY2hcbiAgaW1wbGVtZW50cyBhIHNldCBvZiBob29rcyB0aGF0IGRldGVybWluZSBtb2RpZmllciBiZWhhdmlvci5cbiAgVG8gY3JlYXRlIGEgY3VzdG9tIG1vZGlmaWVyIG1hbmFnZXIsIGluc3RhbnRpYXRlIGEgbmV3IEN1c3RvbU1vZGlmaWVyTWFuYWdlclxuICBjbGFzcyBhbmQgcGFzcyB0aGUgZGVsZWdhdGUgYXMgdGhlIGZpcnN0IGFyZ3VtZW50OlxuXG4gIGBgYGpzXG4gIGxldCBtYW5hZ2VyID0gbmV3IEN1c3RvbU1vZGlmaWVyTWFuYWdlcih7XG4gICAgLy8gLi4uZGVsZWdhdGUgaW1wbGVtZW50YXRpb24uLi5cbiAgfSk7XG4gIGBgYFxuXG4gICMjIERlbGVnYXRlIEhvb2tzXG5cbiAgVGhyb3VnaG91dCB0aGUgbGlmZWN5Y2xlIG9mIGEgbW9kaWZpZXIsIHRoZSBtb2RpZmllciBtYW5hZ2VyIHdpbGwgaW52b2tlXG4gIGRlbGVnYXRlIGhvb2tzIHRoYXQgYXJlIHJlc3BvbnNpYmxlIGZvciBzdXJmYWNpbmcgdGhvc2UgbGlmZWN5Y2xlIGNoYW5nZXMgdG9cbiAgdGhlIGVuZCBkZXZlbG9wZXIuXG4gICogYGNyZWF0ZU1vZGlmaWVyKClgIC0gaW52b2tlZCB3aGVuIGEgbmV3IGluc3RhbmNlIG9mIGEgbW9kaWZpZXIgc2hvdWxkIGJlIGNyZWF0ZWRcbiAgKiBgaW5zdGFsbE1vZGlmaWVyKClgIC0gaW52b2tlZCB3aGVuIHRoZSBtb2RpZmllciBpcyBpbnN0YWxsZWQgb24gdGhlIGVsZW1lbnRcbiAgKiBgdXBkYXRlTW9kaWZpZXIoKWAgLSBpbnZva2VkIHdoZW4gdGhlIGFyZ3VtZW50cyBwYXNzZWQgdG8gYSBtb2RpZmllciBjaGFuZ2VcbiAgKiBgZGVzdHJveU1vZGlmaWVyKClgIC0gaW52b2tlZCB3aGVuIHRoZSBtb2RpZmllciBpcyBhYm91dCB0byBiZSBkZXN0cm95ZWRcbiovXG5leHBvcnQgY2xhc3MgQ3VzdG9tTW9kaWZpZXJNYW5hZ2VyPE8gZXh0ZW5kcyBPd25lciwgTW9kaWZpZXJJbnN0YW5jZT5cbiAgaW1wbGVtZW50cyBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcjxDdXN0b21Nb2RpZmllclN0YXRlPE1vZGlmaWVySW5zdGFuY2U+PiB7XG4gIHByaXZhdGUgY29tcG9uZW50TWFuYWdlckRlbGVnYXRlcyA9IG5ldyBXZWFrTWFwPE8sIE1vZGlmaWVyTWFuYWdlcjxNb2RpZmllckluc3RhbmNlPj4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZhY3Rvcnk6IE1hbmFnZXJGYWN0b3J5PE8sIE1vZGlmaWVyTWFuYWdlcjxNb2RpZmllckluc3RhbmNlPj4pIHt9XG5cbiAgcHJpdmF0ZSBnZXREZWxlZ2F0ZUZvcihvd25lcjogTykge1xuICAgIGxldCB7IGNvbXBvbmVudE1hbmFnZXJEZWxlZ2F0ZXMgfSA9IHRoaXM7XG4gICAgbGV0IGRlbGVnYXRlID0gY29tcG9uZW50TWFuYWdlckRlbGVnYXRlcy5nZXQob3duZXIpO1xuXG4gICAgaWYgKGRlbGVnYXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGxldCB7IGZhY3RvcnkgfSA9IHRoaXM7XG4gICAgICBkZWxlZ2F0ZSA9IGZhY3Rvcnkob3duZXIpO1xuXG4gICAgICBpZiAoREVCVUcgJiYgIUZST01fQ0FQQUJJTElUSUVTIS5oYXMoZGVsZWdhdGUuY2FwYWJpbGl0aWVzKSkge1xuICAgICAgICAvLyBUT0RPOiBUaGlzIGVycm9yIG1lc3NhZ2Ugc2hvdWxkIG1ha2Ugc2Vuc2UgaW4gYm90aCBFbWJlciBhbmQgR2xpbW1lciBodHRwczovL2dpdGh1Yi5jb20vZ2xpbW1lcmpzL2dsaW1tZXItdm0vaXNzdWVzLzEyMDBcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBDdXN0b20gbW9kaWZpZXIgbWFuYWdlcnMgbXVzdCBoYXZlIGEgXFxgY2FwYWJpbGl0aWVzXFxgIHByb3BlcnR5IHRoYXQgaXMgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBcXGBjYXBhYmlsaXRpZXMoJzMuMTMnIHwgJzMuMjInKVxcYCAoaW1wb3J0ZWQgdmlhIFxcYGltcG9ydCB7IGNhcGFiaWxpdGllcyB9IGZyb20gJ0BlbWJlci9tb2RpZmllcic7XFxgKS4gUmVjZWl2ZWQ6IFxcYCR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICBkZWxlZ2F0ZS5jYXBhYmlsaXRpZXNcbiAgICAgICAgICApfVxcYCBmb3I6IFxcYCR7ZGVsZWdhdGV9XFxgYFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBjb21wb25lbnRNYW5hZ2VyRGVsZWdhdGVzLnNldChvd25lciwgZGVsZWdhdGUpO1xuICAgIH1cblxuICAgIHJldHVybiBkZWxlZ2F0ZTtcbiAgfVxuXG4gIGNyZWF0ZShvd25lcjogTywgZWxlbWVudDogU2ltcGxlRWxlbWVudCwgZGVmaW5pdGlvbjogb2JqZWN0LCB2bUFyZ3M6IFZNQXJndW1lbnRzKSB7XG4gICAgbGV0IGRlbGVnYXRlID0gdGhpcy5nZXREZWxlZ2F0ZUZvcihvd25lcik7XG4gICAgbGV0IGNhcHR1cmVkQXJncyA9IHZtQXJncy5jYXB0dXJlKCk7XG5cbiAgICBsZXQgeyB1c2VBcmdzUHJveHksIHBhc3NGYWN0b3J5VG9DcmVhdGUgfSA9IGRlbGVnYXRlLmNhcGFiaWxpdGllcztcblxuICAgIGxldCBhcmdzID0gdXNlQXJnc1Byb3h5ID8gYXJnc1Byb3h5Rm9yKGNhcHR1cmVkQXJncywgJ21vZGlmaWVyJykgOiByZWlmeUFyZ3MoY2FwdHVyZWRBcmdzKTtcblxuICAgIGxldCBpbnN0YW5jZTogTW9kaWZpZXJJbnN0YW5jZTtcblxuICAgIGxldCBmYWN0b3J5T3JEZWZpbml0aW9uID0gZGVmaW5pdGlvbjtcblxuICAgIGlmIChwYXNzRmFjdG9yeVRvQ3JlYXRlKSB7XG4gICAgICAvLyBNYWtlIGEgZmFrZSBmYWN0b3J5LiBXaGlsZSBub3QgcGVyZmVjdCwgdGhpcyBzaG91bGQgZ2VuZXJhbGx5IHByZXZlbnRcbiAgICAgIC8vIGJyZWFrYWdlIGluIHVzZXJzIG9mIG9sZGVyIG1vZGlmaWVyIGNhcGFiaWxpdGllcy5cbiAgICAgIGZhY3RvcnlPckRlZmluaXRpb24gPSB7XG4gICAgICAgIGNyZWF0ZShhcmdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikge1xuICAgICAgICAgIGxldCBwYXJhbXMgPSBPYmplY3QuYXNzaWduKHt9LCBhcmdzKTtcbiAgICAgICAgICBzZXRPd25lcihwYXJhbXMsIG93bmVyKTtcblxuICAgICAgICAgIHJldHVybiAoZGVmaW5pdGlvbiBhcyBGYWN0b3J5KS5jcmVhdGUoYXJncyk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgY2xhc3M6IGRlZmluaXRpb24sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChERUJVRyAmJiBkZXByZWNhdGVNdXRhdGlvbnNJblRyYWNraW5nVHJhbnNhY3Rpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgZGVwcmVjYXRlTXV0YXRpb25zSW5UcmFja2luZ1RyYW5zYWN0aW9uKCgpID0+IHtcbiAgICAgICAgaW5zdGFuY2UgPSBkZWxlZ2F0ZS5jcmVhdGVNb2RpZmllcihmYWN0b3J5T3JEZWZpbml0aW9uLCBhcmdzKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpbnN0YW5jZSA9IGRlbGVnYXRlLmNyZWF0ZU1vZGlmaWVyKGZhY3RvcnlPckRlZmluaXRpb24sIGFyZ3MpO1xuICAgIH1cblxuICAgIGxldCB0YWcgPSBjcmVhdGVVcGRhdGFibGVUYWcoKTtcbiAgICBsZXQgc3RhdGU6IEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT47XG5cbiAgICBpZiAodXNlQXJnc1Byb3h5KSB7XG4gICAgICBzdGF0ZSA9IHtcbiAgICAgICAgdGFnLFxuICAgICAgICBlbGVtZW50LFxuICAgICAgICBkZWxlZ2F0ZSxcbiAgICAgICAgYXJncyxcbiAgICAgICAgbW9kaWZpZXI6IGluc3RhbmNlISxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0YXRlID0ge1xuICAgICAgICB0YWcsXG4gICAgICAgIGVsZW1lbnQsXG4gICAgICAgIG1vZGlmaWVyOiBpbnN0YW5jZSEsXG4gICAgICAgIGRlbGVnYXRlLFxuICAgICAgICBnZXQgYXJncygpIHtcbiAgICAgICAgICByZXR1cm4gcmVpZnlBcmdzKGNhcHR1cmVkQXJncyk7XG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChERUJVRykge1xuICAgICAgc3RhdGUuZGVidWdOYW1lID0gdHlwZW9mIGRlZmluaXRpb24gPT09ICdmdW5jdGlvbicgPyBkZWZpbml0aW9uLm5hbWUgOiBkZWZpbml0aW9uLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJEZXN0cnVjdG9yKHN0YXRlLCAoKSA9PiBkZWxlZ2F0ZS5kZXN0cm95TW9kaWZpZXIoaW5zdGFuY2UsIHN0YXRlLmFyZ3MpKTtcblxuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIGdldERlYnVnTmFtZSh7IGRlYnVnTmFtZSB9OiBDdXN0b21Nb2RpZmllclN0YXRlPE1vZGlmaWVySW5zdGFuY2U+KSB7XG4gICAgcmV0dXJuIGRlYnVnTmFtZSE7XG4gIH1cblxuICBnZXRUYWcoeyB0YWcgfTogQ3VzdG9tTW9kaWZpZXJTdGF0ZTxNb2RpZmllckluc3RhbmNlPikge1xuICAgIHJldHVybiB0YWc7XG4gIH1cblxuICBpbnN0YWxsKHsgZWxlbWVudCwgYXJncywgbW9kaWZpZXIsIGRlbGVnYXRlIH06IEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT4pIHtcbiAgICBsZXQgeyBjYXBhYmlsaXRpZXMgfSA9IGRlbGVnYXRlO1xuXG4gICAgaWYgKGNhcGFiaWxpdGllcy5kaXNhYmxlQXV0b1RyYWNraW5nID09PSB0cnVlKSB7XG4gICAgICB1bnRyYWNrKCgpID0+IGRlbGVnYXRlLmluc3RhbGxNb2RpZmllcihtb2RpZmllciwgZWxlbWVudCwgYXJncykpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWxlZ2F0ZS5pbnN0YWxsTW9kaWZpZXIobW9kaWZpZXIsIGVsZW1lbnQsIGFyZ3MpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZSh7IGFyZ3MsIG1vZGlmaWVyLCBkZWxlZ2F0ZSB9OiBDdXN0b21Nb2RpZmllclN0YXRlPE1vZGlmaWVySW5zdGFuY2U+KSB7XG4gICAgbGV0IHsgY2FwYWJpbGl0aWVzIH0gPSBkZWxlZ2F0ZTtcblxuICAgIGlmIChjYXBhYmlsaXRpZXMuZGlzYWJsZUF1dG9UcmFja2luZyA9PT0gdHJ1ZSkge1xuICAgICAgdW50cmFjaygoKSA9PiBkZWxlZ2F0ZS51cGRhdGVNb2RpZmllcihtb2RpZmllciwgYXJncykpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWxlZ2F0ZS51cGRhdGVNb2RpZmllcihtb2RpZmllciwgYXJncyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0RGVzdHJveWFibGUoc3RhdGU6IEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT4pIHtcbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlaWZ5QXJncyh7XG4gIG5hbWVkLFxuICBwb3NpdGlvbmFsLFxufTogQ2FwdHVyZWRBcmd1bWVudHMpOiB7IG5hbWVkOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjsgcG9zaXRpb25hbDogdW5rbm93bltdIH0ge1xuICBsZXQgcmVpZmllZE5hbWVkID0gZGljdCgpO1xuXG4gIGZvciAobGV0IGtleSBpbiBuYW1lZCkge1xuICAgIHJlaWZpZWROYW1lZFtrZXldID0gdmFsdWVGb3JSZWYobmFtZWRba2V5XSk7XG4gIH1cblxuICBsZXQgcmVpZmllZFBvc2l0aW9uYWwgPSBwb3NpdGlvbmFsLm1hcCh2YWx1ZUZvclJlZik7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lZDogcmVpZmllZE5hbWVkLFxuICAgIHBvc2l0aW9uYWw6IHJlaWZpZWRQb3NpdGlvbmFsLFxuICB9O1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL21hbmFnZXIvbGliL3B1YmxpYy9tb2RpZmllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUFBLEtBQUEsUUFBQSxjQUFBO0FBVUEsU0FBQSxrQkFBQSxRQUFBLHNCQUFBO0FBQ0EsU0FBQSxRQUFBLFFBQUEsZ0JBQUE7QUFDQSxTQUFBLFdBQUEsUUFBQSxvQkFBQTtBQUNBLFNBQUEsTUFBQSxFQUFBLElBQUEsUUFBQSxlQUFBO0FBQ0EsU0FBQSxrQkFBQSxFQUFBLHVDQUFBLEVBQUEsT0FBQSxRQUFBLG9CQUFBO0FBT0EsU0FBQSxpQkFBQSxFQUFBLGlCQUFBLFFBQUEsc0JBQUE7QUFDQSxTQUFBLFlBQUEsUUFBQSxvQkFBQTtBQUdBLE9BQU0sU0FBQSxvQkFBQSxDQUFBLFVBQUEsRUFFSixnQkFGSSxFQUV3RDtBQUFBLE1BQTVELGdCQUE0RDtBQUE1RCxJQUFBLGdCQUE0RCxHQUZ4RCxFQUV3RDtBQUFBOztBQUU1RCxNQUFJLEtBQUssSUFBSSxVQUFVLEtBQW5CLE1BQUEsSUFBa0MsVUFBVSxLQUFoRCxNQUFBLEVBQTZEO0FBQzNELFVBQU0sSUFBQSxLQUFBLENBQU4sa0RBQU0sQ0FBTjtBQUNEOztBQUVELFNBQU8saUJBQWlCLENBQUM7QUFDdkIsSUFBQSxtQkFBbUIsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBRHRCLG1CQUNLLENBREw7QUFFdkIsSUFBQSxZQUFZLEVBQUUsVUFBVSxLQUFWLE1BQUEsR0FBQSxLQUFBLEdBRlMsSUFBQTtBQUl2QjtBQUNBO0FBQ0EsSUFBQSxtQkFBbUIsRUFBRSxVQUFVLEtBQUs7QUFOYixHQUFELENBQXhCO0FBUUQ7QUFlRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXdCQSxXQUFNLHFCQUFOO0FBSUUsaUNBQUEsT0FBQSxFQUFpRjtBQUE3RCxTQUFBLE9BQUEsR0FBQSxPQUFBO0FBRlosU0FBQSx5QkFBQSxHQUE0QixJQUE1QixPQUE0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RSxTQUFuRSxJQUFtRTtBQUFBLFFBQW5FLFFBQW1FLFNBQW5FLFFBQW1FO0FBQUEsUUFBakQsUUFBaUQsU0FBakQsUUFBaUQ7QUFBQSxRQUNsRSxZQURrRSxHQUN4RSxRQUR3RSxDQUNsRSxZQURrRTs7QUFHeEUsUUFBSSxZQUFZLENBQVosbUJBQUEsS0FBSixJQUFBLEVBQStDO0FBQzdDLE1BQUEsT0FBTyxDQUFDO0FBQUEsZUFBTSxRQUFRLENBQVIsY0FBQSxDQUFBLFFBQUEsRUFBZCxJQUFjLENBQU47QUFBQSxPQUFELENBQVA7QUFERixLQUFBLE1BRU87QUFDTCxNQUFBLFFBQVEsQ0FBUixjQUFBLENBQUEsUUFBQSxFQUFBLElBQUE7QUFDRDtBQUNGLEdBekhIOztBQUFBLFNBMkhFLGNBM0hGLEdBMkhFLHdCQUFjLEtBQWQsRUFBMkQ7QUFDekQsV0FBQSxLQUFBO0FBQ0QsR0E3SEg7O0FBQUE7QUFBQTtBQWdJQSxPQUFNLFNBQUEsU0FBQSxRQUdjO0FBQUEsTUFITSxLQUdOLFNBSE0sS0FHTjtBQUFBLE1BRGxCLFVBQ2tCLFNBRGxCLFVBQ2tCO0FBQ2xCLE1BQUksWUFBWSxHQUFHLElBQW5CLEVBQUE7O0FBRUEsT0FBSyxJQUFMLEdBQUEsSUFBQSxLQUFBLEVBQXVCO0FBQ3JCLElBQUEsWUFBWSxDQUFaLEdBQVksQ0FBWixHQUFvQixXQUFXLENBQUMsS0FBSyxDQUFyQyxHQUFxQyxDQUFOLENBQS9CO0FBQ0Q7O0FBRUQsTUFBSSxpQkFBaUIsR0FBRyxVQUFVLENBQVYsR0FBQSxDQUF4QixXQUF3QixDQUF4QjtBQUVBLFNBQU87QUFDTCxJQUFBLEtBQUssRUFEQSxZQUFBO0FBRUwsSUFBQSxVQUFVLEVBQUU7QUFGUCxHQUFQO0FBSUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5pbXBvcnQge1xuICBBcmd1bWVudHMsXG4gIENhcHR1cmVkQXJndW1lbnRzLFxuICBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcixcbiAgTW9kaWZpZXJDYXBhYmlsaXRpZXMsXG4gIE1vZGlmaWVyQ2FwYWJpbGl0aWVzVmVyc2lvbnMsXG4gIE1vZGlmaWVyTWFuYWdlcixcbiAgT3duZXIsXG59IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgcmVnaXN0ZXJEZXN0cnVjdG9yIH0gZnJvbSAnQGdsaW1tZXIvZGVzdHJveWFibGUnO1xuaW1wb3J0IHsgc2V0T3duZXIgfSBmcm9tICdAZ2xpbW1lci9vd25lcic7XG5pbXBvcnQgeyB2YWx1ZUZvclJlZiB9IGZyb20gJ0BnbGltbWVyL3JlZmVyZW5jZSc7XG5pbXBvcnQgeyBhc3NpZ24sIGNhc3RUb0Jyb3dzZXIsIGRpY3QgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7XG4gIGNyZWF0ZVVwZGF0YWJsZVRhZyxcbiAgZGVwcmVjYXRlTXV0YXRpb25zSW5UcmFja2luZ1RyYW5zYWN0aW9uLFxuICB1bnRyYWNrLFxuICBVcGRhdGFibGVUYWcsXG59IGZyb20gJ0BnbGltbWVyL3ZhbGlkYXRvcic7XG5pbXBvcnQgeyBTaW1wbGVFbGVtZW50IH0gZnJvbSAnQHNpbXBsZS1kb20vaW50ZXJmYWNlJztcbmltcG9ydCB7IGJ1aWxkQ2FwYWJpbGl0aWVzLCBGUk9NX0NBUEFCSUxJVElFUyB9IGZyb20gJy4uL3V0aWwvY2FwYWJpbGl0aWVzJztcbmltcG9ydCB7IGFyZ3NQcm94eUZvciB9IGZyb20gJy4uL3V0aWwvYXJncy1wcm94eSc7XG5pbXBvcnQgeyBNYW5hZ2VyRmFjdG9yeSB9IGZyb20gJy4nO1xuXG5leHBvcnQgZnVuY3Rpb24gbW9kaWZpZXJDYXBhYmlsaXRpZXM8VmVyc2lvbiBleHRlbmRzIGtleW9mIE1vZGlmaWVyQ2FwYWJpbGl0aWVzVmVyc2lvbnM+KFxuICBtYW5hZ2VyQVBJOiBWZXJzaW9uLFxuICBvcHRpb25hbEZlYXR1cmVzOiBNb2RpZmllckNhcGFiaWxpdGllc1ZlcnNpb25zW1ZlcnNpb25dID0ge31cbik6IE1vZGlmaWVyQ2FwYWJpbGl0aWVzIHtcbiAgaWYgKERFQlVHICYmIG1hbmFnZXJBUEkgIT09ICczLjEzJyAmJiBtYW5hZ2VyQVBJICE9PSAnMy4yMicpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgbW9kaWZpZXIgbWFuYWdlciBjb21wYXRpYmlsaXR5IHNwZWNpZmllZCcpO1xuICB9XG5cbiAgcmV0dXJuIGJ1aWxkQ2FwYWJpbGl0aWVzKHtcbiAgICBkaXNhYmxlQXV0b1RyYWNraW5nOiBCb29sZWFuKG9wdGlvbmFsRmVhdHVyZXMuZGlzYWJsZUF1dG9UcmFja2luZyksXG4gICAgdXNlQXJnc1Byb3h5OiBtYW5hZ2VyQVBJID09PSAnMy4xMycgPyBmYWxzZSA6IHRydWUsXG5cbiAgICAvLyBUaGlzIGNhcGFiaWxpdHkgaXMgdXNlZCBpbiBFbWJlciwgZXhjbHVzaXZlbHkgaW4gcmVzb2x1dGlvbiBtb2RlLiBTZWUgdGhlXG4gICAgLy8gRW1iZXIgZ2xpbW1lciByZXNvbHZlciBmb3IgZGV0YWlscy5cbiAgICBwYXNzRmFjdG9yeVRvQ3JlYXRlOiBtYW5hZ2VyQVBJID09PSAnMy4xMycsXG4gIH0pO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT4ge1xuICB0YWc6IFVwZGF0YWJsZVRhZztcbiAgZWxlbWVudDogU2ltcGxlRWxlbWVudDtcbiAgbW9kaWZpZXI6IE1vZGlmaWVySW5zdGFuY2U7XG4gIGRlbGVnYXRlOiBNb2RpZmllck1hbmFnZXI8TW9kaWZpZXJJbnN0YW5jZT47XG4gIGFyZ3M6IEFyZ3VtZW50cztcbiAgZGVidWdOYW1lPzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgRmFjdG9yeSB7XG4gIGNyZWF0ZShwYXJhbXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogb2JqZWN0O1xufVxuXG4vKipcbiAgVGhlIEN1c3RvbU1vZGlmaWVyTWFuYWdlciBhbGxvd3MgYWRkb25zIHRvIHByb3ZpZGUgY3VzdG9tIG1vZGlmaWVyXG4gIGltcGxlbWVudGF0aW9ucyB0aGF0IGludGVncmF0ZSBzZWFtbGVzc2x5IGludG8gRW1iZXIuIFRoaXMgaXMgYWNjb21wbGlzaGVkXG4gIHRocm91Z2ggYSBkZWxlZ2F0ZSwgcmVnaXN0ZXJlZCB3aXRoIHRoZSBjdXN0b20gbW9kaWZpZXIgbWFuYWdlciwgd2hpY2hcbiAgaW1wbGVtZW50cyBhIHNldCBvZiBob29rcyB0aGF0IGRldGVybWluZSBtb2RpZmllciBiZWhhdmlvci5cbiAgVG8gY3JlYXRlIGEgY3VzdG9tIG1vZGlmaWVyIG1hbmFnZXIsIGluc3RhbnRpYXRlIGEgbmV3IEN1c3RvbU1vZGlmaWVyTWFuYWdlclxuICBjbGFzcyBhbmQgcGFzcyB0aGUgZGVsZWdhdGUgYXMgdGhlIGZpcnN0IGFyZ3VtZW50OlxuXG4gIGBgYGpzXG4gIGxldCBtYW5hZ2VyID0gbmV3IEN1c3RvbU1vZGlmaWVyTWFuYWdlcih7XG4gICAgLy8gLi4uZGVsZWdhdGUgaW1wbGVtZW50YXRpb24uLi5cbiAgfSk7XG4gIGBgYFxuXG4gICMjIERlbGVnYXRlIEhvb2tzXG5cbiAgVGhyb3VnaG91dCB0aGUgbGlmZWN5Y2xlIG9mIGEgbW9kaWZpZXIsIHRoZSBtb2RpZmllciBtYW5hZ2VyIHdpbGwgaW52b2tlXG4gIGRlbGVnYXRlIGhvb2tzIHRoYXQgYXJlIHJlc3BvbnNpYmxlIGZvciBzdXJmYWNpbmcgdGhvc2UgbGlmZWN5Y2xlIGNoYW5nZXMgdG9cbiAgdGhlIGVuZCBkZXZlbG9wZXIuXG4gICogYGNyZWF0ZU1vZGlmaWVyKClgIC0gaW52b2tlZCB3aGVuIGEgbmV3IGluc3RhbmNlIG9mIGEgbW9kaWZpZXIgc2hvdWxkIGJlIGNyZWF0ZWRcbiAgKiBgaW5zdGFsbE1vZGlmaWVyKClgIC0gaW52b2tlZCB3aGVuIHRoZSBtb2RpZmllciBpcyBpbnN0YWxsZWQgb24gdGhlIGVsZW1lbnRcbiAgKiBgdXBkYXRlTW9kaWZpZXIoKWAgLSBpbnZva2VkIHdoZW4gdGhlIGFyZ3VtZW50cyBwYXNzZWQgdG8gYSBtb2RpZmllciBjaGFuZ2VcbiAgKiBgZGVzdHJveU1vZGlmaWVyKClgIC0gaW52b2tlZCB3aGVuIHRoZSBtb2RpZmllciBpcyBhYm91dCB0byBiZSBkZXN0cm95ZWRcbiovXG5leHBvcnQgY2xhc3MgQ3VzdG9tTW9kaWZpZXJNYW5hZ2VyPE8gZXh0ZW5kcyBPd25lciwgTW9kaWZpZXJJbnN0YW5jZT5cbiAgaW1wbGVtZW50cyBJbnRlcm5hbE1vZGlmaWVyTWFuYWdlcjxDdXN0b21Nb2RpZmllclN0YXRlPE1vZGlmaWVySW5zdGFuY2U+PiB7XG4gIHByaXZhdGUgY29tcG9uZW50TWFuYWdlckRlbGVnYXRlcyA9IG5ldyBXZWFrTWFwPE8sIE1vZGlmaWVyTWFuYWdlcjxNb2RpZmllckluc3RhbmNlPj4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZhY3Rvcnk6IE1hbmFnZXJGYWN0b3J5PE8sIE1vZGlmaWVyTWFuYWdlcjxNb2RpZmllckluc3RhbmNlPj4pIHt9XG5cbiAgcHJpdmF0ZSBnZXREZWxlZ2F0ZUZvcihvd25lcjogTykge1xuICAgIGxldCB7IGNvbXBvbmVudE1hbmFnZXJEZWxlZ2F0ZXMgfSA9IHRoaXM7XG4gICAgbGV0IGRlbGVnYXRlID0gY29tcG9uZW50TWFuYWdlckRlbGVnYXRlcy5nZXQob3duZXIpO1xuXG4gICAgaWYgKGRlbGVnYXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGxldCB7IGZhY3RvcnkgfSA9IHRoaXM7XG4gICAgICBkZWxlZ2F0ZSA9IGZhY3Rvcnkob3duZXIpO1xuXG4gICAgICBpZiAoREVCVUcgJiYgIUZST01fQ0FQQUJJTElUSUVTIS5oYXMoZGVsZWdhdGUuY2FwYWJpbGl0aWVzKSkge1xuICAgICAgICAvLyBUT0RPOiBUaGlzIGVycm9yIG1lc3NhZ2Ugc2hvdWxkIG1ha2Ugc2Vuc2UgaW4gYm90aCBFbWJlciBhbmQgR2xpbW1lciBodHRwczovL2dpdGh1Yi5jb20vZ2xpbW1lcmpzL2dsaW1tZXItdm0vaXNzdWVzLzEyMDBcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBDdXN0b20gbW9kaWZpZXIgbWFuYWdlcnMgbXVzdCBoYXZlIGEgXFxgY2FwYWJpbGl0aWVzXFxgIHByb3BlcnR5IHRoYXQgaXMgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBcXGBjYXBhYmlsaXRpZXMoJzMuMTMnIHwgJzMuMjInKVxcYCAoaW1wb3J0ZWQgdmlhIFxcYGltcG9ydCB7IGNhcGFiaWxpdGllcyB9IGZyb20gJ0BlbWJlci9tb2RpZmllcic7XFxgKS4gUmVjZWl2ZWQ6IFxcYCR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICBkZWxlZ2F0ZS5jYXBhYmlsaXRpZXNcbiAgICAgICAgICApfVxcYCBmb3I6IFxcYCR7ZGVsZWdhdGV9XFxgYFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBjb21wb25lbnRNYW5hZ2VyRGVsZWdhdGVzLnNldChvd25lciwgZGVsZWdhdGUpO1xuICAgIH1cblxuICAgIHJldHVybiBkZWxlZ2F0ZTtcbiAgfVxuXG4gIGNyZWF0ZShvd25lcjogTywgZWxlbWVudDogU2ltcGxlRWxlbWVudCwgZGVmaW5pdGlvbjogb2JqZWN0LCBjYXB0dXJlZEFyZ3M6IENhcHR1cmVkQXJndW1lbnRzKSB7XG4gICAgbGV0IGRlbGVnYXRlID0gdGhpcy5nZXREZWxlZ2F0ZUZvcihvd25lcik7XG5cbiAgICBsZXQgeyB1c2VBcmdzUHJveHksIHBhc3NGYWN0b3J5VG9DcmVhdGUgfSA9IGRlbGVnYXRlLmNhcGFiaWxpdGllcztcblxuICAgIGxldCBhcmdzID0gdXNlQXJnc1Byb3h5ID8gYXJnc1Byb3h5Rm9yKGNhcHR1cmVkQXJncywgJ21vZGlmaWVyJykgOiByZWlmeUFyZ3MoY2FwdHVyZWRBcmdzKTtcblxuICAgIGxldCBpbnN0YW5jZTogTW9kaWZpZXJJbnN0YW5jZTtcblxuICAgIGxldCBmYWN0b3J5T3JEZWZpbml0aW9uID0gZGVmaW5pdGlvbjtcblxuICAgIGlmIChwYXNzRmFjdG9yeVRvQ3JlYXRlKSB7XG4gICAgICAvLyBNYWtlIGEgZmFrZSBmYWN0b3J5LiBXaGlsZSBub3QgcGVyZmVjdCwgdGhpcyBzaG91bGQgZ2VuZXJhbGx5IHByZXZlbnRcbiAgICAgIC8vIGJyZWFrYWdlIGluIHVzZXJzIG9mIG9sZGVyIG1vZGlmaWVyIGNhcGFiaWxpdGllcy5cbiAgICAgIGZhY3RvcnlPckRlZmluaXRpb24gPSB7XG4gICAgICAgIGNyZWF0ZShhcmdzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikge1xuICAgICAgICAgIGxldCBwYXJhbXMgPSBhc3NpZ24oe30sIGFyZ3MpO1xuICAgICAgICAgIHNldE93bmVyKHBhcmFtcywgb3duZXIpO1xuXG4gICAgICAgICAgcmV0dXJuIChkZWZpbml0aW9uIGFzIEZhY3RvcnkpLmNyZWF0ZShhcmdzKTtcbiAgICAgICAgfSxcblxuICAgICAgICBjbGFzczogZGVmaW5pdGlvbixcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKERFQlVHICYmIGRlcHJlY2F0ZU11dGF0aW9uc0luVHJhY2tpbmdUcmFuc2FjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBkZXByZWNhdGVNdXRhdGlvbnNJblRyYWNraW5nVHJhbnNhY3Rpb24oKCkgPT4ge1xuICAgICAgICBpbnN0YW5jZSA9IGRlbGVnYXRlLmNyZWF0ZU1vZGlmaWVyKGZhY3RvcnlPckRlZmluaXRpb24sIGFyZ3MpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGluc3RhbmNlID0gZGVsZWdhdGUuY3JlYXRlTW9kaWZpZXIoZmFjdG9yeU9yRGVmaW5pdGlvbiwgYXJncyk7XG4gICAgfVxuXG4gICAgbGV0IHRhZyA9IGNyZWF0ZVVwZGF0YWJsZVRhZygpO1xuICAgIGxldCBzdGF0ZTogQ3VzdG9tTW9kaWZpZXJTdGF0ZTxNb2RpZmllckluc3RhbmNlPjtcblxuICAgIGlmICh1c2VBcmdzUHJveHkpIHtcbiAgICAgIHN0YXRlID0ge1xuICAgICAgICB0YWcsXG4gICAgICAgIGVsZW1lbnQsXG4gICAgICAgIGRlbGVnYXRlLFxuICAgICAgICBhcmdzLFxuICAgICAgICBtb2RpZmllcjogaW5zdGFuY2UhLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3RhdGUgPSB7XG4gICAgICAgIHRhZyxcbiAgICAgICAgZWxlbWVudCxcbiAgICAgICAgbW9kaWZpZXI6IGluc3RhbmNlISxcbiAgICAgICAgZGVsZWdhdGUsXG4gICAgICAgIGdldCBhcmdzKCkge1xuICAgICAgICAgIHJldHVybiByZWlmeUFyZ3MoY2FwdHVyZWRBcmdzKTtcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKERFQlVHKSB7XG4gICAgICBzdGF0ZS5kZWJ1Z05hbWUgPSB0eXBlb2YgZGVmaW5pdGlvbiA9PT0gJ2Z1bmN0aW9uJyA/IGRlZmluaXRpb24ubmFtZSA6IGRlZmluaXRpb24udG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICByZWdpc3RlckRlc3RydWN0b3Ioc3RhdGUsICgpID0+IGRlbGVnYXRlLmRlc3Ryb3lNb2RpZmllcihpbnN0YW5jZSwgc3RhdGUuYXJncykpO1xuXG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgZ2V0RGVidWdOYW1lKHsgZGVidWdOYW1lIH06IEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT4pIHtcbiAgICByZXR1cm4gZGVidWdOYW1lITtcbiAgfVxuXG4gIGdldFRhZyh7IHRhZyB9OiBDdXN0b21Nb2RpZmllclN0YXRlPE1vZGlmaWVySW5zdGFuY2U+KSB7XG4gICAgcmV0dXJuIHRhZztcbiAgfVxuXG4gIGluc3RhbGwoeyBlbGVtZW50LCBhcmdzLCBtb2RpZmllciwgZGVsZWdhdGUgfTogQ3VzdG9tTW9kaWZpZXJTdGF0ZTxNb2RpZmllckluc3RhbmNlPikge1xuICAgIGxldCB7IGNhcGFiaWxpdGllcyB9ID0gZGVsZWdhdGU7XG5cbiAgICBpZiAoY2FwYWJpbGl0aWVzLmRpc2FibGVBdXRvVHJhY2tpbmcgPT09IHRydWUpIHtcbiAgICAgIHVudHJhY2soKCkgPT4gZGVsZWdhdGUuaW5zdGFsbE1vZGlmaWVyKG1vZGlmaWVyLCBjYXN0VG9Ccm93c2VyKGVsZW1lbnQsICdFTEVNRU5UJyksIGFyZ3MpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVsZWdhdGUuaW5zdGFsbE1vZGlmaWVyKG1vZGlmaWVyLCBjYXN0VG9Ccm93c2VyKGVsZW1lbnQsICdFTEVNRU5UJyksIGFyZ3MpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZSh7IGFyZ3MsIG1vZGlmaWVyLCBkZWxlZ2F0ZSB9OiBDdXN0b21Nb2RpZmllclN0YXRlPE1vZGlmaWVySW5zdGFuY2U+KSB7XG4gICAgbGV0IHsgY2FwYWJpbGl0aWVzIH0gPSBkZWxlZ2F0ZTtcblxuICAgIGlmIChjYXBhYmlsaXRpZXMuZGlzYWJsZUF1dG9UcmFja2luZyA9PT0gdHJ1ZSkge1xuICAgICAgdW50cmFjaygoKSA9PiBkZWxlZ2F0ZS51cGRhdGVNb2RpZmllcihtb2RpZmllciwgYXJncykpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWxlZ2F0ZS51cGRhdGVNb2RpZmllcihtb2RpZmllciwgYXJncyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0RGVzdHJveWFibGUoc3RhdGU6IEN1c3RvbU1vZGlmaWVyU3RhdGU8TW9kaWZpZXJJbnN0YW5jZT4pIHtcbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlaWZ5QXJncyh7XG4gIG5hbWVkLFxuICBwb3NpdGlvbmFsLFxufTogQ2FwdHVyZWRBcmd1bWVudHMpOiB7IG5hbWVkOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjsgcG9zaXRpb25hbDogdW5rbm93bltdIH0ge1xuICBsZXQgcmVpZmllZE5hbWVkID0gZGljdCgpO1xuXG4gIGZvciAobGV0IGtleSBpbiBuYW1lZCkge1xuICAgIHJlaWZpZWROYW1lZFtrZXldID0gdmFsdWVGb3JSZWYobmFtZWRba2V5XSk7XG4gIH1cblxuICBsZXQgcmVpZmllZFBvc2l0aW9uYWwgPSBwb3NpdGlvbmFsLm1hcCh2YWx1ZUZvclJlZik7XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lZDogcmVpZmllZE5hbWVkLFxuICAgIHBvc2l0aW9uYWw6IHJlaWZpZWRQb3NpdGlvbmFsLFxuICB9O1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==

@@ -1,2 +0,2 @@

import { Arguments, CapturedArguments, InternalModifierManager, ModifierCapabilities, ModifierCapabilitiesVersions, ModifierManager, Owner, VMArguments } from '@glimmer/interfaces';
import { Arguments, CapturedArguments, InternalModifierManager, ModifierCapabilities, ModifierCapabilitiesVersions, ModifierManager, Owner } from '@glimmer/interfaces';
import { UpdatableTag } from '@glimmer/validator';

@@ -43,3 +43,3 @@ import { SimpleElement } from '@simple-dom/interface';

private getDelegateFor;
create(owner: O, element: SimpleElement, definition: object, vmArgs: VMArguments): CustomModifierState<ModifierInstance>;
create(owner: O, element: SimpleElement, definition: object, capturedArgs: CapturedArguments): CustomModifierState<ModifierInstance>;
getDebugName({ debugName }: CustomModifierState<ModifierInstance>): string;

@@ -46,0 +46,0 @@ getTag({ tag }: CustomModifierState<ModifierInstance>): UpdatableTag;

{
"name": "@glimmer/manager",
"version": "0.76.0",
"version": "0.77.0",
"repository": "https://github.com/glimmerjs/glimmer-vm/tree/master/packages/@glimmer/program",
"dependencies": {
"@glimmer/env": "0.1.7",
"@glimmer/interfaces": "0.76.0",
"@glimmer/destroyable": "0.76.0",
"@glimmer/reference": "0.76.0",
"@glimmer/validator": "0.76.0",
"@glimmer/util": "0.76.0"
"@glimmer/interfaces": "0.77.0",
"@glimmer/destroyable": "0.77.0",
"@glimmer/reference": "0.77.0",
"@glimmer/validator": "0.77.0",
"@glimmer/util": "0.77.0"
},

@@ -13,0 +13,0 @@ "main": "dist/commonjs/es2017/index.js",

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc