{"remainingRequest":"/home/cmiss/Jenkins/workspace/mapintegratedvuer/node_modules/thread-loader/dist/cjs.js!/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/thread-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:aW1wb3J0IF9UYWJzMiBmcm9tICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay90YWJzLmNzcyI7CmltcG9ydCAiZWxlbWVudC11aS9saWIvdGhlbWUtY2hhbGsvYmFzZS5jc3MiOwppbXBvcnQgX1RhYnMgZnJvbSAiZWxlbWVudC11aS9saWIvdGFicyI7CmltcG9ydCBfVGFiUGFuZTIgZnJvbSAiZWxlbWVudC11aS9saWIvdGhlbWUtY2hhbGsvdGFiLXBhbmUuY3NzIjsKaW1wb3J0ICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9iYXNlLmNzcyI7CmltcG9ydCBfVGFiUGFuZSBmcm9tICJlbGVtZW50LXVpL2xpYi90YWItcGFuZSI7CmltcG9ydCBfU2xpZGVyMiBmcm9tICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9zbGlkZXIuY3NzIjsKaW1wb3J0ICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9iYXNlLmNzcyI7CmltcG9ydCBfU2xpZGVyIGZyb20gImVsZW1lbnQtdWkvbGliL3NsaWRlciI7CmltcG9ydCBfU2VsZWN0MiBmcm9tICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9zZWxlY3QuY3NzIjsKaW1wb3J0ICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9iYXNlLmNzcyI7CmltcG9ydCBfU2VsZWN0IGZyb20gImVsZW1lbnQtdWkvbGliL3NlbGVjdCI7CmltcG9ydCBfUm93MiBmcm9tICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9yb3cuY3NzIjsKaW1wb3J0ICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9iYXNlLmNzcyI7CmltcG9ydCBfUm93IGZyb20gImVsZW1lbnQtdWkvbGliL3JvdyI7CmltcG9ydCBfUG9wb3ZlcjIgZnJvbSAiZWxlbWVudC11aS9saWIvdGhlbWUtY2hhbGsvcG9wb3Zlci5jc3MiOwppbXBvcnQgImVsZW1lbnQtdWkvbGliL3RoZW1lLWNoYWxrL2Jhc2UuY3NzIjsKaW1wb3J0IF9Qb3BvdmVyIGZyb20gImVsZW1lbnQtdWkvbGliL3BvcG92ZXIiOwppbXBvcnQgX09wdGlvbjIgZnJvbSAiZWxlbWVudC11aS9saWIvdGhlbWUtY2hhbGsvb3B0aW9uLmNzcyI7CmltcG9ydCAiZWxlbWVudC11aS9saWIvdGhlbWUtY2hhbGsvYmFzZS5jc3MiOwppbXBvcnQgX09wdGlvbiBmcm9tICJlbGVtZW50LXVpL2xpYi9vcHRpb24iOwppbXBvcnQgX0xvYWRpbmcyIGZyb20gImVsZW1lbnQtdWkvbGliL3RoZW1lLWNoYWxrL2xvYWRpbmcuY3NzIjsKaW1wb3J0ICJlbGVtZW50LXVpL2xpYi90aGVtZS1jaGFsay9iYXNlLmNzcyI7CmltcG9ydCBfTG9hZGluZyBmcm9tICJlbGVtZW50LXVpL2xpYi9sb2FkaW5nIjsKaW1wb3J0IF9Db2wyIGZyb20gImVsZW1lbnQtdWkvbGliL3RoZW1lLWNoYWxrL2NvbC5jc3MiOwppbXBvcnQgImVsZW1lbnQtdWkvbGliL3RoZW1lLWNoYWxrL2Jhc2UuY3NzIjsKaW1wb3J0IF9Db2wgZnJvbSAiZWxlbWVudC11aS9saWIvY29sIjsKaW1wb3J0IF9CdXR0b24yIGZyb20gImVsZW1lbnQtdWkvbGliL3RoZW1lLWNoYWxrL2J1dHRvbi5jc3MiOwppbXBvcnQgImVsZW1lbnQtdWkvbGliL3RoZW1lLWNoYWxrL2Jhc2UuY3NzIjsKaW1wb3J0IF9CdXR0b24gZnJvbSAiZWxlbWVudC11aS9saWIvYnV0dG9uIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuZm9yLWVhY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5udW1iZXIudG8tZml4ZWQuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5pdGVyYXRvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5pdGVyYXRvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuaXRlcmF0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIudXJsLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLnVybC1zZWFyY2gtcGFyYW1zLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkucHVzaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5rZXlzLmpzIjsKLyogZXNsaW50LWRpc2FibGUgbm8tYWxlcnQsIG5vLWNvbnNvbGUgKi8KaW1wb3J0IFZ1ZSBmcm9tICJ2dWUiOwppbXBvcnQgUHJpbWl0aXZlQ29udHJvbHMgZnJvbSAiLi9QcmltaXRpdmVDb250cm9scyI7CmltcG9ydCBTY2FmZm9sZFRvb2x0aXAgZnJvbSAiLi9TY2FmZm9sZFRvb2x0aXAiOwppbXBvcnQgVHJlZUNvbnRyb2xzIGZyb20gIi4vVHJlZUNvbnRyb2xzIjsKaW1wb3J0IHsgTWFwU3ZnSWNvbiwgTWFwU3ZnU3ByaXRlQ29sb3IgfSBmcm9tICJAYWJpLXNvZnR3YXJlL3N2Zy1zcHJpdGUiOwppbXBvcnQgeyBmaW5kT2JqZWN0c1dpdGhOYW1lcywgZ2V0T2JqZWN0c0Zyb21Bbm5vdGF0aW9ucyB9IGZyb20gIi4uL3NjcmlwdHMvdXRpbGl0aWVzLmpzIjsKaW1wb3J0IHsgU2VhcmNoSW5kZXggfSBmcm9tICIuLi9zY3JpcHRzL3NlYXJjaC5qcyI7CmltcG9ydCBsYW5nIGZyb20gImVsZW1lbnQtdWkvbGliL2xvY2FsZS9sYW5nL2VuIjsKaW1wb3J0IGxvY2FsZSBmcm9tICJlbGVtZW50LXVpL2xpYi9sb2NhbGUiOwpsb2NhbGUudXNlKGxhbmcpOwpWdWUudXNlKF9CdXR0b24pOwpWdWUudXNlKF9Db2wpOwpWdWUudXNlKF9Mb2FkaW5nLmRpcmVjdGl2ZSk7ClZ1ZS51c2UoX09wdGlvbik7ClZ1ZS51c2UoX1BvcG92ZXIpOwpWdWUudXNlKF9Sb3cpOwpWdWUudXNlKF9TZWxlY3QpOwpWdWUudXNlKF9TbGlkZXIpOwpWdWUudXNlKF9UYWJQYW5lKTsKVnVlLnVzZShfVGFicyk7CnZhciBPcmdhbnNWaWV3ZXIgPSByZXF1aXJlKCIuLi9zY3JpcHRzL29yZ2Fuc1JlbmRlcmVyIikuT3JnYW5zVmlld2VyOwp2YXIgRXZlbnROb3RpZmllciA9IHJlcXVpcmUoIi4uL3NjcmlwdHMvZXZlbnROb3RpZmllciIpLkV2ZW50Tm90aWZpZXI7CgovKioKICogQSB2dWUgY29tcG9uZW50IG9mIHRoZSBzY2FmZm9sZCB2aWV3ZXIuCiAqCiAqIEByZXF1aXJlcyAuL1ByaW1pdHZlQ29udHJvbHMudnVlCiAqIEByZXF1aXJlcyAuL1RyZWVDb250cm9scy52dWUKICovCmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAiU2NhZmZvbGRWdWVyIiwKICBjb21wb25lbnRzOiB7CiAgICBNYXBTdmdJY29uOiBNYXBTdmdJY29uLAogICAgTWFwU3ZnU3ByaXRlQ29sb3I6IE1hcFN2Z1Nwcml0ZUNvbG9yLAogICAgUHJpbWl0aXZlQ29udHJvbHM6IFByaW1pdGl2ZUNvbnRyb2xzLAogICAgU2NhZmZvbGRUb29sdGlwOiBTY2FmZm9sZFRvb2x0aXAsCiAgICBUcmVlQ29udHJvbHM6IFRyZWVDb250cm9scwogIH0sCiAgcHJvcHM6IHsKICAgIC8qKgogICAgICogVVJMIG9mIHRoZSB6aW5janMgbWV0YWRhdGEuIFRoaXMgdmFsdWUgd2lsbCBiZSBpZ25vcmVkIGlmIGEgdmFsaWQKICAgICAqIHN0YXRlIHByb3AgaXMgYWxzbyBwcm92aWRlZC4KICAgICAqIElmIHRoZSB1cmwgbmVlZHMgdG8gYmUgdXBkYXRlZCB3aXRoIHN0YXRlIHByZXNlbnQsIHBsZWFzZSB1c2UKICAgICAqIHRoZSBzZXRVUkwgbWV0aG9kLgogICAgICovCiAgICB1cmw6IHsKICAgICAgdHlwZTogU3RyaW5nLAogICAgICBkZWZhdWx0OiAiIgogICAgfSwKICAgIC8qKgogICAgICogU2hvdyB0aGUgY29sb3VyIGNvbnRyb2wgb2Ygc2V0IHRvIHRydWUuCiAgICAgKi8KICAgIHNob3dDb2xvdXJQaWNrZXI6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0sCiAgICAvKioKICAgICAqIEZsYWcgdG8gc2hvdy9oaWRlIHRoZSBVSS4KICAgICAqLwogICAgZGlzcGxheVVJOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IHRydWUKICAgIH0sCiAgICAvKioKICAgICAqIERpc3BsYXkgYWxsIGdyYXBoaWNzIGF0IHN0YXJ0LgogICAgICoKICAgICAqIFRoaXMgc2V0dGluZyBvbmx5IHdvcmtzIHdoZW4gdHJhZGl0aW9uYWwgaXMgc2V0IHRvIGZhbHNlLgogICAgICovCiAgICBkaXNwbGF5QXRTdGFydFVwOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IHRydWUKICAgIH0sCiAgICAvKioKICAgICAqIFVzZSBmb3IgdG9nZ2xpbmcgdGhlIGhlbHAgdG9vbHRpcHMuCiAgICAgKi8KICAgIGhlbHBNb2RlOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICB9LAogICAgLyoqCiAgICAgKiBVc2UgZm9yIHNob3cvZGlzcGxheSBiZXRhIHdhcm5pbmcgaWNvbi4KICAgICAqLwogICAgZGlzcGxheVdhcm5pbmc6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogdHJ1ZQogICAgfSwKICAgIC8qKgogICAgICogV2FybmluZyBtZXNzYWdlIGZvciB0aGUgaG92ZXJlZCBvdmVyIHRleHQKICAgICAqIG9uIHRoZSB3YXJuaW5nIGljb24uCiAgICAgKi8KICAgIHdhcm5pbmdNZXNzYWdlOiB7CiAgICAgIHR5cGU6IFN0cmluZywKICAgICAgZGVmYXVsdDogIkJldGEgZmVhdHVyZSAtIHVuZGVyIGFjdGl2ZSBkZXZlbG9wbWVudCIKICAgIH0sCiAgICBkaXNwbGF5TGF0ZXN0Q2hhbmdlczogewogICAgICB0eXBlOiBCb29sZWFuLAogICAgICBkZWZhdWx0OiBmYWxzZQogICAgfSwKICAgIGxhdGVzdENoYW5nZXNNZXNzYWdlOiB7CiAgICAgIHR5cGU6IFN0cmluZywKICAgICAgZGVmYXVsdDogIk5ldyBmZWF0dXJlIC0gTG9jYWwgc2VhcmNoIGlzIG5vdyBhdmFpbGFibGUiCiAgICB9LAogICAgLyoqCiAgICAgKiBTaG93L2hpZGUgcGlja2FibGUgbWFya2VycyBmb3IgcmVnaW9ucy4KICAgICAqLwogICAgZGlzcGxheU1hcmtlcnM6IHsKICAgICAgdHlwZTogQm9vbGVhbiwKICAgICAgZGVmYXVsdDogZmFsc2UKICAgIH0sCiAgICBtYXJrZXJMYWJlbHM6IHsKICAgICAgdHlwZTogQXJyYXksCiAgICAgIGRlZmF1bHQ6IGZ1bmN0aW9uIF9kZWZhdWx0KCkgewogICAgICAgIHJldHVybiBbXTsKICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICogU2hvdy9oaWRlIG1pbmltYXAuCiAgICAgKi8KICAgIGRpc3BsYXlNaW5pbWFwOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICB9LAogICAgLyoqCiAgICAgKiBGb3JtYXQgb2YgdGhlIGlucHV0IFVSTAogICAgICovCiAgICBmb3JtYXQ6IHsKICAgICAgdHlwZTogU3RyaW5nLAogICAgICBkZWZhdWx0OiAibWV0YWRhdGEiCiAgICB9LAogICAgLyoqCiAgICAgKiBTZXR0aW5ncyBmb3IgbWluaW1hcCBwb3NpdGlvbiwgc2l6ZSBhbmQgYWxpZ25tZW50LgogICAgICovCiAgICBtaW5pbWFwU2V0dGluZ3M6IHsKICAgICAgdHlwZTogT2JqZWN0LAogICAgICBkZWZhdWx0OiBmdW5jdGlvbiBfZGVmYXVsdCgpIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgeF9vZmZzZXQ6IDE2LAogICAgICAgICAgeV9vZmZzZXQ6IDE2LAogICAgICAgICAgd2lkdGg6IDEyOCwKICAgICAgICAgIGhlaWdodDogMTI4LAogICAgICAgICAgYWxpZ246ICJ0b3AtcmlnaHQiCiAgICAgICAgfTsKICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICogRmxhZyB0byBkZXRlcm1pbmUgcmF0aGVyIG9wZW4gbWFwIFVJIHNob3VsZCBiZQogICAgICogcHJlc2VudGVkIG9yIG5vdC4KICAgICAqLwogICAgZW5hYmxlT3Blbk1hcFVJOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICB9LAogICAgb3Blbk1hcE9wdGlvbnM6IHsKICAgICAgdHlwZTogQXJyYXksCiAgICAgIGRlZmF1bHQ6IGZ1bmN0aW9uIF9kZWZhdWx0KCkgewogICAgICAgIHJldHVybiBbewogICAgICAgICAgZGlzcGxheTogIk9wZW4gQUMgTWFwIiwKICAgICAgICAgIGtleTogIkFDIgogICAgICAgIH0sIHsKICAgICAgICAgIGRpc3BsYXk6ICJPcGVuIEZDIE1hcCIsCiAgICAgICAgICBrZXk6ICJGQyIKICAgICAgICB9LCB7CiAgICAgICAgICBkaXNwbGF5OiAiT3BlbiAzRCBIdW1hbiBNYXAiLAogICAgICAgICAga2V5OiAiM0QiCiAgICAgICAgfV07CiAgICAgIH0KICAgIH0sCiAgICAvKioKICAgICAqIFN0YXRlIGNvbnRhaW5pbmcgc3RhdGUgb2YgdGhlIHNjYWZmb2xkLgogICAgICovCiAgICBzdGF0ZTogewogICAgICB0eXBlOiBPYmplY3QsCiAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZAogICAgfSwKICAgIC8qKgogICAgICogT3B0aW9uYWwgcHJvcCBmb3IgdGhlIG5hbWUgb2YgdGhlIHJlZ2lvbiB0byBmb2N1cyBvbiwKICAgICAqIHRoaXMgb3B0aW9uIGlzIGlnbm9yZWQgaWYgc3RhdGUgb3Igdmlld1VSTCBpcyBhbHNvIHByb3ZpZGVkLgogICAgICovCiAgICByZWdpb246IHsKICAgICAgdHlwZTogU3RyaW5nLAogICAgICBkZWZhdWx0OiAiIgogICAgfSwKICAgIC8qKgogICAgICogT3B0aW9uYWwgcHJvcCBmb3IgYW4gVVJMIG9mIGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gb2YgYSB2aWV3cG9ydC4KICAgICAqIFRoaXMgb3B0aW9uIGlzIGlnbm9yZWQgaWYgc3RhdGUgaXMgYWxzbyBwcm92aWRlZC4KICAgICAqIEl0IHdpbGwgdXNlIHRoZSBwcm92aWRlZCBVUkwgYXMgYmFzZSBpZiBhIHJlbGF0aXZlIHBhcnRoIGlzIHByb3ZpZGVkLgogICAgICovCiAgICB2aWV3VVJMOiB7CiAgICAgIHR5cGU6IFN0cmluZywKICAgICAgZGVmYXVsdDogIiIKICAgIH0sCiAgICAvKioKICAgICAqIFNldHRpbmdzIGZvciB0dXJuaW5nIG9uL29mZiByZW5kZXJpbmcKICAgICAqLwogICAgcmVuZGVyOiB7CiAgICAgIHR5cGU6IEJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6IHRydWUKICAgIH0KICB9LAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBzY2VuZURhdGE6IHRoaXMuJG1vZHVsZS5zY2VuZURhdGEsCiAgICAgIGlzUGxheWluZzogZmFsc2UsCiAgICAgIGlzUmVhZHk6IGZhbHNlLAogICAgICAvKioKICAgICAgICogVGhpcyBpcyBzZXQgd2hlbiBzY2VuZSBpcyB0cmFuc2l0aW9uaW5nLgogICAgICAgKi8KICAgICAgaXNUcmFuc2l0aW9uaW5nOiBmYWxzZSwKICAgICAgdG9vbHRpcEFwcGVuZFRvQm9keTogZmFsc2UsCiAgICAgIGhvdmVyVmlzaWJpbGl0aWVzOiBbewogICAgICAgIHZhbHVlOiBmYWxzZQogICAgICB9LCB7CiAgICAgICAgdmFsdWU6IGZhbHNlCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogZmFsc2UKICAgICAgfSwgewogICAgICAgIHZhbHVlOiBmYWxzZQogICAgICB9LCB7CiAgICAgICAgdmFsdWU6IGZhbHNlCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogZmFsc2UKICAgICAgfSwgewogICAgICAgIHZhbHVlOiBmYWxzZQogICAgICB9LCB7CiAgICAgICAgdmFsdWU6IGZhbHNlCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogZmFsc2UKICAgICAgfV0sCiAgICAgIGluSGVscDogZmFsc2UsCiAgICAgIGxvYWRpbmc6IGZhbHNlLAogICAgICBkdXJhdGlvbjogMzAwMCwKICAgICAgZHJhd2VyT3BlbjogdHJ1ZSwKICAgICAgY3VycmVudEJhY2tncm91bmQ6ICJ3aGl0ZSIsCiAgICAgIGF2YWlsYWJsZUJhY2tncm91bmQ6IFsid2hpdGUiLCAibGlnaHRza3libHVlIiwgImJsYWNrIl0sCiAgICAgIG1pbmltaXNlZFNsaWRlcjogZmFsc2UsCiAgICAgIHNsaWRlclBvc2l0aW9uOiAiIiwKICAgICAgdGltZU1heDogMTAwLAogICAgICBvcmdpbmFsRHVyYXRpb246ICIiLAogICAgICBhbmltYXRlRHVyYXRpb246ICI2c2VjcyIsCiAgICAgIHBsYXlTcGVlZDogW3sKICAgICAgICB2YWx1ZTogMC4xLAogICAgICAgIGxhYmVsOiAiMC4xeCIKICAgICAgfSwgewogICAgICAgIHZhbHVlOiAwLjUsCiAgICAgICAgbGFiZWw6ICIwLjV4IgogICAgICB9LCB7CiAgICAgICAgdmFsdWU6IDEsCiAgICAgICAgbGFiZWw6ICIxeCIKICAgICAgfSwgewogICAgICAgIHZhbHVlOiAyLAogICAgICAgIGxhYmVsOiAiMngiCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogNSwKICAgICAgICBsYWJlbDogIjV4IgogICAgICB9LCB7CiAgICAgICAgdmFsdWU6IDEwLAogICAgICAgIGxhYmVsOiAiMTB4IgogICAgICB9XSwKICAgICAgY3VycmVudFNwZWVkOiAxLAogICAgICB0aW1lU3RhbXBzOiB7fSwKICAgICAgZGVmYXVsdENoZWNrZWRLZXlzOiBbXSwKICAgICAgdERhdGE6IHsKICAgICAgICBsYWJlbDogIiIsCiAgICAgICAgcmVnaW9uOiAiIiwKICAgICAgICB2aXNpYmxlOiBmYWxzZSwKICAgICAgICB4OiAyMDAsCiAgICAgICAgeTogMjAwCiAgICAgIH0sCiAgICAgIGZpbGVGb3JtYXQ6ICJtZXRhZGF0YSIsCiAgICAgIHByZXZpb3VzTWFya2VyTGFiZWxzOiBbXQogICAgfTsKICB9LAogIHdhdGNoOiB7CiAgICBmb3JtYXQ6IHsKICAgICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcih2YWx1ZSkgewogICAgICAgIHRoaXMuZmlsZUZvcm1hdCA9IHZhbHVlOwogICAgICB9LAogICAgICBpbW1lZGlhdGU6IHRydWUKICAgIH0sCiAgICB1cmw6IHsKICAgICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcihuZXdWYWx1ZSkgewogICAgICAgIGlmICh0aGlzLnN0YXRlID09PSB1bmRlZmluZWQgfHwgdGhpcy5zdGF0ZS51cmwgPT09IHVuZGVmaW5lZCkgdGhpcy5zZXRVUkwobmV3VmFsdWUpOwogICAgICB9LAogICAgICBpbW1lZGlhdGU6IHRydWUKICAgIH0sCiAgICByZWdpb246IHsKICAgICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcihyZWdpb24pIHsKICAgICAgICBpZiAoISh0aGlzLnN0YXRlIHx8IHRoaXMudmlld1VSTCkpIHRoaXMuc2V0Rm9jdXNlZFJlZ2lvbihyZWdpb24pOwogICAgICB9LAogICAgICBpbW1lZGlhdGU6IHRydWUKICAgIH0sCiAgICBzdGF0ZTogewogICAgICBoYW5kbGVyOiBmdW5jdGlvbiBoYW5kbGVyKHN0YXRlKSB7CiAgICAgICAgdGhpcy5zZXRTdGF0ZShzdGF0ZSk7CiAgICAgIH0sCiAgICAgIGltbWVkaWF0ZTogdHJ1ZSwKICAgICAgZGVlcDogdHJ1ZQogICAgfSwKICAgIHZpZXdVUkw6IHsKICAgICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcih2aWV3VVJMKSB7CiAgICAgICAgdGhpcy51cGRhdGVWaWV3VVJMKHZpZXdVUkwpOwogICAgICB9LAogICAgICBpbW1lZGlhdGU6IHRydWUKICAgIH0sCiAgICBoZWxwTW9kZTogZnVuY3Rpb24gaGVscE1vZGUodmFsKSB7CiAgICAgIHRoaXMuc2V0SGVscE1vZGUodmFsKTsKICAgIH0sCiAgICBkaXNwbGF5TWFya2VyczogZnVuY3Rpb24gZGlzcGxheU1hcmtlcnModmFsKSB7CiAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5kaXNwbGF5TWFya2VycyA9IHZhbDsKICAgICAgLy9VcGRhdGUgcGlja2FibGUgb2JqZWN0cwogICAgICB0aGlzLiRtb2R1bGUuc2NlbmUuZm9yY2VQaWNrYWJsZU9iamVjdHNVcGRhdGUgPSB0cnVlOwogICAgfSwKICAgIGRpc3BsYXlNaW5pbWFwOiBmdW5jdGlvbiBkaXNwbGF5TWluaW1hcCh2YWwpIHsKICAgICAgdGhpcy4kbW9kdWxlLnNjZW5lLmRpc3BsYXlNaW5pbWFwID0gdmFsOwogICAgfSwKICAgICJzY2VuZURhdGEuY3VycmVudFRpbWUiOiBmdW5jdGlvbiBzY2VuZURhdGFDdXJyZW50VGltZSgpIHsKICAgICAgLyoqCiAgICAgICAqIFRyaWdnZXJzIHdoZW4gc2NlbmUgdGltZSBjaGFuZ2VzLgogICAgICAgKgogICAgICAgKiBAcHJvcGVydHkge251bWJlcn0gdGltZSBDdXJyZW50IGJ1aWxkLWluIHRpbWUgb2Ygc2NlbmUuCiAgICAgICAqIG9mIHNlbGVjdGVkIG9iamVjdC4KICAgICAgICovCiAgICAgIHRoaXMuJGVtaXQoInRpbWVDaGFuZ2VkIiwgdGhpcy5zY2VuZURhdGEuY3VycmVudFRpbWUpOwogICAgfSwKICAgIGR1cmF0aW9uOiBmdW5jdGlvbiBkdXJhdGlvbigpIHsKICAgICAgdGhpcy4kbW9kdWxlLnNjZW5lLnNldER1cmF0aW9uKHRoaXMuZHVyYXRpb24pOwogICAgfSwKICAgIG1pbmltYXBTZXR0aW5nczogewogICAgICBkZWVwOiB0cnVlLAogICAgICBoYW5kbGVyOiAidXBkYXRlTWluaW1hcFNjaXNzb3IiCiAgICB9LAogICAgcmVuZGVyOiBmdW5jdGlvbiByZW5kZXIodmFsKSB7CiAgICAgIHRoaXMudG9nZ2xlUmVuZGVyaW5nKHZhbCk7CiAgICB9LAogICAgbWFya2VyTGFiZWxzOiBmdW5jdGlvbiBtYXJrZXJMYWJlbHMobGFiZWxzKSB7CiAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgIHRoaXMucHJldmlvdXNNYXJrZXJMYWJlbHMuZm9yRWFjaChmdW5jdGlvbiAocG1sKSB7CiAgICAgICAgX3RoaXMuc2V0TWFya2VyTW9kZUZvck9iamVjdHNXaXRoTmFtZShwbWwsICJvZmYiKTsKICAgICAgfSk7CiAgICAgIGxhYmVscy5mb3JFYWNoKGZ1bmN0aW9uIChsKSB7CiAgICAgICAgX3RoaXMuc2V0TWFya2VyTW9kZUZvck9iamVjdHNXaXRoTmFtZShsLCAib24iKTsKICAgICAgfSk7CiAgICAgIHRoaXMucHJldmlvdXNNYXJrZXJMYWJlbHMgPSBsYWJlbHM7CiAgICB9CiAgfSwKICBiZWZvcmVDcmVhdGU6IGZ1bmN0aW9uIGJlZm9yZUNyZWF0ZSgpIHsKICAgIHRoaXMuJG1vZHVsZSA9IG5ldyBPcmdhbnNWaWV3ZXIoKTsKICAgIHRoaXMuc2VsZWN0ZWRPYmplY3RzID0gW107CiAgICB0aGlzLmhvdmVyZWRPYmplY3RzID0gW107CiAgICB0aGlzLmN1cnJlbnRCYWNrZ3JvdW5kID0gIndoaXRlIjsKICAgIHRoaXMuX2N1cnJlbnRVUkwgPSB1bmRlZmluZWQ7CiAgICB0aGlzLmF2YWlsYWJsZUJhY2tncm91bmQgPSBbIndoaXRlIiwgImJsYWNrIiwgImxpZ2h0c2t5Ymx1ZSJdOwogICAgdGhpcy4kX3NlYXJjaEluZGV4ID0gbmV3IFNlYXJjaEluZGV4KCk7CiAgfSwKICBtb3VudGVkOiBmdW5jdGlvbiBtb3VudGVkKCkgewogICAgdGhpcy4kcmVmcy50cmVlQ29udHJvbHMuc2V0TW9kdWxlKHRoaXMuJG1vZHVsZSk7CiAgICB2YXIgZXZlbnROb3RpZmllciA9IG5ldyBFdmVudE5vdGlmaWVyKCk7CiAgICBldmVudE5vdGlmaWVyLnN1YnNjcmliZSh0aGlzLCB0aGlzLmV2ZW50Tm90aWZpZXJDYWxsYmFjayk7CiAgICB0aGlzLiRtb2R1bGUuYWRkTm90aWZpZXIoZXZlbnROb3RpZmllcik7CiAgICB0aGlzLiRtb2R1bGUuYWRkT3JnYW5QYXJ0QWRkZWRDYWxsYmFjayh0aGlzLnppbmNPYmplY3RBZGRlZCk7CiAgICB0aGlzLiRtb2R1bGUuaW5pdGlhbGlzZVJlbmRlcmVyKHRoaXMuJHJlZnMuZGlzcGxheSk7CiAgICB0aGlzLnRvZ2dsZVJlbmRlcmluZyh0aGlzLnJlbmRlcik7CiAgICB0aGlzLnJvID0gbmV3IFJlc2l6ZU9ic2VydmVyKHRoaXMuYWRqdXN0TGF5b3V0KS5vYnNlcnZlKHRoaXMuJHJlZnMuc2NhZmZvbGRDb250YWluZXIpOwogICAgdGhpcy5kZWZhdWx0UmF0ZSA9IHRoaXMuJG1vZHVsZS5nZXRQbGF5UmF0ZSgpOwogIH0sCiAgYmVmb3JlRGVzdHJveTogZnVuY3Rpb24gYmVmb3JlRGVzdHJveSgpIHsKICAgIGlmICh0aGlzLnJvKSB0aGlzLnJvLmRpc2Nvbm5lY3QoKTsKICAgIHRoaXMuJG1vZHVsZS5kZXN0cm95KCk7CiAgICB0aGlzLiRtb2R1bGUgPSB1bmRlZmluZWQ7CiAgfSwKICBtZXRob2RzOiB7CiAgICBhZGRaaW5jT2JqZWN0OiBmdW5jdGlvbiBhZGRaaW5jT2JqZWN0KHppbmNPYmplY3QpIHsKICAgICAgaWYgKHRoaXMuJG1vZHVsZS5zY2VuZSkgewogICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5hZGRaaW5jT2JqZWN0KHppbmNPYmplY3QpOwogICAgICAgIHRoaXMuemluY09iamVjdEFkZGVkKHppbmNPYmplY3QpOwogICAgICAgIGlmICh0aGlzLiRyZWZzLnRyZWVDb250cm9scykgdGhpcy4kcmVmcy50cmVlQ29udHJvbHMuemluY09iamVjdEFkZGVkKHppbmNPYmplY3QpOwogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBUaGlzIGlzIGNhbGxlZCB3aGVuIGEgbmV3IHppbmMgb2JqZWN0IGlzIHJlYWQgaW50byB0aGUgc2NlbmUuCiAgICAgKi8KICAgIHppbmNPYmplY3RBZGRlZDogZnVuY3Rpb24gemluY09iamVjdEFkZGVkKHppbmNPYmplY3QpIHsKICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7CiAgICAgIHRoaXMuJF9zZWFyY2hJbmRleC5hZGRaaW5jT2JqZWN0KHppbmNPYmplY3QsIHppbmNPYmplY3QudXVpZCk7CiAgICAgIHRoaXMuJGVtaXQoInppbmMtb2JqZWN0LWFkZGVkIiwgemluY09iamVjdCk7CiAgICB9LAogICAgLyoqCiAgICAgKiAKICAgICAqLwogICAgYWRkUmVnaW9uc1RvU2VhcmNoSW5kZXg6IGZ1bmN0aW9uIGFkZFJlZ2lvbnNUb1NlYXJjaEluZGV4KCkgewogICAgICB2YXIgX3RoaXMyID0gdGhpczsKICAgICAgdmFyIHJvb3RSZWdpb24gPSB0aGlzLiRtb2R1bGUuc2NlbmUuZ2V0Um9vdFJlZ2lvbigpOwogICAgICB2YXIgcmVnaW9ucyA9IHJvb3RSZWdpb24uZ2V0Q2hpbGRSZWdpb25zKHRydWUpOwogICAgICByZWdpb25zLmZvckVhY2goZnVuY3Rpb24gKHJlZ2lvbikgewogICAgICAgIF90aGlzMi4kX3NlYXJjaEluZGV4LmFkZFJlZ2lvbihyZWdpb24sIHJlZ2lvbi51dWlkKTsKICAgICAgfSk7CiAgICB9LAogICAgLyoqCiAgICAgKiBUaGlzIGlzIGNhbGxlZCB3aGVuIENoYW5nZSBiYWNrZ3NwZWVkcm91bmQgY29sb3VyIGJ1dHRvbgogICAgICogaXMgcHJlc3NlZCBhbiBjYXVzZXMgdGhlIGJhY2tncm91Q29sb3JuZCBjb2xvdXIgdG8gYmUgY2hhbmdlZAogICAgICogdG8gb25lIG9mIHRoZSB0aHJlZSBwcmVzZXQgY29sb3VyOiB3aGl0ZSwgYmxhY2sgYW5kCiAgICAgKiBsaWdodHNreWJsdWUuCiAgICAgKi8KICAgIGJhY2tncm91bmRDaGFuZ2VDYWxsYmFjazogZnVuY3Rpb24gYmFja2dyb3VuZENoYW5nZUNhbGxiYWNrKGNvbG91cikgewogICAgICB0aGlzLmN1cnJlbnRCYWNrZ3JvdW5kID0gY29sb3VyOwogICAgICB0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyLmdldFRocmVlSlNSZW5kZXJlcigpLnNldENsZWFyQ29sb3IodGhpcy5jdXJyZW50QmFja2dyb3VuZCwgMSk7CiAgICB9LAogICAgLyoqCiAgICAgKiBUaGlzIGlzIGNhbGxlZCBieSBjYXB0dWVlU2NyZWVuc2hvdCBhbmQgYWZ0ZXIgdGhlIGxhc3QgcmVuZGVyCiAgICAgKiBsb29wLCBpdCBkb3dubG9hZCBhIHNjcmVlbnNob3Qgb2YgdGhlIGN1cnJlbnQgc2NlbmUgd2l0aCBubyBVSS4KICAgICAqLwogICAgY2FwdHVyZVNjcmVlbnNob3RDYWxsYmFjazogZnVuY3Rpb24gY2FwdHVyZVNjcmVlbnNob3RDYWxsYmFjaygpIHsKICAgICAgLy9SZW1vdmUgdGhlIGNhbGxiYWNrLCBvbmx5IG5lZWRzIHRvIGhhcHBlbiBvbmNlCiAgICAgIHRoaXMuJG1vZHVsZS56aW5jUmVuZGVyZXIucmVtb3ZlUG9zdFJlbmRlckNhbGxiYWNrRnVuY3Rpb24odGhpcy5jYXB0dXJlSUQpOwogICAgICB2YXIgc2NyZWVuc2hvdCA9IHRoaXMuJG1vZHVsZS56aW5jUmVuZGVyZXIuZ2V0VGhyZWVKU1JlbmRlcmVyKCkuZG9tRWxlbWVudC50b0RhdGFVUkwoImltYWdlL3BuZyIpOwogICAgICB2YXIgaHJlZkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7CiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKGhyZWZFbGVtZW50KTsKICAgICAgaWYgKCF0aGlzLmNhcHR1cmVGaWxlbmFtZSkgaHJlZkVsZW1lbnQuZG93bmxvYWQgPSAic2NyZWVuc2hvdC5wbmciO2Vsc2UgaHJlZkVsZW1lbnQuZG93bmxvYWQgPSB0aGlzLmNhcHR1cmVGaWxlbmFtZTsKICAgICAgaHJlZkVsZW1lbnQuaHJlZiA9IHNjcmVlbnNob3Q7CiAgICAgIGhyZWZFbGVtZW50LmNsaWNrKCk7CiAgICAgIGhyZWZFbGVtZW50LnJlbW92ZSgpOwogICAgfSwKICAgIC8qKgogICAgICogRnVuY3Rpb24gZm9yIGNhcHR1cmluZyBhIHNjcmVlbnNob3Qgb2YgdGhlIGN1cnJlbnQgcmVuZGVyaW5nLgogICAgICoKICAgICAqIEBwYXJhbSB7U3RyaW5nfSBmaWxlbmFtZSBmaWxlbmFtZSBnaXZlbiB0byB0aGUgc2NyZWVuc2hvdC4KICAgICAqCiAgICAgKiBAcHVibGljCiAgICAgKi8KICAgIGNhcHR1cmVTY3JlZW5zaG90OiBmdW5jdGlvbiBjYXB0dXJlU2NyZWVuc2hvdChmaWxlbmFtZSkgewogICAgICB0aGlzLmNhcHR1cmVGaWxlbmFtZSA9IGZpbGVuYW1lOwogICAgICB0aGlzLmNhcHR1cmVJRCA9IHRoaXMuJG1vZHVsZS56aW5jUmVuZGVyZXIuYWRkUG9zdFJlbmRlckNhbGxiYWNrRnVuY3Rpb24odGhpcy5jYXB0dXJlU2NyZWVuc2hvdENhbGxiYWNrKTsKICAgIH0sCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIHRvIGNsZWFyIGN1cnJlbnQgc2NlbmUsIHRoZSB0cmVlIGNvbnRyb2xzIGFuZCB0aGUgc2VhcmNoIGluZGV4LgogICAgICoKICAgICAqIEBwdWJsaWMKICAgICAqLwogICAgY2xlYXJTY2VuZTogZnVuY3Rpb24gY2xlYXJTY2VuZSgpIHsKICAgICAgaWYgKHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzKSB0aGlzLiRyZWZzLnRyZWVDb250cm9scy5jbGVhcigpOwogICAgICBpZiAodGhpcy4kX3NlYXJjaEluZGV4KSB0aGlzLiRfc2VhcmNoSW5kZXgucmVtb3ZlQWxsKCk7CiAgICAgIGlmICh0aGlzLiRtb2R1bGUuc2NlbmUpIHRoaXMuJG1vZHVsZS5zY2VuZS5jbGVhckFsbCgpOwogICAgfSwKICAgIGZvcm1hdFRvb2x0aXA6IGZ1bmN0aW9uIGZvcm1hdFRvb2x0aXAodmFsKSB7CiAgICAgIGlmICh0aGlzLnRpbWVNYXggPj0gMTAwMCkgewogICAgICAgIGlmICh2YWwpIHsKICAgICAgICAgIHZhciBzZWMgPSAodmFsICUgNjAwMDAgLyAxMDAwKS50b0ZpeGVkKDIpICsgInMiOwogICAgICAgICAgdmFyIG1pbiA9IHZhbCA+IDYwMDAwID8gKHZhbCAvIDYwMDAwKS50b0ZpeGVkKDApICsgIm0gIiA6ICIiOwogICAgICAgICAgcmV0dXJuIG1pbiArIHNlYzsKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIHZhbCA/IHZhbC50b0ZpeGVkKDIpICsgIiBtcyIgOiAiMCBtcyI7CiAgICB9LAogICAgLyoqCiAgICAgKiBGdW5jdGlvbiB0byByZXNldCB0aGUgdmlldyB0byBkZWZhdWx0LgogICAgICogQWxzbyBjYWxsZWQgd2hlbiB0aGUgYXNzb2NpYXRlZCBidXR0b24gaXMgcHJlc3NlZC4KICAgICAqCiAgICAgKiBAcHVibGljCiAgICAgKi8KICAgIGZpdFdpbmRvdzogZnVuY3Rpb24gZml0V2luZG93KCkgewogICAgICBpZiAodGhpcy4kbW9kdWxlLnNjZW5lKSB7CiAgICAgICAgdGhpcy4kbW9kdWxlLnNjZW5lLnZpZXdBbGwoKTsKICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICogRnVuY3Rpb24gdG8gem9vbSBpbi4KICAgICAqIEFsc28gY2FsbGVkIHdoZW4gdGhlIGFzc29jaWF0ZWQgYnV0dG9uIGlzIHByZXNzZWQuCiAgICAgKgogICAgICogQHB1YmxpYwogICAgICovCiAgICB6b29tSW46IGZ1bmN0aW9uIHpvb21JbigpIHsKICAgICAgaWYgKHRoaXMuJG1vZHVsZS5zY2VuZSkgewogICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5jaGFuZ2Vab29tQnlTY3JvbGxSYXRlVW5pdCgtMSk7CiAgICAgIH0KICAgIH0sCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIHRvIHpvb20gb3V0LgogICAgICogQWxzbyBjYWxsZWQgd2hlbiB0aGUgYXNzb2NpYXRlZCBidXR0b24gaXMgcHJlc3NlZC4KICAgICAqCiAgICAgKiBAcHVibGljCiAgICAgKi8KICAgIHpvb21PdXQ6IGZ1bmN0aW9uIHpvb21PdXQoKSB7CiAgICAgIGlmICh0aGlzLiRtb2R1bGUuc2NlbmUpIHsKICAgICAgICB0aGlzLiRtb2R1bGUuc2NlbmUuY2hhbmdlWm9vbUJ5U2Nyb2xsUmF0ZVVuaXQoMSk7CiAgICAgIH0KICAgIH0sCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIHRvIGNoYW5nZSB0aGUgY3VycmVudCBwbGF5IHNwZWVkLgogICAgICoKICAgICAqIEBwdWJsaWMKICAgICAqLwogICAgc3BlZWRDaGFuZ2VkOiBmdW5jdGlvbiBzcGVlZENoYW5nZWQoc3BlZWQpIHsKICAgICAgdGhpcy5jdXJyZW50U3BlZWQgPSBzcGVlZDsKICAgICAgdGhpcy4kbW9kdWxlLnNldFBsYXlSYXRlKHRoaXMuZGVmYXVsdFJhdGUgKiB0aGlzLmN1cnJlbnRTcGVlZCk7CiAgICB9LAogICAgLyoqCiAgICAgKiBGdW5jdGlvbiB1c2VkIHRvIHN0b3AgdGhlIGZyZWUgc3BpbgogICAgICoKICAgICAqIEBwdWJsaWMKICAgICAqLwogICAgc3RvcEZyZWVTcGluOiBmdW5jdGlvbiBzdG9wRnJlZVNwaW4oKSB7CiAgICAgIHZhciBjYW1lcmFjb250cm9sID0gdGhpcy4kbW9kdWxlLnNjZW5lLmdldFppbmNDYW1lcmFDb250cm9scygpOwogICAgICBjYW1lcmFjb250cm9sLnN0b3BBdXRvVHVtYmxlKCk7CiAgICAgIHRoaXMuaXNUcmFuc2l0aW9uaW5nID0gZmFsc2U7CiAgICB9LAogICAgZmluZE9iamVjdHNXaXRoR3JvdXBOYW1lOiBmdW5jdGlvbiBmaW5kT2JqZWN0c1dpdGhHcm91cE5hbWUobmFtZSkgewogICAgICB2YXIgb2JqZWN0cyA9IFtdOwogICAgICBpZiAobmFtZSAmJiBuYW1lICE9ICIiICYmIHRoaXMuJG1vZHVsZS5zY2VuZSkgewogICAgICAgIG9iamVjdHMgPSB0aGlzLiRtb2R1bGUuc2NlbmUuZmluZE9iamVjdHNXaXRoR3JvdXBOYW1lKG5hbWUpOwogICAgICB9CiAgICAgIHJldHVybiBvYmplY3RzOwogICAgfSwKICAgIC8qKgogICAgICogRm9jdXMgb24gbmFtZWQgcmVnaW9uCiAgICAgKi8KICAgIHZpZXdSZWdpb246IGZ1bmN0aW9uIHZpZXdSZWdpb24obmFtZXMpIHsKICAgICAgdmFyIHJvb3RSZWdpb24gPSB0aGlzLiRtb2R1bGUuc2NlbmUuZ2V0Um9vdFJlZ2lvbigpOwogICAgICB2YXIgZ3JvdXBzID0gQXJyYXkuaXNBcnJheShuYW1lcykgPyBuYW1lcyA6IFtuYW1lc107CiAgICAgIHZhciBvYmplY3RzID0gZmluZE9iamVjdHNXaXRoTmFtZXMocm9vdFJlZ2lvbiwgZ3JvdXBzLCAiIiwgdHJ1ZSk7CiAgICAgIHZhciBib3ggPSB0aGlzLiRtb2R1bGUuc2NlbmUuZ2V0Qm91bmRpbmdCb3hPZlppbmNPYmplY3RzKG9iamVjdHMpOwogICAgICBpZiAoYm94KSB7CiAgICAgICAgaWYgKHRoaXMuJG1vZHVsZS5pc1N5bmNDb250cm9sKCkpIHsKICAgICAgICAgIHRoaXMuJG1vZHVsZS5zZXRTeW5jQ29udHJvbFpvb21Ub0JveChib3gpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB2YXIgZGlzdCA9IHRoaXMuJG1vZHVsZS5zY2VuZS5jYW1lcmEuZmFyIC0gdGhpcy4kbW9kdWxlLnNjZW5lLmNhbWVyYS5uZWFyOwogICAgICAgICAgdGhpcy4kbW9kdWxlLnNjZW5lLnZpZXdBbGxXaXRoQm91bmRpbmdCb3goYm94KTsKICAgICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5jYW1lcmEuZmFyID0gdGhpcy4kbW9kdWxlLnNjZW5lLmNhbWVyYS5uZWFyICsgZGlzdDsKICAgICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5jYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgfQogICAgICByZXR1cm4gZmFsc2U7CiAgICB9LAogICAgc2V0Rm9jdXNlZFJlZ2lvbjogZnVuY3Rpb24gc2V0Rm9jdXNlZFJlZ2lvbihuYW1lKSB7CiAgICAgIGlmIChuYW1lKSB7CiAgICAgICAgaWYgKHRoaXMuaXNSZWFkeSkgewogICAgICAgICAgdGhpcy52aWV3UmVnaW9uKG5hbWUpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLiRtb2R1bGUuc2V0RmluaXNoRG93bmxvYWRDYWxsYmFjayh0aGlzLnNldFVSTEZpbmlzaENhbGxiYWNrKHsKICAgICAgICAgICAgcmVnaW9uOiBuYW1lCiAgICAgICAgICB9KSk7CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgdXBkYXRlVmlld1VSTDogZnVuY3Rpb24gdXBkYXRlVmlld1VSTCh2aWV3VVJMKSB7CiAgICAgIGlmICh2aWV3VVJMKSB7CiAgICAgICAgaWYgKHRoaXMuaXNSZWFkeSkgewogICAgICAgICAgdmFyIHVybCA9IG5ldyBVUkwodmlld1VSTCwgdGhpcy51cmwpOwogICAgICAgICAgdGhpcy4kbW9kdWxlLnNjZW5lLmxvYWRWaWV3VVJMKHVybCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuJG1vZHVsZS5zZXRGaW5pc2hEb3dubG9hZENhbGxiYWNrKHRoaXMuc2V0VVJMRmluaXNoQ2FsbGJhY2soewogICAgICAgICAgICB2aWV3VVJMOiB2aWV3VVJMCiAgICAgICAgICB9KSk7CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgZ2V0UmVuZGVyZXJJbmZvOiBmdW5jdGlvbiBnZXRSZW5kZXJlckluZm8oKSB7CiAgICAgIGlmICh0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuJG1vZHVsZS56aW5jUmVuZGVyZXIuZ2V0VGhyZWVKU1JlbmRlcmVyKCkuaW5mbzsKICAgICAgfQogICAgICByZXR1cm4gdW5kZWZpbmVkOwogICAgfSwKICAgIC8qKgogICAgICogRnVuY3Rpb24gdXNlZCB0byByb3RhdGUgdGhlIHNjZW5lLgogICAgICogQWxzbyBjYWxsZWQgd2hlbiB0aGUgYXNzb2NpYXRlZCBidXR0b24gaXMgcHJlc3NlZC4KICAgICAqCiAgICAgKiBAcHVibGljCiAgICAgKi8KICAgIGZyZWVTcGluOiBmdW5jdGlvbiBmcmVlU3BpbigpIHsKICAgICAgaWYgKHRoaXMuJG1vZHVsZS5zY2VuZSkgewogICAgICAgIHZhciBjYW1lcmFjb250cm9sID0gdGhpcy4kbW9kdWxlLnNjZW5lLmdldFppbmNDYW1lcmFDb250cm9scygpOwogICAgICAgIHRoaXMuaXNUcmFuc2l0aW9uaW5nID0gdHJ1ZTsKICAgICAgICBjYW1lcmFjb250cm9sLmVuYWJsZUF1dG9UdW1ibGUoKTsKICAgICAgICBjYW1lcmFjb250cm9sLmF1dG9UdW1ibGUoWzEuMCwgMC4wXSwgTWF0aC5QSSwgdHJ1ZSk7CiAgICAgICAgc2V0VGltZW91dCh0aGlzLnN0b3BGcmVlU3BpbiwgNDAwMCk7CiAgICAgIH0KICAgIH0sCiAgICAvKioKICAgICAqIENhbGxiYWNrIHdoZW4gYSByZWdpb24gaXMgc2VsZWN0ZWQvaGlnaGxpZ2h0ZWQuCiAgICAgKiBJdCB3aWxsIGFsc28gdXBkYXRlIG90aGVyIGNvbnRyb2xzLgogICAgICoKICAgICAqLwogICAgZXZlbnROb3RpZmllckNhbGxiYWNrOiBmdW5jdGlvbiBldmVudE5vdGlmaWVyQ2FsbGJhY2soZXZlbnQpIHsKICAgICAgdmFyIG5hbWVzID0gW107CiAgICAgIHZhciB6aW5jT2JqZWN0cyA9IFtdOwogICAgICB2YXIgcmVnaW9uID0gdW5kZWZpbmVkOwogICAgICBpZiAoZXZlbnQuZXZlbnRUeXBlID09IDEgfHwgZXZlbnQuZXZlbnRUeXBlID09IDIpIHsKICAgICAgICBldmVudC5pZGVudGlmaWVycy5mb3JFYWNoKGZ1bmN0aW9uIChpZGVudGlmaWVyKSB7CiAgICAgICAgICBpZiAoaWRlbnRpZmllcikgewogICAgICAgICAgICB2YXIgaWQgPSBpZGVudGlmaWVyLmRhdGEuaWQgPyBpZGVudGlmaWVyLmRhdGEuaWQgOiBpZGVudGlmaWVyLmRhdGEuZ3JvdXA7CiAgICAgICAgICAgIG5hbWVzLnB1c2goaWQpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICAgIHppbmNPYmplY3RzID0gZXZlbnQuemluY09iamVjdHM7CiAgICAgIH0KICAgICAgLyoKICAgICAgICogRXZlbnQgVHlwZSAxOiBTZWxlY3RlZAogICAgICAgKiBFdmVudCBUeXBlIDI6IEhpZ2hsaWdodGVkCiAgICAgICAqIEV2ZW50IFR5cGUgMTogTW92ZQogICAgICAgKi8KICAgICAgaWYgKGV2ZW50LmV2ZW50VHlwZSA9PSAxKSB7CiAgICAgICAgaWYgKHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzKSB7CiAgICAgICAgICBpZiAobmFtZXMubGVuZ3RoID4gMCkgewogICAgICAgICAgICAvL3RoaXMuJHJlZnMudHJlZUNvbnRyb2xzLmNoYW5nZUFjdGl2ZUJ5TmFtZXMobmFtZXMsIHJlZ2lvbiwgZmFsc2UpOwogICAgICAgICAgICB0aGlzLiRyZWZzLnRyZWVDb250cm9scy51cGRhdGVBY3RpdmVVSSh6aW5jT2JqZWN0cyk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLmhpZGVSZWdpb25Ub29sdGlwKCk7CiAgICAgICAgICAgIHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzLnJlbW92ZUFjdGl2ZSh0cnVlKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgLy8gVHJpZ2dlcnMgd2hlbiBhbiBvYmplY3QgaGFzIGJlZW4gc2VsZWN0ZWQKICAgICAgICB0aGlzLiRlbWl0KCJzY2FmZm9sZC1zZWxlY3RlZCIsIGV2ZW50LmlkZW50aWZpZXJzKTsKICAgICAgfSBlbHNlIGlmIChldmVudC5ldmVudFR5cGUgPT0gMikgewogICAgICAgIGlmICh0aGlzLnNlbGVjdGVkT2JqZWN0cy5sZW5ndGggPT09IDApIHsKICAgICAgICAgIHRoaXMuaGlkZVJlZ2lvblRvb2x0aXAoKTsKICAgICAgICAgIC8vIGNvbnN0IG9mZnNldHMgPSB0aGlzLiRyZWZzLnNjYWZmb2xkQ29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgICAgICAgaWYgKHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzKSB7CiAgICAgICAgICAgIGlmIChuYW1lcy5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgICAgLy90aGlzLiRyZWZzLnRyZWVDb250cm9scy5jaGFuZ2VIb3ZlckJ5TmFtZXMobmFtZXMsIHJlZ2lvbiwgZmFsc2UpOwogICAgICAgICAgICAgIHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzLnVwZGF0ZUhvdmVyVUkoemluY09iamVjdHMpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzLnJlbW92ZUhvdmVyKHRydWUpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoZXZlbnQuaWRlbnRpZmllcnMubGVuZ3RoID4gMCAmJiBldmVudC5pZGVudGlmaWVyc1swXSkgewogICAgICAgICAgICB2YXIgaWQgPSBldmVudC5pZGVudGlmaWVyc1swXS5kYXRhLmlkID8gZXZlbnQuaWRlbnRpZmllcnNbMF0uZGF0YS5pZCA6IGV2ZW50LmlkZW50aWZpZXJzWzBdLmRhdGEuZ3JvdXA7CiAgICAgICAgICAgIGlmIChldmVudC5pZGVudGlmaWVyc1swXS5jb29yZHMpIHsKICAgICAgICAgICAgICB0aGlzLnREYXRhLnZpc2libGUgPSB0cnVlOwogICAgICAgICAgICAgIHRoaXMudERhdGEubGFiZWwgPSBpZDsKICAgICAgICAgICAgICBpZiAoZXZlbnQuaWRlbnRpZmllcnNbMF0uZGF0YS5yZWdpb24pIHRoaXMudERhdGEucmVnaW9uID0gZXZlbnQuaWRlbnRpZmllcnNbMF0uZGF0YS5yZWdpb247ZWxzZSB0aGlzLnREYXRhLnJlZ2lvbiA9IHVuZGVmaW5lZDsKICAgICAgICAgICAgICB0aGlzLnREYXRhLnggPSBldmVudC5pZGVudGlmaWVyc1swXS5jb29yZHMueDsKICAgICAgICAgICAgICB0aGlzLnREYXRhLnkgPSBldmVudC5pZGVudGlmaWVyc1swXS5jb29yZHMueTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgLy8gVHJpZ2dlcnMgd2hlbiBhbiBvYmplY3QgaGFzIGJlZW4gaGlnaGxpZ2h0ZWQKICAgICAgICAgIHRoaXMuJGVtaXQoInNjYWZmb2xkLWhpZ2hsaWdodGVkIiwgZXZlbnQuaWRlbnRpZmllcnMpOwogICAgICAgIH0KICAgICAgfSBlbHNlIGlmIChldmVudC5ldmVudFR5cGUgPT0gMykgewogICAgICAgIC8vTU9WRQogICAgICAgIGlmIChldmVudC5pZGVudGlmaWVycy5sZW5ndGggPiAwICYmIGV2ZW50LmlkZW50aWZpZXJzWzBdKSB7CiAgICAgICAgICBpZiAoZXZlbnQuaWRlbnRpZmllcnNbMF0uY29vcmRzKSB7CiAgICAgICAgICAgIHZhciBvZmZzZXRzID0gdGhpcy4kcmVmcy5zY2FmZm9sZENvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgICAgICAgICAgdGhpcy50RGF0YS54ID0gZXZlbnQuaWRlbnRpZmllcnNbMF0uY29vcmRzLnggLSBvZmZzZXRzLmxlZnQ7CiAgICAgICAgICAgIHRoaXMudERhdGEueSA9IGV2ZW50LmlkZW50aWZpZXJzWzBdLmNvb3Jkcy55IC0gb2Zmc2V0cy50b3A7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBHZXQgdGhlIGNvb3JkaW5hdGVzIG9mIHRoZSBjdXJyZW50IHNlbGVjdGVkIHJlZ2lvbi4KICAgICAqCiAgICAgKiBAcHVibGljCiAgICAgKi8KICAgIGdldENvb3JkaW5hdGVzT2ZTZWxlY3RlZDogZnVuY3Rpb24gZ2V0Q29vcmRpbmF0ZXNPZlNlbGVjdGVkKCkgewogICAgICBpZiAodGhpcy5zZWxlY3RlZE9iamVjdHMgJiYgdGhpcy5zZWxlY3RlZE9iamVjdHMubGVuZ3RoID4gMCkgewogICAgICAgIHJldHVybiB0aGlzLiRtb2R1bGUuc2NlbmUuZ2V0T2JqZWN0c1NjcmVlblhZKHRoaXMuc2VsZWN0ZWRPYmplY3RzKTsKICAgICAgfQogICAgICByZXR1cm4gdW5kZWZpbmVkOwogICAgfSwKICAgIC8qKgogICAgICogUmV0dXJuIGFuIG9iamVjdCBjb250YWluaW5nIHRoZSB3aW5kb3cgY29vcmRpbmF0ZXMgb2YgdGhlCiAgICAgKiBjdXJyZW50IHNlbGVjdGVkIHJlZ2lvbiB3aGljaCB3aWxsIGJlIHVwZGF0ZWQgYWZ0ZXIgZWFjaCByZW5kZXIKICAgICAqIGxvb3AuCiAgICAgKgogICAgICogQHB1YmxpYwogICAgICovCiAgICBnZXREeW5hbWljU2VsZWN0ZWRDb29yZGluYXRlczogZnVuY3Rpb24gZ2V0RHluYW1pY1NlbGVjdGVkQ29vcmRpbmF0ZXMoKSB7CiAgICAgIHJldHVybiB0aGlzLiRtb2R1bGUuc2VsZWN0ZWRTY3JlZW5Db29yZGluYXRlczsKICAgIH0sCiAgICAvKioKICAgICAqIENhbGxiYWNrIHdoZW4gdGltZSBpcyBjaGFuZ2VkIHRocm91Z2ggdGhlIFVJLgogICAgICovCiAgICB0aW1lQ2hhbmdlOiBmdW5jdGlvbiB0aW1lQ2hhbmdlKGV2ZW50KSB7CiAgICAgIHZhciBub3JtYWxpemVkVGltZSA9IGV2ZW50IC8gdGhpcy50aW1lTWF4ICogMTAwOwogICAgICBpZiAobm9ybWFsaXplZFRpbWUgIT0gdGhpcy5zY2VuZURhdGEuY3VycmVudFRpbWUpIHRoaXMuJG1vZHVsZS51cGRhdGVUaW1lKG5vcm1hbGl6ZWRUaW1lKTsKICAgIH0sCiAgICAvKioKICAgICAqIEEgY2FsbGJhY2sgdXNlZCBieSBjaGlsZHJlbiBjb21wb25lbnRzLiBTZXQgdGhlIHNlbGVjdGVkIHppbmMgb2JqZWN0CiAgICAgKgogICAgICogQHBhcmFtIHtvYmplY3R9IG9iamVjdCBaaW5jIG9iamVjdAogICAgICovCiAgICBvYmplY3RTZWxlY3RlZDogZnVuY3Rpb24gb2JqZWN0U2VsZWN0ZWQob2JqZWN0cywgcHJvcGFnYXRlKSB7CiAgICAgIHRoaXMuc2VsZWN0ZWRPYmplY3RzID0gb2JqZWN0czsKICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRPYmplY3RzICYmIHRoaXMuc2VsZWN0ZWRPYmplY3RzLmxlbmd0aCA+IDApIHsKICAgICAgICB0aGlzLiRyZWZzLnByaW1pdGl2ZUNvbnRyb2xzLnNldE9iamVjdCh0aGlzLnNlbGVjdGVkT2JqZWN0c1swXSk7CiAgICAgIH0KICAgICAgdGhpcy4kbW9kdWxlLnNldFNlbGVjdGVkQnlaaW5jT2JqZWN0cyhvYmplY3RzLCB1bmRlZmluZWQsIHByb3BhZ2F0ZSk7CiAgICB9LAogICAgLyoqCiAgICAgKiBBIGNhbGxiYWNrIHVzZWQgYnkgY2hpbGRyZW4gY29tcG9uZW50cy4gU2V0IHRoZSBoaWdobGlnaHRlZCB6aW5jIG9iamVjdAogICAgICoKICAgICAqIEBwYXJhbSB7b2JqZWN0fSBvYmplY3QgWmluYyBvYmplY3QKICAgICAqLwogICAgb2JqZWN0SG92ZXJlZDogZnVuY3Rpb24gb2JqZWN0SG92ZXJlZChvYmplY3RzLCBwcm9wYWdhdGUpIHsKICAgICAgdGhpcy5ob3ZlcmVkT2JqZWN0cyA9IG9iamVjdHM7CiAgICAgIHRoaXMuJG1vZHVsZS5zZXRIaWdobGlnaHRlZEJ5WmluY09iamVjdHMob2JqZWN0cywgdW5kZWZpbmVkLCBwcm9wYWdhdGUpOwogICAgfSwKICAgIC8qKgogICAgICogU2V0IHRoZSBzZWxlY3RlZCBieSBuYW1lLgogICAgICoKICAgICAqIEBwYXJhbSB7fSBuYW1lIE5hbWUgb2YgdGhlIGdyb3VwCiAgICAgKi8KICAgIGNoYW5nZUFjdGl2ZUJ5TmFtZTogZnVuY3Rpb24gY2hhbmdlQWN0aXZlQnlOYW1lKG5hbWVzLCByZWdpb24sIHByb3BhZ2F0ZSkgewogICAgICB2YXIgaXNBcnJheSA9IEFycmF5LmlzQXJyYXkobmFtZXMpOwogICAgICBpZiAobmFtZXMgPT09IHVuZGVmaW5lZCB8fCBpc0FycmF5ICYmIG5hbWVzLmxlbmd0aCA9PT0gMCkgewogICAgICAgIHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzLnJlbW92ZUFjdGl2ZShwcm9wYWdhdGUpOwogICAgICB9IGVsc2UgewogICAgICAgIHZhciBhcnJheSA9IG5hbWVzOwogICAgICAgIGlmICghaXNBcnJheSkgYXJyYXkgPSBbYXJyYXldOwogICAgICAgIHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzLmNoYW5nZUFjdGl2ZUJ5TmFtZXMoYXJyYXksIHJlZ2lvbiwgcHJvcGFnYXRlKTsKICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICogU2V0IHRoZSBoaWdobGlnaHRlZCBieSBuYW1lLgogICAgICoKICAgICAqIEBwYXJhbSB7bmFtZX0gbmFtZSBOYW1lIG9mIHRoZSBncm91cAogICAgICovCiAgICBjaGFuZ2VIaWdobGlnaHRlZEJ5TmFtZTogZnVuY3Rpb24gY2hhbmdlSGlnaGxpZ2h0ZWRCeU5hbWUobmFtZXMsIHJlZ2lvbiwgcHJvcGFnYXRlKSB7CiAgICAgIHZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheShuYW1lcyk7CiAgICAgIGlmIChuYW1lcyA9PT0gdW5kZWZpbmVkIHx8IGlzQXJyYXkgJiYgbmFtZXMubGVuZ3RoID09PSAwKSB7CiAgICAgICAgdGhpcy4kcmVmcy50cmVlQ29udHJvbHMucmVtb3ZlSG92ZXIocHJvcGFnYXRlKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB2YXIgYXJyYXkgPSBuYW1lczsKICAgICAgICBpZiAoIWlzQXJyYXkpIGFycmF5ID0gW2FycmF5XTsKICAgICAgICB0aGlzLiRyZWZzLnRyZWVDb250cm9scy5jaGFuZ2VIb3ZlckJ5TmFtZXMoYXJyYXksIHJlZ2lvbiwgcHJvcGFnYXRlKTsKICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICogU3RhcnQgdGhlIGFuaW1hdGlvbi4KICAgICAqCiAgICAgKiBAcGFyYW0ge29iamVjdH0gb2JqZWN0IFppbmMgb2JqZWN0CiAgICAgKi8KICAgIHBsYXk6IGZ1bmN0aW9uIHBsYXkoZmxhZykgewogICAgICB0aGlzLiRtb2R1bGUucGxheUFuaW1hdGlvbihmbGFnKTsKICAgICAgdGhpcy5pc1BsYXlpbmcgPSBmbGFnOwogICAgICAvL0hpZGUgdG9vbHRpcCBhcyBsb2NhdGlvbiBtYXkKICAgICAgLy90aGlzLmhpZGVSZWdpb25Ub29sdGlwKCk7CiAgICB9LAoKICAgIC8qKgogICAgICogRnVuY3Rpb24gdG8gdG9nZ2xlIG9uL29mZiBvdmVybGF5IGhlbHAuCiAgICAgKi8KICAgIHNldEhlbHBNb2RlOiBmdW5jdGlvbiBzZXRIZWxwTW9kZShoZWxwTW9kZSkgewogICAgICBpZiAoaGVscE1vZGUpIHsKICAgICAgICB0aGlzLmluSGVscCA9IHRydWU7CiAgICAgICAgdGhpcy5ob3ZlclZpc2liaWxpdGllcy5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICBpdGVtLnZhbHVlID0gdHJ1ZTsKICAgICAgICB9KTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLmluSGVscCA9IGZhbHNlOwogICAgICAgIHRoaXMuaG92ZXJWaXNpYmlsaXRpZXMuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgaXRlbS52YWx1ZSA9IGZhbHNlOwogICAgICAgIH0pOwogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBDYWxsYmFjayBmdW5jdGlvbiB1c2VkIGJ5IHNob3dSZWdpb25Ub29sdGlwIGluIHRoZSBjYXNlIHdoZW4gdGhlIHRvb2x0aXAKICAgICAqIGlzIG91dCBvZiB2aWV3LgogICAgICovCiAgICBkaXNwbGF5VG9vbHRpcE9mT2JqZWN0c0NhbGxiYWNrOiBmdW5jdGlvbiBkaXNwbGF5VG9vbHRpcE9mT2JqZWN0c0NhbGxiYWNrKG5hbWUsIG9iamVjdHMsIHJlZ2lvblBhdGgsIHJlc2V0VmlldywgbGl2ZVVwZGF0ZXMpIHsKICAgICAgdmFyIGluc3RhbmNlID0gdGhpczsKICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHsKICAgICAgICBpbnN0YW5jZS4kbW9kdWxlLnppbmNSZW5kZXJlci5yZW1vdmVQb3N0UmVuZGVyQ2FsbGJhY2tGdW5jdGlvbihpbnN0YW5jZS4kX3JlZ2lvblRvb2x0aXBDYWxsYmFjayk7CiAgICAgICAgaW5zdGFuY2UuJF9yZWdpb25Ub29sdGlwQ2FsbGJhY2sgPSB1bmRlZmluZWQ7CiAgICAgICAgaW5zdGFuY2UuZGlzcGxheVRvb2x0aXBPZk9iamVjdHMobmFtZSwgb2JqZWN0cywgcmVnaW9uUGF0aCwgcmVzZXRWaWV3LCBsaXZlVXBkYXRlcyk7CiAgICAgIH07CiAgICB9LAogICAgbGl2ZVVwZGF0ZVRvb2x0aXBQb3NpdGlvbjogZnVuY3Rpb24gbGl2ZVVwZGF0ZVRvb2x0aXBQb3NpdGlvbigpIHsKICAgICAgaWYgKHRoaXMuJG1vZHVsZS5zZWxlY3RlZENlbnRlcikgewogICAgICAgIHRoaXMudERhdGEueCA9IHRoaXMuJG1vZHVsZS5zZWxlY3RlZFNjcmVlbkNvb3JkaW5hdGVzLng7CiAgICAgICAgdGhpcy50RGF0YS55ID0gdGhpcy4kbW9kdWxlLnNlbGVjdGVkU2NyZWVuQ29vcmRpbmF0ZXMueTsKICAgICAgfQogICAgfSwKICAgIGRpc3BsYXlUb29sdGlwT2ZPYmplY3RzOiBmdW5jdGlvbiBkaXNwbGF5VG9vbHRpcE9mT2JqZWN0cyhuYW1lLCBvYmplY3RzLCByZWdpb25QYXRoLCByZXNldFZpZXcsIGxpdmVVcGRhdGVzKSB7CiAgICAgIGlmIChvYmplY3RzLmxlbmd0aCA+IDApIHsKICAgICAgICB2YXIgY29vcmRzID0gb2JqZWN0c1swXS5nZXRDbG9zZXN0VmVydGV4RE9NRWxlbWVudENvb3Jkcyh0aGlzLiRtb2R1bGUuc2NlbmUpOwogICAgICAgIGlmIChjb29yZHMpIHsKICAgICAgICAgIC8vVGhlIGNvb3JkcyBpcyBub3QgaW4gdmlldywgdmlldyBhbGwgaWYgcmVzZXRWaWV3IGZsYWcgaXMgdHJ1ZQogICAgICAgICAgaWYgKCFjb29yZHMuaW5WaWV3KSB7CiAgICAgICAgICAgIHRoaXMuaGlkZVJlZ2lvblRvb2x0aXAoKTsKICAgICAgICAgICAgaWYgKHJlc2V0VmlldykgewogICAgICAgICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS52aWV3QWxsKCk7CiAgICAgICAgICAgICAgLy9Vc2UgdGhlIHBvc3QgcmVuZGVyIGNhbGxiYWNrIHRvIG1ha2Ugc3VyZSB0aGUgc2NlbmUgaGFzIGJlZW4gdXBkYXRlZAogICAgICAgICAgICAgIC8vYmVmb3JlIGdldHRpbmcgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwLgogICAgICAgICAgICAgIGlmICh0aGlzLiRfcmVnaW9uVG9vbHRpcENhbGxiYWNrKSB7CiAgICAgICAgICAgICAgICB0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyLnJlbW92ZVBvc3RSZW5kZXJDYWxsYmFja0Z1bmN0aW9uKHRoaXMuJF9yZWdpb25Ub29sdGlwQ2FsbGJhY2spOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB0aGlzLiRfcmVnaW9uVG9vbHRpcENhbGxiYWNrID0gdGhpcy4kbW9kdWxlLnppbmNSZW5kZXJlci5hZGRQb3N0UmVuZGVyQ2FsbGJhY2tGdW5jdGlvbih0aGlzLmRpc3BsYXlUb29sdGlwT2ZPYmplY3RzQ2FsbGJhY2sobmFtZSwgb2JqZWN0cywgcmVnaW9uUGF0aCwgcmVzZXRWaWV3LCBsaXZlVXBkYXRlcykpOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB0aGlzLnREYXRhLnZpc2libGUgPSB0cnVlOwogICAgICAgICAgICB0aGlzLnREYXRhLmxhYmVsID0gbmFtZTsKICAgICAgICAgICAgdGhpcy50RGF0YS54ID0gY29vcmRzLnBvc2l0aW9uLng7CiAgICAgICAgICAgIHRoaXMudERhdGEueSA9IGNvb3Jkcy5wb3NpdGlvbi55OwogICAgICAgICAgICB0aGlzLnREYXRhLnJlZ2lvbiA9IHJlZ2lvblBhdGg7CiAgICAgICAgICAgIGlmICh0aGlzLiRfbGl2ZUNvb3JkaW5hdGVzVXBkYXRlZCkgewogICAgICAgICAgICAgIHRoaXMuJG1vZHVsZS56aW5jUmVuZGVyZXIucmVtb3ZlUG9zdFJlbmRlckNhbGxiYWNrRnVuY3Rpb24odGhpcy4kX2xpdmVDb29yZGluYXRlc1VwZGF0ZWQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChsaXZlVXBkYXRlcykgewogICAgICAgICAgICAgIHRoaXMuJG1vZHVsZS5zZXR1cExpdmVDb29yZGluYXRlcyhvYmplY3RzKTsKICAgICAgICAgICAgICB0aGlzLiRfbGl2ZUNvb3JkaW5hdGVzVXBkYXRlZCA9IHRoaXMuJG1vZHVsZS56aW5jUmVuZGVyZXIuYWRkUG9zdFJlbmRlckNhbGxiYWNrRnVuY3Rpb24odGhpcy5saXZlVXBkYXRlVG9vbHRpcFBvc2l0aW9uKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICB9CiAgICAgIHRoaXMuaGlkZVJlZ2lvblRvb2x0aXAoKTsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSwKICAgIC8qKgogICAgICogRGlzcGxheSB0aGUgdG9vbHRpcCB1c2VkIGZvciBkaXNwbGF5aW5nIHNlYXJjaCByZXN1bHQuCiAgICAgKiBXaGVuIHJlc2V0VmlldyBpcyBzZXQgdG8gdHJ1ZSwgaXQgd2lsbAogICAgICogcmVzZXQgdmlldyBpZiB0aGUgdG9vbHRpcCBpcyBub3QgaW4gdmlldy4KICAgICAqIFNldHRpbmcgbGl2ZVVwZGF0ZXMgdG8gdHJ1ZSB3aWxsIHVwZGF0ZSB0aGUgdG9vbHRpcCBsb2NhdGlvbgogICAgICogYXQgZXZlcnkgcmVuZGVyaW5nIGxvb3AuCiAgICAgKi8KICAgIHNob3dSZWdpb25Ub29sdGlwV2l0aE9iamVjdHM6IGZ1bmN0aW9uIHNob3dSZWdpb25Ub29sdGlwV2l0aE9iamVjdHMobGFiZWwsIHppbmNPYmplY3RzLCByZWdpb25QYXRoLCByZXNldFZpZXcsIGxpdmVVcGRhdGVzKSB7CiAgICAgIGlmIChsYWJlbCAmJiB6aW5jT2JqZWN0cyAmJiB6aW5jT2JqZWN0cy5sZW5ndGggPiAwICYmIHRoaXMuJG1vZHVsZS5zY2VuZSkgewogICAgICAgIHJldHVybiB0aGlzLmRpc3BsYXlUb29sdGlwT2ZPYmplY3RzKGxhYmVsLCB6aW5jT2JqZWN0cywgcmVnaW9uUGF0aCwgcmVzZXRWaWV3LCBsaXZlVXBkYXRlcyk7CiAgICAgIH0KICAgICAgdGhpcy5oaWRlUmVnaW9uVG9vbHRpcCgpOwogICAgICByZXR1cm4gZmFsc2U7CiAgICB9LAogICAgLyoqCiAgICAgKiBEaXNwbGF5IHRoZSB0b29sdGlwLiBXaGVuIHJlc2V0VmlldyBpcyBzZXQgdG8gdHJ1ZSwgaXQgd2lsbAogICAgICogcmVzZXQgdmlldyBpZiB0aGUgdG9vbHRpcCBpcyBub3QgaW4gdmlldy4KICAgICAqIFNldHRpbmcgbGl2ZVVwZGF0ZXMgdG8gdHJ1ZSB3aWxsIHVwZGF0ZSB0aGUgdG9vbHRpcCBsb2NhdGlvbgogICAgICogYXQgZXZlcnkgcmVuZGVyaW5nIGxvb3AuCiAgICAgKi8KICAgIHNob3dSZWdpb25Ub29sdGlwOiBmdW5jdGlvbiBzaG93UmVnaW9uVG9vbHRpcChuYW1lLCByZXNldFZpZXcsIGxpdmVVcGRhdGVzKSB7CiAgICAgIGlmIChuYW1lICYmIHRoaXMuJG1vZHVsZS5zY2VuZSkgewogICAgICAgIHZhciByb290UmVnaW9uID0gdGhpcy4kbW9kdWxlLnNjZW5lLmdldFJvb3RSZWdpb24oKTsKICAgICAgICB2YXIgZ3JvdXBzID0gW25hbWVdOwogICAgICAgIHZhciBvYmplY3RzID0gZmluZE9iamVjdHNXaXRoTmFtZXMocm9vdFJlZ2lvbiwgZ3JvdXBzLCAiIiwgdHJ1ZSk7CiAgICAgICAgdmFyIHJlZ2lvblBhdGggPSB1bmRlZmluZWQ7CiAgICAgICAgaWYgKG9iamVjdHMgJiYgb2JqZWN0cy5sZW5ndGggPiAwKSB7CiAgICAgICAgICByZWdpb25QYXRoID0gb2JqZWN0c1swXS5nZXRSZWdpb24oKS5nZXRGdWxsUGF0aCgpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdGhpcy5zaG93UmVnaW9uVG9vbHRpcFdpdGhPYmplY3RzKG5hbWUsIG9iamVjdHMsIHJlZ2lvblBhdGgsIHJlc2V0VmlldywgbGl2ZVVwZGF0ZXMpOwogICAgICB9CiAgICAgIHRoaXMuaGlkZVJlZ2lvblRvb2x0aXAoKTsKICAgICAgcmV0dXJuIGZhbHNlOwogICAgfSwKICAgIC8qKgogICAgICogRGlzcGxheSB0aGUgdG9vbHRpcCB1c2luZyB0aGUgbGlzdCBvZiBhbm5vdGF0aW9ucy4KICAgICAqIFdoZW4gcmVzZXRWaWV3IGlzIHNldCB0byB0cnVlLCBpdCB3aWxsCiAgICAgKiByZXNldCB2aWV3IGlmIHRoZSB0b29sdGlwIGlzIG5vdCBpbiB2aWV3LgogICAgICogU2V0dGluZyBsaXZlVXBkYXRlcyB0byB0cnVlIHdpbGwgdXBkYXRlIHRoZSB0b29sdGlwIGxvY2F0aW9uCiAgICAgKiBhdCBldmVyeSByZW5kZXJpbmcgbG9vcC4KICAgICAqLwogICAgc2hvd1JlZ2lvblRvb2x0aXBXaXRoQW5ub3RhdGlvbnM6IGZ1bmN0aW9uIHNob3dSZWdpb25Ub29sdGlwV2l0aEFubm90YXRpb25zKGFubm90YXRpb25zLCByZXNldFZpZXcsIGxpdmVVcGRhdGVzKSB7CiAgICAgIGlmICh0aGlzLiRtb2R1bGUuc2NlbmUpIHsKICAgICAgICB2YXIgcmVzdWx0ID0gZ2V0T2JqZWN0c0Zyb21Bbm5vdGF0aW9ucyh0aGlzLiRtb2R1bGUuc2NlbmUsIGFubm90YXRpb25zKTsKICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5vYmplY3RzLmxlbmd0aCA+IDApIHsKICAgICAgICAgIHJldHVybiB0aGlzLnNob3dSZWdpb25Ub29sdGlwV2l0aE9iamVjdHMocmVzdWx0LmxhYmVsLCByZXN1bHQub2JqZWN0cywgcmVzdWx0LnJlZ2lvblBhdGgsIHJlc2V0VmlldywgbGl2ZVVwZGF0ZXMpOwogICAgICAgIH0KICAgICAgfQogICAgICB0aGlzLmhpZGVSZWdpb25Ub29sdGlwKCk7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0sCiAgICBoaWRlUmVnaW9uVG9vbHRpcDogZnVuY3Rpb24gaGlkZVJlZ2lvblRvb2x0aXAoKSB7CiAgICAgIGlmICh0aGlzLiRfbGl2ZUNvb3JkaW5hdGVzVXBkYXRlZCkgewogICAgICAgIHRoaXMuJG1vZHVsZS56aW5jUmVuZGVyZXIucmVtb3ZlUG9zdFJlbmRlckNhbGxiYWNrRnVuY3Rpb24odGhpcy4kX2xpdmVDb29yZGluYXRlc1VwZGF0ZWQpOwogICAgICAgIC8vVW5zZXQgdGhlIHRyYWNraW5nCiAgICAgICAgdGhpcy4kbW9kdWxlLnNldHVwTGl2ZUNvb3JkaW5hdGVzKHVuZGVmaW5lZCk7CiAgICAgIH0KICAgICAgdGhpcy50RGF0YS52aXNpYmxlID0gZmFsc2U7CiAgICAgIHRoaXMudERhdGEucmVnaW9uID0gdW5kZWZpbmVkOwogICAgfSwKICAgIC8qKgogICAgICogU2V0IHRoZSBtYXJrZXIgbW9kZXMgZm9yIG9iamVjdHMgd2l0aCB0aGUgcHJvdmlkZWQgbmFtZSwgbW9kZSBjYW4KICAgICAqIGJlICJvbiIsICJvZmYiIG9yICJpbmhlcml0ZWQiLgogICAgICovCiAgICBzZXRNYXJrZXJNb2RlRm9yT2JqZWN0c1dpdGhOYW1lOiBmdW5jdGlvbiBzZXRNYXJrZXJNb2RlRm9yT2JqZWN0c1dpdGhOYW1lKG5hbWUsIG1vZGUpIHsKICAgICAgaWYgKG5hbWUgJiYgdGhpcy4kbW9kdWxlLnNjZW5lKSB7CiAgICAgICAgdmFyIHJvb3RSZWdpb24gPSB0aGlzLiRtb2R1bGUuc2NlbmUuZ2V0Um9vdFJlZ2lvbigpOwogICAgICAgIHZhciBncm91cHMgPSBbbmFtZV07CiAgICAgICAgdmFyIG9iamVjdHMgPSBmaW5kT2JqZWN0c1dpdGhOYW1lcyhyb290UmVnaW9uLCBncm91cHMsICIiLCB0cnVlKTsKICAgICAgICBvYmplY3RzLmZvckVhY2goZnVuY3Rpb24gKG9iamVjdCkgewogICAgICAgICAgcmV0dXJuIG9iamVjdC5zZXRNYXJrZXJNb2RlKG1vZGUpOwogICAgICAgIH0pOwogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBTZXQgdGhlIG1hcmtlciBtb2RlcyBmb3Igb2JqZWN0cyBzcGVjaWZpZWQgYnkgdGhlIGxpc3Qgb2YgYW5ub3RhdGlvbnMKICAgICAqLwogICAgc2V0TWFya2VyTW9kZVdpdGhBbm5vdGF0aW9uczogZnVuY3Rpb24gc2V0TWFya2VyTW9kZVdpdGhBbm5vdGF0aW9ucyhhbm5vdGF0aW9ucywgbW9kZSkgewogICAgICBpZiAodGhpcy4kbW9kdWxlLnNjZW5lKSB7CiAgICAgICAgdmFyIHJlc3VsdCA9IGdldE9iamVjdHNGcm9tQW5ub3RhdGlvbnModGhpcy4kbW9kdWxlLnNjZW5lLCBhbm5vdGF0aW9ucyk7CiAgICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQub2JqZWN0cy5sZW5ndGggPiAwKSB7CiAgICAgICAgICByZXN1bHQub2JqZWN0cy5mb3JFYWNoKGZ1bmN0aW9uIChvYmplY3QpIHsKICAgICAgICAgICAgcmV0dXJuIG9iamVjdC5zZXRNYXJrZXJNb2RlKG1vZGUpOwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBUaGlzIGlzIGNhbGxlZCB3aGVuIG1vdXNlIGN1cnNvciBlbnRlcnMgc3VwcG9ydGVkIGVsZW1lbnRzCiAgICAgKiB3aXRoIGhlbHAgdG9vdGx0aXBzLgogICAgICovCiAgICBzaG93SGVscFRleHQ6IGZ1bmN0aW9uIHNob3dIZWxwVGV4dChoZWxwVGV4dE51bWJlcikgewogICAgICB2YXIgX3RoaXMzID0gdGhpczsKICAgICAgaWYgKCF0aGlzLmluSGVscCkgewogICAgICAgIHRoaXMuaGVscFRleHRXYWl0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CiAgICAgICAgICBfdGhpczMuaG92ZXJWaXNpYmlsaXRpZXNbaGVscFRleHROdW1iZXJdLnZhbHVlID0gdHJ1ZTsKICAgICAgICB9LCA1MDApOwogICAgICB9CiAgICB9LAogICAgLyoqCiAgICAgKiBUaGlzIGlzIGNhbGxlZCB3aGVuIG1vdXNlIGN1cnNvciBleGl0cyBzdXBwb3J0ZWQgZWxlbWVudC4uCiAgICAgKi8KICAgIGhpZGVIZWxwVGV4dDogZnVuY3Rpb24gaGlkZUhlbHBUZXh0KGhlbHBUZXh0TnVtYmVyKSB7CiAgICAgIGlmICghdGhpcy5pbkhlbHApIHsKICAgICAgICB0aGlzLmhvdmVyVmlzaWJpbGl0aWVzW2hlbHBUZXh0TnVtYmVyXS52YWx1ZSA9IGZhbHNlOwogICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmhlbHBUZXh0V2FpdCk7CiAgICAgIH0KICAgIH0sCiAgICBzZWFyY2g6IGZ1bmN0aW9uIHNlYXJjaCh0ZXh0LCBkaXNwbGF5TGFiZWwpIHsKICAgICAgaWYgKHRoaXMuJF9zZWFyY2hJbmRleCkgewogICAgICAgIGlmICh0ZXh0ID09PSB1bmRlZmluZWQgfHwgdGV4dCA9PT0gIiIgfHwgQXJyYXkuaXNBcnJheSh0ZXh0KSAmJiB0ZXh0Lmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgdGhpcy5vYmplY3RTZWxlY3RlZChbXSwgdHJ1ZSk7CiAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHZhciByZXN1bHQgPSB0aGlzLiRfc2VhcmNoSW5kZXguc2VhcmNoQW5kUHJvY2Vzc1Jlc3VsdCh0ZXh0KTsKICAgICAgICAgIHZhciB6aW5jT2JqZWN0cyA9IHJlc3VsdC56aW5jT2JqZWN0czsKICAgICAgICAgIGlmICh6aW5jT2JqZWN0cy5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgIHRoaXMub2JqZWN0U2VsZWN0ZWQoemluY09iamVjdHMsIHRydWUpOwogICAgICAgICAgICBpZiAoZGlzcGxheUxhYmVsKSB7CiAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB6aW5jT2JqZWN0cy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgaWYgKHppbmNPYmplY3RzW2ldICYmIHppbmNPYmplY3RzW2ldLmdyb3VwTmFtZSkgewogICAgICAgICAgICAgICAgICB0aGlzLnNob3dSZWdpb25Ub29sdGlwV2l0aE9iamVjdHMocmVzdWx0LmxhYmVsLCB6aW5jT2JqZWN0cywgcmVzdWx0LnJlZ2lvblBhdGgsIHRydWUsIHRydWUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRoaXMub2JqZWN0U2VsZWN0ZWQoW10sIHRydWUpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gZmFsc2U7CiAgICB9LAogICAgLyoqCiAgICAgKiBHZXQgdGhlIGxpc3Qgb2Ygc3VnZ2VzdGVkIHRlcm1zCiAgICAgKi8KICAgIGZldGNoU3VnZ2VzdGlvbnM6IGZ1bmN0aW9uIGZldGNoU3VnZ2VzdGlvbnModGVybSkgewogICAgICBpZiAodGhpcy4kX3NlYXJjaEluZGV4ID09PSB1bmRlZmluZWQpIHJldHVybiBbXTsKICAgICAgcmV0dXJuIHRoaXMuJF9zZWFyY2hJbmRleC5hdXRvX3N1Z2dlc3QodGVybSk7CiAgICB9LAogICAgLyoqCiAgICAgKiBDYWxsZWQgd2hlbiBtaW5pbWFwIHNldHRpbmdzIGhhcyBjaGFuZ2VkLiBQYXNzIHRoZQogICAgICogcGFyYW1ldGVycyB0byBaaW5jSlMgYW5kIG1hcmtlZCBpdCBmb3IgdXBkYXRlLgogICAgICovCiAgICB1cGRhdGVNaW5pbWFwU2Npc3NvcjogZnVuY3Rpb24gdXBkYXRlTWluaW1hcFNjaXNzb3IoKSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwogICAgICBPYmplY3Qua2V5cyh0aGlzLm1pbmltYXBTZXR0aW5ncykuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7CiAgICAgICAgX3RoaXM0LiRtb2R1bGUuc2NlbmUubWluaW1hcFNjaXNzb3Jba2V5XSA9IF90aGlzNC5taW5pbWFwU2V0dGluZ3Nba2V5XTsKICAgICAgfSk7CiAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5taW5pbWFwU2Npc3Nvci51cGRhdGVSZXF1aXJlZCA9IHRydWU7CiAgICB9LAogICAgdXBkYXRlU2V0dGluZ3Nmcm9tU2NlbmU6IGZ1bmN0aW9uIHVwZGF0ZVNldHRpbmdzZnJvbVNjZW5lKCkgewogICAgICB0aGlzLmN1cnJlbnRTcGVlZCA9IDE7CiAgICAgIHRoaXMuJG1vZHVsZS5zZXRQbGF5UmF0ZSh0aGlzLmRlZmF1bHRSYXRlKTsKICAgICAgdGhpcy5vcmdpbmFsRHVyYXRpb24gPSB0aGlzLiRtb2R1bGUuc2NlbmUuZ2V0TWV0YWRhdGFUYWcoIk9yaWdpbmFsRHVyYXRpb24iKTsKICAgICAgdGhpcy5hbmltYXRlRHVyYXRpb24gPSB0aGlzLiRtb2R1bGUuc2NlbmUuZ2V0TWV0YWRhdGFUYWcoIkR1cmF0aW9uIik7CiAgICAgIHZhciB0aW1lU3RhbXBzID0gdGhpcy4kbW9kdWxlLnNjZW5lLmdldE1ldGFkYXRhVGFnKCJUaW1lU3RhbXBzIik7CiAgICAgIHRoaXMudGltZVN0YW1wcyA9IHt9OwogICAgICBmb3IgKHZhciBrZXkgaW4gdGltZVN0YW1wcykgewogICAgICAgIHRoaXMudGltZVN0YW1wc1t0aW1lU3RhbXBzW2tleV1dID0ga2V5OwogICAgICB9CiAgICAgIHRoaXMudGltZU1heCA9IHRoaXMuJG1vZHVsZS5zY2VuZS5nZXREdXJhdGlvbigpOwogICAgfSwKICAgIHNldFVSTEZpbmlzaENhbGxiYWNrOiBmdW5jdGlvbiBzZXRVUkxGaW5pc2hDYWxsYmFjayhvcHRpb25zKSB7CiAgICAgIHZhciBfdGhpczUgPSB0aGlzOwogICAgICByZXR1cm4gZnVuY3Rpb24gKCkgewogICAgICAgIGlmIChvcHRpb25zKSB7CiAgICAgICAgICBpZiAob3B0aW9ucy52aWV3cG9ydCkgewogICAgICAgICAgICBfdGhpczUuJG1vZHVsZS5zY2VuZS5nZXRaaW5jQ2FtZXJhQ29udHJvbHMoKS5zZXRDdXJyZW50Q2FtZXJhU2V0dGluZ3Mob3B0aW9ucy52aWV3cG9ydCk7CiAgICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMudmlld1VSTCAmJiBvcHRpb25zLnZpZXdVUkwgIT09ICIiKSB7CiAgICAgICAgICAgIHZhciB1cmwgPSBuZXcgVVJMKG9wdGlvbnMudmlld1VSTCwgX3RoaXM1LnVybCk7CiAgICAgICAgICAgIF90aGlzNS4kbW9kdWxlLnNjZW5lLmxvYWRWaWV3VVJMKHVybCk7CiAgICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMucmVnaW9uICYmIG9wdGlvbnMucmVnaW9uICE9PSAiIikgewogICAgICAgICAgICBfdGhpczUudmlld1JlZ2lvbihvcHRpb25zLnJlZ2lvbik7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAob3B0aW9ucy52aXNpYmlsaXR5KSB7CiAgICAgICAgICAgIC8vIFNvbWUgVUlzIG1heSBub3QgYmUgcmVhZHkgYXQgdGhpcyB0aW1lLgogICAgICAgICAgICBfdGhpczUuJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICBfdGhpczUuJHJlZnMudHJlZUNvbnRyb2xzLnNldFN0YXRlKG9wdGlvbnMudmlzaWJpbGl0eSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBfdGhpczUudXBkYXRlU2V0dGluZ3Nmcm9tU2NlbmUoKTsKICAgICAgICBfdGhpczUuJG1vZHVsZS51cGRhdGVUaW1lKDAuMDEpOwogICAgICAgIF90aGlzNS4kbW9kdWxlLnVwZGF0ZVRpbWUoMCk7CiAgICAgICAgX3RoaXM1LiRtb2R1bGUudW5zZXRGaW5pc2hEb3dubG9hZENhbGxiYWNrKCk7CiAgICAgICAgX3RoaXM1LmFkZFJlZ2lvbnNUb1NlYXJjaEluZGV4KCk7CiAgICAgICAgX3RoaXM1LiRlbWl0KCJvbi1yZWFkeSIpOwogICAgICAgIF90aGlzNS5zZXRNYXJrZXJzKCk7CiAgICAgICAgX3RoaXM1LmlzUmVhZHkgPSB0cnVlOwogICAgICB9OwogICAgfSwKICAgIC8qKgogICAgICogRnVuY3Rpb24gdXNlZCBmb3IgZ2V0dGluZyB0aGUgY3VycmVudCBzdGF0ZXMgb2YgdGhlIHNjZW5lLiBUaGlzIGV4cG9ydGVkIHN0YXRlcwogICAgICogY2FuIGJlIGltcG9ydGVkIHVzaW5nIHRoZSBpbXBvcnRTdGF0ZXMgbWV0aG9kLgogICAgICoKICAgICAqIEBwdWJsaWMKICAgICAqLwogICAgZ2V0U3RhdGU6IGZ1bmN0aW9uIGdldFN0YXRlKCkgewogICAgICB2YXIgc3RhdGUgPSB7CiAgICAgICAgZm9ybWF0OiB0aGlzLmZpbGVGb3JtYXQsCiAgICAgICAgdXJsOiB0aGlzLl9jdXJyZW50VVJMLAogICAgICAgIHZpZXdwb3J0OiB1bmRlZmluZWQsCiAgICAgICAgdmlzaWJpbGl0eTogdW5kZWZpbmVkCiAgICAgIH07CiAgICAgIGlmICh0aGlzLiRyZWZzLnRyZWVDb250cm9scykgc3RhdGUudmlzaWJpbGl0eSA9IHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzLmdldFN0YXRlKCk7CiAgICAgIGlmICh0aGlzLiRtb2R1bGUuc2NlbmUpIHsKICAgICAgICB2YXIgemluY0NhbWVyYUNvbnRyb2xzID0gdGhpcy4kbW9kdWxlLnNjZW5lLmdldFppbmNDYW1lcmFDb250cm9scygpOwogICAgICAgIHN0YXRlLnZpZXdwb3J0ID0gemluY0NhbWVyYUNvbnRyb2xzLmdldEN1cnJlbnRWaWV3cG9ydCgpOwogICAgICB9CiAgICAgIHJldHVybiBzdGF0ZTsKICAgIH0sCiAgICAvKioKICAgICAqIEZ1bmN0aW9uIHVzZWQgZm9yIGltcG9ydGluZyB0aGUgc3RhdGVzIG9mIHRoZSBzY2VuZS4gVGhpcyBleHBvcnRlZCBzdGF0ZXMKICAgICAqIGNhbiBiZSBpbXBvcnRlZCB1c2luZyB0aGUgcmVhZCBzdGF0ZXMgbWV0aG9kLgogICAgICoKICAgICAqIEBwdWJsaWMKICAgICAqLwogICAgc2V0U3RhdGU6IGZ1bmN0aW9uIHNldFN0YXRlKHN0YXRlKSB7CiAgICAgIGlmIChzdGF0ZSkgewogICAgICAgIGlmIChzdGF0ZS51cmwgJiYgc3RhdGUudXJsICE9PSB0aGlzLl9jdXJyZW50VVJMKSB7CiAgICAgICAgICB0aGlzLnNldFVSTEFuZFN0YXRlKHN0YXRlLnVybCwgewogICAgICAgICAgICBmaWxlRm9ybWF0OiBzdGF0ZS5maWxlRm9ybWF0LAogICAgICAgICAgICB2aWV3cG9ydDogc3RhdGUudmlld3BvcnQsCiAgICAgICAgICAgIHZpc2liaWxpdHk6IHN0YXRlLnZpc2liaWxpdHkKICAgICAgICAgIH0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBpZiAoc3RhdGUudmlld3BvcnQgfHwgc3RhdGUudmlzaWJpbGl0eSkgewogICAgICAgICAgICBpZiAodGhpcy5pc1JlYWR5ICYmIHRoaXMuJG1vZHVsZS5zY2VuZSkgewogICAgICAgICAgICAgIGlmIChzdGF0ZS52aWV3cG9ydCkgdGhpcy4kbW9kdWxlLnNjZW5lLmdldFppbmNDYW1lcmFDb250cm9scygpLnNldEN1cnJlbnRDYW1lcmFTZXR0aW5ncyhzdGF0ZS52aWV3cG9ydCk7CiAgICAgICAgICAgICAgaWYgKHN0YXRlLnZpc2liaWxpdHkpIHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzLnNldFN0YXRlKHN0YXRlLnZpc2liaWxpdHkpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHRoaXMuJG1vZHVsZS5zZXRGaW5pc2hEb3dubG9hZENhbGxiYWNrKHRoaXMuc2V0VVJMRmluaXNoQ2FsbGJhY2soewogICAgICAgICAgICAgICAgdmlld3BvcnQ6IHN0YXRlLnZpZXdwb3J0LAogICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogc3RhdGUudmlzaWJpbGl0eQogICAgICAgICAgICAgIH0pKTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIGV4cG9ydEdMVEY6IGZ1bmN0aW9uIGV4cG9ydEdMVEYoYmluYXJ5KSB7CiAgICAgIHJldHVybiB0aGlzLiRtb2R1bGUuc2NlbmUuZXhwb3J0R0xURihiaW5hcnkpOwogICAgfSwKICAgIC8qKgogICAgICogRnVuY3Rpb24gdXNlZCBmb3IgcmVhZGluZyBpbiBuZXcgc2NhZmZvbGQgbWV0YWRhdGEgYW5kIGEgY3VzdG9tCiAgICAgKiB2aWV3cG9ydC4gVGhpcyBmdW5jdGlvbiB3aWxsIGlnbm9yZSB0aGUgc3RhdGUgcHJvcCBhbmQKICAgICAqIHJlYWQgaW4gdGhlIG5ldyB1cmwuCiAgICAgKgogICAgICogQHB1YmxpYwogICAgICovCiAgICBzZXRVUkxBbmRTdGF0ZTogZnVuY3Rpb24gc2V0VVJMQW5kU3RhdGUobmV3VmFsdWUsIHN0YXRlKSB7CiAgICAgIGlmIChuZXdWYWx1ZSAhPSB0aGlzLl9jdXJyZW50VVJMKSB7CiAgICAgICAgaWYgKHN0YXRlICYmIHN0YXRlLmZvcm1hdCkgdGhpcy5maWxlRm9ybWF0ID0gc3RhdGUuZm9ybWF0OwogICAgICAgIHZhciB2aWV3cG9ydCA9IHN0YXRlICYmIHN0YXRlLnZpZXdwb3J0ID8gc3RhdGUudmlld3BvcnQgOiB1bmRlZmluZWQ7CiAgICAgICAgdmFyIHZpc2liaWxpdHkgPSBzdGF0ZSAmJiBzdGF0ZS52aXNpYmlsaXR5ID8gc3RhdGUudmlzaWJpbGl0eSA6IHVuZGVmaW5lZDsKICAgICAgICB0aGlzLl9jdXJyZW50VVJMID0gbmV3VmFsdWU7CiAgICAgICAgaWYgKHRoaXMuJHJlZnMudHJlZUNvbnRyb2xzKSB0aGlzLiRyZWZzLnRyZWVDb250cm9scy5jbGVhcigpOwogICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7CiAgICAgICAgdGhpcy5pc1JlYWR5ID0gZmFsc2U7CiAgICAgICAgdGhpcy4kX3NlYXJjaEluZGV4LnJlbW92ZUFsbCgpOwogICAgICAgIHRoaXMuaGlkZVJlZ2lvblRvb2x0aXAoKTsKICAgICAgICB0aGlzLiRtb2R1bGUuc2V0RmluaXNoRG93bmxvYWRDYWxsYmFjayh0aGlzLnNldFVSTEZpbmlzaENhbGxiYWNrKHsKICAgICAgICAgIHZpZXdwb3J0OiB2aWV3cG9ydCwKICAgICAgICAgIHJlZ2lvbjogdGhpcy5yZWdpb24sCiAgICAgICAgICB2aWV3VVJMOiB0aGlzLnZpZXdVUkwsCiAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmlsaXR5CiAgICAgICAgfSkpOwogICAgICAgIGlmICh0aGlzLmZpbGVGb3JtYXQgPT09ICJnbHRmIikgewogICAgICAgICAgdGhpcy4kbW9kdWxlLmxvYWRHTFRGRnJvbVVSTChuZXdWYWx1ZSwgInNjZW5lIiwgdHJ1ZSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuJG1vZHVsZS5sb2FkT3JnYW5zRnJvbVVSTChuZXdWYWx1ZSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsICJzY2VuZSIsIHVuZGVmaW5lZCwgdHJ1ZSk7CiAgICAgICAgfQogICAgICAgIHRoaXMuJG1vZHVsZS5zY2VuZS5kaXNwbGF5TWFya2VycyA9IHRoaXMuZGlzcGxheU1hcmtlcnM7CiAgICAgICAgdGhpcy4kbW9kdWxlLnNjZW5lLmZvcmNlUGlja2FibGVPYmplY3RzVXBkYXRlID0gdHJ1ZTsKICAgICAgICB0aGlzLiRtb2R1bGUuc2NlbmUuZGlzcGxheU1pbmltYXAgPSB0aGlzLmRpc3BsYXlNaW5pbWFwOwogICAgICAgIHRoaXMudXBkYXRlTWluaW1hcFNjaXNzb3IoKTsKICAgICAgfQogICAgfSwKICAgIC8qKgogICAgICogRnVuY3Rpb24gdXNlZCBmb3IgcmVhZGluZyBpbiBuZXcgc2NhZmZvbGQgbWV0YWRhdGEuIFRoaXMgZnVuY3Rpb24gd2lsbCBpZ25vcmUKICAgICAqIHRoZSBzdGF0ZSBwcm9wIGFuZCByZWFkIGluIHRoZSBuZXcgdXJsLgogICAgICoKICAgICAqIEBwdWJsaWMKICAgICAqLwogICAgc2V0VVJMOiBmdW5jdGlvbiBzZXRVUkwobmV3VmFsdWUpIHsKICAgICAgdGhpcy5zZXRVUkxBbmRTdGF0ZShuZXdWYWx1ZSwgdW5kZWZpbmVkKTsKICAgIH0sCiAgICAvKioKICAgICAqIENhbGxiYWNrIHdoZW4gZHJhd2VyIGlzIHRvZ2dsZWQuCiAgICAgKi8KICAgIGRyYXdlclRvZ2dsZWQ6IGZ1bmN0aW9uIGRyYXdlclRvZ2dsZWQoZmxhZykgewogICAgICB0aGlzLmRyYXdlck9wZW4gPSBmbGFnOwogICAgICB0aGlzLmFkanVzdExheW91dCgpOwogICAgfSwKICAgIC8qKgogICAgICogQ2FsbGJhY2sgdXNpbmcgUmVzaXplT2JzZXJ2ZXIuCiAgICAgKi8KICAgIGFkanVzdExheW91dDogZnVuY3Rpb24gYWRqdXN0TGF5b3V0KCkgewogICAgICB2YXIgd2lkdGggPSB0aGlzLiRyZWZzLnNjYWZmb2xkQ29udGFpbmVyLmNsaWVudFdpZHRoOwogICAgICB0aGlzLm1pbmltaXNlZFNsaWRlciA9IHdpZHRoIDwgODEyOwogICAgICBpZiAodGhpcy5taW5pbWlzZWRTbGlkZXIpIHsKICAgICAgICB0aGlzLnNsaWRlclBvc2l0aW9uID0gdGhpcy5kcmF3ZXJPcGVuID8gInJpZ2h0IiA6ICJsZWZ0IjsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLnNsaWRlclBvc2l0aW9uID0gIiI7CiAgICAgIH0KICAgIH0sCiAgICB0b2dnbGVSZW5kZXJpbmc6IGZ1bmN0aW9uIHRvZ2dsZVJlbmRlcmluZyhmbGFnKSB7CiAgICAgIGlmICh0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyKSB7CiAgICAgICAgaWYgKGZsYWcpIHsKICAgICAgICAgIHRoaXMuJG1vZHVsZS56aW5jUmVuZGVyZXIuYW5pbWF0ZSgpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLiRtb2R1bGUuemluY1JlbmRlcmVyLnN0b3BBbmltYXRlKCk7CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgZm9yY2VSZXNpemU6IGZ1bmN0aW9uIGZvcmNlUmVzaXplKCkgewogICAgICBpZiAodGhpcy4kbW9kdWxlLnppbmNSZW5kZXJlcikgewogICAgICAgIHRoaXMuJG1vZHVsZS56aW5jUmVuZGVyZXIub25XaW5kb3dSZXNpemUoKTsKICAgICAgfQogICAgfSwKICAgIHN5bmNDb250cm9sQ2FsbGJhY2s6IGZ1bmN0aW9uIHN5bmNDb250cm9sQ2FsbGJhY2soKSB7CiAgICAgIHZhciBwYXlsb2FkID0gdGhpcy4kbW9kdWxlLk5EQ0NhbWVyYUNvbnRyb2wuZ2V0UGFuWm9vbSgpOwogICAgICBpZiAodGhpcy50RGF0YS52aXNpYmxlKSB7CiAgICAgICAgdGhpcy5zaG93UmVnaW9uVG9vbHRpcCh0aGlzLnREYXRhLmxhYmVsLCB0cnVlLCB0cnVlKTsKICAgICAgfQogICAgICB0aGlzLiRlbWl0KCJzY2FmZm9sZC1uYXZpZ2F0ZWQiLCBwYXlsb2FkKTsKICAgIH0sCiAgICAvKioKICAgICAqIFJvdGF0ZSBtb2RlIC0gIm5vbmUiLCAiaG9yaXpvbnRhbCIsICJ2ZXJ0aWNhbCIsICJmcmVlIiBidXQKICAgICAqIGl0IHdpbGwgYmUgaWdub3JlZCBpZiBmbGFnIGlzIHNldCB0byBmYWxzZS4KICAgICAqLwogICAgdG9nZ2xlU3luY0NvbnRyb2w6IGZ1bmN0aW9uIHRvZ2dsZVN5bmNDb250cm9sKGZsYWcsIHJvdGF0ZU1vZGUpIHsKICAgICAgdGhpcy4kbW9kdWxlLnRvZ2dsZVN5bmNDb250cm9sKGZsYWcsIHJvdGF0ZU1vZGUpOwogICAgICB0aGlzLiRtb2R1bGUuc2V0U3luY0NvbnRyb2xDYWxsYmFjayh0aGlzLnN5bmNDb250cm9sQ2FsbGJhY2spOwogICAgfSwKICAgIC8qKgogICAgICogU2V0IHRoZSBtYXJrZXJzIGZvciB0aGUgc2NlbmUuCiAgICAgKi8KICAgIHNldE1hcmtlcnM6IGZ1bmN0aW9uIHNldE1hcmtlcnMoKSB7CiAgICAgIHZhciBfdGhpczYgPSB0aGlzOwogICAgICB0aGlzLm1hcmtlckxhYmVscy5mb3JFYWNoKGZ1bmN0aW9uIChsKSB7CiAgICAgICAgX3RoaXM2LnNldE1hcmtlck1vZGVGb3JPYmplY3RzV2l0aE5hbWUobCwgIm9uIik7CiAgICAgIH0pOwogICAgfQogIH0KfTs="},{"version":3,"names":["Vue","PrimitiveControls","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","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","primitiveControls","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":["\n\n\n\n\n\n\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuTA;AACA,OAAAA,GAAA;AACA,OAAAC,iBAAA;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,iBAAA,EAAAA,iBAAA;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,WA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"}]}