@opcua/for-node-red 2.5.4 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/all.js +1 -1
- package/package.json +21 -3
- package/source/OpcUa-Client2-Browse/OpcUa-Client2-Browse.html +2 -2
- package/source/OpcUa-Client2-Call/OpcUa-Client2-Call.html +2 -2
- package/source/OpcUa-Client2-Explore/OpcUa-Client2-Explore.html +2 -2
- package/source/OpcUa-Client2-Monitor/OpcUa-Client2-Monitor.html +2 -2
- package/source/OpcUa-Client2-MonitorEvent/OpcUa-Client2-MonitorEvent.html +2 -2
- package/source/OpcUa-Client2-Read/OpcUa-Client2-Read.html +2 -2
- package/source/OpcUa-Client2-Write/OpcUa-Client2-Write.html +2 -2
- package/source/OpcUa-Endpoint2/OpcUa-Endpoint2.html +30 -70
@@ -4,8 +4,8 @@
|
|
4
4
|
</style>
|
5
5
|
|
6
6
|
<script type="text/javascript">
|
7
|
-
(function(_0x151346,_0x3fd68e){const _0x56ccb4=_0x46ad,_0x33e223=_0x151346();while(!![]){try{const _0x1a8c69=parseInt(_0x56ccb4(0x15c))/0x1+-parseInt(_0x56ccb4(0x156))/0x2*(parseInt(_0x56ccb4(0x21a))/0x3)+parseInt(_0x56ccb4(0x16f))/0x4*(-parseInt(_0x56ccb4(0x146))/0x5)+-parseInt(_0x56ccb4(0x21b))/0x6*(-parseInt(_0x56ccb4(0x20c))/0x7)+-parseInt(_0x56ccb4(0x1f2))/0x8+parseInt(_0x56ccb4(0x200))/0x9*(-parseInt(_0x56ccb4(0x145))/0xa)+-parseInt(_0x56ccb4(0x19e))/0xb*(-parseInt(_0x56ccb4(0x1f0))/0xc);if(_0x1a8c69===_0x3fd68e)break;else _0x33e223['push'](_0x33e223['shift']());}catch(_0xcfdef){_0x33e223['push'](_0x33e223['shift']());}}}(_0x4b70,0xac6b5),(function(){'use strict';const _0x4a8f57=_0x46ad;function _0x40291a(_0xbf965c,_0x2ab8e3){const _0x19cdee=_0x46ad,_0x5f0b9a=$(_0x19cdee(0x215)),_0x42f7fd=$(_0x19cdee(0x193)),_0x179d73=()=>{const _0x440f98=_0x19cdee,_0x45d435=_0xbf965c[_0x440f98(0x176)][_0x440f98(0x1c7)](_0x5f0b9a[_0x440f98(0x153)]());_0x42f7fd[_0x440f98(0x1ec)]();if(!_0x45d435||!_0x45d435[_0x440f98(0x14d)])return;if(_0x45d435[_0x440f98(0x14d)])for(const _0x33a7d3 of _0x45d435[_0x440f98(0x14d)]){const _0x14a78e=_0x33a7d3['name']||_0x33a7d3['id'];$('<option/>',{'value':_0x33a7d3['id'],'label':_0x14a78e,'selected':_0x33a7d3['id']===_0x2ab8e3['subscription']})[_0x440f98(0x182)](_0x14a78e)[_0x440f98(0x160)](_0x42f7fd);}};_0x179d73(),_0x42f7fd['on']('focus\x20click',()=>{_0x179d73();}),_0x5f0b9a['on'](_0x19cdee(0x20f),()=>{_0x179d73();});}function _0x41bcb6(_0x5145ec,_0x5e7186,_0x4eda33,_0x4f62ea){function _0x449b03(_0x2fde32){return _0x2fde32 instanceof _0x4eda33?_0x2fde32:new _0x4eda33(function(_0x4a93fb){_0x4a93fb(_0x2fde32);});}return new(_0x4eda33||(_0x4eda33=Promise))(function(_0x3604d6,_0x377ed3){const _0x266d09=_0x46ad;function _0x380520(_0x29a3e0){const _0x444c6e=_0x46ad;try{_0x43d50c(_0x4f62ea[_0x444c6e(0x213)](_0x29a3e0));}catch(_0x1dcccd){_0x377ed3(_0x1dcccd);}}function _0x430277(_0x5c06a1){const _0x13e70b=_0x46ad;try{_0x43d50c(_0x4f62ea[_0x13e70b(0x1e1)](_0x5c06a1));}catch(_0x31da3f){_0x377ed3(_0x31da3f);}}function _0x43d50c(_0x2e3826){const _0x1cf2c3=_0x46ad;_0x2e3826[_0x1cf2c3(0x1b0)]?_0x3604d6(_0x2e3826[_0x1cf2c3(0x17e)]):_0x449b03(_0x2e3826[_0x1cf2c3(0x17e)])[_0x1cf2c3(0x15a)](_0x380520,_0x430277);}_0x43d50c((_0x4f62ea=_0x4f62ea[_0x266d09(0x1ab)](_0x5145ec,_0x5e7186||[]))[_0x266d09(0x213)]());});}typeof SuppressedError===_0x4a8f57(0x1e4)?SuppressedError:function(_0x401b03,_0x27bb3b,_0x5d70f5){const _0x55d209=_0x4a8f57;var _0x301cc1=new Error(_0x5d70f5);return _0x301cc1[_0x55d209(0x209)]=_0x55d209(0x191),_0x301cc1[_0x55d209(0x177)]=_0x401b03,_0x301cc1[_0x55d209(0x1ed)]=_0x27bb3b,_0x301cc1;};const _0x368586='ns=0;i=35',_0x2f15d8=_0x4a8f57(0x1e5),_0x1179cb='ns=0;i=47',_0x5bfdd7=_0x4a8f57(0x1da),_0xcf894c=_0x4a8f57(0x1d4),_0x1c89e4='ns=0;i=45',_0x366b6b='ns=0;i=40';var _0x370a87;(function(_0x1f34cd){const _0x56de59=_0x4a8f57;_0x1f34cd[_0x1f34cd[_0x56de59(0x1a9)]=0x0]=_0x56de59(0x1a9),_0x1f34cd[_0x1f34cd[_0x56de59(0x199)]=0x1]=_0x56de59(0x199),_0x1f34cd[_0x1f34cd['Both']=0x2]=_0x56de59(0x1d7),_0x1f34cd[_0x1f34cd[_0x56de59(0x1d1)]=0x3]=_0x56de59(0x1d1);}(_0x370a87||(_0x370a87={})));var _0x250e03;(function(_0x541add){const _0x4a5424=_0x4a8f57;_0x541add[_0x541add[_0x4a5424(0x181)]=0x0]=_0x4a5424(0x181),_0x541add[_0x541add['Object']=0x1]=_0x4a5424(0x192),_0x541add[_0x541add[_0x4a5424(0x18e)]=0x2]=_0x4a5424(0x18e),_0x541add[_0x541add[_0x4a5424(0x154)]=0x4]='Method',_0x541add[_0x541add[_0x4a5424(0x162)]=0x8]=_0x4a5424(0x162),_0x541add[_0x541add[_0x4a5424(0x1d6)]=0x10]=_0x4a5424(0x1d6),_0x541add[_0x541add[_0x4a5424(0x1a1)]=0x20]=_0x4a5424(0x1a1),_0x541add[_0x541add[_0x4a5424(0x1f9)]=0x40]=_0x4a5424(0x1f9),_0x541add[_0x541add[_0x4a5424(0x1be)]=0x80]=_0x4a5424(0x1be);}(_0x250e03||(_0x250e03={})));var _0x460253;(function(_0x5e032d){const _0x1bb29e=_0x4a8f57;_0x5e032d[_0x5e032d[_0x1bb29e(0x192)]=0x1]=_0x1bb29e(0x192),_0x5e032d[_0x5e032d['Variable']=0x2]=_0x1bb29e(0x18e),_0x5e032d[_0x5e032d[_0x1bb29e(0x154)]=0x4]=_0x1bb29e(0x154),_0x5e032d[_0x5e032d[_0x1bb29e(0x162)]=0x8]=_0x1bb29e(0x162),_0x5e032d[_0x5e032d[_0x1bb29e(0x1d6)]=0x10]='VariableType',_0x5e032d[_0x5e032d[_0x1bb29e(0x1a1)]=0x20]='ReferenceType',_0x5e032d[_0x5e032d[_0x1bb29e(0x1f9)]=0x40]=_0x1bb29e(0x1f9),_0x5e032d[_0x5e032d['View']=0x80]=_0x1bb29e(0x1be);}(_0x460253||(_0x460253={})));var _0x1aa1ad;(function(_0x1359c8){const _0x2641e3=_0x4a8f57;_0x1359c8[_0x1359c8[_0x2641e3(0x1a1)]=0x1]=_0x2641e3(0x1a1),_0x1359c8[_0x1359c8[_0x2641e3(0x1e3)]=0x2]=_0x2641e3(0x1e3),_0x1359c8[_0x1359c8[_0x2641e3(0x163)]=0x4]=_0x2641e3(0x163),_0x1359c8[_0x1359c8[_0x2641e3(0x1f3)]=0x8]=_0x2641e3(0x1f3),_0x1359c8[_0x1359c8['DisplayName']=0x10]=_0x2641e3(0x1fa),_0x1359c8[_0x1359c8[_0x2641e3(0x207)]=0x20]=_0x2641e3(0x207);}(_0x1aa1ad||(_0x1aa1ad={})));function _0x2ef4e6(_0x4b20d7){const _0x3d3bbc=_0x4a8f57;switch(_0x4b20d7){case _0x3d3bbc(0x1e9):return _0x368586;case _0x3d3bbc(0x14f):return _0x5bfdd7;case _0x3d3bbc(0x1e0):return _0x1179cb;case _0x3d3bbc(0x19b):return _0xcf894c;case _0x3d3bbc(0x1fb):return _0x1c89e4;case _0x3d3bbc(0x1d5):return _0x366b6b;}}const _0x2b0f67=_0x514601=>{const _0x3a4421=_0x4a8f57;switch(_0x514601[_0x3a4421(0x150)]){case _0x3a4421(0x192):if(_0x514601[_0x3a4421(0x20e)]===_0x368586);if(_0x514601[_0x3a4421(0x148)]===_0x2f15d8||_0x514601[_0x3a4421(0x20e)]==='i=61')return{'icon':_0x3a4421(0x1c5),'color':'rgba(61,\x2060,\x204,\x200.525)'};return{'icon':_0x3a4421(0x184),'color':_0x3a4421(0x155)};case _0x3a4421(0x18e):if(_0x514601[_0x3a4421(0x20e)]===_0x1179cb)return{'icon':_0x3a4421(0x206),'color':_0x3a4421(0x16c)};else return _0x514601[_0x3a4421(0x20e)]===_0x5bfdd7?{'icon':_0x3a4421(0x206),'color':'DodgerBlue'}:{'icon':'fa-list-alt','color':_0x3a4421(0x1a0)};case _0x3a4421(0x154):return{'icon':_0x3a4421(0x1a7),'color':_0x3a4421(0x1b8)};case _0x3a4421(0x162):return{'icon':_0x3a4421(0x184),'color':_0x3a4421(0x175)};case _0x3a4421(0x1d6):return{'icon':'fa-sliders','color':_0x3a4421(0x175)};}return{'icon':_0x3a4421(0x179),'color':_0x3a4421(0x172)};},_0x238bda=({endpointNode:_0x3e3bd1,endpoint:_0x148d25,baseUrl:_0x3089f3},_0x29939b,_0x493690)=>_0x41bcb6(void 0x0,void 0x0,void 0x0,function*(){const _0x13a213=_0x4a8f57,_0x312e8a=_0x3089f3+_0x13a213(0x196),_0x35750c=_0x312e8a+_0x13a213(0x16a),_0x2e5e08=Object['assign'](Object[_0x13a213(0x167)]({},_0x493690),{'nodeId':_0x29939b,'resultMask':0x3f}),_0x3363e8=yield fetch(_0x35750c,{'method':_0x13a213(0x212),'body':JSON['stringify']({'endpointNode':_0x3e3bd1,'endpoint':_0x148d25,'browseDescription':_0x2e5e08}),'headers':{'Content-Type':_0x13a213(0x1d3)}});if(_0x3363e8[_0x13a213(0x1d8)]!==0xc8)return console[_0x13a213(0x1a4)](_0x13a213(0x18a),_0x3363e8[_0x13a213(0x1d8)],_0x3363e8[_0x13a213(0x17b)]),{'references':[]};console[_0x13a213(0x1a4)](_0x13a213(0x180),_0x3363e8[_0x13a213(0x1d8)],_0x3363e8[_0x13a213(0x17b)]);const _0x4c1ec2=yield _0x3363e8[_0x13a213(0x201)](),_0x54cdbd=_0x4c1ec2[_0x13a213(0x1f6)][_0x13a213(0x1cd)]||[];return{'references':_0x54cdbd};}),_0xd24046={'referenceTypeId':_0x2ef4e6(_0x4a8f57(0x19b)),'includeSubtypes':!![],'browseDirection':_0x370a87[_0x4a8f57(0x1a9)],'nodeClassMask':_0x250e03['Variable']|_0x250e03['Object']|_0x250e03[_0x4a8f57(0x154)],'resultMask':0x3f},_0x3ca52a={'referenceTypeId':_0x2ef4e6(_0x4a8f57(0x1e9)),'includeSubtypes':!![],'browseDirection':_0x370a87[_0x4a8f57(0x1a9)],'nodeClassMask':_0x250e03[_0x4a8f57(0x18e)]|_0x250e03[_0x4a8f57(0x192)]|_0x250e03[_0x4a8f57(0x154)],'resultMask':0x3f},_0x3f6a89=({endpointNode:_0x1ecd58,endpoint:_0x5aa1f8,baseUrl:_0x2f1457},_0x26b499,_0x3588e2)=>_0x41bcb6(void 0x0,void 0x0,void 0x0,function*(){const _0x1e4828=_0x4a8f57,_0x3c792a=_0x2f1457+'/opcua-endpoint2',_0x19319d=_0x26b499['val'](),_0x51e1ae=yield fetch(_0x3c792a+_0x1e4828(0x198),{'method':_0x1e4828(0x212),'body':JSON[_0x1e4828(0x165)]({'endpointNode':_0x1ecd58,'endpoint':_0x5aa1f8,'nodeId':_0x19319d}),'headers':{'Content-Type':_0x1e4828(0x1d3)}}),_0x1fa691=(_0x465271,_0x3fd05e)=>{const _0x19c25d=_0x1e4828;_0x3588e2[_0x19c25d(0x182)](_0x465271)[_0x19c25d(0x1cf)](_0x19c25d(0x17f))['addClass'](_0x3fd05e),_0x3588e2[_0x19c25d(0x218)](),setTimeout(()=>{const _0x2f2d34=_0x19c25d;_0x3588e2[_0x2f2d34(0x1e8)](_0x3fd05e),_0x3588e2[_0x2f2d34(0x188)]();},0xbb8);},_0x1bfe90=yield _0x51e1ae[_0x1e4828(0x201)]();_0x51e1ae['status']!==0xc8?_0x1fa691(_0x1e4828(0x20b)+_0x19319d,_0x1e4828(0x1e7)):_0x1bfe90[_0x1e4828(0x170)][_0x1e4828(0x1ae)](/Good/)?(_0x26b499['val'](_0x1bfe90[_0x1e4828(0x21d)]),_0x26b499['trigger'](_0x1e4828(0x20f)),_0x1fa691('Good','ok')):(_0x26b499[_0x1e4828(0x153)](''+_0x19319d),_0x1fa691(_0x1bfe90[_0x1e4828(0x170)]+'\x20'+_0x51e1ae[_0x1e4828(0x17b)],_0x1e4828(0x1e7)));});function _0x44e8e2(_0x19e874,_0x42bb56){return _0x41bcb6(this,void 0x0,void 0x0,function*(){const _0x48cebb=_0x46ad,_0x3b874f=_0x19e874['data'](_0x48cebb(0x17e)),_0x327433=yield _0x238bda(_0x42bb56,_0x3b874f,_0xd24046),_0x46ad51=yield _0x238bda(_0x42bb56,_0x3b874f,_0x3ca52a);return{'references':[..._0x327433[_0x48cebb(0x1cd)],..._0x46ad51[_0x48cebb(0x1cd)]]};});}const _0x40a8d3={'referenceTypeId':_0x2ef4e6(_0x4a8f57(0x1fb)),'includeSubtypes':!![],'browseDirection':_0x370a87[_0x4a8f57(0x1a9)],'nodeClassMask':_0x250e03[_0x4a8f57(0x1a1)]|_0x250e03[_0x4a8f57(0x162)]|_0x250e03[_0x4a8f57(0x1f9)]|_0x250e03[_0x4a8f57(0x1d6)],'resultMask':0x3f};function _0x3ac3d4(_0x331b7e,_0x4b85ce){return _0x41bcb6(this,void 0x0,void 0x0,function*(){const _0x2cfa65=_0x46ad,_0x1c101a=_0x331b7e['data'](_0x2cfa65(0x17e)),_0x3367c8=yield _0x238bda(_0x4b85ce,_0x1c101a,_0x40a8d3);return _0x3367c8;});}const _0x50bf03=_0x31ce31=>{const _0x101d3c=_0x4a8f57;var _0x9f8679,_0x1f669f;if(!_0x31ce31){const _0x5b2d17=$('<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>');return _0x5b2d17;}const _0x3ac0f2=_0x31ce31['nodeId'][_0x101d3c(0x1cb)](),_0x2804bf=((_0x9f8679=_0x31ce31[_0x101d3c(0x1c1)])===null||_0x9f8679===void 0x0?void 0x0:_0x9f8679['text'])||((_0x1f669f=_0x31ce31[_0x101d3c(0x171)])===null||_0x1f669f===void 0x0?void 0x0:_0x1f669f[_0x101d3c(0x209)])||_0x31ce31[_0x101d3c(0x15b)][_0x101d3c(0x1cb)](),{icon:_0x4efcdb,color:_0x323228}=_0x2b0f67(_0x31ce31),_0x5a287b=$('<li><i\x20class=\x22fa\x20'+_0x4efcdb+_0x101d3c(0x1c0)+_0x323228+_0x101d3c(0x1e2)+_0x2804bf+'<ul></ul></li>');return _0x5a287b['addClass'](_0x101d3c(0x16e)),_0x5a287b[_0x101d3c(0x210)](_0x101d3c(0x17e),_0x3ac0f2),_0x5a287b[_0x101d3c(0x210)]('reference',_0x31ce31),_0x5a287b;},_0x161b33=()=>{const _0x2cf023=_0x4a8f57;$[_0x2cf023(0x189)](_0x2cf023(0x202),{'options':{'endpointNode':()=>({'endpoint':_0x2cf023(0x15d)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':'Objects'},'nodeClass':_0x2cf023(0x192),'nodeId':_0x2cf023(0x1b1),'displayName':{'text':'Objects'},'typeDefinition':_0x2f15d8}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x41bcb6(this,void 0x0,void 0x0,function*(){const _0x598641=_0x46ad,_0x49bcac=this,_0x1cee62=typeof _0x49bcac[_0x598641(0x21c)][_0x598641(0x1f8)]==='function'?_0x49bcac['options']['parentNode']():_0x49bcac[_0x598641(0x21c)]['parentNode'];if(_0x1cee62 instanceof Promise)return yield _0x1cee62;return _0x1cee62;});},'reset'(){const _0x205e9c=_0x2cf023,_0xf35edd=this;_0xf35edd[_0x205e9c(0x183)]['empty'](),this['resolveParentNode']()[_0x205e9c(0x15a)](_0xc45564=>{const _0xdde3e6=_0x205e9c,_0x14f281=_0x50bf03(_0xc45564);_0xf35edd[_0xdde3e6(0x183)]['append'](_0x14f281),_0xf35edd[_0xdde3e6(0x197)]=_0xc45564;});},'verify'(){const _0xcc6055=_0x2cf023,_0x23df6c=this,_0x2bd8fd={'baseUrl':_0x23df6c['options'][_0xcc6055(0x1bc)],'endpointNode':typeof _0x23df6c['options'][_0xcc6055(0x1dd)]===_0xcc6055(0x1e4)?_0x23df6c[_0xcc6055(0x21c)]['endpointNode']():_0x23df6c[_0xcc6055(0x21c)]['endpointNode'],'endpoint':typeof _0x23df6c[_0xcc6055(0x21c)][_0xcc6055(0x1ef)]===_0xcc6055(0x1e4)?_0x23df6c[_0xcc6055(0x21c)][_0xcc6055(0x1ef)]():_0x23df6c[_0xcc6055(0x21c)]['endpoint']};_0x3f6a89(_0x2bd8fd,_0x23df6c[_0xcc6055(0x1df)],_0x23df6c[_0xcc6055(0x195)]);},'_create'(){const _0x36ed54=_0x2cf023,_0x589406=this;function _0x5c2d2f(_0xbd831d,_0x2ec774,_0x1f88b5){return _0x41bcb6(this,void 0x0,void 0x0,function*(){const _0x30cae8=_0x46ad;if(_0xbd831d[_0x30cae8(0x1dc)](_0x30cae8(0x190))){console[_0x30cae8(0x1a4)](_0x30cae8(0x1a6));return;}if(_0xbd831d[_0x30cae8(0x1dc)](_0x30cae8(0x1b4))){console['log'](_0x30cae8(0x1a8));return;}_0xbd831d[_0x30cae8(0x1cf)]('loading'),_0xbd831d[_0x30cae8(0x1fc)]('<div\x20class=\x22spinner\x22></div>');try{_0xbd831d['children']('ul')[_0x30cae8(0x1ec)]();const {references:_0x2a38ec}=yield _0x2ec774(_0xbd831d,_0x1f88b5);for(const _0x317346 of _0x2a38ec){if(_0x589406['options'][_0x30cae8(0x1d2)]&&!_0x589406[_0x30cae8(0x21c)]['filter'](_0x317346))continue;const _0x58574f=_0x50bf03(_0x317346);_0xbd831d[_0x30cae8(0x1a3)]('ul')[_0x30cae8(0x1fc)](_0x58574f);}_0xbd831d[_0x30cae8(0x1cf)]('fetched');}catch(_0x258729){_0xbd831d['children']('ul')['append']('<li>error\x20'+_0x258729['message']+'</li>'),console[_0x30cae8(0x1a4)](_0x30cae8(0x1ce),_0x258729);}_0xbd831d['find'](_0x30cae8(0x1b7))[_0x30cae8(0x208)](),_0xbd831d['removeClass']('loading');});}_0x589406[_0x36ed54(0x1df)]=this[_0x36ed54(0x1f4)],_0x589406[_0x36ed54(0x144)]=$('<div/>'),_0x589406[_0x36ed54(0x144)][_0x36ed54(0x1cf)]('sterfive-combo-box'),this[_0x36ed54(0x1f4)][_0x36ed54(0x159)](_0x589406['$combo']),_0x589406[_0x36ed54(0x1aa)]=$(_0x36ed54(0x1d9))['addClass']('input-group'),_0x589406[_0x36ed54(0x144)][_0x36ed54(0x1fc)](_0x589406[_0x36ed54(0x1aa)]),_0x589406['$inputGroup'][_0x36ed54(0x1fc)](_0x589406[_0x36ed54(0x1df)]),_0x589406['$toggleTreeBtn']=$(_0x36ed54(0x1f1)),_0x589406[_0x36ed54(0x1aa)]['append'](_0x589406[_0x36ed54(0x17a)]),_0x589406[_0x36ed54(0x17a)]['on']('click',function(){const _0xee70bc=_0x36ed54;!_0x589406[_0xee70bc(0x214)]['is'](_0xee70bc(0x1fd))&&(_0x589406[_0xee70bc(0x18f)]()[_0xee70bc(0x15a)](_0x18baeb=>{const _0x4ba32f=_0xee70bc;var _0x21462a;(_0x18baeb!==_0x589406[_0x4ba32f(0x197)]||((_0x21462a=_0x589406[_0x4ba32f(0x197)])===null||_0x21462a===void 0x0?void 0x0:_0x21462a['nodeId'])!==_0x18baeb['nodeId'])&&_0x589406[_0x4ba32f(0x20d)]();}),_0x589406[_0xee70bc(0x195)][_0xee70bc(0x188)]()),_0x589406['$dropdown'][_0xee70bc(0x1eb)]();}),_0x589406[_0x36ed54(0x19c)]=$('<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>'),_0x589406[_0x36ed54(0x1aa)]['append'](_0x589406[_0x36ed54(0x19c)]),_0x589406['$verifyBtn']['on']('click',()=>{const _0x5f5244=_0x36ed54;this[_0x5f5244(0x1d0)]();}),!_0x589406['$input'][_0x36ed54(0x1f7)](_0x36ed54(0x16b))&&_0x589406['$input'][_0x36ed54(0x1f7)]('placeholder',_0x36ed54(0x15f)),_0x589406[_0x36ed54(0x195)]=$(_0x36ed54(0x204)),_0x589406[_0x36ed54(0x195)][_0x36ed54(0x188)](),{'baseUrl':_0x589406['options'][_0x36ed54(0x1bc)],'endpointNode':typeof _0x589406[_0x36ed54(0x21c)][_0x36ed54(0x1dd)]===_0x36ed54(0x1e4)?_0x589406[_0x36ed54(0x21c)][_0x36ed54(0x1dd)]():_0x589406[_0x36ed54(0x21c)][_0x36ed54(0x1dd)],'endpoint':typeof _0x589406[_0x36ed54(0x21c)]['endpoint']===_0x36ed54(0x1e4)?_0x589406['options'][_0x36ed54(0x1ef)]():_0x589406['options'][_0x36ed54(0x1ef)]},_0x589406['$dropdown']=$('<div/>')[_0x36ed54(0x1cf)](_0x36ed54(0x1a2))[_0x36ed54(0x188)](),_0x589406[_0x36ed54(0x144)][_0x36ed54(0x1fc)](_0x589406['$info']),_0x589406[_0x36ed54(0x144)][_0x36ed54(0x1fc)](_0x589406[_0x36ed54(0x214)]),_0x589406['$tree']=$(_0x36ed54(0x17d))[_0x36ed54(0x160)](_0x589406['$dropdown']),this[_0x36ed54(0x20d)](),_0x589406[_0x36ed54(0x183)]['on'](_0x36ed54(0x1af),'li',function(_0x35e680){const _0x27d08e=_0x36ed54;var _0x11b301,_0x377716;_0x35e680['stopPropagation']();let _0x320c1a=$(this);const _0xa06e5=0x14,_0x140dc6=0x14,_0x2147ed=$(this)[_0x27d08e(0x158)](),_0x12a161=_0x35e680;if(_0x12a161[_0x27d08e(0x1f5)]>=_0x2147ed[_0x27d08e(0x164)]&&_0x12a161[_0x27d08e(0x1f5)]<=_0x2147ed[_0x27d08e(0x164)]+_0xa06e5&&_0x12a161['pageY']>=_0x2147ed[_0x27d08e(0x168)]&&_0x12a161['pageY']<=_0x2147ed['top']+_0x140dc6){if(_0x320c1a[_0x27d08e(0x1dc)](_0x27d08e(0x16e))){if(_0x320c1a[_0x27d08e(0x1dc)](_0x27d08e(0x190))){_0x320c1a[_0x27d08e(0x1e8)]('expandable')[_0x27d08e(0x1cf)](_0x27d08e(0x14a)),_0x320c1a[_0x27d08e(0x1a3)]('ul')[_0x27d08e(0x1eb)]();return;}const _0x54a48d={'baseUrl':_0x589406[_0x27d08e(0x21c)][_0x27d08e(0x1bc)],'endpointNode':typeof _0x589406[_0x27d08e(0x21c)][_0x27d08e(0x1dd)]===_0x27d08e(0x1e4)?_0x589406[_0x27d08e(0x21c)]['endpointNode']():_0x589406[_0x27d08e(0x21c)]['endpointNode'],'endpoint':typeof _0x589406[_0x27d08e(0x21c)][_0x27d08e(0x1ef)]===_0x27d08e(0x1e4)?_0x589406[_0x27d08e(0x21c)]['endpoint']():_0x589406['options']['endpoint']},_0x580243=!_0x589406[_0x27d08e(0x21c)][_0x27d08e(0x157)]?_0x44e8e2:_0x3ac3d4;_0x5c2d2f(_0x320c1a,_0x580243,_0x54a48d)[_0x27d08e(0x15a)](()=>{const _0x5645cf=_0x27d08e;console[_0x5645cf(0x1a4)](_0x5645cf(0x174)),console['log'](_0x5645cf(0x190)),_0x320c1a[_0x5645cf(0x1e8)](_0x5645cf(0x16e))[_0x5645cf(0x1cf)](_0x5645cf(0x14a));})[_0x27d08e(0x1bf)](_0x2a1aab=>{const _0x1aa242=_0x27d08e;_0x320c1a[_0x1aa242(0x1e8)](_0x1aa242(0x16e))[_0x1aa242(0x1cf)](_0x1aa242(0x14a)),console['log']('error',_0x2a1aab);});}else{if(_0x320c1a[_0x27d08e(0x1dc)](_0x27d08e(0x14a)))_0x320c1a[_0x27d08e(0x1a3)]('ul')[_0x27d08e(0x1eb)](),_0x320c1a[_0x27d08e(0x18b)]('expandable\x20expanded');else{if(_0x320c1a[_0x27d08e(0x1a3)]('ul')[_0x27d08e(0x1a3)]()['length']>0x0)_0x320c1a[_0x27d08e(0x1a3)]('ul')['toggle'](),_0x320c1a[_0x27d08e(0x18b)]('expandable\x20expanded');else;}}}else{const _0x490916=_0x320c1a[_0x27d08e(0x210)](_0x27d08e(0x17e)),_0x2c8cc8=_0x320c1a['data'](_0x27d08e(0x205));if(_0x589406[_0x27d08e(0x21c)][_0x27d08e(0x1de)]&&!_0x589406[_0x27d08e(0x21c)]['isSelectable'](_0x2c8cc8))return;_0x589406[_0x27d08e(0x1df)][_0x27d08e(0x210)](_0x27d08e(0x205),_0x2c8cc8);const _0x3bd7d1=((_0x11b301=_0x2c8cc8[_0x27d08e(0x1c1)])===null||_0x11b301===void 0x0?void 0x0:_0x11b301['text'])||((_0x377716=_0x2c8cc8[_0x27d08e(0x171)])===null||_0x377716===void 0x0?void 0x0:_0x377716['name'])||_0x2c8cc8[_0x27d08e(0x15b)]['toString'](),_0x4cc485='['+_0x3bd7d1+']('+_0x490916+')';_0x589406[_0x27d08e(0x1df)]['val'](_0x4cc485),_0x589406[_0x27d08e(0x1df)][_0x27d08e(0x17c)](_0x27d08e(0x20f)),_0x589406[_0x27d08e(0x214)][_0x27d08e(0x188)]();}}),$(document)['on'](_0x36ed54(0x1af),function(_0x37a3a7){const _0x512675=_0x36ed54;!$(_0x37a3a7['target'])[_0x512675(0x1b2)](_0x589406['$combo'])[_0x512675(0x178)]&&_0x589406[_0x512675(0x214)][_0x512675(0x188)]();});}});},_0x25a25f=_0x2b2f84=>{const _0x1c3b73=_0x4a8f57;var _0x3f80ef,_0x501ba6,_0x31806a;if(!_0x2b2f84){const _0x1fa456=$('<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>');return _0x1fa456;}const _0x3bb648=_0x2b2f84[_0x1c3b73(0x15b)][_0x1c3b73(0x1cb)]();let _0x587889=((_0x3f80ef=_0x2b2f84[_0x1c3b73(0x1c1)])===null||_0x3f80ef===void 0x0?void 0x0:_0x3f80ef['text'])||((_0x501ba6=_0x2b2f84[_0x1c3b73(0x171)])===null||_0x501ba6===void 0x0?void 0x0:_0x501ba6[_0x1c3b73(0x209)])||_0x2b2f84['nodeId']['toString'](),_0x273ee4=(_0x31806a=_0x2b2f84[_0x1c3b73(0x171)])===null||_0x31806a===void 0x0?void 0x0:_0x31806a['namespaceIndex'];_0x587889+=_0x273ee4!==undefined&&_0x2b2f84['nodeClass'][_0x1c3b73(0x1ae)](/Type/)?'\x20(ns='+_0x273ee4+')':'';const {icon:_0x4e6660,color:_0x488f2d}=_0x2b0f67(_0x2b2f84),_0x2a1cfb=$(_0x1c3b73(0x1ca));if(_0x2b2f84['nodeClass']==='Variable'){const _0xc0c6fb=$(_0x1c3b73(0x1a5));_0x2a1cfb[_0x1c3b73(0x1fc)](_0xc0c6fb),_0xc0c6fb['on'](_0x1c3b73(0x1af),function(){const _0x457fa0=_0x1c3b73;_0xc0c6fb[_0x457fa0(0x1dc)](_0x457fa0(0x1bb))?_0xc0c6fb[_0x457fa0(0x1e8)](_0x457fa0(0x1bb))[_0x457fa0(0x1cf)](_0x457fa0(0x1b6)):_0xc0c6fb[_0x457fa0(0x1e8)](_0x457fa0(0x1b6))[_0x457fa0(0x1cf)]('unchecked');});}return _0x2a1cfb[_0x1c3b73(0x1fc)]($(_0x1c3b73(0x169)+_0x4e6660+_0x1c3b73(0x1c0)+_0x488f2d+_0x1c3b73(0x1c8)+_0x587889+_0x1c3b73(0x20a))),_0x2a1cfb[_0x1c3b73(0x1cf)]('expandable'),_0x2a1cfb[_0x1c3b73(0x210)](_0x1c3b73(0x17e),_0x3bb648),_0x2a1cfb[_0x1c3b73(0x210)](_0x1c3b73(0x205),_0x2b2f84),_0x2a1cfb;},_0x5df50e=()=>{const _0x67958b=_0x4a8f57;$[_0x67958b(0x189)](_0x67958b(0x1cc),{'options':{'endpointNode':()=>({'endpoint':_0x67958b(0x15d)}),'endpoint':()=>undefined,'baseUrl':''},'_populate'(){var _0x2e72e7;return _0x41bcb6(this,void 0x0,void 0x0,function*(){const _0x14a9d8=_0x46ad,_0x258433=this,_0x519355=new Set((_0x2e72e7=_0x258433['$input'][_0x14a9d8(0x153)]())===null||_0x2e72e7===void 0x0?void 0x0:_0x2e72e7[_0x14a9d8(0x1cb)]()['split'](';')),_0x4c372d={'baseUrl':_0x258433[_0x14a9d8(0x21c)][_0x14a9d8(0x1bc)],'endpointNode':typeof _0x258433[_0x14a9d8(0x21c)][_0x14a9d8(0x1dd)]===_0x14a9d8(0x1e4)?_0x258433[_0x14a9d8(0x21c)][_0x14a9d8(0x1dd)]():_0x258433[_0x14a9d8(0x21c)][_0x14a9d8(0x1dd)],'endpoint':typeof _0x258433[_0x14a9d8(0x21c)]['endpoint']===_0x14a9d8(0x1e4)?_0x258433['options'][_0x14a9d8(0x1ef)]():_0x258433['options']['endpoint']},_0x17ff1c=yield _0x1b04e9(_0x4c372d);this['_installTree'](_0x17ff1c,_0x519355);});},'_installTree'(_0x1be1e9,_0xa95a2a){const _0x7cced3=_0x67958b,_0x4f0172=this;_0x4f0172[_0x7cced3(0x183)]['empty']();if(!_0x1be1e9['events'])return;const _0x1716b4=_0x1be1e9[_0x7cced3(0x19d)],_0x1d1e1e=_0x25a25f(_0x1716b4);_0x4f0172[_0x7cced3(0x183)][_0x7cced3(0x1fc)](_0x1d1e1e);const _0x2b981d='';this[_0x7cced3(0x211)](_0x1d1e1e[_0x7cced3(0x1a3)]('ul'),_0x1716b4,_0x2b981d,_0xa95a2a),_0x1d1e1e[_0x7cced3(0x1e8)](_0x7cced3(0x16e))['addClass'](_0x7cced3(0x14a)),this['_updateValues'](_0xa95a2a);},'_installChildren'(_0xc25624,_0x2aabbd,_0x2de6d9,_0x4b9781){const _0x347464=_0x67958b,_0x1d7e74=({name:_0x56813e,namespaceIndex:_0x10790b})=>{if(_0x10790b===0x0)return _0x56813e;return _0x10790b+':'+_0x56813e;},_0x3215cf=_0x2aabbd[_0x347464(0x1a3)]||[],_0x4b20f0=_0x2aabbd[_0x347464(0x149)]||[],_0x572399=[..._0x3215cf,..._0x4b20f0];for(const _0x4e9ee7 of _0x572399){const _0x28e4a6=_0x25a25f(_0x4e9ee7);_0xc25624[_0x347464(0x1fc)](_0x28e4a6);let _0x5f100e='';_0x4e9ee7['nodeClass']===_0x347464(0x18e)&&(_0x2de6d9?_0x5f100e=_0x2de6d9+'.'+_0x1d7e74(_0x4e9ee7['browseName']):_0x5f100e=_0x1d7e74(_0x4e9ee7[_0x347464(0x171)]),_0x28e4a6[_0x347464(0x1f7)](_0x347464(0x203),_0x5f100e));const _0x1828a6=_0x4e9ee7[_0x347464(0x1a3)]&&_0x4e9ee7['children'][_0x347464(0x178)],_0x242a19=_0x4e9ee7[_0x347464(0x149)]&&_0x4e9ee7['subTypes'][_0x347464(0x178)];!_0x1828a6&&!_0x242a19?_0x28e4a6['removeClass']('expandable')['addClass'](_0x347464(0x1e6)):(this[_0x347464(0x211)](_0x28e4a6[_0x347464(0x1a3)]('ul'),_0x4e9ee7,_0x5f100e,_0x4b9781),_0x28e4a6[_0x347464(0x1e8)]('expandable')['addClass']('expanded'));}},'_updateSelectedFields'(){const _0x1b6389=_0x67958b;var _0x23dbeb;const _0x1f77c9=this,_0x375452=new Set((_0x23dbeb=_0x1f77c9[_0x1b6389(0x1df)][_0x1b6389(0x153)]())===null||_0x23dbeb===void 0x0?void 0x0:_0x23dbeb[_0x1b6389(0x1cb)]()[_0x1b6389(0x186)](';'));this['_updateValues'](_0x375452);},'_updateValues'(_0x540e33){const _0x50dfc8=_0x67958b;$(_0x50dfc8(0x185))[_0x50dfc8(0x173)](function(){const _0x373dff=_0x50dfc8,_0x4c37de=$(this),_0x240490=_0x4c37de[_0x373dff(0x1f7)]('data-value');_0x240490&&_0x540e33[_0x373dff(0x194)](_0x240490)&&_0x4c37de[_0x373dff(0x1a3)](_0x373dff(0x1ff))[_0x373dff(0x1e8)](_0x373dff(0x1bb))[_0x373dff(0x1cf)](_0x373dff(0x1b6));});},'_setInputValue'(){const _0x4313d0=_0x67958b,_0x507292=this,_0x4f065b=[];$('.sterfive-tree\x20li')['each'](function(){const _0x26a1f9=_0x46ad,_0x122f32=$(this);if(_0x122f32[_0x26a1f9(0x1a3)]('span.custom-checkbox.checked')['length']>0x0){const _0x4632ab=_0x122f32[_0x26a1f9(0x1f7)](_0x26a1f9(0x203));if(_0x4632ab)_0x4f065b[_0x26a1f9(0x1ee)](_0x4632ab);}});const _0x5c5a97=[...new Set(_0x4f065b)][_0x4313d0(0x1b5)]()[_0x4313d0(0x14e)](';');_0x507292['$input']['val'](_0x5c5a97),_0x507292[_0x4313d0(0x1df)]['trigger'](_0x4313d0(0x20f));},'_create'(){const _0x5975de=_0x67958b,_0xaa7e8e=this;_0xaa7e8e[_0x5975de(0x1df)]=this[_0x5975de(0x1f4)],_0xaa7e8e[_0x5975de(0x144)]=$('<div/>'),_0xaa7e8e[_0x5975de(0x144)][_0x5975de(0x1cf)](_0x5975de(0x161)),this['element'][0x0][_0x5975de(0x217)][_0x5975de(0x147)](_0xaa7e8e[_0x5975de(0x144)][0x0],this[_0x5975de(0x1f4)][0x0]),_0xaa7e8e[_0x5975de(0x1aa)]=$(_0x5975de(0x1d9))[_0x5975de(0x1cf)](_0x5975de(0x14c)),_0xaa7e8e['$combo']['append'](_0xaa7e8e[_0x5975de(0x1aa)]),_0xaa7e8e['$inputGroup'][_0x5975de(0x1fc)](_0xaa7e8e['$input']),_0xaa7e8e[_0x5975de(0x17a)]=$(_0x5975de(0x1f1)),_0xaa7e8e[_0x5975de(0x1aa)][_0x5975de(0x1fc)](_0xaa7e8e[_0x5975de(0x17a)]),_0xaa7e8e[_0x5975de(0x17a)]['on'](_0x5975de(0x1af),function(){const _0x4aa773=_0x5975de;_0xaa7e8e[_0x4aa773(0x214)][_0x4aa773(0x1eb)](),_0xaa7e8e[_0x4aa773(0x195)]['toggle']();if(_0xaa7e8e[_0x4aa773(0x214)]['is'](_0x4aa773(0x1fd))){_0x202f7a[_0x4aa773(0x218)]();const _0x5149b1=_0xaa7e8e['$dropdown'][_0x4aa773(0x158)]();_0x202f7a[_0x4aa773(0x19f)]({'top':_0x5149b1[_0x4aa773(0x168)]+'px','right':_0x4aa773(0x19a)+(_0x5149b1[_0x4aa773(0x164)]+_0xaa7e8e['$dropdown'][_0x4aa773(0x152)]())+'px)'}),_0xaa7e8e[_0x4aa773(0x1fe)](),_0xaa7e8e[_0x4aa773(0x1c9)]();}else _0x202f7a['hide']();});!_0xaa7e8e[_0x5975de(0x1df)][_0x5975de(0x1f7)]('placeholder')&&_0xaa7e8e[_0x5975de(0x1df)]['attr'](_0x5975de(0x16b),'enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20');_0xaa7e8e['$info']=$('<div\x20class=\x22info-text\x22></div>'),_0xaa7e8e['$info']['hide'](),_0xaa7e8e[_0x5975de(0x214)]=$(_0x5975de(0x1d9))['addClass'](_0x5975de(0x1a2))['hide']();const _0x567026=$(_0x5975de(0x18d)),_0xd0a476=$(_0x5975de(0x1db)),_0x202f7a=$(_0x5975de(0x187))['append'](_0x567026,_0xd0a476);_0x202f7a[_0x5975de(0x188)](),_0x567026['on'](_0x5975de(0x1af),()=>{_0xaa7e8e['_setInputValue'](),_0xaa7e8e['$dropdown']['hide']();}),_0xd0a476['on'](_0x5975de(0x1af),()=>{const _0x5f280a=_0x5975de;_0xaa7e8e[_0x5f280a(0x214)][_0x5f280a(0x188)]();}),_0xaa7e8e[_0x5975de(0x144)][_0x5975de(0x1fc)](_0xaa7e8e[_0x5975de(0x195)]),_0xaa7e8e[_0x5975de(0x144)][_0x5975de(0x1fc)](_0xaa7e8e['$dropdown']),_0xaa7e8e[_0x5975de(0x183)]=$('<ul\x20class=\x22sterfive-tree\x22></ul>'),_0xaa7e8e['$dropdown'][_0x5975de(0x1ec)]()[_0x5975de(0x1fc)](_0xaa7e8e[_0x5975de(0x183)],_0x202f7a),_0xaa7e8e[_0x5975de(0x183)]['on'](_0x5975de(0x1af),'li',function(_0x31ecad){const _0x520a5a=_0x5975de;_0x31ecad['stopPropagation']();let _0x42a408=$(this);const _0x284fb7=0x14,_0x589677=0x14,_0x59953a=$(this)[_0x520a5a(0x158)](),_0x4f0f7b=_0x31ecad;if(_0x4f0f7b[_0x520a5a(0x1f5)]>=_0x59953a[_0x520a5a(0x164)]&&_0x4f0f7b['pageX']<=_0x59953a[_0x520a5a(0x164)]+_0x284fb7&&_0x4f0f7b[_0x520a5a(0x151)]>=_0x59953a[_0x520a5a(0x168)]&&_0x4f0f7b[_0x520a5a(0x151)]<=_0x59953a[_0x520a5a(0x168)]+_0x589677){console[_0x520a5a(0x1a4)]('clicked\x20on\x20icon'),console[_0x520a5a(0x1a4)]('clicked\x20on\x20',_0x42a408[_0x520a5a(0x210)]('value'),_0x42a408[_0x520a5a(0x1f7)](_0x520a5a(0x216)));if(_0x42a408[_0x520a5a(0x1dc)](_0x520a5a(0x16e)))_0x42a408[_0x520a5a(0x1e8)](_0x520a5a(0x16e))[_0x520a5a(0x1cf)]('expanded'),_0x42a408[_0x520a5a(0x1a3)]('ul')['toggle']();else{if(_0x42a408['hasClass'](_0x520a5a(0x14a)))_0x42a408['children']('ul')['toggle'](),_0x42a408['toggleClass'](_0x520a5a(0x1ba));else{if(_0x42a408[_0x520a5a(0x1a3)]('ul')[_0x520a5a(0x1a3)]()['length']>0x0)_0x42a408[_0x520a5a(0x1a3)]('ul')[_0x520a5a(0x1eb)](),_0x42a408['toggleClass'](_0x520a5a(0x1ba));else;}}}}),$(document)['on'](_0x5975de(0x1af),function(_0x3dfc52){const _0x24ddc5=_0x5975de;!$(_0x3dfc52[_0x24ddc5(0x1bd)])[_0x24ddc5(0x1b2)](_0xaa7e8e[_0x24ddc5(0x144)])[_0x24ddc5(0x178)]&&_0xaa7e8e[_0x24ddc5(0x214)][_0x24ddc5(0x188)]();}),this[_0x5975de(0x1fe)]();}});},_0x1b04e9=({endpointNode:_0x237494,endpoint:_0x4eb0bf,baseUrl:_0x130f54})=>_0x41bcb6(void 0x0,void 0x0,void 0x0,function*(){const _0x3d0bdf=_0x4a8f57,_0x36edfb=_0x130f54+'/opcua-endpoint2',_0x398710=_0x36edfb+_0x3d0bdf(0x1c4),_0x542d53=yield fetch(_0x398710,{'method':_0x3d0bdf(0x212),'body':JSON[_0x3d0bdf(0x165)]({'endpointNode':_0x237494,'endpoint':_0x4eb0bf}),'headers':{'Content-Type':_0x3d0bdf(0x1d3)}});if(_0x542d53[_0x3d0bdf(0x1d8)]!==0xc8)return console['log']('fetching\x20failed\x20with\x20error',_0x542d53[_0x3d0bdf(0x1d8)],_0x542d53[_0x3d0bdf(0x17b)]),{'events':null};console[_0x3d0bdf(0x1a4)](_0x3d0bdf(0x180),_0x542d53[_0x3d0bdf(0x1d8)],_0x542d53[_0x3d0bdf(0x17b)]);const _0x2df6fd=yield _0x542d53[_0x3d0bdf(0x201)](),_0x4f89e2=_0x2df6fd[_0x3d0bdf(0x19d)];return{'events':_0x4f89e2};}),_0x4ebd3a=()=>{const _0x18878e=_0x4a8f57,_0x2f32bd=$(_0x18878e(0x215)),_0x1e6461=_0x2f32bd['val'](),_0x5ec0c4=RED[_0x18878e(0x176)]['node'](_0x1e6461);if(!_0x5ec0c4)return undefined;const {endpoint:_0x2678bb,securityMode:_0x23db01,securityPolicy:_0x572e6c,userIdentityType:_0x23fec8,credentials:_0x57249d}=_0x5ec0c4,_0x58c32a={'endpoint':_0x2678bb,'securityMode':_0x23db01,'securityPolicy':_0x572e6c,'userIdentityType':_0x23fec8,'credentials':_0x57249d};return console[_0x18878e(0x1a4)]('xxx',_0x58c32a),_0x58c32a;},_0x58d359=()=>{return{'endpointNode':_0x1f9ae0};},_0x1f9ae0=()=>{const _0x5e3d1f=$('#node-input-endpoint'),_0x5764a4=_0x5e3d1f['val'](),_0x157650=_0x4ebd3a();if(!_0x157650)return undefined;return{'id':_0x5764a4};};RED[_0x4a8f57(0x176)]['registerType']('OpcUa-Client2-MonitorEvent',{'category':_0x4a8f57(0x1ac),'color':_0x4a8f57(0x1c2),'align':_0x4a8f57(0x219),'icon':'opcualogobig.png','paletteLabel':'monitor\x20events','defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x4a8f57(0x1c3)},'subscription':{'value':'','required':!![],'validate':_0x35e4a2=>{if(_0x35e4a2==='')return![];return!![];}},'startImmediately':{'value':!![],'required':!![]},'nodeId':{'value':'','required':![],'validate':()=>!![]},'samplingInterval':{'value':0x3e8,'required':!![]},'discardOldest':{'value':!![],'required':!![]},'queueSize':{'value':0xa,'required':!![]},'selectClauses':{'value':'','required':!![]},'whereClause':{'value':'','required':![]}},'outputs':0x2,'label'(){const _0x29d3df=_0x4a8f57;return this[_0x29d3df(0x209)]||_0x29d3df(0x1c6);},'labelStyle'(){const _0x3c8de3=_0x4a8f57;return this[_0x3c8de3(0x209)]?_0x3c8de3(0x14b):'';},'oneditprepare'(){const _0x32c7ad=_0x4a8f57;_0x161b33(),_0x5df50e(),_0x40291a(RED,this),$('node-input-startImmediately')['on']('change',()=>{const _0x1bca8d=_0x46ad,_0x3c3ebc=$(_0x1bca8d(0x15e))[_0x1bca8d(0x16d)](_0x1bca8d(0x1b6));_0x3c3ebc?$(_0x1bca8d(0x1ea))[_0x1bca8d(0x153)](0x0):$(_0x1bca8d(0x1ea))[_0x1bca8d(0x153)](0x1);});const _0x3a7359=$(_0x32c7ad(0x1ad));_0x3a7359['nodeBrowser'](Object['assign'](Object[_0x32c7ad(0x167)]({},_0x58d359()),{'filter'(_0x2a6d52){const _0x52b527=_0x32c7ad;return _0x2a6d52[_0x52b527(0x150)]===_0x52b527(0x192);},'isSelectable'(_0x35248c){const _0x459964=_0x32c7ad;return _0x35248c[_0x459964(0x150)]===_0x459964(0x192);}})),$(_0x32c7ad(0x1b9));const _0x3866b8=$(_0x32c7ad(0x18c));_0x3866b8[_0x32c7ad(0x1b3)](Object['assign']({},_0x58d359()));},'oneditsave'(){const _0x2352cf=_0x4a8f57,_0x491aaf=$(_0x2352cf(0x15e))[_0x2352cf(0x16d)]('checked');_0x491aaf?($(_0x2352cf(0x15e))['val'](_0x491aaf?0x0:0x1),this[_0x2352cf(0x166)]=_0x491aaf?0x0:0x1):($(_0x2352cf(0x15e))[_0x2352cf(0x153)](0x1),this['inputs']=0x1);}});}()));function _0x46ad(_0x2c9cfe,_0x2b481a){const _0x4b70cb=_0x4b70();return _0x46ad=function(_0x46ad1b,_0x258d1d){_0x46ad1b=_0x46ad1b-0x144;let _0x40c1ad=_0x4b70cb[_0x46ad1b];return _0x40c1ad;},_0x46ad(_0x2c9cfe,_0x2b481a);}function _0x4b70(){const _0x372646=['HasSubtype','append',':visible','_populate','span.custom-checkbox','413577xIiBRd','json','sterfive.nodeBrowser','data-value','<div\x20class=\x22info-text\x22></div>','reference','fa-list-alt','TypeDefinition','remove','name','<ul></ul>','!!failure!!','28MYHzJM','reset','referenceTypeId','change','data','_installChildren','POST','next','$dropdown','#node-input-endpoint','class','parentElement','show','right','222lHDgYi','1759938OvpmPd','options','nodeAddressString','$combo','10lDLptu','5087605euaLvg','replaceChild','typeDefinition','subTypes','expanded','node_label_italic','input-group','subscriptions','join','HasProperty','nodeClass','pageY','width','val','Method','SeaGreen','34098LWNEKR','isTypeRef','offset','replaceWith','then','nodeId','551000XpLDTT','opc.tcp://opcuademo.sterfive.com:26543','#node-input-startImmediately','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','appendTo','sterfive-combo-box','ObjectType','NodeClass','left','stringify','inputs','assign','top','<i\x20class=\x22fa\x20','/browse','placeholder','SteelBlue','prop','expandable','4chNUpl','statusCode','browseName','grey','each','\x20Fetching\x20done','DarkOrange','nodes','error','length','fa-question','$toggleTreeBtn','statusText','trigger','<ul\x20class=\x22sterfive-tree\x22></ul>','value','sterfive-info','fetched\x20:\x20','Unspecified','text','$tree','fa-object-group','.sterfive-tree\x20li','split','<div\x20class=\x22floating-buttons\x22></div>','hide','widget','fetching\x20failed\x20with\x20error','toggleClass','#node-input-selectClauses','<span\x20class=\x22validate-button\x22>✔</span>','Variable','resolveParentNode','fetched','SuppressedError','Object','#node-input-subscription','has','$info','/opcua-endpoint2','currentParent','/checkNodeId','Inverse','calc(100%\x20-\x20','HasChild','$verifyBtn','events','4218379kqcWQc','css','CadetBlue','ReferenceType','sterfive-dropdown','children','log','<span\x20class=\x22custom-checkbox\x20unchecked\x22></span>','already\x20fetched','fa-cog','already\x20loading','Forward','$inputGroup','apply','opcua','#node-input-nodeId','match','click','done','ns=0;i=85','closest','eventFieldSelector','loading','sort','checked','.spinner','SandyBrown','#node-input-whereClause','expandable\x20expanded','unchecked','baseUrl','target','View','catch','\x22\x20style=\x22color:','displayName','#C0DEED','OpcUa-Endpoint2','/extractEventTypes','fa-folder','OPCUA\x20Monitor','node',';\x22></i>','_updateSelectedFields','<li>','toString','sterfive.eventFieldSelector','references','err','addClass','verify','Invalid','filter','application/json','ns=0;i=34','HasTypeDefinition','VariableType','Both','status','<div/>','ns=0;i=46','<span\x20class=\x22cancel-button\x22>✖</span>','hasClass','endpointNode','isSelectable','$input','HasComponent','throw',';\x22></i>\x20','IsForward','function','ns=0;i=61','no-expandable','failure','removeClass','Organizes','#node-input-inputs','toggle','empty','suppressed','push','endpoint','60jLqCnw','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','4883264cNWhFI','BrowseName','element','pageX','browseResult','attr','parentNode','DataType','DisplayName'];_0x4b70=function(){return _0x372646;};return _0x4b70();}
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg0MDI5MWEiLCJfMHhiZjk2NWMiLCJfMHgyYWI4ZTMiLCJfMHg1ZjBiOWEiLCIkIiwiXzB4NDJmN2ZkIiwiXzB4MTc5ZDczIiwiXzB4NDVkNDM1IiwiXzB4MzNhN2QzIiwiXzB4MTRhNzhlIiwiXzB4NDFiY2I2IiwiXzB4NTE0NWVjIiwiXzB4NWU3MTg2IiwiXzB4NGVkYTMzIiwiXzB4NGY2MmVhIiwiXzB4NDQ5YjAzIiwiXzB4MmZkZTMyIiwiXzB4NGE5M2ZiIiwiUHJvbWlzZSIsIl8weDM2MDRkNiIsIl8weDM3N2VkMyIsIl8weDM4MDUyMCIsIl8weDI5YTNlMCIsIl8weDQzZDUwYyIsIl8weDFkY2NjZCIsIl8weDQzMDI3NyIsIl8weDVjMDZhMSIsIl8weDMxZGEzZiIsIl8weDJlMzgyNiIsIlN1cHByZXNzZWRFcnJvciIsIl8weDQwMWIwMyIsIl8weDI3YmIzYiIsIl8weDVkNzBmNSIsIl8weDMwMWNjMSIsIkVycm9yIiwiXzB4MzY4NTg2IiwiXzB4MmYxNWQ4IiwiXzB4MTE3OWNiIiwiXzB4NWJmZGQ3IiwiXzB4Y2Y4OTRjIiwiXzB4MWM4OWU0IiwiXzB4MzY2YjZiIiwiXzB4MzcwYTg3IiwiXzB4MWYzNGNkIiwiXzB4MjUwZTAzIiwiXzB4NTQxYWRkIiwiXzB4NDYwMjUzIiwiXzB4NWUwMzJkIiwiXzB4MWFhMWFkIiwiXzB4MTM1OWM4IiwiXzB4MmVmNGU2IiwiXzB4NGIyMGQ3IiwiXzB4MmIwZjY3IiwiXzB4NTE0NjAxIiwiXzB4MjM4YmRhIiwiZW5kcG9pbnROb2RlIiwiXzB4M2UzYmQxIiwiZW5kcG9pbnQiLCJfMHgxNDhkMjUiLCJiYXNlVXJsIiwiXzB4MzA4OWYzIiwiXzB4Mjk5MzliIiwiXzB4NDkzNjkwIiwiXzB4MzEyZThhIiwiXzB4MzU3NTBjIiwiXzB4MmU1ZTA4IiwiT2JqZWN0IiwiXzB4MzM2M2U4IiwiZmV0Y2giLCJKU09OIiwiY29uc29sZSIsIl8weDRjMWVjMiIsIl8weDU0Y2RiZCIsIl8weGQyNDA0NiIsIl8weDNjYTUyYSIsIl8weDNmNmE4OSIsIl8weDFlY2Q1OCIsIl8weDVhYTFmOCIsIl8weDJmMTQ1NyIsIl8weDI2YjQ5OSIsIl8weDM1ODhlMiIsIl8weDNjNzkyYSIsIl8weDE5MzE5ZCIsIl8weDUxZTFhZSIsIl8weDFmYTY5MSIsIl8weDQ2NTI3MSIsIl8weDNmZDA1ZSIsInNldFRpbWVvdXQiLCJfMHgxYmZlOTAiLCJfMHg0NGU4ZTIiLCJfMHgxOWU4NzQiLCJfMHg0MmJiNTYiLCJfMHgzYjg3NGYiLCJfMHgzMjc0MzMiLCJfMHg0NmFkNTEiLCJfMHg0MGE4ZDMiLCJfMHgzYWMzZDQiLCJfMHgzMzFiN2UiLCJfMHg0Yjg1Y2UiLCJfMHgxYzEwMWEiLCJfMHgzMzY3YzgiLCJfMHg1MGJmMDMiLCJfMHgzMWNlMzEiLCJfMHg5Zjg2NzkiLCJfMHgxZjY2OWYiLCJfMHg1YjJkMTciLCJfMHgzYWMwZjIiLCJfMHgyODA0YmYiLCJpY29uIiwiXzB4NGVmY2RiIiwiY29sb3IiLCJfMHgzMjMyMjgiLCJfMHg1YTI4N2IiLCJfMHgxNjFiMzMiLCJ1bmRlZmluZWQiLCJfMHg0OWJjYWMiLCJfMHgxY2VlNjIiLCJfMHhmMzVlZGQiLCJfMHhjNDU1NjQiLCJfMHgxNGYyODEiLCJfMHgyM2RmNmMiLCJfMHgyYmQ4ZmQiLCJfMHg1ODk0MDYiLCJfMHg1YzJkMmYiLCJfMHhiZDgzMWQiLCJfMHgyZWM3NzQiLCJfMHgxZjg4YjUiLCJyZWZlcmVuY2VzIiwiXzB4MmEzOGVjIiwiXzB4MzE3MzQ2IiwiXzB4NTg1NzRmIiwiXzB4MjU4NzI5IiwiXzB4MThiYWViIiwiXzB4MjE0NjJhIiwiXzB4MzVlNjgwIiwiXzB4MTFiMzAxIiwiXzB4Mzc3NzE2IiwiXzB4MzIwYzFhIiwiXzB4YTA2ZTUiLCJfMHgxNDBkYzYiLCJfMHgyMTQ3ZWQiLCJfMHgxMmExNjEiLCJfMHg1NGE0OGQiLCJfMHg1ODAyNDMiLCJfMHgyYTFhYWIiLCJfMHg0OTA5MTYiLCJfMHgyYzhjYzgiLCJfMHgzYmQ3ZDEiLCJfMHg0Y2M0ODUiLCJkb2N1bWVudCIsIl8weDM3YTNhNyIsIl8weDI1YTI1ZiIsIl8weDJiMmY4NCIsIl8weDNmODBlZiIsIl8weDUwMWJhNiIsIl8weDMxODA2YSIsIl8weDFmYTQ1NiIsIl8weDNiYjY0OCIsIl8weDU4Nzg4OSIsIl8weDI3M2VlNCIsIl8weDRlNjY2MCIsIl8weDQ4OGYyZCIsIl8weDJhMWNmYiIsIl8weGMwYzZmYiIsIl8weDVkZjUwZSIsIl8weDJlNzJlNyIsIl8weDI1ODQzMyIsIl8weDUxOTM1NSIsIlNldCIsIl8weDRjMzcyZCIsIl8weDE3ZmYxYyIsIl8weDFiMDRlOSIsIl8weDFiZTFlOSIsIl8weGE5NWEyYSIsIl8weDRmMDE3MiIsIl8weDE3MTZiNCIsIl8weDFkMWUxZSIsIl8weDJiOTgxZCIsIl8weGMyNTYyNCIsIl8weDJhYWJiZCIsIl8weDJkZTZkOSIsIl8weDRiOTc4MSIsIl8weDFkN2U3NCIsIm5hbWUiLCJfMHg1NjgxM2UiLCJuYW1lc3BhY2VJbmRleCIsIl8weDEwNzkwYiIsIl8weDMyMTVjZiIsIl8weDRiMjBmMCIsIl8weDU3MjM5OSIsIl8weDRlOWVlNyIsIl8weDI4ZTRhNiIsIl8weDVmMTAwZSIsIl8weDE4MjhhNiIsIl8weDI0MmExOSIsIl8weDIzZGJlYiIsIl8weDFmNzdjOSIsIl8weDM3NTQ1MiIsIl8weDU0MGUzMyIsIl8weDRjMzdkZSIsIl8weDI0MDQ5MCIsIl8weDUwNzI5MiIsIl8weDRmMDY1YiIsIl8weDEyMmYzMiIsIl8weDQ2MzJhYiIsIl8weDVjNWE5NyIsIl8weGFhN2U4ZSIsIl8weDIwMmY3YSIsIl8weDUxNDliMSIsIl8weDU2NzAyNiIsIl8weGQwYTQ3NiIsIl8weDMxZWNhZCIsIl8weDQyYTQwOCIsIl8weDI4NGZiNyIsIl8weDU4OTY3NyIsIl8weDU5OTUzYSIsIl8weDRmMGY3YiIsIl8weDNkZmM1MiIsIl8weDIzNzQ5NCIsIl8weDRlYjBiZiIsIl8weDEzMGY1NCIsIl8weDM2ZWRmYiIsIl8weDM5ODcxMCIsIl8weDU0MmQ1MyIsIl8weDJkZjZmZCIsIl8weDRmODllMiIsIl8weDRlYmQzYSIsIl8weDJmMzJiZCIsIl8weDFlNjQ2MSIsIl8weDVlYzBjNCIsIlJFRCIsIl8weDI2NzhiYiIsInNlY3VyaXR5TW9kZSIsIl8weDIzZGIwMSIsInNlY3VyaXR5UG9saWN5IiwiXzB4NTcyZTZjIiwidXNlcklkZW50aXR5VHlwZSIsIl8weDIzZmVjOCIsImNyZWRlbnRpYWxzIiwiXzB4NTcyNDlkIiwiXzB4NThjMzJhIiwiXzB4NThkMzU5IiwiXzB4MWY5YWUwIiwiXzB4NWUzZDFmIiwiXzB4NTc2NGE0IiwiXzB4MTU3NjUwIiwiXzB4MzVlNGEyIiwiXzB4M2MzZWJjIiwiXzB4M2E3MzU5IiwiXzB4MmE2ZDUyIiwiXzB4MzUyNDhjIiwiXzB4Mzg2NmI4IiwiXzB4NDkxYWFmIl0sIm1hcHBpbmdzIjoiNm9CQUFBLENBQUMsVSxDQUNHLGEsd0JBRUEsU0FBU0EsU0FBVCxDQUFxQ0MsU0FBckMsQ0FBMENDLFNBQTFDLEMseUJBQ1VDLFNBQUEsQ0FBWUMsQ0FBQSxDLGdCQUFBLEMsQ0FDWkMsU0FBQSxDQUFnQkQsQ0FBQSxDLGdCQUFBLEMsQ0FDaEJFLFNBQUEsQ0FBNkIsSSwyQkFDekJDLFNBQUEsQ0FBV04sU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBZUUsU0FBQSxDLGdCQUFBLEdBQWYsQyxDQUNqQkUsU0FBQSxDLGdCQUFBLEksR0FDSSxDQUFDRSxTQUFELEVBQWEsQ0FBQ0EsU0FBQSxDLGdCQUFBLEMsQ0FDZCxPLEdBRUFBLFNBQUEsQyxnQkFBQSxDLENBQ0EsVUFBV0MsU0FBWCxJQUFnQkQsU0FBQSxDLGdCQUFBLENBQWhCLEMsQ0FDSSxNQUFNRSxTQUFBLENBQVFELFNBQUEsQyxNQUFBLEdBQVVBLFNBQUEsQyxJQUFBLENBQXhCLENBQ0FKLENBQUEsQyxXQUFBLENBQWUsQyxPQUNYLENBQU9JLFNBQUEsQyxJQUFBLENBREksQyxPQUVYLENBQU9DLFNBRkksQyxVQUdYLENBQVVELFNBQUEsQyxJQUFBLElBQVNOLFNBQUEsQyxjQUFBLENBSFIs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LGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLEdBQVYsRSxTQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLEdBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxJQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsSUFBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLElBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxJQUFWLEUsa0JBVEosQ0FVR0QsU0FBQSxFQUFjLENBQUFBLFNBQUEsQ0FBWSxFQUFaLENBVmpCLEdBV0EsSUFBSUUsU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDJCQUNHQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLEdBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsVUFBQSxFLEdBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxHQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsR0FBZCxFLGlCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLElBQWQsRSxlQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLElBQWQsRSxnQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxJQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLE1BQUEsRSxJQUFkLEUsa0JBUkosQ0FTR0QsU0FBQSxFQUFrQixDQUFBQSxTQUFBLENBQWdCLEVBQWhCLENBVHJCLEdBVUEsSUFBSUUsU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDJCQUNHQSxTQUFBLENBQVdBLFNBQUEsQyxnQkFBQSxFLEdBQVgsRSxpQkFDQUEsU0FBQSxDQUFXQSxTQUFBLEMsZ0JBQUEsRSxHQUFYLEUsaUJBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLGdCQUFBLEUsR0FBWCxFLGlCQUNBQSxTQUFBLENBQVdBLFNBQUEsQyxnQkFBQSxFLEdBQVgsRSxpQkFD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Q0FBckQsQyxFQTl4QkosRyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgZnVuY3Rpb24gaW5zdGFsbFN1YnNjcmlwdGlvblNlbGVjdG9yKFJFRCwgbm9kZSkge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0ICRzdWJzY3JpcHRpb24gPSAkKFwiI25vZGUtaW5wdXQtc3Vic2NyaXB0aW9uXCIpO1xuICAgICAgICBjb25zdCBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucyA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGVuZHBvaW50ID0gUkVELm5vZGVzLm5vZGUoJGVuZHBvaW50LnZhbCgpKTtcbiAgICAgICAgICAgICRzdWJzY3JpcHRpb24uZW1wdHkoKTtcbiAgICAgICAgICAgIGlmICghZW5kcG9pbnQgfHwgIWVuZHBvaW50LnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZW5kcG9pbnQuc3Vic2NyaXB0aW9ucykge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcyBvZiBlbmRwb2ludC5zdWJzY3JpcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gcy5uYW1lIHx8IHMuaWQ7XG4gICAgICAgICAgICAgICAgICAgICQoXCI8b3B0aW9uLz5cIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHMuaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogbGFiZWwsXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZDogcy5pZCA9PT0gbm9kZS5zdWJzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAudGV4dChsYWJlbClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbygkc3Vic2NyaXB0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGluc3RhbGxTdWJzY3JpcHRpb25PcHRpb25zKCk7XG4gICAgICAgIC8vIGhhY2tcbiAgICAgICAgLy8gJGlucHV0QWN0aW9uLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgLy8gICAgICRlbmRwb2ludC5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgIC8vICAgICAgICAgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMoKTtcbiAgICAgICAgLy8gICAgIH0pO1xuICAgICAgICAvLyB9KTtcbiAgICAgICAgJHN1YnNjcmlwdGlvbi5vbihcImZvY3VzIGNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgIGluc3RhbGxTdWJzY3JpcHRpb25PcHRpb25zKCk7XG4gICAgICAgIH0pO1xuICAgICAgICAkZW5kcG9pbnQub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAgICAgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG4gICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG4gICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG4gICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcbiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuICAgIC8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCAqL1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG4gICAgfTtcblxuICAgIGNvbnN0IE9yZ2FuaXplc1JlZk5vZGVJZCA9IFwibnM9MDtpPTM1XCI7XG4gICAgY29uc3QgRm9sZGVyVHlwZSA9IFwibnM9MDtpPTYxXCI7XG4gICAgY29uc3QgSGFzQ29tcG9uZW50UmVmTm9kZUlkID0gXCJucz0wO2k9NDdcIjtcbiAgICBjb25zdCBIYXNQcm9wZXJ0eVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ2XCI7XG4gICAgY29uc3QgSGFzQ2hpbGRSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNFwiO1xuICAgIGNvbnN0IEhhc1N1YnR5cGVSZWZOb2RlSWQgPSBcIm5zPTA7aT00NVwiO1xuICAgIGNvbnN0IEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkID0gXCJucz0wO2k9NDBcIjtcblxuICAgIHZhciBCcm93c2VEaXJlY3Rpb247XG4gICAgKGZ1bmN0aW9uIChCcm93c2VEaXJlY3Rpb24pIHtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkZvcndhcmRcIl0gPSAwXSA9IFwiRm9yd2FyZFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52ZXJzZVwiXSA9IDFdID0gXCJJbnZlcnNlXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJCb3RoXCJdID0gMl0gPSBcIkJvdGhcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmFsaWRcIl0gPSAzXSA9IFwiSW52YWxpZFwiO1xuICAgIH0pKEJyb3dzZURpcmVjdGlvbiB8fCAoQnJvd3NlRGlyZWN0aW9uID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzKSB7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJVbnNwZWNpZmllZFwiXSA9IDBdID0gXCJVbnNwZWNpZmllZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3MgfHwgKE5vZGVDbGFzcyA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzc01hc2s7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3NNYXNrKSB7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3NNYXNrIHx8IChOb2RlQ2xhc3NNYXNrID0ge30pKTtcbiAgICB2YXIgUmVzdWx0TWFzaztcbiAgICAoZnVuY3Rpb24gKFJlc3VsdE1hc2spIHtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDFdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIklzRm9yd2FyZFwiXSA9IDJdID0gXCJJc0ZvcndhcmRcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiTm9kZUNsYXNzXCJdID0gNF0gPSBcIk5vZGVDbGFzc1wiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJCcm93c2VOYW1lXCJdID0gOF0gPSBcIkJyb3dzZU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiRGlzcGxheU5hbWVcIl0gPSAxNl0gPSBcIkRpc3BsYXlOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlR5cGVEZWZpbml0aW9uXCJdID0gMzJdID0gXCJUeXBlRGVmaW5pdGlvblwiO1xuICAgIH0pKFJlc3VsdE1hc2sgfHwgKFJlc3VsdE1hc2sgPSB7fSkpO1xuICAgIC8vICBjb25zdCBxID0gUmVmZXJlbmNlVHlwZUlkcy5Pcmdhbml6ZXM7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZU5vZGVJZChub2RlSWRMaWtlKSB7XG4gICAgICAgIHN3aXRjaCAobm9kZUlkTGlrZSkge1xuICAgICAgICAgICAgY2FzZSBcIk9yZ2FuaXplc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBPcmdhbml6ZXNSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzUHJvcGVydHlcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzUHJvcGVydHlSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ29tcG9uZW50XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NvbXBvbmVudFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDaGlsZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDaGlsZFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNTdWJ0eXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1N1YnR5cGVSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzVHlwZURlZmluaXRpb25cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBnZXRJY29uID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHJlZmVyZW5jZS5ub2RlQ2xhc3MpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gT3JnYW5pemVzUmVmTm9kZUlkKSA7XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS50eXBlRGVmaW5pdGlvbiA9PT0gRm9sZGVyVHlwZSB8fCByZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBcImk9NjFcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWZvbGRlclwiLCBjb2xvcjogXCJyZ2JhKDYxLCA2MCwgNCwgMC41MjUpXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiU2VhR3JlZW5cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlXCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc0NvbXBvbmVudFJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIlN0ZWVsQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc1Byb3BlcnR5UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiRG9kZ2VyQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcIk1ldGhvZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtY29nXCIsIGNvbG9yOiBcIlNhbmR5QnJvd25cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXNsaWRlcnNcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1xdWVzdGlvblwiLCBjb2xvcjogXCJncmV5XCIgfTtcbiAgICB9O1xuXG4gICAgY29uc3QgYnJvd3NlID0gKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQsIHRlbXBsYXRlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2Jyb3dzZWA7XG4gICAgICAgIGNvbnN0IGJyb3dzZURlc2NyaXB0aW9uID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB0ZW1wbGF0ZSksIHsgbm9kZUlkLCByZXN1bHRNYXNrOiA2MyB9KTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgYnJvd3NlRGVzY3JpcHRpb24sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoaW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlczogW10gfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZXMgPSByZXNwb25zZS5icm93c2VSZXN1bHQucmVmZXJlbmNlcyB8fCBbXTtcbiAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlcyB9O1xuICAgIH0pO1xuXG4gICAgY29uc3QgdGVtcGxhdGUxID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNDaGlsZFwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IHRlbXBsYXRlMiA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiT3JnYW5pemVzXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgaW50ZXJuYWxWZXJpZnkgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sICRpbnB1dEVsZW1lbnQsICRpbmZvKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IG5vZGVJZCA9ICRpbnB1dEVsZW1lbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaChgJHtyb290fS9jaGVja05vZGVJZGAsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgc2V0Tm90aWZpY2F0aW9uID0gKHRleHQsIGNsYXNzTmFtZSkgPT4ge1xuICAgICAgICAgICAgJGluZm8udGV4dCh0ZXh0KS5hZGRDbGFzcyhcInN0ZXJmaXZlLWluZm9cIikuYWRkQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICRpbmZvLnNob3coKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICRpbmZvLnJlbW92ZUNsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAgICAgJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgfSwgMzAwMCk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGpzb24gPSAoeWllbGQgZGF0YS5qc29uKCkpO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nO1xuICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiISFmYWlsdXJlISFcIiArIG5vZGVJZCwgXCJmYWlsdXJlXCIpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGpzb24uc3RhdHVzQ29kZS5tYXRjaCgvR29vZC8pKSB7XG4gICAgICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nXG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoanNvbi5ub2RlQWRkcmVzc1N0cmluZyk7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihcIkdvb2RcIiwgXCJva1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKGAke25vZGVJZH1gKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oYCR7anNvbi5zdGF0dXNDb2RlfSAke2RhdGEuc3RhdHVzVGV4dH1gLCBcImZhaWx1cmVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBmdW5jdGlvbiBmZXRjaENoaWxkcmVuKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUxKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDIgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTIpO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VzOiBbLi4uYnJvd3NlUmVzdWx0MS5yZWZlcmVuY2VzLCAuLi5icm93c2VSZXN1bHQyLnJlZmVyZW5jZXNdLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IHRlbXBsYXRlU1QgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc1N1YnR5cGVcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfCBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8IE5vZGVDbGFzcy5EYXRhVHlwZSB8IE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgZnVuY3Rpb24gZmV0Y2hTdWJ0eXBlcygkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlU1QpO1xuICAgICAgICAgICAgcmV0dXJuIGJyb3dzZVJlc3VsdDE7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBtYWtlRWxlbWVudCQxID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAoIXJlZmVyZW5jZSkge1xuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSBmYS1lcnJvclwiIHN0eWxlPVwiY29sb3I6cmVkO1wiPjwvaT5ubyByZWZlcmVuY2UgITx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbiA9IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgdCA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHsgaWNvbiwgY29sb3IgfSA9IGdldEljb24ocmVmZXJlbmNlKTtcbiAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+ICR7dH08dWw+PC91bD48L2xpPmApO1xuICAgICAgICAkZWxlbWVudC5hZGRDbGFzcyhcImV4cGFuZGFibGVcIik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJ2YWx1ZVwiLCBuKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgfTtcbiAgICBjb25zdCBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBbIFRlbXBlcmF0dXJlICBdXG4gICAgICAgICAqICAgKCB0b29sdGlwIDogKC9PYmplY3RzL015U2Vuc29yKSAobnM9MTtzPVRlbXBlcmF0dXJlKSlcbiAgICAgICAgICogWyArIFtGb2xkZXJdIE9iamVjdHNdXG4gICAgICAgICAqIFsgICAgIFtPYmplY3RdIE15U2Vuc29yXVxuICAgICAgICAgKiBbICAgICAoICkgW1ZhcmlhYmxlXSBUZW1wZXJhdHVyZV1cbiAgICAgICAgICovXG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUubm9kZUJyb3dzZXJcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZTogKCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgbm9kZUNsYXNzOiBcIk9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBub2RlSWQ6IFwibnM9MDtpPTg1XCIsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIHR5cGVEZWZpbml0aW9uOiBGb2xkZXJUeXBlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgICAgIGlzVHlwZVJlZjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzb2x2ZVBhcmVudE5vZGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0eXBlb2YgdGhhdC5vcHRpb25zLnBhcmVudE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geWllbGQgYTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNldCgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNvbHZlUGFyZW50Tm9kZSgpLnRoZW4oKHBhcmVudE5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudCQxKHBhcmVudE5vZGUpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuY3VycmVudFBhcmVudCA9IHBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdmVyaWZ5KCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgaW50ZXJuYWxWZXJpZnkoZGF0YSwgdGhhdC4kaW5wdXQsIHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gX2ZldGNoRGF0YUZvck5vZGUoJG5vZGUsIGZldGNoRnVuYywgZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImxvYWRpbmdcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgbG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5hcHBlbmQoJzxkaXYgY2xhc3M9XCJzcGlubmVyXCI+PC9kaXY+Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHJlZmVyZW5jZXMgfSA9IHlpZWxkIGZldGNoRnVuYygkbm9kZSwgZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCByZWZlcmVuY2Ugb2YgcmVmZXJlbmNlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmZpbHRlciAmJiAhdGhhdC5vcHRpb25zLmZpbHRlcihyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50JDEocmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoYDxsaT5lcnJvciAke2Vyci5tZXNzYWdlfTwvbGk+YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmZpbmQoXCIuc3Bpbm5lclwiKS5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLnJlbW92ZUNsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0ID0gdGhpcy5lbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvID0gJChcIjxkaXYvPlwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcInN0ZXJmaXZlLWNvbWJvLWJveFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQucmVwbGFjZVdpdGgodGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAgPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwiaW5wdXQtZ3JvdXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGlucHV0R3JvdXApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJGlucHV0KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLXNpdGVtYXBcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdG9nZ2xlVHJlZUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0bi5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRkcm9wZG93bi5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0cmVlIHdpZGdldCBpcyBnb2luZyB0byBiZWNvbWUgdmlzaWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5yZXNvbHZlUGFyZW50Tm9kZSgpLnRoZW4oKHBhcmVudE5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudE5vZGUgIT09IHRoYXQuY3VycmVudFBhcmVudCB8fCAoKF9hID0gdGhhdC5jdXJyZW50UGFyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eubm9kZUlkKSAhPT0gcGFyZW50Tm9kZS5ub2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLWZsYXNrXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHZlcmlmeUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZlcmlmeSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICghdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiLCBcImVudGVyIGEgbm9kZUlkIG9yIGEgYnJvd3NlUGF0aCBcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8gPSAkKGA8ZGl2IGNsYXNzPVwiaW5mby10ZXh0XCI+PC9kaXY+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24gPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwic3RlcmZpdmUtZHJvcGRvd25cIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUgPSAkKGA8dWwgY2xhc3M9XCJzdGVyZml2ZS10cmVlXCI+PC91bD5gKS5hcHBlbmRUbyh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVdpZHRoID0gMjA7IC8vIFNldCB3aWR0aCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVIZWlnaHQgPSAyMDsgLy8gU2V0IGhlaWdodCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50UG9zID0gJCh0aGlzKS5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5wYWdlWCA+PSBlbGVtZW50UG9zLmxlZnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVggPD0gZWxlbWVudFBvcy5sZWZ0ICsgYmVmb3JlV2lkdGggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPj0gZWxlbWVudFBvcy50b3AgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPD0gZWxlbWVudFBvcy50b3AgKyBiZWZvcmVIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZiA9ICF0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmID8gZmV0Y2hDaGlsZHJlbiA6IGZldGNoU3VidHlwZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2ZldGNoRGF0YUZvck5vZGUoJGxpLCBmLCBkYXRhKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiIEZldGNoaW5nIGRvbmVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFyayBhcyBleHBhbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvZ2dsZSBpdHMgZXhwYW5kZWQvY29sbGFwc2VkIHN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5jaGlsZHJlbihcInVsXCIpLmNoaWxkcmVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gJGxpLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9ICRsaS5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUgJiYgIXRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gYFske2Rpc3BsYXlOYW1lfV0oJHt2YWx1ZX0pYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnZhbChpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSB0aGUgcGFnZSB3aWxsIGhpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QodGhhdC4kY29tYm8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgbWFrZUVsZW1lbnQgPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBpZiAoIXJlZmVyZW5jZSkge1xuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSBmYS1lcnJvclwiIHN0eWxlPVwiY29sb3I6cmVkO1wiPjwvaT5ubyByZWZlcmVuY2UgITx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbiA9IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgbGV0IHQgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBsZXQgbnMgPSAoX2MgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLm5hbWVzcGFjZUluZGV4O1xuICAgICAgICB0ICs9IG5zICE9PSB1bmRlZmluZWQgJiYgcmVmZXJlbmNlLm5vZGVDbGFzcy5tYXRjaCgvVHlwZS8pID8gYCAobnM9JHtuc30pYCA6IFwiXCI7XG4gICAgICAgIGNvbnN0IHsgaWNvbiwgY29sb3IgfSA9IGdldEljb24ocmVmZXJlbmNlKTtcbiAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+YCk7XG4gICAgICAgIGlmIChyZWZlcmVuY2Uubm9kZUNsYXNzID09PSBcIlZhcmlhYmxlXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IGNoZWNrQm94ID0gJCgnPHNwYW4gY2xhc3M9XCJjdXN0b20tY2hlY2tib3ggdW5jaGVja2VkXCI+PC9zcGFuPicpO1xuICAgICAgICAgICAgJGVsZW1lbnQuYXBwZW5kKGNoZWNrQm94KTtcbiAgICAgICAgICAgIC8vIFRvZ2dsZSBjaGVja2JveCBzdGF0ZSB3aGVuIGNsaWNrZWRcbiAgICAgICAgICAgIGNoZWNrQm94Lm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGlmIChjaGVja0JveC5oYXNDbGFzcyhcInVuY2hlY2tlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICBjaGVja0JveC5yZW1vdmVDbGFzcyhcInVuY2hlY2tlZFwiKS5hZGRDbGFzcyhcImNoZWNrZWRcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjaGVja0JveC5yZW1vdmVDbGFzcyhcImNoZWNrZWRcIikuYWRkQ2xhc3MoXCJ1bmNoZWNrZWRcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgJGVsZW1lbnQuYXBwZW5kKCQoYDxpIGNsYXNzPVwiZmEgJHtpY29ufVwiIHN0eWxlPVwiY29sb3I6JHtjb2xvcn07XCI+PC9pPiR7dH08dWw+PC91bD5gKSk7XG4gICAgICAgICRlbGVtZW50LmFkZENsYXNzKFwiZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInZhbHVlXCIsIG4pO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICB9O1xuICAgIGNvbnN0IGRlY2xhcmVFdmVudEZpZWxkU2VsZWN0b3JXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBbIFRlbXBlcmF0dXJlICBdXG4gICAgICAgICAqICAgKCB0b29sdGlwIDogKC9PYmplY3RzL015U2Vuc29yKSAobnM9MTtzPVRlbXBlcmF0dXJlKSlcbiAgICAgICAgICogWyArIFtGb2xkZXJdIE9iamVjdHNdXG4gICAgICAgICAqIFsgICAgIFtPYmplY3RdIE15U2Vuc29yXVxuICAgICAgICAgKiBbICAgICAoICkgW1ZhcmlhYmxlXSBUZW1wZXJhdHVyZV1cbiAgICAgICAgICovXG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUuZXZlbnRGaWVsZFNlbGVjdG9yXCIsIHtcbiAgICAgICAgICAgIC8qIGRlZmF1bHQgb3B0aW9ucyAqL1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogKCkgPT4gKHsgZW5kcG9pbnQ6IFwib3BjLnRjcDovL29wY3VhZGVtby5zdGVyZml2ZS5jb206MjY1NDNcIiB9KSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludDogKCkgPT4gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX3BvcHVsYXRlKCkge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRGaWVsZCA9IG5ldyBTZXQoKF9hID0gdGhhdC4kaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIC52YWwoKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRvU3RyaW5nKCkuc3BsaXQoXCI7XCIgKSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHlpZWxkIGV4dHJhY3RFdmVudEZpZWxkSW5mbyhkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5zdGFsbFRyZWUocmVzdWx0LCBzZWxlY3RlZEZpZWxkKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfaW5zdGFsbFRyZWUocmVzdWx0LCBzZWxlY3RGaWVsZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdC5ldmVudHMpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCByb290ID0gcmVzdWx0LmV2ZW50cztcbiAgICAgICAgICAgICAgICBjb25zdCAkcm9vdEVsZW1lbnQgPSBtYWtlRWxlbWVudChyb290KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmFwcGVuZCgkcm9vdEVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHByZWZpeCA9IFwiXCI7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5zdGFsbENoaWxkcmVuKCRyb290RWxlbWVudC5jaGlsZHJlbihcInVsXCIpLCByb290LCBwcmVmaXgsIHNlbGVjdEZpZWxkKTtcbiAgICAgICAgICAgICAgICAkcm9vdEVsZW1lbnQucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlVmFsdWVzKHNlbGVjdEZpZWxkKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfaW5zdGFsbENoaWxkcmVuKCRwYXJlbnQsIHBhcmVudCwgcHJlZml4LCBzZWxlY3RlZEZpZWxkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYiA9ICh7IG5hbWUsIG5hbWVzcGFjZUluZGV4IH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWVzcGFjZUluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmFtZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYCR7bmFtZXNwYWNlSW5kZXh9OiR7bmFtZX1gO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBwYXJlbnQuY2hpbGRyZW4gfHwgW107XG4gICAgICAgICAgICAgICAgY29uc3Qgc3ViVHlwZXMgPSBwYXJlbnQuc3ViVHlwZXMgfHwgW107XG4gICAgICAgICAgICAgICAgY29uc3QgY2hpbGRyZW5BbmRTdWJUeXBlcyA9IFsuLi5jaGlsZHJlbiwgLi4uc3ViVHlwZXNdO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgY2hpbGRyZW5BbmRTdWJUeXBlcykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KGNoaWxkKTtcbiAgICAgICAgICAgICAgICAgICAgJHBhcmVudC5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgcHJlZml4MiA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZC5ub2RlQ2xhc3MgPT09IFwiVmFyaWFibGVcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZWZpeCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeDIgPSBwcmVmaXggKyBcIi5cIiArIGIoY2hpbGQuYnJvd3NlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXgyID0gYihjaGlsZC5icm93c2VOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICRlbGVtZW50LmF0dHIoXCJkYXRhLXZhbHVlXCIsIHByZWZpeDIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhc0NoaWxkcmVuID0gY2hpbGQuY2hpbGRyZW4gJiYgY2hpbGQuY2hpbGRyZW4ubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBoYXNTdWJUeXBlcyA9IGNoaWxkLnN1YlR5cGVzICYmIGNoaWxkLnN1YlR5cGVzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFoYXNDaGlsZHJlbiAmJiAhaGFzU3ViVHlwZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRlbGVtZW50LnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcIm5vLWV4cGFuZGFibGVcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbnN0YWxsQ2hpbGRyZW4oJGVsZW1lbnQuY2hpbGRyZW4oXCJ1bFwiKSwgY2hpbGQsIHByZWZpeDIsIHNlbGVjdGVkRmllbGQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJGVsZW1lbnQucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX3VwZGF0ZVNlbGVjdGVkRmllbGRzKCkge1xuICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEZpZWxkcyA9IG5ldyBTZXQoKF9hID0gdGhhdC4kaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgLnZhbCgpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudG9TdHJpbmcoKS5zcGxpdChcIjtcIiApKTtcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVWYWx1ZXMoc2VsZWN0ZWRGaWVsZHMpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF91cGRhdGVWYWx1ZXMoc2VsZWN0ZWRGaWVsZHMpIHtcbiAgICAgICAgICAgICAgICAkKFwiLnN0ZXJmaXZlLXRyZWUgbGlcIikuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICR0aGlzID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdiA9ICR0aGlzLmF0dHIoXCJkYXRhLXZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodiAmJiBzZWxlY3RlZEZpZWxkcy5oYXModikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLmNoaWxkcmVuKFwic3Bhbi5jdXN0b20tY2hlY2tib3hcIikucmVtb3ZlQ2xhc3MoXCJ1bmNoZWNrZWRcIikuYWRkQ2xhc3MoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX3NldElucHV0VmFsdWUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlzdCA9IFtdO1xuICAgICAgICAgICAgICAgIC8vIGNyYXdsIHRoZSB0cmVlIHRvIGZpbmQgc2VsZWN0ZWQgZWxlbWVudHMgYW5kIGNyZWF0ZSBhIGxpc3Qgb2YgQnJvd3NlUGF0aFxuICAgICAgICAgICAgICAgICQoXCIuc3RlcmZpdmUtdHJlZSBsaVwiKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJHRoaXMgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgZWxlbWVudCBpcyBzZWxlY3RlZFxuICAgICAgICAgICAgICAgICAgICBpZiAoJHRoaXMuY2hpbGRyZW4oXCJzcGFuLmN1c3RvbS1jaGVja2JveC5jaGVja2VkXCIpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHYgPSAkdGhpcy5hdHRyKFwiZGF0YS12YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QucHVzaCh2KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gWy4uLm5ldyBTZXQobGlzdCldLnNvcnQoKS5qb2luKFwiO1wiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC52YWwodmFsdWUpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21ibyA9ICQoXCI8ZGl2Lz5cIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJzdGVyZml2ZS1jb21iby1ib3hcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50WzBdLnBhcmVudEVsZW1lbnQucmVwbGFjZUNoaWxkKHRoYXQuJGNvbWJvWzBdLCB0aGlzLmVsZW1lbnRbMF0pO1xuICAgICAgICAgICAgICAgIC8vIHRoaXMuZWxlbWVudC5yZXBsYWNlV2l0aCh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cCA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJpbnB1dC1ncm91cFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5wdXRHcm91cCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kaW5wdXQpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtc2l0ZW1hcFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5mby50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRmbG9hdGluZ0J1dHRvbnMuc2hvdygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2Zmc2V0ID0gdGhhdC4kZHJvcGRvd24ub2Zmc2V0KCk7IC8vIEdldCB0aGUgdG9wLWxlZnQgY29ybmVyIHBvc2l0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAkZmxvYXRpbmdCdXR0b25zLmNzcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiBgJHtvZmZzZXQudG9wfXB4YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodDogYGNhbGMoMTAwJSAtICR7b2Zmc2V0LmxlZnQgKyB0aGF0LiRkcm9wZG93bi53aWR0aCgpfXB4KWAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX3BvcHVsYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll91cGRhdGVTZWxlY3RlZEZpZWxkcygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGZsb2F0aW5nQnV0dG9ucy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIiwgXCJlbnRlciBhIG5vZGVJZCBvciBhIGJyb3dzZVBhdGggXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvID0gJChgPGRpdiBjbGFzcz1cImluZm8tdGV4dFwiPjwvZGl2PmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcInN0ZXJmaXZlLWRyb3Bkb3duXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAvLyBjb25zdCAkc2Nyb2xsYWJsZUNvbnRlbnQgPSAkKCc8ZGl2IGNsYXNzPVwic3RlcmZpdmUtZHJvcGRvd24tc2Nyb2xsYWJsZS1jb250ZW50XCI+PC9kaXY+Jyk7XG4gICAgICAgICAgICAgICAgY29uc3QgJHZhbGlkYXRlQnV0dG9uID0gJCgnPHNwYW4gY2xhc3M9XCJ2YWxpZGF0ZS1idXR0b25cIj7inJQ8L3NwYW4+Jyk7IC8vIFVzZSBhbnkgaWNvbiBvciB0ZXh0IGhlcmVcbiAgICAgICAgICAgICAgICBjb25zdCAkY2FuY2VsQnV0dG9uID0gJCgnPHNwYW4gY2xhc3M9XCJjYW5jZWwtYnV0dG9uXCI+4pyWPC9zcGFuPicpOyAvLyBVc2UgYW55IGljb24gb3IgdGV4dCBoZXJlXG4gICAgICAgICAgICAgICAgY29uc3QgJGZsb2F0aW5nQnV0dG9ucyA9ICQoJzxkaXYgY2xhc3M9XCJmbG9hdGluZy1idXR0b25zXCI+PC9kaXY+JykuYXBwZW5kKCR2YWxpZGF0ZUJ1dHRvbiwgJGNhbmNlbEJ1dHRvbik7XG4gICAgICAgICAgICAgICAgJGZsb2F0aW5nQnV0dG9ucy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgLy8gRGVmaW5lIHlvdXIgdmFsaWRhdGlvbiBhbmQgY2FuY2VsbGF0aW9uIGxvZ2ljXG4gICAgICAgICAgICAgICAgJHZhbGlkYXRlQnV0dG9uLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGF0Ll9zZXRJbnB1dFZhbHVlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkY2FuY2VsQnV0dG9uLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmVtcHR5KCkuYXBwZW5kKHRoYXQuJHRyZWUsICRmbG9hdGluZ0J1dHRvbnMpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVdpZHRoID0gMjA7IC8vIFNldCB3aWR0aCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVIZWlnaHQgPSAyMDsgLy8gU2V0IGhlaWdodCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50UG9zID0gJCh0aGlzKS5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5wYWdlWCA+PSBlbGVtZW50UG9zLmxlZnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVggPD0gZWxlbWVudFBvcy5sZWZ0ICsgYmVmb3JlV2lkdGggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPj0gZWxlbWVudFBvcy50b3AgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPD0gZWxlbWVudFBvcy50b3AgKyBiZWZvcmVIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiY2xpY2tlZCBvbiBpY29uXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJjbGlja2VkIG9uIFwiLCAkbGkuZGF0YShcInZhbHVlXCIpLCAkbGkuYXR0cihcImNsYXNzXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUb2dnbGUgaXRzIGV4cGFuZGVkL2NvbGxhcHNlZCBzdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuY2hpbGRyZW4oXCJ1bFwiKS5jaGlsZHJlbigpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBjbGlja2luZyBvdXRzaWRlIHRoZSBwYWdlIHdpbGwgaGlkZSB0aGUgZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCh0aGF0LiRjb21ibykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9wb3B1bGF0ZSgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfTtcbiAgICBjb25zdCBleHRyYWN0RXZlbnRGaWVsZEluZm8gPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsLCB9KSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2V4dHJhY3RFdmVudFR5cGVzYDtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoaW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgcmV0dXJuIHsgZXZlbnRzOiBudWxsIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkIDogXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICBjb25zdCBldmVudHMgPSByZXNwb25zZS5ldmVudHM7XG4gICAgICAgIHJldHVybiB7IGV2ZW50cyB9O1xuICAgIH0pO1xuXG4gICAgY29uc3QgZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IHJlZE5vZGUgPSBSRUQubm9kZXMubm9kZShlbmRwb2ludElkKTtcbiAgICAgICAgaWYgKCFyZWROb2RlKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgLy8gY29uc3QgY3JlZGVudGlhbHMgPSBSRUQuKGVuZHBvaW50SWQpO1xuICAgICAgICAvLyB3ZSBuZWVkIHRvIHNhbml0aXplIGFuZCBleHRyYWN0IHRoZSBlbmRwb2ludCBhdHRyaWJ1dGVzIG9ubHkgKCBub3QgdGhlIG5vZGUtcmVkIHN0dWZmKVxuICAgICAgICBjb25zdCB7IGVuZHBvaW50LCBzZWN1cml0eU1vZGUsIHNlY3VyaXR5UG9saWN5LCB1c2VySWRlbnRpdHlUeXBlLCBjcmVkZW50aWFscyB9ID0gcmVkTm9kZTtcbiAgICAgICAgY29uc3QgcmV0VmFsdWUgPSB7XG4gICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzLFxuICAgICAgICB9O1xuICAgICAgICBjb25zb2xlLmxvZyhcInh4eFwiLCByZXRWYWx1ZSk7XG4gICAgICAgIHJldHVybiByZXRWYWx1ZTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IGdldEVuZHBvaW50UGFyYW1ldGVycyxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVycyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCBlbmRwb2ludE5yID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgIGlmICghZW5kcG9pbnROcikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGVuZHBvaW50SWQsXG4gICAgICAgICAgICAvLyBlbmRwb2ludDogZW5kcG9pbnROci5lbmRwb2ludCxcbiAgICAgICAgICAgIC8vIHNlY3VyaXR5TW9kZTogZW5kcG9pbnROci5zZWN1cml0eU1vZGUsXG4gICAgICAgICAgICAvLyBzZWN1cml0eVBvbGljeTogZW5kcG9pbnROci5zZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyB1c2VySWRlbnRpdHlUeXBlOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICAvLyBjcmVkZW50aWFsOiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIHVzZXJOYW1lOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlck5hbWUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAvLyBwYXNzd29yZDogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlID09PSBcIlVzZXJOYW1lXCIgPyBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnBhc3N3b3JkIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgLy8gdXNlckNlcnRpZmljYXRlOiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJDZXJ0aWZpY2F0ZSxcbiAgICAgICAgICAgIC8vIHVzZXJQcml2YXRla2V5OiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJQcml2YXRla2V5LFxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBSRUQubm9kZXMucmVnaXN0ZXJUeXBlKFwiT3BjVWEtQ2xpZW50Mi1Nb25pdG9yRXZlbnRcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJvcGN1YVwiLFxuICAgICAgICBjb2xvcjogXCIjQzBERUVEXCIsXG4gICAgICAgIGFsaWduOiBcInJpZ2h0XCIsXG4gICAgICAgIGljb246IFwib3BjdWFsb2dvYmlnLnBuZ1wiLFxuICAgICAgICBwYWxldHRlTGFiZWw6IFwibW9uaXRvciBldmVudHNcIixcbiAgICAgICAgZGVmYXVsdHM6IHtcbiAgICAgICAgICAgIGlucHV0czogeyB2YWx1ZTogMSB9LFxuICAgICAgICAgICAgb3V0cHV0OiB7IHZhbHVlOiA0IH0sXG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUsIHR5cGU6IFwiT3BjVWEtRW5kcG9pbnQyXCIgfSxcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbjoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIlwiLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHZhbGlkYXRlOiAodmFsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWwgPT09IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc3RhcnRJbW1lZGlhdGVseTogeyB2YWx1ZTogdHJ1ZSwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIC8vIHdlIHVzZSBhIGRpZmZlcmVudCB3aWRnZXQgZm9yIGVkaXRpbmcgdGhlIG5vZGVJZCwgYmVjYXVzZSB0aGUgYmVoYXZpb3JcbiAgICAgICAgICAgIC8vIGlzIHNwZWNpZmljIHRvIG1vbml0b3IsIGhvd2V2ZXIgcHJvcGVydHkgd2lsbCBiZSBzdG9yZWQgaW4gbm9kZUlkXG4gICAgICAgICAgICBub2RlSWQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiBmYWxzZSwgdmFsaWRhdGU6ICgpID0+IHRydWUgfSxcbiAgICAgICAgICAgIHNhbXBsaW5nSW50ZXJ2YWw6IHsgdmFsdWU6IDEwMDAsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBkaXNjYXJkT2xkZXN0OiB7IHZhbHVlOiB0cnVlLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgcXVldWVTaXplOiB7IHZhbHVlOiAxMCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHNlbGVjdENsYXVzZXM6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICB3aGVyZUNsYXVzZTogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgIH0sXG4gICAgICAgIC8vIGlucHV0czosXG4gICAgICAgIG91dHB1dHM6IDIsIC8vIDIgb3V0cHV0LCBzZWNvbmQgZm9yIHJhdyBub2RlLW9wY3VhIGRpYWdub3N0aWNzIG9yIG1vcmUgY29tcGxldGUgbWVzc2FnZVxuICAgICAgICBsYWJlbCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgXCJPUENVQSBNb25pdG9yXCI7XG4gICAgICAgIH0sXG4gICAgICAgIGxhYmVsU3R5bGUoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lID8gXCJub2RlX2xhYmVsX2l0YWxpY1wiIDogXCJcIjtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0cHJlcGFyZSgpIHtcbiAgICAgICAgICAgIGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCgpO1xuICAgICAgICAgICAgZGVjbGFyZUV2ZW50RmllbGRTZWxlY3RvcldpZGdldCgpO1xuICAgICAgICAgICAgaW5zdGFsbFN1YnNjcmlwdGlvblNlbGVjdG9yKFJFRCwgdGhpcyk7XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIEFjdGlvbiBNb25pdG9yIENvbW1vblxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIC0tIGluc3RhbGwgc3Vic2NyaXB0aW9uIHNlbGVjdGlvblxuICAgICAgICAgICAgJChcIm5vZGUtaW5wdXQtc3RhcnRJbW1lZGlhdGVseVwiKS5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hlY2tlZCA9ICQoXCIjbm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLnByb3AoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgICAgIGlmIChjaGVja2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1pbnB1dHNcIikudmFsKDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LWlucHV0c1wiKS52YWwoMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIEFjdGlvbiBNb25pdG9yXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgY29uc3QgJG5vZGVJZCA9ICQoXCIjbm9kZS1pbnB1dC1ub2RlSWRcIik7XG4gICAgICAgICAgICAkbm9kZUlkLm5vZGVCcm93c2VyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSwgeyBmaWx0ZXIobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJPYmplY3RcIjtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGlzU2VsZWN0YWJsZShub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiIC8qIHRvIGRvIHx8IG5vZGVEZXNjLmV2ZW50Tm90aWZpZXIgPT09IDEgKi87XG4gICAgICAgICAgICAgICAgfSB9KSk7XG4gICAgICAgICAgICAvLyAtLS0tLS0gaW5zdGFsbCBldmVudCBmaWVsZCBzZWxlY3RvclxuICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXdoZXJlQ2xhdXNlXCIpO1xuICAgICAgICAgICAgY29uc3QgJHNlbGVjdENsYXVzZXMgPSAkKFwiI25vZGUtaW5wdXQtc2VsZWN0Q2xhdXNlc1wiKTtcbiAgICAgICAgICAgICRzZWxlY3RDbGF1c2VzLmV2ZW50RmllbGRTZWxlY3RvcihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpKTtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0c2F2ZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0SW1tZWRpYXRlbHkgPSAkKFwiI25vZGUtaW5wdXQtc3RhcnRJbW1lZGlhdGVseVwiKS5wcm9wKFwiY2hlY2tlZFwiKTtcbiAgICAgICAgICAgIGlmIChzdGFydEltbWVkaWF0ZWx5KSB7XG4gICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXN0YXJ0SW1tZWRpYXRlbHlcIikudmFsKHN0YXJ0SW1tZWRpYXRlbHkgPyAwIDogMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dHMgPSBzdGFydEltbWVkaWF0ZWx5ID8gMCA6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtc3RhcnRJbW1lZGlhdGVseVwiKS52YWwoMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dHMgPSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
|
7
|
+
function _0x5c67(){const _0x4a347a=['val','grey','data','toString','\x20(ns=','subscriptions','target','width','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','node_label_italic','fetched','value','$input','function','already\x20loading','px)','ns=0;i=34','eventFieldSelector','referenceTypeId','3838360soOzCd','SuppressedError','135695VugVsu','verify','Inverse','span.custom-checkbox.checked','<div\x20class=\x22spinner\x22></div>','ReferenceType','sterfive.nodeBrowser','browseName','fetched\x20:\x20','message','fa-cog','ns=0;i=61','Objects','css','ObjectType','class','sort','Invalid','endpoint','split','placeholder','4622EInovE','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','<li>error\x20','currentParent','failure','expanded','catch','ns=0;i=85','click','options','fa-question','closest','length','find','change','Good','nodeAddressString','top','i=61','POST','$combo','has','application/json','json','remove','<div\x20class=\x22info-text\x22></div>','\x22\x20style=\x22color:','events','stringify','pageY','7geQsHQ','hasClass','name','expandable','<div/>','element','sterfive-dropdown','subscription','#node-input-whereClause','<ul\x20class=\x22sterfive-tree\x22></ul>','View','42341qoCIhG','offset','loading','sterfive.eventFieldSelector','CadetBlue','30tjFYfa','opcua','nodeId','#node-input-startImmediately','status','next','hide','match','toggle','IsForward','fa-text-width','reference','inputs','fetching\x20failed\x20with\x20error','253pxZvsz','checked','prop','left','data-value','!!failure!!','Unspecified','show','HasComponent','#node-input-endpoint','statusCode','nodeBrowser','BrowseName','#node-input-subscription','sterfive-combo-box','$tree','err','expandable\x20expanded','widget','node-input-startImmediately','</li>','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','then','namespaceIndex','.sterfive-tree\x20li','filter','$info','log','3753145sAFsrS','replaceWith','replaceChild','pageX','OpcUa-Client2-MonitorEvent','DodgerBlue','$dropdown','subTypes','4028RxDVPV','HasChild','reset','clicked\x20on\x20icon','children','appendTo','opc.tcp://opcuademo.sterfive.com:26543','node','/checkNodeId',';\x22></i>\x20','SteelBlue','text','registerType','\x20Fetching\x20done',':visible','suppressed','nodeClass','calc(100%\x20-\x20','fa-folder','each','removeClass','fa-list-alt','endpointNode','addClass','$toggleTreeBtn','Forward','stopPropagation','displayName','_installChildren','/opcua-endpoint2','Variable','Method','<option/>','rgba(61,\x2060,\x204,\x200.525)',';\x22></i>','trigger','ns=0;i=40','parentNode','15108iOFPGi','monitor\x20events','_updateSelectedFields','HasProperty','<span\x20class=\x22custom-checkbox\x20unchecked\x22></span>','<ul></ul></li>','unchecked','already\x20fetched','Organizes','baseUrl','_updateValues','18QITOtC','DisplayName','fa-object-group','#node-input-inputs','Object','3240aYkIcE','$inputGroup','#node-input-selectClauses','no-expandable','sterfive-info','error','append','#node-input-nodeId','join','SeaGreen','assign','DarkOrange','DataType','statusText','resolveParentNode','ns=0;i=35','ns=0;i=46','HasSubtype','<li><i\x20class=\x22fa\x20','toggleClass','_populate','done','Both','1968354loTlxt','empty','references','.spinner','<div\x20class=\x22floating-buttons\x22></div>','input-group','attr','/extractEventTypes','NodeClass','isSelectable','nodes','push','SandyBrown','VariableType','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20'];_0x5c67=function(){return _0x4a347a;};return _0x5c67();}function _0x37a8(_0x51c6a8,_0x25055c){const _0x5c67b0=_0x5c67();return _0x37a8=function(_0x37a81a,_0xb60b53){_0x37a81a=_0x37a81a-0x14d;let _0x5d81e4=_0x5c67b0[_0x37a81a];return _0x5d81e4;},_0x37a8(_0x51c6a8,_0x25055c);}(function(_0x52291b,_0x2813ac){const _0x17baa4=_0x37a8,_0x337181=_0x52291b();while(!![]){try{const _0x1a1a6a=parseInt(_0x17baa4(0x1a3))/0x1*(-parseInt(_0x17baa4(0x167))/0x2)+-parseInt(_0x17baa4(0x1fd))/0x3*(parseInt(_0x17baa4(0x1c7))/0x4)+-parseInt(_0x17baa4(0x152))/0x5*(parseInt(_0x17baa4(0x1f8))/0x6)+-parseInt(_0x17baa4(0x185))/0x7*(parseInt(_0x17baa4(0x150))/0x8)+-parseInt(_0x17baa4(0x214))/0x9+-parseInt(_0x17baa4(0x195))/0xa*(parseInt(_0x17baa4(0x1bf))/0xb)+-parseInt(_0x17baa4(0x1ed))/0xc*(-parseInt(_0x17baa4(0x190))/0xd);if(_0x1a1a6a===_0x2813ac)break;else _0x337181['push'](_0x337181['shift']());}catch(_0x13ea8a){_0x337181['push'](_0x337181['shift']());}}}(_0x5c67,0x988b1),(function(){'use strict';const _0xfa19ee=_0x37a8;function _0x2c31e3(_0x35d25b,_0x20be35){const _0x19db2c=_0x37a8,_0x4184f2=$(_0x19db2c(0x1ac)),_0x9b8d68=$(_0x19db2c(0x1b0)),_0x152f6a=()=>{const _0x456fef=_0x19db2c,_0x2c93f6=_0x35d25b[_0x456fef(0x21e)][_0x456fef(0x1ce)](_0x4184f2[_0x456fef(0x223)]());_0x9b8d68[_0x456fef(0x215)]();if(!_0x2c93f6||!_0x2c93f6[_0x456fef(0x228)])return;if(_0x2c93f6[_0x456fef(0x228)])for(const _0x52e00f of _0x2c93f6[_0x456fef(0x228)]){const _0x46ca9a=_0x52e00f[_0x456fef(0x187)]||_0x52e00f['id'];$(_0x456fef(0x1e7),{'value':_0x52e00f['id'],'label':_0x46ca9a,'selected':_0x52e00f['id']===_0x20be35[_0x456fef(0x18c)]})[_0x456fef(0x1d2)](_0x46ca9a)[_0x456fef(0x1cc)](_0x9b8d68);}};_0x152f6a(),_0x9b8d68['on']('focus\x20click',()=>{_0x152f6a();}),_0x4184f2['on'](_0x19db2c(0x175),()=>{_0x152f6a();});}function _0x124454(_0x59a5bc,_0x1cb445,_0x132adb,_0xc2e25a){function _0x23d231(_0x15d383){return _0x15d383 instanceof _0x132adb?_0x15d383:new _0x132adb(function(_0x5cc924){_0x5cc924(_0x15d383);});}return new(_0x132adb||(_0x132adb=Promise))(function(_0x59552b,_0x19c487){function _0x9e463c(_0x243c2d){const _0x2a5118=_0x37a8;try{_0xd995b0(_0xc2e25a[_0x2a5118(0x19a)](_0x243c2d));}catch(_0x1c51e7){_0x19c487(_0x1c51e7);}}function _0x483c08(_0x461394){try{_0xd995b0(_0xc2e25a['throw'](_0x461394));}catch(_0x22e735){_0x19c487(_0x22e735);}}function _0xd995b0(_0x464e27){const _0x544b08=_0x37a8;_0x464e27[_0x544b08(0x212)]?_0x59552b(_0x464e27['value']):_0x23d231(_0x464e27['value'])[_0x544b08(0x1b9)](_0x9e463c,_0x483c08);}_0xd995b0((_0xc2e25a=_0xc2e25a['apply'](_0x59a5bc,_0x1cb445||[]))['next']());});}typeof SuppressedError===_0xfa19ee(0x230)?SuppressedError:function(_0x1eef3f,_0x227770,_0x163cc5){const _0x13ac7e=_0xfa19ee;var _0x4e2d5e=new Error(_0x163cc5);return _0x4e2d5e[_0x13ac7e(0x187)]=_0x13ac7e(0x151),_0x4e2d5e['error']=_0x1eef3f,_0x4e2d5e[_0x13ac7e(0x1d6)]=_0x227770,_0x4e2d5e;};const _0x106683=_0xfa19ee(0x20c),_0x55f0ed=_0xfa19ee(0x15d),_0x3212ea='ns=0;i=47',_0x3321fd=_0xfa19ee(0x20d),_0xb539f8=_0xfa19ee(0x14d),_0x1d4ad7='ns=0;i=45',_0x213c0e=_0xfa19ee(0x1eb);var _0x550052;(function(_0x50f30b){const _0x5833fd=_0xfa19ee;_0x50f30b[_0x50f30b[_0x5833fd(0x1e0)]=0x0]='Forward',_0x50f30b[_0x50f30b['Inverse']=0x1]=_0x5833fd(0x154),_0x50f30b[_0x50f30b['Both']=0x2]=_0x5833fd(0x213),_0x50f30b[_0x50f30b[_0x5833fd(0x163)]=0x3]=_0x5833fd(0x163);}(_0x550052||(_0x550052={})));var _0x38b692;(function(_0x54a507){const _0x551a2a=_0xfa19ee;_0x54a507[_0x54a507[_0x551a2a(0x1a9)]=0x0]=_0x551a2a(0x1a9),_0x54a507[_0x54a507[_0x551a2a(0x1fc)]=0x1]='Object',_0x54a507[_0x54a507[_0x551a2a(0x1e5)]=0x2]=_0x551a2a(0x1e5),_0x54a507[_0x54a507['Method']=0x4]=_0x551a2a(0x1e6),_0x54a507[_0x54a507['ObjectType']=0x8]=_0x551a2a(0x160),_0x54a507[_0x54a507[_0x551a2a(0x221)]=0x10]=_0x551a2a(0x221),_0x54a507[_0x54a507['ReferenceType']=0x20]=_0x551a2a(0x157),_0x54a507[_0x54a507[_0x551a2a(0x209)]=0x40]=_0x551a2a(0x209),_0x54a507[_0x54a507[_0x551a2a(0x18f)]=0x80]='View';}(_0x38b692||(_0x38b692={})));var _0x2fbe7e;(function(_0x3cecc2){const _0x37e60d=_0xfa19ee;_0x3cecc2[_0x3cecc2[_0x37e60d(0x1fc)]=0x1]='Object',_0x3cecc2[_0x3cecc2['Variable']=0x2]='Variable',_0x3cecc2[_0x3cecc2[_0x37e60d(0x1e6)]=0x4]='Method',_0x3cecc2[_0x3cecc2['ObjectType']=0x8]=_0x37e60d(0x160),_0x3cecc2[_0x3cecc2[_0x37e60d(0x221)]=0x10]='VariableType',_0x3cecc2[_0x3cecc2['ReferenceType']=0x20]='ReferenceType',_0x3cecc2[_0x3cecc2[_0x37e60d(0x209)]=0x40]=_0x37e60d(0x209),_0x3cecc2[_0x3cecc2['View']=0x80]=_0x37e60d(0x18f);}(_0x2fbe7e||(_0x2fbe7e={})));var _0x564723;(function(_0x3c77be){const _0x32e515=_0xfa19ee;_0x3c77be[_0x3c77be[_0x32e515(0x157)]=0x1]=_0x32e515(0x157),_0x3c77be[_0x3c77be[_0x32e515(0x19e)]=0x2]=_0x32e515(0x19e),_0x3c77be[_0x3c77be[_0x32e515(0x21c)]=0x4]=_0x32e515(0x21c),_0x3c77be[_0x3c77be[_0x32e515(0x1af)]=0x8]='BrowseName',_0x3c77be[_0x3c77be[_0x32e515(0x1f9)]=0x10]=_0x32e515(0x1f9),_0x3c77be[_0x3c77be['TypeDefinition']=0x20]='TypeDefinition';}(_0x564723||(_0x564723={})));function _0x222166(_0x34746c){const _0x4fc1d7=_0xfa19ee;switch(_0x34746c){case _0x4fc1d7(0x1f5):return _0x106683;case _0x4fc1d7(0x1f0):return _0x3321fd;case _0x4fc1d7(0x1ab):return _0x3212ea;case _0x4fc1d7(0x1c8):return _0xb539f8;case _0x4fc1d7(0x20e):return _0x1d4ad7;case'HasTypeDefinition':return _0x213c0e;}}const _0x4a2d79=_0x4b4928=>{const _0x3705e3=_0xfa19ee;switch(_0x4b4928['nodeClass']){case'Object':if(_0x4b4928['referenceTypeId']===_0x106683);if(_0x4b4928['typeDefinition']===_0x55f0ed||_0x4b4928[_0x3705e3(0x14f)]===_0x3705e3(0x179))return{'icon':_0x3705e3(0x1d9),'color':_0x3705e3(0x1e8)};return{'icon':_0x3705e3(0x1fa),'color':_0x3705e3(0x206)};case _0x3705e3(0x1e5):if(_0x4b4928[_0x3705e3(0x14f)]===_0x3212ea)return{'icon':'fa-list-alt','color':_0x3705e3(0x1d1)};else return _0x4b4928[_0x3705e3(0x14f)]===_0x3321fd?{'icon':'fa-list-alt','color':_0x3705e3(0x1c4)}:{'icon':_0x3705e3(0x1dc),'color':_0x3705e3(0x194)};case'Method':return{'icon':_0x3705e3(0x15c),'color':_0x3705e3(0x220)};case'ObjectType':return{'icon':_0x3705e3(0x1fa),'color':_0x3705e3(0x208)};case _0x3705e3(0x221):return{'icon':'fa-sliders','color':'DarkOrange'};case _0x3705e3(0x209):return{'icon':_0x3705e3(0x19f),'color':'CadetBlue'};}return{'icon':_0x3705e3(0x171),'color':_0x3705e3(0x224)};},_0xd1ee1c=({endpointNode:_0x59b37f,endpoint:_0x57bc8a,baseUrl:_0x142774},_0x2ea477,_0x17511c)=>_0x124454(void 0x0,void 0x0,void 0x0,function*(){const _0x234440=_0xfa19ee,_0x49e1a5=_0x142774+'/opcua-endpoint2',_0x3174ac=_0x49e1a5+'/browse',_0x1c5319=Object['assign'](Object[_0x234440(0x207)]({},_0x17511c),{'nodeId':_0x2ea477,'resultMask':0x3f}),_0x590908=yield fetch(_0x3174ac,{'method':_0x234440(0x17a),'body':JSON[_0x234440(0x183)]({'endpointNode':_0x59b37f,'endpoint':_0x57bc8a,'browseDescription':_0x1c5319}),'headers':{'Content-Type':_0x234440(0x17d)}});if(_0x590908['status']!==0xc8)return console['log'](_0x234440(0x1a2),_0x590908[_0x234440(0x199)],_0x590908[_0x234440(0x20a)]),{'references':[]};console[_0x234440(0x1be)](_0x234440(0x15a),_0x590908['status'],_0x590908[_0x234440(0x20a)]);const _0x4ed6f0=yield _0x590908[_0x234440(0x17e)](),_0x390841=_0x4ed6f0['browseResult']['references']||[];return{'references':_0x390841};}),_0x48eb42={'referenceTypeId':_0x222166(_0xfa19ee(0x1c8)),'includeSubtypes':!![],'browseDirection':_0x550052[_0xfa19ee(0x1e0)],'nodeClassMask':_0x38b692[_0xfa19ee(0x1e5)]|_0x38b692[_0xfa19ee(0x1fc)]|_0x38b692[_0xfa19ee(0x1e6)],'resultMask':0x3f},_0x5a6c78={'referenceTypeId':_0x222166(_0xfa19ee(0x1f5)),'includeSubtypes':!![],'browseDirection':_0x550052[_0xfa19ee(0x1e0)],'nodeClassMask':_0x38b692[_0xfa19ee(0x1e5)]|_0x38b692[_0xfa19ee(0x1fc)]|_0x38b692[_0xfa19ee(0x1e6)],'resultMask':0x3f},_0x5c1655=({endpointNode:_0x58b97b,endpoint:_0xf8114f,baseUrl:_0x26f9fe},_0xb26b0b,_0x3ed5ec)=>_0x124454(void 0x0,void 0x0,void 0x0,function*(){const _0x7a1c9e=_0xfa19ee,_0x296c55=_0x26f9fe+_0x7a1c9e(0x1e4),_0x4f0886=_0xb26b0b[_0x7a1c9e(0x223)](),_0x15b63d=yield fetch(_0x296c55+_0x7a1c9e(0x1cf),{'method':_0x7a1c9e(0x17a),'body':JSON[_0x7a1c9e(0x183)]({'endpointNode':_0x58b97b,'endpoint':_0xf8114f,'nodeId':_0x4f0886}),'headers':{'Content-Type':_0x7a1c9e(0x17d)}}),_0x46d23f=(_0x133f90,_0x28ec24)=>{const _0xa106a7=_0x7a1c9e;_0x3ed5ec[_0xa106a7(0x1d2)](_0x133f90)['addClass'](_0xa106a7(0x201))[_0xa106a7(0x1de)](_0x28ec24),_0x3ed5ec[_0xa106a7(0x1aa)](),setTimeout(()=>{_0x3ed5ec['removeClass'](_0x28ec24),_0x3ed5ec['hide']();},0xbb8);},_0x17ffb1=yield _0x15b63d[_0x7a1c9e(0x17e)]();_0x15b63d[_0x7a1c9e(0x199)]!==0xc8?_0x46d23f(_0x7a1c9e(0x1a8)+_0x4f0886,'failure'):_0x17ffb1[_0x7a1c9e(0x1ad)]['match'](/Good/)?(_0xb26b0b['val'](_0x17ffb1[_0x7a1c9e(0x177)]),_0xb26b0b[_0x7a1c9e(0x1ea)](_0x7a1c9e(0x175)),_0x46d23f(_0x7a1c9e(0x176),'ok')):(_0xb26b0b[_0x7a1c9e(0x223)](''+_0x4f0886),_0x46d23f(_0x17ffb1[_0x7a1c9e(0x1ad)]+'\x20'+_0x15b63d[_0x7a1c9e(0x20a)],_0x7a1c9e(0x16b)));});function _0x54f297(_0x541a90,_0x1c17fc){return _0x124454(this,void 0x0,void 0x0,function*(){const _0x3df373=_0x37a8,_0x562687=_0x541a90['data'](_0x3df373(0x22e)),_0x1d54fd=yield _0xd1ee1c(_0x1c17fc,_0x562687,_0x48eb42),_0x3e01c3=yield _0xd1ee1c(_0x1c17fc,_0x562687,_0x5a6c78);return{'references':[..._0x1d54fd[_0x3df373(0x216)],..._0x3e01c3[_0x3df373(0x216)]]};});}const _0x5a7e5d={'referenceTypeId':_0x222166('HasSubtype'),'includeSubtypes':!![],'browseDirection':_0x550052[_0xfa19ee(0x1e0)],'nodeClassMask':_0x38b692[_0xfa19ee(0x157)]|_0x38b692[_0xfa19ee(0x160)]|_0x38b692[_0xfa19ee(0x209)]|_0x38b692['VariableType'],'resultMask':0x3f};function _0x35fd95(_0xdc42ce,_0x559d6b){return _0x124454(this,void 0x0,void 0x0,function*(){const _0x276ff2=_0x37a8,_0x3f18b9=_0xdc42ce['data'](_0x276ff2(0x22e)),_0x1bedaa=yield _0xd1ee1c(_0x559d6b,_0x3f18b9,_0x5a7e5d);return _0x1bedaa;});}const _0x307695=_0x3d438a=>{const _0x19a58f=_0xfa19ee;var _0x46085c,_0x2772da;if(!_0x3d438a){const _0x13451d=$(_0x19a58f(0x168));return _0x13451d;}const _0x3077e5=_0x3d438a[_0x19a58f(0x197)][_0x19a58f(0x226)](),_0x3ec149=((_0x46085c=_0x3d438a[_0x19a58f(0x1e2)])===null||_0x46085c===void 0x0?void 0x0:_0x46085c[_0x19a58f(0x1d2)])||((_0x2772da=_0x3d438a[_0x19a58f(0x159)])===null||_0x2772da===void 0x0?void 0x0:_0x2772da['name'])||_0x3d438a[_0x19a58f(0x197)][_0x19a58f(0x226)](),{icon:_0x81405e,color:_0x22b5ea}=_0x4a2d79(_0x3d438a),_0x500df4=$(_0x19a58f(0x20f)+_0x81405e+_0x19a58f(0x181)+_0x22b5ea+_0x19a58f(0x1d0)+_0x3ec149+_0x19a58f(0x1f2));return _0x500df4['addClass'](_0x19a58f(0x188)),_0x500df4['data']('value',_0x3077e5),_0x500df4['data'](_0x19a58f(0x1a0),_0x3d438a),_0x500df4;},_0x42c0c8=()=>{const _0x2f409b=_0xfa19ee;$[_0x2f409b(0x1b5)](_0x2f409b(0x158),{'options':{'endpointNode':()=>({'endpoint':_0x2f409b(0x1cd)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x2f409b(0x15e)},'nodeClass':'Object','nodeId':_0x2f409b(0x16e),'displayName':{'text':_0x2f409b(0x15e)},'typeDefinition':_0x55f0ed}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x124454(this,void 0x0,void 0x0,function*(){const _0x1e2bff=_0x37a8,_0x427045=this,_0x228761=typeof _0x427045[_0x1e2bff(0x170)]['parentNode']===_0x1e2bff(0x230)?_0x427045['options'][_0x1e2bff(0x1ec)]():_0x427045['options'][_0x1e2bff(0x1ec)];if(_0x228761 instanceof Promise)return yield _0x228761;return _0x228761;});},'reset'(){const _0xab89ab=_0x2f409b,_0x3c5083=this;_0x3c5083[_0xab89ab(0x1b2)][_0xab89ab(0x215)](),this[_0xab89ab(0x20b)]()['then'](_0x125765=>{const _0x2b91f7=_0xab89ab,_0x32470e=_0x307695(_0x125765);_0x3c5083[_0x2b91f7(0x1b2)][_0x2b91f7(0x203)](_0x32470e),_0x3c5083[_0x2b91f7(0x16a)]=_0x125765;});},'verify'(){const _0x44ae44=_0x2f409b,_0x28e319=this,_0x2fdca6={'baseUrl':_0x28e319['options']['baseUrl'],'endpointNode':typeof _0x28e319[_0x44ae44(0x170)][_0x44ae44(0x1dd)]===_0x44ae44(0x230)?_0x28e319[_0x44ae44(0x170)][_0x44ae44(0x1dd)]():_0x28e319['options'][_0x44ae44(0x1dd)],'endpoint':typeof _0x28e319['options']['endpoint']===_0x44ae44(0x230)?_0x28e319[_0x44ae44(0x170)][_0x44ae44(0x164)]():_0x28e319['options'][_0x44ae44(0x164)]};_0x5c1655(_0x2fdca6,_0x28e319[_0x44ae44(0x22f)],_0x28e319[_0x44ae44(0x1bd)]);},'_create'(){const _0x470b1c=_0x2f409b,_0x94c6b8=this;function _0x3e716d(_0xb23772,_0x98d2ab,_0x4773a7){return _0x124454(this,void 0x0,void 0x0,function*(){const _0x3d298c=_0x37a8;if(_0xb23772[_0x3d298c(0x186)](_0x3d298c(0x22d))){console[_0x3d298c(0x1be)](_0x3d298c(0x1f4));return;}if(_0xb23772[_0x3d298c(0x186)](_0x3d298c(0x192))){console['log'](_0x3d298c(0x231));return;}_0xb23772[_0x3d298c(0x1de)](_0x3d298c(0x192)),_0xb23772[_0x3d298c(0x203)](_0x3d298c(0x156));try{_0xb23772['children']('ul')[_0x3d298c(0x215)]();const {references:_0x32af3c}=yield _0x98d2ab(_0xb23772,_0x4773a7);for(const _0x50621c of _0x32af3c){if(_0x94c6b8[_0x3d298c(0x170)][_0x3d298c(0x1bc)]&&!_0x94c6b8[_0x3d298c(0x170)]['filter'](_0x50621c))continue;const _0x3c701e=_0x307695(_0x50621c);_0xb23772[_0x3d298c(0x1cb)]('ul')[_0x3d298c(0x203)](_0x3c701e);}_0xb23772['addClass']('fetched');}catch(_0x5ba0b4){_0xb23772[_0x3d298c(0x1cb)]('ul')[_0x3d298c(0x203)](_0x3d298c(0x169)+_0x5ba0b4[_0x3d298c(0x15b)]+_0x3d298c(0x1b7)),console['log'](_0x3d298c(0x1b3),_0x5ba0b4);}_0xb23772[_0x3d298c(0x174)](_0x3d298c(0x217))[_0x3d298c(0x17f)](),_0xb23772[_0x3d298c(0x1db)](_0x3d298c(0x192));});}_0x94c6b8[_0x470b1c(0x22f)]=this['element'],_0x94c6b8[_0x470b1c(0x17b)]=$(_0x470b1c(0x189)),_0x94c6b8['$combo'][_0x470b1c(0x1de)](_0x470b1c(0x1b1)),this[_0x470b1c(0x18a)][_0x470b1c(0x1c0)](_0x94c6b8['$combo']),_0x94c6b8[_0x470b1c(0x1fe)]=$(_0x470b1c(0x189))[_0x470b1c(0x1de)](_0x470b1c(0x219)),_0x94c6b8[_0x470b1c(0x17b)][_0x470b1c(0x203)](_0x94c6b8[_0x470b1c(0x1fe)]),_0x94c6b8[_0x470b1c(0x1fe)][_0x470b1c(0x203)](_0x94c6b8['$input']),_0x94c6b8[_0x470b1c(0x1df)]=$(_0x470b1c(0x1b8)),_0x94c6b8[_0x470b1c(0x1fe)]['append'](_0x94c6b8[_0x470b1c(0x1df)]),_0x94c6b8[_0x470b1c(0x1df)]['on'](_0x470b1c(0x16f),function(){const _0x303690=_0x470b1c;!_0x94c6b8['$dropdown']['is'](_0x303690(0x1d5))&&(_0x94c6b8[_0x303690(0x20b)]()[_0x303690(0x1b9)](_0x2db460=>{const _0x2977e6=_0x303690;var _0x256de5;(_0x2db460!==_0x94c6b8['currentParent']||((_0x256de5=_0x94c6b8[_0x2977e6(0x16a)])===null||_0x256de5===void 0x0?void 0x0:_0x256de5[_0x2977e6(0x197)])!==_0x2db460['nodeId'])&&_0x94c6b8[_0x2977e6(0x1c9)]();}),_0x94c6b8[_0x303690(0x1bd)][_0x303690(0x19b)]()),_0x94c6b8[_0x303690(0x1c5)][_0x303690(0x19d)]();}),_0x94c6b8['$verifyBtn']=$(_0x470b1c(0x22b)),_0x94c6b8[_0x470b1c(0x1fe)][_0x470b1c(0x203)](_0x94c6b8['$verifyBtn']),_0x94c6b8['$verifyBtn']['on'](_0x470b1c(0x16f),()=>{const _0x45b781=_0x470b1c;this[_0x45b781(0x153)]();}),!_0x94c6b8[_0x470b1c(0x22f)][_0x470b1c(0x21a)]('placeholder')&&_0x94c6b8[_0x470b1c(0x22f)][_0x470b1c(0x21a)](_0x470b1c(0x166),_0x470b1c(0x222)),_0x94c6b8['$info']=$(_0x470b1c(0x180)),_0x94c6b8[_0x470b1c(0x1bd)][_0x470b1c(0x19b)](),{'baseUrl':_0x94c6b8[_0x470b1c(0x170)][_0x470b1c(0x1f6)],'endpointNode':typeof _0x94c6b8['options']['endpointNode']==='function'?_0x94c6b8[_0x470b1c(0x170)]['endpointNode']():_0x94c6b8['options']['endpointNode'],'endpoint':typeof _0x94c6b8['options']['endpoint']===_0x470b1c(0x230)?_0x94c6b8[_0x470b1c(0x170)][_0x470b1c(0x164)]():_0x94c6b8[_0x470b1c(0x170)][_0x470b1c(0x164)]},_0x94c6b8['$dropdown']=$('<div/>')[_0x470b1c(0x1de)](_0x470b1c(0x18b))[_0x470b1c(0x19b)](),_0x94c6b8[_0x470b1c(0x17b)][_0x470b1c(0x203)](_0x94c6b8[_0x470b1c(0x1bd)]),_0x94c6b8[_0x470b1c(0x17b)][_0x470b1c(0x203)](_0x94c6b8[_0x470b1c(0x1c5)]),_0x94c6b8[_0x470b1c(0x1b2)]=$(_0x470b1c(0x18e))['appendTo'](_0x94c6b8[_0x470b1c(0x1c5)]),this[_0x470b1c(0x1c9)](),_0x94c6b8['$tree']['on'](_0x470b1c(0x16f),'li',function(_0x1c64c5){const _0x2e76c4=_0x470b1c;var _0x19c98a,_0x22c780;_0x1c64c5[_0x2e76c4(0x1e1)]();let _0x103735=$(this);const _0x1fe489=0x14,_0x21672b=0x14,_0x20d781=$(this)[_0x2e76c4(0x191)](),_0x5e1ab1=_0x1c64c5;if(_0x5e1ab1[_0x2e76c4(0x1c2)]>=_0x20d781[_0x2e76c4(0x1a6)]&&_0x5e1ab1[_0x2e76c4(0x1c2)]<=_0x20d781[_0x2e76c4(0x1a6)]+_0x1fe489&&_0x5e1ab1[_0x2e76c4(0x184)]>=_0x20d781[_0x2e76c4(0x178)]&&_0x5e1ab1[_0x2e76c4(0x184)]<=_0x20d781['top']+_0x21672b){if(_0x103735[_0x2e76c4(0x186)](_0x2e76c4(0x188))){if(_0x103735[_0x2e76c4(0x186)]('fetched')){_0x103735[_0x2e76c4(0x1db)](_0x2e76c4(0x188))[_0x2e76c4(0x1de)](_0x2e76c4(0x16c)),_0x103735[_0x2e76c4(0x1cb)]('ul')['toggle']();return;}const _0x482aae={'baseUrl':_0x94c6b8[_0x2e76c4(0x170)][_0x2e76c4(0x1f6)],'endpointNode':typeof _0x94c6b8[_0x2e76c4(0x170)][_0x2e76c4(0x1dd)]===_0x2e76c4(0x230)?_0x94c6b8['options'][_0x2e76c4(0x1dd)]():_0x94c6b8[_0x2e76c4(0x170)][_0x2e76c4(0x1dd)],'endpoint':typeof _0x94c6b8['options'][_0x2e76c4(0x164)]===_0x2e76c4(0x230)?_0x94c6b8[_0x2e76c4(0x170)][_0x2e76c4(0x164)]():_0x94c6b8[_0x2e76c4(0x170)][_0x2e76c4(0x164)]},_0x1269e4=!_0x94c6b8[_0x2e76c4(0x170)]['isTypeRef']?_0x54f297:_0x35fd95;_0x3e716d(_0x103735,_0x1269e4,_0x482aae)[_0x2e76c4(0x1b9)](()=>{const _0x48289f=_0x2e76c4;console['log'](_0x48289f(0x1d4)),console[_0x48289f(0x1be)](_0x48289f(0x22d)),_0x103735[_0x48289f(0x1db)]('expandable')[_0x48289f(0x1de)]('expanded');})[_0x2e76c4(0x16d)](_0x4e6cad=>{const _0x2ccaf9=_0x2e76c4;_0x103735[_0x2ccaf9(0x1db)](_0x2ccaf9(0x188))[_0x2ccaf9(0x1de)](_0x2ccaf9(0x16c)),console[_0x2ccaf9(0x1be)](_0x2ccaf9(0x202),_0x4e6cad);});}else{if(_0x103735[_0x2e76c4(0x186)](_0x2e76c4(0x16c)))_0x103735[_0x2e76c4(0x1cb)]('ul')[_0x2e76c4(0x19d)](),_0x103735[_0x2e76c4(0x210)]('expandable\x20expanded');else{if(_0x103735[_0x2e76c4(0x1cb)]('ul')[_0x2e76c4(0x1cb)]()[_0x2e76c4(0x173)]>0x0)_0x103735['children']('ul')[_0x2e76c4(0x19d)](),_0x103735[_0x2e76c4(0x210)](_0x2e76c4(0x1b4));else;}}}else{const _0x61560d=_0x103735[_0x2e76c4(0x225)](_0x2e76c4(0x22e)),_0x6d977f=_0x103735[_0x2e76c4(0x225)]('reference');if(_0x94c6b8[_0x2e76c4(0x170)]['isSelectable']&&!_0x94c6b8[_0x2e76c4(0x170)][_0x2e76c4(0x21d)](_0x6d977f))return;_0x94c6b8['$input'][_0x2e76c4(0x225)](_0x2e76c4(0x1a0),_0x6d977f);const _0x2b6493=((_0x19c98a=_0x6d977f[_0x2e76c4(0x1e2)])===null||_0x19c98a===void 0x0?void 0x0:_0x19c98a[_0x2e76c4(0x1d2)])||((_0x22c780=_0x6d977f[_0x2e76c4(0x159)])===null||_0x22c780===void 0x0?void 0x0:_0x22c780['name'])||_0x6d977f[_0x2e76c4(0x197)][_0x2e76c4(0x226)](),_0x39f17e='['+_0x2b6493+']('+_0x61560d+')';_0x94c6b8[_0x2e76c4(0x22f)][_0x2e76c4(0x223)](_0x39f17e),_0x94c6b8['$input'][_0x2e76c4(0x1ea)](_0x2e76c4(0x175)),_0x94c6b8[_0x2e76c4(0x1c5)][_0x2e76c4(0x19b)]();}}),$(document)['on']('click',function(_0x279a1e){const _0x190d18=_0x470b1c;!$(_0x279a1e[_0x190d18(0x229)])['closest'](_0x94c6b8[_0x190d18(0x17b)])[_0x190d18(0x173)]&&_0x94c6b8[_0x190d18(0x1c5)]['hide']();});}});},_0x1e80b8=_0x457e32=>{const _0x2a7ed0=_0xfa19ee;var _0x554e68,_0x510ebd,_0x473490;if(!_0x457e32){const _0x1275a5=$(_0x2a7ed0(0x168));return _0x1275a5;}const _0x452981=_0x457e32[_0x2a7ed0(0x197)][_0x2a7ed0(0x226)]();let _0x5a451b=((_0x554e68=_0x457e32[_0x2a7ed0(0x1e2)])===null||_0x554e68===void 0x0?void 0x0:_0x554e68[_0x2a7ed0(0x1d2)])||((_0x510ebd=_0x457e32['browseName'])===null||_0x510ebd===void 0x0?void 0x0:_0x510ebd[_0x2a7ed0(0x187)])||_0x457e32[_0x2a7ed0(0x197)][_0x2a7ed0(0x226)](),_0x2c28bb=(_0x473490=_0x457e32[_0x2a7ed0(0x159)])===null||_0x473490===void 0x0?void 0x0:_0x473490[_0x2a7ed0(0x1ba)];_0x5a451b+=_0x2c28bb!==undefined&&_0x457e32[_0x2a7ed0(0x1d7)][_0x2a7ed0(0x19c)](/Type/)?_0x2a7ed0(0x227)+_0x2c28bb+')':'';const {icon:_0x33b642,color:_0x3c0a85}=_0x4a2d79(_0x457e32),_0x4ca6d2=$('<li>');if(_0x457e32[_0x2a7ed0(0x1d7)]===_0x2a7ed0(0x1e5)){const _0x2d49a4=$(_0x2a7ed0(0x1f1));_0x4ca6d2[_0x2a7ed0(0x203)](_0x2d49a4),_0x2d49a4['on']('click',function(){const _0x148b43=_0x2a7ed0;_0x2d49a4['hasClass'](_0x148b43(0x1f3))?_0x2d49a4[_0x148b43(0x1db)](_0x148b43(0x1f3))['addClass'](_0x148b43(0x1a4)):_0x2d49a4[_0x148b43(0x1db)]('checked')[_0x148b43(0x1de)](_0x148b43(0x1f3));});}return _0x4ca6d2['append']($('<i\x20class=\x22fa\x20'+_0x33b642+_0x2a7ed0(0x181)+_0x3c0a85+_0x2a7ed0(0x1e9)+_0x5a451b+'<ul></ul>')),_0x4ca6d2[_0x2a7ed0(0x1de)]('expandable'),_0x4ca6d2[_0x2a7ed0(0x225)](_0x2a7ed0(0x22e),_0x452981),_0x4ca6d2[_0x2a7ed0(0x225)]('reference',_0x457e32),_0x4ca6d2;},_0x5e458d=()=>{const _0xd9c314=_0xfa19ee;$['widget'](_0xd9c314(0x193),{'options':{'endpointNode':()=>({'endpoint':'opc.tcp://opcuademo.sterfive.com:26543'}),'endpoint':()=>undefined,'baseUrl':''},'_populate'(){var _0x4336d3;return _0x124454(this,void 0x0,void 0x0,function*(){const _0x30ecc7=_0x37a8,_0x68273a=this,_0x1dc870=new Set((_0x4336d3=_0x68273a['$input']['val']())===null||_0x4336d3===void 0x0?void 0x0:_0x4336d3[_0x30ecc7(0x226)]()[_0x30ecc7(0x165)](';')),_0x3f6ce3={'baseUrl':_0x68273a['options'][_0x30ecc7(0x1f6)],'endpointNode':typeof _0x68273a['options'][_0x30ecc7(0x1dd)]==='function'?_0x68273a['options'][_0x30ecc7(0x1dd)]():_0x68273a[_0x30ecc7(0x170)][_0x30ecc7(0x1dd)],'endpoint':typeof _0x68273a['options']['endpoint']===_0x30ecc7(0x230)?_0x68273a[_0x30ecc7(0x170)][_0x30ecc7(0x164)]():_0x68273a[_0x30ecc7(0x170)][_0x30ecc7(0x164)]},_0xd85815=yield _0x3ac67b(_0x3f6ce3);this['_installTree'](_0xd85815,_0x1dc870);});},'_installTree'(_0x4661c1,_0x2948df){const _0x3bee94=_0xd9c314,_0x216260=this;_0x216260[_0x3bee94(0x1b2)][_0x3bee94(0x215)]();if(!_0x4661c1[_0x3bee94(0x182)])return;const _0x3cf418=_0x4661c1[_0x3bee94(0x182)],_0x2b07a4=_0x1e80b8(_0x3cf418);_0x216260[_0x3bee94(0x1b2)][_0x3bee94(0x203)](_0x2b07a4);const _0x1de0a5='';this[_0x3bee94(0x1e3)](_0x2b07a4[_0x3bee94(0x1cb)]('ul'),_0x3cf418,_0x1de0a5,_0x2948df),_0x2b07a4[_0x3bee94(0x1db)](_0x3bee94(0x188))['addClass'](_0x3bee94(0x16c)),this[_0x3bee94(0x1f7)](_0x2948df);},'_installChildren'(_0x4fadc1,_0x55f3b6,_0x291e75,_0x3a724c){const _0x4b3a82=_0xd9c314,_0x43a0ba=({name:_0xefc36f,namespaceIndex:_0x4ae590})=>{if(_0x4ae590===0x0)return _0xefc36f;return _0x4ae590+':'+_0xefc36f;},_0x216865=_0x55f3b6[_0x4b3a82(0x1cb)]||[],_0x5edef4=_0x55f3b6[_0x4b3a82(0x1c6)]||[],_0x598959=[..._0x216865,..._0x5edef4];for(const _0x2bd4fe of _0x598959){const _0x53827c=_0x1e80b8(_0x2bd4fe);_0x4fadc1['append'](_0x53827c);let _0xa1efa6='';_0x2bd4fe[_0x4b3a82(0x1d7)]==='Variable'&&(_0x291e75?_0xa1efa6=_0x291e75+'.'+_0x43a0ba(_0x2bd4fe[_0x4b3a82(0x159)]):_0xa1efa6=_0x43a0ba(_0x2bd4fe['browseName']),_0x53827c[_0x4b3a82(0x21a)](_0x4b3a82(0x1a7),_0xa1efa6));const _0x1659c7=_0x2bd4fe[_0x4b3a82(0x1cb)]&&_0x2bd4fe[_0x4b3a82(0x1cb)][_0x4b3a82(0x173)],_0x5484a2=_0x2bd4fe[_0x4b3a82(0x1c6)]&&_0x2bd4fe[_0x4b3a82(0x1c6)]['length'];!_0x1659c7&&!_0x5484a2?_0x53827c['removeClass'](_0x4b3a82(0x188))[_0x4b3a82(0x1de)](_0x4b3a82(0x200)):(this[_0x4b3a82(0x1e3)](_0x53827c[_0x4b3a82(0x1cb)]('ul'),_0x2bd4fe,_0xa1efa6,_0x3a724c),_0x53827c[_0x4b3a82(0x1db)](_0x4b3a82(0x188))['addClass']('expanded'));}},'_updateSelectedFields'(){const _0x3878f2=_0xd9c314;var _0x166fc0;const _0x2e4c7a=this,_0x172e07=new Set((_0x166fc0=_0x2e4c7a[_0x3878f2(0x22f)][_0x3878f2(0x223)]())===null||_0x166fc0===void 0x0?void 0x0:_0x166fc0[_0x3878f2(0x226)]()['split'](';'));this[_0x3878f2(0x1f7)](_0x172e07);},'_updateValues'(_0x178a1d){const _0x40c600=_0xd9c314;$(_0x40c600(0x1bb))[_0x40c600(0x1da)](function(){const _0x1d6a58=_0x40c600,_0x4a9ae9=$(this),_0x409da7=_0x4a9ae9[_0x1d6a58(0x21a)](_0x1d6a58(0x1a7));_0x409da7&&_0x178a1d[_0x1d6a58(0x17c)](_0x409da7)&&_0x4a9ae9[_0x1d6a58(0x1cb)]('span.custom-checkbox')[_0x1d6a58(0x1db)](_0x1d6a58(0x1f3))[_0x1d6a58(0x1de)](_0x1d6a58(0x1a4));});},'_setInputValue'(){const _0x43e056=_0xd9c314,_0x53ef6f=this,_0x484d58=[];$(_0x43e056(0x1bb))[_0x43e056(0x1da)](function(){const _0x55f2b1=_0x43e056,_0x27f5ae=$(this);if(_0x27f5ae[_0x55f2b1(0x1cb)](_0x55f2b1(0x155))[_0x55f2b1(0x173)]>0x0){const _0x112994=_0x27f5ae[_0x55f2b1(0x21a)](_0x55f2b1(0x1a7));if(_0x112994)_0x484d58[_0x55f2b1(0x21f)](_0x112994);}});const _0x46f378=[...new Set(_0x484d58)][_0x43e056(0x162)]()[_0x43e056(0x205)](';');_0x53ef6f['$input']['val'](_0x46f378),_0x53ef6f[_0x43e056(0x22f)][_0x43e056(0x1ea)](_0x43e056(0x175));},'_create'(){const _0x25c7e4=_0xd9c314,_0x388044=this;_0x388044[_0x25c7e4(0x22f)]=this[_0x25c7e4(0x18a)],_0x388044[_0x25c7e4(0x17b)]=$(_0x25c7e4(0x189)),_0x388044[_0x25c7e4(0x17b)][_0x25c7e4(0x1de)](_0x25c7e4(0x1b1)),this[_0x25c7e4(0x18a)][0x0]['parentElement'][_0x25c7e4(0x1c1)](_0x388044[_0x25c7e4(0x17b)][0x0],this[_0x25c7e4(0x18a)][0x0]),_0x388044[_0x25c7e4(0x1fe)]=$(_0x25c7e4(0x189))[_0x25c7e4(0x1de)]('input-group'),_0x388044[_0x25c7e4(0x17b)]['append'](_0x388044[_0x25c7e4(0x1fe)]),_0x388044[_0x25c7e4(0x1fe)][_0x25c7e4(0x203)](_0x388044['$input']),_0x388044[_0x25c7e4(0x1df)]=$('<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>'),_0x388044[_0x25c7e4(0x1fe)]['append'](_0x388044[_0x25c7e4(0x1df)]),_0x388044[_0x25c7e4(0x1df)]['on']('click',function(){const _0x348ba9=_0x25c7e4;_0x388044[_0x348ba9(0x1c5)][_0x348ba9(0x19d)](),_0x388044[_0x348ba9(0x1bd)][_0x348ba9(0x19d)]();if(_0x388044[_0x348ba9(0x1c5)]['is'](_0x348ba9(0x1d5))){_0x3bfe98[_0x348ba9(0x1aa)]();const _0x13a142=_0x388044[_0x348ba9(0x1c5)][_0x348ba9(0x191)]();_0x3bfe98[_0x348ba9(0x15f)]({'top':_0x13a142[_0x348ba9(0x178)]+'px','right':_0x348ba9(0x1d8)+(_0x13a142[_0x348ba9(0x1a6)]+_0x388044[_0x348ba9(0x1c5)][_0x348ba9(0x22a)]())+_0x348ba9(0x232)}),_0x388044[_0x348ba9(0x211)](),_0x388044[_0x348ba9(0x1ef)]();}else _0x3bfe98[_0x348ba9(0x19b)]();});!_0x388044[_0x25c7e4(0x22f)][_0x25c7e4(0x21a)](_0x25c7e4(0x166))&&_0x388044['$input'][_0x25c7e4(0x21a)](_0x25c7e4(0x166),_0x25c7e4(0x222));_0x388044[_0x25c7e4(0x1bd)]=$('<div\x20class=\x22info-text\x22></div>'),_0x388044[_0x25c7e4(0x1bd)]['hide'](),_0x388044[_0x25c7e4(0x1c5)]=$(_0x25c7e4(0x189))['addClass'](_0x25c7e4(0x18b))[_0x25c7e4(0x19b)]();const _0x2ba1e1=$('<span\x20class=\x22validate-button\x22>✔</span>'),_0xcbc8f6=$('<span\x20class=\x22cancel-button\x22>✖</span>'),_0x3bfe98=$(_0x25c7e4(0x218))[_0x25c7e4(0x203)](_0x2ba1e1,_0xcbc8f6);_0x3bfe98[_0x25c7e4(0x19b)](),_0x2ba1e1['on'](_0x25c7e4(0x16f),()=>{const _0x540853=_0x25c7e4;_0x388044['_setInputValue'](),_0x388044[_0x540853(0x1c5)][_0x540853(0x19b)]();}),_0xcbc8f6['on']('click',()=>{const _0x114af9=_0x25c7e4;_0x388044[_0x114af9(0x1c5)][_0x114af9(0x19b)]();}),_0x388044[_0x25c7e4(0x17b)][_0x25c7e4(0x203)](_0x388044[_0x25c7e4(0x1bd)]),_0x388044[_0x25c7e4(0x17b)][_0x25c7e4(0x203)](_0x388044['$dropdown']),_0x388044['$tree']=$(_0x25c7e4(0x18e)),_0x388044['$dropdown'][_0x25c7e4(0x215)]()[_0x25c7e4(0x203)](_0x388044['$tree'],_0x3bfe98),_0x388044[_0x25c7e4(0x1b2)]['on']('click','li',function(_0x15d1d3){const _0x93ffa9=_0x25c7e4;_0x15d1d3[_0x93ffa9(0x1e1)]();let _0x2ae207=$(this);const _0x4052c6=0x14,_0xdb863e=0x14,_0x242917=$(this)[_0x93ffa9(0x191)](),_0xb02921=_0x15d1d3;if(_0xb02921[_0x93ffa9(0x1c2)]>=_0x242917[_0x93ffa9(0x1a6)]&&_0xb02921['pageX']<=_0x242917[_0x93ffa9(0x1a6)]+_0x4052c6&&_0xb02921[_0x93ffa9(0x184)]>=_0x242917[_0x93ffa9(0x178)]&&_0xb02921['pageY']<=_0x242917[_0x93ffa9(0x178)]+_0xdb863e){console[_0x93ffa9(0x1be)](_0x93ffa9(0x1ca)),console[_0x93ffa9(0x1be)]('clicked\x20on\x20',_0x2ae207[_0x93ffa9(0x225)](_0x93ffa9(0x22e)),_0x2ae207[_0x93ffa9(0x21a)](_0x93ffa9(0x161)));if(_0x2ae207[_0x93ffa9(0x186)](_0x93ffa9(0x188)))_0x2ae207[_0x93ffa9(0x1db)](_0x93ffa9(0x188))[_0x93ffa9(0x1de)](_0x93ffa9(0x16c)),_0x2ae207[_0x93ffa9(0x1cb)]('ul')[_0x93ffa9(0x19d)]();else{if(_0x2ae207[_0x93ffa9(0x186)](_0x93ffa9(0x16c)))_0x2ae207['children']('ul')[_0x93ffa9(0x19d)](),_0x2ae207[_0x93ffa9(0x210)](_0x93ffa9(0x1b4));else{if(_0x2ae207['children']('ul')[_0x93ffa9(0x1cb)]()[_0x93ffa9(0x173)]>0x0)_0x2ae207[_0x93ffa9(0x1cb)]('ul')[_0x93ffa9(0x19d)](),_0x2ae207['toggleClass'](_0x93ffa9(0x1b4));else;}}}}),$(document)['on'](_0x25c7e4(0x16f),function(_0x45850c){const _0x2eea83=_0x25c7e4;!$(_0x45850c['target'])[_0x2eea83(0x172)](_0x388044[_0x2eea83(0x17b)])[_0x2eea83(0x173)]&&_0x388044[_0x2eea83(0x1c5)][_0x2eea83(0x19b)]();}),this[_0x25c7e4(0x211)]();}});},_0x3ac67b=({endpointNode:_0x44dab6,endpoint:_0x3db9b4,baseUrl:_0x56caac})=>_0x124454(void 0x0,void 0x0,void 0x0,function*(){const _0x26178b=_0xfa19ee,_0x27f3f9=_0x56caac+_0x26178b(0x1e4),_0x252eb7=_0x27f3f9+_0x26178b(0x21b),_0x59c226=yield fetch(_0x252eb7,{'method':_0x26178b(0x17a),'body':JSON['stringify']({'endpointNode':_0x44dab6,'endpoint':_0x3db9b4}),'headers':{'Content-Type':_0x26178b(0x17d)}});if(_0x59c226[_0x26178b(0x199)]!==0xc8)return console[_0x26178b(0x1be)](_0x26178b(0x1a2),_0x59c226[_0x26178b(0x199)],_0x59c226[_0x26178b(0x20a)]),{'events':null};console[_0x26178b(0x1be)]('fetched\x20:\x20',_0x59c226[_0x26178b(0x199)],_0x59c226[_0x26178b(0x20a)]);const _0x67045f=yield _0x59c226[_0x26178b(0x17e)](),_0x59e195=_0x67045f[_0x26178b(0x182)];return{'events':_0x59e195};}),_0x19610c=()=>{const _0x128c8e=_0xfa19ee,_0x1723d7=$(_0x128c8e(0x1ac)),_0x5b823d=_0x1723d7[_0x128c8e(0x223)](),_0x5dabe4=RED[_0x128c8e(0x21e)][_0x128c8e(0x1ce)](_0x5b823d);if(!_0x5dabe4)return undefined;const {endpoint:_0x24f9c2,securityMode:_0x4fd14a,securityPolicy:_0x6455f2,userIdentityType:_0x5c9388,credentials:_0x1dc9bc}=_0x5dabe4,_0xd869e8={'endpoint':_0x24f9c2,'securityMode':_0x4fd14a,'securityPolicy':_0x6455f2,'userIdentityType':_0x5c9388,'credentials':_0x1dc9bc};return _0xd869e8;},_0x27f1b1=()=>{return{'endpointNode':_0xdb080};},_0xdb080=()=>{const _0x47558e=_0xfa19ee,_0x141e66=$(_0x47558e(0x1ac)),_0x26064c=_0x141e66[_0x47558e(0x223)](),_0x5455ff=_0x19610c();if(!_0x5455ff)return undefined;return{'id':_0x26064c};};RED[_0xfa19ee(0x21e)][_0xfa19ee(0x1d3)](_0xfa19ee(0x1c3),{'category':_0xfa19ee(0x196),'color':'#C0DEED','align':'right','icon':'opcualogobig.png','paletteLabel':_0xfa19ee(0x1ee),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':'OpcUa-Endpoint2'},'subscription':{'value':'','required':!![],'validate':_0x64d36f=>{if(_0x64d36f==='')return![];return!![];}},'startImmediately':{'value':!![],'required':!![]},'nodeId':{'value':'','required':![],'validate':()=>!![]},'samplingInterval':{'value':0x3e8,'required':!![]},'discardOldest':{'value':!![],'required':!![]},'queueSize':{'value':0xa,'required':!![]},'selectClauses':{'value':'','required':!![]},'whereClause':{'value':'','required':![]}},'outputs':0x2,'label'(){const _0x536803=_0xfa19ee;return this[_0x536803(0x187)]||'OPCUA\x20Monitor';},'labelStyle'(){const _0x9f0a04=_0xfa19ee;return this[_0x9f0a04(0x187)]?_0x9f0a04(0x22c):'';},'oneditprepare'(){const _0x236ba4=_0xfa19ee;_0x42c0c8(),_0x5e458d(),_0x2c31e3(RED,this),$(_0x236ba4(0x1b6))['on'](_0x236ba4(0x175),()=>{const _0x4720ee=_0x236ba4,_0x52c532=$(_0x4720ee(0x198))[_0x4720ee(0x1a5)]('checked');_0x52c532?$(_0x4720ee(0x1fb))[_0x4720ee(0x223)](0x0):$(_0x4720ee(0x1fb))[_0x4720ee(0x223)](0x1);});const _0x3acd62=$(_0x236ba4(0x204));_0x3acd62[_0x236ba4(0x1ae)](Object['assign'](Object[_0x236ba4(0x207)]({},_0x27f1b1()),{'filter'(_0x5e116e){const _0x328304=_0x236ba4;return _0x5e116e[_0x328304(0x1d7)]===_0x328304(0x1fc);},'isSelectable'(_0x4dedc3){const _0x266fd7=_0x236ba4;return _0x4dedc3[_0x266fd7(0x1d7)]===_0x266fd7(0x1fc);}})),$(_0x236ba4(0x18d));const _0xe90a0e=$(_0x236ba4(0x1ff));_0xe90a0e[_0x236ba4(0x14e)](Object['assign']({},_0x27f1b1()));},'oneditsave'(){const _0x501800=_0xfa19ee,_0x1a5ebf=$(_0x501800(0x198))[_0x501800(0x1a5)](_0x501800(0x1a4));_0x1a5ebf?($(_0x501800(0x198))[_0x501800(0x223)](_0x1a5ebf?0x0:0x1),this['inputs']=_0x1a5ebf?0x0:0x1):($(_0x501800(0x198))[_0x501800(0x223)](0x1),this[_0x501800(0x1a1)]=0x1);}});}()));
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgyYzMxZTMiLCJfMHgzNWQyNWIiLCJfMHgyMGJlMzUiLCJfMHg0MTg0ZjIiLCIkIiwiXzB4OWI4ZDY4IiwiXzB4MTUyZjZhIiwiXzB4MmM5M2Y2IiwiXzB4NTJlMDBmIiwiXzB4NDZjYTlhIiwiXzB4MTI0NDU0IiwiXzB4NTlhNWJjIiwiXzB4MWNiNDQ1IiwiXzB4MTMyYWRiIiwiXzB4YzJlMjVhIiwiXzB4MjNkMjMxIiwiXzB4MTVkMzgzIiwiXzB4NWNjOTI0IiwiUHJvbWlzZSIsIl8weDU5NTUyYiIsIl8weDE5YzQ4NyIsIl8weDllNDYzYyIsIl8weDI0M2MyZCIsIl8weGQ5OTViMCIsIl8weDFjNTFlNyIsIl8weDQ4M2MwOCIsIl8weDQ2MTM5NCIsIl8weDIyZTczNSIsIl8weDQ2NGUyNyIsIlN1cHByZXNzZWRFcnJvciIsIl8weDFlZWYzZiIsIl8weDIyNzc3MCIsIl8weDE2M2NjNSIsIl8weDRlMmQ1ZSIsIkVycm9yIiwiXzB4MTA2NjgzIiwiXzB4NTVmMGVkIiwiXzB4MzIxMmVhIiwiXzB4MzMyMWZkIiwiXzB4YjUzOWY4IiwiXzB4MWQ0YWQ3IiwiXzB4MjEzYzBlIiwiXzB4NTUwMDUyIiwiXzB4NTBmMzBiIiwiXzB4MzhiNjkyIiwiXzB4NTRhNTA3IiwiXzB4MmZiZTdlIiwiXzB4M2NlY2MyIiwiXzB4NTY0NzIzIiwiXzB4M2M3N2JlIiwiXzB4MjIyMTY2IiwiXzB4MzQ3NDZjIiwiXzB4NGEyZDc5IiwiXzB4NGI0OTI4IiwiXzB4ZDFlZTFjIiwiZW5kcG9pbnROb2RlIiwiXzB4NTliMzdmIiwiZW5kcG9pbnQiLCJfMHg1N2JjOGEiLCJiYXNlVXJsIiwiXzB4MTQyNzc0IiwiXzB4MmVhNDc3IiwiXzB4MTc1MTFjIiwiXzB4NDllMWE1IiwiXzB4MzE3NGFjIiwiXzB4MWM1MzE5IiwiT2JqZWN0IiwiXzB4NTkwOTA4IiwiZmV0Y2giLCJKU09OIiwiY29uc29sZSIsIl8weDRlZDZmMCIsIl8weDM5MDg0MSIsIl8weDQ4ZWI0MiIsIl8weDVhNmM3OCIsIl8weDVjMTY1NSIsIl8weDU4Yjk3YiIsIl8weGY4MTE0ZiIsIl8weDI2ZjlmZSIsIl8weGIyNmIwYiIsIl8weDNlZDVlYyIsIl8weDI5NmM1NSIsIl8weDRmMDg4NiIsIl8weDE1YjYzZCIsIl8weDQ2ZDIzZiIsIl8weDEzM2Y5MCIsIl8weDI4ZWMyNCIsInNldFRpbWVvdXQiLCJfMHgxN2ZmYjEiLCJfMHg1NGYyOTciLCJfMHg1NDFhOTAiLCJfMHgxYzE3ZmMiLCJfMHg1NjI2ODciLCJfMHgxZDU0ZmQiLCJfMHgzZTAxYzMiLCJfMHg1YTdlNWQiLCJfMHgzNWZkOTUiLCJfMHhkYzQyY2UiLCJfMHg1NTlkNmIiLCJfMHgzZjE4YjkiLCJfMHgxYmVkYWEiLCJfMHgzMDc2OTUiLCJfMHgzZDQzOGEiLCJfMHg0NjA4NWMiLCJfMHgyNzcyZGEiLCJfMHgxMzQ1MWQiLCJfMHgzMDc3ZTUiLCJfMHgzZWMxNDkiLCJpY29uIiwiXzB4ODE0MDVlIiwiY29sb3IiLCJfMHgyMmI1ZWEiLCJfMHg1MDBkZjQiLCJfMHg0MmMwYzgiLCJ1bmRlZmluZWQiLCJfMHg0MjcwNDUiLCJfMHgyMjg3NjEiLCJfMHgzYzUwODMiLCJfMHgxMjU3NjUiLCJfMHgzMjQ3MGUiLCJfMHgyOGUzMTkiLCJfMHgyZmRjYTYiLCJfMHg5NGM2YjgiLCJfMHgzZTcxNmQiLCJfMHhiMjM3NzIiLCJfMHg5OGQyYWIiLCJfMHg0NzczYTciLCJyZWZlcmVuY2VzIiwiXzB4MzJhZjNjIiwiXzB4NTA2MjFjIiwiXzB4M2M3MDFlIiwiXzB4NWJhMGI0IiwiXzB4MmRiNDYwIiwiXzB4MjU2ZGU1IiwiXzB4MWM2NGM1IiwiXzB4MTljOThhIiwiXzB4MjJjNzgwIiwiXzB4MTAzNzM1IiwiXzB4MWZlNDg5IiwiXzB4MjE2NzJiIiwiXzB4MjBkNzgxIiwiXzB4NWUxYWIxIiwiXzB4NDgyYWFlIiwiXzB4MTI2OWU0IiwiXzB4NGU2Y2FkIiwiXzB4NjE1NjBkIiwiXzB4NmQ5NzdmIiwiXzB4MmI2NDkzIiwiXzB4MzlmMTdlIiwiZG9jdW1lbnQiLCJfMHgyNzlhMWUiLCJfMHgxZTgwYjgiLCJfMHg0NTdlMzIiLCJfMHg1NTRlNjgiLCJfMHg1MTBlYmQiLCJfMHg0NzM0OTAiLCJfMHgxMjc1YTUiLCJfMHg0NTI5ODEiLCJfMHg1YTQ1MWIiLCJfMHgyYzI4YmIiLCJfMHgzM2I2NDIiLCJfMHgzYzBhODUiLCJfMHg0Y2E2ZDIiLCJfMHgyZDQ5YTQiLCJfMHg1ZTQ1OGQiLCJfMHg0MzM2ZDMiLCJfMHg2ODI3M2EiLCJfMHgxZGM4NzAiLCJTZXQiLCJfMHgzZjZjZTMiLCJfMHhkODU4MTUiLCJfMHgzYWM2N2IiLCJfMHg0NjYxYzEiLCJfMHgyOTQ4ZGYiLCJfMHgyMTYyNjAiLCJfMHgzY2Y0MTgiLCJfMHgyYjA3YTQiLCJfMHgxZGUwYTUiLCJfMHg0ZmFkYzEiLCJfMHg1NWYzYjYiLCJfMHgyOTFlNzUiLCJfMHgzYTcyNGMiLCJfMHg0M2EwYmEiLCJuYW1lIiwiXzB4ZWZjMzZmIiwibmFtZXNwYWNlSW5kZXgiLCJfMHg0YWU1OTAiLCJfMHgyMTY4NjUiLCJfMHg1ZWRlZjQiLCJfMHg1OTg5NTkiLCJfMHgyYmQ0ZmUiLCJfMHg1MzgyN2MiLCJfMHhhMWVmYTYiLCJfMHgxNjU5YzciLCJfMHg1NDg0YTIiLCJfMHgxNjZmYzAiLCJfMHgyZTRjN2EiLCJfMHgxNzJlMDciLCJfMHgxNzhhMWQiLCJfMHg0YTlhZTkiLCJfMHg0MDlkYTciLCJfMHg1M2VmNmYiLCJfMHg0ODRkNTgiLCJfMHgyN2Y1YWUiLCJfMHgxMTI5OTQiLCJfMHg0NmYzNzgiLCJfMHgzODgwNDQiLCJfMHgzYmZlOTgiLCJfMHgxM2ExNDIiLCJfMHgyYmExZTEiLCJfMHhjYmM4ZjYiLCJfMHgxNWQxZDMiLCJfMHgyYWUyMDciLCJfMHg0MDUyYzYiLCJfMHhkYjg2M2UiLCJfMHgyNDI5MTciLCJfMHhiMDI5MjEiLCJfMHg0NTg1MGMiLCJfMHg0NGRhYjYiLCJfMHgzZGI5YjQiLCJfMHg1NmNhYWMiLCJfMHgyN2YzZjkiLCJfMHgyNTJlYjciLCJfMHg1OWMyMjYiLCJfMHg2NzA0NWYiLCJfMHg1OWUxOTUiLCJfMHgxOTYxMGMiLCJfMHgxNzIzZDciLCJfMHg1YjgyM2QiLCJfMHg1ZGFiZTQiLCJSRUQiLCJfMHgyNGY5YzIiLCJzZWN1cml0eU1vZGUiLCJfMHg0ZmQxNGEiLCJzZWN1cml0eVBvbGljeSIsIl8weDY0NTVmMiIsInVzZXJJZGVudGl0eVR5cGUiLCJfMHg1YzkzODgiLCJjcmVkZW50aWFscyIsIl8weDFkYzliYyIsIl8weGQ4NjllOCIsIl8weDI3ZjFiMSIsIl8weGRiMDgwIiwiXzB4MTQxZTY2IiwiXzB4MjYwNjRjIiwiXzB4NTQ1NWZmIiwiXzB4NjRkMzZmIiwiXzB4NTJjNTMyIiwiXzB4M2FjZDYyIiwiXzB4NWUxMTZlIiwiXzB4NGRlZGMzIiwiXzB4ZTkwYTBlIiwiXzB4MWE1ZWJmIl0sIm1hcHBpbmdzIjoiczJJQUFBLENBQUMsVSxDQUNHLGEsd0JBRUEsU0FBU0EsU0FBVCxDQUFxQ0MsU0FBckMsQ0FBMENDLFNBQTFDLEMseUJBQ1VDLFNBQUEsQ0FBWUMsQ0FBQSxDLGdCQUFBLEMsQ0FDWkMsU0FBQSxDQUFnQkQsQ0FBQSxDLGdCQUFBLEMsQ0FDaEJFLFNBQUEsQ0FBNkIsSSwyQkFDekJDLFNBQUEsQ0FBV04sU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBZUUsU0FBQSxDLGdCQUFBLEdBQWYsQyxDQUNqQkUsU0FBQSxDLGdCQUFBLEksR0FDSSxDQUFDRSxTQUFELEVBQWEsQ0FBQ0EsU0FBQSxDLGdCQUFBLEMsQ0FDZCxPLEdBRUFBLFNBQUEsQyxnQkFBQSxDLENBQ0EsVUFBV0MsU0FBWCxJQUFnQkQsU0FBQSxDLGdCQUFBLENBQWhCLEMsQ0FDSSxNQUFNRSxTQUFBLENBQVFELFNBQUEsQyxnQkFBQSxHQUFVQSxTQUFBLEMsSUFBQSxDQUF4QixDQUNBSixDQUFBLEMsZ0JBQUEsQ0FBZSxDLE9BQ1gsQ0FBT0ksU0FBQSxDLElBQUEsQ0FESSxDLE9BRVgsQ0FBT0MsU0FGSSxDLFVBR1gsQ0FBVUQsU0FBQSxDLElBQUEsSUFBU04sU0FBQSxDLGdCQUFBLENB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QSxFLE1BOUV5QyxDQUFyRCxDLEVBaHlCSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICBmdW5jdGlvbiBpbnN0YWxsU3Vic2NyaXB0aW9uU2VsZWN0b3IoUkVELCBub2RlKSB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgJHN1YnNjcmlwdGlvbiA9ICQoXCIjbm9kZS1pbnB1dC1zdWJzY3JpcHRpb25cIik7XG4gICAgICAgIGNvbnN0IGluc3RhbGxTdWJzY3JpcHRpb25PcHRpb25zID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZW5kcG9pbnQgPSBSRUQubm9kZXMubm9kZSgkZW5kcG9pbnQudmFsKCkpO1xuICAgICAgICAgICAgJHN1YnNjcmlwdGlvbi5lbXB0eSgpO1xuICAgICAgICAgICAgaWYgKCFlbmRwb2ludCB8fCAhZW5kcG9pbnQuc3Vic2NyaXB0aW9ucykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlbmRwb2ludC5zdWJzY3JpcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBzIG9mIGVuZHBvaW50LnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBzLm5hbWUgfHwgcy5pZDtcbiAgICAgICAgICAgICAgICAgICAgJChcIjxvcHRpb24vPlwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcy5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBsYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkOiBzLmlkID09PSBub2RlLnN1YnNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC50ZXh0KGxhYmVsKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKCRzdWJzY3JpcHRpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMoKTtcbiAgICAgICAgLy8gaGFja1xuICAgICAgICAvLyAkaW5wdXRBY3Rpb24ub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAvLyAgICAgJGVuZHBvaW50Lm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgLy8gICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucygpO1xuICAgICAgICAvLyAgICAgfSk7XG4gICAgICAgIC8vIH0pO1xuICAgICAgICAkc3Vic2NyaXB0aW9uLm9uKFwiZm9jdXMgY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMoKTtcbiAgICAgICAgfSk7XG4gICAgICAgICRlbmRwb2ludC5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgY29uc3QgT3JnYW5pemVzUmVmTm9kZUlkID0gXCJucz0wO2k9MzVcIjtcbiAgICBjb25zdCBGb2xkZXJUeXBlID0gXCJucz0wO2k9NjFcIjtcbiAgICBjb25zdCBIYXNDb21wb25lbnRSZWZOb2RlSWQgPSBcIm5zPTA7aT00N1wiO1xuICAgIGNvbnN0IEhhc1Byb3BlcnR5UmVmTm9kZUlkID0gXCJucz0wO2k9NDZcIjtcbiAgICBjb25zdCBIYXNDaGlsZFJlZk5vZGVJZCA9IFwibnM9MDtpPTM0XCI7XG4gICAgY29uc3QgSGFzU3VidHlwZVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ1XCI7XG4gICAgY29uc3QgSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQgPSBcIm5zPTA7aT00MFwiO1xuXG4gICAgdmFyIEJyb3dzZURpcmVjdGlvbjtcbiAgICAoZnVuY3Rpb24gKEJyb3dzZURpcmVjdGlvbikge1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiRm9yd2FyZFwiXSA9IDBdID0gXCJGb3J3YXJkXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZlcnNlXCJdID0gMV0gPSBcIkludmVyc2VcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkJvdGhcIl0gPSAyXSA9IFwiQm90aFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52YWxpZFwiXSA9IDNdID0gXCJJbnZhbGlkXCI7XG4gICAgfSkoQnJvd3NlRGlyZWN0aW9uIHx8IChCcm93c2VEaXJlY3Rpb24gPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3M7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlVuc3BlY2lmaWVkXCJdID0gMF0gPSBcIlVuc3BlY2lmaWVkXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzcyB8fCAoTm9kZUNsYXNzID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzTWFzaztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzc01hc2spIHtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzc01hc2sgfHwgKE5vZGVDbGFzc01hc2sgPSB7fSkpO1xuICAgIHZhciBSZXN1bHRNYXNrO1xuICAgIChmdW5jdGlvbiAoUmVzdWx0TWFzaykge1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMV0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiSXNGb3J3YXJkXCJdID0gMl0gPSBcIklzRm9yd2FyZFwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJOb2RlQ2xhc3NcIl0gPSA0XSA9IFwiTm9kZUNsYXNzXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkJyb3dzZU5hbWVcIl0gPSA4XSA9IFwiQnJvd3NlTmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJEaXNwbGF5TmFtZVwiXSA9IDE2XSA9IFwiRGlzcGxheU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiVHlwZURlZmluaXRpb25cIl0gPSAzMl0gPSBcIlR5cGVEZWZpbml0aW9uXCI7XG4gICAgfSkoUmVzdWx0TWFzayB8fCAoUmVzdWx0TWFzayA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZ2FuaXplc1JlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNQcm9wZXJ0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNQcm9wZXJ0eVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ29tcG9uZW50UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NoaWxkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NoaWxkUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1N1YnR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzU3VidHlwZVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNUeXBlRGVmaW5pdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldEljb24gPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVmZXJlbmNlLm5vZGVDbGFzcykge1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBPcmdhbml6ZXNSZWZOb2RlSWQpIDtcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnR5cGVEZWZpbml0aW9uID09PSBGb2xkZXJUeXBlIHx8IHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IFwiaT02MVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtZm9sZGVyXCIsIGNvbG9yOiBcInJnYmEoNjEsIDYwLCA0LCAwLjUyNSlcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJTZWFHcmVlblwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzQ29tcG9uZW50UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiU3RlZWxCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzUHJvcGVydHlSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJEb2RnZXJCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiTWV0aG9kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1jb2dcIiwgY29sb3I6IFwiU2FuZHlCcm93blwiIH07XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0VHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtc2xpZGVyc1wiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJEYXRhVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtdGV4dC13aWR0aFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGljb246IFwiZmEtcXVlc3Rpb25cIiwgY29sb3I6IFwiZ3JleVwiIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGJyb3dzZSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkLCB0ZW1wbGF0ZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9icm93c2VgO1xuICAgICAgICBjb25zdCBicm93c2VEZXNjcmlwdGlvbiA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGVtcGxhdGUpLCB7IG5vZGVJZCwgcmVzdWx0TWFzazogNjMgfSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGJyb3dzZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXM6IFtdIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkIDogXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICBjb25zdCByZWZlcmVuY2VzID0gcmVzcG9uc2UuYnJvd3NlUmVzdWx0LnJlZmVyZW5jZXMgfHwgW107XG4gICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXMgfTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHRlbXBsYXRlMSA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzQ2hpbGRcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB0ZW1wbGF0ZTIgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIk9yZ2FuaXplc1wiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IGludGVybmFsVmVyaWZ5ID0gKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCAkaW5wdXRFbGVtZW50LCAkaW5mbykgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCBub2RlSWQgPSAkaW5wdXRFbGVtZW50LnZhbCgpO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2goYCR7cm9vdH0vY2hlY2tOb2RlSWRgLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHNldE5vdGlmaWNhdGlvbiA9ICh0ZXh0LCBjbGFzc05hbWUpID0+IHtcbiAgICAgICAgICAgICRpbmZvLnRleHQodGV4dCkuYWRkQ2xhc3MoXCJzdGVyZml2ZS1pbmZvXCIpLmFkZENsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAkaW5mby5zaG93KCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAkaW5mby5yZW1vdmVDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgICAgICRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgIH0sIDMwMDApO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBqc29uID0gKHlpZWxkIGRhdGEuanNvbigpKTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZztcbiAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihcIiEhZmFpbHVyZSEhXCIgKyBub2RlSWQsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChqc29uLnN0YXR1c0NvZGUubWF0Y2goL0dvb2QvKSkge1xuICAgICAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZ1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKGpzb24ubm9kZUFkZHJlc3NTdHJpbmcpO1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCJHb29kXCIsIFwib2tcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChgJHtub2RlSWR9YCk7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKGAke2pzb24uc3RhdHVzQ29kZX0gJHtkYXRhLnN0YXR1c1RleHR9YCwgXCJmYWlsdXJlXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gZmV0Y2hDaGlsZHJlbigkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMSk7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQyID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUyKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlczogWy4uLmJyb3dzZVJlc3VsdDEucmVmZXJlbmNlcywgLi4uYnJvd3NlUmVzdWx0Mi5yZWZlcmVuY2VzXSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB0ZW1wbGF0ZVNUID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNTdWJ0eXBlXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHwgTm9kZUNsYXNzLk9iamVjdFR5cGUgfCBOb2RlQ2xhc3MuRGF0YVR5cGUgfCBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlLFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGZldGNoU3VidHlwZXMoJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZVNUKTtcbiAgICAgICAgICAgIHJldHVybiBicm93c2VSZXN1bHQxO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgbWFrZUVsZW1lbnQkMSA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKCFyZWZlcmVuY2UpIHtcbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgZmEtZXJyb3JcIiBzdHlsZT1cImNvbG9yOnJlZDtcIj48L2k+bm8gcmVmZXJlbmNlICE8dWw+PC91bD48L2xpPmApO1xuICAgICAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG4gPSByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHQgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB7IGljb24sIGNvbG9yIH0gPSBnZXRJY29uKHJlZmVyZW5jZSk7XG4gICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgJHtpY29ufVwiIHN0eWxlPVwiY29sb3I6JHtjb2xvcn07XCI+PC9pPiAke3R9PHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgJGVsZW1lbnQuYWRkQ2xhc3MoXCJleHBhbmRhYmxlXCIpO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwidmFsdWVcIiwgbik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgIH07XG4gICAgY29uc3QgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogWyBUZW1wZXJhdHVyZSAgXVxuICAgICAgICAgKiAgICggdG9vbHRpcCA6ICgvT2JqZWN0cy9NeVNlbnNvcikgKG5zPTE7cz1UZW1wZXJhdHVyZSkpXG4gICAgICAgICAqIFsgKyBbRm9sZGVyXSBPYmplY3RzXVxuICAgICAgICAgKiBbICAgICBbT2JqZWN0XSBNeVNlbnNvcl1cbiAgICAgICAgICogWyAgICAgKCApIFtWYXJpYWJsZV0gVGVtcGVyYXR1cmVdXG4gICAgICAgICAqL1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLm5vZGVCcm93c2VyXCIsIHtcbiAgICAgICAgICAgIC8qIGRlZmF1bHQgb3B0aW9ucyAqL1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogKCkgPT4gKHsgZW5kcG9pbnQ6IFwib3BjLnRjcDovL29wY3VhZGVtby5zdGVyZml2ZS5jb206MjY1NDNcIiB9KSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludDogKCkgPT4gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHBhcmVudE5vZGU6ICgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIGJyb3dzZU5hbWU6IHsgbmFtZXNwYWNlSW5kZXg6IDAsIG5hbWU6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIG5vZGVDbGFzczogXCJPYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgbm9kZUlkOiBcIm5zPTA7aT04NVwiLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogeyB0ZXh0OiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICB0eXBlRGVmaW5pdGlvbjogRm9sZGVyVHlwZSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6ICgpID0+IHRydWUsXG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgICAgICBpc1R5cGVSZWY6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc29sdmVQYXJlbnROb2RlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdHlwZW9mIHRoYXQub3B0aW9ucy5wYXJlbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHlpZWxkIGE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGE7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzZXQoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzb2x2ZVBhcmVudE5vZGUoKS50aGVuKChwYXJlbnROb2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQkMShwYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LmN1cnJlbnRQYXJlbnQgPSBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZlcmlmeSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGludGVybmFsVmVyaWZ5KGRhdGEsIHRoYXQuJGlucHV0LCB0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIF9mZXRjaERhdGFGb3JOb2RlKCRub2RlLCBmZXRjaEZ1bmMsIGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJsb2FkaW5nXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYXBwZW5kKCc8ZGl2IGNsYXNzPVwic3Bpbm5lclwiPjwvZGl2PicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyByZWZlcmVuY2VzIH0gPSB5aWVsZCBmZXRjaEZ1bmMoJG5vZGUsIGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5maWx0ZXIgJiYgIXRoYXQub3B0aW9ucy5maWx0ZXIocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudCQxKHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKGA8bGk+ZXJyb3IgJHtlcnIubWVzc2FnZX08L2xpPmApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyXCIsIGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5maW5kKFwiLnNwaW5uZXJcIikucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5yZW1vdmVDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21ibyA9ICQoXCI8ZGl2Lz5cIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJzdGVyZml2ZS1jb21iby1ib3hcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHJlZSB3aWRnZXQgaXMgZ29pbmcgdG8gYmVjb21lIHZpc2libGVcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQucmVzb2x2ZVBhcmVudE5vZGUoKS50aGVuKChwYXJlbnROb2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnROb2RlICE9PSB0aGF0LmN1cnJlbnRQYXJlbnQgfHwgKChfYSA9IHRoYXQuY3VycmVudFBhcmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5vZGVJZCkgIT09IHBhcmVudE5vZGUubm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1mbGFza1wiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR2ZXJpZnlCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0bi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52ZXJpZnkoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIiwgXCJlbnRlciBhIG5vZGVJZCBvciBhIGJyb3dzZVBhdGggXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvID0gJChgPGRpdiBjbGFzcz1cImluZm8tdGV4dFwiPjwvZGl2PmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICAoe1xuICAgICAgICAgICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcInN0ZXJmaXZlLWRyb3Bkb3duXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5mbyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlID0gJChgPHVsIGNsYXNzPVwic3RlcmZpdmUtdHJlZVwiPjwvdWw+YCkuYXBwZW5kVG8odGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVXaWR0aCA9IDIwOyAvLyBTZXQgd2lkdGggb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlSGVpZ2h0ID0gMjA7IC8vIFNldCBoZWlnaHQgb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFBvcyA9ICQodGhpcykub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBldmVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUucGFnZVggPj0gZWxlbWVudFBvcy5sZWZ0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VYIDw9IGVsZW1lbnRQb3MubGVmdCArIGJlZm9yZVdpZHRoICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZID49IGVsZW1lbnRQb3MudG9wICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZIDw9IGVsZW1lbnRQb3MudG9wICsgYmVmb3JlSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGYgPSAhdGhhdC5vcHRpb25zLmlzVHlwZVJlZiA/IGZldGNoQ2hpbGRyZW4gOiBmZXRjaFN1YnR5cGVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9mZXRjaERhdGFGb3JOb2RlKCRsaSwgZiwgZGF0YSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIiBGZXRjaGluZyBkb25lXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1hcmsgYXMgZXhwYW5kZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUb2dnbGUgaXRzIGV4cGFuZGVkL2NvbGxhcHNlZCBzdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuY2hpbGRyZW4oXCJ1bFwiKS5jaGlsZHJlbigpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICRsaS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWZlcmVuY2UgPSAkbGkuZGF0YShcInJlZmVyZW5jZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlICYmICF0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXNwbGF5TmFtZSA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dCA9IGBbJHtkaXNwbGF5TmFtZX1dKCR7dmFsdWV9KWA7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC52YWwoaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsaWNraW5nIG91dHNpZGUgdGhlIHBhZ2Ugd2lsbCBoaWRlIHRoZSBkcm9wZG93blxuICAgICAgICAgICAgICAgICAgICBpZiAoISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KHRoYXQuJGNvbWJvKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IG1ha2VFbGVtZW50ID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgaWYgKCFyZWZlcmVuY2UpIHtcbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgZmEtZXJyb3JcIiBzdHlsZT1cImNvbG9yOnJlZDtcIj48L2k+bm8gcmVmZXJlbmNlICE8dWw+PC91bD48L2xpPmApO1xuICAgICAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG4gPSByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGxldCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgbGV0IG5zID0gKF9jID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5uYW1lc3BhY2VJbmRleDtcbiAgICAgICAgdCArPSBucyAhPT0gdW5kZWZpbmVkICYmIHJlZmVyZW5jZS5ub2RlQ2xhc3MubWF0Y2goL1R5cGUvKSA/IGAgKG5zPSR7bnN9KWAgOiBcIlwiO1xuICAgICAgICBjb25zdCB7IGljb24sIGNvbG9yIH0gPSBnZXRJY29uKHJlZmVyZW5jZSk7XG4gICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPmApO1xuICAgICAgICBpZiAocmVmZXJlbmNlLm5vZGVDbGFzcyA9PT0gXCJWYXJpYWJsZVwiKSB7XG4gICAgICAgICAgICBjb25zdCBjaGVja0JveCA9ICQoJzxzcGFuIGNsYXNzPVwiY3VzdG9tLWNoZWNrYm94IHVuY2hlY2tlZFwiPjwvc3Bhbj4nKTtcbiAgICAgICAgICAgICRlbGVtZW50LmFwcGVuZChjaGVja0JveCk7XG4gICAgICAgICAgICAvLyBUb2dnbGUgY2hlY2tib3ggc3RhdGUgd2hlbiBjbGlja2VkXG4gICAgICAgICAgICBjaGVja0JveC5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBpZiAoY2hlY2tCb3guaGFzQ2xhc3MoXCJ1bmNoZWNrZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tCb3gucmVtb3ZlQ2xhc3MoXCJ1bmNoZWNrZWRcIikuYWRkQ2xhc3MoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tCb3gucmVtb3ZlQ2xhc3MoXCJjaGVja2VkXCIpLmFkZENsYXNzKFwidW5jaGVja2VkXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgICRlbGVtZW50LmFwcGVuZCgkKGA8aSBjbGFzcz1cImZhICR7aWNvbn1cIiBzdHlsZT1cImNvbG9yOiR7Y29sb3J9O1wiPjwvaT4ke3R9PHVsPjwvdWw+YCkpO1xuICAgICAgICAkZWxlbWVudC5hZGRDbGFzcyhcImV4cGFuZGFibGVcIik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJ2YWx1ZVwiLCBuKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgfTtcbiAgICBjb25zdCBkZWNsYXJlRXZlbnRGaWVsZFNlbGVjdG9yV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogWyBUZW1wZXJhdHVyZSAgXVxuICAgICAgICAgKiAgICggdG9vbHRpcCA6ICgvT2JqZWN0cy9NeVNlbnNvcikgKG5zPTE7cz1UZW1wZXJhdHVyZSkpXG4gICAgICAgICAqIFsgKyBbRm9sZGVyXSBPYmplY3RzXVxuICAgICAgICAgKiBbICAgICBbT2JqZWN0XSBNeVNlbnNvcl1cbiAgICAgICAgICogWyAgICAgKCApIFtWYXJpYWJsZV0gVGVtcGVyYXR1cmVdXG4gICAgICAgICAqL1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLmV2ZW50RmllbGRTZWxlY3RvclwiLCB7XG4gICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6ICgpID0+ICh7IGVuZHBvaW50OiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzXCIgfSksXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9wb3B1bGF0ZSgpIHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRmllbGQgPSBuZXcgU2V0KChfYSA9IHRoYXQuJGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAudmFsKCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50b1N0cmluZygpLnNwbGl0KFwiO1wiICkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB5aWVsZCBleHRyYWN0RXZlbnRGaWVsZEluZm8oZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2luc3RhbGxUcmVlKHJlc3VsdCwgc2VsZWN0ZWRGaWVsZCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2luc3RhbGxUcmVlKHJlc3VsdCwgc2VsZWN0RmllbGQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuZXZlbnRzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3Qgcm9vdCA9IHJlc3VsdC5ldmVudHM7XG4gICAgICAgICAgICAgICAgY29uc3QgJHJvb3RFbGVtZW50ID0gbWFrZUVsZW1lbnQocm9vdCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5hcHBlbmQoJHJvb3RFbGVtZW50KTtcbiAgICAgICAgICAgICAgICBjb25zdCBwcmVmaXggPSBcIlwiO1xuICAgICAgICAgICAgICAgIHRoaXMuX2luc3RhbGxDaGlsZHJlbigkcm9vdEVsZW1lbnQuY2hpbGRyZW4oXCJ1bFwiKSwgcm9vdCwgcHJlZml4LCBzZWxlY3RGaWVsZCk7XG4gICAgICAgICAgICAgICAgJHJvb3RFbGVtZW50LnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVZhbHVlcyhzZWxlY3RGaWVsZCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2luc3RhbGxDaGlsZHJlbigkcGFyZW50LCBwYXJlbnQsIHByZWZpeCwgc2VsZWN0ZWRGaWVsZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGIgPSAoeyBuYW1lLCBuYW1lc3BhY2VJbmRleCB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChuYW1lc3BhY2VJbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5hbWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke25hbWVzcGFjZUluZGV4fToke25hbWV9YDtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuID0gcGFyZW50LmNoaWxkcmVuIHx8IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN1YlR5cGVzID0gcGFyZW50LnN1YlR5cGVzIHx8IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuQW5kU3ViVHlwZXMgPSBbLi4uY2hpbGRyZW4sIC4uLnN1YlR5cGVzXTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGNoaWxkcmVuQW5kU3ViVHlwZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChjaGlsZCk7XG4gICAgICAgICAgICAgICAgICAgICRwYXJlbnQuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByZWZpeDIgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGQubm9kZUNsYXNzID09PSBcIlZhcmlhYmxlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmVmaXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXgyID0gcHJlZml4ICsgXCIuXCIgKyBiKGNoaWxkLmJyb3dzZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4MiA9IGIoY2hpbGQuYnJvd3NlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAkZWxlbWVudC5hdHRyKFwiZGF0YS12YWx1ZVwiLCBwcmVmaXgyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBoYXNDaGlsZHJlbiA9IGNoaWxkLmNoaWxkcmVuICYmIGNoaWxkLmNoaWxkcmVuLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGFzU3ViVHlwZXMgPSBjaGlsZC5zdWJUeXBlcyAmJiBjaGlsZC5zdWJUeXBlcy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaGFzQ2hpbGRyZW4gJiYgIWhhc1N1YlR5cGVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZWxlbWVudC5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJuby1leHBhbmRhYmxlXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5zdGFsbENoaWxkcmVuKCRlbGVtZW50LmNoaWxkcmVuKFwidWxcIiksIGNoaWxkLCBwcmVmaXgyLCBzZWxlY3RlZEZpZWxkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICRlbGVtZW50LnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF91cGRhdGVTZWxlY3RlZEZpZWxkcygpIHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRGaWVsZHMgPSBuZXcgU2V0KChfYSA9IHRoYXQuJGlucHV0XG4gICAgICAgICAgICAgICAgICAgIC52YWwoKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRvU3RyaW5nKCkuc3BsaXQoXCI7XCIgKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlVmFsdWVzKHNlbGVjdGVkRmllbGRzKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfdXBkYXRlVmFsdWVzKHNlbGVjdGVkRmllbGRzKSB7XG4gICAgICAgICAgICAgICAgJChcIi5zdGVyZml2ZS10cmVlIGxpXCIpLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkdGhpcyA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHYgPSAkdGhpcy5hdHRyKFwiZGF0YS12YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHYgJiYgc2VsZWN0ZWRGaWVsZHMuaGFzKHYpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy5jaGlsZHJlbihcInNwYW4uY3VzdG9tLWNoZWNrYm94XCIpLnJlbW92ZUNsYXNzKFwidW5jaGVja2VkXCIpLmFkZENsYXNzKFwiY2hlY2tlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9zZXRJbnB1dFZhbHVlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBbXTtcbiAgICAgICAgICAgICAgICAvLyBjcmF3bCB0aGUgdHJlZSB0byBmaW5kIHNlbGVjdGVkIGVsZW1lbnRzIGFuZCBjcmVhdGUgYSBsaXN0IG9mIEJyb3dzZVBhdGhcbiAgICAgICAgICAgICAgICAkKFwiLnN0ZXJmaXZlLXRyZWUgbGlcIikuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICR0aGlzID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGVsZW1lbnQgaXMgc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLmNoaWxkcmVuKFwic3Bhbi5jdXN0b20tY2hlY2tib3guY2hlY2tlZFwiKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ID0gJHRoaXMuYXR0cihcImRhdGEtdmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0LnB1c2godik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IFsuLi5uZXcgU2V0KGxpc3QpXS5zb3J0KCkuam9pbihcIjtcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudmFsKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFswXS5wYXJlbnRFbGVtZW50LnJlcGxhY2VDaGlsZCh0aGF0LiRjb21ib1swXSwgdGhpcy5lbGVtZW50WzBdKTtcbiAgICAgICAgICAgICAgICAvLyB0aGlzLmVsZW1lbnQucmVwbGFjZVdpdGgodGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAgPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwiaW5wdXQtZ3JvdXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGlucHV0R3JvdXApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJGlucHV0KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLXNpdGVtYXBcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdG9nZ2xlVHJlZUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0bi5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGluZm8udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGF0LiRkcm9wZG93bi5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZmxvYXRpbmdCdXR0b25zLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9mZnNldCA9IHRoYXQuJGRyb3Bkb3duLm9mZnNldCgpOyAvLyBHZXQgdGhlIHRvcC1sZWZ0IGNvcm5lciBwb3NpdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgJGZsb2F0aW5nQnV0dG9ucy5jc3Moe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogYCR7b2Zmc2V0LnRvcH1weGAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IGBjYWxjKDEwMCUgLSAke29mZnNldC5sZWZ0ICsgdGhhdC4kZHJvcGRvd24ud2lkdGgoKX1weClgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9wb3B1bGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fdXBkYXRlU2VsZWN0ZWRGaWVsZHMoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRmbG9hdGluZ0J1dHRvbnMuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgLy8gY29uc3QgJHNjcm9sbGFibGVDb250ZW50ID0gJCgnPGRpdiBjbGFzcz1cInN0ZXJmaXZlLWRyb3Bkb3duLXNjcm9sbGFibGUtY29udGVudFwiPjwvZGl2PicpO1xuICAgICAgICAgICAgICAgIGNvbnN0ICR2YWxpZGF0ZUJ1dHRvbiA9ICQoJzxzcGFuIGNsYXNzPVwidmFsaWRhdGUtYnV0dG9uXCI+4pyUPC9zcGFuPicpOyAvLyBVc2UgYW55IGljb24gb3IgdGV4dCBoZXJlXG4gICAgICAgICAgICAgICAgY29uc3QgJGNhbmNlbEJ1dHRvbiA9ICQoJzxzcGFuIGNsYXNzPVwiY2FuY2VsLWJ1dHRvblwiPuKcljwvc3Bhbj4nKTsgLy8gVXNlIGFueSBpY29uIG9yIHRleHQgaGVyZVxuICAgICAgICAgICAgICAgIGNvbnN0ICRmbG9hdGluZ0J1dHRvbnMgPSAkKCc8ZGl2IGNsYXNzPVwiZmxvYXRpbmctYnV0dG9uc1wiPjwvZGl2PicpLmFwcGVuZCgkdmFsaWRhdGVCdXR0b24sICRjYW5jZWxCdXR0b24pO1xuICAgICAgICAgICAgICAgICRmbG9hdGluZ0J1dHRvbnMuaGlkZSgpO1xuICAgICAgICAgICAgICAgIC8vIERlZmluZSB5b3VyIHZhbGlkYXRpb24gYW5kIGNhbmNlbGxhdGlvbiBsb2dpY1xuICAgICAgICAgICAgICAgICR2YWxpZGF0ZUJ1dHRvbi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5fc2V0SW5wdXRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJGNhbmNlbEJ1dHRvbi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUgPSAkKGA8dWwgY2xhc3M9XCJzdGVyZml2ZS10cmVlXCI+PC91bD5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5lbXB0eSgpLmFwcGVuZCh0aGF0LiR0cmVlLCAkZmxvYXRpbmdCdXR0b25zKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVXaWR0aCA9IDIwOyAvLyBTZXQgd2lkdGggb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlSGVpZ2h0ID0gMjA7IC8vIFNldCBoZWlnaHQgb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFBvcyA9ICQodGhpcykub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBldmVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUucGFnZVggPj0gZWxlbWVudFBvcy5sZWZ0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VYIDw9IGVsZW1lbnRQb3MubGVmdCArIGJlZm9yZVdpZHRoICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZID49IGVsZW1lbnRQb3MudG9wICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZIDw9IGVsZW1lbnRQb3MudG9wICsgYmVmb3JlSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImNsaWNrZWQgb24gaWNvblwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiY2xpY2tlZCBvbiBcIiwgJGxpLmRhdGEoXCJ2YWx1ZVwiKSwgJGxpLmF0dHIoXCJjbGFzc1wiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSB0aGUgcGFnZSB3aWxsIGhpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QodGhhdC4kY29tYm8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fcG9wdWxhdGUoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgY29uc3QgZXh0cmFjdEV2ZW50RmllbGRJbmZvID0gKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCwgfSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9leHRyYWN0RXZlbnRUeXBlc2A7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIHJldHVybiB7IGV2ZW50czogbnVsbCB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgZXZlbnRzID0gcmVzcG9uc2UuZXZlbnRzO1xuICAgICAgICByZXR1cm4geyBldmVudHMgfTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGdldEVuZFBvaW50QXR0cmlidXRlcyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCByZWROb2RlID0gUkVELm5vZGVzLm5vZGUoZW5kcG9pbnRJZCk7XG4gICAgICAgIGlmICghcmVkTm9kZSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIC8vIGNvbnN0IGNyZWRlbnRpYWxzID0gUkVELihlbmRwb2ludElkKTtcbiAgICAgICAgLy8gd2UgbmVlZCB0byBzYW5pdGl6ZSBhbmQgZXh0cmFjdCB0aGUgZW5kcG9pbnQgYXR0cmlidXRlcyBvbmx5ICggbm90IHRoZSBub2RlLXJlZCBzdHVmZilcbiAgICAgICAgY29uc3QgeyBlbmRwb2ludCwgc2VjdXJpdHlNb2RlLCBzZWN1cml0eVBvbGljeSwgdXNlcklkZW50aXR5VHlwZSwgY3JlZGVudGlhbHMgfSA9IHJlZE5vZGU7XG4gICAgICAgIGNvbnN0IHJldFZhbHVlID0ge1xuICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICBzZWN1cml0eU1vZGUsXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICBjcmVkZW50aWFscyxcbiAgICAgICAgfTtcbiAgICAgICAgLy8geHggY29uc29sZS5sb2coXCJ4eHhcIiwgcmV0VmFsdWUpO1xuICAgICAgICByZXR1cm4gcmV0VmFsdWU7XG4gICAgfTtcbiAgICBjb25zdCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBnZXRFbmRwb2ludFBhcmFtZXRlcnMsXG4gICAgICAgIH07XG4gICAgfTtcbiAgICBjb25zdCBnZXRFbmRwb2ludFBhcmFtZXRlcnMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnROciA9IGdldEVuZFBvaW50QXR0cmlidXRlcygpO1xuICAgICAgICBpZiAoIWVuZHBvaW50TnIpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlkOiBlbmRwb2ludElkLFxuICAgICAgICAgICAgLy8gZW5kcG9pbnQ6IGVuZHBvaW50TnIuZW5kcG9pbnQsXG4gICAgICAgICAgICAvLyBzZWN1cml0eU1vZGU6IGVuZHBvaW50TnIuc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgLy8gc2VjdXJpdHlQb2xpY3k6IGVuZHBvaW50TnIuc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gdXNlcklkZW50aXR5VHlwZTogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgLy8gY3JlZGVudGlhbDogZW5kcG9pbnROci5jcmVkZW50aWFscyxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyB1c2VyTmFtZTogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlID09PSBcIlVzZXJOYW1lXCIgPyBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJOYW1lIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgLy8gcGFzc3dvcmQ6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci5jcmVkZW50aWFscy5wYXNzd29yZCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC8vIHVzZXJDZXJ0aWZpY2F0ZTogZW5kcG9pbnROci5jcmVkZW50aWFscy51c2VyQ2VydGlmaWNhdGUsXG4gICAgICAgICAgICAvLyB1c2VyUHJpdmF0ZWtleTogZW5kcG9pbnROci5jcmVkZW50aWFscy51c2VyUHJpdmF0ZWtleSxcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgUkVELm5vZGVzLnJlZ2lzdGVyVHlwZShcIk9wY1VhLUNsaWVudDItTW9uaXRvckV2ZW50XCIsIHtcbiAgICAgICAgY2F0ZWdvcnk6IFwib3BjdWFcIixcbiAgICAgICAgY29sb3I6IFwiI0MwREVFRFwiLFxuICAgICAgICBhbGlnbjogXCJyaWdodFwiLFxuICAgICAgICBpY29uOiBcIm9wY3VhbG9nb2JpZy5wbmdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcIm1vbml0b3IgZXZlbnRzXCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBpbnB1dHM6IHsgdmFsdWU6IDEgfSxcbiAgICAgICAgICAgIG91dHB1dDogeyB2YWx1ZTogNCB9LFxuICAgICAgICAgICAgbmFtZTogeyB2YWx1ZTogXCJcIiB9LFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlLCB0eXBlOiBcIk9wY1VhLUVuZHBvaW50MlwiIH0sXG4gICAgICAgICAgICBzdWJzY3JpcHRpb246IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJcIixcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2YWxpZGF0ZTogKHZhbCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsID09PSBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN0YXJ0SW1tZWRpYXRlbHk6IHsgdmFsdWU6IHRydWUsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICAvLyB3ZSB1c2UgYSBkaWZmZXJlbnQgd2lkZ2V0IGZvciBlZGl0aW5nIHRoZSBub2RlSWQsIGJlY2F1c2UgdGhlIGJlaGF2aW9yXG4gICAgICAgICAgICAvLyBpcyBzcGVjaWZpYyB0byBtb25pdG9yLCBob3dldmVyIHByb3BlcnR5IHdpbGwgYmUgc3RvcmVkIGluIG5vZGVJZFxuICAgICAgICAgICAgbm9kZUlkOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogZmFsc2UsIHZhbGlkYXRlOiAoKSA9PiB0cnVlIH0sXG4gICAgICAgICAgICBzYW1wbGluZ0ludGVydmFsOiB7IHZhbHVlOiAxMDAwLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgZGlzY2FyZE9sZGVzdDogeyB2YWx1ZTogdHJ1ZSwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHF1ZXVlU2l6ZTogeyB2YWx1ZTogMTAsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBzZWxlY3RDbGF1c2VzOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgd2hlcmVDbGF1c2U6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICB9LFxuICAgICAgICAvLyBpbnB1dHM6LFxuICAgICAgICBvdXRwdXRzOiAyLCAvLyAyIG91dHB1dCwgc2Vjb25kIGZvciByYXcgbm9kZS1vcGN1YSBkaWFnbm9zdGljcyBvciBtb3JlIGNvbXBsZXRlIG1lc3NhZ2VcbiAgICAgICAgbGFiZWwoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lIHx8IFwiT1BDVUEgTW9uaXRvclwiO1xuICAgICAgICB9LFxuICAgICAgICBsYWJlbFN0eWxlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSA/IFwibm9kZV9sYWJlbF9pdGFsaWNcIiA6IFwiXCI7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHByZXBhcmUoKSB7XG4gICAgICAgICAgICBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQoKTtcbiAgICAgICAgICAgIGRlY2xhcmVFdmVudEZpZWxkU2VsZWN0b3JXaWRnZXQoKTtcbiAgICAgICAgICAgIGluc3RhbGxTdWJzY3JpcHRpb25TZWxlY3RvcihSRUQsIHRoaXMpO1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSBBY3Rpb24gTW9uaXRvciBDb21tb25cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyAtLSBpbnN0YWxsIHN1YnNjcmlwdGlvbiBzZWxlY3Rpb25cbiAgICAgICAgICAgICQoXCJub2RlLWlucHV0LXN0YXJ0SW1tZWRpYXRlbHlcIikub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoZWNrZWQgPSAkKFwiI25vZGUtaW5wdXQtc3RhcnRJbW1lZGlhdGVseVwiKS5wcm9wKFwiY2hlY2tlZFwiKTtcbiAgICAgICAgICAgICAgICBpZiAoY2hlY2tlZCkge1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtaW5wdXRzXCIpLnZhbCgwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1pbnB1dHNcIikudmFsKDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSBBY3Rpb24gTW9uaXRvclxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIGNvbnN0ICRub2RlSWQgPSAkKFwiI25vZGUtaW5wdXQtbm9kZUlkXCIpO1xuICAgICAgICAgICAgJG5vZGVJZC5ub2RlQnJvd3NlcihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSksIHsgZmlsdGVyKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiT2JqZWN0XCI7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBpc1NlbGVjdGFibGUobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJPYmplY3RcIiAvKiB0byBkbyB8fCBub2RlRGVzYy5ldmVudE5vdGlmaWVyID09PSAxICovO1xuICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICAgICAgLy8gLS0tLS0tIGluc3RhbGwgZXZlbnQgZmllbGQgc2VsZWN0b3JcbiAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC13aGVyZUNsYXVzZVwiKTtcbiAgICAgICAgICAgIGNvbnN0ICRzZWxlY3RDbGF1c2VzID0gJChcIiNub2RlLWlucHV0LXNlbGVjdENsYXVzZXNcIik7XG4gICAgICAgICAgICAkc2VsZWN0Q2xhdXNlcy5ldmVudEZpZWxkU2VsZWN0b3IoT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHNhdmUoKSB7XG4gICAgICAgICAgICBjb25zdCBzdGFydEltbWVkaWF0ZWx5ID0gJChcIiNub2RlLWlucHV0LXN0YXJ0SW1tZWRpYXRlbHlcIikucHJvcChcImNoZWNrZWRcIik7XG4gICAgICAgICAgICBpZiAoc3RhcnRJbW1lZGlhdGVseSkge1xuICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLnZhbChzdGFydEltbWVkaWF0ZWx5ID8gMCA6IDEpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRzID0gc3RhcnRJbW1lZGlhdGVseSA/IDAgOiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXN0YXJ0SW1tZWRpYXRlbHlcIikudmFsKDEpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRzID0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9KTtcblxufSkoKTsiXX0=
|
9
9
|
</script>
|
10
10
|
<script type="text/x-red" data-template-name="OpcUa-Client2-MonitorEvent">
|
11
11
|
<style>
|