@opcua/for-node-red 2.3.0 → 2.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/all.js +1 -1
- package/assets/darwin-x63_lexactivator.node +1 -1
- package/assets/linux-arm64_lexactivator.node +1 -1
- package/assets/linux-arm_lexactivator.node +1 -1
- package/assets/linux-x64_lexactivator.node +1 -1
- package/assets/win32-ia32_LexActivator.dll +1 -1
- package/assets/win32-ia32_lexactivator.node +1 -1
- package/assets/win32-x64_LexActivator.dll +1 -1
- package/assets/win32-x64_lexactivator.node +1 -1
- package/package.json +2 -2
- package/source/OpcUa-Client2-Browse/OpcUa-Client2-Browse.html +2 -2
- package/source/OpcUa-Client2-Call/OpcUa-Client2-Call.html +2 -2
- package/source/OpcUa-Client2-Explore/OpcUa-Client2-Explore.html +2 -2
- package/source/OpcUa-Client2-Monitor/OpcUa-Client2-Monitor.html +2 -2
- package/source/OpcUa-Client2-MonitorEvent/OpcUa-Client2-MonitorEvent.html +2 -2
- package/source/OpcUa-Client2-Read/OpcUa-Client2-Read.html +2 -2
- package/source/OpcUa-Client2-Write/OpcUa-Client2-Write.html +2 -2
- package/source/OpcUa-Endpoint2/OpcUa-Endpoint2.html +2 -2
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@opcua/for-node-red",
|
3
|
-
"version": "2.3.
|
3
|
+
"version": "2.3.1",
|
4
4
|
"description": "The Node-RED node to communicate via OPC UA, powered NodeOPCUA and developed by Sterfive's team",
|
5
5
|
"repository": {
|
6
6
|
"type": "git",
|
@@ -42,7 +42,7 @@
|
|
42
42
|
}
|
43
43
|
},
|
44
44
|
"dependencies": {
|
45
|
-
"node-opcua": "2.
|
45
|
+
"node-opcua": "2.119.2",
|
46
46
|
"node-opcua-json": "0.50.0",
|
47
47
|
"antlr4ts": "0.5.0-alpha.4",
|
48
48
|
"body-parser": "^1.20.2",
|
@@ -4,8 +4,8 @@
|
|
4
4
|
</style>
|
5
5
|
|
6
6
|
<script type="text/javascript">
|
7
|
-
function _0x570c(){const _0x1661c6=['parentElement','inputs','\x22\x20style=\x22color:','done','endpoint','toggleClass','placeholder','sterfive-dropdown','/opcua-endpoint2','top','OpcUa-Client2-Browse','selected','resolveParentNode','trim','hide','join','closest','stopPropagation','DarkOrange','toString','isSelectable','pageX','attr','browse','Object','SeaGreen','fetched\x20:\x20','change','/checkNodeId','browseName','$inputGroup','find','ns=0;i=40','pageY','flagEditor','then','trigger','639336oCsBTY','HasChild','left','updateValue','map','<div\x20class=\x22custom-select\x22></div>','displayName','TypeDefinition','Method','log','\x20|\x20','fa-folder','IsForward','statusText','Inverse','nodeBrowser','match','!!failure!!','Good','fa-question','846PeocuY','VariableType','SuppressedError','push','Both','target','apply','5437404RpRadE','$verifyBtn','fa-object-group','BrowseName','ObjectType','23907hlmidY','stringify','err','already\x20fetched','\x20Fetching\x20done','fetched','opcua','options','DisplayName',':visible','filter','sterfive-combo-box','.spinner','4675IFXzGL','Invalid','expanded','sterfive-info','#node-input-resultMask','value','loading','i=61','currentParent','$toggleTreeBtn','input-group','nodeClass','</div>','HasTypeDefinition','NodeClass','children','fa-sliders','<div\x20class=\x22spinner\x22></div>','each','suppressed','referenceTypeId','References','baseUrl','insertAfter','catch','throw','show','ns=0;i=34','toggle','POST','Unknown\x20bit\x20name','<div/>','failure','expandable\x20expanded','Forward','1041794ilGoeA','#node-input-referenceTypeId','references','HasProperty','remove','ReferenceType','Objects','addClass','endpointNode','$dropdown','removeClass','nodeId','length','$input','name','reset','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','status','statusCode','ReferenceType\x20|\x20BrowseName\x20|\x20TypeDefinition\x20|\x20DisplayName\x20|\x20NodeClass\x20|\x20IsForward','reference','grey','message','node_label_italic','<div\x20class=\x22info-text\x22></div>','text','HasSubtype','data','right','hasClass','namesToBits','Unspecified','nodeAddressString','DataType','ns=0;i=85','$info','parentNode','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','fa-list-alt','function','596oWeOyR','$combo','json','split','val','sterfive.nodeBrowser','application/json','entries','i=31','$tree','<span\x20class=\x22custom-checkbox\x22></span>','offset','widget','fetching\x20failed\x20with\x20error','element','click','#node-input-nodeClassMask','typeDefinition','../../icons/opcuanodeLogo.png','ns=0;i=45','11731176mPzsus','expandable','469975BNAWha','sterfive.flagEditor','SandyBrown','<ul></ul></li>','rgba(61,\x2060,\x204,\x200.525)','number','View','Organizes','Variable','appendTo','append','next',';\x22></i>\x20'];_0x570c=function(){return _0x1661c6;};return _0x570c();}function _0x3a44(_0x120c13,_0x2750e0){const _0x570c17=_0x570c();return _0x3a44=function(_0x3a4475,_0x344f0a){_0x3a4475=_0x3a4475-0x1ef;let _0x23eccb=_0x570c17[_0x3a4475];return _0x23eccb;},_0x3a44(_0x120c13,_0x2750e0);}(function(_0x3a5c69,_0x4fded7){const _0x2d7250=_0x3a44,_0x170a4a=_0x3a5c69();while(!![]){try{const _0x406952=parseInt(_0x2d7250(0x26e))/0x1+-parseInt(_0x2d7250(0x230))/0x2+parseInt(_0x2d7250(0x200))/0x3*(parseInt(_0x2d7250(0x258))/0x4)+parseInt(_0x2d7250(0x20d))/0x5*(parseInt(_0x2d7250(0x1f4))/0x6)+parseInt(_0x2d7250(0x1fb))/0x7+-parseInt(_0x2d7250(0x2a0))/0x8+-parseInt(_0x2d7250(0x26c))/0x9;if(_0x406952===_0x4fded7)break;else _0x170a4a['push'](_0x170a4a['shift']());}catch(_0x3567af){_0x170a4a['push'](_0x170a4a['shift']());}}}(_0x570c,0xa18b5),(function(){'use strict';const _0x178570=_0x3a44;function _0x4cff92(_0x4e5e11,_0x2967ec,_0x500742,_0xf82249){function _0x3b775f(_0x197876){return _0x197876 instanceof _0x500742?_0x197876:new _0x500742(function(_0xac7c14){_0xac7c14(_0x197876);});}return new(_0x500742||(_0x500742=Promise))(function(_0x10905f,_0x2102bb){const _0x190ccf=_0x3a44;function _0x33d6ad(_0x4fe5ba){const _0xd6643e=_0x3a44;try{_0x510a5e(_0xf82249[_0xd6643e(0x279)](_0x4fe5ba));}catch(_0x497812){_0x2102bb(_0x497812);}}function _0xabfa92(_0x173075){const _0x5c157d=_0x3a44;try{_0x510a5e(_0xf82249[_0x5c157d(0x226)](_0x173075));}catch(_0x2a1973){_0x2102bb(_0x2a1973);}}function _0x510a5e(_0x34b030){const _0x51d053=_0x3a44;_0x34b030[_0x51d053(0x27e)]?_0x10905f(_0x34b030[_0x51d053(0x212)]):_0x3b775f(_0x34b030[_0x51d053(0x212)])['then'](_0x33d6ad,_0xabfa92);}_0x510a5e((_0xf82249=_0xf82249[_0x190ccf(0x1fa)](_0x4e5e11,_0x2967ec||[]))[_0x190ccf(0x279)]());});}typeof SuppressedError===_0x178570(0x257)?SuppressedError:function(_0x2405b0,_0x2af9db,_0x15eb8f){const _0x4670b9=_0x178570;var _0x5a5f09=new Error(_0x15eb8f);return _0x5a5f09[_0x4670b9(0x23e)]=_0x4670b9(0x1f6),_0x5a5f09['error']=_0x2405b0,_0x5a5f09[_0x4670b9(0x220)]=_0x2af9db,_0x5a5f09;};const _0x2428b4='ns=0;i=35',_0x124b5f='ns=0;i=61',_0x2442ac='ns=0;i=47',_0xaebccf='ns=0;i=46',_0x306ec1=_0x178570(0x228),_0x14164b=_0x178570(0x26b),_0x27e14c=_0x178570(0x29b);var _0x36e9e3;(function(_0x417618){const _0x5d493c=_0x178570;_0x417618[_0x417618[_0x5d493c(0x22f)]=0x0]='Forward',_0x417618[_0x417618['Inverse']=0x1]=_0x5d493c(0x2ae),_0x417618[_0x417618[_0x5d493c(0x1f8)]=0x2]=_0x5d493c(0x1f8),_0x417618[_0x417618['Invalid']=0x3]=_0x5d493c(0x20e);}(_0x36e9e3||(_0x36e9e3={})));var _0xf53d21;(function(_0x875ad8){const _0xec9844=_0x178570;_0x875ad8[_0x875ad8['Unspecified']=0x0]=_0xec9844(0x24f),_0x875ad8[_0x875ad8['Object']=0x1]=_0xec9844(0x293),_0x875ad8[_0x875ad8[_0xec9844(0x276)]=0x2]=_0xec9844(0x276),_0x875ad8[_0x875ad8[_0xec9844(0x2a8)]=0x4]=_0xec9844(0x2a8),_0x875ad8[_0x875ad8[_0xec9844(0x1ff)]=0x8]=_0xec9844(0x1ff),_0x875ad8[_0x875ad8[_0xec9844(0x1f5)]=0x10]=_0xec9844(0x1f5),_0x875ad8[_0x875ad8[_0xec9844(0x235)]=0x20]='ReferenceType',_0x875ad8[_0x875ad8[_0xec9844(0x251)]=0x40]=_0xec9844(0x251),_0x875ad8[_0x875ad8[_0xec9844(0x274)]=0x80]=_0xec9844(0x274);}(_0xf53d21||(_0xf53d21={})));var _0x471f26;(function(_0x2ff23c){const _0x2b4e24=_0x178570;_0x2ff23c[_0x2ff23c['Object']=0x1]='Object',_0x2ff23c[_0x2ff23c[_0x2b4e24(0x276)]=0x2]=_0x2b4e24(0x276),_0x2ff23c[_0x2ff23c[_0x2b4e24(0x2a8)]=0x4]=_0x2b4e24(0x2a8),_0x2ff23c[_0x2ff23c[_0x2b4e24(0x1ff)]=0x8]='ObjectType',_0x2ff23c[_0x2ff23c[_0x2b4e24(0x1f5)]=0x10]=_0x2b4e24(0x1f5),_0x2ff23c[_0x2ff23c['ReferenceType']=0x20]=_0x2b4e24(0x235),_0x2ff23c[_0x2ff23c['DataType']=0x40]=_0x2b4e24(0x251),_0x2ff23c[_0x2ff23c['View']=0x80]='View';}(_0x471f26||(_0x471f26={})));function _0x501311(_0x51759d,_0x446df3){const _0x12b3c4=_0x178570;if(typeof _0x446df3===_0x12b3c4(0x273))return _0x446df3;const _0x32a7e4=parseInt(_0x446df3,0xa);if(!isNaN(_0x32a7e4))return _0x32a7e4;const _0x17233c=_0x446df3[_0x12b3c4(0x25b)](/\||;|,/)[_0x12b3c4(0x2a4)](_0x4457e2=>_0x4457e2[_0x12b3c4(0x288)]());let _0x3ebe96=0x0;for(const _0x223967 of _0x17233c){_0x3ebe96|=_0x51759d[_0x223967];}return _0x3ebe96;}function _0x50fc73(_0x557ddf,_0x492cee){const _0x41b58f=_0x178570;_0x492cee=_0x501311(_0x557ddf,_0x492cee);const _0xb32e61=[];for(const [_0x1917de,_0x3c7da9]of Object[_0x41b58f(0x25f)](_0x557ddf)){typeof _0x492cee==='number'&&((_0x492cee&_0x3c7da9)===_0x3c7da9&&_0xb32e61[_0x41b58f(0x1f7)](_0x1917de));}return _0xb32e61[_0x41b58f(0x28a)](_0x41b58f(0x2aa));}var _0x49511b;(function(_0x1894cc){const _0x470f7f=_0x178570;_0x1894cc[_0x1894cc['ReferenceType']=0x1]='ReferenceType',_0x1894cc[_0x1894cc[_0x470f7f(0x2ac)]=0x2]=_0x470f7f(0x2ac),_0x1894cc[_0x1894cc[_0x470f7f(0x21b)]=0x4]='NodeClass',_0x1894cc[_0x1894cc[_0x470f7f(0x1fe)]=0x8]='BrowseName',_0x1894cc[_0x1894cc[_0x470f7f(0x208)]=0x10]=_0x470f7f(0x208),_0x1894cc[_0x1894cc[_0x470f7f(0x2a7)]=0x20]=_0x470f7f(0x2a7);}(_0x49511b||(_0x49511b={})));function _0x2e9988(_0x36312c){const _0x4fd6d1=_0x178570;switch(_0x36312c){case _0x4fd6d1(0x275):return _0x2428b4;case _0x4fd6d1(0x233):return _0xaebccf;case'HasComponent':return _0x2442ac;case'HasChild':return _0x306ec1;case _0x4fd6d1(0x24a):return _0x14164b;case _0x4fd6d1(0x21a):return _0x27e14c;}}const _0x32c194=_0x31529f=>{const _0x1f8234=_0x178570;switch(_0x31529f[_0x1f8234(0x218)]){case'Object':if(_0x31529f[_0x1f8234(0x221)]===_0x2428b4);if(_0x31529f[_0x1f8234(0x269)]===_0x124b5f||_0x31529f[_0x1f8234(0x221)]===_0x1f8234(0x214))return{'icon':_0x1f8234(0x2ab),'color':_0x1f8234(0x272)};return{'icon':_0x1f8234(0x1fd),'color':_0x1f8234(0x294)};case _0x1f8234(0x276):if(_0x31529f[_0x1f8234(0x221)]===_0x2442ac)return{'icon':_0x1f8234(0x256),'color':'SteelBlue'};else return _0x31529f[_0x1f8234(0x221)]===_0xaebccf?{'icon':_0x1f8234(0x256),'color':'DodgerBlue'}:{'icon':_0x1f8234(0x256),'color':'CadetBlue'};case _0x1f8234(0x2a8):return{'icon':'fa-cog','color':_0x1f8234(0x270)};case _0x1f8234(0x1ff):return{'icon':_0x1f8234(0x1fd),'color':'DarkOrange'};case'VariableType':return{'icon':_0x1f8234(0x21d),'color':_0x1f8234(0x28d)};}return{'icon':_0x1f8234(0x1f3),'color':_0x1f8234(0x245)};},_0xcb95bc=({endpointNode:_0x5a6f42,endpoint:_0x4b2038,baseUrl:_0x279c7c},_0x405421,_0x3678a1)=>_0x4cff92(void 0x0,void 0x0,void 0x0,function*(){const _0x3ff751=_0x178570,_0x293033=_0x279c7c+_0x3ff751(0x283),_0x33d4e4=_0x293033+'/browse',_0x443095=Object['assign'](Object['assign']({},_0x3678a1),{'nodeId':_0x405421,'resultMask':0x3f}),_0x23ca0a=yield fetch(_0x33d4e4,{'method':'POST','body':JSON['stringify']({'endpointNode':_0x5a6f42,'endpoint':_0x4b2038,'browseDescription':_0x443095}),'headers':{'Content-Type':_0x3ff751(0x25e)}});if(_0x23ca0a[_0x3ff751(0x241)]!==0xc8)return console[_0x3ff751(0x2a9)](_0x3ff751(0x265),_0x23ca0a[_0x3ff751(0x241)],_0x23ca0a['statusText']),{'references':[]};console['log'](_0x3ff751(0x295),_0x23ca0a['status'],_0x23ca0a[_0x3ff751(0x2ad)]);const _0xb529fe=yield _0x23ca0a[_0x3ff751(0x25a)](),_0x13d2f5=_0xb529fe['browseResult'][_0x3ff751(0x232)]||[];return{'references':_0x13d2f5};}),_0x2d50a4={'referenceTypeId':_0x2e9988(_0x178570(0x2a1)),'includeSubtypes':!![],'browseDirection':_0x36e9e3[_0x178570(0x22f)],'nodeClassMask':_0xf53d21[_0x178570(0x276)]|_0xf53d21[_0x178570(0x293)]|_0xf53d21[_0x178570(0x2a8)],'resultMask':0x3f},_0x1e3aa1={'referenceTypeId':_0x2e9988('Organizes'),'includeSubtypes':!![],'browseDirection':_0x36e9e3[_0x178570(0x22f)],'nodeClassMask':_0xf53d21['Variable']|_0xf53d21[_0x178570(0x293)]|_0xf53d21['Method'],'resultMask':0x3f},_0x34cf99=({endpointNode:_0x228ff9,endpoint:_0x26c250,baseUrl:_0x29ad05},_0x14ac57,_0x3486cc)=>_0x4cff92(void 0x0,void 0x0,void 0x0,function*(){const _0xa4c742=_0x178570,_0x2db219=_0x29ad05+_0xa4c742(0x283),_0x3acca8=_0x14ac57['val'](),_0x55f81e=yield fetch(_0x2db219+_0xa4c742(0x297),{'method':_0xa4c742(0x22a),'body':JSON[_0xa4c742(0x201)]({'endpointNode':_0x228ff9,'endpoint':_0x26c250,'nodeId':_0x3acca8}),'headers':{'Content-Type':_0xa4c742(0x25e)}}),_0x56a38d=(_0x4e4bd3,_0x197b66)=>{const _0x3c25a2=_0xa4c742;_0x3486cc[_0x3c25a2(0x249)](_0x4e4bd3)['addClass'](_0x3c25a2(0x210))[_0x3c25a2(0x237)](_0x197b66),_0x3486cc[_0x3c25a2(0x227)](),setTimeout(()=>{const _0x239b70=_0x3c25a2;_0x3486cc['removeClass'](_0x197b66),_0x3486cc[_0x239b70(0x289)]();},0xbb8);},_0x436fd2=yield _0x55f81e[_0xa4c742(0x25a)]();_0x55f81e[_0xa4c742(0x241)]!==0xc8?_0x56a38d(_0xa4c742(0x1f1)+_0x3acca8,_0xa4c742(0x22d)):_0x436fd2[_0xa4c742(0x242)][_0xa4c742(0x1f0)](/Good/)?(_0x14ac57[_0xa4c742(0x25c)](_0x436fd2[_0xa4c742(0x250)]),_0x14ac57[_0xa4c742(0x29f)](_0xa4c742(0x296)),_0x56a38d(_0xa4c742(0x1f2),'ok')):(_0x14ac57[_0xa4c742(0x25c)](''+_0x3acca8),_0x56a38d(_0x436fd2[_0xa4c742(0x242)]+'\x20'+_0x55f81e[_0xa4c742(0x2ad)],'failure'));});function _0x41703f(_0x1b0c9f,_0x2d6bd4){return _0x4cff92(this,void 0x0,void 0x0,function*(){const _0x4a02ce=_0x3a44,_0x355367=_0x1b0c9f[_0x4a02ce(0x24b)](_0x4a02ce(0x212)),_0x22354f=yield _0xcb95bc(_0x2d6bd4,_0x355367,_0x2d50a4),_0x477549=yield _0xcb95bc(_0x2d6bd4,_0x355367,_0x1e3aa1);return{'references':[..._0x22354f[_0x4a02ce(0x232)],..._0x477549['references']]};});}const _0x268671={'referenceTypeId':_0x2e9988(_0x178570(0x24a)),'includeSubtypes':!![],'browseDirection':_0x36e9e3['Forward'],'nodeClassMask':_0xf53d21[_0x178570(0x235)]|_0xf53d21[_0x178570(0x1ff)]|_0xf53d21[_0x178570(0x251)]|_0xf53d21['VariableType'],'resultMask':0x3f};function _0x46d92d(_0xa9a5ee,_0x20cab2){return _0x4cff92(this,void 0x0,void 0x0,function*(){const _0x18be15=_0x3a44,_0xf06ff=_0xa9a5ee['data'](_0x18be15(0x212)),_0x1e227=yield _0xcb95bc(_0x20cab2,_0xf06ff,_0x268671);return _0x1e227;});}const _0x1b8d56=_0x57d4bf=>{const _0x5243d0=_0x178570;var _0x492379,_0x48905d;if(!_0x57d4bf){const _0x2668ed=$('<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>');return _0x2668ed;}const _0x4bc506=_0x57d4bf['nodeId'][_0x5243d0(0x28e)](),_0x38e670=((_0x492379=_0x57d4bf[_0x5243d0(0x2a6)])===null||_0x492379===void 0x0?void 0x0:_0x492379[_0x5243d0(0x249)])||((_0x48905d=_0x57d4bf[_0x5243d0(0x298)])===null||_0x48905d===void 0x0?void 0x0:_0x48905d['name'])||_0x57d4bf[_0x5243d0(0x23b)][_0x5243d0(0x28e)](),{icon:_0x58d1a8,color:_0x3cd045}=_0x32c194(_0x57d4bf),_0x55b45c=$('<li><i\x20class=\x22fa\x20'+_0x58d1a8+_0x5243d0(0x27d)+_0x3cd045+_0x5243d0(0x27a)+_0x38e670+_0x5243d0(0x271));return _0x55b45c[_0x5243d0(0x237)](_0x5243d0(0x26d)),_0x55b45c[_0x5243d0(0x24b)]('value',_0x4bc506),_0x55b45c[_0x5243d0(0x24b)](_0x5243d0(0x244),_0x57d4bf),_0x55b45c;},_0x5792ca=()=>{const _0x2f6b1a=_0x178570;$[_0x2f6b1a(0x264)](_0x2f6b1a(0x25d),{'options':{'endpointNode':()=>({'endpoint':'opc.tcp://opcuademo.sterfive.com:26543'}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':'Objects'},'nodeClass':_0x2f6b1a(0x293),'nodeId':_0x2f6b1a(0x252),'displayName':{'text':_0x2f6b1a(0x236)},'typeDefinition':_0x124b5f}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x4cff92(this,void 0x0,void 0x0,function*(){const _0x5f2793=_0x3a44,_0x1d2b56=this,_0x255fd7=typeof _0x1d2b56[_0x5f2793(0x207)][_0x5f2793(0x254)]===_0x5f2793(0x257)?_0x1d2b56[_0x5f2793(0x207)][_0x5f2793(0x254)]():_0x1d2b56[_0x5f2793(0x207)]['parentNode'];if(_0x255fd7 instanceof Promise)return yield _0x255fd7;return _0x255fd7;});},'reset'(){const _0x5373cc=_0x2f6b1a,_0x1f304b=this;_0x1f304b[_0x5373cc(0x261)]['empty'](),this[_0x5373cc(0x287)]()[_0x5373cc(0x29e)](_0x31cc53=>{const _0x3436c2=_0x5373cc,_0x126fd4=_0x1b8d56(_0x31cc53);_0x1f304b[_0x3436c2(0x261)][_0x3436c2(0x278)](_0x126fd4),_0x1f304b['currentParent']=_0x31cc53;});},'verify'(){const _0x225f45=_0x2f6b1a,_0x13bbe7=this,_0x201b75={'baseUrl':_0x13bbe7['options'][_0x225f45(0x223)],'endpointNode':typeof _0x13bbe7[_0x225f45(0x207)]['endpointNode']===_0x225f45(0x257)?_0x13bbe7[_0x225f45(0x207)][_0x225f45(0x238)]():_0x13bbe7[_0x225f45(0x207)][_0x225f45(0x238)],'endpoint':typeof _0x13bbe7[_0x225f45(0x207)][_0x225f45(0x27f)]===_0x225f45(0x257)?_0x13bbe7['options'][_0x225f45(0x27f)]():_0x13bbe7['options'][_0x225f45(0x27f)]};_0x34cf99(_0x201b75,_0x13bbe7[_0x225f45(0x23d)],_0x13bbe7['$info']);},'_create'(){const _0x36b69e=_0x2f6b1a,_0x48b4f6=this;function _0x304974(_0x2af332,_0x229434,_0x5af012){return _0x4cff92(this,void 0x0,void 0x0,function*(){const _0x18132a=_0x3a44;if(_0x2af332['hasClass'](_0x18132a(0x205))){console[_0x18132a(0x2a9)](_0x18132a(0x203));return;}if(_0x2af332[_0x18132a(0x24d)](_0x18132a(0x213))){console[_0x18132a(0x2a9)]('already\x20loading');return;}_0x2af332[_0x18132a(0x237)]('loading'),_0x2af332[_0x18132a(0x278)](_0x18132a(0x21e));try{_0x2af332['children']('ul')['empty']();const {references:_0x593fee}=yield _0x229434(_0x2af332,_0x5af012);for(const _0x2532d6 of _0x593fee){if(_0x48b4f6[_0x18132a(0x207)][_0x18132a(0x20a)]&&!_0x48b4f6[_0x18132a(0x207)][_0x18132a(0x20a)](_0x2532d6))continue;const _0x46fc39=_0x1b8d56(_0x2532d6);_0x2af332[_0x18132a(0x21c)]('ul')[_0x18132a(0x278)](_0x46fc39);}_0x2af332['addClass'](_0x18132a(0x205));}catch(_0x4a9545){_0x2af332['children']('ul')[_0x18132a(0x278)]('<li>error\x20'+_0x4a9545[_0x18132a(0x246)]+'</li>'),console[_0x18132a(0x2a9)](_0x18132a(0x202),_0x4a9545);}_0x2af332[_0x18132a(0x29a)](_0x18132a(0x20c))[_0x18132a(0x234)](),_0x2af332['removeClass'](_0x18132a(0x213));});}_0x48b4f6[_0x36b69e(0x23d)]=this[_0x36b69e(0x266)],_0x48b4f6['$combo']=$(_0x36b69e(0x22c)),_0x48b4f6['$combo'][_0x36b69e(0x237)](_0x36b69e(0x20b)),this['element']['replaceWith'](_0x48b4f6[_0x36b69e(0x259)]),_0x48b4f6[_0x36b69e(0x299)]=$('<div/>')[_0x36b69e(0x237)](_0x36b69e(0x217)),_0x48b4f6[_0x36b69e(0x259)][_0x36b69e(0x278)](_0x48b4f6[_0x36b69e(0x299)]),_0x48b4f6['$inputGroup']['append'](_0x48b4f6[_0x36b69e(0x23d)]),_0x48b4f6[_0x36b69e(0x216)]=$('<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>'),_0x48b4f6['$inputGroup']['append'](_0x48b4f6[_0x36b69e(0x216)]),_0x48b4f6[_0x36b69e(0x216)]['on'](_0x36b69e(0x267),function(){const _0x3e3431=_0x36b69e;!_0x48b4f6[_0x3e3431(0x239)]['is'](':visible')&&(_0x48b4f6['resolveParentNode']()[_0x3e3431(0x29e)](_0x1680e8=>{const _0x2a703f=_0x3e3431;var _0x347bc3;(_0x1680e8!==_0x48b4f6[_0x2a703f(0x215)]||((_0x347bc3=_0x48b4f6['currentParent'])===null||_0x347bc3===void 0x0?void 0x0:_0x347bc3[_0x2a703f(0x23b)])!==_0x1680e8[_0x2a703f(0x23b)])&&_0x48b4f6[_0x2a703f(0x23f)]();}),_0x48b4f6[_0x3e3431(0x253)][_0x3e3431(0x289)]()),_0x48b4f6['$dropdown']['toggle']();}),_0x48b4f6[_0x36b69e(0x1fc)]=$(_0x36b69e(0x255)),_0x48b4f6[_0x36b69e(0x299)][_0x36b69e(0x278)](_0x48b4f6[_0x36b69e(0x1fc)]),_0x48b4f6[_0x36b69e(0x1fc)]['on']('click',()=>{this['verify']();}),!_0x48b4f6['$input'][_0x36b69e(0x291)](_0x36b69e(0x281))&&_0x48b4f6[_0x36b69e(0x23d)][_0x36b69e(0x291)](_0x36b69e(0x281),_0x36b69e(0x240)),_0x48b4f6[_0x36b69e(0x253)]=$(_0x36b69e(0x248)),_0x48b4f6[_0x36b69e(0x253)]['hide'](),{'baseUrl':_0x48b4f6[_0x36b69e(0x207)][_0x36b69e(0x223)],'endpointNode':typeof _0x48b4f6[_0x36b69e(0x207)]['endpointNode']==='function'?_0x48b4f6[_0x36b69e(0x207)][_0x36b69e(0x238)]():_0x48b4f6[_0x36b69e(0x207)][_0x36b69e(0x238)],'endpoint':typeof _0x48b4f6['options']['endpoint']===_0x36b69e(0x257)?_0x48b4f6[_0x36b69e(0x207)][_0x36b69e(0x27f)]():_0x48b4f6[_0x36b69e(0x207)]['endpoint']},_0x48b4f6[_0x36b69e(0x239)]=$('<div/>')[_0x36b69e(0x237)](_0x36b69e(0x282))[_0x36b69e(0x289)](),_0x48b4f6['$combo'][_0x36b69e(0x278)](_0x48b4f6[_0x36b69e(0x253)]),_0x48b4f6[_0x36b69e(0x259)][_0x36b69e(0x278)](_0x48b4f6[_0x36b69e(0x239)]),_0x48b4f6[_0x36b69e(0x261)]=$('<ul\x20class=\x22sterfive-tree\x22></ul>')[_0x36b69e(0x277)](_0x48b4f6['$dropdown']),this[_0x36b69e(0x23f)](),_0x48b4f6[_0x36b69e(0x261)]['on'](_0x36b69e(0x267),'li',function(_0x3062c4){const _0x1faee8=_0x36b69e;var _0x404123,_0x4839ec;_0x3062c4[_0x1faee8(0x28c)]();let _0x5606e0=$(this);const _0xefe1f1=0x14,_0xfe4846=0x14,_0x1547ad=$(this)[_0x1faee8(0x263)](),_0x2928e1=_0x3062c4;if(_0x2928e1[_0x1faee8(0x290)]>=_0x1547ad[_0x1faee8(0x2a2)]&&_0x2928e1[_0x1faee8(0x290)]<=_0x1547ad['left']+_0xefe1f1&&_0x2928e1[_0x1faee8(0x29c)]>=_0x1547ad['top']&&_0x2928e1['pageY']<=_0x1547ad[_0x1faee8(0x284)]+_0xfe4846){if(_0x5606e0[_0x1faee8(0x24d)](_0x1faee8(0x26d))){if(_0x5606e0[_0x1faee8(0x24d)](_0x1faee8(0x205))){_0x5606e0['removeClass'](_0x1faee8(0x26d))[_0x1faee8(0x237)](_0x1faee8(0x20f)),_0x5606e0[_0x1faee8(0x21c)]('ul')[_0x1faee8(0x229)]();return;}const _0xd152cd={'baseUrl':_0x48b4f6[_0x1faee8(0x207)][_0x1faee8(0x223)],'endpointNode':typeof _0x48b4f6[_0x1faee8(0x207)][_0x1faee8(0x238)]==='function'?_0x48b4f6[_0x1faee8(0x207)][_0x1faee8(0x238)]():_0x48b4f6[_0x1faee8(0x207)][_0x1faee8(0x238)],'endpoint':typeof _0x48b4f6[_0x1faee8(0x207)]['endpoint']===_0x1faee8(0x257)?_0x48b4f6[_0x1faee8(0x207)][_0x1faee8(0x27f)]():_0x48b4f6[_0x1faee8(0x207)]['endpoint']},_0x39f9de=!_0x48b4f6[_0x1faee8(0x207)]['isTypeRef']?_0x41703f:_0x46d92d;_0x304974(_0x5606e0,_0x39f9de,_0xd152cd)[_0x1faee8(0x29e)](()=>{const _0x285854=_0x1faee8;console['log'](_0x285854(0x204)),console['log'](_0x285854(0x205)),_0x5606e0[_0x285854(0x23a)](_0x285854(0x26d))[_0x285854(0x237)]('expanded');})[_0x1faee8(0x225)](_0x51fc46=>{const _0x4a543b=_0x1faee8;_0x5606e0[_0x4a543b(0x23a)](_0x4a543b(0x26d))[_0x4a543b(0x237)](_0x4a543b(0x20f)),console['log']('error',_0x51fc46);});}else{if(_0x5606e0['hasClass'](_0x1faee8(0x20f)))_0x5606e0[_0x1faee8(0x21c)]('ul')['toggle'](),_0x5606e0[_0x1faee8(0x280)]('expandable\x20expanded');else{if(_0x5606e0['children']('ul')[_0x1faee8(0x21c)]()[_0x1faee8(0x23c)]>0x0)_0x5606e0['children']('ul')[_0x1faee8(0x229)](),_0x5606e0[_0x1faee8(0x280)](_0x1faee8(0x22e));else;}}}else{const _0x56cf85=_0x5606e0[_0x1faee8(0x24b)](_0x1faee8(0x212)),_0x2d1780=_0x5606e0[_0x1faee8(0x24b)](_0x1faee8(0x244));if(_0x48b4f6[_0x1faee8(0x207)][_0x1faee8(0x28f)]&&!_0x48b4f6[_0x1faee8(0x207)]['isSelectable'](_0x2d1780))return;_0x48b4f6[_0x1faee8(0x23d)][_0x1faee8(0x24b)](_0x1faee8(0x244),_0x2d1780);const _0x466626=((_0x404123=_0x2d1780[_0x1faee8(0x2a6)])===null||_0x404123===void 0x0?void 0x0:_0x404123[_0x1faee8(0x249)])||((_0x4839ec=_0x2d1780['browseName'])===null||_0x4839ec===void 0x0?void 0x0:_0x4839ec['name'])||_0x2d1780[_0x1faee8(0x23b)][_0x1faee8(0x28e)](),_0x22b6d1='['+_0x466626+']('+_0x56cf85+')';_0x48b4f6[_0x1faee8(0x23d)]['val'](_0x22b6d1),_0x48b4f6[_0x1faee8(0x23d)][_0x1faee8(0x29f)](_0x1faee8(0x296)),_0x48b4f6[_0x1faee8(0x239)]['hide']();}}),$(document)['on'](_0x36b69e(0x267),function(_0x131348){const _0x3acbcf=_0x36b69e;!$(_0x131348[_0x3acbcf(0x1f9)])[_0x3acbcf(0x28b)](_0x48b4f6['$combo'])[_0x3acbcf(0x23c)]&&_0x48b4f6['$dropdown'][_0x3acbcf(0x289)]();});}});},_0x34ef2b=()=>{const _0x47035d=_0x178570;$[_0x47035d(0x264)](_0x47035d(0x26f),{'options':{'namesToBits':{},'value':0x0},'_create'(){const _0x186f75=_0x47035d,_0x2c0e23=this;_0x2c0e23[_0x186f75(0x23d)]=this[_0x186f75(0x266)],_0x2c0e23[_0x186f75(0x259)]=$('<div/>'),_0x2c0e23['$combo'][_0x186f75(0x237)]('sterfive-combo-box'),this[_0x186f75(0x266)][0x0][_0x186f75(0x27b)]['replaceChild'](_0x2c0e23[_0x186f75(0x259)][0x0],this['element'][0x0]),_0x2c0e23['$inputGroup']=$(_0x186f75(0x22c))[_0x186f75(0x237)]('input-group'),_0x2c0e23['$combo'][_0x186f75(0x278)](_0x2c0e23[_0x186f75(0x299)]),_0x2c0e23[_0x186f75(0x299)][_0x186f75(0x278)](_0x2c0e23['$input']),_0x2c0e23['$toggleTreeBtn']=$('<button><i\x20class=\x22fa\x20fa-eye\x22></i></button>'),_0x2c0e23['$inputGroup'][_0x186f75(0x278)](_0x2c0e23[_0x186f75(0x216)]),_0x2c0e23[_0x186f75(0x216)]['on']('click',function(){const _0x76de63=_0x186f75;_0x2c0e23[_0x76de63(0x239)][_0x76de63(0x229)](),_0x2c0e23[_0x76de63(0x239)]['is'](_0x76de63(0x209))&&(_0x320b08(),_0x2c0e23[_0x76de63(0x259)][_0x76de63(0x29a)]('.custom-option')[_0x76de63(0x21f)](function(){const _0x12b781=_0x76de63;let _0x521e26=$(this)['text']();const _0x389bee=_0x2c0e23[_0x12b781(0x207)][_0x12b781(0x24e)][_0x521e26];if(_0x389bee===undefined)throw new Error(_0x12b781(0x22b));(_0x2c0e23[_0x12b781(0x207)]['value']&_0x389bee)===_0x389bee?$(this)[_0x12b781(0x237)]('selected'):$(this)[_0x12b781(0x23a)](_0x12b781(0x286));}),_0x2c0e23[_0x76de63(0x2a3)]());}),_0x2c0e23[_0x186f75(0x239)]=$(_0x186f75(0x2a5))['hide']()[_0x186f75(0x224)](this['element']),$[_0x186f75(0x21f)](this['options'][_0x186f75(0x24e)],function(_0x168238){const _0x2fbe69=_0x186f75,_0x4a4fa8=$('<div\x20class=\x22custom-option\x22\x20data-value=\x22'+_0x168238+'\x22>'+_0x2fbe69(0x262)+_0x168238+_0x2fbe69(0x219));_0x2c0e23['$dropdown'][_0x2fbe69(0x278)](_0x4a4fa8);}),_0x2c0e23[_0x186f75(0x239)]['on'](_0x186f75(0x267),'.custom-option',function(){const _0x1f60a6=_0x186f75;$(this)[_0x1f60a6(0x280)]('selected');const _0x254277=$(this)['data'](_0x1f60a6(0x212));$(this)[_0x1f60a6(0x24d)](_0x1f60a6(0x286))?_0x3b6b93(_0x254277):_0x1fd6cb(_0x254277),_0x2c0e23[_0x1f60a6(0x2a3)]();}),_0x2c0e23[_0x186f75(0x259)][_0x186f75(0x278)](_0x2c0e23[_0x186f75(0x239)]);const _0x320b08=()=>{const _0x9f71c6=_0x186f75,_0x12ec46=this[_0x9f71c6(0x266)][_0x9f71c6(0x25c)]();_0x2c0e23[_0x9f71c6(0x207)][_0x9f71c6(0x212)]=_0x501311(_0x2c0e23[_0x9f71c6(0x207)]['namesToBits'],_0x12ec46);},_0x3b6b93=_0xb9876b=>{const _0x5b9823=_0x186f75,_0x2db138=_0x2c0e23['options']['namesToBits'][_0xb9876b];if(_0x2db138===undefined)throw new Error(_0x5b9823(0x22b));this['options'][_0x5b9823(0x212)]|=_0x2db138;},_0x1fd6cb=_0x442c76=>{const _0x2e65f5=_0x186f75,_0x4b0e93=_0x2c0e23[_0x2e65f5(0x207)][_0x2e65f5(0x24e)][_0x442c76];if(_0x4b0e93===undefined)throw new Error(_0x2e65f5(0x22b));this[_0x2e65f5(0x207)][_0x2e65f5(0x212)]&=~_0x4b0e93,this[_0x2e65f5(0x266)][_0x2e65f5(0x25c)](_0x50fc73(_0x2c0e23[_0x2e65f5(0x207)]['namesToBits'],this[_0x2e65f5(0x207)][_0x2e65f5(0x212)]));};_0x320b08();},'updateValue'(){const _0x144202=_0x47035d,_0x484e5a=this;this[_0x144202(0x266)][_0x144202(0x25c)](_0x50fc73(_0x484e5a['options'][_0x144202(0x24e)],this[_0x144202(0x207)][_0x144202(0x212)]));},'_destroy'(){const _0x4d7a8b=_0x47035d,_0x429af9=this;_0x429af9[_0x4d7a8b(0x239)][_0x4d7a8b(0x234)]();}});};RED['nodes']['registerType'](_0x178570(0x285),{'category':_0x178570(0x206),'color':'#C0DEED','align':_0x178570(0x24c),'icon':_0x178570(0x26a),'paletteLabel':_0x178570(0x292),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':'OpcUa-Endpoint2'},'nodeId':{'value':'','required':![]},'referenceTypeId':{'value':_0x178570(0x2a1),'required':![]},'includeSubtypes':{'value':![],'required':!![]},'browseDirection':{'value':_0x178570(0x22f),'required':!![]},'nodeClassMask':{'value':'Variable\x20|\x20Object\x20|\x20Method\x20|\x20ObjectType\x20|\x20VariableType','required':![]},'resultMask':{'value':_0x178570(0x243),'required':![]}},'outputs':0x1,'label'(){const _0x563e68=_0x178570;return this[_0x563e68(0x23e)]||'OPCUA\x20Browse';},'labelStyle'(){const _0x383cb4=_0x178570;return this['name']?_0x383cb4(0x247):'';},'oneditprepare'(){const _0x85f347=_0x178570,_0x23d6c4=this;_0x5792ca(),_0x34ef2b(),_0x23d6c4[_0x85f347(0x27c)]=0x1;const _0x316076=$(_0x85f347(0x268));_0x316076[_0x85f347(0x29d)]({'namesToBits':{'Object':0x1,'Variable':0x2,'Method':0x4,'ObjectType':0x8,'VariableType':0x10,'ReferenceType':0x20,'DataType':0x40,'View':0x80},'value':0x0});const _0x290fd5=$(_0x85f347(0x211));_0x290fd5[_0x85f347(0x29d)]({'namesToBits':{'ReferenceType':0x1,'IsForward':0x2,'NodeClass':0x4,'BrowseName':0x8,'DisplayName':0x10,'TypeDefinition':0x20},'value':0x3f});const _0x30edf7=$('#node-input-nodeId');_0x30edf7[_0x85f347(0x1ef)]({'isSelectable'(_0x44825a){const _0x490ffb=_0x85f347;return _0x44825a[_0x490ffb(0x218)]==='Variable'||_0x44825a[_0x490ffb(0x218)]==='Object';}});const _0x1a9fc6={'nodeId':'i=31','referenceTypeId':'','browseName':{'namespaceIndex':0x0,'name':_0x85f347(0x222)},'displayName':{'text':_0x85f347(0x222)},'nodeClass':'ReferenceType','typeDefinition':_0x85f347(0x260)},_0x30b868=$(_0x85f347(0x231));_0x30b868[_0x85f347(0x1ef)]({'parentNode':()=>_0x1a9fc6,'isSelectable'(_0x2b4a85){const _0x35fedb=_0x85f347;return _0x2b4a85[_0x35fedb(0x218)]===_0x35fedb(0x235);},'isTypeRef':!![]});},'oneditsave'(){}});}()));
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg0Y2ZmOTIiLCJfMHg0ZTVlMTEiLCJfMHgyOTY3ZWMiLCJfMHg1MDA3NDIiLCJfMHhmODIyNDkiLCJfMHgzYjc3NWYiLCJfMHgxOTc4NzYiLCJfMHhhYzdjMTQiLCJQcm9taXNlIiwiXzB4MTA5MDVmIiwiXzB4MjEwMmJiIiwiXzB4MzNkNmFkIiwiXzB4NGZlNWJhIiwiXzB4NTEwYTVlIiwiXzB4NDk3ODEyIiwiXzB4YWJmYTkyIiwiXzB4MTczMDc1IiwiXzB4MmExOTczIiwiXzB4MzRiMDMwIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4MjQwNWIwIiwiXzB4MmFmOWRiIiwiXzB4MTVlYjhmIiwiXzB4NWE1ZjA5IiwiRXJyb3IiLCJfMHgyNDI4YjQiLCJfMHgxMjRiNWYiLCJfMHgyNDQyYWMiLCJfMHhhZWJjY2YiLCJfMHgzMDZlYzEiLCJfMHgxNDE2NGIiLCJfMHgyN2UxNGMiLCJfMHgzNmU5ZTMiLCJfMHg0MTc2MTgiLCJfMHhmNTNkMjEiLCJfMHg4NzVhZDgiLCJfMHg0NzFmMjYiLCJfMHgyZmYyM2MiLCJfMHg1MDEzMTEiLCJfMHg1MTc1OWQiLCJfMHg0NDZkZjMiLCJfMHgzMmE3ZTQiLCJwYXJzZUludCIsImlzTmFOIiwiXzB4MTcyMzNjIiwiXzB4NDQ1N2UyIiwiXzB4M2ViZTk2IiwiXzB4MjIzOTY3IiwiXzB4NTBmYzczIiwiXzB4NTU3ZGRmIiwiXzB4NDkyY2VlIiwiXzB4YjMyZTYxIiwiXzB4MTkxN2RlIiwiXzB4M2M3ZGE5IiwiT2JqZWN0IiwiXzB4NDk1MTFiIiwiXzB4MTg5NGNjIiwiXzB4MmU5OTg4IiwiXzB4MzYzMTJjIiwiXzB4MzJjMTk0IiwiXzB4MzE1MjlmIiwiXzB4Y2I5NWJjIiwiZW5kcG9pbnROb2RlIiwiXzB4NWE2ZjQyIiwiZW5kcG9pbnQiLCJfMHg0YjIwMzgiLCJiYXNlVXJsIiwiXzB4Mjc5YzdjIiwiXzB4NDA1NDIxIiwiXzB4MzY3OGExIiwiXzB4MjkzMDMzIiwiXzB4MzNkNGU0IiwiXzB4NDQzMDk1IiwiXzB4MjNjYTBhIiwiZmV0Y2giLCJKU09OIiwiY29uc29sZSIsIl8weGI1MjlmZSIsIl8weDEzZDJmNSIsIl8weDJkNTBhNCIsIl8weDFlM2FhMSIsIl8weDM0Y2Y5OSIsIl8weDIyOGZmOSIsIl8weDI2YzI1MCIsIl8weDI5YWQwNSIsIl8weDE0YWM1NyIsIl8weDM0ODZjYyIsIl8weDJkYjIxOSIsIl8weDNhY2NhOCIsIl8weDU1ZjgxZSIsIl8weDU2YTM4ZCIsIl8weDRlNGJkMyIsIl8weDE5N2I2NiIsInNldFRpbWVvdXQiLCJfMHg0MzZmZDIiLCJfMHg0MTcwM2YiLCJfMHgxYjBjOWYiLCJfMHgyZDZiZDQiLCJfMHgzNTUzNjciLCJfMHgyMjM1NGYiLCJfMHg0Nzc1NDkiLCJfMHgyNjg2NzEiLCJfMHg0NmQ5MmQiLCJfMHhhOWE1ZWUiLCJfMHgyMGNhYjIiLCJfMHhmMDZmZiIsIl8weDFlMjI3IiwiXzB4MWI4ZDU2IiwiXzB4NTdkNGJmIiwiXzB4NDkyMzc5IiwiXzB4NDg5MDVkIiwiXzB4MjY2OGVkIiwiJCIsIl8weDRiYzUwNiIsIl8weDM4ZTY3MCIsImljb24iLCJfMHg1OGQxYTgiLCJjb2xvciIsIl8weDNjZDA0NSIsIl8weDU1YjQ1YyIsIl8weDU3OTJjYSIsInVuZGVmaW5lZCIsIl8weDFkMmI1NiIsIl8weDI1NWZkNyIsIl8weDFmMzA0YiIsIl8weDMxY2M1MyIsIl8weDEyNmZkNCIsIl8weDEzYmJlNyIsIl8weDIwMWI3NSIsIl8weDQ4YjRmNiIsIl8weDMwNDk3NCIsIl8weDJhZjMzMiIsIl8weDIyOTQzNCIsIl8weDVhZjAxMiIsInJlZmVyZW5jZXMiLCJfMHg1OTNmZWUiLCJfMHgyNTMyZDYiLCJfMHg0NmZjMzkiLCJfMHg0YTk1NDUiLCJfMHgxNjgwZTgiLCJfMHgzNDdiYzMiLCJfMHgzMDYyYzQiLCJfMHg0MDQxMjMiLCJfMHg0ODM5ZWMiLCJfMHg1NjA2ZTAiLCJfMHhlZmUxZjEiLCJfMHhmZTQ4NDYiLCJfMHgxNTQ3YWQiLCJfMHgyOTI4ZTEiLCJfMHhkMTUyY2QiLCJfMHgzOWY5ZGUiLCJfMHg1MWZjNDYiLCJfMHg1NmNmODUiLCJfMHgyZDE3ODAiLCJfMHg0NjY2MjYiLCJfMHgyMmI2ZDEiLCJkb2N1bWVudCIsIl8weDEzMTM0OCIsIl8weDM0ZWYyYiIsIl8weDJjMGUyMyIsIl8weDMyMGIwOCIsIl8weDUyMWUyNiIsIl8weDM4OWJlZSIsIl8weDE2ODIzOCIsIl8weDRhNGZhOCIsIl8weDI1NDI3NyIsIl8weDNiNmI5MyIsIl8weDFmZDZjYiIsIl8weDEyZWM0NiIsIl8weGI5ODc2YiIsIl8weDJkYjEzOCIsIl8weDQ0MmM3NiIsIl8weDRiMGU5MyIsIl8weDQ4NGU1YSIsIl8weDQyOWFmOSIsIlJFRCIsIl8weDIzZDZjNCIsIl8weDMxNjA3NiIsIl8weDI5MGZkNSIsIl8weDMwZWRmNyIsIl8weDQ0ODI1YSIsIl8weDFhOWZjNiIsIl8weDMwYjg2OCIsIl8weDJiNGE4NSJdLCJtYXBwaW5ncyI6ImtoSEFBQSxDQUFDLFUsQ0FDRyxhLHdCQW1CQSxTQUFTQSxTQUFULENBQW1CQyxTQUFuQixDQUE0QkMsU0FBNUIsQ0FBd0NDLFNBQXhDLENBQTJDQyxTQUEzQyxDLENBQ0ksU0FBU0MsU0FBVCxDQUFlQyxTQUFmLEMsUUFBK0JBLFNBQUEsWUFBaUJILFNBQWpCLENBQXFCRyxTQUFyQixDQUE2QixJQUFJSCxTQUFKLENBQU0sU0FBVUksU0FBVixDLENBQXFCQSxTQUFBLENBQVFELFNBQVIsQyxFQUEzQixDLFNBQ3JELEdBQUssQ0FBQUgsU0FBQSxFQUFNLENBQUFBLFNBQUEsQ0FBSUssT0FBSixDQUFOLENBQUwsQ0FBeUIsU0FBVUMsU0FBVixDQUFtQkMsU0FBbkIsQyx5QkFDNUIsU0FBU0MsU0FBVCxDQUFtQkMsU0FBbkIsQyx5QkFBNEIsRyxDQUFNQyxTQUFBLENBQUtULFNBQUEsQyxnQkFBQSxFQUFlUSxTQUFmLENBQUwsQyxFQUErQixNQUFPRSxTQUFQLEMsQ0FBWUosU0FBQSxDQUFPSSxTQUFQLEMsR0FDN0UsU0FBU0MsU0FBVCxDQUFrQkMs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U0FBQSxDLGdCQUFBLEVBQTZCLEMsWUFDekIsQ0FBWSxJQUFNRCxTQURPLEMsY0FFekIsQ0FBYUUsU0FBYixDLGtDQUNXQSxTQUFBLEMsZ0JBQUEsSSxrQkFIYyxDLFdBS3pCLEMsSUFMeUIsQ0FBN0IsQyxFQXpFdUMsQyxZQWlGM0MsRSxFQWpGMkMsQ0FBL0MsQyxFQTNrQkosRyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG4gICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG4gICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG4gICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcbiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuICAgIC8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCAqL1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG4gICAgfTtcblxuICAgIGNvbnN0IE9yZ2FuaXplc1JlZk5vZGVJZCA9IFwibnM9MDtpPTM1XCI7XG4gICAgY29uc3QgRm9sZGVyVHlwZSA9IFwibnM9MDtpPTYxXCI7XG4gICAgY29uc3QgSGFzQ29tcG9uZW50UmVmTm9kZUlkID0gXCJucz0wO2k9NDdcIjtcbiAgICBjb25zdCBIYXNQcm9wZXJ0eVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ2XCI7XG4gICAgY29uc3QgSGFzQ2hpbGRSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNFwiO1xuICAgIGNvbnN0IEhhc1N1YnR5cGVSZWZOb2RlSWQgPSBcIm5zPTA7aT00NVwiO1xuICAgIGNvbnN0IEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkID0gXCJucz0wO2k9NDBcIjtcblxuICAgIHZhciBCcm93c2VEaXJlY3Rpb247XG4gICAgKGZ1bmN0aW9uIChCcm93c2VEaXJlY3Rpb24pIHtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkZvcndhcmRcIl0gPSAwXSA9IFwiRm9yd2FyZFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52ZXJzZVwiXSA9IDFdID0gXCJJbnZlcnNlXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJCb3RoXCJdID0gMl0gPSBcIkJvdGhcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmFsaWRcIl0gPSAzXSA9IFwiSW52YWxpZFwiO1xuICAgIH0pKEJyb3dzZURpcmVjdGlvbiB8fCAoQnJvd3NlRGlyZWN0aW9uID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzKSB7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJVbnNwZWNpZmllZFwiXSA9IDBdID0gXCJVbnNwZWNpZmllZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3MgfHwgKE5vZGVDbGFzcyA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzc01hc2s7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3NNYXNrKSB7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3NNYXNrIHx8IChOb2RlQ2xhc3NNYXNrID0ge30pKTtcbiAgICBmdW5jdGlvbiBjb2VyY2VGbGFnTWFza1RvTnVtYmVyKHR5cGUsIHN0cikge1xuICAgICAgICBpZiAodHlwZW9mIHN0ciA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcmV0dXJuIHN0cjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzdHJBc051bSA9IHBhcnNlSW50KHN0ciwgMTApO1xuICAgICAgICBpZiAoIWlzTmFOKHN0ckFzTnVtKSkge1xuICAgICAgICAgICAgcmV0dXJuIHN0ckFzTnVtO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZsYWdzID0gc3RyLnNwbGl0KC9cXHx8O3wsLykubWFwKChhKSA9PiBhLnRyaW0oKSk7XG4gICAgICAgIGxldCByZXN1bHQgPSAwO1xuICAgICAgICBmb3IgKGNvbnN0IGZsYWcgb2YgZmxhZ3MpIHtcbiAgICAgICAgICAgIHJlc3VsdCB8PSB0eXBlW2ZsYWddO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGNvZXJjZUZsYWdNYXNrVG9TdHJpbmcodHlwZSwgdmFsdWUpIHtcbiAgICAgICAgdmFsdWUgPSBjb2VyY2VGbGFnTWFza1RvTnVtYmVyKHR5cGUsIHZhbHVlKTtcbiAgICAgICAgY29uc3QgciA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IFtrZXksIGJpdE1hc2tdIG9mIE9iamVjdC5lbnRyaWVzKHR5cGUpKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICAgICAgaWYgKCh2YWx1ZSAmIGJpdE1hc2spID09PSBiaXRNYXNrKSB7XG4gICAgICAgICAgICAgICAgICAgIHIucHVzaChrZXkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gci5qb2luKFwiIHwgXCIpO1xuICAgIH1cbiAgICB2YXIgUmVzdWx0TWFzaztcbiAgICAoZnVuY3Rpb24gKFJlc3VsdE1hc2spIHtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDFdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIklzRm9yd2FyZFwiXSA9IDJdID0gXCJJc0ZvcndhcmRcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiTm9kZUNsYXNzXCJdID0gNF0gPSBcIk5vZGVDbGFzc1wiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJCcm93c2VOYW1lXCJdID0gOF0gPSBcIkJyb3dzZU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiRGlzcGxheU5hbWVcIl0gPSAxNl0gPSBcIkRpc3BsYXlOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlR5cGVEZWZpbml0aW9uXCJdID0gMzJdID0gXCJUeXBlRGVmaW5pdGlvblwiO1xuICAgIH0pKFJlc3VsdE1hc2sgfHwgKFJlc3VsdE1hc2sgPSB7fSkpO1xuICAgIC8vICBjb25zdCBxID0gUmVmZXJlbmNlVHlwZUlkcy5Pcmdhbml6ZXM7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZU5vZGVJZChub2RlSWRMaWtlKSB7XG4gICAgICAgIHN3aXRjaCAobm9kZUlkTGlrZSkge1xuICAgICAgICAgICAgY2FzZSBcIk9yZ2FuaXplc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBPcmdhbml6ZXNSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzUHJvcGVydHlcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzUHJvcGVydHlSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ29tcG9uZW50XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NvbXBvbmVudFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDaGlsZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDaGlsZFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNTdWJ0eXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1N1YnR5cGVSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzVHlwZURlZmluaXRpb25cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBnZXRJY29uID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHJlZmVyZW5jZS5ub2RlQ2xhc3MpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gT3JnYW5pemVzUmVmTm9kZUlkKSA7XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS50eXBlRGVmaW5pdGlvbiA9PT0gRm9sZGVyVHlwZSB8fCByZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBcImk9NjFcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWZvbGRlclwiLCBjb2xvcjogXCJyZ2JhKDYxLCA2MCwgNCwgMC41MjUpXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiU2VhR3JlZW5cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlXCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc0NvbXBvbmVudFJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIlN0ZWVsQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc1Byb3BlcnR5UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiRG9kZ2VyQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcIk1ldGhvZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtY29nXCIsIGNvbG9yOiBcIlNhbmR5QnJvd25cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXNsaWRlcnNcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1xdWVzdGlvblwiLCBjb2xvcjogXCJncmV5XCIgfTtcbiAgICB9O1xuXG4gICAgY29uc3QgYnJvd3NlID0gKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQsIHRlbXBsYXRlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2Jyb3dzZWA7XG4gICAgICAgIGNvbnN0IGJyb3dzZURlc2NyaXB0aW9uID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB0ZW1wbGF0ZSksIHsgbm9kZUlkLCByZXN1bHRNYXNrOiA2MyB9KTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgYnJvd3NlRGVzY3JpcHRpb24sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoaW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlczogW10gfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZXMgPSByZXNwb25zZS5icm93c2VSZXN1bHQucmVmZXJlbmNlcyB8fCBbXTtcbiAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlcyB9O1xuICAgIH0pO1xuXG4gICAgY29uc3QgdGVtcGxhdGUxID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNDaGlsZFwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IHRlbXBsYXRlMiA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiT3JnYW5pemVzXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgaW50ZXJuYWxWZXJpZnkgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sICRpbnB1dEVsZW1lbnQsICRpbmZvKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IG5vZGVJZCA9ICRpbnB1dEVsZW1lbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaChgJHtyb290fS9jaGVja05vZGVJZGAsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgc2V0Tm90aWZpY2F0aW9uID0gKHRleHQsIGNsYXNzTmFtZSkgPT4ge1xuICAgICAgICAgICAgJGluZm8udGV4dCh0ZXh0KS5hZGRDbGFzcyhcInN0ZXJmaXZlLWluZm9cIikuYWRkQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICRpbmZvLnNob3coKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICRpbmZvLnJlbW92ZUNsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAgICAgJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgfSwgMzAwMCk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGpzb24gPSAoeWllbGQgZGF0YS5qc29uKCkpO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nO1xuICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiISFmYWlsdXJlISFcIiArIG5vZGVJZCwgXCJmYWlsdXJlXCIpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGpzb24uc3RhdHVzQ29kZS5tYXRjaCgvR29vZC8pKSB7XG4gICAgICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nXG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoanNvbi5ub2RlQWRkcmVzc1N0cmluZyk7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihcIkdvb2RcIiwgXCJva1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKGAke25vZGVJZH1gKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oYCR7anNvbi5zdGF0dXNDb2RlfSAke2RhdGEuc3RhdHVzVGV4dH1gLCBcImZhaWx1cmVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBmdW5jdGlvbiBmZXRjaENoaWxkcmVuKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUxKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDIgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTIpO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VzOiBbLi4uYnJvd3NlUmVzdWx0MS5yZWZlcmVuY2VzLCAuLi5icm93c2VSZXN1bHQyLnJlZmVyZW5jZXNdLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IHRlbXBsYXRlU1QgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc1N1YnR5cGVcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfCBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8IE5vZGVDbGFzcy5EYXRhVHlwZSB8IE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgZnVuY3Rpb24gZmV0Y2hTdWJ0eXBlcygkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlU1QpO1xuICAgICAgICAgICAgcmV0dXJuIGJyb3dzZVJlc3VsdDE7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBtYWtlRWxlbWVudCA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKCFyZWZlcmVuY2UpIHtcbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgZmEtZXJyb3JcIiBzdHlsZT1cImNvbG9yOnJlZDtcIj48L2k+bm8gcmVmZXJlbmNlICE8dWw+PC91bD48L2xpPmApO1xuICAgICAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG4gPSByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHQgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB7IGljb24sIGNvbG9yIH0gPSBnZXRJY29uKHJlZmVyZW5jZSk7XG4gICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgJHtpY29ufVwiIHN0eWxlPVwiY29sb3I6JHtjb2xvcn07XCI+PC9pPiAke3R9PHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgJGVsZW1lbnQuYWRkQ2xhc3MoXCJleHBhbmRhYmxlXCIpO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwidmFsdWVcIiwgbik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgIH07XG4gICAgY29uc3QgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogWyBUZW1wZXJhdHVyZSAgXVxuICAgICAgICAgKiAgICggdG9vbHRpcCA6ICgvT2JqZWN0cy9NeVNlbnNvcikgKG5zPTE7cz1UZW1wZXJhdHVyZSkpXG4gICAgICAgICAqIFsgKyBbRm9sZGVyXSBPYmplY3RzXVxuICAgICAgICAgKiBbICAgICBbT2JqZWN0XSBNeVNlbnNvcl1cbiAgICAgICAgICogWyAgICAgKCApIFtWYXJpYWJsZV0gVGVtcGVyYXR1cmVdXG4gICAgICAgICAqL1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLm5vZGVCcm93c2VyXCIsIHtcbiAgICAgICAgICAgIC8qIGRlZmF1bHQgb3B0aW9ucyAqL1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogKCkgPT4gKHsgZW5kcG9pbnQ6IFwib3BjLnRjcDovL29wY3VhZGVtby5zdGVyZml2ZS5jb206MjY1NDNcIiB9KSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludDogKCkgPT4gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHBhcmVudE5vZGU6ICgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIGJyb3dzZU5hbWU6IHsgbmFtZXNwYWNlSW5kZXg6IDAsIG5hbWU6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIG5vZGVDbGFzczogXCJPYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgbm9kZUlkOiBcIm5zPTA7aT04NVwiLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogeyB0ZXh0OiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICB0eXBlRGVmaW5pdGlvbjogRm9sZGVyVHlwZSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6ICgpID0+IHRydWUsXG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgICAgICBpc1R5cGVSZWY6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc29sdmVQYXJlbnROb2RlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdHlwZW9mIHRoYXQub3B0aW9ucy5wYXJlbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHlpZWxkIGE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGE7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzZXQoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzb2x2ZVBhcmVudE5vZGUoKS50aGVuKChwYXJlbnROb2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5jdXJyZW50UGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2ZXJpZnkoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpbnRlcm5hbFZlcmlmeShkYXRhLCB0aGF0LiRpbnB1dCwgdGhhdC4kaW5mbyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBfZmV0Y2hEYXRhRm9yTm9kZSgkbm9kZSwgZmV0Y2hGdW5jLCBkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwibG9hZGluZ1wiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFwcGVuZCgnPGRpdiBjbGFzcz1cInNwaW5uZXJcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcmVmZXJlbmNlcyB9ID0geWllbGQgZmV0Y2hGdW5jKCRub2RlLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHJlZmVyZW5jZSBvZiByZWZlcmVuY2VzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuZmlsdGVyICYmICF0aGF0Lm9wdGlvbnMuZmlsdGVyKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoYDxsaT5lcnJvciAke2Vyci5tZXNzYWdlfTwvbGk+YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmZpbmQoXCIuc3Bpbm5lclwiKS5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLnJlbW92ZUNsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0ID0gdGhpcy5lbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvID0gJChcIjxkaXYvPlwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcInN0ZXJmaXZlLWNvbWJvLWJveFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQucmVwbGFjZVdpdGgodGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAgPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwiaW5wdXQtZ3JvdXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGlucHV0R3JvdXApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJGlucHV0KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLXNpdGVtYXBcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdG9nZ2xlVHJlZUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0bi5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRkcm9wZG93bi5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0cmVlIHdpZGdldCBpcyBnb2luZyB0byBiZWNvbWUgdmlzaWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5yZXNvbHZlUGFyZW50Tm9kZSgpLnRoZW4oKHBhcmVudE5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudE5vZGUgIT09IHRoYXQuY3VycmVudFBhcmVudCB8fCAoKF9hID0gdGhhdC5jdXJyZW50UGFyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eubm9kZUlkKSAhPT0gcGFyZW50Tm9kZS5ub2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLWZsYXNrXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHZlcmlmeUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZlcmlmeSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICghdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiLCBcImVudGVyIGEgbm9kZUlkIG9yIGEgYnJvd3NlUGF0aCBcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8gPSAkKGA8ZGl2IGNsYXNzPVwiaW5mby10ZXh0XCI+PC9kaXY+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24gPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwic3RlcmZpdmUtZHJvcGRvd25cIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUgPSAkKGA8dWwgY2xhc3M9XCJzdGVyZml2ZS10cmVlXCI+PC91bD5gKS5hcHBlbmRUbyh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVdpZHRoID0gMjA7IC8vIFNldCB3aWR0aCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVIZWlnaHQgPSAyMDsgLy8gU2V0IGhlaWdodCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50UG9zID0gJCh0aGlzKS5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5wYWdlWCA+PSBlbGVtZW50UG9zLmxlZnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVggPD0gZWxlbWVudFBvcy5sZWZ0ICsgYmVmb3JlV2lkdGggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPj0gZWxlbWVudFBvcy50b3AgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPD0gZWxlbWVudFBvcy50b3AgKyBiZWZvcmVIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZiA9ICF0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmID8gZmV0Y2hDaGlsZHJlbiA6IGZldGNoU3VidHlwZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2ZldGNoRGF0YUZvck5vZGUoJGxpLCBmLCBkYXRhKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiIEZldGNoaW5nIGRvbmVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFyayBhcyBleHBhbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvZ2dsZSBpdHMgZXhwYW5kZWQvY29sbGFwc2VkIHN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5jaGlsZHJlbihcInVsXCIpLmNoaWxkcmVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gJGxpLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9ICRsaS5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUgJiYgIXRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gYFske2Rpc3BsYXlOYW1lfV0oJHt2YWx1ZX0pYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnZhbChpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSB0aGUgcGFnZSB3aWxsIGhpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QodGhhdC4kY29tYm8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgZGVjbGFyZUZsYWdFZGl0b3JXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUuZmxhZ0VkaXRvclwiLCB7XG4gICAgICAgICAgICAvLyBkZWZhdWx0IG9wdGlvbnNcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBuYW1lc1RvQml0czoge1xuICAgICAgICAgICAgICAgIC8vIEFkZCBtb3JlIG5hbWVzIGFuZCBiaXQgdmFsdWVzXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIC8vIEN1c3RvbSBEcm9wZG93blxuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0ID0gdGhpcy5lbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvID0gJChcIjxkaXYvPlwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcInN0ZXJmaXZlLWNvbWJvLWJveFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRbMF0ucGFyZW50RWxlbWVudC5yZXBsYWNlQ2hpbGQodGhhdC4kY29tYm9bMF0sIHRoaXMuZWxlbWVudFswXSk7XG4gICAgICAgICAgICAgICAgLy8gdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgLy8gdGhlIHRvZ2dsZSB0cmVlIGJ1dHRvbjpcbiAgICAgICAgICAgICAgICAvLyAgIHdoZW4gd2UgY2xpY2sgaXQgdGhlIGRyb3AgZG93biBwYW5lbCBpcyBkaXNwbGF5ZWRcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLWV5ZVwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQuJHNlbGVjdC5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlRnJvbUlucHV0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5maW5kKFwiLmN1c3RvbS1vcHRpb25cIikuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG9wdGlvbk5hbWUgPSAkKHRoaXMpLnRleHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBiaXRWYWx1ZSA9IHRoYXQub3B0aW9ucy5uYW1lc1RvQml0c1tvcHRpb25OYW1lXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYml0VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbmtub3duIGJpdCBuYW1lXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHRoYXQub3B0aW9ucy52YWx1ZSAmIGJpdFZhbHVlKSA9PT0gYml0VmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSBoaWRkZW4gc2VsZWN0IGVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQudXBkYXRlVmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIC8vIHRoZSBkcm9wIGRvd24gcGFuZWxcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoJzxkaXYgY2xhc3M9XCJjdXN0b20tc2VsZWN0XCI+PC9kaXY+JykuaGlkZSgpLmluc2VydEFmdGVyKHRoaXMuZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgJC5lYWNoKHRoaXMub3B0aW9ucy5uYW1lc1RvQml0cywgZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJG9wdGlvbiA9ICQoJzxkaXYgY2xhc3M9XCJjdXN0b20tb3B0aW9uXCIgZGF0YS12YWx1ZT1cIicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSArXG4gICAgICAgICAgICAgICAgICAgICAgICAnXCI+JyArXG4gICAgICAgICAgICAgICAgICAgICAgICAnPHNwYW4gY2xhc3M9XCJjdXN0b20tY2hlY2tib3hcIj48L3NwYW4+JyArXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiPC9kaXY+XCIpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5hcHBlbmQoJG9wdGlvbik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8gd2hlbiBhIG9wdGlvbnMgaW4gdGhlIGRyb3AgZG93biBwYW5lbCBpcyBjbGlja2VkLFxuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLm9uKFwiY2xpY2tcIiwgXCIuY3VzdG9tLW9wdGlvblwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICQodGhpcykudG9nZ2xlQ2xhc3MoXCJzZWxlY3RlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAkKHRoaXMpLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCQodGhpcykuaGFzQ2xhc3MoXCJzZWxlY3RlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0Qml0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2V0Qml0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGF0LnVwZGF0ZVZhbHVlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVGcm9tSW5wdXQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5lbGVtZW50LnZhbCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0Lm9wdGlvbnMudmFsdWUgPSBjb2VyY2VGbGFnTWFza1RvTnVtYmVyKHRoYXQub3B0aW9ucy5uYW1lc1RvQml0cywgdmFsdWUpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3Qgc2V0Qml0ID0gKGJpdE5hbWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYml0ID0gdGhhdC5vcHRpb25zLm5hbWVzVG9CaXRzW2JpdE5hbWVdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYml0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVua25vd24gYml0IG5hbWVcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLnZhbHVlIHw9IGJpdDtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHVuc2V0Qml0ID0gKGJpdE5hbWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYml0ID0gdGhhdC5vcHRpb25zLm5hbWVzVG9CaXRzW2JpdE5hbWVdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYml0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVua25vd24gYml0IG5hbWVcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLnZhbHVlICY9IH5iaXQ7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC52YWwoY29lcmNlRmxhZ01hc2tUb1N0cmluZyh0aGF0Lm9wdGlvbnMubmFtZXNUb0JpdHMsIHRoaXMub3B0aW9ucy52YWx1ZSkpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdXBkYXRlRnJvbUlucHV0KCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXBkYXRlVmFsdWUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnZhbChjb2VyY2VGbGFnTWFza1RvU3RyaW5nKHRoYXQub3B0aW9ucy5uYW1lc1RvQml0cywgdGhpcy5vcHRpb25zLnZhbHVlKSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2Rlc3Ryb3koKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24ucmVtb3ZlKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgUkVELm5vZGVzLnJlZ2lzdGVyVHlwZShcIk9wY1VhLUNsaWVudDItQnJvd3NlXCIsIHtcbiAgICAgICAgY2F0ZWdvcnk6IFwib3BjdWFcIixcbiAgICAgICAgY29sb3I6IFwiI0MwREVFRFwiLFxuICAgICAgICBhbGlnbjogXCJyaWdodFwiLFxuICAgICAgICBpY29uOiBcIi4uLy4uL2ljb25zL29wY3Vhbm9kZUxvZ28ucG5nXCIsXG4gICAgICAgIHBhbGV0dGVMYWJlbDogXCJicm93c2VcIixcbiAgICAgICAgZGVmYXVsdHM6IHtcbiAgICAgICAgICAgIGlucHV0czogeyB2YWx1ZTogMSB9LFxuICAgICAgICAgICAgb3V0cHV0OiB7IHZhbHVlOiA0IH0sXG4gICAgICAgICAgICAvLyBDb21tb25cbiAgICAgICAgICAgIG5hbWU6IHsgdmFsdWU6IFwiXCIgfSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSwgdHlwZTogXCJPcGNVYS1FbmRwb2ludDJcIiB9LFxuICAgICAgICAgICAgLy8gZm9yIGFjdGlvbiByZWFkXG4gICAgICAgICAgICBub2RlSWQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiB7IHZhbHVlOiBcIkhhc0NoaWxkXCIsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB7IHZhbHVlOiBmYWxzZSwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIGJyb3dzZURpcmVjdGlvbjogeyB2YWx1ZTogXCJGb3J3YXJkXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBub2RlQ2xhc3NNYXNrOiB7IHZhbHVlOiBcIlZhcmlhYmxlIHwgT2JqZWN0IHwgTWV0aG9kIHwgT2JqZWN0VHlwZSB8IFZhcmlhYmxlVHlwZVwiLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgICAgIHJlc3VsdE1hc2s6IHsgdmFsdWU6IFwiUmVmZXJlbmNlVHlwZSB8IEJyb3dzZU5hbWUgfCBUeXBlRGVmaW5pdGlvbiB8IERpc3BsYXlOYW1lIHwgTm9kZUNsYXNzIHwgSXNGb3J3YXJkXCIsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICB9LFxuICAgICAgICBvdXRwdXRzOiAxLFxuICAgICAgICBsYWJlbCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgXCJPUENVQSBCcm93c2VcIjtcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWxTdHlsZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgPyBcIm5vZGVfbGFiZWxfaXRhbGljXCIgOiBcIlwiO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRwcmVwYXJlKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXM7XG4gICAgICAgICAgICBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQoKTtcbiAgICAgICAgICAgIGRlY2xhcmVGbGFnRWRpdG9yV2lkZ2V0KCk7XG4gICAgICAgICAgICBub2RlLmlucHV0cyA9IDE7XG4gICAgICAgICAgICBjb25zdCAkbm9kZUNsYXNzTWFzayA9ICQoXCIjbm9kZS1pbnB1dC1ub2RlQ2xhc3NNYXNrXCIpO1xuICAgICAgICAgICAgJG5vZGVDbGFzc01hc2suZmxhZ0VkaXRvcih7XG4gICAgICAgICAgICAgICAgbmFtZXNUb0JpdHM6IHtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0OiAxLFxuICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZTogMixcbiAgICAgICAgICAgICAgICAgICAgTWV0aG9kOiA0LFxuICAgICAgICAgICAgICAgICAgICBPYmplY3RUeXBlOiA4LFxuICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZVR5cGU6IDE2LFxuICAgICAgICAgICAgICAgICAgICBSZWZlcmVuY2VUeXBlOiAzMixcbiAgICAgICAgICAgICAgICAgICAgRGF0YVR5cGU6IDY0LFxuICAgICAgICAgICAgICAgICAgICBWaWV3OiAxMjgsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogMCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgJHJlc3VsdE1hc2sgPSAkKFwiI25vZGUtaW5wdXQtcmVzdWx0TWFza1wiKTtcbiAgICAgICAgICAgICRyZXN1bHRNYXNrLmZsYWdFZGl0b3Ioe1xuICAgICAgICAgICAgICAgIG5hbWVzVG9CaXRzOiB7XG4gICAgICAgICAgICAgICAgICAgIFJlZmVyZW5jZVR5cGU6IDEsXG4gICAgICAgICAgICAgICAgICAgIElzRm9yd2FyZDogMixcbiAgICAgICAgICAgICAgICAgICAgTm9kZUNsYXNzOiA0LFxuICAgICAgICAgICAgICAgICAgICBCcm93c2VOYW1lOiA4LFxuICAgICAgICAgICAgICAgICAgICBEaXNwbGF5TmFtZTogMTYsXG4gICAgICAgICAgICAgICAgICAgIFR5cGVEZWZpbml0aW9uOiAzMixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHZhbHVlOiA2MyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgJG5vZGVJZCA9ICQoXCIjbm9kZS1pbnB1dC1ub2RlSWRcIik7XG4gICAgICAgICAgICAkbm9kZUlkLm5vZGVCcm93c2VyKHtcbiAgICAgICAgICAgICAgICBpc1NlbGVjdGFibGUobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJWYXJpYWJsZVwiIHx8IG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJPYmplY3RcIjtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCByZWZlcmVuY2VzTm9kZURlc2MgPSB7XG4gICAgICAgICAgICAgICAgbm9kZUlkOiBcImk9MzFcIixcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJSZWZlcmVuY2VzXCIgfSxcbiAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogeyB0ZXh0OiBcIlJlZmVyZW5jZXNcIiB9LFxuICAgICAgICAgICAgICAgIG5vZGVDbGFzczogXCJSZWZlcmVuY2VUeXBlXCIsXG4gICAgICAgICAgICAgICAgdHlwZURlZmluaXRpb246IFwiaT0zMVwiLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0ICRyZWZlcmVuY2VUeXBlSWQgPSAkKFwiI25vZGUtaW5wdXQtcmVmZXJlbmNlVHlwZUlkXCIpO1xuICAgICAgICAgICAgJHJlZmVyZW5jZVR5cGVJZC5ub2RlQnJvd3Nlcih7XG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZTogKCkgPT4gcmVmZXJlbmNlc05vZGVEZXNjLCAvLyBSZWZlcmVuY2VzLFxuICAgICAgICAgICAgICAgIGlzU2VsZWN0YWJsZShub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGlzVHlwZVJlZjogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkgeyB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
|
7
|
+
function _0x4e47(_0x8e1ca9,_0x4a00c2){const _0x221a84=_0x221a();return _0x4e47=function(_0x4e47c3,_0x3e35f3){_0x4e47c3=_0x4e47c3-0x10d;let _0x7539d4=_0x221a84[_0x4e47c3];return _0x7539d4;},_0x4e47(_0x8e1ca9,_0x4a00c2);}(function(_0x24fe9f,_0x383f4d){const _0x32b898=_0x4e47,_0x21447c=_0x24fe9f();while(!![]){try{const _0x4df737=parseInt(_0x32b898(0x1a2))/0x1+-parseInt(_0x32b898(0x117))/0x2+parseInt(_0x32b898(0x17b))/0x3+parseInt(_0x32b898(0x1b1))/0x4*(-parseInt(_0x32b898(0x17d))/0x5)+parseInt(_0x32b898(0x17f))/0x6+-parseInt(_0x32b898(0x13e))/0x7+parseInt(_0x32b898(0x123))/0x8;if(_0x4df737===_0x383f4d)break;else _0x21447c['push'](_0x21447c['shift']());}catch(_0x30fde7){_0x21447c['push'](_0x21447c['shift']());}}}(_0x221a,0x7a0c2),(function(){'use strict';const _0x2202a2=_0x4e47;function _0x1eeb3c(_0x56ed5c,_0x29e930,_0x45841c,_0x5ef5c3){function _0x17b96b(_0x39c024){return _0x39c024 instanceof _0x45841c?_0x39c024:new _0x45841c(function(_0x766164){_0x766164(_0x39c024);});}return new(_0x45841c||(_0x45841c=Promise))(function(_0x3716cb,_0x410f6a){const _0x5e4637=_0x4e47;function _0x5c1623(_0x12b157){const _0x34a1b1=_0x4e47;try{_0x19b95c(_0x5ef5c3[_0x34a1b1(0x18c)](_0x12b157));}catch(_0x376773){_0x410f6a(_0x376773);}}function _0x19389e(_0x49f273){try{_0x19b95c(_0x5ef5c3['throw'](_0x49f273));}catch(_0x2f7a77){_0x410f6a(_0x2f7a77);}}function _0x19b95c(_0x109af6){const _0x5a194e=_0x4e47;_0x109af6[_0x5a194e(0x140)]?_0x3716cb(_0x109af6[_0x5a194e(0x192)]):_0x17b96b(_0x109af6[_0x5a194e(0x192)])[_0x5a194e(0x1af)](_0x5c1623,_0x19389e);}_0x19b95c((_0x5ef5c3=_0x5ef5c3[_0x5e4637(0x14c)](_0x56ed5c,_0x29e930||[]))[_0x5e4637(0x18c)]());});}typeof SuppressedError===_0x2202a2(0x146)?SuppressedError:function(_0x34f2f5,_0x3bd69d,_0x495262){const _0x2116cb=_0x2202a2;var _0x5b0112=new Error(_0x495262);return _0x5b0112[_0x2116cb(0x159)]=_0x2116cb(0x128),_0x5b0112[_0x2116cb(0x1a6)]=_0x34f2f5,_0x5b0112[_0x2116cb(0x152)]=_0x3bd69d,_0x5b0112;};const _0x3602b5='ns=0;i=35',_0x5d6db2=_0x2202a2(0x14f),_0x136ed1=_0x2202a2(0x170),_0x2aaa1a='ns=0;i=46',_0x29f37a=_0x2202a2(0x163),_0x35d855=_0x2202a2(0x1a1),_0x53ad3f=_0x2202a2(0x1a8);var _0x6465e9;(function(_0x3512d7){const _0x18ab0c=_0x2202a2;_0x3512d7[_0x3512d7['Forward']=0x0]='Forward',_0x3512d7[_0x3512d7['Inverse']=0x1]=_0x18ab0c(0x1bb),_0x3512d7[_0x3512d7['Both']=0x2]=_0x18ab0c(0x180),_0x3512d7[_0x3512d7[_0x18ab0c(0x144)]=0x3]=_0x18ab0c(0x144);}(_0x6465e9||(_0x6465e9={})));var _0x1ebc52;(function(_0x346ef8){const _0x1f72ab=_0x2202a2;_0x346ef8[_0x346ef8[_0x1f72ab(0x193)]=0x0]=_0x1f72ab(0x193),_0x346ef8[_0x346ef8[_0x1f72ab(0x19a)]=0x1]=_0x1f72ab(0x19a),_0x346ef8[_0x346ef8['Variable']=0x2]=_0x1f72ab(0x15f),_0x346ef8[_0x346ef8['Method']=0x4]=_0x1f72ab(0x15a),_0x346ef8[_0x346ef8[_0x1f72ab(0x12d)]=0x8]='ObjectType',_0x346ef8[_0x346ef8[_0x1f72ab(0x14d)]=0x10]=_0x1f72ab(0x14d),_0x346ef8[_0x346ef8[_0x1f72ab(0x13a)]=0x20]=_0x1f72ab(0x13a),_0x346ef8[_0x346ef8[_0x1f72ab(0x11a)]=0x40]='DataType',_0x346ef8[_0x346ef8[_0x1f72ab(0x138)]=0x80]=_0x1f72ab(0x138);}(_0x1ebc52||(_0x1ebc52={})));var _0x4ccd42;(function(_0x4bf004){const _0x22ba74=_0x2202a2;_0x4bf004[_0x4bf004['Object']=0x1]=_0x22ba74(0x19a),_0x4bf004[_0x4bf004[_0x22ba74(0x15f)]=0x2]=_0x22ba74(0x15f),_0x4bf004[_0x4bf004[_0x22ba74(0x15a)]=0x4]='Method',_0x4bf004[_0x4bf004[_0x22ba74(0x12d)]=0x8]=_0x22ba74(0x12d),_0x4bf004[_0x4bf004['VariableType']=0x10]=_0x22ba74(0x14d),_0x4bf004[_0x4bf004[_0x22ba74(0x13a)]=0x20]='ReferenceType',_0x4bf004[_0x4bf004['DataType']=0x40]=_0x22ba74(0x11a),_0x4bf004[_0x4bf004['View']=0x80]=_0x22ba74(0x138);}(_0x4ccd42||(_0x4ccd42={})));function _0x258352(_0x330e48,_0x5b76a6){const _0x38bf28=_0x2202a2;if(typeof _0x5b76a6==='number')return _0x5b76a6;const _0x3a982d=parseInt(_0x5b76a6,0xa);if(!isNaN(_0x3a982d))return _0x3a982d;const _0x4824d3=_0x5b76a6[_0x38bf28(0x188)](/\||;|,/)[_0x38bf28(0x17e)](_0x4e3e09=>_0x4e3e09[_0x38bf28(0x18f)]());let _0x5592f1=0x0;for(const _0x4e671f of _0x4824d3){_0x5592f1|=_0x330e48[_0x4e671f];}return _0x5592f1;}function _0x289e78(_0x536ab5,_0x1fbd1d){const _0x138337=_0x2202a2;_0x1fbd1d=_0x258352(_0x536ab5,_0x1fbd1d);const _0x47e5e3=[];if(!_0x536ab5)return _0x47e5e3[_0x138337(0x10d)]('\x20|\x20');for(const [_0x20ad03,_0x1393dc]of Object['entries'](_0x536ab5)){typeof _0x1fbd1d===_0x138337(0x10e)&&((_0x1fbd1d&_0x1393dc)===_0x1393dc&&_0x47e5e3[_0x138337(0x161)](_0x20ad03));}return _0x47e5e3['join'](_0x138337(0x135));}var _0x42066d;(function(_0xbf0fd9){const _0x57b102=_0x2202a2;_0xbf0fd9[_0xbf0fd9[_0x57b102(0x13a)]=0x1]=_0x57b102(0x13a),_0xbf0fd9[_0xbf0fd9[_0x57b102(0x142)]=0x2]=_0x57b102(0x142),_0xbf0fd9[_0xbf0fd9[_0x57b102(0x1c2)]=0x4]='NodeClass',_0xbf0fd9[_0xbf0fd9[_0x57b102(0x17a)]=0x8]=_0x57b102(0x17a),_0xbf0fd9[_0xbf0fd9[_0x57b102(0x16d)]=0x10]='DisplayName',_0xbf0fd9[_0xbf0fd9[_0x57b102(0x116)]=0x20]=_0x57b102(0x116);}(_0x42066d||(_0x42066d={})));function _0xffbe9a(_0x12d17b){const _0x215c7c=_0x2202a2;switch(_0x12d17b){case _0x215c7c(0x195):return _0x3602b5;case _0x215c7c(0x121):return _0x2aaa1a;case _0x215c7c(0x1b4):return _0x136ed1;case _0x215c7c(0x183):return _0x29f37a;case'HasSubtype':return _0x35d855;case _0x215c7c(0x166):return _0x53ad3f;}}const _0x48430d=_0x262bac=>{const _0x4288fe=_0x2202a2;switch(_0x262bac[_0x4288fe(0x16c)]){case _0x4288fe(0x19a):if(_0x262bac[_0x4288fe(0x162)]===_0x3602b5);if(_0x262bac[_0x4288fe(0x127)]===_0x5d6db2||_0x262bac[_0x4288fe(0x162)]===_0x4288fe(0x11b))return{'icon':_0x4288fe(0x18e),'color':_0x4288fe(0x1a0)};return{'icon':'fa-object-group','color':'SeaGreen'};case'Variable':if(_0x262bac['referenceTypeId']===_0x136ed1)return{'icon':_0x4288fe(0x134),'color':_0x4288fe(0x171)};else return _0x262bac[_0x4288fe(0x162)]===_0x2aaa1a?{'icon':_0x4288fe(0x134),'color':_0x4288fe(0x16b)}:{'icon':'fa-list-alt','color':_0x4288fe(0x132)};case _0x4288fe(0x15a):return{'icon':'fa-cog','color':_0x4288fe(0x110)};case _0x4288fe(0x12d):return{'icon':'fa-object-group','color':_0x4288fe(0x178)};case'VariableType':return{'icon':_0x4288fe(0x1b0),'color':_0x4288fe(0x178)};}return{'icon':_0x4288fe(0x182),'color':'grey'};},_0x30b482=({endpointNode:_0x1f118e,endpoint:_0x16c579,baseUrl:_0x7b8520},_0x4bcf2b,_0x5ce014)=>_0x1eeb3c(void 0x0,void 0x0,void 0x0,function*(){const _0x5e9b05=_0x2202a2,_0x103e23=_0x7b8520+_0x5e9b05(0x148),_0x2df8d5=_0x103e23+'/browse',_0x1c0124=Object[_0x5e9b05(0x12c)](Object[_0x5e9b05(0x12c)]({},_0x5ce014),{'nodeId':_0x4bcf2b,'resultMask':0x3f}),_0x3c0175=yield fetch(_0x2df8d5,{'method':_0x5e9b05(0x1bc),'body':JSON['stringify']({'endpointNode':_0x1f118e,'endpoint':_0x16c579,'browseDescription':_0x1c0124}),'headers':{'Content-Type':_0x5e9b05(0x19d)}});if(_0x3c0175[_0x5e9b05(0x16e)]!==0xc8)return console[_0x5e9b05(0x18a)](_0x5e9b05(0x1ba),_0x3c0175[_0x5e9b05(0x16e)],_0x3c0175[_0x5e9b05(0x1a7)]),{'references':[]};console[_0x5e9b05(0x18a)]('fetched\x20:\x20',_0x3c0175['status'],_0x3c0175['statusText']);const _0x262ae9=yield _0x3c0175[_0x5e9b05(0x13b)](),_0x405bb0=_0x262ae9[_0x5e9b05(0x1b3)]['references']||[];return{'references':_0x405bb0};}),_0x42327c={'referenceTypeId':_0xffbe9a('HasChild'),'includeSubtypes':!![],'browseDirection':_0x6465e9[_0x2202a2(0x199)],'nodeClassMask':_0x1ebc52[_0x2202a2(0x15f)]|_0x1ebc52[_0x2202a2(0x19a)]|_0x1ebc52[_0x2202a2(0x15a)],'resultMask':0x3f},_0x486ea2={'referenceTypeId':_0xffbe9a(_0x2202a2(0x195)),'includeSubtypes':!![],'browseDirection':_0x6465e9[_0x2202a2(0x199)],'nodeClassMask':_0x1ebc52[_0x2202a2(0x15f)]|_0x1ebc52[_0x2202a2(0x19a)]|_0x1ebc52[_0x2202a2(0x15a)],'resultMask':0x3f},_0x54f3c4=({endpointNode:_0x6c3971,endpoint:_0x5607fa,baseUrl:_0x33a514},_0x1b9b6f,_0xd67f1d)=>_0x1eeb3c(void 0x0,void 0x0,void 0x0,function*(){const _0x3d0223=_0x2202a2,_0x1412cb=_0x33a514+_0x3d0223(0x148),_0x34e3e6=_0x1b9b6f[_0x3d0223(0x197)](),_0x456c6c=yield fetch(_0x1412cb+'/checkNodeId',{'method':_0x3d0223(0x1bc),'body':JSON[_0x3d0223(0x16a)]({'endpointNode':_0x6c3971,'endpoint':_0x5607fa,'nodeId':_0x34e3e6}),'headers':{'Content-Type':'application/json'}}),_0x374c22=(_0x20c1b1,_0x50f18f)=>{const _0x22f22e=_0x3d0223;_0xd67f1d['text'](_0x20c1b1)['addClass'](_0x22f22e(0x118))[_0x22f22e(0x124)](_0x50f18f),_0xd67f1d[_0x22f22e(0x10f)](),setTimeout(()=>{const _0x4858ee=_0x22f22e;_0xd67f1d[_0x4858ee(0x14b)](_0x50f18f),_0xd67f1d['hide']();},0xbb8);},_0x32b73b=yield _0x456c6c[_0x3d0223(0x13b)]();_0x456c6c[_0x3d0223(0x16e)]!==0xc8?_0x374c22(_0x3d0223(0x1c0)+_0x34e3e6,'failure'):_0x32b73b[_0x3d0223(0x157)][_0x3d0223(0x12e)](/Good/)?(_0x1b9b6f['val'](_0x32b73b['nodeAddressString']),_0x1b9b6f[_0x3d0223(0x158)](_0x3d0223(0x13c)),_0x374c22(_0x3d0223(0x111),'ok')):(_0x1b9b6f[_0x3d0223(0x197)](''+_0x34e3e6),_0x374c22(_0x32b73b[_0x3d0223(0x157)]+'\x20'+_0x456c6c[_0x3d0223(0x1a7)],'failure'));});function _0x34ec38(_0x55b7ce,_0xbf61c0){return _0x1eeb3c(this,void 0x0,void 0x0,function*(){const _0x4fd4f2=_0x4e47,_0x51631b=_0x55b7ce['data'](_0x4fd4f2(0x192)),_0x389de5=yield _0x30b482(_0xbf61c0,_0x51631b,_0x42327c),_0x3aecb3=yield _0x30b482(_0xbf61c0,_0x51631b,_0x486ea2);return{'references':[..._0x389de5[_0x4fd4f2(0x139)],..._0x3aecb3['references']]};});}const _0x223059={'referenceTypeId':_0xffbe9a(_0x2202a2(0x126)),'includeSubtypes':!![],'browseDirection':_0x6465e9[_0x2202a2(0x199)],'nodeClassMask':_0x1ebc52[_0x2202a2(0x13a)]|_0x1ebc52[_0x2202a2(0x12d)]|_0x1ebc52[_0x2202a2(0x11a)]|_0x1ebc52[_0x2202a2(0x14d)],'resultMask':0x3f};function _0x572324(_0x43f3b9,_0x5d3f81){return _0x1eeb3c(this,void 0x0,void 0x0,function*(){const _0x55fd9a=_0x4e47,_0x33d504=_0x43f3b9[_0x55fd9a(0x12f)](_0x55fd9a(0x192)),_0x3b6273=yield _0x30b482(_0x5d3f81,_0x33d504,_0x223059);return _0x3b6273;});}const _0x14fa94=_0x5564d4=>{const _0x568f71=_0x2202a2;var _0x4a1420,_0x5479d0;if(!_0x5564d4){const _0x51921e=$(_0x568f71(0x164));return _0x51921e;}const _0x47508f=_0x5564d4[_0x568f71(0x172)][_0x568f71(0x112)](),_0x296093=((_0x4a1420=_0x5564d4[_0x568f71(0x1ad)])===null||_0x4a1420===void 0x0?void 0x0:_0x4a1420[_0x568f71(0x175)])||((_0x5479d0=_0x5564d4[_0x568f71(0x165)])===null||_0x5479d0===void 0x0?void 0x0:_0x5479d0[_0x568f71(0x159)])||_0x5564d4['nodeId']['toString'](),{icon:_0x45ed40,color:_0x4ab465}=_0x48430d(_0x5564d4),_0x4c4e6a=$(_0x568f71(0x129)+_0x45ed40+_0x568f71(0x198)+_0x4ab465+';\x22></i>\x20'+_0x296093+'<ul></ul></li>');return _0x4c4e6a['addClass'](_0x568f71(0x1b8)),_0x4c4e6a[_0x568f71(0x12f)](_0x568f71(0x192),_0x47508f),_0x4c4e6a['data'](_0x568f71(0x15d),_0x5564d4),_0x4c4e6a;},_0x4d82fb=()=>{const _0x5b972f=_0x2202a2;$['widget'](_0x5b972f(0x1aa),{'options':{'endpointNode':()=>({'endpoint':'opc.tcp://opcuademo.sterfive.com:26543'}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':'Objects'},'nodeClass':'Object','nodeId':_0x5b972f(0x17c),'displayName':{'text':_0x5b972f(0x184)},'typeDefinition':_0x5d6db2}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x1eeb3c(this,void 0x0,void 0x0,function*(){const _0x13e3da=_0x4e47,_0x393161=this,_0x49d7a0=typeof _0x393161[_0x13e3da(0x19b)][_0x13e3da(0x114)]==='function'?_0x393161[_0x13e3da(0x19b)]['parentNode']():_0x393161[_0x13e3da(0x19b)][_0x13e3da(0x114)];if(_0x49d7a0 instanceof Promise)return yield _0x49d7a0;return _0x49d7a0;});},'reset'(){const _0x10fe43=_0x5b972f,_0x13bfc4=this;_0x13bfc4['$tree'][_0x10fe43(0x19c)](),this[_0x10fe43(0x1c3)]()[_0x10fe43(0x1af)](_0x19412e=>{const _0x65097=_0x10fe43,_0x14eb28=_0x14fa94(_0x19412e);_0x13bfc4[_0x65097(0x151)][_0x65097(0x13f)](_0x14eb28),_0x13bfc4[_0x65097(0x15b)]=_0x19412e;});},'verify'(){const _0x20c3b0=_0x5b972f,_0x588960=this,_0x35455a={'baseUrl':_0x588960[_0x20c3b0(0x19b)][_0x20c3b0(0x173)],'endpointNode':typeof _0x588960['options'][_0x20c3b0(0x131)]===_0x20c3b0(0x146)?_0x588960[_0x20c3b0(0x19b)]['endpointNode']():_0x588960[_0x20c3b0(0x19b)][_0x20c3b0(0x131)],'endpoint':typeof _0x588960[_0x20c3b0(0x19b)][_0x20c3b0(0x191)]===_0x20c3b0(0x146)?_0x588960[_0x20c3b0(0x19b)][_0x20c3b0(0x191)]():_0x588960['options'][_0x20c3b0(0x191)]};_0x54f3c4(_0x35455a,_0x588960[_0x20c3b0(0x143)],_0x588960[_0x20c3b0(0x190)]);},'_create'(){const _0x5e6042=_0x5b972f,_0x174f93=this;function _0x86e5d(_0x38ff8e,_0x47b7f8,_0x14effd){return _0x1eeb3c(this,void 0x0,void 0x0,function*(){const _0x4cf888=_0x4e47;if(_0x38ff8e[_0x4cf888(0x149)](_0x4cf888(0x18b))){console['log'](_0x4cf888(0x147));return;}if(_0x38ff8e[_0x4cf888(0x149)](_0x4cf888(0x150))){console[_0x4cf888(0x18a)](_0x4cf888(0x189));return;}_0x38ff8e[_0x4cf888(0x124)](_0x4cf888(0x150)),_0x38ff8e['append'](_0x4cf888(0x115));try{_0x38ff8e[_0x4cf888(0x156)]('ul')['empty']();const {references:_0x5954ee}=yield _0x47b7f8(_0x38ff8e,_0x14effd);for(const _0x32274c of _0x5954ee){if(_0x174f93[_0x4cf888(0x19b)][_0x4cf888(0x136)]&&!_0x174f93[_0x4cf888(0x19b)][_0x4cf888(0x136)](_0x32274c))continue;const _0x5d93b1=_0x14fa94(_0x32274c);_0x38ff8e[_0x4cf888(0x156)]('ul')[_0x4cf888(0x13f)](_0x5d93b1);}_0x38ff8e[_0x4cf888(0x124)](_0x4cf888(0x18b));}catch(_0xd8bc12){_0x38ff8e['children']('ul')[_0x4cf888(0x13f)]('<li>error\x20'+_0xd8bc12[_0x4cf888(0x153)]+_0x4cf888(0x160)),console[_0x4cf888(0x18a)]('err',_0xd8bc12);}_0x38ff8e[_0x4cf888(0x179)]('.spinner')[_0x4cf888(0x1ac)](),_0x38ff8e[_0x4cf888(0x14b)]('loading');});}_0x174f93[_0x5e6042(0x143)]=this[_0x5e6042(0x18d)],_0x174f93['$combo']=$('<div/>'),_0x174f93[_0x5e6042(0x113)][_0x5e6042(0x124)](_0x5e6042(0x1c1)),this[_0x5e6042(0x18d)]['replaceWith'](_0x174f93[_0x5e6042(0x113)]),_0x174f93['$inputGroup']=$(_0x5e6042(0x120))[_0x5e6042(0x124)](_0x5e6042(0x167)),_0x174f93['$combo']['append'](_0x174f93[_0x5e6042(0x11e)]),_0x174f93[_0x5e6042(0x11e)][_0x5e6042(0x13f)](_0x174f93[_0x5e6042(0x143)]),_0x174f93[_0x5e6042(0x16f)]=$(_0x5e6042(0x1a9)),_0x174f93[_0x5e6042(0x11e)]['append'](_0x174f93[_0x5e6042(0x16f)]),_0x174f93[_0x5e6042(0x16f)]['on']('click',function(){const _0x442030=_0x5e6042;!_0x174f93[_0x442030(0x1b9)]['is'](':visible')&&(_0x174f93[_0x442030(0x1c3)]()[_0x442030(0x1af)](_0x3a8409=>{const _0x4b9b8f=_0x442030;var _0x416f18;(_0x3a8409!==_0x174f93['currentParent']||((_0x416f18=_0x174f93[_0x4b9b8f(0x15b)])===null||_0x416f18===void 0x0?void 0x0:_0x416f18[_0x4b9b8f(0x172)])!==_0x3a8409[_0x4b9b8f(0x172)])&&_0x174f93[_0x4b9b8f(0x194)]();}),_0x174f93[_0x442030(0x190)]['hide']()),_0x174f93[_0x442030(0x1b9)]['toggle']();}),_0x174f93[_0x5e6042(0x19e)]=$(_0x5e6042(0x122)),_0x174f93[_0x5e6042(0x11e)]['append'](_0x174f93[_0x5e6042(0x19e)]),_0x174f93[_0x5e6042(0x19e)]['on'](_0x5e6042(0x14a),()=>{const _0x204141=_0x5e6042;this[_0x204141(0x174)]();}),!_0x174f93['$input'][_0x5e6042(0x1a5)](_0x5e6042(0x186))&&_0x174f93[_0x5e6042(0x143)]['attr'](_0x5e6042(0x186),'enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20'),_0x174f93[_0x5e6042(0x190)]=$(_0x5e6042(0x13d)),_0x174f93[_0x5e6042(0x190)][_0x5e6042(0x11d)](),{'baseUrl':_0x174f93['options'][_0x5e6042(0x173)],'endpointNode':typeof _0x174f93[_0x5e6042(0x19b)]['endpointNode']===_0x5e6042(0x146)?_0x174f93[_0x5e6042(0x19b)][_0x5e6042(0x131)]():_0x174f93[_0x5e6042(0x19b)][_0x5e6042(0x131)],'endpoint':typeof _0x174f93['options'][_0x5e6042(0x191)]===_0x5e6042(0x146)?_0x174f93[_0x5e6042(0x19b)][_0x5e6042(0x191)]():_0x174f93[_0x5e6042(0x19b)][_0x5e6042(0x191)]},_0x174f93[_0x5e6042(0x1b9)]=$('<div/>')['addClass'](_0x5e6042(0x1bf))['hide'](),_0x174f93['$combo'][_0x5e6042(0x13f)](_0x174f93[_0x5e6042(0x190)]),_0x174f93[_0x5e6042(0x113)][_0x5e6042(0x13f)](_0x174f93[_0x5e6042(0x1b9)]),_0x174f93[_0x5e6042(0x151)]=$('<ul\x20class=\x22sterfive-tree\x22></ul>')['appendTo'](_0x174f93[_0x5e6042(0x1b9)]),this[_0x5e6042(0x194)](),_0x174f93['$tree']['on']('click','li',function(_0x52d360){const _0x4285f8=_0x5e6042;var _0x26c53f,_0x51a9c0;_0x52d360['stopPropagation']();let _0x5a5e6c=$(this);const _0x24d0f6=0x14,_0x48a943=0x14,_0x982f1=$(this)[_0x4285f8(0x1a4)](),_0x5ec22a=_0x52d360;if(_0x5ec22a['pageX']>=_0x982f1['left']&&_0x5ec22a[_0x4285f8(0x1b7)]<=_0x982f1['left']+_0x24d0f6&&_0x5ec22a[_0x4285f8(0x14e)]>=_0x982f1['top']&&_0x5ec22a[_0x4285f8(0x14e)]<=_0x982f1[_0x4285f8(0x187)]+_0x48a943){if(_0x5a5e6c[_0x4285f8(0x149)](_0x4285f8(0x1b8))){if(_0x5a5e6c[_0x4285f8(0x149)](_0x4285f8(0x18b))){_0x5a5e6c[_0x4285f8(0x14b)](_0x4285f8(0x1b8))[_0x4285f8(0x124)]('expanded'),_0x5a5e6c[_0x4285f8(0x156)]('ul')[_0x4285f8(0x119)]();return;}const _0x55a949={'baseUrl':_0x174f93[_0x4285f8(0x19b)][_0x4285f8(0x173)],'endpointNode':typeof _0x174f93[_0x4285f8(0x19b)][_0x4285f8(0x131)]==='function'?_0x174f93[_0x4285f8(0x19b)][_0x4285f8(0x131)]():_0x174f93[_0x4285f8(0x19b)][_0x4285f8(0x131)],'endpoint':typeof _0x174f93['options'][_0x4285f8(0x191)]==='function'?_0x174f93['options']['endpoint']():_0x174f93[_0x4285f8(0x19b)]['endpoint']},_0x1376e3=!_0x174f93[_0x4285f8(0x19b)]['isTypeRef']?_0x34ec38:_0x572324;_0x86e5d(_0x5a5e6c,_0x1376e3,_0x55a949)[_0x4285f8(0x1af)](()=>{const _0x193707=_0x4285f8;console[_0x193707(0x18a)](_0x193707(0x11f)),console[_0x193707(0x18a)]('fetched'),_0x5a5e6c[_0x193707(0x14b)](_0x193707(0x1b8))[_0x193707(0x124)]('expanded');})['catch'](_0xdb720f=>{const _0x5f4bd0=_0x4285f8;_0x5a5e6c['removeClass']('expandable')[_0x5f4bd0(0x124)]('expanded'),console[_0x5f4bd0(0x18a)](_0x5f4bd0(0x1a6),_0xdb720f);});}else{if(_0x5a5e6c[_0x4285f8(0x149)](_0x4285f8(0x1b5)))_0x5a5e6c['children']('ul')[_0x4285f8(0x119)](),_0x5a5e6c['toggleClass'](_0x4285f8(0x1a3));else{if(_0x5a5e6c[_0x4285f8(0x156)]('ul')[_0x4285f8(0x156)]()[_0x4285f8(0x1bd)]>0x0)_0x5a5e6c[_0x4285f8(0x156)]('ul')['toggle'](),_0x5a5e6c[_0x4285f8(0x181)](_0x4285f8(0x1a3));else;}}}else{const _0x3eece7=_0x5a5e6c[_0x4285f8(0x12f)]('value'),_0x38ea7a=_0x5a5e6c[_0x4285f8(0x12f)](_0x4285f8(0x15d));if(_0x174f93[_0x4285f8(0x19b)]['isSelectable']&&!_0x174f93['options'][_0x4285f8(0x141)](_0x38ea7a))return;_0x174f93[_0x4285f8(0x143)][_0x4285f8(0x12f)](_0x4285f8(0x15d),_0x38ea7a);const _0x29349e=((_0x26c53f=_0x38ea7a[_0x4285f8(0x1ad)])===null||_0x26c53f===void 0x0?void 0x0:_0x26c53f[_0x4285f8(0x175)])||((_0x51a9c0=_0x38ea7a['browseName'])===null||_0x51a9c0===void 0x0?void 0x0:_0x51a9c0['name'])||_0x38ea7a['nodeId'][_0x4285f8(0x112)](),_0x33b563='['+_0x29349e+']('+_0x3eece7+')';_0x174f93['$input'][_0x4285f8(0x197)](_0x33b563),_0x174f93[_0x4285f8(0x143)][_0x4285f8(0x158)](_0x4285f8(0x13c)),_0x174f93[_0x4285f8(0x1b9)]['hide']();}}),$(document)['on'](_0x5e6042(0x14a),function(_0x833aa2){const _0x5a1cb6=_0x5e6042;!$(_0x833aa2[_0x5a1cb6(0x15e)])['closest'](_0x174f93['$combo'])[_0x5a1cb6(0x1bd)]&&_0x174f93[_0x5a1cb6(0x1b9)][_0x5a1cb6(0x11d)]();});}});},_0x3ac279=()=>{$['widget']('sterfive.flagEditor',{'options':{'namesToBits':{},'value':0x0},'_create'(){const _0x3e874f=_0x4e47,_0x545798=this;_0x545798[_0x3e874f(0x143)]=this[_0x3e874f(0x18d)],_0x545798[_0x3e874f(0x113)]=$(_0x3e874f(0x120)),_0x545798[_0x3e874f(0x113)][_0x3e874f(0x124)](_0x3e874f(0x1c1)),this[_0x3e874f(0x18d)][0x0]['parentElement']['replaceChild'](_0x545798[_0x3e874f(0x113)][0x0],this[_0x3e874f(0x18d)][0x0]),_0x545798[_0x3e874f(0x11e)]=$(_0x3e874f(0x120))[_0x3e874f(0x124)](_0x3e874f(0x167)),_0x545798['$combo']['append'](_0x545798[_0x3e874f(0x11e)]),_0x545798[_0x3e874f(0x11e)][_0x3e874f(0x13f)](_0x545798[_0x3e874f(0x143)]),_0x545798[_0x3e874f(0x16f)]=$('<button><i\x20class=\x22fa\x20fa-eye\x22></i></button>'),_0x545798[_0x3e874f(0x11e)]['append'](_0x545798[_0x3e874f(0x16f)]),_0x545798[_0x3e874f(0x16f)]['on'](_0x3e874f(0x14a),function(){const _0x461168=_0x3e874f;_0x545798[_0x461168(0x1b9)][_0x461168(0x119)](),_0x545798['$dropdown']['is'](':visible')&&(_0x5c1938(),_0x545798[_0x461168(0x113)]['find'](_0x461168(0x130))[_0x461168(0x15c)](function(){const _0x35f1c3=_0x461168;let _0x2b4409=$(this)['text']();const _0x29b9af=_0x545798[_0x35f1c3(0x19b)][_0x35f1c3(0x196)][_0x2b4409];if(_0x29b9af===undefined)throw new Error(_0x35f1c3(0x1b2));(_0x545798[_0x35f1c3(0x19b)]['value']&_0x29b9af)===_0x29b9af?$(this)[_0x35f1c3(0x124)](_0x35f1c3(0x145)):$(this)[_0x35f1c3(0x14b)]('selected');}),_0x545798['updateValue']());}),_0x545798[_0x3e874f(0x1b9)]=$(_0x3e874f(0x169))[_0x3e874f(0x11d)]()[_0x3e874f(0x177)](this[_0x3e874f(0x18d)]),$[_0x3e874f(0x15c)](this[_0x3e874f(0x19b)][_0x3e874f(0x196)],function(_0xc89439){const _0x441c5e=_0x3e874f,_0x56dce7=$(_0x441c5e(0x1b6)+_0xc89439+'\x22>'+_0x441c5e(0x176)+_0xc89439+'</div>');_0x545798[_0x441c5e(0x1b9)][_0x441c5e(0x13f)](_0x56dce7);}),_0x545798[_0x3e874f(0x1b9)]['on'](_0x3e874f(0x14a),_0x3e874f(0x130),function(){const _0x8c3d57=_0x3e874f;$(this)['toggleClass'](_0x8c3d57(0x145));const _0x5d4406=$(this)['data'](_0x8c3d57(0x192));$(this)['hasClass'](_0x8c3d57(0x145))?_0xcc4851(_0x5d4406):_0x7cdbbc(_0x5d4406),_0x545798['updateValue']();}),_0x545798['$combo']['append'](_0x545798[_0x3e874f(0x1b9)]);const _0x5c1938=()=>{const _0x2af184=_0x3e874f,_0x17ad22=this[_0x2af184(0x18d)][_0x2af184(0x197)]();_0x545798[_0x2af184(0x19b)]['value']=_0x258352(_0x545798[_0x2af184(0x19b)][_0x2af184(0x196)],_0x17ad22);},_0xcc4851=_0x33976a=>{const _0x2c6b5c=_0x3e874f,_0x15113b=_0x545798[_0x2c6b5c(0x19b)][_0x2c6b5c(0x196)][_0x33976a];if(_0x15113b===undefined)throw new Error(_0x2c6b5c(0x1b2));this[_0x2c6b5c(0x19b)][_0x2c6b5c(0x192)]|=_0x15113b;},_0x7cdbbc=_0x4bb5a7=>{const _0x4a5c4c=_0x3e874f,_0x2531a4=_0x545798[_0x4a5c4c(0x19b)]['namesToBits'][_0x4bb5a7];if(_0x2531a4===undefined)throw new Error(_0x4a5c4c(0x1b2));this[_0x4a5c4c(0x19b)][_0x4a5c4c(0x192)]&=~_0x2531a4,this['element'][_0x4a5c4c(0x197)](_0x289e78(_0x545798['options'][_0x4a5c4c(0x196)],this[_0x4a5c4c(0x19b)][_0x4a5c4c(0x192)]));};_0x5c1938();},'updateValue'(){const _0x2a7960=_0x4e47,_0x93ffc7=this;this[_0x2a7960(0x18d)][_0x2a7960(0x197)](_0x289e78(_0x93ffc7[_0x2a7960(0x19b)]['namesToBits'],this['options']['value']));},'_destroy'(){const _0x5261c2=_0x4e47,_0x40cc0a=this;_0x40cc0a[_0x5261c2(0x1b9)][_0x5261c2(0x1ac)]();}});};RED['nodes'][_0x2202a2(0x19f)](_0x2202a2(0x11c),{'category':_0x2202a2(0x1be),'color':'#C0DEED','align':'right','icon':_0x2202a2(0x12b),'paletteLabel':'browse','defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x2202a2(0x137)},'nodeId':{'value':'','required':![]},'referenceTypeId':{'value':_0x2202a2(0x183),'required':![]},'includeSubtypes':{'value':![],'required':!![]},'browseDirection':{'value':_0x2202a2(0x199),'required':!![]},'nodeClassMask':{'value':'Variable\x20|\x20Object\x20|\x20Method\x20|\x20ObjectType\x20|\x20VariableType','required':![]},'resultMask':{'value':_0x2202a2(0x12a),'required':![]}},'outputs':0x1,'label'(){const _0x5d64e9=_0x2202a2;return this['name']||_0x5d64e9(0x1ab);},'labelStyle'(){return this['name']?'node_label_italic':'';},'oneditprepare'(){const _0x5f589f=_0x2202a2,_0x7f171f=this;_0x4d82fb(),_0x3ac279(),_0x7f171f[_0x5f589f(0x185)]=0x1;const _0x57da02=$('#node-input-nodeClassMask');_0x57da02['flagEditor']({'namesToBits':{'Object':0x1,'Variable':0x2,'Method':0x4,'ObjectType':0x8,'VariableType':0x10,'ReferenceType':0x20,'DataType':0x40,'View':0x80},'value':0x0});const _0xa598d9=$('#node-input-resultMask');_0xa598d9[_0x5f589f(0x154)]({'namesToBits':{'ReferenceType':0x1,'IsForward':0x2,'NodeClass':0x4,'BrowseName':0x8,'DisplayName':0x10,'TypeDefinition':0x20},'value':0x3f});const _0x1609ca=$(_0x5f589f(0x1ae));_0x1609ca[_0x5f589f(0x155)]({'isSelectable'(_0xaa2d88){const _0xcc3e00=_0x5f589f;return _0xaa2d88['nodeClass']===_0xcc3e00(0x15f)||_0xaa2d88[_0xcc3e00(0x16c)]===_0xcc3e00(0x19a);}});const _0x41a50b={'nodeId':_0x5f589f(0x168),'referenceTypeId':'','browseName':{'namespaceIndex':0x0,'name':'References'},'displayName':{'text':_0x5f589f(0x125)},'nodeClass':_0x5f589f(0x13a),'typeDefinition':_0x5f589f(0x168)},_0x558439=$(_0x5f589f(0x133));_0x558439['nodeBrowser']({'parentNode':()=>_0x41a50b,'isSelectable'(_0x37ced0){const _0x30c059=_0x5f589f;return _0x37ced0[_0x30c059(0x16c)]===_0x30c059(0x13a);},'isTypeRef':!![]});},'oneditsave'(){}});}()));function _0x221a(){const _0x4f97ac=['CadetBlue','#node-input-referenceTypeId','fa-list-alt','\x20|\x20','filter','OpcUa-Endpoint2','View','references','ReferenceType','json','change','<div\x20class=\x22info-text\x22></div>','1127987DMtXer','append','done','isSelectable','IsForward','$input','Invalid','selected','function','already\x20fetched','/opcua-endpoint2','hasClass','click','removeClass','apply','VariableType','pageY','ns=0;i=61','loading','$tree','suppressed','message','flagEditor','nodeBrowser','children','statusCode','trigger','name','Method','currentParent','each','reference','target','Variable','</li>','push','referenceTypeId','ns=0;i=34','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','browseName','HasTypeDefinition','input-group','i=31','<div\x20class=\x22custom-select\x22></div>','stringify','DodgerBlue','nodeClass','DisplayName','status','$toggleTreeBtn','ns=0;i=47','SteelBlue','nodeId','baseUrl','verify','text','<span\x20class=\x22custom-checkbox\x22></span>','insertAfter','DarkOrange','find','BrowseName','1204575ajwhrn','ns=0;i=85','95dxDmYi','map','4923654VRkcXb','Both','toggleClass','fa-question','HasChild','Objects','inputs','placeholder','top','split','already\x20loading','log','fetched','next','element','fa-folder','trim','$info','endpoint','value','Unspecified','reset','Organizes','namesToBits','val','\x22\x20style=\x22color:','Forward','Object','options','empty','application/json','$verifyBtn','registerType','rgba(61,\x2060,\x204,\x200.525)','ns=0;i=45','442607ZwxNes','expandable\x20expanded','offset','attr','error','statusText','ns=0;i=40','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','sterfive.nodeBrowser','OPCUA\x20Browse','remove','displayName','#node-input-nodeId','then','fa-sliders','65204OOQBJX','Unknown\x20bit\x20name','browseResult','HasComponent','expanded','<div\x20class=\x22custom-option\x22\x20data-value=\x22','pageX','expandable','$dropdown','fetching\x20failed\x20with\x20error','Inverse','POST','length','opcua','sterfive-dropdown','!!failure!!','sterfive-combo-box','NodeClass','resolveParentNode','join','number','show','SandyBrown','Good','toString','$combo','parentNode','<div\x20class=\x22spinner\x22></div>','TypeDefinition','1635152ArFcUK','sterfive-info','toggle','DataType','i=61','OpcUa-Client2-Browse','hide','$inputGroup','\x20Fetching\x20done','<div/>','HasProperty','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','988808JFEvBp','addClass','References','HasSubtype','typeDefinition','SuppressedError','<li><i\x20class=\x22fa\x20','ReferenceType\x20|\x20BrowseName\x20|\x20TypeDefinition\x20|\x20DisplayName\x20|\x20NodeClass\x20|\x20IsForward','../../icons/opcuanodeLogo.png','assign','ObjectType','match','data','.custom-option','endpointNode'];_0x221a=function(){return _0x4f97ac;};return _0x221a();}
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgxZWViM2MiLCJfMHg1NmVkNWMiLCJfMHgyOWU5MzAiLCJfMHg0NTg0MWMiLCJfMHg1ZWY1YzMiLCJfMHgxN2I5NmIiLCJfMHgzOWMwMjQiLCJfMHg3NjYxNjQiLCJQcm9taXNlIiwiXzB4MzcxNmNiIiwiXzB4NDEwZjZhIiwiXzB4NWMxNjIzIiwiXzB4MTJiMTU3IiwiXzB4MTliOTVjIiwiXzB4Mzc2NzczIiwiXzB4MTkzODllIiwiXzB4NDlmMjczIiwiXzB4MmY3YTc3IiwiXzB4MTA5YWY2IiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4MzRmMmY1IiwiXzB4M2JkNjlkIiwiXzB4NDk1MjYyIiwiXzB4NWIwMTEyIiwiRXJyb3IiLCJfMHgzNjAyYjUiLCJfMHg1ZDZkYjIiLCJfMHgxMzZlZDEiLCJfMHgyYWFhMWEiLCJfMHgyOWYzN2EiLCJfMHgzNWQ4NTUiLCJfMHg1M2FkM2YiLCJfMHg2NDY1ZTkiLCJfMHgzNTEyZDciLCJfMHgxZWJjNTIiLCJfMHgzNDZlZjgiLCJfMHg0Y2NkNDIiLCJfMHg0YmYwMDQiLCJfMHgyNTgzNTIiLCJfMHgzMzBlNDgiLCJfMHg1Yjc2YTYiLCJfMHgzYTk4MmQiLCJwYXJzZUludCIsImlzTmFOIiwiXzB4NDgyNGQzIiwiXzB4NGUzZTA5IiwiXzB4NTU5MmYxIiwiXzB4NGU2NzFmIiwiXzB4Mjg5ZTc4IiwiXzB4NTM2YWI1IiwiXzB4MWZiZDFkIiwiXzB4NDdlNWUzIiwiXzB4MjBhZDAzIiwiXzB4MTM5M2RjIiwiT2JqZWN0IiwiXzB4NDIwNjZkIiwiXzB4YmYwZmQ5IiwiXzB4ZmZiZTlhIiwiXzB4MTJkMTdiIiwiXzB4NDg0MzBkIiwiXzB4MjYyYmFjIiwiXzB4MzBiNDgyIiwiZW5kcG9pbnROb2RlIiwiXzB4MWYxMThlIiwiZW5kcG9pbnQiLCJfMHgxNmM1NzkiLCJiYXNlVXJsIiwiXzB4N2I4NTIwIiwiXzB4NGJjZjJiIiwiXzB4NWNlMDE0IiwiXzB4MTAzZTIzIiwiXzB4MmRmOGQ1IiwiXzB4MWMwMTI0IiwiXzB4M2MwMTc1IiwiZmV0Y2giLCJKU09OIiwiY29uc29sZSIsIl8weDI2MmFlOSIsIl8weDQwNWJiMCIsIl8weDQyMzI3YyIsIl8weDQ4NmVhMiIsIl8weDU0ZjNjNCIsIl8weDZjMzk3MSIsIl8weDU2MDdmYSIsIl8weDMzYTUxNCIsIl8weDFiOWI2ZiIsIl8weGQ2N2YxZCIsIl8weDE0MTJjYiIsIl8weDM0ZTNlNiIsIl8weDQ1NmM2YyIsIl8weDM3NGMyMiIsIl8weDIwYzFiMSIsIl8weDUwZjE4ZiIsInNldFRpbWVvdXQiLCJfMHgzMmI3M2IiLCJfMHgzNGVjMzgiLCJfMHg1NWI3Y2UiLCJfMHhiZjYxYzAiLCJfMHg1MTYzMWIiLCJfMHgzODlkZTUiLCJfMHgzYWVjYjMiLCJfMHgyMjMwNTkiLCJfMHg1NzIzMjQiLCJfMHg0M2YzYjkiLCJfMHg1ZDNmODEiLCJfMHgzM2Q1MDQiLCJfMHgzYjYyNzMiLCJfMHgxNGZhOTQiLCJfMHg1NTY0ZDQiLCJfMHg0YTE0MjAiLCJfMHg1NDc5ZDAiLCJfMHg1MTkyMWUiLCIkIiwiXzB4NDc1MDhmIiwiXzB4Mjk2MDkzIiwiaWNvbiIsIl8weDQ1ZWQ0MCIsImNvbG9yIiwiXzB4NGFiNDY1IiwiXzB4NGM0ZTZhIiwiXzB4NGQ4MmZiIiwidW5kZWZpbmVkIiwiXzB4MzkzMTYxIiwiXzB4NDlkN2EwIiwiXzB4MTNiZmM0IiwiXzB4MTk0MTJlIiwiXzB4MTRlYjI4IiwiXzB4NTg4OTYwIiwiXzB4MzU0NTVhIiwiXzB4MTc0ZjkzIiwiXzB4ODZlNWQiLCJfMHgzOGZmOGUiLCJfMHg0N2I3ZjgiLCJfMHgxNGVmZmQiLCJyZWZlcmVuY2VzIiwiXzB4NTk1NGVlIiwiXzB4MzIyNzRjIiwiXzB4NWQ5M2IxIiwiXzB4ZDhiYzEyIiwiXzB4M2E4NDA5IiwiXzB4NDE2ZjE4IiwiXzB4NTJkMzYwIiwiXzB4MjZjNTNmIiwiXzB4NTFhOWMwIiwiXzB4NWE1ZTZjIiwiXzB4MjRkMGY2IiwiXzB4NDhhOTQzIiwiXzB4OTgyZjEiLCJfMHg1ZWMyMmEiLCJfMHg1NWE5NDkiLCJfMHgxMzc2ZTMiLCJfMHhkYjcyMGYiLCJfMHgzZWVjZTciLCJfMHgzOGVhN2EiLCJfMHgyOTM0OWUiLCJfMHgzM2I1NjMiLCJkb2N1bWVudCIsIl8weDgzM2FhMiIsIl8weDNhYzI3OSIsIl8weDU0NTc5OCIsIl8weDVjMTkzOCIsIl8weDJiNDQwOSIsIl8weDI5YjlhZiIsIl8weGM4OTQzOSIsIl8weDU2ZGNlNyIsIl8weDVkNDQwNiIsIl8weGNjNDg1MSIsIl8weDdjZGJiYyIsIl8weDE3YWQyMiIsIl8weDMzOTc2YSIsIl8weDE1MTEzYiIsIl8weDRiYjVhNyIsIl8weDI1MzFhNCIsIl8weDkzZmZjNyIsIl8weDQwY2MwYSIsIlJFRCIsIl8weDdmMTcxZiIsIl8weDU3ZGEwMiIsIl8weGE1OThkOSIsIl8weDE2MDljYSIsIl8weGFhMmQ4OCIsIl8weDQxYTUwYiIsIl8weDU1ODQzOSIsIl8weDM3Y2VkMCJdLCJtYXBwaW5ncyI6Imd1QkFBQSxDQUFDLFUsQ0FDRyxhLHdCQW1CQSxTQUFTQSxTQUFULENBQW1CQyxTQUFuQixDQUE0QkMsU0FBNUIsQ0FBd0NDLFNBQXhDLENBQTJDQyxTQUEzQyxDLENBQ0ksU0FBU0MsU0FBVCxDQUFlQyxTQUFmLEMsUUFBK0JBLFNBQUEsWUFBaUJILFNBQWpCLENBQXFCRyxTQUFyQixDQUE2QixJQUFJSCxTQUFKLENBQU0sU0FBVUksU0FBVixDLENBQXFCQSxTQUFBLENBQVFELFNBQVIsQyxFQUEzQixDLFNBQ3JELEdBQUssQ0FBQUgsU0FBQSxFQUFNLENBQUFBLFNBQUEsQ0FBSUssT0FBSixDQUFOLENBQUwsQ0FBeUIsU0FBVUMsU0FBVixDQUFtQkMsU0FBbkIsQyx5QkFDNUIsU0FBU0MsU0FBVCxDQUFtQkMsU0FBbkIsQyx5QkFBNEIsRyxDQUFNQyxTQUFBLENBQUtULFNBQUEsQyxnQkFBQSxFQUFlUSxTQUFmLENBQUwsQyxFQUErQixNQUFPRSxTQUFQLEMsQ0FBWUosU0FBQSxDQUFPSSxTQUFQLEMsR0FDN0UsU0FBU0MsU0FBVCxDQUFrQkMsU0FBbEIsQyxDQUEyQixHLENBQU1ILFNBQUEsQ0FBS1QsU0FBQSxDLE9BQUEsRUFBbUJZLFNBQW5CLENBQUwsQyxFQUFtQyxNQUFPQyxTQUFQLEMsQ0FBWVAsU0FBQSxDQUFPTyxTQUFQLEMsR0FDaEYsU0FBU0osU0FBVCxDQUFjSyxTQUFkLEMseUJBQXdCQSxTQUFBLEMsZ0JBQUEsRUFBY1QsU0FBQSxDQUFRUyxTQUFBLEMsZ0JBQUEsQ0FBUixDQUFkLENBQXNDYixTQUFBLENBQU1hLFNBQUEsQyxnQkFBQSxDQUFOLEUsZ0JBQUEsRUFBeUJQLFNBQXpCLENBQW9DSSxTQUFwQyxDLEVBQzlERixTQUFBLENBQU0sQ0FBQVQsU0FBQSxDQUFZQSxTQUFBLEMsZ0JBQUEsRUFBZ0JILFNBQWhCLENBQXlCQyxTQUFBLEVBQWMsRUFBdkMsQ0FBWixDQUFELEMsZ0JBQUEsR0FBTCxDLEVBSkcsQyxFQVFYLE9BQU9pQixlQUFQLEcsZ0JBQUEsQ0FBd0NBLGVBQXhDLENBQTBELFNBQVVDLFNBQVYsQ0FBaUJDLFNBQWpCLENBQTZCQyxTQUE3QixDLDJCQUN0RCxJQUFJQyxTQUFBLENBQUksSUFBSUMsS0FBSixDQUFVRixTQUFWLENBQVIsQyxPQUNPQyxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUE0QkEsU0FBQSxDLGdCQUFBLEVBQVVILFNBQXRDLENBQTZDRyxTQUFBLEMsZ0JBQUEsRUFBZUYsU0FBNUQsQ0FBd0VFLFMsRUFGbkYsQ0FLQSxNQUFNRSxTQUFBLEMsV0FBTixDQUNNQyxTQUFBLEMsZ0JBRE4sQ0FFTUMsU0FBQSxDLGdCQUZOLENBR01DLFNBQUEsQyxXQUhOLENBSU1DLFNBQUEsQyxnQkFKTixDQUtNQyxTQUFBLEMsZ0JBTE4sQ0FNTUMsU0FBQSxDLGdCQU5OLENBUUEsSUFBSUMsU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDJCQUNHQSxTQUFBLENBQWdCQSxTQUFBLEMsU0FBQSxFLEdBQWhCLEUsVUFDQUEsU0FBQSxDQUFnQkEsU0FBQSxDLFNBQUEsRSxHQUFoQixFLGlCQUNBQSxTQUFBLENBQWdCQSxTQUFBLEMsTUFBQSxFLEdBQWhCLEUsaUJBQ0FBLFNBQUEsQ0FBZ0JBLFNBQUEsQyxnQkFBQSxFLEdBQWhCLEUsa0JBSkosQ0FLR0QsU0FBQSxFQUFvQixDQUFBQSxTQUFBLENBQWtCLEVBQWxCLENBTHZCLEdBTUEsSUFBSUUsU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDJCQUNHQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLEdBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxHQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLFVBQUEsRSxHQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLFFBQUEsRSxHQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsR0FBVixFLGFBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsSUFBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLElBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxJQUFWLEUsV0FDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxJQUFWLEUsa0JBVEosQ0FVR0QsU0FBQSxFQUFjLENBQUFBLFNBQUEsQ0FBWSxFQUFaLENBVmpCLEdBV0EsSUFBSUUsU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDJCQUNHQSxTQUFBLENBQWNBLFNBQUEsQyxRQUFBLEUsR0FBZCxFLGlCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLEdBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxHQUFkLEUsU0FDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxHQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGNBQUEsRSxJQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsSUFBZCxFLGdCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxVQUFBLEUsSUFBZCxFLGlCQUNBQSxTQUFBLENBQWNBLFNBQUEs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Q0FRTUMsU0FBQSxDQUFtQnRFLENBQUEsQyxnQkFBQSxDQVJ6QixDQVNBc0UsU0FBQSxDLGFBQUEsRUFBNkIsQyxZQUN6QixDQUFZLElBQU1ELFNBRE8sQyxjQUV6QixDQUFhRSxTQUFiLEMsa0NBQ1dBLFNBQUEsQyxnQkFBQSxJLGtCQUhjLEMsV0FLekIsQyxJQUx5QixDQUE3QixDLEVBekV1QyxDLFlBaUYzQyxFLEVBakYyQyxDQUEvQyxDLEVBN2tCSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgY29uc3QgT3JnYW5pemVzUmVmTm9kZUlkID0gXCJucz0wO2k9MzVcIjtcbiAgICBjb25zdCBGb2xkZXJUeXBlID0gXCJucz0wO2k9NjFcIjtcbiAgICBjb25zdCBIYXNDb21wb25lbnRSZWZOb2RlSWQgPSBcIm5zPTA7aT00N1wiO1xuICAgIGNvbnN0IEhhc1Byb3BlcnR5UmVmTm9kZUlkID0gXCJucz0wO2k9NDZcIjtcbiAgICBjb25zdCBIYXNDaGlsZFJlZk5vZGVJZCA9IFwibnM9MDtpPTM0XCI7XG4gICAgY29uc3QgSGFzU3VidHlwZVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ1XCI7XG4gICAgY29uc3QgSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQgPSBcIm5zPTA7aT00MFwiO1xuXG4gICAgdmFyIEJyb3dzZURpcmVjdGlvbjtcbiAgICAoZnVuY3Rpb24gKEJyb3dzZURpcmVjdGlvbikge1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiRm9yd2FyZFwiXSA9IDBdID0gXCJGb3J3YXJkXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZlcnNlXCJdID0gMV0gPSBcIkludmVyc2VcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkJvdGhcIl0gPSAyXSA9IFwiQm90aFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52YWxpZFwiXSA9IDNdID0gXCJJbnZhbGlkXCI7XG4gICAgfSkoQnJvd3NlRGlyZWN0aW9uIHx8IChCcm93c2VEaXJlY3Rpb24gPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3M7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlVuc3BlY2lmaWVkXCJdID0gMF0gPSBcIlVuc3BlY2lmaWVkXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzcyB8fCAoTm9kZUNsYXNzID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzTWFzaztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzc01hc2spIHtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzc01hc2sgfHwgKE5vZGVDbGFzc01hc2sgPSB7fSkpO1xuICAgIGZ1bmN0aW9uIGNvZXJjZUZsYWdNYXNrVG9OdW1iZXIodHlwZSwgc3RyKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc3RyID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0ckFzTnVtID0gcGFyc2VJbnQoc3RyLCAxMCk7XG4gICAgICAgIGlmICghaXNOYU4oc3RyQXNOdW0pKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyQXNOdW07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmxhZ3MgPSBzdHIuc3BsaXQoL1xcfHw7fCwvKS5tYXAoKGEpID0+IGEudHJpbSgpKTtcbiAgICAgICAgbGV0IHJlc3VsdCA9IDA7XG4gICAgICAgIGZvciAoY29uc3QgZmxhZyBvZiBmbGFncykge1xuICAgICAgICAgICAgcmVzdWx0IHw9IHR5cGVbZmxhZ107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29lcmNlRmxhZ01hc2tUb1N0cmluZyh0eXBlLCB2YWx1ZSkge1xuICAgICAgICB2YWx1ZSA9IGNvZXJjZUZsYWdNYXNrVG9OdW1iZXIodHlwZSwgdmFsdWUpO1xuICAgICAgICBjb25zdCByID0gW107XG4gICAgICAgIGlmICghdHlwZSlcbiAgICAgICAgICAgIHJldHVybiByLmpvaW4oXCIgfCBcIik7XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgYml0TWFza10gb2YgT2JqZWN0LmVudHJpZXModHlwZSkpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoKHZhbHVlICYgYml0TWFzaykgPT09IGJpdE1hc2spIHtcbiAgICAgICAgICAgICAgICAgICAgci5wdXNoKGtleSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByLmpvaW4oXCIgfCBcIik7XG4gICAgfVxuICAgIHZhciBSZXN1bHRNYXNrO1xuICAgIChmdW5jdGlvbiAoUmVzdWx0TWFzaykge1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMV0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiSXNGb3J3YXJkXCJdID0gMl0gPSBcIklzRm9yd2FyZFwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJOb2RlQ2xhc3NcIl0gPSA0XSA9IFwiTm9kZUNsYXNzXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkJyb3dzZU5hbWVcIl0gPSA4XSA9IFwiQnJvd3NlTmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJEaXNwbGF5TmFtZVwiXSA9IDE2XSA9IFwiRGlzcGxheU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiVHlwZURlZmluaXRpb25cIl0gPSAzMl0gPSBcIlR5cGVEZWZpbml0aW9uXCI7XG4gICAgfSkoUmVzdWx0TWFzayB8fCAoUmVzdWx0TWFzayA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZ2FuaXplc1JlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNQcm9wZXJ0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNQcm9wZXJ0eVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ29tcG9uZW50UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NoaWxkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NoaWxkUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1N1YnR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzU3VidHlwZVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNUeXBlRGVmaW5pdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldEljb24gPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVmZXJlbmNlLm5vZGVDbGFzcykge1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBPcmdhbml6ZXNSZWZOb2RlSWQpIDtcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnR5cGVEZWZpbml0aW9uID09PSBGb2xkZXJUeXBlIHx8IHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IFwiaT02MVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtZm9sZGVyXCIsIGNvbG9yOiBcInJnYmEoNjEsIDYwLCA0LCAwLjUyNSlcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJTZWFHcmVlblwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzQ29tcG9uZW50UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiU3RlZWxCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzUHJvcGVydHlSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJEb2RnZXJCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiTWV0aG9kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1jb2dcIiwgY29sb3I6IFwiU2FuZHlCcm93blwiIH07XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0VHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtc2xpZGVyc1wiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCwgdGVtcGxhdGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vYnJvd3NlYDtcbiAgICAgICAgY29uc3QgYnJvd3NlRGVzY3JpcHRpb24gPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRlbXBsYXRlKSwgeyBub2RlSWQsIHJlc3VsdE1hc2s6IDYzIH0pO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBicm93c2VEZXNjcmlwdGlvbixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzOiBbXSB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgJGlucHV0RWxlbWVudCwgJGluZm8pID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKGAke3Jvb3R9L2NoZWNrTm9kZUlkYCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgbm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChqc29uLm5vZGVBZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7bm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50ID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAoIXJlZmVyZW5jZSkge1xuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSBmYS1lcnJvclwiIHN0eWxlPVwiY29sb3I6cmVkO1wiPjwvaT5ubyByZWZlcmVuY2UgITx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbiA9IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgdCA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHsgaWNvbiwgY29sb3IgfSA9IGdldEljb24ocmVmZXJlbmNlKTtcbiAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+ICR7dH08dWw+PC91bD48L2xpPmApO1xuICAgICAgICAkZWxlbWVudC5hZGRDbGFzcyhcImV4cGFuZGFibGVcIik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJ2YWx1ZVwiLCBuKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgfTtcbiAgICBjb25zdCBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBbIFRlbXBlcmF0dXJlICBdXG4gICAgICAgICAqICAgKCB0b29sdGlwIDogKC9PYmplY3RzL015U2Vuc29yKSAobnM9MTtzPVRlbXBlcmF0dXJlKSlcbiAgICAgICAgICogWyArIFtGb2xkZXJdIE9iamVjdHNdXG4gICAgICAgICAqIFsgICAgIFtPYmplY3RdIE15U2Vuc29yXVxuICAgICAgICAgKiBbICAgICAoICkgW1ZhcmlhYmxlXSBUZW1wZXJhdHVyZV1cbiAgICAgICAgICovXG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUubm9kZUJyb3dzZXJcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZTogKCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgbm9kZUNsYXNzOiBcIk9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBub2RlSWQ6IFwibnM9MDtpPTg1XCIsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIHR5cGVEZWZpbml0aW9uOiBGb2xkZXJUeXBlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgICAgIGlzVHlwZVJlZjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzb2x2ZVBhcmVudE5vZGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0eXBlb2YgdGhhdC5vcHRpb25zLnBhcmVudE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geWllbGQgYTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNldCgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNvbHZlUGFyZW50Tm9kZSgpLnRoZW4oKHBhcmVudE5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChwYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LmN1cnJlbnRQYXJlbnQgPSBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZlcmlmeSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGludGVybmFsVmVyaWZ5KGRhdGEsIHRoYXQuJGlucHV0LCB0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIF9mZXRjaERhdGFGb3JOb2RlKCRub2RlLCBmZXRjaEZ1bmMsIGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJsb2FkaW5nXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYXBwZW5kKCc8ZGl2IGNsYXNzPVwic3Bpbm5lclwiPjwvZGl2PicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyByZWZlcmVuY2VzIH0gPSB5aWVsZCBmZXRjaEZ1bmMoJG5vZGUsIGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5maWx0ZXIgJiYgIXRoYXQub3B0aW9ucy5maWx0ZXIocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5yZXBsYWNlV2l0aCh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cCA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJpbnB1dC1ncm91cFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5wdXRHcm91cCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kaW5wdXQpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtc2l0ZW1hcFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyZWUgd2lkZ2V0IGlzIGdvaW5nIHRvIGJlY29tZSB2aXNpYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc29sdmVQYXJlbnROb2RlKCkudGhlbigocGFyZW50Tm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAhPT0gdGhhdC5jdXJyZW50UGFyZW50IHx8ICgoX2EgPSB0aGF0LmN1cnJlbnRQYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ub2RlSWQpICE9PSBwYXJlbnROb2RlLm5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZmxhc2tcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdmVyaWZ5QnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApLmFwcGVuZFRvKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkKHRoaXMpLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnBhZ2VYID49IGVsZW1lbnRQb3MubGVmdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWCA8PSBlbGVtZW50UG9zLmxlZnQgKyBiZWZvcmVXaWR0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA+PSBlbGVtZW50UG9zLnRvcCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA8PSBlbGVtZW50UG9zLnRvcCArIGJlZm9yZUhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmID0gIXRoYXQub3B0aW9ucy5pc1R5cGVSZWYgPyBmZXRjaENoaWxkcmVuIDogZmV0Y2hTdWJ0eXBlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZmV0Y2hEYXRhRm9yTm9kZSgkbGksIGYsIGRhdGEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIgRmV0Y2hpbmcgZG9uZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAkbGkuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gJGxpLmRhdGEoXCJyZWZlcmVuY2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZSAmJiAhdGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZShyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXQgPSBgWyR7ZGlzcGxheU5hbWV9XSgke3ZhbHVlfSlgO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudmFsKGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBjbGlja2luZyBvdXRzaWRlIHRoZSBwYWdlIHdpbGwgaGlkZSB0aGUgZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCh0aGF0LiRjb21ibykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBkZWNsYXJlRmxhZ0VkaXRvcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5mbGFnRWRpdG9yXCIsIHtcbiAgICAgICAgICAgIC8vIGRlZmF1bHQgb3B0aW9uc1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIG5hbWVzVG9CaXRzOiB7XG4gICAgICAgICAgICAgICAgLy8gQWRkIG1vcmUgbmFtZXMgYW5kIGJpdCB2YWx1ZXNcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHZhbHVlOiAwLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gQ3VzdG9tIERyb3Bkb3duXG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFswXS5wYXJlbnRFbGVtZW50LnJlcGxhY2VDaGlsZCh0aGF0LiRjb21ib1swXSwgdGhpcy5lbGVtZW50WzBdKTtcbiAgICAgICAgICAgICAgICAvLyB0aGlzLmVsZW1lbnQucmVwbGFjZVdpdGgodGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAgPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwiaW5wdXQtZ3JvdXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGlucHV0R3JvdXApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJGlucHV0KTtcbiAgICAgICAgICAgICAgICAvLyB0aGUgdG9nZ2xlIHRyZWUgYnV0dG9uOlxuICAgICAgICAgICAgICAgIC8vICAgd2hlbiB3ZSBjbGljayBpdCB0aGUgZHJvcCBkb3duIHBhbmVsIGlzIGRpc3BsYXllZFxuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZXllXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdC4kc2VsZWN0LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVGcm9tSW5wdXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmZpbmQoXCIuY3VzdG9tLW9wdGlvblwiKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgb3B0aW9uTmFtZSA9ICQodGhpcykudGV4dCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJpdFZhbHVlID0gdGhhdC5vcHRpb25zLm5hbWVzVG9CaXRzW29wdGlvbk5hbWVdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChiaXRWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVua25vd24gYml0IG5hbWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgodGhhdC5vcHRpb25zLnZhbHVlICYgYml0VmFsdWUpID09PSBiaXRWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmFkZENsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLnJlbW92ZUNsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBVcGRhdGUgdGhlIGhpZGRlbiBzZWxlY3QgZWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC51cGRhdGVWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8gdGhlIGRyb3AgZG93biBwYW5lbFxuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJCgnPGRpdiBjbGFzcz1cImN1c3RvbS1zZWxlY3RcIj48L2Rpdj4nKS5oaWRlKCkuaW5zZXJ0QWZ0ZXIodGhpcy5lbGVtZW50KTtcbiAgICAgICAgICAgICAgICAkLmVhY2godGhpcy5vcHRpb25zLm5hbWVzVG9CaXRzLCBmdW5jdGlvbiAobmFtZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkb3B0aW9uID0gJCgnPGRpdiBjbGFzcz1cImN1c3RvbS1vcHRpb25cIiBkYXRhLXZhbHVlPVwiJyArXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lICtcbiAgICAgICAgICAgICAgICAgICAgICAgICdcIj4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICc8c3BhbiBjbGFzcz1cImN1c3RvbS1jaGVja2JveFwiPjwvc3Bhbj4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgK1xuICAgICAgICAgICAgICAgICAgICAgICAgXCI8L2Rpdj5cIik7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmFwcGVuZCgkb3B0aW9uKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvLyB3aGVuIGEgb3B0aW9ucyBpbiB0aGUgZHJvcCBkb3duIHBhbmVsIGlzIGNsaWNrZWQsXG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24ub24oXCJjbGlja1wiLCBcIi5jdXN0b20tb3B0aW9uXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS50b2dnbGVDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICQodGhpcykuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5oYXNDbGFzcyhcInNlbGVjdGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRCaXQodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdW5zZXRCaXQodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoYXQudXBkYXRlVmFsdWUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHVwZGF0ZUZyb21JbnB1dCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmVsZW1lbnQudmFsKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQub3B0aW9ucy52YWx1ZSA9IGNvZXJjZUZsYWdNYXNrVG9OdW1iZXIodGhhdC5vcHRpb25zLm5hbWVzVG9CaXRzLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBzZXRCaXQgPSAoYml0TmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiaXQgPSB0aGF0Lm9wdGlvbnMubmFtZXNUb0JpdHNbYml0TmFtZV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChiaXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBiaXQgbmFtZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMudmFsdWUgfD0gYml0O1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgdW5zZXRCaXQgPSAoYml0TmFtZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiaXQgPSB0aGF0Lm9wdGlvbnMubmFtZXNUb0JpdHNbYml0TmFtZV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChiaXQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5rbm93biBiaXQgbmFtZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnMudmFsdWUgJj0gfmJpdDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnZhbChjb2VyY2VGbGFnTWFza1RvU3RyaW5nKHRoYXQub3B0aW9ucy5uYW1lc1RvQml0cywgdGhpcy5vcHRpb25zLnZhbHVlKSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB1cGRhdGVGcm9tSW5wdXQoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB1cGRhdGVWYWx1ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQudmFsKGNvZXJjZUZsYWdNYXNrVG9TdHJpbmcodGhhdC5vcHRpb25zLm5hbWVzVG9CaXRzLCB0aGlzLm9wdGlvbnMudmFsdWUpKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfZGVzdHJveSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5yZW1vdmUoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBSRUQubm9kZXMucmVnaXN0ZXJUeXBlKFwiT3BjVWEtQ2xpZW50Mi1Ccm93c2VcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJvcGN1YVwiLFxuICAgICAgICBjb2xvcjogXCIjQzBERUVEXCIsXG4gICAgICAgIGFsaWduOiBcInJpZ2h0XCIsXG4gICAgICAgIGljb246IFwiLi4vLi4vaWNvbnMvb3BjdWFub2RlTG9nby5wbmdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcImJyb3dzZVwiLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgaW5wdXRzOiB7IHZhbHVlOiAxIH0sXG4gICAgICAgICAgICBvdXRwdXQ6IHsgdmFsdWU6IDQgfSxcbiAgICAgICAgICAgIC8vIENvbW1vblxuICAgICAgICAgICAgbmFtZTogeyB2YWx1ZTogXCJcIiB9LFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlLCB0eXBlOiBcIk9wY1VhLUVuZHBvaW50MlwiIH0sXG4gICAgICAgICAgICAvLyBmb3IgYWN0aW9uIHJlYWRcbiAgICAgICAgICAgIG5vZGVJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHsgdmFsdWU6IFwiSGFzQ2hpbGRcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHsgdmFsdWU6IGZhbHNlLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiB7IHZhbHVlOiBcIkZvcndhcmRcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIG5vZGVDbGFzc01hc2s6IHsgdmFsdWU6IFwiVmFyaWFibGUgfCBPYmplY3QgfCBNZXRob2QgfCBPYmplY3RUeXBlIHwgVmFyaWFibGVUeXBlXCIsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgcmVzdWx0TWFzazogeyB2YWx1ZTogXCJSZWZlcmVuY2VUeXBlIHwgQnJvd3NlTmFtZSB8IFR5cGVEZWZpbml0aW9uIHwgRGlzcGxheU5hbWUgfCBOb2RlQ2xhc3MgfCBJc0ZvcndhcmRcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG91dHB1dHM6IDEsXG4gICAgICAgIGxhYmVsKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSB8fCBcIk9QQ1VBIEJyb3dzZVwiO1xuICAgICAgICB9LFxuICAgICAgICBsYWJlbFN0eWxlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSA/IFwibm9kZV9sYWJlbF9pdGFsaWNcIiA6IFwiXCI7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHByZXBhcmUoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcztcbiAgICAgICAgICAgIGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCgpO1xuICAgICAgICAgICAgZGVjbGFyZUZsYWdFZGl0b3JXaWRnZXQoKTtcbiAgICAgICAgICAgIG5vZGUuaW5wdXRzID0gMTtcbiAgICAgICAgICAgIGNvbnN0ICRub2RlQ2xhc3NNYXNrID0gJChcIiNub2RlLWlucHV0LW5vZGVDbGFzc01hc2tcIik7XG4gICAgICAgICAgICAkbm9kZUNsYXNzTWFzay5mbGFnRWRpdG9yKHtcbiAgICAgICAgICAgICAgICBuYW1lc1RvQml0czoge1xuICAgICAgICAgICAgICAgICAgICBPYmplY3Q6IDEsXG4gICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlOiAyLFxuICAgICAgICAgICAgICAgICAgICBNZXRob2Q6IDQsXG4gICAgICAgICAgICAgICAgICAgIE9iamVjdFR5cGU6IDgsXG4gICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlVHlwZTogMTYsXG4gICAgICAgICAgICAgICAgICAgIFJlZmVyZW5jZVR5cGU6IDMyLFxuICAgICAgICAgICAgICAgICAgICBEYXRhVHlwZTogNjQsXG4gICAgICAgICAgICAgICAgICAgIFZpZXc6IDEyOCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHZhbHVlOiAwLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCAkcmVzdWx0TWFzayA9ICQoXCIjbm9kZS1pbnB1dC1yZXN1bHRNYXNrXCIpO1xuICAgICAgICAgICAgJHJlc3VsdE1hc2suZmxhZ0VkaXRvcih7XG4gICAgICAgICAgICAgICAgbmFtZXNUb0JpdHM6IHtcbiAgICAgICAgICAgICAgICAgICAgUmVmZXJlbmNlVHlwZTogMSxcbiAgICAgICAgICAgICAgICAgICAgSXNGb3J3YXJkOiAyLFxuICAgICAgICAgICAgICAgICAgICBOb2RlQ2xhc3M6IDQsXG4gICAgICAgICAgICAgICAgICAgIEJyb3dzZU5hbWU6IDgsXG4gICAgICAgICAgICAgICAgICAgIERpc3BsYXlOYW1lOiAxNixcbiAgICAgICAgICAgICAgICAgICAgVHlwZURlZmluaXRpb246IDMyLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdmFsdWU6IDYzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCAkbm9kZUlkID0gJChcIiNub2RlLWlucHV0LW5vZGVJZFwiKTtcbiAgICAgICAgICAgICRub2RlSWQubm9kZUJyb3dzZXIoe1xuICAgICAgICAgICAgICAgIGlzU2VsZWN0YWJsZShub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIlZhcmlhYmxlXCIgfHwgbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZXNOb2RlRGVzYyA9IHtcbiAgICAgICAgICAgICAgICBub2RlSWQ6IFwiaT0zMVwiLFxuICAgICAgICAgICAgICAgIHJlZmVyZW5jZVR5cGVJZDogXCJcIixcbiAgICAgICAgICAgICAgICBicm93c2VOYW1lOiB7IG5hbWVzcGFjZUluZGV4OiAwLCBuYW1lOiBcIlJlZmVyZW5jZXNcIiB9LFxuICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiUmVmZXJlbmNlc1wiIH0sXG4gICAgICAgICAgICAgICAgbm9kZUNsYXNzOiBcIlJlZmVyZW5jZVR5cGVcIixcbiAgICAgICAgICAgICAgICB0eXBlRGVmaW5pdGlvbjogXCJpPTMxXCIsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29uc3QgJHJlZmVyZW5jZVR5cGVJZCA9ICQoXCIjbm9kZS1pbnB1dC1yZWZlcmVuY2VUeXBlSWRcIik7XG4gICAgICAgICAgICAkcmVmZXJlbmNlVHlwZUlkLm5vZGVCcm93c2VyKHtcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlOiAoKSA9PiByZWZlcmVuY2VzTm9kZURlc2MsIC8vIFJlZmVyZW5jZXMsXG4gICAgICAgICAgICAgICAgaXNTZWxlY3RhYmxlKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgaXNUeXBlUmVmOiB0cnVlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHNhdmUoKSB7IH0sXG4gICAgfSk7XG5cbn0pKCk7Il19
|
9
9
|
</script>
|
10
10
|
<script type="text/x-red" data-template-name="OpcUa-Client2-Browse">
|
11
11
|
<style>
|