@bizdoc/core 1.16.24 → 1.16.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -27,7 +27,7 @@ import * as i18 from "../../core/pipes/translate.pipe";
27
27
  import * as i19 from "../utility-ref";
28
28
  const IGNORE_NODE = ['author', 'history', 'targetDecorator', 'sourceDecorator', 'offsetX', 'offsetY', 'rotateAngle', 'width', 'height',
29
29
  'style', 'segments', 'offset', 'targetPortID', 'sourcePortID', 'horizontalAlignment', 'verticalAlignment', 'workflow.timestamp',
30
- 'connectors.constraints', 'nodes.constraints', 'annotations.constraints', 'annotations.id'], SVG_PATH_REGEX = /^[mM].+[zZ]$/, INDEX_PROPERTY = ['name', 'id'], DATA_TYPE = 'dataType', ORIGINAL_VALUE = '_', STATE = '__';
30
+ 'connectors.constraints', 'nodes.constraints', 'annotations.constraints', 'annotations.id'], SVG_PATH_REGEX = /^[mM].+[zZ]$/, INDEX_PROPERTY = ['name', 'id', 'dataType'], DATA_TYPE = 'dataType', ORIGINAL_VALUE = '_', STATE = '__';
31
31
  let SystemDiffComponent = class SystemDiffComponent {
32
32
  /** ctor */
33
33
  constructor(_sb, _utilityRef, _translate, _ds, _accounts) {
@@ -555,4 +555,4 @@ var TokenKind;
555
555
  TokenKind[TokenKind["ObjectStart"] = 3] = "ObjectStart";
556
556
  TokenKind[TokenKind["ObjectEnd"] = 4] = "ObjectEnd";
557
557
  })(TokenKind || (TokenKind = {}));
558
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi1kaWZmLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYWRtaW4vZGlmZi9jb25maWd1cmF0aW9uLWRpZmYuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9kaWZmL2NvbmZpZ3VyYXRpb24tZGlmZi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxFQUFFLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQy9DLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRW5FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTTVDLE1BQU0sV0FBVyxHQUFHLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsUUFBUTtJQUNwSSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLHFCQUFxQixFQUFFLG1CQUFtQixFQUFFLG9CQUFvQjtJQUMvSCx3QkFBd0IsRUFBRSxtQkFBbUIsRUFBRSx5QkFBeUIsRUFBRSxnQkFBZ0IsQ0FBQyxFQUMzRixjQUFjLEdBQUcsY0FBYyxFQUMvQixjQUFjLEdBQUcsQ0FB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QUFVLENBQUMsSUFBSSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0NBQ0YsQ0FBQTtnSEE5ZVksbUJBQW1CLCtDQWlCcEIsVUFBVTtvR0FqQlQsbUJBQW1CLDRMQzdCaEMscXpDQXdCQTtBREthLG1CQUFtQjtJQUYvQixNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsMkJBQTJCLEVBQUUsQ0FBQztJQUNsRCxlQUFlO0dBQ0YsbUJBQW1CLENBOGUvQjtTQTllWSxtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFUL0IsU0FBUzsyQkFHRjt3QkFDSixLQUFLLEVBQUUsTUFBTTtxQkFDZDs7MEJBcUJFLE1BQU07MkJBQUMsVUFBVTt3SUFoQkcsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVOztBQTZmdkIsSUFBSyxXQUtKO0FBTEQsV0FBSyxXQUFXO0lBQ2QsdURBQVMsQ0FBQTtJQUNULCtDQUFLLENBQUE7SUFDTCxxREFBUSxDQUFBO0lBQ1IsbURBQU8sQ0FBQTtBQUNULENBQUMsRUFMSSxXQUFXLEtBQVgsV0FBVyxRQUtmO0FBQ0QsSUFBSyxTQU1KO0FBTkQsV0FBSyxTQUFTO0lBQ1osMkNBQUssQ0FBQTtJQUNMLHFEQUFVLENBQUE7SUFDVixpREFBUSxDQUFBO0lBQ1IsdURBQVcsQ0FBQTtJQUNYLG1EQUFTLENBQUE7QUFDWCxDQUFDLEVBTkksU0FBUyxLQUFULFNBQVMsUUFNYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIEluamVjdCwgVmlld0NoaWxkLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENhbGVuZGFyU3BlYyB9IGZyb20gXCIuLi8uLi9jb3JlL3BpcGVzL2NhbGVuZGFyLnBpcGVcIjtcclxuaW1wb3J0IHsgQml6RG9jIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzJztcclxuaW1wb3J0IHsgaXNBcnJheSwgaXNPYmplY3QsIGlzU3RyaW5nIH0gZnJvbSAnLi4vLi4vY29yZS9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBVdGlsaXR5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS9iYXNlJztcclxuaW1wb3J0IHsgVXRpbGl0eVJlZiB9IGZyb20gJy4uL3V0aWxpdHktcmVmJztcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvcHJvbXB0LnNlcnZpY2UnOyBcclxuaW1wb3J0IHsgQWNjb3VudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2FjY291bnQuc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YXNvdXJjZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2RhdGFzb3VyY2Uuc2VydmljZSc7XHJcblxyXG5jb25zdCBJR05PUkVfTk9ERSA9IFsnYXV0aG9yJywgJ2hpc3RvcnknLCAndGFyZ2V0RGVjb3JhdG9yJywgJ3NvdXJjZURlY29yYXRvcicsICdvZmZzZXRYJywgJ29mZnNldFknLCAncm90YXRlQW5nbGUnLCAnd2lkdGgnLCAnaGVpZ2h0JyxcclxuICAnc3R5bGUnLCAnc2VnbWVudHMnLCAnb2Zmc2V0JywgJ3RhcmdldFBvcnRJRCcsICdzb3VyY2VQb3J0SUQnLCAnaG9yaXpvbnRhbEFsaWdubWVudCcsICd2ZXJ0aWNhbEFsaWdubWVudCcsICd3b3JrZmxvdy50aW1lc3RhbXAnLFxyXG4gICdjb25uZWN0b3JzLmNvbnN0cmFpbnRzJywgJ25vZGVzLmNvbnN0cmFpbnRzJywgJ2Fubm90YXRpb25zLmNvbnN0cmFpbnRzJywgJ2Fubm90YXRpb25zLmlkJ10sXHJcbiAgU1ZHX1BBVEhfUkVHRVggPSAvXlttTV0uK1t6Wl0kLyxcclxuICBJTkRFWF9QUk9QRVJUWSA9IFsnbmFtZScsICdpZCddLCBEQVRBX1RZUEUgPSAnZGF0YVR5cGUnLCBPUklHSU5BTF9WQUxVRSA9ICdfJywgU1RBVEUgPSAnX18nO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb25maWd1cmF0aW9uLWRpZmYuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbmZpZ3VyYXRpb24tZGlmZi5jb21wb25lbnQuc2NzcyddLFxyXG4gIGhvc3Q6IHtcclxuICAgIGNsYXNzOiAncGFuZSdcclxuICB9XHJcbn0pXHJcbkBCaXpEb2MoeyBzZWxlY3RvcjogJ2JpemRvYy1jb25maWd1cmF0aW9uLWRpZmYnIH0pXHJcbi8qKiBjb21wb25lbnQqL1xyXG5leHBvcnQgY2xhc3MgU3lzdGVtRGlmZkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBVdGlsaXR5Q29tcG9uZW50IHtcclxuICBAVmlld0NoaWxkKCdjb250ZW50cycpIGNvbnRlbnRzOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcclxuICBodG1sID0gJyc7XHJcbiAgdmVyc2lvbnM6IFZlcnNpb25JbmZvW107XHJcbiAgYWN0aXZlRGF0ZTogRGF0ZTtcclxuICBwcm9ncmVzcyA9IDA7XHJcbiAgbm9uZTogYm9vbGVhbjtcclxuICBwcml2YXRlIF93b3JraW5nID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xyXG4gIHJlYWRvbmx5IENBTEVOREFSX1NQRUM6IENhbGVuZGFyU3BlYyA9IHtcclxuICAgIGxhc3REYXk6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1llc3RlcmRheUF0JywgJ0hIOm1tJyksXHJcbiAgICBsYXN0V2VlazogJ2RkZCBISDptbScsXHJcbiAgICBzYW1lRGF5OiAnSEg6bW0nLFxyXG4gICAgc2FtZUVsc2U6ICdNTU0gRCBISDptbSdcclxuICB9O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIC8qKiBjdG9yICovXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc2I6IFByb21wdFNlcnZpY2UsXHJcbiAgICBASW5qZWN0KFV0aWxpdHlSZWYpIHByaXZhdGUgX3V0aWxpdHlSZWY6IFV0aWxpdHlSZWY8Q29uZmlndXJ0aW9uSW5mb1tdLCBDb21wYXJlTW9kZWwsIFZlcnNpb25JbmZvW10sIG51bWJlcj4sXHJcbiAgICBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kczogRGF0YXNvdXJjZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9hY2NvdW50czogQWNjb3VudFNlcnZpY2UpIHtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAvLyBkZWxheSBwcm9ncmVzc1xyXG4gICAgdGhpcy5fd29ya2luZy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSwgZGVib3VuY2VUaW1lKDEwMCkpLnN1YnNjcmliZSh2ID0+IHYgJiYgKHRoaXMucHJvZ3Jlc3MgPSB2KSk7XHJcbiAgICB0aGlzLl93b3JraW5nLm5leHQoNTApO1xyXG4gICAgLy8gcG9wdWxhdGUgdmVyc2lvbnNcclxuICAgIHRoaXMuX3V0aWxpdHlSZWYucG9wdWxhdGUoKS5zdWJzY3JpYmUoZSA9PiB7XHJcbiAgICAgIHRoaXMudmVyc2lvbnMgPSBlO1xyXG4gICAgICB0aGlzLl93b3JraW5nLm5leHQoMTAwKTtcclxuICAgICAgZS5sZW5ndGggPiAxICYmXHJcbiAgICAgICAgdGhpcy5jb21wYXJlKDApO1xyXG4gICAgfSwgKCkgPT4gdGhpcy5fc2IuZXJyb3IoKSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBpbmRleFxyXG4gICAqL1xyXG4gIGNvbXBhcmUoaW5kZXg6IG51bWJlcikge1xyXG4gICAgY29uc3QgeyB0aW1lOiBkYXRlMSwgZmlsZSB9ID0gdGhpcy52ZXJzaW9uc1tpbmRleF0sXHJcbiAgICAgIHZlcnNpb24gPSB0aGlzLnZlcnNpb25zLnNsaWNlKGluZGV4ICsgMSkuZmluZCh2ID0+IHYuZmlsZSA9PT0gZmlsZSk7XHJcbiAgICBpZiAoIXZlcnNpb24pIHJldHVybjtcclxuICAgIGNvbnN0IHsgdGltZTogZGF0ZTIgfSA9IHZlcnNpb247XHJcbiAgICB0aGlzLl93b3JraW5nLm5leHQoMjUpO1xyXG4gICAgdGhpcy5fdXRpbGl0eVJlZi5leGVjdXRlKHsgZGF0ZTEsIGRhdGUyIH0pLnN1YnNjcmliZShyID0+IHtcclxuICAgICAgdGhpcy5odG1sID0gJyc7XHJcbiAgICAgIHRoaXMuX3dvcmtpbmcubmV4dCg1MCk7XHJcbiAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IGRhdGUxO1xyXG4gICAgICBjb25zdCByZXN1bHRzID0gdGhpcy5fY29tcGFyZShyWzBdLCByWzFdKTtcclxuICAgICAgaWYgKHJlc3VsdHMpIHJlc3VsdHMudGhlbihkID0+IHtcclxuICAgICAgICB0aGlzLl93b3JraW5nLm5leHQoNzUpO1xyXG4gICAgICAgIHRoaXMuaHRtbCA9IHRoaXMuX2dlbmVyYXRlKGQpO1xyXG4gICAgICAgIHRoaXMuX3Njcm9sbFRvcCgpO1xyXG4gICAgICAgIHRoaXMuX3dvcmtpbmcubmV4dCgxMDApO1xyXG4gICAgICAgIHRoaXMubm9uZSA9IGZhbHNlO1xyXG4gICAgICB9KTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5fd29ya2luZy5uZXh0KDEwMCk7XHJcbiAgICAgICAgdGhpcy5ub25lID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSwgKCkgPT4gdGhpcy5fc2IuZXJyb3IoKSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3Njcm9sbFRvcCgpIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jb250ZW50cy5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQuc2Nyb2xsKHsgdG9wOiAwLCBiZWhhdmlvcjogJ3Ntb290aCcgfSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGFcclxuICAgKiBAcGFyYW0gYlxyXG4gICAqIEBwYXJhbSBkaWZmXHJcbiAgICogQHBhcmFtIHNjb3BlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfY29tcGFyZShhOiB7fSB8IFtdLCBiOiB7fSB8IFtdLCBkaWZmOiB7fSB8IFtdID0ge30sIHNjb3BlOiBTY29wZSA9IHsgbm9kZXM6IFtdIH0pOiBQcm9taXNlPHt9IHwgW10+IHwgZmFsc2Uge1xyXG4gICAgY29uc3QgcHJvbWlzZXM6IFByb21pc2U8YW55PltdID0gW107XHJcbiAgICBpZiAoaXNBcnJheShhKSkge1xyXG4gICAgICBhLmZvckVhY2goKGUsIGkpID0+IHtcclxuICAgICAgICBjb25zdCBiVmFsID0gYltpXTtcclxuICAgICAgICBpZiAoZSA9PT0gYlZhbCkgcmV0dXJuO1xyXG4gICAgICAgIGVsc2UgaWYgKGlzT2JqZWN0KGUpKSB7XHJcbiAgICAgICAgICBjb25zdCBhSnNvbiA9IEpTT04uc3RyaW5naWZ5KGUpLCBiSnNvbiA9IEpTT04uc3RyaW5naWZ5KGJWYWwpO1xyXG4gICAgICAgICAgaWYgKGFKc29uID09PSBiSnNvbikgcmV0dXJuO1xyXG4gICAgICAgICAgaWYgKGJWYWwgJiYgdGhpcy5fbWF0Y2goYlZhbCwgZSkpIHtcclxuICAgICAgICAgICAgY29uc3Qgb2JqID0ge307XHJcbiAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSB0aGlzLl9jb21wYXJlKGUsIGJWYWwsIG9iaiwgeyBub2Rlczogc2NvcGUubm9kZXMsIHR5cGU6IGVbREFUQV9UWVBFXSB8fCBzY29wZS50eXBlIH0pO1xyXG4gICAgICAgICAgICBpZiAoIXByb21pc2UpIHJldHVybjtcclxuICAgICAgICAgICAgKGRpZmYgYXMgYW55W10pLnB1c2godGhpcy5fcmVrZXkoZSwgb2JqLCBzY29wZS5ub2RlcykpO1xyXG4gICAgICAgICAgICBwcm9taXNlcy5wdXNoKHByb21pc2UpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSBpZiAoKGIgYXMgW10pLmZpbmQoYiA9PiBKU09OLnN0cmluZ2lmeShiKSA9PT0gYUpzb24pKSByZXR1cm47XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgYk9iaiA9IChiIGFzIFtdKS5maW5kKGIgPT4gdGhpcy5fbWF0Y2goYiwgZSkpO1xyXG4gICAgICAgICAgICBpZiAoYk9iaikge1xyXG4gICAgICAgICAgICAgIGNvbnN0IG9iaiA9IHt9O1xyXG4gICAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSB0aGlzLl9jb21wYXJlKGUsIGJPYmosIG9iaiwgeyBub2Rlczogc2NvcGUubm9kZXMsIHR5cGU6IGVbREFUQV9UWVBFXSB8fCBzY29wZS50eXBlIH0pO1xyXG4gICAgICAgICAgICAgIGlmICghcHJvbWlzZSkgcmV0dXJuO1xyXG4gICAgICAgICAgICAgIChkaWZmIGFzIGFueVtdKS5wdXNoKHRoaXMuX3Jla2V5KGUsIG9iaiwgc2NvcGUubm9kZXMpKTtcclxuICAgICAgICAgICAgICBwcm9taXNlcy5wdXNoKHByb21pc2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIGNvbnN0IG9iaiA9IGlzQXJyYXkoZSkgPyBbXSA6IHt9O1xyXG4gICAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSB0aGlzLl9icmFuY2goZSwgb2JqLCB7IG5vZGVzOiBzY29wZS5ub2RlcywgdHlwZTogZVtEQVRBX1RZUEVdIHx8IHNjb3BlLnR5cGUgfSk7XHJcbiAgICAgICAgICAgICAgaWYgKCFwcm9taXNlKSByZXR1cm47XHJcbiAgICAgICAgICAgICAgY29uc3QgbGVuZ3RoID0gKGRpZmYgYXMgYW55W10pLnB1c2gob2JqKTtcclxuICAgICAgICAgICAgICBkaWZmW1NUQVRFICsgKGxlbmd0aCAtIDEpLnRvU3RyaW5nKCldID0gQ2hhbmdlU3RhdGUuQWRkZWQ7XHJcbiAgICAgICAgICAgICAgcHJvbWlzZXMucHVzaChwcm9taXNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICghKGIgYXMgW10pLmZpbmQoYiA9PiBiID09IGUpKSB7XHJcbiAgICAgICAgICBjb25zdCBsZW5ndGggPSAoZGlmZiBhcyBhbnlbXSkucHVzaChlKTtcclxuICAgICAgICAgIGlmIChzY29wZS5ub2Rlcy5pbmRleE9mKCdwb3NpdGlvbnMnKSA+IC0xKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSB0aGlzLl9hY2NvdW50cy5nZXQoZSkudG9Qcm9taXNlKCkudGhlbih2ID0+XHJcbiAgICAgICAgICAgICAgZGlmZltsZW5ndGggLSAxXSA9IHYubmFtZSk7XHJcbiAgICAgICAgICAgIHByb21pc2VzLnB1c2gocHJvbWlzZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkaWZmW1NUQVRFICsgKGxlbmd0aCAtIDEpLnRvU3RyaW5nKCldID0gQ2hhbmdlU3RhdGUuQWRkZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgKGIgYXMgW10pLmZvckVhY2goKGUsIGkpID0+IHtcclxuICAgICAgICBpZiAoZSAhPT0gYVtpXSkge1xyXG4gICAgICAgICAgaWYgKGlzT2JqZWN0KGUpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGJKc29uID0gSlNPTi5zdHJpbmdpZnkoZSk7XHJcbiAgICAgICAgICAgIGlmIChiSnNvbiA9PT0gSlNPTi5zdHJpbmdpZnkoYVtpXSkgfHwgKGEgYXMgW10pLmZpbmQoYSA9PiBKU09OLnN0cmluZ2lmeShhKSA9PT0gYkpzb24gfHxcclxuICAgICAgICAgICAgICB0aGlzLl9tYXRjaChhLCBlKSkpIHJldHVybjtcclxuICAgICAgICAgICAgY29uc3Qgb2JqID0gaXNBcnJheShlKSA/IFtdIDoge307XHJcbiAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSB0aGlzLl9icmFuY2goZSwgb2JqLCB7IG5vZGVzOiBzY29wZS5ub2RlcywgdHlwZTogZVtEQVRBX1RZUEVdIHx8IHNjb3BlLnR5cGUgfSk7XHJcbiAgICAgICAgICAgIGlmICghcHJvbWlzZSkgcmV0dXJuO1xyXG4gICAgICAgICAgICBjb25zdCBsZW5ndGggPSAoZGlmZiBhcyBhbnlbXSkucHVzaChvYmopO1xyXG4gICAgICAgICAgICBkaWZmW1NUQVRFICsgKGxlbmd0aCAtIDEpLnRvU3RyaW5nKCldID0gQ2hhbmdlU3RhdGUuUmVtb3ZlZDtcclxuICAgICAgICAgICAgcHJvbWlzZXMucHVzaChwcm9taXNlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2UgaWYgKCEoYSBhcyBbXSkuZmluZChhID0+IGEgPT0gZSkpIHtcclxuICAgICAgICAgICAgY29uc3QgbGVuZ3RoID0gKGRpZmYgYXMgW10pLnB1c2goZSk7XHJcbiAgICAgICAgICAgIGlmIChzY29wZS5ub2Rlcy5pbmRleE9mKCdwb3NpdGlvbnMnKSA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMuX2FjY291bnRzLmdldChlKS50b1Byb21pc2UoKS50aGVuKHYgPT5cclxuICAgICAgICAgICAgICAgIGRpZmZbbGVuZ3RoIC0gMV0gPSB2Lm5hbWUpO1xyXG4gICAgICAgICAgICAgIHByb21pc2VzLnB1c2gocHJvbWlzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZGlmZltTVEFURSArIChsZW5ndGggLSAxKS50b1N0cmluZygpXSA9IENoYW5nZVN0YXRlLlJlbW92ZWQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKCEoZGlmZiBhcyBhbnlbXSkubGVuZ3RoKSByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgT2JqZWN0LmtleXMoYSkuZm9yRWFjaChrID0+IHtcclxuICAgICAgICBpZiAodGhpcy5faWdub3JlKGssIHNjb3BlLm5vZGVzKSkgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IGFWYWwgPSBhW2tdLCBiVmFsID0gYltrXTtcclxuICAgICAgICBpZiAoYVZhbCA9PT0gYlZhbCkgcmV0dXJuO1xyXG4gICAgICAgIGVsc2UgaWYgKGlzT2JqZWN0KGFWYWwpKSB7XHJcbiAgICAgICAgICBpZiAoSlNPTi5zdHJpbmdpZnkoYVZhbCkgPT09IEpTT04uc3RyaW5naWZ5KGJWYWwpKSByZXR1cm47XHJcbiAgICAgICAgICBpZiAoYlZhbCAhPT0gdW5kZWZpbmVkICYmIGlzQXJyYXkoYlZhbCkgIT09IGlzQXJyYXkoYVZhbCkpIHtcclxuICAgICAgICAgICAgZGlmZltrXSA9IGFWYWw7XHJcbiAgICAgICAgICAgIGRpZmZbT1JJR0lOQUxfVkFMVUUgKyBrXSA9IGlzQXJyYXkoYlZhbCkgPyBiVmFsLmpvaW4oJywgJykgOiBiVmFsO1xyXG4gICAgICAgICAgICBkaWZmW1NUQVRFICsga10gPSBDaGFuZ2VTdGF0ZS5Nb2RpZmllZDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBsZXQgb2JqID0gaXNBcnJheShhVmFsKSA/IFtdIDoge30sXHJcbiAgICAgICAgICAgICAgZXh0cmEgPSB7IHR5cGU6IGFWYWxbREFUQV9UWVBFXSB8fCBzY29wZS50eXBlLCBub2RlczogWy4uLnNjb3BlLm5vZGVzLCBrXSB9IGFzIFNjb3BlO1xyXG4gICAgICAgICAgICBpZiAoYlZhbCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMuX2NvbXBhcmUoYVZhbCwgYlZhbCwgb2JqLCBleHRyYSk7XHJcbiAgICAgICAgICAgICAgaWYgKCFwcm9taXNlKSByZXR1cm47XHJcbiAgICAgICAgICAgICAgaWYgKCFpc0FycmF5KGFWYWwpKVxyXG4gICAgICAgICAgICAgICAgb2JqID0gdGhpcy5fcmVrZXkoYVZhbCwgb2JqLCBzY29wZS5ub2Rlcyk7XHJcbiAgICAgICAgICAgICAgcHJvbWlzZXMucHVzaChwcm9taXNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICBjb25zdCBwcm9taXNlID0gdGhpcy5fYnJhbmNoKGFWYWwsIG9iaiwgZXh0cmEpO1xyXG4gICAgICAgICAgICAgIGlmICghcHJvbWlzZSkgcmV0dXJuO1xyXG4gICAgICAgICAgICAgIHByb21pc2VzLnB1c2gocHJvbWlzZSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChzY29wZS5ub2Rlcy5pbmRleE9mKCdwb3NpdGlvbnMnKSA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgZGlmZltPUklHSU5BTF9WQUxVRSArIGtdID0gYVZhbDtcclxuICAgICAgICAgICAgICBjb25zdCBwcm9taXNlID0gdGhpcy5fZHMuZ2V0KHNjb3BlLnR5cGUsIGspLnRvUHJvbWlzZSgpLnRoZW4odiA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBuYW1lID0gaXNTdHJpbmcodikgPyB2IDogdltPYmplY3Qua2V5cyh2KVswXV07XHJcbiAgICAgICAgICAgICAgICBkaWZmW25hbWVdID0gb2JqXHJcbiAgICAgICAgICAgICAgICBpZiAoYlZhbCA9PT0gdW5kZWZpbmVkKSBkaWZmW1NUQVRFICsgbmFtZV0gPSBDaGFuZ2VTdGF0ZS5BZGRlZDtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICBwcm9taXNlcy5wdXNoKHByb21pc2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIGRpZmZba10gPSBvYmo7XHJcbiAgICAgICAgICAgICAgaWYgKGJWYWwgPT09IHVuZGVmaW5lZCkgZGlmZltTVEFURSArIGtdID0gQ2hhbmdlU3RhdGUuQWRkZWQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBkaWZmW2tdID0gYVZhbDtcclxuICAgICAgICAgIGlmIChrID09PSAndXNlcklkJykge1xyXG4gICAgICAgICAgICBjb25zdCBwcm9taXNlID0gdGhpcy5fYWNjb3VudHMuZ2V0KGFWYWwpLnRvUHJvbWlzZSgpLnRoZW4odiA9PlxyXG4gICAgICAgICAgICAgIGRpZmZba10gPSB2Lm5hbWUpO1xyXG4gICAgICAgICAgICBwcm9taXNlcy5wdXNoKHByb21pc2UpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGJWYWwgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBpZiAoayA9PT0gJ3VzZXJJZCcpIHtcclxuICAgICAgICAgICAgICBjb25zdCBwcm9taXNlID0gdGhpcy5fYWNjb3VudHMuZ2V0KGJWYWwpLnRvUHJvbWlzZSgpLnRoZW4odiA9PlxyXG4gICAgICAgICAgICAgICAgZGlmZltPUklHSU5BTF9WQUxVRSArIGtdID0gdi5uYW1lKTtcclxuICAgICAgICAgICAgICBwcm9taXNlcy5wdXNoKHByb21pc2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICBkaWZmW09SSUdJTkFMX1ZBTFVFICsga10gPSBiVmFsO1xyXG4gICAgICAgICAgICBkaWZmW1NUQVRFICsga10gPSBDaGFuZ2VTdGF0ZS5Nb2RpZmllZDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgZGlmZltTVEFURSArIGtdID0gQ2hhbmdlU3RhdGUuQWRkZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgT2JqZWN0LmtleXMoYikuZm9yRWFjaChrID0+IHtcclxuICAgICAgICBpZiAoYVtrXSAhPT0gdW5kZWZpbmVkIHx8IHRoaXMuX2lnbm9yZShrLCBzY29wZS5ub2RlcykpIHJldHVybjtcclxuICAgICAgICBjb25zdCBiVmFsID0gYltrXTtcclxuICAgICAgICBpZiAoc2NvcGUubm9kZXMuaW5kZXhPZigncG9zaXRpb25zJykgPiAtMSkge1xyXG4gICAgICAgICAgY29uc3Qgb2JqID0gW107XHJcbiAgICAgICAgICBkaWZmW09SSUdJTkFMX1ZBTFVFICsga10gPSBiVmFsO1xyXG4gICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMuX2RzLmdldChzY29wZS50eXBlLCBrKS50b1Byb21pc2UoKS50aGVuKHYgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBuYW1lID0gaXNTdHJpbmcodikgPyB2IDogdltPYmplY3Qua2V5cyh2KVswXV07XHJcbiAgICAgICAgICAgIGRpZmZbbmFtZV0gPSBvYmo7XHJcbiAgICAgICAgICAgIGRpZmZbU1RBVEUgKyBuYW1lXSA9IENoYW5nZVN0YXRlLlJlbW92ZWQ7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHByb21pc2VzLnB1c2gocHJvbWlzZSk7XHJcbiAgICAgICAgICBiVmFsICYmIChiVmFsIGFzIGFueVtdKS5mb3JFYWNoKChlLCBpKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSB0aGlzLl9hY2NvdW50cy5nZXQoZSkudG9Qcm9taXNlKCkudGhlbih2ID0+XHJcbiAgICAgICAgICAgICAgb2JqW2ldID0gdi5uYW1lKTtcclxuICAgICAgICAgICAgcHJvbWlzZXMucHVzaChwcm9taXNlKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGlmIChpc09iamVjdChiVmFsKSkge1xyXG4gICAgICAgICAgICBjb25zdCBvYmogPSBpc0FycmF5KGJWYWwpID8gW10gOiB7fTtcclxuICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMuX2JyYW5jaChiVmFsLCBvYmosIHsgdHlwZTogYlZhbFtEQVRBX1RZUEVdIHx8IHNjb3BlLnR5cGUsIG5vZGVzOiBbLi4uc2NvcGUubm9kZXMsIGtdIH0pO1xyXG4gICAgICAgICAgICBpZiAoIXByb21pc2UpIHJldHVybjtcclxuICAgICAgICAgICAgZGlmZltrXSA9IG9iajtcclxuICAgICAgICAgICAgcHJvbWlzZSAmJiBwcm9taXNlcy5wdXNoKHByb21pc2UpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGRpZmZba10gPSBiVmFsO1xyXG4gICAgICAgICAgICBpZiAoayA9PT0gJ3VzZXJJZCcpIHtcclxuICAgICAgICAgICAgICBjb25zdCBwcm9taXNlID0gdGhpcy5fYWNjb3VudHMuZ2V0KGJWYWwpLnRvUHJvbWlzZSgpLnRoZW4odiA9PlxyXG4gICAgICAgICAgICAgICAgZGlmZltrXSA9IHYubmFtZSk7XHJcbiAgICAgICAgICAgICAgcHJvbWlzZXMucHVzaChwcm9taXNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZGlmZltTVEFURSArIGtdID0gQ2hhbmdlU3RhdGUuUmVtb3ZlZDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAoIU9iamVjdC5rZXlzKGRpZmYpLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHByb21pc2VzLmxlbmd0aCA/IFByb21pc2UuYWxsKHByb21pc2VzKS50aGVuKCgpID0+IGRpZmYpIDogUHJvbWlzZS5yZXNvbHZlKGRpZmYpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gb2JqMVxyXG4gICAqIEBwYXJhbSBvYmoyXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfbWF0Y2gob2JqMTogYW55LCBvYmoyOiBhbnkpIHtcclxuICAgIHJldHVybiBJTkRFWF9QUk9QRVJUWS5maW5kSW5kZXgoayA9PiBvYmoxW2tdICYmIG9iajFba10gPT09IG9iajJba10pID4gLTE7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gYmFzZVxyXG4gICAqIEBwYXJhbSBvYmpcclxuICAgKiBAcGFyYW0gbm9kZXNcclxuICAgKi9cclxuICBwcml2YXRlIF9yZWtleShiYXNlOiB7fSwgb2JqOiB7fSwgbm9kZXM6IHN0cmluZ1tdKSB7XHJcbiAgICBjb25zdCBuZXdPYmogPSB7fTtcclxuICAgIGxldCBvayA9IGZhbHNlO1xyXG4gICAgSU5ERVhfUFJPUEVSVFkuZm9yRWFjaChrID0+IHtcclxuICAgICAgaWYgKHRoaXMuX2lnbm9yZShrLCBub2RlcykpIHJldHVybjtcclxuICAgICAgaWYgKGJhc2Vba10pIHtcclxuICAgICAgICBuZXdPYmpba10gPSBiYXNlW2tdO1xyXG4gICAgICAgIG9rID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gb2sgPyBPYmplY3QuYXNzaWduKG5ld09iaiwgb2JqKSA6IG9iajtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBuYW1lXHJcbiAgICogQHBhcmFtIG5vZGVzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfaWdub3JlKG5hbWU6IHN0cmluZywgbm9kZXM6IHN0cmluZ1tdKSB7XHJcbiAgICByZXR1cm4gSUdOT1JFX05PREUuaW5kZXhPZihuYW1lKSA+IC0xIHx8IElHTk9SRV9OT0RFLmluZGV4T2Yobm9kZXNbbm9kZXMubGVuZ3RoIC0gMV0gKyAnLicgKyBuYW1lKSA+IC0xO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gYmFzZVxyXG4gICAqIEBwYXJhbSBwcmVzdGluZVxyXG4gICAqIEBwYXJhbSBzY29wZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2JyYW5jaChiYXNlOiB7fSB8IFtdLCBwcmVzdGluZToge30gfCBbXSwgc2NvcGU6IFNjb3BlKTogUHJvbWlzZTxhbnk+IHwgZmFsc2Uge1xyXG4gICAgY29uc3QgcHJvbWlzZXM6IFByb21pc2U8YW55PltdID0gW107XHJcbiAgICBpZiAoaXNBcnJheShiYXNlKSkge1xyXG4gICAgICBiYXNlLmZvckVhY2goZSA9PiB7XHJcbiAgICAgICAgaWYgKGlzT2JqZWN0KGUpKSB7XHJcbiAgICAgICAgICBjb25zdCBvYmogPSBpc0FycmF5KGUpID8gW10gOiB7fTtcclxuICAgICAgICAgIGNvbnN0IHByb21pc2UgPSB0aGlzLl9icmFuY2goZSwgb2JqLCB7IG5vZGVzOiBzY29wZS5ub2RlcywgdHlwZTogZVtEQVRBX1RZUEVdIHx8IHNjb3BlLnR5cGUgfSk7XHJcbiAgICAgICAgICBpZiAoIXByb21pc2UpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIHByb21pc2VzLnB1c2gocHJvbWlzZSk7XHJcbiAgICAgICAgICAocHJlc3RpbmUgYXMgYW55W10pLnB1c2gob2JqKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCBsZW5ndGggPSAocHJlc3RpbmUgYXMgYW55W10pLnB1c2goZSk7XHJcbiAgICAgICAgICBpZiAoc2NvcGUubm9kZXMuaW5kZXhPZigncG9zaXRpb25zJykgPiAtMSkge1xyXG4gICAgICAgICAgICBjb25zdCBwcm9taXNlID0gdGhpcy5fYWNjb3VudHMuZ2V0KGUpLnRvUHJvbWlzZSgpLnRoZW4odiA9PlxyXG4gICAgICAgICAgICAgIHByZXN0aW5lW2xlbmd0aCAtIDFdID0gdi5uYW1lKTtcclxuICAgICAgICAgICAgcHJvbWlzZXMucHVzaChwcm9taXNlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAoIShwcmVzdGluZSBhcyBhbnlbXSkubGVuZ3RoKSByZXR1cm4gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBPYmplY3Qua2V5cyhiYXNlKS5mb3JFYWNoKGsgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLl9pZ25vcmUoaywgc2NvcGUubm9kZXMpKSByZXR1cm47XHJcbiAgICAgICAgY29uc3QgYVZhbCA9IGJhc2Vba107XHJcbiAgICAgICAgaWYgKGlzT2JqZWN0KGFWYWwpKSB7XHJcbiAgICAgICAgICBjb25zdCBvYmogPSBpc0FycmF5KGFWYWwpID8gW10gOiB7fTtcclxuICAgICAgICAgIGNvbnN0IHByb21pc2UgPSB0aGlzLl9icmFuY2goYVZhbCwgb2JqLCB7IHR5cGU6IGFWYWxbREFUQV9UWVBFXSB8fCBzY29wZS50eXBlLCBub2RlczogWy4uLnNjb3BlLm5vZGVzLCBrXSB9KTtcclxuICAgICAgICAgIGlmICghcHJvbWlzZSlcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgcHJvbWlzZXMucHVzaChwcm9taXNlKTtcclxuICAgICAgICAgIGlmIChzY29wZS5ub2Rlcy5pbmRleE9mKCdwb3NpdGlvbnMnKSA+IC0xKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSB0aGlzLl9kcy5nZXQoc2NvcGUudHlwZSwgaykudG9Qcm9taXNlKCkudGhlbih2ID0+XHJcbiAgICAgICAgICAgICAgcHJlc3RpbmVbaXNTdHJpbmcodikgPyB2IDogdltPYmplY3Qua2V5cyh2KVswXV1dID0gb2JqXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHByb21pc2VzLnB1c2gocHJvbWlzZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHByZXN0aW5lW2tdID0gb2JqO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHByZXN0aW5lW2tdID0gYVZhbDtcclxuICAgICAgICAgIGlmIChrID09PSAndXNlcklkJykge1xyXG4gICAgICAgICAgICBjb25zdCBwcm9taXNlID0gdGhpcy5fYWNjb3VudHMuZ2V0KGFWYWwpLnRvUHJvbWlzZSgpLnRoZW4odiA9PlxyXG4gICAgICAgICAgICAgIHByZXN0aW5lW2tdID0gdi5uYW1lKTtcclxuICAgICAgICAgICAgcHJvbWlzZXMucHVzaChwcm9taXNlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAoIU9iamVjdC5rZXlzKHByZXN0aW5lKS5sZW5ndGgpIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiBwcm9taXNlcy5sZW5ndGggPyBQcm9taXNlLmFsbChwcm9taXNlcykgOiBQcm9taXNlLnJlc29sdmUoKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogcmV0dXJuIGh0bWwgZnJvbSBkaWZmIHRyZWVcclxuICAgKiBAcGFyYW0gZGlmZlxyXG4gICAqIEBwYXJhbSBvYmpzdGF0ZVxyXG4gICAqIEBwYXJhbSBwcm9wZXJ0eU5hbWVcclxuICAgKiBAcGFyYW0gc2libGluZyBhcnJheSBlbnRyeVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2dlbmVyYXRlKGRpZmY6IHt9IHwgW10sIG9ianN0YXRlOiBDaGFuZ2VTdGF0ZSA9IENoYW5nZVN0YXRlLlVuY2hhbmdlZCxcclxuICAgIHByb3BlcnR5TmFtZSA9IHVuZGVmaW5lZCwgc2libGluZyA9IGZhbHNlKSB7XHJcbiAgICBsZXQgaCA9ICcnO1xyXG4gICAgaWYgKGlzQXJyYXkoZGlmZikpIHtcclxuICAgICAgaCArPSB0aGlzLl93cml0ZShvYmpzdGF0ZSwgVG9rZW5LaW5kLkFycmF5U3RhcnQsIGZhbHNlLCBmYWxzZSwgcHJvcGVydHlOYW1lKTtcclxuICAgICAgY29uc3QgbiA9IGRpZmYubGVuZ3RoO1xyXG4gICAgICBkaWZmLmZvckVhY2goKGUsIGkpID0+IHtcclxuICAgICAgICBjb25zdCBzdGF0ZSA9IGRpZmZbU1RBVEUgKyBpLnRvU3RyaW5nKCldO1xyXG4gICAgICAgIGlmIChpc09iamVjdChlKSlcclxuICAgICAgICAgIGggKz0gdGhpcy5fZ2VuZXJhdGUoZSwgc3RhdGUsIHVuZGVmaW5lZCwgaSA8IG4gLSAxKTtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICBoICs9IHRoaXMuX3dyaXRlKHN0YXRlLCBUb2tlbktpbmQuVmFsdWUsXHJcbiAgICAgICAgICAgIGkgPT09IG4gLSAxIHx8IGRpZmZbU1RBVEUgKyAoaSArIDEpLnRvU3RyaW5nKCldICE9PSBzdGF0ZSxcclxuICAgICAgICAgICAgaSA8IG4gLSAxLCB1bmRlZmluZWQsIGUpO1xyXG4gICAgICB9KTtcclxuICAgICAgaCArPSB0aGlzLl93cml0ZShvYmpzdGF0ZSwgVG9rZW5LaW5kLkFycmF5RW5kLCB0cnVlLCBzaWJsaW5nKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBoICs9IHRoaXMuX3dyaXRlKG9ianN0YXRlLCBUb2tlbktpbmQuT2JqZWN0U3RhcnQsIGZhbHNlLCBmYWxzZSwgcHJvcGVydHlOYW1lKTtcclxuICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGRpZmYpLmZpbHRlcihrID0+ICFrLnN0YXJ0c1dpdGgoT1JJR0lOQUxfVkFMVUUpKTtcclxuICAgICAga2V5cy5mb3JFYWNoKChrLCBpKSA9PiB7XHJcbiAgICAgICAgY29uc3QgdmFsID0gZGlmZltrXSwgc3RhdGUgPSBkaWZmW1NUQVRFICsga10sIG4gPSBrZXlzLmxlbmd0aDtcclxuICAgICAgICBpZiAoaXNPYmplY3QodmFsKSlcclxuICAgICAgICAgIGggKz0gdGhpcy5fZ2VuZXJhdGUodmFsLCBzdGF0ZSwgaywgaSA8IG4gLSAxKTtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICBoICs9IHRoaXMuX3dyaXRlKHN0YXRlLCBUb2tlbktpbmQuVmFsdWUsIHN0YXRlICE9PSBvYmpzdGF0ZSwgaSA8IG4gLSAxLCBrLCB2YWwsIGRpZmZbT1JJR0lOQUxfVkFMVUUgKyBrXSk7XHJcbiAgICAgIH0pO1xyXG4gICAgICBoICs9IHRoaXMuX3dyaXRlKG9ianN0YXRlLCBUb2tlbktpbmQuT2JqZWN0RW5kLCB0cnVlLCBzaWJsaW5nKTtcclxuICAgIH1cclxuICAgIHJldHVybiBoO1xyXG4gIH1cclxuICAvKipcclxuICAgKiB3cml0ZSBodG1sIGxpbmVcclxuICAgKiBAcGFyYW0gc3RhdGVcclxuICAgKiBAcGFyYW0gYW5ub3RhdGVcclxuICAgKiBAcGFyYW0gdG9rZW5cclxuICAgKiBAcGFyYW0gc2libGluZyBhcnJheSBlbnRyeVxyXG4gICAqIEBwYXJhbSBwcm9wZXJ0eU5hbWVcclxuICAgKiBAcGFyYW0gdmFsdWVcclxuICAgKiBAcGFyYW0gb3JpZ2luYWxWYWx1ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX3dyaXRlKHN0YXRlOiBDaGFuZ2VTdGF0ZSxcclxuICAgIHRva2VuOiBUb2tlbktpbmQsXHJcbiAgICBhbm5vdGF0ZTogYm9vbGVhbixcclxuICAgIHNpYmxpbmc/OiBib29sZWFuLFxyXG4gICAgcHJvcGVydHlOYW1lPzogc3RyaW5nLFxyXG4gICAgdmFsdWU/OiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuLFxyXG4gICAgb3JpZ2luYWxWYWx1ZT86IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW5cclxuICApIHtcclxuICAgIGxldCBoID0gJycsIGJyYWNrZXRzOiBzdHJpbmcsIGNsczogc3RyaW5nO1xyXG4gICAgc3dpdGNoIChzdGF0ZSkge1xyXG4gICAgICBjYXNlIENoYW5nZVN0YXRlLlJlbW92ZWQ6XHJcbiAgICAgICAgY2xzID0gJ2NvbXBhcmUgcmVtb3ZlZCc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgQ2hhbmdlU3RhdGUuQWRkZWQ6XHJcbiAgICAgICAgY2xzID0gJ2NvbXBhcmUgYWRkZWQnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIENoYW5nZVN0YXRlLk1vZGlmaWVkOlxyXG4gICAgICAgIGNscyA9ICdjb21wYXJlIG1vZGlmaWVkJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBjbHMgPSAnJztcclxuICAgIH1cclxuICAgIHN3aXRjaCAodG9rZW4pIHtcclxuICAgICAgY2FzZSBUb2tlbktpbmQuQXJyYXlTdGFydDpcclxuICAgICAgICBicmFja2V0cyA9ICdbJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBUb2tlbktpbmQuT2JqZWN0U3RhcnQ6XHJcbiAgICAgICAgYnJhY2tldHMgPSAneyc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgVG9rZW5LaW5kLkFycmF5RW5kOlxyXG4gICAgICAgIGJyYWNrZXRzID0gJ10nO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFRva2VuS2luZC5PYmplY3RFbmQ6XHJcbiAgICAgICAgYnJhY2tldHMgPSAnfSc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICBpZiAodG9rZW4gPT0gVG9rZW5LaW5kLk9iamVjdFN0YXJ0IHx8IHRva2VuID09IFRva2VuS2luZC5BcnJheVN0YXJ0KVxyXG4gICAgICBoID0gYDxkaXYgY2xhc3M9XCJzY29wZSAke2Nsc31cIj5gO1xyXG4gICAgaWYgKHByb3BlcnR5TmFtZSlcclxuICAgICAgaCArPSBgPHNwYW4gY2xhc3M9XCJzdHJ1Y3R1cmUgJHtjbHN9XCI+JHtwcm9wZXJ0eU5hbWV9OiA8L3NwYW4+YDtcclxuICAgIGlmIChicmFja2V0cykge1xyXG4gICAgICBpZiAodG9rZW4gPT0gVG9rZW5LaW5kLk9iamVjdEVuZCB8fCB0b2tlbiA9PSBUb2tlbktpbmQuQXJyYXlFbmQpXHJcbiAgICAgICAgaCArPSAnPC9kaXY+JztcclxuICAgICAgaCArPSBgPHNwYW4gY2xhc3M9XCJicmFja2V0c1wiPiR7YnJhY2tldHN9PC9zcGFuPmBcclxuICAgICAgaWYgKHRva2VuID09IFRva2VuS2luZC5PYmplY3RTdGFydCB8fCB0b2tlbiA9PSBUb2tlbktpbmQuQXJyYXlTdGFydClcclxuICAgICAgICBoICs9ICc8c3BhbiBjbGFzcz1cImFsdGVybmF0ZVwiPi4uLjwvc3Bhbj48ZGl2IGNsYXNzPVwic2NvcGUtY29udGVudFwiPic7XHJcbiAgICB9XHJcbiAgICBpZiAodG9rZW4gPT0gVG9rZW5LaW5kLlZhbHVlKSB7XHJcbiAgICAgIGlmIChwcm9wZXJ0eU5hbWUgPT09ICdjb2xvcicpIGggKz0gYDxkaXYgY2xhc3M9XCJjb2xvclwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjoke3ZhbHVlfVwiPjwvZGl2PiZuYnNwO2A7XHJcbiAgICAgIGVsc2UgaWYgKChwcm9wZXJ0eU5hbWUgPT09ICdzaGFwZScgfHwgcHJvcGVydHlOYW1lID09PSAnZGF0YScpICYmIFNWR19QQVRIX1JFR0VYLnRlc3QodmFsdWUgYXMgc3RyaW5nKSkgaCArPSBgPHN2ZyB3aWR0aD0xMiBoZWlnaHQ9MTIgdmlld0JveD1cIjAgMCAzNSAzNVwiIHByZXNlcnZlQXNwZWN0UmF0aW89XCJub25lXCI+PHBhdGggZD1cIiR7dmFsdWV9XCI+PC9wYXRoPjwvc3ZnPiZuYnNwO2A7XHJcbiAgICAgIGggKz0gYDxzcGFuIGNsYXNzPVwidmFsdWUgJHtjbHN9XCI+JHt2YWx1ZX08L3NwYW4+YDtcclxuICAgIH1cclxuICAgIGlmIChzaWJsaW5nKSBoICs9ICc8c3BhbiBjbGFzcz1cInN0cnVjdHVyZVwiPiw8L3NwYW4+JztcclxuICAgIGlmIChzdGF0ZSAmJiBhbm5vdGF0ZSkge1xyXG4gICAgICBjb25zdCByZXNvdXJjZSA9IHN0YXRlID09PSBDaGFuZ2VTdGF0ZS5SZW1vdmVkID8gJ0RlbGV0ZWQnIDogc3RhdGUgPT09IENoYW5nZVN0YXRlLkFkZGVkID8gJ0FkZGVkJyA6ICdNb2RpZmllZCc7XHJcbiAgICAgIGggKz0gYDxkaXYgY2xhc3M9XCIke2Nsc31cIj4gPGRpdiBjbGFzcz1cImxhYmVsXCI+PHNwYW4+JHt0aGlzLl90cmFuc2xhdGUuZ2V0KHJlc291cmNlKX1gO1xyXG4gICAgICBpZiAob3JpZ2luYWxWYWx1ZSlcclxuICAgICAgICBoICs9IGAmbmJzcDs8c3BhbiBjbGFzcz1cIm9yaWdpbmFsXCI+JHtvcmlnaW5hbFZhbHVlfTwvc3Bhbj5gO1xyXG4gICAgICBoICs9ICc8L3NwYW4+PC9kaXY+PC9kaXY+JztcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRva2VuID09PSBUb2tlbktpbmQuVmFsdWUpXHJcbiAgICAgIGggKz0gJzxici8+JztcclxuICAgIGlmICh0b2tlbiA9PSBUb2tlbktpbmQuT2JqZWN0RW5kIHx8IHRva2VuID09IFRva2VuS2luZC5BcnJheUVuZClcclxuICAgICAgaCArPSAnPC9kaXY+JztcclxuICAgIHJldHVybiBoO1xyXG4gIH1cclxuICAvKipcclxuICAgKiB0b2dnbGVcclxuICAgKiBAcGFyYW0gZXZ0XHJcbiAgICovXHJcbiAgY29sbGFwc2UoZXZ0OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBsZXQgZWwgPSBldnQuc3JjRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcclxuICAgIHdoaWxlIChlbCAmJiAhZWwuY2xhc3NMaXN0LmNvbnRhaW5zKCdzY29wZScpKVxyXG4gICAgICBlbCA9IGVsLnBhcmVudEVsZW1lbnQ7XHJcbiAgICBlbCAmJiBlbC5jbGFzc0xpc3QudG9nZ2xlKCdjb2xsYXBzZScpICYmIGVsLmNsYXNzTGlzdC5yZW1vdmUoJ2ZvY3VzJyk7XHJcbiAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIHJlbW92ZSBjbHNcclxuICAgKi9cclxuICBmb2N1c091dCgpIHtcclxuICAgIHRoaXMuY29udGVudHMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuc2NvcGUuZm9jdXMnKS5mb3JFYWNoKGUgPT5cclxuICAgICAgZS5jbGFzc0xpc3QucmVtb3ZlKCdmb2N1cycpXHJcbiAgICApO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gZXZ0XHJcbiAgICovXHJcbiAgZm9jdXNJbihldnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIHRoaXMuZm9jdXNPdXQoKTtcclxuICAgIGxldCBlbCA9IGV2dC5zcmNFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgd2hpbGUgKGVsICYmICFlbC5jbGFzc0xpc3QuY29udGFpbnMoJ3Njb3BlJykpXHJcbiAgICAgIGVsID0gZWwucGFyZW50RWxlbWVudDtcclxuICAgIGVsICYmICFlbC5jbGFzc0xpc3QuY29udGFpbnMoJ2NvbGxhcHNlJykgJiYgZWwuY2xhc3NMaXN0LmFkZCgnZm9jdXMnKTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuaW50ZXJmYWNlIFZlcnNpb25JbmZvIHtcclxuICB0aW1lOiBEYXRlO1xyXG4gIGF1dGhvcjogc3RyaW5nO1xyXG4gIGZpbGU/OiBzdHJpbmc7XHJcbn1cclxuaW50ZXJmYWNlIENvbmZpZ3VydGlvbkluZm8ge1xyXG59XHJcbmludGVyZmFjZSBDb21wYXJlTW9kZWwge1xyXG4gIGRhdGUxOiBEYXRlO1xyXG4gIGRhdGUyOiBEYXRlO1xyXG59XHJcbmludGVyZmFjZSBTY29wZSB7XHJcbiAgdHlwZT86IHN0cmluZztcclxuICBub2Rlczogc3RyaW5nW107XHJcbn1cclxuZW51bSBDaGFuZ2VTdGF0ZSB7XHJcbiAgVW5jaGFuZ2VkLFxyXG4gIEFkZGVkLFxyXG4gIE1vZGlmaWVkLFxyXG4gIFJlbW92ZWRcclxufVxyXG5lbnVtIFRva2VuS2luZCB7XHJcbiAgVmFsdWUsXHJcbiAgQXJyYXlTdGFydCxcclxuICBBcnJheUVuZCxcclxuICBPYmplY3RTdGFydCxcclxuICBPYmplY3RFbmRcclxufVxyXG4iLCI8bWF0LXRvb2xiYXI+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInByb3BlcnRpZXMudG9nZ2xlKClcIiBbYml6ZG9jVG9vbHRpcF09XCInQ29sbGFwc2UnIHwgdHJhbnNsYXRlXCI+PG1hdC1pY29uPnZpZXdfc2lkZWJhcjwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG48L21hdC10b29sYmFyPlxyXG48bWF0LXNpZGVuYXYtY29udGFpbmVyIGF1dG9zaXplIGZ4RmxleD5cclxuICA8bWF0LXNpZGVuYXYtY29udGVudD5cclxuICAgIDxtYXQtcHJvZ3Jlc3MtYmFyIG1vZGU9XCJidWZmZXJcIiBbdmFsdWVdPXByb2dyZXNzIFtidWZmZXJWYWx1ZV09MCBbc3R5bGUudmlzaWJpbGl0eV09XCJwcm9ncmVzcyA+IDAgJiYgcHJvZ3Jlc3MgPCAxMDAgPyAndmlzaWJsZSc6J2hpZGRlbidcIj48L21hdC1wcm9ncmVzcy1iYXI+XHJcbiAgICA8ZGl2IFtpbm5lckhUTUxdPVwiaHRtbCB8IHNhbml0aXplSHRtbFwiIChtb3VzZWxlYXZlKT1cImZvY3VzT3V0KClcIiAobW91c2Vtb3ZlKT1cImZvY3VzSW4oJGV2ZW50KVwiIGNsYXNzPVwiY29uZmlndXJhdGlvbi1kaWZmXCIgKGNsaWNrKT1cImNvbGxhcHNlKCRldmVudClcIiAjY29udGVudHM+PC9kaXY+XHJcbiAgPC9tYXQtc2lkZW5hdi1jb250ZW50PlxyXG4gIDxtYXQtc2lkZW5hdiBtb2RlPVwic2lkZVwiIG9wZW5lZCAjcHJvcGVydGllcyBjbGFzcz1cInRpbWVsaW5lXCI+XHJcbiAgICA8bWF0LW5hdi1saXN0ICpuZ0lmPVwidmVyc2lvbnNcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdiBvZiB2ZXJzaW9uczsgbGV0IGluZGV4ID0gaW5kZXg7IGxldCBsYXN0ID0gbGFzdFwiPlxyXG4gICAgICAgIDxtYXQtbGlzdC1pdGVtIChjbGljayk9XCJjb21wYXJlKGluZGV4KVwiIFtjbGFzcy5hY3RpdmVdPVwidi50aW1lID09PSBhY3RpdmVEYXRlXCIgKm5nSWY9XCIhbGFzdFwiPlxyXG4gICAgICAgICAgPGgzIG1hdExpbmU+XHJcbiAgICAgICAgICAgIHt7KHYuYXV0aG9yIHx8ICdTeXN0ZW0nKSB8IHVzZXJOYW1lIHwgYXN5bmMgfX1cclxuICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICA8cCBjbGFzcz1cInRpbWVcIiBtYXRMaW5lPlxyXG4gICAgICAgICAgICB7e3YudGltZSB8IGFtQ2FsZW5kYXI6IG51bGw6IENBTEVOREFSX1NQRUMgfX1cclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICA8L21hdC1saXN0LWl0ZW0+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9tYXQtbmF2LWxpc3Q+XHJcbiAgPC9tYXQtc2lkZW5hdj5cclxuPC9tYXQtc2lkZW5hdi1jb250YWluZXI+XHJcbiJdfQ==
558
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi1kaWZmLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYWRtaW4vZGlmZi9jb25maWd1cmF0aW9uLWRpZmYuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9kaWZmL2NvbmZpZ3VyYXRpb24tZGlmZi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxFQUFFLFNBQVMsRUFBYyxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQy9DLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRW5FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTTVDLE1BQU0sV0FBVyxHQUFHLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsUUFBUTtJQUNwSSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLHFCQUFxQixFQUFFLG1CQUFtQixFQUFFLG9CQUFvQjtJQUMvSCx3QkFBd0IsRUFBRSxtQkFBbUIsRUFBRSx5QkFBeUIsRUFBRSxnQkFBZ0IsQ0FBQyxFQUMzRixjQUFjLEdBQUcsY0FBYyxFQUMvQixjQUFjLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxFQUFFLFNBQVMsR0FBRyxVQUFVLEVBQUUsY0FBYyxHQUFHLEdBQUcsRUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBWTdGLG1CQUFtQixTQUFuQixtQkFBbUI7SUFlOUIsV0FBVztJQUNYLFlBQW9CLEdBQWtCLEVBQ1IsV0FBZ0YsRUFDcEcsVUFBNEIsRUFDNUIsR0FBc0IsRUFDdEIsU0FBeUI7UUFKZixRQUFHLEdBQUgsR0FBRyxDQUFlO1FBQ1IsZ0JBQVcsR0FBWCxXQUFXLENBQXFFO1FBQ3BHLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQzVCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBbEJuQyxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBR1YsYUFBUSxHQUFHLENBQUMsQ0FBQztRQUVMLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBQ2hDLGtCQUFhLEdBQWlCO1lBQ3JDLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDO1lBQ3BELFFBQVEsRUFBRSxXQUFXO1lBQ3JCLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLFFBQVEsRUFBRSxhQUFhO1NBQ3hCLENBQUM7UUFDZSxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQU9oRCxDQUFDO0lBQ0QsUUFBUTtRQUNOLGlCQUFpQjtRQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6RyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2QixvQkFBb0I7UUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDeEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7WUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEIsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDO2dCQUNWLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEIsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ0Q7OztPQUdHO0lBQ0gsT0FBTyxDQUFDLEtBQWE7UUFDbkIsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFDaEQsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTztRQUNyQixNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN2RCxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFDLElBQUksT0FBTztnQkFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUM5QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7b0JBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztnQkFDcEIsQ0FBQyxDQUFDLENBQUM7aUJBQ0U7Z0JBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2FBQ2xCO1FBQ0gsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ08sVUFBVTtRQUNoQixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNyRyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssUUFBUSxDQUFDLENBQVUsRUFBRSxDQUFVLEVBQUUsT0FBZ0IsRUFBRSxFQUFFLFFBQWUsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQ3ZGLE1BQU0sUUFBUSxHQUFtQixFQUFFLENBQUM7UUFDcEMsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDZCxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNqQixNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxLQUFLLElBQUk7b0JBQUUsT0FBTztxQkFDbEIsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ3BCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQzlELElBQUksS0FBSyxLQUFLLEtBQUs7d0JBQUUsT0FBTztvQkFDNUIsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7d0JBQ2hDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQzt3QkFDZixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQzt3QkFDdEcsSUFBSSxDQUFDLE9BQU87NEJBQUUsT0FBTzt3QkFDcEIsSUFBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7d0JBQ3ZELFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7cUJBQ3hCO3lCQUNJLElBQUssQ0FBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDO3dCQUFFLE9BQU87eUJBQzdEO3dCQUNILE1BQU0sSUFBSSxHQUFJLENBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUNwRCxJQUFJLElBQUksRUFBRTs0QkFDUixNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7NEJBQ2YsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7NEJBQ3RHLElBQUksQ0FBQyxPQUFPO2dDQUFFLE9BQU87NEJBQ3BCLElBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDOzRCQUN2RCxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO3lCQUN4Qjs2QkFDSTs0QkFDSCxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDOzRCQUNqQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDOzRCQUMvRixJQUFJLENBQUMsT0FBTztnQ0FBRSxPQUFPOzRCQUNyQixNQUFNLE1BQU0sR0FBSSxJQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDOzRCQUN6QyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQzs0QkFDMUQsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzt5QkFDeEI7cUJBQ0Y7aUJBQ0Y7cUJBQ0ksSUFBSSxDQUFFLENBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7b0JBQ3JDLE1BQU0sTUFBTSxHQUFJLElBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3ZDLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7d0JBQ3pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUN6RCxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDN0IsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDeEI7b0JBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUM7aUJBQzNEO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDRixDQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ2QsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUU7d0JBQ2YsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDaEMsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSyxDQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLOzRCQUNuRixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzs0QkFBRSxPQUFPO3dCQUM3QixNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUNqQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO3dCQUMvRixJQUFJLENBQUMsT0FBTzs0QkFBRSxPQUFPO3dCQUNyQixNQUFNLE1BQU0sR0FBSSxJQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUN6QyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQzt3QkFDNUQsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDeEI7eUJBQ0ksSUFBSSxDQUFFLENBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7d0JBQ3JDLE1BQU0sTUFBTSxHQUFJLElBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ3BDLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7NEJBQ3pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUN6RCxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQzs0QkFDN0IsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzt5QkFDeEI7d0JBQ0QsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUM7cUJBQzdEO2lCQUNGO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUUsSUFBYyxDQUFDLE1BQU07Z0JBQUUsT0FBTyxLQUFLLENBQUM7U0FDM0M7YUFDSTtZQUNILE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUN6QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUM7b0JBQUUsT0FBTztnQkFDekMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQy9CLElBQUksSUFBSSxLQUFLLElBQUk7b0JBQUUsT0FBTztxQkFDckIsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQ3ZCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQzt3QkFBRSxPQUFPO29CQUMxRCxJQUFJLElBQUksS0FBSyxTQUFTLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTt3QkFDekQsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQzt3QkFDZixJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO3dCQUNsRSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUM7cUJBQ3hDO3lCQUNJO3dCQUNILElBQUksR0FBRyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQy9CLEtBQUssR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQVcsQ0FBQzt3QkFDdkYsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFOzRCQUN0QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDOzRCQUN0RCxJQUFJLENBQUMsT0FBTztnQ0FBRSxPQUFPOzRCQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztnQ0FDaEIsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7NEJBQzVDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7eUJBQ3hCOzZCQUNJOzRCQUNILE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQzs0QkFDL0MsSUFBSSxDQUFDLE9BQU87Z0NBQUUsT0FBTzs0QkFDckIsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzt5QkFDeEI7d0JBRUQsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTs0QkFDekMsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7NEJBQ2hDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO2dDQUMvRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQ0FDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQTtnQ0FDaEIsSUFBSSxJQUFJLEtBQUssU0FBUztvQ0FBRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUM7NEJBQ2pFLENBQUMsQ0FBQyxDQUFDOzRCQUNILFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7eUJBQ3hCOzZCQUNJOzRCQUNILElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7NEJBQ2QsSUFBSSxJQUFJLEtBQUssU0FBUztnQ0FBRSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUM7eUJBQzdEO3FCQUNGO2lCQUNGO3FCQUNJO29CQUNILElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7b0JBQ2YsSUFBSSxDQUFDLEtBQUssUUFBUSxFQUFFO3dCQUNsQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDNUQsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDcEIsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDeEI7b0JBQ0QsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO3dCQUN0QixJQUFJLENBQUMsS0FBSyxRQUFRLEVBQUU7NEJBQ2xCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUM1RCxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQzs0QkFDckMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzt5QkFDeEI7OzRCQUVDLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO3dCQUNsQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUM7cUJBQ3hDOzt3QkFFQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUM7aUJBQ3ZDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDekIsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUM7b0JBQUUsT0FBTztnQkFDL0QsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNsQixJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO29CQUN6QyxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7b0JBQ2YsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7b0JBQ2hDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO3dCQUMvRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQzt3QkFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDO29CQUMzQyxDQUFDLENBQUMsQ0FBQztvQkFDSCxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUN2QixJQUFJLElBQUssSUFBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTt3QkFDdkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ3pELEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7d0JBQ25CLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQ3pCLENBQUMsQ0FBQyxDQUFDO2lCQUNKO3FCQUNJO29CQUNILElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFO3dCQUNsQixNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUNwQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDN0csSUFBSSxDQUFDLE9BQU87NEJBQUUsT0FBTzt3QkFDckIsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQzt3QkFDZCxPQUFPLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDbkM7eUJBQ0k7d0JBQ0gsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQzt3QkFDZixJQUFJLENBQUMsS0FBSyxRQUFRLEVBQUU7NEJBQ2xCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUM1RCxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDOzRCQUNwQixRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO3lCQUN4QjtxQkFDRjtvQkFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUM7aUJBQ3ZDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNO2dCQUFFLE9BQU8sS0FBSyxDQUFDO1NBQzdDO1FBQ0QsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNLLE1BQU0sQ0FBQyxJQUFTLEVBQUUsSUFBUztRQUNqQyxPQUFPLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLE1BQU0sQ0FBQyxJQUFRLEVBQUUsR0FBTyxFQUFFLEtBQWU7UUFDL0MsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQztRQUNmLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDekIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUM7Z0JBQUUsT0FBTztZQUNuQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDWCxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwQixFQUFFLEdBQUcsSUFBSSxDQUFDO2FBQ1g7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssT0FBTyxDQUFDLElBQVksRUFBRSxLQUFlO1FBQzNDLE9BQU8sV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMxRyxDQUFDO0lBQ0Q7Ozs7O09BS0c7SUFDSyxPQUFPLENBQUMsSUFBYSxFQUFFLFFBQWlCLEVBQUUsS0FBWTtRQUM1RCxNQUFNLFFBQVEsR0FBbUIsRUFBRSxDQUFDO1FBQ3BDLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2YsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ2YsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDakMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztvQkFDL0YsSUFBSSxDQUFDLE9BQU87d0JBQ1YsT0FBTztvQkFDVCxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUN0QixRQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDL0I7cUJBQ0k7b0JBQ0gsTUFBTSxNQUFNLEdBQUksUUFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzNDLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7d0JBQ3pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUN6RCxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDakMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDeEI7aUJBQ0Y7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBRSxRQUFrQixDQUFDLE1BQU07Z0JBQUUsT0FBTyxLQUFLLENBQUM7U0FDL0M7YUFBTTtZQUNMLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUM1QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUM7b0JBQUUsT0FBTztnQkFDekMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNyQixJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDbEIsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDcEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQzdHLElBQUksQ0FBQyxPQUFPO3dCQUNWLE9BQU87b0JBQ1QsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDdkIsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTt3QkFDekMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDL0QsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUN2RCxDQUFDO3dCQUNGLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7cUJBQ3hCOzt3QkFFQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO2lCQUNyQjtxQkFDSTtvQkFDSCxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO29CQUNuQixJQUFJLENBQUMsS0FBSyxRQUFRLEVBQUU7d0JBQ2xCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUM1RCxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUN4QixRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO3FCQUN4QjtpQkFDRjtZQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTTtnQkFBRSxPQUFPLEtBQUssQ0FBQztTQUNqRDtRQUNELE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3JFLENBQUM7SUFDRDs7Ozs7O09BTUc7SUFDSyxTQUFTLENBQUMsSUFBYSxFQUFFLFdBQXdCLFdBQVcsQ0FBQyxTQUFTLEVBQzVFLFlBQVksR0FBRyxTQUFTLEVBQUUsT0FBTyxHQUFHLEtBQUs7UUFDekMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ1gsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDakIsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQztZQUM3RSxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3BCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQ3pDLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQztvQkFDYixDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDOztvQkFFcEQsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQ3JDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxLQUFLLEVBQ3pELENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMvQixDQUFDLENBQUMsQ0FBQztZQUNILENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztTQUMvRDthQUNJO1lBQ0gsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQztZQUM5RSxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1lBQzFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3BCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztnQkFDOUQsSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDO29CQUNmLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7O29CQUU5QyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUssRUFBRSxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlHLENBQUMsQ0FBQyxDQUFDO1lBQ0gsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ2hFO1FBQ0QsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ0Q7Ozs7Ozs7OztPQVNHO0lBQ0ssTUFBTSxDQUFDLEtBQWtCLEVBQy9CLEtBQWdCLEVBQ2hCLFFBQWlCLEVBQ2pCLE9BQWlCLEVBQ2pCLFlBQXFCLEVBQ3JCLEtBQWlDLEVBQ2pDLGFBQXlDO1FBRXpDLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxRQUFnQixFQUFFLEdBQVcsQ0FBQztRQUMxQyxRQUFRLEtBQUssRUFBRTtZQUNiLEtBQUssV0FBVyxDQUFDLE9BQU87Z0JBQ3RCLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQztnQkFDeEIsTUFBTTtZQUNSLEtBQUssV0FBVyxDQUFDLEtBQUs7Z0JBQ3BCLEdBQUcsR0FBRyxlQUFlLENBQUM7Z0JBQ3RCLE1BQU07WUFDUixLQUFLLFdBQVcsQ0FBQyxRQUFRO2dCQUN2QixHQUFHLEdBQUcsa0JBQWtCLENBQUM7Z0JBQ3pCLE1BQU07WUFDUjtnQkFDRSxHQUFHLEdBQUcsRUFBRSxDQUFDO1NBQ1o7UUFDRCxRQUFRLEtBQUssRUFBRTtZQUNiLEtBQUssU0FBUyxDQUFDLFVBQVU7Z0JBQ3ZCLFFBQVEsR0FBRyxHQUFHLENBQUM7Z0JBQ2YsTUFBTTtZQUNSLEtBQUssU0FBUyxDQUFDLFdBQVc7Z0JBQ3hCLFFBQVEsR0FBRyxHQUFHLENBQUM7Z0JBQ2YsTUFBTTtZQUNSLEtBQUssU0FBUyxDQUFDLFFBQVE7Z0JBQ3JCLFFBQVEsR0FBRyxHQUFHLENBQUM7Z0JBQ2YsTUFBTTtZQUNSLEtBQUssU0FBUyxDQUFDLFNBQVM7Z0JBQ3RCLFFBQVEsR0FBRyxHQUFHLENBQUM7Z0JBQ2YsTUFBTTtTQUNUO1FBQ0QsSUFBSSxLQUFLLElBQUksU0FBUyxDQUFDLFdBQVcsSUFBSSxLQUFLLElBQUksU0FBUyxDQUFDLFVBQVU7WUFDakUsQ0FBQyxHQUFHLHFCQUFxQixHQUFHLElBQUksQ0FBQztRQUNuQyxJQUFJLFlBQVk7WUFDZCxDQUFDLElBQUksMEJBQTBCLEdBQUcsS0FBSyxZQUFZLFdBQVcsQ0FBQztRQUNqRSxJQUFJLFFBQVEsRUFBRTtZQUNaLElBQUksS0FBSyxJQUFJLFNBQVMsQ0FBQyxTQUFTLElBQUksS0FBSyxJQUFJLFNBQVMsQ0FBQyxRQUFRO2dCQUM3RCxDQUFDLElBQUksUUFBUSxDQUFDO1lBQ2hCLENBQUMsSUFBSSwwQkFBMEIsUUFBUSxTQUFTLENBQUE7WUFDaEQsSUFBSSxLQUFLLElBQUksU0FBUyxDQUFDLFdBQVcsSUFBSSxLQUFLLElBQUksU0FBUyxDQUFDLFVBQVU7Z0JBQ2pFLENBQUMsSUFBSSwrREFBK0QsQ0FBQztTQUN4RTtRQUNELElBQUksS0FBSyxJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUU7WUFDNUIsSUFBSSxZQUFZLEtBQUssT0FBTztnQkFBRSxDQUFDLElBQUksOENBQThDLEtBQUssZ0JBQWdCLENBQUM7aUJBQ2xHLElBQUksQ0FBQyxZQUFZLEtBQUssT0FBTyxJQUFJLFlBQVksS0FBSyxNQUFNLENBQUMsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQWUsQ0FBQztnQkFBRSxDQUFDLElBQUksbUZBQW1GLEtBQUssdUJBQXVCLENBQUM7WUFDN04sQ0FBQyxJQUFJLHNCQUFzQixHQUFHLEtBQUssS0FBSyxTQUFTLENBQUM7U0FDbkQ7UUFDRCxJQUFJLE9BQU87WUFBRSxDQUFDLElBQUksa0NBQWtDLENBQUM7UUFDckQsSUFBSSxLQUFLLElBQUksUUFBUSxFQUFFO1lBQ3JCLE1BQU0sUUFBUSxHQUFHLEtBQUssS0FBSyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztZQUNoSCxDQUFDLElBQUksZUFBZSxHQUFHLCtCQUErQixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3RGLElBQUksYUFBYTtnQkFDZixDQUFDLElBQUksZ0NBQWdDLGFBQWEsU0FBUyxDQUFDO1lBQzlELENBQUMsSUFBSSxxQkFBcUIsQ0FBQztTQUM1QjthQUNJLElBQUksS0FBSyxLQUFLLFNBQVMsQ0FBQyxLQUFLO1lBQ2hDLENBQUMsSUFBSSxPQUFPLENBQUM7UUFDZixJQUFJLEtBQUssSUFBSSxTQUFTLENBQUMsU0FBUyxJQUFJLEtBQUssSUFBSSxTQUFTLENBQUMsUUFBUTtZQUM3RCxDQUFDLElBQUksUUFBUSxDQUFDO1FBQ2hCLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUNEOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxHQUFlO1FBQ3RCLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQyxVQUF5QixDQUFDO1FBQ3ZDLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1lBQzFDLEVBQUUsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDO1FBQ3hCLEVBQUUsSUFBSSxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0RSxHQUFHLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUNEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUN2RSxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FDNUIsQ0FBQztJQUNKLENBQUM7SUFDRDs7O09BR0c7SUFDSCxPQUFPLENBQUMsR0FBZTtRQUNyQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLFVBQXlCLENBQUM7UUFDdkMsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFDMUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFDeEIsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQztDQUNGLENBQUE7Z0hBOWVZLG1CQUFtQiwrQ0FpQnBCLFVBQVU7b0dBakJULG1CQUFtQiw0TEM3QmhDLHF6Q0F3QkE7QURLYSxtQkFBbUI7SUFGL0IsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLDJCQUEyQixFQUFFLENBQUM7SUFDbEQsZUFBZTtHQUNGLG1CQUFtQixDQThlL0I7U0E5ZVksbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBVC9CLFNBQVM7MkJBR0Y7d0JBQ0osS0FBSyxFQUFFLE1BQU07cUJBQ2Q7OzBCQXFCRSxNQUFNOzJCQUFDLFVBQVU7d0lBaEJHLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTs7QUE2ZnZCLElBQUssV0FLSjtBQUxELFdBQUssV0FBVztJQUNkLHVEQUFTLENBQUE7SUFDVCwrQ0FBSyxDQUFBO0lBQ0wscURBQVEsQ0FBQTtJQUNSLG1EQUFPLENBQUE7QUFDVCxDQUFDLEVBTEksV0FBVyxLQUFYLFdBQVcsUUFLZjtBQUNELElBQUssU0FNSjtBQU5ELFdBQUssU0FBUztJQUNaLDJDQUFLLENBQUE7SUFDTCxxREFBVSxDQUFBO0lBQ1YsaURBQVEsQ0FBQTtJQUNSLHVEQUFXLENBQUE7SUFDWCxtREFBUyxDQUFBO0FBQ1gsQ0FBQyxFQU5JLFNBQVMsS0FBVCxTQUFTLFFBTWIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95LCBJbmplY3QsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDYWxlbmRhclNwZWMgfSBmcm9tIFwiLi4vLi4vY29yZS9waXBlcy9jYWxlbmRhci5waXBlXCI7XHJcbmltcG9ydCB7IEJpekRvYyB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycyc7XHJcbmltcG9ydCB7IGlzQXJyYXksIGlzT2JqZWN0LCBpc1N0cmluZyB9IGZyb20gJy4uLy4uL2NvcmUvZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgVXRpbGl0eUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZSc7XHJcbmltcG9ydCB7IFV0aWxpdHlSZWYgfSBmcm9tICcuLi91dGlsaXR5LXJlZic7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3Byb21wdC5zZXJ2aWNlJzsgXHJcbmltcG9ydCB7IEFjY291bnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9hY2NvdW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS90cmFuc2xhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IERhdGFzb3VyY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9kYXRhc291cmNlLnNlcnZpY2UnO1xyXG5cclxuY29uc3QgSUdOT1JFX05PREUgPSBbJ2F1dGhvcicsICdoaXN0b3J5JywgJ3RhcmdldERlY29yYXRvcicsICdzb3VyY2VEZWNvcmF0b3InLCAnb2Zmc2V0WCcsICdvZmZzZXRZJywgJ3JvdGF0ZUFuZ2xlJywgJ3dpZHRoJywgJ2hlaWdodCcsXHJcbiAgJ3N0eWxlJywgJ3NlZ21lbnRzJywgJ29mZnNldCcsICd0YXJnZXRQb3J0SUQnLCAnc291cmNlUG9ydElEJywgJ2hvcml6b250YWxBbGlnbm1lbnQnLCAndmVydGljYWxBbGlnbm1lbnQnLCAnd29ya2Zsb3cudGltZXN0YW1wJyxcclxuICAnY29ubmVjdG9ycy5jb25zdHJhaW50cycsICdub2Rlcy5jb25zdHJhaW50cycsICdhbm5vdGF0aW9ucy5jb25zdHJhaW50cycsICdhbm5vdGF0aW9ucy5pZCddLFxyXG4gIFNWR19QQVRIX1JFR0VYID0gL15bbU1dLitbelpdJC8sXHJcbiAgSU5ERVhfUFJPUEVSVFkgPSBbJ25hbWUnLCAnaWQnLCAnZGF0YVR5cGUnXSwgREFUQV9UWVBFID0gJ2RhdGFUeXBlJywgT1JJR0lOQUxfVkFMVUUgPSAnXycsIFNUQVRFID0gJ19fJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJy4vY29uZmlndXJhdGlvbi1kaWZmLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb25maWd1cmF0aW9uLWRpZmYuY29tcG9uZW50LnNjc3MnXSxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ3BhbmUnXHJcbiAgfVxyXG59KVxyXG5AQml6RG9jKHsgc2VsZWN0b3I6ICdiaXpkb2MtY29uZmlndXJhdGlvbi1kaWZmJyB9KVxyXG4vKiogY29tcG9uZW50Ki9cclxuZXhwb3J0IGNsYXNzIFN5c3RlbURpZmZDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgVXRpbGl0eUNvbXBvbmVudCB7XHJcbiAgQFZpZXdDaGlsZCgnY29udGVudHMnKSBjb250ZW50czogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XHJcbiAgaHRtbCA9ICcnO1xyXG4gIHZlcnNpb25zOiBWZXJzaW9uSW5mb1tdO1xyXG4gIGFjdGl2ZURhdGU6IERhdGU7XHJcbiAgcHJvZ3Jlc3MgPSAwO1xyXG4gIG5vbmU6IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSBfd29ya2luZyA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcclxuICByZWFkb25seSBDQUxFTkRBUl9TUEVDOiBDYWxlbmRhclNwZWMgPSB7XHJcbiAgICBsYXN0RGF5OiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdZZXN0ZXJkYXlBdCcsICdISDptbScpLFxyXG4gICAgbGFzdFdlZWs6ICdkZGQgSEg6bW0nLFxyXG4gICAgc2FtZURheTogJ0hIOm1tJyxcclxuICAgIHNhbWVFbHNlOiAnTU1NIEQgSEg6bW0nXHJcbiAgfTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAvKiogY3RvciAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3NiOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgQEluamVjdChVdGlsaXR5UmVmKSBwcml2YXRlIF91dGlsaXR5UmVmOiBVdGlsaXR5UmVmPENvbmZpZ3VydGlvbkluZm9bXSwgQ29tcGFyZU1vZGVsLCBWZXJzaW9uSW5mb1tdLCBudW1iZXI+LFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZHM6IERhdGFzb3VyY2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfYWNjb3VudHM6IEFjY291bnRTZXJ2aWNlKSB7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgLy8gZGVsYXkgcHJvZ3Jlc3NcclxuICAgIHRoaXMuX3dvcmtpbmcucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSksIGRlYm91bmNlVGltZSgxMDApKS5zdWJzY3JpYmUodiA9PiB2ICYmICh0aGlzLnByb2dyZXNzID0gdikpO1xyXG4gICAgdGhpcy5fd29ya2luZy5uZXh0KDUwKTtcclxuICAgIC8vIHBvcHVsYXRlIHZlcnNpb25zXHJcbiAgICB0aGlzLl91dGlsaXR5UmVmLnBvcHVsYXRlKCkuc3Vic2NyaWJlKGUgPT4ge1xyXG4gICAgICB0aGlzLnZlcnNpb25zID0gZTtcclxuICAgICAgdGhpcy5fd29ya2luZy5uZXh0KDEwMCk7XHJcbiAgICAgIGUubGVuZ3RoID4gMSAmJlxyXG4gICAgICAgIHRoaXMuY29tcGFyZSgwKTtcclxuICAgIH0sICgpID0+IHRoaXMuX3NiLmVycm9yKCkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gaW5kZXhcclxuICAgKi9cclxuICBjb21wYXJlKGluZGV4OiBudW1iZXIpIHtcclxuICAgIGNvbnN0IHsgdGltZTogZGF0ZTEsIGZpbGUgfSA9IHRoaXMudmVyc2lvbnNbaW5kZXhdLFxyXG4gICAgICB2ZXJzaW9uID0gdGhpcy52ZXJzaW9ucy5zbGljZShpbmRleCArIDEpLmZpbmQodiA9PiB2LmZpbGUgPT09IGZpbGUpO1xyXG4gICAgaWYgKCF2ZXJzaW9uKSByZXR1cm47XHJcbiAgICBjb25zdCB7IHRpbWU6IGRhdGUyIH0gPSB2ZXJzaW9uO1xyXG4gICAgdGhpcy5fd29ya2luZy5uZXh0KDI1KTtcclxuICAgIHRoaXMuX3V0aWxpdHlSZWYuZXhlY3V0ZSh7IGRhdGUxLCBkYXRlMiB9KS5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgIHRoaXMuaHRtbCA9ICcnO1xyXG4gICAgICB0aGlzLl93b3JraW5nLm5leHQoNTApO1xyXG4gICAgICB0aGlzLmFjdGl2ZURhdGUgPSBkYXRlMTtcclxuICAgICAgY29uc3QgcmVzdWx0cyA9IHRoaXMuX2NvbXBhcmUoclswXSwgclsxXSk7XHJcbiAgICAgIGlmIChyZXN1bHRzKSByZXN1bHRzLnRoZW4oZCA9PiB7XHJcbiAgICAgICAgdGhpcy5fd29ya2luZy5uZXh0KDc1KTtcclxuICAgICAgICB0aGlzLmh0bWwgPSB0aGlzLl9nZW5lcmF0ZShkKTtcclxuICAgICAgICB0aGlzLl9zY3JvbGxUb3AoKTtcclxuICAgICAgICB0aGlzLl93b3JraW5nLm5leHQoMTAwKTtcclxuICAgICAgICB0aGlzLm5vbmUgPSBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuX3dvcmtpbmcubmV4dCgxMDApO1xyXG4gICAgICAgIHRoaXMubm9uZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0sICgpID0+IHRoaXMuX3NiLmVycm9yKCkpO1xyXG4gIH1cclxuICBwcml2YXRlIF9zY3JvbGxUb3AoKSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY29udGVudHMubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LnNjcm9sbCh7IHRvcDogMCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBhXHJcbiAgICogQHBhcmFtIGJcclxuICAgKiBAcGFyYW0gZGlmZlxyXG4gICAqIEBwYXJhbSBzY29wZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2NvbXBhcmUoYToge30gfCBbXSwgYjoge30gfCBbXSwgZGlmZjoge30gfCBbXSA9IHt9LCBzY29wZTogU2NvcGUgPSB7IG5vZGVzOiBbXSB9KTogUHJvbWlzZTx7fSB8IFtdPiB8IGZhbHNlIHtcclxuICAgIGNvbnN0IHByb21pc2VzOiBQcm9taXNlPGFueT5bXSA9IFtdO1xyXG4gICAgaWYgKGlzQXJyYXkoYSkpIHtcclxuICAgICAgYS5mb3JFYWNoKChlLCBpKSA9PiB7XHJcbiAgICAgICAgY29uc3QgYlZhbCA9IGJbaV07XHJcbiAgICAgICAgaWYgKGUgPT09IGJWYWwpIHJldHVybjtcclxuICAgICAgICBlbHNlIGlmIChpc09iamVjdChlKSkge1xyXG4gICAgICAgICAgY29uc3QgYUpzb24gPSBKU09OLnN0cmluZ2lmeShlKSwgYkpzb24gPSBKU09OLnN0cmluZ2lmeShiVmFsKTtcclxuICAgICAgICAgIGlmIChhSnNvbiA9PT0gYkpzb24pIHJldHVybjtcclxuICAgICAgICAgIGlmIChiVmFsICYmIHRoaXMuX21hdGNoKGJWYWwsIGUpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG9iaiA9IHt9O1xyXG4gICAgICAgICAgICBjb25zdCBwcm9taXNlID0gdGhpcy5fY29tcGFyZShlLCBiVmFsLCBvYmosIHsgbm9kZXM6IHNjb3BlLm5vZGVzLCB0eXBlOiBlW0RBVEFfVFlQRV0gfHwgc2NvcGUudHlwZSB9KTtcclxuICAgICAgICAgICAgaWYgKCFwcm9taXNlKSByZXR1cm47XHJcbiAgICAgICAgICAgIChkaWZmIGFzIGFueVtdKS5wdXNoKHRoaXMuX3Jla2V5KGUsIG9iaiwgc2NvcGUubm9kZXMpKTtcclxuICAgICAgICAgICAgcHJvbWlzZXMucHVzaChwcm9taXNlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2UgaWYgKChiIGFzIFtdKS5maW5kKGIgPT4gSlNPTi5zdHJpbmdpZnkoYikgPT09IGFKc29uKSkgcmV0dXJuO1xyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGJPYmogPSAoYiBhcyBbXSkuZmluZChiID0+IHRoaXMuX21hdGNoKGIsIGUpKTtcclxuICAgICAgICAgICAgaWYgKGJPYmopIHtcclxuICAgICAgICAgICAgICBjb25zdCBvYmogPSB7fTtcclxuICAgICAgICAgICAgICBjb25zdCBwcm9taXNlID0gdGhpcy5fY29tcGFyZShlLCBiT2JqLCBvYmosIHsgbm9kZXM6IHNjb3BlLm5vZGVzLCB0eXBlOiBlW0RBVEFfVFlQRV0gfHwgc2NvcGUudHlwZSB9KTtcclxuICAgICAgICAgICAgICBpZiAoIXByb21pc2UpIHJldHVybjtcclxuICAgICAgICAgICAgICAoZGlmZiBhcyBhbnlbXSkucHVzaCh0aGlzLl9yZWtleShlLCBvYmosIHNjb3BlLm5vZGVzKSk7XHJcbiAgICAgICAgICAgICAgcHJvbWlzZXMucHVzaChwcm9taXNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICBjb25zdCBvYmogPSBpc0FycmF5KGUpID8gW10gOiB7fTtcclxuICAgICAgICAgICAgICBjb25zdCBwcm9taXNlID0gdGhpcy5fYnJhbmNoKGUsIG9iaiwgeyBub2Rlczogc2NvcGUubm9kZXMsIHR5cGU6IGVbREFUQV9UWVBFXSB8fCBzY29wZS50eXBlIH0pO1xyXG4gICAgICAgICAgICAgIGlmICghcHJvbWlzZSkgcmV0dXJuO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxlbmd0aCA9IChkaWZmIGFzIGFueVtdKS5wdXNoKG9iaik7XHJcbiAgICAgICAgICAgICAgZGlmZltTVEFURSArIChsZW5ndGggLSAxKS50b1N0cmluZygpXSA9IENoYW5nZVN0YXRlLkFkZGVkO1xyXG4gICAgICAgICAgICAgIHByb21pc2VzLnB1c2gocHJvbWlzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZiAoIShiIGFzIFtdKS5maW5kKGIgPT4gYiA9PSBlKSkge1xyXG4gICAgICAgICAgY29uc3QgbGVuZ3RoID0gKGRpZmYgYXMgYW55W10pLnB1c2goZSk7XHJcbiAgICAgICAgICBpZiAoc2NvcGUubm9kZXMuaW5kZXhPZigncG9zaXRpb25zJykgPiAtMSkge1xyXG4gICAgICAgICAgICBjb25zdCBwcm9taXNlID0gdGhpcy5fYWNjb3VudHMuZ2V0KGUpLnRvUHJvbWlzZSgpLnRoZW4odiA9PlxyXG4gICAgICAgICAgICAgIGRpZmZbbGVuZ3RoIC0gMV0gPSB2Lm5hbWUpO1xyXG4gICAgICAgICAgICBwcm9taXNlcy5wdXNoKHByb21pc2UpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZGlmZltTVEFURSArIChsZW5ndGggLSAxKS50b1N0cmluZygpXSA9IENoYW5nZVN0YXRlLkFkZGVkO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIChiIGFzIFtdKS5mb3JFYWNoKChlLCBpKSA9PiB7XHJcbiAgICAgICAgaWYgKGUgIT09IGFbaV0pIHtcclxuICAgICAgICAgIGlmIChpc09iamVjdChlKSkge1xyXG4gICAgICAgICAgICBjb25zdCBiSnNvbiA9IEpTT04uc3RyaW5naWZ5KGUpO1xyXG4gICAgICAgICAgICBpZiAoYkpzb24gPT09IEpTT04uc3RyaW5naWZ5KGFbaV0pIHx8IChhIGFzIFtdKS5maW5kKGEgPT4gSlNPTi5zdHJpbmdpZnkoYSkgPT09IGJKc29uIHx8XHJcbiAgICAgICAgICAgICAgdGhpcy5fbWF0Y2goYSwgZSkpKSByZXR1cm47XHJcbiAgICAgICAgICAgIGNvbnN0IG9iaiA9IGlzQXJyYXkoZSkgPyBbXSA6IHt9O1xyXG4gICAgICAgICAgICBjb25zdCBwcm9taXNlID0gdGhpcy5fYnJhbmNoKGUsIG9iaiwgeyBub2Rlczogc2NvcGUubm9kZXMsIHR5cGU6IGVbREFUQV9UWVBFXSB8fCBzY29wZS50eXBlIH0pO1xyXG4gICAgICAgICAgICBpZiAoIXByb21pc2UpIHJldHVybjtcclxuICAgICAgICAgICAgY29uc3QgbGVuZ3RoID0gKGRpZmYgYXMgYW55W10pLnB1c2gob2JqKTtcclxuICAgICAgICAgICAgZGlmZltTVEFURSArIChsZW5ndGggLSAxKS50b1N0cmluZygpXSA9IENoYW5nZVN0YXRlLlJlbW92ZWQ7XHJcbiAgICAgICAgICAgIHByb21pc2VzLnB1c2gocHJvbWlzZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIGlmICghKGEgYXMgW10pLmZpbmQoYSA9PiBhID09IGUpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxlbmd0aCA9IChkaWZmIGFzIFtdKS5wdXNoKGUpO1xyXG4gICAgICAgICAgICBpZiAoc2NvcGUubm9kZXMuaW5kZXhPZigncG9zaXRpb25zJykgPiAtMSkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSB0aGlzLl9hY2NvdW50cy5nZXQoZSkudG9Qcm9taXNlKCkudGhlbih2ID0+XHJcbiAgICAgICAgICAgICAgICBkaWZmW2xlbmd0aCAtIDFdID0gdi5uYW1lKTtcclxuICAgICAgICAgICAgICBwcm9taXNlcy5wdXNoKHByb21pc2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGRpZmZbU1RBVEUgKyAobGVuZ3RoIC0gMSkudG9TdHJpbmcoKV0gPSBDaGFuZ2VTdGF0ZS5SZW1vdmVkO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGlmICghKGRpZmYgYXMgYW55W10pLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIE9iamVjdC5rZXlzKGEpLmZvckVhY2goayA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuX2lnbm9yZShrLCBzY29wZS5ub2RlcykpIHJldHVybjtcclxuICAgICAgICBjb25zdCBhVmFsID0gYVtrXSwgYlZhbCA9IGJba107XHJcbiAgICAgICAgaWYgKGFWYWwgPT09IGJWYWwpIHJldHVybjtcclxuICAgICAgICBlbHNlIGlmIChpc09iamVjdChhVmFsKSkge1xyXG4gICAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KGFWYWwpID09PSBKU09OLnN0cmluZ2lmeShiVmFsKSkgcmV0dXJuO1xyXG4gICAgICAgICAgaWYgKGJWYWwgIT09IHVuZGVmaW5lZCAmJiBpc0FycmF5KGJWYWwpICE9PSBpc0FycmF5KGFWYWwpKSB7XHJcbiAgICAgICAgICAgIGRpZmZba10gPSBhVmFsO1xyXG4gICAgICAgICAgICBkaWZmW09SSUdJTkFMX1ZBTFVFICsga10gPSBpc0FycmF5KGJWYWwpID8gYlZhbC5qb2luKCcsICcpIDogYlZhbDtcclxuICAgICAgICAgICAgZGlmZltTVEFURSArIGtdID0gQ2hhbmdlU3RhdGUuTW9kaWZpZWQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgbGV0IG9iaiA9IGlzQXJyYXkoYVZhbCkgPyBbXSA6IHt9LFxyXG4gICAgICAgICAgICAgIGV4dHJhID0geyB0eXBlOiBhVmFsW0RBVEFfVFlQRV0gfHwgc2NvcGUudHlwZSwgbm9kZXM6IFsuLi5zY29wZS5ub2Rlcywga10gfSBhcyBTY29wZTtcclxuICAgICAgICAgICAgaWYgKGJWYWwgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSB0aGlzLl9jb21wYXJlKGFWYWwsIGJWYWwsIG9iaiwgZXh0cmEpO1xyXG4gICAgICAgICAgICAgIGlmICghcHJvbWlzZSkgcmV0dXJuO1xyXG4gICAgICAgICAgICAgIGlmICghaXNBcnJheShhVmFsKSlcclxuICAgICAgICAgICAgICAgIG9iaiA9IHRoaXMuX3Jla2V5KGFWYWwsIG9iaiwgc2NvcGUubm9kZXMpO1xyXG4gICAgICAgICAgICAgIHByb21pc2VzLnB1c2gocHJvbWlzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMuX2JyYW5jaChhVmFsLCBvYmosIGV4dHJhKTtcclxuICAgICAgICAgICAgICBpZiAoIXByb21pc2UpIHJldHVybjtcclxuICAgICAgICAgICAgICBwcm9taXNlcy5wdXNoKHByb21pc2UpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoc2NvcGUubm9kZXMuaW5kZXhPZigncG9zaXRpb25zJykgPiAtMSkge1xyXG4gICAgICAgICAgICAgIGRpZmZbT1JJR0lOQUxfVkFMVUUgKyBrXSA9IGFWYWw7XHJcbiAgICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMuX2RzLmdldChzY29wZS50eXBlLCBrKS50b1Byb21pc2UoKS50aGVuKHYgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbmFtZSA9IGlzU3RyaW5nKHYpID8gdiA6IHZbT2JqZWN0LmtleXModilbMF1dO1xyXG4gICAgICAgICAgICAgICAgZGlmZltuYW1lXSA9IG9ialxyXG4gICAgICAgICAgICAgICAgaWYgKGJWYWwgPT09IHVuZGVmaW5lZCkgZGlmZltTVEFURSArIG5hbWVdID0gQ2hhbmdlU3RhdGUuQWRkZWQ7XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgcHJvbWlzZXMucHVzaChwcm9taXNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICBkaWZmW2tdID0gb2JqO1xyXG4gICAgICAgICAgICAgIGlmIChiVmFsID09PSB1bmRlZmluZWQpIGRpZmZbU1RBVEUgKyBrXSA9IENoYW5nZVN0YXRlLkFkZGVkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgZGlmZltrXSA9IGFWYWw7XHJcbiAgICAgICAgICBpZiAoayA9PT0gJ3VzZXJJZCcpIHtcclxuICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMuX2FjY291bnRzLmdldChhVmFsKS50b1Byb21pc2UoKS50aGVuKHYgPT5cclxuICAgICAgICAgICAgICBkaWZmW2tdID0gdi5uYW1lKTtcclxuICAgICAgICAgICAgcHJvbWlzZXMucHVzaChwcm9taXNlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChiVmFsICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgaWYgKGsgPT09ICd1c2VySWQnKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMuX2FjY291bnRzLmdldChiVmFsKS50b1Byb21pc2UoKS50aGVuKHYgPT5cclxuICAgICAgICAgICAgICAgIGRpZmZbT1JJR0lOQUxfVkFMVUUgKyBrXSA9IHYubmFtZSk7XHJcbiAgICAgICAgICAgICAgcHJvbWlzZXMucHVzaChwcm9taXNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgICAgZGlmZltPUklHSU5BTF9WQUxVRSArIGtdID0gYlZhbDtcclxuICAgICAgICAgICAgZGlmZltTVEFURSArIGtdID0gQ2hhbmdlU3RhdGUuTW9kaWZpZWQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIGRpZmZbU1RBVEUgKyBrXSA9IENoYW5nZVN0YXRlLkFkZGVkO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIE9iamVjdC5rZXlzKGIpLmZvckVhY2goayA9PiB7XHJcbiAgICAgICAgaWYgKGFba10gIT09IHVuZGVmaW5lZCB8fCB0aGlzLl9pZ25vcmUoaywgc2NvcGUubm9kZXMpKSByZXR1cm47XHJcbiAgICAgICAgY29uc3QgYlZhbCA9IGJba107XHJcbiAgICAgICAgaWYgKHNjb3BlLm5vZGVzLmluZGV4T2YoJ3Bvc2l0aW9ucycpID4gLTEpIHtcclxuICAgICAgICAgIGNvbnN0IG9iaiA9IFtdO1xyXG4gICAgICAgICAgZGlmZltPUklHSU5BTF9WQUxVRSArIGtdID0gYlZhbDtcclxuICAgICAgICAgIGNvbnN0IHByb21pc2UgPSB0aGlzLl9kcy5nZXQoc2NvcGUudHlwZSwgaykudG9Qcm9taXNlKCkudGhlbih2ID0+IHtcclxuICAgICAgICAgICAgY29uc3QgbmFtZSA9IGlzU3RyaW5nKHYpID8gdiA6IHZbT2JqZWN0LmtleXModilbMF1dO1xyXG4gICAgICAgICAgICBkaWZmW25hbWVdID0gb2JqO1xyXG4gICAgICAgICAgICBkaWZmW1NUQVRFICsgbmFtZV0gPSBDaGFuZ2VTdGF0ZS5SZW1vdmVkO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBwcm9taXNlcy5wdXNoKHByb21pc2UpO1xyXG4gICAgICAgICAgYlZhbCAmJiAoYlZhbCBhcyBhbnlbXSkuZm9yRWFjaCgoZSwgaSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBwcm9taXNlID0gdGhpcy5fYWNjb3VudHMuZ2V0KGUpLnRvUHJvbWlzZSgpLnRoZW4odiA9PlxyXG4gICAgICAgICAgICAgIG9ialtpXSA9IHYubmFtZSk7XHJcbiAgICAgICAgICAgIHByb21pc2VzLnB1c2gocHJvbWlzZSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBpZiAoaXNPYmplY3QoYlZhbCkpIHtcclxuICAgICAgICAgICAgY29uc3Qgb2JqID0gaXNBcnJheShiVmFsKSA/IFtdIDoge307XHJcbiAgICAgICAgICAgIGNvbnN0IHByb21pc2UgPSB0aGlzLl9icmFuY2goYlZhbCwgb2JqLCB7IHR5cGU6IGJWYWxbREFUQV9UWVBFXSB8fCBzY29wZS50eXBlLCBub2RlczogWy4uLnNjb3BlLm5vZGVzLCBrXSB9KTtcclxuICAgICAgICAgICAgaWYgKCFwcm9taXNlKSByZXR1cm47XHJcbiAgICAgICAgICAgIGRpZmZba10gPSBvYmo7XHJcbiAgICAgICAgICAgIHByb21pc2UgJiYgcHJvbWlzZXMucHVzaChwcm9taXNlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBkaWZmW2tdID0gYlZhbDtcclxuICAgICAgICAgICAgaWYgKGsgPT09ICd1c2VySWQnKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMuX2FjY291bnRzLmdldChiVmFsKS50b1Byb21pc2UoKS50aGVuKHYgPT5cclxuICAgICAgICAgICAgICAgIGRpZmZba10gPSB2Lm5hbWUpO1xyXG4gICAgICAgICAgICAgIHByb21pc2VzLnB1c2gocHJvbWlzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRpZmZbU1RBVEUgKyBrXSA9IENoYW5nZVN0YXRlLlJlbW92ZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKCFPYmplY3Qua2V5cyhkaWZmKS5sZW5ndGgpIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHJldHVybiBwcm9taXNlcy5sZW5ndGggPyBQcm9taXNlLmFsbChwcm9taXNlcykudGhlbigoKSA9PiBkaWZmKSA6IFByb21pc2UucmVzb2x2ZShkaWZmKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIG9iajFcclxuICAgKiBAcGFyYW0gb2JqMlxyXG4gICAqL1xyXG4gIHByaXZhdGUgX21hdGNoKG9iajE6IGFueSwgb2JqMjogYW55KSB7XHJcbiAgICByZXR1cm4gSU5ERVhfUFJPUEVSVFkuZmluZEluZGV4KGsgPT4gb2JqMVtrXSAmJiBvYmoxW2tdID09PSBvYmoyW2tdKSA+IC0xO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGJhc2VcclxuICAgKiBAcGFyYW0gb2JqXHJcbiAgICogQHBhcmFtIG5vZGVzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfcmVrZXkoYmFzZToge30sIG9iajoge30sIG5vZGVzOiBzdHJpbmdbXSkge1xyXG4gICAgY29uc3QgbmV3T2JqID0ge307XHJcbiAgICBsZXQgb2sgPSBmYWxzZTtcclxuICAgIElOREVYX1BST1BFUlRZLmZvckVhY2goayA9PiB7XHJcbiAgICAgIGlmICh0aGlzLl9pZ25vcmUoaywgbm9kZXMpKSByZXR1cm47XHJcbiAgICAgIGlmIChiYXNlW2tdKSB7XHJcbiAgICAgICAgbmV3T2JqW2tdID0gYmFzZVtrXTtcclxuICAgICAgICBvayA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIG9rID8gT2JqZWN0LmFzc2lnbihuZXdPYmosIG9iaikgOiBvYmo7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gbmFtZVxyXG4gICAqIEBwYXJhbSBub2Rlc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgX2lnbm9yZShuYW1lOiBzdHJpbmcsIG5vZGVzOiBzdHJpbmdbXSkge1xyXG4gICAgcmV0dXJuIElHTk9SRV9OT0RFLmluZGV4T2YobmFtZSkgPiAtMSB8fCBJR05PUkVfTk9ERS5pbmRleE9mKG5vZGVzW25vZGVzLmxlbmd0aCAtIDFdICsgJy4nICsgbmFtZSkgPiAtMTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGJhc2VcclxuICAgKiBAcGFyYW0gcHJlc3RpbmVcclxuICAgKiBAcGFyYW0gc2NvcGVcclxuICAgKi9cclxuICBwcml2YXRlIF9icmFuY2goYmFzZToge30gfCBbXSwgcHJlc3RpbmU6IHt9IHwgW10sIHNjb3BlOiBTY29wZSk6IFByb21pc2U8YW55PiB8IGZhbHNlIHtcclxuICAgIGNvbnN0IHByb21pc2VzOiBQcm9taXNlPGFueT5bXSA9IFtdO1xyXG4gICAgaWYgKGlzQXJyYXkoYmFzZSkpIHtcclxuICAgICAgYmFzZS5mb3JFYWNoKGUgPT4ge1xyXG4gICAgICAgIGlmIChpc09iamVjdChlKSkge1xyXG4gICAgICAgICAgY29uc3Qgb2JqID0gaXNBcnJheShlKSA/IFtdIDoge307XHJcbiAgICAgICAgICBjb25zdCBwcm9taXNlID0gdGhpcy5fYnJhbmNoKGUsIG9iaiwgeyBub2Rlczogc2NvcGUubm9kZXMsIHR5cGU6IGVbREFUQV9UWVBFXSB8fCBzY29wZS50eXBlIH0pO1xyXG4gICAgICAgICAgaWYgKCFwcm9taXNlKVxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICBwcm9taXNlcy5wdXNoKHByb21pc2UpO1xyXG4gICAgICAgICAgKHByZXN0aW5lIGFzIGFueVtdKS5wdXNoKG9iaik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgbGVuZ3RoID0gKHByZXN0aW5lIGFzIGFueVtdKS5wdXNoKGUpO1xyXG4gICAgICAgICAgaWYgKHNjb3BlLm5vZGVzLmluZGV4T2YoJ3Bvc2l0aW9ucycpID4gLTEpIHtcclxuICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMuX2FjY291bnRzLmdldChlKS50b1Byb21pc2UoKS50aGVuKHYgPT5cclxuICAgICAgICAgICAgICBwcmVzdGluZVtsZW5ndGggLSAxXSA9IHYubmFtZSk7XHJcbiAgICAgICAgICAgIHByb21pc2VzLnB1c2gocHJvbWlzZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKCEocHJlc3RpbmUgYXMgYW55W10pLmxlbmd0aCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgT2JqZWN0LmtleXMoYmFzZSkuZm9yRWFjaChrID0+IHtcclxuICAgICAgICBpZiAodGhpcy5faWdub3JlKGssIHNjb3BlLm5vZGVzKSkgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IGFWYWwgPSBiYXNlW2tdO1xyXG4gICAgICAgIGlmIChpc09iamVjdChhVmFsKSkge1xyXG4gICAgICAgICAgY29uc3Qgb2JqID0gaXNBcnJheShhVmFsKSA/IFtdIDoge307XHJcbiAgICAgICAgICBjb25zdCBwcm9taXNlID0gdGhpcy5fYnJhbmNoKGFWYWwsIG9iaiwgeyB0eXBlOiBhVmFsW0RBVEFfVFlQRV0gfHwgc2NvcGUudHlwZSwgbm9kZXM6IFsuLi5zY29wZS5ub2Rlcywga10gfSk7XHJcbiAgICAgICAgICBpZiAoIXByb21pc2UpXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIHByb21pc2VzLnB1c2gocHJvbWlzZSk7XHJcbiAgICAgICAgICBpZiAoc2NvcGUubm9kZXMuaW5kZXhPZigncG9zaXRpb25zJykgPiAtMSkge1xyXG4gICAgICAgICAgICBjb25zdCBwcm9taXNlID0gdGhpcy5fZHMuZ2V0KHNjb3BlLnR5cGUsIGspLnRvUHJvbWlzZSgpLnRoZW4odiA9PlxyXG4gICAgICAgICAgICAgIHByZXN0aW5lW2lzU3RyaW5nKHYpID8gdiA6IHZbT2JqZWN0LmtleXModilbMF1dXSA9IG9ialxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBwcm9taXNlcy5wdXNoKHByb21pc2UpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICBwcmVzdGluZVtrXSA9IG9iajtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBwcmVzdGluZVtrXSA9IGFWYWw7XHJcbiAgICAgICAgICBpZiAoayA9PT0gJ3VzZXJJZCcpIHtcclxuICAgICAgICAgICAgY29uc3QgcHJvbWlzZSA9IHRoaXMuX2FjY291bnRzLmdldChhVmFsKS50b1Byb21pc2UoKS50aGVuKHYgPT5cclxuICAgICAgICAgICAgICBwcmVzdGluZVtrXSA9IHYubmFtZSk7XHJcbiAgICAgICAgICAgIHByb21pc2VzLnB1c2gocHJvbWlzZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKCFPYmplY3Qua2V5cyhwcmVzdGluZSkubGVuZ3RoKSByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcHJvbWlzZXMubGVuZ3RoID8gUHJvbWlzZS5hbGwocHJvbWlzZXMpIDogUHJvbWlzZS5yZXNvbHZlKCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIHJldHVybiBodG1sIGZyb20gZGlmZiB0cmVlXHJcbiAgICogQHBhcmFtIGRpZmZcclxuICAgKiBAcGFyYW0gb2Jqc3RhdGVcclxuICAgKiBAcGFyYW0gcHJvcGVydHlOYW1lXHJcbiAgICogQHBhcmFtIHNpYmxpbmcgYXJyYXkgZW50cnlcclxuICAgKi9cclxuICBwcml2YXRlIF9nZW5lcmF0ZShkaWZmOiB7fSB8IFtdLCBvYmpzdGF0ZTogQ2hhbmdlU3RhdGUgPSBDaGFuZ2VTdGF0ZS5VbmNoYW5nZWQsXHJcbiAgICBwcm9wZXJ0eU5hbWUgPSB1bmRlZmluZWQsIHNpYmxpbmcgPSBmYWxzZSkge1xyXG4gICAgbGV0IGggPSAnJztcclxuICAgIGlmIChpc0FycmF5KGRpZmYpKSB7XHJcbiAgICAgIGggKz0gdGhpcy5fd3JpdGUob2Jqc3RhdGUsIFRva2VuS2luZC5BcnJheVN0YXJ0LCBmYWxzZSwgZmFsc2UsIHByb3BlcnR5TmFtZSk7XHJcbiAgICAgIGNvbnN0IG4gPSBkaWZmLmxlbmd0aDtcclxuICAgICAgZGlmZi5mb3JFYWNoKChlLCBpKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc3RhdGUgPSBkaWZmW1NUQVRFICsgaS50b1N0cmluZygpXTtcclxuICAgICAgICBpZiAoaXNPYmplY3QoZSkpXHJcbiAgICAgICAgICBoICs9IHRoaXMuX2dlbmVyYXRlKGUsIHN0YXRlLCB1bmRlZmluZWQsIGkgPCBuIC0gMSk7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgaCArPSB0aGlzLl93cml0ZShzdGF0ZSwgVG9rZW5LaW5kLlZhbHVlLFxyXG4gICAgICAgICAgICBpID09PSBuIC0gMSB8fCBkaWZmW1NUQVRFICsgKGkgKyAxKS50b1N0cmluZygpXSAhPT0gc3RhdGUsXHJcbiAgICAgICAgICAgIGkgPCBuIC0gMSwgdW5kZWZpbmVkLCBlKTtcclxuICAgICAgfSk7XHJcbiAgICAgIGggKz0gdGhpcy5fd3JpdGUob2Jqc3RhdGUsIFRva2VuS2luZC5BcnJheUVuZCwgdHJ1ZSwgc2libGluZyk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgaCArPSB0aGlzLl93cml0ZShvYmpzdGF0ZSwgVG9rZW5LaW5kLk9iamVjdFN0YXJ0LCBmYWxzZSwgZmFsc2UsIHByb3BlcnR5TmFtZSk7XHJcbiAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhkaWZmKS5maWx0ZXIoayA9PiAhay5zdGFydHNXaXRoKE9SSUdJTkFMX1ZBTFVFKSk7XHJcbiAgICAgIGtleXMuZm9yRWFjaCgoaywgaSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHZhbCA9IGRpZmZba10sIHN0YXRlID0gZGlmZltTVEFURSArIGtdLCBuID0ga2V5cy5sZW5ndGg7XHJcbiAgICAgICAgaWYgKGlzT2JqZWN0KHZhbCkpXHJcbiAgICAgICAgICBoICs9IHRoaXMuX2dlbmVyYXRlKHZhbCwgc3RhdGUsIGssIGkgPCBuIC0gMSk7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgaCArPSB0aGlzLl93cml0ZShzdGF0ZSwgVG9rZW5LaW5kLlZhbHVlLCBzdGF0ZSAhPT0gb2Jqc3RhdGUsIGkgPCBuIC0gMSwgaywgdmFsLCBkaWZmW09SSUdJTkFMX1ZBTFVFICsga10pO1xyXG4gICAgICB9KTtcclxuICAgICAgaCArPSB0aGlzLl93cml0ZShvYmpzdGF0ZSwgVG9rZW5LaW5kLk9iamVjdEVuZCwgdHJ1ZSwgc2libGluZyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaDtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogd3JpdGUgaHRtbCBsaW5lXHJcbiAgICogQHBhcmFtIHN0YXRlXHJcbiAgICogQHBhcmFtIGFubm90YXRlXHJcbiAgICogQHBhcmFtIHRva2VuXHJcbiAgICogQHBhcmFtIHNpYmxpbmcgYXJyYXkgZW50cnlcclxuICAgKiBAcGFyYW0gcHJvcGVydHlOYW1lXHJcbiAgICogQHBhcmFtIHZhbHVlXHJcbiAgICogQHBhcmFtIG9yaWdpbmFsVmFsdWVcclxuICAgKi9cclxuICBwcml2YXRlIF93cml0ZShzdGF0ZTogQ2hhbmdlU3RhdGUsXHJcbiAgICB0b2tlbjogVG9rZW5LaW5kLFxyXG4gICAgYW5ub3RhdGU6IGJvb2xlYW4sXHJcbiAgICBzaWJsaW5nPzogYm9vbGVhbixcclxuICAgIHByb3BlcnR5TmFtZT86IHN0cmluZyxcclxuICAgIHZhbHVlPzogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbixcclxuICAgIG9yaWdpbmFsVmFsdWU/OiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuXHJcbiAgKSB7XHJcbiAgICBsZXQgaCA9ICcnLCBicmFja2V0czogc3RyaW5nLCBjbHM6IHN0cmluZztcclxuICAgIHN3aXRjaCAoc3RhdGUpIHtcclxuICAgICAgY2FzZSBDaGFuZ2VTdGF0ZS5SZW1vdmVkOlxyXG4gICAgICAgIGNscyA9ICdjb21wYXJlIHJlbW92ZWQnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIENoYW5nZVN0YXRlLkFkZGVkOlxyXG4gICAgICAgIGNscyA9ICdjb21wYXJlIGFkZGVkJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBDaGFuZ2VTdGF0ZS5Nb2RpZmllZDpcclxuICAgICAgICBjbHMgPSAnY29tcGFyZSBtb2RpZmllZCc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgY2xzID0gJyc7XHJcbiAgICB9XHJcbiAgICBzd2l0Y2ggKHRva2VuKSB7XHJcbiAgICAgIGNhc2UgVG9rZW5LaW5kLkFycmF5U3RhcnQ6XHJcbiAgICAgICAgYnJhY2tldHMgPSAnWyc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgVG9rZW5LaW5kLk9iamVjdFN0YXJ0OlxyXG4gICAgICAgIGJyYWNrZXRzID0gJ3snO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFRva2VuS2luZC5BcnJheUVuZDpcclxuICAgICAgICBicmFja2V0cyA9ICddJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBUb2tlbktpbmQuT2JqZWN0RW5kOlxyXG4gICAgICAgIGJyYWNrZXRzID0gJ30nO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgaWYgKHRva2VuID09IFRva2VuS2luZC5PYmplY3RTdGFydCB8fCB0b2tlbiA9PSBUb2tlbktpbmQuQXJyYXlTdGFydClcclxuICAgICAgaCA9IGA8ZGl2IGNsYXNzPVwic2NvcGUgJHtjbHN9XCI+YDtcclxuICAgIGlmIChwcm9wZXJ0eU5hbWUpXHJcbiAgICAgIGggKz0gYDxzcGFuIGNsYXNzPVwic3RydWN0dXJlICR7Y2xzfVwiPiR7cHJvcGVydHlOYW1lfTogPC9zcGFuPmA7XHJcbiAgICBpZiAoYnJhY2tldHMpIHtcclxuICAgICAgaWYgKHRva2VuID09IFRva2VuS2luZC5PYmplY3RFbmQgfHwgdG9rZW4gPT0gVG9rZW5LaW5kLkFycmF5RW5kKVxyXG4gICAgICAgIGggKz0gJzwvZGl2Pic7XHJcbiAgICAgIGggKz0gYDxzcGFuIGNsYXNzPVwiYnJhY2tldHNcIj4ke2JyYWNrZXRzfTwvc3Bhbj5gXHJcbiAgICAgIGlmICh0b2tlbiA9PSBUb2tlbktpbmQuT2JqZWN0U3RhcnQgfHwgdG9rZW4gPT0gVG9rZW5LaW5kLkFycmF5U3RhcnQpXHJcbiAgICAgICAgaCArPSAnPHNwYW4gY2xhc3M9XCJhbHRlcm5hdGVcIj4uLi48L3NwYW4+PGRpdiBjbGFzcz1cInNjb3BlLWNvbnRlbnRcIj4nO1xyXG4gICAgfVxyXG4gICAgaWYgKHRva2VuID09IFRva2VuS2luZC5WYWx1ZSkge1xyXG4gICAgICBpZiAocHJvcGVydHlOYW1lID09PSAnY29sb3InKSBoICs9IGA8ZGl2IGNsYXNzPVwiY29sb3JcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6JHt2YWx1ZX1cIj48L2Rpdj4mbmJzcDtgO1xyXG4gICAgICBlbHNlIGlmICgocHJvcGVydHlOYW1lID09PSAnc2hhcGUnIHx8IHByb3BlcnR5TmFtZSA9PT0gJ2RhdGEnKSAmJiBTVkdfUEFUSF9SRUdFWC50ZXN0KHZhbHVlIGFzIHN0cmluZykpIGggKz0gYDxzdmcgd2lkdGg9MTIgaGVpZ2h0PTEyIHZpZXdCb3g9XCIwIDAgMzUgMzVcIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwibm9uZVwiPjxwYXRoIGQ9XCIke3ZhbHVlfVwiPjwvcGF0aD48L3N2Zz4mbmJzcDtgO1xyXG4gICAgICBoICs9IGA8c3BhbiBjbGFzcz1cInZhbHVlICR7Y2xzfVwiPiR7dmFsdWV9PC9zcGFuPmA7XHJcbiAgICB9XHJcbiAgICBpZiAoc2libGluZykgaCArPSAnPHNwYW4gY2xhc3M9XCJzdHJ1Y3R1cmVcIj4sPC9zcGFuPic7XHJcbiAgICBpZiAoc3RhdGUgJiYgYW5ub3RhdGUpIHtcclxuICAgICAgY29uc3QgcmVzb3VyY2UgPSBzdGF0ZSA9PT0gQ2hhbmdlU3RhdGUuUmVtb3ZlZCA/ICdEZWxldGVkJyA6IHN0YXRlID09PSBDaGFuZ2VTdGF0ZS5BZGRlZCA/ICdBZGRlZCcgOiAnTW9kaWZpZWQnO1xyXG4gICAgICBoICs9IGA8ZGl2IGNsYXNzPVwiJHtjbHN9XCI+IDxkaXYgY2xhc3M9XCJsYWJlbFwiPjxzcGFuPiR7dGhpcy5fdHJhbnNsYXRlLmdldChyZXNvdXJjZSl9YDtcclxuICAgICAgaWYgKG9yaWdpbmFsVmFsdWUpXHJcbiAgICAgICAgaCArPSBgJm5ic3A7PHNwYW4gY2xhc3M9XCJvcmlnaW5hbFwiPiR7b3JpZ2luYWxWYWx1ZX08L3NwYW4+YDtcclxuICAgICAgaCArPSAnPC9zcGFuPjwvZGl2PjwvZGl2Pic7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0b2tlbiA9PT0gVG9rZW5LaW5kLlZhbHVlKVxyXG4gICAgICBoICs9ICc8YnIvPic7XHJcbiAgICBpZiAodG9rZW4gPT0gVG9rZW5LaW5kLk9iamVjdEVuZCB8fCB0b2tlbiA9PSBUb2tlbktpbmQuQXJyYXlFbmQpXHJcbiAgICAgIGggKz0gJzwvZGl2Pic7XHJcbiAgICByZXR1cm4gaDtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogdG9nZ2xlXHJcbiAgICogQHBhcmFtIGV2dFxyXG4gICAqL1xyXG4gIGNvbGxhcHNlKGV2dDogTW91c2VFdmVudCkge1xyXG4gICAgbGV0IGVsID0gZXZ0LnNyY0VsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICB3aGlsZSAoZWwgJiYgIWVsLmNsYXNzTGlzdC5jb250YWlucygnc2NvcGUnKSlcclxuICAgICAgZWwgPSBlbC5wYXJlbnRFbGVtZW50O1xyXG4gICAgZWwgJiYgZWwuY2xhc3NMaXN0LnRvZ2dsZSgnY29sbGFwc2UnKSAmJiBlbC5jbGFzc0xpc3QucmVtb3ZlKCdmb2N1cycpO1xyXG4gICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiByZW1vdmUgY2xzXHJcbiAgICovXHJcbiAgZm9jdXNPdXQoKSB7XHJcbiAgICB0aGlzLmNvbnRlbnRzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnNjb3BlLmZvY3VzJykuZm9yRWFjaChlID0+XHJcbiAgICAgIGUuY2xhc3NMaXN0LnJlbW92ZSgnZm9jdXMnKVxyXG4gICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGV2dFxyXG4gICAqL1xyXG4gIGZvY3VzSW4oZXZ0OiBNb3VzZUV2ZW50KSB7XHJcbiAgICB0aGlzLmZvY3VzT3V0KCk7XHJcbiAgICBsZXQgZWwgPSBldnQuc3JjRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcclxuICAgIHdoaWxlIChlbCAmJiAhZWwuY2xhc3NMaXN0LmNvbnRhaW5zKCdzY29wZScpKVxyXG4gICAgICBlbCA9IGVsLnBhcmVudEVsZW1lbnQ7XHJcbiAgICBlbCAmJiAhZWwuY2xhc3NMaXN0LmNvbnRhaW5zKCdjb2xsYXBzZScpICYmIGVsLmNsYXNzTGlzdC5hZGQoJ2ZvY3VzJyk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbmludGVyZmFjZSBWZXJzaW9uSW5mbyB7XHJcbiAgdGltZTogRGF0ZTtcclxuICBhdXRob3I6IHN0cmluZztcclxuICBmaWxlPzogc3RyaW5nO1xyXG59XHJcbmludGVyZmFjZSBDb25maWd1cnRpb25JbmZvIHtcclxufVxyXG5pbnRlcmZhY2UgQ29tcGFyZU1vZGVsIHtcclxuICBkYXRlMTogRGF0ZTtcclxuICBkYXRlMjogRGF0ZTtcclxufVxyXG5pbnRlcmZhY2UgU2NvcGUge1xyXG4gIHR5cGU/OiBzdHJpbmc7XHJcbiAgbm9kZXM6IHN0cmluZ1tdO1xyXG59XHJcbmVudW0gQ2hhbmdlU3RhdGUge1xyXG4gIFVuY2hhbmdlZCxcclxuICBBZGRlZCxcclxuICBNb2RpZmllZCxcclxuICBSZW1vdmVkXHJcbn1cclxuZW51bSBUb2tlbktpbmQge1xyXG4gIFZhbHVlLFxyXG4gIEFycmF5U3RhcnQsXHJcbiAgQXJyYXlFbmQsXHJcbiAgT2JqZWN0U3RhcnQsXHJcbiAgT2JqZWN0RW5kXHJcbn1cclxuIiwiPG1hdC10b29sYmFyPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJwcm9wZXJ0aWVzLnRvZ2dsZSgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0NvbGxhcHNlJyB8IHRyYW5zbGF0ZVwiPjxtYXQtaWNvbj52aWV3X3NpZGViYXI8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuPC9tYXQtdG9vbGJhcj5cclxuPG1hdC1zaWRlbmF2LWNvbnRhaW5lciBhdXRvc2l6ZSBmeEZsZXg+XHJcbiAgPG1hdC1zaWRlbmF2LWNvbnRlbnQ+XHJcbiAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiYnVmZmVyXCIgW3ZhbHVlXT1wcm9ncmVzcyBbYnVmZmVyVmFsdWVdPTAgW3N0eWxlLnZpc2liaWxpdHldPVwicHJvZ3Jlc3MgPiAwICYmIHByb2dyZXNzIDwgMTAwID8gJ3Zpc2libGUnOidoaWRkZW4nXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxyXG4gICAgPGRpdiBbaW5uZXJIVE1MXT1cImh0bWwgfCBzYW5pdGl6ZUh0bWxcIiAobW91c2VsZWF2ZSk9XCJmb2N1c091dCgpXCIgKG1vdXNlbW92ZSk9XCJmb2N1c0luKCRldmVudClcIiBjbGFzcz1cImNvbmZpZ3VyYXRpb24tZGlmZlwiIChjbGljayk9XCJjb2xsYXBzZSgkZXZlbnQpXCIgI2NvbnRlbnRzPjwvZGl2PlxyXG4gIDwvbWF0LXNpZGVuYXYtY29udGVudD5cclxuICA8bWF0LXNpZGVuYXYgbW9kZT1cInNpZGVcIiBvcGVuZWQgI3Byb3BlcnRpZXMgY2xhc3M9XCJ0aW1lbGluZVwiPlxyXG4gICAgPG1hdC1uYXYtbGlzdCAqbmdJZj1cInZlcnNpb25zXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHYgb2YgdmVyc2lvbnM7IGxldCBpbmRleCA9IGluZGV4OyBsZXQgbGFzdCA9IGxhc3RcIj5cclxuICAgICAgICA8bWF0LWxpc3QtaXRlbSAoY2xpY2spPVwiY29tcGFyZShpbmRleClcIiBbY2xhc3MuYWN0aXZlXT1cInYudGltZSA9PT0gYWN0aXZlRGF0ZVwiICpuZ0lmPVwiIWxhc3RcIj5cclxuICAgICAgICAgIDxoMyBtYXRMaW5lPlxyXG4gICAgICAgICAgICB7eyh2LmF1dGhvciB8fCAnU3lzdGVtJykgfCB1c2VyTmFtZSB8IGFzeW5jIH19XHJcbiAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJ0aW1lXCIgbWF0TGluZT5cclxuICAgICAgICAgICAge3t2LnRpbWUgfCBhbUNhbGVuZGFyOiBudWxsOiBDQUxFTkRBUl9TUEVDIH19XHJcbiAgICAgICAgICA8L3A+XHJcbiAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbWF0LW5hdi1saXN0PlxyXG4gIDwvbWF0LXNpZGVuYXY+XHJcbjwvbWF0LXNpZGVuYXYtY29udGFpbmVyPlxyXG4iXX0=
@@ -11,7 +11,7 @@ import * as i8 from "../core/slots/router.directive";
11
11
  export class CubeMenuComponent {
12
12
  constructor(session) {
13
13
  this.change = new EventEmitter();
14
- this.cubes = session.profile.cubes.filter(c => c.views.length);
14
+ this.cubes = session.profile.cubes.filter(c => c.views?.length);
15
15
  }
16
16
  }
17
17
  CubeMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: CubeMenuComponent, deps: [{ token: i1.SessionService }], target: i0.ɵɵFactoryTarget.Component });
@@ -24,4 +24,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
24
24
  }], change: [{
25
25
  type: Output
26
26
  }] } });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ViZS1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY3ViZS9jdWJlLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL2N1YmUtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7O0FBU3ZFLE1BQU0sT0FDRSxpQkFBaUI7SUFJdkIsWUFBWSxPQUF1QjtRQUZoQixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUc3QyxJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUEsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEUsQ0FBQzs7OEdBTkssaUJBQWlCO2tHQUFqQixpQkFBaUIsMkhDVnpCLGl5QkFhQSxzZ0RETmMsRUFBRTsyRkFHUixpQkFBaUI7a0JBTnhCLFNBQVM7K0JBQ0Usa0JBQWtCLGNBRWhCLEVBQUU7cUdBSUwsU0FBUztzQkFBakIsS0FBSztnQkFDYSxNQUFNO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ3ViZSB9IGZyb20gJy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1jdWJlLW1lbnUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jdWJlLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGFuaW1hdGlvbnM6IFtdXHJcbn0pXHJcbmV4cG9ydFxyXG4gIGNsYXNzIEN1YmVNZW51Q29tcG9uZW50IHtcclxuICBASW5wdXQoKSBjb2xsYXBzZWQ6IGJvb2xlYW47XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBjdWJlczogQ3ViZVtdO1xyXG4gIGNvbnN0cnVjdG9yKHNlc3Npb246IFNlc3Npb25TZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmN1YmVzID0gc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbHRlcihjPT4gYy52aWV3cy5sZW5ndGgpO1xyXG4gIH1cclxufVxyXG4iLCI8IS0tPHNwYW4gY2xhc3M9XCJtYXQtc3ViaGVhZGVyXCI+Qml6RG9jPC9zcGFuPlxyXG48aDEgY2xhc3M9XCJtYXQtZGlzcGxheS0xXCI+e3snQ3ViZSd8IHRyYW5zbGF0ZX19PC9oMT4tLT5cclxuPCEtLTxsb3R0aWUgbmFtZT1cImxmMzBfZWRpdG9yX3FyN3pnbWNzXCI+PC9sb3R0aWU+LS0+XHJcbjxtYXQtbmF2LWxpc3Q+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYyBvZiBjdWJlczsgbGV0IGZpcnN0ID0gZmlyc3RcIj5cclxuICAgIDxtYXQtZGl2aWRlciAqbmdJZj1cIiFmaXJzdFwiPjwvbWF0LWRpdmlkZXI+XHJcbiAgICA8aDMgbWF0U3ViaGVhZGVyICpuZ0lmPVwiIWNvbGxhcHNlZFwiPnt7Yy50aXRsZX19PC9oMz5cclxuICAgIDxtYXQtbGlzdC1pdGVtICpuZ0Zvcj1cImxldCB2IG9mIGMudmlld3NcIiAoY2xpY2spPVwiY2hhbmdlLmVtaXQoKVwiIFtzbG90Um91dGVyTGlua109J1tcImN1YmVcIiwgYy5uYW1lLCBcInZcIiwgdi5uYW1lXScgc2xvdFJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj5cclxuICAgICAgPG1hdC1pY29uIG1hdExpc3RJY29uIFtiaXpkb2NUb29sdGlwXT1cInYudGl0bGVcIiBiaXpkb2NUb29sdGlwUG9zaXRpb249XCJlbmRcIiBbYml6ZG9jVG9vbHRpcERpc2FibGVkXT1cIiFjb2xsYXBzZWRcIj57e3YuaWNvbiB8fCAnaW5zaWdodHMnfX08L21hdC1pY29uPlxyXG4gICAgICA8c3BhbiBtYXRMaW5lPnt7di50aXRsZX19PC9zcGFuPlxyXG4gICAgPC9tYXQtbGlzdC1pdGVtPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L21hdC1uYXYtbGlzdD5cclxuIl19
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ViZS1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY3ViZS9jdWJlLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL2N1YmUtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7O0FBU3ZFLE1BQU0sT0FDRSxpQkFBaUI7SUFJdkIsWUFBWSxPQUF1QjtRQUZoQixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUc3QyxJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUEsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDakUsQ0FBQzs7OEdBTkssaUJBQWlCO2tHQUFqQixpQkFBaUIsMkhDVnpCLGl5QkFhQSxzZ0RETmMsRUFBRTsyRkFHUixpQkFBaUI7a0JBTnhCLFNBQVM7K0JBQ0Usa0JBQWtCLGNBRWhCLEVBQUU7cUdBSUwsU0FBUztzQkFBakIsS0FBSztnQkFDYSxNQUFNO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ3ViZSB9IGZyb20gJy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1jdWJlLW1lbnUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jdWJlLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGFuaW1hdGlvbnM6IFtdXHJcbn0pXHJcbmV4cG9ydFxyXG4gIGNsYXNzIEN1YmVNZW51Q29tcG9uZW50IHtcclxuICBASW5wdXQoKSBjb2xsYXBzZWQ6IGJvb2xlYW47XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBjdWJlczogQ3ViZVtdO1xyXG4gIGNvbnN0cnVjdG9yKHNlc3Npb246IFNlc3Npb25TZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmN1YmVzID0gc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbHRlcihjPT4gYy52aWV3cz8ubGVuZ3RoKTtcclxuICB9XHJcbn1cclxuIiwiPCEtLTxzcGFuIGNsYXNzPVwibWF0LXN1YmhlYWRlclwiPkJpekRvYzwvc3Bhbj5cclxuPGgxIGNsYXNzPVwibWF0LWRpc3BsYXktMVwiPnt7J0N1YmUnfCB0cmFuc2xhdGV9fTwvaDE+LS0+XHJcbjwhLS08bG90dGllIG5hbWU9XCJsZjMwX2VkaXRvcl9xcjd6Z21jc1wiPjwvbG90dGllPi0tPlxyXG48bWF0LW5hdi1saXN0PlxyXG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGMgb2YgY3ViZXM7IGxldCBmaXJzdCA9IGZpcnN0XCI+XHJcbiAgICA8bWF0LWRpdmlkZXIgKm5nSWY9XCIhZmlyc3RcIj48L21hdC1kaXZpZGVyPlxyXG4gICAgPGgzIG1hdFN1YmhlYWRlciAqbmdJZj1cIiFjb2xsYXBzZWRcIj57e2MudGl0bGV9fTwvaDM+XHJcbiAgICA8bWF0LWxpc3QtaXRlbSAqbmdGb3I9XCJsZXQgdiBvZiBjLnZpZXdzXCIgKGNsaWNrKT1cImNoYW5nZS5lbWl0KClcIiBbc2xvdFJvdXRlckxpbmtdPSdbXCJjdWJlXCIsIGMubmFtZSwgXCJ2XCIsIHYubmFtZV0nIHNsb3RSb3V0ZXJMaW5rQWN0aXZlPVwiYWN0aXZlXCI+XHJcbiAgICAgIDxtYXQtaWNvbiBtYXRMaXN0SWNvbiBbYml6ZG9jVG9vbHRpcF09XCJ2LnRpdGxlXCIgYml6ZG9jVG9vbHRpcFBvc2l0aW9uPVwiZW5kXCIgW2JpemRvY1Rvb2x0aXBEaXNhYmxlZF09XCIhY29sbGFwc2VkXCI+e3t2Lmljb24gfHwgJ2luc2lnaHRzJ319PC9tYXQtaWNvbj5cclxuICAgICAgPHNwYW4gbWF0TGluZT57e3YudGl0bGV9fTwvc3Bhbj5cclxuICAgIDwvbWF0LWxpc3QtaXRlbT5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9tYXQtbmF2LWxpc3Q+XHJcbiJdfQ==
@@ -25,7 +25,7 @@ export class HomeBase {
25
25
  this.chatEnabled = config.chating !== false &&
26
26
  (!config.chating || !config.chating.app);
27
27
  this.profile = _session.profile;
28
- this.enableAnalysis = _session.profile.cubes.some(c => c.views.length);
28
+ this.enableAnalysis = _session.profile.cubes.some(c => c.views?.length);
29
29
  }
30
30
  ngOnInit() {
31
31
  const interceptor = this._injector.get(HTTP_INTERCEPTORS).find(i => i instanceof AppHttpInterceptor);
@@ -88,4 +88,4 @@ HomeBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.
88
88
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: HomeBase, decorators: [{
89
89
  type: Directive
90
90
  }], ctorParameters: function () { return [{ type: i1.Popup }, { type: i2.SessionService }, { type: i3.HubService }, { type: i4.TranslateService }, { type: i5.MatSnackBar }, { type: i0.Injector }, { type: undefined }]; } });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1iYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvaG9tZS9ob21lLWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBbUIsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBT3BDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBbUIsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7QUFFOUMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQztBQUduQyxNQUFNLE9BQWdCLFFBQVE7SUFNNUIsWUFDWSxNQUFhLEVBQ2IsUUFBd0IsRUFDMUIsVUFBc0IsRUFDcEIsVUFBNEIsRUFDNUIsU0FBc0IsRUFDeEIsU0FBbUIsRUFDM0IsTUFBb0I7UUFOVixXQUFNLEdBQU4sTUFBTSxDQUFPO1FBQ2IsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDMUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNwQixlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUM1QixjQUFTLEdBQVQsU0FBUyxDQUFhO1FBQ3hCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFHM0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxTQUFTLEtBQUssS0FBSyxDQUFDO1FBQ25ELElBQUksQ0FB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O0lBQ0QsTUFBTTtRQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNO1lBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUN2QyxDQUFDOztxR0EvRW1CLFFBQVE7eUZBQVIsUUFBUTsyRkFBUixRQUFRO2tCQUQ3QixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3RvciwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBJbnRlcmNlcHRvciwgSFRUUF9JTlRFUkNFUFRPUlMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEJpekRvY0NvbmZpZywgQ2hhdFNldHRpbmdzIH0gZnJvbSAnLi4vY29yZS9jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHsgUHJvZmlsZSwgUmVjaXBpZW50TW9kZWwgfSBmcm9tICcuLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQb3B1cCB9IGZyb20gJy4uL2NvcmUvcG9wdXAvcG9wdXAuc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSHViU2VydmljZSB9IGZyb20gJy4uL2NvcmUvaHViLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBRdWlja1NpZ25Db21wb25lbnQgfSBmcm9tICcuL3NpZ24vc2lnbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBRdWlja09wdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL29wdGlvbnMvb3B0aW9ucy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBPdXRPZk9mZmljZURhdGEsIE91dE9mT2ZmaWNlVG9hc3QgfSBmcm9tICcuL291dG9mb2ZmaWNlL291dG9mb2ZmaWNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFwcEh0dHBJbnRlcmNlcHRvciB9IGZyb20gJy4uL2NvcmUvaHR0cC5pbnRlcmNlcHRvcic7XHJcbmltcG9ydCB7IHBsYXlBdWRpbyB9IGZyb20gJy4uL2NvcmUvZnVuY3Rpb25zJztcclxuXHJcbmV4cG9ydCBjb25zdCBUT0FTVF9EVVJBVElPTiA9IDQwMDA7XHJcblxyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEhvbWVCYXNlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBjaGF0RW5hYmxlZDogYm9vbGVhbjtcclxuICBzY2hlZHVsZXJFbmFibGVkOiBib29sZWFuO1xyXG4gIHByb2ZpbGU6IFByb2ZpbGU7XHJcbiAgbG9hZGluZzogYm9vbGVhbjtcclxuICBlbmFibGVBbmFseXNpczogYm9vbGVhbjtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCBfcG9wdXA6IFBvcHVwLFxyXG4gICAgcHJvdGVjdGVkIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX21lc3NhZ2luZzogSHViU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIF9zbmFja0JhcjogTWF0U25hY2tCYXIsXHJcbiAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBjb25maWc6IEJpekRvY0NvbmZpZykge1xyXG5cclxuICAgIHRoaXMuc2NoZWR1bGVyRW5hYmxlZCA9IGNvbmZpZy5zY2hlZHVsZXIgIT09IGZhbHNlO1xyXG4gICAgdGhpcy5jaGF0RW5hYmxlZCA9IGNvbmZpZy5jaGF0aW5nICE9PSBmYWxzZSAmJlxyXG4gICAgICAoIWNvbmZpZy5jaGF0aW5nIHx8ICEoY29uZmlnLmNoYXRpbmcgYXMgQ2hhdFNldHRpbmdzKS5hcHApO1xyXG4gICAgdGhpcy5wcm9maWxlID0gX3Nlc3Npb24ucHJvZmlsZTtcclxuICAgIHRoaXMuZW5hYmxlQW5hbHlzaXMgPSBfc2Vzc2lvbi5wcm9maWxlLmN1YmVzLnNvbWUoYyA9PiBjLnZpZXdzLmxlbmd0aCk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgY29uc3QgaW50ZXJjZXB0b3IgPSAodGhpcy5faW5qZWN0b3IuZ2V0KEhUVFBfSU5URVJDRVBUT1JTKSBhcyBIdHRwSW50ZXJjZXB0b3JbXSkuZmluZChpID0+IGkgaW5zdGFuY2VvZiBBcHBIdHRwSW50ZXJjZXB0b3IpIGFzIEFwcEh0dHBJbnRlcmNlcHRvcjtcclxuICAgIGludGVyY2VwdG9yLmFjdGl2ZSQucGlwZShkZWJvdW5jZVRpbWUoMTAwKSkuc3Vic2NyaWJlKGUgPT5cclxuICAgICAgdGhpcy5sb2FkaW5nID0gZSk7XHJcbiAgICB0aGlzLl9tZXNzYWdpbmcubmV3JC5zdWJzY3JpYmUobSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgbW9kZWw6IHsgZm9ybUlkOiBuYW1lLCBzdWJqZWN0LCBudW1iZXIsIHBlbmRpbmd9IH0gPSBtO1xyXG4gICAgICBpZiAoIXBlbmRpbmcpIHJldHVybjtcclxuICAgICAgY29uc3QgZm9ybSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5mb3Jtcy5maW5kKGYgPT4gZi5uYW1lID09PSBuYW1lKSwgbXNnID0gdGhpcy5fdHJhbnNsYXRlLmdldCgnTmV3TWFpbCcsIGZvcm0udGl0bGUsIG51bWJlciwgc3ViamVjdCB8fCAnJyk7XHJcbiAgICAgIHRoaXMuX3NuYWNrQmFyLm9wZW4obXNnLCBtLnVzZXJJZCA9PT0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLnVzZXJJZCA/IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ09wZW5OZXcnKSA6IG51bGwsIHtcclxuICAgICAgICBkdXJhdGlvbjogNTAwMCxcclxuICAgICAgICBkaXJlY3Rpb246IHRoaXMuX3Nlc3Npb24uZGlyZWN0aW9uLFxyXG4gICAgICAgIHBvbGl0ZW5lc3M6ICdhc3NlcnRpdmUnXHJcbiAgICAgIH0pLm9uQWN0aW9uKCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuaW5ib3hDb3VudC0tO1xyXG4gICAgICAgIHRoaXMub25OZXdNZXNzYWdlKG0ubW9kZWwpO1xyXG4gICAgICB9XHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5vcHRpb25zLm5vdGlmaWNhdGlvbnMuc291bmQgJiZcclxuICAgICAgICBwbGF5QXVkaW8oJ25vdGlmaWNhdGlvbl9zaW1wbGUtMDEnKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fbWVzc2FnaW5nLm5vdGlmeSQuc3Vic2NyaWJlKCgpID0+XHJcbiAgICAgIHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5vcHRpb25zLm5vdGlmaWNhdGlvbnMuc291bmQgJiZcclxuICAgICAgcGxheUF1ZGlvKCdub3RpZmljYXRpb25fc2ltcGxlLTAxJylcclxuICAgICk7XHJcbiAgICBpZiAodGhpcy5fc2Vzc2lvbi5pc0ltcGVyc29uYXRpbmcpXHJcbiAgICAgIHRoaXMuX3NuYWNrQmFyLm9wZW4odGhpcy5fdHJhbnNsYXRlLmdldCgnSW1wZXJzb25hdGluZycsIHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5uYW1lKSwgbnVsbCwge1xyXG4gICAgICAgIGR1cmF0aW9uOiBUT0FTVF9EVVJBVElPTixcclxuICAgICAgICB2ZXJ0aWNhbFBvc2l0aW9uOiAndG9wJyxcclxuICAgICAgICBkaXJlY3Rpb246IHRoaXMuX3Nlc3Npb24uZGlyZWN0aW9uXHJcbiAgICAgIH0pO1xyXG4gICAgZWxzZSBpZiAodGhpcy5fc2Vzc2lvbi5pc091dE9mT2ZmaWNlKSB7XHJcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUub3B0aW9ucy5vdXRPZk9mZmljZTtcclxuICAgICAgdGhpcy5fc25hY2tCYXIub3BlbkZyb21Db21wb25lbnQoT3V0T2ZPZmZpY2VUb2FzdCwge1xyXG4gICAgICAgIHZlcnRpY2FsUG9zaXRpb246ICd0b3AnLFxyXG4gICAgICAgIGRpcmVjdGlvbjogdGhpcy5fc2Vzc2lvbi5kaXJlY3Rpb24sXHJcbiAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgc3Vic3RpdHV0ZUlkOiBvcHRpb25zLnN1YnN0aXR1ZUlkXHJcbiAgICAgICAgfSBhcyBPdXRPZk9mZmljZURhdGFcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJlc2l6ZSgpIHtcclxuICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgncmVzaXplJykpO1xyXG4gIH1cclxuICBhYnN0cmFjdCBvbk5ld01lc3NhZ2UobW9kZWw6IFJlY2lwaWVudE1vZGVsKTtcclxuICAvKiogb3B0aW9ucyAqL1xyXG4gIG9wdGlvbnMoZXZ0OiBFdmVudCkge1xyXG4gICAgdGhpcy5fcG9wdXAub3BlbihRdWlja09wdGlvbnNDb21wb25lbnQsIGV2dC5zcmNFbGVtZW50IGFzIEhUTUxFbGVtZW50LCB7IHBvc2l0aW9uOiAnZW5kJyB9KTtcclxuICB9XHJcbiAgc2lnbm91dChldnQ6IEV2ZW50KSB7XHJcbiAgICB0aGlzLl9wb3B1cC5vcGVuKFF1aWNrU2lnbkNvbXBvbmVudCwgZXZ0LnNyY0VsZW1lbnQgYXMgSFRNTEVsZW1lbnQsIHsgcG9zaXRpb246ICdlbmQnIH0pO1xyXG4gIH1cclxuICBtYWlscygpIHtcclxuICAgIHRoaXMuX3Nlc3Npb24uaW5ib3hUb3VjaCgpO1xyXG4gIH1cclxuICBub3RpZnMoKSB7XHJcbiAgICB0aGlzLl9zZXNzaW9uLnByb2ZpbGUubm90aWZpY2F0aW9ucy5sZW5ndGggJiZcclxuICAgICAgdGhpcy5fc2Vzc2lvbi5ub3RpZmljYXRpb25zVG91Y2goKTtcclxuICB9XHJcbn1cclxuIl19
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1iYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvaG9tZS9ob21lLWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBbUIsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBT3BDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBbUIsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7QUFFOUMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQztBQUduQyxNQUFNLE9BQWdCLFFBQVE7SUFNNUIsWUFDWSxNQUFhLEVBQ2IsUUFBd0IsRUFDMUIsVUFBc0IsRUFDcEIsVUFBNEIsRUFDNUIsU0FBc0IsRUFDeEIsU0FBbUIsRUFDM0IsTUFBb0I7UUFOVixXQUFNLEdBQU4sTUFBTSxDQUFPO1FBQ2IsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDMUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNwQixlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUM1QixjQUFTLEdBQVQsU0FBUyxDQUFhO1FBQ3hCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFHM0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxTQUFTLEtBQUssS0FBSyxDQUFDO1FBQ25ELElBQUksQ0FB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O0lBQ0QsTUFBTTtRQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNO1lBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUN2QyxDQUFDOztxR0EvRW1CLFFBQVE7eUZBQVIsUUFBUTsyRkFBUixRQUFRO2tCQUQ3QixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3RvciwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBJbnRlcmNlcHRvciwgSFRUUF9JTlRFUkNFUFRPUlMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEJpekRvY0NvbmZpZywgQ2hhdFNldHRpbmdzIH0gZnJvbSAnLi4vY29yZS9jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHsgUHJvZmlsZSwgUmVjaXBpZW50TW9kZWwgfSBmcm9tICcuLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQb3B1cCB9IGZyb20gJy4uL2NvcmUvcG9wdXAvcG9wdXAuc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSHViU2VydmljZSB9IGZyb20gJy4uL2NvcmUvaHViLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBRdWlja1NpZ25Db21wb25lbnQgfSBmcm9tICcuL3NpZ24vc2lnbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBRdWlja09wdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL29wdGlvbnMvb3B0aW9ucy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBPdXRPZk9mZmljZURhdGEsIE91dE9mT2ZmaWNlVG9hc3QgfSBmcm9tICcuL291dG9mb2ZmaWNlL291dG9mb2ZmaWNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFwcEh0dHBJbnRlcmNlcHRvciB9IGZyb20gJy4uL2NvcmUvaHR0cC5pbnRlcmNlcHRvcic7XHJcbmltcG9ydCB7IHBsYXlBdWRpbyB9IGZyb20gJy4uL2NvcmUvZnVuY3Rpb25zJztcclxuXHJcbmV4cG9ydCBjb25zdCBUT0FTVF9EVVJBVElPTiA9IDQwMDA7XHJcblxyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEhvbWVCYXNlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBjaGF0RW5hYmxlZDogYm9vbGVhbjtcclxuICBzY2hlZHVsZXJFbmFibGVkOiBib29sZWFuO1xyXG4gIHByb2ZpbGU6IFByb2ZpbGU7XHJcbiAgbG9hZGluZzogYm9vbGVhbjtcclxuICBlbmFibGVBbmFseXNpczogYm9vbGVhbjtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCBfcG9wdXA6IFBvcHVwLFxyXG4gICAgcHJvdGVjdGVkIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX21lc3NhZ2luZzogSHViU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIF9zbmFja0JhcjogTWF0U25hY2tCYXIsXHJcbiAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBjb25maWc6IEJpekRvY0NvbmZpZykge1xyXG5cclxuICAgIHRoaXMuc2NoZWR1bGVyRW5hYmxlZCA9IGNvbmZpZy5zY2hlZHVsZXIgIT09IGZhbHNlO1xyXG4gICAgdGhpcy5jaGF0RW5hYmxlZCA9IGNvbmZpZy5jaGF0aW5nICE9PSBmYWxzZSAmJlxyXG4gICAgICAoIWNvbmZpZy5jaGF0aW5nIHx8ICEoY29uZmlnLmNoYXRpbmcgYXMgQ2hhdFNldHRpbmdzKS5hcHApO1xyXG4gICAgdGhpcy5wcm9maWxlID0gX3Nlc3Npb24ucHJvZmlsZTtcclxuICAgIHRoaXMuZW5hYmxlQW5hbHlzaXMgPSBfc2Vzc2lvbi5wcm9maWxlLmN1YmVzLnNvbWUoYyA9PiBjLnZpZXdzPy5sZW5ndGgpO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGNvbnN0IGludGVyY2VwdG9yID0gKHRoaXMuX2luamVjdG9yLmdldChIVFRQX0lOVEVSQ0VQVE9SUykgYXMgSHR0cEludGVyY2VwdG9yW10pLmZpbmQoaSA9PiBpIGluc3RhbmNlb2YgQXBwSHR0cEludGVyY2VwdG9yKSBhcyBBcHBIdHRwSW50ZXJjZXB0b3I7XHJcbiAgICBpbnRlcmNlcHRvci5hY3RpdmUkLnBpcGUoZGVib3VuY2VUaW1lKDEwMCkpLnN1YnNjcmliZShlID0+XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IGUpO1xyXG4gICAgdGhpcy5fbWVzc2FnaW5nLm5ldyQuc3Vic2NyaWJlKG0gPT4ge1xyXG4gICAgICBjb25zdCB7IG1vZGVsOiB7IGZvcm1JZDogbmFtZSwgc3ViamVjdCwgbnVtYmVyLCBwZW5kaW5nfSB9ID0gbTtcclxuICAgICAgaWYgKCFwZW5kaW5nKSByZXR1cm47XHJcbiAgICAgIGNvbnN0IGZvcm0gPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuZm9ybXMuZmluZChmID0+IGYubmFtZSA9PT0gbmFtZSksIG1zZyA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ05ld01haWwnLCBmb3JtLnRpdGxlLCBudW1iZXIsIHN1YmplY3QgfHwgJycpO1xyXG4gICAgICB0aGlzLl9zbmFja0Jhci5vcGVuKG1zZywgbS51c2VySWQgPT09IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS51c2VySWQgPyB0aGlzLl90cmFuc2xhdGUuZ2V0KCdPcGVuTmV3JykgOiBudWxsLCB7XHJcbiAgICAgICAgZHVyYXRpb246IDUwMDAsXHJcbiAgICAgICAgZGlyZWN0aW9uOiB0aGlzLl9zZXNzaW9uLmRpcmVjdGlvbixcclxuICAgICAgICBwb2xpdGVuZXNzOiAnYXNzZXJ0aXZlJ1xyXG4gICAgICB9KS5vbkFjdGlvbigpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmluYm94Q291bnQtLTtcclxuICAgICAgICB0aGlzLm9uTmV3TWVzc2FnZShtLm1vZGVsKTtcclxuICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLl9zZXNzaW9uLnByb2ZpbGUub3B0aW9ucy5ub3RpZmljYXRpb25zLnNvdW5kICYmXHJcbiAgICAgICAgcGxheUF1ZGlvKCdub3RpZmljYXRpb25fc2ltcGxlLTAxJyk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX21lc3NhZ2luZy5ub3RpZnkkLnN1YnNjcmliZSgoKSA9PlxyXG4gICAgICB0aGlzLl9zZXNzaW9uLnByb2ZpbGUub3B0aW9ucy5ub3RpZmljYXRpb25zLnNvdW5kICYmXHJcbiAgICAgIHBsYXlBdWRpbygnbm90aWZpY2F0aW9uX3NpbXBsZS0wMScpXHJcbiAgICApO1xyXG4gICAgaWYgKHRoaXMuX3Nlc3Npb24uaXNJbXBlcnNvbmF0aW5nKVxyXG4gICAgICB0aGlzLl9zbmFja0Jhci5vcGVuKHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0ltcGVyc29uYXRpbmcnLCB0aGlzLl9zZXNzaW9uLnByb2ZpbGUubmFtZSksIG51bGwsIHtcclxuICAgICAgICBkdXJhdGlvbjogVE9BU1RfRFVSQVRJT04sXHJcbiAgICAgICAgdmVydGljYWxQb3NpdGlvbjogJ3RvcCcsXHJcbiAgICAgICAgZGlyZWN0aW9uOiB0aGlzLl9zZXNzaW9uLmRpcmVjdGlvblxyXG4gICAgICB9KTtcclxuICAgIGVsc2UgaWYgKHRoaXMuX3Nlc3Npb24uaXNPdXRPZk9mZmljZSkge1xyXG4gICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLm9wdGlvbnMub3V0T2ZPZmZpY2U7XHJcbiAgICAgIHRoaXMuX3NuYWNrQmFyLm9wZW5Gcm9tQ29tcG9uZW50KE91dE9mT2ZmaWNlVG9hc3QsIHtcclxuICAgICAgICB2ZXJ0aWNhbFBvc2l0aW9uOiAndG9wJyxcclxuICAgICAgICBkaXJlY3Rpb246IHRoaXMuX3Nlc3Npb24uZGlyZWN0aW9uLFxyXG4gICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgIHN1YnN0aXR1dGVJZDogb3B0aW9ucy5zdWJzdGl0dWVJZFxyXG4gICAgICAgIH0gYXMgT3V0T2ZPZmZpY2VEYXRhXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXNpemUoKSB7XHJcbiAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3Jlc2l6ZScpKTtcclxuICB9XHJcbiAgYWJzdHJhY3Qgb25OZXdNZXNzYWdlKG1vZGVsOiBSZWNpcGllbnRNb2RlbCk7XHJcbiAgLyoqIG9wdGlvbnMgKi9cclxuICBvcHRpb25zKGV2dDogRXZlbnQpIHtcclxuICAgIHRoaXMuX3BvcHVwLm9wZW4oUXVpY2tPcHRpb25zQ29tcG9uZW50LCBldnQuc3JjRWxlbWVudCBhcyBIVE1MRWxlbWVudCwgeyBwb3NpdGlvbjogJ2VuZCcgfSk7XHJcbiAgfVxyXG4gIHNpZ25vdXQoZXZ0OiBFdmVudCkge1xyXG4gICAgdGhpcy5fcG9wdXAub3BlbihRdWlja1NpZ25Db21wb25lbnQsIGV2dC5zcmNFbGVtZW50IGFzIEhUTUxFbGVtZW50LCB7IHBvc2l0aW9uOiAnZW5kJyB9KTtcclxuICB9XHJcbiAgbWFpbHMoKSB7XHJcbiAgICB0aGlzLl9zZXNzaW9uLmluYm94VG91Y2goKTtcclxuICB9XHJcbiAgbm90aWZzKCkge1xyXG4gICAgdGhpcy5fc2Vzc2lvbi5wcm9maWxlLm5vdGlmaWNhdGlvbnMubGVuZ3RoICYmXHJcbiAgICAgIHRoaXMuX3Nlc3Npb24ubm90aWZpY2F0aW9uc1RvdWNoKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==