gs-cae-design 1.1.63 → 1.1.64

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.
@@ -2524,7 +2524,7 @@ eval("var toString = {}.toString;\n\nmodule.exports = Array.isArray || function
2524
2524
  /*! no static exports found */
2525
2525
  /***/ (function(module, exports, __webpack_require__) {
2526
2526
 
2527
- eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9sb2FkZXIuanM/IS4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/IS4vcGFja2FnZXMvY2FlRGVzaWduL3NyYy9jb21wb25lbnRzL2dzLWJ1dHRvbi52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1jNTZmY2UxYSZzY29wZWQ9dHJ1ZSZsYW5nPXNjc3MuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9bbmFtZV0vLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL2NvbXBvbmVudHMvZ3MtYnV0dG9uLnZ1ZT80NDliIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuICAgIGlmKG1vZHVsZS5ob3QpIHtcbiAgICAgIC8vIDE3NTg4NzkwNTE0MzJcbiAgICAgIHZhciBjc3NSZWxvYWQgPSByZXF1aXJlKFwiQzovRGV2ZWxvcG1lbnRzL3Z1ZS10cy1ncy1jYWUtY2xvdWQtdGVzdC0wMjE5L25vZGVfbW9kdWxlcy9taW5pLWNzcy1leHRyYWN0LXBsdWdpbi9kaXN0L2htci9ob3RNb2R1bGVSZXBsYWNlbWVudC5qc1wiKShtb2R1bGUuaWQsIHtcImhtclwiOnRydWUsXCJwdWJsaWNQYXRoXCI6XCIuL1wiLFwibG9jYWxzXCI6ZmFsc2V9KTtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShjc3NSZWxvYWQpO1xuICAgICAgbW9kdWxlLmhvdC5hY2NlcHQodW5kZWZpbmVkLCBjc3NSZWxvYWQpO1xuICAgIH1cbiAgIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLGdDQUtBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/mini-css-extract-plugin/dist/loader.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./packages/caeDesign/src/components/gs-button.vue?vue&type=style&index=0&id=c56fce1a&scoped=true&lang=scss\n");
2527
+ eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9sb2FkZXIuanM/IS4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/IS4vcGFja2FnZXMvY2FlRGVzaWduL3NyYy9jb21wb25lbnRzL2dzLWJ1dHRvbi52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1jNTZmY2UxYSZzY29wZWQ9dHJ1ZSZsYW5nPXNjc3MuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9bbmFtZV0vLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL2NvbXBvbmVudHMvZ3MtYnV0dG9uLnZ1ZT80NDliIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuICAgIGlmKG1vZHVsZS5ob3QpIHtcbiAgICAgIC8vIDE3NjEwNDA3MzM4MTlcbiAgICAgIHZhciBjc3NSZWxvYWQgPSByZXF1aXJlKFwiQzovRGV2ZWxvcG1lbnRzL3Z1ZS10cy1ncy1jYWUtY2xvdWQtdGVzdC0wMjE5L25vZGVfbW9kdWxlcy9taW5pLWNzcy1leHRyYWN0LXBsdWdpbi9kaXN0L2htci9ob3RNb2R1bGVSZXBsYWNlbWVudC5qc1wiKShtb2R1bGUuaWQsIHtcImhtclwiOnRydWUsXCJwdWJsaWNQYXRoXCI6XCIuL1wiLFwibG9jYWxzXCI6ZmFsc2V9KTtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShjc3NSZWxvYWQpO1xuICAgICAgbW9kdWxlLmhvdC5hY2NlcHQodW5kZWZpbmVkLCBjc3NSZWxvYWQpO1xuICAgIH1cbiAgIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLGdDQUtBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/mini-css-extract-plugin/dist/loader.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./packages/caeDesign/src/components/gs-button.vue?vue&type=style&index=0&id=c56fce1a&scoped=true&lang=scss\n");
2528
2528
 
2529
2529
  /***/ }),
2530
2530
 
@@ -2535,7 +2535,7 @@ eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\
2535
2535
  /*! no static exports found */
2536
2536
  /***/ (function(module, exports, __webpack_require__) {
2537
2537
 
2538
- eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9sb2FkZXIuanM/IS4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/IS4vcGFja2FnZXMvY2FlRGVzaWduL3NyYy9jb21wb25lbnRzL2dzLWNvbG9yLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTQ1MDViMTljJnNjb3BlZD10cnVlJmxhbmc9c2Nzcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL1tuYW1lXS8uL3BhY2thZ2VzL2NhZURlc2lnbi9zcmMvY29tcG9uZW50cy9ncy1jb2xvci52dWU/ZTEwZiJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbiAgICBpZihtb2R1bGUuaG90KSB7XG4gICAgICAvLyAxNzU4ODc5MDUxOTk0XG4gICAgICB2YXIgY3NzUmVsb2FkID0gcmVxdWlyZShcIkM6L0RldmVsb3BtZW50cy92dWUtdHMtZ3MtY2FlLWNsb3VkLXRlc3QtMDIxOS9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9obXIvaG90TW9kdWxlUmVwbGFjZW1lbnQuanNcIikobW9kdWxlLmlkLCB7XCJobXJcIjp0cnVlLFwicHVibGljUGF0aFwiOlwiLi9cIixcImxvY2Fsc1wiOmZhbHNlfSk7XG4gICAgICBtb2R1bGUuaG90LmRpc3Bvc2UoY3NzUmVsb2FkKTtcbiAgICAgIG1vZHVsZS5ob3QuYWNjZXB0KHVuZGVmaW5lZCwgY3NzUmVsb2FkKTtcbiAgICB9XG4gICJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQSxnQ0FLQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/mini-css-extract-plugin/dist/loader.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./packages/caeDesign/src/components/gs-color.vue?vue&type=style&index=0&id=4505b19c&scoped=true&lang=scss\n");
2538
+ eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9sb2FkZXIuanM/IS4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/IS4vcGFja2FnZXMvY2FlRGVzaWduL3NyYy9jb21wb25lbnRzL2dzLWNvbG9yLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTQ1MDViMTljJnNjb3BlZD10cnVlJmxhbmc9c2Nzcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL1tuYW1lXS8uL3BhY2thZ2VzL2NhZURlc2lnbi9zcmMvY29tcG9uZW50cy9ncy1jb2xvci52dWU/ZTEwZiJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbiAgICBpZihtb2R1bGUuaG90KSB7XG4gICAgICAvLyAxNzYxMDQwNzMzODIzXG4gICAgICB2YXIgY3NzUmVsb2FkID0gcmVxdWlyZShcIkM6L0RldmVsb3BtZW50cy92dWUtdHMtZ3MtY2FlLWNsb3VkLXRlc3QtMDIxOS9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9obXIvaG90TW9kdWxlUmVwbGFjZW1lbnQuanNcIikobW9kdWxlLmlkLCB7XCJobXJcIjp0cnVlLFwicHVibGljUGF0aFwiOlwiLi9cIixcImxvY2Fsc1wiOmZhbHNlfSk7XG4gICAgICBtb2R1bGUuaG90LmRpc3Bvc2UoY3NzUmVsb2FkKTtcbiAgICAgIG1vZHVsZS5ob3QuYWNjZXB0KHVuZGVmaW5lZCwgY3NzUmVsb2FkKTtcbiAgICB9XG4gICJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQSxnQ0FLQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/mini-css-extract-plugin/dist/loader.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./packages/caeDesign/src/components/gs-color.vue?vue&type=style&index=0&id=4505b19c&scoped=true&lang=scss\n");
2539
2539
 
2540
2540
  /***/ }),
2541
2541
 
@@ -2546,7 +2546,7 @@ eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\
2546
2546
  /*! no static exports found */
2547
2547
  /***/ (function(module, exports, __webpack_require__) {
2548
2548
 
2549
- eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9sb2FkZXIuanM/IS4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/IS4vcGFja2FnZXMvY2FlRGVzaWduL3NyYy9jb21wb25lbnRzL2dzLWlucHV0LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTY1YWU3N2NlJnNjb3BlZD10cnVlJmxhbmc9c2Nzcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL1tuYW1lXS8uL3BhY2thZ2VzL2NhZURlc2lnbi9zcmMvY29tcG9uZW50cy9ncy1pbnB1dC52dWU/YjYxNSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbiAgICBpZihtb2R1bGUuaG90KSB7XG4gICAgICAvLyAxNzU4ODc5MDUxNDM3XG4gICAgICB2YXIgY3NzUmVsb2FkID0gcmVxdWlyZShcIkM6L0RldmVsb3BtZW50cy92dWUtdHMtZ3MtY2FlLWNsb3VkLXRlc3QtMDIxOS9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9obXIvaG90TW9kdWxlUmVwbGFjZW1lbnQuanNcIikobW9kdWxlLmlkLCB7XCJobXJcIjp0cnVlLFwicHVibGljUGF0aFwiOlwiLi9cIixcImxvY2Fsc1wiOmZhbHNlfSk7XG4gICAgICBtb2R1bGUuaG90LmRpc3Bvc2UoY3NzUmVsb2FkKTtcbiAgICAgIG1vZHVsZS5ob3QuYWNjZXB0KHVuZGVmaW5lZCwgY3NzUmVsb2FkKTtcbiAgICB9XG4gICJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQSxnQ0FLQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/mini-css-extract-plugin/dist/loader.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./packages/caeDesign/src/components/gs-input.vue?vue&type=style&index=0&id=65ae77ce&scoped=true&lang=scss\n");
2549
+ eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9sb2FkZXIuanM/IS4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/IS4vcGFja2FnZXMvY2FlRGVzaWduL3NyYy9jb21wb25lbnRzL2dzLWlucHV0LnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTY1YWU3N2NlJnNjb3BlZD10cnVlJmxhbmc9c2Nzcy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL1tuYW1lXS8uL3BhY2thZ2VzL2NhZURlc2lnbi9zcmMvY29tcG9uZW50cy9ncy1pbnB1dC52dWU/YjYxNSJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbiAgICBpZihtb2R1bGUuaG90KSB7XG4gICAgICAvLyAxNzYxMDQwNzMzODM0XG4gICAgICB2YXIgY3NzUmVsb2FkID0gcmVxdWlyZShcIkM6L0RldmVsb3BtZW50cy92dWUtdHMtZ3MtY2FlLWNsb3VkLXRlc3QtMDIxOS9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9obXIvaG90TW9kdWxlUmVwbGFjZW1lbnQuanNcIikobW9kdWxlLmlkLCB7XCJobXJcIjp0cnVlLFwicHVibGljUGF0aFwiOlwiLi9cIixcImxvY2Fsc1wiOmZhbHNlfSk7XG4gICAgICBtb2R1bGUuaG90LmRpc3Bvc2UoY3NzUmVsb2FkKTtcbiAgICAgIG1vZHVsZS5ob3QuYWNjZXB0KHVuZGVmaW5lZCwgY3NzUmVsb2FkKTtcbiAgICB9XG4gICJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQSxnQ0FLQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/mini-css-extract-plugin/dist/loader.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./packages/caeDesign/src/components/gs-input.vue?vue&type=style&index=0&id=65ae77ce&scoped=true&lang=scss\n");
2550
2550
 
2551
2551
  /***/ }),
2552
2552
 
@@ -2557,7 +2557,7 @@ eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\
2557
2557
  /*! no static exports found */
2558
2558
  /***/ (function(module, exports, __webpack_require__) {
2559
2559
 
2560
- eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9sb2FkZXIuanM/IS4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/IS4vcGFja2FnZXMvY2FlRGVzaWduL3NyYy9jb21wb25lbnRzL2dzLWxpc3QudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MTlhYzAyOWYmc2NvcGVkPXRydWUmbGFuZz1zY3NzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vW25hbWVdLy4vcGFja2FnZXMvY2FlRGVzaWduL3NyYy9jb21wb25lbnRzL2dzLWxpc3QudnVlPzBhMjEiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG4gICAgaWYobW9kdWxlLmhvdCkge1xuICAgICAgLy8gMTc1ODg3OTA1MTk5N1xuICAgICAgdmFyIGNzc1JlbG9hZCA9IHJlcXVpcmUoXCJDOi9EZXZlbG9wbWVudHMvdnVlLXRzLWdzLWNhZS1jbG91ZC10ZXN0LTAyMTkvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvaG1yL2hvdE1vZHVsZVJlcGxhY2VtZW50LmpzXCIpKG1vZHVsZS5pZCwge1wiaG1yXCI6dHJ1ZSxcInB1YmxpY1BhdGhcIjpcIi4vXCIsXCJsb2NhbHNcIjpmYWxzZX0pO1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGNzc1JlbG9hZCk7XG4gICAgICBtb2R1bGUuaG90LmFjY2VwdCh1bmRlZmluZWQsIGNzc1JlbG9hZCk7XG4gICAgfVxuICAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsZ0NBS0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/mini-css-extract-plugin/dist/loader.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./packages/caeDesign/src/components/gs-list.vue?vue&type=style&index=0&id=19ac029f&scoped=true&lang=scss\n");
2560
+ eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9sb2FkZXIuanM/IS4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/IS4vcGFja2FnZXMvY2FlRGVzaWduL3NyYy9jb21wb25lbnRzL2dzLWxpc3QudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MTlhYzAyOWYmc2NvcGVkPXRydWUmbGFuZz1zY3NzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vW25hbWVdLy4vcGFja2FnZXMvY2FlRGVzaWduL3NyYy9jb21wb25lbnRzL2dzLWxpc3QudnVlPzBhMjEiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG4gICAgaWYobW9kdWxlLmhvdCkge1xuICAgICAgLy8gMTc2MTA0MDczMzgyN1xuICAgICAgdmFyIGNzc1JlbG9hZCA9IHJlcXVpcmUoXCJDOi9EZXZlbG9wbWVudHMvdnVlLXRzLWdzLWNhZS1jbG91ZC10ZXN0LTAyMTkvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvaG1yL2hvdE1vZHVsZVJlcGxhY2VtZW50LmpzXCIpKG1vZHVsZS5pZCwge1wiaG1yXCI6dHJ1ZSxcInB1YmxpY1BhdGhcIjpcIi4vXCIsXCJsb2NhbHNcIjpmYWxzZX0pO1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGNzc1JlbG9hZCk7XG4gICAgICBtb2R1bGUuaG90LmFjY2VwdCh1bmRlZmluZWQsIGNzc1JlbG9hZCk7XG4gICAgfVxuICAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsZ0NBS0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/mini-css-extract-plugin/dist/loader.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./packages/caeDesign/src/components/gs-list.vue?vue&type=style&index=0&id=19ac029f&scoped=true&lang=scss\n");
2561
2561
 
2562
2562
  /***/ }),
2563
2563
 
@@ -2568,7 +2568,7 @@ eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\
2568
2568
  /*! no static exports found */
2569
2569
  /***/ (function(module, exports, __webpack_require__) {
2570
2570
 
2571
- eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9sb2FkZXIuanM/IS4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/IS4vcGFja2FnZXMvY2FlRGVzaWduL3NyYy9jb21wb25lbnRzL2dzLXNlbGVjdC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0yNTM1MzFiZCZzY29wZWQ9dHJ1ZSZsYW5nPXNjc3MuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9bbmFtZV0vLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL2NvbXBvbmVudHMvZ3Mtc2VsZWN0LnZ1ZT9iNTNjIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuICAgIGlmKG1vZHVsZS5ob3QpIHtcbiAgICAgIC8vIDE3NTg4NzkwNTE5OTlcbiAgICAgIHZhciBjc3NSZWxvYWQgPSByZXF1aXJlKFwiQzovRGV2ZWxvcG1lbnRzL3Z1ZS10cy1ncy1jYWUtY2xvdWQtdGVzdC0wMjE5L25vZGVfbW9kdWxlcy9taW5pLWNzcy1leHRyYWN0LXBsdWdpbi9kaXN0L2htci9ob3RNb2R1bGVSZXBsYWNlbWVudC5qc1wiKShtb2R1bGUuaWQsIHtcImhtclwiOnRydWUsXCJwdWJsaWNQYXRoXCI6XCIuL1wiLFwibG9jYWxzXCI6ZmFsc2V9KTtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShjc3NSZWxvYWQpO1xuICAgICAgbW9kdWxlLmhvdC5hY2NlcHQodW5kZWZpbmVkLCBjc3NSZWxvYWQpO1xuICAgIH1cbiAgIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLGdDQUtBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/mini-css-extract-plugin/dist/loader.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./packages/caeDesign/src/components/gs-select.vue?vue&type=style&index=0&id=253531bd&scoped=true&lang=scss\n");
2571
+ eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9sb2FkZXIuanM/IS4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/IS4vcGFja2FnZXMvY2FlRGVzaWduL3NyYy9jb21wb25lbnRzL2dzLXNlbGVjdC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0yNTM1MzFiZCZzY29wZWQ9dHJ1ZSZsYW5nPXNjc3MuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9bbmFtZV0vLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL2NvbXBvbmVudHMvZ3Mtc2VsZWN0LnZ1ZT9iNTNjIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuICAgIGlmKG1vZHVsZS5ob3QpIHtcbiAgICAgIC8vIDE3NjEwNDA3MzM4MzVcbiAgICAgIHZhciBjc3NSZWxvYWQgPSByZXF1aXJlKFwiQzovRGV2ZWxvcG1lbnRzL3Z1ZS10cy1ncy1jYWUtY2xvdWQtdGVzdC0wMjE5L25vZGVfbW9kdWxlcy9taW5pLWNzcy1leHRyYWN0LXBsdWdpbi9kaXN0L2htci9ob3RNb2R1bGVSZXBsYWNlbWVudC5qc1wiKShtb2R1bGUuaWQsIHtcImhtclwiOnRydWUsXCJwdWJsaWNQYXRoXCI6XCIuL1wiLFwibG9jYWxzXCI6ZmFsc2V9KTtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShjc3NSZWxvYWQpO1xuICAgICAgbW9kdWxlLmhvdC5hY2NlcHQodW5kZWZpbmVkLCBjc3NSZWxvYWQpO1xuICAgIH1cbiAgIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLGdDQUtBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/mini-css-extract-plugin/dist/loader.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./packages/caeDesign/src/components/gs-select.vue?vue&type=style&index=0&id=253531bd&scoped=true&lang=scss\n");
2572
2572
 
2573
2573
  /***/ }),
2574
2574
 
@@ -2579,7 +2579,7 @@ eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\
2579
2579
  /*! no static exports found */
2580
2580
  /***/ (function(module, exports, __webpack_require__) {
2581
2581
 
2582
- eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9sb2FkZXIuanM/IS4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/IS4vcGFja2FnZXMvY2FlRGVzaWduL3NyYy9jb21wb25lbnRzL2dzLXN3aXRjaC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD03MzM1ZDdmNSZzY29wZWQ9dHJ1ZSZsYW5nPXNjc3MuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9bbmFtZV0vLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL2NvbXBvbmVudHMvZ3Mtc3dpdGNoLnZ1ZT8wNTY4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuICAgIGlmKG1vZHVsZS5ob3QpIHtcbiAgICAgIC8vIDE3NTg4NzkwNTE5OTVcbiAgICAgIHZhciBjc3NSZWxvYWQgPSByZXF1aXJlKFwiQzovRGV2ZWxvcG1lbnRzL3Z1ZS10cy1ncy1jYWUtY2xvdWQtdGVzdC0wMjE5L25vZGVfbW9kdWxlcy9taW5pLWNzcy1leHRyYWN0LXBsdWdpbi9kaXN0L2htci9ob3RNb2R1bGVSZXBsYWNlbWVudC5qc1wiKShtb2R1bGUuaWQsIHtcImhtclwiOnRydWUsXCJwdWJsaWNQYXRoXCI6XCIuL1wiLFwibG9jYWxzXCI6ZmFsc2V9KTtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShjc3NSZWxvYWQpO1xuICAgICAgbW9kdWxlLmhvdC5hY2NlcHQodW5kZWZpbmVkLCBjc3NSZWxvYWQpO1xuICAgIH1cbiAgIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLGdDQUtBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/mini-css-extract-plugin/dist/loader.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./packages/caeDesign/src/components/gs-switch.vue?vue&type=style&index=0&id=7335d7f5&scoped=true&lang=scss\n");
2582
+ eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9sb2FkZXIuanM/IS4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/IS4vcGFja2FnZXMvY2FlRGVzaWduL3NyYy9jb21wb25lbnRzL2dzLXN3aXRjaC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD03MzM1ZDdmNSZzY29wZWQ9dHJ1ZSZsYW5nPXNjc3MuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9bbmFtZV0vLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL2NvbXBvbmVudHMvZ3Mtc3dpdGNoLnZ1ZT8wNTY4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuICAgIGlmKG1vZHVsZS5ob3QpIHtcbiAgICAgIC8vIDE3NjEwNDA3MzM4MjlcbiAgICAgIHZhciBjc3NSZWxvYWQgPSByZXF1aXJlKFwiQzovRGV2ZWxvcG1lbnRzL3Z1ZS10cy1ncy1jYWUtY2xvdWQtdGVzdC0wMjE5L25vZGVfbW9kdWxlcy9taW5pLWNzcy1leHRyYWN0LXBsdWdpbi9kaXN0L2htci9ob3RNb2R1bGVSZXBsYWNlbWVudC5qc1wiKShtb2R1bGUuaWQsIHtcImhtclwiOnRydWUsXCJwdWJsaWNQYXRoXCI6XCIuL1wiLFwibG9jYWxzXCI6ZmFsc2V9KTtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShjc3NSZWxvYWQpO1xuICAgICAgbW9kdWxlLmhvdC5hY2NlcHQodW5kZWZpbmVkLCBjc3NSZWxvYWQpO1xuICAgIH1cbiAgIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLGdDQUtBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/mini-css-extract-plugin/dist/loader.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./packages/caeDesign/src/components/gs-switch.vue?vue&type=style&index=0&id=7335d7f5&scoped=true&lang=scss\n");
2583
2583
 
2584
2584
  /***/ }),
2585
2585
 
@@ -2590,7 +2590,7 @@ eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\
2590
2590
  /*! no static exports found */
2591
2591
  /***/ (function(module, exports, __webpack_require__) {
2592
2592
 
2593
- eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9sb2FkZXIuanM/IS4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/IS4vcGFja2FnZXMvY2FlRGVzaWduL3NyYy9nc0RldkZ4L3Byb3BlcnR5Q29tcG9uZW50cy9wcm9wZXJ0eUNvbXBvbmVudC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD04YjhlYjE5ZSZzY29wZWQ9dHJ1ZSZsYW5nPXNjc3MuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9bbmFtZV0vLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL2dzRGV2RngvcHJvcGVydHlDb21wb25lbnRzL3Byb3BlcnR5Q29tcG9uZW50LnZ1ZT80ZWJiIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuICAgIGlmKG1vZHVsZS5ob3QpIHtcbiAgICAgIC8vIDE3NTg4NzkwNDczODBcbiAgICAgIHZhciBjc3NSZWxvYWQgPSByZXF1aXJlKFwiQzovRGV2ZWxvcG1lbnRzL3Z1ZS10cy1ncy1jYWUtY2xvdWQtdGVzdC0wMjE5L25vZGVfbW9kdWxlcy9taW5pLWNzcy1leHRyYWN0LXBsdWdpbi9kaXN0L2htci9ob3RNb2R1bGVSZXBsYWNlbWVudC5qc1wiKShtb2R1bGUuaWQsIHtcImhtclwiOnRydWUsXCJwdWJsaWNQYXRoXCI6XCIuL1wiLFwibG9jYWxzXCI6ZmFsc2V9KTtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShjc3NSZWxvYWQpO1xuICAgICAgbW9kdWxlLmhvdC5hY2NlcHQodW5kZWZpbmVkLCBjc3NSZWxvYWQpO1xuICAgIH1cbiAgIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLGdDQUtBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/mini-css-extract-plugin/dist/loader.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./packages/caeDesign/src/gsDevFx/propertyComponents/propertyComponent.vue?vue&type=style&index=0&id=8b8eb19e&scoped=true&lang=scss\n");
2593
+ eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9sb2FkZXIuanM/IS4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/IS4vcGFja2FnZXMvY2FlRGVzaWduL3NyYy9nc0RldkZ4L3Byb3BlcnR5Q29tcG9uZW50cy9wcm9wZXJ0eUNvbXBvbmVudC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD04YjhlYjE5ZSZzY29wZWQ9dHJ1ZSZsYW5nPXNjc3MuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9bbmFtZV0vLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL2dzRGV2RngvcHJvcGVydHlDb21wb25lbnRzL3Byb3BlcnR5Q29tcG9uZW50LnZ1ZT80ZWJiIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuICAgIGlmKG1vZHVsZS5ob3QpIHtcbiAgICAgIC8vIDE3NjEwNDA3Mjg5NjRcbiAgICAgIHZhciBjc3NSZWxvYWQgPSByZXF1aXJlKFwiQzovRGV2ZWxvcG1lbnRzL3Z1ZS10cy1ncy1jYWUtY2xvdWQtdGVzdC0wMjE5L25vZGVfbW9kdWxlcy9taW5pLWNzcy1leHRyYWN0LXBsdWdpbi9kaXN0L2htci9ob3RNb2R1bGVSZXBsYWNlbWVudC5qc1wiKShtb2R1bGUuaWQsIHtcImhtclwiOnRydWUsXCJwdWJsaWNQYXRoXCI6XCIuL1wiLFwibG9jYWxzXCI6ZmFsc2V9KTtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShjc3NSZWxvYWQpO1xuICAgICAgbW9kdWxlLmhvdC5hY2NlcHQodW5kZWZpbmVkLCBjc3NSZWxvYWQpO1xuICAgIH1cbiAgIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLGdDQUtBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/mini-css-extract-plugin/dist/loader.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./packages/caeDesign/src/gsDevFx/propertyComponents/propertyComponent.vue?vue&type=style&index=0&id=8b8eb19e&scoped=true&lang=scss\n");
2594
2594
 
2595
2595
  /***/ }),
2596
2596
 
@@ -2601,7 +2601,7 @@ eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\
2601
2601
  /*! no static exports found */
2602
2602
  /***/ (function(module, exports, __webpack_require__) {
2603
2603
 
2604
- eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9sb2FkZXIuanM/IS4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/IS4vcGFja2FnZXMvY2FlRGVzaWduL3NyYy92aWV3ZXJXcmFwcGVyL2NvbXBvbmVudHMvbGVnZW5kLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTc4YzlmMGNmJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL1tuYW1lXS8uL3BhY2thZ2VzL2NhZURlc2lnbi9zcmMvdmlld2VyV3JhcHBlci9jb21wb25lbnRzL2xlZ2VuZC52dWU/ODZhNCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbiAgICBpZihtb2R1bGUuaG90KSB7XG4gICAgICAvLyAxNzU4ODc5MDQxMTQwXG4gICAgICB2YXIgY3NzUmVsb2FkID0gcmVxdWlyZShcIkM6L0RldmVsb3BtZW50cy92dWUtdHMtZ3MtY2FlLWNsb3VkLXRlc3QtMDIxOS9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9obXIvaG90TW9kdWxlUmVwbGFjZW1lbnQuanNcIikobW9kdWxlLmlkLCB7XCJobXJcIjp0cnVlLFwicHVibGljUGF0aFwiOlwiLi9cIixcImxvY2Fsc1wiOmZhbHNlfSk7XG4gICAgICBtb2R1bGUuaG90LmRpc3Bvc2UoY3NzUmVsb2FkKTtcbiAgICAgIG1vZHVsZS5ob3QuYWNjZXB0KHVuZGVmaW5lZCwgY3NzUmVsb2FkKTtcbiAgICB9XG4gICJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQSxnQ0FLQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/mini-css-extract-plugin/dist/loader.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./packages/caeDesign/src/viewerWrapper/components/legend.vue?vue&type=style&index=0&id=78c9f0cf&lang=scss&scoped=true\n");
2604
+ eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9sb2FkZXIuanM/IS4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/IS4vcGFja2FnZXMvY2FlRGVzaWduL3NyYy92aWV3ZXJXcmFwcGVyL2NvbXBvbmVudHMvbGVnZW5kLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTc4YzlmMGNmJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL1tuYW1lXS8uL3BhY2thZ2VzL2NhZURlc2lnbi9zcmMvdmlld2VyV3JhcHBlci9jb21wb25lbnRzL2xlZ2VuZC52dWU/ODZhNCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbiAgICBpZihtb2R1bGUuaG90KSB7XG4gICAgICAvLyAxNzYxMDQwNzM0MjExXG4gICAgICB2YXIgY3NzUmVsb2FkID0gcmVxdWlyZShcIkM6L0RldmVsb3BtZW50cy92dWUtdHMtZ3MtY2FlLWNsb3VkLXRlc3QtMDIxOS9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9obXIvaG90TW9kdWxlUmVwbGFjZW1lbnQuanNcIikobW9kdWxlLmlkLCB7XCJobXJcIjp0cnVlLFwicHVibGljUGF0aFwiOlwiLi9cIixcImxvY2Fsc1wiOmZhbHNlfSk7XG4gICAgICBtb2R1bGUuaG90LmRpc3Bvc2UoY3NzUmVsb2FkKTtcbiAgICAgIG1vZHVsZS5ob3QuYWNjZXB0KHVuZGVmaW5lZCwgY3NzUmVsb2FkKTtcbiAgICB9XG4gICJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQSxnQ0FLQTtBQUNBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/mini-css-extract-plugin/dist/loader.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./packages/caeDesign/src/viewerWrapper/components/legend.vue?vue&type=style&index=0&id=78c9f0cf&lang=scss&scoped=true\n");
2605
2605
 
2606
2606
  /***/ }),
2607
2607
 
@@ -2612,7 +2612,7 @@ eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\
2612
2612
  /*! no static exports found */
2613
2613
  /***/ (function(module, exports, __webpack_require__) {
2614
2614
 
2615
- eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9sb2FkZXIuanM/IS4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/IS4vcGFja2FnZXMvY2FlRGVzaWduL3NyYy92aWV3ZXJXcmFwcGVyL3BhbmVsL3BhbmVsQmluZENvbXBvbmVudC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0zYWE1Yzk2ZSZsYW5nPXNjc3Mmc2NvcGVkPXRydWUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9bbmFtZV0vLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL3ZpZXdlcldyYXBwZXIvcGFuZWwvcGFuZWxCaW5kQ29tcG9uZW50LnZ1ZT83YWU3Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuICAgIGlmKG1vZHVsZS5ob3QpIHtcbiAgICAgIC8vIDE3NTg4NzkwNDgxNDJcbiAgICAgIHZhciBjc3NSZWxvYWQgPSByZXF1aXJlKFwiQzovRGV2ZWxvcG1lbnRzL3Z1ZS10cy1ncy1jYWUtY2xvdWQtdGVzdC0wMjE5L25vZGVfbW9kdWxlcy9taW5pLWNzcy1leHRyYWN0LXBsdWdpbi9kaXN0L2htci9ob3RNb2R1bGVSZXBsYWNlbWVudC5qc1wiKShtb2R1bGUuaWQsIHtcImhtclwiOnRydWUsXCJwdWJsaWNQYXRoXCI6XCIuL1wiLFwibG9jYWxzXCI6ZmFsc2V9KTtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShjc3NSZWxvYWQpO1xuICAgICAgbW9kdWxlLmhvdC5hY2NlcHQodW5kZWZpbmVkLCBjc3NSZWxvYWQpO1xuICAgIH1cbiAgIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLGdDQUtBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/mini-css-extract-plugin/dist/loader.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./packages/caeDesign/src/viewerWrapper/panel/panelBindComponent.vue?vue&type=style&index=0&id=3aa5c96e&lang=scss&scoped=true\n");
2615
+ eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9sb2FkZXIuanM/IS4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/IS4vcGFja2FnZXMvY2FlRGVzaWduL3NyYy92aWV3ZXJXcmFwcGVyL3BhbmVsL3BhbmVsQmluZENvbXBvbmVudC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD0zYWE1Yzk2ZSZsYW5nPXNjc3Mmc2NvcGVkPXRydWUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9bbmFtZV0vLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL3ZpZXdlcldyYXBwZXIvcGFuZWwvcGFuZWxCaW5kQ29tcG9uZW50LnZ1ZT83YWU3Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuICAgIGlmKG1vZHVsZS5ob3QpIHtcbiAgICAgIC8vIDE3NjEwNDA3MzQ2MzdcbiAgICAgIHZhciBjc3NSZWxvYWQgPSByZXF1aXJlKFwiQzovRGV2ZWxvcG1lbnRzL3Z1ZS10cy1ncy1jYWUtY2xvdWQtdGVzdC0wMjE5L25vZGVfbW9kdWxlcy9taW5pLWNzcy1leHRyYWN0LXBsdWdpbi9kaXN0L2htci9ob3RNb2R1bGVSZXBsYWNlbWVudC5qc1wiKShtb2R1bGUuaWQsIHtcImhtclwiOnRydWUsXCJwdWJsaWNQYXRoXCI6XCIuL1wiLFwibG9jYWxzXCI6ZmFsc2V9KTtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShjc3NSZWxvYWQpO1xuICAgICAgbW9kdWxlLmhvdC5hY2NlcHQodW5kZWZpbmVkLCBjc3NSZWxvYWQpO1xuICAgIH1cbiAgIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLGdDQUtBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/mini-css-extract-plugin/dist/loader.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./packages/caeDesign/src/viewerWrapper/panel/panelBindComponent.vue?vue&type=style&index=0&id=3aa5c96e&lang=scss&scoped=true\n");
2616
2616
 
2617
2617
  /***/ }),
2618
2618
 
@@ -2623,7 +2623,7 @@ eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\
2623
2623
  /*! no static exports found */
2624
2624
  /***/ (function(module, exports, __webpack_require__) {
2625
2625
 
2626
- eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9sb2FkZXIuanM/IS4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/IS4vcGFja2FnZXMvY2FlRGVzaWduL3NyYy92aWV3ZXJXcmFwcGVyL3BhbmVsL3N0cnVjdHVyZVRyZWUvaW50ZXJmYWNlU3RydWN0dXJlVHJlZS52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD01MmEwMWI2OCZsYW5nPXNjc3Mmc2NvcGVkPXRydWUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9bbmFtZV0vLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL3ZpZXdlcldyYXBwZXIvcGFuZWwvc3RydWN0dXJlVHJlZS9pbnRlcmZhY2VTdHJ1Y3R1cmVUcmVlLnZ1ZT83MWVhIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuICAgIGlmKG1vZHVsZS5ob3QpIHtcbiAgICAgIC8vIDE3NTg4NzkwMzgwMDJcbiAgICAgIHZhciBjc3NSZWxvYWQgPSByZXF1aXJlKFwiQzovRGV2ZWxvcG1lbnRzL3Z1ZS10cy1ncy1jYWUtY2xvdWQtdGVzdC0wMjE5L25vZGVfbW9kdWxlcy9taW5pLWNzcy1leHRyYWN0LXBsdWdpbi9kaXN0L2htci9ob3RNb2R1bGVSZXBsYWNlbWVudC5qc1wiKShtb2R1bGUuaWQsIHtcImhtclwiOnRydWUsXCJwdWJsaWNQYXRoXCI6XCIuL1wiLFwibG9jYWxzXCI6ZmFsc2V9KTtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShjc3NSZWxvYWQpO1xuICAgICAgbW9kdWxlLmhvdC5hY2NlcHQodW5kZWZpbmVkLCBjc3NSZWxvYWQpO1xuICAgIH1cbiAgIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLGdDQUtBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/mini-css-extract-plugin/dist/loader.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./packages/caeDesign/src/viewerWrapper/panel/structureTree/interfaceStructureTree.vue?vue&type=style&index=0&id=52a01b68&lang=scss&scoped=true\n");
2626
+ eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9sb2FkZXIuanM/IS4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/IS4vcGFja2FnZXMvY2FlRGVzaWduL3NyYy92aWV3ZXJXcmFwcGVyL3BhbmVsL3N0cnVjdHVyZVRyZWUvaW50ZXJmYWNlU3RydWN0dXJlVHJlZS52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD01MmEwMWI2OCZsYW5nPXNjc3Mmc2NvcGVkPXRydWUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9bbmFtZV0vLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL3ZpZXdlcldyYXBwZXIvcGFuZWwvc3RydWN0dXJlVHJlZS9pbnRlcmZhY2VTdHJ1Y3R1cmVUcmVlLnZ1ZT83MWVhIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuICAgIGlmKG1vZHVsZS5ob3QpIHtcbiAgICAgIC8vIDE3NjEwNDA3MjIzNDdcbiAgICAgIHZhciBjc3NSZWxvYWQgPSByZXF1aXJlKFwiQzovRGV2ZWxvcG1lbnRzL3Z1ZS10cy1ncy1jYWUtY2xvdWQtdGVzdC0wMjE5L25vZGVfbW9kdWxlcy9taW5pLWNzcy1leHRyYWN0LXBsdWdpbi9kaXN0L2htci9ob3RNb2R1bGVSZXBsYWNlbWVudC5qc1wiKShtb2R1bGUuaWQsIHtcImhtclwiOnRydWUsXCJwdWJsaWNQYXRoXCI6XCIuL1wiLFwibG9jYWxzXCI6ZmFsc2V9KTtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShjc3NSZWxvYWQpO1xuICAgICAgbW9kdWxlLmhvdC5hY2NlcHQodW5kZWZpbmVkLCBjc3NSZWxvYWQpO1xuICAgIH1cbiAgIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLGdDQUtBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/mini-css-extract-plugin/dist/loader.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./packages/caeDesign/src/viewerWrapper/panel/structureTree/interfaceStructureTree.vue?vue&type=style&index=0&id=52a01b68&lang=scss&scoped=true\n");
2627
2627
 
2628
2628
  /***/ }),
2629
2629
 
@@ -2634,7 +2634,7 @@ eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\
2634
2634
  /*! no static exports found */
2635
2635
  /***/ (function(module, exports, __webpack_require__) {
2636
2636
 
2637
- eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9sb2FkZXIuanM/IS4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/IS4vcGFja2FnZXMvY2FlRGVzaWduL3NyYy92aWV3ZXJXcmFwcGVyL3BhbmVsL3ZpZXdQb2ludC9pbnRlcmZhY2VWaWV3UG9pbnRQYW5lbC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD02N2UzOTUyOCZsYW5nPXNjc3Mmc2NvcGVkPXRydWUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9bbmFtZV0vLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL3ZpZXdlcldyYXBwZXIvcGFuZWwvdmlld1BvaW50L2ludGVyZmFjZVZpZXdQb2ludFBhbmVsLnZ1ZT8yZTdjIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuICAgIGlmKG1vZHVsZS5ob3QpIHtcbiAgICAgIC8vIDE3NTg4NzkwNTM5NDZcbiAgICAgIHZhciBjc3NSZWxvYWQgPSByZXF1aXJlKFwiQzovRGV2ZWxvcG1lbnRzL3Z1ZS10cy1ncy1jYWUtY2xvdWQtdGVzdC0wMjE5L25vZGVfbW9kdWxlcy9taW5pLWNzcy1leHRyYWN0LXBsdWdpbi9kaXN0L2htci9ob3RNb2R1bGVSZXBsYWNlbWVudC5qc1wiKShtb2R1bGUuaWQsIHtcImhtclwiOnRydWUsXCJwdWJsaWNQYXRoXCI6XCIuL1wiLFwibG9jYWxzXCI6ZmFsc2V9KTtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShjc3NSZWxvYWQpO1xuICAgICAgbW9kdWxlLmhvdC5hY2NlcHQodW5kZWZpbmVkLCBjc3NSZWxvYWQpO1xuICAgIH1cbiAgIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLGdDQUtBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/mini-css-extract-plugin/dist/loader.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./packages/caeDesign/src/viewerWrapper/panel/viewPoint/interfaceViewPointPanel.vue?vue&type=style&index=0&id=67e39528&lang=scss&scoped=true\n");
2637
+ eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9sb2FkZXIuanM/IS4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/IS4vcGFja2FnZXMvY2FlRGVzaWduL3NyYy92aWV3ZXJXcmFwcGVyL3BhbmVsL3ZpZXdQb2ludC9pbnRlcmZhY2VWaWV3UG9pbnRQYW5lbC52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD02N2UzOTUyOCZsYW5nPXNjc3Mmc2NvcGVkPXRydWUuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9bbmFtZV0vLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL3ZpZXdlcldyYXBwZXIvcGFuZWwvdmlld1BvaW50L2ludGVyZmFjZVZpZXdQb2ludFBhbmVsLnZ1ZT8yZTdjIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuICAgIGlmKG1vZHVsZS5ob3QpIHtcbiAgICAgIC8vIDE3NjEwNDA3MzYwMzdcbiAgICAgIHZhciBjc3NSZWxvYWQgPSByZXF1aXJlKFwiQzovRGV2ZWxvcG1lbnRzL3Z1ZS10cy1ncy1jYWUtY2xvdWQtdGVzdC0wMjE5L25vZGVfbW9kdWxlcy9taW5pLWNzcy1leHRyYWN0LXBsdWdpbi9kaXN0L2htci9ob3RNb2R1bGVSZXBsYWNlbWVudC5qc1wiKShtb2R1bGUuaWQsIHtcImhtclwiOnRydWUsXCJwdWJsaWNQYXRoXCI6XCIuL1wiLFwibG9jYWxzXCI6ZmFsc2V9KTtcbiAgICAgIG1vZHVsZS5ob3QuZGlzcG9zZShjc3NSZWxvYWQpO1xuICAgICAgbW9kdWxlLmhvdC5hY2NlcHQodW5kZWZpbmVkLCBjc3NSZWxvYWQpO1xuICAgIH1cbiAgIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLGdDQUtBO0FBQ0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/mini-css-extract-plugin/dist/loader.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./packages/caeDesign/src/viewerWrapper/panel/viewPoint/interfaceViewPointPanel.vue?vue&type=style&index=0&id=67e39528&lang=scss&scoped=true\n");
2638
2638
 
2639
2639
  /***/ }),
2640
2640
 
@@ -2645,7 +2645,7 @@ eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\
2645
2645
  /*! no static exports found */
2646
2646
  /***/ (function(module, exports, __webpack_require__) {
2647
2647
 
2648
- eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9sb2FkZXIuanM/IS4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/IS4vcGFja2FnZXMvY2FlRGVzaWduL3NyYy92aWV3ZXJXcmFwcGVyL3ZpZXdlcldyYXBwZXIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MjA5YmEwY2Emc2NvcGVkPXRydWUmbGFuZz1zY3NzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vW25hbWVdLy4vcGFja2FnZXMvY2FlRGVzaWduL3NyYy92aWV3ZXJXcmFwcGVyL3ZpZXdlcldyYXBwZXIudnVlPzk1M2UiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG4gICAgaWYobW9kdWxlLmhvdCkge1xuICAgICAgLy8gMTc1ODg3OTAzODAwNFxuICAgICAgdmFyIGNzc1JlbG9hZCA9IHJlcXVpcmUoXCJDOi9EZXZlbG9wbWVudHMvdnVlLXRzLWdzLWNhZS1jbG91ZC10ZXN0LTAyMTkvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvaG1yL2hvdE1vZHVsZVJlcGxhY2VtZW50LmpzXCIpKG1vZHVsZS5pZCwge1wiaG1yXCI6dHJ1ZSxcInB1YmxpY1BhdGhcIjpcIi4vXCIsXCJsb2NhbHNcIjpmYWxzZX0pO1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGNzc1JlbG9hZCk7XG4gICAgICBtb2R1bGUuaG90LmFjY2VwdCh1bmRlZmluZWQsIGNzc1JlbG9hZCk7XG4gICAgfVxuICAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsZ0NBS0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/mini-css-extract-plugin/dist/loader.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./packages/caeDesign/src/viewerWrapper/viewerWrapper.vue?vue&type=style&index=0&id=209ba0ca&scoped=true&lang=scss\n");
2648
+ eval("// extracted by mini-css-extract-plugin\n if(false) { var cssReload; }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbWluaS1jc3MtZXh0cmFjdC1wbHVnaW4vZGlzdC9sb2FkZXIuanM/IS4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL2xvYWRlcnMvc3R5bGVQb3N0TG9hZGVyLmpzIS4vbm9kZV9tb2R1bGVzL3Bvc3Rjc3MtbG9hZGVyL3NyYy9pbmRleC5qcz8hLi9ub2RlX21vZHVsZXMvc2Fzcy1sb2FkZXIvZGlzdC9janMuanM/IS4vbm9kZV9tb2R1bGVzL2NhY2hlLWxvYWRlci9kaXN0L2Nqcy5qcz8hLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvaW5kZXguanM/IS4vcGFja2FnZXMvY2FlRGVzaWduL3NyYy92aWV3ZXJXcmFwcGVyL3ZpZXdlcldyYXBwZXIudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MjA5YmEwY2Emc2NvcGVkPXRydWUmbGFuZz1zY3NzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vW25hbWVdLy4vcGFja2FnZXMvY2FlRGVzaWduL3NyYy92aWV3ZXJXcmFwcGVyL3ZpZXdlcldyYXBwZXIudnVlPzk1M2UiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG4gICAgaWYobW9kdWxlLmhvdCkge1xuICAgICAgLy8gMTc2MTA0MDcyMjM0OFxuICAgICAgdmFyIGNzc1JlbG9hZCA9IHJlcXVpcmUoXCJDOi9EZXZlbG9wbWVudHMvdnVlLXRzLWdzLWNhZS1jbG91ZC10ZXN0LTAyMTkvbm9kZV9tb2R1bGVzL21pbmktY3NzLWV4dHJhY3QtcGx1Z2luL2Rpc3QvaG1yL2hvdE1vZHVsZVJlcGxhY2VtZW50LmpzXCIpKG1vZHVsZS5pZCwge1wiaG1yXCI6dHJ1ZSxcInB1YmxpY1BhdGhcIjpcIi4vXCIsXCJsb2NhbHNcIjpmYWxzZX0pO1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGNzc1JlbG9hZCk7XG4gICAgICBtb2R1bGUuaG90LmFjY2VwdCh1bmRlZmluZWQsIGNzc1JlbG9hZCk7XG4gICAgfVxuICAiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0EsZ0NBS0E7QUFDQSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/mini-css-extract-plugin/dist/loader.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/sass-loader/dist/cjs.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./packages/caeDesign/src/viewerWrapper/viewerWrapper.vue?vue&type=style&index=0&id=209ba0ca&scoped=true&lang=scss\n");
2649
2649
 
2650
2650
  /***/ }),
2651
2651
 
@@ -2874,7 +2874,7 @@ eval("module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\
2874
2874
  /*! exports provided: name, version, description, main, types, files, author, license, scripts, dependencies, devDependencies, default */
2875
2875
  /***/ (function(module) {
2876
2876
 
2877
- eval("module.exports = JSON.parse(\"{\\\"name\\\":\\\"gs-cae-design\\\",\\\"version\\\":\\\"1.1.63\\\",\\\"description\\\":\\\"广州图石科技有限公司发布的基于gs-longan的CAE图形控件\\\",\\\"main\\\":\\\"lib/CAEDesign.umd.min.js\\\",\\\"types\\\":\\\"./types/caeDesign/src/index.d.ts\\\",\\\"files\\\":[\\\"*\\\"],\\\"author\\\":\\\"广州图石科技有限公司\\\",\\\"license\\\":\\\"ISC\\\",\\\"scripts\\\":{\\\"publish\\\":\\\"npm publish \\\",\\\"publishBeta\\\":\\\"npm publish --tag=beta\\\",\\\"publishBeta2\\\":\\\"npm publish --tag=beta2\\\",\\\"typedoc\\\":\\\"typedoc --plugin typedoc-plugin-markdown\\\"},\\\"dependencies\\\":{},\\\"devDependencies\\\":{}}\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWNrYWdlcy9jYWVEZXNpZ24vcGFja2FnZS5qc29uLmpzIiwic291cmNlcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./packages/caeDesign/package.json\n");
2877
+ eval("module.exports = JSON.parse(\"{\\\"name\\\":\\\"gs-cae-design\\\",\\\"version\\\":\\\"1.1.64\\\",\\\"description\\\":\\\"广州图石科技有限公司发布的基于gs-longan的CAE图形控件\\\",\\\"main\\\":\\\"lib/CAEDesign.umd.min.js\\\",\\\"types\\\":\\\"./types/caeDesign/src/index.d.ts\\\",\\\"files\\\":[\\\"*\\\"],\\\"author\\\":\\\"广州图石科技有限公司\\\",\\\"license\\\":\\\"ISC\\\",\\\"scripts\\\":{\\\"publish\\\":\\\"npm publish \\\",\\\"publishBeta\\\":\\\"npm publish --tag=beta\\\",\\\"publishBeta2\\\":\\\"npm publish --tag=beta2\\\",\\\"typedoc\\\":\\\"typedoc --plugin typedoc-plugin-markdown\\\"},\\\"dependencies\\\":{},\\\"devDependencies\\\":{}}\");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWNrYWdlcy9jYWVEZXNpZ24vcGFja2FnZS5qc29uLmpzIiwic291cmNlcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./packages/caeDesign/package.json\n");
2878
2878
 
2879
2879
  /***/ }),
2880
2880
 
@@ -3943,7 +3943,7 @@ eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPAC
3943
3943
  /*! no static exports found */
3944
3944
  /***/ (function(module, exports, __webpack_require__) {
3945
3945
 
3946
- eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\"), __webpack_require__(/*! gs-bim-air */ \"./node_modules/gs-bim-air/lib/BimAir.umd.min.js\"), __webpack_require__(/*! ../objects/caeObjects/jointObject */ \"./packages/caeDesign/src/gsDevFx/objects/caeObjects/jointObject.ts\"), __webpack_require__(/*! gs-ceec-design */ \"./packages/ceecDesign/src/index.ts\"), __webpack_require__(/*! gs-ceec-design */ \"./packages/ceecDesign/src/index.ts\"), __webpack_require__(/*! ../objects/caeObjects/memberObject */ \"./packages/caeDesign/src/gsDevFx/objects/caeObjects/memberObject.ts\"), __webpack_require__(/*! ../objects/caeObjects/plateObject */ \"./packages/caeDesign/src/gsDevFx/objects/caeObjects/plateObject.ts\"), __webpack_require__(/*! ../objects/caeObjects/grupObject */ \"./packages/caeDesign/src/gsDevFx/objects/caeObjects/grupObject.ts\"), __webpack_require__(/*! ../objects/caeObjects/pGrupObject */ \"./packages/caeDesign/src/gsDevFx/objects/caeObjects/pGrupObject.ts\")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, tslib_1, gs_bim_air_1, jointObject_1, gs_ceec_design_1, gs_ceec_design_2, memberObject_1, plateObject_1, grupObject_1, pGrupObject_1) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.CAERenderObjectTreeManager = void 0;\n var CAERenderObjectTreeManager = function (_super) {\n tslib_1.__extends(CAERenderObjectTreeManager, _super);\n function CAERenderObjectTreeManager(process) {\n var _this = _super.call(this, process) || this;\n _this._jointNode = null;\n _this._memberNode = null;\n _this._plateNode = null;\n _this._sectionInsNode = null;\n _this._grupNode = null;\n _this._pGrupNode = null;\n _this._pretreatmemtNode = null;\n _this._postResultNode = null;\n _this._plGrupNode = null;\n _this._pileNode = null;\n _this._optionNode = null;\n _this._sacinpNode = null;\n _this._saestateNode = null;\n _this._tempNode = null;\n return _this;\n }\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"process\", {\n get: function get() {\n return this._process;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"rootNode\", {\n get: function get() {\n var root = this.process.taskManager.currentTask.workRenderObject;\n if (root && !this.process.renderObjects.get(root.no)) {\n return null;\n }\n return root;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"modelNode\", {\n get: function get() {\n return this.process.findCaeObjectByNameInChildObject(this.rootNode, \"模型\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"optionNode\", {\n get: function get() {\n if (this.rootNode) {\n if (this.modelNode) {\n this._optionNode = this.process.findCaeObjectByNameInChildObject(this.modelNode, \"配置数据\");\n if (!this._optionNode) {\n var ro = new gs_bim_air_1.Longan.RenderObject();\n ro.name = \"配置数据\";\n this.process.addRenderObject(this.modelNode, ro);\n }\n }\n }\n return this._optionNode;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"sacinpNode\", {\n get: function get() {\n if (this.optionNode) {\n this._sacinpNode = this.process.findCaeObjectByNameInChildObject(this.optionNode, \"模型配置数据\");\n if (!this._sacinpNode) {\n var ro = new gs_bim_air_1.Longan.RenderObject();\n ro.name = \"模型配置数据\";\n this.process.addRenderObject(this.optionNode, ro);\n }\n }\n return this._sacinpNode;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"seastateNode\", {\n get: function get() {\n if (this.optionNode) {\n this._saestateNode = this.process.findCaeObjectByNameInChildObject(this.optionNode, \"海况配置数据\");\n if (!this._saestateNode) {\n var ro = new gs_bim_air_1.Longan.RenderObject();\n ro.name = \"海况配置数据\";\n this.process.addRenderObject(this.optionNode, ro);\n }\n }\n return this._saestateNode;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"tempNode\", {\n get: function get() {\n if (this.rootNode) {\n if (this.modelNode) {\n var jiheRO = this.process.findCaeObjectByNameInChildObject(this.modelNode, \"几何\");\n if (jiheRO) {\n this._tempNode = this.process.findCaeObjectByNameInChildObject(jiheRO, \"临时节点\");\n if (!this._tempNode) {\n var tempNode = new gs_ceec_design_1.DesignBaseObject();\n tempNode.name = \"临时节点\";\n this.process.addRenderObject(jiheRO, tempNode);\n this._tempNode = tempNode;\n }\n }\n }\n }\n return this._tempNode;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"jointNode\", {\n get: function get() {\n if (this.rootNode) {\n if (this.modelNode) {\n var jiheRO = this.process.findCaeObjectByNameInChildObject(this.modelNode, \"几何\");\n if (jiheRO) {\n this._jointNode = this.process.findCaeObjectByNameInChildObject(jiheRO, \"点\");\n }\n }\n }\n return this._jointNode;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"memberNode\", {\n get: function get() {\n if (this.rootNode) {\n if (this.modelNode) {\n var jiheRO = this.process.findCaeObjectByNameInChildObject(this.modelNode, \"几何\");\n if (jiheRO) {\n this._memberNode = this.process.findCaeObjectByNameInChildObject(jiheRO, \"杆件\");\n }\n }\n }\n return this._memberNode;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"plateNode\", {\n get: function get() {\n if (this.rootNode) {\n if (this.modelNode) {\n var jiheRO = this.process.findCaeObjectByNameInChildObject(this.modelNode, \"几何\");\n if (jiheRO) {\n this._plateNode = this.process.findCaeObjectByNameInChildObject(jiheRO, \"板\");\n }\n }\n }\n return this._plateNode;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"sectionInsNode\", {\n get: function get() {\n if (this.rootNode) {\n if (this.modelNode) {\n this._sectionInsNode = this.process.findCaeObjectByNameInChildObject(this.modelNode, \"截面实例库\");\n }\n }\n return this._sectionInsNode;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"grupNode\", {\n get: function get() {\n if (this.rootNode) {\n if (this.modelNode) {\n this._grupNode = this.process.findCaeObjectByNameInChildObject(this.modelNode, \"杆件截面组\");\n }\n }\n return this._grupNode;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"pGrupNode\", {\n get: function get() {\n if (this.rootNode) {\n if (this.modelNode) {\n this._pGrupNode = this.process.findCaeObjectByNameInChildObject(this.modelNode, \"板截面组\");\n }\n }\n return this._pGrupNode;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"plGrupNode\", {\n get: function get() {\n if (this.rootNode) {\n if (this.modelNode) {\n this._plGrupNode = this.process.findCaeObjectByNameInChildObject(this.modelNode, \"桩截面组\");\n if (!this._plGrupNode) {\n var ro = new gs_ceec_design_1.DesignBaseObject();\n ro.businessState = gs_ceec_design_2.BusinessState.Living;\n ro.name = \"桩截面组\";\n this.process.addRenderObject(this.modelNode, ro);\n this._plGrupNode = ro;\n }\n }\n }\n return this._plGrupNode;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"pileNode\", {\n get: function get() {\n if (this.rootNode) {\n if (this.modelNode) {\n var jiheRO = this.process.findCaeObjectByNameInChildObject(this.modelNode, \"几何\");\n if (jiheRO) {\n this._pileNode = this.process.findCaeObjectByNameInChildObject(this.modelNode.childObjects[0], \"桩\");\n if (!this._pileNode) {\n var ro = new gs_ceec_design_1.DesignBaseObject();\n ro.businessState = gs_ceec_design_2.BusinessState.Living;\n ro.name = \"桩\";\n this.process.addRenderObject(this.modelNode.childObjects[0], ro);\n this._pileNode = ro;\n }\n }\n }\n }\n return this._pileNode;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"postResultNode\", {\n get: function get() {\n if (this.rootNode) {\n if (this.modelNode) {\n this._postResultNode = this.process.findCaeObjectByNameInChildObject(this.modelNode, \"后处理计算结果\");\n }\n }\n return this._postResultNode;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"pretreatmentNode\", {\n get: function get() {\n if (this.rootNode) {\n if (this.modelNode) {\n this._pretreatmemtNode = this.process.findCaeObjectByNameInChildObject(this.modelNode, \"前处理可视化辅助\");\n }\n }\n return this._pretreatmemtNode;\n },\n enumerable: false,\n configurable: true\n });\n CAERenderObjectTreeManager.prototype.nameAscendingOrder = function (name, count, map) {\n if (map === void 0) {\n map = this.process.nameMapJoint;\n }\n var nameList = new Array();\n for (var i = 0; i < count; i++) {\n var jointName = this.ascendingOrder(name, i, map);\n nameList.push(jointName);\n name = jointName;\n }\n return nameList;\n };\n CAERenderObjectTreeManager.prototype.ascendingOrder = function (startName, index, map) {\n if (map === void 0) {\n map = this.process.nameMapJoint;\n }\n var name = startName;\n var newName = startName;\n if (index === 0) {\n index++;\n } else {\n newName = this.stringAscendingOrder(name, name.length - 1);\n }\n var isRepeat = false;\n isRepeat = this.checkNodeChildNameRepeat(map, newName);\n if (!isRepeat) {\n return newName;\n } else {\n return this.ascendingOrder(newName, index, map);\n }\n };\n CAERenderObjectTreeManager.prototype.stringAscendingOrder = function (str, index) {\n if (index >= 0) {\n var char = str[index];\n var result = this.charAscendingOrder(char);\n var newString = \"\";\n for (var i = 0; i < str.length; i++) {\n if (i === index) {\n newString += result.char;\n } else {\n newString += str[i];\n }\n }\n if (result.carryFlag) {\n return this.stringAscendingOrder(newString, index - 1);\n } else {\n return newString;\n }\n } else if (index < 0) {\n var newString = \"1\";\n for (var i = 0; i < str.length; i++) {\n newString += str[i];\n }\n return newString;\n }\n };\n CAERenderObjectTreeManager.prototype.charAscendingOrder = function (char) {\n var carryFlag = false;\n var asc = char.charCodeAt(0);\n if (asc === 57) {\n asc = 65;\n } else if (asc === 90) {\n asc = 48;\n carryFlag = true;\n } else {\n asc += 1;\n }\n char = String.fromCharCode(asc);\n return {\n carryFlag: carryFlag,\n char: char\n };\n };\n CAERenderObjectTreeManager.prototype.checkNameRepeat_Joint = function (name) {\n var _a;\n var isRepeat = false;\n (_a = this.jointNode) === null || _a === void 0 ? void 0 : _a.childObjects.forEach(function (node) {\n if (node instanceof jointObject_1.JointObject) {\n if (node.checkBusinessStateIsActive()) {\n if (node.name === name) {\n isRepeat = true;\n return;\n }\n }\n }\n });\n return isRepeat;\n };\n CAERenderObjectTreeManager.prototype.checkNameRepeat_Member = function (name) {\n var _a;\n var isRepeat = false;\n (_a = this.memberNode) === null || _a === void 0 ? void 0 : _a.childObjects.forEach(function (node) {\n if (node instanceof memberObject_1.MemberObject) {\n if (node.checkBusinessStateIsActive()) {\n if (node.name === name) {\n isRepeat = true;\n return;\n }\n }\n }\n });\n return isRepeat;\n };\n CAERenderObjectTreeManager.prototype.checkNameRepeat_Plate = function (name) {\n var _a;\n var isRepeat = false;\n (_a = this.plateNode) === null || _a === void 0 ? void 0 : _a.childObjects.forEach(function (node) {\n if (node instanceof plateObject_1.PlateObject) {\n if (node.checkBusinessStateIsActive()) {\n if (node.name === name) {\n isRepeat = true;\n return;\n }\n }\n }\n });\n return isRepeat;\n };\n CAERenderObjectTreeManager.prototype.checkNameRepeat_Grup = function (name) {\n var _a;\n var isRepeat = false;\n (_a = this.grupNode) === null || _a === void 0 ? void 0 : _a.childObjects.forEach(function (node) {\n if (node instanceof grupObject_1.GrupObject) {\n if (node.checkBusinessStateIsActive()) {\n if (node.name === name) {\n isRepeat = true;\n return;\n }\n }\n }\n });\n return isRepeat;\n };\n CAERenderObjectTreeManager.prototype.checkNameRepeat_PGrup = function (name) {\n var _a;\n var isRepeat = false;\n (_a = this.pGrupNode) === null || _a === void 0 ? void 0 : _a.childObjects.forEach(function (node) {\n if (node instanceof pGrupObject_1.PGrupObject) {\n if (node.checkBusinessStateIsActive()) {\n if (node.name === name) {\n isRepeat = true;\n return;\n }\n }\n }\n });\n return isRepeat;\n };\n CAERenderObjectTreeManager.prototype.checkNodeChildNameRepeat = function (map, name) {\n var isRepeat = false;\n var obj = map.get(name);\n if (obj && obj instanceof gs_ceec_design_1.DesignBaseObject && obj.checkBusinessStateIsActive()) {\n isRepeat = true;\n }\n return isRepeat;\n };\n CAERenderObjectTreeManager.prototype.checkNameRepeat_JointObject = function (targetName, joint) {\n var _a;\n var isRepeat = false;\n console.log(\"checkNameRepeat_JointObject\");\n (_a = this.jointNode) === null || _a === void 0 ? void 0 : _a.childObjects.forEach(function (node) {\n var ro = node;\n if (ro instanceof jointObject_1.JointObject) {\n if (ro.checkBusinessStateIsActive()) {\n if (joint) {\n if (ro.id !== joint.id) {\n if (ro.name === targetName) {\n isRepeat = true;\n return;\n }\n }\n } else {\n if (ro.name === targetName) {\n isRepeat = true;\n return;\n }\n }\n }\n }\n });\n return isRepeat;\n };\n return CAERenderObjectTreeManager;\n }(gs_bim_air_1.Longan.ProcessManagerBase);\n exports.CAERenderObjectTreeManager = CAERenderObjectTreeManager;\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL2dzRGV2RngvbWFuYWdlcnMvY2FlUmVuZGVyT2JqZWN0VHJlZU1hbmFnZXIudHMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9bbmFtZV0vLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL2dzRGV2RngvbWFuYWdlcnMvY2FlUmVuZGVyT2JqZWN0VHJlZU1hbmFnZXIudHM/ZWE2MyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb25nYW4gfSBmcm9tIFwiZ3MtYmltLWFpclwiO1xuaW1wb3J0IHsgSm9pbnRPYmplY3QgfSBmcm9tIFwiLi4vb2JqZWN0cy9jYWVPYmplY3RzL2pvaW50T2JqZWN0XCI7XG5pbXBvcnQgeyBEZXNpZ25CYXNlT2JqZWN0IH0gZnJvbSBcImdzLWNlZWMtZGVzaWduXCI7XG5pbXBvcnQgeyBCdXNpbmVzc1N0YXRlIH0gZnJvbSBcImdzLWNlZWMtZGVzaWduXCI7XG5pbXBvcnQgeyBNZW1iZXJPYmplY3QgfSBmcm9tIFwiLi4vb2JqZWN0cy9jYWVPYmplY3RzL21lbWJlck9iamVjdFwiO1xuaW1wb3J0IHsgUGxhdGVPYmplY3QgfSBmcm9tIFwiLi4vb2JqZWN0cy9jYWVPYmplY3RzL3BsYXRlT2JqZWN0XCI7XG5pbXBvcnQgeyBHcnVwT2JqZWN0IH0gZnJvbSBcIi4uL29iamVjdHMvY2FlT2JqZWN0cy9ncnVwT2JqZWN0XCI7XG5pbXBvcnQgeyBQcm9jZXNzIH0gZnJvbSBcIi4uL3Byb2Nlc3NcIjtcbmltcG9ydCB7IFBHcnVwT2JqZWN0IH0gZnJvbSBcIi4uL29iamVjdHMvY2FlT2JqZWN0cy9wR3J1cE9iamVjdFwiO1xuXG5leHBvcnQgY2xhc3MgQ0FFUmVuZGVyT2JqZWN0VHJlZU1hbmFnZXIgZXh0ZW5kcyBMb25nYW4uUHJvY2Vzc01hbmFnZXJCYXNlIHtcbiAgcHJpdmF0ZSBfam9pbnROb2RlOiBEZXNpZ25CYXNlT2JqZWN0ID0gbnVsbDtcbiAgcHJpdmF0ZSBfbWVtYmVyTm9kZTogRGVzaWduQmFzZU9iamVjdCA9IG51bGw7XG4gIHByaXZhdGUgX3BsYXRlTm9kZTogRGVzaWduQmFzZU9iamVjdCA9IG51bGw7XG4gIHByaXZhdGUgX3NlY3Rpb25JbnNOb2RlOiBEZXNpZ25CYXNlT2JqZWN0ID0gbnVsbDtcbiAgcHJpdmF0ZSBfZ3J1cE5vZGU6IERlc2lnbkJhc2VPYmplY3QgPSBudWxsO1xuICBwcml2YXRlIF9wR3J1cE5vZGU6IERlc2lnbkJhc2VPYmplY3QgPSBudWxsO1xuICBwcml2YXRlIF9wcmV0cmVhdG1lbXROb2RlOiBEZXNpZ25CYXNlT2JqZWN0ID0gbnVsbDtcbiAgcHJpdmF0ZSBfcG9zdFJlc3VsdE5vZGU6IERlc2lnbkJhc2VPYmplY3QgPSBudWxsO1xuXG4gIHByaXZhdGUgX3BsR3J1cE5vZGU6IERlc2lnbkJhc2VPYmplY3QgPSBudWxsO1xuICBwcml2YXRlIF9waWxlTm9kZTogRGVzaWduQmFzZU9iamVjdCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfb3B0aW9uTm9kZTogRGVzaWduQmFzZU9iamVjdCA9IG51bGw7XG4gIHByaXZhdGUgX3NhY2lucE5vZGU6IERlc2lnbkJhc2VPYmplY3QgPSBudWxsO1xuICBwcml2YXRlIF9zYWVzdGF0ZU5vZGU6IERlc2lnbkJhc2VPYmplY3QgPSBudWxsO1xuXG4gIHByaXZhdGUgX3RlbXBOb2RlOiBEZXNpZ25CYXNlT2JqZWN0ID0gbnVsbDtcblxuICBwdWJsaWMgZ2V0IHByb2Nlc3MoKTogUHJvY2VzcyB7XG4gICAgcmV0dXJuIHRoaXMuX3Byb2Nlc3MgYXMgUHJvY2VzcztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByb2Nlc3M6IFByb2Nlc3MpIHtcbiAgICBzdXBlcihwcm9jZXNzKTtcbiAgfVxuXG4gIGdldCByb290Tm9kZSgpOiBEZXNpZ25CYXNlT2JqZWN0IHtcbiAgICBsZXQgcm9vdCA9IHRoaXMucHJvY2Vzcy50YXNrTWFuYWdlci5jdXJyZW50VGFza1xuICAgICAgLndvcmtSZW5kZXJPYmplY3QgYXMgRGVzaWduQmFzZU9iamVjdDtcblxuICAgIGlmIChyb290ICYmICF0aGlzLnByb2Nlc3MucmVuZGVyT2JqZWN0cy5nZXQocm9vdC5ubykpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiByb290O1xuICB9XG5cbiAgZ2V0IG1vZGVsTm9kZSgpOiBEZXNpZ25CYXNlT2JqZWN0IHtcbiAgICByZXR1cm4gdGhpcy5wcm9jZXNzLmZpbmRDYWVPYmplY3RCeU5hbWVJbkNoaWxkT2JqZWN0KHRoaXMucm9vdE5vZGUsIFwi5qih5Z6LXCIpO1xuICB9XG5cbiAgZ2V0IG9wdGlvbk5vZGUoKTogRGVzaWduQmFzZU9iamVjdCB7XG4gICAgaWYgKHRoaXMucm9vdE5vZGUpIHtcbiAgICAgIGlmICh0aGlzLm1vZGVsTm9kZSkge1xuICAgICAgICB0aGlzLl9vcHRpb25Ob2RlID0gdGhpcy5wcm9jZXNzLmZpbmRDYWVPYmplY3RCeU5hbWVJbkNoaWxkT2JqZWN0KFxuICAgICAgICAgIHRoaXMubW9kZWxOb2RlLFxuICAgICAgICAgIFwi6YWN572u5pWw5o2uXCJcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKCF0aGlzLl9vcHRpb25Ob2RlKSB7XG4gICAgICAgICAgbGV0IHJvID0gbmV3IExvbmdhbi5SZW5kZXJPYmplY3QoKTtcbiAgICAgICAgICByby5uYW1lID0gXCLphY3nva7mlbDmja5cIjtcbiAgICAgICAgICB0aGlzLnByb2Nlc3MuYWRkUmVuZGVyT2JqZWN0KHRoaXMubW9kZWxOb2RlLCBybyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fb3B0aW9uTm9kZTtcbiAgfVxuXG4gIGdldCBzYWNpbnBOb2RlKCk6IERlc2lnbkJhc2VPYmplY3Qge1xuICAgIGlmICh0aGlzLm9wdGlvbk5vZGUpIHtcbiAgICAgIHRoaXMuX3NhY2lucE5vZGUgPSB0aGlzLnByb2Nlc3MuZmluZENhZU9iamVjdEJ5TmFtZUluQ2hpbGRPYmplY3QoXG4gICAgICAgIHRoaXMub3B0aW9uTm9kZSxcbiAgICAgICAgXCLmqKHlnovphY3nva7mlbDmja5cIlxuICAgICAgKTtcbiAgICAgIGlmICghdGhpcy5fc2FjaW5wTm9kZSkge1xuICAgICAgICBsZXQgcm8gPSBuZXcgTG9uZ2FuLlJlbmRlck9iamVjdCgpO1xuICAgICAgICByby5uYW1lID0gXCLmqKHlnovphY3nva7mlbDmja5cIjtcbiAgICAgICAgdGhpcy5wcm9jZXNzLmFkZFJlbmRlck9iamVjdCh0aGlzLm9wdGlvbk5vZGUsIHJvKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fc2FjaW5wTm9kZTtcbiAgfVxuXG4gIGdldCBzZWFzdGF0ZU5vZGUoKTogRGVzaWduQmFzZU9iamVjdCB7XG4gICAgaWYgKHRoaXMub3B0aW9uTm9kZSkge1xuICAgICAgdGhpcy5fc2Flc3RhdGVOb2RlID0gdGhpcy5wcm9jZXNzLmZpbmRDYWVPYmplY3RCeU5hbWVJbkNoaWxkT2JqZWN0KFxuICAgICAgICB0aGlzLm9wdGlvbk5vZGUsXG4gICAgICAgIFwi5rW35Ya16YWN572u5pWw5o2uXCJcbiAgICAgICk7XG4gICAgICBpZiAoIXRoaXMuX3NhZXN0YXRlTm9kZSkge1xuICAgICAgICBsZXQgcm8gPSBuZXcgTG9uZ2FuLlJlbmRlck9iamVjdCgpO1xuICAgICAgICByby5uYW1lID0gXCLmtbflhrXphY3nva7mlbDmja5cIjtcbiAgICAgICAgdGhpcy5wcm9jZXNzLmFkZFJlbmRlck9iamVjdCh0aGlzLm9wdGlvbk5vZGUsIHJvKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fc2Flc3RhdGVOb2RlO1xuICB9XG5cbiAgZ2V0IHRlbXBOb2RlKCk6IERlc2lnbkJhc2VPYmplY3Qge1xuICAgIGlmICh0aGlzLnJvb3ROb2RlKSB7XG4gICAgICBpZiAodGhpcy5tb2RlbE5vZGUpIHtcbiAgICAgICAgbGV0IGppaGVSTyA9IHRoaXMucHJvY2Vzcy5maW5kQ2FlT2JqZWN0QnlOYW1lSW5DaGlsZE9iamVjdChcbiAgICAgICAgICB0aGlzLm1vZGVsTm9kZSxcbiAgICAgICAgICBcIuWHoOS9lVwiXG4gICAgICAgICk7XG4gICAgICAgIGlmIChqaWhlUk8pIHtcbiAgICAgICAgICB0aGlzLl90ZW1wTm9kZSA9IHRoaXMucHJvY2Vzcy5maW5kQ2FlT2JqZWN0QnlOYW1lSW5DaGlsZE9iamVjdChcbiAgICAgICAgICAgIGppaGVSTyxcbiAgICAgICAgICAgIFwi5Li05pe26IqC54K5XCJcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYoIXRoaXMuX3RlbXBOb2RlKSB7XG4gICAgICAgICAgICBsZXQgdGVtcE5vZGUgPSBuZXcgRGVzaWduQmFzZU9iamVjdCgpO1xuICAgICAgICAgICAgdGVtcE5vZGUubmFtZSA9IFwi5Li05pe26IqC54K5XCJcbiAgICAgICAgICAgIHRoaXMucHJvY2Vzcy5hZGRSZW5kZXJPYmplY3QoamloZVJPLCB0ZW1wTm9kZSk7XG4gICAgICAgICAgICB0aGlzLl90ZW1wTm9kZSA9IHRlbXBOb2RlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl90ZW1wTm9kZTtcbiAgfVxuXG4gIGdldCBqb2ludE5vZGUoKTogRGVzaWduQmFzZU9iamVjdCB7XG4gICAgLy8g6aG555uuXG4gICAgaWYgKHRoaXMucm9vdE5vZGUpIHtcbiAgICAgIC8vIOaooeWei1xuICAgICAgaWYgKHRoaXMubW9kZWxOb2RlKSB7XG4gICAgICAgIGxldCBqaWhlUk8gPSB0aGlzLnByb2Nlc3MuZmluZENhZU9iamVjdEJ5TmFtZUluQ2hpbGRPYmplY3QoXG4gICAgICAgICAgdGhpcy5tb2RlbE5vZGUsXG4gICAgICAgICAgXCLlh6DkvZVcIlxuICAgICAgICApO1xuICAgICAgICBpZiAoamloZVJPKSB7XG4gICAgICAgICAgdGhpcy5fam9pbnROb2RlID0gdGhpcy5wcm9jZXNzLmZpbmRDYWVPYmplY3RCeU5hbWVJbkNoaWxkT2JqZWN0KFxuICAgICAgICAgICAgamloZVJPLFxuICAgICAgICAgICAgXCLngrlcIlxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fam9pbnROb2RlO1xuICB9XG5cbiAgZ2V0IG1lbWJlck5vZGUoKTogRGVzaWduQmFzZU9iamVjdCB7XG4gICAgaWYgKHRoaXMucm9vdE5vZGUpIHtcbiAgICAgIGlmICh0aGlzLm1vZGVsTm9kZSkge1xuICAgICAgICBsZXQgamloZVJPID0gdGhpcy5wcm9jZXNzLmZpbmRDYWVPYmplY3RCeU5hbWVJbkNoaWxkT2JqZWN0KFxuICAgICAgICAgIHRoaXMubW9kZWxOb2RlLFxuICAgICAgICAgIFwi5Yeg5L2VXCJcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKGppaGVSTykge1xuICAgICAgICAgIHRoaXMuX21lbWJlck5vZGUgPSB0aGlzLnByb2Nlc3MuZmluZENhZU9iamVjdEJ5TmFtZUluQ2hpbGRPYmplY3QoXG4gICAgICAgICAgICBqaWhlUk8sXG4gICAgICAgICAgICBcIuadhuS7tlwiXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9tZW1iZXJOb2RlO1xuICB9XG5cbiAgZ2V0IHBsYXRlTm9kZSgpOiBEZXNpZ25CYXNlT2JqZWN0IHtcbiAgICBpZiAodGhpcy5yb290Tm9kZSkge1xuICAgICAgaWYgKHRoaXMubW9kZWxOb2RlKSB7XG4gICAgICAgIGxldCBqaWhlUk8gPSB0aGlzLnByb2Nlc3MuZmluZENhZU9iamVjdEJ5TmFtZUluQ2hpbGRPYmplY3QoXG4gICAgICAgICAgdGhpcy5tb2RlbE5vZGUsXG4gICAgICAgICAgXCLlh6DkvZVcIlxuICAgICAgICApO1xuICAgICAgICBpZiAoamloZVJPKSB7XG4gICAgICAgICAgdGhpcy5fcGxhdGVOb2RlID0gdGhpcy5wcm9jZXNzLmZpbmRDYWVPYmplY3RCeU5hbWVJbkNoaWxkT2JqZWN0KFxuICAgICAgICAgICAgamloZVJPLFxuICAgICAgICAgICAgXCLmnb9cIlxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fcGxhdGVOb2RlO1xuICB9XG5cbiAgZ2V0IHNlY3Rpb25JbnNOb2RlKCk6IERlc2lnbkJhc2VPYmplY3Qge1xuICAgIGlmICh0aGlzLnJvb3ROb2RlKSB7XG4gICAgICBpZiAodGhpcy5tb2RlbE5vZGUpIHtcbiAgICAgICAgdGhpcy5fc2VjdGlvbkluc05vZGUgPSB0aGlzLnByb2Nlc3MuZmluZENhZU9iamVjdEJ5TmFtZUluQ2hpbGRPYmplY3QoXG4gICAgICAgICAgdGhpcy5tb2RlbE5vZGUsXG4gICAgICAgICAgXCLmiKrpnaLlrp7kvovlupNcIlxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9zZWN0aW9uSW5zTm9kZTtcbiAgfVxuXG4gIGdldCBncnVwTm9kZSgpOiBEZXNpZ25CYXNlT2JqZWN0IHtcbiAgICBpZiAodGhpcy5yb290Tm9kZSkge1xuICAgICAgaWYgKHRoaXMubW9kZWxOb2RlKSB7XG4gICAgICAgIHRoaXMuX2dydXBOb2RlID0gdGhpcy5wcm9jZXNzLmZpbmRDYWVPYmplY3RCeU5hbWVJbkNoaWxkT2JqZWN0KFxuICAgICAgICAgIHRoaXMubW9kZWxOb2RlLFxuICAgICAgICAgIFwi5p2G5Lu25oiq6Z2i57uEXCJcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fZ3J1cE5vZGU7XG4gIH1cblxuICBnZXQgcEdydXBOb2RlKCk6IERlc2lnbkJhc2VPYmplY3Qge1xuICAgIGlmICh0aGlzLnJvb3ROb2RlKSB7XG4gICAgICBpZiAodGhpcy5tb2RlbE5vZGUpIHtcbiAgICAgICAgdGhpcy5fcEdydXBOb2RlID0gdGhpcy5wcm9jZXNzLmZpbmRDYWVPYmplY3RCeU5hbWVJbkNoaWxkT2JqZWN0KFxuICAgICAgICAgIHRoaXMubW9kZWxOb2RlLFxuICAgICAgICAgIFwi5p2/5oiq6Z2i57uEXCJcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fcEdydXBOb2RlO1xuICB9XG5cbiAgZ2V0IHBsR3J1cE5vZGUoKTogRGVzaWduQmFzZU9iamVjdCB7XG4gICAgaWYgKHRoaXMucm9vdE5vZGUpIHtcbiAgICAgIGlmICh0aGlzLm1vZGVsTm9kZSkge1xuICAgICAgICB0aGlzLl9wbEdydXBOb2RlID0gdGhpcy5wcm9jZXNzLmZpbmRDYWVPYmplY3RCeU5hbWVJbkNoaWxkT2JqZWN0KFxuICAgICAgICAgIHRoaXMubW9kZWxOb2RlLFxuICAgICAgICAgIFwi5qGp5oiq6Z2i57uEXCJcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoIXRoaXMuX3BsR3J1cE5vZGUpIHtcbiAgICAgICAgICBsZXQgcm8gPSBuZXcgRGVzaWduQmFzZU9iamVjdCgpO1xuICAgICAgICAgIHJvLmJ1c2luZXNzU3RhdGUgPSBCdXNpbmVzc1N0YXRlLkxpdmluZztcbiAgICAgICAgICByby5uYW1lID0gXCLmoanmiKrpnaLnu4RcIjtcblxuICAgICAgICAgIHRoaXMucHJvY2Vzcy5hZGRSZW5kZXJPYmplY3QodGhpcy5tb2RlbE5vZGUsIHJvKTtcbiAgICAgICAgICB0aGlzLl9wbEdydXBOb2RlID0gcm87XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fcGxHcnVwTm9kZTtcbiAgfVxuXG4gIGdldCBwaWxlTm9kZSgpOiBEZXNpZ25CYXNlT2JqZWN0IHtcbiAgICBpZiAodGhpcy5yb290Tm9kZSkge1xuICAgICAgaWYgKHRoaXMubW9kZWxOb2RlKSB7XG4gICAgICAgIGxldCBqaWhlUk8gPSB0aGlzLnByb2Nlc3MuZmluZENhZU9iamVjdEJ5TmFtZUluQ2hpbGRPYmplY3QoXG4gICAgICAgICAgdGhpcy5tb2RlbE5vZGUsXG4gICAgICAgICAgXCLlh6DkvZVcIlxuICAgICAgICApO1xuICAgICAgICBpZiAoamloZVJPKSB7XG4gICAgICAgICAgdGhpcy5fcGlsZU5vZGUgPSB0aGlzLnByb2Nlc3MuZmluZENhZU9iamVjdEJ5TmFtZUluQ2hpbGRPYmplY3QoXG4gICAgICAgICAgICB0aGlzLm1vZGVsTm9kZS5jaGlsZE9iamVjdHNbMF0gYXMgRGVzaWduQmFzZU9iamVjdCxcbiAgICAgICAgICAgIFwi5qGpXCJcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKCF0aGlzLl9waWxlTm9kZSkge1xuICAgICAgICAgICAgbGV0IHJvID0gbmV3IERlc2lnbkJhc2VPYmplY3QoKTtcbiAgICAgICAgICAgIHJvLmJ1c2luZXNzU3RhdGUgPSBCdXNpbmVzc1N0YXRlLkxpdmluZztcbiAgICAgICAgICAgIHJvLm5hbWUgPSBcIuahqVwiO1xuXG4gICAgICAgICAgICB0aGlzLnByb2Nlc3MuYWRkUmVuZGVyT2JqZWN0KHRoaXMubW9kZWxOb2RlLmNoaWxkT2JqZWN0c1swXSwgcm8pO1xuICAgICAgICAgICAgdGhpcy5fcGlsZU5vZGUgPSBybztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fcGlsZU5vZGU7XG4gIH1cblxuICBnZXQgcG9zdFJlc3VsdE5vZGUoKTogRGVzaWduQmFzZU9iamVjdCB7XG4gICAgaWYgKHRoaXMucm9vdE5vZGUpIHtcbiAgICAgIGlmICh0aGlzLm1vZGVsTm9kZSkge1xuICAgICAgICB0aGlzLl9wb3N0UmVzdWx0Tm9kZSA9IHRoaXMucHJvY2Vzcy5maW5kQ2FlT2JqZWN0QnlOYW1lSW5DaGlsZE9iamVjdChcbiAgICAgICAgICB0aGlzLm1vZGVsTm9kZSxcbiAgICAgICAgICBcIuWQjuWkhOeQhuiuoeeul+e7k+aenFwiXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX3Bvc3RSZXN1bHROb2RlO1xuICB9XG5cbiAgZ2V0IHByZXRyZWF0bWVudE5vZGUoKTogRGVzaWduQmFzZU9iamVjdCB7XG4gICAgaWYgKHRoaXMucm9vdE5vZGUpIHtcbiAgICAgIGlmICh0aGlzLm1vZGVsTm9kZSkge1xuICAgICAgICB0aGlzLl9wcmV0cmVhdG1lbXROb2RlID0gdGhpcy5wcm9jZXNzLmZpbmRDYWVPYmplY3RCeU5hbWVJbkNoaWxkT2JqZWN0KFxuICAgICAgICAgIHRoaXMubW9kZWxOb2RlLFxuICAgICAgICAgIFwi5YmN5aSE55CG5Y+v6KeG5YyW6L6F5YqpXCJcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fcHJldHJlYXRtZW10Tm9kZTtcbiAgfVxuXG4gIC8qKlxuICAgKiDngrnlkI3ljYfluo9cbiAgICogQHBhcmFtIG5hbWUg6LW35aeL54K55ZCNXG4gICAqIEBwYXJhbSBjb3VudCDljYfluo/mlbDph49cbiAgICogQHBhcmFtIG5hbWVUeXBlICgwOmpvaW50LCAxOm1lbWJlciwgMjpwbGF0ZSwgMzpncnVwLCA0OnBncnVwLCA1OnNlY3RJbnMpXG4gICAqIEByZXR1cm5zXG4gICAqL1xuICBuYW1lQXNjZW5kaW5nT3JkZXIoXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIGNvdW50OiBudW1iZXIsXG4gICAgbWFwOiBNYXA8c3RyaW5nLCBhbnk+ID0gdGhpcy5wcm9jZXNzLm5hbWVNYXBKb2ludFxuICApOiBzdHJpbmdbXSB7XG4gICAgbGV0IG5hbWVMaXN0ID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICAgICAgbGV0IGpvaW50TmFtZSA9IHRoaXMuYXNjZW5kaW5nT3JkZXIobmFtZSwgaSwgbWFwKTtcbiAgICAgIG5hbWVMaXN0LnB1c2goam9pbnROYW1lKTtcblxuICAgICAgbmFtZSA9IGpvaW50TmFtZTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmFtZUxpc3Q7XG4gIH1cblxuICAvKipcbiAgICog56m66Ze054K5LOadhuS7tizmnb8s5ZCN5a2X5Y2H5bqPXG4gICAqIEBwYXJhbSBzdGFydE5hbWUg5Yid5aeL5ZCNXG4gICAqIEByZXR1cm5zIOaWsOeahG5hbWVcbiAgICovXG4gIHByaXZhdGUgYXNjZW5kaW5nT3JkZXIoXG4gICAgc3RhcnROYW1lOiBzdHJpbmcsXG4gICAgaW5kZXg6IG51bWJlcixcbiAgICBtYXAgPSB0aGlzLnByb2Nlc3MubmFtZU1hcEpvaW50XG4gICk6IHN0cmluZyB7XG4gICAgbGV0IG5hbWUgPSBzdGFydE5hbWU7XG5cbiAgICBsZXQgbmV3TmFtZSA9IHN0YXJ0TmFtZTtcbiAgICBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgIGluZGV4Kys7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIOWNh+W6j1xuICAgICAgbmV3TmFtZSA9IHRoaXMuc3RyaW5nQXNjZW5kaW5nT3JkZXIobmFtZSwgbmFtZS5sZW5ndGggLSAxKTtcbiAgICB9XG5cbiAgICAvLyDmn6Xph41cbiAgICBsZXQgaXNSZXBlYXQgPSBmYWxzZTtcbiAgICBpc1JlcGVhdCA9IHRoaXMuY2hlY2tOb2RlQ2hpbGROYW1lUmVwZWF0KG1hcCwgbmV3TmFtZSk7XG5cbiAgICAvLyDpgJrov4dcbiAgICBpZiAoIWlzUmVwZWF0KSB7XG4gICAgICByZXR1cm4gbmV3TmFtZTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8g5LiN6YCa6L+HLOmAkuW9ki5cbiAgICAgIHJldHVybiB0aGlzLmFzY2VuZGluZ09yZGVyKG5ld05hbWUsIGluZGV4LCBtYXApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzdHJpbmdBc2NlbmRpbmdPcmRlcihzdHI6IHN0cmluZywgaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgIGxldCBjaGFyID0gc3RyW2luZGV4XTtcbiAgICAgIGxldCByZXN1bHQgPSB0aGlzLmNoYXJBc2NlbmRpbmdPcmRlcihjaGFyKTtcblxuICAgICAgbGV0IG5ld1N0cmluZyA9IFwiXCI7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoaSA9PT0gaW5kZXgpIHtcbiAgICAgICAgICBuZXdTdHJpbmcgKz0gcmVzdWx0LmNoYXI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbmV3U3RyaW5nICs9IHN0cltpXTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyDoi6XmnInov5vkvY0uXG4gICAgICBpZiAocmVzdWx0LmNhcnJ5RmxhZykge1xuICAgICAgICByZXR1cm4gdGhpcy5zdHJpbmdBc2NlbmRpbmdPcmRlcihuZXdTdHJpbmcsIGluZGV4IC0gMSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbmV3U3RyaW5nO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaW5kZXggPCAwKSB7XG4gICAgICAvLyDkvovlpoI6RkbljYfluo/lj5jmiJAxMDA7XG4gICAgICBsZXQgbmV3U3RyaW5nID0gXCIxXCI7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuICAgICAgICBuZXdTdHJpbmcgKz0gc3RyW2ldO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbmV3U3RyaW5nO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiDlrZfnrKYrMVxuICAgKiBAcGFyYW0gY2hhciDlrZfnrKZcbiAgICogQHJldHVybnNcbiAgICovXG4gIHByaXZhdGUgY2hhckFzY2VuZGluZ09yZGVyKGNoYXI6IHN0cmluZykge1xuICAgIC8vIOeugOWNleWKoOazlS5cbiAgICBsZXQgY2FycnlGbGFnID0gZmFsc2U7XG4gICAgbGV0IGFzYyA9IGNoYXIuY2hhckNvZGVBdCgwKTtcblxuICAgIC8vIOWmguaenOaYrzks5YiZ5Y+YQSzlpoLmnpzmmK9aLOWImeWPmDAs5LiU6L+bMS5cbiAgICBpZiAoYXNjID09PSA1Nykge1xuICAgICAgYXNjID0gNjU7XG4gICAgfSBlbHNlIGlmIChhc2MgPT09IDkwKSB7XG4gICAgICBhc2MgPSA0ODtcbiAgICAgIC8vIOi/m+S9jeagh+W/l+S9jS5cbiAgICAgIGNhcnJ5RmxhZyA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vICsxLlxuICAgICAgYXNjICs9IDE7XG4gICAgfVxuXG4gICAgY2hhciA9IFN0cmluZy5mcm9tQ2hhckNvZGUoYXNjKTtcblxuICAgIHJldHVybiB7XG4gICAgICBjYXJyeUZsYWcsXG4gICAgICBjaGFyLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgY2hlY2tOYW1lUmVwZWF0X0pvaW50KG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGxldCBpc1JlcGVhdCA9IGZhbHNlO1xuXG4gICAgdGhpcy5qb2ludE5vZGU/LmNoaWxkT2JqZWN0cy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICBpZiAobm9kZSBpbnN0YW5jZW9mIEpvaW50T2JqZWN0KSB7XG4gICAgICAgIGlmIChub2RlLmNoZWNrQnVzaW5lc3NTdGF0ZUlzQWN0aXZlKCkpIHtcbiAgICAgICAgICBpZiAobm9kZS5uYW1lID09PSBuYW1lKSB7XG4gICAgICAgICAgICBpc1JlcGVhdCA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gaXNSZXBlYXQ7XG4gIH1cblxuICBwdWJsaWMgY2hlY2tOYW1lUmVwZWF0X01lbWJlcihuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBsZXQgaXNSZXBlYXQgPSBmYWxzZTtcblxuICAgIHRoaXMubWVtYmVyTm9kZT8uY2hpbGRPYmplY3RzLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgIGlmIChub2RlIGluc3RhbmNlb2YgTWVtYmVyT2JqZWN0KSB7XG4gICAgICAgIGlmIChub2RlLmNoZWNrQnVzaW5lc3NTdGF0ZUlzQWN0aXZlKCkpIHtcbiAgICAgICAgICBpZiAobm9kZS5uYW1lID09PSBuYW1lKSB7XG4gICAgICAgICAgICBpc1JlcGVhdCA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gaXNSZXBlYXQ7XG4gIH1cblxuICBwdWJsaWMgY2hlY2tOYW1lUmVwZWF0X1BsYXRlKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGxldCBpc1JlcGVhdCA9IGZhbHNlO1xuXG4gICAgdGhpcy5wbGF0ZU5vZGU/LmNoaWxkT2JqZWN0cy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICBpZiAobm9kZSBpbnN0YW5jZW9mIFBsYXRlT2JqZWN0KSB7XG4gICAgICAgIGlmIChub2RlLmNoZWNrQnVzaW5lc3NTdGF0ZUlzQWN0aXZlKCkpIHtcbiAgICAgICAgICBpZiAobm9kZS5uYW1lID09PSBuYW1lKSB7XG4gICAgICAgICAgICBpc1JlcGVhdCA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gaXNSZXBlYXQ7XG4gIH1cblxuICBwdWJsaWMgY2hlY2tOYW1lUmVwZWF0X0dydXAobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgbGV0IGlzUmVwZWF0ID0gZmFsc2U7XG5cbiAgICB0aGlzLmdydXBOb2RlPy5jaGlsZE9iamVjdHMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgaWYgKG5vZGUgaW5zdGFuY2VvZiBHcnVwT2JqZWN0KSB7XG4gICAgICAgIGlmIChub2RlLmNoZWNrQnVzaW5lc3NTdGF0ZUlzQWN0aXZlKCkpIHtcbiAgICAgICAgICBpZiAobm9kZS5uYW1lID09PSBuYW1lKSB7XG4gICAgICAgICAgICBpc1JlcGVhdCA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gaXNSZXBlYXQ7XG4gIH1cblxuICBwdWJsaWMgY2hlY2tOYW1lUmVwZWF0X1BHcnVwKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGxldCBpc1JlcGVhdCA9IGZhbHNlO1xuXG4gICAgdGhpcy5wR3J1cE5vZGU/LmNoaWxkT2JqZWN0cy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICBpZiAobm9kZSBpbnN0YW5jZW9mIFBHcnVwT2JqZWN0KSB7XG4gICAgICAgIGlmIChub2RlLmNoZWNrQnVzaW5lc3NTdGF0ZUlzQWN0aXZlKCkpIHtcbiAgICAgICAgICBpZiAobm9kZS5uYW1lID09PSBuYW1lKSB7XG4gICAgICAgICAgICBpc1JlcGVhdCA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gaXNSZXBlYXQ7XG4gIH1cblxuICAvLyBwdWJsaWMgY2hlY2tOb2RlQ2hpbGROYW1lUmVwZWF0KFxuICAvLyAgIHRyZWVOb2RlOiBEZXNpZ25CYXNlT2JqZWN0LFxuICAvLyAgIG5hbWU6IHN0cmluZ1xuICAvLyApOiBib29sZWFuIHtcbiAgLy8gICBsZXQgaXNSZXBlYXQgPSBmYWxzZTtcblxuICAvLyAgIHRyZWVOb2RlPy5jaGlsZE9iamVjdHMuZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgLy8gICAgIGlmIChjaGlsZCBpbnN0YW5jZW9mIERlc2lnbkJhc2VPYmplY3QpIHtcbiAgLy8gICAgICAgaWYgKGNoaWxkLmNoZWNrQnVzaW5lc3NTdGF0ZUlzQWN0aXZlKCkpIHtcbiAgLy8gICAgICAgICBpZiAoY2hpbGQubmFtZSA9PT0gbmFtZSkge1xuICAvLyAgICAgICAgICAgaXNSZXBlYXQgPSB0cnVlO1xuICAvLyAgICAgICAgICAgcmV0dXJuO1xuICAvLyAgICAgICAgIH1cbiAgLy8gICAgICAgfVxuICAvLyAgICAgfVxuICAvLyAgIH0pO1xuXG4gIC8vICAgcmV0dXJuIGlzUmVwZWF0O1xuICAvLyB9XG5cbiAgcHVibGljIGNoZWNrTm9kZUNoaWxkTmFtZVJlcGVhdChcbiAgICAgIG1hcDogTWFwPHN0cmluZywgYW55PixcbiAgICAgIG5hbWU6IHN0cmluZ1xuICAgICk6IGJvb2xlYW4ge1xuICAgICAgbGV0IGlzUmVwZWF0ID0gZmFsc2U7XG4gICAgICBsZXQgb2JqID0gbWFwLmdldChuYW1lKTtcbiAgICAgIGlmKG9iaiAmJiBvYmogaW5zdGFuY2VvZiBEZXNpZ25CYXNlT2JqZWN0ICYmIG9iai5jaGVja0J1c2luZXNzU3RhdGVJc0FjdGl2ZSgpKSB7XG4gICAgICAgIGlzUmVwZWF0ID0gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGlzUmVwZWF0O1xuICAgIH1cblxuICBjaGVja05hbWVSZXBlYXRfSm9pbnRPYmplY3QoXG4gICAgdGFyZ2V0TmFtZTogc3RyaW5nLFxuICAgIGpvaW50PzogSm9pbnRPYmplY3RcbiAgKTogYm9vbGVhbiB7XG4gICAgbGV0IGlzUmVwZWF0ID0gZmFsc2U7XG5cbiAgICBjb25zb2xlLmxvZyhcImNoZWNrTmFtZVJlcGVhdF9Kb2ludE9iamVjdFwiKTtcbiAgICB0aGlzLmpvaW50Tm9kZT8uY2hpbGRPYmplY3RzLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgIGxldCBybyA9IG5vZGU7XG4gICAgICBpZiAocm8gaW5zdGFuY2VvZiBKb2ludE9iamVjdCkge1xuICAgICAgICBpZiAocm8uY2hlY2tCdXNpbmVzc1N0YXRlSXNBY3RpdmUoKSkge1xuICAgICAgICAgIGlmIChqb2ludCkge1xuICAgICAgICAgICAgaWYgKHJvLmlkICE9PSBqb2ludC5pZCkge1xuICAgICAgICAgICAgICBpZiAocm8ubmFtZSA9PT0gdGFyZ2V0TmFtZSkge1xuICAgICAgICAgICAgICAgIGlzUmVwZWF0ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHJvLm5hbWUgPT09IHRhcmdldE5hbWUpIHtcbiAgICAgICAgICAgICAgaXNSZXBlYXQgPSB0cnVlO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gaXNSZXBlYXQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQVVBO0FBQUE7QUF1QkE7QUFBQTtBQXRCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBOztBQVFBO0FBTkE7QUFBQTtBQUNBO0FBQ0E7Ozs7QUFNQTtBQUFBO0FBQ0E7QUFHQTtBQUNBOztBQUdBO0FBQ0E7Ozs7QUFFQTtBQUFBO0FBQ0E7QUFDQTs7OztBQUVBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTs7OztBQUtBO0FBQ0E7Ozs7QUFFQTtBQUFBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBOzs7QUFJQTtBQUNBOzs7O0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTs7O0FBSUE7QUFDQTs7OztBQUVBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUFNQTtBQUNBOzs7O0FBRUE7QUFBQTtBQUVBO0FBRUE7QUFDQTtBQUlBO0FBQ0E7Ozs7QUFRQTtBQUNBOzs7O0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7Ozs7QUFRQTtBQUNBOzs7O0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7Ozs7QUFRQTtBQUNBOzs7O0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTs7O0FBT0E7QUFDQTs7OztBQUVBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7OztBQU9BO0FBQ0E7Ozs7QUFFQTtBQUFBO0FBQ0E7QUFDQTtBQUNBOzs7QUFPQTtBQUNBOzs7O0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTs7OztBQUtBO0FBQ0E7Ozs7QUFFQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTs7Ozs7QUFNQTtBQUNBOzs7O0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTs7O0FBT0E7QUFDQTs7OztBQUVBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7OztBQU9BO0FBQ0E7Ozs7QUFTQTtBQUdBO0FBQUE7QUFBQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBRUE7O0FBR0E7QUFDQTtBQU9BO0FBR0E7QUFBQTtBQUFBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBOztBQUlBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFFQTs7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFLQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUVBO0FBQ0E7QUFDQTs7QUFHQTs7QUFFQTtBQU9BO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBOztBQUdBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBOztBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FBSUE7QUFFQTtBQUNBO0FBRUE7O0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUFJQTtBQUVBO0FBQ0E7QUFFQTs7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQUlBO0FBRUE7QUFDQTtBQUVBOztBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FBSUE7QUFFQTtBQUNBO0FBRUE7O0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUFJQTtBQUVBO0FBQ0E7QUFzQkE7QUFJQTtBQUNBO0FBQ0E7QUFDQTs7QUFHQTtBQUNBO0FBRUE7O0FBSUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FBS0E7QUFFQTtBQUNBO0FBQ0E7QUFBQTtBQTlpQkE7O0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./packages/caeDesign/src/gsDevFx/managers/caeRenderObjectTreeManager.ts\n");
3946
+ eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\"), __webpack_require__(/*! gs-bim-air */ \"./node_modules/gs-bim-air/lib/BimAir.umd.min.js\"), __webpack_require__(/*! ../objects/caeObjects/jointObject */ \"./packages/caeDesign/src/gsDevFx/objects/caeObjects/jointObject.ts\"), __webpack_require__(/*! gs-ceec-design */ \"./packages/ceecDesign/src/index.ts\"), __webpack_require__(/*! gs-ceec-design */ \"./packages/ceecDesign/src/index.ts\"), __webpack_require__(/*! ../objects/caeObjects/memberObject */ \"./packages/caeDesign/src/gsDevFx/objects/caeObjects/memberObject.ts\"), __webpack_require__(/*! ../objects/caeObjects/plateObject */ \"./packages/caeDesign/src/gsDevFx/objects/caeObjects/plateObject.ts\"), __webpack_require__(/*! ../objects/caeObjects/grupObject */ \"./packages/caeDesign/src/gsDevFx/objects/caeObjects/grupObject.ts\"), __webpack_require__(/*! ../objects/caeObjects/pGrupObject */ \"./packages/caeDesign/src/gsDevFx/objects/caeObjects/pGrupObject.ts\")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, tslib_1, gs_bim_air_1, jointObject_1, gs_ceec_design_1, gs_ceec_design_2, memberObject_1, plateObject_1, grupObject_1, pGrupObject_1) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.CAERenderObjectTreeManager = void 0;\n var CAERenderObjectTreeManager = function (_super) {\n tslib_1.__extends(CAERenderObjectTreeManager, _super);\n function CAERenderObjectTreeManager(process) {\n var _this = _super.call(this, process) || this;\n _this._jointNode = null;\n _this._memberNode = null;\n _this._plateNode = null;\n _this._sectionInsNode = null;\n _this._grupNode = null;\n _this._pGrupNode = null;\n _this._pretreatmemtNode = null;\n _this._postResultNode = null;\n _this._plGrupNode = null;\n _this._pileNode = null;\n _this._optionNode = null;\n _this._sacinpNode = null;\n _this._saestateNode = null;\n _this._tempNode = null;\n return _this;\n }\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"process\", {\n get: function get() {\n return this._process;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"rootNode\", {\n get: function get() {\n var root = this.process.taskManager.currentTask.workRenderObject;\n if (root && !this.process.renderObjects.get(root.no)) {\n return null;\n }\n return root;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"modelNode\", {\n get: function get() {\n return this.process.findCaeObjectByNameInChildObject(this.rootNode, \"模型\");\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"optionNode\", {\n get: function get() {\n if (this.rootNode) {\n if (this.modelNode) {\n this._optionNode = this.process.findCaeObjectByNameInChildObject(this.modelNode, \"配置数据\");\n if (!this._optionNode) {\n var ro = new gs_bim_air_1.Longan.RenderObject();\n ro.name = \"配置数据\";\n this.process.addRenderObject(this.modelNode, ro);\n }\n }\n }\n return this._optionNode;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"sacinpNode\", {\n get: function get() {\n if (this.optionNode) {\n this._sacinpNode = this.process.findCaeObjectByNameInChildObject(this.optionNode, \"模型配置数据\");\n if (!this._sacinpNode) {\n var ro = new gs_bim_air_1.Longan.RenderObject();\n ro.name = \"模型配置数据\";\n this.process.addRenderObject(this.optionNode, ro);\n }\n }\n return this._sacinpNode;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"seastateNode\", {\n get: function get() {\n if (this.optionNode) {\n this._saestateNode = this.process.findCaeObjectByNameInChildObject(this.optionNode, \"海况配置数据\");\n if (!this._saestateNode) {\n var ro = new gs_bim_air_1.Longan.RenderObject();\n ro.name = \"海况配置数据\";\n this.process.addRenderObject(this.optionNode, ro);\n }\n }\n return this._saestateNode;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"tempNode\", {\n get: function get() {\n if (this.rootNode) {\n if (this.modelNode) {\n var jiheRO = this.process.findCaeObjectByNameInChildObject(this.modelNode, \"几何\");\n if (jiheRO) {\n this._tempNode = this.process.findCaeObjectByNameInChildObject(jiheRO, \"临时节点\");\n if (!this._tempNode) {\n var tempNode = new gs_ceec_design_1.DesignBaseObject();\n tempNode.name = \"临时节点\";\n this.process.addRenderObject(jiheRO, tempNode);\n this._tempNode = tempNode;\n }\n }\n }\n }\n return this._tempNode;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"jointNode\", {\n get: function get() {\n if (this.rootNode) {\n if (this.modelNode) {\n var jiheRO = this.process.findCaeObjectByNameInChildObject(this.modelNode, \"几何\");\n if (jiheRO) {\n this._jointNode = this.process.findCaeObjectByNameInChildObject(jiheRO, \"点\");\n }\n }\n }\n return this._jointNode;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"memberNode\", {\n get: function get() {\n if (this.rootNode) {\n if (this.modelNode) {\n var jiheRO = this.process.findCaeObjectByNameInChildObject(this.modelNode, \"几何\");\n if (jiheRO) {\n this._memberNode = this.process.findCaeObjectByNameInChildObject(jiheRO, \"杆件\");\n }\n }\n }\n return this._memberNode;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"plateNode\", {\n get: function get() {\n if (this.rootNode) {\n if (this.modelNode) {\n var jiheRO = this.process.findCaeObjectByNameInChildObject(this.modelNode, \"几何\");\n if (jiheRO) {\n this._plateNode = this.process.findCaeObjectByNameInChildObject(jiheRO, \"板\");\n }\n }\n }\n return this._plateNode;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"sectionInsNode\", {\n get: function get() {\n if (this.rootNode) {\n if (this.modelNode) {\n this._sectionInsNode = this.process.findCaeObjectByNameInChildObject(this.modelNode, \"截面实例库\");\n }\n }\n return this._sectionInsNode;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"grupNode\", {\n get: function get() {\n if (this.rootNode) {\n if (this.modelNode) {\n this._grupNode = this.process.findCaeObjectByNameInChildObject(this.modelNode, \"杆件截面组\");\n }\n }\n return this._grupNode;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"pGrupNode\", {\n get: function get() {\n if (this.rootNode) {\n if (this.modelNode) {\n this._pGrupNode = this.process.findCaeObjectByNameInChildObject(this.modelNode, \"板截面组\");\n }\n }\n return this._pGrupNode;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"plGrupNode\", {\n get: function get() {\n if (this.rootNode) {\n if (this.modelNode) {\n this._plGrupNode = this.process.findCaeObjectByNameInChildObject(this.modelNode, \"桩截面组\");\n if (!this._plGrupNode) {\n var ro = new gs_ceec_design_1.DesignBaseObject();\n ro.businessState = gs_ceec_design_2.BusinessState.Living;\n ro.name = \"桩截面组\";\n this.process.addRenderObject(this.modelNode, ro);\n this._plGrupNode = ro;\n }\n }\n }\n return this._plGrupNode;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"pileNode\", {\n get: function get() {\n if (this.rootNode) {\n if (this.modelNode) {\n var jiheRO = this.process.findCaeObjectByNameInChildObject(this.modelNode, \"几何\");\n if (jiheRO) {\n this._pileNode = this.process.findCaeObjectByNameInChildObject(this.modelNode.childObjects[0], \"桩\");\n if (!this._pileNode) {\n var ro = new gs_ceec_design_1.DesignBaseObject();\n ro.businessState = gs_ceec_design_2.BusinessState.Living;\n ro.name = \"桩\";\n this.process.addRenderObject(this.modelNode.childObjects[0], ro);\n this._pileNode = ro;\n }\n }\n }\n }\n return this._pileNode;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"postResultNode\", {\n get: function get() {\n if (this.rootNode) {\n if (this.modelNode) {\n this._postResultNode = this.process.findCaeObjectByNameInChildObject(this.modelNode, \"后处理计算结果\");\n }\n }\n return this._postResultNode;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CAERenderObjectTreeManager.prototype, \"pretreatmentNode\", {\n get: function get() {\n if (this.rootNode) {\n if (this.modelNode) {\n this._pretreatmemtNode = this.process.findCaeObjectByNameInChildObject(this.modelNode, \"前处理可视化辅助\");\n }\n }\n return this._pretreatmemtNode;\n },\n enumerable: false,\n configurable: true\n });\n CAERenderObjectTreeManager.prototype.nameAscendingOrder = function (name, count, map) {\n if (map === void 0) {\n map = this.process.nameMapJoint;\n }\n var nameList = new Array();\n for (var i = 0; i < count; i++) {\n var jointName = this.ascendingOrder(name, i, map);\n nameList.push(jointName);\n name = jointName;\n }\n return nameList;\n };\n CAERenderObjectTreeManager.prototype.ascendingOrder = function (startName, index, map) {\n if (map === void 0) {\n map = this.process.nameMapJoint;\n }\n var name = startName;\n var newName = startName;\n if (index === 0) {\n index++;\n } else {\n newName = this.stringAscendingOrder(name, name.length - 1);\n }\n var isRepeat = false;\n isRepeat = this.checkNodeChildNameRepeat(map, newName);\n if (!isRepeat) {\n return newName;\n } else {\n return this.ascendingOrder(newName, index, map);\n }\n };\n CAERenderObjectTreeManager.prototype.stringAscendingOrder = function (str, index) {\n if (index >= 0) {\n var char = str[index];\n var result = this.charAscendingOrder(char);\n var newString = \"\";\n for (var i = 0; i < str.length; i++) {\n if (i === index) {\n newString += result.char;\n } else {\n newString += str[i];\n }\n }\n if (result.carryFlag) {\n return this.stringAscendingOrder(newString, index - 1);\n } else {\n return newString;\n }\n } else if (index < 0) {\n var newString = \"1\";\n for (var i = 0; i < str.length; i++) {\n newString += str[i];\n }\n return newString;\n }\n };\n CAERenderObjectTreeManager.prototype.charAscendingOrder = function (char) {\n var carryFlag = false;\n var asc = char.charCodeAt(0);\n if (asc === 57) {\n asc = 65;\n } else if (asc === 90) {\n asc = 48;\n carryFlag = true;\n } else {\n asc += 1;\n }\n char = String.fromCharCode(asc);\n return {\n carryFlag: carryFlag,\n char: char\n };\n };\n CAERenderObjectTreeManager.prototype.checkNameRepeat_Joint = function (name) {\n var _a;\n var isRepeat = false;\n (_a = this.jointNode) === null || _a === void 0 ? void 0 : _a.childObjects.forEach(function (node) {\n if (node instanceof jointObject_1.JointObject) {\n if (node.checkBusinessStateIsActive()) {\n if (node.name === name) {\n isRepeat = true;\n return;\n }\n }\n }\n });\n return isRepeat;\n };\n CAERenderObjectTreeManager.prototype.checkNameRepeat_Member = function (name) {\n var _a;\n var isRepeat = false;\n (_a = this.memberNode) === null || _a === void 0 ? void 0 : _a.childObjects.forEach(function (node) {\n if (node instanceof memberObject_1.MemberObject) {\n if (node.checkBusinessStateIsActive()) {\n if (node.name === name) {\n isRepeat = true;\n return;\n }\n }\n }\n });\n return isRepeat;\n };\n CAERenderObjectTreeManager.prototype.checkNameRepeat_Plate = function (name) {\n var _a;\n var isRepeat = false;\n (_a = this.plateNode) === null || _a === void 0 ? void 0 : _a.childObjects.forEach(function (node) {\n if (node instanceof plateObject_1.PlateObject) {\n if (node.checkBusinessStateIsActive()) {\n if (node.name === name) {\n isRepeat = true;\n return;\n }\n }\n }\n });\n return isRepeat;\n };\n CAERenderObjectTreeManager.prototype.checkNameRepeat_Grup = function (name) {\n var _a;\n var isRepeat = false;\n (_a = this.grupNode) === null || _a === void 0 ? void 0 : _a.childObjects.forEach(function (node) {\n if (node instanceof grupObject_1.GrupObject) {\n if (node.checkBusinessStateIsActive()) {\n if (node.name === name) {\n isRepeat = true;\n return;\n }\n }\n }\n });\n return isRepeat;\n };\n CAERenderObjectTreeManager.prototype.checkNameRepeat_PGrup = function (name) {\n var _a;\n var isRepeat = false;\n (_a = this.pGrupNode) === null || _a === void 0 ? void 0 : _a.childObjects.forEach(function (node) {\n if (node instanceof pGrupObject_1.PGrupObject) {\n if (node.checkBusinessStateIsActive()) {\n if (node.name === name) {\n isRepeat = true;\n return;\n }\n }\n }\n });\n return isRepeat;\n };\n CAERenderObjectTreeManager.prototype.checkNodeChildNameRepeat = function (map, name) {\n var isRepeat = false;\n var obj = map.get(name);\n if (obj && obj instanceof gs_ceec_design_1.DesignBaseObject && obj.checkBusinessStateIsActive()) {\n isRepeat = true;\n }\n return isRepeat;\n };\n CAERenderObjectTreeManager.prototype.checkNameRepeat_JointObject = function (targetName, joint) {\n var _a;\n var isRepeat = false;\n console.log(\"checkNameRepeat_JointObject\");\n (_a = this.jointNode) === null || _a === void 0 ? void 0 : _a.childObjects.forEach(function (node) {\n var ro = node;\n if (ro instanceof jointObject_1.JointObject) {\n if (ro.checkBusinessStateIsActive()) {\n if (joint) {\n if (ro.id !== joint.id) {\n if (ro.name === targetName) {\n isRepeat = true;\n return;\n }\n }\n } else {\n if (ro.name === targetName) {\n isRepeat = true;\n return;\n }\n }\n }\n }\n });\n return isRepeat;\n };\n return CAERenderObjectTreeManager;\n }(gs_bim_air_1.Longan.ProcessManagerBase);\n exports.CAERenderObjectTreeManager = CAERenderObjectTreeManager;\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL2dzRGV2RngvbWFuYWdlcnMvY2FlUmVuZGVyT2JqZWN0VHJlZU1hbmFnZXIudHMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9bbmFtZV0vLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL2dzRGV2RngvbWFuYWdlcnMvY2FlUmVuZGVyT2JqZWN0VHJlZU1hbmFnZXIudHM/ZWE2MyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb25nYW4gfSBmcm9tIFwiZ3MtYmltLWFpclwiO1xuaW1wb3J0IHsgSm9pbnRPYmplY3QgfSBmcm9tIFwiLi4vb2JqZWN0cy9jYWVPYmplY3RzL2pvaW50T2JqZWN0XCI7XG5pbXBvcnQgeyBEZXNpZ25CYXNlT2JqZWN0IH0gZnJvbSBcImdzLWNlZWMtZGVzaWduXCI7XG5pbXBvcnQgeyBCdXNpbmVzc1N0YXRlIH0gZnJvbSBcImdzLWNlZWMtZGVzaWduXCI7XG5pbXBvcnQgeyBNZW1iZXJPYmplY3QgfSBmcm9tIFwiLi4vb2JqZWN0cy9jYWVPYmplY3RzL21lbWJlck9iamVjdFwiO1xuaW1wb3J0IHsgUGxhdGVPYmplY3QgfSBmcm9tIFwiLi4vb2JqZWN0cy9jYWVPYmplY3RzL3BsYXRlT2JqZWN0XCI7XG5pbXBvcnQgeyBHcnVwT2JqZWN0IH0gZnJvbSBcIi4uL29iamVjdHMvY2FlT2JqZWN0cy9ncnVwT2JqZWN0XCI7XG5pbXBvcnQgeyBQcm9jZXNzIH0gZnJvbSBcIi4uL3Byb2Nlc3NcIjtcbmltcG9ydCB7IFBHcnVwT2JqZWN0IH0gZnJvbSBcIi4uL29iamVjdHMvY2FlT2JqZWN0cy9wR3J1cE9iamVjdFwiO1xuXG5leHBvcnQgY2xhc3MgQ0FFUmVuZGVyT2JqZWN0VHJlZU1hbmFnZXIgZXh0ZW5kcyBMb25nYW4uUHJvY2Vzc01hbmFnZXJCYXNlIHtcbiAgcHJpdmF0ZSBfam9pbnROb2RlOiBEZXNpZ25CYXNlT2JqZWN0ID0gbnVsbDtcbiAgcHJpdmF0ZSBfbWVtYmVyTm9kZTogRGVzaWduQmFzZU9iamVjdCA9IG51bGw7XG4gIHByaXZhdGUgX3BsYXRlTm9kZTogRGVzaWduQmFzZU9iamVjdCA9IG51bGw7XG4gIHByaXZhdGUgX3NlY3Rpb25JbnNOb2RlOiBEZXNpZ25CYXNlT2JqZWN0ID0gbnVsbDtcbiAgcHJpdmF0ZSBfZ3J1cE5vZGU6IERlc2lnbkJhc2VPYmplY3QgPSBudWxsO1xuICBwcml2YXRlIF9wR3J1cE5vZGU6IERlc2lnbkJhc2VPYmplY3QgPSBudWxsO1xuICBwcml2YXRlIF9wcmV0cmVhdG1lbXROb2RlOiBEZXNpZ25CYXNlT2JqZWN0ID0gbnVsbDtcbiAgcHJpdmF0ZSBfcG9zdFJlc3VsdE5vZGU6IERlc2lnbkJhc2VPYmplY3QgPSBudWxsO1xuXG4gIHByaXZhdGUgX3BsR3J1cE5vZGU6IERlc2lnbkJhc2VPYmplY3QgPSBudWxsO1xuICBwcml2YXRlIF9waWxlTm9kZTogRGVzaWduQmFzZU9iamVjdCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfb3B0aW9uTm9kZTogRGVzaWduQmFzZU9iamVjdCA9IG51bGw7XG4gIHByaXZhdGUgX3NhY2lucE5vZGU6IERlc2lnbkJhc2VPYmplY3QgPSBudWxsO1xuICBwcml2YXRlIF9zYWVzdGF0ZU5vZGU6IERlc2lnbkJhc2VPYmplY3QgPSBudWxsO1xuXG4gIHByaXZhdGUgX3RlbXBOb2RlOiBEZXNpZ25CYXNlT2JqZWN0ID0gbnVsbDtcblxuICBwdWJsaWMgZ2V0IHByb2Nlc3MoKTogUHJvY2VzcyB7XG4gICAgcmV0dXJuIHRoaXMuX3Byb2Nlc3MgYXMgUHJvY2VzcztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByb2Nlc3M6IFByb2Nlc3MpIHtcbiAgICBzdXBlcihwcm9jZXNzKTtcbiAgfVxuXG4gIGdldCByb290Tm9kZSgpOiBEZXNpZ25CYXNlT2JqZWN0IHtcbiAgICBsZXQgcm9vdCA9IHRoaXMucHJvY2Vzcy50YXNrTWFuYWdlci5jdXJyZW50VGFza1xuICAgICAgLndvcmtSZW5kZXJPYmplY3QgYXMgRGVzaWduQmFzZU9iamVjdDtcblxuICAgIGlmIChyb290ICYmICF0aGlzLnByb2Nlc3MucmVuZGVyT2JqZWN0cy5nZXQocm9vdC5ubykpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiByb290O1xuICB9XG5cbiAgZ2V0IG1vZGVsTm9kZSgpOiBEZXNpZ25CYXNlT2JqZWN0IHtcbiAgICByZXR1cm4gdGhpcy5wcm9jZXNzLmZpbmRDYWVPYmplY3RCeU5hbWVJbkNoaWxkT2JqZWN0KHRoaXMucm9vdE5vZGUsIFwi5qih5Z6LXCIpO1xuICB9XG5cbiAgZ2V0IG9wdGlvbk5vZGUoKTogRGVzaWduQmFzZU9iamVjdCB7XG4gICAgaWYgKHRoaXMucm9vdE5vZGUpIHtcbiAgICAgIGlmICh0aGlzLm1vZGVsTm9kZSkge1xuICAgICAgICB0aGlzLl9vcHRpb25Ob2RlID0gdGhpcy5wcm9jZXNzLmZpbmRDYWVPYmplY3RCeU5hbWVJbkNoaWxkT2JqZWN0KFxuICAgICAgICAgIHRoaXMubW9kZWxOb2RlLFxuICAgICAgICAgIFwi6YWN572u5pWw5o2uXCJcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKCF0aGlzLl9vcHRpb25Ob2RlKSB7XG4gICAgICAgICAgbGV0IHJvID0gbmV3IExvbmdhbi5SZW5kZXJPYmplY3QoKTtcbiAgICAgICAgICByby5uYW1lID0gXCLphY3nva7mlbDmja5cIjtcbiAgICAgICAgICB0aGlzLnByb2Nlc3MuYWRkUmVuZGVyT2JqZWN0KHRoaXMubW9kZWxOb2RlLCBybyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fb3B0aW9uTm9kZTtcbiAgfVxuXG4gIGdldCBzYWNpbnBOb2RlKCk6IERlc2lnbkJhc2VPYmplY3Qge1xuICAgIGlmICh0aGlzLm9wdGlvbk5vZGUpIHtcbiAgICAgIHRoaXMuX3NhY2lucE5vZGUgPSB0aGlzLnByb2Nlc3MuZmluZENhZU9iamVjdEJ5TmFtZUluQ2hpbGRPYmplY3QoXG4gICAgICAgIHRoaXMub3B0aW9uTm9kZSxcbiAgICAgICAgXCLmqKHlnovphY3nva7mlbDmja5cIlxuICAgICAgKTtcbiAgICAgIGlmICghdGhpcy5fc2FjaW5wTm9kZSkge1xuICAgICAgICBsZXQgcm8gPSBuZXcgTG9uZ2FuLlJlbmRlck9iamVjdCgpO1xuICAgICAgICByby5uYW1lID0gXCLmqKHlnovphY3nva7mlbDmja5cIjtcbiAgICAgICAgdGhpcy5wcm9jZXNzLmFkZFJlbmRlck9iamVjdCh0aGlzLm9wdGlvbk5vZGUsIHJvKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fc2FjaW5wTm9kZTtcbiAgfVxuXG4gIGdldCBzZWFzdGF0ZU5vZGUoKTogRGVzaWduQmFzZU9iamVjdCB7XG4gICAgaWYgKHRoaXMub3B0aW9uTm9kZSkge1xuICAgICAgdGhpcy5fc2Flc3RhdGVOb2RlID0gdGhpcy5wcm9jZXNzLmZpbmRDYWVPYmplY3RCeU5hbWVJbkNoaWxkT2JqZWN0KFxuICAgICAgICB0aGlzLm9wdGlvbk5vZGUsXG4gICAgICAgIFwi5rW35Ya16YWN572u5pWw5o2uXCJcbiAgICAgICk7XG4gICAgICBpZiAoIXRoaXMuX3NhZXN0YXRlTm9kZSkge1xuICAgICAgICBsZXQgcm8gPSBuZXcgTG9uZ2FuLlJlbmRlck9iamVjdCgpO1xuICAgICAgICByby5uYW1lID0gXCLmtbflhrXphY3nva7mlbDmja5cIjtcbiAgICAgICAgdGhpcy5wcm9jZXNzLmFkZFJlbmRlck9iamVjdCh0aGlzLm9wdGlvbk5vZGUsIHJvKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fc2Flc3RhdGVOb2RlO1xuICB9XG5cbiAgZ2V0IHRlbXBOb2RlKCk6IERlc2lnbkJhc2VPYmplY3Qge1xuICAgIGlmICh0aGlzLnJvb3ROb2RlKSB7XG4gICAgICBpZiAodGhpcy5tb2RlbE5vZGUpIHtcbiAgICAgICAgbGV0IGppaGVSTyA9IHRoaXMucHJvY2Vzcy5maW5kQ2FlT2JqZWN0QnlOYW1lSW5DaGlsZE9iamVjdChcbiAgICAgICAgICB0aGlzLm1vZGVsTm9kZSxcbiAgICAgICAgICBcIuWHoOS9lVwiXG4gICAgICAgICk7XG4gICAgICAgIGlmIChqaWhlUk8pIHtcbiAgICAgICAgICB0aGlzLl90ZW1wTm9kZSA9IHRoaXMucHJvY2Vzcy5maW5kQ2FlT2JqZWN0QnlOYW1lSW5DaGlsZE9iamVjdChcbiAgICAgICAgICAgIGppaGVSTyxcbiAgICAgICAgICAgIFwi5Li05pe26IqC54K5XCJcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKCF0aGlzLl90ZW1wTm9kZSkge1xuICAgICAgICAgICAgbGV0IHRlbXBOb2RlID0gbmV3IERlc2lnbkJhc2VPYmplY3QoKTtcbiAgICAgICAgICAgIHRlbXBOb2RlLm5hbWUgPSBcIuS4tOaXtuiKgueCuVwiO1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzLmFkZFJlbmRlck9iamVjdChqaWhlUk8sIHRlbXBOb2RlKTtcbiAgICAgICAgICAgIHRoaXMuX3RlbXBOb2RlID0gdGVtcE5vZGU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX3RlbXBOb2RlO1xuICB9XG5cbiAgZ2V0IGpvaW50Tm9kZSgpOiBEZXNpZ25CYXNlT2JqZWN0IHtcbiAgICAvLyDpobnnm65cbiAgICBpZiAodGhpcy5yb290Tm9kZSkge1xuICAgICAgLy8g5qih5Z6LXG4gICAgICBpZiAodGhpcy5tb2RlbE5vZGUpIHtcbiAgICAgICAgbGV0IGppaGVSTyA9IHRoaXMucHJvY2Vzcy5maW5kQ2FlT2JqZWN0QnlOYW1lSW5DaGlsZE9iamVjdChcbiAgICAgICAgICB0aGlzLm1vZGVsTm9kZSxcbiAgICAgICAgICBcIuWHoOS9lVwiXG4gICAgICAgICk7XG4gICAgICAgIGlmIChqaWhlUk8pIHtcbiAgICAgICAgICB0aGlzLl9qb2ludE5vZGUgPSB0aGlzLnByb2Nlc3MuZmluZENhZU9iamVjdEJ5TmFtZUluQ2hpbGRPYmplY3QoXG4gICAgICAgICAgICBqaWhlUk8sXG4gICAgICAgICAgICBcIueCuVwiXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9qb2ludE5vZGU7XG4gIH1cblxuICBnZXQgbWVtYmVyTm9kZSgpOiBEZXNpZ25CYXNlT2JqZWN0IHtcbiAgICBpZiAodGhpcy5yb290Tm9kZSkge1xuICAgICAgaWYgKHRoaXMubW9kZWxOb2RlKSB7XG4gICAgICAgIGxldCBqaWhlUk8gPSB0aGlzLnByb2Nlc3MuZmluZENhZU9iamVjdEJ5TmFtZUluQ2hpbGRPYmplY3QoXG4gICAgICAgICAgdGhpcy5tb2RlbE5vZGUsXG4gICAgICAgICAgXCLlh6DkvZVcIlxuICAgICAgICApO1xuICAgICAgICBpZiAoamloZVJPKSB7XG4gICAgICAgICAgdGhpcy5fbWVtYmVyTm9kZSA9IHRoaXMucHJvY2Vzcy5maW5kQ2FlT2JqZWN0QnlOYW1lSW5DaGlsZE9iamVjdChcbiAgICAgICAgICAgIGppaGVSTyxcbiAgICAgICAgICAgIFwi5p2G5Lu2XCJcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX21lbWJlck5vZGU7XG4gIH1cblxuICBnZXQgcGxhdGVOb2RlKCk6IERlc2lnbkJhc2VPYmplY3Qge1xuICAgIGlmICh0aGlzLnJvb3ROb2RlKSB7XG4gICAgICBpZiAodGhpcy5tb2RlbE5vZGUpIHtcbiAgICAgICAgbGV0IGppaGVSTyA9IHRoaXMucHJvY2Vzcy5maW5kQ2FlT2JqZWN0QnlOYW1lSW5DaGlsZE9iamVjdChcbiAgICAgICAgICB0aGlzLm1vZGVsTm9kZSxcbiAgICAgICAgICBcIuWHoOS9lVwiXG4gICAgICAgICk7XG4gICAgICAgIGlmIChqaWhlUk8pIHtcbiAgICAgICAgICB0aGlzLl9wbGF0ZU5vZGUgPSB0aGlzLnByb2Nlc3MuZmluZENhZU9iamVjdEJ5TmFtZUluQ2hpbGRPYmplY3QoXG4gICAgICAgICAgICBqaWhlUk8sXG4gICAgICAgICAgICBcIuadv1wiXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9wbGF0ZU5vZGU7XG4gIH1cblxuICBnZXQgc2VjdGlvbkluc05vZGUoKTogRGVzaWduQmFzZU9iamVjdCB7XG4gICAgaWYgKHRoaXMucm9vdE5vZGUpIHtcbiAgICAgIGlmICh0aGlzLm1vZGVsTm9kZSkge1xuICAgICAgICB0aGlzLl9zZWN0aW9uSW5zTm9kZSA9IHRoaXMucHJvY2Vzcy5maW5kQ2FlT2JqZWN0QnlOYW1lSW5DaGlsZE9iamVjdChcbiAgICAgICAgICB0aGlzLm1vZGVsTm9kZSxcbiAgICAgICAgICBcIuaIqumdouWunuS+i+W6k1wiXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX3NlY3Rpb25JbnNOb2RlO1xuICB9XG5cbiAgZ2V0IGdydXBOb2RlKCk6IERlc2lnbkJhc2VPYmplY3Qge1xuICAgIGlmICh0aGlzLnJvb3ROb2RlKSB7XG4gICAgICBpZiAodGhpcy5tb2RlbE5vZGUpIHtcbiAgICAgICAgdGhpcy5fZ3J1cE5vZGUgPSB0aGlzLnByb2Nlc3MuZmluZENhZU9iamVjdEJ5TmFtZUluQ2hpbGRPYmplY3QoXG4gICAgICAgICAgdGhpcy5tb2RlbE5vZGUsXG4gICAgICAgICAgXCLmnYbku7bmiKrpnaLnu4RcIlxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9ncnVwTm9kZTtcbiAgfVxuXG4gIGdldCBwR3J1cE5vZGUoKTogRGVzaWduQmFzZU9iamVjdCB7XG4gICAgaWYgKHRoaXMucm9vdE5vZGUpIHtcbiAgICAgIGlmICh0aGlzLm1vZGVsTm9kZSkge1xuICAgICAgICB0aGlzLl9wR3J1cE5vZGUgPSB0aGlzLnByb2Nlc3MuZmluZENhZU9iamVjdEJ5TmFtZUluQ2hpbGRPYmplY3QoXG4gICAgICAgICAgdGhpcy5tb2RlbE5vZGUsXG4gICAgICAgICAgXCLmnb/miKrpnaLnu4RcIlxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9wR3J1cE5vZGU7XG4gIH1cblxuICBnZXQgcGxHcnVwTm9kZSgpOiBEZXNpZ25CYXNlT2JqZWN0IHtcbiAgICBpZiAodGhpcy5yb290Tm9kZSkge1xuICAgICAgaWYgKHRoaXMubW9kZWxOb2RlKSB7XG4gICAgICAgIHRoaXMuX3BsR3J1cE5vZGUgPSB0aGlzLnByb2Nlc3MuZmluZENhZU9iamVjdEJ5TmFtZUluQ2hpbGRPYmplY3QoXG4gICAgICAgICAgdGhpcy5tb2RlbE5vZGUsXG4gICAgICAgICAgXCLmoanmiKrpnaLnu4RcIlxuICAgICAgICApO1xuXG4gICAgICAgIGlmICghdGhpcy5fcGxHcnVwTm9kZSkge1xuICAgICAgICAgIGxldCBybyA9IG5ldyBEZXNpZ25CYXNlT2JqZWN0KCk7XG4gICAgICAgICAgcm8uYnVzaW5lc3NTdGF0ZSA9IEJ1c2luZXNzU3RhdGUuTGl2aW5nO1xuICAgICAgICAgIHJvLm5hbWUgPSBcIuahqeaIqumdoue7hFwiO1xuXG4gICAgICAgICAgdGhpcy5wcm9jZXNzLmFkZFJlbmRlck9iamVjdCh0aGlzLm1vZGVsTm9kZSwgcm8pO1xuICAgICAgICAgIHRoaXMuX3BsR3J1cE5vZGUgPSBybztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9wbEdydXBOb2RlO1xuICB9XG5cbiAgZ2V0IHBpbGVOb2RlKCk6IERlc2lnbkJhc2VPYmplY3Qge1xuICAgIGlmICh0aGlzLnJvb3ROb2RlKSB7XG4gICAgICBpZiAodGhpcy5tb2RlbE5vZGUpIHtcbiAgICAgICAgbGV0IGppaGVSTyA9IHRoaXMucHJvY2Vzcy5maW5kQ2FlT2JqZWN0QnlOYW1lSW5DaGlsZE9iamVjdChcbiAgICAgICAgICB0aGlzLm1vZGVsTm9kZSxcbiAgICAgICAgICBcIuWHoOS9lVwiXG4gICAgICAgICk7XG4gICAgICAgIGlmIChqaWhlUk8pIHtcbiAgICAgICAgICB0aGlzLl9waWxlTm9kZSA9IHRoaXMucHJvY2Vzcy5maW5kQ2FlT2JqZWN0QnlOYW1lSW5DaGlsZE9iamVjdChcbiAgICAgICAgICAgIHRoaXMubW9kZWxOb2RlLmNoaWxkT2JqZWN0c1swXSBhcyBEZXNpZ25CYXNlT2JqZWN0LFxuICAgICAgICAgICAgXCLmoalcIlxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAoIXRoaXMuX3BpbGVOb2RlKSB7XG4gICAgICAgICAgICBsZXQgcm8gPSBuZXcgRGVzaWduQmFzZU9iamVjdCgpO1xuICAgICAgICAgICAgcm8uYnVzaW5lc3NTdGF0ZSA9IEJ1c2luZXNzU3RhdGUuTGl2aW5nO1xuICAgICAgICAgICAgcm8ubmFtZSA9IFwi5qGpXCI7XG5cbiAgICAgICAgICAgIHRoaXMucHJvY2Vzcy5hZGRSZW5kZXJPYmplY3QodGhpcy5tb2RlbE5vZGUuY2hpbGRPYmplY3RzWzBdLCBybyk7XG4gICAgICAgICAgICB0aGlzLl9waWxlTm9kZSA9IHJvO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9waWxlTm9kZTtcbiAgfVxuXG4gIGdldCBwb3N0UmVzdWx0Tm9kZSgpOiBEZXNpZ25CYXNlT2JqZWN0IHtcbiAgICBpZiAodGhpcy5yb290Tm9kZSkge1xuICAgICAgaWYgKHRoaXMubW9kZWxOb2RlKSB7XG4gICAgICAgIHRoaXMuX3Bvc3RSZXN1bHROb2RlID0gdGhpcy5wcm9jZXNzLmZpbmRDYWVPYmplY3RCeU5hbWVJbkNoaWxkT2JqZWN0KFxuICAgICAgICAgIHRoaXMubW9kZWxOb2RlLFxuICAgICAgICAgIFwi5ZCO5aSE55CG6K6h566X57uT5p6cXCJcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fcG9zdFJlc3VsdE5vZGU7XG4gIH1cblxuICBnZXQgcHJldHJlYXRtZW50Tm9kZSgpOiBEZXNpZ25CYXNlT2JqZWN0IHtcbiAgICBpZiAodGhpcy5yb290Tm9kZSkge1xuICAgICAgaWYgKHRoaXMubW9kZWxOb2RlKSB7XG4gICAgICAgIHRoaXMuX3ByZXRyZWF0bWVtdE5vZGUgPSB0aGlzLnByb2Nlc3MuZmluZENhZU9iamVjdEJ5TmFtZUluQ2hpbGRPYmplY3QoXG4gICAgICAgICAgdGhpcy5tb2RlbE5vZGUsXG4gICAgICAgICAgXCLliY3lpITnkIblj6/op4bljJbovoXliqlcIlxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9wcmV0cmVhdG1lbXROb2RlO1xuICB9XG5cbiAgLyoqXG4gICAqIOeCueWQjeWNh+W6j1xuICAgKiBAcGFyYW0gbmFtZSDotbflp4vngrnlkI1cbiAgICogQHBhcmFtIGNvdW50IOWNh+W6j+aVsOmHj1xuICAgKiBAcGFyYW0gbmFtZVR5cGUgKDA6am9pbnQsIDE6bWVtYmVyLCAyOnBsYXRlLCAzOmdydXAsIDQ6cGdydXAsIDU6c2VjdElucylcbiAgICogQHJldHVybnNcbiAgICovXG4gIG5hbWVBc2NlbmRpbmdPcmRlcihcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgY291bnQ6IG51bWJlcixcbiAgICBtYXA6IE1hcDxzdHJpbmcsIGFueT4gPSB0aGlzLnByb2Nlc3MubmFtZU1hcEpvaW50XG4gICk6IHN0cmluZ1tdIHtcbiAgICBsZXQgbmFtZUxpc3QgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgICBsZXQgam9pbnROYW1lID0gdGhpcy5hc2NlbmRpbmdPcmRlcihuYW1lLCBpLCBtYXApO1xuICAgICAgbmFtZUxpc3QucHVzaChqb2ludE5hbWUpO1xuXG4gICAgICBuYW1lID0gam9pbnROYW1lO1xuICAgIH1cblxuICAgIHJldHVybiBuYW1lTGlzdDtcbiAgfVxuXG4gIC8qKlxuICAgKiDnqbrpl7Tngrks5p2G5Lu2LOadvyzlkI3lrZfljYfluo9cbiAgICogQHBhcmFtIHN0YXJ0TmFtZSDliJ3lp4vlkI1cbiAgICogQHJldHVybnMg5paw55qEbmFtZVxuICAgKi9cbiAgcHJpdmF0ZSBhc2NlbmRpbmdPcmRlcihcbiAgICBzdGFydE5hbWU6IHN0cmluZyxcbiAgICBpbmRleDogbnVtYmVyLFxuICAgIG1hcCA9IHRoaXMucHJvY2Vzcy5uYW1lTWFwSm9pbnRcbiAgKTogc3RyaW5nIHtcbiAgICBsZXQgbmFtZSA9IHN0YXJ0TmFtZTtcblxuICAgIGxldCBuZXdOYW1lID0gc3RhcnROYW1lO1xuICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgaW5kZXgrKztcbiAgICB9IGVsc2Uge1xuICAgICAgLy8g5Y2H5bqPXG4gICAgICBuZXdOYW1lID0gdGhpcy5zdHJpbmdBc2NlbmRpbmdPcmRlcihuYW1lLCBuYW1lLmxlbmd0aCAtIDEpO1xuICAgIH1cblxuICAgIC8vIOafpemHjVxuICAgIGxldCBpc1JlcGVhdCA9IGZhbHNlO1xuICAgIGlzUmVwZWF0ID0gdGhpcy5jaGVja05vZGVDaGlsZE5hbWVSZXBlYXQobWFwLCBuZXdOYW1lKTtcblxuICAgIC8vIOmAmui/h1xuICAgIGlmICghaXNSZXBlYXQpIHtcbiAgICAgIHJldHVybiBuZXdOYW1lO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyDkuI3pgJrov4cs6YCS5b2SLlxuICAgICAgcmV0dXJuIHRoaXMuYXNjZW5kaW5nT3JkZXIobmV3TmFtZSwgaW5kZXgsIG1hcCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN0cmluZ0FzY2VuZGluZ09yZGVyKHN0cjogc3RyaW5nLCBpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgbGV0IGNoYXIgPSBzdHJbaW5kZXhdO1xuICAgICAgbGV0IHJlc3VsdCA9IHRoaXMuY2hhckFzY2VuZGluZ09yZGVyKGNoYXIpO1xuXG4gICAgICBsZXQgbmV3U3RyaW5nID0gXCJcIjtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChpID09PSBpbmRleCkge1xuICAgICAgICAgIG5ld1N0cmluZyArPSByZXN1bHQuY2hhcjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBuZXdTdHJpbmcgKz0gc3RyW2ldO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIOiLpeaciei/m+S9jS5cbiAgICAgIGlmIChyZXN1bHQuY2FycnlGbGFnKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0cmluZ0FzY2VuZGluZ09yZGVyKG5ld1N0cmluZywgaW5kZXggLSAxKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBuZXdTdHJpbmc7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChpbmRleCA8IDApIHtcbiAgICAgIC8vIOS+i+WmgjpGRuWNh+W6j+WPmOaIkDEwMDtcbiAgICAgIGxldCBuZXdTdHJpbmcgPSBcIjFcIjtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIG5ld1N0cmluZyArPSBzdHJbaV07XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBuZXdTdHJpbmc7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIOWtl+espisxXG4gICAqIEBwYXJhbSBjaGFyIOWtl+esplxuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgcHJpdmF0ZSBjaGFyQXNjZW5kaW5nT3JkZXIoY2hhcjogc3RyaW5nKSB7XG4gICAgLy8g566A5Y2V5Yqg5rOVLlxuICAgIGxldCBjYXJyeUZsYWcgPSBmYWxzZTtcbiAgICBsZXQgYXNjID0gY2hhci5jaGFyQ29kZUF0KDApO1xuXG4gICAgLy8g5aaC5p6c5pivOSzliJnlj5hBLOWmguaenOaYr1os5YiZ5Y+YMCzkuJTov5sxLlxuICAgIGlmIChhc2MgPT09IDU3KSB7XG4gICAgICBhc2MgPSA2NTtcbiAgICB9IGVsc2UgaWYgKGFzYyA9PT0gOTApIHtcbiAgICAgIGFzYyA9IDQ4O1xuICAgICAgLy8g6L+b5L2N5qCH5b+X5L2NLlxuICAgICAgY2FycnlGbGFnID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gKzEuXG4gICAgICBhc2MgKz0gMTtcbiAgICB9XG5cbiAgICBjaGFyID0gU3RyaW5nLmZyb21DaGFyQ29kZShhc2MpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNhcnJ5RmxhZyxcbiAgICAgIGNoYXIsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBjaGVja05hbWVSZXBlYXRfSm9pbnQobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgbGV0IGlzUmVwZWF0ID0gZmFsc2U7XG5cbiAgICB0aGlzLmpvaW50Tm9kZT8uY2hpbGRPYmplY3RzLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgIGlmIChub2RlIGluc3RhbmNlb2YgSm9pbnRPYmplY3QpIHtcbiAgICAgICAgaWYgKG5vZGUuY2hlY2tCdXNpbmVzc1N0YXRlSXNBY3RpdmUoKSkge1xuICAgICAgICAgIGlmIChub2RlLm5hbWUgPT09IG5hbWUpIHtcbiAgICAgICAgICAgIGlzUmVwZWF0ID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBpc1JlcGVhdDtcbiAgfVxuXG4gIHB1YmxpYyBjaGVja05hbWVSZXBlYXRfTWVtYmVyKG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGxldCBpc1JlcGVhdCA9IGZhbHNlO1xuXG4gICAgdGhpcy5tZW1iZXJOb2RlPy5jaGlsZE9iamVjdHMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgaWYgKG5vZGUgaW5zdGFuY2VvZiBNZW1iZXJPYmplY3QpIHtcbiAgICAgICAgaWYgKG5vZGUuY2hlY2tCdXNpbmVzc1N0YXRlSXNBY3RpdmUoKSkge1xuICAgICAgICAgIGlmIChub2RlLm5hbWUgPT09IG5hbWUpIHtcbiAgICAgICAgICAgIGlzUmVwZWF0ID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBpc1JlcGVhdDtcbiAgfVxuXG4gIHB1YmxpYyBjaGVja05hbWVSZXBlYXRfUGxhdGUobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgbGV0IGlzUmVwZWF0ID0gZmFsc2U7XG5cbiAgICB0aGlzLnBsYXRlTm9kZT8uY2hpbGRPYmplY3RzLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgIGlmIChub2RlIGluc3RhbmNlb2YgUGxhdGVPYmplY3QpIHtcbiAgICAgICAgaWYgKG5vZGUuY2hlY2tCdXNpbmVzc1N0YXRlSXNBY3RpdmUoKSkge1xuICAgICAgICAgIGlmIChub2RlLm5hbWUgPT09IG5hbWUpIHtcbiAgICAgICAgICAgIGlzUmVwZWF0ID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBpc1JlcGVhdDtcbiAgfVxuXG4gIHB1YmxpYyBjaGVja05hbWVSZXBlYXRfR3J1cChuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBsZXQgaXNSZXBlYXQgPSBmYWxzZTtcblxuICAgIHRoaXMuZ3J1cE5vZGU/LmNoaWxkT2JqZWN0cy5mb3JFYWNoKChub2RlKSA9PiB7XG4gICAgICBpZiAobm9kZSBpbnN0YW5jZW9mIEdydXBPYmplY3QpIHtcbiAgICAgICAgaWYgKG5vZGUuY2hlY2tCdXNpbmVzc1N0YXRlSXNBY3RpdmUoKSkge1xuICAgICAgICAgIGlmIChub2RlLm5hbWUgPT09IG5hbWUpIHtcbiAgICAgICAgICAgIGlzUmVwZWF0ID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBpc1JlcGVhdDtcbiAgfVxuXG4gIHB1YmxpYyBjaGVja05hbWVSZXBlYXRfUEdydXAobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgbGV0IGlzUmVwZWF0ID0gZmFsc2U7XG5cbiAgICB0aGlzLnBHcnVwTm9kZT8uY2hpbGRPYmplY3RzLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgIGlmIChub2RlIGluc3RhbmNlb2YgUEdydXBPYmplY3QpIHtcbiAgICAgICAgaWYgKG5vZGUuY2hlY2tCdXNpbmVzc1N0YXRlSXNBY3RpdmUoKSkge1xuICAgICAgICAgIGlmIChub2RlLm5hbWUgPT09IG5hbWUpIHtcbiAgICAgICAgICAgIGlzUmVwZWF0ID0gdHJ1ZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBpc1JlcGVhdDtcbiAgfVxuXG4gIC8vIHB1YmxpYyBjaGVja05vZGVDaGlsZE5hbWVSZXBlYXQoXG4gIC8vICAgdHJlZU5vZGU6IERlc2lnbkJhc2VPYmplY3QsXG4gIC8vICAgbmFtZTogc3RyaW5nXG4gIC8vICk6IGJvb2xlYW4ge1xuICAvLyAgIGxldCBpc1JlcGVhdCA9IGZhbHNlO1xuXG4gIC8vICAgdHJlZU5vZGU/LmNoaWxkT2JqZWN0cy5mb3JFYWNoKChjaGlsZCkgPT4ge1xuICAvLyAgICAgaWYgKGNoaWxkIGluc3RhbmNlb2YgRGVzaWduQmFzZU9iamVjdCkge1xuICAvLyAgICAgICBpZiAoY2hpbGQuY2hlY2tCdXNpbmVzc1N0YXRlSXNBY3RpdmUoKSkge1xuICAvLyAgICAgICAgIGlmIChjaGlsZC5uYW1lID09PSBuYW1lKSB7XG4gIC8vICAgICAgICAgICBpc1JlcGVhdCA9IHRydWU7XG4gIC8vICAgICAgICAgICByZXR1cm47XG4gIC8vICAgICAgICAgfVxuICAvLyAgICAgICB9XG4gIC8vICAgICB9XG4gIC8vICAgfSk7XG5cbiAgLy8gICByZXR1cm4gaXNSZXBlYXQ7XG4gIC8vIH1cblxuICBwdWJsaWMgY2hlY2tOb2RlQ2hpbGROYW1lUmVwZWF0KFxuICAgIG1hcDogTWFwPHN0cmluZywgYW55PixcbiAgICBuYW1lOiBzdHJpbmdcbiAgKTogYm9vbGVhbiB7XG4gICAgbGV0IGlzUmVwZWF0ID0gZmFsc2U7XG4gICAgbGV0IG9iaiA9IG1hcC5nZXQobmFtZSk7XG4gICAgaWYgKFxuICAgICAgb2JqICYmXG4gICAgICBvYmogaW5zdGFuY2VvZiBEZXNpZ25CYXNlT2JqZWN0ICYmXG4gICAgICBvYmouY2hlY2tCdXNpbmVzc1N0YXRlSXNBY3RpdmUoKVxuICAgICkge1xuICAgICAgaXNSZXBlYXQgPSB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBpc1JlcGVhdDtcbiAgfVxuXG4gIGNoZWNrTmFtZVJlcGVhdF9Kb2ludE9iamVjdChcbiAgICB0YXJnZXROYW1lOiBzdHJpbmcsXG4gICAgam9pbnQ/OiBKb2ludE9iamVjdFxuICApOiBib29sZWFuIHtcbiAgICBsZXQgaXNSZXBlYXQgPSBmYWxzZTtcblxuICAgIGNvbnNvbGUubG9nKFwiY2hlY2tOYW1lUmVwZWF0X0pvaW50T2JqZWN0XCIpO1xuICAgIHRoaXMuam9pbnROb2RlPy5jaGlsZE9iamVjdHMuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgbGV0IHJvID0gbm9kZTtcbiAgICAgIGlmIChybyBpbnN0YW5jZW9mIEpvaW50T2JqZWN0KSB7XG4gICAgICAgIGlmIChyby5jaGVja0J1c2luZXNzU3RhdGVJc0FjdGl2ZSgpKSB7XG4gICAgICAgICAgaWYgKGpvaW50KSB7XG4gICAgICAgICAgICBpZiAocm8uaWQgIT09IGpvaW50LmlkKSB7XG4gICAgICAgICAgICAgIGlmIChyby5uYW1lID09PSB0YXJnZXROYW1lKSB7XG4gICAgICAgICAgICAgICAgaXNSZXBlYXQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAocm8ubmFtZSA9PT0gdGFyZ2V0TmFtZSkge1xuICAgICAgICAgICAgICBpc1JlcGVhdCA9IHRydWU7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBpc1JlcGVhdDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBVUE7QUFBQTtBQXVCQTtBQUFBO0FBdEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7O0FBUUE7QUFOQTtBQUFBO0FBQ0E7QUFDQTs7OztBQU1BO0FBQUE7QUFDQTtBQUdBO0FBQ0E7O0FBR0E7QUFDQTs7OztBQUVBO0FBQUE7QUFDQTtBQUNBOzs7O0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBOzs7O0FBS0E7QUFDQTs7OztBQUVBO0FBQUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7OztBQUlBO0FBQ0E7Ozs7QUFFQTtBQUFBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBOzs7QUFJQTtBQUNBOzs7O0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7OztBQU1BO0FBQ0E7Ozs7QUFFQTtBQUFBO0FBRUE7QUFFQTtBQUNBO0FBSUE7QUFDQTs7OztBQVFBO0FBQ0E7Ozs7QUFFQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTs7OztBQVFBO0FBQ0E7Ozs7QUFFQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTs7OztBQVFBO0FBQ0E7Ozs7QUFFQTtBQUFBO0FBQ0E7QUFDQTtBQUNBOzs7QUFPQTtBQUNBOzs7O0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTs7O0FBT0E7QUFDQTs7OztBQUVBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7OztBQU9BO0FBQ0E7Ozs7QUFFQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBOzs7O0FBS0E7QUFDQTs7OztBQUVBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBOzs7OztBQU1BO0FBQ0E7Ozs7QUFFQTtBQUFBO0FBQ0E7QUFDQTtBQUNBOzs7QUFPQTtBQUNBOzs7O0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTs7O0FBT0E7QUFDQTs7OztBQVNBO0FBR0E7QUFBQTtBQUFBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFFQTs7QUFHQTtBQUNBO0FBT0E7QUFHQTtBQUFBO0FBQUE7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7O0FBSUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUVBOztBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUtBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBRUE7QUFDQTtBQUNBOztBQUdBOztBQUVBO0FBT0E7QUFFQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7O0FBR0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7O0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUFJQTtBQUVBO0FBQ0E7QUFFQTs7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQUlBO0FBRUE7QUFDQTtBQUVBOztBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7O0FBSUE7QUFFQTtBQUNBO0FBRUE7O0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUFJQTtBQUVBO0FBQ0E7QUFFQTs7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7OztBQUlBO0FBRUE7QUFDQTtBQXNCQTtBQUlBO0FBQ0E7QUFDQTtBQUtBOztBQUdBO0FBQ0E7QUFFQTs7QUFJQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7QUFLQTtBQUVBO0FBQ0E7QUFDQTtBQUFBO0FBbGpCQTs7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./packages/caeDesign/src/gsDevFx/managers/caeRenderObjectTreeManager.ts\n");
3947
3947
 
3948
3948
  /***/ }),
3949
3949
 
@@ -4031,7 +4031,7 @@ eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPAC
4031
4031
  /*! no static exports found */
4032
4032
  /***/ (function(module, exports, __webpack_require__) {
4033
4033
 
4034
- eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\"), __webpack_require__(/*! gs-bim-air */ \"./node_modules/gs-bim-air/lib/BimAir.umd.min.js\"), __webpack_require__(/*! ../../../api/renderObjectService */ \"./packages/caeDesign/src/api/renderObjectService.ts\"), __webpack_require__(/*! element-ui */ \"./node_modules/element-ui/lib/element-ui.common.js\"), __webpack_require__(/*! ../../../viewerWrapper/commands/aftertreatment/showBendingMoment/commandShowBendingMoment */ \"./packages/caeDesign/src/viewerWrapper/commands/aftertreatment/showBendingMoment/commandShowBendingMoment.ts\"), __webpack_require__(/*! ../../../viewerWrapper/commands/aftertreatment/postResultCloud/commandPostResultCloud */ \"./packages/caeDesign/src/viewerWrapper/commands/aftertreatment/postResultCloud/commandPostResultCloud.ts\"), __webpack_require__(/*! ../../../viewerWrapper/commands/aftertreatment/distortion/commandDistortion */ \"./packages/caeDesign/src/viewerWrapper/commands/aftertreatment/distortion/commandDistortion.ts\"), __webpack_require__(/*! ../../../viewerWrapper/commands/aftertreatment/showDeflectedShape/commandDeflectedShape */ \"./packages/caeDesign/src/viewerWrapper/commands/aftertreatment/showDeflectedShape/commandDeflectedShape.ts\"), __webpack_require__(/*! ../../../viewerWrapper/commands/aftertreatment/showShipImpact/commandShowShipImpact */ \"./packages/caeDesign/src/viewerWrapper/commands/aftertreatment/showShipImpact/commandShowShipImpact.ts\"), __webpack_require__(/*! ../../../viewerWrapper/commands/aftertreatment/showJointCanUC/commandShowJointCanUC */ \"./packages/caeDesign/src/viewerWrapper/commands/aftertreatment/showJointCanUC/commandShowJointCanUC.ts\"), __webpack_require__(/*! ../../../viewerWrapper/commands/aftertreatment/showFatigue/commandShowFatigue */ \"./packages/caeDesign/src/viewerWrapper/commands/aftertreatment/showFatigue/commandShowFatigue.ts\")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, tslib_1, gs_bim_air_1, renderObjectService_1, element_ui_1, commandShowBendingMoment_1, commandPostResultCloud_1, commandDistortion_1, commandDeflectedShape_1, commandShowShipImpact_1, commandShowJointCanUC_1, commandShowFatigue_1) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.PostInterfaceManager = void 0;\n renderObjectService_1 = tslib_1.__importDefault(renderObjectService_1);\n commandShowBendingMoment_1 = tslib_1.__importDefault(commandShowBendingMoment_1);\n commandPostResultCloud_1 = tslib_1.__importDefault(commandPostResultCloud_1);\n commandDistortion_1 = tslib_1.__importDefault(commandDistortion_1);\n commandDeflectedShape_1 = tslib_1.__importDefault(commandDeflectedShape_1);\n commandShowShipImpact_1 = tslib_1.__importDefault(commandShowShipImpact_1);\n commandShowJointCanUC_1 = tslib_1.__importDefault(commandShowJointCanUC_1);\n commandShowFatigue_1 = tslib_1.__importDefault(commandShowFatigue_1);\n var PostInterfaceManager = function (_super) {\n tslib_1.__extends(PostInterfaceManager, _super);\n function PostInterfaceManager() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.originIsHide = false;\n _this.event_bendingMoment = new gs_bim_air_1.Longan.List();\n _this.event_ucDiagram = new gs_bim_air_1.Longan.List();\n _this.event_postResult = new gs_bim_air_1.Longan.List();\n _this.event_distortion = new gs_bim_air_1.Longan.List();\n _this.event_deflectedShape = new gs_bim_air_1.Longan.List();\n _this.event_shipImpact = new gs_bim_air_1.Longan.List();\n _this.event_jointCanUC = new gs_bim_air_1.Longan.List();\n _this.event_fatigueData = new gs_bim_air_1.Longan.List();\n _this.bendingMoment = null;\n _this.getFinish_bendingMoment = false;\n _this.tip_bendingMoment = false;\n _this.requested_bendingMoment = null;\n _this.message_bendingMoment = null;\n _this.ucDiagram = null;\n _this.getFinish_ucDiagram = false;\n _this.tip_ucDiagram = false;\n _this.message_ucDiagram = null;\n _this.postResult = null;\n _this.post_jointCanSummaryUC = null;\n _this.getFinish_postResult = false;\n _this.tip_postResult = false;\n _this.message_postResult = null;\n _this.distortion = null;\n _this.getFinish_distortion = false;\n _this.tip_distortion = false;\n _this.requested_distortion = null;\n _this.message_distortion = null;\n _this.massPostResult = null;\n _this.modeShapePostResult = null;\n _this.getFinish_deflectedShape = false;\n _this.tip_deflectedShape = false;\n _this.requested_deflectedShape = null;\n _this.message_deflectedShape = null;\n _this.shipImpact = null;\n _this.shipImpactFactor = null;\n _this.getFinish_shipImpact = false;\n _this.tip_shipImpact = false;\n _this.requested_shipImpact = null;\n _this.message_shipImpact = null;\n _this.jointCanUC = null;\n _this.jointCanSummaryUC = null;\n _this.getFinish_jointCanUC = false;\n _this.tip_jointCanUC = false;\n _this.message_jointCanUC = null;\n _this.fatigueData = null;\n _this.fatigueData_inter = null;\n _this.getFinish_fatigue = false;\n _this.tip_fatigueData = false;\n _this.message_fatigueData = null;\n _this.active_bendingMoment = false;\n _this.active_postResult = false;\n _this.active_distortion = false;\n _this.active_massPostResult = false;\n _this.active_shipImpact = false;\n _this.active_jointCanUC = false;\n _this.active_fatigueData = false;\n return _this;\n }\n PostInterfaceManager.prototype.requestDBData = function () {\n var _this = this;\n this.bendingMoment = null;\n this.getFinish_bendingMoment = false;\n this.tip_bendingMoment = false;\n this.requested_bendingMoment = null;\n this.message_bendingMoment = null;\n this.ucDiagram = null;\n this.getFinish_ucDiagram = false;\n this.tip_ucDiagram = false;\n this.message_ucDiagram = null;\n this.postResult = null;\n this.post_jointCanSummaryUC = null;\n this.getFinish_postResult = false;\n this.tip_postResult = false;\n this.message_postResult = null;\n this.distortion = null;\n this.getFinish_distortion = false;\n this.tip_distortion = false;\n this.requested_distortion = null;\n this.message_distortion = null;\n this.massPostResult = null;\n this.modeShapePostResult = null;\n this.getFinish_deflectedShape = false;\n this.tip_deflectedShape = false;\n this.requested_deflectedShape = null;\n this.message_deflectedShape = null;\n this.shipImpact = null;\n this.shipImpactFactor = null;\n this.getFinish_shipImpact = false;\n this.tip_shipImpact = false;\n this.requested_shipImpact = null;\n this.message_shipImpact = null;\n this.jointCanUC = null;\n this.jointCanSummaryUC = null;\n this.getFinish_jointCanUC = false;\n this.tip_jointCanUC = false;\n this.message_jointCanUC = null;\n this.fatigueData = null;\n this.fatigueData_inter = null;\n this.getFinish_fatigue = false;\n this.tip_fatigueData = false;\n this.message_fatigueData = null;\n var viewer = this.viewer;\n var projectId = viewer.structureTreeManager.rootNode.obj.renderObject.id;\n {\n var table = \"R_POSTMEMBERRESULTS\";\n var group = \"LoadConditionName\";\n var columns = [\"MemberName\", \"MemberID\", \"Distance\", \"MomentUnits\", \"DistanceUnits\", \"YYBendingMoment\", \"ZZBendingMoment\", \"YShear\", \"ZShear\", \"AxialLoad\", \"AxialUC\", \"YYBendingUC\", \"ZZBendingUC\", \"TotalShearUC\", \"MaxUC\", \"ForceUnits\", \"AXStress\", \"YYBendingStress\", \"ZZBendingStress\", \"YShearStress\", \"ZShearStress\"];\n var promises = [];\n var promise1 = renderObjectService_1.default.postData(projectId, table, columns, group).then(function (result) {\n _this.event_bendingMoment.forEach(function (item) {\n item();\n });\n _this.event_ucDiagram.forEach(function (item) {\n item();\n });\n _this.getFinish_bendingMoment = true;\n _this.getFinish_ucDiagram = true;\n if (_this.tip_bendingMoment) {\n if (_this.message_bendingMoment) {\n _this.message_bendingMoment.close();\n _this.message_bendingMoment = null;\n }\n element_ui_1.Message.info(\"内力图后处理数据请求完成.\");\n _this.tip_bendingMoment = false;\n }\n if (result) {\n _this.bendingMoment = result.groups;\n if (_this.requested_bendingMoment) {\n _this.requested_bendingMoment();\n _this.requested_bendingMoment = null;\n }\n }\n if (_this.tip_ucDiagram) {\n if (_this.message_ucDiagram) {\n _this.message_ucDiagram.close();\n _this.message_ucDiagram = null;\n }\n element_ui_1.Message.info(\"UC图后处理数据请求完成.\");\n _this.tip_ucDiagram = false;\n }\n if (result) {\n _this.ucDiagram = result.groups;\n }\n });\n var table1 = \"ElementUC\";\n var columns1 = [\"MemberName\", \"LoadCondition\"];\n var promise2 = renderObjectService_1.default.postData(projectId, table1, columns1, \"\").then(function (result) {\n if (result) {\n _this.post_jointCanSummaryUC = result.rows;\n }\n });\n promises.push(promise1);\n promises.push(promise2);\n Promise.all(promises).then(function () {\n _this.event_postResult.forEach(function (item) {\n item();\n });\n _this.getFinish_postResult = true;\n if (_this.tip_postResult) {\n if (_this.message_postResult) {\n _this.message_postResult.close();\n _this.message_postResult = null;\n }\n element_ui_1.Message.info(\"杆件结果后处理数据请求完成.\");\n _this.tip_postResult = false;\n }\n });\n }\n {\n var table = \"R_POSTJOINTDISPLACEMENTRESULTS\";\n var group = \"LoadConditionName\";\n var columns = [\"JointID\", \"DeflectionTranslationUnits\", \"DeflectionRotationalUnits\", \"DeflectionX\", \"DeflectionY\", \"DeflectionZ\", \"RotationX\", \"RotationY\", \"RotationZ\"];\n renderObjectService_1.default.postData(projectId, table, columns, group).then(function (result) {\n _this.event_distortion.forEach(function (item) {\n item();\n });\n _this.getFinish_distortion = true;\n if (_this.tip_distortion) {\n if (_this.message_distortion) {\n _this.message_distortion.close();\n _this.message_distortion = null;\n }\n element_ui_1.Message.info(\"结构变形后处理数据请求完成.\");\n _this.tip_distortion = false;\n }\n if (result) {\n _this.distortion = result.groups;\n if (_this.requested_distortion) {\n _this.requested_distortion();\n _this.requested_distortion = null;\n }\n }\n });\n }\n {\n var table = \"R_FREQANDGENMASS\";\n var columns = [\"ModeID\", \"FREQ\", \"GenMass\", \"Eigenvalue\", \"Period\"];\n renderObjectService_1.default.postData(projectId, table, columns, \"\").then(function (result) {\n var e_1, _a;\n if (result) {\n _this.massPostResult = result.rows;\n var columns2 = [\"jointID\", \"DOF\", \"ModeDOFNo\"];\n try {\n for (var _b = tslib_1.__values(Object.keys(result.rows)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var i = _c.value;\n if (result.rows[i]) {\n var modeID = result.rows[i].ModeID;\n columns2.push(\"ModeShape\" + modeID);\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n var table2 = \"R_ModeShape\";\n var gruop = \"jointID\";\n renderObjectService_1.default.postData(projectId, table2, columns2, gruop).then(function (result) {\n _this.event_deflectedShape.forEach(function (item) {\n item();\n });\n _this.getFinish_deflectedShape = true;\n if (_this.tip_deflectedShape) {\n if (_this.message_deflectedShape) {\n _this.message_deflectedShape.close();\n _this.message_deflectedShape = null;\n }\n element_ui_1.Message.info(\"模态动画后台数据请求完成.\");\n _this.tip_deflectedShape = false;\n }\n if (result) {\n _this.modeShapePostResult = result.groups;\n if (_this.requested_deflectedShape) {\n _this.requested_deflectedShape();\n _this.requested_deflectedShape = null;\n }\n }\n });\n } else {\n _this.event_deflectedShape.forEach(function (item) {\n item();\n });\n _this.getFinish_deflectedShape = true;\n if (_this.tip_deflectedShape) {\n if (_this.message_deflectedShape) {\n _this.message_deflectedShape.close();\n _this.message_deflectedShape = null;\n }\n element_ui_1.Message.info(\"模态动画后台数据请求完成.\");\n _this.tip_deflectedShape = false;\n }\n }\n });\n }\n {\n var table = \"R_COLLAPSEDEFLECTIONSANDREACTIONFORCE\";\n var group = \"INC\";\n var columns = [\"INC\", \"JointName\", \"LoadCase\", \"DX\", \"DY\", \"DZ\", \"RX\", \"RY\", \"RZ\", \"MemberName\", \"MemPlasticRatio\"];\n var promises = [];\n var promise1 = renderObjectService_1.default.postData(projectId, table, columns, group).then(function (result) {\n if (result) {\n _this.shipImpact = result.groups;\n }\n });\n var table1 = \"R_COLLAPSEANALYSISLOG\";\n var columns1 = [\"INC\", \"LoadCase\", \"LoadFactor\"];\n var promise2 = renderObjectService_1.default.postData(projectId, table1, columns1, group).then(function (result) {\n if (result) {\n _this.shipImpactFactor = result.groups;\n }\n });\n promises.push(promise1);\n promises.push(promise2);\n Promise.all(promises).then(function () {\n _this.event_shipImpact.forEach(function (item) {\n item();\n });\n _this.getFinish_shipImpact = true;\n if (_this.tip_shipImpact) {\n if (_this.message_shipImpact) {\n _this.message_shipImpact.close();\n _this.message_shipImpact = null;\n }\n element_ui_1.Message.info(\"倒塌分析后处理数据请求完成.\");\n _this.tip_shipImpact = false;\n }\n if (_this.requested_shipImpact) {\n _this.requested_shipImpact();\n _this.requested_shipImpact = null;\n }\n });\n }\n {\n var table = \"JointCanUC\";\n var group = \"LoadCase\";\n var columns = [\"CommonJointName\", \"ChordJointName\", \"BraceJointName\"];\n var promises = [];\n var promise1 = renderObjectService_1.default.postData(projectId, table, columns, group).then(function (result) {\n if (result) {\n _this.jointCanUC = result.groups;\n }\n });\n var table1 = \"JointCanSummaryUC\";\n var columns1 = [\"JointName\", \"OrigLoadUC\", \"SABraceJoint\"];\n var promise2 = renderObjectService_1.default.postData(projectId, table1, columns1, \" \").then(function (result) {\n if (result) {\n _this.jointCanSummaryUC = result.rows;\n }\n });\n promises.push(promise1);\n promises.push(promise2);\n Promise.all(promises).then(function () {\n _this.event_jointCanUC.forEach(function (item) {\n item();\n });\n _this.getFinish_jointCanUC = true;\n if (_this.tip_jointCanUC) {\n if (_this.message_jointCanUC) {\n _this.message_jointCanUC.close();\n _this.message_jointCanUC = null;\n }\n element_ui_1.Message.info(\"节点冲切后处理数据请求完成.\");\n _this.tip_jointCanUC = false;\n }\n });\n }\n {\n var table = \"R_FATIGUEMEMBERDETAIL\";\n var group = \"LoadCase\";\n var columns = [\"JointName\", \"ChordName\", \"BraceName\", \"MemberType\", \"TopDamage\", \"TopLeftDamage\", \"LeftDamage\", \"BottomLeftDamage\", \"BottomDamage\", \"BottomRightDamage\", \"RightDamage\", \"TopRightDamage\"];\n var promises = [];\n var promise1 = renderObjectService_1.default.postData(projectId, table, columns, group).then(function (result) {\n if (result) {\n _this.fatigueData = result.groups;\n }\n });\n var table1 = \"R_INTERMEDIATEMEMBERFATIGUESUMMARY\";\n var columns1 = [\"MemberName\", \"Distance\", \"MaxDamage\", \"FatigueSectionLabel\", \"TopDamage\", \"TopLeftDamage\", \"LeftDamage\", \"BottomLeftDamage\", \"BottomDamage\", \"BottomRightDamage\", \"RightDamage\", \"TopRightDamage\"];\n var promise2 = renderObjectService_1.default.postData(projectId, table1, columns1, \"\").then(function (result) {\n if (result) {\n _this.fatigueData_inter = result.rows;\n }\n });\n promises.push(promise1);\n promises.push(promise2);\n Promise.all(promises).then(function () {\n _this.event_fatigueData.forEach(function (item) {\n item();\n });\n _this.getFinish_fatigue = true;\n if (_this.tip_fatigueData) {\n if (_this.message_fatigueData) {\n _this.message_fatigueData.close();\n _this.message_fatigueData = null;\n }\n element_ui_1.Message.info(\"疲劳损伤后处理数据请求完成.\");\n _this.tip_fatigueData = false;\n }\n });\n }\n };\n PostInterfaceManager.prototype.resetOhterPostResult = function () {\n var commandManager = this.viewer.process.commandManager;\n if (this.active_bendingMoment) {\n var command = commandManager.getCommandByType(\"CommandShowBendingMoment\");\n if (command instanceof commandShowBendingMoment_1.default) {\n command.resetScene();\n }\n }\n if (this.active_postResult) {\n var command = commandManager.getCommandByType(\"CommandPostResultCloud\");\n if (command instanceof commandPostResultCloud_1.default) {\n command.resetScene();\n }\n }\n if (this.active_distortion) {\n var command = commandManager.getCommandByType(\"CommandDistortion\");\n if (command instanceof commandDistortion_1.default) {\n command.resetScene();\n }\n }\n if (this.active_massPostResult) {\n var command = commandManager.getCommandByType(\"CommandDeflectedShape\");\n if (command instanceof commandDeflectedShape_1.default) {\n command.resetScene();\n }\n }\n if (this.active_shipImpact) {\n var command = commandManager.getCommandByType(\"CommandShowShipImpact\");\n if (command instanceof commandShowShipImpact_1.default) {\n command.resetScene();\n }\n }\n if (this.active_jointCanUC) {\n var command = commandManager.getCommandByType(\"CommandShowJointCanUC\");\n if (command instanceof commandShowJointCanUC_1.default) {\n command.resetScene();\n }\n }\n if (this.active_fatigueData) {\n var command = commandManager.getCommandByType(\"CommandShowFatigue\");\n if (command instanceof commandShowFatigue_1.default) {\n command.resetScene();\n }\n }\n };\n return PostInterfaceManager;\n }(gs_bim_air_1.Longan.ViewerManagerBase);\n exports.PostInterfaceManager = PostInterfaceManager;\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL2dzRGV2RngvbWFuYWdlcnMvaW50ZXJmYWNlTWFuYWdlcnMvcG9zdEludGVyZmFjZU1hbmFnZXIudHMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9bbmFtZV0vLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL2dzRGV2RngvbWFuYWdlcnMvaW50ZXJmYWNlTWFuYWdlcnMvcG9zdEludGVyZmFjZU1hbmFnZXIudHM/N2JjOSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb25nYW4gfSBmcm9tIFwiZ3MtYmltLWFpclwiO1xuaW1wb3J0IHJlbmRlck9iamVjdFNlcnZpY2UgZnJvbSBcIi4uLy4uLy4uL2FwaS9yZW5kZXJPYmplY3RTZXJ2aWNlXCI7XG5pbXBvcnQgeyBWaWV3ZXIgfSBmcm9tIFwiLi4vLi4vLi4vdHlwZWRvY0V4cG9ydFwiO1xuaW1wb3J0IHsgTWVzc2FnZSB9IGZyb20gXCJlbGVtZW50LXVpXCI7XG5pbXBvcnQgQ29tbWFuZFNob3dCZW5kaW5nTW9tZW50IGZyb20gXCIuLi8uLi8uLi92aWV3ZXJXcmFwcGVyL2NvbW1hbmRzL2FmdGVydHJlYXRtZW50L3Nob3dCZW5kaW5nTW9tZW50L2NvbW1hbmRTaG93QmVuZGluZ01vbWVudFwiO1xuaW1wb3J0IENvbW1hbmRQb3N0UmVzdWx0Q2xvdWQgZnJvbSBcIi4uLy4uLy4uL3ZpZXdlcldyYXBwZXIvY29tbWFuZHMvYWZ0ZXJ0cmVhdG1lbnQvcG9zdFJlc3VsdENsb3VkL2NvbW1hbmRQb3N0UmVzdWx0Q2xvdWRcIjtcbmltcG9ydCBDb21tYW5kRGlzdG9ydGlvbiBmcm9tIFwiLi4vLi4vLi4vdmlld2VyV3JhcHBlci9jb21tYW5kcy9hZnRlcnRyZWF0bWVudC9kaXN0b3J0aW9uL2NvbW1hbmREaXN0b3J0aW9uXCI7XG5pbXBvcnQgQ29tbWFuZERlZmxlY3RlZFNoYXBlIGZyb20gXCIuLi8uLi8uLi92aWV3ZXJXcmFwcGVyL2NvbW1hbmRzL2FmdGVydHJlYXRtZW50L3Nob3dEZWZsZWN0ZWRTaGFwZS9jb21tYW5kRGVmbGVjdGVkU2hhcGVcIjtcbmltcG9ydCBDb21tYW5kU2hvd1NoaXBJbXBhY3QgZnJvbSBcIi4uLy4uLy4uL3ZpZXdlcldyYXBwZXIvY29tbWFuZHMvYWZ0ZXJ0cmVhdG1lbnQvc2hvd1NoaXBJbXBhY3QvY29tbWFuZFNob3dTaGlwSW1wYWN0XCI7XG5pbXBvcnQgQ29tbWFuZFNob3dKb2ludENhblVDIGZyb20gXCIuLi8uLi8uLi92aWV3ZXJXcmFwcGVyL2NvbW1hbmRzL2FmdGVydHJlYXRtZW50L3Nob3dKb2ludENhblVDL2NvbW1hbmRTaG93Sm9pbnRDYW5VQ1wiO1xuaW1wb3J0IENvbW1hbmRTaG93RmF0aWd1ZSBmcm9tIFwiLi4vLi4vLi4vdmlld2VyV3JhcHBlci9jb21tYW5kcy9hZnRlcnRyZWF0bWVudC9zaG93RmF0aWd1ZS9jb21tYW5kU2hvd0ZhdGlndWVcIjtcbmltcG9ydCB7IFByb2Nlc3MgfSBmcm9tIFwiLi4vLi4vLi4vZ3NEZXZGeC9wcm9jZXNzXCI7XG5pbXBvcnQgeyBDb21tYW5kTWFuYWdlciB9IGZyb20gXCIuLi9jb21tYW5kTWFuYWdlclwiO1xuXG5leHBvcnQgY2xhc3MgUG9zdEludGVyZmFjZU1hbmFnZXIgZXh0ZW5kcyBMb25nYW4uVmlld2VyTWFuYWdlckJhc2Uge1xuICAvLyDljp/nu5PmnoTpnIDopoHpmpDol49cbiAgb3JpZ2luSXNIaWRlID0gZmFsc2U7XG4gIC8vIOWQjuWkhOeQhuivt+axgue7k+adn+S6i+S7ti5cbiAgZXZlbnRfYmVuZGluZ01vbWVudDogTG9uZ2FuLkxpc3Q8KCkgPT4gdm9pZD4gPSBuZXcgTG9uZ2FuLkxpc3Q8KCkgPT4gdm9pZD4oKTtcbiAgZXZlbnRfdWNEaWFncmFtOiBMb25nYW4uTGlzdDwoKSA9PiB2b2lkPiA9IG5ldyBMb25nYW4uTGlzdDwoKSA9PiB2b2lkPigpO1xuICBldmVudF9wb3N0UmVzdWx0OiBMb25nYW4uTGlzdDwoKSA9PiB2b2lkPiA9IG5ldyBMb25nYW4uTGlzdDwoKSA9PiB2b2lkPigpO1xuICBldmVudF9kaXN0b3J0aW9uOiBMb25nYW4uTGlzdDwoKSA9PiB2b2lkPiA9IG5ldyBMb25nYW4uTGlzdDwoKSA9PiB2b2lkPigpO1xuICBldmVudF9kZWZsZWN0ZWRTaGFwZTogTG9uZ2FuLkxpc3Q8KCkgPT4gdm9pZD4gPSBuZXcgTG9uZ2FuLkxpc3Q8KCkgPT4gdm9pZD4oKTtcbiAgZXZlbnRfc2hpcEltcGFjdDogTG9uZ2FuLkxpc3Q8KCkgPT4gdm9pZD4gPSBuZXcgTG9uZ2FuLkxpc3Q8KCkgPT4gdm9pZD4oKTtcbiAgZXZlbnRfam9pbnRDYW5VQzogTG9uZ2FuLkxpc3Q8KCkgPT4gdm9pZD4gPSBuZXcgTG9uZ2FuLkxpc3Q8KCkgPT4gdm9pZD4oKTtcbiAgZXZlbnRfZmF0aWd1ZURhdGE6IExvbmdhbi5MaXN0PCgpID0+IHZvaWQ+ID0gbmV3IExvbmdhbi5MaXN0PCgpID0+IHZvaWQ+KCk7XG5cbiAgLy/lhoXlipvlm75cbiAgYmVuZGluZ01vbWVudCA9IG51bGw7XG4gIGdldEZpbmlzaF9iZW5kaW5nTW9tZW50ID0gZmFsc2U7XG4gIHRpcF9iZW5kaW5nTW9tZW50ID0gZmFsc2U7XG4gIHJlcXVlc3RlZF9iZW5kaW5nTW9tZW50ID0gbnVsbDtcbiAgbWVzc2FnZV9iZW5kaW5nTW9tZW50ID0gbnVsbDtcbiAgLy9VQ+WbvlxuICB1Y0RpYWdyYW0gPSBudWxsO1xuICBnZXRGaW5pc2hfdWNEaWFncmFtID0gZmFsc2U7XG4gIHRpcF91Y0RpYWdyYW0gPSBmYWxzZTtcbiAgbWVzc2FnZV91Y0RpYWdyYW0gPSBudWxsO1xuICAvL+adhuS7tue7k+aenFxuICBwb3N0UmVzdWx0ID0gbnVsbDtcbiAgcG9zdF9qb2ludENhblN1bW1hcnlVQyA9IG51bGw7XG4gIGdldEZpbmlzaF9wb3N0UmVzdWx0ID0gZmFsc2U7XG4gIHRpcF9wb3N0UmVzdWx0ID0gZmFsc2U7XG4gIG1lc3NhZ2VfcG9zdFJlc3VsdCA9IG51bGw7XG4gIC8v57uT5p6E5Y+Y5b2iXG4gIGRpc3RvcnRpb24gPSBudWxsO1xuICBnZXRGaW5pc2hfZGlzdG9ydGlvbiA9IGZhbHNlO1xuICB0aXBfZGlzdG9ydGlvbiA9IGZhbHNlO1xuICByZXF1ZXN0ZWRfZGlzdG9ydGlvbiA9IG51bGw7XG4gIG1lc3NhZ2VfZGlzdG9ydGlvbiA9IG51bGw7XG4gIC8v5qih5oCB5Yqo55S7XG4gIG1hc3NQb3N0UmVzdWx0ID0gbnVsbDtcbiAgbW9kZVNoYXBlUG9zdFJlc3VsdCA9IG51bGw7XG4gIGdldEZpbmlzaF9kZWZsZWN0ZWRTaGFwZSA9IGZhbHNlO1xuICB0aXBfZGVmbGVjdGVkU2hhcGUgPSBmYWxzZTtcbiAgcmVxdWVzdGVkX2RlZmxlY3RlZFNoYXBlID0gbnVsbDtcbiAgbWVzc2FnZV9kZWZsZWN0ZWRTaGFwZSA9IG51bGw7XG4gIC8v5YCS5aGM5YiG5p6QXG4gIHNoaXBJbXBhY3QgPSBudWxsO1xuICBzaGlwSW1wYWN0RmFjdG9yID0gbnVsbDtcbiAgZ2V0RmluaXNoX3NoaXBJbXBhY3QgPSBmYWxzZTtcbiAgdGlwX3NoaXBJbXBhY3QgPSBmYWxzZTtcbiAgcmVxdWVzdGVkX3NoaXBJbXBhY3QgPSBudWxsO1xuICBtZXNzYWdlX3NoaXBJbXBhY3QgPSBudWxsO1xuICAvL+iKgueCueWGsuWIh1xuICBqb2ludENhblVDID0gbnVsbDtcbiAgam9pbnRDYW5TdW1tYXJ5VUMgPSBudWxsO1xuICBnZXRGaW5pc2hfam9pbnRDYW5VQyA9IGZhbHNlO1xuICB0aXBfam9pbnRDYW5VQyA9IGZhbHNlO1xuICBtZXNzYWdlX2pvaW50Q2FuVUMgPSBudWxsO1xuICAvL+eWsuWKs+aNn+S8pFxuICBmYXRpZ3VlRGF0YSA9IG51bGw7XG4gIGZhdGlndWVEYXRhX2ludGVyID0gbnVsbDtcbiAgZ2V0RmluaXNoX2ZhdGlndWUgPSBmYWxzZTtcbiAgdGlwX2ZhdGlndWVEYXRhID0gZmFsc2U7XG4gIG1lc3NhZ2VfZmF0aWd1ZURhdGEgPSBudWxsO1xuXG4gIGFjdGl2ZV9iZW5kaW5nTW9tZW50ID0gZmFsc2U7XG4gIGFjdGl2ZV9wb3N0UmVzdWx0ID0gZmFsc2U7XG4gIGFjdGl2ZV9kaXN0b3J0aW9uID0gZmFsc2U7XG4gIGFjdGl2ZV9tYXNzUG9zdFJlc3VsdCA9IGZhbHNlO1xuICBhY3RpdmVfc2hpcEltcGFjdCA9IGZhbHNlO1xuICBhY3RpdmVfam9pbnRDYW5VQyA9IGZhbHNlO1xuICBhY3RpdmVfZmF0aWd1ZURhdGEgPSBmYWxzZTtcblxuICByZXF1ZXN0REJEYXRhKCkge1xuICAgIC8v5YaF5Yqb5Zu+XG4gICAgdGhpcy5iZW5kaW5nTW9tZW50ID0gbnVsbDtcbiAgICB0aGlzLmdldEZpbmlzaF9iZW5kaW5nTW9tZW50ID0gZmFsc2U7XG4gICAgdGhpcy50aXBfYmVuZGluZ01vbWVudCA9IGZhbHNlO1xuICAgIHRoaXMucmVxdWVzdGVkX2JlbmRpbmdNb21lbnQgPSBudWxsO1xuICAgIHRoaXMubWVzc2FnZV9iZW5kaW5nTW9tZW50ID0gbnVsbDtcbiAgICAvL1VD5Zu+XG4gICAgdGhpcy51Y0RpYWdyYW0gPSBudWxsO1xuICAgIHRoaXMuZ2V0RmluaXNoX3VjRGlhZ3JhbSA9IGZhbHNlO1xuICAgIHRoaXMudGlwX3VjRGlhZ3JhbSA9IGZhbHNlO1xuICAgIHRoaXMubWVzc2FnZV91Y0RpYWdyYW0gPSBudWxsO1xuICAgIC8v5p2G5Lu257uT5p6cXG4gICAgdGhpcy5wb3N0UmVzdWx0ID0gbnVsbDtcbiAgICB0aGlzLnBvc3Rfam9pbnRDYW5TdW1tYXJ5VUMgPSBudWxsO1xuICAgIHRoaXMuZ2V0RmluaXNoX3Bvc3RSZXN1bHQgPSBmYWxzZTtcbiAgICB0aGlzLnRpcF9wb3N0UmVzdWx0ID0gZmFsc2U7XG4gICAgdGhpcy5tZXNzYWdlX3Bvc3RSZXN1bHQgPSBudWxsO1xuICAgIC8v57uT5p6E5Y+Y5b2iXG4gICAgdGhpcy5kaXN0b3J0aW9uID0gbnVsbDtcbiAgICB0aGlzLmdldEZpbmlzaF9kaXN0b3J0aW9uID0gZmFsc2U7XG4gICAgdGhpcy50aXBfZGlzdG9ydGlvbiA9IGZhbHNlO1xuICAgIHRoaXMucmVxdWVzdGVkX2Rpc3RvcnRpb24gPSBudWxsO1xuICAgIHRoaXMubWVzc2FnZV9kaXN0b3J0aW9uID0gbnVsbDtcbiAgICAvL+aooeaAgeWKqOeUu1xuICAgIHRoaXMubWFzc1Bvc3RSZXN1bHQgPSBudWxsO1xuICAgIHRoaXMubW9kZVNoYXBlUG9zdFJlc3VsdCA9IG51bGw7XG4gICAgdGhpcy5nZXRGaW5pc2hfZGVmbGVjdGVkU2hhcGUgPSBmYWxzZTtcbiAgICB0aGlzLnRpcF9kZWZsZWN0ZWRTaGFwZSA9IGZhbHNlO1xuICAgIHRoaXMucmVxdWVzdGVkX2RlZmxlY3RlZFNoYXBlID0gbnVsbDtcbiAgICB0aGlzLm1lc3NhZ2VfZGVmbGVjdGVkU2hhcGUgPSBudWxsO1xuICAgIC8v5YCS5aGM5YiG5p6QXG4gICAgdGhpcy5zaGlwSW1wYWN0ID0gbnVsbDtcbiAgICB0aGlzLnNoaXBJbXBhY3RGYWN0b3IgPSBudWxsO1xuICAgIHRoaXMuZ2V0RmluaXNoX3NoaXBJbXBhY3QgPSBmYWxzZTtcbiAgICB0aGlzLnRpcF9zaGlwSW1wYWN0ID0gZmFsc2U7XG4gICAgdGhpcy5yZXF1ZXN0ZWRfc2hpcEltcGFjdCA9IG51bGw7XG4gICAgdGhpcy5tZXNzYWdlX3NoaXBJbXBhY3QgPSBudWxsO1xuICAgIC8v6IqC54K55Yay5YiHXG4gICAgdGhpcy5qb2ludENhblVDID0gbnVsbDtcbiAgICB0aGlzLmpvaW50Q2FuU3VtbWFyeVVDID0gbnVsbDtcbiAgICB0aGlzLmdldEZpbmlzaF9qb2ludENhblVDID0gZmFsc2U7XG4gICAgdGhpcy50aXBfam9pbnRDYW5VQyA9IGZhbHNlO1xuICAgIHRoaXMubWVzc2FnZV9qb2ludENhblVDID0gbnVsbDtcbiAgICAvL+eWsuWKs+aNn+S8pFxuICAgIHRoaXMuZmF0aWd1ZURhdGEgPSBudWxsO1xuICAgIHRoaXMuZmF0aWd1ZURhdGFfaW50ZXIgPSBudWxsO1xuICAgIHRoaXMuZ2V0RmluaXNoX2ZhdGlndWUgPSBmYWxzZTtcbiAgICB0aGlzLnRpcF9mYXRpZ3VlRGF0YSA9IGZhbHNlO1xuICAgIHRoaXMubWVzc2FnZV9mYXRpZ3VlRGF0YSA9IG51bGw7XG5cbiAgICBsZXQgdmlld2VyID0gdGhpcy52aWV3ZXIgYXMgVmlld2VyO1xuICAgIGxldCBwcm9qZWN0SWQgPSB2aWV3ZXIuc3RydWN0dXJlVHJlZU1hbmFnZXIucm9vdE5vZGUub2JqLnJlbmRlck9iamVjdC5pZDtcblxuICAgIC8vUE9TVE1FTUJFUlxuICAgIHtcbiAgICAgIGxldCB0YWJsZSA9IFwiUl9QT1NUTUVNQkVSUkVTVUxUU1wiO1xuICAgICAgbGV0IGdyb3VwID0gXCJMb2FkQ29uZGl0aW9uTmFtZVwiO1xuXG4gICAgICBsZXQgY29sdW1ucyA9IFtcbiAgICAgICAgLy8g5YaF5YqbXG4gICAgICAgIFwiTWVtYmVyTmFtZVwiLFxuICAgICAgICBcIk1lbWJlcklEXCIsXG4gICAgICAgIFwiRGlzdGFuY2VcIixcbiAgICAgICAgXCJNb21lbnRVbml0c1wiLFxuICAgICAgICBcIkRpc3RhbmNlVW5pdHNcIixcbiAgICAgICAgXCJZWUJlbmRpbmdNb21lbnRcIixcbiAgICAgICAgXCJaWkJlbmRpbmdNb21lbnRcIixcbiAgICAgICAgXCJZU2hlYXJcIixcbiAgICAgICAgXCJaU2hlYXJcIixcbiAgICAgICAgXCJBeGlhbExvYWRcIixcbiAgICAgICAgLy8gVUNcbiAgICAgICAgXCJBeGlhbFVDXCIsXG4gICAgICAgIFwiWVlCZW5kaW5nVUNcIixcbiAgICAgICAgXCJaWkJlbmRpbmdVQ1wiLFxuICAgICAgICBcIlRvdGFsU2hlYXJVQ1wiLFxuICAgICAgICBcIk1heFVDXCIsXG4gICAgICAgIC8vIOadhuS7tue7k+aenFxuICAgICAgICBcIkZvcmNlVW5pdHNcIixcbiAgICAgICAgXCJBWFN0cmVzc1wiLFxuICAgICAgICBcIllZQmVuZGluZ1N0cmVzc1wiLFxuICAgICAgICBcIlpaQmVuZGluZ1N0cmVzc1wiLFxuICAgICAgICBcIllTaGVhclN0cmVzc1wiLFxuICAgICAgICBcIlpTaGVhclN0cmVzc1wiLFxuICAgICAgXTtcblxuICAgICAgbGV0IHByb21pc2VzID0gW107XG4gICAgICBsZXQgcHJvbWlzZTEgPSByZW5kZXJPYmplY3RTZXJ2aWNlXG4gICAgICAgIC5wb3N0RGF0YShwcm9qZWN0SWQsIHRhYmxlLCBjb2x1bW5zLCBncm91cClcbiAgICAgICAgLnRoZW4oKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5ldmVudF9iZW5kaW5nTW9tZW50LmZvckVhY2goKGl0ZW06ICgpID0+IHZvaWQpID0+IHtcbiAgICAgICAgICAgIGl0ZW0oKTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHRoaXMuZXZlbnRfdWNEaWFncmFtLmZvckVhY2goKGl0ZW06ICgpID0+IHZvaWQpID0+IHtcbiAgICAgICAgICAgIGl0ZW0oKTtcbiAgICAgICAgICB9KTtcbiBcbiAgICAgICAgICB0aGlzLmdldEZpbmlzaF9iZW5kaW5nTW9tZW50ID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLmdldEZpbmlzaF91Y0RpYWdyYW0gPSB0cnVlO1xuXG4gICAgICAgICAgaWYgKHRoaXMudGlwX2JlbmRpbmdNb21lbnQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VfYmVuZGluZ01vbWVudCkge1xuICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VfYmVuZGluZ01vbWVudC5jbG9zZSgpO1xuICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VfYmVuZGluZ01vbWVudCA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBNZXNzYWdlLmluZm8oXCLlhoXlipvlm77lkI7lpITnkIbmlbDmja7or7fmsYLlrozmiJAuXCIpO1xuICAgICAgICAgICAgdGhpcy50aXBfYmVuZGluZ01vbWVudCA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICB0aGlzLmJlbmRpbmdNb21lbnQgPSByZXN1bHQuZ3JvdXBzO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5yZXF1ZXN0ZWRfYmVuZGluZ01vbWVudCkge1xuICAgICAgICAgICAgICB0aGlzLnJlcXVlc3RlZF9iZW5kaW5nTW9tZW50KCk7XG4gICAgICAgICAgICAgIHRoaXMucmVxdWVzdGVkX2JlbmRpbmdNb21lbnQgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0aGlzLnRpcF91Y0RpYWdyYW0pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VfdWNEaWFncmFtKSB7XG4gICAgICAgICAgICAgIHRoaXMubWVzc2FnZV91Y0RpYWdyYW0uY2xvc2UoKTtcbiAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlX3VjRGlhZ3JhbSA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBNZXNzYWdlLmluZm8oXCJVQ+WbvuWQjuWkhOeQhuaVsOaNruivt+axguWujOaIkC5cIik7XG4gICAgICAgICAgICB0aGlzLnRpcF91Y0RpYWdyYW0gPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgdGhpcy51Y0RpYWdyYW0gPSByZXN1bHQuZ3JvdXBzO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgIGxldCB0YWJsZTEgPSBcIkVsZW1lbnRVQ1wiO1xuICAgICAgbGV0IGNvbHVtbnMxID0gW1wiTWVtYmVyTmFtZVwiLCBcIkxvYWRDb25kaXRpb25cIl07XG5cbiAgICAgIGxldCBwcm9taXNlMiA9IHJlbmRlck9iamVjdFNlcnZpY2VcbiAgICAgICAgLnBvc3REYXRhKHByb2plY3RJZCwgdGFibGUxLCBjb2x1bW5zMSwgXCJcIilcbiAgICAgICAgLnRoZW4oKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgdGhpcy5wb3N0X2pvaW50Q2FuU3VtbWFyeVVDID0gcmVzdWx0LnJvd3M7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIHByb21pc2VzLnB1c2gocHJvbWlzZTEpO1xuICAgICAgcHJvbWlzZXMucHVzaChwcm9taXNlMik7XG5cbiAgICAgIFByb21pc2UuYWxsKHByb21pc2VzKS50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5ldmVudF9wb3N0UmVzdWx0LmZvckVhY2goKGl0ZW06ICgpID0+IHZvaWQpID0+IHtcbiAgICAgICAgICBpdGVtKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZ2V0RmluaXNoX3Bvc3RSZXN1bHQgPSB0cnVlO1xuICAgICAgICBpZiAodGhpcy50aXBfcG9zdFJlc3VsdCkge1xuICAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VfcG9zdFJlc3VsdCkge1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlX3Bvc3RSZXN1bHQuY2xvc2UoKTtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZV9wb3N0UmVzdWx0ID0gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgICAgTWVzc2FnZS5pbmZvKFwi5p2G5Lu257uT5p6c5ZCO5aSE55CG5pWw5o2u6K+35rGC5a6M5oiQLlwiKTtcbiAgICAgICAgICB0aGlzLnRpcF9wb3N0UmVzdWx0ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIC8vIOWGheWKm+WbvlxuICAgIC8vIHtcbiAgICAvLyAgIGxldCB0YWJsZSA9IFwiUl9QT1NUTUVNQkVSUkVTVUxUU1wiO1xuICAgIC8vICAgbGV0IGdyb3VwID0gXCJMb2FkQ29uZGl0aW9uTmFtZVwiO1xuXG4gICAgLy8gICBsZXQgY29sdW1ucyA9IFtcbiAgICAvLyAgICAgXCJNZW1iZXJOYW1lXCIsXG4gICAgLy8gICAgIFwiTWVtYmVySURcIixcbiAgICAvLyAgICAgXCJEaXN0YW5jZVwiLFxuICAgIC8vICAgICBcIk1vbWVudFVuaXRzXCIsXG4gICAgLy8gICAgIFwiRGlzdGFuY2VVbml0c1wiLFxuICAgIC8vICAgICBcIllZQmVuZGluZ01vbWVudFwiLFxuICAgIC8vICAgICBcIlpaQmVuZGluZ01vbWVudFwiLFxuICAgIC8vICAgICBcIllTaGVhclwiLFxuICAgIC8vICAgICBcIlpTaGVhclwiLFxuICAgIC8vICAgICBcIkF4aWFsTG9hZFwiLFxuICAgIC8vICAgXTtcblxuICAgIC8vICAgcmVuZGVyT2JqZWN0U2VydmljZVxuICAgIC8vICAgICAucG9zdERhdGEocHJvamVjdElkLCB0YWJsZSwgY29sdW1ucywgZ3JvdXApXG4gICAgLy8gICAgIC50aGVuKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgIC8vICAgICAgIHRoaXMuZXZlbnRfYmVuZGluZ01vbWVudC5mb3JFYWNoKChpdGVtOiAoKSA9PiB2b2lkKSA9PiB7XG4gICAgLy8gICAgICAgICBpdGVtKCk7XG4gICAgLy8gICAgICAgfSk7XG5cbiAgICAvLyAgICAgICB0aGlzLmdldEZpbmlzaF9iZW5kaW5nTW9tZW50ID0gdHJ1ZTtcbiAgICAvLyAgICAgICBpZiAodGhpcy50aXBfYmVuZGluZ01vbWVudCkge1xuICAgIC8vICAgICAgICAgaWYgKHRoaXMubWVzc2FnZV9iZW5kaW5nTW9tZW50KSB7XG4gICAgLy8gICAgICAgICAgIHRoaXMubWVzc2FnZV9iZW5kaW5nTW9tZW50LmNsb3NlKCk7XG4gICAgLy8gICAgICAgICAgIHRoaXMubWVzc2FnZV9iZW5kaW5nTW9tZW50ID0gbnVsbDtcbiAgICAvLyAgICAgICAgIH1cbiAgICAvLyAgICAgICAgIE1lc3NhZ2UuaW5mbyhcIuWGheWKm+WbvuWQjuWkhOeQhuaVsOaNruivt+axguWujOaIkC5cIik7XG4gICAgLy8gICAgICAgICB0aGlzLnRpcF9iZW5kaW5nTW9tZW50ID0gZmFsc2U7XG4gICAgLy8gICAgICAgfVxuICAgIC8vICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAvLyAgICAgICAgIHRoaXMuYmVuZGluZ01vbWVudCA9IHJlc3VsdC5ncm91cHM7XG5cbiAgICAvLyAgICAgICAgIGlmICh0aGlzLnJlcXVlc3RlZF9iZW5kaW5nTW9tZW50KSB7XG4gICAgLy8gICAgICAgICAgIHRoaXMucmVxdWVzdGVkX2JlbmRpbmdNb21lbnQoKTtcbiAgICAvLyAgICAgICAgICAgdGhpcy5yZXF1ZXN0ZWRfYmVuZGluZ01vbWVudCA9IG51bGw7XG4gICAgLy8gICAgICAgICB9XG4gICAgLy8gICAgICAgfVxuICAgIC8vICAgICB9KTtcbiAgICAvLyB9XG5cbiAgICAvLyAvLyBVQ+WbvlxuICAgIC8vIHtcbiAgICAvLyAgIGxldCB0YWJsZSA9IFwiUl9QT1NUTUVNQkVSUkVTVUxUU1wiO1xuICAgIC8vICAgbGV0IGdyb3VwID0gXCJMb2FkQ29uZGl0aW9uTmFtZVwiO1xuXG4gICAgLy8gICBsZXQgY29sdW1ucyA9IFtcbiAgICAvLyAgICAgXCJNZW1iZXJOYW1lXCIsXG4gICAgLy8gICAgIFwiTWVtYmVySURcIixcbiAgICAvLyAgICAgXCJEaXN0YW5jZVwiLFxuICAgIC8vICAgICBcIk1vbWVudFVuaXRzXCIsXG4gICAgLy8gICAgIFwiRGlzdGFuY2VVbml0c1wiLFxuICAgIC8vICAgICBcIkF4aWFsVUNcIixcbiAgICAvLyAgICAgXCJZWUJlbmRpbmdVQ1wiLFxuICAgIC8vICAgICBcIlpaQmVuZGluZ1VDXCIsXG4gICAgLy8gICAgIFwiVG90YWxTaGVhclVDXCIsXG4gICAgLy8gICAgIFwiTWF4VUNcIixcbiAgICAvLyAgIF07XG5cbiAgICAvLyAgIHJlbmRlck9iamVjdFNlcnZpY2VcbiAgICAvLyAgICAgLnBvc3REYXRhKHByb2plY3RJZCwgdGFibGUsIGNvbHVtbnMsIGdyb3VwKVxuICAgIC8vICAgICAudGhlbigocmVzdWx0OiBhbnkpID0+IHtcbiAgICAvLyAgICAgICB0aGlzLmV2ZW50X3VjRGlhZ3JhbS5mb3JFYWNoKChpdGVtOiAoKSA9PiB2b2lkKSA9PiB7XG4gICAgLy8gICAgICAgICBpdGVtKCk7XG4gICAgLy8gICAgICAgfSk7XG5cbiAgICAvLyAgICAgICB0aGlzLmdldEZpbmlzaF91Y0RpYWdyYW0gPSB0cnVlO1xuICAgIC8vICAgICAgIGlmICh0aGlzLnRpcF91Y0RpYWdyYW0pIHtcbiAgICAvLyAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VfdWNEaWFncmFtKSB7XG4gICAgLy8gICAgICAgICAgIHRoaXMubWVzc2FnZV91Y0RpYWdyYW0uY2xvc2UoKTtcbiAgICAvLyAgICAgICAgICAgdGhpcy5tZXNzYWdlX3VjRGlhZ3JhbSA9IG51bGw7XG4gICAgLy8gICAgICAgICB9XG4gICAgLy8gICAgICAgICBNZXNzYWdlLmluZm8oXCJVQ+WbvuWQjuWkhOeQhuaVsOaNruivt+axguWujOaIkC5cIik7XG4gICAgLy8gICAgICAgICB0aGlzLnRpcF91Y0RpYWdyYW0gPSBmYWxzZTtcbiAgICAvLyAgICAgICB9XG4gICAgLy8gICAgICAgaWYgKHJlc3VsdCkge1xuICAgIC8vICAgICAgICAgdGhpcy51Y0RpYWdyYW0gPSByZXN1bHQuZ3JvdXBzO1xuICAgIC8vICAgICAgIH1cbiAgICAvLyAgICAgfSk7XG4gICAgLy8gfVxuXG4gICAgLy8gLy8g5p2G5Lu257uT5p6cXG4gICAgLy8ge1xuICAgIC8vICAgbGV0IHRhYmxlID0gXCJSX1BPU1RNRU1CRVJSRVNVTFRTXCI7XG4gICAgLy8gICBsZXQgZ3JvdXAgPSBcIkxvYWRDb25kaXRpb25OYW1lXCI7XG5cbiAgICAvLyAgIGxldCBjb2x1bW5zID0gW1xuICAgIC8vICAgICBcIk1lbWJlck5hbWVcIixcbiAgICAvLyAgICAgXCJNZW1iZXJJRFwiLFxuICAgIC8vICAgICBcIkRpc3RhbmNlXCIsXG4gICAgLy8gICAgIFwiRm9yY2VVbml0c1wiLFxuICAgIC8vICAgICBcIk1vbWVudFVuaXRzXCIsXG4gICAgLy8gICAgIFwiRGlzdGFuY2VVbml0c1wiLFxuICAgIC8vICAgICBcIk1heFVDXCIsXG4gICAgLy8gICAgIFwiQXhpYWxVQ1wiLFxuICAgIC8vICAgICBcIllZQmVuZGluZ1VDXCIsXG4gICAgLy8gICAgIFwiWlpCZW5kaW5nVUNcIixcbiAgICAvLyAgICAgXCJUb3RhbFNoZWFyVUNcIixcbiAgICAvLyAgICAgXCJBWFN0cmVzc1wiLFxuICAgIC8vICAgICBcIllZQmVuZGluZ1N0cmVzc1wiLFxuICAgIC8vICAgICBcIlpaQmVuZGluZ1N0cmVzc1wiLFxuICAgIC8vICAgICBcIllTaGVhclN0cmVzc1wiLFxuICAgIC8vICAgICBcIlpTaGVhclN0cmVzc1wiLFxuICAgIC8vICAgICBcIkF4aWFsTG9hZFwiLFxuICAgIC8vICAgICBcIllZQmVuZGluZ01vbWVudFwiLFxuICAgIC8vICAgICBcIlpaQmVuZGluZ01vbWVudFwiLFxuICAgIC8vICAgXTtcblxuICAgIC8vICAgbGV0IHByb21pc2VzID0gW107XG4gICAgLy8gICBsZXQgcHJvbWlzZTEgPSByZW5kZXJPYmplY3RTZXJ2aWNlXG4gICAgLy8gICAgIC5wb3N0RGF0YShwcm9qZWN0SWQsIHRhYmxlLCBjb2x1bW5zLCBncm91cClcbiAgICAvLyAgICAgLnRoZW4oKHJlc3VsdDogYW55KSA9PiB7XG4gICAgLy8gICAgICAgaWYgKHJlc3VsdCkge1xuICAgIC8vICAgICAgICAgdGhpcy5wb3N0UmVzdWx0ID0gcmVzdWx0Lmdyb3VwcztcbiAgICAvLyAgICAgICB9XG4gICAgLy8gICAgIH0pO1xuXG4gICAgLy8gICBsZXQgdGFibGUxID0gXCJFbGVtZW50VUNcIjtcbiAgICAvLyAgIGxldCBjb2x1bW5zMSA9IFtcIk1lbWJlck5hbWVcIiwgXCJMb2FkQ29uZGl0aW9uXCJdO1xuXG4gICAgLy8gICBsZXQgcHJvbWlzZTIgPSByZW5kZXJPYmplY3RTZXJ2aWNlXG4gICAgLy8gICAgIC5wb3N0RGF0YShwcm9qZWN0SWQsIHRhYmxlMSwgY29sdW1uczEsIFwiXCIpXG4gICAgLy8gICAgIC50aGVuKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgIC8vICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAvLyAgICAgICAgIHRoaXMucG9zdF9qb2ludENhblN1bW1hcnlVQyA9IHJlc3VsdC5yb3dzO1xuICAgIC8vICAgICAgIH1cbiAgICAvLyAgICAgfSk7XG4gICAgLy8gICBwcm9taXNlcy5wdXNoKHByb21pc2UxKTtcbiAgICAvLyAgIHByb21pc2VzLnB1c2gocHJvbWlzZTIpO1xuXG4gICAgLy8gICBQcm9taXNlLmFsbChwcm9taXNlcykudGhlbigoKSA9PiB7XG4gICAgLy8gICAgIHRoaXMuZXZlbnRfcG9zdFJlc3VsdC5mb3JFYWNoKChpdGVtOiAoKSA9PiB2b2lkKSA9PiB7XG4gICAgLy8gICAgICAgaXRlbSgpO1xuICAgIC8vICAgICB9KTtcblxuICAgIC8vICAgICB0aGlzLmdldEZpbmlzaF9wb3N0UmVzdWx0ID0gdHJ1ZTtcbiAgICAvLyAgICAgaWYgKHRoaXMudGlwX3Bvc3RSZXN1bHQpIHtcbiAgICAvLyAgICAgICBpZiAodGhpcy5tZXNzYWdlX3Bvc3RSZXN1bHQpIHtcbiAgICAvLyAgICAgICAgIHRoaXMubWVzc2FnZV9wb3N0UmVzdWx0LmNsb3NlKCk7XG4gICAgLy8gICAgICAgICB0aGlzLm1lc3NhZ2VfcG9zdFJlc3VsdCA9IG51bGw7XG4gICAgLy8gICAgICAgfVxuICAgIC8vICAgICAgIE1lc3NhZ2UuaW5mbyhcIuadhuS7tue7k+aenOWQjuWkhOeQhuaVsOaNruivt+axguWujOaIkC5cIik7XG4gICAgLy8gICAgICAgdGhpcy50aXBfcG9zdFJlc3VsdCA9IGZhbHNlO1xuICAgIC8vICAgICB9XG4gICAgLy8gICB9KTtcbiAgICAvLyB9XG5cbiAgICAvLyDnu5PmnoTlj5jlvaJcbiAgICB7XG4gICAgICBsZXQgdGFibGUgPSBcIlJfUE9TVEpPSU5URElTUExBQ0VNRU5UUkVTVUxUU1wiO1xuICAgICAgbGV0IGdyb3VwID0gXCJMb2FkQ29uZGl0aW9uTmFtZVwiO1xuXG4gICAgICBsZXQgY29sdW1ucyA9IFtcbiAgICAgICAgXCJKb2ludElEXCIsXG4gICAgICAgIFwiRGVmbGVjdGlvblRyYW5zbGF0aW9uVW5pdHNcIixcbiAgICAgICAgXCJEZWZsZWN0aW9uUm90YXRpb25hbFVuaXRzXCIsXG4gICAgICAgIFwiRGVmbGVjdGlvblhcIixcbiAgICAgICAgXCJEZWZsZWN0aW9uWVwiLFxuICAgICAgICBcIkRlZmxlY3Rpb25aXCIsXG4gICAgICAgIFwiUm90YXRpb25YXCIsXG4gICAgICAgIFwiUm90YXRpb25ZXCIsXG4gICAgICAgIFwiUm90YXRpb25aXCIsXG4gICAgICBdO1xuXG4gICAgICByZW5kZXJPYmplY3RTZXJ2aWNlXG4gICAgICAgIC5wb3N0RGF0YShwcm9qZWN0SWQsIHRhYmxlLCBjb2x1bW5zLCBncm91cClcbiAgICAgICAgLnRoZW4oKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5ldmVudF9kaXN0b3J0aW9uLmZvckVhY2goKGl0ZW06ICgpID0+IHZvaWQpID0+IHtcbiAgICAgICAgICAgIGl0ZW0oKTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHRoaXMuZ2V0RmluaXNoX2Rpc3RvcnRpb24gPSB0cnVlO1xuICAgICAgICAgIGlmICh0aGlzLnRpcF9kaXN0b3J0aW9uKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5tZXNzYWdlX2Rpc3RvcnRpb24pIHtcbiAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlX2Rpc3RvcnRpb24uY2xvc2UoKTtcbiAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlX2Rpc3RvcnRpb24gPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgTWVzc2FnZS5pbmZvKFwi57uT5p6E5Y+Y5b2i5ZCO5aSE55CG5pWw5o2u6K+35rGC5a6M5oiQLlwiKTtcbiAgICAgICAgICAgIHRoaXMudGlwX2Rpc3RvcnRpb24gPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgdGhpcy5kaXN0b3J0aW9uID0gcmVzdWx0Lmdyb3VwcztcblxuICAgICAgICAgICAgaWYgKHRoaXMucmVxdWVzdGVkX2Rpc3RvcnRpb24pIHtcbiAgICAgICAgICAgICAgdGhpcy5yZXF1ZXN0ZWRfZGlzdG9ydGlvbigpO1xuICAgICAgICAgICAgICB0aGlzLnJlcXVlc3RlZF9kaXN0b3J0aW9uID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIOaooeaAgeWKqOeUu1xuICAgIHtcbiAgICAgIGxldCB0YWJsZSA9IFwiUl9GUkVRQU5ER0VOTUFTU1wiO1xuICAgICAgbGV0IGNvbHVtbnMgPSBbXCJNb2RlSURcIiwgXCJGUkVRXCIsIFwiR2VuTWFzc1wiLCBcIkVpZ2VudmFsdWVcIiwgXCJQZXJpb2RcIl07XG5cbiAgICAgIHJlbmRlck9iamVjdFNlcnZpY2VcbiAgICAgICAgLnBvc3REYXRhKHByb2plY3RJZCwgdGFibGUsIGNvbHVtbnMsIFwiXCIpXG4gICAgICAgIC50aGVuKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgIHRoaXMubWFzc1Bvc3RSZXN1bHQgPSByZXN1bHQucm93cztcblxuICAgICAgICAgICAgbGV0IGNvbHVtbnMyID0gW1wiam9pbnRJRFwiLCBcIkRPRlwiLCBcIk1vZGVET0ZOb1wiXTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgb2YgT2JqZWN0LmtleXMocmVzdWx0LnJvd3MpKSB7XG4gICAgICAgICAgICAgIGlmIChyZXN1bHQucm93c1tpXSkge1xuICAgICAgICAgICAgICAgIGxldCBtb2RlSUQgPSByZXN1bHQucm93c1tpXS5Nb2RlSUQ7XG4gICAgICAgICAgICAgICAgY29sdW1uczIucHVzaChcIk1vZGVTaGFwZVwiICsgbW9kZUlEKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsZXQgdGFibGUyID0gXCJSX01vZGVTaGFwZVwiO1xuICAgICAgICAgICAgbGV0IGdydW9wID0gXCJqb2ludElEXCI7XG4gICAgICAgICAgICByZW5kZXJPYmplY3RTZXJ2aWNlXG4gICAgICAgICAgICAgIC5wb3N0RGF0YShwcm9qZWN0SWQsIHRhYmxlMiwgY29sdW1uczIsIGdydW9wKVxuICAgICAgICAgICAgICAudGhlbigocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmV2ZW50X2RlZmxlY3RlZFNoYXBlLmZvckVhY2goKGl0ZW06ICgpID0+IHZvaWQpID0+IHtcbiAgICAgICAgICAgICAgICAgIGl0ZW0oKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0RmluaXNoX2RlZmxlY3RlZFNoYXBlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50aXBfZGVmbGVjdGVkU2hhcGUpIHtcbiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VfZGVmbGVjdGVkU2hhcGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlX2RlZmxlY3RlZFNoYXBlLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZV9kZWZsZWN0ZWRTaGFwZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBNZXNzYWdlLmluZm8oXCLmqKHmgIHliqjnlLvlkI7lj7DmlbDmja7or7fmsYLlrozmiJAuXCIpO1xuICAgICAgICAgICAgICAgICAgdGhpcy50aXBfZGVmbGVjdGVkU2hhcGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgdGhpcy5tb2RlU2hhcGVQb3N0UmVzdWx0ID0gcmVzdWx0Lmdyb3VwcztcblxuICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucmVxdWVzdGVkX2RlZmxlY3RlZFNoYXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVxdWVzdGVkX2RlZmxlY3RlZFNoYXBlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVxdWVzdGVkX2RlZmxlY3RlZFNoYXBlID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmV2ZW50X2RlZmxlY3RlZFNoYXBlLmZvckVhY2goKGl0ZW06ICgpID0+IHZvaWQpID0+IHtcbiAgICAgICAgICAgICAgaXRlbSgpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuZ2V0RmluaXNoX2RlZmxlY3RlZFNoYXBlID0gdHJ1ZTtcbiAgICAgICAgICAgIGlmICh0aGlzLnRpcF9kZWZsZWN0ZWRTaGFwZSkge1xuICAgICAgICAgICAgICBpZiAodGhpcy5tZXNzYWdlX2RlZmxlY3RlZFNoYXBlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlX2RlZmxlY3RlZFNoYXBlLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5tZXNzYWdlX2RlZmxlY3RlZFNoYXBlID0gbnVsbDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBNZXNzYWdlLmluZm8oXCLmqKHmgIHliqjnlLvlkI7lj7DmlbDmja7or7fmsYLlrozmiJAuXCIpO1xuICAgICAgICAgICAgICB0aGlzLnRpcF9kZWZsZWN0ZWRTaGFwZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8g5YCS5aGM5YiG5p6QXG4gICAge1xuICAgICAgbGV0IHRhYmxlID0gXCJSX0NPTExBUFNFREVGTEVDVElPTlNBTkRSRUFDVElPTkZPUkNFXCI7XG4gICAgICBsZXQgZ3JvdXAgPSBcIklOQ1wiO1xuXG4gICAgICBsZXQgY29sdW1ucyA9IFtcbiAgICAgICAgXCJJTkNcIixcbiAgICAgICAgXCJKb2ludE5hbWVcIixcbiAgICAgICAgXCJMb2FkQ2FzZVwiLFxuICAgICAgICBcIkRYXCIsXG4gICAgICAgIFwiRFlcIixcbiAgICAgICAgXCJEWlwiLFxuICAgICAgICBcIlJYXCIsXG4gICAgICAgIFwiUllcIixcbiAgICAgICAgXCJSWlwiLFxuICAgICAgICBcIk1lbWJlck5hbWVcIixcbiAgICAgICAgXCJNZW1QbGFzdGljUmF0aW9cIixcbiAgICAgIF07XG5cbiAgICAgIGxldCBwcm9taXNlcyA9IFtdO1xuICAgICAgbGV0IHByb21pc2UxID0gcmVuZGVyT2JqZWN0U2VydmljZVxuICAgICAgICAucG9zdERhdGEocHJvamVjdElkLCB0YWJsZSwgY29sdW1ucywgZ3JvdXApXG4gICAgICAgIC50aGVuKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgIHRoaXMuc2hpcEltcGFjdCA9IHJlc3VsdC5ncm91cHM7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgbGV0IHRhYmxlMSA9IFwiUl9DT0xMQVBTRUFOQUxZU0lTTE9HXCI7XG4gICAgICBsZXQgY29sdW1uczEgPSBbXCJJTkNcIiwgXCJMb2FkQ2FzZVwiLCBcIkxvYWRGYWN0b3JcIl07XG5cbiAgICAgIGxldCBwcm9taXNlMiA9IHJlbmRlck9iamVjdFNlcnZpY2VcbiAgICAgICAgLnBvc3REYXRhKHByb2plY3RJZCwgdGFibGUxLCBjb2x1bW5zMSwgZ3JvdXApXG4gICAgICAgIC50aGVuKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgIHRoaXMuc2hpcEltcGFjdEZhY3RvciA9IHJlc3VsdC5ncm91cHM7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgcHJvbWlzZXMucHVzaChwcm9taXNlMSk7XG4gICAgICBwcm9taXNlcy5wdXNoKHByb21pc2UyKTtcblxuICAgICAgUHJvbWlzZS5hbGwocHJvbWlzZXMpLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLmV2ZW50X3NoaXBJbXBhY3QuZm9yRWFjaCgoaXRlbTogKCkgPT4gdm9pZCkgPT4ge1xuICAgICAgICAgIGl0ZW0oKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5nZXRGaW5pc2hfc2hpcEltcGFjdCA9IHRydWU7XG4gICAgICAgIGlmICh0aGlzLnRpcF9zaGlwSW1wYWN0KSB7XG4gICAgICAgICAgaWYgKHRoaXMubWVzc2FnZV9zaGlwSW1wYWN0KSB7XG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2Vfc2hpcEltcGFjdC5jbG9zZSgpO1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlX3NoaXBJbXBhY3QgPSBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgICBNZXNzYWdlLmluZm8oXCLlgJLloYzliIbmnpDlkI7lpITnkIbmlbDmja7or7fmsYLlrozmiJAuXCIpO1xuICAgICAgICAgIHRoaXMudGlwX3NoaXBJbXBhY3QgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5yZXF1ZXN0ZWRfc2hpcEltcGFjdCkge1xuICAgICAgICAgIHRoaXMucmVxdWVzdGVkX3NoaXBJbXBhY3QoKTtcbiAgICAgICAgICB0aGlzLnJlcXVlc3RlZF9zaGlwSW1wYWN0ID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8g6IqC54K55Yay5YiHXG4gICAge1xuICAgICAgbGV0IHRhYmxlID0gXCJKb2ludENhblVDXCI7XG4gICAgICBsZXQgZ3JvdXAgPSBcIkxvYWRDYXNlXCI7XG4gICAgICBsZXQgY29sdW1ucyA9IFtcIkNvbW1vbkpvaW50TmFtZVwiLCBcIkNob3JkSm9pbnROYW1lXCIsIFwiQnJhY2VKb2ludE5hbWVcIl07XG5cbiAgICAgIGxldCBwcm9taXNlcyA9IFtdO1xuICAgICAgbGV0IHByb21pc2UxID0gcmVuZGVyT2JqZWN0U2VydmljZVxuICAgICAgICAucG9zdERhdGEocHJvamVjdElkLCB0YWJsZSwgY29sdW1ucywgZ3JvdXApXG4gICAgICAgIC50aGVuKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgIHRoaXMuam9pbnRDYW5VQyA9IHJlc3VsdC5ncm91cHM7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgbGV0IHRhYmxlMSA9IFwiSm9pbnRDYW5TdW1tYXJ5VUNcIjtcbiAgICAgIGxldCBjb2x1bW5zMSA9IFtcIkpvaW50TmFtZVwiLCBcIk9yaWdMb2FkVUNcIiwgXCJTQUJyYWNlSm9pbnRcIl07XG4gICAgICBsZXQgcHJvbWlzZTIgPSByZW5kZXJPYmplY3RTZXJ2aWNlXG4gICAgICAgIC5wb3N0RGF0YShwcm9qZWN0SWQsIHRhYmxlMSwgY29sdW1uczEsIFwiIFwiKVxuICAgICAgICAudGhlbigocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICB0aGlzLmpvaW50Q2FuU3VtbWFyeVVDID0gcmVzdWx0LnJvd3M7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgcHJvbWlzZXMucHVzaChwcm9taXNlMSk7XG4gICAgICBwcm9taXNlcy5wdXNoKHByb21pc2UyKTtcblxuICAgICAgUHJvbWlzZS5hbGwocHJvbWlzZXMpLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLmV2ZW50X2pvaW50Q2FuVUMuZm9yRWFjaCgoaXRlbTogKCkgPT4gdm9pZCkgPT4ge1xuICAgICAgICAgIGl0ZW0oKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5nZXRGaW5pc2hfam9pbnRDYW5VQyA9IHRydWU7XG4gICAgICAgIGlmICh0aGlzLnRpcF9qb2ludENhblVDKSB7XG4gICAgICAgICAgaWYgKHRoaXMubWVzc2FnZV9qb2ludENhblVDKSB7XG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2Vfam9pbnRDYW5VQy5jbG9zZSgpO1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlX2pvaW50Q2FuVUMgPSBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgICBNZXNzYWdlLmluZm8oXCLoioLngrnlhrLliIflkI7lpITnkIbmlbDmja7or7fmsYLlrozmiJAuXCIpO1xuICAgICAgICAgIHRoaXMudGlwX2pvaW50Q2FuVUMgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8g55ay5Yqz5o2f5LykXG4gICAge1xuICAgICAgbGV0IHRhYmxlID0gXCJSX0ZBVElHVUVNRU1CRVJERVRBSUxcIjtcbiAgICAgIGxldCBncm91cCA9IFwiTG9hZENhc2VcIjtcblxuICAgICAgbGV0IGNvbHVtbnMgPSBbXG4gICAgICAgIFwiSm9pbnROYW1lXCIsXG4gICAgICAgIFwiQ2hvcmROYW1lXCIsXG4gICAgICAgIFwiQnJhY2VOYW1lXCIsXG4gICAgICAgIFwiTWVtYmVyVHlwZVwiLFxuICAgICAgICBcIlRvcERhbWFnZVwiLFxuICAgICAgICBcIlRvcExlZnREYW1hZ2VcIixcbiAgICAgICAgXCJMZWZ0RGFtYWdlXCIsXG4gICAgICAgIFwiQm90dG9tTGVmdERhbWFnZVwiLFxuICAgICAgICBcIkJvdHRvbURhbWFnZVwiLFxuICAgICAgICBcIkJvdHRvbVJpZ2h0RGFtYWdlXCIsXG4gICAgICAgIFwiUmlnaHREYW1hZ2VcIixcbiAgICAgICAgXCJUb3BSaWdodERhbWFnZVwiLFxuICAgICAgXTtcblxuICAgICAgbGV0IHByb21pc2VzID0gW107XG4gICAgICBsZXQgcHJvbWlzZTEgPSByZW5kZXJPYmplY3RTZXJ2aWNlXG4gICAgICAgIC5wb3N0RGF0YShwcm9qZWN0SWQsIHRhYmxlLCBjb2x1bW5zLCBncm91cClcbiAgICAgICAgLnRoZW4oKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgdGhpcy5mYXRpZ3VlRGF0YSA9IHJlc3VsdC5ncm91cHM7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgbGV0IHRhYmxlMSA9IFwiUl9JTlRFUk1FRElBVEVNRU1CRVJGQVRJR1VFU1VNTUFSWVwiO1xuXG4gICAgICBsZXQgY29sdW1uczEgPSBbXG4gICAgICAgIFwiTWVtYmVyTmFtZVwiLFxuICAgICAgICBcIkRpc3RhbmNlXCIsXG4gICAgICAgIFwiTWF4RGFtYWdlXCIsXG4gICAgICAgIFwiRmF0aWd1ZVNlY3Rpb25MYWJlbFwiLFxuICAgICAgICBcIlRvcERhbWFnZVwiLFxuICAgICAgICBcIlRvcExlZnREYW1hZ2VcIixcbiAgICAgICAgXCJMZWZ0RGFtYWdlXCIsXG4gICAgICAgIFwiQm90dG9tTGVmdERhbWFnZVwiLFxuICAgICAgICBcIkJvdHRvbURhbWFnZVwiLFxuICAgICAgICBcIkJvdHRvbVJpZ2h0RGFtYWdlXCIsXG4gICAgICAgIFwiUmlnaHREYW1hZ2VcIixcbiAgICAgICAgXCJUb3BSaWdodERhbWFnZVwiLFxuICAgICAgXTtcbiAgICAgIGxldCBwcm9taXNlMiA9IHJlbmRlck9iamVjdFNlcnZpY2VcbiAgICAgICAgLnBvc3REYXRhKHByb2plY3RJZCwgdGFibGUxLCBjb2x1bW5zMSwgXCJcIilcbiAgICAgICAgLnRoZW4oKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgdGhpcy5mYXRpZ3VlRGF0YV9pbnRlciA9IHJlc3VsdC5yb3dzO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgIHByb21pc2VzLnB1c2gocHJvbWlzZTEpO1xuICAgICAgcHJvbWlzZXMucHVzaChwcm9taXNlMik7XG5cbiAgICAgIFByb21pc2UuYWxsKHByb21pc2VzKS50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5ldmVudF9mYXRpZ3VlRGF0YS5mb3JFYWNoKChpdGVtOiAoKSA9PiB2b2lkKSA9PiB7XG4gICAgICAgICAgaXRlbSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmdldEZpbmlzaF9mYXRpZ3VlID0gdHJ1ZTtcbiAgICAgICAgaWYgKHRoaXMudGlwX2ZhdGlndWVEYXRhKSB7XG4gICAgICAgICAgaWYgKHRoaXMubWVzc2FnZV9mYXRpZ3VlRGF0YSkge1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlX2ZhdGlndWVEYXRhLmNsb3NlKCk7XG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VfZmF0aWd1ZURhdGEgPSBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgICBNZXNzYWdlLmluZm8oXCLnlrLlirPmjZ/kvKTlkI7lpITnkIbmlbDmja7or7fmsYLlrozmiJAuXCIpO1xuICAgICAgICAgIHRoaXMudGlwX2ZhdGlndWVEYXRhID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0T2h0ZXJQb3N0UmVzdWx0KCkge1xuICAgIGxldCBjb21tYW5kTWFuYWdlciA9ICh0aGlzLnZpZXdlci5wcm9jZXNzIGFzIFByb2Nlc3MpXG4gICAgICAuY29tbWFuZE1hbmFnZXIgYXMgQ29tbWFuZE1hbmFnZXI7XG4gICAgaWYgKHRoaXMuYWN0aXZlX2JlbmRpbmdNb21lbnQpIHtcbiAgICAgIGxldCBjb21tYW5kID0gY29tbWFuZE1hbmFnZXIuZ2V0Q29tbWFuZEJ5VHlwZShcIkNvbW1hbmRTaG93QmVuZGluZ01vbWVudFwiKTtcbiAgICAgIGlmIChjb21tYW5kIGluc3RhbmNlb2YgQ29tbWFuZFNob3dCZW5kaW5nTW9tZW50KSB7XG4gICAgICAgIGNvbW1hbmQucmVzZXRTY2VuZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmFjdGl2ZV9wb3N0UmVzdWx0KSB7XG4gICAgICBsZXQgY29tbWFuZCA9IGNvbW1hbmRNYW5hZ2VyLmdldENvbW1hbmRCeVR5cGUoXCJDb21tYW5kUG9zdFJlc3VsdENsb3VkXCIpO1xuICAgICAgaWYgKGNvbW1hbmQgaW5zdGFuY2VvZiBDb21tYW5kUG9zdFJlc3VsdENsb3VkKSB7XG4gICAgICAgIGNvbW1hbmQucmVzZXRTY2VuZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmFjdGl2ZV9kaXN0b3J0aW9uKSB7XG4gICAgICBsZXQgY29tbWFuZCA9IGNvbW1hbmRNYW5hZ2VyLmdldENvbW1hbmRCeVR5cGUoXCJDb21tYW5kRGlzdG9ydGlvblwiKTtcbiAgICAgIGlmIChjb21tYW5kIGluc3RhbmNlb2YgQ29tbWFuZERpc3RvcnRpb24pIHtcbiAgICAgICAgY29tbWFuZC5yZXNldFNjZW5lKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYWN0aXZlX21hc3NQb3N0UmVzdWx0KSB7XG4gICAgICBsZXQgY29tbWFuZCA9IGNvbW1hbmRNYW5hZ2VyLmdldENvbW1hbmRCeVR5cGUoXCJDb21tYW5kRGVmbGVjdGVkU2hhcGVcIik7XG4gICAgICBpZiAoY29tbWFuZCBpbnN0YW5jZW9mIENvbW1hbmREZWZsZWN0ZWRTaGFwZSkge1xuICAgICAgICBjb21tYW5kLnJlc2V0U2NlbmUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5hY3RpdmVfc2hpcEltcGFjdCkge1xuICAgICAgbGV0IGNvbW1hbmQgPSBjb21tYW5kTWFuYWdlci5nZXRDb21tYW5kQnlUeXBlKFwiQ29tbWFuZFNob3dTaGlwSW1wYWN0XCIpO1xuICAgICAgaWYgKGNvbW1hbmQgaW5zdGFuY2VvZiBDb21tYW5kU2hvd1NoaXBJbXBhY3QpIHtcbiAgICAgICAgY29tbWFuZC5yZXNldFNjZW5lKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYWN0aXZlX2pvaW50Q2FuVUMpIHtcbiAgICAgIGxldCBjb21tYW5kID0gY29tbWFuZE1hbmFnZXIuZ2V0Q29tbWFuZEJ5VHlwZShcIkNvbW1hbmRTaG93Sm9pbnRDYW5VQ1wiKTtcbiAgICAgIGlmIChjb21tYW5kIGluc3RhbmNlb2YgQ29tbWFuZFNob3dKb2ludENhblVDKSB7XG4gICAgICAgIGNvbW1hbmQucmVzZXRTY2VuZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmFjdGl2ZV9mYXRpZ3VlRGF0YSkge1xuICAgICAgbGV0IGNvbW1hbmQgPSBjb21tYW5kTWFuYWdlci5nZXRDb21tYW5kQnlUeXBlKFwiQ29tbWFuZFNob3dGYXRpZ3VlXCIpO1xuICAgICAgaWYgKGNvbW1hbmQgaW5zdGFuY2VvZiBDb21tYW5kU2hvd0ZhdGlndWUpIHtcbiAgICAgICAgY29tbWFuZC5yZXNldFNjZW5lKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQWNBO0FBQUE7QUFBQTtBQUFBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQWdwQkE7QUE5b0JBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBMkJBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBOzs7QUFJQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFFQTtBQUNBO0FBRUE7QUFHQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQTJKQTtBQUNBO0FBQ0E7QUFFQTtBQVlBO0FBR0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7OztBQUdBOztBQUlBO0FBQ0E7QUFDQTtBQUVBOztBQUdBO0FBQ0E7QUFFQTs7QUFDQTtBQUFBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7OztBQUlBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOzs7QUFHQTs7QUFJQTtBQUNBO0FBQ0E7QUFFQTtBQWNBO0FBQ0E7QUFHQTtBQUNBOztBQUVBO0FBRUE7QUFDQTtBQUVBO0FBR0E7QUFDQTs7QUFFQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBR0E7QUFDQTs7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7O0FBRUE7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBSUE7QUFDQTtBQUNBO0FBRUE7QUFlQTtBQUNBO0FBR0E7QUFDQTs7QUFFQTtBQUVBO0FBRUE7QUFjQTtBQUdBO0FBQ0E7O0FBRUE7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBRUE7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7OztBQUlBO0FBQ0E7QUFDQTtBQUNBOzs7QUFJQTtBQUNBO0FBQ0E7QUFDQTs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7OztBQUlBO0FBQ0E7QUFDQTtBQUNBOzs7QUFJQTtBQUNBO0FBQ0E7QUFDQTs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFBQTtBQXJ0QkE7O0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./packages/caeDesign/src/gsDevFx/managers/interfaceManagers/postInterfaceManager.ts\n");
4034
+ eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\"), __webpack_require__(/*! gs-bim-air */ \"./node_modules/gs-bim-air/lib/BimAir.umd.min.js\"), __webpack_require__(/*! ../../../api/renderObjectService */ \"./packages/caeDesign/src/api/renderObjectService.ts\"), __webpack_require__(/*! element-ui */ \"./node_modules/element-ui/lib/element-ui.common.js\"), __webpack_require__(/*! ../../../viewerWrapper/commands/aftertreatment/showBendingMoment/commandShowBendingMoment */ \"./packages/caeDesign/src/viewerWrapper/commands/aftertreatment/showBendingMoment/commandShowBendingMoment.ts\"), __webpack_require__(/*! ../../../viewerWrapper/commands/aftertreatment/postResultCloud/commandPostResultCloud */ \"./packages/caeDesign/src/viewerWrapper/commands/aftertreatment/postResultCloud/commandPostResultCloud.ts\"), __webpack_require__(/*! ../../../viewerWrapper/commands/aftertreatment/distortion/commandDistortion */ \"./packages/caeDesign/src/viewerWrapper/commands/aftertreatment/distortion/commandDistortion.ts\"), __webpack_require__(/*! ../../../viewerWrapper/commands/aftertreatment/showDeflectedShape/commandDeflectedShape */ \"./packages/caeDesign/src/viewerWrapper/commands/aftertreatment/showDeflectedShape/commandDeflectedShape.ts\"), __webpack_require__(/*! ../../../viewerWrapper/commands/aftertreatment/showShipImpact/commandShowShipImpact */ \"./packages/caeDesign/src/viewerWrapper/commands/aftertreatment/showShipImpact/commandShowShipImpact.ts\"), __webpack_require__(/*! ../../../viewerWrapper/commands/aftertreatment/showJointCanUC/commandShowJointCanUC */ \"./packages/caeDesign/src/viewerWrapper/commands/aftertreatment/showJointCanUC/commandShowJointCanUC.ts\"), __webpack_require__(/*! ../../../viewerWrapper/commands/aftertreatment/showFatigue/commandShowFatigue */ \"./packages/caeDesign/src/viewerWrapper/commands/aftertreatment/showFatigue/commandShowFatigue.ts\")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, tslib_1, gs_bim_air_1, renderObjectService_1, element_ui_1, commandShowBendingMoment_1, commandPostResultCloud_1, commandDistortion_1, commandDeflectedShape_1, commandShowShipImpact_1, commandShowJointCanUC_1, commandShowFatigue_1) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.PostInterfaceManager = void 0;\n renderObjectService_1 = tslib_1.__importDefault(renderObjectService_1);\n commandShowBendingMoment_1 = tslib_1.__importDefault(commandShowBendingMoment_1);\n commandPostResultCloud_1 = tslib_1.__importDefault(commandPostResultCloud_1);\n commandDistortion_1 = tslib_1.__importDefault(commandDistortion_1);\n commandDeflectedShape_1 = tslib_1.__importDefault(commandDeflectedShape_1);\n commandShowShipImpact_1 = tslib_1.__importDefault(commandShowShipImpact_1);\n commandShowJointCanUC_1 = tslib_1.__importDefault(commandShowJointCanUC_1);\n commandShowFatigue_1 = tslib_1.__importDefault(commandShowFatigue_1);\n var PostInterfaceManager = function (_super) {\n tslib_1.__extends(PostInterfaceManager, _super);\n function PostInterfaceManager() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.originIsHide = false;\n _this.event_bendingMoment = new gs_bim_air_1.Longan.List();\n _this.event_ucDiagram = new gs_bim_air_1.Longan.List();\n _this.event_postResult = new gs_bim_air_1.Longan.List();\n _this.event_distortion = new gs_bim_air_1.Longan.List();\n _this.event_deflectedShape = new gs_bim_air_1.Longan.List();\n _this.event_shipImpact = new gs_bim_air_1.Longan.List();\n _this.event_jointCanUC = new gs_bim_air_1.Longan.List();\n _this.event_fatigueData = new gs_bim_air_1.Longan.List();\n _this.bendingMoment = null;\n _this.getFinish_bendingMoment = false;\n _this.tip_bendingMoment = false;\n _this.requested_bendingMoment = null;\n _this.message_bendingMoment = null;\n _this.ucDiagram = null;\n _this.getFinish_ucDiagram = false;\n _this.tip_ucDiagram = false;\n _this.message_ucDiagram = null;\n _this.postResult = null;\n _this.post_jointCanSummaryUC = null;\n _this.getFinish_postResult = false;\n _this.tip_postResult = false;\n _this.message_postResult = null;\n _this.distortion = null;\n _this.getFinish_distortion = false;\n _this.tip_distortion = false;\n _this.requested_distortion = null;\n _this.message_distortion = null;\n _this.massPostResult = null;\n _this.modeShapePostResult = null;\n _this.getFinish_deflectedShape = false;\n _this.tip_deflectedShape = false;\n _this.requested_deflectedShape = null;\n _this.message_deflectedShape = null;\n _this.shipImpact = null;\n _this.shipImpactFactor = null;\n _this.getFinish_shipImpact = false;\n _this.tip_shipImpact = false;\n _this.requested_shipImpact = null;\n _this.message_shipImpact = null;\n _this.jointCanUC = null;\n _this.jointCanSummaryUC = null;\n _this.getFinish_jointCanUC = false;\n _this.tip_jointCanUC = false;\n _this.message_jointCanUC = null;\n _this.fatigueData = null;\n _this.fatigueData_inter = null;\n _this.getFinish_fatigue = false;\n _this.tip_fatigueData = false;\n _this.message_fatigueData = null;\n _this.active_bendingMoment = false;\n _this.active_postResult = false;\n _this.active_distortion = false;\n _this.active_massPostResult = false;\n _this.active_shipImpact = false;\n _this.active_jointCanUC = false;\n _this.active_fatigueData = false;\n return _this;\n }\n PostInterfaceManager.prototype.requestDBData = function () {\n var _this = this;\n this.bendingMoment = null;\n this.getFinish_bendingMoment = false;\n this.tip_bendingMoment = false;\n this.requested_bendingMoment = null;\n this.message_bendingMoment = null;\n this.ucDiagram = null;\n this.getFinish_ucDiagram = false;\n this.tip_ucDiagram = false;\n this.message_ucDiagram = null;\n this.postResult = null;\n this.post_jointCanSummaryUC = null;\n this.getFinish_postResult = false;\n this.tip_postResult = false;\n this.message_postResult = null;\n this.distortion = null;\n this.getFinish_distortion = false;\n this.tip_distortion = false;\n this.requested_distortion = null;\n this.message_distortion = null;\n this.massPostResult = null;\n this.modeShapePostResult = null;\n this.getFinish_deflectedShape = false;\n this.tip_deflectedShape = false;\n this.requested_deflectedShape = null;\n this.message_deflectedShape = null;\n this.shipImpact = null;\n this.shipImpactFactor = null;\n this.getFinish_shipImpact = false;\n this.tip_shipImpact = false;\n this.requested_shipImpact = null;\n this.message_shipImpact = null;\n this.jointCanUC = null;\n this.jointCanSummaryUC = null;\n this.getFinish_jointCanUC = false;\n this.tip_jointCanUC = false;\n this.message_jointCanUC = null;\n this.fatigueData = null;\n this.fatigueData_inter = null;\n this.getFinish_fatigue = false;\n this.tip_fatigueData = false;\n this.message_fatigueData = null;\n var viewer = this.viewer;\n var projectId = viewer.structureTreeManager.rootNode.obj.renderObject.id;\n {\n var table = \"R_POSTMEMBERRESULTS\";\n var group = \"LoadConditionName\";\n var columns = [\"MemberName\", \"MemberID\", \"Distance\", \"MomentUnits\", \"DistanceUnits\", \"YYBendingMoment\", \"ZZBendingMoment\", \"YShear\", \"ZShear\", \"AxialLoad\"];\n renderObjectService_1.default.postData(projectId, table, columns, group).then(function (result) {\n _this.event_bendingMoment.forEach(function (item) {\n item();\n });\n _this.getFinish_bendingMoment = true;\n if (_this.tip_bendingMoment) {\n if (_this.message_bendingMoment) {\n _this.message_bendingMoment.close();\n _this.message_bendingMoment = null;\n }\n element_ui_1.Message.info(\"内力图后处理数据请求完成.\");\n _this.tip_bendingMoment = false;\n }\n if (result) {\n _this.bendingMoment = result.groups;\n if (_this.requested_bendingMoment) {\n _this.requested_bendingMoment();\n _this.requested_bendingMoment = null;\n }\n }\n });\n }\n {\n var table = \"R_POSTMEMBERRESULTS\";\n var group = \"LoadConditionName\";\n var columns = [\"MemberName\", \"MemberID\", \"Distance\", \"MomentUnits\", \"DistanceUnits\", \"AxialUC\", \"YYBendingUC\", \"ZZBendingUC\", \"TotalShearUC\", \"MaxUC\"];\n renderObjectService_1.default.postData(projectId, table, columns, group).then(function (result) {\n _this.event_ucDiagram.forEach(function (item) {\n item();\n });\n _this.getFinish_ucDiagram = true;\n if (_this.tip_ucDiagram) {\n if (_this.message_ucDiagram) {\n _this.message_ucDiagram.close();\n _this.message_ucDiagram = null;\n }\n element_ui_1.Message.info(\"UC图后处理数据请求完成.\");\n _this.tip_ucDiagram = false;\n }\n if (result) {\n _this.ucDiagram = result.groups;\n }\n });\n }\n {\n var table = \"R_POSTMEMBERRESULTS\";\n var group = \"LoadConditionName\";\n var columns = [\"MemberName\", \"MemberID\", \"Distance\", \"ForceUnits\", \"MomentUnits\", \"DistanceUnits\", \"MaxUC\", \"AxialUC\", \"YYBendingUC\", \"ZZBendingUC\", \"TotalShearUC\", \"AXStress\", \"YYBendingStress\", \"ZZBendingStress\", \"YShearStress\", \"ZShearStress\", \"AxialLoad\", \"YYBendingMoment\", \"ZZBendingMoment\"];\n var promises = [];\n var promise1 = renderObjectService_1.default.postData(projectId, table, columns, group).then(function (result) {\n if (result) {\n _this.postResult = result.groups;\n }\n });\n var table1 = \"ElementUC\";\n var columns1 = [\"MemberName\", \"LoadCondition\"];\n var promise2 = renderObjectService_1.default.postData(projectId, table1, columns1, \"\").then(function (result) {\n if (result) {\n _this.post_jointCanSummaryUC = result.rows;\n }\n });\n promises.push(promise1);\n promises.push(promise2);\n Promise.all(promises).then(function () {\n _this.event_postResult.forEach(function (item) {\n item();\n });\n _this.getFinish_postResult = true;\n if (_this.tip_postResult) {\n if (_this.message_postResult) {\n _this.message_postResult.close();\n _this.message_postResult = null;\n }\n element_ui_1.Message.info(\"杆件结果后处理数据请求完成.\");\n _this.tip_postResult = false;\n }\n });\n }\n {\n var table = \"R_POSTJOINTDISPLACEMENTRESULTS\";\n var group = \"LoadConditionName\";\n var columns = [\"JointID\", \"DeflectionTranslationUnits\", \"DeflectionRotationalUnits\", \"DeflectionX\", \"DeflectionY\", \"DeflectionZ\", \"RotationX\", \"RotationY\", \"RotationZ\"];\n renderObjectService_1.default.postData(projectId, table, columns, group).then(function (result) {\n _this.event_distortion.forEach(function (item) {\n item();\n });\n _this.getFinish_distortion = true;\n if (_this.tip_distortion) {\n if (_this.message_distortion) {\n _this.message_distortion.close();\n _this.message_distortion = null;\n }\n element_ui_1.Message.info(\"结构变形后处理数据请求完成.\");\n _this.tip_distortion = false;\n }\n if (result) {\n _this.distortion = result.groups;\n if (_this.requested_distortion) {\n _this.requested_distortion();\n _this.requested_distortion = null;\n }\n }\n });\n }\n {\n var table = \"R_FREQANDGENMASS\";\n var columns = [\"ModeID\", \"FREQ\", \"GenMass\", \"Eigenvalue\", \"Period\"];\n renderObjectService_1.default.postData(projectId, table, columns, \"\").then(function (result) {\n var e_1, _a;\n if (result) {\n _this.massPostResult = result.rows;\n var columns2 = [\"jointID\", \"DOF\", \"ModeDOFNo\"];\n try {\n for (var _b = tslib_1.__values(Object.keys(result.rows)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var i = _c.value;\n if (result.rows[i]) {\n var modeID = result.rows[i].ModeID;\n columns2.push(\"ModeShape\" + modeID);\n }\n }\n } catch (e_1_1) {\n e_1 = {\n error: e_1_1\n };\n } finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n } finally {\n if (e_1) throw e_1.error;\n }\n }\n var table2 = \"R_ModeShape\";\n var gruop = \"jointID\";\n renderObjectService_1.default.postData(projectId, table2, columns2, gruop).then(function (result) {\n _this.event_deflectedShape.forEach(function (item) {\n item();\n });\n _this.getFinish_deflectedShape = true;\n if (_this.tip_deflectedShape) {\n if (_this.message_deflectedShape) {\n _this.message_deflectedShape.close();\n _this.message_deflectedShape = null;\n }\n element_ui_1.Message.info(\"模态动画后台数据请求完成.\");\n _this.tip_deflectedShape = false;\n }\n if (result) {\n _this.modeShapePostResult = result.groups;\n if (_this.requested_deflectedShape) {\n _this.requested_deflectedShape();\n _this.requested_deflectedShape = null;\n }\n }\n });\n } else {\n _this.event_deflectedShape.forEach(function (item) {\n item();\n });\n _this.getFinish_deflectedShape = true;\n if (_this.tip_deflectedShape) {\n if (_this.message_deflectedShape) {\n _this.message_deflectedShape.close();\n _this.message_deflectedShape = null;\n }\n element_ui_1.Message.info(\"模态动画后台数据请求完成.\");\n _this.tip_deflectedShape = false;\n }\n }\n });\n }\n {\n var table = \"R_COLLAPSEDEFLECTIONSANDREACTIONFORCE\";\n var group = \"INC\";\n var columns = [\"INC\", \"JointName\", \"LoadCase\", \"DX\", \"DY\", \"DZ\", \"RX\", \"RY\", \"RZ\", \"MemberName\", \"MemPlasticRatio\"];\n var promises = [];\n var promise1 = renderObjectService_1.default.postData(projectId, table, columns, group).then(function (result) {\n if (result) {\n _this.shipImpact = result.groups;\n }\n });\n var table1 = \"R_COLLAPSEANALYSISLOG\";\n var columns1 = [\"INC\", \"LoadCase\", \"LoadFactor\"];\n var promise2 = renderObjectService_1.default.postData(projectId, table1, columns1, group).then(function (result) {\n if (result) {\n _this.shipImpactFactor = result.groups;\n }\n });\n promises.push(promise1);\n promises.push(promise2);\n Promise.all(promises).then(function () {\n _this.event_shipImpact.forEach(function (item) {\n item();\n });\n _this.getFinish_shipImpact = true;\n if (_this.tip_shipImpact) {\n if (_this.message_shipImpact) {\n _this.message_shipImpact.close();\n _this.message_shipImpact = null;\n }\n element_ui_1.Message.info(\"倒塌分析后处理数据请求完成.\");\n _this.tip_shipImpact = false;\n }\n if (_this.requested_shipImpact) {\n _this.requested_shipImpact();\n _this.requested_shipImpact = null;\n }\n });\n }\n {\n var table = \"JointCanUC\";\n var group = \"LoadCase\";\n var columns = [\"CommonJointName\", \"ChordJointName\", \"BraceJointName\"];\n var promises = [];\n var promise1 = renderObjectService_1.default.postData(projectId, table, columns, group).then(function (result) {\n if (result) {\n _this.jointCanUC = result.groups;\n }\n });\n var table1 = \"JointCanSummaryUC\";\n var columns1 = [\"JointName\", \"OrigLoadUC\", \"SABraceJoint\"];\n var promise2 = renderObjectService_1.default.postData(projectId, table1, columns1, \" \").then(function (result) {\n if (result) {\n _this.jointCanSummaryUC = result.rows;\n }\n });\n promises.push(promise1);\n promises.push(promise2);\n Promise.all(promises).then(function () {\n _this.event_jointCanUC.forEach(function (item) {\n item();\n });\n _this.getFinish_jointCanUC = true;\n if (_this.tip_jointCanUC) {\n if (_this.message_jointCanUC) {\n _this.message_jointCanUC.close();\n _this.message_jointCanUC = null;\n }\n element_ui_1.Message.info(\"节点冲切后处理数据请求完成.\");\n _this.tip_jointCanUC = false;\n }\n });\n }\n {\n var table = \"R_FATIGUEMEMBERDETAIL\";\n var group = \"LoadCase\";\n var columns = [\"JointName\", \"ChordName\", \"BraceName\", \"MemberType\", \"TopDamage\", \"TopLeftDamage\", \"LeftDamage\", \"BottomLeftDamage\", \"BottomDamage\", \"BottomRightDamage\", \"RightDamage\", \"TopRightDamage\"];\n var promises = [];\n var promise1 = renderObjectService_1.default.postData(projectId, table, columns, group).then(function (result) {\n if (result) {\n _this.fatigueData = result.groups;\n }\n });\n var table1 = \"R_INTERMEDIATEMEMBERFATIGUESUMMARY\";\n var columns1 = [\"MemberName\", \"Distance\", \"MaxDamage\", \"FatigueSectionLabel\", \"TopDamage\", \"TopLeftDamage\", \"LeftDamage\", \"BottomLeftDamage\", \"BottomDamage\", \"BottomRightDamage\", \"RightDamage\", \"TopRightDamage\"];\n var promise2 = renderObjectService_1.default.postData(projectId, table1, columns1, \"\").then(function (result) {\n if (result) {\n _this.fatigueData_inter = result.rows;\n }\n });\n promises.push(promise1);\n promises.push(promise2);\n Promise.all(promises).then(function () {\n _this.event_fatigueData.forEach(function (item) {\n item();\n });\n _this.getFinish_fatigue = true;\n if (_this.tip_fatigueData) {\n if (_this.message_fatigueData) {\n _this.message_fatigueData.close();\n _this.message_fatigueData = null;\n }\n element_ui_1.Message.info(\"疲劳损伤后处理数据请求完成.\");\n _this.tip_fatigueData = false;\n }\n });\n }\n };\n PostInterfaceManager.prototype.resetOhterPostResult = function () {\n var commandManager = this.viewer.process.commandManager;\n if (this.active_bendingMoment) {\n var command = commandManager.getCommandByType(\"CommandShowBendingMoment\");\n if (command instanceof commandShowBendingMoment_1.default) {\n command.resetScene();\n }\n }\n if (this.active_postResult) {\n var command = commandManager.getCommandByType(\"CommandPostResultCloud\");\n if (command instanceof commandPostResultCloud_1.default) {\n command.resetScene();\n }\n }\n if (this.active_distortion) {\n var command = commandManager.getCommandByType(\"CommandDistortion\");\n if (command instanceof commandDistortion_1.default) {\n command.resetScene();\n }\n }\n if (this.active_massPostResult) {\n var command = commandManager.getCommandByType(\"CommandDeflectedShape\");\n if (command instanceof commandDeflectedShape_1.default) {\n command.resetScene();\n }\n }\n if (this.active_shipImpact) {\n var command = commandManager.getCommandByType(\"CommandShowShipImpact\");\n if (command instanceof commandShowShipImpact_1.default) {\n command.resetScene();\n }\n }\n if (this.active_jointCanUC) {\n var command = commandManager.getCommandByType(\"CommandShowJointCanUC\");\n if (command instanceof commandShowJointCanUC_1.default) {\n command.resetScene();\n }\n }\n if (this.active_fatigueData) {\n var command = commandManager.getCommandByType(\"CommandShowFatigue\");\n if (command instanceof commandShowFatigue_1.default) {\n command.resetScene();\n }\n }\n };\n return PostInterfaceManager;\n }(gs_bim_air_1.Longan.ViewerManagerBase);\n exports.PostInterfaceManager = PostInterfaceManager;\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL2dzRGV2RngvbWFuYWdlcnMvaW50ZXJmYWNlTWFuYWdlcnMvcG9zdEludGVyZmFjZU1hbmFnZXIudHMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9bbmFtZV0vLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL2dzRGV2RngvbWFuYWdlcnMvaW50ZXJmYWNlTWFuYWdlcnMvcG9zdEludGVyZmFjZU1hbmFnZXIudHM/N2JjOSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb25nYW4gfSBmcm9tIFwiZ3MtYmltLWFpclwiO1xuaW1wb3J0IHJlbmRlck9iamVjdFNlcnZpY2UgZnJvbSBcIi4uLy4uLy4uL2FwaS9yZW5kZXJPYmplY3RTZXJ2aWNlXCI7XG5pbXBvcnQgeyBWaWV3ZXIgfSBmcm9tIFwiLi4vLi4vLi4vdHlwZWRvY0V4cG9ydFwiO1xuaW1wb3J0IHsgTWVzc2FnZSB9IGZyb20gXCJlbGVtZW50LXVpXCI7XG5pbXBvcnQgQ29tbWFuZFNob3dCZW5kaW5nTW9tZW50IGZyb20gXCIuLi8uLi8uLi92aWV3ZXJXcmFwcGVyL2NvbW1hbmRzL2FmdGVydHJlYXRtZW50L3Nob3dCZW5kaW5nTW9tZW50L2NvbW1hbmRTaG93QmVuZGluZ01vbWVudFwiO1xuaW1wb3J0IENvbW1hbmRQb3N0UmVzdWx0Q2xvdWQgZnJvbSBcIi4uLy4uLy4uL3ZpZXdlcldyYXBwZXIvY29tbWFuZHMvYWZ0ZXJ0cmVhdG1lbnQvcG9zdFJlc3VsdENsb3VkL2NvbW1hbmRQb3N0UmVzdWx0Q2xvdWRcIjtcbmltcG9ydCBDb21tYW5kRGlzdG9ydGlvbiBmcm9tIFwiLi4vLi4vLi4vdmlld2VyV3JhcHBlci9jb21tYW5kcy9hZnRlcnRyZWF0bWVudC9kaXN0b3J0aW9uL2NvbW1hbmREaXN0b3J0aW9uXCI7XG5pbXBvcnQgQ29tbWFuZERlZmxlY3RlZFNoYXBlIGZyb20gXCIuLi8uLi8uLi92aWV3ZXJXcmFwcGVyL2NvbW1hbmRzL2FmdGVydHJlYXRtZW50L3Nob3dEZWZsZWN0ZWRTaGFwZS9jb21tYW5kRGVmbGVjdGVkU2hhcGVcIjtcbmltcG9ydCBDb21tYW5kU2hvd1NoaXBJbXBhY3QgZnJvbSBcIi4uLy4uLy4uL3ZpZXdlcldyYXBwZXIvY29tbWFuZHMvYWZ0ZXJ0cmVhdG1lbnQvc2hvd1NoaXBJbXBhY3QvY29tbWFuZFNob3dTaGlwSW1wYWN0XCI7XG5pbXBvcnQgQ29tbWFuZFNob3dKb2ludENhblVDIGZyb20gXCIuLi8uLi8uLi92aWV3ZXJXcmFwcGVyL2NvbW1hbmRzL2FmdGVydHJlYXRtZW50L3Nob3dKb2ludENhblVDL2NvbW1hbmRTaG93Sm9pbnRDYW5VQ1wiO1xuaW1wb3J0IENvbW1hbmRTaG93RmF0aWd1ZSBmcm9tIFwiLi4vLi4vLi4vdmlld2VyV3JhcHBlci9jb21tYW5kcy9hZnRlcnRyZWF0bWVudC9zaG93RmF0aWd1ZS9jb21tYW5kU2hvd0ZhdGlndWVcIjtcbmltcG9ydCB7IFByb2Nlc3MgfSBmcm9tIFwiLi4vLi4vLi4vZ3NEZXZGeC9wcm9jZXNzXCI7XG5pbXBvcnQgeyBDb21tYW5kTWFuYWdlciB9IGZyb20gXCIuLi9jb21tYW5kTWFuYWdlclwiO1xuXG5leHBvcnQgY2xhc3MgUG9zdEludGVyZmFjZU1hbmFnZXIgZXh0ZW5kcyBMb25nYW4uVmlld2VyTWFuYWdlckJhc2Uge1xuICAvLyDljp/nu5PmnoTpnIDopoHpmpDol49cbiAgb3JpZ2luSXNIaWRlID0gZmFsc2U7XG4gIC8vIOWQjuWkhOeQhuivt+axgue7k+adn+S6i+S7ti5cbiAgZXZlbnRfYmVuZGluZ01vbWVudDogTG9uZ2FuLkxpc3Q8KCkgPT4gdm9pZD4gPSBuZXcgTG9uZ2FuLkxpc3Q8KCkgPT4gdm9pZD4oKTtcbiAgZXZlbnRfdWNEaWFncmFtOiBMb25nYW4uTGlzdDwoKSA9PiB2b2lkPiA9IG5ldyBMb25nYW4uTGlzdDwoKSA9PiB2b2lkPigpO1xuICBldmVudF9wb3N0UmVzdWx0OiBMb25nYW4uTGlzdDwoKSA9PiB2b2lkPiA9IG5ldyBMb25nYW4uTGlzdDwoKSA9PiB2b2lkPigpO1xuICBldmVudF9kaXN0b3J0aW9uOiBMb25nYW4uTGlzdDwoKSA9PiB2b2lkPiA9IG5ldyBMb25nYW4uTGlzdDwoKSA9PiB2b2lkPigpO1xuICBldmVudF9kZWZsZWN0ZWRTaGFwZTogTG9uZ2FuLkxpc3Q8KCkgPT4gdm9pZD4gPSBuZXcgTG9uZ2FuLkxpc3Q8KCkgPT4gdm9pZD4oKTtcbiAgZXZlbnRfc2hpcEltcGFjdDogTG9uZ2FuLkxpc3Q8KCkgPT4gdm9pZD4gPSBuZXcgTG9uZ2FuLkxpc3Q8KCkgPT4gdm9pZD4oKTtcbiAgZXZlbnRfam9pbnRDYW5VQzogTG9uZ2FuLkxpc3Q8KCkgPT4gdm9pZD4gPSBuZXcgTG9uZ2FuLkxpc3Q8KCkgPT4gdm9pZD4oKTtcbiAgZXZlbnRfZmF0aWd1ZURhdGE6IExvbmdhbi5MaXN0PCgpID0+IHZvaWQ+ID0gbmV3IExvbmdhbi5MaXN0PCgpID0+IHZvaWQ+KCk7XG5cbiAgLy/lhoXlipvlm75cbiAgYmVuZGluZ01vbWVudCA9IG51bGw7XG4gIGdldEZpbmlzaF9iZW5kaW5nTW9tZW50ID0gZmFsc2U7XG4gIHRpcF9iZW5kaW5nTW9tZW50ID0gZmFsc2U7XG4gIHJlcXVlc3RlZF9iZW5kaW5nTW9tZW50ID0gbnVsbDtcbiAgbWVzc2FnZV9iZW5kaW5nTW9tZW50ID0gbnVsbDtcbiAgLy9VQ+WbvlxuICB1Y0RpYWdyYW0gPSBudWxsO1xuICBnZXRGaW5pc2hfdWNEaWFncmFtID0gZmFsc2U7XG4gIHRpcF91Y0RpYWdyYW0gPSBmYWxzZTtcbiAgbWVzc2FnZV91Y0RpYWdyYW0gPSBudWxsO1xuICAvL+adhuS7tue7k+aenFxuICBwb3N0UmVzdWx0ID0gbnVsbDtcbiAgcG9zdF9qb2ludENhblN1bW1hcnlVQyA9IG51bGw7XG4gIGdldEZpbmlzaF9wb3N0UmVzdWx0ID0gZmFsc2U7XG4gIHRpcF9wb3N0UmVzdWx0ID0gZmFsc2U7XG4gIG1lc3NhZ2VfcG9zdFJlc3VsdCA9IG51bGw7XG4gIC8v57uT5p6E5Y+Y5b2iXG4gIGRpc3RvcnRpb24gPSBudWxsO1xuICBnZXRGaW5pc2hfZGlzdG9ydGlvbiA9IGZhbHNlO1xuICB0aXBfZGlzdG9ydGlvbiA9IGZhbHNlO1xuICByZXF1ZXN0ZWRfZGlzdG9ydGlvbiA9IG51bGw7XG4gIG1lc3NhZ2VfZGlzdG9ydGlvbiA9IG51bGw7XG4gIC8v5qih5oCB5Yqo55S7XG4gIG1hc3NQb3N0UmVzdWx0ID0gbnVsbDtcbiAgbW9kZVNoYXBlUG9zdFJlc3VsdCA9IG51bGw7XG4gIGdldEZpbmlzaF9kZWZsZWN0ZWRTaGFwZSA9IGZhbHNlO1xuICB0aXBfZGVmbGVjdGVkU2hhcGUgPSBmYWxzZTtcbiAgcmVxdWVzdGVkX2RlZmxlY3RlZFNoYXBlID0gbnVsbDtcbiAgbWVzc2FnZV9kZWZsZWN0ZWRTaGFwZSA9IG51bGw7XG4gIC8v5YCS5aGM5YiG5p6QXG4gIHNoaXBJbXBhY3QgPSBudWxsO1xuICBzaGlwSW1wYWN0RmFjdG9yID0gbnVsbDtcbiAgZ2V0RmluaXNoX3NoaXBJbXBhY3QgPSBmYWxzZTtcbiAgdGlwX3NoaXBJbXBhY3QgPSBmYWxzZTtcbiAgcmVxdWVzdGVkX3NoaXBJbXBhY3QgPSBudWxsO1xuICBtZXNzYWdlX3NoaXBJbXBhY3QgPSBudWxsO1xuICAvL+iKgueCueWGsuWIh1xuICBqb2ludENhblVDID0gbnVsbDtcbiAgam9pbnRDYW5TdW1tYXJ5VUMgPSBudWxsO1xuICBnZXRGaW5pc2hfam9pbnRDYW5VQyA9IGZhbHNlO1xuICB0aXBfam9pbnRDYW5VQyA9IGZhbHNlO1xuICBtZXNzYWdlX2pvaW50Q2FuVUMgPSBudWxsO1xuICAvL+eWsuWKs+aNn+S8pFxuICBmYXRpZ3VlRGF0YSA9IG51bGw7XG4gIGZhdGlndWVEYXRhX2ludGVyID0gbnVsbDtcbiAgZ2V0RmluaXNoX2ZhdGlndWUgPSBmYWxzZTtcbiAgdGlwX2ZhdGlndWVEYXRhID0gZmFsc2U7XG4gIG1lc3NhZ2VfZmF0aWd1ZURhdGEgPSBudWxsO1xuXG4gIGFjdGl2ZV9iZW5kaW5nTW9tZW50ID0gZmFsc2U7XG4gIGFjdGl2ZV9wb3N0UmVzdWx0ID0gZmFsc2U7XG4gIGFjdGl2ZV9kaXN0b3J0aW9uID0gZmFsc2U7XG4gIGFjdGl2ZV9tYXNzUG9zdFJlc3VsdCA9IGZhbHNlO1xuICBhY3RpdmVfc2hpcEltcGFjdCA9IGZhbHNlO1xuICBhY3RpdmVfam9pbnRDYW5VQyA9IGZhbHNlO1xuICBhY3RpdmVfZmF0aWd1ZURhdGEgPSBmYWxzZTtcblxuICByZXF1ZXN0REJEYXRhKCkge1xuICAgIC8v5YaF5Yqb5Zu+XG4gICAgdGhpcy5iZW5kaW5nTW9tZW50ID0gbnVsbDtcbiAgICB0aGlzLmdldEZpbmlzaF9iZW5kaW5nTW9tZW50ID0gZmFsc2U7XG4gICAgdGhpcy50aXBfYmVuZGluZ01vbWVudCA9IGZhbHNlO1xuICAgIHRoaXMucmVxdWVzdGVkX2JlbmRpbmdNb21lbnQgPSBudWxsO1xuICAgIHRoaXMubWVzc2FnZV9iZW5kaW5nTW9tZW50ID0gbnVsbDtcbiAgICAvL1VD5Zu+XG4gICAgdGhpcy51Y0RpYWdyYW0gPSBudWxsO1xuICAgIHRoaXMuZ2V0RmluaXNoX3VjRGlhZ3JhbSA9IGZhbHNlO1xuICAgIHRoaXMudGlwX3VjRGlhZ3JhbSA9IGZhbHNlO1xuICAgIHRoaXMubWVzc2FnZV91Y0RpYWdyYW0gPSBudWxsO1xuICAgIC8v5p2G5Lu257uT5p6cXG4gICAgdGhpcy5wb3N0UmVzdWx0ID0gbnVsbDtcbiAgICB0aGlzLnBvc3Rfam9pbnRDYW5TdW1tYXJ5VUMgPSBudWxsO1xuICAgIHRoaXMuZ2V0RmluaXNoX3Bvc3RSZXN1bHQgPSBmYWxzZTtcbiAgICB0aGlzLnRpcF9wb3N0UmVzdWx0ID0gZmFsc2U7XG4gICAgdGhpcy5tZXNzYWdlX3Bvc3RSZXN1bHQgPSBudWxsO1xuICAgIC8v57uT5p6E5Y+Y5b2iXG4gICAgdGhpcy5kaXN0b3J0aW9uID0gbnVsbDtcbiAgICB0aGlzLmdldEZpbmlzaF9kaXN0b3J0aW9uID0gZmFsc2U7XG4gICAgdGhpcy50aXBfZGlzdG9ydGlvbiA9IGZhbHNlO1xuICAgIHRoaXMucmVxdWVzdGVkX2Rpc3RvcnRpb24gPSBudWxsO1xuICAgIHRoaXMubWVzc2FnZV9kaXN0b3J0aW9uID0gbnVsbDtcbiAgICAvL+aooeaAgeWKqOeUu1xuICAgIHRoaXMubWFzc1Bvc3RSZXN1bHQgPSBudWxsO1xuICAgIHRoaXMubW9kZVNoYXBlUG9zdFJlc3VsdCA9IG51bGw7XG4gICAgdGhpcy5nZXRGaW5pc2hfZGVmbGVjdGVkU2hhcGUgPSBmYWxzZTtcbiAgICB0aGlzLnRpcF9kZWZsZWN0ZWRTaGFwZSA9IGZhbHNlO1xuICAgIHRoaXMucmVxdWVzdGVkX2RlZmxlY3RlZFNoYXBlID0gbnVsbDtcbiAgICB0aGlzLm1lc3NhZ2VfZGVmbGVjdGVkU2hhcGUgPSBudWxsO1xuICAgIC8v5YCS5aGM5YiG5p6QXG4gICAgdGhpcy5zaGlwSW1wYWN0ID0gbnVsbDtcbiAgICB0aGlzLnNoaXBJbXBhY3RGYWN0b3IgPSBudWxsO1xuICAgIHRoaXMuZ2V0RmluaXNoX3NoaXBJbXBhY3QgPSBmYWxzZTtcbiAgICB0aGlzLnRpcF9zaGlwSW1wYWN0ID0gZmFsc2U7XG4gICAgdGhpcy5yZXF1ZXN0ZWRfc2hpcEltcGFjdCA9IG51bGw7XG4gICAgdGhpcy5tZXNzYWdlX3NoaXBJbXBhY3QgPSBudWxsO1xuICAgIC8v6IqC54K55Yay5YiHXG4gICAgdGhpcy5qb2ludENhblVDID0gbnVsbDtcbiAgICB0aGlzLmpvaW50Q2FuU3VtbWFyeVVDID0gbnVsbDtcbiAgICB0aGlzLmdldEZpbmlzaF9qb2ludENhblVDID0gZmFsc2U7XG4gICAgdGhpcy50aXBfam9pbnRDYW5VQyA9IGZhbHNlO1xuICAgIHRoaXMubWVzc2FnZV9qb2ludENhblVDID0gbnVsbDtcbiAgICAvL+eWsuWKs+aNn+S8pFxuICAgIHRoaXMuZmF0aWd1ZURhdGEgPSBudWxsO1xuICAgIHRoaXMuZmF0aWd1ZURhdGFfaW50ZXIgPSBudWxsO1xuICAgIHRoaXMuZ2V0RmluaXNoX2ZhdGlndWUgPSBmYWxzZTtcbiAgICB0aGlzLnRpcF9mYXRpZ3VlRGF0YSA9IGZhbHNlO1xuICAgIHRoaXMubWVzc2FnZV9mYXRpZ3VlRGF0YSA9IG51bGw7XG5cbiAgICBsZXQgdmlld2VyID0gdGhpcy52aWV3ZXIgYXMgVmlld2VyO1xuICAgIGxldCBwcm9qZWN0SWQgPSB2aWV3ZXIuc3RydWN0dXJlVHJlZU1hbmFnZXIucm9vdE5vZGUub2JqLnJlbmRlck9iamVjdC5pZDtcblxuICAgIC8vIC8vUE9TVE1FTUJFUlxuICAgIC8vIHtcbiAgICAvLyAgIGxldCB0YWJsZSA9IFwiUl9QT1NUTUVNQkVSUkVTVUxUU1wiO1xuICAgIC8vICAgbGV0IGdyb3VwID0gXCJMb2FkQ29uZGl0aW9uTmFtZVwiO1xuXG4gICAgLy8gICBsZXQgY29sdW1ucyA9IFtcbiAgICAvLyAgICAgLy8g5YaF5YqbXG4gICAgLy8gICAgIFwiTWVtYmVyTmFtZVwiLFxuICAgIC8vICAgICBcIk1lbWJlcklEXCIsXG4gICAgLy8gICAgIFwiRGlzdGFuY2VcIixcbiAgICAvLyAgICAgXCJNb21lbnRVbml0c1wiLFxuICAgIC8vICAgICBcIkRpc3RhbmNlVW5pdHNcIixcbiAgICAvLyAgICAgXCJZWUJlbmRpbmdNb21lbnRcIixcbiAgICAvLyAgICAgXCJaWkJlbmRpbmdNb21lbnRcIixcbiAgICAvLyAgICAgXCJZU2hlYXJcIixcbiAgICAvLyAgICAgXCJaU2hlYXJcIixcbiAgICAvLyAgICAgXCJBeGlhbExvYWRcIixcbiAgICAvLyAgICAgLy8gVUNcbiAgICAvLyAgICAgXCJBeGlhbFVDXCIsXG4gICAgLy8gICAgIFwiWVlCZW5kaW5nVUNcIixcbiAgICAvLyAgICAgXCJaWkJlbmRpbmdVQ1wiLFxuICAgIC8vICAgICBcIlRvdGFsU2hlYXJVQ1wiLFxuICAgIC8vICAgICBcIk1heFVDXCIsXG4gICAgLy8gICAgIC8vIOadhuS7tue7k+aenFxuICAgIC8vICAgICBcIkZvcmNlVW5pdHNcIixcbiAgICAvLyAgICAgXCJBWFN0cmVzc1wiLFxuICAgIC8vICAgICBcIllZQmVuZGluZ1N0cmVzc1wiLFxuICAgIC8vICAgICBcIlpaQmVuZGluZ1N0cmVzc1wiLFxuICAgIC8vICAgICBcIllTaGVhclN0cmVzc1wiLFxuICAgIC8vICAgICBcIlpTaGVhclN0cmVzc1wiLFxuICAgIC8vICAgXTtcblxuICAgIC8vICAgbGV0IHByb21pc2VzID0gW107XG4gICAgLy8gICBsZXQgcHJvbWlzZTEgPSByZW5kZXJPYmplY3RTZXJ2aWNlXG4gICAgLy8gICAgIC5wb3N0RGF0YShwcm9qZWN0SWQsIHRhYmxlLCBjb2x1bW5zLCBncm91cClcbiAgICAvLyAgICAgLnRoZW4oKHJlc3VsdDogYW55KSA9PiB7XG4gICAgLy8gICAgICAgdGhpcy5ldmVudF9iZW5kaW5nTW9tZW50LmZvckVhY2goKGl0ZW06ICgpID0+IHZvaWQpID0+IHtcbiAgICAvLyAgICAgICAgIGl0ZW0oKTtcbiAgICAvLyAgICAgICB9KTtcblxuICAgIC8vICAgICAgIHRoaXMuZXZlbnRfdWNEaWFncmFtLmZvckVhY2goKGl0ZW06ICgpID0+IHZvaWQpID0+IHtcbiAgICAvLyAgICAgICAgIGl0ZW0oKTtcbiAgICAvLyAgICAgICB9KTtcbiBcbiAgICAvLyAgICAgICB0aGlzLmdldEZpbmlzaF9iZW5kaW5nTW9tZW50ID0gdHJ1ZTtcbiAgICAvLyAgICAgICB0aGlzLmdldEZpbmlzaF91Y0RpYWdyYW0gPSB0cnVlO1xuXG4gICAgLy8gICAgICAgaWYgKHRoaXMudGlwX2JlbmRpbmdNb21lbnQpIHtcbiAgICAvLyAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VfYmVuZGluZ01vbWVudCkge1xuICAgIC8vICAgICAgICAgICB0aGlzLm1lc3NhZ2VfYmVuZGluZ01vbWVudC5jbG9zZSgpO1xuICAgIC8vICAgICAgICAgICB0aGlzLm1lc3NhZ2VfYmVuZGluZ01vbWVudCA9IG51bGw7XG4gICAgLy8gICAgICAgICB9XG4gICAgLy8gICAgICAgICBNZXNzYWdlLmluZm8oXCLlhoXlipvlm77lkI7lpITnkIbmlbDmja7or7fmsYLlrozmiJAuXCIpO1xuICAgIC8vICAgICAgICAgdGhpcy50aXBfYmVuZGluZ01vbWVudCA9IGZhbHNlO1xuICAgIC8vICAgICAgIH1cbiAgICAvLyAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgLy8gICAgICAgICB0aGlzLmJlbmRpbmdNb21lbnQgPSByZXN1bHQuZ3JvdXBzO1xuXG4gICAgLy8gICAgICAgICBpZiAodGhpcy5yZXF1ZXN0ZWRfYmVuZGluZ01vbWVudCkge1xuICAgIC8vICAgICAgICAgICB0aGlzLnJlcXVlc3RlZF9iZW5kaW5nTW9tZW50KCk7XG4gICAgLy8gICAgICAgICAgIHRoaXMucmVxdWVzdGVkX2JlbmRpbmdNb21lbnQgPSBudWxsO1xuICAgIC8vICAgICAgICAgfVxuICAgIC8vICAgICAgIH1cblxuICAgIC8vICAgICAgIGlmICh0aGlzLnRpcF91Y0RpYWdyYW0pIHtcbiAgICAvLyAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VfdWNEaWFncmFtKSB7XG4gICAgLy8gICAgICAgICAgIHRoaXMubWVzc2FnZV91Y0RpYWdyYW0uY2xvc2UoKTtcbiAgICAvLyAgICAgICAgICAgdGhpcy5tZXNzYWdlX3VjRGlhZ3JhbSA9IG51bGw7XG4gICAgLy8gICAgICAgICB9XG4gICAgLy8gICAgICAgICBNZXNzYWdlLmluZm8oXCJVQ+WbvuWQjuWkhOeQhuaVsOaNruivt+axguWujOaIkC5cIik7XG4gICAgLy8gICAgICAgICB0aGlzLnRpcF91Y0RpYWdyYW0gPSBmYWxzZTtcbiAgICAvLyAgICAgICB9XG4gICAgLy8gICAgICAgaWYgKHJlc3VsdCkge1xuICAgIC8vICAgICAgICAgdGhpcy51Y0RpYWdyYW0gPSByZXN1bHQuZ3JvdXBzO1xuICAgIC8vICAgICAgIH1cblxuICAgIC8vICAgICAgIGlmKHJlc3VsdCkge1xuICAgIC8vICAgICAgICAgdGhpcy5wb3N0UmVzdWx0ID0gcmVzdWx0Lmdyb3VwcztcbiAgICAvLyAgICAgICB9XG4gICAgLy8gICAgIH0pO1xuXG4gICAgLy8gICBsZXQgdGFibGUxID0gXCJFbGVtZW50VUNcIjtcbiAgICAvLyAgIGxldCBjb2x1bW5zMSA9IFtcIk1lbWJlck5hbWVcIiwgXCJMb2FkQ29uZGl0aW9uXCJdO1xuXG4gICAgLy8gICBsZXQgcHJvbWlzZTIgPSByZW5kZXJPYmplY3RTZXJ2aWNlXG4gICAgLy8gICAgIC5wb3N0RGF0YShwcm9qZWN0SWQsIHRhYmxlMSwgY29sdW1uczEsIFwiXCIpXG4gICAgLy8gICAgIC50aGVuKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgIC8vICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAvLyAgICAgICAgIHRoaXMucG9zdF9qb2ludENhblN1bW1hcnlVQyA9IHJlc3VsdC5yb3dzO1xuICAgIC8vICAgICAgIH1cbiAgICAvLyAgICAgfSk7XG4gICAgLy8gICBwcm9taXNlcy5wdXNoKHByb21pc2UxKTtcbiAgICAvLyAgIHByb21pc2VzLnB1c2gocHJvbWlzZTIpO1xuXG4gICAgLy8gICBQcm9taXNlLmFsbChwcm9taXNlcykudGhlbigoKSA9PiB7XG4gICAgLy8gICAgIHRoaXMuZXZlbnRfcG9zdFJlc3VsdC5mb3JFYWNoKChpdGVtOiAoKSA9PiB2b2lkKSA9PiB7XG4gICAgLy8gICAgICAgaXRlbSgpO1xuICAgIC8vICAgICB9KTtcblxuICAgIC8vICAgICB0aGlzLmdldEZpbmlzaF9wb3N0UmVzdWx0ID0gdHJ1ZTtcbiAgICAvLyAgICAgaWYgKHRoaXMudGlwX3Bvc3RSZXN1bHQpIHtcbiAgICAvLyAgICAgICBpZiAodGhpcy5tZXNzYWdlX3Bvc3RSZXN1bHQpIHtcbiAgICAvLyAgICAgICAgIHRoaXMubWVzc2FnZV9wb3N0UmVzdWx0LmNsb3NlKCk7XG4gICAgLy8gICAgICAgICB0aGlzLm1lc3NhZ2VfcG9zdFJlc3VsdCA9IG51bGw7XG4gICAgLy8gICAgICAgfVxuICAgIC8vICAgICAgIE1lc3NhZ2UuaW5mbyhcIuadhuS7tue7k+aenOWQjuWkhOeQhuaVsOaNruivt+axguWujOaIkC5cIik7XG4gICAgLy8gICAgICAgdGhpcy50aXBfcG9zdFJlc3VsdCA9IGZhbHNlO1xuICAgIC8vICAgICB9XG4gICAgLy8gICB9KTtcbiAgICAvLyB9XG5cbiAgICAvLyDlhoXlipvlm75cbiAgICB7XG4gICAgICBsZXQgdGFibGUgPSBcIlJfUE9TVE1FTUJFUlJFU1VMVFNcIjtcbiAgICAgIGxldCBncm91cCA9IFwiTG9hZENvbmRpdGlvbk5hbWVcIjtcblxuICAgICAgbGV0IGNvbHVtbnMgPSBbXG4gICAgICAgIFwiTWVtYmVyTmFtZVwiLFxuICAgICAgICBcIk1lbWJlcklEXCIsXG4gICAgICAgIFwiRGlzdGFuY2VcIixcbiAgICAgICAgXCJNb21lbnRVbml0c1wiLFxuICAgICAgICBcIkRpc3RhbmNlVW5pdHNcIixcbiAgICAgICAgXCJZWUJlbmRpbmdNb21lbnRcIixcbiAgICAgICAgXCJaWkJlbmRpbmdNb21lbnRcIixcbiAgICAgICAgXCJZU2hlYXJcIixcbiAgICAgICAgXCJaU2hlYXJcIixcbiAgICAgICAgXCJBeGlhbExvYWRcIixcbiAgICAgIF07XG5cbiAgICAgIHJlbmRlck9iamVjdFNlcnZpY2VcbiAgICAgICAgLnBvc3REYXRhKHByb2plY3RJZCwgdGFibGUsIGNvbHVtbnMsIGdyb3VwKVxuICAgICAgICAudGhlbigocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmV2ZW50X2JlbmRpbmdNb21lbnQuZm9yRWFjaCgoaXRlbTogKCkgPT4gdm9pZCkgPT4ge1xuICAgICAgICAgICAgaXRlbSgpO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy5nZXRGaW5pc2hfYmVuZGluZ01vbWVudCA9IHRydWU7XG4gICAgICAgICAgaWYgKHRoaXMudGlwX2JlbmRpbmdNb21lbnQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VfYmVuZGluZ01vbWVudCkge1xuICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VfYmVuZGluZ01vbWVudC5jbG9zZSgpO1xuICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VfYmVuZGluZ01vbWVudCA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBNZXNzYWdlLmluZm8oXCLlhoXlipvlm77lkI7lpITnkIbmlbDmja7or7fmsYLlrozmiJAuXCIpO1xuICAgICAgICAgICAgdGhpcy50aXBfYmVuZGluZ01vbWVudCA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICB0aGlzLmJlbmRpbmdNb21lbnQgPSByZXN1bHQuZ3JvdXBzO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5yZXF1ZXN0ZWRfYmVuZGluZ01vbWVudCkge1xuICAgICAgICAgICAgICB0aGlzLnJlcXVlc3RlZF9iZW5kaW5nTW9tZW50KCk7XG4gICAgICAgICAgICAgIHRoaXMucmVxdWVzdGVkX2JlbmRpbmdNb21lbnQgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gVUPlm75cbiAgICB7XG4gICAgICBsZXQgdGFibGUgPSBcIlJfUE9TVE1FTUJFUlJFU1VMVFNcIjtcbiAgICAgIGxldCBncm91cCA9IFwiTG9hZENvbmRpdGlvbk5hbWVcIjtcblxuICAgICAgbGV0IGNvbHVtbnMgPSBbXG4gICAgICAgIFwiTWVtYmVyTmFtZVwiLFxuICAgICAgICBcIk1lbWJlcklEXCIsXG4gICAgICAgIFwiRGlzdGFuY2VcIixcbiAgICAgICAgXCJNb21lbnRVbml0c1wiLFxuICAgICAgICBcIkRpc3RhbmNlVW5pdHNcIixcbiAgICAgICAgXCJBeGlhbFVDXCIsXG4gICAgICAgIFwiWVlCZW5kaW5nVUNcIixcbiAgICAgICAgXCJaWkJlbmRpbmdVQ1wiLFxuICAgICAgICBcIlRvdGFsU2hlYXJVQ1wiLFxuICAgICAgICBcIk1heFVDXCIsXG4gICAgICBdO1xuXG4gICAgICByZW5kZXJPYmplY3RTZXJ2aWNlXG4gICAgICAgIC5wb3N0RGF0YShwcm9qZWN0SWQsIHRhYmxlLCBjb2x1bW5zLCBncm91cClcbiAgICAgICAgLnRoZW4oKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5ldmVudF91Y0RpYWdyYW0uZm9yRWFjaCgoaXRlbTogKCkgPT4gdm9pZCkgPT4ge1xuICAgICAgICAgICAgaXRlbSgpO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy5nZXRGaW5pc2hfdWNEaWFncmFtID0gdHJ1ZTtcbiAgICAgICAgICBpZiAodGhpcy50aXBfdWNEaWFncmFtKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5tZXNzYWdlX3VjRGlhZ3JhbSkge1xuICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VfdWNEaWFncmFtLmNsb3NlKCk7XG4gICAgICAgICAgICAgIHRoaXMubWVzc2FnZV91Y0RpYWdyYW0gPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgTWVzc2FnZS5pbmZvKFwiVUPlm77lkI7lpITnkIbmlbDmja7or7fmsYLlrozmiJAuXCIpO1xuICAgICAgICAgICAgdGhpcy50aXBfdWNEaWFncmFtID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgIHRoaXMudWNEaWFncmFtID0gcmVzdWx0Lmdyb3VwcztcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIOadhuS7tue7k+aenFxuICAgIHtcbiAgICAgIGxldCB0YWJsZSA9IFwiUl9QT1NUTUVNQkVSUkVTVUxUU1wiO1xuICAgICAgbGV0IGdyb3VwID0gXCJMb2FkQ29uZGl0aW9uTmFtZVwiO1xuXG4gICAgICBsZXQgY29sdW1ucyA9IFtcbiAgICAgICAgXCJNZW1iZXJOYW1lXCIsXG4gICAgICAgIFwiTWVtYmVySURcIixcbiAgICAgICAgXCJEaXN0YW5jZVwiLFxuICAgICAgICBcIkZvcmNlVW5pdHNcIixcbiAgICAgICAgXCJNb21lbnRVbml0c1wiLFxuICAgICAgICBcIkRpc3RhbmNlVW5pdHNcIixcbiAgICAgICAgXCJNYXhVQ1wiLFxuICAgICAgICBcIkF4aWFsVUNcIixcbiAgICAgICAgXCJZWUJlbmRpbmdVQ1wiLFxuICAgICAgICBcIlpaQmVuZGluZ1VDXCIsXG4gICAgICAgIFwiVG90YWxTaGVhclVDXCIsXG4gICAgICAgIFwiQVhTdHJlc3NcIixcbiAgICAgICAgXCJZWUJlbmRpbmdTdHJlc3NcIixcbiAgICAgICAgXCJaWkJlbmRpbmdTdHJlc3NcIixcbiAgICAgICAgXCJZU2hlYXJTdHJlc3NcIixcbiAgICAgICAgXCJaU2hlYXJTdHJlc3NcIixcbiAgICAgICAgXCJBeGlhbExvYWRcIixcbiAgICAgICAgXCJZWUJlbmRpbmdNb21lbnRcIixcbiAgICAgICAgXCJaWkJlbmRpbmdNb21lbnRcIixcbiAgICAgIF07XG5cbiAgICAgIGxldCBwcm9taXNlcyA9IFtdO1xuICAgICAgbGV0IHByb21pc2UxID0gcmVuZGVyT2JqZWN0U2VydmljZVxuICAgICAgICAucG9zdERhdGEocHJvamVjdElkLCB0YWJsZSwgY29sdW1ucywgZ3JvdXApXG4gICAgICAgIC50aGVuKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgIHRoaXMucG9zdFJlc3VsdCA9IHJlc3VsdC5ncm91cHM7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgbGV0IHRhYmxlMSA9IFwiRWxlbWVudFVDXCI7XG4gICAgICBsZXQgY29sdW1uczEgPSBbXCJNZW1iZXJOYW1lXCIsIFwiTG9hZENvbmRpdGlvblwiXTtcblxuICAgICAgbGV0IHByb21pc2UyID0gcmVuZGVyT2JqZWN0U2VydmljZVxuICAgICAgICAucG9zdERhdGEocHJvamVjdElkLCB0YWJsZTEsIGNvbHVtbnMxLCBcIlwiKVxuICAgICAgICAudGhlbigocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICB0aGlzLnBvc3Rfam9pbnRDYW5TdW1tYXJ5VUMgPSByZXN1bHQucm93cztcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgcHJvbWlzZXMucHVzaChwcm9taXNlMSk7XG4gICAgICBwcm9taXNlcy5wdXNoKHByb21pc2UyKTtcblxuICAgICAgUHJvbWlzZS5hbGwocHJvbWlzZXMpLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLmV2ZW50X3Bvc3RSZXN1bHQuZm9yRWFjaCgoaXRlbTogKCkgPT4gdm9pZCkgPT4ge1xuICAgICAgICAgIGl0ZW0oKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5nZXRGaW5pc2hfcG9zdFJlc3VsdCA9IHRydWU7XG4gICAgICAgIGlmICh0aGlzLnRpcF9wb3N0UmVzdWx0KSB7XG4gICAgICAgICAgaWYgKHRoaXMubWVzc2FnZV9wb3N0UmVzdWx0KSB7XG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VfcG9zdFJlc3VsdC5jbG9zZSgpO1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlX3Bvc3RSZXN1bHQgPSBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgICBNZXNzYWdlLmluZm8oXCLmnYbku7bnu5PmnpzlkI7lpITnkIbmlbDmja7or7fmsYLlrozmiJAuXCIpO1xuICAgICAgICAgIHRoaXMudGlwX3Bvc3RSZXN1bHQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8g57uT5p6E5Y+Y5b2iXG4gICAge1xuICAgICAgbGV0IHRhYmxlID0gXCJSX1BPU1RKT0lOVERJU1BMQUNFTUVOVFJFU1VMVFNcIjtcbiAgICAgIGxldCBncm91cCA9IFwiTG9hZENvbmRpdGlvbk5hbWVcIjtcblxuICAgICAgbGV0IGNvbHVtbnMgPSBbXG4gICAgICAgIFwiSm9pbnRJRFwiLFxuICAgICAgICBcIkRlZmxlY3Rpb25UcmFuc2xhdGlvblVuaXRzXCIsXG4gICAgICAgIFwiRGVmbGVjdGlvblJvdGF0aW9uYWxVbml0c1wiLFxuICAgICAgICBcIkRlZmxlY3Rpb25YXCIsXG4gICAgICAgIFwiRGVmbGVjdGlvbllcIixcbiAgICAgICAgXCJEZWZsZWN0aW9uWlwiLFxuICAgICAgICBcIlJvdGF0aW9uWFwiLFxuICAgICAgICBcIlJvdGF0aW9uWVwiLFxuICAgICAgICBcIlJvdGF0aW9uWlwiLFxuICAgICAgXTtcblxuICAgICAgcmVuZGVyT2JqZWN0U2VydmljZVxuICAgICAgICAucG9zdERhdGEocHJvamVjdElkLCB0YWJsZSwgY29sdW1ucywgZ3JvdXApXG4gICAgICAgIC50aGVuKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuZXZlbnRfZGlzdG9ydGlvbi5mb3JFYWNoKChpdGVtOiAoKSA9PiB2b2lkKSA9PiB7XG4gICAgICAgICAgICBpdGVtKCk7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB0aGlzLmdldEZpbmlzaF9kaXN0b3J0aW9uID0gdHJ1ZTtcbiAgICAgICAgICBpZiAodGhpcy50aXBfZGlzdG9ydGlvbikge1xuICAgICAgICAgICAgaWYgKHRoaXMubWVzc2FnZV9kaXN0b3J0aW9uKSB7XG4gICAgICAgICAgICAgIHRoaXMubWVzc2FnZV9kaXN0b3J0aW9uLmNsb3NlKCk7XG4gICAgICAgICAgICAgIHRoaXMubWVzc2FnZV9kaXN0b3J0aW9uID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIE1lc3NhZ2UuaW5mbyhcIue7k+aehOWPmOW9ouWQjuWkhOeQhuaVsOaNruivt+axguWujOaIkC5cIik7XG4gICAgICAgICAgICB0aGlzLnRpcF9kaXN0b3J0aW9uID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzdG9ydGlvbiA9IHJlc3VsdC5ncm91cHM7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnJlcXVlc3RlZF9kaXN0b3J0aW9uKSB7XG4gICAgICAgICAgICAgIHRoaXMucmVxdWVzdGVkX2Rpc3RvcnRpb24oKTtcbiAgICAgICAgICAgICAgdGhpcy5yZXF1ZXN0ZWRfZGlzdG9ydGlvbiA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyDmqKHmgIHliqjnlLtcbiAgICB7XG4gICAgICBsZXQgdGFibGUgPSBcIlJfRlJFUUFOREdFTk1BU1NcIjtcbiAgICAgIGxldCBjb2x1bW5zID0gW1wiTW9kZUlEXCIsIFwiRlJFUVwiLCBcIkdlbk1hc3NcIiwgXCJFaWdlbnZhbHVlXCIsIFwiUGVyaW9kXCJdO1xuXG4gICAgICByZW5kZXJPYmplY3RTZXJ2aWNlXG4gICAgICAgIC5wb3N0RGF0YShwcm9qZWN0SWQsIHRhYmxlLCBjb2x1bW5zLCBcIlwiKVxuICAgICAgICAudGhlbigocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICB0aGlzLm1hc3NQb3N0UmVzdWx0ID0gcmVzdWx0LnJvd3M7XG5cbiAgICAgICAgICAgIGxldCBjb2x1bW5zMiA9IFtcImpvaW50SURcIiwgXCJET0ZcIiwgXCJNb2RlRE9GTm9cIl07XG4gICAgICAgICAgICBmb3IgKGxldCBpIG9mIE9iamVjdC5rZXlzKHJlc3VsdC5yb3dzKSkge1xuICAgICAgICAgICAgICBpZiAocmVzdWx0LnJvd3NbaV0pIHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kZUlEID0gcmVzdWx0LnJvd3NbaV0uTW9kZUlEO1xuICAgICAgICAgICAgICAgIGNvbHVtbnMyLnB1c2goXCJNb2RlU2hhcGVcIiArIG1vZGVJRCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV0IHRhYmxlMiA9IFwiUl9Nb2RlU2hhcGVcIjtcbiAgICAgICAgICAgIGxldCBncnVvcCA9IFwiam9pbnRJRFwiO1xuICAgICAgICAgICAgcmVuZGVyT2JqZWN0U2VydmljZVxuICAgICAgICAgICAgICAucG9zdERhdGEocHJvamVjdElkLCB0YWJsZTIsIGNvbHVtbnMyLCBncnVvcClcbiAgICAgICAgICAgICAgLnRoZW4oKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5ldmVudF9kZWZsZWN0ZWRTaGFwZS5mb3JFYWNoKChpdGVtOiAoKSA9PiB2b2lkKSA9PiB7XG4gICAgICAgICAgICAgICAgICBpdGVtKCk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmdldEZpbmlzaF9kZWZsZWN0ZWRTaGFwZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudGlwX2RlZmxlY3RlZFNoYXBlKSB7XG4gICAgICAgICAgICAgICAgICBpZiAodGhpcy5tZXNzYWdlX2RlZmxlY3RlZFNoYXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZV9kZWZsZWN0ZWRTaGFwZS5jbG9zZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1lc3NhZ2VfZGVmbGVjdGVkU2hhcGUgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgTWVzc2FnZS5pbmZvKFwi5qih5oCB5Yqo55S75ZCO5Y+w5pWw5o2u6K+35rGC5a6M5oiQLlwiKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMudGlwX2RlZmxlY3RlZFNoYXBlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgIHRoaXMubW9kZVNoYXBlUG9zdFJlc3VsdCA9IHJlc3VsdC5ncm91cHM7XG5cbiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnJlcXVlc3RlZF9kZWZsZWN0ZWRTaGFwZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlcXVlc3RlZF9kZWZsZWN0ZWRTaGFwZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlcXVlc3RlZF9kZWZsZWN0ZWRTaGFwZSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5ldmVudF9kZWZsZWN0ZWRTaGFwZS5mb3JFYWNoKChpdGVtOiAoKSA9PiB2b2lkKSA9PiB7XG4gICAgICAgICAgICAgIGl0ZW0oKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLmdldEZpbmlzaF9kZWZsZWN0ZWRTaGFwZSA9IHRydWU7XG4gICAgICAgICAgICBpZiAodGhpcy50aXBfZGVmbGVjdGVkU2hhcGUpIHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMubWVzc2FnZV9kZWZsZWN0ZWRTaGFwZSkge1xuICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZV9kZWZsZWN0ZWRTaGFwZS5jbG9zZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMubWVzc2FnZV9kZWZsZWN0ZWRTaGFwZSA9IG51bGw7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgTWVzc2FnZS5pbmZvKFwi5qih5oCB5Yqo55S75ZCO5Y+w5pWw5o2u6K+35rGC5a6M5oiQLlwiKTtcbiAgICAgICAgICAgICAgdGhpcy50aXBfZGVmbGVjdGVkU2hhcGUgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIOWAkuWhjOWIhuaekFxuICAgIHtcbiAgICAgIGxldCB0YWJsZSA9IFwiUl9DT0xMQVBTRURFRkxFQ1RJT05TQU5EUkVBQ1RJT05GT1JDRVwiO1xuICAgICAgbGV0IGdyb3VwID0gXCJJTkNcIjtcblxuICAgICAgbGV0IGNvbHVtbnMgPSBbXG4gICAgICAgIFwiSU5DXCIsXG4gICAgICAgIFwiSm9pbnROYW1lXCIsXG4gICAgICAgIFwiTG9hZENhc2VcIixcbiAgICAgICAgXCJEWFwiLFxuICAgICAgICBcIkRZXCIsXG4gICAgICAgIFwiRFpcIixcbiAgICAgICAgXCJSWFwiLFxuICAgICAgICBcIlJZXCIsXG4gICAgICAgIFwiUlpcIixcbiAgICAgICAgXCJNZW1iZXJOYW1lXCIsXG4gICAgICAgIFwiTWVtUGxhc3RpY1JhdGlvXCIsXG4gICAgICBdO1xuXG4gICAgICBsZXQgcHJvbWlzZXMgPSBbXTtcbiAgICAgIGxldCBwcm9taXNlMSA9IHJlbmRlck9iamVjdFNlcnZpY2VcbiAgICAgICAgLnBvc3REYXRhKHByb2plY3RJZCwgdGFibGUsIGNvbHVtbnMsIGdyb3VwKVxuICAgICAgICAudGhlbigocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICB0aGlzLnNoaXBJbXBhY3QgPSByZXN1bHQuZ3JvdXBzO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgIGxldCB0YWJsZTEgPSBcIlJfQ09MTEFQU0VBTkFMWVNJU0xPR1wiO1xuICAgICAgbGV0IGNvbHVtbnMxID0gW1wiSU5DXCIsIFwiTG9hZENhc2VcIiwgXCJMb2FkRmFjdG9yXCJdO1xuXG4gICAgICBsZXQgcHJvbWlzZTIgPSByZW5kZXJPYmplY3RTZXJ2aWNlXG4gICAgICAgIC5wb3N0RGF0YShwcm9qZWN0SWQsIHRhYmxlMSwgY29sdW1uczEsIGdyb3VwKVxuICAgICAgICAudGhlbigocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICB0aGlzLnNoaXBJbXBhY3RGYWN0b3IgPSByZXN1bHQuZ3JvdXBzO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgIHByb21pc2VzLnB1c2gocHJvbWlzZTEpO1xuICAgICAgcHJvbWlzZXMucHVzaChwcm9taXNlMik7XG5cbiAgICAgIFByb21pc2UuYWxsKHByb21pc2VzKS50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5ldmVudF9zaGlwSW1wYWN0LmZvckVhY2goKGl0ZW06ICgpID0+IHZvaWQpID0+IHtcbiAgICAgICAgICBpdGVtKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZ2V0RmluaXNoX3NoaXBJbXBhY3QgPSB0cnVlO1xuICAgICAgICBpZiAodGhpcy50aXBfc2hpcEltcGFjdCkge1xuICAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2Vfc2hpcEltcGFjdCkge1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlX3NoaXBJbXBhY3QuY2xvc2UoKTtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZV9zaGlwSW1wYWN0ID0gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgICAgTWVzc2FnZS5pbmZvKFwi5YCS5aGM5YiG5p6Q5ZCO5aSE55CG5pWw5o2u6K+35rGC5a6M5oiQLlwiKTtcbiAgICAgICAgICB0aGlzLnRpcF9zaGlwSW1wYWN0ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucmVxdWVzdGVkX3NoaXBJbXBhY3QpIHtcbiAgICAgICAgICB0aGlzLnJlcXVlc3RlZF9zaGlwSW1wYWN0KCk7XG4gICAgICAgICAgdGhpcy5yZXF1ZXN0ZWRfc2hpcEltcGFjdCA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIOiKgueCueWGsuWIh1xuICAgIHtcbiAgICAgIGxldCB0YWJsZSA9IFwiSm9pbnRDYW5VQ1wiO1xuICAgICAgbGV0IGdyb3VwID0gXCJMb2FkQ2FzZVwiO1xuICAgICAgbGV0IGNvbHVtbnMgPSBbXCJDb21tb25Kb2ludE5hbWVcIiwgXCJDaG9yZEpvaW50TmFtZVwiLCBcIkJyYWNlSm9pbnROYW1lXCJdO1xuXG4gICAgICBsZXQgcHJvbWlzZXMgPSBbXTtcbiAgICAgIGxldCBwcm9taXNlMSA9IHJlbmRlck9iamVjdFNlcnZpY2VcbiAgICAgICAgLnBvc3REYXRhKHByb2plY3RJZCwgdGFibGUsIGNvbHVtbnMsIGdyb3VwKVxuICAgICAgICAudGhlbigocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICB0aGlzLmpvaW50Q2FuVUMgPSByZXN1bHQuZ3JvdXBzO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgIGxldCB0YWJsZTEgPSBcIkpvaW50Q2FuU3VtbWFyeVVDXCI7XG4gICAgICBsZXQgY29sdW1uczEgPSBbXCJKb2ludE5hbWVcIiwgXCJPcmlnTG9hZFVDXCIsIFwiU0FCcmFjZUpvaW50XCJdO1xuICAgICAgbGV0IHByb21pc2UyID0gcmVuZGVyT2JqZWN0U2VydmljZVxuICAgICAgICAucG9zdERhdGEocHJvamVjdElkLCB0YWJsZTEsIGNvbHVtbnMxLCBcIiBcIilcbiAgICAgICAgLnRoZW4oKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgdGhpcy5qb2ludENhblN1bW1hcnlVQyA9IHJlc3VsdC5yb3dzO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgIHByb21pc2VzLnB1c2gocHJvbWlzZTEpO1xuICAgICAgcHJvbWlzZXMucHVzaChwcm9taXNlMik7XG5cbiAgICAgIFByb21pc2UuYWxsKHByb21pc2VzKS50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5ldmVudF9qb2ludENhblVDLmZvckVhY2goKGl0ZW06ICgpID0+IHZvaWQpID0+IHtcbiAgICAgICAgICBpdGVtKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZ2V0RmluaXNoX2pvaW50Q2FuVUMgPSB0cnVlO1xuICAgICAgICBpZiAodGhpcy50aXBfam9pbnRDYW5VQykge1xuICAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2Vfam9pbnRDYW5VQykge1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlX2pvaW50Q2FuVUMuY2xvc2UoKTtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZV9qb2ludENhblVDID0gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgICAgTWVzc2FnZS5pbmZvKFwi6IqC54K55Yay5YiH5ZCO5aSE55CG5pWw5o2u6K+35rGC5a6M5oiQLlwiKTtcbiAgICAgICAgICB0aGlzLnRpcF9qb2ludENhblVDID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIOeWsuWKs+aNn+S8pFxuICAgIHtcbiAgICAgIGxldCB0YWJsZSA9IFwiUl9GQVRJR1VFTUVNQkVSREVUQUlMXCI7XG4gICAgICBsZXQgZ3JvdXAgPSBcIkxvYWRDYXNlXCI7XG5cbiAgICAgIGxldCBjb2x1bW5zID0gW1xuICAgICAgICBcIkpvaW50TmFtZVwiLFxuICAgICAgICBcIkNob3JkTmFtZVwiLFxuICAgICAgICBcIkJyYWNlTmFtZVwiLFxuICAgICAgICBcIk1lbWJlclR5cGVcIixcbiAgICAgICAgXCJUb3BEYW1hZ2VcIixcbiAgICAgICAgXCJUb3BMZWZ0RGFtYWdlXCIsXG4gICAgICAgIFwiTGVmdERhbWFnZVwiLFxuICAgICAgICBcIkJvdHRvbUxlZnREYW1hZ2VcIixcbiAgICAgICAgXCJCb3R0b21EYW1hZ2VcIixcbiAgICAgICAgXCJCb3R0b21SaWdodERhbWFnZVwiLFxuICAgICAgICBcIlJpZ2h0RGFtYWdlXCIsXG4gICAgICAgIFwiVG9wUmlnaHREYW1hZ2VcIixcbiAgICAgIF07XG5cbiAgICAgIGxldCBwcm9taXNlcyA9IFtdO1xuICAgICAgbGV0IHByb21pc2UxID0gcmVuZGVyT2JqZWN0U2VydmljZVxuICAgICAgICAucG9zdERhdGEocHJvamVjdElkLCB0YWJsZSwgY29sdW1ucywgZ3JvdXApXG4gICAgICAgIC50aGVuKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgIHRoaXMuZmF0aWd1ZURhdGEgPSByZXN1bHQuZ3JvdXBzO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgIGxldCB0YWJsZTEgPSBcIlJfSU5URVJNRURJQVRFTUVNQkVSRkFUSUdVRVNVTU1BUllcIjtcblxuICAgICAgbGV0IGNvbHVtbnMxID0gW1xuICAgICAgICBcIk1lbWJlck5hbWVcIixcbiAgICAgICAgXCJEaXN0YW5jZVwiLFxuICAgICAgICBcIk1heERhbWFnZVwiLFxuICAgICAgICBcIkZhdGlndWVTZWN0aW9uTGFiZWxcIixcbiAgICAgICAgXCJUb3BEYW1hZ2VcIixcbiAgICAgICAgXCJUb3BMZWZ0RGFtYWdlXCIsXG4gICAgICAgIFwiTGVmdERhbWFnZVwiLFxuICAgICAgICBcIkJvdHRvbUxlZnREYW1hZ2VcIixcbiAgICAgICAgXCJCb3R0b21EYW1hZ2VcIixcbiAgICAgICAgXCJCb3R0b21SaWdodERhbWFnZVwiLFxuICAgICAgICBcIlJpZ2h0RGFtYWdlXCIsXG4gICAgICAgIFwiVG9wUmlnaHREYW1hZ2VcIixcbiAgICAgIF07XG4gICAgICBsZXQgcHJvbWlzZTIgPSByZW5kZXJPYmplY3RTZXJ2aWNlXG4gICAgICAgIC5wb3N0RGF0YShwcm9qZWN0SWQsIHRhYmxlMSwgY29sdW1uczEsIFwiXCIpXG4gICAgICAgIC50aGVuKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgIHRoaXMuZmF0aWd1ZURhdGFfaW50ZXIgPSByZXN1bHQucm93cztcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICBwcm9taXNlcy5wdXNoKHByb21pc2UxKTtcbiAgICAgIHByb21pc2VzLnB1c2gocHJvbWlzZTIpO1xuXG4gICAgICBQcm9taXNlLmFsbChwcm9taXNlcykudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMuZXZlbnRfZmF0aWd1ZURhdGEuZm9yRWFjaCgoaXRlbTogKCkgPT4gdm9pZCkgPT4ge1xuICAgICAgICAgIGl0ZW0oKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5nZXRGaW5pc2hfZmF0aWd1ZSA9IHRydWU7XG4gICAgICAgIGlmICh0aGlzLnRpcF9mYXRpZ3VlRGF0YSkge1xuICAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VfZmF0aWd1ZURhdGEpIHtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZV9mYXRpZ3VlRGF0YS5jbG9zZSgpO1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlX2ZhdGlndWVEYXRhID0gbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgICAgTWVzc2FnZS5pbmZvKFwi55ay5Yqz5o2f5Lyk5ZCO5aSE55CG5pWw5o2u6K+35rGC5a6M5oiQLlwiKTtcbiAgICAgICAgICB0aGlzLnRpcF9mYXRpZ3VlRGF0YSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXNldE9odGVyUG9zdFJlc3VsdCgpIHtcbiAgICBsZXQgY29tbWFuZE1hbmFnZXIgPSAodGhpcy52aWV3ZXIucHJvY2VzcyBhcyBQcm9jZXNzKVxuICAgICAgLmNvbW1hbmRNYW5hZ2VyIGFzIENvbW1hbmRNYW5hZ2VyO1xuICAgIGlmICh0aGlzLmFjdGl2ZV9iZW5kaW5nTW9tZW50KSB7XG4gICAgICBsZXQgY29tbWFuZCA9IGNvbW1hbmRNYW5hZ2VyLmdldENvbW1hbmRCeVR5cGUoXCJDb21tYW5kU2hvd0JlbmRpbmdNb21lbnRcIik7XG4gICAgICBpZiAoY29tbWFuZCBpbnN0YW5jZW9mIENvbW1hbmRTaG93QmVuZGluZ01vbWVudCkge1xuICAgICAgICBjb21tYW5kLnJlc2V0U2NlbmUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5hY3RpdmVfcG9zdFJlc3VsdCkge1xuICAgICAgbGV0IGNvbW1hbmQgPSBjb21tYW5kTWFuYWdlci5nZXRDb21tYW5kQnlUeXBlKFwiQ29tbWFuZFBvc3RSZXN1bHRDbG91ZFwiKTtcbiAgICAgIGlmIChjb21tYW5kIGluc3RhbmNlb2YgQ29tbWFuZFBvc3RSZXN1bHRDbG91ZCkge1xuICAgICAgICBjb21tYW5kLnJlc2V0U2NlbmUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5hY3RpdmVfZGlzdG9ydGlvbikge1xuICAgICAgbGV0IGNvbW1hbmQgPSBjb21tYW5kTWFuYWdlci5nZXRDb21tYW5kQnlUeXBlKFwiQ29tbWFuZERpc3RvcnRpb25cIik7XG4gICAgICBpZiAoY29tbWFuZCBpbnN0YW5jZW9mIENvbW1hbmREaXN0b3J0aW9uKSB7XG4gICAgICAgIGNvbW1hbmQucmVzZXRTY2VuZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmFjdGl2ZV9tYXNzUG9zdFJlc3VsdCkge1xuICAgICAgbGV0IGNvbW1hbmQgPSBjb21tYW5kTWFuYWdlci5nZXRDb21tYW5kQnlUeXBlKFwiQ29tbWFuZERlZmxlY3RlZFNoYXBlXCIpO1xuICAgICAgaWYgKGNvbW1hbmQgaW5zdGFuY2VvZiBDb21tYW5kRGVmbGVjdGVkU2hhcGUpIHtcbiAgICAgICAgY29tbWFuZC5yZXNldFNjZW5lKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuYWN0aXZlX3NoaXBJbXBhY3QpIHtcbiAgICAgIGxldCBjb21tYW5kID0gY29tbWFuZE1hbmFnZXIuZ2V0Q29tbWFuZEJ5VHlwZShcIkNvbW1hbmRTaG93U2hpcEltcGFjdFwiKTtcbiAgICAgIGlmIChjb21tYW5kIGluc3RhbmNlb2YgQ29tbWFuZFNob3dTaGlwSW1wYWN0KSB7XG4gICAgICAgIGNvbW1hbmQucmVzZXRTY2VuZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmFjdGl2ZV9qb2ludENhblVDKSB7XG4gICAgICBsZXQgY29tbWFuZCA9IGNvbW1hbmRNYW5hZ2VyLmdldENvbW1hbmRCeVR5cGUoXCJDb21tYW5kU2hvd0pvaW50Q2FuVUNcIik7XG4gICAgICBpZiAoY29tbWFuZCBpbnN0YW5jZW9mIENvbW1hbmRTaG93Sm9pbnRDYW5VQykge1xuICAgICAgICBjb21tYW5kLnJlc2V0U2NlbmUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5hY3RpdmVfZmF0aWd1ZURhdGEpIHtcbiAgICAgIGxldCBjb21tYW5kID0gY29tbWFuZE1hbmFnZXIuZ2V0Q29tbWFuZEJ5VHlwZShcIkNvbW1hbmRTaG93RmF0aWd1ZVwiKTtcbiAgICAgIGlmIChjb21tYW5kIGluc3RhbmNlb2YgQ29tbWFuZFNob3dGYXRpZ3VlKSB7XG4gICAgICAgIGNvbW1hbmQucmVzZXRTY2VuZSgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFjQTtBQUFBO0FBQUE7QUFBQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFvcEJBO0FBbHBCQTtBQUFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFrSEE7QUFDQTtBQUNBO0FBRUE7QUFhQTtBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBOzs7QUFHQTs7QUFJQTtBQUNBO0FBQ0E7QUFFQTtBQWFBO0FBR0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7O0FBSUE7QUFDQTtBQUNBO0FBRUE7QUFzQkE7QUFDQTtBQUdBO0FBQ0E7O0FBRUE7QUFFQTtBQUNBO0FBRUE7QUFHQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUlBO0FBQ0E7QUFDQTtBQUVBO0FBWUE7QUFHQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTs7O0FBR0E7O0FBSUE7QUFDQTtBQUNBO0FBRUE7O0FBR0E7QUFDQTtBQUVBOztBQUNBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7Ozs7Ozs7O0FBSUE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7OztBQUdBOztBQUlBO0FBQ0E7QUFDQTtBQUVBO0FBY0E7QUFDQTtBQUdBO0FBQ0E7O0FBRUE7QUFFQTtBQUNBO0FBRUE7QUFHQTtBQUNBOztBQUVBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUNBOztBQUVBO0FBRUE7QUFDQTtBQUNBO0FBR0E7QUFDQTs7QUFFQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFJQTtBQUNBO0FBQ0E7QUFFQTtBQWVBO0FBQ0E7QUFHQTtBQUNBOztBQUVBO0FBRUE7QUFFQTtBQWNBO0FBR0E7QUFDQTs7QUFFQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7OztBQUlBO0FBQ0E7QUFDQTtBQUNBOzs7QUFJQTtBQUNBO0FBQ0E7QUFDQTs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7OztBQUlBO0FBQ0E7QUFDQTtBQUNBOzs7QUFJQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUFBO0FBenRCQTs7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./packages/caeDesign/src/gsDevFx/managers/interfaceManagers/postInterfaceManager.ts\n");
4035
4035
 
4036
4036
  /***/ }),
4037
4037
 
@@ -4042,7 +4042,7 @@ eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPAC
4042
4042
  /*! no static exports found */
4043
4043
  /***/ (function(module, exports, __webpack_require__) {
4044
4044
 
4045
- eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\"), __webpack_require__(/*! gs-bim-air */ \"./node_modules/gs-bim-air/lib/BimAir.umd.min.js\")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, tslib_1, gs_bim_air_1) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.SelectionInterfaceManager = exports.SelectorFiliter = void 0;\n var SelectorFiliter;\n (function (SelectorFiliter) {\n SelectorFiliter[SelectorFiliter[\"All\"] = 0] = \"All\";\n SelectorFiliter[SelectorFiliter[\"Joint\"] = 1] = \"Joint\";\n SelectorFiliter[SelectorFiliter[\"Member\"] = 2] = \"Member\";\n SelectorFiliter[SelectorFiliter[\"Plate\"] = 3] = \"Plate\";\n })(SelectorFiliter = exports.SelectorFiliter || (exports.SelectorFiliter = {}));\n var SelectionInterfaceManager = function (_super) {\n tslib_1.__extends(SelectionInterfaceManager, _super);\n function SelectionInterfaceManager(viewer) {\n var _this = _super.call(this, viewer) || this;\n _this._jointSelection = true;\n _this._memberSelection = true;\n _this._plateSelection = true;\n _this._selectorFilter = SelectorFiliter.All;\n return _this;\n }\n Object.defineProperty(SelectionInterfaceManager.prototype, \"selectorFilter\", {\n get: function get() {\n return this._selectorFilter;\n },\n set: function set(value) {\n var camera = this.viewer.operatorManager.find(\"CameraMouse\");\n if (camera instanceof gs_bim_air_1.Longan.CameraMouse) {\n {\n camera.lButtonSate = gs_bim_air_1.Longan.LButtonState.select;\n }\n }\n this._selectorFilter = value;\n if (value === SelectorFiliter.All) {\n this.jointSelection = true;\n this.memberSelection = true;\n this.plateSelection = true;\n } else if (value === SelectorFiliter.Joint) {\n this.jointSelection = true;\n this.memberSelection = false;\n this.plateSelection = false;\n } else if (value === SelectorFiliter.Member) {\n this.jointSelection = false;\n this.memberSelection = true;\n this.plateSelection = false;\n } else if (value === SelectorFiliter.Plate) {\n this.jointSelection = false;\n this.memberSelection = false;\n this.plateSelection = true;\n }\n this.clearAllSelectionAndHighlight();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SelectionInterfaceManager.prototype, \"jointSelection\", {\n get: function get() {\n return this._jointSelection;\n },\n set: function set(onoff) {\n this._jointSelection = onoff;\n var viewer = this.viewer;\n var ro = viewer.process.caeRenderObjectTreeManager.jointNode;\n var node = viewer.findInstanceObject(ro);\n if (node) {\n var segment = node.segment;\n if (onoff) {\n segment.selectability.unset();\n } else {\n segment.selectability.setVertex(gs_bim_air_1.Longan.SelectabilityType.Off).setFace(gs_bim_air_1.Longan.SelectabilityType.Off).setLine(gs_bim_air_1.Longan.SelectabilityType.Off).setMarker(gs_bim_air_1.Longan.SelectabilityType.Off);\n }\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SelectionInterfaceManager.prototype, \"memberSelection\", {\n get: function get() {\n return this._memberSelection;\n },\n set: function set(onoff) {\n this._memberSelection = onoff;\n var viewer = this.viewer;\n var ro = viewer.process.caeRenderObjectTreeManager.memberNode;\n var node = viewer.findInstanceObject(ro);\n if (node) {\n var segment = node.segment;\n if (onoff) {\n segment.selectability.unset();\n } else {\n segment.selectability.setVertex(gs_bim_air_1.Longan.SelectabilityType.Off).setFace(gs_bim_air_1.Longan.SelectabilityType.Off).setLine(gs_bim_air_1.Longan.SelectabilityType.Off).setMarker(gs_bim_air_1.Longan.SelectabilityType.Off);\n }\n }\n var pile = viewer.process.caeRenderObjectTreeManager.pileNode;\n var pileNode = viewer.findInstanceObject(pile);\n if (pileNode) {\n var segment = pileNode.segment;\n if (onoff) {\n segment.selectability.unset();\n } else {\n segment.selectability.setVertex(gs_bim_air_1.Longan.SelectabilityType.Off).setFace(gs_bim_air_1.Longan.SelectabilityType.Off).setLine(gs_bim_air_1.Longan.SelectabilityType.Off).setMarker(gs_bim_air_1.Longan.SelectabilityType.Off);\n }\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SelectionInterfaceManager.prototype, \"plateSelection\", {\n get: function get() {\n return this._plateSelection;\n },\n set: function set(onoff) {\n this._plateSelection = onoff;\n var viewer = this.viewer;\n var ro = viewer.process.caeRenderObjectTreeManager.plateNode;\n var node = viewer.findInstanceObject(ro);\n if (node) {\n var segment = node.segment;\n if (onoff) {\n segment.selectability.unset();\n } else {\n segment.selectability.setVertex(gs_bim_air_1.Longan.SelectabilityType.Off).setFace(gs_bim_air_1.Longan.SelectabilityType.Off).setLine(gs_bim_air_1.Longan.SelectabilityType.Off).setMarker(gs_bim_air_1.Longan.SelectabilityType.Off);\n }\n }\n },\n enumerable: false,\n configurable: true\n });\n SelectionInterfaceManager.prototype.clearAllSelectionAndHighlight = function () {\n this.viewer.selectionManager.clearAllSelectionAndHighlight();\n var selector = this.viewer.operatorManager.find(\"CAEObjectSelector\");\n if (selector) {\n selector.selectedRenderObjects.clear();\n }\n this.viewer.updateDisplay();\n };\n SelectionInterfaceManager.prototype.getCurrentSelected = function () {\n var selector = this.viewer.operatorManager.find(\"CAEObjectSelector\");\n if (selector) {\n return selector.selectedRenderObjects.items;\n }\n };\n return SelectionInterfaceManager;\n }(gs_bim_air_1.Longan.ViewerManagerBase);\n exports.SelectionInterfaceManager = SelectionInterfaceManager;\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL2dzRGV2RngvbWFuYWdlcnMvaW50ZXJmYWNlTWFuYWdlcnMvc2VsZWN0aW9uSW50ZXJmYWNlTWFuYWdlci50cy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL1tuYW1lXS8uL3BhY2thZ2VzL2NhZURlc2lnbi9zcmMvZ3NEZXZGeC9tYW5hZ2Vycy9pbnRlcmZhY2VNYW5hZ2Vycy9zZWxlY3Rpb25JbnRlcmZhY2VNYW5hZ2VyLnRzPzdmYzUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9uZ2FuIH0gZnJvbSBcImdzLWJpbS1haXJcIjtcbmltcG9ydCB7IENBRU9iamVjdFNlbGVjdG9yIH0gZnJvbSBcIi4uLy4uL29wZXJhdG9ycy9jYWVPYmplY3RTZWxlY3RvclwiO1xuaW1wb3J0IHsgVmlld2VyIH0gZnJvbSBcIi4uLy4uL3ZpZXdlclwiO1xuXG4vKipcbiAqIOiuvue9rkNBReWvueixoeeahOmAieaLqei/h+a7pFxuICpcbiAqIEFsbDog5YWo6YOo5Y+v6YCJXG4gKlxuICogSm9pbnQ6IOWPquWPr+mAieepuumXtOeCuVxuICpcbiAqIE1lbWJlcjog5Y+q5Y+v6YCJ5p2G5Lu2XG4gKlxuICogUGxhdGU6IOWPquWPr+mAieadv1xuICovXG5leHBvcnQgZW51bSBTZWxlY3RvckZpbGl0ZXIge1xuICBBbGwsXG4gIEpvaW50LFxuICBNZW1iZXIsXG4gIFBsYXRlLFxufVxuXG5leHBvcnQgY2xhc3MgU2VsZWN0aW9uSW50ZXJmYWNlTWFuYWdlciBleHRlbmRzIExvbmdhbi5WaWV3ZXJNYW5hZ2VyQmFzZSB7XG4gIHByaXZhdGUgX2pvaW50U2VsZWN0aW9uOiBib29sZWFuID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfbWVtYmVyU2VsZWN0aW9uOiBib29sZWFuID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfcGxhdGVTZWxlY3Rpb246IGJvb2xlYW4gPSB0cnVlO1xuXG4gIHByaXZhdGUgX3NlbGVjdG9yRmlsdGVyID0gU2VsZWN0b3JGaWxpdGVyLkFsbDtcblxuICBjb25zdHJ1Y3Rvcih2aWV3ZXI6IFZpZXdlcikge1xuICAgIHN1cGVyKHZpZXdlcik7XG4gIH1cblxuICBnZXQgc2VsZWN0b3JGaWx0ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdG9yRmlsdGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIOiuvue9rumAieaLqei/h+a7pOWZqOeahOWPr+mAieWvueixoVxuICAgKi9cbiAgc2V0IHNlbGVjdG9yRmlsdGVyKHZhbHVlOiBTZWxlY3RvckZpbGl0ZXIpIHtcbiAgICBsZXQgY2FtZXJhID0gdGhpcy52aWV3ZXIub3BlcmF0b3JNYW5hZ2VyLmZpbmQoXCJDYW1lcmFNb3VzZVwiKTtcbiAgICBpZiAoY2FtZXJhIGluc3RhbmNlb2YgTG9uZ2FuLkNhbWVyYU1vdXNlKSB7XG4gICAgICB7XG4gICAgICAgIGNhbWVyYS5sQnV0dG9uU2F0ZSA9IExvbmdhbi5MQnV0dG9uU3RhdGUuc2VsZWN0O1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuX3NlbGVjdG9yRmlsdGVyID0gdmFsdWU7XG4gICAgaWYgKHZhbHVlID09PSBTZWxlY3RvckZpbGl0ZXIuQWxsKSB7XG4gICAgICB0aGlzLmpvaW50U2VsZWN0aW9uID0gdHJ1ZTtcbiAgICAgIHRoaXMubWVtYmVyU2VsZWN0aW9uID0gdHJ1ZTtcbiAgICAgIHRoaXMucGxhdGVTZWxlY3Rpb24gPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IFNlbGVjdG9yRmlsaXRlci5Kb2ludCkge1xuICAgICAgdGhpcy5qb2ludFNlbGVjdGlvbiA9IHRydWU7XG4gICAgICB0aGlzLm1lbWJlclNlbGVjdGlvbiA9IGZhbHNlO1xuICAgICAgdGhpcy5wbGF0ZVNlbGVjdGlvbiA9IGZhbHNlO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IFNlbGVjdG9yRmlsaXRlci5NZW1iZXIpIHtcbiAgICAgIHRoaXMuam9pbnRTZWxlY3Rpb24gPSBmYWxzZTtcbiAgICAgIHRoaXMubWVtYmVyU2VsZWN0aW9uID0gdHJ1ZTtcbiAgICAgIHRoaXMucGxhdGVTZWxlY3Rpb24gPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlID09PSBTZWxlY3RvckZpbGl0ZXIuUGxhdGUpIHtcbiAgICAgIHRoaXMuam9pbnRTZWxlY3Rpb24gPSBmYWxzZTtcbiAgICAgIHRoaXMubWVtYmVyU2VsZWN0aW9uID0gZmFsc2U7XG4gICAgICB0aGlzLnBsYXRlU2VsZWN0aW9uID0gdHJ1ZTtcbiAgICB9XG5cbiAgICB0aGlzLmNsZWFyQWxsU2VsZWN0aW9uQW5kSGlnaGxpZ2h0KCk7XG4gIH1cblxuICBwcml2YXRlIHNldCBqb2ludFNlbGVjdGlvbihvbm9mZjogYm9vbGVhbikge1xuICAgIHRoaXMuX2pvaW50U2VsZWN0aW9uID0gb25vZmY7XG4gICAgbGV0IHZpZXdlciA9IHRoaXMudmlld2VyIGFzIFZpZXdlcjtcbiAgICBsZXQgcm8gPSB2aWV3ZXIucHJvY2Vzcy5jYWVSZW5kZXJPYmplY3RUcmVlTWFuYWdlci5qb2ludE5vZGU7XG4gICAgbGV0IG5vZGUgPSB2aWV3ZXIuZmluZEluc3RhbmNlT2JqZWN0KHJvKTtcbiAgICBpZiAobm9kZSkge1xuICAgICAgbGV0IHNlZ21lbnQgPSBub2RlLnNlZ21lbnQ7XG5cbiAgICAgIGlmIChvbm9mZikge1xuICAgICAgICBzZWdtZW50LnNlbGVjdGFiaWxpdHkudW5zZXQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlZ21lbnQuc2VsZWN0YWJpbGl0eVxuICAgICAgICAgIC5zZXRWZXJ0ZXgoTG9uZ2FuLlNlbGVjdGFiaWxpdHlUeXBlLk9mZilcbiAgICAgICAgICAuc2V0RmFjZShMb25nYW4uU2VsZWN0YWJpbGl0eVR5cGUuT2ZmKVxuICAgICAgICAgIC5zZXRMaW5lKExvbmdhbi5TZWxlY3RhYmlsaXR5VHlwZS5PZmYpXG4gICAgICAgICAgLnNldE1hcmtlcihMb25nYW4uU2VsZWN0YWJpbGl0eVR5cGUuT2ZmKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldCBqb2ludFNlbGVjdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fam9pbnRTZWxlY3Rpb247XG4gIH1cblxuICBwcml2YXRlIHNldCBtZW1iZXJTZWxlY3Rpb24ob25vZmY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9tZW1iZXJTZWxlY3Rpb24gPSBvbm9mZjtcbiAgICBsZXQgdmlld2VyID0gdGhpcy52aWV3ZXIgYXMgVmlld2VyO1xuXG4gICAgbGV0IHJvID0gdmlld2VyLnByb2Nlc3MuY2FlUmVuZGVyT2JqZWN0VHJlZU1hbmFnZXIubWVtYmVyTm9kZTtcbiAgICBsZXQgbm9kZSA9IHZpZXdlci5maW5kSW5zdGFuY2VPYmplY3Qocm8pO1xuICAgIGlmIChub2RlKSB7XG4gICAgICBsZXQgc2VnbWVudCA9IG5vZGUuc2VnbWVudDtcblxuICAgICAgaWYgKG9ub2ZmKSB7XG4gICAgICAgIHNlZ21lbnQuc2VsZWN0YWJpbGl0eS51bnNldCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2VnbWVudC5zZWxlY3RhYmlsaXR5XG4gICAgICAgICAgLnNldFZlcnRleChMb25nYW4uU2VsZWN0YWJpbGl0eVR5cGUuT2ZmKVxuICAgICAgICAgIC5zZXRGYWNlKExvbmdhbi5TZWxlY3RhYmlsaXR5VHlwZS5PZmYpXG4gICAgICAgICAgLnNldExpbmUoTG9uZ2FuLlNlbGVjdGFiaWxpdHlUeXBlLk9mZilcbiAgICAgICAgICAuc2V0TWFya2VyKExvbmdhbi5TZWxlY3RhYmlsaXR5VHlwZS5PZmYpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBwaWxlID0gdmlld2VyLnByb2Nlc3MuY2FlUmVuZGVyT2JqZWN0VHJlZU1hbmFnZXIucGlsZU5vZGU7XG4gICAgbGV0IHBpbGVOb2RlID0gdmlld2VyLmZpbmRJbnN0YW5jZU9iamVjdChwaWxlKTtcbiAgICBpZiAocGlsZU5vZGUpIHtcbiAgICAgIGxldCBzZWdtZW50ID0gcGlsZU5vZGUuc2VnbWVudDtcblxuICAgICAgaWYgKG9ub2ZmKSB7XG4gICAgICAgIHNlZ21lbnQuc2VsZWN0YWJpbGl0eS51bnNldCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2VnbWVudC5zZWxlY3RhYmlsaXR5XG4gICAgICAgICAgLnNldFZlcnRleChMb25nYW4uU2VsZWN0YWJpbGl0eVR5cGUuT2ZmKVxuICAgICAgICAgIC5zZXRGYWNlKExvbmdhbi5TZWxlY3RhYmlsaXR5VHlwZS5PZmYpXG4gICAgICAgICAgLnNldExpbmUoTG9uZ2FuLlNlbGVjdGFiaWxpdHlUeXBlLk9mZilcbiAgICAgICAgICAuc2V0TWFya2VyKExvbmdhbi5TZWxlY3RhYmlsaXR5VHlwZS5PZmYpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0IG1lbWJlclNlbGVjdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fbWVtYmVyU2VsZWN0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXQgcGxhdGVTZWxlY3Rpb24ob25vZmY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9wbGF0ZVNlbGVjdGlvbiA9IG9ub2ZmO1xuICAgIGxldCB2aWV3ZXIgPSB0aGlzLnZpZXdlciBhcyBWaWV3ZXI7XG4gICAgbGV0IHJvID0gdmlld2VyLnByb2Nlc3MuY2FlUmVuZGVyT2JqZWN0VHJlZU1hbmFnZXIucGxhdGVOb2RlO1xuICAgIGxldCBub2RlID0gdmlld2VyLmZpbmRJbnN0YW5jZU9iamVjdChybyk7XG4gICAgaWYgKG5vZGUpIHtcbiAgICAgIGxldCBzZWdtZW50ID0gbm9kZS5zZWdtZW50O1xuICAgICAgaWYgKG9ub2ZmKSB7XG4gICAgICAgIHNlZ21lbnQuc2VsZWN0YWJpbGl0eS51bnNldCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2VnbWVudC5zZWxlY3RhYmlsaXR5XG4gICAgICAgICAgLnNldFZlcnRleChMb25nYW4uU2VsZWN0YWJpbGl0eVR5cGUuT2ZmKVxuICAgICAgICAgIC5zZXRGYWNlKExvbmdhbi5TZWxlY3RhYmlsaXR5VHlwZS5PZmYpXG4gICAgICAgICAgLnNldExpbmUoTG9uZ2FuLlNlbGVjdGFiaWxpdHlUeXBlLk9mZilcbiAgICAgICAgICAuc2V0TWFya2VyKExvbmdhbi5TZWxlY3RhYmlsaXR5VHlwZS5PZmYpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0IHBsYXRlU2VsZWN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9wbGF0ZVNlbGVjdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3Rpb25JbnRlcmZhY2VNYW5hZ2VyXG4gICAqIOa4hemZpOW9k+WJjemAieaLqeS4jumrmOS6ri5cbiAgICovXG4gIGNsZWFyQWxsU2VsZWN0aW9uQW5kSGlnaGxpZ2h0KCkge1xuICAgIHRoaXMudmlld2VyLnNlbGVjdGlvbk1hbmFnZXIuY2xlYXJBbGxTZWxlY3Rpb25BbmRIaWdobGlnaHQoKTtcbiAgICBsZXQgc2VsZWN0b3IgPSB0aGlzLnZpZXdlci5vcGVyYXRvck1hbmFnZXIuZmluZChcbiAgICAgIFwiQ0FFT2JqZWN0U2VsZWN0b3JcIlxuICAgICkgYXMgQ0FFT2JqZWN0U2VsZWN0b3I7XG4gICAgaWYgKHNlbGVjdG9yKSB7XG4gICAgICBzZWxlY3Rvci5zZWxlY3RlZFJlbmRlck9iamVjdHMuY2xlYXIoKTtcbiAgICB9XG4gICAgdGhpcy52aWV3ZXIudXBkYXRlRGlzcGxheSgpO1xuICB9XG5cbiAgZ2V0Q3VycmVudFNlbGVjdGVkKCkge1xuICAgIC8vIHRoaXMudmlld2VyLnNlbGVjdGlvbk1hbmFnZXIuY2xlYXJBbGxTZWxlY3Rpb25BbmRIaWdobGlnaHQoKTtcbiAgICBsZXQgc2VsZWN0b3IgPSB0aGlzLnZpZXdlci5vcGVyYXRvck1hbmFnZXIuZmluZChcbiAgICAgIFwiQ0FFT2JqZWN0U2VsZWN0b3JcIlxuICAgICkgYXMgQ0FFT2JqZWN0U2VsZWN0b3I7XG4gICAgaWYgKHNlbGVjdG9yKSB7XG4gICAgICByZXR1cm4gc2VsZWN0b3Iuc2VsZWN0ZWRSZW5kZXJPYmplY3RzLml0ZW1zO1xuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBZUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUFBO0FBT0E7QUFBQTtBQU5BO0FBQ0E7QUFDQTtBQUVBOztBQUlBO0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUdBO0FBQ0E7Ozs7QUFFQTtBQW9CQTtBQUNBO0FBQ0E7QUF0QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7O0FBT0E7Ozs7QUFNQTtBQXFDQTtBQUNBO0FBQ0E7QUF2Q0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7O0FBUUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7O0FBT0E7Ozs7QUFNQTtBQW1CQTtBQUNBO0FBQ0E7QUFyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBT0E7Ozs7QUFVQTtBQUNBO0FBQ0E7QUFHQTtBQUNBOztBQUVBO0FBQ0E7QUFFQTtBQUVBO0FBR0E7QUFDQTs7QUFFQTtBQUNBO0FBQUE7QUFoS0E7O0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./packages/caeDesign/src/gsDevFx/managers/interfaceManagers/selectionInterfaceManager.ts\n");
4045
+ eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\"), __webpack_require__(/*! gs-bim-air */ \"./node_modules/gs-bim-air/lib/BimAir.umd.min.js\")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, tslib_1, gs_bim_air_1) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.SelectionInterfaceManager = exports.SelectorFiliter = void 0;\n var SelectorFiliter;\n (function (SelectorFiliter) {\n SelectorFiliter[SelectorFiliter[\"All\"] = 0] = \"All\";\n SelectorFiliter[SelectorFiliter[\"Joint\"] = 1] = \"Joint\";\n SelectorFiliter[SelectorFiliter[\"Member\"] = 2] = \"Member\";\n SelectorFiliter[SelectorFiliter[\"Plate\"] = 3] = \"Plate\";\n })(SelectorFiliter = exports.SelectorFiliter || (exports.SelectorFiliter = {}));\n var SelectionInterfaceManager = function (_super) {\n tslib_1.__extends(SelectionInterfaceManager, _super);\n function SelectionInterfaceManager(viewer) {\n var _this = _super.call(this, viewer) || this;\n _this._jointSelection = true;\n _this._memberSelection = true;\n _this._plateSelection = true;\n _this._selectorFilter = SelectorFiliter.All;\n return _this;\n }\n Object.defineProperty(SelectionInterfaceManager.prototype, \"selectorFilter\", {\n get: function get() {\n return this._selectorFilter;\n },\n set: function set(value) {\n var camera = this.viewer.operatorManager.find(\"CameraMouse\");\n if (camera instanceof gs_bim_air_1.Longan.CameraMouse) {\n {\n camera.lButtonSate = gs_bim_air_1.Longan.LButtonState.select;\n }\n }\n this._selectorFilter = value;\n if (value === SelectorFiliter.All) {\n this.jointSelection = true;\n this.memberSelection = true;\n this.plateSelection = true;\n var viewer = this.viewer;\n var tempNode = viewer.process.caeRenderObjectTreeManager.tempNode;\n var node = viewer.findInstanceObject(tempNode);\n if (node) {\n var segment = node.segment;\n segment.selectability.unset();\n }\n } else if (value === SelectorFiliter.Joint) {\n this.jointSelection = true;\n this.memberSelection = false;\n this.plateSelection = false;\n } else if (value === SelectorFiliter.Member) {\n this.jointSelection = false;\n this.memberSelection = true;\n this.plateSelection = false;\n } else if (value === SelectorFiliter.Plate) {\n this.jointSelection = false;\n this.memberSelection = false;\n this.plateSelection = true;\n }\n this.clearAllSelectionAndHighlight();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SelectionInterfaceManager.prototype, \"jointSelection\", {\n get: function get() {\n return this._jointSelection;\n },\n set: function set(onoff) {\n this._jointSelection = onoff;\n var viewer = this.viewer;\n var ro = viewer.process.caeRenderObjectTreeManager.jointNode;\n this.setROSelectability(ro, onoff);\n if (onoff) {\n var tempNode = viewer.process.caeRenderObjectTreeManager.tempNode;\n var node = viewer.findInstanceObject(tempNode);\n if (node) {\n var segment = node.segment;\n segment.selectability.setVertex(gs_bim_air_1.Longan.SelectabilityType.On).setMarker(gs_bim_air_1.Longan.SelectabilityType.On).setFace(gs_bim_air_1.Longan.SelectabilityType.Off).setLine(gs_bim_air_1.Longan.SelectabilityType.Off);\n }\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SelectionInterfaceManager.prototype, \"memberSelection\", {\n get: function get() {\n return this._memberSelection;\n },\n set: function set(onoff) {\n this._memberSelection = onoff;\n var viewer = this.viewer;\n var ro = viewer.process.caeRenderObjectTreeManager.memberNode;\n this.setROSelectability(ro, onoff);\n var pile = viewer.process.caeRenderObjectTreeManager.pileNode;\n this.setROSelectability(pile, onoff);\n if (onoff) {\n var tempNode = viewer.process.caeRenderObjectTreeManager.tempNode;\n var node = viewer.findInstanceObject(tempNode);\n if (node) {\n var segment = node.segment;\n segment.selectability.setVertex(gs_bim_air_1.Longan.SelectabilityType.Off).setMarker(gs_bim_air_1.Longan.SelectabilityType.Off).setFace(gs_bim_air_1.Longan.SelectabilityType.On).setLine(gs_bim_air_1.Longan.SelectabilityType.On);\n }\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(SelectionInterfaceManager.prototype, \"plateSelection\", {\n get: function get() {\n return this._plateSelection;\n },\n set: function set(onoff) {\n this._plateSelection = onoff;\n var viewer = this.viewer;\n var ro = viewer.process.caeRenderObjectTreeManager.plateNode;\n this.setROSelectability(ro, onoff);\n if (onoff) {\n var tempNode = viewer.process.caeRenderObjectTreeManager.tempNode;\n var node = viewer.findInstanceObject(tempNode);\n if (node) {\n var segment = node.segment;\n segment.selectability.setVertex(gs_bim_air_1.Longan.SelectabilityType.Off).setMarker(gs_bim_air_1.Longan.SelectabilityType.Off).setFace(gs_bim_air_1.Longan.SelectabilityType.Off).setLine(gs_bim_air_1.Longan.SelectabilityType.Off);\n }\n }\n },\n enumerable: false,\n configurable: true\n });\n SelectionInterfaceManager.prototype.setROSelectability = function (ro, onoff) {\n var viewer = this.viewer;\n if (ro) {\n var node = viewer.findInstanceObject(ro);\n if (node) {\n var segment = node.segment;\n if (onoff) {\n segment.selectability.unset();\n } else {\n segment.selectability.setVertex(gs_bim_air_1.Longan.SelectabilityType.Off).setFace(gs_bim_air_1.Longan.SelectabilityType.Off).setLine(gs_bim_air_1.Longan.SelectabilityType.Off).setMarker(gs_bim_air_1.Longan.SelectabilityType.Off);\n }\n }\n }\n };\n SelectionInterfaceManager.prototype.clearAllSelectionAndHighlight = function () {\n this.viewer.selectionManager.clearAllSelectionAndHighlight();\n var selector = this.viewer.operatorManager.find(\"CAEObjectSelector\");\n if (selector) {\n selector.selectedRenderObjects.clear();\n }\n this.viewer.updateDisplay();\n };\n SelectionInterfaceManager.prototype.getCurrentSelected = function () {\n var selector = this.viewer.operatorManager.find(\"CAEObjectSelector\");\n if (selector) {\n return selector.selectedRenderObjects.items;\n }\n };\n return SelectionInterfaceManager;\n }(gs_bim_air_1.Longan.ViewerManagerBase);\n exports.SelectionInterfaceManager = SelectionInterfaceManager;\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL2dzRGV2RngvbWFuYWdlcnMvaW50ZXJmYWNlTWFuYWdlcnMvc2VsZWN0aW9uSW50ZXJmYWNlTWFuYWdlci50cy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL1tuYW1lXS8uL3BhY2thZ2VzL2NhZURlc2lnbi9zcmMvZ3NEZXZGeC9tYW5hZ2Vycy9pbnRlcmZhY2VNYW5hZ2Vycy9zZWxlY3Rpb25JbnRlcmZhY2VNYW5hZ2VyLnRzPzdmYzUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9uZ2FuIH0gZnJvbSBcImdzLWJpbS1haXJcIjtcbmltcG9ydCB7IENBRU9iamVjdFNlbGVjdG9yIH0gZnJvbSBcIi4uLy4uL29wZXJhdG9ycy9jYWVPYmplY3RTZWxlY3RvclwiO1xuaW1wb3J0IHsgVmlld2VyIH0gZnJvbSBcIi4uLy4uL3ZpZXdlclwiO1xuaW1wb3J0IHsgUmVuZGVyT2JqZWN0IH0gZnJvbSBcImdzLWxvbmdhblwiO1xuXG4vKipcbiAqIOiuvue9rkNBReWvueixoeeahOmAieaLqei/h+a7pFxuICpcbiAqIEFsbDog5YWo6YOo5Y+v6YCJXG4gKlxuICogSm9pbnQ6IOWPquWPr+mAieepuumXtOeCuVxuICpcbiAqIE1lbWJlcjog5Y+q5Y+v6YCJ5p2G5Lu2XG4gKlxuICogUGxhdGU6IOWPquWPr+mAieadv1xuICovXG5leHBvcnQgZW51bSBTZWxlY3RvckZpbGl0ZXIge1xuICBBbGwsXG4gIEpvaW50LFxuICBNZW1iZXIsXG4gIFBsYXRlLFxufVxuXG5leHBvcnQgY2xhc3MgU2VsZWN0aW9uSW50ZXJmYWNlTWFuYWdlciBleHRlbmRzIExvbmdhbi5WaWV3ZXJNYW5hZ2VyQmFzZSB7XG4gIHByaXZhdGUgX2pvaW50U2VsZWN0aW9uOiBib29sZWFuID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfbWVtYmVyU2VsZWN0aW9uOiBib29sZWFuID0gdHJ1ZTtcbiAgcHJpdmF0ZSBfcGxhdGVTZWxlY3Rpb246IGJvb2xlYW4gPSB0cnVlO1xuXG4gIHByaXZhdGUgX3NlbGVjdG9yRmlsdGVyID0gU2VsZWN0b3JGaWxpdGVyLkFsbDtcblxuICBjb25zdHJ1Y3Rvcih2aWV3ZXI6IFZpZXdlcikge1xuICAgIHN1cGVyKHZpZXdlcik7XG4gIH1cblxuICBnZXQgc2VsZWN0b3JGaWx0ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdG9yRmlsdGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIOiuvue9rumAieaLqei/h+a7pOWZqOeahOWPr+mAieWvueixoVxuICAgKi9cbiAgc2V0IHNlbGVjdG9yRmlsdGVyKHZhbHVlOiBTZWxlY3RvckZpbGl0ZXIpIHtcbiAgICBsZXQgY2FtZXJhID0gdGhpcy52aWV3ZXIub3BlcmF0b3JNYW5hZ2VyLmZpbmQoXCJDYW1lcmFNb3VzZVwiKTtcbiAgICBpZiAoY2FtZXJhIGluc3RhbmNlb2YgTG9uZ2FuLkNhbWVyYU1vdXNlKSB7XG4gICAgICB7XG4gICAgICAgIGNhbWVyYS5sQnV0dG9uU2F0ZSA9IExvbmdhbi5MQnV0dG9uU3RhdGUuc2VsZWN0O1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuX3NlbGVjdG9yRmlsdGVyID0gdmFsdWU7XG4gICAgaWYgKHZhbHVlID09PSBTZWxlY3RvckZpbGl0ZXIuQWxsKSB7XG4gICAgICB0aGlzLmpvaW50U2VsZWN0aW9uID0gdHJ1ZTtcbiAgICAgIHRoaXMubWVtYmVyU2VsZWN0aW9uID0gdHJ1ZTtcbiAgICAgIHRoaXMucGxhdGVTZWxlY3Rpb24gPSB0cnVlO1xuXG4gICAgICBsZXQgdmlld2VyID0gdGhpcy52aWV3ZXIgYXMgVmlld2VyO1xuICAgICAgbGV0IHRlbXBOb2RlID0gdmlld2VyLnByb2Nlc3MuY2FlUmVuZGVyT2JqZWN0VHJlZU1hbmFnZXIudGVtcE5vZGU7XG4gICAgICBsZXQgbm9kZSA9IHZpZXdlci5maW5kSW5zdGFuY2VPYmplY3QodGVtcE5vZGUpO1xuICAgICAgaWYgKG5vZGUpIHtcbiAgICAgICAgbGV0IHNlZ21lbnQgPSBub2RlLnNlZ21lbnQ7XG4gICAgICAgIHNlZ21lbnQuc2VsZWN0YWJpbGl0eS51bnNldCgpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IFNlbGVjdG9yRmlsaXRlci5Kb2ludCkge1xuICAgICAgdGhpcy5qb2ludFNlbGVjdGlvbiA9IHRydWU7XG4gICAgICB0aGlzLm1lbWJlclNlbGVjdGlvbiA9IGZhbHNlO1xuICAgICAgdGhpcy5wbGF0ZVNlbGVjdGlvbiA9IGZhbHNlO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IFNlbGVjdG9yRmlsaXRlci5NZW1iZXIpIHtcbiAgICAgIHRoaXMuam9pbnRTZWxlY3Rpb24gPSBmYWxzZTtcbiAgICAgIHRoaXMubWVtYmVyU2VsZWN0aW9uID0gdHJ1ZTtcbiAgICAgIHRoaXMucGxhdGVTZWxlY3Rpb24gPSBmYWxzZTtcbiAgICB9IGVsc2UgaWYgKHZhbHVlID09PSBTZWxlY3RvckZpbGl0ZXIuUGxhdGUpIHtcbiAgICAgIHRoaXMuam9pbnRTZWxlY3Rpb24gPSBmYWxzZTtcbiAgICAgIHRoaXMubWVtYmVyU2VsZWN0aW9uID0gZmFsc2U7XG4gICAgICB0aGlzLnBsYXRlU2VsZWN0aW9uID0gdHJ1ZTtcbiAgICB9XG5cbiAgICB0aGlzLmNsZWFyQWxsU2VsZWN0aW9uQW5kSGlnaGxpZ2h0KCk7XG4gIH1cblxuICBwcml2YXRlIHNldCBqb2ludFNlbGVjdGlvbihvbm9mZjogYm9vbGVhbikge1xuICAgIHRoaXMuX2pvaW50U2VsZWN0aW9uID0gb25vZmY7XG4gICAgbGV0IHZpZXdlciA9IHRoaXMudmlld2VyIGFzIFZpZXdlcjtcbiAgICBsZXQgcm8gPSB2aWV3ZXIucHJvY2Vzcy5jYWVSZW5kZXJPYmplY3RUcmVlTWFuYWdlci5qb2ludE5vZGU7XG4gICAgdGhpcy5zZXRST1NlbGVjdGFiaWxpdHkocm8sIG9ub2ZmKTtcblxuICAgIGlmKG9ub2ZmKSB7XG4gICAgICBsZXQgdGVtcE5vZGUgPSB2aWV3ZXIucHJvY2Vzcy5jYWVSZW5kZXJPYmplY3RUcmVlTWFuYWdlci50ZW1wTm9kZTtcblxuICAgICAgbGV0IG5vZGUgPSB2aWV3ZXIuZmluZEluc3RhbmNlT2JqZWN0KHRlbXBOb2RlKTtcbiAgICAgIGlmIChub2RlKSB7XG4gICAgICAgIGxldCBzZWdtZW50ID0gbm9kZS5zZWdtZW50O1xuICAgICAgICBzZWdtZW50LnNlbGVjdGFiaWxpdHlcbiAgICAgICAgICAuc2V0VmVydGV4KExvbmdhbi5TZWxlY3RhYmlsaXR5VHlwZS5PbilcbiAgICAgICAgICAuc2V0TWFya2VyKExvbmdhbi5TZWxlY3RhYmlsaXR5VHlwZS5PbilcbiAgICAgICAgICAuc2V0RmFjZShMb25nYW4uU2VsZWN0YWJpbGl0eVR5cGUuT2ZmKVxuICAgICAgICAgIC5zZXRMaW5lKExvbmdhbi5TZWxlY3RhYmlsaXR5VHlwZS5PZmYpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXQgam9pbnRTZWxlY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2pvaW50U2VsZWN0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXQgbWVtYmVyU2VsZWN0aW9uKG9ub2ZmOiBib29sZWFuKSB7XG4gICAgdGhpcy5fbWVtYmVyU2VsZWN0aW9uID0gb25vZmY7XG4gICAgbGV0IHZpZXdlciA9IHRoaXMudmlld2VyIGFzIFZpZXdlcjtcblxuICAgIGxldCBybyA9IHZpZXdlci5wcm9jZXNzLmNhZVJlbmRlck9iamVjdFRyZWVNYW5hZ2VyLm1lbWJlck5vZGU7XG4gICAgdGhpcy5zZXRST1NlbGVjdGFiaWxpdHkocm8sIG9ub2ZmKTtcblxuICAgIGxldCBwaWxlID0gdmlld2VyLnByb2Nlc3MuY2FlUmVuZGVyT2JqZWN0VHJlZU1hbmFnZXIucGlsZU5vZGU7XG4gICAgdGhpcy5zZXRST1NlbGVjdGFiaWxpdHkocGlsZSwgb25vZmYpO1xuXG4gICAgaWYob25vZmYpIHtcbiAgICAgIGxldCB0ZW1wTm9kZSA9IHZpZXdlci5wcm9jZXNzLmNhZVJlbmRlck9iamVjdFRyZWVNYW5hZ2VyLnRlbXBOb2RlO1xuXG4gICAgICBsZXQgbm9kZSA9IHZpZXdlci5maW5kSW5zdGFuY2VPYmplY3QodGVtcE5vZGUpO1xuICAgICAgaWYgKG5vZGUpIHtcbiAgICAgICAgbGV0IHNlZ21lbnQgPSBub2RlLnNlZ21lbnQ7XG4gICAgICAgIHNlZ21lbnQuc2VsZWN0YWJpbGl0eVxuICAgICAgICAgIC5zZXRWZXJ0ZXgoTG9uZ2FuLlNlbGVjdGFiaWxpdHlUeXBlLk9mZilcbiAgICAgICAgICAuc2V0TWFya2VyKExvbmdhbi5TZWxlY3RhYmlsaXR5VHlwZS5PZmYpXG4gICAgICAgICAgLnNldEZhY2UoTG9uZ2FuLlNlbGVjdGFiaWxpdHlUeXBlLk9uKVxuICAgICAgICAgIC5zZXRMaW5lKExvbmdhbi5TZWxlY3RhYmlsaXR5VHlwZS5PbilcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldCBtZW1iZXJTZWxlY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX21lbWJlclNlbGVjdGlvbjtcbiAgfVxuXG4gIHByaXZhdGUgc2V0IHBsYXRlU2VsZWN0aW9uKG9ub2ZmOiBib29sZWFuKSB7XG4gICAgdGhpcy5fcGxhdGVTZWxlY3Rpb24gPSBvbm9mZjtcbiAgICBsZXQgdmlld2VyID0gdGhpcy52aWV3ZXIgYXMgVmlld2VyO1xuICAgIGxldCBybyA9IHZpZXdlci5wcm9jZXNzLmNhZVJlbmRlck9iamVjdFRyZWVNYW5hZ2VyLnBsYXRlTm9kZTtcbiAgICB0aGlzLnNldFJPU2VsZWN0YWJpbGl0eShybywgb25vZmYpO1xuXG4gICAgaWYob25vZmYpIHtcbiAgICAgIGxldCB0ZW1wTm9kZSA9IHZpZXdlci5wcm9jZXNzLmNhZVJlbmRlck9iamVjdFRyZWVNYW5hZ2VyLnRlbXBOb2RlO1xuXG4gICAgICBsZXQgbm9kZSA9IHZpZXdlci5maW5kSW5zdGFuY2VPYmplY3QodGVtcE5vZGUpO1xuICAgICAgaWYgKG5vZGUpIHtcbiAgICAgICAgbGV0IHNlZ21lbnQgPSBub2RlLnNlZ21lbnQ7XG4gICAgICAgIHNlZ21lbnQuc2VsZWN0YWJpbGl0eVxuICAgICAgICAgIC5zZXRWZXJ0ZXgoTG9uZ2FuLlNlbGVjdGFiaWxpdHlUeXBlLk9mZilcbiAgICAgICAgICAuc2V0TWFya2VyKExvbmdhbi5TZWxlY3RhYmlsaXR5VHlwZS5PZmYpXG4gICAgICAgICAgLnNldEZhY2UoTG9uZ2FuLlNlbGVjdGFiaWxpdHlUeXBlLk9mZilcbiAgICAgICAgICAuc2V0TGluZShMb25nYW4uU2VsZWN0YWJpbGl0eVR5cGUuT2ZmKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0IHBsYXRlU2VsZWN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9wbGF0ZVNlbGVjdGlvbjtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Uk9TZWxlY3RhYmlsaXR5KHJvOiBSZW5kZXJPYmplY3QsIG9ub2ZmOiBib29sZWFuKSB7XG4gICAgbGV0IHZpZXdlciA9IHRoaXMudmlld2VyIGFzIFZpZXdlcjtcbiAgICBpZiAocm8pIHtcbiAgICAgIGxldCBub2RlID0gdmlld2VyLmZpbmRJbnN0YW5jZU9iamVjdChybyk7XG4gICAgICBpZiAobm9kZSkge1xuICAgICAgICBsZXQgc2VnbWVudCA9IG5vZGUuc2VnbWVudDtcblxuICAgICAgICBpZiAob25vZmYpIHtcbiAgICAgICAgICBzZWdtZW50LnNlbGVjdGFiaWxpdHkudW5zZXQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZWdtZW50LnNlbGVjdGFiaWxpdHlcbiAgICAgICAgICAgIC5zZXRWZXJ0ZXgoTG9uZ2FuLlNlbGVjdGFiaWxpdHlUeXBlLk9mZilcbiAgICAgICAgICAgIC5zZXRGYWNlKExvbmdhbi5TZWxlY3RhYmlsaXR5VHlwZS5PZmYpXG4gICAgICAgICAgICAuc2V0TGluZShMb25nYW4uU2VsZWN0YWJpbGl0eVR5cGUuT2ZmKVxuICAgICAgICAgICAgLnNldE1hcmtlcihMb25nYW4uU2VsZWN0YWJpbGl0eVR5cGUuT2ZmKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3Rpb25JbnRlcmZhY2VNYW5hZ2VyXG4gICAqIOa4hemZpOW9k+WJjemAieaLqeS4jumrmOS6ri5cbiAgICovXG4gIGNsZWFyQWxsU2VsZWN0aW9uQW5kSGlnaGxpZ2h0KCkge1xuICAgIHRoaXMudmlld2VyLnNlbGVjdGlvbk1hbmFnZXIuY2xlYXJBbGxTZWxlY3Rpb25BbmRIaWdobGlnaHQoKTtcbiAgICBsZXQgc2VsZWN0b3IgPSB0aGlzLnZpZXdlci5vcGVyYXRvck1hbmFnZXIuZmluZChcbiAgICAgIFwiQ0FFT2JqZWN0U2VsZWN0b3JcIlxuICAgICkgYXMgQ0FFT2JqZWN0U2VsZWN0b3I7XG4gICAgaWYgKHNlbGVjdG9yKSB7XG4gICAgICBzZWxlY3Rvci5zZWxlY3RlZFJlbmRlck9iamVjdHMuY2xlYXIoKTtcbiAgICB9XG4gICAgdGhpcy52aWV3ZXIudXBkYXRlRGlzcGxheSgpO1xuICB9XG5cbiAgZ2V0Q3VycmVudFNlbGVjdGVkKCkge1xuICAgIC8vIHRoaXMudmlld2VyLnNlbGVjdGlvbk1hbmFnZXIuY2xlYXJBbGxTZWxlY3Rpb25BbmRIaWdobGlnaHQoKTtcbiAgICBsZXQgc2VsZWN0b3IgPSB0aGlzLnZpZXdlci5vcGVyYXRvck1hbmFnZXIuZmluZChcbiAgICAgIFwiQ0FFT2JqZWN0U2VsZWN0b3JcIlxuICAgICkgYXMgQ0FFT2JqZWN0U2VsZWN0b3I7XG4gICAgaWYgKHNlbGVjdG9yKSB7XG4gICAgICByZXR1cm4gc2VsZWN0b3Iuc2VsZWN0ZWRSZW5kZXJPYmplY3RzLml0ZW1zO1xuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBZ0JBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFBQTtBQU9BO0FBQUE7QUFOQTtBQUNBO0FBQ0E7QUFFQTs7QUFJQTtBQUVBO0FBQUE7QUFDQTtBQUNBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBR0E7QUFDQTs7OztBQUVBO0FBcUJBO0FBQ0E7QUFDQTtBQXZCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBOzs7QUFPQTs7OztBQU1BO0FBeUJBO0FBQ0E7QUFDQTtBQTNCQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7O0FBT0E7Ozs7QUFNQTtBQXFCQTtBQUNBO0FBQ0E7QUF2QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7O0FBT0E7Ozs7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7OztBQVFBO0FBTUE7QUFDQTtBQUNBO0FBR0E7QUFDQTs7QUFFQTtBQUNBO0FBRUE7QUFFQTtBQUdBO0FBQ0E7O0FBRUE7QUFDQTtBQUFBO0FBbkxBOztBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./packages/caeDesign/src/gsDevFx/managers/interfaceManagers/selectionInterfaceManager.ts\n");
4046
4046
 
4047
4047
  /***/ }),
4048
4048
 
@@ -4174,7 +4174,7 @@ eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPAC
4174
4174
  /*! no static exports found */
4175
4175
  /***/ (function(module, exports, __webpack_require__) {
4176
4176
 
4177
- eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\"), __webpack_require__(/*! gs-bim-air */ \"./node_modules/gs-bim-air/lib/BimAir.umd.min.js\"), __webpack_require__(/*! gs-ceec-design */ \"./packages/ceecDesign/src/index.ts\"), __webpack_require__(/*! ./jointObject */ \"./packages/caeDesign/src/gsDevFx/objects/caeObjects/jointObject.ts\"), __webpack_require__(/*! gs-ceec-design */ \"./packages/ceecDesign/src/index.ts\"), __webpack_require__(/*! ../../../caeCardEditor/caeCardObjects/cardMember */ \"./packages/caeDesign/src/caeCardEditor/caeCardObjects/cardMember.ts\"), __webpack_require__(/*! ../../../caeCardEditor/caeCardObjects/cardMemberOffsets */ \"./packages/caeDesign/src/caeCardEditor/caeCardObjects/cardMemberOffsets.ts\"), __webpack_require__(/*! gs-ceec-design */ \"./packages/ceecDesign/src/index.ts\"), __webpack_require__(/*! gs-ceec-design */ \"./packages/ceecDesign/src/index.ts\"), __webpack_require__(/*! ./objectColors */ \"./packages/caeDesign/src/gsDevFx/objects/caeObjects/objectColors.ts\"), __webpack_require__(/*! ../../../utility/utility */ \"./packages/caeDesign/src/utility/utility.ts\"), __webpack_require__(/*! ../../../gsDevFx/process */ \"./packages/caeDesign/src/gsDevFx/process.ts\")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, tslib_1, gs_bim_air_1, gs_ceec_design_1, jointObject_1, gs_ceec_design_2, cardMember_1, cardMemberOffsets_1, gs_ceec_design_3, gs_ceec_design_4, objectColors_1, utility_1, process_1) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.MemberAdditionalProperty = exports.MemberObject = exports.OffsetOptionType = exports.BarType = void 0;\n var BarType;\n (function (BarType) {\n BarType[BarType[\"Default\"] = 0] = \"Default\";\n BarType[BarType[\"StayBar\"] = 1] = \"StayBar\";\n BarType[BarType[\"ChordMember\"] = 2] = \"ChordMember\";\n })(BarType = exports.BarType || (exports.BarType = {}));\n var OffsetOptionType;\n (function (OffsetOptionType) {\n OffsetOptionType[\"None\"] = \"\";\n OffsetOptionType[\"World\"] = \"1\";\n OffsetOptionType[\"Local\"] = \"2\";\n })(OffsetOptionType = exports.OffsetOptionType || (exports.OffsetOptionType = {}));\n var MemberObject = function (_super) {\n tslib_1.__extends(MemberObject, _super);\n function MemberObject() {\n var _this = _super.call(this) || this;\n _this.typeName = \"MemberObject\";\n _this._start = null;\n _this._end = null;\n _this._grup = null;\n _this._offsetOption = \"\";\n _this._startOffset = [0, 0, 0];\n _this._endOffset = [0, 0, 0];\n _this.addData = \"\";\n _this.stressOutPut = \"\";\n _this.gapElementType = \"\";\n _this._release_A = \"\";\n _this._release_B = \"\";\n _this.chordAngle = null;\n _this.localZAxis = \"\";\n _this.floodCondition = \"\";\n _this.kOrLOption = \"\";\n _this.avgJointThickness = null;\n _this.kFactor_KY = \"\";\n _this.kFactor_KZ = \"\";\n _this.shearModifier = null;\n _this.density = null;\n _this.ucSegments = null;\n _this.effectiveDiameter = null;\n _this._additionalProperty = null;\n _this.startColor = null;\n _this.endColor = null;\n _this._isDrawSize = false;\n _this._isDrawNumber = false;\n _this._isDrawAxis = false;\n _this._isDrawFixity = false;\n _this._isDrawLabel = false;\n _this.sizeTexts = new Array();\n _this.segmentLengthCoeff = 1;\n _this.faceColor = null;\n _this.lineColor = null;\n _this.isXBracing = false;\n _this.divDistances = null;\n _this.divColors = null;\n _this.instanceTypes.add(\"main\", gs_ceec_design_4.InstanceDesignBaseObject.prototype);\n _this.isDrawSvg = true;\n _this.segment.color.setEdge([255, 255, 255, 1]);\n _this.segment.color.setLine(objectColors_1.ObjectColor.memberLineColor);\n if (!_this.faceColor) {\n _this.faceColor = objectColors_1.ObjectColor.memberFaceColor;\n }\n return _this;\n }\n Object.defineProperty(MemberObject.prototype, \"name\", {\n get: function get() {\n return this._name;\n },\n set: function set(value) {\n if (process_1.Process.activeProcess.nameMapMember.get(this.name)) {\n process_1.Process.activeProcess.nameMapMember.delete(this.name);\n process_1.Process.activeProcess.nameMapMember.set(value, this);\n }\n this._name = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MemberObject.prototype, \"release_A\", {\n get: function get() {\n return this._release_A;\n },\n set: function set(value) {\n this._release_A = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MemberObject.prototype, \"release_B\", {\n get: function get() {\n return this._release_B;\n },\n set: function set(value) {\n this._release_B = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MemberObject.prototype, \"additionalProperty\", {\n get: function get() {\n return this._additionalProperty;\n },\n set: function set(value) {\n this._additionalProperty = value;\n this.additionalPropertyActive();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MemberObject.prototype, \"isDrawSize\", {\n get: function get() {\n return this._isDrawSize;\n },\n set: function set(isDrawSize) {\n this._isDrawSize = isDrawSize;\n if (isDrawSize) {\n this.isDrawNumber = false;\n this.drawSize();\n } else {\n this.clearSizeTexts();\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MemberObject.prototype, \"isDrawNumber\", {\n get: function get() {\n return this._isDrawNumber;\n },\n set: function set(isDrawNumber) {\n this._isDrawNumber = isDrawNumber;\n if (isDrawNumber) {\n this.isDrawSize = false;\n this.drawNumber();\n } else {\n this.numberText && this.numberText.clear();\n this.numberText = null;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MemberObject.prototype, \"isDrawFixity\", {\n get: function get() {\n return this._isDrawFixity;\n },\n set: function set(isDrawFixity) {\n this._isDrawFixity = isDrawFixity;\n if (isDrawFixity) {\n this.drawFixity();\n } else {\n this.fixityText && this.fixityText.clear();\n this.fixityText = null;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MemberObject.prototype, \"isDrawAxis\", {\n get: function get() {\n return this._isDrawAxis;\n },\n set: function set(isDrawAxis) {\n this._isDrawAxis = isDrawAxis;\n if (isDrawAxis) {\n this.drawAxis();\n } else {\n if (this.axisSeg) {\n this.axisSeg.clearAll();\n this.axisSeg = null;\n }\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MemberObject.prototype, \"isDrawLabel\", {\n get: function get() {\n return this._isDrawLabel;\n },\n set: function set(isDrawLabel) {\n this._isDrawLabel = isDrawLabel;\n if (isDrawLabel) {} else {\n if (this.labelRect) {\n this.labelRect.remove();\n }\n this.labelRect = null;\n this.labelText && this.labelText.clear();\n this.labelText = null;\n }\n },\n enumerable: false,\n configurable: true\n });\n MemberObject.prototype.additionalPropertyActive = function () {\n var property = this.additionalProperty;\n if (property) {\n if (property.localZAxis && property.overrideLocalZAxis) {\n this.localZAxis = gs_bim_air_1.Longan.deepClone(property.localZAxis);\n }\n if (property.chordAngle && property.overrideChrodAngle) {\n this.chordAngle = gs_bim_air_1.Longan.deepClone(property.chordAngle);\n }\n if (property.release_A !== null && property.overrideRelease_A) {\n this.release_A = gs_bim_air_1.Longan.deepClone(property.release_A);\n }\n if (property.release_B !== null && property.overrideRelease_B) {\n this.release_B = gs_bim_air_1.Longan.deepClone(property.release_B);\n }\n if (property.buckingOption !== null && property.overrideBuckingOption) {\n this.kOrLOption = gs_bim_air_1.Longan.deepClone(property.buckingOption);\n }\n if (property.avgJointThickness !== null && property.overrideAvgJointThickness) {\n this.avgJointThickness = gs_bim_air_1.Longan.deepClone(property.avgJointThickness);\n }\n if (property.floodCondition !== null && property.overrideFloodCondition) {\n this.floodCondition = gs_bim_air_1.Longan.deepClone(property.floodCondition);\n }\n if (property.kFactor_KY !== null && property.overrideKFactor_KY) {\n this.kFactor_KY = gs_bim_air_1.Longan.deepClone(property.kFactor_KY);\n }\n if (property.kFactor_KZ !== null && property.overrideKFactor_KZ) {\n this.kFactor_KZ = gs_bim_air_1.Longan.deepClone(property.kFactor_KZ);\n }\n if (property.shearModifier !== null && property.overrideShearModifier) {\n this.shearModifier = gs_bim_air_1.Longan.deepClone(property.shearModifier);\n }\n if (property.density !== null && property.overrideDensity) {\n this.density = gs_bim_air_1.Longan.deepClone(property.density);\n }\n if (property.ucSegments !== null && property.overrideUcSegments) {\n this.ucSegments = gs_bim_air_1.Longan.deepClone(property.ucSegments);\n }\n if (property.effectiveDiameter !== null && property.overrideEffectiveDiameter) {\n this.effectiveDiameter = gs_bim_air_1.Longan.deepClone(property.effectiveDiameter);\n }\n if (property.offsetOption !== null && property.overrideOffsetOption) {\n this.offsetOption = gs_bim_air_1.Longan.deepClone(property.offsetOption);\n }\n if (property.startOffset && property.offsetOption && property.offsetOption !== \"0\" && property.overrideStartOffset) {\n this.startOffset = tslib_1.__spreadArray([], tslib_1.__read(property.startOffset), false);\n }\n if (property.endOffset && property.offsetOption && property.offsetOption !== \"0\" && property.overrideEndOffset) {\n this.endOffset = tslib_1.__spreadArray([], tslib_1.__read(property.endOffset), false);\n }\n }\n };\n MemberObject.prototype.toadditionalProperty = function () {\n var property = new MemberAdditionalProperty();\n if (this.localZAxis !== null) {\n property.localZAxis = this.localZAxis;\n }\n if (this.chordAngle !== null) {\n property.chordAngle = this.chordAngle;\n }\n if (this.release_A !== null) {\n property.release_A = this.release_A;\n }\n if (this.release_B !== null) {\n property.release_B = this.release_B;\n }\n if (this.avgJointThickness !== null) {\n property.avgJointThickness = this.avgJointThickness;\n }\n if (this.floodCondition !== null) {\n property.floodCondition = this.floodCondition;\n }\n if (this.kOrLOption !== null) {\n property.buckingOption = this.kOrLOption;\n }\n if (this.kFactor_KY !== null) {\n property.kFactor_KY = this.kFactor_KY;\n }\n if (this.kFactor_KZ !== null) {\n property.kFactor_KZ = this.kFactor_KZ;\n }\n if (this.shearModifier !== null) {\n property.shearModifier = this.shearModifier;\n }\n if (this.density !== null) {\n property.density = this.density;\n }\n if (this.ucSegments !== null) {\n property.ucSegments = this.ucSegments;\n }\n if (this.effectiveDiameter !== null) {\n property.effectiveDiameter = this.effectiveDiameter;\n }\n if (this.offsetOption !== null) {\n property.offsetOption = this.offsetOption;\n }\n if (this.startOffset !== null) {\n property.startOffset = this.startOffset;\n }\n if (this.endOffset !== null) {\n property.endOffset = this.endOffset;\n }\n return property;\n };\n Object.defineProperty(MemberObject.prototype, \"start\", {\n get: function get() {\n return this._start;\n },\n set: function set(value) {\n if (this._start instanceof jointObject_1.JointObject) {\n var list = process_1.Process.activeProcess.jointMapReleativeMembers.get(this._start);\n list.remove(this);\n }\n this._start = value;\n if (value instanceof jointObject_1.JointObject) {\n var list = process_1.Process.activeProcess.jointMapReleativeMembers.get(value);\n if (!list) {\n list = new gs_bim_air_1.Longan.List();\n process_1.Process.activeProcess.jointMapReleativeMembers.set(value, list);\n }\n list.add(this);\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MemberObject.prototype, \"end\", {\n get: function get() {\n return this._end;\n },\n set: function set(value) {\n if (this._end instanceof jointObject_1.JointObject) {\n process_1.Process.activeProcess.jointMapReleativeMembers.get(this._end).remove(this);\n }\n this._end = value;\n if (value instanceof jointObject_1.JointObject) {\n var list = process_1.Process.activeProcess.jointMapReleativeMembers.get(value);\n if (!list) {\n list = new gs_bim_air_1.Longan.List();\n process_1.Process.activeProcess.jointMapReleativeMembers.set(value, list);\n }\n list.add(this);\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MemberObject.prototype, \"grup\", {\n get: function get() {\n return this._grup;\n },\n set: function set(value) {\n if (this._grup) {\n var list = process_1.Process.activeProcess.grupMapReleativeMembers.get(this._grup);\n list.remove(this);\n }\n this._grup = value;\n if (value) {\n var list = process_1.Process.activeProcess.grupMapReleativeMembers.get(value);\n if (!list) {\n list = new gs_bim_air_1.Longan.List();\n process_1.Process.activeProcess.grupMapReleativeMembers.set(value, list);\n }\n list.add(this);\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MemberObject.prototype, \"offsetOption\", {\n get: function get() {\n return this._offsetOption;\n },\n set: function set(value) {\n this._offsetOption = value;\n if (!value) {\n if (this.startOffset) {\n this.startOffset = [0, 0, 0];\n }\n if (this.endOffset) {\n this.endOffset = [0, 0, 0];\n }\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MemberObject.prototype, \"startOffset\", {\n get: function get() {\n return this._startOffset;\n },\n set: function set(value) {\n this._startOffset = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MemberObject.prototype, \"endOffset\", {\n get: function get() {\n return this._endOffset;\n },\n set: function set(value) {\n this._endOffset = value;\n },\n enumerable: false,\n configurable: true\n });\n MemberObject.prototype.serialize = function () {\n var obj = _super.prototype.serialize.call(this);\n if (this.start) {\n obj.start = this.start.id;\n }\n if (this.end) {\n obj.end = this.end.id;\n }\n if (this.grup) {\n obj.grup = this.grup.id;\n }\n if (this.notNullAndNotUndefined(this.offsetOption)) {\n obj.offsetOption = this.offsetOption;\n }\n if (this.startOffset) {\n obj.startOffset = this.startOffset;\n }\n if (this.endOffset) {\n obj.endOffset = this.endOffset;\n }\n if (this.addData) {\n obj.addData = this.addData;\n }\n if (this.notNullAndNotUndefined(this.stressOutPut)) {\n obj.stressOutPut = this.stressOutPut;\n }\n if (this.notNullAndNotUndefined(this.gapElementType)) {\n obj.gapElementType = this.gapElementType;\n }\n if (this.notNullAndNotUndefined(this.release_A)) {\n obj.release_A = this.release_A;\n }\n if (this.notNullAndNotUndefined(this.release_B)) {\n obj.release_B = this.release_B;\n }\n if (this.notNullAndNotUndefined(this.chordAngle)) {\n obj.chordAngle = this.chordAngle;\n }\n if (this.notNullAndNotUndefined(this.localZAxis)) {\n obj.localZAxis = this.localZAxis;\n }\n if (this.notNullAndNotUndefined(this.floodCondition)) {\n obj.floodCondition = this.floodCondition;\n }\n if (this.notNullAndNotUndefined(this.kOrLOption)) {\n obj.kOrLOption = this.kOrLOption;\n }\n if (this.notNullAndNotUndefined(this.avgJointThickness)) {\n obj.avgJointThickness = this.avgJointThickness;\n }\n if (this.notNullAndNotUndefined(this.kFactor_KY)) {\n obj.kFactor_KY = this.kFactor_KY;\n }\n if (this.notNullAndNotUndefined(this.kFactor_KZ)) {\n obj.kFactor_KZ = this.kFactor_KZ;\n }\n if (this.notNullAndNotUndefined(this.shearModifier)) {\n obj.shearModifier = this.shearModifier;\n }\n if (this.notNullAndNotUndefined(this.ucSegments)) {\n obj.ucSegments = this.ucSegments;\n }\n if (this.notNullAndNotUndefined(this.effectiveDiameter)) {\n obj.effectiveDiameter = this.effectiveDiameter;\n }\n if (this.notNullAndNotUndefined(this.density)) {\n obj.density = this.density;\n }\n return obj;\n };\n MemberObject.prototype.deserialize = function (obj, pm) {\n if (obj.start) {\n var start = pm.referenceList.get(obj.start);\n if (start) {\n this.start = start;\n } else {\n this.start = obj.start;\n pm.needReferenceList.add(this);\n }\n }\n if (obj.end) {\n var end = pm.referenceList.get(obj.end);\n if (end) {\n this.end = end;\n } else {\n this.end = obj.end;\n pm.needReferenceList.add(this);\n }\n }\n if (obj.grup) {\n var grup = pm.referenceList.get(obj.grup);\n if (grup) {\n this.grup = grup;\n } else {\n this.grup = obj.grup;\n pm.needReferenceList.add(this);\n }\n }\n if (this.notNullAndNotUndefined(obj.offsetOption)) {\n this.offsetOption = obj.offsetOption;\n }\n if (obj.startOffset) {\n this.startOffset = (0, utility_1.CaeNumberArray)(obj.startOffset);\n }\n if (obj.endOffset) {\n this.endOffset = (0, utility_1.CaeNumberArray)(obj.endOffset);\n }\n if (obj.addData) {\n this.addData = obj.addData;\n }\n if (this.notNullAndNotUndefined(obj.stressOutPut)) {\n this.stressOutPut = obj.stressOutPut;\n }\n if (this.notNullAndNotUndefined(obj.gapElementType)) {\n this.gapElementType = obj.gapElementType;\n }\n if (this.notNullAndNotUndefined(obj.release_A)) {\n this.release_A = obj.release_A;\n }\n if (this.notNullAndNotUndefined(obj.release_B)) {\n this.release_B = obj.release_B;\n }\n this.chordAngle = (0, utility_1.CaeNumber)(obj.chordAngle);\n if (this.notNullAndNotUndefined(obj.localZAxis)) {\n this.localZAxis = obj.localZAxis;\n }\n if (this.notNullAndNotUndefined(obj.floodCondition)) {\n this.floodCondition = obj.floodCondition;\n }\n if (this.notNullAndNotUndefined(obj.kOrLOption)) {\n this.kOrLOption = obj.kOrLOption;\n }\n this.avgJointThickness = (0, utility_1.CaeNumber)(obj.avgJointThickness);\n this.kFactor_KY = obj.kFactor_KY;\n this.kFactor_KZ = obj.kFactor_KZ;\n this.shearModifier = (0, utility_1.CaeNumber)(obj.shearModifier);\n this.density = (0, utility_1.CaeNumber)(obj.density);\n this.ucSegments = (0, utility_1.CaeNumber)(obj.ucSegments);\n this.effectiveDiameter = (0, utility_1.CaeNumber)(obj.effectiveDiameter);\n _super.prototype.deserialize.call(this, obj, pm);\n this.setNeedUpdate();\n };\n MemberObject.prototype.deserializeFromHistory = function (obj, pm) {\n if (obj.start) {\n var start = pm.referenceList.get(obj.start);\n if (start) {\n this.start = start;\n } else {\n this.start = pm.process.findRenderObjectById(obj.start);\n }\n }\n if (obj.end) {\n var end = pm.referenceList.get(obj.end);\n if (end) {\n this.end = end;\n } else {\n this.end = pm.process.findRenderObjectById(obj.end);\n }\n }\n if (obj.grup) {\n var grup = pm.referenceList.get(obj.grup);\n if (grup) {\n this.grup = grup;\n } else {\n this.grup = pm.process.findRenderObjectById(obj.grup);\n }\n }\n if (this.notNullAndNotUndefined(obj.offsetOption)) {\n this.offsetOption = obj.offsetOption;\n }\n if (obj.startOffset) {\n this.startOffset = (0, utility_1.CaeNumberArray)(obj.startOffset);\n }\n if (obj.endOffset) {\n this.endOffset = (0, utility_1.CaeNumberArray)(obj.endOffset);\n }\n if (obj.addData) {\n this.addData = obj.addData;\n }\n if (this.notNullAndNotUndefined(obj.stressOutPut)) {\n this.stressOutPut = obj.stressOutPut;\n }\n if (this.notNullAndNotUndefined(obj.gapElementType)) {\n this.gapElementType = obj.gapElementType;\n }\n if (this.notNullAndNotUndefined(obj.release_A)) {\n this.release_A = obj.release_A;\n }\n if (this.notNullAndNotUndefined(obj.release_B)) {\n this.release_B = obj.release_B;\n }\n this.chordAngle = (0, utility_1.CaeNumber)(obj.chordAngle);\n if (this.notNullAndNotUndefined(obj.localZAxis)) {\n this.localZAxis = obj.localZAxis;\n }\n if (this.notNullAndNotUndefined(obj.floodCondition)) {\n this.floodCondition = obj.floodCondition;\n }\n if (this.notNullAndNotUndefined(obj.kOrLOption)) {\n this.kOrLOption = obj.kOrLOption;\n }\n this.avgJointThickness = (0, utility_1.CaeNumber)(obj.avgJointThickness);\n this.kFactor_KY = obj.kFactor_KY;\n this.kFactor_KZ = obj.kFactor_KZ;\n this.shearModifier = (0, utility_1.CaeNumber)(obj.shearModifier);\n this.density = (0, utility_1.CaeNumber)(obj.density);\n this.ucSegments = (0, utility_1.CaeNumber)(obj.ucSegments);\n this.effectiveDiameter = (0, utility_1.CaeNumber)(obj.effectiveDiameter);\n _super.prototype.deserialize.call(this, obj, pm);\n this.setNeedUpdate();\n };\n MemberObject.prototype.clone = function (cloneObj, cloneManager) {\n cloneObj.start = this.start;\n cloneObj.end = this.end;\n cloneObj.grup = this.grup;\n cloneObj.offsetOption = gs_bim_air_1.Longan.deepClone(this.offsetOption);\n cloneObj.startOffset = gs_bim_air_1.Longan.deepClone(this.startOffset);\n cloneObj.endOffset = gs_bim_air_1.Longan.deepClone(this.endOffset);\n cloneObj.release_A = gs_bim_air_1.Longan.deepClone(this.release_A);\n cloneObj.release_B = gs_bim_air_1.Longan.deepClone(this.release_B);\n cloneObj.chordAngle = gs_bim_air_1.Longan.deepClone(this.chordAngle);\n cloneObj.localZAxis = gs_bim_air_1.Longan.deepClone(this.localZAxis);\n cloneObj.floodCondition = gs_bim_air_1.Longan.deepClone(this.floodCondition);\n cloneObj.kOrLOption = gs_bim_air_1.Longan.deepClone(this.kOrLOption);\n cloneObj.avgJointThickness = gs_bim_air_1.Longan.deepClone(this.avgJointThickness);\n cloneObj.kFactor_KY = gs_bim_air_1.Longan.deepClone(this.kFactor_KY);\n cloneObj.kFactor_KZ = gs_bim_air_1.Longan.deepClone(this.kFactor_KZ);\n cloneObj.shearModifier = gs_bim_air_1.Longan.deepClone(this.shearModifier);\n cloneObj.density = gs_bim_air_1.Longan.deepClone(this.density);\n cloneObj.ucSegments = gs_bim_air_1.Longan.deepClone(this.ucSegments);\n cloneObj.effectiveDiameter = gs_bim_air_1.Longan.deepClone(this.effectiveDiameter);\n cloneObj = _super.prototype.clone.call(this, cloneObj);\n return cloneObj;\n };\n MemberObject.prototype.serializeToCard = function () {\n var cardMember = new cardMember_1.CardMember();\n cardMember.lineLabel.value = \"MEMBER\";\n cardMember.offsetOption.value = this.offsetOption;\n cardMember.jointA_Name.value = this.start.name;\n cardMember.jointB_Name.value = this.end.name;\n cardMember.addData.value = \"\";\n cardMember.grupLabel.value = \"\";\n if (this.grup) {\n cardMember.grupLabel.value = this.grup.name;\n }\n cardMember.stressOutput.value = \"\";\n cardMember.gapElementType.value = \"\";\n cardMember.fixity_JointA_DX.value = this.release_A[0] ? this.release_A[0] : \"\";\n cardMember.fixity_JointA_DY.value = this.release_A[1] ? this.release_A[1] : \"\";\n cardMember.fixity_JointA_DZ.value = this.release_A[2] ? this.release_A[2] : \"\";\n cardMember.fixity_JointA_RX.value = this.release_A[3] ? this.release_A[3] : \"\";\n cardMember.fixity_JointA_RY.value = this.release_A[4] ? this.release_A[4] : \"\";\n cardMember.fixity_JointA_RZ.value = this.release_A[5] ? this.release_A[5] : \"\";\n cardMember.fixity_JointB_DX.value = this.release_B[0] ? this.release_B[0] : \"\";\n cardMember.fixity_JointB_DY.value = this.release_B[1] ? this.release_B[1] : \"\";\n cardMember.fixity_JointB_DZ.value = this.release_B[2] ? this.release_B[2] : \"\";\n cardMember.fixity_JointB_RX.value = this.release_B[3] ? this.release_B[3] : \"\";\n cardMember.fixity_JointB_RY.value = this.release_B[4] ? this.release_B[4] : \"\";\n cardMember.fixity_JointB_RZ.value = this.release_B[5] ? this.release_B[5] : \"\";\n cardMember.chordAngle.value = (0, utility_1.CaeNumberToCard)(this.chordAngle);\n cardMember.localZAxis.value = this.localZAxis;\n cardMember.floodCondition.value = this.floodCondition;\n cardMember.kOrLOption.value = this.kOrLOption;\n cardMember.avgJointThickness.value = this.avgJointThickness;\n cardMember.kFactor_KY.value = this.kFactor_KY;\n cardMember.kFactor_KZ.value = this.kFactor_KZ;\n cardMember.shearModifier.value = this.shearModifier;\n cardMember.density.value = this.density;\n cardMember.ucSegments.value = this.ucSegments;\n cardMember.effectiveDiameter.value = this.effectiveDiameter;\n var result = cardMember.getLine();\n if (this.startOffset || this.endOffset) {\n if (!this.arrayEqual(this.startOffset, [0, 0, 0]) || !this.arrayEqual(this.endOffset, [0, 0, 0])) {\n result += \"\\n\";\n var cardMemberOffsets = new cardMemberOffsets_1.CardMemberOffsets();\n cardMemberOffsets.lineLabel.value = \"MEMBER OFFSETS\";\n cardMemberOffsets.comments.value = \"\";\n cardMemberOffsets.jointA_XOffset.value = this.startOffset[0];\n cardMemberOffsets.jointA_YOffset.value = this.startOffset[1];\n cardMemberOffsets.jointA_ZOffset.value = this.startOffset[2];\n cardMemberOffsets.jointB_XOffset.value = this.endOffset[0];\n cardMemberOffsets.jointB_YOffset.value = this.endOffset[1];\n cardMemberOffsets.jointB_ZOffset.value = this.endOffset[2];\n result += cardMemberOffsets.getLine();\n }\n }\n return result;\n };\n MemberObject.prototype.arrayEqual = function (a1, a2) {\n if (a1.length !== a2.length) {\n return false;\n }\n for (var i = 0; i < a1.length; i++) {\n if (a1[i] !== a2[i]) {\n return false;\n }\n }\n return true;\n };\n MemberObject.prototype.labelProcessing = function (viewer) {\n if (viewer.viewInterfaceManager) {\n if (viewer.viewInterfaceManager.memberFixtyVisible) {\n this.isDrawFixity = true;\n }\n if (viewer.viewInterfaceManager.grupNumberVisible) {\n this.isDrawNumber = true;\n }\n if (viewer.viewInterfaceManager.memberSectionSizeVisible) {\n this.isDrawSize = true;\n }\n if (viewer.viewInterfaceManager.memberAxisVisible) {\n this.isDrawAxis = true;\n }\n }\n if (!viewer.viewInterfaceManager.memberIsLine) {\n if (this.grup) {\n var iro = viewer.findInstanceObject(this);\n if (iro) {\n iro.segment.visibility.setLine(false);\n iro.segment.visibility.setBorder(true);\n }\n }\n } else {\n var iro = viewer.findInstanceObject(this);\n if (iro) {\n iro.segment.visibility.setFace(false);\n iro.segment.visibility.setBorder(false);\n }\n }\n };\n MemberObject.prototype.render = function (viewer) {\n var start = this.start;\n var end = this.end;\n this.clearSvg();\n this.segment.clearGeometries();\n if (!viewer) {\n viewer = process_1.Process.activeProcess.activeViewer;\n }\n if (start && end) {\n this.name = start.name + \"-\" + end.name;\n var resultStartPos = this.getStartPosition();\n var resultEndPos = this.getEndPosition();\n if (!resultStartPos || !resultEndPos) {\n console.log(\"杆件:\" + this.name + \"引用了不存在的空间点,数据丢弃\");\n process_1.Process.activeProcess.removeRenderObject(this);\n return;\n }\n this.startPoint = resultStartPos;\n this.endPoint = resultEndPos;\n _super.prototype.render.call(this);\n if (this.grup && this.grup.grupSegments && this.grup.grupSegments.length === 1) {\n this.grup.grupSegments[0].segmentLength = 0;\n }\n this.drawBody(resultStartPos, resultEndPos, viewer);\n }\n this.labelProcessing(viewer);\n this.drawSvg();\n };\n MemberObject.prototype.memberOffsetSwitch = function () {\n var axisSystem = this.getLocalAxis();\n var wcs = new gs_bim_air_1.Longan.Wcs(new Float32Array([0, 0, 0]), axisSystem.xAxis, axisSystem.yAxis);\n if (this.offsetOption === \"1\") {\n if (this.startOffset) {\n var newStartOffset = wcs.toLocalVector(new Float32Array(this.startOffset));\n this.startOffset[0] = newStartOffset[0];\n this.startOffset[1] = newStartOffset[1];\n this.startOffset[2] = newStartOffset[2];\n }\n if (this.endOffset) {\n var newEndOffset = wcs.toLocalVector(new Float32Array(this.endOffset));\n this.endOffset[0] = newEndOffset[0];\n this.endOffset[1] = newEndOffset[1];\n this.endOffset[2] = newEndOffset[2];\n }\n } else if (this.offsetOption === \"2\") {\n if (this.startOffset) {\n var newStartOffset = wcs.toModelVector(new Float32Array(this.startOffset));\n this.startOffset[0] = newStartOffset[0];\n this.startOffset[1] = newStartOffset[1];\n this.startOffset[2] = newStartOffset[2];\n }\n if (this.endOffset) {\n var newEndOffset = wcs.toModelVector(new Float32Array(this.endOffset));\n this.endOffset[0] = newEndOffset[0];\n this.endOffset[1] = newEndOffset[1];\n this.endOffset[2] = newEndOffset[2];\n }\n }\n };\n MemberObject.prototype.getReleatedWGTMEMObject = function (viewer) {\n var releatedWGTMEMObjects = new Array();\n var WGTMEMObjects = viewer.process.findRenderObjectsByType(\"WGTMEMObject\");\n if (WGTMEMObjects.length > 0) {\n for (var i = 0; i < WGTMEMObjects.length; i++) {\n var child = WGTMEMObjects[i];\n if (child.member && child.member.id === this.id) {\n releatedWGTMEMObjects.push(child);\n }\n }\n }\n return releatedWGTMEMObjects;\n };\n MemberObject.prototype.addReference = function (persistenceManager) {\n persistenceManager.referenceList.add(this.id, this);\n };\n MemberObject.prototype.drawBody = function (resultStartPos, resultEndPos, viewer) {\n var _a, _b;\n var xAxis = gs_bim_air_1.Longan.Point.subtract(new Float32Array(resultEndPos), new Float32Array(resultStartPos));\n if (gs_bim_air_1.Longan.Vector.isZero(xAxis)) {\n console.log(\"杆件始端,末端点相同\");\n return;\n }\n var axis = this.getLocalAxis();\n var normal = gs_bim_air_1.Longan.Vector.normalizeVector(xAxis);\n var zAixs = axis.zAxis;\n var yAxis = axis.yAxis;\n var grup = this.grup;\n if (grup && typeof this.grup !== \"string\" && grup.businessState !== gs_ceec_design_3.BusinessState.Deleting && grup.businessState !== gs_ceec_design_3.BusinessState.Dead) {\n if (grup.grupSegments) {\n var origin_1 = new Float32Array(resultStartPos);\n for (var i = 0; i < grup.grupSegments.length; i++) {\n var grupSegment = grup.grupSegments[i];\n var segmentLength = Number(grupSegment.segmentLength);\n if (!segmentLength) {\n segmentLength = this.getUndefineSegmentLength();\n }\n if (grup.grupSegments.length === 1) {\n segmentLength = this.getMemberLength();\n }\n segmentLength *= this.segmentLengthCoeff;\n var shell_key = -1;\n var polygon = null;\n if (grupSegment.taperOption === \"B\") {\n var polygon1 = grupSegment.getPolygon(origin_1, yAxis, zAixs);\n var sl = segmentLength;\n for (var j = 0; j < grup.grupSegments.length; j++) {\n var tarperGS = grup.grupSegments[j];\n if (tarperGS.taperOption === \"E\" && tarperGS.section.crossSectionType === grupSegment.section.crossSectionType) {\n if (!sl) {\n sl = this.getUndefineSegmentLength();\n sl *= this.segmentLengthCoeff;\n }\n var endOrigin = gs_bim_air_1.Longan.Point.add(origin_1, gs_bim_air_1.Longan.Vector.multiply(normal, sl));\n var polygon2 = tarperGS.getPolygon(endOrigin, yAxis, zAixs);\n var shellData = this.getTarperBoxShellData(polygon1, polygon2);\n var points = shellData.points;\n var indices = shellData.indices;\n shell_key = this.segment.insertShell(points, indices).key;\n if (grupSegment.startColor) {\n this.segment.color.faceColor = grupSegment.startColor;\n } else {\n this.segment.color.faceColor = objectColors_1.ObjectColor.memberFaceColor;\n }\n break;\n }\n }\n } else if (grupSegment.taperOption === \"E\") {\n continue;\n } else {\n if (((_b = (_a = grupSegment.section) === null || _a === void 0 ? void 0 : _a.crossSectionType) === null || _b === void 0 ? void 0 : _b.toLowerCase()) === \"con\") {\n polygon = grupSegment.section.getSectionPolygonCon(origin_1, yAxis, zAixs, segmentLength, grupSegment, this, viewer);\n } else {\n polygon = grupSegment.getPolygon(origin_1, yAxis, zAixs, segmentLength);\n }\n var offset = gs_bim_air_1.Longan.Vector.multiply(normal, segmentLength);\n origin_1 = gs_bim_air_1.Longan.Point.add(origin_1, offset);\n if (!polygon || polygon.points.length === 0) {\n return;\n }\n if (grupSegment.section && grupSegment.section.crossSectionType === \"CON\") {\n shell_key = this.segment.insertTriangularShell(polygon.points, polygon.indices).key;\n } else {\n if (!polygon.length) {\n polygon.length = this.getUndefineSegmentLength();\n }\n if (polygon) {\n if (polygon.points && polygon.indices) {\n var extrudeVector = gs_bim_air_1.Longan.Vector.multiply(normal, polygon.length * this.segmentLengthCoeff);\n var traiangles = gs_bim_air_1.Longan.LonganCore.JS_Feature_Extrude(new Float64Array(polygon.points), new Int32Array(polygon.indices), new Float64Array(extrudeVector), \"\");\n var bodySeg = this.segment;\n gs_bim_air_1.Longan.LonganCore.JS_Open_Segment_By_Key(bodySeg.key);\n {\n shell_key = gs_bim_air_1.Longan.LonganCore.JS_Insert_Triangular_Shell(traiangles.positions, traiangles.indexes);\n }\n gs_bim_air_1.Longan.LonganCore.JS_Close_Segment();\n } else {\n this.segment.color.setLine([255, 0, 0]);\n }\n } else {\n console.log(\"计算截面的顶点索引异常\");\n }\n }\n }\n if (shell_key !== -1 && polygon) {\n gs_bim_air_1.Longan.LonganCore.JS_Open_Segment_By_Key(this.segment.key);\n {\n if (grupSegment.startColor && grupSegment.endColor) {\n gs_bim_air_1.Longan.LonganCore.JS_UnSet_Geometry_Color(shell_key, \"faces\");\n this.setShellCloudColor(grupSegment.section, shell_key, polygon.points, grupSegment.startColor, grupSegment.endColor);\n } else {\n gs_bim_air_1.Longan.LonganCore.JS_UnSet_Geometry_Color(shell_key, \"faces\");\n if (this.faceColor) {\n this.segment.color.setFace(this.faceColor);\n } else {\n this.segment.color.setFace(objectColors_1.ObjectColor.memberFaceColor);\n }\n if (this.lineColor) {\n this.segment.color.setLine(this.lineColor);\n } else {\n this.segment.color.setLine(objectColors_1.ObjectColor.memberLineColor);\n }\n }\n if (this.startColor && this.endColor) {\n gs_bim_air_1.Longan.LonganCore.JS_UnSet_Geometry_Color(shell_key, \"faces\");\n this.setShellCloudColor(grupSegment.section, shell_key, polygon.points, this.startColor, this.endColor);\n }\n }\n gs_bim_air_1.Longan.LonganCore.JS_Close_Segment();\n }\n }\n }\n }\n };\n MemberObject.prototype.getTarperBoxShellData = function (polygon1, polygon2) {\n var pp1 = polygon1.points;\n var p0 = pp1.slice(0, 3);\n var p1 = pp1.slice(3, 6);\n var p2 = pp1.slice(6, 9);\n var p3 = pp1.slice(9, 12);\n var p4 = pp1.slice(12, 15);\n var p5 = pp1.slice(15, 18);\n var p6 = pp1.slice(18, 21);\n var p7 = pp1.slice(21, 24);\n var pp2 = polygon2.points;\n var p8 = pp2.slice(0, 3);\n var p9 = pp2.slice(3, 6);\n var p10 = pp2.slice(6, 9);\n var p11 = pp2.slice(9, 12);\n var p12 = pp2.slice(12, 15);\n var p13 = pp2.slice(15, 18);\n var p14 = pp2.slice(18, 21);\n var p15 = pp2.slice(21, 24);\n var points = Array();\n var indices = Array();\n var currentPointCount = 0;\n points = points.concat(polygon1.points);\n indices = [4, 3, 2, 1, 0, -4, 4, 5, 6, 7];\n currentPointCount += polygon1.points.length / 3;\n points = points.concat(polygon2.points);\n indices = indices.concat([4, currentPointCount + 0, currentPointCount + 1, currentPointCount + 2, currentPointCount + 3, -4, currentPointCount + 7, currentPointCount + 6, currentPointCount + 5, currentPointCount + 4]);\n currentPointCount += polygon2.points.length / 3;\n var data = this.getTaperBoxSideShellData(points, indices, [p0, p8, p11, p3], currentPointCount);\n points = data.points;\n indices = data.indices;\n currentPointCount = data.currentPointCount;\n data = this.getTaperBoxSideShellData(points, indices, [p0, p1, p9, p8], currentPointCount);\n points = data.points;\n indices = data.indices;\n currentPointCount = data.currentPointCount;\n data = this.getTaperBoxSideShellData(points, indices, [p3, p11, p10, p2], currentPointCount);\n points = data.points;\n indices = data.indices;\n currentPointCount = data.currentPointCount;\n data = this.getTaperBoxSideShellData(points, indices, [p1, p2, p10, p9], currentPointCount);\n points = data.points;\n indices = data.indices;\n currentPointCount = data.currentPointCount;\n data = this.getTaperBoxSideShellData(points, indices, [p4, p7, p15, p12], currentPointCount);\n points = data.points;\n indices = data.indices;\n currentPointCount = data.currentPointCount;\n data = this.getTaperBoxSideShellData(points, indices, [p4, p12, p13, p5], currentPointCount);\n points = data.points;\n indices = data.indices;\n currentPointCount = data.currentPointCount;\n data = this.getTaperBoxSideShellData(points, indices, [p5, p13, p14, p6], currentPointCount);\n points = data.points;\n indices = data.indices;\n currentPointCount = data.currentPointCount;\n data = this.getTaperBoxSideShellData(points, indices, [p6, p14, p15, p7], currentPointCount);\n points = data.points;\n indices = data.indices;\n currentPointCount = data.currentPointCount;\n return {\n points: points,\n indices: indices\n };\n };\n MemberObject.prototype.getTaperBoxSideShellData = function (points, indices, NewPoints, currentPointCount) {\n for (var i = 0; i < NewPoints.length; i++) {\n points = points.concat(NewPoints[i]);\n }\n indices = indices.concat([4, currentPointCount + 0, currentPointCount + 1, currentPointCount + 2, currentPointCount + 3]);\n currentPointCount += 4;\n return {\n points: points,\n indices: indices,\n currentPointCount: currentPointCount\n };\n };\n MemberObject.prototype.setShellCloudColor = function (section, shell_key, points, startColor, endColor) {\n if (section) {\n if (section.crossSectionType.toLowerCase() === \"con\") {\n this.setConCloudColor(shell_key, startColor, endColor);\n } else {\n this.setSectionCloudColor(shell_key, points, startColor, endColor);\n }\n } else {\n this.setTubCloudColor(shell_key, startColor, endColor);\n }\n };\n MemberObject.prototype.setConCloudColor = function (shell_key, startColor, endColor) {\n var oneCircleTessNum = MemberObject.curveTessNum * 2;\n var shellColors = new Array();\n for (var i = 0; i < oneCircleTessNum; i++) {\n shellColors.push(startColor[0]);\n shellColors.push(startColor[1]);\n shellColors.push(startColor[2]);\n if (startColor[3]) {\n shellColors.push(startColor[3]);\n } else {\n shellColors.push(1);\n }\n }\n for (var i = 0; i < oneCircleTessNum; i++) {\n shellColors.push(endColor[0]);\n shellColors.push(endColor[1]);\n shellColors.push(endColor[2]);\n if (startColor[3]) {\n shellColors.push(endColor[3]);\n } else {\n shellColors.push(1);\n }\n }\n gs_bim_air_1.Longan.LonganCore.JS_Set_Geometry_Color_By_Value(shell_key, \"faces\", 0, shellColors);\n };\n MemberObject.prototype.setTubCloudColor = function (shell_key, startColor, endColor) {\n var oneCircleTessNum = MemberObject.curveTessNum * 2;\n var shellColors = new Array();\n for (var i = 0; i < oneCircleTessNum; i++) {\n shellColors.push(startColor[0]);\n shellColors.push(startColor[1]);\n shellColors.push(startColor[2]);\n if (startColor[3]) {\n shellColors.push(startColor[3]);\n } else {\n shellColors.push(1);\n }\n }\n for (var i = 0; i < oneCircleTessNum; i++) {\n shellColors.push(endColor[0]);\n shellColors.push(endColor[1]);\n shellColors.push(endColor[2]);\n if (startColor[3]) {\n shellColors.push(endColor[3]);\n } else {\n shellColors.push(1);\n }\n }\n for (var i = 0; i < oneCircleTessNum; i++) {\n shellColors.push(startColor[0]);\n shellColors.push(startColor[1]);\n shellColors.push(startColor[2]);\n if (startColor[3]) {\n shellColors.push(startColor[3]);\n } else {\n shellColors.push(1);\n }\n }\n for (var i = 0; i < oneCircleTessNum; i++) {\n shellColors.push(endColor[0]);\n shellColors.push(endColor[1]);\n shellColors.push(endColor[2]);\n if (startColor[3]) {\n shellColors.push(endColor[3]);\n } else {\n shellColors.push(1);\n }\n }\n for (var i = 0; i < oneCircleTessNum * 2; i++) {\n shellColors.push(endColor[0]);\n shellColors.push(endColor[1]);\n shellColors.push(endColor[2]);\n if (startColor[3]) {\n shellColors.push(endColor[3]);\n } else {\n shellColors.push(1);\n }\n }\n for (var i = 0; i < oneCircleTessNum * 2; i++) {\n shellColors.push(startColor[0]);\n shellColors.push(startColor[1]);\n shellColors.push(startColor[2]);\n if (startColor[3]) {\n shellColors.push(startColor[3]);\n } else {\n shellColors.push(1);\n }\n }\n gs_bim_air_1.Longan.LonganCore.JS_Set_Geometry_Color_By_Value(shell_key, \"faces\", 0, shellColors);\n };\n MemberObject.prototype.setSectionCloudColor = function (shell_key, points, startColor, endColor) {\n var shellColors = new Array();\n for (var i = 0; i < points.length / 3; i++) {\n shellColors.push(startColor[0]);\n shellColors.push(startColor[1]);\n shellColors.push(startColor[2]);\n if (startColor[3]) {\n shellColors.push(startColor[3]);\n } else {\n shellColors.push(1);\n }\n }\n for (var i = 0; i < points.length / 3; i++) {\n shellColors.push(endColor[0]);\n shellColors.push(endColor[1]);\n shellColors.push(endColor[2]);\n if (startColor[3]) {\n shellColors.push(endColor[3]);\n } else {\n shellColors.push(1);\n }\n }\n for (var i = 0; i < points.length / 3; i++) {\n shellColors.push(endColor[0]);\n shellColors.push(endColor[1]);\n shellColors.push(endColor[2]);\n if (startColor[3]) {\n shellColors.push(endColor[3]);\n } else {\n shellColors.push(1);\n }\n }\n for (var i = 0; i < points.length / 3; i++) {\n shellColors.push(startColor[0]);\n shellColors.push(startColor[1]);\n shellColors.push(startColor[2]);\n if (startColor[3]) {\n shellColors.push(startColor[3]);\n } else {\n shellColors.push(1);\n }\n }\n gs_bim_air_1.Longan.LonganCore.JS_Set_Geometry_Color_By_Value(shell_key, \"faces\", 0, shellColors);\n };\n MemberObject.prototype.getUndefineSegmentLength = function () {\n var length = this.getMemberLength();\n if (this.grup) {\n for (var i = 0; i < this.grup.grupSegments.length; i++) {\n length -= this.grup.grupSegments[i].segmentLength;\n }\n }\n if (length < 0) {\n length = 0;\n }\n return length;\n };\n MemberObject.prototype.setReference = function (pm) {\n if (typeof this.start === \"string\") {\n var start = pm.referenceList.get(this.start);\n if (start) {\n this.start = start;\n }\n }\n if (typeof this.end === \"string\") {\n var end = pm.referenceList.get(this.end);\n if (end) {\n this.end = end;\n }\n }\n if (typeof this.grup === \"string\") {\n var grup = pm.referenceList.get(this.grup);\n if (grup) {\n this.grup = grup;\n }\n }\n this.setNeedUpdate();\n };\n MemberObject.prototype.jointReplace = function (replacingJoint, afterJoint) {\n if (this.start.id === replacingJoint.id) {\n this.start = afterJoint;\n } else {\n this.end = afterJoint;\n }\n };\n MemberObject.prototype.getStartPosition = function () {\n var startPosition = null;\n if (this.start) {\n if (this.start.position) {\n startPosition = gs_bim_air_1.Longan.deepClone(this.start.position);\n if (this.startOffset) {\n if (this.offsetOption === \"2\") {\n var axisSystem = this.getStartEndLocalAxis();\n var pos = new Float32Array(startPosition);\n pos = gs_bim_air_1.Longan.Point.add(pos, gs_bim_air_1.Longan.Vector.multiply(axisSystem.xAxis, this.startOffset[0] / 100));\n pos = gs_bim_air_1.Longan.Point.add(pos, gs_bim_air_1.Longan.Vector.multiply(axisSystem.yAxis, this.startOffset[1] / 100));\n pos = gs_bim_air_1.Longan.Point.add(pos, gs_bim_air_1.Longan.Vector.multiply(axisSystem.zAxis, this.startOffset[2] / 100));\n startPosition[0] = pos[0];\n startPosition[1] = pos[1];\n startPosition[2] = pos[2];\n } else if (this.offsetOption === \"1\") {\n startPosition[0] += this.startOffset[0] / 100;\n startPosition[1] += this.startOffset[1] / 100;\n startPosition[2] += this.startOffset[2] / 100;\n } else {}\n }\n } else {\n return null;\n }\n }\n return startPosition;\n };\n MemberObject.prototype.getEndPosition = function () {\n var endPosition = null;\n if (this.end) {\n if (this.end.position) {\n endPosition = gs_bim_air_1.Longan.deepClone(this.end.position);\n if (this.endOffset) {\n if (this.offsetOption === \"2\") {\n var axisSystem = this.getStartEndLocalAxis();\n var pos = new Float32Array(endPosition);\n pos = gs_bim_air_1.Longan.Point.add(pos, gs_bim_air_1.Longan.Vector.multiply(axisSystem.xAxis, this.endOffset[0] / 100));\n pos = gs_bim_air_1.Longan.Point.add(pos, gs_bim_air_1.Longan.Vector.multiply(axisSystem.yAxis, this.endOffset[1] / 100));\n pos = gs_bim_air_1.Longan.Point.add(pos, gs_bim_air_1.Longan.Vector.multiply(axisSystem.zAxis, this.endOffset[2] / 100));\n endPosition[0] = pos[0];\n endPosition[1] = pos[1];\n endPosition[2] = pos[2];\n } else if (this.offsetOption === \"1\") {\n endPosition[0] += this.endOffset[0] / 100;\n endPosition[1] += this.endOffset[1] / 100;\n endPosition[2] += this.endOffset[2] / 100;\n } else {}\n }\n } else {\n return null;\n }\n }\n return endPosition;\n };\n MemberObject.prototype.getVector = function () {\n var startPos = this.getStartPosition();\n var endPos = this.getEndPosition();\n var vector = gs_bim_air_1.Longan.Point.subtract(new Float32Array(endPos), new Float32Array(startPos));\n gs_bim_air_1.Longan.Vector.normalize(vector);\n return vector;\n };\n MemberObject.prototype.getMemberLength = function () {\n var startPos = this.getStartPosition();\n var endPos = this.getEndPosition();\n var length = gs_bim_air_1.Longan.Vector.module(gs_bim_air_1.Longan.Point.subtract(new Float32Array(endPos), new Float32Array(startPos)));\n return length;\n };\n MemberObject.prototype.getLengthOnCM = function () {\n var length = 0;\n if (this.grup) {\n for (var i = 0; i < this.grup.grupSegments.length; i++) {\n length += this.grup.grupSegments[i].segmentLength;\n }\n }\n return length;\n };\n MemberObject.prototype.getWidth = function () {\n var width = 0;\n if (this.grup) {\n for (var i = 0; i < this.grup.grupSegments.length; i++) {\n width += this.grup.grupSegments[i].tubWallThickness;\n }\n }\n return width;\n };\n MemberObject.prototype.getSize = function (index) {\n var text = this.name;\n if (this.grup && this.grup.grupSegments.length > 0) {\n var grupSegment = this.grup.grupSegments[index];\n if (grupSegment.section) {\n if (grupSegment.section.crossSectionType.toLowerCase() === \"con\") {\n var con = grupSegment.section;\n text = con.largeOD + \"~\" + con.smallOD + \"x\" + con.wallThick;\n } else {\n text = grupSegment.section.name;\n }\n } else {\n text = Number(grupSegment.tubOuterDiameter).toString() + \"×\" + Number(grupSegment.tubWallThickness).toString();\n }\n }\n return text;\n };\n MemberObject.prototype.drawSvg = function () {\n if (!this.checkBusinessStateIsActive()) {\n return;\n }\n var iro = process_1.Process.activeProcess.activeViewer.findInstanceObject(this);\n if (iro && !iro.visible) {\n this.clearSvg();\n return;\n }\n if (this._isDrawSize) {\n this.drawSize();\n }\n if (this._isDrawNumber) {\n this.drawNumber();\n }\n if (this._isDrawAxis) {\n this.drawAxis();\n }\n if (this._isDrawFixity) {\n this.drawFixity();\n }\n if (this._isDrawLabel) {}\n if (this._isDrawAxis) {\n this.drawAxis();\n }\n };\n MemberObject.prototype.clearSizeTexts = function () {\n for (var i = 0; i < this.sizeTexts.length; i++) {\n this.sizeTexts[i] && this.sizeTexts[i].clear();\n this.sizeTexts[i] = null;\n }\n this.sizeTexts = new Array();\n };\n MemberObject.prototype.clearSvg = function () {\n this.clearSizeTexts();\n if (this.numberText) {\n this.numberText.clear();\n this.numberText = null;\n }\n if (this.fixityText) {\n this.fixityText.clear();\n this.fixityText = null;\n }\n if (this.labelText && !this.isDrawLabel) {\n this.labelText.clear();\n this.labelText = null;\n this.labelRect.remove();\n this.labelRect = null;\n }\n if (this.axisSeg) {\n this.axisSeg.clearAll();\n this.axisSeg = null;\n }\n _super.prototype.clearSvg.call(this);\n };\n MemberObject.prototype.drawSize = function () {\n if (!this.checkBusinessStateIsActive()) {\n return;\n }\n var viewer = process_1.Process.activeProcess.activeViewer;\n var iro = viewer.findInstanceObject(this);\n if (iro && !iro.visible) {\n return;\n }\n var startPos = new Float32Array(this.getStartPosition());\n var vector = this.getVector();\n var currentLen = 0;\n if (this.grup) {\n if (!this.grup.checkBusinessStateIsActive()) {\n return;\n }\n for (var i = 0; i < this.grup.grupSegments.length; i++) {\n var pos1 = gs_bim_air_1.Longan.Point.add(startPos, gs_bim_air_1.Longan.Vector.multiply(vector, currentLen));\n var point0 = viewer.worldPointToPixelPoint([new Float64Array(pos1)])[0];\n var curGrupSeg = this.grup.grupSegments[i];\n if (!curGrupSeg.segmentLength) {\n currentLen += Number(this.getUndefineSegmentLength());\n } else {\n currentLen += Number(curGrupSeg.segmentLength);\n }\n var resPos = gs_bim_air_1.Longan.Point.add(startPos, gs_bim_air_1.Longan.Vector.multiply(vector, currentLen));\n var point1 = viewer.worldPointToPixelPoint([new Float64Array(resPos)])[0];\n var text = this.getSize(i);\n var sizeText = this.sizeTexts[i];\n if (sizeText) {\n sizeText.move((point0[0] + point1[0]) / 2, (point0[1] + point1[1]) / 2);\n sizeText.attr(\"font-size\", gs_ceec_design_3.DesignBaseObject.fontSize);\n } else {\n var draw = gs_ceec_design_2.SvgDraw.getInstance(viewer.container.id).draw;\n if (!this._group) {\n this._group = draw.group();\n }\n sizeText = draw.text(text).font({\n fill: objectColors_1.ObjectColor.memberLabelColor\n }).attr(\"font-size\", gs_ceec_design_3.DesignBaseObject.fontSize).move((point0[0] + point1[0]) / 2, (point0[1] + point1[1]) / 2);\n this._group.add(sizeText);\n this.sizeTexts.push(sizeText);\n }\n }\n }\n };\n MemberObject.prototype.drawNumber = function () {\n if (!this.checkBusinessStateIsActive()) {\n return;\n }\n var viewer = process_1.Process.activeProcess.activeViewer;\n var iro = viewer.findInstanceObject(this);\n if (iro && !iro.visible) {\n return;\n }\n var point0 = viewer.worldPointToPixelPoint([this.startPoint])[0];\n var point1 = viewer.worldPointToPixelPoint([this.endPoint])[0];\n if (this.numberText) {\n this.numberText.move((point0[0] + point1[0]) / 2, (point0[1] + point1[1]) / 2);\n this.numberText.attr(\"font-size\", gs_ceec_design_3.DesignBaseObject.fontSize);\n } else {\n if (this.grup) {\n if (!this.grup.checkBusinessStateIsActive()) {\n return;\n }\n var draw = gs_ceec_design_2.SvgDraw.getInstance(viewer.container.id).draw;\n if (!this._group) {\n this._group = draw.group();\n }\n this.numberText = draw.text(this.grup.name).font({\n fill: objectColors_1.ObjectColor.memberLabelColor\n }).attr(\"font-size\", gs_ceec_design_3.DesignBaseObject.fontSize).move((point0[0] + point1[0]) / 2, (point0[1] + point1[1]) / 2);\n this._group.add(this.numberText);\n }\n }\n };\n MemberObject.prototype.drawAxis = function () {\n if (!this.checkBusinessStateIsActive()) {\n return;\n }\n var viewer = process_1.Process.activeProcess.activeViewer;\n var iro = viewer.findInstanceObject(this);\n if (iro && !iro.visible) {\n return;\n }\n var unitLengtha = viewer.unitLength / 4;\n var scaleMatrix = gs_bim_air_1.Longan.Matrix4.scaleMatrix(unitLengtha, unitLengtha, unitLengtha);\n var center = this.getCenter();\n var translateMatrix = gs_bim_air_1.Longan.Matrix4.translateMatrix(center[0], center[1], center[2]);\n if (this.axisSeg) {} else {\n var viewer_1 = process_1.Process.activeProcess.activeViewer;\n var unitLengtha_1 = viewer_1.unitLength / 2;\n console.log(\"unitLengtha\", unitLengtha_1);\n var axis = this.getLocalAxis();\n var origin_2 = new Float32Array([0, 0, 0]);\n var xPoint = gs_bim_air_1.Longan.Point.add(origin_2, axis.xAxis);\n var yPoint = gs_bim_air_1.Longan.Point.add(origin_2, axis.yAxis);\n var zPoint = gs_bim_air_1.Longan.Point.add(origin_2, axis.zAxis);\n var matrix_1 = gs_bim_air_1.Longan.Matrix4.identity();\n if (this.segment.attributes.indexOf(gs_bim_air_1.Longan.LonganCore.ObjectType.TYPE_ModellingMatrix)) {\n if (this.segment.modellingMatrix.matrix) {\n matrix_1 = new Float32Array(this.segment.modellingMatrix.matrix);\n }\n }\n var axisParent = viewer_1.sceneSegment.subsegment(\"axisPar\" + this.id);\n axisParent.modellingMatrix.set(matrix_1);\n this.axisSeg = axisParent.subsegment(\"axis\");\n this.axisSeg.renderingOptions.depthRange = [0, 0.1];\n var xSeg = this.axisSeg.subsegment(\"x\");\n var ySeg = this.axisSeg.subsegment(\"y\");\n var zSeg = this.axisSeg.subsegment(\"z\");\n xSeg.color.setLine([0, 0, 255]);\n xSeg.color.setFace([0, 0, 255]);\n ySeg.color.setLine([0, 255, 0]);\n ySeg.color.setFace([0, 255, 0]);\n zSeg.color.setLine([255, 0, 0]);\n zSeg.color.setFace([255, 0, 0]);\n var x = xSeg.insertLine(origin_2, xPoint);\n var y = ySeg.insertLine(origin_2, yPoint);\n var z = zSeg.insertLine(origin_2, zPoint);\n xSeg.insertParametricGeometry(\"scon\", tslib_1.__spreadArray(tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(gs_bim_air_1.Longan.Point.add(xPoint, gs_bim_air_1.Longan.Vector.multiply(axis.xAxis, 0.5))), false), tslib_1.__read(gs_bim_air_1.Longan.Vector.multiply(axis.xAxis, -1)), false), [0.5, 0.2], false));\n ySeg.insertParametricGeometry(\"scon\", tslib_1.__spreadArray(tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(gs_bim_air_1.Longan.Point.add(yPoint, gs_bim_air_1.Longan.Vector.multiply(axis.yAxis, 0.5))), false), tslib_1.__read(gs_bim_air_1.Longan.Vector.multiply(axis.yAxis, -1)), false), [0.5, 0.2], false));\n zSeg.insertParametricGeometry(\"scon\", tslib_1.__spreadArray(tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(gs_bim_air_1.Longan.Point.add(zPoint, gs_bim_air_1.Longan.Vector.multiply(axis.zAxis, 0.5))), false), tslib_1.__read(gs_bim_air_1.Longan.Vector.multiply(axis.zAxis, -1)), false), [0.5, 0.2], false));\n }\n var matrix = gs_bim_air_1.Longan.Matrix4.identity();\n matrix = gs_bim_air_1.Longan.Matrix4.multiply(matrix, translateMatrix);\n matrix = gs_bim_air_1.Longan.Matrix4.multiply(matrix, scaleMatrix);\n this.axisSeg.modellingMatrix.set(matrix);\n };\n MemberObject.prototype.drawFixity = function () {\n if (!this.checkBusinessStateIsActive()) {\n return;\n }\n var viewer = process_1.Process.activeProcess.activeViewer;\n var iro = viewer.findInstanceObject(this);\n if (iro && !iro.visible) {\n return;\n }\n var point = viewer.worldPointToPixelPoint([new Float64Array(this.getCenter())])[0];\n if (this.fixityText) {\n this.fixityText.move(point[0] + 1, point[1] + 1);\n this.fixityText.attr(\"font-size\", gs_ceec_design_3.DesignBaseObject.fontSize);\n } else {\n var draw = gs_ceec_design_2.SvgDraw.getInstance(viewer.container.id).draw;\n if (!this._group) {\n this._group = draw.group();\n }\n var fixity = this.getFixity();\n if (fixity) {\n this.fixityText = draw.text(fixity).font({\n fill: objectColors_1.ObjectColor.memberLabelColor\n }).attr(\"font-size\", gs_ceec_design_3.DesignBaseObject.fontSize).move(point[0] + 1, point[1] + 1);\n this._group.add(this.fixityText);\n }\n }\n };\n MemberObject.prototype.drawLabel = function (position) {\n if (!this.checkBusinessStateIsActive()) {\n return;\n }\n var viewer = process_1.Process.activeProcess.activeViewer;\n var iro = viewer.findInstanceObject(this);\n if (iro && !iro.visible) {\n this.isDrawLabel = false;\n return;\n }\n var x = position[0];\n var y = position[1];\n if (this.labelRect && this.labelText) {\n this.labelRect.move(x, y - 20);\n this.labelText.move(x + 5, y - 18);\n } else {\n var draw = gs_ceec_design_2.SvgDraw.getInstance(viewer.container.id).draw;\n if (!this._group) {\n this._group = draw.group();\n }\n var name_1 = this.name;\n var grp_1 = this.grup ? this.grup.name : \"\";\n var flooding_1 = this.floodCondition ? this.floodCondition : \"N\";\n var length_1 = Number(this.getMemberLength().toFixed(3));\n var ky_1 = \"\";\n var kz_1 = \"\";\n if (this.kOrLOption && this.kOrLOption === \"L\") {\n ky_1 = this.kFactor_KY ? (Number(this.kFactor_KY) / length_1).toFixed(1) : \"1.0\";\n kz_1 = this.kFactor_KZ ? (Number(this.kFactor_KZ) / length_1).toFixed(1) : \"1.0\";\n } else {\n ky_1 = this.kFactor_KY ? Number(this.kFactor_KY).toFixed(1) : \"1.0\";\n kz_1 = this.kFactor_KZ ? Number(this.kFactor_KZ).toFixed(1) : \"1.0\";\n }\n var releaseA_1 = this.release_A;\n var releaseB_1 = this.release_B;\n var textWidth = Math.max(name_1.length, grp_1.length, flooding_1.length) * 17;\n textWidth = textWidth > 100 ? textWidth : 100;\n var rect = draw.rect(textWidth, 130).radius(2).fill(\"#FFFFE1\").move(x, y - 20).attr(\"style\", \"pointer-events: none}\");\n if (this.kOrLOption && this.kOrLOption === \"L\") {\n var text = draw.text(function (add) {\n add.tspan(\"Mem:\".concat(name_1)).newLine();\n add.tspan(\"Grp:\".concat(grp_1)).newLine();\n add.tspan(\"Flooding:\".concat(flooding_1)).newLine();\n add.tspan(\"Len:\".concat(length_1 + \"m\")).newLine();\n add.tspan(\"ARelease:\".concat(releaseA_1)).newLine();\n add.tspan(\"BRelease:\".concat(releaseB_1)).newLine();\n add.tspan(\"LY:\".concat(ky_1)).newLine();\n add.tspan(\"LZ:\".concat(kz_1)).newLine();\n }).font({\n fill: \"#000\"\n }).attr(\"font-size\", 12).move(x + 5, y - 18);\n this._group.add(rect).add(text).front();\n this.labelRect = rect;\n this.labelText = text;\n } else {\n var text = draw.text(function (add) {\n add.tspan(\"Mem:\".concat(name_1)).newLine();\n add.tspan(\"Grp:\".concat(grp_1)).newLine();\n add.tspan(\"Flooding:\".concat(flooding_1)).newLine();\n add.tspan(\"Len:\".concat(length_1 + \"m\")).newLine();\n add.tspan(\"ARelease:\".concat(releaseA_1)).newLine();\n add.tspan(\"BRelease:\".concat(releaseB_1)).newLine();\n add.tspan(\"KY:\".concat(ky_1)).newLine();\n add.tspan(\"KZ:\".concat(kz_1)).newLine();\n }).font({\n fill: \"#000\"\n }).attr(\"font-size\", 12).move(x + 5, y - 18);\n this._group.add(rect).add(text).front();\n this.labelRect = rect;\n this.labelText = text;\n }\n }\n };\n MemberObject.prototype.getLocalAxis = function () {\n var xAxis = this.getVector();\n gs_bim_air_1.Longan.Vector.normalize(xAxis);\n var yAxis = new Float32Array([0, 1, 0]);\n var zAxis = new Float32Array([0, 0, 1]);\n var worldZAxis = new Float32Array([0, 0, 1]);\n var worldMZAxis = new Float32Array([0, 0, -1]);\n if (gs_bim_air_1.Longan.GeometryOperators.sameVector(xAxis, worldZAxis)) {\n zAxis = new Float32Array([0, 1, 0]);\n yAxis = gs_bim_air_1.Longan.Vector.cross(zAxis, xAxis);\n gs_bim_air_1.Longan.Vector.normalize(yAxis);\n } else if (gs_bim_air_1.Longan.GeometryOperators.sameVector(xAxis, worldMZAxis)) {\n zAxis = new Float32Array([0, 1, 0]);\n yAxis = gs_bim_air_1.Longan.Vector.cross(zAxis, xAxis);\n gs_bim_air_1.Longan.Vector.normalize(yAxis);\n } else {\n yAxis = gs_bim_air_1.Longan.Vector.cross(worldZAxis, xAxis);\n gs_bim_air_1.Longan.Vector.normalize(yAxis);\n zAxis = gs_bim_air_1.Longan.Vector.cross(xAxis, yAxis);\n gs_bim_air_1.Longan.Vector.normalize(zAxis);\n if (gs_bim_air_1.Longan.Vector.angle(zAxis, worldZAxis) > Math.PI / 2) {\n zAxis = gs_bim_air_1.Longan.Vector.multiply(zAxis, -1);\n }\n gs_bim_air_1.Longan.Vector.normalize(zAxis);\n yAxis = gs_bim_air_1.Longan.Vector.cross(zAxis, xAxis);\n gs_bim_air_1.Longan.Vector.normalize(yAxis);\n }\n var origin = new Float32Array(this.getStartPosition());\n var chordAngle = this.chordAngle / 180 * Math.PI;\n var maxtrix = gs_bim_air_1.Longan.Matrix4.rotateByAxis(origin, xAxis, chordAngle);\n var newYAxis = gs_bim_air_1.Longan.Matrix4.multiplyVector(maxtrix, yAxis);\n gs_bim_air_1.Longan.Vector.normalize(newYAxis);\n var newZAxis = gs_bim_air_1.Longan.Matrix4.multiplyVector(maxtrix, zAxis);\n gs_bim_air_1.Longan.Vector.normalize(newZAxis);\n yAxis = newYAxis;\n zAxis = newZAxis;\n return {\n xAxis: xAxis,\n yAxis: yAxis,\n zAxis: zAxis\n };\n };\n MemberObject.prototype.getCenter = function () {\n var startPos = this.getStartPosition();\n var endPos = this.getEndPosition();\n return new Float32Array([(startPos[0] + endPos[0]) / 2, (startPos[1] + endPos[1]) / 2, (startPos[2] + endPos[2]) / 2]);\n };\n MemberObject.prototype.getStartEndLocalAxis = function () {\n var xAxis = gs_bim_air_1.Longan.Point.subtract(new Float32Array(this.end.position), new Float32Array(this.start.position));\n gs_bim_air_1.Longan.Vector.normalize(xAxis);\n var yAxis = new Float32Array([0, 1, 0]);\n var zAxis = new Float32Array([0, 0, 1]);\n var worldZAxis = new Float32Array([0, 0, 1]);\n var worldMZAxis = new Float32Array([0, 0, -1]);\n if (gs_bim_air_1.Longan.GeometryOperators.sameVector(xAxis, worldZAxis)) {\n zAxis = new Float32Array([0, 1, 0]);\n yAxis = gs_bim_air_1.Longan.Vector.cross(zAxis, xAxis);\n gs_bim_air_1.Longan.Vector.normalize(yAxis);\n } else if (gs_bim_air_1.Longan.GeometryOperators.sameVector(xAxis, worldMZAxis)) {\n zAxis = new Float32Array([0, 1, 0]);\n yAxis = gs_bim_air_1.Longan.Vector.cross(zAxis, xAxis);\n gs_bim_air_1.Longan.Vector.normalize(yAxis);\n } else {\n yAxis = gs_bim_air_1.Longan.Vector.cross(worldZAxis, xAxis);\n gs_bim_air_1.Longan.Vector.normalize(yAxis);\n zAxis = gs_bim_air_1.Longan.Vector.cross(xAxis, yAxis);\n if (gs_bim_air_1.Longan.Vector.angle(zAxis, worldZAxis) > Math.PI / 2) {\n zAxis = gs_bim_air_1.Longan.Vector.multiply(zAxis, -1);\n }\n gs_bim_air_1.Longan.Vector.normalize(zAxis);\n yAxis = gs_bim_air_1.Longan.Vector.cross(zAxis, xAxis);\n gs_bim_air_1.Longan.Vector.normalize(yAxis);\n }\n return {\n xAxis: xAxis,\n yAxis: yAxis,\n zAxis: zAxis\n };\n };\n MemberObject.prototype.getFixity = function () {\n var startFixity = this.release_A;\n var endFixity = this.release_B;\n return startFixity && endFixity ? startFixity + \"-\" + endFixity : \"\";\n };\n MemberObject.prototype.setColor = function (color, transparency) {\n this.segment.color.setFace(color.concat([transparency]));\n this.segment.color.setLine(color.concat([transparency]));\n };\n MemberObject.prototype.startOffsetCompare = function (offset) {\n var isSame = true;\n if (this.startOffset && offset) {\n for (var i = 0; i < this.startOffset.length; i++) {\n if (Number(this.startOffset[i]) !== Number(offset[i])) {\n isSame = false;\n break;\n }\n }\n } else if (!this.startOffset && !offset) {\n isSame = true;\n } else {\n isSame = false;\n }\n return isSame;\n };\n MemberObject.prototype.endOffsetCompare = function (offset) {\n var isSame = true;\n if (offset && this.endOffset) {\n for (var i = 0; i < this.endOffset.length; i++) {\n if (Number(this.endOffset[i]) !== Number(offset[i])) {\n isSame = false;\n break;\n }\n }\n } else if (!this.endOffset && !offset) {\n isSame = true;\n } else {\n isSame = false;\n }\n return isSame;\n };\n MemberObject.prototype.dispose = function () {\n this.clearSvg();\n _super.prototype.dispose.call(this);\n };\n MemberObject.prototype.tempDelete = function (viewer) {\n var componentGroups = viewer.process.findRenderObjectByName(\"构件分组分色\");\n if (componentGroups) {\n for (var i = 0; i < componentGroups.childObjects.length; i++) {\n var obj = componentGroups.childObjects[i];\n for (var j = 0; j < obj.refercenMemberIds.count(); j++) {\n if (obj.refercenMemberIds.items[j] === this.id) {\n obj.refercenMemberIds.remove(this.id);\n }\n }\n }\n }\n this.isDrawAxis = false;\n this.isDrawLabel = false;\n this.isDrawFixity = false;\n this.isDrawLabel = false;\n this.isDrawNumber = false;\n _super.prototype.tempDelete.call(this, viewer);\n };\n MemberObject.prototype.getGrupSegmentLength = function (segmentIndex) {\n var result = -1;\n if (this.grup) {\n var segmentLen = this.grup.grupSegments[segmentIndex].segmentLength;\n if (!segmentLen) {\n segmentLen = this.getUndefineSegmentLength();\n }\n result = segmentLen;\n }\n return result;\n };\n MemberObject.prototype.getGrupSegmentByLength = function (distance) {\n var index = -1;\n var lenSum = 0;\n if (this.grup) {\n for (var i = 0; i < this.grup.grupSegments.length; i++) {\n var segmentLen = this.grup.grupSegments[i].segmentLength;\n if (!segmentLen) {\n segmentLen = this.getUndefineSegmentLength();\n }\n lenSum += segmentLen;\n if (lenSum >= distance) {\n index = i;\n break;\n }\n }\n }\n return index;\n };\n MemberObject.curveTessNum = 10;\n MemberObject.g_GridRatio = -1;\n return MemberObject;\n }(gs_ceec_design_1.LineObject);\n exports.MemberObject = MemberObject;\n var MemberAdditionalProperty = function () {\n function MemberAdditionalProperty() {\n this.useDefaultProperty = false;\n this.localZAxis = null;\n this.chordAngle = null;\n this.release_A = \"\";\n this.release_B = \"\";\n this.avgJointThickness = null;\n this.floodCondition = null;\n this.buckingOption = \"\";\n this.kFactor_KY = null;\n this.kFactor_KZ = null;\n this.shearModifier = null;\n this.density = null;\n this.ucSegments = null;\n this.effectiveDiameter = null;\n this.startOffset = null;\n this.endOffset = null;\n this.offsetOption = null;\n this.overrideLocalZAxis = false;\n this.overrideChrodAngle = false;\n this.overrideRelease_A = false;\n this.overrideRelease_B = false;\n this.overrideAvgJointThickness = false;\n this.overrideFloodCondition = false;\n this.overrideBuckingOption = false;\n this.overrideKFactor_KY = false;\n this.overrideKFactor_KZ = false;\n this.overrideShearModifier = false;\n this.overrideDensity = false;\n this.overrideUcSegments = false;\n this.overrideEffectiveDiameter = false;\n this.overrideOffsetOption = false;\n this.overrideStartOffset = false;\n this.overrideEndOffset = false;\n }\n MemberAdditionalProperty.getInstance = function () {\n if (this._instance == null) {\n this._instance = new MemberAdditionalProperty();\n }\n return this._instance;\n };\n return MemberAdditionalProperty;\n }();\n exports.MemberAdditionalProperty = MemberAdditionalProperty;\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL2dzRGV2Rngvb2JqZWN0cy9jYWVPYmplY3RzL21lbWJlck9iamVjdC50cy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL1tuYW1lXS8uL3BhY2thZ2VzL2NhZURlc2lnbi9zcmMvZ3NEZXZGeC9vYmplY3RzL2NhZU9iamVjdHMvbWVtYmVyT2JqZWN0LnRzPzYyYzIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9uZ2FuIH0gZnJvbSBcImdzLWJpbS1haXJcIjtcclxuaW1wb3J0IHsgTGluZU9iamVjdCB9IGZyb20gXCJncy1jZWVjLWRlc2lnblwiO1xyXG5pbXBvcnQgeyBJUmVmZXJlbmNlZE9iamVjdCB9IGZyb20gXCIuLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB7IFBlcnNpc3RlbmNlTWFuYWdlciB9IGZyb20gXCIuLi8uLi9tYW5hZ2Vycy9wZXJzaXN0ZW5jZU1hbmFnZXJcIjtcclxuaW1wb3J0IHsgR3J1cE9iamVjdCB9IGZyb20gXCIuL2dydXBPYmplY3RcIjtcclxuaW1wb3J0IHsgSm9pbnRPYmplY3QgfSBmcm9tIFwiLi9qb2ludE9iamVjdFwiO1xyXG5pbXBvcnQgeyBWaWV3ZXIsIFZpZXdlciBhcyB2aWV3ZXIgfSBmcm9tIFwiLi4vLi4vdmlld2VyXCI7XHJcbmltcG9ydCB7IFN2Z0RyYXcgfSBmcm9tIFwiZ3MtY2VlYy1kZXNpZ25cIjtcclxuaW1wb3J0IHsgQ2FyZE1lbWJlciB9IGZyb20gXCIuLi8uLi8uLi9jYWVDYXJkRWRpdG9yL2NhZUNhcmRPYmplY3RzL2NhcmRNZW1iZXJcIjtcclxuaW1wb3J0IHsgQ2FyZE1lbWJlck9mZnNldHMgfSBmcm9tIFwiLi4vLi4vLi4vY2FlQ2FyZEVkaXRvci9jYWVDYXJkT2JqZWN0cy9jYXJkTWVtYmVyT2Zmc2V0c1wiO1xyXG5pbXBvcnQgeyBCdXNpbmVzc1N0YXRlLCBEZXNpZ25CYXNlT2JqZWN0IH0gZnJvbSBcImdzLWNlZWMtZGVzaWduXCI7XHJcbmltcG9ydCB7IEluc3RhbmNlRGVzaWduQmFzZU9iamVjdCB9IGZyb20gXCJncy1jZWVjLWRlc2lnblwiO1xyXG5pbXBvcnQgeyBXR1RNRU1PYmplY3QgfSBmcm9tIFwiLi9wcmV0cmVhdG1lbnQvd2d0bWVtT2JqZWN0XCI7XHJcbmltcG9ydCB7IE9iamVjdENvbG9yIH0gZnJvbSBcIi4vb2JqZWN0Q29sb3JzXCI7XHJcbmltcG9ydCB7IFNlY3Rpb25PYmplY3QgfSBmcm9tIFwiLi9zZWN0aW9uT2JqZWN0XCI7XHJcbmltcG9ydCB7IENvblNlY3Rpb25PYmplY3QgfSBmcm9tIFwiLi9zZWN0aW9ucy9jb25TZWN0aW9uT2JqZWN0XCI7XHJcbmltcG9ydCB7XHJcbiAgQ2FlTnVtYmVyLFxyXG4gIENhZU51bWJlckFycmF5LFxyXG4gIENhZU51bWJlclRvQ2FyZCxcclxufSBmcm9tIFwiLi4vLi4vLi4vdXRpbGl0eS91dGlsaXR5XCI7XHJcbmltcG9ydCB7IFByb2Nlc3MgfSBmcm9tIFwiLi4vLi4vLi4vZ3NEZXZGeC9wcm9jZXNzXCI7XHJcbmltcG9ydCB7IENvbG9yRGl2Q29tcG9uZW50R3JvdXBPYmplY3QgfSBmcm9tIFwiLi4vcHJldHJlYXRtZW50T2JqZWN0cy9jb2xvckRpdkNvbXBvbmVudEdyb3VwT2JqZWN0XCI7XHJcblxyXG5leHBvcnQgZW51bSBCYXJUeXBlIHtcclxuICBEZWZhdWx0ID0gMCwgLy8gIOaXoOexu+Wei1xyXG4gIFN0YXlCYXIgPSAxLCAvLyDmkpHmnYZcclxuICBDaG9yZE1lbWJlciA9IDIsIC8vIOW8puadhlxyXG59XHJcblxyXG5leHBvcnQgZW51bSBPZmZzZXRPcHRpb25UeXBlIHtcclxuICBOb25lID0gXCJcIixcclxuICBXb3JsZCA9IFwiMVwiLFxyXG4gIExvY2FsID0gXCIyXCIsXHJcbn1cclxuXHJcbi8v5p2G5Lu25a+56LGhXHJcbmV4cG9ydCBjbGFzcyBNZW1iZXJPYmplY3QgZXh0ZW5kcyBMaW5lT2JqZWN0IGltcGxlbWVudHMgSVJlZmVyZW5jZWRPYmplY3Qge1xyXG4gIHR5cGVOYW1lID0gXCJNZW1iZXJPYmplY3RcIjtcclxuICAvKiog5byV55So55qE56m66Ze054K5SWTmlbDnu4QsMuS4queCueeahOaVsOe7hC4gKi9cclxuICBwcm90ZWN0ZWQgX3N0YXJ0OiBKb2ludE9iamVjdCA9IG51bGw7XHJcbiAgcHJvdGVjdGVkIF9lbmQ6IEpvaW50T2JqZWN0ID0gbnVsbDtcclxuICAvLyDlvJXnlKjnmoTmiKrpnaLnu4RcclxuICBwcm90ZWN0ZWQgX2dydXA6IEdydXBPYmplY3QgPSBudWxsO1xyXG4gIC8vIOWBj+W/g+exu+Wei1xyXG4gIC8vXCJcIjrkuI3lrZjlnKjlgY/lv4PlgLxcclxuICAvLzE65YGP5b+D6YeP55qE5Zyo5oC75L2T5Z2Q5qCH57O75Lit5a6a5LmJXHJcbiAgLy8yOuWBj+W/g+mHj+WcqOadhuS7tuWxgOmDqOWdkOagh+ezu+S4reWumuS5iVxyXG4gIHByb3RlY3RlZCBfb2Zmc2V0T3B0aW9uOiBzdHJpbmcgPSBcIlwiO1xyXG4gIC8vIOadhuerr+WBj+W/g+mHjy4oY20pXHJcbiAgLy8g5aeL5q615ZKM5pyr56uv55qE5YGP56e75YC8LjbkuKpmbG9hdOWAvC7lgLzooajnpLrlr7nlupTlnZDmoIfovbTkuIrnmoTot53nprtcclxuICBwcm90ZWN0ZWQgX3N0YXJ0T2Zmc2V0OiBudW1iZXJbXSA9IFswLCAwLCAwXTtcclxuICBwcm90ZWN0ZWQgX2VuZE9mZnNldDogbnVtYmVyW10gPSBbMCwgMCwgMF07XHJcblxyXG4gIHByb3RlY3RlZCBfdmlld2VyOiB2aWV3ZXI7XHJcbiAgaXNTdmdEcmF3OiBib29sZWFuO1xyXG5cclxuICAvLyB0ZXh0ID0gbnVsbDtcclxuICBhZGREYXRhOiBzdHJpbmcgPSBcIlwiO1xyXG4gIHN0cmVzc091dFB1dDogc3RyaW5nID0gXCJcIjtcclxuICBnYXBFbGVtZW50VHlwZSA9IFwiXCI7XHJcblxyXG4gIC8vIDIzLTI4XHJcbiAgX3JlbGVhc2VfQSA9IFwiXCI7XHJcbiAgLy8gMjktMzRcclxuICBfcmVsZWFzZV9CID0gXCJcIjtcclxuICAvKipcclxuICAgKiDlvKbop5LvvJozNi00MVxyXG4gICAqIOWNleS9je+8mmRlZ1xyXG4gICAqL1xyXG4gIGNob3JkQW5nbGU6IG51bWJlciA9IG51bGw7XHJcbiAgLyoqXHJcbiAgICog5bGA6YOoWui9tOaMh+WQke+8mjQyLTQ1XHJcbiAgICovXHJcbiAgbG9jYWxaQXhpczogc3RyaW5nID0gXCJcIjtcclxuICAvKipcclxuICAgKiDmmK/lkKblhYXmsLTvvJo0NlxyXG4gICAqL1xyXG4gIGZsb29kQ29uZGl0aW9uOiBzdHJpbmcgPSBcIlwiO1xyXG4gIC8qKlxyXG4gICAqIOWxiOabsumVv+W6pumAiemhue+8mjQ3XHJcbiAgICovXHJcbiAga09yTE9wdGlvbjogc3RyaW5nID0gXCJcIjtcclxuICAvKipcclxuICAgKiDlubPlnYflvKbmnYblpJblvoTvvJo0OC01MVxyXG4gICAqIOWNleS9je+8mm1cclxuICAgKi9cclxuICBhdmdKb2ludFRoaWNrbmVzczogc3RyaW5nID0gbnVsbDtcclxuICAvKipcclxuICAgKiDlsYjmm7JLWS9MWe+8mjUyLTU1XHJcbiAgICovXHJcbiAga0ZhY3Rvcl9LWTogc3RyaW5nID0gXCJcIjtcclxuICAvKipcclxuICAgKiDlsYjmm7JLWi9MWu+8mjU2LTU5XHJcbiAgICovXHJcbiAga0ZhY3Rvcl9LWjogc3RyaW5nID0gXCJcIjtcclxuICAvKipcclxuICAgKiDlnIbnrqHliarliIfkv67mraM6NjAtNjRcclxuICAgKi9cclxuICBzaGVhck1vZGlmaWVyOiBzdHJpbmcgPSBudWxsO1xyXG4gIC8qKlxyXG4gICAqIOadkOaWmeWvhuW6pjo2NS03MFxyXG4gICAqIOWNleS9je+8mnQvbV4zXHJcbiAgICovXHJcbiAgZGVuc2l0eTogc3RyaW5nID0gbnVsbDtcclxuICAvKipcclxuICAgKiDljZXlhYPmlbDph4/vvJo3MS03MlxyXG4gICAqL1xyXG4gIHVjU2VnbWVudHM6IHN0cmluZyA9IG51bGw7XHJcbiAgLyoqXHJcbiAgICog5pyJ5pWI5aSW5b6EOjczLTc4XHJcbiAgICog5Y2V5L2N77yaY21cclxuICAgKi9cclxuICBlZmZlY3RpdmVEaWFtZXRlcjogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgLy8vIOS4muWKoeWxnuaAp1xyXG4gIHByaXZhdGUgX2FkZGl0aW9uYWxQcm9wZXJ0eTogTWVtYmVyQWRkaXRpb25hbFByb3BlcnR5ID0gbnVsbDtcclxuXHJcbiAgc3RhdGljIGN1cnZlVGVzc051bSA9IDEwO1xyXG4gIHN0YXRpYyBnX0dyaWRSYXRpbyA9IC0xO1xyXG4gIC8qKlxyXG4gICAqIOWni+err+minOiJsu+8iOS6keWbvuS9v+eUqO+8iVxyXG4gICAqIDAtMVxyXG4gICAqL1xyXG4gIHN0YXJ0Q29sb3I6IG51bWJlcltdID0gbnVsbDtcclxuICAvKipcclxuICAgKiDmnKvnq6/popzoibLvvIjkupHlm77kvb/nlKjvvIlcclxuICAgKiAwLTFcclxuICAgKi9cclxuICBlbmRDb2xvcjogbnVtYmVyW10gPSBudWxsO1xyXG5cclxuICBfaXNEcmF3U2l6ZSA9IGZhbHNlO1xyXG4gIF9pc0RyYXdOdW1iZXIgPSBmYWxzZTtcclxuICBfaXNEcmF3QXhpcyA9IGZhbHNlO1xyXG4gIF9pc0RyYXdGaXhpdHkgPSBmYWxzZTtcclxuICBfaXNEcmF3TGFiZWwgPSBmYWxzZTtcclxuXHJcbiAgLy8gc3ZnSXRlbTogU3ZnSXRlbTtcclxuICBheGlzU2VnOiBMb25nYW4uU2VnbWVudDtcclxuICBzaXplVGV4dDtcclxuICBzaXplVGV4dHMgPSBuZXcgQXJyYXk8YW55PigpO1xyXG4gIGZpeGl0eVRleHQ7XHJcbiAgbnVtYmVyVGV4dDtcclxuICBsYWJlbFJlY3Q7XHJcbiAgbGFiZWxUZXh0O1xyXG5cclxuICAvLyDmnInpmZDlhYPnvZHmoLzmmL7npLpcclxuICBzZWdtZW50TGVuZ3RoQ29lZmYgPSAxO1xyXG4gIC8vIOadhuS7tum7mOiupOminOiJslxyXG4gIC8vIGZhY2VDb2xvciA9IFsyNTUsIDE1NywgMCwgMV07XHJcbiAgLy8g5p2G5Lu26aKc6ImyLOS8mOWFiOe6p+mrmOS6jk9iamVjdENvbG9y55qEbWVtYmVyRmFjZUNvbG9yLlxyXG4gIGZhY2VDb2xvciA9IG51bGw7XHJcbiAgbGluZUNvbG9yID0gbnVsbDtcclxuXHJcbiAgLy8g5piv5ZCmWOaSkeS4reeahOadhuS7ti5cclxuICBpc1hCcmFjaW5nID0gZmFsc2U7XHJcblxyXG4gIGRpdkRpc3RhbmNlcyA9IG51bGw7XHJcbiAgZGl2Q29sb3JzID0gbnVsbDtcclxuXHJcbiAgLy8gcHVibGljIGdldCBpc1N0YXlCYXIoKSB7XHJcbiAgLy8gICByZXR1cm4gdGhpcy5faXNTdGF5QmFyO1xyXG4gIC8vIH1cclxuXHJcbiAgLy8gcHVibGljIHNldCBpc1N0YXlCYXIodmFsdWUpIHtcclxuICAvLyAgIHRoaXMuX2lzU3RheUJhciA9IHZhbHVlO1xyXG4gIC8vIH1cclxuXHJcbiAgLy8gcHVibGljIGdldCBsYXllcigpIHtcclxuICAvLyAgIHJldHVybiB0aGlzLl9sYXllcjtcclxuICAvLyB9XHJcblxyXG4gIC8vIHB1YmxpYyBzZXQgbGF5ZXIodmFsdWUpIHtcclxuICAvLyAgIHRoaXMuX2xheWVyID0gdmFsdWU7XHJcbiAgLy8gfVxyXG5cclxuICBvdmVycmlkZSBnZXQgbmFtZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9uYW1lO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgc2V0IG5hbWUodmFsdWUpIHtcclxuICAgIGlmICgoUHJvY2Vzcy5hY3RpdmVQcm9jZXNzIGFzIFByb2Nlc3MpLm5hbWVNYXBNZW1iZXIuZ2V0KHRoaXMubmFtZSkpIHtcclxuICAgICAgKFByb2Nlc3MuYWN0aXZlUHJvY2VzcyBhcyBQcm9jZXNzKS5uYW1lTWFwTWVtYmVyLmRlbGV0ZSh0aGlzLm5hbWUpO1xyXG4gICAgICAoUHJvY2Vzcy5hY3RpdmVQcm9jZXNzIGFzIFByb2Nlc3MpLm5hbWVNYXBNZW1iZXIuc2V0KHZhbHVlLCB0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9uYW1lID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHJlbGVhc2VfQSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9yZWxlYXNlX0E7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0IHJlbGVhc2VfQSh2YWx1ZSkge1xyXG4gICAgdGhpcy5fcmVsZWFzZV9BID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHJlbGVhc2VfQigpIHtcclxuICAgIHJldHVybiB0aGlzLl9yZWxlYXNlX0I7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0IHJlbGVhc2VfQih2YWx1ZSkge1xyXG4gICAgdGhpcy5fcmVsZWFzZV9CID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGFkZGl0aW9uYWxQcm9wZXJ0eSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9hZGRpdGlvbmFsUHJvcGVydHk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0IGFkZGl0aW9uYWxQcm9wZXJ0eSh2YWx1ZSkge1xyXG4gICAgdGhpcy5fYWRkaXRpb25hbFByb3BlcnR5ID0gdmFsdWU7XHJcbiAgICB0aGlzLmFkZGl0aW9uYWxQcm9wZXJ0eUFjdGl2ZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzRHJhd1NpemUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNEcmF3U2l6ZTtcclxuICB9XHJcblxyXG4gIHNldCBpc0RyYXdTaXplKGlzRHJhd1NpemUpIHtcclxuICAgIHRoaXMuX2lzRHJhd1NpemUgPSBpc0RyYXdTaXplO1xyXG4gICAgaWYgKGlzRHJhd1NpemUpIHtcclxuICAgICAgdGhpcy5pc0RyYXdOdW1iZXIgPSBmYWxzZTtcclxuICAgICAgdGhpcy5kcmF3U2l6ZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jbGVhclNpemVUZXh0cygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGlzRHJhd051bWJlcigpIHtcclxuICAgIHJldHVybiB0aGlzLl9pc0RyYXdOdW1iZXI7XHJcbiAgfVxyXG5cclxuICBzZXQgaXNEcmF3TnVtYmVyKGlzRHJhd051bWJlcikge1xyXG4gICAgdGhpcy5faXNEcmF3TnVtYmVyID0gaXNEcmF3TnVtYmVyO1xyXG4gICAgaWYgKGlzRHJhd051bWJlcikge1xyXG4gICAgICB0aGlzLmlzRHJhd1NpemUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5kcmF3TnVtYmVyKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm51bWJlclRleHQgJiYgdGhpcy5udW1iZXJUZXh0LmNsZWFyKCk7XHJcbiAgICAgIHRoaXMubnVtYmVyVGV4dCA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgaXNEcmF3Rml4aXR5KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzRHJhd0ZpeGl0eTtcclxuICB9XHJcblxyXG4gIHNldCBpc0RyYXdGaXhpdHkoaXNEcmF3Rml4aXR5KSB7XHJcbiAgICB0aGlzLl9pc0RyYXdGaXhpdHkgPSBpc0RyYXdGaXhpdHk7XHJcbiAgICBpZiAoaXNEcmF3Rml4aXR5KSB7XHJcbiAgICAgIHRoaXMuZHJhd0ZpeGl0eSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5maXhpdHlUZXh0ICYmIHRoaXMuZml4aXR5VGV4dC5jbGVhcigpO1xyXG4gICAgICB0aGlzLmZpeGl0eVRleHQgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGlzRHJhd0F4aXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNEcmF3QXhpcztcclxuICB9XHJcblxyXG4gIHNldCBpc0RyYXdBeGlzKGlzRHJhd0F4aXMpIHtcclxuICAgIHRoaXMuX2lzRHJhd0F4aXMgPSBpc0RyYXdBeGlzO1xyXG4gICAgaWYgKGlzRHJhd0F4aXMpIHtcclxuICAgICAgdGhpcy5kcmF3QXhpcygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuYXhpc1NlZykge1xyXG4gICAgICAgIHRoaXMuYXhpc1NlZy5jbGVhckFsbCgpO1xyXG4gICAgICAgIHRoaXMuYXhpc1NlZyA9IG51bGw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBpc0RyYXdMYWJlbCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9pc0RyYXdMYWJlbDtcclxuICB9XHJcblxyXG4gIHNldCBpc0RyYXdMYWJlbChpc0RyYXdMYWJlbCkge1xyXG4gICAgdGhpcy5faXNEcmF3TGFiZWwgPSBpc0RyYXdMYWJlbDtcclxuICAgIGlmIChpc0RyYXdMYWJlbCkge1xyXG4gICAgICAvLyB0aGlzLmRyYXdMYWJlbCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMubGFiZWxSZWN0KSB7XHJcbiAgICAgICAgLy8gdGhpcy5sYWJlbFJlY3QuY2xlYXIoKTtcclxuICAgICAgICB0aGlzLmxhYmVsUmVjdC5yZW1vdmUoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmxhYmVsUmVjdCA9IG51bGw7XHJcbiAgICAgIHRoaXMubGFiZWxUZXh0ICYmIHRoaXMubGFiZWxUZXh0LmNsZWFyKCk7XHJcbiAgICAgIHRoaXMubGFiZWxUZXh0ID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFkZGl0aW9uYWxQcm9wZXJ0eUFjdGl2ZSgpIHtcclxuICAgIGxldCBwcm9wZXJ0eSA9IHRoaXMuYWRkaXRpb25hbFByb3BlcnR5O1xyXG4gICAgaWYgKHByb3BlcnR5KSB7XHJcbiAgICAgIC8vXHJcbiAgICAgIGlmIChwcm9wZXJ0eS5sb2NhbFpBeGlzICYmIHByb3BlcnR5Lm92ZXJyaWRlTG9jYWxaQXhpcykge1xyXG4gICAgICAgIHRoaXMubG9jYWxaQXhpcyA9IExvbmdhbi5kZWVwQ2xvbmUocHJvcGVydHkubG9jYWxaQXhpcyk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHByb3BlcnR5LmNob3JkQW5nbGUgJiYgcHJvcGVydHkub3ZlcnJpZGVDaHJvZEFuZ2xlKSB7XHJcbiAgICAgICAgdGhpcy5jaG9yZEFuZ2xlID0gTG9uZ2FuLmRlZXBDbG9uZShwcm9wZXJ0eS5jaG9yZEFuZ2xlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAocHJvcGVydHkucmVsZWFzZV9BICE9PSBudWxsICYmIHByb3BlcnR5Lm92ZXJyaWRlUmVsZWFzZV9BKSB7XHJcbiAgICAgICAgdGhpcy5yZWxlYXNlX0EgPSBMb25nYW4uZGVlcENsb25lKHByb3BlcnR5LnJlbGVhc2VfQSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHByb3BlcnR5LnJlbGVhc2VfQiAhPT0gbnVsbCAmJiBwcm9wZXJ0eS5vdmVycmlkZVJlbGVhc2VfQikge1xyXG4gICAgICAgIHRoaXMucmVsZWFzZV9CID0gTG9uZ2FuLmRlZXBDbG9uZShwcm9wZXJ0eS5yZWxlYXNlX0IpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChwcm9wZXJ0eS5idWNraW5nT3B0aW9uICE9PSBudWxsICYmIHByb3BlcnR5Lm92ZXJyaWRlQnVja2luZ09wdGlvbikge1xyXG4gICAgICAgIHRoaXMua09yTE9wdGlvbiA9IExvbmdhbi5kZWVwQ2xvbmUocHJvcGVydHkuYnVja2luZ09wdGlvbik7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKFxyXG4gICAgICAgIHByb3BlcnR5LmF2Z0pvaW50VGhpY2tuZXNzICE9PSBudWxsICYmXHJcbiAgICAgICAgcHJvcGVydHkub3ZlcnJpZGVBdmdKb2ludFRoaWNrbmVzc1xyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmF2Z0pvaW50VGhpY2tuZXNzID0gTG9uZ2FuLmRlZXBDbG9uZShwcm9wZXJ0eS5hdmdKb2ludFRoaWNrbmVzcyk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHByb3BlcnR5LmZsb29kQ29uZGl0aW9uICE9PSBudWxsICYmIHByb3BlcnR5Lm92ZXJyaWRlRmxvb2RDb25kaXRpb24pIHtcclxuICAgICAgICB0aGlzLmZsb29kQ29uZGl0aW9uID0gTG9uZ2FuLmRlZXBDbG9uZShwcm9wZXJ0eS5mbG9vZENvbmRpdGlvbik7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHByb3BlcnR5LmtGYWN0b3JfS1kgIT09IG51bGwgJiYgcHJvcGVydHkub3ZlcnJpZGVLRmFjdG9yX0tZKSB7XHJcbiAgICAgICAgdGhpcy5rRmFjdG9yX0tZID0gTG9uZ2FuLmRlZXBDbG9uZShwcm9wZXJ0eS5rRmFjdG9yX0tZKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAocHJvcGVydHkua0ZhY3Rvcl9LWiAhPT0gbnVsbCAmJiBwcm9wZXJ0eS5vdmVycmlkZUtGYWN0b3JfS1opIHtcclxuICAgICAgICB0aGlzLmtGYWN0b3JfS1ogPSBMb25nYW4uZGVlcENsb25lKHByb3BlcnR5LmtGYWN0b3JfS1opO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChwcm9wZXJ0eS5zaGVhck1vZGlmaWVyICE9PSBudWxsICYmIHByb3BlcnR5Lm92ZXJyaWRlU2hlYXJNb2RpZmllcikge1xyXG4gICAgICAgIHRoaXMuc2hlYXJNb2RpZmllciA9IExvbmdhbi5kZWVwQ2xvbmUocHJvcGVydHkuc2hlYXJNb2RpZmllcik7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHByb3BlcnR5LmRlbnNpdHkgIT09IG51bGwgJiYgcHJvcGVydHkub3ZlcnJpZGVEZW5zaXR5KSB7XHJcbiAgICAgICAgdGhpcy5kZW5zaXR5ID0gTG9uZ2FuLmRlZXBDbG9uZShwcm9wZXJ0eS5kZW5zaXR5KTtcclxuICAgICAgfVxyXG4gICAgICBpZiAocHJvcGVydHkudWNTZWdtZW50cyAhPT0gbnVsbCAmJiBwcm9wZXJ0eS5vdmVycmlkZVVjU2VnbWVudHMpIHtcclxuICAgICAgICB0aGlzLnVjU2VnbWVudHMgPSBMb25nYW4uZGVlcENsb25lKHByb3BlcnR5LnVjU2VnbWVudHMpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChcclxuICAgICAgICBwcm9wZXJ0eS5lZmZlY3RpdmVEaWFtZXRlciAhPT0gbnVsbCAmJlxyXG4gICAgICAgIHByb3BlcnR5Lm92ZXJyaWRlRWZmZWN0aXZlRGlhbWV0ZXJcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5lZmZlY3RpdmVEaWFtZXRlciA9IExvbmdhbi5kZWVwQ2xvbmUocHJvcGVydHkuZWZmZWN0aXZlRGlhbWV0ZXIpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChwcm9wZXJ0eS5vZmZzZXRPcHRpb24gIT09IG51bGwgJiYgcHJvcGVydHkub3ZlcnJpZGVPZmZzZXRPcHRpb24pIHtcclxuICAgICAgICB0aGlzLm9mZnNldE9wdGlvbiA9IExvbmdhbi5kZWVwQ2xvbmUocHJvcGVydHkub2Zmc2V0T3B0aW9uKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgcHJvcGVydHkuc3RhcnRPZmZzZXQgJiZcclxuICAgICAgICBwcm9wZXJ0eS5vZmZzZXRPcHRpb24gJiZcclxuICAgICAgICBwcm9wZXJ0eS5vZmZzZXRPcHRpb24gIT09IFwiMFwiICYmXHJcbiAgICAgICAgcHJvcGVydHkub3ZlcnJpZGVTdGFydE9mZnNldFxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLnN0YXJ0T2Zmc2V0ID0gWy4uLnByb3BlcnR5LnN0YXJ0T2Zmc2V0XTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgcHJvcGVydHkuZW5kT2Zmc2V0ICYmXHJcbiAgICAgICAgcHJvcGVydHkub2Zmc2V0T3B0aW9uICYmXHJcbiAgICAgICAgcHJvcGVydHkub2Zmc2V0T3B0aW9uICE9PSBcIjBcIiAmJlxyXG4gICAgICAgIHByb3BlcnR5Lm92ZXJyaWRlRW5kT2Zmc2V0XHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuZW5kT2Zmc2V0ID0gWy4uLnByb3BlcnR5LmVuZE9mZnNldF07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRvYWRkaXRpb25hbFByb3BlcnR5KCkge1xyXG4gICAgbGV0IHByb3BlcnR5ID0gbmV3IE1lbWJlckFkZGl0aW9uYWxQcm9wZXJ0eSgpO1xyXG4gICAgaWYgKHRoaXMubG9jYWxaQXhpcyAhPT0gbnVsbCkge1xyXG4gICAgICBwcm9wZXJ0eS5sb2NhbFpBeGlzID0gdGhpcy5sb2NhbFpBeGlzO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY2hvcmRBbmdsZSAhPT0gbnVsbCkge1xyXG4gICAgICBwcm9wZXJ0eS5jaG9yZEFuZ2xlID0gdGhpcy5jaG9yZEFuZ2xlO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucmVsZWFzZV9BICE9PSBudWxsKSB7XHJcbiAgICAgIHByb3BlcnR5LnJlbGVhc2VfQSA9IHRoaXMucmVsZWFzZV9BO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucmVsZWFzZV9CICE9PSBudWxsKSB7XHJcbiAgICAgIHByb3BlcnR5LnJlbGVhc2VfQiA9IHRoaXMucmVsZWFzZV9CO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuYXZnSm9pbnRUaGlja25lc3MgIT09IG51bGwpIHtcclxuICAgICAgcHJvcGVydHkuYXZnSm9pbnRUaGlja25lc3MgPSB0aGlzLmF2Z0pvaW50VGhpY2tuZXNzO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZmxvb2RDb25kaXRpb24gIT09IG51bGwpIHtcclxuICAgICAgcHJvcGVydHkuZmxvb2RDb25kaXRpb24gPSB0aGlzLmZsb29kQ29uZGl0aW9uO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMua09yTE9wdGlvbiAhPT0gbnVsbCkge1xyXG4gICAgICBwcm9wZXJ0eS5idWNraW5nT3B0aW9uID0gdGhpcy5rT3JMT3B0aW9uO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMua0ZhY3Rvcl9LWSAhPT0gbnVsbCkge1xyXG4gICAgICBwcm9wZXJ0eS5rRmFjdG9yX0tZID0gdGhpcy5rRmFjdG9yX0tZO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMua0ZhY3Rvcl9LWiAhPT0gbnVsbCkge1xyXG4gICAgICBwcm9wZXJ0eS5rRmFjdG9yX0taID0gdGhpcy5rRmFjdG9yX0taO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2hlYXJNb2RpZmllciAhPT0gbnVsbCkge1xyXG4gICAgICBwcm9wZXJ0eS5zaGVhck1vZGlmaWVyID0gdGhpcy5zaGVhck1vZGlmaWVyO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZGVuc2l0eSAhPT0gbnVsbCkge1xyXG4gICAgICBwcm9wZXJ0eS5kZW5zaXR5ID0gdGhpcy5kZW5zaXR5O1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMudWNTZWdtZW50cyAhPT0gbnVsbCkge1xyXG4gICAgICBwcm9wZXJ0eS51Y1NlZ21lbnRzID0gdGhpcy51Y1NlZ21lbnRzO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZWZmZWN0aXZlRGlhbWV0ZXIgIT09IG51bGwpIHtcclxuICAgICAgcHJvcGVydHkuZWZmZWN0aXZlRGlhbWV0ZXIgPSB0aGlzLmVmZmVjdGl2ZURpYW1ldGVyO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMub2Zmc2V0T3B0aW9uICE9PSBudWxsKSB7XHJcbiAgICAgIHByb3BlcnR5Lm9mZnNldE9wdGlvbiA9IHRoaXMub2Zmc2V0T3B0aW9uO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc3RhcnRPZmZzZXQgIT09IG51bGwpIHtcclxuICAgICAgcHJvcGVydHkuc3RhcnRPZmZzZXQgPSB0aGlzLnN0YXJ0T2Zmc2V0O1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZW5kT2Zmc2V0ICE9PSBudWxsKSB7XHJcbiAgICAgIHByb3BlcnR5LmVuZE9mZnNldCA9IHRoaXMuZW5kT2Zmc2V0O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBwcm9wZXJ0eTtcclxuICB9XHJcblxyXG4gIC8vIOadhuS7tueahOWRveWQjeaYry0tLS1cIui1t+eCueWQjeWtl1wiLVwi57uI54K55ZCN5a2XXCJcclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcblxyXG4gICAgLy8gdGhpcy5fcHJvcGVydGllcy5hZGQobmV3IE1lbWJlclByb3BlcnR5KHRoaXMpKVxyXG4gICAgdGhpcy5pbnN0YW5jZVR5cGVzLmFkZChcIm1haW5cIiwgSW5zdGFuY2VEZXNpZ25CYXNlT2JqZWN0LnByb3RvdHlwZSk7XHJcbiAgICB0aGlzLmlzRHJhd1N2ZyA9IHRydWU7XHJcbiAgICB0aGlzLnNlZ21lbnQuY29sb3Iuc2V0RWRnZShbMjU1LCAyNTUsIDI1NSwgMV0pO1xyXG4gICAgdGhpcy5zZWdtZW50LmNvbG9yLnNldExpbmUoT2JqZWN0Q29sb3IubWVtYmVyTGluZUNvbG9yKTtcclxuICAgIGlmICghdGhpcy5mYWNlQ29sb3IpIHtcclxuICAgICAgdGhpcy5mYWNlQ29sb3IgPSBPYmplY3RDb2xvci5tZW1iZXJGYWNlQ29sb3I7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHN0YXJ0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3N0YXJ0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldCBzdGFydCh2YWx1ZTogSm9pbnRPYmplY3QpIHtcclxuICAgIGlmICh0aGlzLl9zdGFydCBpbnN0YW5jZW9mIEpvaW50T2JqZWN0KSB7XHJcbiAgICAgIGxldCBsaXN0ID0gKFxyXG4gICAgICAgIFByb2Nlc3MuYWN0aXZlUHJvY2VzcyBhcyBQcm9jZXNzXHJcbiAgICAgICkuam9pbnRNYXBSZWxlYXRpdmVNZW1iZXJzLmdldCh0aGlzLl9zdGFydCk7XHJcbiAgICAgIGxpc3QucmVtb3ZlKHRoaXMpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fc3RhcnQgPSB2YWx1ZTtcclxuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEpvaW50T2JqZWN0KSB7XHJcbiAgICAgIGxldCBsaXN0ID0gKFxyXG4gICAgICAgIFByb2Nlc3MuYWN0aXZlUHJvY2VzcyBhcyBQcm9jZXNzXHJcbiAgICAgICkuam9pbnRNYXBSZWxlYXRpdmVNZW1iZXJzLmdldCh2YWx1ZSk7XHJcbiAgICAgIGlmICghbGlzdCkge1xyXG4gICAgICAgIGxpc3QgPSBuZXcgTG9uZ2FuLkxpc3Q8TWVtYmVyT2JqZWN0PigpO1xyXG4gICAgICAgIChQcm9jZXNzLmFjdGl2ZVByb2Nlc3MgYXMgUHJvY2Vzcykuam9pbnRNYXBSZWxlYXRpdmVNZW1iZXJzLnNldChcclxuICAgICAgICAgIHZhbHVlLFxyXG4gICAgICAgICAgbGlzdFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgbGlzdC5hZGQodGhpcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGVuZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9lbmQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0IGVuZCh2YWx1ZTogSm9pbnRPYmplY3QpIHtcclxuICAgIGlmICh0aGlzLl9lbmQgaW5zdGFuY2VvZiBKb2ludE9iamVjdCkge1xyXG4gICAgICAoUHJvY2Vzcy5hY3RpdmVQcm9jZXNzIGFzIFByb2Nlc3MpLmpvaW50TWFwUmVsZWF0aXZlTWVtYmVyc1xyXG4gICAgICAgIC5nZXQodGhpcy5fZW5kKVxyXG4gICAgICAgIC5yZW1vdmUodGhpcyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9lbmQgPSB2YWx1ZTtcclxuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEpvaW50T2JqZWN0KSB7XHJcbiAgICAgIGxldCBsaXN0ID0gKFxyXG4gICAgICAgIFByb2Nlc3MuYWN0aXZlUHJvY2VzcyBhcyBQcm9jZXNzXHJcbiAgICAgICkuam9pbnRNYXBSZWxlYXRpdmVNZW1iZXJzLmdldCh2YWx1ZSk7XHJcbiAgICAgIGlmICghbGlzdCkge1xyXG4gICAgICAgIGxpc3QgPSBuZXcgTG9uZ2FuLkxpc3Q8TWVtYmVyT2JqZWN0PigpO1xyXG4gICAgICAgIChQcm9jZXNzLmFjdGl2ZVByb2Nlc3MgYXMgUHJvY2Vzcykuam9pbnRNYXBSZWxlYXRpdmVNZW1iZXJzLnNldChcclxuICAgICAgICAgIHZhbHVlLFxyXG4gICAgICAgICAgbGlzdFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgbGlzdC5hZGQodGhpcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGdydXAoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZ3J1cDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXQgZ3J1cCh2YWx1ZTogR3J1cE9iamVjdCkge1xyXG4gICAgaWYgKHRoaXMuX2dydXApIHtcclxuICAgICAgbGV0IGxpc3QgPSAoUHJvY2Vzcy5hY3RpdmVQcm9jZXNzIGFzIFByb2Nlc3MpLmdydXBNYXBSZWxlYXRpdmVNZW1iZXJzLmdldChcclxuICAgICAgICB0aGlzLl9ncnVwXHJcbiAgICAgICk7XHJcbiAgICAgIGxpc3QucmVtb3ZlKHRoaXMpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fZ3J1cCA9IHZhbHVlO1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIGxldCBsaXN0ID0gKFByb2Nlc3MuYWN0aXZlUHJvY2VzcyBhcyBQcm9jZXNzKS5ncnVwTWFwUmVsZWF0aXZlTWVtYmVycy5nZXQoXHJcbiAgICAgICAgdmFsdWVcclxuICAgICAgKTtcclxuICAgICAgaWYgKCFsaXN0KSB7XHJcbiAgICAgICAgbGlzdCA9IG5ldyBMb25nYW4uTGlzdDxNZW1iZXJPYmplY3Q+KCk7XHJcbiAgICAgICAgKFByb2Nlc3MuYWN0aXZlUHJvY2VzcyBhcyBQcm9jZXNzKS5ncnVwTWFwUmVsZWF0aXZlTWVtYmVycy5zZXQoXHJcbiAgICAgICAgICB2YWx1ZSxcclxuICAgICAgICAgIGxpc3RcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIGxpc3QuYWRkKHRoaXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBvZmZzZXRPcHRpb24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fb2Zmc2V0T3B0aW9uO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldCBvZmZzZXRPcHRpb24odmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fb2Zmc2V0T3B0aW9uID0gdmFsdWU7XHJcbiAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgIGlmICh0aGlzLnN0YXJ0T2Zmc2V0KSB7XHJcbiAgICAgICAgdGhpcy5zdGFydE9mZnNldCA9IFswLCAwLCAwXTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5lbmRPZmZzZXQpIHtcclxuICAgICAgICB0aGlzLmVuZE9mZnNldCA9IFswLCAwLCAwXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzdGFydE9mZnNldCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9zdGFydE9mZnNldDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXQgc3RhcnRPZmZzZXQodmFsdWU6IG51bWJlcltdKSB7XHJcbiAgICB0aGlzLl9zdGFydE9mZnNldCA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBlbmRPZmZzZXQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZW5kT2Zmc2V0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldCBlbmRPZmZzZXQodmFsdWU6IG51bWJlcltdKSB7XHJcbiAgICB0aGlzLl9lbmRPZmZzZXQgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHNlcmlhbGl6ZSgpOiBhbnkge1xyXG4gICAgbGV0IG9iaiA9IHN1cGVyLnNlcmlhbGl6ZSgpO1xyXG5cclxuICAgIGlmICh0aGlzLnN0YXJ0KSB7XHJcbiAgICAgIG9iai5zdGFydCA9IHRoaXMuc3RhcnQuaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZW5kKSB7XHJcbiAgICAgIG9iai5lbmQgPSB0aGlzLmVuZC5pZDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5ncnVwKSB7XHJcbiAgICAgIG9iai5ncnVwID0gdGhpcy5ncnVwLmlkO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQodGhpcy5vZmZzZXRPcHRpb24pKSB7XHJcbiAgICAgIG9iai5vZmZzZXRPcHRpb24gPSB0aGlzLm9mZnNldE9wdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5zdGFydE9mZnNldCkge1xyXG4gICAgICBvYmouc3RhcnRPZmZzZXQgPSB0aGlzLnN0YXJ0T2Zmc2V0O1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmVuZE9mZnNldCkge1xyXG4gICAgICBvYmouZW5kT2Zmc2V0ID0gdGhpcy5lbmRPZmZzZXQ7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuYWRkRGF0YSkge1xyXG4gICAgICBvYmouYWRkRGF0YSA9IHRoaXMuYWRkRGF0YTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQodGhpcy5zdHJlc3NPdXRQdXQpKSB7XHJcbiAgICAgIG9iai5zdHJlc3NPdXRQdXQgPSB0aGlzLnN0cmVzc091dFB1dDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQodGhpcy5nYXBFbGVtZW50VHlwZSkpIHtcclxuICAgICAgb2JqLmdhcEVsZW1lbnRUeXBlID0gdGhpcy5nYXBFbGVtZW50VHlwZTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQodGhpcy5yZWxlYXNlX0EpKSB7XHJcbiAgICAgIG9iai5yZWxlYXNlX0EgPSB0aGlzLnJlbGVhc2VfQTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQodGhpcy5yZWxlYXNlX0IpKSB7XHJcbiAgICAgIG9iai5yZWxlYXNlX0IgPSB0aGlzLnJlbGVhc2VfQjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQodGhpcy5jaG9yZEFuZ2xlKSkge1xyXG4gICAgICBvYmouY2hvcmRBbmdsZSA9IHRoaXMuY2hvcmRBbmdsZTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQodGhpcy5sb2NhbFpBeGlzKSkge1xyXG4gICAgICBvYmoubG9jYWxaQXhpcyA9IHRoaXMubG9jYWxaQXhpcztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQodGhpcy5mbG9vZENvbmRpdGlvbikpIHtcclxuICAgICAgb2JqLmZsb29kQ29uZGl0aW9uID0gdGhpcy5mbG9vZENvbmRpdGlvbjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQodGhpcy5rT3JMT3B0aW9uKSkge1xyXG4gICAgICBvYmoua09yTE9wdGlvbiA9IHRoaXMua09yTE9wdGlvbjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQodGhpcy5hdmdKb2ludFRoaWNrbmVzcykpIHtcclxuICAgICAgb2JqLmF2Z0pvaW50VGhpY2tuZXNzID0gdGhpcy5hdmdKb2ludFRoaWNrbmVzcztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQodGhpcy5rRmFjdG9yX0tZKSkge1xyXG4gICAgICBvYmoua0ZhY3Rvcl9LWSA9IHRoaXMua0ZhY3Rvcl9LWTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQodGhpcy5rRmFjdG9yX0taKSkge1xyXG4gICAgICBvYmoua0ZhY3Rvcl9LWiA9IHRoaXMua0ZhY3Rvcl9LWjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQodGhpcy5zaGVhck1vZGlmaWVyKSkge1xyXG4gICAgICBvYmouc2hlYXJNb2RpZmllciA9IHRoaXMuc2hlYXJNb2RpZmllcjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQodGhpcy51Y1NlZ21lbnRzKSkge1xyXG4gICAgICBvYmoudWNTZWdtZW50cyA9IHRoaXMudWNTZWdtZW50cztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQodGhpcy5lZmZlY3RpdmVEaWFtZXRlcikpIHtcclxuICAgICAgb2JqLmVmZmVjdGl2ZURpYW1ldGVyID0gdGhpcy5lZmZlY3RpdmVEaWFtZXRlcjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQodGhpcy5kZW5zaXR5KSkge1xyXG4gICAgICBvYmouZGVuc2l0eSA9IHRoaXMuZGVuc2l0eTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxuXHJcbiAgZGVzZXJpYWxpemUob2JqOiBhbnksIHBtOiBQZXJzaXN0ZW5jZU1hbmFnZXIpIHtcclxuICAgIGlmIChvYmouc3RhcnQpIHtcclxuICAgICAgbGV0IHN0YXJ0ID0gcG0ucmVmZXJlbmNlTGlzdC5nZXQob2JqLnN0YXJ0KTtcclxuICAgICAgaWYgKHN0YXJ0KSB7XHJcbiAgICAgICAgdGhpcy5zdGFydCA9IHN0YXJ0IGFzIEpvaW50T2JqZWN0O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc3RhcnQgPSBvYmouc3RhcnQ7XHJcbiAgICAgICAgcG0ubmVlZFJlZmVyZW5jZUxpc3QuYWRkKHRoaXMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9iai5lbmQpIHtcclxuICAgICAgbGV0IGVuZCA9IHBtLnJlZmVyZW5jZUxpc3QuZ2V0KG9iai5lbmQpO1xyXG4gICAgICBpZiAoZW5kKSB7XHJcbiAgICAgICAgdGhpcy5lbmQgPSBlbmQgYXMgSm9pbnRPYmplY3Q7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5lbmQgPSBvYmouZW5kO1xyXG4gICAgICAgIHBtLm5lZWRSZWZlcmVuY2VMaXN0LmFkZCh0aGlzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChvYmouZ3J1cCkge1xyXG4gICAgICBsZXQgZ3J1cCA9IHBtLnJlZmVyZW5jZUxpc3QuZ2V0KG9iai5ncnVwKTtcclxuICAgICAgaWYgKGdydXApIHtcclxuICAgICAgICB0aGlzLmdydXAgPSBncnVwIGFzIEdydXBPYmplY3Q7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5ncnVwID0gb2JqLmdydXA7XHJcbiAgICAgICAgcG0ubmVlZFJlZmVyZW5jZUxpc3QuYWRkKHRoaXMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMubm90TnVsbEFuZE5vdFVuZGVmaW5lZChvYmoub2Zmc2V0T3B0aW9uKSkge1xyXG4gICAgICB0aGlzLm9mZnNldE9wdGlvbiA9IG9iai5vZmZzZXRPcHRpb247XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9iai5zdGFydE9mZnNldCkge1xyXG4gICAgICB0aGlzLnN0YXJ0T2Zmc2V0ID0gQ2FlTnVtYmVyQXJyYXkob2JqLnN0YXJ0T2Zmc2V0KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAob2JqLmVuZE9mZnNldCkge1xyXG4gICAgICB0aGlzLmVuZE9mZnNldCA9IENhZU51bWJlckFycmF5KG9iai5lbmRPZmZzZXQpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChvYmouYWRkRGF0YSkge1xyXG4gICAgICB0aGlzLmFkZERhdGEgPSBvYmouYWRkRGF0YTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQob2JqLnN0cmVzc091dFB1dCkpIHtcclxuICAgICAgdGhpcy5zdHJlc3NPdXRQdXQgPSBvYmouc3RyZXNzT3V0UHV0O1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubm90TnVsbEFuZE5vdFVuZGVmaW5lZChvYmouZ2FwRWxlbWVudFR5cGUpKSB7XHJcbiAgICAgIHRoaXMuZ2FwRWxlbWVudFR5cGUgPSBvYmouZ2FwRWxlbWVudFR5cGU7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5ub3ROdWxsQW5kTm90VW5kZWZpbmVkKG9iai5yZWxlYXNlX0EpKSB7XHJcbiAgICAgIHRoaXMucmVsZWFzZV9BID0gb2JqLnJlbGVhc2VfQTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5ub3ROdWxsQW5kTm90VW5kZWZpbmVkKG9iai5yZWxlYXNlX0IpKSB7XHJcbiAgICAgIHRoaXMucmVsZWFzZV9CID0gb2JqLnJlbGVhc2VfQjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNob3JkQW5nbGUgPSBDYWVOdW1iZXIob2JqLmNob3JkQW5nbGUpO1xyXG5cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQob2JqLmxvY2FsWkF4aXMpKSB7XHJcbiAgICAgIHRoaXMubG9jYWxaQXhpcyA9IG9iai5sb2NhbFpBeGlzO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubm90TnVsbEFuZE5vdFVuZGVmaW5lZChvYmouZmxvb2RDb25kaXRpb24pKSB7XHJcbiAgICAgIHRoaXMuZmxvb2RDb25kaXRpb24gPSBvYmouZmxvb2RDb25kaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5ub3ROdWxsQW5kTm90VW5kZWZpbmVkKG9iai5rT3JMT3B0aW9uKSkge1xyXG4gICAgICB0aGlzLmtPckxPcHRpb24gPSBvYmoua09yTE9wdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmF2Z0pvaW50VGhpY2tuZXNzID0gQ2FlTnVtYmVyKG9iai5hdmdKb2ludFRoaWNrbmVzcyk7XHJcblxyXG4gICAgdGhpcy5rRmFjdG9yX0tZID0gb2JqLmtGYWN0b3JfS1k7XHJcblxyXG4gICAgdGhpcy5rRmFjdG9yX0taID0gb2JqLmtGYWN0b3JfS1o7XHJcblxyXG4gICAgdGhpcy5zaGVhck1vZGlmaWVyID0gQ2FlTnVtYmVyKG9iai5zaGVhck1vZGlmaWVyKTtcclxuXHJcbiAgICB0aGlzLmRlbnNpdHkgPSBDYWVOdW1iZXIob2JqLmRlbnNpdHkpO1xyXG5cclxuICAgIHRoaXMudWNTZWdtZW50cyA9IENhZU51bWJlcihvYmoudWNTZWdtZW50cyk7XHJcblxyXG4gICAgdGhpcy5lZmZlY3RpdmVEaWFtZXRlciA9IENhZU51bWJlcihvYmouZWZmZWN0aXZlRGlhbWV0ZXIpO1xyXG5cclxuICAgIHN1cGVyLmRlc2VyaWFsaXplKG9iaiwgcG0pO1xyXG4gICAgdGhpcy5zZXROZWVkVXBkYXRlKCk7XHJcbiAgfVxyXG5cclxuICBkZXNlcmlhbGl6ZUZyb21IaXN0b3J5KG9iajogYW55LCBwbTogUGVyc2lzdGVuY2VNYW5hZ2VyKSB7XHJcbiAgICBpZiAob2JqLnN0YXJ0KSB7XHJcbiAgICAgIGxldCBzdGFydCA9IHBtLnJlZmVyZW5jZUxpc3QuZ2V0KG9iai5zdGFydCk7XHJcbiAgICAgIGlmIChzdGFydCkge1xyXG4gICAgICAgIHRoaXMuc3RhcnQgPSBzdGFydCBhcyBKb2ludE9iamVjdDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnN0YXJ0ID0gcG0ucHJvY2Vzcy5maW5kUmVuZGVyT2JqZWN0QnlJZChvYmouc3RhcnQpIGFzIEpvaW50T2JqZWN0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9iai5lbmQpIHtcclxuICAgICAgbGV0IGVuZCA9IHBtLnJlZmVyZW5jZUxpc3QuZ2V0KG9iai5lbmQpO1xyXG4gICAgICBpZiAoZW5kKSB7XHJcbiAgICAgICAgdGhpcy5lbmQgPSBlbmQgYXMgSm9pbnRPYmplY3Q7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5lbmQgPSBwbS5wcm9jZXNzLmZpbmRSZW5kZXJPYmplY3RCeUlkKG9iai5lbmQpIGFzIEpvaW50T2JqZWN0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9iai5ncnVwKSB7XHJcbiAgICAgIGxldCBncnVwID0gcG0ucmVmZXJlbmNlTGlzdC5nZXQob2JqLmdydXApO1xyXG4gICAgICBpZiAoZ3J1cCkge1xyXG4gICAgICAgIHRoaXMuZ3J1cCA9IGdydXAgYXMgR3J1cE9iamVjdDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmdydXAgPSBwbS5wcm9jZXNzLmZpbmRSZW5kZXJPYmplY3RCeUlkKG9iai5ncnVwKSBhcyBHcnVwT2JqZWN0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMubm90TnVsbEFuZE5vdFVuZGVmaW5lZChvYmoub2Zmc2V0T3B0aW9uKSkge1xyXG4gICAgICB0aGlzLm9mZnNldE9wdGlvbiA9IG9iai5vZmZzZXRPcHRpb247XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9iai5zdGFydE9mZnNldCkge1xyXG4gICAgICB0aGlzLnN0YXJ0T2Zmc2V0ID0gQ2FlTnVtYmVyQXJyYXkob2JqLnN0YXJ0T2Zmc2V0KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAob2JqLmVuZE9mZnNldCkge1xyXG4gICAgICB0aGlzLmVuZE9mZnNldCA9IENhZU51bWJlckFycmF5KG9iai5lbmRPZmZzZXQpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChvYmouYWRkRGF0YSkge1xyXG4gICAgICB0aGlzLmFkZERhdGEgPSBvYmouYWRkRGF0YTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQob2JqLnN0cmVzc091dFB1dCkpIHtcclxuICAgICAgdGhpcy5zdHJlc3NPdXRQdXQgPSBvYmouc3RyZXNzT3V0UHV0O1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubm90TnVsbEFuZE5vdFVuZGVmaW5lZChvYmouZ2FwRWxlbWVudFR5cGUpKSB7XHJcbiAgICAgIHRoaXMuZ2FwRWxlbWVudFR5cGUgPSBvYmouZ2FwRWxlbWVudFR5cGU7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5ub3ROdWxsQW5kTm90VW5kZWZpbmVkKG9iai5yZWxlYXNlX0EpKSB7XHJcbiAgICAgIHRoaXMucmVsZWFzZV9BID0gb2JqLnJlbGVhc2VfQTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5ub3ROdWxsQW5kTm90VW5kZWZpbmVkKG9iai5yZWxlYXNlX0IpKSB7XHJcbiAgICAgIHRoaXMucmVsZWFzZV9CID0gb2JqLnJlbGVhc2VfQjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNob3JkQW5nbGUgPSBDYWVOdW1iZXIob2JqLmNob3JkQW5nbGUpO1xyXG5cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQob2JqLmxvY2FsWkF4aXMpKSB7XHJcbiAgICAgIHRoaXMubG9jYWxaQXhpcyA9IG9iai5sb2NhbFpBeGlzO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubm90TnVsbEFuZE5vdFVuZGVmaW5lZChvYmouZmxvb2RDb25kaXRpb24pKSB7XHJcbiAgICAgIHRoaXMuZmxvb2RDb25kaXRpb24gPSBvYmouZmxvb2RDb25kaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5ub3ROdWxsQW5kTm90VW5kZWZpbmVkKG9iai5rT3JMT3B0aW9uKSkge1xyXG4gICAgICB0aGlzLmtPckxPcHRpb24gPSBvYmoua09yTE9wdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmF2Z0pvaW50VGhpY2tuZXNzID0gQ2FlTnVtYmVyKG9iai5hdmdKb2ludFRoaWNrbmVzcyk7XHJcblxyXG4gICAgdGhpcy5rRmFjdG9yX0tZID0gb2JqLmtGYWN0b3JfS1k7XHJcblxyXG4gICAgdGhpcy5rRmFjdG9yX0taID0gb2JqLmtGYWN0b3JfS1o7XHJcblxyXG4gICAgdGhpcy5zaGVhck1vZGlmaWVyID0gQ2FlTnVtYmVyKG9iai5zaGVhck1vZGlmaWVyKTtcclxuXHJcbiAgICB0aGlzLmRlbnNpdHkgPSBDYWVOdW1iZXIob2JqLmRlbnNpdHkpO1xyXG5cclxuICAgIHRoaXMudWNTZWdtZW50cyA9IENhZU51bWJlcihvYmoudWNTZWdtZW50cyk7XHJcblxyXG4gICAgdGhpcy5lZmZlY3RpdmVEaWFtZXRlciA9IENhZU51bWJlcihvYmouZWZmZWN0aXZlRGlhbWV0ZXIpO1xyXG5cclxuICAgIHN1cGVyLmRlc2VyaWFsaXplKG9iaiwgcG0pO1xyXG4gICAgdGhpcy5zZXROZWVkVXBkYXRlKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgY2xvbmUoY2xvbmVPYmo6IGFueSwgY2xvbmVNYW5hZ2VyPzogTG9uZ2FuLkNsb25lTWFuYWdlcikge1xyXG4gICAgY2xvbmVPYmouc3RhcnQgPSB0aGlzLnN0YXJ0O1xyXG4gICAgY2xvbmVPYmouZW5kID0gdGhpcy5lbmQ7XHJcbiAgICBjbG9uZU9iai5ncnVwID0gdGhpcy5ncnVwO1xyXG4gICAgY2xvbmVPYmoub2Zmc2V0T3B0aW9uID0gTG9uZ2FuLmRlZXBDbG9uZSh0aGlzLm9mZnNldE9wdGlvbik7XHJcbiAgICBjbG9uZU9iai5zdGFydE9mZnNldCA9IExvbmdhbi5kZWVwQ2xvbmUodGhpcy5zdGFydE9mZnNldCk7XHJcbiAgICBjbG9uZU9iai5lbmRPZmZzZXQgPSBMb25nYW4uZGVlcENsb25lKHRoaXMuZW5kT2Zmc2V0KTtcclxuXHJcbiAgICBjbG9uZU9iai5yZWxlYXNlX0EgPSBMb25nYW4uZGVlcENsb25lKHRoaXMucmVsZWFzZV9BKTtcclxuICAgIGNsb25lT2JqLnJlbGVhc2VfQiA9IExvbmdhbi5kZWVwQ2xvbmUodGhpcy5yZWxlYXNlX0IpO1xyXG4gICAgY2xvbmVPYmouY2hvcmRBbmdsZSA9IExvbmdhbi5kZWVwQ2xvbmUodGhpcy5jaG9yZEFuZ2xlKTtcclxuICAgIGNsb25lT2JqLmxvY2FsWkF4aXMgPSBMb25nYW4uZGVlcENsb25lKHRoaXMubG9jYWxaQXhpcyk7XHJcbiAgICBjbG9uZU9iai5mbG9vZENvbmRpdGlvbiA9IExvbmdhbi5kZWVwQ2xvbmUodGhpcy5mbG9vZENvbmRpdGlvbik7XHJcbiAgICBjbG9uZU9iai5rT3JMT3B0aW9uID0gTG9uZ2FuLmRlZXBDbG9uZSh0aGlzLmtPckxPcHRpb24pO1xyXG4gICAgY2xvbmVPYmouYXZnSm9pbnRUaGlja25lc3MgPSBMb25nYW4uZGVlcENsb25lKHRoaXMuYXZnSm9pbnRUaGlja25lc3MpO1xyXG4gICAgY2xvbmVPYmoua0ZhY3Rvcl9LWSA9IExvbmdhbi5kZWVwQ2xvbmUodGhpcy5rRmFjdG9yX0tZKTtcclxuICAgIGNsb25lT2JqLmtGYWN0b3JfS1ogPSBMb25nYW4uZGVlcENsb25lKHRoaXMua0ZhY3Rvcl9LWik7XHJcbiAgICBjbG9uZU9iai5zaGVhck1vZGlmaWVyID0gTG9uZ2FuLmRlZXBDbG9uZSh0aGlzLnNoZWFyTW9kaWZpZXIpO1xyXG4gICAgY2xvbmVPYmouZGVuc2l0eSA9IExvbmdhbi5kZWVwQ2xvbmUodGhpcy5kZW5zaXR5KTtcclxuICAgIGNsb25lT2JqLnVjU2VnbWVudHMgPSBMb25nYW4uZGVlcENsb25lKHRoaXMudWNTZWdtZW50cyk7XHJcbiAgICBjbG9uZU9iai5lZmZlY3RpdmVEaWFtZXRlciA9IExvbmdhbi5kZWVwQ2xvbmUodGhpcy5lZmZlY3RpdmVEaWFtZXRlcik7XHJcblxyXG4gICAgY2xvbmVPYmogPSBzdXBlci5jbG9uZShjbG9uZU9iaik7XHJcbiAgICByZXR1cm4gY2xvbmVPYmo7XHJcbiAgfVxyXG5cclxuICBzZXJpYWxpemVUb0NhcmQoKSB7XHJcbiAgICAvL1xyXG4gICAgbGV0IGNhcmRNZW1iZXIgPSBuZXcgQ2FyZE1lbWJlcigpO1xyXG4gICAgY2FyZE1lbWJlci5saW5lTGFiZWwudmFsdWUgPSBcIk1FTUJFUlwiO1xyXG4gICAgY2FyZE1lbWJlci5vZmZzZXRPcHRpb24udmFsdWUgPSB0aGlzLm9mZnNldE9wdGlvbjtcclxuICAgIGNhcmRNZW1iZXIuam9pbnRBX05hbWUudmFsdWUgPSB0aGlzLnN0YXJ0Lm5hbWU7XHJcbiAgICBjYXJkTWVtYmVyLmpvaW50Ql9OYW1lLnZhbHVlID0gdGhpcy5lbmQubmFtZTtcclxuICAgIGNhcmRNZW1iZXIuYWRkRGF0YS52YWx1ZSA9IFwiXCI7XHJcbiAgICBjYXJkTWVtYmVyLmdydXBMYWJlbC52YWx1ZSA9IFwiXCI7XHJcbiAgICBpZiAodGhpcy5ncnVwKSB7XHJcbiAgICAgIGNhcmRNZW1iZXIuZ3J1cExhYmVsLnZhbHVlID0gdGhpcy5ncnVwLm5hbWU7XHJcbiAgICB9XHJcbiAgICBjYXJkTWVtYmVyLnN0cmVzc091dHB1dC52YWx1ZSA9IFwiXCI7XHJcbiAgICBjYXJkTWVtYmVyLmdhcEVsZW1lbnRUeXBlLnZhbHVlID0gXCJcIjtcclxuICAgIGNhcmRNZW1iZXIuZml4aXR5X0pvaW50QV9EWC52YWx1ZSA9IHRoaXMucmVsZWFzZV9BWzBdXHJcbiAgICAgID8gdGhpcy5yZWxlYXNlX0FbMF1cclxuICAgICAgOiBcIlwiO1xyXG4gICAgY2FyZE1lbWJlci5maXhpdHlfSm9pbnRBX0RZLnZhbHVlID0gdGhpcy5yZWxlYXNlX0FbMV1cclxuICAgICAgPyB0aGlzLnJlbGVhc2VfQVsxXVxyXG4gICAgICA6IFwiXCI7XHJcbiAgICBjYXJkTWVtYmVyLmZpeGl0eV9Kb2ludEFfRFoudmFsdWUgPSB0aGlzLnJlbGVhc2VfQVsyXVxyXG4gICAgICA/IHRoaXMucmVsZWFzZV9BWzJdXHJcbiAgICAgIDogXCJcIjtcclxuICAgIGNhcmRNZW1iZXIuZml4aXR5X0pvaW50QV9SWC52YWx1ZSA9IHRoaXMucmVsZWFzZV9BWzNdXHJcbiAgICAgID8gdGhpcy5yZWxlYXNlX0FbM11cclxuICAgICAgOiBcIlwiO1xyXG4gICAgY2FyZE1lbWJlci5maXhpdHlfSm9pbnRBX1JZLnZhbHVlID0gdGhpcy5yZWxlYXNlX0FbNF1cclxuICAgICAgPyB0aGlzLnJlbGVhc2VfQVs0XVxyXG4gICAgICA6IFwiXCI7XHJcbiAgICBjYXJkTWVtYmVyLmZpeGl0eV9Kb2ludEFfUloudmFsdWUgPSB0aGlzLnJlbGVhc2VfQVs1XVxyXG4gICAgICA/IHRoaXMucmVsZWFzZV9BWzVdXHJcbiAgICAgIDogXCJcIjtcclxuXHJcbiAgICBjYXJkTWVtYmVyLmZpeGl0eV9Kb2ludEJfRFgudmFsdWUgPSB0aGlzLnJlbGVhc2VfQlswXVxyXG4gICAgICA/IHRoaXMucmVsZWFzZV9CWzBdXHJcbiAgICAgIDogXCJcIjtcclxuICAgIGNhcmRNZW1iZXIuZml4aXR5X0pvaW50Ql9EWS52YWx1ZSA9IHRoaXMucmVsZWFzZV9CWzFdXHJcbiAgICAgID8gdGhpcy5yZWxlYXNlX0JbMV1cclxuICAgICAgOiBcIlwiO1xyXG4gICAgY2FyZE1lbWJlci5maXhpdHlfSm9pbnRCX0RaLnZhbHVlID0gdGhpcy5yZWxlYXNlX0JbMl1cclxuICAgICAgPyB0aGlzLnJlbGVhc2VfQlsyXVxyXG4gICAgICA6IFwiXCI7XHJcbiAgICBjYXJkTWVtYmVyLmZpeGl0eV9Kb2ludEJfUlgudmFsdWUgPSB0aGlzLnJlbGVhc2VfQlszXVxyXG4gICAgICA/IHRoaXMucmVsZWFzZV9CWzNdXHJcbiAgICAgIDogXCJcIjtcclxuICAgIGNhcmRNZW1iZXIuZml4aXR5X0pvaW50Ql9SWS52YWx1ZSA9IHRoaXMucmVsZWFzZV9CWzRdXHJcbiAgICAgID8gdGhpcy5yZWxlYXNlX0JbNF1cclxuICAgICAgOiBcIlwiO1xyXG4gICAgY2FyZE1lbWJlci5maXhpdHlfSm9pbnRCX1JaLnZhbHVlID0gdGhpcy5yZWxlYXNlX0JbNV1cclxuICAgICAgPyB0aGlzLnJlbGVhc2VfQls1XVxyXG4gICAgICA6IFwiXCI7XHJcblxyXG4gICAgY2FyZE1lbWJlci5jaG9yZEFuZ2xlLnZhbHVlID0gQ2FlTnVtYmVyVG9DYXJkKHRoaXMuY2hvcmRBbmdsZSk7XHJcbiAgICBjYXJkTWVtYmVyLmxvY2FsWkF4aXMudmFsdWUgPSB0aGlzLmxvY2FsWkF4aXM7XHJcbiAgICBjYXJkTWVtYmVyLmZsb29kQ29uZGl0aW9uLnZhbHVlID0gdGhpcy5mbG9vZENvbmRpdGlvbjtcclxuICAgIGNhcmRNZW1iZXIua09yTE9wdGlvbi52YWx1ZSA9IHRoaXMua09yTE9wdGlvbjtcclxuICAgIGNhcmRNZW1iZXIuYXZnSm9pbnRUaGlja25lc3MudmFsdWUgPSB0aGlzLmF2Z0pvaW50VGhpY2tuZXNzO1xyXG4gICAgY2FyZE1lbWJlci5rRmFjdG9yX0tZLnZhbHVlID0gdGhpcy5rRmFjdG9yX0tZO1xyXG4gICAgY2FyZE1lbWJlci5rRmFjdG9yX0taLnZhbHVlID0gdGhpcy5rRmFjdG9yX0taO1xyXG4gICAgY2FyZE1lbWJlci5zaGVhck1vZGlmaWVyLnZhbHVlID0gdGhpcy5zaGVhck1vZGlmaWVyO1xyXG4gICAgY2FyZE1lbWJlci5kZW5zaXR5LnZhbHVlID0gdGhpcy5kZW5zaXR5O1xyXG4gICAgY2FyZE1lbWJlci51Y1NlZ21lbnRzLnZhbHVlID0gdGhpcy51Y1NlZ21lbnRzO1xyXG4gICAgY2FyZE1lbWJlci5lZmZlY3RpdmVEaWFtZXRlci52YWx1ZSA9IHRoaXMuZWZmZWN0aXZlRGlhbWV0ZXI7XHJcblxyXG4gICAgbGV0IHJlc3VsdCA9IGNhcmRNZW1iZXIuZ2V0TGluZSgpO1xyXG4gICAgaWYgKHRoaXMuc3RhcnRPZmZzZXQgfHwgdGhpcy5lbmRPZmZzZXQpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgICF0aGlzLmFycmF5RXF1YWwodGhpcy5zdGFydE9mZnNldCwgWzAsIDAsIDBdKSB8fFxyXG4gICAgICAgICF0aGlzLmFycmF5RXF1YWwodGhpcy5lbmRPZmZzZXQsIFswLCAwLCAwXSlcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmVzdWx0ICs9IFwiXFxuXCI7XHJcblxyXG4gICAgICAgIGxldCBjYXJkTWVtYmVyT2Zmc2V0cyA9IG5ldyBDYXJkTWVtYmVyT2Zmc2V0cygpO1xyXG4gICAgICAgIGNhcmRNZW1iZXJPZmZzZXRzLmxpbmVMYWJlbC52YWx1ZSA9IFwiTUVNQkVSIE9GRlNFVFNcIjtcclxuICAgICAgICBjYXJkTWVtYmVyT2Zmc2V0cy5jb21tZW50cy52YWx1ZSA9IFwiXCI7XHJcbiAgICAgICAgY2FyZE1lbWJlck9mZnNldHMuam9pbnRBX1hPZmZzZXQudmFsdWUgPSB0aGlzLnN0YXJ0T2Zmc2V0WzBdO1xyXG4gICAgICAgIGNhcmRNZW1iZXJPZmZzZXRzLmpvaW50QV9ZT2Zmc2V0LnZhbHVlID0gdGhpcy5zdGFydE9mZnNldFsxXTtcclxuICAgICAgICBjYXJkTWVtYmVyT2Zmc2V0cy5qb2ludEFfWk9mZnNldC52YWx1ZSA9IHRoaXMuc3RhcnRPZmZzZXRbMl07XHJcblxyXG4gICAgICAgIGNhcmRNZW1iZXJPZmZzZXRzLmpvaW50Ql9YT2Zmc2V0LnZhbHVlID0gdGhpcy5lbmRPZmZzZXRbMF07XHJcbiAgICAgICAgY2FyZE1lbWJlck9mZnNldHMuam9pbnRCX1lPZmZzZXQudmFsdWUgPSB0aGlzLmVuZE9mZnNldFsxXTtcclxuICAgICAgICBjYXJkTWVtYmVyT2Zmc2V0cy5qb2ludEJfWk9mZnNldC52YWx1ZSA9IHRoaXMuZW5kT2Zmc2V0WzJdO1xyXG5cclxuICAgICAgICByZXN1bHQgKz0gY2FyZE1lbWJlck9mZnNldHMuZ2V0TGluZSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIGFycmF5RXF1YWwoYTE6IGFueVtdLCBhMjogYW55W10pIHtcclxuICAgIGlmIChhMS5sZW5ndGggIT09IGEyLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhMS5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoYTFbaV0gIT09IGEyW2ldKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBsYWJlbFByb2Nlc3Npbmcodmlld2VyOiBWaWV3ZXIpIHtcclxuICAgIGlmICh2aWV3ZXIudmlld0ludGVyZmFjZU1hbmFnZXIpIHtcclxuICAgICAgaWYgKHZpZXdlci52aWV3SW50ZXJmYWNlTWFuYWdlci5tZW1iZXJGaXh0eVZpc2libGUpIHtcclxuICAgICAgICB0aGlzLmlzRHJhd0ZpeGl0eSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHZpZXdlci52aWV3SW50ZXJmYWNlTWFuYWdlci5ncnVwTnVtYmVyVmlzaWJsZSkge1xyXG4gICAgICAgIHRoaXMuaXNEcmF3TnVtYmVyID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodmlld2VyLnZpZXdJbnRlcmZhY2VNYW5hZ2VyLm1lbWJlclNlY3Rpb25TaXplVmlzaWJsZSkge1xyXG4gICAgICAgIHRoaXMuaXNEcmF3U2l6ZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHZpZXdlci52aWV3SW50ZXJmYWNlTWFuYWdlci5tZW1iZXJBeGlzVmlzaWJsZSkge1xyXG4gICAgICAgIHRoaXMuaXNEcmF3QXhpcyA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXZpZXdlci52aWV3SW50ZXJmYWNlTWFuYWdlci5tZW1iZXJJc0xpbmUpIHtcclxuICAgICAgaWYgKHRoaXMuZ3J1cCkge1xyXG4gICAgICAgIGxldCBpcm8gPSB2aWV3ZXIuZmluZEluc3RhbmNlT2JqZWN0KHRoaXMpO1xyXG4gICAgICAgIGlmIChpcm8pIHtcclxuICAgICAgICAgIGlyby5zZWdtZW50LnZpc2liaWxpdHkuc2V0TGluZShmYWxzZSk7XHJcbiAgICAgICAgICBpcm8uc2VnbWVudC52aXNpYmlsaXR5LnNldEJvcmRlcih0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBpcm8gPSB2aWV3ZXIuZmluZEluc3RhbmNlT2JqZWN0KHRoaXMpO1xyXG4gICAgICBpZiAoaXJvKSB7XHJcbiAgICAgICAgaXJvLnNlZ21lbnQudmlzaWJpbGl0eS5zZXRGYWNlKGZhbHNlKTtcclxuICAgICAgICBpcm8uc2VnbWVudC52aXNpYmlsaXR5LnNldEJvcmRlcihmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbmRlcih2aWV3ZXI/OiBWaWV3ZXIpIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKFwibWVtYmVyT2JqZWN0IHJlbmRlclwiKVxyXG4gICAgbGV0IHN0YXJ0ID0gdGhpcy5zdGFydDtcclxuICAgIGxldCBlbmQgPSB0aGlzLmVuZDtcclxuICAgIHRoaXMuY2xlYXJTdmcoKTtcclxuICAgIHRoaXMuc2VnbWVudC5jbGVhckdlb21ldHJpZXMoKTtcclxuXHJcbiAgICBpZiAoIXZpZXdlcikge1xyXG4gICAgICB2aWV3ZXIgPSBQcm9jZXNzLmFjdGl2ZVByb2Nlc3MuYWN0aXZlVmlld2VyIGFzIGFueTtcclxuICAgIH1cclxuXHJcbiAgICAvLyDnlLvnur9cclxuICAgIGlmIChzdGFydCAmJiBlbmQpIHtcclxuICAgICAgdGhpcy5uYW1lID0gc3RhcnQubmFtZSArIFwiLVwiICsgZW5kLm5hbWU7XHJcblxyXG4gICAgICBsZXQgcmVzdWx0U3RhcnRQb3MgPSB0aGlzLmdldFN0YXJ0UG9zaXRpb24oKTtcclxuICAgICAgbGV0IHJlc3VsdEVuZFBvcyA9IHRoaXMuZ2V0RW5kUG9zaXRpb24oKTtcclxuXHJcbiAgICAgIGlmICghcmVzdWx0U3RhcnRQb3MgfHwgIXJlc3VsdEVuZFBvcykge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKFwi5p2G5Lu2OlwiICsgdGhpcy5uYW1lICsgXCLlvJXnlKjkuobkuI3lrZjlnKjnmoTnqbrpl7Tngrks5pWw5o2u5Lii5byDXCIpO1xyXG4gICAgICAgIFByb2Nlc3MuYWN0aXZlUHJvY2Vzcy5yZW1vdmVSZW5kZXJPYmplY3QodGhpcyk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnN0YXJ0UG9pbnQgPSByZXN1bHRTdGFydFBvcztcclxuICAgICAgdGhpcy5lbmRQb2ludCA9IHJlc3VsdEVuZFBvcztcclxuICAgICAgc3VwZXIucmVuZGVyKCk7XHJcblxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5ncnVwICYmXHJcbiAgICAgICAgdGhpcy5ncnVwLmdydXBTZWdtZW50cyAmJlxyXG4gICAgICAgIHRoaXMuZ3J1cC5ncnVwU2VnbWVudHMubGVuZ3RoID09PSAxXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuZ3J1cC5ncnVwU2VnbWVudHNbMF0uc2VnbWVudExlbmd0aCA9IDA7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5kcmF3Qm9keShyZXN1bHRTdGFydFBvcywgcmVzdWx0RW5kUG9zLCB2aWV3ZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubGFiZWxQcm9jZXNzaW5nKHZpZXdlcik7XHJcbiAgICB0aGlzLmRyYXdTdmcoKTtcclxuICB9XHJcblxyXG4gIG1lbWJlck9mZnNldFN3aXRjaCgpIHtcclxuICAgIC8vIOWFqOWxgOi9rOWxgOmDqC5cclxuICAgIGxldCBheGlzU3lzdGVtID0gdGhpcy5nZXRMb2NhbEF4aXMoKTtcclxuICAgIGxldCB3Y3MgPSBuZXcgTG9uZ2FuLldjcyhcclxuICAgICAgbmV3IEZsb2F0MzJBcnJheShbMCwgMCwgMF0pLFxyXG4gICAgICBheGlzU3lzdGVtLnhBeGlzLFxyXG4gICAgICBheGlzU3lzdGVtLnlBeGlzXHJcbiAgICApO1xyXG4gICAgaWYgKHRoaXMub2Zmc2V0T3B0aW9uID09PSBcIjFcIikge1xyXG4gICAgICBpZiAodGhpcy5zdGFydE9mZnNldCkge1xyXG4gICAgICAgIGxldCBuZXdTdGFydE9mZnNldCA9IHdjcy50b0xvY2FsVmVjdG9yKFxyXG4gICAgICAgICAgbmV3IEZsb2F0MzJBcnJheSh0aGlzLnN0YXJ0T2Zmc2V0KVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5zdGFydE9mZnNldFswXSA9IG5ld1N0YXJ0T2Zmc2V0WzBdO1xyXG4gICAgICAgIHRoaXMuc3RhcnRPZmZzZXRbMV0gPSBuZXdTdGFydE9mZnNldFsxXTtcclxuICAgICAgICB0aGlzLnN0YXJ0T2Zmc2V0WzJdID0gbmV3U3RhcnRPZmZzZXRbMl07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLmVuZE9mZnNldCkge1xyXG4gICAgICAgIGxldCBuZXdFbmRPZmZzZXQgPSB3Y3MudG9Mb2NhbFZlY3RvcihuZXcgRmxvYXQzMkFycmF5KHRoaXMuZW5kT2Zmc2V0KSk7XHJcbiAgICAgICAgdGhpcy5lbmRPZmZzZXRbMF0gPSBuZXdFbmRPZmZzZXRbMF07XHJcbiAgICAgICAgdGhpcy5lbmRPZmZzZXRbMV0gPSBuZXdFbmRPZmZzZXRbMV07XHJcbiAgICAgICAgdGhpcy5lbmRPZmZzZXRbMl0gPSBuZXdFbmRPZmZzZXRbMl07XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5vZmZzZXRPcHRpb24gPT09IFwiMlwiKSB7XHJcbiAgICAgIC8vIOWxgOmDqOi9rOWFqOWxgFxyXG4gICAgICBpZiAodGhpcy5zdGFydE9mZnNldCkge1xyXG4gICAgICAgIGxldCBuZXdTdGFydE9mZnNldCA9IHdjcy50b01vZGVsVmVjdG9yKFxyXG4gICAgICAgICAgbmV3IEZsb2F0MzJBcnJheSh0aGlzLnN0YXJ0T2Zmc2V0KVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5zdGFydE9mZnNldFswXSA9IG5ld1N0YXJ0T2Zmc2V0WzBdO1xyXG4gICAgICAgIHRoaXMuc3RhcnRPZmZzZXRbMV0gPSBuZXdTdGFydE9mZnNldFsxXTtcclxuICAgICAgICB0aGlzLnN0YXJ0T2Zmc2V0WzJdID0gbmV3U3RhcnRPZmZzZXRbMl07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLmVuZE9mZnNldCkge1xyXG4gICAgICAgIGxldCBuZXdFbmRPZmZzZXQgPSB3Y3MudG9Nb2RlbFZlY3RvcihuZXcgRmxvYXQzMkFycmF5KHRoaXMuZW5kT2Zmc2V0KSk7XHJcbiAgICAgICAgdGhpcy5lbmRPZmZzZXRbMF0gPSBuZXdFbmRPZmZzZXRbMF07XHJcbiAgICAgICAgdGhpcy5lbmRPZmZzZXRbMV0gPSBuZXdFbmRPZmZzZXRbMV07XHJcbiAgICAgICAgdGhpcy5lbmRPZmZzZXRbMl0gPSBuZXdFbmRPZmZzZXRbMl07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFJlbGVhdGVkV0dUTUVNT2JqZWN0KHZpZXdlcjogVmlld2VyKTogV0dUTUVNT2JqZWN0W10ge1xyXG4gICAgbGV0IHJlbGVhdGVkV0dUTUVNT2JqZWN0cyA9IG5ldyBBcnJheTxXR1RNRU1PYmplY3Q+KCk7XHJcblxyXG4gICAgbGV0IFdHVE1FTU9iamVjdHMgPSB2aWV3ZXIucHJvY2Vzcy5maW5kUmVuZGVyT2JqZWN0c0J5VHlwZShcIldHVE1FTU9iamVjdFwiKTtcclxuICAgIGlmIChXR1RNRU1PYmplY3RzLmxlbmd0aCA+IDApIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBXR1RNRU1PYmplY3RzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbGV0IGNoaWxkID0gV0dUTUVNT2JqZWN0c1tpXSBhcyBXR1RNRU1PYmplY3Q7XHJcbiAgICAgICAgaWYgKGNoaWxkLm1lbWJlciAmJiBjaGlsZC5tZW1iZXIuaWQgPT09IHRoaXMuaWQpIHtcclxuICAgICAgICAgIHJlbGVhdGVkV0dUTUVNT2JqZWN0cy5wdXNoKGNoaWxkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVsZWF0ZWRXR1RNRU1PYmplY3RzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZFJlZmVyZW5jZShwZXJzaXN0ZW5jZU1hbmFnZXI6IFBlcnNpc3RlbmNlTWFuYWdlcikge1xyXG4gICAgcGVyc2lzdGVuY2VNYW5hZ2VyLnJlZmVyZW5jZUxpc3QuYWRkKHRoaXMuaWQsIHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgZHJhd0JvZHkocmVzdWx0U3RhcnRQb3M6IG51bWJlcltdLCByZXN1bHRFbmRQb3M6IG51bWJlcltdLCB2aWV3ZXI6IFZpZXdlcikge1xyXG4gICAgbGV0IHhBeGlzID0gTG9uZ2FuLlBvaW50LnN1YnRyYWN0KFxyXG4gICAgICBuZXcgRmxvYXQzMkFycmF5KHJlc3VsdEVuZFBvcyksXHJcbiAgICAgIG5ldyBGbG9hdDMyQXJyYXkocmVzdWx0U3RhcnRQb3MpXHJcbiAgICApO1xyXG4gICAgaWYgKExvbmdhbi5WZWN0b3IuaXNaZXJvKHhBeGlzKSkge1xyXG4gICAgICBjb25zb2xlLmxvZyhcIuadhuS7tuWni+erryzmnKvnq6/ngrnnm7jlkIxcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgYXhpcyA9IHRoaXMuZ2V0TG9jYWxBeGlzKCk7XHJcbiAgICBsZXQgbm9ybWFsID0gTG9uZ2FuLlZlY3Rvci5ub3JtYWxpemVWZWN0b3IoeEF4aXMpO1xyXG4gICAgbGV0IHpBaXhzID0gYXhpcy56QXhpcztcclxuICAgIGxldCB5QXhpcyA9IGF4aXMueUF4aXM7XHJcblxyXG4gICAgbGV0IGdydXAgPSB0aGlzLmdydXA7XHJcbiAgICBpZiAoXHJcbiAgICAgIGdydXAgJiZcclxuICAgICAgdHlwZW9mIHRoaXMuZ3J1cCAhPT0gXCJzdHJpbmdcIiAmJlxyXG4gICAgICBncnVwLmJ1c2luZXNzU3RhdGUgIT09IEJ1c2luZXNzU3RhdGUuRGVsZXRpbmcgJiZcclxuICAgICAgZ3J1cC5idXNpbmVzc1N0YXRlICE9PSBCdXNpbmVzc1N0YXRlLkRlYWRcclxuICAgICkge1xyXG4gICAgICBpZiAoZ3J1cC5ncnVwU2VnbWVudHMpIHtcclxuICAgICAgICBsZXQgb3JpZ2luID0gbmV3IEZsb2F0MzJBcnJheShyZXN1bHRTdGFydFBvcyk7XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3J1cC5ncnVwU2VnbWVudHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgIGxldCBncnVwU2VnbWVudCA9IGdydXAuZ3J1cFNlZ21lbnRzW2ldO1xyXG4gICAgICAgICAgbGV0IHNlZ21lbnRMZW5ndGggPSBOdW1iZXIoZ3J1cFNlZ21lbnQuc2VnbWVudExlbmd0aCk7XHJcbiAgICAgICAgICAvLyDlpoLmnpzlj6rmnInkuIDmrrXvvIzpu5jorqTmiKrpnaLplb/luqbkuLrljaDmnYbku7bplb/luqblhajplb8uXHJcbiAgICAgICAgICBpZiAoIXNlZ21lbnRMZW5ndGgpIHtcclxuICAgICAgICAgICAgc2VnbWVudExlbmd0aCA9IHRoaXMuZ2V0VW5kZWZpbmVTZWdtZW50TGVuZ3RoKCk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKGdydXAuZ3J1cFNlZ21lbnRzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgICBzZWdtZW50TGVuZ3RoID0gdGhpcy5nZXRNZW1iZXJMZW5ndGgoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHNlZ21lbnRMZW5ndGggKj0gdGhpcy5zZWdtZW50TGVuZ3RoQ29lZmY7XHJcblxyXG4gICAgICAgICAgLy8g5q+P5q615oiq6Z2i55qEc2hlbGxcclxuICAgICAgICAgIGxldCBzaGVsbF9rZXkgPSAtMTtcclxuICAgICAgICAgIC8vIOavj+auteaIqumdoueahOmhtueCueWSjOe0ouW8lS5cclxuICAgICAgICAgIGxldCBwb2x5Z29uID0gbnVsbDtcclxuXHJcbiAgICAgICAgICAvLyDlpoLmnpzmmK/lj5jmiKrpnaJcclxuICAgICAgICAgIGlmIChncnVwU2VnbWVudC50YXBlck9wdGlvbiA9PT0gXCJCXCIpIHtcclxuICAgICAgICAgICAgLy8g5om+5Yiw5ZCM5LiA5q6155qE4oCcReKAneWPmOaIqumdou+8jOeUqOS4pOerr+WPmOaIqumdoue7mOWItuS4gOS4quS9k++8jOiAjOmdnuaLieS8uFxyXG4gICAgICAgICAgICBsZXQgcG9seWdvbjEgPSBncnVwU2VnbWVudC5nZXRQb2x5Z29uKG9yaWdpbiwgeUF4aXMsIHpBaXhzKTtcclxuICAgICAgICAgICAgbGV0IHNsID0gc2VnbWVudExlbmd0aDtcclxuXHJcbiAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgZ3J1cC5ncnVwU2VnbWVudHMubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgICBsZXQgdGFycGVyR1MgPSBncnVwLmdydXBTZWdtZW50c1tqXTtcclxuICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICB0YXJwZXJHUy50YXBlck9wdGlvbiA9PT0gXCJFXCIgJiZcclxuICAgICAgICAgICAgICAgIHRhcnBlckdTLnNlY3Rpb24uY3Jvc3NTZWN0aW9uVHlwZSA9PT1cclxuICAgICAgICAgICAgICAgICAgZ3J1cFNlZ21lbnQuc2VjdGlvbi5jcm9zc1NlY3Rpb25UeXBlXHJcbiAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAvLyDlj5jmiKrpnaLnu4jnq6/otbflp4vngrlcclxuICAgICAgICAgICAgICAgIGlmICghc2wpIHtcclxuICAgICAgICAgICAgICAgICAgc2wgPSB0aGlzLmdldFVuZGVmaW5lU2VnbWVudExlbmd0aCgpO1xyXG4gICAgICAgICAgICAgICAgICBzbCAqPSB0aGlzLnNlZ21lbnRMZW5ndGhDb2VmZjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgZW5kT3JpZ2luID0gTG9uZ2FuLlBvaW50LmFkZChcclxuICAgICAgICAgICAgICAgICAgb3JpZ2luLFxyXG4gICAgICAgICAgICAgICAgICBMb25nYW4uVmVjdG9yLm11bHRpcGx5KG5vcm1hbCwgc2wpXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgbGV0IHBvbHlnb24yID0gdGFycGVyR1MuZ2V0UG9seWdvbihlbmRPcmlnaW4sIHlBeGlzLCB6QWl4cyk7XHJcblxyXG4gICAgICAgICAgICAgICAgbGV0IHNoZWxsRGF0YSA9IHRoaXMuZ2V0VGFycGVyQm94U2hlbGxEYXRhKHBvbHlnb24xLCBwb2x5Z29uMik7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9pbnRzID0gc2hlbGxEYXRhLnBvaW50cztcclxuICAgICAgICAgICAgICAgIGxldCBpbmRpY2VzID0gc2hlbGxEYXRhLmluZGljZXM7XHJcblxyXG4gICAgICAgICAgICAgICAgc2hlbGxfa2V5ID0gdGhpcy5zZWdtZW50Lmluc2VydFNoZWxsKHBvaW50cywgaW5kaWNlcykua2V5O1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIOWPmOaIqumdouminOiJsueOsOWcqOWPquaUr+aMgeaVtOS9k+iuvue9ruminOiJsi5cclxuICAgICAgICAgICAgICAgIGlmIChncnVwU2VnbWVudC5zdGFydENvbG9yKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2VnbWVudC5jb2xvci5mYWNlQ29sb3IgPSBncnVwU2VnbWVudC5zdGFydENvbG9yO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zZWdtZW50LmNvbG9yLmZhY2VDb2xvciA9IE9iamVjdENvbG9yLm1lbWJlckZhY2VDb2xvcjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIGlmIChncnVwU2VnbWVudC50YXBlck9wdGlvbiA9PT0gXCJFXCIpIHtcclxuICAgICAgICAgICAgLy8gXCJFXCLlj5jmiKrpnaLlj6/ku6Xot7Pov4cuXHJcbiAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8g6Z2e5Y+Y5oiq6Z2iXHJcbiAgICAgICAgICAgIC8vIOiOt+WPluaIqumdoueahOS4ieinkumdoueJh+aVsOaNri5cclxuICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgIGdydXBTZWdtZW50LnNlY3Rpb24/LmNyb3NzU2VjdGlvblR5cGU/LnRvTG93ZXJDYXNlKCkgPT09IFwiY29uXCJcclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgcG9seWdvbiA9IChcclxuICAgICAgICAgICAgICAgIGdydXBTZWdtZW50LnNlY3Rpb24gYXMgQ29uU2VjdGlvbk9iamVjdFxyXG4gICAgICAgICAgICAgICkuZ2V0U2VjdGlvblBvbHlnb25Db24oXHJcbiAgICAgICAgICAgICAgICBvcmlnaW4sXHJcbiAgICAgICAgICAgICAgICB5QXhpcyxcclxuICAgICAgICAgICAgICAgIHpBaXhzLFxyXG4gICAgICAgICAgICAgICAgc2VnbWVudExlbmd0aCxcclxuICAgICAgICAgICAgICAgIGdydXBTZWdtZW50LFxyXG4gICAgICAgICAgICAgICAgdGhpcyxcclxuICAgICAgICAgICAgICAgIHZpZXdlclxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgcG9seWdvbiA9IGdydXBTZWdtZW50LmdldFBvbHlnb24oXHJcbiAgICAgICAgICAgICAgICBvcmlnaW4sXHJcbiAgICAgICAgICAgICAgICB5QXhpcyxcclxuICAgICAgICAgICAgICAgIHpBaXhzLFxyXG4gICAgICAgICAgICAgICAgc2VnbWVudExlbmd0aFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGxldCBvZmZzZXQgPSBMb25nYW4uVmVjdG9yLm11bHRpcGx5KG5vcm1hbCwgc2VnbWVudExlbmd0aCk7XHJcblxyXG4gICAgICAgICAgICAvLyDmm7TmlrDkuIvkuIDmrrXmnYbku7bnmoTlupXpg6jmiKrpnaLotbfngrlcclxuICAgICAgICAgICAgb3JpZ2luID0gTG9uZ2FuLlBvaW50LmFkZChvcmlnaW4sIG9mZnNldCk7XHJcblxyXG4gICAgICAgICAgICBpZiAoIXBvbHlnb24gfHwgcG9seWdvbi5wb2ludHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgZ3J1cFNlZ21lbnQuc2VjdGlvbiAmJlxyXG4gICAgICAgICAgICAgIGdydXBTZWdtZW50LnNlY3Rpb24uY3Jvc3NTZWN0aW9uVHlwZSA9PT0gXCJDT05cIlxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICBzaGVsbF9rZXkgPSB0aGlzLnNlZ21lbnQuaW5zZXJ0VHJpYW5ndWxhclNoZWxsKFxyXG4gICAgICAgICAgICAgICAgcG9seWdvbi5wb2ludHMsXHJcbiAgICAgICAgICAgICAgICBwb2x5Z29uLmluZGljZXNcclxuICAgICAgICAgICAgICApLmtleTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBpZiAoIXBvbHlnb24ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICBwb2x5Z29uLmxlbmd0aCA9IHRoaXMuZ2V0VW5kZWZpbmVTZWdtZW50TGVuZ3RoKCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGlmIChwb2x5Z29uKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocG9seWdvbi5wb2ludHMgJiYgcG9seWdvbi5pbmRpY2VzKSB7XHJcbiAgICAgICAgICAgICAgICAgIGxldCBleHRydWRlVmVjdG9yID0gTG9uZ2FuLlZlY3Rvci5tdWx0aXBseShcclxuICAgICAgICAgICAgICAgICAgICBub3JtYWwsXHJcbiAgICAgICAgICAgICAgICAgICAgcG9seWdvbi5sZW5ndGggKiB0aGlzLnNlZ21lbnRMZW5ndGhDb2VmZlxyXG4gICAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgbGV0IHRyYWlhbmdsZXMgPSBMb25nYW4uTG9uZ2FuQ29yZS5KU19GZWF0dXJlX0V4dHJ1ZGUoXHJcbiAgICAgICAgICAgICAgICAgICAgbmV3IEZsb2F0NjRBcnJheShwb2x5Z29uLnBvaW50cyksXHJcbiAgICAgICAgICAgICAgICAgICAgbmV3IEludDMyQXJyYXkocG9seWdvbi5pbmRpY2VzKSxcclxuICAgICAgICAgICAgICAgICAgICBuZXcgRmxvYXQ2NEFycmF5KGV4dHJ1ZGVWZWN0b3IpLFxyXG4gICAgICAgICAgICAgICAgICAgIFwiXCJcclxuICAgICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgIGxldCBib2R5U2VnID0gdGhpcy5zZWdtZW50O1xyXG4gICAgICAgICAgICAgICAgICBMb25nYW4uTG9uZ2FuQ29yZS5KU19PcGVuX1NlZ21lbnRfQnlfS2V5KGJvZHlTZWcua2V5KTtcclxuICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHNoZWxsX2tleSA9IExvbmdhbi5Mb25nYW5Db3JlLkpTX0luc2VydF9Ucmlhbmd1bGFyX1NoZWxsKFxyXG4gICAgICAgICAgICAgICAgICAgICAgdHJhaWFuZ2xlcy5wb3NpdGlvbnMsXHJcbiAgICAgICAgICAgICAgICAgICAgICB0cmFpYW5nbGVzLmluZGV4ZXNcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIExvbmdhbi5Mb25nYW5Db3JlLkpTX0Nsb3NlX1NlZ21lbnQoKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2VnbWVudC5jb2xvci5zZXRMaW5lKFsyNTUsIDAsIDBdKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCLorqHnrpfmiKrpnaLnmoTpobbngrnntKLlvJXlvILluLhcIik7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHNoZWxsX2tleSAhPT0gLTEgJiYgcG9seWdvbikge1xyXG4gICAgICAgICAgICBMb25nYW4uTG9uZ2FuQ29yZS5KU19PcGVuX1NlZ21lbnRfQnlfS2V5KHRoaXMuc2VnbWVudC5rZXkpO1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgLy8g6K6+572u5q+P5q615oiq6Z2i55qE6aKc6ImyLlxyXG4gICAgICAgICAgICAgIGlmIChncnVwU2VnbWVudC5zdGFydENvbG9yICYmIGdydXBTZWdtZW50LmVuZENvbG9yKSB7XHJcbiAgICAgICAgICAgICAgICBMb25nYW4uTG9uZ2FuQ29yZS5KU19VblNldF9HZW9tZXRyeV9Db2xvcihzaGVsbF9rZXksIFwiZmFjZXNcIik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFNoZWxsQ2xvdWRDb2xvcihcclxuICAgICAgICAgICAgICAgICAgZ3J1cFNlZ21lbnQuc2VjdGlvbixcclxuICAgICAgICAgICAgICAgICAgc2hlbGxfa2V5LFxyXG4gICAgICAgICAgICAgICAgICBwb2x5Z29uLnBvaW50cyxcclxuICAgICAgICAgICAgICAgICAgZ3J1cFNlZ21lbnQuc3RhcnRDb2xvcixcclxuICAgICAgICAgICAgICAgICAgZ3J1cFNlZ21lbnQuZW5kQ29sb3JcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIExvbmdhbi5Mb25nYW5Db3JlLkpTX1VuU2V0X0dlb21ldHJ5X0NvbG9yKHNoZWxsX2tleSwgXCJmYWNlc1wiKTtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZhY2VDb2xvcikge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNlZ21lbnQuY29sb3Iuc2V0RmFjZSh0aGlzLmZhY2VDb2xvcik7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNlZ21lbnQuY29sb3Iuc2V0RmFjZShPYmplY3RDb2xvci5tZW1iZXJGYWNlQ29sb3IpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxpbmVDb2xvcikge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNlZ21lbnQuY29sb3Iuc2V0TGluZSh0aGlzLmxpbmVDb2xvcik7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNlZ21lbnQuY29sb3Iuc2V0TGluZShPYmplY3RDb2xvci5tZW1iZXJMaW5lQ29sb3IpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgLy8g5aaC5p6c5p2G5Lu25pyJ6K6+572u6aKc6Imy77yM5p2G5Lu255qE6aKc6Imy5LyY5YWILlxyXG4gICAgICAgICAgICAgIGlmICh0aGlzLnN0YXJ0Q29sb3IgJiYgdGhpcy5lbmRDb2xvcikge1xyXG4gICAgICAgICAgICAgICAgTG9uZ2FuLkxvbmdhbkNvcmUuSlNfVW5TZXRfR2VvbWV0cnlfQ29sb3Ioc2hlbGxfa2V5LCBcImZhY2VzXCIpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTaGVsbENsb3VkQ29sb3IoXHJcbiAgICAgICAgICAgICAgICAgIGdydXBTZWdtZW50LnNlY3Rpb24sXHJcbiAgICAgICAgICAgICAgICAgIHNoZWxsX2tleSxcclxuICAgICAgICAgICAgICAgICAgcG9seWdvbi5wb2ludHMsXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRDb2xvcixcclxuICAgICAgICAgICAgICAgICAgdGhpcy5lbmRDb2xvclxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgTG9uZ2FuLkxvbmdhbkNvcmUuSlNfQ2xvc2VfU2VnbWVudCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6YCa6L+H5Lik5LiqQk9Y5oiq6Z2i55qE54K55Z2Q5qCH5pWw5o2u77yM6K6h566X5Ye65pa5566x5qKB5Y+Y5oiq6Z2i55qEc2hlbGxEYXRhLlxyXG4gICAqIEBwYXJhbSBwb2x5Z29uMVxyXG4gICAqIEBwYXJhbSBwb2x5Z29uMlxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgZ2V0VGFycGVyQm94U2hlbGxEYXRhKHBvbHlnb24xLCBwb2x5Z29uMikge1xyXG4gICAgLy9cclxuICAgIGxldCBwcDEgPSBwb2x5Z29uMS5wb2ludHMgYXMgbnVtYmVyW107XHJcbiAgICBsZXQgcDAgPSBwcDEuc2xpY2UoMCwgMyk7XHJcbiAgICBsZXQgcDEgPSBwcDEuc2xpY2UoMywgNik7XHJcbiAgICBsZXQgcDIgPSBwcDEuc2xpY2UoNiwgOSk7XHJcbiAgICBsZXQgcDMgPSBwcDEuc2xpY2UoOSwgMTIpO1xyXG4gICAgbGV0IHA0ID0gcHAxLnNsaWNlKDEyLCAxNSk7XHJcbiAgICBsZXQgcDUgPSBwcDEuc2xpY2UoMTUsIDE4KTtcclxuICAgIGxldCBwNiA9IHBwMS5zbGljZSgxOCwgMjEpO1xyXG4gICAgbGV0IHA3ID0gcHAxLnNsaWNlKDIxLCAyNCk7XHJcblxyXG4gICAgbGV0IHBwMiA9IHBvbHlnb24yLnBvaW50cyBhcyBudW1iZXJbXTtcclxuICAgIGxldCBwOCA9IHBwMi5zbGljZSgwLCAzKTtcclxuICAgIGxldCBwOSA9IHBwMi5zbGljZSgzLCA2KTtcclxuICAgIGxldCBwMTAgPSBwcDIuc2xpY2UoNiwgOSk7XHJcbiAgICBsZXQgcDExID0gcHAyLnNsaWNlKDksIDEyKTtcclxuICAgIGxldCBwMTIgPSBwcDIuc2xpY2UoMTIsIDE1KTtcclxuICAgIGxldCBwMTMgPSBwcDIuc2xpY2UoMTUsIDE4KTtcclxuICAgIGxldCBwMTQgPSBwcDIuc2xpY2UoMTgsIDIxKTtcclxuICAgIGxldCBwMTUgPSBwcDIuc2xpY2UoMjEsIDI0KTtcclxuXHJcbiAgICBsZXQgcG9pbnRzID0gQXJyYXk8bnVtYmVyPigpO1xyXG4gICAgbGV0IGluZGljZXMgPSBBcnJheTxudW1iZXI+KCk7XHJcblxyXG4gICAgbGV0IGN1cnJlbnRQb2ludENvdW50ID0gMDtcclxuXHJcbiAgICAvLyBkcmF3IHRhcGVyIGJveCBib2R5XHJcbiAgICBwb2ludHMgPSBwb2ludHMuY29uY2F0KHBvbHlnb24xLnBvaW50cyk7XHJcbiAgICBpbmRpY2VzID0gWzQsIDMsIDIsIDEsIDAsIC00LCA0LCA1LCA2LCA3XTtcclxuICAgIGN1cnJlbnRQb2ludENvdW50ICs9IHBvbHlnb24xLnBvaW50cy5sZW5ndGggLyAzO1xyXG5cclxuICAgIHBvaW50cyA9IHBvaW50cy5jb25jYXQocG9seWdvbjIucG9pbnRzKTtcclxuICAgIGluZGljZXMgPSBpbmRpY2VzLmNvbmNhdChbXHJcbiAgICAgIDQsXHJcbiAgICAgIGN1cnJlbnRQb2ludENvdW50ICsgMCxcclxuICAgICAgY3VycmVudFBvaW50Q291bnQgKyAxLFxyXG4gICAgICBjdXJyZW50UG9pbnRDb3VudCArIDIsXHJcbiAgICAgIGN1cnJlbnRQb2ludENvdW50ICsgMyxcclxuICAgICAgLTQsXHJcbiAgICAgIGN1cnJlbnRQb2ludENvdW50ICsgNyxcclxuICAgICAgY3VycmVudFBvaW50Q291bnQgKyA2LFxyXG4gICAgICBjdXJyZW50UG9pbnRDb3VudCArIDUsXHJcbiAgICAgIGN1cnJlbnRQb2ludENvdW50ICsgNCxcclxuICAgIF0pO1xyXG4gICAgY3VycmVudFBvaW50Q291bnQgKz0gcG9seWdvbjIucG9pbnRzLmxlbmd0aCAvIDM7XHJcblxyXG4gICAgbGV0IGRhdGEgPSB0aGlzLmdldFRhcGVyQm94U2lkZVNoZWxsRGF0YShcclxuICAgICAgcG9pbnRzLFxyXG4gICAgICBpbmRpY2VzLFxyXG4gICAgICBbcDAsIHA4LCBwMTEsIHAzXSxcclxuICAgICAgY3VycmVudFBvaW50Q291bnRcclxuICAgICk7XHJcbiAgICBwb2ludHMgPSBkYXRhLnBvaW50cztcclxuICAgIGluZGljZXMgPSBkYXRhLmluZGljZXM7XHJcbiAgICBjdXJyZW50UG9pbnRDb3VudCA9IGRhdGEuY3VycmVudFBvaW50Q291bnQ7XHJcblxyXG4gICAgZGF0YSA9IHRoaXMuZ2V0VGFwZXJCb3hTaWRlU2hlbGxEYXRhKFxyXG4gICAgICBwb2ludHMsXHJcbiAgICAgIGluZGljZXMsXHJcbiAgICAgIFtwMCwgcDEsIHA5LCBwOF0sXHJcbiAgICAgIGN1cnJlbnRQb2ludENvdW50XHJcbiAgICApO1xyXG4gICAgcG9pbnRzID0gZGF0YS5wb2ludHM7XHJcbiAgICBpbmRpY2VzID0gZGF0YS5pbmRpY2VzO1xyXG4gICAgY3VycmVudFBvaW50Q291bnQgPSBkYXRhLmN1cnJlbnRQb2ludENvdW50O1xyXG5cclxuICAgIGRhdGEgPSB0aGlzLmdldFRhcGVyQm94U2lkZVNoZWxsRGF0YShcclxuICAgICAgcG9pbnRzLFxyXG4gICAgICBpbmRpY2VzLFxyXG4gICAgICBbcDMsIHAxMSwgcDEwLCBwMl0sXHJcbiAgICAgIGN1cnJlbnRQb2ludENvdW50XHJcbiAgICApO1xyXG4gICAgcG9pbnRzID0gZGF0YS5wb2ludHM7XHJcbiAgICBpbmRpY2VzID0gZGF0YS5pbmRpY2VzO1xyXG4gICAgY3VycmVudFBvaW50Q291bnQgPSBkYXRhLmN1cnJlbnRQb2ludENvdW50O1xyXG5cclxuICAgIGRhdGEgPSB0aGlzLmdldFRhcGVyQm94U2lkZVNoZWxsRGF0YShcclxuICAgICAgcG9pbnRzLFxyXG4gICAgICBpbmRpY2VzLFxyXG4gICAgICBbcDEsIHAyLCBwMTAsIHA5XSxcclxuICAgICAgY3VycmVudFBvaW50Q291bnRcclxuICAgICk7XHJcbiAgICBwb2ludHMgPSBkYXRhLnBvaW50cztcclxuICAgIGluZGljZXMgPSBkYXRhLmluZGljZXM7XHJcbiAgICBjdXJyZW50UG9pbnRDb3VudCA9IGRhdGEuY3VycmVudFBvaW50Q291bnQ7XHJcblxyXG4gICAgZGF0YSA9IHRoaXMuZ2V0VGFwZXJCb3hTaWRlU2hlbGxEYXRhKFxyXG4gICAgICBwb2ludHMsXHJcbiAgICAgIGluZGljZXMsXHJcbiAgICAgIFtwNCwgcDcsIHAxNSwgcDEyXSxcclxuICAgICAgY3VycmVudFBvaW50Q291bnRcclxuICAgICk7XHJcbiAgICBwb2ludHMgPSBkYXRhLnBvaW50cztcclxuICAgIGluZGljZXMgPSBkYXRhLmluZGljZXM7XHJcbiAgICBjdXJyZW50UG9pbnRDb3VudCA9IGRhdGEuY3VycmVudFBvaW50Q291bnQ7XHJcblxyXG4gICAgZGF0YSA9IHRoaXMuZ2V0VGFwZXJCb3hTaWRlU2hlbGxEYXRhKFxyXG4gICAgICBwb2ludHMsXHJcbiAgICAgIGluZGljZXMsXHJcbiAgICAgIFtwNCwgcDEyLCBwMTMsIHA1XSxcclxuICAgICAgY3VycmVudFBvaW50Q291bnRcclxuICAgICk7XHJcbiAgICBwb2ludHMgPSBkYXRhLnBvaW50cztcclxuICAgIGluZGljZXMgPSBkYXRhLmluZGljZXM7XHJcbiAgICBjdXJyZW50UG9pbnRDb3VudCA9IGRhdGEuY3VycmVudFBvaW50Q291bnQ7XHJcblxyXG4gICAgZGF0YSA9IHRoaXMuZ2V0VGFwZXJCb3hTaWRlU2hlbGxEYXRhKFxyXG4gICAgICBwb2ludHMsXHJcbiAgICAgIGluZGljZXMsXHJcbiAgICAgIFtwNSwgcDEzLCBwMTQsIHA2XSxcclxuICAgICAgY3VycmVudFBvaW50Q291bnRcclxuICAgICk7XHJcbiAgICBwb2ludHMgPSBkYXRhLnBvaW50cztcclxuICAgIGluZGljZXMgPSBkYXRhLmluZGljZXM7XHJcbiAgICBjdXJyZW50UG9pbnRDb3VudCA9IGRhdGEuY3VycmVudFBvaW50Q291bnQ7XHJcblxyXG4gICAgZGF0YSA9IHRoaXMuZ2V0VGFwZXJCb3hTaWRlU2hlbGxEYXRhKFxyXG4gICAgICBwb2ludHMsXHJcbiAgICAgIGluZGljZXMsXHJcbiAgICAgIFtwNiwgcDE0LCBwMTUsIHA3XSxcclxuICAgICAgY3VycmVudFBvaW50Q291bnRcclxuICAgICk7XHJcbiAgICBwb2ludHMgPSBkYXRhLnBvaW50cztcclxuICAgIGluZGljZXMgPSBkYXRhLmluZGljZXM7XHJcbiAgICBjdXJyZW50UG9pbnRDb3VudCA9IGRhdGEuY3VycmVudFBvaW50Q291bnQ7XHJcblxyXG4gICAgcmV0dXJuIHsgcG9pbnRzLCBpbmRpY2VzIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDorqHnrpflh7rmt7vliqDmlrnnrrHlj5jmiKrpnaLkuIDkuKrlo4HnmoTpobbngrnlkozntKLlvJUuXHJcbiAgICogQHBhcmFtIHBvaW50cyDmlrnnrrHlj5jmiKrpnaLnmoTpobbngrlcclxuICAgKiBAcGFyYW0gaW5kaWNlcyDmlrnnrrHlj5jmiKrpnaLnmoTntKLlvJVcclxuICAgKiBAcGFyYW0gTmV3UG9pbnRzIOa3u+WKoOeahOWjgeeahDTkuKrngrlcclxuICAgKiBAcGFyYW0gY3VycmVudFBvaW50Q291bnQg5b2T5YmN54K555qE57Si5byVXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBnZXRUYXBlckJveFNpZGVTaGVsbERhdGEoXHJcbiAgICBwb2ludHM6IG51bWJlcltdLFxyXG4gICAgaW5kaWNlczogbnVtYmVyW10sXHJcbiAgICBOZXdQb2ludHM6IG51bWJlcltdW10sXHJcbiAgICBjdXJyZW50UG9pbnRDb3VudDogbnVtYmVyXHJcbiAgKSB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IE5ld1BvaW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBwb2ludHMgPSBwb2ludHMuY29uY2F0KE5ld1BvaW50c1tpXSk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5kaWNlcyA9IGluZGljZXMuY29uY2F0KFtcclxuICAgICAgNCxcclxuICAgICAgY3VycmVudFBvaW50Q291bnQgKyAwLFxyXG4gICAgICBjdXJyZW50UG9pbnRDb3VudCArIDEsXHJcbiAgICAgIGN1cnJlbnRQb2ludENvdW50ICsgMixcclxuICAgICAgY3VycmVudFBvaW50Q291bnQgKyAzLFxyXG4gICAgXSk7XHJcbiAgICBjdXJyZW50UG9pbnRDb3VudCArPSA0O1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIHBvaW50cyxcclxuICAgICAgaW5kaWNlcyxcclxuICAgICAgY3VycmVudFBvaW50Q291bnQsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5Y+q6YCC55So5LqO5ouJ5Ly45L2TLOmAmui/h+aIqumdoueahOeCueaVsOaNru+8jOiuvue9ruaLieS8uOS9k+eahOaVtOS9k+minOiJsu+8iOWPr+a4kOWPmO+8iVxyXG4gICAqIEBwYXJhbSBzaGVsbF9rZXlcclxuICAgKiBAcGFyYW0gcG9pbnRzIOaIqumdoueahOeCueaVsOaNri5cclxuICAgKiBAcGFyYW0gc3RhcnRDb2xvclxyXG4gICAqIEBwYXJhbSBlbmRDb2xvclxyXG4gICAqL1xyXG4gIHNldFNoZWxsQ2xvdWRDb2xvcihcclxuICAgIHNlY3Rpb246IFNlY3Rpb25PYmplY3QsXHJcbiAgICBzaGVsbF9rZXksXHJcbiAgICBwb2ludHM6IG51bWJlcltdLFxyXG4gICAgc3RhcnRDb2xvcjogbnVtYmVyW10sXHJcbiAgICBlbmRDb2xvcjogbnVtYmVyW11cclxuICApIHtcclxuICAgIGlmIChzZWN0aW9uKSB7XHJcbiAgICAgIGlmIChzZWN0aW9uLmNyb3NzU2VjdGlvblR5cGUudG9Mb3dlckNhc2UoKSA9PT0gXCJjb25cIikge1xyXG4gICAgICAgIHRoaXMuc2V0Q29uQ2xvdWRDb2xvcihzaGVsbF9rZXksIHN0YXJ0Q29sb3IsIGVuZENvbG9yKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNldFNlY3Rpb25DbG91ZENvbG9yKHNoZWxsX2tleSwgcG9pbnRzLCBzdGFydENvbG9yLCBlbmRDb2xvcik7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0VHViQ2xvdWRDb2xvcihzaGVsbF9rZXksIHN0YXJ0Q29sb3IsIGVuZENvbG9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldENvbkNsb3VkQ29sb3IoXHJcbiAgICBzaGVsbF9rZXk6IG51bWJlcixcclxuICAgIHN0YXJ0Q29sb3I6IG51bWJlcltdLFxyXG4gICAgZW5kQ29sb3I6IG51bWJlcltdXHJcbiAgKSB7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhcInNldENvbkNsb3VkQ29sb3JcIik7XHJcblxyXG4gICAgLy8gY3VydmVUZXNzTnVt77ya5LiA5Liq5Y2K5ZyG55qE54K55pWw6YePLlxyXG4gICAgLy8g5LiA5Liq5pW05ZyG55qE56a75pWj54K55pWw6YePLlxyXG4gICAgbGV0IG9uZUNpcmNsZVRlc3NOdW0gPSBNZW1iZXJPYmplY3QuY3VydmVUZXNzTnVtICogMjtcclxuICAgIGxldCBzaGVsbENvbG9ycyA9IG5ldyBBcnJheTxudW1iZXI+KCk7XHJcblxyXG4gICAgLy8g5bqV6Z2i5aSW5ZyI6aKc6ImyXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9uZUNpcmNsZVRlc3NOdW07IGkrKykge1xyXG4gICAgICAvL1xyXG4gICAgICBzaGVsbENvbG9ycy5wdXNoKHN0YXJ0Q29sb3JbMF0pO1xyXG4gICAgICBzaGVsbENvbG9ycy5wdXNoKHN0YXJ0Q29sb3JbMV0pO1xyXG4gICAgICBzaGVsbENvbG9ycy5wdXNoKHN0YXJ0Q29sb3JbMl0pO1xyXG4gICAgICBpZiAoc3RhcnRDb2xvclszXSkge1xyXG4gICAgICAgIHNoZWxsQ29sb3JzLnB1c2goc3RhcnRDb2xvclszXSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc2hlbGxDb2xvcnMucHVzaCgxKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIOmhtumdouWkluWciOminOiJslxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvbmVDaXJjbGVUZXNzTnVtOyBpKyspIHtcclxuICAgICAgLy9cclxuICAgICAgc2hlbGxDb2xvcnMucHVzaChlbmRDb2xvclswXSk7XHJcbiAgICAgIHNoZWxsQ29sb3JzLnB1c2goZW5kQ29sb3JbMV0pO1xyXG4gICAgICBzaGVsbENvbG9ycy5wdXNoKGVuZENvbG9yWzJdKTtcclxuICAgICAgaWYgKHN0YXJ0Q29sb3JbM10pIHtcclxuICAgICAgICBzaGVsbENvbG9ycy5wdXNoKGVuZENvbG9yWzNdKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzaGVsbENvbG9ycy5wdXNoKDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8g6K6+572u5ouJ5Ly4c2hlbGznmoTpobbngrnnmoTpopzoibIuXHJcbiAgICBMb25nYW4uTG9uZ2FuQ29yZS5KU19TZXRfR2VvbWV0cnlfQ29sb3JfQnlfVmFsdWUoXHJcbiAgICAgIHNoZWxsX2tleSxcclxuICAgICAgXCJmYWNlc1wiLFxyXG4gICAgICAwLFxyXG4gICAgICBzaGVsbENvbG9yc1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiuvue9ruaLieS8uOWchueuoeeahOminOiJsu+8iOWPr+a4kOWPmO+8iVxyXG4gICAqIEBwYXJhbSBzaGVsbF9rZXlcclxuICAgKiBAcGFyYW0gc3RhcnRDb2xvclxyXG4gICAqIEBwYXJhbSBlbmRDb2xvclxyXG4gICAqL1xyXG4gIHNldFR1YkNsb3VkQ29sb3IoXHJcbiAgICBzaGVsbF9rZXk6IG51bWJlcixcclxuICAgIHN0YXJ0Q29sb3I6IG51bWJlcltdLFxyXG4gICAgZW5kQ29sb3I6IG51bWJlcltdXHJcbiAgKSB7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhcInNldFR1YkNsb3VkQ29sb3JcIik7XHJcblxyXG4gICAgLy8gY3VydmVUZXNzTnVt77ya5LiA5Liq5Y2K5ZyG55qE54K55pWw6YePLlxyXG4gICAgLy8g5LiA5Liq5pW05ZyG55qE56a75pWj54K55pWw6YePLlxyXG4gICAgbGV0IG9uZUNpcmNsZVRlc3NOdW0gPSBNZW1iZXJPYmplY3QuY3VydmVUZXNzTnVtICogMjtcclxuICAgIGxldCBzaGVsbENvbG9ycyA9IG5ldyBBcnJheTxudW1iZXI+KCk7XHJcblxyXG4gICAgLy8g5bqV6Z2i5aSW5ZyI6aKc6ImyXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9uZUNpcmNsZVRlc3NOdW07IGkrKykge1xyXG4gICAgICAvL1xyXG4gICAgICBzaGVsbENvbG9ycy5wdXNoKHN0YXJ0Q29sb3JbMF0pO1xyXG4gICAgICBzaGVsbENvbG9ycy5wdXNoKHN0YXJ0Q29sb3JbMV0pO1xyXG4gICAgICBzaGVsbENvbG9ycy5wdXNoKHN0YXJ0Q29sb3JbMl0pO1xyXG4gICAgICBpZiAoc3RhcnRDb2xvclszXSkge1xyXG4gICAgICAgIHNoZWxsQ29sb3JzLnB1c2goc3RhcnRDb2xvclszXSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc2hlbGxDb2xvcnMucHVzaCgxKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIOmhtumdouWkluWciOminOiJslxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvbmVDaXJjbGVUZXNzTnVtOyBpKyspIHtcclxuICAgICAgLy9cclxuICAgICAgc2hlbGxDb2xvcnMucHVzaChlbmRDb2xvclswXSk7XHJcbiAgICAgIHNoZWxsQ29sb3JzLnB1c2goZW5kQ29sb3JbMV0pO1xyXG4gICAgICBzaGVsbENvbG9ycy5wdXNoKGVuZENvbG9yWzJdKTtcclxuICAgICAgaWYgKHN0YXJ0Q29sb3JbM10pIHtcclxuICAgICAgICBzaGVsbENvbG9ycy5wdXNoKGVuZENvbG9yWzNdKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzaGVsbENvbG9ycy5wdXNoKDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8g5bqV6Z2i5YaF5ZyI6aKc6ImyXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9uZUNpcmNsZVRlc3NOdW07IGkrKykge1xyXG4gICAgICAvL1xyXG4gICAgICBzaGVsbENvbG9ycy5wdXNoKHN0YXJ0Q29sb3JbMF0pO1xyXG4gICAgICBzaGVsbENvbG9ycy5wdXNoKHN0YXJ0Q29sb3JbMV0pO1xyXG4gICAgICBzaGVsbENvbG9ycy5wdXNoKHN0YXJ0Q29sb3JbMl0pO1xyXG4gICAgICBpZiAoc3RhcnRDb2xvclszXSkge1xyXG4gICAgICAgIHNoZWxsQ29sb3JzLnB1c2goc3RhcnRDb2xvclszXSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc2hlbGxDb2xvcnMucHVzaCgxKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIOmhtumdouWGheWciOminOiJslxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvbmVDaXJjbGVUZXNzTnVtOyBpKyspIHtcclxuICAgICAgLy9cclxuICAgICAgc2hlbGxDb2xvcnMucHVzaChlbmRDb2xvclswXSk7XHJcbiAgICAgIHNoZWxsQ29sb3JzLnB1c2goZW5kQ29sb3JbMV0pO1xyXG4gICAgICBzaGVsbENvbG9ycy5wdXNoKGVuZENvbG9yWzJdKTtcclxuICAgICAgaWYgKHN0YXJ0Q29sb3JbM10pIHtcclxuICAgICAgICBzaGVsbENvbG9ycy5wdXNoKGVuZENvbG9yWzNdKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzaGVsbENvbG9ycy5wdXNoKDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy/orr7nva7pobbpnaLnm5blrZDnmoTpopzoibIuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9uZUNpcmNsZVRlc3NOdW0gKiAyOyBpKyspIHtcclxuICAgICAgc2hlbGxDb2xvcnMucHVzaChlbmRDb2xvclswXSk7XHJcbiAgICAgIHNoZWxsQ29sb3JzLnB1c2goZW5kQ29sb3JbMV0pO1xyXG4gICAgICBzaGVsbENvbG9ycy5wdXNoKGVuZENvbG9yWzJdKTtcclxuICAgICAgaWYgKHN0YXJ0Q29sb3JbM10pIHtcclxuICAgICAgICBzaGVsbENvbG9ycy5wdXNoKGVuZENvbG9yWzNdKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzaGVsbENvbG9ycy5wdXNoKDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy/orr7nva7lupXpnaLnm5blrZDnmoTpopzoibIuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9uZUNpcmNsZVRlc3NOdW0gKiAyOyBpKyspIHtcclxuICAgICAgc2hlbGxDb2xvcnMucHVzaChzdGFydENvbG9yWzBdKTtcclxuICAgICAgc2hlbGxDb2xvcnMucHVzaChzdGFydENvbG9yWzFdKTtcclxuICAgICAgc2hlbGxDb2xvcnMucHVzaChzdGFydENvbG9yWzJdKTtcclxuICAgICAgaWYgKHN0YXJ0Q29sb3JbM10pIHtcclxuICAgICAgICBzaGVsbENvbG9ycy5wdXNoKHN0YXJ0Q29sb3JbM10pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNoZWxsQ29sb3JzLnB1c2goMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyDorr7nva7mi4nkvLhzaGVsbOeahOmhtueCueeahOminOiJsi5cclxuICAgIExvbmdhbi5Mb25nYW5Db3JlLkpTX1NldF9HZW9tZXRyeV9Db2xvcl9CeV9WYWx1ZShcclxuICAgICAgc2hlbGxfa2V5LFxyXG4gICAgICBcImZhY2VzXCIsXHJcbiAgICAgIDAsXHJcbiAgICAgIHNoZWxsQ29sb3JzXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6YCa6L+H5oiq6Z2i55qE54K55pWw5o2u77yM6K6+572u6Z2e5ZyG566h5ouJ5Ly45L2T55qE6aKc6Imy77yI5Y+v5riQ5Y+Y77yJ77yM5Y+q6YCC55So5LqO6YCa6L+H5oiq6Z2i5ouJ5Ly455qE5L2TXHJcbiAgICogQHBhcmFtIHNoZWxsX2tleVxyXG4gICAqIEBwYXJhbSBwb2ludHNcclxuICAgKiBAcGFyYW0gc3RhcnRDb2xvclxyXG4gICAqIEBwYXJhbSBlbmRDb2xvclxyXG4gICAqL1xyXG4gIHNldFNlY3Rpb25DbG91ZENvbG9yKFxyXG4gICAgc2hlbGxfa2V5OiBudW1iZXIsXHJcbiAgICBwb2ludHM6IG51bWJlcltdLFxyXG4gICAgc3RhcnRDb2xvcjogbnVtYmVyW10sXHJcbiAgICBlbmRDb2xvcjogbnVtYmVyW11cclxuICApIHtcclxuICAgIGxldCBzaGVsbENvbG9ycyA9IG5ldyBBcnJheTxudW1iZXI+KCk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGggLyAzOyBpKyspIHtcclxuICAgICAgLy9cclxuICAgICAgc2hlbGxDb2xvcnMucHVzaChzdGFydENvbG9yWzBdKTtcclxuICAgICAgc2hlbGxDb2xvcnMucHVzaChzdGFydENvbG9yWzFdKTtcclxuICAgICAgc2hlbGxDb2xvcnMucHVzaChzdGFydENvbG9yWzJdKTtcclxuICAgICAgaWYgKHN0YXJ0Q29sb3JbM10pIHtcclxuICAgICAgICBzaGVsbENvbG9ycy5wdXNoKHN0YXJ0Q29sb3JbM10pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNoZWxsQ29sb3JzLnB1c2goMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGggLyAzOyBpKyspIHtcclxuICAgICAgLy9cclxuICAgICAgc2hlbGxDb2xvcnMucHVzaChlbmRDb2xvclswXSk7XHJcbiAgICAgIHNoZWxsQ29sb3JzLnB1c2goZW5kQ29sb3JbMV0pO1xyXG4gICAgICBzaGVsbENvbG9ycy5wdXNoKGVuZENvbG9yWzJdKTtcclxuICAgICAgaWYgKHN0YXJ0Q29sb3JbM10pIHtcclxuICAgICAgICBzaGVsbENvbG9ycy5wdXNoKGVuZENvbG9yWzNdKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzaGVsbENvbG9ycy5wdXNoKDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoIC8gMzsgaSsrKSB7XHJcbiAgICAgIC8vXHJcbiAgICAgIHNoZWxsQ29sb3JzLnB1c2goZW5kQ29sb3JbMF0pO1xyXG4gICAgICBzaGVsbENvbG9ycy5wdXNoKGVuZENvbG9yWzFdKTtcclxuICAgICAgc2hlbGxDb2xvcnMucHVzaChlbmRDb2xvclsyXSk7XHJcbiAgICAgIGlmIChzdGFydENvbG9yWzNdKSB7XHJcbiAgICAgICAgc2hlbGxDb2xvcnMucHVzaChlbmRDb2xvclszXSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc2hlbGxDb2xvcnMucHVzaCgxKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aCAvIDM7IGkrKykge1xyXG4gICAgICAvL1xyXG4gICAgICBzaGVsbENvbG9ycy5wdXNoKHN0YXJ0Q29sb3JbMF0pO1xyXG4gICAgICBzaGVsbENvbG9ycy5wdXNoKHN0YXJ0Q29sb3JbMV0pO1xyXG4gICAgICBzaGVsbENvbG9ycy5wdXNoKHN0YXJ0Q29sb3JbMl0pO1xyXG4gICAgICBpZiAoc3RhcnRDb2xvclszXSkge1xyXG4gICAgICAgIHNoZWxsQ29sb3JzLnB1c2goc3RhcnRDb2xvclszXSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc2hlbGxDb2xvcnMucHVzaCgxKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIOiuvue9ruaLieS8uHNoZWxs55qE6aG254K555qE6aKc6ImyLlxyXG4gICAgTG9uZ2FuLkxvbmdhbkNvcmUuSlNfU2V0X0dlb21ldHJ5X0NvbG9yX0J5X1ZhbHVlKFxyXG4gICAgICBzaGVsbF9rZXksXHJcbiAgICAgIFwiZmFjZXNcIixcclxuICAgICAgMCxcclxuICAgICAgc2hlbGxDb2xvcnNcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRVbmRlZmluZVNlZ21lbnRMZW5ndGgoKSB7XHJcbiAgICBsZXQgbGVuZ3RoID0gdGhpcy5nZXRNZW1iZXJMZW5ndGgoKTtcclxuICAgIGlmICh0aGlzLmdydXApIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmdydXAuZ3J1cFNlZ21lbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgbGVuZ3RoIC09IHRoaXMuZ3J1cC5ncnVwU2VnbWVudHNbaV0uc2VnbWVudExlbmd0aDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmKGxlbmd0aCA8IDApIHtcclxuICAgICAgbGVuZ3RoID0gMDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFJlZmVyZW5jZShwbTogUGVyc2lzdGVuY2VNYW5hZ2VyKSB7XHJcbiAgICBpZiAodHlwZW9mIHRoaXMuc3RhcnQgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgbGV0IHN0YXJ0ID0gcG0ucmVmZXJlbmNlTGlzdC5nZXQodGhpcy5zdGFydCBhcyBzdHJpbmcpO1xyXG4gICAgICBpZiAoc3RhcnQpIHtcclxuICAgICAgICB0aGlzLnN0YXJ0ID0gc3RhcnQgYXMgSm9pbnRPYmplY3Q7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodHlwZW9mIHRoaXMuZW5kID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgIGxldCBlbmQgPSBwbS5yZWZlcmVuY2VMaXN0LmdldCh0aGlzLmVuZCBhcyBzdHJpbmcpO1xyXG4gICAgICBpZiAoZW5kKSB7XHJcbiAgICAgICAgdGhpcy5lbmQgPSBlbmQgYXMgSm9pbnRPYmplY3Q7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodHlwZW9mIHRoaXMuZ3J1cCA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICBsZXQgZ3J1cCA9IHBtLnJlZmVyZW5jZUxpc3QuZ2V0KHRoaXMuZ3J1cCBhcyBzdHJpbmcpO1xyXG4gICAgICBpZiAoZ3J1cCkge1xyXG4gICAgICAgIHRoaXMuZ3J1cCA9IGdydXAgYXMgR3J1cE9iamVjdDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2V0TmVlZFVwZGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5pu/5o2i5p2G5Lu255qE5YW25Lit5LiA5Liq56m66Ze054K5XHJcbiAgICogQHBhcmFtIHJlcGxhY2luZ0pvaW50IOiiq+abv+aNoueahOepuumXtOeCuVxyXG4gICAqIEBwYXJhbSBhZnRlckpvaW50IOabv+aNouWQjueahOepuumXtOeCuVxyXG4gICAqL1xyXG4gIHB1YmxpYyBqb2ludFJlcGxhY2UocmVwbGFjaW5nSm9pbnQ6IEpvaW50T2JqZWN0LCBhZnRlckpvaW50OiBKb2ludE9iamVjdCkge1xyXG4gICAgaWYgKHRoaXMuc3RhcnQuaWQgPT09IHJlcGxhY2luZ0pvaW50LmlkKSB7XHJcbiAgICAgIHRoaXMuc3RhcnQgPSBhZnRlckpvaW50O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5lbmQgPSBhZnRlckpvaW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFN0YXJ0UG9zaXRpb24oKTogbnVtYmVyW10ge1xyXG4gICAgbGV0IHN0YXJ0UG9zaXRpb24gPSBudWxsO1xyXG5cclxuICAgIGlmICh0aGlzLnN0YXJ0KSB7XHJcbiAgICAgIGlmICh0aGlzLnN0YXJ0LnBvc2l0aW9uKSB7XHJcbiAgICAgICAgc3RhcnRQb3NpdGlvbiA9IExvbmdhbi5kZWVwQ2xvbmUodGhpcy5zdGFydC5wb3NpdGlvbik7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhcnRPZmZzZXQpIHtcclxuICAgICAgICAgIGlmICh0aGlzLm9mZnNldE9wdGlvbiA9PT0gXCIyXCIpIHtcclxuICAgICAgICAgICAgLy8g5bGA6YOo5YGP56e7XHJcbiAgICAgICAgICAgIGxldCBheGlzU3lzdGVtID0gdGhpcy5nZXRTdGFydEVuZExvY2FsQXhpcygpO1xyXG4gICAgICAgICAgICBsZXQgcG9zID0gbmV3IEZsb2F0MzJBcnJheShzdGFydFBvc2l0aW9uKTtcclxuICAgICAgICAgICAgcG9zID0gTG9uZ2FuLlBvaW50LmFkZChcclxuICAgICAgICAgICAgICBwb3MsXHJcbiAgICAgICAgICAgICAgTG9uZ2FuLlZlY3Rvci5tdWx0aXBseShcclxuICAgICAgICAgICAgICAgIGF4aXNTeXN0ZW0ueEF4aXMsXHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0T2Zmc2V0WzBdIC8gMTAwXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBwb3MgPSBMb25nYW4uUG9pbnQuYWRkKFxyXG4gICAgICAgICAgICAgIHBvcyxcclxuICAgICAgICAgICAgICBMb25nYW4uVmVjdG9yLm11bHRpcGx5KFxyXG4gICAgICAgICAgICAgICAgYXhpc1N5c3RlbS55QXhpcyxcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRPZmZzZXRbMV0gLyAxMDBcclxuICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHBvcyA9IExvbmdhbi5Qb2ludC5hZGQoXHJcbiAgICAgICAgICAgICAgcG9zLFxyXG4gICAgICAgICAgICAgIExvbmdhbi5WZWN0b3IubXVsdGlwbHkoXHJcbiAgICAgICAgICAgICAgICBheGlzU3lzdGVtLnpBeGlzLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5zdGFydE9mZnNldFsyXSAvIDEwMFxyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgIHN0YXJ0UG9zaXRpb25bMF0gPSBwb3NbMF07XHJcbiAgICAgICAgICAgIHN0YXJ0UG9zaXRpb25bMV0gPSBwb3NbMV07XHJcbiAgICAgICAgICAgIHN0YXJ0UG9zaXRpb25bMl0gPSBwb3NbMl07XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMub2Zmc2V0T3B0aW9uID09PSBcIjFcIikge1xyXG4gICAgICAgICAgICAvLyDlhajlsYDlgY/np7tcclxuICAgICAgICAgICAgc3RhcnRQb3NpdGlvblswXSArPSB0aGlzLnN0YXJ0T2Zmc2V0WzBdIC8gMTAwO1xyXG4gICAgICAgICAgICBzdGFydFBvc2l0aW9uWzFdICs9IHRoaXMuc3RhcnRPZmZzZXRbMV0gLyAxMDA7XHJcbiAgICAgICAgICAgIHN0YXJ0UG9zaXRpb25bMl0gKz0gdGhpcy5zdGFydE9mZnNldFsyXSAvIDEwMDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIOS4jea3u+WKoOWBj+enuy5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gc3RhcnRQb3NpdGlvbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRFbmRQb3NpdGlvbigpOiBudW1iZXJbXSB7XHJcbiAgICBsZXQgZW5kUG9zaXRpb24gPSBudWxsO1xyXG5cclxuICAgIGlmICh0aGlzLmVuZCkge1xyXG4gICAgICBpZiAodGhpcy5lbmQucG9zaXRpb24pIHtcclxuICAgICAgICBlbmRQb3NpdGlvbiA9IExvbmdhbi5kZWVwQ2xvbmUodGhpcy5lbmQucG9zaXRpb24pO1xyXG4gICAgICAgIGlmICh0aGlzLmVuZE9mZnNldCkge1xyXG4gICAgICAgICAgaWYgKHRoaXMub2Zmc2V0T3B0aW9uID09PSBcIjJcIikge1xyXG4gICAgICAgICAgICAvLyDlsYDpg6jlgY/np7tcclxuICAgICAgICAgICAgbGV0IGF4aXNTeXN0ZW0gPSB0aGlzLmdldFN0YXJ0RW5kTG9jYWxBeGlzKCk7XHJcbiAgICAgICAgICAgIGxldCBwb3MgPSBuZXcgRmxvYXQzMkFycmF5KGVuZFBvc2l0aW9uKTtcclxuICAgICAgICAgICAgcG9zID0gTG9uZ2FuLlBvaW50LmFkZChcclxuICAgICAgICAgICAgICBwb3MsXHJcbiAgICAgICAgICAgICAgTG9uZ2FuLlZlY3Rvci5tdWx0aXBseShheGlzU3lzdGVtLnhBeGlzLCB0aGlzLmVuZE9mZnNldFswXSAvIDEwMClcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgcG9zID0gTG9uZ2FuLlBvaW50LmFkZChcclxuICAgICAgICAgICAgICBwb3MsXHJcbiAgICAgICAgICAgICAgTG9uZ2FuLlZlY3Rvci5tdWx0aXBseShheGlzU3lzdGVtLnlBeGlzLCB0aGlzLmVuZE9mZnNldFsxXSAvIDEwMClcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgcG9zID0gTG9uZ2FuLlBvaW50LmFkZChcclxuICAgICAgICAgICAgICBwb3MsXHJcbiAgICAgICAgICAgICAgTG9uZ2FuLlZlY3Rvci5tdWx0aXBseShheGlzU3lzdGVtLnpBeGlzLCB0aGlzLmVuZE9mZnNldFsyXSAvIDEwMClcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgIGVuZFBvc2l0aW9uWzBdID0gcG9zWzBdO1xyXG4gICAgICAgICAgICBlbmRQb3NpdGlvblsxXSA9IHBvc1sxXTtcclxuICAgICAgICAgICAgZW5kUG9zaXRpb25bMl0gPSBwb3NbMl07XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMub2Zmc2V0T3B0aW9uID09PSBcIjFcIikge1xyXG4gICAgICAgICAgICAvLyDlhajlsYDlgY/np7tcclxuICAgICAgICAgICAgZW5kUG9zaXRpb25bMF0gKz0gdGhpcy5lbmRPZmZzZXRbMF0gLyAxMDA7XHJcbiAgICAgICAgICAgIGVuZFBvc2l0aW9uWzFdICs9IHRoaXMuZW5kT2Zmc2V0WzFdIC8gMTAwO1xyXG4gICAgICAgICAgICBlbmRQb3NpdGlvblsyXSArPSB0aGlzLmVuZE9mZnNldFsyXSAvIDEwMDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIOS4jea3u+WKoOWBj+enu1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBlbmRQb3NpdGlvbjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiuoeeul+adhuS7tueahFjovbTmlrnlkJFcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRWZWN0b3IoKSB7XHJcbiAgICBsZXQgc3RhcnRQb3MgPSB0aGlzLmdldFN0YXJ0UG9zaXRpb24oKTtcclxuICAgIGxldCBlbmRQb3MgPSB0aGlzLmdldEVuZFBvc2l0aW9uKCk7XHJcblxyXG4gICAgbGV0IHZlY3RvciA9IExvbmdhbi5Qb2ludC5zdWJ0cmFjdChcclxuICAgICAgbmV3IEZsb2F0MzJBcnJheShlbmRQb3MpLFxyXG4gICAgICBuZXcgRmxvYXQzMkFycmF5KHN0YXJ0UG9zKVxyXG4gICAgKTtcclxuICAgIExvbmdhbi5WZWN0b3Iubm9ybWFsaXplKHZlY3Rvcik7XHJcblxyXG4gICAgcmV0dXJuIHZlY3RvcjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiuoeeul+adhuS7tueahOWunumZhemVv+W6pihtKVxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgcHVibGljIGdldE1lbWJlckxlbmd0aCgpOiBudW1iZXIge1xyXG4gICAgbGV0IHN0YXJ0UG9zID0gdGhpcy5nZXRTdGFydFBvc2l0aW9uKCk7XHJcbiAgICBsZXQgZW5kUG9zID0gdGhpcy5nZXRFbmRQb3NpdGlvbigpO1xyXG5cclxuICAgIGxldCBsZW5ndGggPSBMb25nYW4uVmVjdG9yLm1vZHVsZShcclxuICAgICAgTG9uZ2FuLlBvaW50LnN1YnRyYWN0KFxyXG4gICAgICAgIG5ldyBGbG9hdDMyQXJyYXkoZW5kUG9zKSxcclxuICAgICAgICBuZXcgRmxvYXQzMkFycmF5KHN0YXJ0UG9zKVxyXG4gICAgICApXHJcbiAgICApO1xyXG5cclxuICAgIHJldHVybiBsZW5ndGg7XHJcbiAgfVxyXG5cclxuICBnZXRMZW5ndGhPbkNNKCkge1xyXG4gICAgbGV0IGxlbmd0aCA9IDA7XHJcbiAgICBpZiAodGhpcy5ncnVwKSB7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5ncnVwLmdydXBTZWdtZW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGxlbmd0aCArPSB0aGlzLmdydXAuZ3J1cFNlZ21lbnRzW2ldLnNlZ21lbnRMZW5ndGg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgZ2V0V2lkdGgoKSB7XHJcbiAgICBsZXQgd2lkdGggPSAwO1xyXG4gICAgaWYgKHRoaXMuZ3J1cCkge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZ3J1cC5ncnVwU2VnbWVudHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB3aWR0aCArPSB0aGlzLmdydXAuZ3J1cFNlZ21lbnRzW2ldLnR1YldhbGxUaGlja25lc3M7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gd2lkdGg7XHJcbiAgfVxyXG5cclxuICBnZXRTaXplKGluZGV4OiBudW1iZXIpIHtcclxuICAgIGxldCB0ZXh0ID0gdGhpcy5uYW1lO1xyXG5cclxuICAgIGlmICh0aGlzLmdydXAgJiYgdGhpcy5ncnVwLmdydXBTZWdtZW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBncnVwU2VnbWVudCA9IHRoaXMuZ3J1cC5ncnVwU2VnbWVudHNbaW5kZXhdO1xyXG5cclxuICAgICAgaWYgKGdydXBTZWdtZW50LnNlY3Rpb24pIHtcclxuICAgICAgICBpZiAoZ3J1cFNlZ21lbnQuc2VjdGlvbi5jcm9zc1NlY3Rpb25UeXBlLnRvTG93ZXJDYXNlKCkgPT09IFwiY29uXCIpIHtcclxuICAgICAgICAgIC8vIOWchumUpei/h+a4oeautVxyXG4gICAgICAgICAgbGV0IGNvbiA9IGdydXBTZWdtZW50LnNlY3Rpb24gYXMgQ29uU2VjdGlvbk9iamVjdDtcclxuICAgICAgICAgIHRleHQgPSBjb24ubGFyZ2VPRCArIFwiflwiICsgY29uLnNtYWxsT0QgKyBcInhcIiArIGNvbi53YWxsVGhpY2s7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vIOWFtuS7luexu+Wei1xyXG4gICAgICAgICAgdGV4dCA9IGdydXBTZWdtZW50LnNlY3Rpb24ubmFtZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8g5ZyG566hXHJcbiAgICAgICAgdGV4dCA9XHJcbiAgICAgICAgICBOdW1iZXIoZ3J1cFNlZ21lbnQudHViT3V0ZXJEaWFtZXRlcikudG9TdHJpbmcoKSArXHJcbiAgICAgICAgICBcIsOXXCIgK1xyXG4gICAgICAgICAgTnVtYmVyKGdydXBTZWdtZW50LnR1YldhbGxUaGlja25lc3MpLnRvU3RyaW5nKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGV4dDtcclxuICB9XHJcblxyXG4gIGRyYXdTdmcoKSB7XHJcbiAgICBpZiAoIXRoaXMuY2hlY2tCdXNpbmVzc1N0YXRlSXNBY3RpdmUoKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGlybyA9IFByb2Nlc3MuYWN0aXZlUHJvY2Vzcy5hY3RpdmVWaWV3ZXIuZmluZEluc3RhbmNlT2JqZWN0KHRoaXMpO1xyXG4gICAgaWYgKGlybyAmJiAhaXJvLnZpc2libGUpIHtcclxuICAgICAgdGhpcy5jbGVhclN2ZygpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gbGV0IHZpZXdlciA9IFByb2Nlc3MuYWN0aXZlUHJvY2Vzcy5hY3RpdmVWaWV3ZXI7XHJcblxyXG4gICAgLy8gdGhpcy5zdmdJdGVtID0gbmV3IFN2Z0l0ZW0odmlld2VyKTtcclxuICAgIGlmICh0aGlzLl9pc0RyYXdTaXplKSB7XHJcbiAgICAgIHRoaXMuZHJhd1NpemUoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl9pc0RyYXdOdW1iZXIpIHtcclxuICAgICAgdGhpcy5kcmF3TnVtYmVyKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5faXNEcmF3QXhpcykge1xyXG4gICAgICB0aGlzLmRyYXdBeGlzKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5faXNEcmF3Rml4aXR5KSB7XHJcbiAgICAgIHRoaXMuZHJhd0ZpeGl0eSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuX2lzRHJhd0xhYmVsKSB7XHJcbiAgICAgIC8vIHRoaXMuZHJhd0xhYmVsKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5faXNEcmF3QXhpcykge1xyXG4gICAgICB0aGlzLmRyYXdBeGlzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhclNpemVUZXh0cygpIHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zaXplVGV4dHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgdGhpcy5zaXplVGV4dHNbaV0gJiYgdGhpcy5zaXplVGV4dHNbaV0uY2xlYXIoKTtcclxuICAgICAgdGhpcy5zaXplVGV4dHNbaV0gPSBudWxsO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zaXplVGV4dHMgPSBuZXcgQXJyYXk8YW55PigpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJTdmcoKTogdm9pZCB7XHJcbiAgICAvLyBpZiAodGhpcy5zaXplVGV4dCkge1xyXG4gICAgLy8gICB0aGlzLnNpemVUZXh0LmNsZWFyKCk7XHJcbiAgICAvLyAgIHRoaXMuc2l6ZVRleHQgPSBudWxsO1xyXG4gICAgLy8gfVxyXG4gICAgdGhpcy5jbGVhclNpemVUZXh0cygpO1xyXG4gICAgaWYgKHRoaXMubnVtYmVyVGV4dCkge1xyXG4gICAgICB0aGlzLm51bWJlclRleHQuY2xlYXIoKTtcclxuICAgICAgdGhpcy5udW1iZXJUZXh0ID0gbnVsbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZpeGl0eVRleHQpIHtcclxuICAgICAgdGhpcy5maXhpdHlUZXh0LmNsZWFyKCk7XHJcbiAgICAgIHRoaXMuZml4aXR5VGV4dCA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5sYWJlbFRleHQgJiYgIXRoaXMuaXNEcmF3TGFiZWwpIHtcclxuICAgICAgdGhpcy5sYWJlbFRleHQuY2xlYXIoKTtcclxuICAgICAgdGhpcy5sYWJlbFRleHQgPSBudWxsO1xyXG4gICAgICB0aGlzLmxhYmVsUmVjdC5yZW1vdmUoKTtcclxuICAgICAgdGhpcy5sYWJlbFJlY3QgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmF4aXNTZWcpIHtcclxuICAgICAgdGhpcy5heGlzU2VnLmNsZWFyQWxsKCk7XHJcbiAgICAgIHRoaXMuYXhpc1NlZyA9IG51bGw7XHJcbiAgICB9XHJcbiAgICAvLyB0aGlzLmlzRHJhd0F4aXMgPSBmYWxzZTtcclxuXHJcbiAgICBzdXBlci5jbGVhclN2ZygpO1xyXG4gIH1cclxuXHJcbiAgZHJhd1NpemUoKSB7XHJcbiAgICBpZiAoIXRoaXMuY2hlY2tCdXNpbmVzc1N0YXRlSXNBY3RpdmUoKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgdmlld2VyID0gUHJvY2Vzcy5hY3RpdmVQcm9jZXNzLmFjdGl2ZVZpZXdlcjtcclxuICAgIGxldCBpcm8gPSB2aWV3ZXIuZmluZEluc3RhbmNlT2JqZWN0KHRoaXMpO1xyXG4gICAgaWYgKGlybyAmJiAhaXJvLnZpc2libGUpIHtcclxuICAgICAgLy8gdGhpcy5pc0RyYXdTaXplID0gZmFsc2U7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgc3RhcnRQb3MgPSBuZXcgRmxvYXQzMkFycmF5KHRoaXMuZ2V0U3RhcnRQb3NpdGlvbigpKTtcclxuICAgIGxldCB2ZWN0b3IgPSB0aGlzLmdldFZlY3RvcigpO1xyXG4gICAgbGV0IGN1cnJlbnRMZW4gPSAwO1xyXG4gICAgaWYgKHRoaXMuZ3J1cCkge1xyXG4gICAgICBpZiAoIXRoaXMuZ3J1cC5jaGVja0J1c2luZXNzU3RhdGVJc0FjdGl2ZSgpKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5ncnVwLmdydXBTZWdtZW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGxldCBwb3MxID0gTG9uZ2FuLlBvaW50LmFkZChcclxuICAgICAgICAgIHN0YXJ0UG9zLFxyXG4gICAgICAgICAgTG9uZ2FuLlZlY3Rvci5tdWx0aXBseSh2ZWN0b3IsIGN1cnJlbnRMZW4pXHJcbiAgICAgICAgKTtcclxuICAgICAgICBsZXQgcG9pbnQwID0gdmlld2VyLndvcmxkUG9pbnRUb1BpeGVsUG9pbnQoW25ldyBGbG9hdDY0QXJyYXkocG9zMSldKVswXTtcclxuXHJcbiAgICAgICAgbGV0IGN1ckdydXBTZWcgPSB0aGlzLmdydXAuZ3J1cFNlZ21lbnRzW2ldO1xyXG4gICAgICAgIGlmICghY3VyR3J1cFNlZy5zZWdtZW50TGVuZ3RoKSB7XHJcbiAgICAgICAgICBjdXJyZW50TGVuICs9IE51bWJlcih0aGlzLmdldFVuZGVmaW5lU2VnbWVudExlbmd0aCgpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY3VycmVudExlbiArPSBOdW1iZXIoY3VyR3J1cFNlZy5zZWdtZW50TGVuZ3RoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCByZXNQb3MgPSBMb25nYW4uUG9pbnQuYWRkKFxyXG4gICAgICAgICAgc3RhcnRQb3MsXHJcbiAgICAgICAgICBMb25nYW4uVmVjdG9yLm11bHRpcGx5KHZlY3RvciwgY3VycmVudExlbilcclxuICAgICAgICApO1xyXG4gICAgICAgIGxldCBwb2ludDEgPSB2aWV3ZXIud29ybGRQb2ludFRvUGl4ZWxQb2ludChbXHJcbiAgICAgICAgICBuZXcgRmxvYXQ2NEFycmF5KHJlc1BvcyksXHJcbiAgICAgICAgXSlbMF07XHJcblxyXG4gICAgICAgIGxldCB0ZXh0ID0gdGhpcy5nZXRTaXplKGkpO1xyXG5cclxuICAgICAgICBsZXQgc2l6ZVRleHQgPSB0aGlzLnNpemVUZXh0c1tpXTtcclxuICAgICAgICBpZiAoc2l6ZVRleHQpIHtcclxuICAgICAgICAgIHNpemVUZXh0Lm1vdmUoXHJcbiAgICAgICAgICAgIChwb2ludDBbMF0gKyBwb2ludDFbMF0pIC8gMixcclxuICAgICAgICAgICAgKHBvaW50MFsxXSArIHBvaW50MVsxXSkgLyAyXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgc2l6ZVRleHQuYXR0cihcImZvbnQtc2l6ZVwiLCBEZXNpZ25CYXNlT2JqZWN0LmZvbnRTaXplKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbGV0IGRyYXcgPSBTdmdEcmF3LmdldEluc3RhbmNlKHZpZXdlci5jb250YWluZXIuaWQpLmRyYXc7XHJcbiAgICAgICAgICBpZiAoIXRoaXMuX2dyb3VwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2dyb3VwID0gZHJhdy5ncm91cCgpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHNpemVUZXh0ID0gZHJhd1xyXG4gICAgICAgICAgICAudGV4dCh0ZXh0KVxyXG4gICAgICAgICAgICAuZm9udCh7IGZpbGw6IE9iamVjdENvbG9yLm1lbWJlckxhYmVsQ29sb3IgfSlcclxuICAgICAgICAgICAgLmF0dHIoXCJmb250LXNpemVcIiwgRGVzaWduQmFzZU9iamVjdC5mb250U2l6ZSlcclxuICAgICAgICAgICAgLm1vdmUoKHBvaW50MFswXSArIHBvaW50MVswXSkgLyAyLCAocG9pbnQwWzFdICsgcG9pbnQxWzFdKSAvIDIpO1xyXG4gICAgICAgICAgdGhpcy5fZ3JvdXAuYWRkKHNpemVUZXh0KTtcclxuICAgICAgICAgIHRoaXMuc2l6ZVRleHRzLnB1c2goc2l6ZVRleHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZHJhd051bWJlcigpIHtcclxuICAgIGlmICghdGhpcy5jaGVja0J1c2luZXNzU3RhdGVJc0FjdGl2ZSgpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCB2aWV3ZXIgPSBQcm9jZXNzLmFjdGl2ZVByb2Nlc3MuYWN0aXZlVmlld2VyO1xyXG4gICAgbGV0IGlybyA9IHZpZXdlci5maW5kSW5zdGFuY2VPYmplY3QodGhpcyk7XHJcbiAgICBpZiAoaXJvICYmICFpcm8udmlzaWJsZSkge1xyXG4gICAgICAvLyB0aGlzLmlzRHJhd051bWJlciA9IGZhbHNlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHBvaW50MCA9IHZpZXdlci53b3JsZFBvaW50VG9QaXhlbFBvaW50KFt0aGlzLnN0YXJ0UG9pbnQgYXMgYW55XSlbMF07XHJcbiAgICBsZXQgcG9pbnQxID0gdmlld2VyLndvcmxkUG9pbnRUb1BpeGVsUG9pbnQoW3RoaXMuZW5kUG9pbnQgYXMgYW55XSlbMF07XHJcblxyXG4gICAgaWYgKHRoaXMubnVtYmVyVGV4dCkge1xyXG4gICAgICB0aGlzLm51bWJlclRleHQubW92ZShcclxuICAgICAgICAocG9pbnQwWzBdICsgcG9pbnQxWzBdKSAvIDIsXHJcbiAgICAgICAgKHBvaW50MFsxXSArIHBvaW50MVsxXSkgLyAyXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMubnVtYmVyVGV4dC5hdHRyKFwiZm9udC1zaXplXCIsIERlc2lnbkJhc2VPYmplY3QuZm9udFNpemUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuZ3J1cCkge1xyXG4gICAgICAgIGlmICghdGhpcy5ncnVwLmNoZWNrQnVzaW5lc3NTdGF0ZUlzQWN0aXZlKCkpIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IGRyYXcgPSBTdmdEcmF3LmdldEluc3RhbmNlKHZpZXdlci5jb250YWluZXIuaWQpLmRyYXc7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9ncm91cCkge1xyXG4gICAgICAgICAgdGhpcy5fZ3JvdXAgPSBkcmF3Lmdyb3VwKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLm51bWJlclRleHQgPSBkcmF3XHJcbiAgICAgICAgICAudGV4dCh0aGlzLmdydXAubmFtZSlcclxuICAgICAgICAgIC5mb250KHsgZmlsbDogT2JqZWN0Q29sb3IubWVtYmVyTGFiZWxDb2xvciB9KVxyXG4gICAgICAgICAgLmF0dHIoXCJmb250LXNpemVcIiwgRGVzaWduQmFzZU9iamVjdC5mb250U2l6ZSlcclxuICAgICAgICAgIC5tb3ZlKChwb2ludDBbMF0gKyBwb2ludDFbMF0pIC8gMiwgKHBvaW50MFsxXSArIHBvaW50MVsxXSkgLyAyKTtcclxuICAgICAgICB0aGlzLl9ncm91cC5hZGQodGhpcy5udW1iZXJUZXh0KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZHJhd0F4aXMoKSB7XHJcbiAgICBpZiAoIXRoaXMuY2hlY2tCdXNpbmVzc1N0YXRlSXNBY3RpdmUoKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgdmlld2VyID0gUHJvY2Vzcy5hY3RpdmVQcm9jZXNzLmFjdGl2ZVZpZXdlcjtcclxuICAgIGxldCBpcm8gPSB2aWV3ZXIuZmluZEluc3RhbmNlT2JqZWN0KHRoaXMpO1xyXG4gICAgaWYgKGlybyAmJiAhaXJvLnZpc2libGUpIHtcclxuICAgICAgLy8gdGhpcy5pc0RyYXdBeGlzID0gZmFsc2U7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgdW5pdExlbmd0aGEgPSB2aWV3ZXIudW5pdExlbmd0aCAvIDQ7XHJcbiAgICBsZXQgc2NhbGVNYXRyaXggPSBMb25nYW4uTWF0cml4NC5zY2FsZU1hdHJpeChcclxuICAgICAgdW5pdExlbmd0aGEsXHJcbiAgICAgIHVuaXRMZW5ndGhhLFxyXG4gICAgICB1bml0TGVuZ3RoYVxyXG4gICAgKTtcclxuICAgIGxldCBjZW50ZXIgPSB0aGlzLmdldENlbnRlcigpO1xyXG4gICAgbGV0IHRyYW5zbGF0ZU1hdHJpeCA9IExvbmdhbi5NYXRyaXg0LnRyYW5zbGF0ZU1hdHJpeChcclxuICAgICAgY2VudGVyWzBdLFxyXG4gICAgICBjZW50ZXJbMV0sXHJcbiAgICAgIGNlbnRlclsyXVxyXG4gICAgKTtcclxuICAgIGlmICh0aGlzLmF4aXNTZWcpIHtcclxuICAgICAgLy8gdGhpcy5heGlzU2VnLm1vZGVsbGluZ01hdHJpeC5zZXQoc2NhbGVNYXRyaXgpO1xyXG4gICAgICAvLyB0aGlzLmF4aXNTZWcuY2xlYXJBbGwoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCB2aWV3ZXIgPSBQcm9jZXNzLmFjdGl2ZVByb2Nlc3MuYWN0aXZlVmlld2VyO1xyXG4gICAgICBsZXQgdW5pdExlbmd0aGEgPSB2aWV3ZXIudW5pdExlbmd0aCAvIDI7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwidW5pdExlbmd0aGFcIiwgdW5pdExlbmd0aGEpO1xyXG5cclxuICAgICAgbGV0IGF4aXMgPSB0aGlzLmdldExvY2FsQXhpcygpO1xyXG4gICAgICBsZXQgb3JpZ2luID0gbmV3IEZsb2F0MzJBcnJheShbMCwgMCwgMF0pO1xyXG5cclxuICAgICAgbGV0IHhQb2ludCA9IExvbmdhbi5Qb2ludC5hZGQob3JpZ2luLCBheGlzLnhBeGlzKTtcclxuICAgICAgbGV0IHlQb2ludCA9IExvbmdhbi5Qb2ludC5hZGQob3JpZ2luLCBheGlzLnlBeGlzKTtcclxuICAgICAgbGV0IHpQb2ludCA9IExvbmdhbi5Qb2ludC5hZGQob3JpZ2luLCBheGlzLnpBeGlzKTtcclxuXHJcbiAgICAgIGxldCBtYXRyaXggPSBMb25nYW4uTWF0cml4NC5pZGVudGl0eSgpO1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5zZWdtZW50LmF0dHJpYnV0ZXMuaW5kZXhPZihcclxuICAgICAgICAgIExvbmdhbi5Mb25nYW5Db3JlLk9iamVjdFR5cGUuVFlQRV9Nb2RlbGxpbmdNYXRyaXhcclxuICAgICAgICApXHJcbiAgICAgICkge1xyXG4gICAgICAgIGlmICh0aGlzLnNlZ21lbnQubW9kZWxsaW5nTWF0cml4Lm1hdHJpeCkge1xyXG4gICAgICAgICAgbWF0cml4ID0gbmV3IEZsb2F0MzJBcnJheSh0aGlzLnNlZ21lbnQubW9kZWxsaW5nTWF0cml4Lm1hdHJpeCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGxldCBheGlzUGFyZW50ID0gdmlld2VyLnNjZW5lU2VnbWVudC5zdWJzZWdtZW50KFwiYXhpc1BhclwiICsgdGhpcy5pZCk7XHJcbiAgICAgIGF4aXNQYXJlbnQubW9kZWxsaW5nTWF0cml4LnNldChtYXRyaXgpO1xyXG4gICAgICB0aGlzLmF4aXNTZWcgPSBheGlzUGFyZW50LnN1YnNlZ21lbnQoXCJheGlzXCIpO1xyXG5cclxuICAgICAgdGhpcy5heGlzU2VnLnJlbmRlcmluZ09wdGlvbnMuZGVwdGhSYW5nZSA9IFswLCAwLjFdO1xyXG5cclxuICAgICAgbGV0IHhTZWcgPSB0aGlzLmF4aXNTZWcuc3Vic2VnbWVudChcInhcIik7XHJcbiAgICAgIGxldCB5U2VnID0gdGhpcy5heGlzU2VnLnN1YnNlZ21lbnQoXCJ5XCIpO1xyXG4gICAgICBsZXQgelNlZyA9IHRoaXMuYXhpc1NlZy5zdWJzZWdtZW50KFwielwiKTtcclxuXHJcbiAgICAgIHhTZWcuY29sb3Iuc2V0TGluZShbMCwgMCwgMjU1XSk7XHJcbiAgICAgIHhTZWcuY29sb3Iuc2V0RmFjZShbMCwgMCwgMjU1XSk7XHJcbiAgICAgIHlTZWcuY29sb3Iuc2V0TGluZShbMCwgMjU1LCAwXSk7XHJcbiAgICAgIHlTZWcuY29sb3Iuc2V0RmFjZShbMCwgMjU1LCAwXSk7XHJcbiAgICAgIHpTZWcuY29sb3Iuc2V0TGluZShbMjU1LCAwLCAwXSk7XHJcbiAgICAgIHpTZWcuY29sb3Iuc2V0RmFjZShbMjU1LCAwLCAwXSk7XHJcblxyXG4gICAgICBsZXQgeCA9IHhTZWcuaW5zZXJ0TGluZShvcmlnaW4sIHhQb2ludCk7XHJcbiAgICAgIGxldCB5ID0geVNlZy5pbnNlcnRMaW5lKG9yaWdpbiwgeVBvaW50KTtcclxuICAgICAgbGV0IHogPSB6U2VnLmluc2VydExpbmUob3JpZ2luLCB6UG9pbnQpO1xyXG5cclxuICAgICAgeFNlZy5pbnNlcnRQYXJhbWV0cmljR2VvbWV0cnkoXCJzY29uXCIsIFtcclxuICAgICAgICAuLi5Mb25nYW4uUG9pbnQuYWRkKHhQb2ludCwgTG9uZ2FuLlZlY3Rvci5tdWx0aXBseShheGlzLnhBeGlzLCAwLjUpKSxcclxuICAgICAgICAuLi5Mb25nYW4uVmVjdG9yLm11bHRpcGx5KGF4aXMueEF4aXMsIC0xKSxcclxuICAgICAgICAwLjUsXHJcbiAgICAgICAgMC4yLFxyXG4gICAgICBdKTtcclxuICAgICAgeVNlZy5pbnNlcnRQYXJhbWV0cmljR2VvbWV0cnkoXCJzY29uXCIsIFtcclxuICAgICAgICAuLi5Mb25nYW4uUG9pbnQuYWRkKHlQb2ludCwgTG9uZ2FuLlZlY3Rvci5tdWx0aXBseShheGlzLnlBeGlzLCAwLjUpKSxcclxuICAgICAgICAuLi5Mb25nYW4uVmVjdG9yLm11bHRpcGx5KGF4aXMueUF4aXMsIC0xKSxcclxuICAgICAgICAwLjUsXHJcbiAgICAgICAgMC4yLFxyXG4gICAgICBdKTtcclxuICAgICAgelNlZy5pbnNlcnRQYXJhbWV0cmljR2VvbWV0cnkoXCJzY29uXCIsIFtcclxuICAgICAgICAuLi5Mb25nYW4uUG9pbnQuYWRkKHpQb2ludCwgTG9uZ2FuLlZlY3Rvci5tdWx0aXBseShheGlzLnpBeGlzLCAwLjUpKSxcclxuICAgICAgICAuLi5Mb25nYW4uVmVjdG9yLm11bHRpcGx5KGF4aXMuekF4aXMsIC0xKSxcclxuICAgICAgICAwLjUsXHJcbiAgICAgICAgMC4yLFxyXG4gICAgICBdKTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgbWF0cml4ID0gTG9uZ2FuLk1hdHJpeDQuaWRlbnRpdHkoKTtcclxuICAgIG1hdHJpeCA9IExvbmdhbi5NYXRyaXg0Lm11bHRpcGx5KG1hdHJpeCwgdHJhbnNsYXRlTWF0cml4KTtcclxuICAgIG1hdHJpeCA9IExvbmdhbi5NYXRyaXg0Lm11bHRpcGx5KG1hdHJpeCwgc2NhbGVNYXRyaXgpO1xyXG4gICAgdGhpcy5heGlzU2VnLm1vZGVsbGluZ01hdHJpeC5zZXQobWF0cml4KTtcclxuICB9XHJcblxyXG4gIGRyYXdGaXhpdHkoKSB7XHJcbiAgICBpZiAoIXRoaXMuY2hlY2tCdXNpbmVzc1N0YXRlSXNBY3RpdmUoKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgdmlld2VyID0gUHJvY2Vzcy5hY3RpdmVQcm9jZXNzLmFjdGl2ZVZpZXdlcjtcclxuICAgIGxldCBpcm8gPSB2aWV3ZXIuZmluZEluc3RhbmNlT2JqZWN0KHRoaXMpO1xyXG4gICAgaWYgKGlybyAmJiAhaXJvLnZpc2libGUpIHtcclxuICAgICAgLy8gdGhpcy5pc0RyYXdGaXhpdHkgPSBmYWxzZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBwb2ludCA9IHZpZXdlci53b3JsZFBvaW50VG9QaXhlbFBvaW50KFtcclxuICAgICAgbmV3IEZsb2F0NjRBcnJheSh0aGlzLmdldENlbnRlcigpKSxcclxuICAgIF0pWzBdO1xyXG5cclxuICAgIGlmICh0aGlzLmZpeGl0eVRleHQpIHtcclxuICAgICAgdGhpcy5maXhpdHlUZXh0Lm1vdmUocG9pbnRbMF0gKyAxLCBwb2ludFsxXSArIDEpO1xyXG4gICAgICB0aGlzLmZpeGl0eVRleHQuYXR0cihcImZvbnQtc2l6ZVwiLCBEZXNpZ25CYXNlT2JqZWN0LmZvbnRTaXplKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBkcmF3ID0gU3ZnRHJhdy5nZXRJbnN0YW5jZSh2aWV3ZXIuY29udGFpbmVyLmlkKS5kcmF3O1xyXG4gICAgICBpZiAoIXRoaXMuX2dyb3VwKSB7XHJcbiAgICAgICAgdGhpcy5fZ3JvdXAgPSBkcmF3Lmdyb3VwKCk7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IGZpeGl0eSA9IHRoaXMuZ2V0Rml4aXR5KCk7XHJcbiAgICAgIGlmIChmaXhpdHkpIHtcclxuICAgICAgICB0aGlzLmZpeGl0eVRleHQgPSBkcmF3XHJcbiAgICAgICAgICAudGV4dChmaXhpdHkpXHJcbiAgICAgICAgICAuZm9udCh7IGZpbGw6IE9iamVjdENvbG9yLm1lbWJlckxhYmVsQ29sb3IgfSlcclxuICAgICAgICAgIC5hdHRyKFwiZm9udC1zaXplXCIsIERlc2lnbkJhc2VPYmplY3QuZm9udFNpemUpXHJcbiAgICAgICAgICAubW92ZShwb2ludFswXSArIDEsIHBvaW50WzFdICsgMSk7XHJcbiAgICAgICAgdGhpcy5fZ3JvdXAuYWRkKHRoaXMuZml4aXR5VGV4dCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRyYXdMYWJlbChwb3NpdGlvbjogW251bWJlciwgbnVtYmVyXSkge1xyXG4gICAgaWYgKCF0aGlzLmNoZWNrQnVzaW5lc3NTdGF0ZUlzQWN0aXZlKCkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IHZpZXdlciA9IFByb2Nlc3MuYWN0aXZlUHJvY2Vzcy5hY3RpdmVWaWV3ZXI7XHJcbiAgICBsZXQgaXJvID0gdmlld2VyLmZpbmRJbnN0YW5jZU9iamVjdCh0aGlzKTtcclxuICAgIGlmIChpcm8gJiYgIWlyby52aXNpYmxlKSB7XHJcbiAgICAgIHRoaXMuaXNEcmF3TGFiZWwgPSBmYWxzZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCB4ID0gcG9zaXRpb25bMF07XHJcbiAgICBsZXQgeSA9IHBvc2l0aW9uWzFdO1xyXG4gICAgaWYgKHRoaXMubGFiZWxSZWN0ICYmIHRoaXMubGFiZWxUZXh0KSB7XHJcbiAgICAgIHRoaXMubGFiZWxSZWN0Lm1vdmUoeCwgeSAtIDIwKTtcclxuICAgICAgdGhpcy5sYWJlbFRleHQubW92ZSh4ICsgNSwgeSAtIDE4KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBkcmF3ID0gU3ZnRHJhdy5nZXRJbnN0YW5jZSh2aWV3ZXIuY29udGFpbmVyLmlkKS5kcmF3O1xyXG5cclxuICAgICAgaWYgKCF0aGlzLl9ncm91cCkge1xyXG4gICAgICAgIHRoaXMuX2dyb3VwID0gZHJhdy5ncm91cCgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBsZXQgbmFtZSA9IHRoaXMubmFtZTtcclxuICAgICAgbGV0IGdycCA9IHRoaXMuZ3J1cCA/IHRoaXMuZ3J1cC5uYW1lIDogXCJcIjtcclxuICAgICAgbGV0IGZsb29kaW5nID0gdGhpcy5mbG9vZENvbmRpdGlvbiA/IHRoaXMuZmxvb2RDb25kaXRpb24gOiBcIk5cIjtcclxuICAgICAgbGV0IGxlbmd0aCA9IE51bWJlcih0aGlzLmdldE1lbWJlckxlbmd0aCgpLnRvRml4ZWQoMykpO1xyXG4gICAgICBsZXQga3kgPSBcIlwiO1xyXG4gICAgICBsZXQga3ogPSBcIlwiO1xyXG5cclxuICAgICAgaWYgKHRoaXMua09yTE9wdGlvbiAmJiB0aGlzLmtPckxPcHRpb24gPT09IFwiTFwiKSB7XHJcbiAgICAgICAga3kgPSB0aGlzLmtGYWN0b3JfS1lcclxuICAgICAgICAgID8gKE51bWJlcih0aGlzLmtGYWN0b3JfS1kpIC8gbGVuZ3RoKS50b0ZpeGVkKDEpXHJcbiAgICAgICAgICA6IFwiMS4wXCI7XHJcbiAgICAgICAga3ogPSB0aGlzLmtGYWN0b3JfS1pcclxuICAgICAgICAgID8gKE51bWJlcih0aGlzLmtGYWN0b3JfS1opIC8gbGVuZ3RoKS50b0ZpeGVkKDEpXHJcbiAgICAgICAgICA6IFwiMS4wXCI7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAga3kgPSB0aGlzLmtGYWN0b3JfS1kgPyBOdW1iZXIodGhpcy5rRmFjdG9yX0tZKS50b0ZpeGVkKDEpIDogXCIxLjBcIjtcclxuICAgICAgICBreiA9IHRoaXMua0ZhY3Rvcl9LWiA/IE51bWJlcih0aGlzLmtGYWN0b3JfS1opLnRvRml4ZWQoMSkgOiBcIjEuMFwiO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCByZWxlYXNlQSA9IHRoaXMucmVsZWFzZV9BO1xyXG4gICAgICBsZXQgcmVsZWFzZUIgPSB0aGlzLnJlbGVhc2VfQjtcclxuXHJcbiAgICAgIGxldCB0ZXh0V2lkdGggPSBNYXRoLm1heChuYW1lLmxlbmd0aCwgZ3JwLmxlbmd0aCwgZmxvb2RpbmcubGVuZ3RoKSAqIDE3O1xyXG4gICAgICB0ZXh0V2lkdGggPSB0ZXh0V2lkdGggPiAxMDAgPyB0ZXh0V2lkdGggOiAxMDA7XHJcblxyXG4gICAgICBsZXQgcmVjdCA9IGRyYXdcclxuICAgICAgICAucmVjdCh0ZXh0V2lkdGgsIDEzMClcclxuICAgICAgICAucmFkaXVzKDIpXHJcbiAgICAgICAgLmZpbGwoXCIjRkZGRkUxXCIpXHJcbiAgICAgICAgLy8gLnN0cm9rZSh7IGNvbG9yOiBcIiNmZmZcIiwgd2lkdGg6IDEgfSlcclxuICAgICAgICAubW92ZSh4LCB5IC0gMjApXHJcbiAgICAgICAgLmF0dHIoXCJzdHlsZVwiLCBgcG9pbnRlci1ldmVudHM6IG5vbmV9YCk7XHJcblxyXG4gICAgICBpZiAodGhpcy5rT3JMT3B0aW9uICYmIHRoaXMua09yTE9wdGlvbiA9PT0gXCJMXCIpIHtcclxuICAgICAgICBsZXQgdGV4dCA9IGRyYXdcclxuICAgICAgICAgIC50ZXh0KChhZGQpID0+IHtcclxuICAgICAgICAgICAgYWRkLnRzcGFuKGBNZW06JHtuYW1lfWApLm5ld0xpbmUoKTtcclxuICAgICAgICAgICAgYWRkLnRzcGFuKGBHcnA6JHtncnB9YCkubmV3TGluZSgpO1xyXG4gICAgICAgICAgICBhZGQudHNwYW4oYEZsb29kaW5nOiR7Zmxvb2Rpbmd9YCkubmV3TGluZSgpO1xyXG4gICAgICAgICAgICBhZGQudHNwYW4oYExlbjoke2xlbmd0aCArIFwibVwifWApLm5ld0xpbmUoKTtcclxuICAgICAgICAgICAgYWRkLnRzcGFuKGBBUmVsZWFzZToke3JlbGVhc2VBfWApLm5ld0xpbmUoKTtcclxuICAgICAgICAgICAgYWRkLnRzcGFuKGBCUmVsZWFzZToke3JlbGVhc2VCfWApLm5ld0xpbmUoKTtcclxuICAgICAgICAgICAgYWRkLnRzcGFuKGBMWToke2t5fWApLm5ld0xpbmUoKTtcclxuICAgICAgICAgICAgYWRkLnRzcGFuKGBMWjoke2t6fWApLm5ld0xpbmUoKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAuZm9udCh7IGZpbGw6IFwiIzAwMFwiIH0pXHJcbiAgICAgICAgICAuYXR0cihcImZvbnQtc2l6ZVwiLCAxMilcclxuICAgICAgICAgIC5tb3ZlKHggKyA1LCB5IC0gMTgpO1xyXG4gICAgICAgIHRoaXMuX2dyb3VwLmFkZChyZWN0KS5hZGQodGV4dCkuZnJvbnQoKTtcclxuICAgICAgICB0aGlzLmxhYmVsUmVjdCA9IHJlY3Q7XHJcbiAgICAgICAgdGhpcy5sYWJlbFRleHQgPSB0ZXh0O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxldCB0ZXh0ID0gZHJhd1xyXG4gICAgICAgICAgLnRleHQoKGFkZCkgPT4ge1xyXG4gICAgICAgICAgICBhZGQudHNwYW4oYE1lbToke25hbWV9YCkubmV3TGluZSgpO1xyXG4gICAgICAgICAgICBhZGQudHNwYW4oYEdycDoke2dycH1gKS5uZXdMaW5lKCk7XHJcbiAgICAgICAgICAgIGFkZC50c3BhbihgRmxvb2Rpbmc6JHtmbG9vZGluZ31gKS5uZXdMaW5lKCk7XHJcbiAgICAgICAgICAgIGFkZC50c3BhbihgTGVuOiR7bGVuZ3RoICsgXCJtXCJ9YCkubmV3TGluZSgpO1xyXG4gICAgICAgICAgICBhZGQudHNwYW4oYEFSZWxlYXNlOiR7cmVsZWFzZUF9YCkubmV3TGluZSgpO1xyXG4gICAgICAgICAgICBhZGQudHNwYW4oYEJSZWxlYXNlOiR7cmVsZWFzZUJ9YCkubmV3TGluZSgpO1xyXG4gICAgICAgICAgICBhZGQudHNwYW4oYEtZOiR7a3l9YCkubmV3TGluZSgpO1xyXG4gICAgICAgICAgICBhZGQudHNwYW4oYEtaOiR7a3p9YCkubmV3TGluZSgpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5mb250KHsgZmlsbDogXCIjMDAwXCIgfSlcclxuICAgICAgICAgIC5hdHRyKFwiZm9udC1zaXplXCIsIDEyKVxyXG4gICAgICAgICAgLm1vdmUoeCArIDUsIHkgLSAxOCk7XHJcbiAgICAgICAgdGhpcy5fZ3JvdXAuYWRkKHJlY3QpLmFkZCh0ZXh0KS5mcm9udCgpO1xyXG4gICAgICAgIHRoaXMubGFiZWxSZWN0ID0gcmVjdDtcclxuICAgICAgICB0aGlzLmxhYmVsVGV4dCA9IHRleHQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiuoeeul+adhuS7tuWxgOmDqOWdkOagh+ezuy5cclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIGdldExvY2FsQXhpcygpIHtcclxuICAgIGxldCB4QXhpcyA9IHRoaXMuZ2V0VmVjdG9yKCk7XHJcbiAgICBMb25nYW4uVmVjdG9yLm5vcm1hbGl6ZSh4QXhpcyk7XHJcblxyXG4gICAgbGV0IHlBeGlzID0gbmV3IEZsb2F0MzJBcnJheShbMCwgMSwgMF0pO1xyXG4gICAgbGV0IHpBeGlzID0gbmV3IEZsb2F0MzJBcnJheShbMCwgMCwgMV0pO1xyXG4gICAgbGV0IHdvcmxkWkF4aXMgPSBuZXcgRmxvYXQzMkFycmF5KFswLCAwLCAxXSk7XHJcbiAgICBsZXQgd29ybGRNWkF4aXMgPSBuZXcgRmxvYXQzMkFycmF5KFswLCAwLCAtMV0pO1xyXG4gICAgaWYgKExvbmdhbi5HZW9tZXRyeU9wZXJhdG9ycy5zYW1lVmVjdG9yKHhBeGlzLCB3b3JsZFpBeGlzKSkge1xyXG4gICAgICAvLyDnq5bnm7TlkJHkuIrmnYbku7ZcclxuICAgICAgekF4aXMgPSBuZXcgRmxvYXQzMkFycmF5KFswLCAxLCAwXSk7XHJcbiAgICAgIHlBeGlzID0gTG9uZ2FuLlZlY3Rvci5jcm9zcyh6QXhpcywgeEF4aXMpO1xyXG4gICAgICBMb25nYW4uVmVjdG9yLm5vcm1hbGl6ZSh5QXhpcyk7XHJcbiAgICB9IGVsc2UgaWYgKExvbmdhbi5HZW9tZXRyeU9wZXJhdG9ycy5zYW1lVmVjdG9yKHhBeGlzLCB3b3JsZE1aQXhpcykpIHtcclxuICAgICAgLy8g56uW55u05ZCR5LiL5p2G5Lu2XHJcbiAgICAgIHpBeGlzID0gbmV3IEZsb2F0MzJBcnJheShbMCwgMSwgMF0pO1xyXG4gICAgICB5QXhpcyA9IExvbmdhbi5WZWN0b3IuY3Jvc3MoekF4aXMsIHhBeGlzKTtcclxuICAgICAgTG9uZ2FuLlZlY3Rvci5ub3JtYWxpemUoeUF4aXMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8g6Z2e56uW55u05p2G5Lu2LlxyXG4gICAgICB5QXhpcyA9IExvbmdhbi5WZWN0b3IuY3Jvc3Mod29ybGRaQXhpcywgeEF4aXMpO1xyXG4gICAgICBMb25nYW4uVmVjdG9yLm5vcm1hbGl6ZSh5QXhpcyk7XHJcbiAgICAgIHpBeGlzID0gTG9uZ2FuLlZlY3Rvci5jcm9zcyh4QXhpcywgeUF4aXMpO1xyXG4gICAgICBMb25nYW4uVmVjdG9yLm5vcm1hbGl6ZSh6QXhpcyk7XHJcbiAgICAgIGlmIChMb25nYW4uVmVjdG9yLmFuZ2xlKHpBeGlzLCB3b3JsZFpBeGlzKSA+IE1hdGguUEkgLyAyKSB7XHJcbiAgICAgICAgekF4aXMgPSBMb25nYW4uVmVjdG9yLm11bHRpcGx5KHpBeGlzLCAtMSk7XHJcbiAgICAgIH1cclxuICAgICAgTG9uZ2FuLlZlY3Rvci5ub3JtYWxpemUoekF4aXMpO1xyXG4gICAgICB5QXhpcyA9IExvbmdhbi5WZWN0b3IuY3Jvc3MoekF4aXMsIHhBeGlzKTtcclxuICAgICAgTG9uZ2FuLlZlY3Rvci5ub3JtYWxpemUoeUF4aXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBvcmlnaW4gPSBuZXcgRmxvYXQzMkFycmF5KHRoaXMuZ2V0U3RhcnRQb3NpdGlvbigpKTtcclxuICAgIGxldCBjaG9yZEFuZ2xlID0gKHRoaXMuY2hvcmRBbmdsZSAvIDE4MCkgKiBNYXRoLlBJO1xyXG4gICAgbGV0IG1heHRyaXggPSBMb25nYW4uTWF0cml4NC5yb3RhdGVCeUF4aXMob3JpZ2luLCB4QXhpcywgY2hvcmRBbmdsZSk7XHJcbiAgICBsZXQgbmV3WUF4aXMgPSBMb25nYW4uTWF0cml4NC5tdWx0aXBseVZlY3RvcihtYXh0cml4LCB5QXhpcyk7XHJcbiAgICBMb25nYW4uVmVjdG9yLm5vcm1hbGl6ZShuZXdZQXhpcyk7XHJcbiAgICBsZXQgbmV3WkF4aXMgPSBMb25nYW4uTWF0cml4NC5tdWx0aXBseVZlY3RvcihtYXh0cml4LCB6QXhpcyk7XHJcbiAgICBMb25nYW4uVmVjdG9yLm5vcm1hbGl6ZShuZXdaQXhpcyk7XHJcblxyXG4gICAgeUF4aXMgPSBuZXdZQXhpcztcclxuICAgIHpBeGlzID0gbmV3WkF4aXM7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgeEF4aXMsXHJcbiAgICAgIHlBeGlzLFxyXG4gICAgICB6QXhpcyxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXRDZW50ZXIoKSB7XHJcbiAgICBsZXQgc3RhcnRQb3MgPSB0aGlzLmdldFN0YXJ0UG9zaXRpb24oKTtcclxuICAgIGxldCBlbmRQb3MgPSB0aGlzLmdldEVuZFBvc2l0aW9uKCk7XHJcblxyXG4gICAgcmV0dXJuIG5ldyBGbG9hdDMyQXJyYXkoW1xyXG4gICAgICAoc3RhcnRQb3NbMF0gKyBlbmRQb3NbMF0pIC8gMixcclxuICAgICAgKHN0YXJ0UG9zWzFdICsgZW5kUG9zWzFdKSAvIDIsXHJcbiAgICAgIChzdGFydFBvc1syXSArIGVuZFBvc1syXSkgLyAyLFxyXG4gICAgXSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDorqHnrpfmnYbku7bkuKTkuKrnqbrpl7TngrnlvaLmiJDnmoTlsYDpg6jlnZDmoIfns7vvvIznlKjkuo7orqHnrpflsYDpg6jlgY/lv4MuKOS4jeW4puadhuS7tuWBj+W/gylcclxuICAgKi9cclxuICBnZXRTdGFydEVuZExvY2FsQXhpcygpIHtcclxuICAgIGxldCB4QXhpcyA9IExvbmdhbi5Qb2ludC5zdWJ0cmFjdChcclxuICAgICAgbmV3IEZsb2F0MzJBcnJheSh0aGlzLmVuZC5wb3NpdGlvbiksXHJcbiAgICAgIG5ldyBGbG9hdDMyQXJyYXkodGhpcy5zdGFydC5wb3NpdGlvbilcclxuICAgICk7XHJcbiAgICBMb25nYW4uVmVjdG9yLm5vcm1hbGl6ZSh4QXhpcyk7XHJcblxyXG4gICAgbGV0IHlBeGlzID0gbmV3IEZsb2F0MzJBcnJheShbMCwgMSwgMF0pO1xyXG4gICAgbGV0IHpBeGlzID0gbmV3IEZsb2F0MzJBcnJheShbMCwgMCwgMV0pO1xyXG4gICAgbGV0IHdvcmxkWkF4aXMgPSBuZXcgRmxvYXQzMkFycmF5KFswLCAwLCAxXSk7XHJcbiAgICBsZXQgd29ybGRNWkF4aXMgPSBuZXcgRmxvYXQzMkFycmF5KFswLCAwLCAtMV0pO1xyXG4gICAgaWYgKExvbmdhbi5HZW9tZXRyeU9wZXJhdG9ycy5zYW1lVmVjdG9yKHhBeGlzLCB3b3JsZFpBeGlzKSkge1xyXG4gICAgICAvLyDnq5bnm7TmnYbku7ZcclxuICAgICAgekF4aXMgPSBuZXcgRmxvYXQzMkFycmF5KFswLCAxLCAwXSk7XHJcbiAgICAgIHlBeGlzID0gTG9uZ2FuLlZlY3Rvci5jcm9zcyh6QXhpcywgeEF4aXMpO1xyXG4gICAgICBMb25nYW4uVmVjdG9yLm5vcm1hbGl6ZSh5QXhpcyk7XHJcbiAgICB9IGVsc2UgaWYgKExvbmdhbi5HZW9tZXRyeU9wZXJhdG9ycy5zYW1lVmVjdG9yKHhBeGlzLCB3b3JsZE1aQXhpcykpIHtcclxuICAgICAgLy8g56uW55u05p2G5Lu2XHJcbiAgICAgIHpBeGlzID0gbmV3IEZsb2F0MzJBcnJheShbMCwgMSwgMF0pO1xyXG4gICAgICB5QXhpcyA9IExvbmdhbi5WZWN0b3IuY3Jvc3MoekF4aXMsIHhBeGlzKTtcclxuICAgICAgTG9uZ2FuLlZlY3Rvci5ub3JtYWxpemUoeUF4aXMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8g6Z2e56uW55u05p2G5Lu2LlxyXG4gICAgICB5QXhpcyA9IExvbmdhbi5WZWN0b3IuY3Jvc3Mod29ybGRaQXhpcywgeEF4aXMpO1xyXG4gICAgICBMb25nYW4uVmVjdG9yLm5vcm1hbGl6ZSh5QXhpcyk7XHJcbiAgICAgIHpBeGlzID0gTG9uZ2FuLlZlY3Rvci5jcm9zcyh4QXhpcywgeUF4aXMpO1xyXG4gICAgICBpZiAoTG9uZ2FuLlZlY3Rvci5hbmdsZSh6QXhpcywgd29ybGRaQXhpcykgPiBNYXRoLlBJIC8gMikge1xyXG4gICAgICAgIHpBeGlzID0gTG9uZ2FuLlZlY3Rvci5tdWx0aXBseSh6QXhpcywgLTEpO1xyXG4gICAgICB9XHJcbiAgICAgIExvbmdhbi5WZWN0b3Iubm9ybWFsaXplKHpBeGlzKTtcclxuICAgICAgeUF4aXMgPSBMb25nYW4uVmVjdG9yLmNyb3NzKHpBeGlzLCB4QXhpcyk7XHJcbiAgICAgIExvbmdhbi5WZWN0b3Iubm9ybWFsaXplKHlBeGlzKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB4QXhpcyxcclxuICAgICAgeUF4aXMsXHJcbiAgICAgIHpBeGlzLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8vIOi/lOWbnuadhuerr+mHiuaUvueKtuaAgVxyXG4gIGdldEZpeGl0eSgpIHtcclxuICAgIGxldCBzdGFydEZpeGl0eSA9IHRoaXMucmVsZWFzZV9BO1xyXG4gICAgbGV0IGVuZEZpeGl0eSA9IHRoaXMucmVsZWFzZV9CO1xyXG4gICAgcmV0dXJuIHN0YXJ0Rml4aXR5ICYmIGVuZEZpeGl0eSA/IHN0YXJ0Rml4aXR5ICsgXCItXCIgKyBlbmRGaXhpdHkgOiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gY29sb3IgcuOAgWfjgIFiKDI1NSwyNTUsMjU1KVxyXG4gICAqIEBwYXJhbSB0cmFuc3BhcmVuY3kgMC0xXHJcbiAgICovXHJcbiAgc2V0Q29sb3IoY29sb3I6IG51bWJlcltdLCB0cmFuc3BhcmVuY3k6IG51bWJlcikge1xyXG4gICAgdGhpcy5zZWdtZW50LmNvbG9yLnNldEZhY2UoY29sb3IuY29uY2F0KFt0cmFuc3BhcmVuY3ldKSk7XHJcbiAgICB0aGlzLnNlZ21lbnQuY29sb3Iuc2V0TGluZShjb2xvci5jb25jYXQoW3RyYW5zcGFyZW5jeV0pKTtcclxuICB9XHJcblxyXG4gIHN0YXJ0T2Zmc2V0Q29tcGFyZShvZmZzZXQ6IG51bWJlcltdKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgaXNTYW1lID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLnN0YXJ0T2Zmc2V0ICYmIG9mZnNldCkge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc3RhcnRPZmZzZXQubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAoTnVtYmVyKHRoaXMuc3RhcnRPZmZzZXRbaV0pICE9PSBOdW1iZXIob2Zmc2V0W2ldKSkge1xyXG4gICAgICAgICAgaXNTYW1lID0gZmFsc2U7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoIXRoaXMuc3RhcnRPZmZzZXQgJiYgIW9mZnNldCkge1xyXG4gICAgICBpc1NhbWUgPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaXNTYW1lID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGlzU2FtZTtcclxuICB9XHJcblxyXG4gIGVuZE9mZnNldENvbXBhcmUob2Zmc2V0OiBudW1iZXJbXSk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IGlzU2FtZSA9IHRydWU7XHJcbiAgICBpZiAob2Zmc2V0ICYmIHRoaXMuZW5kT2Zmc2V0KSB7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5lbmRPZmZzZXQubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAoTnVtYmVyKHRoaXMuZW5kT2Zmc2V0W2ldKSAhPT0gTnVtYmVyKG9mZnNldFtpXSkpIHtcclxuICAgICAgICAgIGlzU2FtZSA9IGZhbHNlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmVuZE9mZnNldCAmJiAhb2Zmc2V0KSB7XHJcbiAgICAgIGlzU2FtZSA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpc1NhbWUgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaXNTYW1lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGRpc3Bvc2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNsZWFyU3ZnKCk7XHJcbiAgICBzdXBlci5kaXNwb3NlKCk7XHJcbiAgfVxyXG5cclxuICB0ZW1wRGVsZXRlKHZpZXdlcjogVmlld2VyKSB7XHJcbiAgICAvLyDku47nu4TkuK3liKDpmaQuXHJcbiAgICBsZXQgY29tcG9uZW50R3JvdXBzID0gdmlld2VyLnByb2Nlc3MuZmluZFJlbmRlck9iamVjdEJ5TmFtZShcclxuICAgICAgXCLmnoTku7bliIbnu4TliIboibJcIlxyXG4gICAgKSBhcyBEZXNpZ25CYXNlT2JqZWN0O1xyXG4gICAgaWYgKGNvbXBvbmVudEdyb3Vwcykge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbXBvbmVudEdyb3Vwcy5jaGlsZE9iamVjdHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgb2JqID0gY29tcG9uZW50R3JvdXBzLmNoaWxkT2JqZWN0c1tcclxuICAgICAgICAgIGlcclxuICAgICAgICBdIGFzIENvbG9yRGl2Q29tcG9uZW50R3JvdXBPYmplY3Q7XHJcblxyXG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgb2JqLnJlZmVyY2VuTWVtYmVySWRzLmNvdW50KCk7IGorKykge1xyXG4gICAgICAgICAgaWYgKG9iai5yZWZlcmNlbk1lbWJlcklkcy5pdGVtc1tqXSA9PT0gdGhpcy5pZCkge1xyXG4gICAgICAgICAgICBvYmoucmVmZXJjZW5NZW1iZXJJZHMucmVtb3ZlKHRoaXMuaWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIOWIoOmZpOagh+etvi5cclxuICAgIHRoaXMuaXNEcmF3QXhpcyA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc0RyYXdMYWJlbCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc0RyYXdGaXhpdHkgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNEcmF3TGFiZWwgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNEcmF3TnVtYmVyID0gZmFsc2U7XHJcblxyXG4gICAgc3VwZXIudGVtcERlbGV0ZSh2aWV3ZXIpO1xyXG4gIH1cclxuXHJcbiAgZ2V0R3J1cFNlZ21lbnRMZW5ndGgoc2VnbWVudEluZGV4OiBudW1iZXIpIHtcclxuICAgIGxldCByZXN1bHQgPSAtMTtcclxuICAgIGlmICh0aGlzLmdydXApIHtcclxuICAgICAgbGV0IHNlZ21lbnRMZW4gPSB0aGlzLmdydXAuZ3J1cFNlZ21lbnRzW3NlZ21lbnRJbmRleF0uc2VnbWVudExlbmd0aDtcclxuICAgICAgaWYgKCFzZWdtZW50TGVuKSB7XHJcbiAgICAgICAgc2VnbWVudExlbiA9IHRoaXMuZ2V0VW5kZWZpbmVTZWdtZW50TGVuZ3RoKCk7XHJcbiAgICAgIH1cclxuICAgICAgcmVzdWx0ID0gc2VnbWVudExlbjtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgZ2V0R3J1cFNlZ21lbnRCeUxlbmd0aChkaXN0YW5jZTogbnVtYmVyKSB7XHJcbiAgICBsZXQgaW5kZXggPSAtMTtcclxuICAgIGxldCBsZW5TdW0gPSAwO1xyXG4gICAgaWYgKHRoaXMuZ3J1cCkge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZ3J1cC5ncnVwU2VnbWVudHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgc2VnbWVudExlbiA9IHRoaXMuZ3J1cC5ncnVwU2VnbWVudHNbaV0uc2VnbWVudExlbmd0aDtcclxuICAgICAgICBpZiAoIXNlZ21lbnRMZW4pIHtcclxuICAgICAgICAgIHNlZ21lbnRMZW4gPSB0aGlzLmdldFVuZGVmaW5lU2VnbWVudExlbmd0aCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZW5TdW0gKz0gc2VnbWVudExlbjtcclxuICAgICAgICBpZiAobGVuU3VtID49IGRpc3RhbmNlKSB7XHJcbiAgICAgICAgICBpbmRleCA9IGk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaW5kZXg7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICog5p2G5Lu26ZmE5Yqg5bGe5oCn57uEXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTWVtYmVyQWRkaXRpb25hbFByb3BlcnR5IHtcclxuICAvLyDliJvlu7rmnYbku7bml7bmmK/lkKbkvb/nlKjor6XlsZ7mgKcuXHJcbiAgdXNlRGVmYXVsdFByb3BlcnR5ID0gZmFsc2U7XHJcbiAgLy8g5bGA6YOo5Z2Q5qCH57O7WuaWueWQkeWPguiAg+eCuVxyXG4gIGxvY2FsWkF4aXM6IHN0cmluZyA9IG51bGw7XHJcbiAgLy8g5oiq6Z2i5bym6KeS44CBXHJcbiAgY2hvcmRBbmdsZTogbnVtYmVyID0gbnVsbDtcclxuICAvLyAvLyDlp4vnq6/oh6rnlLHluqbph4rmlL5cclxuICByZWxlYXNlX0E6IHN0cmluZyA9IFwiXCI7XHJcbiAgLy8gLy8g57uI56uv6Ieq55Sx5bqm6YeK5pS+XHJcbiAgcmVsZWFzZV9COiBzdHJpbmcgPSBcIlwiO1xyXG4gIC8vIOW5s+Wdh+W8puadhuWkluW+hFxyXG4gIGF2Z0pvaW50VGhpY2tuZXNzOiBzdHJpbmcgPSBudWxsO1xyXG4gIC8vIOaYr+WQpuWFheawtFxyXG4gIGZsb29kQ29uZGl0aW9uOiBzdHJpbmcgPSBudWxsO1xyXG4gIC8vIOWxiOabsumVv+W6pumAiemhuVxyXG4gIGJ1Y2tpbmdPcHRpb246IHN0cmluZyA9IFwiXCI7XHJcbiAgLy8g5bGI5puyS1kvTFlcclxuICBrRmFjdG9yX0tZOiBzdHJpbmcgPSBudWxsO1xyXG4gIC8vIOWxiOabsktaL0xaXHJcbiAga0ZhY3Rvcl9LWjogc3RyaW5nID0gbnVsbDtcclxuICAvLyDlnIbnrqHliarliIfpnaLnp6/kv67mraPns7vmlbBcclxuICBzaGVhck1vZGlmaWVyOiBzdHJpbmcgPSBudWxsO1xyXG4gIC8vIOadkOaWmeWvhuW6plxyXG4gIGRlbnNpdHk6IHN0cmluZyA9IG51bGw7XHJcbiAgLy8g5Y2V5YWD5YiS5YiG5pWw6YeP5LiL6ZmQKGludClcclxuICB1Y1NlZ21lbnRzOiBzdHJpbmcgPSBudWxsO1xyXG4gIC8vIOmZhOWKoOi0qOmHj+acieaViOWkluW+hFxyXG4gIGVmZmVjdGl2ZURpYW1ldGVyOiBzdHJpbmcgPSBudWxsO1xyXG4gIC8vIOWni+err+WBj+W/gyhjbSlcclxuICBzdGFydE9mZnNldDogbnVtYmVyW10gPSBudWxsO1xyXG4gIC8vIOe7iOerr+WBj+W/gyhjbSlcclxuICBlbmRPZmZzZXQ6IG51bWJlcltdID0gbnVsbDtcclxuICAvLyDlgY/lv4PpgInpoblcclxuICBvZmZzZXRPcHRpb246IHN0cmluZyA9IG51bGw7XHJcblxyXG4gIG92ZXJyaWRlTG9jYWxaQXhpcyA9IGZhbHNlO1xyXG4gIG92ZXJyaWRlQ2hyb2RBbmdsZSA9IGZhbHNlO1xyXG4gIG92ZXJyaWRlUmVsZWFzZV9BID0gZmFsc2U7XHJcbiAgb3ZlcnJpZGVSZWxlYXNlX0IgPSBmYWxzZTtcclxuICBvdmVycmlkZUF2Z0pvaW50VGhpY2tuZXNzID0gZmFsc2U7XHJcbiAgb3ZlcnJpZGVGbG9vZENvbmRpdGlvbiA9IGZhbHNlO1xyXG4gIG92ZXJyaWRlQnVja2luZ09wdGlvbiA9IGZhbHNlO1xyXG4gIG92ZXJyaWRlS0ZhY3Rvcl9LWSA9IGZhbHNlO1xyXG4gIG92ZXJyaWRlS0ZhY3Rvcl9LWiA9IGZhbHNlO1xyXG4gIG92ZXJyaWRlU2hlYXJNb2RpZmllciA9IGZhbHNlO1xyXG4gIG92ZXJyaWRlRGVuc2l0eSA9IGZhbHNlO1xyXG4gIG92ZXJyaWRlVWNTZWdtZW50cyA9IGZhbHNlO1xyXG4gIG92ZXJyaWRlRWZmZWN0aXZlRGlhbWV0ZXIgPSBmYWxzZTtcclxuICBvdmVycmlkZU9mZnNldE9wdGlvbiA9IGZhbHNlO1xyXG4gIG92ZXJyaWRlU3RhcnRPZmZzZXQgPSBmYWxzZTtcclxuICBvdmVycmlkZUVuZE9mZnNldCA9IGZhbHNlO1xyXG5cclxuICAvLyBfaW5zdGFuY2U6IE1lbWJlckFkZGl0aW9uYWxQcm9wZXJ0eTtcclxuICBwdWJsaWMgc3RhdGljIGdldEluc3RhbmNlKCk6IE1lbWJlckFkZGl0aW9uYWxQcm9wZXJ0eSB7XHJcbiAgICBpZiAodGhpcy5faW5zdGFuY2UgPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLl9pbnN0YW5jZSA9IG5ldyBNZW1iZXJBZGRpdGlvbmFsUHJvcGVydHkoKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgX2luc3RhbmNlOiBNZW1iZXJBZGRpdGlvbmFsUHJvcGVydHk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge31cclxufVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUF3QkE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFBQTtBQTZYQTtBQUFBO0FBNVhBO0FBRUE7QUFDQTtBQUVBO0FBS0E7QUFHQTtBQUNBO0FBTUE7QUFDQTtBQUNBO0FBR0E7QUFFQTtBQUtBO0FBSUE7QUFJQTtBQUlBO0FBS0E7QUFJQTtBQUlBO0FBSUE7QUFLQTtBQUlBO0FBS0E7QUFHQTtBQVFBO0FBS0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBS0E7QUFPQTtBQUlBO0FBQ0E7QUFHQTtBQUVBO0FBQ0E7QUF3UUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFFQTtBQTdQQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUdBO0FBQ0E7Ozs7QUFFQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTs7OztBQUVBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBOzs7O0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7OztBQUVBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7Ozs7QUFFQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7Ozs7QUFFQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOzs7O0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTs7OztBQUVBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBR0E7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7Ozs7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFJQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUlBOztBQUVBO0FBQ0E7O0FBRUE7QUFNQTs7QUFFQTtBQU1BOzs7QUFHQTtBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUdBO0FBQ0E7QUFnQkE7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7O0FBS0E7O0FBRUE7Ozs7QUFFQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTs7QUFJQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7O0FBS0E7O0FBRUE7Ozs7QUFFQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUdBOztBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTs7QUFLQTs7QUFFQTs7OztBQUVBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOzs7QUFHQTs7OztBQUVBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBOzs7O0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7Ozs7QUFFQTtBQUNBO0FBRUE7QUFDQTs7QUFHQTtBQUNBOztBQUdBO0FBQ0E7O0FBR0E7QUFDQTs7QUFHQTtBQUNBOztBQUdBO0FBQ0E7O0FBR0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFHQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFJQTtBQUNBOztBQUdBO0FBQ0E7O0FBR0E7QUFDQTs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUdBO0FBQ0E7O0FBR0E7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFHQTtBQUVBO0FBRUE7QUFFQTtBQUVBO0FBRUE7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBSUE7QUFDQTs7QUFHQTtBQUNBOztBQUdBO0FBQ0E7O0FBR0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFHQTtBQUNBOztBQUdBO0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBR0E7QUFFQTtBQUVBO0FBRUE7QUFFQTtBQUVBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBR0E7QUFHQTtBQUdBO0FBR0E7QUFHQTtBQUlBO0FBR0E7QUFHQTtBQUdBO0FBR0E7QUFHQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFJQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBOzs7QUFJQTtBQUNBO0FBRUE7QUFDQTtBQUNBOztBQUdBO0FBQ0E7QUFDQTs7O0FBSUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOzs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7O0FBSUE7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFHQTtBQUNBO0FBQ0E7QUFFQTtBQUtBOztBQUVBOztBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUFLQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7O0FBQ0E7QUFJQTtBQUNBO0FBQ0E7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBTUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7O0FBR0E7QUFDQTs7QUFFQTtBQUdBO0FBRUE7QUFHQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFNQTtBQUNBO0FBQ0E7O0FBR0E7QUFJQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7OztBQUdBO0FBRUE7QUFDQTtBQUdBO0FBR0E7QUFXQTtBQUNBOztBQVFBO0FBR0E7QUFFQTtBQUNBOztBQUdBO0FBSUE7QUFJQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBS0E7QUFPQTtBQUNBO0FBQ0E7QUFDQTs7QUFLQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7OztBQUtBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFHQTtBQUNBO0FBQ0E7QUFDQTs7O0FBS0E7QUFDQTtBQUNBOzs7QUFTQTs7Ozs7QUFLQTtBQVFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQVlBO0FBRUE7QUFNQTtBQUNBO0FBQ0E7QUFFQTtBQU1BO0FBQ0E7QUFDQTtBQUVBO0FBTUE7QUFDQTtBQUNBO0FBRUE7QUFNQTtBQUNBO0FBQ0E7QUFFQTtBQU1BO0FBQ0E7QUFDQTtBQUVBO0FBTUE7QUFDQTtBQUNBO0FBRUE7QUFNQTtBQUNBO0FBQ0E7QUFFQTtBQU1BO0FBQ0E7QUFDQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFVQTtBQU1BO0FBQ0E7O0FBR0E7QUFPQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVNBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBRUE7QUFTQTtBQUNBO0FBR0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBS0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBS0E7QUFNQTtBQVFBO0FBU0E7QUFDQTtBQUdBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUtBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUtBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUtBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUtBO0FBTUE7QUFTQTtBQU1BO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBSUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBSUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBSUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBS0E7QUFNQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUlBO0FBQ0E7O0FBR0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUlBO0FBQ0E7QUFDQTtBQUNBOzs7QUFJQTtBQUNBO0FBQ0E7QUFDQTs7O0FBSUE7QUFDQTtBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQU9BO0FBT0E7QUFRQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUlBO0FBQ0E7OztBQUlBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUlBO0FBSUE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUlBO0FBQ0E7OztBQUlBO0FBQ0E7QUFNQTtBQUNBO0FBQ0E7QUFFQTtBQUlBO0FBRUE7QUFDQTtBQU1BO0FBQ0E7QUFDQTtBQUVBO0FBT0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUlBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFJQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7O0FBRUE7QUFFQTs7O0FBT0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTs7QUFHQTtBQUNBO0FBQ0E7QUFDQTs7QUFNQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBR0E7QUFDQTs7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFFQTtBQUtBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUdBO0FBQ0E7QUFDQTs7QUFJQTtBQUNBO0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUVBOztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBSUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUdBO0FBSUE7QUFJQTtBQUVBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBR0E7QUFFQTtBQUFBO0FBR0E7QUFDQTs7OztBQUlBO0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUVBOztBQUdBO0FBQ0E7QUFFQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBR0E7QUFFQTtBQUFBO0FBR0E7OztBQUdBO0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUVBOztBQUdBO0FBQ0E7QUFLQTtBQUNBO0FBS0E7QUFJQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUtBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFNQTtBQU1BOztBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBRUE7O0FBR0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUFBO0FBR0E7OztBQUdBO0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBOztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBUUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdBO0FBQ0E7QUFDQTs7O0FBR0E7QUFNQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFLQTtBQUtBO0FBQ0E7QUFJQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBOztBQUdBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7O0FBR0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTs7Ozs7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFHQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7OztBQUtBO0FBQ0E7QUEzNEVBO0FBQ0E7QUEyNEVBO0FBQUE7QUE3OUVBO0FBaytFQTtBQStEQTtBQTdEQTtBQUVBO0FBRUE7QUFFQTtBQUVBO0FBRUE7QUFFQTtBQUVBO0FBRUE7QUFFQTtBQUVBO0FBRUE7QUFFQTtBQUVBO0FBRUE7QUFFQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFZQTtBQVRBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBS0E7QUFBQTtBQWhFQTs7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./packages/caeDesign/src/gsDevFx/objects/caeObjects/memberObject.ts\n");
4177
+ eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\"), __webpack_require__(/*! gs-bim-air */ \"./node_modules/gs-bim-air/lib/BimAir.umd.min.js\"), __webpack_require__(/*! gs-ceec-design */ \"./packages/ceecDesign/src/index.ts\"), __webpack_require__(/*! ./jointObject */ \"./packages/caeDesign/src/gsDevFx/objects/caeObjects/jointObject.ts\"), __webpack_require__(/*! gs-ceec-design */ \"./packages/ceecDesign/src/index.ts\"), __webpack_require__(/*! ../../../caeCardEditor/caeCardObjects/cardMember */ \"./packages/caeDesign/src/caeCardEditor/caeCardObjects/cardMember.ts\"), __webpack_require__(/*! ../../../caeCardEditor/caeCardObjects/cardMemberOffsets */ \"./packages/caeDesign/src/caeCardEditor/caeCardObjects/cardMemberOffsets.ts\"), __webpack_require__(/*! gs-ceec-design */ \"./packages/ceecDesign/src/index.ts\"), __webpack_require__(/*! gs-ceec-design */ \"./packages/ceecDesign/src/index.ts\"), __webpack_require__(/*! ./objectColors */ \"./packages/caeDesign/src/gsDevFx/objects/caeObjects/objectColors.ts\"), __webpack_require__(/*! ../../../utility/utility */ \"./packages/caeDesign/src/utility/utility.ts\"), __webpack_require__(/*! ../../../gsDevFx/process */ \"./packages/caeDesign/src/gsDevFx/process.ts\")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, tslib_1, gs_bim_air_1, gs_ceec_design_1, jointObject_1, gs_ceec_design_2, cardMember_1, cardMemberOffsets_1, gs_ceec_design_3, gs_ceec_design_4, objectColors_1, utility_1, process_1) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.MemberAdditionalProperty = exports.MemberObject = exports.OffsetOptionType = exports.BarType = void 0;\n var BarType;\n (function (BarType) {\n BarType[BarType[\"Default\"] = 0] = \"Default\";\n BarType[BarType[\"StayBar\"] = 1] = \"StayBar\";\n BarType[BarType[\"ChordMember\"] = 2] = \"ChordMember\";\n })(BarType = exports.BarType || (exports.BarType = {}));\n var OffsetOptionType;\n (function (OffsetOptionType) {\n OffsetOptionType[\"None\"] = \"\";\n OffsetOptionType[\"World\"] = \"1\";\n OffsetOptionType[\"Local\"] = \"2\";\n })(OffsetOptionType = exports.OffsetOptionType || (exports.OffsetOptionType = {}));\n var MemberObject = function (_super) {\n tslib_1.__extends(MemberObject, _super);\n function MemberObject() {\n var _this = _super.call(this) || this;\n _this.typeName = \"MemberObject\";\n _this._start = null;\n _this._end = null;\n _this._grup = null;\n _this._offsetOption = \"\";\n _this._startOffset = [0, 0, 0];\n _this._endOffset = [0, 0, 0];\n _this.addData = \"\";\n _this.stressOutPut = \"\";\n _this.gapElementType = \"\";\n _this._release_A = \"\";\n _this._release_B = \"\";\n _this.chordAngle = null;\n _this.localZAxis = \"\";\n _this.floodCondition = \"\";\n _this.kOrLOption = \"\";\n _this.avgJointThickness = null;\n _this.kFactor_KY = \"\";\n _this.kFactor_KZ = \"\";\n _this.shearModifier = null;\n _this.density = null;\n _this.ucSegments = null;\n _this.effectiveDiameter = null;\n _this._additionalProperty = null;\n _this.startColor = null;\n _this.endColor = null;\n _this._isDrawSize = false;\n _this._isDrawNumber = false;\n _this._isDrawAxis = false;\n _this._isDrawFixity = false;\n _this._isDrawLabel = false;\n _this.sizeTexts = new Array();\n _this.segmentLengthCoeff = 1;\n _this.faceColor = null;\n _this.lineColor = null;\n _this.isXBracing = false;\n _this.divDistances = null;\n _this.divColors = null;\n _this.instanceTypes.add(\"main\", gs_ceec_design_4.InstanceDesignBaseObject.prototype);\n _this.isDrawSvg = true;\n _this.segment.color.setEdge([255, 255, 255, 1]);\n _this.segment.color.setLine(objectColors_1.ObjectColor.memberLineColor);\n if (!_this.faceColor) {\n _this.faceColor = objectColors_1.ObjectColor.memberFaceColor;\n }\n return _this;\n }\n Object.defineProperty(MemberObject.prototype, \"name\", {\n get: function get() {\n return this._name;\n },\n set: function set(value) {\n if (process_1.Process.activeProcess.nameMapMember.get(this.name)) {\n process_1.Process.activeProcess.nameMapMember.delete(this.name);\n process_1.Process.activeProcess.nameMapMember.set(value, this);\n }\n this._name = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MemberObject.prototype, \"release_A\", {\n get: function get() {\n return this._release_A;\n },\n set: function set(value) {\n this._release_A = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MemberObject.prototype, \"release_B\", {\n get: function get() {\n return this._release_B;\n },\n set: function set(value) {\n this._release_B = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MemberObject.prototype, \"additionalProperty\", {\n get: function get() {\n return this._additionalProperty;\n },\n set: function set(value) {\n this._additionalProperty = value;\n this.additionalPropertyActive();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MemberObject.prototype, \"isDrawSize\", {\n get: function get() {\n return this._isDrawSize;\n },\n set: function set(isDrawSize) {\n this._isDrawSize = isDrawSize;\n if (isDrawSize) {\n this.isDrawNumber = false;\n this.drawSize();\n } else {\n this.clearSizeTexts();\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MemberObject.prototype, \"isDrawNumber\", {\n get: function get() {\n return this._isDrawNumber;\n },\n set: function set(isDrawNumber) {\n this._isDrawNumber = isDrawNumber;\n if (isDrawNumber) {\n this.isDrawSize = false;\n this.drawNumber();\n } else {\n this.numberText && this.numberText.clear();\n this.numberText = null;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MemberObject.prototype, \"isDrawFixity\", {\n get: function get() {\n return this._isDrawFixity;\n },\n set: function set(isDrawFixity) {\n this._isDrawFixity = isDrawFixity;\n if (isDrawFixity) {\n this.drawFixity();\n } else {\n this.fixityText && this.fixityText.clear();\n this.fixityText = null;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MemberObject.prototype, \"isDrawAxis\", {\n get: function get() {\n return this._isDrawAxis;\n },\n set: function set(isDrawAxis) {\n this._isDrawAxis = isDrawAxis;\n if (isDrawAxis) {\n this.drawAxis();\n } else {\n if (this.axisSeg) {\n this.axisSeg.clearAll();\n this.axisSeg = null;\n }\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MemberObject.prototype, \"isDrawLabel\", {\n get: function get() {\n return this._isDrawLabel;\n },\n set: function set(isDrawLabel) {\n this._isDrawLabel = isDrawLabel;\n if (isDrawLabel) {} else {\n if (this.labelRect) {\n this.labelRect.remove();\n }\n this.labelRect = null;\n this.labelText && this.labelText.clear();\n this.labelText = null;\n }\n },\n enumerable: false,\n configurable: true\n });\n MemberObject.prototype.additionalPropertyActive = function () {\n var property = this.additionalProperty;\n if (property) {\n if (property.localZAxis && property.overrideLocalZAxis) {\n this.localZAxis = gs_bim_air_1.Longan.deepClone(property.localZAxis);\n }\n if (property.chordAngle && property.overrideChrodAngle) {\n this.chordAngle = gs_bim_air_1.Longan.deepClone(property.chordAngle);\n }\n if (property.release_A !== null && property.overrideRelease_A) {\n this.release_A = gs_bim_air_1.Longan.deepClone(property.release_A);\n }\n if (property.release_B !== null && property.overrideRelease_B) {\n this.release_B = gs_bim_air_1.Longan.deepClone(property.release_B);\n }\n if (property.buckingOption !== null && property.overrideBuckingOption) {\n this.kOrLOption = gs_bim_air_1.Longan.deepClone(property.buckingOption);\n }\n if (property.avgJointThickness !== null && property.overrideAvgJointThickness) {\n this.avgJointThickness = gs_bim_air_1.Longan.deepClone(property.avgJointThickness);\n }\n if (property.floodCondition !== null && property.overrideFloodCondition) {\n this.floodCondition = gs_bim_air_1.Longan.deepClone(property.floodCondition);\n }\n if (property.kFactor_KY !== null && property.overrideKFactor_KY) {\n this.kFactor_KY = gs_bim_air_1.Longan.deepClone(property.kFactor_KY);\n }\n if (property.kFactor_KZ !== null && property.overrideKFactor_KZ) {\n this.kFactor_KZ = gs_bim_air_1.Longan.deepClone(property.kFactor_KZ);\n }\n if (property.shearModifier !== null && property.overrideShearModifier) {\n this.shearModifier = gs_bim_air_1.Longan.deepClone(property.shearModifier);\n }\n if (property.density !== null && property.overrideDensity) {\n this.density = gs_bim_air_1.Longan.deepClone(property.density);\n }\n if (property.ucSegments !== null && property.overrideUcSegments) {\n this.ucSegments = gs_bim_air_1.Longan.deepClone(property.ucSegments);\n }\n if (property.effectiveDiameter !== null && property.overrideEffectiveDiameter) {\n this.effectiveDiameter = gs_bim_air_1.Longan.deepClone(property.effectiveDiameter);\n }\n if (property.offsetOption !== null && property.overrideOffsetOption) {\n this.offsetOption = gs_bim_air_1.Longan.deepClone(property.offsetOption);\n }\n if (property.startOffset && property.offsetOption && property.offsetOption !== \"0\" && property.overrideStartOffset) {\n this.startOffset = tslib_1.__spreadArray([], tslib_1.__read(property.startOffset), false);\n }\n if (property.endOffset && property.offsetOption && property.offsetOption !== \"0\" && property.overrideEndOffset) {\n this.endOffset = tslib_1.__spreadArray([], tslib_1.__read(property.endOffset), false);\n }\n }\n };\n MemberObject.prototype.toadditionalProperty = function () {\n var property = new MemberAdditionalProperty();\n if (this.localZAxis !== null) {\n property.localZAxis = this.localZAxis;\n }\n if (this.chordAngle !== null) {\n property.chordAngle = this.chordAngle;\n }\n if (this.release_A !== null) {\n property.release_A = this.release_A;\n }\n if (this.release_B !== null) {\n property.release_B = this.release_B;\n }\n if (this.avgJointThickness !== null) {\n property.avgJointThickness = this.avgJointThickness;\n }\n if (this.floodCondition !== null) {\n property.floodCondition = this.floodCondition;\n }\n if (this.kOrLOption !== null) {\n property.buckingOption = this.kOrLOption;\n }\n if (this.kFactor_KY !== null) {\n property.kFactor_KY = this.kFactor_KY;\n }\n if (this.kFactor_KZ !== null) {\n property.kFactor_KZ = this.kFactor_KZ;\n }\n if (this.shearModifier !== null) {\n property.shearModifier = this.shearModifier;\n }\n if (this.density !== null) {\n property.density = this.density;\n }\n if (this.ucSegments !== null) {\n property.ucSegments = this.ucSegments;\n }\n if (this.effectiveDiameter !== null) {\n property.effectiveDiameter = this.effectiveDiameter;\n }\n if (this.offsetOption !== null) {\n property.offsetOption = this.offsetOption;\n }\n if (this.startOffset !== null) {\n property.startOffset = this.startOffset;\n }\n if (this.endOffset !== null) {\n property.endOffset = this.endOffset;\n }\n return property;\n };\n Object.defineProperty(MemberObject.prototype, \"start\", {\n get: function get() {\n return this._start;\n },\n set: function set(value) {\n if (this._start instanceof jointObject_1.JointObject) {\n var list = process_1.Process.activeProcess.jointMapReleativeMembers.get(this._start);\n list.remove(this);\n }\n this._start = value;\n if (value instanceof jointObject_1.JointObject) {\n var list = process_1.Process.activeProcess.jointMapReleativeMembers.get(value);\n if (!list) {\n list = new gs_bim_air_1.Longan.List();\n process_1.Process.activeProcess.jointMapReleativeMembers.set(value, list);\n }\n list.add(this);\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MemberObject.prototype, \"end\", {\n get: function get() {\n return this._end;\n },\n set: function set(value) {\n if (this._end instanceof jointObject_1.JointObject) {\n process_1.Process.activeProcess.jointMapReleativeMembers.get(this._end).remove(this);\n }\n this._end = value;\n if (value instanceof jointObject_1.JointObject) {\n var list = process_1.Process.activeProcess.jointMapReleativeMembers.get(value);\n if (!list) {\n list = new gs_bim_air_1.Longan.List();\n process_1.Process.activeProcess.jointMapReleativeMembers.set(value, list);\n }\n list.add(this);\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MemberObject.prototype, \"grup\", {\n get: function get() {\n return this._grup;\n },\n set: function set(value) {\n if (this._grup) {\n var list = process_1.Process.activeProcess.grupMapReleativeMembers.get(this._grup);\n list.remove(this);\n }\n this._grup = value;\n if (value) {\n var list = process_1.Process.activeProcess.grupMapReleativeMembers.get(value);\n if (!list) {\n list = new gs_bim_air_1.Longan.List();\n process_1.Process.activeProcess.grupMapReleativeMembers.set(value, list);\n }\n list.add(this);\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MemberObject.prototype, \"offsetOption\", {\n get: function get() {\n return this._offsetOption;\n },\n set: function set(value) {\n this._offsetOption = value;\n if (!value) {\n if (this.startOffset) {\n this.startOffset = [0, 0, 0];\n }\n if (this.endOffset) {\n this.endOffset = [0, 0, 0];\n }\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MemberObject.prototype, \"startOffset\", {\n get: function get() {\n return this._startOffset;\n },\n set: function set(value) {\n this._startOffset = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MemberObject.prototype, \"endOffset\", {\n get: function get() {\n return this._endOffset;\n },\n set: function set(value) {\n this._endOffset = value;\n },\n enumerable: false,\n configurable: true\n });\n MemberObject.prototype.serialize = function () {\n var obj = _super.prototype.serialize.call(this);\n if (this.start) {\n obj.start = this.start.id;\n }\n if (this.end) {\n obj.end = this.end.id;\n }\n if (this.grup) {\n obj.grup = this.grup.id;\n }\n if (this.notNullAndNotUndefined(this.offsetOption)) {\n obj.offsetOption = this.offsetOption;\n }\n if (this.startOffset) {\n obj.startOffset = this.startOffset;\n }\n if (this.endOffset) {\n obj.endOffset = this.endOffset;\n }\n if (this.addData) {\n obj.addData = this.addData;\n }\n if (this.notNullAndNotUndefined(this.stressOutPut)) {\n obj.stressOutPut = this.stressOutPut;\n }\n if (this.notNullAndNotUndefined(this.gapElementType)) {\n obj.gapElementType = this.gapElementType;\n }\n if (this.notNullAndNotUndefined(this.release_A)) {\n obj.release_A = this.release_A;\n }\n if (this.notNullAndNotUndefined(this.release_B)) {\n obj.release_B = this.release_B;\n }\n if (this.notNullAndNotUndefined(this.chordAngle)) {\n obj.chordAngle = this.chordAngle;\n }\n if (this.notNullAndNotUndefined(this.localZAxis)) {\n obj.localZAxis = this.localZAxis;\n }\n if (this.notNullAndNotUndefined(this.floodCondition)) {\n obj.floodCondition = this.floodCondition;\n }\n if (this.notNullAndNotUndefined(this.kOrLOption)) {\n obj.kOrLOption = this.kOrLOption;\n }\n if (this.notNullAndNotUndefined(this.avgJointThickness)) {\n obj.avgJointThickness = this.avgJointThickness;\n }\n if (this.notNullAndNotUndefined(this.kFactor_KY)) {\n obj.kFactor_KY = this.kFactor_KY;\n }\n if (this.notNullAndNotUndefined(this.kFactor_KZ)) {\n obj.kFactor_KZ = this.kFactor_KZ;\n }\n if (this.notNullAndNotUndefined(this.shearModifier)) {\n obj.shearModifier = this.shearModifier;\n }\n if (this.notNullAndNotUndefined(this.ucSegments)) {\n obj.ucSegments = this.ucSegments;\n }\n if (this.notNullAndNotUndefined(this.effectiveDiameter)) {\n obj.effectiveDiameter = this.effectiveDiameter;\n }\n if (this.notNullAndNotUndefined(this.density)) {\n obj.density = this.density;\n }\n return obj;\n };\n MemberObject.prototype.deserialize = function (obj, pm) {\n if (obj.start) {\n var start = pm.referenceList.get(obj.start);\n if (start) {\n this.start = start;\n } else {\n this.start = obj.start;\n pm.needReferenceList.add(this);\n }\n }\n if (obj.end) {\n var end = pm.referenceList.get(obj.end);\n if (end) {\n this.end = end;\n } else {\n this.end = obj.end;\n pm.needReferenceList.add(this);\n }\n }\n if (obj.grup) {\n var grup = pm.referenceList.get(obj.grup);\n if (grup) {\n this.grup = grup;\n } else {\n this.grup = obj.grup;\n pm.needReferenceList.add(this);\n }\n }\n if (this.notNullAndNotUndefined(obj.offsetOption)) {\n this.offsetOption = obj.offsetOption;\n }\n if (obj.startOffset) {\n this.startOffset = (0, utility_1.CaeNumberArray)(obj.startOffset);\n }\n if (obj.endOffset) {\n this.endOffset = (0, utility_1.CaeNumberArray)(obj.endOffset);\n }\n if (obj.addData) {\n this.addData = obj.addData;\n }\n if (this.notNullAndNotUndefined(obj.stressOutPut)) {\n this.stressOutPut = obj.stressOutPut;\n }\n if (this.notNullAndNotUndefined(obj.gapElementType)) {\n this.gapElementType = obj.gapElementType;\n }\n if (this.notNullAndNotUndefined(obj.release_A)) {\n this.release_A = obj.release_A;\n }\n if (this.notNullAndNotUndefined(obj.release_B)) {\n this.release_B = obj.release_B;\n }\n this.chordAngle = (0, utility_1.CaeNumber)(obj.chordAngle);\n if (this.notNullAndNotUndefined(obj.localZAxis)) {\n this.localZAxis = obj.localZAxis;\n }\n if (this.notNullAndNotUndefined(obj.floodCondition)) {\n this.floodCondition = obj.floodCondition;\n }\n if (this.notNullAndNotUndefined(obj.kOrLOption)) {\n this.kOrLOption = obj.kOrLOption;\n }\n this.avgJointThickness = (0, utility_1.CaeNumber)(obj.avgJointThickness);\n this.kFactor_KY = obj.kFactor_KY;\n this.kFactor_KZ = obj.kFactor_KZ;\n this.shearModifier = (0, utility_1.CaeNumber)(obj.shearModifier);\n this.density = (0, utility_1.CaeNumber)(obj.density);\n this.ucSegments = (0, utility_1.CaeNumber)(obj.ucSegments);\n this.effectiveDiameter = (0, utility_1.CaeNumber)(obj.effectiveDiameter);\n _super.prototype.deserialize.call(this, obj, pm);\n this.setNeedUpdate();\n };\n MemberObject.prototype.deserializeFromHistory = function (obj, pm) {\n if (obj.start) {\n var start = pm.referenceList.get(obj.start);\n if (start) {\n this.start = start;\n } else {\n this.start = pm.process.findRenderObjectById(obj.start);\n }\n }\n if (obj.end) {\n var end = pm.referenceList.get(obj.end);\n if (end) {\n this.end = end;\n } else {\n this.end = pm.process.findRenderObjectById(obj.end);\n }\n }\n if (obj.grup) {\n var grup = pm.referenceList.get(obj.grup);\n if (grup) {\n this.grup = grup;\n } else {\n this.grup = pm.process.findRenderObjectById(obj.grup);\n }\n }\n if (this.notNullAndNotUndefined(obj.offsetOption)) {\n this.offsetOption = obj.offsetOption;\n }\n if (obj.startOffset) {\n this.startOffset = (0, utility_1.CaeNumberArray)(obj.startOffset);\n }\n if (obj.endOffset) {\n this.endOffset = (0, utility_1.CaeNumberArray)(obj.endOffset);\n }\n if (obj.addData) {\n this.addData = obj.addData;\n }\n if (this.notNullAndNotUndefined(obj.stressOutPut)) {\n this.stressOutPut = obj.stressOutPut;\n }\n if (this.notNullAndNotUndefined(obj.gapElementType)) {\n this.gapElementType = obj.gapElementType;\n }\n if (this.notNullAndNotUndefined(obj.release_A)) {\n this.release_A = obj.release_A;\n }\n if (this.notNullAndNotUndefined(obj.release_B)) {\n this.release_B = obj.release_B;\n }\n this.chordAngle = (0, utility_1.CaeNumber)(obj.chordAngle);\n if (this.notNullAndNotUndefined(obj.localZAxis)) {\n this.localZAxis = obj.localZAxis;\n }\n if (this.notNullAndNotUndefined(obj.floodCondition)) {\n this.floodCondition = obj.floodCondition;\n }\n if (this.notNullAndNotUndefined(obj.kOrLOption)) {\n this.kOrLOption = obj.kOrLOption;\n }\n this.avgJointThickness = (0, utility_1.CaeNumber)(obj.avgJointThickness);\n this.kFactor_KY = obj.kFactor_KY;\n this.kFactor_KZ = obj.kFactor_KZ;\n this.shearModifier = (0, utility_1.CaeNumber)(obj.shearModifier);\n this.density = (0, utility_1.CaeNumber)(obj.density);\n this.ucSegments = (0, utility_1.CaeNumber)(obj.ucSegments);\n this.effectiveDiameter = (0, utility_1.CaeNumber)(obj.effectiveDiameter);\n _super.prototype.deserialize.call(this, obj, pm);\n this.setNeedUpdate();\n };\n MemberObject.prototype.clone = function (cloneObj, cloneManager) {\n cloneObj.start = this.start;\n cloneObj.end = this.end;\n cloneObj.grup = this.grup;\n cloneObj.offsetOption = gs_bim_air_1.Longan.deepClone(this.offsetOption);\n cloneObj.startOffset = gs_bim_air_1.Longan.deepClone(this.startOffset);\n cloneObj.endOffset = gs_bim_air_1.Longan.deepClone(this.endOffset);\n cloneObj.release_A = gs_bim_air_1.Longan.deepClone(this.release_A);\n cloneObj.release_B = gs_bim_air_1.Longan.deepClone(this.release_B);\n cloneObj.chordAngle = gs_bim_air_1.Longan.deepClone(this.chordAngle);\n cloneObj.localZAxis = gs_bim_air_1.Longan.deepClone(this.localZAxis);\n cloneObj.floodCondition = gs_bim_air_1.Longan.deepClone(this.floodCondition);\n cloneObj.kOrLOption = gs_bim_air_1.Longan.deepClone(this.kOrLOption);\n cloneObj.avgJointThickness = gs_bim_air_1.Longan.deepClone(this.avgJointThickness);\n cloneObj.kFactor_KY = gs_bim_air_1.Longan.deepClone(this.kFactor_KY);\n cloneObj.kFactor_KZ = gs_bim_air_1.Longan.deepClone(this.kFactor_KZ);\n cloneObj.shearModifier = gs_bim_air_1.Longan.deepClone(this.shearModifier);\n cloneObj.density = gs_bim_air_1.Longan.deepClone(this.density);\n cloneObj.ucSegments = gs_bim_air_1.Longan.deepClone(this.ucSegments);\n cloneObj.effectiveDiameter = gs_bim_air_1.Longan.deepClone(this.effectiveDiameter);\n cloneObj = _super.prototype.clone.call(this, cloneObj);\n return cloneObj;\n };\n MemberObject.prototype.serializeToCard = function () {\n var cardMember = new cardMember_1.CardMember();\n cardMember.lineLabel.value = \"MEMBER\";\n cardMember.offsetOption.value = this.offsetOption;\n cardMember.jointA_Name.value = this.start.name;\n cardMember.jointB_Name.value = this.end.name;\n cardMember.addData.value = \"\";\n cardMember.grupLabel.value = \"\";\n if (this.grup) {\n cardMember.grupLabel.value = this.grup.name;\n }\n cardMember.stressOutput.value = \"\";\n cardMember.gapElementType.value = \"\";\n cardMember.fixity_JointA_DX.value = this.release_A[0] ? this.release_A[0] : \"\";\n cardMember.fixity_JointA_DY.value = this.release_A[1] ? this.release_A[1] : \"\";\n cardMember.fixity_JointA_DZ.value = this.release_A[2] ? this.release_A[2] : \"\";\n cardMember.fixity_JointA_RX.value = this.release_A[3] ? this.release_A[3] : \"\";\n cardMember.fixity_JointA_RY.value = this.release_A[4] ? this.release_A[4] : \"\";\n cardMember.fixity_JointA_RZ.value = this.release_A[5] ? this.release_A[5] : \"\";\n cardMember.fixity_JointB_DX.value = this.release_B[0] ? this.release_B[0] : \"\";\n cardMember.fixity_JointB_DY.value = this.release_B[1] ? this.release_B[1] : \"\";\n cardMember.fixity_JointB_DZ.value = this.release_B[2] ? this.release_B[2] : \"\";\n cardMember.fixity_JointB_RX.value = this.release_B[3] ? this.release_B[3] : \"\";\n cardMember.fixity_JointB_RY.value = this.release_B[4] ? this.release_B[4] : \"\";\n cardMember.fixity_JointB_RZ.value = this.release_B[5] ? this.release_B[5] : \"\";\n cardMember.chordAngle.value = (0, utility_1.CaeNumberToCard)(this.chordAngle);\n cardMember.localZAxis.value = this.localZAxis;\n cardMember.floodCondition.value = this.floodCondition;\n cardMember.kOrLOption.value = this.kOrLOption;\n cardMember.avgJointThickness.value = this.avgJointThickness;\n cardMember.kFactor_KY.value = this.kFactor_KY;\n cardMember.kFactor_KZ.value = this.kFactor_KZ;\n cardMember.shearModifier.value = this.shearModifier;\n cardMember.density.value = this.density;\n cardMember.ucSegments.value = this.ucSegments;\n cardMember.effectiveDiameter.value = this.effectiveDiameter;\n var result = cardMember.getLine();\n if (this.startOffset || this.endOffset) {\n if (!this.startOffset) {\n if (!this.arrayEqual(this.endOffset, [0, 0, 0])) {\n result += \"\\n\";\n var cardMemberOffsets = new cardMemberOffsets_1.CardMemberOffsets();\n cardMemberOffsets.lineLabel.value = \"MEMBER OFFSETS\";\n cardMemberOffsets.comments.value = \"\";\n cardMemberOffsets.jointA_XOffset.value = 0;\n cardMemberOffsets.jointA_YOffset.value = 0;\n cardMemberOffsets.jointA_ZOffset.value = 0;\n cardMemberOffsets.jointB_XOffset.value = this.endOffset[0];\n cardMemberOffsets.jointB_YOffset.value = this.endOffset[1];\n cardMemberOffsets.jointB_ZOffset.value = this.endOffset[2];\n result += cardMemberOffsets.getLine();\n }\n } else if (!this.endOffset) {\n if (!this.arrayEqual(this.startOffset, [0, 0, 0])) {\n result += \"\\n\";\n var cardMemberOffsets = new cardMemberOffsets_1.CardMemberOffsets();\n cardMemberOffsets.lineLabel.value = \"MEMBER OFFSETS\";\n cardMemberOffsets.comments.value = \"\";\n cardMemberOffsets.jointA_XOffset.value = this.startOffset[0];\n cardMemberOffsets.jointA_YOffset.value = this.startOffset[1];\n cardMemberOffsets.jointA_ZOffset.value = this.startOffset[2];\n cardMemberOffsets.jointB_XOffset.value = 0;\n cardMemberOffsets.jointB_YOffset.value = 0;\n cardMemberOffsets.jointB_ZOffset.value = 0;\n result += cardMemberOffsets.getLine();\n }\n } else {\n if (!this.arrayEqual(this.startOffset, [0, 0, 0]) || !this.arrayEqual(this.endOffset, [0, 0, 0])) {\n result += \"\\n\";\n var cardMemberOffsets = new cardMemberOffsets_1.CardMemberOffsets();\n cardMemberOffsets.lineLabel.value = \"MEMBER OFFSETS\";\n cardMemberOffsets.comments.value = \"\";\n cardMemberOffsets.jointA_XOffset.value = this.startOffset[0];\n cardMemberOffsets.jointA_YOffset.value = this.startOffset[1];\n cardMemberOffsets.jointA_ZOffset.value = this.startOffset[2];\n cardMemberOffsets.jointB_XOffset.value = this.endOffset[0];\n cardMemberOffsets.jointB_YOffset.value = this.endOffset[1];\n cardMemberOffsets.jointB_ZOffset.value = this.endOffset[2];\n result += cardMemberOffsets.getLine();\n }\n }\n }\n return result;\n };\n MemberObject.prototype.arrayEqual = function (a1, a2) {\n if (a1.length !== a2.length) {\n return false;\n }\n for (var i = 0; i < a1.length; i++) {\n if (a1[i] !== a2[i]) {\n return false;\n }\n }\n return true;\n };\n MemberObject.prototype.labelProcessing = function (viewer) {\n if (viewer.viewInterfaceManager) {\n if (viewer.viewInterfaceManager.memberFixtyVisible) {\n this.isDrawFixity = true;\n }\n if (viewer.viewInterfaceManager.grupNumberVisible) {\n this.isDrawNumber = true;\n }\n if (viewer.viewInterfaceManager.memberSectionSizeVisible) {\n this.isDrawSize = true;\n }\n if (viewer.viewInterfaceManager.memberAxisVisible) {\n this.isDrawAxis = true;\n }\n }\n if (!viewer.viewInterfaceManager.memberIsLine) {\n if (this.grup) {\n var iro = viewer.findInstanceObject(this);\n if (iro) {\n iro.segment.visibility.setLine(false);\n iro.segment.visibility.setBorder(true);\n }\n }\n } else {\n var iro = viewer.findInstanceObject(this);\n if (iro) {\n iro.segment.visibility.setFace(false);\n iro.segment.visibility.setBorder(false);\n }\n }\n };\n MemberObject.prototype.render = function (viewer) {\n var start = this.start;\n var end = this.end;\n this.clearSvg();\n this.segment.clearGeometries();\n if (!viewer) {\n viewer = process_1.Process.activeProcess.activeViewer;\n }\n if (start && end) {\n this.name = start.name + \"-\" + end.name;\n var resultStartPos = this.getStartPosition();\n var resultEndPos = this.getEndPosition();\n if (!resultStartPos || !resultEndPos) {\n console.log(\"杆件:\" + this.name + \"引用了不存在的空间点,数据丢弃\");\n process_1.Process.activeProcess.removeRenderObject(this);\n return;\n }\n this.startPoint = resultStartPos;\n this.endPoint = resultEndPos;\n _super.prototype.render.call(this);\n if (this.grup && this.grup.grupSegments && this.grup.grupSegments.length === 1) {\n this.grup.grupSegments[0].segmentLength = 0;\n }\n this.drawBody(resultStartPos, resultEndPos, viewer);\n }\n this.labelProcessing(viewer);\n this.drawSvg();\n };\n MemberObject.prototype.memberOffsetSwitch = function () {\n var axisSystem = this.getLocalAxis();\n var wcs = new gs_bim_air_1.Longan.Wcs(new Float32Array([0, 0, 0]), axisSystem.xAxis, axisSystem.yAxis);\n if (this.offsetOption === \"1\") {\n if (this.startOffset) {\n var newStartOffset = wcs.toLocalVector(new Float32Array(this.startOffset));\n this.startOffset[0] = newStartOffset[0];\n this.startOffset[1] = newStartOffset[1];\n this.startOffset[2] = newStartOffset[2];\n }\n if (this.endOffset) {\n var newEndOffset = wcs.toLocalVector(new Float32Array(this.endOffset));\n this.endOffset[0] = newEndOffset[0];\n this.endOffset[1] = newEndOffset[1];\n this.endOffset[2] = newEndOffset[2];\n }\n } else if (this.offsetOption === \"2\") {\n if (this.startOffset) {\n var newStartOffset = wcs.toModelVector(new Float32Array(this.startOffset));\n this.startOffset[0] = newStartOffset[0];\n this.startOffset[1] = newStartOffset[1];\n this.startOffset[2] = newStartOffset[2];\n }\n if (this.endOffset) {\n var newEndOffset = wcs.toModelVector(new Float32Array(this.endOffset));\n this.endOffset[0] = newEndOffset[0];\n this.endOffset[1] = newEndOffset[1];\n this.endOffset[2] = newEndOffset[2];\n }\n }\n };\n MemberObject.prototype.getReleatedWGTMEMObject = function (viewer) {\n var releatedWGTMEMObjects = new Array();\n var WGTMEMObjects = viewer.process.findRenderObjectsByType(\"WGTMEMObject\");\n if (WGTMEMObjects.length > 0) {\n for (var i = 0; i < WGTMEMObjects.length; i++) {\n var child = WGTMEMObjects[i];\n if (child.member && child.member.id === this.id) {\n releatedWGTMEMObjects.push(child);\n }\n }\n }\n return releatedWGTMEMObjects;\n };\n MemberObject.prototype.addReference = function (persistenceManager) {\n persistenceManager.referenceList.add(this.id, this);\n };\n MemberObject.prototype.drawBody = function (resultStartPos, resultEndPos, viewer) {\n var _a, _b;\n var xAxis = gs_bim_air_1.Longan.Point.subtract(new Float32Array(resultEndPos), new Float32Array(resultStartPos));\n if (gs_bim_air_1.Longan.Vector.isZero(xAxis)) {\n console.log(\"杆件始端,末端点相同\");\n return;\n }\n var axis = this.getLocalAxis();\n var normal = gs_bim_air_1.Longan.Vector.normalizeVector(xAxis);\n var zAixs = axis.zAxis;\n var yAxis = axis.yAxis;\n var grup = this.grup;\n if (grup && typeof this.grup !== \"string\" && grup.businessState !== gs_ceec_design_3.BusinessState.Deleting && grup.businessState !== gs_ceec_design_3.BusinessState.Dead) {\n if (grup.grupSegments) {\n var origin_1 = new Float32Array(resultStartPos);\n for (var i = 0; i < grup.grupSegments.length; i++) {\n var grupSegment = grup.grupSegments[i];\n var segmentLength = Number(grupSegment.segmentLength);\n if (!segmentLength) {\n segmentLength = this.getUndefineSegmentLength();\n }\n if (grup.grupSegments.length === 1) {\n segmentLength = this.getMemberLength();\n }\n segmentLength *= this.segmentLengthCoeff;\n var shell_key = -1;\n var polygon = null;\n if (grupSegment.taperOption === \"B\") {\n var polygon1 = grupSegment.getPolygon(origin_1, yAxis, zAixs);\n var sl = segmentLength;\n for (var j = 0; j < grup.grupSegments.length; j++) {\n var tarperGS = grup.grupSegments[j];\n if (tarperGS.taperOption === \"E\" && tarperGS.section.crossSectionType === grupSegment.section.crossSectionType) {\n if (!sl) {\n sl = this.getUndefineSegmentLength();\n sl *= this.segmentLengthCoeff;\n }\n var endOrigin = gs_bim_air_1.Longan.Point.add(origin_1, gs_bim_air_1.Longan.Vector.multiply(normal, sl));\n var polygon2 = tarperGS.getPolygon(endOrigin, yAxis, zAixs);\n var shellData = this.getTarperBoxShellData(polygon1, polygon2);\n var points = shellData.points;\n var indices = shellData.indices;\n shell_key = this.segment.insertShell(points, indices).key;\n if (grupSegment.startColor) {\n this.segment.color.faceColor = grupSegment.startColor;\n } else {\n this.segment.color.faceColor = objectColors_1.ObjectColor.memberFaceColor;\n }\n break;\n }\n }\n } else if (grupSegment.taperOption === \"E\") {\n continue;\n } else {\n if (((_b = (_a = grupSegment.section) === null || _a === void 0 ? void 0 : _a.crossSectionType) === null || _b === void 0 ? void 0 : _b.toLowerCase()) === \"con\") {\n polygon = grupSegment.section.getSectionPolygonCon(origin_1, yAxis, zAixs, segmentLength, grupSegment, this, viewer);\n } else {\n polygon = grupSegment.getPolygon(origin_1, yAxis, zAixs, segmentLength);\n }\n var offset = gs_bim_air_1.Longan.Vector.multiply(normal, segmentLength);\n origin_1 = gs_bim_air_1.Longan.Point.add(origin_1, offset);\n if (!polygon || polygon.points.length === 0) {\n return;\n }\n if (grupSegment.section && grupSegment.section.crossSectionType === \"CON\") {\n shell_key = this.segment.insertTriangularShell(polygon.points, polygon.indices).key;\n } else {\n if (!polygon.length) {\n polygon.length = this.getUndefineSegmentLength();\n }\n if (polygon) {\n if (polygon.points && polygon.indices) {\n var extrudeVector = gs_bim_air_1.Longan.Vector.multiply(normal, polygon.length * this.segmentLengthCoeff);\n var traiangles = gs_bim_air_1.Longan.LonganCore.JS_Feature_Extrude(new Float64Array(polygon.points), new Int32Array(polygon.indices), new Float64Array(extrudeVector), \"\");\n var bodySeg = this.segment;\n gs_bim_air_1.Longan.LonganCore.JS_Open_Segment_By_Key(bodySeg.key);\n {\n shell_key = gs_bim_air_1.Longan.LonganCore.JS_Insert_Triangular_Shell(traiangles.positions, traiangles.indexes);\n }\n gs_bim_air_1.Longan.LonganCore.JS_Close_Segment();\n } else {\n this.segment.color.setLine([255, 0, 0]);\n }\n } else {\n console.log(\"计算截面的顶点索引异常\");\n }\n }\n }\n if (shell_key !== -1 && polygon) {\n gs_bim_air_1.Longan.LonganCore.JS_Open_Segment_By_Key(this.segment.key);\n {\n if (grupSegment.startColor && grupSegment.endColor) {\n gs_bim_air_1.Longan.LonganCore.JS_UnSet_Geometry_Color(shell_key, \"faces\");\n this.setShellCloudColor(grupSegment.section, shell_key, polygon.points, grupSegment.startColor, grupSegment.endColor);\n } else {\n gs_bim_air_1.Longan.LonganCore.JS_UnSet_Geometry_Color(shell_key, \"faces\");\n if (this.faceColor) {\n this.segment.color.setFace(this.faceColor);\n } else {\n this.segment.color.setFace(objectColors_1.ObjectColor.memberFaceColor);\n }\n if (this.lineColor) {\n this.segment.color.setLine(this.lineColor);\n } else {\n this.segment.color.setLine(objectColors_1.ObjectColor.memberLineColor);\n }\n }\n if (this.startColor && this.endColor) {\n gs_bim_air_1.Longan.LonganCore.JS_UnSet_Geometry_Color(shell_key, \"faces\");\n this.setShellCloudColor(grupSegment.section, shell_key, polygon.points, this.startColor, this.endColor);\n }\n }\n gs_bim_air_1.Longan.LonganCore.JS_Close_Segment();\n }\n }\n }\n }\n };\n MemberObject.prototype.getTarperBoxShellData = function (polygon1, polygon2) {\n var pp1 = polygon1.points;\n var p0 = pp1.slice(0, 3);\n var p1 = pp1.slice(3, 6);\n var p2 = pp1.slice(6, 9);\n var p3 = pp1.slice(9, 12);\n var p4 = pp1.slice(12, 15);\n var p5 = pp1.slice(15, 18);\n var p6 = pp1.slice(18, 21);\n var p7 = pp1.slice(21, 24);\n var pp2 = polygon2.points;\n var p8 = pp2.slice(0, 3);\n var p9 = pp2.slice(3, 6);\n var p10 = pp2.slice(6, 9);\n var p11 = pp2.slice(9, 12);\n var p12 = pp2.slice(12, 15);\n var p13 = pp2.slice(15, 18);\n var p14 = pp2.slice(18, 21);\n var p15 = pp2.slice(21, 24);\n var points = Array();\n var indices = Array();\n var currentPointCount = 0;\n points = points.concat(polygon1.points);\n indices = [4, 3, 2, 1, 0, -4, 4, 5, 6, 7];\n currentPointCount += polygon1.points.length / 3;\n points = points.concat(polygon2.points);\n indices = indices.concat([4, currentPointCount + 0, currentPointCount + 1, currentPointCount + 2, currentPointCount + 3, -4, currentPointCount + 7, currentPointCount + 6, currentPointCount + 5, currentPointCount + 4]);\n currentPointCount += polygon2.points.length / 3;\n var data = this.getTaperBoxSideShellData(points, indices, [p0, p8, p11, p3], currentPointCount);\n points = data.points;\n indices = data.indices;\n currentPointCount = data.currentPointCount;\n data = this.getTaperBoxSideShellData(points, indices, [p0, p1, p9, p8], currentPointCount);\n points = data.points;\n indices = data.indices;\n currentPointCount = data.currentPointCount;\n data = this.getTaperBoxSideShellData(points, indices, [p3, p11, p10, p2], currentPointCount);\n points = data.points;\n indices = data.indices;\n currentPointCount = data.currentPointCount;\n data = this.getTaperBoxSideShellData(points, indices, [p1, p2, p10, p9], currentPointCount);\n points = data.points;\n indices = data.indices;\n currentPointCount = data.currentPointCount;\n data = this.getTaperBoxSideShellData(points, indices, [p4, p7, p15, p12], currentPointCount);\n points = data.points;\n indices = data.indices;\n currentPointCount = data.currentPointCount;\n data = this.getTaperBoxSideShellData(points, indices, [p4, p12, p13, p5], currentPointCount);\n points = data.points;\n indices = data.indices;\n currentPointCount = data.currentPointCount;\n data = this.getTaperBoxSideShellData(points, indices, [p5, p13, p14, p6], currentPointCount);\n points = data.points;\n indices = data.indices;\n currentPointCount = data.currentPointCount;\n data = this.getTaperBoxSideShellData(points, indices, [p6, p14, p15, p7], currentPointCount);\n points = data.points;\n indices = data.indices;\n currentPointCount = data.currentPointCount;\n return {\n points: points,\n indices: indices\n };\n };\n MemberObject.prototype.getTaperBoxSideShellData = function (points, indices, NewPoints, currentPointCount) {\n for (var i = 0; i < NewPoints.length; i++) {\n points = points.concat(NewPoints[i]);\n }\n indices = indices.concat([4, currentPointCount + 0, currentPointCount + 1, currentPointCount + 2, currentPointCount + 3]);\n currentPointCount += 4;\n return {\n points: points,\n indices: indices,\n currentPointCount: currentPointCount\n };\n };\n MemberObject.prototype.setShellCloudColor = function (section, shell_key, points, startColor, endColor) {\n if (section) {\n if (section.crossSectionType.toLowerCase() === \"con\") {\n this.setConCloudColor(shell_key, startColor, endColor);\n } else {\n this.setSectionCloudColor(shell_key, points, startColor, endColor);\n }\n } else {\n this.setTubCloudColor(shell_key, startColor, endColor);\n }\n };\n MemberObject.prototype.setConCloudColor = function (shell_key, startColor, endColor) {\n var oneCircleTessNum = MemberObject.curveTessNum * 2;\n var shellColors = new Array();\n for (var i = 0; i < oneCircleTessNum; i++) {\n shellColors.push(startColor[0]);\n shellColors.push(startColor[1]);\n shellColors.push(startColor[2]);\n if (startColor[3]) {\n shellColors.push(startColor[3]);\n } else {\n shellColors.push(1);\n }\n }\n for (var i = 0; i < oneCircleTessNum; i++) {\n shellColors.push(endColor[0]);\n shellColors.push(endColor[1]);\n shellColors.push(endColor[2]);\n if (startColor[3]) {\n shellColors.push(endColor[3]);\n } else {\n shellColors.push(1);\n }\n }\n gs_bim_air_1.Longan.LonganCore.JS_Set_Geometry_Color_By_Value(shell_key, \"faces\", 0, shellColors);\n };\n MemberObject.prototype.setTubCloudColor = function (shell_key, startColor, endColor) {\n var oneCircleTessNum = MemberObject.curveTessNum * 2;\n var shellColors = new Array();\n for (var i = 0; i < oneCircleTessNum; i++) {\n shellColors.push(startColor[0]);\n shellColors.push(startColor[1]);\n shellColors.push(startColor[2]);\n if (startColor[3]) {\n shellColors.push(startColor[3]);\n } else {\n shellColors.push(1);\n }\n }\n for (var i = 0; i < oneCircleTessNum; i++) {\n shellColors.push(endColor[0]);\n shellColors.push(endColor[1]);\n shellColors.push(endColor[2]);\n if (startColor[3]) {\n shellColors.push(endColor[3]);\n } else {\n shellColors.push(1);\n }\n }\n for (var i = 0; i < oneCircleTessNum; i++) {\n shellColors.push(startColor[0]);\n shellColors.push(startColor[1]);\n shellColors.push(startColor[2]);\n if (startColor[3]) {\n shellColors.push(startColor[3]);\n } else {\n shellColors.push(1);\n }\n }\n for (var i = 0; i < oneCircleTessNum; i++) {\n shellColors.push(endColor[0]);\n shellColors.push(endColor[1]);\n shellColors.push(endColor[2]);\n if (startColor[3]) {\n shellColors.push(endColor[3]);\n } else {\n shellColors.push(1);\n }\n }\n for (var i = 0; i < oneCircleTessNum * 2; i++) {\n shellColors.push(endColor[0]);\n shellColors.push(endColor[1]);\n shellColors.push(endColor[2]);\n if (startColor[3]) {\n shellColors.push(endColor[3]);\n } else {\n shellColors.push(1);\n }\n }\n for (var i = 0; i < oneCircleTessNum * 2; i++) {\n shellColors.push(startColor[0]);\n shellColors.push(startColor[1]);\n shellColors.push(startColor[2]);\n if (startColor[3]) {\n shellColors.push(startColor[3]);\n } else {\n shellColors.push(1);\n }\n }\n gs_bim_air_1.Longan.LonganCore.JS_Set_Geometry_Color_By_Value(shell_key, \"faces\", 0, shellColors);\n };\n MemberObject.prototype.setSectionCloudColor = function (shell_key, points, startColor, endColor) {\n var shellColors = new Array();\n for (var i = 0; i < points.length / 3; i++) {\n shellColors.push(startColor[0]);\n shellColors.push(startColor[1]);\n shellColors.push(startColor[2]);\n if (startColor[3]) {\n shellColors.push(startColor[3]);\n } else {\n shellColors.push(1);\n }\n }\n for (var i = 0; i < points.length / 3; i++) {\n shellColors.push(endColor[0]);\n shellColors.push(endColor[1]);\n shellColors.push(endColor[2]);\n if (startColor[3]) {\n shellColors.push(endColor[3]);\n } else {\n shellColors.push(1);\n }\n }\n for (var i = 0; i < points.length / 3; i++) {\n shellColors.push(endColor[0]);\n shellColors.push(endColor[1]);\n shellColors.push(endColor[2]);\n if (startColor[3]) {\n shellColors.push(endColor[3]);\n } else {\n shellColors.push(1);\n }\n }\n for (var i = 0; i < points.length / 3; i++) {\n shellColors.push(startColor[0]);\n shellColors.push(startColor[1]);\n shellColors.push(startColor[2]);\n if (startColor[3]) {\n shellColors.push(startColor[3]);\n } else {\n shellColors.push(1);\n }\n }\n gs_bim_air_1.Longan.LonganCore.JS_Set_Geometry_Color_By_Value(shell_key, \"faces\", 0, shellColors);\n };\n MemberObject.prototype.getUndefineSegmentLength = function () {\n var length = this.getMemberLength();\n if (this.grup) {\n for (var i = 0; i < this.grup.grupSegments.length; i++) {\n length -= this.grup.grupSegments[i].segmentLength;\n }\n }\n if (length < 0) {\n length = 0;\n }\n return length;\n };\n MemberObject.prototype.setReference = function (pm) {\n if (typeof this.start === \"string\") {\n var start = pm.referenceList.get(this.start);\n if (start) {\n this.start = start;\n }\n }\n if (typeof this.end === \"string\") {\n var end = pm.referenceList.get(this.end);\n if (end) {\n this.end = end;\n }\n }\n if (typeof this.grup === \"string\") {\n var grup = pm.referenceList.get(this.grup);\n if (grup) {\n this.grup = grup;\n }\n }\n this.setNeedUpdate();\n };\n MemberObject.prototype.jointReplace = function (replacingJoint, afterJoint) {\n if (this.start.id === replacingJoint.id) {\n this.start = afterJoint;\n } else {\n this.end = afterJoint;\n }\n };\n MemberObject.prototype.getStartPosition = function () {\n var startPosition = null;\n if (this.start) {\n if (this.start.position) {\n startPosition = gs_bim_air_1.Longan.deepClone(this.start.position);\n if (this.startOffset) {\n if (this.offsetOption === \"2\") {\n var axisSystem = this.getStartEndLocalAxis();\n var pos = new Float32Array(startPosition);\n pos = gs_bim_air_1.Longan.Point.add(pos, gs_bim_air_1.Longan.Vector.multiply(axisSystem.xAxis, this.startOffset[0] / 100));\n pos = gs_bim_air_1.Longan.Point.add(pos, gs_bim_air_1.Longan.Vector.multiply(axisSystem.yAxis, this.startOffset[1] / 100));\n pos = gs_bim_air_1.Longan.Point.add(pos, gs_bim_air_1.Longan.Vector.multiply(axisSystem.zAxis, this.startOffset[2] / 100));\n startPosition[0] = pos[0];\n startPosition[1] = pos[1];\n startPosition[2] = pos[2];\n } else if (this.offsetOption === \"1\") {\n startPosition[0] += this.startOffset[0] / 100;\n startPosition[1] += this.startOffset[1] / 100;\n startPosition[2] += this.startOffset[2] / 100;\n } else {}\n }\n } else {\n return null;\n }\n }\n return startPosition;\n };\n MemberObject.prototype.getEndPosition = function () {\n var endPosition = null;\n if (this.end) {\n if (this.end.position) {\n endPosition = gs_bim_air_1.Longan.deepClone(this.end.position);\n if (this.endOffset) {\n if (this.offsetOption === \"2\") {\n var axisSystem = this.getStartEndLocalAxis();\n var pos = new Float32Array(endPosition);\n pos = gs_bim_air_1.Longan.Point.add(pos, gs_bim_air_1.Longan.Vector.multiply(axisSystem.xAxis, this.endOffset[0] / 100));\n pos = gs_bim_air_1.Longan.Point.add(pos, gs_bim_air_1.Longan.Vector.multiply(axisSystem.yAxis, this.endOffset[1] / 100));\n pos = gs_bim_air_1.Longan.Point.add(pos, gs_bim_air_1.Longan.Vector.multiply(axisSystem.zAxis, this.endOffset[2] / 100));\n endPosition[0] = pos[0];\n endPosition[1] = pos[1];\n endPosition[2] = pos[2];\n } else if (this.offsetOption === \"1\") {\n endPosition[0] += this.endOffset[0] / 100;\n endPosition[1] += this.endOffset[1] / 100;\n endPosition[2] += this.endOffset[2] / 100;\n } else {}\n }\n } else {\n return null;\n }\n }\n return endPosition;\n };\n MemberObject.prototype.getVector = function () {\n var startPos = this.getStartPosition();\n var endPos = this.getEndPosition();\n var vector = gs_bim_air_1.Longan.Point.subtract(new Float32Array(endPos), new Float32Array(startPos));\n gs_bim_air_1.Longan.Vector.normalize(vector);\n return vector;\n };\n MemberObject.prototype.getMemberLength = function () {\n var startPos = this.getStartPosition();\n var endPos = this.getEndPosition();\n var length = gs_bim_air_1.Longan.Vector.module(gs_bim_air_1.Longan.Point.subtract(new Float32Array(endPos), new Float32Array(startPos)));\n return length;\n };\n MemberObject.prototype.getLengthOnCM = function () {\n var length = 0;\n if (this.grup) {\n for (var i = 0; i < this.grup.grupSegments.length; i++) {\n length += this.grup.grupSegments[i].segmentLength;\n }\n }\n return length;\n };\n MemberObject.prototype.getWidth = function () {\n var width = 0;\n if (this.grup) {\n for (var i = 0; i < this.grup.grupSegments.length; i++) {\n width += this.grup.grupSegments[i].tubWallThickness;\n }\n }\n return width;\n };\n MemberObject.prototype.getSize = function (index) {\n var text = this.name;\n if (this.grup && this.grup.grupSegments.length > 0) {\n var grupSegment = this.grup.grupSegments[index];\n if (grupSegment.section) {\n if (grupSegment.section.crossSectionType.toLowerCase() === \"con\") {\n var con = grupSegment.section;\n text = con.largeOD + \"~\" + con.smallOD + \"x\" + con.wallThick;\n } else {\n text = grupSegment.section.name;\n }\n } else {\n text = Number(grupSegment.tubOuterDiameter).toString() + \"×\" + Number(grupSegment.tubWallThickness).toString();\n }\n }\n return text;\n };\n MemberObject.prototype.drawSvg = function () {\n if (!this.checkBusinessStateIsActive()) {\n return;\n }\n var iro = process_1.Process.activeProcess.activeViewer.findInstanceObject(this);\n if (iro && !iro.visible) {\n this.clearSvg();\n return;\n }\n if (this._isDrawSize) {\n this.drawSize();\n }\n if (this._isDrawNumber) {\n this.drawNumber();\n }\n if (this._isDrawAxis) {\n this.drawAxis();\n }\n if (this._isDrawFixity) {\n this.drawFixity();\n }\n if (this._isDrawLabel) {}\n if (this._isDrawAxis) {\n this.drawAxis();\n }\n };\n MemberObject.prototype.clearSizeTexts = function () {\n for (var i = 0; i < this.sizeTexts.length; i++) {\n this.sizeTexts[i] && this.sizeTexts[i].clear();\n this.sizeTexts[i] = null;\n }\n this.sizeTexts = new Array();\n };\n MemberObject.prototype.clearSvg = function () {\n this.clearSizeTexts();\n if (this.numberText) {\n this.numberText.clear();\n this.numberText = null;\n }\n if (this.fixityText) {\n this.fixityText.clear();\n this.fixityText = null;\n }\n if (this.labelText && !this.isDrawLabel) {\n this.labelText.clear();\n this.labelText = null;\n this.labelRect.remove();\n this.labelRect = null;\n }\n if (this.axisSeg) {\n this.axisSeg.clearAll();\n this.axisSeg = null;\n }\n _super.prototype.clearSvg.call(this);\n };\n MemberObject.prototype.drawSize = function () {\n if (!this.checkBusinessStateIsActive()) {\n return;\n }\n var viewer = process_1.Process.activeProcess.activeViewer;\n var iro = viewer.findInstanceObject(this);\n if (iro && !iro.visible) {\n return;\n }\n var startPos = new Float32Array(this.getStartPosition());\n var vector = this.getVector();\n var currentLen = 0;\n if (this.grup) {\n if (!this.grup.checkBusinessStateIsActive()) {\n return;\n }\n for (var i = 0; i < this.grup.grupSegments.length; i++) {\n var pos1 = gs_bim_air_1.Longan.Point.add(startPos, gs_bim_air_1.Longan.Vector.multiply(vector, currentLen));\n var point0 = viewer.worldPointToPixelPoint([new Float64Array(pos1)])[0];\n var curGrupSeg = this.grup.grupSegments[i];\n if (!curGrupSeg.segmentLength) {\n currentLen += Number(this.getUndefineSegmentLength());\n } else {\n currentLen += Number(curGrupSeg.segmentLength);\n }\n var resPos = gs_bim_air_1.Longan.Point.add(startPos, gs_bim_air_1.Longan.Vector.multiply(vector, currentLen));\n var point1 = viewer.worldPointToPixelPoint([new Float64Array(resPos)])[0];\n var text = this.getSize(i);\n var sizeText = this.sizeTexts[i];\n if (sizeText) {\n sizeText.move((point0[0] + point1[0]) / 2, (point0[1] + point1[1]) / 2);\n sizeText.attr(\"font-size\", gs_ceec_design_3.DesignBaseObject.fontSize);\n } else {\n var draw = gs_ceec_design_2.SvgDraw.getInstance(viewer.container.id).draw;\n if (!this._group) {\n this._group = draw.group();\n }\n sizeText = draw.text(text).font({\n fill: objectColors_1.ObjectColor.memberLabelColor\n }).attr(\"font-size\", gs_ceec_design_3.DesignBaseObject.fontSize).move((point0[0] + point1[0]) / 2, (point0[1] + point1[1]) / 2);\n this._group.add(sizeText);\n this.sizeTexts.push(sizeText);\n }\n }\n }\n };\n MemberObject.prototype.drawNumber = function () {\n if (!this.checkBusinessStateIsActive()) {\n return;\n }\n var viewer = process_1.Process.activeProcess.activeViewer;\n var iro = viewer.findInstanceObject(this);\n if (iro && !iro.visible) {\n return;\n }\n var point0 = viewer.worldPointToPixelPoint([this.startPoint])[0];\n var point1 = viewer.worldPointToPixelPoint([this.endPoint])[0];\n if (this.numberText) {\n this.numberText.move((point0[0] + point1[0]) / 2, (point0[1] + point1[1]) / 2);\n this.numberText.attr(\"font-size\", gs_ceec_design_3.DesignBaseObject.fontSize);\n } else {\n if (this.grup) {\n if (!this.grup.checkBusinessStateIsActive()) {\n return;\n }\n var draw = gs_ceec_design_2.SvgDraw.getInstance(viewer.container.id).draw;\n if (!this._group) {\n this._group = draw.group();\n }\n this.numberText = draw.text(this.grup.name).font({\n fill: objectColors_1.ObjectColor.memberLabelColor\n }).attr(\"font-size\", gs_ceec_design_3.DesignBaseObject.fontSize).move((point0[0] + point1[0]) / 2, (point0[1] + point1[1]) / 2);\n this._group.add(this.numberText);\n }\n }\n };\n MemberObject.prototype.drawAxis = function () {\n if (!this.checkBusinessStateIsActive()) {\n return;\n }\n var viewer = process_1.Process.activeProcess.activeViewer;\n var iro = viewer.findInstanceObject(this);\n if (iro && !iro.visible) {\n return;\n }\n var unitLengtha = viewer.unitLength / 4;\n var scaleMatrix = gs_bim_air_1.Longan.Matrix4.scaleMatrix(unitLengtha, unitLengtha, unitLengtha);\n var center = this.getCenter();\n var translateMatrix = gs_bim_air_1.Longan.Matrix4.translateMatrix(center[0], center[1], center[2]);\n if (this.axisSeg) {} else {\n var viewer_1 = process_1.Process.activeProcess.activeViewer;\n var unitLengtha_1 = viewer_1.unitLength / 2;\n console.log(\"unitLengtha\", unitLengtha_1);\n var axis = this.getLocalAxis();\n var origin_2 = new Float32Array([0, 0, 0]);\n var xPoint = gs_bim_air_1.Longan.Point.add(origin_2, axis.xAxis);\n var yPoint = gs_bim_air_1.Longan.Point.add(origin_2, axis.yAxis);\n var zPoint = gs_bim_air_1.Longan.Point.add(origin_2, axis.zAxis);\n var matrix_1 = gs_bim_air_1.Longan.Matrix4.identity();\n if (this.segment.attributes.indexOf(gs_bim_air_1.Longan.LonganCore.ObjectType.TYPE_ModellingMatrix)) {\n if (this.segment.modellingMatrix.matrix) {\n matrix_1 = new Float32Array(this.segment.modellingMatrix.matrix);\n }\n }\n var axisParent = viewer_1.sceneSegment.subsegment(\"axisPar\" + this.id);\n axisParent.modellingMatrix.set(matrix_1);\n this.axisSeg = axisParent.subsegment(\"axis\");\n this.axisSeg.renderingOptions.depthRange = [0, 0.1];\n var xSeg = this.axisSeg.subsegment(\"x\");\n var ySeg = this.axisSeg.subsegment(\"y\");\n var zSeg = this.axisSeg.subsegment(\"z\");\n xSeg.color.setLine([0, 0, 255]);\n xSeg.color.setFace([0, 0, 255]);\n ySeg.color.setLine([0, 255, 0]);\n ySeg.color.setFace([0, 255, 0]);\n zSeg.color.setLine([255, 0, 0]);\n zSeg.color.setFace([255, 0, 0]);\n var x = xSeg.insertLine(origin_2, xPoint);\n var y = ySeg.insertLine(origin_2, yPoint);\n var z = zSeg.insertLine(origin_2, zPoint);\n xSeg.insertParametricGeometry(\"scon\", tslib_1.__spreadArray(tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(gs_bim_air_1.Longan.Point.add(xPoint, gs_bim_air_1.Longan.Vector.multiply(axis.xAxis, 0.5))), false), tslib_1.__read(gs_bim_air_1.Longan.Vector.multiply(axis.xAxis, -1)), false), [0.5, 0.2], false));\n ySeg.insertParametricGeometry(\"scon\", tslib_1.__spreadArray(tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(gs_bim_air_1.Longan.Point.add(yPoint, gs_bim_air_1.Longan.Vector.multiply(axis.yAxis, 0.5))), false), tslib_1.__read(gs_bim_air_1.Longan.Vector.multiply(axis.yAxis, -1)), false), [0.5, 0.2], false));\n zSeg.insertParametricGeometry(\"scon\", tslib_1.__spreadArray(tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(gs_bim_air_1.Longan.Point.add(zPoint, gs_bim_air_1.Longan.Vector.multiply(axis.zAxis, 0.5))), false), tslib_1.__read(gs_bim_air_1.Longan.Vector.multiply(axis.zAxis, -1)), false), [0.5, 0.2], false));\n }\n var matrix = gs_bim_air_1.Longan.Matrix4.identity();\n matrix = gs_bim_air_1.Longan.Matrix4.multiply(matrix, translateMatrix);\n matrix = gs_bim_air_1.Longan.Matrix4.multiply(matrix, scaleMatrix);\n this.axisSeg.modellingMatrix.set(matrix);\n };\n MemberObject.prototype.drawFixity = function () {\n if (!this.checkBusinessStateIsActive()) {\n return;\n }\n var viewer = process_1.Process.activeProcess.activeViewer;\n var iro = viewer.findInstanceObject(this);\n if (iro && !iro.visible) {\n return;\n }\n var point = viewer.worldPointToPixelPoint([new Float64Array(this.getCenter())])[0];\n if (this.fixityText) {\n this.fixityText.move(point[0] + 1, point[1] + 1);\n this.fixityText.attr(\"font-size\", gs_ceec_design_3.DesignBaseObject.fontSize);\n } else {\n var draw = gs_ceec_design_2.SvgDraw.getInstance(viewer.container.id).draw;\n if (!this._group) {\n this._group = draw.group();\n }\n var fixity = this.getFixity();\n if (fixity) {\n this.fixityText = draw.text(fixity).font({\n fill: objectColors_1.ObjectColor.memberLabelColor\n }).attr(\"font-size\", gs_ceec_design_3.DesignBaseObject.fontSize).move(point[0] + 1, point[1] + 1);\n this._group.add(this.fixityText);\n }\n }\n };\n MemberObject.prototype.drawLabel = function (position) {\n if (!this.checkBusinessStateIsActive()) {\n return;\n }\n var viewer = process_1.Process.activeProcess.activeViewer;\n var iro = viewer.findInstanceObject(this);\n if (iro && !iro.visible) {\n this.isDrawLabel = false;\n return;\n }\n var x = position[0];\n var y = position[1];\n if (this.labelRect && this.labelText) {\n this.labelRect.move(x, y - 20);\n this.labelText.move(x + 5, y - 18);\n } else {\n var draw = gs_ceec_design_2.SvgDraw.getInstance(viewer.container.id).draw;\n if (!this._group) {\n this._group = draw.group();\n }\n var name_1 = this.name;\n var grp_1 = this.grup ? this.grup.name : \"\";\n var flooding_1 = this.floodCondition ? this.floodCondition : \"N\";\n var length_1 = Number(this.getMemberLength().toFixed(3));\n var ky_1 = \"\";\n var kz_1 = \"\";\n if (this.kOrLOption && this.kOrLOption === \"L\") {\n ky_1 = this.kFactor_KY ? (Number(this.kFactor_KY) / length_1).toFixed(1) : \"1.0\";\n kz_1 = this.kFactor_KZ ? (Number(this.kFactor_KZ) / length_1).toFixed(1) : \"1.0\";\n } else {\n ky_1 = this.kFactor_KY ? Number(this.kFactor_KY).toFixed(1) : \"1.0\";\n kz_1 = this.kFactor_KZ ? Number(this.kFactor_KZ).toFixed(1) : \"1.0\";\n }\n var releaseA_1 = this.release_A;\n var releaseB_1 = this.release_B;\n var textWidth = Math.max(name_1.length, grp_1.length, flooding_1.length) * 17;\n textWidth = textWidth > 100 ? textWidth : 100;\n var rect = draw.rect(textWidth, 130).radius(2).fill(\"#FFFFE1\").move(x, y - 20).attr(\"style\", \"pointer-events: none}\");\n if (this.kOrLOption && this.kOrLOption === \"L\") {\n var text = draw.text(function (add) {\n add.tspan(\"Mem:\".concat(name_1)).newLine();\n add.tspan(\"Grp:\".concat(grp_1)).newLine();\n add.tspan(\"Flooding:\".concat(flooding_1)).newLine();\n add.tspan(\"Len:\".concat(length_1 + \"m\")).newLine();\n add.tspan(\"ARelease:\".concat(releaseA_1)).newLine();\n add.tspan(\"BRelease:\".concat(releaseB_1)).newLine();\n add.tspan(\"LY:\".concat(ky_1)).newLine();\n add.tspan(\"LZ:\".concat(kz_1)).newLine();\n }).font({\n fill: \"#000\"\n }).attr(\"font-size\", 12).move(x + 5, y - 18);\n this._group.add(rect).add(text).front();\n this.labelRect = rect;\n this.labelText = text;\n } else {\n var text = draw.text(function (add) {\n add.tspan(\"Mem:\".concat(name_1)).newLine();\n add.tspan(\"Grp:\".concat(grp_1)).newLine();\n add.tspan(\"Flooding:\".concat(flooding_1)).newLine();\n add.tspan(\"Len:\".concat(length_1 + \"m\")).newLine();\n add.tspan(\"ARelease:\".concat(releaseA_1)).newLine();\n add.tspan(\"BRelease:\".concat(releaseB_1)).newLine();\n add.tspan(\"KY:\".concat(ky_1)).newLine();\n add.tspan(\"KZ:\".concat(kz_1)).newLine();\n }).font({\n fill: \"#000\"\n }).attr(\"font-size\", 12).move(x + 5, y - 18);\n this._group.add(rect).add(text).front();\n this.labelRect = rect;\n this.labelText = text;\n }\n }\n };\n MemberObject.prototype.getLocalAxis = function () {\n var xAxis = this.getVector();\n gs_bim_air_1.Longan.Vector.normalize(xAxis);\n var yAxis = new Float32Array([0, 1, 0]);\n var zAxis = new Float32Array([0, 0, 1]);\n var worldZAxis = new Float32Array([0, 0, 1]);\n var worldMZAxis = new Float32Array([0, 0, -1]);\n if (gs_bim_air_1.Longan.GeometryOperators.sameVector(xAxis, worldZAxis)) {\n zAxis = new Float32Array([0, 1, 0]);\n yAxis = gs_bim_air_1.Longan.Vector.cross(zAxis, xAxis);\n gs_bim_air_1.Longan.Vector.normalize(yAxis);\n } else if (gs_bim_air_1.Longan.GeometryOperators.sameVector(xAxis, worldMZAxis)) {\n zAxis = new Float32Array([0, 1, 0]);\n yAxis = gs_bim_air_1.Longan.Vector.cross(zAxis, xAxis);\n gs_bim_air_1.Longan.Vector.normalize(yAxis);\n } else {\n yAxis = gs_bim_air_1.Longan.Vector.cross(worldZAxis, xAxis);\n gs_bim_air_1.Longan.Vector.normalize(yAxis);\n zAxis = gs_bim_air_1.Longan.Vector.cross(xAxis, yAxis);\n gs_bim_air_1.Longan.Vector.normalize(zAxis);\n if (gs_bim_air_1.Longan.Vector.angle(zAxis, worldZAxis) > Math.PI / 2) {\n zAxis = gs_bim_air_1.Longan.Vector.multiply(zAxis, -1);\n }\n gs_bim_air_1.Longan.Vector.normalize(zAxis);\n yAxis = gs_bim_air_1.Longan.Vector.cross(zAxis, xAxis);\n gs_bim_air_1.Longan.Vector.normalize(yAxis);\n }\n var origin = new Float32Array(this.getStartPosition());\n var chordAngle = this.chordAngle / 180 * Math.PI;\n var maxtrix = gs_bim_air_1.Longan.Matrix4.rotateByAxis(origin, xAxis, chordAngle);\n var newYAxis = gs_bim_air_1.Longan.Matrix4.multiplyVector(maxtrix, yAxis);\n gs_bim_air_1.Longan.Vector.normalize(newYAxis);\n var newZAxis = gs_bim_air_1.Longan.Matrix4.multiplyVector(maxtrix, zAxis);\n gs_bim_air_1.Longan.Vector.normalize(newZAxis);\n yAxis = newYAxis;\n zAxis = newZAxis;\n return {\n xAxis: xAxis,\n yAxis: yAxis,\n zAxis: zAxis\n };\n };\n MemberObject.prototype.getCenter = function () {\n var startPos = this.getStartPosition();\n var endPos = this.getEndPosition();\n return new Float32Array([(startPos[0] + endPos[0]) / 2, (startPos[1] + endPos[1]) / 2, (startPos[2] + endPos[2]) / 2]);\n };\n MemberObject.prototype.getStartEndLocalAxis = function () {\n var xAxis = gs_bim_air_1.Longan.Point.subtract(new Float32Array(this.end.position), new Float32Array(this.start.position));\n gs_bim_air_1.Longan.Vector.normalize(xAxis);\n var yAxis = new Float32Array([0, 1, 0]);\n var zAxis = new Float32Array([0, 0, 1]);\n var worldZAxis = new Float32Array([0, 0, 1]);\n var worldMZAxis = new Float32Array([0, 0, -1]);\n if (gs_bim_air_1.Longan.GeometryOperators.sameVector(xAxis, worldZAxis)) {\n zAxis = new Float32Array([0, 1, 0]);\n yAxis = gs_bim_air_1.Longan.Vector.cross(zAxis, xAxis);\n gs_bim_air_1.Longan.Vector.normalize(yAxis);\n } else if (gs_bim_air_1.Longan.GeometryOperators.sameVector(xAxis, worldMZAxis)) {\n zAxis = new Float32Array([0, 1, 0]);\n yAxis = gs_bim_air_1.Longan.Vector.cross(zAxis, xAxis);\n gs_bim_air_1.Longan.Vector.normalize(yAxis);\n } else {\n yAxis = gs_bim_air_1.Longan.Vector.cross(worldZAxis, xAxis);\n gs_bim_air_1.Longan.Vector.normalize(yAxis);\n zAxis = gs_bim_air_1.Longan.Vector.cross(xAxis, yAxis);\n if (gs_bim_air_1.Longan.Vector.angle(zAxis, worldZAxis) > Math.PI / 2) {\n zAxis = gs_bim_air_1.Longan.Vector.multiply(zAxis, -1);\n }\n gs_bim_air_1.Longan.Vector.normalize(zAxis);\n yAxis = gs_bim_air_1.Longan.Vector.cross(zAxis, xAxis);\n gs_bim_air_1.Longan.Vector.normalize(yAxis);\n }\n return {\n xAxis: xAxis,\n yAxis: yAxis,\n zAxis: zAxis\n };\n };\n MemberObject.prototype.getFixity = function () {\n var startFixity = this.release_A;\n var endFixity = this.release_B;\n return startFixity && endFixity ? startFixity + \"-\" + endFixity : \"\";\n };\n MemberObject.prototype.setColor = function (color, transparency) {\n this.segment.color.setFace(color.concat([transparency]));\n this.segment.color.setLine(color.concat([transparency]));\n };\n MemberObject.prototype.startOffsetCompare = function (offset) {\n var isSame = true;\n if (this.startOffset && offset) {\n for (var i = 0; i < this.startOffset.length; i++) {\n if (Number(this.startOffset[i]) !== Number(offset[i])) {\n isSame = false;\n break;\n }\n }\n } else if (!this.startOffset && !offset) {\n isSame = true;\n } else {\n isSame = false;\n }\n return isSame;\n };\n MemberObject.prototype.endOffsetCompare = function (offset) {\n var isSame = true;\n if (offset && this.endOffset) {\n for (var i = 0; i < this.endOffset.length; i++) {\n if (Number(this.endOffset[i]) !== Number(offset[i])) {\n isSame = false;\n break;\n }\n }\n } else if (!this.endOffset && !offset) {\n isSame = true;\n } else {\n isSame = false;\n }\n return isSame;\n };\n MemberObject.prototype.dispose = function () {\n this.clearSvg();\n _super.prototype.dispose.call(this);\n };\n MemberObject.prototype.tempDelete = function (viewer) {\n var componentGroups = viewer.process.findRenderObjectByName(\"构件分组分色\");\n if (componentGroups) {\n for (var i = 0; i < componentGroups.childObjects.length; i++) {\n var obj = componentGroups.childObjects[i];\n for (var j = 0; j < obj.refercenMemberIds.count(); j++) {\n if (obj.refercenMemberIds.items[j] === this.id) {\n obj.refercenMemberIds.remove(this.id);\n }\n }\n }\n }\n this.isDrawAxis = false;\n this.isDrawLabel = false;\n this.isDrawFixity = false;\n this.isDrawLabel = false;\n this.isDrawNumber = false;\n _super.prototype.tempDelete.call(this, viewer);\n };\n MemberObject.prototype.getGrupSegmentLength = function (segmentIndex) {\n var result = -1;\n if (this.grup) {\n var segmentLen = this.grup.grupSegments[segmentIndex].segmentLength;\n if (!segmentLen) {\n segmentLen = this.getUndefineSegmentLength();\n }\n result = segmentLen;\n }\n return result;\n };\n MemberObject.prototype.getGrupSegmentByLength = function (distance) {\n var index = -1;\n var lenSum = 0;\n if (this.grup) {\n for (var i = 0; i < this.grup.grupSegments.length; i++) {\n var segmentLen = this.grup.grupSegments[i].segmentLength;\n if (!segmentLen) {\n segmentLen = this.getUndefineSegmentLength();\n }\n lenSum += segmentLen;\n if (lenSum >= distance) {\n index = i;\n break;\n }\n }\n }\n return index;\n };\n MemberObject.curveTessNum = 10;\n MemberObject.g_GridRatio = -1;\n return MemberObject;\n }(gs_ceec_design_1.LineObject);\n exports.MemberObject = MemberObject;\n var MemberAdditionalProperty = function () {\n function MemberAdditionalProperty() {\n this.useDefaultProperty = false;\n this.localZAxis = null;\n this.chordAngle = null;\n this.release_A = \"\";\n this.release_B = \"\";\n this.avgJointThickness = null;\n this.floodCondition = null;\n this.buckingOption = \"\";\n this.kFactor_KY = null;\n this.kFactor_KZ = null;\n this.shearModifier = null;\n this.density = null;\n this.ucSegments = null;\n this.effectiveDiameter = null;\n this.startOffset = null;\n this.endOffset = null;\n this.offsetOption = null;\n this.overrideLocalZAxis = false;\n this.overrideChrodAngle = false;\n this.overrideRelease_A = false;\n this.overrideRelease_B = false;\n this.overrideAvgJointThickness = false;\n this.overrideFloodCondition = false;\n this.overrideBuckingOption = false;\n this.overrideKFactor_KY = false;\n this.overrideKFactor_KZ = false;\n this.overrideShearModifier = false;\n this.overrideDensity = false;\n this.overrideUcSegments = false;\n this.overrideEffectiveDiameter = false;\n this.overrideOffsetOption = false;\n this.overrideStartOffset = false;\n this.overrideEndOffset = false;\n }\n MemberAdditionalProperty.getInstance = function () {\n if (this._instance == null) {\n this._instance = new MemberAdditionalProperty();\n }\n return this._instance;\n };\n return MemberAdditionalProperty;\n }();\n exports.MemberAdditionalProperty = MemberAdditionalProperty;\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL2dzRGV2Rngvb2JqZWN0cy9jYWVPYmplY3RzL21lbWJlck9iamVjdC50cy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL1tuYW1lXS8uL3BhY2thZ2VzL2NhZURlc2lnbi9zcmMvZ3NEZXZGeC9vYmplY3RzL2NhZU9iamVjdHMvbWVtYmVyT2JqZWN0LnRzPzYyYzIiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9uZ2FuIH0gZnJvbSBcImdzLWJpbS1haXJcIjtcclxuaW1wb3J0IHsgTGluZU9iamVjdCB9IGZyb20gXCJncy1jZWVjLWRlc2lnblwiO1xyXG5pbXBvcnQgeyBJUmVmZXJlbmNlZE9iamVjdCB9IGZyb20gXCIuLi9pbnRlcmZhY2VzXCI7XHJcbmltcG9ydCB7IFBlcnNpc3RlbmNlTWFuYWdlciB9IGZyb20gXCIuLi8uLi9tYW5hZ2Vycy9wZXJzaXN0ZW5jZU1hbmFnZXJcIjtcclxuaW1wb3J0IHsgR3J1cE9iamVjdCB9IGZyb20gXCIuL2dydXBPYmplY3RcIjtcclxuaW1wb3J0IHsgSm9pbnRPYmplY3QgfSBmcm9tIFwiLi9qb2ludE9iamVjdFwiO1xyXG5pbXBvcnQgeyBWaWV3ZXIsIFZpZXdlciBhcyB2aWV3ZXIgfSBmcm9tIFwiLi4vLi4vdmlld2VyXCI7XHJcbmltcG9ydCB7IFN2Z0RyYXcgfSBmcm9tIFwiZ3MtY2VlYy1kZXNpZ25cIjtcclxuaW1wb3J0IHsgQ2FyZE1lbWJlciB9IGZyb20gXCIuLi8uLi8uLi9jYWVDYXJkRWRpdG9yL2NhZUNhcmRPYmplY3RzL2NhcmRNZW1iZXJcIjtcclxuaW1wb3J0IHsgQ2FyZE1lbWJlck9mZnNldHMgfSBmcm9tIFwiLi4vLi4vLi4vY2FlQ2FyZEVkaXRvci9jYWVDYXJkT2JqZWN0cy9jYXJkTWVtYmVyT2Zmc2V0c1wiO1xyXG5pbXBvcnQgeyBCdXNpbmVzc1N0YXRlLCBEZXNpZ25CYXNlT2JqZWN0IH0gZnJvbSBcImdzLWNlZWMtZGVzaWduXCI7XHJcbmltcG9ydCB7IEluc3RhbmNlRGVzaWduQmFzZU9iamVjdCB9IGZyb20gXCJncy1jZWVjLWRlc2lnblwiO1xyXG5pbXBvcnQgeyBXR1RNRU1PYmplY3QgfSBmcm9tIFwiLi9wcmV0cmVhdG1lbnQvd2d0bWVtT2JqZWN0XCI7XHJcbmltcG9ydCB7IE9iamVjdENvbG9yIH0gZnJvbSBcIi4vb2JqZWN0Q29sb3JzXCI7XHJcbmltcG9ydCB7IFNlY3Rpb25PYmplY3QgfSBmcm9tIFwiLi9zZWN0aW9uT2JqZWN0XCI7XHJcbmltcG9ydCB7IENvblNlY3Rpb25PYmplY3QgfSBmcm9tIFwiLi9zZWN0aW9ucy9jb25TZWN0aW9uT2JqZWN0XCI7XHJcbmltcG9ydCB7XHJcbiAgQ2FlTnVtYmVyLFxyXG4gIENhZU51bWJlckFycmF5LFxyXG4gIENhZU51bWJlclRvQ2FyZCxcclxufSBmcm9tIFwiLi4vLi4vLi4vdXRpbGl0eS91dGlsaXR5XCI7XHJcbmltcG9ydCB7IFByb2Nlc3MgfSBmcm9tIFwiLi4vLi4vLi4vZ3NEZXZGeC9wcm9jZXNzXCI7XHJcbmltcG9ydCB7IENvbG9yRGl2Q29tcG9uZW50R3JvdXBPYmplY3QgfSBmcm9tIFwiLi4vcHJldHJlYXRtZW50T2JqZWN0cy9jb2xvckRpdkNvbXBvbmVudEdyb3VwT2JqZWN0XCI7XHJcblxyXG5leHBvcnQgZW51bSBCYXJUeXBlIHtcclxuICBEZWZhdWx0ID0gMCwgLy8gIOaXoOexu+Wei1xyXG4gIFN0YXlCYXIgPSAxLCAvLyDmkpHmnYZcclxuICBDaG9yZE1lbWJlciA9IDIsIC8vIOW8puadhlxyXG59XHJcblxyXG5leHBvcnQgZW51bSBPZmZzZXRPcHRpb25UeXBlIHtcclxuICBOb25lID0gXCJcIixcclxuICBXb3JsZCA9IFwiMVwiLFxyXG4gIExvY2FsID0gXCIyXCIsXHJcbn1cclxuXHJcbi8v5p2G5Lu25a+56LGhXHJcbmV4cG9ydCBjbGFzcyBNZW1iZXJPYmplY3QgZXh0ZW5kcyBMaW5lT2JqZWN0IGltcGxlbWVudHMgSVJlZmVyZW5jZWRPYmplY3Qge1xyXG4gIHR5cGVOYW1lID0gXCJNZW1iZXJPYmplY3RcIjtcclxuICAvKiog5byV55So55qE56m66Ze054K5SWTmlbDnu4QsMuS4queCueeahOaVsOe7hC4gKi9cclxuICBwcm90ZWN0ZWQgX3N0YXJ0OiBKb2ludE9iamVjdCA9IG51bGw7XHJcbiAgcHJvdGVjdGVkIF9lbmQ6IEpvaW50T2JqZWN0ID0gbnVsbDtcclxuICAvLyDlvJXnlKjnmoTmiKrpnaLnu4RcclxuICBwcm90ZWN0ZWQgX2dydXA6IEdydXBPYmplY3QgPSBudWxsO1xyXG4gIC8vIOWBj+W/g+exu+Wei1xyXG4gIC8vXCJcIjrkuI3lrZjlnKjlgY/lv4PlgLxcclxuICAvLzE65YGP5b+D6YeP55qE5Zyo5oC75L2T5Z2Q5qCH57O75Lit5a6a5LmJXHJcbiAgLy8yOuWBj+W/g+mHj+WcqOadhuS7tuWxgOmDqOWdkOagh+ezu+S4reWumuS5iVxyXG4gIHByb3RlY3RlZCBfb2Zmc2V0T3B0aW9uOiBzdHJpbmcgPSBcIlwiO1xyXG4gIC8vIOadhuerr+WBj+W/g+mHjy4oY20pXHJcbiAgLy8g5aeL5q615ZKM5pyr56uv55qE5YGP56e75YC8LjbkuKpmbG9hdOWAvC7lgLzooajnpLrlr7nlupTlnZDmoIfovbTkuIrnmoTot53nprtcclxuICBwcm90ZWN0ZWQgX3N0YXJ0T2Zmc2V0OiBudW1iZXJbXSA9IFswLCAwLCAwXTtcclxuICBwcm90ZWN0ZWQgX2VuZE9mZnNldDogbnVtYmVyW10gPSBbMCwgMCwgMF07XHJcblxyXG4gIHByb3RlY3RlZCBfdmlld2VyOiB2aWV3ZXI7XHJcbiAgaXNTdmdEcmF3OiBib29sZWFuO1xyXG5cclxuICAvLyB0ZXh0ID0gbnVsbDtcclxuICBhZGREYXRhOiBzdHJpbmcgPSBcIlwiO1xyXG4gIHN0cmVzc091dFB1dDogc3RyaW5nID0gXCJcIjtcclxuICBnYXBFbGVtZW50VHlwZSA9IFwiXCI7XHJcblxyXG4gIC8vIDIzLTI4XHJcbiAgX3JlbGVhc2VfQSA9IFwiXCI7XHJcbiAgLy8gMjktMzRcclxuICBfcmVsZWFzZV9CID0gXCJcIjtcclxuICAvKipcclxuICAgKiDlvKbop5LvvJozNi00MVxyXG4gICAqIOWNleS9je+8mmRlZ1xyXG4gICAqL1xyXG4gIGNob3JkQW5nbGU6IG51bWJlciA9IG51bGw7XHJcbiAgLyoqXHJcbiAgICog5bGA6YOoWui9tOaMh+WQke+8mjQyLTQ1XHJcbiAgICovXHJcbiAgbG9jYWxaQXhpczogc3RyaW5nID0gXCJcIjtcclxuICAvKipcclxuICAgKiDmmK/lkKblhYXmsLTvvJo0NlxyXG4gICAqL1xyXG4gIGZsb29kQ29uZGl0aW9uOiBzdHJpbmcgPSBcIlwiO1xyXG4gIC8qKlxyXG4gICAqIOWxiOabsumVv+W6pumAiemhue+8mjQ3XHJcbiAgICovXHJcbiAga09yTE9wdGlvbjogc3RyaW5nID0gXCJcIjtcclxuICAvKipcclxuICAgKiDlubPlnYflvKbmnYblpJblvoTvvJo0OC01MVxyXG4gICAqIOWNleS9je+8mm1cclxuICAgKi9cclxuICBhdmdKb2ludFRoaWNrbmVzczogc3RyaW5nID0gbnVsbDtcclxuICAvKipcclxuICAgKiDlsYjmm7JLWS9MWe+8mjUyLTU1XHJcbiAgICovXHJcbiAga0ZhY3Rvcl9LWTogc3RyaW5nID0gXCJcIjtcclxuICAvKipcclxuICAgKiDlsYjmm7JLWi9MWu+8mjU2LTU5XHJcbiAgICovXHJcbiAga0ZhY3Rvcl9LWjogc3RyaW5nID0gXCJcIjtcclxuICAvKipcclxuICAgKiDlnIbnrqHliarliIfkv67mraM6NjAtNjRcclxuICAgKi9cclxuICBzaGVhck1vZGlmaWVyOiBzdHJpbmcgPSBudWxsO1xyXG4gIC8qKlxyXG4gICAqIOadkOaWmeWvhuW6pjo2NS03MFxyXG4gICAqIOWNleS9je+8mnQvbV4zXHJcbiAgICovXHJcbiAgZGVuc2l0eTogc3RyaW5nID0gbnVsbDtcclxuICAvKipcclxuICAgKiDljZXlhYPmlbDph4/vvJo3MS03MlxyXG4gICAqL1xyXG4gIHVjU2VnbWVudHM6IHN0cmluZyA9IG51bGw7XHJcbiAgLyoqXHJcbiAgICog5pyJ5pWI5aSW5b6EOjczLTc4XHJcbiAgICog5Y2V5L2N77yaY21cclxuICAgKi9cclxuICBlZmZlY3RpdmVEaWFtZXRlcjogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgLy8vIOS4muWKoeWxnuaAp1xyXG4gIHByaXZhdGUgX2FkZGl0aW9uYWxQcm9wZXJ0eTogTWVtYmVyQWRkaXRpb25hbFByb3BlcnR5ID0gbnVsbDtcclxuXHJcbiAgc3RhdGljIGN1cnZlVGVzc051bSA9IDEwO1xyXG4gIHN0YXRpYyBnX0dyaWRSYXRpbyA9IC0xO1xyXG4gIC8qKlxyXG4gICAqIOWni+err+minOiJsu+8iOS6keWbvuS9v+eUqO+8iVxyXG4gICAqIDAtMVxyXG4gICAqL1xyXG4gIHN0YXJ0Q29sb3I6IG51bWJlcltdID0gbnVsbDtcclxuICAvKipcclxuICAgKiDmnKvnq6/popzoibLvvIjkupHlm77kvb/nlKjvvIlcclxuICAgKiAwLTFcclxuICAgKi9cclxuICBlbmRDb2xvcjogbnVtYmVyW10gPSBudWxsO1xyXG5cclxuICBfaXNEcmF3U2l6ZSA9IGZhbHNlO1xyXG4gIF9pc0RyYXdOdW1iZXIgPSBmYWxzZTtcclxuICBfaXNEcmF3QXhpcyA9IGZhbHNlO1xyXG4gIF9pc0RyYXdGaXhpdHkgPSBmYWxzZTtcclxuICBfaXNEcmF3TGFiZWwgPSBmYWxzZTtcclxuXHJcbiAgLy8gc3ZnSXRlbTogU3ZnSXRlbTtcclxuICBheGlzU2VnOiBMb25nYW4uU2VnbWVudDtcclxuICBzaXplVGV4dDtcclxuICBzaXplVGV4dHMgPSBuZXcgQXJyYXk8YW55PigpO1xyXG4gIGZpeGl0eVRleHQ7XHJcbiAgbnVtYmVyVGV4dDtcclxuICBsYWJlbFJlY3Q7XHJcbiAgbGFiZWxUZXh0O1xyXG5cclxuICAvLyDmnInpmZDlhYPnvZHmoLzmmL7npLpcclxuICBzZWdtZW50TGVuZ3RoQ29lZmYgPSAxO1xyXG4gIC8vIOadhuS7tum7mOiupOminOiJslxyXG4gIC8vIGZhY2VDb2xvciA9IFsyNTUsIDE1NywgMCwgMV07XHJcbiAgLy8g5p2G5Lu26aKc6ImyLOS8mOWFiOe6p+mrmOS6jk9iamVjdENvbG9y55qEbWVtYmVyRmFjZUNvbG9yLlxyXG4gIGZhY2VDb2xvciA9IG51bGw7XHJcbiAgbGluZUNvbG9yID0gbnVsbDtcclxuXHJcbiAgLy8g5piv5ZCmWOaSkeS4reeahOadhuS7ti5cclxuICBpc1hCcmFjaW5nID0gZmFsc2U7XHJcblxyXG4gIGRpdkRpc3RhbmNlcyA9IG51bGw7XHJcbiAgZGl2Q29sb3JzID0gbnVsbDtcclxuXHJcbiAgLy8gcHVibGljIGdldCBpc1N0YXlCYXIoKSB7XHJcbiAgLy8gICByZXR1cm4gdGhpcy5faXNTdGF5QmFyO1xyXG4gIC8vIH1cclxuXHJcbiAgLy8gcHVibGljIHNldCBpc1N0YXlCYXIodmFsdWUpIHtcclxuICAvLyAgIHRoaXMuX2lzU3RheUJhciA9IHZhbHVlO1xyXG4gIC8vIH1cclxuXHJcbiAgLy8gcHVibGljIGdldCBsYXllcigpIHtcclxuICAvLyAgIHJldHVybiB0aGlzLl9sYXllcjtcclxuICAvLyB9XHJcblxyXG4gIC8vIHB1YmxpYyBzZXQgbGF5ZXIodmFsdWUpIHtcclxuICAvLyAgIHRoaXMuX2xheWVyID0gdmFsdWU7XHJcbiAgLy8gfVxyXG5cclxuICBvdmVycmlkZSBnZXQgbmFtZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9uYW1lO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgc2V0IG5hbWUodmFsdWUpIHtcclxuICAgIGlmICgoUHJvY2Vzcy5hY3RpdmVQcm9jZXNzIGFzIFByb2Nlc3MpLm5hbWVNYXBNZW1iZXIuZ2V0KHRoaXMubmFtZSkpIHtcclxuICAgICAgKFByb2Nlc3MuYWN0aXZlUHJvY2VzcyBhcyBQcm9jZXNzKS5uYW1lTWFwTWVtYmVyLmRlbGV0ZSh0aGlzLm5hbWUpO1xyXG4gICAgICAoUHJvY2Vzcy5hY3RpdmVQcm9jZXNzIGFzIFByb2Nlc3MpLm5hbWVNYXBNZW1iZXIuc2V0KHZhbHVlLCB0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9uYW1lID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHJlbGVhc2VfQSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9yZWxlYXNlX0E7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0IHJlbGVhc2VfQSh2YWx1ZSkge1xyXG4gICAgdGhpcy5fcmVsZWFzZV9BID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHJlbGVhc2VfQigpIHtcclxuICAgIHJldHVybiB0aGlzLl9yZWxlYXNlX0I7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0IHJlbGVhc2VfQih2YWx1ZSkge1xyXG4gICAgdGhpcy5fcmVsZWFzZV9CID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGFkZGl0aW9uYWxQcm9wZXJ0eSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9hZGRpdGlvbmFsUHJvcGVydHk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0IGFkZGl0aW9uYWxQcm9wZXJ0eSh2YWx1ZSkge1xyXG4gICAgdGhpcy5fYWRkaXRpb25hbFByb3BlcnR5ID0gdmFsdWU7XHJcbiAgICB0aGlzLmFkZGl0aW9uYWxQcm9wZXJ0eUFjdGl2ZSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzRHJhd1NpemUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNEcmF3U2l6ZTtcclxuICB9XHJcblxyXG4gIHNldCBpc0RyYXdTaXplKGlzRHJhd1NpemUpIHtcclxuICAgIHRoaXMuX2lzRHJhd1NpemUgPSBpc0RyYXdTaXplO1xyXG4gICAgaWYgKGlzRHJhd1NpemUpIHtcclxuICAgICAgdGhpcy5pc0RyYXdOdW1iZXIgPSBmYWxzZTtcclxuICAgICAgdGhpcy5kcmF3U2l6ZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jbGVhclNpemVUZXh0cygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGlzRHJhd051bWJlcigpIHtcclxuICAgIHJldHVybiB0aGlzLl9pc0RyYXdOdW1iZXI7XHJcbiAgfVxyXG5cclxuICBzZXQgaXNEcmF3TnVtYmVyKGlzRHJhd051bWJlcikge1xyXG4gICAgdGhpcy5faXNEcmF3TnVtYmVyID0gaXNEcmF3TnVtYmVyO1xyXG4gICAgaWYgKGlzRHJhd051bWJlcikge1xyXG4gICAgICB0aGlzLmlzRHJhd1NpemUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5kcmF3TnVtYmVyKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm51bWJlclRleHQgJiYgdGhpcy5udW1iZXJUZXh0LmNsZWFyKCk7XHJcbiAgICAgIHRoaXMubnVtYmVyVGV4dCA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgaXNEcmF3Rml4aXR5KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzRHJhd0ZpeGl0eTtcclxuICB9XHJcblxyXG4gIHNldCBpc0RyYXdGaXhpdHkoaXNEcmF3Rml4aXR5KSB7XHJcbiAgICB0aGlzLl9pc0RyYXdGaXhpdHkgPSBpc0RyYXdGaXhpdHk7XHJcbiAgICBpZiAoaXNEcmF3Rml4aXR5KSB7XHJcbiAgICAgIHRoaXMuZHJhd0ZpeGl0eSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5maXhpdHlUZXh0ICYmIHRoaXMuZml4aXR5VGV4dC5jbGVhcigpO1xyXG4gICAgICB0aGlzLmZpeGl0eVRleHQgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGlzRHJhd0F4aXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNEcmF3QXhpcztcclxuICB9XHJcblxyXG4gIHNldCBpc0RyYXdBeGlzKGlzRHJhd0F4aXMpIHtcclxuICAgIHRoaXMuX2lzRHJhd0F4aXMgPSBpc0RyYXdBeGlzO1xyXG4gICAgaWYgKGlzRHJhd0F4aXMpIHtcclxuICAgICAgdGhpcy5kcmF3QXhpcygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuYXhpc1NlZykge1xyXG4gICAgICAgIHRoaXMuYXhpc1NlZy5jbGVhckFsbCgpO1xyXG4gICAgICAgIHRoaXMuYXhpc1NlZyA9IG51bGw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCBpc0RyYXdMYWJlbCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9pc0RyYXdMYWJlbDtcclxuICB9XHJcblxyXG4gIHNldCBpc0RyYXdMYWJlbChpc0RyYXdMYWJlbCkge1xyXG4gICAgdGhpcy5faXNEcmF3TGFiZWwgPSBpc0RyYXdMYWJlbDtcclxuICAgIGlmIChpc0RyYXdMYWJlbCkge1xyXG4gICAgICAvLyB0aGlzLmRyYXdMYWJlbCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMubGFiZWxSZWN0KSB7XHJcbiAgICAgICAgLy8gdGhpcy5sYWJlbFJlY3QuY2xlYXIoKTtcclxuICAgICAgICB0aGlzLmxhYmVsUmVjdC5yZW1vdmUoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmxhYmVsUmVjdCA9IG51bGw7XHJcbiAgICAgIHRoaXMubGFiZWxUZXh0ICYmIHRoaXMubGFiZWxUZXh0LmNsZWFyKCk7XHJcbiAgICAgIHRoaXMubGFiZWxUZXh0ID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFkZGl0aW9uYWxQcm9wZXJ0eUFjdGl2ZSgpIHtcclxuICAgIGxldCBwcm9wZXJ0eSA9IHRoaXMuYWRkaXRpb25hbFByb3BlcnR5O1xyXG4gICAgaWYgKHByb3BlcnR5KSB7XHJcbiAgICAgIC8vXHJcbiAgICAgIGlmIChwcm9wZXJ0eS5sb2NhbFpBeGlzICYmIHByb3BlcnR5Lm92ZXJyaWRlTG9jYWxaQXhpcykge1xyXG4gICAgICAgIHRoaXMubG9jYWxaQXhpcyA9IExvbmdhbi5kZWVwQ2xvbmUocHJvcGVydHkubG9jYWxaQXhpcyk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHByb3BlcnR5LmNob3JkQW5nbGUgJiYgcHJvcGVydHkub3ZlcnJpZGVDaHJvZEFuZ2xlKSB7XHJcbiAgICAgICAgdGhpcy5jaG9yZEFuZ2xlID0gTG9uZ2FuLmRlZXBDbG9uZShwcm9wZXJ0eS5jaG9yZEFuZ2xlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAocHJvcGVydHkucmVsZWFzZV9BICE9PSBudWxsICYmIHByb3BlcnR5Lm92ZXJyaWRlUmVsZWFzZV9BKSB7XHJcbiAgICAgICAgdGhpcy5yZWxlYXNlX0EgPSBMb25nYW4uZGVlcENsb25lKHByb3BlcnR5LnJlbGVhc2VfQSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHByb3BlcnR5LnJlbGVhc2VfQiAhPT0gbnVsbCAmJiBwcm9wZXJ0eS5vdmVycmlkZVJlbGVhc2VfQikge1xyXG4gICAgICAgIHRoaXMucmVsZWFzZV9CID0gTG9uZ2FuLmRlZXBDbG9uZShwcm9wZXJ0eS5yZWxlYXNlX0IpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChwcm9wZXJ0eS5idWNraW5nT3B0aW9uICE9PSBudWxsICYmIHByb3BlcnR5Lm92ZXJyaWRlQnVja2luZ09wdGlvbikge1xyXG4gICAgICAgIHRoaXMua09yTE9wdGlvbiA9IExvbmdhbi5kZWVwQ2xvbmUocHJvcGVydHkuYnVja2luZ09wdGlvbik7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKFxyXG4gICAgICAgIHByb3BlcnR5LmF2Z0pvaW50VGhpY2tuZXNzICE9PSBudWxsICYmXHJcbiAgICAgICAgcHJvcGVydHkub3ZlcnJpZGVBdmdKb2ludFRoaWNrbmVzc1xyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmF2Z0pvaW50VGhpY2tuZXNzID0gTG9uZ2FuLmRlZXBDbG9uZShwcm9wZXJ0eS5hdmdKb2ludFRoaWNrbmVzcyk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHByb3BlcnR5LmZsb29kQ29uZGl0aW9uICE9PSBudWxsICYmIHByb3BlcnR5Lm92ZXJyaWRlRmxvb2RDb25kaXRpb24pIHtcclxuICAgICAgICB0aGlzLmZsb29kQ29uZGl0aW9uID0gTG9uZ2FuLmRlZXBDbG9uZShwcm9wZXJ0eS5mbG9vZENvbmRpdGlvbik7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHByb3BlcnR5LmtGYWN0b3JfS1kgIT09IG51bGwgJiYgcHJvcGVydHkub3ZlcnJpZGVLRmFjdG9yX0tZKSB7XHJcbiAgICAgICAgdGhpcy5rRmFjdG9yX0tZID0gTG9uZ2FuLmRlZXBDbG9uZShwcm9wZXJ0eS5rRmFjdG9yX0tZKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAocHJvcGVydHkua0ZhY3Rvcl9LWiAhPT0gbnVsbCAmJiBwcm9wZXJ0eS5vdmVycmlkZUtGYWN0b3JfS1opIHtcclxuICAgICAgICB0aGlzLmtGYWN0b3JfS1ogPSBMb25nYW4uZGVlcENsb25lKHByb3BlcnR5LmtGYWN0b3JfS1opO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChwcm9wZXJ0eS5zaGVhck1vZGlmaWVyICE9PSBudWxsICYmIHByb3BlcnR5Lm92ZXJyaWRlU2hlYXJNb2RpZmllcikge1xyXG4gICAgICAgIHRoaXMuc2hlYXJNb2RpZmllciA9IExvbmdhbi5kZWVwQ2xvbmUocHJvcGVydHkuc2hlYXJNb2RpZmllcik7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHByb3BlcnR5LmRlbnNpdHkgIT09IG51bGwgJiYgcHJvcGVydHkub3ZlcnJpZGVEZW5zaXR5KSB7XHJcbiAgICAgICAgdGhpcy5kZW5zaXR5ID0gTG9uZ2FuLmRlZXBDbG9uZShwcm9wZXJ0eS5kZW5zaXR5KTtcclxuICAgICAgfVxyXG4gICAgICBpZiAocHJvcGVydHkudWNTZWdtZW50cyAhPT0gbnVsbCAmJiBwcm9wZXJ0eS5vdmVycmlkZVVjU2VnbWVudHMpIHtcclxuICAgICAgICB0aGlzLnVjU2VnbWVudHMgPSBMb25nYW4uZGVlcENsb25lKHByb3BlcnR5LnVjU2VnbWVudHMpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChcclxuICAgICAgICBwcm9wZXJ0eS5lZmZlY3RpdmVEaWFtZXRlciAhPT0gbnVsbCAmJlxyXG4gICAgICAgIHByb3BlcnR5Lm92ZXJyaWRlRWZmZWN0aXZlRGlhbWV0ZXJcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5lZmZlY3RpdmVEaWFtZXRlciA9IExvbmdhbi5kZWVwQ2xvbmUocHJvcGVydHkuZWZmZWN0aXZlRGlhbWV0ZXIpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChwcm9wZXJ0eS5vZmZzZXRPcHRpb24gIT09IG51bGwgJiYgcHJvcGVydHkub3ZlcnJpZGVPZmZzZXRPcHRpb24pIHtcclxuICAgICAgICB0aGlzLm9mZnNldE9wdGlvbiA9IExvbmdhbi5kZWVwQ2xvbmUocHJvcGVydHkub2Zmc2V0T3B0aW9uKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgcHJvcGVydHkuc3RhcnRPZmZzZXQgJiZcclxuICAgICAgICBwcm9wZXJ0eS5vZmZzZXRPcHRpb24gJiZcclxuICAgICAgICBwcm9wZXJ0eS5vZmZzZXRPcHRpb24gIT09IFwiMFwiICYmXHJcbiAgICAgICAgcHJvcGVydHkub3ZlcnJpZGVTdGFydE9mZnNldFxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLnN0YXJ0T2Zmc2V0ID0gWy4uLnByb3BlcnR5LnN0YXJ0T2Zmc2V0XTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgcHJvcGVydHkuZW5kT2Zmc2V0ICYmXHJcbiAgICAgICAgcHJvcGVydHkub2Zmc2V0T3B0aW9uICYmXHJcbiAgICAgICAgcHJvcGVydHkub2Zmc2V0T3B0aW9uICE9PSBcIjBcIiAmJlxyXG4gICAgICAgIHByb3BlcnR5Lm92ZXJyaWRlRW5kT2Zmc2V0XHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuZW5kT2Zmc2V0ID0gWy4uLnByb3BlcnR5LmVuZE9mZnNldF07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRvYWRkaXRpb25hbFByb3BlcnR5KCkge1xyXG4gICAgbGV0IHByb3BlcnR5ID0gbmV3IE1lbWJlckFkZGl0aW9uYWxQcm9wZXJ0eSgpO1xyXG4gICAgaWYgKHRoaXMubG9jYWxaQXhpcyAhPT0gbnVsbCkge1xyXG4gICAgICBwcm9wZXJ0eS5sb2NhbFpBeGlzID0gdGhpcy5sb2NhbFpBeGlzO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY2hvcmRBbmdsZSAhPT0gbnVsbCkge1xyXG4gICAgICBwcm9wZXJ0eS5jaG9yZEFuZ2xlID0gdGhpcy5jaG9yZEFuZ2xlO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucmVsZWFzZV9BICE9PSBudWxsKSB7XHJcbiAgICAgIHByb3BlcnR5LnJlbGVhc2VfQSA9IHRoaXMucmVsZWFzZV9BO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMucmVsZWFzZV9CICE9PSBudWxsKSB7XHJcbiAgICAgIHByb3BlcnR5LnJlbGVhc2VfQiA9IHRoaXMucmVsZWFzZV9CO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuYXZnSm9pbnRUaGlja25lc3MgIT09IG51bGwpIHtcclxuICAgICAgcHJvcGVydHkuYXZnSm9pbnRUaGlja25lc3MgPSB0aGlzLmF2Z0pvaW50VGhpY2tuZXNzO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZmxvb2RDb25kaXRpb24gIT09IG51bGwpIHtcclxuICAgICAgcHJvcGVydHkuZmxvb2RDb25kaXRpb24gPSB0aGlzLmZsb29kQ29uZGl0aW9uO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMua09yTE9wdGlvbiAhPT0gbnVsbCkge1xyXG4gICAgICBwcm9wZXJ0eS5idWNraW5nT3B0aW9uID0gdGhpcy5rT3JMT3B0aW9uO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMua0ZhY3Rvcl9LWSAhPT0gbnVsbCkge1xyXG4gICAgICBwcm9wZXJ0eS5rRmFjdG9yX0tZID0gdGhpcy5rRmFjdG9yX0tZO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMua0ZhY3Rvcl9LWiAhPT0gbnVsbCkge1xyXG4gICAgICBwcm9wZXJ0eS5rRmFjdG9yX0taID0gdGhpcy5rRmFjdG9yX0taO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc2hlYXJNb2RpZmllciAhPT0gbnVsbCkge1xyXG4gICAgICBwcm9wZXJ0eS5zaGVhck1vZGlmaWVyID0gdGhpcy5zaGVhck1vZGlmaWVyO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZGVuc2l0eSAhPT0gbnVsbCkge1xyXG4gICAgICBwcm9wZXJ0eS5kZW5zaXR5ID0gdGhpcy5kZW5zaXR5O1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMudWNTZWdtZW50cyAhPT0gbnVsbCkge1xyXG4gICAgICBwcm9wZXJ0eS51Y1NlZ21lbnRzID0gdGhpcy51Y1NlZ21lbnRzO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZWZmZWN0aXZlRGlhbWV0ZXIgIT09IG51bGwpIHtcclxuICAgICAgcHJvcGVydHkuZWZmZWN0aXZlRGlhbWV0ZXIgPSB0aGlzLmVmZmVjdGl2ZURpYW1ldGVyO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMub2Zmc2V0T3B0aW9uICE9PSBudWxsKSB7XHJcbiAgICAgIHByb3BlcnR5Lm9mZnNldE9wdGlvbiA9IHRoaXMub2Zmc2V0T3B0aW9uO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuc3RhcnRPZmZzZXQgIT09IG51bGwpIHtcclxuICAgICAgcHJvcGVydHkuc3RhcnRPZmZzZXQgPSB0aGlzLnN0YXJ0T2Zmc2V0O1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZW5kT2Zmc2V0ICE9PSBudWxsKSB7XHJcbiAgICAgIHByb3BlcnR5LmVuZE9mZnNldCA9IHRoaXMuZW5kT2Zmc2V0O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBwcm9wZXJ0eTtcclxuICB9XHJcblxyXG4gIC8vIOadhuS7tueahOWRveWQjeaYry0tLS1cIui1t+eCueWQjeWtl1wiLVwi57uI54K55ZCN5a2XXCJcclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcblxyXG4gICAgLy8gdGhpcy5fcHJvcGVydGllcy5hZGQobmV3IE1lbWJlclByb3BlcnR5KHRoaXMpKVxyXG4gICAgdGhpcy5pbnN0YW5jZVR5cGVzLmFkZChcIm1haW5cIiwgSW5zdGFuY2VEZXNpZ25CYXNlT2JqZWN0LnByb3RvdHlwZSk7XHJcbiAgICB0aGlzLmlzRHJhd1N2ZyA9IHRydWU7XHJcbiAgICB0aGlzLnNlZ21lbnQuY29sb3Iuc2V0RWRnZShbMjU1LCAyNTUsIDI1NSwgMV0pO1xyXG4gICAgdGhpcy5zZWdtZW50LmNvbG9yLnNldExpbmUoT2JqZWN0Q29sb3IubWVtYmVyTGluZUNvbG9yKTtcclxuICAgIGlmICghdGhpcy5mYWNlQ29sb3IpIHtcclxuICAgICAgdGhpcy5mYWNlQ29sb3IgPSBPYmplY3RDb2xvci5tZW1iZXJGYWNlQ29sb3I7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHN0YXJ0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3N0YXJ0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldCBzdGFydCh2YWx1ZTogSm9pbnRPYmplY3QpIHtcclxuICAgIGlmICh0aGlzLl9zdGFydCBpbnN0YW5jZW9mIEpvaW50T2JqZWN0KSB7XHJcbiAgICAgIGxldCBsaXN0ID0gKFxyXG4gICAgICAgIFByb2Nlc3MuYWN0aXZlUHJvY2VzcyBhcyBQcm9jZXNzXHJcbiAgICAgICkuam9pbnRNYXBSZWxlYXRpdmVNZW1iZXJzLmdldCh0aGlzLl9zdGFydCk7XHJcbiAgICAgIGxpc3QucmVtb3ZlKHRoaXMpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fc3RhcnQgPSB2YWx1ZTtcclxuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEpvaW50T2JqZWN0KSB7XHJcbiAgICAgIGxldCBsaXN0ID0gKFxyXG4gICAgICAgIFByb2Nlc3MuYWN0aXZlUHJvY2VzcyBhcyBQcm9jZXNzXHJcbiAgICAgICkuam9pbnRNYXBSZWxlYXRpdmVNZW1iZXJzLmdldCh2YWx1ZSk7XHJcbiAgICAgIGlmICghbGlzdCkge1xyXG4gICAgICAgIGxpc3QgPSBuZXcgTG9uZ2FuLkxpc3Q8TWVtYmVyT2JqZWN0PigpO1xyXG4gICAgICAgIChQcm9jZXNzLmFjdGl2ZVByb2Nlc3MgYXMgUHJvY2Vzcykuam9pbnRNYXBSZWxlYXRpdmVNZW1iZXJzLnNldChcclxuICAgICAgICAgIHZhbHVlLFxyXG4gICAgICAgICAgbGlzdFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgbGlzdC5hZGQodGhpcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGVuZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9lbmQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0IGVuZCh2YWx1ZTogSm9pbnRPYmplY3QpIHtcclxuICAgIGlmICh0aGlzLl9lbmQgaW5zdGFuY2VvZiBKb2ludE9iamVjdCkge1xyXG4gICAgICAoUHJvY2Vzcy5hY3RpdmVQcm9jZXNzIGFzIFByb2Nlc3MpLmpvaW50TWFwUmVsZWF0aXZlTWVtYmVyc1xyXG4gICAgICAgIC5nZXQodGhpcy5fZW5kKVxyXG4gICAgICAgIC5yZW1vdmUodGhpcyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9lbmQgPSB2YWx1ZTtcclxuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEpvaW50T2JqZWN0KSB7XHJcbiAgICAgIGxldCBsaXN0ID0gKFxyXG4gICAgICAgIFByb2Nlc3MuYWN0aXZlUHJvY2VzcyBhcyBQcm9jZXNzXHJcbiAgICAgICkuam9pbnRNYXBSZWxlYXRpdmVNZW1iZXJzLmdldCh2YWx1ZSk7XHJcbiAgICAgIGlmICghbGlzdCkge1xyXG4gICAgICAgIGxpc3QgPSBuZXcgTG9uZ2FuLkxpc3Q8TWVtYmVyT2JqZWN0PigpO1xyXG4gICAgICAgIChQcm9jZXNzLmFjdGl2ZVByb2Nlc3MgYXMgUHJvY2Vzcykuam9pbnRNYXBSZWxlYXRpdmVNZW1iZXJzLnNldChcclxuICAgICAgICAgIHZhbHVlLFxyXG4gICAgICAgICAgbGlzdFxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgbGlzdC5hZGQodGhpcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGdydXAoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZ3J1cDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXQgZ3J1cCh2YWx1ZTogR3J1cE9iamVjdCkge1xyXG4gICAgaWYgKHRoaXMuX2dydXApIHtcclxuICAgICAgbGV0IGxpc3QgPSAoUHJvY2Vzcy5hY3RpdmVQcm9jZXNzIGFzIFByb2Nlc3MpLmdydXBNYXBSZWxlYXRpdmVNZW1iZXJzLmdldChcclxuICAgICAgICB0aGlzLl9ncnVwXHJcbiAgICAgICk7XHJcbiAgICAgIGxpc3QucmVtb3ZlKHRoaXMpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fZ3J1cCA9IHZhbHVlO1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIGxldCBsaXN0ID0gKFByb2Nlc3MuYWN0aXZlUHJvY2VzcyBhcyBQcm9jZXNzKS5ncnVwTWFwUmVsZWF0aXZlTWVtYmVycy5nZXQoXHJcbiAgICAgICAgdmFsdWVcclxuICAgICAgKTtcclxuICAgICAgaWYgKCFsaXN0KSB7XHJcbiAgICAgICAgbGlzdCA9IG5ldyBMb25nYW4uTGlzdDxNZW1iZXJPYmplY3Q+KCk7XHJcbiAgICAgICAgKFByb2Nlc3MuYWN0aXZlUHJvY2VzcyBhcyBQcm9jZXNzKS5ncnVwTWFwUmVsZWF0aXZlTWVtYmVycy5zZXQoXHJcbiAgICAgICAgICB2YWx1ZSxcclxuICAgICAgICAgIGxpc3RcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIGxpc3QuYWRkKHRoaXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBvZmZzZXRPcHRpb24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fb2Zmc2V0T3B0aW9uO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldCBvZmZzZXRPcHRpb24odmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fb2Zmc2V0T3B0aW9uID0gdmFsdWU7XHJcbiAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgIGlmICh0aGlzLnN0YXJ0T2Zmc2V0KSB7XHJcbiAgICAgICAgdGhpcy5zdGFydE9mZnNldCA9IFswLCAwLCAwXTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5lbmRPZmZzZXQpIHtcclxuICAgICAgICB0aGlzLmVuZE9mZnNldCA9IFswLCAwLCAwXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzdGFydE9mZnNldCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9zdGFydE9mZnNldDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXQgc3RhcnRPZmZzZXQodmFsdWU6IG51bWJlcltdKSB7XHJcbiAgICB0aGlzLl9zdGFydE9mZnNldCA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBlbmRPZmZzZXQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZW5kT2Zmc2V0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldCBlbmRPZmZzZXQodmFsdWU6IG51bWJlcltdKSB7XHJcbiAgICB0aGlzLl9lbmRPZmZzZXQgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHNlcmlhbGl6ZSgpOiBhbnkge1xyXG4gICAgbGV0IG9iaiA9IHN1cGVyLnNlcmlhbGl6ZSgpO1xyXG5cclxuICAgIGlmICh0aGlzLnN0YXJ0KSB7XHJcbiAgICAgIG9iai5zdGFydCA9IHRoaXMuc3RhcnQuaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZW5kKSB7XHJcbiAgICAgIG9iai5lbmQgPSB0aGlzLmVuZC5pZDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5ncnVwKSB7XHJcbiAgICAgIG9iai5ncnVwID0gdGhpcy5ncnVwLmlkO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQodGhpcy5vZmZzZXRPcHRpb24pKSB7XHJcbiAgICAgIG9iai5vZmZzZXRPcHRpb24gPSB0aGlzLm9mZnNldE9wdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5zdGFydE9mZnNldCkge1xyXG4gICAgICBvYmouc3RhcnRPZmZzZXQgPSB0aGlzLnN0YXJ0T2Zmc2V0O1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmVuZE9mZnNldCkge1xyXG4gICAgICBvYmouZW5kT2Zmc2V0ID0gdGhpcy5lbmRPZmZzZXQ7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuYWRkRGF0YSkge1xyXG4gICAgICBvYmouYWRkRGF0YSA9IHRoaXMuYWRkRGF0YTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQodGhpcy5zdHJlc3NPdXRQdXQpKSB7XHJcbiAgICAgIG9iai5zdHJlc3NPdXRQdXQgPSB0aGlzLnN0cmVzc091dFB1dDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQodGhpcy5nYXBFbGVtZW50VHlwZSkpIHtcclxuICAgICAgb2JqLmdhcEVsZW1lbnRUeXBlID0gdGhpcy5nYXBFbGVtZW50VHlwZTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQodGhpcy5yZWxlYXNlX0EpKSB7XHJcbiAgICAgIG9iai5yZWxlYXNlX0EgPSB0aGlzLnJlbGVhc2VfQTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQodGhpcy5yZWxlYXNlX0IpKSB7XHJcbiAgICAgIG9iai5yZWxlYXNlX0IgPSB0aGlzLnJlbGVhc2VfQjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQodGhpcy5jaG9yZEFuZ2xlKSkge1xyXG4gICAgICBvYmouY2hvcmRBbmdsZSA9IHRoaXMuY2hvcmRBbmdsZTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQodGhpcy5sb2NhbFpBeGlzKSkge1xyXG4gICAgICBvYmoubG9jYWxaQXhpcyA9IHRoaXMubG9jYWxaQXhpcztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQodGhpcy5mbG9vZENvbmRpdGlvbikpIHtcclxuICAgICAgb2JqLmZsb29kQ29uZGl0aW9uID0gdGhpcy5mbG9vZENvbmRpdGlvbjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQodGhpcy5rT3JMT3B0aW9uKSkge1xyXG4gICAgICBvYmoua09yTE9wdGlvbiA9IHRoaXMua09yTE9wdGlvbjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQodGhpcy5hdmdKb2ludFRoaWNrbmVzcykpIHtcclxuICAgICAgb2JqLmF2Z0pvaW50VGhpY2tuZXNzID0gdGhpcy5hdmdKb2ludFRoaWNrbmVzcztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQodGhpcy5rRmFjdG9yX0tZKSkge1xyXG4gICAgICBvYmoua0ZhY3Rvcl9LWSA9IHRoaXMua0ZhY3Rvcl9LWTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQodGhpcy5rRmFjdG9yX0taKSkge1xyXG4gICAgICBvYmoua0ZhY3Rvcl9LWiA9IHRoaXMua0ZhY3Rvcl9LWjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQodGhpcy5zaGVhck1vZGlmaWVyKSkge1xyXG4gICAgICBvYmouc2hlYXJNb2RpZmllciA9IHRoaXMuc2hlYXJNb2RpZmllcjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQodGhpcy51Y1NlZ21lbnRzKSkge1xyXG4gICAgICBvYmoudWNTZWdtZW50cyA9IHRoaXMudWNTZWdtZW50cztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQodGhpcy5lZmZlY3RpdmVEaWFtZXRlcikpIHtcclxuICAgICAgb2JqLmVmZmVjdGl2ZURpYW1ldGVyID0gdGhpcy5lZmZlY3RpdmVEaWFtZXRlcjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQodGhpcy5kZW5zaXR5KSkge1xyXG4gICAgICBvYmouZGVuc2l0eSA9IHRoaXMuZGVuc2l0eTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxuXHJcbiAgZGVzZXJpYWxpemUob2JqOiBhbnksIHBtOiBQZXJzaXN0ZW5jZU1hbmFnZXIpIHtcclxuICAgIGlmIChvYmouc3RhcnQpIHtcclxuICAgICAgbGV0IHN0YXJ0ID0gcG0ucmVmZXJlbmNlTGlzdC5nZXQob2JqLnN0YXJ0KTtcclxuICAgICAgaWYgKHN0YXJ0KSB7XHJcbiAgICAgICAgdGhpcy5zdGFydCA9IHN0YXJ0IGFzIEpvaW50T2JqZWN0O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc3RhcnQgPSBvYmouc3RhcnQ7XHJcbiAgICAgICAgcG0ubmVlZFJlZmVyZW5jZUxpc3QuYWRkKHRoaXMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9iai5lbmQpIHtcclxuICAgICAgbGV0IGVuZCA9IHBtLnJlZmVyZW5jZUxpc3QuZ2V0KG9iai5lbmQpO1xyXG4gICAgICBpZiAoZW5kKSB7XHJcbiAgICAgICAgdGhpcy5lbmQgPSBlbmQgYXMgSm9pbnRPYmplY3Q7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5lbmQgPSBvYmouZW5kO1xyXG4gICAgICAgIHBtLm5lZWRSZWZlcmVuY2VMaXN0LmFkZCh0aGlzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChvYmouZ3J1cCkge1xyXG4gICAgICBsZXQgZ3J1cCA9IHBtLnJlZmVyZW5jZUxpc3QuZ2V0KG9iai5ncnVwKTtcclxuICAgICAgaWYgKGdydXApIHtcclxuICAgICAgICB0aGlzLmdydXAgPSBncnVwIGFzIEdydXBPYmplY3Q7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5ncnVwID0gb2JqLmdydXA7XHJcbiAgICAgICAgcG0ubmVlZFJlZmVyZW5jZUxpc3QuYWRkKHRoaXMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMubm90TnVsbEFuZE5vdFVuZGVmaW5lZChvYmoub2Zmc2V0T3B0aW9uKSkge1xyXG4gICAgICB0aGlzLm9mZnNldE9wdGlvbiA9IG9iai5vZmZzZXRPcHRpb247XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9iai5zdGFydE9mZnNldCkge1xyXG4gICAgICB0aGlzLnN0YXJ0T2Zmc2V0ID0gQ2FlTnVtYmVyQXJyYXkob2JqLnN0YXJ0T2Zmc2V0KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAob2JqLmVuZE9mZnNldCkge1xyXG4gICAgICB0aGlzLmVuZE9mZnNldCA9IENhZU51bWJlckFycmF5KG9iai5lbmRPZmZzZXQpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChvYmouYWRkRGF0YSkge1xyXG4gICAgICB0aGlzLmFkZERhdGEgPSBvYmouYWRkRGF0YTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQob2JqLnN0cmVzc091dFB1dCkpIHtcclxuICAgICAgdGhpcy5zdHJlc3NPdXRQdXQgPSBvYmouc3RyZXNzT3V0UHV0O1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubm90TnVsbEFuZE5vdFVuZGVmaW5lZChvYmouZ2FwRWxlbWVudFR5cGUpKSB7XHJcbiAgICAgIHRoaXMuZ2FwRWxlbWVudFR5cGUgPSBvYmouZ2FwRWxlbWVudFR5cGU7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5ub3ROdWxsQW5kTm90VW5kZWZpbmVkKG9iai5yZWxlYXNlX0EpKSB7XHJcbiAgICAgIHRoaXMucmVsZWFzZV9BID0gb2JqLnJlbGVhc2VfQTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5ub3ROdWxsQW5kTm90VW5kZWZpbmVkKG9iai5yZWxlYXNlX0IpKSB7XHJcbiAgICAgIHRoaXMucmVsZWFzZV9CID0gb2JqLnJlbGVhc2VfQjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNob3JkQW5nbGUgPSBDYWVOdW1iZXIob2JqLmNob3JkQW5nbGUpO1xyXG5cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQob2JqLmxvY2FsWkF4aXMpKSB7XHJcbiAgICAgIHRoaXMubG9jYWxaQXhpcyA9IG9iai5sb2NhbFpBeGlzO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubm90TnVsbEFuZE5vdFVuZGVmaW5lZChvYmouZmxvb2RDb25kaXRpb24pKSB7XHJcbiAgICAgIHRoaXMuZmxvb2RDb25kaXRpb24gPSBvYmouZmxvb2RDb25kaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5ub3ROdWxsQW5kTm90VW5kZWZpbmVkKG9iai5rT3JMT3B0aW9uKSkge1xyXG4gICAgICB0aGlzLmtPckxPcHRpb24gPSBvYmoua09yTE9wdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmF2Z0pvaW50VGhpY2tuZXNzID0gQ2FlTnVtYmVyKG9iai5hdmdKb2ludFRoaWNrbmVzcyk7XHJcblxyXG4gICAgdGhpcy5rRmFjdG9yX0tZID0gb2JqLmtGYWN0b3JfS1k7XHJcblxyXG4gICAgdGhpcy5rRmFjdG9yX0taID0gb2JqLmtGYWN0b3JfS1o7XHJcblxyXG4gICAgdGhpcy5zaGVhck1vZGlmaWVyID0gQ2FlTnVtYmVyKG9iai5zaGVhck1vZGlmaWVyKTtcclxuXHJcbiAgICB0aGlzLmRlbnNpdHkgPSBDYWVOdW1iZXIob2JqLmRlbnNpdHkpO1xyXG5cclxuICAgIHRoaXMudWNTZWdtZW50cyA9IENhZU51bWJlcihvYmoudWNTZWdtZW50cyk7XHJcblxyXG4gICAgdGhpcy5lZmZlY3RpdmVEaWFtZXRlciA9IENhZU51bWJlcihvYmouZWZmZWN0aXZlRGlhbWV0ZXIpO1xyXG5cclxuICAgIHN1cGVyLmRlc2VyaWFsaXplKG9iaiwgcG0pO1xyXG4gICAgdGhpcy5zZXROZWVkVXBkYXRlKCk7XHJcbiAgfVxyXG5cclxuICBkZXNlcmlhbGl6ZUZyb21IaXN0b3J5KG9iajogYW55LCBwbTogUGVyc2lzdGVuY2VNYW5hZ2VyKSB7XHJcbiAgICBpZiAob2JqLnN0YXJ0KSB7XHJcbiAgICAgIGxldCBzdGFydCA9IHBtLnJlZmVyZW5jZUxpc3QuZ2V0KG9iai5zdGFydCk7XHJcbiAgICAgIGlmIChzdGFydCkge1xyXG4gICAgICAgIHRoaXMuc3RhcnQgPSBzdGFydCBhcyBKb2ludE9iamVjdDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnN0YXJ0ID0gcG0ucHJvY2Vzcy5maW5kUmVuZGVyT2JqZWN0QnlJZChvYmouc3RhcnQpIGFzIEpvaW50T2JqZWN0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9iai5lbmQpIHtcclxuICAgICAgbGV0IGVuZCA9IHBtLnJlZmVyZW5jZUxpc3QuZ2V0KG9iai5lbmQpO1xyXG4gICAgICBpZiAoZW5kKSB7XHJcbiAgICAgICAgdGhpcy5lbmQgPSBlbmQgYXMgSm9pbnRPYmplY3Q7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5lbmQgPSBwbS5wcm9jZXNzLmZpbmRSZW5kZXJPYmplY3RCeUlkKG9iai5lbmQpIGFzIEpvaW50T2JqZWN0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9iai5ncnVwKSB7XHJcbiAgICAgIGxldCBncnVwID0gcG0ucmVmZXJlbmNlTGlzdC5nZXQob2JqLmdydXApO1xyXG4gICAgICBpZiAoZ3J1cCkge1xyXG4gICAgICAgIHRoaXMuZ3J1cCA9IGdydXAgYXMgR3J1cE9iamVjdDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmdydXAgPSBwbS5wcm9jZXNzLmZpbmRSZW5kZXJPYmplY3RCeUlkKG9iai5ncnVwKSBhcyBHcnVwT2JqZWN0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMubm90TnVsbEFuZE5vdFVuZGVmaW5lZChvYmoub2Zmc2V0T3B0aW9uKSkge1xyXG4gICAgICB0aGlzLm9mZnNldE9wdGlvbiA9IG9iai5vZmZzZXRPcHRpb247XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9iai5zdGFydE9mZnNldCkge1xyXG4gICAgICB0aGlzLnN0YXJ0T2Zmc2V0ID0gQ2FlTnVtYmVyQXJyYXkob2JqLnN0YXJ0T2Zmc2V0KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAob2JqLmVuZE9mZnNldCkge1xyXG4gICAgICB0aGlzLmVuZE9mZnNldCA9IENhZU51bWJlckFycmF5KG9iai5lbmRPZmZzZXQpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChvYmouYWRkRGF0YSkge1xyXG4gICAgICB0aGlzLmFkZERhdGEgPSBvYmouYWRkRGF0YTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQob2JqLnN0cmVzc091dFB1dCkpIHtcclxuICAgICAgdGhpcy5zdHJlc3NPdXRQdXQgPSBvYmouc3RyZXNzT3V0UHV0O1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubm90TnVsbEFuZE5vdFVuZGVmaW5lZChvYmouZ2FwRWxlbWVudFR5cGUpKSB7XHJcbiAgICAgIHRoaXMuZ2FwRWxlbWVudFR5cGUgPSBvYmouZ2FwRWxlbWVudFR5cGU7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5ub3ROdWxsQW5kTm90VW5kZWZpbmVkKG9iai5yZWxlYXNlX0EpKSB7XHJcbiAgICAgIHRoaXMucmVsZWFzZV9BID0gb2JqLnJlbGVhc2VfQTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5ub3ROdWxsQW5kTm90VW5kZWZpbmVkKG9iai5yZWxlYXNlX0IpKSB7XHJcbiAgICAgIHRoaXMucmVsZWFzZV9CID0gb2JqLnJlbGVhc2VfQjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNob3JkQW5nbGUgPSBDYWVOdW1iZXIob2JqLmNob3JkQW5nbGUpO1xyXG5cclxuICAgIGlmICh0aGlzLm5vdE51bGxBbmROb3RVbmRlZmluZWQob2JqLmxvY2FsWkF4aXMpKSB7XHJcbiAgICAgIHRoaXMubG9jYWxaQXhpcyA9IG9iai5sb2NhbFpBeGlzO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubm90TnVsbEFuZE5vdFVuZGVmaW5lZChvYmouZmxvb2RDb25kaXRpb24pKSB7XHJcbiAgICAgIHRoaXMuZmxvb2RDb25kaXRpb24gPSBvYmouZmxvb2RDb25kaXRpb247XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5ub3ROdWxsQW5kTm90VW5kZWZpbmVkKG9iai5rT3JMT3B0aW9uKSkge1xyXG4gICAgICB0aGlzLmtPckxPcHRpb24gPSBvYmoua09yTE9wdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmF2Z0pvaW50VGhpY2tuZXNzID0gQ2FlTnVtYmVyKG9iai5hdmdKb2ludFRoaWNrbmVzcyk7XHJcblxyXG4gICAgdGhpcy5rRmFjdG9yX0tZID0gb2JqLmtGYWN0b3JfS1k7XHJcblxyXG4gICAgdGhpcy5rRmFjdG9yX0taID0gb2JqLmtGYWN0b3JfS1o7XHJcblxyXG4gICAgdGhpcy5zaGVhck1vZGlmaWVyID0gQ2FlTnVtYmVyKG9iai5zaGVhck1vZGlmaWVyKTtcclxuXHJcbiAgICB0aGlzLmRlbnNpdHkgPSBDYWVOdW1iZXIob2JqLmRlbnNpdHkpO1xyXG5cclxuICAgIHRoaXMudWNTZWdtZW50cyA9IENhZU51bWJlcihvYmoudWNTZWdtZW50cyk7XHJcblxyXG4gICAgdGhpcy5lZmZlY3RpdmVEaWFtZXRlciA9IENhZU51bWJlcihvYmouZWZmZWN0aXZlRGlhbWV0ZXIpO1xyXG5cclxuICAgIHN1cGVyLmRlc2VyaWFsaXplKG9iaiwgcG0pO1xyXG4gICAgdGhpcy5zZXROZWVkVXBkYXRlKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgY2xvbmUoY2xvbmVPYmo6IGFueSwgY2xvbmVNYW5hZ2VyPzogTG9uZ2FuLkNsb25lTWFuYWdlcikge1xyXG4gICAgY2xvbmVPYmouc3RhcnQgPSB0aGlzLnN0YXJ0O1xyXG4gICAgY2xvbmVPYmouZW5kID0gdGhpcy5lbmQ7XHJcbiAgICBjbG9uZU9iai5ncnVwID0gdGhpcy5ncnVwO1xyXG4gICAgY2xvbmVPYmoub2Zmc2V0T3B0aW9uID0gTG9uZ2FuLmRlZXBDbG9uZSh0aGlzLm9mZnNldE9wdGlvbik7XHJcbiAgICBjbG9uZU9iai5zdGFydE9mZnNldCA9IExvbmdhbi5kZWVwQ2xvbmUodGhpcy5zdGFydE9mZnNldCk7XHJcbiAgICBjbG9uZU9iai5lbmRPZmZzZXQgPSBMb25nYW4uZGVlcENsb25lKHRoaXMuZW5kT2Zmc2V0KTtcclxuXHJcbiAgICBjbG9uZU9iai5yZWxlYXNlX0EgPSBMb25nYW4uZGVlcENsb25lKHRoaXMucmVsZWFzZV9BKTtcclxuICAgIGNsb25lT2JqLnJlbGVhc2VfQiA9IExvbmdhbi5kZWVwQ2xvbmUodGhpcy5yZWxlYXNlX0IpO1xyXG4gICAgY2xvbmVPYmouY2hvcmRBbmdsZSA9IExvbmdhbi5kZWVwQ2xvbmUodGhpcy5jaG9yZEFuZ2xlKTtcclxuICAgIGNsb25lT2JqLmxvY2FsWkF4aXMgPSBMb25nYW4uZGVlcENsb25lKHRoaXMubG9jYWxaQXhpcyk7XHJcbiAgICBjbG9uZU9iai5mbG9vZENvbmRpdGlvbiA9IExvbmdhbi5kZWVwQ2xvbmUodGhpcy5mbG9vZENvbmRpdGlvbik7XHJcbiAgICBjbG9uZU9iai5rT3JMT3B0aW9uID0gTG9uZ2FuLmRlZXBDbG9uZSh0aGlzLmtPckxPcHRpb24pO1xyXG4gICAgY2xvbmVPYmouYXZnSm9pbnRUaGlja25lc3MgPSBMb25nYW4uZGVlcENsb25lKHRoaXMuYXZnSm9pbnRUaGlja25lc3MpO1xyXG4gICAgY2xvbmVPYmoua0ZhY3Rvcl9LWSA9IExvbmdhbi5kZWVwQ2xvbmUodGhpcy5rRmFjdG9yX0tZKTtcclxuICAgIGNsb25lT2JqLmtGYWN0b3JfS1ogPSBMb25nYW4uZGVlcENsb25lKHRoaXMua0ZhY3Rvcl9LWik7XHJcbiAgICBjbG9uZU9iai5zaGVhck1vZGlmaWVyID0gTG9uZ2FuLmRlZXBDbG9uZSh0aGlzLnNoZWFyTW9kaWZpZXIpO1xyXG4gICAgY2xvbmVPYmouZGVuc2l0eSA9IExvbmdhbi5kZWVwQ2xvbmUodGhpcy5kZW5zaXR5KTtcclxuICAgIGNsb25lT2JqLnVjU2VnbWVudHMgPSBMb25nYW4uZGVlcENsb25lKHRoaXMudWNTZWdtZW50cyk7XHJcbiAgICBjbG9uZU9iai5lZmZlY3RpdmVEaWFtZXRlciA9IExvbmdhbi5kZWVwQ2xvbmUodGhpcy5lZmZlY3RpdmVEaWFtZXRlcik7XHJcblxyXG4gICAgY2xvbmVPYmogPSBzdXBlci5jbG9uZShjbG9uZU9iaik7XHJcbiAgICByZXR1cm4gY2xvbmVPYmo7XHJcbiAgfVxyXG5cclxuICBzZXJpYWxpemVUb0NhcmQoKSB7XHJcbiAgICAvL1xyXG4gICAgbGV0IGNhcmRNZW1iZXIgPSBuZXcgQ2FyZE1lbWJlcigpO1xyXG4gICAgY2FyZE1lbWJlci5saW5lTGFiZWwudmFsdWUgPSBcIk1FTUJFUlwiO1xyXG4gICAgY2FyZE1lbWJlci5vZmZzZXRPcHRpb24udmFsdWUgPSB0aGlzLm9mZnNldE9wdGlvbjtcclxuICAgIGNhcmRNZW1iZXIuam9pbnRBX05hbWUudmFsdWUgPSB0aGlzLnN0YXJ0Lm5hbWU7XHJcbiAgICBjYXJkTWVtYmVyLmpvaW50Ql9OYW1lLnZhbHVlID0gdGhpcy5lbmQubmFtZTtcclxuICAgIGNhcmRNZW1iZXIuYWRkRGF0YS52YWx1ZSA9IFwiXCI7XHJcbiAgICBjYXJkTWVtYmVyLmdydXBMYWJlbC52YWx1ZSA9IFwiXCI7XHJcbiAgICBpZiAodGhpcy5ncnVwKSB7XHJcbiAgICAgIGNhcmRNZW1iZXIuZ3J1cExhYmVsLnZhbHVlID0gdGhpcy5ncnVwLm5hbWU7XHJcbiAgICB9XHJcbiAgICBjYXJkTWVtYmVyLnN0cmVzc091dHB1dC52YWx1ZSA9IFwiXCI7XHJcbiAgICBjYXJkTWVtYmVyLmdhcEVsZW1lbnRUeXBlLnZhbHVlID0gXCJcIjtcclxuICAgIGNhcmRNZW1iZXIuZml4aXR5X0pvaW50QV9EWC52YWx1ZSA9IHRoaXMucmVsZWFzZV9BWzBdXHJcbiAgICAgID8gdGhpcy5yZWxlYXNlX0FbMF1cclxuICAgICAgOiBcIlwiO1xyXG4gICAgY2FyZE1lbWJlci5maXhpdHlfSm9pbnRBX0RZLnZhbHVlID0gdGhpcy5yZWxlYXNlX0FbMV1cclxuICAgICAgPyB0aGlzLnJlbGVhc2VfQVsxXVxyXG4gICAgICA6IFwiXCI7XHJcbiAgICBjYXJkTWVtYmVyLmZpeGl0eV9Kb2ludEFfRFoudmFsdWUgPSB0aGlzLnJlbGVhc2VfQVsyXVxyXG4gICAgICA/IHRoaXMucmVsZWFzZV9BWzJdXHJcbiAgICAgIDogXCJcIjtcclxuICAgIGNhcmRNZW1iZXIuZml4aXR5X0pvaW50QV9SWC52YWx1ZSA9IHRoaXMucmVsZWFzZV9BWzNdXHJcbiAgICAgID8gdGhpcy5yZWxlYXNlX0FbM11cclxuICAgICAgOiBcIlwiO1xyXG4gICAgY2FyZE1lbWJlci5maXhpdHlfSm9pbnRBX1JZLnZhbHVlID0gdGhpcy5yZWxlYXNlX0FbNF1cclxuICAgICAgPyB0aGlzLnJlbGVhc2VfQVs0XVxyXG4gICAgICA6IFwiXCI7XHJcbiAgICBjYXJkTWVtYmVyLmZpeGl0eV9Kb2ludEFfUloudmFsdWUgPSB0aGlzLnJlbGVhc2VfQVs1XVxyXG4gICAgICA/IHRoaXMucmVsZWFzZV9BWzVdXHJcbiAgICAgIDogXCJcIjtcclxuXHJcbiAgICBjYXJkTWVtYmVyLmZpeGl0eV9Kb2ludEJfRFgudmFsdWUgPSB0aGlzLnJlbGVhc2VfQlswXVxyXG4gICAgICA/IHRoaXMucmVsZWFzZV9CWzBdXHJcbiAgICAgIDogXCJcIjtcclxuICAgIGNhcmRNZW1iZXIuZml4aXR5X0pvaW50Ql9EWS52YWx1ZSA9IHRoaXMucmVsZWFzZV9CWzFdXHJcbiAgICAgID8gdGhpcy5yZWxlYXNlX0JbMV1cclxuICAgICAgOiBcIlwiO1xyXG4gICAgY2FyZE1lbWJlci5maXhpdHlfSm9pbnRCX0RaLnZhbHVlID0gdGhpcy5yZWxlYXNlX0JbMl1cclxuICAgICAgPyB0aGlzLnJlbGVhc2VfQlsyXVxyXG4gICAgICA6IFwiXCI7XHJcbiAgICBjYXJkTWVtYmVyLmZpeGl0eV9Kb2ludEJfUlgudmFsdWUgPSB0aGlzLnJlbGVhc2VfQlszXVxyXG4gICAgICA/IHRoaXMucmVsZWFzZV9CWzNdXHJcbiAgICAgIDogXCJcIjtcclxuICAgIGNhcmRNZW1iZXIuZml4aXR5X0pvaW50Ql9SWS52YWx1ZSA9IHRoaXMucmVsZWFzZV9CWzRdXHJcbiAgICAgID8gdGhpcy5yZWxlYXNlX0JbNF1cclxuICAgICAgOiBcIlwiO1xyXG4gICAgY2FyZE1lbWJlci5maXhpdHlfSm9pbnRCX1JaLnZhbHVlID0gdGhpcy5yZWxlYXNlX0JbNV1cclxuICAgICAgPyB0aGlzLnJlbGVhc2VfQls1XVxyXG4gICAgICA6IFwiXCI7XHJcblxyXG4gICAgY2FyZE1lbWJlci5jaG9yZEFuZ2xlLnZhbHVlID0gQ2FlTnVtYmVyVG9DYXJkKHRoaXMuY2hvcmRBbmdsZSk7XHJcbiAgICBjYXJkTWVtYmVyLmxvY2FsWkF4aXMudmFsdWUgPSB0aGlzLmxvY2FsWkF4aXM7XHJcbiAgICBjYXJkTWVtYmVyLmZsb29kQ29uZGl0aW9uLnZhbHVlID0gdGhpcy5mbG9vZENvbmRpdGlvbjtcclxuICAgIGNhcmRNZW1iZXIua09yTE9wdGlvbi52YWx1ZSA9IHRoaXMua09yTE9wdGlvbjtcclxuICAgIGNhcmRNZW1iZXIuYXZnSm9pbnRUaGlja25lc3MudmFsdWUgPSB0aGlzLmF2Z0pvaW50VGhpY2tuZXNzO1xyXG4gICAgY2FyZE1lbWJlci5rRmFjdG9yX0tZLnZhbHVlID0gdGhpcy5rRmFjdG9yX0tZO1xyXG4gICAgY2FyZE1lbWJlci5rRmFjdG9yX0taLnZhbHVlID0gdGhpcy5rRmFjdG9yX0taO1xyXG4gICAgY2FyZE1lbWJlci5zaGVhck1vZGlmaWVyLnZhbHVlID0gdGhpcy5zaGVhck1vZGlmaWVyO1xyXG4gICAgY2FyZE1lbWJlci5kZW5zaXR5LnZhbHVlID0gdGhpcy5kZW5zaXR5O1xyXG4gICAgY2FyZE1lbWJlci51Y1NlZ21lbnRzLnZhbHVlID0gdGhpcy51Y1NlZ21lbnRzO1xyXG4gICAgY2FyZE1lbWJlci5lZmZlY3RpdmVEaWFtZXRlci52YWx1ZSA9IHRoaXMuZWZmZWN0aXZlRGlhbWV0ZXI7XHJcblxyXG4gICAgbGV0IHJlc3VsdCA9IGNhcmRNZW1iZXIuZ2V0TGluZSgpO1xyXG4gICAgaWYgKHRoaXMuc3RhcnRPZmZzZXQgfHwgdGhpcy5lbmRPZmZzZXQpIHtcclxuICAgICAgaWYgKCF0aGlzLnN0YXJ0T2Zmc2V0KSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmFycmF5RXF1YWwodGhpcy5lbmRPZmZzZXQsIFswLCAwLCAwXSkpIHtcclxuICAgICAgICAgIHJlc3VsdCArPSBcIlxcblwiO1xyXG5cclxuICAgICAgICAgIGxldCBjYXJkTWVtYmVyT2Zmc2V0cyA9IG5ldyBDYXJkTWVtYmVyT2Zmc2V0cygpO1xyXG4gICAgICAgICAgY2FyZE1lbWJlck9mZnNldHMubGluZUxhYmVsLnZhbHVlID0gXCJNRU1CRVIgT0ZGU0VUU1wiO1xyXG4gICAgICAgICAgY2FyZE1lbWJlck9mZnNldHMuY29tbWVudHMudmFsdWUgPSBcIlwiO1xyXG4gICAgICAgICAgY2FyZE1lbWJlck9mZnNldHMuam9pbnRBX1hPZmZzZXQudmFsdWUgPSAwO1xyXG4gICAgICAgICAgY2FyZE1lbWJlck9mZnNldHMuam9pbnRBX1lPZmZzZXQudmFsdWUgPSAwO1xyXG4gICAgICAgICAgY2FyZE1lbWJlck9mZnNldHMuam9pbnRBX1pPZmZzZXQudmFsdWUgPSAwO1xyXG5cclxuICAgICAgICAgIGNhcmRNZW1iZXJPZmZzZXRzLmpvaW50Ql9YT2Zmc2V0LnZhbHVlID0gdGhpcy5lbmRPZmZzZXRbMF07XHJcbiAgICAgICAgICBjYXJkTWVtYmVyT2Zmc2V0cy5qb2ludEJfWU9mZnNldC52YWx1ZSA9IHRoaXMuZW5kT2Zmc2V0WzFdO1xyXG4gICAgICAgICAgY2FyZE1lbWJlck9mZnNldHMuam9pbnRCX1pPZmZzZXQudmFsdWUgPSB0aGlzLmVuZE9mZnNldFsyXTtcclxuXHJcbiAgICAgICAgICByZXN1bHQgKz0gY2FyZE1lbWJlck9mZnNldHMuZ2V0TGluZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmICghdGhpcy5lbmRPZmZzZXQpIHtcclxuICAgICAgICBpZiAoIXRoaXMuYXJyYXlFcXVhbCh0aGlzLnN0YXJ0T2Zmc2V0LCBbMCwgMCwgMF0pKSB7XHJcbiAgICAgICAgICByZXN1bHQgKz0gXCJcXG5cIjtcclxuXHJcbiAgICAgICAgICBsZXQgY2FyZE1lbWJlck9mZnNldHMgPSBuZXcgQ2FyZE1lbWJlck9mZnNldHMoKTtcclxuICAgICAgICAgIGNhcmRNZW1iZXJPZmZzZXRzLmxpbmVMYWJlbC52YWx1ZSA9IFwiTUVNQkVSIE9GRlNFVFNcIjtcclxuICAgICAgICAgIGNhcmRNZW1iZXJPZmZzZXRzLmNvbW1lbnRzLnZhbHVlID0gXCJcIjtcclxuICAgICAgICAgIGNhcmRNZW1iZXJPZmZzZXRzLmpvaW50QV9YT2Zmc2V0LnZhbHVlID0gdGhpcy5zdGFydE9mZnNldFswXTtcclxuICAgICAgICAgIGNhcmRNZW1iZXJPZmZzZXRzLmpvaW50QV9ZT2Zmc2V0LnZhbHVlID0gdGhpcy5zdGFydE9mZnNldFsxXTtcclxuICAgICAgICAgIGNhcmRNZW1iZXJPZmZzZXRzLmpvaW50QV9aT2Zmc2V0LnZhbHVlID0gdGhpcy5zdGFydE9mZnNldFsyXTtcclxuXHJcbiAgICAgICAgICBjYXJkTWVtYmVyT2Zmc2V0cy5qb2ludEJfWE9mZnNldC52YWx1ZSA9IDA7XHJcbiAgICAgICAgICBjYXJkTWVtYmVyT2Zmc2V0cy5qb2ludEJfWU9mZnNldC52YWx1ZSA9IDA7XHJcbiAgICAgICAgICBjYXJkTWVtYmVyT2Zmc2V0cy5qb2ludEJfWk9mZnNldC52YWx1ZSA9IDA7XHJcblxyXG4gICAgICAgICAgcmVzdWx0ICs9IGNhcmRNZW1iZXJPZmZzZXRzLmdldExpbmUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgIXRoaXMuYXJyYXlFcXVhbCh0aGlzLnN0YXJ0T2Zmc2V0LCBbMCwgMCwgMF0pIHx8XHJcbiAgICAgICAgICAhdGhpcy5hcnJheUVxdWFsKHRoaXMuZW5kT2Zmc2V0LCBbMCwgMCwgMF0pXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICByZXN1bHQgKz0gXCJcXG5cIjtcclxuXHJcbiAgICAgICAgICBsZXQgY2FyZE1lbWJlck9mZnNldHMgPSBuZXcgQ2FyZE1lbWJlck9mZnNldHMoKTtcclxuICAgICAgICAgIGNhcmRNZW1iZXJPZmZzZXRzLmxpbmVMYWJlbC52YWx1ZSA9IFwiTUVNQkVSIE9GRlNFVFNcIjtcclxuICAgICAgICAgIGNhcmRNZW1iZXJPZmZzZXRzLmNvbW1lbnRzLnZhbHVlID0gXCJcIjtcclxuICAgICAgICAgIGNhcmRNZW1iZXJPZmZzZXRzLmpvaW50QV9YT2Zmc2V0LnZhbHVlID0gdGhpcy5zdGFydE9mZnNldFswXTtcclxuICAgICAgICAgIGNhcmRNZW1iZXJPZmZzZXRzLmpvaW50QV9ZT2Zmc2V0LnZhbHVlID0gdGhpcy5zdGFydE9mZnNldFsxXTtcclxuICAgICAgICAgIGNhcmRNZW1iZXJPZmZzZXRzLmpvaW50QV9aT2Zmc2V0LnZhbHVlID0gdGhpcy5zdGFydE9mZnNldFsyXTtcclxuXHJcbiAgICAgICAgICBjYXJkTWVtYmVyT2Zmc2V0cy5qb2ludEJfWE9mZnNldC52YWx1ZSA9IHRoaXMuZW5kT2Zmc2V0WzBdO1xyXG4gICAgICAgICAgY2FyZE1lbWJlck9mZnNldHMuam9pbnRCX1lPZmZzZXQudmFsdWUgPSB0aGlzLmVuZE9mZnNldFsxXTtcclxuICAgICAgICAgIGNhcmRNZW1iZXJPZmZzZXRzLmpvaW50Ql9aT2Zmc2V0LnZhbHVlID0gdGhpcy5lbmRPZmZzZXRbMl07XHJcblxyXG4gICAgICAgICAgcmVzdWx0ICs9IGNhcmRNZW1iZXJPZmZzZXRzLmdldExpbmUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgYXJyYXlFcXVhbChhMTogYW55W10sIGEyOiBhbnlbXSkge1xyXG4gICAgaWYgKGExLmxlbmd0aCAhPT0gYTIubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGExLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmIChhMVtpXSAhPT0gYTJbaV0pIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGxhYmVsUHJvY2Vzc2luZyh2aWV3ZXI6IFZpZXdlcikge1xyXG4gICAgaWYgKHZpZXdlci52aWV3SW50ZXJmYWNlTWFuYWdlcikge1xyXG4gICAgICBpZiAodmlld2VyLnZpZXdJbnRlcmZhY2VNYW5hZ2VyLm1lbWJlckZpeHR5VmlzaWJsZSkge1xyXG4gICAgICAgIHRoaXMuaXNEcmF3Rml4aXR5ID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodmlld2VyLnZpZXdJbnRlcmZhY2VNYW5hZ2VyLmdydXBOdW1iZXJWaXNpYmxlKSB7XHJcbiAgICAgICAgdGhpcy5pc0RyYXdOdW1iZXIgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh2aWV3ZXIudmlld0ludGVyZmFjZU1hbmFnZXIubWVtYmVyU2VjdGlvblNpemVWaXNpYmxlKSB7XHJcbiAgICAgICAgdGhpcy5pc0RyYXdTaXplID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodmlld2VyLnZpZXdJbnRlcmZhY2VNYW5hZ2VyLm1lbWJlckF4aXNWaXNpYmxlKSB7XHJcbiAgICAgICAgdGhpcy5pc0RyYXdBeGlzID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICghdmlld2VyLnZpZXdJbnRlcmZhY2VNYW5hZ2VyLm1lbWJlcklzTGluZSkge1xyXG4gICAgICBpZiAodGhpcy5ncnVwKSB7XHJcbiAgICAgICAgbGV0IGlybyA9IHZpZXdlci5maW5kSW5zdGFuY2VPYmplY3QodGhpcyk7XHJcbiAgICAgICAgaWYgKGlybykge1xyXG4gICAgICAgICAgaXJvLnNlZ21lbnQudmlzaWJpbGl0eS5zZXRMaW5lKGZhbHNlKTtcclxuICAgICAgICAgIGlyby5zZWdtZW50LnZpc2liaWxpdHkuc2V0Qm9yZGVyKHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IGlybyA9IHZpZXdlci5maW5kSW5zdGFuY2VPYmplY3QodGhpcyk7XHJcbiAgICAgIGlmIChpcm8pIHtcclxuICAgICAgICBpcm8uc2VnbWVudC52aXNpYmlsaXR5LnNldEZhY2UoZmFsc2UpO1xyXG4gICAgICAgIGlyby5zZWdtZW50LnZpc2liaWxpdHkuc2V0Qm9yZGVyKGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVuZGVyKHZpZXdlcj86IFZpZXdlcikge1xyXG4gICAgLy8gY29uc29sZS5sb2coXCJtZW1iZXJPYmplY3QgcmVuZGVyXCIpXHJcbiAgICBsZXQgc3RhcnQgPSB0aGlzLnN0YXJ0O1xyXG4gICAgbGV0IGVuZCA9IHRoaXMuZW5kO1xyXG4gICAgdGhpcy5jbGVhclN2ZygpO1xyXG4gICAgdGhpcy5zZWdtZW50LmNsZWFyR2VvbWV0cmllcygpO1xyXG5cclxuICAgIGlmICghdmlld2VyKSB7XHJcbiAgICAgIHZpZXdlciA9IFByb2Nlc3MuYWN0aXZlUHJvY2Vzcy5hY3RpdmVWaWV3ZXIgYXMgYW55O1xyXG4gICAgfVxyXG5cclxuICAgIC8vIOeUu+e6v1xyXG4gICAgaWYgKHN0YXJ0ICYmIGVuZCkge1xyXG4gICAgICB0aGlzLm5hbWUgPSBzdGFydC5uYW1lICsgXCItXCIgKyBlbmQubmFtZTtcclxuXHJcbiAgICAgIGxldCByZXN1bHRTdGFydFBvcyA9IHRoaXMuZ2V0U3RhcnRQb3NpdGlvbigpO1xyXG4gICAgICBsZXQgcmVzdWx0RW5kUG9zID0gdGhpcy5nZXRFbmRQb3NpdGlvbigpO1xyXG5cclxuICAgICAgaWYgKCFyZXN1bHRTdGFydFBvcyB8fCAhcmVzdWx0RW5kUG9zKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coXCLmnYbku7Y6XCIgKyB0aGlzLm5hbWUgKyBcIuW8leeUqOS6huS4jeWtmOWcqOeahOepuumXtOeCuSzmlbDmja7kuKLlvINcIik7XHJcbiAgICAgICAgUHJvY2Vzcy5hY3RpdmVQcm9jZXNzLnJlbW92ZVJlbmRlck9iamVjdCh0aGlzKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuc3RhcnRQb2ludCA9IHJlc3VsdFN0YXJ0UG9zO1xyXG4gICAgICB0aGlzLmVuZFBvaW50ID0gcmVzdWx0RW5kUG9zO1xyXG4gICAgICBzdXBlci5yZW5kZXIoKTtcclxuXHJcbiAgICAgIGlmIChcclxuICAgICAgICB0aGlzLmdydXAgJiZcclxuICAgICAgICB0aGlzLmdydXAuZ3J1cFNlZ21lbnRzICYmXHJcbiAgICAgICAgdGhpcy5ncnVwLmdydXBTZWdtZW50cy5sZW5ndGggPT09IDFcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5ncnVwLmdydXBTZWdtZW50c1swXS5zZWdtZW50TGVuZ3RoID0gMDtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmRyYXdCb2R5KHJlc3VsdFN0YXJ0UG9zLCByZXN1bHRFbmRQb3MsIHZpZXdlcik7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5sYWJlbFByb2Nlc3Npbmcodmlld2VyKTtcclxuICAgIHRoaXMuZHJhd1N2ZygpO1xyXG4gIH1cclxuXHJcbiAgbWVtYmVyT2Zmc2V0U3dpdGNoKCkge1xyXG4gICAgLy8g5YWo5bGA6L2s5bGA6YOoLlxyXG4gICAgbGV0IGF4aXNTeXN0ZW0gPSB0aGlzLmdldExvY2FsQXhpcygpO1xyXG4gICAgbGV0IHdjcyA9IG5ldyBMb25nYW4uV2NzKFxyXG4gICAgICBuZXcgRmxvYXQzMkFycmF5KFswLCAwLCAwXSksXHJcbiAgICAgIGF4aXNTeXN0ZW0ueEF4aXMsXHJcbiAgICAgIGF4aXNTeXN0ZW0ueUF4aXNcclxuICAgICk7XHJcbiAgICBpZiAodGhpcy5vZmZzZXRPcHRpb24gPT09IFwiMVwiKSB7XHJcbiAgICAgIGlmICh0aGlzLnN0YXJ0T2Zmc2V0KSB7XHJcbiAgICAgICAgbGV0IG5ld1N0YXJ0T2Zmc2V0ID0gd2NzLnRvTG9jYWxWZWN0b3IoXHJcbiAgICAgICAgICBuZXcgRmxvYXQzMkFycmF5KHRoaXMuc3RhcnRPZmZzZXQpXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLnN0YXJ0T2Zmc2V0WzBdID0gbmV3U3RhcnRPZmZzZXRbMF07XHJcbiAgICAgICAgdGhpcy5zdGFydE9mZnNldFsxXSA9IG5ld1N0YXJ0T2Zmc2V0WzFdO1xyXG4gICAgICAgIHRoaXMuc3RhcnRPZmZzZXRbMl0gPSBuZXdTdGFydE9mZnNldFsyXTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMuZW5kT2Zmc2V0KSB7XHJcbiAgICAgICAgbGV0IG5ld0VuZE9mZnNldCA9IHdjcy50b0xvY2FsVmVjdG9yKG5ldyBGbG9hdDMyQXJyYXkodGhpcy5lbmRPZmZzZXQpKTtcclxuICAgICAgICB0aGlzLmVuZE9mZnNldFswXSA9IG5ld0VuZE9mZnNldFswXTtcclxuICAgICAgICB0aGlzLmVuZE9mZnNldFsxXSA9IG5ld0VuZE9mZnNldFsxXTtcclxuICAgICAgICB0aGlzLmVuZE9mZnNldFsyXSA9IG5ld0VuZE9mZnNldFsyXTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh0aGlzLm9mZnNldE9wdGlvbiA9PT0gXCIyXCIpIHtcclxuICAgICAgLy8g5bGA6YOo6L2s5YWo5bGAXHJcbiAgICAgIGlmICh0aGlzLnN0YXJ0T2Zmc2V0KSB7XHJcbiAgICAgICAgbGV0IG5ld1N0YXJ0T2Zmc2V0ID0gd2NzLnRvTW9kZWxWZWN0b3IoXHJcbiAgICAgICAgICBuZXcgRmxvYXQzMkFycmF5KHRoaXMuc3RhcnRPZmZzZXQpXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLnN0YXJ0T2Zmc2V0WzBdID0gbmV3U3RhcnRPZmZzZXRbMF07XHJcbiAgICAgICAgdGhpcy5zdGFydE9mZnNldFsxXSA9IG5ld1N0YXJ0T2Zmc2V0WzFdO1xyXG4gICAgICAgIHRoaXMuc3RhcnRPZmZzZXRbMl0gPSBuZXdTdGFydE9mZnNldFsyXTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMuZW5kT2Zmc2V0KSB7XHJcbiAgICAgICAgbGV0IG5ld0VuZE9mZnNldCA9IHdjcy50b01vZGVsVmVjdG9yKG5ldyBGbG9hdDMyQXJyYXkodGhpcy5lbmRPZmZzZXQpKTtcclxuICAgICAgICB0aGlzLmVuZE9mZnNldFswXSA9IG5ld0VuZE9mZnNldFswXTtcclxuICAgICAgICB0aGlzLmVuZE9mZnNldFsxXSA9IG5ld0VuZE9mZnNldFsxXTtcclxuICAgICAgICB0aGlzLmVuZE9mZnNldFsyXSA9IG5ld0VuZE9mZnNldFsyXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0UmVsZWF0ZWRXR1RNRU1PYmplY3Qodmlld2VyOiBWaWV3ZXIpOiBXR1RNRU1PYmplY3RbXSB7XHJcbiAgICBsZXQgcmVsZWF0ZWRXR1RNRU1PYmplY3RzID0gbmV3IEFycmF5PFdHVE1FTU9iamVjdD4oKTtcclxuXHJcbiAgICBsZXQgV0dUTUVNT2JqZWN0cyA9IHZpZXdlci5wcm9jZXNzLmZpbmRSZW5kZXJPYmplY3RzQnlUeXBlKFwiV0dUTUVNT2JqZWN0XCIpO1xyXG4gICAgaWYgKFdHVE1FTU9iamVjdHMubGVuZ3RoID4gMCkge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IFdHVE1FTU9iamVjdHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgY2hpbGQgPSBXR1RNRU1PYmplY3RzW2ldIGFzIFdHVE1FTU9iamVjdDtcclxuICAgICAgICBpZiAoY2hpbGQubWVtYmVyICYmIGNoaWxkLm1lbWJlci5pZCA9PT0gdGhpcy5pZCkge1xyXG4gICAgICAgICAgcmVsZWF0ZWRXR1RNRU1PYmplY3RzLnB1c2goY2hpbGQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZWxlYXRlZFdHVE1FTU9iamVjdHM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWRkUmVmZXJlbmNlKHBlcnNpc3RlbmNlTWFuYWdlcjogUGVyc2lzdGVuY2VNYW5hZ2VyKSB7XHJcbiAgICBwZXJzaXN0ZW5jZU1hbmFnZXIucmVmZXJlbmNlTGlzdC5hZGQodGhpcy5pZCwgdGhpcyk7XHJcbiAgfVxyXG5cclxuICBkcmF3Qm9keShyZXN1bHRTdGFydFBvczogbnVtYmVyW10sIHJlc3VsdEVuZFBvczogbnVtYmVyW10sIHZpZXdlcjogVmlld2VyKSB7XHJcbiAgICBsZXQgeEF4aXMgPSBMb25nYW4uUG9pbnQuc3VidHJhY3QoXHJcbiAgICAgIG5ldyBGbG9hdDMyQXJyYXkocmVzdWx0RW5kUG9zKSxcclxuICAgICAgbmV3IEZsb2F0MzJBcnJheShyZXN1bHRTdGFydFBvcylcclxuICAgICk7XHJcbiAgICBpZiAoTG9uZ2FuLlZlY3Rvci5pc1plcm8oeEF4aXMpKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwi5p2G5Lu25aeL56uvLOacq+err+eCueebuOWQjFwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBheGlzID0gdGhpcy5nZXRMb2NhbEF4aXMoKTtcclxuICAgIGxldCBub3JtYWwgPSBMb25nYW4uVmVjdG9yLm5vcm1hbGl6ZVZlY3Rvcih4QXhpcyk7XHJcbiAgICBsZXQgekFpeHMgPSBheGlzLnpBeGlzO1xyXG4gICAgbGV0IHlBeGlzID0gYXhpcy55QXhpcztcclxuXHJcbiAgICBsZXQgZ3J1cCA9IHRoaXMuZ3J1cDtcclxuICAgIGlmIChcclxuICAgICAgZ3J1cCAmJlxyXG4gICAgICB0eXBlb2YgdGhpcy5ncnVwICE9PSBcInN0cmluZ1wiICYmXHJcbiAgICAgIGdydXAuYnVzaW5lc3NTdGF0ZSAhPT0gQnVzaW5lc3NTdGF0ZS5EZWxldGluZyAmJlxyXG4gICAgICBncnVwLmJ1c2luZXNzU3RhdGUgIT09IEJ1c2luZXNzU3RhdGUuRGVhZFxyXG4gICAgKSB7XHJcbiAgICAgIGlmIChncnVwLmdydXBTZWdtZW50cykge1xyXG4gICAgICAgIGxldCBvcmlnaW4gPSBuZXcgRmxvYXQzMkFycmF5KHJlc3VsdFN0YXJ0UG9zKTtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBncnVwLmdydXBTZWdtZW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgbGV0IGdydXBTZWdtZW50ID0gZ3J1cC5ncnVwU2VnbWVudHNbaV07XHJcbiAgICAgICAgICBsZXQgc2VnbWVudExlbmd0aCA9IE51bWJlcihncnVwU2VnbWVudC5zZWdtZW50TGVuZ3RoKTtcclxuICAgICAgICAgIC8vIOWmguaenOWPquacieS4gOaute+8jOm7mOiupOaIqumdoumVv+W6puS4uuWNoOadhuS7tumVv+W6puWFqOmVvy5cclxuICAgICAgICAgIGlmICghc2VnbWVudExlbmd0aCkge1xyXG4gICAgICAgICAgICBzZWdtZW50TGVuZ3RoID0gdGhpcy5nZXRVbmRlZmluZVNlZ21lbnRMZW5ndGgoKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAoZ3J1cC5ncnVwU2VnbWVudHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgICAgIHNlZ21lbnRMZW5ndGggPSB0aGlzLmdldE1lbWJlckxlbmd0aCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgc2VnbWVudExlbmd0aCAqPSB0aGlzLnNlZ21lbnRMZW5ndGhDb2VmZjtcclxuXHJcbiAgICAgICAgICAvLyDmr4/mrrXmiKrpnaLnmoRzaGVsbFxyXG4gICAgICAgICAgbGV0IHNoZWxsX2tleSA9IC0xO1xyXG4gICAgICAgICAgLy8g5q+P5q615oiq6Z2i55qE6aG254K55ZKM57Si5byVLlxyXG4gICAgICAgICAgbGV0IHBvbHlnb24gPSBudWxsO1xyXG5cclxuICAgICAgICAgIC8vIOWmguaenOaYr+WPmOaIqumdolxyXG4gICAgICAgICAgaWYgKGdydXBTZWdtZW50LnRhcGVyT3B0aW9uID09PSBcIkJcIikge1xyXG4gICAgICAgICAgICAvLyDmib7liLDlkIzkuIDmrrXnmoTigJxF4oCd5Y+Y5oiq6Z2i77yM55So5Lik56uv5Y+Y5oiq6Z2i57uY5Yi25LiA5Liq5L2T77yM6ICM6Z2e5ouJ5Ly4XHJcbiAgICAgICAgICAgIGxldCBwb2x5Z29uMSA9IGdydXBTZWdtZW50LmdldFBvbHlnb24ob3JpZ2luLCB5QXhpcywgekFpeHMpO1xyXG4gICAgICAgICAgICBsZXQgc2wgPSBzZWdtZW50TGVuZ3RoO1xyXG5cclxuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBncnVwLmdydXBTZWdtZW50cy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICAgIGxldCB0YXJwZXJHUyA9IGdydXAuZ3J1cFNlZ21lbnRzW2pdO1xyXG4gICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIHRhcnBlckdTLnRhcGVyT3B0aW9uID09PSBcIkVcIiAmJlxyXG4gICAgICAgICAgICAgICAgdGFycGVyR1Muc2VjdGlvbi5jcm9zc1NlY3Rpb25UeXBlID09PVxyXG4gICAgICAgICAgICAgICAgICBncnVwU2VnbWVudC5zZWN0aW9uLmNyb3NzU2VjdGlvblR5cGVcclxuICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIC8vIOWPmOaIqumdoue7iOerr+i1t+Wni+eCuVxyXG4gICAgICAgICAgICAgICAgaWYgKCFzbCkge1xyXG4gICAgICAgICAgICAgICAgICBzbCA9IHRoaXMuZ2V0VW5kZWZpbmVTZWdtZW50TGVuZ3RoKCk7XHJcbiAgICAgICAgICAgICAgICAgIHNsICo9IHRoaXMuc2VnbWVudExlbmd0aENvZWZmO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGxldCBlbmRPcmlnaW4gPSBMb25nYW4uUG9pbnQuYWRkKFxyXG4gICAgICAgICAgICAgICAgICBvcmlnaW4sXHJcbiAgICAgICAgICAgICAgICAgIExvbmdhbi5WZWN0b3IubXVsdGlwbHkobm9ybWFsLCBzbClcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICBsZXQgcG9seWdvbjIgPSB0YXJwZXJHUy5nZXRQb2x5Z29uKGVuZE9yaWdpbiwgeUF4aXMsIHpBaXhzKTtcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgc2hlbGxEYXRhID0gdGhpcy5nZXRUYXJwZXJCb3hTaGVsbERhdGEocG9seWdvbjEsIHBvbHlnb24yKTtcclxuICAgICAgICAgICAgICAgIGxldCBwb2ludHMgPSBzaGVsbERhdGEucG9pbnRzO1xyXG4gICAgICAgICAgICAgICAgbGV0IGluZGljZXMgPSBzaGVsbERhdGEuaW5kaWNlcztcclxuXHJcbiAgICAgICAgICAgICAgICBzaGVsbF9rZXkgPSB0aGlzLnNlZ21lbnQuaW5zZXJ0U2hlbGwocG9pbnRzLCBpbmRpY2VzKS5rZXk7XHJcblxyXG4gICAgICAgICAgICAgICAgLy8g5Y+Y5oiq6Z2i6aKc6Imy546w5Zyo5Y+q5pSv5oyB5pW05L2T6K6+572u6aKc6ImyLlxyXG4gICAgICAgICAgICAgICAgaWYgKGdydXBTZWdtZW50LnN0YXJ0Q29sb3IpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zZWdtZW50LmNvbG9yLmZhY2VDb2xvciA9IGdydXBTZWdtZW50LnN0YXJ0Q29sb3I7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNlZ21lbnQuY29sb3IuZmFjZUNvbG9yID0gT2JqZWN0Q29sb3IubWVtYmVyRmFjZUNvbG9yO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGdydXBTZWdtZW50LnRhcGVyT3B0aW9uID09PSBcIkVcIikge1xyXG4gICAgICAgICAgICAvLyBcIkVcIuWPmOaIqumdouWPr+S7pei3s+i/hy5cclxuICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyDpnZ7lj5jmiKrpnaJcclxuICAgICAgICAgICAgLy8g6I635Y+W5oiq6Z2i55qE5LiJ6KeS6Z2i54mH5pWw5o2uLlxyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgZ3J1cFNlZ21lbnQuc2VjdGlvbj8uY3Jvc3NTZWN0aW9uVHlwZT8udG9Mb3dlckNhc2UoKSA9PT0gXCJjb25cIlxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICBwb2x5Z29uID0gKFxyXG4gICAgICAgICAgICAgICAgZ3J1cFNlZ21lbnQuc2VjdGlvbiBhcyBDb25TZWN0aW9uT2JqZWN0XHJcbiAgICAgICAgICAgICAgKS5nZXRTZWN0aW9uUG9seWdvbkNvbihcclxuICAgICAgICAgICAgICAgIG9yaWdpbixcclxuICAgICAgICAgICAgICAgIHlBeGlzLFxyXG4gICAgICAgICAgICAgICAgekFpeHMsXHJcbiAgICAgICAgICAgICAgICBzZWdtZW50TGVuZ3RoLFxyXG4gICAgICAgICAgICAgICAgZ3J1cFNlZ21lbnQsXHJcbiAgICAgICAgICAgICAgICB0aGlzLFxyXG4gICAgICAgICAgICAgICAgdmlld2VyXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBwb2x5Z29uID0gZ3J1cFNlZ21lbnQuZ2V0UG9seWdvbihcclxuICAgICAgICAgICAgICAgIG9yaWdpbixcclxuICAgICAgICAgICAgICAgIHlBeGlzLFxyXG4gICAgICAgICAgICAgICAgekFpeHMsXHJcbiAgICAgICAgICAgICAgICBzZWdtZW50TGVuZ3RoXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGV0IG9mZnNldCA9IExvbmdhbi5WZWN0b3IubXVsdGlwbHkobm9ybWFsLCBzZWdtZW50TGVuZ3RoKTtcclxuXHJcbiAgICAgICAgICAgIC8vIOabtOaWsOS4i+S4gOauteadhuS7tueahOW6lemDqOaIqumdoui1t+eCuVxyXG4gICAgICAgICAgICBvcmlnaW4gPSBMb25nYW4uUG9pbnQuYWRkKG9yaWdpbiwgb2Zmc2V0KTtcclxuXHJcbiAgICAgICAgICAgIGlmICghcG9seWdvbiB8fCBwb2x5Z29uLnBvaW50cy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICBncnVwU2VnbWVudC5zZWN0aW9uICYmXHJcbiAgICAgICAgICAgICAgZ3J1cFNlZ21lbnQuc2VjdGlvbi5jcm9zc1NlY3Rpb25UeXBlID09PSBcIkNPTlwiXHJcbiAgICAgICAgICAgICkge1xyXG4gICAgICAgICAgICAgIHNoZWxsX2tleSA9IHRoaXMuc2VnbWVudC5pbnNlcnRUcmlhbmd1bGFyU2hlbGwoXHJcbiAgICAgICAgICAgICAgICBwb2x5Z29uLnBvaW50cyxcclxuICAgICAgICAgICAgICAgIHBvbHlnb24uaW5kaWNlc1xyXG4gICAgICAgICAgICAgICkua2V5O1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIGlmICghcG9seWdvbi5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHBvbHlnb24ubGVuZ3RoID0gdGhpcy5nZXRVbmRlZmluZVNlZ21lbnRMZW5ndGgoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKHBvbHlnb24pIHtcclxuICAgICAgICAgICAgICAgIGlmIChwb2x5Z29uLnBvaW50cyAmJiBwb2x5Z29uLmluZGljZXMpIHtcclxuICAgICAgICAgICAgICAgICAgbGV0IGV4dHJ1ZGVWZWN0b3IgPSBMb25nYW4uVmVjdG9yLm11bHRpcGx5KFxyXG4gICAgICAgICAgICAgICAgICAgIG5vcm1hbCxcclxuICAgICAgICAgICAgICAgICAgICBwb2x5Z29uLmxlbmd0aCAqIHRoaXMuc2VnbWVudExlbmd0aENvZWZmXHJcbiAgICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgICBsZXQgdHJhaWFuZ2xlcyA9IExvbmdhbi5Mb25nYW5Db3JlLkpTX0ZlYXR1cmVfRXh0cnVkZShcclxuICAgICAgICAgICAgICAgICAgICBuZXcgRmxvYXQ2NEFycmF5KHBvbHlnb24ucG9pbnRzKSxcclxuICAgICAgICAgICAgICAgICAgICBuZXcgSW50MzJBcnJheShwb2x5Z29uLmluZGljZXMpLFxyXG4gICAgICAgICAgICAgICAgICAgIG5ldyBGbG9hdDY0QXJyYXkoZXh0cnVkZVZlY3RvciksXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcIlxyXG4gICAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgbGV0IGJvZHlTZWcgPSB0aGlzLnNlZ21lbnQ7XHJcbiAgICAgICAgICAgICAgICAgIExvbmdhbi5Mb25nYW5Db3JlLkpTX09wZW5fU2VnbWVudF9CeV9LZXkoYm9keVNlZy5rZXkpO1xyXG4gICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2hlbGxfa2V5ID0gTG9uZ2FuLkxvbmdhbkNvcmUuSlNfSW5zZXJ0X1RyaWFuZ3VsYXJfU2hlbGwoXHJcbiAgICAgICAgICAgICAgICAgICAgICB0cmFpYW5nbGVzLnBvc2l0aW9ucyxcclxuICAgICAgICAgICAgICAgICAgICAgIHRyYWlhbmdsZXMuaW5kZXhlc1xyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgTG9uZ2FuLkxvbmdhbkNvcmUuSlNfQ2xvc2VfU2VnbWVudCgpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zZWdtZW50LmNvbG9yLnNldExpbmUoWzI1NSwgMCwgMF0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIuiuoeeul+aIqumdoueahOmhtueCuee0ouW8leW8guW4uFwiKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAoc2hlbGxfa2V5ICE9PSAtMSAmJiBwb2x5Z29uKSB7XHJcbiAgICAgICAgICAgIExvbmdhbi5Mb25nYW5Db3JlLkpTX09wZW5fU2VnbWVudF9CeV9LZXkodGhpcy5zZWdtZW50LmtleSk7XHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAvLyDorr7nva7mr4/mrrXmiKrpnaLnmoTpopzoibIuXHJcbiAgICAgICAgICAgICAgaWYgKGdydXBTZWdtZW50LnN0YXJ0Q29sb3IgJiYgZ3J1cFNlZ21lbnQuZW5kQ29sb3IpIHtcclxuICAgICAgICAgICAgICAgIExvbmdhbi5Mb25nYW5Db3JlLkpTX1VuU2V0X0dlb21ldHJ5X0NvbG9yKHNoZWxsX2tleSwgXCJmYWNlc1wiKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U2hlbGxDbG91ZENvbG9yKFxyXG4gICAgICAgICAgICAgICAgICBncnVwU2VnbWVudC5zZWN0aW9uLFxyXG4gICAgICAgICAgICAgICAgICBzaGVsbF9rZXksXHJcbiAgICAgICAgICAgICAgICAgIHBvbHlnb24ucG9pbnRzLFxyXG4gICAgICAgICAgICAgICAgICBncnVwU2VnbWVudC5zdGFydENvbG9yLFxyXG4gICAgICAgICAgICAgICAgICBncnVwU2VnbWVudC5lbmRDb2xvclxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgTG9uZ2FuLkxvbmdhbkNvcmUuSlNfVW5TZXRfR2VvbWV0cnlfQ29sb3Ioc2hlbGxfa2V5LCBcImZhY2VzXCIpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZmFjZUNvbG9yKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2VnbWVudC5jb2xvci5zZXRGYWNlKHRoaXMuZmFjZUNvbG9yKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2VnbWVudC5jb2xvci5zZXRGYWNlKE9iamVjdENvbG9yLm1lbWJlckZhY2VDb2xvcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubGluZUNvbG9yKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2VnbWVudC5jb2xvci5zZXRMaW5lKHRoaXMubGluZUNvbG9yKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2VnbWVudC5jb2xvci5zZXRMaW5lKE9iamVjdENvbG9yLm1lbWJlckxpbmVDb2xvcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAvLyDlpoLmnpzmnYbku7bmnInorr7nva7popzoibLvvIzmnYbku7bnmoTpopzoibLkvJjlhYguXHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuc3RhcnRDb2xvciAmJiB0aGlzLmVuZENvbG9yKSB7XHJcbiAgICAgICAgICAgICAgICBMb25nYW4uTG9uZ2FuQ29yZS5KU19VblNldF9HZW9tZXRyeV9Db2xvcihzaGVsbF9rZXksIFwiZmFjZXNcIik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFNoZWxsQ2xvdWRDb2xvcihcclxuICAgICAgICAgICAgICAgICAgZ3J1cFNlZ21lbnQuc2VjdGlvbixcclxuICAgICAgICAgICAgICAgICAgc2hlbGxfa2V5LFxyXG4gICAgICAgICAgICAgICAgICBwb2x5Z29uLnBvaW50cyxcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zdGFydENvbG9yLFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmVuZENvbG9yXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBMb25nYW4uTG9uZ2FuQ29yZS5KU19DbG9zZV9TZWdtZW50KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDpgJrov4fkuKTkuKpCT1jmiKrpnaLnmoTngrnlnZDmoIfmlbDmja7vvIzorqHnrpflh7rmlrnnrrHmooHlj5jmiKrpnaLnmoRzaGVsbERhdGEuXHJcbiAgICogQHBhcmFtIHBvbHlnb24xXHJcbiAgICogQHBhcmFtIHBvbHlnb24yXHJcbiAgICogQHJldHVybnNcclxuICAgKi9cclxuICBnZXRUYXJwZXJCb3hTaGVsbERhdGEocG9seWdvbjEsIHBvbHlnb24yKSB7XHJcbiAgICAvL1xyXG4gICAgbGV0IHBwMSA9IHBvbHlnb24xLnBvaW50cyBhcyBudW1iZXJbXTtcclxuICAgIGxldCBwMCA9IHBwMS5zbGljZSgwLCAzKTtcclxuICAgIGxldCBwMSA9IHBwMS5zbGljZSgzLCA2KTtcclxuICAgIGxldCBwMiA9IHBwMS5zbGljZSg2LCA5KTtcclxuICAgIGxldCBwMyA9IHBwMS5zbGljZSg5LCAxMik7XHJcbiAgICBsZXQgcDQgPSBwcDEuc2xpY2UoMTIsIDE1KTtcclxuICAgIGxldCBwNSA9IHBwMS5zbGljZSgxNSwgMTgpO1xyXG4gICAgbGV0IHA2ID0gcHAxLnNsaWNlKDE4LCAyMSk7XHJcbiAgICBsZXQgcDcgPSBwcDEuc2xpY2UoMjEsIDI0KTtcclxuXHJcbiAgICBsZXQgcHAyID0gcG9seWdvbjIucG9pbnRzIGFzIG51bWJlcltdO1xyXG4gICAgbGV0IHA4ID0gcHAyLnNsaWNlKDAsIDMpO1xyXG4gICAgbGV0IHA5ID0gcHAyLnNsaWNlKDMsIDYpO1xyXG4gICAgbGV0IHAxMCA9IHBwMi5zbGljZSg2LCA5KTtcclxuICAgIGxldCBwMTEgPSBwcDIuc2xpY2UoOSwgMTIpO1xyXG4gICAgbGV0IHAxMiA9IHBwMi5zbGljZSgxMiwgMTUpO1xyXG4gICAgbGV0IHAxMyA9IHBwMi5zbGljZSgxNSwgMTgpO1xyXG4gICAgbGV0IHAxNCA9IHBwMi5zbGljZSgxOCwgMjEpO1xyXG4gICAgbGV0IHAxNSA9IHBwMi5zbGljZSgyMSwgMjQpO1xyXG5cclxuICAgIGxldCBwb2ludHMgPSBBcnJheTxudW1iZXI+KCk7XHJcbiAgICBsZXQgaW5kaWNlcyA9IEFycmF5PG51bWJlcj4oKTtcclxuXHJcbiAgICBsZXQgY3VycmVudFBvaW50Q291bnQgPSAwO1xyXG5cclxuICAgIC8vIGRyYXcgdGFwZXIgYm94IGJvZHlcclxuICAgIHBvaW50cyA9IHBvaW50cy5jb25jYXQocG9seWdvbjEucG9pbnRzKTtcclxuICAgIGluZGljZXMgPSBbNCwgMywgMiwgMSwgMCwgLTQsIDQsIDUsIDYsIDddO1xyXG4gICAgY3VycmVudFBvaW50Q291bnQgKz0gcG9seWdvbjEucG9pbnRzLmxlbmd0aCAvIDM7XHJcblxyXG4gICAgcG9pbnRzID0gcG9pbnRzLmNvbmNhdChwb2x5Z29uMi5wb2ludHMpO1xyXG4gICAgaW5kaWNlcyA9IGluZGljZXMuY29uY2F0KFtcclxuICAgICAgNCxcclxuICAgICAgY3VycmVudFBvaW50Q291bnQgKyAwLFxyXG4gICAgICBjdXJyZW50UG9pbnRDb3VudCArIDEsXHJcbiAgICAgIGN1cnJlbnRQb2ludENvdW50ICsgMixcclxuICAgICAgY3VycmVudFBvaW50Q291bnQgKyAzLFxyXG4gICAgICAtNCxcclxuICAgICAgY3VycmVudFBvaW50Q291bnQgKyA3LFxyXG4gICAgICBjdXJyZW50UG9pbnRDb3VudCArIDYsXHJcbiAgICAgIGN1cnJlbnRQb2ludENvdW50ICsgNSxcclxuICAgICAgY3VycmVudFBvaW50Q291bnQgKyA0LFxyXG4gICAgXSk7XHJcbiAgICBjdXJyZW50UG9pbnRDb3VudCArPSBwb2x5Z29uMi5wb2ludHMubGVuZ3RoIC8gMztcclxuXHJcbiAgICBsZXQgZGF0YSA9IHRoaXMuZ2V0VGFwZXJCb3hTaWRlU2hlbGxEYXRhKFxyXG4gICAgICBwb2ludHMsXHJcbiAgICAgIGluZGljZXMsXHJcbiAgICAgIFtwMCwgcDgsIHAxMSwgcDNdLFxyXG4gICAgICBjdXJyZW50UG9pbnRDb3VudFxyXG4gICAgKTtcclxuICAgIHBvaW50cyA9IGRhdGEucG9pbnRzO1xyXG4gICAgaW5kaWNlcyA9IGRhdGEuaW5kaWNlcztcclxuICAgIGN1cnJlbnRQb2ludENvdW50ID0gZGF0YS5jdXJyZW50UG9pbnRDb3VudDtcclxuXHJcbiAgICBkYXRhID0gdGhpcy5nZXRUYXBlckJveFNpZGVTaGVsbERhdGEoXHJcbiAgICAgIHBvaW50cyxcclxuICAgICAgaW5kaWNlcyxcclxuICAgICAgW3AwLCBwMSwgcDksIHA4XSxcclxuICAgICAgY3VycmVudFBvaW50Q291bnRcclxuICAgICk7XHJcbiAgICBwb2ludHMgPSBkYXRhLnBvaW50cztcclxuICAgIGluZGljZXMgPSBkYXRhLmluZGljZXM7XHJcbiAgICBjdXJyZW50UG9pbnRDb3VudCA9IGRhdGEuY3VycmVudFBvaW50Q291bnQ7XHJcblxyXG4gICAgZGF0YSA9IHRoaXMuZ2V0VGFwZXJCb3hTaWRlU2hlbGxEYXRhKFxyXG4gICAgICBwb2ludHMsXHJcbiAgICAgIGluZGljZXMsXHJcbiAgICAgIFtwMywgcDExLCBwMTAsIHAyXSxcclxuICAgICAgY3VycmVudFBvaW50Q291bnRcclxuICAgICk7XHJcbiAgICBwb2ludHMgPSBkYXRhLnBvaW50cztcclxuICAgIGluZGljZXMgPSBkYXRhLmluZGljZXM7XHJcbiAgICBjdXJyZW50UG9pbnRDb3VudCA9IGRhdGEuY3VycmVudFBvaW50Q291bnQ7XHJcblxyXG4gICAgZGF0YSA9IHRoaXMuZ2V0VGFwZXJCb3hTaWRlU2hlbGxEYXRhKFxyXG4gICAgICBwb2ludHMsXHJcbiAgICAgIGluZGljZXMsXHJcbiAgICAgIFtwMSwgcDIsIHAxMCwgcDldLFxyXG4gICAgICBjdXJyZW50UG9pbnRDb3VudFxyXG4gICAgKTtcclxuICAgIHBvaW50cyA9IGRhdGEucG9pbnRzO1xyXG4gICAgaW5kaWNlcyA9IGRhdGEuaW5kaWNlcztcclxuICAgIGN1cnJlbnRQb2ludENvdW50ID0gZGF0YS5jdXJyZW50UG9pbnRDb3VudDtcclxuXHJcbiAgICBkYXRhID0gdGhpcy5nZXRUYXBlckJveFNpZGVTaGVsbERhdGEoXHJcbiAgICAgIHBvaW50cyxcclxuICAgICAgaW5kaWNlcyxcclxuICAgICAgW3A0LCBwNywgcDE1LCBwMTJdLFxyXG4gICAgICBjdXJyZW50UG9pbnRDb3VudFxyXG4gICAgKTtcclxuICAgIHBvaW50cyA9IGRhdGEucG9pbnRzO1xyXG4gICAgaW5kaWNlcyA9IGRhdGEuaW5kaWNlcztcclxuICAgIGN1cnJlbnRQb2ludENvdW50ID0gZGF0YS5jdXJyZW50UG9pbnRDb3VudDtcclxuXHJcbiAgICBkYXRhID0gdGhpcy5nZXRUYXBlckJveFNpZGVTaGVsbERhdGEoXHJcbiAgICAgIHBvaW50cyxcclxuICAgICAgaW5kaWNlcyxcclxuICAgICAgW3A0LCBwMTIsIHAxMywgcDVdLFxyXG4gICAgICBjdXJyZW50UG9pbnRDb3VudFxyXG4gICAgKTtcclxuICAgIHBvaW50cyA9IGRhdGEucG9pbnRzO1xyXG4gICAgaW5kaWNlcyA9IGRhdGEuaW5kaWNlcztcclxuICAgIGN1cnJlbnRQb2ludENvdW50ID0gZGF0YS5jdXJyZW50UG9pbnRDb3VudDtcclxuXHJcbiAgICBkYXRhID0gdGhpcy5nZXRUYXBlckJveFNpZGVTaGVsbERhdGEoXHJcbiAgICAgIHBvaW50cyxcclxuICAgICAgaW5kaWNlcyxcclxuICAgICAgW3A1LCBwMTMsIHAxNCwgcDZdLFxyXG4gICAgICBjdXJyZW50UG9pbnRDb3VudFxyXG4gICAgKTtcclxuICAgIHBvaW50cyA9IGRhdGEucG9pbnRzO1xyXG4gICAgaW5kaWNlcyA9IGRhdGEuaW5kaWNlcztcclxuICAgIGN1cnJlbnRQb2ludENvdW50ID0gZGF0YS5jdXJyZW50UG9pbnRDb3VudDtcclxuXHJcbiAgICBkYXRhID0gdGhpcy5nZXRUYXBlckJveFNpZGVTaGVsbERhdGEoXHJcbiAgICAgIHBvaW50cyxcclxuICAgICAgaW5kaWNlcyxcclxuICAgICAgW3A2LCBwMTQsIHAxNSwgcDddLFxyXG4gICAgICBjdXJyZW50UG9pbnRDb3VudFxyXG4gICAgKTtcclxuICAgIHBvaW50cyA9IGRhdGEucG9pbnRzO1xyXG4gICAgaW5kaWNlcyA9IGRhdGEuaW5kaWNlcztcclxuICAgIGN1cnJlbnRQb2ludENvdW50ID0gZGF0YS5jdXJyZW50UG9pbnRDb3VudDtcclxuXHJcbiAgICByZXR1cm4geyBwb2ludHMsIGluZGljZXMgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiuoeeul+WHuua3u+WKoOaWueeuseWPmOaIqumdouS4gOS4quWjgeeahOmhtueCueWSjOe0ouW8lS5cclxuICAgKiBAcGFyYW0gcG9pbnRzIOaWueeuseWPmOaIqumdoueahOmhtueCuVxyXG4gICAqIEBwYXJhbSBpbmRpY2VzIOaWueeuseWPmOaIqumdoueahOe0ouW8lVxyXG4gICAqIEBwYXJhbSBOZXdQb2ludHMg5re75Yqg55qE5aOB55qENOS4queCuVxyXG4gICAqIEBwYXJhbSBjdXJyZW50UG9pbnRDb3VudCDlvZPliY3ngrnnmoTntKLlvJVcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIGdldFRhcGVyQm94U2lkZVNoZWxsRGF0YShcclxuICAgIHBvaW50czogbnVtYmVyW10sXHJcbiAgICBpbmRpY2VzOiBudW1iZXJbXSxcclxuICAgIE5ld1BvaW50czogbnVtYmVyW11bXSxcclxuICAgIGN1cnJlbnRQb2ludENvdW50OiBudW1iZXJcclxuICApIHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgTmV3UG9pbnRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHBvaW50cyA9IHBvaW50cy5jb25jYXQoTmV3UG9pbnRzW2ldKTtcclxuICAgIH1cclxuXHJcbiAgICBpbmRpY2VzID0gaW5kaWNlcy5jb25jYXQoW1xyXG4gICAgICA0LFxyXG4gICAgICBjdXJyZW50UG9pbnRDb3VudCArIDAsXHJcbiAgICAgIGN1cnJlbnRQb2ludENvdW50ICsgMSxcclxuICAgICAgY3VycmVudFBvaW50Q291bnQgKyAyLFxyXG4gICAgICBjdXJyZW50UG9pbnRDb3VudCArIDMsXHJcbiAgICBdKTtcclxuICAgIGN1cnJlbnRQb2ludENvdW50ICs9IDQ7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgcG9pbnRzLFxyXG4gICAgICBpbmRpY2VzLFxyXG4gICAgICBjdXJyZW50UG9pbnRDb3VudCxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDlj6rpgILnlKjkuo7mi4nkvLjkvZMs6YCa6L+H5oiq6Z2i55qE54K55pWw5o2u77yM6K6+572u5ouJ5Ly45L2T55qE5pW05L2T6aKc6Imy77yI5Y+v5riQ5Y+Y77yJXHJcbiAgICogQHBhcmFtIHNoZWxsX2tleVxyXG4gICAqIEBwYXJhbSBwb2ludHMg5oiq6Z2i55qE54K55pWw5o2uLlxyXG4gICAqIEBwYXJhbSBzdGFydENvbG9yXHJcbiAgICogQHBhcmFtIGVuZENvbG9yXHJcbiAgICovXHJcbiAgc2V0U2hlbGxDbG91ZENvbG9yKFxyXG4gICAgc2VjdGlvbjogU2VjdGlvbk9iamVjdCxcclxuICAgIHNoZWxsX2tleSxcclxuICAgIHBvaW50czogbnVtYmVyW10sXHJcbiAgICBzdGFydENvbG9yOiBudW1iZXJbXSxcclxuICAgIGVuZENvbG9yOiBudW1iZXJbXVxyXG4gICkge1xyXG4gICAgaWYgKHNlY3Rpb24pIHtcclxuICAgICAgaWYgKHNlY3Rpb24uY3Jvc3NTZWN0aW9uVHlwZS50b0xvd2VyQ2FzZSgpID09PSBcImNvblwiKSB7XHJcbiAgICAgICAgdGhpcy5zZXRDb25DbG91ZENvbG9yKHNoZWxsX2tleSwgc3RhcnRDb2xvciwgZW5kQ29sb3IpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2V0U2VjdGlvbkNsb3VkQ29sb3Ioc2hlbGxfa2V5LCBwb2ludHMsIHN0YXJ0Q29sb3IsIGVuZENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRUdWJDbG91ZENvbG9yKHNoZWxsX2tleSwgc3RhcnRDb2xvciwgZW5kQ29sb3IpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0Q29uQ2xvdWRDb2xvcihcclxuICAgIHNoZWxsX2tleTogbnVtYmVyLFxyXG4gICAgc3RhcnRDb2xvcjogbnVtYmVyW10sXHJcbiAgICBlbmRDb2xvcjogbnVtYmVyW11cclxuICApIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKFwic2V0Q29uQ2xvdWRDb2xvclwiKTtcclxuXHJcbiAgICAvLyBjdXJ2ZVRlc3NOdW3vvJrkuIDkuKrljYrlnIbnmoTngrnmlbDph48uXHJcbiAgICAvLyDkuIDkuKrmlbTlnIbnmoTnprvmlaPngrnmlbDph48uXHJcbiAgICBsZXQgb25lQ2lyY2xlVGVzc051bSA9IE1lbWJlck9iamVjdC5jdXJ2ZVRlc3NOdW0gKiAyO1xyXG4gICAgbGV0IHNoZWxsQ29sb3JzID0gbmV3IEFycmF5PG51bWJlcj4oKTtcclxuXHJcbiAgICAvLyDlupXpnaLlpJblnIjpopzoibJcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb25lQ2lyY2xlVGVzc051bTsgaSsrKSB7XHJcbiAgICAgIC8vXHJcbiAgICAgIHNoZWxsQ29sb3JzLnB1c2goc3RhcnRDb2xvclswXSk7XHJcbiAgICAgIHNoZWxsQ29sb3JzLnB1c2goc3RhcnRDb2xvclsxXSk7XHJcbiAgICAgIHNoZWxsQ29sb3JzLnB1c2goc3RhcnRDb2xvclsyXSk7XHJcbiAgICAgIGlmIChzdGFydENvbG9yWzNdKSB7XHJcbiAgICAgICAgc2hlbGxDb2xvcnMucHVzaChzdGFydENvbG9yWzNdKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzaGVsbENvbG9ycy5wdXNoKDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8g6aG26Z2i5aSW5ZyI6aKc6ImyXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9uZUNpcmNsZVRlc3NOdW07IGkrKykge1xyXG4gICAgICAvL1xyXG4gICAgICBzaGVsbENvbG9ycy5wdXNoKGVuZENvbG9yWzBdKTtcclxuICAgICAgc2hlbGxDb2xvcnMucHVzaChlbmRDb2xvclsxXSk7XHJcbiAgICAgIHNoZWxsQ29sb3JzLnB1c2goZW5kQ29sb3JbMl0pO1xyXG4gICAgICBpZiAoc3RhcnRDb2xvclszXSkge1xyXG4gICAgICAgIHNoZWxsQ29sb3JzLnB1c2goZW5kQ29sb3JbM10pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNoZWxsQ29sb3JzLnB1c2goMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyDorr7nva7mi4nkvLhzaGVsbOeahOmhtueCueeahOminOiJsi5cclxuICAgIExvbmdhbi5Mb25nYW5Db3JlLkpTX1NldF9HZW9tZXRyeV9Db2xvcl9CeV9WYWx1ZShcclxuICAgICAgc2hlbGxfa2V5LFxyXG4gICAgICBcImZhY2VzXCIsXHJcbiAgICAgIDAsXHJcbiAgICAgIHNoZWxsQ29sb3JzXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6K6+572u5ouJ5Ly45ZyG566h55qE6aKc6Imy77yI5Y+v5riQ5Y+Y77yJXHJcbiAgICogQHBhcmFtIHNoZWxsX2tleVxyXG4gICAqIEBwYXJhbSBzdGFydENvbG9yXHJcbiAgICogQHBhcmFtIGVuZENvbG9yXHJcbiAgICovXHJcbiAgc2V0VHViQ2xvdWRDb2xvcihcclxuICAgIHNoZWxsX2tleTogbnVtYmVyLFxyXG4gICAgc3RhcnRDb2xvcjogbnVtYmVyW10sXHJcbiAgICBlbmRDb2xvcjogbnVtYmVyW11cclxuICApIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKFwic2V0VHViQ2xvdWRDb2xvclwiKTtcclxuXHJcbiAgICAvLyBjdXJ2ZVRlc3NOdW3vvJrkuIDkuKrljYrlnIbnmoTngrnmlbDph48uXHJcbiAgICAvLyDkuIDkuKrmlbTlnIbnmoTnprvmlaPngrnmlbDph48uXHJcbiAgICBsZXQgb25lQ2lyY2xlVGVzc051bSA9IE1lbWJlck9iamVjdC5jdXJ2ZVRlc3NOdW0gKiAyO1xyXG4gICAgbGV0IHNoZWxsQ29sb3JzID0gbmV3IEFycmF5PG51bWJlcj4oKTtcclxuXHJcbiAgICAvLyDlupXpnaLlpJblnIjpopzoibJcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb25lQ2lyY2xlVGVzc051bTsgaSsrKSB7XHJcbiAgICAgIC8vXHJcbiAgICAgIHNoZWxsQ29sb3JzLnB1c2goc3RhcnRDb2xvclswXSk7XHJcbiAgICAgIHNoZWxsQ29sb3JzLnB1c2goc3RhcnRDb2xvclsxXSk7XHJcbiAgICAgIHNoZWxsQ29sb3JzLnB1c2goc3RhcnRDb2xvclsyXSk7XHJcbiAgICAgIGlmIChzdGFydENvbG9yWzNdKSB7XHJcbiAgICAgICAgc2hlbGxDb2xvcnMucHVzaChzdGFydENvbG9yWzNdKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzaGVsbENvbG9ycy5wdXNoKDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8g6aG26Z2i5aSW5ZyI6aKc6ImyXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9uZUNpcmNsZVRlc3NOdW07IGkrKykge1xyXG4gICAgICAvL1xyXG4gICAgICBzaGVsbENvbG9ycy5wdXNoKGVuZENvbG9yWzBdKTtcclxuICAgICAgc2hlbGxDb2xvcnMucHVzaChlbmRDb2xvclsxXSk7XHJcbiAgICAgIHNoZWxsQ29sb3JzLnB1c2goZW5kQ29sb3JbMl0pO1xyXG4gICAgICBpZiAoc3RhcnRDb2xvclszXSkge1xyXG4gICAgICAgIHNoZWxsQ29sb3JzLnB1c2goZW5kQ29sb3JbM10pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNoZWxsQ29sb3JzLnB1c2goMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyDlupXpnaLlhoXlnIjpopzoibJcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb25lQ2lyY2xlVGVzc051bTsgaSsrKSB7XHJcbiAgICAgIC8vXHJcbiAgICAgIHNoZWxsQ29sb3JzLnB1c2goc3RhcnRDb2xvclswXSk7XHJcbiAgICAgIHNoZWxsQ29sb3JzLnB1c2goc3RhcnRDb2xvclsxXSk7XHJcbiAgICAgIHNoZWxsQ29sb3JzLnB1c2goc3RhcnRDb2xvclsyXSk7XHJcbiAgICAgIGlmIChzdGFydENvbG9yWzNdKSB7XHJcbiAgICAgICAgc2hlbGxDb2xvcnMucHVzaChzdGFydENvbG9yWzNdKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzaGVsbENvbG9ycy5wdXNoKDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8g6aG26Z2i5YaF5ZyI6aKc6ImyXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9uZUNpcmNsZVRlc3NOdW07IGkrKykge1xyXG4gICAgICAvL1xyXG4gICAgICBzaGVsbENvbG9ycy5wdXNoKGVuZENvbG9yWzBdKTtcclxuICAgICAgc2hlbGxDb2xvcnMucHVzaChlbmRDb2xvclsxXSk7XHJcbiAgICAgIHNoZWxsQ29sb3JzLnB1c2goZW5kQ29sb3JbMl0pO1xyXG4gICAgICBpZiAoc3RhcnRDb2xvclszXSkge1xyXG4gICAgICAgIHNoZWxsQ29sb3JzLnB1c2goZW5kQ29sb3JbM10pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNoZWxsQ29sb3JzLnB1c2goMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL+iuvue9rumhtumdouebluWtkOeahOminOiJsi5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb25lQ2lyY2xlVGVzc051bSAqIDI7IGkrKykge1xyXG4gICAgICBzaGVsbENvbG9ycy5wdXNoKGVuZENvbG9yWzBdKTtcclxuICAgICAgc2hlbGxDb2xvcnMucHVzaChlbmRDb2xvclsxXSk7XHJcbiAgICAgIHNoZWxsQ29sb3JzLnB1c2goZW5kQ29sb3JbMl0pO1xyXG4gICAgICBpZiAoc3RhcnRDb2xvclszXSkge1xyXG4gICAgICAgIHNoZWxsQ29sb3JzLnB1c2goZW5kQ29sb3JbM10pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNoZWxsQ29sb3JzLnB1c2goMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvL+iuvue9ruW6lemdouebluWtkOeahOminOiJsi5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb25lQ2lyY2xlVGVzc051bSAqIDI7IGkrKykge1xyXG4gICAgICBzaGVsbENvbG9ycy5wdXNoKHN0YXJ0Q29sb3JbMF0pO1xyXG4gICAgICBzaGVsbENvbG9ycy5wdXNoKHN0YXJ0Q29sb3JbMV0pO1xyXG4gICAgICBzaGVsbENvbG9ycy5wdXNoKHN0YXJ0Q29sb3JbMl0pO1xyXG4gICAgICBpZiAoc3RhcnRDb2xvclszXSkge1xyXG4gICAgICAgIHNoZWxsQ29sb3JzLnB1c2goc3RhcnRDb2xvclszXSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc2hlbGxDb2xvcnMucHVzaCgxKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIOiuvue9ruaLieS8uHNoZWxs55qE6aG254K555qE6aKc6ImyLlxyXG4gICAgTG9uZ2FuLkxvbmdhbkNvcmUuSlNfU2V0X0dlb21ldHJ5X0NvbG9yX0J5X1ZhbHVlKFxyXG4gICAgICBzaGVsbF9rZXksXHJcbiAgICAgIFwiZmFjZXNcIixcclxuICAgICAgMCxcclxuICAgICAgc2hlbGxDb2xvcnNcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDpgJrov4fmiKrpnaLnmoTngrnmlbDmja7vvIzorr7nva7pnZ7lnIbnrqHmi4nkvLjkvZPnmoTpopzoibLvvIjlj6/muJDlj5jvvInvvIzlj6rpgILnlKjkuo7pgJrov4fmiKrpnaLmi4nkvLjnmoTkvZNcclxuICAgKiBAcGFyYW0gc2hlbGxfa2V5XHJcbiAgICogQHBhcmFtIHBvaW50c1xyXG4gICAqIEBwYXJhbSBzdGFydENvbG9yXHJcbiAgICogQHBhcmFtIGVuZENvbG9yXHJcbiAgICovXHJcbiAgc2V0U2VjdGlvbkNsb3VkQ29sb3IoXHJcbiAgICBzaGVsbF9rZXk6IG51bWJlcixcclxuICAgIHBvaW50czogbnVtYmVyW10sXHJcbiAgICBzdGFydENvbG9yOiBudW1iZXJbXSxcclxuICAgIGVuZENvbG9yOiBudW1iZXJbXVxyXG4gICkge1xyXG4gICAgbGV0IHNoZWxsQ29sb3JzID0gbmV3IEFycmF5PG51bWJlcj4oKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aCAvIDM7IGkrKykge1xyXG4gICAgICAvL1xyXG4gICAgICBzaGVsbENvbG9ycy5wdXNoKHN0YXJ0Q29sb3JbMF0pO1xyXG4gICAgICBzaGVsbENvbG9ycy5wdXNoKHN0YXJ0Q29sb3JbMV0pO1xyXG4gICAgICBzaGVsbENvbG9ycy5wdXNoKHN0YXJ0Q29sb3JbMl0pO1xyXG4gICAgICBpZiAoc3RhcnRDb2xvclszXSkge1xyXG4gICAgICAgIHNoZWxsQ29sb3JzLnB1c2goc3RhcnRDb2xvclszXSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc2hlbGxDb2xvcnMucHVzaCgxKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcG9pbnRzLmxlbmd0aCAvIDM7IGkrKykge1xyXG4gICAgICAvL1xyXG4gICAgICBzaGVsbENvbG9ycy5wdXNoKGVuZENvbG9yWzBdKTtcclxuICAgICAgc2hlbGxDb2xvcnMucHVzaChlbmRDb2xvclsxXSk7XHJcbiAgICAgIHNoZWxsQ29sb3JzLnB1c2goZW5kQ29sb3JbMl0pO1xyXG4gICAgICBpZiAoc3RhcnRDb2xvclszXSkge1xyXG4gICAgICAgIHNoZWxsQ29sb3JzLnB1c2goZW5kQ29sb3JbM10pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNoZWxsQ29sb3JzLnB1c2goMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBvaW50cy5sZW5ndGggLyAzOyBpKyspIHtcclxuICAgICAgLy9cclxuICAgICAgc2hlbGxDb2xvcnMucHVzaChlbmRDb2xvclswXSk7XHJcbiAgICAgIHNoZWxsQ29sb3JzLnB1c2goZW5kQ29sb3JbMV0pO1xyXG4gICAgICBzaGVsbENvbG9ycy5wdXNoKGVuZENvbG9yWzJdKTtcclxuICAgICAgaWYgKHN0YXJ0Q29sb3JbM10pIHtcclxuICAgICAgICBzaGVsbENvbG9ycy5wdXNoKGVuZENvbG9yWzNdKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzaGVsbENvbG9ycy5wdXNoKDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoIC8gMzsgaSsrKSB7XHJcbiAgICAgIC8vXHJcbiAgICAgIHNoZWxsQ29sb3JzLnB1c2goc3RhcnRDb2xvclswXSk7XHJcbiAgICAgIHNoZWxsQ29sb3JzLnB1c2goc3RhcnRDb2xvclsxXSk7XHJcbiAgICAgIHNoZWxsQ29sb3JzLnB1c2goc3RhcnRDb2xvclsyXSk7XHJcbiAgICAgIGlmIChzdGFydENvbG9yWzNdKSB7XHJcbiAgICAgICAgc2hlbGxDb2xvcnMucHVzaChzdGFydENvbG9yWzNdKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzaGVsbENvbG9ycy5wdXNoKDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8g6K6+572u5ouJ5Ly4c2hlbGznmoTpobbngrnnmoTpopzoibIuXHJcbiAgICBMb25nYW4uTG9uZ2FuQ29yZS5KU19TZXRfR2VvbWV0cnlfQ29sb3JfQnlfVmFsdWUoXHJcbiAgICAgIHNoZWxsX2tleSxcclxuICAgICAgXCJmYWNlc1wiLFxyXG4gICAgICAwLFxyXG4gICAgICBzaGVsbENvbG9yc1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFVuZGVmaW5lU2VnbWVudExlbmd0aCgpIHtcclxuICAgIGxldCBsZW5ndGggPSB0aGlzLmdldE1lbWJlckxlbmd0aCgpO1xyXG4gICAgaWYgKHRoaXMuZ3J1cCkge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZ3J1cC5ncnVwU2VnbWVudHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZW5ndGggLT0gdGhpcy5ncnVwLmdydXBTZWdtZW50c1tpXS5zZWdtZW50TGVuZ3RoO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGxlbmd0aCA8IDApIHtcclxuICAgICAgbGVuZ3RoID0gMDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldFJlZmVyZW5jZShwbTogUGVyc2lzdGVuY2VNYW5hZ2VyKSB7XHJcbiAgICBpZiAodHlwZW9mIHRoaXMuc3RhcnQgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgbGV0IHN0YXJ0ID0gcG0ucmVmZXJlbmNlTGlzdC5nZXQodGhpcy5zdGFydCBhcyBzdHJpbmcpO1xyXG4gICAgICBpZiAoc3RhcnQpIHtcclxuICAgICAgICB0aGlzLnN0YXJ0ID0gc3RhcnQgYXMgSm9pbnRPYmplY3Q7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodHlwZW9mIHRoaXMuZW5kID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgIGxldCBlbmQgPSBwbS5yZWZlcmVuY2VMaXN0LmdldCh0aGlzLmVuZCBhcyBzdHJpbmcpO1xyXG4gICAgICBpZiAoZW5kKSB7XHJcbiAgICAgICAgdGhpcy5lbmQgPSBlbmQgYXMgSm9pbnRPYmplY3Q7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodHlwZW9mIHRoaXMuZ3J1cCA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICBsZXQgZ3J1cCA9IHBtLnJlZmVyZW5jZUxpc3QuZ2V0KHRoaXMuZ3J1cCBhcyBzdHJpbmcpO1xyXG4gICAgICBpZiAoZ3J1cCkge1xyXG4gICAgICAgIHRoaXMuZ3J1cCA9IGdydXAgYXMgR3J1cE9iamVjdDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2V0TmVlZFVwZGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5pu/5o2i5p2G5Lu255qE5YW25Lit5LiA5Liq56m66Ze054K5XHJcbiAgICogQHBhcmFtIHJlcGxhY2luZ0pvaW50IOiiq+abv+aNoueahOepuumXtOeCuVxyXG4gICAqIEBwYXJhbSBhZnRlckpvaW50IOabv+aNouWQjueahOepuumXtOeCuVxyXG4gICAqL1xyXG4gIHB1YmxpYyBqb2ludFJlcGxhY2UocmVwbGFjaW5nSm9pbnQ6IEpvaW50T2JqZWN0LCBhZnRlckpvaW50OiBKb2ludE9iamVjdCkge1xyXG4gICAgaWYgKHRoaXMuc3RhcnQuaWQgPT09IHJlcGxhY2luZ0pvaW50LmlkKSB7XHJcbiAgICAgIHRoaXMuc3RhcnQgPSBhZnRlckpvaW50O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5lbmQgPSBhZnRlckpvaW50O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFN0YXJ0UG9zaXRpb24oKTogbnVtYmVyW10ge1xyXG4gICAgbGV0IHN0YXJ0UG9zaXRpb24gPSBudWxsO1xyXG5cclxuICAgIGlmICh0aGlzLnN0YXJ0KSB7XHJcbiAgICAgIGlmICh0aGlzLnN0YXJ0LnBvc2l0aW9uKSB7XHJcbiAgICAgICAgc3RhcnRQb3NpdGlvbiA9IExvbmdhbi5kZWVwQ2xvbmUodGhpcy5zdGFydC5wb3NpdGlvbik7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhcnRPZmZzZXQpIHtcclxuICAgICAgICAgIGlmICh0aGlzLm9mZnNldE9wdGlvbiA9PT0gXCIyXCIpIHtcclxuICAgICAgICAgICAgLy8g5bGA6YOo5YGP56e7XHJcbiAgICAgICAgICAgIGxldCBheGlzU3lzdGVtID0gdGhpcy5nZXRTdGFydEVuZExvY2FsQXhpcygpO1xyXG4gICAgICAgICAgICBsZXQgcG9zID0gbmV3IEZsb2F0MzJBcnJheShzdGFydFBvc2l0aW9uKTtcclxuICAgICAgICAgICAgcG9zID0gTG9uZ2FuLlBvaW50LmFkZChcclxuICAgICAgICAgICAgICBwb3MsXHJcbiAgICAgICAgICAgICAgTG9uZ2FuLlZlY3Rvci5tdWx0aXBseShcclxuICAgICAgICAgICAgICAgIGF4aXNTeXN0ZW0ueEF4aXMsXHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0T2Zmc2V0WzBdIC8gMTAwXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBwb3MgPSBMb25nYW4uUG9pbnQuYWRkKFxyXG4gICAgICAgICAgICAgIHBvcyxcclxuICAgICAgICAgICAgICBMb25nYW4uVmVjdG9yLm11bHRpcGx5KFxyXG4gICAgICAgICAgICAgICAgYXhpc1N5c3RlbS55QXhpcyxcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRPZmZzZXRbMV0gLyAxMDBcclxuICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHBvcyA9IExvbmdhbi5Qb2ludC5hZGQoXHJcbiAgICAgICAgICAgICAgcG9zLFxyXG4gICAgICAgICAgICAgIExvbmdhbi5WZWN0b3IubXVsdGlwbHkoXHJcbiAgICAgICAgICAgICAgICBheGlzU3lzdGVtLnpBeGlzLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5zdGFydE9mZnNldFsyXSAvIDEwMFxyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgIHN0YXJ0UG9zaXRpb25bMF0gPSBwb3NbMF07XHJcbiAgICAgICAgICAgIHN0YXJ0UG9zaXRpb25bMV0gPSBwb3NbMV07XHJcbiAgICAgICAgICAgIHN0YXJ0UG9zaXRpb25bMl0gPSBwb3NbMl07XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMub2Zmc2V0T3B0aW9uID09PSBcIjFcIikge1xyXG4gICAgICAgICAgICAvLyDlhajlsYDlgY/np7tcclxuICAgICAgICAgICAgc3RhcnRQb3NpdGlvblswXSArPSB0aGlzLnN0YXJ0T2Zmc2V0WzBdIC8gMTAwO1xyXG4gICAgICAgICAgICBzdGFydFBvc2l0aW9uWzFdICs9IHRoaXMuc3RhcnRPZmZzZXRbMV0gLyAxMDA7XHJcbiAgICAgICAgICAgIHN0YXJ0UG9zaXRpb25bMl0gKz0gdGhpcy5zdGFydE9mZnNldFsyXSAvIDEwMDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIOS4jea3u+WKoOWBj+enuy5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gc3RhcnRQb3NpdGlvbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRFbmRQb3NpdGlvbigpOiBudW1iZXJbXSB7XHJcbiAgICBsZXQgZW5kUG9zaXRpb24gPSBudWxsO1xyXG5cclxuICAgIGlmICh0aGlzLmVuZCkge1xyXG4gICAgICBpZiAodGhpcy5lbmQucG9zaXRpb24pIHtcclxuICAgICAgICBlbmRQb3NpdGlvbiA9IExvbmdhbi5kZWVwQ2xvbmUodGhpcy5lbmQucG9zaXRpb24pO1xyXG4gICAgICAgIGlmICh0aGlzLmVuZE9mZnNldCkge1xyXG4gICAgICAgICAgaWYgKHRoaXMub2Zmc2V0T3B0aW9uID09PSBcIjJcIikge1xyXG4gICAgICAgICAgICAvLyDlsYDpg6jlgY/np7tcclxuICAgICAgICAgICAgbGV0IGF4aXNTeXN0ZW0gPSB0aGlzLmdldFN0YXJ0RW5kTG9jYWxBeGlzKCk7XHJcbiAgICAgICAgICAgIGxldCBwb3MgPSBuZXcgRmxvYXQzMkFycmF5KGVuZFBvc2l0aW9uKTtcclxuICAgICAgICAgICAgcG9zID0gTG9uZ2FuLlBvaW50LmFkZChcclxuICAgICAgICAgICAgICBwb3MsXHJcbiAgICAgICAgICAgICAgTG9uZ2FuLlZlY3Rvci5tdWx0aXBseShheGlzU3lzdGVtLnhBeGlzLCB0aGlzLmVuZE9mZnNldFswXSAvIDEwMClcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgcG9zID0gTG9uZ2FuLlBvaW50LmFkZChcclxuICAgICAgICAgICAgICBwb3MsXHJcbiAgICAgICAgICAgICAgTG9uZ2FuLlZlY3Rvci5tdWx0aXBseShheGlzU3lzdGVtLnlBeGlzLCB0aGlzLmVuZE9mZnNldFsxXSAvIDEwMClcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgcG9zID0gTG9uZ2FuLlBvaW50LmFkZChcclxuICAgICAgICAgICAgICBwb3MsXHJcbiAgICAgICAgICAgICAgTG9uZ2FuLlZlY3Rvci5tdWx0aXBseShheGlzU3lzdGVtLnpBeGlzLCB0aGlzLmVuZE9mZnNldFsyXSAvIDEwMClcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgIGVuZFBvc2l0aW9uWzBdID0gcG9zWzBdO1xyXG4gICAgICAgICAgICBlbmRQb3NpdGlvblsxXSA9IHBvc1sxXTtcclxuICAgICAgICAgICAgZW5kUG9zaXRpb25bMl0gPSBwb3NbMl07XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMub2Zmc2V0T3B0aW9uID09PSBcIjFcIikge1xyXG4gICAgICAgICAgICAvLyDlhajlsYDlgY/np7tcclxuICAgICAgICAgICAgZW5kUG9zaXRpb25bMF0gKz0gdGhpcy5lbmRPZmZzZXRbMF0gLyAxMDA7XHJcbiAgICAgICAgICAgIGVuZFBvc2l0aW9uWzFdICs9IHRoaXMuZW5kT2Zmc2V0WzFdIC8gMTAwO1xyXG4gICAgICAgICAgICBlbmRQb3NpdGlvblsyXSArPSB0aGlzLmVuZE9mZnNldFsyXSAvIDEwMDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIOS4jea3u+WKoOWBj+enu1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBlbmRQb3NpdGlvbjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiuoeeul+adhuS7tueahFjovbTmlrnlkJFcclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRWZWN0b3IoKSB7XHJcbiAgICBsZXQgc3RhcnRQb3MgPSB0aGlzLmdldFN0YXJ0UG9zaXRpb24oKTtcclxuICAgIGxldCBlbmRQb3MgPSB0aGlzLmdldEVuZFBvc2l0aW9uKCk7XHJcblxyXG4gICAgbGV0IHZlY3RvciA9IExvbmdhbi5Qb2ludC5zdWJ0cmFjdChcclxuICAgICAgbmV3IEZsb2F0MzJBcnJheShlbmRQb3MpLFxyXG4gICAgICBuZXcgRmxvYXQzMkFycmF5KHN0YXJ0UG9zKVxyXG4gICAgKTtcclxuICAgIExvbmdhbi5WZWN0b3Iubm9ybWFsaXplKHZlY3Rvcik7XHJcblxyXG4gICAgcmV0dXJuIHZlY3RvcjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiuoeeul+adhuS7tueahOWunumZhemVv+W6pihtKVxyXG4gICAqIEByZXR1cm5zXHJcbiAgICovXHJcbiAgcHVibGljIGdldE1lbWJlckxlbmd0aCgpOiBudW1iZXIge1xyXG4gICAgbGV0IHN0YXJ0UG9zID0gdGhpcy5nZXRTdGFydFBvc2l0aW9uKCk7XHJcbiAgICBsZXQgZW5kUG9zID0gdGhpcy5nZXRFbmRQb3NpdGlvbigpO1xyXG5cclxuICAgIGxldCBsZW5ndGggPSBMb25nYW4uVmVjdG9yLm1vZHVsZShcclxuICAgICAgTG9uZ2FuLlBvaW50LnN1YnRyYWN0KFxyXG4gICAgICAgIG5ldyBGbG9hdDMyQXJyYXkoZW5kUG9zKSxcclxuICAgICAgICBuZXcgRmxvYXQzMkFycmF5KHN0YXJ0UG9zKVxyXG4gICAgICApXHJcbiAgICApO1xyXG5cclxuICAgIHJldHVybiBsZW5ndGg7XHJcbiAgfVxyXG5cclxuICBnZXRMZW5ndGhPbkNNKCkge1xyXG4gICAgbGV0IGxlbmd0aCA9IDA7XHJcbiAgICBpZiAodGhpcy5ncnVwKSB7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5ncnVwLmdydXBTZWdtZW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGxlbmd0aCArPSB0aGlzLmdydXAuZ3J1cFNlZ21lbnRzW2ldLnNlZ21lbnRMZW5ndGg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgZ2V0V2lkdGgoKSB7XHJcbiAgICBsZXQgd2lkdGggPSAwO1xyXG4gICAgaWYgKHRoaXMuZ3J1cCkge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZ3J1cC5ncnVwU2VnbWVudHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB3aWR0aCArPSB0aGlzLmdydXAuZ3J1cFNlZ21lbnRzW2ldLnR1YldhbGxUaGlja25lc3M7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gd2lkdGg7XHJcbiAgfVxyXG5cclxuICBnZXRTaXplKGluZGV4OiBudW1iZXIpIHtcclxuICAgIGxldCB0ZXh0ID0gdGhpcy5uYW1lO1xyXG5cclxuICAgIGlmICh0aGlzLmdydXAgJiYgdGhpcy5ncnVwLmdydXBTZWdtZW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBncnVwU2VnbWVudCA9IHRoaXMuZ3J1cC5ncnVwU2VnbWVudHNbaW5kZXhdO1xyXG5cclxuICAgICAgaWYgKGdydXBTZWdtZW50LnNlY3Rpb24pIHtcclxuICAgICAgICBpZiAoZ3J1cFNlZ21lbnQuc2VjdGlvbi5jcm9zc1NlY3Rpb25UeXBlLnRvTG93ZXJDYXNlKCkgPT09IFwiY29uXCIpIHtcclxuICAgICAgICAgIC8vIOWchumUpei/h+a4oeautVxyXG4gICAgICAgICAgbGV0IGNvbiA9IGdydXBTZWdtZW50LnNlY3Rpb24gYXMgQ29uU2VjdGlvbk9iamVjdDtcclxuICAgICAgICAgIHRleHQgPSBjb24ubGFyZ2VPRCArIFwiflwiICsgY29uLnNtYWxsT0QgKyBcInhcIiArIGNvbi53YWxsVGhpY2s7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vIOWFtuS7luexu+Wei1xyXG4gICAgICAgICAgdGV4dCA9IGdydXBTZWdtZW50LnNlY3Rpb24ubmFtZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8g5ZyG566hXHJcbiAgICAgICAgdGV4dCA9XHJcbiAgICAgICAgICBOdW1iZXIoZ3J1cFNlZ21lbnQudHViT3V0ZXJEaWFtZXRlcikudG9TdHJpbmcoKSArXHJcbiAgICAgICAgICBcIsOXXCIgK1xyXG4gICAgICAgICAgTnVtYmVyKGdydXBTZWdtZW50LnR1YldhbGxUaGlja25lc3MpLnRvU3RyaW5nKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGV4dDtcclxuICB9XHJcblxyXG4gIGRyYXdTdmcoKSB7XHJcbiAgICBpZiAoIXRoaXMuY2hlY2tCdXNpbmVzc1N0YXRlSXNBY3RpdmUoKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGlybyA9IFByb2Nlc3MuYWN0aXZlUHJvY2Vzcy5hY3RpdmVWaWV3ZXIuZmluZEluc3RhbmNlT2JqZWN0KHRoaXMpO1xyXG4gICAgaWYgKGlybyAmJiAhaXJvLnZpc2libGUpIHtcclxuICAgICAgdGhpcy5jbGVhclN2ZygpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gbGV0IHZpZXdlciA9IFByb2Nlc3MuYWN0aXZlUHJvY2Vzcy5hY3RpdmVWaWV3ZXI7XHJcblxyXG4gICAgLy8gdGhpcy5zdmdJdGVtID0gbmV3IFN2Z0l0ZW0odmlld2VyKTtcclxuICAgIGlmICh0aGlzLl9pc0RyYXdTaXplKSB7XHJcbiAgICAgIHRoaXMuZHJhd1NpemUoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl9pc0RyYXdOdW1iZXIpIHtcclxuICAgICAgdGhpcy5kcmF3TnVtYmVyKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5faXNEcmF3QXhpcykge1xyXG4gICAgICB0aGlzLmRyYXdBeGlzKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5faXNEcmF3Rml4aXR5KSB7XHJcbiAgICAgIHRoaXMuZHJhd0ZpeGl0eSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuX2lzRHJhd0xhYmVsKSB7XHJcbiAgICAgIC8vIHRoaXMuZHJhd0xhYmVsKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5faXNEcmF3QXhpcykge1xyXG4gICAgICB0aGlzLmRyYXdBeGlzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhclNpemVUZXh0cygpIHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zaXplVGV4dHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgdGhpcy5zaXplVGV4dHNbaV0gJiYgdGhpcy5zaXplVGV4dHNbaV0uY2xlYXIoKTtcclxuICAgICAgdGhpcy5zaXplVGV4dHNbaV0gPSBudWxsO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zaXplVGV4dHMgPSBuZXcgQXJyYXk8YW55PigpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXJTdmcoKTogdm9pZCB7XHJcbiAgICAvLyBpZiAodGhpcy5zaXplVGV4dCkge1xyXG4gICAgLy8gICB0aGlzLnNpemVUZXh0LmNsZWFyKCk7XHJcbiAgICAvLyAgIHRoaXMuc2l6ZVRleHQgPSBudWxsO1xyXG4gICAgLy8gfVxyXG4gICAgdGhpcy5jbGVhclNpemVUZXh0cygpO1xyXG4gICAgaWYgKHRoaXMubnVtYmVyVGV4dCkge1xyXG4gICAgICB0aGlzLm51bWJlclRleHQuY2xlYXIoKTtcclxuICAgICAgdGhpcy5udW1iZXJUZXh0ID0gbnVsbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZpeGl0eVRleHQpIHtcclxuICAgICAgdGhpcy5maXhpdHlUZXh0LmNsZWFyKCk7XHJcbiAgICAgIHRoaXMuZml4aXR5VGV4dCA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5sYWJlbFRleHQgJiYgIXRoaXMuaXNEcmF3TGFiZWwpIHtcclxuICAgICAgdGhpcy5sYWJlbFRleHQuY2xlYXIoKTtcclxuICAgICAgdGhpcy5sYWJlbFRleHQgPSBudWxsO1xyXG4gICAgICB0aGlzLmxhYmVsUmVjdC5yZW1vdmUoKTtcclxuICAgICAgdGhpcy5sYWJlbFJlY3QgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmF4aXNTZWcpIHtcclxuICAgICAgdGhpcy5heGlzU2VnLmNsZWFyQWxsKCk7XHJcbiAgICAgIHRoaXMuYXhpc1NlZyA9IG51bGw7XHJcbiAgICB9XHJcbiAgICAvLyB0aGlzLmlzRHJhd0F4aXMgPSBmYWxzZTtcclxuXHJcbiAgICBzdXBlci5jbGVhclN2ZygpO1xyXG4gIH1cclxuXHJcbiAgZHJhd1NpemUoKSB7XHJcbiAgICBpZiAoIXRoaXMuY2hlY2tCdXNpbmVzc1N0YXRlSXNBY3RpdmUoKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgdmlld2VyID0gUHJvY2Vzcy5hY3RpdmVQcm9jZXNzLmFjdGl2ZVZpZXdlcjtcclxuICAgIGxldCBpcm8gPSB2aWV3ZXIuZmluZEluc3RhbmNlT2JqZWN0KHRoaXMpO1xyXG4gICAgaWYgKGlybyAmJiAhaXJvLnZpc2libGUpIHtcclxuICAgICAgLy8gdGhpcy5pc0RyYXdTaXplID0gZmFsc2U7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgc3RhcnRQb3MgPSBuZXcgRmxvYXQzMkFycmF5KHRoaXMuZ2V0U3RhcnRQb3NpdGlvbigpKTtcclxuICAgIGxldCB2ZWN0b3IgPSB0aGlzLmdldFZlY3RvcigpO1xyXG4gICAgbGV0IGN1cnJlbnRMZW4gPSAwO1xyXG4gICAgaWYgKHRoaXMuZ3J1cCkge1xyXG4gICAgICBpZiAoIXRoaXMuZ3J1cC5jaGVja0J1c2luZXNzU3RhdGVJc0FjdGl2ZSgpKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5ncnVwLmdydXBTZWdtZW50cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGxldCBwb3MxID0gTG9uZ2FuLlBvaW50LmFkZChcclxuICAgICAgICAgIHN0YXJ0UG9zLFxyXG4gICAgICAgICAgTG9uZ2FuLlZlY3Rvci5tdWx0aXBseSh2ZWN0b3IsIGN1cnJlbnRMZW4pXHJcbiAgICAgICAgKTtcclxuICAgICAgICBsZXQgcG9pbnQwID0gdmlld2VyLndvcmxkUG9pbnRUb1BpeGVsUG9pbnQoW25ldyBGbG9hdDY0QXJyYXkocG9zMSldKVswXTtcclxuXHJcbiAgICAgICAgbGV0IGN1ckdydXBTZWcgPSB0aGlzLmdydXAuZ3J1cFNlZ21lbnRzW2ldO1xyXG4gICAgICAgIGlmICghY3VyR3J1cFNlZy5zZWdtZW50TGVuZ3RoKSB7XHJcbiAgICAgICAgICBjdXJyZW50TGVuICs9IE51bWJlcih0aGlzLmdldFVuZGVmaW5lU2VnbWVudExlbmd0aCgpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY3VycmVudExlbiArPSBOdW1iZXIoY3VyR3J1cFNlZy5zZWdtZW50TGVuZ3RoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCByZXNQb3MgPSBMb25nYW4uUG9pbnQuYWRkKFxyXG4gICAgICAgICAgc3RhcnRQb3MsXHJcbiAgICAgICAgICBMb25nYW4uVmVjdG9yLm11bHRpcGx5KHZlY3RvciwgY3VycmVudExlbilcclxuICAgICAgICApO1xyXG4gICAgICAgIGxldCBwb2ludDEgPSB2aWV3ZXIud29ybGRQb2ludFRvUGl4ZWxQb2ludChbXHJcbiAgICAgICAgICBuZXcgRmxvYXQ2NEFycmF5KHJlc1BvcyksXHJcbiAgICAgICAgXSlbMF07XHJcblxyXG4gICAgICAgIGxldCB0ZXh0ID0gdGhpcy5nZXRTaXplKGkpO1xyXG5cclxuICAgICAgICBsZXQgc2l6ZVRleHQgPSB0aGlzLnNpemVUZXh0c1tpXTtcclxuICAgICAgICBpZiAoc2l6ZVRleHQpIHtcclxuICAgICAgICAgIHNpemVUZXh0Lm1vdmUoXHJcbiAgICAgICAgICAgIChwb2ludDBbMF0gKyBwb2ludDFbMF0pIC8gMixcclxuICAgICAgICAgICAgKHBvaW50MFsxXSArIHBvaW50MVsxXSkgLyAyXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgc2l6ZVRleHQuYXR0cihcImZvbnQtc2l6ZVwiLCBEZXNpZ25CYXNlT2JqZWN0LmZvbnRTaXplKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbGV0IGRyYXcgPSBTdmdEcmF3LmdldEluc3RhbmNlKHZpZXdlci5jb250YWluZXIuaWQpLmRyYXc7XHJcbiAgICAgICAgICBpZiAoIXRoaXMuX2dyb3VwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2dyb3VwID0gZHJhdy5ncm91cCgpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHNpemVUZXh0ID0gZHJhd1xyXG4gICAgICAgICAgICAudGV4dCh0ZXh0KVxyXG4gICAgICAgICAgICAuZm9udCh7IGZpbGw6IE9iamVjdENvbG9yLm1lbWJlckxhYmVsQ29sb3IgfSlcclxuICAgICAgICAgICAgLmF0dHIoXCJmb250LXNpemVcIiwgRGVzaWduQmFzZU9iamVjdC5mb250U2l6ZSlcclxuICAgICAgICAgICAgLm1vdmUoKHBvaW50MFswXSArIHBvaW50MVswXSkgLyAyLCAocG9pbnQwWzFdICsgcG9pbnQxWzFdKSAvIDIpO1xyXG4gICAgICAgICAgdGhpcy5fZ3JvdXAuYWRkKHNpemVUZXh0KTtcclxuICAgICAgICAgIHRoaXMuc2l6ZVRleHRzLnB1c2goc2l6ZVRleHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZHJhd051bWJlcigpIHtcclxuICAgIGlmICghdGhpcy5jaGVja0J1c2luZXNzU3RhdGVJc0FjdGl2ZSgpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCB2aWV3ZXIgPSBQcm9jZXNzLmFjdGl2ZVByb2Nlc3MuYWN0aXZlVmlld2VyO1xyXG4gICAgbGV0IGlybyA9IHZpZXdlci5maW5kSW5zdGFuY2VPYmplY3QodGhpcyk7XHJcbiAgICBpZiAoaXJvICYmICFpcm8udmlzaWJsZSkge1xyXG4gICAgICAvLyB0aGlzLmlzRHJhd051bWJlciA9IGZhbHNlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHBvaW50MCA9IHZpZXdlci53b3JsZFBvaW50VG9QaXhlbFBvaW50KFt0aGlzLnN0YXJ0UG9pbnQgYXMgYW55XSlbMF07XHJcbiAgICBsZXQgcG9pbnQxID0gdmlld2VyLndvcmxkUG9pbnRUb1BpeGVsUG9pbnQoW3RoaXMuZW5kUG9pbnQgYXMgYW55XSlbMF07XHJcblxyXG4gICAgaWYgKHRoaXMubnVtYmVyVGV4dCkge1xyXG4gICAgICB0aGlzLm51bWJlclRleHQubW92ZShcclxuICAgICAgICAocG9pbnQwWzBdICsgcG9pbnQxWzBdKSAvIDIsXHJcbiAgICAgICAgKHBvaW50MFsxXSArIHBvaW50MVsxXSkgLyAyXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMubnVtYmVyVGV4dC5hdHRyKFwiZm9udC1zaXplXCIsIERlc2lnbkJhc2VPYmplY3QuZm9udFNpemUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuZ3J1cCkge1xyXG4gICAgICAgIGlmICghdGhpcy5ncnVwLmNoZWNrQnVzaW5lc3NTdGF0ZUlzQWN0aXZlKCkpIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IGRyYXcgPSBTdmdEcmF3LmdldEluc3RhbmNlKHZpZXdlci5jb250YWluZXIuaWQpLmRyYXc7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9ncm91cCkge1xyXG4gICAgICAgICAgdGhpcy5fZ3JvdXAgPSBkcmF3Lmdyb3VwKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLm51bWJlclRleHQgPSBkcmF3XHJcbiAgICAgICAgICAudGV4dCh0aGlzLmdydXAubmFtZSlcclxuICAgICAgICAgIC5mb250KHsgZmlsbDogT2JqZWN0Q29sb3IubWVtYmVyTGFiZWxDb2xvciB9KVxyXG4gICAgICAgICAgLmF0dHIoXCJmb250LXNpemVcIiwgRGVzaWduQmFzZU9iamVjdC5mb250U2l6ZSlcclxuICAgICAgICAgIC5tb3ZlKChwb2ludDBbMF0gKyBwb2ludDFbMF0pIC8gMiwgKHBvaW50MFsxXSArIHBvaW50MVsxXSkgLyAyKTtcclxuICAgICAgICB0aGlzLl9ncm91cC5hZGQodGhpcy5udW1iZXJUZXh0KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZHJhd0F4aXMoKSB7XHJcbiAgICBpZiAoIXRoaXMuY2hlY2tCdXNpbmVzc1N0YXRlSXNBY3RpdmUoKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgdmlld2VyID0gUHJvY2Vzcy5hY3RpdmVQcm9jZXNzLmFjdGl2ZVZpZXdlcjtcclxuICAgIGxldCBpcm8gPSB2aWV3ZXIuZmluZEluc3RhbmNlT2JqZWN0KHRoaXMpO1xyXG4gICAgaWYgKGlybyAmJiAhaXJvLnZpc2libGUpIHtcclxuICAgICAgLy8gdGhpcy5pc0RyYXdBeGlzID0gZmFsc2U7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgdW5pdExlbmd0aGEgPSB2aWV3ZXIudW5pdExlbmd0aCAvIDQ7XHJcbiAgICBsZXQgc2NhbGVNYXRyaXggPSBMb25nYW4uTWF0cml4NC5zY2FsZU1hdHJpeChcclxuICAgICAgdW5pdExlbmd0aGEsXHJcbiAgICAgIHVuaXRMZW5ndGhhLFxyXG4gICAgICB1bml0TGVuZ3RoYVxyXG4gICAgKTtcclxuICAgIGxldCBjZW50ZXIgPSB0aGlzLmdldENlbnRlcigpO1xyXG4gICAgbGV0IHRyYW5zbGF0ZU1hdHJpeCA9IExvbmdhbi5NYXRyaXg0LnRyYW5zbGF0ZU1hdHJpeChcclxuICAgICAgY2VudGVyWzBdLFxyXG4gICAgICBjZW50ZXJbMV0sXHJcbiAgICAgIGNlbnRlclsyXVxyXG4gICAgKTtcclxuICAgIGlmICh0aGlzLmF4aXNTZWcpIHtcclxuICAgICAgLy8gdGhpcy5heGlzU2VnLm1vZGVsbGluZ01hdHJpeC5zZXQoc2NhbGVNYXRyaXgpO1xyXG4gICAgICAvLyB0aGlzLmF4aXNTZWcuY2xlYXJBbGwoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCB2aWV3ZXIgPSBQcm9jZXNzLmFjdGl2ZVByb2Nlc3MuYWN0aXZlVmlld2VyO1xyXG4gICAgICBsZXQgdW5pdExlbmd0aGEgPSB2aWV3ZXIudW5pdExlbmd0aCAvIDI7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwidW5pdExlbmd0aGFcIiwgdW5pdExlbmd0aGEpO1xyXG5cclxuICAgICAgbGV0IGF4aXMgPSB0aGlzLmdldExvY2FsQXhpcygpO1xyXG4gICAgICBsZXQgb3JpZ2luID0gbmV3IEZsb2F0MzJBcnJheShbMCwgMCwgMF0pO1xyXG5cclxuICAgICAgbGV0IHhQb2ludCA9IExvbmdhbi5Qb2ludC5hZGQob3JpZ2luLCBheGlzLnhBeGlzKTtcclxuICAgICAgbGV0IHlQb2ludCA9IExvbmdhbi5Qb2ludC5hZGQob3JpZ2luLCBheGlzLnlBeGlzKTtcclxuICAgICAgbGV0IHpQb2ludCA9IExvbmdhbi5Qb2ludC5hZGQob3JpZ2luLCBheGlzLnpBeGlzKTtcclxuXHJcbiAgICAgIGxldCBtYXRyaXggPSBMb25nYW4uTWF0cml4NC5pZGVudGl0eSgpO1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5zZWdtZW50LmF0dHJpYnV0ZXMuaW5kZXhPZihcclxuICAgICAgICAgIExvbmdhbi5Mb25nYW5Db3JlLk9iamVjdFR5cGUuVFlQRV9Nb2RlbGxpbmdNYXRyaXhcclxuICAgICAgICApXHJcbiAgICAgICkge1xyXG4gICAgICAgIGlmICh0aGlzLnNlZ21lbnQubW9kZWxsaW5nTWF0cml4Lm1hdHJpeCkge1xyXG4gICAgICAgICAgbWF0cml4ID0gbmV3IEZsb2F0MzJBcnJheSh0aGlzLnNlZ21lbnQubW9kZWxsaW5nTWF0cml4Lm1hdHJpeCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGxldCBheGlzUGFyZW50ID0gdmlld2VyLnNjZW5lU2VnbWVudC5zdWJzZWdtZW50KFwiYXhpc1BhclwiICsgdGhpcy5pZCk7XHJcbiAgICAgIGF4aXNQYXJlbnQubW9kZWxsaW5nTWF0cml4LnNldChtYXRyaXgpO1xyXG4gICAgICB0aGlzLmF4aXNTZWcgPSBheGlzUGFyZW50LnN1YnNlZ21lbnQoXCJheGlzXCIpO1xyXG5cclxuICAgICAgdGhpcy5heGlzU2VnLnJlbmRlcmluZ09wdGlvbnMuZGVwdGhSYW5nZSA9IFswLCAwLjFdO1xyXG5cclxuICAgICAgbGV0IHhTZWcgPSB0aGlzLmF4aXNTZWcuc3Vic2VnbWVudChcInhcIik7XHJcbiAgICAgIGxldCB5U2VnID0gdGhpcy5heGlzU2VnLnN1YnNlZ21lbnQoXCJ5XCIpO1xyXG4gICAgICBsZXQgelNlZyA9IHRoaXMuYXhpc1NlZy5zdWJzZWdtZW50KFwielwiKTtcclxuXHJcbiAgICAgIHhTZWcuY29sb3Iuc2V0TGluZShbMCwgMCwgMjU1XSk7XHJcbiAgICAgIHhTZWcuY29sb3Iuc2V0RmFjZShbMCwgMCwgMjU1XSk7XHJcbiAgICAgIHlTZWcuY29sb3Iuc2V0TGluZShbMCwgMjU1LCAwXSk7XHJcbiAgICAgIHlTZWcuY29sb3Iuc2V0RmFjZShbMCwgMjU1LCAwXSk7XHJcbiAgICAgIHpTZWcuY29sb3Iuc2V0TGluZShbMjU1LCAwLCAwXSk7XHJcbiAgICAgIHpTZWcuY29sb3Iuc2V0RmFjZShbMjU1LCAwLCAwXSk7XHJcblxyXG4gICAgICBsZXQgeCA9IHhTZWcuaW5zZXJ0TGluZShvcmlnaW4sIHhQb2ludCk7XHJcbiAgICAgIGxldCB5ID0geVNlZy5pbnNlcnRMaW5lKG9yaWdpbiwgeVBvaW50KTtcclxuICAgICAgbGV0IHogPSB6U2VnLmluc2VydExpbmUob3JpZ2luLCB6UG9pbnQpO1xyXG5cclxuICAgICAgeFNlZy5pbnNlcnRQYXJhbWV0cmljR2VvbWV0cnkoXCJzY29uXCIsIFtcclxuICAgICAgICAuLi5Mb25nYW4uUG9pbnQuYWRkKHhQb2ludCwgTG9uZ2FuLlZlY3Rvci5tdWx0aXBseShheGlzLnhBeGlzLCAwLjUpKSxcclxuICAgICAgICAuLi5Mb25nYW4uVmVjdG9yLm11bHRpcGx5KGF4aXMueEF4aXMsIC0xKSxcclxuICAgICAgICAwLjUsXHJcbiAgICAgICAgMC4yLFxyXG4gICAgICBdKTtcclxuICAgICAgeVNlZy5pbnNlcnRQYXJhbWV0cmljR2VvbWV0cnkoXCJzY29uXCIsIFtcclxuICAgICAgICAuLi5Mb25nYW4uUG9pbnQuYWRkKHlQb2ludCwgTG9uZ2FuLlZlY3Rvci5tdWx0aXBseShheGlzLnlBeGlzLCAwLjUpKSxcclxuICAgICAgICAuLi5Mb25nYW4uVmVjdG9yLm11bHRpcGx5KGF4aXMueUF4aXMsIC0xKSxcclxuICAgICAgICAwLjUsXHJcbiAgICAgICAgMC4yLFxyXG4gICAgICBdKTtcclxuICAgICAgelNlZy5pbnNlcnRQYXJhbWV0cmljR2VvbWV0cnkoXCJzY29uXCIsIFtcclxuICAgICAgICAuLi5Mb25nYW4uUG9pbnQuYWRkKHpQb2ludCwgTG9uZ2FuLlZlY3Rvci5tdWx0aXBseShheGlzLnpBeGlzLCAwLjUpKSxcclxuICAgICAgICAuLi5Mb25nYW4uVmVjdG9yLm11bHRpcGx5KGF4aXMuekF4aXMsIC0xKSxcclxuICAgICAgICAwLjUsXHJcbiAgICAgICAgMC4yLFxyXG4gICAgICBdKTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgbWF0cml4ID0gTG9uZ2FuLk1hdHJpeDQuaWRlbnRpdHkoKTtcclxuICAgIG1hdHJpeCA9IExvbmdhbi5NYXRyaXg0Lm11bHRpcGx5KG1hdHJpeCwgdHJhbnNsYXRlTWF0cml4KTtcclxuICAgIG1hdHJpeCA9IExvbmdhbi5NYXRyaXg0Lm11bHRpcGx5KG1hdHJpeCwgc2NhbGVNYXRyaXgpO1xyXG4gICAgdGhpcy5heGlzU2VnLm1vZGVsbGluZ01hdHJpeC5zZXQobWF0cml4KTtcclxuICB9XHJcblxyXG4gIGRyYXdGaXhpdHkoKSB7XHJcbiAgICBpZiAoIXRoaXMuY2hlY2tCdXNpbmVzc1N0YXRlSXNBY3RpdmUoKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgdmlld2VyID0gUHJvY2Vzcy5hY3RpdmVQcm9jZXNzLmFjdGl2ZVZpZXdlcjtcclxuICAgIGxldCBpcm8gPSB2aWV3ZXIuZmluZEluc3RhbmNlT2JqZWN0KHRoaXMpO1xyXG4gICAgaWYgKGlybyAmJiAhaXJvLnZpc2libGUpIHtcclxuICAgICAgLy8gdGhpcy5pc0RyYXdGaXhpdHkgPSBmYWxzZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBwb2ludCA9IHZpZXdlci53b3JsZFBvaW50VG9QaXhlbFBvaW50KFtcclxuICAgICAgbmV3IEZsb2F0NjRBcnJheSh0aGlzLmdldENlbnRlcigpKSxcclxuICAgIF0pWzBdO1xyXG5cclxuICAgIGlmICh0aGlzLmZpeGl0eVRleHQpIHtcclxuICAgICAgdGhpcy5maXhpdHlUZXh0Lm1vdmUocG9pbnRbMF0gKyAxLCBwb2ludFsxXSArIDEpO1xyXG4gICAgICB0aGlzLmZpeGl0eVRleHQuYXR0cihcImZvbnQtc2l6ZVwiLCBEZXNpZ25CYXNlT2JqZWN0LmZvbnRTaXplKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBkcmF3ID0gU3ZnRHJhdy5nZXRJbnN0YW5jZSh2aWV3ZXIuY29udGFpbmVyLmlkKS5kcmF3O1xyXG4gICAgICBpZiAoIXRoaXMuX2dyb3VwKSB7XHJcbiAgICAgICAgdGhpcy5fZ3JvdXAgPSBkcmF3Lmdyb3VwKCk7XHJcbiAgICAgIH1cclxuICAgICAgbGV0IGZpeGl0eSA9IHRoaXMuZ2V0Rml4aXR5KCk7XHJcbiAgICAgIGlmIChmaXhpdHkpIHtcclxuICAgICAgICB0aGlzLmZpeGl0eVRleHQgPSBkcmF3XHJcbiAgICAgICAgICAudGV4dChmaXhpdHkpXHJcbiAgICAgICAgICAuZm9udCh7IGZpbGw6IE9iamVjdENvbG9yLm1lbWJlckxhYmVsQ29sb3IgfSlcclxuICAgICAgICAgIC5hdHRyKFwiZm9udC1zaXplXCIsIERlc2lnbkJhc2VPYmplY3QuZm9udFNpemUpXHJcbiAgICAgICAgICAubW92ZShwb2ludFswXSArIDEsIHBvaW50WzFdICsgMSk7XHJcbiAgICAgICAgdGhpcy5fZ3JvdXAuYWRkKHRoaXMuZml4aXR5VGV4dCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRyYXdMYWJlbChwb3NpdGlvbjogW251bWJlciwgbnVtYmVyXSkge1xyXG4gICAgaWYgKCF0aGlzLmNoZWNrQnVzaW5lc3NTdGF0ZUlzQWN0aXZlKCkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IHZpZXdlciA9IFByb2Nlc3MuYWN0aXZlUHJvY2Vzcy5hY3RpdmVWaWV3ZXI7XHJcbiAgICBsZXQgaXJvID0gdmlld2VyLmZpbmRJbnN0YW5jZU9iamVjdCh0aGlzKTtcclxuICAgIGlmIChpcm8gJiYgIWlyby52aXNpYmxlKSB7XHJcbiAgICAgIHRoaXMuaXNEcmF3TGFiZWwgPSBmYWxzZTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCB4ID0gcG9zaXRpb25bMF07XHJcbiAgICBsZXQgeSA9IHBvc2l0aW9uWzFdO1xyXG4gICAgaWYgKHRoaXMubGFiZWxSZWN0ICYmIHRoaXMubGFiZWxUZXh0KSB7XHJcbiAgICAgIHRoaXMubGFiZWxSZWN0Lm1vdmUoeCwgeSAtIDIwKTtcclxuICAgICAgdGhpcy5sYWJlbFRleHQubW92ZSh4ICsgNSwgeSAtIDE4KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBkcmF3ID0gU3ZnRHJhdy5nZXRJbnN0YW5jZSh2aWV3ZXIuY29udGFpbmVyLmlkKS5kcmF3O1xyXG5cclxuICAgICAgaWYgKCF0aGlzLl9ncm91cCkge1xyXG4gICAgICAgIHRoaXMuX2dyb3VwID0gZHJhdy5ncm91cCgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBsZXQgbmFtZSA9IHRoaXMubmFtZTtcclxuICAgICAgbGV0IGdycCA9IHRoaXMuZ3J1cCA/IHRoaXMuZ3J1cC5uYW1lIDogXCJcIjtcclxuICAgICAgbGV0IGZsb29kaW5nID0gdGhpcy5mbG9vZENvbmRpdGlvbiA/IHRoaXMuZmxvb2RDb25kaXRpb24gOiBcIk5cIjtcclxuICAgICAgbGV0IGxlbmd0aCA9IE51bWJlcih0aGlzLmdldE1lbWJlckxlbmd0aCgpLnRvRml4ZWQoMykpO1xyXG4gICAgICBsZXQga3kgPSBcIlwiO1xyXG4gICAgICBsZXQga3ogPSBcIlwiO1xyXG5cclxuICAgICAgaWYgKHRoaXMua09yTE9wdGlvbiAmJiB0aGlzLmtPckxPcHRpb24gPT09IFwiTFwiKSB7XHJcbiAgICAgICAga3kgPSB0aGlzLmtGYWN0b3JfS1lcclxuICAgICAgICAgID8gKE51bWJlcih0aGlzLmtGYWN0b3JfS1kpIC8gbGVuZ3RoKS50b0ZpeGVkKDEpXHJcbiAgICAgICAgICA6IFwiMS4wXCI7XHJcbiAgICAgICAga3ogPSB0aGlzLmtGYWN0b3JfS1pcclxuICAgICAgICAgID8gKE51bWJlcih0aGlzLmtGYWN0b3JfS1opIC8gbGVuZ3RoKS50b0ZpeGVkKDEpXHJcbiAgICAgICAgICA6IFwiMS4wXCI7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAga3kgPSB0aGlzLmtGYWN0b3JfS1kgPyBOdW1iZXIodGhpcy5rRmFjdG9yX0tZKS50b0ZpeGVkKDEpIDogXCIxLjBcIjtcclxuICAgICAgICBreiA9IHRoaXMua0ZhY3Rvcl9LWiA/IE51bWJlcih0aGlzLmtGYWN0b3JfS1opLnRvRml4ZWQoMSkgOiBcIjEuMFwiO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCByZWxlYXNlQSA9IHRoaXMucmVsZWFzZV9BO1xyXG4gICAgICBsZXQgcmVsZWFzZUIgPSB0aGlzLnJlbGVhc2VfQjtcclxuXHJcbiAgICAgIGxldCB0ZXh0V2lkdGggPSBNYXRoLm1heChuYW1lLmxlbmd0aCwgZ3JwLmxlbmd0aCwgZmxvb2RpbmcubGVuZ3RoKSAqIDE3O1xyXG4gICAgICB0ZXh0V2lkdGggPSB0ZXh0V2lkdGggPiAxMDAgPyB0ZXh0V2lkdGggOiAxMDA7XHJcblxyXG4gICAgICBsZXQgcmVjdCA9IGRyYXdcclxuICAgICAgICAucmVjdCh0ZXh0V2lkdGgsIDEzMClcclxuICAgICAgICAucmFkaXVzKDIpXHJcbiAgICAgICAgLmZpbGwoXCIjRkZGRkUxXCIpXHJcbiAgICAgICAgLy8gLnN0cm9rZSh7IGNvbG9yOiBcIiNmZmZcIiwgd2lkdGg6IDEgfSlcclxuICAgICAgICAubW92ZSh4LCB5IC0gMjApXHJcbiAgICAgICAgLmF0dHIoXCJzdHlsZVwiLCBgcG9pbnRlci1ldmVudHM6IG5vbmV9YCk7XHJcblxyXG4gICAgICBpZiAodGhpcy5rT3JMT3B0aW9uICYmIHRoaXMua09yTE9wdGlvbiA9PT0gXCJMXCIpIHtcclxuICAgICAgICBsZXQgdGV4dCA9IGRyYXdcclxuICAgICAgICAgIC50ZXh0KChhZGQpID0+IHtcclxuICAgICAgICAgICAgYWRkLnRzcGFuKGBNZW06JHtuYW1lfWApLm5ld0xpbmUoKTtcclxuICAgICAgICAgICAgYWRkLnRzcGFuKGBHcnA6JHtncnB9YCkubmV3TGluZSgpO1xyXG4gICAgICAgICAgICBhZGQudHNwYW4oYEZsb29kaW5nOiR7Zmxvb2Rpbmd9YCkubmV3TGluZSgpO1xyXG4gICAgICAgICAgICBhZGQudHNwYW4oYExlbjoke2xlbmd0aCArIFwibVwifWApLm5ld0xpbmUoKTtcclxuICAgICAgICAgICAgYWRkLnRzcGFuKGBBUmVsZWFzZToke3JlbGVhc2VBfWApLm5ld0xpbmUoKTtcclxuICAgICAgICAgICAgYWRkLnRzcGFuKGBCUmVsZWFzZToke3JlbGVhc2VCfWApLm5ld0xpbmUoKTtcclxuICAgICAgICAgICAgYWRkLnRzcGFuKGBMWToke2t5fWApLm5ld0xpbmUoKTtcclxuICAgICAgICAgICAgYWRkLnRzcGFuKGBMWjoke2t6fWApLm5ld0xpbmUoKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAuZm9udCh7IGZpbGw6IFwiIzAwMFwiIH0pXHJcbiAgICAgICAgICAuYXR0cihcImZvbnQtc2l6ZVwiLCAxMilcclxuICAgICAgICAgIC5tb3ZlKHggKyA1LCB5IC0gMTgpO1xyXG4gICAgICAgIHRoaXMuX2dyb3VwLmFkZChyZWN0KS5hZGQodGV4dCkuZnJvbnQoKTtcclxuICAgICAgICB0aGlzLmxhYmVsUmVjdCA9IHJlY3Q7XHJcbiAgICAgICAgdGhpcy5sYWJlbFRleHQgPSB0ZXh0O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxldCB0ZXh0ID0gZHJhd1xyXG4gICAgICAgICAgLnRleHQoKGFkZCkgPT4ge1xyXG4gICAgICAgICAgICBhZGQudHNwYW4oYE1lbToke25hbWV9YCkubmV3TGluZSgpO1xyXG4gICAgICAgICAgICBhZGQudHNwYW4oYEdycDoke2dycH1gKS5uZXdMaW5lKCk7XHJcbiAgICAgICAgICAgIGFkZC50c3BhbihgRmxvb2Rpbmc6JHtmbG9vZGluZ31gKS5uZXdMaW5lKCk7XHJcbiAgICAgICAgICAgIGFkZC50c3BhbihgTGVuOiR7bGVuZ3RoICsgXCJtXCJ9YCkubmV3TGluZSgpO1xyXG4gICAgICAgICAgICBhZGQudHNwYW4oYEFSZWxlYXNlOiR7cmVsZWFzZUF9YCkubmV3TGluZSgpO1xyXG4gICAgICAgICAgICBhZGQudHNwYW4oYEJSZWxlYXNlOiR7cmVsZWFzZUJ9YCkubmV3TGluZSgpO1xyXG4gICAgICAgICAgICBhZGQudHNwYW4oYEtZOiR7a3l9YCkubmV3TGluZSgpO1xyXG4gICAgICAgICAgICBhZGQudHNwYW4oYEtaOiR7a3p9YCkubmV3TGluZSgpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5mb250KHsgZmlsbDogXCIjMDAwXCIgfSlcclxuICAgICAgICAgIC5hdHRyKFwiZm9udC1zaXplXCIsIDEyKVxyXG4gICAgICAgICAgLm1vdmUoeCArIDUsIHkgLSAxOCk7XHJcbiAgICAgICAgdGhpcy5fZ3JvdXAuYWRkKHJlY3QpLmFkZCh0ZXh0KS5mcm9udCgpO1xyXG4gICAgICAgIHRoaXMubGFiZWxSZWN0ID0gcmVjdDtcclxuICAgICAgICB0aGlzLmxhYmVsVGV4dCA9IHRleHQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiuoeeul+adhuS7tuWxgOmDqOWdkOagh+ezuy5cclxuICAgKiBAcmV0dXJuc1xyXG4gICAqL1xyXG4gIGdldExvY2FsQXhpcygpIHtcclxuICAgIGxldCB4QXhpcyA9IHRoaXMuZ2V0VmVjdG9yKCk7XHJcbiAgICBMb25nYW4uVmVjdG9yLm5vcm1hbGl6ZSh4QXhpcyk7XHJcblxyXG4gICAgbGV0IHlBeGlzID0gbmV3IEZsb2F0MzJBcnJheShbMCwgMSwgMF0pO1xyXG4gICAgbGV0IHpBeGlzID0gbmV3IEZsb2F0MzJBcnJheShbMCwgMCwgMV0pO1xyXG4gICAgbGV0IHdvcmxkWkF4aXMgPSBuZXcgRmxvYXQzMkFycmF5KFswLCAwLCAxXSk7XHJcbiAgICBsZXQgd29ybGRNWkF4aXMgPSBuZXcgRmxvYXQzMkFycmF5KFswLCAwLCAtMV0pO1xyXG4gICAgaWYgKExvbmdhbi5HZW9tZXRyeU9wZXJhdG9ycy5zYW1lVmVjdG9yKHhBeGlzLCB3b3JsZFpBeGlzKSkge1xyXG4gICAgICAvLyDnq5bnm7TlkJHkuIrmnYbku7ZcclxuICAgICAgekF4aXMgPSBuZXcgRmxvYXQzMkFycmF5KFswLCAxLCAwXSk7XHJcbiAgICAgIHlBeGlzID0gTG9uZ2FuLlZlY3Rvci5jcm9zcyh6QXhpcywgeEF4aXMpO1xyXG4gICAgICBMb25nYW4uVmVjdG9yLm5vcm1hbGl6ZSh5QXhpcyk7XHJcbiAgICB9IGVsc2UgaWYgKExvbmdhbi5HZW9tZXRyeU9wZXJhdG9ycy5zYW1lVmVjdG9yKHhBeGlzLCB3b3JsZE1aQXhpcykpIHtcclxuICAgICAgLy8g56uW55u05ZCR5LiL5p2G5Lu2XHJcbiAgICAgIHpBeGlzID0gbmV3IEZsb2F0MzJBcnJheShbMCwgMSwgMF0pO1xyXG4gICAgICB5QXhpcyA9IExvbmdhbi5WZWN0b3IuY3Jvc3MoekF4aXMsIHhBeGlzKTtcclxuICAgICAgTG9uZ2FuLlZlY3Rvci5ub3JtYWxpemUoeUF4aXMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8g6Z2e56uW55u05p2G5Lu2LlxyXG4gICAgICB5QXhpcyA9IExvbmdhbi5WZWN0b3IuY3Jvc3Mod29ybGRaQXhpcywgeEF4aXMpO1xyXG4gICAgICBMb25nYW4uVmVjdG9yLm5vcm1hbGl6ZSh5QXhpcyk7XHJcbiAgICAgIHpBeGlzID0gTG9uZ2FuLlZlY3Rvci5jcm9zcyh4QXhpcywgeUF4aXMpO1xyXG4gICAgICBMb25nYW4uVmVjdG9yLm5vcm1hbGl6ZSh6QXhpcyk7XHJcbiAgICAgIGlmIChMb25nYW4uVmVjdG9yLmFuZ2xlKHpBeGlzLCB3b3JsZFpBeGlzKSA+IE1hdGguUEkgLyAyKSB7XHJcbiAgICAgICAgekF4aXMgPSBMb25nYW4uVmVjdG9yLm11bHRpcGx5KHpBeGlzLCAtMSk7XHJcbiAgICAgIH1cclxuICAgICAgTG9uZ2FuLlZlY3Rvci5ub3JtYWxpemUoekF4aXMpO1xyXG4gICAgICB5QXhpcyA9IExvbmdhbi5WZWN0b3IuY3Jvc3MoekF4aXMsIHhBeGlzKTtcclxuICAgICAgTG9uZ2FuLlZlY3Rvci5ub3JtYWxpemUoeUF4aXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBvcmlnaW4gPSBuZXcgRmxvYXQzMkFycmF5KHRoaXMuZ2V0U3RhcnRQb3NpdGlvbigpKTtcclxuICAgIGxldCBjaG9yZEFuZ2xlID0gKHRoaXMuY2hvcmRBbmdsZSAvIDE4MCkgKiBNYXRoLlBJO1xyXG4gICAgbGV0IG1heHRyaXggPSBMb25nYW4uTWF0cml4NC5yb3RhdGVCeUF4aXMob3JpZ2luLCB4QXhpcywgY2hvcmRBbmdsZSk7XHJcbiAgICBsZXQgbmV3WUF4aXMgPSBMb25nYW4uTWF0cml4NC5tdWx0aXBseVZlY3RvcihtYXh0cml4LCB5QXhpcyk7XHJcbiAgICBMb25nYW4uVmVjdG9yLm5vcm1hbGl6ZShuZXdZQXhpcyk7XHJcbiAgICBsZXQgbmV3WkF4aXMgPSBMb25nYW4uTWF0cml4NC5tdWx0aXBseVZlY3RvcihtYXh0cml4LCB6QXhpcyk7XHJcbiAgICBMb25nYW4uVmVjdG9yLm5vcm1hbGl6ZShuZXdaQXhpcyk7XHJcblxyXG4gICAgeUF4aXMgPSBuZXdZQXhpcztcclxuICAgIHpBeGlzID0gbmV3WkF4aXM7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgeEF4aXMsXHJcbiAgICAgIHlBeGlzLFxyXG4gICAgICB6QXhpcyxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXRDZW50ZXIoKSB7XHJcbiAgICBsZXQgc3RhcnRQb3MgPSB0aGlzLmdldFN0YXJ0UG9zaXRpb24oKTtcclxuICAgIGxldCBlbmRQb3MgPSB0aGlzLmdldEVuZFBvc2l0aW9uKCk7XHJcblxyXG4gICAgcmV0dXJuIG5ldyBGbG9hdDMyQXJyYXkoW1xyXG4gICAgICAoc3RhcnRQb3NbMF0gKyBlbmRQb3NbMF0pIC8gMixcclxuICAgICAgKHN0YXJ0UG9zWzFdICsgZW5kUG9zWzFdKSAvIDIsXHJcbiAgICAgIChzdGFydFBvc1syXSArIGVuZFBvc1syXSkgLyAyLFxyXG4gICAgXSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDorqHnrpfmnYbku7bkuKTkuKrnqbrpl7TngrnlvaLmiJDnmoTlsYDpg6jlnZDmoIfns7vvvIznlKjkuo7orqHnrpflsYDpg6jlgY/lv4MuKOS4jeW4puadhuS7tuWBj+W/gylcclxuICAgKi9cclxuICBnZXRTdGFydEVuZExvY2FsQXhpcygpIHtcclxuICAgIGxldCB4QXhpcyA9IExvbmdhbi5Qb2ludC5zdWJ0cmFjdChcclxuICAgICAgbmV3IEZsb2F0MzJBcnJheSh0aGlzLmVuZC5wb3NpdGlvbiksXHJcbiAgICAgIG5ldyBGbG9hdDMyQXJyYXkodGhpcy5zdGFydC5wb3NpdGlvbilcclxuICAgICk7XHJcbiAgICBMb25nYW4uVmVjdG9yLm5vcm1hbGl6ZSh4QXhpcyk7XHJcblxyXG4gICAgbGV0IHlBeGlzID0gbmV3IEZsb2F0MzJBcnJheShbMCwgMSwgMF0pO1xyXG4gICAgbGV0IHpBeGlzID0gbmV3IEZsb2F0MzJBcnJheShbMCwgMCwgMV0pO1xyXG4gICAgbGV0IHdvcmxkWkF4aXMgPSBuZXcgRmxvYXQzMkFycmF5KFswLCAwLCAxXSk7XHJcbiAgICBsZXQgd29ybGRNWkF4aXMgPSBuZXcgRmxvYXQzMkFycmF5KFswLCAwLCAtMV0pO1xyXG4gICAgaWYgKExvbmdhbi5HZW9tZXRyeU9wZXJhdG9ycy5zYW1lVmVjdG9yKHhBeGlzLCB3b3JsZFpBeGlzKSkge1xyXG4gICAgICAvLyDnq5bnm7TmnYbku7ZcclxuICAgICAgekF4aXMgPSBuZXcgRmxvYXQzMkFycmF5KFswLCAxLCAwXSk7XHJcbiAgICAgIHlBeGlzID0gTG9uZ2FuLlZlY3Rvci5jcm9zcyh6QXhpcywgeEF4aXMpO1xyXG4gICAgICBMb25nYW4uVmVjdG9yLm5vcm1hbGl6ZSh5QXhpcyk7XHJcbiAgICB9IGVsc2UgaWYgKExvbmdhbi5HZW9tZXRyeU9wZXJhdG9ycy5zYW1lVmVjdG9yKHhBeGlzLCB3b3JsZE1aQXhpcykpIHtcclxuICAgICAgLy8g56uW55u05p2G5Lu2XHJcbiAgICAgIHpBeGlzID0gbmV3IEZsb2F0MzJBcnJheShbMCwgMSwgMF0pO1xyXG4gICAgICB5QXhpcyA9IExvbmdhbi5WZWN0b3IuY3Jvc3MoekF4aXMsIHhBeGlzKTtcclxuICAgICAgTG9uZ2FuLlZlY3Rvci5ub3JtYWxpemUoeUF4aXMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8g6Z2e56uW55u05p2G5Lu2LlxyXG4gICAgICB5QXhpcyA9IExvbmdhbi5WZWN0b3IuY3Jvc3Mod29ybGRaQXhpcywgeEF4aXMpO1xyXG4gICAgICBMb25nYW4uVmVjdG9yLm5vcm1hbGl6ZSh5QXhpcyk7XHJcbiAgICAgIHpBeGlzID0gTG9uZ2FuLlZlY3Rvci5jcm9zcyh4QXhpcywgeUF4aXMpO1xyXG4gICAgICBpZiAoTG9uZ2FuLlZlY3Rvci5hbmdsZSh6QXhpcywgd29ybGRaQXhpcykgPiBNYXRoLlBJIC8gMikge1xyXG4gICAgICAgIHpBeGlzID0gTG9uZ2FuLlZlY3Rvci5tdWx0aXBseSh6QXhpcywgLTEpO1xyXG4gICAgICB9XHJcbiAgICAgIExvbmdhbi5WZWN0b3Iubm9ybWFsaXplKHpBeGlzKTtcclxuICAgICAgeUF4aXMgPSBMb25nYW4uVmVjdG9yLmNyb3NzKHpBeGlzLCB4QXhpcyk7XHJcbiAgICAgIExvbmdhbi5WZWN0b3Iubm9ybWFsaXplKHlBeGlzKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB4QXhpcyxcclxuICAgICAgeUF4aXMsXHJcbiAgICAgIHpBeGlzLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8vIOi/lOWbnuadhuerr+mHiuaUvueKtuaAgVxyXG4gIGdldEZpeGl0eSgpIHtcclxuICAgIGxldCBzdGFydEZpeGl0eSA9IHRoaXMucmVsZWFzZV9BO1xyXG4gICAgbGV0IGVuZEZpeGl0eSA9IHRoaXMucmVsZWFzZV9CO1xyXG4gICAgcmV0dXJuIHN0YXJ0Rml4aXR5ICYmIGVuZEZpeGl0eSA/IHN0YXJ0Rml4aXR5ICsgXCItXCIgKyBlbmRGaXhpdHkgOiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcGFyYW0gY29sb3IgcuOAgWfjgIFiKDI1NSwyNTUsMjU1KVxyXG4gICAqIEBwYXJhbSB0cmFuc3BhcmVuY3kgMC0xXHJcbiAgICovXHJcbiAgc2V0Q29sb3IoY29sb3I6IG51bWJlcltdLCB0cmFuc3BhcmVuY3k6IG51bWJlcikge1xyXG4gICAgdGhpcy5zZWdtZW50LmNvbG9yLnNldEZhY2UoY29sb3IuY29uY2F0KFt0cmFuc3BhcmVuY3ldKSk7XHJcbiAgICB0aGlzLnNlZ21lbnQuY29sb3Iuc2V0TGluZShjb2xvci5jb25jYXQoW3RyYW5zcGFyZW5jeV0pKTtcclxuICB9XHJcblxyXG4gIHN0YXJ0T2Zmc2V0Q29tcGFyZShvZmZzZXQ6IG51bWJlcltdKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgaXNTYW1lID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLnN0YXJ0T2Zmc2V0ICYmIG9mZnNldCkge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc3RhcnRPZmZzZXQubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAoTnVtYmVyKHRoaXMuc3RhcnRPZmZzZXRbaV0pICE9PSBOdW1iZXIob2Zmc2V0W2ldKSkge1xyXG4gICAgICAgICAgaXNTYW1lID0gZmFsc2U7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoIXRoaXMuc3RhcnRPZmZzZXQgJiYgIW9mZnNldCkge1xyXG4gICAgICBpc1NhbWUgPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaXNTYW1lID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGlzU2FtZTtcclxuICB9XHJcblxyXG4gIGVuZE9mZnNldENvbXBhcmUob2Zmc2V0OiBudW1iZXJbXSk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IGlzU2FtZSA9IHRydWU7XHJcbiAgICBpZiAob2Zmc2V0ICYmIHRoaXMuZW5kT2Zmc2V0KSB7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5lbmRPZmZzZXQubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAoTnVtYmVyKHRoaXMuZW5kT2Zmc2V0W2ldKSAhPT0gTnVtYmVyKG9mZnNldFtpXSkpIHtcclxuICAgICAgICAgIGlzU2FtZSA9IGZhbHNlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmVuZE9mZnNldCAmJiAhb2Zmc2V0KSB7XHJcbiAgICAgIGlzU2FtZSA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpc1NhbWUgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaXNTYW1lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGRpc3Bvc2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNsZWFyU3ZnKCk7XHJcbiAgICBzdXBlci5kaXNwb3NlKCk7XHJcbiAgfVxyXG5cclxuICB0ZW1wRGVsZXRlKHZpZXdlcjogVmlld2VyKSB7XHJcbiAgICAvLyDku47nu4TkuK3liKDpmaQuXHJcbiAgICBsZXQgY29tcG9uZW50R3JvdXBzID0gdmlld2VyLnByb2Nlc3MuZmluZFJlbmRlck9iamVjdEJ5TmFtZShcclxuICAgICAgXCLmnoTku7bliIbnu4TliIboibJcIlxyXG4gICAgKSBhcyBEZXNpZ25CYXNlT2JqZWN0O1xyXG4gICAgaWYgKGNvbXBvbmVudEdyb3Vwcykge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbXBvbmVudEdyb3Vwcy5jaGlsZE9iamVjdHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgb2JqID0gY29tcG9uZW50R3JvdXBzLmNoaWxkT2JqZWN0c1tcclxuICAgICAgICAgIGlcclxuICAgICAgICBdIGFzIENvbG9yRGl2Q29tcG9uZW50R3JvdXBPYmplY3Q7XHJcblxyXG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgb2JqLnJlZmVyY2VuTWVtYmVySWRzLmNvdW50KCk7IGorKykge1xyXG4gICAgICAgICAgaWYgKG9iai5yZWZlcmNlbk1lbWJlcklkcy5pdGVtc1tqXSA9PT0gdGhpcy5pZCkge1xyXG4gICAgICAgICAgICBvYmoucmVmZXJjZW5NZW1iZXJJZHMucmVtb3ZlKHRoaXMuaWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIOWIoOmZpOagh+etvi5cclxuICAgIHRoaXMuaXNEcmF3QXhpcyA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc0RyYXdMYWJlbCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc0RyYXdGaXhpdHkgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNEcmF3TGFiZWwgPSBmYWxzZTtcclxuICAgIHRoaXMuaXNEcmF3TnVtYmVyID0gZmFsc2U7XHJcblxyXG4gICAgc3VwZXIudGVtcERlbGV0ZSh2aWV3ZXIpO1xyXG4gIH1cclxuXHJcbiAgZ2V0R3J1cFNlZ21lbnRMZW5ndGgoc2VnbWVudEluZGV4OiBudW1iZXIpIHtcclxuICAgIGxldCByZXN1bHQgPSAtMTtcclxuICAgIGlmICh0aGlzLmdydXApIHtcclxuICAgICAgbGV0IHNlZ21lbnRMZW4gPSB0aGlzLmdydXAuZ3J1cFNlZ21lbnRzW3NlZ21lbnRJbmRleF0uc2VnbWVudExlbmd0aDtcclxuICAgICAgaWYgKCFzZWdtZW50TGVuKSB7XHJcbiAgICAgICAgc2VnbWVudExlbiA9IHRoaXMuZ2V0VW5kZWZpbmVTZWdtZW50TGVuZ3RoKCk7XHJcbiAgICAgIH1cclxuICAgICAgcmVzdWx0ID0gc2VnbWVudExlbjtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgZ2V0R3J1cFNlZ21lbnRCeUxlbmd0aChkaXN0YW5jZTogbnVtYmVyKSB7XHJcbiAgICBsZXQgaW5kZXggPSAtMTtcclxuICAgIGxldCBsZW5TdW0gPSAwO1xyXG4gICAgaWYgKHRoaXMuZ3J1cCkge1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZ3J1cC5ncnVwU2VnbWVudHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgc2VnbWVudExlbiA9IHRoaXMuZ3J1cC5ncnVwU2VnbWVudHNbaV0uc2VnbWVudExlbmd0aDtcclxuICAgICAgICBpZiAoIXNlZ21lbnRMZW4pIHtcclxuICAgICAgICAgIHNlZ21lbnRMZW4gPSB0aGlzLmdldFVuZGVmaW5lU2VnbWVudExlbmd0aCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZW5TdW0gKz0gc2VnbWVudExlbjtcclxuICAgICAgICBpZiAobGVuU3VtID49IGRpc3RhbmNlKSB7XHJcbiAgICAgICAgICBpbmRleCA9IGk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaW5kZXg7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICog5p2G5Lu26ZmE5Yqg5bGe5oCn57uEXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTWVtYmVyQWRkaXRpb25hbFByb3BlcnR5IHtcclxuICAvLyDliJvlu7rmnYbku7bml7bmmK/lkKbkvb/nlKjor6XlsZ7mgKcuXHJcbiAgdXNlRGVmYXVsdFByb3BlcnR5ID0gZmFsc2U7XHJcbiAgLy8g5bGA6YOo5Z2Q5qCH57O7WuaWueWQkeWPguiAg+eCuVxyXG4gIGxvY2FsWkF4aXM6IHN0cmluZyA9IG51bGw7XHJcbiAgLy8g5oiq6Z2i5bym6KeS44CBXHJcbiAgY2hvcmRBbmdsZTogbnVtYmVyID0gbnVsbDtcclxuICAvLyAvLyDlp4vnq6/oh6rnlLHluqbph4rmlL5cclxuICByZWxlYXNlX0E6IHN0cmluZyA9IFwiXCI7XHJcbiAgLy8gLy8g57uI56uv6Ieq55Sx5bqm6YeK5pS+XHJcbiAgcmVsZWFzZV9COiBzdHJpbmcgPSBcIlwiO1xyXG4gIC8vIOW5s+Wdh+W8puadhuWkluW+hFxyXG4gIGF2Z0pvaW50VGhpY2tuZXNzOiBzdHJpbmcgPSBudWxsO1xyXG4gIC8vIOaYr+WQpuWFheawtFxyXG4gIGZsb29kQ29uZGl0aW9uOiBzdHJpbmcgPSBudWxsO1xyXG4gIC8vIOWxiOabsumVv+W6pumAiemhuVxyXG4gIGJ1Y2tpbmdPcHRpb246IHN0cmluZyA9IFwiXCI7XHJcbiAgLy8g5bGI5puyS1kvTFlcclxuICBrRmFjdG9yX0tZOiBzdHJpbmcgPSBudWxsO1xyXG4gIC8vIOWxiOabsktaL0xaXHJcbiAga0ZhY3Rvcl9LWjogc3RyaW5nID0gbnVsbDtcclxuICAvLyDlnIbnrqHliarliIfpnaLnp6/kv67mraPns7vmlbBcclxuICBzaGVhck1vZGlmaWVyOiBzdHJpbmcgPSBudWxsO1xyXG4gIC8vIOadkOaWmeWvhuW6plxyXG4gIGRlbnNpdHk6IHN0cmluZyA9IG51bGw7XHJcbiAgLy8g5Y2V5YWD5YiS5YiG5pWw6YeP5LiL6ZmQKGludClcclxuICB1Y1NlZ21lbnRzOiBzdHJpbmcgPSBudWxsO1xyXG4gIC8vIOmZhOWKoOi0qOmHj+acieaViOWkluW+hFxyXG4gIGVmZmVjdGl2ZURpYW1ldGVyOiBzdHJpbmcgPSBudWxsO1xyXG4gIC8vIOWni+err+WBj+W/gyhjbSlcclxuICBzdGFydE9mZnNldDogbnVtYmVyW10gPSBudWxsO1xyXG4gIC8vIOe7iOerr+WBj+W/gyhjbSlcclxuICBlbmRPZmZzZXQ6IG51bWJlcltdID0gbnVsbDtcclxuICAvLyDlgY/lv4PpgInpoblcclxuICBvZmZzZXRPcHRpb246IHN0cmluZyA9IG51bGw7XHJcblxyXG4gIG92ZXJyaWRlTG9jYWxaQXhpcyA9IGZhbHNlO1xyXG4gIG92ZXJyaWRlQ2hyb2RBbmdsZSA9IGZhbHNlO1xyXG4gIG92ZXJyaWRlUmVsZWFzZV9BID0gZmFsc2U7XHJcbiAgb3ZlcnJpZGVSZWxlYXNlX0IgPSBmYWxzZTtcclxuICBvdmVycmlkZUF2Z0pvaW50VGhpY2tuZXNzID0gZmFsc2U7XHJcbiAgb3ZlcnJpZGVGbG9vZENvbmRpdGlvbiA9IGZhbHNlO1xyXG4gIG92ZXJyaWRlQnVja2luZ09wdGlvbiA9IGZhbHNlO1xyXG4gIG92ZXJyaWRlS0ZhY3Rvcl9LWSA9IGZhbHNlO1xyXG4gIG92ZXJyaWRlS0ZhY3Rvcl9LWiA9IGZhbHNlO1xyXG4gIG92ZXJyaWRlU2hlYXJNb2RpZmllciA9IGZhbHNlO1xyXG4gIG92ZXJyaWRlRGVuc2l0eSA9IGZhbHNlO1xyXG4gIG92ZXJyaWRlVWNTZWdtZW50cyA9IGZhbHNlO1xyXG4gIG92ZXJyaWRlRWZmZWN0aXZlRGlhbWV0ZXIgPSBmYWxzZTtcclxuICBvdmVycmlkZU9mZnNldE9wdGlvbiA9IGZhbHNlO1xyXG4gIG92ZXJyaWRlU3RhcnRPZmZzZXQgPSBmYWxzZTtcclxuICBvdmVycmlkZUVuZE9mZnNldCA9IGZhbHNlO1xyXG5cclxuICAvLyBfaW5zdGFuY2U6IE1lbWJlckFkZGl0aW9uYWxQcm9wZXJ0eTtcclxuICBwdWJsaWMgc3RhdGljIGdldEluc3RhbmNlKCk6IE1lbWJlckFkZGl0aW9uYWxQcm9wZXJ0eSB7XHJcbiAgICBpZiAodGhpcy5faW5zdGFuY2UgPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLl9pbnN0YW5jZSA9IG5ldyBNZW1iZXJBZGRpdGlvbmFsUHJvcGVydHkoKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgX2luc3RhbmNlOiBNZW1iZXJBZGRpdGlvbmFsUHJvcGVydHk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge31cclxufVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUF3QkE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFBQTtBQTZYQTtBQUFBO0FBNVhBO0FBRUE7QUFDQTtBQUVBO0FBS0E7QUFHQTtBQUNBO0FBTUE7QUFDQTtBQUNBO0FBR0E7QUFFQTtBQUtBO0FBSUE7QUFJQTtBQUlBO0FBS0E7QUFJQTtBQUlBO0FBSUE7QUFLQTtBQUlBO0FBS0E7QUFHQTtBQVFBO0FBS0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBS0E7QUFPQTtBQUlBO0FBQ0E7QUFHQTtBQUVBO0FBQ0E7QUF3UUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFFQTtBQTdQQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUdBO0FBQ0E7Ozs7QUFFQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTs7OztBQUVBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBOzs7O0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7OztBQUVBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7Ozs7QUFFQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7Ozs7QUFFQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOzs7O0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTs7OztBQUVBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBR0E7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7Ozs7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFJQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUlBOztBQUVBO0FBQ0E7O0FBRUE7QUFNQTs7QUFFQTtBQU1BOzs7QUFHQTtBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUdBO0FBQ0E7QUFnQkE7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFHQTs7QUFFQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7O0FBS0E7O0FBRUE7Ozs7QUFFQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTs7QUFJQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7O0FBS0E7O0FBRUE7Ozs7QUFFQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUdBOztBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTs7QUFLQTs7QUFFQTs7OztBQUVBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOzs7QUFHQTs7OztBQUVBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBOzs7O0FBRUE7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7Ozs7QUFFQTtBQUNBO0FBRUE7QUFDQTs7QUFHQTtBQUNBOztBQUdBO0FBQ0E7O0FBR0E7QUFDQTs7QUFHQTtBQUNBOztBQUdBO0FBQ0E7O0FBR0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFHQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFJQTtBQUNBOztBQUdBO0FBQ0E7O0FBR0E7QUFDQTs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUdBO0FBQ0E7O0FBR0E7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFHQTtBQUVBO0FBRUE7QUFFQTtBQUVBO0FBRUE7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBSUE7QUFDQTs7QUFHQTtBQUNBOztBQUdBO0FBQ0E7O0FBR0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFHQTtBQUNBOztBQUdBO0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBR0E7QUFFQTtBQUVBO0FBRUE7QUFFQTtBQUVBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBR0E7QUFHQTtBQUdBO0FBR0E7QUFHQTtBQUlBO0FBR0E7QUFHQTtBQUdBO0FBR0E7QUFHQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7O0FBRUE7QUFDQTtBQUlBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7Ozs7QUFLQTtBQUNBO0FBRUE7QUFDQTtBQUNBOztBQUdBO0FBQ0E7QUFDQTs7O0FBSUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOzs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7O0FBSUE7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFHQTtBQUNBO0FBQ0E7QUFFQTtBQUtBOztBQUVBOztBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QUFDQTs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7QUFLQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7O0FBQ0E7QUFJQTtBQUNBO0FBQ0E7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBTUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7O0FBR0E7QUFDQTs7QUFFQTtBQUdBO0FBRUE7QUFHQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFNQTtBQUNBO0FBQ0E7O0FBR0E7QUFJQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7OztBQUdBO0FBRUE7QUFDQTtBQUdBO0FBR0E7QUFXQTtBQUNBOztBQVFBO0FBR0E7QUFFQTtBQUNBOztBQUdBO0FBSUE7QUFJQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBS0E7QUFPQTtBQUNBO0FBQ0E7QUFDQTs7QUFLQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7OztBQUtBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFHQTtBQUNBO0FBQ0E7QUFDQTs7O0FBS0E7QUFDQTtBQUNBOzs7QUFTQTs7Ozs7QUFLQTtBQVFBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBR0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQVlBO0FBRUE7QUFNQTtBQUNBO0FBQ0E7QUFFQTtBQU1BO0FBQ0E7QUFDQTtBQUVBO0FBTUE7QUFDQTtBQUNBO0FBRUE7QUFNQTtBQUNBO0FBQ0E7QUFFQTtBQU1BO0FBQ0E7QUFDQTtBQUVBO0FBTUE7QUFDQTtBQUNBO0FBRUE7QUFNQTtBQUNBO0FBQ0E7QUFFQTtBQU1BO0FBQ0E7QUFDQTtBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFVQTtBQU1BO0FBQ0E7O0FBR0E7QUFPQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVNBO0FBT0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBRUE7QUFTQTtBQUNBO0FBR0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBS0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBS0E7QUFNQTtBQVFBO0FBU0E7QUFDQTtBQUdBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUtBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUtBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUtBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUtBO0FBTUE7QUFTQTtBQU1BO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBSUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBSUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBSUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBS0E7QUFNQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUlBO0FBQ0E7O0FBR0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUlBO0FBQ0E7QUFDQTtBQUNBOzs7QUFJQTtBQUNBO0FBQ0E7QUFDQTs7O0FBSUE7QUFDQTtBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQU9BO0FBT0E7QUFRQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUlBO0FBQ0E7OztBQUlBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUlBO0FBSUE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUlBO0FBQ0E7OztBQUlBO0FBQ0E7QUFNQTtBQUNBO0FBQ0E7QUFFQTtBQUlBO0FBRUE7QUFDQTtBQU1BO0FBQ0E7QUFDQTtBQUVBO0FBT0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUlBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFJQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7O0FBRUE7QUFFQTs7O0FBT0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTs7QUFHQTtBQUNBO0FBQ0E7QUFDQTs7QUFNQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBR0E7QUFDQTs7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFFQTtBQUtBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUdBO0FBQ0E7QUFDQTs7QUFJQTtBQUNBO0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUVBOztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBSUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUdBO0FBSUE7QUFJQTtBQUVBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBR0E7QUFFQTtBQUFBO0FBR0E7QUFDQTs7OztBQUlBO0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUVBOztBQUdBO0FBQ0E7QUFFQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBR0E7QUFFQTtBQUFBO0FBR0E7OztBQUdBO0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUVBOztBQUdBO0FBQ0E7QUFLQTtBQUNBO0FBS0E7QUFJQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUtBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFNQTtBQU1BOztBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBRUE7O0FBR0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUFBO0FBR0E7OztBQUdBO0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBOztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFHQTtBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBUUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUdBO0FBQ0E7QUFDQTs7O0FBR0E7QUFNQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFLQTtBQUtBO0FBQ0E7QUFJQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTtBQUNBOztBQUdBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7O0FBR0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUdBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTs7Ozs7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFHQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7OztBQUtBO0FBQ0E7QUEvNkVBO0FBQ0E7QUErNkVBO0FBQUE7QUFqZ0ZBO0FBc2dGQTtBQStEQTtBQTdEQTtBQUVBO0FBRUE7QUFFQTtBQUVBO0FBRUE7QUFFQTtBQUVBO0FBRUE7QUFFQTtBQUVBO0FBRUE7QUFFQTtBQUVBO0FBRUE7QUFFQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFZQTtBQVRBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBS0E7QUFBQTtBQWhFQTs7QSIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./packages/caeDesign/src/gsDevFx/objects/caeObjects/memberObject.ts\n");
4178
4178
 
4179
4179
  /***/ }),
4180
4180
 
@@ -4746,7 +4746,7 @@ eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPAC
4746
4746
  /*! no static exports found */
4747
4747
  /***/ (function(module, exports, __webpack_require__) {
4748
4748
 
4749
- eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\"), __webpack_require__(/*! gs-bim-air */ \"./node_modules/gs-bim-air/lib/BimAir.umd.min.js\"), __webpack_require__(/*! ../sectionObject */ \"./packages/caeDesign/src/gsDevFx/objects/caeObjects/sectionObject.ts\"), __webpack_require__(/*! ./instanceTXYSectionObject */ \"./packages/caeDesign/src/gsDevFx/objects/caeObjects/sections/instanceTXYSectionObject.ts\"), __webpack_require__(/*! ../../../../caeCardEditor/caeCardObjects/cardSectionTUB */ \"./packages/caeDesign/src/caeCardEditor/caeCardObjects/cardSectionTUB.ts\")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, tslib_1, gs_bim_air_1, sectionObject_1, instanceTXYSectionObject_1, cardSectionTUB_1) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.TubSectionObject = void 0;\n var TubSectionObject = function (_super) {\n tslib_1.__extends(TubSectionObject, _super);\n function TubSectionObject() {\n var _this = _super.call(this) || this;\n _this.outsideRadius = 10;\n _this.outsideWallThick = 0.5;\n _this._insideRadius = 0;\n _this._insideWallThick = 0;\n _this.isTXY = false;\n _this.typeName = \"TubSectionObject\";\n _this.crossSectionType = \"TUB\";\n _this.curveTessNum = 40;\n _this.instanceTypes.add(\"main\", instanceTXYSectionObject_1.InstanceTXYSectionObject.prototype);\n return _this;\n }\n Object.defineProperty(TubSectionObject.prototype, \"insideRadius\", {\n get: function get() {\n return this._insideRadius;\n },\n set: function set(value) {\n this._insideRadius = value;\n if (!this._insideWallThick && !this._insideRadius) {\n this.isTXY = false;\n this._insideRadius = null;\n this._insideWallThick = null;\n } else if (this._insideWallThick && this._insideRadius) {\n this.isTXY = true;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TubSectionObject.prototype, \"insideWallThick\", {\n get: function get() {\n return this._insideWallThick;\n },\n set: function set(value) {\n this._insideWallThick = value;\n if (!this._insideWallThick && !this._insideRadius) {\n this.isTXY = false;\n this._insideRadius = null;\n this._insideWallThick = null;\n } else if (this._insideWallThick && this._insideRadius) {\n this.isTXY = true;\n }\n },\n enumerable: false,\n configurable: true\n });\n TubSectionObject.prototype.serializeToParams = function () {\n var obj = {\n outsideRadius: this.outsideRadius,\n outsideWallThick: this.outsideWallThick,\n insideRadius: this.insideRadius,\n insideWallThick: this.insideWallThick\n };\n return obj;\n };\n TubSectionObject.prototype.serializeToStandardSize = function () {\n var obj = {\n outsideRadius: this.outsideRadius * 10,\n outsideWallThick: this.outsideWallThick * 10\n };\n return obj;\n };\n TubSectionObject.prototype.deserializeFormParams = function (params) {\n this.outsideRadius = params.outsideRadius;\n this.outsideWallThick = params.outsideWallThick;\n this.insideRadius = params.insideRadius;\n this.insideWallThick = params.insideWallThick;\n };\n TubSectionObject.prototype.checkParameter = function (params) {\n var result = true;\n if (params.outsideRadius <= 0) {\n result = false;\n }\n if (params.outsideWallThick <= 0) {\n result = false;\n }\n if (params.insideRadius <= 0) {\n result = false;\n }\n if (params.insideWallThick <= 0) {\n result = false;\n }\n return result;\n };\n TubSectionObject.prototype.serialize = function () {\n var obj = _super.prototype.serialize.call(this);\n if (this.outsideRadius) {\n obj.outsideRadius = this.outsideRadius;\n }\n if (this.outsideWallThick) {\n obj.outsideWallThick = this.outsideWallThick;\n }\n if (this.insideRadius) {\n obj.insideRadius = this.insideRadius;\n }\n if (this.insideWallThick) {\n obj.insideWallThick = this.insideWallThick;\n }\n if (this.isTXY) {\n obj.isTXY = this.isTXY;\n }\n return obj;\n };\n TubSectionObject.prototype.deserialize = function (obj) {\n _super.prototype.deserialize.call(this, obj);\n if (obj.outsideRadius) {\n this.outsideRadius = obj.outsideRadius;\n }\n if (obj.outsideWallThick) {\n this.outsideWallThick = obj.outsideWallThick;\n }\n if (obj.insideRadius) {\n this.insideRadius = obj.insideRadius;\n }\n if (obj.insideWallThick) {\n this.insideWallThick = obj.insideWallThick;\n }\n if (obj.isTXY) {\n this.isTXY = obj.isTXY;\n }\n this.setNeedUpdate();\n };\n TubSectionObject.prototype.clone = function (cloneObj, cloneManager) {\n cloneObj.outsideRadius = this.outsideRadius;\n cloneObj.outsideWallThick = this.outsideWallThick;\n cloneObj.insideRadius = this.insideRadius;\n cloneObj.insideWallThick = this.insideWallThick;\n cloneObj.isTXY = this.isTXY;\n cloneObj.cloneObj = _super.prototype.clone.call(this, cloneObj);\n return cloneObj;\n };\n TubSectionObject.prototype.serializeToCard = function () {\n var cardObj = new cardSectionTUB_1.CardSectionTUB();\n _super.prototype.toCardObject.call(this, cardObj);\n cardObj.insideRadius.value = this.insideRadius ? this.insideRadius.toString() : \"\";\n cardObj.insideWallThick.value = this.insideWallThick ? this.insideWallThick.toString() : \"\";\n cardObj.outsideRadius.value = this.outsideRadius ? this.outsideRadius.toString() : \"\";\n cardObj.outsideWallThick.value = this.outsideWallThick ? this.outsideWallThick.toString() : \"\";\n return cardObj.getLine();\n };\n TubSectionObject.prototype.getSectionPolygon = function (origin, yAxis, zAxis) {\n this.indiceNumber = 0;\n var xAixs = gs_bim_air_1.Longan.Vector.cross(yAxis, zAxis);\n gs_bim_air_1.Longan.Vector.normalize(xAixs);\n var points = new Array();\n var indices = new Array();\n var R1 = this.outsideRadius / 100;\n var D1 = this.outsideWallThick / 100;\n var R2 = null;\n var D2 = null;\n var radius3 = null;\n var radius4 = null;\n if (R1 && D1) {\n var radius1 = R1 / 2;\n var radius2 = R1 / 2 - D1;\n var center = origin;\n var curveTessNum = this.curveTessNum;\n var point1 = gs_bim_air_1.Longan.Vector.multiply(yAxis, radius1);\n var point2 = gs_bim_air_1.Longan.Vector.multiply(yAxis, -radius1);\n var point3 = gs_bim_air_1.Longan.Vector.multiply(zAxis, radius1);\n var point4 = gs_bim_air_1.Longan.Vector.multiply(zAxis, radius1 - D1);\n var p0 = gs_bim_air_1.Longan.Point.add(center, point1);\n var p1 = gs_bim_air_1.Longan.Point.add(center, point2);\n var p2 = gs_bim_air_1.Longan.Point.add(center, point3);\n var p3 = gs_bim_air_1.Longan.Point.add(center, point4);\n var pointArray = new Array();\n pointArray.push(p0);\n pointArray.push(p1);\n pointArray.push(p2);\n pointArray.push(p3);\n if (this.isTXY) {\n R2 = this.insideRadius / 100;\n D2 = this.insideWallThick / 100;\n radius3 = R2 / 2;\n radius4 = R2 / 2 - D2;\n var point4_1 = gs_bim_air_1.Longan.Vector.multiply(zAxis, radius3);\n var point5 = gs_bim_air_1.Longan.Vector.multiply(zAxis, -radius3);\n var point6 = gs_bim_air_1.Longan.Vector.multiply(zAxis, radius4);\n var point7 = gs_bim_air_1.Longan.Vector.multiply(zAxis, radius4 + D2);\n var matrix = gs_bim_air_1.Longan.Matrix4.rotateByAxis(center, xAixs, -Math.PI * 3 / 4);\n point6 = gs_bim_air_1.Longan.Matrix4.multiplyPoint(matrix, point6);\n point7 = gs_bim_air_1.Longan.Matrix4.multiplyPoint(matrix, point7);\n var p4 = gs_bim_air_1.Longan.Point.add(center, point4_1);\n var p5 = gs_bim_air_1.Longan.Point.add(center, point5);\n var p6 = gs_bim_air_1.Longan.Point.add(center, point6);\n var p7 = gs_bim_air_1.Longan.Point.add(center, point7);\n pointArray.push(p4);\n pointArray.push(p5);\n pointArray.push(p6);\n pointArray.push(p7);\n }\n this.labelPoints = pointArray;\n this.pushCirclePoint(points, center, yAxis, zAxis, radius1, curveTessNum);\n this.pushCirclePoint(points, center, yAxis, zAxis, radius2, curveTessNum);\n if (this.isTXY) {\n if (R2 && D2) {\n this.pushCirclePoint(points, center, yAxis, zAxis, radius3, curveTessNum);\n this.pushCirclePoint(points, center, yAxis, zAxis, radius4, curveTessNum);\n }\n }\n indices.push(curveTessNum);\n for (var i = 0; i < curveTessNum; i++) {\n indices.push(i);\n }\n indices.push(-1 * curveTessNum);\n for (var i = curveTessNum * 2 - 1; i >= curveTessNum; i--) {\n indices.push(i);\n }\n if (this.isTXY) {\n if (R2 && D2) {\n indices.push(-1 * curveTessNum);\n for (var i = curveTessNum * 2; i < curveTessNum * 3; i++) {\n indices.push(i);\n }\n indices.push(-1 * curveTessNum);\n for (var i = curveTessNum * 4 - 1; i >= curveTessNum * 3; i--) {\n indices.push(i);\n }\n }\n }\n }\n return {\n points: points,\n indices: indices\n };\n };\n TubSectionObject.prototype.draw = function () {\n var result = this.getSectionPolygon(new Float32Array([0, 0, 0]), new Float32Array([0, 1, 0]), new Float32Array([0, 0, 1]));\n this.segment.clearGeometries();\n this.segment.insertShell(result.points, result.indices);\n };\n return TubSectionObject;\n }(sectionObject_1.SectionObject);\n exports.TubSectionObject = TubSectionObject;\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL2dzRGV2Rngvb2JqZWN0cy9jYWVPYmplY3RzL3NlY3Rpb25zL3R1YlNlY3Rpb25PYmplY3QudHMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9bbmFtZV0vLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL2dzRGV2Rngvb2JqZWN0cy9jYWVPYmplY3RzL3NlY3Rpb25zL3R1YlNlY3Rpb25PYmplY3QudHM/ZTczYyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb25nYW4gfSBmcm9tIFwiZ3MtYmltLWFpclwiO1xuaW1wb3J0IHsgSVJlZmVyZW5jZU9iamVjdCB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzXCI7XG5pbXBvcnQgeyBTZWN0aW9uT2JqZWN0IH0gZnJvbSBcIi4uL3NlY3Rpb25PYmplY3RcIjtcbmltcG9ydCB7IEluc3RhbmNlVFhZU2VjdGlvbk9iamVjdCB9IGZyb20gXCIuL2luc3RhbmNlVFhZU2VjdGlvbk9iamVjdFwiO1xuaW1wb3J0IHsgQ2FyZFNlY3Rpb24gfSBmcm9tIFwiLi4vLi4vLi4vLi4vY2FlQ2FyZEVkaXRvci9jYWVDYXJkT2JqZWN0cy9jYXJkU2VjdGlvblwiO1xuaW1wb3J0IHsgQ2FyZFNlY3Rpb25UVUIgfSBmcm9tIFwiLi4vLi4vLi4vLi4vY2FlQ2FyZEVkaXRvci9jYWVDYXJkT2JqZWN0cy9jYXJkU2VjdGlvblRVQlwiO1xuXG5leHBvcnQgY2xhc3MgVHViU2VjdGlvbk9iamVjdFxuICBleHRlbmRzIFNlY3Rpb25PYmplY3RcbiAgaW1wbGVtZW50cyBJUmVmZXJlbmNlT2JqZWN0XG57XG4gIHB1YmxpYyBvdXRzaWRlUmFkaXVzID0gMTA7XG4gIHB1YmxpYyBvdXRzaWRlV2FsbFRoaWNrID0gMC41O1xuICBwcml2YXRlIF9pbnNpZGVSYWRpdXMgPSAwO1xuICBwcml2YXRlIF9pbnNpZGVXYWxsVGhpY2sgPSAwO1xuXG4gIGlzVFhZOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIGdldCBpbnNpZGVSYWRpdXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2luc2lkZVJhZGl1cztcbiAgfVxuXG4gIHB1YmxpYyBzZXQgaW5zaWRlUmFkaXVzKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9pbnNpZGVSYWRpdXMgPSB2YWx1ZTtcbiAgICBpZiAoIXRoaXMuX2luc2lkZVdhbGxUaGljayAmJiAhdGhpcy5faW5zaWRlUmFkaXVzKSB7XG4gICAgICB0aGlzLmlzVFhZID0gZmFsc2U7XG4gICAgICB0aGlzLl9pbnNpZGVSYWRpdXMgPSBudWxsO1xuICAgICAgdGhpcy5faW5zaWRlV2FsbFRoaWNrID0gbnVsbDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2luc2lkZVdhbGxUaGljayAmJiB0aGlzLl9pbnNpZGVSYWRpdXMpIHtcbiAgICAgIHRoaXMuaXNUWFkgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW5zaWRlV2FsbFRoaWNrKCkge1xuICAgIHJldHVybiB0aGlzLl9pbnNpZGVXYWxsVGhpY2s7XG4gIH1cblxuICBwdWJsaWMgc2V0IGluc2lkZVdhbGxUaGljayh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5faW5zaWRlV2FsbFRoaWNrID0gdmFsdWU7XG4gICAgaWYgKCF0aGlzLl9pbnNpZGVXYWxsVGhpY2sgJiYgIXRoaXMuX2luc2lkZVJhZGl1cykge1xuICAgICAgdGhpcy5pc1RYWSA9IGZhbHNlO1xuICAgICAgdGhpcy5faW5zaWRlUmFkaXVzID0gbnVsbDtcbiAgICAgIHRoaXMuX2luc2lkZVdhbGxUaGljayA9IG51bGw7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9pbnNpZGVXYWxsVGhpY2sgJiYgdGhpcy5faW5zaWRlUmFkaXVzKSB7XG4gICAgICB0aGlzLmlzVFhZID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMudHlwZU5hbWUgPSBcIlR1YlNlY3Rpb25PYmplY3RcIjtcbiAgICB0aGlzLmNyb3NzU2VjdGlvblR5cGUgPSBcIlRVQlwiO1xuXG4gICAgdGhpcy5jdXJ2ZVRlc3NOdW0gPSA0MDtcbiAgICB0aGlzLmluc3RhbmNlVHlwZXMuYWRkKFwibWFpblwiLCBJbnN0YW5jZVRYWVNlY3Rpb25PYmplY3QucHJvdG90eXBlKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXJpYWxpemVUb1BhcmFtcygpOiB7fSB7XG4gICAgbGV0IG9iaiA9IHtcbiAgICAgIG91dHNpZGVSYWRpdXM6IHRoaXMub3V0c2lkZVJhZGl1cyxcbiAgICAgIG91dHNpZGVXYWxsVGhpY2s6IHRoaXMub3V0c2lkZVdhbGxUaGljayxcbiAgICAgIGluc2lkZVJhZGl1czogdGhpcy5pbnNpZGVSYWRpdXMsXG4gICAgICBpbnNpZGVXYWxsVGhpY2s6IHRoaXMuaW5zaWRlV2FsbFRoaWNrLFxuICAgIH07XG5cbiAgICByZXR1cm4gb2JqO1xuICB9XG5cbiAgcHVibGljIHNlcmlhbGl6ZVRvU3RhbmRhcmRTaXplKCk6IHt9IHtcbiAgICBsZXQgb2JqID0ge1xuICAgICAgb3V0c2lkZVJhZGl1czogdGhpcy5vdXRzaWRlUmFkaXVzICogMTAsXG4gICAgICBvdXRzaWRlV2FsbFRoaWNrOiB0aGlzLm91dHNpZGVXYWxsVGhpY2sgKiAxMCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIHB1YmxpYyBkZXNlcmlhbGl6ZUZvcm1QYXJhbXMocGFyYW1zKSB7XG4gICAgdGhpcy5vdXRzaWRlUmFkaXVzID0gcGFyYW1zLm91dHNpZGVSYWRpdXM7XG4gICAgdGhpcy5vdXRzaWRlV2FsbFRoaWNrID0gcGFyYW1zLm91dHNpZGVXYWxsVGhpY2s7XG4gICAgdGhpcy5pbnNpZGVSYWRpdXMgPSBwYXJhbXMuaW5zaWRlUmFkaXVzO1xuICAgIHRoaXMuaW5zaWRlV2FsbFRoaWNrID0gcGFyYW1zLmluc2lkZVdhbGxUaGljaztcbiAgfVxuXG4gIHB1YmxpYyBjaGVja1BhcmFtZXRlcihwYXJhbXM6IGFueSk6IGJvb2xlYW4ge1xuICAgIGxldCByZXN1bHQgPSB0cnVlO1xuICAgIGlmKHBhcmFtcy5vdXRzaWRlUmFkaXVzIDw9IDApIHtcbiAgICAgIHJlc3VsdCA9IGZhbHNlO1xuICAgIH1cbiAgICBpZihwYXJhbXMub3V0c2lkZVdhbGxUaGljayA8PSAwKSB7XG4gICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICB9XG4gICAgaWYocGFyYW1zLmluc2lkZVJhZGl1cyA8PSAwKSB7XG4gICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICB9XG4gICAgaWYocGFyYW1zLmluc2lkZVdhbGxUaGljayA8PSAwKSB7XG4gICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgc2VyaWFsaXplKCk6IGFueSB7XG4gICAgbGV0IG9iaiA9IHN1cGVyLnNlcmlhbGl6ZSgpO1xuXG4gICAgaWYgKHRoaXMub3V0c2lkZVJhZGl1cykge1xuICAgICAgb2JqLm91dHNpZGVSYWRpdXMgPSB0aGlzLm91dHNpZGVSYWRpdXM7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3V0c2lkZVdhbGxUaGljaykge1xuICAgICAgb2JqLm91dHNpZGVXYWxsVGhpY2sgPSB0aGlzLm91dHNpZGVXYWxsVGhpY2s7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaW5zaWRlUmFkaXVzKSB7XG4gICAgICBvYmouaW5zaWRlUmFkaXVzID0gdGhpcy5pbnNpZGVSYWRpdXM7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaW5zaWRlV2FsbFRoaWNrKSB7XG4gICAgICBvYmouaW5zaWRlV2FsbFRoaWNrID0gdGhpcy5pbnNpZGVXYWxsVGhpY2s7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNUWFkpIHtcbiAgICAgIG9iai5pc1RYWSA9IHRoaXMuaXNUWFk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIGRlc2VyaWFsaXplKG9iajogYW55KSB7XG4gICAgc3VwZXIuZGVzZXJpYWxpemUob2JqKTtcblxuICAgIGlmIChvYmoub3V0c2lkZVJhZGl1cykge1xuICAgICAgdGhpcy5vdXRzaWRlUmFkaXVzID0gb2JqLm91dHNpZGVSYWRpdXM7XG4gICAgfVxuXG4gICAgaWYgKG9iai5vdXRzaWRlV2FsbFRoaWNrKSB7XG4gICAgICB0aGlzLm91dHNpZGVXYWxsVGhpY2sgPSBvYmoub3V0c2lkZVdhbGxUaGljaztcbiAgICB9XG5cbiAgICBpZiAob2JqLmluc2lkZVJhZGl1cykge1xuICAgICAgdGhpcy5pbnNpZGVSYWRpdXMgPSBvYmouaW5zaWRlUmFkaXVzO1xuICAgIH1cblxuICAgIGlmIChvYmouaW5zaWRlV2FsbFRoaWNrKSB7XG4gICAgICB0aGlzLmluc2lkZVdhbGxUaGljayA9IG9iai5pbnNpZGVXYWxsVGhpY2s7XG4gICAgfVxuXG4gICAgaWYgKG9iai5pc1RYWSkge1xuICAgICAgdGhpcy5pc1RYWSA9IG9iai5pc1RYWTtcbiAgICB9XG5cbiAgICB0aGlzLnNldE5lZWRVcGRhdGUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjbG9uZShjbG9uZU9iajogYW55LCBjbG9uZU1hbmFnZXI/OiBMb25nYW4uQ2xvbmVNYW5hZ2VyKSB7XG4gICAgY2xvbmVPYmoub3V0c2lkZVJhZGl1cyA9IHRoaXMub3V0c2lkZVJhZGl1cztcbiAgICBjbG9uZU9iai5vdXRzaWRlV2FsbFRoaWNrID0gdGhpcy5vdXRzaWRlV2FsbFRoaWNrO1xuICAgIGNsb25lT2JqLmluc2lkZVJhZGl1cyA9IHRoaXMuaW5zaWRlUmFkaXVzO1xuICAgIGNsb25lT2JqLmluc2lkZVdhbGxUaGljayA9IHRoaXMuaW5zaWRlV2FsbFRoaWNrO1xuICAgIGNsb25lT2JqLmlzVFhZID0gdGhpcy5pc1RYWTtcblxuICAgIGNsb25lT2JqLmNsb25lT2JqID0gc3VwZXIuY2xvbmUoY2xvbmVPYmopO1xuICAgIHJldHVybiBjbG9uZU9iajtcbiAgfVxuXG4gIHNlcmlhbGl6ZVRvQ2FyZCgpIHtcbiAgICAvL1xuICAgIGxldCBjYXJkT2JqID0gbmV3IENhcmRTZWN0aW9uVFVCKCk7XG4gICAgc3VwZXIudG9DYXJkT2JqZWN0KGNhcmRPYmopO1xuXG4gICAgY2FyZE9iai5pbnNpZGVSYWRpdXMudmFsdWUgPSB0aGlzLmluc2lkZVJhZGl1c1xuICAgICAgPyB0aGlzLmluc2lkZVJhZGl1cy50b1N0cmluZygpXG4gICAgICA6IFwiXCI7XG4gICAgY2FyZE9iai5pbnNpZGVXYWxsVGhpY2sudmFsdWUgPSB0aGlzLmluc2lkZVdhbGxUaGlja1xuICAgICAgPyB0aGlzLmluc2lkZVdhbGxUaGljay50b1N0cmluZygpXG4gICAgICA6IFwiXCI7XG4gICAgY2FyZE9iai5vdXRzaWRlUmFkaXVzLnZhbHVlID0gdGhpcy5vdXRzaWRlUmFkaXVzXG4gICAgICA/IHRoaXMub3V0c2lkZVJhZGl1cy50b1N0cmluZygpXG4gICAgICA6IFwiXCI7XG4gICAgY2FyZE9iai5vdXRzaWRlV2FsbFRoaWNrLnZhbHVlID0gdGhpcy5vdXRzaWRlV2FsbFRoaWNrXG4gICAgICA/IHRoaXMub3V0c2lkZVdhbGxUaGljay50b1N0cmluZygpXG4gICAgICA6IFwiXCI7XG5cbiAgICByZXR1cm4gY2FyZE9iai5nZXRMaW5lKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U2VjdGlvblBvbHlnb24oXG4gICAgb3JpZ2luOiBGbG9hdDMyQXJyYXksXG4gICAgeUF4aXM6IEZsb2F0MzJBcnJheSxcbiAgICB6QXhpczogRmxvYXQzMkFycmF5XG4gICkge1xuICAgIHRoaXMuaW5kaWNlTnVtYmVyID0gMDtcbiAgICBsZXQgeEFpeHMgPSBMb25nYW4uVmVjdG9yLmNyb3NzKHlBeGlzLCB6QXhpcyk7XG4gICAgTG9uZ2FuLlZlY3Rvci5ub3JtYWxpemUoeEFpeHMpO1xuXG4gICAgbGV0IHBvaW50cyA9IG5ldyBBcnJheTxudW1iZXI+KCk7XG4gICAgbGV0IGluZGljZXMgPSBuZXcgQXJyYXk8bnVtYmVyPigpO1xuXG4gICAgbGV0IFIxID0gdGhpcy5vdXRzaWRlUmFkaXVzIC8gMTAwO1xuICAgIGxldCBEMSA9IHRoaXMub3V0c2lkZVdhbGxUaGljayAvIDEwMDtcblxuICAgIGxldCBSMiA9IG51bGw7XG4gICAgbGV0IEQyID0gbnVsbDtcbiAgICBsZXQgcmFkaXVzMyA9IG51bGw7XG4gICAgbGV0IHJhZGl1czQgPSBudWxsO1xuXG4gICAgaWYgKFIxICYmIEQxKSB7XG4gICAgICBsZXQgcmFkaXVzMSA9IFIxIC8gMjtcbiAgICAgIGxldCByYWRpdXMyID0gUjEgLyAyIC0gRDE7XG5cbiAgICAgIGxldCBjZW50ZXIgPSBvcmlnaW47XG5cbiAgICAgIGxldCBjdXJ2ZVRlc3NOdW0gPSB0aGlzLmN1cnZlVGVzc051bTtcblxuICAgICAgLy8g5aSW5ZyG55qE5LiJ5Liq54K5ICDlpJblt6YgIOWkluWPsyAg5YaF5bemXG4gICAgICBsZXQgcG9pbnQxID0gTG9uZ2FuLlZlY3Rvci5tdWx0aXBseSh5QXhpcywgcmFkaXVzMSk7XG4gICAgICBsZXQgcG9pbnQyID0gTG9uZ2FuLlZlY3Rvci5tdWx0aXBseSh5QXhpcywgLXJhZGl1czEpO1xuICAgICAgbGV0IHBvaW50MyA9IExvbmdhbi5WZWN0b3IubXVsdGlwbHkoekF4aXMsIHJhZGl1czEpO1xuICAgICAgbGV0IHBvaW50NCA9IExvbmdhbi5WZWN0b3IubXVsdGlwbHkoekF4aXMsIHJhZGl1czEgLSBEMSk7XG5cbiAgICAgIGxldCBwMCA9IExvbmdhbi5Qb2ludC5hZGQoY2VudGVyLCBwb2ludDEpO1xuICAgICAgbGV0IHAxID0gTG9uZ2FuLlBvaW50LmFkZChjZW50ZXIsIHBvaW50Mik7XG4gICAgICBsZXQgcDIgPSBMb25nYW4uUG9pbnQuYWRkKGNlbnRlciwgcG9pbnQzKTtcbiAgICAgIGxldCBwMyA9IExvbmdhbi5Qb2ludC5hZGQoY2VudGVyLCBwb2ludDQpO1xuXG4gICAgICBsZXQgcG9pbnRBcnJheSA9IG5ldyBBcnJheTxMb25nYW4uUG9pbnQ+KCk7XG5cbiAgICAgIHBvaW50QXJyYXkucHVzaChwMCk7XG4gICAgICBwb2ludEFycmF5LnB1c2gocDEpO1xuICAgICAgcG9pbnRBcnJheS5wdXNoKHAyKTtcbiAgICAgIHBvaW50QXJyYXkucHVzaChwMyk7XG5cbiAgICAgIGlmICh0aGlzLmlzVFhZKSB7XG4gICAgICAgIFIyID0gdGhpcy5pbnNpZGVSYWRpdXMgLyAxMDA7XG4gICAgICAgIEQyID0gdGhpcy5pbnNpZGVXYWxsVGhpY2sgLyAxMDA7XG4gICAgICAgIHJhZGl1czMgPSBSMiAvIDI7XG4gICAgICAgIHJhZGl1czQgPSBSMiAvIDIgLSBEMjtcblxuICAgICAgICAvLyDlhoXlnIbnmoTkuInkuKrngrkgIOWkluS4iiAg5aSW5LiLICDlhoXkuIpcbiAgICAgICAgbGV0IHBvaW50NCA9IExvbmdhbi5WZWN0b3IubXVsdGlwbHkoekF4aXMsIHJhZGl1czMpO1xuICAgICAgICBsZXQgcG9pbnQ1ID0gTG9uZ2FuLlZlY3Rvci5tdWx0aXBseSh6QXhpcywgLXJhZGl1czMpO1xuICAgICAgICBsZXQgcG9pbnQ2ID0gTG9uZ2FuLlZlY3Rvci5tdWx0aXBseSh6QXhpcywgcmFkaXVzNCk7XG4gICAgICAgIGxldCBwb2ludDcgPSBMb25nYW4uVmVjdG9yLm11bHRpcGx5KHpBeGlzLCByYWRpdXM0ICsgRDIpO1xuICAgICAgICBsZXQgbWF0cml4ID0gTG9uZ2FuLk1hdHJpeDQucm90YXRlQnlBeGlzKGNlbnRlciwgeEFpeHMsIC1NYXRoLlBJICogMyAvIDQpO1xuICAgICAgICBwb2ludDYgPSBMb25nYW4uTWF0cml4NC5tdWx0aXBseVBvaW50KG1hdHJpeCwgcG9pbnQ2KTtcbiAgICAgICAgcG9pbnQ3ID0gTG9uZ2FuLk1hdHJpeDQubXVsdGlwbHlQb2ludChtYXRyaXgsIHBvaW50Nyk7XG5cbiAgICAgICAgbGV0IHA0ID0gTG9uZ2FuLlBvaW50LmFkZChjZW50ZXIsIHBvaW50NCk7XG4gICAgICAgIGxldCBwNSA9IExvbmdhbi5Qb2ludC5hZGQoY2VudGVyLCBwb2ludDUpO1xuICAgICAgICBsZXQgcDYgPSBMb25nYW4uUG9pbnQuYWRkKGNlbnRlciwgcG9pbnQ2KTtcbiAgICAgICAgbGV0IHA3ID0gTG9uZ2FuLlBvaW50LmFkZChjZW50ZXIsIHBvaW50Nyk7XG5cbiAgICAgICAgcG9pbnRBcnJheS5wdXNoKHA0KTtcbiAgICAgICAgcG9pbnRBcnJheS5wdXNoKHA1KTtcbiAgICAgICAgcG9pbnRBcnJheS5wdXNoKHA2KTtcbiAgICAgICAgcG9pbnRBcnJheS5wdXNoKHA3KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5sYWJlbFBvaW50cyA9IHBvaW50QXJyYXk7XG5cbiAgICAgIHRoaXMucHVzaENpcmNsZVBvaW50KHBvaW50cywgY2VudGVyLCB5QXhpcywgekF4aXMsIHJhZGl1czEsIGN1cnZlVGVzc051bSk7XG4gICAgICB0aGlzLnB1c2hDaXJjbGVQb2ludChwb2ludHMsIGNlbnRlciwgeUF4aXMsIHpBeGlzLCByYWRpdXMyLCBjdXJ2ZVRlc3NOdW0pO1xuXG4gICAgICBpZiAodGhpcy5pc1RYWSkge1xuICAgICAgICBpZiAoUjIgJiYgRDIpIHtcbiAgICAgICAgICB0aGlzLnB1c2hDaXJjbGVQb2ludChcbiAgICAgICAgICAgIHBvaW50cyxcbiAgICAgICAgICAgIGNlbnRlcixcbiAgICAgICAgICAgIHlBeGlzLFxuICAgICAgICAgICAgekF4aXMsXG4gICAgICAgICAgICByYWRpdXMzLFxuICAgICAgICAgICAgY3VydmVUZXNzTnVtXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLnB1c2hDaXJjbGVQb2ludChcbiAgICAgICAgICAgIHBvaW50cyxcbiAgICAgICAgICAgIGNlbnRlcixcbiAgICAgICAgICAgIHlBeGlzLFxuICAgICAgICAgICAgekF4aXMsXG4gICAgICAgICAgICByYWRpdXM0LFxuICAgICAgICAgICAgY3VydmVUZXNzTnVtXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvL+WchueahOe0ouW8leWAvFxuICAgICAgaW5kaWNlcy5wdXNoKGN1cnZlVGVzc051bSk7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGN1cnZlVGVzc051bTsgaSsrKSB7XG4gICAgICAgIGluZGljZXMucHVzaChpKTtcbiAgICAgIH1cbiAgICAgIGluZGljZXMucHVzaCgtMSAqIGN1cnZlVGVzc051bSk7XG4gICAgICBmb3IgKGxldCBpID0gY3VydmVUZXNzTnVtICogMiAtIDE7IGkgPj0gY3VydmVUZXNzTnVtOyBpLS0pIHtcbiAgICAgICAgaW5kaWNlcy5wdXNoKGkpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5pc1RYWSkge1xuICAgICAgICBpZiAoUjIgJiYgRDIpIHtcbiAgICAgICAgICBpbmRpY2VzLnB1c2goLTEgKiBjdXJ2ZVRlc3NOdW0pO1xuICAgICAgICAgIGZvciAobGV0IGkgPSBjdXJ2ZVRlc3NOdW0gKiAyOyBpIDwgY3VydmVUZXNzTnVtICogMzsgaSsrKSB7XG4gICAgICAgICAgICBpbmRpY2VzLnB1c2goaSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGluZGljZXMucHVzaCgtMSAqIGN1cnZlVGVzc051bSk7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IGN1cnZlVGVzc051bSAqIDQgLSAxOyBpID49IGN1cnZlVGVzc051bSAqIDM7IGktLSkge1xuICAgICAgICAgICAgaW5kaWNlcy5wdXNoKGkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBwb2ludHMsXG4gICAgICBpbmRpY2VzLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZHJhdygpIHtcbiAgICBsZXQgcmVzdWx0ID0gdGhpcy5nZXRTZWN0aW9uUG9seWdvbihcbiAgICAgIG5ldyBGbG9hdDMyQXJyYXkoWzAsIDAsIDBdKSxcbiAgICAgIG5ldyBGbG9hdDMyQXJyYXkoWzAsIDEsIDBdKSxcbiAgICAgIG5ldyBGbG9hdDMyQXJyYXkoWzAsIDAsIDFdKVxuICAgICk7XG4gICAgdGhpcy5zZWdtZW50LmNsZWFyR2VvbWV0cmllcygpO1xuICAgIHRoaXMuc2VnbWVudC5pbnNlcnRTaGVsbChyZXN1bHQucG9pbnRzLCByZXN1bHQuaW5kaWNlcyk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQU9BO0FBQ0E7QUF3Q0E7QUFBQTtBQXJDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBa0NBO0FBQ0E7QUFFQTtBQUNBOztBQUNBO0FBckNBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7OztBQUVBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7OztBQVdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBR0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBOztBQUdBO0FBQ0E7O0FBR0E7QUFDQTs7QUFHQTtBQUNBOztBQUdBO0FBQ0E7O0FBR0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBOztBQUdBO0FBQ0E7O0FBR0E7QUFDQTs7QUFHQTtBQUNBOztBQUdBO0FBQ0E7O0FBR0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUVBO0FBR0E7QUFHQTtBQUdBO0FBSUE7QUFDQTtBQUVBO0FBS0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBR0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBUUE7OztBQVlBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7Ozs7O0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBNVRBOztBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./packages/caeDesign/src/gsDevFx/objects/caeObjects/sections/tubSectionObject.ts\n");
4749
+ eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\"), __webpack_require__(/*! gs-bim-air */ \"./node_modules/gs-bim-air/lib/BimAir.umd.min.js\"), __webpack_require__(/*! ../sectionObject */ \"./packages/caeDesign/src/gsDevFx/objects/caeObjects/sectionObject.ts\"), __webpack_require__(/*! ./instanceTXYSectionObject */ \"./packages/caeDesign/src/gsDevFx/objects/caeObjects/sections/instanceTXYSectionObject.ts\"), __webpack_require__(/*! ../../../../caeCardEditor/caeCardObjects/cardSectionTUB */ \"./packages/caeDesign/src/caeCardEditor/caeCardObjects/cardSectionTUB.ts\")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, tslib_1, gs_bim_air_1, sectionObject_1, instanceTXYSectionObject_1, cardSectionTUB_1) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.TubSectionObject = void 0;\n var TubSectionObject = function (_super) {\n tslib_1.__extends(TubSectionObject, _super);\n function TubSectionObject() {\n var _this = _super.call(this) || this;\n _this.outsideRadius = 10;\n _this.outsideWallThick = 0.5;\n _this._insideRadius = 0;\n _this._insideWallThick = 0;\n _this.isTXY = false;\n _this.typeName = \"TubSectionObject\";\n _this.crossSectionType = \"TUB\";\n _this.curveTessNum = 40;\n _this.instanceTypes.add(\"main\", instanceTXYSectionObject_1.InstanceTXYSectionObject.prototype);\n return _this;\n }\n Object.defineProperty(TubSectionObject.prototype, \"insideRadius\", {\n get: function get() {\n return this._insideRadius;\n },\n set: function set(value) {\n this._insideRadius = value;\n if (!this._insideWallThick && !this._insideRadius) {\n this.isTXY = false;\n this._insideRadius = null;\n this._insideWallThick = null;\n } else if (this._insideWallThick && this._insideRadius) {\n this.isTXY = true;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TubSectionObject.prototype, \"insideWallThick\", {\n get: function get() {\n return this._insideWallThick;\n },\n set: function set(value) {\n this._insideWallThick = value;\n if (!this._insideWallThick && !this._insideRadius) {\n this.isTXY = false;\n this._insideRadius = null;\n this._insideWallThick = null;\n } else if (this._insideWallThick && this._insideRadius) {\n this.isTXY = true;\n }\n },\n enumerable: false,\n configurable: true\n });\n TubSectionObject.prototype.serializeToParams = function () {\n var obj = {\n outsideRadius: this.outsideRadius,\n outsideWallThick: this.outsideWallThick,\n insideRadius: this.insideRadius,\n insideWallThick: this.insideWallThick\n };\n return obj;\n };\n TubSectionObject.prototype.serializeToStandardSize = function () {\n var obj = {\n outsideRadius: this.outsideRadius * 10,\n outsideWallThick: this.outsideWallThick * 10\n };\n return obj;\n };\n TubSectionObject.prototype.deserializeFormParams = function (params) {\n this.outsideRadius = params.outsideRadius;\n this.outsideWallThick = params.outsideWallThick;\n this.insideRadius = params.insideRadius;\n this.insideWallThick = params.insideWallThick;\n };\n TubSectionObject.prototype.checkParameter = function (params) {\n var result = true;\n if (params.outsideRadius <= 0) {\n result = false;\n }\n if (params.outsideWallThick <= 0) {\n result = false;\n }\n if (params.insideRadius <= 0) {\n result = false;\n }\n if (params.insideWallThick <= 0) {\n result = false;\n }\n return result;\n };\n TubSectionObject.prototype.serialize = function () {\n var obj = _super.prototype.serialize.call(this);\n if (this.outsideRadius) {\n obj.outsideRadius = this.outsideRadius;\n }\n if (this.outsideWallThick) {\n obj.outsideWallThick = this.outsideWallThick;\n }\n if (this.insideRadius) {\n obj.insideRadius = this.insideRadius;\n }\n if (this.insideWallThick) {\n obj.insideWallThick = this.insideWallThick;\n }\n if (this.isTXY) {\n obj.isTXY = this.isTXY;\n }\n return obj;\n };\n TubSectionObject.prototype.deserialize = function (obj) {\n _super.prototype.deserialize.call(this, obj);\n if (obj.outsideRadius) {\n this.outsideRadius = obj.outsideRadius;\n }\n if (obj.outsideWallThick) {\n this.outsideWallThick = obj.outsideWallThick;\n }\n if (obj.insideRadius) {\n this.insideRadius = obj.insideRadius;\n }\n if (obj.insideWallThick) {\n this.insideWallThick = obj.insideWallThick;\n }\n if (obj.isTXY) {\n this.isTXY = obj.isTXY;\n }\n this.setNeedUpdate();\n };\n TubSectionObject.prototype.clone = function (cloneObj, cloneManager) {\n cloneObj.outsideRadius = this.outsideRadius;\n cloneObj.outsideWallThick = this.outsideWallThick;\n cloneObj.insideRadius = this.insideRadius;\n cloneObj.insideWallThick = this.insideWallThick;\n cloneObj.isTXY = this.isTXY;\n cloneObj.cloneObj = _super.prototype.clone.call(this, cloneObj);\n return cloneObj;\n };\n TubSectionObject.prototype.serializeToCard = function () {\n var cardObj = new cardSectionTUB_1.CardSectionTUB();\n _super.prototype.toCardObject.call(this, cardObj);\n cardObj.insideRadius.value = this.insideRadius ? this.insideRadius.toString() : \"\";\n cardObj.insideWallThick.value = this.insideWallThick ? this.insideWallThick.toString() : \"\";\n cardObj.outsideRadius.value = this.outsideRadius ? this.outsideRadius.toString() : \"\";\n cardObj.outsideWallThick.value = this.outsideWallThick ? this.outsideWallThick.toString() : \"\";\n return cardObj.getLine();\n };\n TubSectionObject.prototype.getSectionPolygon = function (origin, yAxis, zAxis) {\n this.indiceNumber = 0;\n var xAixs = gs_bim_air_1.Longan.Vector.cross(yAxis, zAxis);\n gs_bim_air_1.Longan.Vector.normalize(xAixs);\n var points = new Array();\n var indices = new Array();\n var R1 = this.outsideRadius / 100;\n var D1 = this.outsideWallThick / 100;\n var R2 = null;\n var D2 = null;\n var radius3 = null;\n var radius4 = null;\n if (R1 && D1) {\n var radius1 = R1 / 2;\n var radius2 = R1 / 2 - D1;\n var center = origin;\n var curveTessNum = this.curveTessNum;\n var point1 = gs_bim_air_1.Longan.Vector.multiply(yAxis, radius1);\n var point2 = gs_bim_air_1.Longan.Vector.multiply(yAxis, -radius1);\n var point3 = gs_bim_air_1.Longan.Vector.multiply(zAxis, radius1);\n var point4 = gs_bim_air_1.Longan.Vector.multiply(zAxis, radius1 - D1);\n var p0 = gs_bim_air_1.Longan.Point.add(center, point1);\n var p1 = gs_bim_air_1.Longan.Point.add(center, point2);\n var p2 = gs_bim_air_1.Longan.Point.add(center, point3);\n var p3 = gs_bim_air_1.Longan.Point.add(center, point4);\n var pointArray = new Array();\n pointArray.push(p0);\n pointArray.push(p1);\n pointArray.push(p2);\n pointArray.push(p3);\n if (this.isTXY) {\n R2 = this.insideRadius / 100;\n D2 = this.insideWallThick / 100;\n radius3 = R2 / 2;\n radius4 = R2 / 2 - D2;\n if (radius2 <= radius3) {\n radius2 = radius3 * 1.01;\n }\n var point4_1 = gs_bim_air_1.Longan.Vector.multiply(zAxis, radius3);\n var point5 = gs_bim_air_1.Longan.Vector.multiply(zAxis, -radius3);\n var point6 = gs_bim_air_1.Longan.Vector.multiply(zAxis, radius4);\n var point7 = gs_bim_air_1.Longan.Vector.multiply(zAxis, radius4 + D2);\n var matrix = gs_bim_air_1.Longan.Matrix4.rotateByAxis(center, xAixs, -Math.PI * 3 / 4);\n point6 = gs_bim_air_1.Longan.Matrix4.multiplyPoint(matrix, point6);\n point7 = gs_bim_air_1.Longan.Matrix4.multiplyPoint(matrix, point7);\n var p4 = gs_bim_air_1.Longan.Point.add(center, point4_1);\n var p5 = gs_bim_air_1.Longan.Point.add(center, point5);\n var p6 = gs_bim_air_1.Longan.Point.add(center, point6);\n var p7 = gs_bim_air_1.Longan.Point.add(center, point7);\n pointArray.push(p4);\n pointArray.push(p5);\n pointArray.push(p6);\n pointArray.push(p7);\n }\n this.labelPoints = pointArray;\n this.pushCirclePoint(points, center, yAxis, zAxis, radius1, curveTessNum);\n this.pushCirclePoint(points, center, yAxis, zAxis, radius2, curveTessNum);\n if (this.isTXY) {\n if (R2 && D2) {\n this.pushCirclePoint(points, center, yAxis, zAxis, radius3, curveTessNum);\n this.pushCirclePoint(points, center, yAxis, zAxis, radius4, curveTessNum);\n }\n }\n indices.push(curveTessNum);\n for (var i = 0; i < curveTessNum; i++) {\n indices.push(i);\n }\n indices.push(-1 * curveTessNum);\n for (var i = curveTessNum * 2 - 1; i >= curveTessNum; i--) {\n indices.push(i);\n }\n if (this.isTXY) {\n if (R2 && D2) {\n indices.push(-1 * curveTessNum);\n for (var i = curveTessNum * 2; i < curveTessNum * 3; i++) {\n indices.push(i);\n }\n indices.push(-1 * curveTessNum);\n for (var i = curveTessNum * 4 - 1; i >= curveTessNum * 3; i--) {\n indices.push(i);\n }\n }\n }\n }\n return {\n points: points,\n indices: indices\n };\n };\n TubSectionObject.prototype.draw = function () {\n var result = this.getSectionPolygon(new Float32Array([0, 0, 0]), new Float32Array([0, 1, 0]), new Float32Array([0, 0, 1]));\n this.segment.clearGeometries();\n this.segment.insertShell(result.points, result.indices);\n };\n return TubSectionObject;\n }(sectionObject_1.SectionObject);\n exports.TubSectionObject = TubSectionObject;\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL2dzRGV2Rngvb2JqZWN0cy9jYWVPYmplY3RzL3NlY3Rpb25zL3R1YlNlY3Rpb25PYmplY3QudHMuanMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9bbmFtZV0vLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL2dzRGV2Rngvb2JqZWN0cy9jYWVPYmplY3RzL3NlY3Rpb25zL3R1YlNlY3Rpb25PYmplY3QudHM/ZTczYyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb25nYW4gfSBmcm9tIFwiZ3MtYmltLWFpclwiO1xuaW1wb3J0IHsgSVJlZmVyZW5jZU9iamVjdCB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzXCI7XG5pbXBvcnQgeyBTZWN0aW9uT2JqZWN0IH0gZnJvbSBcIi4uL3NlY3Rpb25PYmplY3RcIjtcbmltcG9ydCB7IEluc3RhbmNlVFhZU2VjdGlvbk9iamVjdCB9IGZyb20gXCIuL2luc3RhbmNlVFhZU2VjdGlvbk9iamVjdFwiO1xuaW1wb3J0IHsgQ2FyZFNlY3Rpb24gfSBmcm9tIFwiLi4vLi4vLi4vLi4vY2FlQ2FyZEVkaXRvci9jYWVDYXJkT2JqZWN0cy9jYXJkU2VjdGlvblwiO1xuaW1wb3J0IHsgQ2FyZFNlY3Rpb25UVUIgfSBmcm9tIFwiLi4vLi4vLi4vLi4vY2FlQ2FyZEVkaXRvci9jYWVDYXJkT2JqZWN0cy9jYXJkU2VjdGlvblRVQlwiO1xuXG5leHBvcnQgY2xhc3MgVHViU2VjdGlvbk9iamVjdFxuICBleHRlbmRzIFNlY3Rpb25PYmplY3RcbiAgaW1wbGVtZW50cyBJUmVmZXJlbmNlT2JqZWN0XG57XG4gIHB1YmxpYyBvdXRzaWRlUmFkaXVzID0gMTA7XG4gIHB1YmxpYyBvdXRzaWRlV2FsbFRoaWNrID0gMC41O1xuICBwcml2YXRlIF9pbnNpZGVSYWRpdXMgPSAwO1xuICBwcml2YXRlIF9pbnNpZGVXYWxsVGhpY2sgPSAwO1xuXG4gIGlzVFhZOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIGdldCBpbnNpZGVSYWRpdXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2luc2lkZVJhZGl1cztcbiAgfVxuXG4gIHB1YmxpYyBzZXQgaW5zaWRlUmFkaXVzKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9pbnNpZGVSYWRpdXMgPSB2YWx1ZTtcbiAgICBpZiAoIXRoaXMuX2luc2lkZVdhbGxUaGljayAmJiAhdGhpcy5faW5zaWRlUmFkaXVzKSB7XG4gICAgICB0aGlzLmlzVFhZID0gZmFsc2U7XG4gICAgICB0aGlzLl9pbnNpZGVSYWRpdXMgPSBudWxsO1xuICAgICAgdGhpcy5faW5zaWRlV2FsbFRoaWNrID0gbnVsbDtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2luc2lkZVdhbGxUaGljayAmJiB0aGlzLl9pbnNpZGVSYWRpdXMpIHtcbiAgICAgIHRoaXMuaXNUWFkgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW5zaWRlV2FsbFRoaWNrKCkge1xuICAgIHJldHVybiB0aGlzLl9pbnNpZGVXYWxsVGhpY2s7XG4gIH1cblxuICBwdWJsaWMgc2V0IGluc2lkZVdhbGxUaGljayh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5faW5zaWRlV2FsbFRoaWNrID0gdmFsdWU7XG4gICAgaWYgKCF0aGlzLl9pbnNpZGVXYWxsVGhpY2sgJiYgIXRoaXMuX2luc2lkZVJhZGl1cykge1xuICAgICAgdGhpcy5pc1RYWSA9IGZhbHNlO1xuICAgICAgdGhpcy5faW5zaWRlUmFkaXVzID0gbnVsbDtcbiAgICAgIHRoaXMuX2luc2lkZVdhbGxUaGljayA9IG51bGw7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9pbnNpZGVXYWxsVGhpY2sgJiYgdGhpcy5faW5zaWRlUmFkaXVzKSB7XG4gICAgICB0aGlzLmlzVFhZID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMudHlwZU5hbWUgPSBcIlR1YlNlY3Rpb25PYmplY3RcIjtcbiAgICB0aGlzLmNyb3NzU2VjdGlvblR5cGUgPSBcIlRVQlwiO1xuXG4gICAgdGhpcy5jdXJ2ZVRlc3NOdW0gPSA0MDtcbiAgICB0aGlzLmluc3RhbmNlVHlwZXMuYWRkKFwibWFpblwiLCBJbnN0YW5jZVRYWVNlY3Rpb25PYmplY3QucHJvdG90eXBlKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXJpYWxpemVUb1BhcmFtcygpOiB7fSB7XG4gICAgbGV0IG9iaiA9IHtcbiAgICAgIG91dHNpZGVSYWRpdXM6IHRoaXMub3V0c2lkZVJhZGl1cyxcbiAgICAgIG91dHNpZGVXYWxsVGhpY2s6IHRoaXMub3V0c2lkZVdhbGxUaGljayxcbiAgICAgIGluc2lkZVJhZGl1czogdGhpcy5pbnNpZGVSYWRpdXMsXG4gICAgICBpbnNpZGVXYWxsVGhpY2s6IHRoaXMuaW5zaWRlV2FsbFRoaWNrLFxuICAgIH07XG5cbiAgICByZXR1cm4gb2JqO1xuICB9XG5cbiAgcHVibGljIHNlcmlhbGl6ZVRvU3RhbmRhcmRTaXplKCk6IHt9IHtcbiAgICBsZXQgb2JqID0ge1xuICAgICAgb3V0c2lkZVJhZGl1czogdGhpcy5vdXRzaWRlUmFkaXVzICogMTAsXG4gICAgICBvdXRzaWRlV2FsbFRoaWNrOiB0aGlzLm91dHNpZGVXYWxsVGhpY2sgKiAxMCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIHB1YmxpYyBkZXNlcmlhbGl6ZUZvcm1QYXJhbXMocGFyYW1zKSB7XG4gICAgdGhpcy5vdXRzaWRlUmFkaXVzID0gcGFyYW1zLm91dHNpZGVSYWRpdXM7XG4gICAgdGhpcy5vdXRzaWRlV2FsbFRoaWNrID0gcGFyYW1zLm91dHNpZGVXYWxsVGhpY2s7XG4gICAgdGhpcy5pbnNpZGVSYWRpdXMgPSBwYXJhbXMuaW5zaWRlUmFkaXVzO1xuICAgIHRoaXMuaW5zaWRlV2FsbFRoaWNrID0gcGFyYW1zLmluc2lkZVdhbGxUaGljaztcbiAgfVxuXG4gIHB1YmxpYyBjaGVja1BhcmFtZXRlcihwYXJhbXM6IGFueSk6IGJvb2xlYW4ge1xuICAgIGxldCByZXN1bHQgPSB0cnVlO1xuICAgIGlmKHBhcmFtcy5vdXRzaWRlUmFkaXVzIDw9IDApIHtcbiAgICAgIHJlc3VsdCA9IGZhbHNlO1xuICAgIH1cbiAgICBpZihwYXJhbXMub3V0c2lkZVdhbGxUaGljayA8PSAwKSB7XG4gICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICB9XG4gICAgaWYocGFyYW1zLmluc2lkZVJhZGl1cyA8PSAwKSB7XG4gICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICB9XG4gICAgaWYocGFyYW1zLmluc2lkZVdhbGxUaGljayA8PSAwKSB7XG4gICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgc2VyaWFsaXplKCk6IGFueSB7XG4gICAgbGV0IG9iaiA9IHN1cGVyLnNlcmlhbGl6ZSgpO1xuXG4gICAgaWYgKHRoaXMub3V0c2lkZVJhZGl1cykge1xuICAgICAgb2JqLm91dHNpZGVSYWRpdXMgPSB0aGlzLm91dHNpZGVSYWRpdXM7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3V0c2lkZVdhbGxUaGljaykge1xuICAgICAgb2JqLm91dHNpZGVXYWxsVGhpY2sgPSB0aGlzLm91dHNpZGVXYWxsVGhpY2s7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaW5zaWRlUmFkaXVzKSB7XG4gICAgICBvYmouaW5zaWRlUmFkaXVzID0gdGhpcy5pbnNpZGVSYWRpdXM7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaW5zaWRlV2FsbFRoaWNrKSB7XG4gICAgICBvYmouaW5zaWRlV2FsbFRoaWNrID0gdGhpcy5pbnNpZGVXYWxsVGhpY2s7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNUWFkpIHtcbiAgICAgIG9iai5pc1RYWSA9IHRoaXMuaXNUWFk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIGRlc2VyaWFsaXplKG9iajogYW55KSB7XG4gICAgc3VwZXIuZGVzZXJpYWxpemUob2JqKTtcblxuICAgIGlmIChvYmoub3V0c2lkZVJhZGl1cykge1xuICAgICAgdGhpcy5vdXRzaWRlUmFkaXVzID0gb2JqLm91dHNpZGVSYWRpdXM7XG4gICAgfVxuXG4gICAgaWYgKG9iai5vdXRzaWRlV2FsbFRoaWNrKSB7XG4gICAgICB0aGlzLm91dHNpZGVXYWxsVGhpY2sgPSBvYmoub3V0c2lkZVdhbGxUaGljaztcbiAgICB9XG5cbiAgICBpZiAob2JqLmluc2lkZVJhZGl1cykge1xuICAgICAgdGhpcy5pbnNpZGVSYWRpdXMgPSBvYmouaW5zaWRlUmFkaXVzO1xuICAgIH1cblxuICAgIGlmIChvYmouaW5zaWRlV2FsbFRoaWNrKSB7XG4gICAgICB0aGlzLmluc2lkZVdhbGxUaGljayA9IG9iai5pbnNpZGVXYWxsVGhpY2s7XG4gICAgfVxuXG4gICAgaWYgKG9iai5pc1RYWSkge1xuICAgICAgdGhpcy5pc1RYWSA9IG9iai5pc1RYWTtcbiAgICB9XG5cbiAgICB0aGlzLnNldE5lZWRVcGRhdGUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjbG9uZShjbG9uZU9iajogYW55LCBjbG9uZU1hbmFnZXI/OiBMb25nYW4uQ2xvbmVNYW5hZ2VyKSB7XG4gICAgY2xvbmVPYmoub3V0c2lkZVJhZGl1cyA9IHRoaXMub3V0c2lkZVJhZGl1cztcbiAgICBjbG9uZU9iai5vdXRzaWRlV2FsbFRoaWNrID0gdGhpcy5vdXRzaWRlV2FsbFRoaWNrO1xuICAgIGNsb25lT2JqLmluc2lkZVJhZGl1cyA9IHRoaXMuaW5zaWRlUmFkaXVzO1xuICAgIGNsb25lT2JqLmluc2lkZVdhbGxUaGljayA9IHRoaXMuaW5zaWRlV2FsbFRoaWNrO1xuICAgIGNsb25lT2JqLmlzVFhZID0gdGhpcy5pc1RYWTtcblxuICAgIGNsb25lT2JqLmNsb25lT2JqID0gc3VwZXIuY2xvbmUoY2xvbmVPYmopO1xuICAgIHJldHVybiBjbG9uZU9iajtcbiAgfVxuXG4gIHNlcmlhbGl6ZVRvQ2FyZCgpIHtcbiAgICAvL1xuICAgIGxldCBjYXJkT2JqID0gbmV3IENhcmRTZWN0aW9uVFVCKCk7XG4gICAgc3VwZXIudG9DYXJkT2JqZWN0KGNhcmRPYmopO1xuXG4gICAgY2FyZE9iai5pbnNpZGVSYWRpdXMudmFsdWUgPSB0aGlzLmluc2lkZVJhZGl1c1xuICAgICAgPyB0aGlzLmluc2lkZVJhZGl1cy50b1N0cmluZygpXG4gICAgICA6IFwiXCI7XG4gICAgY2FyZE9iai5pbnNpZGVXYWxsVGhpY2sudmFsdWUgPSB0aGlzLmluc2lkZVdhbGxUaGlja1xuICAgICAgPyB0aGlzLmluc2lkZVdhbGxUaGljay50b1N0cmluZygpXG4gICAgICA6IFwiXCI7XG4gICAgY2FyZE9iai5vdXRzaWRlUmFkaXVzLnZhbHVlID0gdGhpcy5vdXRzaWRlUmFkaXVzXG4gICAgICA/IHRoaXMub3V0c2lkZVJhZGl1cy50b1N0cmluZygpXG4gICAgICA6IFwiXCI7XG4gICAgY2FyZE9iai5vdXRzaWRlV2FsbFRoaWNrLnZhbHVlID0gdGhpcy5vdXRzaWRlV2FsbFRoaWNrXG4gICAgICA/IHRoaXMub3V0c2lkZVdhbGxUaGljay50b1N0cmluZygpXG4gICAgICA6IFwiXCI7XG5cbiAgICByZXR1cm4gY2FyZE9iai5nZXRMaW5lKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U2VjdGlvblBvbHlnb24oXG4gICAgb3JpZ2luOiBGbG9hdDMyQXJyYXksXG4gICAgeUF4aXM6IEZsb2F0MzJBcnJheSxcbiAgICB6QXhpczogRmxvYXQzMkFycmF5XG4gICkge1xuICAgIHRoaXMuaW5kaWNlTnVtYmVyID0gMDtcbiAgICBsZXQgeEFpeHMgPSBMb25nYW4uVmVjdG9yLmNyb3NzKHlBeGlzLCB6QXhpcyk7XG4gICAgTG9uZ2FuLlZlY3Rvci5ub3JtYWxpemUoeEFpeHMpO1xuXG4gICAgbGV0IHBvaW50cyA9IG5ldyBBcnJheTxudW1iZXI+KCk7XG4gICAgbGV0IGluZGljZXMgPSBuZXcgQXJyYXk8bnVtYmVyPigpO1xuXG4gICAgbGV0IFIxID0gdGhpcy5vdXRzaWRlUmFkaXVzIC8gMTAwO1xuICAgIGxldCBEMSA9IHRoaXMub3V0c2lkZVdhbGxUaGljayAvIDEwMDtcblxuICAgIGxldCBSMiA9IG51bGw7XG4gICAgbGV0IEQyID0gbnVsbDtcbiAgICBsZXQgcmFkaXVzMyA9IG51bGw7XG4gICAgbGV0IHJhZGl1czQgPSBudWxsO1xuXG4gICAgaWYgKFIxICYmIEQxKSB7XG4gICAgICBsZXQgcmFkaXVzMSA9IFIxIC8gMjtcbiAgICAgIGxldCByYWRpdXMyID0gUjEgLyAyIC0gRDE7XG5cbiAgICAgIGxldCBjZW50ZXIgPSBvcmlnaW47XG5cbiAgICAgIGxldCBjdXJ2ZVRlc3NOdW0gPSB0aGlzLmN1cnZlVGVzc051bTtcblxuICAgICAgLy8g5aSW5ZyG55qE5LiJ5Liq54K5ICDlpJblt6YgIOWkluWPsyAg5YaF5bemXG4gICAgICBsZXQgcG9pbnQxID0gTG9uZ2FuLlZlY3Rvci5tdWx0aXBseSh5QXhpcywgcmFkaXVzMSk7XG4gICAgICBsZXQgcG9pbnQyID0gTG9uZ2FuLlZlY3Rvci5tdWx0aXBseSh5QXhpcywgLXJhZGl1czEpO1xuICAgICAgbGV0IHBvaW50MyA9IExvbmdhbi5WZWN0b3IubXVsdGlwbHkoekF4aXMsIHJhZGl1czEpO1xuICAgICAgbGV0IHBvaW50NCA9IExvbmdhbi5WZWN0b3IubXVsdGlwbHkoekF4aXMsIHJhZGl1czEgLSBEMSk7XG5cbiAgICAgIGxldCBwMCA9IExvbmdhbi5Qb2ludC5hZGQoY2VudGVyLCBwb2ludDEpO1xuICAgICAgbGV0IHAxID0gTG9uZ2FuLlBvaW50LmFkZChjZW50ZXIsIHBvaW50Mik7XG4gICAgICBsZXQgcDIgPSBMb25nYW4uUG9pbnQuYWRkKGNlbnRlciwgcG9pbnQzKTtcbiAgICAgIGxldCBwMyA9IExvbmdhbi5Qb2ludC5hZGQoY2VudGVyLCBwb2ludDQpO1xuXG4gICAgICBsZXQgcG9pbnRBcnJheSA9IG5ldyBBcnJheTxMb25nYW4uUG9pbnQ+KCk7XG5cbiAgICAgIHBvaW50QXJyYXkucHVzaChwMCk7XG4gICAgICBwb2ludEFycmF5LnB1c2gocDEpO1xuICAgICAgcG9pbnRBcnJheS5wdXNoKHAyKTtcbiAgICAgIHBvaW50QXJyYXkucHVzaChwMyk7XG5cbiAgICAgIGlmICh0aGlzLmlzVFhZKSB7XG4gICAgICAgIFIyID0gdGhpcy5pbnNpZGVSYWRpdXMgLyAxMDA7XG4gICAgICAgIEQyID0gdGhpcy5pbnNpZGVXYWxsVGhpY2sgLyAxMDA7XG4gICAgICAgIHJhZGl1czMgPSBSMiAvIDI7XG4gICAgICAgIHJhZGl1czQgPSBSMiAvIDIgLSBEMjtcblxuICAgICAgICBpZihyYWRpdXMyIDw9IHJhZGl1czMpIHtcbiAgICAgICAgICByYWRpdXMyID0gcmFkaXVzMyAqIDEuMDE7XG4gICAgICAgIH1cblxuICAgICAgICAvLyDlhoXlnIbnmoTkuInkuKrngrkgIOWkluS4iiAg5aSW5LiLICDlhoXkuIpcbiAgICAgICAgbGV0IHBvaW50NCA9IExvbmdhbi5WZWN0b3IubXVsdGlwbHkoekF4aXMsIHJhZGl1czMpO1xuICAgICAgICBsZXQgcG9pbnQ1ID0gTG9uZ2FuLlZlY3Rvci5tdWx0aXBseSh6QXhpcywgLXJhZGl1czMpO1xuICAgICAgICBsZXQgcG9pbnQ2ID0gTG9uZ2FuLlZlY3Rvci5tdWx0aXBseSh6QXhpcywgcmFkaXVzNCk7XG4gICAgICAgIGxldCBwb2ludDcgPSBMb25nYW4uVmVjdG9yLm11bHRpcGx5KHpBeGlzLCByYWRpdXM0ICsgRDIpO1xuICAgICAgICBsZXQgbWF0cml4ID0gTG9uZ2FuLk1hdHJpeDQucm90YXRlQnlBeGlzKGNlbnRlciwgeEFpeHMsIC1NYXRoLlBJICogMyAvIDQpO1xuICAgICAgICBwb2ludDYgPSBMb25nYW4uTWF0cml4NC5tdWx0aXBseVBvaW50KG1hdHJpeCwgcG9pbnQ2KTtcbiAgICAgICAgcG9pbnQ3ID0gTG9uZ2FuLk1hdHJpeDQubXVsdGlwbHlQb2ludChtYXRyaXgsIHBvaW50Nyk7XG5cbiAgICAgICAgbGV0IHA0ID0gTG9uZ2FuLlBvaW50LmFkZChjZW50ZXIsIHBvaW50NCk7XG4gICAgICAgIGxldCBwNSA9IExvbmdhbi5Qb2ludC5hZGQoY2VudGVyLCBwb2ludDUpO1xuICAgICAgICBsZXQgcDYgPSBMb25nYW4uUG9pbnQuYWRkKGNlbnRlciwgcG9pbnQ2KTtcbiAgICAgICAgbGV0IHA3ID0gTG9uZ2FuLlBvaW50LmFkZChjZW50ZXIsIHBvaW50Nyk7XG5cbiAgICAgICAgcG9pbnRBcnJheS5wdXNoKHA0KTtcbiAgICAgICAgcG9pbnRBcnJheS5wdXNoKHA1KTtcbiAgICAgICAgcG9pbnRBcnJheS5wdXNoKHA2KTtcbiAgICAgICAgcG9pbnRBcnJheS5wdXNoKHA3KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5sYWJlbFBvaW50cyA9IHBvaW50QXJyYXk7XG5cbiAgICAgIHRoaXMucHVzaENpcmNsZVBvaW50KHBvaW50cywgY2VudGVyLCB5QXhpcywgekF4aXMsIHJhZGl1czEsIGN1cnZlVGVzc051bSk7XG4gICAgICB0aGlzLnB1c2hDaXJjbGVQb2ludChwb2ludHMsIGNlbnRlciwgeUF4aXMsIHpBeGlzLCByYWRpdXMyLCBjdXJ2ZVRlc3NOdW0pO1xuXG4gICAgICBpZiAodGhpcy5pc1RYWSkge1xuICAgICAgICBpZiAoUjIgJiYgRDIpIHtcbiAgICAgICAgICB0aGlzLnB1c2hDaXJjbGVQb2ludChcbiAgICAgICAgICAgIHBvaW50cyxcbiAgICAgICAgICAgIGNlbnRlcixcbiAgICAgICAgICAgIHlBeGlzLFxuICAgICAgICAgICAgekF4aXMsXG4gICAgICAgICAgICByYWRpdXMzLFxuICAgICAgICAgICAgY3VydmVUZXNzTnVtXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLnB1c2hDaXJjbGVQb2ludChcbiAgICAgICAgICAgIHBvaW50cyxcbiAgICAgICAgICAgIGNlbnRlcixcbiAgICAgICAgICAgIHlBeGlzLFxuICAgICAgICAgICAgekF4aXMsXG4gICAgICAgICAgICByYWRpdXM0LFxuICAgICAgICAgICAgY3VydmVUZXNzTnVtXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvL+WchueahOe0ouW8leWAvFxuICAgICAgaW5kaWNlcy5wdXNoKGN1cnZlVGVzc051bSk7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGN1cnZlVGVzc051bTsgaSsrKSB7XG4gICAgICAgIGluZGljZXMucHVzaChpKTtcbiAgICAgIH1cbiAgICAgIGluZGljZXMucHVzaCgtMSAqIGN1cnZlVGVzc051bSk7XG4gICAgICBmb3IgKGxldCBpID0gY3VydmVUZXNzTnVtICogMiAtIDE7IGkgPj0gY3VydmVUZXNzTnVtOyBpLS0pIHtcbiAgICAgICAgaW5kaWNlcy5wdXNoKGkpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5pc1RYWSkge1xuICAgICAgICBpZiAoUjIgJiYgRDIpIHtcbiAgICAgICAgICBpbmRpY2VzLnB1c2goLTEgKiBjdXJ2ZVRlc3NOdW0pO1xuICAgICAgICAgIGZvciAobGV0IGkgPSBjdXJ2ZVRlc3NOdW0gKiAyOyBpIDwgY3VydmVUZXNzTnVtICogMzsgaSsrKSB7XG4gICAgICAgICAgICBpbmRpY2VzLnB1c2goaSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGluZGljZXMucHVzaCgtMSAqIGN1cnZlVGVzc051bSk7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IGN1cnZlVGVzc051bSAqIDQgLSAxOyBpID49IGN1cnZlVGVzc051bSAqIDM7IGktLSkge1xuICAgICAgICAgICAgaW5kaWNlcy5wdXNoKGkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBwb2ludHMsXG4gICAgICBpbmRpY2VzLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZHJhdygpIHtcbiAgICBsZXQgcmVzdWx0ID0gdGhpcy5nZXRTZWN0aW9uUG9seWdvbihcbiAgICAgIG5ldyBGbG9hdDMyQXJyYXkoWzAsIDAsIDBdKSxcbiAgICAgIG5ldyBGbG9hdDMyQXJyYXkoWzAsIDEsIDBdKSxcbiAgICAgIG5ldyBGbG9hdDMyQXJyYXkoWzAsIDAsIDFdKVxuICAgICk7XG4gICAgdGhpcy5zZWdtZW50LmNsZWFyR2VvbWV0cmllcygpO1xuICAgIHRoaXMuc2VnbWVudC5pbnNlcnRTaGVsbChyZXN1bHQucG9pbnRzLCByZXN1bHQuaW5kaWNlcyk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQU9BO0FBQ0E7QUF3Q0E7QUFBQTtBQXJDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBa0NBO0FBQ0E7QUFFQTtBQUNBOztBQUNBO0FBckNBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7OztBQUVBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7OztBQVdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBR0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBOztBQUdBO0FBQ0E7O0FBR0E7QUFDQTs7QUFHQTtBQUNBOztBQUdBO0FBQ0E7O0FBR0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBOztBQUdBO0FBQ0E7O0FBR0E7QUFDQTs7QUFHQTtBQUNBOztBQUdBO0FBQ0E7O0FBR0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUVBO0FBR0E7QUFHQTtBQUdBO0FBSUE7QUFDQTtBQUVBO0FBS0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBOztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFHQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFRQTs7O0FBWUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7Ozs7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFoVUE7O0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./packages/caeDesign/src/gsDevFx/objects/caeObjects/sections/tubSectionObject.ts\n");
4750
4750
 
4751
4751
  /***/ }),
4752
4752
 
@@ -5021,7 +5021,7 @@ eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPAC
5021
5021
  /*! no static exports found */
5022
5022
  /***/ (function(module, exports, __webpack_require__) {
5023
5023
 
5024
- eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\"), __webpack_require__(/*! ../instancesObjects/instanceRenderObject */ \"./packages/caeDesign/src/gsDevFx/objects/instancesObjects/instanceRenderObject.ts\"), __webpack_require__(/*! ./colorDivBaseObject */ \"./packages/caeDesign/src/gsDevFx/objects/pretreatmentObjects/colorDivBaseObject.ts\")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, tslib_1, instanceRenderObject_1, colorDivBaseObject_1) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.ColorDivGrupThicknessObject = void 0;\n var ColorDivGrupThicknessObject = function (_super) {\n tslib_1.__extends(ColorDivGrupThicknessObject, _super);\n function ColorDivGrupThicknessObject() {\n var _this = _super.call(this) || this;\n _this.typeName = \"ColorDivGrupThicknessObject\";\n _this._thickness = null;\n _this._color = null;\n _this.instanceTypes.add(\"main\", instanceRenderObject_1.InstanceRenderObject.prototype);\n return _this;\n }\n Object.defineProperty(ColorDivGrupThicknessObject.prototype, \"thickness\", {\n get: function get() {\n return this._thickness;\n },\n set: function set(value) {\n this._thickness = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ColorDivGrupThicknessObject.prototype, \"color\", {\n get: function get() {\n return this._color;\n },\n set: function set(value) {\n this._color = value;\n },\n enumerable: false,\n configurable: true\n });\n ColorDivGrupThicknessObject.prototype.serialize = function () {\n var obj = _super.prototype.serialize.call(this);\n if (this.thickness !== null) {\n obj.thickness = this.thickness;\n }\n if (this.color) {\n obj.color = this.color;\n }\n return obj;\n };\n ColorDivGrupThicknessObject.prototype.deserialize = function (obj, pm) {\n _super.prototype.deserialize.call(this, obj, pm);\n if (obj.thickness) {\n this._thickness = obj.thickness;\n } else {\n this._thickness = 0;\n }\n if (obj.color) {\n this.color = obj.color;\n }\n };\n ColorDivGrupThicknessObject.prototype.setGrupColorByThickness = function (viewer, thickness, startColor, endColor) {\n var grups = new Array();\n var grupRendenObject = viewer.process.caeRenderObjectTreeManager.grupNode;\n for (var i = 0; i < grupRendenObject.childObjects.length; i++) {\n var child = grupRendenObject.childObjects[i];\n for (var j = 0; j < child.grupSegments.length; j++) {\n var grupHasAdded = false;\n var grupSeg = child.grupSegments[j];\n if (!grupSeg.section) {\n var childThickness = grupSeg.tubWallThickness;\n if (thickness === childThickness) {\n grupSeg.startColor = startColor;\n grupSeg.endColor = endColor;\n if (!grupHasAdded) {\n grups.push(child);\n }\n grupHasAdded = true;\n }\n } else if (grupSeg.section && grupSeg.section.crossSectionType === \"Tub\") {\n console.log(\"Tub\");\n var childThickness = grupSeg.section.outsideWallThick;\n if (thickness === childThickness) {\n grupSeg.startColor = startColor;\n grupSeg.endColor = endColor;\n if (!grupHasAdded) {\n grups.push(child);\n }\n grupHasAdded = true;\n }\n }\n }\n }\n grups.forEach(function (grup) {\n grup.setNeedUpdate();\n });\n };\n ColorDivGrupThicknessObject.prototype.active = function (viewer) {\n if (this._thickness !== null) {\n this.setGrupColorByThickness(viewer, this.thickness, this.color, this.color);\n } else {\n console.log(\"ColorDivGrupThicknessObject error\");\n }\n };\n ColorDivGrupThicknessObject.prototype.inactive = function (viewer) {\n this.setGrupColorByThickness(viewer, this.thickness, null, null);\n };\n return ColorDivGrupThicknessObject;\n }(colorDivBaseObject_1.ColorDivBaseObject);\n exports.ColorDivGrupThicknessObject = ColorDivGrupThicknessObject;\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL2dzRGV2Rngvb2JqZWN0cy9wcmV0cmVhdG1lbnRPYmplY3RzL2NvbG9yRGl2R3J1cFRoaWNrbmVzc09iamVjdC50cy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL1tuYW1lXS8uL3BhY2thZ2VzL2NhZURlc2lnbi9zcmMvZ3NEZXZGeC9vYmplY3RzL3ByZXRyZWF0bWVudE9iamVjdHMvY29sb3JEaXZHcnVwVGhpY2tuZXNzT2JqZWN0LnRzPzZmZjEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmlld2VyIH0gZnJvbSBcIi4uLy4uL3ZpZXdlclwiO1xyXG5pbXBvcnQgeyBMb25nYW4gfSBmcm9tIFwiZ3MtYmltLWFpclwiO1xyXG5pbXBvcnQgeyBHcnVwT2JqZWN0IH0gZnJvbSBcIi4uL2NhZU9iamVjdHMvZ3J1cE9iamVjdFwiO1xyXG5pbXBvcnQgeyBJbnN0YW5jZVJlbmRlck9iamVjdCB9IGZyb20gXCIuLi9pbnN0YW5jZXNPYmplY3RzL2luc3RhbmNlUmVuZGVyT2JqZWN0XCI7XHJcbmltcG9ydCB7IENvbG9yRGl2QmFzZU9iamVjdCB9IGZyb20gXCIuL2NvbG9yRGl2QmFzZU9iamVjdFwiO1xyXG5pbXBvcnQgeyBUdWJTZWN0aW9uT2JqZWN0IH0gZnJvbSBcIi4uL2NhZU9iamVjdHMvc2VjdGlvbnMvdHViU2VjdGlvbk9iamVjdFwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIENvbG9yRGl2R3J1cFRoaWNrbmVzc09iamVjdCBleHRlbmRzIENvbG9yRGl2QmFzZU9iamVjdCB7XHJcbiAgcHVibGljIHR5cGVOYW1lID0gXCJDb2xvckRpdkdydXBUaGlja25lc3NPYmplY3RcIjtcclxuXHJcbiAgcHJpdmF0ZSBfdGhpY2tuZXNzOiBudW1iZXIgPSBudWxsO1xyXG4gIHByaXZhdGUgX2NvbG9yOiBudW1iZXJbXSA9IG51bGw7XHJcblxyXG4gIC8qKlxyXG4gICAqIOWchueuoeWjgeWOmlxyXG4gICAqL1xyXG4gIGdldCB0aGlja25lc3MoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGhpY2tuZXNzO1xyXG4gIH1cclxuXHJcbiAgc2V0IHRoaWNrbmVzcyh2YWx1ZSkge1xyXG4gICAgdGhpcy5fdGhpY2tuZXNzID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiAwLTFcclxuICAgKi9cclxuICBnZXQgY29sb3IoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29sb3I7XHJcbiAgfVxyXG5cclxuICBzZXQgY29sb3IodmFsdWUpIHtcclxuICAgIHRoaXMuX2NvbG9yID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG5cclxuICAgIHRoaXMuaW5zdGFuY2VUeXBlcy5hZGQoXCJtYWluXCIsIEluc3RhbmNlUmVuZGVyT2JqZWN0LnByb3RvdHlwZSk7XHJcbiAgfVxyXG5cclxuICBzZXJpYWxpemUoKSB7XHJcbiAgICBsZXQgb2JqID0gc3VwZXIuc2VyaWFsaXplKCk7XHJcblxyXG4gICAgaWYgKHRoaXMudGhpY2tuZXNzICE9PSBudWxsKSB7XHJcbiAgICAgIG9iai50aGlja25lc3MgPSB0aGlzLnRoaWNrbmVzcztcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5jb2xvcikge1xyXG4gICAgICBvYmouY29sb3IgPSB0aGlzLmNvbG9yO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBvYmo7XHJcbiAgfVxyXG5cclxuICBkZXNlcmlhbGl6ZShvYmo6IGFueSwgcG0/OiBMb25nYW4uUGVyc2lzdGVuY2VNYW5hZ2VyKTogdm9pZCB7XHJcbiAgICBzdXBlci5kZXNlcmlhbGl6ZShvYmosIHBtKTtcclxuXHJcbiAgICBpZiAob2JqLnRoaWNrbmVzcykge1xyXG4gICAgICB0aGlzLl90aGlja25lc3MgPSBvYmoudGhpY2tuZXNzO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fdGhpY2tuZXNzID0gMDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAob2JqLmNvbG9yKSB7XHJcbiAgICAgIHRoaXMuY29sb3IgPSBvYmouY29sb3I7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRHcnVwQ29sb3JCeVRoaWNrbmVzcyhcclxuICAgIHZpZXdlcjogVmlld2VyLFxyXG4gICAgdGhpY2tuZXNzOiBudW1iZXIsXHJcbiAgICBzdGFydENvbG9yOiBudW1iZXJbXSxcclxuICAgIGVuZENvbG9yOiBudW1iZXJbXVxyXG4gICkge1xyXG4gICAgLy9cclxuICAgIGxldCBncnVwcyA9IG5ldyBBcnJheTxHcnVwT2JqZWN0PigpO1xyXG5cclxuICAgIGxldCBncnVwUmVuZGVuT2JqZWN0ID0gdmlld2VyLnByb2Nlc3MuY2FlUmVuZGVyT2JqZWN0VHJlZU1hbmFnZXIuZ3J1cE5vZGU7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdydXBSZW5kZW5PYmplY3QuY2hpbGRPYmplY3RzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBjaGlsZCA9IGdydXBSZW5kZW5PYmplY3QuY2hpbGRPYmplY3RzW2ldIGFzIEdydXBPYmplY3Q7XHJcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgY2hpbGQuZ3J1cFNlZ21lbnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgbGV0IGdydXBIYXNBZGRlZCA9IGZhbHNlO1xyXG4gICAgICAgIGxldCBncnVwU2VnID0gY2hpbGQuZ3J1cFNlZ21lbnRzW2pdO1xyXG4gICAgICAgIGlmICghZ3J1cFNlZy5zZWN0aW9uKSB7XHJcbiAgICAgICAgICAvL1xyXG4gICAgICAgICAgbGV0IGNoaWxkVGhpY2tuZXNzID0gZ3J1cFNlZy50dWJXYWxsVGhpY2tuZXNzO1xyXG4gICAgICAgICAgaWYgKHRoaWNrbmVzcyA9PT0gY2hpbGRUaGlja25lc3MpIHtcclxuICAgICAgICAgICAgLy8g6K+l5p2G5Lu255qE6K+l5q615aOB5Y6a55u45ZCMLlxyXG4gICAgICAgICAgICBncnVwU2VnLnN0YXJ0Q29sb3IgPSBzdGFydENvbG9yO1xyXG4gICAgICAgICAgICBncnVwU2VnLmVuZENvbG9yID0gZW5kQ29sb3I7XHJcbiAgICAgICAgICAgIGlmICghZ3J1cEhhc0FkZGVkKSB7XHJcbiAgICAgICAgICAgICAgZ3J1cHMucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZ3J1cEhhc0FkZGVkID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgICAgZ3J1cFNlZy5zZWN0aW9uICYmXHJcbiAgICAgICAgICBncnVwU2VnLnNlY3Rpb24uY3Jvc3NTZWN0aW9uVHlwZSA9PT0gXCJUdWJcIlxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgLy9cclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiVHViXCIpO1xyXG5cclxuICAgICAgICAgIGxldCBjaGlsZFRoaWNrbmVzcyA9IChncnVwU2VnLnNlY3Rpb24gYXMgVHViU2VjdGlvbk9iamVjdClcclxuICAgICAgICAgICAgLm91dHNpZGVXYWxsVGhpY2s7XHJcbiAgICAgICAgICBpZiAodGhpY2tuZXNzID09PSBjaGlsZFRoaWNrbmVzcykge1xyXG4gICAgICAgICAgICAvLyDor6XmnYbku7bnmoTor6XmrrXlo4Hljprnm7jlkIwuXHJcbiAgICAgICAgICAgIGdydXBTZWcuc3RhcnRDb2xvciA9IHN0YXJ0Q29sb3I7XHJcbiAgICAgICAgICAgIGdydXBTZWcuZW5kQ29sb3IgPSBlbmRDb2xvcjtcclxuICAgICAgICAgICAgaWYgKCFncnVwSGFzQWRkZWQpIHtcclxuICAgICAgICAgICAgICBncnVwcy5wdXNoKGNoaWxkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBncnVwSGFzQWRkZWQgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdydXBzLmZvckVhY2goKGdydXApID0+IHtcclxuICAgICAgZ3J1cC5zZXROZWVkVXBkYXRlKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFjdGl2ZSh2aWV3ZXI6IFZpZXdlcik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX3RoaWNrbmVzcyAhPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLnNldEdydXBDb2xvckJ5VGhpY2tuZXNzKFxyXG4gICAgICAgIHZpZXdlcixcclxuICAgICAgICB0aGlzLnRoaWNrbmVzcyxcclxuICAgICAgICB0aGlzLmNvbG9yLFxyXG4gICAgICAgIHRoaXMuY29sb3JcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiQ29sb3JEaXZHcnVwVGhpY2tuZXNzT2JqZWN0IGVycm9yXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5hY3RpdmUodmlld2VyOiBWaWV3ZXIpIHtcclxuICAgIC8vXHJcbiAgICB0aGlzLnNldEdydXBDb2xvckJ5VGhpY2tuZXNzKHZpZXdlciwgdGhpcy50aGlja25lc3MsIG51bGwsIG51bGwpO1xyXG4gIH1cclxufVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFPQTtBQUFBO0FBNEJBO0FBQUE7QUEzQkE7QUFFQTtBQUNBO0FBMkJBOztBQUNBO0FBdkJBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBOzs7O0FBS0E7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7Ozs7QUFRQTtBQUNBO0FBRUE7QUFDQTs7QUFHQTtBQUNBOztBQUdBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBR0E7QUFDQTs7QUFFQTtBQUVBO0FBT0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUtBO0FBRUE7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOzs7OztBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBTUE7QUFDQTs7QUFFQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFySUE7O0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./packages/caeDesign/src/gsDevFx/objects/pretreatmentObjects/colorDivGrupThicknessObject.ts\n");
5024
+ eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\"), __webpack_require__(/*! ../instancesObjects/instanceRenderObject */ \"./packages/caeDesign/src/gsDevFx/objects/instancesObjects/instanceRenderObject.ts\"), __webpack_require__(/*! ./colorDivBaseObject */ \"./packages/caeDesign/src/gsDevFx/objects/pretreatmentObjects/colorDivBaseObject.ts\")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, tslib_1, instanceRenderObject_1, colorDivBaseObject_1) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.ColorDivGrupThicknessObject = void 0;\n var ColorDivGrupThicknessObject = function (_super) {\n tslib_1.__extends(ColorDivGrupThicknessObject, _super);\n function ColorDivGrupThicknessObject() {\n var _this = _super.call(this) || this;\n _this.typeName = \"ColorDivGrupThicknessObject\";\n _this._thickness = null;\n _this._color = null;\n _this.instanceTypes.add(\"main\", instanceRenderObject_1.InstanceRenderObject.prototype);\n return _this;\n }\n Object.defineProperty(ColorDivGrupThicknessObject.prototype, \"thickness\", {\n get: function get() {\n return this._thickness;\n },\n set: function set(value) {\n this._thickness = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(ColorDivGrupThicknessObject.prototype, \"color\", {\n get: function get() {\n return this._color;\n },\n set: function set(value) {\n this._color = value;\n },\n enumerable: false,\n configurable: true\n });\n ColorDivGrupThicknessObject.prototype.serialize = function () {\n var obj = _super.prototype.serialize.call(this);\n if (this.thickness !== null) {\n obj.thickness = this.thickness;\n }\n if (this.color) {\n obj.color = this.color;\n }\n return obj;\n };\n ColorDivGrupThicknessObject.prototype.deserialize = function (obj, pm) {\n _super.prototype.deserialize.call(this, obj, pm);\n if (obj.thickness) {\n this._thickness = obj.thickness;\n } else {\n this._thickness = 0;\n }\n if (obj.color) {\n this.color = obj.color;\n }\n };\n ColorDivGrupThicknessObject.prototype.setGrupColorByThickness = function (viewer, thickness, startColor, endColor) {\n var grups = new Array();\n var grupRendenObject = viewer.process.caeRenderObjectTreeManager.grupNode;\n for (var i = 0; i < grupRendenObject.childObjects.length; i++) {\n var child = grupRendenObject.childObjects[i];\n for (var j = 0; j < child.grupSegments.length; j++) {\n var grupHasAdded = false;\n var grupSeg = child.grupSegments[j];\n if (!grupSeg.section) {\n var childThickness = grupSeg.tubWallThickness;\n if (thickness === childThickness) {\n grupSeg.startColor = startColor;\n grupSeg.endColor = endColor;\n if (!grupHasAdded) {\n grups.push(child);\n }\n grupHasAdded = true;\n }\n } else if (grupSeg.section && grupSeg.section.crossSectionType === \"TUB\") {\n console.log(\"Tub\");\n var childThickness = grupSeg.section.outsideWallThick;\n if (thickness === childThickness) {\n grupSeg.startColor = startColor;\n grupSeg.endColor = endColor;\n if (!grupHasAdded) {\n grups.push(child);\n }\n grupHasAdded = true;\n }\n }\n }\n }\n grups.forEach(function (grup) {\n grup.setNeedUpdate();\n });\n };\n ColorDivGrupThicknessObject.prototype.active = function (viewer) {\n if (this._thickness !== null) {\n this.setGrupColorByThickness(viewer, this.thickness, this.color, this.color);\n } else {\n console.log(\"ColorDivGrupThicknessObject error\");\n }\n };\n ColorDivGrupThicknessObject.prototype.inactive = function (viewer) {\n this.setGrupColorByThickness(viewer, this.thickness, null, null);\n };\n return ColorDivGrupThicknessObject;\n }(colorDivBaseObject_1.ColorDivBaseObject);\n exports.ColorDivGrupThicknessObject = ColorDivGrupThicknessObject;\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL2dzRGV2Rngvb2JqZWN0cy9wcmV0cmVhdG1lbnRPYmplY3RzL2NvbG9yRGl2R3J1cFRoaWNrbmVzc09iamVjdC50cy5qcyIsInNvdXJjZXMiOlsid2VicGFjazovL1tuYW1lXS8uL3BhY2thZ2VzL2NhZURlc2lnbi9zcmMvZ3NEZXZGeC9vYmplY3RzL3ByZXRyZWF0bWVudE9iamVjdHMvY29sb3JEaXZHcnVwVGhpY2tuZXNzT2JqZWN0LnRzPzZmZjEiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmlld2VyIH0gZnJvbSBcIi4uLy4uL3ZpZXdlclwiO1xyXG5pbXBvcnQgeyBMb25nYW4gfSBmcm9tIFwiZ3MtYmltLWFpclwiO1xyXG5pbXBvcnQgeyBHcnVwT2JqZWN0IH0gZnJvbSBcIi4uL2NhZU9iamVjdHMvZ3J1cE9iamVjdFwiO1xyXG5pbXBvcnQgeyBJbnN0YW5jZVJlbmRlck9iamVjdCB9IGZyb20gXCIuLi9pbnN0YW5jZXNPYmplY3RzL2luc3RhbmNlUmVuZGVyT2JqZWN0XCI7XHJcbmltcG9ydCB7IENvbG9yRGl2QmFzZU9iamVjdCB9IGZyb20gXCIuL2NvbG9yRGl2QmFzZU9iamVjdFwiO1xyXG5pbXBvcnQgeyBUdWJTZWN0aW9uT2JqZWN0IH0gZnJvbSBcIi4uL2NhZU9iamVjdHMvc2VjdGlvbnMvdHViU2VjdGlvbk9iamVjdFwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIENvbG9yRGl2R3J1cFRoaWNrbmVzc09iamVjdCBleHRlbmRzIENvbG9yRGl2QmFzZU9iamVjdCB7XHJcbiAgcHVibGljIHR5cGVOYW1lID0gXCJDb2xvckRpdkdydXBUaGlja25lc3NPYmplY3RcIjtcclxuXHJcbiAgcHJpdmF0ZSBfdGhpY2tuZXNzOiBudW1iZXIgPSBudWxsO1xyXG4gIHByaXZhdGUgX2NvbG9yOiBudW1iZXJbXSA9IG51bGw7XHJcblxyXG4gIC8qKlxyXG4gICAqIOWchueuoeWjgeWOmlxyXG4gICAqL1xyXG4gIGdldCB0aGlja25lc3MoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdGhpY2tuZXNzO1xyXG4gIH1cclxuXHJcbiAgc2V0IHRoaWNrbmVzcyh2YWx1ZSkge1xyXG4gICAgdGhpcy5fdGhpY2tuZXNzID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiAwLTFcclxuICAgKi9cclxuICBnZXQgY29sb3IoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29sb3I7XHJcbiAgfVxyXG5cclxuICBzZXQgY29sb3IodmFsdWUpIHtcclxuICAgIHRoaXMuX2NvbG9yID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG5cclxuICAgIHRoaXMuaW5zdGFuY2VUeXBlcy5hZGQoXCJtYWluXCIsIEluc3RhbmNlUmVuZGVyT2JqZWN0LnByb3RvdHlwZSk7XHJcbiAgfVxyXG5cclxuICBzZXJpYWxpemUoKSB7XHJcbiAgICBsZXQgb2JqID0gc3VwZXIuc2VyaWFsaXplKCk7XHJcblxyXG4gICAgaWYgKHRoaXMudGhpY2tuZXNzICE9PSBudWxsKSB7XHJcbiAgICAgIG9iai50aGlja25lc3MgPSB0aGlzLnRoaWNrbmVzcztcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5jb2xvcikge1xyXG4gICAgICBvYmouY29sb3IgPSB0aGlzLmNvbG9yO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBvYmo7XHJcbiAgfVxyXG5cclxuICBkZXNlcmlhbGl6ZShvYmo6IGFueSwgcG0/OiBMb25nYW4uUGVyc2lzdGVuY2VNYW5hZ2VyKTogdm9pZCB7XHJcbiAgICBzdXBlci5kZXNlcmlhbGl6ZShvYmosIHBtKTtcclxuXHJcbiAgICBpZiAob2JqLnRoaWNrbmVzcykge1xyXG4gICAgICB0aGlzLl90aGlja25lc3MgPSBvYmoudGhpY2tuZXNzO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fdGhpY2tuZXNzID0gMDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAob2JqLmNvbG9yKSB7XHJcbiAgICAgIHRoaXMuY29sb3IgPSBvYmouY29sb3I7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRHcnVwQ29sb3JCeVRoaWNrbmVzcyhcclxuICAgIHZpZXdlcjogVmlld2VyLFxyXG4gICAgdGhpY2tuZXNzOiBudW1iZXIsXHJcbiAgICBzdGFydENvbG9yOiBudW1iZXJbXSxcclxuICAgIGVuZENvbG9yOiBudW1iZXJbXVxyXG4gICkge1xyXG4gICAgLy9cclxuICAgIGxldCBncnVwcyA9IG5ldyBBcnJheTxHcnVwT2JqZWN0PigpO1xyXG5cclxuICAgIGxldCBncnVwUmVuZGVuT2JqZWN0ID0gdmlld2VyLnByb2Nlc3MuY2FlUmVuZGVyT2JqZWN0VHJlZU1hbmFnZXIuZ3J1cE5vZGU7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdydXBSZW5kZW5PYmplY3QuY2hpbGRPYmplY3RzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBjaGlsZCA9IGdydXBSZW5kZW5PYmplY3QuY2hpbGRPYmplY3RzW2ldIGFzIEdydXBPYmplY3Q7XHJcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgY2hpbGQuZ3J1cFNlZ21lbnRzLmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgbGV0IGdydXBIYXNBZGRlZCA9IGZhbHNlO1xyXG4gICAgICAgIGxldCBncnVwU2VnID0gY2hpbGQuZ3J1cFNlZ21lbnRzW2pdO1xyXG4gICAgICAgIGlmICghZ3J1cFNlZy5zZWN0aW9uKSB7XHJcbiAgICAgICAgICAvL1xyXG4gICAgICAgICAgbGV0IGNoaWxkVGhpY2tuZXNzID0gZ3J1cFNlZy50dWJXYWxsVGhpY2tuZXNzO1xyXG4gICAgICAgICAgaWYgKHRoaWNrbmVzcyA9PT0gY2hpbGRUaGlja25lc3MpIHtcclxuICAgICAgICAgICAgLy8g6K+l5p2G5Lu255qE6K+l5q615aOB5Y6a55u45ZCMLlxyXG4gICAgICAgICAgICBncnVwU2VnLnN0YXJ0Q29sb3IgPSBzdGFydENvbG9yO1xyXG4gICAgICAgICAgICBncnVwU2VnLmVuZENvbG9yID0gZW5kQ29sb3I7XHJcbiAgICAgICAgICAgIGlmICghZ3J1cEhhc0FkZGVkKSB7XHJcbiAgICAgICAgICAgICAgZ3J1cHMucHVzaChjaGlsZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZ3J1cEhhc0FkZGVkID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgICAgZ3J1cFNlZy5zZWN0aW9uICYmXHJcbiAgICAgICAgICBncnVwU2VnLnNlY3Rpb24uY3Jvc3NTZWN0aW9uVHlwZSA9PT0gXCJUVUJcIlxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgLy9cclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiVHViXCIpO1xyXG5cclxuICAgICAgICAgIGxldCBjaGlsZFRoaWNrbmVzcyA9IChncnVwU2VnLnNlY3Rpb24gYXMgVHViU2VjdGlvbk9iamVjdClcclxuICAgICAgICAgICAgLm91dHNpZGVXYWxsVGhpY2s7XHJcbiAgICAgICAgICBpZiAodGhpY2tuZXNzID09PSBjaGlsZFRoaWNrbmVzcykge1xyXG4gICAgICAgICAgICAvLyDor6XmnYbku7bnmoTor6XmrrXlo4Hljprnm7jlkIwuXHJcbiAgICAgICAgICAgIGdydXBTZWcuc3RhcnRDb2xvciA9IHN0YXJ0Q29sb3I7XHJcbiAgICAgICAgICAgIGdydXBTZWcuZW5kQ29sb3IgPSBlbmRDb2xvcjtcclxuICAgICAgICAgICAgaWYgKCFncnVwSGFzQWRkZWQpIHtcclxuICAgICAgICAgICAgICBncnVwcy5wdXNoKGNoaWxkKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBncnVwSGFzQWRkZWQgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdydXBzLmZvckVhY2goKGdydXApID0+IHtcclxuICAgICAgZ3J1cC5zZXROZWVkVXBkYXRlKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFjdGl2ZSh2aWV3ZXI6IFZpZXdlcik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX3RoaWNrbmVzcyAhPT0gbnVsbCkge1xyXG4gICAgICB0aGlzLnNldEdydXBDb2xvckJ5VGhpY2tuZXNzKFxyXG4gICAgICAgIHZpZXdlcixcclxuICAgICAgICB0aGlzLnRoaWNrbmVzcyxcclxuICAgICAgICB0aGlzLmNvbG9yLFxyXG4gICAgICAgIHRoaXMuY29sb3JcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiQ29sb3JEaXZHcnVwVGhpY2tuZXNzT2JqZWN0IGVycm9yXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5hY3RpdmUodmlld2VyOiBWaWV3ZXIpIHtcclxuICAgIC8vXHJcbiAgICB0aGlzLnNldEdydXBDb2xvckJ5VGhpY2tuZXNzKHZpZXdlciwgdGhpcy50aGlja25lc3MsIG51bGwsIG51bGwpO1xyXG4gIH1cclxufVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFPQTtBQUFBO0FBNEJBO0FBQUE7QUEzQkE7QUFFQTtBQUNBO0FBMkJBOztBQUNBO0FBdkJBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBOzs7O0FBS0E7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7Ozs7QUFRQTtBQUNBO0FBRUE7QUFDQTs7QUFHQTtBQUNBOztBQUdBO0FBQ0E7QUFFQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBR0E7QUFDQTs7QUFFQTtBQUVBO0FBT0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUtBO0FBRUE7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOzs7OztBQU1BO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBTUE7QUFDQTs7QUFFQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQUE7QUFySUE7O0EiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./packages/caeDesign/src/gsDevFx/objects/pretreatmentObjects/colorDivGrupThicknessObject.ts\n");
5025
5025
 
5026
5026
  /***/ }),
5027
5027
 
@@ -7413,7 +7413,7 @@ eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPAC
7413
7413
  /*! no static exports found */
7414
7414
  /***/ (function(module, exports, __webpack_require__) {
7415
7415
 
7416
- eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\"), __webpack_require__(/*! ../../../../gsDevFx/propertyComponents/config */ \"./packages/caeDesign/src/gsDevFx/propertyComponents/config.ts\"), __webpack_require__(/*! ../../../../gsDevFx/propertyComponents/propertyComponent */ \"./packages/caeDesign/src/gsDevFx/propertyComponents/propertyComponent.ts\"), __webpack_require__(/*! ../../../../gsDevFx/process */ \"./packages/caeDesign/src/gsDevFx/process.ts\")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, tslib_1, config_1, propertyComponent_1, process_1) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var ColorDivideByGrupThicknessConfig = function (_super) {\n tslib_1.__extends(ColorDivideByGrupThicknessConfig, _super);\n function ColorDivideByGrupThicknessConfig() {\n var _this = _super.call(this) || this;\n var property = new propertyComponent_1.PropertyComponent();\n property.name = \"列表\";\n property.data = {\n thicknessArray: {\n name: \"壁厚列表(cm)\",\n value: null,\n type: \"list\",\n listOptions: {\n list: []\n }\n },\n tip: {\n name: \"提示\",\n value: null\n }\n };\n _this.properties.add(property);\n var grupObjectGroup = process_1.Process.activeProcess.findRenderObjectByName(\"杆件截面组\");\n if (grupObjectGroup) {\n grupObjectGroup.childObjects.map(function (item) {\n var child = item;\n for (var i = 0; i < child.grupSegments.length; i++) {\n var grupSeg = child.grupSegments[i];\n if (!grupSeg.section) {\n var thickness = grupSeg.tubWallThickness.toString();\n var existed = false;\n var list_1 = property.data.thicknessArray.listOptions.list;\n for (var j = 0; j < list_1.length; j++) {\n if (thickness === list_1[j].label) {\n existed = true;\n break;\n }\n }\n if (!existed) {\n list_1.push({\n label: thickness,\n value: \"UnAssigned\"\n });\n }\n } else if (grupSeg.section && grupSeg.section.crossSectionType === \"Tub\") {\n var thickness = grupSeg.section.outsideWallThick.toString();\n var existed = false;\n var list_2 = property.data.thicknessArray.listOptions.list;\n for (var j = 0; j < list_2.length; j++) {\n if (thickness === list_2[j].label) {\n existed = true;\n break;\n }\n }\n if (!existed) {\n list_2.push({\n label: thickness,\n value: \"UnAssigned\"\n });\n }\n }\n }\n });\n var list = property.data.thicknessArray.listOptions.list;\n for (var i = 0; i < list.length - 1; i++) {\n for (var j = i + 1; j < list.length; j++) {\n if (Number(list[i].label) > Number(list[j].label)) {\n var temp = list[i];\n list[i] = list[j];\n list[j] = temp;\n }\n }\n }\n }\n return _this;\n }\n return ColorDivideByGrupThicknessConfig;\n }(config_1.Config);\n exports.default = ColorDivideByGrupThicknessConfig;\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL3ZpZXdlcldyYXBwZXIvY29tbWFuZHMvcHJldHJlYXRtZW50L2NvbG9yRGl2aWRlQnlHcnVwVGhpY2tuZXNzL2NvbG9yRGl2aWRlQnlHcnVwVGhpY2tuZXNzQ29uZmlnLnRzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vW25hbWVdLy4vcGFja2FnZXMvY2FlRGVzaWduL3NyYy92aWV3ZXJXcmFwcGVyL2NvbW1hbmRzL3ByZXRyZWF0bWVudC9jb2xvckRpdmlkZUJ5R3J1cFRoaWNrbmVzcy9jb2xvckRpdmlkZUJ5R3J1cFRoaWNrbmVzc0NvbmZpZy50cz9kMjIxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZpZyB9IGZyb20gXCIuLi8uLi8uLi8uLi9nc0RldkZ4L3Byb3BlcnR5Q29tcG9uZW50cy9jb25maWdcIjtcbmltcG9ydCB7IFByb3BlcnR5Q29tcG9uZW50IH0gZnJvbSBcIi4uLy4uLy4uLy4uL2dzRGV2RngvcHJvcGVydHlDb21wb25lbnRzL3Byb3BlcnR5Q29tcG9uZW50XCI7XG5pbXBvcnQgeyBQcm9jZXNzIH0gZnJvbSBcIi4uLy4uLy4uLy4uL2dzRGV2RngvcHJvY2Vzc1wiO1xuaW1wb3J0IHsgQ29sb3JQcm9wZXJ0eSB9IGZyb20gXCIuLi8uLi8uLi8uLi9nc0RldkZ4L3Byb3BlcnR5Q29tcG9uZW50cy9jb2xvclByb3BlcnR5XCI7XG5pbXBvcnQgeyBHcnVwT2JqZWN0IH0gZnJvbSBcIi4uLy4uLy4uLy4uL2dzRGV2Rngvb2JqZWN0cy9jYWVPYmplY3RzL2dydXBPYmplY3RcIjtcbmltcG9ydCB7IFR1YlNlY3Rpb25PYmplY3QgfSBmcm9tIFwiLi4vLi4vLi4vLi4vZ3NEZXZGeC9vYmplY3RzL2NhZU9iamVjdHMvc2VjdGlvbnMvdHViU2VjdGlvbk9iamVjdFwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb2xvckRpdmlkZUJ5R3J1cFRoaWNrbmVzc0NvbmZpZyBleHRlbmRzIENvbmZpZyB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICBsZXQgcHJvcGVydHkgPSBuZXcgUHJvcGVydHlDb21wb25lbnQoKTtcbiAgICBwcm9wZXJ0eS5uYW1lID0gXCLliJfooahcIjtcbiAgICBwcm9wZXJ0eS5kYXRhID0ge1xuICAgICAgdGhpY2tuZXNzQXJyYXk6IHtcbiAgICAgICAgbmFtZTogXCLlo4HljprliJfooagoY20pXCIsXG4gICAgICAgIHZhbHVlOiBudWxsLFxuICAgICAgICB0eXBlOiBcImxpc3RcIixcbiAgICAgICAgbGlzdE9wdGlvbnM6IHtcbiAgICAgICAgICAvLyBsYWJlbDogdGhpY2tuZXNzXG4gICAgICAgICAgLy8gdmFsdWU6IGNvbG9yQXJyYXkoMC0xKVxuICAgICAgICAgIGxpc3Q6IFtdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHRpcDoge1xuICAgICAgICBuYW1lOiBcIuaPkOekulwiLFxuICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgIH0sXG4gICAgfTtcbiAgICB0aGlzLnByb3BlcnRpZXMuYWRkKHByb3BlcnR5KTtcblxuICAgIGxldCBncnVwT2JqZWN0R3JvdXAgPVxuICAgICAgUHJvY2Vzcy5hY3RpdmVQcm9jZXNzLmZpbmRSZW5kZXJPYmplY3RCeU5hbWUoXCLmnYbku7bmiKrpnaLnu4RcIik7XG4gICAgaWYgKGdydXBPYmplY3RHcm91cCkge1xuICAgICAgZ3J1cE9iamVjdEdyb3VwLmNoaWxkT2JqZWN0cy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgbGV0IGNoaWxkID0gaXRlbSBhcyBHcnVwT2JqZWN0O1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNoaWxkLmdydXBTZWdtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGxldCBncnVwU2VnID0gY2hpbGQuZ3J1cFNlZ21lbnRzW2ldO1xuICAgICAgICAgIGlmICghZ3J1cFNlZy5zZWN0aW9uKSB7XG4gICAgICAgICAgICBsZXQgdGhpY2tuZXNzID0gZ3J1cFNlZy50dWJXYWxsVGhpY2tuZXNzLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICBsZXQgZXhpc3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgbGV0IGxpc3QgPSBwcm9wZXJ0eS5kYXRhLnRoaWNrbmVzc0FycmF5Lmxpc3RPcHRpb25zLmxpc3Q7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGxpc3QubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgaWYgKHRoaWNrbmVzcyA9PT0gbGlzdFtqXS5sYWJlbCkge1xuICAgICAgICAgICAgICAgIGV4aXN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghZXhpc3RlZCkge1xuICAgICAgICAgICAgICBsaXN0LnB1c2goe1xuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlja25lc3MsXG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiVW5Bc3NpZ25lZFwiLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgZ3J1cFNlZy5zZWN0aW9uICYmXG4gICAgICAgICAgICBncnVwU2VnLnNlY3Rpb24uY3Jvc3NTZWN0aW9uVHlwZSA9PT0gXCJUdWJcIlxuICAgICAgICAgICkge1xuICAgICAgICAgICAgbGV0IHRoaWNrbmVzcyA9IChcbiAgICAgICAgICAgICAgZ3J1cFNlZy5zZWN0aW9uIGFzIFR1YlNlY3Rpb25PYmplY3RcbiAgICAgICAgICAgICkub3V0c2lkZVdhbGxUaGljay50b1N0cmluZygpO1xuICAgICAgICAgICAgbGV0IGV4aXN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGxldCBsaXN0ID0gcHJvcGVydHkuZGF0YS50aGlja25lc3NBcnJheS5saXN0T3B0aW9ucy5saXN0O1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBsaXN0Lmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgIGlmICh0aGlja25lc3MgPT09IGxpc3Rbal0ubGFiZWwpIHtcbiAgICAgICAgICAgICAgICBleGlzdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIWV4aXN0ZWQpIHtcbiAgICAgICAgICAgICAgLy9cbiAgICAgICAgICAgICAgbGlzdC5wdXNoKHtcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpY2tuZXNzLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBcIlVuQXNzaWduZWRcIixcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgLy8g5o6S5bqPXG4gICAgICBsZXQgbGlzdCA9IHByb3BlcnR5LmRhdGEudGhpY2tuZXNzQXJyYXkubGlzdE9wdGlvbnMubGlzdDtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgICAgZm9yIChsZXQgaiA9IGkgKyAxOyBqIDwgbGlzdC5sZW5ndGg7IGorKykge1xuICAgICAgICAgIGlmIChOdW1iZXIobGlzdFtpXS5sYWJlbCkgPiBOdW1iZXIobGlzdFtqXS5sYWJlbCkpIHtcbiAgICAgICAgICAgIGxldCB0ZW1wID0gbGlzdFtpXTtcbiAgICAgICAgICAgIGxpc3RbaV0gPSBsaXN0W2pdO1xuICAgICAgICAgICAgbGlzdFtqXSA9IHRlbXA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQU9BO0FBQUE7QUFDQTtBQUFBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBSUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUlBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7Ozs7QUFJQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUFLQTtBQUNBO0FBQUE7OztBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./packages/caeDesign/src/viewerWrapper/commands/pretreatment/colorDivideByGrupThickness/colorDivideByGrupThicknessConfig.ts\n");
7416
+ eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__, exports, __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\"), __webpack_require__(/*! ../../../../gsDevFx/propertyComponents/config */ \"./packages/caeDesign/src/gsDevFx/propertyComponents/config.ts\"), __webpack_require__(/*! ../../../../gsDevFx/propertyComponents/propertyComponent */ \"./packages/caeDesign/src/gsDevFx/propertyComponents/propertyComponent.ts\"), __webpack_require__(/*! ../../../../gsDevFx/process */ \"./packages/caeDesign/src/gsDevFx/process.ts\")], __WEBPACK_AMD_DEFINE_RESULT__ = (function (require, exports, tslib_1, config_1, propertyComponent_1, process_1) {\n \"use strict\";\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var ColorDivideByGrupThicknessConfig = function (_super) {\n tslib_1.__extends(ColorDivideByGrupThicknessConfig, _super);\n function ColorDivideByGrupThicknessConfig() {\n var _this = _super.call(this) || this;\n var property = new propertyComponent_1.PropertyComponent();\n property.name = \"列表\";\n property.data = {\n thicknessArray: {\n name: \"壁厚列表(cm)\",\n value: null,\n type: \"list\",\n listOptions: {\n list: []\n }\n },\n tip: {\n name: \"提示\",\n value: null\n }\n };\n _this.properties.add(property);\n var grupObjectGroup = process_1.Process.activeProcess.findRenderObjectByName(\"杆件截面组\");\n if (grupObjectGroup) {\n grupObjectGroup.childObjects.map(function (item) {\n var child = item;\n for (var i = 0; i < child.grupSegments.length; i++) {\n var grupSeg = child.grupSegments[i];\n if (!grupSeg.section) {\n var thickness = grupSeg.tubWallThickness.toString();\n var existed = false;\n var list_1 = property.data.thicknessArray.listOptions.list;\n for (var j = 0; j < list_1.length; j++) {\n if (thickness === list_1[j].label) {\n existed = true;\n break;\n }\n }\n if (!existed) {\n list_1.push({\n label: thickness,\n value: \"UnAssigned\"\n });\n }\n } else if (grupSeg.section && grupSeg.section.crossSectionType === \"TUB\") {\n var thickness = grupSeg.section.outsideWallThick.toString();\n var existed = false;\n var list_2 = property.data.thicknessArray.listOptions.list;\n for (var j = 0; j < list_2.length; j++) {\n if (thickness === list_2[j].label) {\n existed = true;\n break;\n }\n }\n if (!existed) {\n list_2.push({\n label: thickness,\n value: \"UnAssigned\"\n });\n }\n }\n }\n });\n var list = property.data.thicknessArray.listOptions.list;\n for (var i = 0; i < list.length - 1; i++) {\n for (var j = i + 1; j < list.length; j++) {\n if (Number(list[i].label) > Number(list[j].label)) {\n var temp = list[i];\n list[i] = list[j];\n list[j] = temp;\n }\n }\n }\n }\n return _this;\n }\n return ColorDivideByGrupThicknessConfig;\n }(config_1.Config);\n exports.default = ColorDivideByGrupThicknessConfig;\n}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9wYWNrYWdlcy9jYWVEZXNpZ24vc3JjL3ZpZXdlcldyYXBwZXIvY29tbWFuZHMvcHJldHJlYXRtZW50L2NvbG9yRGl2aWRlQnlHcnVwVGhpY2tuZXNzL2NvbG9yRGl2aWRlQnlHcnVwVGhpY2tuZXNzQ29uZmlnLnRzLmpzIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vW25hbWVdLy4vcGFja2FnZXMvY2FlRGVzaWduL3NyYy92aWV3ZXJXcmFwcGVyL2NvbW1hbmRzL3ByZXRyZWF0bWVudC9jb2xvckRpdmlkZUJ5R3J1cFRoaWNrbmVzcy9jb2xvckRpdmlkZUJ5R3J1cFRoaWNrbmVzc0NvbmZpZy50cz9kMjIxIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZpZyB9IGZyb20gXCIuLi8uLi8uLi8uLi9nc0RldkZ4L3Byb3BlcnR5Q29tcG9uZW50cy9jb25maWdcIjtcbmltcG9ydCB7IFByb3BlcnR5Q29tcG9uZW50IH0gZnJvbSBcIi4uLy4uLy4uLy4uL2dzRGV2RngvcHJvcGVydHlDb21wb25lbnRzL3Byb3BlcnR5Q29tcG9uZW50XCI7XG5pbXBvcnQgeyBQcm9jZXNzIH0gZnJvbSBcIi4uLy4uLy4uLy4uL2dzRGV2RngvcHJvY2Vzc1wiO1xuaW1wb3J0IHsgQ29sb3JQcm9wZXJ0eSB9IGZyb20gXCIuLi8uLi8uLi8uLi9nc0RldkZ4L3Byb3BlcnR5Q29tcG9uZW50cy9jb2xvclByb3BlcnR5XCI7XG5pbXBvcnQgeyBHcnVwT2JqZWN0IH0gZnJvbSBcIi4uLy4uLy4uLy4uL2dzRGV2Rngvb2JqZWN0cy9jYWVPYmplY3RzL2dydXBPYmplY3RcIjtcbmltcG9ydCB7IFR1YlNlY3Rpb25PYmplY3QgfSBmcm9tIFwiLi4vLi4vLi4vLi4vZ3NEZXZGeC9vYmplY3RzL2NhZU9iamVjdHMvc2VjdGlvbnMvdHViU2VjdGlvbk9iamVjdFwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb2xvckRpdmlkZUJ5R3J1cFRoaWNrbmVzc0NvbmZpZyBleHRlbmRzIENvbmZpZyB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICBsZXQgcHJvcGVydHkgPSBuZXcgUHJvcGVydHlDb21wb25lbnQoKTtcbiAgICBwcm9wZXJ0eS5uYW1lID0gXCLliJfooahcIjtcbiAgICBwcm9wZXJ0eS5kYXRhID0ge1xuICAgICAgdGhpY2tuZXNzQXJyYXk6IHtcbiAgICAgICAgbmFtZTogXCLlo4HljprliJfooagoY20pXCIsXG4gICAgICAgIHZhbHVlOiBudWxsLFxuICAgICAgICB0eXBlOiBcImxpc3RcIixcbiAgICAgICAgbGlzdE9wdGlvbnM6IHtcbiAgICAgICAgICAvLyBsYWJlbDogdGhpY2tuZXNzXG4gICAgICAgICAgLy8gdmFsdWU6IGNvbG9yQXJyYXkoMC0xKVxuICAgICAgICAgIGxpc3Q6IFtdLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHRpcDoge1xuICAgICAgICBuYW1lOiBcIuaPkOekulwiLFxuICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgIH0sXG4gICAgfTtcbiAgICB0aGlzLnByb3BlcnRpZXMuYWRkKHByb3BlcnR5KTtcblxuICAgIGxldCBncnVwT2JqZWN0R3JvdXAgPVxuICAgICAgUHJvY2Vzcy5hY3RpdmVQcm9jZXNzLmZpbmRSZW5kZXJPYmplY3RCeU5hbWUoXCLmnYbku7bmiKrpnaLnu4RcIik7XG4gICAgaWYgKGdydXBPYmplY3RHcm91cCkge1xuICAgICAgZ3J1cE9iamVjdEdyb3VwLmNoaWxkT2JqZWN0cy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgbGV0IGNoaWxkID0gaXRlbSBhcyBHcnVwT2JqZWN0O1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNoaWxkLmdydXBTZWdtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGxldCBncnVwU2VnID0gY2hpbGQuZ3J1cFNlZ21lbnRzW2ldO1xuICAgICAgICAgIGlmICghZ3J1cFNlZy5zZWN0aW9uKSB7XG4gICAgICAgICAgICBsZXQgdGhpY2tuZXNzID0gZ3J1cFNlZy50dWJXYWxsVGhpY2tuZXNzLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICBsZXQgZXhpc3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgbGV0IGxpc3QgPSBwcm9wZXJ0eS5kYXRhLnRoaWNrbmVzc0FycmF5Lmxpc3RPcHRpb25zLmxpc3Q7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGxpc3QubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgaWYgKHRoaWNrbmVzcyA9PT0gbGlzdFtqXS5sYWJlbCkge1xuICAgICAgICAgICAgICAgIGV4aXN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghZXhpc3RlZCkge1xuICAgICAgICAgICAgICBsaXN0LnB1c2goe1xuICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlja25lc3MsXG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiVW5Bc3NpZ25lZFwiLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgZ3J1cFNlZy5zZWN0aW9uICYmXG4gICAgICAgICAgICBncnVwU2VnLnNlY3Rpb24uY3Jvc3NTZWN0aW9uVHlwZSA9PT0gXCJUVUJcIlxuICAgICAgICAgICkge1xuICAgICAgICAgICAgbGV0IHRoaWNrbmVzcyA9IChcbiAgICAgICAgICAgICAgZ3J1cFNlZy5zZWN0aW9uIGFzIFR1YlNlY3Rpb25PYmplY3RcbiAgICAgICAgICAgICkub3V0c2lkZVdhbGxUaGljay50b1N0cmluZygpO1xuICAgICAgICAgICAgbGV0IGV4aXN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGxldCBsaXN0ID0gcHJvcGVydHkuZGF0YS50aGlja25lc3NBcnJheS5saXN0T3B0aW9ucy5saXN0O1xuICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBsaXN0Lmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgIGlmICh0aGlja25lc3MgPT09IGxpc3Rbal0ubGFiZWwpIHtcbiAgICAgICAgICAgICAgICBleGlzdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIWV4aXN0ZWQpIHtcbiAgICAgICAgICAgICAgLy9cbiAgICAgICAgICAgICAgbGlzdC5wdXNoKHtcbiAgICAgICAgICAgICAgICBsYWJlbDogdGhpY2tuZXNzLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBcIlVuQXNzaWduZWRcIixcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgLy8g5o6S5bqPXG4gICAgICBsZXQgbGlzdCA9IHByb3BlcnR5LmRhdGEudGhpY2tuZXNzQXJyYXkubGlzdE9wdGlvbnMubGlzdDtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgICAgZm9yIChsZXQgaiA9IGkgKyAxOyBqIDwgbGlzdC5sZW5ndGg7IGorKykge1xuICAgICAgICAgIGlmIChOdW1iZXIobGlzdFtpXS5sYWJlbCkgPiBOdW1iZXIobGlzdFtqXS5sYWJlbCkpIHtcbiAgICAgICAgICAgIGxldCB0ZW1wID0gbGlzdFtpXTtcbiAgICAgICAgICAgIGxpc3RbaV0gPSBsaXN0W2pdO1xuICAgICAgICAgICAgbGlzdFtqXSA9IHRlbXA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQU9BO0FBQUE7QUFDQTtBQUFBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBSUE7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUlBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7Ozs7QUFJQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7QUFLQTtBQUNBO0FBQUE7OztBIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./packages/caeDesign/src/viewerWrapper/commands/pretreatment/colorDivideByGrupThickness/colorDivideByGrupThicknessConfig.ts\n");
7417
7417
 
7418
7418
  /***/ }),
7419
7419