@opcua/for-node-red 2.8.1 → 2.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/all.js +1 -1
- package/package.json +12 -12
- 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-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 _0x5ee9(){const _0xd98957=['throw','/checkNodeId','ns=0;i=47','$input','apply','toString','referenceTypeId','\x20|\x20',':first','height','/walk-backward','li\x20>\x20.tree-text','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','SeaGreen','HasComponent','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','i=31','children','length','animate','nodeId','trigger','355082BbnOiw','offset','745upsIgz','DarkOrange','ReferenceType','><i\x20class=\x22fa\x20','5901740UwYKrn','log','647973yPLHzQ','opc.tcp://opcuademo.sterfive.com:26543','val','POST','addClass','done','hide','message','DataType','fa-cog','$info','element','endpointNode','failure','error','expanded','typeDefinition','48ijxseh','parentNode','parentElement','filter','registerType','each','nodeBrowser','right','SteelBlue','.tree-text:first','find','split','$combo','statusText','$toggleTreeBtn','OPCUA\x20Browse','1IukZyH','baseUrl','top','updateValue','endpoint','pageY','toggleClass','suppressed','Unknown\x20bit\x20name','nodes','SandyBrown','$tree','Organizes','1617386SnnZVB','sterfive.nodeBrowser','fa-list-alt','sterfive-dropdown','i=61','IsForward','Good','selected','ns=0;i=61','expandable\x20expanded','Forward','#node-input-nodeClassMask','$verifyBtn','ns=0;i=35','5692038oqzQWI','already\x20loading','#C0DEED','60qXycEq','BrowseName','ns=0;i=34','application/json','widget','resolveParentNode','$dropdown','browseName','err','text','hasClass','Object','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','data','node_label_italic','Both','number','loading','show','TypeDefinition','currentParent','toggle','scrollTop','fetched','fa-text-width','DisplayName','HasChild','__parentNode','<ul\x20class=\x22sterfive-tree\x22></ul>','<button><i\x20class=\x22fa\x20fa-eye\x22></i></button>','assign','input-group','name','Method','stringify','dblclick','Invalid','/opcua-endpoint2','click','<div/>','View','placeholder','#node-input-referenceTypeId','isSelectable','value','references','<div\x20class=\x22info-text\x22></div>','expandable','statusCode','appendTo','nodeClass','sterfive-info','$inputGroup','4008KUFvvP','Inverse','!!failure!!','append','ns=0;i=40','#node-input-nodeId','CadetBlue','fa-question','function','verify','fa-object-group','node','fa-folder','join','DodgerBlue','HasProperty','reference','HasTypeDefinition','../../icons/opcuanodeLogo.png','fa-sliders','.spinner','namesToBits','li[key=\x22','ObjectType','HasSubtype','inputs','attr','nodeIds','browsePath','pageX','sterfive-combo-box','insertAfter','status','VariableType','SuppressedError','1588jjwqSu','left','rgba(61,\x2060,\x204,\x200.525)','<div\x20class=\x22custom-select\x22></div>','2493DJGcPo','References','reset','isTypeRef',':visible','Unspecified','stopPropagation','Variable','displayName','json','flagEditor','match',';\x22></i>\x20','remove','NodeClass','sterfive.flagEditor','Objects','options','removeClass','Variable\x20|\x20Object\x20|\x20Method\x20|\x20ObjectType\x20|\x20VariableType','then'];_0x5ee9=function(){return _0xd98957;};return _0x5ee9();}function _0x2690(_0x1b2221,_0x3796c6){const _0x5ee90b=_0x5ee9();return _0x2690=function(_0x269046,_0x41a7ac){_0x269046=_0x269046-0x147;let _0x1714f0=_0x5ee90b[_0x269046];return _0x1714f0;},_0x2690(_0x1b2221,_0x3796c6);}(function(_0x15ba03,_0xfe5051){const _0x23d50a=_0x2690,_0x14a8df=_0x15ba03();while(!![]){try{const _0x11b6ce=parseInt(_0x23d50a(0x20d))/0x1*(-parseInt(_0x23d50a(0x14c))/0x2)+-parseInt(_0x23d50a(0x1ec))/0x3+parseInt(_0x23d50a(0x1b5))/0x4*(parseInt(_0x23d50a(0x1e6))/0x5)+-parseInt(_0x23d50a(0x1fd))/0x6*(parseInt(_0x23d50a(0x1e4))/0x7)+parseInt(_0x23d50a(0x192))/0x8*(-parseInt(_0x23d50a(0x1b9))/0x9)+-parseInt(_0x23d50a(0x1ea))/0xa+parseInt(_0x23d50a(0x15a))/0xb*(parseInt(_0x23d50a(0x15d))/0xc);if(_0x11b6ce===_0xfe5051)break;else _0x14a8df['push'](_0x14a8df['shift']());}catch(_0x3209ab){_0x14a8df['push'](_0x14a8df['shift']());}}}(_0x5ee9,0x76e58),(function(){'use strict';const _0x25e3e3=_0x2690;function _0x329317(_0x442a1c,_0x5721e9,_0x5ab57f,_0x136a5c){function _0x558b36(_0x1dd323){return _0x1dd323 instanceof _0x5ab57f?_0x1dd323:new _0x5ab57f(function(_0x2b7e90){_0x2b7e90(_0x1dd323);});}return new(_0x5ab57f||(_0x5ab57f=Promise))(function(_0x448409,_0x278235){const _0x25439b=_0x2690;function _0x78ce4c(_0x26a3fa){try{_0x1ee841(_0x136a5c['next'](_0x26a3fa));}catch(_0x28e66c){_0x278235(_0x28e66c);}}function _0x39c147(_0x1400cf){const _0x1d4c84=_0x2690;try{_0x1ee841(_0x136a5c[_0x1d4c84(0x1ce)](_0x1400cf));}catch(_0xd2f43d){_0x278235(_0xd2f43d);}}function _0x1ee841(_0x1c3f0c){const _0x5e22a4=_0x2690;_0x1c3f0c[_0x5e22a4(0x1f1)]?_0x448409(_0x1c3f0c[_0x5e22a4(0x189)]):_0x558b36(_0x1c3f0c[_0x5e22a4(0x189)])[_0x5e22a4(0x1cd)](_0x78ce4c,_0x39c147);}_0x1ee841((_0x136a5c=_0x136a5c[_0x25439b(0x1d2)](_0x442a1c,_0x5721e9||[]))['next']());});}typeof SuppressedError===_0x25e3e3(0x19a)?SuppressedError:function(_0x4a78cb,_0x491fb4,_0x4c9533){const _0x23bd11=_0x25e3e3;var _0xaf8583=new Error(_0x4c9533);return _0xaf8583['name']=_0x23bd11(0x1b4),_0xaf8583[_0x23bd11(0x1fa)]=_0x4a78cb,_0xaf8583[_0x23bd11(0x214)]=_0x491fb4,_0xaf8583;};const _0x41f46c=_0x25e3e3(0x159),_0x2babe8=_0x25e3e3(0x154),_0x538015=_0x25e3e3(0x1d0),_0x1d1369='ns=0;i=46',_0x48264d=_0x25e3e3(0x15f),_0x5597f2='ns=0;i=45',_0x3a72f1=_0x25e3e3(0x196);var _0x8caa11;(function(_0x525de5){const _0x2fa9e4=_0x25e3e3;_0x525de5[_0x525de5[_0x2fa9e4(0x156)]=0x0]=_0x2fa9e4(0x156),_0x525de5[_0x525de5['Inverse']=0x1]=_0x2fa9e4(0x193),_0x525de5[_0x525de5[_0x2fa9e4(0x16c)]=0x2]=_0x2fa9e4(0x16c),_0x525de5[_0x525de5[_0x2fa9e4(0x181)]=0x3]=_0x2fa9e4(0x181);}(_0x8caa11||(_0x8caa11={})));var _0x28a22;(function(_0x5661a2){const _0x5dabe5=_0x25e3e3;_0x5661a2[_0x5661a2[_0x5dabe5(0x1be)]=0x0]='Unspecified',_0x5661a2[_0x5661a2[_0x5dabe5(0x168)]=0x1]=_0x5dabe5(0x168),_0x5661a2[_0x5661a2[_0x5dabe5(0x1c0)]=0x2]=_0x5dabe5(0x1c0),_0x5661a2[_0x5661a2[_0x5dabe5(0x17e)]=0x4]=_0x5dabe5(0x17e),_0x5661a2[_0x5661a2[_0x5dabe5(0x1a9)]=0x8]=_0x5dabe5(0x1a9),_0x5661a2[_0x5661a2['VariableType']=0x10]=_0x5dabe5(0x1b3),_0x5661a2[_0x5661a2[_0x5dabe5(0x1e8)]=0x20]=_0x5dabe5(0x1e8),_0x5661a2[_0x5661a2[_0x5dabe5(0x1f4)]=0x40]=_0x5dabe5(0x1f4),_0x5661a2[_0x5661a2[_0x5dabe5(0x185)]=0x80]=_0x5dabe5(0x185);}(_0x28a22||(_0x28a22={})));var _0x3013da;(function(_0x1f13c1){const _0x9d3ad9=_0x25e3e3;_0x1f13c1[_0x1f13c1[_0x9d3ad9(0x168)]=0x1]=_0x9d3ad9(0x168),_0x1f13c1[_0x1f13c1[_0x9d3ad9(0x1c0)]=0x2]=_0x9d3ad9(0x1c0),_0x1f13c1[_0x1f13c1[_0x9d3ad9(0x17e)]=0x4]=_0x9d3ad9(0x17e),_0x1f13c1[_0x1f13c1[_0x9d3ad9(0x1a9)]=0x8]=_0x9d3ad9(0x1a9),_0x1f13c1[_0x1f13c1[_0x9d3ad9(0x1b3)]=0x10]=_0x9d3ad9(0x1b3),_0x1f13c1[_0x1f13c1[_0x9d3ad9(0x1e8)]=0x20]=_0x9d3ad9(0x1e8),_0x1f13c1[_0x1f13c1[_0x9d3ad9(0x1f4)]=0x40]=_0x9d3ad9(0x1f4),_0x1f13c1[_0x1f13c1[_0x9d3ad9(0x185)]=0x80]=_0x9d3ad9(0x185);}(_0x3013da||(_0x3013da={})));function _0x542f61(_0x307632,_0x1e55ca){const _0x1086f4=_0x25e3e3;if(typeof _0x1e55ca===_0x1086f4(0x16d))return _0x1e55ca;const _0x1462fd=parseInt(_0x1e55ca,0xa);if(!isNaN(_0x1462fd))return _0x1462fd;const _0x2efe39=_0x1e55ca[_0x1086f4(0x208)](/\||;|,/)['map'](_0xf75e63=>_0xf75e63['trim']());let _0x165075=0x0;for(const _0x5b899e of _0x2efe39){_0x165075|=_0x307632[_0x5b899e];}return _0x165075;}function _0x20668c(_0x4116d9,_0x1d5164){const _0x243fde=_0x25e3e3;_0x1d5164=_0x542f61(_0x4116d9,_0x1d5164);const _0x54c114=[];if(!_0x4116d9)return _0x54c114[_0x243fde(0x19f)]('\x20|\x20');for(const [_0x5278d6,_0xe99745]of Object['entries'](_0x4116d9)){typeof _0x1d5164===_0x243fde(0x16d)&&((_0x1d5164&_0xe99745)===_0xe99745&&_0x54c114['push'](_0x5278d6));}return _0x54c114[_0x243fde(0x19f)](_0x243fde(0x1d5));}var _0x243e8c;(function(_0x41e899){const _0x5e6949=_0x25e3e3;_0x41e899[_0x41e899['ReferenceType']=0x1]=_0x5e6949(0x1e8),_0x41e899[_0x41e899[_0x5e6949(0x151)]=0x2]='IsForward',_0x41e899[_0x41e899[_0x5e6949(0x1c7)]=0x4]=_0x5e6949(0x1c7),_0x41e899[_0x41e899[_0x5e6949(0x15e)]=0x8]='BrowseName',_0x41e899[_0x41e899[_0x5e6949(0x176)]=0x10]='DisplayName',_0x41e899[_0x41e899[_0x5e6949(0x170)]=0x20]=_0x5e6949(0x170);}(_0x243e8c||(_0x243e8c={})));function _0x5620a0(_0x58dc45){const _0x4dc3d1=_0x25e3e3;switch(_0x58dc45){case'Organizes':return _0x41f46c;case _0x4dc3d1(0x1a1):return _0x1d1369;case _0x4dc3d1(0x1dc):return _0x538015;case'HasChild':return _0x48264d;case _0x4dc3d1(0x1aa):return _0x5597f2;case _0x4dc3d1(0x1a3):return _0x3a72f1;}}const _0x3f95f0=_0x3eae64=>{const _0x286fe3=_0x25e3e3;switch(_0x3eae64[_0x286fe3(0x18f)]){case'Object':if(_0x3eae64['referenceTypeId']===_0x41f46c);if(_0x3eae64[_0x286fe3(0x1fc)]===_0x2babe8||_0x3eae64[_0x286fe3(0x1d4)]===_0x286fe3(0x150))return{'icon':_0x286fe3(0x19e),'color':_0x286fe3(0x1b7)};return{'icon':'fa-object-group','color':_0x286fe3(0x1db)};case _0x286fe3(0x1c0):if(_0x3eae64[_0x286fe3(0x1d4)]===_0x538015)return{'icon':_0x286fe3(0x14e),'color':_0x286fe3(0x205)};else return _0x3eae64[_0x286fe3(0x1d4)]===_0x1d1369?{'icon':_0x286fe3(0x14e),'color':_0x286fe3(0x1a0)}:{'icon':_0x286fe3(0x14e),'color':_0x286fe3(0x198)};case'Method':return{'icon':_0x286fe3(0x1f5),'color':_0x286fe3(0x149)};case _0x286fe3(0x1a9):return{'icon':_0x286fe3(0x19c),'color':_0x286fe3(0x1e7)};case _0x286fe3(0x1b3):return{'icon':_0x286fe3(0x1a5),'color':_0x286fe3(0x1e7)};case _0x286fe3(0x1f4):return{'icon':_0x286fe3(0x175),'color':_0x286fe3(0x198)};}return{'icon':_0x286fe3(0x199),'color':'grey'};},_0x3b9c39=({endpointNode:_0x5f134b,endpoint:_0xf075f3,baseUrl:_0x280463},_0xcdba41,_0xcc2f34)=>_0x329317(void 0x0,void 0x0,void 0x0,function*(){const _0x360927=_0x25e3e3,_0x461942=_0x280463+'/opcua-endpoint2',_0x13a0a9=_0x461942+'/browse',_0x39ce3c=Object['assign'](Object[_0x360927(0x17b)]({},_0xcc2f34),{'nodeId':_0xcdba41,'resultMask':0x3f}),_0x4bb943=yield fetch(_0x13a0a9,{'method':_0x360927(0x1ef),'body':JSON['stringify']({'endpointNode':_0x5f134b,'endpoint':_0xf075f3,'browseDescription':_0x39ce3c}),'headers':{'Content-Type':_0x360927(0x160)}});if(_0x4bb943[_0x360927(0x1b2)]!==0xc8)return console[_0x360927(0x1eb)]('fetching\x20failed\x20with\x20error',_0x4bb943[_0x360927(0x1b2)],_0x4bb943[_0x360927(0x20a)]),{'references':[]};const _0x51103a=yield _0x4bb943[_0x360927(0x1c2)](),_0x33ece7=_0x51103a['browseResult'][_0x360927(0x18a)]||[];return{'references':_0x33ece7};}),_0x198de2={'referenceTypeId':_0x5620a0(_0x25e3e3(0x177)),'includeSubtypes':!![],'browseDirection':_0x8caa11[_0x25e3e3(0x156)],'nodeClassMask':_0x28a22[_0x25e3e3(0x1c0)]|_0x28a22['Object']|_0x28a22['Method'],'resultMask':0x3f},_0x1422a4={'referenceTypeId':_0x5620a0(_0x25e3e3(0x14b)),'includeSubtypes':!![],'browseDirection':_0x8caa11['Forward'],'nodeClassMask':_0x28a22['Variable']|_0x28a22[_0x25e3e3(0x168)]|_0x28a22[_0x25e3e3(0x17e)],'resultMask':0x3f},_0x580cbc=({endpointNode:_0xec5b6d,endpoint:_0x2b3a32,baseUrl:_0x564c29},{nodeId:_0x3ece32,rootNodeId:_0x25d1f9,isType:_0xef1f87})=>_0x329317(void 0x0,void 0x0,void 0x0,function*(){const _0x3ae5ab=_0x25e3e3,_0x5ac45e=_0x564c29+_0x3ae5ab(0x182),_0x480c11=_0x5ac45e+_0x3ae5ab(0x1d8),_0x50699b=yield fetch(_0x480c11,{'method':'POST','body':JSON[_0x3ae5ab(0x17f)]({'endpointNode':_0xec5b6d,'endpoint':_0x2b3a32,'nodeId':_0x3ece32,'rootNodeId':_0x25d1f9,'isType':_0xef1f87}),'headers':{'Content-Type':'application/json'}});if(_0x50699b['status']!==0xc8)return null;const _0x1e325a=yield _0x50699b[_0x3ae5ab(0x1c2)]();return _0x1e325a[_0x3ae5ab(0x1ae)];}),_0x5a3aae=({endpointNode:_0x27d758,endpoint:_0x5e1be2,baseUrl:_0x319749},_0x1113e3,_0x307172)=>_0x329317(void 0x0,void 0x0,void 0x0,function*(){const _0x54a7af=_0x25e3e3,_0x110537=_0x319749+_0x54a7af(0x182),_0x4c67a7=_0x110537+_0x54a7af(0x1cf),_0x1fe91f=_0x1113e3[_0x54a7af(0x1ee)](),_0x2e12ec=yield fetch(_0x4c67a7,{'method':_0x54a7af(0x1ef),'body':JSON[_0x54a7af(0x17f)]({'endpointNode':_0x27d758,'endpoint':_0x5e1be2,'nodeId':_0x1fe91f}),'headers':{'Content-Type':_0x54a7af(0x160)}}),_0x58b09d=(_0x51fa99,_0x3dae77)=>{const _0x10ade4=_0x54a7af;_0x307172['text'](_0x51fa99)[_0x10ade4(0x1f0)](_0x10ade4(0x190))[_0x10ade4(0x1f0)](_0x3dae77),_0x307172[_0x10ade4(0x16f)](),setTimeout(()=>{const _0x54afc=_0x10ade4;_0x307172[_0x54afc(0x1cb)](_0x3dae77),_0x307172[_0x54afc(0x1f2)]();},0xbb8);},_0x1c4817=yield _0x2e12ec[_0x54a7af(0x1c2)]();_0x2e12ec[_0x54a7af(0x1b2)]!==0xc8?_0x58b09d(_0x54a7af(0x194)+_0x1fe91f,_0x54a7af(0x1f9)):_0x1c4817[_0x54a7af(0x18d)][_0x54a7af(0x1c4)](/Good/)?(_0x1113e3[_0x54a7af(0x1ee)](_0x1c4817['nodeAddressString']),_0x1113e3[_0x54a7af(0x1e3)]('change'),_0x58b09d(_0x54a7af(0x152),'ok')):(_0x1113e3[_0x54a7af(0x1ee)](''+_0x1fe91f),_0x58b09d(_0x1c4817[_0x54a7af(0x18d)]+'\x20'+_0x2e12ec['statusText'],_0x54a7af(0x1f9)));});function _0x404b74(_0x23bbcd,_0x2278a7){return _0x329317(this,void 0x0,void 0x0,function*(){const _0x2363e6=_0x2690,_0x33505d=_0x23bbcd[_0x2363e6(0x16a)](_0x2363e6(0x189)),_0x2fe5fd=yield _0x3b9c39(_0x2278a7,_0x33505d,_0x198de2),_0x44d906=yield _0x3b9c39(_0x2278a7,_0x33505d,_0x1422a4);return{'references':[..._0x2fe5fd['references'],..._0x44d906[_0x2363e6(0x18a)]]};});}const _0x32ff51={'referenceTypeId':_0x5620a0('HasSubtype'),'includeSubtypes':!![],'browseDirection':_0x8caa11[_0x25e3e3(0x156)],'nodeClassMask':_0x28a22['ReferenceType']|_0x28a22[_0x25e3e3(0x1a9)]|_0x28a22[_0x25e3e3(0x1f4)]|_0x28a22['VariableType'],'resultMask':0x3f};function _0x26f1ff(_0x5e8574,_0x53b308){return _0x329317(this,void 0x0,void 0x0,function*(){const _0x1fefac=_0x2690,_0x1569c5=_0x5e8574['data'](_0x1fefac(0x189)),_0x1143e5=yield _0x3b9c39(_0x53b308,_0x1569c5,_0x32ff51);return _0x1143e5;});}const _0x5be5ad=_0x4fee71=>{const _0x14e3f2=_0x25e3e3;var _0x3b95f7,_0x4b297b,_0x125084,_0x34e93d;if(!_0x4fee71||!_0x4fee71[_0x14e3f2(0x1e2)]){const _0x152792=$(_0x14e3f2(0x169));return _0x152792;}const _0x264c8b=_0x4fee71[_0x14e3f2(0x1e2)][_0x14e3f2(0x1d3)](),_0x17ec2d=((_0x3b95f7=_0x4fee71[_0x14e3f2(0x1c1)])===null||_0x3b95f7===void 0x0?void 0x0:_0x3b95f7[_0x14e3f2(0x166)])||((_0x4b297b=_0x4fee71[_0x14e3f2(0x164)])===null||_0x4b297b===void 0x0?void 0x0:_0x4b297b[_0x14e3f2(0x17d)])||_0x4fee71['nodeId'][_0x14e3f2(0x1d3)](),{icon:_0x39e080,color:_0x52a8b3}=_0x3f95f0(_0x4fee71),_0x5cdf93='('+_0x4fee71['nodeId'][_0x14e3f2(0x1d3)]()+')\x20'+(((_0x125084=_0x4fee71[_0x14e3f2(0x164)])===null||_0x125084===void 0x0?void 0x0:_0x125084['name'])||((_0x34e93d=_0x4fee71[_0x14e3f2(0x1c1)])===null||_0x34e93d===void 0x0?void 0x0:_0x34e93d[_0x14e3f2(0x166)])||''),_0x8ce7a6=$('<li\x20key=\x22'+_0x4fee71[_0x14e3f2(0x1e2)][_0x14e3f2(0x1d3)]()+'\x22}><span\x20class=\x22tree-text\x22\x20title='+_0x5cdf93+_0x14e3f2(0x1e9)+_0x39e080+'\x22\x20style=\x22color:'+_0x52a8b3+_0x14e3f2(0x1c5)+_0x17ec2d+'</span><ul></ul></li>');return _0x8ce7a6[_0x14e3f2(0x1f0)](_0x14e3f2(0x18c)),_0x8ce7a6[_0x14e3f2(0x16a)](_0x14e3f2(0x189),_0x264c8b),_0x8ce7a6[_0x14e3f2(0x16a)](_0x14e3f2(0x1a2),_0x4fee71),_0x8ce7a6;},_0x2d374a=(_0x1e41f1,_0x5a9071)=>{const _0x34c1a5=_0x25e3e3;return _0x5a9071[_0x34c1a5(0x207)](_0x34c1a5(0x1a8)+_0x1e41f1+'\x22]');},_0x56341f=(_0x2c6874,_0x39e0a6)=>{const _0x415cd0=_0x25e3e3;_0x2c6874[_0x415cd0(0x14a)][_0x415cd0(0x207)](_0x415cd0(0x1d9))['removeClass'](_0x415cd0(0x153)),_0x39e0a6[_0x415cd0(0x207)](_0x415cd0(0x206))['addClass']('selected');},_0x5ac897=(_0x441550,_0x3fdc02,_0x5720fd)=>_0x329317(void 0x0,void 0x0,void 0x0,function*(){const _0x45b4d2=_0x25e3e3;let _0x57210b=_0x5720fd['children'](_0x45b4d2(0x1d6));_0x3fdc02['relativePath']['elements']||[];const _0x51ce44=_0x3fdc02[_0x45b4d2(0x1ad)]||[];if(_0x51ce44[_0x45b4d2(0x1e0)]===0x0)return;for(const _0x5a7cb2 of _0x51ce44){_0x57210b['hasClass'](_0x45b4d2(0x18c))&&(yield _0x3d8c22(_0x441550,_0x57210b));const _0x30f171=_0x2d374a(_0x5a7cb2,_0x57210b);if(_0x30f171[_0x45b4d2(0x1e0)]===0x0)return;_0x57210b=_0x30f171;}_0x56341f(_0x441550,_0x57210b),_0x35402f(_0x441550[_0x45b4d2(0x163)],_0x57210b);});function _0x35402f(_0x552544,_0xb2dafc){const _0x114efe=_0x25e3e3,_0x57a26d=_0xb2dafc['position']()[_0x114efe(0x20f)],_0x443212=_0x552544[_0x114efe(0x173)]();if(_0x443212==undefined)return;const _0x425988=_0x443212+_0x57a26d-_0x552544[_0x114efe(0x1d7)]()/0x2+_0xb2dafc[_0x114efe(0x1d7)]()/0x2;_0x552544[_0x114efe(0x1e1)]({'scrollTop':_0x425988},0x1f4);}const _0x585953=(_0x5632c8,_0xe52580)=>_0x329317(void 0x0,void 0x0,void 0x0,function*(){const _0x234b4d=_0x25e3e3,_0x10d5b4=_0x5632c8['$input'][_0x234b4d(0x1ee)](),_0x40c3dd={'nodeId':_0x10d5b4,'rootNodeId':_0xe52580[_0x234b4d(0x1e2)],'isType':_0x5632c8[_0x234b4d(0x1ca)]['isTypeRef']||![]},_0x7150ab=_0x2164eb(_0x5632c8),_0x4e5ffa=yield _0x580cbc(_0x7150ab,_0x40c3dd);if(!_0x4e5ffa)return;yield _0x5ac897(_0x5632c8,_0x4e5ffa,_0x5632c8[_0x234b4d(0x14a)]);});function _0x439385(_0x2434db,_0x4e3546,_0x18f5d8,_0x539cac){return _0x329317(this,void 0x0,void 0x0,function*(){const _0x39a42b=_0x2690;if(_0x4e3546[_0x39a42b(0x167)](_0x39a42b(0x174))){console[_0x39a42b(0x1eb)]('already\x20fetched');return;}if(_0x4e3546[_0x39a42b(0x167)](_0x39a42b(0x16e))){console[_0x39a42b(0x1eb)](_0x39a42b(0x15b));return;}_0x4e3546['addClass'](_0x39a42b(0x16e)),_0x4e3546[_0x39a42b(0x195)]('<div\x20class=\x22spinner\x22></div>');try{_0x4e3546[_0x39a42b(0x1df)]('ul')['empty']();const {references:_0x42a9fa}=yield _0x18f5d8(_0x4e3546,_0x539cac);for(const _0x457bef of _0x42a9fa){if(_0x2434db[_0x39a42b(0x1ca)][_0x39a42b(0x200)]&&!_0x2434db['options'][_0x39a42b(0x200)](_0x457bef))continue;const _0x21defb=_0x5be5ad(_0x457bef);_0x4e3546['children']('ul')[_0x39a42b(0x195)](_0x21defb);}_0x4e3546[_0x39a42b(0x1f0)](_0x39a42b(0x174));}catch(_0x229cc2){_0x4e3546[_0x39a42b(0x1df)]('ul')['append']('<li>error\x20'+_0x229cc2[_0x39a42b(0x1f3)]+'</li>'),console['log'](_0x39a42b(0x165),_0x229cc2);}_0x4e3546[_0x39a42b(0x207)](_0x39a42b(0x1a6))[_0x39a42b(0x1c6)](),_0x4e3546[_0x39a42b(0x1cb)]('loading');});}function _0x2164eb(_0x5001c6){const _0x672322=_0x25e3e3,_0x4be711={'baseUrl':_0x5001c6['options'][_0x672322(0x20e)],'endpointNode':typeof _0x5001c6[_0x672322(0x1ca)][_0x672322(0x1f8)]===_0x672322(0x19a)?_0x5001c6['options'][_0x672322(0x1f8)]():_0x5001c6[_0x672322(0x1ca)][_0x672322(0x1f8)],'endpoint':typeof _0x5001c6[_0x672322(0x1ca)][_0x672322(0x211)]===_0x672322(0x19a)?_0x5001c6[_0x672322(0x1ca)][_0x672322(0x211)]():_0x5001c6[_0x672322(0x1ca)][_0x672322(0x211)]};return _0x4be711;}function _0x3d8c22(_0x5df00b,_0x43a42c){return _0x329317(this,void 0x0,void 0x0,function*(){const _0x1f5485=_0x2690;if(_0x43a42c[_0x1f5485(0x167)](_0x1f5485(0x174))){_0x43a42c[_0x1f5485(0x1cb)]('expandable')[_0x1f5485(0x1f0)](_0x1f5485(0x1fb)),_0x43a42c[_0x1f5485(0x1df)]('ul')[_0x1f5485(0x172)]();return;}const _0x5e3fc4=_0x2164eb(_0x5df00b),_0x56c742=!_0x5df00b[_0x1f5485(0x1ca)][_0x1f5485(0x1bc)]?_0x404b74:_0x26f1ff;try{yield _0x439385(_0x5df00b,_0x43a42c,_0x56c742,_0x5e3fc4),_0x43a42c[_0x1f5485(0x1cb)]('expandable')[_0x1f5485(0x1f0)](_0x1f5485(0x1fb));}catch(_0xf40aef){_0x43a42c[_0x1f5485(0x1cb)](_0x1f5485(0x18c))[_0x1f5485(0x1f0)](_0x1f5485(0x1fb)),console[_0x1f5485(0x1eb)](_0x1f5485(0x1fa),_0xf40aef);}});}const _0x5b0217=()=>{const _0x1311ee=_0x25e3e3;$[_0x1311ee(0x161)](_0x1311ee(0x14d),{'options':{'endpointNode':()=>({'endpoint':_0x1311ee(0x1ed)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x1311ee(0x1c9)},'nodeClass':_0x1311ee(0x168),'nodeId':'ns=0;i=85','displayName':{'text':_0x1311ee(0x1c9)},'typeDefinition':_0x2babe8}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x329317(this,void 0x0,void 0x0,function*(){const _0x403c75=_0x2690,_0x6930af=this;if(!_0x6930af['__parentNode']){const _0x3d72b7=typeof _0x6930af[_0x403c75(0x1ca)][_0x403c75(0x1fe)]==='function'?_0x6930af[_0x403c75(0x1ca)][_0x403c75(0x1fe)]['call'](_0x6930af):_0x6930af[_0x403c75(0x1ca)]['parentNode'];if(_0x3d72b7 instanceof Promise){const _0x10e4e0=yield _0x3d72b7;_0x6930af[_0x403c75(0x178)]=_0x10e4e0;}else _0x6930af[_0x403c75(0x178)]=_0x3d72b7;}return _0x6930af[_0x403c75(0x178)];});},'reset'(){return _0x329317(this,void 0x0,void 0x0,function*(){const _0x18fde5=_0x2690,_0x10d14e=this,_0x533fa5=_0x10d14e;_0x533fa5[_0x18fde5(0x178)]=undefined,_0x10d14e[_0x18fde5(0x14a)]['empty']();const _0xd65f3e=yield this[_0x18fde5(0x162)](),_0x57f90f=_0x5be5ad(_0xd65f3e);_0x10d14e['$tree'][_0x18fde5(0x195)](_0x57f90f),_0x10d14e['currentParent']=_0xd65f3e;});},'verify'(){const _0x54e1fb=_0x1311ee,_0x500c02=this,_0x574920=_0x2164eb(_0x500c02);_0x5a3aae(_0x574920,_0x500c02[_0x54e1fb(0x1d1)],_0x500c02['$info']);},'_create'(){const _0x16f6ba=_0x1311ee,_0x1e8ec6=this;_0x1e8ec6[_0x16f6ba(0x1d1)]=this['element'],_0x1e8ec6[_0x16f6ba(0x209)]=$(_0x16f6ba(0x184)),_0x1e8ec6['$combo'][_0x16f6ba(0x1f0)](_0x16f6ba(0x1b0)),this['element']['replaceWith'](_0x1e8ec6[_0x16f6ba(0x209)]),_0x1e8ec6['$inputGroup']=$(_0x16f6ba(0x184))['addClass'](_0x16f6ba(0x17c)),_0x1e8ec6['$combo'][_0x16f6ba(0x195)](_0x1e8ec6[_0x16f6ba(0x191)]),_0x1e8ec6['$inputGroup'][_0x16f6ba(0x195)](_0x1e8ec6[_0x16f6ba(0x1d1)]),_0x1e8ec6['$toggleTreeBtn']=$('<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>'),_0x1e8ec6[_0x16f6ba(0x191)][_0x16f6ba(0x195)](_0x1e8ec6[_0x16f6ba(0x20b)]),_0x1e8ec6['$toggleTreeBtn']['on'](_0x16f6ba(0x183),function(){var _0x1cae6d;return _0x329317(this,void 0x0,void 0x0,function*(){const _0x3192e4=_0x2690;let _0x506538=![],_0x125aa5;!_0x1e8ec6['$dropdown']['is'](_0x3192e4(0x1bd))&&(_0x1e8ec6[_0x3192e4(0x1f6)]['hide'](),_0x125aa5=yield _0x1e8ec6[_0x3192e4(0x162)](),(_0x125aa5!==_0x1e8ec6[_0x3192e4(0x171)]||((_0x1cae6d=_0x1e8ec6[_0x3192e4(0x171)])===null||_0x1cae6d===void 0x0?void 0x0:_0x1cae6d[_0x3192e4(0x1e2)])!==_0x125aa5[_0x3192e4(0x1e2)])&&(yield _0x1e8ec6[_0x3192e4(0x1bb)]()),_0x506538=!![]),_0x1e8ec6[_0x3192e4(0x163)][_0x3192e4(0x172)](),_0x506538&&(yield _0x585953(_0x1e8ec6,_0x125aa5));});}),_0x1e8ec6[_0x16f6ba(0x158)]=$(_0x16f6ba(0x1dd)),_0x1e8ec6[_0x16f6ba(0x191)][_0x16f6ba(0x195)](_0x1e8ec6['$verifyBtn']),_0x1e8ec6[_0x16f6ba(0x158)]['on'](_0x16f6ba(0x183),()=>{const _0x42ed40=_0x16f6ba;this[_0x42ed40(0x19b)]();});!_0x1e8ec6[_0x16f6ba(0x1d1)][_0x16f6ba(0x1ac)](_0x16f6ba(0x186))&&_0x1e8ec6[_0x16f6ba(0x1d1)][_0x16f6ba(0x1ac)]('placeholder',_0x16f6ba(0x1da));_0x1e8ec6[_0x16f6ba(0x1f6)]=$(_0x16f6ba(0x18b)),_0x1e8ec6[_0x16f6ba(0x1f6)][_0x16f6ba(0x1f2)](),_0x1e8ec6['$dropdown']=$(_0x16f6ba(0x184))[_0x16f6ba(0x1f0)](_0x16f6ba(0x14f))[_0x16f6ba(0x1f2)](),_0x1e8ec6[_0x16f6ba(0x209)][_0x16f6ba(0x195)](_0x1e8ec6[_0x16f6ba(0x1f6)]),_0x1e8ec6[_0x16f6ba(0x209)][_0x16f6ba(0x195)](_0x1e8ec6[_0x16f6ba(0x163)]),_0x1e8ec6[_0x16f6ba(0x14a)]=$(_0x16f6ba(0x179))[_0x16f6ba(0x18e)](_0x1e8ec6[_0x16f6ba(0x163)]),this['reset']();const _0x2a952f=(_0x2e9604,_0x19dbcc)=>{const _0x3a2408=_0x16f6ba,_0x2aaeea=0x14,_0x53a28d=0x14,_0x4103c4=_0x2e9604[_0x3a2408(0x1e5)](),_0xdd3c75=_0x19dbcc;if(_0xdd3c75[_0x3a2408(0x1af)]>=_0x4103c4[_0x3a2408(0x1b6)]&&_0xdd3c75[_0x3a2408(0x1af)]<=_0x4103c4['left']+_0x2aaeea&&_0xdd3c75[_0x3a2408(0x212)]>=_0x4103c4[_0x3a2408(0x20f)]&&_0xdd3c75[_0x3a2408(0x212)]<=_0x4103c4[_0x3a2408(0x20f)]+_0x53a28d)return!![];return![];},_0x504db2=_0x1b304d=>_0x329317(this,void 0x0,void 0x0,function*(){const _0x4e5ec6=_0x16f6ba;if(_0x1b304d['hasClass'](_0x4e5ec6(0x18c)))_0x3d8c22(_0x1e8ec6,_0x1b304d);else{if(_0x1b304d[_0x4e5ec6(0x167)](_0x4e5ec6(0x1fb)))_0x1b304d[_0x4e5ec6(0x1df)]('ul')[_0x4e5ec6(0x172)](),_0x1b304d[_0x4e5ec6(0x213)](_0x4e5ec6(0x155));else{if(_0x1b304d[_0x4e5ec6(0x1df)]('ul')[_0x4e5ec6(0x1df)]()['length']>0x0)_0x1b304d['children']('ul')['toggle'](),_0x1b304d[_0x4e5ec6(0x213)](_0x4e5ec6(0x155));else;}}});_0x1e8ec6[_0x16f6ba(0x14a)]['on'](_0x16f6ba(0x180),'li',function(_0x386d45){const _0x1940ff=_0x16f6ba;var _0x24be00,_0x128043;_0x386d45['stopPropagation']();let _0x64cda=$(this);if(_0x2a952f(_0x64cda,_0x386d45))_0x504db2(_0x64cda);else{const _0x152fda=_0x64cda[_0x1940ff(0x16a)](_0x1940ff(0x189)),_0x1f8d7b=_0x64cda[_0x1940ff(0x16a)](_0x1940ff(0x1a2));if(_0x1e8ec6[_0x1940ff(0x1ca)][_0x1940ff(0x188)]&&!_0x1e8ec6[_0x1940ff(0x1ca)][_0x1940ff(0x188)](_0x1f8d7b))return;_0x1e8ec6[_0x1940ff(0x1d1)][_0x1940ff(0x16a)](_0x1940ff(0x1a2),_0x1f8d7b);const _0x7e0f07=((_0x24be00=_0x1f8d7b[_0x1940ff(0x1c1)])===null||_0x24be00===void 0x0?void 0x0:_0x24be00[_0x1940ff(0x166)])||((_0x128043=_0x1f8d7b[_0x1940ff(0x164)])===null||_0x128043===void 0x0?void 0x0:_0x128043[_0x1940ff(0x17d)])||_0x1f8d7b[_0x1940ff(0x1e2)][_0x1940ff(0x1d3)](),_0x54b4d4='['+_0x7e0f07+']('+_0x152fda+')';_0x1e8ec6['$input'][_0x1940ff(0x1ee)](_0x54b4d4),_0x1e8ec6[_0x1940ff(0x1d1)]['trigger']('change'),_0x1e8ec6[_0x1940ff(0x163)][_0x1940ff(0x1f2)]();}}),_0x1e8ec6[_0x16f6ba(0x14a)]['on'](_0x16f6ba(0x183),'li',function(_0x29e6da){const _0x1bc380=_0x16f6ba;_0x29e6da[_0x1bc380(0x1bf)]();let _0x43c13f=$(this);_0x2a952f(_0x43c13f,_0x29e6da)&&_0x504db2(_0x43c13f),_0x56341f(_0x1e8ec6,_0x43c13f);}),$(document)['on'](_0x16f6ba(0x183),function(_0x5dcc9b){const _0x16323a=_0x16f6ba;!$(_0x5dcc9b['target'])['closest'](_0x1e8ec6[_0x16323a(0x209)])[_0x16323a(0x1e0)]&&_0x1e8ec6['$dropdown']['hide']();});}});},_0x44de71=()=>{const _0x1b604f=_0x25e3e3;$[_0x1b604f(0x161)](_0x1b604f(0x1c8),{'options':{'namesToBits':{},'value':0x0},'_create'(){const _0x5b99e5=_0x1b604f,_0x30cbd2=this;_0x30cbd2[_0x5b99e5(0x1d1)]=this['element'],_0x30cbd2[_0x5b99e5(0x209)]=$(_0x5b99e5(0x184)),_0x30cbd2[_0x5b99e5(0x209)][_0x5b99e5(0x1f0)](_0x5b99e5(0x1b0)),this[_0x5b99e5(0x1f7)][0x0][_0x5b99e5(0x1ff)]['replaceChild'](_0x30cbd2[_0x5b99e5(0x209)][0x0],this[_0x5b99e5(0x1f7)][0x0]),_0x30cbd2['$inputGroup']=$(_0x5b99e5(0x184))['addClass']('input-group'),_0x30cbd2[_0x5b99e5(0x209)]['append'](_0x30cbd2[_0x5b99e5(0x191)]),_0x30cbd2[_0x5b99e5(0x191)]['append'](_0x30cbd2[_0x5b99e5(0x1d1)]),_0x30cbd2[_0x5b99e5(0x20b)]=$(_0x5b99e5(0x17a)),_0x30cbd2[_0x5b99e5(0x191)][_0x5b99e5(0x195)](_0x30cbd2[_0x5b99e5(0x20b)]),_0x30cbd2['$toggleTreeBtn']['on'](_0x5b99e5(0x183),function(){const _0xb5b268=_0x5b99e5;_0x30cbd2['$dropdown'][_0xb5b268(0x172)](),_0x30cbd2[_0xb5b268(0x163)]['is'](_0xb5b268(0x1bd))&&(_0xe160d4(),_0x30cbd2[_0xb5b268(0x209)][_0xb5b268(0x207)]('.custom-option')[_0xb5b268(0x202)](function(){const _0x7210f4=_0xb5b268;let _0x35dd16=$(this)[_0x7210f4(0x166)]();const _0x368c6a=_0x30cbd2[_0x7210f4(0x1ca)][_0x7210f4(0x1a7)][_0x35dd16];if(_0x368c6a===undefined)throw new Error(_0x7210f4(0x147));(_0x30cbd2[_0x7210f4(0x1ca)]['value']&_0x368c6a)===_0x368c6a?$(this)[_0x7210f4(0x1f0)](_0x7210f4(0x153)):$(this)[_0x7210f4(0x1cb)](_0x7210f4(0x153));}),_0x30cbd2[_0xb5b268(0x210)]());}),_0x30cbd2[_0x5b99e5(0x163)]=$(_0x5b99e5(0x1b8))[_0x5b99e5(0x1f2)]()[_0x5b99e5(0x1b1)](this[_0x5b99e5(0x1f7)]),$[_0x5b99e5(0x202)](this[_0x5b99e5(0x1ca)][_0x5b99e5(0x1a7)],function(_0x35893a){const _0x3fde0e=_0x5b99e5,_0x517d61=$('<div\x20class=\x22custom-option\x22\x20data-value=\x22'+_0x35893a+'\x22>'+'<span\x20class=\x22custom-checkbox\x22></span>'+_0x35893a+'</div>');_0x30cbd2[_0x3fde0e(0x163)][_0x3fde0e(0x195)](_0x517d61);}),_0x30cbd2[_0x5b99e5(0x163)]['on']('click','.custom-option',function(){const _0x4a34cc=_0x5b99e5;$(this)[_0x4a34cc(0x213)]('selected');const _0x5c6aa7=$(this)[_0x4a34cc(0x16a)](_0x4a34cc(0x189));$(this)[_0x4a34cc(0x167)]('selected')?_0x3dba23(_0x5c6aa7):_0x3de5d9(_0x5c6aa7),_0x30cbd2[_0x4a34cc(0x210)]();}),_0x30cbd2['$combo'][_0x5b99e5(0x195)](_0x30cbd2['$dropdown']);const _0xe160d4=()=>{const _0x4d6ce8=_0x5b99e5,_0x4c6e6e=this['element'][_0x4d6ce8(0x1ee)]();_0x30cbd2[_0x4d6ce8(0x1ca)][_0x4d6ce8(0x189)]=_0x542f61(_0x30cbd2[_0x4d6ce8(0x1ca)][_0x4d6ce8(0x1a7)],_0x4c6e6e);},_0x3dba23=_0x390dac=>{const _0x1a3838=_0x5b99e5,_0x3830f9=_0x30cbd2[_0x1a3838(0x1ca)]['namesToBits'][_0x390dac];if(_0x3830f9===undefined)throw new Error(_0x1a3838(0x147));this['options'][_0x1a3838(0x189)]|=_0x3830f9;},_0x3de5d9=_0x14bbdc=>{const _0x4a87da=_0x5b99e5,_0x4202e6=_0x30cbd2[_0x4a87da(0x1ca)][_0x4a87da(0x1a7)][_0x14bbdc];if(_0x4202e6===undefined)throw new Error(_0x4a87da(0x147));this['options']['value']&=~_0x4202e6,this[_0x4a87da(0x1f7)][_0x4a87da(0x1ee)](_0x20668c(_0x30cbd2['options'][_0x4a87da(0x1a7)],this['options'][_0x4a87da(0x189)]));};_0xe160d4();},'updateValue'(){const _0x22e953=_0x1b604f,_0x474230=this;this[_0x22e953(0x1f7)][_0x22e953(0x1ee)](_0x20668c(_0x474230['options'][_0x22e953(0x1a7)],this[_0x22e953(0x1ca)][_0x22e953(0x189)]));},'_destroy'(){const _0x3f58f2=_0x1b604f,_0x38de48=this;_0x38de48[_0x3f58f2(0x163)]['remove']();}});},_0x2b82b7=()=>{const _0x529663=_0x25e3e3,_0x2636b7=$('#node-input-endpoint'),_0x11b180=_0x2636b7[_0x529663(0x1ee)](),_0xa2fa60=RED[_0x529663(0x148)][_0x529663(0x19d)](_0x11b180);if(!_0xa2fa60)return undefined;const {endpoint:_0x58f2e9,securityMode:_0x531d73,securityPolicy:_0x4494db,userIdentityType:_0x3aa251,credentials:_0x1e24fd}=_0xa2fa60,_0x1e880f={'endpoint':_0x58f2e9,'securityMode':_0x531d73,'securityPolicy':_0x4494db,'userIdentityType':_0x3aa251,'credentials':_0x1e24fd};return _0x1e880f;},_0x422dfd=()=>{return{'endpointNode':_0x13cdc5};},_0x13cdc5=()=>{const _0x7235b7=_0x25e3e3,_0x2c812e=$('#node-input-endpoint'),_0x4c95be=_0x2c812e[_0x7235b7(0x1ee)](),_0x2fa38b=_0x2b82b7();if(!_0x2fa38b)return undefined;return{'id':_0x4c95be};};RED[_0x25e3e3(0x148)][_0x25e3e3(0x201)]('OpcUa-Client2-Browse',{'category':'opcua','color':_0x25e3e3(0x15c),'align':_0x25e3e3(0x204),'icon':_0x25e3e3(0x1a4),'paletteLabel':'browse','defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':'OpcUa-Endpoint2'},'nodeId':{'value':'','required':![]},'referenceTypeId':{'value':'HasChild','required':![]},'includeSubtypes':{'value':![],'required':!![]},'browseDirection':{'value':_0x25e3e3(0x156),'required':!![]},'nodeClassMask':{'value':_0x25e3e3(0x1cc),'required':![]},'resultMask':{'value':'ReferenceType\x20|\x20BrowseName\x20|\x20TypeDefinition\x20|\x20DisplayName\x20|\x20NodeClass\x20|\x20IsForward','required':![]}},'outputs':0x1,'label'(){const _0x44a56b=_0x25e3e3;return this[_0x44a56b(0x17d)]||_0x44a56b(0x20c);},'labelStyle'(){const _0xa21b30=_0x25e3e3;return this[_0xa21b30(0x17d)]?_0xa21b30(0x16b):'';},'oneditprepare'(){const _0x3eded8=_0x25e3e3,_0x2f629c=this;_0x5b0217(),_0x44de71(),_0x2f629c[_0x3eded8(0x1ab)]=0x1;const _0xa981aa=$(_0x3eded8(0x157));_0xa981aa[_0x3eded8(0x1c3)]({'namesToBits':{'Object':0x1,'Variable':0x2,'Method':0x4,'ObjectType':0x8,'VariableType':0x10,'ReferenceType':0x20,'DataType':0x40,'View':0x80},'value':0x0});const _0x27dfb7=$('#node-input-resultMask');_0x27dfb7[_0x3eded8(0x1c3)]({'namesToBits':{'ReferenceType':0x1,'IsForward':0x2,'NodeClass':0x4,'BrowseName':0x8,'DisplayName':0x10,'TypeDefinition':0x20},'value':0x3f});const _0x3f7c7c=$(_0x3eded8(0x197));_0x3f7c7c[_0x3eded8(0x203)](Object[_0x3eded8(0x17b)](Object[_0x3eded8(0x17b)]({},_0x422dfd()),{'isSelectable'(_0xbbb978){const _0x3407a4=_0x3eded8;return _0xbbb978[_0x3407a4(0x18f)]===_0x3407a4(0x1c0)||_0xbbb978['nodeClass']==='Object';}}));const _0x2fc11a={'nodeId':'i=31','referenceTypeId':'','browseName':{'namespaceIndex':0x0,'name':_0x3eded8(0x1ba)},'displayName':{'text':'References'},'nodeClass':'ReferenceType','typeDefinition':_0x3eded8(0x1de)},_0x25a130=$(_0x3eded8(0x187));_0x25a130[_0x3eded8(0x203)](Object[_0x3eded8(0x17b)](Object[_0x3eded8(0x17b)]({},_0x422dfd()),{'parentNode':()=>_0x2fc11a,'isSelectable'(_0x51baf6){const _0x3a8b66=_0x3eded8;return _0x51baf6['nodeClass']===_0x3a8b66(0x1e8);},'isTypeRef':!![]}));},'oneditsave'(){}});}()));
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgzMjkzMTciLCJfMHg0NDJhMWMiLCJfMHg1NzIxZTkiLCJfMHg1YWI1N2YiLCJfMHgxMzZhNWMiLCJfMHg1NThiMzYiLCJfMHgxZGQzMjMiLCJfMHgyYjdlOTAiLCJQcm9taXNlIiwiXzB4NDQ4NDA5IiwiXzB4Mjc4MjM1IiwiXzB4NzhjZTRjIiwiXzB4MjZhM2ZhIiwiXzB4MWVlODQxIiwiXzB4MjhlNjZjIiwiXzB4MzljMTQ3IiwiXzB4MTQwMGNmIiwiXzB4ZDJmNDNkIiwiXzB4MWMzZjBjIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4NGE3OGNiIiwiXzB4NDkxZmI0IiwiXzB4NGM5NTMzIiwiXzB4YWY4NTgzIiwiRXJyb3IiLCJfMHg0MWY0NmMiLCJfMHgyYmFiZTgiLCJfMHg1MzgwMTUiLCJfMHgxZDEzNjkiLCJfMHg0ODI2NGQiLCJfMHg1NTk3ZjIiLCJfMHgzYTcyZjEiLCJfMHg4Y2FhMTEiLCJfMHg1MjVkZTUiLCJfMHgyOGEyMiIsIl8weDU2NjFhMiIsIl8weDMwMTNkYSIsIl8weDFmMTNjMSIsIl8weDU0MmY2MSIsIl8weDMwNzYzMiIsIl8weDFlNTVjYSIsIl8weDE0NjJmZCIsInBhcnNlSW50IiwiaXNOYU4iLCJfMHgyZWZlMzkiLCJfMHhmNzVlNjMiLCJfMHgxNjUwNzUiLCJfMHg1Yjg5OWUiLCJfMHgyMDY2OGMiLCJfMHg0MTE2ZDkiLCJfMHgxZDUxNjQiLCJfMHg1NGMxMTQiLCJfMHg1Mjc4ZDYiLCJfMHhlOTk3NDUiLCJPYmplY3QiLCJfMHgyNDNlOGMiLCJfMHg0MWU4OTkiLCJfMHg1NjIwYTAiLCJfMHg1OGRjNDUiLCJfMHgzZjk1ZjAiLCJfMHgzZWFlNjQiLCJfMHgzYjljMzkiLCJlbmRwb2ludE5vZGUiLCJfMHg1ZjEzNGIiLCJlbmRwb2ludCIsIl8weGYwNzVmMyIsImJhc2VVcmwiLCJfMHgyODA0NjMiLCJfMHhjZGJhNDEiLCJfMHhjYzJmMzQiLCJfMHg0NjE5NDIiLCJfMHgxM2EwYTkiLCJfMHgzOWNlM2MiLCJfMHg0YmI5NDMiLCJmZXRjaCIsIkpTT04iLCJjb25zb2xlIiwiXzB4NTExMDNhIiwiXzB4MzNlY2U3IiwiXzB4MTk4ZGUyIiwiXzB4MTQyMmE0IiwiXzB4NTgwY2JjIiwiXzB4ZWM1YjZkIiwiXzB4MmIzYTMyIiwiXzB4NTY0YzI5Iiwibm9kZUlkIiwiXzB4M2VjZTMyIiwicm9vdE5vZGVJZCIsIl8weDI1ZDFmOSIsImlzVHlwZSIsIl8weGVmMWY4NyIsIl8weDVhYzQ1ZSIsIl8weDQ4MGMxMSIsIl8weDUwNjk5YiIsIl8weDFlMzI1YSIsIl8weDVhM2FhZSIsIl8weDI3ZDc1OCIsIl8weDVlMWJlMiIsIl8weDMxOTc0OSIsIl8weDExMTNlMyIsIl8weDMwNzE3MiIsIl8weDExMDUzNyIsIl8weDRjNjdhNyIsIl8weDFmZTkxZiIsIl8weDJlMTJlYyIsIl8weDU4YjA5ZCIsIl8weDUxZmE5OSIsIl8weDNkYWU3NyIsInNldFRpbWVvdXQiLCJfMHgxYzQ4MTciLCJfMHg0MDRiNzQiLCJfMHgyM2JiY2QiLCJfMHgyMjc4YTciLCJfMHgzMzUwNWQiLCJfMHgyZmU1ZmQiLCJfMHg0NGQ5MDYiLCJfMHgzMmZmNTEiLCJfMHgyNmYxZmYiLCJfMHg1ZTg1NzQiLCJfMHg1M2IzMDgiLCJfMHgxNTY5YzUiLCJfMHgxMTQzZTUiLCJfMHg1YmU1YWQiLCJfMHg0ZmVlNzEiLCJfMHgzYjk1ZjciLCJfMHg0YjI5N2IiLCJfMHgxMjUwODQiLCJfMHgzNGU5M2QiLCJfMHgxNTI3OTIiLCIkIiwiXzB4MjY0YzhiIiwiXzB4MTdlYzJkIiwiaWNvbiIsIl8weDM5ZTA4MCIsImNvbG9yIiwiXzB4NTJhOGIzIiwiXzB4NWNkZjkzIiwiXzB4OGNlN2E2IiwiXzB4MmQzNzRhIiwiXzB4MWU0MWYxIiwiXzB4NWE5MDcxIiwiXzB4NTYzNDFmIiwiXzB4MmM2ODc0IiwiXzB4MzllMGE2IiwiXzB4NWFjODk3IiwiXzB4NDQxNTUwIiwiXzB4M2ZkYzAyIiwiXzB4NTcyMGZkIiwiXzB4NTcyMTBiIiwiXzB4NTFjZTQ0IiwiXzB4NWE3Y2IyIiwiXzB4M2Q4YzIyIiwiXzB4MzBmMTcxIiwiXzB4MzU0MDJmIiwiXzB4NTUyNTQ0IiwiXzB4YjJkYWZjIiwiXzB4NTdhMjZkIiwiXzB4NDQzMjEyIiwidW5kZWZpbmVkIiwiXzB4NDI1OTg4IiwiXzB4NTg1OTUzIiwiXzB4NTYzMmM4IiwiXzB4ZTUyNTgwIiwiXzB4MTBkNWI0IiwiXzB4NDBjM2RkIiwiXzB4NzE1MGFiIiwiXzB4MjE2NGViIiwiXzB4NGU1ZmZhIiwiXzB4NDM5Mzg1IiwiXzB4MjQzNGRiIiwiXzB4NGUzNTQ2IiwiXzB4MThmNWQ4IiwiXzB4NTM5Y2FjIiwicmVmZXJlbmNlcyIsIl8weDQyYTlmYSIsIl8weDQ1N2JlZiIsIl8weDIxZGVmYiIsIl8weDIyOWNjMiIsIl8weDUwMDFjNiIsIl8weDRiZTcxMSIsIl8weDVkZjAwYiIsIl8weDQzYTQyYyIsIl8weDVlM2ZjNCIsIl8weDU2Yzc0MiIsIl8weGY0MGFlZiIsIl8weDViMDIxNyIsIl8weDY5MzBhZiIsIl8weDNkNzJiNyIsIl8weDEwZTRlMCIsIl8weDEwZDE0ZSIsIl8weDUzM2ZhNSIsIl8weGQ2NWYzZSIsIl8weDU3ZjkwZiIsIl8weDUwMGMwMiIsIl8weDU3NDkyMCIsIl8weDFlOGVjNiIsIl8weDFjYWU2ZCIsIl8weDUwNjUzOCIsIl8weDEyNWFhNSIsIl8weDJhOTUyZiIsIl8weDJlOTYwNCIsIl8weDE5ZGJjYyIsIl8weDJhYWVlYSIsIl8weDUzYTI4ZCIsIl8weDQxMDNjNCIsIl8weGRkM2M3NSIsIl8weDUwNGRiMiIsIl8weDFiMzA0ZCIsIl8weDM4NmQ0NSIsIl8weDI0YmUwMCIsIl8weDEyODA0MyIsIl8weDY0Y2RhIiwiXzB4MTUyZmRhIiwiXzB4MWY4ZDdiIiwiXzB4N2UwZjA3IiwiXzB4NTRiNGQ0IiwiXzB4MjllNmRhIiwiXzB4NDNjMTNmIiwiZG9jdW1lbnQiLCJfMHg1ZGNjOWIiLCJfMHg0NGRlNzEiLCJfMHgzMGNiZDIiLCJfMHhlMTYwZDQiLCJfMHgzNWRkMTYiLCJfMHgzNjhjNmEiLCJfMHgzNTg5M2EiLCJfMHg1MTdkNjEiLCJfMHg1YzZhYTciLCJfMHgzZGJhMjMiLCJfMHgzZGU1ZDkiLCJfMHg0YzZlNmUiLCJfMHgzOTBkYWMiLCJfMHgzODMwZjkiLCJfMHgxNGJiZGMiLCJfMHg0MjAyZTYiLCJfMHg0NzQyMzAiLCJfMHgzOGRlNDgiLCJfMHgyYjgyYjciLCJfMHgyNjM2YjciLCJfMHgxMWIxODAiLCJfMHhhMmZhNjAiLCJSRUQiLCJfMHg1OGYyZTkiLCJzZWN1cml0eU1vZGUiLCJfMHg1MzFkNzMiLCJzZWN1cml0eVBvbGljeSIsIl8weDQ0OTRkYiIsInVzZXJJZGVudGl0eVR5cGUiLCJfMHgzYWEyNTEiLCJjcmVkZW50aWFscyIsIl8weDFlMjRmZCIsIl8weDFlODgwZiIsIl8weDQyMmRmZCIsIl8weDEzY2RjNSIsIl8weDJjODEyZSIsIl8weDRjOTViZSIsIl8weDJmYTM4YiIsIl8weDJmNjI5YyIsIl8weGE5ODFhYSIsIl8weDI3ZGZiNyIsIl8weDNmN2M3YyIsIl8weGJiYjk3OCIsIl8weDJmYzExYSIsIl8weDI1YTEzMCIsIl8weDUxYmFmNiJdLCJtYXBwaW5ncyI6InUzSEFBQSxDQUFDLFUsQ0FDRyxhLHdCQW1CQSxTQUFTQSxTQUFULENBQW1CQyxTQUFuQixDQUE0QkMsU0FBNUIsQ0FBd0NDLFNBQXhDLENBQTJDQyxTQUEzQyxDLENBQ0ksU0FBU0MsU0FBVCxDQUFlQyxTQUFmLEMsUUFBK0JBLFNBQUEsWUFBaUJILFNBQWpCLENBQXFCRyxTQUFyQixDQUE2QixJQUFJSCxTQUFKLENBQU0sU0FBVUksU0FBVixDLENBQXFCQSxTQUFBLENBQVFELFNBQVIsQyxFQUEzQixDLFNBQ3JELEdBQUssQ0FBQUgsU0FBQSxFQUFNLENBQUFBLFNBQUEsQ0FBSUssT0FBSixDQUFOLENBQUwsQ0FBeUIsU0FBVUMsU0FBVixDQUFtQkMsU0FBbkIsQyx5QkFDNUIsU0FBU0MsU0FBVCxDQUFtQkMsU0FBbkIsQyxDQUE0QixHLENBQU1DLFNBQUEsQ0FBS1QsU0FBQSxDLE1BQUEsRUFB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QSxDQUFVbkksQ0FBQSxDLGdCQUFBLENBQWhCLENBQ0FtSSxTQUFBLEMsZ0JBQUEsRUFBb0I5TSxNQUFBLEMsZ0JBQUEsRUFBY0EsTUFBQSxDLGdCQUFBLEVBQWMsRUFBZCxDQUFrQnNNLFNBQUEsRUFBbEIsQ0FBZCxDQUFpRSxDLGNBQUUsQ0FBYVMsU0FBYixDLGtDQUN4RUEsU0FBQSxDLGdCQUFBLEksZ0JBQUEsRUFBcUNBLFNBQUEsQyxXQUFBLEksVUFEaUMsQ0FBakUsQ0FBcEIsRUFHQSxNQUFNQyxTQUFBLENBQXFCLEMsUUFDdkIsQyxNQUR1QixDLGlCQUV2QixDLEVBRnVCLEMsWUFHdkIsQ0FBWSxDLGdCQUFFLEMsR0FBRixDLE1BQXFCLEMsZ0JBQXJCLENBSFcsQyxhQUl2QixDQUFhLEMsTUFBRSxDLFlBQUYsQ0FKVSxDLFdBS3ZCLEMsZUFMdUIsQyxnQkFNdkIsQyxnQkFOdUIsQ0FBM0IsQ0FRTUMsU0FBQSxDQUFtQnRJLENBQUEsQyxnQkFBQSxDQVJ6QixDQVNBc0ksU0FBQSxDLGdCQUFBLEVBQTZCak4sTUFBQSxDLGdCQUFBLEVBQWNBLE1BQUEsQyxnQkFBQSxFQUFjLEVBQWQsQ0FBa0JzTSxTQUFBLEVBQWxCLENBQWQsQ0FBaUUsQyxZQUFFLENBQVksSUFBTVUsU0FBcEIsQyxjQUMxRixDQUFhRSxTQUFiLEMsa0NBQ1dBLFNBQUEsQyxXQUFBLEksa0JBRitFLEMsV0FHdkYsQyxJQUh1RixDQUFqRSxDQUE3QixDLEVBdkV1QyxDLFlBNEUzQyxFLEVBNUUyQyxDQUEvQyxDLEVBM3VCSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgY29uc3QgT3JnYW5pemVzUmVmTm9kZUlkID0gXCJucz0wO2k9MzVcIjtcbiAgICBjb25zdCBGb2xkZXJUeXBlID0gXCJucz0wO2k9NjFcIjtcbiAgICBjb25zdCBIYXNDb21wb25lbnRSZWZOb2RlSWQgPSBcIm5zPTA7aT00N1wiO1xuICAgIGNvbnN0IEhhc1Byb3BlcnR5UmVmTm9kZUlkID0gXCJucz0wO2k9NDZcIjtcbiAgICBjb25zdCBIYXNDaGlsZFJlZk5vZGVJZCA9IFwibnM9MDtpPTM0XCI7XG4gICAgY29uc3QgSGFzU3VidHlwZVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ1XCI7XG4gICAgY29uc3QgSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQgPSBcIm5zPTA7aT00MFwiO1xuXG4gICAgdmFyIEJyb3dzZURpcmVjdGlvbjtcbiAgICAoZnVuY3Rpb24gKEJyb3dzZURpcmVjdGlvbikge1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiRm9yd2FyZFwiXSA9IDBdID0gXCJGb3J3YXJkXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZlcnNlXCJdID0gMV0gPSBcIkludmVyc2VcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkJvdGhcIl0gPSAyXSA9IFwiQm90aFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52YWxpZFwiXSA9IDNdID0gXCJJbnZhbGlkXCI7XG4gICAgfSkoQnJvd3NlRGlyZWN0aW9uIHx8IChCcm93c2VEaXJlY3Rpb24gPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3M7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlVuc3BlY2lmaWVkXCJdID0gMF0gPSBcIlVuc3BlY2lmaWVkXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzcyB8fCAoTm9kZUNsYXNzID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzTWFzaztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzc01hc2spIHtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzc01hc2sgfHwgKE5vZGVDbGFzc01hc2sgPSB7fSkpO1xuICAgIGZ1bmN0aW9uIGNvZXJjZUZsYWdNYXNrVG9OdW1iZXIodHlwZSwgc3RyKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc3RyID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0ckFzTnVtID0gcGFyc2VJbnQoc3RyLCAxMCk7XG4gICAgICAgIGlmICghaXNOYU4oc3RyQXNOdW0pKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyQXNOdW07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmxhZ3MgPSBzdHIuc3BsaXQoL1xcfHw7fCwvKS5tYXAoKGEpID0+IGEudHJpbSgpKTtcbiAgICAgICAgbGV0IHJlc3VsdCA9IDA7XG4gICAgICAgIGZvciAoY29uc3QgZmxhZyBvZiBmbGFncykge1xuICAgICAgICAgICAgcmVzdWx0IHw9IHR5cGVbZmxhZ107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29lcmNlRmxhZ01hc2tUb1N0cmluZyh0eXBlLCB2YWx1ZSkge1xuICAgICAgICB2YWx1ZSA9IGNvZXJjZUZsYWdNYXNrVG9OdW1iZXIodHlwZSwgdmFsdWUpO1xuICAgICAgICBjb25zdCByID0gW107XG4gICAgICAgIGlmICghdHlwZSlcbiAgICAgICAgICAgIHJldHVybiByLmpvaW4oXCIgfCBcIik7XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgYml0TWFza10gb2YgT2JqZWN0LmVudHJpZXModHlwZSkpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoKHZhbHVlICYgYml0TWFzaykgPT09IGJpdE1hc2spIHtcbiAgICAgICAgICAgICAgICAgICAgci5wdXNoKGtleSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByLmpvaW4oXCIgfCBcIik7XG4gICAgfVxuICAgIHZhciBSZXN1bHRNYXNrO1xuICAgIChmdW5jdGlvbiAoUmVzdWx0TWFzaykge1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMV0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiSXNGb3J3YXJkXCJdID0gMl0gPSBcIklzRm9yd2FyZFwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJOb2RlQ2xhc3NcIl0gPSA0XSA9IFwiTm9kZUNsYXNzXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkJyb3dzZU5hbWVcIl0gPSA4XSA9IFwiQnJvd3NlTmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJEaXNwbGF5TmFtZVwiXSA9IDE2XSA9IFwiRGlzcGxheU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiVHlwZURlZmluaXRpb25cIl0gPSAzMl0gPSBcIlR5cGVEZWZpbml0aW9uXCI7XG4gICAgfSkoUmVzdWx0TWFzayB8fCAoUmVzdWx0TWFzayA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZ2FuaXplc1JlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNQcm9wZXJ0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNQcm9wZXJ0eVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ29tcG9uZW50UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NoaWxkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NoaWxkUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1N1YnR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzU3VidHlwZVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNUeXBlRGVmaW5pdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldEljb24gPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVmZXJlbmNlLm5vZGVDbGFzcykge1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBPcmdhbml6ZXNSZWZOb2RlSWQpIDtcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnR5cGVEZWZpbml0aW9uID09PSBGb2xkZXJUeXBlIHx8IHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IFwiaT02MVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtZm9sZGVyXCIsIGNvbG9yOiBcInJnYmEoNjEsIDYwLCA0LCAwLjUyNSlcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJTZWFHcmVlblwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzQ29tcG9uZW50UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiU3RlZWxCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzUHJvcGVydHlSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJEb2RnZXJCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiTWV0aG9kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1jb2dcIiwgY29sb3I6IFwiU2FuZHlCcm93blwiIH07XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0VHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtc2xpZGVyc1wiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJEYXRhVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtdGV4dC13aWR0aFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGljb246IFwiZmEtcXVlc3Rpb25cIiwgY29sb3I6IFwiZ3JleVwiIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGJyb3dzZSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkLCB0ZW1wbGF0ZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9icm93c2VgO1xuICAgICAgICBjb25zdCBicm93c2VEZXNjcmlwdGlvbiA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGVtcGxhdGUpLCB7IG5vZGVJZCwgcmVzdWx0TWFzazogNjMgfSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGJyb3dzZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXM6IFtdIH07XG4gICAgICAgIH1cbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJicm93c2UgZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB3YWxrQmFja3dhcmQgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIHsgbm9kZUlkLCByb290Tm9kZUlkLCBpc1R5cGUgfSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS93YWxrLWJhY2t3YXJkYDtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgICAgIHJvb3ROb2RlSWQsXG4gICAgICAgICAgICAgICAgaXNUeXBlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIHJldHVybiBqc29uLmJyb3dzZVBhdGg7XG4gICAgfSk7XG4gICAgY29uc3QgaW50ZXJuYWxWZXJpZnkgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sICRpbnB1dEVsZW1lbnQsICRpbmZvKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2NoZWNrTm9kZUlkYDtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgbm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChqc29uLm5vZGVBZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7bm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50ID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2Q7XG4gICAgICAgIGlmICghcmVmZXJlbmNlIHx8ICFyZWZlcmVuY2Uubm9kZUlkKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCB0aXRsZSA9IGAoJHtyZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCl9KSAkeygoX2MgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLm5hbWUpIHx8ICgoX2QgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC50ZXh0KSB8fCBcIlwifWA7XG4gICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpIGtleT1cIiR7cmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpfVwifT48c3BhbiBjbGFzcz1cInRyZWUtdGV4dFwiIHRpdGxlPSR7dGl0bGV9PjxpIGNsYXNzPVwiZmEgJHtpY29ufVwiIHN0eWxlPVwiY29sb3I6JHtjb2xvcn07XCI+PC9pPiAke3R9PC9zcGFuPjx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICRlbGVtZW50LmFkZENsYXNzKFwiZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInZhbHVlXCIsIG4pO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICB9O1xuICAgIGNvbnN0IGZpbmRFbGVtZW50ID0gKG5vZGVJZCwgJHRyZWUpID0+IHtcbiAgICAgICAgcmV0dXJuICR0cmVlLmZpbmQoYGxpW2tleT1cIiR7bm9kZUlkfVwiXWApO1xuICAgIH07XG4gICAgY29uc3Qgc2VsZWN0U2luZ2xlID0gKHRoYXQsICRsaSkgPT4ge1xuICAgICAgICB0aGF0LiR0cmVlLmZpbmQoXCJsaSA+IC50cmVlLXRleHRcIikucmVtb3ZlQ2xhc3MoXCJzZWxlY3RlZFwiKTtcbiAgICAgICAgLy8gY2xlYXIgYWxsIHNlbGVjdGVkIGl0ZW1zXG4gICAgICAgICRsaS5maW5kKFwiLnRyZWUtdGV4dDpmaXJzdFwiKS5hZGRDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgIH07XG4gICAgY29uc3QgYXV0b0V4cGFuZCA9ICh0aGF0LCBicm93c2VQYXRoLCAkdHJlZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIC8vIGV4cGFuZCB0aGUgdHJlZSB0byBzaG93IHRoZSBub2RlSWRcbiAgICAgICAgbGV0ICRjdXJyZW50ID0gJHRyZWUuY2hpbGRyZW4oXCI6Zmlyc3RcIik7XG4gICAgICAgIGJyb3dzZVBhdGgucmVsYXRpdmVQYXRoLmVsZW1lbnRzIHx8IFtdO1xuICAgICAgICBjb25zdCBub2RlSWRzID0gYnJvd3NlUGF0aC5ub2RlSWRzIHx8IFtdO1xuICAgICAgICBpZiAobm9kZUlkcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IG4gb2Ygbm9kZUlkcykge1xuICAgICAgICAgICAgaWYgKCRjdXJyZW50Lmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgIC8vIG5lZWQgdG8gZXhwYW5kIGFuZCBzZWxlY3QgdGhlIHJpZ2h0IGVsZW1lbnRcbiAgICAgICAgICAgICAgICB5aWVsZCBfZXhwYW5kTGkodGhhdCwgJGN1cnJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBmaW5kRWxlbWVudChuLCAkY3VycmVudCk7XG4gICAgICAgICAgICBpZiAoJGVsZW1lbnQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGN1cnJlbnQgPSAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBzZWxlY3RTaW5nbGUodGhhdCwgJGN1cnJlbnQpO1xuICAgICAgICBzY3JvbGxUb0xpKHRoYXQuJGRyb3Bkb3duLCAkY3VycmVudCk7XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gc2Nyb2xsVG9MaSgkY29udGFpbmVyLCAkdGFyZ2V0TGkpIHtcbiAgICAgICAgLy8gR2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgdGFyZ2V0IGl0ZW0gcmVsYXRpdmUgdG8gaXRzIGNvbnRhaW5lclxuICAgICAgICBjb25zdCBsaVBvcyA9ICR0YXJnZXRMaS5wb3NpdGlvbigpLnRvcDtcbiAgICAgICAgLy8gR2V0IHRoZSBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbiBvZiB0aGUgY29udGFpbmVyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclNjcm9sbFRvcCA9ICRjb250YWluZXIuc2Nyb2xsVG9wKCk7XG4gICAgICAgIGlmIChjb250YWluZXJTY3JvbGxUb3AgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBwb3NpdGlvbiB0byBzY3JvbGwgdG8gKGN1cnJlbnQgc2Nyb2xsICsgaXRlbSdzIHBvc2l0aW9uKVxuICAgICAgICAvLyBBZGp1c3QgdGhpcyBjYWxjdWxhdGlvbiBiYXNlZCBvbiB5b3VyIG5lZWRzXG4gICAgICAgIGNvbnN0IHNjcm9sbFRvID0gY29udGFpbmVyU2Nyb2xsVG9wICsgbGlQb3MgLSAkY29udGFpbmVyLmhlaWdodCgpIC8gMiArICR0YXJnZXRMaS5oZWlnaHQoKSAvIDI7XG4gICAgICAgIC8vIFNjcm9sbCB0aGUgY29udGFpbmVyIHRvIGVuc3VyZSB0aGUgaXRlbSBpcyB2aXNpYmxlXG4gICAgICAgICRjb250YWluZXIuYW5pbWF0ZSh7XG4gICAgICAgICAgICBzY3JvbGxUb3A6IHNjcm9sbFRvLFxuICAgICAgICB9LCA1MDApOyAvLyBBZGp1c3QgdGhlIGR1cmF0aW9uICg1MDBtcykgYXMgbmVlZGVkXG4gICAgfVxuICAgIGNvbnN0IHJlYWNoU2VsZWN0aW9uID0gKHRoYXQsIHBhcmVudE5vZGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBub2RlSWQgPSB0aGF0LiRpbnB1dC52YWwoKTtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIHJvb3ROb2RlSWQ6IHBhcmVudE5vZGUubm9kZUlkLFxuICAgICAgICAgICAgaXNUeXBlOiB0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmIHx8IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgIGNvbnN0IGJyb3dzZVBhdGggPSB5aWVsZCB3YWxrQmFja3dhcmQoZGF0YSwgb3B0aW9ucyk7XG4gICAgICAgIGlmICghYnJvd3NlUGF0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHlpZWxkIGF1dG9FeHBhbmQodGhhdCwgYnJvd3NlUGF0aCwgdGhhdC4kdHJlZSk7XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gX2ZldGNoRGF0YUZvck5vZGUodGhhdCwgJG5vZGUsIGZldGNoRnVuYywgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImxvYWRpbmdcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgbG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgICAgICAkbm9kZS5hcHBlbmQoJzxkaXYgY2xhc3M9XCJzcGlubmVyXCI+PC9kaXY+Jyk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHJlZmVyZW5jZXMgfSA9IHlpZWxkIGZldGNoRnVuYygkbm9kZSwgZGF0YSk7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCByZWZlcmVuY2Ugb2YgcmVmZXJlbmNlcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmZpbHRlciAmJiAhdGhhdC5vcHRpb25zLmZpbHRlcihyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKGA8bGk+ZXJyb3IgJHtlcnIubWVzc2FnZX08L2xpPmApO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyXCIsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkbm9kZS5maW5kKFwiLnNwaW5uZXJcIikucmVtb3ZlKCk7XG4gICAgICAgICAgICAkbm9kZS5yZW1vdmVDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYWtlQ29ubmVjdGlvbih0aGF0KSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgICBmdW5jdGlvbiBfZXhwYW5kTGkodGhhdCwgJGxpKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgICAgICBjb25zdCBmID0gIXRoYXQub3B0aW9ucy5pc1R5cGVSZWYgPyBmZXRjaENoaWxkcmVuIDogZmV0Y2hTdWJ0eXBlcztcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgeWllbGQgX2ZldGNoRGF0YUZvck5vZGUodGhhdCwgJGxpLCBmLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBbIFRlbXBlcmF0dXJlICBdXG4gICAgICAgICAqICAgKCB0b29sdGlwIDogKC9PYmplY3RzL015U2Vuc29yKSAobnM9MTtzPVRlbXBlcmF0dXJlKSlcbiAgICAgICAgICogWyArIFtGb2xkZXJdIE9iamVjdHNdXG4gICAgICAgICAqIFsgICAgIFtPYmplY3RdIE15U2Vuc29yXVxuICAgICAgICAgKiBbICAgICAoICkgW1ZhcmlhYmxlXSBUZW1wZXJhdHVyZV1cbiAgICAgICAgICovXG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUubm9kZUJyb3dzZXJcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZTogKCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgbm9kZUNsYXNzOiBcIk9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBub2RlSWQ6IFwibnM9MDtpPTg1XCIsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIHR5cGVEZWZpbml0aW9uOiBGb2xkZXJUeXBlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgICAgIGlzVHlwZVJlZjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzb2x2ZVBhcmVudE5vZGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhhdC5fX3BhcmVudE5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0eXBlb2YgdGhhdC5vcHRpb25zLnBhcmVudE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlLmNhbGwodGhhdCkgOiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlc2MgPSB5aWVsZCBhO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX19wYXJlbnROb2RlID0gZGVzYztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX19wYXJlbnROb2RlID0gYTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhhdC5fX3BhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzZXQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIC8vIGFsc28gcmVzZXQgcGFyZW50IG5vZGVcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHRoYXQ7XG4gICAgICAgICAgICAgICAgICAgIGEuX19wYXJlbnROb2RlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSB5aWVsZCB0aGlzLnJlc29sdmVQYXJlbnROb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5jdXJyZW50UGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2ZXJpZnkoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgICAgICAgICBpbnRlcm5hbFZlcmlmeShkYXRhLCB0aGF0LiRpbnB1dCwgdGhhdC4kaW5mbyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21ibyA9ICQoXCI8ZGl2Lz5cIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJzdGVyZml2ZS1jb21iby1ib3hcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZWVkVG9SZWFjaFNlbGVjdGlvbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0cmVlIHdpZGdldCBpcyBnb2luZyB0byBiZWNvbWUgdmlzaWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudE5vZGUgPSB5aWVsZCB0aGF0LnJlc29sdmVQYXJlbnROb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudE5vZGUgIT09IHRoYXQuY3VycmVudFBhcmVudCB8fCAoKF9hID0gdGhhdC5jdXJyZW50UGFyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eubm9kZUlkKSAhPT0gcGFyZW50Tm9kZS5ub2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgdGhhdC5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWVkVG9SZWFjaFNlbGVjdGlvbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRUb1JlYWNoU2VsZWN0aW9uICYmICh5aWVsZCByZWFjaFNlbGVjdGlvbih0aGF0LCBwYXJlbnROb2RlKSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1mbGFza1wiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR2ZXJpZnlCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0bi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52ZXJpZnkoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIiwgXCJlbnRlciBhIG5vZGVJZCBvciBhIGJyb3dzZVBhdGggXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvID0gJChgPGRpdiBjbGFzcz1cImluZm8tdGV4dFwiPjwvZGl2PmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcInN0ZXJmaXZlLWRyb3Bkb3duXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5mbyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlID0gJChgPHVsIGNsYXNzPVwic3RlcmZpdmUtdHJlZVwiPjwvdWw+YCkuYXBwZW5kVG8odGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBpc09uTGVmdFNpemUgPSAoJGxpLCBldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVXaWR0aCA9IDIwOyAvLyBTZXQgd2lkdGggb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlSGVpZ2h0ID0gMjA7IC8vIFNldCBoZWlnaHQgb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFBvcyA9ICRsaS5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5wYWdlWCA+PSBlbGVtZW50UG9zLmxlZnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVggPD0gZWxlbWVudFBvcy5sZWZ0ICsgYmVmb3JlV2lkdGggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPj0gZWxlbWVudFBvcy50b3AgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPD0gZWxlbWVudFBvcy50b3AgKyBiZWZvcmVIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvZ2dsZUV4cGFuc2lvbiA9ICgkbGkpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9leHBhbmRMaSh0aGF0LCAkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUb2dnbGUgaXRzIGV4cGFuZGVkL2NvbGxhcHNlZCBzdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiZGJsY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPbkxlZnRTaXplKCRsaSwgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVFeHBhbnNpb24oJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gJGxpLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9ICRsaS5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUgJiYgIXRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gYFske2Rpc3BsYXlOYW1lfV0oJHt2YWx1ZX0pYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnZhbChpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT25MZWZ0U2l6ZSgkbGksIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRXhwYW5zaW9uKCRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0U2luZ2xlKHRoYXQsICRsaSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSB0aGUgcGFnZSB3aWxsIGhpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QodGhhdC4kY29tYm8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgZGVjbGFyZUZsYWdFZGl0b3JXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUuZmxhZ0VkaXRvclwiLCB7XG4gICAgICAgICAgICAvLyBkZWZhdWx0IG9wdGlvbnNcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBuYW1lc1RvQml0czoge1xuICAgICAgICAgICAgICAgIC8vIEFkZCBtb3JlIG5hbWVzIGFuZCBiaXQgdmFsdWVzXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIC8vIEN1c3RvbSBEcm9wZG93blxuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0ID0gdGhpcy5lbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvID0gJChcIjxkaXYvPlwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcInN0ZXJmaXZlLWNvbWJvLWJveFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRbMF0ucGFyZW50RWxlbWVudC5yZXBsYWNlQ2hpbGQodGhhdC4kY29tYm9bMF0sIHRoaXMuZWxlbWVudFswXSk7XG4gICAgICAgICAgICAgICAgLy8gdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgLy8gdGhlIHRvZ2dsZSB0cmVlIGJ1dHRvbjpcbiAgICAgICAgICAgICAgICAvLyAgIHdoZW4gd2UgY2xpY2sgaXQgdGhlIGRyb3AgZG93biBwYW5lbCBpcyBkaXNwbGF5ZWRcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLWV5ZVwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQuJHNlbGVjdC5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlRnJvbUlucHV0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5maW5kKFwiLmN1c3RvbS1vcHRpb25cIikuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG9wdGlvbk5hbWUgPSAkKHRoaXMpLnRleHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBiaXRWYWx1ZSA9IHRoYXQub3B0aW9ucy5uYW1lc1RvQml0c1tvcHRpb25OYW1lXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYml0VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbmtub3duIGJpdCBuYW1lXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHRoYXQub3B0aW9ucy52YWx1ZSAmIGJpdFZhbHVlKSA9PT0gYml0VmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSBoaWRkZW4gc2VsZWN0IGVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQudXBkYXRlVmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIC8vIHRoZSBkcm9wIGRvd24gcGFuZWxcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoJzxkaXYgY2xhc3M9XCJjdXN0b20tc2VsZWN0XCI+PC9kaXY+JykuaGlkZSgpLmluc2VydEFmdGVyKHRoaXMuZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgJC5lYWNoKHRoaXMub3B0aW9ucy5uYW1lc1RvQml0cywgZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJG9wdGlvbiA9ICQoJzxkaXYgY2xhc3M9XCJjdXN0b20tb3B0aW9uXCIgZGF0YS12YWx1ZT1cIicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSArXG4gICAgICAgICAgICAgICAgICAgICAgICAnXCI+JyArXG4gICAgICAgICAgICAgICAgICAgICAgICAnPHNwYW4gY2xhc3M9XCJjdXN0b20tY2hlY2tib3hcIj48L3NwYW4+JyArXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiPC9kaXY+XCIpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5hcHBlbmQoJG9wdGlvbik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8gd2hlbiBhIG9wdGlvbnMgaW4gdGhlIGRyb3AgZG93biBwYW5lbCBpcyBjbGlja2VkLFxuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLm9uKFwiY2xpY2tcIiwgXCIuY3VzdG9tLW9wdGlvblwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICQodGhpcykudG9nZ2xlQ2xhc3MoXCJzZWxlY3RlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAkKHRoaXMpLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCQodGhpcykuaGFzQ2xhc3MoXCJzZWxlY3RlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0Qml0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2V0Qml0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGF0LnVwZGF0ZVZhbHVlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVGcm9tSW5wdXQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5lbGVtZW50LnZhbCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0Lm9wdGlvbnMudmFsdWUgPSBjb2VyY2VGbGFnTWFza1RvTnVtYmVyKHRoYXQub3B0aW9ucy5uYW1lc1RvQml0cywgdmFsdWUpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3Qgc2V0Qml0ID0gKGJpdE5hbWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYml0ID0gdGhhdC5vcHRpb25zLm5hbWVzVG9CaXRzW2JpdE5hbWVdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYml0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVua25vd24gYml0IG5hbWVcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLnZhbHVlIHw9IGJpdDtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHVuc2V0Qml0ID0gKGJpdE5hbWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYml0ID0gdGhhdC5vcHRpb25zLm5hbWVzVG9CaXRzW2JpdE5hbWVdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYml0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVua25vd24gYml0IG5hbWVcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLnZhbHVlICY9IH5iaXQ7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC52YWwoY29lcmNlRmxhZ01hc2tUb1N0cmluZyh0aGF0Lm9wdGlvbnMubmFtZXNUb0JpdHMsIHRoaXMub3B0aW9ucy52YWx1ZSkpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdXBkYXRlRnJvbUlucHV0KCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXBkYXRlVmFsdWUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnZhbChjb2VyY2VGbGFnTWFza1RvU3RyaW5nKHRoYXQub3B0aW9ucy5uYW1lc1RvQml0cywgdGhpcy5vcHRpb25zLnZhbHVlKSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2Rlc3Ryb3koKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24ucmVtb3ZlKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IHJlZE5vZGUgPSBSRUQubm9kZXMubm9kZShlbmRwb2ludElkKTtcbiAgICAgICAgaWYgKCFyZWROb2RlKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgLy8gY29uc3QgY3JlZGVudGlhbHMgPSBSRUQuKGVuZHBvaW50SWQpO1xuICAgICAgICAvLyB3ZSBuZWVkIHRvIHNhbml0aXplIGFuZCBleHRyYWN0IHRoZSBlbmRwb2ludCBhdHRyaWJ1dGVzIG9ubHkgKCBub3QgdGhlIG5vZGUtcmVkIHN0dWZmKVxuICAgICAgICBjb25zdCB7IGVuZHBvaW50LCBzZWN1cml0eU1vZGUsIHNlY3VyaXR5UG9saWN5LCB1c2VySWRlbnRpdHlUeXBlLCBjcmVkZW50aWFscyB9ID0gcmVkTm9kZTtcbiAgICAgICAgY29uc3QgcmV0VmFsdWUgPSB7XG4gICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzLFxuICAgICAgICB9O1xuICAgICAgICAvLyB4eCBjb25zb2xlLmxvZyhcInh4eFwiLCByZXRWYWx1ZSk7XG4gICAgICAgIHJldHVybiByZXRWYWx1ZTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IGdldEVuZHBvaW50UGFyYW1ldGVycyxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVycyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCBlbmRwb2ludE5yID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgIGlmICghZW5kcG9pbnROcikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGVuZHBvaW50SWQsXG4gICAgICAgICAgICAvLyBlbmRwb2ludDogZW5kcG9pbnROci5lbmRwb2ludCxcbiAgICAgICAgICAgIC8vIHNlY3VyaXR5TW9kZTogZW5kcG9pbnROci5zZWN1cml0eU1vZGUsXG4gICAgICAgICAgICAvLyBzZWN1cml0eVBvbGljeTogZW5kcG9pbnROci5zZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyB1c2VySWRlbnRpdHlUeXBlOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICAvLyBjcmVkZW50aWFsOiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIHVzZXJOYW1lOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlck5hbWUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAvLyBwYXNzd29yZDogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlID09PSBcIlVzZXJOYW1lXCIgPyBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnBhc3N3b3JkIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgLy8gdXNlckNlcnRpZmljYXRlOiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJDZXJ0aWZpY2F0ZSxcbiAgICAgICAgICAgIC8vIHVzZXJQcml2YXRla2V5OiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJQcml2YXRla2V5LFxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBSRUQubm9kZXMucmVnaXN0ZXJUeXBlKFwiT3BjVWEtQ2xpZW50Mi1Ccm93c2VcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJvcGN1YVwiLFxuICAgICAgICBjb2xvcjogXCIjQzBERUVEXCIsXG4gICAgICAgIGFsaWduOiBcInJpZ2h0XCIsXG4gICAgICAgIGljb246IFwiLi4vLi4vaWNvbnMvb3BjdWFub2RlTG9nby5wbmdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcImJyb3dzZVwiLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgaW5wdXRzOiB7IHZhbHVlOiAxIH0sXG4gICAgICAgICAgICBvdXRwdXQ6IHsgdmFsdWU6IDQgfSxcbiAgICAgICAgICAgIC8vIENvbW1vblxuICAgICAgICAgICAgbmFtZTogeyB2YWx1ZTogXCJcIiB9LFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlLCB0eXBlOiBcIk9wY1VhLUVuZHBvaW50MlwiIH0sXG4gICAgICAgICAgICAvLyBmb3IgYWN0aW9uIHJlYWRcbiAgICAgICAgICAgIG5vZGVJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHsgdmFsdWU6IFwiSGFzQ2hpbGRcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHsgdmFsdWU6IGZhbHNlLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiB7IHZhbHVlOiBcIkZvcndhcmRcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIG5vZGVDbGFzc01hc2s6IHsgdmFsdWU6IFwiVmFyaWFibGUgfCBPYmplY3QgfCBNZXRob2QgfCBPYmplY3RUeXBlIHwgVmFyaWFibGVUeXBlXCIsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgcmVzdWx0TWFzazogeyB2YWx1ZTogXCJSZWZlcmVuY2VUeXBlIHwgQnJvd3NlTmFtZSB8IFR5cGVEZWZpbml0aW9uIHwgRGlzcGxheU5hbWUgfCBOb2RlQ2xhc3MgfCBJc0ZvcndhcmRcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG91dHB1dHM6IDEsXG4gICAgICAgIGxhYmVsKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSB8fCBcIk9QQ1VBIEJyb3dzZVwiO1xuICAgICAgICB9LFxuICAgICAgICBsYWJlbFN0eWxlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSA/IFwibm9kZV9sYWJlbF9pdGFsaWNcIiA6IFwiXCI7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHByZXBhcmUoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcztcbiAgICAgICAgICAgIGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCgpO1xuICAgICAgICAgICAgZGVjbGFyZUZsYWdFZGl0b3JXaWRnZXQoKTtcbiAgICAgICAgICAgIG5vZGUuaW5wdXRzID0gMTtcbiAgICAgICAgICAgIGNvbnN0ICRub2RlQ2xhc3NNYXNrID0gJChcIiNub2RlLWlucHV0LW5vZGVDbGFzc01hc2tcIik7XG4gICAgICAgICAgICAkbm9kZUNsYXNzTWFzay5mbGFnRWRpdG9yKHtcbiAgICAgICAgICAgICAgICBuYW1lc1RvQml0czoge1xuICAgICAgICAgICAgICAgICAgICBPYmplY3Q6IDEsXG4gICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlOiAyLFxuICAgICAgICAgICAgICAgICAgICBNZXRob2Q6IDQsXG4gICAgICAgICAgICAgICAgICAgIE9iamVjdFR5cGU6IDgsXG4gICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlVHlwZTogMTYsXG4gICAgICAgICAgICAgICAgICAgIFJlZmVyZW5jZVR5cGU6IDMyLFxuICAgICAgICAgICAgICAgICAgICBEYXRhVHlwZTogNjQsXG4gICAgICAgICAgICAgICAgICAgIFZpZXc6IDEyOCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHZhbHVlOiAwLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCAkcmVzdWx0TWFzayA9ICQoXCIjbm9kZS1pbnB1dC1yZXN1bHRNYXNrXCIpO1xuICAgICAgICAgICAgJHJlc3VsdE1hc2suZmxhZ0VkaXRvcih7XG4gICAgICAgICAgICAgICAgbmFtZXNUb0JpdHM6IHtcbiAgICAgICAgICAgICAgICAgICAgUmVmZXJlbmNlVHlwZTogMSxcbiAgICAgICAgICAgICAgICAgICAgSXNGb3J3YXJkOiAyLFxuICAgICAgICAgICAgICAgICAgICBOb2RlQ2xhc3M6IDQsXG4gICAgICAgICAgICAgICAgICAgIEJyb3dzZU5hbWU6IDgsXG4gICAgICAgICAgICAgICAgICAgIERpc3BsYXlOYW1lOiAxNixcbiAgICAgICAgICAgICAgICAgICAgVHlwZURlZmluaXRpb246IDMyLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdmFsdWU6IDYzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCAkbm9kZUlkID0gJChcIiNub2RlLWlucHV0LW5vZGVJZFwiKTtcbiAgICAgICAgICAgICRub2RlSWQubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IGlzU2VsZWN0YWJsZShub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIlZhcmlhYmxlXCIgfHwgbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiO1xuICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlc05vZGVEZXNjID0ge1xuICAgICAgICAgICAgICAgIG5vZGVJZDogXCJpPTMxXCIsXG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiBcIlwiLFxuICAgICAgICAgICAgICAgIGJyb3dzZU5hbWU6IHsgbmFtZXNwYWNlSW5kZXg6IDAsIG5hbWU6IFwiUmVmZXJlbmNlc1wiIH0sXG4gICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IHsgdGV4dDogXCJSZWZlcmVuY2VzXCIgfSxcbiAgICAgICAgICAgICAgICBub2RlQ2xhc3M6IFwiUmVmZXJlbmNlVHlwZVwiLFxuICAgICAgICAgICAgICAgIHR5cGVEZWZpbml0aW9uOiBcImk9MzFcIixcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCAkcmVmZXJlbmNlVHlwZUlkID0gJChcIiNub2RlLWlucHV0LXJlZmVyZW5jZVR5cGVJZFwiKTtcbiAgICAgICAgICAgICRyZWZlcmVuY2VUeXBlSWQubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IHBhcmVudE5vZGU6ICgpID0+IHJlZmVyZW5jZXNOb2RlRGVzYywgLy8gUmVmZXJlbmNlcyxcbiAgICAgICAgICAgICAgICBpc1NlbGVjdGFibGUobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgICAgICAgICAgfSwgaXNUeXBlUmVmOiB0cnVlIH0pKTtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0c2F2ZSgpIHsgfSxcbiAgICB9KTtcblxufSkoKTsiXX0=
|
7
|
+
function _0x4960(_0x47ac82,_0x39e250){const _0x284ae1=_0x284a();return _0x4960=function(_0x4960e6,_0x33d161){_0x4960e6=_0x4960e6-0x1dc;let _0x1bc832=_0x284ae1[_0x4960e6];return _0x1bc832;},_0x4960(_0x47ac82,_0x39e250);}function _0x284a(){const _0x49be3f=['</div>','nodeId','Object','SeaGreen','inputs','nodeIds','offset','<div/>','nodeClass','children','elements','/browse','node_label_italic','status','toggleClass','ns=0;i=40','throw','opcua','resolveParentNode','error','animate','<ul\x20class=\x22sterfive-tree\x22></ul>','updateValue','fa-text-width','expanded','POST','fa-sliders','toggle','HasProperty','parentElement','toString','err','HasChild','match','DodgerBlue','.custom-option',':visible','ObjectType','element','json','DataType','$dropdown','li[key=\x22','VariableType','ReferenceType','replaceWith','target','then','displayName','/walk-backward','expandable','<div\x20class=\x22spinner\x22></div>',';\x22></i>\x20','value','</span><ul></ul></li>','insertAfter','empty','1aTvits','left','position','click','<div\x20class=\x22custom-select\x22></div>','<li\x20key=\x22','Organizes','nodeBrowser','ns=0;i=46','join','next','filter','1426830zmHYBM','assign','namesToBits','suppressed','27wTyuri','length','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','Objects','currentParent','sterfive-combo-box','\x22}><span\x20class=\x22tree-text\x22\x20title=','Unknown\x20bit\x20name','<div\x20class=\x22info-text\x22></div>','HasSubtype','log','HasTypeDefinition','226020TpaHPw','fa-object-group','Forward','SteelBlue','name','right','BrowseName','loading','i=31','</li>','change','height','$inputGroup','number','failure','<span\x20class=\x22custom-checkbox\x22></span>','Inverse','append','SuppressedError','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','val','input-group','749796vYpzWa','$verifyBtn','li\x20>\x20.tree-text','isSelectable','CadetBlue','replaceChild','Good','references','ns=0;i=85','endpointNode','Method','function','dblclick','#node-input-resultMask','Unspecified','top','widget','__parentNode','stringify','browsePath','References','21wsQSEg','appendTo','statusCode','ns=0;i=61','204zgFjOo','sterfive.flagEditor','\x20|\x20','placeholder','trigger','trim','call','#node-input-nodeId','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','Both','verify','/opcua-endpoint2','OPCUA\x20Browse','endpoint','OpcUa-Client2-Browse','flagEditor','Variable','show','application/json','baseUrl','><i\x20class=\x22fa\x20','fa-folder','closest','rgba(61,\x2060,\x204,\x200.525)','pageY','selected','apply','fetched','#C0DEED','View','browseName','887024kfJihA','remove','$combo','$input','fa-list-alt','hide','TypeDefinition','browseResult','parentNode','options','addClass','$tree','../../icons/opcuanodeLogo.png','#node-input-endpoint','stopPropagation','sterfive-info','split','sterfive.nodeBrowser','isTypeRef','data','<li>error\x20','DisplayName','pageX','.spinner','ns=0;i=47','expandable\x20expanded','#node-input-referenceTypeId','i=61','find','IsForward','409358SVuPNv','sterfive-dropdown','already\x20loading','browse','NodeClass','nodes','ns=0;i=45','2574187HOzQPM','reference','text','referenceTypeId','hasClass','removeClass','$toggleTreeBtn','already\x20fetched','DarkOrange','statusText','<div\x20class=\x22custom-option\x22\x20data-value=\x22','$info','57tOwDLJ','<button><i\x20class=\x22fa\x20fa-eye\x22></i></button>','scrollTop','nodeAddressString'];_0x284a=function(){return _0x49be3f;};return _0x284a();}(function(_0x2e1e74,_0x50944d){const _0x431ac8=_0x4960,_0x2e0411=_0x2e1e74();while(!![]){try{const _0x37b018=-parseInt(_0x431ac8(0x201))/0x1*(-parseInt(_0x431ac8(0x289))/0x2)+-parseInt(_0x431ac8(0x29c))/0x3*(-parseInt(_0x431ac8(0x24c))/0x4)+-parseInt(_0x431ac8(0x21d))/0x5+parseInt(_0x431ac8(0x233))/0x6*(parseInt(_0x431ac8(0x248))/0x7)+-parseInt(_0x431ac8(0x26b))/0x8*(parseInt(_0x431ac8(0x211))/0x9)+-parseInt(_0x431ac8(0x20d))/0xa+parseInt(_0x431ac8(0x290))/0xb;if(_0x37b018===_0x50944d)break;else _0x2e0411['push'](_0x2e0411['shift']());}catch(_0x461aa1){_0x2e0411['push'](_0x2e0411['shift']());}}}(_0x284a,0x47c9a),(function(){'use strict';const _0x44a7c3=_0x4960;function _0x20547c(_0x51a0b7,_0x11b6e3,_0x3a90a8,_0x13e074){function _0x1573b8(_0x713b6f){return _0x713b6f instanceof _0x3a90a8?_0x713b6f:new _0x3a90a8(function(_0x29f8ea){_0x29f8ea(_0x713b6f);});}return new(_0x3a90a8||(_0x3a90a8=Promise))(function(_0x42e85f,_0x2fabe7){const _0x3c0604=_0x4960;function _0x8e9c6a(_0x1ea410){const _0x5c54c4=_0x4960;try{_0x5a808d(_0x13e074[_0x5c54c4(0x20b)](_0x1ea410));}catch(_0x4ca232){_0x2fabe7(_0x4ca232);}}function _0x4bde37(_0x2df6b1){const _0x288813=_0x4960;try{_0x5a808d(_0x13e074[_0x288813(0x2b0)](_0x2df6b1));}catch(_0x343c20){_0x2fabe7(_0x343c20);}}function _0x5a808d(_0x4b9af2){const _0x1efb66=_0x4960;_0x4b9af2['done']?_0x42e85f(_0x4b9af2['value']):_0x1573b8(_0x4b9af2[_0x1efb66(0x1fd)])[_0x1efb66(0x1f7)](_0x8e9c6a,_0x4bde37);}_0x5a808d((_0x13e074=_0x13e074[_0x3c0604(0x266)](_0x51a0b7,_0x11b6e3||[]))[_0x3c0604(0x20b)]());});}typeof SuppressedError==='function'?SuppressedError:function(_0x3fe314,_0x4d5dec,_0x5b2466){const _0x291214=_0x4960;var _0x29e073=new Error(_0x5b2466);return _0x29e073[_0x291214(0x221)]=_0x291214(0x22f),_0x29e073[_0x291214(0x2b3)]=_0x3fe314,_0x29e073[_0x291214(0x210)]=_0x4d5dec,_0x29e073;};const _0x5914bc='ns=0;i=35',_0x3047a5=_0x44a7c3(0x24b),_0x4d27d2=_0x44a7c3(0x283),_0x580aae=_0x44a7c3(0x209),_0xecb964='ns=0;i=34',_0x9030c6=_0x44a7c3(0x28f),_0x189452=_0x44a7c3(0x2af);var _0x346c69;(function(_0x385f22){const _0x6431fb=_0x44a7c3;_0x385f22[_0x385f22[_0x6431fb(0x21f)]=0x0]='Forward',_0x385f22[_0x385f22[_0x6431fb(0x22d)]=0x1]='Inverse',_0x385f22[_0x385f22[_0x6431fb(0x255)]=0x2]='Both',_0x385f22[_0x385f22['Invalid']=0x3]='Invalid';}(_0x346c69||(_0x346c69={})));var _0x26b5e8;(function(_0x277433){const _0x53ae35=_0x44a7c3;_0x277433[_0x277433['Unspecified']=0x0]=_0x53ae35(0x241),_0x277433[_0x277433['Object']=0x1]=_0x53ae35(0x2a2),_0x277433[_0x277433['Variable']=0x2]='Variable',_0x277433[_0x277433['Method']=0x4]=_0x53ae35(0x23d),_0x277433[_0x277433['ObjectType']=0x8]=_0x53ae35(0x1ed),_0x277433[_0x277433['VariableType']=0x10]='VariableType',_0x277433[_0x277433[_0x53ae35(0x1f4)]=0x20]=_0x53ae35(0x1f4),_0x277433[_0x277433[_0x53ae35(0x1f0)]=0x40]=_0x53ae35(0x1f0),_0x277433[_0x277433[_0x53ae35(0x269)]=0x80]=_0x53ae35(0x269);}(_0x26b5e8||(_0x26b5e8={})));var _0x309f28;(function(_0x404a35){const _0x33bcaa=_0x44a7c3;_0x404a35[_0x404a35[_0x33bcaa(0x2a2)]=0x1]=_0x33bcaa(0x2a2),_0x404a35[_0x404a35[_0x33bcaa(0x25c)]=0x2]=_0x33bcaa(0x25c),_0x404a35[_0x404a35[_0x33bcaa(0x23d)]=0x4]=_0x33bcaa(0x23d),_0x404a35[_0x404a35[_0x33bcaa(0x1ed)]=0x8]=_0x33bcaa(0x1ed),_0x404a35[_0x404a35[_0x33bcaa(0x1f3)]=0x10]=_0x33bcaa(0x1f3),_0x404a35[_0x404a35[_0x33bcaa(0x1f4)]=0x20]='ReferenceType',_0x404a35[_0x404a35[_0x33bcaa(0x1f0)]=0x40]='DataType',_0x404a35[_0x404a35[_0x33bcaa(0x269)]=0x80]='View';}(_0x309f28||(_0x309f28={})));function _0x387655(_0x53c850,_0x158732){const _0x1fcc12=_0x44a7c3;if(typeof _0x158732===_0x1fcc12(0x22a))return _0x158732;const _0x23c66b=parseInt(_0x158732,0xa);if(!isNaN(_0x23c66b))return _0x23c66b;const _0x38c5f1=_0x158732[_0x1fcc12(0x27b)](/\||;|,/)['map'](_0x5564da=>_0x5564da[_0x1fcc12(0x251)]());let _0x225ec7=0x0;for(const _0x120349 of _0x38c5f1){_0x225ec7|=_0x53c850[_0x120349];}return _0x225ec7;}function _0x52c578(_0x540754,_0x54c51a){const _0x55a27d=_0x44a7c3;_0x54c51a=_0x387655(_0x540754,_0x54c51a);const _0x57c727=[];if(!_0x540754)return _0x57c727[_0x55a27d(0x20a)](_0x55a27d(0x24e));for(const [_0x401124,_0x557591]of Object['entries'](_0x540754)){typeof _0x54c51a===_0x55a27d(0x22a)&&((_0x54c51a&_0x557591)===_0x557591&&_0x57c727['push'](_0x401124));}return _0x57c727[_0x55a27d(0x20a)](_0x55a27d(0x24e));}var _0x3268af;(function(_0x1593ab){const _0xa3f896=_0x44a7c3;_0x1593ab[_0x1593ab['ReferenceType']=0x1]=_0xa3f896(0x1f4),_0x1593ab[_0x1593ab[_0xa3f896(0x288)]=0x2]=_0xa3f896(0x288),_0x1593ab[_0x1593ab[_0xa3f896(0x28d)]=0x4]='NodeClass',_0x1593ab[_0x1593ab[_0xa3f896(0x223)]=0x8]='BrowseName',_0x1593ab[_0x1593ab[_0xa3f896(0x280)]=0x10]='DisplayName',_0x1593ab[_0x1593ab['TypeDefinition']=0x20]=_0xa3f896(0x271);}(_0x3268af||(_0x3268af={})));function _0x4a3d9c(_0xc6f5c7){const _0x267006=_0x44a7c3;switch(_0xc6f5c7){case _0x267006(0x207):return _0x5914bc;case _0x267006(0x1e4):return _0x580aae;case'HasComponent':return _0x4d27d2;case _0x267006(0x1e8):return _0xecb964;case _0x267006(0x21a):return _0x9030c6;case _0x267006(0x21c):return _0x189452;}}const _0xef0c9f=_0x4e5cbf=>{const _0x48e673=_0x44a7c3;switch(_0x4e5cbf[_0x48e673(0x2a8)]){case _0x48e673(0x2a2):if(_0x4e5cbf[_0x48e673(0x293)]===_0x5914bc);if(_0x4e5cbf['typeDefinition']===_0x3047a5||_0x4e5cbf[_0x48e673(0x293)]===_0x48e673(0x286))return{'icon':_0x48e673(0x261),'color':_0x48e673(0x263)};return{'icon':'fa-object-group','color':_0x48e673(0x2a3)};case _0x48e673(0x25c):if(_0x4e5cbf['referenceTypeId']===_0x4d27d2)return{'icon':_0x48e673(0x26f),'color':_0x48e673(0x220)};else return _0x4e5cbf[_0x48e673(0x293)]===_0x580aae?{'icon':_0x48e673(0x26f),'color':_0x48e673(0x1ea)}:{'icon':_0x48e673(0x26f),'color':'CadetBlue'};case'Method':return{'icon':'fa-cog','color':'SandyBrown'};case _0x48e673(0x1ed):return{'icon':_0x48e673(0x21e),'color':_0x48e673(0x298)};case _0x48e673(0x1f3):return{'icon':_0x48e673(0x1e2),'color':_0x48e673(0x298)};case _0x48e673(0x1f0):return{'icon':_0x48e673(0x1df),'color':_0x48e673(0x237)};}return{'icon':'fa-question','color':'grey'};},_0x1e17b4=({endpointNode:_0x3263f1,endpoint:_0x135c00,baseUrl:_0x51c136},_0x444451,_0x33222d)=>_0x20547c(void 0x0,void 0x0,void 0x0,function*(){const _0x12be58=_0x44a7c3,_0xabcea0=_0x51c136+_0x12be58(0x257),_0x426a07=_0xabcea0+_0x12be58(0x2ab),_0x42fe69=Object['assign'](Object[_0x12be58(0x20e)]({},_0x33222d),{'nodeId':_0x444451,'resultMask':0x3f}),_0x6d331=yield fetch(_0x426a07,{'method':_0x12be58(0x1e1),'body':JSON[_0x12be58(0x245)]({'endpointNode':_0x3263f1,'endpoint':_0x135c00,'browseDescription':_0x42fe69}),'headers':{'Content-Type':_0x12be58(0x25e)}});if(_0x6d331[_0x12be58(0x2ad)]!==0xc8)return console[_0x12be58(0x21b)]('fetching\x20failed\x20with\x20error',_0x6d331[_0x12be58(0x2ad)],_0x6d331['statusText']),{'references':[]};const _0xf8d222=yield _0x6d331[_0x12be58(0x1ef)](),_0x130a54=_0xf8d222[_0x12be58(0x272)][_0x12be58(0x23a)]||[];return{'references':_0x130a54};}),_0xfbea7b={'referenceTypeId':_0x4a3d9c(_0x44a7c3(0x1e8)),'includeSubtypes':!![],'browseDirection':_0x346c69['Forward'],'nodeClassMask':_0x26b5e8[_0x44a7c3(0x25c)]|_0x26b5e8[_0x44a7c3(0x2a2)]|_0x26b5e8[_0x44a7c3(0x23d)],'resultMask':0x3f},_0x572c66={'referenceTypeId':_0x4a3d9c(_0x44a7c3(0x207)),'includeSubtypes':!![],'browseDirection':_0x346c69[_0x44a7c3(0x21f)],'nodeClassMask':_0x26b5e8[_0x44a7c3(0x25c)]|_0x26b5e8[_0x44a7c3(0x2a2)]|_0x26b5e8['Method'],'resultMask':0x3f},_0x4144de=({endpointNode:_0x357f54,endpoint:_0x15a4f5,baseUrl:_0x29fa48},{nodeId:_0x220b97,rootNodeId:_0x405be4,isType:_0xa12e4d})=>_0x20547c(void 0x0,void 0x0,void 0x0,function*(){const _0x291da3=_0x44a7c3,_0x4e9ecc=_0x29fa48+'/opcua-endpoint2',_0x211b26=_0x4e9ecc+_0x291da3(0x1f9),_0x4a7e42=yield fetch(_0x211b26,{'method':_0x291da3(0x1e1),'body':JSON[_0x291da3(0x245)]({'endpointNode':_0x357f54,'endpoint':_0x15a4f5,'nodeId':_0x220b97,'rootNodeId':_0x405be4,'isType':_0xa12e4d}),'headers':{'Content-Type':'application/json'}});if(_0x4a7e42[_0x291da3(0x2ad)]!==0xc8)return null;const _0x1f8a85=yield _0x4a7e42[_0x291da3(0x1ef)]();return _0x1f8a85[_0x291da3(0x246)];}),_0x492dd0=({endpointNode:_0x41902d,endpoint:_0x41886,baseUrl:_0x59ca61},_0x13e540,_0x293b73)=>_0x20547c(void 0x0,void 0x0,void 0x0,function*(){const _0x3bbc15=_0x44a7c3,_0x3d19b1=_0x59ca61+_0x3bbc15(0x257),_0x5f408d=_0x3d19b1+'/checkNodeId',_0x4e2d19=_0x13e540['val'](),_0x38500b=yield fetch(_0x5f408d,{'method':'POST','body':JSON[_0x3bbc15(0x245)]({'endpointNode':_0x41902d,'endpoint':_0x41886,'nodeId':_0x4e2d19}),'headers':{'Content-Type':'application/json'}}),_0x1f531d=(_0x6fe9a3,_0x3f9967)=>{const _0x2ce08f=_0x3bbc15;_0x293b73[_0x2ce08f(0x292)](_0x6fe9a3)[_0x2ce08f(0x275)](_0x2ce08f(0x27a))[_0x2ce08f(0x275)](_0x3f9967),_0x293b73[_0x2ce08f(0x25d)](),setTimeout(()=>{const _0x380ba4=_0x2ce08f;_0x293b73[_0x380ba4(0x295)](_0x3f9967),_0x293b73[_0x380ba4(0x270)]();},0xbb8);},_0x345ffc=yield _0x38500b[_0x3bbc15(0x1ef)]();_0x38500b[_0x3bbc15(0x2ad)]!==0xc8?_0x1f531d('!!failure!!'+_0x4e2d19,_0x3bbc15(0x22b)):_0x345ffc[_0x3bbc15(0x24a)][_0x3bbc15(0x1e9)](/Good/)?(_0x13e540['val'](_0x345ffc[_0x3bbc15(0x29f)]),_0x13e540[_0x3bbc15(0x250)](_0x3bbc15(0x227)),_0x1f531d(_0x3bbc15(0x239),'ok')):(_0x13e540[_0x3bbc15(0x231)](''+_0x4e2d19),_0x1f531d(_0x345ffc[_0x3bbc15(0x24a)]+'\x20'+_0x38500b[_0x3bbc15(0x299)],_0x3bbc15(0x22b)));});function _0xe5a777(_0x4239f1,_0xf4a7b1){return _0x20547c(this,void 0x0,void 0x0,function*(){const _0x3d3db2=_0x4960,_0x45dbc2=_0x4239f1[_0x3d3db2(0x27e)](_0x3d3db2(0x1fd)),_0xd33558=yield _0x1e17b4(_0xf4a7b1,_0x45dbc2,_0xfbea7b),_0x1c94bd=yield _0x1e17b4(_0xf4a7b1,_0x45dbc2,_0x572c66);return{'references':[..._0xd33558[_0x3d3db2(0x23a)],..._0x1c94bd['references']]};});}const _0x5eb298={'referenceTypeId':_0x4a3d9c(_0x44a7c3(0x21a)),'includeSubtypes':!![],'browseDirection':_0x346c69['Forward'],'nodeClassMask':_0x26b5e8[_0x44a7c3(0x1f4)]|_0x26b5e8['ObjectType']|_0x26b5e8[_0x44a7c3(0x1f0)]|_0x26b5e8[_0x44a7c3(0x1f3)],'resultMask':0x3f};function _0x1212bd(_0x182a95,_0x5d07d0){return _0x20547c(this,void 0x0,void 0x0,function*(){const _0x138f6c=_0x4960,_0x4523ca=_0x182a95[_0x138f6c(0x27e)](_0x138f6c(0x1fd)),_0x2b2de0=yield _0x1e17b4(_0x5d07d0,_0x4523ca,_0x5eb298);return _0x2b2de0;});}const _0x540ceb=_0x33f34a=>{const _0x2c28df=_0x44a7c3;var _0x1e792d,_0x149030,_0x551f45,_0xcbf2a4;if(!_0x33f34a||!_0x33f34a[_0x2c28df(0x2a1)]){const _0x3f5ff1=$('<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>');return _0x3f5ff1;}const _0x3ab894=_0x33f34a[_0x2c28df(0x2a1)][_0x2c28df(0x1e6)](),_0x5c3e97=((_0x1e792d=_0x33f34a[_0x2c28df(0x1f8)])===null||_0x1e792d===void 0x0?void 0x0:_0x1e792d['text'])||((_0x149030=_0x33f34a[_0x2c28df(0x26a)])===null||_0x149030===void 0x0?void 0x0:_0x149030['name'])||_0x33f34a['nodeId'][_0x2c28df(0x1e6)](),{icon:_0x5cc57a,color:_0x5e570d}=_0xef0c9f(_0x33f34a),_0x1d3828='('+_0x33f34a['nodeId'][_0x2c28df(0x1e6)]()+')\x20'+(((_0x551f45=_0x33f34a[_0x2c28df(0x26a)])===null||_0x551f45===void 0x0?void 0x0:_0x551f45['name'])||((_0xcbf2a4=_0x33f34a[_0x2c28df(0x1f8)])===null||_0xcbf2a4===void 0x0?void 0x0:_0xcbf2a4[_0x2c28df(0x292)])||''),_0x710cbc=$(_0x2c28df(0x206)+_0x33f34a[_0x2c28df(0x2a1)]['toString']()+_0x2c28df(0x217)+_0x1d3828+_0x2c28df(0x260)+_0x5cc57a+'\x22\x20style=\x22color:'+_0x5e570d+_0x2c28df(0x1fc)+_0x5c3e97+_0x2c28df(0x1fe));return _0x710cbc['addClass'](_0x2c28df(0x1fa)),_0x710cbc['data'](_0x2c28df(0x1fd),_0x3ab894),_0x710cbc['data'](_0x2c28df(0x291),_0x33f34a),_0x710cbc;},_0x50d188=(_0x3f4e4c,_0x2cca68)=>{const _0x2a3332=_0x44a7c3;return _0x2cca68['find'](_0x2a3332(0x1f2)+_0x3f4e4c+'\x22]');},_0x3a8c4b=(_0x3ab015,_0x245bda)=>{const _0x5b92f1=_0x44a7c3;_0x3ab015[_0x5b92f1(0x276)][_0x5b92f1(0x287)](_0x5b92f1(0x235))['removeClass']('selected'),_0x245bda[_0x5b92f1(0x287)]('.tree-text:first')[_0x5b92f1(0x275)](_0x5b92f1(0x265));},_0x55641b=(_0x3cac22,_0x234363,_0x5b6c68)=>_0x20547c(void 0x0,void 0x0,void 0x0,function*(){const _0x3c99bc=_0x44a7c3;let _0x5d534b=_0x5b6c68[_0x3c99bc(0x2a9)](':first');_0x234363['relativePath'][_0x3c99bc(0x2aa)]||[];const _0x10aa72=_0x234363[_0x3c99bc(0x2a5)]||[];if(_0x10aa72[_0x3c99bc(0x212)]===0x0)return;for(const _0x15d988 of _0x10aa72){_0x5d534b[_0x3c99bc(0x294)](_0x3c99bc(0x1fa))&&(yield _0x2d7c9d(_0x3cac22,_0x5d534b));const _0x1fcc9a=_0x50d188(_0x15d988,_0x5d534b);if(_0x1fcc9a[_0x3c99bc(0x212)]===0x0)return;_0x5d534b=_0x1fcc9a;}_0x3a8c4b(_0x3cac22,_0x5d534b),_0x1a1359(_0x3cac22['$dropdown'],_0x5d534b);});function _0x1a1359(_0x2fdb7c,_0x4a29db){const _0x19c5eb=_0x44a7c3,_0x55ec71=_0x4a29db[_0x19c5eb(0x203)]()[_0x19c5eb(0x242)],_0x9fefd5=_0x2fdb7c[_0x19c5eb(0x29e)]();if(_0x9fefd5==undefined)return;const _0x2c6b10=_0x9fefd5+_0x55ec71-_0x2fdb7c[_0x19c5eb(0x228)]()/0x2+_0x4a29db['height']()/0x2;_0x2fdb7c[_0x19c5eb(0x1dc)]({'scrollTop':_0x2c6b10},0x1f4);}const _0x3c8969=(_0x5c2c8b,_0x13437e)=>_0x20547c(void 0x0,void 0x0,void 0x0,function*(){const _0x4177e4=_0x44a7c3,_0x1dfc1f=_0x5c2c8b[_0x4177e4(0x26e)][_0x4177e4(0x231)](),_0x1e32df={'nodeId':_0x1dfc1f,'rootNodeId':_0x13437e[_0x4177e4(0x2a1)],'isType':_0x5c2c8b[_0x4177e4(0x274)][_0x4177e4(0x27d)]||![]},_0xc3c58b=_0x1f63cd(_0x5c2c8b),_0x16a03a=yield _0x4144de(_0xc3c58b,_0x1e32df);if(!_0x16a03a)return;yield _0x55641b(_0x5c2c8b,_0x16a03a,_0x5c2c8b[_0x4177e4(0x276)]);});function _0x559daf(_0x14484e,_0x9ded8a,_0x39db3b,_0x32fdc6){return _0x20547c(this,void 0x0,void 0x0,function*(){const _0x8b0122=_0x4960;if(_0x9ded8a[_0x8b0122(0x294)](_0x8b0122(0x267))){console['log'](_0x8b0122(0x297));return;}if(_0x9ded8a[_0x8b0122(0x294)](_0x8b0122(0x224))){console['log'](_0x8b0122(0x28b));return;}_0x9ded8a[_0x8b0122(0x275)]('loading'),_0x9ded8a[_0x8b0122(0x22e)](_0x8b0122(0x1fb));try{_0x9ded8a['children']('ul')[_0x8b0122(0x200)]();const {references:_0x25ead3}=yield _0x39db3b(_0x9ded8a,_0x32fdc6);for(const _0x13d41f of _0x25ead3){if(_0x14484e[_0x8b0122(0x274)][_0x8b0122(0x20c)]&&!_0x14484e[_0x8b0122(0x274)]['filter'](_0x13d41f))continue;const _0x1d080f=_0x540ceb(_0x13d41f);_0x9ded8a[_0x8b0122(0x2a9)]('ul')[_0x8b0122(0x22e)](_0x1d080f);}_0x9ded8a[_0x8b0122(0x275)](_0x8b0122(0x267));}catch(_0x4a004b){_0x9ded8a[_0x8b0122(0x2a9)]('ul')[_0x8b0122(0x22e)](_0x8b0122(0x27f)+_0x4a004b['message']+_0x8b0122(0x226)),console['log'](_0x8b0122(0x1e7),_0x4a004b);}_0x9ded8a['find'](_0x8b0122(0x282))[_0x8b0122(0x26c)](),_0x9ded8a[_0x8b0122(0x295)](_0x8b0122(0x224));});}function _0x1f63cd(_0x1786fc){const _0x22b662=_0x44a7c3,_0x319c={'baseUrl':_0x1786fc[_0x22b662(0x274)][_0x22b662(0x25f)],'endpointNode':typeof _0x1786fc[_0x22b662(0x274)][_0x22b662(0x23c)]===_0x22b662(0x23e)?_0x1786fc[_0x22b662(0x274)]['endpointNode']():_0x1786fc[_0x22b662(0x274)][_0x22b662(0x23c)],'endpoint':typeof _0x1786fc[_0x22b662(0x274)]['endpoint']===_0x22b662(0x23e)?_0x1786fc[_0x22b662(0x274)][_0x22b662(0x259)]():_0x1786fc[_0x22b662(0x274)]['endpoint']};return _0x319c;}function _0x2d7c9d(_0x5a9de2,_0x2c18d6){return _0x20547c(this,void 0x0,void 0x0,function*(){const _0x9ca1c3=_0x4960;if(_0x2c18d6['hasClass'](_0x9ca1c3(0x267))){_0x2c18d6[_0x9ca1c3(0x295)](_0x9ca1c3(0x1fa))[_0x9ca1c3(0x275)](_0x9ca1c3(0x1e0)),_0x2c18d6['children']('ul')[_0x9ca1c3(0x1e3)]();return;}const _0x1fc7d0=_0x1f63cd(_0x5a9de2),_0x5930fc=!_0x5a9de2['options'][_0x9ca1c3(0x27d)]?_0xe5a777:_0x1212bd;try{yield _0x559daf(_0x5a9de2,_0x2c18d6,_0x5930fc,_0x1fc7d0),_0x2c18d6[_0x9ca1c3(0x295)]('expandable')[_0x9ca1c3(0x275)]('expanded');}catch(_0x80cd20){_0x2c18d6[_0x9ca1c3(0x295)](_0x9ca1c3(0x1fa))[_0x9ca1c3(0x275)](_0x9ca1c3(0x1e0)),console[_0x9ca1c3(0x21b)](_0x9ca1c3(0x2b3),_0x80cd20);}});}const _0xb4856a=()=>{const _0x31f679=_0x44a7c3;$[_0x31f679(0x243)](_0x31f679(0x27c),{'options':{'endpointNode':()=>({'endpoint':'opc.tcp://opcuademo.sterfive.com:26543'}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x31f679(0x214)},'nodeClass':_0x31f679(0x2a2),'nodeId':_0x31f679(0x23b),'displayName':{'text':'Objects'},'typeDefinition':_0x3047a5}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x20547c(this,void 0x0,void 0x0,function*(){const _0x3047ef=_0x4960,_0x544cee=this;if(!_0x544cee[_0x3047ef(0x244)]){const _0x5efb34=typeof _0x544cee['options'][_0x3047ef(0x273)]==='function'?_0x544cee[_0x3047ef(0x274)][_0x3047ef(0x273)][_0x3047ef(0x252)](_0x544cee):_0x544cee['options']['parentNode'];if(_0x5efb34 instanceof Promise){const _0x3fdec9=yield _0x5efb34;_0x544cee[_0x3047ef(0x244)]=_0x3fdec9;}else _0x544cee[_0x3047ef(0x244)]=_0x5efb34;}return _0x544cee[_0x3047ef(0x244)];});},'reset'(){return _0x20547c(this,void 0x0,void 0x0,function*(){const _0x416581=_0x4960,_0x47d450=this,_0x4b36ff=_0x47d450;_0x4b36ff[_0x416581(0x244)]=undefined,_0x47d450[_0x416581(0x276)]['empty']();const _0x4c2412=yield this[_0x416581(0x2b2)](),_0x52c494=_0x540ceb(_0x4c2412);_0x47d450['$tree'][_0x416581(0x22e)](_0x52c494),_0x47d450['currentParent']=_0x4c2412;});},'verify'(){const _0x2ef1a8=_0x31f679,_0x3c7136=this,_0x7820e=_0x1f63cd(_0x3c7136);_0x492dd0(_0x7820e,_0x3c7136[_0x2ef1a8(0x26e)],_0x3c7136[_0x2ef1a8(0x29b)]);},'_create'(){const _0x4a28f0=_0x31f679,_0x14811c=this;_0x14811c[_0x4a28f0(0x26e)]=this[_0x4a28f0(0x1ee)],_0x14811c[_0x4a28f0(0x26d)]=$(_0x4a28f0(0x2a7)),_0x14811c['$combo'][_0x4a28f0(0x275)](_0x4a28f0(0x216)),this['element'][_0x4a28f0(0x1f5)](_0x14811c[_0x4a28f0(0x26d)]),_0x14811c[_0x4a28f0(0x229)]=$(_0x4a28f0(0x2a7))[_0x4a28f0(0x275)]('input-group'),_0x14811c['$combo'][_0x4a28f0(0x22e)](_0x14811c[_0x4a28f0(0x229)]),_0x14811c[_0x4a28f0(0x229)][_0x4a28f0(0x22e)](_0x14811c['$input']),_0x14811c[_0x4a28f0(0x296)]=$(_0x4a28f0(0x230)),_0x14811c[_0x4a28f0(0x229)][_0x4a28f0(0x22e)](_0x14811c[_0x4a28f0(0x296)]),_0x14811c[_0x4a28f0(0x296)]['on'](_0x4a28f0(0x204),function(){var _0x40d627;return _0x20547c(this,void 0x0,void 0x0,function*(){const _0x109142=_0x4960;let _0x1993f5=![],_0x450ed8;!_0x14811c[_0x109142(0x1f1)]['is'](_0x109142(0x1ec))&&(_0x14811c[_0x109142(0x29b)]['hide'](),_0x450ed8=yield _0x14811c[_0x109142(0x2b2)](),(_0x450ed8!==_0x14811c[_0x109142(0x215)]||((_0x40d627=_0x14811c[_0x109142(0x215)])===null||_0x40d627===void 0x0?void 0x0:_0x40d627[_0x109142(0x2a1)])!==_0x450ed8[_0x109142(0x2a1)])&&(yield _0x14811c['reset']()),_0x1993f5=!![]),_0x14811c[_0x109142(0x1f1)][_0x109142(0x1e3)](),_0x1993f5&&(yield _0x3c8969(_0x14811c,_0x450ed8));});}),_0x14811c[_0x4a28f0(0x234)]=$(_0x4a28f0(0x213)),_0x14811c['$inputGroup'][_0x4a28f0(0x22e)](_0x14811c['$verifyBtn']),_0x14811c[_0x4a28f0(0x234)]['on'](_0x4a28f0(0x204),()=>{const _0x394d2c=_0x4a28f0;this[_0x394d2c(0x256)]();});!_0x14811c['$input']['attr'](_0x4a28f0(0x24f))&&_0x14811c[_0x4a28f0(0x26e)]['attr'](_0x4a28f0(0x24f),_0x4a28f0(0x254));_0x14811c[_0x4a28f0(0x29b)]=$(_0x4a28f0(0x219)),_0x14811c[_0x4a28f0(0x29b)][_0x4a28f0(0x270)](),_0x14811c['$dropdown']=$(_0x4a28f0(0x2a7))[_0x4a28f0(0x275)](_0x4a28f0(0x28a))['hide'](),_0x14811c['$combo']['append'](_0x14811c[_0x4a28f0(0x29b)]),_0x14811c[_0x4a28f0(0x26d)][_0x4a28f0(0x22e)](_0x14811c[_0x4a28f0(0x1f1)]),_0x14811c[_0x4a28f0(0x276)]=$(_0x4a28f0(0x1dd))[_0x4a28f0(0x249)](_0x14811c[_0x4a28f0(0x1f1)]),this['reset']();const _0x21829f=(_0x2f31a0,_0x2c0a7f)=>{const _0x4c9f3c=_0x4a28f0,_0x23944c=0x14,_0x50a30c=0x14,_0x503e97=_0x2f31a0[_0x4c9f3c(0x2a6)](),_0x45bafd=_0x2c0a7f;if(_0x45bafd[_0x4c9f3c(0x281)]>=_0x503e97['left']&&_0x45bafd[_0x4c9f3c(0x281)]<=_0x503e97[_0x4c9f3c(0x202)]+_0x23944c&&_0x45bafd['pageY']>=_0x503e97['top']&&_0x45bafd[_0x4c9f3c(0x264)]<=_0x503e97['top']+_0x50a30c)return!![];return![];},_0x45a250=_0x33cc86=>_0x20547c(this,void 0x0,void 0x0,function*(){const _0x14faa5=_0x4a28f0;if(_0x33cc86[_0x14faa5(0x294)](_0x14faa5(0x1fa)))_0x2d7c9d(_0x14811c,_0x33cc86);else{if(_0x33cc86[_0x14faa5(0x294)]('expanded'))_0x33cc86[_0x14faa5(0x2a9)]('ul')[_0x14faa5(0x1e3)](),_0x33cc86[_0x14faa5(0x2ae)]('expandable\x20expanded');else{if(_0x33cc86[_0x14faa5(0x2a9)]('ul')['children']()['length']>0x0)_0x33cc86['children']('ul')[_0x14faa5(0x1e3)](),_0x33cc86[_0x14faa5(0x2ae)](_0x14faa5(0x284));else;}}});_0x14811c[_0x4a28f0(0x276)]['on'](_0x4a28f0(0x23f),'li',function(_0x169ad9){const _0x2b4f12=_0x4a28f0;var _0x5b9e5f,_0x25e677;_0x169ad9[_0x2b4f12(0x279)]();let _0x5da844=$(this);if(_0x21829f(_0x5da844,_0x169ad9))_0x45a250(_0x5da844);else{const _0x3bc1d7=_0x5da844[_0x2b4f12(0x27e)](_0x2b4f12(0x1fd)),_0x16dea8=_0x5da844[_0x2b4f12(0x27e)]('reference');if(_0x14811c[_0x2b4f12(0x274)][_0x2b4f12(0x236)]&&!_0x14811c[_0x2b4f12(0x274)][_0x2b4f12(0x236)](_0x16dea8))return;_0x14811c[_0x2b4f12(0x26e)][_0x2b4f12(0x27e)](_0x2b4f12(0x291),_0x16dea8);const _0x23f7c1=((_0x5b9e5f=_0x16dea8[_0x2b4f12(0x1f8)])===null||_0x5b9e5f===void 0x0?void 0x0:_0x5b9e5f[_0x2b4f12(0x292)])||((_0x25e677=_0x16dea8[_0x2b4f12(0x26a)])===null||_0x25e677===void 0x0?void 0x0:_0x25e677['name'])||_0x16dea8[_0x2b4f12(0x2a1)]['toString'](),_0x1767a0='['+_0x23f7c1+']('+_0x3bc1d7+')';_0x14811c['$input']['val'](_0x1767a0),_0x14811c['$input']['trigger']('change'),_0x14811c[_0x2b4f12(0x1f1)][_0x2b4f12(0x270)]();}}),_0x14811c[_0x4a28f0(0x276)]['on'](_0x4a28f0(0x204),'li',function(_0x13d234){const _0x306734=_0x4a28f0;_0x13d234[_0x306734(0x279)]();let _0x3d76e0=$(this);_0x21829f(_0x3d76e0,_0x13d234)&&_0x45a250(_0x3d76e0),_0x3a8c4b(_0x14811c,_0x3d76e0);}),$(document)['on'](_0x4a28f0(0x204),function(_0x25b1d3){const _0x86f441=_0x4a28f0;!$(_0x25b1d3[_0x86f441(0x1f6)])[_0x86f441(0x262)](_0x14811c[_0x86f441(0x26d)])[_0x86f441(0x212)]&&_0x14811c[_0x86f441(0x1f1)]['hide']();});}});},_0x49f341=()=>{const _0xc13c76=_0x44a7c3;$[_0xc13c76(0x243)](_0xc13c76(0x24d),{'options':{'namesToBits':{},'value':0x0},'_create'(){const _0x26893e=_0xc13c76,_0x22c259=this;_0x22c259[_0x26893e(0x26e)]=this['element'],_0x22c259[_0x26893e(0x26d)]=$('<div/>'),_0x22c259[_0x26893e(0x26d)][_0x26893e(0x275)](_0x26893e(0x216)),this[_0x26893e(0x1ee)][0x0][_0x26893e(0x1e5)][_0x26893e(0x238)](_0x22c259[_0x26893e(0x26d)][0x0],this[_0x26893e(0x1ee)][0x0]),_0x22c259[_0x26893e(0x229)]=$(_0x26893e(0x2a7))[_0x26893e(0x275)](_0x26893e(0x232)),_0x22c259[_0x26893e(0x26d)][_0x26893e(0x22e)](_0x22c259['$inputGroup']),_0x22c259[_0x26893e(0x229)][_0x26893e(0x22e)](_0x22c259[_0x26893e(0x26e)]),_0x22c259[_0x26893e(0x296)]=$(_0x26893e(0x29d)),_0x22c259[_0x26893e(0x229)]['append'](_0x22c259[_0x26893e(0x296)]),_0x22c259[_0x26893e(0x296)]['on']('click',function(){const _0x2c0968=_0x26893e;_0x22c259[_0x2c0968(0x1f1)]['toggle'](),_0x22c259[_0x2c0968(0x1f1)]['is'](_0x2c0968(0x1ec))&&(_0x497cd8(),_0x22c259['$combo'][_0x2c0968(0x287)](_0x2c0968(0x1eb))['each'](function(){const _0x1e9abd=_0x2c0968;let _0x4a2d88=$(this)[_0x1e9abd(0x292)]();const _0x4fbad4=_0x22c259['options'][_0x1e9abd(0x20f)][_0x4a2d88];if(_0x4fbad4===undefined)throw new Error(_0x1e9abd(0x218));(_0x22c259[_0x1e9abd(0x274)]['value']&_0x4fbad4)===_0x4fbad4?$(this)[_0x1e9abd(0x275)](_0x1e9abd(0x265)):$(this)[_0x1e9abd(0x295)](_0x1e9abd(0x265));}),_0x22c259[_0x2c0968(0x1de)]());}),_0x22c259[_0x26893e(0x1f1)]=$(_0x26893e(0x205))[_0x26893e(0x270)]()[_0x26893e(0x1ff)](this[_0x26893e(0x1ee)]),$['each'](this[_0x26893e(0x274)][_0x26893e(0x20f)],function(_0x3822f9){const _0xc7f500=_0x26893e,_0x235c02=$(_0xc7f500(0x29a)+_0x3822f9+'\x22>'+_0xc7f500(0x22c)+_0x3822f9+_0xc7f500(0x2a0));_0x22c259[_0xc7f500(0x1f1)][_0xc7f500(0x22e)](_0x235c02);}),_0x22c259[_0x26893e(0x1f1)]['on'](_0x26893e(0x204),'.custom-option',function(){const _0x4234a0=_0x26893e;$(this)[_0x4234a0(0x2ae)]('selected');const _0xf027c5=$(this)[_0x4234a0(0x27e)](_0x4234a0(0x1fd));$(this)[_0x4234a0(0x294)](_0x4234a0(0x265))?_0x3f42d7(_0xf027c5):_0x329a99(_0xf027c5),_0x22c259[_0x4234a0(0x1de)]();}),_0x22c259['$combo'][_0x26893e(0x22e)](_0x22c259[_0x26893e(0x1f1)]);const _0x497cd8=()=>{const _0x3558ed=_0x26893e,_0x665dd4=this[_0x3558ed(0x1ee)][_0x3558ed(0x231)]();_0x22c259[_0x3558ed(0x274)][_0x3558ed(0x1fd)]=_0x387655(_0x22c259['options']['namesToBits'],_0x665dd4);},_0x3f42d7=_0x35563b=>{const _0x134dc5=_0x26893e,_0x12bc47=_0x22c259[_0x134dc5(0x274)][_0x134dc5(0x20f)][_0x35563b];if(_0x12bc47===undefined)throw new Error('Unknown\x20bit\x20name');this[_0x134dc5(0x274)]['value']|=_0x12bc47;},_0x329a99=_0x5c21f4=>{const _0x1f0c8f=_0x26893e,_0x423135=_0x22c259[_0x1f0c8f(0x274)][_0x1f0c8f(0x20f)][_0x5c21f4];if(_0x423135===undefined)throw new Error(_0x1f0c8f(0x218));this[_0x1f0c8f(0x274)][_0x1f0c8f(0x1fd)]&=~_0x423135,this[_0x1f0c8f(0x1ee)]['val'](_0x52c578(_0x22c259[_0x1f0c8f(0x274)][_0x1f0c8f(0x20f)],this['options'][_0x1f0c8f(0x1fd)]));};_0x497cd8();},'updateValue'(){const _0x3ed15c=_0xc13c76,_0x9430be=this;this[_0x3ed15c(0x1ee)][_0x3ed15c(0x231)](_0x52c578(_0x9430be[_0x3ed15c(0x274)]['namesToBits'],this['options'][_0x3ed15c(0x1fd)]));},'_destroy'(){const _0xb87447=_0xc13c76,_0x2dc6cf=this;_0x2dc6cf[_0xb87447(0x1f1)]['remove']();}});},_0x53d10a=()=>{const _0x18e2ba=_0x44a7c3,_0x55a73e=$(_0x18e2ba(0x278)),_0x1581d1=_0x55a73e[_0x18e2ba(0x231)](),_0x99d07c=RED[_0x18e2ba(0x28e)]['node'](_0x1581d1);if(!_0x99d07c)return undefined;const {endpoint:_0x2536b8,securityMode:_0x3d3d11,securityPolicy:_0x457a63,userIdentityType:_0x4948f0,credentials:_0x4ef0a9}=_0x99d07c,_0x1a541a={'endpoint':_0x2536b8,'securityMode':_0x3d3d11,'securityPolicy':_0x457a63,'userIdentityType':_0x4948f0,'credentials':_0x4ef0a9};return _0x1a541a;},_0x3ec7bc=()=>{return{'endpointNode':_0x448765};},_0x448765=()=>{const _0x40aec0=_0x44a7c3,_0xe27e46=$(_0x40aec0(0x278)),_0x4a6102=_0xe27e46[_0x40aec0(0x231)](),_0x1c2e57=_0x53d10a();if(!_0x1c2e57)return undefined;return{'id':_0x4a6102};};RED[_0x44a7c3(0x28e)]['registerType'](_0x44a7c3(0x25a),{'category':_0x44a7c3(0x2b1),'color':_0x44a7c3(0x268),'align':_0x44a7c3(0x222),'icon':_0x44a7c3(0x277),'paletteLabel':_0x44a7c3(0x28c),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':'OpcUa-Endpoint2'},'nodeId':{'value':'','required':![]},'referenceTypeId':{'value':'HasChild','required':![]},'includeSubtypes':{'value':![],'required':!![]},'browseDirection':{'value':_0x44a7c3(0x21f),'required':!![]},'nodeClassMask':{'value':'Variable\x20|\x20Object\x20|\x20Method\x20|\x20ObjectType\x20|\x20VariableType','required':![]},'resultMask':{'value':'ReferenceType\x20|\x20BrowseName\x20|\x20TypeDefinition\x20|\x20DisplayName\x20|\x20NodeClass\x20|\x20IsForward','required':![]}},'outputs':0x1,'label'(){const _0x38d6ce=_0x44a7c3;return this['name']||_0x38d6ce(0x258);},'labelStyle'(){const _0x3d8a83=_0x44a7c3;return this['name']?_0x3d8a83(0x2ac):'';},'oneditprepare'(){const _0x2ae186=_0x44a7c3,_0x4d7d0a=this;_0xb4856a(),_0x49f341(),_0x4d7d0a[_0x2ae186(0x2a4)]=0x1;const _0x11d695=$('#node-input-nodeClassMask');_0x11d695['flagEditor']({'namesToBits':{'Object':0x1,'Variable':0x2,'Method':0x4,'ObjectType':0x8,'VariableType':0x10,'ReferenceType':0x20,'DataType':0x40,'View':0x80},'value':0x0});const _0x14e98f=$(_0x2ae186(0x240));_0x14e98f[_0x2ae186(0x25b)]({'namesToBits':{'ReferenceType':0x1,'IsForward':0x2,'NodeClass':0x4,'BrowseName':0x8,'DisplayName':0x10,'TypeDefinition':0x20},'value':0x3f});const _0x44f87e=$(_0x2ae186(0x253));_0x44f87e[_0x2ae186(0x208)](Object['assign'](Object[_0x2ae186(0x20e)]({},_0x3ec7bc()),{'isSelectable'(_0x2cfe8f){const _0x2509fa=_0x2ae186;return _0x2cfe8f[_0x2509fa(0x2a8)]===_0x2509fa(0x25c)||_0x2cfe8f[_0x2509fa(0x2a8)]==='Object';}}));const _0x424d05={'nodeId':_0x2ae186(0x225),'referenceTypeId':'','browseName':{'namespaceIndex':0x0,'name':_0x2ae186(0x247)},'displayName':{'text':_0x2ae186(0x247)},'nodeClass':_0x2ae186(0x1f4),'typeDefinition':_0x2ae186(0x225)},_0x372acb=$(_0x2ae186(0x285));_0x372acb[_0x2ae186(0x208)](Object[_0x2ae186(0x20e)](Object[_0x2ae186(0x20e)]({},_0x3ec7bc()),{'parentNode':()=>_0x424d05,'isSelectable'(_0x4412f1){const _0x2f9a89=_0x2ae186;return _0x4412f1[_0x2f9a89(0x2a8)]===_0x2f9a89(0x1f4);},'isTypeRef':!![]}));},'oneditsave'(){}});}()));
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgyMDU0N2MiLCJfMHg1MWEwYjciLCJfMHgxMWI2ZTMiLCJfMHgzYTkwYTgiLCJfMHgxM2UwNzQiLCJfMHgxNTczYjgiLCJfMHg3MTNiNmYiLCJfMHgyOWY4ZWEiLCJQcm9taXNlIiwiXzB4NDJlODVmIiwiXzB4MmZhYmU3IiwiXzB4OGU5YzZhIiwiXzB4MWVhNDEwIiwiXzB4NWE4MDhkIiwiXzB4NGNhMjMyIiwiXzB4NGJkZTM3IiwiXzB4MmRmNmIxIiwiXzB4MzQzYzIwIiwiXzB4NGI5YWYyIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4M2ZlMzE0IiwiXzB4NGQ1ZGVjIiwiXzB4NWIyNDY2IiwiXzB4MjllMDczIiwiRXJyb3IiLCJfMHg1OTE0YmMiLCJfMHgzMDQ3YTUiLCJfMHg0ZDI3ZDIiLCJfMHg1ODBhYWUiLCJfMHhlY2I5NjQiLCJfMHg5MDMwYzYiLCJfMHgxODk0NTIiLCJfMHgzNDZjNjkiLCJfMHgzODVmMjIiLCJfMHgyNmI1ZTgiLCJfMHgyNzc0MzMiLCJfMHgzMDlmMjgiLCJfMHg0MDRhMzUiLCJfMHgzODc2NTUiLCJfMHg1M2M4NTAiLCJfMHgxNTg3MzIiLCJfMHgyM2M2NmIiLCJwYXJzZUludCIsImlzTmFOIiwiXzB4MzhjNWYxIiwiXzB4NTU2NGRhIiwiXzB4MjI1ZWM3IiwiXzB4MTIwMzQ5IiwiXzB4NTJjNTc4IiwiXzB4NTQwNzU0IiwiXzB4NTRjNTFhIiwiXzB4NTdjNzI3IiwiXzB4NDAxMTI0IiwiXzB4NTU3NTkxIiwiT2JqZWN0IiwiXzB4MzI2OGFmIiwiXzB4MTU5M2FiIiwiXzB4NGEzZDljIiwiXzB4YzZmNWM3IiwiXzB4ZWYwYzlmIiwiXzB4NGU1Y2JmIiwiXzB4MWUxN2I0IiwiZW5kcG9pbnROb2RlIiwiXzB4MzI2M2YxIiwiZW5kcG9pbnQiLCJfMHgxMzVjMDAiLCJiYXNlVXJsIiwiXzB4NTFjMTM2IiwiXzB4NDQ0NDUxIiwiXzB4MzMyMjJkIiwiXzB4YWJjZWEwIiwiXzB4NDI2YTA3IiwiXzB4NDJmZTY5IiwiXzB4NmQzMzEiLCJmZXRjaCIsIkpTT04iLCJjb25zb2xlIiwiXzB4ZjhkMjIyIiwiXzB4MTMwYTU0IiwiXzB4ZmJlYTdiIiwiXzB4NTcyYzY2IiwiXzB4NDE0NGRlIiwiXzB4MzU3ZjU0IiwiXzB4MTVhNGY1IiwiXzB4MjlmYTQ4Iiwibm9kZUlkIiwiXzB4MjIwYjk3Iiwicm9vdE5vZGVJZCIsIl8weDQwNWJlNCIsImlzVHlwZSIsIl8weGExMmU0ZCIsIl8weDRlOWVjYyIsIl8weDIxMWIyNiIsIl8weDRhN2U0MiIsIl8weDFmOGE4NSIsIl8weDQ5MmRkMCIsIl8weDQxOTAyZCIsIl8weDQxODg2IiwiXzB4NTljYTYxIiwiXzB4MTNlNTQwIiwiXzB4MjkzYjczIiwiXzB4M2QxOWIxIiwiXzB4NWY0MDhkIiwiXzB4NGUyZDE5IiwiXzB4Mzg1MDBiIiwiXzB4MWY1MzFkIiwiXzB4NmZlOWEzIiwiXzB4M2Y5OTY3Iiwic2V0VGltZW91dCIsIl8weDM0NWZmYyIsIl8weGU1YTc3NyIsIl8weDQyMzlmMSIsIl8weGY0YTdiMSIsIl8weDQ1ZGJjMiIsIl8weGQzMzU1OCIsIl8weDFjOTRiZCIsIl8weDVlYjI5OCIsIl8weDEyMTJiZCIsIl8weDE4MmE5NSIsIl8weDVkMDdkMCIsIl8weDQ1MjNjYSIsIl8weDJiMmRlMCIsIl8weDU0MGNlYiIsIl8weDMzZjM0YSIsIl8weDFlNzkyZCIsIl8weDE0OTAzMCIsIl8weDU1MWY0NSIsIl8weGNiZjJhNCIsIl8weDNmNWZmMSIsIiQiLCJfMHgzYWI4OTQiLCJfMHg1YzNlOTciLCJpY29uIiwiXzB4NWNjNTdhIiwiY29sb3IiLCJfMHg1ZTU3MGQiLCJfMHgxZDM4MjgiLCJfMHg3MTBjYmMiLCJfMHg1MGQxODgiLCJfMHgzZjRlNGMiLCJfMHgyY2NhNjgiLCJfMHgzYThjNGIiLCJfMHgzYWIwMTUiLCJfMHgyNDViZGEiLCJfMHg1NTY0MWIiLCJfMHgzY2FjMjIiLCJfMHgyMzQzNjMiLCJfMHg1YjZjNjgiLCJfMHg1ZDUzNGIiLCJfMHgxMGFhNzIiLCJfMHgxNWQ5ODgiLCJfMHgyZDdjOWQiLCJfMHgxZmNjOWEiLCJfMHgxYTEzNTkiLCJfMHgyZmRiN2MiLCJfMHg0YTI5ZGIiLCJfMHg1NWVjNzEiLCJfMHg5ZmVmZDUiLCJ1bmRlZmluZWQiLCJfMHgyYzZiMTAiLCJfMHgzYzg5NjkiLCJfMHg1YzJjOGIiLCJfMHgxMzQzN2UiLCJfMHgxZGZjMWYiLCJfMHgxZTMyZGYiLCJfMHhjM2M1OGIiLCJfMHgxZjYzY2QiLCJfMHgxNmEwM2EiLCJfMHg1NTlkYWYiLCJfMHgxNDQ4NGUiLCJfMHg5ZGVkOGEiLCJfMHgzOWRiM2IiLCJfMHgzMmZkYzYiLCJyZWZlcmVuY2VzIiwiXzB4MjVlYWQzIiwiXzB4MTNkNDFmIiwiXzB4MWQwODBmIiwiXzB4NGEwMDRiIiwiXzB4MTc4NmZjIiwiXzB4MzE5YyIsIl8weDVhOWRlMiIsIl8weDJjMThkNiIsIl8weDFmYzdkMCIsIl8weDU5MzBmYyIsIl8weDgwY2QyMCIsIl8weGI0ODU2YSIsIl8weDU0NGNlZSIsIl8weDVlZmIzNCIsIl8weDNmZGVjOSIsIl8weDQ3ZDQ1MCIsIl8weDRiMzZmZiIsIl8weDRjMjQxMiIsIl8weDUyYzQ5NCIsIl8weDNjNzEzNiIsIl8weDc4MjBlIiwiXzB4MTQ4MTFjIiwiXzB4NDBkNjI3IiwiXzB4MTk5M2Y1IiwiXzB4NDUwZWQ4IiwiXzB4MjE4MjlmIiwiXzB4MmYzMWEwIiwiXzB4MmMwYTdmIiwiXzB4MjM5NDRjIiwiXzB4NTBhMzBjIiwiXzB4NTAzZTk3IiwiXzB4NDViYWZkIiwiXzB4NDVhMjUwIiwiXzB4MzNjYzg2IiwiXzB4MTY5YWQ5IiwiXzB4NWI5ZTVmIiwiXzB4MjVlNjc3IiwiXzB4NWRhODQ0IiwiXzB4M2JjMWQ3IiwiXzB4MTZkZWE4IiwiXzB4MjNmN2MxIiwiXzB4MTc2N2EwIiwiXzB4MTNkMjM0IiwiXzB4M2Q3NmUwIiwiZG9jdW1lbnQiLCJfMHgyNWIxZDMiLCJfMHg0OWYzNDEiLCJfMHgyMmMyNTkiLCJfMHg0OTdjZDgiLCJfMHg0YTJkODgiLCJfMHg0ZmJhZDQiLCJfMHgzODIyZjkiLCJfMHgyMzVjMDIiLCJfMHhmMDI3YzUiLCJfMHgzZjQyZDciLCJfMHgzMjlhOTkiLCJfMHg2NjVkZDQiLCJfMHgzNTU2M2IiLCJfMHgxMmJjNDciLCJfMHg1YzIxZjQiLCJfMHg0MjMxMzUiLCJfMHg5NDMwYmUiLCJfMHgyZGM2Y2YiLCJfMHg1M2QxMGEiLCJfMHg1NWE3M2UiLCJfMHgxNTgxZDEiLCJfMHg5OWQwN2MiLCJSRUQiLCJfMHgyNTM2YjgiLCJzZWN1cml0eU1vZGUiLCJfMHgzZDNkMTEiLCJzZWN1cml0eVBvbGljeSIsIl8weDQ1N2E2MyIsInVzZXJJZGVudGl0eVR5cGUiLCJfMHg0OTQ4ZjAiLCJjcmVkZW50aWFscyIsIl8weDRlZjBhOSIsIl8weDFhNTQxYSIsIl8weDNlYzdiYyIsIl8weDQ0ODc2NSIsIl8weGUyN2U0NiIsIl8weDRhNjEwMiIsIl8weDFjMmU1NyIsIl8weDRkN2QwYSIsIl8weDExZDY5NSIsIl8weDE0ZTk4ZiIsIl8weDQ0Zjg3ZSIsIl8weDJjZmU4ZiIsIl8weDQyNGQwNSIsIl8weDM3MmFjYiIsIl8weDQ0MTJmMSJdLCJtYXBwaW5ncyI6Im0vSEFBQSxDQUFDLFUsQ0FDRyxhLHdCQW1CQSxTQUFTQSxTQUFULENBQW1CQyxTQUFuQixDQUE0QkMsU0FBNUIsQ0FBd0NDLFNBQXhDLENBQTJDQyxTQUEzQyxDLENBQ0ksU0FBU0MsU0FBVCxDQUFlQyxTQUFmLEMsUUFBK0JBLFNBQUEsWUFBaUJILFNBQWpCLENBQXFCRyxTQUFyQixDQUE2QixJQUFJSCxTQUFKLENBQU0sU0FBVUksU0FBVixDLENBQXFCQSxTQUFBLENBQVFELFNBQVIsQyxFQUEzQixDLFNBQ3JELEdBQUssQ0FBQUgsU0FBQSxFQUFNLENBQUFBLFNBQUEsQ0FBSUssT0FBSixDQUFOLENBQUwsQ0FBeUIsU0FBVUMsU0FBVixDQUFtQkMsU0FBbkIsQyx5QkFDNUIsU0FBU0MsU0FBVCxDQUFtQkMsU0FBbkIsQyx5QkFBNEIsRyxDQUFNQyxTQUFBLENBQUtULFNBQUEsQyxnQkFBQSxFQUFlUSxTQUFmLENBQUwsQyxFQUErQixNQUFPRSxTQUFQLEMsQ0FBWUosU0FBQSxDQUFPSSxTQUFQLEMsR0FDN0UsU0FBU0MsU0FBVCxDQUFrQkMsU0FBbEIsQyx5QkFBMkIsRyxDQUFNSCxTQUFBLENBQUtULFNBQUEsQyxnQkFBQSxFQUFtQlksU0FBbkIsQ0FBTCxDLEVBQW1DLE1BQU9DLFNBQVAsQyxDQUFZUCxTQUFBLENBQU9PLFNBQVAsQyxHQUNoRixTQUFTSixTQUFULENBQWNLLFNBQWQsQyx5QkFBd0JBLFNBQUEsQyxNQUFBLEVBQWNULFNBQUEsQ0FBUVMsU0FBQSxDLE9BQUEsQ0FBUixDQUFkLENBQXNDYixTQUFBLENBQU1hLFNBQUEsQyxnQkFBQSxDQUFOLEUsZ0JBQUEsRUFBeUJQLFNBQXpCLENBQW9DSSxTQUFwQyxDLEVBQzlERixTQUFBLENBQU0sQ0FBQVQsU0FBQSxDQUFZQSxTQUFBLEMsZ0JBQUEsRUFBZ0JILFNBQWhCLENBQXlCQyxTQUFBLEVBQWMsRUFBdkMsQ0FBWixDQUFELEMsZ0JBQUEsR0FBTCxDLEVBSkcsQyxFQVFYLE9BQU9pQixlQUFQLEcsVUFBQSxDQUF3Q0EsZUFBeEMsQ0FBMEQsU0FBVUMsU0FBVixDQUFpQkMsU0FBakIsQ0FBNkJDLFNBQTdCLEMseUJBQ3RELElBQUlDLFNBQUEsQ0FBSSxJQUFJQyxLQUFKLENBQVVGLFNBQVYsQ0FBUixDLE9BQ09DLFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBQTRCQSxTQUFBLEMsZ0JBQUEsRUFBVUgsU0FBdEMsQ0FBNkNHLFNBQUEsQyxnQkFBQSxFQUFlRixTQUE1RCxDQUF3RUUsUyxFQUZuRixDQUtBLE1BQU1FLFNBQUEsQyxXQUFOLENBQ01DLFNBQUEsQyxnQkFETixDQUVNQyxTQUFBLEMsZ0JBRk4sQ0FHTUMsU0FBQSxDLGdCQUhOLENBSU1DLFNBQUEsQyxXQUpOLENBS01DLFNBQUEsQyxnQkFMTixDQU1NQyxTQUFBLEMsZ0JBTk4sQ0FRQSxJQUFJQyxTQUFKLENBQ0EsQ0FBQyxTQUFVQyxTQUFWLEMsMkJBQ0dBLFNBQUEsQ0FBZ0JBLFNBQUEsQyxnQkFBQSxFLEdBQWhCLEUsVUFDQUEsU0FBQSxDQUFnQkEsU0FBQSxDLGdCQUFBLEUsR0FBaEIsRSxVQUNBQSxTQUFBLENBQWdCQSxTQUFBLEMsZ0JBQUEsRSxHQUFoQixFLE9BQ0FBLFNBQUEsQ0FBZ0JBLFNBQUEsQyxTQUFBLEUsR0FBaEIsRSxXQUpKLENBS0dELFNBQUEsRUFBb0IsQ0FBQUEsU0FBQSxDQUFrQixFQUFsQixDQUx2QixHQU1BLElBQUlFLFNBQUosQ0FDQSxDQUFDLFNBQVVDLFNBQVYsQywyQkFDR0EsU0FBQSxDQUFVQSxTQUFBLEMsYUFBQSxFLEdBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsUUFBQSxFLEdBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsVUFBQSxFLEdBQVYsRSxXQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxRQUFBLEUsR0FBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxZQUFBLEUsR0FBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxjQUFBLEUsSUFBVixFLGVBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsSUFBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLElBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxJQUFWLEUsa0JBVEosQ0FVR0QsU0FBQSxFQUFjLENBQUFBLFNBQUEsQ0FBWSxFQUFaLENBVmpCLEdBV0EsSUFBSUUsU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDJCQUNHQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLEdBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxHQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsR0FBZCxFLGlCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLEdBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxJQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsSUFBZCxFLGdCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLElBQWQsRSxXQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLElBQWQsRSxRQVJKLENBU0dELFNBQUEsRUFBa0IsQ0FBQUEsU0FBQSxDQUFnQixFQUFoQixDQVRyQixHQVVBLFNBQVNFLFNBQVQsQ0FBZ0NDLFNBQWhDLENBQXNDQyxTQUF0QyxDLDhCQUNRLE9BQU9BLFNBQVAsRyx3QkFDT0EsUyxDQUVYLE1BQU1DLFNBQUEsQ0FBV0MsUUFBQSxDQUFTRixTQUFULEMsR0FBQSxDQUFqQixDLEdBQ0ksQ0FBQ0csS0FBQSxDQUFNRixTQUFOLEMsUUFDTUEsUyxDQUVYLE1BQU1HLFNBQUEsQ0FBUUosU0FBQSxDLGdCQUFBLEVBQVUsUUFBVixFLEtBQUEsRUFBeUJLLFNBQUQsRUFBT0EsU0FBQSxDLGdCQUFBLEdBQS9CLENBQWQsQ0FDQSxJQUFJQyxTQUFBLEMsR0FBSixDQUNBLFVBQVdDLFNBQVgsSUFBbUJILFNBQW5CLEMsQ0FDSUUsU0FBQSxFQUFVUCxTQUFBLENBQUtRLFNBQUwsQyxTQUVQRCxTLEVBRVgsU0FBU0UsU0FBVCxDQUFnQ0MsU0FBaEMsQ0FBc0NDLFNBQXRDLEMsMkJBQ0lBLFNBQUEsQ0FBUVosU0FBQSxDQUF1QlcsU0FBdkIsQ0FBNkJDLFNBQTdCLENBQVIsQ0FDQSxNQUFNQyxTQUFBLENBQUksRUFBVixDLEdBQ0ksQ0FBQ0YsUyxDQUNELE9BQU9FLFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBQVAsQ0FDSixVQUFXLENBQUNDLFNBQUQsQ0FBTUMsU0FBTixDQUFYLEdBQTZCQyxNQUFBLEMsU0FBQSxFQUFlTCxTQUFmLENBQTdCLEMsQ0FDUSxPQUFPQyxTQUFQLEcsbUJBQ0ssQ0FBQUEsU0FBQSxDQUFRRyxTQUFSLENBQUQsR0FBc0JBLFMsRUFDdEJGLFNBQUEsQyxNQUFBLEVBQU9DLFNBQVAsQyxVQUlMRCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDLEVBRVgsSUFBSUksU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDJCQUNHQSxTQUFBLENBQVdBLFNBQUEsQyxlQUFBLEUsR0FBWCxFLGlCQUNBQSxTQUFBLENBQVdBLFNBQUEsQyxnQkFBQSxFLEdBQVgsRSxpQkFDQUEsU0FBQSxDQUFXQSxTQUFBLEMsZ0JBQUEsRSxHQUFYLEUsWUFDQUEsU0FBQSxDQUFXQSxTQUFBLEMsZ0JBQUEsRSxHQUFYLEUsYUFDQUEsU0FBQSxDQUFXQSxTQUFBLEMsZ0JBQUEsRSxJQUFYLEUsY0FDQUEsU0FBQSxDQUFXQSxTQUFBLEMsZ0JBQUEsRSxJQUFYLEUsa0JBTkosQ0FPR0QsU0FBQSxFQUFlLENBQUFBLFNBQUEsQ0FBYSxFQUFiLENBUGxCLEdBU0EsU0FBU0UsU0FBVCxDQUF1QkMsU0FBdkIsQywyQkFDSSxPQUFRQSxTQUFSLEVBQ0ksSyxnQkFBQSxDQUNJLE9BQU9qQyxTQUFQLENBQ0osSyxnQkFBQSxDQUNJLE9BQU9HLFNBQVAsQ0FDSixJLGNBQUEsQ0FDSSxPQUFPRCxTQUFQLENBQ0osSyxnQkFBQSxDQUNJLE9BQU9FLFNBQVAsQ0FDSixLLGdCQUFBLENBQ0ksT0FBT0MsU0FBUCxDQUNKLEssZ0JBQUEsQ0FDSSxPQUFPQyxTQUFQLENBWlIsQyxDQWdCSixNQUFNNEIsU0FBQSxDQUFXQyxTQUFELEUsMkJBQ1osT0FBUUEsU0FBQSxDLGdCQUFBLENBQVIsRUFDSSxLLGdCQUFBLEMsR0FDUUEsU0FBQSxDLGdCQUFBLElBQThCbkMsUyxLQUM5Qm1DLFNBQUEsQyxnQkFBQSxJQUE2QmxDLFNBQTdCLEVBQTJDa0MsU0FBQSxDLGdCQUFBLEksdUJBQ3BDLEMsTUFBRSxDLGdCQUFGLEMsT0FBcUIsQyxnQkFBckIsQyxDQUVYLE1BQU8sQyxNQUFFLEMsaUJBQUYsQyxPQUEyQixDLGdCQUEzQixDQUFQLENBQ0osSyxnQkFBQSxDLEdBQ1FBLFNBQUEsQyxpQkFBQSxJQUE4QmpDLFMsT0FDdkIsQyxNQUFFLEMsZ0JBQUYsQyxPQUF1QixDLGdCQUF2QixDLGFBRUZpQyxTQUFBLEMsZ0JBQUEsSUFBOEJoQyxTLENBQzVCLEMsTUFBRSxDLGdCQUFGLEMsT0FBdUIsQyxnQkFBdkIsQyxDQUdBLEMsTUFBRSxDLGdCQUFGLEMsT0FBdUIsQyxXQUF2QixDLENBRWYsSSxRQUFBLENBQ0ksTUFBTyxDLE1BQUUsQyxRQUFGLEMsT0FBa0IsQyxZQUFsQixDQUFQLENBQ0osSyxnQkFBQSxDQUNJLE1BQU8sQyxNQUFFLEMsZ0JBQUYsQyxPQUEyQixDLGdCQUEzQixDQUFQLENBQ0osSyxnQkFBQSxDQUNJLE1BQU8sQyxNQUFFLEMsZ0JBQUYsQyxPQUFzQixDLGdCQUF0QixDQUFQLENBQ0osSyxnQkFBQSxDQUNJLE1BQU8sQyxNQUFFLEMsZ0JBQUYsQyxPQUF5QixDLGdCQUF6QixDQUFQLENBeEJSLEMsTUEwQk8sQyxNQUFFLEMsYUFBRixDLE9BQXVCLEMsTUFBdkIsQyxFQTNCWCxDQThCTWlDLFNBQUEsQ0FBUyxDQUFDLENBQUVDLFlBQUEsQ0FBQUMsU0FBRixDQUFnQkMsUUFBQSxDQUFBQyxTQUFoQixDQUEwQkMsT0FBQSxDQUFBQyxTQUExQixDQUFELENBQXNDQyxTQUF0QyxDQUE4Q0MsU0FBOUMsR0FBMkRyRSxTQUFBLENBQVUsSyxHQUFWLENBQWtCLEssR0FBbEIsQ0FBMEIsSyxHQUExQixDQUFrQyxXLDJCQUNsR3NFLFNBQUEsQ0FBVUgsUyxrQkFDVkksU0FBQSxDQUFTRCxTLGtCQUNURSxTQUFBLENBQW9CbEIsTUFBQSxDLFFBQUEsRUFBY0EsTUFBQSxDLGdCQUFBLEVBQWMsRUFBZCxDQUFrQmUsU0FBbEIsQ0FBZCxDQUEyQyxDLFFBQUUsQ0FBQUQsU0FBRixDLFlBQVUsQyxJQUFWLENBQTNDLEMsQ0FDcEJLLFFBQUEsQ0FBTyxNQUFNQyxLQUFBLENBQU1ILFNBQU4sQ0FBVyxDLFFBQzFCLEMsZ0JBRDBCLEMsTUFFMUIsQ0FBTUksSUFBQSxDLGdCQUFBLEVBQWUsQyxjQUNqQixDQUFBWixTQURpQixDLFVBRWpCLENBQUFFLFNBRmlCLEMsbUJBR2pCLENBQUFPLFNBSGlCLENBQWYsQ0FGb0IsQyxTQU8xQixDQUFTLEMsY0FBRSxDLGdCQUFGLENBUGlCLENBQVgsQyxJQVNmQyxRQUFBLEMsZ0JBQUEsSSxZQUNBRyxPQUFBLEMsZ0JBQUEsRSxxQ0FBQSxDQUEwQ0gsUUFBQSxDLGdCQUFBLENBQTFDLENBQXVEQSxRQUFBLEMsWUFBQSxDQUF2RCxDLENBQ08sQyxZQUFFLENBQVksRUFBZCxDLENBR1gsTUFBTUksU0FBQSxDQUFXLE1BQU1KLFFBQUEsQyxnQkFBQSxHQUF2QixDQUNNSyxTQUFBLENBQWFELFNBQUEsQyxnQkFBQSxFLGdCQUFBLEdBQW9DLEVBRHZELEMsTUFFTyxDLFlBQUUsQ0FBQUMsU0FBRixDLEVBcEIrRCxDQTlCMUUsQ0FxRE1DLFNBQUEsQ0FBWSxDLGlCQUNkLENBQWlCdEIsU0FBQSxDLGdCQUFBLENBREgsQyxpQkFFZCxDLElBRmMsQyxpQkFHZCxDQUFpQnpCLFNBQUEsQyxTQUFBLENBSEgsQyxlQUlkLENBQWVFLFNBQUEsQyxnQkFBQSxFQUFxQkEsU0FBQSxDLGdCQUFBLENBQXJCLENBQXdDQSxTQUFBLEMsZ0JBQUEsQ0FKekMsQyxZQVVkLEMsSUFWYyxDQXJEbEIsQ0FpRU04QyxTQUFBLENBQVksQyxpQkFDZCxDQUFpQnZCLFNBQUEsQyxnQkFBQSxDQURILEMsaUJBRWQsQyxJQUZjLEMsaUJBR2QsQ0FBaUJ6QixTQUFBLEMsZ0JBQUEsQ0FISCxDLGVBSWQsQ0FBZUUsU0FBQSxDLGdCQUFBLEVBQXFCQSxTQUFBLEMsZ0JBQUEsQ0FBckIsQ0FBd0NBLFNBQUEsQyxRQUFBLENBSnpDLEMsWUFVZCxDLElBVmMsQ0FqRWxCLENBNkVNK0MsU0FBQSxDQUFlLENBQUMsQ0FBRW5CLFlBQUEsQ0FBQW9CLFNBQUYsQ0FBZ0JsQixRQUFBLENBQUFtQixTQUFoQixDQUEwQmpCLE9BQUEsQ0FBQWtCLFNBQTFCLENBQUQsQ0FBc0MsQ0FBRUMsTUFBQSxDQUFBQyxTQUFGLENBQVVDLFVBQUEsQ0FBQUMsU0FBVixDQUFzQkMsTUFBQSxDQUFBQyxTQUF0QixDQUF0QyxHQUF5RTFGLFNBQUEsQ0FBVSxLLEdBQVYsQ0FBa0IsSyxHQUFsQixDQUEwQixLLEdBQTFCLENBQWtDLFcsMkJBQ3RIMkYsU0FBQSxDQUFVUCxTLG9CQUNWUSxTQUFBLENBQVNELFMsa0JBQ1RFLFNBQUEsQ0FBTyxNQUFNbkIsS0FBQSxDQUFNa0IsU0FBTixDQUFXLEMsUUFDMUIsQyxnQkFEMEIsQyxNQUUxQixDQUFNakIsSUFBQSxDLGdCQUFBLEVBQWUsQyxjQUNqQixDQUFBTyxTQURpQixDLFVBRWpCLENBQUFDLFNBRmlCLEMsUUFHakIsQ0FBQUcsU0FIaUIsQyxZQUlqQixDQUFBRSxTQUppQixDLFFBS2pCLENBQUFFLFNBTGlCLENBQWYsQ0FGb0IsQyxTQVMxQixDQUFTLEMsY0FBRSxDLGtCQUFGLENBVGlCLENBQVgsQyxJQVdmRyxTQUFBLEMsZ0JBQUEsSSxZQUNPLEksQ0FFWCxNQUFNQyxTQUFBLENBQVEsTUFBTUQsU0FBQSxDLGdCQUFBLEdBQXBCLEMsT0FDT0MsU0FBQSxDLGdCQUFBLEMsRUFsQm1GLENBN0U5RixDQWlHTUMsU0FBQSxDQUFpQixDQUFDLENBQUVqQyxZQUFBLENBQUFrQyxTQUFGLENBQWdCaEMsUUFBQSxDQUFBaUMsUUFBaEIsQ0FBMEIvQixPQUFBLENBQUFnQyxTQUExQixDQUFELENBQXNDQyxTQUF0QyxDQUFxREMsU0FBckQsR0FBK0RwRyxTQUFBLENBQVUsSyxHQUFWLENBQWtCLEssR0FBbEIsQ0FBMEIsSyxHQUExQixDQUFrQyxXLDJCQUM5R3FHLFNBQUEsQ0FBVUgsUyxrQkFDVkksU0FBQSxDQUFTRCxTLGdCQUNURSxTQUFBLENBQVNKLFNBQUEsQyxLQUFBLEcsQ0FDVEssU0FBQSxDQUFPLE1BQU05QixLQUFBLENBQU00QixTQUFOLENBQVcsQyxRQUMxQixDLE1BRDBCLEMsTUFFMUIsQ0FBTTNCLElBQUEsQyxnQkFBQSxFQUFlLEMsY0FDakIsQ0FBQXFCLFNBRGlCLEMsVUFFakIsQ0FBQUMsUUFGaUIsQyxRQUdqQixDQUFBTSxTQUhpQixDQUFmLENBRm9CLEMsU0FPMUIsQ0FBUyxDLGNBQUUsQyxrQkFBRixDQVBpQixDQUFYLEMsQ0FTYkUsU0FBQSxDQUFrQixDQUFDQyxTQUFELENBQU9DLFNBQVAsRywyQkFDcEJQLFNBQUEsQyxnQkFBQSxFQUFXTSxTQUFYLEUsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLEVBQW9EQyxTQUFwRCxDLENBQ0FQLFNBQUEsQyxnQkFBQSxHLENBQ0FRLFVBQUEsQ0FBVyxJLDJCQUNQUixTQUFBLEMsZ0JBQUEsRUFBa0JPLFNBQWxCLEMsQ0FDQVAsU0FBQSxDLGdCQUFBLEcsRUFGSixDLEtBQUEsQyxHQUtFUyxTQUFBLENBQVEsTUFBTUwsU0FBQSxDLGdCQUFBLEcsQ0FDaEJBLFNBQUEsQyxnQkFBQSxJLEtBRUFDLFNBQUEsQyxhQUFnQixDQUFnQkYsU0FBaEMsQyxnQkFBQSxDLENBR0lNLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQXNCLE1BQXRCLEMsRUFFQVYsU0FBQSxDLEtBQUEsRUFBa0JVLFNBQUEsQyxnQkFBQSxDQUFsQixDLENBQ0FWLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEMsQ0FDQU0sU0FBQSxDLGdCQUFBLEMsSUFBQSxDLEdBR0FOLFNBQUEsQyxnQkFBQSxFLEdBQXFCSSxTQUFyQixDLENBQ0FFLFNBQUEsQ0FBbUJJLFNBQUEsQyxnQkFBQSxDLFFBQW1CTCxTQUFBLEMsZ0JBQUEsQ0FBdEMsQyxnQkFBQSxDLEdBbkMwRSxDQWpHdEYsQ0F3SUEsU0FBU00sU0FBVCxDQUF1QkMsU0FBdkIsQ0FBOEJDLFNBQTlCLEMsUUFDV2hILFNBQUEsQ0FBVSxJQUFWLENBQWdCLEssR0FBaEIsQ0FBd0IsSyxHQUF4QixDQUFnQyxXLHlCQUM3QmlILFNBQUEsQ0FBU0YsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQyxDQUNURyxTQUFBLENBQWdCLE1BQU1yRCxTQUFBLENBQU9tRCxTQUFQLENBQWFDLFNBQWIsQ0FBcUJsQyxTQUFyQixDLENBQ3RCb0MsU0FBQSxDQUFnQixNQUFNdEQsU0FBQSxDQUFPbUQsU0FBUCxDQUFhQyxTQUFiLENBQXFCakMsU0FBckIsQyxPQUNyQixDLFlBQ0gsQ0FBWSxDQUFDLEdBQUdrQyxTQUFBLEMsZ0JBQUEsQ0FBSixDQUE4QixHQUFHQyxTQUFBLEMsWUFBQSxDQUFqQyxDQURULEMsRUFKSixDLEVBU1gsTUFBTUMsU0FBQSxDQUFhLEMsaUJBQ2YsQ0FBaUIzRCxTQUFBLEMsZ0JBQUEsQ0FERixDLGlCQUVmLEMsSUFGZSxDLGlCQUdmLENBQWlCekIsU0FBQSxDLFNBQUEsQ0FIRixDLGVBSWYsQ0FBZUUsU0FBQSxDLGdCQUFBLEVBQTBCQSxTQUFBLEMsWUFBQSxDQUExQixDQUFpREEsU0FBQSxDLGdCQUFBLENBQWpELENBQXNFQSxTQUFBLEMsZ0JBQUEsQ0FKdEUsQyxZQUtmLEMsSUFMZSxDQUFuQixDQU9BLFNBQVNtRixTQUFULENBQXVCQyxTQUF2QixDQUE4QkMsU0FBOUIsQyxRQUNXdkgsU0FBQSxDQUFVLElBQVYsQ0FBZ0IsSyxHQUFoQixDQUF3QixLLEdBQXhCLENBQWdDLFcseUJBQzdCd0gsU0FBQSxDQUFTRixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDLENBQ1RHLFNBQUEsQ0FBZ0IsTUFBTTVELFNBQUEsQ0FBTzBELFNBQVAsQ0FBYUMsU0FBYixDQUFxQkosU0FBckIsQyxRQUNyQkssUyxFQUhKLEMsRUFNWCxNQUFNQyxTQUFBLENBQWVDLFNBQUQsRSwyQkFDaEIsSUFBSUMsU0FBSixDQUFRQyxTQUFSLENBQVlDLFNBQVosQ0FBZ0JDLFNBQWhCLEMsR0FDSSxDQUFDSixTQUFELEVBQWMsQ0FBQ0EsU0FBQSxDLGdCQUFBLEMsRUFDZixNQUFNSyxTQUFBLENBQVdDLENBQUEsQywyR0FBQSxDQUFqQixDLE9BQ09ELFMsRUFFWCxNQUFNRSxTQUFBLENBQUlQLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEdBQVYsQ0FDTVEsU0FBQSxDQUFLLENBQUMsQ0FBQVAsU0FBQSxDQUFLRCxTQUFBLEMsZ0JBQUEsQ0FBTCxDQUFELEdBQWlDLElBQWpDLEVBQXlDQyxTQUFBLEdBQU8sSyxHQUFoRCxDQUF5RCxLLEdBQXpELENBQWtFQSxTQUFBLEMsTUFBQSxDQUFsRSxDQUFELEVBQWdGLENBQUMsQ0FBQUMsU0FBQSxDQUFLRixTQUFBLEMsZ0JBQUEsQ0FBTCxDQUFELEdBQWdDLElBQWhDLEVBQXdDRSxTQUFBLEdBQU8sSyxHQUEvQyxDQUF3RCxLLEdBQXhELENBQWlFQSxTQUFBLEMsTUFBQSxDQUFqRSxDQUFoRixFQUE2SkYsU0FBQSxDLFFBQUEsRSxnQkFBQSxHQUR2SyxDQUVNLENBQUVTLElBQUEsQ0FBQUMsU0FBRixDQUFRQyxLQUFBLENBQUFDLFNBQVIsRUFBa0I1RSxTQUFBLENBQVFnRSxTQUFSLENBRnhCLENBR01hLFNBQUEsQyxJQUFZYixTQUFBLEMsUUFBQSxFLGdCQUFBLEcsU0FBZ0MsQ0FBQyxDQUFDLENBQUFHLFNBQUEsQ0FBS0gsU0FBQSxDLGdCQUFBLENBQUwsQ0FBRCxHQUFnQyxJQUFoQyxFQUF3Q0csU0FBQSxHQUFPLEssR0FBL0MsQ0FBd0QsSyxHQUF4RCxDQUFpRUEsU0FBQSxDLE1BQUEsQ0FBakUsQ0FBRCxFQUErRSxDQUFDLENBQUFDLFNBQUEsQ0FBS0osU0FBQSxDLGdCQUFBLENBQUwsQ0FBRCxHQUFpQyxJQUFqQyxFQUF5Q0ksU0FBQSxHQUFPLEssR0FBaEQsQ0FBeUQsSyxHQUF6RCxDQUFrRUEsU0FBQSxDLGdCQUFBLENBQWxFLENBQS9FLEUsRUFBQSxDQUhsRCxDQUlNVSxTQUFBLENBQVdSLENBQUEsQyxpQkFBY04sU0FBQSxDLGdCQUFBLEUsVUFBQSxHLGtCQUErRGEsUyxrQkFBc0JILFMsNEJBQXNCRSxTLGtCQUFnQkosUyxpQkFBekksQ0FKakIsQyxPQUtBTSxTQUFBLEMsVUFBQSxFLGdCQUFBLEMsQ0FDQUEsU0FBQSxDLE1BQUEsRSxnQkFBQSxDQUF1QlAsU0FBdkIsQyxDQUNBTyxTQUFBLEMsTUFBQSxFLGdCQUFBLENBQTJCZCxTQUEzQixDLENBQ09jLFMsRUFkWCxDQWdCTUMsU0FBQSxDQUFjLENBQUNDLFNBQUQsQ0FBU0MsU0FBVCxHLGtDQUNUQSxTQUFBLEMsTUFBQSxFLGlCQUFzQkQsUyxRQUF0QixDLEVBakJYLENBbUJNRSxTQUFBLENBQWUsQ0FBQ0MsU0FBRCxDQUFPQyxTQUFQLEcsMkJBQ2pCRCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLEUsYUFBQSxFLFVBQUEsQyxDQUVBQyxTQUFBLEMsZ0JBQUEsRSxrQkFBQSxFLGdCQUFBLEUsZ0JBQUEsQyxFQXRCSixDQXdCTUMsU0FBQSxDQUFhLENBQUNDLFNBQUQsQ0FBT0MsU0FBUCxDQUFtQkMsU0FBbkIsR0FBNkJuSixTQUFBLENBQVUsSyxHQUFWLENBQWtCLEssR0FBbEIsQ0FBMEIsSyxHQUExQixDQUFrQyxXLDJCQUU5RSxJQUFJb0osU0FBQSxDQUFXRCxTQUFBLEMsZ0JBQUEsRSxRQUFBLENBQWYsQ0FDQUQsU0FBQSxDLGNBQUEsRSxnQkFBQSxHQUFvQyxFQUFwQyxDQUNBLE1BQU1HLFNBQUEsQ0FBVUgsU0FBQSxDLGdCQUFBLEdBQXNCLEVBQXRDLEMsR0FDSUcsU0FBQSxDLGdCQUFBLEksSUFDQSxPQUVKLFVBQVdDLFNBQVgsSUFBZ0JELFNBQWhCLEMsQ0FDUUQsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQyxFQUVBLE9BQU1HLFNBQUEsQ0FBVU4sU0FBVixDQUFnQkcsU0FBaEIsQ0FBTixDLENBRUosTUFBTUksU0FBQSxDQUFXZCxTQUFBLENBQVlZLFNBQVosQ0FBZUYsU0FBZixDQUFqQixDLEdBQ0lJLFNBQUEsQyxnQkFBQSxJLElBQ0EsT0FFSkosU0FBQSxDQUFXSSxTLEVBRWZYLFNBQUEsQ0FBYUksU0FBYixDQUFtQkcsU0FBbkIsQyxDQUNBSyxTQUFBLENBQVdSLFNBQUEsQyxXQUFBLENBQVgsQ0FBMkJHLFNBQTNCLEMsRUFwQjRDLENBeEJoRCxDQThDQSxTQUFTSyxTQUFULENBQW9CQyxTQUFwQixDQUFnQ0MsU0FBaEMsQywyQkFFVUMsU0FBQSxDQUFRRCxTQUFBLEMsZ0JBQUEsSSxnQkFBQSxDLENBRVJFLFNBQUEsQ0FBcUJILFNBQUEsQyxnQkFBQSxHLElBQ3ZCRyxTQUFBLEVBQXNCQyxTLENBQ3RCLE9BSUosTUFBTUMsU0FBQSxDQUFXRixTQUFBLENBQXFCRCxTQUFyQixDQUE2QkYsU0FBQSxDLGdCQUFBLEksR0FBN0IsQ0FBdURDLFNBQUEsQyxRQUFBLEksR0FBeEUsQ0FFQUQsU0FBQSxDLGdCQUFBLEVBQW1CLEMsV0FDZixDQUFXSyxTQURJLENBQW5CLEMsS0FBQSxDLEVBSUosTUFBTUMsU0FBQSxDQUFpQixDQUFDQyxTQUFELENBQU9DLFNBQVAsR0FBc0JsSyxTQUFBLENBQVUsSyxHQUFWLENBQWtCLEssR0FBbEIsQ0FBMEIsSyxHQUExQixDQUFrQyxXLDJCQUNyRW1LLFNBQUEsQ0FBU0YsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRyxDQUNURyxTQUFBLENBQVUsQyxRQUNaLENBQUFELFNBRFksQyxZQUVaLENBQVlELFNBQUEsQyxnQkFBQSxDQUZBLEMsUUFHWixDQUFRRCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHLEdBSEksQyxDQUtWSSxTQUFBLENBQU9DLFNBQUEsQ0FBZUwsU0FBZixDLENBQ1BNLFNBQUEsQ0FBYSxNQUFNdEYsU0FBQSxDQUFhb0YsU0FBYixDQUFtQkQsU0FBbkIsQyxJQUNyQixDQUFDRyxTLENBQ0QsT0FFSixNQUFNdkIsU0FBQSxDQUFXaUIsU0FBWCxDQUFpQk0sU0FBakIsQ0FBNkJOLFNBQUEsQyxnQkFBQSxDQUE3QixDLEVBWm1DLENBQTdDLENBY0EsU0FBU08sU0FBVCxDQUEyQkMsU0FBM0IsQ0FBaUNDLFNBQWpDLENBQXdDQyxTQUF4QyxDQUFtREMsU0FBbkQsQyxRQUNXNUssU0FBQSxDQUFVLElBQVYsQ0FBZ0IsSyxHQUFoQixDQUF3QixLLEdBQXhCLENBQWdDLFcsNEJBQy9CMEssU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQyxFQUNBOUYsT0FBQSxDLEtBQUEsRSxnQkFBQSxFQUNBLE8sSUFFQThGLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEMsRUFDQTlGLE9BQUEsQyxLQUFBLEUsZ0JBQUEsRUFDQSxPLENBRUo4RixTQUFBLEMsZ0JBQUEsRSxTQUFBLEMsQ0FDQUEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FEQSxDQUVBLEcsQ0FDSUEsU0FBQSxDLFVBQUEsRSxJQUFBLEUsZ0JBQUEsSUFDQSxNQUFNLENBQUVHLFVBQUEsQ0FBQUMsU0FBRixFQUFpQixNQUFNSCxTQUFBLENBQVVELFNBQVYsQ0FBaUJFLFNBQWpCLENBQTdCLENBQ0EsVUFBV0csU0FBWCxJQUF3QkQsU0FBeEIsQyxJQUNRTCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHQUF1QixDQUFDQSxTQUFBLEMsZ0JBQUEsRSxRQUFBLEVBQW9CTSxTQUFwQixDLENBQ3hCLFNBRUosTUFBTUMsU0FBQSxDQUFXdEQsU0FBQSxDQUFZcUQsU0FBWixDQUFqQixDQUNBTCxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsZ0JBQUEsRUFBNEJNLFNBQTVCLEMsRUFFSk4sU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQyxFQUVKLE1BQU9PLFNBQVAsQyxDQUNJUCxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsZ0JBQUEsRSxpQkFBeUNPLFNBQUEsQyxTQUFBLEMsaUJBQXpDLEMsQ0FDQXJHLE9BQUEsQyxLQUFBLEUsZ0JBQUEsQ0FBbUJxRyxTQUFuQixDLEVBRUpQLFNBQUEsQyxNQUFBLEUsZ0JBQUEsRSxnQkFBQSxHLENBQ0FBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEMsRUE1QkcsQyxFQStCWCxTQUFTSixTQUFULENBQXdCWSxTQUF4QixDLDJCQUNVQyxPQUFBLENBQU8sQyxTQUNULENBQVNELFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBREEsQyxjQUVULENBQWMsT0FBT0EsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBUCxHLGdCQUFBLENBQWtEQSxTQUFBLEMsZ0JBQUEsRSxjQUFBLEdBQWxELENBQWdGQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUZyRixDLFVBR1QsQ0FBVSxPQUFPQSxTQUFBLEMsZ0JBQUEsRSxVQUFBLENBQVAsRyxnQkFBQSxDQUE4Q0EsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsR0FBOUMsQ0FBd0VBLFNBQUEsQyxnQkFBQSxFLFVBQUEsQ0FIekUsQyxRQUtOQyxPLEVBRVgsU0FBUzVCLFNBQVQsQ0FBbUI2QixTQUFuQixDQUF5QkMsU0FBekIsQyxRQUNXckwsU0FBQSxDQUFVLElBQVYsQ0FBZ0IsSyxHQUFoQixDQUF3QixLLEdBQXhCLENBQWdDLFcsNEJBQy9CcUwsU0FBQSxDLFVBQUEsRSxnQkFBQSxDLEVBQ0FBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxDLENBQ0FBLFNBQUEsQyxVQUFBLEUsSUFBQSxFLGdCQUFBLEdBREEsQ0FFQSxPLENBR0osTUFBTUMsU0FBQSxDQUFPaEIsU0FBQSxDQUFlYyxTQUFmLENBQWIsQ0FDTUcsU0FBQSxDQUFJLENBQUNILFNBQUEsQyxTQUFBLEUsZ0JBQUEsQ0FBRCxDQUEwQnRFLFNBQTFCLENBQTBDTyxTQURwRCxDQUVBLEcsQ0FDSSxNQUFNbUQsU0FBQSxDQUFrQlksU0FBbEIsQ0FBd0JDLFNBQXhCLENBQTZCRSxTQUE3QixDQUFnQ0QsU0FBaEMsQyxDQUVORCxTQUFBLEMsZ0JBQUEsRSxZQUFBLEUsZ0JBQUEsRSxVQUFBLEMsRUFFSixNQUFPRyxTQUFQLEMsQ0FDSUgsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLEMsQ0FDQXpHLE9BQUEsQyxnQkFBQSxFLGdCQUFBLENBQXFCNEcsU0FBckIsQyxHQWhCRCxDLEVBb0JYLE1BQU1DLFNBQUEsQ0FBMkIsSSwyQkFRN0J4RCxDQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUFpQyxDLFNBRTdCLENBQVMsQyxjQUNMLENBQWMsS0FBTyxDLFVBQUUsQyx3Q0FBRixDQUFQLENBRFQsQyxVQUVMLENBQVUsSUFBTTZCLFNBRlgsQyxZQUdMLENBQVksS0FBTyxDLFlBQ2YsQ0FBWSxDLGdCQUFFLEMsR0FBRixDLE1BQXFCLEMsZ0JBQXJCLENBREcsQyxXQUVmLEMsZ0JBRmUsQyxRQUdmLEMsZ0JBSGUsQyxhQUlmLENBQWEsQyxNQUFFLEMsU0FBRixDQUpFLEMsZ0JBS2YsQ0FBZ0JwSSxTQUxELENBQVAsQ0FIUCxDLFFBVUwsQ0FBUSxJLElBVkgsQyxTQVdMLEMsRUFYSyxDLFdBWUwsQyxHQVpLLENBRm9CLEMsbUJBZ0I3QixFLFFBQ1cxQixTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVyx5QkFDN0IwTCxTQUFBLENBQU8sSSxJQUNULENBQUNBLFNBQUEsQyxnQkFBQSxDLEVBQ0QsTUFBTUMsU0FBQSxDQUFJLE9BQU9ELFNBQUEsQyxTQUFBLEUsZ0JBQUEsQ0FBUCxHLFVBQUEsQ0FBZ0RBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsRUFBNkJBLFNBQTdCLENBQWhELENBQXFGQSxTQUFBLEMsU0FBQSxFLFlBQUEsQ0FBL0YsQyxHQUNJQyxTQUFBLFlBQWFuTCxPLEVBQ2IsTUFBTW9MLFNBQUEsQ0FBTyxNQUFNRCxTQUFuQixDQUNBRCxTQUFBLEMsZ0JBQUEsRUFBb0JFLFMsT0FHcEJGLFNBQUEsQyxnQkFBQSxFQUFvQkMsUyxTQUdyQkQsU0FBQSxDLGdCQUFBLEMsRUFaSixDLEVBakJrQixDLE9BZ0M3QixFLFFBQ1cxTCxTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVyx5QkFDN0I2TCxTQUFBLENBQU8sSSxDQUVQQyxTQUFBLENBQUlELFMsQ0FDVkMsU0FBQSxDLGdCQUFBLEVBQWlCaEMsUyxDQUNqQitCLFNBQUEsQyxnQkFBQSxFLE9BQUEsR0FEQSxDQUVBLE1BQU1FLFNBQUEsQ0FBYSxNQUFNLEssZ0JBQUEsR0FBekIsQ0FDTUMsU0FBQSxDQUFXdEUsU0FBQSxDQUFZcUUsU0FBWixDQURqQixDQUVBRixTQUFBLEMsT0FBQSxFLGdCQUFBLEVBQWtCRyxTQUFsQixDLENBQ0FILFNBQUEsQyxlQUFBLEVBQXFCRSxTLEVBVGxCLEMsRUFqQ2tCLEMsUUE2QzdCLEUsMkJBQ1VFLFNBQUEsQ0FBTyxJLENBRVBDLFFBQUEsQ0FBTzVCLFNBQUEsQ0FBZTJCLFNBQWYsQyxDQUNibEcsU0FBQSxDQUFlbUcsUUFBZixDQUFxQkQsU0FBQSxDLGdCQUFBLENBQXJCLENBQWtDQSxTQUFBLEMsZ0JBQUEsQ0FBbEMsQyxFQWpEeUIsQyxTQW1EN0IsRSwyQkFDVUUsU0FBQSxDQUFPLEksQ0FDYkEsU0FBQSxDLGdCQUFBLEVBQWMsSyxnQkFBQSxDLENBQ2RBLFNBQUEsQyxnQkFBQSxFQUFjbEUsQ0FBQSxDLGdCQUFBLEMsQ0FDZGtFLFNBQUEsQyxRQUFBLEUsZ0JBQUEsRSxnQkFBQSxDLENBQ0EsSyxTQUFBLEUsZ0JBQUEsRUFBeUJBLFNBQUEsQyxnQkFBQSxDQUF6QixDLENBQ0FBLFNBQUEsQyxnQkFBQSxFQUFtQmxFLENBQUEsQyxnQkFBQSxFLGdCQUFBLEUsYUFBQSxDLENBQ25Ca0UsU0FBQSxDLFFBQUEsRSxnQkFBQSxFQUFtQkEsU0FBQSxDLGdCQUFBLENBQW5CLEMsQ0FDQUEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBd0JBLFNBQUEsQyxRQUFBLENBQXhCLEMsQ0FDQUEsU0FBQSxDLGdCQUFBLEVBQXNCbEUsQ0FBQSxDLGdCQUFBLEMsQ0FDdEJrRSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUF3QkEsU0FBQSxDLGdCQUFBLENBQXhCLEMsQ0FDQUEsU0FBQSxDLGdCQUFBLEUsSUFBQSxFLGdCQUFBLENBQWdDLFUsQ0FDNUIsSUFBSUMsU0FBSixDLE9BQ09wTSxTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVyx5QkFDbkMsSUFBSXFNLFNBQUEsQyxHQUFKLENBQ0lDLFNBREosQ0FFSSxDQUFDSCxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsZ0JBQUEsQyxHQUNEQSxTQUFBLEMsZ0JBQUEsRSxNQUFBLEcsQ0FFQUcsU0FBQSxDQUFhLE1BQU1ILFNBQUEsQyxnQkFBQSxHLENBQ2YsQ0FBQUcsU0FBQSxHQUFlSCxTQUFBLEMsZ0JBQUEsQ0FBZixFQUFzQyxDQUFDLENBQUFDLFNBQUEsQ0FBS0QsU0FBQSxDLGdCQUFBLENBQUwsQ0FBRCxHQUE4QixJQUE5QixFQUFzQ0MsU0FBQSxHQUFPLEssR0FBN0MsQ0FBc0QsSyxHQUF0RCxDQUErREEsU0FBQSxDLGdCQUFBLENBQS9ELENBQUQsR0FBK0VFLFNBQUEsQyxnQkFBQSxDQUFwSCxDLEVBQ0EsT0FBTUgsU0FBQSxDLE9BQUEsR0FBTixDLENBRUpFLFNBQUEsQyxNQUVKRixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHLENBQ0FFLFNBQUEsRUFBeUIsT0FBTXJDLFNBQUEsQ0FBZW1DLFNBQWYsQ0FBcUJHLFNBQXJCLENBQU4sQyxFQWJ0QixDLEVBRlgsQyxDQWtCQUgsU0FBQSxDLGdCQUFBLEVBQWtCbEUsQ0FBQSxDLGdCQUFBLEMsQ0FDbEJrRSxTQUFBLEMsYUFBQSxFLGdCQUFBLEVBQXdCQSxTQUFBLEMsWUFBQSxDQUF4QixDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxnQkFBQSxDQUE0QixJLDJCQUN4QixLLGdCQUFBLEcsRUFESixDQTdCQSxDQWdDSSxDQUFDQSxTQUFBLEMsUUFBQSxFLE1BQUEsRSxnQkFBQSxDLEVBQ0RBLFNBQUEsQyxnQkFBQSxFLE1BQUEsRSxnQkFBQSxDLGdCQUFBLEMsQ0FFSkEsU0FBQSxDLGdCQUFBLEVBQWFsRSxDQUFBLEMsZ0JBQUEsQyxDQUNia0UsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRyxDQUNBQSxTQUFBLEMsV0FBQSxFQUFpQmxFLENBQUEsQyxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsRSxNQUFBLEcsQ0FDakJrRSxTQUFBLEMsUUFBQSxFLFFBQUEsRUFBbUJBLFNBQUEsQyxnQkFBQSxDQUFuQixDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQW1CQSxTQUFBLEMsZ0JBQUEsQ0FBbkIsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRUFBYWxFLENBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQThDa0UsU0FBQSxDLGdCQUFBLENBQTlDLEMsQ0FDYixLLE9BQUEsR0FOQSxDQU9BLE1BQU1JLFNBQUEsQ0FBZSxDQUFDQyxTQUFELENBQU1DLFNBQU4sRywyQkFDWEMsU0FBQSxDLEtBQ0FDLFNBQUEsQyxLQUNBQyxTQUFBLENBQWFKLFNBQUEsQyxnQkFBQSxHLENBQ2JLLFNBQUEsQ0FBSUosUyxJQUNOSSxTQUFBLEMsZ0JBQUEsR0FBV0QsU0FBQSxDLE1BQUEsQ0FBWCxFQUNBQyxTQUFBLEMsZ0JBQUEsR0FBV0QsU0FBQSxDLGdCQUFBLEVBQWtCRixTQUQ3QixFQUVBRyxTQUFBLEMsT0FBQSxHQUFXRCxTQUFBLEMsS0FBQSxDQUZYLEVBR0FDLFNBQUEsQyxnQkFBQSxHQUFXRCxTQUFBLEMsS0FBQSxFQUFpQkQsUyx1QkFScEMsQ0FhTUcsU0FBQSxDQUFtQkMsU0FBRCxFQUFTL00sU0FBQSxDQUFVLElBQVYsQ0FBZ0IsSyxHQUFoQixDQUF3QixLLEdBQXhCLENBQWdDLFcsOEJBQ3pEK00sU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQyxDQUNBeEQsU0FBQSxDQUFVNEMsU0FBVixDQUFnQlksU0FBaEIsQyxTQUVLQSxTQUFBLEMsZ0JBQUEsRSxVQUFBLEMsQ0FFTEEsU0FBQSxDLGdCQUFBLEUsSUFBQSxFLGdCQUFBLEcsQ0FFQUEsU0FBQSxDLGdCQUFBLEUsd0JBQUEsQyxTQUVLQSxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsVUFBQSxJLFFBQUEsRSxJQUNMQSxTQUFBLEMsVUFBQSxFLElBQUEsRSxnQkFBQSxHLENBRUFBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEMsU0FieUIsQ0FiakMsQ0E4QkFaLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxnQkFBQSxDLElBQUEsQ0FBZ0MsU0FBVWEsU0FBVixDLDJCQUM1QixJQUFJQyxTQUFKLENBQVFDLFNBQVIsQ0FDQUYsU0FBQSxDLGdCQUFBLElBQ0EsSUFBSUcsU0FBQSxDQUFNbEYsQ0FBQSxDQUFFLElBQUYsQ0FBVixDLEdBQ0lzRSxTQUFBLENBQWFZLFNBQWIsQ0FBa0JILFNBQWxCLEMsQ0FDQUYsU0FBQSxDQUFnQkssU0FBaEIsQyxNQUdBLE1BQU1DLFNBQUEsQ0FBUUQsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBZCxDQUNNRSxTQUFBLENBQVlGLFNBQUEsQyxnQkFBQSxFLFdBQUEsQ0FEbEIsQyxHQUVJaEIsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsR0FBNkIsQ0FBQ0EsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBMEJrQixTQUExQixDLENBQzlCLE9BRUpsQixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLENBQThCa0IsU0FBOUIsRUFDQSxNQUFNQyxTQUFBLENBQWUsQ0FBQyxDQUFBTCxTQUFBLENBQUtJLFNBQUEsQyxnQkFBQSxDQUFMLENBQUQsR0FBaUMsSUFBakMsRUFBeUNKLFNBQUEsR0FBTyxLLEdBQWhELENBQXlELEssR0FBekQsQ0FBa0VBLFNBQUEsQyxnQkFBQSxDQUFsRSxDQUFELEVBQWdGLENBQUMsQ0FBQUMsU0FBQSxDQUFLRyxTQUFBLEMsZ0JBQUEsQ0FBTCxDQUFELEdBQWdDLElBQWhDLEVBQXdDSCxTQUFBLEdBQU8sSyxHQUEvQyxDQUF3RCxLLEdBQXhELENBQWlFQSxTQUFBLEMsTUFBQSxDQUFqRSxDQUFoRixFQUE2SkcsU0FBQSxDLGdCQUFBLEUsVUFBQSxHQUFqTCxDQUNNRSxTQUFBLEMsSUFBWUQsUyxNQUFnQkYsUyxJQURsQyxDQUVBakIsU0FBQSxDLFFBQUEsRSxLQUFBLEVBQWdCb0IsU0FBaEIsQyxDQUNBcEIsU0FBQSxDLFFBQUEsRSxTQUFBLEUsUUFBQSxDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEcsR0FsQlIsQyxDQXFCQUEsU0FBQSxDLGdCQUFBLEUsSUFBQSxFLGdCQUFBLEMsSUFBQSxDQUE2QixTQUFVcUIsU0FBVixDLDJCQUN6QkEsU0FBQSxDLGdCQUFBLElBQ0EsSUFBSUMsU0FBQSxDQUFNeEYsQ0FBQSxDQUFFLElBQUYsQ0FBVixDQUNJc0UsU0FBQSxDQUFha0IsU0FBYixDQUFrQkQsU0FBbEIsQyxFQUNBVixTQUFBLENBQWdCVyxTQUFoQixDLENBRUo1RSxTQUFBLENBQWFzRCxTQUFiLENBQW1Cc0IsU0FBbkIsQyxFQU5KLEMsQ0FRQXhGLENBQUEsQ0FBRXlGLFFBQUYsRSxJQUFBLEUsZ0JBQUEsQ0FBd0IsU0FBVUMsU0FBVixDLDJCQUVoQixDQUFDMUYsQ0FBQSxDQUFFMEYsU0FBQSxDLGdCQUFBLENBQUYsRSxnQkFBQSxFQUF3QnhCLFNBQUEsQyxnQkFBQSxDQUF4QixFLGdCQUFBLEMsRUFDREEsU0FBQSxDLGdCQUFBLEUsTUFBQSxHLEVBSFIsQyxFQTFKeUIsQ0FBakMsQyxFQVJKLENBNEtNeUIsU0FBQSxDQUEwQixJLDJCQUM1QjNGLENBQUEsQyxnQkFBQSxFLGdCQUFBLENBQWdDLEMsU0FFNUIsQ0FBUyxDLGFBQ0wsQ0FBYSxFQURSLEMsT0FJTCxDLEdBSkssQ0FGbUIsQyxTQVE1QixFLDJCQUNVNEYsU0FBQSxDQUFPLEksQ0FFYkEsU0FBQSxDLGdCQUFBLEVBQWMsSyxTQUFBLEMsQ0FDZEEsU0FBQSxDLGdCQUFBLEVBQWM1RixDQUFBLEMsUUFBQSxDLENBQ2Q0RixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLEMsQ0FDQSxLLGdCQUFBLEUsR0FBQSxFLGdCQUFBLEUsZ0JBQUEsRUFBMkNBLFNBQUEsQyxnQkFBQSxFLEdBQUEsQ0FBM0MsQ0FBMkQsSyxnQkFBQSxFLEdBQUEsQ0FBM0QsQyxDQUVBQSxTQUFBLEMsZ0JBQUEsRUFBbUI1RixDQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLEMsQ0FDbkI0RixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUFtQkEsU0FBQSxDLGFBQUEsQ0FBbkIsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUF3QkEsU0FBQSxDLGdCQUFBLENBQXhCLEMsQ0FHQUEsU0FBQSxDLGdCQUFBLEVBQXNCNUYsQ0FBQSxDLGdCQUFBLEMsQ0FDdEI0RixTQUFBLEMsZ0JBQUEsRSxRQUFBLEVBQXdCQSxTQUFBLEMsZ0JBQUEsQ0FBeEIsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsT0FBQSxDQUFnQyxVLDJCQUM1QkEsU0FBQSxDLGdCQUFBLEUsUUFBQSxHLENBQ0lBLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxnQkFBQSxDLEdBRUFDLFNBQUEsRSxDQUNBRCxTQUFBLEMsUUFBQSxFLGdCQUFBLEUsZ0JBQUEsRSxNQUFBLEVBQXdDLFUsMkJBQ3BDLElBQUlFLFNBQUEsQ0FBYTlGLENBQUEsQ0FBRSxJQUFGLEUsZ0JBQUEsR0FBakIsQ0FDQSxNQUFNK0YsU0FBQSxDQUFXSCxTQUFBLEMsU0FBQSxFLGdCQUFBLEVBQXlCRSxTQUF6QixDQUFqQixDLEdBQ0lDLFNBQUEsR0FBYWxFLFMsQ0FDYixNQUFNLElBQUl0SSxLQUFKLEMsZ0JBQUEsQ0FBTixDQUVDLENBQUFxTSxTQUFBLEMsZ0JBQUEsRSxPQUFBLEVBQXFCRyxTQUFyQixDQUFELEdBQW9DQSxTLENBQ3BDL0YsQ0FBQSxDQUFFLElBQUYsRSxnQkFBQSxFLGdCQUFBLEMsQ0FHQUEsQ0FBQSxDQUFFLElBQUYsRSxnQkFBQSxFLGdCQUFBLEMsRUFWUixDLENBY0E0RixTQUFBLEMsZ0JBQUEsRyxHQW5CUixDLENBdUJBQSxTQUFBLEMsZ0JBQUEsRUFBaUI1RixDQUFBLEMsZ0JBQUEsRSxnQkFBQSxJLGdCQUFBLEVBQTBELEssZ0JBQUEsQ0FBMUQsQyxDQUNqQkEsQ0FBQSxDLE1BQUEsRUFBTyxLLGdCQUFBLEUsZ0JBQUEsQ0FBUCxDQUFpQyxTQUFVZ0csU0FBVixDLDJCQUN2QkMsU0FBQSxDQUFVakcsQ0FBQSxDLGdCQUFFLENBQ2RnRyxTQURjLEMsT0FBQSxDLGdCQUFBLENBSWRBLFNBSmMsQyxnQkFBRixDLENBTWhCSixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUFzQkssU0FBdEIsQyxFQVBKLEMsQ0FVQUwsU0FBQSxDLGdCQUFBLEUsSUFBQSxFLGdCQUFBLEMsZ0JBQUEsQ0FBNkMsVSwyQkFDekM1RixDQUFBLENBQUUsSUFBRixFLGdCQUFBLEUsVUFBQSxFQUNBLE1BQU1rRyxTQUFBLENBQVFsRyxDQUFBLENBQUUsSUFBRixFLGdCQUFBLEUsZ0JBQUEsQ0FBZCxDQUNJQSxDQUFBLENBQUUsSUFBRixFLGdCQUFBLEUsZ0JBQUEsQyxDQUNBbUcsU0FBQSxDQUFPRCxTQUFQLEMsQ0FHQUUsU0FBQSxDQUFTRixTQUFULEMsQ0FFSk4sU0FBQSxDLGdCQUFBLEcsRUFUSixDLENBV0FBLFNBQUEsQyxRQUFBLEUsZ0JBQUEsRUFBbUJBLFNBQUEsQyxnQkFBQSxDQUFuQixDQXpEQSxDQTBEQSxNQUFNQyxTQUFBLENBQWtCLEksMkJBQ2RRLFNBQUEsQ0FBUSxLLGdCQUFBLEUsZ0JBQUEsRyxDQUNkVCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUFxQnZMLFNBQUEsQ0FBdUJ1TCxTQUFBLEMsU0FBQSxFLGFBQUEsQ0FBdkIsQ0FBaURTLFNBQWpELEMsRUFGekIsQ0FJTUYsU0FBQSxDQUFVRyxTQUFELEUsMkJBQ0xDLFNBQUEsQ0FBTVgsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBeUJVLFNBQXpCLEMsSUFDUkMsU0FBQSxHQUFRMUUsUyxDQUNSLE1BQU0sSUFBSXRJLEtBQUosQyx3QkFBQSxDQUFOLENBRUosSyxnQkFBQSxFLE9BQUEsR0FBc0JnTixTLEVBVDFCLENBV01ILFNBQUEsQ0FBWUksU0FBRCxFLDJCQUNQQyxTQUFBLENBQU1iLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQXlCWSxTQUF6QixDLElBQ1JDLFNBQUEsR0FBUTVFLFMsQ0FDUixNQUFNLElBQUl0SSxLQUFKLEMsZ0JBQUEsQ0FBTixDQUVKLEssZ0JBQUEsRSxnQkFBQSxHQUFzQixDQUFDa04sUyxDQUN2QixLLGdCQUFBLEUsS0FBQSxFQUFpQjFMLFNBQUEsQ0FBdUI2SyxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUF2QixDQUFpRCxLLFNBQUEsRSxnQkFBQSxDQUFqRCxDQUFqQixDLEVBakJKLENBbUJBQyxTQUFBLEUsRUF4RndCLEMsYUEwRjVCLEUsMkJBQ1VhLFNBQUEsQ0FBTyxJLENBQ2IsSyxnQkFBQSxFLGdCQUFBLEVBQWlCM0wsU0FBQSxDQUF1QjJMLFNBQUEsQyxnQkFBQSxFLGFBQUEsQ0FBdkIsQ0FBaUQsSyxTQUFBLEUsZ0JBQUEsQ0FBakQsQ0FBakIsQyxFQTVGd0IsQyxVQThGNUIsRSwyQkFDVUMsU0FBQSxDQUFPLEksQ0FDYkEsU0FBQSxDLGdCQUFBLEUsUUFBQSxHLEVBaEd3QixDQUFoQyxDLEVBN0tKLENBa1JNQyxTQUFBLENBQXdCLEksMkJBQ3BCQyxTQUFBLENBQVk3RyxDQUFBLEMsZ0JBQUEsQyxDQUNaOEcsU0FBQSxDQUFhRCxTQUFBLEMsZ0JBQUEsRyxDQUNiRSxTQUFBLENBQVVDLEdBQUEsQyxnQkFBQSxFLE1BQUEsRUFBZUYsU0FBZixDLElBQ1osQ0FBQ0MsUyxDQUNELE9BQU9sRixTQUFQLENBR0osTUFBTSxDQUFFOUYsUUFBQSxDQUFBa0wsU0FBRixDQUFZQyxZQUFBLENBQUFDLFNBQVosQ0FBMEJDLGNBQUEsQ0FBQUMsU0FBMUIsQ0FBMENDLGdCQUFBLENBQUFDLFNBQTFDLENBQTREQyxXQUFBLENBQUFDLFNBQTVELEVBQTRFVixTQUFsRixDQUNNVyxTQUFBLENBQVcsQyxVQUNiLENBQUFULFNBRGEsQyxjQUViLENBQUFFLFNBRmEsQyxnQkFHYixDQUFBRSxTQUhhLEMsa0JBSWIsQ0FBQUUsU0FKYSxDLGFBS2IsQ0FBQUUsU0FMYSxDQURqQixDLE9BU09DLFMsRUFuU1gsQ0FxU01DLFNBQUEsQ0FBK0IsSSxPQUMxQixDLGNBQ0gsQ0FBY0MsU0FEWCxDLEVBdFNYLENBMFNNQSxTQUFBLENBQXdCLEksMkJBQ3BCQyxTQUFBLENBQVk3SCxDQUFBLEMsZ0JBQUEsQyxDQUNaOEgsU0FBQSxDQUFhRCxTQUFBLEMsZ0JBQUEsRyxDQUNiRSxTQUFBLENBQWFuQixTQUFBLEUsSUFDZixDQUFDbUIsUyxRQUNNbEcsUyxPQUVKLEMsSUFDSCxDQUFJaUcsU0FERCxDLEVBalRYLENBaVVBZCxHQUFBLEMsZ0JBQUEsRSxjQUFBLEUsZ0JBQUEsQ0FBK0MsQyxVQUMzQyxDLGdCQUQyQyxDLE9BRTNDLEMsZ0JBRjJDLEMsT0FHM0MsQyxnQkFIMkMsQyxNQUkzQyxDLGdCQUoyQyxDLGNBSzNDLEMsZ0JBTDJDLEMsVUFNM0MsQ0FBVSxDLFFBQ04sQ0FBUSxDLE9BQUUsQyxHQUFGLENBREYsQyxRQUVOLENBQVEsQyxPQUFFLEMsR0FBRixDQUZGLEMsTUFJTixDQUFNLEMsT0FBRSxDLEVBQUYsQ0FKQSxDLFVBS04sQ0FBVSxDLE9BQUUsQyxFQUFGLEMsVUFBYSxDLElBQWIsQyxNQUE2QixDLGlCQUE3QixDQUxKLEMsUUFPTixDQUFRLEMsT0FBRSxDLEVBQUYsQyxVQUFhLEMsR0FBYixDQVBGLEMsaUJBUU4sQ0FBaUIsQyxPQUFFLEMsVUFBRixDLFVBQXFCLEMsR0FBckIsQ0FSWCxDLGlCQVNOLENBQWlCLEMsT0FBRSxDLEdBQUYsQyxVQUFnQixDLElBQWhCLENBVFgsQyxpQkFVTixDQUFpQixDLE9BQUUsQyxnQkFBRixDLFVBQW9CLEMsSUFBcEIsQ0FWWCxDLGVBV04sQ0FBZSxDLE9BQUUsQyxnRkFBRixDLFVBQW1FLEMsR0FBbkUsQ0FYVCxDLFlBWU4sQ0FBWSxDLE9BQUUsQyxpSEFBRixDLFVBQThGLEMsR0FBOUYsQ0FaTixDQU5pQyxDLFNBb0IzQyxDLEdBcEIyQyxDLE9BcUIzQyxFLGtDQUNXLEssTUFBQSxHLGtCQXRCZ0MsQyxZQXdCM0MsRSxrQ0FDVyxLLE1BQUEsRSxnQkFBQSxDLElBekJnQyxDLGVBMkIzQyxFLDJCQUNVZ0IsU0FBQSxDQUFPLEksQ0FDYnhFLFNBQUEsRSxDQUNBbUMsU0FBQSxFLENBQ0FxQyxTQUFBLEMsZ0JBQUEsRSxHQUZBLENBR0EsTUFBTUMsU0FBQSxDQUFpQmpJLENBQUEsQywyQkFBQSxDQUF2QixDQUNBaUksU0FBQSxDLFlBQUEsRUFBMEIsQyxhQUN0QixDQUFhLEMsUUFDVCxDLEdBRFMsQyxVQUVULEMsR0FGUyxDLFFBR1QsQyxHQUhTLEMsWUFJVCxDLEdBSlMsQyxjQUtULEMsSUFMUyxDLGVBTVQsQyxJQU5TLEMsVUFPVCxDLElBUFMsQyxNQVFULEMsSUFSUyxDQURTLEMsT0FXdEIsQyxHQVhzQixDQUExQixFQWFBLE1BQU1DLFNBQUEsQ0FBY2xJLENBQUEsQyxnQkFBQSxDQUFwQixDQUNBa0ksU0FBQSxDLGdCQUFBLEVBQXVCLEMsYUFDbkIsQ0FBYSxDLGVBQ1QsQyxHQURTLEMsV0FFVCxDLEdBRlMsQyxXQUdULEMsR0FIUyxDLFlBSVQsQyxHQUpTLEMsYUFLVCxDLElBTFMsQyxnQkFNVCxDLElBTlMsQ0FETSxDLE9BU25CLEMsSUFUbUIsQ0FBdkIsRUFXQSxNQUFNQyxTQUFBLENBQVVuSSxDQUFBLEMsZ0JBQUEsQ0FBaEIsQ0FDQW1JLFNBQUEsQyxnQkFBQSxFQUFvQjlNLE1BQUEsQyxRQUFBLEVBQWNBLE1BQUEsQyxnQkFBQSxFQUFjLEVBQWQsQ0FBa0JzTSxTQUFBLEVBQWxCLENBQWQsQ0FBaUUsQyxjQUFFLENBQWFTLFNBQWIsQyxrQ0FDeEVBLFNBQUEsQyxnQkFBQSxJLGdCQUFBLEVBQXFDQSxTQUFBLEMsZ0JBQUEsSSxVQURpQyxDQUFqRSxDQUFwQixFQUdBLE1BQU1DLFNBQUEsQ0FBcUIsQyxRQUN2QixDLGdCQUR1QixDLGlCQUV2QixDLEVBRnVCLEMsWUFHdkIsQ0FBWSxDLGdCQUFFLEMsR0FBRixDLE1BQXFCLEMsZ0JBQXJCLENBSFcsQyxhQUl2QixDQUFhLEMsTUFBRSxDLGdCQUFGLENBSlUsQyxXQUt2QixDLGdCQUx1QixDLGdCQU12QixDLGdCQU51QixDQUEzQixDQVFNQyxTQUFBLENBQW1CdEksQ0FBQSxDLGdCQUFBLENBUnpCLENBU0FzSSxTQUFBLEMsZ0JBQUEsRUFBNkJqTixNQUFBLEMsZ0JBQUEsRUFBY0EsTUFBQSxDLGdCQUFBLEVBQWMsRUFBZCxDQUFrQnNNLFNBQUEsRUFBbEIsQ0FBZCxDQUFpRSxDLFlBQUUsQ0FBWSxJQUFNVSxTQUFwQixDLGNBQzFGLENBQWFFLFNBQWIsQyxrQ0FDV0EsU0FBQSxDLGdCQUFBLEksa0JBRitFLEMsV0FHdkYsQyxJQUh1RixDQUFqRSxDQUE3QixDLEVBdkV1QyxDLFlBNEUzQyxFLEVBNUUyQyxDQUEvQyxDLEVBM3VCSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgY29uc3QgT3JnYW5pemVzUmVmTm9kZUlkID0gXCJucz0wO2k9MzVcIjtcbiAgICBjb25zdCBGb2xkZXJUeXBlID0gXCJucz0wO2k9NjFcIjtcbiAgICBjb25zdCBIYXNDb21wb25lbnRSZWZOb2RlSWQgPSBcIm5zPTA7aT00N1wiO1xuICAgIGNvbnN0IEhhc1Byb3BlcnR5UmVmTm9kZUlkID0gXCJucz0wO2k9NDZcIjtcbiAgICBjb25zdCBIYXNDaGlsZFJlZk5vZGVJZCA9IFwibnM9MDtpPTM0XCI7XG4gICAgY29uc3QgSGFzU3VidHlwZVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ1XCI7XG4gICAgY29uc3QgSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQgPSBcIm5zPTA7aT00MFwiO1xuXG4gICAgdmFyIEJyb3dzZURpcmVjdGlvbjtcbiAgICAoZnVuY3Rpb24gKEJyb3dzZURpcmVjdGlvbikge1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiRm9yd2FyZFwiXSA9IDBdID0gXCJGb3J3YXJkXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZlcnNlXCJdID0gMV0gPSBcIkludmVyc2VcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkJvdGhcIl0gPSAyXSA9IFwiQm90aFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52YWxpZFwiXSA9IDNdID0gXCJJbnZhbGlkXCI7XG4gICAgfSkoQnJvd3NlRGlyZWN0aW9uIHx8IChCcm93c2VEaXJlY3Rpb24gPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3M7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlVuc3BlY2lmaWVkXCJdID0gMF0gPSBcIlVuc3BlY2lmaWVkXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzcyB8fCAoTm9kZUNsYXNzID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzTWFzaztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzc01hc2spIHtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzc01hc2sgfHwgKE5vZGVDbGFzc01hc2sgPSB7fSkpO1xuICAgIGZ1bmN0aW9uIGNvZXJjZUZsYWdNYXNrVG9OdW1iZXIodHlwZSwgc3RyKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc3RyID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0ckFzTnVtID0gcGFyc2VJbnQoc3RyLCAxMCk7XG4gICAgICAgIGlmICghaXNOYU4oc3RyQXNOdW0pKSB7XG4gICAgICAgICAgICByZXR1cm4gc3RyQXNOdW07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmxhZ3MgPSBzdHIuc3BsaXQoL1xcfHw7fCwvKS5tYXAoKGEpID0+IGEudHJpbSgpKTtcbiAgICAgICAgbGV0IHJlc3VsdCA9IDA7XG4gICAgICAgIGZvciAoY29uc3QgZmxhZyBvZiBmbGFncykge1xuICAgICAgICAgICAgcmVzdWx0IHw9IHR5cGVbZmxhZ107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgZnVuY3Rpb24gY29lcmNlRmxhZ01hc2tUb1N0cmluZyh0eXBlLCB2YWx1ZSkge1xuICAgICAgICB2YWx1ZSA9IGNvZXJjZUZsYWdNYXNrVG9OdW1iZXIodHlwZSwgdmFsdWUpO1xuICAgICAgICBjb25zdCByID0gW107XG4gICAgICAgIGlmICghdHlwZSlcbiAgICAgICAgICAgIHJldHVybiByLmpvaW4oXCIgfCBcIik7XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgYml0TWFza10gb2YgT2JqZWN0LmVudHJpZXModHlwZSkpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICAgICAgICBpZiAoKHZhbHVlICYgYml0TWFzaykgPT09IGJpdE1hc2spIHtcbiAgICAgICAgICAgICAgICAgICAgci5wdXNoKGtleSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByLmpvaW4oXCIgfCBcIik7XG4gICAgfVxuICAgIHZhciBSZXN1bHRNYXNrO1xuICAgIChmdW5jdGlvbiAoUmVzdWx0TWFzaykge1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMV0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiSXNGb3J3YXJkXCJdID0gMl0gPSBcIklzRm9yd2FyZFwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJOb2RlQ2xhc3NcIl0gPSA0XSA9IFwiTm9kZUNsYXNzXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkJyb3dzZU5hbWVcIl0gPSA4XSA9IFwiQnJvd3NlTmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJEaXNwbGF5TmFtZVwiXSA9IDE2XSA9IFwiRGlzcGxheU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiVHlwZURlZmluaXRpb25cIl0gPSAzMl0gPSBcIlR5cGVEZWZpbml0aW9uXCI7XG4gICAgfSkoUmVzdWx0TWFzayB8fCAoUmVzdWx0TWFzayA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZ2FuaXplc1JlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNQcm9wZXJ0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNQcm9wZXJ0eVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ29tcG9uZW50UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NoaWxkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NoaWxkUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1N1YnR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzU3VidHlwZVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNUeXBlRGVmaW5pdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldEljb24gPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVmZXJlbmNlLm5vZGVDbGFzcykge1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBPcmdhbml6ZXNSZWZOb2RlSWQpIDtcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnR5cGVEZWZpbml0aW9uID09PSBGb2xkZXJUeXBlIHx8IHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IFwiaT02MVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtZm9sZGVyXCIsIGNvbG9yOiBcInJnYmEoNjEsIDYwLCA0LCAwLjUyNSlcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJTZWFHcmVlblwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzQ29tcG9uZW50UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiU3RlZWxCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzUHJvcGVydHlSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJEb2RnZXJCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiTWV0aG9kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1jb2dcIiwgY29sb3I6IFwiU2FuZHlCcm93blwiIH07XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0VHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtc2xpZGVyc1wiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJEYXRhVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtdGV4dC13aWR0aFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGljb246IFwiZmEtcXVlc3Rpb25cIiwgY29sb3I6IFwiZ3JleVwiIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGJyb3dzZSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkLCB0ZW1wbGF0ZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9icm93c2VgO1xuICAgICAgICBjb25zdCBicm93c2VEZXNjcmlwdGlvbiA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGVtcGxhdGUpLCB7IG5vZGVJZCwgcmVzdWx0TWFzazogNjMgfSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGJyb3dzZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXM6IFtdIH07XG4gICAgICAgIH1cbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJicm93c2UgZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB3YWxrQmFja3dhcmQgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIHsgbm9kZUlkLCByb290Tm9kZUlkLCBpc1R5cGUgfSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS93YWxrLWJhY2t3YXJkYDtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgICAgIHJvb3ROb2RlSWQsXG4gICAgICAgICAgICAgICAgaXNUeXBlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIHJldHVybiBqc29uLmJyb3dzZVBhdGg7XG4gICAgfSk7XG4gICAgY29uc3QgaW50ZXJuYWxWZXJpZnkgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sICRpbnB1dEVsZW1lbnQsICRpbmZvKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2NoZWNrTm9kZUlkYDtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgbm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChqc29uLm5vZGVBZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7bm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50ID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2Q7XG4gICAgICAgIGlmICghcmVmZXJlbmNlIHx8ICFyZWZlcmVuY2Uubm9kZUlkKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCB0aXRsZSA9IGAoJHtyZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCl9KSAkeygoX2MgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLm5hbWUpIHx8ICgoX2QgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC50ZXh0KSB8fCBcIlwifWA7XG4gICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpIGtleT1cIiR7cmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpfVwifT48c3BhbiBjbGFzcz1cInRyZWUtdGV4dFwiIHRpdGxlPSR7dGl0bGV9PjxpIGNsYXNzPVwiZmEgJHtpY29ufVwiIHN0eWxlPVwiY29sb3I6JHtjb2xvcn07XCI+PC9pPiAke3R9PC9zcGFuPjx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICRlbGVtZW50LmFkZENsYXNzKFwiZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInZhbHVlXCIsIG4pO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICB9O1xuICAgIGNvbnN0IGZpbmRFbGVtZW50ID0gKG5vZGVJZCwgJHRyZWUpID0+IHtcbiAgICAgICAgcmV0dXJuICR0cmVlLmZpbmQoYGxpW2tleT1cIiR7bm9kZUlkfVwiXWApO1xuICAgIH07XG4gICAgY29uc3Qgc2VsZWN0U2luZ2xlID0gKHRoYXQsICRsaSkgPT4ge1xuICAgICAgICB0aGF0LiR0cmVlLmZpbmQoXCJsaSA+IC50cmVlLXRleHRcIikucmVtb3ZlQ2xhc3MoXCJzZWxlY3RlZFwiKTtcbiAgICAgICAgLy8gY2xlYXIgYWxsIHNlbGVjdGVkIGl0ZW1zXG4gICAgICAgICRsaS5maW5kKFwiLnRyZWUtdGV4dDpmaXJzdFwiKS5hZGRDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgIH07XG4gICAgY29uc3QgYXV0b0V4cGFuZCA9ICh0aGF0LCBicm93c2VQYXRoLCAkdHJlZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIC8vIGV4cGFuZCB0aGUgdHJlZSB0byBzaG93IHRoZSBub2RlSWRcbiAgICAgICAgbGV0ICRjdXJyZW50ID0gJHRyZWUuY2hpbGRyZW4oXCI6Zmlyc3RcIik7XG4gICAgICAgIGJyb3dzZVBhdGgucmVsYXRpdmVQYXRoLmVsZW1lbnRzIHx8IFtdO1xuICAgICAgICBjb25zdCBub2RlSWRzID0gYnJvd3NlUGF0aC5ub2RlSWRzIHx8IFtdO1xuICAgICAgICBpZiAobm9kZUlkcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IG4gb2Ygbm9kZUlkcykge1xuICAgICAgICAgICAgaWYgKCRjdXJyZW50Lmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgIC8vIG5lZWQgdG8gZXhwYW5kIGFuZCBzZWxlY3QgdGhlIHJpZ2h0IGVsZW1lbnRcbiAgICAgICAgICAgICAgICB5aWVsZCBfZXhwYW5kTGkodGhhdCwgJGN1cnJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBmaW5kRWxlbWVudChuLCAkY3VycmVudCk7XG4gICAgICAgICAgICBpZiAoJGVsZW1lbnQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGN1cnJlbnQgPSAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBzZWxlY3RTaW5nbGUodGhhdCwgJGN1cnJlbnQpO1xuICAgICAgICBzY3JvbGxUb0xpKHRoYXQuJGRyb3Bkb3duLCAkY3VycmVudCk7XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gc2Nyb2xsVG9MaSgkY29udGFpbmVyLCAkdGFyZ2V0TGkpIHtcbiAgICAgICAgLy8gR2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgdGFyZ2V0IGl0ZW0gcmVsYXRpdmUgdG8gaXRzIGNvbnRhaW5lclxuICAgICAgICBjb25zdCBsaVBvcyA9ICR0YXJnZXRMaS5wb3NpdGlvbigpLnRvcDtcbiAgICAgICAgLy8gR2V0IHRoZSBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbiBvZiB0aGUgY29udGFpbmVyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclNjcm9sbFRvcCA9ICRjb250YWluZXIuc2Nyb2xsVG9wKCk7XG4gICAgICAgIGlmIChjb250YWluZXJTY3JvbGxUb3AgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBwb3NpdGlvbiB0byBzY3JvbGwgdG8gKGN1cnJlbnQgc2Nyb2xsICsgaXRlbSdzIHBvc2l0aW9uKVxuICAgICAgICAvLyBBZGp1c3QgdGhpcyBjYWxjdWxhdGlvbiBiYXNlZCBvbiB5b3VyIG5lZWRzXG4gICAgICAgIGNvbnN0IHNjcm9sbFRvID0gY29udGFpbmVyU2Nyb2xsVG9wICsgbGlQb3MgLSAkY29udGFpbmVyLmhlaWdodCgpIC8gMiArICR0YXJnZXRMaS5oZWlnaHQoKSAvIDI7XG4gICAgICAgIC8vIFNjcm9sbCB0aGUgY29udGFpbmVyIHRvIGVuc3VyZSB0aGUgaXRlbSBpcyB2aXNpYmxlXG4gICAgICAgICRjb250YWluZXIuYW5pbWF0ZSh7XG4gICAgICAgICAgICBzY3JvbGxUb3A6IHNjcm9sbFRvLFxuICAgICAgICB9LCA1MDApOyAvLyBBZGp1c3QgdGhlIGR1cmF0aW9uICg1MDBtcykgYXMgbmVlZGVkXG4gICAgfVxuICAgIGNvbnN0IHJlYWNoU2VsZWN0aW9uID0gKHRoYXQsIHBhcmVudE5vZGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBub2RlSWQgPSB0aGF0LiRpbnB1dC52YWwoKTtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIHJvb3ROb2RlSWQ6IHBhcmVudE5vZGUubm9kZUlkLFxuICAgICAgICAgICAgaXNUeXBlOiB0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmIHx8IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgIGNvbnN0IGJyb3dzZVBhdGggPSB5aWVsZCB3YWxrQmFja3dhcmQoZGF0YSwgb3B0aW9ucyk7XG4gICAgICAgIGlmICghYnJvd3NlUGF0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHlpZWxkIGF1dG9FeHBhbmQodGhhdCwgYnJvd3NlUGF0aCwgdGhhdC4kdHJlZSk7XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gX2ZldGNoRGF0YUZvck5vZGUodGhhdCwgJG5vZGUsIGZldGNoRnVuYywgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImxvYWRpbmdcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgbG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgICAgICAkbm9kZS5hcHBlbmQoJzxkaXYgY2xhc3M9XCJzcGlubmVyXCI+PC9kaXY+Jyk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHJlZmVyZW5jZXMgfSA9IHlpZWxkIGZldGNoRnVuYygkbm9kZSwgZGF0YSk7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCByZWZlcmVuY2Ugb2YgcmVmZXJlbmNlcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmZpbHRlciAmJiAhdGhhdC5vcHRpb25zLmZpbHRlcihyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKGA8bGk+ZXJyb3IgJHtlcnIubWVzc2FnZX08L2xpPmApO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyXCIsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkbm9kZS5maW5kKFwiLnNwaW5uZXJcIikucmVtb3ZlKCk7XG4gICAgICAgICAgICAkbm9kZS5yZW1vdmVDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYWtlQ29ubmVjdGlvbih0aGF0KSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgICBmdW5jdGlvbiBfZXhwYW5kTGkodGhhdCwgJGxpKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgICAgICBjb25zdCBmID0gIXRoYXQub3B0aW9ucy5pc1R5cGVSZWYgPyBmZXRjaENoaWxkcmVuIDogZmV0Y2hTdWJ0eXBlcztcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgeWllbGQgX2ZldGNoRGF0YUZvck5vZGUodGhhdCwgJGxpLCBmLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBbIFRlbXBlcmF0dXJlICBdXG4gICAgICAgICAqICAgKCB0b29sdGlwIDogKC9PYmplY3RzL015U2Vuc29yKSAobnM9MTtzPVRlbXBlcmF0dXJlKSlcbiAgICAgICAgICogWyArIFtGb2xkZXJdIE9iamVjdHNdXG4gICAgICAgICAqIFsgICAgIFtPYmplY3RdIE15U2Vuc29yXVxuICAgICAgICAgKiBbICAgICAoICkgW1ZhcmlhYmxlXSBUZW1wZXJhdHVyZV1cbiAgICAgICAgICovXG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUubm9kZUJyb3dzZXJcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZTogKCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgbm9kZUNsYXNzOiBcIk9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBub2RlSWQ6IFwibnM9MDtpPTg1XCIsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIHR5cGVEZWZpbml0aW9uOiBGb2xkZXJUeXBlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgICAgIGlzVHlwZVJlZjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzb2x2ZVBhcmVudE5vZGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhhdC5fX3BhcmVudE5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0eXBlb2YgdGhhdC5vcHRpb25zLnBhcmVudE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlLmNhbGwodGhhdCkgOiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlc2MgPSB5aWVsZCBhO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX19wYXJlbnROb2RlID0gZGVzYztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX19wYXJlbnROb2RlID0gYTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhhdC5fX3BhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzZXQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIC8vIGFsc28gcmVzZXQgcGFyZW50IG5vZGVcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHRoYXQ7XG4gICAgICAgICAgICAgICAgICAgIGEuX19wYXJlbnROb2RlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSB5aWVsZCB0aGlzLnJlc29sdmVQYXJlbnROb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5jdXJyZW50UGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2ZXJpZnkoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgICAgICAgICBpbnRlcm5hbFZlcmlmeShkYXRhLCB0aGF0LiRpbnB1dCwgdGhhdC4kaW5mbyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21ibyA9ICQoXCI8ZGl2Lz5cIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJzdGVyZml2ZS1jb21iby1ib3hcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZWVkVG9SZWFjaFNlbGVjdGlvbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0cmVlIHdpZGdldCBpcyBnb2luZyB0byBiZWNvbWUgdmlzaWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudE5vZGUgPSB5aWVsZCB0aGF0LnJlc29sdmVQYXJlbnROb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudE5vZGUgIT09IHRoYXQuY3VycmVudFBhcmVudCB8fCAoKF9hID0gdGhhdC5jdXJyZW50UGFyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eubm9kZUlkKSAhPT0gcGFyZW50Tm9kZS5ub2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgdGhhdC5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWVkVG9SZWFjaFNlbGVjdGlvbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRUb1JlYWNoU2VsZWN0aW9uICYmICh5aWVsZCByZWFjaFNlbGVjdGlvbih0aGF0LCBwYXJlbnROb2RlKSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1mbGFza1wiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR2ZXJpZnlCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0bi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52ZXJpZnkoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIiwgXCJlbnRlciBhIG5vZGVJZCBvciBhIGJyb3dzZVBhdGggXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvID0gJChgPGRpdiBjbGFzcz1cImluZm8tdGV4dFwiPjwvZGl2PmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcInN0ZXJmaXZlLWRyb3Bkb3duXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5mbyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlID0gJChgPHVsIGNsYXNzPVwic3RlcmZpdmUtdHJlZVwiPjwvdWw+YCkuYXBwZW5kVG8odGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBpc09uTGVmdFNpemUgPSAoJGxpLCBldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVXaWR0aCA9IDIwOyAvLyBTZXQgd2lkdGggb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlSGVpZ2h0ID0gMjA7IC8vIFNldCBoZWlnaHQgb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFBvcyA9ICRsaS5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5wYWdlWCA+PSBlbGVtZW50UG9zLmxlZnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVggPD0gZWxlbWVudFBvcy5sZWZ0ICsgYmVmb3JlV2lkdGggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPj0gZWxlbWVudFBvcy50b3AgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPD0gZWxlbWVudFBvcy50b3AgKyBiZWZvcmVIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvZ2dsZUV4cGFuc2lvbiA9ICgkbGkpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9leHBhbmRMaSh0aGF0LCAkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUb2dnbGUgaXRzIGV4cGFuZGVkL2NvbGxhcHNlZCBzdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiZGJsY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPbkxlZnRTaXplKCRsaSwgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVFeHBhbnNpb24oJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gJGxpLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9ICRsaS5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUgJiYgIXRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gYFske2Rpc3BsYXlOYW1lfV0oJHt2YWx1ZX0pYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnZhbChpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT25MZWZ0U2l6ZSgkbGksIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRXhwYW5zaW9uKCRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0U2luZ2xlKHRoYXQsICRsaSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSB0aGUgcGFnZSB3aWxsIGhpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QodGhhdC4kY29tYm8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgZGVjbGFyZUZsYWdFZGl0b3JXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUuZmxhZ0VkaXRvclwiLCB7XG4gICAgICAgICAgICAvLyBkZWZhdWx0IG9wdGlvbnNcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBuYW1lc1RvQml0czoge1xuICAgICAgICAgICAgICAgIC8vIEFkZCBtb3JlIG5hbWVzIGFuZCBiaXQgdmFsdWVzXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIC8vIEN1c3RvbSBEcm9wZG93blxuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0ID0gdGhpcy5lbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvID0gJChcIjxkaXYvPlwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcInN0ZXJmaXZlLWNvbWJvLWJveFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRbMF0ucGFyZW50RWxlbWVudC5yZXBsYWNlQ2hpbGQodGhhdC4kY29tYm9bMF0sIHRoaXMuZWxlbWVudFswXSk7XG4gICAgICAgICAgICAgICAgLy8gdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgLy8gdGhlIHRvZ2dsZSB0cmVlIGJ1dHRvbjpcbiAgICAgICAgICAgICAgICAvLyAgIHdoZW4gd2UgY2xpY2sgaXQgdGhlIGRyb3AgZG93biBwYW5lbCBpcyBkaXNwbGF5ZWRcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLWV5ZVwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQuJHNlbGVjdC5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlRnJvbUlucHV0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5maW5kKFwiLmN1c3RvbS1vcHRpb25cIikuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG9wdGlvbk5hbWUgPSAkKHRoaXMpLnRleHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBiaXRWYWx1ZSA9IHRoYXQub3B0aW9ucy5uYW1lc1RvQml0c1tvcHRpb25OYW1lXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYml0VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbmtub3duIGJpdCBuYW1lXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHRoYXQub3B0aW9ucy52YWx1ZSAmIGJpdFZhbHVlKSA9PT0gYml0VmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJCh0aGlzKS5yZW1vdmVDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSBoaWRkZW4gc2VsZWN0IGVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQudXBkYXRlVmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIC8vIHRoZSBkcm9wIGRvd24gcGFuZWxcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoJzxkaXYgY2xhc3M9XCJjdXN0b20tc2VsZWN0XCI+PC9kaXY+JykuaGlkZSgpLmluc2VydEFmdGVyKHRoaXMuZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgJC5lYWNoKHRoaXMub3B0aW9ucy5uYW1lc1RvQml0cywgZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJG9wdGlvbiA9ICQoJzxkaXYgY2xhc3M9XCJjdXN0b20tb3B0aW9uXCIgZGF0YS12YWx1ZT1cIicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSArXG4gICAgICAgICAgICAgICAgICAgICAgICAnXCI+JyArXG4gICAgICAgICAgICAgICAgICAgICAgICAnPHNwYW4gY2xhc3M9XCJjdXN0b20tY2hlY2tib3hcIj48L3NwYW4+JyArXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lICtcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiPC9kaXY+XCIpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5hcHBlbmQoJG9wdGlvbik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8gd2hlbiBhIG9wdGlvbnMgaW4gdGhlIGRyb3AgZG93biBwYW5lbCBpcyBjbGlja2VkLFxuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLm9uKFwiY2xpY2tcIiwgXCIuY3VzdG9tLW9wdGlvblwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICQodGhpcykudG9nZ2xlQ2xhc3MoXCJzZWxlY3RlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAkKHRoaXMpLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCQodGhpcykuaGFzQ2xhc3MoXCJzZWxlY3RlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0Qml0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2V0Qml0KHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGF0LnVwZGF0ZVZhbHVlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVGcm9tSW5wdXQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5lbGVtZW50LnZhbCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0Lm9wdGlvbnMudmFsdWUgPSBjb2VyY2VGbGFnTWFza1RvTnVtYmVyKHRoYXQub3B0aW9ucy5uYW1lc1RvQml0cywgdmFsdWUpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3Qgc2V0Qml0ID0gKGJpdE5hbWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYml0ID0gdGhhdC5vcHRpb25zLm5hbWVzVG9CaXRzW2JpdE5hbWVdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYml0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVua25vd24gYml0IG5hbWVcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLnZhbHVlIHw9IGJpdDtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHVuc2V0Qml0ID0gKGJpdE5hbWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYml0ID0gdGhhdC5vcHRpb25zLm5hbWVzVG9CaXRzW2JpdE5hbWVdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYml0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVua25vd24gYml0IG5hbWVcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vcHRpb25zLnZhbHVlICY9IH5iaXQ7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC52YWwoY29lcmNlRmxhZ01hc2tUb1N0cmluZyh0aGF0Lm9wdGlvbnMubmFtZXNUb0JpdHMsIHRoaXMub3B0aW9ucy52YWx1ZSkpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdXBkYXRlRnJvbUlucHV0KCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXBkYXRlVmFsdWUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnZhbChjb2VyY2VGbGFnTWFza1RvU3RyaW5nKHRoYXQub3B0aW9ucy5uYW1lc1RvQml0cywgdGhpcy5vcHRpb25zLnZhbHVlKSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2Rlc3Ryb3koKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24ucmVtb3ZlKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IHJlZE5vZGUgPSBSRUQubm9kZXMubm9kZShlbmRwb2ludElkKTtcbiAgICAgICAgaWYgKCFyZWROb2RlKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgLy8gY29uc3QgY3JlZGVudGlhbHMgPSBSRUQuKGVuZHBvaW50SWQpO1xuICAgICAgICAvLyB3ZSBuZWVkIHRvIHNhbml0aXplIGFuZCBleHRyYWN0IHRoZSBlbmRwb2ludCBhdHRyaWJ1dGVzIG9ubHkgKCBub3QgdGhlIG5vZGUtcmVkIHN0dWZmKVxuICAgICAgICBjb25zdCB7IGVuZHBvaW50LCBzZWN1cml0eU1vZGUsIHNlY3VyaXR5UG9saWN5LCB1c2VySWRlbnRpdHlUeXBlLCBjcmVkZW50aWFscyB9ID0gcmVkTm9kZTtcbiAgICAgICAgY29uc3QgcmV0VmFsdWUgPSB7XG4gICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzLFxuICAgICAgICB9O1xuICAgICAgICAvLyB4eCBjb25zb2xlLmxvZyhcInh4eFwiLCByZXRWYWx1ZSk7XG4gICAgICAgIHJldHVybiByZXRWYWx1ZTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IGdldEVuZHBvaW50UGFyYW1ldGVycyxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVycyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCBlbmRwb2ludE5yID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgIGlmICghZW5kcG9pbnROcikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGVuZHBvaW50SWQsXG4gICAgICAgICAgICAvLyBlbmRwb2ludDogZW5kcG9pbnROci5lbmRwb2ludCxcbiAgICAgICAgICAgIC8vIHNlY3VyaXR5TW9kZTogZW5kcG9pbnROci5zZWN1cml0eU1vZGUsXG4gICAgICAgICAgICAvLyBzZWN1cml0eVBvbGljeTogZW5kcG9pbnROci5zZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyB1c2VySWRlbnRpdHlUeXBlOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICAvLyBjcmVkZW50aWFsOiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIHVzZXJOYW1lOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlck5hbWUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAvLyBwYXNzd29yZDogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlID09PSBcIlVzZXJOYW1lXCIgPyBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnBhc3N3b3JkIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgLy8gdXNlckNlcnRpZmljYXRlOiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJDZXJ0aWZpY2F0ZSxcbiAgICAgICAgICAgIC8vIHVzZXJQcml2YXRla2V5OiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJQcml2YXRla2V5LFxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBSRUQubm9kZXMucmVnaXN0ZXJUeXBlKFwiT3BjVWEtQ2xpZW50Mi1Ccm93c2VcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJvcGN1YVwiLFxuICAgICAgICBjb2xvcjogXCIjQzBERUVEXCIsXG4gICAgICAgIGFsaWduOiBcInJpZ2h0XCIsXG4gICAgICAgIGljb246IFwiLi4vLi4vaWNvbnMvb3BjdWFub2RlTG9nby5wbmdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcImJyb3dzZVwiLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgaW5wdXRzOiB7IHZhbHVlOiAxIH0sXG4gICAgICAgICAgICBvdXRwdXQ6IHsgdmFsdWU6IDQgfSxcbiAgICAgICAgICAgIC8vIENvbW1vblxuICAgICAgICAgICAgbmFtZTogeyB2YWx1ZTogXCJcIiB9LFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlLCB0eXBlOiBcIk9wY1VhLUVuZHBvaW50MlwiIH0sXG4gICAgICAgICAgICAvLyBmb3IgYWN0aW9uIHJlYWRcbiAgICAgICAgICAgIG5vZGVJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHsgdmFsdWU6IFwiSGFzQ2hpbGRcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHsgdmFsdWU6IGZhbHNlLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiB7IHZhbHVlOiBcIkZvcndhcmRcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIG5vZGVDbGFzc01hc2s6IHsgdmFsdWU6IFwiVmFyaWFibGUgfCBPYmplY3QgfCBNZXRob2QgfCBPYmplY3RUeXBlIHwgVmFyaWFibGVUeXBlXCIsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgcmVzdWx0TWFzazogeyB2YWx1ZTogXCJSZWZlcmVuY2VUeXBlIHwgQnJvd3NlTmFtZSB8IFR5cGVEZWZpbml0aW9uIHwgRGlzcGxheU5hbWUgfCBOb2RlQ2xhc3MgfCBJc0ZvcndhcmRcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG91dHB1dHM6IDEsXG4gICAgICAgIGxhYmVsKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSB8fCBcIk9QQ1VBIEJyb3dzZVwiO1xuICAgICAgICB9LFxuICAgICAgICBsYWJlbFN0eWxlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSA/IFwibm9kZV9sYWJlbF9pdGFsaWNcIiA6IFwiXCI7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHByZXBhcmUoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcztcbiAgICAgICAgICAgIGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCgpO1xuICAgICAgICAgICAgZGVjbGFyZUZsYWdFZGl0b3JXaWRnZXQoKTtcbiAgICAgICAgICAgIG5vZGUuaW5wdXRzID0gMTtcbiAgICAgICAgICAgIGNvbnN0ICRub2RlQ2xhc3NNYXNrID0gJChcIiNub2RlLWlucHV0LW5vZGVDbGFzc01hc2tcIik7XG4gICAgICAgICAgICAkbm9kZUNsYXNzTWFzay5mbGFnRWRpdG9yKHtcbiAgICAgICAgICAgICAgICBuYW1lc1RvQml0czoge1xuICAgICAgICAgICAgICAgICAgICBPYmplY3Q6IDEsXG4gICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlOiAyLFxuICAgICAgICAgICAgICAgICAgICBNZXRob2Q6IDQsXG4gICAgICAgICAgICAgICAgICAgIE9iamVjdFR5cGU6IDgsXG4gICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlVHlwZTogMTYsXG4gICAgICAgICAgICAgICAgICAgIFJlZmVyZW5jZVR5cGU6IDMyLFxuICAgICAgICAgICAgICAgICAgICBEYXRhVHlwZTogNjQsXG4gICAgICAgICAgICAgICAgICAgIFZpZXc6IDEyOCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHZhbHVlOiAwLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCAkcmVzdWx0TWFzayA9ICQoXCIjbm9kZS1pbnB1dC1yZXN1bHRNYXNrXCIpO1xuICAgICAgICAgICAgJHJlc3VsdE1hc2suZmxhZ0VkaXRvcih7XG4gICAgICAgICAgICAgICAgbmFtZXNUb0JpdHM6IHtcbiAgICAgICAgICAgICAgICAgICAgUmVmZXJlbmNlVHlwZTogMSxcbiAgICAgICAgICAgICAgICAgICAgSXNGb3J3YXJkOiAyLFxuICAgICAgICAgICAgICAgICAgICBOb2RlQ2xhc3M6IDQsXG4gICAgICAgICAgICAgICAgICAgIEJyb3dzZU5hbWU6IDgsXG4gICAgICAgICAgICAgICAgICAgIERpc3BsYXlOYW1lOiAxNixcbiAgICAgICAgICAgICAgICAgICAgVHlwZURlZmluaXRpb246IDMyLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdmFsdWU6IDYzLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCAkbm9kZUlkID0gJChcIiNub2RlLWlucHV0LW5vZGVJZFwiKTtcbiAgICAgICAgICAgICRub2RlSWQubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IGlzU2VsZWN0YWJsZShub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIlZhcmlhYmxlXCIgfHwgbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiO1xuICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlc05vZGVEZXNjID0ge1xuICAgICAgICAgICAgICAgIG5vZGVJZDogXCJpPTMxXCIsXG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiBcIlwiLFxuICAgICAgICAgICAgICAgIGJyb3dzZU5hbWU6IHsgbmFtZXNwYWNlSW5kZXg6IDAsIG5hbWU6IFwiUmVmZXJlbmNlc1wiIH0sXG4gICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IHsgdGV4dDogXCJSZWZlcmVuY2VzXCIgfSxcbiAgICAgICAgICAgICAgICBub2RlQ2xhc3M6IFwiUmVmZXJlbmNlVHlwZVwiLFxuICAgICAgICAgICAgICAgIHR5cGVEZWZpbml0aW9uOiBcImk9MzFcIixcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCAkcmVmZXJlbmNlVHlwZUlkID0gJChcIiNub2RlLWlucHV0LXJlZmVyZW5jZVR5cGVJZFwiKTtcbiAgICAgICAgICAgICRyZWZlcmVuY2VUeXBlSWQubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IHBhcmVudE5vZGU6ICgpID0+IHJlZmVyZW5jZXNOb2RlRGVzYywgLy8gUmVmZXJlbmNlcyxcbiAgICAgICAgICAgICAgICBpc1NlbGVjdGFibGUobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgICAgICAgICAgfSwgaXNUeXBlUmVmOiB0cnVlIH0pKTtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0c2F2ZSgpIHsgfSxcbiAgICB9KTtcblxufSkoKTsiXX0=
|
9
9
|
</script>
|
10
10
|
<script type="text/x-red" data-template-name="OpcUa-Client2-Browse">
|
11
11
|
<style>
|