@glimmer/destroyable
Advanced tools
Comparing version 0.76.0 to 0.77.0
@@ -153,2 +153,6 @@ define('@glimmer/destroyable', ['exports', '@glimmer/env', '@glimmer/util', '@glimmer/global-context'], function (exports, env, util, globalContext) { 'use strict'; | ||
} | ||
function _hasDestroyableChildren(destroyable) { | ||
var meta = DESTROYABLE_META.get(destroyable); | ||
return meta === undefined ? false : meta.children !== null; | ||
} | ||
function isDestroying(destroyable) { | ||
@@ -207,2 +211,3 @@ var meta = DESTROYABLE_META.get(destroyable); | ||
exports._hasDestroyableChildren = _hasDestroyableChildren; | ||
exports.associateDestroyableChild = associateDestroyableChild; | ||
@@ -219,2 +224,2 @@ exports.destroy = destroy; | ||
}); | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xpbW1lci1kZXN0cm95YWJsZS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQGdsaW1tZXIvZGVzdHJveWFibGUvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuaW1wb3J0IHsgRGVzdHJveWFibGUsIERlc3RydWN0b3IgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGRlYnVnVG9TdHJpbmcgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7IHNjaGVkdWxlRGVzdHJveSwgc2NoZWR1bGVEZXN0cm95ZWQgfSBmcm9tICdAZ2xpbW1lci9nbG9iYWwtY29udGV4dCc7XG5cbmNvbnN0IGVudW0gRGVzdHJveWluZ1N0YXRlIHtcbiAgTGl2ZSA9IDAsXG4gIERlc3Ryb3lpbmcgPSAxLFxuICBEZXN0cm95ZWQgPSAyLFxufVxuXG50eXBlIE9uZU9yTWFueTxUPiA9IG51bGwgfCBUIHwgVFtdO1xuXG5pbnRlcmZhY2UgRGVzdHJveWFibGVNZXRhPFQgZXh0ZW5kcyBEZXN0cm95YWJsZT4ge1xuICBzb3VyY2U/OiBUO1xuICBwYXJlbnRzOiBPbmVPck1hbnk8RGVzdHJveWFibGU+O1xuICBjaGlsZHJlbjogT25lT3JNYW55PERlc3Ryb3lhYmxlPjtcbiAgZWFnZXJEZXN0cnVjdG9yczogT25lT3JNYW55PERlc3RydWN0b3I8VD4+O1xuICBkZXN0cnVjdG9yczogT25lT3JNYW55PERlc3RydWN0b3I8VD4+O1xuICBzdGF0ZTogRGVzdHJveWluZ1N0YXRlO1xufVxuXG5pbnRlcmZhY2UgVW5kZXN0cm95ZWREZXN0cm95YWJsZXNFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgZGVzdHJveWFibGVzOiBvYmplY3RbXTtcbn1cblxubGV0IERFU1RST1lBQkxFX01FVEE6XG4gIHwgTWFwPERlc3Ryb3lhYmxlLCBEZXN0cm95YWJsZU1ldGE8RGVzdHJveWFibGU+PlxuICB8IFdlYWtNYXA8RGVzdHJveWFibGUsIERlc3Ryb3lhYmxlTWV0YTxEZXN0cm95YWJsZT4+ID0gbmV3IFdlYWtNYXAoKTtcblxuZnVuY3Rpb24gcHVzaDxUIGV4dGVuZHMgb2JqZWN0Pihjb2xsZWN0aW9uOiBPbmVPck1hbnk8VD4sIG5ld0l0ZW06IFQpOiBPbmVPck1hbnk8VD4ge1xuICBpZiAoY29sbGVjdGlvbiA9PT0gbnVsbCkge1xuICAgIHJldHVybiBuZXdJdGVtO1xuICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoY29sbGVjdGlvbikpIHtcbiAgICBjb2xsZWN0aW9uLnB1c2gobmV3SXRlbSk7XG4gICAgcmV0dXJuIGNvbGxlY3Rpb247XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIFtjb2xsZWN0aW9uLCBuZXdJdGVtXTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpdGVyYXRlPFQgZXh0ZW5kcyBvYmplY3Q+KGNvbGxlY3Rpb246IE9uZU9yTWFueTxUPiwgZm46IChpdGVtOiBUKSA9PiB2b2lkKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGNvbGxlY3Rpb24pKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb2xsZWN0aW9uLmxlbmd0aDsgaSsrKSB7XG4gICAgICBmbihjb2xsZWN0aW9uW2ldKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoY29sbGVjdGlvbiAhPT0gbnVsbCkge1xuICAgIGZuKGNvbGxlY3Rpb24pO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlbW92ZTxUIGV4dGVuZHMgb2JqZWN0Pihjb2xsZWN0aW9uOiBPbmVPck1hbnk8VD4sIGl0ZW06IFQsIG1lc3NhZ2U6IHN0cmluZyB8IGZhbHNlKSB7XG4gIGlmIChERUJVRykge1xuICAgIGxldCBjb2xsZWN0aW9uSXNJdGVtID0gY29sbGVjdGlvbiA9PT0gaXRlbTtcbiAgICBsZXQgY29sbGVjdGlvbkNvbnRhaW5zSXRlbSA9IEFycmF5LmlzQXJyYXkoY29sbGVjdGlvbikgJiYgY29sbGVjdGlvbi5pbmRleE9mKGl0ZW0pICE9PSAtMTtcblxuICAgIGlmICghY29sbGVjdGlvbklzSXRlbSAmJiAhY29sbGVjdGlvbkNvbnRhaW5zSXRlbSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFN0cmluZyhtZXNzYWdlKSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkoY29sbGVjdGlvbikgJiYgY29sbGVjdGlvbi5sZW5ndGggPiAxKSB7XG4gICAgbGV0IGluZGV4ID0gY29sbGVjdGlvbiEuaW5kZXhPZihpdGVtKTtcbiAgICBjb2xsZWN0aW9uIS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHJldHVybiBjb2xsZWN0aW9uO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldERlc3Ryb3lhYmxlTWV0YTxUIGV4dGVuZHMgRGVzdHJveWFibGU+KGRlc3Ryb3lhYmxlOiBUKTogRGVzdHJveWFibGVNZXRhPFQ+IHtcbiAgbGV0IG1ldGEgPSBERVNUUk9ZQUJMRV9NRVRBLmdldChkZXN0cm95YWJsZSk7XG5cbiAgaWYgKG1ldGEgPT09IHVuZGVmaW5lZCkge1xuICAgIG1ldGEgPSB7XG4gICAgICBwYXJlbnRzOiBudWxsLFxuICAgICAgY2hpbGRyZW46IG51bGwsXG4gICAgICBlYWdlckRlc3RydWN0b3JzOiBudWxsLFxuICAgICAgZGVzdHJ1Y3RvcnM6IG51bGwsXG4gICAgICBzdGF0ZTogRGVzdHJveWluZ1N0YXRlLkxpdmUsXG4gICAgfTtcblxuICAgIGlmIChERUJVRykge1xuICAgICAgbWV0YS5zb3VyY2UgPSBkZXN0cm95YWJsZSBhcyBvYmplY3Q7XG4gICAgfVxuXG4gICAgREVTVFJPWUFCTEVfTUVUQS5zZXQoZGVzdHJveWFibGUsIG1ldGEpO1xuICB9XG5cbiAgcmV0dXJuIChtZXRhIGFzIHVua25vd24pIGFzIERlc3Ryb3lhYmxlTWV0YTxUPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc29jaWF0ZURlc3Ryb3lhYmxlQ2hpbGQ8VCBleHRlbmRzIERlc3Ryb3lhYmxlPihwYXJlbnQ6IERlc3Ryb3lhYmxlLCBjaGlsZDogVCk6IFQge1xuICBpZiAoREVCVUcgJiYgaXNEZXN0cm95aW5nKHBhcmVudCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQXR0ZW1wdGVkIHRvIGFzc29jaWF0ZSBhIGRlc3Ryb3lhYmxlIGNoaWxkIHdpdGggYW4gb2JqZWN0IHRoYXQgaXMgYWxyZWFkeSBkZXN0cm95aW5nIG9yIGRlc3Ryb3llZCdcbiAgICApO1xuICB9XG5cbiAgbGV0IHBhcmVudE1ldGEgPSBnZXREZXN0cm95YWJsZU1ldGEocGFyZW50KTtcbiAgbGV0IGNoaWxkTWV0YSA9IGdldERlc3Ryb3lhYmxlTWV0YShjaGlsZCk7XG5cbiAgcGFyZW50TWV0YS5jaGlsZHJlbiA9IHB1c2gocGFyZW50TWV0YS5jaGlsZHJlbiwgY2hpbGQpO1xuICBjaGlsZE1ldGEucGFyZW50cyA9IHB1c2goY2hpbGRNZXRhLnBhcmVudHMsIHBhcmVudCk7XG5cbiAgcmV0dXJuIGNoaWxkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJEZXN0cnVjdG9yPFQgZXh0ZW5kcyBEZXN0cm95YWJsZT4oXG4gIGRlc3Ryb3lhYmxlOiBULFxuICBkZXN0cnVjdG9yOiBEZXN0cnVjdG9yPFQ+LFxuICBlYWdlciA9IGZhbHNlXG4pOiBEZXN0cnVjdG9yPFQ+IHtcbiAgaWYgKERFQlVHICYmIGlzRGVzdHJveWluZyhkZXN0cm95YWJsZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQXR0ZW1wdGVkIHRvIHJlZ2lzdGVyIGEgZGVzdHJ1Y3RvciB3aXRoIGFuIG9iamVjdCB0aGF0IGlzIGFscmVhZHkgZGVzdHJveWluZyBvciBkZXN0cm95ZWQnXG4gICAgKTtcbiAgfVxuXG4gIGxldCBtZXRhID0gZ2V0RGVzdHJveWFibGVNZXRhKGRlc3Ryb3lhYmxlKTtcblxuICBsZXQgZGVzdHJ1Y3RvcnNLZXk6ICdlYWdlckRlc3RydWN0b3JzJyB8ICdkZXN0cnVjdG9ycycgPVxuICAgIGVhZ2VyID09PSB0cnVlID8gJ2VhZ2VyRGVzdHJ1Y3RvcnMnIDogJ2Rlc3RydWN0b3JzJztcblxuICBtZXRhW2Rlc3RydWN0b3JzS2V5XSA9IHB1c2gobWV0YVtkZXN0cnVjdG9yc0tleV0sIGRlc3RydWN0b3IpO1xuXG4gIHJldHVybiBkZXN0cnVjdG9yO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5yZWdpc3RlckRlc3RydWN0b3I8VCBleHRlbmRzIERlc3Ryb3lhYmxlPihcbiAgZGVzdHJveWFibGU6IFQsXG4gIGRlc3RydWN0b3I6IERlc3RydWN0b3I8VD4sXG4gIGVhZ2VyID0gZmFsc2Vcbik6IHZvaWQge1xuICBpZiAoREVCVUcgJiYgaXNEZXN0cm95aW5nKGRlc3Ryb3lhYmxlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdBdHRlbXB0ZWQgdG8gdW5yZWdpc3RlciBhIGRlc3RydWN0b3Igd2l0aCBhbiBvYmplY3QgdGhhdCBpcyBhbHJlYWR5IGRlc3Ryb3lpbmcgb3IgZGVzdHJveWVkJ1xuICAgICk7XG4gIH1cblxuICBsZXQgbWV0YSA9IGdldERlc3Ryb3lhYmxlTWV0YShkZXN0cm95YWJsZSk7XG5cbiAgbGV0IGRlc3RydWN0b3JzS2V5OiAnZWFnZXJEZXN0cnVjdG9ycycgfCAnZGVzdHJ1Y3RvcnMnID1cbiAgICBlYWdlciA9PT0gdHJ1ZSA/ICdlYWdlckRlc3RydWN0b3JzJyA6ICdkZXN0cnVjdG9ycyc7XG5cbiAgbWV0YVtkZXN0cnVjdG9yc0tleV0gPSByZW1vdmUoXG4gICAgbWV0YVtkZXN0cnVjdG9yc0tleV0sXG4gICAgZGVzdHJ1Y3RvcixcbiAgICBERUJVRyAmJiAnYXR0ZW1wdGVkIHRvIHJlbW92ZSBhIGRlc3RydWN0b3IgdGhhdCB3YXMgbm90IHJlZ2lzdGVyZWQgd2l0aCB0aGUgZGVzdHJveWFibGUnXG4gICk7XG59XG5cbi8vLy8vLy8vLy8vL1xuXG5leHBvcnQgZnVuY3Rpb24gZGVzdHJveShkZXN0cm95YWJsZTogRGVzdHJveWFibGUpIHtcbiAgbGV0IG1ldGEgPSBnZXREZXN0cm95YWJsZU1ldGEoZGVzdHJveWFibGUpO1xuXG4gIGlmIChtZXRhLnN0YXRlID49IERlc3Ryb3lpbmdTdGF0ZS5EZXN0cm95aW5nKSByZXR1cm47XG5cbiAgbGV0IHsgcGFyZW50cywgY2hpbGRyZW4sIGVhZ2VyRGVzdHJ1Y3RvcnMsIGRlc3RydWN0b3JzIH0gPSBtZXRhO1xuXG4gIG1ldGEuc3RhdGUgPSBEZXN0cm95aW5nU3RhdGUuRGVzdHJveWluZztcblxuICBpdGVyYXRlKGNoaWxkcmVuLCBkZXN0cm95KTtcbiAgaXRlcmF0ZShlYWdlckRlc3RydWN0b3JzLCAoZGVzdHJ1Y3RvcikgPT4gZGVzdHJ1Y3RvcihkZXN0cm95YWJsZSkpO1xuICBpdGVyYXRlKGRlc3RydWN0b3JzLCAoZGVzdHJ1Y3RvcikgPT4gc2NoZWR1bGVEZXN0cm95KGRlc3Ryb3lhYmxlLCBkZXN0cnVjdG9yKSk7XG5cbiAgc2NoZWR1bGVEZXN0cm95ZWQoKCkgPT4ge1xuICAgIGl0ZXJhdGUocGFyZW50cywgKHBhcmVudCkgPT4gcmVtb3ZlQ2hpbGRGcm9tUGFyZW50KGRlc3Ryb3lhYmxlLCBwYXJlbnQpKTtcblxuICAgIG1ldGEuc3RhdGUgPSBEZXN0cm95aW5nU3RhdGUuRGVzdHJveWVkO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlQ2hpbGRGcm9tUGFyZW50KGNoaWxkOiBEZXN0cm95YWJsZSwgcGFyZW50OiBEZXN0cm95YWJsZSkge1xuICBsZXQgcGFyZW50TWV0YSA9IGdldERlc3Ryb3lhYmxlTWV0YShwYXJlbnQpO1xuXG4gIGlmIChwYXJlbnRNZXRhLnN0YXRlID09PSBEZXN0cm95aW5nU3RhdGUuTGl2ZSkge1xuICAgIHBhcmVudE1ldGEuY2hpbGRyZW4gPSByZW1vdmUoXG4gICAgICBwYXJlbnRNZXRhLmNoaWxkcmVuLFxuICAgICAgY2hpbGQsXG4gICAgICBERUJVRyAmJlxuICAgICAgICBcImF0dGVtcHRlZCB0byByZW1vdmUgY2hpbGQgZnJvbSBwYXJlbnQsIGJ1dCB0aGUgcGFyZW50J3MgY2hpbGRyZW4gZGlkIG5vdCBjb250YWluIHRoZSBjaGlsZC4gVGhpcyBpcyBsaWtlbHkgYSBidWcgd2l0aCBkZXN0cnVjdG9ycy5cIlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlc3Ryb3lDaGlsZHJlbihkZXN0cm95YWJsZTogRGVzdHJveWFibGUpIHtcbiAgbGV0IHsgY2hpbGRyZW4gfSA9IGdldERlc3Ryb3lhYmxlTWV0YShkZXN0cm95YWJsZSk7XG5cbiAgaXRlcmF0ZShjaGlsZHJlbiwgZGVzdHJveSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Rlc3Ryb3lpbmcoZGVzdHJveWFibGU6IERlc3Ryb3lhYmxlKSB7XG4gIGxldCBtZXRhID0gREVTVFJPWUFCTEVfTUVUQS5nZXQoZGVzdHJveWFibGUpO1xuXG4gIHJldHVybiBtZXRhID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IG1ldGEuc3RhdGUgPj0gRGVzdHJveWluZ1N0YXRlLkRlc3Ryb3lpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Rlc3Ryb3llZChkZXN0cm95YWJsZTogRGVzdHJveWFibGUpIHtcbiAgbGV0IG1ldGEgPSBERVNUUk9ZQUJMRV9NRVRBLmdldChkZXN0cm95YWJsZSk7XG5cbiAgcmV0dXJuIG1ldGEgPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogbWV0YS5zdGF0ZSA+PSBEZXN0cm95aW5nU3RhdGUuRGVzdHJveWVkO1xufVxuXG4vLy8vLy8vLy8vLy9cblxuZXhwb3J0IGxldCBlbmFibGVEZXN0cm95YWJsZVRyYWNraW5nOiB1bmRlZmluZWQgfCAoKCkgPT4gdm9pZCk7XG5leHBvcnQgbGV0IGFzc2VydERlc3Ryb3lhYmxlc0Rlc3Ryb3llZDogdW5kZWZpbmVkIHwgKCgpID0+IHZvaWQpO1xuXG5pZiAoREVCVUcpIHtcbiAgbGV0IGlzVGVzdGluZyA9IGZhbHNlO1xuXG4gIGVuYWJsZURlc3Ryb3lhYmxlVHJhY2tpbmcgPSAoKSA9PiB7XG4gICAgaWYgKGlzVGVzdGluZykge1xuICAgICAgLy8gUmVzZXQgZGVzdHJveWFibGUgbWV0YSBqdXN0IGluIGNhc2UsIGJlZm9yZSB0aHJvd2luZyB0aGUgZXJyb3JcbiAgICAgIERFU1RST1lBQkxFX01FVEEgPSBuZXcgV2Vha01hcCgpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQXR0ZW1wdGVkIHRvIHN0YXJ0IGRlc3Ryb3lhYmxlIHRlc3RpbmcsIGJ1dCB5b3UgZGlkIG5vdCBlbmQgdGhlIHByZXZpb3VzIGRlc3Ryb3lhYmxlIHRlc3QuIERpZCB5b3UgZm9yZ2V0IHRvIGNhbGwgYGFzc2VydERlc3Ryb3lhYmxlc0Rlc3Ryb3llZCgpYCdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaXNUZXN0aW5nID0gdHJ1ZTtcbiAgICBERVNUUk9ZQUJMRV9NRVRBID0gbmV3IE1hcCgpO1xuICB9O1xuXG4gIGFzc2VydERlc3Ryb3lhYmxlc0Rlc3Ryb3llZCA9ICgpID0+IHtcbiAgICBpZiAoIWlzVGVzdGluZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQXR0ZW1wdGVkIHRvIGFzc2VydCBkZXN0cm95YWJsZXMgZGVzdHJveWVkLCBidXQgeW91IGRpZCBub3Qgc3RhcnQgYSBkZXN0cm95YWJsZSB0ZXN0LiBEaWQgeW91IGZvcmdldCB0byBjYWxsIGBlbmFibGVEZXN0cm95YWJsZVRyYWNraW5nKClgJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBpc1Rlc3RpbmcgPSBmYWxzZTtcblxuICAgIGxldCBtYXAgPSBERVNUUk9ZQUJMRV9NRVRBIGFzIE1hcDxEZXN0cm95YWJsZSwgRGVzdHJveWFibGVNZXRhPERlc3Ryb3lhYmxlPj47XG4gICAgREVTVFJPWUFCTEVfTUVUQSA9IG5ldyBXZWFrTWFwKCk7XG5cbiAgICBsZXQgdW5kZXN0cm95ZWQ6IG9iamVjdFtdID0gW107XG5cbiAgICBtYXAuZm9yRWFjaCgobWV0YSkgPT4ge1xuICAgICAgaWYgKG1ldGEuc3RhdGUgIT09IERlc3Ryb3lpbmdTdGF0ZS5EZXN0cm95ZWQpIHtcbiAgICAgICAgdW5kZXN0cm95ZWQucHVzaChtZXRhLnNvdXJjZSEpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHVuZGVzdHJveWVkLmxlbmd0aCA+IDApIHtcbiAgICAgIGxldCBvYmplY3RzVG9TdHJpbmcgPSB1bmRlc3Ryb3llZC5tYXAoZGVidWdUb1N0cmluZyEpLmpvaW4oJ1xcbiAgICAnKTtcbiAgICAgIGxldCBlcnJvciA9IG5ldyBFcnJvcihcbiAgICAgICAgYFNvbWUgZGVzdHJveWFibGVzIHdlcmUgbm90IGRlc3Ryb3llZCBkdXJpbmcgdGhpcyB0ZXN0OlxcbiAgICAke29iamVjdHNUb1N0cmluZ31gXG4gICAgICApIGFzIFVuZGVzdHJveWVkRGVzdHJveWFibGVzRXJyb3I7XG5cbiAgICAgIGVycm9yLmRlc3Ryb3lhYmxlcyA9IHVuZGVzdHJveWVkO1xuXG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH07XG59XG4iXSwibmFtZXMiOlsiREVCVUciLCJzY2hlZHVsZURlc3Ryb3kiLCJzY2hlZHVsZURlc3Ryb3llZCIsImVuYWJsZURlc3Ryb3lhYmxlVHJhY2tpbmciLCJhc3NlcnREZXN0cm95YWJsZXNEZXN0cm95ZWQiLCJkZWJ1Z1RvU3RyaW5nIl0sIm1hcHBpbmdzIjoiOztFQTBCQSxJQUFJLGdCQUFnQixHQUVxQyxJQUZ6RCxPQUV5RCxFQUZ6RDs7RUFJQSxTQUFBLElBQUEsQ0FBQSxVQUFBLEVBQUEsT0FBQSxFQUFvRTtFQUNsRSxNQUFJLFVBQVUsS0FBZCxJQUFBLEVBQXlCO0VBQ3ZCLFdBQUEsT0FBQTtFQURGLEdBQUEsTUFFTyxJQUFJLEtBQUssQ0FBTCxPQUFBLENBQUosVUFBSSxDQUFKLEVBQStCO0VBQ3BDLElBQUEsVUFBVSxDQUFWLElBQUEsQ0FBQSxPQUFBO0VBQ0EsV0FBQSxVQUFBO0VBRkssR0FBQSxNQUdBO0VBQ0wsV0FBTyxDQUFBLFVBQUEsRUFBUCxPQUFPLENBQVA7RUFDRDtFQUNGOztFQUVELFNBQUEsT0FBQSxDQUFB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 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xpbW1lci1kZXN0cm95YWJsZS5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQGdsaW1tZXIvZGVzdHJveWFibGUvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuaW1wb3J0IHsgRGVzdHJveWFibGUsIERlc3RydWN0b3IgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGRlYnVnVG9TdHJpbmcgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7IHNjaGVkdWxlRGVzdHJveSwgc2NoZWR1bGVEZXN0cm95ZWQgfSBmcm9tICdAZ2xpbW1lci9nbG9iYWwtY29udGV4dCc7XG5cbmNvbnN0IGVudW0gRGVzdHJveWluZ1N0YXRlIHtcbiAgTGl2ZSA9IDAsXG4gIERlc3Ryb3lpbmcgPSAxLFxuICBEZXN0cm95ZWQgPSAyLFxufVxuXG50eXBlIE9uZU9yTWFueTxUPiA9IG51bGwgfCBUIHwgVFtdO1xuXG5pbnRlcmZhY2UgRGVzdHJveWFibGVNZXRhPFQgZXh0ZW5kcyBEZXN0cm95YWJsZT4ge1xuICBzb3VyY2U/OiBUO1xuICBwYXJlbnRzOiBPbmVPck1hbnk8RGVzdHJveWFibGU+O1xuICBjaGlsZHJlbjogT25lT3JNYW55PERlc3Ryb3lhYmxlPjtcbiAgZWFnZXJEZXN0cnVjdG9yczogT25lT3JNYW55PERlc3RydWN0b3I8VD4+O1xuICBkZXN0cnVjdG9yczogT25lT3JNYW55PERlc3RydWN0b3I8VD4+O1xuICBzdGF0ZTogRGVzdHJveWluZ1N0YXRlO1xufVxuXG5pbnRlcmZhY2UgVW5kZXN0cm95ZWREZXN0cm95YWJsZXNFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgZGVzdHJveWFibGVzOiBvYmplY3RbXTtcbn1cblxubGV0IERFU1RST1lBQkxFX01FVEE6XG4gIHwgTWFwPERlc3Ryb3lhYmxlLCBEZXN0cm95YWJsZU1ldGE8RGVzdHJveWFibGU+PlxuICB8IFdlYWtNYXA8RGVzdHJveWFibGUsIERlc3Ryb3lhYmxlTWV0YTxEZXN0cm95YWJsZT4+ID0gbmV3IFdlYWtNYXAoKTtcblxuZnVuY3Rpb24gcHVzaDxUIGV4dGVuZHMgb2JqZWN0Pihjb2xsZWN0aW9uOiBPbmVPck1hbnk8VD4sIG5ld0l0ZW06IFQpOiBPbmVPck1hbnk8VD4ge1xuICBpZiAoY29sbGVjdGlvbiA9PT0gbnVsbCkge1xuICAgIHJldHVybiBuZXdJdGVtO1xuICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoY29sbGVjdGlvbikpIHtcbiAgICBjb2xsZWN0aW9uLnB1c2gobmV3SXRlbSk7XG4gICAgcmV0dXJuIGNvbGxlY3Rpb247XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIFtjb2xsZWN0aW9uLCBuZXdJdGVtXTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpdGVyYXRlPFQgZXh0ZW5kcyBvYmplY3Q+KGNvbGxlY3Rpb246IE9uZU9yTWFueTxUPiwgZm46IChpdGVtOiBUKSA9PiB2b2lkKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGNvbGxlY3Rpb24pKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb2xsZWN0aW9uLmxlbmd0aDsgaSsrKSB7XG4gICAgICBmbihjb2xsZWN0aW9uW2ldKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoY29sbGVjdGlvbiAhPT0gbnVsbCkge1xuICAgIGZuKGNvbGxlY3Rpb24pO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlbW92ZTxUIGV4dGVuZHMgb2JqZWN0Pihjb2xsZWN0aW9uOiBPbmVPck1hbnk8VD4sIGl0ZW06IFQsIG1lc3NhZ2U6IHN0cmluZyB8IGZhbHNlKSB7XG4gIGlmIChERUJVRykge1xuICAgIGxldCBjb2xsZWN0aW9uSXNJdGVtID0gY29sbGVjdGlvbiA9PT0gaXRlbTtcbiAgICBsZXQgY29sbGVjdGlvbkNvbnRhaW5zSXRlbSA9IEFycmF5LmlzQXJyYXkoY29sbGVjdGlvbikgJiYgY29sbGVjdGlvbi5pbmRleE9mKGl0ZW0pICE9PSAtMTtcblxuICAgIGlmICghY29sbGVjdGlvbklzSXRlbSAmJiAhY29sbGVjdGlvbkNvbnRhaW5zSXRlbSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFN0cmluZyhtZXNzYWdlKSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkoY29sbGVjdGlvbikgJiYgY29sbGVjdGlvbi5sZW5ndGggPiAxKSB7XG4gICAgbGV0IGluZGV4ID0gY29sbGVjdGlvbiEuaW5kZXhPZihpdGVtKTtcbiAgICBjb2xsZWN0aW9uIS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHJldHVybiBjb2xsZWN0aW9uO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldERlc3Ryb3lhYmxlTWV0YTxUIGV4dGVuZHMgRGVzdHJveWFibGU+KGRlc3Ryb3lhYmxlOiBUKTogRGVzdHJveWFibGVNZXRhPFQ+IHtcbiAgbGV0IG1ldGEgPSBERVNUUk9ZQUJMRV9NRVRBLmdldChkZXN0cm95YWJsZSk7XG5cbiAgaWYgKG1ldGEgPT09IHVuZGVmaW5lZCkge1xuICAgIG1ldGEgPSB7XG4gICAgICBwYXJlbnRzOiBudWxsLFxuICAgICAgY2hpbGRyZW46IG51bGwsXG4gICAgICBlYWdlckRlc3RydWN0b3JzOiBudWxsLFxuICAgICAgZGVzdHJ1Y3RvcnM6IG51bGwsXG4gICAgICBzdGF0ZTogRGVzdHJveWluZ1N0YXRlLkxpdmUsXG4gICAgfTtcblxuICAgIGlmIChERUJVRykge1xuICAgICAgbWV0YS5zb3VyY2UgPSBkZXN0cm95YWJsZSBhcyBvYmplY3Q7XG4gICAgfVxuXG4gICAgREVTVFJPWUFCTEVfTUVUQS5zZXQoZGVzdHJveWFibGUsIG1ldGEpO1xuICB9XG5cbiAgcmV0dXJuIChtZXRhIGFzIHVua25vd24pIGFzIERlc3Ryb3lhYmxlTWV0YTxUPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc29jaWF0ZURlc3Ryb3lhYmxlQ2hpbGQ8VCBleHRlbmRzIERlc3Ryb3lhYmxlPihwYXJlbnQ6IERlc3Ryb3lhYmxlLCBjaGlsZDogVCk6IFQge1xuICBpZiAoREVCVUcgJiYgaXNEZXN0cm95aW5nKHBhcmVudCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQXR0ZW1wdGVkIHRvIGFzc29jaWF0ZSBhIGRlc3Ryb3lhYmxlIGNoaWxkIHdpdGggYW4gb2JqZWN0IHRoYXQgaXMgYWxyZWFkeSBkZXN0cm95aW5nIG9yIGRlc3Ryb3llZCdcbiAgICApO1xuICB9XG5cbiAgbGV0IHBhcmVudE1ldGEgPSBnZXREZXN0cm95YWJsZU1ldGEocGFyZW50KTtcbiAgbGV0IGNoaWxkTWV0YSA9IGdldERlc3Ryb3lhYmxlTWV0YShjaGlsZCk7XG5cbiAgcGFyZW50TWV0YS5jaGlsZHJlbiA9IHB1c2gocGFyZW50TWV0YS5jaGlsZHJlbiwgY2hpbGQpO1xuICBjaGlsZE1ldGEucGFyZW50cyA9IHB1c2goY2hpbGRNZXRhLnBhcmVudHMsIHBhcmVudCk7XG5cbiAgcmV0dXJuIGNoaWxkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJEZXN0cnVjdG9yPFQgZXh0ZW5kcyBEZXN0cm95YWJsZT4oXG4gIGRlc3Ryb3lhYmxlOiBULFxuICBkZXN0cnVjdG9yOiBEZXN0cnVjdG9yPFQ+LFxuICBlYWdlciA9IGZhbHNlXG4pOiBEZXN0cnVjdG9yPFQ+IHtcbiAgaWYgKERFQlVHICYmIGlzRGVzdHJveWluZyhkZXN0cm95YWJsZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQXR0ZW1wdGVkIHRvIHJlZ2lzdGVyIGEgZGVzdHJ1Y3RvciB3aXRoIGFuIG9iamVjdCB0aGF0IGlzIGFscmVhZHkgZGVzdHJveWluZyBvciBkZXN0cm95ZWQnXG4gICAgKTtcbiAgfVxuXG4gIGxldCBtZXRhID0gZ2V0RGVzdHJveWFibGVNZXRhKGRlc3Ryb3lhYmxlKTtcblxuICBsZXQgZGVzdHJ1Y3RvcnNLZXk6ICdlYWdlckRlc3RydWN0b3JzJyB8ICdkZXN0cnVjdG9ycycgPVxuICAgIGVhZ2VyID09PSB0cnVlID8gJ2VhZ2VyRGVzdHJ1Y3RvcnMnIDogJ2Rlc3RydWN0b3JzJztcblxuICBtZXRhW2Rlc3RydWN0b3JzS2V5XSA9IHB1c2gobWV0YVtkZXN0cnVjdG9yc0tleV0sIGRlc3RydWN0b3IpO1xuXG4gIHJldHVybiBkZXN0cnVjdG9yO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5yZWdpc3RlckRlc3RydWN0b3I8VCBleHRlbmRzIERlc3Ryb3lhYmxlPihcbiAgZGVzdHJveWFibGU6IFQsXG4gIGRlc3RydWN0b3I6IERlc3RydWN0b3I8VD4sXG4gIGVhZ2VyID0gZmFsc2Vcbik6IHZvaWQge1xuICBpZiAoREVCVUcgJiYgaXNEZXN0cm95aW5nKGRlc3Ryb3lhYmxlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdBdHRlbXB0ZWQgdG8gdW5yZWdpc3RlciBhIGRlc3RydWN0b3Igd2l0aCBhbiBvYmplY3QgdGhhdCBpcyBhbHJlYWR5IGRlc3Ryb3lpbmcgb3IgZGVzdHJveWVkJ1xuICAgICk7XG4gIH1cblxuICBsZXQgbWV0YSA9IGdldERlc3Ryb3lhYmxlTWV0YShkZXN0cm95YWJsZSk7XG5cbiAgbGV0IGRlc3RydWN0b3JzS2V5OiAnZWFnZXJEZXN0cnVjdG9ycycgfCAnZGVzdHJ1Y3RvcnMnID1cbiAgICBlYWdlciA9PT0gdHJ1ZSA/ICdlYWdlckRlc3RydWN0b3JzJyA6ICdkZXN0cnVjdG9ycyc7XG5cbiAgbWV0YVtkZXN0cnVjdG9yc0tleV0gPSByZW1vdmUoXG4gICAgbWV0YVtkZXN0cnVjdG9yc0tleV0sXG4gICAgZGVzdHJ1Y3RvcixcbiAgICBERUJVRyAmJiAnYXR0ZW1wdGVkIHRvIHJlbW92ZSBhIGRlc3RydWN0b3IgdGhhdCB3YXMgbm90IHJlZ2lzdGVyZWQgd2l0aCB0aGUgZGVzdHJveWFibGUnXG4gICk7XG59XG5cbi8vLy8vLy8vLy8vL1xuXG5leHBvcnQgZnVuY3Rpb24gZGVzdHJveShkZXN0cm95YWJsZTogRGVzdHJveWFibGUpIHtcbiAgbGV0IG1ldGEgPSBnZXREZXN0cm95YWJsZU1ldGEoZGVzdHJveWFibGUpO1xuXG4gIGlmIChtZXRhLnN0YXRlID49IERlc3Ryb3lpbmdTdGF0ZS5EZXN0cm95aW5nKSByZXR1cm47XG5cbiAgbGV0IHsgcGFyZW50cywgY2hpbGRyZW4sIGVhZ2VyRGVzdHJ1Y3RvcnMsIGRlc3RydWN0b3JzIH0gPSBtZXRhO1xuXG4gIG1ldGEuc3RhdGUgPSBEZXN0cm95aW5nU3RhdGUuRGVzdHJveWluZztcblxuICBpdGVyYXRlKGNoaWxkcmVuLCBkZXN0cm95KTtcbiAgaXRlcmF0ZShlYWdlckRlc3RydWN0b3JzLCAoZGVzdHJ1Y3RvcikgPT4gZGVzdHJ1Y3RvcihkZXN0cm95YWJsZSkpO1xuICBpdGVyYXRlKGRlc3RydWN0b3JzLCAoZGVzdHJ1Y3RvcikgPT4gc2NoZWR1bGVEZXN0cm95KGRlc3Ryb3lhYmxlLCBkZXN0cnVjdG9yKSk7XG5cbiAgc2NoZWR1bGVEZXN0cm95ZWQoKCkgPT4ge1xuICAgIGl0ZXJhdGUocGFyZW50cywgKHBhcmVudCkgPT4gcmVtb3ZlQ2hpbGRGcm9tUGFyZW50KGRlc3Ryb3lhYmxlLCBwYXJlbnQpKTtcblxuICAgIG1ldGEuc3RhdGUgPSBEZXN0cm95aW5nU3RhdGUuRGVzdHJveWVkO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlQ2hpbGRGcm9tUGFyZW50KGNoaWxkOiBEZXN0cm95YWJsZSwgcGFyZW50OiBEZXN0cm95YWJsZSkge1xuICBsZXQgcGFyZW50TWV0YSA9IGdldERlc3Ryb3lhYmxlTWV0YShwYXJlbnQpO1xuXG4gIGlmIChwYXJlbnRNZXRhLnN0YXRlID09PSBEZXN0cm95aW5nU3RhdGUuTGl2ZSkge1xuICAgIHBhcmVudE1ldGEuY2hpbGRyZW4gPSByZW1vdmUoXG4gICAgICBwYXJlbnRNZXRhLmNoaWxkcmVuLFxuICAgICAgY2hpbGQsXG4gICAgICBERUJVRyAmJlxuICAgICAgICBcImF0dGVtcHRlZCB0byByZW1vdmUgY2hpbGQgZnJvbSBwYXJlbnQsIGJ1dCB0aGUgcGFyZW50J3MgY2hpbGRyZW4gZGlkIG5vdCBjb250YWluIHRoZSBjaGlsZC4gVGhpcyBpcyBsaWtlbHkgYSBidWcgd2l0aCBkZXN0cnVjdG9ycy5cIlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlc3Ryb3lDaGlsZHJlbihkZXN0cm95YWJsZTogRGVzdHJveWFibGUpIHtcbiAgbGV0IHsgY2hpbGRyZW4gfSA9IGdldERlc3Ryb3lhYmxlTWV0YShkZXN0cm95YWJsZSk7XG5cbiAgaXRlcmF0ZShjaGlsZHJlbiwgZGVzdHJveSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfaGFzRGVzdHJveWFibGVDaGlsZHJlbihkZXN0cm95YWJsZTogRGVzdHJveWFibGUpIHtcbiAgbGV0IG1ldGEgPSBERVNUUk9ZQUJMRV9NRVRBLmdldChkZXN0cm95YWJsZSk7XG5cbiAgcmV0dXJuIG1ldGEgPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogbWV0YS5jaGlsZHJlbiAhPT0gbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGVzdHJveWluZyhkZXN0cm95YWJsZTogRGVzdHJveWFibGUpIHtcbiAgbGV0IG1ldGEgPSBERVNUUk9ZQUJMRV9NRVRBLmdldChkZXN0cm95YWJsZSk7XG5cbiAgcmV0dXJuIG1ldGEgPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogbWV0YS5zdGF0ZSA+PSBEZXN0cm95aW5nU3RhdGUuRGVzdHJveWluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGVzdHJveWVkKGRlc3Ryb3lhYmxlOiBEZXN0cm95YWJsZSkge1xuICBsZXQgbWV0YSA9IERFU1RST1lBQkxFX01FVEEuZ2V0KGRlc3Ryb3lhYmxlKTtcblxuICByZXR1cm4gbWV0YSA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiBtZXRhLnN0YXRlID49IERlc3Ryb3lpbmdTdGF0ZS5EZXN0cm95ZWQ7XG59XG5cbi8vLy8vLy8vLy8vL1xuXG5leHBvcnQgbGV0IGVuYWJsZURlc3Ryb3lhYmxlVHJhY2tpbmc6IHVuZGVmaW5lZCB8ICgoKSA9PiB2b2lkKTtcbmV4cG9ydCBsZXQgYXNzZXJ0RGVzdHJveWFibGVzRGVzdHJveWVkOiB1bmRlZmluZWQgfCAoKCkgPT4gdm9pZCk7XG5cbmlmIChERUJVRykge1xuICBsZXQgaXNUZXN0aW5nID0gZmFsc2U7XG5cbiAgZW5hYmxlRGVzdHJveWFibGVUcmFja2luZyA9ICgpID0+IHtcbiAgICBpZiAoaXNUZXN0aW5nKSB7XG4gICAgICAvLyBSZXNldCBkZXN0cm95YWJsZSBtZXRhIGp1c3QgaW4gY2FzZSwgYmVmb3JlIHRocm93aW5nIHRoZSBlcnJvclxuICAgICAgREVTVFJPWUFCTEVfTUVUQSA9IG5ldyBXZWFrTWFwKCk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdBdHRlbXB0ZWQgdG8gc3RhcnQgZGVzdHJveWFibGUgdGVzdGluZywgYnV0IHlvdSBkaWQgbm90IGVuZCB0aGUgcHJldmlvdXMgZGVzdHJveWFibGUgdGVzdC4gRGlkIHlvdSBmb3JnZXQgdG8gY2FsbCBgYXNzZXJ0RGVzdHJveWFibGVzRGVzdHJveWVkKClgJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBpc1Rlc3RpbmcgPSB0cnVlO1xuICAgIERFU1RST1lBQkxFX01FVEEgPSBuZXcgTWFwKCk7XG4gIH07XG5cbiAgYXNzZXJ0RGVzdHJveWFibGVzRGVzdHJveWVkID0gKCkgPT4ge1xuICAgIGlmICghaXNUZXN0aW5nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdBdHRlbXB0ZWQgdG8gYXNzZXJ0IGRlc3Ryb3lhYmxlcyBkZXN0cm95ZWQsIGJ1dCB5b3UgZGlkIG5vdCBzdGFydCBhIGRlc3Ryb3lhYmxlIHRlc3QuIERpZCB5b3UgZm9yZ2V0IHRvIGNhbGwgYGVuYWJsZURlc3Ryb3lhYmxlVHJhY2tpbmcoKWAnXG4gICAgICApO1xuICAgIH1cblxuICAgIGlzVGVzdGluZyA9IGZhbHNlO1xuXG4gICAgbGV0IG1hcCA9IERFU1RST1lBQkxFX01FVEEgYXMgTWFwPERlc3Ryb3lhYmxlLCBEZXN0cm95YWJsZU1ldGE8RGVzdHJveWFibGU+PjtcbiAgICBERVNUUk9ZQUJMRV9NRVRBID0gbmV3IFdlYWtNYXAoKTtcblxuICAgIGxldCB1bmRlc3Ryb3llZDogb2JqZWN0W10gPSBbXTtcblxuICAgIG1hcC5mb3JFYWNoKChtZXRhKSA9PiB7XG4gICAgICBpZiAobWV0YS5zdGF0ZSAhPT0gRGVzdHJveWluZ1N0YXRlLkRlc3Ryb3llZCkge1xuICAgICAgICB1bmRlc3Ryb3llZC5wdXNoKG1ldGEuc291cmNlISk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAodW5kZXN0cm95ZWQubGVuZ3RoID4gMCkge1xuICAgICAgbGV0IG9iamVjdHNUb1N0cmluZyA9IHVuZGVzdHJveWVkLm1hcChkZWJ1Z1RvU3RyaW5nISkuam9pbignXFxuICAgICcpO1xuICAgICAgbGV0IGVycm9yID0gbmV3IEVycm9yKFxuICAgICAgICBgU29tZSBkZXN0cm95YWJsZXMgd2VyZSBub3QgZGVzdHJveWVkIGR1cmluZyB0aGlzIHRlc3Q6XFxuICAgICR7b2JqZWN0c1RvU3RyaW5nfWBcbiAgICAgICkgYXMgVW5kZXN0cm95ZWREZXN0cm95YWJsZXNFcnJvcjtcblxuICAgICAgZXJyb3IuZGVzdHJveWFibGVzID0gdW5kZXN0cm95ZWQ7XG5cbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfTtcbn1cbiJdLCJuYW1lcyI6WyJERUJVRyIsInNjaGVkdWxlRGVzdHJveSIsInNjaGVkdWxlRGVzdHJveWVkIiwiZW5hYmxlRGVzdHJveWFibGVUcmFja2luZyIsImFzc2VydERlc3Ryb3lhYmxlc0Rlc3Ryb3llZCIsImRlYnVnVG9TdHJpbmciXSwibWFwcGluZ3MiOiI7O0VBMEJBLElBQUksZ0JBQWdCLEdBRXFDLElBRnpELE9BRXlELEVBRnpEOztFQUlBLFNBQUEsSUFBQSxDQUFBLFVBQUEsRUFBQSxPQUFBLEVBQW9FO0VBQ2xFLE1BQUksVUFBVSxLQUFkLElBQUEsRUFBeUI7RUFDdkIsV0FBQSxPQUFB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 |
@@ -11,2 +11,3 @@ "use strict"; | ||
exports.destroyChildren = destroyChildren; | ||
exports._hasDestroyableChildren = _hasDestroyableChildren; | ||
exports.isDestroying = isDestroying; | ||
@@ -164,2 +165,7 @@ exports.isDestroyed = isDestroyed; | ||
function _hasDestroyableChildren(destroyable) { | ||
let meta = DESTROYABLE_META.get(destroyable); | ||
return meta === undefined ? false : meta.children !== null; | ||
} | ||
function isDestroying(destroyable) { | ||
@@ -224,2 +230,2 @@ let meta = DESTROYABLE_META.get(destroyable); | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL2Rlc3Ryb3lhYmxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUE7O0FBQ0E7O0FBdUJBLElBQUksZ0JBQWdCLEdBRXFDLElBRnpELE9BRXlELEVBRnpEOztBQUlBLFNBQUEsSUFBQSxDQUFBLFVBQUEsRUFBQSxPQUFBLEVBQW9FO0FBQ2xFLE1BQUksVUFBVSxLQUFkLElBQUEsRUFBeUI7QUFDdkIsV0FBQSxPQUFBO0FBREYsR0FBQSxNQUVPLElBQUksS0FBSyxDQUFMLE9BQUEsQ0FBSixVQUFJLENBQUosRUFBK0I7QUFDcEMsSUFBQSxVQUFVLENBQVYsSUFBQSxDQUFBLE9BQUE7QUFDQSxXQUFBLFVBQUE7QUFGSyxHQUFBLE1BR0E7QUFDTCxXQUFPLENBQUEsVUFBQSxFQUFQLE9BQU8sQ0FBUDtBQUNEO0FBQ0Y7O0FBRUQsU0FBQSxPQUFBLENBQUEsVUFBQSxFQUFBLEVBQUEsRUFBa0Y7QUFDaEYsTUFBSSxLQUFLLENBQUwsT0FBQSxDQUFKLFVBQUksQ0FBSixFQUErQjtBQUM3QixTQUFLLElBQUksQ0FBQyxHQUFWLENBQUEsRUFBZ0IsQ0FBQyxHQUFHLFVBQVUsQ0FBOUIsTUFBQSxFQUF1QyxDQUF2QyxFQUFBLEVBQTRDO0FBQzFDLE1BQUEsRUFBRSxDQUFDLFVBQVUsQ0FBYixDQUFhLENBQVgsQ0FBRjtBQUNEO0FBSEgsR0FBQSxNQUlPLElBQUksVUFBVSxLQUFkLElBQUEsRUFBeUI7QUFDOUIsSUFBQSxFQUFFLENBQUYsVUFBRSxDQUFGO0FBQ0Q7QUFDRjs7QUFFRCxTQUFBLE1BQUEsQ0FBQSxVQUFBLEVBQUEsSUFBQSxFQUFBLE9BQUEsRUFBNEY7QUFDMUYsTUFBQSxVQUFBLEVBQVc7QUFDVCxRQUFJLGdCQUFnQixHQUFHLFVBQVUsS0FBakMsSUFBQTtBQUNBLFFBQUksc0JBQXNCLEdBQUcsS0FBSyxDQUFMLE9BQUEsQ0FBQSxVQUFBLEtBQTZC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O0FBRUEsUUFBSSxHQUFHLEdBQVAsZ0JBQUE7QUFDQSxJQUFBLGdCQUFnQixHQUFHLElBQW5CLE9BQW1CLEVBQW5CO0FBRUEsUUFBSSxXQUFXLEdBQWYsRUFBQTtBQUVBLElBQUEsR0FBRyxDQUFILE9BQUEsQ0FBYSxJQUFELElBQVM7QUFDbkIsVUFBSSxJQUFJLENBQUosS0FBQSxLQUFVO0FBQUE7QUFBZCxRQUE4QztBQUM1QyxVQUFBLFdBQVcsQ0FBWCxJQUFBLENBQWlCLElBQUksQ0FBckIsTUFBQTtBQUNEO0FBSEgsS0FBQTs7QUFNQSxRQUFJLFdBQVcsQ0FBWCxNQUFBLEdBQUosQ0FBQSxFQUE0QjtBQUMxQixVQUFJLGVBQWUsR0FBRyxXQUFXLENBQVgsR0FBQSxDQUFBLG1CQUFBLEVBQUEsSUFBQSxDQUF0QixRQUFzQixDQUF0QjtBQUNBLFVBQUksS0FBSyxHQUFHLElBQUEsS0FBQSxDQUNWLCtEQUErRCxlQURqRSxFQUFZLENBQVo7QUFJQSxNQUFBLEtBQUssQ0FBTCxZQUFBLEdBQUEsV0FBQTtBQUVBLFlBQUEsS0FBQTtBQUNEO0FBN0JILEdBQUE7QUErQkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5pbXBvcnQgeyBEZXN0cm95YWJsZSwgRGVzdHJ1Y3RvciB9IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZGVidWdUb1N0cmluZyB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuaW1wb3J0IHsgc2NoZWR1bGVEZXN0cm95LCBzY2hlZHVsZURlc3Ryb3llZCB9IGZyb20gJ0BnbGltbWVyL2dsb2JhbC1jb250ZXh0JztcblxuY29uc3QgZW51bSBEZXN0cm95aW5nU3RhdGUge1xuICBMaXZlID0gMCxcbiAgRGVzdHJveWluZyA9IDEsXG4gIERlc3Ryb3llZCA9IDIsXG59XG5cbnR5cGUgT25lT3JNYW55PFQ+ID0gbnVsbCB8IFQgfCBUW107XG5cbmludGVyZmFjZSBEZXN0cm95YWJsZU1ldGE8VCBleHRlbmRzIERlc3Ryb3lhYmxlPiB7XG4gIHNvdXJjZT86IFQ7XG4gIHBhcmVudHM6IE9uZU9yTWFueTxEZXN0cm95YWJsZT47XG4gIGNoaWxkcmVuOiBPbmVPck1hbnk8RGVzdHJveWFibGU+O1xuICBlYWdlckRlc3RydWN0b3JzOiBPbmVPck1hbnk8RGVzdHJ1Y3RvcjxUPj47XG4gIGRlc3RydWN0b3JzOiBPbmVPck1hbnk8RGVzdHJ1Y3RvcjxUPj47XG4gIHN0YXRlOiBEZXN0cm95aW5nU3RhdGU7XG59XG5cbmludGVyZmFjZSBVbmRlc3Ryb3llZERlc3Ryb3lhYmxlc0Vycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBkZXN0cm95YWJsZXM6IG9iamVjdFtdO1xufVxuXG5sZXQgREVTVFJPWUFCTEVfTUVUQTpcbiAgfCBNYXA8RGVzdHJveWFibGUsIERlc3Ryb3lhYmxlTWV0YTxEZXN0cm95YWJsZT4+XG4gIHwgV2Vha01hcDxEZXN0cm95YWJsZSwgRGVzdHJveWFibGVNZXRhPERlc3Ryb3lhYmxlPj4gPSBuZXcgV2Vha01hcCgpO1xuXG5mdW5jdGlvbiBwdXNoPFQgZXh0ZW5kcyBvYmplY3Q+KGNvbGxlY3Rpb246IE9uZU9yTWFueTxUPiwgbmV3SXRlbTogVCk6IE9uZU9yTWFueTxUPiB7XG4gIGlmIChjb2xsZWN0aW9uID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG5ld0l0ZW07XG4gIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShjb2xsZWN0aW9uKSkge1xuICAgIGNvbGxlY3Rpb24ucHVzaChuZXdJdGVtKTtcbiAgICByZXR1cm4gY29sbGVjdGlvbjtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gW2NvbGxlY3Rpb24sIG5ld0l0ZW1dO1xuICB9XG59XG5cbmZ1bmN0aW9uIGl0ZXJhdGU8VCBleHRlbmRzIG9iamVjdD4oY29sbGVjdGlvbjogT25lT3JNYW55PFQ+LCBmbjogKGl0ZW06IFQpID0+IHZvaWQpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoY29sbGVjdGlvbikpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbGxlY3Rpb24ubGVuZ3RoOyBpKyspIHtcbiAgICAgIGZuKGNvbGxlY3Rpb25baV0pO1xuICAgIH1cbiAgfSBlbHNlIGlmIChjb2xsZWN0aW9uICE9PSBudWxsKSB7XG4gICAgZm4oY29sbGVjdGlvbik7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVtb3ZlPFQgZXh0ZW5kcyBvYmplY3Q+KGNvbGxlY3Rpb246IE9uZU9yTWFueTxUPiwgaXRlbTogVCwgbWVzc2FnZTogc3RyaW5nIHwgZmFsc2UpIHtcbiAgaWYgKERFQlVHKSB7XG4gICAgbGV0IGNvbGxlY3Rpb25Jc0l0ZW0gPSBjb2xsZWN0aW9uID09PSBpdGVtO1xuICAgIGxldCBjb2xsZWN0aW9uQ29udGFpbnNJdGVtID0gQXJyYXkuaXNBcnJheShjb2xsZWN0aW9uKSAmJiBjb2xsZWN0aW9uLmluZGV4T2YoaXRlbSkgIT09IC0xO1xuXG4gICAgaWYgKCFjb2xsZWN0aW9uSXNJdGVtICYmICFjb2xsZWN0aW9uQ29udGFpbnNJdGVtKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoU3RyaW5nKG1lc3NhZ2UpKTtcbiAgICB9XG4gIH1cblxuICBpZiAoQXJyYXkuaXNBcnJheShjb2xsZWN0aW9uKSAmJiBjb2xsZWN0aW9uLmxlbmd0aCA+IDEpIHtcbiAgICBsZXQgaW5kZXggPSBjb2xsZWN0aW9uIS5pbmRleE9mKGl0ZW0pO1xuICAgIGNvbGxlY3Rpb24hLnNwbGljZShpbmRleCwgMSk7XG4gICAgcmV0dXJuIGNvbGxlY3Rpb247XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0RGVzdHJveWFibGVNZXRhPFQgZXh0ZW5kcyBEZXN0cm95YWJsZT4oZGVzdHJveWFibGU6IFQpOiBEZXN0cm95YWJsZU1ldGE8VD4ge1xuICBsZXQgbWV0YSA9IERFU1RST1lBQkxFX01FVEEuZ2V0KGRlc3Ryb3lhYmxlKTtcblxuICBpZiAobWV0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgbWV0YSA9IHtcbiAgICAgIHBhcmVudHM6IG51bGwsXG4gICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICAgIGVhZ2VyRGVzdHJ1Y3RvcnM6IG51bGwsXG4gICAgICBkZXN0cnVjdG9yczogbnVsbCxcbiAgICAgIHN0YXRlOiBEZXN0cm95aW5nU3RhdGUuTGl2ZSxcbiAgICB9O1xuXG4gICAgaWYgKERFQlVHKSB7XG4gICAgICBtZXRhLnNvdXJjZSA9IGRlc3Ryb3lhYmxlIGFzIG9iamVjdDtcbiAgICB9XG5cbiAgICBERVNUUk9ZQUJMRV9NRVRBLnNldChkZXN0cm95YWJsZSwgbWV0YSk7XG4gIH1cblxuICByZXR1cm4gKG1ldGEgYXMgdW5rbm93bikgYXMgRGVzdHJveWFibGVNZXRhPFQ+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzb2NpYXRlRGVzdHJveWFibGVDaGlsZDxUIGV4dGVuZHMgRGVzdHJveWFibGU+KHBhcmVudDogRGVzdHJveWFibGUsIGNoaWxkOiBUKTogVCB7XG4gIGlmIChERUJVRyAmJiBpc0Rlc3Ryb3lpbmcocGFyZW50KSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdBdHRlbXB0ZWQgdG8gYXNzb2NpYXRlIGEgZGVzdHJveWFibGUgY2hpbGQgd2l0aCBhbiBvYmplY3QgdGhhdCBpcyBhbHJlYWR5IGRlc3Ryb3lpbmcgb3IgZGVzdHJveWVkJ1xuICAgICk7XG4gIH1cblxuICBsZXQgcGFyZW50TWV0YSA9IGdldERlc3Ryb3lhYmxlTWV0YShwYXJlbnQpO1xuICBsZXQgY2hpbGRNZXRhID0gZ2V0RGVzdHJveWFibGVNZXRhKGNoaWxkKTtcblxuICBwYXJlbnRNZXRhLmNoaWxkcmVuID0gcHVzaChwYXJlbnRNZXRhLmNoaWxkcmVuLCBjaGlsZCk7XG4gIGNoaWxkTWV0YS5wYXJlbnRzID0gcHVzaChjaGlsZE1ldGEucGFyZW50cywgcGFyZW50KTtcblxuICByZXR1cm4gY2hpbGQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckRlc3RydWN0b3I8VCBleHRlbmRzIERlc3Ryb3lhYmxlPihcbiAgZGVzdHJveWFibGU6IFQsXG4gIGRlc3RydWN0b3I6IERlc3RydWN0b3I8VD4sXG4gIGVhZ2VyID0gZmFsc2Vcbik6IERlc3RydWN0b3I8VD4ge1xuICBpZiAoREVCVUcgJiYgaXNEZXN0cm95aW5nKGRlc3Ryb3lhYmxlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdBdHRlbXB0ZWQgdG8gcmVnaXN0ZXIgYSBkZXN0cnVjdG9yIHdpdGggYW4gb2JqZWN0IHRoYXQgaXMgYWxyZWFkeSBkZXN0cm95aW5nIG9yIGRlc3Ryb3llZCdcbiAgICApO1xuICB9XG5cbiAgbGV0IG1ldGEgPSBnZXREZXN0cm95YWJsZU1ldGEoZGVzdHJveWFibGUpO1xuXG4gIGxldCBkZXN0cnVjdG9yc0tleTogJ2VhZ2VyRGVzdHJ1Y3RvcnMnIHwgJ2Rlc3RydWN0b3JzJyA9XG4gICAgZWFnZXIgPT09IHRydWUgPyAnZWFnZXJEZXN0cnVjdG9ycycgOiAnZGVzdHJ1Y3RvcnMnO1xuXG4gIG1ldGFbZGVzdHJ1Y3RvcnNLZXldID0gcHVzaChtZXRhW2Rlc3RydWN0b3JzS2V5XSwgZGVzdHJ1Y3Rvcik7XG5cbiAgcmV0dXJuIGRlc3RydWN0b3I7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bnJlZ2lzdGVyRGVzdHJ1Y3RvcjxUIGV4dGVuZHMgRGVzdHJveWFibGU+KFxuICBkZXN0cm95YWJsZTogVCxcbiAgZGVzdHJ1Y3RvcjogRGVzdHJ1Y3RvcjxUPixcbiAgZWFnZXIgPSBmYWxzZVxuKTogdm9pZCB7XG4gIGlmIChERUJVRyAmJiBpc0Rlc3Ryb3lpbmcoZGVzdHJveWFibGUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0F0dGVtcHRlZCB0byB1bnJlZ2lzdGVyIGEgZGVzdHJ1Y3RvciB3aXRoIGFuIG9iamVjdCB0aGF0IGlzIGFscmVhZHkgZGVzdHJveWluZyBvciBkZXN0cm95ZWQnXG4gICAgKTtcbiAgfVxuXG4gIGxldCBtZXRhID0gZ2V0RGVzdHJveWFibGVNZXRhKGRlc3Ryb3lhYmxlKTtcblxuICBsZXQgZGVzdHJ1Y3RvcnNLZXk6ICdlYWdlckRlc3RydWN0b3JzJyB8ICdkZXN0cnVjdG9ycycgPVxuICAgIGVhZ2VyID09PSB0cnVlID8gJ2VhZ2VyRGVzdHJ1Y3RvcnMnIDogJ2Rlc3RydWN0b3JzJztcblxuICBtZXRhW2Rlc3RydWN0b3JzS2V5XSA9IHJlbW92ZShcbiAgICBtZXRhW2Rlc3RydWN0b3JzS2V5XSxcbiAgICBkZXN0cnVjdG9yLFxuICAgIERFQlVHICYmICdhdHRlbXB0ZWQgdG8gcmVtb3ZlIGEgZGVzdHJ1Y3RvciB0aGF0IHdhcyBub3QgcmVnaXN0ZXJlZCB3aXRoIHRoZSBkZXN0cm95YWJsZSdcbiAgKTtcbn1cblxuLy8vLy8vLy8vLy8vXG5cbmV4cG9ydCBmdW5jdGlvbiBkZXN0cm95KGRlc3Ryb3lhYmxlOiBEZXN0cm95YWJsZSkge1xuICBsZXQgbWV0YSA9IGdldERlc3Ryb3lhYmxlTWV0YShkZXN0cm95YWJsZSk7XG5cbiAgaWYgKG1ldGEuc3RhdGUgPj0gRGVzdHJveWluZ1N0YXRlLkRlc3Ryb3lpbmcpIHJldHVybjtcblxuICBsZXQgeyBwYXJlbnRzLCBjaGlsZHJlbiwgZWFnZXJEZXN0cnVjdG9ycywgZGVzdHJ1Y3RvcnMgfSA9IG1ldGE7XG5cbiAgbWV0YS5zdGF0ZSA9IERlc3Ryb3lpbmdTdGF0ZS5EZXN0cm95aW5nO1xuXG4gIGl0ZXJhdGUoY2hpbGRyZW4sIGRlc3Ryb3kpO1xuICBpdGVyYXRlKGVhZ2VyRGVzdHJ1Y3RvcnMsIChkZXN0cnVjdG9yKSA9PiBkZXN0cnVjdG9yKGRlc3Ryb3lhYmxlKSk7XG4gIGl0ZXJhdGUoZGVzdHJ1Y3RvcnMsIChkZXN0cnVjdG9yKSA9PiBzY2hlZHVsZURlc3Ryb3koZGVzdHJveWFibGUsIGRlc3RydWN0b3IpKTtcblxuICBzY2hlZHVsZURlc3Ryb3llZCgoKSA9PiB7XG4gICAgaXRlcmF0ZShwYXJlbnRzLCAocGFyZW50KSA9PiByZW1vdmVDaGlsZEZyb21QYXJlbnQoZGVzdHJveWFibGUsIHBhcmVudCkpO1xuXG4gICAgbWV0YS5zdGF0ZSA9IERlc3Ryb3lpbmdTdGF0ZS5EZXN0cm95ZWQ7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZW1vdmVDaGlsZEZyb21QYXJlbnQoY2hpbGQ6IERlc3Ryb3lhYmxlLCBwYXJlbnQ6IERlc3Ryb3lhYmxlKSB7XG4gIGxldCBwYXJlbnRNZXRhID0gZ2V0RGVzdHJveWFibGVNZXRhKHBhcmVudCk7XG5cbiAgaWYgKHBhcmVudE1ldGEuc3RhdGUgPT09IERlc3Ryb3lpbmdTdGF0ZS5MaXZlKSB7XG4gICAgcGFyZW50TWV0YS5jaGlsZHJlbiA9IHJlbW92ZShcbiAgICAgIHBhcmVudE1ldGEuY2hpbGRyZW4sXG4gICAgICBjaGlsZCxcbiAgICAgIERFQlVHICYmXG4gICAgICAgIFwiYXR0ZW1wdGVkIHRvIHJlbW92ZSBjaGlsZCBmcm9tIHBhcmVudCwgYnV0IHRoZSBwYXJlbnQncyBjaGlsZHJlbiBkaWQgbm90IGNvbnRhaW4gdGhlIGNoaWxkLiBUaGlzIGlzIGxpa2VseSBhIGJ1ZyB3aXRoIGRlc3RydWN0b3JzLlwiXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVzdHJveUNoaWxkcmVuKGRlc3Ryb3lhYmxlOiBEZXN0cm95YWJsZSkge1xuICBsZXQgeyBjaGlsZHJlbiB9ID0gZ2V0RGVzdHJveWFibGVNZXRhKGRlc3Ryb3lhYmxlKTtcblxuICBpdGVyYXRlKGNoaWxkcmVuLCBkZXN0cm95KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGVzdHJveWluZyhkZXN0cm95YWJsZTogRGVzdHJveWFibGUpIHtcbiAgbGV0IG1ldGEgPSBERVNUUk9ZQUJMRV9NRVRBLmdldChkZXN0cm95YWJsZSk7XG5cbiAgcmV0dXJuIG1ldGEgPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogbWV0YS5zdGF0ZSA+PSBEZXN0cm95aW5nU3RhdGUuRGVzdHJveWluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGVzdHJveWVkKGRlc3Ryb3lhYmxlOiBEZXN0cm95YWJsZSkge1xuICBsZXQgbWV0YSA9IERFU1RST1lBQkxFX01FVEEuZ2V0KGRlc3Ryb3lhYmxlKTtcblxuICByZXR1cm4gbWV0YSA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiBtZXRhLnN0YXRlID49IERlc3Ryb3lpbmdTdGF0ZS5EZXN0cm95ZWQ7XG59XG5cbi8vLy8vLy8vLy8vL1xuXG5leHBvcnQgbGV0IGVuYWJsZURlc3Ryb3lhYmxlVHJhY2tpbmc6IHVuZGVmaW5lZCB8ICgoKSA9PiB2b2lkKTtcbmV4cG9ydCBsZXQgYXNzZXJ0RGVzdHJveWFibGVzRGVzdHJveWVkOiB1bmRlZmluZWQgfCAoKCkgPT4gdm9pZCk7XG5cbmlmIChERUJVRykge1xuICBsZXQgaXNUZXN0aW5nID0gZmFsc2U7XG5cbiAgZW5hYmxlRGVzdHJveWFibGVUcmFja2luZyA9ICgpID0+IHtcbiAgICBpZiAoaXNUZXN0aW5nKSB7XG4gICAgICAvLyBSZXNldCBkZXN0cm95YWJsZSBtZXRhIGp1c3QgaW4gY2FzZSwgYmVmb3JlIHRocm93aW5nIHRoZSBlcnJvclxuICAgICAgREVTVFJPWUFCTEVfTUVUQSA9IG5ldyBXZWFrTWFwKCk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdBdHRlbXB0ZWQgdG8gc3RhcnQgZGVzdHJveWFibGUgdGVzdGluZywgYnV0IHlvdSBkaWQgbm90IGVuZCB0aGUgcHJldmlvdXMgZGVzdHJveWFibGUgdGVzdC4gRGlkIHlvdSBmb3JnZXQgdG8gY2FsbCBgYXNzZXJ0RGVzdHJveWFibGVzRGVzdHJveWVkKClgJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBpc1Rlc3RpbmcgPSB0cnVlO1xuICAgIERFU1RST1lBQkxFX01FVEEgPSBuZXcgTWFwKCk7XG4gIH07XG5cbiAgYXNzZXJ0RGVzdHJveWFibGVzRGVzdHJveWVkID0gKCkgPT4ge1xuICAgIGlmICghaXNUZXN0aW5nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdBdHRlbXB0ZWQgdG8gYXNzZXJ0IGRlc3Ryb3lhYmxlcyBkZXN0cm95ZWQsIGJ1dCB5b3UgZGlkIG5vdCBzdGFydCBhIGRlc3Ryb3lhYmxlIHRlc3QuIERpZCB5b3UgZm9yZ2V0IHRvIGNhbGwgYGVuYWJsZURlc3Ryb3lhYmxlVHJhY2tpbmcoKWAnXG4gICAgICApO1xuICAgIH1cblxuICAgIGlzVGVzdGluZyA9IGZhbHNlO1xuXG4gICAgbGV0IG1hcCA9IERFU1RST1lBQkxFX01FVEEgYXMgTWFwPERlc3Ryb3lhYmxlLCBEZXN0cm95YWJsZU1ldGE8RGVzdHJveWFibGU+PjtcbiAgICBERVNUUk9ZQUJMRV9NRVRBID0gbmV3IFdlYWtNYXAoKTtcblxuICAgIGxldCB1bmRlc3Ryb3llZDogb2JqZWN0W10gPSBbXTtcblxuICAgIG1hcC5mb3JFYWNoKChtZXRhKSA9PiB7XG4gICAgICBpZiAobWV0YS5zdGF0ZSAhPT0gRGVzdHJveWluZ1N0YXRlLkRlc3Ryb3llZCkge1xuICAgICAgICB1bmRlc3Ryb3llZC5wdXNoKG1ldGEuc291cmNlISk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAodW5kZXN0cm95ZWQubGVuZ3RoID4gMCkge1xuICAgICAgbGV0IG9iamVjdHNUb1N0cmluZyA9IHVuZGVzdHJveWVkLm1hcChkZWJ1Z1RvU3RyaW5nISkuam9pbignXFxuICAgICcpO1xuICAgICAgbGV0IGVycm9yID0gbmV3IEVycm9yKFxuICAgICAgICBgU29tZSBkZXN0cm95YWJsZXMgd2VyZSBub3QgZGVzdHJveWVkIGR1cmluZyB0aGlzIHRlc3Q6XFxuICAgICR7b2JqZWN0c1RvU3RyaW5nfWBcbiAgICAgICkgYXMgVW5kZXN0cm95ZWREZXN0cm95YWJsZXNFcnJvcjtcblxuICAgICAgZXJyb3IuZGVzdHJveWFibGVzID0gdW5kZXN0cm95ZWQ7XG5cbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0= | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL2Rlc3Ryb3lhYmxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUVBOztBQUNBOztBQXVCQSxJQUFJLGdCQUFnQixHQUVxQyxJQUZ6RCxPQUV5RCxFQUZ6RDs7QUFJQSxTQUFBLElBQUEsQ0FBQSxVQUFBLEVBQUEsT0FBQSxFQUFvRTtBQUNsRSxNQUFJLFVBQVUsS0FBZCxJQUFBLEVBQXlCO0FBQ3ZCLFdBQUEsT0FBQTtBQURGLEdBQUEsTUFFTyxJQUFJLEtBQUssQ0FBTCxPQUFBLENBQUosVUFBSSxDQUFKLEVBQStCO0FBQ3BDLElBQUEsVUFBVSxDQUFWLElBQUEsQ0FBQSxPQUFBO0FBQ0EsV0FBQSxVQUFBO0FBRkssR0FBQSxNQUdBO0FBQ0wsV0FBTyxDQUFBLFVBQUEsRUFBUCxPQUFPLENBQVA7QUFDRDtBQUNGOztBQUVELFNBQUEsT0FBQSxDQUFBLFVBQUEsRUFBQSxFQUFBLEVBQWtGO0FBQ2hGLE1BQUksS0FBSyxDQUFMLE9BQUEsQ0FBSixVQUFJLENBQUosRUFBK0I7QUFDN0IsU0FBSyxJQUFJLENBQUMsR0FBVixDQUFBLEVBQWdCLENBQUMsR0FBRyxVQUFVLENBQTlCLE1BQUEsRUFBdUMsQ0FBdkMsRUFBQSxFQUE0QztBQUMxQyxNQUFBLEVBQUUsQ0FBQyxVQUFVLENBQWIsQ0FBYSxDQUFYLENBQUY7QUFDRDtBQUhILEdBQUEsTUFJTyxJQUFJLFVBQVUsS0FBZCxJQUFBLEVBQXlCO0FBQzlCLElBQUEsRUFBRSxDQUFGLFVBQUUsQ0FBRjtBQUNEO0FBQ0Y7O0FBRUQsU0FBQSxNQUFBLENBQUEsVUFBQSxFQUFBLElBQUEsRUFBQSxPQUFBLEVBQTRGO0FBQzFGLE1BQUEsVUFBQSxFQUFXO0FBQ1QsUUFBSSxnQkFBZ0IsR0FBRyxVQUFVLEtBQWpDLElBQUE7QUFDQSxRQUFJLHNCQUFzQixHQUFHLEtBQUssQ0FBTCxPQUFBLENBQUEsVUFBQSxLQUE2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QUFnQixHQUFHLElBQW5CLEdBQW1CLEVBQW5CO0FBVkYsR0FBQTs7QUFhQSx3Q0FBQSwyQkFBMkIsR0FBRyxNQUFLO0FBQ2pDLFFBQUksQ0FBSixTQUFBLEVBQWdCO0FBQ2QsWUFBTSxJQUFBLEtBQUEsQ0FBTiw0SUFBTSxDQUFOO0FBR0Q7O0FBRUQsSUFBQSxTQUFTLEdBQVQsS0FBQTtBQUVBLFFBQUksR0FBRyxHQUFQLGdCQUFBO0FBQ0EsSUFBQSxnQkFBZ0IsR0FBRyxJQUFuQixPQUFtQixFQUFuQjtBQUVBLFFBQUksV0FBVyxHQUFmLEVBQUE7QUFFQSxJQUFBLEdBQUcsQ0FBSCxPQUFBLENBQWEsSUFBRCxJQUFTO0FBQ25CLFVBQUksSUFBSSxDQUFKLEtBQUEsS0FBVTtBQUFBO0FBQWQsUUFBOEM7QUFDNUMsVUFBQSxXQUFXLENBQVgsSUFBQSxDQUFpQixJQUFJLENBQXJCLE1BQUE7QUFDRDtBQUhILEtBQUE7O0FBTUEsUUFBSSxXQUFXLENBQVgsTUFBQSxHQUFKLENBQUEsRUFBNEI7QUFDMUIsVUFBSSxlQUFlLEdBQUcsV0FBVyxDQUFYLEdBQUEsQ0FBQSxtQkFBQSxFQUFBLElBQUEsQ0FBdEIsUUFBc0IsQ0FBdEI7QUFDQSxVQUFJLEtBQUssR0FBRyxJQUFBLEtBQUEsQ0FDViwrREFBK0QsZUFEakUsRUFBWSxDQUFaO0FBSUEsTUFBQSxLQUFLLENBQUwsWUFBQSxHQUFBLFdBQUE7QUFFQSxZQUFBLEtBQUE7QUFDRDtBQTdCSCxHQUFBO0FBK0JEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgREVCVUcgfSBmcm9tICdAZ2xpbW1lci9lbnYnO1xuaW1wb3J0IHsgRGVzdHJveWFibGUsIERlc3RydWN0b3IgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGRlYnVnVG9TdHJpbmcgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7IHNjaGVkdWxlRGVzdHJveSwgc2NoZWR1bGVEZXN0cm95ZWQgfSBmcm9tICdAZ2xpbW1lci9nbG9iYWwtY29udGV4dCc7XG5cbmNvbnN0IGVudW0gRGVzdHJveWluZ1N0YXRlIHtcbiAgTGl2ZSA9IDAsXG4gIERlc3Ryb3lpbmcgPSAxLFxuICBEZXN0cm95ZWQgPSAyLFxufVxuXG50eXBlIE9uZU9yTWFueTxUPiA9IG51bGwgfCBUIHwgVFtdO1xuXG5pbnRlcmZhY2UgRGVzdHJveWFibGVNZXRhPFQgZXh0ZW5kcyBEZXN0cm95YWJsZT4ge1xuICBzb3VyY2U/OiBUO1xuICBwYXJlbnRzOiBPbmVPck1hbnk8RGVzdHJveWFibGU+O1xuICBjaGlsZHJlbjogT25lT3JNYW55PERlc3Ryb3lhYmxlPjtcbiAgZWFnZXJEZXN0cnVjdG9yczogT25lT3JNYW55PERlc3RydWN0b3I8VD4+O1xuICBkZXN0cnVjdG9yczogT25lT3JNYW55PERlc3RydWN0b3I8VD4+O1xuICBzdGF0ZTogRGVzdHJveWluZ1N0YXRlO1xufVxuXG5pbnRlcmZhY2UgVW5kZXN0cm95ZWREZXN0cm95YWJsZXNFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgZGVzdHJveWFibGVzOiBvYmplY3RbXTtcbn1cblxubGV0IERFU1RST1lBQkxFX01FVEE6XG4gIHwgTWFwPERlc3Ryb3lhYmxlLCBEZXN0cm95YWJsZU1ldGE8RGVzdHJveWFibGU+PlxuICB8IFdlYWtNYXA8RGVzdHJveWFibGUsIERlc3Ryb3lhYmxlTWV0YTxEZXN0cm95YWJsZT4+ID0gbmV3IFdlYWtNYXAoKTtcblxuZnVuY3Rpb24gcHVzaDxUIGV4dGVuZHMgb2JqZWN0Pihjb2xsZWN0aW9uOiBPbmVPck1hbnk8VD4sIG5ld0l0ZW06IFQpOiBPbmVPck1hbnk8VD4ge1xuICBpZiAoY29sbGVjdGlvbiA9PT0gbnVsbCkge1xuICAgIHJldHVybiBuZXdJdGVtO1xuICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoY29sbGVjdGlvbikpIHtcbiAgICBjb2xsZWN0aW9uLnB1c2gobmV3SXRlbSk7XG4gICAgcmV0dXJuIGNvbGxlY3Rpb247XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIFtjb2xsZWN0aW9uLCBuZXdJdGVtXTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpdGVyYXRlPFQgZXh0ZW5kcyBvYmplY3Q+KGNvbGxlY3Rpb246IE9uZU9yTWFueTxUPiwgZm46IChpdGVtOiBUKSA9PiB2b2lkKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGNvbGxlY3Rpb24pKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb2xsZWN0aW9uLmxlbmd0aDsgaSsrKSB7XG4gICAgICBmbihjb2xsZWN0aW9uW2ldKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoY29sbGVjdGlvbiAhPT0gbnVsbCkge1xuICAgIGZuKGNvbGxlY3Rpb24pO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlbW92ZTxUIGV4dGVuZHMgb2JqZWN0Pihjb2xsZWN0aW9uOiBPbmVPck1hbnk8VD4sIGl0ZW06IFQsIG1lc3NhZ2U6IHN0cmluZyB8IGZhbHNlKSB7XG4gIGlmIChERUJVRykge1xuICAgIGxldCBjb2xsZWN0aW9uSXNJdGVtID0gY29sbGVjdGlvbiA9PT0gaXRlbTtcbiAgICBsZXQgY29sbGVjdGlvbkNvbnRhaW5zSXRlbSA9IEFycmF5LmlzQXJyYXkoY29sbGVjdGlvbikgJiYgY29sbGVjdGlvbi5pbmRleE9mKGl0ZW0pICE9PSAtMTtcblxuICAgIGlmICghY29sbGVjdGlvbklzSXRlbSAmJiAhY29sbGVjdGlvbkNvbnRhaW5zSXRlbSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFN0cmluZyhtZXNzYWdlKSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkoY29sbGVjdGlvbikgJiYgY29sbGVjdGlvbi5sZW5ndGggPiAxKSB7XG4gICAgbGV0IGluZGV4ID0gY29sbGVjdGlvbiEuaW5kZXhPZihpdGVtKTtcbiAgICBjb2xsZWN0aW9uIS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHJldHVybiBjb2xsZWN0aW9uO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldERlc3Ryb3lhYmxlTWV0YTxUIGV4dGVuZHMgRGVzdHJveWFibGU+KGRlc3Ryb3lhYmxlOiBUKTogRGVzdHJveWFibGVNZXRhPFQ+IHtcbiAgbGV0IG1ldGEgPSBERVNUUk9ZQUJMRV9NRVRBLmdldChkZXN0cm95YWJsZSk7XG5cbiAgaWYgKG1ldGEgPT09IHVuZGVmaW5lZCkge1xuICAgIG1ldGEgPSB7XG4gICAgICBwYXJlbnRzOiBudWxsLFxuICAgICAgY2hpbGRyZW46IG51bGwsXG4gICAgICBlYWdlckRlc3RydWN0b3JzOiBudWxsLFxuICAgICAgZGVzdHJ1Y3RvcnM6IG51bGwsXG4gICAgICBzdGF0ZTogRGVzdHJveWluZ1N0YXRlLkxpdmUsXG4gICAgfTtcblxuICAgIGlmIChERUJVRykge1xuICAgICAgbWV0YS5zb3VyY2UgPSBkZXN0cm95YWJsZSBhcyBvYmplY3Q7XG4gICAgfVxuXG4gICAgREVTVFJPWUFCTEVfTUVUQS5zZXQoZGVzdHJveWFibGUsIG1ldGEpO1xuICB9XG5cbiAgcmV0dXJuIChtZXRhIGFzIHVua25vd24pIGFzIERlc3Ryb3lhYmxlTWV0YTxUPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc29jaWF0ZURlc3Ryb3lhYmxlQ2hpbGQ8VCBleHRlbmRzIERlc3Ryb3lhYmxlPihwYXJlbnQ6IERlc3Ryb3lhYmxlLCBjaGlsZDogVCk6IFQge1xuICBpZiAoREVCVUcgJiYgaXNEZXN0cm95aW5nKHBhcmVudCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQXR0ZW1wdGVkIHRvIGFzc29jaWF0ZSBhIGRlc3Ryb3lhYmxlIGNoaWxkIHdpdGggYW4gb2JqZWN0IHRoYXQgaXMgYWxyZWFkeSBkZXN0cm95aW5nIG9yIGRlc3Ryb3llZCdcbiAgICApO1xuICB9XG5cbiAgbGV0IHBhcmVudE1ldGEgPSBnZXREZXN0cm95YWJsZU1ldGEocGFyZW50KTtcbiAgbGV0IGNoaWxkTWV0YSA9IGdldERlc3Ryb3lhYmxlTWV0YShjaGlsZCk7XG5cbiAgcGFyZW50TWV0YS5jaGlsZHJlbiA9IHB1c2gocGFyZW50TWV0YS5jaGlsZHJlbiwgY2hpbGQpO1xuICBjaGlsZE1ldGEucGFyZW50cyA9IHB1c2goY2hpbGRNZXRhLnBhcmVudHMsIHBhcmVudCk7XG5cbiAgcmV0dXJuIGNoaWxkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJEZXN0cnVjdG9yPFQgZXh0ZW5kcyBEZXN0cm95YWJsZT4oXG4gIGRlc3Ryb3lhYmxlOiBULFxuICBkZXN0cnVjdG9yOiBEZXN0cnVjdG9yPFQ+LFxuICBlYWdlciA9IGZhbHNlXG4pOiBEZXN0cnVjdG9yPFQ+IHtcbiAgaWYgKERFQlVHICYmIGlzRGVzdHJveWluZyhkZXN0cm95YWJsZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQXR0ZW1wdGVkIHRvIHJlZ2lzdGVyIGEgZGVzdHJ1Y3RvciB3aXRoIGFuIG9iamVjdCB0aGF0IGlzIGFscmVhZHkgZGVzdHJveWluZyBvciBkZXN0cm95ZWQnXG4gICAgKTtcbiAgfVxuXG4gIGxldCBtZXRhID0gZ2V0RGVzdHJveWFibGVNZXRhKGRlc3Ryb3lhYmxlKTtcblxuICBsZXQgZGVzdHJ1Y3RvcnNLZXk6ICdlYWdlckRlc3RydWN0b3JzJyB8ICdkZXN0cnVjdG9ycycgPVxuICAgIGVhZ2VyID09PSB0cnVlID8gJ2VhZ2VyRGVzdHJ1Y3RvcnMnIDogJ2Rlc3RydWN0b3JzJztcblxuICBtZXRhW2Rlc3RydWN0b3JzS2V5XSA9IHB1c2gobWV0YVtkZXN0cnVjdG9yc0tleV0sIGRlc3RydWN0b3IpO1xuXG4gIHJldHVybiBkZXN0cnVjdG9yO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5yZWdpc3RlckRlc3RydWN0b3I8VCBleHRlbmRzIERlc3Ryb3lhYmxlPihcbiAgZGVzdHJveWFibGU6IFQsXG4gIGRlc3RydWN0b3I6IERlc3RydWN0b3I8VD4sXG4gIGVhZ2VyID0gZmFsc2Vcbik6IHZvaWQge1xuICBpZiAoREVCVUcgJiYgaXNEZXN0cm95aW5nKGRlc3Ryb3lhYmxlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdBdHRlbXB0ZWQgdG8gdW5yZWdpc3RlciBhIGRlc3RydWN0b3Igd2l0aCBhbiBvYmplY3QgdGhhdCBpcyBhbHJlYWR5IGRlc3Ryb3lpbmcgb3IgZGVzdHJveWVkJ1xuICAgICk7XG4gIH1cblxuICBsZXQgbWV0YSA9IGdldERlc3Ryb3lhYmxlTWV0YShkZXN0cm95YWJsZSk7XG5cbiAgbGV0IGRlc3RydWN0b3JzS2V5OiAnZWFnZXJEZXN0cnVjdG9ycycgfCAnZGVzdHJ1Y3RvcnMnID1cbiAgICBlYWdlciA9PT0gdHJ1ZSA/ICdlYWdlckRlc3RydWN0b3JzJyA6ICdkZXN0cnVjdG9ycyc7XG5cbiAgbWV0YVtkZXN0cnVjdG9yc0tleV0gPSByZW1vdmUoXG4gICAgbWV0YVtkZXN0cnVjdG9yc0tleV0sXG4gICAgZGVzdHJ1Y3RvcixcbiAgICBERUJVRyAmJiAnYXR0ZW1wdGVkIHRvIHJlbW92ZSBhIGRlc3RydWN0b3IgdGhhdCB3YXMgbm90IHJlZ2lzdGVyZWQgd2l0aCB0aGUgZGVzdHJveWFibGUnXG4gICk7XG59XG5cbi8vLy8vLy8vLy8vL1xuXG5leHBvcnQgZnVuY3Rpb24gZGVzdHJveShkZXN0cm95YWJsZTogRGVzdHJveWFibGUpIHtcbiAgbGV0IG1ldGEgPSBnZXREZXN0cm95YWJsZU1ldGEoZGVzdHJveWFibGUpO1xuXG4gIGlmIChtZXRhLnN0YXRlID49IERlc3Ryb3lpbmdTdGF0ZS5EZXN0cm95aW5nKSByZXR1cm47XG5cbiAgbGV0IHsgcGFyZW50cywgY2hpbGRyZW4sIGVhZ2VyRGVzdHJ1Y3RvcnMsIGRlc3RydWN0b3JzIH0gPSBtZXRhO1xuXG4gIG1ldGEuc3RhdGUgPSBEZXN0cm95aW5nU3RhdGUuRGVzdHJveWluZztcblxuICBpdGVyYXRlKGNoaWxkcmVuLCBkZXN0cm95KTtcbiAgaXRlcmF0ZShlYWdlckRlc3RydWN0b3JzLCAoZGVzdHJ1Y3RvcikgPT4gZGVzdHJ1Y3RvcihkZXN0cm95YWJsZSkpO1xuICBpdGVyYXRlKGRlc3RydWN0b3JzLCAoZGVzdHJ1Y3RvcikgPT4gc2NoZWR1bGVEZXN0cm95KGRlc3Ryb3lhYmxlLCBkZXN0cnVjdG9yKSk7XG5cbiAgc2NoZWR1bGVEZXN0cm95ZWQoKCkgPT4ge1xuICAgIGl0ZXJhdGUocGFyZW50cywgKHBhcmVudCkgPT4gcmVtb3ZlQ2hpbGRGcm9tUGFyZW50KGRlc3Ryb3lhYmxlLCBwYXJlbnQpKTtcblxuICAgIG1ldGEuc3RhdGUgPSBEZXN0cm95aW5nU3RhdGUuRGVzdHJveWVkO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlQ2hpbGRGcm9tUGFyZW50KGNoaWxkOiBEZXN0cm95YWJsZSwgcGFyZW50OiBEZXN0cm95YWJsZSkge1xuICBsZXQgcGFyZW50TWV0YSA9IGdldERlc3Ryb3lhYmxlTWV0YShwYXJlbnQpO1xuXG4gIGlmIChwYXJlbnRNZXRhLnN0YXRlID09PSBEZXN0cm95aW5nU3RhdGUuTGl2ZSkge1xuICAgIHBhcmVudE1ldGEuY2hpbGRyZW4gPSByZW1vdmUoXG4gICAgICBwYXJlbnRNZXRhLmNoaWxkcmVuLFxuICAgICAgY2hpbGQsXG4gICAgICBERUJVRyAmJlxuICAgICAgICBcImF0dGVtcHRlZCB0byByZW1vdmUgY2hpbGQgZnJvbSBwYXJlbnQsIGJ1dCB0aGUgcGFyZW50J3MgY2hpbGRyZW4gZGlkIG5vdCBjb250YWluIHRoZSBjaGlsZC4gVGhpcyBpcyBsaWtlbHkgYSBidWcgd2l0aCBkZXN0cnVjdG9ycy5cIlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlc3Ryb3lDaGlsZHJlbihkZXN0cm95YWJsZTogRGVzdHJveWFibGUpIHtcbiAgbGV0IHsgY2hpbGRyZW4gfSA9IGdldERlc3Ryb3lhYmxlTWV0YShkZXN0cm95YWJsZSk7XG5cbiAgaXRlcmF0ZShjaGlsZHJlbiwgZGVzdHJveSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfaGFzRGVzdHJveWFibGVDaGlsZHJlbihkZXN0cm95YWJsZTogRGVzdHJveWFibGUpIHtcbiAgbGV0IG1ldGEgPSBERVNUUk9ZQUJMRV9NRVRBLmdldChkZXN0cm95YWJsZSk7XG5cbiAgcmV0dXJuIG1ldGEgPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogbWV0YS5jaGlsZHJlbiAhPT0gbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGVzdHJveWluZyhkZXN0cm95YWJsZTogRGVzdHJveWFibGUpIHtcbiAgbGV0IG1ldGEgPSBERVNUUk9ZQUJMRV9NRVRBLmdldChkZXN0cm95YWJsZSk7XG5cbiAgcmV0dXJuIG1ldGEgPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogbWV0YS5zdGF0ZSA+PSBEZXN0cm95aW5nU3RhdGUuRGVzdHJveWluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGVzdHJveWVkKGRlc3Ryb3lhYmxlOiBEZXN0cm95YWJsZSkge1xuICBsZXQgbWV0YSA9IERFU1RST1lBQkxFX01FVEEuZ2V0KGRlc3Ryb3lhYmxlKTtcblxuICByZXR1cm4gbWV0YSA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiBtZXRhLnN0YXRlID49IERlc3Ryb3lpbmdTdGF0ZS5EZXN0cm95ZWQ7XG59XG5cbi8vLy8vLy8vLy8vL1xuXG5leHBvcnQgbGV0IGVuYWJsZURlc3Ryb3lhYmxlVHJhY2tpbmc6IHVuZGVmaW5lZCB8ICgoKSA9PiB2b2lkKTtcbmV4cG9ydCBsZXQgYXNzZXJ0RGVzdHJveWFibGVzRGVzdHJveWVkOiB1bmRlZmluZWQgfCAoKCkgPT4gdm9pZCk7XG5cbmlmIChERUJVRykge1xuICBsZXQgaXNUZXN0aW5nID0gZmFsc2U7XG5cbiAgZW5hYmxlRGVzdHJveWFibGVUcmFja2luZyA9ICgpID0+IHtcbiAgICBpZiAoaXNUZXN0aW5nKSB7XG4gICAgICAvLyBSZXNldCBkZXN0cm95YWJsZSBtZXRhIGp1c3QgaW4gY2FzZSwgYmVmb3JlIHRocm93aW5nIHRoZSBlcnJvclxuICAgICAgREVTVFJPWUFCTEVfTUVUQSA9IG5ldyBXZWFrTWFwKCk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdBdHRlbXB0ZWQgdG8gc3RhcnQgZGVzdHJveWFibGUgdGVzdGluZywgYnV0IHlvdSBkaWQgbm90IGVuZCB0aGUgcHJldmlvdXMgZGVzdHJveWFibGUgdGVzdC4gRGlkIHlvdSBmb3JnZXQgdG8gY2FsbCBgYXNzZXJ0RGVzdHJveWFibGVzRGVzdHJveWVkKClgJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBpc1Rlc3RpbmcgPSB0cnVlO1xuICAgIERFU1RST1lBQkxFX01FVEEgPSBuZXcgTWFwKCk7XG4gIH07XG5cbiAgYXNzZXJ0RGVzdHJveWFibGVzRGVzdHJveWVkID0gKCkgPT4ge1xuICAgIGlmICghaXNUZXN0aW5nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdBdHRlbXB0ZWQgdG8gYXNzZXJ0IGRlc3Ryb3lhYmxlcyBkZXN0cm95ZWQsIGJ1dCB5b3UgZGlkIG5vdCBzdGFydCBhIGRlc3Ryb3lhYmxlIHRlc3QuIERpZCB5b3UgZm9yZ2V0IHRvIGNhbGwgYGVuYWJsZURlc3Ryb3lhYmxlVHJhY2tpbmcoKWAnXG4gICAgICApO1xuICAgIH1cblxuICAgIGlzVGVzdGluZyA9IGZhbHNlO1xuXG4gICAgbGV0IG1hcCA9IERFU1RST1lBQkxFX01FVEEgYXMgTWFwPERlc3Ryb3lhYmxlLCBEZXN0cm95YWJsZU1ldGE8RGVzdHJveWFibGU+PjtcbiAgICBERVNUUk9ZQUJMRV9NRVRBID0gbmV3IFdlYWtNYXAoKTtcblxuICAgIGxldCB1bmRlc3Ryb3llZDogb2JqZWN0W10gPSBbXTtcblxuICAgIG1hcC5mb3JFYWNoKChtZXRhKSA9PiB7XG4gICAgICBpZiAobWV0YS5zdGF0ZSAhPT0gRGVzdHJveWluZ1N0YXRlLkRlc3Ryb3llZCkge1xuICAgICAgICB1bmRlc3Ryb3llZC5wdXNoKG1ldGEuc291cmNlISk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAodW5kZXN0cm95ZWQubGVuZ3RoID4gMCkge1xuICAgICAgbGV0IG9iamVjdHNUb1N0cmluZyA9IHVuZGVzdHJveWVkLm1hcChkZWJ1Z1RvU3RyaW5nISkuam9pbignXFxuICAgICcpO1xuICAgICAgbGV0IGVycm9yID0gbmV3IEVycm9yKFxuICAgICAgICBgU29tZSBkZXN0cm95YWJsZXMgd2VyZSBub3QgZGVzdHJveWVkIGR1cmluZyB0aGlzIHRlc3Q6XFxuICAgICR7b2JqZWN0c1RvU3RyaW5nfWBcbiAgICAgICkgYXMgVW5kZXN0cm95ZWREZXN0cm95YWJsZXNFcnJvcjtcblxuICAgICAgZXJyb3IuZGVzdHJveWFibGVzID0gdW5kZXN0cm95ZWQ7XG5cbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0= |
@@ -11,2 +11,3 @@ "use strict"; | ||
exports.destroyChildren = destroyChildren; | ||
exports._hasDestroyableChildren = _hasDestroyableChildren; | ||
exports.isDestroying = isDestroying; | ||
@@ -176,2 +177,7 @@ exports.isDestroyed = isDestroyed; | ||
function _hasDestroyableChildren(destroyable) { | ||
var meta = DESTROYABLE_META.get(destroyable); | ||
return meta === undefined ? false : meta.children !== null; | ||
} | ||
function isDestroying(destroyable) { | ||
@@ -236,2 +242,2 @@ var meta = DESTROYABLE_META.get(destroyable); | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL2Rlc3Ryb3lhYmxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUE7O0FBQ0E7O0FBdUJBLElBQUksZ0JBQWdCLEdBRXFDLElBRnpELE9BRXlELEVBRnpEOztBQUlBLFNBQUEsSUFBQSxDQUFBLFVBQUEsRUFBQSxPQUFBLEVBQW9FO0FBQ2xFLE1BQUksVUFBVSxLQUFkLElBQUEsRUFBeUI7QUFDdkIsV0FBQSxPQUFBO0FBREYsR0FBQSxNQUVPLElBQUksS0FBSyxDQUFMLE9BQUEsQ0FBSixVQUFJLENBQUosRUFBK0I7QUFDcEMsSUFBQSxVQUFVLENBQVYsSUFBQSxDQUFBLE9BQUE7QUFDQSxXQUFBLFVBQUE7QUFGSyxHQUFBLE1BR0E7QUFDTCxXQUFPLENBQUEsVUFBQSxFQUFQLE9BQU8sQ0FBUDtBQUNEO0FBQ0Y7O0FBRUQsU0FBQSxPQUFBLENBQUEsVUFBQSxFQUFBLEVBQUEsRUFBa0Y7QUFDaEYsTUFBSSxLQUFLLENBQUwsT0FBQSxDQUFKLFVBQUksQ0FBSixFQUErQjtBQUM3QixTQUFLLElBQUksQ0FBQyxHQUFWLENBQUEsRUFBZ0IsQ0FBQyxHQUFHLFVBQVUsQ0FBOUIsTUFBQSxFQUF1QyxDQUF2QyxFQUFBLEVBQTRDO0FBQzFDLE1BQUEsRUFBRSxDQUFDLFVBQVUsQ0FBYixDQUFhLENBQVgsQ0FBRjtBQUNEO0FBSEgsR0FBQSxNQUlPLElBQUksVUFBVSxLQUFkLElBQUEsRUFBeUI7QUFDOUIsSUFBQSxFQUFFLENBQUYsVUFBRSxDQUFGO0FBQ0Q7QUFDRjs7QUFFRCxTQUFBLE1BQUEsQ0FBQSxVQUFBLEVBQUEsSUFBQSxFQUFBLE9BQUEsRUFBNEY7QUFDMUYsTUFBQSxVQUFBLEVBQVc7QUFDVCxRQUFJLGdCQUFnQixHQUFHLFVBQVUsS0FBakMsSUFBQTtBQUNBLFFBQUksc0JBQXNCLEdBQUcsS0FBSyxDQUFMLE9BQUEsQ0FBQSxVQUFBLEtBQTZC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QUFDL0IsUUFBQSxTQUFBLEVBQWU7QUFDYjtBQUNBLE1BQUEsZ0JBQWdCLEdBQUcsSUFBbkIsT0FBbUIsRUFBbkI7QUFDQSxZQUFNLElBQUEsS0FBQSxDQUFOLG1KQUFNLENBQU47QUFHRDs7QUFFRCxJQUFBLFNBQVMsR0FBVCxJQUFBO0FBQ0EsSUFBQSxnQkFBZ0IsR0FBRyxJQUFuQixHQUFtQixFQUFuQjtBQVZGLEdBQUE7O0FBYUEsd0NBQUEsMkJBQTJCLEdBQUcsU0FBQSwyQkFBQSxHQUFLO0FBQ2pDLFFBQUksQ0FBSixTQUFBLEVBQWdCO0FBQ2QsWUFBTSxJQUFBLEtBQUEsQ0FBTiw0SUFBTSxDQUFOO0FBR0Q7O0FBRUQsSUFBQSxTQUFTLEdBQVQsS0FBQTtBQUVBLFFBQUksR0FBRyxHQUFQLGdCQUFBO0FBQ0EsSUFBQSxnQkFBZ0IsR0FBRyxJQUFuQixPQUFtQixFQUFuQjtBQUVBLFFBQUksV0FBVyxHQUFmLEVBQUE7QUFFQSxJQUFBLEdBQUcsQ0FBSCxPQUFBLENBQWEsVUFBRCxJQUFDLEVBQVE7QUFDbkIsVUFBSSxJQUFJLENBQUosS0FBQSxLQUFVO0FBQUE7QUFBZCxRQUE4QztBQUM1QyxVQUFBLFdBQVcsQ0FBWCxJQUFBLENBQWlCLElBQUksQ0FBckIsTUFBQTtBQUNEO0FBSEgsS0FBQTs7QUFNQSxRQUFJLFdBQVcsQ0FBWCxNQUFBLEdBQUosQ0FBQSxFQUE0QjtBQUMxQixVQUFJLGVBQWUsR0FBRyxXQUFXLENBQVgsR0FBQSxDQUFBLG1CQUFBLEVBQUEsSUFBQSxDQUF0QixRQUFzQixDQUF0QjtBQUNBLFVBQUksS0FBSyxHQUFHLElBQUEsS0FBQSxDQUFBLGlFQUFaLGVBQVksQ0FBWjtBQUlBLE1BQUEsS0FBSyxDQUFMLFlBQUEsR0FBQSxXQUFBO0FBRUEsWUFBQSxLQUFBO0FBQ0Q7QUE3QkgsR0FBQTtBQStCRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvZW52JztcbmltcG9ydCB7IERlc3Ryb3lhYmxlLCBEZXN0cnVjdG9yIH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBkZWJ1Z1RvU3RyaW5nIH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5pbXBvcnQgeyBzY2hlZHVsZURlc3Ryb3ksIHNjaGVkdWxlRGVzdHJveWVkIH0gZnJvbSAnQGdsaW1tZXIvZ2xvYmFsLWNvbnRleHQnO1xuXG5jb25zdCBlbnVtIERlc3Ryb3lpbmdTdGF0ZSB7XG4gIExpdmUgPSAwLFxuICBEZXN0cm95aW5nID0gMSxcbiAgRGVzdHJveWVkID0gMixcbn1cblxudHlwZSBPbmVPck1hbnk8VD4gPSBudWxsIHwgVCB8IFRbXTtcblxuaW50ZXJmYWNlIERlc3Ryb3lhYmxlTWV0YTxUIGV4dGVuZHMgRGVzdHJveWFibGU+IHtcbiAgc291cmNlPzogVDtcbiAgcGFyZW50czogT25lT3JNYW55PERlc3Ryb3lhYmxlPjtcbiAgY2hpbGRyZW46IE9uZU9yTWFueTxEZXN0cm95YWJsZT47XG4gIGVhZ2VyRGVzdHJ1Y3RvcnM6IE9uZU9yTWFueTxEZXN0cnVjdG9yPFQ+PjtcbiAgZGVzdHJ1Y3RvcnM6IE9uZU9yTWFueTxEZXN0cnVjdG9yPFQ+PjtcbiAgc3RhdGU6IERlc3Ryb3lpbmdTdGF0ZTtcbn1cblxuaW50ZXJmYWNlIFVuZGVzdHJveWVkRGVzdHJveWFibGVzRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGRlc3Ryb3lhYmxlczogb2JqZWN0W107XG59XG5cbmxldCBERVNUUk9ZQUJMRV9NRVRBOlxuICB8IE1hcDxEZXN0cm95YWJsZSwgRGVzdHJveWFibGVNZXRhPERlc3Ryb3lhYmxlPj5cbiAgfCBXZWFrTWFwPERlc3Ryb3lhYmxlLCBEZXN0cm95YWJsZU1ldGE8RGVzdHJveWFibGU+PiA9IG5ldyBXZWFrTWFwKCk7XG5cbmZ1bmN0aW9uIHB1c2g8VCBleHRlbmRzIG9iamVjdD4oY29sbGVjdGlvbjogT25lT3JNYW55PFQ+LCBuZXdJdGVtOiBUKTogT25lT3JNYW55PFQ+IHtcbiAgaWYgKGNvbGxlY3Rpb24gPT09IG51bGwpIHtcbiAgICByZXR1cm4gbmV3SXRlbTtcbiAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGNvbGxlY3Rpb24pKSB7XG4gICAgY29sbGVjdGlvbi5wdXNoKG5ld0l0ZW0pO1xuICAgIHJldHVybiBjb2xsZWN0aW9uO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBbY29sbGVjdGlvbiwgbmV3SXRlbV07XG4gIH1cbn1cblxuZnVuY3Rpb24gaXRlcmF0ZTxUIGV4dGVuZHMgb2JqZWN0Pihjb2xsZWN0aW9uOiBPbmVPck1hbnk8VD4sIGZuOiAoaXRlbTogVCkgPT4gdm9pZCkge1xuICBpZiAoQXJyYXkuaXNBcnJheShjb2xsZWN0aW9uKSkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29sbGVjdGlvbi5sZW5ndGg7IGkrKykge1xuICAgICAgZm4oY29sbGVjdGlvbltpXSk7XG4gICAgfVxuICB9IGVsc2UgaWYgKGNvbGxlY3Rpb24gIT09IG51bGwpIHtcbiAgICBmbihjb2xsZWN0aW9uKTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZW1vdmU8VCBleHRlbmRzIG9iamVjdD4oY29sbGVjdGlvbjogT25lT3JNYW55PFQ+LCBpdGVtOiBULCBtZXNzYWdlOiBzdHJpbmcgfCBmYWxzZSkge1xuICBpZiAoREVCVUcpIHtcbiAgICBsZXQgY29sbGVjdGlvbklzSXRlbSA9IGNvbGxlY3Rpb24gPT09IGl0ZW07XG4gICAgbGV0IGNvbGxlY3Rpb25Db250YWluc0l0ZW0gPSBBcnJheS5pc0FycmF5KGNvbGxlY3Rpb24pICYmIGNvbGxlY3Rpb24uaW5kZXhPZihpdGVtKSAhPT0gLTE7XG5cbiAgICBpZiAoIWNvbGxlY3Rpb25Jc0l0ZW0gJiYgIWNvbGxlY3Rpb25Db250YWluc0l0ZW0pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihTdHJpbmcobWVzc2FnZSkpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChBcnJheS5pc0FycmF5KGNvbGxlY3Rpb24pICYmIGNvbGxlY3Rpb24ubGVuZ3RoID4gMSkge1xuICAgIGxldCBpbmRleCA9IGNvbGxlY3Rpb24hLmluZGV4T2YoaXRlbSk7XG4gICAgY29sbGVjdGlvbiEuc3BsaWNlKGluZGV4LCAxKTtcbiAgICByZXR1cm4gY29sbGVjdGlvbjtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXREZXN0cm95YWJsZU1ldGE8VCBleHRlbmRzIERlc3Ryb3lhYmxlPihkZXN0cm95YWJsZTogVCk6IERlc3Ryb3lhYmxlTWV0YTxUPiB7XG4gIGxldCBtZXRhID0gREVTVFJPWUFCTEVfTUVUQS5nZXQoZGVzdHJveWFibGUpO1xuXG4gIGlmIChtZXRhID09PSB1bmRlZmluZWQpIHtcbiAgICBtZXRhID0ge1xuICAgICAgcGFyZW50czogbnVsbCxcbiAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgICAgZWFnZXJEZXN0cnVjdG9yczogbnVsbCxcbiAgICAgIGRlc3RydWN0b3JzOiBudWxsLFxuICAgICAgc3RhdGU6IERlc3Ryb3lpbmdTdGF0ZS5MaXZlLFxuICAgIH07XG5cbiAgICBpZiAoREVCVUcpIHtcbiAgICAgIG1ldGEuc291cmNlID0gZGVzdHJveWFibGUgYXMgb2JqZWN0O1xuICAgIH1cblxuICAgIERFU1RST1lBQkxFX01FVEEuc2V0KGRlc3Ryb3lhYmxlLCBtZXRhKTtcbiAgfVxuXG4gIHJldHVybiAobWV0YSBhcyB1bmtub3duKSBhcyBEZXN0cm95YWJsZU1ldGE8VD47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3NvY2lhdGVEZXN0cm95YWJsZUNoaWxkPFQgZXh0ZW5kcyBEZXN0cm95YWJsZT4ocGFyZW50OiBEZXN0cm95YWJsZSwgY2hpbGQ6IFQpOiBUIHtcbiAgaWYgKERFQlVHICYmIGlzRGVzdHJveWluZyhwYXJlbnQpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0F0dGVtcHRlZCB0byBhc3NvY2lhdGUgYSBkZXN0cm95YWJsZSBjaGlsZCB3aXRoIGFuIG9iamVjdCB0aGF0IGlzIGFscmVhZHkgZGVzdHJveWluZyBvciBkZXN0cm95ZWQnXG4gICAgKTtcbiAgfVxuXG4gIGxldCBwYXJlbnRNZXRhID0gZ2V0RGVzdHJveWFibGVNZXRhKHBhcmVudCk7XG4gIGxldCBjaGlsZE1ldGEgPSBnZXREZXN0cm95YWJsZU1ldGEoY2hpbGQpO1xuXG4gIHBhcmVudE1ldGEuY2hpbGRyZW4gPSBwdXNoKHBhcmVudE1ldGEuY2hpbGRyZW4sIGNoaWxkKTtcbiAgY2hpbGRNZXRhLnBhcmVudHMgPSBwdXNoKGNoaWxkTWV0YS5wYXJlbnRzLCBwYXJlbnQpO1xuXG4gIHJldHVybiBjaGlsZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyRGVzdHJ1Y3RvcjxUIGV4dGVuZHMgRGVzdHJveWFibGU+KFxuICBkZXN0cm95YWJsZTogVCxcbiAgZGVzdHJ1Y3RvcjogRGVzdHJ1Y3RvcjxUPixcbiAgZWFnZXIgPSBmYWxzZVxuKTogRGVzdHJ1Y3RvcjxUPiB7XG4gIGlmIChERUJVRyAmJiBpc0Rlc3Ryb3lpbmcoZGVzdHJveWFibGUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0F0dGVtcHRlZCB0byByZWdpc3RlciBhIGRlc3RydWN0b3Igd2l0aCBhbiBvYmplY3QgdGhhdCBpcyBhbHJlYWR5IGRlc3Ryb3lpbmcgb3IgZGVzdHJveWVkJ1xuICAgICk7XG4gIH1cblxuICBsZXQgbWV0YSA9IGdldERlc3Ryb3lhYmxlTWV0YShkZXN0cm95YWJsZSk7XG5cbiAgbGV0IGRlc3RydWN0b3JzS2V5OiAnZWFnZXJEZXN0cnVjdG9ycycgfCAnZGVzdHJ1Y3RvcnMnID1cbiAgICBlYWdlciA9PT0gdHJ1ZSA/ICdlYWdlckRlc3RydWN0b3JzJyA6ICdkZXN0cnVjdG9ycyc7XG5cbiAgbWV0YVtkZXN0cnVjdG9yc0tleV0gPSBwdXNoKG1ldGFbZGVzdHJ1Y3RvcnNLZXldLCBkZXN0cnVjdG9yKTtcblxuICByZXR1cm4gZGVzdHJ1Y3Rvcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVucmVnaXN0ZXJEZXN0cnVjdG9yPFQgZXh0ZW5kcyBEZXN0cm95YWJsZT4oXG4gIGRlc3Ryb3lhYmxlOiBULFxuICBkZXN0cnVjdG9yOiBEZXN0cnVjdG9yPFQ+LFxuICBlYWdlciA9IGZhbHNlXG4pOiB2b2lkIHtcbiAgaWYgKERFQlVHICYmIGlzRGVzdHJveWluZyhkZXN0cm95YWJsZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQXR0ZW1wdGVkIHRvIHVucmVnaXN0ZXIgYSBkZXN0cnVjdG9yIHdpdGggYW4gb2JqZWN0IHRoYXQgaXMgYWxyZWFkeSBkZXN0cm95aW5nIG9yIGRlc3Ryb3llZCdcbiAgICApO1xuICB9XG5cbiAgbGV0IG1ldGEgPSBnZXREZXN0cm95YWJsZU1ldGEoZGVzdHJveWFibGUpO1xuXG4gIGxldCBkZXN0cnVjdG9yc0tleTogJ2VhZ2VyRGVzdHJ1Y3RvcnMnIHwgJ2Rlc3RydWN0b3JzJyA9XG4gICAgZWFnZXIgPT09IHRydWUgPyAnZWFnZXJEZXN0cnVjdG9ycycgOiAnZGVzdHJ1Y3RvcnMnO1xuXG4gIG1ldGFbZGVzdHJ1Y3RvcnNLZXldID0gcmVtb3ZlKFxuICAgIG1ldGFbZGVzdHJ1Y3RvcnNLZXldLFxuICAgIGRlc3RydWN0b3IsXG4gICAgREVCVUcgJiYgJ2F0dGVtcHRlZCB0byByZW1vdmUgYSBkZXN0cnVjdG9yIHRoYXQgd2FzIG5vdCByZWdpc3RlcmVkIHdpdGggdGhlIGRlc3Ryb3lhYmxlJ1xuICApO1xufVxuXG4vLy8vLy8vLy8vLy9cblxuZXhwb3J0IGZ1bmN0aW9uIGRlc3Ryb3koZGVzdHJveWFibGU6IERlc3Ryb3lhYmxlKSB7XG4gIGxldCBtZXRhID0gZ2V0RGVzdHJveWFibGVNZXRhKGRlc3Ryb3lhYmxlKTtcblxuICBpZiAobWV0YS5zdGF0ZSA+PSBEZXN0cm95aW5nU3RhdGUuRGVzdHJveWluZykgcmV0dXJuO1xuXG4gIGxldCB7IHBhcmVudHMsIGNoaWxkcmVuLCBlYWdlckRlc3RydWN0b3JzLCBkZXN0cnVjdG9ycyB9ID0gbWV0YTtcblxuICBtZXRhLnN0YXRlID0gRGVzdHJveWluZ1N0YXRlLkRlc3Ryb3lpbmc7XG5cbiAgaXRlcmF0ZShjaGlsZHJlbiwgZGVzdHJveSk7XG4gIGl0ZXJhdGUoZWFnZXJEZXN0cnVjdG9ycywgKGRlc3RydWN0b3IpID0+IGRlc3RydWN0b3IoZGVzdHJveWFibGUpKTtcbiAgaXRlcmF0ZShkZXN0cnVjdG9ycywgKGRlc3RydWN0b3IpID0+IHNjaGVkdWxlRGVzdHJveShkZXN0cm95YWJsZSwgZGVzdHJ1Y3RvcikpO1xuXG4gIHNjaGVkdWxlRGVzdHJveWVkKCgpID0+IHtcbiAgICBpdGVyYXRlKHBhcmVudHMsIChwYXJlbnQpID0+IHJlbW92ZUNoaWxkRnJvbVBhcmVudChkZXN0cm95YWJsZSwgcGFyZW50KSk7XG5cbiAgICBtZXRhLnN0YXRlID0gRGVzdHJveWluZ1N0YXRlLkRlc3Ryb3llZDtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZUNoaWxkRnJvbVBhcmVudChjaGlsZDogRGVzdHJveWFibGUsIHBhcmVudDogRGVzdHJveWFibGUpIHtcbiAgbGV0IHBhcmVudE1ldGEgPSBnZXREZXN0cm95YWJsZU1ldGEocGFyZW50KTtcblxuICBpZiAocGFyZW50TWV0YS5zdGF0ZSA9PT0gRGVzdHJveWluZ1N0YXRlLkxpdmUpIHtcbiAgICBwYXJlbnRNZXRhLmNoaWxkcmVuID0gcmVtb3ZlKFxuICAgICAgcGFyZW50TWV0YS5jaGlsZHJlbixcbiAgICAgIGNoaWxkLFxuICAgICAgREVCVUcgJiZcbiAgICAgICAgXCJhdHRlbXB0ZWQgdG8gcmVtb3ZlIGNoaWxkIGZyb20gcGFyZW50LCBidXQgdGhlIHBhcmVudCdzIGNoaWxkcmVuIGRpZCBub3QgY29udGFpbiB0aGUgY2hpbGQuIFRoaXMgaXMgbGlrZWx5IGEgYnVnIHdpdGggZGVzdHJ1Y3RvcnMuXCJcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZXN0cm95Q2hpbGRyZW4oZGVzdHJveWFibGU6IERlc3Ryb3lhYmxlKSB7XG4gIGxldCB7IGNoaWxkcmVuIH0gPSBnZXREZXN0cm95YWJsZU1ldGEoZGVzdHJveWFibGUpO1xuXG4gIGl0ZXJhdGUoY2hpbGRyZW4sIGRlc3Ryb3kpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEZXN0cm95aW5nKGRlc3Ryb3lhYmxlOiBEZXN0cm95YWJsZSkge1xuICBsZXQgbWV0YSA9IERFU1RST1lBQkxFX01FVEEuZ2V0KGRlc3Ryb3lhYmxlKTtcblxuICByZXR1cm4gbWV0YSA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiBtZXRhLnN0YXRlID49IERlc3Ryb3lpbmdTdGF0ZS5EZXN0cm95aW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEZXN0cm95ZWQoZGVzdHJveWFibGU6IERlc3Ryb3lhYmxlKSB7XG4gIGxldCBtZXRhID0gREVTVFJPWUFCTEVfTUVUQS5nZXQoZGVzdHJveWFibGUpO1xuXG4gIHJldHVybiBtZXRhID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IG1ldGEuc3RhdGUgPj0gRGVzdHJveWluZ1N0YXRlLkRlc3Ryb3llZDtcbn1cblxuLy8vLy8vLy8vLy8vXG5cbmV4cG9ydCBsZXQgZW5hYmxlRGVzdHJveWFibGVUcmFja2luZzogdW5kZWZpbmVkIHwgKCgpID0+IHZvaWQpO1xuZXhwb3J0IGxldCBhc3NlcnREZXN0cm95YWJsZXNEZXN0cm95ZWQ6IHVuZGVmaW5lZCB8ICgoKSA9PiB2b2lkKTtcblxuaWYgKERFQlVHKSB7XG4gIGxldCBpc1Rlc3RpbmcgPSBmYWxzZTtcblxuICBlbmFibGVEZXN0cm95YWJsZVRyYWNraW5nID0gKCkgPT4ge1xuICAgIGlmIChpc1Rlc3RpbmcpIHtcbiAgICAgIC8vIFJlc2V0IGRlc3Ryb3lhYmxlIG1ldGEganVzdCBpbiBjYXNlLCBiZWZvcmUgdGhyb3dpbmcgdGhlIGVycm9yXG4gICAgICBERVNUUk9ZQUJMRV9NRVRBID0gbmV3IFdlYWtNYXAoKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0F0dGVtcHRlZCB0byBzdGFydCBkZXN0cm95YWJsZSB0ZXN0aW5nLCBidXQgeW91IGRpZCBub3QgZW5kIHRoZSBwcmV2aW91cyBkZXN0cm95YWJsZSB0ZXN0LiBEaWQgeW91IGZvcmdldCB0byBjYWxsIGBhc3NlcnREZXN0cm95YWJsZXNEZXN0cm95ZWQoKWAnXG4gICAgICApO1xuICAgIH1cblxuICAgIGlzVGVzdGluZyA9IHRydWU7XG4gICAgREVTVFJPWUFCTEVfTUVUQSA9IG5ldyBNYXAoKTtcbiAgfTtcblxuICBhc3NlcnREZXN0cm95YWJsZXNEZXN0cm95ZWQgPSAoKSA9PiB7XG4gICAgaWYgKCFpc1Rlc3RpbmcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0F0dGVtcHRlZCB0byBhc3NlcnQgZGVzdHJveWFibGVzIGRlc3Ryb3llZCwgYnV0IHlvdSBkaWQgbm90IHN0YXJ0IGEgZGVzdHJveWFibGUgdGVzdC4gRGlkIHlvdSBmb3JnZXQgdG8gY2FsbCBgZW5hYmxlRGVzdHJveWFibGVUcmFja2luZygpYCdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaXNUZXN0aW5nID0gZmFsc2U7XG5cbiAgICBsZXQgbWFwID0gREVTVFJPWUFCTEVfTUVUQSBhcyBNYXA8RGVzdHJveWFibGUsIERlc3Ryb3lhYmxlTWV0YTxEZXN0cm95YWJsZT4+O1xuICAgIERFU1RST1lBQkxFX01FVEEgPSBuZXcgV2Vha01hcCgpO1xuXG4gICAgbGV0IHVuZGVzdHJveWVkOiBvYmplY3RbXSA9IFtdO1xuXG4gICAgbWFwLmZvckVhY2goKG1ldGEpID0+IHtcbiAgICAgIGlmIChtZXRhLnN0YXRlICE9PSBEZXN0cm95aW5nU3RhdGUuRGVzdHJveWVkKSB7XG4gICAgICAgIHVuZGVzdHJveWVkLnB1c2gobWV0YS5zb3VyY2UhKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICh1bmRlc3Ryb3llZC5sZW5ndGggPiAwKSB7XG4gICAgICBsZXQgb2JqZWN0c1RvU3RyaW5nID0gdW5kZXN0cm95ZWQubWFwKGRlYnVnVG9TdHJpbmchKS5qb2luKCdcXG4gICAgJyk7XG4gICAgICBsZXQgZXJyb3IgPSBuZXcgRXJyb3IoXG4gICAgICAgIGBTb21lIGRlc3Ryb3lhYmxlcyB3ZXJlIG5vdCBkZXN0cm95ZWQgZHVyaW5nIHRoaXMgdGVzdDpcXG4gICAgJHtvYmplY3RzVG9TdHJpbmd9YFxuICAgICAgKSBhcyBVbmRlc3Ryb3llZERlc3Ryb3lhYmxlc0Vycm9yO1xuXG4gICAgICBlcnJvci5kZXN0cm95YWJsZXMgPSB1bmRlc3Ryb3llZDtcblxuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9O1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ== | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL2Rlc3Ryb3lhYmxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUVBOztBQUNBOztBQXVCQSxJQUFJLGdCQUFnQixHQUVxQyxJQUZ6RCxPQUV5RCxFQUZ6RDs7QUFJQSxTQUFBLElBQUEsQ0FBQSxVQUFBLEVBQUEsT0FBQSxFQUFvRTtBQUNsRSxNQUFJLFVBQVUsS0FBZCxJQUFBLEVBQXlCO0FBQ3ZCLFdBQUEsT0FBQTtBQURGLEdBQUEsTUFFTyxJQUFJLEtBQUssQ0FBTCxPQUFBLENBQUosVUFBSSxDQUFKLEVBQStCO0FBQ3BDLElBQUEsVUFBVSxDQUFWLElBQUEsQ0FBQSxPQUFBO0FBQ0EsV0FBQSxVQUFBO0FBRkssR0FBQSxNQUdBO0FBQ0wsV0FBTyxDQUFBLFVBQUEsRUFBUCxPQUFPLENBQVA7QUFDRDtBQUNGOztBQUVELFNBQUEsT0FBQSxDQUFBLFVBQUEsRUFBQSxFQUFBLEVBQWtGO0FBQ2hGLE1BQUksS0FBSyxDQUFMLE9BQUEsQ0FBSixVQUFJLENBQUosRUFBK0I7QUFDN0IsU0FBSyxJQUFJLENBQUMsR0FBVixDQUFBLEVBQWdCLENBQUMsR0FBRyxVQUFVLENBQTlCLE1BQUEsRUFBdUMsQ0FBdkMsRUFBQSxFQUE0QztBQUMxQyxNQUFBLEVBQUUsQ0FBQyxVQUFVLENBQWIsQ0FBYSxDQUFYLENBQUY7QUFDRDtBQUhILEdBQUEsTUFJTyxJQUFJLFVBQVUsS0FBZCxJQUFBLEVBQXlCO0FBQzlCLElBQUEsRUFBRSxDQUFGLFVBQUUsQ0FBRjtBQUNEO0FBQ0Y7O0FBRUQsU0FBQSxNQUFBLENBQUEsVUFBQSxFQUFBLElBQUEsRUFBQSxPQUFBLEVBQTRGO0FBQzFGLE1BQUEsVUFBQSxFQUFXO0FBQ1QsUUFBSSxnQkFBZ0IsR0FBRyxVQUFVLEtBQWpDLElBQUE7QUFDQSxRQUFJLHNCQUFzQixHQUFHLEtBQUssQ0FBTCxPQUFBLENBQUEsVUFBQSxLQUE2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LEtBQUssQ0FBTCxZQUFBLEdBQUEsV0FBQTtBQUVBLFlBQUEsS0FBQTtBQUNEO0FBN0JILEdBQUE7QUErQkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBERUJVRyB9IGZyb20gJ0BnbGltbWVyL2Vudic7XG5pbXBvcnQgeyBEZXN0cm95YWJsZSwgRGVzdHJ1Y3RvciB9IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZGVidWdUb1N0cmluZyB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuaW1wb3J0IHsgc2NoZWR1bGVEZXN0cm95LCBzY2hlZHVsZURlc3Ryb3llZCB9IGZyb20gJ0BnbGltbWVyL2dsb2JhbC1jb250ZXh0JztcblxuY29uc3QgZW51bSBEZXN0cm95aW5nU3RhdGUge1xuICBMaXZlID0gMCxcbiAgRGVzdHJveWluZyA9IDEsXG4gIERlc3Ryb3llZCA9IDIsXG59XG5cbnR5cGUgT25lT3JNYW55PFQ+ID0gbnVsbCB8IFQgfCBUW107XG5cbmludGVyZmFjZSBEZXN0cm95YWJsZU1ldGE8VCBleHRlbmRzIERlc3Ryb3lhYmxlPiB7XG4gIHNvdXJjZT86IFQ7XG4gIHBhcmVudHM6IE9uZU9yTWFueTxEZXN0cm95YWJsZT47XG4gIGNoaWxkcmVuOiBPbmVPck1hbnk8RGVzdHJveWFibGU+O1xuICBlYWdlckRlc3RydWN0b3JzOiBPbmVPck1hbnk8RGVzdHJ1Y3RvcjxUPj47XG4gIGRlc3RydWN0b3JzOiBPbmVPck1hbnk8RGVzdHJ1Y3RvcjxUPj47XG4gIHN0YXRlOiBEZXN0cm95aW5nU3RhdGU7XG59XG5cbmludGVyZmFjZSBVbmRlc3Ryb3llZERlc3Ryb3lhYmxlc0Vycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBkZXN0cm95YWJsZXM6IG9iamVjdFtdO1xufVxuXG5sZXQgREVTVFJPWUFCTEVfTUVUQTpcbiAgfCBNYXA8RGVzdHJveWFibGUsIERlc3Ryb3lhYmxlTWV0YTxEZXN0cm95YWJsZT4+XG4gIHwgV2Vha01hcDxEZXN0cm95YWJsZSwgRGVzdHJveWFibGVNZXRhPERlc3Ryb3lhYmxlPj4gPSBuZXcgV2Vha01hcCgpO1xuXG5mdW5jdGlvbiBwdXNoPFQgZXh0ZW5kcyBvYmplY3Q+KGNvbGxlY3Rpb246IE9uZU9yTWFueTxUPiwgbmV3SXRlbTogVCk6IE9uZU9yTWFueTxUPiB7XG4gIGlmIChjb2xsZWN0aW9uID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG5ld0l0ZW07XG4gIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShjb2xsZWN0aW9uKSkge1xuICAgIGNvbGxlY3Rpb24ucHVzaChuZXdJdGVtKTtcbiAgICByZXR1cm4gY29sbGVjdGlvbjtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gW2NvbGxlY3Rpb24sIG5ld0l0ZW1dO1xuICB9XG59XG5cbmZ1bmN0aW9uIGl0ZXJhdGU8VCBleHRlbmRzIG9iamVjdD4oY29sbGVjdGlvbjogT25lT3JNYW55PFQ+LCBmbjogKGl0ZW06IFQpID0+IHZvaWQpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoY29sbGVjdGlvbikpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbGxlY3Rpb24ubGVuZ3RoOyBpKyspIHtcbiAgICAgIGZuKGNvbGxlY3Rpb25baV0pO1xuICAgIH1cbiAgfSBlbHNlIGlmIChjb2xsZWN0aW9uICE9PSBudWxsKSB7XG4gICAgZm4oY29sbGVjdGlvbik7XG4gIH1cbn1cblxuZnVuY3Rpb24gcmVtb3ZlPFQgZXh0ZW5kcyBvYmplY3Q+KGNvbGxlY3Rpb246IE9uZU9yTWFueTxUPiwgaXRlbTogVCwgbWVzc2FnZTogc3RyaW5nIHwgZmFsc2UpIHtcbiAgaWYgKERFQlVHKSB7XG4gICAgbGV0IGNvbGxlY3Rpb25Jc0l0ZW0gPSBjb2xsZWN0aW9uID09PSBpdGVtO1xuICAgIGxldCBjb2xsZWN0aW9uQ29udGFpbnNJdGVtID0gQXJyYXkuaXNBcnJheShjb2xsZWN0aW9uKSAmJiBjb2xsZWN0aW9uLmluZGV4T2YoaXRlbSkgIT09IC0xO1xuXG4gICAgaWYgKCFjb2xsZWN0aW9uSXNJdGVtICYmICFjb2xsZWN0aW9uQ29udGFpbnNJdGVtKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoU3RyaW5nKG1lc3NhZ2UpKTtcbiAgICB9XG4gIH1cblxuICBpZiAoQXJyYXkuaXNBcnJheShjb2xsZWN0aW9uKSAmJiBjb2xsZWN0aW9uLmxlbmd0aCA+IDEpIHtcbiAgICBsZXQgaW5kZXggPSBjb2xsZWN0aW9uIS5pbmRleE9mKGl0ZW0pO1xuICAgIGNvbGxlY3Rpb24hLnNwbGljZShpbmRleCwgMSk7XG4gICAgcmV0dXJuIGNvbGxlY3Rpb247XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0RGVzdHJveWFibGVNZXRhPFQgZXh0ZW5kcyBEZXN0cm95YWJsZT4oZGVzdHJveWFibGU6IFQpOiBEZXN0cm95YWJsZU1ldGE8VD4ge1xuICBsZXQgbWV0YSA9IERFU1RST1lBQkxFX01FVEEuZ2V0KGRlc3Ryb3lhYmxlKTtcblxuICBpZiAobWV0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgbWV0YSA9IHtcbiAgICAgIHBhcmVudHM6IG51bGwsXG4gICAgICBjaGlsZHJlbjogbnVsbCxcbiAgICAgIGVhZ2VyRGVzdHJ1Y3RvcnM6IG51bGwsXG4gICAgICBkZXN0cnVjdG9yczogbnVsbCxcbiAgICAgIHN0YXRlOiBEZXN0cm95aW5nU3RhdGUuTGl2ZSxcbiAgICB9O1xuXG4gICAgaWYgKERFQlVHKSB7XG4gICAgICBtZXRhLnNvdXJjZSA9IGRlc3Ryb3lhYmxlIGFzIG9iamVjdDtcbiAgICB9XG5cbiAgICBERVNUUk9ZQUJMRV9NRVRBLnNldChkZXN0cm95YWJsZSwgbWV0YSk7XG4gIH1cblxuICByZXR1cm4gKG1ldGEgYXMgdW5rbm93bikgYXMgRGVzdHJveWFibGVNZXRhPFQ+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzb2NpYXRlRGVzdHJveWFibGVDaGlsZDxUIGV4dGVuZHMgRGVzdHJveWFibGU+KHBhcmVudDogRGVzdHJveWFibGUsIGNoaWxkOiBUKTogVCB7XG4gIGlmIChERUJVRyAmJiBpc0Rlc3Ryb3lpbmcocGFyZW50KSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdBdHRlbXB0ZWQgdG8gYXNzb2NpYXRlIGEgZGVzdHJveWFibGUgY2hpbGQgd2l0aCBhbiBvYmplY3QgdGhhdCBpcyBhbHJlYWR5IGRlc3Ryb3lpbmcgb3IgZGVzdHJveWVkJ1xuICAgICk7XG4gIH1cblxuICBsZXQgcGFyZW50TWV0YSA9IGdldERlc3Ryb3lhYmxlTWV0YShwYXJlbnQpO1xuICBsZXQgY2hpbGRNZXRhID0gZ2V0RGVzdHJveWFibGVNZXRhKGNoaWxkKTtcblxuICBwYXJlbnRNZXRhLmNoaWxkcmVuID0gcHVzaChwYXJlbnRNZXRhLmNoaWxkcmVuLCBjaGlsZCk7XG4gIGNoaWxkTWV0YS5wYXJlbnRzID0gcHVzaChjaGlsZE1ldGEucGFyZW50cywgcGFyZW50KTtcblxuICByZXR1cm4gY2hpbGQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckRlc3RydWN0b3I8VCBleHRlbmRzIERlc3Ryb3lhYmxlPihcbiAgZGVzdHJveWFibGU6IFQsXG4gIGRlc3RydWN0b3I6IERlc3RydWN0b3I8VD4sXG4gIGVhZ2VyID0gZmFsc2Vcbik6IERlc3RydWN0b3I8VD4ge1xuICBpZiAoREVCVUcgJiYgaXNEZXN0cm95aW5nKGRlc3Ryb3lhYmxlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdBdHRlbXB0ZWQgdG8gcmVnaXN0ZXIgYSBkZXN0cnVjdG9yIHdpdGggYW4gb2JqZWN0IHRoYXQgaXMgYWxyZWFkeSBkZXN0cm95aW5nIG9yIGRlc3Ryb3llZCdcbiAgICApO1xuICB9XG5cbiAgbGV0IG1ldGEgPSBnZXREZXN0cm95YWJsZU1ldGEoZGVzdHJveWFibGUpO1xuXG4gIGxldCBkZXN0cnVjdG9yc0tleTogJ2VhZ2VyRGVzdHJ1Y3RvcnMnIHwgJ2Rlc3RydWN0b3JzJyA9XG4gICAgZWFnZXIgPT09IHRydWUgPyAnZWFnZXJEZXN0cnVjdG9ycycgOiAnZGVzdHJ1Y3RvcnMnO1xuXG4gIG1ldGFbZGVzdHJ1Y3RvcnNLZXldID0gcHVzaChtZXRhW2Rlc3RydWN0b3JzS2V5XSwgZGVzdHJ1Y3Rvcik7XG5cbiAgcmV0dXJuIGRlc3RydWN0b3I7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bnJlZ2lzdGVyRGVzdHJ1Y3RvcjxUIGV4dGVuZHMgRGVzdHJveWFibGU+KFxuICBkZXN0cm95YWJsZTogVCxcbiAgZGVzdHJ1Y3RvcjogRGVzdHJ1Y3RvcjxUPixcbiAgZWFnZXIgPSBmYWxzZVxuKTogdm9pZCB7XG4gIGlmIChERUJVRyAmJiBpc0Rlc3Ryb3lpbmcoZGVzdHJveWFibGUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0F0dGVtcHRlZCB0byB1bnJlZ2lzdGVyIGEgZGVzdHJ1Y3RvciB3aXRoIGFuIG9iamVjdCB0aGF0IGlzIGFscmVhZHkgZGVzdHJveWluZyBvciBkZXN0cm95ZWQnXG4gICAgKTtcbiAgfVxuXG4gIGxldCBtZXRhID0gZ2V0RGVzdHJveWFibGVNZXRhKGRlc3Ryb3lhYmxlKTtcblxuICBsZXQgZGVzdHJ1Y3RvcnNLZXk6ICdlYWdlckRlc3RydWN0b3JzJyB8ICdkZXN0cnVjdG9ycycgPVxuICAgIGVhZ2VyID09PSB0cnVlID8gJ2VhZ2VyRGVzdHJ1Y3RvcnMnIDogJ2Rlc3RydWN0b3JzJztcblxuICBtZXRhW2Rlc3RydWN0b3JzS2V5XSA9IHJlbW92ZShcbiAgICBtZXRhW2Rlc3RydWN0b3JzS2V5XSxcbiAgICBkZXN0cnVjdG9yLFxuICAgIERFQlVHICYmICdhdHRlbXB0ZWQgdG8gcmVtb3ZlIGEgZGVzdHJ1Y3RvciB0aGF0IHdhcyBub3QgcmVnaXN0ZXJlZCB3aXRoIHRoZSBkZXN0cm95YWJsZSdcbiAgKTtcbn1cblxuLy8vLy8vLy8vLy8vXG5cbmV4cG9ydCBmdW5jdGlvbiBkZXN0cm95KGRlc3Ryb3lhYmxlOiBEZXN0cm95YWJsZSkge1xuICBsZXQgbWV0YSA9IGdldERlc3Ryb3lhYmxlTWV0YShkZXN0cm95YWJsZSk7XG5cbiAgaWYgKG1ldGEuc3RhdGUgPj0gRGVzdHJveWluZ1N0YXRlLkRlc3Ryb3lpbmcpIHJldHVybjtcblxuICBsZXQgeyBwYXJlbnRzLCBjaGlsZHJlbiwgZWFnZXJEZXN0cnVjdG9ycywgZGVzdHJ1Y3RvcnMgfSA9IG1ldGE7XG5cbiAgbWV0YS5zdGF0ZSA9IERlc3Ryb3lpbmdTdGF0ZS5EZXN0cm95aW5nO1xuXG4gIGl0ZXJhdGUoY2hpbGRyZW4sIGRlc3Ryb3kpO1xuICBpdGVyYXRlKGVhZ2VyRGVzdHJ1Y3RvcnMsIChkZXN0cnVjdG9yKSA9PiBkZXN0cnVjdG9yKGRlc3Ryb3lhYmxlKSk7XG4gIGl0ZXJhdGUoZGVzdHJ1Y3RvcnMsIChkZXN0cnVjdG9yKSA9PiBzY2hlZHVsZURlc3Ryb3koZGVzdHJveWFibGUsIGRlc3RydWN0b3IpKTtcblxuICBzY2hlZHVsZURlc3Ryb3llZCgoKSA9PiB7XG4gICAgaXRlcmF0ZShwYXJlbnRzLCAocGFyZW50KSA9PiByZW1vdmVDaGlsZEZyb21QYXJlbnQoZGVzdHJveWFibGUsIHBhcmVudCkpO1xuXG4gICAgbWV0YS5zdGF0ZSA9IERlc3Ryb3lpbmdTdGF0ZS5EZXN0cm95ZWQ7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiByZW1vdmVDaGlsZEZyb21QYXJlbnQoY2hpbGQ6IERlc3Ryb3lhYmxlLCBwYXJlbnQ6IERlc3Ryb3lhYmxlKSB7XG4gIGxldCBwYXJlbnRNZXRhID0gZ2V0RGVzdHJveWFibGVNZXRhKHBhcmVudCk7XG5cbiAgaWYgKHBhcmVudE1ldGEuc3RhdGUgPT09IERlc3Ryb3lpbmdTdGF0ZS5MaXZlKSB7XG4gICAgcGFyZW50TWV0YS5jaGlsZHJlbiA9IHJlbW92ZShcbiAgICAgIHBhcmVudE1ldGEuY2hpbGRyZW4sXG4gICAgICBjaGlsZCxcbiAgICAgIERFQlVHICYmXG4gICAgICAgIFwiYXR0ZW1wdGVkIHRvIHJlbW92ZSBjaGlsZCBmcm9tIHBhcmVudCwgYnV0IHRoZSBwYXJlbnQncyBjaGlsZHJlbiBkaWQgbm90IGNvbnRhaW4gdGhlIGNoaWxkLiBUaGlzIGlzIGxpa2VseSBhIGJ1ZyB3aXRoIGRlc3RydWN0b3JzLlwiXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVzdHJveUNoaWxkcmVuKGRlc3Ryb3lhYmxlOiBEZXN0cm95YWJsZSkge1xuICBsZXQgeyBjaGlsZHJlbiB9ID0gZ2V0RGVzdHJveWFibGVNZXRhKGRlc3Ryb3lhYmxlKTtcblxuICBpdGVyYXRlKGNoaWxkcmVuLCBkZXN0cm95KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9oYXNEZXN0cm95YWJsZUNoaWxkcmVuKGRlc3Ryb3lhYmxlOiBEZXN0cm95YWJsZSkge1xuICBsZXQgbWV0YSA9IERFU1RST1lBQkxFX01FVEEuZ2V0KGRlc3Ryb3lhYmxlKTtcblxuICByZXR1cm4gbWV0YSA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiBtZXRhLmNoaWxkcmVuICE9PSBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEZXN0cm95aW5nKGRlc3Ryb3lhYmxlOiBEZXN0cm95YWJsZSkge1xuICBsZXQgbWV0YSA9IERFU1RST1lBQkxFX01FVEEuZ2V0KGRlc3Ryb3lhYmxlKTtcblxuICByZXR1cm4gbWV0YSA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiBtZXRhLnN0YXRlID49IERlc3Ryb3lpbmdTdGF0ZS5EZXN0cm95aW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEZXN0cm95ZWQoZGVzdHJveWFibGU6IERlc3Ryb3lhYmxlKSB7XG4gIGxldCBtZXRhID0gREVTVFJPWUFCTEVfTUVUQS5nZXQoZGVzdHJveWFibGUpO1xuXG4gIHJldHVybiBtZXRhID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IG1ldGEuc3RhdGUgPj0gRGVzdHJveWluZ1N0YXRlLkRlc3Ryb3llZDtcbn1cblxuLy8vLy8vLy8vLy8vXG5cbmV4cG9ydCBsZXQgZW5hYmxlRGVzdHJveWFibGVUcmFja2luZzogdW5kZWZpbmVkIHwgKCgpID0+IHZvaWQpO1xuZXhwb3J0IGxldCBhc3NlcnREZXN0cm95YWJsZXNEZXN0cm95ZWQ6IHVuZGVmaW5lZCB8ICgoKSA9PiB2b2lkKTtcblxuaWYgKERFQlVHKSB7XG4gIGxldCBpc1Rlc3RpbmcgPSBmYWxzZTtcblxuICBlbmFibGVEZXN0cm95YWJsZVRyYWNraW5nID0gKCkgPT4ge1xuICAgIGlmIChpc1Rlc3RpbmcpIHtcbiAgICAgIC8vIFJlc2V0IGRlc3Ryb3lhYmxlIG1ldGEganVzdCBpbiBjYXNlLCBiZWZvcmUgdGhyb3dpbmcgdGhlIGVycm9yXG4gICAgICBERVNUUk9ZQUJMRV9NRVRBID0gbmV3IFdlYWtNYXAoKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0F0dGVtcHRlZCB0byBzdGFydCBkZXN0cm95YWJsZSB0ZXN0aW5nLCBidXQgeW91IGRpZCBub3QgZW5kIHRoZSBwcmV2aW91cyBkZXN0cm95YWJsZSB0ZXN0LiBEaWQgeW91IGZvcmdldCB0byBjYWxsIGBhc3NlcnREZXN0cm95YWJsZXNEZXN0cm95ZWQoKWAnXG4gICAgICApO1xuICAgIH1cblxuICAgIGlzVGVzdGluZyA9IHRydWU7XG4gICAgREVTVFJPWUFCTEVfTUVUQSA9IG5ldyBNYXAoKTtcbiAgfTtcblxuICBhc3NlcnREZXN0cm95YWJsZXNEZXN0cm95ZWQgPSAoKSA9PiB7XG4gICAgaWYgKCFpc1Rlc3RpbmcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0F0dGVtcHRlZCB0byBhc3NlcnQgZGVzdHJveWFibGVzIGRlc3Ryb3llZCwgYnV0IHlvdSBkaWQgbm90IHN0YXJ0IGEgZGVzdHJveWFibGUgdGVzdC4gRGlkIHlvdSBmb3JnZXQgdG8gY2FsbCBgZW5hYmxlRGVzdHJveWFibGVUcmFja2luZygpYCdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaXNUZXN0aW5nID0gZmFsc2U7XG5cbiAgICBsZXQgbWFwID0gREVTVFJPWUFCTEVfTUVUQSBhcyBNYXA8RGVzdHJveWFibGUsIERlc3Ryb3lhYmxlTWV0YTxEZXN0cm95YWJsZT4+O1xuICAgIERFU1RST1lBQkxFX01FVEEgPSBuZXcgV2Vha01hcCgpO1xuXG4gICAgbGV0IHVuZGVzdHJveWVkOiBvYmplY3RbXSA9IFtdO1xuXG4gICAgbWFwLmZvckVhY2goKG1ldGEpID0+IHtcbiAgICAgIGlmIChtZXRhLnN0YXRlICE9PSBEZXN0cm95aW5nU3RhdGUuRGVzdHJveWVkKSB7XG4gICAgICAgIHVuZGVzdHJveWVkLnB1c2gobWV0YS5zb3VyY2UhKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICh1bmRlc3Ryb3llZC5sZW5ndGggPiAwKSB7XG4gICAgICBsZXQgb2JqZWN0c1RvU3RyaW5nID0gdW5kZXN0cm95ZWQubWFwKGRlYnVnVG9TdHJpbmchKS5qb2luKCdcXG4gICAgJyk7XG4gICAgICBsZXQgZXJyb3IgPSBuZXcgRXJyb3IoXG4gICAgICAgIGBTb21lIGRlc3Ryb3lhYmxlcyB3ZXJlIG5vdCBkZXN0cm95ZWQgZHVyaW5nIHRoaXMgdGVzdDpcXG4gICAgJHtvYmplY3RzVG9TdHJpbmd9YFxuICAgICAgKSBhcyBVbmRlc3Ryb3llZERlc3Ryb3lhYmxlc0Vycm9yO1xuXG4gICAgICBlcnJvci5kZXN0cm95YWJsZXMgPSB1bmRlc3Ryb3llZDtcblxuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9O1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ== |
@@ -142,2 +142,6 @@ import { DEBUG } from '@glimmer/env'; | ||
} | ||
export function _hasDestroyableChildren(destroyable) { | ||
let meta = DESTROYABLE_META.get(destroyable); | ||
return meta === undefined ? false : meta.children !== null; | ||
} | ||
export function isDestroying(destroyable) { | ||
@@ -198,2 +202,2 @@ let meta = DESTROYABLE_META.get(destroyable); | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL2Rlc3Ryb3lhYmxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQVMsS0FBVCxRQUFzQixjQUF0QjtBQUVBLFNBQVMsYUFBVCxRQUE4QixlQUE5QjtBQUNBLFNBQVMsZUFBVCxFQUEwQixpQkFBMUIsUUFBbUQseUJBQW5EO0FBdUJBLElBQUksZ0JBQWdCLEdBRXFDLElBQUksT0FBSixFQUZ6RDs7QUFJQSxTQUFTLElBQVQsQ0FBZ0MsVUFBaEMsRUFBMEQsT0FBMUQsRUFBb0U7QUFDbEUsTUFBSSxVQUFVLEtBQUssSUFBbkIsRUFBeUI7QUFDdkIsV0FBTyxPQUFQO0FBQ0QsR0FGRCxNQUVPLElBQUksS0FBSyxDQUFDLE9BQU4sQ0FBYyxVQUFkLENBQUosRUFBK0I7QUFDcEMsSUFBQSxVQUFVLENBQUMsSUFBWCxDQUFnQixPQUFoQjtBQUNBLFdBQU8sVUFBUDtBQUNELEdBSE0sTUFHQTtBQUNMLFdBQU8sQ0FBQyxVQUFELEVBQWEsT0FBYixDQUFQO0FBQ0Q7QUFDRjs7QUFFRCxTQUFTLE9BQVQsQ0FBbUMsVUFBbkMsRUFBNkQsRUFBN0QsRUFBa0Y7QUFDaEYsTUFBSSxLQUFLLENBQUMsT0FBTixDQUFjLFVBQWQsQ0FBSixFQUErQjtBQUM3QixTQUFLLElBQUksQ0FBQyxHQUFHLENBQWIsRUFBZ0IsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUEvQixFQUF1QyxDQUFDLEVBQXhDLEVBQTRDO0FBQzFDLE1BQUEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFELENBQVgsQ0FBRjtBQUNEO0FBQ0YsR0FKRCxNQUlPLElBQUksVUFBVSxLQUFLLElBQW5CLEVBQXlCO0FBQzlCLElBQUEsRUFBRSxDQUFDLFVBQUQsQ0FBRjtBQUNEO0FBQ0Y7O0FBRUQsU0FBUyxNQUFULENBQWtDLFVBQWxDLEVBQTRELElBQTVELEVBQXFFLE9BQXJFLEVBQTRGO0FBQzFGLE1BQUksS0FBSixFQUFXO0FBQ1QsUUFBSSxn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RDs7QUFFRCxJQUFBLFNBQVMsR0FBRyxJQUFaO0FBQ0EsSUFBQSxnQkFBZ0IsR0FBRyxJQUFJLEdBQUosRUFBbkI7QUFDRCxHQVhEOztBQWFBLEVBQUEsMkJBQTJCLEdBQUcsTUFBSztBQUNqQyxRQUFJLENBQUMsU0FBTCxFQUFnQjtBQUNkLFlBQU0sSUFBSSxLQUFKLENBQ0osNElBREksQ0FBTjtBQUdEOztBQUVELElBQUEsU0FBUyxHQUFHLEtBQVo7QUFFQSxRQUFJLEdBQUcsR0FBRyxnQkFBVjtBQUNBLElBQUEsZ0JBQWdCLEdBQUcsSUFBSSxPQUFKLEVBQW5CO0FBRUEsUUFBSSxXQUFXLEdBQWEsRUFBNUI7QUFFQSxJQUFBLEdBQUcsQ0FBQyxPQUFKLENBQWEsSUFBRCxJQUFTO0FBQ25CLFVBQUksSUFBSSxDQUFDLEtBQUwsS0FBVTtBQUFBO0FBQWQsUUFBOEM7QUFDNUMsVUFBQSxXQUFXLENBQUMsSUFBWixDQUFpQixJQUFJLENBQUMsTUFBdEI7QUFDRDtBQUNGLEtBSkQ7O0FBTUEsUUFBSSxXQUFXLENBQUMsTUFBWixHQUFxQixDQUF6QixFQUE0QjtBQUMxQixVQUFJLGVBQWUsR0FBRyxXQUFXLENBQUMsR0FBWixDQUFnQixhQUFoQixFQUFnQyxJQUFoQyxDQUFxQyxRQUFyQyxDQUF0QjtBQUNBLFVBQUksS0FBSyxHQUFHLElBQUksS0FBSixDQUNWLCtEQUErRCxlQUFlLEVBRHBFLENBQVo7QUFJQSxNQUFBLEtBQUssQ0FBQyxZQUFOLEdBQXFCLFdBQXJCO0FBRUEsWUFBTSxLQUFOO0FBQ0Q7QUFDRixHQTlCRDtBQStCRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvZW52JztcbmltcG9ydCB7IERlc3Ryb3lhYmxlLCBEZXN0cnVjdG9yIH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBkZWJ1Z1RvU3RyaW5nIH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5pbXBvcnQgeyBzY2hlZHVsZURlc3Ryb3ksIHNjaGVkdWxlRGVzdHJveWVkIH0gZnJvbSAnQGdsaW1tZXIvZ2xvYmFsLWNvbnRleHQnO1xuXG5jb25zdCBlbnVtIERlc3Ryb3lpbmdTdGF0ZSB7XG4gIExpdmUgPSAwLFxuICBEZXN0cm95aW5nID0gMSxcbiAgRGVzdHJveWVkID0gMixcbn1cblxudHlwZSBPbmVPck1hbnk8VD4gPSBudWxsIHwgVCB8IFRbXTtcblxuaW50ZXJmYWNlIERlc3Ryb3lhYmxlTWV0YTxUIGV4dGVuZHMgRGVzdHJveWFibGU+IHtcbiAgc291cmNlPzogVDtcbiAgcGFyZW50czogT25lT3JNYW55PERlc3Ryb3lhYmxlPjtcbiAgY2hpbGRyZW46IE9uZU9yTWFueTxEZXN0cm95YWJsZT47XG4gIGVhZ2VyRGVzdHJ1Y3RvcnM6IE9uZU9yTWFueTxEZXN0cnVjdG9yPFQ+PjtcbiAgZGVzdHJ1Y3RvcnM6IE9uZU9yTWFueTxEZXN0cnVjdG9yPFQ+PjtcbiAgc3RhdGU6IERlc3Ryb3lpbmdTdGF0ZTtcbn1cblxuaW50ZXJmYWNlIFVuZGVzdHJveWVkRGVzdHJveWFibGVzRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGRlc3Ryb3lhYmxlczogb2JqZWN0W107XG59XG5cbmxldCBERVNUUk9ZQUJMRV9NRVRBOlxuICB8IE1hcDxEZXN0cm95YWJsZSwgRGVzdHJveWFibGVNZXRhPERlc3Ryb3lhYmxlPj5cbiAgfCBXZWFrTWFwPERlc3Ryb3lhYmxlLCBEZXN0cm95YWJsZU1ldGE8RGVzdHJveWFibGU+PiA9IG5ldyBXZWFrTWFwKCk7XG5cbmZ1bmN0aW9uIHB1c2g8VCBleHRlbmRzIG9iamVjdD4oY29sbGVjdGlvbjogT25lT3JNYW55PFQ+LCBuZXdJdGVtOiBUKTogT25lT3JNYW55PFQ+IHtcbiAgaWYgKGNvbGxlY3Rpb24gPT09IG51bGwpIHtcbiAgICByZXR1cm4gbmV3SXRlbTtcbiAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGNvbGxlY3Rpb24pKSB7XG4gICAgY29sbGVjdGlvbi5wdXNoKG5ld0l0ZW0pO1xuICAgIHJldHVybiBjb2xsZWN0aW9uO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBbY29sbGVjdGlvbiwgbmV3SXRlbV07XG4gIH1cbn1cblxuZnVuY3Rpb24gaXRlcmF0ZTxUIGV4dGVuZHMgb2JqZWN0Pihjb2xsZWN0aW9uOiBPbmVPck1hbnk8VD4sIGZuOiAoaXRlbTogVCkgPT4gdm9pZCkge1xuICBpZiAoQXJyYXkuaXNBcnJheShjb2xsZWN0aW9uKSkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29sbGVjdGlvbi5sZW5ndGg7IGkrKykge1xuICAgICAgZm4oY29sbGVjdGlvbltpXSk7XG4gICAgfVxuICB9IGVsc2UgaWYgKGNvbGxlY3Rpb24gIT09IG51bGwpIHtcbiAgICBmbihjb2xsZWN0aW9uKTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZW1vdmU8VCBleHRlbmRzIG9iamVjdD4oY29sbGVjdGlvbjogT25lT3JNYW55PFQ+LCBpdGVtOiBULCBtZXNzYWdlOiBzdHJpbmcgfCBmYWxzZSkge1xuICBpZiAoREVCVUcpIHtcbiAgICBsZXQgY29sbGVjdGlvbklzSXRlbSA9IGNvbGxlY3Rpb24gPT09IGl0ZW07XG4gICAgbGV0IGNvbGxlY3Rpb25Db250YWluc0l0ZW0gPSBBcnJheS5pc0FycmF5KGNvbGxlY3Rpb24pICYmIGNvbGxlY3Rpb24uaW5kZXhPZihpdGVtKSAhPT0gLTE7XG5cbiAgICBpZiAoIWNvbGxlY3Rpb25Jc0l0ZW0gJiYgIWNvbGxlY3Rpb25Db250YWluc0l0ZW0pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihTdHJpbmcobWVzc2FnZSkpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChBcnJheS5pc0FycmF5KGNvbGxlY3Rpb24pICYmIGNvbGxlY3Rpb24ubGVuZ3RoID4gMSkge1xuICAgIGxldCBpbmRleCA9IGNvbGxlY3Rpb24hLmluZGV4T2YoaXRlbSk7XG4gICAgY29sbGVjdGlvbiEuc3BsaWNlKGluZGV4LCAxKTtcbiAgICByZXR1cm4gY29sbGVjdGlvbjtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXREZXN0cm95YWJsZU1ldGE8VCBleHRlbmRzIERlc3Ryb3lhYmxlPihkZXN0cm95YWJsZTogVCk6IERlc3Ryb3lhYmxlTWV0YTxUPiB7XG4gIGxldCBtZXRhID0gREVTVFJPWUFCTEVfTUVUQS5nZXQoZGVzdHJveWFibGUpO1xuXG4gIGlmIChtZXRhID09PSB1bmRlZmluZWQpIHtcbiAgICBtZXRhID0ge1xuICAgICAgcGFyZW50czogbnVsbCxcbiAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgICAgZWFnZXJEZXN0cnVjdG9yczogbnVsbCxcbiAgICAgIGRlc3RydWN0b3JzOiBudWxsLFxuICAgICAgc3RhdGU6IERlc3Ryb3lpbmdTdGF0ZS5MaXZlLFxuICAgIH07XG5cbiAgICBpZiAoREVCVUcpIHtcbiAgICAgIG1ldGEuc291cmNlID0gZGVzdHJveWFibGUgYXMgb2JqZWN0O1xuICAgIH1cblxuICAgIERFU1RST1lBQkxFX01FVEEuc2V0KGRlc3Ryb3lhYmxlLCBtZXRhKTtcbiAgfVxuXG4gIHJldHVybiAobWV0YSBhcyB1bmtub3duKSBhcyBEZXN0cm95YWJsZU1ldGE8VD47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3NvY2lhdGVEZXN0cm95YWJsZUNoaWxkPFQgZXh0ZW5kcyBEZXN0cm95YWJsZT4ocGFyZW50OiBEZXN0cm95YWJsZSwgY2hpbGQ6IFQpOiBUIHtcbiAgaWYgKERFQlVHICYmIGlzRGVzdHJveWluZyhwYXJlbnQpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0F0dGVtcHRlZCB0byBhc3NvY2lhdGUgYSBkZXN0cm95YWJsZSBjaGlsZCB3aXRoIGFuIG9iamVjdCB0aGF0IGlzIGFscmVhZHkgZGVzdHJveWluZyBvciBkZXN0cm95ZWQnXG4gICAgKTtcbiAgfVxuXG4gIGxldCBwYXJlbnRNZXRhID0gZ2V0RGVzdHJveWFibGVNZXRhKHBhcmVudCk7XG4gIGxldCBjaGlsZE1ldGEgPSBnZXREZXN0cm95YWJsZU1ldGEoY2hpbGQpO1xuXG4gIHBhcmVudE1ldGEuY2hpbGRyZW4gPSBwdXNoKHBhcmVudE1ldGEuY2hpbGRyZW4sIGNoaWxkKTtcbiAgY2hpbGRNZXRhLnBhcmVudHMgPSBwdXNoKGNoaWxkTWV0YS5wYXJlbnRzLCBwYXJlbnQpO1xuXG4gIHJldHVybiBjaGlsZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyRGVzdHJ1Y3RvcjxUIGV4dGVuZHMgRGVzdHJveWFibGU+KFxuICBkZXN0cm95YWJsZTogVCxcbiAgZGVzdHJ1Y3RvcjogRGVzdHJ1Y3RvcjxUPixcbiAgZWFnZXIgPSBmYWxzZVxuKTogRGVzdHJ1Y3RvcjxUPiB7XG4gIGlmIChERUJVRyAmJiBpc0Rlc3Ryb3lpbmcoZGVzdHJveWFibGUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0F0dGVtcHRlZCB0byByZWdpc3RlciBhIGRlc3RydWN0b3Igd2l0aCBhbiBvYmplY3QgdGhhdCBpcyBhbHJlYWR5IGRlc3Ryb3lpbmcgb3IgZGVzdHJveWVkJ1xuICAgICk7XG4gIH1cblxuICBsZXQgbWV0YSA9IGdldERlc3Ryb3lhYmxlTWV0YShkZXN0cm95YWJsZSk7XG5cbiAgbGV0IGRlc3RydWN0b3JzS2V5OiAnZWFnZXJEZXN0cnVjdG9ycycgfCAnZGVzdHJ1Y3RvcnMnID1cbiAgICBlYWdlciA9PT0gdHJ1ZSA/ICdlYWdlckRlc3RydWN0b3JzJyA6ICdkZXN0cnVjdG9ycyc7XG5cbiAgbWV0YVtkZXN0cnVjdG9yc0tleV0gPSBwdXNoKG1ldGFbZGVzdHJ1Y3RvcnNLZXldLCBkZXN0cnVjdG9yKTtcblxuICByZXR1cm4gZGVzdHJ1Y3Rvcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVucmVnaXN0ZXJEZXN0cnVjdG9yPFQgZXh0ZW5kcyBEZXN0cm95YWJsZT4oXG4gIGRlc3Ryb3lhYmxlOiBULFxuICBkZXN0cnVjdG9yOiBEZXN0cnVjdG9yPFQ+LFxuICBlYWdlciA9IGZhbHNlXG4pOiB2b2lkIHtcbiAgaWYgKERFQlVHICYmIGlzRGVzdHJveWluZyhkZXN0cm95YWJsZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQXR0ZW1wdGVkIHRvIHVucmVnaXN0ZXIgYSBkZXN0cnVjdG9yIHdpdGggYW4gb2JqZWN0IHRoYXQgaXMgYWxyZWFkeSBkZXN0cm95aW5nIG9yIGRlc3Ryb3llZCdcbiAgICApO1xuICB9XG5cbiAgbGV0IG1ldGEgPSBnZXREZXN0cm95YWJsZU1ldGEoZGVzdHJveWFibGUpO1xuXG4gIGxldCBkZXN0cnVjdG9yc0tleTogJ2VhZ2VyRGVzdHJ1Y3RvcnMnIHwgJ2Rlc3RydWN0b3JzJyA9XG4gICAgZWFnZXIgPT09IHRydWUgPyAnZWFnZXJEZXN0cnVjdG9ycycgOiAnZGVzdHJ1Y3RvcnMnO1xuXG4gIG1ldGFbZGVzdHJ1Y3RvcnNLZXldID0gcmVtb3ZlKFxuICAgIG1ldGFbZGVzdHJ1Y3RvcnNLZXldLFxuICAgIGRlc3RydWN0b3IsXG4gICAgREVCVUcgJiYgJ2F0dGVtcHRlZCB0byByZW1vdmUgYSBkZXN0cnVjdG9yIHRoYXQgd2FzIG5vdCByZWdpc3RlcmVkIHdpdGggdGhlIGRlc3Ryb3lhYmxlJ1xuICApO1xufVxuXG4vLy8vLy8vLy8vLy9cblxuZXhwb3J0IGZ1bmN0aW9uIGRlc3Ryb3koZGVzdHJveWFibGU6IERlc3Ryb3lhYmxlKSB7XG4gIGxldCBtZXRhID0gZ2V0RGVzdHJveWFibGVNZXRhKGRlc3Ryb3lhYmxlKTtcblxuICBpZiAobWV0YS5zdGF0ZSA+PSBEZXN0cm95aW5nU3RhdGUuRGVzdHJveWluZykgcmV0dXJuO1xuXG4gIGxldCB7IHBhcmVudHMsIGNoaWxkcmVuLCBlYWdlckRlc3RydWN0b3JzLCBkZXN0cnVjdG9ycyB9ID0gbWV0YTtcblxuICBtZXRhLnN0YXRlID0gRGVzdHJveWluZ1N0YXRlLkRlc3Ryb3lpbmc7XG5cbiAgaXRlcmF0ZShjaGlsZHJlbiwgZGVzdHJveSk7XG4gIGl0ZXJhdGUoZWFnZXJEZXN0cnVjdG9ycywgKGRlc3RydWN0b3IpID0+IGRlc3RydWN0b3IoZGVzdHJveWFibGUpKTtcbiAgaXRlcmF0ZShkZXN0cnVjdG9ycywgKGRlc3RydWN0b3IpID0+IHNjaGVkdWxlRGVzdHJveShkZXN0cm95YWJsZSwgZGVzdHJ1Y3RvcikpO1xuXG4gIHNjaGVkdWxlRGVzdHJveWVkKCgpID0+IHtcbiAgICBpdGVyYXRlKHBhcmVudHMsIChwYXJlbnQpID0+IHJlbW92ZUNoaWxkRnJvbVBhcmVudChkZXN0cm95YWJsZSwgcGFyZW50KSk7XG5cbiAgICBtZXRhLnN0YXRlID0gRGVzdHJveWluZ1N0YXRlLkRlc3Ryb3llZDtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZUNoaWxkRnJvbVBhcmVudChjaGlsZDogRGVzdHJveWFibGUsIHBhcmVudDogRGVzdHJveWFibGUpIHtcbiAgbGV0IHBhcmVudE1ldGEgPSBnZXREZXN0cm95YWJsZU1ldGEocGFyZW50KTtcblxuICBpZiAocGFyZW50TWV0YS5zdGF0ZSA9PT0gRGVzdHJveWluZ1N0YXRlLkxpdmUpIHtcbiAgICBwYXJlbnRNZXRhLmNoaWxkcmVuID0gcmVtb3ZlKFxuICAgICAgcGFyZW50TWV0YS5jaGlsZHJlbixcbiAgICAgIGNoaWxkLFxuICAgICAgREVCVUcgJiZcbiAgICAgICAgXCJhdHRlbXB0ZWQgdG8gcmVtb3ZlIGNoaWxkIGZyb20gcGFyZW50LCBidXQgdGhlIHBhcmVudCdzIGNoaWxkcmVuIGRpZCBub3QgY29udGFpbiB0aGUgY2hpbGQuIFRoaXMgaXMgbGlrZWx5IGEgYnVnIHdpdGggZGVzdHJ1Y3RvcnMuXCJcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZXN0cm95Q2hpbGRyZW4oZGVzdHJveWFibGU6IERlc3Ryb3lhYmxlKSB7XG4gIGxldCB7IGNoaWxkcmVuIH0gPSBnZXREZXN0cm95YWJsZU1ldGEoZGVzdHJveWFibGUpO1xuXG4gIGl0ZXJhdGUoY2hpbGRyZW4sIGRlc3Ryb3kpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEZXN0cm95aW5nKGRlc3Ryb3lhYmxlOiBEZXN0cm95YWJsZSkge1xuICBsZXQgbWV0YSA9IERFU1RST1lBQkxFX01FVEEuZ2V0KGRlc3Ryb3lhYmxlKTtcblxuICByZXR1cm4gbWV0YSA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiBtZXRhLnN0YXRlID49IERlc3Ryb3lpbmdTdGF0ZS5EZXN0cm95aW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEZXN0cm95ZWQoZGVzdHJveWFibGU6IERlc3Ryb3lhYmxlKSB7XG4gIGxldCBtZXRhID0gREVTVFJPWUFCTEVfTUVUQS5nZXQoZGVzdHJveWFibGUpO1xuXG4gIHJldHVybiBtZXRhID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IG1ldGEuc3RhdGUgPj0gRGVzdHJveWluZ1N0YXRlLkRlc3Ryb3llZDtcbn1cblxuLy8vLy8vLy8vLy8vXG5cbmV4cG9ydCBsZXQgZW5hYmxlRGVzdHJveWFibGVUcmFja2luZzogdW5kZWZpbmVkIHwgKCgpID0+IHZvaWQpO1xuZXhwb3J0IGxldCBhc3NlcnREZXN0cm95YWJsZXNEZXN0cm95ZWQ6IHVuZGVmaW5lZCB8ICgoKSA9PiB2b2lkKTtcblxuaWYgKERFQlVHKSB7XG4gIGxldCBpc1Rlc3RpbmcgPSBmYWxzZTtcblxuICBlbmFibGVEZXN0cm95YWJsZVRyYWNraW5nID0gKCkgPT4ge1xuICAgIGlmIChpc1Rlc3RpbmcpIHtcbiAgICAgIC8vIFJlc2V0IGRlc3Ryb3lhYmxlIG1ldGEganVzdCBpbiBjYXNlLCBiZWZvcmUgdGhyb3dpbmcgdGhlIGVycm9yXG4gICAgICBERVNUUk9ZQUJMRV9NRVRBID0gbmV3IFdlYWtNYXAoKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0F0dGVtcHRlZCB0byBzdGFydCBkZXN0cm95YWJsZSB0ZXN0aW5nLCBidXQgeW91IGRpZCBub3QgZW5kIHRoZSBwcmV2aW91cyBkZXN0cm95YWJsZSB0ZXN0LiBEaWQgeW91IGZvcmdldCB0byBjYWxsIGBhc3NlcnREZXN0cm95YWJsZXNEZXN0cm95ZWQoKWAnXG4gICAgICApO1xuICAgIH1cblxuICAgIGlzVGVzdGluZyA9IHRydWU7XG4gICAgREVTVFJPWUFCTEVfTUVUQSA9IG5ldyBNYXAoKTtcbiAgfTtcblxuICBhc3NlcnREZXN0cm95YWJsZXNEZXN0cm95ZWQgPSAoKSA9PiB7XG4gICAgaWYgKCFpc1Rlc3RpbmcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0F0dGVtcHRlZCB0byBhc3NlcnQgZGVzdHJveWFibGVzIGRlc3Ryb3llZCwgYnV0IHlvdSBkaWQgbm90IHN0YXJ0IGEgZGVzdHJveWFibGUgdGVzdC4gRGlkIHlvdSBmb3JnZXQgdG8gY2FsbCBgZW5hYmxlRGVzdHJveWFibGVUcmFja2luZygpYCdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaXNUZXN0aW5nID0gZmFsc2U7XG5cbiAgICBsZXQgbWFwID0gREVTVFJPWUFCTEVfTUVUQSBhcyBNYXA8RGVzdHJveWFibGUsIERlc3Ryb3lhYmxlTWV0YTxEZXN0cm95YWJsZT4+O1xuICAgIERFU1RST1lBQkxFX01FVEEgPSBuZXcgV2Vha01hcCgpO1xuXG4gICAgbGV0IHVuZGVzdHJveWVkOiBvYmplY3RbXSA9IFtdO1xuXG4gICAgbWFwLmZvckVhY2goKG1ldGEpID0+IHtcbiAgICAgIGlmIChtZXRhLnN0YXRlICE9PSBEZXN0cm95aW5nU3RhdGUuRGVzdHJveWVkKSB7XG4gICAgICAgIHVuZGVzdHJveWVkLnB1c2gobWV0YS5zb3VyY2UhKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICh1bmRlc3Ryb3llZC5sZW5ndGggPiAwKSB7XG4gICAgICBsZXQgb2JqZWN0c1RvU3RyaW5nID0gdW5kZXN0cm95ZWQubWFwKGRlYnVnVG9TdHJpbmchKS5qb2luKCdcXG4gICAgJyk7XG4gICAgICBsZXQgZXJyb3IgPSBuZXcgRXJyb3IoXG4gICAgICAgIGBTb21lIGRlc3Ryb3lhYmxlcyB3ZXJlIG5vdCBkZXN0cm95ZWQgZHVyaW5nIHRoaXMgdGVzdDpcXG4gICAgJHtvYmplY3RzVG9TdHJpbmd9YFxuICAgICAgKSBhcyBVbmRlc3Ryb3llZERlc3Ryb3lhYmxlc0Vycm9yO1xuXG4gICAgICBlcnJvci5kZXN0cm95YWJsZXMgPSB1bmRlc3Ryb3llZDtcblxuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9O1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ== | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL2Rlc3Ryb3lhYmxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQVMsS0FBVCxRQUFzQixjQUF0QjtBQUVBLFNBQVMsYUFBVCxRQUE4QixlQUE5QjtBQUNBLFNBQVMsZUFBVCxFQUEwQixpQkFBMUIsUUFBbUQseUJBQW5EO0FBdUJBLElBQUksZ0JBQWdCLEdBRXFDLElBQUksT0FBSixFQUZ6RDs7QUFJQSxTQUFTLElBQVQsQ0FBZ0MsVUFBaEMsRUFBMEQsT0FBMUQsRUFBb0U7QUFDbEUsTUFBSSxVQUFVLEtBQUssSUFBbkIsRUFBeUI7QUFDdkIsV0FBTyxPQUFQO0FBQ0QsR0FGRCxNQUVPLElBQUksS0FBSyxDQUFDLE9BQU4sQ0FBYyxVQUFkLENBQUosRUFBK0I7QUFDcEMsSUFBQSxVQUFVLENBQUMsSUFBWCxDQUFnQixPQUFoQjtBQUNBLFdBQU8sVUFBUDtBQUNELEdBSE0sTUFHQTtBQUNMLFdBQU8sQ0FBQyxVQUFELEVBQWEsT0FBYixDQUFQO0FBQ0Q7QUFDRjs7QUFFRCxTQUFTLE9BQVQsQ0FBbUMsVUFBbkMsRUFBNkQsRUFBN0QsRUFBa0Y7QUFDaEYsTUFBSSxLQUFLLENBQUMsT0FBTixDQUFjLFVBQWQsQ0FBSixFQUErQjtBQUM3QixTQUFLLElBQUksQ0FBQyxHQUFHLENBQWIsRUFBZ0IsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUEvQixFQUF1QyxDQUFDLEVBQXhDLEVBQTRDO0FBQzFDLE1BQUEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFELENBQVgsQ0FBRjtBQUNEO0FBQ0YsR0FKRCxNQUlPLElBQUksVUFBVSxLQUFLLElBQW5CLEVBQXlCO0FBQzlCLElBQUEsRUFBRSxDQUFDLFVBQUQsQ0FBRjtBQUNEO0FBQ0Y7O0FBRUQsU0FBUyxNQUFULENBQWtDLFVBQWxDLEVBQTRELElBQTVELEVBQXFFLE9BQXJFLEVBQTRGO0FBQzFGLE1BQUksS0FBSixFQUFXO0FBQ1QsUUFBSSxn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cm9tICdAZ2xpbW1lci9lbnYnO1xuaW1wb3J0IHsgRGVzdHJveWFibGUsIERlc3RydWN0b3IgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGRlYnVnVG9TdHJpbmcgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7IHNjaGVkdWxlRGVzdHJveSwgc2NoZWR1bGVEZXN0cm95ZWQgfSBmcm9tICdAZ2xpbW1lci9nbG9iYWwtY29udGV4dCc7XG5cbmNvbnN0IGVudW0gRGVzdHJveWluZ1N0YXRlIHtcbiAgTGl2ZSA9IDAsXG4gIERlc3Ryb3lpbmcgPSAxLFxuICBEZXN0cm95ZWQgPSAyLFxufVxuXG50eXBlIE9uZU9yTWFueTxUPiA9IG51bGwgfCBUIHwgVFtdO1xuXG5pbnRlcmZhY2UgRGVzdHJveWFibGVNZXRhPFQgZXh0ZW5kcyBEZXN0cm95YWJsZT4ge1xuICBzb3VyY2U/OiBUO1xuICBwYXJlbnRzOiBPbmVPck1hbnk8RGVzdHJveWFibGU+O1xuICBjaGlsZHJlbjogT25lT3JNYW55PERlc3Ryb3lhYmxlPjtcbiAgZWFnZXJEZXN0cnVjdG9yczogT25lT3JNYW55PERlc3RydWN0b3I8VD4+O1xuICBkZXN0cnVjdG9yczogT25lT3JNYW55PERlc3RydWN0b3I8VD4+O1xuICBzdGF0ZTogRGVzdHJveWluZ1N0YXRlO1xufVxuXG5pbnRlcmZhY2UgVW5kZXN0cm95ZWREZXN0cm95YWJsZXNFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgZGVzdHJveWFibGVzOiBvYmplY3RbXTtcbn1cblxubGV0IERFU1RST1lBQkxFX01FVEE6XG4gIHwgTWFwPERlc3Ryb3lhYmxlLCBEZXN0cm95YWJsZU1ldGE8RGVzdHJveWFibGU+PlxuICB8IFdlYWtNYXA8RGVzdHJveWFibGUsIERlc3Ryb3lhYmxlTWV0YTxEZXN0cm95YWJsZT4+ID0gbmV3IFdlYWtNYXAoKTtcblxuZnVuY3Rpb24gcHVzaDxUIGV4dGVuZHMgb2JqZWN0Pihjb2xsZWN0aW9uOiBPbmVPck1hbnk8VD4sIG5ld0l0ZW06IFQpOiBPbmVPck1hbnk8VD4ge1xuICBpZiAoY29sbGVjdGlvbiA9PT0gbnVsbCkge1xuICAgIHJldHVybiBuZXdJdGVtO1xuICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoY29sbGVjdGlvbikpIHtcbiAgICBjb2xsZWN0aW9uLnB1c2gobmV3SXRlbSk7XG4gICAgcmV0dXJuIGNvbGxlY3Rpb247XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIFtjb2xsZWN0aW9uLCBuZXdJdGVtXTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpdGVyYXRlPFQgZXh0ZW5kcyBvYmplY3Q+KGNvbGxlY3Rpb246IE9uZU9yTWFueTxUPiwgZm46IChpdGVtOiBUKSA9PiB2b2lkKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGNvbGxlY3Rpb24pKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb2xsZWN0aW9uLmxlbmd0aDsgaSsrKSB7XG4gICAgICBmbihjb2xsZWN0aW9uW2ldKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoY29sbGVjdGlvbiAhPT0gbnVsbCkge1xuICAgIGZuKGNvbGxlY3Rpb24pO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlbW92ZTxUIGV4dGVuZHMgb2JqZWN0Pihjb2xsZWN0aW9uOiBPbmVPck1hbnk8VD4sIGl0ZW06IFQsIG1lc3NhZ2U6IHN0cmluZyB8IGZhbHNlKSB7XG4gIGlmIChERUJVRykge1xuICAgIGxldCBjb2xsZWN0aW9uSXNJdGVtID0gY29sbGVjdGlvbiA9PT0gaXRlbTtcbiAgICBsZXQgY29sbGVjdGlvbkNvbnRhaW5zSXRlbSA9IEFycmF5LmlzQXJyYXkoY29sbGVjdGlvbikgJiYgY29sbGVjdGlvbi5pbmRleE9mKGl0ZW0pICE9PSAtMTtcblxuICAgIGlmICghY29sbGVjdGlvbklzSXRlbSAmJiAhY29sbGVjdGlvbkNvbnRhaW5zSXRlbSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFN0cmluZyhtZXNzYWdlKSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkoY29sbGVjdGlvbikgJiYgY29sbGVjdGlvbi5sZW5ndGggPiAxKSB7XG4gICAgbGV0IGluZGV4ID0gY29sbGVjdGlvbiEuaW5kZXhPZihpdGVtKTtcbiAgICBjb2xsZWN0aW9uIS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHJldHVybiBjb2xsZWN0aW9uO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldERlc3Ryb3lhYmxlTWV0YTxUIGV4dGVuZHMgRGVzdHJveWFibGU+KGRlc3Ryb3lhYmxlOiBUKTogRGVzdHJveWFibGVNZXRhPFQ+IHtcbiAgbGV0IG1ldGEgPSBERVNUUk9ZQUJMRV9NRVRBLmdldChkZXN0cm95YWJsZSk7XG5cbiAgaWYgKG1ldGEgPT09IHVuZGVmaW5lZCkge1xuICAgIG1ldGEgPSB7XG4gICAgICBwYXJlbnRzOiBudWxsLFxuICAgICAgY2hpbGRyZW46IG51bGwsXG4gICAgICBlYWdlckRlc3RydWN0b3JzOiBudWxsLFxuICAgICAgZGVzdHJ1Y3RvcnM6IG51bGwsXG4gICAgICBzdGF0ZTogRGVzdHJveWluZ1N0YXRlLkxpdmUsXG4gICAgfTtcblxuICAgIGlmIChERUJVRykge1xuICAgICAgbWV0YS5zb3VyY2UgPSBkZXN0cm95YWJsZSBhcyBvYmplY3Q7XG4gICAgfVxuXG4gICAgREVTVFJPWUFCTEVfTUVUQS5zZXQoZGVzdHJveWFibGUsIG1ldGEpO1xuICB9XG5cbiAgcmV0dXJuIChtZXRhIGFzIHVua25vd24pIGFzIERlc3Ryb3lhYmxlTWV0YTxUPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc29jaWF0ZURlc3Ryb3lhYmxlQ2hpbGQ8VCBleHRlbmRzIERlc3Ryb3lhYmxlPihwYXJlbnQ6IERlc3Ryb3lhYmxlLCBjaGlsZDogVCk6IFQge1xuICBpZiAoREVCVUcgJiYgaXNEZXN0cm95aW5nKHBhcmVudCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQXR0ZW1wdGVkIHRvIGFzc29jaWF0ZSBhIGRlc3Ryb3lhYmxlIGNoaWxkIHdpdGggYW4gb2JqZWN0IHRoYXQgaXMgYWxyZWFkeSBkZXN0cm95aW5nIG9yIGRlc3Ryb3llZCdcbiAgICApO1xuICB9XG5cbiAgbGV0IHBhcmVudE1ldGEgPSBnZXREZXN0cm95YWJsZU1ldGEocGFyZW50KTtcbiAgbGV0IGNoaWxkTWV0YSA9IGdldERlc3Ryb3lhYmxlTWV0YShjaGlsZCk7XG5cbiAgcGFyZW50TWV0YS5jaGlsZHJlbiA9IHB1c2gocGFyZW50TWV0YS5jaGlsZHJlbiwgY2hpbGQpO1xuICBjaGlsZE1ldGEucGFyZW50cyA9IHB1c2goY2hpbGRNZXRhLnBhcmVudHMsIHBhcmVudCk7XG5cbiAgcmV0dXJuIGNoaWxkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJEZXN0cnVjdG9yPFQgZXh0ZW5kcyBEZXN0cm95YWJsZT4oXG4gIGRlc3Ryb3lhYmxlOiBULFxuICBkZXN0cnVjdG9yOiBEZXN0cnVjdG9yPFQ+LFxuICBlYWdlciA9IGZhbHNlXG4pOiBEZXN0cnVjdG9yPFQ+IHtcbiAgaWYgKERFQlVHICYmIGlzRGVzdHJveWluZyhkZXN0cm95YWJsZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQXR0ZW1wdGVkIHRvIHJlZ2lzdGVyIGEgZGVzdHJ1Y3RvciB3aXRoIGFuIG9iamVjdCB0aGF0IGlzIGFscmVhZHkgZGVzdHJveWluZyBvciBkZXN0cm95ZWQnXG4gICAgKTtcbiAgfVxuXG4gIGxldCBtZXRhID0gZ2V0RGVzdHJveWFibGVNZXRhKGRlc3Ryb3lhYmxlKTtcblxuICBsZXQgZGVzdHJ1Y3RvcnNLZXk6ICdlYWdlckRlc3RydWN0b3JzJyB8ICdkZXN0cnVjdG9ycycgPVxuICAgIGVhZ2VyID09PSB0cnVlID8gJ2VhZ2VyRGVzdHJ1Y3RvcnMnIDogJ2Rlc3RydWN0b3JzJztcblxuICBtZXRhW2Rlc3RydWN0b3JzS2V5XSA9IHB1c2gobWV0YVtkZXN0cnVjdG9yc0tleV0sIGRlc3RydWN0b3IpO1xuXG4gIHJldHVybiBkZXN0cnVjdG9yO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5yZWdpc3RlckRlc3RydWN0b3I8VCBleHRlbmRzIERlc3Ryb3lhYmxlPihcbiAgZGVzdHJveWFibGU6IFQsXG4gIGRlc3RydWN0b3I6IERlc3RydWN0b3I8VD4sXG4gIGVhZ2VyID0gZmFsc2Vcbik6IHZvaWQge1xuICBpZiAoREVCVUcgJiYgaXNEZXN0cm95aW5nKGRlc3Ryb3lhYmxlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdBdHRlbXB0ZWQgdG8gdW5yZWdpc3RlciBhIGRlc3RydWN0b3Igd2l0aCBhbiBvYmplY3QgdGhhdCBpcyBhbHJlYWR5IGRlc3Ryb3lpbmcgb3IgZGVzdHJveWVkJ1xuICAgICk7XG4gIH1cblxuICBsZXQgbWV0YSA9IGdldERlc3Ryb3lhYmxlTWV0YShkZXN0cm95YWJsZSk7XG5cbiAgbGV0IGRlc3RydWN0b3JzS2V5OiAnZWFnZXJEZXN0cnVjdG9ycycgfCAnZGVzdHJ1Y3RvcnMnID1cbiAgICBlYWdlciA9PT0gdHJ1ZSA/ICdlYWdlckRlc3RydWN0b3JzJyA6ICdkZXN0cnVjdG9ycyc7XG5cbiAgbWV0YVtkZXN0cnVjdG9yc0tleV0gPSByZW1vdmUoXG4gICAgbWV0YVtkZXN0cnVjdG9yc0tleV0sXG4gICAgZGVzdHJ1Y3RvcixcbiAgICBERUJVRyAmJiAnYXR0ZW1wdGVkIHRvIHJlbW92ZSBhIGRlc3RydWN0b3IgdGhhdCB3YXMgbm90IHJlZ2lzdGVyZWQgd2l0aCB0aGUgZGVzdHJveWFibGUnXG4gICk7XG59XG5cbi8vLy8vLy8vLy8vL1xuXG5leHBvcnQgZnVuY3Rpb24gZGVzdHJveShkZXN0cm95YWJsZTogRGVzdHJveWFibGUpIHtcbiAgbGV0IG1ldGEgPSBnZXREZXN0cm95YWJsZU1ldGEoZGVzdHJveWFibGUpO1xuXG4gIGlmIChtZXRhLnN0YXRlID49IERlc3Ryb3lpbmdTdGF0ZS5EZXN0cm95aW5nKSByZXR1cm47XG5cbiAgbGV0IHsgcGFyZW50cywgY2hpbGRyZW4sIGVhZ2VyRGVzdHJ1Y3RvcnMsIGRlc3RydWN0b3JzIH0gPSBtZXRhO1xuXG4gIG1ldGEuc3RhdGUgPSBEZXN0cm95aW5nU3RhdGUuRGVzdHJveWluZztcblxuICBpdGVyYXRlKGNoaWxkcmVuLCBkZXN0cm95KTtcbiAgaXRlcmF0ZShlYWdlckRlc3RydWN0b3JzLCAoZGVzdHJ1Y3RvcikgPT4gZGVzdHJ1Y3RvcihkZXN0cm95YWJsZSkpO1xuICBpdGVyYXRlKGRlc3RydWN0b3JzLCAoZGVzdHJ1Y3RvcikgPT4gc2NoZWR1bGVEZXN0cm95KGRlc3Ryb3lhYmxlLCBkZXN0cnVjdG9yKSk7XG5cbiAgc2NoZWR1bGVEZXN0cm95ZWQoKCkgPT4ge1xuICAgIGl0ZXJhdGUocGFyZW50cywgKHBhcmVudCkgPT4gcmVtb3ZlQ2hpbGRGcm9tUGFyZW50KGRlc3Ryb3lhYmxlLCBwYXJlbnQpKTtcblxuICAgIG1ldGEuc3RhdGUgPSBEZXN0cm95aW5nU3RhdGUuRGVzdHJveWVkO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlQ2hpbGRGcm9tUGFyZW50KGNoaWxkOiBEZXN0cm95YWJsZSwgcGFyZW50OiBEZXN0cm95YWJsZSkge1xuICBsZXQgcGFyZW50TWV0YSA9IGdldERlc3Ryb3lhYmxlTWV0YShwYXJlbnQpO1xuXG4gIGlmIChwYXJlbnRNZXRhLnN0YXRlID09PSBEZXN0cm95aW5nU3RhdGUuTGl2ZSkge1xuICAgIHBhcmVudE1ldGEuY2hpbGRyZW4gPSByZW1vdmUoXG4gICAgICBwYXJlbnRNZXRhLmNoaWxkcmVuLFxuICAgICAgY2hpbGQsXG4gICAgICBERUJVRyAmJlxuICAgICAgICBcImF0dGVtcHRlZCB0byByZW1vdmUgY2hpbGQgZnJvbSBwYXJlbnQsIGJ1dCB0aGUgcGFyZW50J3MgY2hpbGRyZW4gZGlkIG5vdCBjb250YWluIHRoZSBjaGlsZC4gVGhpcyBpcyBsaWtlbHkgYSBidWcgd2l0aCBkZXN0cnVjdG9ycy5cIlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlc3Ryb3lDaGlsZHJlbihkZXN0cm95YWJsZTogRGVzdHJveWFibGUpIHtcbiAgbGV0IHsgY2hpbGRyZW4gfSA9IGdldERlc3Ryb3lhYmxlTWV0YShkZXN0cm95YWJsZSk7XG5cbiAgaXRlcmF0ZShjaGlsZHJlbiwgZGVzdHJveSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBfaGFzRGVzdHJveWFibGVDaGlsZHJlbihkZXN0cm95YWJsZTogRGVzdHJveWFibGUpIHtcbiAgbGV0IG1ldGEgPSBERVNUUk9ZQUJMRV9NRVRBLmdldChkZXN0cm95YWJsZSk7XG5cbiAgcmV0dXJuIG1ldGEgPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogbWV0YS5jaGlsZHJlbiAhPT0gbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGVzdHJveWluZyhkZXN0cm95YWJsZTogRGVzdHJveWFibGUpIHtcbiAgbGV0IG1ldGEgPSBERVNUUk9ZQUJMRV9NRVRBLmdldChkZXN0cm95YWJsZSk7XG5cbiAgcmV0dXJuIG1ldGEgPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogbWV0YS5zdGF0ZSA+PSBEZXN0cm95aW5nU3RhdGUuRGVzdHJveWluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGVzdHJveWVkKGRlc3Ryb3lhYmxlOiBEZXN0cm95YWJsZSkge1xuICBsZXQgbWV0YSA9IERFU1RST1lBQkxFX01FVEEuZ2V0KGRlc3Ryb3lhYmxlKTtcblxuICByZXR1cm4gbWV0YSA9PT0gdW5kZWZpbmVkID8gZmFsc2UgOiBtZXRhLnN0YXRlID49IERlc3Ryb3lpbmdTdGF0ZS5EZXN0cm95ZWQ7XG59XG5cbi8vLy8vLy8vLy8vL1xuXG5leHBvcnQgbGV0IGVuYWJsZURlc3Ryb3lhYmxlVHJhY2tpbmc6IHVuZGVmaW5lZCB8ICgoKSA9PiB2b2lkKTtcbmV4cG9ydCBsZXQgYXNzZXJ0RGVzdHJveWFibGVzRGVzdHJveWVkOiB1bmRlZmluZWQgfCAoKCkgPT4gdm9pZCk7XG5cbmlmIChERUJVRykge1xuICBsZXQgaXNUZXN0aW5nID0gZmFsc2U7XG5cbiAgZW5hYmxlRGVzdHJveWFibGVUcmFja2luZyA9ICgpID0+IHtcbiAgICBpZiAoaXNUZXN0aW5nKSB7XG4gICAgICAvLyBSZXNldCBkZXN0cm95YWJsZSBtZXRhIGp1c3QgaW4gY2FzZSwgYmVmb3JlIHRocm93aW5nIHRoZSBlcnJvclxuICAgICAgREVTVFJPWUFCTEVfTUVUQSA9IG5ldyBXZWFrTWFwKCk7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdBdHRlbXB0ZWQgdG8gc3RhcnQgZGVzdHJveWFibGUgdGVzdGluZywgYnV0IHlvdSBkaWQgbm90IGVuZCB0aGUgcHJldmlvdXMgZGVzdHJveWFibGUgdGVzdC4gRGlkIHlvdSBmb3JnZXQgdG8gY2FsbCBgYXNzZXJ0RGVzdHJveWFibGVzRGVzdHJveWVkKClgJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBpc1Rlc3RpbmcgPSB0cnVlO1xuICAgIERFU1RST1lBQkxFX01FVEEgPSBuZXcgTWFwKCk7XG4gIH07XG5cbiAgYXNzZXJ0RGVzdHJveWFibGVzRGVzdHJveWVkID0gKCkgPT4ge1xuICAgIGlmICghaXNUZXN0aW5nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdBdHRlbXB0ZWQgdG8gYXNzZXJ0IGRlc3Ryb3lhYmxlcyBkZXN0cm95ZWQsIGJ1dCB5b3UgZGlkIG5vdCBzdGFydCBhIGRlc3Ryb3lhYmxlIHRlc3QuIERpZCB5b3UgZm9yZ2V0IHRvIGNhbGwgYGVuYWJsZURlc3Ryb3lhYmxlVHJhY2tpbmcoKWAnXG4gICAgICApO1xuICAgIH1cblxuICAgIGlzVGVzdGluZyA9IGZhbHNlO1xuXG4gICAgbGV0IG1hcCA9IERFU1RST1lBQkxFX01FVEEgYXMgTWFwPERlc3Ryb3lhYmxlLCBEZXN0cm95YWJsZU1ldGE8RGVzdHJveWFibGU+PjtcbiAgICBERVNUUk9ZQUJMRV9NRVRBID0gbmV3IFdlYWtNYXAoKTtcblxuICAgIGxldCB1bmRlc3Ryb3llZDogb2JqZWN0W10gPSBbXTtcblxuICAgIG1hcC5mb3JFYWNoKChtZXRhKSA9PiB7XG4gICAgICBpZiAobWV0YS5zdGF0ZSAhPT0gRGVzdHJveWluZ1N0YXRlLkRlc3Ryb3llZCkge1xuICAgICAgICB1bmRlc3Ryb3llZC5wdXNoKG1ldGEuc291cmNlISk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAodW5kZXN0cm95ZWQubGVuZ3RoID4gMCkge1xuICAgICAgbGV0IG9iamVjdHNUb1N0cmluZyA9IHVuZGVzdHJveWVkLm1hcChkZWJ1Z1RvU3RyaW5nISkuam9pbignXFxuICAgICcpO1xuICAgICAgbGV0IGVycm9yID0gbmV3IEVycm9yKFxuICAgICAgICBgU29tZSBkZXN0cm95YWJsZXMgd2VyZSBub3QgZGVzdHJveWVkIGR1cmluZyB0aGlzIHRlc3Q6XFxuICAgICR7b2JqZWN0c1RvU3RyaW5nfWBcbiAgICAgICkgYXMgVW5kZXN0cm95ZWREZXN0cm95YWJsZXNFcnJvcjtcblxuICAgICAgZXJyb3IuZGVzdHJveWFibGVzID0gdW5kZXN0cm95ZWQ7XG5cbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfTtcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0= |
@@ -154,2 +154,6 @@ import { DEBUG } from '@glimmer/env'; | ||
} | ||
export function _hasDestroyableChildren(destroyable) { | ||
var meta = DESTROYABLE_META.get(destroyable); | ||
return meta === undefined ? false : meta.children !== null; | ||
} | ||
export function isDestroying(destroyable) { | ||
@@ -210,2 +214,2 @@ var meta = DESTROYABLE_META.get(destroyable); | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL2Rlc3Ryb3lhYmxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQUEsS0FBQSxRQUFBLGNBQUE7QUFFQSxTQUFBLGFBQUEsUUFBQSxlQUFBO0FBQ0EsU0FBQSxlQUFBLEVBQUEsaUJBQUEsUUFBQSx5QkFBQTtBQXVCQSxJQUFJLGdCQUFnQixHQUVxQyxJQUZ6RCxPQUV5RCxFQUZ6RDs7QUFJQSxTQUFBLElBQUEsQ0FBQSxVQUFBLEVBQUEsT0FBQSxFQUFvRTtBQUNsRSxNQUFJLFVBQVUsS0FBZCxJQUFBLEVBQXlCO0FBQ3ZCLFdBQUEsT0FBQTtBQURGLEdBQUEsTUFFTyxJQUFJLEtBQUssQ0FBTCxPQUFBLENBQUosVUFBSSxDQUFKLEVBQStCO0FBQ3BDLElBQUEsVUFBVSxDQUFWLElBQUEsQ0FBQSxPQUFBO0FBQ0EsV0FBQSxVQUFBO0FBRkssR0FBQSxNQUdBO0FBQ0wsV0FBTyxDQUFBLFVBQUEsRUFBUCxPQUFPLENBQVA7QUFDRDtBQUNGOztBQUVELFNBQUEsT0FBQSxDQUFBLFVBQUEsRUFBQSxFQUFBLEVBQWtGO0FBQ2hGLE1BQUksS0FBSyxDQUFMLE9BQUEsQ0FBSixVQUFJLENBQUosRUFBK0I7QUFDN0IsU0FBSyxJQUFJLENBQUMsR0FBVixDQUFBLEVBQWdCLENBQUMsR0FBRyxVQUFVLENBQTlCLE1BQUEsRUFBdUMsQ0FBdkMsRUFBQSxFQUE0QztBQUMxQyxNQUFBLEVBQUUsQ0FBQyxVQUFVLENBQWIsQ0FBYSxDQUFYLENBQUY7QUFDRDtBQUhILEdBQUEsTUFJTyxJQUFJLFVBQVUsS0FBZCxJQUFBLEVBQXlCO0FBQzlCLElBQUEsRUFBRSxDQUFGLFVBQUUsQ0FBRjtBQUNEO0FBQ0Y7O0FBRUQsU0FBQSxNQUFBLENBQUEsVUFBQSxFQUFBLElBQUEsRUFBQSxPQUFBLEVBQTRGO0FBQzFGLE1BQUEsS0FBQSxFQUFXO0FBQ1QsUUFBSSxnQkFBZ0IsR0FBRyxVQUFVLEtBQWpDLElB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O1xuaW1wb3J0IHsgRGVzdHJveWFibGUsIERlc3RydWN0b3IgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGRlYnVnVG9TdHJpbmcgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7IHNjaGVkdWxlRGVzdHJveSwgc2NoZWR1bGVEZXN0cm95ZWQgfSBmcm9tICdAZ2xpbW1lci9nbG9iYWwtY29udGV4dCc7XG5cbmNvbnN0IGVudW0gRGVzdHJveWluZ1N0YXRlIHtcbiAgTGl2ZSA9IDAsXG4gIERlc3Ryb3lpbmcgPSAxLFxuICBEZXN0cm95ZWQgPSAyLFxufVxuXG50eXBlIE9uZU9yTWFueTxUPiA9IG51bGwgfCBUIHwgVFtdO1xuXG5pbnRlcmZhY2UgRGVzdHJveWFibGVNZXRhPFQgZXh0ZW5kcyBEZXN0cm95YWJsZT4ge1xuICBzb3VyY2U/OiBUO1xuICBwYXJlbnRzOiBPbmVPck1hbnk8RGVzdHJveWFibGU+O1xuICBjaGlsZHJlbjogT25lT3JNYW55PERlc3Ryb3lhYmxlPjtcbiAgZWFnZXJEZXN0cnVjdG9yczogT25lT3JNYW55PERlc3RydWN0b3I8VD4+O1xuICBkZXN0cnVjdG9yczogT25lT3JNYW55PERlc3RydWN0b3I8VD4+O1xuICBzdGF0ZTogRGVzdHJveWluZ1N0YXRlO1xufVxuXG5pbnRlcmZhY2UgVW5kZXN0cm95ZWREZXN0cm95YWJsZXNFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgZGVzdHJveWFibGVzOiBvYmplY3RbXTtcbn1cblxubGV0IERFU1RST1lBQkxFX01FVEE6XG4gIHwgTWFwPERlc3Ryb3lhYmxlLCBEZXN0cm95YWJsZU1ldGE8RGVzdHJveWFibGU+PlxuICB8IFdlYWtNYXA8RGVzdHJveWFibGUsIERlc3Ryb3lhYmxlTWV0YTxEZXN0cm95YWJsZT4+ID0gbmV3IFdlYWtNYXAoKTtcblxuZnVuY3Rpb24gcHVzaDxUIGV4dGVuZHMgb2JqZWN0Pihjb2xsZWN0aW9uOiBPbmVPck1hbnk8VD4sIG5ld0l0ZW06IFQpOiBPbmVPck1hbnk8VD4ge1xuICBpZiAoY29sbGVjdGlvbiA9PT0gbnVsbCkge1xuICAgIHJldHVybiBuZXdJdGVtO1xuICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoY29sbGVjdGlvbikpIHtcbiAgICBjb2xsZWN0aW9uLnB1c2gobmV3SXRlbSk7XG4gICAgcmV0dXJuIGNvbGxlY3Rpb247XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIFtjb2xsZWN0aW9uLCBuZXdJdGVtXTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpdGVyYXRlPFQgZXh0ZW5kcyBvYmplY3Q+KGNvbGxlY3Rpb246IE9uZU9yTWFueTxUPiwgZm46IChpdGVtOiBUKSA9PiB2b2lkKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGNvbGxlY3Rpb24pKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb2xsZWN0aW9uLmxlbmd0aDsgaSsrKSB7XG4gICAgICBmbihjb2xsZWN0aW9uW2ldKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoY29sbGVjdGlvbiAhPT0gbnVsbCkge1xuICAgIGZuKGNvbGxlY3Rpb24pO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlbW92ZTxUIGV4dGVuZHMgb2JqZWN0Pihjb2xsZWN0aW9uOiBPbmVPck1hbnk8VD4sIGl0ZW06IFQsIG1lc3NhZ2U6IHN0cmluZyB8IGZhbHNlKSB7XG4gIGlmIChERUJVRykge1xuICAgIGxldCBjb2xsZWN0aW9uSXNJdGVtID0gY29sbGVjdGlvbiA9PT0gaXRlbTtcbiAgICBsZXQgY29sbGVjdGlvbkNvbnRhaW5zSXRlbSA9IEFycmF5LmlzQXJyYXkoY29sbGVjdGlvbikgJiYgY29sbGVjdGlvbi5pbmRleE9mKGl0ZW0pICE9PSAtMTtcblxuICAgIGlmICghY29sbGVjdGlvbklzSXRlbSAmJiAhY29sbGVjdGlvbkNvbnRhaW5zSXRlbSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFN0cmluZyhtZXNzYWdlKSk7XG4gICAgfVxuICB9XG5cbiAgaWYgKEFycmF5LmlzQXJyYXkoY29sbGVjdGlvbikgJiYgY29sbGVjdGlvbi5sZW5ndGggPiAxKSB7XG4gICAgbGV0IGluZGV4ID0gY29sbGVjdGlvbiEuaW5kZXhPZihpdGVtKTtcbiAgICBjb2xsZWN0aW9uIS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHJldHVybiBjb2xsZWN0aW9uO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldERlc3Ryb3lhYmxlTWV0YTxUIGV4dGVuZHMgRGVzdHJveWFibGU+KGRlc3Ryb3lhYmxlOiBUKTogRGVzdHJveWFibGVNZXRhPFQ+IHtcbiAgbGV0IG1ldGEgPSBERVNUUk9ZQUJMRV9NRVRBLmdldChkZXN0cm95YWJsZSk7XG5cbiAgaWYgKG1ldGEgPT09IHVuZGVmaW5lZCkge1xuICAgIG1ldGEgPSB7XG4gICAgICBwYXJlbnRzOiBudWxsLFxuICAgICAgY2hpbGRyZW46IG51bGwsXG4gICAgICBlYWdlckRlc3RydWN0b3JzOiBudWxsLFxuICAgICAgZGVzdHJ1Y3RvcnM6IG51bGwsXG4gICAgICBzdGF0ZTogRGVzdHJveWluZ1N0YXRlLkxpdmUsXG4gICAgfTtcblxuICAgIGlmIChERUJVRykge1xuICAgICAgbWV0YS5zb3VyY2UgPSBkZXN0cm95YWJsZSBhcyBvYmplY3Q7XG4gICAgfVxuXG4gICAgREVTVFJPWUFCTEVfTUVUQS5zZXQoZGVzdHJveWFibGUsIG1ldGEpO1xuICB9XG5cbiAgcmV0dXJuIChtZXRhIGFzIHVua25vd24pIGFzIERlc3Ryb3lhYmxlTWV0YTxUPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc29jaWF0ZURlc3Ryb3lhYmxlQ2hpbGQ8VCBleHRlbmRzIERlc3Ryb3lhYmxlPihwYXJlbnQ6IERlc3Ryb3lhYmxlLCBjaGlsZDogVCk6IFQge1xuICBpZiAoREVCVUcgJiYgaXNEZXN0cm95aW5nKHBhcmVudCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQXR0ZW1wdGVkIHRvIGFzc29jaWF0ZSBhIGRlc3Ryb3lhYmxlIGNoaWxkIHdpdGggYW4gb2JqZWN0IHRoYXQgaXMgYWxyZWFkeSBkZXN0cm95aW5nIG9yIGRlc3Ryb3llZCdcbiAgICApO1xuICB9XG5cbiAgbGV0IHBhcmVudE1ldGEgPSBnZXREZXN0cm95YWJsZU1ldGEocGFyZW50KTtcbiAgbGV0IGNoaWxkTWV0YSA9IGdldERlc3Ryb3lhYmxlTWV0YShjaGlsZCk7XG5cbiAgcGFyZW50TWV0YS5jaGlsZHJlbiA9IHB1c2gocGFyZW50TWV0YS5jaGlsZHJlbiwgY2hpbGQpO1xuICBjaGlsZE1ldGEucGFyZW50cyA9IHB1c2goY2hpbGRNZXRhLnBhcmVudHMsIHBhcmVudCk7XG5cbiAgcmV0dXJuIGNoaWxkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJEZXN0cnVjdG9yPFQgZXh0ZW5kcyBEZXN0cm95YWJsZT4oXG4gIGRlc3Ryb3lhYmxlOiBULFxuICBkZXN0cnVjdG9yOiBEZXN0cnVjdG9yPFQ+LFxuICBlYWdlciA9IGZhbHNlXG4pOiBEZXN0cnVjdG9yPFQ+IHtcbiAgaWYgKERFQlVHICYmIGlzRGVzdHJveWluZyhkZXN0cm95YWJsZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQXR0ZW1wdGVkIHRvIHJlZ2lzdGVyIGEgZGVzdHJ1Y3RvciB3aXRoIGFuIG9iamVjdCB0aGF0IGlzIGFscmVhZHkgZGVzdHJveWluZyBvciBkZXN0cm95ZWQnXG4gICAgKTtcbiAgfVxuXG4gIGxldCBtZXRhID0gZ2V0RGVzdHJveWFibGVNZXRhKGRlc3Ryb3lhYmxlKTtcblxuICBsZXQgZGVzdHJ1Y3RvcnNLZXk6ICdlYWdlckRlc3RydWN0b3JzJyB8ICdkZXN0cnVjdG9ycycgPVxuICAgIGVhZ2VyID09PSB0cnVlID8gJ2VhZ2VyRGVzdHJ1Y3RvcnMnIDogJ2Rlc3RydWN0b3JzJztcblxuICBtZXRhW2Rlc3RydWN0b3JzS2V5XSA9IHB1c2gobWV0YVtkZXN0cnVjdG9yc0tleV0sIGRlc3RydWN0b3IpO1xuXG4gIHJldHVybiBkZXN0cnVjdG9yO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5yZWdpc3RlckRlc3RydWN0b3I8VCBleHRlbmRzIERlc3Ryb3lhYmxlPihcbiAgZGVzdHJveWFibGU6IFQsXG4gIGRlc3RydWN0b3I6IERlc3RydWN0b3I8VD4sXG4gIGVhZ2VyID0gZmFsc2Vcbik6IHZvaWQge1xuICBpZiAoREVCVUcgJiYgaXNEZXN0cm95aW5nKGRlc3Ryb3lhYmxlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdBdHRlbXB0ZWQgdG8gdW5yZWdpc3RlciBhIGRlc3RydWN0b3Igd2l0aCBhbiBvYmplY3QgdGhhdCBpcyBhbHJlYWR5IGRlc3Ryb3lpbmcgb3IgZGVzdHJveWVkJ1xuICAgICk7XG4gIH1cblxuICBsZXQgbWV0YSA9IGdldERlc3Ryb3lhYmxlTWV0YShkZXN0cm95YWJsZSk7XG5cbiAgbGV0IGRlc3RydWN0b3JzS2V5OiAnZWFnZXJEZXN0cnVjdG9ycycgfCAnZGVzdHJ1Y3RvcnMnID1cbiAgICBlYWdlciA9PT0gdHJ1ZSA/ICdlYWdlckRlc3RydWN0b3JzJyA6ICdkZXN0cnVjdG9ycyc7XG5cbiAgbWV0YVtkZXN0cnVjdG9yc0tleV0gPSByZW1vdmUoXG4gICAgbWV0YVtkZXN0cnVjdG9yc0tleV0sXG4gICAgZGVzdHJ1Y3RvcixcbiAgICBERUJVRyAmJiAnYXR0ZW1wdGVkIHRvIHJlbW92ZSBhIGRlc3RydWN0b3IgdGhhdCB3YXMgbm90IHJlZ2lzdGVyZWQgd2l0aCB0aGUgZGVzdHJveWFibGUnXG4gICk7XG59XG5cbi8vLy8vLy8vLy8vL1xuXG5leHBvcnQgZnVuY3Rpb24gZGVzdHJveShkZXN0cm95YWJsZTogRGVzdHJveWFibGUpIHtcbiAgbGV0IG1ldGEgPSBnZXREZXN0cm95YWJsZU1ldGEoZGVzdHJveWFibGUpO1xuXG4gIGlmIChtZXRhLnN0YXRlID49IERlc3Ryb3lpbmdTdGF0ZS5EZXN0cm95aW5nKSByZXR1cm47XG5cbiAgbGV0IHsgcGFyZW50cywgY2hpbGRyZW4sIGVhZ2VyRGVzdHJ1Y3RvcnMsIGRlc3RydWN0b3JzIH0gPSBtZXRhO1xuXG4gIG1ldGEuc3RhdGUgPSBEZXN0cm95aW5nU3RhdGUuRGVzdHJveWluZztcblxuICBpdGVyYXRlKGNoaWxkcmVuLCBkZXN0cm95KTtcbiAgaXRlcmF0ZShlYWdlckRlc3RydWN0b3JzLCAoZGVzdHJ1Y3RvcikgPT4gZGVzdHJ1Y3RvcihkZXN0cm95YWJsZSkpO1xuICBpdGVyYXRlKGRlc3RydWN0b3JzLCAoZGVzdHJ1Y3RvcikgPT4gc2NoZWR1bGVEZXN0cm95KGRlc3Ryb3lhYmxlLCBkZXN0cnVjdG9yKSk7XG5cbiAgc2NoZWR1bGVEZXN0cm95ZWQoKCkgPT4ge1xuICAgIGl0ZXJhdGUocGFyZW50cywgKHBhcmVudCkgPT4gcmVtb3ZlQ2hpbGRGcm9tUGFyZW50KGRlc3Ryb3lhYmxlLCBwYXJlbnQpKTtcblxuICAgIG1ldGEuc3RhdGUgPSBEZXN0cm95aW5nU3RhdGUuRGVzdHJveWVkO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gcmVtb3ZlQ2hpbGRGcm9tUGFyZW50KGNoaWxkOiBEZXN0cm95YWJsZSwgcGFyZW50OiBEZXN0cm95YWJsZSkge1xuICBsZXQgcGFyZW50TWV0YSA9IGdldERlc3Ryb3lhYmxlTWV0YShwYXJlbnQpO1xuXG4gIGlmIChwYXJlbnRNZXRhLnN0YXRlID09PSBEZXN0cm95aW5nU3RhdGUuTGl2ZSkge1xuICAgIHBhcmVudE1ldGEuY2hpbGRyZW4gPSByZW1vdmUoXG4gICAgICBwYXJlbnRNZXRhLmNoaWxkcmVuLFxuICAgICAgY2hpbGQsXG4gICAgICBERUJVRyAmJlxuICAgICAgICBcImF0dGVtcHRlZCB0byByZW1vdmUgY2hpbGQgZnJvbSBwYXJlbnQsIGJ1dCB0aGUgcGFyZW50J3MgY2hpbGRyZW4gZGlkIG5vdCBjb250YWluIHRoZSBjaGlsZC4gVGhpcyBpcyBsaWtlbHkgYSBidWcgd2l0aCBkZXN0cnVjdG9ycy5cIlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlc3Ryb3lDaGlsZHJlbihkZXN0cm95YWJsZTogRGVzdHJveWFibGUpIHtcbiAgbGV0IHsgY2hpbGRyZW4gfSA9IGdldERlc3Ryb3lhYmxlTWV0YShkZXN0cm95YWJsZSk7XG5cbiAgaXRlcmF0ZShjaGlsZHJlbiwgZGVzdHJveSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Rlc3Ryb3lpbmcoZGVzdHJveWFibGU6IERlc3Ryb3lhYmxlKSB7XG4gIGxldCBtZXRhID0gREVTVFJPWUFCTEVfTUVUQS5nZXQoZGVzdHJveWFibGUpO1xuXG4gIHJldHVybiBtZXRhID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IG1ldGEuc3RhdGUgPj0gRGVzdHJveWluZ1N0YXRlLkRlc3Ryb3lpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Rlc3Ryb3llZChkZXN0cm95YWJsZTogRGVzdHJveWFibGUpIHtcbiAgbGV0IG1ldGEgPSBERVNUUk9ZQUJMRV9NRVRBLmdldChkZXN0cm95YWJsZSk7XG5cbiAgcmV0dXJuIG1ldGEgPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogbWV0YS5zdGF0ZSA+PSBEZXN0cm95aW5nU3RhdGUuRGVzdHJveWVkO1xufVxuXG4vLy8vLy8vLy8vLy9cblxuZXhwb3J0IGxldCBlbmFibGVEZXN0cm95YWJsZVRyYWNraW5nOiB1bmRlZmluZWQgfCAoKCkgPT4gdm9pZCk7XG5leHBvcnQgbGV0IGFzc2VydERlc3Ryb3lhYmxlc0Rlc3Ryb3llZDogdW5kZWZpbmVkIHwgKCgpID0+IHZvaWQpO1xuXG5pZiAoREVCVUcpIHtcbiAgbGV0IGlzVGVzdGluZyA9IGZhbHNlO1xuXG4gIGVuYWJsZURlc3Ryb3lhYmxlVHJhY2tpbmcgPSAoKSA9PiB7XG4gICAgaWYgKGlzVGVzdGluZykge1xuICAgICAgLy8gUmVzZXQgZGVzdHJveWFibGUgbWV0YSBqdXN0IGluIGNhc2UsIGJlZm9yZSB0aHJvd2luZyB0aGUgZXJyb3JcbiAgICAgIERFU1RST1lBQkxFX01FVEEgPSBuZXcgV2Vha01hcCgpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQXR0ZW1wdGVkIHRvIHN0YXJ0IGRlc3Ryb3lhYmxlIHRlc3RpbmcsIGJ1dCB5b3UgZGlkIG5vdCBlbmQgdGhlIHByZXZpb3VzIGRlc3Ryb3lhYmxlIHRlc3QuIERpZCB5b3UgZm9yZ2V0IHRvIGNhbGwgYGFzc2VydERlc3Ryb3lhYmxlc0Rlc3Ryb3llZCgpYCdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaXNUZXN0aW5nID0gdHJ1ZTtcbiAgICBERVNUUk9ZQUJMRV9NRVRBID0gbmV3IE1hcCgpO1xuICB9O1xuXG4gIGFzc2VydERlc3Ryb3lhYmxlc0Rlc3Ryb3llZCA9ICgpID0+IHtcbiAgICBpZiAoIWlzVGVzdGluZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQXR0ZW1wdGVkIHRvIGFzc2VydCBkZXN0cm95YWJsZXMgZGVzdHJveWVkLCBidXQgeW91IGRpZCBub3Qgc3RhcnQgYSBkZXN0cm95YWJsZSB0ZXN0LiBEaWQgeW91IGZvcmdldCB0byBjYWxsIGBlbmFibGVEZXN0cm95YWJsZVRyYWNraW5nKClgJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBpc1Rlc3RpbmcgPSBmYWxzZTtcblxuICAgIGxldCBtYXAgPSBERVNUUk9ZQUJMRV9NRVRBIGFzIE1hcDxEZXN0cm95YWJsZSwgRGVzdHJveWFibGVNZXRhPERlc3Ryb3lhYmxlPj47XG4gICAgREVTVFJPWUFCTEVfTUVUQSA9IG5ldyBXZWFrTWFwKCk7XG5cbiAgICBsZXQgdW5kZXN0cm95ZWQ6IG9iamVjdFtdID0gW107XG5cbiAgICBtYXAuZm9yRWFjaCgobWV0YSkgPT4ge1xuICAgICAgaWYgKG1ldGEuc3RhdGUgIT09IERlc3Ryb3lpbmdTdGF0ZS5EZXN0cm95ZWQpIHtcbiAgICAgICAgdW5kZXN0cm95ZWQucHVzaChtZXRhLnNvdXJjZSEpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHVuZGVzdHJveWVkLmxlbmd0aCA+IDApIHtcbiAgICAgIGxldCBvYmplY3RzVG9TdHJpbmcgPSB1bmRlc3Ryb3llZC5tYXAoZGVidWdUb1N0cmluZyEpLmpvaW4oJ1xcbiAgICAnKTtcbiAgICAgIGxldCBlcnJvciA9IG5ldyBFcnJvcihcbiAgICAgICAgYFNvbWUgZGVzdHJveWFibGVzIHdlcmUgbm90IGRlc3Ryb3llZCBkdXJpbmcgdGhpcyB0ZXN0OlxcbiAgICAke29iamVjdHNUb1N0cmluZ31gXG4gICAgICApIGFzIFVuZGVzdHJveWVkRGVzdHJveWFibGVzRXJyb3I7XG5cbiAgICAgIGVycm9yLmRlc3Ryb3lhYmxlcyA9IHVuZGVzdHJveWVkO1xuXG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH07XG59XG4iXSwic291cmNlUm9vdCI6IiJ9 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL2Rlc3Ryb3lhYmxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFNBQUEsS0FBQSxRQUFBLGNBQUE7QUFFQSxTQUFBLGFBQUEsUUFBQSxlQUFBO0FBQ0EsU0FBQSxlQUFBLEVBQUEsaUJBQUEsUUFBQSx5QkFBQTtBQXVCQSxJQUFJLGdCQUFnQixHQUVxQyxJQUZ6RCxPQUV5RCxFQUZ6RDs7QUFJQSxTQUFBLElBQUEsQ0FBQSxVQUFBLEVBQUEsT0FBQSxFQUFvRTtBQUNsRSxNQUFJLFVBQVUsS0FBZCxJQUFBLEVBQXlCO0FBQ3ZCLFdBQUEsT0FBQTtBQURGLEdBQUEsTUFFTyxJQUFJLEtBQUssQ0FBTCxPQUFBLENBQUosVUFBSSxDQUFKLEVBQStCO0FBQ3BDLElBQUEsVUFBVSxDQUFWLElBQUEsQ0FBQSxPQUFBO0FBQ0EsV0FBQSxVQUFBO0FBRkssR0FBQSxNQUdBO0FBQ0wsV0FBTyxDQUFBLFVBQUEsRUFBUCxPQUFPLENBQVA7QUFDRDtBQUNGOztBQUVELFNBQUEsT0FBQSxDQUFBLFVBQUEsRUFBQSxFQUFBLEVBQWtGO0FBQ2hGLE1BQUksS0FBSyxDQUFMLE9BQUEsQ0FBSixVQUFJLENBQUosRUFBK0I7QUFDN0IsU0FBSyxJQUFJLENBQUMsR0FBVixDQUFBLEVBQWdCLENBQUMsR0FBRyxVQUFVLENBQTlCLE1BQUEsRUFBdUMsQ0FBdkMsRUFBQSxFQUE0QztBQUMxQyxNQUFBLEVBQUUsQ0FBQyxVQUFVLENBQWIsQ0FBYSxDQUFYLENBQUY7QUFDRDtBQUhILEdBQUEsTUFJTyxJQUFJLFVBQVUsS0FBZCxJQUFBLEVBQXlCO0FBQzlCLElBQUEsRUFBRSxDQUFGLFVBQUUsQ0FBRjtBQUNEO0FBQ0Y7O0FBRUQsU0FBQSxNQUFBLENBQUEsVUFBQSxFQUFBLElBQUEsRUFBQSxPQUFBLEVBQTRGO0FBQzFGLE1BQUEsS0FBQSxFQUFXO0FBQ1QsUUFBSSxnQkFBZ0IsR0FBRyxVQUFVLEtBQWpDLElB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QUFLLEdBQUcsSUFBQSxLQUFBLGtFQUFaLGVBQVksQ0FBWjtBQUlBLE1BQUEsS0FBSyxDQUFMLFlBQUEsR0FBQSxXQUFBO0FBRUEsWUFBQSxLQUFBO0FBQ0Q7QUE3QkgsR0FBQTtBQStCRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERFQlVHIH0gZnJvbSAnQGdsaW1tZXIvZW52JztcbmltcG9ydCB7IERlc3Ryb3lhYmxlLCBEZXN0cnVjdG9yIH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBkZWJ1Z1RvU3RyaW5nIH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5pbXBvcnQgeyBzY2hlZHVsZURlc3Ryb3ksIHNjaGVkdWxlRGVzdHJveWVkIH0gZnJvbSAnQGdsaW1tZXIvZ2xvYmFsLWNvbnRleHQnO1xuXG5jb25zdCBlbnVtIERlc3Ryb3lpbmdTdGF0ZSB7XG4gIExpdmUgPSAwLFxuICBEZXN0cm95aW5nID0gMSxcbiAgRGVzdHJveWVkID0gMixcbn1cblxudHlwZSBPbmVPck1hbnk8VD4gPSBudWxsIHwgVCB8IFRbXTtcblxuaW50ZXJmYWNlIERlc3Ryb3lhYmxlTWV0YTxUIGV4dGVuZHMgRGVzdHJveWFibGU+IHtcbiAgc291cmNlPzogVDtcbiAgcGFyZW50czogT25lT3JNYW55PERlc3Ryb3lhYmxlPjtcbiAgY2hpbGRyZW46IE9uZU9yTWFueTxEZXN0cm95YWJsZT47XG4gIGVhZ2VyRGVzdHJ1Y3RvcnM6IE9uZU9yTWFueTxEZXN0cnVjdG9yPFQ+PjtcbiAgZGVzdHJ1Y3RvcnM6IE9uZU9yTWFueTxEZXN0cnVjdG9yPFQ+PjtcbiAgc3RhdGU6IERlc3Ryb3lpbmdTdGF0ZTtcbn1cblxuaW50ZXJmYWNlIFVuZGVzdHJveWVkRGVzdHJveWFibGVzRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGRlc3Ryb3lhYmxlczogb2JqZWN0W107XG59XG5cbmxldCBERVNUUk9ZQUJMRV9NRVRBOlxuICB8IE1hcDxEZXN0cm95YWJsZSwgRGVzdHJveWFibGVNZXRhPERlc3Ryb3lhYmxlPj5cbiAgfCBXZWFrTWFwPERlc3Ryb3lhYmxlLCBEZXN0cm95YWJsZU1ldGE8RGVzdHJveWFibGU+PiA9IG5ldyBXZWFrTWFwKCk7XG5cbmZ1bmN0aW9uIHB1c2g8VCBleHRlbmRzIG9iamVjdD4oY29sbGVjdGlvbjogT25lT3JNYW55PFQ+LCBuZXdJdGVtOiBUKTogT25lT3JNYW55PFQ+IHtcbiAgaWYgKGNvbGxlY3Rpb24gPT09IG51bGwpIHtcbiAgICByZXR1cm4gbmV3SXRlbTtcbiAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGNvbGxlY3Rpb24pKSB7XG4gICAgY29sbGVjdGlvbi5wdXNoKG5ld0l0ZW0pO1xuICAgIHJldHVybiBjb2xsZWN0aW9uO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBbY29sbGVjdGlvbiwgbmV3SXRlbV07XG4gIH1cbn1cblxuZnVuY3Rpb24gaXRlcmF0ZTxUIGV4dGVuZHMgb2JqZWN0Pihjb2xsZWN0aW9uOiBPbmVPck1hbnk8VD4sIGZuOiAoaXRlbTogVCkgPT4gdm9pZCkge1xuICBpZiAoQXJyYXkuaXNBcnJheShjb2xsZWN0aW9uKSkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29sbGVjdGlvbi5sZW5ndGg7IGkrKykge1xuICAgICAgZm4oY29sbGVjdGlvbltpXSk7XG4gICAgfVxuICB9IGVsc2UgaWYgKGNvbGxlY3Rpb24gIT09IG51bGwpIHtcbiAgICBmbihjb2xsZWN0aW9uKTtcbiAgfVxufVxuXG5mdW5jdGlvbiByZW1vdmU8VCBleHRlbmRzIG9iamVjdD4oY29sbGVjdGlvbjogT25lT3JNYW55PFQ+LCBpdGVtOiBULCBtZXNzYWdlOiBzdHJpbmcgfCBmYWxzZSkge1xuICBpZiAoREVCVUcpIHtcbiAgICBsZXQgY29sbGVjdGlvbklzSXRlbSA9IGNvbGxlY3Rpb24gPT09IGl0ZW07XG4gICAgbGV0IGNvbGxlY3Rpb25Db250YWluc0l0ZW0gPSBBcnJheS5pc0FycmF5KGNvbGxlY3Rpb24pICYmIGNvbGxlY3Rpb24uaW5kZXhPZihpdGVtKSAhPT0gLTE7XG5cbiAgICBpZiAoIWNvbGxlY3Rpb25Jc0l0ZW0gJiYgIWNvbGxlY3Rpb25Db250YWluc0l0ZW0pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihTdHJpbmcobWVzc2FnZSkpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChBcnJheS5pc0FycmF5KGNvbGxlY3Rpb24pICYmIGNvbGxlY3Rpb24ubGVuZ3RoID4gMSkge1xuICAgIGxldCBpbmRleCA9IGNvbGxlY3Rpb24hLmluZGV4T2YoaXRlbSk7XG4gICAgY29sbGVjdGlvbiEuc3BsaWNlKGluZGV4LCAxKTtcbiAgICByZXR1cm4gY29sbGVjdGlvbjtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXREZXN0cm95YWJsZU1ldGE8VCBleHRlbmRzIERlc3Ryb3lhYmxlPihkZXN0cm95YWJsZTogVCk6IERlc3Ryb3lhYmxlTWV0YTxUPiB7XG4gIGxldCBtZXRhID0gREVTVFJPWUFCTEVfTUVUQS5nZXQoZGVzdHJveWFibGUpO1xuXG4gIGlmIChtZXRhID09PSB1bmRlZmluZWQpIHtcbiAgICBtZXRhID0ge1xuICAgICAgcGFyZW50czogbnVsbCxcbiAgICAgIGNoaWxkcmVuOiBudWxsLFxuICAgICAgZWFnZXJEZXN0cnVjdG9yczogbnVsbCxcbiAgICAgIGRlc3RydWN0b3JzOiBudWxsLFxuICAgICAgc3RhdGU6IERlc3Ryb3lpbmdTdGF0ZS5MaXZlLFxuICAgIH07XG5cbiAgICBpZiAoREVCVUcpIHtcbiAgICAgIG1ldGEuc291cmNlID0gZGVzdHJveWFibGUgYXMgb2JqZWN0O1xuICAgIH1cblxuICAgIERFU1RST1lBQkxFX01FVEEuc2V0KGRlc3Ryb3lhYmxlLCBtZXRhKTtcbiAgfVxuXG4gIHJldHVybiAobWV0YSBhcyB1bmtub3duKSBhcyBEZXN0cm95YWJsZU1ldGE8VD47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3NvY2lhdGVEZXN0cm95YWJsZUNoaWxkPFQgZXh0ZW5kcyBEZXN0cm95YWJsZT4ocGFyZW50OiBEZXN0cm95YWJsZSwgY2hpbGQ6IFQpOiBUIHtcbiAgaWYgKERFQlVHICYmIGlzRGVzdHJveWluZyhwYXJlbnQpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0F0dGVtcHRlZCB0byBhc3NvY2lhdGUgYSBkZXN0cm95YWJsZSBjaGlsZCB3aXRoIGFuIG9iamVjdCB0aGF0IGlzIGFscmVhZHkgZGVzdHJveWluZyBvciBkZXN0cm95ZWQnXG4gICAgKTtcbiAgfVxuXG4gIGxldCBwYXJlbnRNZXRhID0gZ2V0RGVzdHJveWFibGVNZXRhKHBhcmVudCk7XG4gIGxldCBjaGlsZE1ldGEgPSBnZXREZXN0cm95YWJsZU1ldGEoY2hpbGQpO1xuXG4gIHBhcmVudE1ldGEuY2hpbGRyZW4gPSBwdXNoKHBhcmVudE1ldGEuY2hpbGRyZW4sIGNoaWxkKTtcbiAgY2hpbGRNZXRhLnBhcmVudHMgPSBwdXNoKGNoaWxkTWV0YS5wYXJlbnRzLCBwYXJlbnQpO1xuXG4gIHJldHVybiBjaGlsZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyRGVzdHJ1Y3RvcjxUIGV4dGVuZHMgRGVzdHJveWFibGU+KFxuICBkZXN0cm95YWJsZTogVCxcbiAgZGVzdHJ1Y3RvcjogRGVzdHJ1Y3RvcjxUPixcbiAgZWFnZXIgPSBmYWxzZVxuKTogRGVzdHJ1Y3RvcjxUPiB7XG4gIGlmIChERUJVRyAmJiBpc0Rlc3Ryb3lpbmcoZGVzdHJveWFibGUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0F0dGVtcHRlZCB0byByZWdpc3RlciBhIGRlc3RydWN0b3Igd2l0aCBhbiBvYmplY3QgdGhhdCBpcyBhbHJlYWR5IGRlc3Ryb3lpbmcgb3IgZGVzdHJveWVkJ1xuICAgICk7XG4gIH1cblxuICBsZXQgbWV0YSA9IGdldERlc3Ryb3lhYmxlTWV0YShkZXN0cm95YWJsZSk7XG5cbiAgbGV0IGRlc3RydWN0b3JzS2V5OiAnZWFnZXJEZXN0cnVjdG9ycycgfCAnZGVzdHJ1Y3RvcnMnID1cbiAgICBlYWdlciA9PT0gdHJ1ZSA/ICdlYWdlckRlc3RydWN0b3JzJyA6ICdkZXN0cnVjdG9ycyc7XG5cbiAgbWV0YVtkZXN0cnVjdG9yc0tleV0gPSBwdXNoKG1ldGFbZGVzdHJ1Y3RvcnNLZXldLCBkZXN0cnVjdG9yKTtcblxuICByZXR1cm4gZGVzdHJ1Y3Rvcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVucmVnaXN0ZXJEZXN0cnVjdG9yPFQgZXh0ZW5kcyBEZXN0cm95YWJsZT4oXG4gIGRlc3Ryb3lhYmxlOiBULFxuICBkZXN0cnVjdG9yOiBEZXN0cnVjdG9yPFQ+LFxuICBlYWdlciA9IGZhbHNlXG4pOiB2b2lkIHtcbiAgaWYgKERFQlVHICYmIGlzRGVzdHJveWluZyhkZXN0cm95YWJsZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQXR0ZW1wdGVkIHRvIHVucmVnaXN0ZXIgYSBkZXN0cnVjdG9yIHdpdGggYW4gb2JqZWN0IHRoYXQgaXMgYWxyZWFkeSBkZXN0cm95aW5nIG9yIGRlc3Ryb3llZCdcbiAgICApO1xuICB9XG5cbiAgbGV0IG1ldGEgPSBnZXREZXN0cm95YWJsZU1ldGEoZGVzdHJveWFibGUpO1xuXG4gIGxldCBkZXN0cnVjdG9yc0tleTogJ2VhZ2VyRGVzdHJ1Y3RvcnMnIHwgJ2Rlc3RydWN0b3JzJyA9XG4gICAgZWFnZXIgPT09IHRydWUgPyAnZWFnZXJEZXN0cnVjdG9ycycgOiAnZGVzdHJ1Y3RvcnMnO1xuXG4gIG1ldGFbZGVzdHJ1Y3RvcnNLZXldID0gcmVtb3ZlKFxuICAgIG1ldGFbZGVzdHJ1Y3RvcnNLZXldLFxuICAgIGRlc3RydWN0b3IsXG4gICAgREVCVUcgJiYgJ2F0dGVtcHRlZCB0byByZW1vdmUgYSBkZXN0cnVjdG9yIHRoYXQgd2FzIG5vdCByZWdpc3RlcmVkIHdpdGggdGhlIGRlc3Ryb3lhYmxlJ1xuICApO1xufVxuXG4vLy8vLy8vLy8vLy9cblxuZXhwb3J0IGZ1bmN0aW9uIGRlc3Ryb3koZGVzdHJveWFibGU6IERlc3Ryb3lhYmxlKSB7XG4gIGxldCBtZXRhID0gZ2V0RGVzdHJveWFibGVNZXRhKGRlc3Ryb3lhYmxlKTtcblxuICBpZiAobWV0YS5zdGF0ZSA+PSBEZXN0cm95aW5nU3RhdGUuRGVzdHJveWluZykgcmV0dXJuO1xuXG4gIGxldCB7IHBhcmVudHMsIGNoaWxkcmVuLCBlYWdlckRlc3RydWN0b3JzLCBkZXN0cnVjdG9ycyB9ID0gbWV0YTtcblxuICBtZXRhLnN0YXRlID0gRGVzdHJveWluZ1N0YXRlLkRlc3Ryb3lpbmc7XG5cbiAgaXRlcmF0ZShjaGlsZHJlbiwgZGVzdHJveSk7XG4gIGl0ZXJhdGUoZWFnZXJEZXN0cnVjdG9ycywgKGRlc3RydWN0b3IpID0+IGRlc3RydWN0b3IoZGVzdHJveWFibGUpKTtcbiAgaXRlcmF0ZShkZXN0cnVjdG9ycywgKGRlc3RydWN0b3IpID0+IHNjaGVkdWxlRGVzdHJveShkZXN0cm95YWJsZSwgZGVzdHJ1Y3RvcikpO1xuXG4gIHNjaGVkdWxlRGVzdHJveWVkKCgpID0+IHtcbiAgICBpdGVyYXRlKHBhcmVudHMsIChwYXJlbnQpID0+IHJlbW92ZUNoaWxkRnJvbVBhcmVudChkZXN0cm95YWJsZSwgcGFyZW50KSk7XG5cbiAgICBtZXRhLnN0YXRlID0gRGVzdHJveWluZ1N0YXRlLkRlc3Ryb3llZDtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZUNoaWxkRnJvbVBhcmVudChjaGlsZDogRGVzdHJveWFibGUsIHBhcmVudDogRGVzdHJveWFibGUpIHtcbiAgbGV0IHBhcmVudE1ldGEgPSBnZXREZXN0cm95YWJsZU1ldGEocGFyZW50KTtcblxuICBpZiAocGFyZW50TWV0YS5zdGF0ZSA9PT0gRGVzdHJveWluZ1N0YXRlLkxpdmUpIHtcbiAgICBwYXJlbnRNZXRhLmNoaWxkcmVuID0gcmVtb3ZlKFxuICAgICAgcGFyZW50TWV0YS5jaGlsZHJlbixcbiAgICAgIGNoaWxkLFxuICAgICAgREVCVUcgJiZcbiAgICAgICAgXCJhdHRlbXB0ZWQgdG8gcmVtb3ZlIGNoaWxkIGZyb20gcGFyZW50LCBidXQgdGhlIHBhcmVudCdzIGNoaWxkcmVuIGRpZCBub3QgY29udGFpbiB0aGUgY2hpbGQuIFRoaXMgaXMgbGlrZWx5IGEgYnVnIHdpdGggZGVzdHJ1Y3RvcnMuXCJcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZXN0cm95Q2hpbGRyZW4oZGVzdHJveWFibGU6IERlc3Ryb3lhYmxlKSB7XG4gIGxldCB7IGNoaWxkcmVuIH0gPSBnZXREZXN0cm95YWJsZU1ldGEoZGVzdHJveWFibGUpO1xuXG4gIGl0ZXJhdGUoY2hpbGRyZW4sIGRlc3Ryb3kpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gX2hhc0Rlc3Ryb3lhYmxlQ2hpbGRyZW4oZGVzdHJveWFibGU6IERlc3Ryb3lhYmxlKSB7XG4gIGxldCBtZXRhID0gREVTVFJPWUFCTEVfTUVUQS5nZXQoZGVzdHJveWFibGUpO1xuXG4gIHJldHVybiBtZXRhID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IG1ldGEuY2hpbGRyZW4gIT09IG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Rlc3Ryb3lpbmcoZGVzdHJveWFibGU6IERlc3Ryb3lhYmxlKSB7XG4gIGxldCBtZXRhID0gREVTVFJPWUFCTEVfTUVUQS5nZXQoZGVzdHJveWFibGUpO1xuXG4gIHJldHVybiBtZXRhID09PSB1bmRlZmluZWQgPyBmYWxzZSA6IG1ldGEuc3RhdGUgPj0gRGVzdHJveWluZ1N0YXRlLkRlc3Ryb3lpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Rlc3Ryb3llZChkZXN0cm95YWJsZTogRGVzdHJveWFibGUpIHtcbiAgbGV0IG1ldGEgPSBERVNUUk9ZQUJMRV9NRVRBLmdldChkZXN0cm95YWJsZSk7XG5cbiAgcmV0dXJuIG1ldGEgPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogbWV0YS5zdGF0ZSA+PSBEZXN0cm95aW5nU3RhdGUuRGVzdHJveWVkO1xufVxuXG4vLy8vLy8vLy8vLy9cblxuZXhwb3J0IGxldCBlbmFibGVEZXN0cm95YWJsZVRyYWNraW5nOiB1bmRlZmluZWQgfCAoKCkgPT4gdm9pZCk7XG5leHBvcnQgbGV0IGFzc2VydERlc3Ryb3lhYmxlc0Rlc3Ryb3llZDogdW5kZWZpbmVkIHwgKCgpID0+IHZvaWQpO1xuXG5pZiAoREVCVUcpIHtcbiAgbGV0IGlzVGVzdGluZyA9IGZhbHNlO1xuXG4gIGVuYWJsZURlc3Ryb3lhYmxlVHJhY2tpbmcgPSAoKSA9PiB7XG4gICAgaWYgKGlzVGVzdGluZykge1xuICAgICAgLy8gUmVzZXQgZGVzdHJveWFibGUgbWV0YSBqdXN0IGluIGNhc2UsIGJlZm9yZSB0aHJvd2luZyB0aGUgZXJyb3JcbiAgICAgIERFU1RST1lBQkxFX01FVEEgPSBuZXcgV2Vha01hcCgpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQXR0ZW1wdGVkIHRvIHN0YXJ0IGRlc3Ryb3lhYmxlIHRlc3RpbmcsIGJ1dCB5b3UgZGlkIG5vdCBlbmQgdGhlIHByZXZpb3VzIGRlc3Ryb3lhYmxlIHRlc3QuIERpZCB5b3UgZm9yZ2V0IHRvIGNhbGwgYGFzc2VydERlc3Ryb3lhYmxlc0Rlc3Ryb3llZCgpYCdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaXNUZXN0aW5nID0gdHJ1ZTtcbiAgICBERVNUUk9ZQUJMRV9NRVRBID0gbmV3IE1hcCgpO1xuICB9O1xuXG4gIGFzc2VydERlc3Ryb3lhYmxlc0Rlc3Ryb3llZCA9ICgpID0+IHtcbiAgICBpZiAoIWlzVGVzdGluZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnQXR0ZW1wdGVkIHRvIGFzc2VydCBkZXN0cm95YWJsZXMgZGVzdHJveWVkLCBidXQgeW91IGRpZCBub3Qgc3RhcnQgYSBkZXN0cm95YWJsZSB0ZXN0LiBEaWQgeW91IGZvcmdldCB0byBjYWxsIGBlbmFibGVEZXN0cm95YWJsZVRyYWNraW5nKClgJ1xuICAgICAgKTtcbiAgICB9XG5cbiAgICBpc1Rlc3RpbmcgPSBmYWxzZTtcblxuICAgIGxldCBtYXAgPSBERVNUUk9ZQUJMRV9NRVRBIGFzIE1hcDxEZXN0cm95YWJsZSwgRGVzdHJveWFibGVNZXRhPERlc3Ryb3lhYmxlPj47XG4gICAgREVTVFJPWUFCTEVfTUVUQSA9IG5ldyBXZWFrTWFwKCk7XG5cbiAgICBsZXQgdW5kZXN0cm95ZWQ6IG9iamVjdFtdID0gW107XG5cbiAgICBtYXAuZm9yRWFjaCgobWV0YSkgPT4ge1xuICAgICAgaWYgKG1ldGEuc3RhdGUgIT09IERlc3Ryb3lpbmdTdGF0ZS5EZXN0cm95ZWQpIHtcbiAgICAgICAgdW5kZXN0cm95ZWQucHVzaChtZXRhLnNvdXJjZSEpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKHVuZGVzdHJveWVkLmxlbmd0aCA+IDApIHtcbiAgICAgIGxldCBvYmplY3RzVG9TdHJpbmcgPSB1bmRlc3Ryb3llZC5tYXAoZGVidWdUb1N0cmluZyEpLmpvaW4oJ1xcbiAgICAnKTtcbiAgICAgIGxldCBlcnJvciA9IG5ldyBFcnJvcihcbiAgICAgICAgYFNvbWUgZGVzdHJveWFibGVzIHdlcmUgbm90IGRlc3Ryb3llZCBkdXJpbmcgdGhpcyB0ZXN0OlxcbiAgICAke29iamVjdHNUb1N0cmluZ31gXG4gICAgICApIGFzIFVuZGVzdHJveWVkRGVzdHJveWFibGVzRXJyb3I7XG5cbiAgICAgIGVycm9yLmRlc3Ryb3lhYmxlcyA9IHVuZGVzdHJveWVkO1xuXG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH07XG59XG4iXSwic291cmNlUm9vdCI6IiJ9 |
@@ -7,2 +7,3 @@ import { Destroyable, Destructor } from '@glimmer/interfaces'; | ||
export declare function destroyChildren(destroyable: Destroyable): void; | ||
export declare function _hasDestroyableChildren(destroyable: Destroyable): boolean; | ||
export declare function isDestroying(destroyable: Destroyable): boolean; | ||
@@ -9,0 +10,0 @@ export declare function isDestroyed(destroyable: Destroyable): boolean; |
{ | ||
"name": "@glimmer/destroyable", | ||
"version": "0.76.0", | ||
"version": "0.77.0", | ||
"repository": "https://github.com/glimmerjs/glimmer-vm/tree/master/packages/@glimmer/destroyable", | ||
@@ -9,5 +9,5 @@ "description": "Utilities for creating and managing a destroyable hierarchy of objects", | ||
"@glimmer/env": "0.1.7", | ||
"@glimmer/global-context": "0.76.0", | ||
"@glimmer/interfaces": "0.76.0", | ||
"@glimmer/util": "0.76.0" | ||
"@glimmer/global-context": "0.77.0", | ||
"@glimmer/interfaces": "0.77.0", | ||
"@glimmer/util": "0.77.0" | ||
}, | ||
@@ -14,0 +14,0 @@ "main": "dist/commonjs/es2017/index.js", |
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
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
126967
1014
+ Added@glimmer/global-context@0.77.0(transitive)
+ Added@glimmer/interfaces@0.77.0(transitive)
+ Added@glimmer/util@0.77.0(transitive)
- Removed@glimmer/global-context@0.76.0(transitive)
- Removed@glimmer/interfaces@0.76.0(transitive)
- Removed@glimmer/util@0.76.0(transitive)
Updated@glimmer/interfaces@0.77.0
Updated@glimmer/util@0.77.0