@opcua/for-node-red 3.8.0 → 3.10.0
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/LICENSE.md +1 -1
- package/all.js +4 -150
- package/config-panel/assets/index-CxGeB_Tt.css +1 -0
- package/config-panel/assets/index-DgIjB-ey.js +49 -0
- package/config-panel/index.html +5 -3
- package/examples/coffee-machine-2.json +3393 -0
- package/examples/svg_watertank.html +17 -0
- package/examples/tank.jsx +33 -0
- package/package.json +2 -1
- package/source/OpcUa-Client2-Browse/OpcUa-Client2-Browse.html +3 -4
- package/source/OpcUa-Client2-Call/OpcUa-Client2-Call.html +7 -2
- package/source/OpcUa-Client2-Explore/OpcUa-Client2-Explore.html +1 -2
- package/source/OpcUa-Client2-ExtensionObject/OpcUa-Client2-ExtensionObject.html +1 -2
- package/source/OpcUa-Client2-FileOperation/OpcUa-Client2-FileOperation.css +2 -0
- package/source/OpcUa-Client2-FileOperation/OpcUa-Client2-FileOperation.html +75 -0
- package/source/OpcUa-Client2-FileOperation/OpcUa-Client2-FileOperation.js +2 -0
- package/source/OpcUa-Client2-HistoryRead/OpcUa-Client2-HistoryRead.html +1 -2
- package/source/OpcUa-Client2-Monitor/OpcUa-Client2-Monitor.html +1 -2
- package/source/OpcUa-Client2-MonitorEvent/OpcUa-Client2-MonitorEvent.html +1 -2
- package/source/OpcUa-Client2-Read/OpcUa-Client2-Read.html +1 -2
- package/source/OpcUa-Client2-Write/OpcUa-Client2-Write.html +1 -2
- package/source/OpcUa-Endpoint2/OpcUa-Endpoint2.html +1 -2
- package/config-panel/assets/index-DDkINW5U.js +0 -49
- package/config-panel/assets/index-DayGs2U8.css +0 -1
@@ -4,8 +4,7 @@
|
|
4
4
|
</style>
|
5
5
|
|
6
6
|
<script type="text/javascript">
|
7
|
-
function _0x233a(_0x3b2c5c,_0x483a54){const _0x113328=_0x1133();return _0x233a=function(_0x233a29,_0x384351){_0x233a29=_0x233a29-0x193;let _0x188488=_0x113328[_0x233a29];return _0x188488;},_0x233a(_0x3b2c5c,_0x483a54);}function _0x1133(){const _0x21de87=['push','483495djakgv','158340WMDEwD','ns=0;i=34',':first','aliasedNodeId','i=61','mousedown.red-ui-typedInput-close-property-select','change','throw','requestedNodeId','CadetBlue','$uiSelect','status','fa-question','blur','namespaceAliases','before','hasClass','browseResult','json','baseUrl','height','Aliased\x20Browse\x20Path','_delay','mask-image:\x20url(','expandable','opc.tcp://opcuademo.sterfive.com:26543','ns=0;i=35','[value=\x27','preventDefault','HasProperty','after','options','Both','prev','$inputGroup','VariableType','<input\x20type=\x22checkbox\x22>','red-ui-typedInput-focus','Structure','<div/>','registerType','View','DisplayName','ns=0;i=61','browseName','next','<i\x20class=\x22red-ui-typedInput-icon\x20fa\x20fa-caret-down\x22></i>','Object','fa-list-alt','358983TAEosd','expandable\x20expanded','$info','border','fetching\x20failed\x20with\x20error','<i\x20class=\x22fa\x20fa-id-card\x22/> \x20','mousedown','ns=0;i=45','sterfive-dropdown','_createMenu','setMode','Organizes','$elementDiv','toggleClass','<i\x20class=\x22fa\x20fa-bookmark\x22/><i\x20class=\x22fa\x20fa-fighter-jet\x22/> ','css','pageY','show','off','localeCompare','$verifyBtn','browse\x20path:\x20','dblclick','$menu','nodeBrowser','msg','<span\x20title=','Objects','<iframe></iframe>','OpcUa-Endpoint2','trigger','mode','input[type=\x22checkbox\x22]','sterfive-input-group','<i\x20class=\x22fa\x20fa-bookmark\x22/> \x20','title','red-ui-typedInput-icon\x20','nsu\x20nodeId:\x20','click','prependTo','keydown','$selectTrigger','keyCode','<li>error\x20',':focus','failure','SuppressedError','tabindex','nsuNodeID','sort','DataType','NodeId\x20with\x20namespace\x20Urn','Aliased\x20NodeId','</li>','4296300iUQsXi','resolveParentNode','/browse','fa-object-group',';\x22></i>\x20','bp_aliased','fa-folder','<div\x20class=\x22sterfive-info-text\x22></div>','children','currentParent','val','<a\x20href=\x22#\x22></a>','bp_indexed','OpcUa-Client2-ExtensionObject','ObjectType','nodes','error','/opcua-for-node-red/support-frame.html','sterfive-combo-box','/opcua-for-node-red','closest','_showMenu','TypeDefinition','ReferenceType','offset','focus','OPCUA\x20Client\x20Extension\x20Object','fetched','filter','callback','label',':visible','scrollTop','node_label_italic','sterfive.nodeBrowser','parent','right','opts','endpoint','HasTypeDefinition','180px','$dropdown','selectedMenuItem','Good','__parentNode','HasSubtype','prop','appendTo','pageX','position','extension\x20object','DarkOrange','/walk-backward','message','element','statusCode','name','10OMaPmN','value','expanded','each','red-ui-typedInput-icon','ns=0;i=46','IsForward','POST','Inverse','installFeedbackWidget\x20','apply','aliased\x20NodeId:\x20','hide','background-color:transparent;overflow:hidden;border:3px','ns=0;i=40','none','stringify','aliasedBrowsePath','append','Value\x20is\x20not\x20verified','absolute','li\x20>\x20.tree-text','16px','indexOf','nodeId:\x20','Invalid','references','</span>','err','removeClass','NodeClass','reference','72gRckcX','_hideMenu','already\x20loading','empty','icon','function','length','call','li[key=\x22','../../icons/opcuanodeLogo.png','toggle','done','nodeClass','Variable','i=22','find','_showTypeMenu','!!failure!!','SandyBrown','.spinner','nodeId','opcua','log','forEach','> \x20','already\x20fetched','nodeId_nsu','\x22}><span\x20class=\x22tree-text\x22\x20title=','<button\x20type=\x22button\x22\x20tabindex=\x220\x22></button>','3180472NbqDGr','30px','displayName','><i\x20class=\x22fa\x20','20px','Method','then','10478454KWIIwo','1570657KvTvqu','fa-cog','browsePath','endpointNode','remove','nodeId_aliased','multiple','isSelectable','assign','$toggleTreeBtn','parentNode','target','Forward','sterfive-input-error','match','rgba(61,\x2060,\x204,\x200.525)','SteelBlue','selected','BrowseName','#node-input-endpoint','sterfive-typedInput-options\x20sterfive-online-menu','catch','<div>','text','node\x20id\x20or\x20\x20browse\x20path\x20comes\x20from\x20injected\x20msg\x20parameter','SeaGreen','reset','loading','isTypeRef','top','verify','$selectLabel','$tree','placeholder','$combo','statusText','nsu','<button\x20title=\x22verify\x20nodeId\x20or\x20browsePath\x22><i\x20class=\x22fa\x20fa-refresh\x22></i></button>','.tree-text:first','mousedown.red-ui-typedInput-focus-block','addClass','<i>','data','<div\x20class=\x22spinner\x22></div>','toString','true','stopPropagation','$input','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','Unspecified','disarmClick','referenceTypeId','18px','attr','pointer-events',');\x20-webkit-mask-image:\x20url(','left','slideDown','.red-ui-tray-body'];_0x1133=function(){return _0x21de87;};return _0x1133();}(function(_0x59a61e,_0x117cfb){const _0x2bb263=_0x233a,_0x459f22=_0x59a61e();while(!![]){try{const _0x1b9247=parseInt(_0x2bb263(0x1de))/0x1+-parseInt(_0x2bb263(0x199))/0x2*(parseInt(_0x2bb263(0x21a))/0x3)+-parseInt(_0x2bb263(0x1d6))/0x4+-parseInt(_0x2bb263(0x282))/0x5+parseInt(_0x2bb263(0x21b))/0x6+parseInt(_0x2bb263(0x1dd))/0x7+-parseInt(_0x2bb263(0x1b9))/0x8*(-parseInt(_0x2bb263(0x24c))/0x9);if(_0x1b9247===_0x117cfb)break;else _0x459f22['push'](_0x459f22['shift']());}catch(_0x47c834){_0x459f22['push'](_0x459f22['shift']());}}}(_0x1133,0xf25ed),(function(){'use strict';const _0x5426ac=_0x233a;function _0x42870c(_0x55d385,_0x2bb276,_0x1a10c4,_0x2a44f1){function _0x5a644a(_0x38b518){return _0x38b518 instanceof _0x1a10c4?_0x38b518:new _0x1a10c4(function(_0x566c03){_0x566c03(_0x38b518);});}return new(_0x1a10c4||(_0x1a10c4=Promise))(function(_0x14c865,_0x1d70ec){const _0x30fd1f=_0x233a;function _0x2922de(_0x750998){const _0x549e9e=_0x233a;try{_0x10b8b1(_0x2a44f1[_0x549e9e(0x248)](_0x750998));}catch(_0x2b2284){_0x1d70ec(_0x2b2284);}}function _0x2268a5(_0x4e8672){const _0x8c1d6=_0x233a;try{_0x10b8b1(_0x2a44f1[_0x8c1d6(0x222)](_0x4e8672));}catch(_0x354b1f){_0x1d70ec(_0x354b1f);}}function _0x10b8b1(_0x1ce26d){const _0x5a8894=_0x233a;_0x1ce26d[_0x5a8894(0x1c4)]?_0x14c865(_0x1ce26d[_0x5a8894(0x19a)]):_0x5a644a(_0x1ce26d[_0x5a8894(0x19a)])['then'](_0x2922de,_0x2268a5);}_0x10b8b1((_0x2a44f1=_0x2a44f1[_0x30fd1f(0x1a3)](_0x55d385,_0x2bb276||[]))['next']());});}typeof SuppressedError===_0x5426ac(0x1be)?SuppressedError:function(_0xd52add,_0x4c5824,_0x48215f){const _0x4896d4=_0x5426ac;var _0x4d3d5d=new Error(_0x48215f);return _0x4d3d5d[_0x4896d4(0x198)]=_0x4896d4(0x27a),_0x4d3d5d[_0x4896d4(0x292)]=_0xd52add,_0x4d3d5d['suppressed']=_0x4c5824,_0x4d3d5d;};const _0x56db82=_0x5426ac(0x235),_0x315e3a=_0x5426ac(0x246),_0x34dc9c='ns=0;i=47',_0xc8059f=_0x5426ac(0x19e),_0x562dc3=_0x5426ac(0x21c),_0x29635e=_0x5426ac(0x253),_0x58998a=_0x5426ac(0x1a7);var _0x5a8fe3;(function(_0x4b0542){const _0x2036eb=_0x5426ac;_0x4b0542[_0x4b0542[_0x2036eb(0x1ea)]=0x0]=_0x2036eb(0x1ea),_0x4b0542[_0x4b0542[_0x2036eb(0x1a1)]=0x1]=_0x2036eb(0x1a1),_0x4b0542[_0x4b0542[_0x2036eb(0x23b)]=0x2]=_0x2036eb(0x23b),_0x4b0542[_0x4b0542[_0x2036eb(0x1b2)]=0x3]='Invalid';}(_0x5a8fe3||(_0x5a8fe3={})));var _0x2313ab;(function(_0x17ec0f){const _0x4f1d4b=_0x5426ac;_0x17ec0f[_0x17ec0f[_0x4f1d4b(0x20f)]=0x0]=_0x4f1d4b(0x20f),_0x17ec0f[_0x17ec0f[_0x4f1d4b(0x24a)]=0x1]=_0x4f1d4b(0x24a),_0x17ec0f[_0x17ec0f['Variable']=0x2]=_0x4f1d4b(0x1c6),_0x17ec0f[_0x17ec0f['Method']=0x4]=_0x4f1d4b(0x1db),_0x17ec0f[_0x17ec0f[_0x4f1d4b(0x290)]=0x8]=_0x4f1d4b(0x290),_0x17ec0f[_0x17ec0f[_0x4f1d4b(0x23e)]=0x10]='VariableType',_0x17ec0f[_0x17ec0f[_0x4f1d4b(0x299)]=0x20]='ReferenceType',_0x17ec0f[_0x17ec0f[_0x4f1d4b(0x27e)]=0x40]='DataType',_0x17ec0f[_0x17ec0f[_0x4f1d4b(0x244)]=0x80]=_0x4f1d4b(0x244);}(_0x2313ab||(_0x2313ab={})));var _0x192477;(function(_0x5af783){const _0x557090=_0x5426ac;_0x5af783[_0x5af783['Object']=0x1]='Object',_0x5af783[_0x5af783[_0x557090(0x1c6)]=0x2]=_0x557090(0x1c6),_0x5af783[_0x5af783[_0x557090(0x1db)]=0x4]=_0x557090(0x1db),_0x5af783[_0x5af783[_0x557090(0x290)]=0x8]=_0x557090(0x290),_0x5af783[_0x5af783[_0x557090(0x23e)]=0x10]=_0x557090(0x23e),_0x5af783[_0x5af783[_0x557090(0x299)]=0x20]=_0x557090(0x299),_0x5af783[_0x5af783[_0x557090(0x27e)]=0x40]=_0x557090(0x27e),_0x5af783[_0x5af783[_0x557090(0x244)]=0x80]=_0x557090(0x244);}(_0x192477||(_0x192477={})));var _0x2dae69;(function(_0x4601df){const _0x31fc9e=_0x5426ac;_0x4601df[_0x4601df[_0x31fc9e(0x299)]=0x1]='ReferenceType',_0x4601df[_0x4601df[_0x31fc9e(0x19f)]=0x2]=_0x31fc9e(0x19f),_0x4601df[_0x4601df[_0x31fc9e(0x1b7)]=0x4]=_0x31fc9e(0x1b7),_0x4601df[_0x4601df[_0x31fc9e(0x1f0)]=0x8]=_0x31fc9e(0x1f0),_0x4601df[_0x4601df[_0x31fc9e(0x245)]=0x10]=_0x31fc9e(0x245),_0x4601df[_0x4601df['TypeDefinition']=0x20]=_0x31fc9e(0x298);}(_0x2dae69||(_0x2dae69={})));function _0x311370(_0x45adc0){const _0x422431=_0x5426ac;switch(_0x45adc0){case _0x422431(0x257):return _0x56db82;case _0x422431(0x238):return _0xc8059f;case'HasComponent':return _0x34dc9c;case'HasChild':return _0x562dc3;case _0x422431(0x2af):return _0x29635e;case _0x422431(0x2a9):return _0x58998a;}}const _0xcf5f35=_0x290e3d=>{const _0x53bac5=_0x5426ac;switch(_0x290e3d[_0x53bac5(0x1c5)]){case _0x53bac5(0x24a):if(_0x290e3d[_0x53bac5(0x211)]===_0x56db82);if(_0x290e3d['typeDefinition']===_0x315e3a||_0x290e3d[_0x53bac5(0x211)]===_0x53bac5(0x21f))return{'icon':_0x53bac5(0x288),'color':_0x53bac5(0x1ed)};return{'icon':_0x53bac5(0x285),'color':_0x53bac5(0x1f7)};case _0x53bac5(0x1c6):if(_0x290e3d[_0x53bac5(0x211)]===_0x34dc9c)return{'icon':_0x53bac5(0x24b),'color':_0x53bac5(0x1ee)};else return _0x290e3d[_0x53bac5(0x211)]===_0xc8059f?{'icon':_0x53bac5(0x24b),'color':'DodgerBlue'}:{'icon':_0x53bac5(0x24b),'color':_0x53bac5(0x224)};case'Method':return{'icon':_0x53bac5(0x1df),'color':_0x53bac5(0x1cb)};case _0x53bac5(0x290):return{'icon':_0x53bac5(0x285),'color':'DarkOrange'};case _0x53bac5(0x23e):return{'icon':'fa-sliders','color':_0x53bac5(0x193)};case _0x53bac5(0x27e):return{'icon':'fa-text-width','color':_0x53bac5(0x224)};}return{'icon':_0x53bac5(0x227),'color':'grey'};},_0x45141e=(_0x29173b,_0x1dd525,_0x4db692)=>_0x42870c(void 0x0,[_0x29173b,_0x1dd525,_0x4db692],void 0x0,function*({endpointNode:_0x159fd3,endpoint:_0x100f27,baseUrl:_0x38efb7},_0x28dbe2,_0x29dc3e){const _0x413a8f=_0x5426ac,_0x2099a7=_0x38efb7+_0x413a8f(0x295),_0x250731=_0x2099a7+_0x413a8f(0x284),_0x2a22ce=Object[_0x413a8f(0x1e6)](Object[_0x413a8f(0x1e6)]({},_0x29dc3e),{'nodeId':_0x28dbe2,'resultMask':0x3f}),_0x521fa3=yield fetch(_0x250731,{'method':_0x413a8f(0x1a0),'body':JSON[_0x413a8f(0x1a9)]({'endpointNode':_0x159fd3,'endpoint':_0x100f27,'browseDescription':_0x2a22ce}),'headers':{'Content-Type':'application/json'}});if(_0x521fa3[_0x413a8f(0x226)]!==0xc8)return console['log'](_0x413a8f(0x250),_0x521fa3[_0x413a8f(0x226)],_0x521fa3[_0x413a8f(0x201)]),{'references':[]};const _0x3ca3cd=yield _0x521fa3[_0x413a8f(0x22d)](),_0x18b5a4=_0x3ca3cd[_0x413a8f(0x22c)]['references']||[];return{'references':_0x18b5a4};}),_0x5371d1={'referenceTypeId':_0x311370('HasChild'),'includeSubtypes':!![],'browseDirection':_0x5a8fe3['Forward'],'nodeClassMask':_0x2313ab['Variable']|_0x2313ab['Object']|_0x2313ab[_0x5426ac(0x1db)],'resultMask':0x3f},_0x38dbc7={'referenceTypeId':_0x311370('Organizes'),'includeSubtypes':!![],'browseDirection':_0x5a8fe3[_0x5426ac(0x1ea)],'nodeClassMask':_0x2313ab[_0x5426ac(0x1c6)]|_0x2313ab[_0x5426ac(0x24a)]|_0x2313ab['Method'],'resultMask':0x3f},_0x593b47=(_0xd2a7c,_0x52c856)=>_0x42870c(void 0x0,[_0xd2a7c,_0x52c856],void 0x0,function*({endpointNode:_0x10bd99,endpoint:_0x53479d,baseUrl:_0x510421},{nodeId:_0x2fb21a,rootNodeId:_0xe4e03d,isType:_0xa90675}){const _0x51274d=_0x5426ac,_0x53ecc3=_0x510421+_0x51274d(0x295),_0x45b52c=_0x53ecc3+_0x51274d(0x194),_0x4f7e6d=yield fetch(_0x45b52c,{'method':'POST','body':JSON['stringify']({'endpointNode':_0x10bd99,'endpoint':_0x53479d,'nodeId':_0x2fb21a,'rootNodeId':_0xe4e03d,'isType':_0xa90675}),'headers':{'Content-Type':'application/json'}});if(_0x4f7e6d[_0x51274d(0x226)]!==0xc8)return null;const _0x130867=yield _0x4f7e6d[_0x51274d(0x22d)]();return _0x130867[_0x51274d(0x1e0)];}),_0x590aa5=(_0x456d99,_0x36af41)=>{const _0x195ea5=_0x5426ac;if(_0x456d99['statusCode']!==_0x195ea5(0x2ad))return _0x456d99[_0x195ea5(0x223)];switch(_0x36af41){case _0x195ea5(0x1e0):return _0x456d99[_0x195ea5(0x28e)];case'aliasedBrowsePath':return _0x456d99['bp_aliased']||_0x456d99[_0x195ea5(0x28e)];case _0x195ea5(0x21e):return _0x456d99[_0x195ea5(0x1e3)]||_0x456d99['nodeId_nsu'];case _0x195ea5(0x27c):return _0x456d99[_0x195ea5(0x1d3)];default:case _0x195ea5(0x1cd):return _0x456d99[_0x195ea5(0x1cd)];}},_0x453d08=_0x4a1e05=>{const _0x215ce1=_0x5426ac;if(_0x4a1e05[_0x215ce1(0x197)]!==_0x215ce1(0x2ad))return'statusCode:\x20'+_0x4a1e05['statusCode'];else{let _0x5a0026=[];return _0x5a0026['push'](_0x215ce1(0x1b1)+_0x4a1e05[_0x215ce1(0x1cd)]),_0x5a0026[_0x215ce1(0x219)](_0x215ce1(0x261)+_0x4a1e05[_0x215ce1(0x28e)]),_0x5a0026['push']('node\x20class:\x20'+_0x2313ab[_0x4a1e05[_0x215ce1(0x1c5)]]),_0x4a1e05[_0x215ce1(0x1d3)]&&_0x5a0026['push'](_0x215ce1(0x271)+_0x4a1e05['nodeId_nsu']),_0x4a1e05['nodeId_aliased']&&_0x5a0026[_0x215ce1(0x219)](_0x215ce1(0x1a4)+_0x4a1e05['nodeId_aliased']),_0x4a1e05['bp_indexed']&&_0x5a0026['push']('aliased\x20browsePath:\x20'+_0x4a1e05[_0x215ce1(0x287)]),_0x5a0026['join']('\x0a');}};function _0x1a8df3(_0x16be60){const _0x153cdd=_0x5426ac;if(_0x16be60[_0x153cdd(0x1ec)](/^nsu=/))return _0x153cdd(0x27c);if(_0x16be60['match'](/^(ns=.*;)?(i|b|s|g)=/))return'nodeId';if(_0x16be60['match'](/^nsa=/))return _0x153cdd(0x21e);if(_0x16be60['match'](/^(\/|\.)[0-9]+:/))return'browsePath';if(_0x16be60[_0x153cdd(0x1ec)](/^(\/|\.).*:/))return'browsePath';}function _0xf21eb8(_0x4f43a5){const _0x893737=_0x5426ac,_0x515815=_0x1a8df3(_0x4f43a5);switch(_0x515815){case _0x893737(0x1cd):return'n';case _0x893737(0x21e):return'na';case _0x893737(0x27c):return'nsu';case'browsePath':return'b';case _0x893737(0x1aa):return'ab';default:return't';}}function _0x4e47f(_0x4a1c50){const _0x1ea34d=_0x5426ac;let _0x5c91b4;switch(_0x4a1c50){case'n':_0x5c91b4=_0x1ea34d(0x1cd);break;case'na':_0x5c91b4=_0x1ea34d(0x21e);break;case'nsu':_0x5c91b4=_0x1ea34d(0x27c);break;case'b':_0x5c91b4=_0x1ea34d(0x1e0);break;case'ab':_0x5c91b4=_0x1ea34d(0x1aa);break;}return _0x5c91b4;}function _0x39b8fa(_0x5650b7){const _0x2f0388=_0x5426ac;switch(_0x5650b7){case'nodeId':return'n';case _0x2f0388(0x21e):return'na';case _0x2f0388(0x27c):return _0x2f0388(0x202);case _0x2f0388(0x1e0):return'b';case _0x2f0388(0x1aa):return'ab';default:return't';}}const _0x588f14=(_0x2704fd,_0x350a4e)=>_0x42870c(void 0x0,[_0x2704fd,_0x350a4e],void 0x0,function*({endpointNode:_0x25d101,endpoint:_0x4d6efd,baseUrl:_0x1a415f},_0x553070){const _0xfeec1b=_0x5426ac,_0x2e0bee=_0x1a415f+_0xfeec1b(0x295),_0x4d1ac7=_0x2e0bee+'/checkNodeId',_0x59b073=_0x25d101['id'],_0x2ecfa1=RED[_0xfeec1b(0x291)]['node'](_0x59b073);console['log'](_0x2ecfa1[_0xfeec1b(0x229)]),_0x2ecfa1[_0xfeec1b(0x229)];const _0x4c45d1=_0x25d101[_0xfeec1b(0x229)],_0xef9641=yield fetch(_0x4d1ac7,{'method':_0xfeec1b(0x1a0),'body':JSON['stringify']({'endpointNode':_0x25d101,'endpoint':_0x4d6efd,'nodeId':_0x553070,'namespaceAliases':_0x4c45d1}),'headers':{'Content-Type':'application/json'}}),_0x5eef96=yield _0xef9641[_0xfeec1b(0x22d)]();return{'json':_0x5eef96,'data':_0xef9641};}),_0x5f118b=(_0x481536,_0x1424e,_0x534474,_0x55d9a4)=>_0x42870c(void 0x0,[_0x481536,_0x1424e,_0x534474,_0x55d9a4],void 0x0,function*({endpointNode:_0x3d75e5,endpoint:_0x301e82,baseUrl:_0x21c8e5},_0x3f3976,_0x1c500f,_0x59c237){const _0x2149eb=_0x5426ac,_0xd8aaf1=_0x1c500f['val'](),{json:_0x436d04,data:_0x385a53}=yield _0x588f14({'endpointNode':_0x3d75e5,'endpoint':_0x301e82,'baseUrl':_0x21c8e5},_0xd8aaf1),_0x27f92e=(_0x43e78a,_0x3482f5)=>{const _0x1d6bfe=_0x233a;_0x59c237['text'](_0x43e78a)['addClass']('sterfive-info')[_0x1d6bfe(0x206)](_0x3482f5),_0x59c237[_0x1d6bfe(0x25d)](),setTimeout(()=>{const _0x2df9c1=_0x1d6bfe;_0x59c237['removeClass'](_0x3482f5),_0x59c237[_0x2df9c1(0x1a5)]();},0xbb8);};if(_0x385a53[_0x2149eb(0x226)]!==0xc8)return _0x27f92e(_0x2149eb(0x1ca)+_0xd8aaf1,_0x2149eb(0x279)),![];else{if(_0x436d04['statusCode'][_0x2149eb(0x1ec)](/Good/)){const _0x541f9d=_0x453d08(_0x436d04);_0x1c500f[_0x2149eb(0x213)](_0x2149eb(0x26f),_0x541f9d);const _0x391920=_0x590aa5(_0x436d04,_0x3f3976);return _0x1c500f[_0x2149eb(0x28c)](_0x391920),_0x1c500f[_0x2149eb(0x26a)](_0x2149eb(0x221)),_0x27f92e('Good','ok'),!![];}else return _0x1c500f['val'](''+_0xd8aaf1),_0x27f92e(_0x436d04[_0x2149eb(0x197)]+'\x20'+_0x385a53[_0x2149eb(0x201)],_0x2149eb(0x279)),![];}});function _0x427810(_0x199489,_0x1187f1){return _0x42870c(this,void 0x0,void 0x0,function*(){const _0x312839=_0x233a,_0x4dc751=_0x199489[_0x312839(0x208)](_0x312839(0x19a)),_0x3c5a65=yield _0x45141e(_0x1187f1,_0x4dc751,_0x5371d1),_0x440ead=yield _0x45141e(_0x1187f1,_0x4dc751,_0x38dbc7);return{'references':[..._0x3c5a65[_0x312839(0x1b3)],..._0x440ead['references']]};});}const _0x2bf9e5={'referenceTypeId':_0x311370(_0x5426ac(0x2af)),'includeSubtypes':!![],'browseDirection':_0x5a8fe3[_0x5426ac(0x1ea)],'nodeClassMask':_0x2313ab['ReferenceType']|_0x2313ab[_0x5426ac(0x290)]|_0x2313ab[_0x5426ac(0x27e)]|_0x2313ab[_0x5426ac(0x23e)],'resultMask':0x3f};function _0x71ace8(_0x2e9eac,_0x462ffc){return _0x42870c(this,void 0x0,void 0x0,function*(){const _0x4cd4d1=_0x233a,_0x1c8670=_0x2e9eac[_0x4cd4d1(0x208)](_0x4cd4d1(0x19a)),_0x459e09=yield _0x45141e(_0x462ffc,_0x1c8670,_0x2bf9e5);return _0x459e09;});}const _0x3eaa1e=_0x43bef1=>{const _0x297f68=_0x5426ac;var _0x46dfa1,_0x132167,_0xd58f23,_0x3fddc6;if(!_0x43bef1||!_0x43bef1['nodeId']){const _0x327546=$(_0x297f68(0x20e));return _0x327546;}const _0xa963ed=_0x43bef1[_0x297f68(0x1cd)][_0x297f68(0x20a)](),_0x752fb7=((_0x46dfa1=_0x43bef1[_0x297f68(0x1d8)])===null||_0x46dfa1===void 0x0?void 0x0:_0x46dfa1[_0x297f68(0x1f5)])||((_0x132167=_0x43bef1[_0x297f68(0x247)])===null||_0x132167===void 0x0?void 0x0:_0x132167['name'])||_0x43bef1[_0x297f68(0x1cd)]['toString'](),{icon:_0x445ea5,color:_0x307c57}=_0xcf5f35(_0x43bef1),_0x2c4211='('+_0x43bef1[_0x297f68(0x1cd)][_0x297f68(0x20a)]()+')\x20'+(((_0xd58f23=_0x43bef1[_0x297f68(0x247)])===null||_0xd58f23===void 0x0?void 0x0:_0xd58f23[_0x297f68(0x198)])||((_0x3fddc6=_0x43bef1['displayName'])===null||_0x3fddc6===void 0x0?void 0x0:_0x3fddc6[_0x297f68(0x1f5)])||''),_0x7bf9f4=$('<li\x20key=\x22'+_0x43bef1[_0x297f68(0x1cd)][_0x297f68(0x20a)]()+_0x297f68(0x1d4)+_0x2c4211+_0x297f68(0x1d9)+_0x445ea5+'\x22\x20style=\x22color:'+_0x307c57+_0x297f68(0x286)+_0x752fb7+'</span><ul></ul></li>');return _0x7bf9f4['addClass']('expandable'),_0x7bf9f4[_0x297f68(0x208)]('value',_0xa963ed),_0x7bf9f4['data']('reference',_0x43bef1),_0x7bf9f4;},_0x55bc23=(_0x3fe6b5,_0x503633)=>{const _0x48f0cb=_0x5426ac;return _0x503633[_0x48f0cb(0x1c8)](_0x48f0cb(0x1c1)+_0x3fe6b5+'\x22]');},_0x438d02=(_0x1a1024,_0x406588)=>{const _0x3779ea=_0x5426ac;_0x1a1024[_0x3779ea(0x1fe)][_0x3779ea(0x1c8)](_0x3779ea(0x1ae))[_0x3779ea(0x1b6)](_0x3779ea(0x1ef)),_0x406588[_0x3779ea(0x1c8)](_0x3779ea(0x204))[_0x3779ea(0x206)](_0x3779ea(0x1ef));},_0x8b0d20=(_0x4fa6cf,_0x13308d,_0x48836d)=>_0x42870c(void 0x0,void 0x0,void 0x0,function*(){const _0x13cd0b=_0x5426ac;let _0x1f4468=_0x48836d['children'](_0x13cd0b(0x21d));_0x13308d['relativePath']['elements']||[];const _0xb87cf0=_0x13308d['nodeIds']||[];if(_0xb87cf0[_0x13cd0b(0x1bf)]===0x0)return;for(const _0x514ea5 of _0xb87cf0){_0x1f4468[_0x13cd0b(0x22b)]('expandable')&&(yield _0x5bf9fb(_0x4fa6cf,_0x1f4468));const _0x557f15=_0x55bc23(_0x514ea5,_0x1f4468);if(_0x557f15[_0x13cd0b(0x1bf)]===0x0)return;_0x1f4468=_0x557f15;}_0x438d02(_0x4fa6cf,_0x1f4468),_0x3f4b24(_0x4fa6cf[_0x13cd0b(0x2ab)],_0x1f4468);});function _0x3f4b24(_0x2afe55,_0x58d339){const _0x3b31a0=_0x5426ac,_0x51b476=_0x58d339[_0x3b31a0(0x2b3)]()[_0x3b31a0(0x1fb)],_0x59dc5e=_0x2afe55[_0x3b31a0(0x2a2)]();if(_0x59dc5e==undefined)return;const _0x320a03=_0x59dc5e+_0x51b476-_0x2afe55[_0x3b31a0(0x22f)]()/0x2+_0x58d339[_0x3b31a0(0x22f)]()/0x2;_0x2afe55['animate']({'scrollTop':_0x320a03},0x1f4);}const _0x2a8076=(_0x55aebc,_0x1751e0)=>_0x42870c(void 0x0,void 0x0,void 0x0,function*(){const _0x5bdc88=_0x5426ac,_0x1cbe2c=_0x55aebc[_0x5bdc88(0x20d)][_0x5bdc88(0x28c)](),_0x4e6b7d={'nodeId':_0x1cbe2c,'rootNodeId':_0x1751e0[_0x5bdc88(0x1cd)],'isType':_0x55aebc[_0x5bdc88(0x23a)][_0x5bdc88(0x1fa)]||![]},_0x5f48c6=_0xc0dc0(_0x55aebc),_0x33641b=yield _0x593b47(_0x5f48c6,_0x4e6b7d);if(!_0x33641b)return;yield _0x8b0d20(_0x55aebc,_0x33641b,_0x55aebc[_0x5bdc88(0x1fe)]);});function _0x51250d(_0x5314fc,_0x2ff805,_0x19a76b,_0x7329de){return _0x42870c(this,void 0x0,void 0x0,function*(){const _0x4c4bb8=_0x233a;if(_0x2ff805[_0x4c4bb8(0x22b)](_0x4c4bb8(0x29d))){console[_0x4c4bb8(0x1cf)](_0x4c4bb8(0x1d2));return;}if(_0x2ff805[_0x4c4bb8(0x22b)](_0x4c4bb8(0x1f9))){console[_0x4c4bb8(0x1cf)](_0x4c4bb8(0x1bb));return;}_0x2ff805[_0x4c4bb8(0x206)](_0x4c4bb8(0x1f9)),_0x2ff805[_0x4c4bb8(0x1ab)](_0x4c4bb8(0x209));try{_0x2ff805['children']('ul')[_0x4c4bb8(0x1bc)]();const {references:_0x261305}=yield _0x19a76b(_0x2ff805,_0x7329de);_0x261305[_0x4c4bb8(0x27d)]((_0x2fb2f4,_0x2ab103)=>{const _0x4664ce=_0x4c4bb8;var _0x17a4e0,_0x2c3eda;return(((_0x17a4e0=_0x2fb2f4[_0x4664ce(0x247)])===null||_0x17a4e0===void 0x0?void 0x0:_0x17a4e0[_0x4664ce(0x198)])||'')[_0x4664ce(0x25f)](((_0x2c3eda=_0x2ab103[_0x4664ce(0x247)])===null||_0x2c3eda===void 0x0?void 0x0:_0x2c3eda[_0x4664ce(0x198)])||'');});for(const _0x4f9a76 of _0x261305){if(_0x5314fc[_0x4c4bb8(0x23a)][_0x4c4bb8(0x29e)]&&!_0x5314fc[_0x4c4bb8(0x23a)][_0x4c4bb8(0x29e)](_0x4f9a76))continue;const _0x5666d8=_0x3eaa1e(_0x4f9a76);_0x2ff805['children']('ul')[_0x4c4bb8(0x1ab)](_0x5666d8);}_0x2ff805[_0x4c4bb8(0x206)]('fetched');}catch(_0x4b888f){_0x2ff805[_0x4c4bb8(0x28a)]('ul')[_0x4c4bb8(0x1ab)](_0x4c4bb8(0x277)+_0x4b888f[_0x4c4bb8(0x195)]+_0x4c4bb8(0x281)),console[_0x4c4bb8(0x1cf)](_0x4c4bb8(0x1b5),_0x4b888f);}_0x2ff805[_0x4c4bb8(0x1c8)](_0x4c4bb8(0x1cc))[_0x4c4bb8(0x1e2)](),_0x2ff805[_0x4c4bb8(0x1b6)](_0x4c4bb8(0x1f9));});}function _0xc0dc0(_0x5a9370){const _0x2f285f=_0x5426ac,_0x3c2e47={'baseUrl':_0x5a9370['options'][_0x2f285f(0x22e)],'endpointNode':typeof _0x5a9370[_0x2f285f(0x23a)][_0x2f285f(0x1e1)]==='function'?_0x5a9370[_0x2f285f(0x23a)][_0x2f285f(0x1e1)]():_0x5a9370[_0x2f285f(0x23a)][_0x2f285f(0x1e1)],'endpoint':typeof _0x5a9370['options']['endpoint']==='function'?_0x5a9370[_0x2f285f(0x23a)][_0x2f285f(0x2a8)]():_0x5a9370[_0x2f285f(0x23a)][_0x2f285f(0x2a8)]};return _0x3c2e47;}function _0x5bf9fb(_0x5d6131,_0x330e42){return _0x42870c(this,void 0x0,void 0x0,function*(){const _0xb9870a=_0x233a;if(_0x330e42[_0xb9870a(0x22b)]('fetched')){_0x330e42['removeClass']('expandable')[_0xb9870a(0x206)](_0xb9870a(0x19b)),_0x330e42[_0xb9870a(0x28a)]('ul')['toggle']();return;}const _0x333f7b=_0xc0dc0(_0x5d6131),_0x5e47d4=!_0x5d6131[_0xb9870a(0x23a)][_0xb9870a(0x1fa)]?_0x427810:_0x71ace8;try{yield _0x51250d(_0x5d6131,_0x330e42,_0x5e47d4,_0x333f7b),_0x330e42[_0xb9870a(0x1b6)](_0xb9870a(0x233))['addClass'](_0xb9870a(0x19b));}catch(_0x107a9d){_0x330e42[_0xb9870a(0x1b6)]('expandable')['addClass'](_0xb9870a(0x19b)),console[_0xb9870a(0x1cf)](_0xb9870a(0x292),_0x107a9d);}});}const _0x1166fa={'browseName':{'namespaceIndex':0x0,'name':_0x5426ac(0x267)},'nodeClass':_0x5426ac(0x24a),'nodeId':'ns=0;i=85','displayName':{'text':_0x5426ac(0x267)},'typeDefinition':_0x315e3a},_0x34d07a=()=>{const _0x45f854=_0x5426ac;$['widget'](_0x45f854(0x2a4),{'options':{'endpointNode':()=>({'endpoint':_0x45f854(0x234)}),'endpoint':()=>undefined,'parentNode':()=>_0x1166fa,'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x42870c(this,void 0x0,void 0x0,function*(){const _0x771699=_0x233a,_0x228c83=this;if(_0x228c83[_0x771699(0x2ae)]==undefined){const _0x1776ff=typeof _0x228c83[_0x771699(0x23a)][_0x771699(0x1e8)]==='function'?_0x228c83[_0x771699(0x23a)][_0x771699(0x1e8)][_0x771699(0x1c0)](_0x228c83):_0x228c83[_0x771699(0x23a)][_0x771699(0x1e8)];if(_0x1776ff instanceof Promise){const _0x2bc026=yield _0x1776ff;_0x228c83['__parentNode']=_0x2bc026;}else _0x228c83[_0x771699(0x2ae)]=_0x1776ff;}return _0x228c83['__parentNode']||_0x1166fa;});},'reset'(){return _0x42870c(this,void 0x0,void 0x0,function*(){const _0x3b5f15=_0x233a,_0x49f5b0=this,_0x10dbd6=_0x49f5b0;_0x10dbd6['__parentNode']=undefined,_0x49f5b0['$tree'][_0x3b5f15(0x1bc)]();const _0x5351cf=yield this[_0x3b5f15(0x283)](),_0x45b766=_0x3eaa1e(_0x5351cf);_0x49f5b0['$tree'][_0x3b5f15(0x1ab)](_0x45b766),_0x49f5b0[_0x3b5f15(0x28b)]=_0x5351cf;});},'verify'(_0x355a23){const _0x20ab24=_0x45f854,_0x51df11=this,_0x1e212d=_0xc0dc0(_0x51df11);_0x5f118b(_0x1e212d,_0x355a23,_0x51df11[_0x20ab24(0x20d)],_0x51df11[_0x20ab24(0x24e)])[_0x20ab24(0x1dc)](_0x1e2026=>{const _0x446feb=_0x20ab24;!_0x1e2026?_0x51df11[_0x446feb(0x200)][_0x446feb(0x206)](_0x446feb(0x1eb)):_0x51df11[_0x446feb(0x200)][_0x446feb(0x1b6)](_0x446feb(0x1eb));});},'_hideMenu'(_0x37cce3){const _0x42ab34=_0x45f854,_0x37c592=this;$(document)[_0x42ab34(0x25e)](_0x42ab34(0x220)),_0x37cce3[_0x42ab34(0x1a5)](),_0x37cce3['css']({'height':'auto'});if(_0x37cce3[_0x42ab34(0x2a7)][_0x42ab34(0x1e4)]){var _0x507dc9=[];_0x37cce3['find'](_0x42ab34(0x26c))[_0x42ab34(0x19c)](function(){const _0x21508e=_0x42ab34;$(this)['prop']('checked')&&_0x507dc9[_0x21508e(0x219)]($(this)['data'](_0x21508e(0x19a)));}),_0x37cce3[_0x42ab34(0x29f)](_0x507dc9);}_0x37c592[_0x42ab34(0x258)]['is'](':visible')?_0x37c592['$input'][_0x42ab34(0x26a)](_0x42ab34(0x29b)):_0x37c592['$selectTrigger'][_0x42ab34(0x26a)]('focus');},'_createMenu'(_0x13cc6c,_0x5c226c,_0x3f7286){const _0x30a248=_0x45f854;var _0x50016f=this;const _0x358985=$(_0x30a248(0x1f4))['addClass'](_0x30a248(0x1f2));return _0x358985[_0x30a248(0x2a7)]=_0x5c226c,_0x358985['callback']=_0x3f7286,_0x13cc6c[_0x30a248(0x1d0)](_0x36ff4c=>{const _0x50416e=_0x30a248;typeof _0x36ff4c==='string'&&(_0x36ff4c={'value':_0x36ff4c,'label':_0x36ff4c});var _0x56ec03=$(_0x50416e(0x28d))[_0x50416e(0x213)]('value',_0x36ff4c['value'])['appendTo'](_0x358985);_0x36ff4c[_0x50416e(0x2a0)]&&_0x56ec03[_0x50416e(0x1f5)](_0x36ff4c['label']);_0x36ff4c[_0x50416e(0x26f)]&&_0x56ec03[_0x50416e(0x2b0)](_0x50416e(0x26f),_0x36ff4c[_0x50416e(0x26f)]);if(_0x36ff4c[_0x50416e(0x1bd)]){if(_0x36ff4c[_0x50416e(0x1bd)][_0x50416e(0x1b0)]('<')===0x0)$(_0x36ff4c[_0x50416e(0x1bd)])[_0x50416e(0x273)](_0x56ec03);else _0x36ff4c[_0x50416e(0x1bd)][_0x50416e(0x1b0)]('/')!==-0x1?$(_0x50416e(0x207),{'class':_0x50416e(0x19d),'style':_0x50416e(0x232)+_0x36ff4c[_0x50416e(0x1bd)]+_0x50416e(0x215)+_0x36ff4c[_0x50416e(0x1bd)]+');'})[_0x50416e(0x273)](_0x56ec03):$(_0x50416e(0x207),{'class':_0x50416e(0x270)+_0x36ff4c['icon']})[_0x50416e(0x273)](_0x56ec03);}else _0x56ec03['css']({'paddingLeft':_0x50416e(0x212)});!_0x36ff4c[_0x50416e(0x1bd)]&&!_0x36ff4c[_0x50416e(0x2a0)]&&_0x56ec03[_0x50416e(0x1f5)](_0x36ff4c['value']);var _0x273f20;_0x5c226c['multiple']&&(_0x273f20=$(_0x50416e(0x23f))[_0x50416e(0x25b)](_0x50416e(0x214),'none')['data'](_0x50416e(0x19a),_0x36ff4c['value'])[_0x50416e(0x273)](_0x56ec03)['on'](_0x50416e(0x252),function(_0x303c92){const _0x42b97e=_0x50416e;_0x303c92[_0x42b97e(0x237)]();})),_0x56ec03['on'](_0x50416e(0x272),function(_0x558130){const _0x38b9ff=_0x50416e;_0x558130['preventDefault'](),_0x558130['stopPropagation'](),!_0x5c226c[_0x38b9ff(0x1e4)]?(_0x3f7286(_0x36ff4c[_0x38b9ff(0x19a)]),_0x50016f[_0x38b9ff(0x1ba)](_0x358985)):_0x273f20['prop']('checked',!_0x273f20[_0x38b9ff(0x2b0)]('checked'));});}),_0x358985['css']({'display':_0x30a248(0x1a8)}),_0x358985['on'](_0x30a248(0x274),function(_0x4a761e){const _0x57fa0b=_0x30a248;if(_0x4a761e['keyCode']===0x28)_0x4a761e[_0x57fa0b(0x237)](),$(this)[_0x57fa0b(0x28a)](_0x57fa0b(0x278))[_0x57fa0b(0x248)]()[_0x57fa0b(0x26a)](_0x57fa0b(0x29b));else{if(_0x4a761e[_0x57fa0b(0x276)]===0x26)_0x4a761e[_0x57fa0b(0x237)](),$(this)['children'](_0x57fa0b(0x278))[_0x57fa0b(0x23c)]()[_0x57fa0b(0x26a)](_0x57fa0b(0x29b));else _0x4a761e[_0x57fa0b(0x276)]===0x1b&&(_0x4a761e[_0x57fa0b(0x237)](),_0x50016f[_0x57fa0b(0x1ba)](_0x358985));}_0x4a761e[_0x57fa0b(0x20c)]();}),_0x358985;},'disarmClick':![],'_showMenu'(_0x2178f3,_0x3b2407){const _0x5e9065=_0x45f854;if(this['disarmClick']){this[_0x5e9065(0x210)]=![];return;}var _0x46b918=this,_0x14429a=_0x3b2407[_0x5e9065(0x29a)](),_0x38c904=_0x3b2407[_0x5e9065(0x22f)](),_0x399b99=_0x2178f3[_0x5e9065(0x22f)](),_0x1f3399=_0x38c904+_0x14429a[_0x5e9065(0x1fb)];_0x1f3399+_0x399b99-$(document)[_0x5e9065(0x2a2)]()>$(window)[_0x5e9065(0x22f)]()&&(_0x1f3399-=_0x1f3399+_0x399b99-$(window)[_0x5e9065(0x22f)]()+0x5),_0x1f3399<0x0&&(_0x2178f3['height'](_0x399b99+_0x1f3399),_0x1f3399=0x0),_0x2178f3['css']({'top':_0x1f3399+'px','left':_0x14429a['left']+'px'}),_0x2178f3[_0x5e9065(0x217)](0x64),this[_0x5e9065(0x231)](function(){const _0x31fa2a=_0x5e9065;_0x46b918[_0x31fa2a(0x225)]['addClass'](_0x31fa2a(0x240)),$(document)['on'](_0x31fa2a(0x220),function(_0x9b8c56){const _0x3e611e=_0x31fa2a;!$(_0x9b8c56[_0x3e611e(0x1e9)])[_0x3e611e(0x296)](_0x2178f3)[_0x3e611e(0x1bf)]&&_0x46b918[_0x3e611e(0x1ba)](_0x2178f3),$(_0x9b8c56[_0x3e611e(0x1e9)])[_0x3e611e(0x296)](_0x3b2407)[_0x3e611e(0x1bf)]&&(_0x46b918['disarmClick']=!![],_0x9b8c56[_0x3e611e(0x237)]());});});},'_showTypeMenu'(){const _0x482075=_0x45f854,_0x553b76=this;this[_0x482075(0x297)](_0x553b76[_0x482075(0x263)],_0x553b76['$combo']),_0x553b76[_0x482075(0x2ab)][_0x482075(0x1a5)]();const _0x134739=_0x553b76[_0x482075(0x2ac)];var _0x52f1ba=_0x553b76[_0x482075(0x263)]['find'](_0x482075(0x236)+_0x134739+'\x27');setTimeout(function(){const _0x5cc890=_0x482075;_0x52f1ba['trigger'](_0x5cc890(0x29b));},0x78);},'_initMenu'(){const _0x3fb5f3=_0x45f854,_0x283b6e=this;_0x283b6e['$selectTrigger']['attr'](_0x3fb5f3(0x27b),-0x1),_0x283b6e[_0x3fb5f3(0x275)]['on'](_0x3fb5f3(0x205),function(_0x5d9f54){_0x5d9f54['preventDefault']();});_0x283b6e['$menu']&&_0x283b6e[_0x3fb5f3(0x263)]['remove']();const _0x4e362d=[{'label':'text','value':'t','title':_0x3fb5f3(0x1ac),'icon':'<i\x20class=\x22fa\x20fa-font\x22/i>\x20'},{'label':'msg.','value':_0x3fb5f3(0x265),'title':_0x3fb5f3(0x1f6),'icon':'<i\x20class=\x22fa\x20fa-envelope-open-o\x22/>'},{'label':'NodeId','value':'n','icon':'<i\x20class=\x22fa\x20fa-tag\x22/>1\x20 \x20'},{'label':_0x3fb5f3(0x280),'value':'na','icon':_0x3fb5f3(0x26e)},{'label':_0x3fb5f3(0x27f),'value':'nsu','icon':_0x3fb5f3(0x251)},{'label':'BrowsePath','value':'b','icon':'<i\x20class=\x22fa\x20fa-tag\x22/><i\x20class=\x22fa\x20fa-fighter-jet\x22/> '},{'label':_0x3fb5f3(0x230),'value':'ab','icon':_0x3fb5f3(0x25a)}],_0x49dd8e=_0xf21eb8(_0x283b6e[_0x3fb5f3(0x20d)][_0x3fb5f3(0x28c)]()),_0x8f2a27=_0x4e362d[_0x3fb5f3(0x1c8)](_0x2fbab1=>_0x2fbab1[_0x3fb5f3(0x19a)]===_0x49dd8e);_0x283b6e[_0x3fb5f3(0x1fd)][_0x3fb5f3(0x1bc)]()[_0x3fb5f3(0x1ab)]('<span\x20title='+((_0x8f2a27===null||_0x8f2a27===void 0x0?void 0x0:_0x8f2a27[_0x3fb5f3(0x26f)])||'')+_0x3fb5f3(0x1d1)+((_0x8f2a27===null||_0x8f2a27===void 0x0?void 0x0:_0x8f2a27['icon'])||'')+_0x3fb5f3(0x1b4)),_0x283b6e['selectedMenuItem']=_0x49dd8e;const _0x25a610=this;_0x283b6e[_0x3fb5f3(0x263)]=this[_0x3fb5f3(0x255)](_0x4e362d,{},_0x5b240e=>{const _0x68332=_0x3fb5f3,_0x162b9c=_0x4e47f(_0x5b240e);_0x162b9c&&_0x25a610[_0x68332(0x1fc)](_0x162b9c);const _0x10dd47=_0x4e362d[_0x68332(0x1c8)](_0xfc10bb=>_0xfc10bb[_0x68332(0x19a)]===_0x5b240e);_0x283b6e[_0x68332(0x2ac)]=_0x5b240e,_0x283b6e['$selectLabel'][_0x68332(0x1bc)]()['append'](_0x68332(0x266)+((_0x10dd47===null||_0x10dd47===void 0x0?void 0x0:_0x10dd47[_0x68332(0x26f)])||'')+_0x68332(0x1d1)+((_0x10dd47===null||_0x10dd47===void 0x0?void 0x0:_0x10dd47[_0x68332(0x1bd)])||'')+_0x68332(0x1b4));}),_0x283b6e[_0x3fb5f3(0x263)][_0x3fb5f3(0x2b1)](document['body']),_0x283b6e[_0x3fb5f3(0x263)][_0x3fb5f3(0x1a5)](),_0x283b6e['$selectTrigger']['show']();},'mode'(){const _0x49b39b=_0x45f854,_0x62c16a=this;return _0x4e47f(_0x62c16a[_0x49b39b(0x2ac)]);},'setMode'(_0x5b6a15){const _0x4fbf73=_0x45f854,_0x42c93a=this,_0x345369=_0x39b8fa(_0x5b6a15);_0x42c93a[_0x4fbf73(0x2ac)]=_0x345369;},'_create'(){const _0x5d4d43=_0x45f854,_0x34441a=this;_0x34441a[_0x5d4d43(0x20d)]=this[_0x5d4d43(0x196)],_0x34441a['$input'][_0x5d4d43(0x25b)](_0x5d4d43(0x24f),_0x5d4d43(0x1a8)),_0x34441a[_0x5d4d43(0x258)]=_0x34441a[_0x5d4d43(0x20d)]['wrap'](_0x5d4d43(0x1f4))[_0x5d4d43(0x2a5)]()['addClass']('main-wrapper'),_0x34441a[_0x5d4d43(0x200)]=$(_0x5d4d43(0x242)),_0x34441a[_0x5d4d43(0x200)][_0x5d4d43(0x206)](_0x5d4d43(0x294)),_0x34441a['$input']['replaceWith'](_0x34441a[_0x5d4d43(0x200)]),_0x34441a['$inputGroup']=$(_0x5d4d43(0x242))['addClass'](_0x5d4d43(0x26d)),_0x34441a[_0x5d4d43(0x200)][_0x5d4d43(0x1ab)](_0x34441a[_0x5d4d43(0x23d)]),_0x34441a[_0x5d4d43(0x23d)][_0x5d4d43(0x1ab)](_0x34441a[_0x5d4d43(0x20d)]),_0x34441a[_0x5d4d43(0x1e7)]=$('<button\x20title=\x22open\x20OPCUA\x20AddressSpace\x20Browser\x22><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>'),_0x34441a[_0x5d4d43(0x20d)]['after'](_0x34441a[_0x5d4d43(0x1e7)]),_0x34441a[_0x5d4d43(0x1e7)]['on'](_0x5d4d43(0x272),function(){return _0x42870c(this,void 0x0,void 0x0,function*(){const _0x367797=_0x233a;var _0x37bf70;let _0x598a4f=![],_0x58699a;!_0x34441a[_0x367797(0x2ab)]['is'](_0x367797(0x2a1))&&(_0x34441a[_0x367797(0x24e)][_0x367797(0x1a5)](),_0x58699a=yield _0x34441a[_0x367797(0x283)](),(_0x58699a!==_0x34441a['currentParent']||((_0x37bf70=_0x34441a[_0x367797(0x28b)])===null||_0x37bf70===void 0x0?void 0x0:_0x37bf70[_0x367797(0x1cd)])!==_0x58699a[_0x367797(0x1cd)])&&(yield _0x34441a[_0x367797(0x1f8)]()),_0x598a4f=!![]),_0x34441a[_0x367797(0x2ab)][_0x367797(0x1c3)](),_0x598a4f&&(yield _0x2a8076(_0x34441a,_0x58699a));});}),_0x34441a['$verifyBtn']=$(_0x5d4d43(0x203)),_0x34441a[_0x5d4d43(0x20d)][_0x5d4d43(0x239)](_0x34441a[_0x5d4d43(0x260)]),_0x34441a[_0x5d4d43(0x260)]['on']('click',()=>{const _0xf19c8f=_0x5d4d43,_0x3b8963=_0x34441a[_0xf19c8f(0x26b)]();if(!_0x3b8963)return;this['verify'](_0x3b8963);});const _0x17e6ae=_0x26ee82=>_0x42870c(this,void 0x0,void 0x0,function*(){const _0x3e19f4=_0x5d4d43,_0x1c6c12=this;let _0x5c9b5a=_0x1c6c12[_0x3e19f4(0x26b)]();if(!_0x5c9b5a)return;const _0x4f6aad=_0xc0dc0(_0x1c6c12),{data:_0x3fa44b,json:_0x310f2c}=yield _0x588f14(_0x4f6aad,_0x26ee82);if(_0x3fa44b[_0x3e19f4(0x226)]!==0xc8)return;if(_0x310f2c['statusCode'][_0x3e19f4(0x1ec)](/Good/)){const _0x5ce183=_0x590aa5(_0x310f2c,_0x5c9b5a);_0x1c6c12['$input']['val'](_0x5ce183),_0x1c6c12['$input'][_0x3e19f4(0x26a)](_0x3e19f4(0x221));}});{_0x34441a[_0x5d4d43(0x225)]=$(_0x5d4d43(0x1f4)),_0x34441a['$input'][_0x5d4d43(0x22a)](_0x34441a[_0x5d4d43(0x225)]),_0x34441a['$selectTrigger']=$(_0x5d4d43(0x1d5))[_0x5d4d43(0x273)](_0x34441a[_0x5d4d43(0x225)]),$(_0x5d4d43(0x249))['toggle'](!![])[_0x5d4d43(0x2b1)](_0x34441a[_0x5d4d43(0x275)]),_0x34441a['$selectTrigger']['on']('click',function(_0xe7a581){const _0x2efd85=_0x5d4d43;_0xe7a581[_0x2efd85(0x237)](),_0xe7a581[_0x2efd85(0x20c)](),_0x34441a[_0x2efd85(0x1c9)]();}),_0x34441a[_0x5d4d43(0x275)]['on'](_0x5d4d43(0x274),function(_0x37b710){const _0xa53d42=_0x5d4d43;_0x37b710[_0xa53d42(0x276)]===0x28&&_0x34441a[_0xa53d42(0x1c9)](),_0x37b710['stopPropagation']();})['on'](_0x5d4d43(0x29b),function(){const _0xb43e3e=_0x5d4d43;_0x34441a[_0xb43e3e(0x225)][_0xb43e3e(0x206)](_0xb43e3e(0x240));})['on'](_0x5d4d43(0x228),function(){const _0x1bd680=_0x5d4d43;_0x34441a[_0x1bd680(0x225)][_0x1bd680(0x1b6)]('red-ui-typedInput-focus');}),_0x34441a[_0x5d4d43(0x1fd)]=$('<span\x20class=\x22red-ui-typedInput-type-label\x22></span>')[_0x5d4d43(0x2b1)](_0x34441a[_0x5d4d43(0x275)]);}this['_initMenu']();!_0x34441a[_0x5d4d43(0x20d)][_0x5d4d43(0x213)](_0x5d4d43(0x1ff))&&_0x34441a['$input']['attr'](_0x5d4d43(0x1ff),'enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20');_0x34441a[_0x5d4d43(0x24e)]=$(_0x5d4d43(0x289)),_0x34441a[_0x5d4d43(0x24e)][_0x5d4d43(0x1a5)](),_0x34441a['$combo'][_0x5d4d43(0x1ab)](_0x34441a[_0x5d4d43(0x24e)]),_0x34441a['$dropdown']=$(_0x5d4d43(0x242))[_0x5d4d43(0x206)](_0x5d4d43(0x254))[_0x5d4d43(0x1a5)]()[_0x5d4d43(0x2b1)](_0x34441a[_0x5d4d43(0x200)]),_0x34441a['$tree']=$('<ul\x20class=\x22sterfive-tree\x22></ul>')[_0x5d4d43(0x2b1)](_0x34441a[_0x5d4d43(0x2ab)]),this[_0x5d4d43(0x1f8)]();const _0x51b4f2=(_0x38f52e,_0x3b257a)=>{const _0xee4e8a=_0x5d4d43,_0x2967fd=0x14,_0x39883a=0x14,_0x1a34ca=_0x38f52e['offset'](),_0x4b8619=_0x3b257a;if(_0x4b8619['pageX']>=_0x1a34ca[_0xee4e8a(0x216)]&&_0x4b8619[_0xee4e8a(0x2b2)]<=_0x1a34ca['left']+_0x2967fd&&_0x4b8619['pageY']>=_0x1a34ca[_0xee4e8a(0x1fb)]&&_0x4b8619[_0xee4e8a(0x25c)]<=_0x1a34ca[_0xee4e8a(0x1fb)]+_0x39883a)return!![];return![];},_0x2cd71c=_0x20cd7a=>_0x42870c(this,void 0x0,void 0x0,function*(){const _0x14ff38=_0x5d4d43;if(_0x20cd7a[_0x14ff38(0x22b)](_0x14ff38(0x233)))_0x5bf9fb(_0x34441a,_0x20cd7a);else{if(_0x20cd7a[_0x14ff38(0x22b)](_0x14ff38(0x19b)))_0x20cd7a[_0x14ff38(0x28a)]('ul')[_0x14ff38(0x1c3)](),_0x20cd7a['toggleClass'](_0x14ff38(0x24d));else{if(_0x20cd7a[_0x14ff38(0x28a)]('ul')[_0x14ff38(0x28a)]()[_0x14ff38(0x1bf)]>0x0)_0x20cd7a[_0x14ff38(0x28a)]('ul')[_0x14ff38(0x1c3)](),_0x20cd7a[_0x14ff38(0x259)](_0x14ff38(0x24d));else;}}});_0x34441a[_0x5d4d43(0x1fe)]['on'](_0x5d4d43(0x262),'li',function(_0xdfd909){const _0x1dfb43=_0x5d4d43;var _0x168788,_0x2fd6a6;_0xdfd909[_0x1dfb43(0x20c)]();let _0x23fbe3=$(this);if(_0x51b4f2(_0x23fbe3,_0xdfd909))_0x2cd71c(_0x23fbe3);else{const _0x20a1bb=_0x23fbe3[_0x1dfb43(0x208)](_0x1dfb43(0x19a)),_0x3c2ee2=_0x23fbe3[_0x1dfb43(0x208)](_0x1dfb43(0x1b8));if(_0x34441a[_0x1dfb43(0x23a)][_0x1dfb43(0x1e5)]&&!_0x34441a['options'][_0x1dfb43(0x1e5)](_0x3c2ee2))return;_0x34441a[_0x1dfb43(0x20d)][_0x1dfb43(0x208)](_0x1dfb43(0x1b8),_0x3c2ee2),((_0x168788=_0x3c2ee2['displayName'])===null||_0x168788===void 0x0?void 0x0:_0x168788[_0x1dfb43(0x1f5)])||((_0x2fd6a6=_0x3c2ee2[_0x1dfb43(0x247)])===null||_0x2fd6a6===void 0x0?void 0x0:_0x2fd6a6['name'])||_0x3c2ee2['nodeId']['toString']();let _0x1c71e2=_0x34441a[_0x1dfb43(0x26b)]();!_0x1c71e2&&(_0x1c71e2='nodeId',_0x34441a[_0x1dfb43(0x256)](_0x1c71e2)),_0x17e6ae(_0x20a1bb)['then'](()=>{const _0x36b27d=_0x1dfb43;_0x34441a['$dropdown'][_0x36b27d(0x1a5)]();})[_0x1dfb43(0x1f3)](_0x40f41d=>{const _0x50da40=_0x1dfb43;_0x34441a['$dropdown'][_0x50da40(0x1a5)]();});}}),_0x34441a['$tree']['on']('click','li',function(_0x34c048){const _0x120e25=_0x5d4d43;_0x34c048[_0x120e25(0x20c)]();let _0x3779ec=$(this);_0x51b4f2(_0x3779ec,_0x34c048)&&_0x2cd71c(_0x3779ec),_0x438d02(_0x34441a,_0x3779ec);}),$(document)['on']('click',function(_0x31460c){const _0x117314=_0x5d4d43;!$(_0x31460c[_0x117314(0x1e9)])[_0x117314(0x296)](_0x34441a[_0x117314(0x200)])['length']&&_0x34441a[_0x117314(0x2ab)][_0x117314(0x1a5)]();});}});},_0x287591=()=>{const _0x5207d4=_0x5426ac,_0x2deb1c=$(_0x5207d4(0x1f1)),_0x2bfda6=_0x2deb1c['val'](),_0x3db56e=RED[_0x5207d4(0x291)]['node'](_0x2bfda6);if(!_0x3db56e)return undefined;const {endpoint:_0x304443,securityMode:_0x3371bf,securityPolicy:_0x165fd2,userIdentityType:_0x5b096b,credentials:_0x58ac8a,namespaceAliases:_0x35d552}=_0x3db56e,_0x45227e={'endpoint':_0x304443,'securityMode':_0x3371bf,'securityPolicy':_0x165fd2,'userIdentityType':_0x5b096b,'credentials':_0x58ac8a,'namespaceAliases':_0x35d552};return _0x45227e;},_0xa50ca5=()=>{const _0x192b3d=_0x5426ac,_0xb0f338=$('#node-input-endpoint'),_0x13868b=_0xb0f338['val'](),_0x317f56=_0x287591();if(!_0x317f56)return undefined;const _0x2c0ff9=_0x317f56[_0x192b3d(0x229)];return Object['assign']({'namespaceAliases':_0x2c0ff9,'id':_0x13868b},_0x317f56);},_0x2d0be4=()=>{return{'endpointNode':_0xa50ca5};},_0x1acc04=()=>{const _0x4fab42=_0x5426ac,_0x5e573e=$(_0x4fab42(0x218));console[_0x4fab42(0x1cf)](_0x4fab42(0x1a2),_0x5e573e[_0x4fab42(0x1bf)]);if(_0x5e573e[_0x4fab42(0x1bf)]){console[_0x4fab42(0x1cf)]('installing\x20iframe');const _0xf2d898=$(_0x4fab42(0x268),{'src':_0x4fab42(0x293),'scrolling':'no','style':_0x4fab42(0x1a6),'allowtransparency':_0x4fab42(0x20b),'width':_0x4fab42(0x2aa),'height':_0x4fab42(0x1d7)});_0x5e573e[_0x4fab42(0x1ab)](_0xf2d898),_0xf2d898[_0x4fab42(0x25b)]({'position':_0x4fab42(0x1ad),'right':_0x4fab42(0x1da),'bottom':_0x4fab42(0x1af)});}};RED[_0x5426ac(0x291)][_0x5426ac(0x243)](_0x5426ac(0x28f),{'category':_0x5426ac(0x1ce),'color':'#C0DEED','align':_0x5426ac(0x2a6),'icon':_0x5426ac(0x1c2),'paletteLabel':_0x5426ac(0x2b4),'defaults':{'inputs':{'value':0x1},'output':{'value':0x1},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x5426ac(0x269)},'dataType':{'value':'','required':!![]}},'inputs':0x1,'outputs':0x1,'label'(){const _0x5651d0=_0x5426ac;return this['name']||_0x5651d0(0x29c);},'labelStyle'(){const _0x50027c=_0x5426ac;return this[_0x50027c(0x198)]?_0x50027c(0x2a3):'';},'oneditprepare'(){const _0x5522b0=_0x5426ac,_0x5093e8=this;_0x34d07a(),_0x1acc04(),_0x5093e8['inputs']=0x1;const _0x330aee=$('#node-input-dataType'),_0x27180e={'nodeId':_0x5522b0(0x1c7),'referenceTypeId':'','browseName':{'namespaceIndex':0x0,'name':_0x5522b0(0x241)},'displayName':{'text':'Structure'},'nodeClass':_0x5522b0(0x27e),'typeDefinition':'i=0'};_0x330aee[_0x5522b0(0x264)](Object[_0x5522b0(0x1e6)](Object[_0x5522b0(0x1e6)]({},_0x2d0be4()),{'parentNode':()=>_0x27180e,'isSelectable'(_0x2896a9){const _0x9f0d6=_0x5522b0;return _0x2896a9['nodeClass']===_0x9f0d6(0x27e);},'isTypeRef':!![]}));},'oneditsave'(){}});}()));
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg0Mjg3MGMiLCJfMHg1NWQzODUiLCJfMHgyYmIyNzYiLCJfMHgxYTEwYzQiLCJfMHgyYTQ0ZjEiLCJfMHg1YTY0NGEiLCJfMHgzOGI1MTgiLCJfMHg1NjZjMDMiLCJQcm9taXNlIiwiXzB4MTRjODY1IiwiXzB4MWQ3MGVjIiwiXzB4MjkyMmRlIiwiXzB4NzUwOTk4IiwiXzB4MTBiOGIxIiwiXzB4MmIyMjg0IiwiXzB4MjI2OGE1IiwiXzB4NGU4NjcyIiwiXzB4MzU0YjFmIiwiXzB4MWNlMjZkIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4ZDUyYWRkIiwiXzB4NGM1ODI0IiwiXzB4NDgyMTVmIiwiXzB4NGQzZDVkIiwiRXJyb3IiLCJfMHg1NmRiODIiLCJfMHgzMTVlM2EiLCJfMHgzNGRjOWMiLCJfMHhjODA1OWYiLCJfMHg1NjJkYzMiLCJfMHgyOTYzNWUiLCJfMHg1ODk5OGEiLCJfMHg1YThmZTMiLCJfMHg0YjA1NDIiLCJfMHgyMzEzYWIiLCJfMHgxN2VjMGYiLCJfMHgxOTI0NzciLCJfMHg1YWY3ODMiLCJfMHgyZGFlNjkiLCJfMHg0NjAxZGYiLCJfMHgzMTEzNzAiLCJfMHg0NWFkYzAiLCJfMHhjZjVmMzUiLCJfMHgyOTBlM2QiLCJfMHg0NTE0MWUiLCJfMHgyOTE3M2IiLCJfMHgxZGQ1MjUiLCJfMHg0ZGI2OTIiLCJlbmRwb2ludE5vZGUiLCJfMHgxNTlmZDMiLCJlbmRwb2ludCIsIl8weDEwMGYyNyIsImJhc2VVcmwiLCJfMHgzOGVmYjciLCJfMHgyOGRiZTIiLCJfMHgyOWRjM2UiLCJfMHgyMDk5YTciLCJfMHgyNTA3MzEiLCJfMHgyYTIyY2UiLCJPYmplY3QiLCJfMHg1MjFmYTMiLCJmZXRjaCIsIkpTT04iLCJjb25zb2xlIiwiXzB4M2NhM2NkIiwiXzB4MThiNWE0IiwiXzB4NTM3MWQxIiwiXzB4MzhkYmM3IiwiXzB4NTkzYjQ3IiwiXzB4ZDJhN2MiLCJfMHg1MmM4NTYiLCJfMHgxMGJkOTkiLCJfMHg1MzQ3OWQiLCJfMHg1MTA0MjEiLCJub2RlSWQiLCJfMHgyZmIyMWEiLCJyb290Tm9kZUlkIiwiXzB4ZTRlMDNkIiwiaXNUeXBlIiwiXzB4YTkwNjc1IiwiXzB4NTNlY2MzIiwiXzB4NDViNTJjIiwiXzB4NGY3ZTZkIiwiXzB4MTMwODY3IiwiXzB4NTkwYWE1IiwiXzB4NDU2ZDk5IiwiXzB4MzZhZjQxIiwiXzB4NDUzZDA4IiwiXzB4NGExZTA1IiwiXzB4NWEwMDI2IiwiXzB4MWE4ZGYzIiwiXzB4MTZiZTYwIiwiXzB4ZjIxZWI4IiwiXzB4NGY0M2E1IiwiXzB4NTE1ODE1IiwiXzB4NGU0N2YiLCJfMHg0YTFjNTAiLCJfMHg1YzkxYjQiLCJfMHgzOWI4ZmEiLCJfMHg1NjUwYjciLCJfMHg1ODhmMTQiLCJfMHgyNzA0ZmQiLCJfMHgzNTBhNGUiLCJfMHgyNWQxMDEiLCJfMHg0ZDZlZmQiLCJfMHgxYTQxNWYiLCJfMHg1NTMwNzAiLCJfMHgyZTBiZWUiLCJfMHg0ZDFhYzciLCJfMHg1OWIwNzMiLCJfMHgyZWNmYTEiLCJSRUQiLCJfMHg0YzQ1ZDEiLCJfMHhlZjk2NDEiLCJfMHg1ZWVmOTYiLCJfMHg1ZjExOGIiLCJfMHg0ODE1MzYiLCJfMHgxNDI0ZSIsIl8weDUzNDQ3NCIsIl8weDU1ZDlhNCIsIl8weDNkNzVlNSIsIl8weDMwMWU4MiIsIl8weDIxYzhlNSIsIl8weDNmMzk3NiIsIl8weDFjNTAwZiIsIl8weDU5YzIzNyIsIl8weGQ4YWFmMSIsImpzb24iLCJfMHg0MzZkMDQiLCJkYXRhIiwiXzB4Mzg1YTUzIiwiXzB4MjdmOTJlIiwiXzB4NDNlNzhhIiwiXzB4MzQ4MmY1Iiwic2V0VGltZW91dCIsIl8weDU0MWY5ZCIsIl8weDM5MTkyMCIsIl8weDQyNzgxMCIsIl8weDE5OTQ4OSIsIl8weDExODdmMSIsIl8weDRkYzc1MSIsIl8weDNjNWE2NSIsIl8weDQ0MGVhZCIsIl8weDJiZjllNSIsIl8weDcxYWNlOCIsIl8weDJlOWVhYyIsIl8weDQ2MmZmYyIsIl8weDFjODY3MCIsIl8weDQ1OWUwOSIsIl8weDNlYWExZSIsIl8weDQzYmVmMSIsIl8weDQ2ZGZhMSIsIl8weDEzMjE2NyIsIl8weGQ1OGYyMyIsIl8weDNmZGRjNiIsIl8weDMyNzU0NiIsIiQiLCJfMHhhOTYzZWQiLCJfMHg3NTJmYjciLCJpY29uIiwiXzB4NDQ1ZWE1IiwiY29sb3IiLCJfMHgzMDdjNTciLCJfMHgyYzQyMTEiLCJfMHg3YmY5ZjQiLCJfMHg1NWJjMjMiLCJfMHgzZmU2YjUiLCJfMHg1MDM2MzMiLCJfMHg0MzhkMDIiLCJfMHgxYTEwMjQiLCJfMHg0MDY1ODgiLCJfMHg4YjBkMjAiLCJfMHg0ZmE2Y2YiLCJfMHgxMzMwOGQiLCJfMHg0ODgzNmQiLCJfMHgxZjQ0NjgiLCJfMHhiODdjZjAiLCJfMHg1MTRlYTUiLCJfMHg1YmY5ZmIiLCJfMHg1NTdmMTUiLCJfMHgzZjRiMjQiLCJfMHgyYWZlNTUiLCJfMHg1OGQzMzkiLCJfMHg1MWI0NzYiLCJfMHg1OWRjNWUiLCJ1bmRlZmluZWQiLCJfMHgzMjBhMDMiLCJfMHgyYTgwNzYiLCJfMHg1NWFlYmMiLCJfMHgxNzUxZTAiLCJfMHgxY2JlMmMiLCJfMHg0ZTZiN2QiLCJfMHg1ZjQ4YzYiLCJfMHhjMGRjMCIsIl8weDMzNjQxYiIsIl8weDUxMjUwZCIsIl8weDUzMTRmYyIsIl8weDJmZjgwNSIsIl8weDE5YTc2YiIsIl8weDczMjlkZSIsInJlZmVyZW5jZXMiLCJfMHgyNjEzMDUiLCJfMHgyZmIyZjQiLCJfMHgyYWIxMDMiLCJfMHgxN2E0ZTAiLCJfMHgyYzNlZGEiLCJfMHg0ZjlhNzYiLCJfMHg1NjY2ZDgiLCJfMHg0Yjg4OGYiLCJfMHg1YTkzNzAiLCJfMHgzYzJlNDciLCJfMHg1ZDYxMzEiLCJfMHgzMzBlNDIiLCJfMHgzMzNmN2IiLCJfMHg1ZTQ3ZDQiLCJfMHgxMDdhOWQiLCJfMHgxMTY2ZmEiLCJfMHgzNGQwN2EiLCJfMHgyMjhjODMiLCJfMHgxNzc2ZmYiLCJfMHgyYmMwMjYiLCJfMHg0OWY1YjAiLCJfMHgxMGRiZDYiLCJfMHg1MzUxY2YiLCJfMHg0NWI3NjYiLCJfMHgzNTVhMjMiLCJfMHg1MWRmMTEiLCJfMHgxZTIxMmQiLCJfMHgxZTIwMjYiLCJfMHgzN2NjZTMiLCJfMHgzN2M1OTIiLCJkb2N1bWVudCIsIl8weDUwN2RjOSIsIl8weDEzY2M2YyIsIl8weDVjMjI2YyIsIl8weDNmNzI4NiIsIl8weDUwMDE2ZiIsIl8weDM1ODk4NSIsIl8weDM2ZmY0YyIsIl8weDU2ZWMwMyIsIl8weDI3M2YyMCIsIl8weDMwM2M5MiIsIl8weDU1ODEzMCIsIl8weDRhNzYxZSIsIl8weDIxNzhmMyIsIl8weDNiMjQwNyIsIl8weDQ2YjkxOCIsIl8weDE0NDI5YSIsIl8weDM4YzkwNCIsIl8weDM5OWI5OSIsIl8weDFmMzM5OSIsIndpbmRvdyIsIl8weDliOGM1NiIsIl8weDU1M2I3NiIsIl8weDEzNDczOSIsIl8weDUyZjFiYSIsIl8weDI4M2I2ZSIsIl8weDVkOWY1NCIsIl8weDRlMzYyZCIsIl8weDQ5ZGQ4ZSIsIl8weDhmMmEyNyIsIl8weDJmYmFiMSIsIl8weDI1YTYxMCIsIl8weDViMjQwZSIsIl8weDE2MmI5YyIsIl8weDEwZGQ0NyIsIl8weGZjMTBiYiIsIl8weDYyYzE2YSIsIl8weDViNmExNSIsIl8weDQyYzkzYSIsIl8weDM0NTM2OSIsIl8weDM0NDQxYSIsIl8weDM3YmY3MCIsIl8weDU5OGE0ZiIsIl8weDU4Njk5YSIsIl8weDNiODk2MyIsIl8weDE3ZTZhZSIsIl8weDI2ZWU4MiIsIl8weDFjNmMxMiIsIl8weDVjOWI1YSIsIl8weDRmNmFhZCIsIl8weDNmYTQ0YiIsIl8weDMxMGYyYyIsIl8weDVjZTE4MyIsIl8weGU3YTU4MSIsIl8weDM3YjcxMCIsIl8weDUxYjRmMiIsIl8weDM4ZjUyZSIsIl8weDNiMjU3YSIsIl8weDI5NjdmZCIsIl8weDM5ODgzYSIsIl8weDFhMzRjYSIsIl8weDRiODYxOSIsIl8weDJjZDcxYyIsIl8weDIwY2Q3YSIsIl8weGRmZDkwOSIsIl8weDE2ODc4OCIsIl8weDJmZDZhNiIsIl8weDIzZmJlMyIsIl8weDIwYTFiYiIsIl8weDNjMmVlMiIsIl8weDFjNzFlMiIsIl8weDQwZjQxZCIsIl8weDM0YzA0OCIsIl8weDM3NzllYyIsIl8weDMxNDYwYyIsIl8weDI4NzU5MSIsIl8weDJkZWIxYyIsIl8weDJiZmRhNiIsIl8weDNkYjU2ZSIsIl8weDMwNDQ0MyIsInNlY3VyaXR5TW9kZSIsIl8weDMzNzFiZiIsInNlY3VyaXR5UG9saWN5IiwiXzB4MTY1ZmQyIiwidXNlcklkZW50aXR5VHlwZSIsIl8weDViMDk2YiIsImNyZWRlbnRpYWxzIiwiXzB4NThhYzhhIiwibmFtZXNwYWNlQWxpYXNlcyIsIl8weDM1ZDU1MiIsIl8weDQ1MjI3ZSIsIl8weGE1MGNhNSIsIl8weGIwZjMzOCIsIl8weDEzODY4YiIsIl8weDMxN2Y1NiIsIl8weDJjMGZmOSIsIl8weDJkMGJlNCIsIl8weDFhY2MwNCIsIl8weDVlNTczZSIsIl8weGYyZDg5OCIsIl8weDUwOTNlOCIsIl8weDMzMGFlZSIsIl8weDI3MTgwZSIsIl8weDI4OTZhOSJdLCJtYXBwaW5ncyI6Im82S0FBQSxDQUFDLFUsQ0FDRyxhLHdCQW1CQSxTQUFTQSxTQUFULENBQW1CQyxTQUFuQixDQUE0QkMsU0FBNUIsQ0FBd0NDLFNBQXhDLENBQTJDQyxTQUEzQyxDLENBQ0ksU0FBU0MsU0FBVCxDQUFlQyxTQUFmLEMsUUFBK0JBLFNBQUEsWUFBaUJILFNBQWpCLENBQXFCRyxTQUFyQixDQUE2QixJQUFJSCxTQUFKLENBQU0sU0FBVUksU0FBVixDLENBQXFCQSxTQUFBLENBQVFELFNBQVIsQyxFQUEzQixDLFNBQ3JELEdBQUssQ0FBQUgsU0FBQSxFQUFNLENBQUFBLFNBQUEsQ0FBSUssT0FBSixDQUFOLENBQUwsQ0FBeUIsU0FBVUMsU0FBVixDQUFtQkMsU0FBbkIsQyx5QkFDNUIsU0FBU0MsU0FBVCxDQUFtQkMsU0FBbkIsQyx5QkFBNEIsRyxDQUFNQyxTQUFBLENBQUtULFNBQUEsQyxnQkFBQSxFQUFlUSxTQUFmLENBQUwsQyxFQUErQixNQUFPRSxTQUFQLEMsQ0FBWUosU0FBQSxDQUFPSSxTQUFQLEMsR0FD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QSxDQUFZaEwsQ0FBQSxDLHNCQUFBLENBQWxCLENBQ01pTCxTQUFBLENBQXFCLEMsUUFDdkIsQyxnQkFEdUIsQyxpQkFFdkIsQyxFQUZ1QixDLFlBR3ZCLENBQVksQyxnQkFBRSxDLEdBQUYsQyxNQUFxQixDLGdCQUFyQixDQUhXLEMsYUFJdkIsQ0FBYSxDLE1BQUUsQyxXQUFGLENBSlUsQyxXQUt2QixDLGdCQUx1QixDLGdCQU12QixDLEtBTnVCLENBRDNCLENBU0FELFNBQUEsQyxnQkFBQSxFQUFzQmpSLE1BQUEsQyxnQkFBQSxFQUFjQSxNQUFBLEMsZ0JBQUEsRUFBYyxFQUFkLENBQWtCNFEsU0FBQSxFQUFsQixDQUFkLENBQWlFLEMsWUFBRSxDQUFZLElBQU1NLFNBQXBCLEMsY0FBd0MsQ0FBYUMsU0FBYixDLGlDQUNoSEEsU0FBQSxDLFdBQUEsSSxpQkFEd0UsQyxXQUVoRixDLElBRmdGLENBQWpFLENBQXRCLEMsRUFwQ2dELEMsWUF3Q3BELEUsRUF4Q29ELENBQXhELEMsRUE5aUNKLEciLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuICAgIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG4gICAgcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLlxyXG5cclxuICAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuICAgIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG4gICAgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULFxyXG4gICAgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbiAgICBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG4gICAgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUlxyXG4gICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbiAgICAvKiBnbG9iYWwgUmVmbGVjdCwgUHJvbWlzZSwgU3VwcHJlc3NlZEVycm9yLCBTeW1ib2wsIEl0ZXJhdG9yICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgY29uc3QgT3JnYW5pemVzUmVmTm9kZUlkID0gXCJucz0wO2k9MzVcIjtcbiAgICBjb25zdCBGb2xkZXJUeXBlID0gXCJucz0wO2k9NjFcIjtcbiAgICBjb25zdCBIYXNDb21wb25lbnRSZWZOb2RlSWQgPSBcIm5zPTA7aT00N1wiO1xuICAgIGNvbnN0IEhhc1Byb3BlcnR5UmVmTm9kZUlkID0gXCJucz0wO2k9NDZcIjtcbiAgICBjb25zdCBIYXNDaGlsZFJlZk5vZGVJZCA9IFwibnM9MDtpPTM0XCI7XG4gICAgY29uc3QgSGFzU3VidHlwZVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ1XCI7XG4gICAgY29uc3QgSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQgPSBcIm5zPTA7aT00MFwiO1xuXG4gICAgdmFyIEJyb3dzZURpcmVjdGlvbjtcbiAgICAoZnVuY3Rpb24gKEJyb3dzZURpcmVjdGlvbikge1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiRm9yd2FyZFwiXSA9IDBdID0gXCJGb3J3YXJkXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZlcnNlXCJdID0gMV0gPSBcIkludmVyc2VcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkJvdGhcIl0gPSAyXSA9IFwiQm90aFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52YWxpZFwiXSA9IDNdID0gXCJJbnZhbGlkXCI7XG4gICAgfSkoQnJvd3NlRGlyZWN0aW9uIHx8IChCcm93c2VEaXJlY3Rpb24gPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3M7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlVuc3BlY2lmaWVkXCJdID0gMF0gPSBcIlVuc3BlY2lmaWVkXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzcyB8fCAoTm9kZUNsYXNzID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzTWFzaztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzc01hc2spIHtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzc01hc2sgfHwgKE5vZGVDbGFzc01hc2sgPSB7fSkpO1xuICAgIHZhciBSZXN1bHRNYXNrO1xuICAgIChmdW5jdGlvbiAoUmVzdWx0TWFzaykge1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMV0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiSXNGb3J3YXJkXCJdID0gMl0gPSBcIklzRm9yd2FyZFwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJOb2RlQ2xhc3NcIl0gPSA0XSA9IFwiTm9kZUNsYXNzXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkJyb3dzZU5hbWVcIl0gPSA4XSA9IFwiQnJvd3NlTmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJEaXNwbGF5TmFtZVwiXSA9IDE2XSA9IFwiRGlzcGxheU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiVHlwZURlZmluaXRpb25cIl0gPSAzMl0gPSBcIlR5cGVEZWZpbml0aW9uXCI7XG4gICAgfSkoUmVzdWx0TWFzayB8fCAoUmVzdWx0TWFzayA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZ2FuaXplc1JlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNQcm9wZXJ0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNQcm9wZXJ0eVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ29tcG9uZW50UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NoaWxkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NoaWxkUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1N1YnR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzU3VidHlwZVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNUeXBlRGVmaW5pdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldEljb24gPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVmZXJlbmNlLm5vZGVDbGFzcykge1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBPcmdhbml6ZXNSZWZOb2RlSWQpIDtcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnR5cGVEZWZpbml0aW9uID09PSBGb2xkZXJUeXBlIHx8IHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IFwiaT02MVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtZm9sZGVyXCIsIGNvbG9yOiBcInJnYmEoNjEsIDYwLCA0LCAwLjUyNSlcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJTZWFHcmVlblwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzQ29tcG9uZW50UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiU3RlZWxCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzUHJvcGVydHlSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJEb2RnZXJCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiTWV0aG9kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1jb2dcIiwgY29sb3I6IFwiU2FuZHlCcm93blwiIH07XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0VHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtc2xpZGVyc1wiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJEYXRhVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtdGV4dC13aWR0aFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGljb246IFwiZmEtcXVlc3Rpb25cIiwgY29sb3I6IFwiZ3JleVwiIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGJyb3dzZSA9IChfYSwgbm9kZUlkXzEsIHRlbXBsYXRlXzEpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgbm9kZUlkXzEsIHRlbXBsYXRlXzFdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCwgdGVtcGxhdGUpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWZvci1ub2RlLXJlZGA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2Jyb3dzZWA7XG4gICAgICAgIGNvbnN0IGJyb3dzZURlc2NyaXB0aW9uID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB0ZW1wbGF0ZSksIHsgbm9kZUlkLCByZXN1bHRNYXNrOiA2MyB9KTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgYnJvd3NlRGVzY3JpcHRpb24sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoaW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlczogW10gfTtcbiAgICAgICAgfVxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcImJyb3dzZSBmZXRjaGVkIDogXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICBjb25zdCByZWZlcmVuY2VzID0gcmVzcG9uc2UuYnJvd3NlUmVzdWx0LnJlZmVyZW5jZXMgfHwgW107XG4gICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXMgfTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHRlbXBsYXRlMSA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzQ2hpbGRcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB0ZW1wbGF0ZTIgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIk9yZ2FuaXplc1wiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IHdhbGtCYWNrd2FyZCA9IChfYSwgX2IpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgX2JdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIHsgbm9kZUlkLCByb290Tm9kZUlkLCBpc1R5cGUgfSkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZm9yLW5vZGUtcmVkYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vd2Fsay1iYWNrd2FyZGA7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgICAgICByb290Tm9kZUlkLFxuICAgICAgICAgICAgICAgIGlzVHlwZSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGpzb24gPSAoeWllbGQgZGF0YS5qc29uKCkpO1xuICAgICAgICByZXR1cm4ganNvbi5icm93c2VQYXRoO1xuICAgIH0pO1xuICAgIGNvbnN0IGNob29zZU5vZGVJZCA9IChkYXRhLCBtb2RlKSA9PiB7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1c0NvZGUgIT09IFwiR29vZFwiKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0YS5yZXF1ZXN0ZWROb2RlSWQ7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICAgICAgICBjYXNlIFwiYnJvd3NlUGF0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLmJwX2luZGV4ZWQ7XG4gICAgICAgICAgICBjYXNlIFwiYWxpYXNlZEJyb3dzZVBhdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5icF9hbGlhc2VkIHx8IGRhdGEuYnBfaW5kZXhlZDtcbiAgICAgICAgICAgIGNhc2UgXCJhbGlhc2VkTm9kZUlkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEubm9kZUlkX2FsaWFzZWQgfHwgZGF0YS5ub2RlSWRfbnN1O1xuICAgICAgICAgICAgY2FzZSBcIm5zdU5vZGVJRFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLm5vZGVJZF9uc3U7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgY2FzZSBcIm5vZGVJZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLm5vZGVJZDtcbiAgICAgICAgfVxuICAgIH07XG4gICAgY29uc3QgbWFrZVRvb2x0aXAgPSAoZGF0YSkgPT4ge1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXNDb2RlICE9PSBcIkdvb2RcIikge1xuICAgICAgICAgICAgcmV0dXJuIGBzdGF0dXNDb2RlOiAke2RhdGEuc3RhdHVzQ29kZX1gO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbGV0IHN0ciA9IFtdO1xuICAgICAgICAgICAgc3RyLnB1c2goYG5vZGVJZDogJHtkYXRhLm5vZGVJZH1gKTtcbiAgICAgICAgICAgIHN0ci5wdXNoKGBicm93c2UgcGF0aDogJHtkYXRhLmJwX2luZGV4ZWR9YCk7XG4gICAgICAgICAgICBzdHIucHVzaChgbm9kZSBjbGFzczogJHtOb2RlQ2xhc3NbZGF0YS5ub2RlQ2xhc3NdfWApO1xuICAgICAgICAgICAgaWYgKGRhdGEubm9kZUlkX25zdSkge1xuICAgICAgICAgICAgICAgIHN0ci5wdXNoKGBuc3Ugbm9kZUlkOiAke2RhdGEubm9kZUlkX25zdX1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLm5vZGVJZF9hbGlhc2VkKSB7XG4gICAgICAgICAgICAgICAgc3RyLnB1c2goYGFsaWFzZWQgTm9kZUlkOiAke2RhdGEubm9kZUlkX2FsaWFzZWR9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5icF9pbmRleGVkKSB7XG4gICAgICAgICAgICAgICAgc3RyLnB1c2goYGFsaWFzZWQgYnJvd3NlUGF0aDogJHtkYXRhLmJwX2FsaWFzZWR9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gc3RyLmpvaW4oXCJcXG5cIik7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGZ1bmN0aW9uIGZpZ3VyZU91dE1vZGUoZW5oYW5jZWROb2RlSWQpIHtcbiAgICAgICAgaWYgKGVuaGFuY2VkTm9kZUlkLm1hdGNoKC9ebnN1PS8pKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJuc3VOb2RlSURcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW5oYW5jZWROb2RlSWQubWF0Y2goL14obnM9Lio7KT8oaXxifHN8Zyk9LykpIHtcbiAgICAgICAgICAgIHJldHVybiBcIm5vZGVJZFwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbmhhbmNlZE5vZGVJZC5tYXRjaCgvXm5zYT0vKSkge1xuICAgICAgICAgICAgcmV0dXJuIFwiYWxpYXNlZE5vZGVJZFwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbmhhbmNlZE5vZGVJZC5tYXRjaCgvXihcXC98XFwuKVswLTldKzovKSkge1xuICAgICAgICAgICAgcmV0dXJuIFwiYnJvd3NlUGF0aFwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbmhhbmNlZE5vZGVJZC5tYXRjaCgvXihcXC98XFwuKS4qOi8pKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJicm93c2VQYXRoXCI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZmlndXJlT3V0TWVuVUl0ZW1WYWx1ZShzdHIpIHtcbiAgICAgICAgY29uc3QgbW9kZSA9IGZpZ3VyZU91dE1vZGUoc3RyKTtcbiAgICAgICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICAgICAgICBjYXNlIFwibm9kZUlkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiblwiO1xuICAgICAgICAgICAgY2FzZSBcImFsaWFzZWROb2RlSWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJuYVwiO1xuICAgICAgICAgICAgY2FzZSBcIm5zdU5vZGVJRFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm5zdVwiO1xuICAgICAgICAgICAgY2FzZSBcImJyb3dzZVBhdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJiXCI7XG4gICAgICAgICAgICBjYXNlIFwiYWxpYXNlZEJyb3dzZVBhdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJhYlwiO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJ0XCI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gdG9Nb2RlKHYpIHtcbiAgICAgICAgbGV0IG1vZGU7XG4gICAgICAgIHN3aXRjaCAodikge1xuICAgICAgICAgICAgY2FzZSBcIm5cIjpcbiAgICAgICAgICAgICAgICBtb2RlID0gXCJub2RlSWRcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJuYVwiOlxuICAgICAgICAgICAgICAgIG1vZGUgPSBcImFsaWFzZWROb2RlSWRcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJuc3VcIjpcbiAgICAgICAgICAgICAgICBtb2RlID0gXCJuc3VOb2RlSURcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJiXCI6XG4gICAgICAgICAgICAgICAgbW9kZSA9IFwiYnJvd3NlUGF0aFwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcImFiXCI6XG4gICAgICAgICAgICAgICAgbW9kZSA9IFwiYWxpYXNlZEJyb3dzZVBhdGhcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbW9kZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZnJvbU1vZGUobW9kZSkge1xuICAgICAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJub2RlSWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJuXCI7XG4gICAgICAgICAgICBjYXNlIFwiYWxpYXNlZE5vZGVJZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm5hXCI7XG4gICAgICAgICAgICBjYXNlIFwibnN1Tm9kZUlEXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwibnN1XCI7XG4gICAgICAgICAgICBjYXNlIFwiYnJvd3NlUGF0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcImJcIjtcbiAgICAgICAgICAgIGNhc2UgXCJhbGlhc2VkQnJvd3NlUGF0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcImFiXCI7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBcInRcIjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBfY2FsbENoZWNrTm9kZUlkID0gKF9hLCBub2RlSWRfMSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hLCBub2RlSWRfMV0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1mb3Itbm9kZS1yZWRgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9jaGVja05vZGVJZGA7XG4gICAgICAgIGNvbnN0IGVJZCA9IGVuZHBvaW50Tm9kZS5pZDtcbiAgICAgICAgY29uc3QgbiA9IFJFRC5ub2Rlcy5ub2RlKGVJZCk7XG4gICAgICAgIGNvbnNvbGUubG9nKG4ubmFtZXNwYWNlQWxpYXNlcyk7XG4gICAgICAgIG4ubmFtZXNwYWNlQWxpYXNlcztcbiAgICAgICAgY29uc3QgbmFtZXNwYWNlQWxpYXNlcyA9IGVuZHBvaW50Tm9kZS5uYW1lc3BhY2VBbGlhc2VzO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICAgICAgbmFtZXNwYWNlQWxpYXNlcyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIHJldHVybiB7IGpzb24sIGRhdGEgfTtcbiAgICB9KTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9IChfYSwgbW9kZV8xLCAkaW5wdXRFbGVtZW50XzEsICRpbmZvXzEpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgbW9kZV8xLCAkaW5wdXRFbGVtZW50XzEsICRpbmZvXzFdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG1vZGUsICRpbnB1dEVsZW1lbnQsICRpbmZvKSB7XG4gICAgICAgIGNvbnN0IGVuaGFuY2VkTm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgeyBqc29uLCBkYXRhIH0gPSB5aWVsZCBfY2FsbENoZWNrTm9kZUlkKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBlbmhhbmNlZE5vZGVJZCk7XG4gICAgICAgIGNvbnN0IHNldE5vdGlmaWNhdGlvbiA9ICh0ZXh0LCBjbGFzc05hbWUpID0+IHtcbiAgICAgICAgICAgICRpbmZvLnRleHQodGV4dCkuYWRkQ2xhc3MoXCJzdGVyZml2ZS1pbmZvXCIpLmFkZENsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAkaW5mby5zaG93KCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAkaW5mby5yZW1vdmVDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgICAgICRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgIH0sIDMwMDApO1xuICAgICAgICB9O1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nO1xuICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiISFmYWlsdXJlISFcIiArIGVuaGFuY2VkTm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0b29sdGlwID0gbWFrZVRvb2x0aXAoanNvbik7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC5hdHRyKFwidGl0bGVcIiwgdG9vbHRpcCk7XG4gICAgICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nXG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWROb2RlSWQgPSBjaG9vc2VOb2RlSWQoanNvbiwgbW9kZSk7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoc2VsZWN0ZWROb2RlSWQpO1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCJHb29kXCIsIFwib2tcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChgJHtlbmhhbmNlZE5vZGVJZH1gKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oYCR7anNvbi5zdGF0dXNDb2RlfSAke2RhdGEuc3RhdHVzVGV4dH1gLCBcImZhaWx1cmVcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gZmV0Y2hDaGlsZHJlbigkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMSk7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQyID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUyKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlczogWy4uLmJyb3dzZVJlc3VsdDEucmVmZXJlbmNlcywgLi4uYnJvd3NlUmVzdWx0Mi5yZWZlcmVuY2VzXSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB0ZW1wbGF0ZVNUID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNTdWJ0eXBlXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHwgTm9kZUNsYXNzLk9iamVjdFR5cGUgfCBOb2RlQ2xhc3MuRGF0YVR5cGUgfCBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlLFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGZldGNoU3VidHlwZXMoJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZVNUKTtcbiAgICAgICAgICAgIHJldHVybiBicm93c2VSZXN1bHQxO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgbWFrZUVsZW1lbnQgPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICAgICAgaWYgKCFyZWZlcmVuY2UgfHwgIXJlZmVyZW5jZS5ub2RlSWQpIHtcbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgZmEtZXJyb3JcIiBzdHlsZT1cImNvbG9yOnJlZDtcIj48L2k+bm8gcmVmZXJlbmNlICE8dWw+PC91bD48L2xpPmApO1xuICAgICAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG4gPSByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHQgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB7IGljb24sIGNvbG9yIH0gPSBnZXRJY29uKHJlZmVyZW5jZSk7XG4gICAgICAgIGNvbnN0IHRpdGxlID0gYCgke3JlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKX0pICR7KChfYyA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MubmFtZSkgfHwgKChfZCA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLnRleHQpIHx8IFwiXCJ9YDtcbiAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGkga2V5PVwiJHtyZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCl9XCJ9PjxzcGFuIGNsYXNzPVwidHJlZS10ZXh0XCIgdGl0bGU9JHt0aXRsZX0+PGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+ICR7dH08L3NwYW4+PHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgJGVsZW1lbnQuYWRkQ2xhc3MoXCJleHBhbmRhYmxlXCIpO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwidmFsdWVcIiwgbik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgIH07XG4gICAgY29uc3QgZmluZEVsZW1lbnQgPSAobm9kZUlkLCAkdHJlZSkgPT4ge1xuICAgICAgICByZXR1cm4gJHRyZWUuZmluZChgbGlba2V5PVwiJHtub2RlSWR9XCJdYCk7XG4gICAgfTtcbiAgICBjb25zdCBzZWxlY3RTaW5nbGUgPSAodGhhdCwgJGxpKSA9PiB7XG4gICAgICAgIHRoYXQuJHRyZWUuZmluZChcImxpID4gLnRyZWUtdGV4dFwiKS5yZW1vdmVDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgICAgICAvLyBjbGVhciBhbGwgc2VsZWN0ZWQgaXRlbXNcbiAgICAgICAgJGxpLmZpbmQoXCIudHJlZS10ZXh0OmZpcnN0XCIpLmFkZENsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgfTtcbiAgICBjb25zdCBhdXRvRXhwYW5kID0gKHRoYXQsIGJyb3dzZVBhdGgsICR0cmVlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgLy8gZXhwYW5kIHRoZSB0cmVlIHRvIHNob3cgdGhlIG5vZGVJZFxuICAgICAgICBsZXQgJGN1cnJlbnQgPSAkdHJlZS5jaGlsZHJlbihcIjpmaXJzdFwiKTtcbiAgICAgICAgYnJvd3NlUGF0aC5yZWxhdGl2ZVBhdGguZWxlbWVudHMgfHwgW107XG4gICAgICAgIGNvbnN0IG5vZGVJZHMgPSBicm93c2VQYXRoLm5vZGVJZHMgfHwgW107XG4gICAgICAgIGlmIChub2RlSWRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgbiBvZiBub2RlSWRzKSB7XG4gICAgICAgICAgICBpZiAoJGN1cnJlbnQuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgLy8gbmVlZCB0byBleHBhbmQgYW5kIHNlbGVjdCB0aGUgcmlnaHQgZWxlbWVudFxuICAgICAgICAgICAgICAgIHlpZWxkIF9leHBhbmRMaSh0aGF0LCAkY3VycmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IGZpbmRFbGVtZW50KG4sICRjdXJyZW50KTtcbiAgICAgICAgICAgIGlmICgkZWxlbWVudC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkY3VycmVudCA9ICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIHNlbGVjdFNpbmdsZSh0aGF0LCAkY3VycmVudCk7XG4gICAgICAgIHNjcm9sbFRvTGkodGhhdC4kZHJvcGRvd24sICRjdXJyZW50KTtcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBzY3JvbGxUb0xpKCRjb250YWluZXIsICR0YXJnZXRMaSkge1xuICAgICAgICAvLyBHZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSB0YXJnZXQgaXRlbSByZWxhdGl2ZSB0byBpdHMgY29udGFpbmVyXG4gICAgICAgIGNvbnN0IGxpUG9zID0gJHRhcmdldExpLnBvc2l0aW9uKCkudG9wO1xuICAgICAgICAvLyBHZXQgdGhlIGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uIG9mIHRoZSBjb250YWluZXJcbiAgICAgICAgY29uc3QgY29udGFpbmVyU2Nyb2xsVG9wID0gJGNvbnRhaW5lci5zY3JvbGxUb3AoKTtcbiAgICAgICAgaWYgKGNvbnRhaW5lclNjcm9sbFRvcCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHBvc2l0aW9uIHRvIHNjcm9sbCB0byAoY3VycmVudCBzY3JvbGwgKyBpdGVtJ3MgcG9zaXRpb24pXG4gICAgICAgIC8vIEFkanVzdCB0aGlzIGNhbGN1bGF0aW9uIGJhc2VkIG9uIHlvdXIgbmVlZHNcbiAgICAgICAgY29uc3Qgc2Nyb2xsVG8gPSBjb250YWluZXJTY3JvbGxUb3AgKyBsaVBvcyAtICRjb250YWluZXIuaGVpZ2h0KCkgLyAyICsgJHRhcmdldExpLmhlaWdodCgpIC8gMjtcbiAgICAgICAgLy8gU2Nyb2xsIHRoZSBjb250YWluZXIgdG8gZW5zdXJlIHRoZSBpdGVtIGlzIHZpc2libGVcbiAgICAgICAgJGNvbnRhaW5lci5hbmltYXRlKHtcbiAgICAgICAgICAgIHNjcm9sbFRvcDogc2Nyb2xsVG8sXG4gICAgICAgIH0sIDUwMCk7IC8vIEFkanVzdCB0aGUgZHVyYXRpb24gKDUwMG1zKSBhcyBuZWVkZWRcbiAgICB9XG4gICAgY29uc3QgcmVhY2hTZWxlY3Rpb24gPSAodGhhdCwgcGFyZW50Tm9kZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IG5vZGVJZCA9IHRoYXQuJGlucHV0LnZhbCgpO1xuICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgcm9vdE5vZGVJZDogcGFyZW50Tm9kZS5ub2RlSWQsXG4gICAgICAgICAgICBpc1R5cGU6IHRoYXQub3B0aW9ucy5pc1R5cGVSZWYgfHwgZmFsc2UsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgY29uc3QgYnJvd3NlUGF0aCA9IHlpZWxkIHdhbGtCYWNrd2FyZChkYXRhLCBvcHRpb25zKTtcbiAgICAgICAgaWYgKCFicm93c2VQYXRoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgeWllbGQgYXV0b0V4cGFuZCh0aGF0LCBicm93c2VQYXRoLCB0aGF0LiR0cmVlKTtcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBfZmV0Y2hEYXRhRm9yTm9kZSh0aGF0LCAkbm9kZSwgZmV0Y2hGdW5jLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwibG9hZGluZ1wiKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICRub2RlLmFwcGVuZCgnPGRpdiBjbGFzcz1cInNwaW5uZXJcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgcmVmZXJlbmNlcyB9ID0geWllbGQgZmV0Y2hGdW5jKCRub2RlLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAvLyBzb3J0IHJlZmVyZW5jZSAgIGJ5IGJyb3dzZU5hbWVcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VzLnNvcnQoKGEsIGIpID0+IHsgdmFyIF9hLCBfYjsgcmV0dXJuICgoKF9hID0gYS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EubmFtZSkgfHwgXCJcIikubG9jYWxlQ29tcGFyZSgoKF9iID0gYi5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgXCJcIik7IH0pO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5maWx0ZXIgJiYgIXRoYXQub3B0aW9ucy5maWx0ZXIocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWFrZUNvbm5lY3Rpb24odGhhdCkge1xuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgZnVuY3Rpb24gX2V4cGFuZExpKHRoYXQsICRsaSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgY29uc3QgZiA9ICF0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmID8gZmV0Y2hDaGlsZHJlbiA6IGZldGNoU3VidHlwZXM7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHlpZWxkIF9mZXRjaERhdGFGb3JOb2RlKHRoYXQsICRsaSwgZiwgZGF0YSk7XG4gICAgICAgICAgICAgICAgLy8gbWFyayBhcyBleHBhbmRlZFxuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgZGVmYXVsdFBhcmVudE5vZGUgPSB7XG4gICAgICAgIGJyb3dzZU5hbWU6IHsgbmFtZXNwYWNlSW5kZXg6IDAsIG5hbWU6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgIG5vZGVDbGFzczogXCJPYmplY3RcIixcbiAgICAgICAgbm9kZUlkOiBcIm5zPTA7aT04NVwiLFxuICAgICAgICBkaXNwbGF5TmFtZTogeyB0ZXh0OiBcIk9iamVjdHNcIiB9LFxuICAgICAgICB0eXBlRGVmaW5pdGlvbjogRm9sZGVyVHlwZSxcbiAgICB9O1xuICAgIGNvbnN0IGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFsgVGVtcGVyYXR1cmUgIF1cbiAgICAgICAgICogICAoIHRvb2x0aXAgOiAoL09iamVjdHMvTXlTZW5zb3IpIChucz0xO3M9VGVtcGVyYXR1cmUpKVxuICAgICAgICAgKiBbICsgW0ZvbGRlcl0gT2JqZWN0c11cbiAgICAgICAgICogWyAgICAgW09iamVjdF0gTXlTZW5zb3JdXG4gICAgICAgICAqIFsgICAgICggKSBbVmFyaWFibGVdIFRlbXBlcmF0dXJlXVxuICAgICAgICAgKi9cbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5ub2RlQnJvd3NlclwiLCB7XG4gICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6ICgpID0+ICh7IGVuZHBvaW50OiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzXCIgfSksXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlOiAoKSA9PiBkZWZhdWx0UGFyZW50Tm9kZSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6ICgpID0+IHRydWUsXG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgICAgICBpc1R5cGVSZWY6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc29sdmVQYXJlbnROb2RlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5fX3BhcmVudE5vZGUgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdHlwZW9mIHRoYXQub3B0aW9ucy5wYXJlbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZS5jYWxsKHRoYXQpIDogdGhhdC5vcHRpb25zLnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYSBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkZXNjID0geWllbGQgYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9fcGFyZW50Tm9kZSA9IGRlc2M7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9fcGFyZW50Tm9kZSA9IGE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoYXQuX19wYXJlbnROb2RlIHx8IGRlZmF1bHRQYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc2V0KCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICAvLyBhbHNvIHJlc2V0IHBhcmVudCBub2RlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0aGF0O1xuICAgICAgICAgICAgICAgICAgICBhLl9fcGFyZW50Tm9kZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnROb2RlID0geWllbGQgdGhpcy5yZXNvbHZlUGFyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KHBhcmVudE5vZGUpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuY3VycmVudFBhcmVudCA9IHBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdmVyaWZ5KG1vZGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgICAgIGludGVybmFsVmVyaWZ5KGRhdGEsIG1vZGUsIHRoYXQuJGlucHV0LCB0aGF0LiRpbmZvKS50aGVuKChzdWNjZXNzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJzdGVyZml2ZS1pbnB1dC1lcnJvclwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLnJlbW92ZUNsYXNzKFwic3RlcmZpdmUtaW5wdXQtZXJyb3JcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfaGlkZU1lbnUobWVudSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9mZihcIm1vdXNlZG93bi5yZWQtdWktdHlwZWRJbnB1dC1jbG9zZS1wcm9wZXJ0eS1zZWxlY3RcIik7XG4gICAgICAgICAgICAgICAgbWVudS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgbWVudS5jc3Moe1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiYXV0b1wiLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChtZW51Lm9wdHMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdGVkID0gW107XG4gICAgICAgICAgICAgICAgICAgIG1lbnUuZmluZCgnaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdJykuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5wcm9wKFwiY2hlY2tlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkLnB1c2goJCh0aGlzKS5kYXRhKFwidmFsdWVcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgbWVudS5jYWxsYmFjayhzZWxlY3RlZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGF0LiRlbGVtZW50RGl2LmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgICAvL3h4IH0gZWxzZSBpZiAodGhpcy4kb3B0aW9uU2VsZWN0VHJpZ2dlci5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8veHggICAgIHRoYXQuJG9wdGlvblNlbGVjdFRyaWdnZXIudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlci50cmlnZ2VyKFwiZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGVNZW51KG1lbnVPcHRpb25zLCBvcHRzLCBjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIHZhciB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBjb25zdCBtZW51ID0gJChcIjxkaXY+XCIpLmFkZENsYXNzKFwic3RlcmZpdmUtdHlwZWRJbnB1dC1vcHRpb25zIHN0ZXJmaXZlLW9ubGluZS1tZW51XCIpO1xuICAgICAgICAgICAgICAgIG1lbnUub3B0cyA9IG9wdHM7XG4gICAgICAgICAgICAgICAgbWVudS5jYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgICAgICAgICAgICAgIG1lbnVPcHRpb25zLmZvckVhY2goKG9wdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG9wdCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3B0ID0geyB2YWx1ZTogb3B0LCBsYWJlbDogb3B0IH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmFyIG9wID0gJCgnPGEgaHJlZj1cIiNcIj48L2E+JykuYXR0cihcInZhbHVlXCIsIG9wdC52YWx1ZSkuYXBwZW5kVG8obWVudSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcHQubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wLnRleHQob3B0LmxhYmVsKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3B0LnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcC5wcm9wKFwidGl0bGVcIiwgb3B0LnRpdGxlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3B0Lmljb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcHQuaWNvbi5pbmRleE9mKFwiPFwiKSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQob3B0Lmljb24pLnByZXBlbmRUbyhvcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChvcHQuaWNvbi5pbmRleE9mKFwiL1wiKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiPGk+XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwicmVkLXVpLXR5cGVkSW5wdXQtaWNvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogXCJtYXNrLWltYWdlOiB1cmwoXCIgKyBvcHQuaWNvbiArIFwiKTsgLXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoXCIgKyBvcHQuaWNvbiArIFwiKTtcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS5wcmVwZW5kVG8ob3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIjxpPlwiLCB7IGNsYXNzOiBcInJlZC11aS10eXBlZElucHV0LWljb24gXCIgKyBvcHQuaWNvbiB9KS5wcmVwZW5kVG8ob3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3AuY3NzKHsgcGFkZGluZ0xlZnQ6IFwiMThweFwiIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICghb3B0Lmljb24gJiYgIW9wdC5sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3AudGV4dChvcHQudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHZhciBjYjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdHMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNiID0gJCgnPGlucHV0IHR5cGU9XCJjaGVja2JveFwiPicpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNzcyhcInBvaW50ZXItZXZlbnRzXCIsIFwibm9uZVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5kYXRhKFwidmFsdWVcIiwgb3B0LnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcmVwZW5kVG8ob3ApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLm9uKFwibW91c2Vkb3duXCIsIGZ1bmN0aW9uIChldnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG9wLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW9wdHMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhvcHQudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX2hpZGVNZW51KG1lbnUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2IucHJvcChcImNoZWNrZWRcIiwgIWNiLnByb3AoXCJjaGVja2VkXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgbWVudS5jc3Moe1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBcIm5vbmVcIixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBtZW51Lm9uKFwia2V5ZG93blwiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5Q29kZSA9PT0gNDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRE9XTlxuICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5jaGlsZHJlbihcIjpmb2N1c1wiKS5uZXh0KCkudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGV2dC5rZXlDb2RlID09PSAzOCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBVUFxuICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5jaGlsZHJlbihcIjpmb2N1c1wiKS5wcmV2KCkudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGV2dC5rZXlDb2RlID09PSAyNykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRVNDQVBFXG4gICAgICAgICAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX2hpZGVNZW51KG1lbnUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbWVudTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkaXNhcm1DbGljazogZmFsc2UsXG4gICAgICAgICAgICBfc2hvd01lbnUobWVudSwgcmVsYXRpdmVUbykge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRpc2FybUNsaWNrKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzYXJtQ2xpY2sgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdmFyIHBvcyA9IHJlbGF0aXZlVG8ub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgdmFyIGhlaWdodCA9IHJlbGF0aXZlVG8uaGVpZ2h0KCk7XG4gICAgICAgICAgICAgICAgdmFyIG1lbnVIZWlnaHQgPSBtZW51LmhlaWdodCgpO1xuICAgICAgICAgICAgICAgIHZhciB0b3AgPSBoZWlnaHQgKyBwb3MudG9wO1xuICAgICAgICAgICAgICAgIGlmICh0b3AgKyBtZW51SGVpZ2h0IC0gJChkb2N1bWVudCkuc2Nyb2xsVG9wKCkgPiAkKHdpbmRvdykuaGVpZ2h0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9wIC09IHRvcCArIG1lbnVIZWlnaHQgLSAkKHdpbmRvdykuaGVpZ2h0KCkgKyA1O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodG9wIDwgMCkge1xuICAgICAgICAgICAgICAgICAgICBtZW51LmhlaWdodChtZW51SGVpZ2h0ICsgdG9wKTtcbiAgICAgICAgICAgICAgICAgICAgdG9wID0gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbWVudS5jc3Moe1xuICAgICAgICAgICAgICAgICAgICB0b3A6IHRvcCArIFwicHhcIixcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogcG9zLmxlZnQgKyBcInB4XCIsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgbWVudS5zbGlkZURvd24oMTAwKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWxheShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHVpU2VsZWN0LmFkZENsYXNzKFwicmVkLXVpLXR5cGVkSW5wdXQtZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwibW91c2Vkb3duLnJlZC11aS10eXBlZElucHV0LWNsb3NlLXByb3BlcnR5LXNlbGVjdFwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QobWVudSkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5faGlkZU1lbnUobWVudSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJChldmVudC50YXJnZXQpLmNsb3Nlc3QocmVsYXRpdmVUbykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5kaXNhcm1DbGljayA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX3Nob3dUeXBlTWVudSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG93TWVudSh0aGF0LiRtZW51LCB0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHR5cGUgPSB0aGF0LnNlbGVjdGVkTWVudUl0ZW07XG4gICAgICAgICAgICAgICAgdmFyIHNlbGVjdGVkID0gdGhhdC4kbWVudS5maW5kKFwiW3ZhbHVlPSdcIiArIHR5cGUgKyBcIidcIik7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkLnRyaWdnZXIoXCJmb2N1c1wiKTtcbiAgICAgICAgICAgICAgICB9LCAxMjApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9pbml0TWVudSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyLmF0dHIoXCJ0YWJpbmRleFwiLCAtMSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlci5vbihcIm1vdXNlZG93bi5yZWQtdWktdHlwZWRJbnB1dC1mb2N1cy1ibG9ja1wiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICh0aGF0LiRtZW51KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJG1lbnUucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIGZhLWlkLWNhcmRcbiAgICAgICAgICAgICAgICBjb25zdCB0eXBlTGlzdCA9IFtcbiAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogXCJ0ZXh0XCIsIHZhbHVlOiBcInRcIiwgdGl0bGU6IFwiVmFsdWUgaXMgbm90IHZlcmlmaWVkXCIsIGljb246ICc8aSBjbGFzcz1cImZhIGZhLWZvbnRcIi9pPiAnIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIm1zZy5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIm1zZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwibm9kZSBpZCBvciAgYnJvd3NlIHBhdGggY29tZXMgZnJvbSBpbmplY3RlZCBtc2cgcGFyYW1ldGVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS1lbnZlbG9wZS1vcGVuLW9cIi8+JyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogXCJOb2RlSWRcIiwgdmFsdWU6IFwiblwiLCBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS10YWdcIi8+MSAmbmJzcDsgJyB9LFxuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiBcIkFsaWFzZWQgTm9kZUlkXCIsIHZhbHVlOiBcIm5hXCIsIGljb246ICc8aSBjbGFzcz1cImZhIGZhLWJvb2ttYXJrXCIvPiZuYnNwOyAnIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6IFwiTm9kZUlkIHdpdGggbmFtZXNwYWNlIFVyblwiLCB2YWx1ZTogXCJuc3VcIiwgaWNvbjogJzxpIGNsYXNzPVwiZmEgZmEtaWQtY2FyZFwiLz4mbmJzcDsgJyB9LFxuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiBcIkJyb3dzZVBhdGhcIiwgdmFsdWU6IFwiYlwiLCBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS10YWdcIi8+PGkgY2xhc3M9XCJmYSBmYS1maWdodGVyLWpldFwiLz4mbmJzcDsnIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIkFsaWFzZWQgQnJvd3NlIFBhdGhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcImFiXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS1ib29rbWFya1wiLz48aSBjbGFzcz1cImZhIGZhLWZpZ2h0ZXItamV0XCIvPiZuYnNwOycsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBjb25zdCBhID0gZmlndXJlT3V0TWVuVUl0ZW1WYWx1ZSh0aGF0LiRpbnB1dC52YWwoKSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZSA9IHR5cGVMaXN0LmZpbmQoKHgpID0+IHgudmFsdWUgPT09IGEpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdExhYmVsLmVtcHR5KCkuYXBwZW5kKGA8c3BhbiB0aXRsZT0keyhlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUudGl0bGUpIHx8IFwiXCJ9PiZuYnNwOyAkeyhlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUuaWNvbikgfHwgXCJcIn08L3NwYW4+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC5zZWxlY3RlZE1lbnVJdGVtID0gYTtcbiAgICAgICAgICAgICAgICBjb25zdCB0dCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kbWVudSA9IHRoaXMuX2NyZWF0ZU1lbnUodHlwZUxpc3QsIHt9LCAodikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb2RlID0gdG9Nb2RlKHYpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gb24gTWVudSBzZWxlY3RlZCAhXG4gICAgICAgICAgICAgICAgICAgICAgICB0dC52ZXJpZnkobW9kZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IHR5cGVMaXN0LmZpbmQoKHgpID0+IHgudmFsdWUgPT09IHYpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LnNlbGVjdGVkTWVudUl0ZW0gPSB2O1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RMYWJlbC5lbXB0eSgpLmFwcGVuZChgPHNwYW4gdGl0bGU9JHsoZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLnRpdGxlKSB8fCBcIlwifT4mbmJzcDsgJHsoZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLmljb24pIHx8IFwiXCJ9PC9zcGFuPmApO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJG1lbnUuYXBwZW5kVG8oZG9jdW1lbnQuYm9keSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kbWVudS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlci5zaG93KCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbW9kZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICByZXR1cm4gdG9Nb2RlKHRoYXQuc2VsZWN0ZWRNZW51SXRlbSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0TW9kZShtb2RlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgY29uc3QgcyA9IGZyb21Nb2RlKG1vZGUpO1xuICAgICAgICAgICAgICAgIHRoYXQuc2VsZWN0ZWRNZW51SXRlbSA9IHM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5jc3MoXCJib3JkZXJcIiwgXCJub25lXCIpO1xuICAgICAgICAgICAgICAgIC8vIHRoYXQuJGlucHV0LmFkZENsYXNzKFwicmVkLXVpLXR5cGVkSW5wdXRcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kZWxlbWVudERpdiA9IHRoYXQuJGlucHV0LndyYXAoXCI8ZGl2PlwiKS5wYXJlbnQoKS5hZGRDbGFzcyhcIm1haW4td3JhcHBlclwiKTtcbiAgICAgICAgICAgICAgICAvLyAjcmVnaW9uIENvbWJvIGJyb3dzZXJcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21ibyA9ICQoXCI8ZGl2Lz5cIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJzdGVyZml2ZS1jb21iby1ib3hcIik7XG4gICAgICAgICAgICAgICAgLy8gdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJyZWQtdWktdHlwZWRJbnB1dC1pbnB1dC13cmFwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcInN0ZXJmaXZlLWlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gYWRkIGJ1dHRvbiBvbiB0aGUgcmlnaHQgc2lkZVxuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gdG9nZ2xlVHJlZUJ0blxuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uIHRpdGxlPVwib3BlbiBPUENVQSBBZGRyZXNzU3BhY2UgQnJvd3NlclwiPjxpIGNsYXNzPVwiZmEgZmEtc2l0ZW1hcFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hZnRlcih0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5lZWRUb1JlYWNoU2VsZWN0aW9uID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyZWUgd2lkZ2V0IGlzIGdvaW5nIHRvIGJlY29tZSB2aXNpYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50Tm9kZSA9IHlpZWxkIHRoYXQucmVzb2x2ZVBhcmVudE5vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAhPT0gdGhhdC5jdXJyZW50UGFyZW50IHx8ICgoX2EgPSB0aGF0LmN1cnJlbnRQYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ub2RlSWQpICE9PSBwYXJlbnROb2RlLm5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB0aGF0LnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRUb1JlYWNoU2VsZWN0aW9uID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbmVlZFRvUmVhY2hTZWxlY3Rpb24gJiYgKHlpZWxkIHJlYWNoU2VsZWN0aW9uKHRoYXQsIHBhcmVudE5vZGUpKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gdmVyaWZ5QnRuXG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuID0gJChgPGJ1dHRvbiB0aXRsZT1cInZlcmlmeSBub2RlSWQgb3IgYnJvd3NlUGF0aFwiPjxpIGNsYXNzPVwiZmEgZmEtcmVmcmVzaFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hZnRlcih0aGF0LiR2ZXJpZnlCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0bi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9kZSA9IHRoYXQubW9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIW1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnZlcmlmeShtb2RlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgICAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgICAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZUlucHV0ID0gKGlucHV0KSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBsZXQgbW9kZSA9IHRoYXQubW9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIW1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbm5lY3Rpb25EYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZGF0YSwganNvbiB9ID0geWllbGQgX2NhbGxDaGVja05vZGVJZChjb25uZWN0aW9uRGF0YSwgaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChqc29uLnN0YXR1c0NvZGUubWF0Y2goL0dvb2QvKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWROb2RlSWQgPSBjaG9vc2VOb2RlSWQoanNvbiwgbW9kZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC52YWwoc2VsZWN0ZWROb2RlSWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSB0aGUgcHJlcGVuZGVkIGJ1dHRvblxuICAgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdWlTZWxlY3QgPSAkKFwiPGRpdj5cIik7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmJlZm9yZSh0aGF0LiR1aVNlbGVjdCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdFRyaWdnZXIgPSAkKCc8YnV0dG9uIHR5cGU9XCJidXR0b25cIiB0YWJpbmRleD1cIjBcIj48L2J1dHRvbj4nKS5wcmVwZW5kVG8odGhhdC4kdWlTZWxlY3QpO1xuICAgICAgICAgICAgICAgICAgICAkKCc8aSBjbGFzcz1cInJlZC11aS10eXBlZElucHV0LWljb24gZmEgZmEtY2FyZXQtZG93blwiPjwvaT4nKS50b2dnbGUodHJ1ZSkuYXBwZW5kVG8odGhhdC4kc2VsZWN0VHJpZ2dlcik7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdFRyaWdnZXIub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX3Nob3dUeXBlTWVudSgpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlclxuICAgICAgICAgICAgICAgICAgICAgICAgLm9uKFwia2V5ZG93blwiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleUNvZGUgPT09IDQwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRG93blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX3Nob3dUeXBlTWVudSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLm9uKFwiZm9jdXNcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kdWlTZWxlY3QuYWRkQ2xhc3MoXCJyZWQtdWktdHlwZWRJbnB1dC1mb2N1c1wiKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5vbihcImJsdXJcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFyIG9wdCA9IHRoYXQudHlwZU1hcFt0aGF0LnByb3BlcnR5VHlwZV07XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiAob3B0Lmhhc1ZhbHVlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kdWlTZWxlY3QucmVtb3ZlQ2xhc3MoXCJyZWQtdWktdHlwZWRJbnB1dC1mb2N1c1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdExhYmVsID0gJCgnPHNwYW4gY2xhc3M9XCJyZWQtdWktdHlwZWRJbnB1dC10eXBlLWxhYmVsXCI+PC9zcGFuPicpLmFwcGVuZFRvKHRoYXQuJHNlbGVjdFRyaWdnZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLl9pbml0TWVudSgpO1xuICAgICAgICAgICAgICAgIGlmICghdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiLCBcImVudGVyIGEgbm9kZUlkIG9yIGEgYnJvd3NlUGF0aCBcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gdGVtcG9yYXR5IGluZm8gcGFuZWxcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvID0gJChgPGRpdiBjbGFzcz1cInN0ZXJmaXZlLWluZm8tdGV4dFwiPjwvZGl2PmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgICAgICAgICAgLy8gI3JlZ2lvbiBkcm9wIGRvd24gdHJlZVxuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcInN0ZXJmaXZlLWRyb3Bkb3duXCIpLmhpZGUoKS5hcHBlbmRUbyh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApLmFwcGVuZFRvKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICAvLyB0aGF0LiRkcm9wZG93bi5zaG93KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICAgICAgICAgIC8vICNlbmRyZWdpb25cbiAgICAgICAgICAgICAgICBjb25zdCBpc09uTGVmdFNpemUgPSAoJGxpLCBldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVXaWR0aCA9IDIwOyAvLyBTZXQgd2lkdGggb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlSGVpZ2h0ID0gMjA7IC8vIFNldCBoZWlnaHQgb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFBvcyA9ICRsaS5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5wYWdlWCA+PSBlbGVtZW50UG9zLmxlZnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVggPD0gZWxlbWVudFBvcy5sZWZ0ICsgYmVmb3JlV2lkdGggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPj0gZWxlbWVudFBvcy50b3AgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPD0gZWxlbWVudFBvcy50b3AgKyBiZWZvcmVIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvZ2dsZUV4cGFuc2lvbiA9ICgkbGkpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9leHBhbmRMaSh0aGF0LCAkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUb2dnbGUgaXRzIGV4cGFuZGVkL2NvbGxhcHNlZCBzdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiZGJsY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPbkxlZnRTaXplKCRsaSwgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVFeHBhbnNpb24oJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gJGxpLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9ICRsaS5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUgJiYgIXRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zdCBpbnB1dCA9IGBbJHtkaXNwbGF5TmFtZX1dKCR7dmFsdWV9KWA7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbW9kZSA9IHRoYXQubW9kZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFtb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSA9IFwibm9kZUlkXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5zZXRNb2RlKG1vZGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplSW5wdXQodmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQuJGlucHV0LnZhbChpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdC4kaW5wdXQudmFsKGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT25MZWZ0U2l6ZSgkbGksIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRXhwYW5zaW9uKCRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0U2luZ2xlKHRoYXQsICRsaSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSB0aGUgcGFnZSB3aWxsIGhpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QodGhhdC4kY29tYm8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB0aGUgZW5kcG9pbnQgYXR0cmlidXRlcyBjb250YWluaW5nOlxuICAgICAqICAtIHRoZSBlbmRwb2ludCwgc2VjdXJpdHlNb2RlLCBzZWN1cml0eVBvbGljeSxcbiAgICAgKiAgLSB1c2VySWRlbnRpdHlUeXBlLFxuICAgICAqICAtIGNyZWRlbnRpYWxzXG4gICAgICogIC0gbmFtZXNwYWNlQWxpYXNlc1xuICAgICAqXG4gICAgICogZXh0cmFjdGVkIGZyb20gdGhlIHVpIHdpZGdldCAjbm9kZS1pbnB1dC1lbmRwb2ludFxuICAgICAqL1xuICAgIGNvbnN0IGdldEVuZFBvaW50QXR0cmlidXRlcyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCByZWROb2RlID0gUkVELm5vZGVzLm5vZGUoZW5kcG9pbnRJZCk7XG4gICAgICAgIGlmICghcmVkTm9kZSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIC8vIGNvbnN0IGNyZWRlbnRpYWxzID0gUkVELihlbmRwb2ludElkKTtcbiAgICAgICAgLy8gd2UgbmVlZCB0byBzYW5pdGl6ZSBhbmQgZXh0cmFjdCB0aGUgZW5kcG9pbnQgYXR0cmlidXRlcyBvbmx5ICggbm90IHRoZSBub2RlLXJlZCBzdHVmZilcbiAgICAgICAgY29uc3QgeyBlbmRwb2ludCwgc2VjdXJpdHlNb2RlLCBzZWN1cml0eVBvbGljeSwgdXNlcklkZW50aXR5VHlwZSwgY3JlZGVudGlhbHMsIG5hbWVzcGFjZUFsaWFzZXMgfSA9IHJlZE5vZGU7XG4gICAgICAgIGNvbnN0IHJldFZhbHVlID0ge1xuICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICBzZWN1cml0eU1vZGUsXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICBjcmVkZW50aWFscyxcbiAgICAgICAgICAgIG5hbWVzcGFjZUFsaWFzZXMsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiByZXRWYWx1ZTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVycyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCBlbmRwb2ludE5yID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgIGlmICghZW5kcG9pbnROcikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuYW1lc3BhY2VBbGlhc2VzID0gZW5kcG9pbnROci5uYW1lc3BhY2VBbGlhc2VzO1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7IG5hbWVzcGFjZUFsaWFzZXMsIGlkOiBlbmRwb2ludElkIH0sIGVuZHBvaW50TnIpO1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzLFxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBjb25zdCBpbnN0YWxsRmVlZGJhY2tXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8vIHJldHVybjtcbiAgICAgICAgLy8gZGVidWdnZXI7XG4gICAgICAgIGNvbnN0IHRyYXlDb250ZW50ID0gJChcIi5yZWQtdWktdHJheS1ib2R5XCIpO1xuICAgICAgICBjb25zb2xlLmxvZyhcImluc3RhbGxGZWVkYmFja1dpZGdldCBcIiwgdHJheUNvbnRlbnQubGVuZ3RoKTtcbiAgICAgICAgaWYgKHRyYXlDb250ZW50Lmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJpbnN0YWxsaW5nIGlmcmFtZVwiKTtcbiAgICAgICAgICAgIC8vIENyZWF0ZSB0aGUgaWZyYW1lIGVsZW1lbnRcbiAgICAgICAgICAgIGNvbnN0IGlmcmFtZSA9ICQoXCI8aWZyYW1lPjwvaWZyYW1lPlwiLCB7XG4gICAgICAgICAgICAgICAgc3JjOiBcIi9vcGN1YS1mb3Itbm9kZS1yZWQvc3VwcG9ydC1mcmFtZS5odG1sXCIsXG4gICAgICAgICAgICAgICAgc2Nyb2xsaW5nOiBcIm5vXCIsXG4gICAgICAgICAgICAgICAgc3R5bGU6IFwiYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtvdmVyZmxvdzpoaWRkZW47Ym9yZGVyOjNweFwiLFxuICAgICAgICAgICAgICAgIGFsbG93dHJhbnNwYXJlbmN5OiBcInRydWVcIixcbiAgICAgICAgICAgICAgICB3aWR0aDogXCIxODBweFwiLFxuICAgICAgICAgICAgICAgIGhlaWdodDogXCIzMHB4XCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIEFwcGVuZCB0aGUgaWZyYW1lIHRvIHRoZSBmZWVkYmFjayBlbGVtZW50XG4gICAgICAgICAgICB0cmF5Q29udGVudC5hcHBlbmQoaWZyYW1lKTtcbiAgICAgICAgICAgIC8vIFBvc2l0aW9uIHRoZSBmZWVkYmFjayBlbGVtZW50IGF0IHRoZSBib3R0b20gcmlnaHQgb2YgdGhlIHRyYXkgY29udGVudFxuICAgICAgICAgICAgaWZyYW1lLmNzcyh7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgICAgICAgICAgICByaWdodDogXCIyMHB4XCIsXG4gICAgICAgICAgICAgICAgYm90dG9tOiBcIjE2cHhcIixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1DbGllbnQyLUV4dGVuc2lvbk9iamVjdFwiLCB7XG4gICAgICAgIGNhdGVnb3J5OiBcIm9wY3VhXCIsXG4gICAgICAgIGNvbG9yOiBcIiNDMERFRURcIixcbiAgICAgICAgYWxpZ246IFwicmlnaHRcIixcbiAgICAgICAgaWNvbjogXCIuLi8uLi9pY29ucy9vcGN1YW5vZGVMb2dvLnBuZ1wiLFxuICAgICAgICBwYWxldHRlTGFiZWw6IFwiZXh0ZW5zaW9uIG9iamVjdFwiLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgaW5wdXRzOiB7IHZhbHVlOiAxIH0sXG4gICAgICAgICAgICBvdXRwdXQ6IHsgdmFsdWU6IDEgfSxcbiAgICAgICAgICAgIC8vIENvbW1vblxuICAgICAgICAgICAgbmFtZTogeyB2YWx1ZTogXCJcIiB9LFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlLCB0eXBlOiBcIk9wY1VhLUVuZHBvaW50MlwiIH0sXG4gICAgICAgICAgICBkYXRhVHlwZTogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgfSxcbiAgICAgICAgaW5wdXRzOiAxLFxuICAgICAgICBvdXRwdXRzOiAxLFxuICAgICAgICBsYWJlbCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgXCJPUENVQSBDbGllbnQgRXh0ZW5zaW9uIE9iamVjdFwiO1xuICAgICAgICB9LFxuICAgICAgICBsYWJlbFN0eWxlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSA/IFwibm9kZV9sYWJlbF9pdGFsaWNcIiA6IFwiXCI7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHByZXBhcmUoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcztcbiAgICAgICAgICAgIGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCgpO1xuICAgICAgICAgICAgaW5zdGFsbEZlZWRiYWNrV2lkZ2V0KCk7XG4gICAgICAgICAgICBub2RlLmlucHV0cyA9IDE7XG4gICAgICAgICAgICBjb25zdCAkZGF0YVR5cGUgPSAkKFwiI25vZGUtaW5wdXQtZGF0YVR5cGVcIik7XG4gICAgICAgICAgICBjb25zdCByZWZlcmVuY2VzTm9kZURlc2MgPSB7XG4gICAgICAgICAgICAgICAgbm9kZUlkOiBcImk9MjJcIixcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IFwiXCIsXG4gICAgICAgICAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJTdHJ1Y3R1cmVcIiB9LFxuICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiU3RydWN0dXJlXCIgfSxcbiAgICAgICAgICAgICAgICBub2RlQ2xhc3M6IFwiRGF0YVR5cGVcIixcbiAgICAgICAgICAgICAgICB0eXBlRGVmaW5pdGlvbjogXCJpPTBcIixcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICAkZGF0YVR5cGUubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IHBhcmVudE5vZGU6ICgpID0+IHJlZmVyZW5jZXNOb2RlRGVzYywgaXNTZWxlY3RhYmxlKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgICAgICAgICB9LCBpc1R5cGVSZWY6IHRydWUgfSkpO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkgeyB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
|
7
|
+
function _0x1137(){const _0x229d5c=['$input','NodeId\x20with\x20namespace\x20Urn','push','log',':focus','expanded','removeClass','fetching\x20failed\x20with\x20error','aliasedNodeId','/opcua-for-node-red/support-frame.html','failure','</span>','IsForward','3206vUXHYk','714600DpqQgu','$inputGroup','DarkOrange','pageY','attr','browseResult','<i\x20class=\x22red-ui-typedInput-icon\x20fa\x20fa-caret-down\x22></i>','toggleClass','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','assign','li\x20>\x20.tree-text','length','nsu','CadetBlue','NodeClass','<i\x20class=\x22fa\x20fa-envelope-open-o\x22/>','$elementDiv','css','preventDefault','Value\x20is\x20not\x20verified','SeaGreen','nodeId_aliased','opc.tcp://opcuademo.sterfive.com:26543','../../icons/opcuanodeLogo.png','Invalid','fa-question','<i\x20class=\x22fa\x20fa-tag\x22/><i\x20class=\x22fa\x20fa-fighter-jet\x22/> ','application/json','<i\x20class=\x22fa\x20fa-id-card\x22/> \x20','children','main-wrapper','Both','loading','red-ui-typedInput-icon\x20','Method','none','elements','Forward','.red-ui-tray-body','red-ui-typedInput-focus','name','match','HasChild','SuppressedError','text','hasClass','message','nodes','nodeClass','suppressed','_initMenu','Aliased\x20Browse\x20Path','position','right','prependTo','indexOf','POST','multiple','pageX','$verifyBtn','nsu\x20nodeId:\x20','selected','isTypeRef','mask-image:\x20url(','<i\x20class=\x22fa\x20fa-bookmark\x22/><i\x20class=\x22fa\x20fa-fighter-jet\x22/> ','show','remove','ns=0;i=46','fa-object-group','/walk-backward','top','expandable','<div/>','parent','statusCode:\x20','error','$info','json','requestedNodeId','$selectTrigger','_hideMenu','scrollTop','opts','verify','/checkNodeId','<div>','<i\x20class=\x22fa\x20fa-bookmark\x22/> \x20',';\x22></i>\x20','TypeDefinition','sterfive-typedInput-options\x20sterfive-online-menu','addClass','sterfive-combo-box','value','_showMenu','fa-folder','join','click','filter','aliasedBrowsePath','auto','options','namespaceAliases','\x22\x20style=\x22color:','> \x20','placeholder','tabindex','status','mousedown','DisplayName','prev','HasSubtype','<div\x20class=\x22spinner\x22></div>','nodeIds','absolute','stopPropagation','.spinner','val','i=0','ReferenceType','<span\x20title=','221522QzNnVn','before','DataType','next','11dSoOlg','disarmClick','referenceTypeId','endpointNode','statusText','bp_aliased','Organizes','573rlakMY','already\x20loading','hide','<li\x20key=\x22','call','<input\x20type=\x22checkbox\x22>','<li>error\x20','DodgerBlue','references','parentNode','</li>','ns=0;i=45','HasComponent','78BIMDUl','nsuNodeID','$dropdown','bp_indexed','registerType','body','left','string','function','localeCompare','then','stringify','after','Aliased\x20NodeId','node','BrowsePath','keyCode','node_label_italic','rgba(61,\x2060,\x204,\x200.525)','fetched','pointer-events','<div\x20class=\x22sterfive-info-text\x22></div>','height','err','selectedMenuItem','element','node\x20class:\x20','Structure','trigger','browseName','<span\x20class=\x22red-ui-typedInput-type-label\x22></span>','<i\x20class=\x22fa\x20fa-tag\x22/>1\x20 \x20','icon','each','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','change','currentParent','setMode',':first','ns=0;i=61','__parentNode','i=61','prop','9jVhPxu','throw','msg.','sterfive-input-error','target','Good','reference','!!failure!!','_showTypeMenu','><i\x20class=\x22fa\x20','fa-text-width','nodeId:\x20','#node-input-endpoint','fa-list-alt','Object','msg','Inverse','1883405sIWVLi','animate','mode','<button\x20title=\x22open\x20OPCUA\x20AddressSpace\x20Browser\x22><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','isSelectable','wrap','VariableType','1696110fLQdwr','<button\x20type=\x22button\x22\x20tabindex=\x220\x22></button>','browsePath','typeDefinition','<i\x20class=\x22fa\x20fa-font\x22/i>\x20','checked','ObjectType','Objects','aliased\x20NodeId:\x20','empty','/opcua-for-node-red','$uiSelect','fa-cog','inputs','View','title','border','aliased\x20browsePath:\x20','statusCode','Unspecified','$tree','180px',');\x20-webkit-mask-image:\x20url(','displayName','baseUrl','catch','Variable','extension\x20object','closest','toString','focus','HasProperty','.tree-text:first','data','forEach','endpoint','reset','blur','sterfive-input-group','done','slideDown','toggle','nodeId','63vwtXjl',':visible','sterfive-info','$toggleTreeBtn','BrowseName','append','red-ui-typedInput-icon','appendTo','node\x20id\x20or\x20\x20browse\x20path\x20comes\x20from\x20injected\x20msg\x20parameter','relativePath','$menu','/browse','<button\x20title=\x22verify\x20nodeId\x20or\x20browsePath\x22><i\x20class=\x22fa\x20fa-refresh\x22></i></button>','3725144NTmQMh','mousedown.red-ui-typedInput-close-property-select','30421392pXkJWH','offset','label','<i>','SteelBlue','$combo','replaceWith','$selectLabel','16px','callback','find','nodeId_nsu','ns=0;i=40','<iframe></iframe>','expandable\x20expanded'];_0x1137=function(){return _0x229d5c;};return _0x1137();}function _0x5519(_0x2ae616,_0x595db3){const _0x1137a3=_0x1137();return _0x5519=function(_0x551946,_0x34a954){_0x551946=_0x551946-0x71;let _0x33fd33=_0x1137a3[_0x551946];return _0x33fd33;},_0x5519(_0x2ae616,_0x595db3);}(function(_0x4fe31d,_0x58e19e){const _0x371860=_0x5519,_0x12fde2=_0x4fe31d();while(!![]){try{const _0x2e6ea0=-parseInt(_0x371860(0x179))/0x1*(-parseInt(_0x371860(0xf5))/0x2)+-parseInt(_0x371860(0x87))/0x3*(-parseInt(_0x371860(0xf6))/0x4)+-parseInt(_0x371860(0x98))/0x5+parseInt(_0x371860(0x186))/0x6*(parseInt(_0x371860(0x16e))/0x7)+parseInt(_0x371860(0xd7))/0x8+parseInt(_0x371860(0xca))/0x9*(parseInt(_0x371860(0x9f))/0xa)+-parseInt(_0x371860(0x172))/0xb*(parseInt(_0x371860(0xd9))/0xc);if(_0x2e6ea0===_0x58e19e)break;else _0x12fde2['push'](_0x12fde2['shift']());}catch(_0x37829f){_0x12fde2['push'](_0x12fde2['shift']());}}}(_0x1137,0x9430e),(function(){'use strict';const _0x1d1340=_0x5519;function _0x5b4b7a(_0x4b0142,_0x422361,_0x51d42,_0x4371d2){function _0x4241b1(_0x503d24){return _0x503d24 instanceof _0x51d42?_0x503d24:new _0x51d42(function(_0x57cd6f){_0x57cd6f(_0x503d24);});}return new(_0x51d42||(_0x51d42=Promise))(function(_0x4fad4c,_0x1178bb){function _0x4b82c(_0x20dbbd){const _0x5d738a=_0x5519;try{_0x11d471(_0x4371d2[_0x5d738a(0x171)](_0x20dbbd));}catch(_0x31e3ce){_0x1178bb(_0x31e3ce);}}function _0x8e62ee(_0x9e5d53){const _0x1c8ac1=_0x5519;try{_0x11d471(_0x4371d2[_0x1c8ac1(0x88)](_0x9e5d53));}catch(_0x1484aa){_0x1178bb(_0x1484aa);}}function _0x11d471(_0x88d871){const _0x3ad2a6=_0x5519;_0x88d871[_0x3ad2a6(0xc6)]?_0x4fad4c(_0x88d871['value']):_0x4241b1(_0x88d871['value'])[_0x3ad2a6(0x190)](_0x4b82c,_0x8e62ee);}_0x11d471((_0x4371d2=_0x4371d2['apply'](_0x4b0142,_0x422361||[]))['next']());});}typeof SuppressedError===_0x1d1340(0x18e)?SuppressedError:function(_0x2ca4cb,_0x40aa7c,_0x24d6d5){const _0x35f0f6=_0x1d1340;var _0x2e981e=new Error(_0x24d6d5);return _0x2e981e[_0x35f0f6(0x11e)]=_0x35f0f6(0x121),_0x2e981e[_0x35f0f6(0x141)]=_0x2ca4cb,_0x2e981e[_0x35f0f6(0x127)]=_0x40aa7c,_0x2e981e;};const _0x15f035='ns=0;i=35',_0x414405=_0x1d1340(0x83),_0x1b0485='ns=0;i=47',_0x4a7cff=_0x1d1340(0x139),_0x31b4cb='ns=0;i=34',_0x181844=_0x1d1340(0x184),_0x17eb2f=_0x1d1340(0xe5);var _0x2cc259;(function(_0x4429d4){const _0x2f5fde=_0x1d1340;_0x4429d4[_0x4429d4[_0x2f5fde(0x11b)]=0x0]=_0x2f5fde(0x11b),_0x4429d4[_0x4429d4['Inverse']=0x1]=_0x2f5fde(0x97),_0x4429d4[_0x4429d4['Both']=0x2]=_0x2f5fde(0x115),_0x4429d4[_0x4429d4['Invalid']=0x3]=_0x2f5fde(0x10e);}(_0x2cc259||(_0x2cc259={})));var _0x20a2f6;(function(_0x2cd3a0){const _0x4c5036=_0x1d1340;_0x2cd3a0[_0x2cd3a0[_0x4c5036(0xb2)]=0x0]='Unspecified',_0x2cd3a0[_0x2cd3a0['Object']=0x1]='Object',_0x2cd3a0[_0x2cd3a0['Variable']=0x2]=_0x4c5036(0xb9),_0x2cd3a0[_0x2cd3a0[_0x4c5036(0x118)]=0x4]=_0x4c5036(0x118),_0x2cd3a0[_0x2cd3a0[_0x4c5036(0xa5)]=0x8]='ObjectType',_0x2cd3a0[_0x2cd3a0[_0x4c5036(0x9e)]=0x10]=_0x4c5036(0x9e),_0x2cd3a0[_0x2cd3a0[_0x4c5036(0x16c)]=0x20]='ReferenceType',_0x2cd3a0[_0x2cd3a0[_0x4c5036(0x170)]=0x40]=_0x4c5036(0x170),_0x2cd3a0[_0x2cd3a0[_0x4c5036(0xad)]=0x80]=_0x4c5036(0xad);}(_0x20a2f6||(_0x20a2f6={})));var _0x4f26c0;(function(_0x317da8){const _0xc33320=_0x1d1340;_0x317da8[_0x317da8[_0xc33320(0x95)]=0x1]=_0xc33320(0x95),_0x317da8[_0x317da8[_0xc33320(0xb9)]=0x2]=_0xc33320(0xb9),_0x317da8[_0x317da8[_0xc33320(0x118)]=0x4]='Method',_0x317da8[_0x317da8[_0xc33320(0xa5)]=0x8]=_0xc33320(0xa5),_0x317da8[_0x317da8[_0xc33320(0x9e)]=0x10]=_0xc33320(0x9e),_0x317da8[_0x317da8['ReferenceType']=0x20]=_0xc33320(0x16c),_0x317da8[_0x317da8['DataType']=0x40]='DataType',_0x317da8[_0x317da8[_0xc33320(0xad)]=0x80]=_0xc33320(0xad);}(_0x4f26c0||(_0x4f26c0={})));var _0x865cae;(function(_0x5754fa){const _0xb6053b=_0x1d1340;_0x5754fa[_0x5754fa[_0xb6053b(0x16c)]=0x1]=_0xb6053b(0x16c),_0x5754fa[_0x5754fa[_0xb6053b(0xf4)]=0x2]=_0xb6053b(0xf4),_0x5754fa[_0x5754fa[_0xb6053b(0x104)]=0x4]=_0xb6053b(0x104),_0x5754fa[_0x5754fa[_0xb6053b(0xce)]=0x8]=_0xb6053b(0xce),_0x5754fa[_0x5754fa[_0xb6053b(0x162)]=0x10]='DisplayName',_0x5754fa[_0x5754fa[_0xb6053b(0x14e)]=0x20]=_0xb6053b(0x14e);}(_0x865cae||(_0x865cae={})));function _0xfbe5f4(_0x1a8897){const _0xd12292=_0x1d1340;switch(_0x1a8897){case'Organizes':return _0x15f035;case _0xd12292(0xbe):return _0x4a7cff;case _0xd12292(0x185):return _0x1b0485;case'HasChild':return _0x31b4cb;case'HasSubtype':return _0x181844;case'HasTypeDefinition':return _0x17eb2f;}}const _0x1e0c79=_0x27bcdb=>{const _0x2ec07b=_0x1d1340;switch(_0x27bcdb[_0x2ec07b(0x126)]){case _0x2ec07b(0x95):if(_0x27bcdb[_0x2ec07b(0x174)]===_0x15f035);if(_0x27bcdb[_0x2ec07b(0xa2)]===_0x414405||_0x27bcdb[_0x2ec07b(0x174)]===_0x2ec07b(0x85))return{'icon':_0x2ec07b(0x154),'color':_0x2ec07b(0x198)};return{'icon':_0x2ec07b(0x13a),'color':_0x2ec07b(0x10a)};case _0x2ec07b(0xb9):if(_0x27bcdb[_0x2ec07b(0x174)]===_0x1b0485)return{'icon':_0x2ec07b(0x94),'color':_0x2ec07b(0xdd)};else return _0x27bcdb[_0x2ec07b(0x174)]===_0x4a7cff?{'icon':_0x2ec07b(0x94),'color':_0x2ec07b(0x180)}:{'icon':'fa-list-alt','color':_0x2ec07b(0x103)};case'Method':return{'icon':_0x2ec07b(0xab),'color':'SandyBrown'};case _0x2ec07b(0xa5):return{'icon':_0x2ec07b(0x13a),'color':_0x2ec07b(0xf8)};case _0x2ec07b(0x9e):return{'icon':'fa-sliders','color':'DarkOrange'};case'DataType':return{'icon':_0x2ec07b(0x91),'color':_0x2ec07b(0x103)};}return{'icon':_0x2ec07b(0x10f),'color':'grey'};},_0x1a04c2=(_0x3f72da,_0x537d85,_0x1090a2)=>_0x5b4b7a(void 0x0,[_0x3f72da,_0x537d85,_0x1090a2],void 0x0,function*({endpointNode:_0x16dcf0,endpoint:_0xb51c85,baseUrl:_0x2292e7},_0x1ee342,_0x29fd8f){const _0x4800b3=_0x1d1340,_0xa208d5=_0x2292e7+_0x4800b3(0xa9),_0x1b60d1=_0xa208d5+_0x4800b3(0xd5),_0x5e46c4=Object[_0x4800b3(0xff)](Object[_0x4800b3(0xff)]({},_0x29fd8f),{'nodeId':_0x1ee342,'resultMask':0x3f}),_0x33ad66=yield fetch(_0x1b60d1,{'method':'POST','body':JSON[_0x4800b3(0x191)]({'endpointNode':_0x16dcf0,'endpoint':_0xb51c85,'browseDescription':_0x5e46c4}),'headers':{'Content-Type':_0x4800b3(0x111)}});if(_0x33ad66[_0x4800b3(0x160)]!==0xc8)return console[_0x4800b3(0xeb)](_0x4800b3(0xef),_0x33ad66[_0x4800b3(0x160)],_0x33ad66[_0x4800b3(0x176)]),{'references':[]};const _0x2d14c0=yield _0x33ad66[_0x4800b3(0x143)](),_0x3ce3de=_0x2d14c0[_0x4800b3(0xfb)][_0x4800b3(0x181)]||[];return{'references':_0x3ce3de};}),_0x433dc8={'referenceTypeId':_0xfbe5f4(_0x1d1340(0x120)),'includeSubtypes':!![],'browseDirection':_0x2cc259[_0x1d1340(0x11b)],'nodeClassMask':_0x20a2f6['Variable']|_0x20a2f6[_0x1d1340(0x95)]|_0x20a2f6[_0x1d1340(0x118)],'resultMask':0x3f},_0x100544={'referenceTypeId':_0xfbe5f4(_0x1d1340(0x178)),'includeSubtypes':!![],'browseDirection':_0x2cc259[_0x1d1340(0x11b)],'nodeClassMask':_0x20a2f6[_0x1d1340(0xb9)]|_0x20a2f6[_0x1d1340(0x95)]|_0x20a2f6[_0x1d1340(0x118)],'resultMask':0x3f},_0x584681=(_0x2d608a,_0x4548dd)=>_0x5b4b7a(void 0x0,[_0x2d608a,_0x4548dd],void 0x0,function*({endpointNode:_0x444a25,endpoint:_0x2692a0,baseUrl:_0x5752f9},{nodeId:_0x15f6a0,rootNodeId:_0xfc3140,isType:_0x5f2b7e}){const _0x30b30c=_0x1d1340,_0x39af4c=_0x5752f9+_0x30b30c(0xa9),_0x47888c=_0x39af4c+_0x30b30c(0x13b),_0x12fd31=yield fetch(_0x47888c,{'method':_0x30b30c(0x12e),'body':JSON[_0x30b30c(0x191)]({'endpointNode':_0x444a25,'endpoint':_0x2692a0,'nodeId':_0x15f6a0,'rootNodeId':_0xfc3140,'isType':_0x5f2b7e}),'headers':{'Content-Type':_0x30b30c(0x111)}});if(_0x12fd31[_0x30b30c(0x160)]!==0xc8)return null;const _0x1b9f20=yield _0x12fd31['json']();return _0x1b9f20[_0x30b30c(0xa1)];}),_0x4909f4=(_0x6c39d,_0x2f7c6d)=>{const _0x2e24b3=_0x1d1340;if(_0x6c39d[_0x2e24b3(0xb1)]!==_0x2e24b3(0x8c))return _0x6c39d[_0x2e24b3(0x144)];switch(_0x2f7c6d){case _0x2e24b3(0xa1):return _0x6c39d[_0x2e24b3(0x189)];case'aliasedBrowsePath':return _0x6c39d[_0x2e24b3(0x177)]||_0x6c39d[_0x2e24b3(0x189)];case _0x2e24b3(0xf0):return _0x6c39d[_0x2e24b3(0x10b)]||_0x6c39d[_0x2e24b3(0xe4)];case _0x2e24b3(0x187):return _0x6c39d[_0x2e24b3(0xe4)];default:case _0x2e24b3(0xc9):return _0x6c39d[_0x2e24b3(0xc9)];}},_0xcd8836=_0x1d9114=>{const _0x52b17a=_0x1d1340;if(_0x1d9114[_0x52b17a(0xb1)]!=='Good')return _0x52b17a(0x140)+_0x1d9114['statusCode'];else{let _0x55e99b=[];return _0x55e99b[_0x52b17a(0xea)](_0x52b17a(0x92)+_0x1d9114[_0x52b17a(0xc9)]),_0x55e99b[_0x52b17a(0xea)]('browse\x20path:\x20'+_0x1d9114['bp_indexed']),_0x55e99b[_0x52b17a(0xea)](_0x52b17a(0x76)+_0x20a2f6[_0x1d9114[_0x52b17a(0x126)]]),_0x1d9114['nodeId_nsu']&&_0x55e99b[_0x52b17a(0xea)](_0x52b17a(0x132)+_0x1d9114['nodeId_nsu']),_0x1d9114[_0x52b17a(0x10b)]&&_0x55e99b[_0x52b17a(0xea)](_0x52b17a(0xa7)+_0x1d9114['nodeId_aliased']),_0x1d9114[_0x52b17a(0x189)]&&_0x55e99b[_0x52b17a(0xea)](_0x52b17a(0xb0)+_0x1d9114[_0x52b17a(0x177)]),_0x55e99b[_0x52b17a(0x155)]('\x0a');}};function _0x2fac3c(_0x40a7ba){const _0x12e1aa=_0x1d1340;if(_0x40a7ba[_0x12e1aa(0x11f)](/^nsu=/))return'nsuNodeID';if(_0x40a7ba['match'](/^(ns=.*;)?(i|b|s|g)=/))return _0x12e1aa(0xc9);if(_0x40a7ba[_0x12e1aa(0x11f)](/^nsa=/))return _0x12e1aa(0xf0);if(_0x40a7ba['match'](/^(\/|\.)[0-9]+:/))return'browsePath';if(_0x40a7ba[_0x12e1aa(0x11f)](/^(\/|\.).*:/))return _0x12e1aa(0xa1);}function _0x26d517(_0x5a04b3){const _0x19f77c=_0x1d1340,_0x3dd3dc=_0x2fac3c(_0x5a04b3);switch(_0x3dd3dc){case _0x19f77c(0xc9):return'n';case _0x19f77c(0xf0):return'na';case _0x19f77c(0x187):return _0x19f77c(0x102);case _0x19f77c(0xa1):return'b';case _0x19f77c(0x158):return'ab';default:return't';}}function _0x3e0fba(_0x3ae07){const _0x59ed66=_0x1d1340;let _0x3f64fe;switch(_0x3ae07){case'n':_0x3f64fe='nodeId';break;case'na':_0x3f64fe=_0x59ed66(0xf0);break;case'nsu':_0x3f64fe='nsuNodeID';break;case'b':_0x3f64fe=_0x59ed66(0xa1);break;case'ab':_0x3f64fe=_0x59ed66(0x158);break;}return _0x3f64fe;}function _0x27fe23(_0x430d9d){const _0x5451ca=_0x1d1340;switch(_0x430d9d){case _0x5451ca(0xc9):return'n';case'aliasedNodeId':return'na';case'nsuNodeID':return'nsu';case _0x5451ca(0xa1):return'b';case _0x5451ca(0x158):return'ab';default:return't';}}const _0x68ff4f=(_0x213c00,_0x5189df)=>_0x5b4b7a(void 0x0,[_0x213c00,_0x5189df],void 0x0,function*({endpointNode:_0xc6da44,endpoint:_0xdf9024,baseUrl:_0x4a23d3},_0x345af6){const _0x3f1530=_0x1d1340,_0x225e91=_0x4a23d3+_0x3f1530(0xa9),_0x44b28b=_0x225e91+_0x3f1530(0x14a),_0x37a142=_0xc6da44['id'],_0x45bfed=RED[_0x3f1530(0x125)][_0x3f1530(0x194)](_0x37a142);console['log'](_0x45bfed['namespaceAliases']),_0x45bfed[_0x3f1530(0x15b)];const _0x49d118=_0xc6da44[_0x3f1530(0x15b)],_0x17c296=yield fetch(_0x44b28b,{'method':'POST','body':JSON[_0x3f1530(0x191)]({'endpointNode':_0xc6da44,'endpoint':_0xdf9024,'nodeId':_0x345af6,'namespaceAliases':_0x49d118}),'headers':{'Content-Type':_0x3f1530(0x111)}}),_0x258be1=yield _0x17c296[_0x3f1530(0x143)]();return{'json':_0x258be1,'data':_0x17c296};}),_0x5ac213=(_0x3c9315,_0x4e075d,_0x1ef7ef,_0x2cae1f)=>_0x5b4b7a(void 0x0,[_0x3c9315,_0x4e075d,_0x1ef7ef,_0x2cae1f],void 0x0,function*({endpointNode:_0x104f46,endpoint:_0xc11005,baseUrl:_0x88d5cc},_0x2ba6f0,_0x300476,_0x109e1f){const _0x58f947=_0x1d1340,_0x2f3fe8=_0x300476['val'](),{json:_0x4afb19,data:_0x2f8e77}=yield _0x68ff4f({'endpointNode':_0x104f46,'endpoint':_0xc11005,'baseUrl':_0x88d5cc},_0x2f3fe8),_0x39e294=(_0x3f5dce,_0x150bfe)=>{const _0x5a222b=_0x5519;_0x109e1f[_0x5a222b(0x122)](_0x3f5dce)[_0x5a222b(0x150)](_0x5a222b(0xcc))[_0x5a222b(0x150)](_0x150bfe),_0x109e1f[_0x5a222b(0x137)](),setTimeout(()=>{const _0x549522=_0x5a222b;_0x109e1f[_0x549522(0xee)](_0x150bfe),_0x109e1f[_0x549522(0x17b)]();},0xbb8);};if(_0x2f8e77['status']!==0xc8)return _0x39e294(_0x58f947(0x8e)+_0x2f3fe8,_0x58f947(0xf2)),![];else{if(_0x4afb19['statusCode']['match'](/Good/)){const _0x2f85a5=_0xcd8836(_0x4afb19);_0x300476['attr'](_0x58f947(0xae),_0x2f85a5);const _0x12e84f=_0x4909f4(_0x4afb19,_0x2ba6f0);return _0x300476[_0x58f947(0x16a)](_0x12e84f),_0x300476[_0x58f947(0x78)]('change'),_0x39e294(_0x58f947(0x8c),'ok'),!![];}else return _0x300476[_0x58f947(0x16a)](''+_0x2f3fe8),_0x39e294(_0x4afb19['statusCode']+'\x20'+_0x2f8e77[_0x58f947(0x176)],'failure'),![];}});function _0x16a569(_0x5178cb,_0x1ea143){return _0x5b4b7a(this,void 0x0,void 0x0,function*(){const _0x82d109=_0x5519,_0x605c9f=_0x5178cb['data']('value'),_0x584155=yield _0x1a04c2(_0x1ea143,_0x605c9f,_0x433dc8),_0x39fced=yield _0x1a04c2(_0x1ea143,_0x605c9f,_0x100544);return{'references':[..._0x584155[_0x82d109(0x181)],..._0x39fced[_0x82d109(0x181)]]};});}const _0x49f3c4={'referenceTypeId':_0xfbe5f4(_0x1d1340(0x164)),'includeSubtypes':!![],'browseDirection':_0x2cc259[_0x1d1340(0x11b)],'nodeClassMask':_0x20a2f6[_0x1d1340(0x16c)]|_0x20a2f6[_0x1d1340(0xa5)]|_0x20a2f6[_0x1d1340(0x170)]|_0x20a2f6['VariableType'],'resultMask':0x3f};function _0x21e455(_0x404c70,_0x387792){return _0x5b4b7a(this,void 0x0,void 0x0,function*(){const _0x54123c=_0x404c70['data']('value'),_0x48b9b8=yield _0x1a04c2(_0x387792,_0x54123c,_0x49f3c4);return _0x48b9b8;});}const _0x519f57=_0x5ef84f=>{const _0x1af933=_0x1d1340;var _0x366dea,_0x394c75,_0x4ea938,_0x83bc1d;if(!_0x5ef84f||!_0x5ef84f['nodeId']){const _0x5dc4a8=$(_0x1af933(0xfe));return _0x5dc4a8;}const _0x41229e=_0x5ef84f['nodeId'][_0x1af933(0xbc)](),_0x23a5a1=((_0x366dea=_0x5ef84f[_0x1af933(0xb6)])===null||_0x366dea===void 0x0?void 0x0:_0x366dea[_0x1af933(0x122)])||((_0x394c75=_0x5ef84f[_0x1af933(0x79)])===null||_0x394c75===void 0x0?void 0x0:_0x394c75['name'])||_0x5ef84f[_0x1af933(0xc9)][_0x1af933(0xbc)](),{icon:_0x54802a,color:_0x2abf90}=_0x1e0c79(_0x5ef84f),_0x5e7f6a='('+_0x5ef84f[_0x1af933(0xc9)][_0x1af933(0xbc)]()+')\x20'+(((_0x4ea938=_0x5ef84f[_0x1af933(0x79)])===null||_0x4ea938===void 0x0?void 0x0:_0x4ea938[_0x1af933(0x11e)])||((_0x83bc1d=_0x5ef84f['displayName'])===null||_0x83bc1d===void 0x0?void 0x0:_0x83bc1d['text'])||''),_0x45784b=$(_0x1af933(0x17c)+_0x5ef84f[_0x1af933(0xc9)][_0x1af933(0xbc)]()+'\x22}><span\x20class=\x22tree-text\x22\x20title='+_0x5e7f6a+_0x1af933(0x90)+_0x54802a+_0x1af933(0x15c)+_0x2abf90+_0x1af933(0x14d)+_0x23a5a1+'</span><ul></ul></li>');return _0x45784b[_0x1af933(0x150)](_0x1af933(0x13d)),_0x45784b['data'](_0x1af933(0x152),_0x41229e),_0x45784b[_0x1af933(0xc0)]('reference',_0x5ef84f),_0x45784b;},_0x149050=(_0x419566,_0x51111d)=>{const _0x31855f=_0x1d1340;return _0x51111d[_0x31855f(0xe3)]('li[key=\x22'+_0x419566+'\x22]');},_0x4ac971=(_0x85f7a5,_0x5f4e29)=>{const _0x295961=_0x1d1340;_0x85f7a5[_0x295961(0xb3)][_0x295961(0xe3)](_0x295961(0x100))[_0x295961(0xee)](_0x295961(0x133)),_0x5f4e29[_0x295961(0xe3)](_0x295961(0xbf))[_0x295961(0x150)](_0x295961(0x133));},_0x2900de=(_0x1a139d,_0x2fa159,_0x487fec)=>_0x5b4b7a(void 0x0,void 0x0,void 0x0,function*(){const _0x25aac1=_0x1d1340;let _0x3da286=_0x487fec[_0x25aac1(0x113)](_0x25aac1(0x82));_0x2fa159[_0x25aac1(0xd3)][_0x25aac1(0x11a)]||[];const _0x4714ec=_0x2fa159[_0x25aac1(0x166)]||[];if(_0x4714ec['length']===0x0)return;for(const _0x16a45d of _0x4714ec){_0x3da286[_0x25aac1(0x123)](_0x25aac1(0x13d))&&(yield _0xdfcf95(_0x1a139d,_0x3da286));const _0x58eca4=_0x149050(_0x16a45d,_0x3da286);if(_0x58eca4['length']===0x0)return;_0x3da286=_0x58eca4;}_0x4ac971(_0x1a139d,_0x3da286),_0x3e136c(_0x1a139d[_0x25aac1(0x188)],_0x3da286);});function _0x3e136c(_0x4b22eb,_0x5a5c6d){const _0x34f1b9=_0x1d1340,_0x535798=_0x5a5c6d[_0x34f1b9(0x12a)]()[_0x34f1b9(0x13c)],_0x142831=_0x4b22eb[_0x34f1b9(0x147)]();if(_0x142831==undefined)return;const _0x1441dc=_0x142831+_0x535798-_0x4b22eb[_0x34f1b9(0x72)]()/0x2+_0x5a5c6d[_0x34f1b9(0x72)]()/0x2;_0x4b22eb[_0x34f1b9(0x99)]({'scrollTop':_0x1441dc},0x1f4);}const _0x8263d6=(_0xbbb48d,_0x3ca596)=>_0x5b4b7a(void 0x0,void 0x0,void 0x0,function*(){const _0x39d026=_0x1d1340,_0x45c809=_0xbbb48d[_0x39d026(0xe8)]['val'](),_0x3c1b0d={'nodeId':_0x45c809,'rootNodeId':_0x3ca596[_0x39d026(0xc9)],'isType':_0xbbb48d[_0x39d026(0x15a)][_0x39d026(0x134)]||![]},_0x401333=_0xa4d8d9(_0xbbb48d),_0x20fafa=yield _0x584681(_0x401333,_0x3c1b0d);if(!_0x20fafa)return;yield _0x2900de(_0xbbb48d,_0x20fafa,_0xbbb48d[_0x39d026(0xb3)]);});function _0x328c5e(_0x31d4a1,_0x5049ee,_0x36620f,_0x537f80){return _0x5b4b7a(this,void 0x0,void 0x0,function*(){const _0x1a151e=_0x5519;if(_0x5049ee[_0x1a151e(0x123)]('fetched')){console[_0x1a151e(0xeb)]('already\x20fetched');return;}if(_0x5049ee['hasClass'](_0x1a151e(0x116))){console[_0x1a151e(0xeb)](_0x1a151e(0x17a));return;}_0x5049ee[_0x1a151e(0x150)](_0x1a151e(0x116)),_0x5049ee['append'](_0x1a151e(0x165));try{_0x5049ee[_0x1a151e(0x113)]('ul')[_0x1a151e(0xa8)]();const {references:_0x1b7724}=yield _0x36620f(_0x5049ee,_0x537f80);_0x1b7724['sort']((_0x11c550,_0x184796)=>{const _0x2df0b2=_0x1a151e;var _0x1e30b0,_0x2aec65;return(((_0x1e30b0=_0x11c550[_0x2df0b2(0x79)])===null||_0x1e30b0===void 0x0?void 0x0:_0x1e30b0['name'])||'')[_0x2df0b2(0x18f)](((_0x2aec65=_0x184796[_0x2df0b2(0x79)])===null||_0x2aec65===void 0x0?void 0x0:_0x2aec65[_0x2df0b2(0x11e)])||'');});for(const _0x3b9eb1 of _0x1b7724){if(_0x31d4a1[_0x1a151e(0x15a)][_0x1a151e(0x157)]&&!_0x31d4a1[_0x1a151e(0x15a)][_0x1a151e(0x157)](_0x3b9eb1))continue;const _0x547610=_0x519f57(_0x3b9eb1);_0x5049ee[_0x1a151e(0x113)]('ul')[_0x1a151e(0xcf)](_0x547610);}_0x5049ee[_0x1a151e(0x150)](_0x1a151e(0x199));}catch(_0x1f432a){_0x5049ee[_0x1a151e(0x113)]('ul')[_0x1a151e(0xcf)](_0x1a151e(0x17f)+_0x1f432a[_0x1a151e(0x124)]+_0x1a151e(0x183)),console[_0x1a151e(0xeb)](_0x1a151e(0x73),_0x1f432a);}_0x5049ee['find'](_0x1a151e(0x169))[_0x1a151e(0x138)](),_0x5049ee[_0x1a151e(0xee)]('loading');});}function _0xa4d8d9(_0x53d7dd){const _0x30aa21=_0x1d1340,_0x25163b={'baseUrl':_0x53d7dd[_0x30aa21(0x15a)][_0x30aa21(0xb7)],'endpointNode':typeof _0x53d7dd[_0x30aa21(0x15a)]['endpointNode']==='function'?_0x53d7dd[_0x30aa21(0x15a)][_0x30aa21(0x175)]():_0x53d7dd[_0x30aa21(0x15a)][_0x30aa21(0x175)],'endpoint':typeof _0x53d7dd[_0x30aa21(0x15a)]['endpoint']===_0x30aa21(0x18e)?_0x53d7dd[_0x30aa21(0x15a)][_0x30aa21(0xc2)]():_0x53d7dd['options'][_0x30aa21(0xc2)]};return _0x25163b;}function _0xdfcf95(_0x5ee31b,_0x505764){return _0x5b4b7a(this,void 0x0,void 0x0,function*(){const _0x5bf67e=_0x5519;if(_0x505764['hasClass'](_0x5bf67e(0x199))){_0x505764[_0x5bf67e(0xee)]('expandable')[_0x5bf67e(0x150)](_0x5bf67e(0xed)),_0x505764[_0x5bf67e(0x113)]('ul')[_0x5bf67e(0xc8)]();return;}const _0xe21565=_0xa4d8d9(_0x5ee31b),_0x4b93f5=!_0x5ee31b[_0x5bf67e(0x15a)]['isTypeRef']?_0x16a569:_0x21e455;try{yield _0x328c5e(_0x5ee31b,_0x505764,_0x4b93f5,_0xe21565),_0x505764['removeClass'](_0x5bf67e(0x13d))[_0x5bf67e(0x150)](_0x5bf67e(0xed));}catch(_0x37b1b6){_0x505764['removeClass']('expandable')[_0x5bf67e(0x150)](_0x5bf67e(0xed)),console[_0x5bf67e(0xeb)](_0x5bf67e(0x141),_0x37b1b6);}});}const _0x1552dd={'browseName':{'namespaceIndex':0x0,'name':_0x1d1340(0xa6)},'nodeClass':'Object','nodeId':'ns=0;i=85','displayName':{'text':'Objects'},'typeDefinition':_0x414405},_0x345932=()=>{const _0x25a52a=_0x1d1340;$['widget']('sterfive.nodeBrowser',{'options':{'endpointNode':()=>({'endpoint':_0x25a52a(0x10c)}),'endpoint':()=>undefined,'parentNode':()=>_0x1552dd,'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x5b4b7a(this,void 0x0,void 0x0,function*(){const _0xd9e8c5=_0x5519,_0x4accdf=this;if(_0x4accdf[_0xd9e8c5(0x84)]==undefined){const _0x12fa68=typeof _0x4accdf[_0xd9e8c5(0x15a)][_0xd9e8c5(0x182)]===_0xd9e8c5(0x18e)?_0x4accdf['options'][_0xd9e8c5(0x182)][_0xd9e8c5(0x17d)](_0x4accdf):_0x4accdf['options'][_0xd9e8c5(0x182)];if(_0x12fa68 instanceof Promise){const _0x12a0da=yield _0x12fa68;_0x4accdf[_0xd9e8c5(0x84)]=_0x12a0da;}else _0x4accdf[_0xd9e8c5(0x84)]=_0x12fa68;}return _0x4accdf[_0xd9e8c5(0x84)]||_0x1552dd;});},'reset'(){return _0x5b4b7a(this,void 0x0,void 0x0,function*(){const _0x16a32e=_0x5519,_0x4b5f62=this,_0xa67e88=_0x4b5f62;_0xa67e88[_0x16a32e(0x84)]=undefined,_0x4b5f62['$tree'][_0x16a32e(0xa8)]();const _0x1a9f49=yield this['resolveParentNode'](),_0x3d2860=_0x519f57(_0x1a9f49);_0x4b5f62['$tree']['append'](_0x3d2860),_0x4b5f62['currentParent']=_0x1a9f49;});},'verify'(_0x172aee){const _0x25f879=_0x25a52a,_0x6cf219=this,_0x586f83=_0xa4d8d9(_0x6cf219);_0x5ac213(_0x586f83,_0x172aee,_0x6cf219[_0x25f879(0xe8)],_0x6cf219[_0x25f879(0x142)])['then'](_0x280997=>{const _0x3f3e77=_0x25f879;!_0x280997?_0x6cf219[_0x3f3e77(0xde)]['addClass'](_0x3f3e77(0x8a)):_0x6cf219[_0x3f3e77(0xde)]['removeClass'](_0x3f3e77(0x8a));});},'_hideMenu'(_0x4c37b3){const _0x5c5660=_0x25a52a,_0x2df3cd=this;$(document)['off'](_0x5c5660(0xd8)),_0x4c37b3[_0x5c5660(0x17b)](),_0x4c37b3[_0x5c5660(0x107)]({'height':_0x5c5660(0x159)});if(_0x4c37b3[_0x5c5660(0x148)][_0x5c5660(0x12f)]){var _0x10f0ec=[];_0x4c37b3[_0x5c5660(0xe3)]('input[type=\x22checkbox\x22]')[_0x5c5660(0x7d)](function(){const _0x5087cc=_0x5c5660;$(this)[_0x5087cc(0x86)](_0x5087cc(0xa4))&&_0x10f0ec[_0x5087cc(0xea)]($(this)[_0x5087cc(0xc0)](_0x5087cc(0x152)));}),_0x4c37b3[_0x5c5660(0xe2)](_0x10f0ec);}_0x2df3cd['$elementDiv']['is'](':visible')?_0x2df3cd[_0x5c5660(0xe8)][_0x5c5660(0x78)]('focus'):_0x2df3cd['$selectTrigger'][_0x5c5660(0x78)]('focus');},'_createMenu'(_0x12fb30,_0x2291c6,_0x4aa1a2){const _0x41028a=_0x25a52a;var _0x4c39e8=this;const _0x25be7f=$(_0x41028a(0x14b))[_0x41028a(0x150)](_0x41028a(0x14f));return _0x25be7f[_0x41028a(0x148)]=_0x2291c6,_0x25be7f[_0x41028a(0xe2)]=_0x4aa1a2,_0x12fb30[_0x41028a(0xc1)](_0x11d905=>{const _0x2f502f=_0x41028a;typeof _0x11d905===_0x2f502f(0x18d)&&(_0x11d905={'value':_0x11d905,'label':_0x11d905});var _0x45058a=$('<a\x20href=\x22#\x22></a>')[_0x2f502f(0xfa)](_0x2f502f(0x152),_0x11d905[_0x2f502f(0x152)])['appendTo'](_0x25be7f);_0x11d905[_0x2f502f(0xdb)]&&_0x45058a[_0x2f502f(0x122)](_0x11d905[_0x2f502f(0xdb)]);_0x11d905['title']&&_0x45058a[_0x2f502f(0x86)](_0x2f502f(0xae),_0x11d905[_0x2f502f(0xae)]);if(_0x11d905[_0x2f502f(0x7c)]){if(_0x11d905[_0x2f502f(0x7c)][_0x2f502f(0x12d)]('<')===0x0)$(_0x11d905['icon'])[_0x2f502f(0x12c)](_0x45058a);else _0x11d905['icon'][_0x2f502f(0x12d)]('/')!==-0x1?$(_0x2f502f(0xdc),{'class':_0x2f502f(0xd0),'style':_0x2f502f(0x135)+_0x11d905['icon']+_0x2f502f(0xb5)+_0x11d905[_0x2f502f(0x7c)]+');'})['prependTo'](_0x45058a):$(_0x2f502f(0xdc),{'class':_0x2f502f(0x117)+_0x11d905[_0x2f502f(0x7c)]})[_0x2f502f(0x12c)](_0x45058a);}else _0x45058a[_0x2f502f(0x107)]({'paddingLeft':'18px'});!_0x11d905['icon']&&!_0x11d905[_0x2f502f(0xdb)]&&_0x45058a['text'](_0x11d905[_0x2f502f(0x152)]);var _0x3b4ceb;_0x2291c6[_0x2f502f(0x12f)]&&(_0x3b4ceb=$(_0x2f502f(0x17e))[_0x2f502f(0x107)](_0x2f502f(0x19a),'none')[_0x2f502f(0xc0)](_0x2f502f(0x152),_0x11d905['value'])['prependTo'](_0x45058a)['on'](_0x2f502f(0x161),function(_0x222887){_0x222887['preventDefault']();})),_0x45058a['on'](_0x2f502f(0x156),function(_0x5fdf66){const _0x4f7442=_0x2f502f;_0x5fdf66['preventDefault'](),_0x5fdf66[_0x4f7442(0x168)](),!_0x2291c6[_0x4f7442(0x12f)]?(_0x4aa1a2(_0x11d905['value']),_0x4c39e8[_0x4f7442(0x146)](_0x25be7f)):_0x3b4ceb[_0x4f7442(0x86)]('checked',!_0x3b4ceb[_0x4f7442(0x86)](_0x4f7442(0xa4)));});}),_0x25be7f[_0x41028a(0x107)]({'display':_0x41028a(0x119)}),_0x25be7f['on']('keydown',function(_0x56c061){const _0x2f0da9=_0x41028a;if(_0x56c061['keyCode']===0x28)_0x56c061[_0x2f0da9(0x108)](),$(this)[_0x2f0da9(0x113)](_0x2f0da9(0xec))['next']()[_0x2f0da9(0x78)](_0x2f0da9(0xbd));else{if(_0x56c061[_0x2f0da9(0x196)]===0x26)_0x56c061[_0x2f0da9(0x108)](),$(this)[_0x2f0da9(0x113)](':focus')[_0x2f0da9(0x163)]()[_0x2f0da9(0x78)](_0x2f0da9(0xbd));else _0x56c061[_0x2f0da9(0x196)]===0x1b&&(_0x56c061[_0x2f0da9(0x108)](),_0x4c39e8[_0x2f0da9(0x146)](_0x25be7f));}_0x56c061['stopPropagation']();}),_0x25be7f;},'disarmClick':![],'_showMenu'(_0x20fbca,_0x1a1888){const _0x56e8e9=_0x25a52a;if(this[_0x56e8e9(0x173)]){this[_0x56e8e9(0x173)]=![];return;}var _0x567215=this,_0x53abe0=_0x1a1888['offset'](),_0x2650a5=_0x1a1888[_0x56e8e9(0x72)](),_0x3d9219=_0x20fbca[_0x56e8e9(0x72)](),_0x32b722=_0x2650a5+_0x53abe0[_0x56e8e9(0x13c)];_0x32b722+_0x3d9219-$(document)[_0x56e8e9(0x147)]()>$(window)[_0x56e8e9(0x72)]()&&(_0x32b722-=_0x32b722+_0x3d9219-$(window)[_0x56e8e9(0x72)]()+0x5),_0x32b722<0x0&&(_0x20fbca[_0x56e8e9(0x72)](_0x3d9219+_0x32b722),_0x32b722=0x0),_0x20fbca[_0x56e8e9(0x107)]({'top':_0x32b722+'px','left':_0x53abe0[_0x56e8e9(0x18c)]+'px'}),_0x20fbca[_0x56e8e9(0xc7)](0x64),this['_delay'](function(){const _0xd39372=_0x56e8e9;_0x567215[_0xd39372(0xaa)][_0xd39372(0x150)]('red-ui-typedInput-focus'),$(document)['on'](_0xd39372(0xd8),function(_0x1ee270){const _0x283969=_0xd39372;!$(_0x1ee270['target'])[_0x283969(0xbb)](_0x20fbca)['length']&&_0x567215[_0x283969(0x146)](_0x20fbca),$(_0x1ee270[_0x283969(0x8b)])[_0x283969(0xbb)](_0x1a1888)[_0x283969(0x101)]&&(_0x567215[_0x283969(0x173)]=!![],_0x1ee270[_0x283969(0x108)]());});});},'_showTypeMenu'(){const _0x5979fc=_0x25a52a,_0x64d9a6=this;this[_0x5979fc(0x153)](_0x64d9a6['$menu'],_0x64d9a6[_0x5979fc(0xde)]),_0x64d9a6['$dropdown'][_0x5979fc(0x17b)]();const _0x2c840e=_0x64d9a6[_0x5979fc(0x74)];var _0xba3367=_0x64d9a6['$menu']['find']('[value=\x27'+_0x2c840e+'\x27');setTimeout(function(){const _0x566825=_0x5979fc;_0xba3367['trigger'](_0x566825(0xbd));},0x78);},'_initMenu'(){const _0x2adaec=_0x25a52a,_0x315fa4=this;_0x315fa4[_0x2adaec(0x145)][_0x2adaec(0xfa)](_0x2adaec(0x15f),-0x1),_0x315fa4[_0x2adaec(0x145)]['on']('mousedown.red-ui-typedInput-focus-block',function(_0x50a368){const _0x51a374=_0x2adaec;_0x50a368[_0x51a374(0x108)]();});_0x315fa4[_0x2adaec(0xd4)]&&_0x315fa4[_0x2adaec(0xd4)][_0x2adaec(0x138)]();const _0x224978=[{'label':_0x2adaec(0x122),'value':'t','title':_0x2adaec(0x109),'icon':_0x2adaec(0xa3)},{'label':_0x2adaec(0x89),'value':_0x2adaec(0x96),'title':_0x2adaec(0xd2),'icon':_0x2adaec(0x105)},{'label':'NodeId','value':'n','icon':_0x2adaec(0x7b)},{'label':_0x2adaec(0x193),'value':'na','icon':_0x2adaec(0x14c)},{'label':_0x2adaec(0xe9),'value':_0x2adaec(0x102),'icon':_0x2adaec(0x112)},{'label':_0x2adaec(0x195),'value':'b','icon':_0x2adaec(0x110)},{'label':_0x2adaec(0x129),'value':'ab','icon':_0x2adaec(0x136)}],_0xfb8630=_0x26d517(_0x315fa4[_0x2adaec(0xe8)][_0x2adaec(0x16a)]()),_0x1fc618=_0x224978[_0x2adaec(0xe3)](_0x3505bd=>_0x3505bd['value']===_0xfb8630);_0x315fa4[_0x2adaec(0xe0)][_0x2adaec(0xa8)]()[_0x2adaec(0xcf)](_0x2adaec(0x16d)+((_0x1fc618===null||_0x1fc618===void 0x0?void 0x0:_0x1fc618[_0x2adaec(0xae)])||'')+_0x2adaec(0x15d)+((_0x1fc618===null||_0x1fc618===void 0x0?void 0x0:_0x1fc618[_0x2adaec(0x7c)])||'')+_0x2adaec(0xf3)),_0x315fa4['selectedMenuItem']=_0xfb8630;const _0x1eb6a5=this;_0x315fa4['$menu']=this['_createMenu'](_0x224978,{},_0x2374a1=>{const _0x451b0a=_0x2adaec,_0x4004da=_0x3e0fba(_0x2374a1);_0x4004da&&_0x1eb6a5[_0x451b0a(0x149)](_0x4004da);const _0x515336=_0x224978[_0x451b0a(0xe3)](_0x5332db=>_0x5332db[_0x451b0a(0x152)]===_0x2374a1);_0x315fa4[_0x451b0a(0x74)]=_0x2374a1,_0x315fa4['$selectLabel'][_0x451b0a(0xa8)]()[_0x451b0a(0xcf)](_0x451b0a(0x16d)+((_0x515336===null||_0x515336===void 0x0?void 0x0:_0x515336[_0x451b0a(0xae)])||'')+_0x451b0a(0x15d)+((_0x515336===null||_0x515336===void 0x0?void 0x0:_0x515336[_0x451b0a(0x7c)])||'')+_0x451b0a(0xf3));}),_0x315fa4[_0x2adaec(0xd4)]['appendTo'](document[_0x2adaec(0x18b)]),_0x315fa4[_0x2adaec(0xd4)]['hide'](),_0x315fa4[_0x2adaec(0x145)][_0x2adaec(0x137)]();},'mode'(){const _0x21acb5=_0x25a52a,_0x167e0e=this;return _0x3e0fba(_0x167e0e[_0x21acb5(0x74)]);},'setMode'(_0x4ccaae){const _0x41e7c7=_0x25a52a,_0x55c0b8=this,_0x574b83=_0x27fe23(_0x4ccaae);_0x55c0b8[_0x41e7c7(0x74)]=_0x574b83;},'_create'(){const _0x318ffd=_0x25a52a,_0x13af75=this;_0x13af75['$input']=this[_0x318ffd(0x75)],_0x13af75[_0x318ffd(0xe8)][_0x318ffd(0x107)](_0x318ffd(0xaf),_0x318ffd(0x119)),_0x13af75[_0x318ffd(0x106)]=_0x13af75[_0x318ffd(0xe8)][_0x318ffd(0x9d)](_0x318ffd(0x14b))[_0x318ffd(0x13f)]()[_0x318ffd(0x150)](_0x318ffd(0x114)),_0x13af75[_0x318ffd(0xde)]=$('<div/>'),_0x13af75[_0x318ffd(0xde)][_0x318ffd(0x150)](_0x318ffd(0x151)),_0x13af75[_0x318ffd(0xe8)][_0x318ffd(0xdf)](_0x13af75[_0x318ffd(0xde)]),_0x13af75[_0x318ffd(0xf7)]=$('<div/>')[_0x318ffd(0x150)](_0x318ffd(0xc5)),_0x13af75[_0x318ffd(0xde)][_0x318ffd(0xcf)](_0x13af75[_0x318ffd(0xf7)]),_0x13af75[_0x318ffd(0xf7)][_0x318ffd(0xcf)](_0x13af75['$input']),_0x13af75[_0x318ffd(0xcd)]=$(_0x318ffd(0x9b)),_0x13af75[_0x318ffd(0xe8)][_0x318ffd(0x192)](_0x13af75['$toggleTreeBtn']),_0x13af75[_0x318ffd(0xcd)]['on']('click',function(){return _0x5b4b7a(this,void 0x0,void 0x0,function*(){const _0x1c3c54=_0x5519;var _0x23ffbc;let _0x1547a9=![],_0x2fbb9f;!_0x13af75['$dropdown']['is'](_0x1c3c54(0xcb))&&(_0x13af75[_0x1c3c54(0x142)]['hide'](),_0x2fbb9f=yield _0x13af75['resolveParentNode'](),(_0x2fbb9f!==_0x13af75[_0x1c3c54(0x80)]||((_0x23ffbc=_0x13af75[_0x1c3c54(0x80)])===null||_0x23ffbc===void 0x0?void 0x0:_0x23ffbc['nodeId'])!==_0x2fbb9f[_0x1c3c54(0xc9)])&&(yield _0x13af75['reset']()),_0x1547a9=!![]),_0x13af75['$dropdown'][_0x1c3c54(0xc8)](),_0x1547a9&&(yield _0x8263d6(_0x13af75,_0x2fbb9f));});}),_0x13af75[_0x318ffd(0x131)]=$(_0x318ffd(0xd6)),_0x13af75['$input']['after'](_0x13af75[_0x318ffd(0x131)]),_0x13af75[_0x318ffd(0x131)]['on'](_0x318ffd(0x156),()=>{const _0x182322=_0x318ffd,_0x59093d=_0x13af75[_0x182322(0x9a)]();if(!_0x59093d)return;this[_0x182322(0x149)](_0x59093d);});const _0x29e0e4=_0xfb83a=>_0x5b4b7a(this,void 0x0,void 0x0,function*(){const _0x42174c=_0x318ffd,_0x11ba80=this;let _0x4de862=_0x11ba80['mode']();if(!_0x4de862)return;const _0x1af733=_0xa4d8d9(_0x11ba80),{data:_0x176f6b,json:_0x52eddb}=yield _0x68ff4f(_0x1af733,_0xfb83a);if(_0x176f6b[_0x42174c(0x160)]!==0xc8)return;if(_0x52eddb[_0x42174c(0xb1)][_0x42174c(0x11f)](/Good/)){const _0x39ad00=_0x4909f4(_0x52eddb,_0x4de862);_0x11ba80[_0x42174c(0xe8)][_0x42174c(0x16a)](_0x39ad00),_0x11ba80['$input'][_0x42174c(0x78)](_0x42174c(0x7f));}});{_0x13af75[_0x318ffd(0xaa)]=$(_0x318ffd(0x14b)),_0x13af75['$input'][_0x318ffd(0x16f)](_0x13af75['$uiSelect']),_0x13af75[_0x318ffd(0x145)]=$(_0x318ffd(0xa0))[_0x318ffd(0x12c)](_0x13af75[_0x318ffd(0xaa)]),$(_0x318ffd(0xfc))[_0x318ffd(0xc8)](!![])[_0x318ffd(0xd1)](_0x13af75[_0x318ffd(0x145)]),_0x13af75[_0x318ffd(0x145)]['on']('click',function(_0x5743b0){const _0x60af35=_0x318ffd;_0x5743b0[_0x60af35(0x108)](),_0x5743b0[_0x60af35(0x168)](),_0x13af75[_0x60af35(0x8f)]();}),_0x13af75['$selectTrigger']['on']('keydown',function(_0x32e9cb){const _0x18d158=_0x318ffd;_0x32e9cb['keyCode']===0x28&&_0x13af75[_0x18d158(0x8f)](),_0x32e9cb[_0x18d158(0x168)]();})['on'](_0x318ffd(0xbd),function(){const _0x29fb3c=_0x318ffd;_0x13af75[_0x29fb3c(0xaa)][_0x29fb3c(0x150)](_0x29fb3c(0x11d));})['on'](_0x318ffd(0xc4),function(){const _0x2205ef=_0x318ffd;_0x13af75[_0x2205ef(0xaa)][_0x2205ef(0xee)](_0x2205ef(0x11d));}),_0x13af75['$selectLabel']=$(_0x318ffd(0x7a))['appendTo'](_0x13af75[_0x318ffd(0x145)]);}this[_0x318ffd(0x128)]();!_0x13af75[_0x318ffd(0xe8)]['attr'](_0x318ffd(0x15e))&&_0x13af75['$input']['attr']('placeholder',_0x318ffd(0x7e));_0x13af75['$info']=$(_0x318ffd(0x71)),_0x13af75[_0x318ffd(0x142)]['hide'](),_0x13af75[_0x318ffd(0xde)][_0x318ffd(0xcf)](_0x13af75['$info']),_0x13af75[_0x318ffd(0x188)]=$(_0x318ffd(0x13e))[_0x318ffd(0x150)]('sterfive-dropdown')[_0x318ffd(0x17b)]()['appendTo'](_0x13af75[_0x318ffd(0xde)]),_0x13af75[_0x318ffd(0xb3)]=$('<ul\x20class=\x22sterfive-tree\x22></ul>')[_0x318ffd(0xd1)](_0x13af75[_0x318ffd(0x188)]),this[_0x318ffd(0xc3)]();const _0x2d24da=(_0x303d06,_0x35c544)=>{const _0x52c5d1=_0x318ffd,_0x57fbe6=0x14,_0x45d978=0x14,_0x56e934=_0x303d06[_0x52c5d1(0xda)](),_0x37b4eb=_0x35c544;if(_0x37b4eb['pageX']>=_0x56e934[_0x52c5d1(0x18c)]&&_0x37b4eb[_0x52c5d1(0x130)]<=_0x56e934['left']+_0x57fbe6&&_0x37b4eb['pageY']>=_0x56e934[_0x52c5d1(0x13c)]&&_0x37b4eb[_0x52c5d1(0xf9)]<=_0x56e934['top']+_0x45d978)return!![];return![];},_0x598e15=_0x109407=>_0x5b4b7a(this,void 0x0,void 0x0,function*(){const _0x4f1586=_0x318ffd;if(_0x109407[_0x4f1586(0x123)]('expandable'))_0xdfcf95(_0x13af75,_0x109407);else{if(_0x109407[_0x4f1586(0x123)]('expanded'))_0x109407[_0x4f1586(0x113)]('ul')['toggle'](),_0x109407[_0x4f1586(0xfd)](_0x4f1586(0xe7));else{if(_0x109407[_0x4f1586(0x113)]('ul')[_0x4f1586(0x113)]()['length']>0x0)_0x109407[_0x4f1586(0x113)]('ul')[_0x4f1586(0xc8)](),_0x109407[_0x4f1586(0xfd)](_0x4f1586(0xe7));else;}}});_0x13af75[_0x318ffd(0xb3)]['on']('dblclick','li',function(_0x16e5bf){const _0x5ea948=_0x318ffd;var _0x1c8b98,_0xf97347;_0x16e5bf[_0x5ea948(0x168)]();let _0x443288=$(this);if(_0x2d24da(_0x443288,_0x16e5bf))_0x598e15(_0x443288);else{const _0x3c84bc=_0x443288[_0x5ea948(0xc0)](_0x5ea948(0x152)),_0x273c3b=_0x443288['data'](_0x5ea948(0x8d));if(_0x13af75['options'][_0x5ea948(0x9c)]&&!_0x13af75[_0x5ea948(0x15a)][_0x5ea948(0x9c)](_0x273c3b))return;_0x13af75['$input']['data'](_0x5ea948(0x8d),_0x273c3b),((_0x1c8b98=_0x273c3b[_0x5ea948(0xb6)])===null||_0x1c8b98===void 0x0?void 0x0:_0x1c8b98[_0x5ea948(0x122)])||((_0xf97347=_0x273c3b[_0x5ea948(0x79)])===null||_0xf97347===void 0x0?void 0x0:_0xf97347[_0x5ea948(0x11e)])||_0x273c3b[_0x5ea948(0xc9)][_0x5ea948(0xbc)]();let _0x1b3a5c=_0x13af75['mode']();!_0x1b3a5c&&(_0x1b3a5c=_0x5ea948(0xc9),_0x13af75[_0x5ea948(0x81)](_0x1b3a5c)),_0x29e0e4(_0x3c84bc)[_0x5ea948(0x190)](()=>{const _0x452138=_0x5ea948;_0x13af75[_0x452138(0x188)][_0x452138(0x17b)]();})[_0x5ea948(0xb8)](_0x2604df=>{const _0x1929f3=_0x5ea948;_0x13af75[_0x1929f3(0x188)]['hide']();});}}),_0x13af75[_0x318ffd(0xb3)]['on']('click','li',function(_0x175672){_0x175672['stopPropagation']();let _0x10a83b=$(this);_0x2d24da(_0x10a83b,_0x175672)&&_0x598e15(_0x10a83b),_0x4ac971(_0x13af75,_0x10a83b);}),$(document)['on'](_0x318ffd(0x156),function(_0x247e0a){const _0x57f93e=_0x318ffd;!$(_0x247e0a[_0x57f93e(0x8b)])[_0x57f93e(0xbb)](_0x13af75[_0x57f93e(0xde)])[_0x57f93e(0x101)]&&_0x13af75['$dropdown'][_0x57f93e(0x17b)]();});}});},_0x12ced8=()=>{const _0x15a5b1=_0x1d1340,_0x48141a=$('#node-input-endpoint'),_0x412227=_0x48141a[_0x15a5b1(0x16a)](),_0x559d15=RED[_0x15a5b1(0x125)]['node'](_0x412227);if(!_0x559d15)return undefined;const {endpoint:_0x14f6fe,securityMode:_0x1dc778,securityPolicy:_0x27b3de,userIdentityType:_0x3d24fb,credentials:_0x58eb97,namespaceAliases:_0x5c5ea2}=_0x559d15,_0x445810={'endpoint':_0x14f6fe,'securityMode':_0x1dc778,'securityPolicy':_0x27b3de,'userIdentityType':_0x3d24fb,'credentials':_0x58eb97,'namespaceAliases':_0x5c5ea2};return _0x445810;},_0x4eff3e=()=>{const _0x4860c5=_0x1d1340,_0x3b502d=$(_0x4860c5(0x93)),_0x2384d7=_0x3b502d[_0x4860c5(0x16a)](),_0x5d400f=_0x12ced8();if(!_0x5d400f)return undefined;const _0x2085d5=_0x5d400f[_0x4860c5(0x15b)];return Object[_0x4860c5(0xff)]({'namespaceAliases':_0x2085d5,'id':_0x2384d7},_0x5d400f);},_0x872c23=()=>{return{'endpointNode':_0x4eff3e};},_0xe3eb47=()=>{const _0x536ee6=_0x1d1340,_0x1948f1=$(_0x536ee6(0x11c));if(_0x1948f1['length']){const _0x368758=$(_0x536ee6(0xe6),{'src':_0x536ee6(0xf1),'scrolling':'no','style':'background-color:transparent;overflow:hidden;border:3px','allowtransparency':'true','width':_0x536ee6(0xb4),'height':'30px'});_0x1948f1[_0x536ee6(0xcf)](_0x368758),_0x368758['css']({'position':_0x536ee6(0x167),'right':'20px','bottom':_0x536ee6(0xe1)});}};RED[_0x1d1340(0x125)][_0x1d1340(0x18a)]('OpcUa-Client2-ExtensionObject',{'category':'opcua','color':'#C0DEED','align':_0x1d1340(0x12b),'icon':_0x1d1340(0x10d),'paletteLabel':_0x1d1340(0xba),'defaults':{'inputs':{'value':0x1},'output':{'value':0x1},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':'OpcUa-Endpoint2'},'dataType':{'value':'','required':!![]}},'inputs':0x1,'outputs':0x1,'label'(){const _0x4431cd=_0x1d1340;return this[_0x4431cd(0x11e)]||'OPCUA\x20Client\x20Extension\x20Object';},'labelStyle'(){const _0x293559=_0x1d1340;return this[_0x293559(0x11e)]?_0x293559(0x197):'';},'oneditprepare'(){const _0x452bc4=_0x1d1340,_0x271e6e=this;_0x345932(),_0xe3eb47(),_0x271e6e[_0x452bc4(0xac)]=0x1;const _0x58c315=$('#node-input-dataType'),_0x18e98a={'nodeId':'i=22','referenceTypeId':'','browseName':{'namespaceIndex':0x0,'name':_0x452bc4(0x77)},'displayName':{'text':_0x452bc4(0x77)},'nodeClass':'DataType','typeDefinition':_0x452bc4(0x16b)};_0x58c315['nodeBrowser'](Object[_0x452bc4(0xff)](Object[_0x452bc4(0xff)]({},_0x872c23()),{'parentNode':()=>_0x18e98a,'isSelectable'(_0x36ee61){const _0x2d38f7=_0x452bc4;return _0x36ee61['nodeClass']===_0x2d38f7(0x170);},'isTypeRef':!![]}));},'oneditsave'(){}});}()));
|
9
8
|
</script>
|
10
9
|
<script type="text/x-red" data-template-name="OpcUa-Client2-ExtensionObject">
|
11
10
|
<h3>OpcUa ExtensionObject</h3>
|
@@ -0,0 +1,2 @@
|
|
1
|
+
.sterfive-combo-box{position:relative;width:100%}.sterfive-online-menu{height:auto;position:fixed;width:auto}.sterfive-input-error{border-color:var(--red-ui-form-input-border-error-color)!important;border-style:solid;border-width:1px}.sterfive-typedInput-options{background:#fff;border-style:solid;border-width:1px;border:1px solid var(--red-ui-primary-border-color);box-sizing:border-box;max-height:350px;overflow-y:auto;position:absolute;white-space:nowrap;z-index:2000}.sterfive-typedInput-options a{align-items:center;border-bottom:1px solid;border-color:var(--red-ui-secondary-border-color);border-style:solid;border-width:1px;color:var(--red-ui-form-text-color);display:flex;font-size:13px;padding:6px 18px 6px 6px;text-decoration:none}.sterfive-typedInput-options a:hover{background:var(--red-ui-workspace-button-background-hover);text-decoration:none}.sterfive-typedInput-options a:focus{outline:none}.sterfive-typedInput-options a:active,.sterfive-typedInput-options a:focus{background:var(--red-ui-workspace-button-background-active);text-decoration:none}.sterfive-typedInput-options a input[type=checkbox]{margin:0 6px 0 0}.sterfive-typedInput-options .sterfive-typedInput-icon{margin-right:6px}.sterfive-typedInput-options .sterfive-typedInput-icon:not(.fa){background-color:var(--red-ui-primary-text-color);height:14px;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:cover;mask-size:cover;width:12px}.sterfive-combo-box .sterfive-dropdown{background-color:#fff;border:1px solid #ccc;display:none;left:0;max-height:400px;overflow-y:auto;position:absolute;top:100%;width:100%;z-index:1000}.sterfive-combo-box li:before{content:none}.sterfive-tree li.expandable:before,.sterfive-tree li.no-expandable:before{content:"\f0da";cursor:pointer;font-family:FontAwesome;font-size:12pt;font-weight:900;margin-right:5px}.sterfive-tree li.no-expandable:before{opacity:0}.sterfive-tree li.expanded:before{content:"\f0d7";cursor:pointer;font-family:FontAwesome;font-size:12pt;font-weight:900;margin-right:5px}.sterfive-tree li span.selected{border:.5px dotted #33f}.sterfive-tree .fa{color:#333;margin-right:10px}.sterfive-tree ul{list-style:none;padding-inline-start:2%!important}.sterfive-tree li{cursor:pointer;padding:5px}.sterfive-tree{list-style-type:none}.sterfive-tree,.sterfive-tree ol,.sterfive-tree ul{list-style-type:none;margin:0;padding:0}.sterfive-tree li:hover{background-color:#eee}.sterfive-tree li.loading:before{animation:fa-spin 1s linear infinite;content:"\f110";cursor:pointer;font-family:FontAwesome;font-weight:900;margin-right:5px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.sterfive-tree .spinner{animation:spin .7s linear infinite;border:2px solid transparent;border-radius:50%;border-top-color:#666;display:inline-block;height:16px;width:16px}.sterfive-info{background-color:#fafad2;border-radius:10px;border-style:groove;display:block;font-size:10pt;margin:5px 0;padding:5px}.sterfive-info .ok{color:green}.sterfive-info .warning{color:darkred}.input-wrapper{border:0 solid #ccc;border-radius:5px;padding:0}.sterfive-input-group{border:1px solid #ccc;border-radius:5px;display:flex;overflow:hidden}.sterfive-input-group button,.sterfive-input-group input{border:none;outline:none;padding:10px}.sterfive-input-group input{flex:1}.sterfive-input-group button{background-color:var(--red-ui-form-button-background);color:#7b7a7a;cursor:pointer}.sterfive-input-group button:hover{background-color:var(--red-ui-secondary-background-hover)}.sterfive-info-text{color:#777;font-size:12px;margin-left:10px;margin-top:5px}.custom-checkbox{cursor:pointer;display:inline-block;font-family:FontAwesome;font-size:16px;font-weight:900;margin-right:10px;text-align:center;width:1em}.custom-checkbox.unchecked:before{content:"\f096"}.custom-checkbox.checked:before{content:"\f046"}.validate-cancel-buttons{background-color:#fff;position:sticky;right:0;top:0;z-index:1001}.cancel-button,.validate-button{cursor:pointer;font-size:16px;margin:5px}.sterfive-combo-box .sterfive-dropdown{position:relative}.floating-buttons{position:fixed;z-index:1003}.mask-flag-dropdown .option-item{border:1px solid #ccc;cursor:pointer;display:inline-block;font-family:FontAwesome;font-size:16px;font-weight:900;margin-right:10px;padding:5px 10px;text-align:center;width:1em}.mask-flag-dropdown .option-item .checkbox{border:1px solid #ccc;content:"\f096";display:inline-block;height:20px;margin-right:5px;width:20px}.mask-flag-dropdown .option-item.selected .checkbox{content:"\f046"}.custom-select{background-color:#fff;border:1px solid #ccc;box-sizing:border-box;cursor:pointer;max-height:200px;overflow-y:auto;padding:5px;width:100%}.custom-select .custom-option{align-items:center;border-bottom:1px solid #eee;display:flex;padding:5px 10px}.custom-select .custom-option:last-child{border-bottom:none}.custom-select .custom-option .custom-checkbox{align-items:center;border:1px solid #ccc;display:flex;font-size:14px;height:20px;justify-content:center;margin-right:8px;width:20px}.custom-select .custom-option.selected .custom-checkbox{border-color:#007bff}.custom-select .custom-option .custom-checkbox:before{color:#007bff;content:"\f096";font-family:FontAwesome}.custom-select .custom-option.selected .custom-checkbox:before{content:"\f046"}
|
2
|
+
/*# sourceMappingURL=OpcUa-Client2-FileOperation.css.map */
|