@opcua/for-node-red 3.6.0 → 3.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/all.js +1 -4
- package/package.json +1 -1
- 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-ExtensionObject/OpcUa-Client2-ExtensionObject.html +2 -2
- package/source/OpcUa-Client2-HistoryRead/OpcUa-Client2-HistoryRead.html +2 -2
- package/source/OpcUa-Client2-Monitor/OpcUa-Client2-Monitor.html +2 -2
- package/source/OpcUa-Client2-MonitorEvent/OpcUa-Client2-MonitorEvent.html +2 -2
- package/source/OpcUa-Client2-Read/OpcUa-Client2-Read.html +2 -2
- package/source/OpcUa-Client2-Write/OpcUa-Client2-Write.html +2 -2
- package/source/OpcUa-Endpoint2/OpcUa-Endpoint2.html +2 -2
@@ -4,8 +4,8 @@
|
|
4
4
|
</style>
|
5
5
|
|
6
6
|
<script type="text/javascript">
|
7
|
-
function _0x192c(_0x343522,_0x17bea8){const _0x2f56ea=_0x2f56();return _0x192c=function(_0x192c12,_0x18a686){_0x192c12=_0x192c12-0x9e;let _0x3bc756=_0x2f56ea[_0x192c12];return _0x3bc756;},_0x192c(_0x343522,_0x17bea8);}(function(_0x253369,_0x34e0e9){const _0x78cca0=_0x192c,_0x20c67f=_0x253369();while(!![]){try{const _0x225737=parseInt(_0x78cca0(0x12e))/0x1*(-parseInt(_0x78cca0(0x1ab))/0x2)+-parseInt(_0x78cca0(0x13f))/0x3+-parseInt(_0x78cca0(0x1cc))/0x4*(parseInt(_0x78cca0(0xaf))/0x5)+-parseInt(_0x78cca0(0x1ac))/0x6*(parseInt(_0x78cca0(0x163))/0x7)+-parseInt(_0x78cca0(0xdf))/0x8*(-parseInt(_0x78cca0(0x19a))/0x9)+-parseInt(_0x78cca0(0x160))/0xa+parseInt(_0x78cca0(0x151))/0xb*(parseInt(_0x78cca0(0xa1))/0xc);if(_0x225737===_0x34e0e9)break;else _0x20c67f['push'](_0x20c67f['shift']());}catch(_0x54a6f0){_0x20c67f['push'](_0x20c67f['shift']());}}}(_0x2f56,0x74686),(function(){'use strict';const _0x44c869=_0x192c;function _0x12a38c(_0x399d74,_0x36c67c){const _0x30b3d0=_0x192c,_0x249002=$('#node-input-endpoint'),_0x296f89=$('#node-input-subscription'),_0x217007=()=>{const _0x20d08d=_0x192c,_0x368dea=_0x399d74['nodes'][_0x20d08d(0x1bc)](_0x249002[_0x20d08d(0x15a)]());_0x296f89[_0x20d08d(0x179)]();if(!_0x368dea||!_0x368dea['subscriptions'])return;for(const _0x2b7035 of _0x368dea[_0x20d08d(0x172)]){const _0x10a27c=_0x2b7035[_0x20d08d(0x1b8)]||_0x2b7035['id'];$(_0x20d08d(0x1a6),{'value':_0x2b7035['id'],'label':_0x10a27c,'selected':_0x2b7035['id']===_0x36c67c['subscription']})[_0x20d08d(0xd3)](_0x10a27c)[_0x20d08d(0xa7)](_0x296f89);}};_0x217007(),_0x296f89['on'](_0x30b3d0(0x11b),()=>{const _0x149cc5=_0x30b3d0;_0x36c67c[_0x149cc5(0x1b2)]=_0x296f89[_0x149cc5(0x15a)]();}),_0x249002['on'](_0x30b3d0(0x11b),()=>{_0x217007();});}function _0x40391b(_0x11c415,_0x94628a,_0x26a0f5,_0x4a3854){function _0x2e18de(_0x582eac){return _0x582eac instanceof _0x26a0f5?_0x582eac:new _0x26a0f5(function(_0x44cfd4){_0x44cfd4(_0x582eac);});}return new(_0x26a0f5||(_0x26a0f5=Promise))(function(_0x709f23,_0x1f69a2){const _0x14f8c0=_0x192c;function _0x5c5cc2(_0x4b0be0){const _0x319965=_0x192c;try{_0x273be5(_0x4a3854[_0x319965(0x143)](_0x4b0be0));}catch(_0x3edadb){_0x1f69a2(_0x3edadb);}}function _0x2e6e87(_0x481217){try{_0x273be5(_0x4a3854['throw'](_0x481217));}catch(_0x545661){_0x1f69a2(_0x545661);}}function _0x273be5(_0x2d5858){const _0xef7518=_0x192c;_0x2d5858[_0xef7518(0xc2)]?_0x709f23(_0x2d5858[_0xef7518(0x11c)]):_0x2e18de(_0x2d5858[_0xef7518(0x11c)])['then'](_0x5c5cc2,_0x2e6e87);}_0x273be5((_0x4a3854=_0x4a3854['apply'](_0x11c415,_0x94628a||[]))[_0x14f8c0(0x143)]());});}typeof SuppressedError==='function'?SuppressedError:function(_0x33f730,_0xb1569b,_0x517720){const _0x30ea26=_0x192c;var _0x35a9f2=new Error(_0x517720);return _0x35a9f2[_0x30ea26(0x1b8)]=_0x30ea26(0x9e),_0x35a9f2[_0x30ea26(0xb0)]=_0x33f730,_0x35a9f2['suppressed']=_0xb1569b,_0x35a9f2;};const _0x9826db=_0x44c869(0xae),_0x466de9='ns=0;i=61',_0x1ca725='ns=0;i=47',_0x321554='ns=0;i=46',_0x53f31c=_0x44c869(0x183),_0x4c9efe='ns=0;i=45',_0x1a295d=_0x44c869(0xf4);var _0x202e48;(function(_0x13efc5){const _0xa115b5=_0x44c869;_0x13efc5[_0x13efc5['Forward']=0x0]=_0xa115b5(0x14a),_0x13efc5[_0x13efc5['Inverse']=0x1]=_0xa115b5(0x1e8),_0x13efc5[_0x13efc5[_0xa115b5(0x158)]=0x2]=_0xa115b5(0x158),_0x13efc5[_0x13efc5['Invalid']=0x3]=_0xa115b5(0x171);}(_0x202e48||(_0x202e48={})));var _0x2947e2;(function(_0x2647ad){const _0x516d9c=_0x44c869;_0x2647ad[_0x2647ad[_0x516d9c(0x1d8)]=0x0]='Unspecified',_0x2647ad[_0x2647ad[_0x516d9c(0x1ce)]=0x1]=_0x516d9c(0x1ce),_0x2647ad[_0x2647ad[_0x516d9c(0x106)]=0x2]='Variable',_0x2647ad[_0x2647ad['Method']=0x4]='Method',_0x2647ad[_0x2647ad[_0x516d9c(0x1ca)]=0x8]=_0x516d9c(0x1ca),_0x2647ad[_0x2647ad['VariableType']=0x10]='VariableType',_0x2647ad[_0x2647ad[_0x516d9c(0xde)]=0x20]=_0x516d9c(0xde),_0x2647ad[_0x2647ad['DataType']=0x40]='DataType',_0x2647ad[_0x2647ad[_0x516d9c(0xb5)]=0x80]=_0x516d9c(0xb5);}(_0x2947e2||(_0x2947e2={})));var _0x2b00ca;(function(_0x2497fc){const _0x49e620=_0x44c869;_0x2497fc[_0x2497fc[_0x49e620(0x1ce)]=0x1]='Object',_0x2497fc[_0x2497fc[_0x49e620(0x106)]=0x2]=_0x49e620(0x106),_0x2497fc[_0x2497fc['Method']=0x4]=_0x49e620(0xd1),_0x2497fc[_0x2497fc['ObjectType']=0x8]=_0x49e620(0x1ca),_0x2497fc[_0x2497fc[_0x49e620(0x19e)]=0x10]=_0x49e620(0x19e),_0x2497fc[_0x2497fc[_0x49e620(0xde)]=0x20]=_0x49e620(0xde),_0x2497fc[_0x2497fc[_0x49e620(0xee)]=0x40]=_0x49e620(0xee),_0x2497fc[_0x2497fc[_0x49e620(0xb5)]=0x80]='View';}(_0x2b00ca||(_0x2b00ca={})));var _0x94bcd1;(function(_0x435b8a){const _0x39b001=_0x44c869;_0x435b8a[_0x435b8a[_0x39b001(0xde)]=0x1]='ReferenceType',_0x435b8a[_0x435b8a[_0x39b001(0x1a3)]=0x2]='IsForward',_0x435b8a[_0x435b8a[_0x39b001(0x182)]=0x4]=_0x39b001(0x182),_0x435b8a[_0x435b8a['BrowseName']=0x8]=_0x39b001(0xd4),_0x435b8a[_0x435b8a[_0x39b001(0x1ae)]=0x10]='DisplayName',_0x435b8a[_0x435b8a[_0x39b001(0x131)]=0x20]='TypeDefinition';}(_0x94bcd1||(_0x94bcd1={})));function _0xc2ec06(_0x226408){const _0xd4088a=_0x44c869;switch(_0x226408){case'Organizes':return _0x9826db;case _0xd4088a(0xba):return _0x321554;case'HasComponent':return _0x1ca725;case'HasChild':return _0x53f31c;case'HasSubtype':return _0x4c9efe;case'HasTypeDefinition':return _0x1a295d;}}const _0xbca76=_0x2a58cc=>{const _0x433a77=_0x44c869;switch(_0x2a58cc[_0x433a77(0xfe)]){case _0x433a77(0x1ce):if(_0x2a58cc[_0x433a77(0xb9)]===_0x9826db);if(_0x2a58cc[_0x433a77(0x112)]===_0x466de9||_0x2a58cc['referenceTypeId']==='i=61')return{'icon':_0x433a77(0x100),'color':_0x433a77(0xe1)};return{'icon':_0x433a77(0x187),'color':'SeaGreen'};case _0x433a77(0x106):if(_0x2a58cc[_0x433a77(0xb9)]===_0x1ca725)return{'icon':'fa-list-alt','color':'SteelBlue'};else return _0x2a58cc[_0x433a77(0xb9)]===_0x321554?{'icon':_0x433a77(0xb3),'color':_0x433a77(0x177)}:{'icon':_0x433a77(0xb3),'color':_0x433a77(0x121)};case'Method':return{'icon':_0x433a77(0x115),'color':_0x433a77(0x12f)};case _0x433a77(0x1ca):return{'icon':'fa-object-group','color':'DarkOrange'};case'VariableType':return{'icon':_0x433a77(0x166),'color':'DarkOrange'};case _0x433a77(0xee):return{'icon':_0x433a77(0x1c6),'color':_0x433a77(0x121)};}return{'icon':_0x433a77(0x117),'color':'grey'};},_0x388767=(_0x9bd1c0,_0x1407de,_0x302119)=>_0x40391b(void 0x0,[_0x9bd1c0,_0x1407de,_0x302119],void 0x0,function*({endpointNode:_0x4f0adc,endpoint:_0x4820e1,baseUrl:_0x5ee071},_0x5c8b5d,_0x202be3){const _0x120804=_0x44c869,_0x2d8af0=_0x5ee071+'/opcua-for-node-red',_0x336fea=_0x2d8af0+_0x120804(0x169),_0xea5249=Object[_0x120804(0x197)](Object['assign']({},_0x202be3),{'nodeId':_0x5c8b5d,'resultMask':0x3f}),_0x3fec6d=yield fetch(_0x336fea,{'method':_0x120804(0x1e4),'body':JSON['stringify']({'endpointNode':_0x4f0adc,'endpoint':_0x4820e1,'browseDescription':_0xea5249}),'headers':{'Content-Type':_0x120804(0xdb)}});if(_0x3fec6d[_0x120804(0x16e)]!==0xc8)return console[_0x120804(0xfd)](_0x120804(0x181),_0x3fec6d[_0x120804(0x16e)],_0x3fec6d[_0x120804(0x192)]),{'references':[]};const _0x4d481b=yield _0x3fec6d[_0x120804(0x14f)](),_0x5c19b8=_0x4d481b['browseResult'][_0x120804(0x10d)]||[];return{'references':_0x5c19b8};}),_0x922651={'referenceTypeId':_0xc2ec06(_0x44c869(0x189)),'includeSubtypes':!![],'browseDirection':_0x202e48[_0x44c869(0x14a)],'nodeClassMask':_0x2947e2[_0x44c869(0x106)]|_0x2947e2[_0x44c869(0x1ce)]|_0x2947e2[_0x44c869(0xd1)],'resultMask':0x3f},_0x2f080b={'referenceTypeId':_0xc2ec06(_0x44c869(0x1d0)),'includeSubtypes':!![],'browseDirection':_0x202e48[_0x44c869(0x14a)],'nodeClassMask':_0x2947e2[_0x44c869(0x106)]|_0x2947e2[_0x44c869(0x1ce)]|_0x2947e2[_0x44c869(0xd1)],'resultMask':0x3f},_0x19ab9e=(_0x494637,_0x25ff94)=>_0x40391b(void 0x0,[_0x494637,_0x25ff94],void 0x0,function*({endpointNode:_0x1f52c9,endpoint:_0x4f9637,baseUrl:_0x52b04f},{nodeId:_0x13f1d3,rootNodeId:_0x35a59c,isType:_0x1cd2ca}){const _0xe7f039=_0x44c869,_0x2f0004=_0x52b04f+'/opcua-for-node-red',_0x2a0b44=_0x2f0004+_0xe7f039(0xab),_0x5c42d2=yield fetch(_0x2a0b44,{'method':_0xe7f039(0x1e4),'body':JSON[_0xe7f039(0x142)]({'endpointNode':_0x1f52c9,'endpoint':_0x4f9637,'nodeId':_0x13f1d3,'rootNodeId':_0x35a59c,'isType':_0x1cd2ca}),'headers':{'Content-Type':_0xe7f039(0xdb)}});if(_0x5c42d2[_0xe7f039(0x16e)]!==0xc8)return null;const _0x166db7=yield _0x5c42d2[_0xe7f039(0x14f)]();return _0x166db7['browsePath'];}),_0xb1fa2a=(_0x1b3cf2,_0x1bedc5)=>{const _0x1eeafc=_0x44c869;if(_0x1b3cf2[_0x1eeafc(0x107)]!==_0x1eeafc(0x1e2))return _0x1b3cf2['requestedNodeId'];switch(_0x1bedc5){case _0x1eeafc(0x1c1):return _0x1b3cf2['bp_indexed'];case _0x1eeafc(0xf1):return _0x1b3cf2[_0x1eeafc(0x119)]||_0x1b3cf2[_0x1eeafc(0x1b1)];case _0x1eeafc(0x15b):return _0x1b3cf2[_0x1eeafc(0x16d)]||_0x1b3cf2['nodeId_nsu'];case _0x1eeafc(0x10c):return _0x1b3cf2[_0x1eeafc(0x15d)];default:case'nodeId':return _0x1b3cf2[_0x1eeafc(0x146)];}},_0x592202=_0x166657=>{const _0x537f63=_0x44c869;if(_0x166657[_0x537f63(0x107)]!==_0x537f63(0x1e2))return'statusCode:\x20'+_0x166657[_0x537f63(0x107)];else{let _0x4da69f=[];return _0x4da69f[_0x537f63(0xd2)](_0x537f63(0x1c5)+_0x166657[_0x537f63(0x146)]),_0x4da69f[_0x537f63(0xd2)]('browse\x20path:\x20'+_0x166657[_0x537f63(0x1b1)]),_0x4da69f[_0x537f63(0xd2)](_0x537f63(0x11f)+_0x2947e2[_0x166657[_0x537f63(0xfe)]]),_0x166657[_0x537f63(0x15d)]&&_0x4da69f[_0x537f63(0xd2)](_0x537f63(0x1cf)+_0x166657['nodeId_nsu']),_0x166657['nodeId_aliased']&&_0x4da69f[_0x537f63(0xd2)](_0x537f63(0x116)+_0x166657[_0x537f63(0x16d)]),_0x166657['bp_indexed']&&_0x4da69f[_0x537f63(0xd2)](_0x537f63(0x168)+_0x166657[_0x537f63(0x119)]),_0x4da69f[_0x537f63(0x108)]('\x0a');}};function _0x3f7af7(_0x1fe2c9){const _0x5a3976=_0x44c869;if(_0x1fe2c9[_0x5a3976(0x130)](/^nsu=/))return _0x5a3976(0x10c);if(_0x1fe2c9[_0x5a3976(0x130)](/^(ns=.*;)?(i|b|s|g)=/))return'nodeId';if(_0x1fe2c9[_0x5a3976(0x130)](/^nsa=/))return _0x5a3976(0x15b);if(_0x1fe2c9[_0x5a3976(0x130)](/^(\/|\.)[0-9]+:/))return'browsePath';if(_0x1fe2c9[_0x5a3976(0x130)](/^(\/|\.).*:/))return'browsePath';}function _0x29d183(_0x4b3b14){const _0x43e13c=_0x44c869,_0x40ba26=_0x3f7af7(_0x4b3b14);switch(_0x40ba26){case _0x43e13c(0x146):return'n';case'aliasedNodeId':return'na';case _0x43e13c(0x10c):return _0x43e13c(0xc8);case'browsePath':return'b';case _0x43e13c(0xf1):return'ab';default:return't';}}function _0x4001da(_0x546999){const _0x235db2=_0x44c869;let _0x31c708;switch(_0x546999){case'n':_0x31c708=_0x235db2(0x146);break;case'na':_0x31c708=_0x235db2(0x15b);break;case _0x235db2(0xc8):_0x31c708=_0x235db2(0x10c);break;case'b':_0x31c708=_0x235db2(0x1c1);break;case'ab':_0x31c708='aliasedBrowsePath';break;}return _0x31c708;}function _0x237999(_0x5bb62c){const _0x58469b=_0x44c869;switch(_0x5bb62c){case _0x58469b(0x146):return'n';case _0x58469b(0x15b):return'na';case _0x58469b(0x10c):return _0x58469b(0xc8);case _0x58469b(0x1c1):return'b';case'aliasedBrowsePath':return'ab';default:return't';}}const _0x258840=(_0x3f7d5c,_0x2331d8)=>_0x40391b(void 0x0,[_0x3f7d5c,_0x2331d8],void 0x0,function*({endpointNode:_0x45cdf9,endpoint:_0x2f9197,baseUrl:_0x44549b},_0x18f634){const _0x162d14=_0x44c869,_0x41ac7e=_0x44549b+_0x162d14(0x113),_0x549bb4=_0x41ac7e+_0x162d14(0x1a8),_0x56a194=_0x45cdf9['id'],_0x2aaace=RED[_0x162d14(0x137)][_0x162d14(0x1bc)](_0x56a194);console[_0x162d14(0xfd)](_0x2aaace[_0x162d14(0xf9)]),_0x2aaace[_0x162d14(0xf9)];const _0x6f48de=_0x45cdf9['namespaceAliases'],_0x20d2b0=yield fetch(_0x549bb4,{'method':_0x162d14(0x1e4),'body':JSON[_0x162d14(0x142)]({'endpointNode':_0x45cdf9,'endpoint':_0x2f9197,'nodeId':_0x18f634,'namespaceAliases':_0x6f48de}),'headers':{'Content-Type':'application/json'}}),_0x1decda=yield _0x20d2b0['json']();return{'json':_0x1decda,'data':_0x20d2b0};}),_0x5378c9=(_0x439248,_0x269a50,_0x40dd87,_0x3a2cc1)=>_0x40391b(void 0x0,[_0x439248,_0x269a50,_0x40dd87,_0x3a2cc1],void 0x0,function*({endpointNode:_0x4b568c,endpoint:_0x57aadf,baseUrl:_0x477e51},_0x370be4,_0x349e42,_0x7de5f9){const _0x407687=_0x44c869,_0x3710fb=_0x349e42[_0x407687(0x15a)](),{json:_0x4dc8f8,data:_0x1cd164}=yield _0x258840({'endpointNode':_0x4b568c,'endpoint':_0x57aadf,'baseUrl':_0x477e51},_0x3710fb),_0x5a2117=(_0x3b2494,_0x204ab3)=>{const _0xa97b90=_0x407687;_0x7de5f9[_0xa97b90(0xd3)](_0x3b2494)[_0xa97b90(0xa2)](_0xa97b90(0xbf))[_0xa97b90(0xa2)](_0x204ab3),_0x7de5f9['show'](),setTimeout(()=>{const _0x43a7e7=_0xa97b90;_0x7de5f9['removeClass'](_0x204ab3),_0x7de5f9[_0x43a7e7(0x18b)]();},0xbb8);};if(_0x1cd164['status']!==0xc8)return _0x5a2117(_0x407687(0x1e1)+_0x3710fb,_0x407687(0xbb)),![];else{if(_0x4dc8f8[_0x407687(0x107)][_0x407687(0x130)](/Good/)){const _0x514851=_0x592202(_0x4dc8f8);_0x349e42[_0x407687(0x195)](_0x407687(0x134),_0x514851);const _0x51cc3c=_0xb1fa2a(_0x4dc8f8,_0x370be4);return _0x349e42[_0x407687(0x15a)](_0x51cc3c),_0x349e42[_0x407687(0x14c)](_0x407687(0x11b)),_0x5a2117(_0x407687(0x1e2),'ok'),!![];}else return _0x349e42[_0x407687(0x15a)](''+_0x3710fb),_0x5a2117(_0x4dc8f8[_0x407687(0x107)]+'\x20'+_0x1cd164['statusText'],'failure'),![];}});function _0x37ef94(_0x26b3bb,_0x48a649){return _0x40391b(this,void 0x0,void 0x0,function*(){const _0x386e28=_0x192c,_0x5451b9=_0x26b3bb[_0x386e28(0x1b5)]('value'),_0x53ebb9=yield _0x388767(_0x48a649,_0x5451b9,_0x922651),_0x579f32=yield _0x388767(_0x48a649,_0x5451b9,_0x2f080b);return{'references':[..._0x53ebb9['references'],..._0x579f32[_0x386e28(0x10d)]]};});}const _0x226d24={'referenceTypeId':_0xc2ec06('HasSubtype'),'includeSubtypes':!![],'browseDirection':_0x202e48[_0x44c869(0x14a)],'nodeClassMask':_0x2947e2[_0x44c869(0xde)]|_0x2947e2[_0x44c869(0x1ca)]|_0x2947e2['DataType']|_0x2947e2[_0x44c869(0x19e)],'resultMask':0x3f};function _0x518d59(_0x5a355d,_0x2901a7){return _0x40391b(this,void 0x0,void 0x0,function*(){const _0x5ca3dc=_0x5a355d['data']('value'),_0x3d426b=yield _0x388767(_0x2901a7,_0x5ca3dc,_0x226d24);return _0x3d426b;});}const _0x53e17c=_0xbf3572=>{const _0x3c7ae5=_0x44c869;var _0x478e90,_0x52493e,_0x1a364c,_0xb55eb3;if(!_0xbf3572||!_0xbf3572[_0x3c7ae5(0x146)]){const _0x1c9136=$('<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>');return _0x1c9136;}const _0x45b9ef=_0xbf3572[_0x3c7ae5(0x146)][_0x3c7ae5(0x17e)](),_0x2c85a5=((_0x478e90=_0xbf3572[_0x3c7ae5(0x104)])===null||_0x478e90===void 0x0?void 0x0:_0x478e90[_0x3c7ae5(0xd3)])||((_0x52493e=_0xbf3572[_0x3c7ae5(0x1d5)])===null||_0x52493e===void 0x0?void 0x0:_0x52493e[_0x3c7ae5(0x1b8)])||_0xbf3572['nodeId'][_0x3c7ae5(0x17e)](),{icon:_0x32c74a,color:_0x8504cd}=_0xbca76(_0xbf3572),_0x46d2c0='('+_0xbf3572[_0x3c7ae5(0x146)][_0x3c7ae5(0x17e)]()+')\x20'+(((_0x1a364c=_0xbf3572[_0x3c7ae5(0x1d5)])===null||_0x1a364c===void 0x0?void 0x0:_0x1a364c['name'])||((_0xb55eb3=_0xbf3572[_0x3c7ae5(0x104)])===null||_0xb55eb3===void 0x0?void 0x0:_0xb55eb3['text'])||''),_0x5a05eb=$(_0x3c7ae5(0x17d)+_0xbf3572[_0x3c7ae5(0x146)]['toString']()+'\x22}><span\x20class=\x22tree-text\x22\x20title='+_0x46d2c0+_0x3c7ae5(0x167)+_0x32c74a+_0x3c7ae5(0x1b3)+_0x8504cd+_0x3c7ae5(0x161)+_0x2c85a5+'</span><ul></ul></li>');return _0x5a05eb[_0x3c7ae5(0xa2)](_0x3c7ae5(0x1b6)),_0x5a05eb[_0x3c7ae5(0x1b5)](_0x3c7ae5(0x11c),_0x45b9ef),_0x5a05eb[_0x3c7ae5(0x1b5)](_0x3c7ae5(0x188),_0xbf3572),_0x5a05eb;},_0xbfd4d6=(_0x62f06a,_0x1e2b05)=>{const _0x53c3ab=_0x44c869;return _0x1e2b05['find'](_0x53c3ab(0x14d)+_0x62f06a+'\x22]');},_0x50eb89=(_0xc03b6b,_0x3b5d7d)=>{const _0x29c97d=_0x44c869;_0xc03b6b[_0x29c97d(0x18c)][_0x29c97d(0x1cd)](_0x29c97d(0x1d1))['removeClass'](_0x29c97d(0x162)),_0x3b5d7d[_0x29c97d(0x1cd)](_0x29c97d(0x11d))['addClass'](_0x29c97d(0x162));},_0x3fd877=(_0x16d52d,_0x1acdd8,_0x1730b9)=>_0x40391b(void 0x0,void 0x0,void 0x0,function*(){const _0x58287b=_0x44c869;let _0x454cc1=_0x1730b9[_0x58287b(0xb1)](_0x58287b(0x17c));_0x1acdd8[_0x58287b(0x124)]['elements']||[];const _0x14fb4a=_0x1acdd8[_0x58287b(0x157)]||[];if(_0x14fb4a[_0x58287b(0x15e)]===0x0)return;for(const _0x56478e of _0x14fb4a){_0x454cc1['hasClass']('expandable')&&(yield _0x504cce(_0x16d52d,_0x454cc1));const _0x5a642a=_0xbfd4d6(_0x56478e,_0x454cc1);if(_0x5a642a['length']===0x0)return;_0x454cc1=_0x5a642a;}_0x50eb89(_0x16d52d,_0x454cc1),_0x29ff80(_0x16d52d[_0x58287b(0x120)],_0x454cc1);});function _0x29ff80(_0x1ec970,_0x45cf4f){const _0x3c3ddc=_0x44c869,_0x54c9f2=_0x45cf4f[_0x3c3ddc(0x110)]()[_0x3c3ddc(0x109)],_0x76d132=_0x1ec970[_0x3c3ddc(0x1cb)]();if(_0x76d132==undefined)return;const _0x510759=_0x76d132+_0x54c9f2-_0x1ec970[_0x3c3ddc(0xbe)]()/0x2+_0x45cf4f[_0x3c3ddc(0xbe)]()/0x2;_0x1ec970[_0x3c3ddc(0xcc)]({'scrollTop':_0x510759},0x1f4);}const _0x20966b=(_0x4da4fa,_0x5a3ab6)=>_0x40391b(void 0x0,void 0x0,void 0x0,function*(){const _0x34fdb7=_0x44c869,_0x5d5b1e=_0x4da4fa['$input']['val'](),_0x1901c2={'nodeId':_0x5d5b1e,'rootNodeId':_0x5a3ab6[_0x34fdb7(0x146)],'isType':_0x4da4fa[_0x34fdb7(0x18f)][_0x34fdb7(0x175)]||![]},_0x5dc58b=_0x118745(_0x4da4fa),_0x35ccc9=yield _0x19ab9e(_0x5dc58b,_0x1901c2);if(!_0x35ccc9)return;yield _0x3fd877(_0x4da4fa,_0x35ccc9,_0x4da4fa[_0x34fdb7(0x18c)]);});function _0x42b881(_0x5149b4,_0x282d41,_0x553efc,_0x34a42d){return _0x40391b(this,void 0x0,void 0x0,function*(){const _0xdcb667=_0x192c;if(_0x282d41['hasClass']('fetched')){console[_0xdcb667(0xfd)](_0xdcb667(0x1dc));return;}if(_0x282d41[_0xdcb667(0xc1)]('loading')){console[_0xdcb667(0xfd)](_0xdcb667(0x132));return;}_0x282d41[_0xdcb667(0xa2)](_0xdcb667(0xec)),_0x282d41[_0xdcb667(0x191)]('<div\x20class=\x22spinner\x22></div>');try{_0x282d41[_0xdcb667(0xb1)]('ul')[_0xdcb667(0x179)]();const {references:_0x4a5588}=yield _0x553efc(_0x282d41,_0x34a42d);_0x4a5588['sort']((_0x1aa03a,_0x2f0e34)=>{const _0x443afb=_0xdcb667;var _0x455b8b,_0x1fd827;return(((_0x455b8b=_0x1aa03a['browseName'])===null||_0x455b8b===void 0x0?void 0x0:_0x455b8b[_0x443afb(0x1b8)])||'')[_0x443afb(0x155)](((_0x1fd827=_0x2f0e34[_0x443afb(0x1d5)])===null||_0x1fd827===void 0x0?void 0x0:_0x1fd827[_0x443afb(0x1b8)])||'');});for(const _0x233ab6 of _0x4a5588){if(_0x5149b4['options'][_0xdcb667(0x10a)]&&!_0x5149b4[_0xdcb667(0x18f)][_0xdcb667(0x10a)](_0x233ab6))continue;const _0x465b83=_0x53e17c(_0x233ab6);_0x282d41[_0xdcb667(0xb1)]('ul')['append'](_0x465b83);}_0x282d41[_0xdcb667(0xa2)](_0xdcb667(0x173));}catch(_0xb3bbe7){_0x282d41[_0xdcb667(0xb1)]('ul')[_0xdcb667(0x191)](_0xdcb667(0xb7)+_0xb3bbe7[_0xdcb667(0x1a2)]+'</li>'),console[_0xdcb667(0xfd)](_0xdcb667(0x1b7),_0xb3bbe7);}_0x282d41[_0xdcb667(0x1cd)](_0xdcb667(0xc4))[_0xdcb667(0x12c)](),_0x282d41[_0xdcb667(0xf3)](_0xdcb667(0xec));});}function _0x118745(_0x48c853){const _0x3386d2=_0x44c869,_0x2de9cc={'baseUrl':_0x48c853[_0x3386d2(0x18f)][_0x3386d2(0x1d7)],'endpointNode':typeof _0x48c853['options'][_0x3386d2(0x153)]==='function'?_0x48c853[_0x3386d2(0x18f)][_0x3386d2(0x153)]():_0x48c853[_0x3386d2(0x18f)][_0x3386d2(0x153)],'endpoint':typeof _0x48c853[_0x3386d2(0x18f)][_0x3386d2(0x1e5)]==='function'?_0x48c853[_0x3386d2(0x18f)][_0x3386d2(0x1e5)]():_0x48c853[_0x3386d2(0x18f)][_0x3386d2(0x1e5)]};return _0x2de9cc;}function _0x504cce(_0xa538e,_0x5436cc){return _0x40391b(this,void 0x0,void 0x0,function*(){const _0x477efc=_0x192c;if(_0x5436cc[_0x477efc(0xc1)](_0x477efc(0x173))){_0x5436cc[_0x477efc(0xf3)](_0x477efc(0x1b6))[_0x477efc(0xa2)]('expanded'),_0x5436cc[_0x477efc(0xb1)]('ul')[_0x477efc(0x147)]();return;}const _0x5e8475=_0x118745(_0xa538e),_0x510601=!_0xa538e[_0x477efc(0x18f)][_0x477efc(0x175)]?_0x37ef94:_0x518d59;try{yield _0x42b881(_0xa538e,_0x5436cc,_0x510601,_0x5e8475),_0x5436cc[_0x477efc(0xf3)](_0x477efc(0x1b6))['addClass']('expanded');}catch(_0x1d4637){_0x5436cc[_0x477efc(0xf3)](_0x477efc(0x1b6))[_0x477efc(0xa2)](_0x477efc(0x1c7)),console['log'](_0x477efc(0xb0),_0x1d4637);}});}const _0x2bdc9a={'browseName':{'namespaceIndex':0x0,'name':_0x44c869(0xd8)},'nodeClass':'Object','nodeId':_0x44c869(0xc6),'displayName':{'text':_0x44c869(0xd8)},'typeDefinition':_0x466de9},_0x2b2568=()=>{const _0x3a8486=_0x44c869;$[_0x3a8486(0x13e)](_0x3a8486(0x103),{'options':{'endpointNode':()=>({'endpoint':_0x3a8486(0x1bf)}),'endpoint':()=>undefined,'parentNode':()=>_0x2bdc9a,'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x40391b(this,void 0x0,void 0x0,function*(){const _0x2143f8=_0x192c,_0x3977c3=this;if(_0x3977c3[_0x2143f8(0xad)]==undefined){const _0x50b3d0=typeof _0x3977c3[_0x2143f8(0x18f)][_0x2143f8(0x114)]==='function'?_0x3977c3[_0x2143f8(0x18f)][_0x2143f8(0x114)][_0x2143f8(0xd9)](_0x3977c3):_0x3977c3[_0x2143f8(0x18f)]['parentNode'];if(_0x50b3d0 instanceof Promise){const _0x199128=yield _0x50b3d0;_0x3977c3[_0x2143f8(0xad)]=_0x199128;}else _0x3977c3[_0x2143f8(0xad)]=_0x50b3d0;}return _0x3977c3[_0x2143f8(0xad)]||_0x2bdc9a;});},'reset'(){return _0x40391b(this,void 0x0,void 0x0,function*(){const _0x4fddd3=_0x192c,_0x22470f=this,_0x5aeafb=_0x22470f;_0x5aeafb[_0x4fddd3(0xad)]=undefined,_0x22470f[_0x4fddd3(0x18c)]['empty']();const _0x2c9f48=yield this[_0x4fddd3(0x1e6)](),_0x83602d=_0x53e17c(_0x2c9f48);_0x22470f[_0x4fddd3(0x18c)]['append'](_0x83602d),_0x22470f[_0x4fddd3(0x141)]=_0x2c9f48;});},'verify'(_0x58b4ed){const _0x2b9b98=_0x3a8486,_0x2c04c6=this,_0x1b6bb8=_0x118745(_0x2c04c6);_0x5378c9(_0x1b6bb8,_0x58b4ed,_0x2c04c6[_0x2b9b98(0x1ad)],_0x2c04c6[_0x2b9b98(0x1c8)])[_0x2b9b98(0xe6)](_0x346c50=>{const _0x34cc8=_0x2b9b98;!_0x346c50?_0x2c04c6['$combo'][_0x34cc8(0xa2)]('input-error'):_0x2c04c6[_0x34cc8(0xb4)][_0x34cc8(0xf3)](_0x34cc8(0x135));});},'_hideMenu'(_0x43ea78){const _0x56d21b=_0x3a8486,_0x2d24a0=this;$(document)[_0x56d21b(0xc3)]('mousedown.red-ui-typedInput-close-property-select'),_0x43ea78['hide'](),_0x43ea78[_0x56d21b(0xed)]({'height':'auto'});if(_0x43ea78[_0x56d21b(0x16b)][_0x56d21b(0x10f)]){var _0x5d4b69=[];_0x43ea78[_0x56d21b(0x1cd)](_0x56d21b(0xe2))[_0x56d21b(0xfa)](function(){const _0x23eb27=_0x56d21b;$(this)[_0x23eb27(0xd5)](_0x23eb27(0xc0))&&_0x5d4b69['push']($(this)[_0x23eb27(0x1b5)](_0x23eb27(0x11c)));}),_0x43ea78[_0x56d21b(0x148)](_0x5d4b69);}_0x2d24a0[_0x56d21b(0x1c0)]['is'](_0x56d21b(0x1a7))?_0x2d24a0[_0x56d21b(0x1ad)][_0x56d21b(0x14c)]('focus'):_0x2d24a0[_0x56d21b(0x1a9)][_0x56d21b(0x14c)](_0x56d21b(0xdc));},'_createMenu'(_0x395204,_0x547b9f,_0x28633b){const _0xf944bf=_0x3a8486;var _0x39ce09=this;const _0x211d98=$(_0xf944bf(0xe7))[_0xf944bf(0xa2)](_0xf944bf(0x18e));return _0x211d98['opts']=_0x547b9f,_0x211d98[_0xf944bf(0x148)]=_0x28633b,_0x395204[_0xf944bf(0xf6)](_0xe8f395=>{const _0x382091=_0xf944bf;typeof _0xe8f395===_0x382091(0x19c)&&(_0xe8f395={'value':_0xe8f395,'label':_0xe8f395});var _0x2ac0cd=$(_0x382091(0x19b))[_0x382091(0x195)](_0x382091(0x11c),_0xe8f395[_0x382091(0x11c)])[_0x382091(0xa7)](_0x211d98);_0xe8f395[_0x382091(0xb8)]&&_0x2ac0cd['text'](_0xe8f395[_0x382091(0xb8)]);_0xe8f395[_0x382091(0x134)]&&_0x2ac0cd[_0x382091(0xd5)](_0x382091(0x134),_0xe8f395[_0x382091(0x134)]);if(_0xe8f395[_0x382091(0xa4)]){if(_0xe8f395[_0x382091(0xa4)][_0x382091(0x126)]('<')===0x0)$(_0xe8f395[_0x382091(0xa4)])[_0x382091(0x1d2)](_0x2ac0cd);else _0xe8f395[_0x382091(0xa4)][_0x382091(0x126)]('/')!==-0x1?$(_0x382091(0x13b),{'class':_0x382091(0x1ba),'style':_0x382091(0xc9)+_0xe8f395[_0x382091(0xa4)]+_0x382091(0x164)+_0xe8f395['icon']+');'})['prependTo'](_0x2ac0cd):$(_0x382091(0x13b),{'class':_0x382091(0x1da)+_0xe8f395[_0x382091(0xa4)]})[_0x382091(0x1d2)](_0x2ac0cd);}else _0x2ac0cd[_0x382091(0xed)]({'paddingLeft':_0x382091(0x165)});!_0xe8f395[_0x382091(0xa4)]&&!_0xe8f395[_0x382091(0xb8)]&&_0x2ac0cd[_0x382091(0xd3)](_0xe8f395[_0x382091(0x11c)]);var _0x547541;_0x547b9f['multiple']&&(_0x547541=$('<input\x20type=\x22checkbox\x22>')[_0x382091(0xed)]('pointer-events',_0x382091(0x111))['data'](_0x382091(0x11c),_0xe8f395[_0x382091(0x11c)])[_0x382091(0x1d2)](_0x2ac0cd)['on'](_0x382091(0x15c),function(_0x45932a){_0x45932a['preventDefault']();})),_0x2ac0cd['on']('click',function(_0x44a547){const _0x25aa8f=_0x382091;_0x44a547[_0x25aa8f(0xc5)](),_0x44a547[_0x25aa8f(0x156)](),!_0x547b9f[_0x25aa8f(0x10f)]?(_0x28633b(_0xe8f395['value']),_0x39ce09[_0x25aa8f(0xcb)](_0x211d98)):_0x547541[_0x25aa8f(0xd5)](_0x25aa8f(0xc0),!_0x547541[_0x25aa8f(0xd5)](_0x25aa8f(0xc0)));});}),_0x211d98[_0xf944bf(0xed)]({'display':'none'}),_0x211d98['on']('keydown',function(_0x5f3d7e){const _0x27d9d1=_0xf944bf;if(_0x5f3d7e[_0x27d9d1(0x1e7)]===0x28)_0x5f3d7e[_0x27d9d1(0xc5)](),$(this)['children'](':focus')[_0x27d9d1(0x143)]()[_0x27d9d1(0x14c)](_0x27d9d1(0xdc));else{if(_0x5f3d7e[_0x27d9d1(0x1e7)]===0x26)_0x5f3d7e[_0x27d9d1(0xc5)](),$(this)['children'](':focus')[_0x27d9d1(0x186)]()[_0x27d9d1(0x14c)](_0x27d9d1(0xdc));else _0x5f3d7e[_0x27d9d1(0x1e7)]===0x1b&&(_0x5f3d7e[_0x27d9d1(0xc5)](),_0x39ce09['_hideMenu'](_0x211d98));}_0x5f3d7e['stopPropagation']();}),_0x211d98;},'disarmClick':![],'_showMenu'(_0x8a2673,_0x1a1d30){const _0x4839d2=_0x3a8486;if(this['disarmClick']){this[_0x4839d2(0x194)]=![];return;}var _0x266ff5=this,_0x44b4ec=_0x1a1d30[_0x4839d2(0x118)](),_0x4155d1=_0x1a1d30[_0x4839d2(0xbe)](),_0x16fd60=_0x8a2673[_0x4839d2(0xbe)](),_0x502a2f=_0x4155d1+_0x44b4ec[_0x4839d2(0x109)];_0x502a2f+_0x16fd60-$(document)[_0x4839d2(0x1cb)]()>$(window)[_0x4839d2(0xbe)]()&&(_0x502a2f-=_0x502a2f+_0x16fd60-$(window)[_0x4839d2(0xbe)]()+0x5),_0x502a2f<0x0&&(_0x8a2673[_0x4839d2(0xbe)](_0x16fd60+_0x502a2f),_0x502a2f=0x0),_0x8a2673[_0x4839d2(0xed)]({'top':_0x502a2f+'px','left':_0x44b4ec[_0x4839d2(0x1a4)]+'px'}),_0x8a2673[_0x4839d2(0x145)](0x64),this['_delay'](function(){const _0x1d58d4=_0x4839d2;_0x266ff5['$uiSelect'][_0x1d58d4(0xa2)]('red-ui-typedInput-focus'),$(document)['on'](_0x1d58d4(0x129),function(_0x49598e){const _0x3d42c3=_0x1d58d4;!$(_0x49598e['target'])[_0x3d42c3(0xdd)](_0x8a2673)[_0x3d42c3(0x15e)]&&_0x266ff5[_0x3d42c3(0xcb)](_0x8a2673),$(_0x49598e['target'])['closest'](_0x1a1d30)['length']&&(_0x266ff5[_0x3d42c3(0x194)]=!![],_0x49598e[_0x3d42c3(0xc5)]());});});},'_showTypeMenu'(){const _0x135765=_0x3a8486,_0x3e5b0d=this;this[_0x135765(0xa5)](_0x3e5b0d[_0x135765(0xe3)],_0x3e5b0d[_0x135765(0xb4)]),_0x3e5b0d[_0x135765(0x120)][_0x135765(0x18b)]();const _0x191ad4=_0x3e5b0d['selectedMenuItem'];var _0x53efc4=_0x3e5b0d[_0x135765(0xe3)]['find'](_0x135765(0x184)+_0x191ad4+'\x27');setTimeout(function(){const _0x410c5d=_0x135765;_0x53efc4[_0x410c5d(0x14c)](_0x410c5d(0xdc));},0x78);},'_initMenu'(){const _0x3d1bfc=_0x3a8486,_0x5ae79f=this;_0x5ae79f[_0x3d1bfc(0x1a9)][_0x3d1bfc(0x195)](_0x3d1bfc(0x140),-0x1),_0x5ae79f[_0x3d1bfc(0x1a9)]['on'](_0x3d1bfc(0x1a1),function(_0x2acecd){const _0x47e178=_0x3d1bfc;_0x2acecd[_0x47e178(0xc5)]();});_0x5ae79f[_0x3d1bfc(0xe3)]&&_0x5ae79f[_0x3d1bfc(0xe3)][_0x3d1bfc(0x12c)]();const _0x5879d4=[{'label':_0x3d1bfc(0xd3),'value':'t','title':_0x3d1bfc(0xa0),'icon':_0x3d1bfc(0xe9)},{'label':_0x3d1bfc(0xe5),'value':'msg','title':'node\x20id\x20or\x20\x20browse\x20path\x20comes\x20from\x20injected\x20msg\x20parameter','icon':_0x3d1bfc(0x1db)},{'label':'NodeId','value':'n','icon':_0x3d1bfc(0xcf)},{'label':_0x3d1bfc(0x16a),'value':'na','icon':_0x3d1bfc(0x12a)},{'label':'NodeId\x20with\x20namespace\x20Urn','value':_0x3d1bfc(0xc8),'icon':'<i\x20class=\x22fa\x20fa-id-card\x22/> \x20'},{'label':_0x3d1bfc(0x138),'value':'b','icon':_0x3d1bfc(0x1e3)},{'label':_0x3d1bfc(0x199),'value':'ab','icon':_0x3d1bfc(0x176)}],_0x2a1bd4=_0x29d183(_0x5ae79f[_0x3d1bfc(0x1ad)][_0x3d1bfc(0x15a)]()),_0x5ab6ca=_0x5879d4[_0x3d1bfc(0x1cd)](_0x161a76=>_0x161a76[_0x3d1bfc(0x11c)]===_0x2a1bd4);_0x5ae79f[_0x3d1bfc(0x14b)][_0x3d1bfc(0x179)]()[_0x3d1bfc(0x191)](_0x3d1bfc(0x1d3)+((_0x5ab6ca===null||_0x5ab6ca===void 0x0?void 0x0:_0x5ab6ca[_0x3d1bfc(0x134)])||'')+_0x3d1bfc(0x1c4)+((_0x5ab6ca===null||_0x5ab6ca===void 0x0?void 0x0:_0x5ab6ca['icon'])||'')+_0x3d1bfc(0xac)),_0x5ae79f[_0x3d1bfc(0xfb)]=_0x2a1bd4;const _0x4ce01b=this;_0x5ae79f[_0x3d1bfc(0xe3)]=this[_0x3d1bfc(0xef)](_0x5879d4,{},_0x4352b0=>{const _0x305f60=_0x3d1bfc,_0x22fe3b=_0x4001da(_0x4352b0);_0x22fe3b&&_0x4ce01b[_0x305f60(0xf8)](_0x22fe3b);const _0x251fde=_0x5879d4[_0x305f60(0x1cd)](_0x3acc35=>_0x3acc35[_0x305f60(0x11c)]===_0x4352b0);_0x5ae79f[_0x305f60(0xfb)]=_0x4352b0,_0x5ae79f[_0x305f60(0x14b)]['empty']()[_0x305f60(0x191)](_0x305f60(0x1d3)+((_0x251fde===null||_0x251fde===void 0x0?void 0x0:_0x251fde[_0x305f60(0x134)])||'')+'> \x20'+((_0x251fde===null||_0x251fde===void 0x0?void 0x0:_0x251fde[_0x305f60(0xa4)])||'')+_0x305f60(0xac));}),_0x5ae79f[_0x3d1bfc(0xe3)][_0x3d1bfc(0xa7)](document[_0x3d1bfc(0x198)]),_0x5ae79f[_0x3d1bfc(0xe3)]['hide'](),_0x5ae79f[_0x3d1bfc(0x1a9)]['show']();},'mode'(){const _0x5e301a=_0x3a8486,_0x559077=this;return _0x4001da(_0x559077[_0x5e301a(0xfb)]);},'setMode'(_0x3c7632){const _0x37dfba=_0x3a8486,_0x3aa150=this,_0x4b2514=_0x237999(_0x3c7632);_0x3aa150[_0x37dfba(0xfb)]=_0x4b2514;},'_create'(){const _0x1a8d33=_0x3a8486,_0x2dd39d=this;_0x2dd39d[_0x1a8d33(0x1ad)]=this[_0x1a8d33(0x190)],_0x2dd39d[_0x1a8d33(0x1ad)]['css'](_0x1a8d33(0x11a),_0x1a8d33(0x111)),_0x2dd39d[_0x1a8d33(0x1c0)]=_0x2dd39d['$input'][_0x1a8d33(0x101)](_0x1a8d33(0xe7))[_0x1a8d33(0x1a0)]()[_0x1a8d33(0xa2)]('main-wrapper'),_0x2dd39d[_0x1a8d33(0xb4)]=$(_0x1a8d33(0xce)),_0x2dd39d[_0x1a8d33(0xb4)][_0x1a8d33(0xa2)](_0x1a8d33(0xbc)),_0x2dd39d[_0x1a8d33(0x1ad)][_0x1a8d33(0x10e)](_0x2dd39d[_0x1a8d33(0xb4)]),_0x2dd39d[_0x1a8d33(0x1df)]=$(_0x1a8d33(0xce))['addClass']('input-group'),_0x2dd39d['$combo']['append'](_0x2dd39d[_0x1a8d33(0x1df)]),_0x2dd39d[_0x1a8d33(0x1df)][_0x1a8d33(0x191)](_0x2dd39d['$input']),_0x2dd39d[_0x1a8d33(0x128)]=$(_0x1a8d33(0x149)),_0x2dd39d[_0x1a8d33(0x1ad)][_0x1a8d33(0x1de)](_0x2dd39d[_0x1a8d33(0x128)]),_0x2dd39d[_0x1a8d33(0x128)]['on']('click',function(){return _0x40391b(this,void 0x0,void 0x0,function*(){const _0x1d402c=_0x192c;var _0x16b3f8;let _0x51a3a6=![],_0xc3cadd;!_0x2dd39d[_0x1d402c(0x120)]['is'](_0x1d402c(0x1a7))&&(_0x2dd39d[_0x1d402c(0x1c8)][_0x1d402c(0x18b)](),_0xc3cadd=yield _0x2dd39d[_0x1d402c(0x1e6)](),(_0xc3cadd!==_0x2dd39d[_0x1d402c(0x141)]||((_0x16b3f8=_0x2dd39d[_0x1d402c(0x141)])===null||_0x16b3f8===void 0x0?void 0x0:_0x16b3f8[_0x1d402c(0x146)])!==_0xc3cadd[_0x1d402c(0x146)])&&(yield _0x2dd39d[_0x1d402c(0x1a5)]()),_0x51a3a6=!![]),_0x2dd39d[_0x1d402c(0x120)][_0x1d402c(0x147)](),_0x51a3a6&&(yield _0x20966b(_0x2dd39d,_0xc3cadd));});}),_0x2dd39d['$verifyBtn']=$(_0x1a8d33(0x13d)),_0x2dd39d[_0x1a8d33(0x1ad)]['after'](_0x2dd39d[_0x1a8d33(0xff)]),_0x2dd39d[_0x1a8d33(0xff)]['on']('click',()=>{const _0x3378d9=_0x1a8d33,_0x1d1774=_0x2dd39d['mode']();if(!_0x1d1774)return;this[_0x3378d9(0xf8)](_0x1d1774);});const _0x266060=_0x2f2222=>_0x40391b(this,void 0x0,void 0x0,function*(){const _0x490233=_0x1a8d33,_0xec801=this;let _0x1712da=_0xec801[_0x490233(0x17f)]();if(!_0x1712da)return;const _0x41f08b=_0x118745(_0xec801),{data:_0x548831,json:_0x45fa26}=yield _0x258840(_0x41f08b,_0x2f2222);if(_0x548831[_0x490233(0x16e)]!==0xc8)return;if(_0x45fa26['statusCode'][_0x490233(0x130)](/Good/)){const _0x21e560=_0xb1fa2a(_0x45fa26,_0x1712da);_0xec801['$input'][_0x490233(0x15a)](_0x21e560),_0xec801['$input'][_0x490233(0x14c)](_0x490233(0x11b));}});{_0x2dd39d[_0x1a8d33(0x1e9)]=$(_0x1a8d33(0xe7)),_0x2dd39d[_0x1a8d33(0x1ad)][_0x1a8d33(0x1d6)](_0x2dd39d[_0x1a8d33(0x1e9)]),_0x2dd39d[_0x1a8d33(0x1a9)]=$(_0x1a8d33(0xb2))[_0x1a8d33(0x1d2)](_0x2dd39d['$uiSelect']),$('<i\x20class=\x22red-ui-typedInput-icon\x20fa\x20fa-caret-down\x22></i>')[_0x1a8d33(0x147)](!![])['appendTo'](_0x2dd39d[_0x1a8d33(0x1a9)]),_0x2dd39d[_0x1a8d33(0x1a9)]['on']('click',function(_0x1157f4){const _0x45f8a8=_0x1a8d33;_0x1157f4[_0x45f8a8(0xc5)](),_0x1157f4['stopPropagation'](),_0x2dd39d['_showTypeMenu']();}),_0x2dd39d[_0x1a8d33(0x1a9)]['on'](_0x1a8d33(0x136),function(_0x5d27eb){const _0x143bfa=_0x1a8d33;_0x5d27eb[_0x143bfa(0x1e7)]===0x28&&_0x2dd39d['_showTypeMenu'](),_0x5d27eb[_0x143bfa(0x156)]();})['on'](_0x1a8d33(0xdc),function(){_0x2dd39d['$uiSelect']['addClass']('red-ui-typedInput-focus');})['on'](_0x1a8d33(0xf5),function(){const _0x34783e=_0x1a8d33;_0x2dd39d[_0x34783e(0x1e9)][_0x34783e(0xf3)](_0x34783e(0x122));}),_0x2dd39d['$selectLabel']=$(_0x1a8d33(0xea))[_0x1a8d33(0xa7)](_0x2dd39d[_0x1a8d33(0x1a9)]);}this['_initMenu']();!_0x2dd39d['$input']['attr'](_0x1a8d33(0x17b))&&_0x2dd39d['$input'][_0x1a8d33(0x195)](_0x1a8d33(0x17b),_0x1a8d33(0x19d));_0x2dd39d[_0x1a8d33(0x1c8)]=$(_0x1a8d33(0xe8)),_0x2dd39d['$info'][_0x1a8d33(0x18b)](),_0x2dd39d[_0x1a8d33(0xb4)]['append'](_0x2dd39d[_0x1a8d33(0x1c8)]),_0x2dd39d[_0x1a8d33(0x120)]=$(_0x1a8d33(0xce))[_0x1a8d33(0xa2)](_0x1a8d33(0xf0))[_0x1a8d33(0x18b)]()[_0x1a8d33(0xa7)](_0x2dd39d[_0x1a8d33(0xb4)]),_0x2dd39d['$tree']=$(_0x1a8d33(0x13a))[_0x1a8d33(0xa7)](_0x2dd39d[_0x1a8d33(0x120)]),this[_0x1a8d33(0x1a5)]();const _0x5dea43=(_0x2e5a68,_0x4e6b2a)=>{const _0x4db5df=_0x1a8d33,_0x311476=0x14,_0x406435=0x14,_0x42b415=_0x2e5a68[_0x4db5df(0x118)](),_0x4ae53f=_0x4e6b2a;if(_0x4ae53f[_0x4db5df(0x1c3)]>=_0x42b415[_0x4db5df(0x1a4)]&&_0x4ae53f['pageX']<=_0x42b415[_0x4db5df(0x1a4)]+_0x311476&&_0x4ae53f[_0x4db5df(0x18d)]>=_0x42b415[_0x4db5df(0x109)]&&_0x4ae53f['pageY']<=_0x42b415[_0x4db5df(0x109)]+_0x406435)return!![];return![];},_0x3a6e44=_0xbca581=>_0x40391b(this,void 0x0,void 0x0,function*(){const _0xc8ff10=_0x1a8d33;if(_0xbca581['hasClass'](_0xc8ff10(0x1b6)))_0x504cce(_0x2dd39d,_0xbca581);else{if(_0xbca581[_0xc8ff10(0xc1)]('expanded'))_0xbca581[_0xc8ff10(0xb1)]('ul')['toggle'](),_0xbca581[_0xc8ff10(0x139)](_0xc8ff10(0xd0));else{if(_0xbca581[_0xc8ff10(0xb1)]('ul')[_0xc8ff10(0xb1)]()[_0xc8ff10(0x15e)]>0x0)_0xbca581[_0xc8ff10(0xb1)]('ul')[_0xc8ff10(0x147)](),_0xbca581[_0xc8ff10(0x139)]('expandable\x20expanded');else;}}});_0x2dd39d[_0x1a8d33(0x18c)]['on'](_0x1a8d33(0x152),'li',function(_0x48b20e){const _0x483d8c=_0x1a8d33;var _0x5d4ece,_0x154069;_0x48b20e[_0x483d8c(0x156)]();let _0x27ac6c=$(this);if(_0x5dea43(_0x27ac6c,_0x48b20e))_0x3a6e44(_0x27ac6c);else{const _0x219737=_0x27ac6c[_0x483d8c(0x1b5)](_0x483d8c(0x11c)),_0xd8c630=_0x27ac6c[_0x483d8c(0x1b5)]('reference');if(_0x2dd39d[_0x483d8c(0x18f)][_0x483d8c(0x159)]&&!_0x2dd39d[_0x483d8c(0x18f)][_0x483d8c(0x159)](_0xd8c630))return;_0x2dd39d['$input'][_0x483d8c(0x1b5)](_0x483d8c(0x188),_0xd8c630),((_0x5d4ece=_0xd8c630[_0x483d8c(0x104)])===null||_0x5d4ece===void 0x0?void 0x0:_0x5d4ece[_0x483d8c(0xd3)])||((_0x154069=_0xd8c630[_0x483d8c(0x1d5)])===null||_0x154069===void 0x0?void 0x0:_0x154069[_0x483d8c(0x1b8)])||_0xd8c630[_0x483d8c(0x146)][_0x483d8c(0x17e)]();let _0x1930ed=_0x2dd39d[_0x483d8c(0x17f)]();!_0x1930ed&&(_0x1930ed=_0x483d8c(0x146),_0x2dd39d[_0x483d8c(0x17a)](_0x1930ed)),_0x266060(_0x219737)[_0x483d8c(0xe6)](()=>{const _0x43add5=_0x483d8c;_0x2dd39d[_0x43add5(0x120)][_0x43add5(0x18b)]();})[_0x483d8c(0x16f)](_0xb36479=>{const _0x25529a=_0x483d8c;_0x2dd39d[_0x25529a(0x120)][_0x25529a(0x18b)]();});}}),_0x2dd39d[_0x1a8d33(0x18c)]['on'](_0x1a8d33(0x19f),'li',function(_0x2cd179){const _0x58e0ee=_0x1a8d33;_0x2cd179[_0x58e0ee(0x156)]();let _0x560b4b=$(this);_0x5dea43(_0x560b4b,_0x2cd179)&&_0x3a6e44(_0x560b4b),_0x50eb89(_0x2dd39d,_0x560b4b);}),$(document)['on'](_0x1a8d33(0x19f),function(_0x439a27){const _0x1e9f7d=_0x1a8d33;!$(_0x439a27['target'])[_0x1e9f7d(0xdd)](_0x2dd39d[_0x1e9f7d(0xb4)])[_0x1e9f7d(0x15e)]&&_0x2dd39d[_0x1e9f7d(0x120)][_0x1e9f7d(0x18b)]();});}});},_0x5dbebc=_0x2a09ae=>{const _0x584980=_0x44c869;var _0x373bf3,_0x1a3e59,_0x3abfc0;if(!_0x2a09ae){const _0x5564ed=$('<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>');return _0x5564ed;}const _0x560174=_0x2a09ae[_0x584980(0x146)][_0x584980(0x17e)]();let _0x3d25b6=((_0x373bf3=_0x2a09ae['displayName'])===null||_0x373bf3===void 0x0?void 0x0:_0x373bf3[_0x584980(0xd3)])||((_0x1a3e59=_0x2a09ae['browseName'])===null||_0x1a3e59===void 0x0?void 0x0:_0x1a3e59['name'])||_0x2a09ae[_0x584980(0x146)]['toString'](),_0x2101ab=(_0x3abfc0=_0x2a09ae[_0x584980(0x1d5)])===null||_0x3abfc0===void 0x0?void 0x0:_0x3abfc0[_0x584980(0x196)];_0x3d25b6+=_0x2101ab!==undefined&&_0x2a09ae[_0x584980(0xfe)][_0x584980(0x130)](/Type/)?_0x584980(0x1b9)+_0x2101ab+')':'';const {icon:_0x4930ab,color:_0x179110}=_0xbca76(_0x2a09ae),_0x264b1b=$(_0x584980(0x180));if(_0x2a09ae['nodeClass']==='Variable'){const _0x2cb069=$(_0x584980(0xca));_0x264b1b[_0x584980(0x191)](_0x2cb069),_0x2cb069['on']('click',function(){const _0x3858ba=_0x584980;_0x2cb069[_0x3858ba(0xc1)](_0x3858ba(0xa8))?_0x2cb069[_0x3858ba(0xf3)]('unchecked')[_0x3858ba(0xa2)](_0x3858ba(0xc0)):_0x2cb069['removeClass'](_0x3858ba(0xc0))['addClass'](_0x3858ba(0xa8));});}return _0x264b1b['append']($(_0x584980(0xf2)+_0x4930ab+_0x584980(0x1b3)+_0x179110+_0x584980(0xaa)+_0x3d25b6+_0x584980(0x154))),_0x264b1b[_0x584980(0xa2)](_0x584980(0x1b6)),_0x264b1b[_0x584980(0x1b5)](_0x584980(0x11c),_0x560174),_0x264b1b[_0x584980(0x1b5)](_0x584980(0x188),_0x2a09ae),_0x264b1b;},_0x23903b=()=>{const _0xc6744f=_0x44c869;$[_0xc6744f(0x13e)](_0xc6744f(0xf7),{'options':{'endpointNode':()=>({'endpoint':_0xc6744f(0x1bf)}),'endpoint':()=>undefined,'baseUrl':''},'_populate'(){return _0x40391b(this,void 0x0,void 0x0,function*(){const _0x150bde=_0x192c;var _0x2ba171;const _0x1b11f7=this,_0xb6b734=new Set(((_0x2ba171=_0x1b11f7[_0x150bde(0x1ad)][_0x150bde(0x15a)]())===null||_0x2ba171===void 0x0?void 0x0:_0x2ba171[_0x150bde(0x17e)]()['split'](';'))||[]),_0x253ab8=_0x118745(_0x1b11f7),_0x4720d7=yield _0x555d4b(_0x253ab8);this[_0x150bde(0x1c2)](_0x4720d7,_0xb6b734);});},'_installTree'(_0x8629f7,_0x2adb1c){const _0x252d79=_0xc6744f,_0x48eb76=this;_0x48eb76['$tree']['empty']();if(!_0x8629f7['events'])return;const _0x25a66c=_0x8629f7['events'],_0x8e747a=_0x5dbebc(_0x25a66c);_0x48eb76[_0x252d79(0x18c)][_0x252d79(0x191)](_0x8e747a);const _0x410b38='';this[_0x252d79(0x9f)](_0x8e747a[_0x252d79(0xb1)]('ul'),_0x25a66c,_0x410b38,_0x2adb1c),_0x8e747a['removeClass']('expandable')[_0x252d79(0xa2)](_0x252d79(0x1c7)),this[_0x252d79(0x1be)](_0x2adb1c);},'_installChildren'(_0xcd3df7,_0x5663c4,_0x5e9baa,_0x48996d){const _0x389025=_0xc6744f,_0x3f3b76=({name:_0x2b03b2,namespaceIndex:_0x55e939})=>{if(_0x55e939===0x0)return _0x2b03b2;return _0x55e939+':'+_0x2b03b2;},_0x305634=_0x5663c4[_0x389025(0xb1)]||[],_0x41c703=_0x5663c4['subTypes']||[],_0x531e3a=[..._0x305634,..._0x41c703];for(const _0x18ab6f of _0x531e3a){const _0x5d73d1=_0x5dbebc(_0x18ab6f);_0xcd3df7[_0x389025(0x191)](_0x5d73d1);let _0x381456='';_0x18ab6f[_0x389025(0xfe)]===_0x389025(0x106)&&(_0x5e9baa?_0x381456=_0x5e9baa+'.'+_0x3f3b76(_0x18ab6f[_0x389025(0x1d5)]):_0x381456=_0x3f3b76(_0x18ab6f['browseName']),_0x5d73d1['attr'](_0x389025(0x133),_0x381456));const _0x218d92=_0x18ab6f[_0x389025(0xb1)]&&_0x18ab6f['children'][_0x389025(0x15e)],_0x520f5a=_0x18ab6f['subTypes']&&_0x18ab6f[_0x389025(0xe4)]['length'];!_0x218d92&&!_0x520f5a?_0x5d73d1[_0x389025(0xf3)](_0x389025(0x1b6))[_0x389025(0xa2)](_0x389025(0xc7)):(this['_installChildren'](_0x5d73d1[_0x389025(0xb1)]('ul'),_0x18ab6f,_0x381456,_0x48996d),_0x5d73d1['removeClass'](_0x389025(0x1b6))['addClass'](_0x389025(0x1c7)));}},'_updateSelectedFields'(){const _0x1e8515=_0xc6744f;var _0x4b03c1;const _0x112de3=this,_0x3394f4=new Set(((_0x4b03c1=_0x112de3['$input'][_0x1e8515(0x15a)]())===null||_0x4b03c1===void 0x0?void 0x0:_0x4b03c1[_0x1e8515(0x17e)]()['split'](';'))||[]);this[_0x1e8515(0x1be)](_0x3394f4);},'_updateValues'(_0x534984){const _0x442087=_0xc6744f;$(_0x442087(0x1bb))[_0x442087(0xfa)](function(){const _0x93f7cb=_0x442087,_0x4a7cc7=$(this),_0x273b19=_0x4a7cc7[_0x93f7cb(0x195)](_0x93f7cb(0x133));_0x273b19&&_0x534984[_0x93f7cb(0x174)](_0x273b19)&&_0x4a7cc7[_0x93f7cb(0xb1)]('span.custom-checkbox')['removeClass'](_0x93f7cb(0xa8))[_0x93f7cb(0xa2)](_0x93f7cb(0xc0));});},'_setInputValue'(){const _0xed50ee=_0xc6744f,_0x446f23=this,_0x590986=[];$(_0xed50ee(0x1bb))[_0xed50ee(0xfa)](function(){const _0x42e287=_0xed50ee,_0x3b941b=$(this);if(_0x3b941b[_0x42e287(0xb1)](_0x42e287(0x150))['length']>0x0){const _0x405842=_0x3b941b[_0x42e287(0x195)](_0x42e287(0x133));if(_0x405842)_0x590986[_0x42e287(0xd2)](_0x405842);}});const _0x166eaa=[...new Set(_0x590986)]['sort']()[_0xed50ee(0x108)](';');_0x446f23[_0xed50ee(0x1ad)][_0xed50ee(0x15a)](_0x166eaa),_0x446f23[_0xed50ee(0x1ad)][_0xed50ee(0x14c)](_0xed50ee(0x11b));},'_create'(){const _0x1a1f6f=_0xc6744f,_0x21becc=this;_0x21becc[_0x1a1f6f(0x1ad)]=this[_0x1a1f6f(0x190)],_0x21becc[_0x1a1f6f(0xb4)]=$(_0x1a1f6f(0xce)),_0x21becc['$combo']['addClass'](_0x1a1f6f(0xbc)),this[_0x1a1f6f(0x190)][0x0]['parentElement'][_0x1a1f6f(0xeb)](_0x21becc[_0x1a1f6f(0xb4)][0x0],this[_0x1a1f6f(0x190)][0x0]),_0x21becc[_0x1a1f6f(0x1df)]=$(_0x1a1f6f(0xce))[_0x1a1f6f(0xa2)](_0x1a1f6f(0xcd)),_0x21becc['$combo'][_0x1a1f6f(0x191)](_0x21becc[_0x1a1f6f(0x1df)]),_0x21becc[_0x1a1f6f(0x1df)]['append'](_0x21becc[_0x1a1f6f(0x1ad)]),_0x21becc[_0x1a1f6f(0x128)]=$('<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>'),_0x21becc[_0x1a1f6f(0x1df)][_0x1a1f6f(0x191)](_0x21becc[_0x1a1f6f(0x128)]),_0x21becc[_0x1a1f6f(0x128)]['on']('click',function(){const _0x48a180=_0x1a1f6f;_0x21becc[_0x48a180(0x120)][_0x48a180(0x147)](),_0x21becc[_0x48a180(0x1c8)][_0x48a180(0x147)]();if(_0x21becc[_0x48a180(0x120)]['is'](_0x48a180(0x1a7))){_0x4a39ed['show']();const _0x5a6639=_0x21becc[_0x48a180(0x120)]['offset']();_0x4a39ed[_0x48a180(0xed)]({'top':_0x5a6639[_0x48a180(0x109)]+'px','right':_0x48a180(0x1e0)+(_0x5a6639[_0x48a180(0x1a4)]+_0x21becc[_0x48a180(0x120)][_0x48a180(0xda)]())+_0x48a180(0x1b0)}),_0x21becc['_populate'](),_0x21becc[_0x48a180(0x123)]();}else _0x4a39ed[_0x48a180(0x18b)]();});!_0x21becc[_0x1a1f6f(0x1ad)][_0x1a1f6f(0x195)](_0x1a1f6f(0x17b))&&_0x21becc[_0x1a1f6f(0x1ad)][_0x1a1f6f(0x195)](_0x1a1f6f(0x17b),'enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20');_0x21becc[_0x1a1f6f(0x1c8)]=$(_0x1a1f6f(0xe8)),_0x21becc[_0x1a1f6f(0x1c8)][_0x1a1f6f(0x18b)](),_0x21becc[_0x1a1f6f(0x120)]=$('<div/>')[_0x1a1f6f(0xa2)](_0x1a1f6f(0xf0))['hide']();const _0x1eb303=$(_0x1a1f6f(0x1aa)),_0x37ee69=$('<span\x20class=\x22cancel-button\x22>✖</span>'),_0x4a39ed=$(_0x1a1f6f(0x105))[_0x1a1f6f(0x191)](_0x1eb303,_0x37ee69);_0x4a39ed[_0x1a1f6f(0x18b)](),_0x1eb303['on'](_0x1a1f6f(0x19f),()=>{const _0x4cd961=_0x1a1f6f;_0x21becc[_0x4cd961(0x1b4)](),_0x21becc[_0x4cd961(0x120)]['hide']();}),_0x37ee69['on'](_0x1a1f6f(0x19f),()=>{const _0x37545a=_0x1a1f6f;_0x21becc[_0x37545a(0x120)][_0x37545a(0x18b)]();}),_0x21becc[_0x1a1f6f(0xb4)]['append'](_0x21becc[_0x1a1f6f(0x1c8)]),_0x21becc[_0x1a1f6f(0xb4)][_0x1a1f6f(0x191)](_0x21becc[_0x1a1f6f(0x120)]),_0x21becc[_0x1a1f6f(0x18c)]=$(_0x1a1f6f(0x13a)),_0x21becc[_0x1a1f6f(0x120)]['empty']()['append'](_0x21becc[_0x1a1f6f(0x18c)],_0x4a39ed),_0x21becc[_0x1a1f6f(0x18c)]['on'](_0x1a1f6f(0x19f),'li',function(_0x379a27){const _0x56cfed=_0x1a1f6f;_0x379a27['stopPropagation']();let _0x1d0171=$(this);const _0x1cb2ef=0x14,_0x2c6c24=0x14,_0x587cca=$(this)[_0x56cfed(0x118)](),_0x36381c=_0x379a27;if(_0x36381c[_0x56cfed(0x1c3)]>=_0x587cca[_0x56cfed(0x1a4)]&&_0x36381c[_0x56cfed(0x1c3)]<=_0x587cca[_0x56cfed(0x1a4)]+_0x1cb2ef&&_0x36381c[_0x56cfed(0x18d)]>=_0x587cca[_0x56cfed(0x109)]&&_0x36381c[_0x56cfed(0x18d)]<=_0x587cca[_0x56cfed(0x109)]+_0x2c6c24){console[_0x56cfed(0xfd)](_0x56cfed(0xe0)),console[_0x56cfed(0xfd)]('clicked\x20on\x20',_0x1d0171['data']('value'),_0x1d0171[_0x56cfed(0x195)](_0x56cfed(0x11e)));if(_0x1d0171[_0x56cfed(0xc1)]('expandable'))_0x1d0171[_0x56cfed(0xf3)](_0x56cfed(0x1b6))[_0x56cfed(0xa2)](_0x56cfed(0x1c7)),_0x1d0171[_0x56cfed(0xb1)]('ul')['toggle']();else{if(_0x1d0171['hasClass'](_0x56cfed(0x1c7)))_0x1d0171['children']('ul')[_0x56cfed(0x147)](),_0x1d0171['toggleClass']('expandable\x20expanded');else{if(_0x1d0171['children']('ul')['children']()[_0x56cfed(0x15e)]>0x0)_0x1d0171['children']('ul')[_0x56cfed(0x147)](),_0x1d0171[_0x56cfed(0x139)](_0x56cfed(0xd0));else;}}}}),$(document)['on'](_0x1a1f6f(0x19f),function(_0x5dbf14){const _0x11f9f3=_0x1a1f6f;!$(_0x5dbf14[_0x11f9f3(0x1c9)])[_0x11f9f3(0xdd)](_0x21becc[_0x11f9f3(0xb4)])[_0x11f9f3(0x15e)]&&_0x21becc[_0x11f9f3(0x120)]['hide']();}),this['_populate']();}});},_0x555d4b=_0x4e96ac=>_0x40391b(void 0x0,[_0x4e96ac],void 0x0,function*({endpointNode:_0x2ff4aa,endpoint:_0x1dcb56,baseUrl:_0x37ebf8}){const _0x2cf343=_0x44c869,_0x1d6a96=_0x37ebf8+_0x2cf343(0x113),_0xa02110=_0x1d6a96+'/extractEventTypes',_0x3250ec=yield fetch(_0xa02110,{'method':'POST','body':JSON[_0x2cf343(0x142)]({'endpointNode':_0x2ff4aa,'endpoint':_0x1dcb56}),'headers':{'Content-Type':_0x2cf343(0xdb)}});if(_0x3250ec['status']!==0xc8)return console[_0x2cf343(0xfd)]('fetching\x20failed\x20with\x20error',_0x3250ec[_0x2cf343(0x16e)],_0x3250ec[_0x2cf343(0x192)]),{'events':null};console['log'](_0x2cf343(0xfc),_0x3250ec['status'],_0x3250ec[_0x2cf343(0x192)]);const _0x3703ad=yield _0x3250ec['json'](),_0x3c1dc5=_0x3703ad[_0x2cf343(0x185)];return{'events':_0x3c1dc5};}),_0x2df955=()=>{const _0x39e608=_0x44c869,_0x29432e=$('#node-input-endpoint'),_0x2154df=_0x29432e[_0x39e608(0x15a)](),_0x3620cf=RED['nodes'][_0x39e608(0x1bc)](_0x2154df);if(!_0x3620cf)return undefined;const {endpoint:_0x34aa63,securityMode:_0x5c2c06,securityPolicy:_0x38dbcc,userIdentityType:_0x3eab7d,credentials:_0x4d981b,namespaceAliases:_0x4e5b2c}=_0x3620cf,_0x3f4243={'endpoint':_0x34aa63,'securityMode':_0x5c2c06,'securityPolicy':_0x38dbcc,'userIdentityType':_0x3eab7d,'credentials':_0x4d981b,'namespaceAliases':_0x4e5b2c};return _0x3f4243;},_0x5b4f1d=()=>{const _0x3fd32d=_0x44c869,_0xa6d89f=$('#node-input-endpoint'),_0x480fa1=_0xa6d89f[_0x3fd32d(0x15a)](),_0x5e792d=_0x2df955();if(!_0x5e792d)return undefined;const _0x3842d5=_0x5e792d[_0x3fd32d(0xf9)];return Object[_0x3fd32d(0x197)]({'namespaceAliases':_0x3842d5,'id':_0x480fa1},_0x5e792d);},_0x564d36=()=>{return{'endpointNode':_0x5b4f1d};},_0x271425=()=>{const _0x2a8d43=_0x44c869,_0x474dac=$(_0x2a8d43(0x12d));console[_0x2a8d43(0xfd)]('installFeedbackWidget\x20',_0x474dac[_0x2a8d43(0x15e)]);if(_0x474dac['length']){console[_0x2a8d43(0xfd)](_0x2a8d43(0x144));const _0x55b1fa=$(_0x2a8d43(0x125),{'src':_0x2a8d43(0x102),'scrolling':'no','style':'background-color:transparent;overflow:hidden;border:3px','allowtransparency':_0x2a8d43(0x1bd),'width':_0x2a8d43(0x1dd),'height':_0x2a8d43(0xa3)});_0x474dac['append'](_0x55b1fa),_0x55b1fa['css']({'position':_0x2a8d43(0xd7),'right':_0x2a8d43(0xb6),'bottom':'16px'});}};RED[_0x44c869(0x137)][_0x44c869(0x1d9)]('OpcUa-Client2-MonitorEvent',{'category':_0x44c869(0xa9),'color':_0x44c869(0x1d4),'align':_0x44c869(0x178),'icon':_0x44c869(0x170),'paletteLabel':_0x44c869(0x193),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x44c869(0x10b)},'subscription':{'value':'','required':!![],'validate':_0x4b2d27=>{if(_0x4b2d27==='')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 _0x20b092=_0x44c869;return this[_0x20b092(0x1b8)]||_0x20b092(0x13c);},'labelStyle'(){const _0x86ed44=_0x44c869;return this[_0x86ed44(0x1b8)]?_0x86ed44(0xd6):'';},'oneditprepare'(){const _0x51e280=_0x44c869;_0x2b2568(),_0x23903b(),_0x12a38c(RED,this),_0x271425(),$(_0x51e280(0x127))['on'](_0x51e280(0x11b),()=>{const _0x4fa0da=_0x51e280,_0x115b0a=$(_0x4fa0da(0x16c))[_0x4fa0da(0xd5)](_0x4fa0da(0xc0));_0x115b0a?$(_0x4fa0da(0xbd))['val'](0x0):$(_0x4fa0da(0xbd))[_0x4fa0da(0x15a)](0x1);});const _0x38987c=$(_0x51e280(0x1af));_0x38987c[_0x51e280(0x12b)](Object['assign'](Object[_0x51e280(0x197)]({},_0x564d36()),{'filter'(_0xb1bd4f){const _0x1a71cb=_0x51e280;return _0xb1bd4f[_0x1a71cb(0xfe)]===_0x1a71cb(0x1ce);},'isSelectable'(_0x47a3b8){const _0x3a196d=_0x51e280;return _0x47a3b8[_0x3a196d(0xfe)]===_0x3a196d(0x1ce);}})),$(_0x51e280(0x15f));const _0x1d29f1=$(_0x51e280(0x14e));_0x1d29f1[_0x51e280(0x18a)](Object[_0x51e280(0x197)]({},_0x564d36()));},'oneditsave'(){const _0x4b16b9=_0x44c869,_0x3e887b=$(_0x4b16b9(0x16c))[_0x4b16b9(0xd5)](_0x4b16b9(0xc0));_0x3e887b?($('#node-input-startImmediately')['val'](_0x3e887b?0x0:0x1),this[_0x4b16b9(0xa6)]=_0x3e887b?0x0:0x1):($(_0x4b16b9(0x16c))['val'](0x1),this[_0x4b16b9(0xa6)]=0x1);}});}()));function _0x2f56(){const _0x34b814=['span.custom-checkbox.checked','23200837KplBvh','dblclick','endpointNode','<ul></ul>','localeCompare','stopPropagation','nodeIds','Both','isSelectable','val','aliasedNodeId','mousedown','nodeId_nsu','length','#node-input-whereClause','4965020DqFozs',';\x22></i>\x20','selected','1211DRfFtP',');\x20-webkit-mask-image:\x20url(','18px','fa-sliders','><i\x20class=\x22fa\x20','aliased\x20browsePath:\x20','/browse','Aliased\x20NodeId','opts','#node-input-startImmediately','nodeId_aliased','status','catch','opcualogobig.png','Invalid','subscriptions','fetched','has','isTypeRef','<i\x20class=\x22fa\x20fa-bookmark\x22/><i\x20class=\x22fa\x20fa-fighter-jet\x22/> ','DodgerBlue','right','empty','setMode','placeholder',':first','<li\x20key=\x22','toString','mode','<li>','fetching\x20failed\x20with\x20error','NodeClass','ns=0;i=34','[value=\x27','events','prev','fa-object-group','reference','HasChild','eventFieldSelector','hide','$tree','pageY','sterfive-typedInput-options\x20sterfive-online-menu','options','element','append','statusText','monitor\x20events','disarmClick','attr','namespaceIndex','assign','body','Aliased\x20Browse\x20Path','117LDvUJK','<a\x20href=\x22#\x22></a>','string','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','VariableType','click','parent','mousedown.red-ui-typedInput-focus-block','message','IsForward','left','reset','<option/>',':visible','/checkNodeId','$selectTrigger','<span\x20class=\x22validate-button\x22>✔</span>','686FlfsLP','14946GmzEGA','$input','DisplayName','#node-input-nodeId','px)','bp_indexed','subscription','\x22\x20style=\x22color:','_setInputValue','data','expandable','err','name','\x20(ns=','red-ui-typedInput-icon','.sterfive-tree\x20li','node','true','_updateValues','opc.tcp://opcuademo.sterfive.com:26543','$elementDiv','browsePath','_installTree','pageX','> \x20','nodeId:\x20','fa-text-width','expanded','$info','target','ObjectType','scrollTop','428ECoQHI','find','Object','nsu\x20nodeId:\x20','Organizes','li\x20>\x20.tree-text','prependTo','<span\x20title=','#C0DEED','browseName','before','baseUrl','Unspecified','registerType','red-ui-typedInput-icon\x20','<i\x20class=\x22fa\x20fa-envelope-open-o\x22/>','already\x20fetched','180px','after','$inputGroup','calc(100%\x20-\x20','!!failure!!','Good','<i\x20class=\x22fa\x20fa-tag\x22/><i\x20class=\x22fa\x20fa-fighter-jet\x22/> ','POST','endpoint','resolveParentNode','keyCode','Inverse','$uiSelect','SuppressedError','_installChildren','Value\x20is\x20not\x20verified','12qvNlWl','addClass','30px','icon','_showMenu','inputs','appendTo','unchecked','opcua',';\x22></i>','/walk-backward','</span>','__parentNode','ns=0;i=35','20015FwcHle','error','children','<button\x20type=\x22button\x22\x20tabindex=\x220\x22></button>','fa-list-alt','$combo','View','20px','<li>error\x20','label','referenceTypeId','HasProperty','failure','sterfive-combo-box','#node-input-inputs','height','sterfive-info','checked','hasClass','done','off','.spinner','preventDefault','ns=0;i=85','no-expandable','nsu','mask-image:\x20url(','<span\x20class=\x22custom-checkbox\x20unchecked\x22></span>','_hideMenu','animate','input-group','<div/>','<i\x20class=\x22fa\x20fa-tag\x22/>1\x20 \x20','expandable\x20expanded','Method','push','text','BrowseName','prop','node_label_italic','absolute','Objects','call','width','application/json','focus','closest','ReferenceType','342776xZulBB','clicked\x20on\x20icon','rgba(61,\x2060,\x204,\x200.525)','input[type=\x22checkbox\x22]','$menu','subTypes','msg.','then','<div>','<div\x20class=\x22info-text\x22></div>','<i\x20class=\x22fa\x20fa-font\x22/i>\x20','<span\x20class=\x22red-ui-typedInput-type-label\x22></span>','replaceChild','loading','css','DataType','_createMenu','sterfive-dropdown','aliasedBrowsePath','<i\x20class=\x22fa\x20','removeClass','ns=0;i=40','blur','forEach','sterfive.eventFieldSelector','verify','namespaceAliases','each','selectedMenuItem','fetched\x20:\x20','log','nodeClass','$verifyBtn','fa-folder','wrap','/opcua-for-node-red/support-frame.html','sterfive.nodeBrowser','displayName','<div\x20class=\x22floating-buttons\x22></div>','Variable','statusCode','join','top','filter','OpcUa-Endpoint2','nsuNodeID','references','replaceWith','multiple','position','none','typeDefinition','/opcua-for-node-red','parentNode','fa-cog','aliased\x20NodeId:\x20','fa-question','offset','bp_aliased','border','change','value','.tree-text:first','class','node\x20class:\x20','$dropdown','CadetBlue','red-ui-typedInput-focus','_updateSelectedFields','relativePath','<iframe></iframe>','indexOf','node-input-startImmediately','$toggleTreeBtn','mousedown.red-ui-typedInput-close-property-select','<i\x20class=\x22fa\x20fa-bookmark\x22/> \x20','nodeBrowser','remove','.red-ui-tray-body','671JoifbD','SandyBrown','match','TypeDefinition','already\x20loading','data-value','title','input-error','keydown','nodes','BrowsePath','toggleClass','<ul\x20class=\x22sterfive-tree\x22></ul>','<i>','OPCUA\x20Monitor','<button\x20title=\x22verify\x20nodeId\x20or\x20browsePath\x22><i\x20class=\x22fa\x20fa-refresh\x22></i></button>','widget','1810359LDrRqx','tabindex','currentParent','stringify','next','installing\x20iframe','slideDown','nodeId','toggle','callback','<button\x20title=\x22open\x20OPCUA\x20AddressSpace\x20Browser\x22><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','Forward','$selectLabel','trigger','li[key=\x22','#node-input-selectClauses','json'];_0x2f56=function(){return _0x34b814;};return _0x2f56();}
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgxMmEzOGMiLCJfMHgzOTlkNzQiLCJfMHgzNmM2N2MiLCJfMHgyNDkwMDIiLCIkIiwiXzB4Mjk2Zjg5IiwiXzB4MjE3MDA3IiwiXzB4MzY4ZGVhIiwiXzB4MmI3MDM1IiwiXzB4MTBhMjdjIiwiXzB4NDAzOTFiIiwiXzB4MTFjNDE1IiwiXzB4OTQ2MjhhIiwiXzB4MjZhMGY1IiwiXzB4NGEzODU0IiwiXzB4MmUxOGRlIiwiXzB4NTgyZWFjIiwiXzB4NDRjZmQ0IiwiUHJvbWlzZSIsIl8weDcwOWYyMyIsIl8weDFmNjlhMiIsIl8weDVjNWNjMiIsIl8weDRiMGJlMCIsIl8weDI3M2JlNSIsIl8weDNlZGFkYiIsIl8weDJlNmU4NyIsIl8weDQ4MTIxNyIsIl8weDU0NTY2MSIsIl8weDJkNTg1OCIsIlN1cHByZXNzZWRFcnJvciIsIl8weDMzZjczMCIsIl8weGIxNTY5YiIsIl8weDUxNzcyMCIsIl8weDM1YTlmMiIsIkVycm9yIiwiXzB4OTgyNmRiIiwiXzB4NDY2ZGU5IiwiXzB4MWNhNzI1IiwiXzB4MzIxNTU0IiwiXzB4NTNmMzFjIiwiXzB4NGM5ZWZlIiwiXzB4MWEyOTVkIiwiXzB4MjAyZTQ4IiwiXzB4MTNlZmM1IiwiXzB4Mjk0N2UyIiwiXzB4MjY0N2FkIiwiXzB4MmIwMGNhIiwiXzB4MjQ5N2ZjIiwiXzB4OTRiY2QxIiwiXzB4NDM1YjhhIiwiXzB4YzJlYzA2IiwiXzB4MjI2NDA4IiwiXzB4YmNhNzYiLCJfMHgyYTU4Y2MiLCJfMHgzODg3NjciLCJfMHg5YmQxYzAiLCJfMHgxNDA3ZGUiLCJfMHgzMDIxMTkiLCJlbmRwb2ludE5vZGUiLCJfMHg0ZjBhZGMiLCJlbmRwb2ludCIsIl8weDQ4MjBlMSIsImJhc2VVcmwiLCJfMHg1ZWUwNzEiLCJfMHg1YzhiNWQiLCJfMHgyMDJiZTMiLCJfMHgyZDhhZjAiLCJfMHgzMzZmZWEiLCJfMHhlYTUyNDkiLCJPYmplY3QiLCJfMHgzZmVjNmQiLCJmZXRjaCIsIkpTT04iLCJjb25zb2xlIiwiXzB4NGQ0ODFiIiwiXzB4NWMxOWI4IiwiXzB4OTIyNjUxIiwiXzB4MmYwODBiIiwiXzB4MTlhYjllIiwiXzB4NDk0NjM3IiwiXzB4MjVmZjk0IiwiXzB4MWY1MmM5IiwiXzB4NGY5NjM3IiwiXzB4NTJiMDRmIiwibm9kZUlkIiwiXzB4MTNmMWQzIiwicm9vdE5vZGVJZCIsIl8weDM1YTU5YyIsImlzVHlwZSIsIl8weDFjZDJjYSIsIl8weDJmMDAwNCIsIl8weDJhMGI0NCIsIl8weDVjNDJkMiIsIl8weDE2NmRiNyIsIl8weGIxZmEyYSIsIl8weDFiM2NmMiIsIl8weDFiZWRjNSIsIl8weDU5MjIwMiIsIl8weDE2NjY1NyIsIl8weDRkYTY5ZiIsIl8weDNmN2FmNyIsIl8weDFmZTJjOSIsIl8weDI5ZDE4MyIsIl8weDRiM2IxNCIsIl8weDQwYmEyNiIsIl8weDQwMDFkYSIsIl8weDU0Njk5OSIsIl8weDMxYzcwOCIsIl8weDIzNzk5OSIsIl8weDViYjYyYyIsIl8weDI1ODg0MCIsIl8weDNmN2Q1YyIsIl8weDIzMzFkOCIsIl8weDQ1Y2RmOSIsIl8weDJmOTE5NyIsIl8weDQ0NTQ5YiIsIl8weDE4ZjYzNCIsIl8weDQxYWM3ZSIsIl8weDU0OWJiNCIsIl8weDU2YTE5NCIsIl8weDJhYWFjZSIsIlJFRCIsIl8weDZmNDhkZSIsIl8weDIwZDJiMCIsIl8weDFkZWNkYSIsIl8weDUzNzhjOSIsIl8weDQzOTI0OCIsIl8weDI2OWE1MCIsIl8weDQwZGQ4NyIsIl8weDNhMmNjMSIsIl8weDRiNTY4YyIsIl8weDU3YWFkZiIsIl8weDQ3N2U1MSIsIl8weDM3MGJlNCIsIl8weDM0OWU0MiIsIl8weDdkZTVmOSIsIl8weDM3MTBmYiIsImpzb24iLCJfMHg0ZGM4ZjgiLCJkYXRhIiwiXzB4MWNkMTY0IiwiXzB4NWEyMTE3IiwiXzB4M2IyNDk0IiwiXzB4MjA0YWIzIiwic2V0VGltZW91dCIsIl8weDUxNDg1MSIsIl8weDUxY2MzYyIsIl8weDM3ZWY5NCIsIl8weDI2YjNiYiIsIl8weDQ4YTY0OSIsIl8weDU0NTFiOSIsIl8weDUzZWJiOSIsIl8weDU3OWYzMiIsIl8weDIyNmQyNCIsIl8weDUxOGQ1OSIsIl8weDVhMzU1ZCIsIl8weDI5MDFhNyIsIl8weDVjYTNkYyIsIl8weDNkNDI2YiIsIl8weDUzZTE3YyIsIl8weGJmMzU3MiIsIl8weDQ3OGU5MCIsIl8weDUyNDkzZSIsIl8weDFhMzY0YyIsIl8weGI1NWViMyIsIl8weDFjOTEzNiIsIl8weDQ1YjllZiIsIl8weDJjODVhNSIsImljb24iLCJfMHgzMmM3NGEiLCJjb2xvciIsIl8weDg1MDRjZCIsIl8weDQ2ZDJjMCIsIl8weDVhMDVlYiIsIl8weGJmZDRkNiIsIl8weDYyZjA2YSIsIl8weDFlMmIwNSIsIl8weDUwZWI4OSIsIl8weGMwM2I2YiIsIl8weDNiNWQ3ZCIsIl8weDNmZDg3NyIsIl8weDE2ZDUyZCIsIl8weDFhY2RkOCIsIl8weDE3MzBiOSIsIl8weDQ1NGNjMSIsIl8weDE0ZmI0YSIsIl8weDU2NDc4ZSIsIl8weDUwNGNjZSIsIl8weDVhNjQyYSIsIl8weDI5ZmY4MCIsIl8weDFlYzk3MCIsIl8weDQ1Y2Y0ZiIsIl8weDU0YzlmMiIsIl8weDc2ZDEzMiIsInVuZGVmaW5lZCIsIl8weDUxMDc1OSIsIl8weDIwOTY2YiIsIl8weDRkYTRmYSIsIl8weDVhM2FiNiIsIl8weDVkNWIxZSIsIl8weDE5MDFjMiIsIl8weDVkYzU4YiIsIl8weDExODc0NSIsIl8weDM1Y2NjOSIsIl8weDQyYjg4MSIsIl8weDUxNDliNCIsIl8weDI4MmQ0MSIsIl8weDU1M2VmYyIsIl8weDM0YTQyZCIsInJlZmVyZW5jZXMiLCJfMHg0YTU1ODgiLCJfMHgxYWEwM2EiLCJfMHgyZjBlMzQiLCJfMHg0NTViOGIiLCJfMHgxZmQ4MjciLCJfMHgyMzNhYjYiLCJfMHg0NjViODMiLCJfMHhiM2JiZTciLCJfMHg0OGM4NTMiLCJfMHgyZGU5Y2MiLCJfMHhhNTM4ZSIsIl8weDU0MzZjYyIsIl8weDVlODQ3NSIsIl8weDUxMDYwMSIsIl8weDFkNDYzNyIsIl8weDJiZGM5YSIsIl8weDJiMjU2OCIsIl8weDM5NzdjMyIsIl8weDUwYjNkMCIsIl8weDE5OTEyOCIsIl8weDIyNDcwZiIsIl8weDVhZWFmYiIsIl8weDJjOWY0OCIsIl8weDgzNjAyZCIsIl8weDU4YjRlZCIsIl8weDJjMDRjNiIsIl8weDFiNmJiOCIsIl8weDM0NmM1MCIsIl8weDQzZWE3OCIsIl8weDJkMjRhMCIsImRvY3VtZW50IiwiXzB4NWQ0YjY5IiwiXzB4Mzk1MjA0IiwiXzB4NTQ3YjlmIiwiXzB4Mjg2MzNiIiwiXzB4MzljZTA5IiwiXzB4MjExZDk4IiwiXzB4ZThmMzk1IiwiXzB4MmFjMGNkIiwiXzB4NTQ3NTQxIiwiXzB4NDU5MzJhIiwiXzB4NDRhNTQ3IiwiXzB4NWYzZDdlIiwiXzB4OGEyNjczIiwiXzB4MWExZDMwIiwiXzB4MjY2ZmY1IiwiXzB4NDRiNGVjIiwiXzB4NDE1NWQxIiwiXzB4MTZmZDYwIiwiXzB4NTAyYTJmIiwid2luZG93IiwiXzB4NDk1OThlIiwiXzB4M2U1YjBkIiwiXzB4MTkxYWQ0IiwiXzB4NTNlZmM0IiwiXzB4NWFlNzlmIiwiXzB4MmFjZWNkIiwiXzB4NTg3OWQ0IiwiXzB4MmExYmQ0IiwiXzB4NWFiNmNhIiwiXzB4MTYxYTc2IiwiXzB4NGNlMDFiIiwiXzB4NDM1MmIwIiwiXzB4MjJmZTNiIiwiXzB4MjUxZmRlIiwiXzB4M2FjYzM1IiwiXzB4NTU5MDc3IiwiXzB4M2M3NjMyIiwiXzB4M2FhMTUwIiwiXzB4NGIyNTE0IiwiXzB4MmRkMzlkIiwiXzB4MTZiM2Y4IiwiXzB4NTFhM2E2IiwiXzB4YzNjYWRkIiwiXzB4MWQxNzc0IiwiXzB4MjY2MDYwIiwiXzB4MmYyMjIyIiwiXzB4ZWM4MDEiLCJfMHgxNzEyZGEiLCJfMHg0MWYwOGIiLCJfMHg1NDg4MzEiLCJfMHg0NWZhMjYiLCJfMHgyMWU1NjAiLCJfMHgxMTU3ZjQiLCJfMHg1ZDI3ZWIiLCJfMHg1ZGVhNDMiLCJfMHgyZTVhNjgiLCJfMHg0ZTZiMmEiLCJfMHgzMTE0NzYiLCJfMHg0MDY0MzUiLCJfMHg0MmI0MTUiLCJfMHg0YWU1M2YiLCJfMHgzYTZlNDQiLCJfMHhiY2E1ODEiLCJfMHg0OGIyMGUiLCJfMHg1ZDRlY2UiLCJfMHgxNTQwNjkiLCJfMHgyN2FjNmMiLCJfMHgyMTk3MzciLCJfMHhkOGM2MzAiLCJfMHgxOTMwZWQiLCJfMHhiMzY0NzkiLCJfMHgyY2QxNzkiLCJfMHg1NjBiNGIiLCJfMHg0MzlhMjciLCJfMHg1ZGJlYmMiLCJfMHgyYTA5YWUiLCJfMHgzNzNiZjMiLCJfMHgxYTNlNTkiLCJfMHgzYWJmYzAiLCJfMHg1NTY0ZWQiLCJfMHg1NjAxNzQiLCJfMHgzZDI1YjYiLCJfMHgyMTAxYWIiLCJfMHg0OTMwYWIiLCJfMHgxNzkxMTAiLCJfMHgyNjRiMWIiLCJfMHgyY2IwNjkiLCJfMHgyMzkwM2IiLCJfMHgyYmExNzEiLCJfMHgxYjExZjciLCJfMHhiNmI3MzQiLCJTZXQiLCJfMHgyNTNhYjgiLCJfMHg0NzIwZDciLCJfMHg1NTVkNGIiLCJfMHg4NjI5ZjciLCJfMHgyYWRiMWMiLCJfMHg0OGViNzYiLCJfMHgyNWE2NmMiLCJfMHg4ZTc0N2EiLCJfMHg0MTBiMzgiLCJfMHhjZDNkZjciLCJfMHg1NjYzYzQiLCJfMHg1ZTliYWEiLCJfMHg0ODk5NmQiLCJfMHgzZjNiNzYiLCJuYW1lIiwiXzB4MmIwM2IyIiwibmFtZXNwYWNlSW5kZXgiLCJfMHg1NWU5MzkiLCJfMHgzMDU2MzQiLCJfMHg0MWM3MDMiLCJfMHg1MzFlM2EiLCJfMHgxOGFiNmYiLCJfMHg1ZDczZDEiLCJfMHgzODE0NTYiLCJfMHgyMThkOTIiLCJfMHg1MjBmNWEiLCJfMHg0YjAzYzEiLCJfMHgxMTJkZTMiLCJfMHgzMzk0ZjQiLCJfMHg1MzQ5ODQiLCJfMHg0YTdjYzciLCJfMHgyNzNiMTkiLCJfMHg0NDZmMjMiLCJfMHg1OTA5ODYiLCJfMHgzYjk0MWIiLCJfMHg0MDU4NDIiLCJfMHgxNjZlYWEiLCJfMHgyMWJlY2MiLCJfMHg0YTM5ZWQiLCJfMHg1YTY2MzkiLCJfMHgxZWIzMDMiLCJfMHgzN2VlNjkiLCJfMHgzNzlhMjciLCJfMHgxZDAxNzEiLCJfMHgxY2IyZWYiLCJfMHgyYzZjMjQiLCJfMHg1ODdjY2EiLCJfMHgzNjM4MWMiLCJfMHg1ZGJmMTQiLCJfMHg0ZTk2YWMiLCJfMHgyZmY0YWEiLCJfMHgxZGNiNTYiLCJfMHgzN2ViZjgiLCJfMHgxZDZhOTYiLCJfMHhhMDIxMTAiLCJfMHgzMjUwZWMiLCJfMHgzNzAzYWQiLCJfMHgzYzFkYzUiLCJfMHgyZGY5NTUiLCJfMHgyOTQzMmUiLCJfMHgyMTU0ZGYiLCJfMHgzNjIwY2YiLCJfMHgzNGFhNjMiLCJzZWN1cml0eU1vZGUiLCJfMHg1YzJjMDYiLCJzZWN1cml0eVBvbGljeSIsIl8weDM4ZGJjYyIsInVzZXJJZGVudGl0eVR5cGUiLCJfMHgzZWFiN2QiLCJjcmVkZW50aWFscyIsIl8weDRkOTgxYiIsIm5hbWVzcGFjZUFsaWFzZXMiLCJfMHg0ZTViMmMiLCJfMHgzZjQyNDMiLCJfMHg1YjRmMWQiLCJfMHhhNmQ4OWYiLCJfMHg0ODBmYTEiLCJfMHg1ZTc5MmQiLCJfMHgzODQyZDUiLCJfMHg1NjRkMzYiLCJfMHgyNzE0MjUiLCJfMHg0NzRkYWMiLCJfMHg1NWIxZmEiLCJfMHg0YjJkMjciLCJfMHgxMTViMGEiLCJfMHgzODk4N2MiLCJfMHhiMWJkNGYiLCJfMHg0N2EzYjgiLCJfMHgxZDI5ZjEiLCJfMHgzZTg4N2IiXSwibWFwcGluZ3MiOiJvMkJBQUEsQ0FBQyxVLENBQ0csYSx3QkFFQSxTQUFTQSxTQUFULENBQXFDQyxTQUFyQyxDQUEwQ0MsU0FBMUMsQyx5QkFDVUMsU0FBQSxDQUFZQyxDQUFBLEMsc0JBQUEsQyxDQUNaQyxTQUFBLENBQWdCRCxDQUFBLEMsMEJBQUEsQyxDQUVoQkUsU0FBQSxDQUE2QixJLHlCQUN6QkMsU0FBQSxDQUFXTixTQUFBLEMsT0FBQSxFLGdCQUFBLEVBQWVFLFNBQUEsQyxnQkFBQSxHQUFmLEMsQ0FDakJFLFNBQUEsQyxnQkFBQSxJLEdBQ0ksQ0FBQ0UsU0FBRCxFQUFhLENBQUNBLFNBQUEsQyxlQUFBLEMsQ0FDZCxPQUVKLFVBQVdDLFNBQVgsSUFB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QSxFLEdBQUEsQyxFQU5SLENBUkEsQ0FvQkEsTUFBTThaLFNBQUEsQ0FBVTlaLENBQUEsQyxnQkFBQSxDQUFoQixDQUNBOFosU0FBQSxDLGdCQUFBLEVBQW9CN1YsTUFBQSxDLFFBQUEsRUFBY0EsTUFBQSxDLGdCQUFBLEVBQWMsRUFBZCxDQUFrQnVWLFNBQUEsRUFBbEIsQ0FBZCxDQUFpRSxDLFFBQUUsQ0FBT08sU0FBUCxDLGtDQUN4RUEsU0FBQSxDLGVBQUEsSSxrQkFEc0UsQyxjQUdqRixDQUFhQyxTQUFiLEMsa0NBQ1dBLFNBQUEsQyxlQUFBLEksa0JBSnNFLENBQWpFLENBQXBCLEMsQ0FPQWhhLENBQUEsQyxnQkFBQSxDQVBBLENBUUEsTUFBTWlhLFNBQUEsQ0FBaUJqYSxDQUFBLEMsZ0JBQUEsQ0FBdkIsQ0FDQWlhLFNBQUEsQyxnQkFBQSxFQUFrQ2hXLE1BQUEsQyxnQkFBQSxFQUFjLEVBQWQsQ0FBa0J1VixTQUFBLEVBQWxCLENBQWxDLEMsRUFyRTZDLEMsWUF1RWpELEUsMkJBQ1VVLFNBQUEsQ0FBbUJsYSxDQUFBLEMsZ0JBQUEsRSxlQUFBLEUsZUFBQSxDLENBQ3JCa2EsUyxFQUNBbGEsQ0FBQSxDLDhCQUFBLEUsS0FBQSxFQUFzQ2thLFNBQUEsQyxHQUFBLEMsR0FBdEMsQyxDQUNBLEssZUFBQSxFQUFjQSxTQUFBLEMsR0FBQSxDLE1BR2RsYSxDQUFBLEMsZ0JBQUEsRSxLQUFBLEUsR0FBQSxDLENBQ0EsSyxlQUFBLEUsTUEvRXlDLENBQXJELEMsRUE3MENKLEciLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIGZ1bmN0aW9uIGluc3RhbGxTdWJzY3JpcHRpb25TZWxlY3RvcihSRUQsIG5vZGUpIHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCAkc3Vic2NyaXB0aW9uID0gJChcIiNub2RlLWlucHV0LXN1YnNjcmlwdGlvblwiKTtcbiAgICAgICAgLy8gZGVidWdnZXI7XG4gICAgICAgIGNvbnN0IGluc3RhbGxTdWJzY3JpcHRpb25PcHRpb25zID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZW5kcG9pbnQgPSBSRUQubm9kZXMubm9kZSgkZW5kcG9pbnQudmFsKCkpO1xuICAgICAgICAgICAgJHN1YnNjcmlwdGlvbi5lbXB0eSgpO1xuICAgICAgICAgICAgaWYgKCFlbmRwb2ludCB8fCAhZW5kcG9pbnQuc3Vic2NyaXB0aW9ucykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAoY29uc3QgcyBvZiBlbmRwb2ludC5zdWJzY3JpcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBzLm5hbWUgfHwgcy5pZDtcbiAgICAgICAgICAgICAgICAkKFwiPG9wdGlvbi8+XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHMuaWQsXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBsYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHMuaWQgPT09IG5vZGUuc3Vic2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIC50ZXh0KGxhYmVsKVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8oJHN1YnNjcmlwdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGluc3RhbGxTdWJzY3JpcHRpb25PcHRpb25zKCk7XG4gICAgICAgIC8vIGhhY2tcbiAgICAgICAgLy8gJGlucHV0QWN0aW9uLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgLy8gICAgICRlbmRwb2ludC5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgIC8vICAgICAgICAgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMoKTtcbiAgICAgICAgLy8gICAgIH0pO1xuICAgICAgICAvLyB9KTtcbiAgICAgICAgJHN1YnNjcmlwdGlvbi5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgICAgICBub2RlLnN1YnNjcmlwdGlvbiA9ICRzdWJzY3JpcHRpb24udmFsKCk7XG4gICAgICAgICAgICAvLyAgICBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucygpO1xuICAgICAgICB9KTtcbiAgICAgICAgJGVuZHBvaW50Lm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgIGluc3RhbGxTdWJzY3JpcHRpb25PcHRpb25zKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuICAgIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG4gICAgcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLlxyXG5cclxuICAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuICAgIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG4gICAgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULFxyXG4gICAgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbiAgICBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG4gICAgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUlxyXG4gICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbiAgICAvKiBnbG9iYWwgUmVmbGVjdCwgUHJvbWlzZSwgU3VwcHJlc3NlZEVycm9yLCBTeW1ib2wsIEl0ZXJhdG9yICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgY29uc3QgT3JnYW5pemVzUmVmTm9kZUlkID0gXCJucz0wO2k9MzVcIjtcbiAgICBjb25zdCBGb2xkZXJUeXBlID0gXCJucz0wO2k9NjFcIjtcbiAgICBjb25zdCBIYXNDb21wb25lbnRSZWZOb2RlSWQgPSBcIm5zPTA7aT00N1wiO1xuICAgIGNvbnN0IEhhc1Byb3BlcnR5UmVmTm9kZUlkID0gXCJucz0wO2k9NDZcIjtcbiAgICBjb25zdCBIYXNDaGlsZFJlZk5vZGVJZCA9IFwibnM9MDtpPTM0XCI7XG4gICAgY29uc3QgSGFzU3VidHlwZVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ1XCI7XG4gICAgY29uc3QgSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQgPSBcIm5zPTA7aT00MFwiO1xuXG4gICAgdmFyIEJyb3dzZURpcmVjdGlvbjtcbiAgICAoZnVuY3Rpb24gKEJyb3dzZURpcmVjdGlvbikge1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiRm9yd2FyZFwiXSA9IDBdID0gXCJGb3J3YXJkXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZlcnNlXCJdID0gMV0gPSBcIkludmVyc2VcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkJvdGhcIl0gPSAyXSA9IFwiQm90aFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52YWxpZFwiXSA9IDNdID0gXCJJbnZhbGlkXCI7XG4gICAgfSkoQnJvd3NlRGlyZWN0aW9uIHx8IChCcm93c2VEaXJlY3Rpb24gPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3M7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlVuc3BlY2lmaWVkXCJdID0gMF0gPSBcIlVuc3BlY2lmaWVkXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzcyB8fCAoTm9kZUNsYXNzID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzTWFzaztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzc01hc2spIHtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzc01hc2sgfHwgKE5vZGVDbGFzc01hc2sgPSB7fSkpO1xuICAgIHZhciBSZXN1bHRNYXNrO1xuICAgIChmdW5jdGlvbiAoUmVzdWx0TWFzaykge1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMV0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiSXNGb3J3YXJkXCJdID0gMl0gPSBcIklzRm9yd2FyZFwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJOb2RlQ2xhc3NcIl0gPSA0XSA9IFwiTm9kZUNsYXNzXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkJyb3dzZU5hbWVcIl0gPSA4XSA9IFwiQnJvd3NlTmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJEaXNwbGF5TmFtZVwiXSA9IDE2XSA9IFwiRGlzcGxheU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiVHlwZURlZmluaXRpb25cIl0gPSAzMl0gPSBcIlR5cGVEZWZpbml0aW9uXCI7XG4gICAgfSkoUmVzdWx0TWFzayB8fCAoUmVzdWx0TWFzayA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZ2FuaXplc1JlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNQcm9wZXJ0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNQcm9wZXJ0eVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ29tcG9uZW50UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NoaWxkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NoaWxkUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1N1YnR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzU3VidHlwZVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNUeXBlRGVmaW5pdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldEljb24gPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVmZXJlbmNlLm5vZGVDbGFzcykge1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBPcmdhbml6ZXNSZWZOb2RlSWQpIDtcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnR5cGVEZWZpbml0aW9uID09PSBGb2xkZXJUeXBlIHx8IHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IFwiaT02MVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtZm9sZGVyXCIsIGNvbG9yOiBcInJnYmEoNjEsIDYwLCA0LCAwLjUyNSlcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJTZWFHcmVlblwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzQ29tcG9uZW50UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiU3RlZWxCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzUHJvcGVydHlSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJEb2RnZXJCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiTWV0aG9kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1jb2dcIiwgY29sb3I6IFwiU2FuZHlCcm93blwiIH07XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0VHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtc2xpZGVyc1wiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJEYXRhVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtdGV4dC13aWR0aFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGljb246IFwiZmEtcXVlc3Rpb25cIiwgY29sb3I6IFwiZ3JleVwiIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGJyb3dzZSA9IChfYSwgbm9kZUlkXzEsIHRlbXBsYXRlXzEpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgbm9kZUlkXzEsIHRlbXBsYXRlXzFdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCwgdGVtcGxhdGUpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWZvci1ub2RlLXJlZGA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2Jyb3dzZWA7XG4gICAgICAgIGNvbnN0IGJyb3dzZURlc2NyaXB0aW9uID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB0ZW1wbGF0ZSksIHsgbm9kZUlkLCByZXN1bHRNYXNrOiA2MyB9KTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgYnJvd3NlRGVzY3JpcHRpb24sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoaW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlczogW10gfTtcbiAgICAgICAgfVxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcImJyb3dzZSBmZXRjaGVkIDogXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICBjb25zdCByZWZlcmVuY2VzID0gcmVzcG9uc2UuYnJvd3NlUmVzdWx0LnJlZmVyZW5jZXMgfHwgW107XG4gICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXMgfTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHRlbXBsYXRlMSA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzQ2hpbGRcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB0ZW1wbGF0ZTIgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIk9yZ2FuaXplc1wiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IHdhbGtCYWNrd2FyZCA9IChfYSwgX2IpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgX2JdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIHsgbm9kZUlkLCByb290Tm9kZUlkLCBpc1R5cGUgfSkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZm9yLW5vZGUtcmVkYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vd2Fsay1iYWNrd2FyZGA7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgICAgICByb290Tm9kZUlkLFxuICAgICAgICAgICAgICAgIGlzVHlwZSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGpzb24gPSAoeWllbGQgZGF0YS5qc29uKCkpO1xuICAgICAgICByZXR1cm4ganNvbi5icm93c2VQYXRoO1xuICAgIH0pO1xuICAgIGNvbnN0IGNob29zZU5vZGVJZCA9IChkYXRhLCBtb2RlKSA9PiB7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1c0NvZGUgIT09IFwiR29vZFwiKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0YS5yZXF1ZXN0ZWROb2RlSWQ7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICAgICAgICBjYXNlIFwiYnJvd3NlUGF0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLmJwX2luZGV4ZWQ7XG4gICAgICAgICAgICBjYXNlIFwiYWxpYXNlZEJyb3dzZVBhdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5icF9hbGlhc2VkIHx8IGRhdGEuYnBfaW5kZXhlZDtcbiAgICAgICAgICAgIGNhc2UgXCJhbGlhc2VkTm9kZUlkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEubm9kZUlkX2FsaWFzZWQgfHwgZGF0YS5ub2RlSWRfbnN1O1xuICAgICAgICAgICAgY2FzZSBcIm5zdU5vZGVJRFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLm5vZGVJZF9uc3U7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgY2FzZSBcIm5vZGVJZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLm5vZGVJZDtcbiAgICAgICAgfVxuICAgIH07XG4gICAgY29uc3QgbWFrZVRvb2x0aXAgPSAoZGF0YSkgPT4ge1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXNDb2RlICE9PSBcIkdvb2RcIikge1xuICAgICAgICAgICAgcmV0dXJuIGBzdGF0dXNDb2RlOiAke2RhdGEuc3RhdHVzQ29kZX1gO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbGV0IHN0ciA9IFtdO1xuICAgICAgICAgICAgc3RyLnB1c2goYG5vZGVJZDogJHtkYXRhLm5vZGVJZH1gKTtcbiAgICAgICAgICAgIHN0ci5wdXNoKGBicm93c2UgcGF0aDogJHtkYXRhLmJwX2luZGV4ZWR9YCk7XG4gICAgICAgICAgICBzdHIucHVzaChgbm9kZSBjbGFzczogJHtOb2RlQ2xhc3NbZGF0YS5ub2RlQ2xhc3NdfWApO1xuICAgICAgICAgICAgaWYgKGRhdGEubm9kZUlkX25zdSkge1xuICAgICAgICAgICAgICAgIHN0ci5wdXNoKGBuc3Ugbm9kZUlkOiAke2RhdGEubm9kZUlkX25zdX1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLm5vZGVJZF9hbGlhc2VkKSB7XG4gICAgICAgICAgICAgICAgc3RyLnB1c2goYGFsaWFzZWQgTm9kZUlkOiAke2RhdGEubm9kZUlkX2FsaWFzZWR9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5icF9pbmRleGVkKSB7XG4gICAgICAgICAgICAgICAgc3RyLnB1c2goYGFsaWFzZWQgYnJvd3NlUGF0aDogJHtkYXRhLmJwX2FsaWFzZWR9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gc3RyLmpvaW4oXCJcXG5cIik7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGZ1bmN0aW9uIGZpZ3VyZU91dE1vZGUoZW5oYW5jZWROb2RlSWQpIHtcbiAgICAgICAgaWYgKGVuaGFuY2VkTm9kZUlkLm1hdGNoKC9ebnN1PS8pKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJuc3VOb2RlSURcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW5oYW5jZWROb2RlSWQubWF0Y2goL14obnM9Lio7KT8oaXxifHN8Zyk9LykpIHtcbiAgICAgICAgICAgIHJldHVybiBcIm5vZGVJZFwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbmhhbmNlZE5vZGVJZC5tYXRjaCgvXm5zYT0vKSkge1xuICAgICAgICAgICAgcmV0dXJuIFwiYWxpYXNlZE5vZGVJZFwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbmhhbmNlZE5vZGVJZC5tYXRjaCgvXihcXC98XFwuKVswLTldKzovKSkge1xuICAgICAgICAgICAgcmV0dXJuIFwiYnJvd3NlUGF0aFwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbmhhbmNlZE5vZGVJZC5tYXRjaCgvXihcXC98XFwuKS4qOi8pKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJicm93c2VQYXRoXCI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gZmlndXJlT3V0TWVuVUl0ZW1WYWx1ZShzdHIpIHtcbiAgICAgICAgY29uc3QgbW9kZSA9IGZpZ3VyZU91dE1vZGUoc3RyKTtcbiAgICAgICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICAgICAgICBjYXNlIFwibm9kZUlkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiblwiO1xuICAgICAgICAgICAgY2FzZSBcImFsaWFzZWROb2RlSWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJuYVwiO1xuICAgICAgICAgICAgY2FzZSBcIm5zdU5vZGVJRFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm5zdVwiO1xuICAgICAgICAgICAgY2FzZSBcImJyb3dzZVBhdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJiXCI7XG4gICAgICAgICAgICBjYXNlIFwiYWxpYXNlZEJyb3dzZVBhdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJhYlwiO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJ0XCI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gdG9Nb2RlKHYpIHtcbiAgICAgICAgbGV0IG1vZGU7XG4gICAgICAgIHN3aXRjaCAodikge1xuICAgICAgICAgICAgY2FzZSBcIm5cIjpcbiAgICAgICAgICAgICAgICBtb2RlID0gXCJub2RlSWRcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJuYVwiOlxuICAgICAgICAgICAgICAgIG1vZGUgPSBcImFsaWFzZWROb2RlSWRcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJuc3VcIjpcbiAgICAgICAgICAgICAgICBtb2RlID0gXCJuc3VOb2RlSURcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJiXCI6XG4gICAgICAgICAgICAgICAgbW9kZSA9IFwiYnJvd3NlUGF0aFwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcImFiXCI6XG4gICAgICAgICAgICAgICAgbW9kZSA9IFwiYWxpYXNlZEJyb3dzZVBhdGhcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbW9kZTtcbiAgICB9XG4gICAgZnVuY3Rpb24gZnJvbU1vZGUobW9kZSkge1xuICAgICAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJub2RlSWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJuXCI7XG4gICAgICAgICAgICBjYXNlIFwiYWxpYXNlZE5vZGVJZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm5hXCI7XG4gICAgICAgICAgICBjYXNlIFwibnN1Tm9kZUlEXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwibnN1XCI7XG4gICAgICAgICAgICBjYXNlIFwiYnJvd3NlUGF0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcImJcIjtcbiAgICAgICAgICAgIGNhc2UgXCJhbGlhc2VkQnJvd3NlUGF0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcImFiXCI7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBcInRcIjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBfY2FsbENoZWNrTm9kZUlkID0gKF9hLCBub2RlSWRfMSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hLCBub2RlSWRfMV0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1mb3Itbm9kZS1yZWRgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9jaGVja05vZGVJZGA7XG4gICAgICAgIGNvbnN0IGVJZCA9IGVuZHBvaW50Tm9kZS5pZDtcbiAgICAgICAgY29uc3QgbiA9IFJFRC5ub2Rlcy5ub2RlKGVJZCk7XG4gICAgICAgIGNvbnNvbGUubG9nKG4ubmFtZXNwYWNlQWxpYXNlcyk7XG4gICAgICAgIG4ubmFtZXNwYWNlQWxpYXNlcztcbiAgICAgICAgY29uc3QgbmFtZXNwYWNlQWxpYXNlcyA9IGVuZHBvaW50Tm9kZS5uYW1lc3BhY2VBbGlhc2VzO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICAgICAgbmFtZXNwYWNlQWxpYXNlcyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIHJldHVybiB7IGpzb24sIGRhdGEgfTtcbiAgICB9KTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9IChfYSwgbW9kZV8xLCAkaW5wdXRFbGVtZW50XzEsICRpbmZvXzEpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgbW9kZV8xLCAkaW5wdXRFbGVtZW50XzEsICRpbmZvXzFdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG1vZGUsICRpbnB1dEVsZW1lbnQsICRpbmZvKSB7XG4gICAgICAgIGNvbnN0IGVuaGFuY2VkTm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgeyBqc29uLCBkYXRhIH0gPSB5aWVsZCBfY2FsbENoZWNrTm9kZUlkKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBlbmhhbmNlZE5vZGVJZCk7XG4gICAgICAgIGNvbnN0IHNldE5vdGlmaWNhdGlvbiA9ICh0ZXh0LCBjbGFzc05hbWUpID0+IHtcbiAgICAgICAgICAgICRpbmZvLnRleHQodGV4dCkuYWRkQ2xhc3MoXCJzdGVyZml2ZS1pbmZvXCIpLmFkZENsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAkaW5mby5zaG93KCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAkaW5mby5yZW1vdmVDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgICAgICRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgIH0sIDMwMDApO1xuICAgICAgICB9O1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nO1xuICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiISFmYWlsdXJlISFcIiArIGVuaGFuY2VkTm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0b29sdGlwID0gbWFrZVRvb2x0aXAoanNvbik7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC5hdHRyKFwidGl0bGVcIiwgdG9vbHRpcCk7XG4gICAgICAgICAgICAgICAgLy8gZG8gc29tZXRoaW5nXG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWROb2RlSWQgPSBjaG9vc2VOb2RlSWQoanNvbiwgbW9kZSk7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoc2VsZWN0ZWROb2RlSWQpO1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCJHb29kXCIsIFwib2tcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChgJHtlbmhhbmNlZE5vZGVJZH1gKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oYCR7anNvbi5zdGF0dXNDb2RlfSAke2RhdGEuc3RhdHVzVGV4dH1gLCBcImZhaWx1cmVcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gZmV0Y2hDaGlsZHJlbigkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMSk7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQyID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUyKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlczogWy4uLmJyb3dzZVJlc3VsdDEucmVmZXJlbmNlcywgLi4uYnJvd3NlUmVzdWx0Mi5yZWZlcmVuY2VzXSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB0ZW1wbGF0ZVNUID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNTdWJ0eXBlXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHwgTm9kZUNsYXNzLk9iamVjdFR5cGUgfCBOb2RlQ2xhc3MuRGF0YVR5cGUgfCBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlLFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGZldGNoU3VidHlwZXMoJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZVNUKTtcbiAgICAgICAgICAgIHJldHVybiBicm93c2VSZXN1bHQxO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgbWFrZUVsZW1lbnQkMSA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuICAgICAgICBpZiAoIXJlZmVyZW5jZSB8fCAhcmVmZXJlbmNlLm5vZGVJZCkge1xuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSBmYS1lcnJvclwiIHN0eWxlPVwiY29sb3I6cmVkO1wiPjwvaT5ubyByZWZlcmVuY2UgITx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbiA9IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgdCA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHsgaWNvbiwgY29sb3IgfSA9IGdldEljb24ocmVmZXJlbmNlKTtcbiAgICAgICAgY29uc3QgdGl0bGUgPSBgKCR7cmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpfSkgJHsoKF9jID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5uYW1lKSB8fCAoKF9kID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2QudGV4dCkgfHwgXCJcIn1gO1xuICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaSBrZXk9XCIke3JlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKX1cIn0+PHNwYW4gY2xhc3M9XCJ0cmVlLXRleHRcIiB0aXRsZT0ke3RpdGxlfT48aSBjbGFzcz1cImZhICR7aWNvbn1cIiBzdHlsZT1cImNvbG9yOiR7Y29sb3J9O1wiPjwvaT4gJHt0fTwvc3Bhbj48dWw+PC91bD48L2xpPmApO1xuICAgICAgICAkZWxlbWVudC5hZGRDbGFzcyhcImV4cGFuZGFibGVcIik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJ2YWx1ZVwiLCBuKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgfTtcbiAgICBjb25zdCBmaW5kRWxlbWVudCA9IChub2RlSWQsICR0cmVlKSA9PiB7XG4gICAgICAgIHJldHVybiAkdHJlZS5maW5kKGBsaVtrZXk9XCIke25vZGVJZH1cIl1gKTtcbiAgICB9O1xuICAgIGNvbnN0IHNlbGVjdFNpbmdsZSA9ICh0aGF0LCAkbGkpID0+IHtcbiAgICAgICAgdGhhdC4kdHJlZS5maW5kKFwibGkgPiAudHJlZS10ZXh0XCIpLnJlbW92ZUNsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgICAgIC8vIGNsZWFyIGFsbCBzZWxlY3RlZCBpdGVtc1xuICAgICAgICAkbGkuZmluZChcIi50cmVlLXRleHQ6Zmlyc3RcIikuYWRkQ2xhc3MoXCJzZWxlY3RlZFwiKTtcbiAgICB9O1xuICAgIGNvbnN0IGF1dG9FeHBhbmQgPSAodGhhdCwgYnJvd3NlUGF0aCwgJHRyZWUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAvLyBleHBhbmQgdGhlIHRyZWUgdG8gc2hvdyB0aGUgbm9kZUlkXG4gICAgICAgIGxldCAkY3VycmVudCA9ICR0cmVlLmNoaWxkcmVuKFwiOmZpcnN0XCIpO1xuICAgICAgICBicm93c2VQYXRoLnJlbGF0aXZlUGF0aC5lbGVtZW50cyB8fCBbXTtcbiAgICAgICAgY29uc3Qgbm9kZUlkcyA9IGJyb3dzZVBhdGgubm9kZUlkcyB8fCBbXTtcbiAgICAgICAgaWYgKG5vZGVJZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBuIG9mIG5vZGVJZHMpIHtcbiAgICAgICAgICAgIGlmICgkY3VycmVudC5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIGV4cGFuZCBhbmQgc2VsZWN0IHRoZSByaWdodCBlbGVtZW50XG4gICAgICAgICAgICAgICAgeWllbGQgX2V4cGFuZExpKHRoYXQsICRjdXJyZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gZmluZEVsZW1lbnQobiwgJGN1cnJlbnQpO1xuICAgICAgICAgICAgaWYgKCRlbGVtZW50Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRjdXJyZW50ID0gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgc2VsZWN0U2luZ2xlKHRoYXQsICRjdXJyZW50KTtcbiAgICAgICAgc2Nyb2xsVG9MaSh0aGF0LiRkcm9wZG93biwgJGN1cnJlbnQpO1xuICAgIH0pO1xuICAgIGZ1bmN0aW9uIHNjcm9sbFRvTGkoJGNvbnRhaW5lciwgJHRhcmdldExpKSB7XG4gICAgICAgIC8vIEdldCB0aGUgcG9zaXRpb24gb2YgdGhlIHRhcmdldCBpdGVtIHJlbGF0aXZlIHRvIGl0cyBjb250YWluZXJcbiAgICAgICAgY29uc3QgbGlQb3MgPSAkdGFyZ2V0TGkucG9zaXRpb24oKS50b3A7XG4gICAgICAgIC8vIEdldCB0aGUgY3VycmVudCBzY3JvbGwgcG9zaXRpb24gb2YgdGhlIGNvbnRhaW5lclxuICAgICAgICBjb25zdCBjb250YWluZXJTY3JvbGxUb3AgPSAkY29udGFpbmVyLnNjcm9sbFRvcCgpO1xuICAgICAgICBpZiAoY29udGFpbmVyU2Nyb2xsVG9wID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgcG9zaXRpb24gdG8gc2Nyb2xsIHRvIChjdXJyZW50IHNjcm9sbCArIGl0ZW0ncyBwb3NpdGlvbilcbiAgICAgICAgLy8gQWRqdXN0IHRoaXMgY2FsY3VsYXRpb24gYmFzZWQgb24geW91ciBuZWVkc1xuICAgICAgICBjb25zdCBzY3JvbGxUbyA9IGNvbnRhaW5lclNjcm9sbFRvcCArIGxpUG9zIC0gJGNvbnRhaW5lci5oZWlnaHQoKSAvIDIgKyAkdGFyZ2V0TGkuaGVpZ2h0KCkgLyAyO1xuICAgICAgICAvLyBTY3JvbGwgdGhlIGNvbnRhaW5lciB0byBlbnN1cmUgdGhlIGl0ZW0gaXMgdmlzaWJsZVxuICAgICAgICAkY29udGFpbmVyLmFuaW1hdGUoe1xuICAgICAgICAgICAgc2Nyb2xsVG9wOiBzY3JvbGxUbyxcbiAgICAgICAgfSwgNTAwKTsgLy8gQWRqdXN0IHRoZSBkdXJhdGlvbiAoNTAwbXMpIGFzIG5lZWRlZFxuICAgIH1cbiAgICBjb25zdCByZWFjaFNlbGVjdGlvbiA9ICh0aGF0LCBwYXJlbnROb2RlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gdGhhdC4kaW5wdXQudmFsKCk7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICByb290Tm9kZUlkOiBwYXJlbnROb2RlLm5vZGVJZCxcbiAgICAgICAgICAgIGlzVHlwZTogdGhhdC5vcHRpb25zLmlzVHlwZVJlZiB8fCBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICBjb25zdCBicm93c2VQYXRoID0geWllbGQgd2Fsa0JhY2t3YXJkKGRhdGEsIG9wdGlvbnMpO1xuICAgICAgICBpZiAoIWJyb3dzZVBhdGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB5aWVsZCBhdXRvRXhwYW5kKHRoYXQsIGJyb3dzZVBhdGgsIHRoYXQuJHRyZWUpO1xuICAgIH0pO1xuICAgIGZ1bmN0aW9uIF9mZXRjaERhdGFGb3JOb2RlKHRoYXQsICRub2RlLCBmZXRjaEZ1bmMsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJsb2FkaW5nXCIpKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgJG5vZGUuYXBwZW5kKCc8ZGl2IGNsYXNzPVwic3Bpbm5lclwiPjwvZGl2PicpO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgeyByZWZlcmVuY2VzIH0gPSB5aWVsZCBmZXRjaEZ1bmMoJG5vZGUsIGRhdGEpO1xuICAgICAgICAgICAgICAgIC8vIHNvcnQgcmVmZXJlbmNlICAgYnkgYnJvd3NlTmFtZVxuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXMuc29ydCgoYSwgYikgPT4geyB2YXIgX2EsIF9iOyByZXR1cm4gKCgoX2EgPSBhLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5uYW1lKSB8fCBcIlwiKS5sb2NhbGVDb21wYXJlKCgoX2IgPSBiLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCBcIlwiKTsgfSk7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCByZWZlcmVuY2Ugb2YgcmVmZXJlbmNlcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmZpbHRlciAmJiAhdGhhdC5vcHRpb25zLmZpbHRlcihyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50JDEocmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImZldGNoZWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoYDxsaT5lcnJvciAke2Vyci5tZXNzYWdlfTwvbGk+YCk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJcIiwgZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRub2RlLmZpbmQoXCIuc3Bpbm5lclwiKS5yZW1vdmUoKTtcbiAgICAgICAgICAgICRub2RlLnJlbW92ZUNsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1ha2VDb25uZWN0aW9uKHRoYXQpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICAgIGZ1bmN0aW9uIF9leHBhbmRMaSh0aGF0LCAkbGkpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgICAgIGNvbnN0IGYgPSAhdGhhdC5vcHRpb25zLmlzVHlwZVJlZiA/IGZldGNoQ2hpbGRyZW4gOiBmZXRjaFN1YnR5cGVzO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB5aWVsZCBfZmV0Y2hEYXRhRm9yTm9kZSh0aGF0LCAkbGksIGYsIGRhdGEpO1xuICAgICAgICAgICAgICAgIC8vIG1hcmsgYXMgZXhwYW5kZWRcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGRlZmF1bHRQYXJlbnROb2RlID0ge1xuICAgICAgICBicm93c2VOYW1lOiB7IG5hbWVzcGFjZUluZGV4OiAwLCBuYW1lOiBcIk9iamVjdHNcIiB9LFxuICAgICAgICBub2RlQ2xhc3M6IFwiT2JqZWN0XCIsXG4gICAgICAgIG5vZGVJZDogXCJucz0wO2k9ODVcIixcbiAgICAgICAgZGlzcGxheU5hbWU6IHsgdGV4dDogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgdHlwZURlZmluaXRpb246IEZvbGRlclR5cGUsXG4gICAgfTtcbiAgICBjb25zdCBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBbIFRlbXBlcmF0dXJlICBdXG4gICAgICAgICAqICAgKCB0b29sdGlwIDogKC9PYmplY3RzL015U2Vuc29yKSAobnM9MTtzPVRlbXBlcmF0dXJlKSlcbiAgICAgICAgICogWyArIFtGb2xkZXJdIE9iamVjdHNdXG4gICAgICAgICAqIFsgICAgIFtPYmplY3RdIE15U2Vuc29yXVxuICAgICAgICAgKiBbICAgICAoICkgW1ZhcmlhYmxlXSBUZW1wZXJhdHVyZV1cbiAgICAgICAgICovXG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUubm9kZUJyb3dzZXJcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZTogKCkgPT4gZGVmYXVsdFBhcmVudE5vZGUsXG4gICAgICAgICAgICAgICAgZmlsdGVyOiAoKSA9PiB0cnVlLFxuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICAgICAgaXNUeXBlUmVmOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNvbHZlUGFyZW50Tm9kZSgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQuX19wYXJlbnROb2RlID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHR5cGVvZiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLnBhcmVudE5vZGUuY2FsbCh0aGF0KSA6IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVzYyA9IHlpZWxkIGE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fX3BhcmVudE5vZGUgPSBkZXNjO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fX3BhcmVudE5vZGUgPSBhO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGF0Ll9fcGFyZW50Tm9kZSB8fCBkZWZhdWx0UGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNldCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgLy8gYWxzbyByZXNldCBwYXJlbnQgbm9kZVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdGhhdDtcbiAgICAgICAgICAgICAgICAgICAgYS5fX3BhcmVudE5vZGUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyZW50Tm9kZSA9IHlpZWxkIHRoaXMucmVzb2x2ZVBhcmVudE5vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudCQxKHBhcmVudE5vZGUpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuY3VycmVudFBhcmVudCA9IHBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdmVyaWZ5KG1vZGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgICAgIGludGVybmFsVmVyaWZ5KGRhdGEsIG1vZGUsIHRoYXQuJGlucHV0LCB0aGF0LiRpbmZvKS50aGVuKChzdWNjZXNzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJpbnB1dC1lcnJvclwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLnJlbW92ZUNsYXNzKFwiaW5wdXQtZXJyb3JcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfaGlkZU1lbnUobWVudSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9mZihcIm1vdXNlZG93bi5yZWQtdWktdHlwZWRJbnB1dC1jbG9zZS1wcm9wZXJ0eS1zZWxlY3RcIik7XG4gICAgICAgICAgICAgICAgbWVudS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgbWVudS5jc3Moe1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiYXV0b1wiLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChtZW51Lm9wdHMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdGVkID0gW107XG4gICAgICAgICAgICAgICAgICAgIG1lbnUuZmluZCgnaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdJykuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5wcm9wKFwiY2hlY2tlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkLnB1c2goJCh0aGlzKS5kYXRhKFwidmFsdWVcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgbWVudS5jYWxsYmFjayhzZWxlY3RlZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGF0LiRlbGVtZW50RGl2LmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgICAvL3h4IH0gZWxzZSBpZiAodGhpcy4kb3B0aW9uU2VsZWN0VHJpZ2dlci5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8veHggICAgIHRoYXQuJG9wdGlvblNlbGVjdFRyaWdnZXIudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlci50cmlnZ2VyKFwiZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGVNZW51KG1lbnVPcHRpb25zLCBvcHRzLCBjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgIHZhciB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBjb25zdCBtZW51ID0gJChcIjxkaXY+XCIpLmFkZENsYXNzKFwic3RlcmZpdmUtdHlwZWRJbnB1dC1vcHRpb25zIHN0ZXJmaXZlLW9ubGluZS1tZW51XCIpO1xuICAgICAgICAgICAgICAgIG1lbnUub3B0cyA9IG9wdHM7XG4gICAgICAgICAgICAgICAgbWVudS5jYWxsYmFjayA9IGNhbGxiYWNrO1xuICAgICAgICAgICAgICAgIG1lbnVPcHRpb25zLmZvckVhY2goKG9wdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG9wdCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3B0ID0geyB2YWx1ZTogb3B0LCBsYWJlbDogb3B0IH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmFyIG9wID0gJCgnPGEgaHJlZj1cIiNcIj48L2E+JykuYXR0cihcInZhbHVlXCIsIG9wdC52YWx1ZSkuYXBwZW5kVG8obWVudSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcHQubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wLnRleHQob3B0LmxhYmVsKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3B0LnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcC5wcm9wKFwidGl0bGVcIiwgb3B0LnRpdGxlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAob3B0Lmljb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcHQuaWNvbi5pbmRleE9mKFwiPFwiKSA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQob3B0Lmljb24pLnByZXBlbmRUbyhvcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChvcHQuaWNvbi5pbmRleE9mKFwiL1wiKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiPGk+XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M6IFwicmVkLXVpLXR5cGVkSW5wdXQtaWNvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogXCJtYXNrLWltYWdlOiB1cmwoXCIgKyBvcHQuaWNvbiArIFwiKTsgLXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoXCIgKyBvcHQuaWNvbiArIFwiKTtcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS5wcmVwZW5kVG8ob3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIjxpPlwiLCB7IGNsYXNzOiBcInJlZC11aS10eXBlZElucHV0LWljb24gXCIgKyBvcHQuaWNvbiB9KS5wcmVwZW5kVG8ob3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3AuY3NzKHsgcGFkZGluZ0xlZnQ6IFwiMThweFwiIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICghb3B0Lmljb24gJiYgIW9wdC5sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3AudGV4dChvcHQudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHZhciBjYjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdHMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNiID0gJCgnPGlucHV0IHR5cGU9XCJjaGVja2JveFwiPicpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNzcyhcInBvaW50ZXItZXZlbnRzXCIsIFwibm9uZVwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5kYXRhKFwidmFsdWVcIiwgb3B0LnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcmVwZW5kVG8ob3ApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLm9uKFwibW91c2Vkb3duXCIsIGZ1bmN0aW9uIChldnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG9wLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW9wdHMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhvcHQudmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX2hpZGVNZW51KG1lbnUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2IucHJvcChcImNoZWNrZWRcIiwgIWNiLnByb3AoXCJjaGVja2VkXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgbWVudS5jc3Moe1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBcIm5vbmVcIixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBtZW51Lm9uKFwia2V5ZG93blwiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5Q29kZSA9PT0gNDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRE9XTlxuICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5jaGlsZHJlbihcIjpmb2N1c1wiKS5uZXh0KCkudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGV2dC5rZXlDb2RlID09PSAzOCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBVUFxuICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5jaGlsZHJlbihcIjpmb2N1c1wiKS5wcmV2KCkudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGV2dC5rZXlDb2RlID09PSAyNykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRVNDQVBFXG4gICAgICAgICAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX2hpZGVNZW51KG1lbnUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbWVudTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkaXNhcm1DbGljazogZmFsc2UsXG4gICAgICAgICAgICBfc2hvd01lbnUobWVudSwgcmVsYXRpdmVUbykge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRpc2FybUNsaWNrKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzYXJtQ2xpY2sgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YXIgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdmFyIHBvcyA9IHJlbGF0aXZlVG8ub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgdmFyIGhlaWdodCA9IHJlbGF0aXZlVG8uaGVpZ2h0KCk7XG4gICAgICAgICAgICAgICAgdmFyIG1lbnVIZWlnaHQgPSBtZW51LmhlaWdodCgpO1xuICAgICAgICAgICAgICAgIHZhciB0b3AgPSBoZWlnaHQgKyBwb3MudG9wO1xuICAgICAgICAgICAgICAgIGlmICh0b3AgKyBtZW51SGVpZ2h0IC0gJChkb2N1bWVudCkuc2Nyb2xsVG9wKCkgPiAkKHdpbmRvdykuaGVpZ2h0KCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9wIC09IHRvcCArIG1lbnVIZWlnaHQgLSAkKHdpbmRvdykuaGVpZ2h0KCkgKyA1O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodG9wIDwgMCkge1xuICAgICAgICAgICAgICAgICAgICBtZW51LmhlaWdodChtZW51SGVpZ2h0ICsgdG9wKTtcbiAgICAgICAgICAgICAgICAgICAgdG9wID0gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbWVudS5jc3Moe1xuICAgICAgICAgICAgICAgICAgICB0b3A6IHRvcCArIFwicHhcIixcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogcG9zLmxlZnQgKyBcInB4XCIsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgbWVudS5zbGlkZURvd24oMTAwKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9kZWxheShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHVpU2VsZWN0LmFkZENsYXNzKFwicmVkLXVpLXR5cGVkSW5wdXQtZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwibW91c2Vkb3duLnJlZC11aS10eXBlZElucHV0LWNsb3NlLXByb3BlcnR5LXNlbGVjdFwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QobWVudSkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5faGlkZU1lbnUobWVudSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJChldmVudC50YXJnZXQpLmNsb3Nlc3QocmVsYXRpdmVUbykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5kaXNhcm1DbGljayA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX3Nob3dUeXBlTWVudSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGlzLl9zaG93TWVudSh0aGF0LiRtZW51LCB0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHR5cGUgPSB0aGF0LnNlbGVjdGVkTWVudUl0ZW07XG4gICAgICAgICAgICAgICAgdmFyIHNlbGVjdGVkID0gdGhhdC4kbWVudS5maW5kKFwiW3ZhbHVlPSdcIiArIHR5cGUgKyBcIidcIik7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkLnRyaWdnZXIoXCJmb2N1c1wiKTtcbiAgICAgICAgICAgICAgICB9LCAxMjApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9pbml0TWVudSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyLmF0dHIoXCJ0YWJpbmRleFwiLCAtMSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlci5vbihcIm1vdXNlZG93bi5yZWQtdWktdHlwZWRJbnB1dC1mb2N1cy1ibG9ja1wiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICh0aGF0LiRtZW51KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJG1lbnUucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIGZhLWlkLWNhcmRcbiAgICAgICAgICAgICAgICBjb25zdCB0eXBlTGlzdCA9IFtcbiAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogXCJ0ZXh0XCIsIHZhbHVlOiBcInRcIiwgdGl0bGU6IFwiVmFsdWUgaXMgbm90IHZlcmlmaWVkXCIsIGljb246ICc8aSBjbGFzcz1cImZhIGZhLWZvbnRcIi9pPiAnIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIm1zZy5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIm1zZ1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwibm9kZSBpZCBvciAgYnJvd3NlIHBhdGggY29tZXMgZnJvbSBpbmplY3RlZCBtc2cgcGFyYW1ldGVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS1lbnZlbG9wZS1vcGVuLW9cIi8+JyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogXCJOb2RlSWRcIiwgdmFsdWU6IFwiblwiLCBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS10YWdcIi8+MSAmbmJzcDsgJyB9LFxuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiBcIkFsaWFzZWQgTm9kZUlkXCIsIHZhbHVlOiBcIm5hXCIsIGljb246ICc8aSBjbGFzcz1cImZhIGZhLWJvb2ttYXJrXCIvPiZuYnNwOyAnIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6IFwiTm9kZUlkIHdpdGggbmFtZXNwYWNlIFVyblwiLCB2YWx1ZTogXCJuc3VcIiwgaWNvbjogJzxpIGNsYXNzPVwiZmEgZmEtaWQtY2FyZFwiLz4mbmJzcDsgJyB9LFxuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiBcIkJyb3dzZVBhdGhcIiwgdmFsdWU6IFwiYlwiLCBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS10YWdcIi8+PGkgY2xhc3M9XCJmYSBmYS1maWdodGVyLWpldFwiLz4mbmJzcDsnIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBcIkFsaWFzZWQgQnJvd3NlIFBhdGhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcImFiXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS1ib29rbWFya1wiLz48aSBjbGFzcz1cImZhIGZhLWZpZ2h0ZXItamV0XCIvPiZuYnNwOycsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICBjb25zdCBhID0gZmlndXJlT3V0TWVuVUl0ZW1WYWx1ZSh0aGF0LiRpbnB1dC52YWwoKSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZSA9IHR5cGVMaXN0LmZpbmQoKHgpID0+IHgudmFsdWUgPT09IGEpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdExhYmVsLmVtcHR5KCkuYXBwZW5kKGA8c3BhbiB0aXRsZT0keyhlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUudGl0bGUpIHx8IFwiXCJ9PiZuYnNwOyAkeyhlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUuaWNvbikgfHwgXCJcIn08L3NwYW4+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC5zZWxlY3RlZE1lbnVJdGVtID0gYTtcbiAgICAgICAgICAgICAgICBjb25zdCB0dCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kbWVudSA9IHRoaXMuX2NyZWF0ZU1lbnUodHlwZUxpc3QsIHt9LCAodikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb2RlID0gdG9Nb2RlKHYpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gb24gTWVudSBzZWxlY3RlZCAhXG4gICAgICAgICAgICAgICAgICAgICAgICB0dC52ZXJpZnkobW9kZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IHR5cGVMaXN0LmZpbmQoKHgpID0+IHgudmFsdWUgPT09IHYpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LnNlbGVjdGVkTWVudUl0ZW0gPSB2O1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RMYWJlbC5lbXB0eSgpLmFwcGVuZChgPHNwYW4gdGl0bGU9JHsoZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLnRpdGxlKSB8fCBcIlwifT4mbmJzcDsgJHsoZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLmljb24pIHx8IFwiXCJ9PC9zcGFuPmApO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJG1lbnUuYXBwZW5kVG8oZG9jdW1lbnQuYm9keSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kbWVudS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlci5zaG93KCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbW9kZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICByZXR1cm4gdG9Nb2RlKHRoYXQuc2VsZWN0ZWRNZW51SXRlbSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0TW9kZShtb2RlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgY29uc3QgcyA9IGZyb21Nb2RlKG1vZGUpO1xuICAgICAgICAgICAgICAgIHRoYXQuc2VsZWN0ZWRNZW51SXRlbSA9IHM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5jc3MoXCJib3JkZXJcIiwgXCJub25lXCIpO1xuICAgICAgICAgICAgICAgIC8vIHRoYXQuJGlucHV0LmFkZENsYXNzKFwicmVkLXVpLXR5cGVkSW5wdXRcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kZWxlbWVudERpdiA9IHRoYXQuJGlucHV0LndyYXAoXCI8ZGl2PlwiKS5wYXJlbnQoKS5hZGRDbGFzcyhcIm1haW4td3JhcHBlclwiKTtcbiAgICAgICAgICAgICAgICAvLyAjcmVnaW9uIENvbWJvIGJyb3dzZXJcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21ibyA9ICQoXCI8ZGl2Lz5cIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJzdGVyZml2ZS1jb21iby1ib3hcIik7XG4gICAgICAgICAgICAgICAgLy8gdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJyZWQtdWktdHlwZWRJbnB1dC1pbnB1dC13cmFwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gYWRkIGJ1dHRvbiBvbiB0aGUgcmlnaHQgc2lkZVxuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gdG9nZ2xlVHJlZUJ0blxuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uIHRpdGxlPVwib3BlbiBPUENVQSBBZGRyZXNzU3BhY2UgQnJvd3NlclwiPjxpIGNsYXNzPVwiZmEgZmEtc2l0ZW1hcFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hZnRlcih0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5lZWRUb1JlYWNoU2VsZWN0aW9uID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyZWUgd2lkZ2V0IGlzIGdvaW5nIHRvIGJlY29tZSB2aXNpYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50Tm9kZSA9IHlpZWxkIHRoYXQucmVzb2x2ZVBhcmVudE5vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAhPT0gdGhhdC5jdXJyZW50UGFyZW50IHx8ICgoX2EgPSB0aGF0LmN1cnJlbnRQYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ub2RlSWQpICE9PSBwYXJlbnROb2RlLm5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB0aGF0LnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRUb1JlYWNoU2VsZWN0aW9uID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbmVlZFRvUmVhY2hTZWxlY3Rpb24gJiYgKHlpZWxkIHJlYWNoU2VsZWN0aW9uKHRoYXQsIHBhcmVudE5vZGUpKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gdmVyaWZ5QnRuXG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuID0gJChgPGJ1dHRvbiB0aXRsZT1cInZlcmlmeSBub2RlSWQgb3IgYnJvd3NlUGF0aFwiPjxpIGNsYXNzPVwiZmEgZmEtcmVmcmVzaFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hZnRlcih0aGF0LiR2ZXJpZnlCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0bi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9kZSA9IHRoYXQubW9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIW1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnZlcmlmeShtb2RlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgICAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgICAgICAgICAgICAgIGNvbnN0IG5vcm1hbGl6ZUlucHV0ID0gKGlucHV0KSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBsZXQgbW9kZSA9IHRoYXQubW9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIW1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbm5lY3Rpb25EYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZGF0YSwganNvbiB9ID0geWllbGQgX2NhbGxDaGVja05vZGVJZChjb25uZWN0aW9uRGF0YSwgaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChqc29uLnN0YXR1c0NvZGUubWF0Y2goL0dvb2QvKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWROb2RlSWQgPSBjaG9vc2VOb2RlSWQoanNvbiwgbW9kZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC52YWwoc2VsZWN0ZWROb2RlSWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgICAgIC8vIGNyZWF0ZSB0aGUgcHJlcGVuZGVkIGJ1dHRvblxuICAgICAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdWlTZWxlY3QgPSAkKFwiPGRpdj5cIik7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmJlZm9yZSh0aGF0LiR1aVNlbGVjdCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdFRyaWdnZXIgPSAkKCc8YnV0dG9uIHR5cGU9XCJidXR0b25cIiB0YWJpbmRleD1cIjBcIj48L2J1dHRvbj4nKS5wcmVwZW5kVG8odGhhdC4kdWlTZWxlY3QpO1xuICAgICAgICAgICAgICAgICAgICAkKCc8aSBjbGFzcz1cInJlZC11aS10eXBlZElucHV0LWljb24gZmEgZmEtY2FyZXQtZG93blwiPjwvaT4nKS50b2dnbGUodHJ1ZSkuYXBwZW5kVG8odGhhdC4kc2VsZWN0VHJpZ2dlcik7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdFRyaWdnZXIub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX3Nob3dUeXBlTWVudSgpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlclxuICAgICAgICAgICAgICAgICAgICAgICAgLm9uKFwia2V5ZG93blwiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleUNvZGUgPT09IDQwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRG93blxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX3Nob3dUeXBlTWVudSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLm9uKFwiZm9jdXNcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kdWlTZWxlY3QuYWRkQ2xhc3MoXCJyZWQtdWktdHlwZWRJbnB1dC1mb2N1c1wiKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5vbihcImJsdXJcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFyIG9wdCA9IHRoYXQudHlwZU1hcFt0aGF0LnByb3BlcnR5VHlwZV07XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiAob3B0Lmhhc1ZhbHVlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kdWlTZWxlY3QucmVtb3ZlQ2xhc3MoXCJyZWQtdWktdHlwZWRJbnB1dC1mb2N1c1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdExhYmVsID0gJCgnPHNwYW4gY2xhc3M9XCJyZWQtdWktdHlwZWRJbnB1dC10eXBlLWxhYmVsXCI+PC9zcGFuPicpLmFwcGVuZFRvKHRoYXQuJHNlbGVjdFRyaWdnZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLl9pbml0TWVudSgpO1xuICAgICAgICAgICAgICAgIGlmICghdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiLCBcImVudGVyIGEgbm9kZUlkIG9yIGEgYnJvd3NlUGF0aCBcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gdGVtcG9yYXR5IGluZm8gcGFuZWxcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvID0gJChgPGRpdiBjbGFzcz1cImluZm8tdGV4dFwiPjwvZGl2PmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgICAgICAgICAgLy8gI3JlZ2lvbiBkcm9wIGRvd24gdHJlZVxuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcInN0ZXJmaXZlLWRyb3Bkb3duXCIpLmhpZGUoKS5hcHBlbmRUbyh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApLmFwcGVuZFRvKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICAvLyB0aGF0LiRkcm9wZG93bi5zaG93KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICAgICAgICAgIC8vICNlbmRyZWdpb25cbiAgICAgICAgICAgICAgICBjb25zdCBpc09uTGVmdFNpemUgPSAoJGxpLCBldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVXaWR0aCA9IDIwOyAvLyBTZXQgd2lkdGggb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlSGVpZ2h0ID0gMjA7IC8vIFNldCBoZWlnaHQgb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFBvcyA9ICRsaS5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5wYWdlWCA+PSBlbGVtZW50UG9zLmxlZnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVggPD0gZWxlbWVudFBvcy5sZWZ0ICsgYmVmb3JlV2lkdGggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPj0gZWxlbWVudFBvcy50b3AgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPD0gZWxlbWVudFBvcy50b3AgKyBiZWZvcmVIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvZ2dsZUV4cGFuc2lvbiA9ICgkbGkpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9leHBhbmRMaSh0aGF0LCAkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUb2dnbGUgaXRzIGV4cGFuZGVkL2NvbGxhcHNlZCBzdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiZGJsY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPbkxlZnRTaXplKCRsaSwgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVFeHBhbnNpb24oJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gJGxpLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9ICRsaS5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUgJiYgIXRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zdCBpbnB1dCA9IGBbJHtkaXNwbGF5TmFtZX1dKCR7dmFsdWV9KWA7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbW9kZSA9IHRoYXQubW9kZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFtb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSA9IFwibm9kZUlkXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5zZXRNb2RlKG1vZGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplSW5wdXQodmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQuJGlucHV0LnZhbChpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdC4kaW5wdXQudmFsKGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT25MZWZ0U2l6ZSgkbGksIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRXhwYW5zaW9uKCRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0U2luZ2xlKHRoYXQsICRsaSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSB0aGUgcGFnZSB3aWxsIGhpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QodGhhdC4kY29tYm8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgbWFrZUVsZW1lbnQgPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBpZiAoIXJlZmVyZW5jZSkge1xuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSBmYS1lcnJvclwiIHN0eWxlPVwiY29sb3I6cmVkO1wiPjwvaT5ubyByZWZlcmVuY2UgITx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbiA9IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgbGV0IHQgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBsZXQgbnMgPSAoX2MgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLm5hbWVzcGFjZUluZGV4O1xuICAgICAgICB0ICs9IG5zICE9PSB1bmRlZmluZWQgJiYgcmVmZXJlbmNlLm5vZGVDbGFzcy5tYXRjaCgvVHlwZS8pID8gYCAobnM9JHtuc30pYCA6IFwiXCI7XG4gICAgICAgIGNvbnN0IHsgaWNvbiwgY29sb3IgfSA9IGdldEljb24ocmVmZXJlbmNlKTtcbiAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+YCk7XG4gICAgICAgIGlmIChyZWZlcmVuY2Uubm9kZUNsYXNzID09PSBcIlZhcmlhYmxlXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IGNoZWNrQm94ID0gJCgnPHNwYW4gY2xhc3M9XCJjdXN0b20tY2hlY2tib3ggdW5jaGVja2VkXCI+PC9zcGFuPicpO1xuICAgICAgICAgICAgJGVsZW1lbnQuYXBwZW5kKGNoZWNrQm94KTtcbiAgICAgICAgICAgIC8vIFRvZ2dsZSBjaGVja2JveCBzdGF0ZSB3aGVuIGNsaWNrZWRcbiAgICAgICAgICAgIGNoZWNrQm94Lm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGlmIChjaGVja0JveC5oYXNDbGFzcyhcInVuY2hlY2tlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICBjaGVja0JveC5yZW1vdmVDbGFzcyhcInVuY2hlY2tlZFwiKS5hZGRDbGFzcyhcImNoZWNrZWRcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjaGVja0JveC5yZW1vdmVDbGFzcyhcImNoZWNrZWRcIikuYWRkQ2xhc3MoXCJ1bmNoZWNrZWRcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgJGVsZW1lbnQuYXBwZW5kKCQoYDxpIGNsYXNzPVwiZmEgJHtpY29ufVwiIHN0eWxlPVwiY29sb3I6JHtjb2xvcn07XCI+PC9pPiR7dH08dWw+PC91bD5gKSk7XG4gICAgICAgICRlbGVtZW50LmFkZENsYXNzKFwiZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInZhbHVlXCIsIG4pO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICB9O1xuICAgIGNvbnN0IGRlY2xhcmVFdmVudEZpZWxkU2VsZWN0b3JXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBbIFRlbXBlcmF0dXJlICBdXG4gICAgICAgICAqICAgKCB0b29sdGlwIDogKC9PYmplY3RzL015U2Vuc29yKSAobnM9MTtzPVRlbXBlcmF0dXJlKSlcbiAgICAgICAgICogWyArIFtGb2xkZXJdIE9iamVjdHNdXG4gICAgICAgICAqIFsgICAgIFtPYmplY3RdIE15U2Vuc29yXVxuICAgICAgICAgKiBbICAgICAoICkgW1ZhcmlhYmxlXSBUZW1wZXJhdHVyZV1cbiAgICAgICAgICovXG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUuZXZlbnRGaWVsZFNlbGVjdG9yXCIsIHtcbiAgICAgICAgICAgIC8qIGRlZmF1bHQgb3B0aW9ucyAqL1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogKCkgPT4gKHsgZW5kcG9pbnQ6IFwib3BjLnRjcDovL29wY3VhZGVtby5zdGVyZml2ZS5jb206MjY1NDNcIiB9KSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludDogKCkgPT4gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX3BvcHVsYXRlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRmllbGQgPSBuZXcgU2V0KCgoX2EgPSB0aGF0LiRpbnB1dC52YWwoKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRvU3RyaW5nKCkuc3BsaXQoXCI7XCIpKSB8fCBbXSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0geWllbGQgZXh0cmFjdEV2ZW50RmllbGRJbmZvKGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbnN0YWxsVHJlZShyZXN1bHQsIHNlbGVjdGVkRmllbGQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9pbnN0YWxsVHJlZShyZXN1bHQsIHNlbGVjdEZpZWxkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIGlmICghcmVzdWx0LmV2ZW50cykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHJvb3QgPSByZXN1bHQuZXZlbnRzO1xuICAgICAgICAgICAgICAgIGNvbnN0ICRyb290RWxlbWVudCA9IG1ha2VFbGVtZW50KHJvb3QpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRyb290RWxlbWVudCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJlZml4ID0gXCJcIjtcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnN0YWxsQ2hpbGRyZW4oJHJvb3RFbGVtZW50LmNoaWxkcmVuKFwidWxcIiksIHJvb3QsIHByZWZpeCwgc2VsZWN0RmllbGQpO1xuICAgICAgICAgICAgICAgICRyb290RWxlbWVudC5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVWYWx1ZXMoc2VsZWN0RmllbGQpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9pbnN0YWxsQ2hpbGRyZW4oJHBhcmVudCwgcGFyZW50LCBwcmVmaXgsIHNlbGVjdGVkRmllbGQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBiID0gKHsgbmFtZSwgbmFtZXNwYWNlSW5kZXggfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAobmFtZXNwYWNlSW5kZXggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuYW1lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtuYW1lc3BhY2VJbmRleH06JHtuYW1lfWA7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHBhcmVudC5jaGlsZHJlbiB8fCBbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdWJUeXBlcyA9IHBhcmVudC5zdWJUeXBlcyB8fCBbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZHJlbkFuZFN1YlR5cGVzID0gWy4uLmNoaWxkcmVuLCAuLi5zdWJUeXBlc107XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbkFuZFN1YlR5cGVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQoY2hpbGQpO1xuICAgICAgICAgICAgICAgICAgICAkcGFyZW50LmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBwcmVmaXgyID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkLm5vZGVDbGFzcyA9PT0gXCJWYXJpYWJsZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJlZml4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4MiA9IHByZWZpeCArIFwiLlwiICsgYihjaGlsZC5icm93c2VOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeDIgPSBiKGNoaWxkLmJyb3dzZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJGVsZW1lbnQuYXR0cihcImRhdGEtdmFsdWVcIiwgcHJlZml4Mik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGFzQ2hpbGRyZW4gPSBjaGlsZC5jaGlsZHJlbiAmJiBjaGlsZC5jaGlsZHJlbi5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhc1N1YlR5cGVzID0gY2hpbGQuc3ViVHlwZXMgJiYgY2hpbGQuc3ViVHlwZXMubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWhhc0NoaWxkcmVuICYmICFoYXNTdWJUeXBlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGVsZW1lbnQucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwibm8tZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2luc3RhbGxDaGlsZHJlbigkZWxlbWVudC5jaGlsZHJlbihcInVsXCIpLCBjaGlsZCwgcHJlZml4Miwgc2VsZWN0ZWRGaWVsZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZWxlbWVudC5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfdXBkYXRlU2VsZWN0ZWRGaWVsZHMoKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRmllbGRzID0gbmV3IFNldCgoKF9hID0gdGhhdC4kaW5wdXQudmFsKCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50b1N0cmluZygpLnNwbGl0KFwiO1wiKSkgfHwgW10pO1xuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVZhbHVlcyhzZWxlY3RlZEZpZWxkcyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX3VwZGF0ZVZhbHVlcyhzZWxlY3RlZEZpZWxkcykge1xuICAgICAgICAgICAgICAgICQoXCIuc3RlcmZpdmUtdHJlZSBsaVwiKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJHRoaXMgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2ID0gJHRoaXMuYXR0cihcImRhdGEtdmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2ICYmIHNlbGVjdGVkRmllbGRzLmhhcyh2KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMuY2hpbGRyZW4oXCJzcGFuLmN1c3RvbS1jaGVja2JveFwiKS5yZW1vdmVDbGFzcyhcInVuY2hlY2tlZFwiKS5hZGRDbGFzcyhcImNoZWNrZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfc2V0SW5wdXRWYWx1ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0ID0gW107XG4gICAgICAgICAgICAgICAgLy8gY3Jhd2wgdGhlIHRyZWUgdG8gZmluZCBzZWxlY3RlZCBlbGVtZW50cyBhbmQgY3JlYXRlIGEgbGlzdCBvZiBCcm93c2VQYXRoXG4gICAgICAgICAgICAgICAgJChcIi5zdGVyZml2ZS10cmVlIGxpXCIpLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkdGhpcyA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBlbGVtZW50IGlzIHNlbGVjdGVkXG4gICAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy5jaGlsZHJlbihcInNwYW4uY3VzdG9tLWNoZWNrYm94LmNoZWNrZWRcIikubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdiA9ICR0aGlzLmF0dHIoXCJkYXRhLXZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHYpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC5wdXNoKHYpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBbLi4ubmV3IFNldChsaXN0KV0uc29ydCgpLmpvaW4oXCI7XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnZhbCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0ID0gdGhpcy5lbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvID0gJChcIjxkaXYvPlwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcInN0ZXJmaXZlLWNvbWJvLWJveFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRbMF0ucGFyZW50RWxlbWVudC5yZXBsYWNlQ2hpbGQodGhhdC4kY29tYm9bMF0sIHRoaXMuZWxlbWVudFswXSk7XG4gICAgICAgICAgICAgICAgLy8gdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGZsb2F0aW5nQnV0dG9ucy5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvZmZzZXQgPSB0aGF0LiRkcm9wZG93bi5vZmZzZXQoKTsgLy8gR2V0IHRoZSB0b3AtbGVmdCBjb3JuZXIgcG9zaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICRmbG9hdGluZ0J1dHRvbnMuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IGAke29mZnNldC50b3B9cHhgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiBgY2FsYygxMDAlIC0gJHtvZmZzZXQubGVmdCArIHRoYXQuJGRyb3Bkb3duLndpZHRoKCl9cHgpYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fcG9wdWxhdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX3VwZGF0ZVNlbGVjdGVkRmllbGRzKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZmxvYXRpbmdCdXR0b25zLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICghdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiLCBcImVudGVyIGEgbm9kZUlkIG9yIGEgYnJvd3NlUGF0aCBcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8gPSAkKGA8ZGl2IGNsYXNzPVwiaW5mby10ZXh0XCI+PC9kaXY+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24gPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwic3RlcmZpdmUtZHJvcGRvd25cIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgIC8vIGNvbnN0ICRzY3JvbGxhYmxlQ29udGVudCA9ICQoJzxkaXYgY2xhc3M9XCJzdGVyZml2ZS1kcm9wZG93bi1zY3JvbGxhYmxlLWNvbnRlbnRcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgICAgICBjb25zdCAkdmFsaWRhdGVCdXR0b24gPSAkKCc8c3BhbiBjbGFzcz1cInZhbGlkYXRlLWJ1dHRvblwiPuKclDwvc3Bhbj4nKTsgLy8gVXNlIGFueSBpY29uIG9yIHRleHQgaGVyZVxuICAgICAgICAgICAgICAgIGNvbnN0ICRjYW5jZWxCdXR0b24gPSAkKCc8c3BhbiBjbGFzcz1cImNhbmNlbC1idXR0b25cIj7inJY8L3NwYW4+Jyk7IC8vIFVzZSBhbnkgaWNvbiBvciB0ZXh0IGhlcmVcbiAgICAgICAgICAgICAgICBjb25zdCAkZmxvYXRpbmdCdXR0b25zID0gJCgnPGRpdiBjbGFzcz1cImZsb2F0aW5nLWJ1dHRvbnNcIj48L2Rpdj4nKS5hcHBlbmQoJHZhbGlkYXRlQnV0dG9uLCAkY2FuY2VsQnV0dG9uKTtcbiAgICAgICAgICAgICAgICAkZmxvYXRpbmdCdXR0b25zLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAvLyBEZWZpbmUgeW91ciB2YWxpZGF0aW9uIGFuZCBjYW5jZWxsYXRpb24gbG9naWNcbiAgICAgICAgICAgICAgICAkdmFsaWRhdGVCdXR0b24ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuX3NldElucHV0VmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICRjYW5jZWxCdXR0b24ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5mbyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlID0gJChgPHVsIGNsYXNzPVwic3RlcmZpdmUtdHJlZVwiPjwvdWw+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uZW1wdHkoKS5hcHBlbmQodGhhdC4kdHJlZSwgJGZsb2F0aW5nQnV0dG9ucyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkKHRoaXMpLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnBhZ2VYID49IGVsZW1lbnRQb3MubGVmdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWCA8PSBlbGVtZW50UG9zLmxlZnQgKyBiZWZvcmVXaWR0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA+PSBlbGVtZW50UG9zLnRvcCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA8PSBlbGVtZW50UG9zLnRvcCArIGJlZm9yZUhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJjbGlja2VkIG9uIGljb25cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImNsaWNrZWQgb24gXCIsICRsaS5kYXRhKFwidmFsdWVcIiksICRsaS5hdHRyKFwiY2xhc3NcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvZ2dsZSBpdHMgZXhwYW5kZWQvY29sbGFwc2VkIHN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5jaGlsZHJlbihcInVsXCIpLmNoaWxkcmVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsaWNraW5nIG91dHNpZGUgdGhlIHBhZ2Ugd2lsbCBoaWRlIHRoZSBkcm9wZG93blxuICAgICAgICAgICAgICAgICAgICBpZiAoISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KHRoYXQuJGNvbWJvKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuX3BvcHVsYXRlKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIGNvbnN0IGV4dHJhY3RFdmVudEZpZWxkSW5mbyA9IChfYSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCwgfSkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZm9yLW5vZGUtcmVkYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vZXh0cmFjdEV2ZW50VHlwZXNgO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyBldmVudHM6IG51bGwgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIGNvbnN0IGV2ZW50cyA9IHJlc3BvbnNlLmV2ZW50cztcbiAgICAgICAgcmV0dXJuIHsgZXZlbnRzIH07XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHRoZSBlbmRwb2ludCBhdHRyaWJ1dGVzIGNvbnRhaW5pbmc6XG4gICAgICogIC0gdGhlIGVuZHBvaW50LCBzZWN1cml0eU1vZGUsIHNlY3VyaXR5UG9saWN5LFxuICAgICAqICAtIHVzZXJJZGVudGl0eVR5cGUsXG4gICAgICogIC0gY3JlZGVudGlhbHNcbiAgICAgKiAgLSBuYW1lc3BhY2VBbGlhc2VzXG4gICAgICpcbiAgICAgKiBleHRyYWN0ZWQgZnJvbSB0aGUgdWkgd2lkZ2V0ICNub2RlLWlucHV0LWVuZHBvaW50XG4gICAgICovXG4gICAgY29uc3QgZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IHJlZE5vZGUgPSBSRUQubm9kZXMubm9kZShlbmRwb2ludElkKTtcbiAgICAgICAgaWYgKCFyZWROb2RlKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgLy8gY29uc3QgY3JlZGVudGlhbHMgPSBSRUQuKGVuZHBvaW50SWQpO1xuICAgICAgICAvLyB3ZSBuZWVkIHRvIHNhbml0aXplIGFuZCBleHRyYWN0IHRoZSBlbmRwb2ludCBhdHRyaWJ1dGVzIG9ubHkgKCBub3QgdGhlIG5vZGUtcmVkIHN0dWZmKVxuICAgICAgICBjb25zdCB7IGVuZHBvaW50LCBzZWN1cml0eU1vZGUsIHNlY3VyaXR5UG9saWN5LCB1c2VySWRlbnRpdHlUeXBlLCBjcmVkZW50aWFscywgbmFtZXNwYWNlQWxpYXNlcyB9ID0gcmVkTm9kZTtcbiAgICAgICAgY29uc3QgcmV0VmFsdWUgPSB7XG4gICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgbmFtZXNwYWNlQWxpYXNlcyxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHJldFZhbHVlO1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50TnIgPSBnZXRFbmRQb2ludEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgaWYgKCFlbmRwb2ludE5yKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5hbWVzcGFjZUFsaWFzZXMgPSBlbmRwb2ludE5yLm5hbWVzcGFjZUFsaWFzZXM7XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHsgbmFtZXNwYWNlQWxpYXNlcywgaWQ6IGVuZHBvaW50SWQgfSwgZW5kcG9pbnROcik7XG4gICAgfTtcbiAgICBjb25zdCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBnZXRFbmRwb2ludFBhcmFtZXRlcnMsXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGluc3RhbGxGZWVkYmFja1dpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLy8gcmV0dXJuO1xuICAgICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgICAgY29uc3QgdHJheUNvbnRlbnQgPSAkKFwiLnJlZC11aS10cmF5LWJvZHlcIik7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiaW5zdGFsbEZlZWRiYWNrV2lkZ2V0IFwiLCB0cmF5Q29udGVudC5sZW5ndGgpO1xuICAgICAgICBpZiAodHJheUNvbnRlbnQubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImluc3RhbGxpbmcgaWZyYW1lXCIpO1xuICAgICAgICAgICAgLy8gQ3JlYXRlIHRoZSBpZnJhbWUgZWxlbWVudFxuICAgICAgICAgICAgY29uc3QgaWZyYW1lID0gJChcIjxpZnJhbWU+PC9pZnJhbWU+XCIsIHtcbiAgICAgICAgICAgICAgICBzcmM6IFwiL29wY3VhLWZvci1ub2RlLXJlZC9zdXBwb3J0LWZyYW1lLmh0bWxcIixcbiAgICAgICAgICAgICAgICBzY3JvbGxpbmc6IFwibm9cIixcbiAgICAgICAgICAgICAgICBzdHlsZTogXCJiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O292ZXJmbG93OmhpZGRlbjtib3JkZXI6M3B4XCIsXG4gICAgICAgICAgICAgICAgYWxsb3d0cmFuc3BhcmVuY3k6IFwidHJ1ZVwiLFxuICAgICAgICAgICAgICAgIHdpZHRoOiBcIjE4MHB4XCIsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBcIjMwcHhcIixcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSBpZnJhbWUgdG8gdGhlIGZlZWRiYWNrIGVsZW1lbnRcbiAgICAgICAgICAgIHRyYXlDb250ZW50LmFwcGVuZChpZnJhbWUpO1xuICAgICAgICAgICAgLy8gUG9zaXRpb24gdGhlIGZlZWRiYWNrIGVsZW1lbnQgYXQgdGhlIGJvdHRvbSByaWdodCBvZiB0aGUgdHJheSBjb250ZW50XG4gICAgICAgICAgICBpZnJhbWUuY3NzKHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgICAgICAgIHJpZ2h0OiBcIjIwcHhcIixcbiAgICAgICAgICAgICAgICBib3R0b206IFwiMTZweFwiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgUkVELm5vZGVzLnJlZ2lzdGVyVHlwZShcIk9wY1VhLUNsaWVudDItTW9uaXRvckV2ZW50XCIsIHtcbiAgICAgICAgY2F0ZWdvcnk6IFwib3BjdWFcIixcbiAgICAgICAgY29sb3I6IFwiI0MwREVFRFwiLFxuICAgICAgICBhbGlnbjogXCJyaWdodFwiLFxuICAgICAgICBpY29uOiBcIm9wY3VhbG9nb2JpZy5wbmdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcIm1vbml0b3IgZXZlbnRzXCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBpbnB1dHM6IHsgdmFsdWU6IDEgfSxcbiAgICAgICAgICAgIG91dHB1dDogeyB2YWx1ZTogNCB9LFxuICAgICAgICAgICAgbmFtZTogeyB2YWx1ZTogXCJcIiB9LFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlLCB0eXBlOiBcIk9wY1VhLUVuZHBvaW50MlwiIH0sXG4gICAgICAgICAgICBzdWJzY3JpcHRpb246IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJcIixcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2YWxpZGF0ZTogKHZhbCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsID09PSBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN0YXJ0SW1tZWRpYXRlbHk6IHsgdmFsdWU6IHRydWUsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICAvLyB3ZSB1c2UgYSBkaWZmZXJlbnQgd2lkZ2V0IGZvciBlZGl0aW5nIHRoZSBub2RlSWQsIGJlY2F1c2UgdGhlIGJlaGF2aW9yXG4gICAgICAgICAgICAvLyBpcyBzcGVjaWZpYyB0byBtb25pdG9yLCBob3dldmVyIHByb3BlcnR5IHdpbGwgYmUgc3RvcmVkIGluIG5vZGVJZFxuICAgICAgICAgICAgbm9kZUlkOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogZmFsc2UsIHZhbGlkYXRlOiAoKSA9PiB0cnVlIH0sXG4gICAgICAgICAgICBzYW1wbGluZ0ludGVydmFsOiB7IHZhbHVlOiAxMDAwLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgZGlzY2FyZE9sZGVzdDogeyB2YWx1ZTogdHJ1ZSwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHF1ZXVlU2l6ZTogeyB2YWx1ZTogMTAsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBzZWxlY3RDbGF1c2VzOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgd2hlcmVDbGF1c2U6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICB9LFxuICAgICAgICAvLyBpbnB1dHM6LFxuICAgICAgICBvdXRwdXRzOiAyLCAvLyAyIG91dHB1dCwgc2Vjb25kIGZvciByYXcgbm9kZS1vcGN1YSBkaWFnbm9zdGljcyBvciBtb3JlIGNvbXBsZXRlIG1lc3NhZ2VcbiAgICAgICAgbGFiZWwoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lIHx8IFwiT1BDVUEgTW9uaXRvclwiO1xuICAgICAgICB9LFxuICAgICAgICBsYWJlbFN0eWxlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSA/IFwibm9kZV9sYWJlbF9pdGFsaWNcIiA6IFwiXCI7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHByZXBhcmUoKSB7XG4gICAgICAgICAgICBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQoKTtcbiAgICAgICAgICAgIGRlY2xhcmVFdmVudEZpZWxkU2VsZWN0b3JXaWRnZXQoKTtcbiAgICAgICAgICAgIGluc3RhbGxTdWJzY3JpcHRpb25TZWxlY3RvcihSRUQsIHRoaXMpO1xuICAgICAgICAgICAgaW5zdGFsbEZlZWRiYWNrV2lkZ2V0KCk7XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIEFjdGlvbiBNb25pdG9yIENvbW1vblxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIC0tIGluc3RhbGwgc3Vic2NyaXB0aW9uIHNlbGVjdGlvblxuICAgICAgICAgICAgJChcIm5vZGUtaW5wdXQtc3RhcnRJbW1lZGlhdGVseVwiKS5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hlY2tlZCA9ICQoXCIjbm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLnByb3AoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgICAgIGlmIChjaGVja2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1pbnB1dHNcIikudmFsKDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LWlucHV0c1wiKS52YWwoMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIEFjdGlvbiBNb25pdG9yXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgY29uc3QgJG5vZGVJZCA9ICQoXCIjbm9kZS1pbnB1dC1ub2RlSWRcIik7XG4gICAgICAgICAgICAkbm9kZUlkLm5vZGVCcm93c2VyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSwgeyBmaWx0ZXIobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJPYmplY3RcIjtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGlzU2VsZWN0YWJsZShub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiIC8qIHRvIGRvIHx8IG5vZGVEZXNjLmV2ZW50Tm90aWZpZXIgPT09IDEgKi87XG4gICAgICAgICAgICAgICAgfSB9KSk7XG4gICAgICAgICAgICAvLyAtLS0tLS0gaW5zdGFsbCBldmVudCBmaWVsZCBzZWxlY3RvclxuICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXdoZXJlQ2xhdXNlXCIpO1xuICAgICAgICAgICAgY29uc3QgJHNlbGVjdENsYXVzZXMgPSAkKFwiI25vZGUtaW5wdXQtc2VsZWN0Q2xhdXNlc1wiKTtcbiAgICAgICAgICAgICRzZWxlY3RDbGF1c2VzLmV2ZW50RmllbGRTZWxlY3RvcihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpKTtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0c2F2ZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0SW1tZWRpYXRlbHkgPSAkKFwiI25vZGUtaW5wdXQtc3RhcnRJbW1lZGlhdGVseVwiKS5wcm9wKFwiY2hlY2tlZFwiKTtcbiAgICAgICAgICAgIGlmIChzdGFydEltbWVkaWF0ZWx5KSB7XG4gICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXN0YXJ0SW1tZWRpYXRlbHlcIikudmFsKHN0YXJ0SW1tZWRpYXRlbHkgPyAwIDogMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dHMgPSBzdGFydEltbWVkaWF0ZWx5ID8gMCA6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtc3RhcnRJbW1lZGlhdGVseVwiKS52YWwoMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dHMgPSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
|
7
|
+
function _0x3845(_0x4d9ef6,_0xfe74f4){const _0xfc9bdf=_0xfc9b();return _0x3845=function(_0x384557,_0x351daf){_0x384557=_0x384557-0xc1;let _0x3a80fa=_0xfc9bdf[_0x384557];return _0x3a80fa;},_0x3845(_0x4d9ef6,_0xfe74f4);}function _0xfc9b(){const _0x32fea6=['preventDefault','sterfive.eventFieldSelector','$tree','toggleClass','$selectLabel','change','.red-ui-tray-body','val','verify','then','/extractEventTypes','none','30px','trigger','#node-input-endpoint','expandable','reset','DisplayName','\x22\x20style=\x22color:','DataType','#node-input-selectClauses','length','</li>','unchecked','prev','already\x20loading','body','statusText','Object','$inputGroup','red-ui-typedInput-icon\x20','<li>error\x20','input-error','message','$dropdown','slideDown','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20',':visible','width','prop','Aliased\x20Browse\x20Path','<option/>','isTypeRef','statusCode','View','currentParent','\x22}><span\x20class=\x22tree-text\x22\x20title=','endpointNode','subscriptions','clicked\x20on\x20icon','DarkOrange','msg','bp_aliased','red-ui-typedInput-focus','<div\x20class=\x22info-text\x22></div>','log','fetching\x20failed\x20with\x20error','push','Both','$elementDiv','browsePath','NodeClass','Objects','icon','span.custom-checkbox','<span\x20class=\x22red-ui-typedInput-type-label\x22></span>','nodeClass','status','node\x20id\x20or\x20\x20browse\x20path\x20comes\x20from\x20injected\x20msg\x20parameter','referenceTypeId','ns=0;i=34','<ul></ul>',');\x20-webkit-mask-image:\x20url(','fa-list-alt','<div\x20class=\x22floating-buttons\x22></div>','<li>','POST','428235CdUZnG','inputs','input-group','hide','mask-image:\x20url(','installFeedbackWidget\x20','#node-input-inputs','nsu','auto','position','left','nodes','3059AczQAK','fa-text-width',';\x22></i>','indexOf','parentNode','fetched','stopPropagation','28lQwKfz','ReferenceType','$combo','subscription','relativePath','offset','<i\x20class=\x22red-ui-typedInput-icon\x20fa\x20fa-caret-down\x22></i>','sort','mousedown.red-ui-typedInput-focus-block','ns=0;i=85','reference','subTypes','next','Forward','pageY','nodeId','remove','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','expanded','2028222LzALeO','widget','selectedMenuItem','VariableType','Good','16px','statusCode:\x20','off','nodeBrowser','fa-object-group','references','show','<div\x20class=\x22spinner\x22></div>','<div>','4902030YuAyZl','/walk-backward','fa-folder','background-color:transparent;overflow:hidden;border:3px','loading','events','registerType','#C0DEED','nsu\x20nodeId:\x20','_initMenu','/checkNodeId','nodeId_aliased','append','ns=0;i=40','target','#node-input-subscription','baseUrl','find','[value=\x27',':focus','value','SuppressedError','aliasedNodeId','_delay','_createMenu','Inverse','eventFieldSelector','376MsfDtX','#node-input-whereClause','element','expandable\x20expanded',';\x22></i>\x20','_updateSelectedFields','<i\x20class=\x22fa\x20fa-font\x22/i>\x20','err','_installChildren','Aliased\x20NodeId','disarmClick','after','options','opcualogobig.png','filter','$verifyBtn','join','<i\x20class=\x22fa\x20fa-envelope-open-o\x22/>','pageX','multiple','OPCUA\x20Monitor','OpcUa-Client2-MonitorEvent','focus','fa-sliders','catch','<i\x20class=\x22fa\x20fa-tag\x22/><i\x20class=\x22fa\x20fa-fighter-jet\x22/> ','browse\x20path:\x20','scrollTop','</span><ul></ul></li>','180px','nsuNodeID','typeDefinition','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','Invalid','#node-input-startImmediately','<button\x20title=\x22verify\x20nodeId\x20or\x20browsePath\x22><i\x20class=\x22fa\x20fa-refresh\x22></i></button>','namespaceAliases','BrowsePath','Organizes','red-ui-typedInput-icon','prependTo','.sterfive-tree\x20li','node','mousedown','hasClass','appendTo','ns=0;i=45','true','<i\x20class=\x22fa\x20fa-bookmark\x22/><i\x20class=\x22fa\x20fa-fighter-jet\x22/> ','px)','SeaGreen','requestedNodeId','$input','right','data','displayName','nodeId:\x20','selected','opts','<div/>','HasChild','18px','addClass','top','opc.tcp://opcuademo.sterfive.com:26543','blur','/opcua-for-node-red/support-frame.html','aliasedBrowsePath','resolveParentNode','</span>','<i\x20class=\x22fa\x20','NodeId\x20with\x20namespace\x20Urn','<span\x20class=\x22validate-button\x22>✔</span>','_showTypeMenu','function','Variable','ObjectType','sterfive-combo-box','HasProperty','mode','rgba(61,\x2060,\x204,\x200.525)','closest','localeCompare','text','tabindex','_installTree','aliased\x20browsePath:\x20','<i\x20class=\x22fa\x20fa-tag\x22/>1\x20 \x20','error','<button\x20title=\x22open\x20OPCUA\x20AddressSpace\x20Browser\x22><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','failure','empty','parent','checked','input[type=\x22checkbox\x22]','DodgerBlue','class','parentElement','title','installing\x20iframe','children','data-value','mousedown.red-ui-typedInput-close-property-select','sterfive-typedInput-options\x20sterfive-online-menu','$menu','Unspecified','li\x20>\x20.tree-text','fa-question','Value\x20is\x20not\x20verified','1478872LSkmYX','<button\x20type=\x22button\x22\x20tabindex=\x220\x22></button>','_updateValues','$toggleTreeBtn','msg.','assign','namespaceIndex','no-expandable','name','BrowseName','<i\x20class=\x22fa\x20fa-bookmark\x22/> \x20','application/json','animate','1177OzfbZT','> \x20','suppressed','keyCode','112700KwhuiK','Method','endpoint','span.custom-checkbox.checked','click','json','_setInputValue','$selectTrigger','bp_indexed','<ul\x20class=\x22sterfive-tree\x22></ul>','.tree-text:first','!!failure!!','setMode','9xHUIMA','clicked\x20on\x20','callback','<a\x20href=\x22#\x22></a>','keydown','wrap','\x20(ns=','$info','/opcua-for-node-red','removeClass','<i>','_populate','/browse','sterfive.nodeBrowser','nodeIds','TypeDefinition','label','replaceChild','fa-cog','862854mTdlav','HasSubtype','toggle',':first','<span\x20title=','node_label_italic','has','match','height','attr','_hideMenu','each','toString','css','browseResult','__parentNode','absolute','browseName','$uiSelect','calc(100%\x20-\x20','placeholder','isSelectable','IsForward','stringify','sterfive-dropdown','sterfive-info','li[key=\x22','aliased\x20NodeId:\x20','<span\x20class=\x22cancel-button\x22>✖</span>'];_0xfc9b=function(){return _0x32fea6;};return _0xfc9b();}(function(_0x659818,_0x55099f){const _0x43aeea=_0x3845,_0x20e11d=_0x659818();while(!![]){try{const _0x4b1a06=parseInt(_0x43aeea(0x10e))/0x1*(-parseInt(_0x43aeea(0x151))/0x2)+-parseInt(_0x43aeea(0x1ef))/0x3+-parseInt(_0x43aeea(0x115))/0x4*(-parseInt(_0x43aeea(0x102))/0x5)+parseInt(_0x43aeea(0x128))/0x6+-parseInt(_0x43aeea(0x136))/0x7+-parseInt(_0x43aeea(0x1be))/0x8*(parseInt(_0x43aeea(0x1dc))/0x9)+parseInt(_0x43aeea(0x1cf))/0xa*(parseInt(_0x43aeea(0x1cb))/0xb);if(_0x4b1a06===_0x55099f)break;else _0x20e11d['push'](_0x20e11d['shift']());}catch(_0x11f16f){_0x20e11d['push'](_0x20e11d['shift']());}}}(_0xfc9b,0x6094d),(function(){'use strict';const _0x55af36=_0x3845;function _0x338460(_0x48f804,_0x2b85df){const _0x8d79d=_0x3845,_0x55958e=$(_0x8d79d(0xc3)),_0x2e62c1=$(_0x8d79d(0x145)),_0x3712a3=()=>{const _0x366198=_0x8d79d,_0x2e5f47=_0x48f804[_0x366198(0x10d)]['node'](_0x55958e['val']());_0x2e62c1[_0x366198(0x1ac)]();if(!_0x2e5f47||!_0x2e5f47[_0x366198(0xe5)])return;for(const _0x57cd75 of _0x2e5f47[_0x366198(0xe5)]){const _0x3f0452=_0x57cd75[_0x366198(0x1c6)]||_0x57cd75['id'];$(_0x366198(0xde),{'value':_0x57cd75['id'],'label':_0x3f0452,'selected':_0x57cd75['id']===_0x2b85df[_0x366198(0x118)]})[_0x366198(0x1a4)](_0x3f0452)[_0x366198(0x17e)](_0x2e62c1);}};_0x3712a3(),_0x2e62c1['on'](_0x8d79d(0x211),()=>{_0x2b85df['subscription']=_0x2e62c1['val']();}),_0x55958e['on'](_0x8d79d(0x211),()=>{_0x3712a3();});}function _0x4b2f9e(_0x410d5c,_0x37d3f6,_0x558f69,_0x3638a1){function _0x535241(_0x339ed9){return _0x339ed9 instanceof _0x558f69?_0x339ed9:new _0x558f69(function(_0x3f349b){_0x3f349b(_0x339ed9);});}return new(_0x558f69||(_0x558f69=Promise))(function(_0x57bd1b,_0x3db530){const _0x3f91b7=_0x3845;function _0x1d5a4d(_0x2f50f6){const _0x3b5ea1=_0x3845;try{_0x3b2af9(_0x3638a1[_0x3b5ea1(0x121)](_0x2f50f6));}catch(_0x2fdbd3){_0x3db530(_0x2fdbd3);}}function _0x3b88c3(_0x45ab3a){try{_0x3b2af9(_0x3638a1['throw'](_0x45ab3a));}catch(_0x484a65){_0x3db530(_0x484a65);}}function _0x3b2af9(_0x4dc7e2){const _0x16be06=_0x3845;_0x4dc7e2['done']?_0x57bd1b(_0x4dc7e2[_0x16be06(0x14a)]):_0x535241(_0x4dc7e2[_0x16be06(0x14a)])['then'](_0x1d5a4d,_0x3b88c3);}_0x3b2af9((_0x3638a1=_0x3638a1['apply'](_0x410d5c,_0x37d3f6||[]))[_0x3f91b7(0x121)]());});}typeof SuppressedError===_0x55af36(0x19b)?SuppressedError:function(_0x308743,_0x3ee201,_0x33be56){const _0x1da467=_0x55af36;var _0x316729=new Error(_0x33be56);return _0x316729['name']=_0x1da467(0x14b),_0x316729[_0x1da467(0x1a9)]=_0x308743,_0x316729[_0x1da467(0x1cd)]=_0x3ee201,_0x316729;};const _0x34af49='ns=0;i=35',_0x528d97='ns=0;i=61',_0x5d276d='ns=0;i=47',_0x39dd9d='ns=0;i=46',_0x59efa0=_0x55af36(0xfb),_0x1ca5cf=_0x55af36(0x17f),_0x18ba7=_0x55af36(0x143);var _0x219990;(function(_0x5dfed2){const _0x23e538=_0x55af36;_0x5dfed2[_0x5dfed2[_0x23e538(0x122)]=0x0]=_0x23e538(0x122),_0x5dfed2[_0x5dfed2['Inverse']=0x1]=_0x23e538(0x14f),_0x5dfed2[_0x5dfed2['Both']=0x2]=_0x23e538(0xef),_0x5dfed2[_0x5dfed2[_0x23e538(0x172)]=0x3]=_0x23e538(0x172);}(_0x219990||(_0x219990={})));var _0x29ccc2;(function(_0x5b72cb){const _0x57ced9=_0x55af36;_0x5b72cb[_0x5b72cb[_0x57ced9(0x1ba)]=0x0]=_0x57ced9(0x1ba),_0x5b72cb[_0x5b72cb[_0x57ced9(0xd1)]=0x1]=_0x57ced9(0xd1),_0x5b72cb[_0x5b72cb[_0x57ced9(0x19c)]=0x2]='Variable',_0x5b72cb[_0x5b72cb[_0x57ced9(0x1d0)]=0x4]='Method',_0x5b72cb[_0x5b72cb[_0x57ced9(0x19d)]=0x8]=_0x57ced9(0x19d),_0x5b72cb[_0x5b72cb[_0x57ced9(0x12b)]=0x10]=_0x57ced9(0x12b),_0x5b72cb[_0x5b72cb['ReferenceType']=0x20]='ReferenceType',_0x5b72cb[_0x5b72cb[_0x57ced9(0xc8)]=0x40]=_0x57ced9(0xc8),_0x5b72cb[_0x5b72cb[_0x57ced9(0xe1)]=0x80]=_0x57ced9(0xe1);}(_0x29ccc2||(_0x29ccc2={})));var _0x37cf3b;(function(_0x11943b){const _0x21bee1=_0x55af36;_0x11943b[_0x11943b['Object']=0x1]=_0x21bee1(0xd1),_0x11943b[_0x11943b[_0x21bee1(0x19c)]=0x2]=_0x21bee1(0x19c),_0x11943b[_0x11943b[_0x21bee1(0x1d0)]=0x4]=_0x21bee1(0x1d0),_0x11943b[_0x11943b['ObjectType']=0x8]=_0x21bee1(0x19d),_0x11943b[_0x11943b[_0x21bee1(0x12b)]=0x10]=_0x21bee1(0x12b),_0x11943b[_0x11943b[_0x21bee1(0x116)]=0x20]='ReferenceType',_0x11943b[_0x11943b[_0x21bee1(0xc8)]=0x40]='DataType',_0x11943b[_0x11943b['View']=0x80]=_0x21bee1(0xe1);}(_0x37cf3b||(_0x37cf3b={})));var _0x4eef3c;(function(_0x41bdde){const _0x5764ed=_0x55af36;_0x41bdde[_0x41bdde[_0x5764ed(0x116)]=0x1]='ReferenceType',_0x41bdde[_0x41bdde[_0x5764ed(0x205)]=0x2]='IsForward',_0x41bdde[_0x41bdde[_0x5764ed(0xf2)]=0x4]=_0x5764ed(0xf2),_0x41bdde[_0x41bdde[_0x5764ed(0x1c7)]=0x8]=_0x5764ed(0x1c7),_0x41bdde[_0x41bdde[_0x5764ed(0xc6)]=0x10]=_0x5764ed(0xc6),_0x41bdde[_0x41bdde['TypeDefinition']=0x20]=_0x5764ed(0x1eb);}(_0x4eef3c||(_0x4eef3c={})));function _0x55bcd5(_0x51b318){const _0x44e0b3=_0x55af36;switch(_0x51b318){case _0x44e0b3(0x177):return _0x34af49;case _0x44e0b3(0x19f):return _0x39dd9d;case'HasComponent':return _0x5d276d;case _0x44e0b3(0x18d):return _0x59efa0;case'HasSubtype':return _0x1ca5cf;case'HasTypeDefinition':return _0x18ba7;}}const _0x4152a3=_0x71845a=>{const _0x48948c=_0x55af36;switch(_0x71845a[_0x48948c(0xf7)]){case _0x48948c(0xd1):if(_0x71845a[_0x48948c(0xfa)]===_0x34af49);if(_0x71845a[_0x48948c(0x170)]===_0x528d97||_0x71845a[_0x48948c(0xfa)]==='i=61')return{'icon':_0x48948c(0x138),'color':_0x48948c(0x1a1)};return{'icon':_0x48948c(0x131),'color':_0x48948c(0x183)};case _0x48948c(0x19c):if(_0x71845a['referenceTypeId']===_0x5d276d)return{'icon':_0x48948c(0xfe),'color':'SteelBlue'};else return _0x71845a[_0x48948c(0xfa)]===_0x39dd9d?{'icon':_0x48948c(0xfe),'color':_0x48948c(0x1b0)}:{'icon':_0x48948c(0xfe),'color':'CadetBlue'};case _0x48948c(0x1d0):return{'icon':_0x48948c(0x1ee),'color':'SandyBrown'};case _0x48948c(0x19d):return{'icon':'fa-object-group','color':_0x48948c(0xe7)};case _0x48948c(0x12b):return{'icon':_0x48948c(0x168),'color':_0x48948c(0xe7)};case _0x48948c(0xc8):return{'icon':_0x48948c(0x10f),'color':'CadetBlue'};}return{'icon':_0x48948c(0x1bc),'color':'grey'};},_0x104e8d=(_0x1da0bf,_0x2ae03a,_0x4c90ff)=>_0x4b2f9e(void 0x0,[_0x1da0bf,_0x2ae03a,_0x4c90ff],void 0x0,function*({endpointNode:_0x499274,endpoint:_0x4ab48c,baseUrl:_0xf25020},_0x1bfb57,_0x17b9c0){const _0x440ecc=_0x55af36,_0x558bae=_0xf25020+_0x440ecc(0x1e4),_0x4df60=_0x558bae+_0x440ecc(0x1e8),_0x736cf2=Object['assign'](Object[_0x440ecc(0x1c3)]({},_0x17b9c0),{'nodeId':_0x1bfb57,'resultMask':0x3f}),_0x1c73e5=yield fetch(_0x4df60,{'method':_0x440ecc(0x101),'body':JSON['stringify']({'endpointNode':_0x499274,'endpoint':_0x4ab48c,'browseDescription':_0x736cf2}),'headers':{'Content-Type':_0x440ecc(0x1c9)}});if(_0x1c73e5[_0x440ecc(0xf8)]!==0xc8)return console[_0x440ecc(0xec)](_0x440ecc(0xed),_0x1c73e5['status'],_0x1c73e5[_0x440ecc(0xd0)]),{'references':[]};const _0x18da00=yield _0x1c73e5[_0x440ecc(0x1d4)](),_0x4848c0=_0x18da00[_0x440ecc(0x1fd)]['references']||[];return{'references':_0x4848c0};}),_0x4fea98={'referenceTypeId':_0x55bcd5(_0x55af36(0x18d)),'includeSubtypes':!![],'browseDirection':_0x219990[_0x55af36(0x122)],'nodeClassMask':_0x29ccc2[_0x55af36(0x19c)]|_0x29ccc2[_0x55af36(0xd1)]|_0x29ccc2[_0x55af36(0x1d0)],'resultMask':0x3f},_0x105b7e={'referenceTypeId':_0x55bcd5(_0x55af36(0x177)),'includeSubtypes':!![],'browseDirection':_0x219990['Forward'],'nodeClassMask':_0x29ccc2[_0x55af36(0x19c)]|_0x29ccc2[_0x55af36(0xd1)]|_0x29ccc2['Method'],'resultMask':0x3f},_0x2c4b49=(_0x522749,_0x28d3f3)=>_0x4b2f9e(void 0x0,[_0x522749,_0x28d3f3],void 0x0,function*({endpointNode:_0x34c242,endpoint:_0x466b42,baseUrl:_0x4fd3a6},{nodeId:_0x47f7eb,rootNodeId:_0x14c13d,isType:_0x26a3ee}){const _0x44f864=_0x55af36,_0x3e1be9=_0x4fd3a6+_0x44f864(0x1e4),_0x30161c=_0x3e1be9+_0x44f864(0x137),_0x971046=yield fetch(_0x30161c,{'method':_0x44f864(0x101),'body':JSON['stringify']({'endpointNode':_0x34c242,'endpoint':_0x466b42,'nodeId':_0x47f7eb,'rootNodeId':_0x14c13d,'isType':_0x26a3ee}),'headers':{'Content-Type':_0x44f864(0x1c9)}});if(_0x971046[_0x44f864(0xf8)]!==0xc8)return null;const _0x201bb8=yield _0x971046['json']();return _0x201bb8[_0x44f864(0xf1)];}),_0x186882=(_0x44df5e,_0x3cfddd)=>{const _0xaa4134=_0x55af36;if(_0x44df5e[_0xaa4134(0xe0)]!==_0xaa4134(0x12c))return _0x44df5e[_0xaa4134(0x184)];switch(_0x3cfddd){case _0xaa4134(0xf1):return _0x44df5e[_0xaa4134(0x1d7)];case _0xaa4134(0x194):return _0x44df5e[_0xaa4134(0xe9)]||_0x44df5e['bp_indexed'];case _0xaa4134(0x14c):return _0x44df5e['nodeId_aliased']||_0x44df5e['nodeId_nsu'];case'nsuNodeID':return _0x44df5e['nodeId_nsu'];default:case'nodeId':return _0x44df5e['nodeId'];}},_0xeddb26=_0x4d735e=>{const _0x338216=_0x55af36;if(_0x4d735e[_0x338216(0xe0)]!==_0x338216(0x12c))return _0x338216(0x12e)+_0x4d735e[_0x338216(0xe0)];else{let _0x24cbcd=[];return _0x24cbcd[_0x338216(0xee)](_0x338216(0x189)+_0x4d735e['nodeId']),_0x24cbcd[_0x338216(0xee)](_0x338216(0x16b)+_0x4d735e[_0x338216(0x1d7)]),_0x24cbcd[_0x338216(0xee)]('node\x20class:\x20'+_0x29ccc2[_0x4d735e['nodeClass']]),_0x4d735e['nodeId_nsu']&&_0x24cbcd[_0x338216(0xee)](_0x338216(0x13e)+_0x4d735e['nodeId_nsu']),_0x4d735e[_0x338216(0x141)]&&_0x24cbcd[_0x338216(0xee)](_0x338216(0x20a)+_0x4d735e[_0x338216(0x141)]),_0x4d735e[_0x338216(0x1d7)]&&_0x24cbcd[_0x338216(0xee)](_0x338216(0x1a7)+_0x4d735e[_0x338216(0xe9)]),_0x24cbcd[_0x338216(0x161)]('\x0a');}};function _0x2ba4ac(_0x5e11fa){const _0x30b488=_0x55af36;if(_0x5e11fa[_0x30b488(0x1f6)](/^nsu=/))return _0x30b488(0x16f);if(_0x5e11fa[_0x30b488(0x1f6)](/^(ns=.*;)?(i|b|s|g)=/))return _0x30b488(0x124);if(_0x5e11fa[_0x30b488(0x1f6)](/^nsa=/))return _0x30b488(0x14c);if(_0x5e11fa['match'](/^(\/|\.)[0-9]+:/))return _0x30b488(0xf1);if(_0x5e11fa[_0x30b488(0x1f6)](/^(\/|\.).*:/))return'browsePath';}function _0x2838e3(_0x364936){const _0x4017ca=_0x55af36,_0x50c5c1=_0x2ba4ac(_0x364936);switch(_0x50c5c1){case _0x4017ca(0x124):return'n';case _0x4017ca(0x14c):return'na';case _0x4017ca(0x16f):return'nsu';case _0x4017ca(0xf1):return'b';case _0x4017ca(0x194):return'ab';default:return't';}}function _0x24ee96(_0x2dcae1){const _0x2357bc=_0x55af36;let _0x59963f;switch(_0x2dcae1){case'n':_0x59963f=_0x2357bc(0x124);break;case'na':_0x59963f=_0x2357bc(0x14c);break;case _0x2357bc(0x109):_0x59963f='nsuNodeID';break;case'b':_0x59963f=_0x2357bc(0xf1);break;case'ab':_0x59963f=_0x2357bc(0x194);break;}return _0x59963f;}function _0x12bf54(_0x519e07){const _0x39270d=_0x55af36;switch(_0x519e07){case'nodeId':return'n';case'aliasedNodeId':return'na';case _0x39270d(0x16f):return _0x39270d(0x109);case _0x39270d(0xf1):return'b';case'aliasedBrowsePath':return'ab';default:return't';}}const _0x5a94ec=(_0x205e70,_0x304c7b)=>_0x4b2f9e(void 0x0,[_0x205e70,_0x304c7b],void 0x0,function*({endpointNode:_0x1d4ac2,endpoint:_0x514dd5,baseUrl:_0x1ba6f5},_0x2c2233){const _0x4f92cb=_0x55af36,_0x176bd3=_0x1ba6f5+_0x4f92cb(0x1e4),_0x20232b=_0x176bd3+_0x4f92cb(0x140),_0x2db322=_0x1d4ac2['id'],_0x2eea4a=RED[_0x4f92cb(0x10d)][_0x4f92cb(0x17b)](_0x2db322);console['log'](_0x2eea4a[_0x4f92cb(0x175)]),_0x2eea4a[_0x4f92cb(0x175)];const _0x118eef=_0x1d4ac2[_0x4f92cb(0x175)],_0x9a7937=yield fetch(_0x20232b,{'method':'POST','body':JSON[_0x4f92cb(0x206)]({'endpointNode':_0x1d4ac2,'endpoint':_0x514dd5,'nodeId':_0x2c2233,'namespaceAliases':_0x118eef}),'headers':{'Content-Type':_0x4f92cb(0x1c9)}}),_0x1f9af9=yield _0x9a7937['json']();return{'json':_0x1f9af9,'data':_0x9a7937};}),_0x3772a1=(_0xda4b03,_0x5314f7,_0x2a402b,_0x44abdc)=>_0x4b2f9e(void 0x0,[_0xda4b03,_0x5314f7,_0x2a402b,_0x44abdc],void 0x0,function*({endpointNode:_0x148e45,endpoint:_0x15d404,baseUrl:_0x56b1a4},_0x404217,_0x2888a7,_0x2d7d68){const _0x14f56e=_0x55af36,_0x59565b=_0x2888a7[_0x14f56e(0x213)](),{json:_0x4e4266,data:_0x403f69}=yield _0x5a94ec({'endpointNode':_0x148e45,'endpoint':_0x15d404,'baseUrl':_0x56b1a4},_0x59565b),_0x405dd4=(_0x124443,_0xe820e4)=>{const _0x3fceee=_0x14f56e;_0x2d7d68['text'](_0x124443)[_0x3fceee(0x18f)](_0x3fceee(0x208))[_0x3fceee(0x18f)](_0xe820e4),_0x2d7d68[_0x3fceee(0x133)](),setTimeout(()=>{const _0x23ce0f=_0x3fceee;_0x2d7d68[_0x23ce0f(0x1e5)](_0xe820e4),_0x2d7d68[_0x23ce0f(0x105)]();},0xbb8);};if(_0x403f69[_0x14f56e(0xf8)]!==0xc8)return _0x405dd4(_0x14f56e(0x1da)+_0x59565b,_0x14f56e(0x1ab)),![];else{if(_0x4e4266['statusCode'][_0x14f56e(0x1f6)](/Good/)){const _0x14d35b=_0xeddb26(_0x4e4266);_0x2888a7['attr'](_0x14f56e(0x1b3),_0x14d35b);const _0x2a082d=_0x186882(_0x4e4266,_0x404217);return _0x2888a7[_0x14f56e(0x213)](_0x2a082d),_0x2888a7[_0x14f56e(0xc2)](_0x14f56e(0x211)),_0x405dd4(_0x14f56e(0x12c),'ok'),!![];}else return _0x2888a7[_0x14f56e(0x213)](''+_0x59565b),_0x405dd4(_0x4e4266['statusCode']+'\x20'+_0x403f69['statusText'],_0x14f56e(0x1ab)),![];}});function _0x439159(_0x28755d,_0x3437b2){return _0x4b2f9e(this,void 0x0,void 0x0,function*(){const _0x15be1e=_0x3845,_0x153882=_0x28755d[_0x15be1e(0x187)](_0x15be1e(0x14a)),_0x37a9c2=yield _0x104e8d(_0x3437b2,_0x153882,_0x4fea98),_0xfdaa9=yield _0x104e8d(_0x3437b2,_0x153882,_0x105b7e);return{'references':[..._0x37a9c2['references'],..._0xfdaa9[_0x15be1e(0x132)]]};});}const _0x27df3b={'referenceTypeId':_0x55bcd5(_0x55af36(0x1f0)),'includeSubtypes':!![],'browseDirection':_0x219990[_0x55af36(0x122)],'nodeClassMask':_0x29ccc2[_0x55af36(0x116)]|_0x29ccc2[_0x55af36(0x19d)]|_0x29ccc2['DataType']|_0x29ccc2['VariableType'],'resultMask':0x3f};function _0x30d99b(_0x1793a0,_0x7f66a0){return _0x4b2f9e(this,void 0x0,void 0x0,function*(){const _0x57c624=_0x3845,_0x5de744=_0x1793a0['data'](_0x57c624(0x14a)),_0x4ef015=yield _0x104e8d(_0x7f66a0,_0x5de744,_0x27df3b);return _0x4ef015;});}const _0x464dbd=_0x4107fa=>{const _0x5202dc=_0x55af36;var _0x45dcc2,_0x4c13c7,_0x32038a,_0x4d0082;if(!_0x4107fa||!_0x4107fa[_0x5202dc(0x124)]){const _0x87a18f=$(_0x5202dc(0x126));return _0x87a18f;}const _0x56db80=_0x4107fa[_0x5202dc(0x124)]['toString'](),_0x1cc73a=((_0x45dcc2=_0x4107fa[_0x5202dc(0x188)])===null||_0x45dcc2===void 0x0?void 0x0:_0x45dcc2[_0x5202dc(0x1a4)])||((_0x4c13c7=_0x4107fa[_0x5202dc(0x200)])===null||_0x4c13c7===void 0x0?void 0x0:_0x4c13c7['name'])||_0x4107fa[_0x5202dc(0x124)]['toString'](),{icon:_0x50046c,color:_0x2c0eb5}=_0x4152a3(_0x4107fa),_0x59dd3a='('+_0x4107fa[_0x5202dc(0x124)]['toString']()+')\x20'+(((_0x32038a=_0x4107fa[_0x5202dc(0x200)])===null||_0x32038a===void 0x0?void 0x0:_0x32038a[_0x5202dc(0x1c6)])||((_0x4d0082=_0x4107fa['displayName'])===null||_0x4d0082===void 0x0?void 0x0:_0x4d0082[_0x5202dc(0x1a4)])||''),_0x1473ec=$('<li\x20key=\x22'+_0x4107fa['nodeId'][_0x5202dc(0x1fb)]()+_0x5202dc(0xe3)+_0x59dd3a+'><i\x20class=\x22fa\x20'+_0x50046c+_0x5202dc(0xc7)+_0x2c0eb5+_0x5202dc(0x155)+_0x1cc73a+_0x5202dc(0x16d));return _0x1473ec[_0x5202dc(0x18f)](_0x5202dc(0xc4)),_0x1473ec[_0x5202dc(0x187)](_0x5202dc(0x14a),_0x56db80),_0x1473ec['data']('reference',_0x4107fa),_0x1473ec;},_0x4c1bff=(_0x43b1df,_0x367e7f)=>{const _0x461dc3=_0x55af36;return _0x367e7f[_0x461dc3(0x147)](_0x461dc3(0x209)+_0x43b1df+'\x22]');},_0xfc1ee9=(_0x402855,_0x314170)=>{const _0x3e189c=_0x55af36;_0x402855[_0x3e189c(0x20e)][_0x3e189c(0x147)](_0x3e189c(0x1bb))[_0x3e189c(0x1e5)](_0x3e189c(0x18a)),_0x314170[_0x3e189c(0x147)](_0x3e189c(0x1d9))[_0x3e189c(0x18f)](_0x3e189c(0x18a));},_0xa98b1=(_0x440a35,_0x3a6b21,_0x5dfdcf)=>_0x4b2f9e(void 0x0,void 0x0,void 0x0,function*(){const _0x31431c=_0x55af36;let _0x4f2cd9=_0x5dfdcf[_0x31431c(0x1b5)](_0x31431c(0x1f2));_0x3a6b21[_0x31431c(0x119)]['elements']||[];const _0x4db45c=_0x3a6b21[_0x31431c(0x1ea)]||[];if(_0x4db45c[_0x31431c(0xca)]===0x0)return;for(const _0x4f6ed5 of _0x4db45c){_0x4f2cd9[_0x31431c(0x17d)](_0x31431c(0xc4))&&(yield _0x34345d(_0x440a35,_0x4f2cd9));const _0x3ecb3a=_0x4c1bff(_0x4f6ed5,_0x4f2cd9);if(_0x3ecb3a[_0x31431c(0xca)]===0x0)return;_0x4f2cd9=_0x3ecb3a;}_0xfc1ee9(_0x440a35,_0x4f2cd9),_0x5ba3d5(_0x440a35[_0x31431c(0xd7)],_0x4f2cd9);});function _0x5ba3d5(_0x345530,_0x3ecbc8){const _0xbd25b2=_0x55af36,_0x30ad55=_0x3ecbc8[_0xbd25b2(0x10b)]()[_0xbd25b2(0x190)],_0x3c82d6=_0x345530[_0xbd25b2(0x16c)]();if(_0x3c82d6==undefined)return;const _0x3f41d4=_0x3c82d6+_0x30ad55-_0x345530[_0xbd25b2(0x1f7)]()/0x2+_0x3ecbc8[_0xbd25b2(0x1f7)]()/0x2;_0x345530[_0xbd25b2(0x1ca)]({'scrollTop':_0x3f41d4},0x1f4);}const _0x359f04=(_0x35096c,_0x183944)=>_0x4b2f9e(void 0x0,void 0x0,void 0x0,function*(){const _0x47e29a=_0x55af36,_0x49c62a=_0x35096c[_0x47e29a(0x185)][_0x47e29a(0x213)](),_0x4a0531={'nodeId':_0x49c62a,'rootNodeId':_0x183944[_0x47e29a(0x124)],'isType':_0x35096c[_0x47e29a(0x15d)][_0x47e29a(0xdf)]||![]},_0x3b898c=_0x1d7b99(_0x35096c),_0x43f64c=yield _0x2c4b49(_0x3b898c,_0x4a0531);if(!_0x43f64c)return;yield _0xa98b1(_0x35096c,_0x43f64c,_0x35096c[_0x47e29a(0x20e)]);});function _0x35f4ca(_0x1a70e9,_0x5dc061,_0x57c0e2,_0x50b776){return _0x4b2f9e(this,void 0x0,void 0x0,function*(){const _0x4c52c0=_0x3845;if(_0x5dc061[_0x4c52c0(0x17d)](_0x4c52c0(0x113))){console[_0x4c52c0(0xec)]('already\x20fetched');return;}if(_0x5dc061[_0x4c52c0(0x17d)](_0x4c52c0(0x13a))){console[_0x4c52c0(0xec)](_0x4c52c0(0xce));return;}_0x5dc061[_0x4c52c0(0x18f)](_0x4c52c0(0x13a)),_0x5dc061[_0x4c52c0(0x142)](_0x4c52c0(0x134));try{_0x5dc061[_0x4c52c0(0x1b5)]('ul')[_0x4c52c0(0x1ac)]();const {references:_0x35c86f}=yield _0x57c0e2(_0x5dc061,_0x50b776);_0x35c86f[_0x4c52c0(0x11c)]((_0x5d01c3,_0x50f80b)=>{const _0x25aa5b=_0x4c52c0;var _0x21aed0,_0x51a377;return(((_0x21aed0=_0x5d01c3[_0x25aa5b(0x200)])===null||_0x21aed0===void 0x0?void 0x0:_0x21aed0[_0x25aa5b(0x1c6)])||'')[_0x25aa5b(0x1a3)](((_0x51a377=_0x50f80b[_0x25aa5b(0x200)])===null||_0x51a377===void 0x0?void 0x0:_0x51a377[_0x25aa5b(0x1c6)])||'');});for(const _0x4cbb13 of _0x35c86f){if(_0x1a70e9[_0x4c52c0(0x15d)]['filter']&&!_0x1a70e9[_0x4c52c0(0x15d)][_0x4c52c0(0x15f)](_0x4cbb13))continue;const _0x33401a=_0x464dbd(_0x4cbb13);_0x5dc061[_0x4c52c0(0x1b5)]('ul')[_0x4c52c0(0x142)](_0x33401a);}_0x5dc061[_0x4c52c0(0x18f)]('fetched');}catch(_0x560c19){_0x5dc061[_0x4c52c0(0x1b5)]('ul')[_0x4c52c0(0x142)](_0x4c52c0(0xd4)+_0x560c19[_0x4c52c0(0xd6)]+_0x4c52c0(0xcb)),console[_0x4c52c0(0xec)](_0x4c52c0(0x158),_0x560c19);}_0x5dc061[_0x4c52c0(0x147)]('.spinner')['remove'](),_0x5dc061[_0x4c52c0(0x1e5)](_0x4c52c0(0x13a));});}function _0x1d7b99(_0x5575ad){const _0x2d0955=_0x55af36,_0x3a0b86={'baseUrl':_0x5575ad[_0x2d0955(0x15d)][_0x2d0955(0x146)],'endpointNode':typeof _0x5575ad[_0x2d0955(0x15d)][_0x2d0955(0xe4)]===_0x2d0955(0x19b)?_0x5575ad[_0x2d0955(0x15d)][_0x2d0955(0xe4)]():_0x5575ad[_0x2d0955(0x15d)][_0x2d0955(0xe4)],'endpoint':typeof _0x5575ad[_0x2d0955(0x15d)][_0x2d0955(0x1d1)]===_0x2d0955(0x19b)?_0x5575ad[_0x2d0955(0x15d)][_0x2d0955(0x1d1)]():_0x5575ad['options']['endpoint']};return _0x3a0b86;}function _0x34345d(_0x39e04b,_0x5f5bf9){return _0x4b2f9e(this,void 0x0,void 0x0,function*(){const _0x2e2186=_0x3845;if(_0x5f5bf9[_0x2e2186(0x17d)](_0x2e2186(0x113))){_0x5f5bf9[_0x2e2186(0x1e5)](_0x2e2186(0xc4))[_0x2e2186(0x18f)](_0x2e2186(0x127)),_0x5f5bf9[_0x2e2186(0x1b5)]('ul')[_0x2e2186(0x1f1)]();return;}const _0x4ad6e6=_0x1d7b99(_0x39e04b),_0x4722a3=!_0x39e04b[_0x2e2186(0x15d)][_0x2e2186(0xdf)]?_0x439159:_0x30d99b;try{yield _0x35f4ca(_0x39e04b,_0x5f5bf9,_0x4722a3,_0x4ad6e6),_0x5f5bf9[_0x2e2186(0x1e5)]('expandable')[_0x2e2186(0x18f)](_0x2e2186(0x127));}catch(_0x5dfa58){_0x5f5bf9[_0x2e2186(0x1e5)](_0x2e2186(0xc4))[_0x2e2186(0x18f)](_0x2e2186(0x127)),console[_0x2e2186(0xec)]('error',_0x5dfa58);}});}const _0x531039={'browseName':{'namespaceIndex':0x0,'name':'Objects'},'nodeClass':_0x55af36(0xd1),'nodeId':_0x55af36(0x11e),'displayName':{'text':_0x55af36(0xf3)},'typeDefinition':_0x528d97},_0x5dbf11=()=>{const _0x35cc58=_0x55af36;$[_0x35cc58(0x129)](_0x35cc58(0x1e9),{'options':{'endpointNode':()=>({'endpoint':_0x35cc58(0x191)}),'endpoint':()=>undefined,'parentNode':()=>_0x531039,'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x4b2f9e(this,void 0x0,void 0x0,function*(){const _0xb3cfa3=_0x3845,_0x47d7ce=this;if(_0x47d7ce[_0xb3cfa3(0x1fe)]==undefined){const _0x913555=typeof _0x47d7ce[_0xb3cfa3(0x15d)][_0xb3cfa3(0x112)]===_0xb3cfa3(0x19b)?_0x47d7ce['options'][_0xb3cfa3(0x112)]['call'](_0x47d7ce):_0x47d7ce['options']['parentNode'];if(_0x913555 instanceof Promise){const _0x5953d8=yield _0x913555;_0x47d7ce[_0xb3cfa3(0x1fe)]=_0x5953d8;}else _0x47d7ce['__parentNode']=_0x913555;}return _0x47d7ce[_0xb3cfa3(0x1fe)]||_0x531039;});},'reset'(){return _0x4b2f9e(this,void 0x0,void 0x0,function*(){const _0x577845=_0x3845,_0x40f9a1=this,_0x34e7d1=_0x40f9a1;_0x34e7d1[_0x577845(0x1fe)]=undefined,_0x40f9a1[_0x577845(0x20e)][_0x577845(0x1ac)]();const _0x38c259=yield this[_0x577845(0x195)](),_0x4b0ba6=_0x464dbd(_0x38c259);_0x40f9a1[_0x577845(0x20e)][_0x577845(0x142)](_0x4b0ba6),_0x40f9a1['currentParent']=_0x38c259;});},'verify'(_0x223ca0){const _0x43ce69=_0x35cc58,_0x18ba39=this,_0x446a20=_0x1d7b99(_0x18ba39);_0x3772a1(_0x446a20,_0x223ca0,_0x18ba39[_0x43ce69(0x185)],_0x18ba39['$info'])['then'](_0x216959=>{const _0x321615=_0x43ce69;!_0x216959?_0x18ba39[_0x321615(0x117)][_0x321615(0x18f)](_0x321615(0xd5)):_0x18ba39[_0x321615(0x117)][_0x321615(0x1e5)](_0x321615(0xd5));});},'_hideMenu'(_0x3c839a){const _0x5cc10e=_0x35cc58,_0x3cc9d9=this;$(document)[_0x5cc10e(0x12f)]('mousedown.red-ui-typedInput-close-property-select'),_0x3c839a[_0x5cc10e(0x105)](),_0x3c839a[_0x5cc10e(0x1fc)]({'height':_0x5cc10e(0x10a)});if(_0x3c839a[_0x5cc10e(0x18b)][_0x5cc10e(0x164)]){var _0x265d6f=[];_0x3c839a[_0x5cc10e(0x147)](_0x5cc10e(0x1af))[_0x5cc10e(0x1fa)](function(){const _0x310d52=_0x5cc10e;$(this)['prop'](_0x310d52(0x1ae))&&_0x265d6f['push']($(this)[_0x310d52(0x187)]('value'));}),_0x3c839a[_0x5cc10e(0x1de)](_0x265d6f);}_0x3cc9d9[_0x5cc10e(0xf0)]['is'](_0x5cc10e(0xda))?_0x3cc9d9[_0x5cc10e(0x185)][_0x5cc10e(0xc2)](_0x5cc10e(0x167)):_0x3cc9d9['$selectTrigger']['trigger'](_0x5cc10e(0x167));},'_createMenu'(_0x5e8884,_0x35c6e7,_0x327003){const _0x2dc94f=_0x35cc58;var _0x226c23=this;const _0x3125f9=$(_0x2dc94f(0x135))[_0x2dc94f(0x18f)](_0x2dc94f(0x1b8));return _0x3125f9[_0x2dc94f(0x18b)]=_0x35c6e7,_0x3125f9[_0x2dc94f(0x1de)]=_0x327003,_0x5e8884['forEach'](_0x348726=>{const _0x2c3f22=_0x2dc94f;typeof _0x348726==='string'&&(_0x348726={'value':_0x348726,'label':_0x348726});var _0x52cf4a=$(_0x2c3f22(0x1df))[_0x2c3f22(0x1f8)](_0x2c3f22(0x14a),_0x348726['value'])[_0x2c3f22(0x17e)](_0x3125f9);_0x348726['label']&&_0x52cf4a[_0x2c3f22(0x1a4)](_0x348726[_0x2c3f22(0x1ec)]);_0x348726[_0x2c3f22(0x1b3)]&&_0x52cf4a[_0x2c3f22(0xdc)](_0x2c3f22(0x1b3),_0x348726[_0x2c3f22(0x1b3)]);if(_0x348726[_0x2c3f22(0xf4)]){if(_0x348726[_0x2c3f22(0xf4)]['indexOf']('<')===0x0)$(_0x348726[_0x2c3f22(0xf4)])[_0x2c3f22(0x179)](_0x52cf4a);else _0x348726['icon'][_0x2c3f22(0x111)]('/')!==-0x1?$(_0x2c3f22(0x1e6),{'class':_0x2c3f22(0x178),'style':_0x2c3f22(0x106)+_0x348726[_0x2c3f22(0xf4)]+_0x2c3f22(0xfd)+_0x348726['icon']+');'})[_0x2c3f22(0x179)](_0x52cf4a):$(_0x2c3f22(0x1e6),{'class':_0x2c3f22(0xd3)+_0x348726[_0x2c3f22(0xf4)]})[_0x2c3f22(0x179)](_0x52cf4a);}else _0x52cf4a['css']({'paddingLeft':_0x2c3f22(0x18e)});!_0x348726[_0x2c3f22(0xf4)]&&!_0x348726[_0x2c3f22(0x1ec)]&&_0x52cf4a['text'](_0x348726[_0x2c3f22(0x14a)]);var _0x142a38;_0x35c6e7[_0x2c3f22(0x164)]&&(_0x142a38=$('<input\x20type=\x22checkbox\x22>')[_0x2c3f22(0x1fc)]('pointer-events',_0x2c3f22(0x217))[_0x2c3f22(0x187)]('value',_0x348726[_0x2c3f22(0x14a)])[_0x2c3f22(0x179)](_0x52cf4a)['on'](_0x2c3f22(0x17c),function(_0x2be20b){const _0x4c098b=_0x2c3f22;_0x2be20b[_0x4c098b(0x20c)]();})),_0x52cf4a['on']('click',function(_0x57bc1b){const _0x38f3a5=_0x2c3f22;_0x57bc1b[_0x38f3a5(0x20c)](),_0x57bc1b[_0x38f3a5(0x114)](),!_0x35c6e7[_0x38f3a5(0x164)]?(_0x327003(_0x348726[_0x38f3a5(0x14a)]),_0x226c23[_0x38f3a5(0x1f9)](_0x3125f9)):_0x142a38[_0x38f3a5(0xdc)](_0x38f3a5(0x1ae),!_0x142a38[_0x38f3a5(0xdc)](_0x38f3a5(0x1ae)));});}),_0x3125f9[_0x2dc94f(0x1fc)]({'display':_0x2dc94f(0x217)}),_0x3125f9['on'](_0x2dc94f(0x1e0),function(_0x1fca39){const _0x394362=_0x2dc94f;if(_0x1fca39[_0x394362(0x1ce)]===0x28)_0x1fca39[_0x394362(0x20c)](),$(this)['children'](_0x394362(0x149))[_0x394362(0x121)]()[_0x394362(0xc2)]('focus');else{if(_0x1fca39[_0x394362(0x1ce)]===0x26)_0x1fca39[_0x394362(0x20c)](),$(this)[_0x394362(0x1b5)](_0x394362(0x149))[_0x394362(0xcd)]()[_0x394362(0xc2)]('focus');else _0x1fca39[_0x394362(0x1ce)]===0x1b&&(_0x1fca39['preventDefault'](),_0x226c23[_0x394362(0x1f9)](_0x3125f9));}_0x1fca39[_0x394362(0x114)]();}),_0x3125f9;},'disarmClick':![],'_showMenu'(_0x47eeac,_0x4c7ab8){const _0x44a058=_0x35cc58;if(this[_0x44a058(0x15b)]){this[_0x44a058(0x15b)]=![];return;}var _0x562767=this,_0x14d731=_0x4c7ab8['offset'](),_0x5c3af2=_0x4c7ab8[_0x44a058(0x1f7)](),_0x5af2d9=_0x47eeac[_0x44a058(0x1f7)](),_0x2e979b=_0x5c3af2+_0x14d731[_0x44a058(0x190)];_0x2e979b+_0x5af2d9-$(document)['scrollTop']()>$(window)[_0x44a058(0x1f7)]()&&(_0x2e979b-=_0x2e979b+_0x5af2d9-$(window)[_0x44a058(0x1f7)]()+0x5),_0x2e979b<0x0&&(_0x47eeac[_0x44a058(0x1f7)](_0x5af2d9+_0x2e979b),_0x2e979b=0x0),_0x47eeac['css']({'top':_0x2e979b+'px','left':_0x14d731[_0x44a058(0x10c)]+'px'}),_0x47eeac[_0x44a058(0xd8)](0x64),this[_0x44a058(0x14d)](function(){const _0x5cabf7=_0x44a058;_0x562767[_0x5cabf7(0x201)][_0x5cabf7(0x18f)](_0x5cabf7(0xea)),$(document)['on'](_0x5cabf7(0x1b7),function(_0x52d413){const _0x2389dc=_0x5cabf7;!$(_0x52d413[_0x2389dc(0x144)])[_0x2389dc(0x1a2)](_0x47eeac)[_0x2389dc(0xca)]&&_0x562767[_0x2389dc(0x1f9)](_0x47eeac),$(_0x52d413[_0x2389dc(0x144)])[_0x2389dc(0x1a2)](_0x4c7ab8)[_0x2389dc(0xca)]&&(_0x562767[_0x2389dc(0x15b)]=!![],_0x52d413[_0x2389dc(0x20c)]());});});},'_showTypeMenu'(){const _0x5b07d8=_0x35cc58,_0x591c8c=this;this['_showMenu'](_0x591c8c[_0x5b07d8(0x1b9)],_0x591c8c[_0x5b07d8(0x117)]),_0x591c8c[_0x5b07d8(0xd7)][_0x5b07d8(0x105)]();const _0xf2d493=_0x591c8c[_0x5b07d8(0x12a)];var _0x293f40=_0x591c8c[_0x5b07d8(0x1b9)][_0x5b07d8(0x147)](_0x5b07d8(0x148)+_0xf2d493+'\x27');setTimeout(function(){const _0x156ed0=_0x5b07d8;_0x293f40['trigger'](_0x156ed0(0x167));},0x78);},'_initMenu'(){const _0x5e59bf=_0x35cc58,_0xafca7d=this;_0xafca7d['$selectTrigger'][_0x5e59bf(0x1f8)](_0x5e59bf(0x1a5),-0x1),_0xafca7d[_0x5e59bf(0x1d6)]['on'](_0x5e59bf(0x11d),function(_0x2cb0cd){_0x2cb0cd['preventDefault']();});_0xafca7d[_0x5e59bf(0x1b9)]&&_0xafca7d[_0x5e59bf(0x1b9)][_0x5e59bf(0x125)]();const _0x760ef7=[{'label':_0x5e59bf(0x1a4),'value':'t','title':_0x5e59bf(0x1bd),'icon':_0x5e59bf(0x157)},{'label':_0x5e59bf(0x1c2),'value':_0x5e59bf(0xe8),'title':_0x5e59bf(0xf9),'icon':_0x5e59bf(0x162)},{'label':'NodeId','value':'n','icon':_0x5e59bf(0x1a8)},{'label':_0x5e59bf(0x15a),'value':'na','icon':_0x5e59bf(0x1c8)},{'label':_0x5e59bf(0x198),'value':_0x5e59bf(0x109),'icon':'<i\x20class=\x22fa\x20fa-id-card\x22/> \x20'},{'label':_0x5e59bf(0x176),'value':'b','icon':_0x5e59bf(0x16a)},{'label':_0x5e59bf(0xdd),'value':'ab','icon':_0x5e59bf(0x181)}],_0x26af90=_0x2838e3(_0xafca7d[_0x5e59bf(0x185)][_0x5e59bf(0x213)]()),_0x3a613a=_0x760ef7[_0x5e59bf(0x147)](_0x1e66ea=>_0x1e66ea[_0x5e59bf(0x14a)]===_0x26af90);_0xafca7d['$selectLabel'][_0x5e59bf(0x1ac)]()[_0x5e59bf(0x142)](_0x5e59bf(0x1f3)+((_0x3a613a===null||_0x3a613a===void 0x0?void 0x0:_0x3a613a['title'])||'')+_0x5e59bf(0x1cc)+((_0x3a613a===null||_0x3a613a===void 0x0?void 0x0:_0x3a613a[_0x5e59bf(0xf4)])||'')+_0x5e59bf(0x196)),_0xafca7d[_0x5e59bf(0x12a)]=_0x26af90;const _0x1c356e=this;_0xafca7d[_0x5e59bf(0x1b9)]=this[_0x5e59bf(0x14e)](_0x760ef7,{},_0x48342b=>{const _0x10a846=_0x5e59bf,_0x1cf57a=_0x24ee96(_0x48342b);_0x1cf57a&&_0x1c356e[_0x10a846(0x214)](_0x1cf57a);const _0x325e4f=_0x760ef7['find'](_0x2ec48b=>_0x2ec48b[_0x10a846(0x14a)]===_0x48342b);_0xafca7d[_0x10a846(0x12a)]=_0x48342b,_0xafca7d[_0x10a846(0x210)][_0x10a846(0x1ac)]()[_0x10a846(0x142)](_0x10a846(0x1f3)+((_0x325e4f===null||_0x325e4f===void 0x0?void 0x0:_0x325e4f[_0x10a846(0x1b3)])||'')+_0x10a846(0x1cc)+((_0x325e4f===null||_0x325e4f===void 0x0?void 0x0:_0x325e4f[_0x10a846(0xf4)])||'')+_0x10a846(0x196));}),_0xafca7d['$menu'][_0x5e59bf(0x17e)](document[_0x5e59bf(0xcf)]),_0xafca7d[_0x5e59bf(0x1b9)][_0x5e59bf(0x105)](),_0xafca7d[_0x5e59bf(0x1d6)][_0x5e59bf(0x133)]();},'mode'(){const _0xf0f356=_0x35cc58,_0x478fa8=this;return _0x24ee96(_0x478fa8[_0xf0f356(0x12a)]);},'setMode'(_0x1e698d){const _0x103ef6=_0x35cc58,_0x1eff0b=this,_0xa9abde=_0x12bf54(_0x1e698d);_0x1eff0b[_0x103ef6(0x12a)]=_0xa9abde;},'_create'(){const _0x572e25=_0x35cc58,_0x24eeed=this;_0x24eeed[_0x572e25(0x185)]=this[_0x572e25(0x153)],_0x24eeed[_0x572e25(0x185)]['css']('border','none'),_0x24eeed[_0x572e25(0xf0)]=_0x24eeed['$input'][_0x572e25(0x1e1)](_0x572e25(0x135))[_0x572e25(0x1ad)]()[_0x572e25(0x18f)]('main-wrapper'),_0x24eeed['$combo']=$(_0x572e25(0x18c)),_0x24eeed['$combo'][_0x572e25(0x18f)](_0x572e25(0x19e)),_0x24eeed[_0x572e25(0x185)]['replaceWith'](_0x24eeed[_0x572e25(0x117)]),_0x24eeed[_0x572e25(0xd2)]=$(_0x572e25(0x18c))['addClass']('input-group'),_0x24eeed[_0x572e25(0x117)][_0x572e25(0x142)](_0x24eeed['$inputGroup']),_0x24eeed[_0x572e25(0xd2)]['append'](_0x24eeed[_0x572e25(0x185)]),_0x24eeed[_0x572e25(0x1c1)]=$(_0x572e25(0x1aa)),_0x24eeed['$input']['after'](_0x24eeed[_0x572e25(0x1c1)]),_0x24eeed[_0x572e25(0x1c1)]['on'](_0x572e25(0x1d3),function(){return _0x4b2f9e(this,void 0x0,void 0x0,function*(){const _0x371ffd=_0x3845;var _0x31b6c6;let _0x4be4c4=![],_0x232d99;!_0x24eeed[_0x371ffd(0xd7)]['is'](_0x371ffd(0xda))&&(_0x24eeed[_0x371ffd(0x1e3)][_0x371ffd(0x105)](),_0x232d99=yield _0x24eeed['resolveParentNode'](),(_0x232d99!==_0x24eeed[_0x371ffd(0xe2)]||((_0x31b6c6=_0x24eeed[_0x371ffd(0xe2)])===null||_0x31b6c6===void 0x0?void 0x0:_0x31b6c6['nodeId'])!==_0x232d99[_0x371ffd(0x124)])&&(yield _0x24eeed[_0x371ffd(0xc5)]()),_0x4be4c4=!![]),_0x24eeed[_0x371ffd(0xd7)][_0x371ffd(0x1f1)](),_0x4be4c4&&(yield _0x359f04(_0x24eeed,_0x232d99));});}),_0x24eeed[_0x572e25(0x160)]=$(_0x572e25(0x174)),_0x24eeed[_0x572e25(0x185)][_0x572e25(0x15c)](_0x24eeed['$verifyBtn']),_0x24eeed[_0x572e25(0x160)]['on'](_0x572e25(0x1d3),()=>{const _0x43c245=_0x572e25,_0x2a1491=_0x24eeed[_0x43c245(0x1a0)]();if(!_0x2a1491)return;this['verify'](_0x2a1491);});const _0x465d38=_0x4ea7f6=>_0x4b2f9e(this,void 0x0,void 0x0,function*(){const _0x1d4eae=_0x572e25,_0x44d12a=this;let _0x5d0fa1=_0x44d12a[_0x1d4eae(0x1a0)]();if(!_0x5d0fa1)return;const _0x465ea1=_0x1d7b99(_0x44d12a),{data:_0x59ad86,json:_0x221c39}=yield _0x5a94ec(_0x465ea1,_0x4ea7f6);if(_0x59ad86[_0x1d4eae(0xf8)]!==0xc8)return;if(_0x221c39['statusCode'][_0x1d4eae(0x1f6)](/Good/)){const _0x2976af=_0x186882(_0x221c39,_0x5d0fa1);_0x44d12a[_0x1d4eae(0x185)]['val'](_0x2976af),_0x44d12a[_0x1d4eae(0x185)][_0x1d4eae(0xc2)](_0x1d4eae(0x211));}});{_0x24eeed[_0x572e25(0x201)]=$(_0x572e25(0x135)),_0x24eeed[_0x572e25(0x185)]['before'](_0x24eeed['$uiSelect']),_0x24eeed[_0x572e25(0x1d6)]=$(_0x572e25(0x1bf))[_0x572e25(0x179)](_0x24eeed['$uiSelect']),$(_0x572e25(0x11b))[_0x572e25(0x1f1)](!![])[_0x572e25(0x17e)](_0x24eeed[_0x572e25(0x1d6)]),_0x24eeed['$selectTrigger']['on'](_0x572e25(0x1d3),function(_0x41a595){const _0x1d89ca=_0x572e25;_0x41a595[_0x1d89ca(0x20c)](),_0x41a595[_0x1d89ca(0x114)](),_0x24eeed[_0x1d89ca(0x19a)]();}),_0x24eeed[_0x572e25(0x1d6)]['on'](_0x572e25(0x1e0),function(_0x1ad2e4){const _0x3d2575=_0x572e25;_0x1ad2e4['keyCode']===0x28&&_0x24eeed[_0x3d2575(0x19a)](),_0x1ad2e4[_0x3d2575(0x114)]();})['on'](_0x572e25(0x167),function(){const _0x19304a=_0x572e25;_0x24eeed[_0x19304a(0x201)]['addClass'](_0x19304a(0xea));})['on'](_0x572e25(0x192),function(){const _0x104b05=_0x572e25;_0x24eeed[_0x104b05(0x201)][_0x104b05(0x1e5)](_0x104b05(0xea));}),_0x24eeed['$selectLabel']=$(_0x572e25(0xf6))[_0x572e25(0x17e)](_0x24eeed[_0x572e25(0x1d6)]);}this[_0x572e25(0x13f)]();!_0x24eeed['$input'][_0x572e25(0x1f8)](_0x572e25(0x203))&&_0x24eeed[_0x572e25(0x185)]['attr'](_0x572e25(0x203),_0x572e25(0xd9));_0x24eeed['$info']=$(_0x572e25(0xeb)),_0x24eeed[_0x572e25(0x1e3)]['hide'](),_0x24eeed[_0x572e25(0x117)]['append'](_0x24eeed[_0x572e25(0x1e3)]),_0x24eeed[_0x572e25(0xd7)]=$('<div/>')['addClass'](_0x572e25(0x207))[_0x572e25(0x105)]()['appendTo'](_0x24eeed['$combo']),_0x24eeed[_0x572e25(0x20e)]=$(_0x572e25(0x1d8))[_0x572e25(0x17e)](_0x24eeed[_0x572e25(0xd7)]),this[_0x572e25(0xc5)]();const _0x2cf63b=(_0x2f55c9,_0x21e839)=>{const _0x224908=_0x572e25,_0x190804=0x14,_0x529e8d=0x14,_0x37164c=_0x2f55c9[_0x224908(0x11a)](),_0x5f468c=_0x21e839;if(_0x5f468c[_0x224908(0x163)]>=_0x37164c[_0x224908(0x10c)]&&_0x5f468c[_0x224908(0x163)]<=_0x37164c[_0x224908(0x10c)]+_0x190804&&_0x5f468c[_0x224908(0x123)]>=_0x37164c[_0x224908(0x190)]&&_0x5f468c[_0x224908(0x123)]<=_0x37164c['top']+_0x529e8d)return!![];return![];},_0x5ebeae=_0x15e9d7=>_0x4b2f9e(this,void 0x0,void 0x0,function*(){const _0x18967e=_0x572e25;if(_0x15e9d7['hasClass'](_0x18967e(0xc4)))_0x34345d(_0x24eeed,_0x15e9d7);else{if(_0x15e9d7[_0x18967e(0x17d)]('expanded'))_0x15e9d7[_0x18967e(0x1b5)]('ul')[_0x18967e(0x1f1)](),_0x15e9d7[_0x18967e(0x20f)]('expandable\x20expanded');else{if(_0x15e9d7[_0x18967e(0x1b5)]('ul')['children']()[_0x18967e(0xca)]>0x0)_0x15e9d7[_0x18967e(0x1b5)]('ul')[_0x18967e(0x1f1)](),_0x15e9d7[_0x18967e(0x20f)]('expandable\x20expanded');else;}}});_0x24eeed[_0x572e25(0x20e)]['on']('dblclick','li',function(_0x3a82cb){const _0x41adad=_0x572e25;var _0x96a118,_0x1996f2;_0x3a82cb[_0x41adad(0x114)]();let _0x5d09d2=$(this);if(_0x2cf63b(_0x5d09d2,_0x3a82cb))_0x5ebeae(_0x5d09d2);else{const _0x418bdc=_0x5d09d2[_0x41adad(0x187)]('value'),_0xc8ee81=_0x5d09d2[_0x41adad(0x187)](_0x41adad(0x11f));if(_0x24eeed[_0x41adad(0x15d)][_0x41adad(0x204)]&&!_0x24eeed[_0x41adad(0x15d)][_0x41adad(0x204)](_0xc8ee81))return;_0x24eeed[_0x41adad(0x185)][_0x41adad(0x187)](_0x41adad(0x11f),_0xc8ee81),((_0x96a118=_0xc8ee81[_0x41adad(0x188)])===null||_0x96a118===void 0x0?void 0x0:_0x96a118[_0x41adad(0x1a4)])||((_0x1996f2=_0xc8ee81[_0x41adad(0x200)])===null||_0x1996f2===void 0x0?void 0x0:_0x1996f2[_0x41adad(0x1c6)])||_0xc8ee81['nodeId']['toString']();let _0x43d0b7=_0x24eeed['mode']();!_0x43d0b7&&(_0x43d0b7=_0x41adad(0x124),_0x24eeed[_0x41adad(0x1db)](_0x43d0b7)),_0x465d38(_0x418bdc)[_0x41adad(0x215)](()=>{_0x24eeed['$dropdown']['hide']();})[_0x41adad(0x169)](_0xfc8728=>{const _0x103494=_0x41adad;_0x24eeed[_0x103494(0xd7)][_0x103494(0x105)]();});}}),_0x24eeed[_0x572e25(0x20e)]['on']('click','li',function(_0x54da13){const _0x33d8e2=_0x572e25;_0x54da13[_0x33d8e2(0x114)]();let _0x297b42=$(this);_0x2cf63b(_0x297b42,_0x54da13)&&_0x5ebeae(_0x297b42),_0xfc1ee9(_0x24eeed,_0x297b42);}),$(document)['on'](_0x572e25(0x1d3),function(_0x3bb974){const _0x478821=_0x572e25;!$(_0x3bb974['target'])['closest'](_0x24eeed[_0x478821(0x117)])[_0x478821(0xca)]&&_0x24eeed['$dropdown'][_0x478821(0x105)]();});}});},_0x2bbc7e=_0x2911c5=>{const _0x1d6c5c=_0x55af36;var _0x2c93f7,_0x5689f8,_0x1ba8f9;if(!_0x2911c5){const _0x4f026e=$('<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>');return _0x4f026e;}const _0x4c9f47=_0x2911c5[_0x1d6c5c(0x124)][_0x1d6c5c(0x1fb)]();let _0x4898f3=((_0x2c93f7=_0x2911c5[_0x1d6c5c(0x188)])===null||_0x2c93f7===void 0x0?void 0x0:_0x2c93f7[_0x1d6c5c(0x1a4)])||((_0x5689f8=_0x2911c5[_0x1d6c5c(0x200)])===null||_0x5689f8===void 0x0?void 0x0:_0x5689f8[_0x1d6c5c(0x1c6)])||_0x2911c5['nodeId'][_0x1d6c5c(0x1fb)](),_0x2362e5=(_0x1ba8f9=_0x2911c5[_0x1d6c5c(0x200)])===null||_0x1ba8f9===void 0x0?void 0x0:_0x1ba8f9[_0x1d6c5c(0x1c4)];_0x4898f3+=_0x2362e5!==undefined&&_0x2911c5[_0x1d6c5c(0xf7)][_0x1d6c5c(0x1f6)](/Type/)?_0x1d6c5c(0x1e2)+_0x2362e5+')':'';const {icon:_0x258a0b,color:_0x52391c}=_0x4152a3(_0x2911c5),_0x1f06ba=$(_0x1d6c5c(0x100));if(_0x2911c5['nodeClass']===_0x1d6c5c(0x19c)){const _0x3e92a8=$('<span\x20class=\x22custom-checkbox\x20unchecked\x22></span>');_0x1f06ba[_0x1d6c5c(0x142)](_0x3e92a8),_0x3e92a8['on'](_0x1d6c5c(0x1d3),function(){const _0x45447f=_0x1d6c5c;_0x3e92a8[_0x45447f(0x17d)](_0x45447f(0xcc))?_0x3e92a8[_0x45447f(0x1e5)](_0x45447f(0xcc))[_0x45447f(0x18f)](_0x45447f(0x1ae)):_0x3e92a8[_0x45447f(0x1e5)](_0x45447f(0x1ae))['addClass'](_0x45447f(0xcc));});}return _0x1f06ba[_0x1d6c5c(0x142)]($(_0x1d6c5c(0x197)+_0x258a0b+'\x22\x20style=\x22color:'+_0x52391c+_0x1d6c5c(0x110)+_0x4898f3+_0x1d6c5c(0xfc))),_0x1f06ba[_0x1d6c5c(0x18f)]('expandable'),_0x1f06ba[_0x1d6c5c(0x187)]('value',_0x4c9f47),_0x1f06ba[_0x1d6c5c(0x187)]('reference',_0x2911c5),_0x1f06ba;},_0x55dac3=()=>{const _0x385e08=_0x55af36;$['widget'](_0x385e08(0x20d),{'options':{'endpointNode':()=>({'endpoint':_0x385e08(0x191)}),'endpoint':()=>undefined,'baseUrl':''},'_populate'(){return _0x4b2f9e(this,void 0x0,void 0x0,function*(){const _0x2393fc=_0x3845;var _0x4fb120;const _0x248c2d=this,_0x17dc85=new Set(((_0x4fb120=_0x248c2d['$input'][_0x2393fc(0x213)]())===null||_0x4fb120===void 0x0?void 0x0:_0x4fb120[_0x2393fc(0x1fb)]()['split'](';'))||[]),_0x191112=_0x1d7b99(_0x248c2d),_0x376ff5=yield _0x3f7347(_0x191112);this[_0x2393fc(0x1a6)](_0x376ff5,_0x17dc85);});},'_installTree'(_0x2609b9,_0x10b29a){const _0x23313c=_0x385e08,_0x357d84=this;_0x357d84[_0x23313c(0x20e)][_0x23313c(0x1ac)]();if(!_0x2609b9[_0x23313c(0x13b)])return;const _0x2c1a14=_0x2609b9[_0x23313c(0x13b)],_0x2bf594=_0x2bbc7e(_0x2c1a14);_0x357d84[_0x23313c(0x20e)][_0x23313c(0x142)](_0x2bf594);const _0x19da77='';this[_0x23313c(0x159)](_0x2bf594['children']('ul'),_0x2c1a14,_0x19da77,_0x10b29a),_0x2bf594['removeClass'](_0x23313c(0xc4))[_0x23313c(0x18f)](_0x23313c(0x127)),this[_0x23313c(0x1c0)](_0x10b29a);},'_installChildren'(_0x8a2666,_0xbbfd9c,_0x1fa256,_0x2122be){const _0x32e8d3=_0x385e08,_0x2b9e0e=({name:_0x52b077,namespaceIndex:_0x241371})=>{if(_0x241371===0x0)return _0x52b077;return _0x241371+':'+_0x52b077;},_0x18f9c4=_0xbbfd9c[_0x32e8d3(0x1b5)]||[],_0x47263f=_0xbbfd9c['subTypes']||[],_0x59bdb4=[..._0x18f9c4,..._0x47263f];for(const _0x335047 of _0x59bdb4){const _0x1cb94a=_0x2bbc7e(_0x335047);_0x8a2666[_0x32e8d3(0x142)](_0x1cb94a);let _0x5d2dc8='';_0x335047[_0x32e8d3(0xf7)]===_0x32e8d3(0x19c)&&(_0x1fa256?_0x5d2dc8=_0x1fa256+'.'+_0x2b9e0e(_0x335047[_0x32e8d3(0x200)]):_0x5d2dc8=_0x2b9e0e(_0x335047[_0x32e8d3(0x200)]),_0x1cb94a[_0x32e8d3(0x1f8)](_0x32e8d3(0x1b6),_0x5d2dc8));const _0x134a36=_0x335047[_0x32e8d3(0x1b5)]&&_0x335047[_0x32e8d3(0x1b5)][_0x32e8d3(0xca)],_0x12178e=_0x335047[_0x32e8d3(0x120)]&&_0x335047[_0x32e8d3(0x120)][_0x32e8d3(0xca)];!_0x134a36&&!_0x12178e?_0x1cb94a[_0x32e8d3(0x1e5)](_0x32e8d3(0xc4))['addClass'](_0x32e8d3(0x1c5)):(this['_installChildren'](_0x1cb94a[_0x32e8d3(0x1b5)]('ul'),_0x335047,_0x5d2dc8,_0x2122be),_0x1cb94a['removeClass'](_0x32e8d3(0xc4))[_0x32e8d3(0x18f)](_0x32e8d3(0x127)));}},'_updateSelectedFields'(){const _0x1e2f4d=_0x385e08;var _0x5f0912;const _0x17e601=this,_0x2adf4a=new Set(((_0x5f0912=_0x17e601[_0x1e2f4d(0x185)][_0x1e2f4d(0x213)]())===null||_0x5f0912===void 0x0?void 0x0:_0x5f0912['toString']()['split'](';'))||[]);this[_0x1e2f4d(0x1c0)](_0x2adf4a);},'_updateValues'(_0x4265f9){const _0x527c81=_0x385e08;$(_0x527c81(0x17a))[_0x527c81(0x1fa)](function(){const _0x5164b3=_0x527c81,_0x46a7df=$(this),_0x674164=_0x46a7df[_0x5164b3(0x1f8)](_0x5164b3(0x1b6));_0x674164&&_0x4265f9[_0x5164b3(0x1f5)](_0x674164)&&_0x46a7df[_0x5164b3(0x1b5)](_0x5164b3(0xf5))['removeClass'](_0x5164b3(0xcc))['addClass'](_0x5164b3(0x1ae));});},'_setInputValue'(){const _0x1aff90=_0x385e08,_0x11e489=this,_0x44d052=[];$(_0x1aff90(0x17a))[_0x1aff90(0x1fa)](function(){const _0x608ad5=_0x1aff90,_0x5657cb=$(this);if(_0x5657cb['children'](_0x608ad5(0x1d2))[_0x608ad5(0xca)]>0x0){const _0x2dff85=_0x5657cb[_0x608ad5(0x1f8)](_0x608ad5(0x1b6));if(_0x2dff85)_0x44d052[_0x608ad5(0xee)](_0x2dff85);}});const _0x4bd72c=[...new Set(_0x44d052)][_0x1aff90(0x11c)]()['join'](';');_0x11e489[_0x1aff90(0x185)][_0x1aff90(0x213)](_0x4bd72c),_0x11e489['$input'][_0x1aff90(0xc2)]('change');},'_create'(){const _0x31492b=_0x385e08,_0x21b7b7=this;_0x21b7b7[_0x31492b(0x185)]=this[_0x31492b(0x153)],_0x21b7b7[_0x31492b(0x117)]=$(_0x31492b(0x18c)),_0x21b7b7[_0x31492b(0x117)][_0x31492b(0x18f)](_0x31492b(0x19e)),this[_0x31492b(0x153)][0x0][_0x31492b(0x1b2)][_0x31492b(0x1ed)](_0x21b7b7[_0x31492b(0x117)][0x0],this[_0x31492b(0x153)][0x0]),_0x21b7b7[_0x31492b(0xd2)]=$(_0x31492b(0x18c))[_0x31492b(0x18f)](_0x31492b(0x104)),_0x21b7b7[_0x31492b(0x117)][_0x31492b(0x142)](_0x21b7b7[_0x31492b(0xd2)]),_0x21b7b7['$inputGroup']['append'](_0x21b7b7[_0x31492b(0x185)]),_0x21b7b7[_0x31492b(0x1c1)]=$(_0x31492b(0x171)),_0x21b7b7['$inputGroup']['append'](_0x21b7b7[_0x31492b(0x1c1)]),_0x21b7b7[_0x31492b(0x1c1)]['on'](_0x31492b(0x1d3),function(){const _0x27fa20=_0x31492b;_0x21b7b7[_0x27fa20(0xd7)][_0x27fa20(0x1f1)](),_0x21b7b7[_0x27fa20(0x1e3)][_0x27fa20(0x1f1)]();if(_0x21b7b7[_0x27fa20(0xd7)]['is'](_0x27fa20(0xda))){_0x39c030['show']();const _0x311945=_0x21b7b7[_0x27fa20(0xd7)][_0x27fa20(0x11a)]();_0x39c030[_0x27fa20(0x1fc)]({'top':_0x311945['top']+'px','right':_0x27fa20(0x202)+(_0x311945[_0x27fa20(0x10c)]+_0x21b7b7[_0x27fa20(0xd7)][_0x27fa20(0xdb)]())+_0x27fa20(0x182)}),_0x21b7b7[_0x27fa20(0x1e7)](),_0x21b7b7[_0x27fa20(0x156)]();}else _0x39c030[_0x27fa20(0x105)]();});!_0x21b7b7[_0x31492b(0x185)][_0x31492b(0x1f8)](_0x31492b(0x203))&&_0x21b7b7[_0x31492b(0x185)][_0x31492b(0x1f8)](_0x31492b(0x203),'enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20');_0x21b7b7[_0x31492b(0x1e3)]=$(_0x31492b(0xeb)),_0x21b7b7['$info']['hide'](),_0x21b7b7['$dropdown']=$(_0x31492b(0x18c))[_0x31492b(0x18f)](_0x31492b(0x207))[_0x31492b(0x105)]();const _0x3daef1=$(_0x31492b(0x199)),_0x583598=$(_0x31492b(0x20b)),_0x39c030=$(_0x31492b(0xff))[_0x31492b(0x142)](_0x3daef1,_0x583598);_0x39c030[_0x31492b(0x105)](),_0x3daef1['on'](_0x31492b(0x1d3),()=>{const _0x51f081=_0x31492b;_0x21b7b7[_0x51f081(0x1d5)](),_0x21b7b7[_0x51f081(0xd7)][_0x51f081(0x105)]();}),_0x583598['on'](_0x31492b(0x1d3),()=>{const _0x30414d=_0x31492b;_0x21b7b7[_0x30414d(0xd7)][_0x30414d(0x105)]();}),_0x21b7b7[_0x31492b(0x117)][_0x31492b(0x142)](_0x21b7b7[_0x31492b(0x1e3)]),_0x21b7b7[_0x31492b(0x117)][_0x31492b(0x142)](_0x21b7b7[_0x31492b(0xd7)]),_0x21b7b7[_0x31492b(0x20e)]=$(_0x31492b(0x1d8)),_0x21b7b7['$dropdown']['empty']()[_0x31492b(0x142)](_0x21b7b7[_0x31492b(0x20e)],_0x39c030),_0x21b7b7['$tree']['on'](_0x31492b(0x1d3),'li',function(_0x31d4f9){const _0x12fc0a=_0x31492b;_0x31d4f9[_0x12fc0a(0x114)]();let _0x496b0f=$(this);const _0x34a219=0x14,_0x49b483=0x14,_0x198d98=$(this)[_0x12fc0a(0x11a)](),_0x5ab06f=_0x31d4f9;if(_0x5ab06f[_0x12fc0a(0x163)]>=_0x198d98[_0x12fc0a(0x10c)]&&_0x5ab06f['pageX']<=_0x198d98['left']+_0x34a219&&_0x5ab06f[_0x12fc0a(0x123)]>=_0x198d98[_0x12fc0a(0x190)]&&_0x5ab06f[_0x12fc0a(0x123)]<=_0x198d98[_0x12fc0a(0x190)]+_0x49b483){console['log'](_0x12fc0a(0xe6)),console[_0x12fc0a(0xec)](_0x12fc0a(0x1dd),_0x496b0f[_0x12fc0a(0x187)](_0x12fc0a(0x14a)),_0x496b0f['attr'](_0x12fc0a(0x1b1)));if(_0x496b0f[_0x12fc0a(0x17d)](_0x12fc0a(0xc4)))_0x496b0f[_0x12fc0a(0x1e5)]('expandable')[_0x12fc0a(0x18f)]('expanded'),_0x496b0f[_0x12fc0a(0x1b5)]('ul')[_0x12fc0a(0x1f1)]();else{if(_0x496b0f['hasClass']('expanded'))_0x496b0f[_0x12fc0a(0x1b5)]('ul')[_0x12fc0a(0x1f1)](),_0x496b0f['toggleClass'](_0x12fc0a(0x154));else{if(_0x496b0f[_0x12fc0a(0x1b5)]('ul')[_0x12fc0a(0x1b5)]()[_0x12fc0a(0xca)]>0x0)_0x496b0f[_0x12fc0a(0x1b5)]('ul')[_0x12fc0a(0x1f1)](),_0x496b0f[_0x12fc0a(0x20f)](_0x12fc0a(0x154));else;}}}}),$(document)['on']('click',function(_0x4dc0e0){const _0x2e2e73=_0x31492b;!$(_0x4dc0e0[_0x2e2e73(0x144)])[_0x2e2e73(0x1a2)](_0x21b7b7['$combo'])['length']&&_0x21b7b7['$dropdown'][_0x2e2e73(0x105)]();}),this[_0x31492b(0x1e7)]();}});},_0x3f7347=_0x435b87=>_0x4b2f9e(void 0x0,[_0x435b87],void 0x0,function*({endpointNode:_0x353eb2,endpoint:_0x5333da,baseUrl:_0x2f12fa}){const _0x4b6fd6=_0x55af36,_0x407b4a=_0x2f12fa+'/opcua-for-node-red',_0x583898=_0x407b4a+_0x4b6fd6(0x216),_0x51050b=yield fetch(_0x583898,{'method':_0x4b6fd6(0x101),'body':JSON[_0x4b6fd6(0x206)]({'endpointNode':_0x353eb2,'endpoint':_0x5333da}),'headers':{'Content-Type':_0x4b6fd6(0x1c9)}});if(_0x51050b[_0x4b6fd6(0xf8)]!==0xc8)return console[_0x4b6fd6(0xec)]('fetching\x20failed\x20with\x20error',_0x51050b['status'],_0x51050b[_0x4b6fd6(0xd0)]),{'events':null};console[_0x4b6fd6(0xec)]('fetched\x20:\x20',_0x51050b['status'],_0x51050b[_0x4b6fd6(0xd0)]);const _0x38051d=yield _0x51050b['json'](),_0x34efb0=_0x38051d[_0x4b6fd6(0x13b)];return{'events':_0x34efb0};}),_0x1f0dfa=()=>{const _0x2f222a=_0x55af36,_0xc9b09d=$(_0x2f222a(0xc3)),_0x378ba7=_0xc9b09d[_0x2f222a(0x213)](),_0x4c2173=RED[_0x2f222a(0x10d)]['node'](_0x378ba7);if(!_0x4c2173)return undefined;const {endpoint:_0x426195,securityMode:_0x3ecde9,securityPolicy:_0x4dbd73,userIdentityType:_0x6ca970,credentials:_0x2ad984,namespaceAliases:_0x56a89d}=_0x4c2173,_0x19a781={'endpoint':_0x426195,'securityMode':_0x3ecde9,'securityPolicy':_0x4dbd73,'userIdentityType':_0x6ca970,'credentials':_0x2ad984,'namespaceAliases':_0x56a89d};return _0x19a781;},_0x2bd49f=()=>{const _0x26f60a=_0x55af36,_0x18ada9=$('#node-input-endpoint'),_0x34ddd3=_0x18ada9['val'](),_0x2ffc9f=_0x1f0dfa();if(!_0x2ffc9f)return undefined;const _0x116ddc=_0x2ffc9f[_0x26f60a(0x175)];return Object[_0x26f60a(0x1c3)]({'namespaceAliases':_0x116ddc,'id':_0x34ddd3},_0x2ffc9f);},_0x34700a=()=>{return{'endpointNode':_0x2bd49f};},_0x230165=()=>{const _0x5ced32=_0x55af36,_0x43c6dd=$(_0x5ced32(0x212));console[_0x5ced32(0xec)](_0x5ced32(0x107),_0x43c6dd['length']);if(_0x43c6dd['length']){console['log'](_0x5ced32(0x1b4));const _0x289548=$('<iframe></iframe>',{'src':_0x5ced32(0x193),'scrolling':'no','style':_0x5ced32(0x139),'allowtransparency':_0x5ced32(0x180),'width':_0x5ced32(0x16e),'height':_0x5ced32(0xc1)});_0x43c6dd[_0x5ced32(0x142)](_0x289548),_0x289548['css']({'position':_0x5ced32(0x1ff),'right':'20px','bottom':_0x5ced32(0x12d)});}};RED['nodes'][_0x55af36(0x13c)](_0x55af36(0x166),{'category':'opcua','color':_0x55af36(0x13d),'align':_0x55af36(0x186),'icon':_0x55af36(0x15e),'paletteLabel':'monitor\x20events','defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':'OpcUa-Endpoint2'},'subscription':{'value':'','required':!![],'validate':_0x4fd032=>{if(_0x4fd032==='')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 _0x368958=_0x55af36;return this[_0x368958(0x1c6)]||_0x368958(0x165);},'labelStyle'(){const _0x3ea3c3=_0x55af36;return this[_0x3ea3c3(0x1c6)]?_0x3ea3c3(0x1f4):'';},'oneditprepare'(){const _0x5f3e34=_0x55af36;_0x5dbf11(),_0x55dac3(),_0x338460(RED,this),_0x230165(),$('node-input-startImmediately')['on'](_0x5f3e34(0x211),()=>{const _0x20a038=_0x5f3e34,_0x29562c=$(_0x20a038(0x173))[_0x20a038(0xdc)](_0x20a038(0x1ae));_0x29562c?$('#node-input-inputs')[_0x20a038(0x213)](0x0):$(_0x20a038(0x108))['val'](0x1);});const _0x4ec752=$('#node-input-nodeId');_0x4ec752[_0x5f3e34(0x130)](Object[_0x5f3e34(0x1c3)](Object[_0x5f3e34(0x1c3)]({},_0x34700a()),{'filter'(_0x14aee8){return _0x14aee8['nodeClass']==='Object';},'isSelectable'(_0x2821d4){const _0x8e6e6=_0x5f3e34;return _0x2821d4[_0x8e6e6(0xf7)]===_0x8e6e6(0xd1);}})),$(_0x5f3e34(0x152));const _0x3fc634=$(_0x5f3e34(0xc9));_0x3fc634[_0x5f3e34(0x150)](Object[_0x5f3e34(0x1c3)]({},_0x34700a()));},'oneditsave'(){const _0x3702f3=_0x55af36,_0x54c8f7=$(_0x3702f3(0x173))['prop'](_0x3702f3(0x1ae));_0x54c8f7?($(_0x3702f3(0x173))[_0x3702f3(0x213)](_0x54c8f7?0x0:0x1),this[_0x3702f3(0x103)]=_0x54c8f7?0x0:0x1):($(_0x3702f3(0x173))[_0x3702f3(0x213)](0x1),this[_0x3702f3(0x103)]=0x1);}});}()));
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgzMzg0NjAiLCJfMHg0OGY4MDQiLCJfMHgyYjg1ZGYiLCJfMHg1NTk1OGUiLCIkIiwiXzB4MmU2MmMxIiwiXzB4MzcxMmEzIiwiXzB4MmU1ZjQ3IiwiXzB4NTdjZDc1IiwiXzB4M2YwNDUyIiwiXzB4NGIyZjllIiwiXzB4NDEwZDVjIiwiXzB4MzdkM2Y2IiwiXzB4NTU4ZjY5IiwiXzB4MzYzOGExIiwiXzB4NTM1MjQxIiwiXzB4MzM5ZWQ5IiwiXzB4M2YzNDliIiwiUHJvbWlzZSIsIl8weDU3YmQxYiIsIl8weDNkYjUzMCIsIl8weDFkNWE0ZCIsIl8weDJmNTBmNiIsIl8weDNiMmFmOSIsIl8weDJmZGJkMyIsIl8weDNiODhjMyIsIl8weDQ1YWIzYSIsIl8weDQ4NGE2NSIsIl8weDRkYzdlMiIsIlN1cHByZXNzZWRFcnJvciIsIl8weDMwODc0MyIsIl8weDNlZTIwMSIsIl8weDMzYmU1NiIsIl8weDMxNjcyOSIsIkVycm9yIiwiXzB4MzRhZjQ5IiwiXzB4NTI4ZDk3IiwiXzB4NWQyNzZkIiwiXzB4MzlkZDlkIiwiXzB4NTllZmEwIiwiXzB4MWNhNWNmIiwiXzB4MThiYTciLCJfMHgyMTk5OTAiLCJfMHg1ZGZlZDIiLCJfMHgyOWNjYzIiLCJfMHg1YjcyY2IiLCJfMHgzN2NmM2IiLCJfMHgxMTk0M2IiLCJfMHg0ZWVmM2MiLCJfMHg0MWJkZGUiLCJfMHg1NWJjZDUiLCJfMHg1MWIzMTgiLCJfMHg0MTUyYTMiLCJfMHg3MTg0NWEiLCJfMHgxMDRlOGQiLCJfMHgxZGEwYmYiLCJfMHgyYWUwM2EiLCJfMHg0YzkwZmYiLCJlbmRwb2ludE5vZGUiLCJfMHg0OTkyNzQiLCJlbmRwb2ludCIsIl8weDRhYjQ4YyIsImJhc2VVcmwiLCJfMHhmMjUwMjAiLCJfMHgxYmZiNTciLCJfMHgxN2I5YzAiLCJfMHg1NThiYWUiLCJfMHg0ZGY2MCIsIl8weDczNmNmMiIsIk9iamVjdCIsIl8weDFjNzNlNSIsImZldGNoIiwiSlNPTiIsImNvbnNvbGUiLCJfMHgxOGRhMDAiLCJfMHg0ODQ4YzAiLCJfMHg0ZmVhOTgiLCJfMHgxMDViN2UiLCJfMHgyYzRiNDkiLCJfMHg1MjI3NDkiLCJfMHgyOGQzZjMiLCJfMHgzNGMyNDIiLCJfMHg0NjZiNDIiLCJfMHg0ZmQzYTYiLCJub2RlSWQiLCJfMHg0N2Y3ZWIiLCJyb290Tm9kZUlkIiwiXzB4MTRjMTNkIiwiaXNUeXBlIiwiXzB4MjZhM2VlIiwiXzB4M2UxYmU5IiwiXzB4MzAxNjFjIiwiXzB4OTcxMDQ2IiwiXzB4MjAxYmI4IiwiXzB4MTg2ODgyIiwiXzB4NDRkZjVlIiwiXzB4M2NmZGRkIiwiXzB4ZWRkYjI2IiwiXzB4NGQ3MzVlIiwiXzB4MjRjYmNkIiwiXzB4MmJhNGFjIiwiXzB4NWUxMWZhIiwiXzB4MjgzOGUzIiwiXzB4MzY0OTM2IiwiXzB4NTBjNWMxIiwiXzB4MjRlZTk2IiwiXzB4MmRjYWUxIiwiXzB4NTk5NjNmIiwiXzB4MTJiZjU0IiwiXzB4NTE5ZTA3IiwiXzB4NWE5NGVjIiwiXzB4MjA1ZTcwIiwiXzB4MzA0YzdiIiwiXzB4MWQ0YWMyIiwiXzB4NTE0ZGQ1IiwiXzB4MWJhNmY1IiwiXzB4MmMyMjMzIiwiXzB4MTc2YmQzIiwiXzB4MjAyMzJiIiwiXzB4MmRiMzIyIiwiXzB4MmVlYTRhIiwiUkVEIiwiXzB4MTE4ZWVmIiwiXzB4OWE3OTM3IiwiXzB4MWY5YWY5IiwiXzB4Mzc3MmExIiwiXzB4ZGE0YjAzIiwiXzB4NTMxNGY3IiwiXzB4MmE0MDJiIiwiXzB4NDRhYmRjIiwiXzB4MTQ4ZTQ1IiwiXzB4MTVkNDA0IiwiXzB4NTZiMWE0IiwiXzB4NDA0MjE3IiwiXzB4Mjg4OGE3IiwiXzB4MmQ3ZDY4IiwiXzB4NTk1NjViIiwianNvbiIsIl8weDRlNDI2NiIsImRhdGEiLCJfMHg0MDNmNjkiLCJfMHg0MDVkZDQiLCJfMHgxMjQ0NDMiLCJfMHhlODIwZTQiLCJzZXRUaW1lb3V0IiwiXzB4MTRkMzViIiwiXzB4MmEwODJkIiwiXzB4NDM5MTU5IiwiXzB4Mjg3NTVkIiwiXzB4MzQzN2IyIiwiXzB4MTUzODgyIiwiXzB4MzdhOWMyIiwiXzB4ZmRhYTkiLCJfMHgyN2RmM2IiLCJfMHgzMGQ5OWIiLCJfMHgxNzkzYTAiLCJfMHg3ZjY2YTAiLCJfMHg1ZGU3NDQiLCJfMHg0ZWYwMTUiLCJfMHg0NjRkYmQiLCJfMHg0MTA3ZmEiLCJfMHg0NWRjYzIiLCJfMHg0YzEzYzciLCJfMHgzMjAzOGEiLCJfMHg0ZDAwODIiLCJfMHg4N2ExOGYiLCJfMHg1NmRiODAiLCJfMHgxY2M3M2EiLCJpY29uIiwiXzB4NTAwNDZjIiwiY29sb3IiLCJfMHgyYzBlYjUiLCJfMHg1OWRkM2EiLCJfMHgxNDczZWMiLCJfMHg0YzFiZmYiLCJfMHg0M2IxZGYiLCJfMHgzNjdlN2YiLCJfMHhmYzFlZTkiLCJfMHg0MDI4NTUiLCJfMHgzMTQxNzAiLCJfMHhhOThiMSIsIl8weDQ0MGEzNSIsIl8weDNhNmIyMSIsIl8weDVkZmRjZiIsIl8weDRmMmNkOSIsIl8weDRkYjQ1YyIsIl8weDRmNmVkNSIsIl8weDM0MzQ1ZCIsIl8weDNlY2IzYSIsIl8weDViYTNkNSIsIl8weDM0NTUzMCIsIl8weDNlY2JjOCIsIl8weDMwYWQ1NSIsIl8weDNjODJkNiIsInVuZGVmaW5lZCIsIl8weDNmNDFkNCIsIl8weDM1OWYwNCIsIl8weDM1MDk2YyIsIl8weDE4Mzk0NCIsIl8weDQ5YzYyYSIsIl8weDRhMDUzMSIsIl8weDNiODk4YyIsIl8weDFkN2I5OSIsIl8weDQzZjY0YyIsIl8weDM1ZjRjYSIsIl8weDFhNzBlOSIsIl8weDVkYzA2MSIsIl8weDU3YzBlMiIsIl8weDUwYjc3NiIsInJlZmVyZW5jZXMiLCJfMHgzNWM4NmYiLCJfMHg1ZDAxYzMiLCJfMHg1MGY4MGIiLCJfMHgyMWFlZDAiLCJfMHg1MWEzNzciLCJfMHg0Y2JiMTMiLCJfMHgzMzQwMWEiLCJfMHg1NjBjMTkiLCJfMHg1NTc1YWQiLCJfMHgzYTBiODYiLCJfMHgzOWUwNGIiLCJfMHg1ZjViZjkiLCJfMHg0YWQ2ZTYiLCJfMHg0NzIyYTMiLCJfMHg1ZGZhNTgiLCJfMHg1MzEwMzkiLCJfMHg1ZGJmMTEiLCJfMHg0N2Q3Y2UiLCJfMHg5MTM1NTUiLCJfMHg1OTUzZDgiLCJfMHg0MGY5YTEiLCJfMHgzNGU3ZDEiLCJfMHgzOGMyNTkiLCJfMHg0YjBiYTYiLCJfMHgyMjNjYTAiLCJfMHgxOGJhMzkiLCJfMHg0NDZhMjAiLCJfMHgyMTY5NTkiLCJfMHgzYzgzOWEiLCJfMHgzY2M5ZDkiLCJkb2N1bWVudCIsIl8weDI2NWQ2ZiIsIl8weDVlODg4NCIsIl8weDM1YzZlNyIsIl8weDMyNzAwMyIsIl8weDIyNmMyMyIsIl8weDMxMjVmOSIsIl8weDM0ODcyNiIsIl8weDUyY2Y0YSIsIl8weDE0MmEzOCIsIl8weDJiZTIwYiIsIl8weDU3YmMxYiIsIl8weDFmY2EzOSIsIl8weDQ3ZWVhYyIsIl8weDRjN2FiOCIsIl8weDU2Mjc2NyIsIl8weDE0ZDczMSIsIl8weDVjM2FmMiIsIl8weDVhZjJkOSIsIl8weDJlOTc5YiIsIndpbmRvdyIsIl8weDUyZDQxMyIsIl8weDU5MWM4YyIsIl8weGYyZDQ5MyIsIl8weDI5M2Y0MCIsIl8weGFmY2E3ZCIsIl8weDJjYjBjZCIsIl8weDc2MGVmNyIsIl8weDI2YWY5MCIsIl8weDNhNjEzYSIsIl8weDFlNjZlYSIsIl8weDFjMzU2ZSIsIl8weDQ4MzQyYiIsIl8weDFjZjU3YSIsIl8weDMyNWU0ZiIsIl8weDJlYzQ4YiIsIl8weDQ3OGZhOCIsIl8weDFlNjk4ZCIsIl8weDFlZmYwYiIsIl8weGE5YWJkZSIsIl8weDI0ZWVlZCIsIl8weDMxYjZjNiIsIl8weDRiZTRjNCIsIl8weDIzMmQ5OSIsIl8weDJhMTQ5MSIsIl8weDQ2NWQzOCIsIl8weDRlYTdmNiIsIl8weDQ0ZDEyYSIsIl8weDVkMGZhMSIsIl8weDQ2NWVhMSIsIl8weDU5YWQ4NiIsIl8weDIyMWMzOSIsIl8weDI5NzZhZiIsIl8weDQxYTU5NSIsIl8weDFhZDJlNCIsIl8weDJjZjYzYiIsIl8weDJmNTVjOSIsIl8weDIxZTgzOSIsIl8weDE5MDgwNCIsIl8weDUyOWU4ZCIsIl8weDM3MTY0YyIsIl8weDVmNDY4YyIsIl8weDVlYmVhZSIsIl8weDE1ZTlkNyIsIl8weDNhODJjYiIsIl8weDk2YTExOCIsIl8weDE5OTZmMiIsIl8weDVkMDlkMiIsIl8weDQxOGJkYyIsIl8weGM4ZWU4MSIsIl8weDQzZDBiNyIsIl8weGZjODcyOCIsIl8weDU0ZGExMyIsIl8weDI5N2I0MiIsIl8weDNiYjk3NCIsIl8weDJiYmM3ZSIsIl8weDI5MTFjNSIsIl8weDJjOTNmNyIsIl8weDU2ODlmOCIsIl8weDFiYThmOSIsIl8weDRmMDI2ZSIsIl8weDRjOWY0NyIsIl8weDQ4OThmMyIsIl8weDIzNjJlNSIsIl8weDI1OGEwYiIsIl8weDUyMzkxYyIsIl8weDFmMDZiYSIsIl8weDNlOTJhOCIsIl8weDU1ZGFjMyIsIl8weDRmYjEyMCIsIl8weDI0OGMyZCIsIl8weDE3ZGM4NSIsIlNldCIsIl8weDE5MTExMiIsIl8weDM3NmZmNSIsIl8weDNmNzM0NyIsIl8weDI2MDliOSIsIl8weDEwYjI5YSIsIl8weDM1N2Q4NCIsIl8weDJjMWExNCIsIl8weDJiZjU5NCIsIl8weDE5ZGE3NyIsIl8weDhhMjY2NiIsIl8weGJiZmQ5YyIsIl8weDFmYTI1NiIsIl8weDIxMjJiZSIsIl8weDJiOWUwZSIsIm5hbWUiLCJfMHg1MmIwNzciLCJuYW1lc3BhY2VJbmRleCIsIl8weDI0MTM3MSIsIl8weDE4ZjljNCIsIl8weDQ3MjYzZiIsIl8weDU5YmRiNCIsIl8weDMzNTA0NyIsIl8weDFjYjk0YSIsIl8weDVkMmRjOCIsIl8weDEzNGEzNiIsIl8weDEyMTc4ZSIsIl8weDVmMDkxMiIsIl8weDE3ZTYwMSIsIl8weDJhZGY0YSIsIl8weDQyNjVmOSIsIl8weDQ2YTdkZiIsIl8weDY3NDE2NCIsIl8weDExZTQ4OSIsIl8weDQ0ZDA1MiIsIl8weDU2NTdjYiIsIl8weDJkZmY4NSIsIl8weDRiZDcyYyIsIl8weDIxYjdiNyIsIl8weDM5YzAzMCIsIl8weDMxMTk0NSIsIl8weDNkYWVmMSIsIl8weDU4MzU5OCIsIl8weDMxZDRmOSIsIl8weDQ5NmIwZiIsIl8weDM0YTIxOSIsIl8weDQ5YjQ4MyIsIl8weDE5OGQ5OCIsIl8weDVhYjA2ZiIsIl8weDRkYzBlMCIsIl8weDQzNWI4NyIsIl8weDM1M2ViMiIsIl8weDUzMzNkYSIsIl8weDJmMTJmYSIsIl8weDQwN2I0YSIsIl8weDU4Mzg5OCIsIl8weDUxMDUwYiIsIl8weDM4MDUxZCIsIl8weDM0ZWZiMCIsIl8weDFmMGRmYSIsIl8weGM5YjA5ZCIsIl8weDM3OGJhNyIsIl8weDRjMjE3MyIsIl8weDQyNjE5NSIsInNlY3VyaXR5TW9kZSIsIl8weDNlY2RlOSIsInNlY3VyaXR5UG9saWN5IiwiXzB4NGRiZDczIiwidXNlcklkZW50aXR5VHlwZSIsIl8weDZjYTk3MCIsImNyZWRlbnRpYWxzIiwiXzB4MmFkOTg0IiwibmFtZXNwYWNlQWxpYXNlcyIsIl8weDU2YTg5ZCIsIl8weDE5YTc4MSIsIl8weDJiZDQ5ZiIsIl8weDE4YWRhOSIsIl8weDM0ZGRkMyIsIl8weDJmZmM5ZiIsIl8weDExNmRkYyIsIl8weDM0NzAwYSIsIl8weDIzMDE2NSIsIl8weDQzYzZkZCIsIl8weDI4OTU0OCIsIl8weDRmZDAzMiIsIl8weDI5NTYyYyIsIl8weDRlYzc1MiIsIl8weDE0YWVlOCIsIl8weDI4MjFkNCIsIl8weDNmYzYzNCIsIl8weDU0YzhmNyJdLCJtYXBwaW5ncyI6Imd4TkFBQSxDQUFDLFUsQ0FDRyxhLHdCQUVBLFNBQVNBLFNBQVQsQ0FBcUNDLFNBQXJDLENBQTBDQyxTQUExQyxDLHdCQUNVQyxTQUFBLENBQVlDLENBQUEsQyxjQUFBLEMsQ0FDWkMsU0FBQSxDQUFnQkQsQ0FBQSxDLGVBQUEsQyxDQUVoQkUsU0FBQSxDQUE2QixJLDBCQUN6QkMsU0FBQSxDQUFXTixTQUFBLEMsZ0JBQUEsRSxNQUFBLEVBQWVFLFNBQUEsQyxLQUFBLEdBQWYsQyxDQUNqQkUsU0FBQSxDLGdCQUFBLEksR0FDSSxDQUFDRSxTQUFELEVBQWEsQ0FBQ0EsU0FBQSxDLGVBQUEsQyxDQUNkLE9BRUosVUFBV0MsU0FBWCxJQUFnQkQs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Q0FBVTdaLENBQUEsQyxnQkFBQSxFLGVBQUEsRSxnQkFBQSxDLENBQ1o2WixTLENBQ0E3WixDQUFBLEMsb0JBQUEsRSxnQkFBQSxFLEdBQUEsQyxDQUdBQSxDQUFBLEMsZ0JBQUEsRSxLQUFBLEUsR0FBQSxDLEVBTlIsQ0FSQSxDQW9CQSxNQUFNOFosU0FBQSxDQUFVOVosQ0FBQSxDLG9CQUFBLENBQWhCLENBQ0E4WixTQUFBLEMsZ0JBQUEsRUFBb0I3VixNQUFBLEMsZ0JBQUEsRUFBY0EsTUFBQSxDLGdCQUFBLEVBQWMsRUFBZCxDQUFrQnVWLFNBQUEsRUFBbEIsQ0FBZCxDQUFpRSxDLFFBQUUsQ0FBT08sU0FBUCxDLFFBQ3hFQSxTQUFBLEMsV0FBQSxJLFVBRHNFLEMsY0FHakYsQ0FBYUMsU0FBYixDLGlDQUNXQSxTQUFBLEMsY0FBQSxJLGdCQUpzRSxDQUFqRSxDQUFwQixDLENBT0FoYSxDQUFBLEMsZ0JBQUEsQ0FQQSxDQVFBLE1BQU1pYSxTQUFBLENBQWlCamEsQ0FBQSxDLGVBQUEsQ0FBdkIsQ0FDQWlhLFNBQUEsQyxnQkFBQSxFQUFrQ2hXLE1BQUEsQyxnQkFBQSxFQUFjLEVBQWQsQ0FBa0J1VixTQUFBLEVBQWxCLENBQWxDLEMsRUFyRTZDLEMsWUF1RWpELEUsMkJBQ1VVLFNBQUEsQ0FBbUJsYSxDQUFBLEMsZ0JBQUEsRSxNQUFBLEUsZ0JBQUEsQyxDQUNyQmthLFMsRUFDQWxhLENBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQXNDa2EsU0FBQSxDLEdBQUEsQyxHQUF0QyxDLENBQ0EsSyxnQkFBQSxFQUFjQSxTQUFBLEMsR0FBQSxDLE1BR2RsYSxDQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLEdBQUEsQyxDQUNBLEssZ0JBQUEsRSxNQS9FeUMsQ0FBckQsQyxFQTcwQ0osRyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgZnVuY3Rpb24gaW5zdGFsbFN1YnNjcmlwdGlvblNlbGVjdG9yKFJFRCwgbm9kZSkge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0ICRzdWJzY3JpcHRpb24gPSAkKFwiI25vZGUtaW5wdXQtc3Vic2NyaXB0aW9uXCIpO1xuICAgICAgICAvLyBkZWJ1Z2dlcjtcbiAgICAgICAgY29uc3QgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMgPSAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBlbmRwb2ludCA9IFJFRC5ub2Rlcy5ub2RlKCRlbmRwb2ludC52YWwoKSk7XG4gICAgICAgICAgICAkc3Vic2NyaXB0aW9uLmVtcHR5KCk7XG4gICAgICAgICAgICBpZiAoIWVuZHBvaW50IHx8ICFlbmRwb2ludC5zdWJzY3JpcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZm9yIChjb25zdCBzIG9mIGVuZHBvaW50LnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IHMubmFtZSB8fCBzLmlkO1xuICAgICAgICAgICAgICAgICQoXCI8b3B0aW9uLz5cIiwge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcy5pZCxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGxhYmVsLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZDogcy5pZCA9PT0gbm9kZS5zdWJzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgLnRleHQobGFiZWwpXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbygkc3Vic2NyaXB0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMoKTtcbiAgICAgICAgLy8gaGFja1xuICAgICAgICAvLyAkaW5wdXRBY3Rpb24ub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAvLyAgICAgJGVuZHBvaW50Lm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgLy8gICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucygpO1xuICAgICAgICAvLyAgICAgfSk7XG4gICAgICAgIC8vIH0pO1xuICAgICAgICAkc3Vic2NyaXB0aW9uLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgIG5vZGUuc3Vic2NyaXB0aW9uID0gJHN1YnNjcmlwdGlvbi52YWwoKTtcbiAgICAgICAgICAgIC8vICAgIGluc3RhbGxTdWJzY3JpcHRpb25PcHRpb25zKCk7XG4gICAgICAgIH0pO1xuICAgICAgICAkZW5kcG9pbnQub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAgICAgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG4gICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG4gICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG4gICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcbiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuICAgIC8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCwgSXRlcmF0b3IgKi9cclxuXHJcblxyXG4gICAgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdHlwZW9mIFN1cHByZXNzZWRFcnJvciA9PT0gXCJmdW5jdGlvblwiID8gU3VwcHJlc3NlZEVycm9yIDogZnVuY3Rpb24gKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7XHJcbiAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICAgICAgcmV0dXJuIGUubmFtZSA9IFwiU3VwcHJlc3NlZEVycm9yXCIsIGUuZXJyb3IgPSBlcnJvciwgZS5zdXBwcmVzc2VkID0gc3VwcHJlc3NlZCwgZTtcclxuICAgIH07XG5cbiAgICBjb25zdCBPcmdhbml6ZXNSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNVwiO1xuICAgIGNvbnN0IEZvbGRlclR5cGUgPSBcIm5zPTA7aT02MVwiO1xuICAgIGNvbnN0IEhhc0NvbXBvbmVudFJlZk5vZGVJZCA9IFwibnM9MDtpPTQ3XCI7XG4gICAgY29uc3QgSGFzUHJvcGVydHlSZWZOb2RlSWQgPSBcIm5zPTA7aT00NlwiO1xuICAgIGNvbnN0IEhhc0NoaWxkUmVmTm9kZUlkID0gXCJucz0wO2k9MzRcIjtcbiAgICBjb25zdCBIYXNTdWJ0eXBlUmVmTm9kZUlkID0gXCJucz0wO2k9NDVcIjtcbiAgICBjb25zdCBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZCA9IFwibnM9MDtpPTQwXCI7XG5cbiAgICB2YXIgQnJvd3NlRGlyZWN0aW9uO1xuICAgIChmdW5jdGlvbiAoQnJvd3NlRGlyZWN0aW9uKSB7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJGb3J3YXJkXCJdID0gMF0gPSBcIkZvcndhcmRcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmVyc2VcIl0gPSAxXSA9IFwiSW52ZXJzZVwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiQm90aFwiXSA9IDJdID0gXCJCb3RoXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZhbGlkXCJdID0gM10gPSBcIkludmFsaWRcIjtcbiAgICB9KShCcm93c2VEaXJlY3Rpb24gfHwgKEJyb3dzZURpcmVjdGlvbiA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzcztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzcykge1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVW5zcGVjaWZpZWRcIl0gPSAwXSA9IFwiVW5zcGVjaWZpZWRcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlXCJdID0gMl0gPSBcIlZhcmlhYmxlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlVHlwZVwiXSA9IDE2XSA9IFwiVmFyaWFibGVUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZpZXdcIl0gPSAxMjhdID0gXCJWaWV3XCI7XG4gICAgfSkoTm9kZUNsYXNzIHx8IChOb2RlQ2xhc3MgPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3NNYXNrO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzTWFzaykge1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZhcmlhYmxlXCJdID0gMl0gPSBcIlZhcmlhYmxlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZhcmlhYmxlVHlwZVwiXSA9IDE2XSA9IFwiVmFyaWFibGVUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZpZXdcIl0gPSAxMjhdID0gXCJWaWV3XCI7XG4gICAgfSkoTm9kZUNsYXNzTWFzayB8fCAoTm9kZUNsYXNzTWFzayA9IHt9KSk7XG4gICAgdmFyIFJlc3VsdE1hc2s7XG4gICAgKGZ1bmN0aW9uIChSZXN1bHRNYXNrKSB7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAxXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJJc0ZvcndhcmRcIl0gPSAyXSA9IFwiSXNGb3J3YXJkXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIk5vZGVDbGFzc1wiXSA9IDRdID0gXCJOb2RlQ2xhc3NcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiQnJvd3NlTmFtZVwiXSA9IDhdID0gXCJCcm93c2VOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkRpc3BsYXlOYW1lXCJdID0gMTZdID0gXCJEaXNwbGF5TmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJUeXBlRGVmaW5pdGlvblwiXSA9IDMyXSA9IFwiVHlwZURlZmluaXRpb25cIjtcbiAgICB9KShSZXN1bHRNYXNrIHx8IChSZXN1bHRNYXNrID0ge30pKTtcbiAgICAvLyAgY29uc3QgcSA9IFJlZmVyZW5jZVR5cGVJZHMuT3JnYW5pemVzO1xuICAgIGZ1bmN0aW9uIHJlc29sdmVOb2RlSWQobm9kZUlkTGlrZSkge1xuICAgICAgICBzd2l0Y2ggKG5vZGVJZExpa2UpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPcmdhbml6ZXNcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gT3JnYW5pemVzUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1Byb3BlcnR5XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1Byb3BlcnR5UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NvbXBvbmVudFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDb21wb25lbnRSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ2hpbGRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ2hpbGRSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzU3VidHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNTdWJ0eXBlUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1R5cGVEZWZpbml0aW9uXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZ2V0SWNvbiA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgc3dpdGNoIChyZWZlcmVuY2Uubm9kZUNsYXNzKSB7XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0XCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IE9yZ2FuaXplc1JlZk5vZGVJZCkgO1xuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UudHlwZURlZmluaXRpb24gPT09IEZvbGRlclR5cGUgfHwgcmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gXCJpPTYxXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1mb2xkZXJcIiwgY29sb3I6IFwicmdiYSg2MSwgNjAsIDQsIDAuNTI1KVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIlNlYUdyZWVuXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNDb21wb25lbnRSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJTdGVlbEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNQcm9wZXJ0eVJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkRvZGdlckJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgXCJNZXRob2RcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWNvZ1wiLCBjb2xvcjogXCJTYW5keUJyb3duXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1zbGlkZXJzXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIkRhdGFUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS10ZXh0LXdpZHRoXCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1xdWVzdGlvblwiLCBjb2xvcjogXCJncmV5XCIgfTtcbiAgICB9O1xuXG4gICAgY29uc3QgYnJvd3NlID0gKF9hLCBub2RlSWRfMSwgdGVtcGxhdGVfMSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hLCBub2RlSWRfMSwgdGVtcGxhdGVfMV0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkLCB0ZW1wbGF0ZSkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZm9yLW5vZGUtcmVkYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vYnJvd3NlYDtcbiAgICAgICAgY29uc3QgYnJvd3NlRGVzY3JpcHRpb24gPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRlbXBsYXRlKSwgeyBub2RlSWQsIHJlc3VsdE1hc2s6IDYzIH0pO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBicm93c2VEZXNjcmlwdGlvbixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzOiBbXSB9O1xuICAgICAgICB9XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiYnJvd3NlIGZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZXMgPSByZXNwb25zZS5icm93c2VSZXN1bHQucmVmZXJlbmNlcyB8fCBbXTtcbiAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlcyB9O1xuICAgIH0pO1xuXG4gICAgY29uc3QgdGVtcGxhdGUxID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNDaGlsZFwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IHRlbXBsYXRlMiA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiT3JnYW5pemVzXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3Qgd2Fsa0JhY2t3YXJkID0gKF9hLCBfYikgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hLCBfYl0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgeyBub2RlSWQsIHJvb3ROb2RlSWQsIGlzVHlwZSB9KSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1mb3Itbm9kZS1yZWRgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS93YWxrLWJhY2t3YXJkYDtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgICAgIHJvb3ROb2RlSWQsXG4gICAgICAgICAgICAgICAgaXNUeXBlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIHJldHVybiBqc29uLmJyb3dzZVBhdGg7XG4gICAgfSk7XG4gICAgY29uc3QgY2hvb3NlTm9kZUlkID0gKGRhdGEsIG1vZGUpID0+IHtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzQ29kZSAhPT0gXCJHb29kXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRhLnJlcXVlc3RlZE5vZGVJZDtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJicm93c2VQYXRoXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEuYnBfaW5kZXhlZDtcbiAgICAgICAgICAgIGNhc2UgXCJhbGlhc2VkQnJvd3NlUGF0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLmJwX2FsaWFzZWQgfHwgZGF0YS5icF9pbmRleGVkO1xuICAgICAgICAgICAgY2FzZSBcImFsaWFzZWROb2RlSWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5ub2RlSWRfYWxpYXNlZCB8fCBkYXRhLm5vZGVJZF9uc3U7XG4gICAgICAgICAgICBjYXNlIFwibnN1Tm9kZUlEXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEubm9kZUlkX25zdTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBjYXNlIFwibm9kZUlkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEubm9kZUlkO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBtYWtlVG9vbHRpcCA9IChkYXRhKSA9PiB7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1c0NvZGUgIT09IFwiR29vZFwiKSB7XG4gICAgICAgICAgICByZXR1cm4gYHN0YXR1c0NvZGU6ICR7ZGF0YS5zdGF0dXNDb2RlfWA7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBsZXQgc3RyID0gW107XG4gICAgICAgICAgICBzdHIucHVzaChgbm9kZUlkOiAke2RhdGEubm9kZUlkfWApO1xuICAgICAgICAgICAgc3RyLnB1c2goYGJyb3dzZSBwYXRoOiAke2RhdGEuYnBfaW5kZXhlZH1gKTtcbiAgICAgICAgICAgIHN0ci5wdXNoKGBub2RlIGNsYXNzOiAke05vZGVDbGFzc1tkYXRhLm5vZGVDbGFzc119YCk7XG4gICAgICAgICAgICBpZiAoZGF0YS5ub2RlSWRfbnN1KSB7XG4gICAgICAgICAgICAgICAgc3RyLnB1c2goYG5zdSBub2RlSWQ6ICR7ZGF0YS5ub2RlSWRfbnN1fWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEubm9kZUlkX2FsaWFzZWQpIHtcbiAgICAgICAgICAgICAgICBzdHIucHVzaChgYWxpYXNlZCBOb2RlSWQ6ICR7ZGF0YS5ub2RlSWRfYWxpYXNlZH1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmJwX2luZGV4ZWQpIHtcbiAgICAgICAgICAgICAgICBzdHIucHVzaChgYWxpYXNlZCBicm93c2VQYXRoOiAke2RhdGEuYnBfYWxpYXNlZH1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBzdHIuam9pbihcIlxcblwiKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgZnVuY3Rpb24gZmlndXJlT3V0TW9kZShlbmhhbmNlZE5vZGVJZCkge1xuICAgICAgICBpZiAoZW5oYW5jZWROb2RlSWQubWF0Y2goL15uc3U9LykpIHtcbiAgICAgICAgICAgIHJldHVybiBcIm5zdU5vZGVJRFwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbmhhbmNlZE5vZGVJZC5tYXRjaCgvXihucz0uKjspPyhpfGJ8c3xnKT0vKSkge1xuICAgICAgICAgICAgcmV0dXJuIFwibm9kZUlkXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVuaGFuY2VkTm9kZUlkLm1hdGNoKC9ebnNhPS8pKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJhbGlhc2VkTm9kZUlkXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVuaGFuY2VkTm9kZUlkLm1hdGNoKC9eKFxcL3xcXC4pWzAtOV0rOi8pKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJicm93c2VQYXRoXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVuaGFuY2VkTm9kZUlkLm1hdGNoKC9eKFxcL3xcXC4pLio6LykpIHtcbiAgICAgICAgICAgIHJldHVybiBcImJyb3dzZVBhdGhcIjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBmaWd1cmVPdXRNZW5VSXRlbVZhbHVlKHN0cikge1xuICAgICAgICBjb25zdCBtb2RlID0gZmlndXJlT3V0TW9kZShzdHIpO1xuICAgICAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJub2RlSWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJuXCI7XG4gICAgICAgICAgICBjYXNlIFwiYWxpYXNlZE5vZGVJZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm5hXCI7XG4gICAgICAgICAgICBjYXNlIFwibnN1Tm9kZUlEXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwibnN1XCI7XG4gICAgICAgICAgICBjYXNlIFwiYnJvd3NlUGF0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcImJcIjtcbiAgICAgICAgICAgIGNhc2UgXCJhbGlhc2VkQnJvd3NlUGF0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcImFiXCI7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBcInRcIjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiB0b01vZGUodikge1xuICAgICAgICBsZXQgbW9kZTtcbiAgICAgICAgc3dpdGNoICh2KSB7XG4gICAgICAgICAgICBjYXNlIFwiblwiOlxuICAgICAgICAgICAgICAgIG1vZGUgPSBcIm5vZGVJZFwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcIm5hXCI6XG4gICAgICAgICAgICAgICAgbW9kZSA9IFwiYWxpYXNlZE5vZGVJZFwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcIm5zdVwiOlxuICAgICAgICAgICAgICAgIG1vZGUgPSBcIm5zdU5vZGVJRFwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcImJcIjpcbiAgICAgICAgICAgICAgICBtb2RlID0gXCJicm93c2VQYXRoXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwiYWJcIjpcbiAgICAgICAgICAgICAgICBtb2RlID0gXCJhbGlhc2VkQnJvd3NlUGF0aFwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtb2RlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBmcm9tTW9kZShtb2RlKSB7XG4gICAgICAgIHN3aXRjaCAobW9kZSkge1xuICAgICAgICAgICAgY2FzZSBcIm5vZGVJZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm5cIjtcbiAgICAgICAgICAgIGNhc2UgXCJhbGlhc2VkTm9kZUlkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwibmFcIjtcbiAgICAgICAgICAgIGNhc2UgXCJuc3VOb2RlSURcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJuc3VcIjtcbiAgICAgICAgICAgIGNhc2UgXCJicm93c2VQYXRoXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiYlwiO1xuICAgICAgICAgICAgY2FzZSBcImFsaWFzZWRCcm93c2VQYXRoXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiYWJcIjtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwidFwiO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IF9jYWxsQ2hlY2tOb2RlSWQgPSAoX2EsIG5vZGVJZF8xKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIG5vZGVJZF8xXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWZvci1ub2RlLXJlZGA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2NoZWNrTm9kZUlkYDtcbiAgICAgICAgY29uc3QgZUlkID0gZW5kcG9pbnROb2RlLmlkO1xuICAgICAgICBjb25zdCBuID0gUkVELm5vZGVzLm5vZGUoZUlkKTtcbiAgICAgICAgY29uc29sZS5sb2cobi5uYW1lc3BhY2VBbGlhc2VzKTtcbiAgICAgICAgbi5uYW1lc3BhY2VBbGlhc2VzO1xuICAgICAgICBjb25zdCBuYW1lc3BhY2VBbGlhc2VzID0gZW5kcG9pbnROb2RlLm5hbWVzcGFjZUFsaWFzZXM7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgICAgICBuYW1lc3BhY2VBbGlhc2VzLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBqc29uID0gKHlpZWxkIGRhdGEuanNvbigpKTtcbiAgICAgICAgcmV0dXJuIHsganNvbiwgZGF0YSB9O1xuICAgIH0pO1xuICAgIGNvbnN0IGludGVybmFsVmVyaWZ5ID0gKF9hLCBtb2RlXzEsICRpbnB1dEVsZW1lbnRfMSwgJGluZm9fMSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hLCBtb2RlXzEsICRpbnB1dEVsZW1lbnRfMSwgJGluZm9fMV0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbW9kZSwgJGlucHV0RWxlbWVudCwgJGluZm8pIHtcbiAgICAgICAgY29uc3QgZW5oYW5jZWROb2RlSWQgPSAkaW5wdXRFbGVtZW50LnZhbCgpO1xuICAgICAgICBjb25zdCB7IGpzb24sIGRhdGEgfSA9IHlpZWxkIF9jYWxsQ2hlY2tOb2RlSWQoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIGVuaGFuY2VkTm9kZUlkKTtcbiAgICAgICAgY29uc3Qgc2V0Tm90aWZpY2F0aW9uID0gKHRleHQsIGNsYXNzTmFtZSkgPT4ge1xuICAgICAgICAgICAgJGluZm8udGV4dCh0ZXh0KS5hZGRDbGFzcyhcInN0ZXJmaXZlLWluZm9cIikuYWRkQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICRpbmZvLnNob3coKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICRpbmZvLnJlbW92ZUNsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAgICAgJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgfSwgMzAwMCk7XG4gICAgICAgIH07XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgZW5oYW5jZWROb2RlSWQsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChqc29uLnN0YXR1c0NvZGUubWF0Y2goL0dvb2QvKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvb2x0aXAgPSBtYWtlVG9vbHRpcChqc29uKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LmF0dHIoXCJ0aXRsZVwiLCB0b29sdGlwKTtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZE5vZGVJZCA9IGNob29zZU5vZGVJZChqc29uLCBtb2RlKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChzZWxlY3RlZE5vZGVJZCk7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihcIkdvb2RcIiwgXCJva1wiKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKGAke2VuaGFuY2VkTm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBmdW5jdGlvbiBmZXRjaENoaWxkcmVuKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUxKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDIgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTIpO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VzOiBbLi4uYnJvd3NlUmVzdWx0MS5yZWZlcmVuY2VzLCAuLi5icm93c2VSZXN1bHQyLnJlZmVyZW5jZXNdLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IHRlbXBsYXRlU1QgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc1N1YnR5cGVcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfCBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8IE5vZGVDbGFzcy5EYXRhVHlwZSB8IE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgZnVuY3Rpb24gZmV0Y2hTdWJ0eXBlcygkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlU1QpO1xuICAgICAgICAgICAgcmV0dXJuIGJyb3dzZVJlc3VsdDE7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBtYWtlRWxlbWVudCQxID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2Q7XG4gICAgICAgIGlmICghcmVmZXJlbmNlIHx8ICFyZWZlcmVuY2Uubm9kZUlkKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCB0aXRsZSA9IGAoJHtyZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCl9KSAkeygoX2MgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLm5hbWUpIHx8ICgoX2QgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC50ZXh0KSB8fCBcIlwifWA7XG4gICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpIGtleT1cIiR7cmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpfVwifT48c3BhbiBjbGFzcz1cInRyZWUtdGV4dFwiIHRpdGxlPSR7dGl0bGV9PjxpIGNsYXNzPVwiZmEgJHtpY29ufVwiIHN0eWxlPVwiY29sb3I6JHtjb2xvcn07XCI+PC9pPiAke3R9PC9zcGFuPjx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICRlbGVtZW50LmFkZENsYXNzKFwiZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInZhbHVlXCIsIG4pO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICB9O1xuICAgIGNvbnN0IGZpbmRFbGVtZW50ID0gKG5vZGVJZCwgJHRyZWUpID0+IHtcbiAgICAgICAgcmV0dXJuICR0cmVlLmZpbmQoYGxpW2tleT1cIiR7bm9kZUlkfVwiXWApO1xuICAgIH07XG4gICAgY29uc3Qgc2VsZWN0U2luZ2xlID0gKHRoYXQsICRsaSkgPT4ge1xuICAgICAgICB0aGF0LiR0cmVlLmZpbmQoXCJsaSA+IC50cmVlLXRleHRcIikucmVtb3ZlQ2xhc3MoXCJzZWxlY3RlZFwiKTtcbiAgICAgICAgLy8gY2xlYXIgYWxsIHNlbGVjdGVkIGl0ZW1zXG4gICAgICAgICRsaS5maW5kKFwiLnRyZWUtdGV4dDpmaXJzdFwiKS5hZGRDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgIH07XG4gICAgY29uc3QgYXV0b0V4cGFuZCA9ICh0aGF0LCBicm93c2VQYXRoLCAkdHJlZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIC8vIGV4cGFuZCB0aGUgdHJlZSB0byBzaG93IHRoZSBub2RlSWRcbiAgICAgICAgbGV0ICRjdXJyZW50ID0gJHRyZWUuY2hpbGRyZW4oXCI6Zmlyc3RcIik7XG4gICAgICAgIGJyb3dzZVBhdGgucmVsYXRpdmVQYXRoLmVsZW1lbnRzIHx8IFtdO1xuICAgICAgICBjb25zdCBub2RlSWRzID0gYnJvd3NlUGF0aC5ub2RlSWRzIHx8IFtdO1xuICAgICAgICBpZiAobm9kZUlkcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IG4gb2Ygbm9kZUlkcykge1xuICAgICAgICAgICAgaWYgKCRjdXJyZW50Lmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgIC8vIG5lZWQgdG8gZXhwYW5kIGFuZCBzZWxlY3QgdGhlIHJpZ2h0IGVsZW1lbnRcbiAgICAgICAgICAgICAgICB5aWVsZCBfZXhwYW5kTGkodGhhdCwgJGN1cnJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBmaW5kRWxlbWVudChuLCAkY3VycmVudCk7XG4gICAgICAgICAgICBpZiAoJGVsZW1lbnQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGN1cnJlbnQgPSAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBzZWxlY3RTaW5nbGUodGhhdCwgJGN1cnJlbnQpO1xuICAgICAgICBzY3JvbGxUb0xpKHRoYXQuJGRyb3Bkb3duLCAkY3VycmVudCk7XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gc2Nyb2xsVG9MaSgkY29udGFpbmVyLCAkdGFyZ2V0TGkpIHtcbiAgICAgICAgLy8gR2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgdGFyZ2V0IGl0ZW0gcmVsYXRpdmUgdG8gaXRzIGNvbnRhaW5lclxuICAgICAgICBjb25zdCBsaVBvcyA9ICR0YXJnZXRMaS5wb3NpdGlvbigpLnRvcDtcbiAgICAgICAgLy8gR2V0IHRoZSBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbiBvZiB0aGUgY29udGFpbmVyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclNjcm9sbFRvcCA9ICRjb250YWluZXIuc2Nyb2xsVG9wKCk7XG4gICAgICAgIGlmIChjb250YWluZXJTY3JvbGxUb3AgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBwb3NpdGlvbiB0byBzY3JvbGwgdG8gKGN1cnJlbnQgc2Nyb2xsICsgaXRlbSdzIHBvc2l0aW9uKVxuICAgICAgICAvLyBBZGp1c3QgdGhpcyBjYWxjdWxhdGlvbiBiYXNlZCBvbiB5b3VyIG5lZWRzXG4gICAgICAgIGNvbnN0IHNjcm9sbFRvID0gY29udGFpbmVyU2Nyb2xsVG9wICsgbGlQb3MgLSAkY29udGFpbmVyLmhlaWdodCgpIC8gMiArICR0YXJnZXRMaS5oZWlnaHQoKSAvIDI7XG4gICAgICAgIC8vIFNjcm9sbCB0aGUgY29udGFpbmVyIHRvIGVuc3VyZSB0aGUgaXRlbSBpcyB2aXNpYmxlXG4gICAgICAgICRjb250YWluZXIuYW5pbWF0ZSh7XG4gICAgICAgICAgICBzY3JvbGxUb3A6IHNjcm9sbFRvLFxuICAgICAgICB9LCA1MDApOyAvLyBBZGp1c3QgdGhlIGR1cmF0aW9uICg1MDBtcykgYXMgbmVlZGVkXG4gICAgfVxuICAgIGNvbnN0IHJlYWNoU2VsZWN0aW9uID0gKHRoYXQsIHBhcmVudE5vZGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBub2RlSWQgPSB0aGF0LiRpbnB1dC52YWwoKTtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIHJvb3ROb2RlSWQ6IHBhcmVudE5vZGUubm9kZUlkLFxuICAgICAgICAgICAgaXNUeXBlOiB0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmIHx8IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgIGNvbnN0IGJyb3dzZVBhdGggPSB5aWVsZCB3YWxrQmFja3dhcmQoZGF0YSwgb3B0aW9ucyk7XG4gICAgICAgIGlmICghYnJvd3NlUGF0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHlpZWxkIGF1dG9FeHBhbmQodGhhdCwgYnJvd3NlUGF0aCwgdGhhdC4kdHJlZSk7XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gX2ZldGNoRGF0YUZvck5vZGUodGhhdCwgJG5vZGUsIGZldGNoRnVuYywgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImxvYWRpbmdcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgbG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgICAgICAkbm9kZS5hcHBlbmQoJzxkaXYgY2xhc3M9XCJzcGlubmVyXCI+PC9kaXY+Jyk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHJlZmVyZW5jZXMgfSA9IHlpZWxkIGZldGNoRnVuYygkbm9kZSwgZGF0YSk7XG4gICAgICAgICAgICAgICAgLy8gc29ydCByZWZlcmVuY2UgICBieSBicm93c2VOYW1lXG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlcy5zb3J0KChhLCBiKSA9PiB7IHZhciBfYSwgX2I7IHJldHVybiAoKChfYSA9IGEuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5hbWUpIHx8IFwiXCIpLmxvY2FsZUNvbXBhcmUoKChfYiA9IGIuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IFwiXCIpOyB9KTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHJlZmVyZW5jZSBvZiByZWZlcmVuY2VzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuZmlsdGVyICYmICF0aGF0Lm9wdGlvbnMuZmlsdGVyKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQkMShyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWFrZUNvbm5lY3Rpb24odGhhdCkge1xuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgZnVuY3Rpb24gX2V4cGFuZExpKHRoYXQsICRsaSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgY29uc3QgZiA9ICF0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmID8gZmV0Y2hDaGlsZHJlbiA6IGZldGNoU3VidHlwZXM7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHlpZWxkIF9mZXRjaERhdGFGb3JOb2RlKHRoYXQsICRsaSwgZiwgZGF0YSk7XG4gICAgICAgICAgICAgICAgLy8gbWFyayBhcyBleHBhbmRlZFxuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgZGVmYXVsdFBhcmVudE5vZGUgPSB7XG4gICAgICAgIGJyb3dzZU5hbWU6IHsgbmFtZXNwYWNlSW5kZXg6IDAsIG5hbWU6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgIG5vZGVDbGFzczogXCJPYmplY3RcIixcbiAgICAgICAgbm9kZUlkOiBcIm5zPTA7aT04NVwiLFxuICAgICAgICBkaXNwbGF5TmFtZTogeyB0ZXh0OiBcIk9iamVjdHNcIiB9LFxuICAgICAgICB0eXBlRGVmaW5pdGlvbjogRm9sZGVyVHlwZSxcbiAgICB9O1xuICAgIGNvbnN0IGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFsgVGVtcGVyYXR1cmUgIF1cbiAgICAgICAgICogICAoIHRvb2x0aXAgOiAoL09iamVjdHMvTXlTZW5zb3IpIChucz0xO3M9VGVtcGVyYXR1cmUpKVxuICAgICAgICAgKiBbICsgW0ZvbGRlcl0gT2JqZWN0c11cbiAgICAgICAgICogWyAgICAgW09iamVjdF0gTXlTZW5zb3JdXG4gICAgICAgICAqIFsgICAgICggKSBbVmFyaWFibGVdIFRlbXBlcmF0dXJlXVxuICAgICAgICAgKi9cbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5ub2RlQnJvd3NlclwiLCB7XG4gICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6ICgpID0+ICh7IGVuZHBvaW50OiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzXCIgfSksXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlOiAoKSA9PiBkZWZhdWx0UGFyZW50Tm9kZSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6ICgpID0+IHRydWUsXG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgICAgICBpc1R5cGVSZWY6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc29sdmVQYXJlbnROb2RlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5fX3BhcmVudE5vZGUgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdHlwZW9mIHRoYXQub3B0aW9ucy5wYXJlbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZS5jYWxsKHRoYXQpIDogdGhhdC5vcHRpb25zLnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYSBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkZXNjID0geWllbGQgYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9fcGFyZW50Tm9kZSA9IGRlc2M7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9fcGFyZW50Tm9kZSA9IGE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoYXQuX19wYXJlbnROb2RlIHx8IGRlZmF1bHRQYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc2V0KCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICAvLyBhbHNvIHJlc2V0IHBhcmVudCBub2RlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0aGF0O1xuICAgICAgICAgICAgICAgICAgICBhLl9fcGFyZW50Tm9kZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnROb2RlID0geWllbGQgdGhpcy5yZXNvbHZlUGFyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50JDEocGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5jdXJyZW50UGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2ZXJpZnkobW9kZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgICAgICAgICAgaW50ZXJuYWxWZXJpZnkoZGF0YSwgbW9kZSwgdGhhdC4kaW5wdXQsIHRoYXQuJGluZm8pLnRoZW4oKHN1Y2Nlc3MpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcImlucHV0LWVycm9yXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kY29tYm8ucmVtb3ZlQ2xhc3MoXCJpbnB1dC1lcnJvclwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9oaWRlTWVudShtZW51KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub2ZmKFwibW91c2Vkb3duLnJlZC11aS10eXBlZElucHV0LWNsb3NlLXByb3BlcnR5LXNlbGVjdFwiKTtcbiAgICAgICAgICAgICAgICBtZW51LmhpZGUoKTtcbiAgICAgICAgICAgICAgICBtZW51LmNzcyh7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogXCJhdXRvXCIsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKG1lbnUub3B0cy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ZWQgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgbWVudS5maW5kKCdpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0nKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLnByb3AoXCJjaGVja2VkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQucHVzaCgkKHRoaXMpLmRhdGEoXCJ2YWx1ZVwiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBtZW51LmNhbGxiYWNrKHNlbGVjdGVkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoYXQuJGVsZW1lbnREaXYuaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgICAgIC8veHggfSBlbHNlIGlmICh0aGlzLiRvcHRpb25TZWxlY3RUcmlnZ2VyLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgLy94eCAgICAgdGhhdC4kb3B0aW9uU2VsZWN0VHJpZ2dlci50cmlnZ2VyKFwiZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyLnRyaWdnZXIoXCJmb2N1c1wiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZU1lbnUobWVudU9wdGlvbnMsIG9wdHMsIGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1lbnUgPSAkKFwiPGRpdj5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS10eXBlZElucHV0LW9wdGlvbnMgc3RlcmZpdmUtb25saW5lLW1lbnVcIik7XG4gICAgICAgICAgICAgICAgbWVudS5vcHRzID0gb3B0cztcbiAgICAgICAgICAgICAgICBtZW51LmNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgICAgICAgICAgICAgbWVudU9wdGlvbnMuZm9yRWFjaCgob3B0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcHQgPSB7IHZhbHVlOiBvcHQsIGxhYmVsOiBvcHQgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB2YXIgb3AgPSAkKCc8YSBocmVmPVwiI1wiPjwvYT4nKS5hdHRyKFwidmFsdWVcIiwgb3B0LnZhbHVlKS5hcHBlbmRUbyhtZW51KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdC5sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3AudGV4dChvcHQubGFiZWwpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcHQudGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wLnByb3AoXCJ0aXRsZVwiLCBvcHQudGl0bGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcHQuaWNvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wdC5pY29uLmluZGV4T2YoXCI8XCIpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChvcHQuaWNvbikucHJlcGVuZFRvKG9wKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKG9wdC5pY29uLmluZGV4T2YoXCIvXCIpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCI8aT5cIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJyZWQtdWktdHlwZWRJbnB1dC1pY29uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiBcIm1hc2staW1hZ2U6IHVybChcIiArIG9wdC5pY29uICsgXCIpOyAtd2Via2l0LW1hc2staW1hZ2U6IHVybChcIiArIG9wdC5pY29uICsgXCIpO1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLnByZXBlbmRUbyhvcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiPGk+XCIsIHsgY2xhc3M6IFwicmVkLXVpLXR5cGVkSW5wdXQtaWNvbiBcIiArIG9wdC5pY29uIH0pLnByZXBlbmRUbyhvcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcC5jc3MoeyBwYWRkaW5nTGVmdDogXCIxOHB4XCIgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFvcHQuaWNvbiAmJiAhb3B0LmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcC50ZXh0KG9wdC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmFyIGNiO1xuICAgICAgICAgICAgICAgICAgICBpZiAob3B0cy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2IgPSAkKCc8aW5wdXQgdHlwZT1cImNoZWNrYm94XCI+JylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY3NzKFwicG9pbnRlci1ldmVudHNcIiwgXCJub25lXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmRhdGEoXCJ2YWx1ZVwiLCBvcHQudmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByZXBlbmRUbyhvcClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAub24oXCJtb3VzZWRvd25cIiwgZnVuY3Rpb24gKGV2dCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgb3Aub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghb3B0cy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKG9wdC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5faGlkZU1lbnUobWVudSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYi5wcm9wKFwiY2hlY2tlZFwiLCAhY2IucHJvcChcImNoZWNrZWRcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBtZW51LmNzcyh7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IFwibm9uZVwiLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIG1lbnUub24oXCJrZXlkb3duXCIsIGZ1bmN0aW9uIChldnQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXlDb2RlID09PSA0MCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBET1dOXG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmNoaWxkcmVuKFwiOmZvY3VzXCIpLm5leHQoKS50cmlnZ2VyKFwiZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoZXZ0LmtleUNvZGUgPT09IDM4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVQXG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmNoaWxkcmVuKFwiOmZvY3VzXCIpLnByZXYoKS50cmlnZ2VyKFwiZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoZXZ0LmtleUNvZGUgPT09IDI3KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBFU0NBUEVcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5faGlkZU1lbnUobWVudSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBtZW51O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRpc2FybUNsaWNrOiBmYWxzZSxcbiAgICAgICAgICAgIF9zaG93TWVudShtZW51LCByZWxhdGl2ZVRvKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGlzYXJtQ2xpY2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNhcm1DbGljayA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB2YXIgcG9zID0gcmVsYXRpdmVUby5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICB2YXIgaGVpZ2h0ID0gcmVsYXRpdmVUby5oZWlnaHQoKTtcbiAgICAgICAgICAgICAgICB2YXIgbWVudUhlaWdodCA9IG1lbnUuaGVpZ2h0KCk7XG4gICAgICAgICAgICAgICAgdmFyIHRvcCA9IGhlaWdodCArIHBvcy50b3A7XG4gICAgICAgICAgICAgICAgaWYgKHRvcCArIG1lbnVIZWlnaHQgLSAkKGRvY3VtZW50KS5zY3JvbGxUb3AoKSA+ICQod2luZG93KS5oZWlnaHQoKSkge1xuICAgICAgICAgICAgICAgICAgICB0b3AgLT0gdG9wICsgbWVudUhlaWdodCAtICQod2luZG93KS5oZWlnaHQoKSArIDU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0b3AgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIG1lbnUuaGVpZ2h0KG1lbnVIZWlnaHQgKyB0b3ApO1xuICAgICAgICAgICAgICAgICAgICB0b3AgPSAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBtZW51LmNzcyh7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogdG9wICsgXCJweFwiLFxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiBwb3MubGVmdCArIFwicHhcIixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBtZW51LnNsaWRlRG93bigxMDApO1xuICAgICAgICAgICAgICAgIHRoaXMuX2RlbGF5KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdWlTZWxlY3QuYWRkQ2xhc3MoXCJyZWQtdWktdHlwZWRJbnB1dC1mb2N1c1wiKTtcbiAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJtb3VzZWRvd24ucmVkLXVpLXR5cGVkSW5wdXQtY2xvc2UtcHJvcGVydHktc2VsZWN0XCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdChtZW51KS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9oaWRlTWVudShtZW51KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkKGV2ZW50LnRhcmdldCkuY2xvc2VzdChyZWxhdGl2ZVRvKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LmRpc2FybUNsaWNrID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfc2hvd1R5cGVNZW51KCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Nob3dNZW51KHRoYXQuJG1lbnUsIHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgdHlwZSA9IHRoYXQuc2VsZWN0ZWRNZW51SXRlbTtcbiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ZWQgPSB0aGF0LiRtZW51LmZpbmQoXCJbdmFsdWU9J1wiICsgdHlwZSArIFwiJ1wiKTtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgIH0sIDEyMCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2luaXRNZW51KCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdFRyaWdnZXIuYXR0cihcInRhYmluZGV4XCIsIC0xKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyLm9uKFwibW91c2Vkb3duLnJlZC11aS10eXBlZElucHV0LWZvY3VzLWJsb2NrXCIsIGZ1bmN0aW9uIChldnQpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKHRoYXQuJG1lbnUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kbWVudS5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gZmEtaWQtY2FyZFxuICAgICAgICAgICAgICAgIGNvbnN0IHR5cGVMaXN0ID0gW1xuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiBcInRleHRcIiwgdmFsdWU6IFwidFwiLCB0aXRsZTogXCJWYWx1ZSBpcyBub3QgdmVyaWZpZWRcIiwgaWNvbjogJzxpIGNsYXNzPVwiZmEgZmEtZm9udFwiL2k+ICcgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwibXNnLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwibXNnXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXCJub2RlIGlkIG9yICBicm93c2UgcGF0aCBjb21lcyBmcm9tIGluamVjdGVkIG1zZyBwYXJhbWV0ZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICc8aSBjbGFzcz1cImZhIGZhLWVudmVsb3BlLW9wZW4tb1wiLz4nLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiBcIk5vZGVJZFwiLCB2YWx1ZTogXCJuXCIsIGljb246ICc8aSBjbGFzcz1cImZhIGZhLXRhZ1wiLz4xICZuYnNwOyAnIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6IFwiQWxpYXNlZCBOb2RlSWRcIiwgdmFsdWU6IFwibmFcIiwgaWNvbjogJzxpIGNsYXNzPVwiZmEgZmEtYm9va21hcmtcIi8+Jm5ic3A7ICcgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogXCJOb2RlSWQgd2l0aCBuYW1lc3BhY2UgVXJuXCIsIHZhbHVlOiBcIm5zdVwiLCBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS1pZC1jYXJkXCIvPiZuYnNwOyAnIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6IFwiQnJvd3NlUGF0aFwiLCB2YWx1ZTogXCJiXCIsIGljb246ICc8aSBjbGFzcz1cImZhIGZhLXRhZ1wiLz48aSBjbGFzcz1cImZhIGZhLWZpZ2h0ZXItamV0XCIvPiZuYnNwOycgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiQWxpYXNlZCBCcm93c2UgUGF0aFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiYWJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICc8aSBjbGFzcz1cImZhIGZhLWJvb2ttYXJrXCIvPjxpIGNsYXNzPVwiZmEgZmEtZmlnaHRlci1qZXRcIi8+Jm5ic3A7JyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGEgPSBmaWd1cmVPdXRNZW5VSXRlbVZhbHVlKHRoYXQuJGlucHV0LnZhbCgpKTtcbiAgICAgICAgICAgICAgICBjb25zdCBlID0gdHlwZUxpc3QuZmluZCgoeCkgPT4geC52YWx1ZSA9PT0gYSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0TGFiZWwuZW1wdHkoKS5hcHBlbmQoYDxzcGFuIHRpdGxlPSR7KGUgPT09IG51bGwgfHwgZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZS50aXRsZSkgfHwgXCJcIn0+Jm5ic3A7ICR7KGUgPT09IG51bGwgfHwgZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZS5pY29uKSB8fCBcIlwifTwvc3Bhbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LnNlbGVjdGVkTWVudUl0ZW0gPSBhO1xuICAgICAgICAgICAgICAgIGNvbnN0IHR0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRtZW51ID0gdGhpcy5fY3JlYXRlTWVudSh0eXBlTGlzdCwge30sICh2KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vZGUgPSB0b01vZGUodik7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBvbiBNZW51IHNlbGVjdGVkICFcbiAgICAgICAgICAgICAgICAgICAgICAgIHR0LnZlcmlmeShtb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gdHlwZUxpc3QuZmluZCgoeCkgPT4geC52YWx1ZSA9PT0gdik7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuc2VsZWN0ZWRNZW51SXRlbSA9IHY7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdExhYmVsLmVtcHR5KCkuYXBwZW5kKGA8c3BhbiB0aXRsZT0keyhlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUudGl0bGUpIHx8IFwiXCJ9PiZuYnNwOyAkeyhlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUuaWNvbikgfHwgXCJcIn08L3NwYW4+YCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kbWVudS5hcHBlbmRUbyhkb2N1bWVudC5ib2R5KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRtZW51LmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyLnNob3coKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtb2RlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHJldHVybiB0b01vZGUodGhhdC5zZWxlY3RlZE1lbnVJdGVtKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXRNb2RlKG1vZGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBjb25zdCBzID0gZnJvbU1vZGUobW9kZSk7XG4gICAgICAgICAgICAgICAgdGhhdC5zZWxlY3RlZE1lbnVJdGVtID0gcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0ID0gdGhpcy5lbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmNzcyhcImJvcmRlclwiLCBcIm5vbmVcIik7XG4gICAgICAgICAgICAgICAgLy8gdGhhdC4kaW5wdXQuYWRkQ2xhc3MoXCJyZWQtdWktdHlwZWRJbnB1dFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRlbGVtZW50RGl2ID0gdGhhdC4kaW5wdXQud3JhcChcIjxkaXY+XCIpLnBhcmVudCgpLmFkZENsYXNzKFwibWFpbi13cmFwcGVyXCIpO1xuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gQ29tYm8gYnJvd3NlclxuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvID0gJChcIjxkaXYvPlwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcInN0ZXJmaXZlLWNvbWJvLWJveFwiKTtcbiAgICAgICAgICAgICAgICAvLyB0aGF0LiRjb21iby5hZGRDbGFzcyhcInJlZC11aS10eXBlZElucHV0LWlucHV0LXdyYXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQucmVwbGFjZVdpdGgodGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAgPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwiaW5wdXQtZ3JvdXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGlucHV0R3JvdXApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJGlucHV0KTtcbiAgICAgICAgICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgICAgICAgICAgLy8gI3JlZ2lvbiBhZGQgYnV0dG9uIG9uIHRoZSByaWdodCBzaWRlXG4gICAgICAgICAgICAgICAgLy8gI3JlZ2lvbiB0b2dnbGVUcmVlQnRuXG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24gdGl0bGU9XCJvcGVuIE9QQ1VBIEFkZHJlc3NTcGFjZSBCcm93c2VyXCI+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmFmdGVyKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmVlZFRvUmVhY2hTZWxlY3Rpb24gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRkcm9wZG93bi5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHJlZSB3aWRnZXQgaXMgZ29pbmcgdG8gYmVjb21lIHZpc2libGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnROb2RlID0geWllbGQgdGhhdC5yZXNvbHZlUGFyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnROb2RlICE9PSB0aGF0LmN1cnJlbnRQYXJlbnQgfHwgKChfYSA9IHRoYXQuY3VycmVudFBhcmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5vZGVJZCkgIT09IHBhcmVudE5vZGUubm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHRoYXQucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVlZFRvUmVhY2hTZWxlY3Rpb24gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZWVkVG9SZWFjaFNlbGVjdGlvbiAmJiAoeWllbGQgcmVhY2hTZWxlY3Rpb24odGhhdCwgcGFyZW50Tm9kZSkpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgICAgICAgICAgLy8gI3JlZ2lvbiB2ZXJpZnlCdG5cbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4gPSAkKGA8YnV0dG9uIHRpdGxlPVwidmVyaWZ5IG5vZGVJZCBvciBicm93c2VQYXRoXCI+PGkgY2xhc3M9XCJmYSBmYS1yZWZyZXNoXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmFmdGVyKHRoYXQuJHZlcmlmeUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb2RlID0gdGhhdC5tb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghbW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5KG1vZGUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIC8vICNlbmRyZWdpb25cbiAgICAgICAgICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplSW5wdXQgPSAoaW5wdXQpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGxldCBtb2RlID0gdGhhdC5tb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghbW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29ubmVjdGlvbkRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBkYXRhLCBqc29uIH0gPSB5aWVsZCBfY2FsbENoZWNrTm9kZUlkKGNvbm5lY3Rpb25EYXRhLCBpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGpzb24uc3RhdHVzQ29kZS5tYXRjaCgvR29vZC8pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZE5vZGVJZCA9IGNob29zZU5vZGVJZChqc29uLCBtb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnZhbChzZWxlY3RlZE5vZGVJZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAgICAgLy8gY3JlYXRlIHRoZSBwcmVwZW5kZWQgYnV0dG9uXG4gICAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR1aVNlbGVjdCA9ICQoXCI8ZGl2PlwiKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYmVmb3JlKHRoYXQuJHVpU2VsZWN0KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlciA9ICQoJzxidXR0b24gdHlwZT1cImJ1dHRvblwiIHRhYmluZGV4PVwiMFwiPjwvYnV0dG9uPicpLnByZXBlbmRUbyh0aGF0LiR1aVNlbGVjdCk7XG4gICAgICAgICAgICAgICAgICAgICQoJzxpIGNsYXNzPVwicmVkLXVpLXR5cGVkSW5wdXQtaWNvbiBmYSBmYS1jYXJldC1kb3duXCI+PC9pPicpLnRvZ2dsZSh0cnVlKS5hcHBlbmRUbyh0aGF0LiRzZWxlY3RUcmlnZ2VyKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlci5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fc2hvd1R5cGVNZW51KCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyXG4gICAgICAgICAgICAgICAgICAgICAgICAub24oXCJrZXlkb3duXCIsIGZ1bmN0aW9uIChldnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5Q29kZSA9PT0gNDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBEb3duXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fc2hvd1R5cGVNZW51KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAub24oXCJmb2N1c1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiR1aVNlbGVjdC5hZGRDbGFzcyhcInJlZC11aS10eXBlZElucHV0LWZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLm9uKFwiYmx1clwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB2YXIgb3B0ID0gdGhhdC50eXBlTWFwW3RoYXQucHJvcGVydHlUeXBlXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIChvcHQuaGFzVmFsdWUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiR1aVNlbGVjdC5yZW1vdmVDbGFzcyhcInJlZC11aS10eXBlZElucHV0LWZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0TGFiZWwgPSAkKCc8c3BhbiBjbGFzcz1cInJlZC11aS10eXBlZElucHV0LXR5cGUtbGFiZWxcIj48L3NwYW4+JykuYXBwZW5kVG8odGhhdC4kc2VsZWN0VHJpZ2dlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX2luaXRNZW51KCk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gI3JlZ2lvbiB0ZW1wb3JhdHkgaW5mbyBwYW5lbFxuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8gPSAkKGA8ZGl2IGNsYXNzPVwiaW5mby10ZXh0XCI+PC9kaXY+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIC8vICNlbmRyZWdpb25cbiAgICAgICAgICAgICAgICAvLyAjcmVnaW9uIGRyb3AgZG93biB0cmVlXG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24gPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwic3RlcmZpdmUtZHJvcGRvd25cIikuaGlkZSgpLmFwcGVuZFRvKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlID0gJChgPHVsIGNsYXNzPVwic3RlcmZpdmUtdHJlZVwiPjwvdWw+YCkuYXBwZW5kVG8odGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIC8vIHRoYXQuJGRyb3Bkb3duLnNob3coKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgICAgICAgICAgICAgIGNvbnN0IGlzT25MZWZ0U2l6ZSA9ICgkbGksIGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVdpZHRoID0gMjA7IC8vIFNldCB3aWR0aCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVIZWlnaHQgPSAyMDsgLy8gU2V0IGhlaWdodCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50UG9zID0gJGxpLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnBhZ2VYID49IGVsZW1lbnRQb3MubGVmdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWCA8PSBlbGVtZW50UG9zLmxlZnQgKyBiZWZvcmVXaWR0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA+PSBlbGVtZW50UG9zLnRvcCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA8PSBlbGVtZW50UG9zLnRvcCArIGJlZm9yZUhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgdG9nZ2xlRXhwYW5zaW9uID0gKCRsaSkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX2V4cGFuZExpKHRoYXQsICRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvZ2dsZSBpdHMgZXhwYW5kZWQvY29sbGFwc2VkIHN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuY2hpbGRyZW4oXCJ1bFwiKS5jaGlsZHJlbigpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJkYmxjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc09uTGVmdFNpemUoJGxpLCBldmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZUV4cGFuc2lvbigkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAkbGkuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gJGxpLmRhdGEoXCJyZWZlcmVuY2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZSAmJiAhdGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZShyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnN0IGlucHV0ID0gYFske2Rpc3BsYXlOYW1lfV0oJHt2YWx1ZX0pYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtb2RlID0gdGhhdC5tb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlID0gXCJub2RlSWRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnNldE1vZGUobW9kZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVJbnB1dCh2YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdC4kaW5wdXQudmFsKGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGF0LiRpbnB1dC52YWwoaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPbkxlZnRTaXplKCRsaSwgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVFeHBhbnNpb24oJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RTaW5nbGUodGhhdCwgJGxpKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBjbGlja2luZyBvdXRzaWRlIHRoZSBwYWdlIHdpbGwgaGlkZSB0aGUgZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCh0aGF0LiRjb21ibykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBtYWtlRWxlbWVudCA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIGlmICghcmVmZXJlbmNlKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBsZXQgdCA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGxldCBucyA9IChfYyA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MubmFtZXNwYWNlSW5kZXg7XG4gICAgICAgIHQgKz0gbnMgIT09IHVuZGVmaW5lZCAmJiByZWZlcmVuY2Uubm9kZUNsYXNzLm1hdGNoKC9UeXBlLykgPyBgIChucz0ke25zfSlgIDogXCJcIjtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT5gKTtcbiAgICAgICAgaWYgKHJlZmVyZW5jZS5ub2RlQ2xhc3MgPT09IFwiVmFyaWFibGVcIikge1xuICAgICAgICAgICAgY29uc3QgY2hlY2tCb3ggPSAkKCc8c3BhbiBjbGFzcz1cImN1c3RvbS1jaGVja2JveCB1bmNoZWNrZWRcIj48L3NwYW4+Jyk7XG4gICAgICAgICAgICAkZWxlbWVudC5hcHBlbmQoY2hlY2tCb3gpO1xuICAgICAgICAgICAgLy8gVG9nZ2xlIGNoZWNrYm94IHN0YXRlIHdoZW4gY2xpY2tlZFxuICAgICAgICAgICAgY2hlY2tCb3gub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNoZWNrQm94Lmhhc0NsYXNzKFwidW5jaGVja2VkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoZWNrQm94LnJlbW92ZUNsYXNzKFwidW5jaGVja2VkXCIpLmFkZENsYXNzKFwiY2hlY2tlZFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNoZWNrQm94LnJlbW92ZUNsYXNzKFwiY2hlY2tlZFwiKS5hZGRDbGFzcyhcInVuY2hlY2tlZFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAkZWxlbWVudC5hcHBlbmQoJChgPGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+JHt0fTx1bD48L3VsPmApKTtcbiAgICAgICAgJGVsZW1lbnQuYWRkQ2xhc3MoXCJleHBhbmRhYmxlXCIpO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwidmFsdWVcIiwgbik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgIH07XG4gICAgY29uc3QgZGVjbGFyZUV2ZW50RmllbGRTZWxlY3RvcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFsgVGVtcGVyYXR1cmUgIF1cbiAgICAgICAgICogICAoIHRvb2x0aXAgOiAoL09iamVjdHMvTXlTZW5zb3IpIChucz0xO3M9VGVtcGVyYXR1cmUpKVxuICAgICAgICAgKiBbICsgW0ZvbGRlcl0gT2JqZWN0c11cbiAgICAgICAgICogWyAgICAgW09iamVjdF0gTXlTZW5zb3JdXG4gICAgICAgICAqIFsgICAgICggKSBbVmFyaWFibGVdIFRlbXBlcmF0dXJlXVxuICAgICAgICAgKi9cbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5ldmVudEZpZWxkU2VsZWN0b3JcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfcG9wdWxhdGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRGaWVsZCA9IG5ldyBTZXQoKChfYSA9IHRoYXQuJGlucHV0LnZhbCgpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudG9TdHJpbmcoKS5zcGxpdChcIjtcIikpIHx8IFtdKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB5aWVsZCBleHRyYWN0RXZlbnRGaWVsZEluZm8oZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2luc3RhbGxUcmVlKHJlc3VsdCwgc2VsZWN0ZWRGaWVsZCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2luc3RhbGxUcmVlKHJlc3VsdCwgc2VsZWN0RmllbGQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuZXZlbnRzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3Qgcm9vdCA9IHJlc3VsdC5ldmVudHM7XG4gICAgICAgICAgICAgICAgY29uc3QgJHJvb3RFbGVtZW50ID0gbWFrZUVsZW1lbnQocm9vdCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5hcHBlbmQoJHJvb3RFbGVtZW50KTtcbiAgICAgICAgICAgICAgICBjb25zdCBwcmVmaXggPSBcIlwiO1xuICAgICAgICAgICAgICAgIHRoaXMuX2luc3RhbGxDaGlsZHJlbigkcm9vdEVsZW1lbnQuY2hpbGRyZW4oXCJ1bFwiKSwgcm9vdCwgcHJlZml4LCBzZWxlY3RGaWVsZCk7XG4gICAgICAgICAgICAgICAgJHJvb3RFbGVtZW50LnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVZhbHVlcyhzZWxlY3RGaWVsZCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2luc3RhbGxDaGlsZHJlbigkcGFyZW50LCBwYXJlbnQsIHByZWZpeCwgc2VsZWN0ZWRGaWVsZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGIgPSAoeyBuYW1lLCBuYW1lc3BhY2VJbmRleCB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChuYW1lc3BhY2VJbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5hbWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke25hbWVzcGFjZUluZGV4fToke25hbWV9YDtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuID0gcGFyZW50LmNoaWxkcmVuIHx8IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN1YlR5cGVzID0gcGFyZW50LnN1YlR5cGVzIHx8IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuQW5kU3ViVHlwZXMgPSBbLi4uY2hpbGRyZW4sIC4uLnN1YlR5cGVzXTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGNoaWxkcmVuQW5kU3ViVHlwZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChjaGlsZCk7XG4gICAgICAgICAgICAgICAgICAgICRwYXJlbnQuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByZWZpeDIgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGQubm9kZUNsYXNzID09PSBcIlZhcmlhYmxlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmVmaXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXgyID0gcHJlZml4ICsgXCIuXCIgKyBiKGNoaWxkLmJyb3dzZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4MiA9IGIoY2hpbGQuYnJvd3NlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAkZWxlbWVudC5hdHRyKFwiZGF0YS12YWx1ZVwiLCBwcmVmaXgyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBoYXNDaGlsZHJlbiA9IGNoaWxkLmNoaWxkcmVuICYmIGNoaWxkLmNoaWxkcmVuLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGFzU3ViVHlwZXMgPSBjaGlsZC5zdWJUeXBlcyAmJiBjaGlsZC5zdWJUeXBlcy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaGFzQ2hpbGRyZW4gJiYgIWhhc1N1YlR5cGVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZWxlbWVudC5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJuby1leHBhbmRhYmxlXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5zdGFsbENoaWxkcmVuKCRlbGVtZW50LmNoaWxkcmVuKFwidWxcIiksIGNoaWxkLCBwcmVmaXgyLCBzZWxlY3RlZEZpZWxkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICRlbGVtZW50LnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF91cGRhdGVTZWxlY3RlZEZpZWxkcygpIHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRGaWVsZHMgPSBuZXcgU2V0KCgoX2EgPSB0aGF0LiRpbnB1dC52YWwoKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRvU3RyaW5nKCkuc3BsaXQoXCI7XCIpKSB8fCBbXSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlVmFsdWVzKHNlbGVjdGVkRmllbGRzKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfdXBkYXRlVmFsdWVzKHNlbGVjdGVkRmllbGRzKSB7XG4gICAgICAgICAgICAgICAgJChcIi5zdGVyZml2ZS10cmVlIGxpXCIpLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkdGhpcyA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHYgPSAkdGhpcy5hdHRyKFwiZGF0YS12YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHYgJiYgc2VsZWN0ZWRGaWVsZHMuaGFzKHYpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy5jaGlsZHJlbihcInNwYW4uY3VzdG9tLWNoZWNrYm94XCIpLnJlbW92ZUNsYXNzKFwidW5jaGVja2VkXCIpLmFkZENsYXNzKFwiY2hlY2tlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9zZXRJbnB1dFZhbHVlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBbXTtcbiAgICAgICAgICAgICAgICAvLyBjcmF3bCB0aGUgdHJlZSB0byBmaW5kIHNlbGVjdGVkIGVsZW1lbnRzIGFuZCBjcmVhdGUgYSBsaXN0IG9mIEJyb3dzZVBhdGhcbiAgICAgICAgICAgICAgICAkKFwiLnN0ZXJmaXZlLXRyZWUgbGlcIikuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICR0aGlzID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGVsZW1lbnQgaXMgc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLmNoaWxkcmVuKFwic3Bhbi5jdXN0b20tY2hlY2tib3guY2hlY2tlZFwiKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ID0gJHRoaXMuYXR0cihcImRhdGEtdmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0LnB1c2godik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IFsuLi5uZXcgU2V0KGxpc3QpXS5zb3J0KCkuam9pbihcIjtcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudmFsKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFswXS5wYXJlbnRFbGVtZW50LnJlcGxhY2VDaGlsZCh0aGF0LiRjb21ib1swXSwgdGhpcy5lbGVtZW50WzBdKTtcbiAgICAgICAgICAgICAgICAvLyB0aGlzLmVsZW1lbnQucmVwbGFjZVdpdGgodGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAgPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwiaW5wdXQtZ3JvdXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGlucHV0R3JvdXApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJGlucHV0KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLXNpdGVtYXBcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdG9nZ2xlVHJlZUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0bi5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGluZm8udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGF0LiRkcm9wZG93bi5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZmxvYXRpbmdCdXR0b25zLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9mZnNldCA9IHRoYXQuJGRyb3Bkb3duLm9mZnNldCgpOyAvLyBHZXQgdGhlIHRvcC1sZWZ0IGNvcm5lciBwb3NpdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgJGZsb2F0aW5nQnV0dG9ucy5jc3Moe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogYCR7b2Zmc2V0LnRvcH1weGAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IGBjYWxjKDEwMCUgLSAke29mZnNldC5sZWZ0ICsgdGhhdC4kZHJvcGRvd24ud2lkdGgoKX1weClgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9wb3B1bGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fdXBkYXRlU2VsZWN0ZWRGaWVsZHMoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRmbG9hdGluZ0J1dHRvbnMuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgLy8gY29uc3QgJHNjcm9sbGFibGVDb250ZW50ID0gJCgnPGRpdiBjbGFzcz1cInN0ZXJmaXZlLWRyb3Bkb3duLXNjcm9sbGFibGUtY29udGVudFwiPjwvZGl2PicpO1xuICAgICAgICAgICAgICAgIGNvbnN0ICR2YWxpZGF0ZUJ1dHRvbiA9ICQoJzxzcGFuIGNsYXNzPVwidmFsaWRhdGUtYnV0dG9uXCI+4pyUPC9zcGFuPicpOyAvLyBVc2UgYW55IGljb24gb3IgdGV4dCBoZXJlXG4gICAgICAgICAgICAgICAgY29uc3QgJGNhbmNlbEJ1dHRvbiA9ICQoJzxzcGFuIGNsYXNzPVwiY2FuY2VsLWJ1dHRvblwiPuKcljwvc3Bhbj4nKTsgLy8gVXNlIGFueSBpY29uIG9yIHRleHQgaGVyZVxuICAgICAgICAgICAgICAgIGNvbnN0ICRmbG9hdGluZ0J1dHRvbnMgPSAkKCc8ZGl2IGNsYXNzPVwiZmxvYXRpbmctYnV0dG9uc1wiPjwvZGl2PicpLmFwcGVuZCgkdmFsaWRhdGVCdXR0b24sICRjYW5jZWxCdXR0b24pO1xuICAgICAgICAgICAgICAgICRmbG9hdGluZ0J1dHRvbnMuaGlkZSgpO1xuICAgICAgICAgICAgICAgIC8vIERlZmluZSB5b3VyIHZhbGlkYXRpb24gYW5kIGNhbmNlbGxhdGlvbiBsb2dpY1xuICAgICAgICAgICAgICAgICR2YWxpZGF0ZUJ1dHRvbi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5fc2V0SW5wdXRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJGNhbmNlbEJ1dHRvbi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUgPSAkKGA8dWwgY2xhc3M9XCJzdGVyZml2ZS10cmVlXCI+PC91bD5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5lbXB0eSgpLmFwcGVuZCh0aGF0LiR0cmVlLCAkZmxvYXRpbmdCdXR0b25zKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVXaWR0aCA9IDIwOyAvLyBTZXQgd2lkdGggb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlSGVpZ2h0ID0gMjA7IC8vIFNldCBoZWlnaHQgb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFBvcyA9ICQodGhpcykub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBldmVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUucGFnZVggPj0gZWxlbWVudFBvcy5sZWZ0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VYIDw9IGVsZW1lbnRQb3MubGVmdCArIGJlZm9yZVdpZHRoICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZID49IGVsZW1lbnRQb3MudG9wICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZIDw9IGVsZW1lbnRQb3MudG9wICsgYmVmb3JlSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImNsaWNrZWQgb24gaWNvblwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiY2xpY2tlZCBvbiBcIiwgJGxpLmRhdGEoXCJ2YWx1ZVwiKSwgJGxpLmF0dHIoXCJjbGFzc1wiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSB0aGUgcGFnZSB3aWxsIGhpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QodGhhdC4kY29tYm8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fcG9wdWxhdGUoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgY29uc3QgZXh0cmFjdEV2ZW50RmllbGRJbmZvID0gKF9hKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2FdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsLCB9KSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1mb3Itbm9kZS1yZWRgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9leHRyYWN0RXZlbnRUeXBlc2A7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIHJldHVybiB7IGV2ZW50czogbnVsbCB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgZXZlbnRzID0gcmVzcG9uc2UuZXZlbnRzO1xuICAgICAgICByZXR1cm4geyBldmVudHMgfTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHJldHVybnMgdGhlIGVuZHBvaW50IGF0dHJpYnV0ZXMgY29udGFpbmluZzpcbiAgICAgKiAgLSB0aGUgZW5kcG9pbnQsIHNlY3VyaXR5TW9kZSwgc2VjdXJpdHlQb2xpY3ksXG4gICAgICogIC0gdXNlcklkZW50aXR5VHlwZSxcbiAgICAgKiAgLSBjcmVkZW50aWFsc1xuICAgICAqICAtIG5hbWVzcGFjZUFsaWFzZXNcbiAgICAgKlxuICAgICAqIGV4dHJhY3RlZCBmcm9tIHRoZSB1aSB3aWRnZXQgI25vZGUtaW5wdXQtZW5kcG9pbnRcbiAgICAgKi9cbiAgICBjb25zdCBnZXRFbmRQb2ludEF0dHJpYnV0ZXMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgcmVkTm9kZSA9IFJFRC5ub2Rlcy5ub2RlKGVuZHBvaW50SWQpO1xuICAgICAgICBpZiAoIXJlZE5vZGUpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAvLyBjb25zdCBjcmVkZW50aWFscyA9IFJFRC4oZW5kcG9pbnRJZCk7XG4gICAgICAgIC8vIHdlIG5lZWQgdG8gc2FuaXRpemUgYW5kIGV4dHJhY3QgdGhlIGVuZHBvaW50IGF0dHJpYnV0ZXMgb25seSAoIG5vdCB0aGUgbm9kZS1yZWQgc3R1ZmYpXG4gICAgICAgIGNvbnN0IHsgZW5kcG9pbnQsIHNlY3VyaXR5TW9kZSwgc2VjdXJpdHlQb2xpY3ksIHVzZXJJZGVudGl0eVR5cGUsIGNyZWRlbnRpYWxzLCBuYW1lc3BhY2VBbGlhc2VzIH0gPSByZWROb2RlO1xuICAgICAgICBjb25zdCByZXRWYWx1ZSA9IHtcbiAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgY3JlZGVudGlhbHMsXG4gICAgICAgICAgICBuYW1lc3BhY2VBbGlhc2VzLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gcmV0VmFsdWU7XG4gICAgfTtcbiAgICBjb25zdCBnZXRFbmRwb2ludFBhcmFtZXRlcnMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnROciA9IGdldEVuZFBvaW50QXR0cmlidXRlcygpO1xuICAgICAgICBpZiAoIWVuZHBvaW50TnIpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmFtZXNwYWNlQWxpYXNlcyA9IGVuZHBvaW50TnIubmFtZXNwYWNlQWxpYXNlcztcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oeyBuYW1lc3BhY2VBbGlhc2VzLCBpZDogZW5kcG9pbnRJZCB9LCBlbmRwb2ludE5yKTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IGdldEVuZHBvaW50UGFyYW1ldGVycyxcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgY29uc3QgaW5zdGFsbEZlZWRiYWNrV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAvLyByZXR1cm47XG4gICAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgICBjb25zdCB0cmF5Q29udGVudCA9ICQoXCIucmVkLXVpLXRyYXktYm9keVwiKTtcbiAgICAgICAgY29uc29sZS5sb2coXCJpbnN0YWxsRmVlZGJhY2tXaWRnZXQgXCIsIHRyYXlDb250ZW50Lmxlbmd0aCk7XG4gICAgICAgIGlmICh0cmF5Q29udGVudC5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiaW5zdGFsbGluZyBpZnJhbWVcIik7XG4gICAgICAgICAgICAvLyBDcmVhdGUgdGhlIGlmcmFtZSBlbGVtZW50XG4gICAgICAgICAgICBjb25zdCBpZnJhbWUgPSAkKFwiPGlmcmFtZT48L2lmcmFtZT5cIiwge1xuICAgICAgICAgICAgICAgIHNyYzogXCIvb3BjdWEtZm9yLW5vZGUtcmVkL3N1cHBvcnQtZnJhbWUuaHRtbFwiLFxuICAgICAgICAgICAgICAgIHNjcm9sbGluZzogXCJub1wiLFxuICAgICAgICAgICAgICAgIHN0eWxlOiBcImJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7b3ZlcmZsb3c6aGlkZGVuO2JvcmRlcjozcHhcIixcbiAgICAgICAgICAgICAgICBhbGxvd3RyYW5zcGFyZW5jeTogXCJ0cnVlXCIsXG4gICAgICAgICAgICAgICAgd2lkdGg6IFwiMTgwcHhcIixcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiMzBweFwiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyBBcHBlbmQgdGhlIGlmcmFtZSB0byB0aGUgZmVlZGJhY2sgZWxlbWVudFxuICAgICAgICAgICAgdHJheUNvbnRlbnQuYXBwZW5kKGlmcmFtZSk7XG4gICAgICAgICAgICAvLyBQb3NpdGlvbiB0aGUgZmVlZGJhY2sgZWxlbWVudCBhdCB0aGUgYm90dG9tIHJpZ2h0IG9mIHRoZSB0cmF5IGNvbnRlbnRcbiAgICAgICAgICAgIGlmcmFtZS5jc3Moe1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICAgICAgICAgICAgcmlnaHQ6IFwiMjBweFwiLFxuICAgICAgICAgICAgICAgIGJvdHRvbTogXCIxNnB4XCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBSRUQubm9kZXMucmVnaXN0ZXJUeXBlKFwiT3BjVWEtQ2xpZW50Mi1Nb25pdG9yRXZlbnRcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJvcGN1YVwiLFxuICAgICAgICBjb2xvcjogXCIjQzBERUVEXCIsXG4gICAgICAgIGFsaWduOiBcInJpZ2h0XCIsXG4gICAgICAgIGljb246IFwib3BjdWFsb2dvYmlnLnBuZ1wiLFxuICAgICAgICBwYWxldHRlTGFiZWw6IFwibW9uaXRvciBldmVudHNcIixcbiAgICAgICAgZGVmYXVsdHM6IHtcbiAgICAgICAgICAgIGlucHV0czogeyB2YWx1ZTogMSB9LFxuICAgICAgICAgICAgb3V0cHV0OiB7IHZhbHVlOiA0IH0sXG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUsIHR5cGU6IFwiT3BjVWEtRW5kcG9pbnQyXCIgfSxcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbjoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIlwiLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHZhbGlkYXRlOiAodmFsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWwgPT09IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc3RhcnRJbW1lZGlhdGVseTogeyB2YWx1ZTogdHJ1ZSwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIC8vIHdlIHVzZSBhIGRpZmZlcmVudCB3aWRnZXQgZm9yIGVkaXRpbmcgdGhlIG5vZGVJZCwgYmVjYXVzZSB0aGUgYmVoYXZpb3JcbiAgICAgICAgICAgIC8vIGlzIHNwZWNpZmljIHRvIG1vbml0b3IsIGhvd2V2ZXIgcHJvcGVydHkgd2lsbCBiZSBzdG9yZWQgaW4gbm9kZUlkXG4gICAgICAgICAgICBub2RlSWQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiBmYWxzZSwgdmFsaWRhdGU6ICgpID0+IHRydWUgfSxcbiAgICAgICAgICAgIHNhbXBsaW5nSW50ZXJ2YWw6IHsgdmFsdWU6IDEwMDAsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBkaXNjYXJkT2xkZXN0OiB7IHZhbHVlOiB0cnVlLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgcXVldWVTaXplOiB7IHZhbHVlOiAxMCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHNlbGVjdENsYXVzZXM6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICB3aGVyZUNsYXVzZTogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgIH0sXG4gICAgICAgIC8vIGlucHV0czosXG4gICAgICAgIG91dHB1dHM6IDIsIC8vIDIgb3V0cHV0LCBzZWNvbmQgZm9yIHJhdyBub2RlLW9wY3VhIGRpYWdub3N0aWNzIG9yIG1vcmUgY29tcGxldGUgbWVzc2FnZVxuICAgICAgICBsYWJlbCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgXCJPUENVQSBNb25pdG9yXCI7XG4gICAgICAgIH0sXG4gICAgICAgIGxhYmVsU3R5bGUoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lID8gXCJub2RlX2xhYmVsX2l0YWxpY1wiIDogXCJcIjtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0cHJlcGFyZSgpIHtcbiAgICAgICAgICAgIGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCgpO1xuICAgICAgICAgICAgZGVjbGFyZUV2ZW50RmllbGRTZWxlY3RvcldpZGdldCgpO1xuICAgICAgICAgICAgaW5zdGFsbFN1YnNjcmlwdGlvblNlbGVjdG9yKFJFRCwgdGhpcyk7XG4gICAgICAgICAgICBpbnN0YWxsRmVlZGJhY2tXaWRnZXQoKTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgQWN0aW9uIE1vbml0b3IgQ29tbW9uXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gLS0gaW5zdGFsbCBzdWJzY3JpcHRpb24gc2VsZWN0aW9uXG4gICAgICAgICAgICAkKFwibm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGVja2VkID0gJChcIiNub2RlLWlucHV0LXN0YXJ0SW1tZWRpYXRlbHlcIikucHJvcChcImNoZWNrZWRcIik7XG4gICAgICAgICAgICAgICAgaWYgKGNoZWNrZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LWlucHV0c1wiKS52YWwoMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtaW5wdXRzXCIpLnZhbCgxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgQWN0aW9uIE1vbml0b3JcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICBjb25zdCAkbm9kZUlkID0gJChcIiNub2RlLWlucHV0LW5vZGVJZFwiKTtcbiAgICAgICAgICAgICRub2RlSWQubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IGZpbHRlcihub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgaXNTZWxlY3RhYmxlKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiT2JqZWN0XCIgLyogdG8gZG8gfHwgbm9kZURlc2MuZXZlbnROb3RpZmllciA9PT0gMSAqLztcbiAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgICAgIC8vIC0tLS0tLSBpbnN0YWxsIGV2ZW50IGZpZWxkIHNlbGVjdG9yXG4gICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtd2hlcmVDbGF1c2VcIik7XG4gICAgICAgICAgICBjb25zdCAkc2VsZWN0Q2xhdXNlcyA9ICQoXCIjbm9kZS1pbnB1dC1zZWxlY3RDbGF1c2VzXCIpO1xuICAgICAgICAgICAgJHNlbGVjdENsYXVzZXMuZXZlbnRGaWVsZFNlbGVjdG9yKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSkpO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnRJbW1lZGlhdGVseSA9ICQoXCIjbm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLnByb3AoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgaWYgKHN0YXJ0SW1tZWRpYXRlbHkpIHtcbiAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtc3RhcnRJbW1lZGlhdGVseVwiKS52YWwoc3RhcnRJbW1lZGlhdGVseSA/IDAgOiAxKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0cyA9IHN0YXJ0SW1tZWRpYXRlbHkgPyAwIDogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLnZhbCgxKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0cyA9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbn0pKCk7Il19
|
9
9
|
</script>
|
10
10
|
<script type="text/x-red" data-template-name="OpcUa-Client2-MonitorEvent">
|
11
11
|
<style>
|