{"remainingRequest":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/babel-loader/lib/index.js!/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/cache-loader/dist/cjs.js??ref--1-0!/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/vue-loader/lib/index.js??vue-loader-options!/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/@abi-software/scaffoldvuer/src/components/ScaffoldVuer.vue?vue&type=script&lang=js&","dependencies":[{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/@abi-software/scaffoldvuer/src/components/ScaffoldVuer.vue","mtime":499162500000},{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/babel.config.js","mtime":1684261475125},{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/babel-loader/lib/index.js","mtime":456789000000},{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/vue-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9UYWJzMiBmcm9tICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay90YWJzLmNzcyI7CmltcG9ydCAiZWxlbWVudC11aS9saWIvdGhlbWUtY2hhbGsvYmFzZS5jc3MiOwppbXBvcnQgX1RhYnMgZnJvbSAiZWxlbWVudC11aS9saWIvdGFicyI7CmltcG9ydCBfVGFiUGFuZTIgZnJvbSAiZWxlbWVudC11aS9saWIvdGhlbWUtY2hhbGsvdGFiLXBhbmUuY3NzIjsKaW1wb3J0ICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9iYXNlLmNzcyI7CmltcG9ydCBfVGFiUGFuZSBmcm9tICJlbGVtZW50LXVpL2xpYi90YWItcGFuZSI7CmltcG9ydCBfU2xpZGVyMiBmcm9tICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9zbGlkZXIuY3NzIjsKaW1wb3J0ICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9iYXNlLmNzcyI7CmltcG9ydCBfU2xpZGVyIGZyb20gImVsZW1lbnQtdWkvbGliL3NsaWRlciI7CmltcG9ydCBfU2VsZWN0MiBmcm9tICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9zZWxlY3QuY3NzIjsKaW1wb3J0ICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9iYXNlLmNzcyI7CmltcG9ydCBfU2VsZWN0IGZyb20gImVsZW1lbnQtdWkvbGliL3NlbGVjdCI7CmltcG9ydCBfUm93MiBmcm9tICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9yb3cuY3NzIjsKaW1wb3J0ICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9iYXNlLmNzcyI7CmltcG9ydCBfUm93IGZyb20gImVsZW1lbnQtdWkvbGliL3JvdyI7CmltcG9ydCBfUG9wb3ZlcjIgZnJvbSAiZWxlbWVudC11aS9saWIvdGhlbWUtY2hhbGsvcG9wb3Zlci5jc3MiOwppbXBvcnQgImVsZW1lbnQtdWkvbGliL3RoZW1lLWNoYWxrL2Jhc2UuY3NzIjsKaW1wb3J0IF9Qb3BvdmVyIGZyb20gImVsZW1lbnQtdWkvbGliL3BvcG92ZXIiOwppbXBvcnQgX09wdGlvbjIgZnJvbSAiZWxlbWVudC11aS9saWIvdGhlbWUtY2hhbGsvb3B0aW9uLmNzcyI7CmltcG9ydCAiZWxlbWVudC11aS9saWIvdGhlbWUtY2hhbGsvYmFzZS5jc3MiOwppbXBvcnQgX09wdGlvbiBmcm9tICJlbGVtZW50LXVpL2xpYi9vcHRpb24iOwppbXBvcnQgX0xvYWRpbmcyIGZyb20gImVsZW1lbnQtdWkvbGliL3RoZW1lLWNoYWxrL2xvYWRpbmcuY3NzIjsKaW1wb3J0ICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9iYXNlLmNzcyI7CmltcG9ydCBfTG9hZGluZyBmcm9tICJlbGVtZW50LXVpL2xpYi9sb2FkaW5nIjsKaW1wb3J0IF9Db2wyIGZyb20gImVsZW1lbnQtdWkvbGliL3RoZW1lLWNoYWxrL2NvbC5jc3MiOwppbXBvcnQgImVsZW1lbnQtdWkvbGliL3RoZW1lLWNoYWxrL2Jhc2UuY3NzIjsKaW1wb3J0IF9Db2wgZnJvbSAiZWxlbWVudC11aS9saWIvY29sIjsKaW1wb3J0IF9CdXR0b24yIGZyb20gImVsZW1lbnQtdWkvbGliL3RoZW1lLWNoYWxrL2J1dHRvbi5jc3MiOwppbXBvcnQgImVsZW1lbnQtdWkvbGliL3RoZW1lLWNoYWxrL2Jhc2UuY3NzIjsKaW1wb3J0IF9CdXR0b24gZnJvbSAiZWxlbWVudC11aS9saWIvYnV0dG9uIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuZm9yLWVhY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5udW1iZXIudG8tZml4ZWQuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuaXRlcmF0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLml0ZXJhdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLnVybC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi51cmwtc2VhcmNoLXBhcmFtcy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnB1c2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3Qua2V5cy5qcyI7Ci8qIGVzbGludC1kaXNhYmxlIG5vLWFsZXJ0LCBuby1jb25zb2xlICovCmltcG9ydCBWdWUgZnJvbSAidnVlIjsKaW1wb3J0IE9wYWNpdHlDb250cm9scyBmcm9tICIuL09wYWNpdHlDb250cm9scyI7CmltcG9ydCBTY2FmZm9sZFRvb2x0aXAgZnJvbSAiLi9TY2FmZm9sZFRvb2x0aXAiOwppbXBvcnQgVHJlZUNvbnRyb2xzIGZyb20gIi4vVHJlZUNvbnRyb2xzIjsKaW1wb3J0IHsgTWFwU3ZnSWNvbiwgTWFwU3ZnU3ByaXRlQ29sb3IgfSBmcm9tICJAYWJpLXNvZnR3YXJlL3N2Zy1zcHJpdGUiOwppbXBvcnQgeyBmaW5kT2JqZWN0c1dpdGhOYW1lcywgZ2V0T2JqZWN0c0Zyb21Bbm5vdGF0aW9ucyB9IGZyb20gIi4uL3NjcmlwdHMvdXRpbGl0aWVzLmpzIjsKaW1wb3J0IHsgU2VhcmNoSW5kZXggfSBmcm9tICIuLi9zY3JpcHRzL3NlYXJjaC5qcyI7CmltcG9ydCBsYW5nIGZyb20gImVsZW1lbnQtdWkvbGliL2xvY2FsZS9sYW5nL2VuIjsKaW1wb3J0IGxvY2FsZSBmcm9tICJlbGVtZW50LXVpL2xpYi9sb2NhbGUiOwpsb2NhbGUudXNlKGxhbmcpOwpWdWUudXNlKF9CdXR0b24pOwpWdWUudXNlKF9Db2wpOwpWdWUudXNlKF9Mb2FkaW5nLmRpcmVjdGl2ZSk7ClZ1ZS51c2UoX09wdGlvbik7ClZ1ZS51c2UoX1BvcG92ZXIpOwpWdWUudXNlKF9Sb3cpOwpWdWUudXNlKF9TZWxlY3QpOwpWdWUudXNlKF9TbGlkZXIpOwpWdWUudXNlKF9UYWJQYW5lKTsKVnVlLnVzZShfVGFicyk7CnZhciBPcmdhbnNWaWV3ZXIgPSByZXF1aXJlKCIuLi9zY3JpcHRzL29yZ2Fuc1JlbmRlcmVyIikuT3JnYW5zVmlld2VyOwp2YXIgRXZlbnROb3RpZmllciA9IHJlcXVpcmUoIi4uL3NjcmlwdHMvZXZlbnROb3RpZmllciIpLkV2ZW50Tm90aWZpZXI7CgovKioNCiAqIEEgdnVlIGNvbXBvbmVudCBvZiB0aGUgc2NhZmZvbGQgdmlld2VyLg0KICoNCiAqIEByZXF1aXJlcyAuL09wYWNpdHlDb250cm9scy52dWUNCiAqIEByZXF1aXJlcyAuL1RyZWVDb250cm9scy52dWUNCiAqLwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogIlNjYWZmb2xkVnVlciIsCiAgY29tcG9uZW50czogewogICAgTWFwU3ZnSWNvbjogTWFwU3ZnSWNvbiwKICAgIE1hcFN2Z1Nwcml0ZUNvbG9yOiBNYXBTdmdTcHJpdGVDb2xvciwKICAgIE9wYWNpdHlDb250cm9sczogT3BhY2l0eUNvbnRyb2xzLAogICAgU2NhZmZvbGRUb29sdGlwOiBTY2FmZm9sZFRvb2x0aXAsCiAgICBUcmVlQ29udHJvbHM6IFRyZWVDb250cm9scwogIH0sCiAgcHJvcHM6IHsKICAgIC8qKg0KICAgICAqIFVSTCBvZiB0aGUgemluY2pzIG1ldGFkYXRhLiBUaGlzIHZhbHVlIHdpbGwgYmUgaWdub3JlZCBpZiBhIHZhbGlkDQogICAgICogc3RhdGUgcHJvcCBpcyBhbHNvIHByb3ZpZGVkLg0KICAgICAqIElmIHRoZSB1cmwgbmVlZHMgdG8gYmUgdXBkYXRlZCB3aXRoIHN0YXRlIHByZXNlbnQsIHBsZWFzZSB1c2UNCiAgICAgKiB0aGUgc2V0VVJMIG1ldGhvZC4NCiAgICAgKi8KICAgIHVybDogewogICAgICB0eXBlOiBTdHJpbmcsCiAgICAgIGRlZmF1bHQ6ICIiCiAgICB9LAogICAgLyoqDQogICAgICogU2hvdyB0aGUgY29sb3VyIGNvbnRyb2wgb2Ygc2V0IHRvIHRydWUuDQogICAgICovCiAgICBzaG93Q29sb3VyUGlja2VyOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICB9LAogICAgLyoqDQogICAgICogRmxhZyB0byBzaG93L2hpZGUgdGhlIFVJLg0KICAgICAqLwogICAgZGlzcGxheVVJOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IHRydWUKICAgIH0sCiAgICAvKioNCiAgICAgKiBEaXNwbGF5IGFsbCBncmFwaGljcyBhdCBzdGFydC4NCiAgICAgKg0KICAgICAqIFRoaXMgc2V0dGluZyBvbmx5IHdvcmtzIHdoZW4gdHJhZGl0aW9uYWwgaXMgc2V0IHRvIGZhbHNlLg0KICAgICAqLwogICAgZGlzcGxheUF0U3RhcnRVcDogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiB0cnVlCiAgICB9LAogICAgLyoqDQogICAgICogVXNlIGZvciB0b2dnbGluZyB0aGUgaGVscCB0b29sdGlwcy4NCiAgICAgKi8KICAgIGhlbHBNb2RlOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICB9LAogICAgLyoqDQogICAgICogVXNlIGZvciBzaG93L2Rpc3BsYXkgYmV0YSB3YXJuaW5nIGljb24uDQogICAgICovCiAgICBkaXNwbGF5V2FybmluZzogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiB0cnVlCiAgICB9LAogICAgLyoqDQogICAgICogV2FybmluZyBtZXNzYWdlIGZvciB0aGUgaG92ZXJlZCBvdmVyIHRleHQNCiAgICAgKiBvbiB0aGUgd2FybmluZyBpY29uLg0KICAgICAqLwogICAgd2FybmluZ01lc3NhZ2U6IHsKICAgICAgdHlwZTogU3RyaW5nLAogICAgICBkZWZhdWx0OiAiQmV0YSBmZWF0dXJlIC0gdW5kZXIgYWN0aXZlIGRldmVsb3BtZW50IgogICAgfSwKICAgIGRpc3BsYXlMYXRlc3RDaGFuZ2VzOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICB9LAogICAgbGF0ZXN0Q2hhbmdlc01lc3NhZ2U6IHsKICAgICAgdHlwZTogU3RyaW5nLAogICAgICBkZWZhdWx0OiAiTmV3IGZlYXR1cmUgLSBMb2NhbCBzZWFyY2ggaXMgbm93IGF2YWlsYWJsZSIKICAgIH0sCiAgICAvKioNCiAgICAgKiBTaG93L2hpZGUgcGlja2FibGUgbWFya2VycyBmb3IgcmVnaW9ucy4NCiAgICAgKi8KICAgIGRpc3BsYXlNYXJrZXJzOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICB9LAogICAgbWFya2VyTGFiZWxzOiB7CiAgICAgIHR5cGU6IEFycmF5LAogICAgICBkZWZhdWx0OiBmdW5jdGlvbiBfZGVmYXVsdCgpIHsKICAgICAgICByZXR1cm4gW107CiAgICAgIH0KICAgIH0sCiAgICAvKioNCiAgICAgKiBTaG93L2hpZGUgbWluaW1hcC4NCiAgICAgKi8KICAgIGRpc3BsYXlNaW5pbWFwOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICB9LAogICAgLyoqDQogICAgICogRm9ybWF0IG9mIHRoZSBpbnB1dCBVUkwNCiAgICAgKi8KICAgIGZvcm1hdDogewogICAgICB0eXBlOiBTdHJpbmcsCiAgICAgIGRlZmF1bHQ6ICJtZXRhZGF0YSIKICAgIH0sCiAgICAvKioNCiAgICAgKiBTZXR0aW5ncyBmb3IgbWluaW1hcCBwb3NpdGlvbiwgc2l6ZSBhbmQgYWxpZ25tZW50Lg0KICAgICAqLwogICAgbWluaW1hcFNldHRpbmdzOiB7CiAgICAgIHR5cGU6IE9iamVjdCwKICAgICAgZGVmYXVsdDogZnVuY3Rpb24gX2RlZmF1bHQoKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgIHhfb2Zmc2V0OiAxNiwKICAgICAgICAgIHlfb2Zmc2V0OiAxNiwKICAgICAgICAgIHdpZHRoOiAxMjgsCiAgICAgICAgICBoZWlnaHQ6IDEyOCwKICAgICAgICAgIGFsaWduOiAidG9wLXJpZ2h0IgogICAgICAgIH07CiAgICAgIH0KICAgIH0sCiAgICAvKioNCiAgICAgKiBGbGFnIHRvIGRldGVybWluZSByYXRoZXIgb3BlbiBtYXAgVUkgc2hvdWxkIGJlDQogICAgICogcHJlc2VudGVkIG9yIG5vdC4NCiAgICAgKi8KICAgIGVuYWJsZU9wZW5NYXBVSTogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiBmYWxzZQogICAgfSwKICAgIG9wZW5NYXBPcHRpb25zOiB7CiAgICAgIHR5cGU6IEFycmF5LAogICAgICBkZWZhdWx0OiBmdW5jdGlvbiBfZGVmYXVsdCgpIHsKICAgICAgICByZXR1cm4gW3sKICAgICAgICAgIGRpc3BsYXk6ICJPcGVuIEFDIE1hcCIsCiAgICAgICAgICBrZXk6ICJBQyIKICAgICAgICB9LCB7CiAgICAgICAgICBkaXNwbGF5OiAiT3BlbiBGQyBNYXAiLAogICAgICAgICAga2V5OiAiRkMiCiAgICAgICAgfSwgewogICAgICAgICAgZGlzcGxheTogIk9wZW4gM0QgSHVtYW4gTWFwIiwKICAgICAgICAgIGtleTogIjNEIgogICAgICAgIH1dOwogICAgICB9CiAgICB9LAogICAgLyoqDQogICAgICogU3RhdGUgY29udGFpbmluZyBzdGF0ZSBvZiB0aGUgc2NhZmZvbGQuDQogICAgICovCiAgICBzdGF0ZTogewogICAgICB0eXBlOiBPYmplY3QsCiAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZAogICAgfSwKICAgIC8qKg0KICAgICAqIE9wdGlvbmFsIHByb3AgZm9yIHRoZSBuYW1lIG9mIHRoZSByZWdpb24gdG8gZm9jdXMgb24sDQogICAgICogdGhpcyBvcHRpb24gaXMgaWdub3JlZCBpZiBzdGF0ZSBvciB2aWV3VVJMIGlzIGFsc28gcHJvdmlkZWQuDQogICAgICovCiAgICByZWdpb246IHsKICAgICAgdHlwZTogU3RyaW5nLAogICAgICBkZWZhdWx0OiAiIgogICAgfSwKICAgIC8qKg0KICAgICAqIE9wdGlvbmFsIHByb3AgZm9yIGFuIFVSTCBvZiBjb250YWluaW5nIGluZm9ybWF0aW9uIG9mIGEgdmlld3BvcnQuDQogICAgICogVGhpcyBvcHRpb24gaXMgaWdub3JlZCBpZiBzdGF0ZSBpcyBhbHNvIHByb3ZpZGVkLg0KICAgICAqIEl0IHdpbGwgdXNlIHRoZSBwcm92aWRlZCBVUkwgYXMgYmFzZSBpZiBhIHJlbGF0aXZlIHBhcnRoIGlzIHByb3ZpZGVkLg0KICAgICAqLwogICAgdmlld1VSTDogewogICAgICB0eXBlOiBTdHJpbmcsCiAgICAgIGRlZmF1bHQ6ICIiCiAgICB9LAogICAgLyoqDQogICAgICogU2V0dGluZ3MgZm9yIHR1cm5pbmcgb24vb2ZmIHJlbmRlcmluZw0KICAgICAqLwogICAgcmVuZGVyOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IHRydWUKICAgIH0KICB9LAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBzY2VuZURhdGE6IHRoaXMuJG1vZHVsZS5zY2VuZURhdGEsCiAgICAgIGlzUGxheWluZzogZmFsc2UsCiAgICAgIGlzUmVhZHk6IGZhbHNlLAogICAgICAvKioNCiAgICAgICAqIFRoaXMgaXMgc2V0IHdoZW4gc2NlbmUgaXMgdHJhbnNpdGlvbmluZy4NCiAgICAgICAqLwogICAgICBpc1RyYW5zaXRpb25pbmc6IGZhbHNlLAogICAgICB0b29sdGlwQXBwZW5kVG9Cb2R5OiBmYWxzZSwKICAgICAgaG92ZXJWaXNpYmlsaXRpZXM6IFt7CiAgICAgICAgdmFsdWU6IGZhbHNlCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogZmFsc2UKICAgICAgfSwgewogICAgICAgIHZhbHVlOiBmYWxzZQogICAgICB9LCB7CiAgICAgICAgdmFsdWU6IGZhbHNlCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogZmFsc2UKICAgICAgfSwgewogICAgICAgIHZhbHVlOiBmYWxzZQogICAgICB9LCB7CiAgICAgICAgdmFsdWU6IGZhbHNlCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogZmFsc2UKICAgICAgfSwgewogICAgICAgIHZhbHVlOiBmYWxzZQogICAgICB9XSwKICAgICAgaW5IZWxwOiBmYWxzZSwKICAgICAgbG9hZGluZzogZmFsc2UsCiAgICAgIGR1cmF0aW9uOiAzMDAwLAogICAgICBkcmF3ZXJPcGVuOiB0cnVlLAogICAgICBjdXJyZW50QmFja2dyb3VuZDogIndoaXRlIiwKICAgICAgYXZhaWxhYmxlQmFja2dyb3VuZDogWyJ3aGl0ZSIsICJsaWdodHNreWJsdWUiLCAiYmxhY2siXSwKICAgICAgbWluaW1pc2VkU2xpZGVyOiBmYWxzZSwKICAgICAgc2xpZGVyUG9zaXRpb246ICIiLAogICAgICB0aW1lTWF4OiAxMDAsCiAgICAgIG9yZ2luYWxEdXJhdGlvbjogIiIsCiAgICAgIGFuaW1hdGVEdXJhdGlvbjogIjZzZWNzIiwKICAgICAgcGxheVNwZWVkOiBbewogICAgICAgIHZhbHVlOiAwLjEsCiAgICAgICAgbGFiZWw6ICIwLjF4IgogICAgICB9LCB7CiAgICAgICAgdmFsdWU6IDAuNSwKICAgICAgICBsYWJlbDogIjAuNXgiCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogMSwKICAgICAgICBsYWJlbDogIjF4IgogICAgICB9LCB7CiAgICAgICAgdmFsdWU6IDIsCiAgICAgICAgbGFiZWw6ICIyeCIKICAgICAgfSwgewogICAgICAgIHZhbHVlOiA1LAogICAgICAgIGxhYmVsOiAiNXgiCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogMTAsCiAgICAgICAgbGFiZWw6ICIxMHgiCiAgICAgIH1dLAogICAgICBjdXJyZW50U3BlZWQ6IDEsCiAgICAgIHRpbWVTdGFtcHM6IHt9LAogICAgICBkZWZhdWx0Q2hlY2tlZEtleXM6IFtdLAogICAgICB0RGF0YTogewogICAgICAgIGxhYmVsOiAiIiwKICAgICAgICByZWdpb246ICIiLAogICAgICAgIHZpc2libGU6IGZhbHNlLAogICAgICAgIHg6IDIwMCwKICAgICAgICB5OiAyMDAKICAgICAgfSwKICAgICAgZmlsZUZvcm1hdDogIm1ldGFkYXRhIiwKICAgICAgcHJldmlvdXNNYXJrZXJMYWJlbHM6IFtdCiAgICB9OwogIH0sCiAgd2F0Y2g6IHsKICAgIGZvcm1hdDogewogICAgICBoYW5kbGVyOiBmdW5jdGlvbiBoYW5kbGVyKHZhbHVlKSB7CiAgICAgICAgdGhpcy5maWxlRm9ybWF0ID0gdmFsdWU7CiAgICAgIH0sCiAgICAgIGltbWVkaWF0ZTogdHJ1ZQogICAgfSwKICAgIHVybDogewogICAgICBoYW5kbGVyOiBmdW5jdGlvbiBoYW5kbGVyKG5ld1ZhbHVlKSB7CiAgICAgICAgaWYgKHRoaXMuc3RhdGUgPT09IHVuZGVmaW5lZCB8fCB0aGlzLnN0YXRlLnVybCA9PT0gdW5kZWZpbmVkKSB0aGlzLnNldFVSTChuZXdWYWx1ZSk7CiAgICAgIH0sCiAgICAgIGltbWVkaWF0ZTogdHJ1ZQogICAgfSwKICAgIHJlZ2lvbjogewogICAgICBoYW5kbGVyOiBmdW5jdGlvbiBoYW5kbGVyKHJlZ2lvbikgewogICAgICAgIGlmICghKHRoaXMuc3RhdGUgfHwgdGhpcy52aWV3VVJMKSkgdGhpcy5zZXRGb2N1c2VkUmVnaW9uKHJlZ2lvbik7CiAgICAgIH0sCiAgICAgIGltbWVkaWF0ZTogdHJ1ZQogICAgfSwKICAgIHN0YXRlOiB7CiAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIoc3RhdGUpIHsKICAgICAgICB0aGlzLnNldFN0YXRlKHN0YXRlKTsKICAgICAgfSwKICAgICAgaW1tZWRpYXRlOiB0cnVlLAogICAgICBkZWVwOiB0cnVlCiAgICB9LAogICAgdmlld1VSTDogewogICAgICBoYW5kbGVyOiBmdW5jdGlvbiBoYW5kbGVyKHZpZXdVUkwpIHsKICAgICAgICB0aGlzLnVwZGF0ZVZpZXdVUkwodmlld1VSTCk7CiAgICAgIH0sCiAgICAgIGltbWVkaWF0ZTogdHJ1ZQogICAgfSwKICAgIGhlbHBNb2RlOiBmdW5jdGlvbiBoZWxwTW9kZSh2YWwpIHsKICAgICAgdGhpcy5zZXRIZWxwTW9kZSh2YWwpOwogICAgfSwKICAgIGRpc3BsYXlNYXJrZXJzOiBmdW5jdGlvbiBkaXNwbGF5TWFya2Vycyh2YWwpIHsKICAgICAgdGhpcy4kbW9kdWxlLnNjZW5lLmRpc3BsYXlNYXJrZXJzID0gdmFsOwogICAgICAvL1VwZGF0ZSBwaWNrYWJsZSBvYmplY3RzCiAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5mb3JjZVBpY2thYmxlT2JqZWN0c1VwZGF0ZSA9IHRydWU7CiAgICB9LAogICAgZGlzcGxheU1pbmltYXA6IGZ1bmN0aW9uIGRpc3BsYXlNaW5pbWFwKHZhbCkgewogICAgICB0aGlzLiRtb2R1bGUuc2NlbmUuZGlzcGxheU1pbmltYXAgPSB2YWw7CiAgICB9LAogICAgInNjZW5lRGF0YS5jdXJyZW50VGltZSI6IGZ1bmN0aW9uIHNjZW5lRGF0YUN1cnJlbnRUaW1lKCkgewogICAgICAvKioNCiAgICAgICAqIFRyaWdnZXJzIHdoZW4gc2NlbmUgdGltZSBjaGFuZ2VzLg0KICAgICAgICoNCiAgICAgICAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB0aW1lIEN1cnJlbnQgYnVpbGQtaW4gdGltZSBvZiBzY2VuZS4NCiAgICAgICAqIG9mIHNlbGVjdGVkIG9iamVjdC4NCiAgICAgICAqLwogICAgICB0aGlzLiRlbWl0KCJ0aW1lQ2hhbmdlZCIsIHRoaXMuc2NlbmVEYXRhLmN1cnJlbnRUaW1lKTsKICAgIH0sCiAgICBkdXJhdGlvbjogZnVuY3Rpb24gZHVyYXRpb24oKSB7CiAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5zZXREdXJhdGlvbih0aGlzLmR1cmF0aW9uKTsKICAgIH0sCiAgICBtaW5pbWFwU2V0dGluZ3M6IHsKICAgICAgZGVlcDogdHJ1ZSwKICAgICAgaGFuZGxlcjogInVwZGF0ZU1pbmltYXBTY2lzc29yIgogICAgfSwKICAgIHJlbmRlcjogZnVuY3Rpb24gcmVuZGVyKHZhbCkgewogICAgICB0aGlzLnRvZ2dsZVJlbmRlcmluZyh2YWwpOwogICAgfSwKICAgIG1hcmtlckxhYmVsczogZnVuY3Rpb24gbWFya2VyTGFiZWxzKGxhYmVscykgewogICAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgICBjb25zb2xlLmxvZygibWFya2VyIGxhYmVscyBjaGFuZ2VkIiwgbGFiZWxzKTsKICAgICAgdGhpcy5wcmV2aW91c01hcmtlckxhYmVscy5mb3JFYWNoKGZ1bmN0aW9uIChwbWwpIHsKICAgICAgICBfdGhpcy5zZXRNYXJrZXJNb2RlRm9yT2JqZWN0c1dpdGhOYW1lKHBtbCwgIm9mZiIpOwogICAgICB9KTsKICAgICAgbGFiZWxzLmZvckVhY2goZnVuY3Rpb24gKGwpIHsKICAgICAgICBfdGhpcy5zZXRNYXJrZXJNb2RlRm9yT2JqZWN0c1dpdGhOYW1lKGwsICJvbiIpOwogICAgICB9KTsKICAgICAgdGhpcy5wcmV2aW91c01hcmtlckxhYmVscyA9IGxhYmVsczsKICAgIH0KICB9LAogIGJlZm9yZUNyZWF0ZTogZnVuY3Rpb24gYmVmb3JlQ3JlYXRlKCkgewogICAgdGhpcy4kbW9kdWxlID0gbmV3IE9yZ2Fuc1ZpZXdlcigpOwogICAgdGhpcy5zZWxlY3RlZE9iamVjdHMgPSBbXTsKICAgIHRoaXMuaG92ZXJlZE9iamVjdHMgPSBbXTsKICAgIHRoaXMuY3VycmVudEJhY2tncm91bmQgPSAid2hpdGUiOwogICAgdGhpcy5fY3VycmVudFVSTCA9IHVuZGVmaW5lZDsKICAgIHRoaXMuYXZhaWxhYmxlQmFja2dyb3VuZCA9IFsid2hpdGUiLCAiYmxhY2siLCAibGlnaHRza3libHVlIl07CiAgICB0aGlzLiRfc2VhcmNoSW5kZXggPSBuZXcgU2VhcmNoSW5kZXgoKTsKICB9LAogIG1vdW50ZWQ6IGZ1bmN0aW9uIG1vdW50ZWQoKSB7CiAgICB0aGlzLiRyZWZzLnRyZWVDb250cm9scy5zZXRNb2R1bGUodGhpcy4kbW9kdWxlKTsKICAgIHZhciBldmVudE5vdGlmaWVyID0gbmV3IEV2ZW50Tm90aWZpZXIoKTsKICAgIGV2ZW50Tm90aWZpZXIuc3Vic2NyaWJlKHRoaXMsIHRoaXMuZXZlbnROb3RpZmllckNhbGxiYWNrKTsKICAgIHRoaXMuJG1vZHVsZS5hZGROb3RpZmllcihldmVudE5vdGlmaWVyKTsKICAgIHRoaXMuJG1vZHVsZS5hZGRPcmdhblBhcnRBZGRlZENhbGxiYWNrKHRoaXMuemluY09iamVjdEFkZGVkKTsKICAgIHRoaXMuJG1vZHVsZS5pbml0aWFsaXNlUmVuZGVyZXIodGhpcy4kcmVmcy5kaXNwbGF5KTsKICAgIHRoaXMudG9nZ2xlUmVuZGVyaW5nKHRoaXMucmVuZGVyKTsKICAgIHRoaXMucm8gPSBuZXcgUmVzaXplT2JzZXJ2ZXIodGhpcy5hZGp1c3RMYXlvdXQpLm9ic2VydmUodGhpcy4kcmVmcy5zY2FmZm9sZENvbnRhaW5lcik7CiAgICB0aGlzLmRlZmF1bHRSYXRlID0gdGhpcy4kbW9kdWxlLmdldFBsYXlSYXRlKCk7CiAgfSwKICBiZWZvcmVEZXN0cm95OiBmdW5jdGlvbiBiZWZvcmVEZXN0cm95KCkgewogICAgaWYgKHRoaXMucm8pIHRoaXMucm8uZGlzY29ubmVjdCgpOwogICAgdGhpcy4kbW9kdWxlLmRlc3Ryb3koKTsKICAgIHRoaXMuJG1vZHVsZSA9IHVuZGVmaW5lZDsKICB9LAogIG1ldGhvZHM6IHsKICAgIGFkZFppbmNPYmplY3Q6IGZ1bmN0aW9uIGFkZFppbmNPYmplY3QoemluY09iamVjdCkgewogICAgICBpZiAodGhpcy4kbW9kdWxlLnNjZW5lKSB7CiAgICAgICAgdGhpcy4kbW9kdWxlLnNjZW5lLmFkZFppbmNPYmplY3QoemluY09iamVjdCk7CiAgICAgICAgdGhpcy56aW5jT2JqZWN0QWRkZWQoemluY09iamVjdCk7CiAgICAgICAgaWYgKHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzKSB0aGlzLiRyZWZzLnRyZWVDb250cm9scy56aW5jT2JqZWN0QWRkZWQoemluY09iamVjdCk7CiAgICAgIH0KICAgIH0sCiAgICAvKioNCiAgICAgKiBUaGlzIGlzIGNhbGxlZCB3aGVuIGEgbmV3IHppbmMgb2JqZWN0IGlzIHJlYWQgaW50byB0aGUgc2NlbmUuDQogICAgICovCiAgICB6aW5jT2JqZWN0QWRkZWQ6IGZ1bmN0aW9uIHppbmNPYmplY3RBZGRlZCh6aW5jT2JqZWN0KSB7CiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlOwogICAgICB0aGlzLiRfc2VhcmNoSW5kZXguYWRkWmluY09iamVjdCh6aW5jT2JqZWN0LCB6aW5jT2JqZWN0LnV1aWQpOwogICAgICB0aGlzLiRlbWl0KCJ6aW5jLW9iamVjdC1hZGRlZCIsIHppbmNPYmplY3QpOwogICAgfSwKICAgIC8qKg0KICAgICAqIA0KICAgICAqLwogICAgYWRkUmVnaW9uc1RvU2VhcmNoSW5kZXg6IGZ1bmN0aW9uIGFkZFJlZ2lvbnNUb1NlYXJjaEluZGV4KCkgewogICAgICB2YXIgX3RoaXMyID0gdGhpczsKICAgICAgdmFyIHJvb3RSZWdpb24gPSB0aGlzLiRtb2R1bGUuc2NlbmUuZ2V0Um9vdFJlZ2lvbigpOwogICAgICB2YXIgcmVnaW9ucyA9IHJvb3RSZWdpb24uZ2V0Q2hpbGRSZWdpb25zKHRydWUpOwogICAgICByZWdpb25zLmZvckVhY2goZnVuY3Rpb24gKHJlZ2lvbikgewogICAgICAgIF90aGlzMi4kX3NlYXJjaEluZGV4LmFkZFJlZ2lvbihyZWdpb24sIHJlZ2lvbi51dWlkKTsKICAgICAgfSk7CiAgICB9LAogICAgLyoqDQogICAgICogVGhpcyBpcyBjYWxsZWQgd2hlbiBDaGFuZ2UgYmFja2dzcGVlZHJvdW5kIGNvbG91ciBidXR0b24NCiAgICAgKiBpcyBwcmVzc2VkIGFuIGNhdXNlcyB0aGUgYmFja2dyb3VDb2xvcm5kIGNvbG91ciB0byBiZSBjaGFuZ2VkDQogICAgICogdG8gb25lIG9mIHRoZSB0aHJlZSBwcmVzZXQgY29sb3VyOiB3aGl0ZSwgYmxhY2sgYW5kDQogICAgICogbGlnaHRza3libHVlLg0KICAgICAqLwogICAgYmFja2dyb3VuZENoYW5nZUNhbGxiYWNrOiBmdW5jdGlvbiBiYWNrZ3JvdW5kQ2hhbmdlQ2FsbGJhY2soY29sb3VyKSB7CiAgICAgIHRoaXMuY3VycmVudEJhY2tncm91bmQgPSBjb2xvdXI7CiAgICAgIHRoaXMuJG1vZHVsZS56aW5jUmVuZGVyZXIuZ2V0VGhyZWVKU1JlbmRlcmVyKCkuc2V0Q2xlYXJDb2xvcih0aGlzLmN1cnJlbnRCYWNrZ3JvdW5kLCAxKTsKICAgIH0sCiAgICAvKioNCiAgICAgKiBUaGlzIGlzIGNhbGxlZCBieSBjYXB0dWVlU2NyZWVuc2hvdCBhbmQgYWZ0ZXIgdGhlIGxhc3QgcmVuZGVyDQogICAgICogbG9vcCwgaXQgZG93bmxvYWQgYSBzY3JlZW5zaG90IG9mIHRoZSBjdXJyZW50IHNjZW5lIHdpdGggbm8gVUkuDQogICAgICovCiAgICBjYXB0dXJlU2NyZWVuc2hvdENhbGxiYWNrOiBmdW5jdGlvbiBjYXB0dXJlU2NyZWVuc2hvdENhbGxiYWNrKCkgewogICAgICAvL1JlbW92ZSB0aGUgY2FsbGJhY2ssIG9ubHkgbmVlZHMgdG8gaGFwcGVuIG9uY2UKICAgICAgdGhpcy4kbW9kdWxlLnppbmNSZW5kZXJlci5yZW1vdmVQb3N0UmVuZGVyQ2FsbGJhY2tGdW5jdGlvbih0aGlzLmNhcHR1cmVJRCk7CiAgICAgIHZhciBzY3JlZW5zaG90ID0gdGhpcy4kbW9kdWxlLnppbmNSZW5kZXJlci5nZXRUaHJlZUpTUmVuZGVyZXIoKS5kb21FbGVtZW50LnRvRGF0YVVSTCgiaW1hZ2UvcG5nIik7CiAgICAgIHZhciBocmVmRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTsKICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmQoaHJlZkVsZW1lbnQpOwogICAgICBpZiAoIXRoaXMuY2FwdHVyZUZpbGVuYW1lKSBocmVmRWxlbWVudC5kb3dubG9hZCA9ICJzY3JlZW5zaG90LnBuZyI7ZWxzZSBocmVmRWxlbWVudC5kb3dubG9hZCA9IHRoaXMuY2FwdHVyZUZpbGVuYW1lOwogICAgICBocmVmRWxlbWVudC5ocmVmID0gc2NyZWVuc2hvdDsKICAgICAgaHJlZkVsZW1lbnQuY2xpY2soKTsKICAgICAgaHJlZkVsZW1lbnQucmVtb3ZlKCk7CiAgICB9LAogICAgLyoqDQogICAgICogRnVuY3Rpb24gZm9yIGNhcHR1cmluZyBhIHNjcmVlbnNob3Qgb2YgdGhlIGN1cnJlbnQgcmVuZGVyaW5nLg0KICAgICAqDQogICAgICogQHBhcmFtIHtTdHJpbmd9IGZpbGVuYW1lIGZpbGVuYW1lIGdpdmVuIHRvIHRoZSBzY3JlZW5zaG90Lg0KICAgICAqDQogICAgICogQHB1YmxpYw0KICAgICAqLwogICAgY2FwdHVyZVNjcmVlbnNob3Q6IGZ1bmN0aW9uIGNhcHR1cmVTY3JlZW5zaG90KGZpbGVuYW1lKSB7CiAgICAgIHRoaXMuY2FwdHVyZUZpbGVuYW1lID0gZmlsZW5hbWU7CiAgICAgIHRoaXMuY2FwdHVyZUlEID0gdGhpcy4kbW9kdWxlLnppbmNSZW5kZXJlci5hZGRQb3N0UmVuZGVyQ2FsbGJhY2tGdW5jdGlvbih0aGlzLmNhcHR1cmVTY3JlZW5zaG90Q2FsbGJhY2spOwogICAgfSwKICAgIC8qKg0KICAgICAqIEZ1bmN0aW9uIHRvIGNsZWFyIGN1cnJlbnQgc2NlbmUsIHRoZSB0cmVlIGNvbnRyb2xzIGFuZCB0aGUgc2VhcmNoIGluZGV4Lg0KICAgICAqDQogICAgICogQHB1YmxpYw0KICAgICAqLwogICAgY2xlYXJTY2VuZTogZnVuY3Rpb24gY2xlYXJTY2VuZSgpIHsKICAgICAgaWYgKHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzKSB0aGlzLiRyZWZzLnRyZWVDb250cm9scy5jbGVhcigpOwogICAgICBpZiAodGhpcy4kX3NlYXJjaEluZGV4KSB0aGlzLiRfc2VhcmNoSW5kZXgucmVtb3ZlQWxsKCk7CiAgICAgIGlmICh0aGlzLiRtb2R1bGUuc2NlbmUpIHRoaXMuJG1vZHVsZS5zY2VuZS5jbGVhckFsbCgpOwogICAgfSwKICAgIGZvcm1hdFRvb2x0aXA6IGZ1bmN0aW9uIGZvcm1hdFRvb2x0aXAodmFsKSB7CiAgICAgIGlmICh0aGlzLnRpbWVNYXggPj0gMTAwMCkgewogICAgICAgIGlmICh2YWwpIHsKICAgICAgICAgIHZhciBzZWMgPSAodmFsICUgNjAwMDAgLyAxMDAwKS50b0ZpeGVkKDIpICsgInMiOwogICAgICAgICAgdmFyIG1pbiA9IHZhbCA+IDYwMDAwID8gKHZhbCAvIDYwMDAwKS50b0ZpeGVkKDApICsgIm0gIiA6ICIiOwogICAgICAgICAgcmV0dXJuIG1pbiArIHNlYzsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIHZhbCA/IHZhbC50b0ZpeGVkKDIpICsgIiBtcyIgOiAiMCBtcyI7CiAgICB9LAogICAgLyoqDQogICAgICogRnVuY3Rpb24gdG8gcmVzZXQgdGhlIHZpZXcgdG8gZGVmYXVsdC4NCiAgICAgKiBBbHNvIGNhbGxlZCB3aGVuIHRoZSBhc3NvY2lhdGVkIGJ1dHRvbiBpcyBwcmVzc2VkLg0KICAgICAqDQogICAgICogQHB1YmxpYw0KICAgICAqLwogICAgZml0V2luZG93OiBmdW5jdGlvbiBmaXRXaW5kb3coKSB7CiAgICAgIGlmICh0aGlzLiRtb2R1bGUuc2NlbmUpIHsKICAgICAgICB0aGlzLiRtb2R1bGUuc2NlbmUudmlld0FsbCgpOwogICAgICB9CiAgICB9LAogICAgLyoqDQogICAgICogRnVuY3Rpb24gdG8gem9vbSBpbi4NCiAgICAgKiBBbHNvIGNhbGxlZCB3aGVuIHRoZSBhc3NvY2lhdGVkIGJ1dHRvbiBpcyBwcmVzc2VkLg0KICAgICAqDQogICAgICogQHB1YmxpYw0KICAgICAqLwogICAgem9vbUluOiBmdW5jdGlvbiB6b29tSW4oKSB7CiAgICAgIGlmICh0aGlzLiRtb2R1bGUuc2NlbmUpIHsKICAgICAgICB0aGlzLiRtb2R1bGUuc2NlbmUuY2hhbmdlWm9vbUJ5U2Nyb2xsUmF0ZVVuaXQoLTEpOwogICAgICB9CiAgICB9LAogICAgLyoqDQogICAgICogRnVuY3Rpb24gdG8gem9vbSBvdXQuDQogICAgICogQWxzbyBjYWxsZWQgd2hlbiB0aGUgYXNzb2NpYXRlZCBidXR0b24gaXMgcHJlc3NlZC4NCiAgICAgKg0KICAgICAqIEBwdWJsaWMNCiAgICAgKi8KICAgIHpvb21PdXQ6IGZ1bmN0aW9uIHpvb21PdXQoKSB7CiAgICAgIGlmICh0aGlzLiRtb2R1bGUuc2NlbmUpIHsKICAgICAgICB0aGlzLiRtb2R1bGUuc2NlbmUuY2hhbmdlWm9vbUJ5U2Nyb2xsUmF0ZVVuaXQoMSk7CiAgICAgIH0KICAgIH0sCiAgICAvKioNCiAgICAgKiBGdW5jdGlvbiB0byBjaGFuZ2UgdGhlIGN1cnJlbnQgcGxheSBzcGVlZC4NCiAgICAgKg0KICAgICAqIEBwdWJsaWMNCiAgICAgKi8KICAgIHNwZWVkQ2hhbmdlZDogZnVuY3Rpb24gc3BlZWRDaGFuZ2VkKHNwZWVkKSB7CiAgICAgIHRoaXMuY3VycmVudFNwZWVkID0gc3BlZWQ7CiAgICAgIHRoaXMuJG1vZHVsZS5zZXRQbGF5UmF0ZSh0aGlzLmRlZmF1bHRSYXRlICogdGhpcy5jdXJyZW50U3BlZWQpOwogICAgfSwKICAgIC8qKg0KICAgICAqIEZ1bmN0aW9uIHVzZWQgdG8gc3RvcCB0aGUgZnJlZSBzcGluDQogICAgICoNCiAgICAgKiBAcHVibGljDQogICAgICovCiAgICBzdG9wRnJlZVNwaW46IGZ1bmN0aW9uIHN0b3BGcmVlU3BpbigpIHsKICAgICAgdmFyIGNhbWVyYWNvbnRyb2wgPSB0aGlzLiRtb2R1bGUuc2NlbmUuZ2V0WmluY0NhbWVyYUNvbnRyb2xzKCk7CiAgICAgIGNhbWVyYWNvbnRyb2wuc3RvcEF1dG9UdW1ibGUoKTsKICAgICAgdGhpcy5pc1RyYW5zaXRpb25pbmcgPSBmYWxzZTsKICAgIH0sCiAgICBmaW5kT2JqZWN0c1dpdGhHcm91cE5hbWU6IGZ1bmN0aW9uIGZpbmRPYmplY3RzV2l0aEdyb3VwTmFtZShuYW1lKSB7CiAgICAgIHZhciBvYmplY3RzID0gW107CiAgICAgIGlmIChuYW1lICYmIG5hbWUgIT0gIiIgJiYgdGhpcy4kbW9kdWxlLnNjZW5lKSB7CiAgICAgICAgb2JqZWN0cyA9IHRoaXMuJG1vZHVsZS5zY2VuZS5maW5kT2JqZWN0c1dpdGhHcm91cE5hbWUobmFtZSk7CiAgICAgIH0KICAgICAgcmV0dXJuIG9iamVjdHM7CiAgICB9LAogICAgLyoqDQogICAgICogRm9jdXMgb24gbmFtZWQgcmVnaW9uDQogICAgICovCiAgICB2aWV3UmVnaW9uOiBmdW5jdGlvbiB2aWV3UmVnaW9uKG5hbWVzKSB7CiAgICAgIHZhciByb290UmVnaW9uID0gdGhpcy4kbW9kdWxlLnNjZW5lLmdldFJvb3RSZWdpb24oKTsKICAgICAgdmFyIGdyb3VwcyA9IEFycmF5LmlzQXJyYXkobmFtZXMpID8gbmFtZXMgOiBbbmFtZXNdOwogICAgICB2YXIgb2JqZWN0cyA9IGZpbmRPYmplY3RzV2l0aE5hbWVzKHJvb3RSZWdpb24sIGdyb3VwcywgIiIsIHRydWUpOwogICAgICB2YXIgYm94ID0gdGhpcy4kbW9kdWxlLnNjZW5lLmdldEJvdW5kaW5nQm94T2ZaaW5jT2JqZWN0cyhvYmplY3RzKTsKICAgICAgaWYgKGJveCkgewogICAgICAgIGlmICh0aGlzLiRtb2R1bGUuaXNTeW5jQ29udHJvbCgpKSB7CiAgICAgICAgICB0aGlzLiRtb2R1bGUuc2V0U3luY0NvbnRyb2xab29tVG9Cb3goYm94KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdmFyIGRpc3QgPSB0aGlzLiRtb2R1bGUuc2NlbmUuY2FtZXJhLmZhciAtIHRoaXMuJG1vZHVsZS5zY2VuZS5jYW1lcmEubmVhcjsKICAgICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS52aWV3QWxsV2l0aEJvdW5kaW5nQm94KGJveCk7CiAgICAgICAgICB0aGlzLiRtb2R1bGUuc2NlbmUuY2FtZXJhLmZhciA9IHRoaXMuJG1vZHVsZS5zY2VuZS5jYW1lcmEubmVhciArIGRpc3Q7CiAgICAgICAgICB0aGlzLiRtb2R1bGUuc2NlbmUuY2FtZXJhLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgIH0KICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSwKICAgIHNldEZvY3VzZWRSZWdpb246IGZ1bmN0aW9uIHNldEZvY3VzZWRSZWdpb24obmFtZSkgewogICAgICBpZiAobmFtZSkgewogICAgICAgIGlmICh0aGlzLmlzUmVhZHkpIHsKICAgICAgICAgIHRoaXMudmlld1JlZ2lvbihuYW1lKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy4kbW9kdWxlLnNldEZpbmlzaERvd25sb2FkQ2FsbGJhY2sodGhpcy5zZXRVUkxGaW5pc2hDYWxsYmFjayh7CiAgICAgICAgICAgIHJlZ2lvbjogbmFtZQogICAgICAgICAgfSkpOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIHVwZGF0ZVZpZXdVUkw6IGZ1bmN0aW9uIHVwZGF0ZVZpZXdVUkwodmlld1VSTCkgewogICAgICBpZiAodmlld1VSTCkgewogICAgICAgIGlmICh0aGlzLmlzUmVhZHkpIHsKICAgICAgICAgIHZhciB1cmwgPSBuZXcgVVJMKHZpZXdVUkwsIHRoaXMudXJsKTsKICAgICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5sb2FkVmlld1VSTCh1cmwpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLiRtb2R1bGUuc2V0RmluaXNoRG93bmxvYWRDYWxsYmFjayh0aGlzLnNldFVSTEZpbmlzaENhbGxiYWNrKHsKICAgICAgICAgICAgdmlld1VSTDogdmlld1VSTAogICAgICAgICAgfSkpOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIGdldFJlbmRlcmVySW5mbzogZnVuY3Rpb24gZ2V0UmVuZGVyZXJJbmZvKCkgewogICAgICBpZiAodGhpcy4kbW9kdWxlLnppbmNSZW5kZXJlcikgewogICAgICAgIHJldHVybiB0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyLmdldFRocmVlSlNSZW5kZXJlcigpLmluZm87CiAgICAgIH0KICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKICAgIH0sCiAgICAvKioNCiAgICAgKiBGdW5jdGlvbiB1c2VkIHRvIHJvdGF0ZSB0aGUgc2NlbmUuDQogICAgICogQWxzbyBjYWxsZWQgd2hlbiB0aGUgYXNzb2NpYXRlZCBidXR0b24gaXMgcHJlc3NlZC4NCiAgICAgKg0KICAgICAqIEBwdWJsaWMNCiAgICAgKi8KICAgIGZyZWVTcGluOiBmdW5jdGlvbiBmcmVlU3BpbigpIHsKICAgICAgaWYgKHRoaXMuJG1vZHVsZS5zY2VuZSkgewogICAgICAgIHZhciBjYW1lcmFjb250cm9sID0gdGhpcy4kbW9kdWxlLnNjZW5lLmdldFppbmNDYW1lcmFDb250cm9scygpOwogICAgICAgIHRoaXMuaXNUcmFuc2l0aW9uaW5nID0gdHJ1ZTsKICAgICAgICBjYW1lcmFjb250cm9sLmVuYWJsZUF1dG9UdW1ibGUoKTsKICAgICAgICBjYW1lcmFjb250cm9sLmF1dG9UdW1ibGUoWzEuMCwgMC4wXSwgTWF0aC5QSSwgdHJ1ZSk7CiAgICAgICAgc2V0VGltZW91dCh0aGlzLnN0b3BGcmVlU3BpbiwgNDAwMCk7CiAgICAgIH0KICAgIH0sCiAgICAvKioNCiAgICAgKiBDYWxsYmFjayB3aGVuIGEgcmVnaW9uIGlzIHNlbGVjdGVkL2hpZ2hsaWdodGVkLg0KICAgICAqIEl0IHdpbGwgYWxzbyB1cGRhdGUgb3RoZXIgY29udHJvbHMuDQogICAgICoNCiAgICAgKi8KICAgIGV2ZW50Tm90aWZpZXJDYWxsYmFjazogZnVuY3Rpb24gZXZlbnROb3RpZmllckNhbGxiYWNrKGV2ZW50KSB7CiAgICAgIHZhciBuYW1lcyA9IFtdOwogICAgICB2YXIgemluY09iamVjdHMgPSBbXTsKICAgICAgdmFyIHJlZ2lvbiA9IHVuZGVmaW5lZDsKICAgICAgaWYgKGV2ZW50LmV2ZW50VHlwZSA9PSAxIHx8IGV2ZW50LmV2ZW50VHlwZSA9PSAyKSB7CiAgICAgICAgZXZlbnQuaWRlbnRpZmllcnMuZm9yRWFjaChmdW5jdGlvbiAoaWRlbnRpZmllcikgewogICAgICAgICAgaWYgKGlkZW50aWZpZXIpIHsKICAgICAgICAgICAgdmFyIGlkID0gaWRlbnRpZmllci5kYXRhLmlkID8gaWRlbnRpZmllci5kYXRhLmlkIDogaWRlbnRpZmllci5kYXRhLmdyb3VwOwogICAgICAgICAgICBuYW1lcy5wdXNoKGlkKTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgICB6aW5jT2JqZWN0cyA9IGV2ZW50LnppbmNPYmplY3RzOwogICAgICB9CiAgICAgIC8qDQogICAgICAgKiBFdmVudCBUeXBlIDE6IFNlbGVjdGVkDQogICAgICAgKiBFdmVudCBUeXBlIDI6IEhpZ2hsaWdodGVkDQogICAgICAgKiBFdmVudCBUeXBlIDE6IE1vdmUNCiAgICAgICAqLwogICAgICBpZiAoZXZlbnQuZXZlbnRUeXBlID09IDEpIHsKICAgICAgICBpZiAodGhpcy4kcmVmcy50cmVlQ29udHJvbHMpIHsKICAgICAgICAgIGlmIChuYW1lcy5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgIC8vdGhpcy4kcmVmcy50cmVlQ29udHJvbHMuY2hhbmdlQWN0aXZlQnlOYW1lcyhuYW1lcywgcmVnaW9uLCBmYWxzZSk7CiAgICAgICAgICAgIHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzLnVwZGF0ZUFjdGl2ZVVJKHppbmNPYmplY3RzKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRoaXMuaGlkZVJlZ2lvblRvb2x0aXAoKTsKICAgICAgICAgICAgdGhpcy4kcmVmcy50cmVlQ29udHJvbHMucmVtb3ZlQWN0aXZlKHRydWUpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAvLyBUcmlnZ2VycyB3aGVuIGFuIG9iamVjdCBoYXMgYmVlbiBzZWxlY3RlZAogICAgICAgIHRoaXMuJGVtaXQoInNjYWZmb2xkLXNlbGVjdGVkIiwgZXZlbnQuaWRlbnRpZmllcnMpOwogICAgICB9IGVsc2UgaWYgKGV2ZW50LmV2ZW50VHlwZSA9PSAyKSB7CiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRPYmplY3RzLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgdGhpcy5oaWRlUmVnaW9uVG9vbHRpcCgpOwogICAgICAgICAgLy8gY29uc3Qgb2Zmc2V0cyA9IHRoaXMuJHJlZnMuc2NhZmZvbGRDb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICAgICAgICBpZiAodGhpcy4kcmVmcy50cmVlQ29udHJvbHMpIHsKICAgICAgICAgICAgaWYgKG5hbWVzLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgICAvL3RoaXMuJHJlZnMudHJlZUNvbnRyb2xzLmNoYW5nZUhvdmVyQnlOYW1lcyhuYW1lcywgcmVnaW9uLCBmYWxzZSk7CiAgICAgICAgICAgICAgdGhpcy4kcmVmcy50cmVlQ29udHJvbHMudXBkYXRlSG92ZXJVSSh6aW5jT2JqZWN0cyk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgdGhpcy4kcmVmcy50cmVlQ29udHJvbHMucmVtb3ZlSG92ZXIodHJ1ZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGlmIChldmVudC5pZGVudGlmaWVycy5sZW5ndGggPiAwICYmIGV2ZW50LmlkZW50aWZpZXJzWzBdKSB7CiAgICAgICAgICAgIHZhciBpZCA9IGV2ZW50LmlkZW50aWZpZXJzWzBdLmRhdGEuaWQgPyBldmVudC5pZGVudGlmaWVyc1swXS5kYXRhLmlkIDogZXZlbnQuaWRlbnRpZmllcnNbMF0uZGF0YS5ncm91cDsKICAgICAgICAgICAgaWYgKGV2ZW50LmlkZW50aWZpZXJzWzBdLmNvb3JkcykgewogICAgICAgICAgICAgIHRoaXMudERhdGEudmlzaWJsZSA9IHRydWU7CiAgICAgICAgICAgICAgdGhpcy50RGF0YS5sYWJlbCA9IGlkOwogICAgICAgICAgICAgIGlmIChldmVudC5pZGVudGlmaWVyc1swXS5kYXRhLnJlZ2lvbikgdGhpcy50RGF0YS5yZWdpb24gPSBldmVudC5pZGVudGlmaWVyc1swXS5kYXRhLnJlZ2lvbjtlbHNlIHRoaXMudERhdGEucmVnaW9uID0gdW5kZWZpbmVkOwogICAgICAgICAgICAgIHRoaXMudERhdGEueCA9IGV2ZW50LmlkZW50aWZpZXJzWzBdLmNvb3Jkcy54OwogICAgICAgICAgICAgIHRoaXMudERhdGEueSA9IGV2ZW50LmlkZW50aWZpZXJzWzBdLmNvb3Jkcy55OwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICAvLyBUcmlnZ2VycyB3aGVuIGFuIG9iamVjdCBoYXMgYmVlbiBoaWdobGlnaHRlZAogICAgICAgICAgdGhpcy4kZW1pdCgic2NhZmZvbGQtaGlnaGxpZ2h0ZWQiLCBldmVudC5pZGVudGlmaWVycyk7CiAgICAgICAgfQogICAgICB9IGVsc2UgaWYgKGV2ZW50LmV2ZW50VHlwZSA9PSAzKSB7CiAgICAgICAgLy9NT1ZFCiAgICAgICAgaWYgKGV2ZW50LmlkZW50aWZpZXJzLmxlbmd0aCA+IDAgJiYgZXZlbnQuaWRlbnRpZmllcnNbMF0pIHsKICAgICAgICAgIGlmIChldmVudC5pZGVudGlmaWVyc1swXS5jb29yZHMpIHsKICAgICAgICAgICAgdmFyIG9mZnNldHMgPSB0aGlzLiRyZWZzLnNjYWZmb2xkQ29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgICAgICAgICB0aGlzLnREYXRhLnggPSBldmVudC5pZGVudGlmaWVyc1swXS5jb29yZHMueCAtIG9mZnNldHMubGVmdDsKICAgICAgICAgICAgdGhpcy50RGF0YS55ID0gZXZlbnQuaWRlbnRpZmllcnNbMF0uY29vcmRzLnkgLSBvZmZzZXRzLnRvcDsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICAvKioNCiAgICAgKiBHZXQgdGhlIGNvb3JkaW5hdGVzIG9mIHRoZSBjdXJyZW50IHNlbGVjdGVkIHJlZ2lvbi4NCiAgICAgKg0KICAgICAqIEBwdWJsaWMNCiAgICAgKi8KICAgIGdldENvb3JkaW5hdGVzT2ZTZWxlY3RlZDogZnVuY3Rpb24gZ2V0Q29vcmRpbmF0ZXNPZlNlbGVjdGVkKCkgewogICAgICBpZiAodGhpcy5zZWxlY3RlZE9iamVjdHMgJiYgdGhpcy5zZWxlY3RlZE9iamVjdHMubGVuZ3RoID4gMCkgewogICAgICAgIHJldHVybiB0aGlzLiRtb2R1bGUuc2NlbmUuZ2V0T2JqZWN0c1NjcmVlblhZKHRoaXMuc2VsZWN0ZWRPYmplY3RzKTsKICAgICAgfQogICAgICByZXR1cm4gdW5kZWZpbmVkOwogICAgfSwKICAgIC8qKg0KICAgICAqIFJldHVybiBhbiBvYmplY3QgY29udGFpbmluZyB0aGUgd2luZG93IGNvb3JkaW5hdGVzIG9mIHRoZQ0KICAgICAqIGN1cnJlbnQgc2VsZWN0ZWQgcmVnaW9uIHdoaWNoIHdpbGwgYmUgdXBkYXRlZCBhZnRlciBlYWNoIHJlbmRlcg0KICAgICAqIGxvb3AuDQogICAgICoNCiAgICAgKiBAcHVibGljDQogICAgICovCiAgICBnZXREeW5hbWljU2VsZWN0ZWRDb29yZGluYXRlczogZnVuY3Rpb24gZ2V0RHluYW1pY1NlbGVjdGVkQ29vcmRpbmF0ZXMoKSB7CiAgICAgIHJldHVybiB0aGlzLiRtb2R1bGUuc2VsZWN0ZWRTY3JlZW5Db29yZGluYXRlczsKICAgIH0sCiAgICAvKioNCiAgICAgKiBDYWxsYmFjayB3aGVuIHRpbWUgaXMgY2hhbmdlZCB0aHJvdWdoIHRoZSBVSS4NCiAgICAgKi8KICAgIHRpbWVDaGFuZ2U6IGZ1bmN0aW9uIHRpbWVDaGFuZ2UoZXZlbnQpIHsKICAgICAgdmFyIG5vcm1hbGl6ZWRUaW1lID0gZXZlbnQgLyB0aGlzLnRpbWVNYXggKiAxMDA7CiAgICAgIGlmIChub3JtYWxpemVkVGltZSAhPSB0aGlzLnNjZW5lRGF0YS5jdXJyZW50VGltZSkgdGhpcy4kbW9kdWxlLnVwZGF0ZVRpbWUobm9ybWFsaXplZFRpbWUpOwogICAgfSwKICAgIC8qKg0KICAgICAqIEEgY2FsbGJhY2sgdXNlZCBieSBjaGlsZHJlbiBjb21wb25lbnRzLiBTZXQgdGhlIHNlbGVjdGVkIHppbmMgb2JqZWN0DQogICAgICoNCiAgICAgKiBAcGFyYW0ge29iamVjdH0gb2JqZWN0IFppbmMgb2JqZWN0DQogICAgICovCiAgICBvYmplY3RTZWxlY3RlZDogZnVuY3Rpb24gb2JqZWN0U2VsZWN0ZWQob2JqZWN0cywgcHJvcGFnYXRlKSB7CiAgICAgIHRoaXMuc2VsZWN0ZWRPYmplY3RzID0gb2JqZWN0czsKICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRPYmplY3RzICYmIHRoaXMuc2VsZWN0ZWRPYmplY3RzLmxlbmd0aCA+IDApIHRoaXMuJHJlZnMub3BhY2l0eUNvbnRyb2wuc2V0T2JqZWN0KHRoaXMuc2VsZWN0ZWRPYmplY3RzWzBdKTsKICAgICAgdGhpcy4kbW9kdWxlLnNldFNlbGVjdGVkQnlaaW5jT2JqZWN0cyhvYmplY3RzLCB1bmRlZmluZWQsIHByb3BhZ2F0ZSk7CiAgICB9LAogICAgLyoqDQogICAgICogQSBjYWxsYmFjayB1c2VkIGJ5IGNoaWxkcmVuIGNvbXBvbmVudHMuIFNldCB0aGUgaGlnaGxpZ2h0ZWQgemluYyBvYmplY3QNCiAgICAgKg0KICAgICAqIEBwYXJhbSB7b2JqZWN0fSBvYmplY3QgWmluYyBvYmplY3QNCiAgICAgKi8KICAgIG9iamVjdEhvdmVyZWQ6IGZ1bmN0aW9uIG9iamVjdEhvdmVyZWQob2JqZWN0cywgcHJvcGFnYXRlKSB7CiAgICAgIHRoaXMuaG92ZXJlZE9iamVjdHMgPSBvYmplY3RzOwogICAgICB0aGlzLiRtb2R1bGUuc2V0SGlnaGxpZ2h0ZWRCeVppbmNPYmplY3RzKG9iamVjdHMsIHVuZGVmaW5lZCwgcHJvcGFnYXRlKTsKICAgIH0sCiAgICAvKioNCiAgICAgKiBTZXQgdGhlIHNlbGVjdGVkIGJ5IG5hbWUuDQogICAgICoNCiAgICAgKiBAcGFyYW0ge30gbmFtZSBOYW1lIG9mIHRoZSBncm91cA0KICAgICAqLwogICAgY2hhbmdlQWN0aXZlQnlOYW1lOiBmdW5jdGlvbiBjaGFuZ2VBY3RpdmVCeU5hbWUobmFtZXMsIHJlZ2lvbiwgcHJvcGFnYXRlKSB7CiAgICAgIHZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheShuYW1lcyk7CiAgICAgIGlmIChuYW1lcyA9PT0gdW5kZWZpbmVkIHx8IGlzQXJyYXkgJiYgbmFtZXMubGVuZ3RoID09PSAwKSB7CiAgICAgICAgdGhpcy4kcmVmcy50cmVlQ29udHJvbHMucmVtb3ZlQWN0aXZlKHByb3BhZ2F0ZSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdmFyIGFycmF5ID0gbmFtZXM7CiAgICAgICAgaWYgKCFpc0FycmF5KSBhcnJheSA9IFthcnJheV07CiAgICAgICAgdGhpcy4kcmVmcy50cmVlQ29udHJvbHMuY2hhbmdlQWN0aXZlQnlOYW1lcyhhcnJheSwgcmVnaW9uLCBwcm9wYWdhdGUpOwogICAgICB9CiAgICB9LAogICAgLyoqDQogICAgICogU2V0IHRoZSBoaWdobGlnaHRlZCBieSBuYW1lLg0KICAgICAqDQogICAgICogQHBhcmFtIHtuYW1lfSBuYW1lIE5hbWUgb2YgdGhlIGdyb3VwDQogICAgICovCiAgICBjaGFuZ2VIaWdobGlnaHRlZEJ5TmFtZTogZnVuY3Rpb24gY2hhbmdlSGlnaGxpZ2h0ZWRCeU5hbWUobmFtZXMsIHJlZ2lvbiwgcHJvcGFnYXRlKSB7CiAgICAgIHZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheShuYW1lcyk7CiAgICAgIGlmIChuYW1lcyA9PT0gdW5kZWZpbmVkIHx8IGlzQXJyYXkgJiYgbmFtZXMubGVuZ3RoID09PSAwKSB7CiAgICAgICAgdGhpcy4kcmVmcy50cmVlQ29udHJvbHMucmVtb3ZlSG92ZXIocHJvcGFnYXRlKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB2YXIgYXJyYXkgPSBuYW1lczsKICAgICAgICBpZiAoIWlzQXJyYXkpIGFycmF5ID0gW2FycmF5XTsKICAgICAgICB0aGlzLiRyZWZzLnRyZWVDb250cm9scy5jaGFuZ2VIb3ZlckJ5TmFtZXMoYXJyYXksIHJlZ2lvbiwgcHJvcGFnYXRlKTsKICAgICAgfQogICAgfSwKICAgIC8qKg0KICAgICAqIFN0YXJ0IHRoZSBhbmltYXRpb24uDQogICAgICoNCiAgICAgKiBAcGFyYW0ge29iamVjdH0gb2JqZWN0IFppbmMgb2JqZWN0DQogICAgICovCiAgICBwbGF5OiBmdW5jdGlvbiBwbGF5KGZsYWcpIHsKICAgICAgdGhpcy4kbW9kdWxlLnBsYXlBbmltYXRpb24oZmxhZyk7CiAgICAgIHRoaXMuaXNQbGF5aW5nID0gZmxhZzsKICAgICAgLy9IaWRlIHRvb2x0aXAgYXMgbG9jYXRpb24gbWF5CiAgICAgIC8vdGhpcy5oaWRlUmVnaW9uVG9vbHRpcCgpOwogICAgfSwKCiAgICAvKioNCiAgICAgKiBGdW5jdGlvbiB0byB0b2dnbGUgb24vb2ZmIG92ZXJsYXkgaGVscC4NCiAgICAgKi8KICAgIHNldEhlbHBNb2RlOiBmdW5jdGlvbiBzZXRIZWxwTW9kZShoZWxwTW9kZSkgewogICAgICBpZiAoaGVscE1vZGUpIHsKICAgICAgICB0aGlzLmluSGVscCA9IHRydWU7CiAgICAgICAgdGhpcy5ob3ZlclZpc2liaWxpdGllcy5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICBpdGVtLnZhbHVlID0gdHJ1ZTsKICAgICAgICB9KTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLmluSGVscCA9IGZhbHNlOwogICAgICAgIHRoaXMuaG92ZXJWaXNpYmlsaXRpZXMuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgaXRlbS52YWx1ZSA9IGZhbHNlOwogICAgICAgIH0pOwogICAgICB9CiAgICB9LAogICAgLyoqDQogICAgICogQ2FsbGJhY2sgZnVuY3Rpb24gdXNlZCBieSBzaG93UmVnaW9uVG9vbHRpcCBpbiB0aGUgY2FzZSB3aGVuIHRoZSB0b29sdGlwDQogICAgICogaXMgb3V0IG9mIHZpZXcuDQogICAgICovCiAgICBkaXNwbGF5VG9vbHRpcE9mT2JqZWN0c0NhbGxiYWNrOiBmdW5jdGlvbiBkaXNwbGF5VG9vbHRpcE9mT2JqZWN0c0NhbGxiYWNrKG5hbWUsIG9iamVjdHMsIHJlZ2lvblBhdGgsIHJlc2V0VmlldywgbGl2ZVVwZGF0ZXMpIHsKICAgICAgdmFyIGluc3RhbmNlID0gdGhpczsKICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHsKICAgICAgICBpbnN0YW5jZS4kbW9kdWxlLnppbmNSZW5kZXJlci5yZW1vdmVQb3N0UmVuZGVyQ2FsbGJhY2tGdW5jdGlvbihpbnN0YW5jZS4kX3JlZ2lvblRvb2x0aXBDYWxsYmFjayk7CiAgICAgICAgaW5zdGFuY2UuJF9yZWdpb25Ub29sdGlwQ2FsbGJhY2sgPSB1bmRlZmluZWQ7CiAgICAgICAgaW5zdGFuY2UuZGlzcGxheVRvb2x0aXBPZk9iamVjdHMobmFtZSwgb2JqZWN0cywgcmVnaW9uUGF0aCwgcmVzZXRWaWV3LCBsaXZlVXBkYXRlcyk7CiAgICAgIH07CiAgICB9LAogICAgbGl2ZVVwZGF0ZVRvb2x0aXBQb3NpdGlvbjogZnVuY3Rpb24gbGl2ZVVwZGF0ZVRvb2x0aXBQb3NpdGlvbigpIHsKICAgICAgaWYgKHRoaXMuJG1vZHVsZS5zZWxlY3RlZENlbnRlcikgewogICAgICAgIHRoaXMudERhdGEueCA9IHRoaXMuJG1vZHVsZS5zZWxlY3RlZFNjcmVlbkNvb3JkaW5hdGVzLng7CiAgICAgICAgdGhpcy50RGF0YS55ID0gdGhpcy4kbW9kdWxlLnNlbGVjdGVkU2NyZWVuQ29vcmRpbmF0ZXMueTsKICAgICAgfQogICAgfSwKICAgIGRpc3BsYXlUb29sdGlwT2ZPYmplY3RzOiBmdW5jdGlvbiBkaXNwbGF5VG9vbHRpcE9mT2JqZWN0cyhuYW1lLCBvYmplY3RzLCByZWdpb25QYXRoLCByZXNldFZpZXcsIGxpdmVVcGRhdGVzKSB7CiAgICAgIGlmIChvYmplY3RzLmxlbmd0aCA+IDApIHsKICAgICAgICB2YXIgY29vcmRzID0gb2JqZWN0c1swXS5nZXRDbG9zZXN0VmVydGV4RE9NRWxlbWVudENvb3Jkcyh0aGlzLiRtb2R1bGUuc2NlbmUpOwogICAgICAgIGlmIChjb29yZHMpIHsKICAgICAgICAgIC8vVGhlIGNvb3JkcyBpcyBub3QgaW4gdmlldywgdmlldyBhbGwgaWYgcmVzZXRWaWV3IGZsYWcgaXMgdHJ1ZQogICAgICAgICAgaWYgKCFjb29yZHMuaW5WaWV3KSB7CiAgICAgICAgICAgIHRoaXMuaGlkZVJlZ2lvblRvb2x0aXAoKTsKICAgICAgICAgICAgaWYgKHJlc2V0VmlldykgewogICAgICAgICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS52aWV3QWxsKCk7CiAgICAgICAgICAgICAgLy9Vc2UgdGhlIHBvc3QgcmVuZGVyIGNhbGxiYWNrIHRvIG1ha2Ugc3VyZSB0aGUgc2NlbmUgaGFzIGJlZW4gdXBkYXRlZAogICAgICAgICAgICAgIC8vYmVmb3JlIGdldHRpbmcgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwLgogICAgICAgICAgICAgIGlmICh0aGlzLiRfcmVnaW9uVG9vbHRpcENhbGxiYWNrKSB7CiAgICAgICAgICAgICAgICB0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyLnJlbW92ZVBvc3RSZW5kZXJDYWxsYmFja0Z1bmN0aW9uKHRoaXMuJF9yZWdpb25Ub29sdGlwQ2FsbGJhY2spOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB0aGlzLiRfcmVnaW9uVG9vbHRpcENhbGxiYWNrID0gdGhpcy4kbW9kdWxlLnppbmNSZW5kZXJlci5hZGRQb3N0UmVuZGVyQ2FsbGJhY2tGdW5jdGlvbih0aGlzLmRpc3BsYXlUb29sdGlwT2ZPYmplY3RzQ2FsbGJhY2sobmFtZSwgb2JqZWN0cywgcmVnaW9uUGF0aCwgcmVzZXRWaWV3LCBsaXZlVXBkYXRlcykpOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLnREYXRhLnZpc2libGUgPSB0cnVlOwogICAgICAgICAgICB0aGlzLnREYXRhLmxhYmVsID0gbmFtZTsKICAgICAgICAgICAgdGhpcy50RGF0YS54ID0gY29vcmRzLnBvc2l0aW9uLng7CiAgICAgICAgICAgIHRoaXMudERhdGEueSA9IGNvb3Jkcy5wb3NpdGlvbi55OwogICAgICAgICAgICB0aGlzLnREYXRhLnJlZ2lvbiA9IHJlZ2lvblBhdGg7CiAgICAgICAgICAgIGlmICh0aGlzLiRfbGl2ZUNvb3JkaW5hdGVzVXBkYXRlZCkgewogICAgICAgICAgICAgIHRoaXMuJG1vZHVsZS56aW5jUmVuZGVyZXIucmVtb3ZlUG9zdFJlbmRlckNhbGxiYWNrRnVuY3Rpb24odGhpcy4kX2xpdmVDb29yZGluYXRlc1VwZGF0ZWQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChsaXZlVXBkYXRlcykgewogICAgICAgICAgICAgIHRoaXMuJG1vZHVsZS5zZXR1cExpdmVDb29yZGluYXRlcyhvYmplY3RzKTsKICAgICAgICAgICAgICB0aGlzLiRfbGl2ZUNvb3JkaW5hdGVzVXBkYXRlZCA9IHRoaXMuJG1vZHVsZS56aW5jUmVuZGVyZXIuYWRkUG9zdFJlbmRlckNhbGxiYWNrRnVuY3Rpb24odGhpcy5saXZlVXBkYXRlVG9vbHRpcFBvc2l0aW9uKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICB9CiAgICAgIHRoaXMuaGlkZVJlZ2lvblRvb2x0aXAoKTsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSwKICAgIC8qKg0KICAgICAqIERpc3BsYXkgdGhlIHRvb2x0aXAgdXNlZCBmb3IgZGlzcGxheWluZyBzZWFyY2ggcmVzdWx0Lg0KICAgICAqIFdoZW4gcmVzZXRWaWV3IGlzIHNldCB0byB0cnVlLCBpdCB3aWxsDQogICAgICogcmVzZXQgdmlldyBpZiB0aGUgdG9vbHRpcCBpcyBub3QgaW4gdmlldy4NCiAgICAgKiBTZXR0aW5nIGxpdmVVcGRhdGVzIHRvIHRydWUgd2lsbCB1cGRhdGUgdGhlIHRvb2x0aXAgbG9jYXRpb24NCiAgICAgKiBhdCBldmVyeSByZW5kZXJpbmcgbG9vcC4NCiAgICAgKi8KICAgIHNob3dSZWdpb25Ub29sdGlwV2l0aE9iamVjdHM6IGZ1bmN0aW9uIHNob3dSZWdpb25Ub29sdGlwV2l0aE9iamVjdHMobGFiZWwsIHppbmNPYmplY3RzLCByZWdpb25QYXRoLCByZXNldFZpZXcsIGxpdmVVcGRhdGVzKSB7CiAgICAgIGlmIChsYWJlbCAmJiB6aW5jT2JqZWN0cyAmJiB6aW5jT2JqZWN0cy5sZW5ndGggPiAwICYmIHRoaXMuJG1vZHVsZS5zY2VuZSkgewogICAgICAgIHJldHVybiB0aGlzLmRpc3BsYXlUb29sdGlwT2ZPYmplY3RzKGxhYmVsLCB6aW5jT2JqZWN0cywgcmVnaW9uUGF0aCwgcmVzZXRWaWV3LCBsaXZlVXBkYXRlcyk7CiAgICAgIH0KICAgICAgdGhpcy5oaWRlUmVnaW9uVG9vbHRpcCgpOwogICAgICByZXR1cm4gZmFsc2U7CiAgICB9LAogICAgLyoqDQogICAgICogRGlzcGxheSB0aGUgdG9vbHRpcC4gV2hlbiByZXNldFZpZXcgaXMgc2V0IHRvIHRydWUsIGl0IHdpbGwNCiAgICAgKiByZXNldCB2aWV3IGlmIHRoZSB0b29sdGlwIGlzIG5vdCBpbiB2aWV3Lg0KICAgICAqIFNldHRpbmcgbGl2ZVVwZGF0ZXMgdG8gdHJ1ZSB3aWxsIHVwZGF0ZSB0aGUgdG9vbHRpcCBsb2NhdGlvbg0KICAgICAqIGF0IGV2ZXJ5IHJlbmRlcmluZyBsb29wLg0KICAgICAqLwogICAgc2hvd1JlZ2lvblRvb2x0aXA6IGZ1bmN0aW9uIHNob3dSZWdpb25Ub29sdGlwKG5hbWUsIHJlc2V0VmlldywgbGl2ZVVwZGF0ZXMpIHsKICAgICAgaWYgKG5hbWUgJiYgdGhpcy4kbW9kdWxlLnNjZW5lKSB7CiAgICAgICAgdmFyIHJvb3RSZWdpb24gPSB0aGlzLiRtb2R1bGUuc2NlbmUuZ2V0Um9vdFJlZ2lvbigpOwogICAgICAgIHZhciBncm91cHMgPSBbbmFtZV07CiAgICAgICAgdmFyIG9iamVjdHMgPSBmaW5kT2JqZWN0c1dpdGhOYW1lcyhyb290UmVnaW9uLCBncm91cHMsICIiLCB0cnVlKTsKICAgICAgICB2YXIgcmVnaW9uUGF0aCA9IHVuZGVmaW5lZDsKICAgICAgICBpZiAob2JqZWN0cyAmJiBvYmplY3RzLmxlbmd0aCA+IDApIHsKICAgICAgICAgIHJlZ2lvblBhdGggPSBvYmplY3RzWzBdLmdldFJlZ2lvbigpLmdldEZ1bGxQYXRoKCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiB0aGlzLnNob3dSZWdpb25Ub29sdGlwV2l0aE9iamVjdHMobmFtZSwgb2JqZWN0cywgcmVnaW9uUGF0aCwgcmVzZXRWaWV3LCBsaXZlVXBkYXRlcyk7CiAgICAgIH0KICAgICAgdGhpcy5oaWRlUmVnaW9uVG9vbHRpcCgpOwogICAgICByZXR1cm4gZmFsc2U7CiAgICB9LAogICAgLyoqDQogICAgICogRGlzcGxheSB0aGUgdG9vbHRpcCB1c2luZyB0aGUgbGlzdCBvZiBhbm5vdGF0aW9ucy4NCiAgICAgKiBXaGVuIHJlc2V0VmlldyBpcyBzZXQgdG8gdHJ1ZSwgaXQgd2lsbA0KICAgICAqIHJlc2V0IHZpZXcgaWYgdGhlIHRvb2x0aXAgaXMgbm90IGluIHZpZXcuDQogICAgICogU2V0dGluZyBsaXZlVXBkYXRlcyB0byB0cnVlIHdpbGwgdXBkYXRlIHRoZSB0b29sdGlwIGxvY2F0aW9uDQogICAgICogYXQgZXZlcnkgcmVuZGVyaW5nIGxvb3AuDQogICAgICovCiAgICBzaG93UmVnaW9uVG9vbHRpcFdpdGhBbm5vdGF0aW9uczogZnVuY3Rpb24gc2hvd1JlZ2lvblRvb2x0aXBXaXRoQW5ub3RhdGlvbnMoYW5ub3RhdGlvbnMsIHJlc2V0VmlldywgbGl2ZVVwZGF0ZXMpIHsKICAgICAgaWYgKHRoaXMuJG1vZHVsZS5zY2VuZSkgewogICAgICAgIHZhciByZXN1bHQgPSBnZXRPYmplY3RzRnJvbUFubm90YXRpb25zKHRoaXMuJG1vZHVsZS5zY2VuZSwgYW5ub3RhdGlvbnMpOwogICAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0Lm9iamVjdHMubGVuZ3RoID4gMCkgewogICAgICAgICAgcmV0dXJuIHRoaXMuc2hvd1JlZ2lvblRvb2x0aXBXaXRoT2JqZWN0cyhyZXN1bHQubGFiZWwsIHJlc3VsdC5vYmplY3RzLCByZXN1bHQucmVnaW9uUGF0aCwgcmVzZXRWaWV3LCBsaXZlVXBkYXRlcyk7CiAgICAgICAgfQogICAgICB9CiAgICAgIHRoaXMuaGlkZVJlZ2lvblRvb2x0aXAoKTsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSwKICAgIGhpZGVSZWdpb25Ub29sdGlwOiBmdW5jdGlvbiBoaWRlUmVnaW9uVG9vbHRpcCgpIHsKICAgICAgaWYgKHRoaXMuJF9saXZlQ29vcmRpbmF0ZXNVcGRhdGVkKSB7CiAgICAgICAgdGhpcy4kbW9kdWxlLnppbmNSZW5kZXJlci5yZW1vdmVQb3N0UmVuZGVyQ2FsbGJhY2tGdW5jdGlvbih0aGlzLiRfbGl2ZUNvb3JkaW5hdGVzVXBkYXRlZCk7CiAgICAgICAgLy9VbnNldCB0aGUgdHJhY2tpbmcKICAgICAgICB0aGlzLiRtb2R1bGUuc2V0dXBMaXZlQ29vcmRpbmF0ZXModW5kZWZpbmVkKTsKICAgICAgfQogICAgICB0aGlzLnREYXRhLnZpc2libGUgPSBmYWxzZTsKICAgICAgdGhpcy50RGF0YS5yZWdpb24gPSB1bmRlZmluZWQ7CiAgICB9LAogICAgLyoqDQogICAgICogU2V0IHRoZSBtYXJrZXIgbW9kZXMgZm9yIG9iamVjdHMgd2l0aCB0aGUgcHJvdmlkZWQgbmFtZSwgbW9kZSBjYW4NCiAgICAgKiBiZSAib24iLCAib2ZmIiBvciAiaW5oZXJpdGVkIi4NCiAgICAgKi8KICAgIHNldE1hcmtlck1vZGVGb3JPYmplY3RzV2l0aE5hbWU6IGZ1bmN0aW9uIHNldE1hcmtlck1vZGVGb3JPYmplY3RzV2l0aE5hbWUobmFtZSwgbW9kZSkgewogICAgICBpZiAobmFtZSAmJiB0aGlzLiRtb2R1bGUuc2NlbmUpIHsKICAgICAgICB2YXIgcm9vdFJlZ2lvbiA9IHRoaXMuJG1vZHVsZS5zY2VuZS5nZXRSb290UmVnaW9uKCk7CiAgICAgICAgdmFyIGdyb3VwcyA9IFtuYW1lXTsKICAgICAgICB2YXIgb2JqZWN0cyA9IGZpbmRPYmplY3RzV2l0aE5hbWVzKHJvb3RSZWdpb24sIGdyb3VwcywgIiIsIHRydWUpOwogICAgICAgIG9iamVjdHMuZm9yRWFjaChmdW5jdGlvbiAob2JqZWN0KSB7CiAgICAgICAgICByZXR1cm4gb2JqZWN0LnNldE1hcmtlck1vZGUobW9kZSk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0sCiAgICAvKioNCiAgICAgKiBTZXQgdGhlIG1hcmtlciBtb2RlcyBmb3Igb2JqZWN0cyBzcGVjaWZpZWQgYnkgdGhlIGxpc3Qgb2YgYW5ub3RhdGlvbnMNCiAgICAgKi8KICAgIHNldE1hcmtlck1vZGVXaXRoQW5ub3RhdGlvbnM6IGZ1bmN0aW9uIHNldE1hcmtlck1vZGVXaXRoQW5ub3RhdGlvbnMoYW5ub3RhdGlvbnMsIG1vZGUpIHsKICAgICAgaWYgKHRoaXMuJG1vZHVsZS5zY2VuZSkgewogICAgICAgIHZhciByZXN1bHQgPSBnZXRPYmplY3RzRnJvbUFubm90YXRpb25zKHRoaXMuJG1vZHVsZS5zY2VuZSwgYW5ub3RhdGlvbnMpOwogICAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0Lm9iamVjdHMubGVuZ3RoID4gMCkgewogICAgICAgICAgcmVzdWx0Lm9iamVjdHMuZm9yRWFjaChmdW5jdGlvbiAob2JqZWN0KSB7CiAgICAgICAgICAgIHJldHVybiBvYmplY3Quc2V0TWFya2VyTW9kZShtb2RlKTsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIC8qKg0KICAgICAqIFRoaXMgaXMgY2FsbGVkIHdoZW4gbW91c2UgY3Vyc29yIGVudGVycyBzdXBwb3J0ZWQgZWxlbWVudHMNCiAgICAgKiB3aXRoIGhlbHAgdG9vdGx0aXBzLg0KICAgICAqLwogICAgc2hvd0hlbHBUZXh0OiBmdW5jdGlvbiBzaG93SGVscFRleHQoaGVscFRleHROdW1iZXIpIHsKICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CiAgICAgIGlmICghdGhpcy5pbkhlbHApIHsKICAgICAgICB0aGlzLmhlbHBUZXh0V2FpdCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgICAgX3RoaXMzLmhvdmVyVmlzaWJpbGl0aWVzW2hlbHBUZXh0TnVtYmVyXS52YWx1ZSA9IHRydWU7CiAgICAgICAgfSwgNTAwKTsKICAgICAgfQogICAgfSwKICAgIC8qKg0KICAgICAqIFRoaXMgaXMgY2FsbGVkIHdoZW4gbW91c2UgY3Vyc29yIGV4aXRzIHN1cHBvcnRlZCBlbGVtZW50Li4NCiAgICAgKi8KICAgIGhpZGVIZWxwVGV4dDogZnVuY3Rpb24gaGlkZUhlbHBUZXh0KGhlbHBUZXh0TnVtYmVyKSB7CiAgICAgIGlmICghdGhpcy5pbkhlbHApIHsKICAgICAgICB0aGlzLmhvdmVyVmlzaWJpbGl0aWVzW2hlbHBUZXh0TnVtYmVyXS52YWx1ZSA9IGZhbHNlOwogICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmhlbHBUZXh0V2FpdCk7CiAgICAgIH0KICAgIH0sCiAgICBzZWFyY2g6IGZ1bmN0aW9uIHNlYXJjaCh0ZXh0LCBkaXNwbGF5TGFiZWwpIHsKICAgICAgaWYgKHRoaXMuJF9zZWFyY2hJbmRleCkgewogICAgICAgIGlmICh0ZXh0ID09PSB1bmRlZmluZWQgfHwgdGV4dCA9PT0gIiIgfHwgQXJyYXkuaXNBcnJheSh0ZXh0KSAmJiB0ZXh0Lmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgdGhpcy5vYmplY3RTZWxlY3RlZChbXSwgdHJ1ZSk7CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHZhciByZXN1bHQgPSB0aGlzLiRfc2VhcmNoSW5kZXguc2VhcmNoQW5kUHJvY2Vzc1Jlc3VsdCh0ZXh0KTsKICAgICAgICAgIHZhciB6aW5jT2JqZWN0cyA9IHJlc3VsdC56aW5jT2JqZWN0czsKICAgICAgICAgIGlmICh6aW5jT2JqZWN0cy5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgIHRoaXMub2JqZWN0U2VsZWN0ZWQoemluY09iamVjdHMsIHRydWUpOwogICAgICAgICAgICBpZiAoZGlzcGxheUxhYmVsKSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB6aW5jT2JqZWN0cy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgaWYgKHppbmNPYmplY3RzW2ldICYmIHppbmNPYmplY3RzW2ldLmdyb3VwTmFtZSkgewogICAgICAgICAgICAgICAgICB0aGlzLnNob3dSZWdpb25Ub29sdGlwV2l0aE9iamVjdHMocmVzdWx0LmxhYmVsLCB6aW5jT2JqZWN0cywgcmVzdWx0LnJlZ2lvblBhdGgsIHRydWUsIHRydWUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRoaXMub2JqZWN0U2VsZWN0ZWQoW10sIHRydWUpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gZmFsc2U7CiAgICB9LAogICAgLyoqDQogICAgICogR2V0IHRoZSBsaXN0IG9mIHN1Z2dlc3RlZCB0ZXJtcw0KICAgICAqLwogICAgZmV0Y2hTdWdnZXN0aW9uczogZnVuY3Rpb24gZmV0Y2hTdWdnZXN0aW9ucyh0ZXJtKSB7CiAgICAgIGlmICh0aGlzLiRfc2VhcmNoSW5kZXggPT09IHVuZGVmaW5lZCkgcmV0dXJuIFtdOwogICAgICByZXR1cm4gdGhpcy4kX3NlYXJjaEluZGV4LmF1dG9fc3VnZ2VzdCh0ZXJtKTsKICAgIH0sCiAgICAvKioNCiAgICAgKiBDYWxsZWQgd2hlbiBtaW5pbWFwIHNldHRpbmdzIGhhcyBjaGFuZ2VkLiBQYXNzIHRoZQ0KICAgICAqIHBhcmFtZXRlcnMgdG8gWmluY0pTIGFuZCBtYXJrZWQgaXQgZm9yIHVwZGF0ZS4NCiAgICAgKi8KICAgIHVwZGF0ZU1pbmltYXBTY2lzc29yOiBmdW5jdGlvbiB1cGRhdGVNaW5pbWFwU2Npc3NvcigpIHsKICAgICAgdmFyIF90aGlzNCA9IHRoaXM7CiAgICAgIE9iamVjdC5rZXlzKHRoaXMubWluaW1hcFNldHRpbmdzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsKICAgICAgICBfdGhpczQuJG1vZHVsZS5zY2VuZS5taW5pbWFwU2Npc3NvcltrZXldID0gX3RoaXM0Lm1pbmltYXBTZXR0aW5nc1trZXldOwogICAgICB9KTsKICAgICAgdGhpcy4kbW9kdWxlLnNjZW5lLm1pbmltYXBTY2lzc29yLnVwZGF0ZVJlcXVpcmVkID0gdHJ1ZTsKICAgIH0sCiAgICB1cGRhdGVTZXR0aW5nc2Zyb21TY2VuZTogZnVuY3Rpb24gdXBkYXRlU2V0dGluZ3Nmcm9tU2NlbmUoKSB7CiAgICAgIHRoaXMuY3VycmVudFNwZWVkID0gMTsKICAgICAgdGhpcy4kbW9kdWxlLnNldFBsYXlSYXRlKHRoaXMuZGVmYXVsdFJhdGUpOwogICAgICB0aGlzLm9yZ2luYWxEdXJhdGlvbiA9IHRoaXMuJG1vZHVsZS5zY2VuZS5nZXRNZXRhZGF0YVRhZygiT3JpZ2luYWxEdXJhdGlvbiIpOwogICAgICB0aGlzLmFuaW1hdGVEdXJhdGlvbiA9IHRoaXMuJG1vZHVsZS5zY2VuZS5nZXRNZXRhZGF0YVRhZygiRHVyYXRpb24iKTsKICAgICAgdmFyIHRpbWVTdGFtcHMgPSB0aGlzLiRtb2R1bGUuc2NlbmUuZ2V0TWV0YWRhdGFUYWcoIlRpbWVTdGFtcHMiKTsKICAgICAgdGhpcy50aW1lU3RhbXBzID0ge307CiAgICAgIGZvciAodmFyIGtleSBpbiB0aW1lU3RhbXBzKSB7CiAgICAgICAgdGhpcy50aW1lU3RhbXBzW3RpbWVTdGFtcHNba2V5XV0gPSBrZXk7CiAgICAgIH0KICAgICAgdGhpcy50aW1lTWF4ID0gdGhpcy4kbW9kdWxlLnNjZW5lLmdldER1cmF0aW9uKCk7CiAgICB9LAogICAgc2V0VVJMRmluaXNoQ2FsbGJhY2s6IGZ1bmN0aW9uIHNldFVSTEZpbmlzaENhbGxiYWNrKG9wdGlvbnMpIHsKICAgICAgdmFyIF90aGlzNSA9IHRoaXM7CiAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7CiAgICAgICAgaWYgKG9wdGlvbnMpIHsKICAgICAgICAgIGlmIChvcHRpb25zLnZpZXdwb3J0KSB7CiAgICAgICAgICAgIF90aGlzNS4kbW9kdWxlLnNjZW5lLmdldFppbmNDYW1lcmFDb250cm9scygpLnNldEN1cnJlbnRDYW1lcmFTZXR0aW5ncyhvcHRpb25zLnZpZXdwb3J0KTsKICAgICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy52aWV3VVJMICYmIG9wdGlvbnMudmlld1VSTCAhPT0gIiIpIHsKICAgICAgICAgICAgdmFyIHVybCA9IG5ldyBVUkwob3B0aW9ucy52aWV3VVJMLCBfdGhpczUudXJsKTsKICAgICAgICAgICAgX3RoaXM1LiRtb2R1bGUuc2NlbmUubG9hZFZpZXdVUkwodXJsKTsKICAgICAgICAgIH0gZWxzZSBpZiAob3B0aW9ucy5yZWdpb24gJiYgb3B0aW9ucy5yZWdpb24gIT09ICIiKSB7CiAgICAgICAgICAgIF90aGlzNS52aWV3UmVnaW9uKG9wdGlvbnMucmVnaW9uKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChvcHRpb25zLnZpc2liaWxpdHkpIHsKICAgICAgICAgICAgLy8gU29tZSBVSXMgbWF5IG5vdCBiZSByZWFkeSBhdCB0aGlzIHRpbWUuCiAgICAgICAgICAgIF90aGlzNS4kbmV4dFRpY2soZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIF90aGlzNS4kcmVmcy50cmVlQ29udHJvbHMuc2V0U3RhdGUob3B0aW9ucy52aXNpYmlsaXR5KTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIF90aGlzNS51cGRhdGVTZXR0aW5nc2Zyb21TY2VuZSgpOwogICAgICAgIF90aGlzNS4kbW9kdWxlLnVwZGF0ZVRpbWUoMC4wMSk7CiAgICAgICAgX3RoaXM1LiRtb2R1bGUudXBkYXRlVGltZSgwKTsKICAgICAgICBfdGhpczUuJG1vZHVsZS51bnNldEZpbmlzaERvd25sb2FkQ2FsbGJhY2soKTsKICAgICAgICBfdGhpczUuYWRkUmVnaW9uc1RvU2VhcmNoSW5kZXgoKTsKICAgICAgICBfdGhpczUuJGVtaXQoIm9uLXJlYWR5Iik7CiAgICAgICAgX3RoaXM1LnNldE1hcmtlcnMoKTsKICAgICAgICBfdGhpczUuaXNSZWFkeSA9IHRydWU7CiAgICAgIH07CiAgICB9LAogICAgLyoqDQogICAgICogRnVuY3Rpb24gdXNlZCBmb3IgZ2V0dGluZyB0aGUgY3VycmVudCBzdGF0ZXMgb2YgdGhlIHNjZW5lLiBUaGlzIGV4cG9ydGVkIHN0YXRlcw0KICAgICAqIGNhbiBiZSBpbXBvcnRlZCB1c2luZyB0aGUgaW1wb3J0U3RhdGVzIG1ldGhvZC4NCiAgICAgKg0KICAgICAqIEBwdWJsaWMNCiAgICAgKi8KICAgIGdldFN0YXRlOiBmdW5jdGlvbiBnZXRTdGF0ZSgpIHsKICAgICAgdmFyIHN0YXRlID0gewogICAgICAgIGZvcm1hdDogdGhpcy5maWxlRm9ybWF0LAogICAgICAgIHVybDogdGhpcy5fY3VycmVudFVSTCwKICAgICAgICB2aWV3cG9ydDogdW5kZWZpbmVkLAogICAgICAgIHZpc2liaWxpdHk6IHVuZGVmaW5lZAogICAgICB9OwogICAgICBpZiAodGhpcy4kcmVmcy50cmVlQ29udHJvbHMpIHN0YXRlLnZpc2liaWxpdHkgPSB0aGlzLiRyZWZzLnRyZWVDb250cm9scy5nZXRTdGF0ZSgpOwogICAgICBpZiAodGhpcy4kbW9kdWxlLnNjZW5lKSB7CiAgICAgICAgdmFyIHppbmNDYW1lcmFDb250cm9scyA9IHRoaXMuJG1vZHVsZS5zY2VuZS5nZXRaaW5jQ2FtZXJhQ29udHJvbHMoKTsKICAgICAgICBzdGF0ZS52aWV3cG9ydCA9IHppbmNDYW1lcmFDb250cm9scy5nZXRDdXJyZW50Vmlld3BvcnQoKTsKICAgICAgfQogICAgICByZXR1cm4gc3RhdGU7CiAgICB9LAogICAgLyoqDQogICAgICogRnVuY3Rpb24gdXNlZCBmb3IgaW1wb3J0aW5nIHRoZSBzdGF0ZXMgb2YgdGhlIHNjZW5lLiBUaGlzIGV4cG9ydGVkIHN0YXRlcw0KICAgICAqIGNhbiBiZSBpbXBvcnRlZCB1c2luZyB0aGUgcmVhZCBzdGF0ZXMgbWV0aG9kLg0KICAgICAqDQogICAgICogQHB1YmxpYw0KICAgICAqLwogICAgc2V0U3RhdGU6IGZ1bmN0aW9uIHNldFN0YXRlKHN0YXRlKSB7CiAgICAgIGlmIChzdGF0ZSkgewogICAgICAgIGlmIChzdGF0ZS51cmwgJiYgc3RhdGUudXJsICE9PSB0aGlzLl9jdXJyZW50VVJMKSB7CiAgICAgICAgICB0aGlzLnNldFVSTEFuZFN0YXRlKHN0YXRlLnVybCwgewogICAgICAgICAgICBmaWxlRm9ybWF0OiBzdGF0ZS5maWxlRm9ybWF0LAogICAgICAgICAgICB2aWV3cG9ydDogc3RhdGUudmlld3BvcnQsCiAgICAgICAgICAgIHZpc2liaWxpdHk6IHN0YXRlLnZpc2liaWxpdHkKICAgICAgICAgIH0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBpZiAoc3RhdGUudmlld3BvcnQgfHwgc3RhdGUudmlzaWJpbGl0eSkgewogICAgICAgICAgICBpZiAodGhpcy5pc1JlYWR5ICYmIHRoaXMuJG1vZHVsZS5zY2VuZSkgewogICAgICAgICAgICAgIGlmIChzdGF0ZS52aWV3cG9ydCkgdGhpcy4kbW9kdWxlLnNjZW5lLmdldFppbmNDYW1lcmFDb250cm9scygpLnNldEN1cnJlbnRDYW1lcmFTZXR0aW5ncyhzdGF0ZS52aWV3cG9ydCk7CiAgICAgICAgICAgICAgaWYgKHN0YXRlLnZpc2liaWxpdHkpIHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzLnNldFN0YXRlKHN0YXRlLnZpc2liaWxpdHkpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHRoaXMuJG1vZHVsZS5zZXRGaW5pc2hEb3dubG9hZENhbGxiYWNrKHRoaXMuc2V0VVJMRmluaXNoQ2FsbGJhY2soewogICAgICAgICAgICAgICAgdmlld3BvcnQ6IHN0YXRlLnZpZXdwb3J0LAogICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogc3RhdGUudmlzaWJpbGl0eQogICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIGV4cG9ydEdMVEY6IGZ1bmN0aW9uIGV4cG9ydEdMVEYoYmluYXJ5KSB7CiAgICAgIHJldHVybiB0aGlzLiRtb2R1bGUuc2NlbmUuZXhwb3J0R0xURihiaW5hcnkpOwogICAgfSwKICAgIC8qKg0KICAgICAqIEZ1bmN0aW9uIHVzZWQgZm9yIHJlYWRpbmcgaW4gbmV3IHNjYWZmb2xkIG1ldGFkYXRhIGFuZCBhIGN1c3RvbQ0KICAgICAqIHZpZXdwb3J0LiBUaGlzIGZ1bmN0aW9uIHdpbGwgaWdub3JlIHRoZSBzdGF0ZSBwcm9wIGFuZA0KICAgICAqIHJlYWQgaW4gdGhlIG5ldyB1cmwuDQogICAgICoNCiAgICAgKiBAcHVibGljDQogICAgICovCiAgICBzZXRVUkxBbmRTdGF0ZTogZnVuY3Rpb24gc2V0VVJMQW5kU3RhdGUobmV3VmFsdWUsIHN0YXRlKSB7CiAgICAgIGlmIChuZXdWYWx1ZSAhPSB0aGlzLl9jdXJyZW50VVJMKSB7CiAgICAgICAgaWYgKHN0YXRlICYmIHN0YXRlLmZvcm1hdCkgdGhpcy5maWxlRm9ybWF0ID0gc3RhdGUuZm9ybWF0OwogICAgICAgIHZhciB2aWV3cG9ydCA9IHN0YXRlICYmIHN0YXRlLnZpZXdwb3J0ID8gc3RhdGUudmlld3BvcnQgOiB1bmRlZmluZWQ7CiAgICAgICAgdmFyIHZpc2liaWxpdHkgPSBzdGF0ZSAmJiBzdGF0ZS52aXNpYmlsaXR5ID8gc3RhdGUudmlzaWJpbGl0eSA6IHVuZGVmaW5lZDsKICAgICAgICB0aGlzLl9jdXJyZW50VVJMID0gbmV3VmFsdWU7CiAgICAgICAgaWYgKHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzKSB0aGlzLiRyZWZzLnRyZWVDb250cm9scy5jbGVhcigpOwogICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7CiAgICAgICAgdGhpcy5pc1JlYWR5ID0gZmFsc2U7CiAgICAgICAgdGhpcy4kX3NlYXJjaEluZGV4LnJlbW92ZUFsbCgpOwogICAgICAgIHRoaXMuaGlkZVJlZ2lvblRvb2x0aXAoKTsKICAgICAgICB0aGlzLiRtb2R1bGUuc2V0RmluaXNoRG93bmxvYWRDYWxsYmFjayh0aGlzLnNldFVSTEZpbmlzaENhbGxiYWNrKHsKICAgICAgICAgIHZpZXdwb3J0OiB2aWV3cG9ydCwKICAgICAgICAgIHJlZ2lvbjogdGhpcy5yZWdpb24sCiAgICAgICAgICB2aWV3VVJMOiB0aGlzLnZpZXdVUkwsCiAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmlsaXR5CiAgICAgICAgfSkpOwogICAgICAgIGlmICh0aGlzLmZpbGVGb3JtYXQgPT09ICJnbHRmIikgewogICAgICAgICAgdGhpcy4kbW9kdWxlLmxvYWRHTFRGRnJvbVVSTChuZXdWYWx1ZSwgInNjZW5lIiwgdHJ1ZSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuJG1vZHVsZS5sb2FkT3JnYW5zRnJvbVVSTChuZXdWYWx1ZSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsICJzY2VuZSIsIHVuZGVmaW5lZCwgdHJ1ZSk7CiAgICAgICAgfQogICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5kaXNwbGF5TWFya2VycyA9IHRoaXMuZGlzcGxheU1hcmtlcnM7CiAgICAgICAgdGhpcy4kbW9kdWxlLnNjZW5lLmZvcmNlUGlja2FibGVPYmplY3RzVXBkYXRlID0gdHJ1ZTsKICAgICAgICB0aGlzLiRtb2R1bGUuc2NlbmUuZGlzcGxheU1pbmltYXAgPSB0aGlzLmRpc3BsYXlNaW5pbWFwOwogICAgICAgIHRoaXMudXBkYXRlTWluaW1hcFNjaXNzb3IoKTsKICAgICAgfQogICAgfSwKICAgIC8qKg0KICAgICAqIEZ1bmN0aW9uIHVzZWQgZm9yIHJlYWRpbmcgaW4gbmV3IHNjYWZmb2xkIG1ldGFkYXRhLiBUaGlzIGZ1bmN0aW9uIHdpbGwgaWdub3JlDQogICAgICogdGhlIHN0YXRlIHByb3AgYW5kIHJlYWQgaW4gdGhlIG5ldyB1cmwuDQogICAgICoNCiAgICAgKiBAcHVibGljDQogICAgICovCiAgICBzZXRVUkw6IGZ1bmN0aW9uIHNldFVSTChuZXdWYWx1ZSkgewogICAgICB0aGlzLnNldFVSTEFuZFN0YXRlKG5ld1ZhbHVlLCB1bmRlZmluZWQpOwogICAgfSwKICAgIC8qKg0KICAgICAqIENhbGxiYWNrIHdoZW4gZHJhd2VyIGlzIHRvZ2dsZWQuDQogICAgICovCiAgICBkcmF3ZXJUb2dnbGVkOiBmdW5jdGlvbiBkcmF3ZXJUb2dnbGVkKGZsYWcpIHsKICAgICAgdGhpcy5kcmF3ZXJPcGVuID0gZmxhZzsKICAgICAgdGhpcy5hZGp1c3RMYXlvdXQoKTsKICAgIH0sCiAgICAvKioNCiAgICAgKiBDYWxsYmFjayB1c2luZyBSZXNpemVPYnNlcnZlci4NCiAgICAgKi8KICAgIGFkanVzdExheW91dDogZnVuY3Rpb24gYWRqdXN0TGF5b3V0KCkgewogICAgICB2YXIgd2lkdGggPSB0aGlzLiRyZWZzLnNjYWZmb2xkQ29udGFpbmVyLmNsaWVudFdpZHRoOwogICAgICB0aGlzLm1pbmltaXNlZFNsaWRlciA9IHdpZHRoIDwgODEyOwogICAgICBpZiAodGhpcy5taW5pbWlzZWRTbGlkZXIpIHsKICAgICAgICB0aGlzLnNsaWRlclBvc2l0aW9uID0gdGhpcy5kcmF3ZXJPcGVuID8gInJpZ2h0IiA6ICJsZWZ0IjsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLnNsaWRlclBvc2l0aW9uID0gIiI7CiAgICAgIH0KICAgIH0sCiAgICB0b2dnbGVSZW5kZXJpbmc6IGZ1bmN0aW9uIHRvZ2dsZVJlbmRlcmluZyhmbGFnKSB7CiAgICAgIGlmICh0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyKSB7CiAgICAgICAgaWYgKGZsYWcpIHsKICAgICAgICAgIHRoaXMuJG1vZHVsZS56aW5jUmVuZGVyZXIuYW5pbWF0ZSgpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyLnN0b3BBbmltYXRlKCk7CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgZm9yY2VSZXNpemU6IGZ1bmN0aW9uIGZvcmNlUmVzaXplKCkgewogICAgICBpZiAodGhpcy4kbW9kdWxlLnppbmNSZW5kZXJlcikgewogICAgICAgIHRoaXMuJG1vZHVsZS56aW5jUmVuZGVyZXIub25XaW5kb3dSZXNpemUoKTsKICAgICAgfQogICAgfSwKICAgIHN5bmNDb250cm9sQ2FsbGJhY2s6IGZ1bmN0aW9uIHN5bmNDb250cm9sQ2FsbGJhY2soKSB7CiAgICAgIHZhciBwYXlsb2FkID0gdGhpcy4kbW9kdWxlLk5EQ0NhbWVyYUNvbnRyb2wuZ2V0UGFuWm9vbSgpOwogICAgICBpZiAodGhpcy50RGF0YS52aXNpYmxlKSB7CiAgICAgICAgdGhpcy5zaG93UmVnaW9uVG9vbHRpcCh0aGlzLnREYXRhLmxhYmVsLCB0cnVlLCB0cnVlKTsKICAgICAgfQogICAgICB0aGlzLiRlbWl0KCJzY2FmZm9sZC1uYXZpZ2F0ZWQiLCBwYXlsb2FkKTsKICAgIH0sCiAgICAvKioNCiAgICAgKiBSb3RhdGUgbW9kZSAtICJub25lIiwgImhvcml6b250YWwiLCAidmVydGljYWwiLCAiZnJlZSIgYnV0DQogICAgICogaXQgd2lsbCBiZSBpZ25vcmVkIGlmIGZsYWcgaXMgc2V0IHRvIGZhbHNlLg0KICAgICAqLwogICAgdG9nZ2xlU3luY0NvbnRyb2w6IGZ1bmN0aW9uIHRvZ2dsZVN5bmNDb250cm9sKGZsYWcsIHJvdGF0ZU1vZGUpIHsKICAgICAgdGhpcy4kbW9kdWxlLnRvZ2dsZVN5bmNDb250cm9sKGZsYWcsIHJvdGF0ZU1vZGUpOwogICAgICB0aGlzLiRtb2R1bGUuc2V0U3luY0NvbnRyb2xDYWxsYmFjayh0aGlzLnN5bmNDb250cm9sQ2FsbGJhY2spOwogICAgfSwKICAgIC8qKg0KICAgICAqIFNldCB0aGUgbWFya2VycyBmb3IgdGhlIHNjZW5lLg0KICAgICAqLwogICAgc2V0TWFya2VyczogZnVuY3Rpb24gc2V0TWFya2VycygpIHsKICAgICAgdmFyIF90aGlzNiA9IHRoaXM7CiAgICAgIHRoaXMubWFya2VyTGFiZWxzLmZvckVhY2goZnVuY3Rpb24gKGwpIHsKICAgICAgICBfdGhpczYuc2V0TWFya2VyTW9kZUZvck9iamVjdHNXaXRoTmFtZShsLCAib24iKTsKICAgICAgfSk7CiAgICB9CiAgfQp9Ow=="},{"version":3,"names":["Vue","OpacityControls","ScaffoldTooltip","TreeControls","MapSvgIcon","MapSvgSpriteColor","findObjectsWithNames","getObjectsFromAnnotations","SearchIndex","lang","locale","use","_Button","_Col","_Loading","directive","_Option","_Popover","_Row","_Select","_Slider","_TabPane","_Tabs","OrgansViewer","require","EventNotifier","name","components","props","url","type","String","default","showColourPicker","Boolean","displayUI","displayAtStartUp","helpMode","displayWarning","warningMessage","displayLatestChanges","latestChangesMessage","displayMarkers","markerLabels","Array","_default","displayMinimap","format","minimapSettings","Object","x_offset","y_offset","width","height","align","enableOpenMapUI","openMapOptions","display","key","state","undefined","region","viewURL","render","data","sceneData","$module","isPlaying","isReady","isTransitioning","tooltipAppendToBody","hoverVisibilities","value","inHelp","loading","duration","drawerOpen","currentBackground","availableBackground","minimisedSlider","sliderPosition","timeMax","orginalDuration","animateDuration","playSpeed","label","currentSpeed","timeStamps","defaultCheckedKeys","tData","visible","x","y","fileFormat","previousMarkerLabels","watch","handler","immediate","newValue","setURL","setFocusedRegion","setState","deep","updateViewURL","val","setHelpMode","scene","forcePickableObjectsUpdate","sceneDataCurrentTime","$emit","currentTime","setDuration","toggleRendering","labels","_this","console","log","forEach","pml","setMarkerModeForObjectsWithName","l","beforeCreate","selectedObjects","hoveredObjects","_currentURL","$_searchIndex","mounted","$refs","treeControls","setModule","eventNotifier","subscribe","eventNotifierCallback","addNotifier","addOrganPartAddedCallback","zincObjectAdded","initialiseRenderer","ro","ResizeObserver","adjustLayout","observe","scaffoldContainer","defaultRate","getPlayRate","beforeDestroy","disconnect","destroy","methods","addZincObject","zincObject","uuid","addRegionsToSearchIndex","_this2","rootRegion","getRootRegion","regions","getChildRegions","addRegion","backgroundChangeCallback","colour","zincRenderer","getThreeJSRenderer","setClearColor","captureScreenshotCallback","removePostRenderCallbackFunction","captureID","screenshot","domElement","toDataURL","hrefElement","document","createElement","body","append","captureFilename","download","href","click","remove","captureScreenshot","filename","addPostRenderCallbackFunction","clearScene","clear","removeAll","clearAll","formatTooltip","sec","toFixed","min","fitWindow","viewAll","zoomIn","changeZoomByScrollRateUnit","zoomOut","speedChanged","speed","setPlayRate","stopFreeSpin","cameracontrol","getZincCameraControls","stopAutoTumble","findObjectsWithGroupName","objects","viewRegion","names","groups","isArray","box","getBoundingBoxOfZincObjects","isSyncControl","setSyncControlZoomToBox","dist","camera","far","near","viewAllWithBoundingBox","updateProjectionMatrix","setFinishDownloadCallback","setURLFinishCallback","URL","loadViewURL","getRendererInfo","info","freeSpin","enableAutoTumble","autoTumble","Math","PI","setTimeout","event","zincObjects","eventType","identifiers","identifier","id","group","push","length","updateActiveUI","hideRegionTooltip","removeActive","updateHoverUI","removeHover","coords","offsets","getBoundingClientRect","left","top","getCoordinatesOfSelected","getObjectsScreenXY","getDynamicSelectedCoordinates","selectedScreenCoordinates","timeChange","normalizedTime","updateTime","objectSelected","propagate","opacityControl","setObject","setSelectedByZincObjects","objectHovered","setHighlightedByZincObjects","changeActiveByName","array","changeActiveByNames","changeHighlightedByName","changeHoverByNames","play","flag","playAnimation","item","displayTooltipOfObjectsCallback","regionPath","resetView","liveUpdates","instance","$_regionTooltipCallback","displayTooltipOfObjects","liveUpdateTooltipPosition","selectedCenter","getClosestVertexDOMElementCoords","inView","position","$_liveCoordinatesUpdated","setupLiveCoordinates","showRegionTooltipWithObjects","showRegionTooltip","getRegion","getFullPath","showRegionTooltipWithAnnotations","annotations","result","mode","object","setMarkerMode","setMarkerModeWithAnnotations","showHelpText","helpTextNumber","_this3","helpTextWait","hideHelpText","clearTimeout","search","text","displayLabel","searchAndProcessResult","i","groupName","fetchSuggestions","term","auto_suggest","updateMinimapScissor","_this4","keys","minimapScissor","updateRequired","updateSettingsfromScene","getMetadataTag","getDuration","options","_this5","viewport","setCurrentCameraSettings","visibility","$nextTick","unsetFinishDownloadCallback","setMarkers","getState","zincCameraControls","getCurrentViewport","setURLAndState","exportGLTF","binary","loadGLTFFromURL","loadOrgansFromURL","drawerToggled","clientWidth","animate","stopAnimate","forceResize","onWindowResize","syncControlCallback","payload","NDCCameraControl","getPanZoom","toggleSyncControl","rotateMode","setSyncControlCallback","_this6"],"sources":["node_modules/@abi-software/scaffoldvuer/src/components/ScaffoldVuer.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuTA;AACA,OAAAA,GAAA;AACA,OAAAC,eAAA;AACA,OAAAC,eAAA;AACA,OAAAC,YAAA;AACA,SAAAC,UAAA,EAAAC,iBAAA;AACA,SAAAC,oBAAA,EAAAC,yBAAA;AACA,SAAAC,WAAA;AAaA,OAAAC,IAAA;AACA,OAAAC,MAAA;AAEAA,MAAA,CAAAC,GAAA,CAAAF,IAAA;AACAT,GAAA,CAAAW,GAAA,CAAAC,OAAA;AACAZ,GAAA,CAAAW,GAAA,CAAAE,IAAA;AACAb,GAAA,CAAAW,GAAA,CAAAG,QAAA,CAAAC,SAAA;AACAf,GAAA,CAAAW,GAAA,CAAAK,OAAA;AACAhB,GAAA,CAAAW,GAAA,CAAAM,QAAA;AACAjB,GAAA,CAAAW,GAAA,CAAAO,IAAA;AACAlB,GAAA,CAAAW,GAAA,CAAAQ,OAAA;AACAnB,GAAA,CAAAW,GAAA,CAAAS,OAAA;AACApB,GAAA,CAAAW,GAAA,CAAAU,QAAA;AACArB,GAAA,CAAAW,GAAA,CAAAW,KAAA;AAEA,IAAAC,YAAA,GAAAC,OAAA,8BAAAD,YAAA;AACA,IAAAE,aAAA,GAAAD,OAAA,6BAAAC,aAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;EACAC,IAAA;EACAC,UAAA;IACAvB,UAAA,EAAAA,UAAA;IACAC,iBAAA,EAAAA,iBAAA;IACAJ,eAAA,EAAAA,eAAA;IACAC,eAAA,EAAAA,eAAA;IACAC,YAAA,EAAAA;EACA;EACAyB,KAAA;IACA;AACA;AACA;AACA;AACA;AACA;IACAC,GAAA;MACAC,IAAA,EAAAC,MAAA;MACAC,OAAA;IACA;IACA;AACA;AACA;IACAC,gBAAA;MACAH,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACA;AACA;AACA;IACAG,SAAA;MACAL,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACA;AACA;AACA;AACA;AACA;IACAI,gBAAA;MACAN,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACA;AACA;AACA;IACAK,QAAA;MACAP,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACA;AACA;AACA;IACAM,cAAA;MACAR,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACA;AACA;AACA;AACA;IACAO,cAAA;MACAT,IAAA,EAAAC,MAAA;MACAC,OAAA;IACA;IACAQ,oBAAA;MACAV,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACAS,oBAAA;MACAX,IAAA,EAAAC,MAAA;MACAC,OAAA;IACA;IACA;AACA;AACA;IACAU,cAAA;MACAZ,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACAW,YAAA;MACAb,IAAA,EAAAc,KAAA;MACAZ,OAAA,WAAAa,SAAA;QACA;MACA;IACA;IACA;AACA;AACA;IACAC,cAAA;MACAhB,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACA;AACA;AACA;IACAe,MAAA;MACAjB,IAAA,EAAAC,MAAA;MACAC,OAAA;IACA;IACA;AACA;AACA;IACAgB,eAAA;MACAlB,IAAA,EAAAmB,MAAA;MACAjB,OAAA,WAAAa,SAAA;QACA;UACAK,QAAA;UACAC,QAAA;UACAC,KAAA;UACAC,MAAA;UACAC,KAAA;QACA;MACA;IACA;IACA;AACA;AACA;AACA;IACAC,eAAA;MACAzB,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;IACAwB,cAAA;MACA1B,IAAA,EAAAc,KAAA;MACAZ,OAAA,WAAAa,SAAA;QACA,QACA;UACAY,OAAA;UACAC,GAAA;QACA,GACA;UACAD,OAAA;UACAC,GAAA;QACA,GACA;UACAD,OAAA;UACAC,GAAA;QACA,EACA;MACA;IACA;IACA;AACA;AACA;IACAC,KAAA;MACA7B,IAAA,EAAAmB,MAAA;MACAjB,OAAA,EAAA4B;IACA;IACA;AACA;AACA;AACA;IACAC,MAAA;MACA/B,IAAA,EAAAC,MAAA;MACAC,OAAA;IACA;IACA;AACA;AACA;AACA;AACA;IACA8B,OAAA;MACAhC,IAAA,EAAAC,MAAA;MACAC,OAAA;IACA;IACA;AACA;AACA;IACA+B,MAAA;MACAjC,IAAA,EAAAI,OAAA;MACAF,OAAA;IACA;EACA;EACAgC,IAAA,WAAAA,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"}]}