@opcua/for-node-red 2.2.1 → 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,8 +4,8 @@
4
4
  </style>
5
5
 
6
6
  <script type="text/javascript">
7
- function _0x255f(){const _0x1cc345=['-failure','data','input-group','installArgumentList','BrowseName','show','Invalid','sterfive-dropdown','node','\x22\x20style=\x22color:','sterfive-combo-box','rgba(61,\x2060,\x204,\x200.525)','toString','change','nodeAddressString','opcua','DisplayName','replace','HasProperty','toggleClass','then','map','text','appendTo','Forward','5384666xayRea','HasChild','nodes','/opcua-endpoint2/argumentDefinition','browseName','err','widget','$tree','html','Objects','read','fa-object-group','currentParent','function','referenceTypeId','status','application/json','<li><i\x20class=\x22fa\x20','references','editableList','find','split','fetching\x20failed\x20with\x20error','SuppressedError','filter','expanded','Variable','hide','UserName','nodeClass','node_label_italic','<div/>','fa-cog','argumentDefinition','ns=0;i=40','</li>','HasSubtype','Inverse','assign','css','click','attr','children','userIdentityType',';\x22></i>\x20','SeaGreen','SteelBlue','$input','CadetBlue','DodgerBlue','<ul\x20class=\x22sterfive-tree\x22></ul>','DarkOrange','!!failure!!','-success','userPrivatekey','Organizes','1sEmlpy','displayName','View','auto','error','HasComponent','fa-folder','ns=0;i=46','$inputGroup','append','#node-input-endpoint','registerType','statusText','baseUrl','closest','OPCUA-Call','pageY','nodeId','left','\x20Fetching\x20done','VariableType','fetched','stringify','arguments','Good','ObjectType','extra','done','$dropdown','ns=0;i=47','browseResult','failure','8965512hgmGfC','verify','<p>','4457760pHhvlj','hasClass','expandable','TypeDefinition','expandable\x20expanded','36064WLwlaa','$combo','loading','nodeBrowser','trigger','top','toggle','50%','<input\x20type=\x22text\x22>','POST','/opcua-endpoint2','Both','replaceWith','HasTypeDefinition','IsForward','isSelectable','stopPropagation','log','ReferenceType','13908375TPacqM','reset','message','#method-output-argument-definition','Unspecified','Bad','6552408mZWjVQ','right','pageX','.spinner','#validate-call-arguments-button','Method','element','fa-question','securityMode','call','options','dataType','$toggleTreeBtn','/checkNodeId','offset','fetched\x20:\x20','internal\x20error\x20','apply','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','resolveParentNode','1313594jXOMNH','outputArguments','endpoint','#C0DEED','parentNode','SandyBrown','-messages','json','sterfive.nodeBrowser','securityPolicy','addItem','Calling\x20nodeBrowser\x20Done','already\x20fetched','validate','val','NodeClass','catch','#method-input-argument-definition','DataType','Object','$verifyBtn','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','name','removeClass','addClass','isTypeRef','100%','fa-list-alt','length','<div\x20class=\x22argument-entry\x22>','<div\x20class=\x22spinner\x22></div>','OpcUa-Endpoint2','reference','../../icons/opcuanodeLogo.png','<div\x20class=\x22info-text\x22></div>','endpointNode','$info','empty','value','opc.tcp://opcuademo.sterfive.com:26543','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','<li>error\x20','next','228ccgAqJ','valueRank','ns=0;i=85','inputArguments','placeholder'];_0x255f=function(){return _0x1cc345;};return _0x255f();}function _0x1513(_0x188eb1,_0x2adfa6){const _0x255f3a=_0x255f();return _0x1513=function(_0x1513a5,_0x1b50f3){_0x1513a5=_0x1513a5-0x135;let _0xd9a8c8=_0x255f3a[_0x1513a5];return _0xd9a8c8;},_0x1513(_0x188eb1,_0x2adfa6);}(function(_0x20363c,_0x55a9a7){const _0x22d49e=_0x1513,_0x223955=_0x20363c();while(!![]){try{const _0x1af94d=-parseInt(_0x22d49e(0x15a))/0x1*(-parseInt(_0x22d49e(0x1af))/0x2)+parseInt(_0x22d49e(0x1da))/0x3*(parseInt(_0x22d49e(0x182))/0x4)+parseInt(_0x22d49e(0x17d))/0x5+-parseInt(_0x22d49e(0x19b))/0x6+-parseInt(_0x22d49e(0x1f8))/0x7+-parseInt(_0x22d49e(0x17a))/0x8+parseInt(_0x22d49e(0x195))/0x9;if(_0x1af94d===_0x55a9a7)break;else _0x223955['push'](_0x223955['shift']());}catch(_0x3989b5){_0x223955['push'](_0x223955['shift']());}}}(_0x255f,0xc2911),(function(){'use strict';const _0x4efad1=_0x1513;function _0x4e3673(_0xf59a60,_0x10b9c5,_0x33af59,_0x14e236){function _0x4d4a1b(_0x39a621){return _0x39a621 instanceof _0x33af59?_0x39a621:new _0x33af59(function(_0x579a6e){_0x579a6e(_0x39a621);});}return new(_0x33af59||(_0x33af59=Promise))(function(_0x506455,_0x201bd3){const _0xed95bb=_0x1513;function _0x2bd2a5(_0x46eba8){const _0x1c4b00=_0x1513;try{_0x3623c2(_0x14e236[_0x1c4b00(0x1d9)](_0x46eba8));}catch(_0x4b090a){_0x201bd3(_0x4b090a);}}function _0x7b03e8(_0x517565){try{_0x3623c2(_0x14e236['throw'](_0x517565));}catch(_0xd5cc7){_0x201bd3(_0xd5cc7);}}function _0x3623c2(_0x2e3925){const _0x1c9c52=_0x1513;_0x2e3925[_0x1c9c52(0x175)]?_0x506455(_0x2e3925[_0x1c9c52(0x1d5)]):_0x4d4a1b(_0x2e3925[_0x1c9c52(0x1d5)])['then'](_0x2bd2a5,_0x7b03e8);}_0x3623c2((_0x14e236=_0x14e236[_0xed95bb(0x1ac)](_0xf59a60,_0x10b9c5||[]))[_0xed95bb(0x1d9)]());});}typeof SuppressedError===_0x4efad1(0x205)?SuppressedError:function(_0x59e247,_0x18cdb8,_0x361c68){const _0x14ac1f=_0x4efad1;var _0x598b0d=new Error(_0x361c68);return _0x598b0d['name']=_0x14ac1f(0x139),_0x598b0d[_0x14ac1f(0x15e)]=_0x59e247,_0x598b0d['suppressed']=_0x18cdb8,_0x598b0d;};const _0x345c7c='ns=0;i=35',_0x3d772c='ns=0;i=61',_0xbf18cb=_0x4efad1(0x177),_0x2a9726=_0x4efad1(0x161),_0x23c9d5='ns=0;i=34',_0x48106f='ns=0;i=45',_0x3b623a=_0x4efad1(0x144);var _0x2c904e;(function(_0x1f37ff){const _0x3235ee=_0x4efad1;_0x1f37ff[_0x1f37ff[_0x3235ee(0x1f7)]=0x0]='Forward',_0x1f37ff[_0x1f37ff['Inverse']=0x1]=_0x3235ee(0x147),_0x1f37ff[_0x1f37ff[_0x3235ee(0x18d)]=0x2]=_0x3235ee(0x18d),_0x1f37ff[_0x1f37ff[_0x3235ee(0x1e5)]=0x3]=_0x3235ee(0x1e5);}(_0x2c904e||(_0x2c904e={})));var _0xc81e7c;(function(_0x5c34c0){const _0x5862d7=_0x4efad1;_0x5c34c0[_0x5c34c0[_0x5862d7(0x199)]=0x0]=_0x5862d7(0x199),_0x5c34c0[_0x5c34c0['Object']=0x1]='Object',_0x5c34c0[_0x5c34c0[_0x5862d7(0x13c)]=0x2]=_0x5862d7(0x13c),_0x5c34c0[_0x5c34c0[_0x5862d7(0x1a0)]=0x4]=_0x5862d7(0x1a0),_0x5c34c0[_0x5c34c0[_0x5862d7(0x173)]=0x8]=_0x5862d7(0x173),_0x5c34c0[_0x5c34c0['VariableType']=0x10]=_0x5862d7(0x16e),_0x5c34c0[_0x5c34c0['ReferenceType']=0x20]=_0x5862d7(0x194),_0x5c34c0[_0x5c34c0[_0x5862d7(0x1c1)]=0x40]=_0x5862d7(0x1c1),_0x5c34c0[_0x5c34c0['View']=0x80]='View';}(_0xc81e7c||(_0xc81e7c={})));var _0x58f23c;(function(_0x5233b5){const _0x58ad34=_0x4efad1;_0x5233b5[_0x5233b5['Object']=0x1]='Object',_0x5233b5[_0x5233b5[_0x58ad34(0x13c)]=0x2]=_0x58ad34(0x13c),_0x5233b5[_0x5233b5['Method']=0x4]='Method',_0x5233b5[_0x5233b5[_0x58ad34(0x173)]=0x8]=_0x58ad34(0x173),_0x5233b5[_0x5233b5[_0x58ad34(0x16e)]=0x10]=_0x58ad34(0x16e),_0x5233b5[_0x5233b5[_0x58ad34(0x194)]=0x20]=_0x58ad34(0x194),_0x5233b5[_0x5233b5['DataType']=0x40]=_0x58ad34(0x1c1),_0x5233b5[_0x5233b5[_0x58ad34(0x15c)]=0x80]='View';}(_0x58f23c||(_0x58f23c={})));var _0x3b4cba;(function(_0x40c083){const _0x541bb3=_0x4efad1;_0x40c083[_0x40c083[_0x541bb3(0x194)]=0x1]='ReferenceType',_0x40c083[_0x40c083[_0x541bb3(0x190)]=0x2]=_0x541bb3(0x190),_0x40c083[_0x40c083[_0x541bb3(0x1be)]=0x4]='NodeClass',_0x40c083[_0x40c083[_0x541bb3(0x1e3)]=0x8]=_0x541bb3(0x1e3),_0x40c083[_0x40c083[_0x541bb3(0x1ef)]=0x10]=_0x541bb3(0x1ef),_0x40c083[_0x40c083['TypeDefinition']=0x20]=_0x541bb3(0x180);}(_0x3b4cba||(_0x3b4cba={})));function _0x1e070c(_0x3b7f13){const _0x20e76=_0x4efad1;switch(_0x3b7f13){case _0x20e76(0x159):return _0x345c7c;case _0x20e76(0x1f1):return _0x2a9726;case _0x20e76(0x15f):return _0xbf18cb;case'HasChild':return _0x23c9d5;case _0x20e76(0x146):return _0x48106f;case _0x20e76(0x18f):return _0x3b623a;}}const _0x161335=_0x2aebc4=>{const _0x5744b1=_0x4efad1;switch(_0x2aebc4[_0x5744b1(0x13f)]){case _0x5744b1(0x1c2):if(_0x2aebc4['referenceTypeId']===_0x345c7c);if(_0x2aebc4['typeDefinition']===_0x3d772c||_0x2aebc4['referenceTypeId']==='i=61')return{'icon':_0x5744b1(0x160),'color':_0x5744b1(0x1ea)};return{'icon':'fa-object-group','color':_0x5744b1(0x14f)};case'Variable':if(_0x2aebc4[_0x5744b1(0x206)]===_0xbf18cb)return{'icon':'fa-list-alt','color':_0x5744b1(0x150)};else return _0x2aebc4[_0x5744b1(0x206)]===_0x2a9726?{'icon':_0x5744b1(0x1ca),'color':_0x5744b1(0x153)}:{'icon':_0x5744b1(0x1ca),'color':_0x5744b1(0x152)};case _0x5744b1(0x1a0):return{'icon':_0x5744b1(0x142),'color':_0x5744b1(0x1b4)};case _0x5744b1(0x173):return{'icon':_0x5744b1(0x203),'color':_0x5744b1(0x155)};case'VariableType':return{'icon':'fa-sliders','color':_0x5744b1(0x155)};}return{'icon':_0x5744b1(0x1a2),'color':'grey'};},_0x1bfc61=({endpointNode:_0x55119b,endpoint:_0x24babc,baseUrl:_0x539461},_0x3158e0,_0x196305)=>_0x4e3673(void 0x0,void 0x0,void 0x0,function*(){const _0x30be36=_0x4efad1,_0x1e7055=_0x539461+'/opcua-endpoint2',_0x43de14=_0x1e7055+'/browse',_0x171f97=Object['assign'](Object[_0x30be36(0x148)]({},_0x196305),{'nodeId':_0x3158e0,'resultMask':0x3f}),_0x4003c0=yield fetch(_0x43de14,{'method':'POST','body':JSON[_0x30be36(0x170)]({'endpointNode':_0x55119b,'endpoint':_0x24babc,'browseDescription':_0x171f97}),'headers':{'Content-Type':'application/json'}});if(_0x4003c0[_0x30be36(0x207)]!==0xc8)return console[_0x30be36(0x193)](_0x30be36(0x138),_0x4003c0[_0x30be36(0x207)],_0x4003c0[_0x30be36(0x166)]),{'references':[]};console[_0x30be36(0x193)](_0x30be36(0x1aa),_0x4003c0[_0x30be36(0x207)],_0x4003c0[_0x30be36(0x166)]);const _0x52bb88=yield _0x4003c0['json'](),_0x14c78d=_0x52bb88[_0x30be36(0x178)][_0x30be36(0x20a)]||[];return{'references':_0x14c78d};}),_0x22e64a={'referenceTypeId':_0x1e070c(_0x4efad1(0x1f9)),'includeSubtypes':!![],'browseDirection':_0x2c904e[_0x4efad1(0x1f7)],'nodeClassMask':_0xc81e7c[_0x4efad1(0x13c)]|_0xc81e7c['Object']|_0xc81e7c[_0x4efad1(0x1a0)],'resultMask':0x3f},_0x397128={'referenceTypeId':_0x1e070c(_0x4efad1(0x159)),'includeSubtypes':!![],'browseDirection':_0x2c904e[_0x4efad1(0x1f7)],'nodeClassMask':_0xc81e7c[_0x4efad1(0x13c)]|_0xc81e7c[_0x4efad1(0x1c2)]|_0xc81e7c['Method'],'resultMask':0x3f},_0x142cfe=({endpointNode:_0x27ed58,endpoint:_0x511d22,baseUrl:_0x410653},_0x4c34f5,_0x2611ce)=>_0x4e3673(void 0x0,void 0x0,void 0x0,function*(){const _0x11e917=_0x4efad1,_0x501f81=_0x410653+_0x11e917(0x18c),_0x392d4c=_0x4c34f5[_0x11e917(0x1bd)](),_0x383c43=yield fetch(_0x501f81+_0x11e917(0x1a8),{'method':_0x11e917(0x18b),'body':JSON[_0x11e917(0x170)]({'endpointNode':_0x27ed58,'endpoint':_0x511d22,'nodeId':_0x392d4c}),'headers':{'Content-Type':_0x11e917(0x208)}}),_0xb1228a=(_0x45ef2b,_0x56293d)=>{const _0xa8f57=_0x11e917;_0x2611ce[_0xa8f57(0x1f5)](_0x45ef2b)[_0xa8f57(0x1c7)]('sterfive-info')[_0xa8f57(0x1c7)](_0x56293d),_0x2611ce['show'](),setTimeout(()=>{const _0x4a8311=_0xa8f57;_0x2611ce[_0x4a8311(0x1c6)](_0x56293d),_0x2611ce[_0x4a8311(0x13d)]();},0xbb8);},_0x135d72=yield _0x383c43[_0x11e917(0x1b6)]();_0x383c43[_0x11e917(0x207)]!==0xc8?_0xb1228a(_0x11e917(0x156)+_0x392d4c,_0x11e917(0x179)):_0x135d72['statusCode']['match'](/Good/)?(_0x4c34f5[_0x11e917(0x1bd)](_0x135d72[_0x11e917(0x1ed)]),_0x4c34f5[_0x11e917(0x186)]('change'),_0xb1228a(_0x11e917(0x172),'ok')):(_0x4c34f5[_0x11e917(0x1bd)](''+_0x392d4c),_0xb1228a(_0x135d72['statusCode']+'\x20'+_0x383c43['statusText'],_0x11e917(0x179)));});function _0x2a8c7e(_0x22cdbf,_0x2c4c47){return _0x4e3673(this,void 0x0,void 0x0,function*(){const _0xf60ea2=_0x1513,_0xb18943=_0x22cdbf[_0xf60ea2(0x1e0)](_0xf60ea2(0x1d5)),_0x26b268=yield _0x1bfc61(_0x2c4c47,_0xb18943,_0x22e64a),_0x305c64=yield _0x1bfc61(_0x2c4c47,_0xb18943,_0x397128);return{'references':[..._0x26b268[_0xf60ea2(0x20a)],..._0x305c64[_0xf60ea2(0x20a)]]};});}const _0x550b35={'referenceTypeId':_0x1e070c(_0x4efad1(0x146)),'includeSubtypes':!![],'browseDirection':_0x2c904e[_0x4efad1(0x1f7)],'nodeClassMask':_0xc81e7c[_0x4efad1(0x194)]|_0xc81e7c[_0x4efad1(0x173)]|_0xc81e7c[_0x4efad1(0x1c1)]|_0xc81e7c[_0x4efad1(0x16e)],'resultMask':0x3f};function _0x3415d5(_0xdf93a9,_0x37d2b8){return _0x4e3673(this,void 0x0,void 0x0,function*(){const _0x3cb110=_0xdf93a9['data']('value'),_0x5b46bb=yield _0x1bfc61(_0x37d2b8,_0x3cb110,_0x550b35);return _0x5b46bb;});}const _0x69028c=_0x53cca8=>{const _0x1bd7e5=_0x4efad1;var _0x2b1bbb,_0xacc342;if(!_0x53cca8){const _0x43a98=$('<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>');return _0x43a98;}const _0x33786c=_0x53cca8[_0x1bd7e5(0x16b)][_0x1bd7e5(0x1eb)](),_0x4eaf6a=((_0x2b1bbb=_0x53cca8[_0x1bd7e5(0x15b)])===null||_0x2b1bbb===void 0x0?void 0x0:_0x2b1bbb[_0x1bd7e5(0x1f5)])||((_0xacc342=_0x53cca8[_0x1bd7e5(0x1fc)])===null||_0xacc342===void 0x0?void 0x0:_0xacc342['name'])||_0x53cca8[_0x1bd7e5(0x16b)][_0x1bd7e5(0x1eb)](),{icon:_0x5c7145,color:_0x2e567d}=_0x161335(_0x53cca8),_0x1e1dcf=$(_0x1bd7e5(0x209)+_0x5c7145+_0x1bd7e5(0x1e8)+_0x2e567d+_0x1bd7e5(0x14e)+_0x4eaf6a+'<ul></ul></li>');return _0x1e1dcf[_0x1bd7e5(0x1c7)](_0x1bd7e5(0x17f)),_0x1e1dcf[_0x1bd7e5(0x1e0)]('value',_0x33786c),_0x1e1dcf['data'](_0x1bd7e5(0x1cf),_0x53cca8),_0x1e1dcf;},_0x679817=()=>{const _0x3d6bbd=_0x4efad1;$[_0x3d6bbd(0x1fe)](_0x3d6bbd(0x1b7),{'options':{'endpointNode':()=>({'endpoint':_0x3d6bbd(0x1d6)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x3d6bbd(0x201)},'nodeClass':_0x3d6bbd(0x1c2),'nodeId':_0x3d6bbd(0x1dc),'displayName':{'text':_0x3d6bbd(0x201)},'typeDefinition':_0x3d772c}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x4e3673(this,void 0x0,void 0x0,function*(){const _0xfc541=_0x1513,_0x5728a0=this,_0x1f2704=typeof _0x5728a0[_0xfc541(0x1a5)][_0xfc541(0x1b3)]===_0xfc541(0x205)?_0x5728a0['options'][_0xfc541(0x1b3)]():_0x5728a0['options']['parentNode'];if(_0x1f2704 instanceof Promise)return yield _0x1f2704;return _0x1f2704;});},'reset'(){const _0x2e4948=_0x3d6bbd,_0x1e0b27=this;_0x1e0b27[_0x2e4948(0x1ff)][_0x2e4948(0x1d4)](),this['resolveParentNode']()['then'](_0x3961ff=>{const _0x451381=_0x2e4948,_0x5b7771=_0x69028c(_0x3961ff);_0x1e0b27[_0x451381(0x1ff)]['append'](_0x5b7771),_0x1e0b27[_0x451381(0x204)]=_0x3961ff;});},'verify'(){const _0x2f533c=_0x3d6bbd,_0x421ff2=this,_0x242c20={'baseUrl':_0x421ff2[_0x2f533c(0x1a5)][_0x2f533c(0x167)],'endpointNode':typeof _0x421ff2[_0x2f533c(0x1a5)][_0x2f533c(0x1d2)]==='function'?_0x421ff2[_0x2f533c(0x1a5)][_0x2f533c(0x1d2)]():_0x421ff2[_0x2f533c(0x1a5)]['endpointNode'],'endpoint':typeof _0x421ff2[_0x2f533c(0x1a5)][_0x2f533c(0x1b1)]===_0x2f533c(0x205)?_0x421ff2[_0x2f533c(0x1a5)]['endpoint']():_0x421ff2['options'][_0x2f533c(0x1b1)]};_0x142cfe(_0x242c20,_0x421ff2[_0x2f533c(0x151)],_0x421ff2[_0x2f533c(0x1d3)]);},'_create'(){const _0x330d9a=_0x3d6bbd,_0x593329=this;function _0x36c5ef(_0x57c5e5,_0x3db21d,_0x207de0){return _0x4e3673(this,void 0x0,void 0x0,function*(){const _0x46d084=_0x1513;if(_0x57c5e5['hasClass'](_0x46d084(0x16f))){console['log'](_0x46d084(0x1bb));return;}if(_0x57c5e5[_0x46d084(0x17e)]('loading')){console[_0x46d084(0x193)]('already\x20loading');return;}_0x57c5e5[_0x46d084(0x1c7)]('loading'),_0x57c5e5[_0x46d084(0x163)](_0x46d084(0x1cd));try{_0x57c5e5[_0x46d084(0x14c)]('ul')[_0x46d084(0x1d4)]();const {references:_0x3c1aae}=yield _0x3db21d(_0x57c5e5,_0x207de0);for(const _0x35da3e of _0x3c1aae){if(_0x593329[_0x46d084(0x1a5)]['filter']&&!_0x593329[_0x46d084(0x1a5)][_0x46d084(0x13a)](_0x35da3e))continue;const _0x4e8daa=_0x69028c(_0x35da3e);_0x57c5e5[_0x46d084(0x14c)]('ul')['append'](_0x4e8daa);}_0x57c5e5['addClass'](_0x46d084(0x16f));}catch(_0x417a3a){_0x57c5e5['children']('ul')[_0x46d084(0x163)](_0x46d084(0x1d8)+_0x417a3a['message']+_0x46d084(0x145)),console['log'](_0x46d084(0x1fd),_0x417a3a);}_0x57c5e5[_0x46d084(0x136)](_0x46d084(0x19e))['remove'](),_0x57c5e5[_0x46d084(0x1c6)](_0x46d084(0x184));});}_0x593329[_0x330d9a(0x151)]=this[_0x330d9a(0x1a1)],_0x593329[_0x330d9a(0x183)]=$(_0x330d9a(0x141)),_0x593329[_0x330d9a(0x183)][_0x330d9a(0x1c7)](_0x330d9a(0x1e9)),this['element'][_0x330d9a(0x18e)](_0x593329[_0x330d9a(0x183)]),_0x593329[_0x330d9a(0x162)]=$(_0x330d9a(0x141))['addClass'](_0x330d9a(0x1e1)),_0x593329[_0x330d9a(0x183)][_0x330d9a(0x163)](_0x593329[_0x330d9a(0x162)]),_0x593329['$inputGroup'][_0x330d9a(0x163)](_0x593329['$input']),_0x593329[_0x330d9a(0x1a7)]=$(_0x330d9a(0x1d7)),_0x593329[_0x330d9a(0x162)][_0x330d9a(0x163)](_0x593329[_0x330d9a(0x1a7)]),_0x593329[_0x330d9a(0x1a7)]['on'](_0x330d9a(0x14a),function(){const _0x4bfdc3=_0x330d9a;!_0x593329['$dropdown']['is'](':visible')&&(_0x593329[_0x4bfdc3(0x1ae)]()[_0x4bfdc3(0x1f3)](_0x2defaf=>{const _0x3f5bf3=_0x4bfdc3;var _0x369195;(_0x2defaf!==_0x593329[_0x3f5bf3(0x204)]||((_0x369195=_0x593329['currentParent'])===null||_0x369195===void 0x0?void 0x0:_0x369195[_0x3f5bf3(0x16b)])!==_0x2defaf[_0x3f5bf3(0x16b)])&&_0x593329[_0x3f5bf3(0x196)]();}),_0x593329[_0x4bfdc3(0x1d3)][_0x4bfdc3(0x13d)]()),_0x593329[_0x4bfdc3(0x176)]['toggle']();}),_0x593329[_0x330d9a(0x1c3)]=$(_0x330d9a(0x1c4)),_0x593329[_0x330d9a(0x162)]['append'](_0x593329['$verifyBtn']),_0x593329[_0x330d9a(0x1c3)]['on'](_0x330d9a(0x14a),()=>{const _0x50cd0c=_0x330d9a;this[_0x50cd0c(0x17b)]();}),!_0x593329[_0x330d9a(0x151)][_0x330d9a(0x14b)](_0x330d9a(0x1de))&&_0x593329['$input']['attr'](_0x330d9a(0x1de),_0x330d9a(0x1ad)),_0x593329[_0x330d9a(0x1d3)]=$(_0x330d9a(0x1d1)),_0x593329[_0x330d9a(0x1d3)][_0x330d9a(0x13d)](),{'baseUrl':_0x593329[_0x330d9a(0x1a5)]['baseUrl'],'endpointNode':typeof _0x593329[_0x330d9a(0x1a5)]['endpointNode']===_0x330d9a(0x205)?_0x593329[_0x330d9a(0x1a5)][_0x330d9a(0x1d2)]():_0x593329[_0x330d9a(0x1a5)]['endpointNode'],'endpoint':typeof _0x593329[_0x330d9a(0x1a5)][_0x330d9a(0x1b1)]===_0x330d9a(0x205)?_0x593329[_0x330d9a(0x1a5)][_0x330d9a(0x1b1)]():_0x593329[_0x330d9a(0x1a5)]['endpoint']},_0x593329['$dropdown']=$(_0x330d9a(0x141))['addClass'](_0x330d9a(0x1e6))[_0x330d9a(0x13d)](),_0x593329[_0x330d9a(0x183)][_0x330d9a(0x163)](_0x593329[_0x330d9a(0x1d3)]),_0x593329['$combo'][_0x330d9a(0x163)](_0x593329[_0x330d9a(0x176)]),_0x593329[_0x330d9a(0x1ff)]=$(_0x330d9a(0x154))[_0x330d9a(0x1f6)](_0x593329[_0x330d9a(0x176)]),this['reset'](),_0x593329[_0x330d9a(0x1ff)]['on'](_0x330d9a(0x14a),'li',function(_0xa82295){const _0x30bc63=_0x330d9a;var _0x52a5d1,_0x4e0bd1;_0xa82295[_0x30bc63(0x192)]();let _0x346cdc=$(this);const _0x4b623a=0x14,_0x1aaa3f=0x14,_0x38308d=$(this)[_0x30bc63(0x1a9)](),_0x458617=_0xa82295;if(_0x458617[_0x30bc63(0x19d)]>=_0x38308d[_0x30bc63(0x16c)]&&_0x458617[_0x30bc63(0x19d)]<=_0x38308d['left']+_0x4b623a&&_0x458617[_0x30bc63(0x16a)]>=_0x38308d[_0x30bc63(0x187)]&&_0x458617[_0x30bc63(0x16a)]<=_0x38308d['top']+_0x1aaa3f){if(_0x346cdc[_0x30bc63(0x17e)](_0x30bc63(0x17f))){if(_0x346cdc[_0x30bc63(0x17e)](_0x30bc63(0x16f))){_0x346cdc[_0x30bc63(0x1c6)](_0x30bc63(0x17f))[_0x30bc63(0x1c7)]('expanded'),_0x346cdc['children']('ul')[_0x30bc63(0x188)]();return;}const _0x298aa3={'baseUrl':_0x593329['options'][_0x30bc63(0x167)],'endpointNode':typeof _0x593329['options'][_0x30bc63(0x1d2)]===_0x30bc63(0x205)?_0x593329[_0x30bc63(0x1a5)]['endpointNode']():_0x593329['options'][_0x30bc63(0x1d2)],'endpoint':typeof _0x593329[_0x30bc63(0x1a5)][_0x30bc63(0x1b1)]===_0x30bc63(0x205)?_0x593329[_0x30bc63(0x1a5)][_0x30bc63(0x1b1)]():_0x593329[_0x30bc63(0x1a5)][_0x30bc63(0x1b1)]},_0x32a03e=!_0x593329[_0x30bc63(0x1a5)][_0x30bc63(0x1c8)]?_0x2a8c7e:_0x3415d5;_0x36c5ef(_0x346cdc,_0x32a03e,_0x298aa3)[_0x30bc63(0x1f3)](()=>{const _0x3df2d5=_0x30bc63;console[_0x3df2d5(0x193)](_0x3df2d5(0x16d)),console[_0x3df2d5(0x193)](_0x3df2d5(0x16f)),_0x346cdc[_0x3df2d5(0x1c6)]('expandable')[_0x3df2d5(0x1c7)](_0x3df2d5(0x13b));})[_0x30bc63(0x1bf)](_0x39860b=>{const _0x20597d=_0x30bc63;_0x346cdc[_0x20597d(0x1c6)](_0x20597d(0x17f))[_0x20597d(0x1c7)](_0x20597d(0x13b)),console[_0x20597d(0x193)](_0x20597d(0x15e),_0x39860b);});}else{if(_0x346cdc[_0x30bc63(0x17e)](_0x30bc63(0x13b)))_0x346cdc[_0x30bc63(0x14c)]('ul')[_0x30bc63(0x188)](),_0x346cdc[_0x30bc63(0x1f2)](_0x30bc63(0x181));else{if(_0x346cdc[_0x30bc63(0x14c)]('ul')[_0x30bc63(0x14c)]()[_0x30bc63(0x1cb)]>0x0)_0x346cdc[_0x30bc63(0x14c)]('ul')[_0x30bc63(0x188)](),_0x346cdc[_0x30bc63(0x1f2)]('expandable\x20expanded');else;}}}else{const _0xede313=_0x346cdc[_0x30bc63(0x1e0)](_0x30bc63(0x1d5)),_0x5d02bc=_0x346cdc['data']('reference');if(_0x593329[_0x30bc63(0x1a5)][_0x30bc63(0x191)]&&!_0x593329[_0x30bc63(0x1a5)][_0x30bc63(0x191)](_0x5d02bc))return;_0x593329[_0x30bc63(0x151)][_0x30bc63(0x1e0)]('reference',_0x5d02bc);const _0x9a6292=((_0x52a5d1=_0x5d02bc[_0x30bc63(0x15b)])===null||_0x52a5d1===void 0x0?void 0x0:_0x52a5d1[_0x30bc63(0x1f5)])||((_0x4e0bd1=_0x5d02bc[_0x30bc63(0x1fc)])===null||_0x4e0bd1===void 0x0?void 0x0:_0x4e0bd1[_0x30bc63(0x1c5)])||_0x5d02bc['nodeId'][_0x30bc63(0x1eb)](),_0x1bfbf1='['+_0x9a6292+']('+_0xede313+')';_0x593329[_0x30bc63(0x151)][_0x30bc63(0x1bd)](_0x1bfbf1),_0x593329[_0x30bc63(0x151)][_0x30bc63(0x186)]('change'),_0x593329[_0x30bc63(0x176)][_0x30bc63(0x13d)]();}}),$(document)['on'](_0x330d9a(0x14a),function(_0x449f85){const _0x5b2a8b=_0x330d9a;!$(_0x449f85['target'])[_0x5b2a8b(0x168)](_0x593329[_0x5b2a8b(0x183)])[_0x5b2a8b(0x1cb)]&&_0x593329[_0x5b2a8b(0x176)][_0x5b2a8b(0x13d)]();});}});},_0x4b12ec=({endpointNode:_0x52349c,endpoint:_0x14eaf0,baseUrl:_0x112973},_0x494356)=>_0x4e3673(void 0x0,void 0x0,void 0x0,function*(){const _0x589f46=_0x4efad1,_0x243b0f=_0x112973+'/opcua-endpoint2',_0x17c9da=_0x243b0f+_0x589f46(0x1a8),_0x360f2e=yield fetch(_0x17c9da,{'method':_0x589f46(0x18b),'body':JSON['stringify']({'endpointNode':_0x52349c,'endpoint':_0x14eaf0,'nodeId':_0x494356}),'headers':{'Content-Type':'application/json'}});if(_0x360f2e['status']!==0xc8){console[_0x589f46(0x193)](_0x589f46(0x138),_0x360f2e['status'],_0x360f2e[_0x589f46(0x166)]);const _0x13fd0a={'statusCode':_0x589f46(0x19a),'nodeAddressString':_0x494356};return _0x13fd0a;}console['log'](_0x589f46(0x1aa),_0x360f2e[_0x589f46(0x207)],_0x360f2e[_0x589f46(0x166)]);const _0x261642=yield _0x360f2e[_0x589f46(0x1b6)]();return _0x261642;});function _0x3c66dc(_0x2b6382,_0x18abab,_0x53c7db,_0xb5ce04){const _0x8501f3=_0x4efad1,_0x54ad88=$('#'+_0x2b6382+_0x8501f3(0x157)),_0x332669=$('#'+_0x2b6382+_0x8501f3(0x1df)),_0x582897=$('#'+_0x2b6382+'-pending'),_0x2a3d65=$('#'+_0x2b6382+_0x8501f3(0x1b5));let _0x3c642c=![];_0x54ad88[_0x8501f3(0x13d)](),_0x332669['hide'](),_0x582897[_0x8501f3(0x13d)](),_0x18abab['on'](_0x8501f3(0x14a),()=>{const _0x103ab5=_0x8501f3;if(_0x3c642c)return;_0x3c642c=!![],_0x582897[_0x103ab5(0x1c6)]('hide'),_0x582897[_0x103ab5(0x200)]('Testing\x20Connection\x20...'),_0x54ad88[_0x103ab5(0x1c7)](_0x103ab5(0x13d)),_0x332669[_0x103ab5(0x1c7)](_0x103ab5(0x13d)),_0x2a3d65[_0x103ab5(0x200)]('');const {body:_0x13397a,url:_0x57f232}=_0x53c7db();fetch(_0x57f232,{'method':_0x103ab5(0x18b),'headers':{'Content-Type':_0x103ab5(0x208)},'body':JSON[_0x103ab5(0x170)](_0x13397a)})[_0x103ab5(0x1f3)](_0x3c02b7=>_0x3c02b7[_0x103ab5(0x1b6)]())[_0x103ab5(0x1f3)](_0x4254b4=>{const _0x2a4293=_0x103ab5;_0x3c642c=![],_0x582897['hide'](),console['log'](JSON['stringify'](_0x4254b4,null,'\x20'));if(_0x4254b4['result']==='ok')_0x54ad88[_0x2a4293(0x1c6)](_0x2a4293(0x13d)),_0x332669['addClass'](_0x2a4293(0x13d)),_0x2a3d65['html'](_0x4254b4['message'][_0x2a4293(0x1f0)]('\x0a','<br>')),_0xb5ce04(null,_0x4254b4);else{const _0x191352=_0x157a0c=>!_0x157a0c?'':_0x157a0c[_0x2a4293(0x137)]('\x0a')[_0x2a4293(0x1f4)](_0x5e0145=>_0x2a4293(0x17c)+_0x5e0145+'</p>')['join']('\x0a'),_0x18a77c=_0x577568=>Array['isArray'](_0x577568)?_0x577568[_0x2a4293(0x1f4)](_0x191352)['join']('\x0a'):_0x191352(_0x577568);_0x54ad88['addClass'](_0x2a4293(0x13d)),_0x332669[_0x2a4293(0x1c6)](_0x2a4293(0x13d)),_0x2a3d65[_0x2a4293(0x200)](_0x18a77c(_0x4254b4['message'])+_0x18a77c(_0x4254b4[_0x2a4293(0x174)])),_0xb5ce04(new Error(_0x4254b4['result']),_0x4254b4);}})[_0x103ab5(0x1bf)](_0x3a3413=>{const _0x57fb02=_0x103ab5;_0x3c642c=![],_0x582897[_0x57fb02(0x1c7)](_0x57fb02(0x13d)),_0x54ad88[_0x57fb02(0x1c7)]('hide'),_0x332669[_0x57fb02(0x1c6)](_0x57fb02(0x13d)),_0x2a3d65[_0x57fb02(0x200)](_0x57fb02(0x1ab)+_0x3a3413[_0x57fb02(0x197)]),console[_0x57fb02(0x193)]('err',_0x3a3413),_0xb5ce04(_0x3a3413,null);});});}const _0x558a45=()=>{const _0x22bf94=_0x4efad1,_0x4a6832=$(_0x22bf94(0x164)),_0x4b2f4e=_0x4a6832[_0x22bf94(0x1bd)](),_0x43a256=RED['nodes'][_0x22bf94(0x1e7)](_0x4b2f4e);if(!_0x43a256)return undefined;const {endpoint:_0x16cf57,securityMode:_0x1d045e,securityPolicy:_0x8aa5d9,userIdentityType:_0x4c76db,userName:_0x1b69e,password:_0x5643b9,userCertificate:_0x7c2194,userPrivatekey:_0x362342}=_0x43a256;return{'endpoint':_0x16cf57,'securityMode':_0x1d045e,'securityPolicy':_0x8aa5d9,'userIdentityType':_0x4c76db,'userName':_0x1b69e,'password':_0x5643b9,'userCertificate':_0x7c2194,'userPrivatekey':_0x362342};},_0xe5a42b=()=>{return{'endpointNode':_0x23ed7d};},_0x23ed7d=()=>{const _0x3ca73f=_0x4efad1,_0x14d995=$(_0x3ca73f(0x164)),_0x37925a=_0x14d995[_0x3ca73f(0x1bd)](),_0x30bc9b=_0x558a45();if(!_0x30bc9b)return undefined;return{'id':_0x37925a,'endpoint':_0x30bc9b[_0x3ca73f(0x1b1)],'securityMode':_0x30bc9b[_0x3ca73f(0x1a3)],'securityPolicy':_0x30bc9b[_0x3ca73f(0x1b8)],'userIdentityType':_0x30bc9b[_0x3ca73f(0x14d)],'userName':_0x30bc9b['userIdentityType']===_0x3ca73f(0x13e)?_0x30bc9b['userName']:undefined,'password':_0x30bc9b[_0x3ca73f(0x14d)]==='UserName'?_0x30bc9b['password']:undefined,'userCertificate':_0x30bc9b['userCertificate'],'userPrivatekey':_0x30bc9b[_0x3ca73f(0x158)]};};RED[_0x4efad1(0x1fa)][_0x4efad1(0x165)]('OpcUa-Client2-Call',{'category':_0x4efad1(0x1ee),'color':_0x4efad1(0x1b2),'align':_0x4efad1(0x19c),'icon':_0x4efad1(0x1d0),'paletteLabel':_0x4efad1(0x1a4),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x4efad1(0x1ce)},'action':{'value':_0x4efad1(0x202),'required':!![]},'methodId':{'value':'','required':!![]},'objectId':{'value':'','required':!![]}},'outputs':0x2,'label'(){const _0x12a177=_0x4efad1;return this['name']||_0x12a177(0x169);},'labelStyle'(){const _0x3751db=_0x4efad1;return this[_0x3751db(0x1c5)]?_0x3751db(0x140):'';},'oneditprepare'(){const _0x2fe7cc=_0x4efad1,_0x585dc7=this;_0x679817(),_0x585dc7['inputs']=0x1;let _0x3980d0={};console[_0x2fe7cc(0x193)]('Calling\x20nodeBrowser');const _0x47ec1d=$('#node-input-objectId'),_0x1630ff=$('#node-input-methodId'),_0x998584=$(_0x2fe7cc(0x1c0)),_0x22d884=$(_0x2fe7cc(0x198)),_0x19ff59=$(_0x2fe7cc(0x19f));_0x47ec1d[_0x2fe7cc(0x185)](Object[_0x2fe7cc(0x148)](Object[_0x2fe7cc(0x148)]({},_0xe5a42b()),{'filter'(_0xd90e65){return _0xd90e65['nodeClass']==='Object';}})),_0x1630ff[_0x2fe7cc(0x185)](Object[_0x2fe7cc(0x148)](Object[_0x2fe7cc(0x148)]({},_0xe5a42b()),{'parentNode':()=>_0x4e3673(this,void 0x0,void 0x0,function*(){const _0x23d165=_0x2fe7cc;let _0xbac98d=_0x47ec1d[_0x23d165(0x1e0)](_0x23d165(0x1cf));if(!_0xbac98d){const _0x3e1875=_0x47ec1d[_0x23d165(0x1bd)](),_0x4e6ee1=_0x558a45();if(!_0x4e6ee1)return null;const _0x4e3178={'baseUrl':'','endpoint':'','endpointNode':_0x4e6ee1};try{const _0x4a8284=yield _0x4b12ec(_0x4e3178,_0x3e1875);_0xbac98d=_0x4a8284[_0x23d165(0x1cf)];}catch(_0x5ae832){console[_0x23d165(0x193)](_0x5ae832);}}return _0xbac98d;}),'filter'(_0x50f12c){const _0x2ddeec=_0x2fe7cc;return _0x50f12c[_0x2ddeec(0x13f)]==='Method'||_0x50f12c[_0x2ddeec(0x13f)]===_0x2ddeec(0x1c2);},'isSelectable'(_0x29573d){const _0x5a48ef=_0x2fe7cc;return _0x29573d[_0x5a48ef(0x13f)]===_0x5a48ef(0x1a0);}})),_0x47ec1d['on'](_0x2fe7cc(0x1ec),()=>{const _0x5400a5=_0x2fe7cc;_0x1630ff[_0x5400a5(0x185)](_0x5400a5(0x196));}),console['log'](_0x2fe7cc(0x1ba));function _0x489ef3(_0x4145cd,_0xab2466,_0x39980c){const _0x5d931b=_0x2fe7cc,_0x16cc17=$(_0x5d931b(0x1cc))[_0x5d931b(0x1f6)](_0x4145cd);$('<input\x20type=\x22text\x22>')[_0x5d931b(0x1bd)](_0x39980c[_0x5d931b(0x1c5)]||'')[_0x5d931b(0x149)]({'width':_0x5d931b(0x1c9)})['appendTo'](_0x16cc17);const _0x33315c=_0x3980d0[_0x39980c[_0x5d931b(0x1a6)][_0x5d931b(0x1eb)]()],_0x24b0da=(_0x33315c?_0x33315c['browseName'][_0x5d931b(0x1c5)]||'':_0x39980c[_0x5d931b(0x1a6)][_0x5d931b(0x1eb)]())+(_0x39980c[_0x5d931b(0x1db)]===0x1?'[]':'');$(_0x5d931b(0x18a))['val'](_0x39980c['description'][_0x5d931b(0x1f5)]||'')['css']({'width':'50%'})[_0x5d931b(0x1f6)](_0x16cc17),$('<input\x20type=\x22text\x22>')['val'](_0x24b0da||'')['css']({'width':_0x5d931b(0x189)})[_0x5d931b(0x1f6)](_0x16cc17);}_0x998584['editableList']({'addButton':![],'height':'auto','scrollOnAdd':![],'addItem'(_0x4ac497,_0x4183a3,_0x3e97cc){_0x489ef3(_0x4ac497,_0x4183a3,_0x3e97cc);}}),_0x22d884[_0x2fe7cc(0x135)]({'addButton':![],'height':_0x2fe7cc(0x15d),'scrollOnAdd':![],'addItem'(_0x195de0,_0x269c2c,_0x237453){_0x489ef3(_0x195de0,_0x269c2c,_0x237453);}});function _0x3794c0(_0x4f8549,_0x423a2d){const _0x20812f=_0x2fe7cc;console[_0x20812f(0x193)](_0x20812f(0x1e2),_0x423a2d[_0x20812f(0x1cb)],_0x20812f(0x171),_0x423a2d),_0x4f8549[_0x20812f(0x135)]('empty');for(let _0x955e0f=0x0;_0x955e0f<_0x423a2d[_0x20812f(0x1cb)];_0x955e0f++){_0x4f8549[_0x20812f(0x135)](_0x20812f(0x1b9),_0x423a2d[_0x955e0f]);}}_0x998584[_0x2fe7cc(0x13d)](),_0x22d884[_0x2fe7cc(0x13d)](),_0x3c66dc(_0x2fe7cc(0x1bc),_0x19ff59,()=>({'url':_0x2fe7cc(0x1fb),'body':{'endpointNode':_0x23ed7d(),'objectId':_0x47ec1d[_0x2fe7cc(0x1bd)](),'methodId':_0x1630ff[_0x2fe7cc(0x1bd)]()}}),(_0x4b6454,_0x84fb85)=>{const _0x40caff=_0x2fe7cc;if(_0x4b6454)return;const _0x643eae=_0x84fb85[_0x40caff(0x143)];_0x3980d0=_0x84fb85['dataTypes'],_0x998584[_0x40caff(0x1e4)](),_0x22d884['show'](),_0x3794c0(_0x998584,_0x643eae[_0x40caff(0x1dd)]),_0x3794c0(_0x22d884,_0x643eae[_0x40caff(0x1b0)]),console[_0x40caff(0x193)]('data',_0x84fb85);});},'oneditsave'(){}});}()));
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg0ZTM2NzMiLCJfMHhmNTlhNjAiLCJfMHgxMGI5YzUiLCJfMHgzM2FmNTkiLCJfMHgxNGUyMzYiLCJfMHg0ZDRhMWIiLCJfMHgzOWE2MjEiLCJfMHg1NzlhNmUiLCJQcm9taXNlIiwiXzB4NTA2NDU1IiwiXzB4MjAxYmQzIiwiXzB4MmJkMmE1IiwiXzB4NDZlYmE4IiwiXzB4MzYyM2MyIiwiXzB4NGIwOTBhIiwiXzB4N2IwM2U4IiwiXzB4NTE3NTY1IiwiXzB4ZDVjYzciLCJfMHgyZTM5MjUiLCJTdXBwcmVzc2VkRXJyb3IiLCJfMHg1OWUyNDciLCJfMHgxOGNkYjgiLCJfMHgzNjFjNjgiLCJfMHg1OThiMGQiLCJFcnJvciIsIl8weDM0NWM3YyIsIl8weDNkNzcyYyIsIl8weGJmMThjYiIsIl8weDJhOTcyNiIsIl8weDIzYzlkNSIsIl8weDQ4MTA2ZiIsIl8weDNiNjIzYSIsIl8weDJjOTA0ZSIsIl8weDFmMzdmZiIsIl8weGM4MWU3YyIsIl8weDVjMzRjMCIsIl8weDU4ZjIzYyIsIl8weDUyMzNiNSIsIl8weDNiNGNiYSIsIl8weDQwYzA4MyIsIl8weDFlMDcwYyIsIl8weDNiN2YxMyIsIl8weDE2MTMzNSIsIl8weDJhZWJjNCIsIl8weDFiZmM2MSIsImVuZHBvaW50Tm9kZSIsIl8weDU1MTE5YiIsImVuZHBvaW50IiwiXzB4MjRiYWJjIiwiYmFzZVVybCIsIl8weDUzOTQ2MSIsIl8weDMxNThlMCIsIl8weDE5NjMwNSIsIl8weDFlNzA1NSIsIl8weDQzZGUxNCIsIl8weDE3MWY5NyIsIk9iamVjdCIsIl8weDQwMDNjMCIsImZldGNoIiwiSlNPTiIsImNvbnNvbGUiLCJfMHg1MmJiODgiLCJfMHgxNGM3OGQiLCJfMHgyMmU2NGEiLCJfMHgzOTcxMjgiLCJfMHgxNDJjZmUiLCJfMHgyN2VkNTgiLCJfMHg1MTFkMjIiLCJfMHg0MTA2NTMiLCJfMHg0YzM0ZjUiLCJfMHgyNjExY2UiLCJfMHg1MDFmODEiLCJfMHgzOTJkNGMiLCJfMHgzODNjNDMiLCJfMHhiMTIyOGEiLCJfMHg0NWVmMmIiLCJfMHg1NjI5M2QiLCJzZXRUaW1lb3V0IiwiXzB4MTM1ZDcyIiwiXzB4MmE4YzdlIiwiXzB4MjJjZGJmIiwiXzB4MmM0YzQ3IiwiXzB4YjE4OTQzIiwiXzB4MjZiMjY4IiwiXzB4MzA1YzY0IiwiXzB4NTUwYjM1IiwiXzB4MzQxNWQ1IiwiXzB4ZGY5M2E5IiwiXzB4MzdkMmI4IiwiXzB4M2NiMTEwIiwiXzB4NWI0NmJiIiwiXzB4NjkwMjhjIiwiXzB4NTNjY2E4IiwiXzB4MmIxYmJiIiwiXzB4YWNjMzQyIiwiXzB4NDNhOTgiLCIkIiwiXzB4MzM3ODZjIiwiXzB4NGVhZjZhIiwiaWNvbiIsIl8weDVjNzE0NSIsImNvbG9yIiwiXzB4MmU1NjdkIiwiXzB4MWUxZGNmIiwiXzB4Njc5ODE3IiwidW5kZWZpbmVkIiwiXzB4NTcyOGEwIiwiXzB4MWYyNzA0IiwiXzB4MWUwYjI3IiwiXzB4Mzk2MWZmIiwiXzB4NWI3NzcxIiwiXzB4NDIxZmYyIiwiXzB4MjQyYzIwIiwiXzB4NTkzMzI5IiwiXzB4MzZjNWVmIiwiXzB4NTdjNWU1IiwiXzB4M2RiMjFkIiwiXzB4MjA3ZGUwIiwicmVmZXJlbmNlcyIsIl8weDNjMWFhZSIsIl8weDM1ZGEzZSIsIl8weDRlOGRhYSIsIl8weDQxN2EzYSIsIl8weDJkZWZhZiIsIl8weDM2OTE5NSIsIl8weGE4MjI5NSIsIl8weDUyYTVkMSIsIl8weDRlMGJkMSIsIl8weDM0NmNkYyIsIl8weDRiNjIzYSIsIl8weDFhYWEzZiIsIl8weDM4MzA4ZCIsIl8weDQ1ODYxNyIsIl8weDI5OGFhMyIsIl8weDMyYTAzZSIsIl8weDM5ODYwYiIsIl8weGVkZTMxMyIsIl8weDVkMDJiYyIsIl8weDlhNjI5MiIsIl8weDFiZmJmMSIsImRvY3VtZW50IiwiXzB4NDQ5Zjg1IiwiXzB4NGIxMmVjIiwiXzB4NTIzNDljIiwiXzB4MTRlYWYwIiwiXzB4MTEyOTczIiwiXzB4NDk0MzU2IiwiXzB4MjQzYjBmIiwiXzB4MTdjOWRhIiwiXzB4MzYwZjJlIiwiXzB4MTNmZDBhIiwiXzB4MjYxNjQyIiwiXzB4M2M2NmRjIiwiXzB4MmI2MzgyIiwiXzB4MThhYmFiIiwiXzB4NTNjN2RiIiwiXzB4YjVjZTA0IiwiXzB4NTRhZDg4IiwiXzB4MzMyNjY5IiwiXzB4NTgyODk3IiwiXzB4MmEzZDY1IiwiXzB4M2M2NDJjIiwiYm9keSIsIl8weDEzMzk3YSIsInVybCIsIl8weDU3ZjIzMiIsIl8weDNjMDJiNyIsIl8weDQyNTRiNCIsIl8weDE5MTM1MiIsIl8weDE1N2EwYyIsIl8weDVlMDE0NSIsIl8weDE4YTc3YyIsIl8weDU3NzU2OCIsIkFycmF5IiwiXzB4M2EzNDEzIiwiXzB4NTU4YTQ1IiwiXzB4NGE2ODMyIiwiXzB4NGIyZjRlIiwiXzB4NDNhMjU2IiwiUkVEIiwiXzB4MTZjZjU3Iiwic2VjdXJpdHlNb2RlIiwiXzB4MWQwNDVlIiwic2VjdXJpdHlQb2xpY3kiLCJfMHg4YWE1ZDkiLCJ1c2VySWRlbnRpdHlUeXBlIiwiXzB4NGM3NmRiIiwidXNlck5hbWUiLCJfMHgxYjY5ZSIsInBhc3N3b3JkIiwiXzB4NTY0M2I5IiwidXNlckNlcnRpZmljYXRlIiwiXzB4N2MyMTk0IiwidXNlclByaXZhdGVrZXkiLCJfMHgzNjIzNDIiLCJfMHhlNWE0MmIiLCJfMHgyM2VkN2QiLCJfMHgxNGQ5OTUiLCJfMHgzNzkyNWEiLCJfMHgzMGJjOWIiLCJfMHg1ODVkYzciLCJfMHgzOTgwZDAiLCJfMHg0N2VjMWQiLCJfMHgxNjMwZmYiLCJfMHg5OTg1ODQiLCJfMHgyMmQ4ODQiLCJfMHgxOWZmNTkiLCJfMHhkOTBlNjUiLCJfMHhiYWM5OGQiLCJfMHgzZTE4NzUiLCJfMHg0ZTZlZTEiLCJfMHg0ZTMxNzgiLCJfMHg0YTgyODQiLCJfMHg1YWU4MzIiLCJfMHg1MGYxMmMiLCJfMHgyOTU3M2QiLCJfMHg0ODllZjMiLCJfMHg0MTQ1Y2QiLCJfMHhhYjI0NjYiLCJfMHgzOTk4MGMiLCJfMHgxNmNjMTciLCJfMHgzMzMxNWMiLCJfMHgyNGIwZGEiLCJfMHg0YWM0OTciLCJfMHg0MTgzYTMiLCJfMHgzZTk3Y2MiLCJfMHgxOTVkZTAiLCJfMHgyNjljMmMiLCJfMHgyMzc0NTMiLCJfMHgzNzk0YzAiLCJfMHg0Zjg1NDkiLCJfMHg0MjNhMmQiLCJfMHg5NTVlMGYiLCJfMHg0YjY0NTQiLCJfMHg4NGZiODUiLCJfMHg2NDNlYWUiXSwibWFwcGluZ3MiOiI4MkhBQUEsQ0FBQyxVLENBQ0csYSx3QkFtQkEsU0FBU0EsU0FBVCxDQUFtQkMsU0FBbkIsQ0FBNEJDLFNBQTVCLENBQXdDQyxTQUF4QyxDQUEyQ0MsU0FBM0MsQyxDQUNJLFNBQVNDLFNBQVQsQ0FBZUMsU0FBZixDLFFBQStCQSxTQUFBLFlBQWlCSCxTQUFqQixDQUFxQkcsU0FBckIsQ0FBNkIsSUFBSUgsU0FBSixDQUFNLFNBQVVJLFNBQVYsQyxDQUFxQkEsU0FBQSxDQUFRRCxTQUFSLEMsRUFBM0IsQyxTQUNyRCxHQUFLLENBQUFILFNBQUEsRUFBTSxDQUFBQSxTQUFBLENBQUlLLE9BQUosQ0FBTixDQUFMLENBQXlCLFNBQVVDLFNBQVYsQ0FBbUJDLFNBQW5CLEMseUJBQzVCLFNBQVNDLFNBQVQsQ0FBbUJDLFNBQW5CLEMseUJBQTRCLEcsQ0FBTUMsU0FBQSxDQUFLVCxTQUFBLEMsZ0JBQUEsRUFBZVEsU0FBZixDQUFMLEMsRUFBK0IsTUFBT0UsU0FBUCxDLENBQVlKLFNBQUEsQ0FBT0ksU0FBUCxDLEdBQzdFLFNBQVNDLFNBQVQsQ0FBa0JDLFNBQWxCLEMsQ0FBMkIsRyxDQUFNSCxTQUFBLENBQUtULFNBQUEsQyxPQUFBLEVBQW1CWSxTQUFuQixDQUFMLEMsRUFBbUMsTUFBT0MsUUFBUCxDLENBQVlQLFNBQUEsQ0FBT08sUUFBUCxDLEdBQ2hGLFNBQVNKLFNBQVQsQ0FBY0ssU0FBZCxDLHlCQUF3QkEsU0FBQSxDLGdCQUFBLEVBQWNULFNBQUEsQ0FBUVMsU0FBQSxDLGdCQUFBLENBQVIsQ0FBZCxDQUFzQ2IsU0FBQSxDQUFNYSxTQUFBLEMsZ0JBQUEsQ0FBTixFLE1BQUEsRUFBeUJQLFNBQXpCLENBQW9DSSxT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LGdCQUFBLENBQTZCQyxTQUFBLENBQWdCQyxTQUFoQixDQUE3QixDLEdBR1I1QixTQUFBLEMsZ0JBQUEsRyxDQUNBQyxTQUFBLEMsZ0JBQUEsRyxDQUNBckQsU0FBQSxDLGdCQUFBLENBQTBCc0QsU0FBMUIsQ0FBd0MsS0FBTyxDLEtBQzNDLEMsZ0JBRDJDLEMsTUFFM0MsQ0FBTSxDLGNBQ0YsQ0FBY1YsU0FBQSxFQURaLEMsVUFFRixDQUFVTSxTQUFBLEMsZ0JBQUEsR0FGUixDLFVBR0YsQ0FBVUMsU0FBQSxDLGdCQUFBLEdBSFIsQ0FGcUMsQ0FBUCxDQUF4QyxDQU9JLENBQUM4QixTQUFELENBQU1DLFNBQU4sRyw4QkFDSUQsUyxDQUNBLE9BR0osTUFBTUUsU0FBQSxDQUFxQkQsU0FBQSxDLGdCQUFBLENBQTNCLENBQ0FqQyxTQUFBLENBQVlpQyxTQUFBLEMsV0FBQSxDLENBQ1o5QixTQUFBLEMsZ0JBQUEsRyxDQUNBQyxTQUFBLEMsTUFBQSxHLENBQ0F3QixTQUFBLENBQW9CekIsU0FBcEIsQ0FBOEMrQixTQUFBLEMsZ0JBQUEsQ0FBOUMsQyxDQUNBTixTQUFBLENBQW9CeEIsU0FBcEIsQ0FBK0M4QixTQUFBLEMsZ0JBQUEsQ0FBL0MsQyxDQUNBL0ssT0FBQSxDLGdCQUFBLEUsTUFBQSxDQUFvQjhLLFNBQXBCLEMsRUFsQkosQyxFQW5IcUMsQyxZQXdJekMsRSxFQXhJeUMsQ0FBN0MsQyxFQWpsQkosRyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG4gICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG4gICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG4gICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcbiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuICAgIC8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCAqL1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG4gICAgfTtcblxuICAgIGNvbnN0IE9yZ2FuaXplc1JlZk5vZGVJZCA9IFwibnM9MDtpPTM1XCI7XG4gICAgY29uc3QgRm9sZGVyVHlwZSA9IFwibnM9MDtpPTYxXCI7XG4gICAgY29uc3QgSGFzQ29tcG9uZW50UmVmTm9kZUlkID0gXCJucz0wO2k9NDdcIjtcbiAgICBjb25zdCBIYXNQcm9wZXJ0eVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ2XCI7XG4gICAgY29uc3QgSGFzQ2hpbGRSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNFwiO1xuICAgIGNvbnN0IEhhc1N1YnR5cGVSZWZOb2RlSWQgPSBcIm5zPTA7aT00NVwiO1xuICAgIGNvbnN0IEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkID0gXCJucz0wO2k9NDBcIjtcblxuICAgIHZhciBCcm93c2VEaXJlY3Rpb247XG4gICAgKGZ1bmN0aW9uIChCcm93c2VEaXJlY3Rpb24pIHtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkZvcndhcmRcIl0gPSAwXSA9IFwiRm9yd2FyZFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52ZXJzZVwiXSA9IDFdID0gXCJJbnZlcnNlXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJCb3RoXCJdID0gMl0gPSBcIkJvdGhcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmFsaWRcIl0gPSAzXSA9IFwiSW52YWxpZFwiO1xuICAgIH0pKEJyb3dzZURpcmVjdGlvbiB8fCAoQnJvd3NlRGlyZWN0aW9uID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzKSB7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJVbnNwZWNpZmllZFwiXSA9IDBdID0gXCJVbnNwZWNpZmllZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3MgfHwgKE5vZGVDbGFzcyA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzc01hc2s7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3NNYXNrKSB7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3NNYXNrIHx8IChOb2RlQ2xhc3NNYXNrID0ge30pKTtcbiAgICB2YXIgUmVzdWx0TWFzaztcbiAgICAoZnVuY3Rpb24gKFJlc3VsdE1hc2spIHtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDFdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIklzRm9yd2FyZFwiXSA9IDJdID0gXCJJc0ZvcndhcmRcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiTm9kZUNsYXNzXCJdID0gNF0gPSBcIk5vZGVDbGFzc1wiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJCcm93c2VOYW1lXCJdID0gOF0gPSBcIkJyb3dzZU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiRGlzcGxheU5hbWVcIl0gPSAxNl0gPSBcIkRpc3BsYXlOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlR5cGVEZWZpbml0aW9uXCJdID0gMzJdID0gXCJUeXBlRGVmaW5pdGlvblwiO1xuICAgIH0pKFJlc3VsdE1hc2sgfHwgKFJlc3VsdE1hc2sgPSB7fSkpO1xuICAgIC8vICBjb25zdCBxID0gUmVmZXJlbmNlVHlwZUlkcy5Pcmdhbml6ZXM7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZU5vZGVJZChub2RlSWRMaWtlKSB7XG4gICAgICAgIHN3aXRjaCAobm9kZUlkTGlrZSkge1xuICAgICAgICAgICAgY2FzZSBcIk9yZ2FuaXplc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBPcmdhbml6ZXNSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzUHJvcGVydHlcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzUHJvcGVydHlSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ29tcG9uZW50XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NvbXBvbmVudFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDaGlsZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDaGlsZFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNTdWJ0eXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1N1YnR5cGVSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzVHlwZURlZmluaXRpb25cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBnZXRJY29uID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHJlZmVyZW5jZS5ub2RlQ2xhc3MpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gT3JnYW5pemVzUmVmTm9kZUlkKSA7XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS50eXBlRGVmaW5pdGlvbiA9PT0gRm9sZGVyVHlwZSB8fCByZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBcImk9NjFcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWZvbGRlclwiLCBjb2xvcjogXCJyZ2JhKDYxLCA2MCwgNCwgMC41MjUpXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiU2VhR3JlZW5cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlXCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc0NvbXBvbmVudFJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIlN0ZWVsQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc1Byb3BlcnR5UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiRG9kZ2VyQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcIk1ldGhvZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtY29nXCIsIGNvbG9yOiBcIlNhbmR5QnJvd25cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXNsaWRlcnNcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1xdWVzdGlvblwiLCBjb2xvcjogXCJncmV5XCIgfTtcbiAgICB9O1xuXG4gICAgY29uc3QgYnJvd3NlID0gKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQsIHRlbXBsYXRlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2Jyb3dzZWA7XG4gICAgICAgIGNvbnN0IGJyb3dzZURlc2NyaXB0aW9uID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB0ZW1wbGF0ZSksIHsgbm9kZUlkLCByZXN1bHRNYXNrOiA2MyB9KTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgYnJvd3NlRGVzY3JpcHRpb24sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoaW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlczogW10gfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZXMgPSByZXNwb25zZS5icm93c2VSZXN1bHQucmVmZXJlbmNlcyB8fCBbXTtcbiAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlcyB9O1xuICAgIH0pO1xuXG4gICAgY29uc3QgdGVtcGxhdGUxID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNDaGlsZFwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IHRlbXBsYXRlMiA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiT3JnYW5pemVzXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgaW50ZXJuYWxWZXJpZnkgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sICRpbnB1dEVsZW1lbnQsICRpbmZvKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IG5vZGVJZCA9ICRpbnB1dEVsZW1lbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaChgJHtyb290fS9jaGVja05vZGVJZGAsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgc2V0Tm90aWZpY2F0aW9uID0gKHRleHQsIGNsYXNzTmFtZSkgPT4ge1xuICAgICAgICAgICAgJGluZm8udGV4dCh0ZXh0KS5hZGRDbGFzcyhcInN0ZXJmaXZlLWluZm9cIikuYWRkQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICRpbmZvLnNob3coKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICRpbmZvLnJlbW92ZUNsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAgICAgJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgfSwgMzAwMCk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGpzb24gPSAoeWllbGQgZGF0YS5qc29uKCkpO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nO1xuICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiISFmYWlsdXJlISFcIiArIG5vZGVJZCwgXCJmYWlsdXJlXCIpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGpzb24uc3RhdHVzQ29kZS5tYXRjaCgvR29vZC8pKSB7XG4gICAgICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nXG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoanNvbi5ub2RlQWRkcmVzc1N0cmluZyk7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihcIkdvb2RcIiwgXCJva1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKGAke25vZGVJZH1gKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oYCR7anNvbi5zdGF0dXNDb2RlfSAke2RhdGEuc3RhdHVzVGV4dH1gLCBcImZhaWx1cmVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBmdW5jdGlvbiBmZXRjaENoaWxkcmVuKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUxKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDIgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTIpO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VzOiBbLi4uYnJvd3NlUmVzdWx0MS5yZWZlcmVuY2VzLCAuLi5icm93c2VSZXN1bHQyLnJlZmVyZW5jZXNdLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IHRlbXBsYXRlU1QgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc1N1YnR5cGVcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfCBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8IE5vZGVDbGFzcy5EYXRhVHlwZSB8IE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgZnVuY3Rpb24gZmV0Y2hTdWJ0eXBlcygkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlU1QpO1xuICAgICAgICAgICAgcmV0dXJuIGJyb3dzZVJlc3VsdDE7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBtYWtlRWxlbWVudCA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKCFyZWZlcmVuY2UpIHtcbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgZmEtZXJyb3JcIiBzdHlsZT1cImNvbG9yOnJlZDtcIj48L2k+bm8gcmVmZXJlbmNlICE8dWw+PC91bD48L2xpPmApO1xuICAgICAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG4gPSByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHQgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB7IGljb24sIGNvbG9yIH0gPSBnZXRJY29uKHJlZmVyZW5jZSk7XG4gICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgJHtpY29ufVwiIHN0eWxlPVwiY29sb3I6JHtjb2xvcn07XCI+PC9pPiAke3R9PHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgJGVsZW1lbnQuYWRkQ2xhc3MoXCJleHBhbmRhYmxlXCIpO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwidmFsdWVcIiwgbik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgIH07XG4gICAgY29uc3QgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogWyBUZW1wZXJhdHVyZSAgXVxuICAgICAgICAgKiAgICggdG9vbHRpcCA6ICgvT2JqZWN0cy9NeVNlbnNvcikgKG5zPTE7cz1UZW1wZXJhdHVyZSkpXG4gICAgICAgICAqIFsgKyBbRm9sZGVyXSBPYmplY3RzXVxuICAgICAgICAgKiBbICAgICBbT2JqZWN0XSBNeVNlbnNvcl1cbiAgICAgICAgICogWyAgICAgKCApIFtWYXJpYWJsZV0gVGVtcGVyYXR1cmVdXG4gICAgICAgICAqL1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLm5vZGVCcm93c2VyXCIsIHtcbiAgICAgICAgICAgIC8qIGRlZmF1bHQgb3B0aW9ucyAqL1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogKCkgPT4gKHsgZW5kcG9pbnQ6IFwib3BjLnRjcDovL29wY3VhZGVtby5zdGVyZml2ZS5jb206MjY1NDNcIiB9KSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludDogKCkgPT4gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHBhcmVudE5vZGU6ICgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIGJyb3dzZU5hbWU6IHsgbmFtZXNwYWNlSW5kZXg6IDAsIG5hbWU6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIG5vZGVDbGFzczogXCJPYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgbm9kZUlkOiBcIm5zPTA7aT04NVwiLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogeyB0ZXh0OiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICB0eXBlRGVmaW5pdGlvbjogRm9sZGVyVHlwZSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6ICgpID0+IHRydWUsXG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgICAgICBpc1R5cGVSZWY6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc29sdmVQYXJlbnROb2RlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdHlwZW9mIHRoYXQub3B0aW9ucy5wYXJlbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHlpZWxkIGE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGE7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzZXQoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzb2x2ZVBhcmVudE5vZGUoKS50aGVuKChwYXJlbnROb2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5jdXJyZW50UGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2ZXJpZnkoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpbnRlcm5hbFZlcmlmeShkYXRhLCB0aGF0LiRpbnB1dCwgdGhhdC4kaW5mbyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBfZmV0Y2hEYXRhRm9yTm9kZSgkbm9kZSwgZmV0Y2hGdW5jLCBkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwibG9hZGluZ1wiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFwcGVuZCgnPGRpdiBjbGFzcz1cInNwaW5uZXJcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcmVmZXJlbmNlcyB9ID0geWllbGQgZmV0Y2hGdW5jKCRub2RlLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHJlZmVyZW5jZSBvZiByZWZlcmVuY2VzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuZmlsdGVyICYmICF0aGF0Lm9wdGlvbnMuZmlsdGVyKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoYDxsaT5lcnJvciAke2Vyci5tZXNzYWdlfTwvbGk+YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmZpbmQoXCIuc3Bpbm5lclwiKS5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLnJlbW92ZUNsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0ID0gdGhpcy5lbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvID0gJChcIjxkaXYvPlwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcInN0ZXJmaXZlLWNvbWJvLWJveFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQucmVwbGFjZVdpdGgodGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAgPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwiaW5wdXQtZ3JvdXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGlucHV0R3JvdXApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJGlucHV0KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLXNpdGVtYXBcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdG9nZ2xlVHJlZUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0bi5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRkcm9wZG93bi5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0cmVlIHdpZGdldCBpcyBnb2luZyB0byBiZWNvbWUgdmlzaWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5yZXNvbHZlUGFyZW50Tm9kZSgpLnRoZW4oKHBhcmVudE5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudE5vZGUgIT09IHRoYXQuY3VycmVudFBhcmVudCB8fCAoKF9hID0gdGhhdC5jdXJyZW50UGFyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eubm9kZUlkKSAhPT0gcGFyZW50Tm9kZS5ub2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLWZsYXNrXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHZlcmlmeUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZlcmlmeSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICghdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiLCBcImVudGVyIGEgbm9kZUlkIG9yIGEgYnJvd3NlUGF0aCBcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8gPSAkKGA8ZGl2IGNsYXNzPVwiaW5mby10ZXh0XCI+PC9kaXY+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24gPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwic3RlcmZpdmUtZHJvcGRvd25cIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUgPSAkKGA8dWwgY2xhc3M9XCJzdGVyZml2ZS10cmVlXCI+PC91bD5gKS5hcHBlbmRUbyh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVdpZHRoID0gMjA7IC8vIFNldCB3aWR0aCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVIZWlnaHQgPSAyMDsgLy8gU2V0IGhlaWdodCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50UG9zID0gJCh0aGlzKS5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5wYWdlWCA+PSBlbGVtZW50UG9zLmxlZnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVggPD0gZWxlbWVudFBvcy5sZWZ0ICsgYmVmb3JlV2lkdGggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPj0gZWxlbWVudFBvcy50b3AgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPD0gZWxlbWVudFBvcy50b3AgKyBiZWZvcmVIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZiA9ICF0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmID8gZmV0Y2hDaGlsZHJlbiA6IGZldGNoU3VidHlwZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2ZldGNoRGF0YUZvck5vZGUoJGxpLCBmLCBkYXRhKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiIEZldGNoaW5nIGRvbmVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFyayBhcyBleHBhbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvZ2dsZSBpdHMgZXhwYW5kZWQvY29sbGFwc2VkIHN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5jaGlsZHJlbihcInVsXCIpLmNoaWxkcmVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gJGxpLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9ICRsaS5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUgJiYgIXRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gYFske2Rpc3BsYXlOYW1lfV0oJHt2YWx1ZX0pYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnZhbChpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSB0aGUgcGFnZSB3aWxsIGhpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QodGhhdC4kY29tYm8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgY2hlY2tOb2RlSWQgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9jaGVja05vZGVJZGA7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICBjb25zdCByZXMgPSB7XG4gICAgICAgICAgICAgICAgc3RhdHVzQ29kZTogXCJCYWRcIixcbiAgICAgICAgICAgICAgICBub2RlQWRkcmVzc1N0cmluZzogbm9kZUlkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkIDogXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBtYW5hZ2VBUElDYWxsKHByZWZpeCwgYnRuLCBmdW5jLCBvblJlc3VsdCkge1xuICAgICAgICBjb25zdCBzdWNjZXNzSWNvbiA9ICQoYCMke3ByZWZpeH0tc3VjY2Vzc2ApO1xuICAgICAgICBjb25zdCBmYWlsdXJlSWNvbiA9ICQoYCMke3ByZWZpeH0tZmFpbHVyZWApO1xuICAgICAgICBjb25zdCBwZW5kaW5nSWNvbiA9ICQoYCMke3ByZWZpeH0tcGVuZGluZ2ApO1xuICAgICAgICBjb25zdCBtZXNzYWdlcyA9ICQoYCMke3ByZWZpeH0tbWVzc2FnZXNgKTtcbiAgICAgICAgbGV0IGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgc3VjY2Vzc0ljb24uaGlkZSgpO1xuICAgICAgICBmYWlsdXJlSWNvbi5oaWRlKCk7XG4gICAgICAgIHBlbmRpbmdJY29uLmhpZGUoKTtcbiAgICAgICAgYnRuLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGFjdGlvblBlbmRpbmcpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgYWN0aW9uUGVuZGluZyA9IHRydWU7XG4gICAgICAgICAgICBwZW5kaW5nSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICBwZW5kaW5nSWNvbi5odG1sKFwiVGVzdGluZyBDb25uZWN0aW9uIC4uLlwiKTtcbiAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIGZhaWx1cmVJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoXCJcIik7XG4gICAgICAgICAgICBjb25zdCB7IGJvZHksIHVybCB9ID0gZnVuYygpO1xuICAgICAgICAgICAgLy8geHggY29uc29sZS5sb2coXCJ4eHh4eFwiLCBib2R5KTtcbiAgICAgICAgICAgIGZldGNoKHVybCwge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGJvZHkpLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAudGhlbigoZGF0YSkgPT4gZGF0YS5qc29uKCkpXG4gICAgICAgICAgICAgICAgLnRoZW4oKGpzb24pID0+IHtcbiAgICAgICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcGVuZGluZ0ljb24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KGpzb24sIG51bGwsIFwiIFwiKSk7XG4gICAgICAgICAgICAgICAgaWYgKGpzb24ucmVzdWx0ID09PSBcIm9rXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoanNvbi5tZXNzYWdlLnJlcGxhY2UoXCJcXG5cIiwgXCI8YnI+XCIpKTtcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQobnVsbCwganNvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhZGFwdCA9IChzdHIpID0+ICFzdHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gXCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzdHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3BsaXQoXCJcXG5cIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKChhKSA9PiBgPHA+JHthfTwvcD5gKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKFwiXFxuXCIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhZGFwdDIgPSAoc3RyKSA9PiAoQXJyYXkuaXNBcnJheShzdHIpID8gc3RyLm1hcChhZGFwdCkuam9pbihcIlxcblwiKSA6IGFkYXB0KHN0cikpO1xuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChhZGFwdDIoanNvbi5tZXNzYWdlKSArIGFkYXB0Mihqc29uLmV4dHJhKSk7XG4gICAgICAgICAgICAgICAgICAgIG9uUmVzdWx0KG5ldyBFcnJvcihqc29uLnJlc3VsdCksIGpzb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcGVuZGluZ0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChcImludGVybmFsIGVycm9yIFwiICsgZXJyLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyXCIsIGVycik7XG4gICAgICAgICAgICAgICAgb25SZXN1bHQoZXJyLCBudWxsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBnZXRFbmRQb2ludEF0dHJpYnV0ZXMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgcmVkTm9kZSA9IFJFRC5ub2Rlcy5ub2RlKGVuZHBvaW50SWQpO1xuICAgICAgICBpZiAoIXJlZE5vZGUpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAvLyB3ZSBuZWVkIHRvIHNhbml0aXplIGFuZCBleHRyYWN0IHRoZSBlbmRwb2ludCBhdHRyaWJ1dGVzIG9ubHkgKCBub3QgdGhlIG5vZGUtcmVkIHN0dWZmKVxuICAgICAgICBjb25zdCB7IGVuZHBvaW50LCBzZWN1cml0eU1vZGUsIHNlY3VyaXR5UG9saWN5LCB1c2VySWRlbnRpdHlUeXBlLCB1c2VyTmFtZSwgcGFzc3dvcmQsIHVzZXJDZXJ0aWZpY2F0ZSwgdXNlclByaXZhdGVrZXkgfSA9IHJlZE5vZGU7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIHVzZXJOYW1lLFxuICAgICAgICAgICAgcGFzc3dvcmQsXG4gICAgICAgICAgICB1c2VyQ2VydGlmaWNhdGUsXG4gICAgICAgICAgICB1c2VyUHJpdmF0ZWtleSxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IGdldEVuZHBvaW50UGFyYW1ldGVycyxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVycyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCBlbmRwb2ludE5yID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgIGlmICghZW5kcG9pbnROcikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGVuZHBvaW50SWQsXG4gICAgICAgICAgICBlbmRwb2ludDogZW5kcG9pbnROci5lbmRwb2ludCxcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZTogZW5kcG9pbnROci5zZWN1cml0eU1vZGUsXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeTogZW5kcG9pbnROci5zZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgdXNlck5hbWU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci51c2VyTmFtZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHBhc3N3b3JkOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIucGFzc3dvcmQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB1c2VyQ2VydGlmaWNhdGU6IGVuZHBvaW50TnIudXNlckNlcnRpZmljYXRlLFxuICAgICAgICAgICAgdXNlclByaXZhdGVrZXk6IGVuZHBvaW50TnIudXNlclByaXZhdGVrZXksXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1DbGllbnQyLUNhbGxcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJvcGN1YVwiLFxuICAgICAgICBjb2xvcjogXCIjQzBERUVEXCIsXG4gICAgICAgIGFsaWduOiBcInJpZ2h0XCIsXG4gICAgICAgIGljb246IFwiLi4vLi4vaWNvbnMvb3BjdWFub2RlTG9nby5wbmdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcImNhbGxcIixcbiAgICAgICAgZGVmYXVsdHM6IHtcbiAgICAgICAgICAgIGlucHV0czogeyB2YWx1ZTogMSB9LFxuICAgICAgICAgICAgb3V0cHV0OiB7IHZhbHVlOiA0IH0sXG4gICAgICAgICAgICAvLyBDb21tb25cbiAgICAgICAgICAgIG5hbWU6IHsgdmFsdWU6IFwiXCIgfSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSwgdHlwZTogXCJPcGNVYS1FbmRwb2ludDJcIiB9LFxuICAgICAgICAgICAgYWN0aW9uOiB7IHZhbHVlOiBcInJlYWRcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIC8vIGZvciBhY3Rpb24gY2FsbFxuICAgICAgICAgICAgbWV0aG9kSWQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBvYmplY3RJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gaW5wdXRzOixcbiAgICAgICAgb3V0cHV0czogMiwgLy8gMiBvdXRwdXQsIHNlY29uZCBmb3IgcmF3IG5vZGUtb3BjdWEgZGlhZ25vc3RpY3Mgb3IgbW9yZSBjb21wbGV0ZSBtZXNzYWdlXG4gICAgICAgIGxhYmVsKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSB8fCBcIk9QQ1VBLUNhbGxcIjtcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWxTdHlsZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgPyBcIm5vZGVfbGFiZWxfaXRhbGljXCIgOiBcIlwiO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRwcmVwYXJlKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXM7XG4gICAgICAgICAgICBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQoKTtcbiAgICAgICAgICAgIG5vZGUuaW5wdXRzID0gMTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgU2VjdGlvbiBDYWxsXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgbGV0IGRhdGFUeXBlcyA9IHt9O1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJDYWxsaW5nIG5vZGVCcm93c2VyXCIpO1xuICAgICAgICAgICAgLy8gdG8gZG8gYWRkIGEgdHlwZXNjcmlwdCBkZWZpbml0aW9uIGZvciB0aGlzXG4gICAgICAgICAgICBjb25zdCAkb2JqZWN0SWQgPSAkKFwiI25vZGUtaW5wdXQtb2JqZWN0SWRcIik7XG4gICAgICAgICAgICBjb25zdCAkbWV0aG9kSWQgPSAkKFwiI25vZGUtaW5wdXQtbWV0aG9kSWRcIik7XG4gICAgICAgICAgICBjb25zdCAkaW5wdXRBcmd1bWVudERlZmluaXRpb24gPSAkKFwiI21ldGhvZC1pbnB1dC1hcmd1bWVudC1kZWZpbml0aW9uXCIpO1xuICAgICAgICAgICAgY29uc3QgJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbiA9ICQoXCIjbWV0aG9kLW91dHB1dC1hcmd1bWVudC1kZWZpbml0aW9uXCIpO1xuICAgICAgICAgICAgY29uc3QgJHZhbGlkYXRlQnRuID0gJChcIiN2YWxpZGF0ZS1jYWxsLWFyZ3VtZW50cy1idXR0b25cIik7XG4gICAgICAgICAgICAkb2JqZWN0SWQubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IGZpbHRlcihub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiO1xuICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICAgICAgJG1ldGhvZElkLm5vZGVCcm93c2VyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSwgeyBwYXJlbnROb2RlOiAoKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIG5lZWQgdG8gcmVzeW5jIHdpdGggd2hhdCdzIGluICAjbm9kZS1pbnB1dC1vYmplY3RJZFxuICAgICAgICAgICAgICAgICAgICBsZXQgcmVmZXJlbmNlID0gJG9iamVjdElkLmRhdGEoXCJyZWZlcmVuY2VcIik7XG4gICAgICAgICAgICAgICAgICAgIGlmICghcmVmZXJlbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBub2RlSWRFeCA9ICRvYmplY3RJZC52YWwoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVuZHBvaW50Tm9kZSA9IGdldEVuZFBvaW50QXR0cmlidXRlcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFlbmRwb2ludE5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbm5lY3Rpb25EYXRhID0geyBiYXNlVXJsOiBcIlwiLCBlbmRwb2ludDogXCJcIiwgZW5kcG9pbnROb2RlIH07XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHIgPSB5aWVsZCBjaGVja05vZGVJZChjb25uZWN0aW9uRGF0YSwgbm9kZUlkRXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZmVyZW5jZSA9IHIucmVmZXJlbmNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZmVyZW5jZTtcbiAgICAgICAgICAgICAgICB9KSwgZmlsdGVyKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiTWV0aG9kXCIgfHwgbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgaXNTZWxlY3RhYmxlKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiTWV0aG9kXCI7XG4gICAgICAgICAgICAgICAgfSB9KSk7XG4gICAgICAgICAgICAkb2JqZWN0SWQub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICRtZXRob2RJZC5ub2RlQnJvd3NlcihcInJlc2V0XCIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkNhbGxpbmcgbm9kZUJyb3dzZXIgRG9uZVwiKTtcbiAgICAgICAgICAgIGZ1bmN0aW9uIGFkZEFyZ3VtZW50Q3RybChjb250YWluZXIsIGluZGV4LCBhcmcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtID0gJCgnPGRpdiBjbGFzcz1cImFyZ3VtZW50LWVudHJ5XCI+JykuYXBwZW5kVG8oY29udGFpbmVyKTtcbiAgICAgICAgICAgICAgICAvLyBjb250YWluZXIuZGF0YShcImRhdGFcIiwgYXJnKTtcbiAgICAgICAgICAgICAgICAkKCc8aW5wdXQgdHlwZT1cInRleHRcIj4nKVxuICAgICAgICAgICAgICAgICAgICAudmFsKGFyZy5uYW1lIHx8IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgIC5jc3MoeyB3aWR0aDogXCIxMDAlXCIgfSlcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKGl0ZW0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGQgPSBkYXRhVHlwZXNbYXJnLmRhdGFUeXBlLnRvU3RyaW5nKCldO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGFUeXBlTiA9IChkID8gZC5icm93c2VOYW1lLm5hbWUgfHwgXCJcIiA6IGFyZy5kYXRhVHlwZS50b1N0cmluZygpKSArIChhcmcudmFsdWVSYW5rID09PSAxID8gXCJbXVwiIDogXCJcIik7XG4gICAgICAgICAgICAgICAgJCgnPGlucHV0IHR5cGU9XCJ0ZXh0XCI+JylcbiAgICAgICAgICAgICAgICAgICAgLnZhbChhcmcuZGVzY3JpcHRpb24udGV4dCB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAuY3NzKHsgd2lkdGg6IFwiNTAlXCIgfSlcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKGl0ZW0pO1xuICAgICAgICAgICAgICAgICQoJzxpbnB1dCB0eXBlPVwidGV4dFwiPicpXG4gICAgICAgICAgICAgICAgICAgIC52YWwoZGF0YVR5cGVOIHx8IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgIC5jc3MoeyB3aWR0aDogXCI1MCVcIiB9KVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8oaXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkaW5wdXRBcmd1bWVudERlZmluaXRpb24uZWRpdGFibGVMaXN0KHtcbiAgICAgICAgICAgICAgICBhZGRCdXR0b246IGZhbHNlLFxuICAgICAgICAgICAgICAgIGhlaWdodDogXCJhdXRvXCIsXG4gICAgICAgICAgICAgICAgc2Nyb2xsT25BZGQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGFkZEl0ZW0oY29udGFpbmVyLCBpLCBvYmplY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgYWRkQXJndW1lbnRDdHJsKGNvbnRhaW5lciwgaSwgb2JqZWN0KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAkb3V0cHV0QXJndW1lbnREZWZpbml0aW9uLmVkaXRhYmxlTGlzdCh7XG4gICAgICAgICAgICAgICAgYWRkQnV0dG9uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiYXV0b1wiLFxuICAgICAgICAgICAgICAgIHNjcm9sbE9uQWRkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBhZGRJdGVtKGNvbnRhaW5lciwgaSwgb2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgIGFkZEFyZ3VtZW50Q3RybChjb250YWluZXIsIGksIG9iamVjdCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZnVuY3Rpb24gaW5zdGFsbEFyZ3VtZW50TGlzdChsaXN0LCBtZXRob2RBcmd1bWVudHMpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImluc3RhbGxBcmd1bWVudExpc3RcIiwgbWV0aG9kQXJndW1lbnRzLmxlbmd0aCwgXCJhcmd1bWVudHNcIiwgbWV0aG9kQXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICBsaXN0LmVkaXRhYmxlTGlzdChcImVtcHR5XCIpO1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbWV0aG9kQXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGxpc3QuZWRpdGFibGVMaXN0KFwiYWRkSXRlbVwiLCBtZXRob2RBcmd1bWVudHNbaV0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRpbnB1dEFyZ3VtZW50RGVmaW5pdGlvbi5oaWRlKCk7XG4gICAgICAgICAgICAkb3V0cHV0QXJndW1lbnREZWZpbml0aW9uLmhpZGUoKTtcbiAgICAgICAgICAgIG1hbmFnZUFQSUNhbGwoXCJ2YWxpZGF0ZVwiLCAkdmFsaWRhdGVCdG4sICgpID0+ICh7XG4gICAgICAgICAgICAgICAgdXJsOiBcIi9vcGN1YS1lbmRwb2ludDIvYXJndW1lbnREZWZpbml0aW9uXCIsXG4gICAgICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IGdldEVuZHBvaW50UGFyYW1ldGVycygpLFxuICAgICAgICAgICAgICAgICAgICBvYmplY3RJZDogJG9iamVjdElkLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICBtZXRob2RJZDogJG1ldGhvZElkLnZhbCgpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSwgKGVyciwgZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBwb3B1bGF0ZSB0aGUgbGlzdFxuICAgICAgICAgICAgICAgIGNvbnN0IGFyZ3VtZW50RGVmaW5pdGlvbiA9IGRhdGEuYXJndW1lbnREZWZpbml0aW9uO1xuICAgICAgICAgICAgICAgIGRhdGFUeXBlcyA9IGRhdGEuZGF0YVR5cGVzO1xuICAgICAgICAgICAgICAgICRpbnB1dEFyZ3VtZW50RGVmaW5pdGlvbi5zaG93KCk7XG4gICAgICAgICAgICAgICAgJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbi5zaG93KCk7XG4gICAgICAgICAgICAgICAgaW5zdGFsbEFyZ3VtZW50TGlzdCgkaW5wdXRBcmd1bWVudERlZmluaXRpb24sIGFyZ3VtZW50RGVmaW5pdGlvbi5pbnB1dEFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgaW5zdGFsbEFyZ3VtZW50TGlzdCgkb3V0cHV0QXJndW1lbnREZWZpbml0aW9uLCBhcmd1bWVudERlZmluaXRpb24ub3V0cHV0QXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImRhdGFcIiwgZGF0YSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0c2F2ZSgpIHsgfSxcbiAgICB9KTtcblxufSkoKTsiXX0=
7
+ function _0x544e(){const _0x47f467=['toggle','inputArguments','.spinner','Forward','filter','</p>','ns=0;i=46','result','fa-sliders','pageX','ns=0;i=45','userPrivatekey','validate','typeDefinition','Inverse','done','installArgumentList','log','SandyBrown','addItem',':visible','empty','<li>error\x20','loading','text','$dropdown','endpoint','already\x20fetched','Objects','removeClass','browseName','#node-input-objectId','-messages','SeaGreen','<div\x20class=\x22spinner\x22></div>','internal\x20error\x20','expanded','1bhUOXu','closest','Testing\x20Connection\x20...','auto','function','references','DodgerBlue','Organizes','call','click','HasSubtype','displayName','fa-question','<div/>','dataType','baseUrl','!!failure!!','hide','reset','HasTypeDefinition','/browse','read','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','1424yVZarF','\x20Fetching\x20done','550HBXhsR','SteelBlue','$tree','length','NodeClass','resolveParentNode','<p>','</li>','82431DBLYfz','fa-list-alt','isSelectable','toString','expandable','assign',';\x22></i>\x20','$verifyBtn','fetched','append','isTypeRef','dataTypes','$info','$input','isArray','ns=0;i=40','userCertificate','argumentDefinition','TypeDefinition','children','reference','next','then','$toggleTreeBtn','nodeAddressString','failure','addClass','DataType','opc.tcp://opcuademo.sterfive.com:26543','UserName','#method-output-argument-definition','Calling\x20nodeBrowser','$combo','throw','options','957550gOnWRB','val','err','widget','change','hasClass','Unspecified','offset','opcua','name','HasChild','ns=0;i=35','message','i=61','expandable\x20expanded','<div\x20class=\x22argument-entry\x22>','currentParent','nodes','HasProperty','valueRank','apply','BrowseName','nodeId','/checkNodeId','ObjectType','<br>','status','already\x20loading','ns=0;i=47','input-group','css','fa-object-group','Both','#node-input-endpoint','trigger','60SxOkPD','DisplayName','parentNode','target','../../icons/opcuanodeLogo.png','userIdentityType','CadetBlue','json','value','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','<div\x20class=\x22info-text\x22></div>','#node-input-methodId','element','Method','userName','editableList','verify','1523238oCOEcQ','sterfive.nodeBrowser','HasComponent','pageY','#C0DEED','30070mJUzmh','securityMode','50%','444552dtiOHr','statusText','match','<input\x20type=\x22text\x22>','fa-folder','6566KhwvCH','application/json','error','11406EgZhum','suppressed','outputArguments','Bad','ReferenceType','Object','toggleClass','Invalid','arguments','VariableType','split','catch','Variable','browseResult','ns=0;i=61','OpcUa-Client2-Call','ns=0;i=34','top','Calling\x20nodeBrowser\x20Done','referenceTypeId','fetched\x20:\x20','-success','map','registerType','stringify','ns=0;i=85','#method-input-argument-definition','statusCode','View','/opcua-endpoint2','fa-cog','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','nodeBrowser','IsForward','attr','rgba(61,\x2060,\x204,\x200.525)','POST','nodeClass','join','placeholder','show','endpointNode','replaceWith','html','OPCUA-Call','DarkOrange','data','appendTo','$inputGroup','<ul\x20class=\x22sterfive-tree\x22></ul>'];_0x544e=function(){return _0x47f467;};return _0x544e();}function _0x1de8(_0x48d2a4,_0x226a3b){const _0x544e7c=_0x544e();return _0x1de8=function(_0x1de88b,_0x397b3f){_0x1de88b=_0x1de88b-0x6d;let _0x43a218=_0x544e7c[_0x1de88b];return _0x43a218;},_0x1de8(_0x48d2a4,_0x226a3b);}(function(_0x5c37ab,_0xe991a8){const _0x52de61=_0x1de8,_0x206da6=_0x5c37ab();while(!![]){try{const _0x521425=-parseInt(_0x52de61(0xf2))/0x1*(-parseInt(_0x52de61(0x8b))/0x2)+parseInt(_0x52de61(0x93))/0x3+parseInt(_0x52de61(0x7a))/0x4*(-parseInt(_0x52de61(0x90))/0x5)+parseInt(_0x52de61(0x9b))/0x6+-parseInt(_0x52de61(0x98))/0x7*(-parseInt(_0x52de61(0x109))/0x8)+parseInt(_0x52de61(0x113))/0x9*(-parseInt(_0x52de61(0x10b))/0xa)+-parseInt(_0x52de61(0x136))/0xb;if(_0x521425===_0xe991a8)break;else _0x206da6['push'](_0x206da6['shift']());}catch(_0x8a2783){_0x206da6['push'](_0x206da6['shift']());}}}(_0x544e,0x6115f),(function(){'use strict';const _0x398609=_0x1de8;function _0x1efc4c(_0x1bdcc5,_0x3c045a,_0x5e450e,_0x2e89c7){function _0x439e50(_0x2b07d6){return _0x2b07d6 instanceof _0x5e450e?_0x2b07d6:new _0x5e450e(function(_0x1ff19f){_0x1ff19f(_0x2b07d6);});}return new(_0x5e450e||(_0x5e450e=Promise))(function(_0x3f0bad,_0x365c5a){const _0x14dd7e=_0x1de8;function _0x6db49(_0x553d8d){const _0x51c333=_0x1de8;try{_0x418d60(_0x2e89c7[_0x51c333(0x128)](_0x553d8d));}catch(_0x320e13){_0x365c5a(_0x320e13);}}function _0x16a5ec(_0x346557){const _0x551881=_0x1de8;try{_0x418d60(_0x2e89c7[_0x551881(0x134)](_0x346557));}catch(_0x3a2e2e){_0x365c5a(_0x3a2e2e);}}function _0x418d60(_0x1c7581){const _0x45c3fc=_0x1de8;_0x1c7581[_0x45c3fc(0xdc)]?_0x3f0bad(_0x1c7581[_0x45c3fc(0x82)]):_0x439e50(_0x1c7581['value'])['then'](_0x6db49,_0x16a5ec);}_0x418d60((_0x2e89c7=_0x2e89c7[_0x14dd7e(0x14a)](_0x1bdcc5,_0x3c045a||[]))[_0x14dd7e(0x128)]());});}typeof SuppressedError==='function'?SuppressedError:function(_0x3a7d52,_0x557f03,_0x569279){const _0x39801d=_0x1de8;var _0x1d04ad=new Error(_0x569279);return _0x1d04ad[_0x39801d(0x13f)]='SuppressedError',_0x1d04ad[_0x39801d(0x9a)]=_0x3a7d52,_0x1d04ad[_0x39801d(0x9c)]=_0x557f03,_0x1d04ad;};const _0x375bc6=_0x398609(0x141),_0x25ed84=_0x398609(0xa9),_0x337a0a=_0x398609(0x73),_0x2b1b17=_0x398609(0xd3),_0x24f3d7=_0x398609(0xab),_0x1c779f=_0x398609(0xd7),_0x417c2c=_0x398609(0x122);var _0x13c199;(function(_0x483f7b){const _0x2052d8=_0x398609;_0x483f7b[_0x483f7b['Forward']=0x0]=_0x2052d8(0xd0),_0x483f7b[_0x483f7b[_0x2052d8(0xdb)]=0x1]='Inverse',_0x483f7b[_0x483f7b[_0x2052d8(0x77)]=0x2]='Both',_0x483f7b[_0x483f7b[_0x2052d8(0xa2)]=0x3]=_0x2052d8(0xa2);}(_0x13c199||(_0x13c199={})));var _0x4c8a43;(function(_0x2ca4ce){const _0x2ed871=_0x398609;_0x2ca4ce[_0x2ca4ce[_0x2ed871(0x13c)]=0x0]=_0x2ed871(0x13c),_0x2ca4ce[_0x2ca4ce['Object']=0x1]=_0x2ed871(0xa0),_0x2ca4ce[_0x2ca4ce[_0x2ed871(0xa7)]=0x2]='Variable',_0x2ca4ce[_0x2ca4ce[_0x2ed871(0x87)]=0x4]=_0x2ed871(0x87),_0x2ca4ce[_0x2ca4ce[_0x2ed871(0x6f)]=0x8]='ObjectType',_0x2ca4ce[_0x2ca4ce[_0x2ed871(0xa4)]=0x10]=_0x2ed871(0xa4),_0x2ca4ce[_0x2ca4ce['ReferenceType']=0x20]=_0x2ed871(0x9f),_0x2ca4ce[_0x2ca4ce['DataType']=0x40]=_0x2ed871(0x12e),_0x2ca4ce[_0x2ca4ce[_0x2ed871(0xb7)]=0x80]='View';}(_0x4c8a43||(_0x4c8a43={})));var _0x166b14;(function(_0x36f317){const _0x23e648=_0x398609;_0x36f317[_0x36f317[_0x23e648(0xa0)]=0x1]=_0x23e648(0xa0),_0x36f317[_0x36f317['Variable']=0x2]=_0x23e648(0xa7),_0x36f317[_0x36f317['Method']=0x4]='Method',_0x36f317[_0x36f317[_0x23e648(0x6f)]=0x8]=_0x23e648(0x6f),_0x36f317[_0x36f317['VariableType']=0x10]=_0x23e648(0xa4),_0x36f317[_0x36f317['ReferenceType']=0x20]=_0x23e648(0x9f),_0x36f317[_0x36f317[_0x23e648(0x12e)]=0x40]='DataType',_0x36f317[_0x36f317['View']=0x80]='View';}(_0x166b14||(_0x166b14={})));var _0xdb468e;(function(_0x336a78){const _0x95e6e4=_0x398609;_0x336a78[_0x336a78[_0x95e6e4(0x9f)]=0x1]=_0x95e6e4(0x9f),_0x336a78[_0x336a78[_0x95e6e4(0xbc)]=0x2]=_0x95e6e4(0xbc),_0x336a78[_0x336a78['NodeClass']=0x4]=_0x95e6e4(0x10f),_0x336a78[_0x336a78[_0x95e6e4(0x14b)]=0x8]=_0x95e6e4(0x14b),_0x336a78[_0x336a78[_0x95e6e4(0x7b)]=0x10]=_0x95e6e4(0x7b),_0x336a78[_0x336a78[_0x95e6e4(0x125)]=0x20]=_0x95e6e4(0x125);}(_0xdb468e||(_0xdb468e={})));function _0x3816cc(_0x1f818c){const _0x6b5119=_0x398609;switch(_0x1f818c){case _0x6b5119(0xf9):return _0x375bc6;case _0x6b5119(0x148):return _0x2b1b17;case _0x6b5119(0x8d):return _0x337a0a;case _0x6b5119(0x140):return _0x24f3d7;case _0x6b5119(0xfc):return _0x1c779f;case _0x6b5119(0x105):return _0x417c2c;}}const _0x1ad395=_0x5ced0e=>{const _0x4704f3=_0x398609;switch(_0x5ced0e[_0x4704f3(0xc0)]){case _0x4704f3(0xa0):if(_0x5ced0e[_0x4704f3(0xae)]===_0x375bc6);if(_0x5ced0e[_0x4704f3(0xda)]===_0x25ed84||_0x5ced0e[_0x4704f3(0xae)]===_0x4704f3(0x143))return{'icon':_0x4704f3(0x97),'color':_0x4704f3(0xbe)};return{'icon':'fa-object-group','color':_0x4704f3(0xee)};case'Variable':if(_0x5ced0e[_0x4704f3(0xae)]===_0x337a0a)return{'icon':_0x4704f3(0x114),'color':_0x4704f3(0x10c)};else return _0x5ced0e['referenceTypeId']===_0x2b1b17?{'icon':_0x4704f3(0x114),'color':_0x4704f3(0xf8)}:{'icon':_0x4704f3(0x114),'color':_0x4704f3(0x80)};case _0x4704f3(0x87):return{'icon':_0x4704f3(0xb9),'color':_0x4704f3(0xdf)};case _0x4704f3(0x6f):return{'icon':_0x4704f3(0x76),'color':_0x4704f3(0xc8)};case _0x4704f3(0xa4):return{'icon':_0x4704f3(0xd5),'color':_0x4704f3(0xc8)};}return{'icon':_0x4704f3(0xfe),'color':'grey'};},_0x16a5ab=({endpointNode:_0x143803,endpoint:_0x2613a6,baseUrl:_0x4156ed},_0x139392,_0x185937)=>_0x1efc4c(void 0x0,void 0x0,void 0x0,function*(){const _0x5856d5=_0x398609,_0x1470f3=_0x4156ed+'/opcua-endpoint2',_0x423382=_0x1470f3+_0x5856d5(0x106),_0x565337=Object[_0x5856d5(0x118)](Object[_0x5856d5(0x118)]({},_0x185937),{'nodeId':_0x139392,'resultMask':0x3f}),_0x3d488c=yield fetch(_0x423382,{'method':_0x5856d5(0xbf),'body':JSON['stringify']({'endpointNode':_0x143803,'endpoint':_0x2613a6,'browseDescription':_0x565337}),'headers':{'Content-Type':_0x5856d5(0x99)}});if(_0x3d488c[_0x5856d5(0x71)]!==0xc8)return console[_0x5856d5(0xde)]('fetching\x20failed\x20with\x20error',_0x3d488c[_0x5856d5(0x71)],_0x3d488c[_0x5856d5(0x94)]),{'references':[]};console[_0x5856d5(0xde)](_0x5856d5(0xaf),_0x3d488c[_0x5856d5(0x71)],_0x3d488c['statusText']);const _0x10f805=yield _0x3d488c[_0x5856d5(0x81)](),_0x22cdee=_0x10f805[_0x5856d5(0xa8)]['references']||[];return{'references':_0x22cdee};}),_0x74b14e={'referenceTypeId':_0x3816cc(_0x398609(0x140)),'includeSubtypes':!![],'browseDirection':_0x13c199['Forward'],'nodeClassMask':_0x4c8a43[_0x398609(0xa7)]|_0x4c8a43[_0x398609(0xa0)]|_0x4c8a43[_0x398609(0x87)],'resultMask':0x3f},_0xbf71dd={'referenceTypeId':_0x3816cc(_0x398609(0xf9)),'includeSubtypes':!![],'browseDirection':_0x13c199[_0x398609(0xd0)],'nodeClassMask':_0x4c8a43[_0x398609(0xa7)]|_0x4c8a43[_0x398609(0xa0)]|_0x4c8a43['Method'],'resultMask':0x3f},_0x21566d=({endpointNode:_0x374978,endpoint:_0x2a1963,baseUrl:_0x2d39d4},_0x2942d3,_0x331cf9)=>_0x1efc4c(void 0x0,void 0x0,void 0x0,function*(){const _0x369de0=_0x398609,_0x408862=_0x2d39d4+_0x369de0(0xb8),_0x21733e=_0x2942d3[_0x369de0(0x137)](),_0x41bb21=yield fetch(_0x408862+_0x369de0(0x6e),{'method':'POST','body':JSON[_0x369de0(0xb3)]({'endpointNode':_0x374978,'endpoint':_0x2a1963,'nodeId':_0x21733e}),'headers':{'Content-Type':_0x369de0(0x99)}}),_0x35b718=(_0x350892,_0x820bff)=>{const _0x5c1765=_0x369de0;_0x331cf9[_0x5c1765(0xe5)](_0x350892)[_0x5c1765(0x12d)]('sterfive-info')[_0x5c1765(0x12d)](_0x820bff),_0x331cf9[_0x5c1765(0xc3)](),setTimeout(()=>{const _0x3e421f=_0x5c1765;_0x331cf9['removeClass'](_0x820bff),_0x331cf9[_0x3e421f(0x103)]();},0xbb8);},_0x1f369c=yield _0x41bb21[_0x369de0(0x81)]();_0x41bb21[_0x369de0(0x71)]!==0xc8?_0x35b718(_0x369de0(0x102)+_0x21733e,'failure'):_0x1f369c[_0x369de0(0xb6)][_0x369de0(0x95)](/Good/)?(_0x2942d3[_0x369de0(0x137)](_0x1f369c[_0x369de0(0x12b)]),_0x2942d3[_0x369de0(0x79)](_0x369de0(0x13a)),_0x35b718('Good','ok')):(_0x2942d3[_0x369de0(0x137)](''+_0x21733e),_0x35b718(_0x1f369c[_0x369de0(0xb6)]+'\x20'+_0x41bb21[_0x369de0(0x94)],_0x369de0(0x12c)));});function _0x22259a(_0x5e223e,_0x50ec0a){return _0x1efc4c(this,void 0x0,void 0x0,function*(){const _0x2347a2=_0x1de8,_0x330273=_0x5e223e[_0x2347a2(0xc9)](_0x2347a2(0x82)),_0x275c53=yield _0x16a5ab(_0x50ec0a,_0x330273,_0x74b14e),_0x31d1e0=yield _0x16a5ab(_0x50ec0a,_0x330273,_0xbf71dd);return{'references':[..._0x275c53[_0x2347a2(0xf7)],..._0x31d1e0['references']]};});}const _0x55eb62={'referenceTypeId':_0x3816cc(_0x398609(0xfc)),'includeSubtypes':!![],'browseDirection':_0x13c199[_0x398609(0xd0)],'nodeClassMask':_0x4c8a43['ReferenceType']|_0x4c8a43[_0x398609(0x6f)]|_0x4c8a43[_0x398609(0x12e)]|_0x4c8a43['VariableType'],'resultMask':0x3f};function _0x51adab(_0x257d47,_0x46bcc9){return _0x1efc4c(this,void 0x0,void 0x0,function*(){const _0xb28a70=_0x1de8,_0x18abd1=_0x257d47[_0xb28a70(0xc9)](_0xb28a70(0x82)),_0x5e37ce=yield _0x16a5ab(_0x46bcc9,_0x18abd1,_0x55eb62);return _0x5e37ce;});}const _0x1231d4=_0x54118a=>{const _0x2b0491=_0x398609;var _0x1661e6,_0x1d7a66;if(!_0x54118a){const _0x346e44=$(_0x2b0491(0xba));return _0x346e44;}const _0x2800c3=_0x54118a[_0x2b0491(0x6d)]['toString'](),_0x3d1109=((_0x1661e6=_0x54118a[_0x2b0491(0xfd)])===null||_0x1661e6===void 0x0?void 0x0:_0x1661e6[_0x2b0491(0xe5)])||((_0x1d7a66=_0x54118a[_0x2b0491(0xeb)])===null||_0x1d7a66===void 0x0?void 0x0:_0x1d7a66[_0x2b0491(0x13f)])||_0x54118a['nodeId'][_0x2b0491(0x116)](),{icon:_0x343dae,color:_0x1b2de6}=_0x1ad395(_0x54118a),_0xf84a1d=$('<li><i\x20class=\x22fa\x20'+_0x343dae+'\x22\x20style=\x22color:'+_0x1b2de6+_0x2b0491(0x119)+_0x3d1109+'<ul></ul></li>');return _0xf84a1d[_0x2b0491(0x12d)](_0x2b0491(0x117)),_0xf84a1d[_0x2b0491(0xc9)]('value',_0x2800c3),_0xf84a1d['data'](_0x2b0491(0x127),_0x54118a),_0xf84a1d;},_0x14f93e=()=>{const _0x3a2c4d=_0x398609;$[_0x3a2c4d(0x139)](_0x3a2c4d(0x8c),{'options':{'endpointNode':()=>({'endpoint':_0x3a2c4d(0x12f)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':'Objects'},'nodeClass':_0x3a2c4d(0xa0),'nodeId':_0x3a2c4d(0xb4),'displayName':{'text':_0x3a2c4d(0xe9)},'typeDefinition':_0x25ed84}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x1efc4c(this,void 0x0,void 0x0,function*(){const _0x50ae3f=_0x1de8,_0x1dbd74=this,_0x2dc557=typeof _0x1dbd74[_0x50ae3f(0x135)][_0x50ae3f(0x7c)]===_0x50ae3f(0xf6)?_0x1dbd74[_0x50ae3f(0x135)]['parentNode']():_0x1dbd74['options'][_0x50ae3f(0x7c)];if(_0x2dc557 instanceof Promise)return yield _0x2dc557;return _0x2dc557;});},'reset'(){const _0x5ab0eb=_0x3a2c4d,_0x667232=this;_0x667232[_0x5ab0eb(0x10d)][_0x5ab0eb(0xe2)](),this[_0x5ab0eb(0x110)]()[_0x5ab0eb(0x129)](_0x43583b=>{const _0x45cd3e=_0x5ab0eb,_0x305670=_0x1231d4(_0x43583b);_0x667232[_0x45cd3e(0x10d)][_0x45cd3e(0x11c)](_0x305670),_0x667232[_0x45cd3e(0x146)]=_0x43583b;});},'verify'(){const _0x22e743=_0x3a2c4d,_0x5154dd=this,_0x3ea5b7={'baseUrl':_0x5154dd[_0x22e743(0x135)]['baseUrl'],'endpointNode':typeof _0x5154dd['options'][_0x22e743(0xc4)]==='function'?_0x5154dd['options'][_0x22e743(0xc4)]():_0x5154dd[_0x22e743(0x135)][_0x22e743(0xc4)],'endpoint':typeof _0x5154dd[_0x22e743(0x135)][_0x22e743(0xe7)]==='function'?_0x5154dd[_0x22e743(0x135)][_0x22e743(0xe7)]():_0x5154dd[_0x22e743(0x135)]['endpoint']};_0x21566d(_0x3ea5b7,_0x5154dd['$input'],_0x5154dd[_0x22e743(0x11f)]);},'_create'(){const _0x368e42=_0x3a2c4d,_0x50cb86=this;function _0x29e2c3(_0x595093,_0x3e157a,_0x3fce81){return _0x1efc4c(this,void 0x0,void 0x0,function*(){const _0x32daa4=_0x1de8;if(_0x595093[_0x32daa4(0x13b)](_0x32daa4(0x11b))){console[_0x32daa4(0xde)](_0x32daa4(0xe8));return;}if(_0x595093[_0x32daa4(0x13b)]('loading')){console[_0x32daa4(0xde)](_0x32daa4(0x72));return;}_0x595093[_0x32daa4(0x12d)](_0x32daa4(0xe4)),_0x595093[_0x32daa4(0x11c)](_0x32daa4(0xef));try{_0x595093['children']('ul')['empty']();const {references:_0x414ff1}=yield _0x3e157a(_0x595093,_0x3fce81);for(const _0x2f80e3 of _0x414ff1){if(_0x50cb86[_0x32daa4(0x135)][_0x32daa4(0xd1)]&&!_0x50cb86[_0x32daa4(0x135)][_0x32daa4(0xd1)](_0x2f80e3))continue;const _0x3d27e2=_0x1231d4(_0x2f80e3);_0x595093[_0x32daa4(0x126)]('ul')['append'](_0x3d27e2);}_0x595093[_0x32daa4(0x12d)](_0x32daa4(0x11b));}catch(_0xf93ecd){_0x595093[_0x32daa4(0x126)]('ul')[_0x32daa4(0x11c)](_0x32daa4(0xe3)+_0xf93ecd[_0x32daa4(0x142)]+_0x32daa4(0x112)),console['log']('err',_0xf93ecd);}_0x595093['find'](_0x32daa4(0xcf))['remove'](),_0x595093[_0x32daa4(0xea)](_0x32daa4(0xe4));});}_0x50cb86[_0x368e42(0x120)]=this[_0x368e42(0x86)],_0x50cb86[_0x368e42(0x133)]=$('<div/>'),_0x50cb86[_0x368e42(0x133)][_0x368e42(0x12d)]('sterfive-combo-box'),this[_0x368e42(0x86)][_0x368e42(0xc5)](_0x50cb86[_0x368e42(0x133)]),_0x50cb86[_0x368e42(0xcb)]=$(_0x368e42(0xff))[_0x368e42(0x12d)](_0x368e42(0x74)),_0x50cb86[_0x368e42(0x133)][_0x368e42(0x11c)](_0x50cb86['$inputGroup']),_0x50cb86[_0x368e42(0xcb)][_0x368e42(0x11c)](_0x50cb86[_0x368e42(0x120)]),_0x50cb86[_0x368e42(0x12a)]=$('<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>'),_0x50cb86[_0x368e42(0xcb)][_0x368e42(0x11c)](_0x50cb86[_0x368e42(0x12a)]),_0x50cb86['$toggleTreeBtn']['on']('click',function(){const _0x4565e4=_0x368e42;!_0x50cb86['$dropdown']['is'](_0x4565e4(0xe1))&&(_0x50cb86[_0x4565e4(0x110)]()[_0x4565e4(0x129)](_0x5446aa=>{const _0x40ddaf=_0x4565e4;var _0xe06867;(_0x5446aa!==_0x50cb86[_0x40ddaf(0x146)]||((_0xe06867=_0x50cb86['currentParent'])===null||_0xe06867===void 0x0?void 0x0:_0xe06867[_0x40ddaf(0x6d)])!==_0x5446aa[_0x40ddaf(0x6d)])&&_0x50cb86[_0x40ddaf(0x104)]();}),_0x50cb86[_0x4565e4(0x11f)][_0x4565e4(0x103)]()),_0x50cb86['$dropdown'][_0x4565e4(0xcd)]();}),_0x50cb86[_0x368e42(0x11a)]=$(_0x368e42(0x83)),_0x50cb86[_0x368e42(0xcb)][_0x368e42(0x11c)](_0x50cb86[_0x368e42(0x11a)]),_0x50cb86['$verifyBtn']['on'](_0x368e42(0xfb),()=>{const _0x2a2dd8=_0x368e42;this[_0x2a2dd8(0x8a)]();}),!_0x50cb86[_0x368e42(0x120)][_0x368e42(0xbd)](_0x368e42(0xc2))&&_0x50cb86[_0x368e42(0x120)][_0x368e42(0xbd)](_0x368e42(0xc2),_0x368e42(0x108)),_0x50cb86[_0x368e42(0x11f)]=$(_0x368e42(0x84)),_0x50cb86[_0x368e42(0x11f)]['hide'](),{'baseUrl':_0x50cb86[_0x368e42(0x135)][_0x368e42(0x101)],'endpointNode':typeof _0x50cb86['options']['endpointNode']===_0x368e42(0xf6)?_0x50cb86['options'][_0x368e42(0xc4)]():_0x50cb86[_0x368e42(0x135)][_0x368e42(0xc4)],'endpoint':typeof _0x50cb86[_0x368e42(0x135)][_0x368e42(0xe7)]===_0x368e42(0xf6)?_0x50cb86['options'][_0x368e42(0xe7)]():_0x50cb86['options'][_0x368e42(0xe7)]},_0x50cb86[_0x368e42(0xe6)]=$(_0x368e42(0xff))[_0x368e42(0x12d)]('sterfive-dropdown')[_0x368e42(0x103)](),_0x50cb86['$combo'][_0x368e42(0x11c)](_0x50cb86['$info']),_0x50cb86[_0x368e42(0x133)][_0x368e42(0x11c)](_0x50cb86['$dropdown']),_0x50cb86[_0x368e42(0x10d)]=$(_0x368e42(0xcc))[_0x368e42(0xca)](_0x50cb86['$dropdown']),this[_0x368e42(0x104)](),_0x50cb86[_0x368e42(0x10d)]['on']('click','li',function(_0x266ed3){const _0x1b2b2a=_0x368e42;var _0x16d61b,_0x2516d9;_0x266ed3['stopPropagation']();let _0x5aeb39=$(this);const _0x5bf716=0x14,_0x51effd=0x14,_0xef893c=$(this)[_0x1b2b2a(0x13d)](),_0x38f083=_0x266ed3;if(_0x38f083['pageX']>=_0xef893c['left']&&_0x38f083[_0x1b2b2a(0xd6)]<=_0xef893c['left']+_0x5bf716&&_0x38f083['pageY']>=_0xef893c[_0x1b2b2a(0xac)]&&_0x38f083[_0x1b2b2a(0x8e)]<=_0xef893c['top']+_0x51effd){if(_0x5aeb39[_0x1b2b2a(0x13b)](_0x1b2b2a(0x117))){if(_0x5aeb39[_0x1b2b2a(0x13b)](_0x1b2b2a(0x11b))){_0x5aeb39[_0x1b2b2a(0xea)](_0x1b2b2a(0x117))[_0x1b2b2a(0x12d)](_0x1b2b2a(0xf1)),_0x5aeb39[_0x1b2b2a(0x126)]('ul')[_0x1b2b2a(0xcd)]();return;}const _0x47c915={'baseUrl':_0x50cb86['options'][_0x1b2b2a(0x101)],'endpointNode':typeof _0x50cb86[_0x1b2b2a(0x135)][_0x1b2b2a(0xc4)]==='function'?_0x50cb86[_0x1b2b2a(0x135)][_0x1b2b2a(0xc4)]():_0x50cb86[_0x1b2b2a(0x135)][_0x1b2b2a(0xc4)],'endpoint':typeof _0x50cb86[_0x1b2b2a(0x135)][_0x1b2b2a(0xe7)]===_0x1b2b2a(0xf6)?_0x50cb86[_0x1b2b2a(0x135)]['endpoint']():_0x50cb86['options'][_0x1b2b2a(0xe7)]},_0x4ad67c=!_0x50cb86[_0x1b2b2a(0x135)][_0x1b2b2a(0x11d)]?_0x22259a:_0x51adab;_0x29e2c3(_0x5aeb39,_0x4ad67c,_0x47c915)[_0x1b2b2a(0x129)](()=>{const _0xaaa0e9=_0x1b2b2a;console[_0xaaa0e9(0xde)](_0xaaa0e9(0x10a)),console[_0xaaa0e9(0xde)]('fetched'),_0x5aeb39['removeClass'](_0xaaa0e9(0x117))['addClass'](_0xaaa0e9(0xf1));})[_0x1b2b2a(0xa6)](_0x30618e=>{const _0x325c0a=_0x1b2b2a;_0x5aeb39[_0x325c0a(0xea)](_0x325c0a(0x117))['addClass'](_0x325c0a(0xf1)),console['log'](_0x325c0a(0x9a),_0x30618e);});}else{if(_0x5aeb39[_0x1b2b2a(0x13b)](_0x1b2b2a(0xf1)))_0x5aeb39[_0x1b2b2a(0x126)]('ul')[_0x1b2b2a(0xcd)](),_0x5aeb39[_0x1b2b2a(0xa1)](_0x1b2b2a(0x144));else{if(_0x5aeb39[_0x1b2b2a(0x126)]('ul')[_0x1b2b2a(0x126)]()[_0x1b2b2a(0x10e)]>0x0)_0x5aeb39[_0x1b2b2a(0x126)]('ul')['toggle'](),_0x5aeb39[_0x1b2b2a(0xa1)](_0x1b2b2a(0x144));else;}}}else{const _0x14c8fb=_0x5aeb39['data']('value'),_0x5343c5=_0x5aeb39[_0x1b2b2a(0xc9)](_0x1b2b2a(0x127));if(_0x50cb86[_0x1b2b2a(0x135)][_0x1b2b2a(0x115)]&&!_0x50cb86['options']['isSelectable'](_0x5343c5))return;_0x50cb86[_0x1b2b2a(0x120)][_0x1b2b2a(0xc9)]('reference',_0x5343c5);const _0x447424=((_0x16d61b=_0x5343c5[_0x1b2b2a(0xfd)])===null||_0x16d61b===void 0x0?void 0x0:_0x16d61b[_0x1b2b2a(0xe5)])||((_0x2516d9=_0x5343c5[_0x1b2b2a(0xeb)])===null||_0x2516d9===void 0x0?void 0x0:_0x2516d9[_0x1b2b2a(0x13f)])||_0x5343c5[_0x1b2b2a(0x6d)][_0x1b2b2a(0x116)](),_0x435e6c='['+_0x447424+']('+_0x14c8fb+')';_0x50cb86[_0x1b2b2a(0x120)]['val'](_0x435e6c),_0x50cb86[_0x1b2b2a(0x120)][_0x1b2b2a(0x79)]('change'),_0x50cb86[_0x1b2b2a(0xe6)][_0x1b2b2a(0x103)]();}}),$(document)['on'](_0x368e42(0xfb),function(_0x4c1412){const _0x547a27=_0x368e42;!$(_0x4c1412[_0x547a27(0x7d)])[_0x547a27(0xf3)](_0x50cb86[_0x547a27(0x133)])[_0x547a27(0x10e)]&&_0x50cb86[_0x547a27(0xe6)][_0x547a27(0x103)]();});}});},_0x4143f8=({endpointNode:_0x38432f,endpoint:_0x531291,baseUrl:_0x645f92},_0x399d69)=>_0x1efc4c(void 0x0,void 0x0,void 0x0,function*(){const _0x1bad4b=_0x398609,_0x4986ef=_0x645f92+_0x1bad4b(0xb8),_0x10f6ba=_0x4986ef+_0x1bad4b(0x6e),_0x30fc18=yield fetch(_0x10f6ba,{'method':_0x1bad4b(0xbf),'body':JSON[_0x1bad4b(0xb3)]({'endpointNode':_0x38432f,'endpoint':_0x531291,'nodeId':_0x399d69}),'headers':{'Content-Type':_0x1bad4b(0x99)}});if(_0x30fc18['status']!==0xc8){console['log']('fetching\x20failed\x20with\x20error',_0x30fc18['status'],_0x30fc18['statusText']);const _0x5277d2={'statusCode':_0x1bad4b(0x9e),'nodeAddressString':_0x399d69};return _0x5277d2;}console['log'](_0x1bad4b(0xaf),_0x30fc18['status'],_0x30fc18[_0x1bad4b(0x94)]);const _0xd1885a=yield _0x30fc18[_0x1bad4b(0x81)]();return _0xd1885a;});function _0x466782(_0x49901e,_0x56a069,_0x40e0ff,_0x445f42){const _0x4acebd=_0x398609,_0x251635=$('#'+_0x49901e+_0x4acebd(0xb0)),_0x11b6f8=$('#'+_0x49901e+'-failure'),_0x593b02=$('#'+_0x49901e+'-pending'),_0x3ba1aa=$('#'+_0x49901e+_0x4acebd(0xed));let _0x4168d2=![];_0x251635[_0x4acebd(0x103)](),_0x11b6f8['hide'](),_0x593b02['hide'](),_0x56a069['on'](_0x4acebd(0xfb),()=>{const _0x5ca20f=_0x4acebd;if(_0x4168d2)return;_0x4168d2=!![],_0x593b02['removeClass']('hide'),_0x593b02[_0x5ca20f(0xc6)](_0x5ca20f(0xf4)),_0x251635['addClass'](_0x5ca20f(0x103)),_0x11b6f8[_0x5ca20f(0x12d)](_0x5ca20f(0x103)),_0x3ba1aa[_0x5ca20f(0xc6)]('');const {body:_0x13e064,url:_0x1ffc91}=_0x40e0ff();fetch(_0x1ffc91,{'method':_0x5ca20f(0xbf),'headers':{'Content-Type':_0x5ca20f(0x99)},'body':JSON[_0x5ca20f(0xb3)](_0x13e064)})['then'](_0x25e3d6=>_0x25e3d6[_0x5ca20f(0x81)]())[_0x5ca20f(0x129)](_0x29bd94=>{const _0xb10928=_0x5ca20f;_0x4168d2=![],_0x593b02[_0xb10928(0x103)](),console[_0xb10928(0xde)](JSON[_0xb10928(0xb3)](_0x29bd94,null,'\x20'));if(_0x29bd94[_0xb10928(0xd4)]==='ok')_0x251635['removeClass'](_0xb10928(0x103)),_0x11b6f8[_0xb10928(0x12d)](_0xb10928(0x103)),_0x3ba1aa['html'](_0x29bd94['message']['replace']('\x0a',_0xb10928(0x70))),_0x445f42(null,_0x29bd94);else{const _0xe5ca56=_0x176b7d=>!_0x176b7d?'':_0x176b7d[_0xb10928(0xa5)]('\x0a')['map'](_0x1d9df2=>_0xb10928(0x111)+_0x1d9df2+_0xb10928(0xd2))[_0xb10928(0xc1)]('\x0a'),_0x158e61=_0x18be08=>Array[_0xb10928(0x121)](_0x18be08)?_0x18be08[_0xb10928(0xb1)](_0xe5ca56)['join']('\x0a'):_0xe5ca56(_0x18be08);_0x251635[_0xb10928(0x12d)](_0xb10928(0x103)),_0x11b6f8[_0xb10928(0xea)](_0xb10928(0x103)),_0x3ba1aa[_0xb10928(0xc6)](_0x158e61(_0x29bd94[_0xb10928(0x142)])+_0x158e61(_0x29bd94['extra'])),_0x445f42(new Error(_0x29bd94['result']),_0x29bd94);}})[_0x5ca20f(0xa6)](_0x20c879=>{const _0x71468d=_0x5ca20f;_0x4168d2=![],_0x593b02[_0x71468d(0x12d)](_0x71468d(0x103)),_0x251635[_0x71468d(0x12d)](_0x71468d(0x103)),_0x11b6f8[_0x71468d(0xea)]('hide'),_0x3ba1aa[_0x71468d(0xc6)](_0x71468d(0xf0)+_0x20c879[_0x71468d(0x142)]),console[_0x71468d(0xde)](_0x71468d(0x138),_0x20c879),_0x445f42(_0x20c879,null);});});}const _0x26a377=()=>{const _0x3ab35d=_0x398609,_0x2aa1ed=$(_0x3ab35d(0x78)),_0x12194f=_0x2aa1ed[_0x3ab35d(0x137)](),_0xf3841e=RED[_0x3ab35d(0x147)]['node'](_0x12194f);if(!_0xf3841e)return undefined;const {endpoint:_0xb61da7,securityMode:_0x36cef2,securityPolicy:_0x26ecc8,userIdentityType:_0x1be933,userName:_0x3c1e1c,password:_0xadac71,userCertificate:_0x5888b2,userPrivatekey:_0x56be92}=_0xf3841e;return{'endpoint':_0xb61da7,'securityMode':_0x36cef2,'securityPolicy':_0x26ecc8,'userIdentityType':_0x1be933,'userName':_0x3c1e1c,'password':_0xadac71,'userCertificate':_0x5888b2,'userPrivatekey':_0x56be92};},_0x2fc0c6=()=>{return{'endpointNode':_0x57d05b};},_0x57d05b=()=>{const _0x3b32ef=_0x398609,_0x5ce69a=$(_0x3b32ef(0x78)),_0x1bab96=_0x5ce69a['val'](),_0x34ab8d=_0x26a377();if(!_0x34ab8d)return undefined;return{'id':_0x1bab96,'endpoint':_0x34ab8d[_0x3b32ef(0xe7)],'securityMode':_0x34ab8d[_0x3b32ef(0x91)],'securityPolicy':_0x34ab8d['securityPolicy'],'userIdentityType':_0x34ab8d['userIdentityType'],'userName':_0x34ab8d[_0x3b32ef(0x7f)]===_0x3b32ef(0x130)?_0x34ab8d[_0x3b32ef(0x88)]:undefined,'password':_0x34ab8d[_0x3b32ef(0x7f)]==='UserName'?_0x34ab8d['password']:undefined,'userCertificate':_0x34ab8d[_0x3b32ef(0x123)],'userPrivatekey':_0x34ab8d[_0x3b32ef(0xd8)]};};RED[_0x398609(0x147)][_0x398609(0xb2)](_0x398609(0xaa),{'category':_0x398609(0x13e),'color':_0x398609(0x8f),'align':'right','icon':_0x398609(0x7e),'paletteLabel':_0x398609(0xfa),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':'OpcUa-Endpoint2'},'action':{'value':_0x398609(0x107),'required':!![]},'methodId':{'value':'','required':!![]},'objectId':{'value':'','required':!![]}},'outputs':0x2,'label'(){const _0x504808=_0x398609;return this['name']||_0x504808(0xc7);},'labelStyle'(){const _0x192a5d=_0x398609;return this[_0x192a5d(0x13f)]?'node_label_italic':'';},'oneditprepare'(){const _0x203309=_0x398609,_0x1e95ac=this;_0x14f93e(),_0x1e95ac['inputs']=0x1;let _0x14b80f={};console[_0x203309(0xde)](_0x203309(0x132));const _0x2245a6=$(_0x203309(0xec)),_0x8cdc4=$(_0x203309(0x85)),_0x482f87=$(_0x203309(0xb5)),_0x5ea16f=$(_0x203309(0x131)),_0x2ea90a=$('#validate-call-arguments-button');_0x2245a6[_0x203309(0xbb)](Object[_0x203309(0x118)](Object[_0x203309(0x118)]({},_0x2fc0c6()),{'filter'(_0xad1948){const _0x347fe0=_0x203309;return _0xad1948[_0x347fe0(0xc0)]===_0x347fe0(0xa0);}})),_0x8cdc4['nodeBrowser'](Object[_0x203309(0x118)](Object['assign']({},_0x2fc0c6()),{'parentNode':()=>_0x1efc4c(this,void 0x0,void 0x0,function*(){const _0x4c44f9=_0x203309;let _0x3fd475=_0x2245a6[_0x4c44f9(0xc9)]('reference');if(!_0x3fd475){const _0x30134b=_0x2245a6[_0x4c44f9(0x137)](),_0x542366=_0x26a377();if(!_0x542366)return null;const _0x2da8af={'baseUrl':'','endpoint':'','endpointNode':_0x542366};try{const _0x34136b=yield _0x4143f8(_0x2da8af,_0x30134b);_0x3fd475=_0x34136b[_0x4c44f9(0x127)];}catch(_0x541011){console[_0x4c44f9(0xde)](_0x541011);}}return _0x3fd475;}),'filter'(_0xf7388d){const _0x4f002d=_0x203309;return _0xf7388d[_0x4f002d(0xc0)]==='Method'||_0xf7388d[_0x4f002d(0xc0)]===_0x4f002d(0xa0);},'isSelectable'(_0xf45b57){const _0x1a4a19=_0x203309;return _0xf45b57['nodeClass']===_0x1a4a19(0x87);}})),_0x2245a6['on'](_0x203309(0x13a),()=>{const _0x10dece=_0x203309;_0x8cdc4[_0x10dece(0xbb)](_0x10dece(0x104));}),console[_0x203309(0xde)](_0x203309(0xad));function _0x26e803(_0x4949d5,_0xfc7699,_0x1c7529){const _0x589891=_0x203309,_0x413299=$(_0x589891(0x145))[_0x589891(0xca)](_0x4949d5);$('<input\x20type=\x22text\x22>')[_0x589891(0x137)](_0x1c7529['name']||'')['css']({'width':'100%'})[_0x589891(0xca)](_0x413299);const _0xaa668d=_0x14b80f[_0x1c7529['dataType'][_0x589891(0x116)]()],_0x429d35=(_0xaa668d?_0xaa668d[_0x589891(0xeb)][_0x589891(0x13f)]||'':_0x1c7529[_0x589891(0x100)][_0x589891(0x116)]())+(_0x1c7529[_0x589891(0x149)]===0x1?'[]':'');$(_0x589891(0x96))[_0x589891(0x137)](_0x1c7529['description'][_0x589891(0xe5)]||'')[_0x589891(0x75)]({'width':_0x589891(0x92)})['appendTo'](_0x413299),$(_0x589891(0x96))[_0x589891(0x137)](_0x429d35||'')[_0x589891(0x75)]({'width':_0x589891(0x92)})[_0x589891(0xca)](_0x413299);}_0x482f87[_0x203309(0x89)]({'addButton':![],'height':_0x203309(0xf5),'scrollOnAdd':![],'addItem'(_0x376a0e,_0x2361ab,_0x4d828f){_0x26e803(_0x376a0e,_0x2361ab,_0x4d828f);}}),_0x5ea16f['editableList']({'addButton':![],'height':_0x203309(0xf5),'scrollOnAdd':![],'addItem'(_0x424d38,_0x3ddb74,_0x656687){_0x26e803(_0x424d38,_0x3ddb74,_0x656687);}});function _0x37ff65(_0x5be82,_0x3c86c7){const _0x550aee=_0x203309;console['log'](_0x550aee(0xdd),_0x3c86c7[_0x550aee(0x10e)],_0x550aee(0xa3),_0x3c86c7),_0x5be82['editableList'](_0x550aee(0xe2));for(let _0x434715=0x0;_0x434715<_0x3c86c7[_0x550aee(0x10e)];_0x434715++){_0x5be82[_0x550aee(0x89)](_0x550aee(0xe0),_0x3c86c7[_0x434715]);}}_0x482f87[_0x203309(0x103)](),_0x5ea16f['hide'](),_0x466782(_0x203309(0xd9),_0x2ea90a,()=>({'url':'/opcua-endpoint2/argumentDefinition','body':{'endpointNode':_0x57d05b(),'objectId':_0x2245a6['val'](),'methodId':_0x8cdc4[_0x203309(0x137)]()}}),(_0xe8c00,_0x2280cb)=>{const _0x38ef61=_0x203309;if(_0xe8c00)return;const _0x4934d1=_0x2280cb[_0x38ef61(0x124)];_0x14b80f=_0x2280cb[_0x38ef61(0x11e)],_0x482f87[_0x38ef61(0xc3)](),_0x5ea16f[_0x38ef61(0xc3)](),_0x37ff65(_0x482f87,_0x4934d1[_0x38ef61(0xce)]),_0x37ff65(_0x5ea16f,_0x4934d1[_0x38ef61(0x9d)]),console[_0x38ef61(0xde)](_0x38ef61(0xc9),_0x2280cb);});},'oneditsave'(){}});}()));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgxZWZjNGMiLCJfMHgxYmRjYzUiLCJfMHgzYzA0NWEiLCJfMHg1ZTQ1MGUiLCJfMHgyZTg5YzciLCJfMHg0MzllNTAiLCJfMHgyYjA3ZDYiLCJfMHgxZmYxOWYiLCJQcm9taXNlIiwiXzB4M2YwYmFkIiwiXzB4MzY1YzVhIiwiXzB4NmRiNDkiLCJfMHg1NTNkOGQiLCJfMHg0MThkNjAiLCJfMHgzMjBlMTMiLCJfMHgxNmE1ZWMiLCJfMHgzNDY1NTciLCJfMHgzYTJlMmUiLCJfMHgxYzc1ODEiLCJTdXBwcmVzc2VkRXJyb3IiLCJfMHgzYTdkNTIiLCJfMHg1NTdmMDMiLCJfMHg1NjkyNzkiLCJfMHgxZDA0YWQiLCJFcnJvciIsIl8weDM3NWJjNiIsIl8weDI1ZWQ4NCIsIl8weDMzN2EwYSIsIl8weDJiMWIxNyIsIl8weDI0ZjNkNyIsIl8weDFjNzc5ZiIsIl8weDQxN2MyYyIsIl8weDEzYzE5OSIsIl8weDQ4M2Y3YiIsIl8weDRjOGE0MyIsIl8weDJjYTRjZSIsIl8weDE2NmIxNCIsIl8weDM2ZjMxNyIsIl8weGRiNDY4ZSIsIl8weDMzNmE3OCIsIl8weDM4MTZjYyIsIl8weDFmODE4YyIsIl8weDFhZDM5NSIsIl8weDVjZWQwZSIsIl8weDE2YTVhYiIsImVuZHBvaW50Tm9kZSIsIl8weDE0MzgwMyIsImVuZHBvaW50IiwiXzB4MjYxM2E2IiwiYmFzZVVybCIsIl8weDQxNTZlZCIsIl8weDEzOTM5MiIsIl8weDE4NTkzNyIsIl8weDE0NzBmMyIsIl8weDQyMzM4MiIsIl8weDU2NTMzNyIsIk9iamVjdCIsIl8weDNkNDg4YyIsImZldGNoIiwiSlNPTiIsImNvbnNvbGUiLCJfMHgxMGY4MDUiLCJfMHgyMmNkZWUiLCJfMHg3NGIxNGUiLCJfMHhiZjcxZGQiLCJfMHgyMTU2NmQiLCJfMHgzNzQ5NzgiLCJfMHgyYTE5NjMiLCJfMHgyZDM5ZDQiLCJfMHgyOTQyZDMiLCJfMHgzMzFjZjkiLCJfMHg0MDg4NjIiLCJfMHgyMTczM2UiLCJfMHg0MWJiMjEiLCJfMHgzNWI3MTgiLCJfMHgzNTA4OTIiLCJfMHg4MjBiZmYiLCJzZXRUaW1lb3V0IiwiXzB4MWYzNjljIiwiXzB4MjIyNTlhIiwiXzB4NWUyMjNlIiwiXzB4NTBlYzBhIiwiXzB4MzMwMjczIiwiXzB4Mjc1YzUzIiwiXzB4MzFkMWUwIiwiXzB4NTVlYjYyIiwiXzB4NTFhZGFiIiwiXzB4MjU3ZDQ3IiwiXzB4NDZiY2M5IiwiXzB4MThhYmQxIiwiXzB4NWUzN2NlIiwiXzB4MTIzMWQ0IiwiXzB4NTQxMThhIiwiXzB4MTY2MWU2IiwiXzB4MWQ3YTY2IiwiXzB4MzQ2ZTQ0IiwiJCIsIl8weDI4MDBjMyIsIl8weDNkMTEwOSIsImljb24iLCJfMHgzNDNkYWUiLCJjb2xvciIsIl8weDFiMmRlNiIsIl8weGY4NGExZCIsIl8weDE0ZjkzZSIsInVuZGVmaW5lZCIsIl8weDFkYmQ3NCIsIl8weDJkYzU1NyIsIl8weDY2NzIzMiIsIl8weDQzNTgzYiIsIl8weDMwNTY3MCIsIl8weDUxNTRkZCIsIl8weDNlYTViNyIsIl8weDUwY2I4NiIsIl8weDI5ZTJjMyIsIl8weDU5NTA5MyIsIl8weDNlMTU3YSIsIl8weDNmY2U4MSIsInJlZmVyZW5jZXMiLCJfMHg0MTRmZjEiLCJfMHgyZjgwZTMiLCJfMHgzZDI3ZTIiLCJfMHhmOTNlY2QiLCJfMHg1NDQ2YWEiLCJfMHhlMDY4NjciLCJfMHgyNjZlZDMiLCJfMHgxNmQ2MWIiLCJfMHgyNTE2ZDkiLCJfMHg1YWViMzkiLCJfMHg1YmY3MTYiLCJfMHg1MWVmZmQiLCJfMHhlZjg5M2MiLCJfMHgzOGYwODMiLCJfMHg0N2M5MTUiLCJfMHg0YWQ2N2MiLCJfMHgzMDYxOGUiLCJfMHgxNGM4ZmIiLCJfMHg1MzQzYzUiLCJfMHg0NDc0MjQiLCJfMHg0MzVlNmMiLCJkb2N1bWVudCIsIl8weDRjMTQxMiIsIl8weDQxNDNmOCIsIl8weDM4NDMyZiIsIl8weDUzMTI5MSIsIl8weDY0NWY5MiIsIl8weDM5OWQ2OSIsIl8weDQ5ODZlZiIsIl8weDEwZjZiYSIsIl8weDMwZmMxOCIsIl8weDUyNzdkMiIsIl8weGQxODg1YSIsIl8weDQ2Njc4MiIsIl8weDQ5OTAxZSIsIl8weDU2YTA2OSIsIl8weDQwZTBmZiIsIl8weDQ0NWY0MiIsIl8weDI1MTYzNSIsIl8weDExYjZmOCIsIl8weDU5M2IwMiIsIl8weDNiYTFhYSIsIl8weDQxNjhkMiIsImJvZHkiLCJfMHgxM2UwNjQiLCJ1cmwiLCJfMHgxZmZjOTEiLCJfMHgyNWUzZDYiLCJfMHgyOWJkOTQiLCJfMHhlNWNhNTYiLCJfMHgxNzZiN2QiLCJfMHgxZDlkZjIiLCJfMHgxNThlNjEiLCJfMHgxOGJlMDgiLCJBcnJheSIsIl8weDIwYzg3OSIsIl8weDI2YTM3NyIsIl8weDJhYTFlZCIsIl8weDEyMTk0ZiIsIl8weGYzODQxZSIsIlJFRCIsIl8weGI2MWRhNyIsInNlY3VyaXR5TW9kZSIsIl8weDM2Y2VmMiIsInNlY3VyaXR5UG9saWN5IiwiXzB4MjZlY2M4IiwidXNlcklkZW50aXR5VHlwZSIsIl8weDFiZTkzMyIsInVzZXJOYW1lIiwiXzB4M2MxZTFjIiwicGFzc3dvcmQiLCJfMHhhZGFjNzEiLCJ1c2VyQ2VydGlmaWNhdGUiLCJfMHg1ODg4YjIiLCJ1c2VyUHJpdmF0ZWtleSIsIl8weDU2YmU5MiIsIl8weDJmYzBjNiIsIl8weDU3ZDA1YiIsIl8weDVjZTY5YSIsIl8weDFiYWI5NiIsIl8weDM0YWI4ZCIsIl8weDFlOTVhYyIsIl8weDE0YjgwZiIsIl8weDIyNDVhNiIsIl8weDhjZGM0IiwiXzB4NDgyZjg3IiwiXzB4NWVhMTZmIiwiXzB4MmVhOTBhIiwiXzB4YWQxOTQ4IiwiXzB4M2ZkNDc1IiwiXzB4MzAxMzRiIiwiXzB4NTQyMzY2IiwiXzB4MmRhOGFmIiwiXzB4MzQxMzZiIiwiXzB4NTQxMDExIiwiXzB4ZjczODhkIiwiXzB4ZjQ1YjU3IiwiXzB4MjZlODAzIiwiXzB4NDk0OWQ1IiwiXzB4ZmM3Njk5IiwiXzB4MWM3NTI5IiwiXzB4NDEzMjk5IiwiXzB4YWE2NjhkIiwiXzB4NDI5ZDM1IiwiXzB4Mzc2YTBlIiwiXzB4MjM2MWFiIiwiXzB4NGQ4MjhmIiwiXzB4NDI0ZDM4IiwiXzB4M2RkYjc0IiwiXzB4NjU2Njg3IiwiXzB4MzdmZjY1IiwiXzB4NWJlODIiLCJfMHgzYzg2YzciLCJfMHg0MzQ3MTUiLCJfMHhlOGMwMCIsIl8weDIyODBjYiIsIl8weDQ5MzRkMSJdLCJtYXBwaW5ncyI6Im0vSEFBQSxDQUFDLFUsQ0FDRyxhLHdCQW1CQSxTQUFTQSxTQUFULENBQW1CQyxTQUFuQixDQUE0QkMsU0FBNUIsQ0FBd0NDLFNBQXhDLENBQTJDQyxTQUEzQyxDLENBQ0ksU0FBU0MsU0FBVCxDQUFlQyxTQUFmLEMsUUFBK0JBLFNBQUEsWUFBaUJILFNBQWpCLENBQXFCRyxTQUFyQixDQUE2QixJQUFJSCxTQUFKLENBQU0sU0FBVUksU0FBVixDLENBQXFCQSxTQUFBLENBQVFELFNBQVIsQyxFQUEzQixDLFNBQ3JELEdBQUssQ0FBQUgsU0FBQSxFQUFNLENBQUFBLFNBQUEsQ0FBSUssT0FBSixDQUFOLENBQUwsQ0FBeUIsU0FBVUMsU0FBVixDQUFtQkMsU0FBbkIsQyx5QkFDNUIsU0FBU0MsUUFBVCxDQUFtQkMsU0FBbkIsQyx5QkFBNEIsRyxDQUFNQyxTQUFBLENBQUtULFNBQUEsQyxnQkFBQSxFQUFlUSxTQUFmLENBQUwsQyxFQUErQixNQUFPRSxTQUFQLEMsQ0FBWUosU0FBQSxDQUFPSSxTQUFQLEMsR0FDN0UsU0FBU0MsU0FBVCxDQUFrQkMsU0FBbEIsQyx5QkFBMkIsRyxDQUFNSCxTQUFBLENBQUtULFNBQUEsQyxnQkFBQSxFQUFtQlksU0FBbkIsQ0FBTCxDLEVBQW1DLE1BQU9DLFNBQVAsQyxDQUFZUCxTQUFBLENBQU9PLFNBQVAsQyxHQUNoRixTQUFTSixTQUFULENBQWNLLFNBQWQsQyx5QkFBd0JBLFNBQUEsQyxlQUFBLEVBQWNULFNBQUEsQ0FBUVMsU0FBQSxDLGVBQUEsQ0FBUixDQUFkLENBQXNDYixTQUFBLENBQU1hLFNBQUEsQyxPQUFBLENBQU4sRSxNQUFBLEVBQXlCUCxRQUF6QixDQUFvQ0ksU0FBcEMsQyxFQUM5REYsU0FBQSxDQUFNLENBQUFULFNBQUEsQ0FBWUEsU0FBQSxDLGdCQUFBLEVBQWdCSCxTQUFoQixDQUF5QkMsU0FBQSxFQUFjLEVBQXZDLENBQVosQ0FBRCxDLGdCQUFBLEdBQUwsQyxFQUpHLEMsRUFRWCxPQUFPaUIsZUFBUCxHLFVBQUEsQ0FBd0NBLGVBQXhDLENBQTBELFNBQVVDLFNBQVYsQ0FBaUJDLFNBQWpCLENBQTZCQyxTQUE3QixDLHlCQUN0RCxJQUFJQyxTQUFBLENBQUksSUFBSUMsS0FBSixDQUFVRixTQUFWLENBQVIsQyxPQUNPQyxTQUFBLEMsZ0JBQUEsRSxpQkFBQSxDQUE0QkEsU0FBQSxDLGVBQUEsRUFBVUgsU0FBdEMsQ0FBNkNHLFNBQUEsQyxlQUFBLEVBQWVGLFNBQTVELENBQXdFRSxTLEVBRm5GLENBS0EsTUFBTUUsU0FBQSxDLGdCQUFOLENBQ01DLFNBQUEsQyxlQUROLENBRU1DLFNBQUEsQyxlQUZOLENBR01DLFNBQUEsQyxlQUhOLENBSU1DLFNBQUEsQyxlQUpOLENBS01DLFNBQUEsQyxlQUxOLENBTU1DLFNBQUEsQyxnQkFOTixDQVFBLElBQUlDLFNBQUosQ0FDQSxDQUFDLFNBQVVDLFNBQVYsQywyQkFDR0EsU0FBQSxDQUFnQkEsU0FBQSxDLFNBQUEsRSxHQUFoQixFLGdCQUNBQSxTQUFBLENBQWdCQSxTQUFBLEMsZUFBQSxFLEdBQWhCLEUsVUFDQUEsU0FBQSxDQUFnQkEsU0FBQSxDLGVBQUEsRSxHQUFoQixFLE9BQ0FBLFNBQUEsQ0FBZ0JBLFNBQUEsQyxlQUFBLEUsR0FBaEIsRSxpQkFKSixDQUtHRCxTQUFBLEVBQW9CLENBQUFBLFNBQUEsQ0FBa0IsRUFBbEIsQ0FMdkIsR0FNQSxJQUFJRSxTQUFKLENBQ0EsQ0FBQyxTQUFVQyxTQUFWLEMsMkJBQ0dBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsR0FBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxRQUFBLEUsR0FBVixFLGdCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxlQUFBLEUsR0FBVixFLFdBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGVBQUEsRSxHQUFWLEUsZ0JBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGVBQUEsRSxHQUFWLEUsYUFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZUFBQSxFLElBQVYsRSxnQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZUFBQSxFLElBQVYsRSxnQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsVUFBQSxFLElBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZUFBQSxFLElBQVYsRSxRQVRKLENBVUdELFNBQUEsRUFBYyxDQUFBQSxTQUFBLENBQVksRUFBWixDQVZqQixHQVdBLElBQUlFLFNBQUosQ0FDQSxDQUFDLFNBQVVDLFNBQVYsQywyQkFDR0EsU0FBQSxDQUFjQSxTQUFBLEMsZUFBQSxFLEdBQWQsRSxnQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsVUFBQSxFLEdBQWQsRSxnQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsUUFBQSxFLEdBQWQsRSxTQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxlQUFBLEUsR0FBZCxFLGdCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxjQUFBLEUsSUFBZCxFLGdCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxlQUFBLEUsSUFBZCxFLGdCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLElBQWQsRSxXQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxNQUFBLEUsSUFBZCxFLFFBUkosQ0FTR0QsU0FBQSxFQUFrQixDQUFBQSxTQUFBLENBQWdCLEVBQWhCLENBVHJCLEdBVUEsSUFBSUUsU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDJCQUNHQSxTQUFBLENBQVdBLFNBQUEsQyxlQUFBLEUsR0FBWCxFLGdCQUNBQSxTQUFBLENBQVdBLFNBQUEsQyxlQUFBLEUsR0FBWCxFLGdCQUNBQSxTQUFBLENBQVdBLFNBQUEsQyxXQUFBLEUsR0FBWCxFLGlCQUNBQSxTQUFBLENBQVdBLFNBQUEsQyxnQkFBQSxFLEdBQVgsRSxpQkFDQUEsU0FBQSxDQUFXQSxTQUFB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QUFQLENBQXhDLENBT0ksQ0FBQzhCLFFBQUQsQ0FBTUMsU0FBTixHLDhCQUNJRCxRLENBQ0EsT0FHSixNQUFNRSxTQUFBLENBQXFCRCxTQUFBLEMsZ0JBQUEsQ0FBM0IsQ0FDQWpDLFNBQUEsQ0FBWWlDLFNBQUEsQyxnQkFBQSxDLENBQ1o5QixTQUFBLEMsZUFBQSxHLENBQ0FDLFNBQUEsQyxlQUFBLEcsQ0FDQXdCLFNBQUEsQ0FBb0J6QixTQUFwQixDQUE4QytCLFNBQUEsQyxlQUFBLENBQTlDLEMsQ0FDQU4sU0FBQSxDQUFvQnhCLFNBQXBCLENBQStDOEIsU0FBQSxDLGVBQUEsQ0FBL0MsQyxDQUNBL0ssT0FBQSxDLGVBQUEsRSxlQUFBLENBQW9COEssU0FBcEIsQyxFQWxCSixDLEVBbkhxQyxDLFlBd0l6QyxFLEVBeEl5QyxDQUE3QyxDLEVBamxCSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgY29uc3QgT3JnYW5pemVzUmVmTm9kZUlkID0gXCJucz0wO2k9MzVcIjtcbiAgICBjb25zdCBGb2xkZXJUeXBlID0gXCJucz0wO2k9NjFcIjtcbiAgICBjb25zdCBIYXNDb21wb25lbnRSZWZOb2RlSWQgPSBcIm5zPTA7aT00N1wiO1xuICAgIGNvbnN0IEhhc1Byb3BlcnR5UmVmTm9kZUlkID0gXCJucz0wO2k9NDZcIjtcbiAgICBjb25zdCBIYXNDaGlsZFJlZk5vZGVJZCA9IFwibnM9MDtpPTM0XCI7XG4gICAgY29uc3QgSGFzU3VidHlwZVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ1XCI7XG4gICAgY29uc3QgSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQgPSBcIm5zPTA7aT00MFwiO1xuXG4gICAgdmFyIEJyb3dzZURpcmVjdGlvbjtcbiAgICAoZnVuY3Rpb24gKEJyb3dzZURpcmVjdGlvbikge1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiRm9yd2FyZFwiXSA9IDBdID0gXCJGb3J3YXJkXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZlcnNlXCJdID0gMV0gPSBcIkludmVyc2VcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkJvdGhcIl0gPSAyXSA9IFwiQm90aFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52YWxpZFwiXSA9IDNdID0gXCJJbnZhbGlkXCI7XG4gICAgfSkoQnJvd3NlRGlyZWN0aW9uIHx8IChCcm93c2VEaXJlY3Rpb24gPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3M7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlVuc3BlY2lmaWVkXCJdID0gMF0gPSBcIlVuc3BlY2lmaWVkXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzcyB8fCAoTm9kZUNsYXNzID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzTWFzaztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzc01hc2spIHtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzc01hc2sgfHwgKE5vZGVDbGFzc01hc2sgPSB7fSkpO1xuICAgIHZhciBSZXN1bHRNYXNrO1xuICAgIChmdW5jdGlvbiAoUmVzdWx0TWFzaykge1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMV0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiSXNGb3J3YXJkXCJdID0gMl0gPSBcIklzRm9yd2FyZFwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJOb2RlQ2xhc3NcIl0gPSA0XSA9IFwiTm9kZUNsYXNzXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkJyb3dzZU5hbWVcIl0gPSA4XSA9IFwiQnJvd3NlTmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJEaXNwbGF5TmFtZVwiXSA9IDE2XSA9IFwiRGlzcGxheU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiVHlwZURlZmluaXRpb25cIl0gPSAzMl0gPSBcIlR5cGVEZWZpbml0aW9uXCI7XG4gICAgfSkoUmVzdWx0TWFzayB8fCAoUmVzdWx0TWFzayA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZ2FuaXplc1JlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNQcm9wZXJ0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNQcm9wZXJ0eVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ29tcG9uZW50UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NoaWxkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NoaWxkUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1N1YnR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzU3VidHlwZVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNUeXBlRGVmaW5pdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldEljb24gPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVmZXJlbmNlLm5vZGVDbGFzcykge1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBPcmdhbml6ZXNSZWZOb2RlSWQpIDtcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnR5cGVEZWZpbml0aW9uID09PSBGb2xkZXJUeXBlIHx8IHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IFwiaT02MVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtZm9sZGVyXCIsIGNvbG9yOiBcInJnYmEoNjEsIDYwLCA0LCAwLjUyNSlcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJTZWFHcmVlblwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzQ29tcG9uZW50UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiU3RlZWxCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzUHJvcGVydHlSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJEb2RnZXJCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiTWV0aG9kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1jb2dcIiwgY29sb3I6IFwiU2FuZHlCcm93blwiIH07XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0VHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtc2xpZGVyc1wiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCwgdGVtcGxhdGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vYnJvd3NlYDtcbiAgICAgICAgY29uc3QgYnJvd3NlRGVzY3JpcHRpb24gPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRlbXBsYXRlKSwgeyBub2RlSWQsIHJlc3VsdE1hc2s6IDYzIH0pO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBicm93c2VEZXNjcmlwdGlvbixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzOiBbXSB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgJGlucHV0RWxlbWVudCwgJGluZm8pID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKGAke3Jvb3R9L2NoZWNrTm9kZUlkYCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgbm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChqc29uLm5vZGVBZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7bm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50ID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAoIXJlZmVyZW5jZSkge1xuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSBmYS1lcnJvclwiIHN0eWxlPVwiY29sb3I6cmVkO1wiPjwvaT5ubyByZWZlcmVuY2UgITx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbiA9IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgdCA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHsgaWNvbiwgY29sb3IgfSA9IGdldEljb24ocmVmZXJlbmNlKTtcbiAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+ICR7dH08dWw+PC91bD48L2xpPmApO1xuICAgICAgICAkZWxlbWVudC5hZGRDbGFzcyhcImV4cGFuZGFibGVcIik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJ2YWx1ZVwiLCBuKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgfTtcbiAgICBjb25zdCBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBbIFRlbXBlcmF0dXJlICBdXG4gICAgICAgICAqICAgKCB0b29sdGlwIDogKC9PYmplY3RzL015U2Vuc29yKSAobnM9MTtzPVRlbXBlcmF0dXJlKSlcbiAgICAgICAgICogWyArIFtGb2xkZXJdIE9iamVjdHNdXG4gICAgICAgICAqIFsgICAgIFtPYmplY3RdIE15U2Vuc29yXVxuICAgICAgICAgKiBbICAgICAoICkgW1ZhcmlhYmxlXSBUZW1wZXJhdHVyZV1cbiAgICAgICAgICovXG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUubm9kZUJyb3dzZXJcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZTogKCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgbm9kZUNsYXNzOiBcIk9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBub2RlSWQ6IFwibnM9MDtpPTg1XCIsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIHR5cGVEZWZpbml0aW9uOiBGb2xkZXJUeXBlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgICAgIGlzVHlwZVJlZjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzb2x2ZVBhcmVudE5vZGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0eXBlb2YgdGhhdC5vcHRpb25zLnBhcmVudE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geWllbGQgYTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNldCgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNvbHZlUGFyZW50Tm9kZSgpLnRoZW4oKHBhcmVudE5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChwYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LmN1cnJlbnRQYXJlbnQgPSBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZlcmlmeSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGludGVybmFsVmVyaWZ5KGRhdGEsIHRoYXQuJGlucHV0LCB0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIF9mZXRjaERhdGFGb3JOb2RlKCRub2RlLCBmZXRjaEZ1bmMsIGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJsb2FkaW5nXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYXBwZW5kKCc8ZGl2IGNsYXNzPVwic3Bpbm5lclwiPjwvZGl2PicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyByZWZlcmVuY2VzIH0gPSB5aWVsZCBmZXRjaEZ1bmMoJG5vZGUsIGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5maWx0ZXIgJiYgIXRoYXQub3B0aW9ucy5maWx0ZXIocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5yZXBsYWNlV2l0aCh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cCA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJpbnB1dC1ncm91cFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5wdXRHcm91cCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kaW5wdXQpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtc2l0ZW1hcFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyZWUgd2lkZ2V0IGlzIGdvaW5nIHRvIGJlY29tZSB2aXNpYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc29sdmVQYXJlbnROb2RlKCkudGhlbigocGFyZW50Tm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAhPT0gdGhhdC5jdXJyZW50UGFyZW50IHx8ICgoX2EgPSB0aGF0LmN1cnJlbnRQYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ub2RlSWQpICE9PSBwYXJlbnROb2RlLm5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZmxhc2tcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdmVyaWZ5QnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApLmFwcGVuZFRvKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkKHRoaXMpLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnBhZ2VYID49IGVsZW1lbnRQb3MubGVmdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWCA8PSBlbGVtZW50UG9zLmxlZnQgKyBiZWZvcmVXaWR0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA+PSBlbGVtZW50UG9zLnRvcCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA8PSBlbGVtZW50UG9zLnRvcCArIGJlZm9yZUhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmID0gIXRoYXQub3B0aW9ucy5pc1R5cGVSZWYgPyBmZXRjaENoaWxkcmVuIDogZmV0Y2hTdWJ0eXBlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZmV0Y2hEYXRhRm9yTm9kZSgkbGksIGYsIGRhdGEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIgRmV0Y2hpbmcgZG9uZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAkbGkuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gJGxpLmRhdGEoXCJyZWZlcmVuY2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZSAmJiAhdGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZShyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXQgPSBgWyR7ZGlzcGxheU5hbWV9XSgke3ZhbHVlfSlgO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudmFsKGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBjbGlja2luZyBvdXRzaWRlIHRoZSBwYWdlIHdpbGwgaGlkZSB0aGUgZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCh0aGF0LiRjb21ibykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBjaGVja05vZGVJZCA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2NoZWNrTm9kZUlkYDtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIGNvbnN0IHJlcyA9IHtcbiAgICAgICAgICAgICAgICBzdGF0dXNDb2RlOiBcIkJhZFwiLFxuICAgICAgICAgICAgICAgIG5vZGVBZGRyZXNzU3RyaW5nOiBub2RlSWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIG1hbmFnZUFQSUNhbGwocHJlZml4LCBidG4sIGZ1bmMsIG9uUmVzdWx0KSB7XG4gICAgICAgIGNvbnN0IHN1Y2Nlc3NJY29uID0gJChgIyR7cHJlZml4fS1zdWNjZXNzYCk7XG4gICAgICAgIGNvbnN0IGZhaWx1cmVJY29uID0gJChgIyR7cHJlZml4fS1mYWlsdXJlYCk7XG4gICAgICAgIGNvbnN0IHBlbmRpbmdJY29uID0gJChgIyR7cHJlZml4fS1wZW5kaW5nYCk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2VzID0gJChgIyR7cHJlZml4fS1tZXNzYWdlc2ApO1xuICAgICAgICBsZXQgYWN0aW9uUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICBzdWNjZXNzSWNvbi5oaWRlKCk7XG4gICAgICAgIGZhaWx1cmVJY29uLmhpZGUoKTtcbiAgICAgICAgcGVuZGluZ0ljb24uaGlkZSgpO1xuICAgICAgICBidG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWN0aW9uUGVuZGluZylcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHBlbmRpbmdJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIHBlbmRpbmdJY29uLmh0bWwoXCJUZXN0aW5nIENvbm5lY3Rpb24gLi4uXCIpO1xuICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgZmFpbHVyZUljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChcIlwiKTtcbiAgICAgICAgICAgIGNvbnN0IHsgYm9keSwgdXJsIH0gPSBmdW5jKCk7XG4gICAgICAgICAgICAvLyB4eCBjb25zb2xlLmxvZyhcInh4eHh4XCIsIGJvZHkpO1xuICAgICAgICAgICAgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoYm9keSksXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiBkYXRhLmpzb24oKSlcbiAgICAgICAgICAgICAgICAudGhlbigoanNvbikgPT4ge1xuICAgICAgICAgICAgICAgIGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBwZW5kaW5nSWNvbi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoanNvbiwgbnVsbCwgXCIgXCIpKTtcbiAgICAgICAgICAgICAgICBpZiAoanNvbi5yZXN1bHQgPT09IFwib2tcIikge1xuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChqc29uLm1lc3NhZ2UucmVwbGFjZShcIlxcblwiLCBcIjxicj5cIikpO1xuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdChudWxsLCBqc29uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFkYXB0ID0gKHN0cikgPT4gIXN0clxuICAgICAgICAgICAgICAgICAgICAgICAgPyBcIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHN0clxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zcGxpdChcIlxcblwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKGEpID0+IGA8cD4ke2F9PC9wPmApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oXCJcXG5cIik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFkYXB0MiA9IChzdHIpID0+IChBcnJheS5pc0FycmF5KHN0cikgPyBzdHIubWFwKGFkYXB0KS5qb2luKFwiXFxuXCIpIDogYWRhcHQoc3RyKSk7XG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgZmFpbHVyZUljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlcy5odG1sKGFkYXB0Mihqc29uLm1lc3NhZ2UpICsgYWRhcHQyKGpzb24uZXh0cmEpKTtcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQobmV3IEVycm9yKGpzb24ucmVzdWx0KSwganNvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBwZW5kaW5nSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBtZXNzYWdlcy5odG1sKFwiaW50ZXJuYWwgZXJyb3IgXCIgKyBlcnIubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICBvblJlc3VsdChlcnIsIG51bGwpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IGdldEVuZFBvaW50QXR0cmlidXRlcyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCByZWROb2RlID0gUkVELm5vZGVzLm5vZGUoZW5kcG9pbnRJZCk7XG4gICAgICAgIGlmICghcmVkTm9kZSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIC8vIHdlIG5lZWQgdG8gc2FuaXRpemUgYW5kIGV4dHJhY3QgdGhlIGVuZHBvaW50IGF0dHJpYnV0ZXMgb25seSAoIG5vdCB0aGUgbm9kZS1yZWQgc3R1ZmYpXG4gICAgICAgIGNvbnN0IHsgZW5kcG9pbnQsIHNlY3VyaXR5TW9kZSwgc2VjdXJpdHlQb2xpY3ksIHVzZXJJZGVudGl0eVR5cGUsIHVzZXJOYW1lLCBwYXNzd29yZCwgdXNlckNlcnRpZmljYXRlLCB1c2VyUHJpdmF0ZWtleSB9ID0gcmVkTm9kZTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgdXNlck5hbWUsXG4gICAgICAgICAgICBwYXNzd29yZCxcbiAgICAgICAgICAgIHVzZXJDZXJ0aWZpY2F0ZSxcbiAgICAgICAgICAgIHVzZXJQcml2YXRla2V5LFxuICAgICAgICB9O1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzLFxuICAgICAgICB9O1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50TnIgPSBnZXRFbmRQb2ludEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgaWYgKCFlbmRwb2ludE5yKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogZW5kcG9pbnRJZCxcbiAgICAgICAgICAgIGVuZHBvaW50OiBlbmRwb2ludE5yLmVuZHBvaW50LFxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlOiBlbmRwb2ludE5yLnNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5OiBlbmRwb2ludE5yLnNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICB1c2VyTmFtZTogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlID09PSBcIlVzZXJOYW1lXCIgPyBlbmRwb2ludE5yLnVzZXJOYW1lIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci5wYXNzd29yZCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHVzZXJDZXJ0aWZpY2F0ZTogZW5kcG9pbnROci51c2VyQ2VydGlmaWNhdGUsXG4gICAgICAgICAgICB1c2VyUHJpdmF0ZWtleTogZW5kcG9pbnROci51c2VyUHJpdmF0ZWtleSxcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgUkVELm5vZGVzLnJlZ2lzdGVyVHlwZShcIk9wY1VhLUNsaWVudDItQ2FsbFwiLCB7XG4gICAgICAgIGNhdGVnb3J5OiBcIm9wY3VhXCIsXG4gICAgICAgIGNvbG9yOiBcIiNDMERFRURcIixcbiAgICAgICAgYWxpZ246IFwicmlnaHRcIixcbiAgICAgICAgaWNvbjogXCIuLi8uLi9pY29ucy9vcGN1YW5vZGVMb2dvLnBuZ1wiLFxuICAgICAgICBwYWxldHRlTGFiZWw6IFwiY2FsbFwiLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgaW5wdXRzOiB7IHZhbHVlOiAxIH0sXG4gICAgICAgICAgICBvdXRwdXQ6IHsgdmFsdWU6IDQgfSxcbiAgICAgICAgICAgIC8vIENvbW1vblxuICAgICAgICAgICAgbmFtZTogeyB2YWx1ZTogXCJcIiB9LFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlLCB0eXBlOiBcIk9wY1VhLUVuZHBvaW50MlwiIH0sXG4gICAgICAgICAgICBhY3Rpb246IHsgdmFsdWU6IFwicmVhZFwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgLy8gZm9yIGFjdGlvbiBjYWxsXG4gICAgICAgICAgICBtZXRob2RJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIG9iamVjdElkOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICB9LFxuICAgICAgICAvLyBpbnB1dHM6LFxuICAgICAgICBvdXRwdXRzOiAyLCAvLyAyIG91dHB1dCwgc2Vjb25kIGZvciByYXcgbm9kZS1vcGN1YSBkaWFnbm9zdGljcyBvciBtb3JlIGNvbXBsZXRlIG1lc3NhZ2VcbiAgICAgICAgbGFiZWwoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lIHx8IFwiT1BDVUEtQ2FsbFwiO1xuICAgICAgICB9LFxuICAgICAgICBsYWJlbFN0eWxlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSA/IFwibm9kZV9sYWJlbF9pdGFsaWNcIiA6IFwiXCI7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHByZXBhcmUoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcztcbiAgICAgICAgICAgIGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCgpO1xuICAgICAgICAgICAgbm9kZS5pbnB1dHMgPSAxO1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSBTZWN0aW9uIENhbGxcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICBsZXQgZGF0YVR5cGVzID0ge307XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkNhbGxpbmcgbm9kZUJyb3dzZXJcIik7XG4gICAgICAgICAgICAvLyB0byBkbyBhZGQgYSB0eXBlc2NyaXB0IGRlZmluaXRpb24gZm9yIHRoaXNcbiAgICAgICAgICAgIGNvbnN0ICRvYmplY3RJZCA9ICQoXCIjbm9kZS1pbnB1dC1vYmplY3RJZFwiKTtcbiAgICAgICAgICAgIGNvbnN0ICRtZXRob2RJZCA9ICQoXCIjbm9kZS1pbnB1dC1tZXRob2RJZFwiKTtcbiAgICAgICAgICAgIGNvbnN0ICRpbnB1dEFyZ3VtZW50RGVmaW5pdGlvbiA9ICQoXCIjbWV0aG9kLWlucHV0LWFyZ3VtZW50LWRlZmluaXRpb25cIik7XG4gICAgICAgICAgICBjb25zdCAkb3V0cHV0QXJndW1lbnREZWZpbml0aW9uID0gJChcIiNtZXRob2Qtb3V0cHV0LWFyZ3VtZW50LWRlZmluaXRpb25cIik7XG4gICAgICAgICAgICBjb25zdCAkdmFsaWRhdGVCdG4gPSAkKFwiI3ZhbGlkYXRlLWNhbGwtYXJndW1lbnRzLWJ1dHRvblwiKTtcbiAgICAgICAgICAgICRvYmplY3RJZC5ub2RlQnJvd3NlcihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSksIHsgZmlsdGVyKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiT2JqZWN0XCI7XG4gICAgICAgICAgICAgICAgfSB9KSk7XG4gICAgICAgICAgICAkbWV0aG9kSWQubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IHBhcmVudE5vZGU6ICgpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gbmVlZCB0byByZXN5bmMgd2l0aCB3aGF0J3MgaW4gICNub2RlLWlucHV0LW9iamVjdElkXG4gICAgICAgICAgICAgICAgICAgIGxldCByZWZlcmVuY2UgPSAkb2JqZWN0SWQuZGF0YShcInJlZmVyZW5jZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZWZlcmVuY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5vZGVJZEV4ID0gJG9iamVjdElkLnZhbCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5kcG9pbnROb2RlID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWVuZHBvaW50Tm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29ubmVjdGlvbkRhdGEgPSB7IGJhc2VVcmw6IFwiXCIsIGVuZHBvaW50OiBcIlwiLCBlbmRwb2ludE5vZGUgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgciA9IHlpZWxkIGNoZWNrTm9kZUlkKGNvbm5lY3Rpb25EYXRhLCBub2RlSWRFeCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmZXJlbmNlID0gci5yZWZlcmVuY2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVmZXJlbmNlO1xuICAgICAgICAgICAgICAgIH0pLCBmaWx0ZXIobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJNZXRob2RcIiB8fCBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiT2JqZWN0XCI7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBpc1NlbGVjdGFibGUobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJNZXRob2RcIjtcbiAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgICAgICRvYmplY3RJZC5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgJG1ldGhvZElkLm5vZGVCcm93c2VyKFwicmVzZXRcIik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiQ2FsbGluZyBub2RlQnJvd3NlciBEb25lXCIpO1xuICAgICAgICAgICAgZnVuY3Rpb24gYWRkQXJndW1lbnRDdHJsKGNvbnRhaW5lciwgaW5kZXgsIGFyZykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSAkKCc8ZGl2IGNsYXNzPVwiYXJndW1lbnQtZW50cnlcIj4nKS5hcHBlbmRUbyhjb250YWluZXIpO1xuICAgICAgICAgICAgICAgIC8vIGNvbnRhaW5lci5kYXRhKFwiZGF0YVwiLCBhcmcpO1xuICAgICAgICAgICAgICAgICQoJzxpbnB1dCB0eXBlPVwidGV4dFwiPicpXG4gICAgICAgICAgICAgICAgICAgIC52YWwoYXJnLm5hbWUgfHwgXCJcIilcbiAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjEwMCVcIiB9KVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8oaXRlbSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZCA9IGRhdGFUeXBlc1thcmcuZGF0YVR5cGUudG9TdHJpbmcoKV07XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YVR5cGVOID0gKGQgPyBkLmJyb3dzZU5hbWUubmFtZSB8fCBcIlwiIDogYXJnLmRhdGFUeXBlLnRvU3RyaW5nKCkpICsgKGFyZy52YWx1ZVJhbmsgPT09IDEgPyBcIltdXCIgOiBcIlwiKTtcbiAgICAgICAgICAgICAgICAkKCc8aW5wdXQgdHlwZT1cInRleHRcIj4nKVxuICAgICAgICAgICAgICAgICAgICAudmFsKGFyZy5kZXNjcmlwdGlvbi50ZXh0IHx8IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgIC5jc3MoeyB3aWR0aDogXCI1MCVcIiB9KVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8oaXRlbSk7XG4gICAgICAgICAgICAgICAgJCgnPGlucHV0IHR5cGU9XCJ0ZXh0XCI+JylcbiAgICAgICAgICAgICAgICAgICAgLnZhbChkYXRhVHlwZU4gfHwgXCJcIilcbiAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjUwJVwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRpbnB1dEFyZ3VtZW50RGVmaW5pdGlvbi5lZGl0YWJsZUxpc3Qoe1xuICAgICAgICAgICAgICAgIGFkZEJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBcImF1dG9cIixcbiAgICAgICAgICAgICAgICBzY3JvbGxPbkFkZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgYWRkSXRlbShjb250YWluZXIsIGksIG9iamVjdCkge1xuICAgICAgICAgICAgICAgICAgICBhZGRBcmd1bWVudEN0cmwoY29udGFpbmVyLCBpLCBvYmplY3QpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICRvdXRwdXRBcmd1bWVudERlZmluaXRpb24uZWRpdGFibGVMaXN0KHtcbiAgICAgICAgICAgICAgICBhZGRCdXR0b246IGZhbHNlLFxuICAgICAgICAgICAgICAgIGhlaWdodDogXCJhdXRvXCIsXG4gICAgICAgICAgICAgICAgc2Nyb2xsT25BZGQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGFkZEl0ZW0oY29udGFpbmVyLCBpLCBvYmplY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgYWRkQXJndW1lbnRDdHJsKGNvbnRhaW5lciwgaSwgb2JqZWN0KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBmdW5jdGlvbiBpbnN0YWxsQXJndW1lbnRMaXN0KGxpc3QsIG1ldGhvZEFyZ3VtZW50cykge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiaW5zdGFsbEFyZ3VtZW50TGlzdFwiLCBtZXRob2RBcmd1bWVudHMubGVuZ3RoLCBcImFyZ3VtZW50c1wiLCBtZXRob2RBcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIGxpc3QuZWRpdGFibGVMaXN0KFwiZW1wdHlcIik7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZXRob2RBcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgbGlzdC5lZGl0YWJsZUxpc3QoXCJhZGRJdGVtXCIsIG1ldGhvZEFyZ3VtZW50c1tpXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGlucHV0QXJndW1lbnREZWZpbml0aW9uLmhpZGUoKTtcbiAgICAgICAgICAgICRvdXRwdXRBcmd1bWVudERlZmluaXRpb24uaGlkZSgpO1xuICAgICAgICAgICAgbWFuYWdlQVBJQ2FsbChcInZhbGlkYXRlXCIsICR2YWxpZGF0ZUJ0biwgKCkgPT4gKHtcbiAgICAgICAgICAgICAgICB1cmw6IFwiL29wY3VhLWVuZHBvaW50Mi9hcmd1bWVudERlZmluaXRpb25cIixcbiAgICAgICAgICAgICAgICBib2R5OiB7XG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzKCksXG4gICAgICAgICAgICAgICAgICAgIG9iamVjdElkOiAkb2JqZWN0SWQudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZElkOiAkbWV0aG9kSWQudmFsKCksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLCAoZXJyLCBkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIHBvcHVsYXRlIHRoZSBsaXN0XG4gICAgICAgICAgICAgICAgY29uc3QgYXJndW1lbnREZWZpbml0aW9uID0gZGF0YS5hcmd1bWVudERlZmluaXRpb247XG4gICAgICAgICAgICAgICAgZGF0YVR5cGVzID0gZGF0YS5kYXRhVHlwZXM7XG4gICAgICAgICAgICAgICAgJGlucHV0QXJndW1lbnREZWZpbml0aW9uLnNob3coKTtcbiAgICAgICAgICAgICAgICAkb3V0cHV0QXJndW1lbnREZWZpbml0aW9uLnNob3coKTtcbiAgICAgICAgICAgICAgICBpbnN0YWxsQXJndW1lbnRMaXN0KCRpbnB1dEFyZ3VtZW50RGVmaW5pdGlvbiwgYXJndW1lbnREZWZpbml0aW9uLmlucHV0QXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICBpbnN0YWxsQXJndW1lbnRMaXN0KCRvdXRwdXRBcmd1bWVudERlZmluaXRpb24sIGFyZ3VtZW50RGVmaW5pdGlvbi5vdXRwdXRBcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZGF0YVwiLCBkYXRhKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkgeyB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
9
9
  </script>
10
10
  <script type="text/x-red" data-template-name="OpcUa-Client2-Call">
11
11
  <div class="form-row">