@opcua/for-node-red 2.3.0 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +1 -1
- package/all.js +2 -2
- package/assets/darwin-x63_lexactivator.node +1 -1
- package/assets/darwin-x63_lexfloatclient.node +1 -0
- package/assets/linux-arm64_lexactivator.node +1 -1
- package/assets/linux-arm64_lexfloatclient.node +1 -0
- package/assets/linux-arm_lexactivator.node +1 -1
- package/assets/linux-x64_lexactivator.node +1 -1
- package/assets/linux-x64_lexfloatclient.node +1 -0
- package/assets/win32-ia32_LexActivator.dll +1 -1
- package/assets/win32-ia32_LexFloatClient.dll +1 -0
- package/assets/win32-ia32_lexactivator.node +1 -1
- package/assets/win32-ia32_lexfloatclient.node +1 -0
- package/assets/win32-x64_LexActivator.dll +1 -1
- package/assets/win32-x64_LexFloatClient.dll +1 -0
- package/assets/win32-x64_lexactivator.node +1 -1
- package/assets/win32-x64_lexfloatclient.node +1 -0
- package/package.json +2 -2
- package/source/OpcUa-Client2-Browse/OpcUa-Client2-Browse.html +2 -2
- package/source/OpcUa-Client2-Call/OpcUa-Client2-Call.html +2 -2
- package/source/OpcUa-Client2-Explore/OpcUa-Client2-Explore.html +2 -2
- package/source/OpcUa-Client2-Monitor/OpcUa-Client2-Monitor.html +2 -2
- package/source/OpcUa-Client2-MonitorEvent/OpcUa-Client2-MonitorEvent.html +2 -2
- package/source/OpcUa-Client2-Read/OpcUa-Client2-Read.html +2 -2
- package/source/OpcUa-Client2-Write/OpcUa-Client2-Write.html +2 -2
- package/source/OpcUa-Endpoint2/OpcUa-Endpoint2.css +1 -1
- package/source/OpcUa-Endpoint2/OpcUa-Endpoint2.html +3 -3
@@ -4,8 +4,8 @@
|
|
4
4
|
</style>
|
5
5
|
|
6
6
|
<script type="text/javascript">
|
7
|
-
function _0x1462(_0x3e2a3e,_0xad6540){const _0x37529e=_0x3752();return _0x1462=function(_0x146257,_0x1e2bfe){_0x146257=_0x146257-0x162;let _0x2f2c62=_0x37529e[_0x146257];return _0x2f2c62;},_0x1462(_0x3e2a3e,_0xad6540);}(function(_0x16f54f,_0x253415){const _0x21b02b=_0x1462,_0x39dad0=_0x16f54f();while(!![]){try{const _0x27a8f8=parseInt(_0x21b02b(0x1ad))/0x1*(parseInt(_0x21b02b(0x217))/0x2)+parseInt(_0x21b02b(0x1b5))/0x3*(parseInt(_0x21b02b(0x245))/0x4)+parseInt(_0x21b02b(0x1c8))/0x5*(-parseInt(_0x21b02b(0x1da))/0x6)+-parseInt(_0x21b02b(0x1ac))/0x7*(-parseInt(_0x21b02b(0x162))/0x8)+parseInt(_0x21b02b(0x1cd))/0x9+-parseInt(_0x21b02b(0x208))/0xa+-parseInt(_0x21b02b(0x1b9))/0xb;if(_0x27a8f8===_0x253415)break;else _0x39dad0['push'](_0x39dad0['shift']());}catch(_0x1d16d2){_0x39dad0['push'](_0x39dad0['shift']());}}}(_0x3752,0x266e6),(function(){'use strict';const _0x17cdc5=_0x1462;function _0x2aff97(_0x3338d9,_0xa2ee23){const _0x46aef1=_0x1462,_0x389cc1=$(_0x46aef1(0x20d)),_0x389a97=$('#node-input-subscription'),_0x1e475d=()=>{const _0x52f1a2=_0x46aef1,_0x44a088=_0x3338d9[_0x52f1a2(0x213)][_0x52f1a2(0x21e)](_0x389cc1['val']());_0x389a97[_0x52f1a2(0x17c)]();if(!_0x44a088||!_0x44a088[_0x52f1a2(0x242)])return;if(_0x44a088['subscriptions'])for(const _0x4bf9a2 of _0x44a088[_0x52f1a2(0x242)]){const _0x11e00b=_0x4bf9a2[_0x52f1a2(0x16e)]||_0x4bf9a2['id'];$('<option/>',{'value':_0x4bf9a2['id'],'label':_0x11e00b,'selected':_0x4bf9a2['id']===_0xa2ee23['subscription']})[_0x52f1a2(0x18d)](_0x11e00b)[_0x52f1a2(0x1f3)](_0x389a97);}};_0x1e475d(),_0x389a97['on'](_0x46aef1(0x244),()=>{_0x1e475d();}),_0x389cc1['on'](_0x46aef1(0x177),()=>{_0x1e475d();});}function _0x2f78f2(_0x538ff8,_0x40a675,_0x5f4850,_0x376b83){function _0x25e105(_0x138fee){return _0x138fee instanceof _0x5f4850?_0x138fee:new _0x5f4850(function(_0x4cd165){_0x4cd165(_0x138fee);});}return new(_0x5f4850||(_0x5f4850=Promise))(function(_0x23e03c,_0x44cce3){const _0x5ba5e1=_0x1462;function _0x419350(_0x1d0e2e){const _0xd7245c=_0x1462;try{_0x39ed0f(_0x376b83[_0xd7245c(0x1cb)](_0x1d0e2e));}catch(_0x257725){_0x44cce3(_0x257725);}}function _0xdb9acb(_0x541dc3){const _0x2b7709=_0x1462;try{_0x39ed0f(_0x376b83[_0x2b7709(0x174)](_0x541dc3));}catch(_0x487c0d){_0x44cce3(_0x487c0d);}}function _0x39ed0f(_0x3347cf){const _0x19af7a=_0x1462;_0x3347cf[_0x19af7a(0x1d5)]?_0x23e03c(_0x3347cf[_0x19af7a(0x23d)]):_0x25e105(_0x3347cf[_0x19af7a(0x23d)])[_0x19af7a(0x172)](_0x419350,_0xdb9acb);}_0x39ed0f((_0x376b83=_0x376b83[_0x5ba5e1(0x19c)](_0x538ff8,_0x40a675||[]))[_0x5ba5e1(0x1cb)]());});}typeof SuppressedError==='function'?SuppressedError:function(_0x15ff1f,_0x27d56e,_0x31ccb7){const _0x25fb4d=_0x1462;var _0x751eeb=new Error(_0x31ccb7);return _0x751eeb[_0x25fb4d(0x16e)]=_0x25fb4d(0x18a),_0x751eeb[_0x25fb4d(0x19b)]=_0x15ff1f,_0x751eeb['suppressed']=_0x27d56e,_0x751eeb;};const _0x109b86='ns=0;i=35',_0x3f0c9a='ns=0;i=61',_0x16706d=_0x17cdc5(0x170),_0x49e53c='ns=0;i=46',_0x437828='ns=0;i=34',_0x1d7428='ns=0;i=45',_0x2e59ed=_0x17cdc5(0x180);var _0xf4b51d;(function(_0x533f12){const _0x11b90d=_0x17cdc5;_0x533f12[_0x533f12['Forward']=0x0]='Forward',_0x533f12[_0x533f12[_0x11b90d(0x193)]=0x1]=_0x11b90d(0x193),_0x533f12[_0x533f12['Both']=0x2]=_0x11b90d(0x1e7),_0x533f12[_0x533f12[_0x11b90d(0x1c5)]=0x3]=_0x11b90d(0x1c5);}(_0xf4b51d||(_0xf4b51d={})));var _0x51e1c6;(function(_0x13f50b){const _0x266215=_0x17cdc5;_0x13f50b[_0x13f50b[_0x266215(0x186)]=0x0]='Unspecified',_0x13f50b[_0x13f50b[_0x266215(0x243)]=0x1]=_0x266215(0x243),_0x13f50b[_0x13f50b[_0x266215(0x1a5)]=0x2]=_0x266215(0x1a5),_0x13f50b[_0x13f50b['Method']=0x4]=_0x266215(0x1d9),_0x13f50b[_0x13f50b[_0x266215(0x212)]=0x8]='ObjectType',_0x13f50b[_0x13f50b['VariableType']=0x10]=_0x266215(0x198),_0x13f50b[_0x13f50b['ReferenceType']=0x20]='ReferenceType',_0x13f50b[_0x13f50b[_0x266215(0x185)]=0x40]=_0x266215(0x185),_0x13f50b[_0x13f50b[_0x266215(0x1c4)]=0x80]=_0x266215(0x1c4);}(_0x51e1c6||(_0x51e1c6={})));var _0x380192;(function(_0x24ed31){const _0xb5cb61=_0x17cdc5;_0x24ed31[_0x24ed31[_0xb5cb61(0x243)]=0x1]=_0xb5cb61(0x243),_0x24ed31[_0x24ed31[_0xb5cb61(0x1a5)]=0x2]='Variable',_0x24ed31[_0x24ed31['Method']=0x4]=_0xb5cb61(0x1d9),_0x24ed31[_0x24ed31[_0xb5cb61(0x212)]=0x8]=_0xb5cb61(0x212),_0x24ed31[_0x24ed31[_0xb5cb61(0x198)]=0x10]=_0xb5cb61(0x198),_0x24ed31[_0x24ed31[_0xb5cb61(0x20b)]=0x20]=_0xb5cb61(0x20b),_0x24ed31[_0x24ed31['DataType']=0x40]='DataType',_0x24ed31[_0x24ed31[_0xb5cb61(0x1c4)]=0x80]=_0xb5cb61(0x1c4);}(_0x380192||(_0x380192={})));var _0x11da22;(function(_0x52bac8){const _0x24722c=_0x17cdc5;_0x52bac8[_0x52bac8[_0x24722c(0x20b)]=0x1]=_0x24722c(0x20b),_0x52bac8[_0x52bac8['IsForward']=0x2]='IsForward',_0x52bac8[_0x52bac8[_0x24722c(0x1fb)]=0x4]=_0x24722c(0x1fb),_0x52bac8[_0x52bac8['BrowseName']=0x8]=_0x24722c(0x1ff),_0x52bac8[_0x52bac8[_0x24722c(0x1a9)]=0x10]=_0x24722c(0x1a9),_0x52bac8[_0x52bac8[_0x24722c(0x1f1)]=0x20]=_0x24722c(0x1f1);}(_0x11da22||(_0x11da22={})));function _0x139b58(_0x1650bc){const _0x5315de=_0x17cdc5;switch(_0x1650bc){case _0x5315de(0x206):return _0x109b86;case'HasProperty':return _0x49e53c;case _0x5315de(0x19a):return _0x16706d;case _0x5315de(0x1b1):return _0x437828;case _0x5315de(0x1e0):return _0x1d7428;case _0x5315de(0x22f):return _0x2e59ed;}}const _0x11b448=_0x19761d=>{const _0x148afe=_0x17cdc5;switch(_0x19761d['nodeClass']){case _0x148afe(0x243):if(_0x19761d['referenceTypeId']===_0x109b86);if(_0x19761d[_0x148afe(0x23a)]===_0x3f0c9a||_0x19761d[_0x148afe(0x1dc)]===_0x148afe(0x1a3))return{'icon':_0x148afe(0x237),'color':_0x148afe(0x19d)};return{'icon':'fa-object-group','color':'SeaGreen'};case _0x148afe(0x1a5):if(_0x19761d[_0x148afe(0x1dc)]===_0x16706d)return{'icon':_0x148afe(0x16d),'color':_0x148afe(0x200)};else return _0x19761d[_0x148afe(0x1dc)]===_0x49e53c?{'icon':_0x148afe(0x16d),'color':_0x148afe(0x1fa)}:{'icon':_0x148afe(0x16d),'color':_0x148afe(0x1b6)};case _0x148afe(0x1d9):return{'icon':_0x148afe(0x232),'color':_0x148afe(0x221)};case _0x148afe(0x212):return{'icon':_0x148afe(0x1ed),'color':_0x148afe(0x23e)};case _0x148afe(0x198):return{'icon':_0x148afe(0x1bd),'color':_0x148afe(0x23e)};}return{'icon':_0x148afe(0x1d8),'color':_0x148afe(0x1a7)};},_0x94c9a1=({endpointNode:_0x5b13ee,endpoint:_0x2de0d1,baseUrl:_0x212c87},_0x495438,_0x473d94)=>_0x2f78f2(void 0x0,void 0x0,void 0x0,function*(){const _0x2e5468=_0x17cdc5,_0x5e0bbf=_0x212c87+_0x2e5468(0x1db),_0x4eada7=_0x5e0bbf+_0x2e5468(0x165),_0x255ba8=Object['assign'](Object['assign']({},_0x473d94),{'nodeId':_0x495438,'resultMask':0x3f}),_0x1df286=yield fetch(_0x4eada7,{'method':'POST','body':JSON[_0x2e5468(0x1c9)]({'endpointNode':_0x5b13ee,'endpoint':_0x2de0d1,'browseDescription':_0x255ba8}),'headers':{'Content-Type':_0x2e5468(0x1f7)}});if(_0x1df286[_0x2e5468(0x16a)]!==0xc8)return console[_0x2e5468(0x192)](_0x2e5468(0x19e),_0x1df286[_0x2e5468(0x16a)],_0x1df286[_0x2e5468(0x1b8)]),{'references':[]};console[_0x2e5468(0x192)](_0x2e5468(0x1a2),_0x1df286['status'],_0x1df286['statusText']);const _0x9a533e=yield _0x1df286['json'](),_0x3c1887=_0x9a533e['browseResult']['references']||[];return{'references':_0x3c1887};}),_0x4b6c01={'referenceTypeId':_0x139b58('HasChild'),'includeSubtypes':!![],'browseDirection':_0xf4b51d[_0x17cdc5(0x1bc)],'nodeClassMask':_0x51e1c6[_0x17cdc5(0x1a5)]|_0x51e1c6[_0x17cdc5(0x243)]|_0x51e1c6[_0x17cdc5(0x1d9)],'resultMask':0x3f},_0x5f5482={'referenceTypeId':_0x139b58(_0x17cdc5(0x206)),'includeSubtypes':!![],'browseDirection':_0xf4b51d[_0x17cdc5(0x1bc)],'nodeClassMask':_0x51e1c6[_0x17cdc5(0x1a5)]|_0x51e1c6[_0x17cdc5(0x243)]|_0x51e1c6['Method'],'resultMask':0x3f},_0x9d1f00=({endpointNode:_0x175bb0,endpoint:_0x386e5d,baseUrl:_0x4a5c13},_0x2dbc68,_0x2cdb0e)=>_0x2f78f2(void 0x0,void 0x0,void 0x0,function*(){const _0x280e2d=_0x17cdc5,_0x554ba5=_0x4a5c13+_0x280e2d(0x1db),_0x26d745=_0x2dbc68[_0x280e2d(0x20e)](),_0x58b9ff=yield fetch(_0x554ba5+_0x280e2d(0x1de),{'method':'POST','body':JSON[_0x280e2d(0x1c9)]({'endpointNode':_0x175bb0,'endpoint':_0x386e5d,'nodeId':_0x26d745}),'headers':{'Content-Type':_0x280e2d(0x1f7)}}),_0x586b23=(_0x16da33,_0x12a129)=>{const _0x121c5c=_0x280e2d;_0x2cdb0e[_0x121c5c(0x18d)](_0x16da33)[_0x121c5c(0x1a0)](_0x121c5c(0x171))[_0x121c5c(0x1a0)](_0x12a129),_0x2cdb0e[_0x121c5c(0x233)](),setTimeout(()=>{const _0x414a46=_0x121c5c;_0x2cdb0e[_0x414a46(0x231)](_0x12a129),_0x2cdb0e[_0x414a46(0x21f)]();},0xbb8);},_0x2f6261=yield _0x58b9ff['json']();_0x58b9ff[_0x280e2d(0x16a)]!==0xc8?_0x586b23(_0x280e2d(0x20a)+_0x26d745,_0x280e2d(0x21d)):_0x2f6261[_0x280e2d(0x1a6)]['match'](/Good/)?(_0x2dbc68[_0x280e2d(0x20e)](_0x2f6261[_0x280e2d(0x224)]),_0x2dbc68[_0x280e2d(0x239)]('change'),_0x586b23(_0x280e2d(0x249),'ok')):(_0x2dbc68['val'](''+_0x26d745),_0x586b23(_0x2f6261[_0x280e2d(0x1a6)]+'\x20'+_0x58b9ff['statusText'],_0x280e2d(0x21d)));});function _0x342bde(_0x4a52ab,_0x35165c){return _0x2f78f2(this,void 0x0,void 0x0,function*(){const _0x1a566f=_0x1462,_0x532e6f=_0x4a52ab[_0x1a566f(0x21c)](_0x1a566f(0x23d)),_0x559e4d=yield _0x94c9a1(_0x35165c,_0x532e6f,_0x4b6c01),_0x46f7f0=yield _0x94c9a1(_0x35165c,_0x532e6f,_0x5f5482);return{'references':[..._0x559e4d[_0x1a566f(0x1d0)],..._0x46f7f0[_0x1a566f(0x1d0)]]};});}const _0x55fb5b={'referenceTypeId':_0x139b58(_0x17cdc5(0x1e0)),'includeSubtypes':!![],'browseDirection':_0xf4b51d[_0x17cdc5(0x1bc)],'nodeClassMask':_0x51e1c6[_0x17cdc5(0x20b)]|_0x51e1c6[_0x17cdc5(0x212)]|_0x51e1c6['DataType']|_0x51e1c6[_0x17cdc5(0x198)],'resultMask':0x3f};function _0x4d47a0(_0x49aeec,_0x4e64ad){return _0x2f78f2(this,void 0x0,void 0x0,function*(){const _0x19923e=_0x1462,_0x1ea726=_0x49aeec[_0x19923e(0x21c)]('value'),_0x4e95ae=yield _0x94c9a1(_0x4e64ad,_0x1ea726,_0x55fb5b);return _0x4e95ae;});}const _0x1cf111=_0x22bed1=>{const _0x318296=_0x17cdc5;var _0x1860f9,_0x3b5f84;if(!_0x22bed1){const _0xb0893e=$(_0x318296(0x1fc));return _0xb0893e;}const _0x454b02=_0x22bed1['nodeId'][_0x318296(0x1ee)](),_0x2dab35=((_0x1860f9=_0x22bed1[_0x318296(0x1cc)])===null||_0x1860f9===void 0x0?void 0x0:_0x1860f9[_0x318296(0x18d)])||((_0x3b5f84=_0x22bed1[_0x318296(0x1ab)])===null||_0x3b5f84===void 0x0?void 0x0:_0x3b5f84[_0x318296(0x16e)])||_0x22bed1[_0x318296(0x16b)]['toString'](),{icon:_0x5d18b9,color:_0x2d66ce}=_0x11b448(_0x22bed1),_0x51cf5a=$(_0x318296(0x19f)+_0x5d18b9+_0x318296(0x1ae)+_0x2d66ce+_0x318296(0x23c)+_0x2dab35+_0x318296(0x226));return _0x51cf5a[_0x318296(0x1a0)](_0x318296(0x17f)),_0x51cf5a[_0x318296(0x21c)](_0x318296(0x23d),_0x454b02),_0x51cf5a['data'](_0x318296(0x1e9),_0x22bed1),_0x51cf5a;},_0x4a709a=()=>{const _0x5922a0=_0x17cdc5;$[_0x5922a0(0x195)]('sterfive.nodeBrowser',{'options':{'endpointNode':()=>({'endpoint':_0x5922a0(0x1e5)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':'Objects'},'nodeClass':'Object','nodeId':_0x5922a0(0x1b0),'displayName':{'text':'Objects'},'typeDefinition':_0x3f0c9a}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x2f78f2(this,void 0x0,void 0x0,function*(){const _0x4475d1=_0x1462,_0x4fe01d=this,_0x3fc946=typeof _0x4fe01d['options']['parentNode']===_0x4475d1(0x194)?_0x4fe01d[_0x4475d1(0x1f5)][_0x4475d1(0x1b3)]():_0x4fe01d[_0x4475d1(0x1f5)]['parentNode'];if(_0x3fc946 instanceof Promise)return yield _0x3fc946;return _0x3fc946;});},'reset'(){const _0x4b0ac6=_0x5922a0,_0x3dbe4e=this;_0x3dbe4e[_0x4b0ac6(0x1e3)]['empty'](),this[_0x4b0ac6(0x175)]()[_0x4b0ac6(0x172)](_0xdc0972=>{const _0x546f35=_0x4b0ac6,_0x58f2f8=_0x1cf111(_0xdc0972);_0x3dbe4e[_0x546f35(0x1e3)][_0x546f35(0x179)](_0x58f2f8),_0x3dbe4e['currentParent']=_0xdc0972;});},'verify'(){const _0x16f8dc=_0x5922a0,_0x431693=this,_0x380406={'baseUrl':_0x431693[_0x16f8dc(0x1f5)][_0x16f8dc(0x17d)],'endpointNode':typeof _0x431693['options'][_0x16f8dc(0x214)]==='function'?_0x431693['options'][_0x16f8dc(0x214)]():_0x431693[_0x16f8dc(0x1f5)]['endpointNode'],'endpoint':typeof _0x431693['options'][_0x16f8dc(0x178)]==='function'?_0x431693['options']['endpoint']():_0x431693[_0x16f8dc(0x1f5)][_0x16f8dc(0x178)]};_0x9d1f00(_0x380406,_0x431693[_0x16f8dc(0x209)],_0x431693[_0x16f8dc(0x1ce)]);},'_create'(){const _0x5225bc=_0x5922a0,_0x50be9d=this;function _0x1bbf35(_0x5cd3da,_0x3a7393,_0x59b308){return _0x2f78f2(this,void 0x0,void 0x0,function*(){const _0x8a669e=_0x1462;if(_0x5cd3da[_0x8a669e(0x1bf)]('fetched')){console[_0x8a669e(0x192)]('already\x20fetched');return;}if(_0x5cd3da[_0x8a669e(0x1bf)](_0x8a669e(0x17e))){console['log'](_0x8a669e(0x1c2));return;}_0x5cd3da[_0x8a669e(0x1a0)]('loading'),_0x5cd3da[_0x8a669e(0x179)](_0x8a669e(0x163));try{_0x5cd3da['children']('ul')['empty']();const {references:_0x544a78}=yield _0x3a7393(_0x5cd3da,_0x59b308);for(const _0x32ac5a of _0x544a78){if(_0x50be9d[_0x8a669e(0x1f5)][_0x8a669e(0x1ca)]&&!_0x50be9d[_0x8a669e(0x1f5)][_0x8a669e(0x1ca)](_0x32ac5a))continue;const _0x49776f=_0x1cf111(_0x32ac5a);_0x5cd3da[_0x8a669e(0x22b)]('ul')[_0x8a669e(0x179)](_0x49776f);}_0x5cd3da[_0x8a669e(0x1a0)](_0x8a669e(0x196));}catch(_0x2aea7d){_0x5cd3da[_0x8a669e(0x22b)]('ul')['append'](_0x8a669e(0x236)+_0x2aea7d[_0x8a669e(0x1b7)]+_0x8a669e(0x1d7)),console[_0x8a669e(0x192)](_0x8a669e(0x241),_0x2aea7d);}_0x5cd3da[_0x8a669e(0x222)]('.spinner')[_0x8a669e(0x1f8)](),_0x5cd3da[_0x8a669e(0x231)]('loading');});}_0x50be9d[_0x5225bc(0x209)]=this[_0x5225bc(0x1f0)],_0x50be9d['$combo']=$(_0x5225bc(0x166)),_0x50be9d[_0x5225bc(0x240)]['addClass']('sterfive-combo-box'),this[_0x5225bc(0x1f0)]['replaceWith'](_0x50be9d['$combo']),_0x50be9d[_0x5225bc(0x1d6)]=$(_0x5225bc(0x166))['addClass'](_0x5225bc(0x181)),_0x50be9d['$combo']['append'](_0x50be9d[_0x5225bc(0x1d6)]),_0x50be9d[_0x5225bc(0x1d6)]['append'](_0x50be9d[_0x5225bc(0x209)]),_0x50be9d['$toggleTreeBtn']=$(_0x5225bc(0x1bb)),_0x50be9d['$inputGroup'][_0x5225bc(0x179)](_0x50be9d[_0x5225bc(0x218)]),_0x50be9d[_0x5225bc(0x218)]['on']('click',function(){const _0x47d3a9=_0x5225bc;!_0x50be9d[_0x47d3a9(0x191)]['is'](':visible')&&(_0x50be9d[_0x47d3a9(0x175)]()[_0x47d3a9(0x172)](_0xf308c0=>{const _0x21700a=_0x47d3a9;var _0x21b997;(_0xf308c0!==_0x50be9d[_0x21700a(0x23b)]||((_0x21b997=_0x50be9d['currentParent'])===null||_0x21b997===void 0x0?void 0x0:_0x21b997[_0x21700a(0x16b)])!==_0xf308c0[_0x21700a(0x16b)])&&_0x50be9d[_0x21700a(0x1b2)]();}),_0x50be9d[_0x47d3a9(0x1ce)][_0x47d3a9(0x21f)]()),_0x50be9d[_0x47d3a9(0x191)][_0x47d3a9(0x1f6)]();}),_0x50be9d[_0x5225bc(0x21b)]=$(_0x5225bc(0x188)),_0x50be9d[_0x5225bc(0x1d6)][_0x5225bc(0x179)](_0x50be9d['$verifyBtn']),_0x50be9d['$verifyBtn']['on'](_0x5225bc(0x225),()=>{const _0x16790e=_0x5225bc;this[_0x16790e(0x16c)]();}),!_0x50be9d[_0x5225bc(0x209)][_0x5225bc(0x210)](_0x5225bc(0x182))&&_0x50be9d[_0x5225bc(0x209)]['attr']('placeholder','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20'),_0x50be9d['$info']=$(_0x5225bc(0x229)),_0x50be9d[_0x5225bc(0x1ce)]['hide'](),{'baseUrl':_0x50be9d[_0x5225bc(0x1f5)][_0x5225bc(0x17d)],'endpointNode':typeof _0x50be9d['options'][_0x5225bc(0x214)]===_0x5225bc(0x194)?_0x50be9d[_0x5225bc(0x1f5)][_0x5225bc(0x214)]():_0x50be9d[_0x5225bc(0x1f5)][_0x5225bc(0x214)],'endpoint':typeof _0x50be9d[_0x5225bc(0x1f5)][_0x5225bc(0x178)]===_0x5225bc(0x194)?_0x50be9d['options'][_0x5225bc(0x178)]():_0x50be9d['options'][_0x5225bc(0x178)]},_0x50be9d[_0x5225bc(0x191)]=$(_0x5225bc(0x166))[_0x5225bc(0x1a0)](_0x5225bc(0x1a1))[_0x5225bc(0x21f)](),_0x50be9d[_0x5225bc(0x240)][_0x5225bc(0x179)](_0x50be9d[_0x5225bc(0x1ce)]),_0x50be9d['$combo'][_0x5225bc(0x179)](_0x50be9d[_0x5225bc(0x191)]),_0x50be9d[_0x5225bc(0x1e3)]=$('<ul\x20class=\x22sterfive-tree\x22></ul>')[_0x5225bc(0x1f3)](_0x50be9d['$dropdown']),this[_0x5225bc(0x1b2)](),_0x50be9d[_0x5225bc(0x1e3)]['on']('click','li',function(_0x1bdef5){const _0x2de361=_0x5225bc;var _0x3b802a,_0x2d39c3;_0x1bdef5[_0x2de361(0x1be)]();let _0x3eabb2=$(this);const _0x9210ea=0x14,_0x32730d=0x14,_0x2c0d6d=$(this)['offset'](),_0x3f2c84=_0x1bdef5;if(_0x3f2c84[_0x2de361(0x1ec)]>=_0x2c0d6d[_0x2de361(0x17b)]&&_0x3f2c84[_0x2de361(0x1ec)]<=_0x2c0d6d['left']+_0x9210ea&&_0x3f2c84[_0x2de361(0x184)]>=_0x2c0d6d[_0x2de361(0x24b)]&&_0x3f2c84[_0x2de361(0x184)]<=_0x2c0d6d[_0x2de361(0x24b)]+_0x32730d){if(_0x3eabb2['hasClass']('expandable')){if(_0x3eabb2[_0x2de361(0x1bf)]('fetched')){_0x3eabb2[_0x2de361(0x231)](_0x2de361(0x17f))[_0x2de361(0x1a0)](_0x2de361(0x207)),_0x3eabb2[_0x2de361(0x22b)]('ul')[_0x2de361(0x1f6)]();return;}const _0x1a68fc={'baseUrl':_0x50be9d[_0x2de361(0x1f5)][_0x2de361(0x17d)],'endpointNode':typeof _0x50be9d[_0x2de361(0x1f5)][_0x2de361(0x214)]===_0x2de361(0x194)?_0x50be9d[_0x2de361(0x1f5)]['endpointNode']():_0x50be9d[_0x2de361(0x1f5)][_0x2de361(0x214)],'endpoint':typeof _0x50be9d[_0x2de361(0x1f5)][_0x2de361(0x178)]===_0x2de361(0x194)?_0x50be9d[_0x2de361(0x1f5)]['endpoint']():_0x50be9d[_0x2de361(0x1f5)][_0x2de361(0x178)]},_0x4bc35a=!_0x50be9d[_0x2de361(0x1f5)][_0x2de361(0x17a)]?_0x342bde:_0x4d47a0;_0x1bbf35(_0x3eabb2,_0x4bc35a,_0x1a68fc)[_0x2de361(0x172)](()=>{const _0x1a48f7=_0x2de361;console[_0x1a48f7(0x192)](_0x1a48f7(0x1c3)),console[_0x1a48f7(0x192)](_0x1a48f7(0x196)),_0x3eabb2[_0x1a48f7(0x231)](_0x1a48f7(0x17f))['addClass'](_0x1a48f7(0x207));})[_0x2de361(0x164)](_0x3bb318=>{const _0x16a820=_0x2de361;_0x3eabb2[_0x16a820(0x231)](_0x16a820(0x17f))[_0x16a820(0x1a0)]('expanded'),console[_0x16a820(0x192)](_0x16a820(0x19b),_0x3bb318);});}else{if(_0x3eabb2['hasClass']('expanded'))_0x3eabb2['children']('ul')['toggle'](),_0x3eabb2[_0x2de361(0x1f2)](_0x2de361(0x1a4));else{if(_0x3eabb2[_0x2de361(0x22b)]('ul')[_0x2de361(0x22b)]()[_0x2de361(0x227)]>0x0)_0x3eabb2[_0x2de361(0x22b)]('ul')[_0x2de361(0x1f6)](),_0x3eabb2[_0x2de361(0x1f2)](_0x2de361(0x1a4));else;}}}else{const _0x190a94=_0x3eabb2['data'](_0x2de361(0x23d)),_0x48b715=_0x3eabb2[_0x2de361(0x21c)]('reference');if(_0x50be9d[_0x2de361(0x1f5)]['isSelectable']&&!_0x50be9d[_0x2de361(0x1f5)][_0x2de361(0x20f)](_0x48b715))return;_0x50be9d['$input']['data'](_0x2de361(0x1e9),_0x48b715);const _0x27b4b5=((_0x3b802a=_0x48b715[_0x2de361(0x1cc)])===null||_0x3b802a===void 0x0?void 0x0:_0x3b802a[_0x2de361(0x18d)])||((_0x2d39c3=_0x48b715[_0x2de361(0x1ab)])===null||_0x2d39c3===void 0x0?void 0x0:_0x2d39c3[_0x2de361(0x16e)])||_0x48b715[_0x2de361(0x16b)][_0x2de361(0x1ee)](),_0x3bafc7='['+_0x27b4b5+']('+_0x190a94+')';_0x50be9d[_0x2de361(0x209)][_0x2de361(0x20e)](_0x3bafc7),_0x50be9d[_0x2de361(0x209)][_0x2de361(0x239)](_0x2de361(0x177)),_0x50be9d[_0x2de361(0x191)][_0x2de361(0x21f)]();}}),$(document)['on'](_0x5225bc(0x225),function(_0x4029ed){const _0x4c1cca=_0x5225bc;!$(_0x4029ed[_0x4c1cca(0x1ef)])[_0x4c1cca(0x1e2)](_0x50be9d[_0x4c1cca(0x240)])[_0x4c1cca(0x227)]&&_0x50be9d[_0x4c1cca(0x191)]['hide']();});}});},_0x52b50a=_0x40c031=>{const _0x198616=_0x17cdc5;var _0x2736ab,_0x167a73,_0x3767e7;if(!_0x40c031){const _0x356cc4=$(_0x198616(0x1fc));return _0x356cc4;}const _0x15e844=_0x40c031[_0x198616(0x16b)][_0x198616(0x1ee)]();let _0x1287e1=((_0x2736ab=_0x40c031[_0x198616(0x1cc)])===null||_0x2736ab===void 0x0?void 0x0:_0x2736ab[_0x198616(0x18d)])||((_0x167a73=_0x40c031[_0x198616(0x1ab)])===null||_0x167a73===void 0x0?void 0x0:_0x167a73[_0x198616(0x16e)])||_0x40c031[_0x198616(0x16b)][_0x198616(0x1ee)](),_0x3927fa=(_0x3767e7=_0x40c031[_0x198616(0x1ab)])===null||_0x3767e7===void 0x0?void 0x0:_0x3767e7[_0x198616(0x22e)];_0x1287e1+=_0x3927fa!==undefined&&_0x40c031[_0x198616(0x1aa)][_0x198616(0x197)](/Type/)?_0x198616(0x230)+_0x3927fa+')':'';const {icon:_0x4145d5,color:_0x4eb1f7}=_0x11b448(_0x40c031),_0x82c61e=$(_0x198616(0x205));if(_0x40c031[_0x198616(0x1aa)]===_0x198616(0x1a5)){const _0x2479f8=$(_0x198616(0x24a));_0x82c61e[_0x198616(0x179)](_0x2479f8),_0x2479f8['on']('click',function(){const _0x29f2ef=_0x198616;_0x2479f8[_0x29f2ef(0x1bf)](_0x29f2ef(0x219))?_0x2479f8[_0x29f2ef(0x231)]('unchecked')[_0x29f2ef(0x1a0)](_0x29f2ef(0x1f9)):_0x2479f8[_0x29f2ef(0x231)](_0x29f2ef(0x1f9))[_0x29f2ef(0x1a0)](_0x29f2ef(0x219));});}return _0x82c61e[_0x198616(0x179)]($(_0x198616(0x220)+_0x4145d5+_0x198616(0x1ae)+_0x4eb1f7+';\x22></i>'+_0x1287e1+'<ul></ul>')),_0x82c61e[_0x198616(0x1a0)](_0x198616(0x17f)),_0x82c61e['data'](_0x198616(0x23d),_0x15e844),_0x82c61e[_0x198616(0x21c)]('reference',_0x40c031),_0x82c61e;},_0x290280=()=>{const _0x54c6e8=_0x17cdc5;$[_0x54c6e8(0x195)](_0x54c6e8(0x1ba),{'options':{'endpointNode':()=>({'endpoint':_0x54c6e8(0x1e5)}),'endpoint':()=>undefined,'baseUrl':''},'_populate'(){var _0x285e58;return _0x2f78f2(this,void 0x0,void 0x0,function*(){const _0x2fde15=_0x1462,_0x56edad=this,_0x5bc461=new Set((_0x285e58=_0x56edad[_0x2fde15(0x209)][_0x2fde15(0x20e)]())===null||_0x285e58===void 0x0?void 0x0:_0x285e58[_0x2fde15(0x1ee)]()[_0x2fde15(0x1fe)](';')),_0x1a52d0={'baseUrl':_0x56edad['options']['baseUrl'],'endpointNode':typeof _0x56edad[_0x2fde15(0x1f5)][_0x2fde15(0x214)]===_0x2fde15(0x194)?_0x56edad[_0x2fde15(0x1f5)][_0x2fde15(0x214)]():_0x56edad[_0x2fde15(0x1f5)][_0x2fde15(0x214)],'endpoint':typeof _0x56edad[_0x2fde15(0x1f5)][_0x2fde15(0x178)]===_0x2fde15(0x194)?_0x56edad[_0x2fde15(0x1f5)][_0x2fde15(0x178)]():_0x56edad[_0x2fde15(0x1f5)][_0x2fde15(0x178)]},_0x32f1f8=yield _0x22bf14(_0x1a52d0);this[_0x2fde15(0x176)](_0x32f1f8,_0x5bc461);});},'_installTree'(_0x5a797d,_0x46a2f2){const _0x5d5801=_0x54c6e8,_0x43360d=this;_0x43360d['$tree'][_0x5d5801(0x17c)]();if(!_0x5a797d[_0x5d5801(0x18f)])return;const _0x1fec9f=_0x5a797d[_0x5d5801(0x18f)],_0x2d4831=_0x52b50a(_0x1fec9f);_0x43360d[_0x5d5801(0x1e3)][_0x5d5801(0x179)](_0x2d4831);const _0x5bc52f='';this[_0x5d5801(0x1f4)](_0x2d4831[_0x5d5801(0x22b)]('ul'),_0x1fec9f,_0x5bc52f,_0x46a2f2),_0x2d4831['removeClass'](_0x5d5801(0x17f))[_0x5d5801(0x1a0)](_0x5d5801(0x207)),this[_0x5d5801(0x1e8)](_0x46a2f2);},'_installChildren'(_0xefc090,_0x47d342,_0x52789c,_0x21b911){const _0x5e2846=_0x54c6e8,_0x44c428=({name:_0x1df1b5,namespaceIndex:_0x4cb905})=>{if(_0x4cb905===0x0)return _0x1df1b5;return _0x4cb905+':'+_0x1df1b5;},_0x53ec2d=_0x47d342[_0x5e2846(0x22b)]||[],_0x3de81d=_0x47d342['subTypes']||[],_0x1053d3=[..._0x53ec2d,..._0x3de81d];for(const _0x21040e of _0x1053d3){const _0x4b60e8=_0x52b50a(_0x21040e);_0xefc090[_0x5e2846(0x179)](_0x4b60e8);let _0x5e4ef7='';_0x21040e[_0x5e2846(0x1aa)]===_0x5e2846(0x1a5)&&(_0x52789c?_0x5e4ef7=_0x52789c+'.'+_0x44c428(_0x21040e[_0x5e2846(0x1ab)]):_0x5e4ef7=_0x44c428(_0x21040e[_0x5e2846(0x1ab)]),_0x4b60e8[_0x5e2846(0x210)](_0x5e2846(0x1af),_0x5e4ef7));const _0x33f167=_0x21040e[_0x5e2846(0x22b)]&&_0x21040e['children'][_0x5e2846(0x227)],_0x1d9099=_0x21040e['subTypes']&&_0x21040e[_0x5e2846(0x201)][_0x5e2846(0x227)];!_0x33f167&&!_0x1d9099?_0x4b60e8['removeClass']('expandable')['addClass'](_0x5e2846(0x168)):(this[_0x5e2846(0x1f4)](_0x4b60e8[_0x5e2846(0x22b)]('ul'),_0x21040e,_0x5e4ef7,_0x21b911),_0x4b60e8[_0x5e2846(0x231)](_0x5e2846(0x17f))['addClass'](_0x5e2846(0x207)));}},'_updateSelectedFields'(){const _0x2aa1aa=_0x54c6e8;var _0x27a937;const _0x22b69b=this,_0x1d716=new Set((_0x27a937=_0x22b69b[_0x2aa1aa(0x209)][_0x2aa1aa(0x20e)]())===null||_0x27a937===void 0x0?void 0x0:_0x27a937[_0x2aa1aa(0x1ee)]()[_0x2aa1aa(0x1fe)](';'));this[_0x2aa1aa(0x1e8)](_0x1d716);},'_updateValues'(_0x5aa36f){const _0x37c4c8=_0x54c6e8;$(_0x37c4c8(0x189))[_0x37c4c8(0x169)](function(){const _0x2a94bd=_0x37c4c8,_0x5c590a=$(this),_0x586bc2=_0x5c590a[_0x2a94bd(0x210)](_0x2a94bd(0x1af));_0x586bc2&&_0x5aa36f[_0x2a94bd(0x223)](_0x586bc2)&&_0x5c590a['children'](_0x2a94bd(0x1d3))[_0x2a94bd(0x231)](_0x2a94bd(0x219))[_0x2a94bd(0x1a0)]('checked');});},'_setInputValue'(){const _0x2ee34a=_0x54c6e8,_0x5489d3=this,_0x599383=[];$(_0x2ee34a(0x189))[_0x2ee34a(0x169)](function(){const _0x5e7707=_0x2ee34a,_0x465ffe=$(this);if(_0x465ffe['children'](_0x5e7707(0x1e1))['length']>0x0){const _0x1849af=_0x465ffe[_0x5e7707(0x210)](_0x5e7707(0x1af));if(_0x1849af)_0x599383['push'](_0x1849af);}});const _0x4a9256=[...new Set(_0x599383)]['sort']()[_0x2ee34a(0x1dd)](';');_0x5489d3['$input']['val'](_0x4a9256),_0x5489d3['$input'][_0x2ee34a(0x239)](_0x2ee34a(0x177));},'_create'(){const _0x461e6e=_0x54c6e8,_0x5cd79d=this;_0x5cd79d[_0x461e6e(0x209)]=this[_0x461e6e(0x1f0)],_0x5cd79d[_0x461e6e(0x240)]=$(_0x461e6e(0x166)),_0x5cd79d[_0x461e6e(0x240)][_0x461e6e(0x1a0)](_0x461e6e(0x183)),this[_0x461e6e(0x1f0)][0x0][_0x461e6e(0x1d2)][_0x461e6e(0x22a)](_0x5cd79d['$combo'][0x0],this['element'][0x0]),_0x5cd79d['$inputGroup']=$(_0x461e6e(0x166))[_0x461e6e(0x1a0)](_0x461e6e(0x181)),_0x5cd79d[_0x461e6e(0x240)][_0x461e6e(0x179)](_0x5cd79d[_0x461e6e(0x1d6)]),_0x5cd79d[_0x461e6e(0x1d6)]['append'](_0x5cd79d[_0x461e6e(0x209)]),_0x5cd79d[_0x461e6e(0x218)]=$(_0x461e6e(0x1bb)),_0x5cd79d[_0x461e6e(0x1d6)][_0x461e6e(0x179)](_0x5cd79d['$toggleTreeBtn']),_0x5cd79d[_0x461e6e(0x218)]['on'](_0x461e6e(0x225),function(){const _0x5ec261=_0x461e6e;_0x5cd79d[_0x5ec261(0x191)][_0x5ec261(0x1f6)](),_0x5cd79d[_0x5ec261(0x1ce)][_0x5ec261(0x1f6)]();if(_0x5cd79d[_0x5ec261(0x191)]['is'](_0x5ec261(0x234))){_0x52d8ce[_0x5ec261(0x233)]();const _0x4b7fdc=_0x5cd79d[_0x5ec261(0x191)][_0x5ec261(0x1e6)]();_0x52d8ce[_0x5ec261(0x187)]({'top':_0x4b7fdc['top']+'px','right':_0x5ec261(0x1e4)+(_0x4b7fdc[_0x5ec261(0x17b)]+_0x5cd79d[_0x5ec261(0x191)][_0x5ec261(0x18e)]())+_0x5ec261(0x235)}),_0x5cd79d[_0x5ec261(0x22d)](),_0x5cd79d[_0x5ec261(0x22c)]();}else _0x52d8ce[_0x5ec261(0x21f)]();});!_0x5cd79d[_0x461e6e(0x209)][_0x461e6e(0x210)](_0x461e6e(0x182))&&_0x5cd79d['$input'][_0x461e6e(0x210)](_0x461e6e(0x182),_0x461e6e(0x248));_0x5cd79d[_0x461e6e(0x1ce)]=$('<div\x20class=\x22info-text\x22></div>'),_0x5cd79d['$info'][_0x461e6e(0x21f)](),_0x5cd79d[_0x461e6e(0x191)]=$('<div/>')[_0x461e6e(0x1a0)](_0x461e6e(0x1a1))[_0x461e6e(0x21f)]();const _0x50cafa=$(_0x461e6e(0x199)),_0x2b3f71=$(_0x461e6e(0x190)),_0x52d8ce=$(_0x461e6e(0x1c1))[_0x461e6e(0x179)](_0x50cafa,_0x2b3f71);_0x52d8ce[_0x461e6e(0x21f)](),_0x50cafa['on'](_0x461e6e(0x225),()=>{const _0x574248=_0x461e6e;_0x5cd79d[_0x574248(0x216)](),_0x5cd79d[_0x574248(0x191)][_0x574248(0x21f)]();}),_0x2b3f71['on'](_0x461e6e(0x225),()=>{const _0x1f08ce=_0x461e6e;_0x5cd79d[_0x1f08ce(0x191)][_0x1f08ce(0x21f)]();}),_0x5cd79d[_0x461e6e(0x240)][_0x461e6e(0x179)](_0x5cd79d[_0x461e6e(0x1ce)]),_0x5cd79d['$combo'][_0x461e6e(0x179)](_0x5cd79d[_0x461e6e(0x191)]),_0x5cd79d[_0x461e6e(0x1e3)]=$('<ul\x20class=\x22sterfive-tree\x22></ul>'),_0x5cd79d[_0x461e6e(0x191)][_0x461e6e(0x17c)]()[_0x461e6e(0x179)](_0x5cd79d['$tree'],_0x52d8ce),_0x5cd79d[_0x461e6e(0x1e3)]['on']('click','li',function(_0x4f8bf){const _0x58c20c=_0x461e6e;_0x4f8bf[_0x58c20c(0x1be)]();let _0x13bf27=$(this);const _0x2b97e4=0x14,_0x5a5fa1=0x14,_0x22c143=$(this)[_0x58c20c(0x1e6)](),_0x1c4f0e=_0x4f8bf;if(_0x1c4f0e[_0x58c20c(0x1ec)]>=_0x22c143[_0x58c20c(0x17b)]&&_0x1c4f0e['pageX']<=_0x22c143[_0x58c20c(0x17b)]+_0x2b97e4&&_0x1c4f0e['pageY']>=_0x22c143[_0x58c20c(0x24b)]&&_0x1c4f0e[_0x58c20c(0x184)]<=_0x22c143[_0x58c20c(0x24b)]+_0x5a5fa1){console['log'](_0x58c20c(0x247)),console[_0x58c20c(0x192)](_0x58c20c(0x1fd),_0x13bf27[_0x58c20c(0x21c)]('value'),_0x13bf27['attr'](_0x58c20c(0x24c)));if(_0x13bf27[_0x58c20c(0x1bf)](_0x58c20c(0x17f)))_0x13bf27[_0x58c20c(0x231)]('expandable')[_0x58c20c(0x1a0)](_0x58c20c(0x207)),_0x13bf27[_0x58c20c(0x22b)]('ul')[_0x58c20c(0x1f6)]();else{if(_0x13bf27[_0x58c20c(0x1bf)](_0x58c20c(0x207)))_0x13bf27[_0x58c20c(0x22b)]('ul')[_0x58c20c(0x1f6)](),_0x13bf27[_0x58c20c(0x1f2)](_0x58c20c(0x1a4));else{if(_0x13bf27['children']('ul')['children']()['length']>0x0)_0x13bf27[_0x58c20c(0x22b)]('ul')[_0x58c20c(0x1f6)](),_0x13bf27[_0x58c20c(0x1f2)](_0x58c20c(0x1a4));else;}}}}),$(document)['on']('click',function(_0x2fcd1f){const _0x2fa5fe=_0x461e6e;!$(_0x2fcd1f[_0x2fa5fe(0x1ef)])[_0x2fa5fe(0x1e2)](_0x5cd79d[_0x2fa5fe(0x240)])[_0x2fa5fe(0x227)]&&_0x5cd79d[_0x2fa5fe(0x191)][_0x2fa5fe(0x21f)]();}),this['_populate']();}});},_0x22bf14=({endpointNode:_0x89553b,endpoint:_0x5bacfd,baseUrl:_0x101668})=>_0x2f78f2(void 0x0,void 0x0,void 0x0,function*(){const _0x34100b=_0x17cdc5,_0x22b496=_0x101668+_0x34100b(0x1db),_0x9b0b8c=_0x22b496+'/extractEventTypes',_0x1a02ec=yield fetch(_0x9b0b8c,{'method':_0x34100b(0x18c),'body':JSON[_0x34100b(0x1c9)]({'endpointNode':_0x89553b,'endpoint':_0x5bacfd}),'headers':{'Content-Type':_0x34100b(0x1f7)}});if(_0x1a02ec[_0x34100b(0x16a)]!==0xc8)return console['log'](_0x34100b(0x19e),_0x1a02ec[_0x34100b(0x16a)],_0x1a02ec['statusText']),{'events':null};console['log'](_0x34100b(0x1a2),_0x1a02ec['status'],_0x1a02ec['statusText']);const _0x7b6c73=yield _0x1a02ec['json'](),_0x4f42ec=_0x7b6c73[_0x34100b(0x18f)];return{'events':_0x4f42ec};}),_0x145eb6=()=>{const _0x34cf96=_0x17cdc5,_0x91281d=$(_0x34cf96(0x20d)),_0x5b48a8=_0x91281d[_0x34cf96(0x20e)](),_0x42f645=RED[_0x34cf96(0x213)][_0x34cf96(0x21e)](_0x5b48a8);if(!_0x42f645)return undefined;const {endpoint:_0x322000,securityMode:_0x17c59a,securityPolicy:_0x160e2c,userIdentityType:_0xf02909,userName:_0xa589fc,password:_0x4fc12d,userCertificate:_0xc730f9,userPrivatekey:_0x1b0966}=_0x42f645;return{'endpoint':_0x322000,'securityMode':_0x17c59a,'securityPolicy':_0x160e2c,'userIdentityType':_0xf02909,'userName':_0xa589fc,'password':_0x4fc12d,'userCertificate':_0xc730f9,'userPrivatekey':_0x1b0966};},_0x431880=()=>{return{'endpointNode':_0x49ec45};},_0x49ec45=()=>{const _0x7bd443=_0x17cdc5,_0x619383=$('#node-input-endpoint'),_0x21e16e=_0x619383[_0x7bd443(0x20e)](),_0x32d5a0=_0x145eb6();if(!_0x32d5a0)return undefined;return{'id':_0x21e16e,'endpoint':_0x32d5a0[_0x7bd443(0x178)],'securityMode':_0x32d5a0[_0x7bd443(0x16f)],'securityPolicy':_0x32d5a0['securityPolicy'],'userIdentityType':_0x32d5a0[_0x7bd443(0x1c0)],'userName':_0x32d5a0[_0x7bd443(0x1c0)]===_0x7bd443(0x246)?_0x32d5a0[_0x7bd443(0x23f)]:undefined,'password':_0x32d5a0[_0x7bd443(0x1c0)]==='UserName'?_0x32d5a0[_0x7bd443(0x1eb)]:undefined,'userCertificate':_0x32d5a0[_0x7bd443(0x1a8)],'userPrivatekey':_0x32d5a0[_0x7bd443(0x1cf)]};};RED[_0x17cdc5(0x213)][_0x17cdc5(0x20c)](_0x17cdc5(0x21a),{'category':'opcua','color':_0x17cdc5(0x1c7),'align':_0x17cdc5(0x1ea),'icon':_0x17cdc5(0x1c6),'paletteLabel':_0x17cdc5(0x204),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':'OpcUa-Endpoint2'},'subscription':{'value':'','required':!![],'validate':_0x228306=>{if(_0x228306==='')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 _0x17bee5=_0x17cdc5;return this[_0x17bee5(0x16e)]||_0x17bee5(0x1b4);},'labelStyle'(){const _0x4156e6=_0x17cdc5;return this['name']?_0x4156e6(0x215):'';},'oneditprepare'(){const _0x51185a=_0x17cdc5;_0x4a709a(),_0x290280(),_0x2aff97(RED,this),$(_0x51185a(0x211))['on'](_0x51185a(0x177),()=>{const _0x50580d=_0x51185a,_0x4913ca=$(_0x50580d(0x203))[_0x50580d(0x1d1)](_0x50580d(0x1f9));_0x4913ca?$('#node-input-inputs')['val'](0x0):$(_0x50580d(0x1df))['val'](0x1);});const _0x1484d5=$(_0x51185a(0x167));_0x1484d5[_0x51185a(0x1d4)](Object[_0x51185a(0x173)](Object['assign']({},_0x431880()),{'filter'(_0x31da08){const _0x1b7dd5=_0x51185a;return _0x31da08[_0x1b7dd5(0x1aa)]==='Object';},'isSelectable'(_0x1de335){const _0x3bbc38=_0x51185a;return _0x1de335[_0x3bbc38(0x1aa)]===_0x3bbc38(0x243);}})),$(_0x51185a(0x238));const _0x462e56=$(_0x51185a(0x228));_0x462e56[_0x51185a(0x18b)](Object[_0x51185a(0x173)]({},_0x431880()));},'oneditsave'(){const _0x1a1aba=_0x17cdc5,_0x2c84d9=$('#node-input-startImmediately')['prop'](_0x1a1aba(0x1f9));_0x2c84d9?($(_0x1a1aba(0x203))[_0x1a1aba(0x20e)](_0x2c84d9?0x0:0x1),this['inputs']=_0x2c84d9?0x0:0x1):($(_0x1a1aba(0x203))[_0x1a1aba(0x20e)](0x1),this[_0x1a1aba(0x202)]=0x1);}});}()));function _0x3752(){const _0x328402=['<div\x20class=\x22info-text\x22></div>','replaceChild','children','_updateSelectedFields','_populate','namespaceIndex','HasTypeDefinition','\x20(ns=','removeClass','fa-cog','show',':visible','px)','<li>error\x20','fa-folder','#node-input-whereClause','trigger','typeDefinition','currentParent',';\x22></i>\x20','value','DarkOrange','userName','$combo','err','subscriptions','Object','focus\x20click','22780RcVcVA','UserName','clicked\x20on\x20icon','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','Good','<span\x20class=\x22custom-checkbox\x20unchecked\x22></span>','top','class','84608oPHEmM','<div\x20class=\x22spinner\x22></div>','catch','/browse','<div/>','#node-input-nodeId','no-expandable','each','status','nodeId','verify','fa-list-alt','name','securityMode','ns=0;i=47','sterfive-info','then','assign','throw','resolveParentNode','_installTree','change','endpoint','append','isTypeRef','left','empty','baseUrl','loading','expandable','ns=0;i=40','input-group','placeholder','sterfive-combo-box','pageY','DataType','Unspecified','css','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','.sterfive-tree\x20li','SuppressedError','eventFieldSelector','POST','text','width','events','<span\x20class=\x22cancel-button\x22>✖</span>','$dropdown','log','Inverse','function','widget','fetched','match','VariableType','<span\x20class=\x22validate-button\x22>✔</span>','HasComponent','error','apply','rgba(61,\x2060,\x204,\x200.525)','fetching\x20failed\x20with\x20error','<li><i\x20class=\x22fa\x20','addClass','sterfive-dropdown','fetched\x20:\x20','i=61','expandable\x20expanded','Variable','statusCode','grey','userCertificate','DisplayName','nodeClass','browseName','42dLLIhM','48083MVQvRg','\x22\x20style=\x22color:','data-value','ns=0;i=85','HasChild','reset','parentNode','OPCUA\x20Monitor','66HnIbDI','CadetBlue','message','statusText','1645237JwUpZt','sterfive.eventFieldSelector','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','Forward','fa-sliders','stopPropagation','hasClass','userIdentityType','<div\x20class=\x22floating-buttons\x22></div>','already\x20loading','\x20Fetching\x20done','View','Invalid','opcualogobig.png','#C0DEED','219565jaCqWa','stringify','filter','next','displayName','2483802ZzmXNT','$info','userPrivatekey','references','prop','parentElement','span.custom-checkbox','nodeBrowser','done','$inputGroup','</li>','fa-question','Method','30sdeMQq','/opcua-endpoint2','referenceTypeId','join','/checkNodeId','#node-input-inputs','HasSubtype','span.custom-checkbox.checked','closest','$tree','calc(100%\x20-\x20','opc.tcp://opcuademo.sterfive.com:26543','offset','Both','_updateValues','reference','right','password','pageX','fa-object-group','toString','target','element','TypeDefinition','toggleClass','appendTo','_installChildren','options','toggle','application/json','remove','checked','DodgerBlue','NodeClass','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','clicked\x20on\x20','split','BrowseName','SteelBlue','subTypes','inputs','#node-input-startImmediately','monitor\x20events','<li>','Organizes','expanded','1785930PUkGbS','$input','!!failure!!','ReferenceType','registerType','#node-input-endpoint','val','isSelectable','attr','node-input-startImmediately','ObjectType','nodes','endpointNode','node_label_italic','_setInputValue','10jcDyGN','$toggleTreeBtn','unchecked','OpcUa-Client2-MonitorEvent','$verifyBtn','data','failure','node','hide','<i\x20class=\x22fa\x20','SandyBrown','find','has','nodeAddressString','click','<ul></ul></li>','length','#node-input-selectClauses'];_0x3752=function(){return _0x328402;};return _0x3752();}
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgyYWZmOTciLCJfMHgzMzM4ZDkiLCJfMHhhMmVlMjMiLCJfMHgzODljYzEiLCIkIiwiXzB4Mzg5YTk3IiwiXzB4MWU0NzVkIiwiXzB4NDRhMDg4IiwiXzB4NGJmOWEyIiwiXzB4MTFlMDBiIiwiXzB4MmY3OGYyIiwiXzB4NTM4ZmY4IiwiXzB4NDBhNjc1IiwiXzB4NWY0ODUwIiwiXzB4Mzc2YjgzIiwiXzB4MjVlMTA1IiwiXzB4MTM4ZmVlIiwiXzB4NGNkMTY1IiwiUHJvbWlzZSIsIl8weDIzZTAzYyIsIl8weDQ0Y2NlMyIsIl8weDQxOTM1MCIsIl8weDFkMGUyZSIsIl8weDM5ZWQwZiIsIl8weDI1NzcyNSIsIl8weGRiOWFjYiIsIl8weDU0MWRjMyIsIl8weDQ4N2MwZCIsIl8weDMzNDdjZiIsIlN1cHByZXNzZWRFcnJvciIsIl8weDE1ZmYxZiIsIl8weDI3ZDU2ZSIsIl8weDMxY2NiNyIsIl8weDc1MWVlYiIsIkVycm9yIiwiXzB4MTA5Yjg2IiwiXzB4M2YwYzlhIiwiXzB4MTY3MDZkIiwiXzB4NDllNTNjIiwiXzB4NDM3ODI4IiwiXzB4MWQ3NDI4IiwiXzB4MmU1OWVkIiwiXzB4ZjRiNTFkIiwiXzB4NTMzZjEyIiwiXzB4NTFlMWM2IiwiXzB4MTNmNTBiIiwiXzB4MzgwMTkyIiwiXzB4MjRlZDMxIiwiXzB4MTFkYTIyIiwiXzB4NTJiYWM4IiwiXzB4MTM5YjU4IiwiXzB4MTY1MGJjIiwiXzB4MTFiNDQ4IiwiXzB4MTk3NjFkIiwiXzB4OTRjOWExIiwiZW5kcG9pbnROb2RlIiwiXzB4NWIxM2VlIiwiZW5kcG9pbnQiLCJfMHgyZGUwZDEiLCJiYXNlVXJsIiwiXzB4MjEyYzg3IiwiXzB4NDk1NDM4IiwiXzB4NDczZDk0IiwiXzB4NWUwYmJmIiwiXzB4NGVhZGE3IiwiXzB4MjU1YmE4IiwiT2JqZWN0IiwiXzB4MWRmMjg2IiwiZmV0Y2giLCJKU09OIiwiY29uc29sZSIsIl8weDlhNTMzZSIsIl8weDNjMTg4NyIsIl8weDRiNmMwMSIsIl8weDVmNTQ4MiIsIl8weDlkMWYwMCIsIl8weDE3NWJiMCIsIl8weDM4NmU1ZCIsIl8weDRhNWMxMyIsIl8weDJkYmM2OCIsIl8weDJjZGIwZSIsIl8weDU1NGJhNSIsIl8weDI2ZDc0NSIsIl8weDU4YjlmZiIsIl8weDU4NmIyMyIsIl8weDE2ZGEzMyIsIl8weDEyYTEyOSIsInNldFRpbWVvdXQiLCJfMHgyZjYyNjEiLCJfMHgzNDJiZGUiLCJfMHg0YTUyYWIiLCJfMHgzNTE2NWMiLCJfMHg1MzJlNmYiLCJfMHg1NTllNGQiLCJfMHg0NmY3ZjAiLCJfMHg1NWZiNWIiLCJfMHg0ZDQ3YTAiLCJfMHg0OWFlZWMiLCJfMHg0ZTY0YWQiLCJfMHgxZWE3MjYiLCJfMHg0ZTk1YWUiLCJfMHgxY2YxMTEiLCJfMHgyMmJlZDEiLCJfMHgxODYwZjkiLCJfMHgzYjVmODQiLCJfMHhiMDg5M2UiLCJfMHg0NTRiMDIiLCJfMHgyZGFiMzUiLCJpY29uIiwiXzB4NWQxOGI5IiwiY29sb3IiLCJfMHgyZDY2Y2UiLCJfMHg1MWNmNWEiLCJfMHg0YTcwOWEiLCJ1bmRlZmluZWQiLCJfMHg0ZmUwMWQiLCJfMHgzZmM5NDYiLCJfMHgzZGJlNGUiLCJfMHhkYzA5NzIiLCJfMHg1OGYyZjgiLCJfMHg0MzE2OTMiLCJfMHgzODA0MDYiLCJfMHg1MGJlOWQiLCJfMHgxYmJmMzUiLCJfMHg1Y2QzZGEiLCJfMHgzYTczOTMiLCJfMHg1OWIzMDgiLCJyZWZlcmVuY2VzIiwiXzB4NTQ0YTc4IiwiXzB4MzJhYzVhIiwiXzB4NDk3NzZmIiwiXzB4MmFlYTdkIiwiXzB4ZjMwOGMwIiwiXzB4MjFiOTk3IiwiXzB4MWJkZWY1IiwiXzB4M2I4MDJhIiwiXzB4MmQzOWMzIiwiXzB4M2VhYmIyIiwiXzB4OTIxMGVhIiwiXzB4MzI3MzBkIiwiXzB4MmMwZDZkIiwiXzB4M2YyYzg0IiwiXzB4MWE2OGZjIiwiXzB4NGJjMzVhIiwiXzB4M2JiMzE4IiwiXzB4MTkwYTk0IiwiXzB4NDhiNzE1IiwiXzB4MjdiNGI1IiwiXzB4M2JhZmM3IiwiZG9jdW1lbnQiLCJfMHg0MDI5ZWQiLCJfMHg1MmI1MGEiLCJfMHg0MGMwMzEiLCJfMHgyNzM2YWIiLCJfMHgxNjdhNzMiLCJfMHgzNzY3ZTciLCJfMHgzNTZjYzQiLCJfMHgxNWU4NDQiLCJfMHgxMjg3ZTEiLCJfMHgzOTI3ZmEiLCJfMHg0MTQ1ZDUiLCJfMHg0ZWIxZjciLCJfMHg4MmM2MWUiLCJfMHgyNDc5ZjgiLCJfMHgyOTAyODAiLCJfMHgyODVlNTgiLCJfMHg1NmVkYWQiLCJfMHg1YmM0NjEiLCJTZXQiLCJfMHgxYTUyZDAiLCJfMHgzMmYxZjgiLCJfMHgyMmJmMTQiLCJfMHg1YTc5N2QiLCJfMHg0NmEyZjIiLCJfMHg0MzM2MGQiLCJfMHgxZmVjOWYiLCJfMHgyZDQ4MzEiLCJfMHg1YmM1MmYiLCJfMHhlZmMwOTAiLCJfMHg0N2QzNDIiLCJfMHg1Mjc4OWMiLCJfMHgyMWI5MTEiLCJfMHg0NGM0MjgiLCJuYW1lIiwiXzB4MWRmMWI1IiwibmFtZXNwYWNlSW5kZXgiLCJfMHg0Y2I5MDUiLCJfMHg1M2VjMmQiLCJfMHgzZGU4MWQiLCJfMHgxMDUzZDMiLCJfMHgyMTA0MGUiLCJfMHg0YjYwZTgiLCJfMHg1ZTRlZjciLCJfMHgzM2YxNjciLCJfMHgxZDkwOTkiLCJfMHgyN2E5MzciLCJfMHgyMmI2OWIiLCJfMHgxZDcxNiIsIl8weDVhYTM2ZiIsIl8weDVjNTkwYSIsIl8weDU4NmJjMiIsIl8weDU0ODlkMyIsIl8weDU5OTM4MyIsIl8weDQ2NWZmZSIsIl8weDE4NDlhZiIsIl8weDRhOTI1NiIsIl8weDVjZDc5ZCIsIl8weDUyZDhjZSIsIl8weDRiN2ZkYyIsIl8weDUwY2FmYSIsIl8weDJiM2Y3MSIsIl8weDRmOGJmIiwiXzB4MTNiZjI3IiwiXzB4MmI5N2U0IiwiXzB4NWE1ZmExIiwiXzB4MjJjMTQzIiwiXzB4MWM0ZjBlIiwiXzB4MmZjZDFmIiwiXzB4ODk1NTNiIiwiXzB4NWJhY2ZkIiwiXzB4MTAxNjY4IiwiXzB4MjJiNDk2IiwiXzB4OWIwYjhjIiwiXzB4MWEwMmVjIiwiXzB4N2I2YzczIiwiXzB4NGY0MmVjIiwiXzB4MTQ1ZWI2IiwiXzB4OTEyODFkIiwiXzB4NWI0OGE4IiwiXzB4NDJmNjQ1IiwiUkVEIiwiXzB4MzIyMDAwIiwic2VjdXJpdHlNb2RlIiwiXzB4MTdjNTlhIiwic2VjdXJpdHlQb2xpY3kiLCJfMHgxNjBlMmMiLCJ1c2VySWRlbnRpdHlUeXBlIiwiXzB4ZjAyOTA5IiwidXNlck5hbWUiLCJfMHhhNTg5ZmMiLCJwYXNzd29yZCIsIl8weDRmYzEyZCIsInVzZXJDZXJ0aWZpY2F0ZSIsIl8weGM3MzBmOSIsInVzZXJQcml2YXRla2V5IiwiXzB4MWIwOTY2IiwiXzB4NDMxODgwIiwiXzB4NDllYzQ1IiwiXzB4NjE5MzgzIiwiXzB4MjFlMTZlIiwiXzB4MzJkNWEwIiwiXzB4MjI4MzA2IiwiXzB4NDkxM2NhIiwiXzB4MTQ4NGQ1IiwiXzB4MzFkYTA4IiwiXzB4MWRlMzM1IiwiXzB4NDYyZTU2IiwiXzB4MmM4NGQ5Il0sIm1hcHBpbmdzIjoicTBCQUFBLENBQUMsVSxDQUNHLGEsd0JBRUEsU0FBU0EsU0FBVCxDQUFxQ0MsU0FBckMsQ0FBMENDLFNBQTFDLEMseUJBQ1VDLFNBQUEsQ0FBWUMsQ0FBQSxDLGdCQUFBLEMsQ0FDWkMsU0FBQSxDQUFnQkQsQ0FBQSxDLDBCQUFBLEMsQ0FDaEJFLFNBQUEsQ0FBNkIsSSwyQkFDekJDLFNBQUEsQ0FBV04sU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBZUUsU0FBQSxDLEtBQUEsR0FBZixDLENBQ2pCRSxTQUFBLEMsZ0JBQUEsSSxHQUNJLENBQUNFLFNBQUQsRUFBYSxDQUFDQSxTQUFBLEMsZ0JBQUEsQyxDQUNkLE8sR0FFQUEsU0FBQSxDLGVBQUEsQyxDQUNBLFVBQVdDLFNBQVgsSUFBZ0JELFNBQUEsQyxnQkFBQSxDQUFoQixDLENBQ0ksTUFBTUUsU0FBQSxDQUFRRCxTQUFBLEMsZ0JBQUEsR0FBVUEsU0FBQSxDLElBQUEsQ0FBeEIsQ0FDQUosQ0FBQSxDLFdBQUEsQ0FBZSxDLE9BQ1gsQ0FBT0ksU0FBQSxDLElBQUEsQ0FESSxD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Q0FDeEVBLFNBQUEsQyxnQkFBQSxJLFVBRHNFLEMsY0FHakYsQ0FBYUMsU0FBYixDLGtDQUNXQSxTQUFBLEMsZ0JBQUEsSSxrQkFKc0UsQ0FBakUsQ0FBcEIsQyxDQU9BM1AsQ0FBQSxDLGdCQUFBLENBUEEsQ0FRQSxNQUFNNFAsU0FBQSxDQUFpQjVQLENBQUEsQyxnQkFBQSxDQUF2QixDQUNBNFAsU0FBQSxDLGdCQUFBLEVBQWtDOUwsTUFBQSxDLGdCQUFBLEVBQWMsRUFBZCxDQUFrQm9MLFNBQUEsRUFBbEIsQ0FBbEMsQyxFQXBFNkMsQyxZQXNFakQsRSwyQkFDVVcsU0FBQSxDQUFtQjdQLENBQUEsQyw4QkFBQSxFLE1BQUEsRSxnQkFBQSxDLENBQ3JCNlAsUyxFQUNBN1AsQ0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBc0M2UCxTQUFBLEMsR0FBQSxDLEdBQXRDLEMsQ0FDQSxLLFFBQUEsRUFBY0EsU0FBQSxDLEdBQUEsQyxNQUdkN1AsQ0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxHQUFBLEMsQ0FDQSxLLGdCQUFBLEUsTUE5RXlDLENBQXJELEMsRUE3eEJKLEciLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIGZ1bmN0aW9uIGluc3RhbGxTdWJzY3JpcHRpb25TZWxlY3RvcihSRUQsIG5vZGUpIHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCAkc3Vic2NyaXB0aW9uID0gJChcIiNub2RlLWlucHV0LXN1YnNjcmlwdGlvblwiKTtcbiAgICAgICAgY29uc3QgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMgPSAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBlbmRwb2ludCA9IFJFRC5ub2Rlcy5ub2RlKCRlbmRwb2ludC52YWwoKSk7XG4gICAgICAgICAgICAkc3Vic2NyaXB0aW9uLmVtcHR5KCk7XG4gICAgICAgICAgICBpZiAoIWVuZHBvaW50IHx8ICFlbmRwb2ludC5zdWJzY3JpcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGVuZHBvaW50LnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHMgb2YgZW5kcG9pbnQuc3Vic2NyaXB0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IHMubmFtZSB8fCBzLmlkO1xuICAgICAgICAgICAgICAgICAgICAkKFwiPG9wdGlvbi8+XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBzLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGxhYmVsLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHMuaWQgPT09IG5vZGUuc3Vic2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLnRleHQobGFiZWwpXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8oJHN1YnNjcmlwdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucygpO1xuICAgICAgICAvLyBoYWNrXG4gICAgICAgIC8vICRpbnB1dEFjdGlvbi5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgIC8vICAgICAkZW5kcG9pbnQub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAvLyAgICAgICAgIGluc3RhbGxTdWJzY3JpcHRpb25PcHRpb25zKCk7XG4gICAgICAgIC8vICAgICB9KTtcbiAgICAgICAgLy8gfSk7XG4gICAgICAgICRzdWJzY3JpcHRpb24ub24oXCJmb2N1cyBjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucygpO1xuICAgICAgICB9KTtcbiAgICAgICAgJGVuZHBvaW50Lm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgIGluc3RhbGxTdWJzY3JpcHRpb25PcHRpb25zKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuICAgIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG4gICAgcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLlxyXG5cclxuICAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuICAgIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG4gICAgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULFxyXG4gICAgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbiAgICBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG4gICAgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUlxyXG4gICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbiAgICAvKiBnbG9iYWwgUmVmbGVjdCwgUHJvbWlzZSwgU3VwcHJlc3NlZEVycm9yLCBTeW1ib2wgKi9cclxuXHJcblxyXG4gICAgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdHlwZW9mIFN1cHByZXNzZWRFcnJvciA9PT0gXCJmdW5jdGlvblwiID8gU3VwcHJlc3NlZEVycm9yIDogZnVuY3Rpb24gKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7XHJcbiAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICAgICAgcmV0dXJuIGUubmFtZSA9IFwiU3VwcHJlc3NlZEVycm9yXCIsIGUuZXJyb3IgPSBlcnJvciwgZS5zdXBwcmVzc2VkID0gc3VwcHJlc3NlZCwgZTtcclxuICAgIH07XG5cbiAgICBjb25zdCBPcmdhbml6ZXNSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNVwiO1xuICAgIGNvbnN0IEZvbGRlclR5cGUgPSBcIm5zPTA7aT02MVwiO1xuICAgIGNvbnN0IEhhc0NvbXBvbmVudFJlZk5vZGVJZCA9IFwibnM9MDtpPTQ3XCI7XG4gICAgY29uc3QgSGFzUHJvcGVydHlSZWZOb2RlSWQgPSBcIm5zPTA7aT00NlwiO1xuICAgIGNvbnN0IEhhc0NoaWxkUmVmTm9kZUlkID0gXCJucz0wO2k9MzRcIjtcbiAgICBjb25zdCBIYXNTdWJ0eXBlUmVmTm9kZUlkID0gXCJucz0wO2k9NDVcIjtcbiAgICBjb25zdCBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZCA9IFwibnM9MDtpPTQwXCI7XG5cbiAgICB2YXIgQnJvd3NlRGlyZWN0aW9uO1xuICAgIChmdW5jdGlvbiAoQnJvd3NlRGlyZWN0aW9uKSB7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJGb3J3YXJkXCJdID0gMF0gPSBcIkZvcndhcmRcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmVyc2VcIl0gPSAxXSA9IFwiSW52ZXJzZVwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiQm90aFwiXSA9IDJdID0gXCJCb3RoXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZhbGlkXCJdID0gM10gPSBcIkludmFsaWRcIjtcbiAgICB9KShCcm93c2VEaXJlY3Rpb24gfHwgKEJyb3dzZURpcmVjdGlvbiA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzcztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzcykge1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVW5zcGVjaWZpZWRcIl0gPSAwXSA9IFwiVW5zcGVjaWZpZWRcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlXCJdID0gMl0gPSBcIlZhcmlhYmxlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlVHlwZVwiXSA9IDE2XSA9IFwiVmFyaWFibGVUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZpZXdcIl0gPSAxMjhdID0gXCJWaWV3XCI7XG4gICAgfSkoTm9kZUNsYXNzIHx8IChOb2RlQ2xhc3MgPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3NNYXNrO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzTWFzaykge1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZhcmlhYmxlXCJdID0gMl0gPSBcIlZhcmlhYmxlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZhcmlhYmxlVHlwZVwiXSA9IDE2XSA9IFwiVmFyaWFibGVUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZpZXdcIl0gPSAxMjhdID0gXCJWaWV3XCI7XG4gICAgfSkoTm9kZUNsYXNzTWFzayB8fCAoTm9kZUNsYXNzTWFzayA9IHt9KSk7XG4gICAgdmFyIFJlc3VsdE1hc2s7XG4gICAgKGZ1bmN0aW9uIChSZXN1bHRNYXNrKSB7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAxXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJJc0ZvcndhcmRcIl0gPSAyXSA9IFwiSXNGb3J3YXJkXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIk5vZGVDbGFzc1wiXSA9IDRdID0gXCJOb2RlQ2xhc3NcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiQnJvd3NlTmFtZVwiXSA9IDhdID0gXCJCcm93c2VOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkRpc3BsYXlOYW1lXCJdID0gMTZdID0gXCJEaXNwbGF5TmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJUeXBlRGVmaW5pdGlvblwiXSA9IDMyXSA9IFwiVHlwZURlZmluaXRpb25cIjtcbiAgICB9KShSZXN1bHRNYXNrIHx8IChSZXN1bHRNYXNrID0ge30pKTtcbiAgICAvLyAgY29uc3QgcSA9IFJlZmVyZW5jZVR5cGVJZHMuT3JnYW5pemVzO1xuICAgIGZ1bmN0aW9uIHJlc29sdmVOb2RlSWQobm9kZUlkTGlrZSkge1xuICAgICAgICBzd2l0Y2ggKG5vZGVJZExpa2UpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPcmdhbml6ZXNcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gT3JnYW5pemVzUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1Byb3BlcnR5XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1Byb3BlcnR5UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NvbXBvbmVudFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDb21wb25lbnRSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ2hpbGRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ2hpbGRSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzU3VidHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNTdWJ0eXBlUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1R5cGVEZWZpbml0aW9uXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZ2V0SWNvbiA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgc3dpdGNoIChyZWZlcmVuY2Uubm9kZUNsYXNzKSB7XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0XCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IE9yZ2FuaXplc1JlZk5vZGVJZCkgO1xuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UudHlwZURlZmluaXRpb24gPT09IEZvbGRlclR5cGUgfHwgcmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gXCJpPTYxXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1mb2xkZXJcIiwgY29sb3I6IFwicmdiYSg2MSwgNjAsIDQsIDAuNTI1KVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIlNlYUdyZWVuXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNDb21wb25lbnRSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJTdGVlbEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNQcm9wZXJ0eVJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkRvZGdlckJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgXCJNZXRob2RcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWNvZ1wiLCBjb2xvcjogXCJTYW5keUJyb3duXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1zbGlkZXJzXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGljb246IFwiZmEtcXVlc3Rpb25cIiwgY29sb3I6IFwiZ3JleVwiIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGJyb3dzZSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkLCB0ZW1wbGF0ZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9icm93c2VgO1xuICAgICAgICBjb25zdCBicm93c2VEZXNjcmlwdGlvbiA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGVtcGxhdGUpLCB7IG5vZGVJZCwgcmVzdWx0TWFzazogNjMgfSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGJyb3dzZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXM6IFtdIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkIDogXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICBjb25zdCByZWZlcmVuY2VzID0gcmVzcG9uc2UuYnJvd3NlUmVzdWx0LnJlZmVyZW5jZXMgfHwgW107XG4gICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXMgfTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHRlbXBsYXRlMSA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzQ2hpbGRcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB0ZW1wbGF0ZTIgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIk9yZ2FuaXplc1wiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IGludGVybmFsVmVyaWZ5ID0gKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCAkaW5wdXRFbGVtZW50LCAkaW5mbykgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCBub2RlSWQgPSAkaW5wdXRFbGVtZW50LnZhbCgpO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2goYCR7cm9vdH0vY2hlY2tOb2RlSWRgLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHNldE5vdGlmaWNhdGlvbiA9ICh0ZXh0LCBjbGFzc05hbWUpID0+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+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCByZWROb2RlID0gUkVELm5vZGVzLm5vZGUoZW5kcG9pbnRJZCk7XG4gICAgICAgIGlmICghcmVkTm9kZSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIC8vIHdlIG5lZWQgdG8gc2FuaXRpemUgYW5kIGV4dHJhY3QgdGhlIGVuZHBvaW50IGF0dHJpYnV0ZXMgb25seSAoIG5vdCB0aGUgbm9kZS1yZWQgc3R1ZmYpXG4gICAgICAgIGNvbnN0IHsgZW5kcG9pbnQsIHNlY3VyaXR5TW9kZSwgc2VjdXJpdHlQb2xpY3ksIHVzZXJJZGVudGl0eVR5cGUsIHVzZXJOYW1lLCBwYXNzd29yZCwgdXNlckNlcnRpZmljYXRlLCB1c2VyUHJpdmF0ZWtleSB9ID0gcmVkTm9kZTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgdXNlck5hbWUsXG4gICAgICAgICAgICBwYXNzd29yZCxcbiAgICAgICAgICAgIHVzZXJDZXJ0aWZpY2F0ZSxcbiAgICAgICAgICAgIHVzZXJQcml2YXRla2V5LFxuICAgICAgICB9O1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzLFxuICAgICAgICB9O1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50TnIgPSBnZXRFbmRQb2ludEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgaWYgKCFlbmRwb2ludE5yKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogZW5kcG9pbnRJZCxcbiAgICAgICAgICAgIGVuZHBvaW50OiBlbmRwb2ludE5yLmVuZHBvaW50LFxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlOiBlbmRwb2ludE5yLnNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5OiBlbmRwb2ludE5yLnNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICB1c2VyTmFtZTogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlID09PSBcIlVzZXJOYW1lXCIgPyBlbmRwb2ludE5yLnVzZXJOYW1lIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci5wYXNzd29yZCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHVzZXJDZXJ0aWZpY2F0ZTogZW5kcG9pbnROci51c2VyQ2VydGlmaWNhdGUsXG4gICAgICAgICAgICB1c2VyUHJpdmF0ZWtleTogZW5kcG9pbnROci51c2VyUHJpdmF0ZWtleSxcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgUkVELm5vZGVzLnJlZ2lzdGVyVHlwZShcIk9wY1VhLUNsaWVudDItTW9uaXRvckV2ZW50XCIsIHtcbiAgICAgICAgY2F0ZWdvcnk6IFwib3BjdWFcIixcbiAgICAgICAgY29sb3I6IFwiI0MwREVFRFwiLFxuICAgICAgICBhbGlnbjogXCJyaWdodFwiLFxuICAgICAgICBpY29uOiBcIm9wY3VhbG9nb2JpZy5wbmdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcIm1vbml0b3IgZXZlbnRzXCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBpbnB1dHM6IHsgdmFsdWU6IDEgfSxcbiAgICAgICAgICAgIG91dHB1dDogeyB2YWx1ZTogNCB9LFxuICAgICAgICAgICAgbmFtZTogeyB2YWx1ZTogXCJcIiB9LFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlLCB0eXBlOiBcIk9wY1VhLUVuZHBvaW50MlwiIH0sXG4gICAgICAgICAgICBzdWJzY3JpcHRpb246IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJcIixcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2YWxpZGF0ZTogKHZhbCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsID09PSBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN0YXJ0SW1tZWRpYXRlbHk6IHsgdmFsdWU6IHRydWUsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICAvLyB3ZSB1c2UgYSBkaWZmZXJlbnQgd2lkZ2V0IGZvciBlZGl0aW5nIHRoZSBub2RlSWQsIGJlY2F1c2UgdGhlIGJlaGF2aW9yXG4gICAgICAgICAgICAvLyBpcyBzcGVjaWZpYyB0byBtb25pdG9yLCBob3dldmVyIHByb3BlcnR5IHdpbGwgYmUgc3RvcmVkIGluIG5vZGVJZFxuICAgICAgICAgICAgbm9kZUlkOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogZmFsc2UsIHZhbGlkYXRlOiAoKSA9PiB0cnVlIH0sXG4gICAgICAgICAgICBzYW1wbGluZ0ludGVydmFsOiB7IHZhbHVlOiAxMDAwLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgZGlzY2FyZE9sZGVzdDogeyB2YWx1ZTogdHJ1ZSwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHF1ZXVlU2l6ZTogeyB2YWx1ZTogMTAsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBzZWxlY3RDbGF1c2VzOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgd2hlcmVDbGF1c2U6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICB9LFxuICAgICAgICAvLyBpbnB1dHM6LFxuICAgICAgICBvdXRwdXRzOiAyLCAvLyAyIG91dHB1dCwgc2Vjb25kIGZvciByYXcgbm9kZS1vcGN1YSBkaWFnbm9zdGljcyBvciBtb3JlIGNvbXBsZXRlIG1lc3NhZ2VcbiAgICAgICAgbGFiZWwoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lIHx8IFwiT1BDVUEgTW9uaXRvclwiO1xuICAgICAgICB9LFxuICAgICAgICBsYWJlbFN0eWxlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSA/IFwibm9kZV9sYWJlbF9pdGFsaWNcIiA6IFwiXCI7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHByZXBhcmUoKSB7XG4gICAgICAgICAgICBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQoKTtcbiAgICAgICAgICAgIGRlY2xhcmVFdmVudEZpZWxkU2VsZWN0b3JXaWRnZXQoKTtcbiAgICAgICAgICAgIGluc3RhbGxTdWJzY3JpcHRpb25TZWxlY3RvcihSRUQsIHRoaXMpO1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSBBY3Rpb24gTW9uaXRvciBDb21tb25cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyAtLSBpbnN0YWxsIHN1YnNjcmlwdGlvbiBzZWxlY3Rpb25cbiAgICAgICAgICAgICQoXCJub2RlLWlucHV0LXN0YXJ0SW1tZWRpYXRlbHlcIikub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoZWNrZWQgPSAkKFwiI25vZGUtaW5wdXQtc3RhcnRJbW1lZGlhdGVseVwiKS5wcm9wKFwiY2hlY2tlZFwiKTtcbiAgICAgICAgICAgICAgICBpZiAoY2hlY2tlZCkge1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtaW5wdXRzXCIpLnZhbCgwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1pbnB1dHNcIikudmFsKDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSBBY3Rpb24gTW9uaXRvclxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIGNvbnN0ICRub2RlSWQgPSAkKFwiI25vZGUtaW5wdXQtbm9kZUlkXCIpO1xuICAgICAgICAgICAgJG5vZGVJZC5ub2RlQnJvd3NlcihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSksIHsgZmlsdGVyKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiT2JqZWN0XCI7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBpc1NlbGVjdGFibGUobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJPYmplY3RcIiAvKiB0byBkbyB8fCBub2RlRGVzYy5ldmVudE5vdGlmaWVyID09PSAxICovO1xuICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICAgICAgLy8gLS0tLS0tIGluc3RhbGwgZXZlbnQgZmllbGQgc2VsZWN0b3JcbiAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC13aGVyZUNsYXVzZVwiKTtcbiAgICAgICAgICAgIGNvbnN0ICRzZWxlY3RDbGF1c2VzID0gJChcIiNub2RlLWlucHV0LXNlbGVjdENsYXVzZXNcIik7XG4gICAgICAgICAgICAkc2VsZWN0Q2xhdXNlcy5ldmVudEZpZWxkU2VsZWN0b3IoT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHNhdmUoKSB7XG4gICAgICAgICAgICBjb25zdCBzdGFydEltbWVkaWF0ZWx5ID0gJChcIiNub2RlLWlucHV0LXN0YXJ0SW1tZWRpYXRlbHlcIikucHJvcChcImNoZWNrZWRcIik7XG4gICAgICAgICAgICBpZiAoc3RhcnRJbW1lZGlhdGVseSkge1xuICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLnZhbChzdGFydEltbWVkaWF0ZWx5ID8gMCA6IDEpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRzID0gc3RhcnRJbW1lZGlhdGVseSA/IDAgOiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXN0YXJ0SW1tZWRpYXRlbHlcIikudmFsKDEpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRzID0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9KTtcblxufSkoKTsiXX0=
|
7
|
+
function _0xa738(_0x25feb7,_0x5b3626){const _0x17b7b4=_0x17b7();return _0xa738=function(_0xa738a3,_0x2aaca8){_0xa738a3=_0xa738a3-0x14b;let _0x3a886b=_0x17b7b4[_0xa738a3];return _0x3a886b;},_0xa738(_0x25feb7,_0x5b3626);}(function(_0x5d8cdc,_0xe0a2d5){const _0x244e32=_0xa738,_0x508cab=_0x5d8cdc();while(!![]){try{const _0x34913c=-parseInt(_0x244e32(0x18b))/0x1*(parseInt(_0x244e32(0x17d))/0x2)+parseInt(_0x244e32(0x1d0))/0x3+-parseInt(_0x244e32(0x14b))/0x4+-parseInt(_0x244e32(0x15d))/0x5*(-parseInt(_0x244e32(0x1bb))/0x6)+-parseInt(_0x244e32(0x21d))/0x7+parseInt(_0x244e32(0x22e))/0x8*(parseInt(_0x244e32(0x1e2))/0x9)+parseInt(_0x244e32(0x1c1))/0xa*(parseInt(_0x244e32(0x215))/0xb);if(_0x34913c===_0xe0a2d5)break;else _0x508cab['push'](_0x508cab['shift']());}catch(_0x59d77b){_0x508cab['push'](_0x508cab['shift']());}}}(_0x17b7,0xa55f0),(function(){'use strict';const _0x37222f=_0xa738;function _0x378e23(_0xb60580,_0x2abe06){const _0x139f53=_0xa738,_0x310da5=$(_0x139f53(0x1e7)),_0x19d590=$(_0x139f53(0x168)),_0x414475=()=>{const _0x533564=_0x139f53,_0x1bf489=_0xb60580['nodes'][_0x533564(0x170)](_0x310da5[_0x533564(0x1c6)]());_0x19d590[_0x533564(0x1ab)]();if(!_0x1bf489||!_0x1bf489['subscriptions'])return;if(_0x1bf489[_0x533564(0x198)])for(const _0x3243f2 of _0x1bf489[_0x533564(0x198)]){const _0x5ced53=_0x3243f2[_0x533564(0x190)]||_0x3243f2['id'];$(_0x533564(0x158),{'value':_0x3243f2['id'],'label':_0x5ced53,'selected':_0x3243f2['id']===_0x2abe06[_0x533564(0x163)]})[_0x533564(0x1fe)](_0x5ced53)[_0x533564(0x197)](_0x19d590);}};_0x414475(),_0x19d590['on'](_0x139f53(0x20c),()=>{_0x414475();}),_0x310da5['on'](_0x139f53(0x20d),()=>{_0x414475();});}function _0x52ec26(_0x4fec48,_0x32679b,_0x24100f,_0x422729){function _0x4c2a0c(_0x3b51f2){return _0x3b51f2 instanceof _0x24100f?_0x3b51f2:new _0x24100f(function(_0x565d9b){_0x565d9b(_0x3b51f2);});}return new(_0x24100f||(_0x24100f=Promise))(function(_0x39095e,_0xec0061){const _0x107aab=_0xa738;function _0x2f0589(_0xbb3c07){const _0x3c98d0=_0xa738;try{_0x49d93c(_0x422729[_0x3c98d0(0x174)](_0xbb3c07));}catch(_0x5ebefa){_0xec0061(_0x5ebefa);}}function _0x3991cc(_0x54724e){const _0x35d181=_0xa738;try{_0x49d93c(_0x422729[_0x35d181(0x159)](_0x54724e));}catch(_0x3f964c){_0xec0061(_0x3f964c);}}function _0x49d93c(_0x4af55e){const _0x3d4f1d=_0xa738;_0x4af55e['done']?_0x39095e(_0x4af55e[_0x3d4f1d(0x1f9)]):_0x4c2a0c(_0x4af55e[_0x3d4f1d(0x1f9)])['then'](_0x2f0589,_0x3991cc);}_0x49d93c((_0x422729=_0x422729[_0x107aab(0x195)](_0x4fec48,_0x32679b||[]))[_0x107aab(0x174)]());});}typeof SuppressedError===_0x37222f(0x229)?SuppressedError:function(_0x4b1f00,_0x3052b7,_0x29cac3){const _0x10cd6d=_0x37222f;var _0xa3a0aa=new Error(_0x29cac3);return _0xa3a0aa['name']=_0x10cd6d(0x210),_0xa3a0aa['error']=_0x4b1f00,_0xa3a0aa[_0x10cd6d(0x1c3)]=_0x3052b7,_0xa3a0aa;};const _0x4206cf=_0x37222f(0x171),_0x2d9761=_0x37222f(0x180),_0x58398c=_0x37222f(0x1e3),_0x4dba2e='ns=0;i=46',_0x29e329=_0x37222f(0x1e9),_0x4898ef=_0x37222f(0x1f4),_0x5495f4=_0x37222f(0x1d8);var _0x552995;(function(_0x1063f0){const _0x12b13b=_0x37222f;_0x1063f0[_0x1063f0['Forward']=0x0]='Forward',_0x1063f0[_0x1063f0[_0x12b13b(0x22d)]=0x1]=_0x12b13b(0x22d),_0x1063f0[_0x1063f0[_0x12b13b(0x21e)]=0x2]=_0x12b13b(0x21e),_0x1063f0[_0x1063f0[_0x12b13b(0x231)]=0x3]=_0x12b13b(0x231);}(_0x552995||(_0x552995={})));var _0x695c50;(function(_0x2561c4){const _0x4995b6=_0x37222f;_0x2561c4[_0x2561c4['Unspecified']=0x0]='Unspecified',_0x2561c4[_0x2561c4['Object']=0x1]=_0x4995b6(0x160),_0x2561c4[_0x2561c4[_0x4995b6(0x164)]=0x2]=_0x4995b6(0x164),_0x2561c4[_0x2561c4['Method']=0x4]=_0x4995b6(0x208),_0x2561c4[_0x2561c4[_0x4995b6(0x232)]=0x8]='ObjectType',_0x2561c4[_0x2561c4[_0x4995b6(0x1fa)]=0x10]='VariableType',_0x2561c4[_0x2561c4['ReferenceType']=0x20]=_0x4995b6(0x1cc),_0x2561c4[_0x2561c4[_0x4995b6(0x228)]=0x40]=_0x4995b6(0x228),_0x2561c4[_0x2561c4[_0x4995b6(0x153)]=0x80]=_0x4995b6(0x153);}(_0x695c50||(_0x695c50={})));var _0x706706;(function(_0x3052da){const _0x330412=_0x37222f;_0x3052da[_0x3052da[_0x330412(0x160)]=0x1]=_0x330412(0x160),_0x3052da[_0x3052da[_0x330412(0x164)]=0x2]=_0x330412(0x164),_0x3052da[_0x3052da[_0x330412(0x208)]=0x4]=_0x330412(0x208),_0x3052da[_0x3052da['ObjectType']=0x8]=_0x330412(0x232),_0x3052da[_0x3052da[_0x330412(0x1fa)]=0x10]='VariableType',_0x3052da[_0x3052da['ReferenceType']=0x20]=_0x330412(0x1cc),_0x3052da[_0x3052da[_0x330412(0x228)]=0x40]='DataType',_0x3052da[_0x3052da[_0x330412(0x153)]=0x80]=_0x330412(0x153);}(_0x706706||(_0x706706={})));var _0x467f49;(function(_0x28e0b4){const _0xd388da=_0x37222f;_0x28e0b4[_0x28e0b4['ReferenceType']=0x1]=_0xd388da(0x1cc),_0x28e0b4[_0x28e0b4[_0xd388da(0x183)]=0x2]='IsForward',_0x28e0b4[_0x28e0b4[_0xd388da(0x1a9)]=0x4]=_0xd388da(0x1a9),_0x28e0b4[_0x28e0b4[_0xd388da(0x224)]=0x8]=_0xd388da(0x224),_0x28e0b4[_0x28e0b4[_0xd388da(0x1eb)]=0x10]=_0xd388da(0x1eb),_0x28e0b4[_0x28e0b4[_0xd388da(0x1ba)]=0x20]=_0xd388da(0x1ba);}(_0x467f49||(_0x467f49={})));function _0x5edd73(_0x261ad2){const _0x52b4f9=_0x37222f;switch(_0x261ad2){case'Organizes':return _0x4206cf;case _0x52b4f9(0x213):return _0x4dba2e;case _0x52b4f9(0x18e):return _0x58398c;case _0x52b4f9(0x1f5):return _0x29e329;case _0x52b4f9(0x18d):return _0x4898ef;case _0x52b4f9(0x1c4):return _0x5495f4;}}const _0x459a3d=_0x24fd42=>{const _0x423bda=_0x37222f;switch(_0x24fd42[_0x423bda(0x1d4)]){case _0x423bda(0x160):if(_0x24fd42[_0x423bda(0x1ea)]===_0x4206cf);if(_0x24fd42[_0x423bda(0x15e)]===_0x2d9761||_0x24fd42[_0x423bda(0x1ea)]===_0x423bda(0x1e6))return{'icon':_0x423bda(0x176),'color':'rgba(61,\x2060,\x204,\x200.525)'};return{'icon':_0x423bda(0x236),'color':'SeaGreen'};case _0x423bda(0x164):if(_0x24fd42['referenceTypeId']===_0x58398c)return{'icon':_0x423bda(0x239),'color':_0x423bda(0x1b0)};else return _0x24fd42[_0x423bda(0x1ea)]===_0x4dba2e?{'icon':_0x423bda(0x239),'color':_0x423bda(0x1f3)}:{'icon':'fa-list-alt','color':_0x423bda(0x216)};case _0x423bda(0x208):return{'icon':'fa-cog','color':_0x423bda(0x14c)};case _0x423bda(0x232):return{'icon':_0x423bda(0x236),'color':_0x423bda(0x181)};case _0x423bda(0x1fa):return{'icon':'fa-sliders','color':_0x423bda(0x181)};}return{'icon':_0x423bda(0x16d),'color':_0x423bda(0x21a)};},_0x10fc73=({endpointNode:_0x303e91,endpoint:_0x173323,baseUrl:_0x394d6d},_0x741c4f,_0x1cd46a)=>_0x52ec26(void 0x0,void 0x0,void 0x0,function*(){const _0x234ec8=_0x37222f,_0x5ceda7=_0x394d6d+_0x234ec8(0x1fd),_0x48ddfc=_0x5ceda7+_0x234ec8(0x1c0),_0x1e3608=Object[_0x234ec8(0x238)](Object[_0x234ec8(0x238)]({},_0x1cd46a),{'nodeId':_0x741c4f,'resultMask':0x3f}),_0x4e4e18=yield fetch(_0x48ddfc,{'method':_0x234ec8(0x1de),'body':JSON['stringify']({'endpointNode':_0x303e91,'endpoint':_0x173323,'browseDescription':_0x1e3608}),'headers':{'Content-Type':_0x234ec8(0x14f)}});if(_0x4e4e18[_0x234ec8(0x15f)]!==0xc8)return console[_0x234ec8(0x1e0)](_0x234ec8(0x1c5),_0x4e4e18[_0x234ec8(0x15f)],_0x4e4e18[_0x234ec8(0x167)]),{'references':[]};console[_0x234ec8(0x1e0)](_0x234ec8(0x1d3),_0x4e4e18[_0x234ec8(0x15f)],_0x4e4e18[_0x234ec8(0x167)]);const _0x490ba0=yield _0x4e4e18[_0x234ec8(0x1ee)](),_0x347fcd=_0x490ba0[_0x234ec8(0x15c)][_0x234ec8(0x1be)]||[];return{'references':_0x347fcd};}),_0x2341e8={'referenceTypeId':_0x5edd73(_0x37222f(0x1f5)),'includeSubtypes':!![],'browseDirection':_0x552995[_0x37222f(0x1d9)],'nodeClassMask':_0x695c50[_0x37222f(0x164)]|_0x695c50[_0x37222f(0x160)]|_0x695c50[_0x37222f(0x208)],'resultMask':0x3f},_0x22e1d0={'referenceTypeId':_0x5edd73('Organizes'),'includeSubtypes':!![],'browseDirection':_0x552995[_0x37222f(0x1d9)],'nodeClassMask':_0x695c50[_0x37222f(0x164)]|_0x695c50['Object']|_0x695c50[_0x37222f(0x208)],'resultMask':0x3f},_0x44cfca=({endpointNode:_0x36dee6,endpoint:_0x40cb79,baseUrl:_0x22f4a3},_0x260a0e,_0x49275d)=>_0x52ec26(void 0x0,void 0x0,void 0x0,function*(){const _0xc2fc3f=_0x37222f,_0x3fffda=_0x22f4a3+_0xc2fc3f(0x1fd),_0x5f3c38=_0x260a0e[_0xc2fc3f(0x1c6)](),_0x1641c6=yield fetch(_0x3fffda+'/checkNodeId',{'method':'POST','body':JSON[_0xc2fc3f(0x1c7)]({'endpointNode':_0x36dee6,'endpoint':_0x40cb79,'nodeId':_0x5f3c38}),'headers':{'Content-Type':_0xc2fc3f(0x14f)}}),_0x2c4ecb=(_0x48fef2,_0x23bd2a)=>{const _0x3e5eb5=_0xc2fc3f;_0x49275d[_0x3e5eb5(0x1fe)](_0x48fef2)[_0x3e5eb5(0x1e5)](_0x3e5eb5(0x218))[_0x3e5eb5(0x1e5)](_0x23bd2a),_0x49275d[_0x3e5eb5(0x18a)](),setTimeout(()=>{const _0x29db18=_0x3e5eb5;_0x49275d[_0x29db18(0x214)](_0x23bd2a),_0x49275d['hide']();},0xbb8);},_0x38f50b=yield _0x1641c6['json']();_0x1641c6[_0xc2fc3f(0x15f)]!==0xc8?_0x2c4ecb(_0xc2fc3f(0x15a)+_0x5f3c38,_0xc2fc3f(0x152)):_0x38f50b['statusCode'][_0xc2fc3f(0x1fb)](/Good/)?(_0x260a0e[_0xc2fc3f(0x1c6)](_0x38f50b[_0xc2fc3f(0x194)]),_0x260a0e[_0xc2fc3f(0x1da)](_0xc2fc3f(0x20d)),_0x2c4ecb(_0xc2fc3f(0x1a0),'ok')):(_0x260a0e['val'](''+_0x5f3c38),_0x2c4ecb(_0x38f50b[_0xc2fc3f(0x207)]+'\x20'+_0x1641c6[_0xc2fc3f(0x167)],_0xc2fc3f(0x152)));});function _0x2d871d(_0x14a7f9,_0x531182){return _0x52ec26(this,void 0x0,void 0x0,function*(){const _0x28f34c=_0xa738,_0x2daff6=_0x14a7f9[_0x28f34c(0x1ac)]('value'),_0x36a020=yield _0x10fc73(_0x531182,_0x2daff6,_0x2341e8),_0x2c3e38=yield _0x10fc73(_0x531182,_0x2daff6,_0x22e1d0);return{'references':[..._0x36a020['references'],..._0x2c3e38[_0x28f34c(0x1be)]]};});}const _0x577c0a={'referenceTypeId':_0x5edd73('HasSubtype'),'includeSubtypes':!![],'browseDirection':_0x552995[_0x37222f(0x1d9)],'nodeClassMask':_0x695c50[_0x37222f(0x1cc)]|_0x695c50[_0x37222f(0x232)]|_0x695c50[_0x37222f(0x228)]|_0x695c50[_0x37222f(0x1fa)],'resultMask':0x3f};function _0x11b883(_0x24068c,_0x44d5e4){return _0x52ec26(this,void 0x0,void 0x0,function*(){const _0x46cdbc=_0xa738,_0x1bee35=_0x24068c[_0x46cdbc(0x1ac)]('value'),_0x5028f4=yield _0x10fc73(_0x44d5e4,_0x1bee35,_0x577c0a);return _0x5028f4;});}const _0x5d0774=_0x236845=>{const _0x410d2b=_0x37222f;var _0x44dd15,_0xea134e;if(!_0x236845){const _0x2b6f79=$(_0x410d2b(0x189));return _0x2b6f79;}const _0x12e80a=_0x236845[_0x410d2b(0x1e1)][_0x410d2b(0x178)](),_0x528fde=((_0x44dd15=_0x236845[_0x410d2b(0x1cf)])===null||_0x44dd15===void 0x0?void 0x0:_0x44dd15[_0x410d2b(0x1fe)])||((_0xea134e=_0x236845[_0x410d2b(0x1bf)])===null||_0xea134e===void 0x0?void 0x0:_0xea134e['name'])||_0x236845['nodeId'][_0x410d2b(0x178)](),{icon:_0x5edaaa,color:_0x1df835}=_0x459a3d(_0x236845),_0x139123=$(_0x410d2b(0x1b7)+_0x5edaaa+_0x410d2b(0x226)+_0x1df835+_0x410d2b(0x1d5)+_0x528fde+_0x410d2b(0x1f2));return _0x139123[_0x410d2b(0x1e5)](_0x410d2b(0x233)),_0x139123[_0x410d2b(0x1ac)](_0x410d2b(0x1f9),_0x12e80a),_0x139123[_0x410d2b(0x1ac)](_0x410d2b(0x155),_0x236845),_0x139123;},_0x5ed3ae=()=>{const _0x233fd0=_0x37222f;$[_0x233fd0(0x1f7)](_0x233fd0(0x172),{'options':{'endpointNode':()=>({'endpoint':'opc.tcp://opcuademo.sterfive.com:26543'}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x233fd0(0x1cd)},'nodeClass':'Object','nodeId':_0x233fd0(0x1b1),'displayName':{'text':_0x233fd0(0x1cd)},'typeDefinition':_0x2d9761}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x52ec26(this,void 0x0,void 0x0,function*(){const _0x3f7fe7=_0xa738,_0x26c82a=this,_0x3a5ee1=typeof _0x26c82a[_0x3f7fe7(0x192)]['parentNode']==='function'?_0x26c82a[_0x3f7fe7(0x192)][_0x3f7fe7(0x1db)]():_0x26c82a[_0x3f7fe7(0x192)][_0x3f7fe7(0x1db)];if(_0x3a5ee1 instanceof Promise)return yield _0x3a5ee1;return _0x3a5ee1;});},'reset'(){const _0x230260=_0x233fd0,_0xa8a89b=this;_0xa8a89b[_0x230260(0x1ed)]['empty'](),this[_0x230260(0x1ff)]()[_0x230260(0x1df)](_0x3983f0=>{const _0x584711=_0x230260,_0x58b162=_0x5d0774(_0x3983f0);_0xa8a89b[_0x584711(0x1ed)][_0x584711(0x1f6)](_0x58b162),_0xa8a89b[_0x584711(0x1a5)]=_0x3983f0;});},'verify'(){const _0x4f8dbc=_0x233fd0,_0x317342=this,_0x2d0b07={'baseUrl':_0x317342['options']['baseUrl'],'endpointNode':typeof _0x317342[_0x4f8dbc(0x192)]['endpointNode']===_0x4f8dbc(0x229)?_0x317342['options'][_0x4f8dbc(0x1ca)]():_0x317342[_0x4f8dbc(0x192)][_0x4f8dbc(0x1ca)],'endpoint':typeof _0x317342[_0x4f8dbc(0x192)][_0x4f8dbc(0x203)]===_0x4f8dbc(0x229)?_0x317342[_0x4f8dbc(0x192)]['endpoint']():_0x317342[_0x4f8dbc(0x192)][_0x4f8dbc(0x203)]};_0x44cfca(_0x2d0b07,_0x317342[_0x4f8dbc(0x205)],_0x317342[_0x4f8dbc(0x1f8)]);},'_create'(){const _0x34c50b=_0x233fd0,_0xbf368f=this;function _0x1d4cd2(_0x4d1241,_0xbd8e40,_0x7fdfe2){return _0x52ec26(this,void 0x0,void 0x0,function*(){const _0x30325a=_0xa738;if(_0x4d1241['hasClass'](_0x30325a(0x173))){console['log'](_0x30325a(0x22a));return;}if(_0x4d1241[_0x30325a(0x15b)]('loading')){console[_0x30325a(0x1e0)](_0x30325a(0x1bc));return;}_0x4d1241['addClass'](_0x30325a(0x1fc)),_0x4d1241[_0x30325a(0x1f6)](_0x30325a(0x191));try{_0x4d1241[_0x30325a(0x1c9)]('ul')[_0x30325a(0x1ab)]();const {references:_0xe19fbf}=yield _0xbd8e40(_0x4d1241,_0x7fdfe2);for(const _0x48ed98 of _0xe19fbf){if(_0xbf368f['options'][_0x30325a(0x20f)]&&!_0xbf368f['options'][_0x30325a(0x20f)](_0x48ed98))continue;const _0x2f1d10=_0x5d0774(_0x48ed98);_0x4d1241[_0x30325a(0x1c9)]('ul')[_0x30325a(0x1f6)](_0x2f1d10);}_0x4d1241[_0x30325a(0x1e5)](_0x30325a(0x173));}catch(_0xdae47c){_0x4d1241[_0x30325a(0x1c9)]('ul')[_0x30325a(0x1f6)]('<li>error\x20'+_0xdae47c[_0x30325a(0x1ec)]+_0x30325a(0x18c)),console[_0x30325a(0x1e0)](_0x30325a(0x204),_0xdae47c);}_0x4d1241['find'](_0x30325a(0x201))[_0x30325a(0x1af)](),_0x4d1241[_0x30325a(0x214)](_0x30325a(0x1fc));});}_0xbf368f[_0x34c50b(0x205)]=this[_0x34c50b(0x21f)],_0xbf368f[_0x34c50b(0x211)]=$(_0x34c50b(0x187)),_0xbf368f[_0x34c50b(0x211)]['addClass']('sterfive-combo-box'),this[_0x34c50b(0x21f)][_0x34c50b(0x14e)](_0xbf368f[_0x34c50b(0x211)]),_0xbf368f[_0x34c50b(0x1cb)]=$('<div/>')[_0x34c50b(0x1e5)](_0x34c50b(0x185)),_0xbf368f[_0x34c50b(0x211)][_0x34c50b(0x1f6)](_0xbf368f[_0x34c50b(0x1cb)]),_0xbf368f[_0x34c50b(0x1cb)]['append'](_0xbf368f[_0x34c50b(0x205)]),_0xbf368f[_0x34c50b(0x1ae)]=$('<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>'),_0xbf368f['$inputGroup'][_0x34c50b(0x1f6)](_0xbf368f['$toggleTreeBtn']),_0xbf368f[_0x34c50b(0x1ae)]['on'](_0x34c50b(0x1f0),function(){const _0x3b7891=_0x34c50b;!_0xbf368f['$dropdown']['is'](_0x3b7891(0x151))&&(_0xbf368f[_0x3b7891(0x1ff)]()[_0x3b7891(0x1df)](_0x4bfbf5=>{const _0x47ac2e=_0x3b7891;var _0xacba1f;(_0x4bfbf5!==_0xbf368f[_0x47ac2e(0x1a5)]||((_0xacba1f=_0xbf368f[_0x47ac2e(0x1a5)])===null||_0xacba1f===void 0x0?void 0x0:_0xacba1f[_0x47ac2e(0x1e1)])!==_0x4bfbf5[_0x47ac2e(0x1e1)])&&_0xbf368f['reset']();}),_0xbf368f[_0x3b7891(0x1f8)][_0x3b7891(0x225)]()),_0xbf368f['$dropdown'][_0x3b7891(0x196)]();}),_0xbf368f[_0x34c50b(0x1a7)]=$(_0x34c50b(0x17f)),_0xbf368f[_0x34c50b(0x1cb)][_0x34c50b(0x1f6)](_0xbf368f[_0x34c50b(0x1a7)]),_0xbf368f['$verifyBtn']['on'](_0x34c50b(0x1f0),()=>{const _0x400e39=_0x34c50b;this[_0x400e39(0x1b3)]();}),!_0xbf368f['$input'][_0x34c50b(0x19f)](_0x34c50b(0x237))&&_0xbf368f['$input'][_0x34c50b(0x19f)]('placeholder','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20'),_0xbf368f['$info']=$('<div\x20class=\x22info-text\x22></div>'),_0xbf368f[_0x34c50b(0x1f8)][_0x34c50b(0x225)](),{'baseUrl':_0xbf368f[_0x34c50b(0x192)][_0x34c50b(0x17b)],'endpointNode':typeof _0xbf368f[_0x34c50b(0x192)][_0x34c50b(0x1ca)]===_0x34c50b(0x229)?_0xbf368f[_0x34c50b(0x192)][_0x34c50b(0x1ca)]():_0xbf368f['options'][_0x34c50b(0x1ca)],'endpoint':typeof _0xbf368f[_0x34c50b(0x192)][_0x34c50b(0x203)]===_0x34c50b(0x229)?_0xbf368f[_0x34c50b(0x192)][_0x34c50b(0x203)]():_0xbf368f[_0x34c50b(0x192)][_0x34c50b(0x203)]},_0xbf368f[_0x34c50b(0x1e8)]=$(_0x34c50b(0x187))[_0x34c50b(0x1e5)](_0x34c50b(0x1c8))[_0x34c50b(0x225)](),_0xbf368f[_0x34c50b(0x211)]['append'](_0xbf368f['$info']),_0xbf368f[_0x34c50b(0x211)]['append'](_0xbf368f[_0x34c50b(0x1e8)]),_0xbf368f[_0x34c50b(0x1ed)]=$(_0x34c50b(0x16f))['appendTo'](_0xbf368f[_0x34c50b(0x1e8)]),this[_0x34c50b(0x1bd)](),_0xbf368f[_0x34c50b(0x1ed)]['on'](_0x34c50b(0x1f0),'li',function(_0xcce2a4){const _0x276095=_0x34c50b;var _0x542da9,_0x20f3c4;_0xcce2a4['stopPropagation']();let _0x5f20d7=$(this);const _0x39e343=0x14,_0x4a2e8b=0x14,_0x3791d3=$(this)[_0x276095(0x16a)](),_0x30b00c=_0xcce2a4;if(_0x30b00c[_0x276095(0x221)]>=_0x3791d3[_0x276095(0x1b9)]&&_0x30b00c[_0x276095(0x221)]<=_0x3791d3['left']+_0x39e343&&_0x30b00c[_0x276095(0x175)]>=_0x3791d3[_0x276095(0x22c)]&&_0x30b00c['pageY']<=_0x3791d3[_0x276095(0x22c)]+_0x4a2e8b){if(_0x5f20d7[_0x276095(0x15b)]('expandable')){if(_0x5f20d7['hasClass'](_0x276095(0x173))){_0x5f20d7[_0x276095(0x214)](_0x276095(0x233))['addClass'](_0x276095(0x17e)),_0x5f20d7[_0x276095(0x1c9)]('ul')[_0x276095(0x196)]();return;}const _0x13a4ab={'baseUrl':_0xbf368f[_0x276095(0x192)][_0x276095(0x17b)],'endpointNode':typeof _0xbf368f[_0x276095(0x192)][_0x276095(0x1ca)]===_0x276095(0x229)?_0xbf368f['options'][_0x276095(0x1ca)]():_0xbf368f[_0x276095(0x192)][_0x276095(0x1ca)],'endpoint':typeof _0xbf368f['options'][_0x276095(0x203)]===_0x276095(0x229)?_0xbf368f[_0x276095(0x192)][_0x276095(0x203)]():_0xbf368f[_0x276095(0x192)][_0x276095(0x203)]},_0x4d6edf=!_0xbf368f[_0x276095(0x192)][_0x276095(0x219)]?_0x2d871d:_0x11b883;_0x1d4cd2(_0x5f20d7,_0x4d6edf,_0x13a4ab)[_0x276095(0x1df)](()=>{const _0x129612=_0x276095;console[_0x129612(0x1e0)](_0x129612(0x1f1)),console['log']('fetched'),_0x5f20d7[_0x129612(0x214)](_0x129612(0x233))[_0x129612(0x1e5)](_0x129612(0x17e));})[_0x276095(0x19b)](_0x3c4144=>{const _0x5de5cb=_0x276095;_0x5f20d7['removeClass']('expandable')['addClass'](_0x5de5cb(0x17e)),console[_0x5de5cb(0x1e0)](_0x5de5cb(0x209),_0x3c4144);});}else{if(_0x5f20d7[_0x276095(0x15b)]('expanded'))_0x5f20d7[_0x276095(0x1c9)]('ul')[_0x276095(0x196)](),_0x5f20d7[_0x276095(0x22f)](_0x276095(0x161));else{if(_0x5f20d7[_0x276095(0x1c9)]('ul')[_0x276095(0x1c9)]()['length']>0x0)_0x5f20d7['children']('ul')[_0x276095(0x196)](),_0x5f20d7[_0x276095(0x22f)](_0x276095(0x161));else;}}}else{const _0x5a90b4=_0x5f20d7[_0x276095(0x1ac)](_0x276095(0x1f9)),_0x5266d7=_0x5f20d7[_0x276095(0x1ac)](_0x276095(0x155));if(_0xbf368f['options'][_0x276095(0x169)]&&!_0xbf368f[_0x276095(0x192)][_0x276095(0x169)](_0x5266d7))return;_0xbf368f[_0x276095(0x205)][_0x276095(0x1ac)](_0x276095(0x155),_0x5266d7);const _0x33c2b0=((_0x542da9=_0x5266d7[_0x276095(0x1cf)])===null||_0x542da9===void 0x0?void 0x0:_0x542da9[_0x276095(0x1fe)])||((_0x20f3c4=_0x5266d7[_0x276095(0x1bf)])===null||_0x20f3c4===void 0x0?void 0x0:_0x20f3c4['name'])||_0x5266d7['nodeId'][_0x276095(0x178)](),_0x48126d='['+_0x33c2b0+']('+_0x5a90b4+')';_0xbf368f['$input'][_0x276095(0x1c6)](_0x48126d),_0xbf368f[_0x276095(0x205)][_0x276095(0x1da)](_0x276095(0x20d)),_0xbf368f[_0x276095(0x1e8)][_0x276095(0x225)]();}}),$(document)['on'](_0x34c50b(0x1f0),function(_0x451b94){const _0x19a018=_0x34c50b;!$(_0x451b94['target'])[_0x19a018(0x186)](_0xbf368f[_0x19a018(0x211)])['length']&&_0xbf368f[_0x19a018(0x1e8)][_0x19a018(0x225)]();});}});},_0x23e9ff=_0x37a906=>{const _0x3b34df=_0x37222f;var _0x3810f9,_0x37302a,_0x3aae5c;if(!_0x37a906){const _0x762356=$(_0x3b34df(0x189));return _0x762356;}const _0x31c252=_0x37a906['nodeId']['toString']();let _0x36224b=((_0x3810f9=_0x37a906[_0x3b34df(0x1cf)])===null||_0x3810f9===void 0x0?void 0x0:_0x3810f9[_0x3b34df(0x1fe)])||((_0x37302a=_0x37a906[_0x3b34df(0x1bf)])===null||_0x37302a===void 0x0?void 0x0:_0x37302a[_0x3b34df(0x190)])||_0x37a906[_0x3b34df(0x1e1)][_0x3b34df(0x178)](),_0x4f80ab=(_0x3aae5c=_0x37a906[_0x3b34df(0x1bf)])===null||_0x3aae5c===void 0x0?void 0x0:_0x3aae5c['namespaceIndex'];_0x36224b+=_0x4f80ab!==undefined&&_0x37a906[_0x3b34df(0x1d4)][_0x3b34df(0x1fb)](/Type/)?_0x3b34df(0x179)+_0x4f80ab+')':'';const {icon:_0x28bc0c,color:_0x368e82}=_0x459a3d(_0x37a906),_0xbdf961=$(_0x3b34df(0x223));if(_0x37a906[_0x3b34df(0x1d4)]===_0x3b34df(0x164)){const _0x429130=$(_0x3b34df(0x217));_0xbdf961[_0x3b34df(0x1f6)](_0x429130),_0x429130['on'](_0x3b34df(0x1f0),function(){const _0xd51089=_0x3b34df;_0x429130[_0xd51089(0x15b)](_0xd51089(0x165))?_0x429130[_0xd51089(0x214)](_0xd51089(0x165))[_0xd51089(0x1e5)](_0xd51089(0x1a2)):_0x429130[_0xd51089(0x214)](_0xd51089(0x1a2))[_0xd51089(0x1e5)](_0xd51089(0x165));});}return _0xbdf961[_0x3b34df(0x1f6)]($(_0x3b34df(0x1ce)+_0x28bc0c+_0x3b34df(0x226)+_0x368e82+_0x3b34df(0x182)+_0x36224b+'<ul></ul>')),_0xbdf961['addClass'](_0x3b34df(0x233)),_0xbdf961[_0x3b34df(0x1ac)]('value',_0x31c252),_0xbdf961['data'](_0x3b34df(0x155),_0x37a906),_0xbdf961;},_0x3d3e26=()=>{const _0x179244=_0x37222f;$[_0x179244(0x1f7)](_0x179244(0x19a),{'options':{'endpointNode':()=>({'endpoint':_0x179244(0x1c2)}),'endpoint':()=>undefined,'baseUrl':''},'_populate'(){var _0x362f90;return _0x52ec26(this,void 0x0,void 0x0,function*(){const _0x43b872=_0xa738,_0x4b5bab=this,_0x3b290e=new Set((_0x362f90=_0x4b5bab[_0x43b872(0x205)][_0x43b872(0x1c6)]())===null||_0x362f90===void 0x0?void 0x0:_0x362f90[_0x43b872(0x178)]()[_0x43b872(0x1d7)](';')),_0x1afb56={'baseUrl':_0x4b5bab['options']['baseUrl'],'endpointNode':typeof _0x4b5bab[_0x43b872(0x192)]['endpointNode']===_0x43b872(0x229)?_0x4b5bab['options']['endpointNode']():_0x4b5bab[_0x43b872(0x192)][_0x43b872(0x1ca)],'endpoint':typeof _0x4b5bab[_0x43b872(0x192)][_0x43b872(0x203)]===_0x43b872(0x229)?_0x4b5bab[_0x43b872(0x192)][_0x43b872(0x203)]():_0x4b5bab[_0x43b872(0x192)][_0x43b872(0x203)]},_0x128450=yield _0x30a976(_0x1afb56);this[_0x43b872(0x222)](_0x128450,_0x3b290e);});},'_installTree'(_0x44785e,_0x118139){const _0x3492d0=_0x179244,_0x5ef681=this;_0x5ef681[_0x3492d0(0x1ed)][_0x3492d0(0x1ab)]();if(!_0x44785e[_0x3492d0(0x220)])return;const _0x3cbc02=_0x44785e[_0x3492d0(0x220)],_0x90e003=_0x23e9ff(_0x3cbc02);_0x5ef681[_0x3492d0(0x1ed)][_0x3492d0(0x1f6)](_0x90e003);const _0x2db673='';this[_0x3492d0(0x21b)](_0x90e003[_0x3492d0(0x1c9)]('ul'),_0x3cbc02,_0x2db673,_0x118139),_0x90e003[_0x3492d0(0x214)](_0x3492d0(0x233))[_0x3492d0(0x1e5)](_0x3492d0(0x17e)),this[_0x3492d0(0x16c)](_0x118139);},'_installChildren'(_0x11acb8,_0x34b35b,_0xd0fd85,_0x314a18){const _0x23215b=_0x179244,_0xd3f9ab=({name:_0x7f6a81,namespaceIndex:_0xb3460b})=>{if(_0xb3460b===0x0)return _0x7f6a81;return _0xb3460b+':'+_0x7f6a81;},_0x13df70=_0x34b35b['children']||[],_0x224d06=_0x34b35b['subTypes']||[],_0x4ad126=[..._0x13df70,..._0x224d06];for(const _0x1ed6c6 of _0x4ad126){const _0x9dc139=_0x23e9ff(_0x1ed6c6);_0x11acb8['append'](_0x9dc139);let _0x287e22='';_0x1ed6c6[_0x23215b(0x1d4)]===_0x23215b(0x164)&&(_0xd0fd85?_0x287e22=_0xd0fd85+'.'+_0xd3f9ab(_0x1ed6c6[_0x23215b(0x1bf)]):_0x287e22=_0xd3f9ab(_0x1ed6c6[_0x23215b(0x1bf)]),_0x9dc139[_0x23215b(0x19f)](_0x23215b(0x22b),_0x287e22));const _0x45bc86=_0x1ed6c6[_0x23215b(0x1c9)]&&_0x1ed6c6[_0x23215b(0x1c9)]['length'],_0x4964c7=_0x1ed6c6[_0x23215b(0x1a3)]&&_0x1ed6c6[_0x23215b(0x1a3)][_0x23215b(0x150)];!_0x45bc86&&!_0x4964c7?_0x9dc139[_0x23215b(0x214)](_0x23215b(0x233))[_0x23215b(0x1e5)](_0x23215b(0x1b2)):(this[_0x23215b(0x21b)](_0x9dc139[_0x23215b(0x1c9)]('ul'),_0x1ed6c6,_0x287e22,_0x314a18),_0x9dc139[_0x23215b(0x214)](_0x23215b(0x233))[_0x23215b(0x1e5)](_0x23215b(0x17e)));}},'_updateSelectedFields'(){const _0x51f5b4=_0x179244;var _0xee616a;const _0x5c82b2=this,_0xf24d5a=new Set((_0xee616a=_0x5c82b2['$input'][_0x51f5b4(0x1c6)]())===null||_0xee616a===void 0x0?void 0x0:_0xee616a[_0x51f5b4(0x178)]()[_0x51f5b4(0x1d7)](';'));this[_0x51f5b4(0x16c)](_0xf24d5a);},'_updateValues'(_0x503e6e){const _0x336dd2=_0x179244;$('.sterfive-tree\x20li')[_0x336dd2(0x1b8)](function(){const _0x116c86=_0x336dd2,_0x55c4f9=$(this),_0x4a9133=_0x55c4f9[_0x116c86(0x19f)](_0x116c86(0x22b));_0x4a9133&&_0x503e6e[_0x116c86(0x1a4)](_0x4a9133)&&_0x55c4f9[_0x116c86(0x1c9)](_0x116c86(0x1ad))['removeClass'](_0x116c86(0x165))[_0x116c86(0x1e5)](_0x116c86(0x1a2));});},'_setInputValue'(){const _0x1bb7b5=_0x179244,_0x54b095=this,_0x20d361=[];$(_0x1bb7b5(0x202))[_0x1bb7b5(0x1b8)](function(){const _0xece063=_0x1bb7b5,_0x4e8fa5=$(this);if(_0x4e8fa5[_0xece063(0x1c9)](_0xece063(0x16e))[_0xece063(0x150)]>0x0){const _0x2eaca0=_0x4e8fa5[_0xece063(0x19f)](_0xece063(0x22b));if(_0x2eaca0)_0x20d361[_0xece063(0x188)](_0x2eaca0);}});const _0x1adf21=[...new Set(_0x20d361)][_0x1bb7b5(0x1b5)]()[_0x1bb7b5(0x1a1)](';');_0x54b095[_0x1bb7b5(0x205)][_0x1bb7b5(0x1c6)](_0x1adf21),_0x54b095[_0x1bb7b5(0x205)][_0x1bb7b5(0x1da)](_0x1bb7b5(0x20d));},'_create'(){const _0x1c16d4=_0x179244,_0x476e8a=this;_0x476e8a[_0x1c16d4(0x205)]=this[_0x1c16d4(0x21f)],_0x476e8a[_0x1c16d4(0x211)]=$(_0x1c16d4(0x187)),_0x476e8a['$combo'][_0x1c16d4(0x1e5)](_0x1c16d4(0x1dd)),this[_0x1c16d4(0x21f)][0x0]['parentElement'][_0x1c16d4(0x1e4)](_0x476e8a[_0x1c16d4(0x211)][0x0],this[_0x1c16d4(0x21f)][0x0]),_0x476e8a[_0x1c16d4(0x1cb)]=$(_0x1c16d4(0x187))[_0x1c16d4(0x1e5)](_0x1c16d4(0x185)),_0x476e8a['$combo'][_0x1c16d4(0x1f6)](_0x476e8a[_0x1c16d4(0x1cb)]),_0x476e8a[_0x1c16d4(0x1cb)][_0x1c16d4(0x1f6)](_0x476e8a['$input']),_0x476e8a[_0x1c16d4(0x1ae)]=$(_0x1c16d4(0x20e)),_0x476e8a[_0x1c16d4(0x1cb)]['append'](_0x476e8a[_0x1c16d4(0x1ae)]),_0x476e8a[_0x1c16d4(0x1ae)]['on'](_0x1c16d4(0x1f0),function(){const _0x1501cb=_0x1c16d4;_0x476e8a[_0x1501cb(0x1e8)][_0x1501cb(0x196)](),_0x476e8a[_0x1501cb(0x1f8)]['toggle']();if(_0x476e8a[_0x1501cb(0x1e8)]['is'](_0x1501cb(0x151))){_0xa94e41[_0x1501cb(0x18a)]();const _0x1deceb=_0x476e8a['$dropdown'][_0x1501cb(0x16a)]();_0xa94e41[_0x1501cb(0x234)]({'top':_0x1deceb[_0x1501cb(0x22c)]+'px','right':_0x1501cb(0x177)+(_0x1deceb['left']+_0x476e8a[_0x1501cb(0x1e8)][_0x1501cb(0x19c)]())+_0x1501cb(0x17c)}),_0x476e8a['_populate'](),_0x476e8a['_updateSelectedFields']();}else _0xa94e41['hide']();});!_0x476e8a[_0x1c16d4(0x205)][_0x1c16d4(0x19f)]('placeholder')&&_0x476e8a['$input']['attr']('placeholder',_0x1c16d4(0x1d2));_0x476e8a['$info']=$(_0x1c16d4(0x154)),_0x476e8a['$info']['hide'](),_0x476e8a[_0x1c16d4(0x1e8)]=$(_0x1c16d4(0x187))[_0x1c16d4(0x1e5)](_0x1c16d4(0x1c8))['hide']();const _0x111868=$(_0x1c16d4(0x1dc)),_0x35174e=$('<span\x20class=\x22cancel-button\x22>✖</span>'),_0xa94e41=$(_0x1c16d4(0x157))[_0x1c16d4(0x1f6)](_0x111868,_0x35174e);_0xa94e41['hide'](),_0x111868['on'](_0x1c16d4(0x1f0),()=>{const _0x2068c0=_0x1c16d4;_0x476e8a[_0x2068c0(0x212)](),_0x476e8a[_0x2068c0(0x1e8)]['hide']();}),_0x35174e['on']('click',()=>{const _0x102ab7=_0x1c16d4;_0x476e8a[_0x102ab7(0x1e8)][_0x102ab7(0x225)]();}),_0x476e8a[_0x1c16d4(0x211)][_0x1c16d4(0x1f6)](_0x476e8a[_0x1c16d4(0x1f8)]),_0x476e8a[_0x1c16d4(0x211)][_0x1c16d4(0x1f6)](_0x476e8a['$dropdown']),_0x476e8a[_0x1c16d4(0x1ed)]=$(_0x1c16d4(0x16f)),_0x476e8a[_0x1c16d4(0x1e8)]['empty']()[_0x1c16d4(0x1f6)](_0x476e8a[_0x1c16d4(0x1ed)],_0xa94e41),_0x476e8a[_0x1c16d4(0x1ed)]['on']('click','li',function(_0x304837){const _0x481d41=_0x1c16d4;_0x304837[_0x481d41(0x19d)]();let _0x428a49=$(this);const _0x221f52=0x14,_0x5234bb=0x14,_0x2dbc4d=$(this)[_0x481d41(0x16a)](),_0xf158da=_0x304837;if(_0xf158da['pageX']>=_0x2dbc4d['left']&&_0xf158da['pageX']<=_0x2dbc4d['left']+_0x221f52&&_0xf158da[_0x481d41(0x175)]>=_0x2dbc4d['top']&&_0xf158da['pageY']<=_0x2dbc4d[_0x481d41(0x22c)]+_0x5234bb){console[_0x481d41(0x1e0)]('clicked\x20on\x20icon'),console[_0x481d41(0x1e0)](_0x481d41(0x166),_0x428a49[_0x481d41(0x1ac)]('value'),_0x428a49['attr'](_0x481d41(0x1ef)));if(_0x428a49['hasClass']('expandable'))_0x428a49[_0x481d41(0x214)]('expandable')[_0x481d41(0x1e5)]('expanded'),_0x428a49[_0x481d41(0x1c9)]('ul')['toggle']();else{if(_0x428a49[_0x481d41(0x15b)](_0x481d41(0x17e)))_0x428a49[_0x481d41(0x1c9)]('ul')[_0x481d41(0x196)](),_0x428a49[_0x481d41(0x22f)](_0x481d41(0x161));else{if(_0x428a49['children']('ul')['children']()[_0x481d41(0x150)]>0x0)_0x428a49[_0x481d41(0x1c9)]('ul')[_0x481d41(0x196)](),_0x428a49[_0x481d41(0x22f)](_0x481d41(0x161));else;}}}}),$(document)['on']('click',function(_0x5d1944){const _0x5ec244=_0x1c16d4;!$(_0x5d1944[_0x5ec244(0x1a8)])[_0x5ec244(0x186)](_0x476e8a[_0x5ec244(0x211)])[_0x5ec244(0x150)]&&_0x476e8a['$dropdown'][_0x5ec244(0x225)]();}),this['_populate']();}});},_0x30a976=({endpointNode:_0x1923a4,endpoint:_0x37f01f,baseUrl:_0x4d9cd2})=>_0x52ec26(void 0x0,void 0x0,void 0x0,function*(){const _0x145901=_0x37222f,_0x62945d=_0x4d9cd2+_0x145901(0x1fd),_0x2eaee8=_0x62945d+_0x145901(0x19e),_0x4e695c=yield fetch(_0x2eaee8,{'method':_0x145901(0x1de),'body':JSON['stringify']({'endpointNode':_0x1923a4,'endpoint':_0x37f01f}),'headers':{'Content-Type':_0x145901(0x14f)}});if(_0x4e695c['status']!==0xc8)return console[_0x145901(0x1e0)](_0x145901(0x1c5),_0x4e695c['status'],_0x4e695c[_0x145901(0x167)]),{'events':null};console[_0x145901(0x1e0)](_0x145901(0x1d3),_0x4e695c[_0x145901(0x15f)],_0x4e695c[_0x145901(0x167)]);const _0x27c7e2=yield _0x4e695c[_0x145901(0x1ee)](),_0x392902=_0x27c7e2[_0x145901(0x220)];return{'events':_0x392902};}),_0x3fc104=()=>{const _0xd58433=_0x37222f,_0x55bdc6=$(_0xd58433(0x1e7)),_0x42fc57=_0x55bdc6[_0xd58433(0x1c6)](),_0x1d554f=RED[_0xd58433(0x235)]['node'](_0x42fc57);if(!_0x1d554f)return undefined;const {endpoint:_0x31c714,securityMode:_0x377ad6,securityPolicy:_0x4a4cfc,userIdentityType:_0x1a6515,userName:_0xa78d4e,password:_0x1bc350,userCertificate:_0x494011,userPrivatekey:_0x23a622}=_0x1d554f;return{'endpoint':_0x31c714,'securityMode':_0x377ad6,'securityPolicy':_0x4a4cfc,'userIdentityType':_0x1a6515,'userName':_0xa78d4e,'password':_0x1bc350,'userCertificate':_0x494011,'userPrivatekey':_0x23a622};},_0x4455bd=()=>{return{'endpointNode':_0x45d9ef};},_0x45d9ef=()=>{const _0x1c3f64=_0x37222f,_0x207ce4=$('#node-input-endpoint'),_0xb3167d=_0x207ce4[_0x1c3f64(0x1c6)](),_0x122d4c=_0x3fc104();if(!_0x122d4c)return undefined;return{'id':_0xb3167d,'endpoint':_0x122d4c[_0x1c3f64(0x203)],'securityMode':_0x122d4c['securityMode'],'securityPolicy':_0x122d4c[_0x1c3f64(0x162)],'userIdentityType':_0x122d4c[_0x1c3f64(0x227)],'userName':_0x122d4c[_0x1c3f64(0x227)]===_0x1c3f64(0x14d)?_0x122d4c[_0x1c3f64(0x1d6)]:undefined,'password':_0x122d4c[_0x1c3f64(0x227)]===_0x1c3f64(0x14d)?_0x122d4c['password']:undefined,'userCertificate':_0x122d4c['userCertificate'],'userPrivatekey':_0x122d4c[_0x1c3f64(0x17a)]};};RED['nodes'][_0x37222f(0x156)](_0x37222f(0x193),{'category':_0x37222f(0x1aa),'color':_0x37222f(0x230),'align':_0x37222f(0x1b6),'icon':_0x37222f(0x206),'paletteLabel':_0x37222f(0x16b),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x37222f(0x200)},'subscription':{'value':'','required':!![],'validate':_0xfee62f=>{if(_0xfee62f==='')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 _0x5e8cb0=_0x37222f;return this[_0x5e8cb0(0x190)]||_0x5e8cb0(0x18f);},'labelStyle'(){const _0x16b402=_0x37222f;return this[_0x16b402(0x190)]?'node_label_italic':'';},'oneditprepare'(){const _0x1acccf=_0x37222f;_0x5ed3ae(),_0x3d3e26(),_0x378e23(RED,this),$(_0x1acccf(0x20b))['on'](_0x1acccf(0x20d),()=>{const _0x5b9645=_0x1acccf,_0x5944ca=$(_0x5b9645(0x1b4))['prop']('checked');_0x5944ca?$('#node-input-inputs')[_0x5b9645(0x1c6)](0x0):$(_0x5b9645(0x1a6))['val'](0x1);});const _0x595ffe=$(_0x1acccf(0x21c));_0x595ffe[_0x1acccf(0x1d1)](Object[_0x1acccf(0x238)](Object[_0x1acccf(0x238)]({},_0x4455bd()),{'filter'(_0x2ecad4){return _0x2ecad4['nodeClass']==='Object';},'isSelectable'(_0x556a1d){const _0x1d3353=_0x1acccf;return _0x556a1d[_0x1d3353(0x1d4)]===_0x1d3353(0x160);}})),$(_0x1acccf(0x184));const _0x53acf1=$('#node-input-selectClauses');_0x53acf1[_0x1acccf(0x20a)](Object[_0x1acccf(0x238)]({},_0x4455bd()));},'oneditsave'(){const _0x4bb5fe=_0x37222f,_0xab6da4=$(_0x4bb5fe(0x1b4))['prop'](_0x4bb5fe(0x1a2));_0xab6da4?($('#node-input-startImmediately')[_0x4bb5fe(0x1c6)](_0xab6da4?0x0:0x1),this['inputs']=_0xab6da4?0x0:0x1):($('#node-input-startImmediately')[_0x4bb5fe(0x1c6)](0x1),this[_0x4bb5fe(0x199)]=0x1);}});}()));function _0x17b7(){const _0x4e54c1=['hide','\x22\x20style=\x22color:','userIdentityType','DataType','function','already\x20fetched','data-value','top','Inverse','332960qzEBRG','toggleClass','#C0DEED','Invalid','ObjectType','expandable','css','nodes','fa-object-group','placeholder','assign','fa-list-alt','4940852gXMHVh','SandyBrown','UserName','replaceWith','application/json','length',':visible','failure','View','<div\x20class=\x22info-text\x22></div>','reference','registerType','<div\x20class=\x22floating-buttons\x22></div>','<option/>','throw','!!failure!!','hasClass','browseResult','5KekIwq','typeDefinition','status','Object','expandable\x20expanded','securityPolicy','subscription','Variable','unchecked','clicked\x20on\x20','statusText','#node-input-subscription','isSelectable','offset','monitor\x20events','_updateValues','fa-question','span.custom-checkbox.checked','<ul\x20class=\x22sterfive-tree\x22></ul>','node','ns=0;i=35','sterfive.nodeBrowser','fetched','next','pageY','fa-folder','calc(100%\x20-\x20','toString','\x20(ns=','userPrivatekey','baseUrl','px)','49250sFXMTO','expanded','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','ns=0;i=61','DarkOrange',';\x22></i>','IsForward','#node-input-whereClause','input-group','closest','<div/>','push','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','show','31BZYtlH','</li>','HasSubtype','HasComponent','OPCUA\x20Monitor','name','<div\x20class=\x22spinner\x22></div>','options','OpcUa-Client2-MonitorEvent','nodeAddressString','apply','toggle','appendTo','subscriptions','inputs','sterfive.eventFieldSelector','catch','width','stopPropagation','/extractEventTypes','attr','Good','join','checked','subTypes','has','currentParent','#node-input-inputs','$verifyBtn','target','NodeClass','opcua','empty','data','span.custom-checkbox','$toggleTreeBtn','remove','SteelBlue','ns=0;i=85','no-expandable','verify','#node-input-startImmediately','sort','right','<li><i\x20class=\x22fa\x20','each','left','TypeDefinition','45582otKSHA','already\x20loading','reset','references','browseName','/browse','10OJdFJZ','opc.tcp://opcuademo.sterfive.com:26543','suppressed','HasTypeDefinition','fetching\x20failed\x20with\x20error','val','stringify','sterfive-dropdown','children','endpointNode','$inputGroup','ReferenceType','Objects','<i\x20class=\x22fa\x20','displayName','1757901kJXhjO','nodeBrowser','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','fetched\x20:\x20','nodeClass',';\x22></i>\x20','userName','split','ns=0;i=40','Forward','trigger','parentNode','<span\x20class=\x22validate-button\x22>✔</span>','sterfive-combo-box','POST','then','log','nodeId','9rNCAyR','ns=0;i=47','replaceChild','addClass','i=61','#node-input-endpoint','$dropdown','ns=0;i=34','referenceTypeId','DisplayName','message','$tree','json','class','click','\x20Fetching\x20done','<ul></ul></li>','DodgerBlue','ns=0;i=45','HasChild','append','widget','$info','value','VariableType','match','loading','/opcua-endpoint2','text','resolveParentNode','OpcUa-Endpoint2','.spinner','.sterfive-tree\x20li','endpoint','err','$input','opcualogobig.png','statusCode','Method','error','eventFieldSelector','node-input-startImmediately','focus\x20click','change','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','filter','SuppressedError','$combo','_setInputValue','HasProperty','removeClass','27391397RLpGPG','CadetBlue','<span\x20class=\x22custom-checkbox\x20unchecked\x22></span>','sterfive-info','isTypeRef','grey','_installChildren','#node-input-nodeId','3145541slgbUT','Both','element','events','pageX','_installTree','<li>','BrowseName'];_0x17b7=function(){return _0x4e54c1;};return _0x17b7();}
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgzNzhlMjMiLCJfMHhiNjA1ODAiLCJfMHgyYWJlMDYiLCJfMHgzMTBkYTUiLCIkIiwiXzB4MTlkNTkwIiwiXzB4NDE0NDc1IiwiXzB4MWJmNDg5IiwiXzB4MzI0M2YyIiwiXzB4NWNlZDUzIiwiXzB4NTJlYzI2IiwiXzB4NGZlYzQ4IiwiXzB4MzI2NzliIiwiXzB4MjQxMDBmIiwiXzB4NDIyNzI5IiwiXzB4NGMyYTBjIiwiXzB4M2I1MWYyIiwiXzB4NTY1ZDliIiwiUHJvbWlzZSIsIl8weDM5MDk1ZSIsIl8weGVjMDA2MSIsIl8weDJmMDU4OSIsIl8weGJiM2MwNyIsIl8weDQ5ZDkzYyIsIl8weDVlYmVmYSIsIl8weDM5OTFjYyIsIl8weDU0NzI0ZSIsIl8weDNmOTY0YyIsIl8weDRhZjU1ZSIsIlN1cHByZXNzZWRFcnJvciIsIl8weDRiMWYwMCIsIl8weDMwNTJiNyIsIl8weDI5Y2FjMyIsIl8weGEzYTBhYSIsIkVycm9yIiwiXzB4NDIwNmNmIiwiXzB4MmQ5NzYxIiwiXzB4NTgzOThjIiwiXzB4NGRiYTJlIiwiXzB4MjllMzI5IiwiXzB4NDg5OGVmIiwiXzB4NTQ5NWY0IiwiXzB4NTUyOTk1IiwiXzB4MTA2M2YwIiwiXzB4Njk1YzUwIiwiXzB4MjU2MWM0IiwiXzB4NzA2NzA2IiwiXzB4MzA1MmRhIiwiXzB4NDY3ZjQ5IiwiXzB4MjhlMGI0IiwiXzB4NWVkZDczIiwiXzB4MjYxYWQyIiwiXzB4NDU5YTNkIiwiXzB4MjRmZDQyIiwiXzB4MTBmYzczIiwiZW5kcG9pbnROb2RlIiwiXzB4MzAzZTkxIiwiZW5kcG9pbnQiLCJfMHgxNzMzMjMiLCJiYXNlVXJsIiwiXzB4Mzk0ZDZkIiwiXzB4NzQxYzRmIiwiXzB4MWNkNDZhIiwiXzB4NWNlZGE3IiwiXzB4NDhkZGZjIiwiXzB4MWUzNjA4IiwiT2JqZWN0IiwiXzB4NGU0ZTE4IiwiZmV0Y2giLCJKU09OIiwiY29uc29sZSIsIl8weDQ5MGJhMCIsIl8weDM0N2ZjZCIsIl8weDIzNDFlOCIsIl8weDIyZTFkMCIsIl8weDQ0Y2ZjYSIsIl8weDM2ZGVlNiIsIl8weDQwY2I3OSIsIl8weDIyZjRhMyIsIl8weDI2MGEwZSIsIl8weDQ5Mjc1ZCIsIl8weDNmZmZkYSIsIl8weDVmM2MzOCIsIl8weDE2NDFjNiIsIl8weDJjNGVjYiIsIl8weDQ4ZmVmMiIsIl8weDIzYmQyYSIsInNldFRpbWVvdXQiLCJfMHgzOGY1MGIiLCJfMHgyZDg3MWQiLCJfMHgxNGE3ZjkiLCJfMHg1MzExODIiLCJfMHgyZGFmZjYiLCJfMHgzNmEwMjAiLCJfMHgyYzNlMzgiLCJfMHg1NzdjMGEiLCJfMHgxMWI4ODMiLCJfMHgyNDA2OGMiLCJfMHg0NGQ1ZTQiLCJfMHgxYmVlMzUiLCJfMHg1MDI4ZjQiLCJfMHg1ZDA3NzQiLCJfMHgyMzY4NDUiLCJfMHg0NGRkMTUiLCJfMHhlYTEzNGUiLCJfMHgyYjZmNzkiLCJfMHgxMmU4MGEiLCJfMHg1MjhmZGUiLCJpY29uIiwiXzB4NWVkYWFhIiwiY29sb3IiLCJfMHgxZGY4MzUiLCJfMHgxMzkxMjMiLCJfMHg1ZWQzYWUiLCJ1bmRlZmluZWQiLCJfMHgyNmM4MmEiLCJfMHgzYTVlZTEiLCJfMHhhOGE4OWIiLCJfMHgzOTgzZjAiLCJfMHg1OGIxNjIiLCJfMHgzMTczNDIiLCJfMHgyZDBiMDciLCJfMHhiZjM2OGYiLCJfMHgxZDRjZDIiLCJfMHg0ZDEyNDEiLCJfMHhiZDhlNDAiLCJfMHg3ZmRmZTIiLCJyZWZlcmVuY2VzIiwiXzB4ZTE5ZmJmIiwiXzB4NDhlZDk4IiwiXzB4MmYxZDEwIiwiXzB4ZGFlNDdjIiwiXzB4NGJmYmY1IiwiXzB4YWNiYTFmIiwiXzB4Y2NlMmE0IiwiXzB4NTQyZGE5IiwiXzB4MjBmM2M0IiwiXzB4NWYyMGQ3IiwiXzB4MzllMzQzIiwiXzB4NGEyZThiIiwiXzB4Mzc5MWQzIiwiXzB4MzBiMDBjIiwiXzB4MTNhNGFiIiwiXzB4NGQ2ZWRmIiwiXzB4M2M0MTQ0IiwiXzB4NWE5MGI0IiwiXzB4NTI2NmQ3IiwiXzB4MzNjMmIwIiwiXzB4NDgxMjZkIiwiZG9jdW1lbnQiLCJfMHg0NTFiOTQiLCJfMHgyM2U5ZmYiLCJfMHgzN2E5MDYiLCJfMHgzODEwZjkiLCJfMHgzNzMwMmEiLCJfMHgzYWFlNWMiLCJfMHg3NjIzNTYiLCJfMHgzMWMyNTIiLCJfMHgzNjIyNGIiLCJfMHg0ZjgwYWIiLCJfMHgyOGJjMGMiLCJfMHgzNjhlODIiLCJfMHhiZGY5NjEiLCJfMHg0MjkxMzAiLCJfMHgzZDNlMjYiLCJfMHgzNjJmOTAiLCJfMHg0YjViYWIiLCJfMHgzYjI5MGUiLCJTZXQiLCJfMHgxYWZiNTYiLCJfMHgxMjg0NTAiLCJfMHgzMGE5NzYiLCJfMHg0NDc4NWUiLCJfMHgxMTgxMzkiLCJfMHg1ZWY2ODEiLCJfMHgzY2JjMDIiLCJfMHg5MGUwMDMiLCJfMHgyZGI2NzMiLCJfMHgxMWFjYjgiLCJfMHgzNGIzNWIiLCJfMHhkMGZkODUiLCJfMHgzMTRhMTgiLCJfMHhkM2Y5YWIiLCJuYW1lIiwiXzB4N2Y2YTgxIiwibmFtZXNwYWNlSW5kZXgiLCJfMHhiMzQ2MGIiLCJfMHgxM2RmNzAiLCJfMHgyMjRkMDYiLCJfMHg0YWQxMjYiLCJfMHgxZWQ2YzYiLCJfMHg5ZGMxMzkiLCJfMHgyODdlMjIiLCJfMHg0NWJjODYiLCJfMHg0OTY0YzciLCJfMHhlZTYxNmEiLCJfMHg1YzgyYjIiLCJfMHhmMjRkNWEiLCJfMHg1MDNlNmUiLCJfMHg1NWM0ZjkiLCJfMHg0YTkxMzMiLCJfMHg1NGIwOTUiLCJfMHgyMGQzNjEiLCJfMHg0ZThmYTUiLCJfMHgyZWFjYTAiLCJfMHgxYWRmMjEiLCJfMHg0NzZlOGEiLCJfMHhhOTRlNDEiLCJfMHgxZGVjZWIiLCJfMHgxMTE4NjgiLCJfMHgzNTE3NGUiLCJfMHgzMDQ4MzciLCJfMHg0MjhhNDkiLCJfMHgyMjFmNTIiLCJfMHg1MjM0YmIiLCJfMHgyZGJjNGQiLCJfMHhmMTU4ZGEiLCJfMHg1ZDE5NDQiLCJfMHgxOTIzYTQiLCJfMHgzN2YwMWYiLCJfMHg0ZDljZDIiLCJfMHg2Mjk0NWQiLCJfMHgyZWFlZTgiLCJfMHg0ZTY5NWMiLCJfMHgyN2M3ZTIiLCJfMHgzOTI5MDIiLCJfMHgzZmMxMDQiLCJfMHg1NWJkYzYiLCJfMHg0MmZjNTciLCJfMHgxZDU1NGYiLCJSRUQiLCJfMHgzMWM3MTQiLCJzZWN1cml0eU1vZGUiLCJfMHgzNzdhZDYiLCJzZWN1cml0eVBvbGljeSIsIl8weDRhNGNmYyIsInVzZXJJZGVudGl0eVR5cGUiLCJfMHgxYTY1MTUiLCJ1c2VyTmFtZSIsIl8weGE3OGQ0ZSIsInBhc3N3b3JkIiwiXzB4MWJjMzUwIiwidXNlckNlcnRpZmljYXRlIiwiXzB4NDk0MDExIiwidXNlclByaXZhdGVrZXkiLCJfMHgyM2E2MjIiLCJfMHg0NDU1YmQiLCJfMHg0NWQ5ZWYiLCJfMHgyMDdjZTQiLCJfMHhiMzE2N2QiLCJfMHgxMjJkNGMiLCJfMHhmZWU2MmYiLCJfMHg1OTQ0Y2EiLCJfMHg1OTVmZmUiLCJfMHgyZWNhZDQiLCJfMHg1NTZhMWQiLCJfMHg1M2FjZjEiLCJfMHhhYjZkYTQiXSwibWFwcGluZ3MiOiJxMEJBQUEsQ0FBQyxVLENBQ0csYSx3QkFFQSxTQUFTQSxTQUFULENBQXFDQyxTQUFyQyxDQUEwQ0MsU0FBMUMsQyx5QkFDVUMsU0FBQSxDQUFZQyxDQUFBLEMsZ0JBQUEsQyxDQUNaQyxTQUFBLENBQWdCRCxDQUFBLEMsZ0JBQUEsQyxDQUNoQkUsU0FBQSxDQUE2QixJLDJCQUN6QkMsU0FBQSxDQUFXTixTQUFBLEMsT0FBQSxFLGdCQUFBLEVBQWVFLFNBQUEsQyxnQkFBQSxHQUFmLEMsQ0FDakJFLFNBQUEsQyxnQkFBQSxJLEdBQ0ksQ0FBQ0UsU0FBRCxFQUFhLENBQUNBLFNBQUEsQyxlQUFBLEMsQ0FDZCxPLEdBRUFBLFNBQUEsQyxnQkFBQSxDLENBQ0EsVUFBV0MsU0FBWCxJQUFnQkQsU0FBQSxDLGdCQUFBLENBQWhCLEMsQ0FDSSxNQUFNRSxTQUFBLENBQVFELFNBQUEsQyxnQkFBQSxHQUFVQSxTQUFBLEMsSUFBQSxDQUF4QixDQUNBSixDQUFBLEMsZ0JBQUEsQ0FBZSxDLE9BQ1gsQ0FBT0ksU0FBQSxDLElBQUEsQ0FE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Q0FBT1EsU0FBUCxDLFFBQ3hFQSxTQUFBLEMsV0FBQSxJLFVBRHNFLEMsY0FHakYsQ0FBYUMsU0FBYixDLGtDQUNXQSxTQUFBLEMsZ0JBQUEsSSxrQkFKc0UsQ0FBakUsQ0FBcEIsQyxDQU9BM1AsQ0FBQSxDLGdCQUFBLENBUEEsQ0FRQSxNQUFNNFAsU0FBQSxDQUFpQjVQLENBQUEsQywyQkFBQSxDQUF2QixDQUNBNFAsU0FBQSxDLGdCQUFBLEVBQWtDOUwsTUFBQSxDLGdCQUFBLEVBQWMsRUFBZCxDQUFrQm9MLFNBQUEsRUFBbEIsQ0FBbEMsQyxFQXBFNkMsQyxZQXNFakQsRSwyQkFDVVcsU0FBQSxDQUFtQjdQLENBQUEsQyxnQkFBQSxFLE1BQUEsRSxnQkFBQSxDLENBQ3JCNlAsUyxFQUNBN1AsQ0FBQSxDLDhCQUFBLEUsZ0JBQUEsRUFBc0M2UCxTQUFBLEMsR0FBQSxDLEdBQXRDLEMsQ0FDQSxLLFFBQUEsRUFBY0EsU0FBQSxDLEdBQUEsQyxNQUdkN1AsQ0FBQSxDLDhCQUFBLEUsZ0JBQUEsRSxHQUFBLEMsQ0FDQSxLLGdCQUFBLEUsTUE5RXlDLENBQXJELEMsRUE3eEJKLEciLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIGZ1bmN0aW9uIGluc3RhbGxTdWJzY3JpcHRpb25TZWxlY3RvcihSRUQsIG5vZGUpIHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCAkc3Vic2NyaXB0aW9uID0gJChcIiNub2RlLWlucHV0LXN1YnNjcmlwdGlvblwiKTtcbiAgICAgICAgY29uc3QgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMgPSAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBlbmRwb2ludCA9IFJFRC5ub2Rlcy5ub2RlKCRlbmRwb2ludC52YWwoKSk7XG4gICAgICAgICAgICAkc3Vic2NyaXB0aW9uLmVtcHR5KCk7XG4gICAgICAgICAgICBpZiAoIWVuZHBvaW50IHx8ICFlbmRwb2ludC5zdWJzY3JpcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGVuZHBvaW50LnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHMgb2YgZW5kcG9pbnQuc3Vic2NyaXB0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IHMubmFtZSB8fCBzLmlkO1xuICAgICAgICAgICAgICAgICAgICAkKFwiPG9wdGlvbi8+XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBzLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGxhYmVsLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHMuaWQgPT09IG5vZGUuc3Vic2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLnRleHQobGFiZWwpXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8oJHN1YnNjcmlwdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucygpO1xuICAgICAgICAvLyBoYWNrXG4gICAgICAgIC8vICRpbnB1dEFjdGlvbi5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgIC8vICAgICAkZW5kcG9pbnQub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAvLyAgICAgICAgIGluc3RhbGxTdWJzY3JpcHRpb25PcHRpb25zKCk7XG4gICAgICAgIC8vICAgICB9KTtcbiAgICAgICAgLy8gfSk7XG4gICAgICAgICRzdWJzY3JpcHRpb24ub24oXCJmb2N1cyBjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucygpO1xuICAgICAgICB9KTtcbiAgICAgICAgJGVuZHBvaW50Lm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgIGluc3RhbGxTdWJzY3JpcHRpb25PcHRpb25zKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuICAgIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG4gICAgcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLlxyXG5cclxuICAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuICAgIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG4gICAgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULFxyXG4gICAgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbiAgICBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG4gICAgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUlxyXG4gICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbiAgICAvKiBnbG9iYWwgUmVmbGVjdCwgUHJvbWlzZSwgU3VwcHJlc3NlZEVycm9yLCBTeW1ib2wgKi9cclxuXHJcblxyXG4gICAgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdHlwZW9mIFN1cHByZXNzZWRFcnJvciA9PT0gXCJmdW5jdGlvblwiID8gU3VwcHJlc3NlZEVycm9yIDogZnVuY3Rpb24gKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7XHJcbiAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICAgICAgcmV0dXJuIGUubmFtZSA9IFwiU3VwcHJlc3NlZEVycm9yXCIsIGUuZXJyb3IgPSBlcnJvciwgZS5zdXBwcmVzc2VkID0gc3VwcHJlc3NlZCwgZTtcclxuICAgIH07XG5cbiAgICBjb25zdCBPcmdhbml6ZXNSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNVwiO1xuICAgIGNvbnN0IEZvbGRlclR5cGUgPSBcIm5zPTA7aT02MVwiO1xuICAgIGNvbnN0IEhhc0NvbXBvbmVudFJlZk5vZGVJZCA9IFwibnM9MDtpPTQ3XCI7XG4gICAgY29uc3QgSGFzUHJvcGVydHlSZWZOb2RlSWQgPSBcIm5zPTA7aT00NlwiO1xuICAgIGNvbnN0IEhhc0NoaWxkUmVmTm9kZUlkID0gXCJucz0wO2k9MzRcIjtcbiAgICBjb25zdCBIYXNTdWJ0eXBlUmVmTm9kZUlkID0gXCJucz0wO2k9NDVcIjtcbiAgICBjb25zdCBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZCA9IFwibnM9MDtpPTQwXCI7XG5cbiAgICB2YXIgQnJvd3NlRGlyZWN0aW9uO1xuICAgIChmdW5jdGlvbiAoQnJvd3NlRGlyZWN0aW9uKSB7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJGb3J3YXJkXCJdID0gMF0gPSBcIkZvcndhcmRcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmVyc2VcIl0gPSAxXSA9IFwiSW52ZXJzZVwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiQm90aFwiXSA9IDJdID0gXCJCb3RoXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZhbGlkXCJdID0gM10gPSBcIkludmFsaWRcIjtcbiAgICB9KShCcm93c2VEaXJlY3Rpb24gfHwgKEJyb3dzZURpcmVjdGlvbiA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzcztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzcykge1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVW5zcGVjaWZpZWRcIl0gPSAwXSA9IFwiVW5zcGVjaWZpZWRcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlXCJdID0gMl0gPSBcIlZhcmlhYmxlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlVHlwZVwiXSA9IDE2XSA9IFwiVmFyaWFibGVUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZpZXdcIl0gPSAxMjhdID0gXCJWaWV3XCI7XG4gICAgfSkoTm9kZUNsYXNzIHx8IChOb2RlQ2xhc3MgPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3NNYXNrO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzTWFzaykge1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZhcmlhYmxlXCJdID0gMl0gPSBcIlZhcmlhYmxlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZhcmlhYmxlVHlwZVwiXSA9IDE2XSA9IFwiVmFyaWFibGVUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZpZXdcIl0gPSAxMjhdID0gXCJWaWV3XCI7XG4gICAgfSkoTm9kZUNsYXNzTWFzayB8fCAoTm9kZUNsYXNzTWFzayA9IHt9KSk7XG4gICAgdmFyIFJlc3VsdE1hc2s7XG4gICAgKGZ1bmN0aW9uIChSZXN1bHRNYXNrKSB7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAxXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJJc0ZvcndhcmRcIl0gPSAyXSA9IFwiSXNGb3J3YXJkXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIk5vZGVDbGFzc1wiXSA9IDRdID0gXCJOb2RlQ2xhc3NcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiQnJvd3NlTmFtZVwiXSA9IDhdID0gXCJCcm93c2VOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkRpc3BsYXlOYW1lXCJdID0gMTZdID0gXCJEaXNwbGF5TmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJUeXBlRGVmaW5pdGlvblwiXSA9IDMyXSA9IFwiVHlwZURlZmluaXRpb25cIjtcbiAgICB9KShSZXN1bHRNYXNrIHx8IChSZXN1bHRNYXNrID0ge30pKTtcbiAgICAvLyAgY29uc3QgcSA9IFJlZmVyZW5jZVR5cGVJZHMuT3JnYW5pemVzO1xuICAgIGZ1bmN0aW9uIHJlc29sdmVOb2RlSWQobm9kZUlkTGlrZSkge1xuICAgICAgICBzd2l0Y2ggKG5vZGVJZExpa2UpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPcmdhbml6ZXNcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gT3JnYW5pemVzUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1Byb3BlcnR5XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1Byb3BlcnR5UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NvbXBvbmVudFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDb21wb25lbnRSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ2hpbGRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ2hpbGRSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzU3VidHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNTdWJ0eXBlUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1R5cGVEZWZpbml0aW9uXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZ2V0SWNvbiA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgc3dpdGNoIChyZWZlcmVuY2Uubm9kZUNsYXNzKSB7XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0XCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IE9yZ2FuaXplc1JlZk5vZGVJZCkgO1xuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UudHlwZURlZmluaXRpb24gPT09IEZvbGRlclR5cGUgfHwgcmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gXCJpPTYxXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1mb2xkZXJcIiwgY29sb3I6IFwicmdiYSg2MSwgNjAsIDQsIDAuNTI1KVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIlNlYUdyZWVuXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNDb21wb25lbnRSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJTdGVlbEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNQcm9wZXJ0eVJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkRvZGdlckJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgXCJNZXRob2RcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWNvZ1wiLCBjb2xvcjogXCJTYW5keUJyb3duXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1zbGlkZXJzXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGljb246IFwiZmEtcXVlc3Rpb25cIiwgY29sb3I6IFwiZ3JleVwiIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGJyb3dzZSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkLCB0ZW1wbGF0ZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9icm93c2VgO1xuICAgICAgICBjb25zdCBicm93c2VEZXNjcmlwdGlvbiA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGVtcGxhdGUpLCB7IG5vZGVJZCwgcmVzdWx0TWFzazogNjMgfSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGJyb3dzZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXM6IFtdIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkIDogXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICBjb25zdCByZWZlcmVuY2VzID0gcmVzcG9uc2UuYnJvd3NlUmVzdWx0LnJlZmVyZW5jZXMgfHwgW107XG4gICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXMgfTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHRlbXBsYXRlMSA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzQ2hpbGRcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB0ZW1wbGF0ZTIgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIk9yZ2FuaXplc1wiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IGludGVybmFsVmVyaWZ5ID0gKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCAkaW5wdXRFbGVtZW50LCAkaW5mbykgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCBub2RlSWQgPSAkaW5wdXRFbGVtZW50LnZhbCgpO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2goYCR7cm9vdH0vY2hlY2tOb2RlSWRgLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHNldE5vdGlmaWNhdGlvbiA9ICh0ZXh0LCBjbGFzc05hbWUpID0+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+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCByZWROb2RlID0gUkVELm5vZGVzLm5vZGUoZW5kcG9pbnRJZCk7XG4gICAgICAgIGlmICghcmVkTm9kZSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIC8vIHdlIG5lZWQgdG8gc2FuaXRpemUgYW5kIGV4dHJhY3QgdGhlIGVuZHBvaW50IGF0dHJpYnV0ZXMgb25seSAoIG5vdCB0aGUgbm9kZS1yZWQgc3R1ZmYpXG4gICAgICAgIGNvbnN0IHsgZW5kcG9pbnQsIHNlY3VyaXR5TW9kZSwgc2VjdXJpdHlQb2xpY3ksIHVzZXJJZGVudGl0eVR5cGUsIHVzZXJOYW1lLCBwYXNzd29yZCwgdXNlckNlcnRpZmljYXRlLCB1c2VyUHJpdmF0ZWtleSB9ID0gcmVkTm9kZTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgdXNlck5hbWUsXG4gICAgICAgICAgICBwYXNzd29yZCxcbiAgICAgICAgICAgIHVzZXJDZXJ0aWZpY2F0ZSxcbiAgICAgICAgICAgIHVzZXJQcml2YXRla2V5LFxuICAgICAgICB9O1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzLFxuICAgICAgICB9O1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50TnIgPSBnZXRFbmRQb2ludEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgaWYgKCFlbmRwb2ludE5yKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogZW5kcG9pbnRJZCxcbiAgICAgICAgICAgIGVuZHBvaW50OiBlbmRwb2ludE5yLmVuZHBvaW50LFxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlOiBlbmRwb2ludE5yLnNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5OiBlbmRwb2ludE5yLnNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICB1c2VyTmFtZTogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlID09PSBcIlVzZXJOYW1lXCIgPyBlbmRwb2ludE5yLnVzZXJOYW1lIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci5wYXNzd29yZCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHVzZXJDZXJ0aWZpY2F0ZTogZW5kcG9pbnROci51c2VyQ2VydGlmaWNhdGUsXG4gICAgICAgICAgICB1c2VyUHJpdmF0ZWtleTogZW5kcG9pbnROci51c2VyUHJpdmF0ZWtleSxcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgUkVELm5vZGVzLnJlZ2lzdGVyVHlwZShcIk9wY1VhLUNsaWVudDItTW9uaXRvckV2ZW50XCIsIHtcbiAgICAgICAgY2F0ZWdvcnk6IFwib3BjdWFcIixcbiAgICAgICAgY29sb3I6IFwiI0MwREVFRFwiLFxuICAgICAgICBhbGlnbjogXCJyaWdodFwiLFxuICAgICAgICBpY29uOiBcIm9wY3VhbG9nb2JpZy5wbmdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcIm1vbml0b3IgZXZlbnRzXCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBpbnB1dHM6IHsgdmFsdWU6IDEgfSxcbiAgICAgICAgICAgIG91dHB1dDogeyB2YWx1ZTogNCB9LFxuICAgICAgICAgICAgbmFtZTogeyB2YWx1ZTogXCJcIiB9LFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlLCB0eXBlOiBcIk9wY1VhLUVuZHBvaW50MlwiIH0sXG4gICAgICAgICAgICBzdWJzY3JpcHRpb246IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJcIixcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2YWxpZGF0ZTogKHZhbCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsID09PSBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN0YXJ0SW1tZWRpYXRlbHk6IHsgdmFsdWU6IHRydWUsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICAvLyB3ZSB1c2UgYSBkaWZmZXJlbnQgd2lkZ2V0IGZvciBlZGl0aW5nIHRoZSBub2RlSWQsIGJlY2F1c2UgdGhlIGJlaGF2aW9yXG4gICAgICAgICAgICAvLyBpcyBzcGVjaWZpYyB0byBtb25pdG9yLCBob3dldmVyIHByb3BlcnR5IHdpbGwgYmUgc3RvcmVkIGluIG5vZGVJZFxuICAgICAgICAgICAgbm9kZUlkOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogZmFsc2UsIHZhbGlkYXRlOiAoKSA9PiB0cnVlIH0sXG4gICAgICAgICAgICBzYW1wbGluZ0ludGVydmFsOiB7IHZhbHVlOiAxMDAwLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgZGlzY2FyZE9sZGVzdDogeyB2YWx1ZTogdHJ1ZSwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHF1ZXVlU2l6ZTogeyB2YWx1ZTogMTAsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBzZWxlY3RDbGF1c2VzOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgd2hlcmVDbGF1c2U6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICB9LFxuICAgICAgICAvLyBpbnB1dHM6LFxuICAgICAgICBvdXRwdXRzOiAyLCAvLyAyIG91dHB1dCwgc2Vjb25kIGZvciByYXcgbm9kZS1vcGN1YSBkaWFnbm9zdGljcyBvciBtb3JlIGNvbXBsZXRlIG1lc3NhZ2VcbiAgICAgICAgbGFiZWwoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lIHx8IFwiT1BDVUEgTW9uaXRvclwiO1xuICAgICAgICB9LFxuICAgICAgICBsYWJlbFN0eWxlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSA/IFwibm9kZV9sYWJlbF9pdGFsaWNcIiA6IFwiXCI7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHByZXBhcmUoKSB7XG4gICAgICAgICAgICBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQoKTtcbiAgICAgICAgICAgIGRlY2xhcmVFdmVudEZpZWxkU2VsZWN0b3JXaWRnZXQoKTtcbiAgICAgICAgICAgIGluc3RhbGxTdWJzY3JpcHRpb25TZWxlY3RvcihSRUQsIHRoaXMpO1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSBBY3Rpb24gTW9uaXRvciBDb21tb25cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyAtLSBpbnN0YWxsIHN1YnNjcmlwdGlvbiBzZWxlY3Rpb25cbiAgICAgICAgICAgICQoXCJub2RlLWlucHV0LXN0YXJ0SW1tZWRpYXRlbHlcIikub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoZWNrZWQgPSAkKFwiI25vZGUtaW5wdXQtc3RhcnRJbW1lZGlhdGVseVwiKS5wcm9wKFwiY2hlY2tlZFwiKTtcbiAgICAgICAgICAgICAgICBpZiAoY2hlY2tlZCkge1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtaW5wdXRzXCIpLnZhbCgwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1pbnB1dHNcIikudmFsKDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSBBY3Rpb24gTW9uaXRvclxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIGNvbnN0ICRub2RlSWQgPSAkKFwiI25vZGUtaW5wdXQtbm9kZUlkXCIpO1xuICAgICAgICAgICAgJG5vZGVJZC5ub2RlQnJvd3NlcihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSksIHsgZmlsdGVyKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiT2JqZWN0XCI7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBpc1NlbGVjdGFibGUobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJPYmplY3RcIiAvKiB0byBkbyB8fCBub2RlRGVzYy5ldmVudE5vdGlmaWVyID09PSAxICovO1xuICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICAgICAgLy8gLS0tLS0tIGluc3RhbGwgZXZlbnQgZmllbGQgc2VsZWN0b3JcbiAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC13aGVyZUNsYXVzZVwiKTtcbiAgICAgICAgICAgIGNvbnN0ICRzZWxlY3RDbGF1c2VzID0gJChcIiNub2RlLWlucHV0LXNlbGVjdENsYXVzZXNcIik7XG4gICAgICAgICAgICAkc2VsZWN0Q2xhdXNlcy5ldmVudEZpZWxkU2VsZWN0b3IoT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHNhdmUoKSB7XG4gICAgICAgICAgICBjb25zdCBzdGFydEltbWVkaWF0ZWx5ID0gJChcIiNub2RlLWlucHV0LXN0YXJ0SW1tZWRpYXRlbHlcIikucHJvcChcImNoZWNrZWRcIik7XG4gICAgICAgICAgICBpZiAoc3RhcnRJbW1lZGlhdGVseSkge1xuICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLnZhbChzdGFydEltbWVkaWF0ZWx5ID8gMCA6IDEpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRzID0gc3RhcnRJbW1lZGlhdGVseSA/IDAgOiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXN0YXJ0SW1tZWRpYXRlbHlcIikudmFsKDEpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRzID0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9KTtcblxufSkoKTsiXX0=
|
9
9
|
</script>
|
10
10
|
<script type="text/x-red" data-template-name="OpcUa-Client2-MonitorEvent">
|
11
11
|
<style>
|