@opcua/for-node-red 2.5.3 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,8 +4,8 @@
4
4
  </style>
5
5
 
6
6
  <script type="text/javascript">
7
- (function(_0x43fd0b,_0x449285){const _0x458c59=_0x1824,_0x8911d0=_0x43fd0b();while(!![]){try{const _0x29efce=-parseInt(_0x458c59(0x142))/0x1+-parseInt(_0x458c59(0xed))/0x2+-parseInt(_0x458c59(0x111))/0x3+-parseInt(_0x458c59(0xc2))/0x4*(parseInt(_0x458c59(0xd3))/0x5)+-parseInt(_0x458c59(0xe0))/0x6+-parseInt(_0x458c59(0x9f))/0x7+parseInt(_0x458c59(0xd9))/0x8;if(_0x29efce===_0x449285)break;else _0x8911d0['push'](_0x8911d0['shift']());}catch(_0x315806){_0x8911d0['push'](_0x8911d0['shift']());}}}(_0x2f0e,0x6a204),(function(){'use strict';const _0x3ecf62=_0x1824;function _0xdb1cf3(_0x4170a5,_0x3ec307,_0x52f6e2,_0x42a5b8){function _0x3663df(_0x4837a6){return _0x4837a6 instanceof _0x52f6e2?_0x4837a6:new _0x52f6e2(function(_0x17dae2){_0x17dae2(_0x4837a6);});}return new(_0x52f6e2||(_0x52f6e2=Promise))(function(_0x389dac,_0xad03f3){const _0x3c096a=_0x1824;function _0x24263b(_0x4989de){const _0x3d6bc2=_0x1824;try{_0x2c54e5(_0x42a5b8[_0x3d6bc2(0xea)](_0x4989de));}catch(_0x4f8248){_0xad03f3(_0x4f8248);}}function _0x351071(_0x3bfcfd){const _0x446450=_0x1824;try{_0x2c54e5(_0x42a5b8[_0x446450(0x133)](_0x3bfcfd));}catch(_0x38108e){_0xad03f3(_0x38108e);}}function _0x2c54e5(_0x6fb2f0){const _0x5a8224=_0x1824;_0x6fb2f0['done']?_0x389dac(_0x6fb2f0['value']):_0x3663df(_0x6fb2f0[_0x5a8224(0x8e)])['then'](_0x24263b,_0x351071);}_0x2c54e5((_0x42a5b8=_0x42a5b8[_0x3c096a(0xdb)](_0x4170a5,_0x3ec307||[]))[_0x3c096a(0xea)]());});}typeof SuppressedError===_0x3ecf62(0x147)?SuppressedError:function(_0x4ab33c,_0x26f003,_0x2779e4){const _0xc65ccc=_0x3ecf62;var _0x199fd0=new Error(_0x2779e4);return _0x199fd0['name']='SuppressedError',_0x199fd0[_0xc65ccc(0xcb)]=_0x4ab33c,_0x199fd0[_0xc65ccc(0xfe)]=_0x26f003,_0x199fd0;};const _0x3c2531='ns=0;i=35',_0x14505e='ns=0;i=61',_0x3cd7a8=_0x3ecf62(0x110),_0x13d94b='ns=0;i=46',_0x112093=_0x3ecf62(0xcd),_0x4a2f8='ns=0;i=45',_0xb8041c=_0x3ecf62(0xe7);var _0x50f41a;(function(_0x3f2e1a){const _0x54f613=_0x3ecf62;_0x3f2e1a[_0x3f2e1a[_0x54f613(0xd5)]=0x0]=_0x54f613(0xd5),_0x3f2e1a[_0x3f2e1a[_0x54f613(0x144)]=0x1]=_0x54f613(0x144),_0x3f2e1a[_0x3f2e1a[_0x54f613(0x117)]=0x2]=_0x54f613(0x117),_0x3f2e1a[_0x3f2e1a['Invalid']=0x3]=_0x54f613(0x145);}(_0x50f41a||(_0x50f41a={})));var _0xa41a14;(function(_0x44ddde){const _0x1ba006=_0x3ecf62;_0x44ddde[_0x44ddde[_0x1ba006(0xe1)]=0x0]=_0x1ba006(0xe1),_0x44ddde[_0x44ddde[_0x1ba006(0xb2)]=0x1]=_0x1ba006(0xb2),_0x44ddde[_0x44ddde['Variable']=0x2]='Variable',_0x44ddde[_0x44ddde[_0x1ba006(0x11c)]=0x4]='Method',_0x44ddde[_0x44ddde[_0x1ba006(0x156)]=0x8]=_0x1ba006(0x156),_0x44ddde[_0x44ddde[_0x1ba006(0x11f)]=0x10]=_0x1ba006(0x11f),_0x44ddde[_0x44ddde['ReferenceType']=0x20]=_0x1ba006(0x12b),_0x44ddde[_0x44ddde['DataType']=0x40]=_0x1ba006(0x9e),_0x44ddde[_0x44ddde[_0x1ba006(0xe2)]=0x80]=_0x1ba006(0xe2);}(_0xa41a14||(_0xa41a14={})));var _0x3a1efb;(function(_0xe15376){const _0x59d81f=_0x3ecf62;_0xe15376[_0xe15376[_0x59d81f(0xb2)]=0x1]=_0x59d81f(0xb2),_0xe15376[_0xe15376[_0x59d81f(0x126)]=0x2]='Variable',_0xe15376[_0xe15376[_0x59d81f(0x11c)]=0x4]=_0x59d81f(0x11c),_0xe15376[_0xe15376[_0x59d81f(0x156)]=0x8]=_0x59d81f(0x156),_0xe15376[_0xe15376['VariableType']=0x10]=_0x59d81f(0x11f),_0xe15376[_0xe15376[_0x59d81f(0x12b)]=0x20]=_0x59d81f(0x12b),_0xe15376[_0xe15376[_0x59d81f(0x9e)]=0x40]=_0x59d81f(0x9e),_0xe15376[_0xe15376[_0x59d81f(0xe2)]=0x80]=_0x59d81f(0xe2);}(_0x3a1efb||(_0x3a1efb={})));var _0x4abb6a;(function(_0x411cf5){const _0x74ca69=_0x3ecf62;_0x411cf5[_0x411cf5[_0x74ca69(0x12b)]=0x1]=_0x74ca69(0x12b),_0x411cf5[_0x411cf5[_0x74ca69(0x11e)]=0x2]=_0x74ca69(0x11e),_0x411cf5[_0x411cf5[_0x74ca69(0xc1)]=0x4]=_0x74ca69(0xc1),_0x411cf5[_0x411cf5[_0x74ca69(0x101)]=0x8]='BrowseName',_0x411cf5[_0x411cf5[_0x74ca69(0xf8)]=0x10]=_0x74ca69(0xf8),_0x411cf5[_0x411cf5[_0x74ca69(0x14b)]=0x20]=_0x74ca69(0x14b);}(_0x4abb6a||(_0x4abb6a={})));function _0x3185fa(_0x491c00){const _0x252906=_0x3ecf62;switch(_0x491c00){case _0x252906(0xdf):return _0x3c2531;case _0x252906(0x137):return _0x13d94b;case _0x252906(0x9a):return _0x3cd7a8;case _0x252906(0x87):return _0x112093;case _0x252906(0x106):return _0x4a2f8;case _0x252906(0x94):return _0xb8041c;}}const _0x4d730b=_0x4140aa=>{const _0x29ebf9=_0x3ecf62;switch(_0x4140aa[_0x29ebf9(0xb4)]){case _0x29ebf9(0xb2):if(_0x4140aa['referenceTypeId']===_0x3c2531);if(_0x4140aa['typeDefinition']===_0x14505e||_0x4140aa['referenceTypeId']===_0x29ebf9(0xff))return{'icon':_0x29ebf9(0x116),'color':_0x29ebf9(0x12d)};return{'icon':_0x29ebf9(0xdd),'color':_0x29ebf9(0x10d)};case _0x29ebf9(0x126):if(_0x4140aa[_0x29ebf9(0x120)]===_0x3cd7a8)return{'icon':_0x29ebf9(0x135),'color':'SteelBlue'};else return _0x4140aa[_0x29ebf9(0x120)]===_0x13d94b?{'icon':_0x29ebf9(0x135),'color':_0x29ebf9(0x11a)}:{'icon':_0x29ebf9(0x135),'color':_0x29ebf9(0x12c)};case _0x29ebf9(0x11c):return{'icon':_0x29ebf9(0x105),'color':_0x29ebf9(0x12e)};case _0x29ebf9(0x156):return{'icon':_0x29ebf9(0xdd),'color':_0x29ebf9(0x9c)};case _0x29ebf9(0x11f):return{'icon':_0x29ebf9(0x8d),'color':_0x29ebf9(0x9c)};}return{'icon':_0x29ebf9(0x115),'color':'grey'};},_0x417704=({endpointNode:_0x26ed9a,endpoint:_0x3fa60c,baseUrl:_0x245a8f},_0x3d5999,_0x46f244)=>_0xdb1cf3(void 0x0,void 0x0,void 0x0,function*(){const _0xbe0a95=_0x3ecf62,_0x25c073=_0x245a8f+_0xbe0a95(0x14a),_0x334f5f=_0x25c073+_0xbe0a95(0xb7),_0x14c12f=Object[_0xbe0a95(0xaf)](Object[_0xbe0a95(0xaf)]({},_0x46f244),{'nodeId':_0x3d5999,'resultMask':0x3f}),_0x7a92a0=yield fetch(_0x334f5f,{'method':_0xbe0a95(0xd8),'body':JSON[_0xbe0a95(0xb9)]({'endpointNode':_0x26ed9a,'endpoint':_0x3fa60c,'browseDescription':_0x14c12f}),'headers':{'Content-Type':_0xbe0a95(0x108)}});if(_0x7a92a0[_0xbe0a95(0xb8)]!==0xc8)return console['log'](_0xbe0a95(0xab),_0x7a92a0[_0xbe0a95(0xb8)],_0x7a92a0['statusText']),{'references':[]};console[_0xbe0a95(0x132)](_0xbe0a95(0xc8),_0x7a92a0[_0xbe0a95(0xb8)],_0x7a92a0[_0xbe0a95(0xfc)]);const _0x2e77a6=yield _0x7a92a0[_0xbe0a95(0x141)](),_0x424d8a=_0x2e77a6[_0xbe0a95(0x109)][_0xbe0a95(0xb0)]||[];return{'references':_0x424d8a};}),_0x1c6f65={'referenceTypeId':_0x3185fa('HasChild'),'includeSubtypes':!![],'browseDirection':_0x50f41a[_0x3ecf62(0xd5)],'nodeClassMask':_0xa41a14[_0x3ecf62(0x126)]|_0xa41a14[_0x3ecf62(0xb2)]|_0xa41a14[_0x3ecf62(0x11c)],'resultMask':0x3f},_0x4a939f={'referenceTypeId':_0x3185fa(_0x3ecf62(0xdf)),'includeSubtypes':!![],'browseDirection':_0x50f41a[_0x3ecf62(0xd5)],'nodeClassMask':_0xa41a14[_0x3ecf62(0x126)]|_0xa41a14['Object']|_0xa41a14[_0x3ecf62(0x11c)],'resultMask':0x3f},_0x5ac9b7=({endpointNode:_0x3a6a58,endpoint:_0x3262c0,baseUrl:_0x14c5e7},_0x533ebe,_0x14dd65)=>_0xdb1cf3(void 0x0,void 0x0,void 0x0,function*(){const _0x35666c=_0x3ecf62,_0x4f1143=_0x14c5e7+'/opcua-endpoint2',_0x5b2b5f=_0x533ebe['val'](),_0x27bee6=yield fetch(_0x4f1143+_0x35666c(0xee),{'method':'POST','body':JSON[_0x35666c(0xb9)]({'endpointNode':_0x3a6a58,'endpoint':_0x3262c0,'nodeId':_0x5b2b5f}),'headers':{'Content-Type':'application/json'}}),_0x38b868=(_0x5dcaeb,_0x18c956)=>{const _0x19005c=_0x35666c;_0x14dd65[_0x19005c(0x154)](_0x5dcaeb)[_0x19005c(0x149)](_0x19005c(0xfb))[_0x19005c(0x149)](_0x18c956),_0x14dd65[_0x19005c(0xba)](),setTimeout(()=>{_0x14dd65['removeClass'](_0x18c956),_0x14dd65['hide']();},0xbb8);},_0x4d3932=yield _0x27bee6['json']();_0x27bee6['status']!==0xc8?_0x38b868(_0x35666c(0x146)+_0x5b2b5f,_0x35666c(0xe6)):_0x4d3932[_0x35666c(0xf7)]['match'](/Good/)?(_0x533ebe[_0x35666c(0x121)](_0x4d3932['nodeAddressString']),_0x533ebe[_0x35666c(0x107)]('change'),_0x38b868(_0x35666c(0x113),'ok')):(_0x533ebe[_0x35666c(0x121)](''+_0x5b2b5f),_0x38b868(_0x4d3932[_0x35666c(0xf7)]+'\x20'+_0x27bee6[_0x35666c(0xfc)],'failure'));});function _0x4bd546(_0x383e45,_0x4609fe){return _0xdb1cf3(this,void 0x0,void 0x0,function*(){const _0x6f1d72=_0x1824,_0x31b267=_0x383e45[_0x6f1d72(0x91)]('value'),_0x174f58=yield _0x417704(_0x4609fe,_0x31b267,_0x1c6f65),_0x422423=yield _0x417704(_0x4609fe,_0x31b267,_0x4a939f);return{'references':[..._0x174f58[_0x6f1d72(0xb0)],..._0x422423[_0x6f1d72(0xb0)]]};});}const _0x2284b9={'referenceTypeId':_0x3185fa('HasSubtype'),'includeSubtypes':!![],'browseDirection':_0x50f41a[_0x3ecf62(0xd5)],'nodeClassMask':_0xa41a14['ReferenceType']|_0xa41a14[_0x3ecf62(0x156)]|_0xa41a14[_0x3ecf62(0x9e)]|_0xa41a14[_0x3ecf62(0x11f)],'resultMask':0x3f};function _0x56f64f(_0x180557,_0x5c5515){return _0xdb1cf3(this,void 0x0,void 0x0,function*(){const _0x451643=_0x180557['data']('value'),_0x562c95=yield _0x417704(_0x5c5515,_0x451643,_0x2284b9);return _0x562c95;});}const _0x56e2ff=_0x2f3497=>{const _0x432aa3=_0x3ecf62;var _0x1801a9,_0x49f608;if(!_0x2f3497){const _0x262e32=$('<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>');return _0x262e32;}const _0x41b8d5=_0x2f3497[_0x432aa3(0xe9)][_0x432aa3(0x104)](),_0x1d2ab1=((_0x1801a9=_0x2f3497[_0x432aa3(0xd1)])===null||_0x1801a9===void 0x0?void 0x0:_0x1801a9[_0x432aa3(0x154)])||((_0x49f608=_0x2f3497[_0x432aa3(0xa8)])===null||_0x49f608===void 0x0?void 0x0:_0x49f608[_0x432aa3(0x86)])||_0x2f3497['nodeId'][_0x432aa3(0x104)](),{icon:_0x3a332f,color:_0x1b2ba4}=_0x4d730b(_0x2f3497),_0x41f1c6=$('<li><i\x20class=\x22fa\x20'+_0x3a332f+_0x432aa3(0xa9)+_0x1b2ba4+_0x432aa3(0xbd)+_0x1d2ab1+_0x432aa3(0x12a));return _0x41f1c6[_0x432aa3(0x149)](_0x432aa3(0x9d)),_0x41f1c6[_0x432aa3(0x91)](_0x432aa3(0x8e),_0x41b8d5),_0x41f1c6[_0x432aa3(0x91)](_0x432aa3(0x127),_0x2f3497),_0x41f1c6;},_0x56a8f0=()=>{const _0x1cff1e=_0x3ecf62;$[_0x1cff1e(0x139)](_0x1cff1e(0xfd),{'options':{'endpointNode':()=>({'endpoint':_0x1cff1e(0x143)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x1cff1e(0xb1)},'nodeClass':_0x1cff1e(0xb2),'nodeId':_0x1cff1e(0x13e),'displayName':{'text':_0x1cff1e(0xb1)},'typeDefinition':_0x14505e}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0xdb1cf3(this,void 0x0,void 0x0,function*(){const _0x4238fa=_0x1824,_0x4c0b2e=this,_0x403781=typeof _0x4c0b2e[_0x4238fa(0x153)][_0x4238fa(0xd6)]===_0x4238fa(0x147)?_0x4c0b2e[_0x4238fa(0x153)][_0x4238fa(0xd6)]():_0x4c0b2e[_0x4238fa(0x153)][_0x4238fa(0xd6)];if(_0x403781 instanceof Promise)return yield _0x403781;return _0x403781;});},'reset'(){const _0x2e6cde=_0x1cff1e,_0xe40203=this;_0xe40203['$tree']['empty'](),this[_0x2e6cde(0xf4)]()[_0x2e6cde(0xb5)](_0x38cd6b=>{const _0x1af48c=_0x2e6cde,_0x1b83d4=_0x56e2ff(_0x38cd6b);_0xe40203[_0x1af48c(0x100)]['append'](_0x1b83d4),_0xe40203[_0x1af48c(0x114)]=_0x38cd6b;});},'verify'(){const _0x23c6bb=_0x1cff1e,_0x39bbcc=this,_0x40db37={'baseUrl':_0x39bbcc['options'][_0x23c6bb(0x8c)],'endpointNode':typeof _0x39bbcc[_0x23c6bb(0x153)]['endpointNode']===_0x23c6bb(0x147)?_0x39bbcc['options']['endpointNode']():_0x39bbcc[_0x23c6bb(0x153)][_0x23c6bb(0x123)],'endpoint':typeof _0x39bbcc['options']['endpoint']===_0x23c6bb(0x147)?_0x39bbcc['options'][_0x23c6bb(0xf0)]():_0x39bbcc[_0x23c6bb(0x153)][_0x23c6bb(0xf0)]};_0x5ac9b7(_0x40db37,_0x39bbcc[_0x23c6bb(0xe8)],_0x39bbcc[_0x23c6bb(0x122)]);},'_create'(){const _0x3bd83b=_0x1cff1e,_0x58cb5e=this;function _0x525687(_0x390bc2,_0x5d6375,_0x242987){return _0xdb1cf3(this,void 0x0,void 0x0,function*(){const _0x180c5a=_0x1824;if(_0x390bc2['hasClass'](_0x180c5a(0x14e))){console[_0x180c5a(0x132)]('already\x20fetched');return;}if(_0x390bc2[_0x180c5a(0x88)](_0x180c5a(0x89))){console['log']('already\x20loading');return;}_0x390bc2[_0x180c5a(0x149)]('loading'),_0x390bc2[_0x180c5a(0xb3)](_0x180c5a(0x152));try{_0x390bc2['children']('ul')[_0x180c5a(0xf2)]();const {references:_0x3a3be1}=yield _0x5d6375(_0x390bc2,_0x242987);for(const _0x50f4c0 of _0x3a3be1){if(_0x58cb5e[_0x180c5a(0x153)][_0x180c5a(0x159)]&&!_0x58cb5e[_0x180c5a(0x153)]['filter'](_0x50f4c0))continue;const _0x4e9d2c=_0x56e2ff(_0x50f4c0);_0x390bc2[_0x180c5a(0x14d)]('ul')[_0x180c5a(0xb3)](_0x4e9d2c);}_0x390bc2[_0x180c5a(0x149)](_0x180c5a(0x14e));}catch(_0x3021ac){_0x390bc2[_0x180c5a(0x14d)]('ul')[_0x180c5a(0xb3)](_0x180c5a(0xbc)+_0x3021ac[_0x180c5a(0xca)]+_0x180c5a(0xd0)),console['log']('err',_0x3021ac);}_0x390bc2[_0x180c5a(0x140)](_0x180c5a(0xc3))[_0x180c5a(0x102)](),_0x390bc2[_0x180c5a(0xbb)](_0x180c5a(0x89));});}_0x58cb5e[_0x3bd83b(0xe8)]=this['element'],_0x58cb5e[_0x3bd83b(0xc5)]=$('<div/>'),_0x58cb5e[_0x3bd83b(0xc5)][_0x3bd83b(0x149)]('sterfive-combo-box'),this['element'][_0x3bd83b(0xbf)](_0x58cb5e[_0x3bd83b(0xc5)]),_0x58cb5e[_0x3bd83b(0x14f)]=$(_0x3bd83b(0x12f))[_0x3bd83b(0x149)](_0x3bd83b(0xef)),_0x58cb5e[_0x3bd83b(0xc5)][_0x3bd83b(0xb3)](_0x58cb5e['$inputGroup']),_0x58cb5e[_0x3bd83b(0x14f)][_0x3bd83b(0xb3)](_0x58cb5e['$input']),_0x58cb5e[_0x3bd83b(0xa7)]=$(_0x3bd83b(0xec)),_0x58cb5e[_0x3bd83b(0x14f)]['append'](_0x58cb5e[_0x3bd83b(0xa7)]),_0x58cb5e[_0x3bd83b(0xa7)]['on'](_0x3bd83b(0xa6),function(){const _0x2fa035=_0x3bd83b;!_0x58cb5e['$dropdown']['is'](_0x2fa035(0x13d))&&(_0x58cb5e[_0x2fa035(0xf4)]()[_0x2fa035(0xb5)](_0x50d0aa=>{const _0x11b673=_0x2fa035;var _0x191715;(_0x50d0aa!==_0x58cb5e['currentParent']||((_0x191715=_0x58cb5e[_0x11b673(0x114)])===null||_0x191715===void 0x0?void 0x0:_0x191715[_0x11b673(0xe9)])!==_0x50d0aa['nodeId'])&&_0x58cb5e['reset']();}),_0x58cb5e[_0x2fa035(0x122)][_0x2fa035(0xb6)]()),_0x58cb5e[_0x2fa035(0xac)][_0x2fa035(0xde)]();}),_0x58cb5e[_0x3bd83b(0xeb)]=$(_0x3bd83b(0xcc)),_0x58cb5e[_0x3bd83b(0x14f)][_0x3bd83b(0xb3)](_0x58cb5e['$verifyBtn']),_0x58cb5e['$verifyBtn']['on']('click',()=>{const _0x2dc9e1=_0x3bd83b;this[_0x2dc9e1(0x136)]();}),!_0x58cb5e[_0x3bd83b(0xe8)][_0x3bd83b(0xf9)]('placeholder')&&_0x58cb5e[_0x3bd83b(0xe8)][_0x3bd83b(0xf9)]('placeholder',_0x3bd83b(0xa1)),_0x58cb5e[_0x3bd83b(0x122)]=$('<div\x20class=\x22info-text\x22></div>'),_0x58cb5e[_0x3bd83b(0x122)]['hide'](),{'baseUrl':_0x58cb5e[_0x3bd83b(0x153)][_0x3bd83b(0x8c)],'endpointNode':typeof _0x58cb5e[_0x3bd83b(0x153)]['endpointNode']===_0x3bd83b(0x147)?_0x58cb5e['options'][_0x3bd83b(0x123)]():_0x58cb5e['options'][_0x3bd83b(0x123)],'endpoint':typeof _0x58cb5e['options'][_0x3bd83b(0xf0)]===_0x3bd83b(0x147)?_0x58cb5e[_0x3bd83b(0x153)][_0x3bd83b(0xf0)]():_0x58cb5e[_0x3bd83b(0x153)][_0x3bd83b(0xf0)]},_0x58cb5e[_0x3bd83b(0xac)]=$(_0x3bd83b(0x12f))['addClass'](_0x3bd83b(0x8f))[_0x3bd83b(0xb6)](),_0x58cb5e['$combo'][_0x3bd83b(0xb3)](_0x58cb5e[_0x3bd83b(0x122)]),_0x58cb5e[_0x3bd83b(0xc5)][_0x3bd83b(0xb3)](_0x58cb5e[_0x3bd83b(0xac)]),_0x58cb5e[_0x3bd83b(0x100)]=$(_0x3bd83b(0xd4))[_0x3bd83b(0xf1)](_0x58cb5e[_0x3bd83b(0xac)]),this[_0x3bd83b(0x151)](),_0x58cb5e[_0x3bd83b(0x100)]['on'](_0x3bd83b(0xa6),'li',function(_0xf8ad96){const _0x3b9212=_0x3bd83b;var _0x286f67,_0x4d1596;_0xf8ad96['stopPropagation']();let _0x595d97=$(this);const _0x211854=0x14,_0x2d56e4=0x14,_0x2f567a=$(this)['offset'](),_0x44b159=_0xf8ad96;if(_0x44b159['pageX']>=_0x2f567a[_0x3b9212(0x8b)]&&_0x44b159[_0x3b9212(0x124)]<=_0x2f567a['left']+_0x211854&&_0x44b159[_0x3b9212(0xc6)]>=_0x2f567a['top']&&_0x44b159['pageY']<=_0x2f567a[_0x3b9212(0x98)]+_0x2d56e4){if(_0x595d97['hasClass'](_0x3b9212(0x9d))){if(_0x595d97[_0x3b9212(0x88)](_0x3b9212(0x14e))){_0x595d97[_0x3b9212(0xbb)](_0x3b9212(0x9d))[_0x3b9212(0x149)]('expanded'),_0x595d97['children']('ul')[_0x3b9212(0xde)]();return;}const _0x54e20e={'baseUrl':_0x58cb5e['options'][_0x3b9212(0x8c)],'endpointNode':typeof _0x58cb5e[_0x3b9212(0x153)]['endpointNode']==='function'?_0x58cb5e[_0x3b9212(0x153)][_0x3b9212(0x123)]():_0x58cb5e['options'][_0x3b9212(0x123)],'endpoint':typeof _0x58cb5e[_0x3b9212(0x153)][_0x3b9212(0xf0)]===_0x3b9212(0x147)?_0x58cb5e[_0x3b9212(0x153)]['endpoint']():_0x58cb5e[_0x3b9212(0x153)]['endpoint']},_0x2edf19=!_0x58cb5e[_0x3b9212(0x153)][_0x3b9212(0xa5)]?_0x4bd546:_0x56f64f;_0x525687(_0x595d97,_0x2edf19,_0x54e20e)['then'](()=>{const _0x36795e=_0x3b9212;console['log'](_0x36795e(0xe5)),console[_0x36795e(0x132)](_0x36795e(0x14e)),_0x595d97[_0x36795e(0xbb)](_0x36795e(0x9d))[_0x36795e(0x149)](_0x36795e(0xf5));})[_0x3b9212(0x11d)](_0x508c6b=>{const _0x20acd9=_0x3b9212;_0x595d97[_0x20acd9(0xbb)](_0x20acd9(0x9d))[_0x20acd9(0x149)](_0x20acd9(0xf5)),console[_0x20acd9(0x132)](_0x20acd9(0xcb),_0x508c6b);});}else{if(_0x595d97[_0x3b9212(0x88)]('expanded'))_0x595d97['children']('ul')[_0x3b9212(0xde)](),_0x595d97[_0x3b9212(0xbe)]('expandable\x20expanded');else{if(_0x595d97[_0x3b9212(0x14d)]('ul')[_0x3b9212(0x14d)]()[_0x3b9212(0x13a)]>0x0)_0x595d97[_0x3b9212(0x14d)]('ul')[_0x3b9212(0xde)](),_0x595d97['toggleClass'](_0x3b9212(0x150));else;}}}else{const _0x57e7bb=_0x595d97['data'](_0x3b9212(0x8e)),_0x2cb3cc=_0x595d97['data'](_0x3b9212(0x127));if(_0x58cb5e[_0x3b9212(0x153)][_0x3b9212(0x8a)]&&!_0x58cb5e['options'][_0x3b9212(0x8a)](_0x2cb3cc))return;_0x58cb5e['$input'][_0x3b9212(0x91)]('reference',_0x2cb3cc);const _0x50896c=((_0x286f67=_0x2cb3cc[_0x3b9212(0xd1)])===null||_0x286f67===void 0x0?void 0x0:_0x286f67['text'])||((_0x4d1596=_0x2cb3cc[_0x3b9212(0xa8)])===null||_0x4d1596===void 0x0?void 0x0:_0x4d1596[_0x3b9212(0x86)])||_0x2cb3cc['nodeId'][_0x3b9212(0x104)](),_0x343be6='['+_0x50896c+']('+_0x57e7bb+')';_0x58cb5e[_0x3b9212(0xe8)][_0x3b9212(0x121)](_0x343be6),_0x58cb5e[_0x3b9212(0xe8)][_0x3b9212(0x107)]('change'),_0x58cb5e[_0x3b9212(0xac)]['hide']();}}),$(document)['on']('click',function(_0x143624){const _0x108cad=_0x3bd83b;!$(_0x143624[_0x108cad(0xa4)])[_0x108cad(0x99)](_0x58cb5e[_0x108cad(0xc5)])['length']&&_0x58cb5e['$dropdown'][_0x108cad(0xb6)]();});}});},_0x5e14c9=({endpointNode:_0x2d5315,endpoint:_0x407279,baseUrl:_0x2b6a29},_0x12b99d)=>_0xdb1cf3(void 0x0,void 0x0,void 0x0,function*(){const _0x1a69bb=_0x3ecf62,_0x148d5f=_0x2b6a29+'/opcua-endpoint2',_0x59f167=_0x148d5f+_0x1a69bb(0xee),_0x3682e7=yield fetch(_0x59f167,{'method':'POST','body':JSON['stringify']({'endpointNode':_0x2d5315,'endpoint':_0x407279,'nodeId':_0x12b99d}),'headers':{'Content-Type':_0x1a69bb(0x108)}});if(_0x3682e7['status']!==0xc8){console['log'](_0x1a69bb(0xab),_0x3682e7[_0x1a69bb(0xb8)],_0x3682e7[_0x1a69bb(0xfc)]);const _0x48656a={'statusCode':_0x1a69bb(0x158),'nodeAddressString':_0x12b99d};return _0x48656a;}console['log']('fetched\x20:\x20',_0x3682e7[_0x1a69bb(0xb8)],_0x3682e7[_0x1a69bb(0xfc)]);const _0x4d1ce0=yield _0x3682e7[_0x1a69bb(0x141)]();return _0x4d1ce0;});function _0x2e3f15(_0x1a04f8,_0x5dc2e0,_0x497444,_0x5498f8){const _0x284ed4=_0x3ecf62,_0x2ac91b=$('#'+_0x1a04f8+_0x284ed4(0x9b)),_0x540ae9=$('#'+_0x1a04f8+_0x284ed4(0xf6)),_0x42afa4=$('#'+_0x1a04f8+_0x284ed4(0x130)),_0x54c5a3=$('#'+_0x1a04f8+_0x284ed4(0x14c));let _0x200b35=![];_0x2ac91b[_0x284ed4(0xb6)](),_0x540ae9[_0x284ed4(0xb6)](),_0x42afa4[_0x284ed4(0xb6)](),_0x5dc2e0['on'](_0x284ed4(0xa6),()=>{const _0x3fb82a=_0x284ed4;if(_0x200b35)return;_0x200b35=!![],_0x42afa4[_0x3fb82a(0xbb)](_0x3fb82a(0xb6)),_0x42afa4[_0x3fb82a(0x134)](_0x3fb82a(0x129)),_0x2ac91b[_0x3fb82a(0x149)](_0x3fb82a(0xb6)),_0x540ae9[_0x3fb82a(0x149)](_0x3fb82a(0xb6)),_0x54c5a3[_0x3fb82a(0x134)]('');const {body:_0x4d3d2d,url:_0x2b6839}=_0x497444();fetch(_0x2b6839,{'method':_0x3fb82a(0xd8),'headers':{'Content-Type':'application/json'},'body':JSON[_0x3fb82a(0xb9)](_0x4d3d2d)})['then'](_0x11feb5=>_0x11feb5[_0x3fb82a(0x141)]())[_0x3fb82a(0xb5)](_0x66731e=>{const _0x3c5da6=_0x3fb82a;_0x200b35=![],_0x42afa4[_0x3c5da6(0xb6)](),console['log'](JSON[_0x3c5da6(0xb9)](_0x66731e,null,'\x20'));if(_0x66731e[_0x3c5da6(0xda)]==='ok')_0x2ac91b['removeClass'](_0x3c5da6(0xb6)),_0x540ae9['addClass'](_0x3c5da6(0xb6)),_0x54c5a3[_0x3c5da6(0x134)](_0x66731e[_0x3c5da6(0xca)]['replace']('\x0a',_0x3c5da6(0x11b))),_0x5498f8(null,_0x66731e);else{const _0x10bc0d=_0x18f04b=>!_0x18f04b?'':_0x18f04b[_0x3c5da6(0x93)]('\x0a')['map'](_0x3c047b=>_0x3c5da6(0x103)+_0x3c047b+_0x3c5da6(0x118))['join']('\x0a'),_0xebcddc=_0x3ca5cc=>Array[_0x3c5da6(0x119)](_0x3ca5cc)?_0x3ca5cc[_0x3c5da6(0xd7)](_0x10bc0d)[_0x3c5da6(0xcf)]('\x0a'):_0x10bc0d(_0x3ca5cc);_0x2ac91b[_0x3c5da6(0x149)](_0x3c5da6(0xb6)),_0x540ae9['removeClass'](_0x3c5da6(0xb6)),_0x54c5a3[_0x3c5da6(0x134)](_0xebcddc(_0x66731e[_0x3c5da6(0xca)])+_0xebcddc(_0x66731e['extra'])),_0x5498f8(new Error(_0x66731e[_0x3c5da6(0xda)]),_0x66731e);}})[_0x3fb82a(0x11d)](_0x87c0a2=>{const _0x5a6c6a=_0x3fb82a;_0x200b35=![],_0x42afa4[_0x5a6c6a(0x149)](_0x5a6c6a(0xb6)),_0x2ac91b['addClass'](_0x5a6c6a(0xb6)),_0x540ae9[_0x5a6c6a(0xbb)](_0x5a6c6a(0xb6)),_0x54c5a3[_0x5a6c6a(0x134)]('internal\x20error\x20'+_0x87c0a2[_0x5a6c6a(0xca)]),console[_0x5a6c6a(0x132)](_0x5a6c6a(0x128),_0x87c0a2),_0x5498f8(_0x87c0a2,null);});});}const _0x532bb0=()=>{const _0x9e4a7d=_0x3ecf62,_0xb9a2ef=$(_0x9e4a7d(0xc0)),_0x2196a3=_0xb9a2ef['val'](),_0x730613=RED[_0x9e4a7d(0xe4)][_0x9e4a7d(0xe3)](_0x2196a3);if(!_0x730613)return undefined;const {endpoint:_0x122185,securityMode:_0x2fe951,securityPolicy:_0x4923ad,userIdentityType:_0xaa5011,credentials:_0x2de7f1}=_0x730613,_0x24947b={'endpoint':_0x122185,'securityMode':_0x2fe951,'securityPolicy':_0x4923ad,'userIdentityType':_0xaa5011,'credentials':_0x2de7f1};return console[_0x9e4a7d(0x132)](_0x9e4a7d(0x10e),_0x24947b),_0x24947b;},_0x492157=()=>{return{'endpointNode':_0x53bb11};},_0x53bb11=()=>{const _0x33cf5b=_0x3ecf62,_0x1aeb32=$(_0x33cf5b(0xc0)),_0x2dfac6=_0x1aeb32['val'](),_0xdb711e=_0x532bb0();if(!_0xdb711e)return undefined;return{'id':_0x2dfac6};};RED['nodes'][_0x3ecf62(0x112)](_0x3ecf62(0x97),{'category':_0x3ecf62(0x157),'color':_0x3ecf62(0x10f),'align':_0x3ecf62(0xf3),'icon':'../../icons/opcuanodeLogo.png','paletteLabel':'call','defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x3ecf62(0x92)},'action':{'value':_0x3ecf62(0x10b),'required':!![]},'methodId':{'value':'','required':!![]},'objectId':{'value':'','required':!![]}},'outputs':0x2,'label'(){const _0x400444=_0x3ecf62;return this[_0x400444(0x86)]||'OPCUA-Call';},'labelStyle'(){const _0x48eb0b=_0x3ecf62;return this[_0x48eb0b(0x86)]?_0x48eb0b(0x131):'';},'oneditprepare'(){const _0x5155b6=_0x3ecf62,_0x258905=this;_0x56a8f0(),_0x258905[_0x5155b6(0x10a)]=0x1;let _0x2ea026={};console[_0x5155b6(0x132)](_0x5155b6(0xc7));const _0x21a1b8=$(_0x5155b6(0xd2)),_0x525884=$(_0x5155b6(0xdc)),_0x2ef95d=$('#method-input-argument-definition'),_0x51dd9f=$(_0x5155b6(0xa2)),_0xa4297=$(_0x5155b6(0xaa));_0x21a1b8['nodeBrowser'](Object[_0x5155b6(0xaf)](Object['assign']({},_0x492157()),{'filter'(_0x1cec11){const _0xa2d5c8=_0x5155b6;return _0x1cec11[_0xa2d5c8(0xb4)]===_0xa2d5c8(0xb2);}})),_0x525884[_0x5155b6(0xa3)](Object[_0x5155b6(0xaf)](Object['assign']({},_0x492157()),{'parentNode':()=>_0xdb1cf3(this,void 0x0,void 0x0,function*(){const _0xea101=_0x5155b6;let _0x27faaa=_0x21a1b8['data']('reference');if(!_0x27faaa){const _0x2f14d5=_0x21a1b8['val'](),_0xafc92f=_0x532bb0();if(!_0xafc92f)return null;const _0x3401d9={'baseUrl':'','endpoint':'','endpointNode':_0xafc92f};try{const _0x1dfbd9=yield _0x5e14c9(_0x3401d9,_0x2f14d5);_0x27faaa=_0x1dfbd9['reference'];}catch(_0x3278ae){console[_0xea101(0x132)](_0x3278ae);}}return _0x27faaa;}),'filter'(_0xf9b640){const _0x231cc3=_0x5155b6;return _0xf9b640[_0x231cc3(0xb4)]===_0x231cc3(0x11c)||_0xf9b640[_0x231cc3(0xb4)]===_0x231cc3(0xb2);},'isSelectable'(_0x2c6f3f){const _0x4e8ce1=_0x5155b6;return _0x2c6f3f[_0x4e8ce1(0xb4)]==='Method';}})),_0x21a1b8['on'](_0x5155b6(0x13f),()=>{_0x525884['nodeBrowser']('reset');}),console[_0x5155b6(0x132)](_0x5155b6(0x95));function _0x499b49(_0x30b579,_0x5c1e45,_0x223d9e){const _0x420887=_0x5155b6,_0x18e142=$(_0x420887(0x148))['appendTo'](_0x30b579);$('<input\x20type=\x22text\x22>')[_0x420887(0x121)](_0x223d9e[_0x420887(0x86)]||'')['css']({'width':_0x420887(0xfa)})[_0x420887(0xf1)](_0x18e142);const _0x2eb8b8=_0x2ea026[_0x223d9e[_0x420887(0x96)]['toString']()],_0x1bcdde=(_0x2eb8b8?_0x2eb8b8[_0x420887(0xa8)][_0x420887(0x86)]||'':_0x223d9e['dataType'][_0x420887(0x104)]())+(_0x223d9e[_0x420887(0xad)]===0x1?'[]':'');$(_0x420887(0xae))[_0x420887(0x121)](_0x223d9e[_0x420887(0x13b)][_0x420887(0x154)]||'')[_0x420887(0xc9)]({'width':_0x420887(0x125)})['appendTo'](_0x18e142),$(_0x420887(0xae))[_0x420887(0x121)](_0x1bcdde||'')['css']({'width':_0x420887(0x125)})[_0x420887(0xf1)](_0x18e142);}_0x2ef95d['editableList']({'addButton':![],'height':_0x5155b6(0xc4),'scrollOnAdd':![],'addItem'(_0x541259,_0x4be09a,_0x2b2654){_0x499b49(_0x541259,_0x4be09a,_0x2b2654);}}),_0x51dd9f[_0x5155b6(0x90)]({'addButton':![],'height':_0x5155b6(0xc4),'scrollOnAdd':![],'addItem'(_0x4e7e40,_0xd0417b,_0x5c0c84){_0x499b49(_0x4e7e40,_0xd0417b,_0x5c0c84);}});function _0x2bf0bc(_0x559611,_0x335259){const _0x434aa3=_0x5155b6;console[_0x434aa3(0x132)]('installArgumentList',_0x335259['length'],_0x434aa3(0xa0),_0x335259),_0x559611[_0x434aa3(0x90)](_0x434aa3(0xf2));for(let _0x1a2994=0x0;_0x1a2994<_0x335259[_0x434aa3(0x13a)];_0x1a2994++){_0x559611[_0x434aa3(0x90)](_0x434aa3(0x13c),_0x335259[_0x1a2994]);}}_0x2ef95d[_0x5155b6(0xb6)](),_0x51dd9f[_0x5155b6(0xb6)](),_0x2e3f15('validate',_0xa4297,()=>({'url':_0x5155b6(0xce),'body':{'endpointNode':_0x53bb11(),'objectId':_0x21a1b8[_0x5155b6(0x121)](),'methodId':_0x525884['val']()}}),(_0x120a21,_0x4d6c7c)=>{const _0x10b8ce=_0x5155b6;if(_0x120a21)return;const _0x2f7b82=_0x4d6c7c[_0x10b8ce(0x138)];_0x2ea026=_0x4d6c7c[_0x10b8ce(0x155)],_0x2ef95d['show'](),_0x51dd9f[_0x10b8ce(0xba)](),_0x2bf0bc(_0x2ef95d,_0x2f7b82['inputArguments']),_0x2bf0bc(_0x51dd9f,_0x2f7b82[_0x10b8ce(0x10c)]),console[_0x10b8ce(0x132)](_0x10b8ce(0x91),_0x4d6c7c);});},'oneditsave'(){}});}()));function _0x1824(_0x22c1f3,_0x532c82){const _0x2f0ead=_0x2f0e();return _0x1824=function(_0x1824c9,_0x5be700){_0x1824c9=_0x1824c9-0x86;let _0x1e47e6=_0x2f0ead[_0x1824c9];return _0x1e47e6;},_0x1824(_0x22c1f3,_0x532c82);}function _0x2f0e(){const _0x5a1909=['endpointNode','pageX','50%','Variable','reference','err','Testing\x20Connection\x20...','<ul></ul></li>','ReferenceType','CadetBlue','rgba(61,\x2060,\x204,\x200.525)','SandyBrown','<div/>','-pending','node_label_italic','log','throw','html','fa-list-alt','verify','HasProperty','argumentDefinition','widget','length','description','addItem',':visible','ns=0;i=85','change','find','json','415236kurkzZ','opc.tcp://opcuademo.sterfive.com:26543','Inverse','Invalid','!!failure!!','function','<div\x20class=\x22argument-entry\x22>','addClass','/opcua-endpoint2','TypeDefinition','-messages','children','fetched','$inputGroup','expandable\x20expanded','reset','<div\x20class=\x22spinner\x22></div>','options','text','dataTypes','ObjectType','opcua','Bad','filter','name','HasChild','hasClass','loading','isSelectable','left','baseUrl','fa-sliders','value','sterfive-dropdown','editableList','data','OpcUa-Endpoint2','split','HasTypeDefinition','Calling\x20nodeBrowser\x20Done','dataType','OpcUa-Client2-Call','top','closest','HasComponent','-success','DarkOrange','expandable','DataType','3892595sPunxD','arguments','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','#method-output-argument-definition','nodeBrowser','target','isTypeRef','click','$toggleTreeBtn','browseName','\x22\x20style=\x22color:','#validate-call-arguments-button','fetching\x20failed\x20with\x20error','$dropdown','valueRank','<input\x20type=\x22text\x22>','assign','references','Objects','Object','append','nodeClass','then','hide','/browse','status','stringify','show','removeClass','<li>error\x20',';\x22></i>\x20','toggleClass','replaceWith','#node-input-endpoint','NodeClass','1401024NmGHcs','.spinner','auto','$combo','pageY','Calling\x20nodeBrowser','fetched\x20:\x20','css','message','error','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','ns=0;i=34','/opcua-endpoint2/argumentDefinition','join','</li>','displayName','#node-input-objectId','5PivZmD','<ul\x20class=\x22sterfive-tree\x22></ul>','Forward','parentNode','map','POST','23601664cXyPAV','result','apply','#node-input-methodId','fa-object-group','toggle','Organizes','4263510iAuhZK','Unspecified','View','node','nodes','\x20Fetching\x20done','failure','ns=0;i=40','$input','nodeId','next','$verifyBtn','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','444318xLCxsa','/checkNodeId','input-group','endpoint','appendTo','empty','right','resolveParentNode','expanded','-failure','statusCode','DisplayName','attr','100%','sterfive-info','statusText','sterfive.nodeBrowser','suppressed','i=61','$tree','BrowseName','remove','<p>','toString','fa-cog','HasSubtype','trigger','application/json','browseResult','inputs','read','outputArguments','SeaGreen','xxx','#C0DEED','ns=0;i=47','783585hDnsaZ','registerType','Good','currentParent','fa-question','fa-folder','Both','</p>','isArray','DodgerBlue','<br>','Method','catch','IsForward','VariableType','referenceTypeId','val','$info'];_0x2f0e=function(){return _0x5a1909;};return _0x2f0e();}
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHhkYjFjZjMiLCJfMHg0MTcwYTUiLCJfMHgzZWMzMDciLCJfMHg1MmY2ZTIiLCJfMHg0MmE1YjgiLCJfMHgzNjYzZGYiLCJfMHg0ODM3YTYiLCJfMHgxN2RhZTIiLCJQcm9taXNlIiwiXzB4Mzg5ZGFjIiwiXzB4YWQwM2YzIiwiXzB4MjQyNjNiIiwiXzB4NDk4OWRlIiwiXzB4MmM1NGU1IiwiXzB4NGY4MjQ4IiwiXzB4MzUxMDcxIiwiXzB4M2JmY2ZkIiwiXzB4MzgxMDhlIiwiXzB4NmZiMmYwIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4NGFiMzNjIiwiXzB4MjZmMDAzIiwiXzB4Mjc3OWU0IiwiXzB4MTk5ZmQwIiwiRXJyb3IiLCJfMHgzYzI1MzEiLCJfMHgxNDUwNWUiLCJfMHgzY2Q3YTgiLCJfMHgxM2Q5NGIiLCJfMHgxMTIwOTMiLCJfMHg0YTJmOCIsIl8weGI4MDQxYyIsIl8weDUwZjQxYSIsIl8weDNmMmUxYSIsIl8weGE0MWExNCIsIl8weDQ0ZGRkZSIsIl8weDNhMWVmYiIsIl8weGUxNTM3NiIsIl8weDRhYmI2YSIsIl8weDQxMWNmNSIsIl8weDMxODVmYSIsIl8weDQ5MWMwMCIsIl8weDRkNzMwYiIsIl8weDQxNDBhYSIsIl8weDQxNzcwNCIsImVuZHBvaW50Tm9kZSIsIl8weDI2ZWQ5YSIsImVuZHBvaW50IiwiXzB4M2ZhNjBjIiwiYmFzZVVybCIsIl8weDI0NWE4ZiIsIl8weDNkNTk5OSIsIl8weDQ2ZjI0NCIsIl8weDI1YzA3MyIsIl8weDMzNGY1ZiIsIl8weDE0YzEyZiIsIk9iamVjdCIsIl8weDdhOTJhMCIsImZldGNoIiwiSlNPTiIsImNvbnNvbGUiLCJfMHgyZTc3YTYiLCJfMHg0MjRkOGEiLCJfMHgxYzZmNjUiLCJfMHg0YTkzOWYiLCJfMHg1YWM5YjciLCJfMHgzYTZhNTgiLCJfMHgzMjYyYzAiLCJfMHgxNGM1ZTciLCJfMHg1MzNlYmUiLCJfMHgxNGRkNjUiLCJfMHg0ZjExNDMiLCJfMHg1YjJiNWYiLCJfMHgyN2JlZTYiLCJfMHgzOGI4NjgiLCJfMHg1ZGNhZWIiLCJfMHgxOGM5NTYiLCJzZXRUaW1lb3V0IiwiXzB4NGQzOTMyIiwiXzB4NGJkNTQ2IiwiXzB4MzgzZTQ1IiwiXzB4NDYwOWZlIiwiXzB4MzFiMjY3IiwiXzB4MTc0ZjU4IiwiXzB4NDIyNDIzIiwiXzB4MjI4NGI5IiwiXzB4NTZmNjRmIiwiXzB4MTgwNTU3IiwiXzB4NWM1NTE1IiwiXzB4NDUxNjQzIiwiXzB4NTYyYzk1IiwiXzB4NTZlMmZmIiwiXzB4MmYzNDk3IiwiXzB4MTgwMWE5IiwiXzB4NDlmNjA4IiwiXzB4MjYyZTMyIiwiJCIsIl8weDQxYjhkNSIsIl8weDFkMmFiMSIsImljb24iLCJfMHgzYTMzMmYiLCJjb2xvciIsIl8weDFiMmJhNCIsIl8weDQxZjFjNiIsIl8weDU2YThmMCIsInVuZGVmaW5lZCIsIl8weDRjMGIyZSIsIl8weDQwMzc4MSIsIl8weGU0MDIwMyIsIl8weDM4Y2Q2YiIsIl8weDFiODNkNCIsIl8weDM5YmJjYyIsIl8weDQwZGIzNyIsIl8weDU4Y2I1ZSIsIl8weDUyNTY4NyIsIl8weDM5MGJjMiIsIl8weDVkNjM3NSIsIl8weDI0Mjk4NyIsInJlZmVyZW5jZXMiLCJfMHgzYTNiZTEiLCJfMHg1MGY0YzAiLCJfMHg0ZTlkMmMiLCJfMHgzMDIxYWMiLCJfMHg1MGQwYWEiLCJfMHgxOTE3MTUiLCJfMHhmOGFkOTYiLCJfMHgyODZmNjciLCJfMHg0ZDE1OTYiLCJfMHg1OTVkOTciLCJfMHgyMTE4NTQiLCJfMHgyZDU2ZTQiLCJfMHgyZjU2N2EiLCJfMHg0NGIxNTkiLCJfMHg1NGUyMGUiLCJfMHgyZWRmMTkiLCJfMHg1MDhjNmIiLCJfMHg1N2U3YmIiLCJfMHgyY2IzY2MiLCJfMHg1MDg5NmMiLCJfMHgzNDNiZTYiLCJkb2N1bWVudCIsIl8weDE0MzYyNCIsIl8weDVlMTRjOSIsIl8weDJkNTMxNSIsIl8weDQwNzI3OSIsIl8weDJiNmEyOSIsIl8weDEyYjk5ZCIsIl8weDE0OGQ1ZiIsIl8weDU5ZjE2NyIsIl8weDM2ODJlNyIsIl8weDQ4NjU2YSIsIl8weDRkMWNlMCIsIl8weDJlM2YxNSIsIl8weDFhMDRmOCIsIl8weDVkYzJlMCIsIl8weDQ5NzQ0NCIsIl8weDU0OThmOCIsIl8weDJhYzkxYiIsIl8weDU0MGFlOSIsIl8weDQyYWZhNCIsIl8weDU0YzVhMyIsIl8weDIwMGIzNSIsImJvZHkiLCJfMHg0ZDNkMmQiLCJ1cmwiLCJfMHgyYjY4MzkiLCJfMHgxMWZlYjUiLCJfMHg2NjczMWUiLCJfMHgxMGJjMGQiLCJfMHgxOGYwNGIiLCJfMHgzYzA0N2IiLCJfMHhlYmNkZGMiLCJfMHgzY2E1Y2MiLCJBcnJheSIsIl8weDg3YzBhMiIsIl8weDUzMmJiMCIsIl8weGI5YTJlZiIsIl8weDIxOTZhMyIsIl8weDczMDYxMyIsIlJFRCIsIl8weDEyMjE4NSIsInNlY3VyaXR5TW9kZSIsIl8weDJmZTk1MSIsInNlY3VyaXR5UG9saWN5IiwiXzB4NDkyM2FkIiwidXNlcklkZW50aXR5VHlwZSIsIl8weGFhNTAxMSIsImNyZWRlbnRpYWxzIiwiXzB4MmRlN2YxIiwiXzB4MjQ5NDdiIiwiXzB4NDkyMTU3IiwiXzB4NTNiYjExIiwiXzB4MWFlYjMyIiwiXzB4MmRmYWM2IiwiXzB4ZGI3MTFlIiwiXzB4MjU4OTA1IiwiXzB4MmVhMDI2IiwiXzB4MjFhMWI4IiwiXzB4NTI1ODg0IiwiXzB4MmVmOTVkIiwiXzB4NTFkZDlmIiwiXzB4YTQyOTciLCJfMHgxY2VjMTEiLCJfMHgyN2ZhYWEiLCJfMHgyZjE0ZDUiLCJfMHhhZmM5MmYiLCJfMHgzNDAxZDkiLCJfMHgxZGZiZDkiLCJfMHgzMjc4YWUiLCJfMHhmOWI2NDAiLCJfMHgyYzZmM2YiLCJfMHg0OTliNDkiLCJfMHgzMGI1NzkiLCJfMHg1YzFlNDUiLCJfMHgyMjNkOWUiLCJfMHgxOGUxNDIiLCJfMHgyZWI4YjgiLCJfMHgxYmNkZGUiLCJfMHg1NDEyNTkiLCJfMHg0YmUwOWEiLCJfMHgyYjI2NTQiLCJfMHg0ZTdlNDAiLCJfMHhkMDQxN2IiLCJfMHg1YzBjODQiLCJfMHgyYmYwYmMiLCJfMHg1NTk2MTEiLCJfMHgzMzUyNTkiLCJfMHgxYTI5OTQiLCJfMHgxMjBhMjEiLCJfMHg0ZDZjN2MiLCJfMHgyZjdiODIiXSwibWFwcGluZ3MiOiJrZ0JBQUEsQ0FBQyxVLENBQ0csYSx3QkFtQkEsU0FBU0EsU0FBVCxDQUFtQkMsU0FBbkIsQ0FBNEJDLFNBQTVCLENBQXdDQyxTQUF4QyxDQUEyQ0MsU0FBM0MsQyxDQUNJLFNBQVNDLFNBQVQsQ0FBZUMsU0FBZixDLFFBQStCQSxTQUFBLFlBQWlCSCxTQUFqQixDQUFxQkcsU0FBckIsQ0FBNkIsSUFBSUgsU0FBSixDQUFNLFNBQVVJLFNBQVYsQyxDQUFxQkEsU0FBQSxDQUFRRCxTQUFSLEMsRUFBM0IsQyxTQUNyRCxHQUFLLENBQUFILFNBQUEsRUFBTSxDQUFBQSxTQUFBLENBQUlLLE9BQUosQ0FBTixDQUFMLENBQXlCLFNBQVVDLFNBQVYsQ0FBbUJDLFNBQW5CLEMseUJBQzVCLFNBQVNDLFNBQVQsQ0FBbUJDLFNBQW5CLEMseUJBQTRCLEcsQ0FBTUMsU0FBQSxDQUFLVCxTQUFBLEMsZUFBQSxFQUFlUSxTQUFmLENBQUwsQyxFQUErQixNQUFPRSxTQUFQLEMsQ0FBWUosU0FBQSxDQUFPSSxTQUFQLEMsR0FDN0UsU0FBU0MsU0FBVCxDQUFrQkMsU0FBbEIsQyx5QkFBMkIsRyxDQUFNSCxTQUFBLENBQUtULFNBQUEsQyxnQkFBQSxFQUFtQlksU0FBbkIsQ0FBTCxDLEVBQW1DLE1BQU9DLFNBQVAsQyxDQUFZUCxTQUFBLENBQU9PLFNBQVAsQyxHQUNoRixTQUFTSixTQUFULENBQWNLLFNBQWQsQyx5QkFBd0JBLFNBQUEsQyxNQUFBLEVBQWNULFNBQUEsQ0FBUVMsU0FBQSxDLE9BQUEsQ0FBUixDQUFkLENBQXNDYixTQUFBLENBQU1hLFNBQUEsQyxlQUFBLENBQU4sRSxNQUFBLEVBQXlCUCxTQUF6QixDQUFvQ0ksU0FBcEMsQyxFQUM5REYsU0FBQSxDQUFNLENBQUFULFNBQUEsQ0FBWUEsU0FBQSxDLGVBQUEsRUFBZ0JILFNBQWhCLENBQXlCQyxTQUFBLEVBQWMsRUFBdkMsQ0FBWixDQUFELEMsZUFBQSxHQUFMLEMsRUFKRyxDLEVBUVgsT0FBT2lCLGVBQVAsRyxnQkFBQSxDQUF3Q0EsZUFBeEMsQ0FBMEQsU0FBVUMsU0FBVixDQUFpQkMsU0FBakIsQ0FBNkJDLFNBQTdCLEMsMkJBQ3RELElBQUlDLFNBQUEsQ0FBSSxJQUFJQyxLQUFKLENBQVVGLFNBQVYsQ0FBUixDLE9BQ09DLFNBQUEsQyxNQUFBLEUsaUJBQUEsQ0FBNEJBLFNBQUEsQyxlQUFBLEVBQVVILFNBQXRDLENBQTZDRyxTQUFBLEMsZUFBQSxFQUFlRixTQUE1RCxDQUF3RUUsUyxFQUZuRixDQUtBLE1BQU1FLFNBQUEsQyxXQUFOLENBQ01DLFNBQUEsQyxXQUROLENBRU1DLFNBQUEsQyxnQkFGTixDQUdNQyxTQUFBLEMsV0FITixDQUlNQyxTQUFBLEMsZUFKTixDQUtNQyxRQUFBLEMsV0FMTixDQU1NQyxTQUFBLEMsZUFOTixDQVFBLElBQUlDLFNBQUosQ0FDQSxDQUFDLFNBQVVDLFNBQVYsQywyQkFDR0EsU0FBQSxDQUFnQkEsU0FBQSxDLGVBQUEsRSxHQUFoQixFLGdCQUNBQSxTQUFBLENBQWdCQSxTQUFBLEMsZ0JBQUEsRSxHQUFoQixFLGlCQUNBQSxTQUFBLENBQWdCQSxTQUFBLEMsZ0JBQUEsRSxHQUFoQixFLGlCQUNBQSxTQUFBLENBQWdCQSxTQUFBLEMsU0FBQSxFLEdBQWhCLEUsa0JBSkosQ0FLR0QsU0FBQSxFQUFvQixDQUFBQSxTQUFBLENBQWtCLEVBQWxCLENBTHZCLEdBTUEsSUFBSUUsU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDJCQUNHQSxTQUFBLENBQVVBLFNBQUEsQyxlQUFBLEUsR0FBVixFLGdCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxlQUFBLEUsR0FBVixFLGdCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxVQUFBLEUsR0FBVixFLFdBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsR0FBVixFLFNBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsR0FBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLElBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZUFBQSxFLElBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsVUFBQSxFLElBQVYsRSxnQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZUFBQSxFLElBQVYsRSxpQkFUSixDQVVHRCxTQUFBLEVBQWMsQ0FBQUEsU0FBQSxDQUFZLEVBQVosQ0FWakIsR0FXQSxJQUFJRSxTQUFKLENBQ0EsQ0FBQyxTQUFVQyxTQUFWLEMsMkJBQ0dBLFNBQUEsQ0FBY0EsU0FBQSxDLGVBQUEsRSxHQUFkLEUsZ0JBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsR0FBZCxFLFdBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsR0FBZCxFLGlCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLEdBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsY0FBQSxFLElBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxJQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGVBQUEsRSxJQUFkLEUsZ0JBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGVBQUEsRSxJQUFkLEUsaUJBUkosQ0FTR0QsU0FBQSxFQUFrQixDQUFBQSxTQUFBLENBQWdCLEVBQWhCLENBVHJCLEdBVUEsSUFBSUUsU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDJCQUNHQSxTQUFBLENBQVdBLFNBQUEsQyxnQkFBQSxFLEdBQVgsRSxpQkFDQUEsU0FBQSxDQUFXQSxTQUFBLEMsZ0JBQUEsRSxHQUFYLEUsaUJBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLGVBQUEsRSxHQUFYLEUsZ0JBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLGdCQUFBLEUsR0FBWCxFLGFBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLGVBQUEsRSxJQUFYLEUsZ0JBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLGdCQUFBLEUsSUFBWCxF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QUFBLEMsZ0JBQUEsRSxxQkFBQSxDQUFtQ3NLLFNBQUEsQyxRQUFBLENBQW5DLEMsZUFBQSxDQUF3RUEsU0FBeEUsQyxDQUNBRCxTQUFBLEMsZUFBQSxFLGVBQUEsQ0FEQSxDQUVBLElBQUssSUFBSUUsU0FBQSxDLEdBQUosQ0FBV0EsU0FBQSxDQUFJRCxTQUFBLEMsZ0JBQUEsQ0FBcEIsQ0FBNENDLFNBQUEsRUFBNUMsQyxDQUNJRixTQUFBLEMsZUFBQSxFLGdCQUFBLENBQTZCQyxTQUFBLENBQWdCQyxTQUFoQixDQUE3QixDLEdBR1I1QixTQUFBLEMsZUFBQSxHLENBQ0FDLFNBQUEsQyxlQUFBLEcsQ0FDQWhELFNBQUEsQyxVQUFBLENBQTBCaUQsUUFBMUIsQ0FBd0MsS0FBTyxDLEtBQzNDLEMsZUFEMkMsQyxNQUUzQyxDQUFNLEMsY0FDRixDQUFjVixTQUFBLEVBRFosQyxVQUVGLENBQVVNLFNBQUEsQyxnQkFBQSxHQUZSLEMsVUFHRixDQUFVQyxTQUFBLEMsS0FBQSxHQUhSLENBRnFDLENBQVAsQ0FBeEMsQ0FPSSxDQUFDOEIsU0FBRCxDQUFNQyxTQUFOLEcsOEJBQ0lELFMsQ0FDQSxPQUdKLE1BQU1FLFNBQUEsQ0FBcUJELFNBQUEsQyxnQkFBQSxDQUEzQixDQUNBakMsU0FBQSxDQUFZaUMsU0FBQSxDLGdCQUFBLEMsQ0FDWjlCLFNBQUEsQyxNQUFBLEcsQ0FDQUMsU0FBQSxDLGVBQUEsRyxDQUNBd0IsU0FBQSxDQUFvQnpCLFNBQXBCLENBQThDK0IsU0FBQSxDLGdCQUFBLENBQTlDLEMsQ0FDQU4sU0FBQSxDQUFvQnhCLFNBQXBCLENBQStDOEIsU0FBQSxDLGdCQUFBLENBQS9DLEMsQ0FDQTFLLE9BQUEsQyxnQkFBQSxFLGVBQUEsQ0FBb0J5SyxTQUFwQixDLEVBbEJKLEMsRUFuSHFDLEMsWUF3SXpDLEUsRUF4SXlDLENBQTdDLEMsRUFsbEJKLEciLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuICAgIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG4gICAgcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLlxyXG5cclxuICAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuICAgIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG4gICAgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULFxyXG4gICAgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbiAgICBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG4gICAgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUlxyXG4gICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbiAgICAvKiBnbG9iYWwgUmVmbGVjdCwgUHJvbWlzZSwgU3VwcHJlc3NlZEVycm9yLCBTeW1ib2wgKi9cclxuXHJcblxyXG4gICAgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdHlwZW9mIFN1cHByZXNzZWRFcnJvciA9PT0gXCJmdW5jdGlvblwiID8gU3VwcHJlc3NlZEVycm9yIDogZnVuY3Rpb24gKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7XHJcbiAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICAgICAgcmV0dXJuIGUubmFtZSA9IFwiU3VwcHJlc3NlZEVycm9yXCIsIGUuZXJyb3IgPSBlcnJvciwgZS5zdXBwcmVzc2VkID0gc3VwcHJlc3NlZCwgZTtcclxuICAgIH07XG5cbiAgICBjb25zdCBPcmdhbml6ZXNSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNVwiO1xuICAgIGNvbnN0IEZvbGRlclR5cGUgPSBcIm5zPTA7aT02MVwiO1xuICAgIGNvbnN0IEhhc0NvbXBvbmVudFJlZk5vZGVJZCA9IFwibnM9MDtpPTQ3XCI7XG4gICAgY29uc3QgSGFzUHJvcGVydHlSZWZOb2RlSWQgPSBcIm5zPTA7aT00NlwiO1xuICAgIGNvbnN0IEhhc0NoaWxkUmVmTm9kZUlkID0gXCJucz0wO2k9MzRcIjtcbiAgICBjb25zdCBIYXNTdWJ0eXBlUmVmTm9kZUlkID0gXCJucz0wO2k9NDVcIjtcbiAgICBjb25zdCBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZCA9IFwibnM9MDtpPTQwXCI7XG5cbiAgICB2YXIgQnJvd3NlRGlyZWN0aW9uO1xuICAgIChmdW5jdGlvbiAoQnJvd3NlRGlyZWN0aW9uKSB7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJGb3J3YXJkXCJdID0gMF0gPSBcIkZvcndhcmRcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmVyc2VcIl0gPSAxXSA9IFwiSW52ZXJzZVwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiQm90aFwiXSA9IDJdID0gXCJCb3RoXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZhbGlkXCJdID0gM10gPSBcIkludmFsaWRcIjtcbiAgICB9KShCcm93c2VEaXJlY3Rpb24gfHwgKEJyb3dzZURpcmVjdGlvbiA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzcztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzcykge1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVW5zcGVjaWZpZWRcIl0gPSAwXSA9IFwiVW5zcGVjaWZpZWRcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlXCJdID0gMl0gPSBcIlZhcmlhYmxlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlVHlwZVwiXSA9IDE2XSA9IFwiVmFyaWFibGVUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZpZXdcIl0gPSAxMjhdID0gXCJWaWV3XCI7XG4gICAgfSkoTm9kZUNsYXNzIHx8IChOb2RlQ2xhc3MgPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3NNYXNrO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzTWFzaykge1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZhcmlhYmxlXCJdID0gMl0gPSBcIlZhcmlhYmxlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZhcmlhYmxlVHlwZVwiXSA9IDE2XSA9IFwiVmFyaWFibGVUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZpZXdcIl0gPSAxMjhdID0gXCJWaWV3XCI7XG4gICAgfSkoTm9kZUNsYXNzTWFzayB8fCAoTm9kZUNsYXNzTWFzayA9IHt9KSk7XG4gICAgdmFyIFJlc3VsdE1hc2s7XG4gICAgKGZ1bmN0aW9uIChSZXN1bHRNYXNrKSB7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAxXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJJc0ZvcndhcmRcIl0gPSAyXSA9IFwiSXNGb3J3YXJkXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIk5vZGVDbGFzc1wiXSA9IDRdID0gXCJOb2RlQ2xhc3NcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiQnJvd3NlTmFtZVwiXSA9IDhdID0gXCJCcm93c2VOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkRpc3BsYXlOYW1lXCJdID0gMTZdID0gXCJEaXNwbGF5TmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJUeXBlRGVmaW5pdGlvblwiXSA9IDMyXSA9IFwiVHlwZURlZmluaXRpb25cIjtcbiAgICB9KShSZXN1bHRNYXNrIHx8IChSZXN1bHRNYXNrID0ge30pKTtcbiAgICAvLyAgY29uc3QgcSA9IFJlZmVyZW5jZVR5cGVJZHMuT3JnYW5pemVzO1xuICAgIGZ1bmN0aW9uIHJlc29sdmVOb2RlSWQobm9kZUlkTGlrZSkge1xuICAgICAgICBzd2l0Y2ggKG5vZGVJZExpa2UpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPcmdhbml6ZXNcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gT3JnYW5pemVzUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1Byb3BlcnR5XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1Byb3BlcnR5UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NvbXBvbmVudFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDb21wb25lbnRSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ2hpbGRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ2hpbGRSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzU3VidHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNTdWJ0eXBlUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1R5cGVEZWZpbml0aW9uXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZ2V0SWNvbiA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgc3dpdGNoIChyZWZlcmVuY2Uubm9kZUNsYXNzKSB7XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0XCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IE9yZ2FuaXplc1JlZk5vZGVJZCkgO1xuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UudHlwZURlZmluaXRpb24gPT09IEZvbGRlclR5cGUgfHwgcmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gXCJpPTYxXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1mb2xkZXJcIiwgY29sb3I6IFwicmdiYSg2MSwgNjAsIDQsIDAuNTI1KVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIlNlYUdyZWVuXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNDb21wb25lbnRSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJTdGVlbEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNQcm9wZXJ0eVJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkRvZGdlckJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgXCJNZXRob2RcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWNvZ1wiLCBjb2xvcjogXCJTYW5keUJyb3duXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1zbGlkZXJzXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGljb246IFwiZmEtcXVlc3Rpb25cIiwgY29sb3I6IFwiZ3JleVwiIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGJyb3dzZSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkLCB0ZW1wbGF0ZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9icm93c2VgO1xuICAgICAgICBjb25zdCBicm93c2VEZXNjcmlwdGlvbiA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGVtcGxhdGUpLCB7IG5vZGVJZCwgcmVzdWx0TWFzazogNjMgfSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGJyb3dzZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXM6IFtdIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkIDogXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICBjb25zdCByZWZlcmVuY2VzID0gcmVzcG9uc2UuYnJvd3NlUmVzdWx0LnJlZmVyZW5jZXMgfHwgW107XG4gICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXMgfTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHRlbXBsYXRlMSA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzQ2hpbGRcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB0ZW1wbGF0ZTIgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIk9yZ2FuaXplc1wiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IGludGVybmFsVmVyaWZ5ID0gKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCAkaW5wdXRFbGVtZW50LCAkaW5mbykgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCBub2RlSWQgPSAkaW5wdXRFbGVtZW50LnZhbCgpO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2goYCR7cm9vdH0vY2hlY2tOb2RlSWRgLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHNldE5vdGlmaWNhdGlvbiA9ICh0ZXh0LCBjbGFzc05hbWUpID0+IHtcbiAgICAgICAgICAgICRpbmZvLnRleHQodGV4dCkuYWRkQ2xhc3MoXCJzdGVyZml2ZS1pbmZvXCIpLmFkZENsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAkaW5mby5zaG93KCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAkaW5mby5yZW1vdmVDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgICAgICRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgIH0sIDMwMDApO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBqc29uID0gKHlpZWxkIGRhdGEuanNvbigpKTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZztcbiAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihcIiEhZmFpbHVyZSEhXCIgKyBub2RlSWQsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChqc29uLnN0YXR1c0NvZGUubWF0Y2goL0dvb2QvKSkge1xuICAgICAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZ1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKGpzb24ubm9kZUFkZHJlc3NTdHJpbmcpO1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCJHb29kXCIsIFwib2tcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChgJHtub2RlSWR9YCk7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKGAke2pzb24uc3RhdHVzQ29kZX0gJHtkYXRhLnN0YXR1c1RleHR9YCwgXCJmYWlsdXJlXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gZmV0Y2hDaGlsZHJlbigkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMSk7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQyID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUyKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlczogWy4uLmJyb3dzZVJlc3VsdDEucmVmZXJlbmNlcywgLi4uYnJvd3NlUmVzdWx0Mi5yZWZlcmVuY2VzXSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB0ZW1wbGF0ZVNUID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNTdWJ0eXBlXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHwgTm9kZUNsYXNzLk9iamVjdFR5cGUgfCBOb2RlQ2xhc3MuRGF0YVR5cGUgfCBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlLFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGZldGNoU3VidHlwZXMoJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZVNUKTtcbiAgICAgICAgICAgIHJldHVybiBicm93c2VSZXN1bHQxO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgbWFrZUVsZW1lbnQgPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmICghcmVmZXJlbmNlKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhICR7aWNvbn1cIiBzdHlsZT1cImNvbG9yOiR7Y29sb3J9O1wiPjwvaT4gJHt0fTx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICRlbGVtZW50LmFkZENsYXNzKFwiZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInZhbHVlXCIsIG4pO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICB9O1xuICAgIGNvbnN0IGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFsgVGVtcGVyYXR1cmUgIF1cbiAgICAgICAgICogICAoIHRvb2x0aXAgOiAoL09iamVjdHMvTXlTZW5zb3IpIChucz0xO3M9VGVtcGVyYXR1cmUpKVxuICAgICAgICAgKiBbICsgW0ZvbGRlcl0gT2JqZWN0c11cbiAgICAgICAgICogWyAgICAgW09iamVjdF0gTXlTZW5zb3JdXG4gICAgICAgICAqIFsgICAgICggKSBbVmFyaWFibGVdIFRlbXBlcmF0dXJlXVxuICAgICAgICAgKi9cbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5ub2RlQnJvd3NlclwiLCB7XG4gICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6ICgpID0+ICh7IGVuZHBvaW50OiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzXCIgfSksXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlOiAoKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBicm93c2VOYW1lOiB7IG5hbWVzcGFjZUluZGV4OiAwLCBuYW1lOiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICBub2RlQ2xhc3M6IFwiT2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIG5vZGVJZDogXCJucz0wO2k9ODVcIixcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IHsgdGV4dDogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZURlZmluaXRpb246IEZvbGRlclR5cGUsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZmlsdGVyOiAoKSA9PiB0cnVlLFxuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICAgICAgaXNUeXBlUmVmOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNvbHZlUGFyZW50Tm9kZSgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHR5cGVvZiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLnBhcmVudE5vZGUoKSA6IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYSBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB5aWVsZCBhO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc2V0KCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc29sdmVQYXJlbnROb2RlKCkudGhlbigocGFyZW50Tm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KHBhcmVudE5vZGUpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuY3VycmVudFBhcmVudCA9IHBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdmVyaWZ5KCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgaW50ZXJuYWxWZXJpZnkoZGF0YSwgdGhhdC4kaW5wdXQsIHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gX2ZldGNoRGF0YUZvck5vZGUoJG5vZGUsIGZldGNoRnVuYywgZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImxvYWRpbmdcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgbG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5hcHBlbmQoJzxkaXYgY2xhc3M9XCJzcGlubmVyXCI+PC9kaXY+Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHJlZmVyZW5jZXMgfSA9IHlpZWxkIGZldGNoRnVuYygkbm9kZSwgZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCByZWZlcmVuY2Ugb2YgcmVmZXJlbmNlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmZpbHRlciAmJiAhdGhhdC5vcHRpb25zLmZpbHRlcihyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKGA8bGk+ZXJyb3IgJHtlcnIubWVzc2FnZX08L2xpPmApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyXCIsIGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5maW5kKFwiLnNwaW5uZXJcIikucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5yZW1vdmVDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21ibyA9ICQoXCI8ZGl2Lz5cIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJzdGVyZml2ZS1jb21iby1ib3hcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHJlZSB3aWRnZXQgaXMgZ29pbmcgdG8gYmVjb21lIHZpc2libGVcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQucmVzb2x2ZVBhcmVudE5vZGUoKS50aGVuKChwYXJlbnROb2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnROb2RlICE9PSB0aGF0LmN1cnJlbnRQYXJlbnQgfHwgKChfYSA9IHRoYXQuY3VycmVudFBhcmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5vZGVJZCkgIT09IHBhcmVudE5vZGUubm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1mbGFza1wiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR2ZXJpZnlCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0bi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52ZXJpZnkoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIiwgXCJlbnRlciBhIG5vZGVJZCBvciBhIGJyb3dzZVBhdGggXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvID0gJChgPGRpdiBjbGFzcz1cImluZm8tdGV4dFwiPjwvZGl2PmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICAoe1xuICAgICAgICAgICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcInN0ZXJmaXZlLWRyb3Bkb3duXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5mbyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlID0gJChgPHVsIGNsYXNzPVwic3RlcmZpdmUtdHJlZVwiPjwvdWw+YCkuYXBwZW5kVG8odGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVXaWR0aCA9IDIwOyAvLyBTZXQgd2lkdGggb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlSGVpZ2h0ID0gMjA7IC8vIFNldCBoZWlnaHQgb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFBvcyA9ICQodGhpcykub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBldmVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUucGFnZVggPj0gZWxlbWVudFBvcy5sZWZ0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VYIDw9IGVsZW1lbnRQb3MubGVmdCArIGJlZm9yZVdpZHRoICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZID49IGVsZW1lbnRQb3MudG9wICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZIDw9IGVsZW1lbnRQb3MudG9wICsgYmVmb3JlSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGYgPSAhdGhhdC5vcHRpb25zLmlzVHlwZVJlZiA/IGZldGNoQ2hpbGRyZW4gOiBmZXRjaFN1YnR5cGVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9mZXRjaERhdGFGb3JOb2RlKCRsaSwgZiwgZGF0YSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIiBGZXRjaGluZyBkb25lXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1hcmsgYXMgZXhwYW5kZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUb2dnbGUgaXRzIGV4cGFuZGVkL2NvbGxhcHNlZCBzdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuY2hpbGRyZW4oXCJ1bFwiKS5jaGlsZHJlbigpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICRsaS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWZlcmVuY2UgPSAkbGkuZGF0YShcInJlZmVyZW5jZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlICYmICF0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXNwbGF5TmFtZSA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dCA9IGBbJHtkaXNwbGF5TmFtZX1dKCR7dmFsdWV9KWA7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC52YWwoaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsaWNraW5nIG91dHNpZGUgdGhlIHBhZ2Ugd2lsbCBoaWRlIHRoZSBkcm9wZG93blxuICAgICAgICAgICAgICAgICAgICBpZiAoISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KHRoYXQuJGNvbWJvKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGNoZWNrTm9kZUlkID0gKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vY2hlY2tOb2RlSWRgO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoaW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgY29uc3QgcmVzID0ge1xuICAgICAgICAgICAgICAgIHN0YXR1c0NvZGU6IFwiQmFkXCIsXG4gICAgICAgICAgICAgICAgbm9kZUFkZHJlc3NTdHJpbmc6IG5vZGVJZCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gbWFuYWdlQVBJQ2FsbChwcmVmaXgsIGJ0biwgZnVuYywgb25SZXN1bHQpIHtcbiAgICAgICAgY29uc3Qgc3VjY2Vzc0ljb24gPSAkKGAjJHtwcmVmaXh9LXN1Y2Nlc3NgKTtcbiAgICAgICAgY29uc3QgZmFpbHVyZUljb24gPSAkKGAjJHtwcmVmaXh9LWZhaWx1cmVgKTtcbiAgICAgICAgY29uc3QgcGVuZGluZ0ljb24gPSAkKGAjJHtwcmVmaXh9LXBlbmRpbmdgKTtcbiAgICAgICAgY29uc3QgbWVzc2FnZXMgPSAkKGAjJHtwcmVmaXh9LW1lc3NhZ2VzYCk7XG4gICAgICAgIGxldCBhY3Rpb25QZW5kaW5nID0gZmFsc2U7XG4gICAgICAgIHN1Y2Nlc3NJY29uLmhpZGUoKTtcbiAgICAgICAgZmFpbHVyZUljb24uaGlkZSgpO1xuICAgICAgICBwZW5kaW5nSWNvbi5oaWRlKCk7XG4gICAgICAgIGJ0bi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgIGlmIChhY3Rpb25QZW5kaW5nKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGFjdGlvblBlbmRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgcGVuZGluZ0ljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgcGVuZGluZ0ljb24uaHRtbChcIlRlc3RpbmcgQ29ubmVjdGlvbiAuLi5cIik7XG4gICAgICAgICAgICBzdWNjZXNzSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICBmYWlsdXJlSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICBtZXNzYWdlcy5odG1sKFwiXCIpO1xuICAgICAgICAgICAgY29uc3QgeyBib2R5LCB1cmwgfSA9IGZ1bmMoKTtcbiAgICAgICAgICAgIC8vIHh4IGNvbnNvbGUubG9nKFwieHh4eHhcIiwgYm9keSk7XG4gICAgICAgICAgICBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShib2R5KSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnRoZW4oKGRhdGEpID0+IGRhdGEuanNvbigpKVxuICAgICAgICAgICAgICAgIC50aGVuKChqc29uKSA9PiB7XG4gICAgICAgICAgICAgICAgYWN0aW9uUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHBlbmRpbmdJY29uLmhpZGUoKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCBcIiBcIikpO1xuICAgICAgICAgICAgICAgIGlmIChqc29uLnJlc3VsdCA9PT0gXCJva1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3NJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgZmFpbHVyZUljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlcy5odG1sKGpzb24ubWVzc2FnZS5yZXBsYWNlKFwiXFxuXCIsIFwiPGJyPlwiKSk7XG4gICAgICAgICAgICAgICAgICAgIG9uUmVzdWx0KG51bGwsIGpzb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWRhcHQgPSAoc3RyKSA9PiAhc3RyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogc3RyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KFwiXFxuXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCgoYSkgPT4gYDxwPiR7YX08L3A+YClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuam9pbihcIlxcblwiKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWRhcHQyID0gKHN0cikgPT4gKEFycmF5LmlzQXJyYXkoc3RyKSA/IHN0ci5tYXAoYWRhcHQpLmpvaW4oXCJcXG5cIikgOiBhZGFwdChzdHIpKTtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoYWRhcHQyKGpzb24ubWVzc2FnZSkgKyBhZGFwdDIoanNvbi5leHRyYSkpO1xuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdChuZXcgRXJyb3IoanNvbi5yZXN1bHQpLCBqc29uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgYWN0aW9uUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHBlbmRpbmdJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgZmFpbHVyZUljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoXCJpbnRlcm5hbCBlcnJvciBcIiArIGVyci5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgICAgIG9uUmVzdWx0KGVyciwgbnVsbCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IHJlZE5vZGUgPSBSRUQubm9kZXMubm9kZShlbmRwb2ludElkKTtcbiAgICAgICAgaWYgKCFyZWROb2RlKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgLy8gY29uc3QgY3JlZGVudGlhbHMgPSBSRUQuKGVuZHBvaW50SWQpO1xuICAgICAgICAvLyB3ZSBuZWVkIHRvIHNhbml0aXplIGFuZCBleHRyYWN0IHRoZSBlbmRwb2ludCBhdHRyaWJ1dGVzIG9ubHkgKCBub3QgdGhlIG5vZGUtcmVkIHN0dWZmKVxuICAgICAgICBjb25zdCB7IGVuZHBvaW50LCBzZWN1cml0eU1vZGUsIHNlY3VyaXR5UG9saWN5LCB1c2VySWRlbnRpdHlUeXBlLCBjcmVkZW50aWFscyB9ID0gcmVkTm9kZTtcbiAgICAgICAgY29uc3QgcmV0VmFsdWUgPSB7XG4gICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzLFxuICAgICAgICB9O1xuICAgICAgICBjb25zb2xlLmxvZyhcInh4eFwiLCByZXRWYWx1ZSk7XG4gICAgICAgIHJldHVybiByZXRWYWx1ZTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IGdldEVuZHBvaW50UGFyYW1ldGVycyxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVycyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCBlbmRwb2ludE5yID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgIGlmICghZW5kcG9pbnROcikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGVuZHBvaW50SWQsXG4gICAgICAgICAgICAvLyBlbmRwb2ludDogZW5kcG9pbnROci5lbmRwb2ludCxcbiAgICAgICAgICAgIC8vIHNlY3VyaXR5TW9kZTogZW5kcG9pbnROci5zZWN1cml0eU1vZGUsXG4gICAgICAgICAgICAvLyBzZWN1cml0eVBvbGljeTogZW5kcG9pbnROci5zZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyB1c2VySWRlbnRpdHlUeXBlOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICAvLyBjcmVkZW50aWFsOiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIHVzZXJOYW1lOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlck5hbWUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAvLyBwYXNzd29yZDogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlID09PSBcIlVzZXJOYW1lXCIgPyBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnBhc3N3b3JkIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgLy8gdXNlckNlcnRpZmljYXRlOiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJDZXJ0aWZpY2F0ZSxcbiAgICAgICAgICAgIC8vIHVzZXJQcml2YXRla2V5OiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJQcml2YXRla2V5LFxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBSRUQubm9kZXMucmVnaXN0ZXJUeXBlKFwiT3BjVWEtQ2xpZW50Mi1DYWxsXCIsIHtcbiAgICAgICAgY2F0ZWdvcnk6IFwib3BjdWFcIixcbiAgICAgICAgY29sb3I6IFwiI0MwREVFRFwiLFxuICAgICAgICBhbGlnbjogXCJyaWdodFwiLFxuICAgICAgICBpY29uOiBcIi4uLy4uL2ljb25zL29wY3Vhbm9kZUxvZ28ucG5nXCIsXG4gICAgICAgIHBhbGV0dGVMYWJlbDogXCJjYWxsXCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBpbnB1dHM6IHsgdmFsdWU6IDEgfSxcbiAgICAgICAgICAgIG91dHB1dDogeyB2YWx1ZTogNCB9LFxuICAgICAgICAgICAgLy8gQ29tbW9uXG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUsIHR5cGU6IFwiT3BjVWEtRW5kcG9pbnQyXCIgfSxcbiAgICAgICAgICAgIGFjdGlvbjogeyB2YWx1ZTogXCJyZWFkXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICAvLyBmb3IgYWN0aW9uIGNhbGxcbiAgICAgICAgICAgIG1ldGhvZElkOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgb2JqZWN0SWQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIH0sXG4gICAgICAgIC8vIGlucHV0czosXG4gICAgICAgIG91dHB1dHM6IDIsIC8vIDIgb3V0cHV0LCBzZWNvbmQgZm9yIHJhdyBub2RlLW9wY3VhIGRpYWdub3N0aWNzIG9yIG1vcmUgY29tcGxldGUgbWVzc2FnZVxuICAgICAgICBsYWJlbCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgXCJPUENVQS1DYWxsXCI7XG4gICAgICAgIH0sXG4gICAgICAgIGxhYmVsU3R5bGUoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lID8gXCJub2RlX2xhYmVsX2l0YWxpY1wiIDogXCJcIjtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0cHJlcGFyZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzO1xuICAgICAgICAgICAgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0KCk7XG4gICAgICAgICAgICBub2RlLmlucHV0cyA9IDE7XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIFNlY3Rpb24gQ2FsbFxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIGxldCBkYXRhVHlwZXMgPSB7fTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiQ2FsbGluZyBub2RlQnJvd3NlclwiKTtcbiAgICAgICAgICAgIC8vIHRvIGRvIGFkZCBhIHR5cGVzY3JpcHQgZGVmaW5pdGlvbiBmb3IgdGhpc1xuICAgICAgICAgICAgY29uc3QgJG9iamVjdElkID0gJChcIiNub2RlLWlucHV0LW9iamVjdElkXCIpO1xuICAgICAgICAgICAgY29uc3QgJG1ldGhvZElkID0gJChcIiNub2RlLWlucHV0LW1ldGhvZElkXCIpO1xuICAgICAgICAgICAgY29uc3QgJGlucHV0QXJndW1lbnREZWZpbml0aW9uID0gJChcIiNtZXRob2QtaW5wdXQtYXJndW1lbnQtZGVmaW5pdGlvblwiKTtcbiAgICAgICAgICAgIGNvbnN0ICRvdXRwdXRBcmd1bWVudERlZmluaXRpb24gPSAkKFwiI21ldGhvZC1vdXRwdXQtYXJndW1lbnQtZGVmaW5pdGlvblwiKTtcbiAgICAgICAgICAgIGNvbnN0ICR2YWxpZGF0ZUJ0biA9ICQoXCIjdmFsaWRhdGUtY2FsbC1hcmd1bWVudHMtYnV0dG9uXCIpO1xuICAgICAgICAgICAgJG9iamVjdElkLm5vZGVCcm93c2VyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSwgeyBmaWx0ZXIobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJPYmplY3RcIjtcbiAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgICAgICRtZXRob2RJZC5ub2RlQnJvd3NlcihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSksIHsgcGFyZW50Tm9kZTogKCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIHJlc3luYyB3aXRoIHdoYXQncyBpbiAgI25vZGUtaW5wdXQtb2JqZWN0SWRcbiAgICAgICAgICAgICAgICAgICAgbGV0IHJlZmVyZW5jZSA9ICRvYmplY3RJZC5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXJlZmVyZW5jZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9kZUlkRXggPSAkb2JqZWN0SWQudmFsKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbmRwb2ludE5vZGUgPSBnZXRFbmRQb2ludEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZW5kcG9pbnROb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb25uZWN0aW9uRGF0YSA9IHsgYmFzZVVybDogXCJcIiwgZW5kcG9pbnQ6IFwiXCIsIGVuZHBvaW50Tm9kZSB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByID0geWllbGQgY2hlY2tOb2RlSWQoY29ubmVjdGlvbkRhdGEsIG5vZGVJZEV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2UgPSByLnJlZmVyZW5jZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZWZlcmVuY2U7XG4gICAgICAgICAgICAgICAgfSksIGZpbHRlcihub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk1ldGhvZFwiIHx8IG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJPYmplY3RcIjtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGlzU2VsZWN0YWJsZShub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk1ldGhvZFwiO1xuICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICAgICAgJG9iamVjdElkLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAkbWV0aG9kSWQubm9kZUJyb3dzZXIoXCJyZXNldFwiKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJDYWxsaW5nIG5vZGVCcm93c2VyIERvbmVcIik7XG4gICAgICAgICAgICBmdW5jdGlvbiBhZGRBcmd1bWVudEN0cmwoY29udGFpbmVyLCBpbmRleCwgYXJnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9ICQoJzxkaXYgY2xhc3M9XCJhcmd1bWVudC1lbnRyeVwiPicpLmFwcGVuZFRvKGNvbnRhaW5lcik7XG4gICAgICAgICAgICAgICAgLy8gY29udGFpbmVyLmRhdGEoXCJkYXRhXCIsIGFyZyk7XG4gICAgICAgICAgICAgICAgJCgnPGlucHV0IHR5cGU9XCJ0ZXh0XCI+JylcbiAgICAgICAgICAgICAgICAgICAgLnZhbChhcmcubmFtZSB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAuY3NzKHsgd2lkdGg6IFwiMTAwJVwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhpdGVtKTtcbiAgICAgICAgICAgICAgICBjb25zdCBkID0gZGF0YVR5cGVzW2FyZy5kYXRhVHlwZS50b1N0cmluZygpXTtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhVHlwZU4gPSAoZCA/IGQuYnJvd3NlTmFtZS5uYW1lIHx8IFwiXCIgOiBhcmcuZGF0YVR5cGUudG9TdHJpbmcoKSkgKyAoYXJnLnZhbHVlUmFuayA9PT0gMSA/IFwiW11cIiA6IFwiXCIpO1xuICAgICAgICAgICAgICAgICQoJzxpbnB1dCB0eXBlPVwidGV4dFwiPicpXG4gICAgICAgICAgICAgICAgICAgIC52YWwoYXJnLmRlc2NyaXB0aW9uLnRleHQgfHwgXCJcIilcbiAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjUwJVwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhpdGVtKTtcbiAgICAgICAgICAgICAgICAkKCc8aW5wdXQgdHlwZT1cInRleHRcIj4nKVxuICAgICAgICAgICAgICAgICAgICAudmFsKGRhdGFUeXBlTiB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAuY3NzKHsgd2lkdGg6IFwiNTAlXCIgfSlcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGlucHV0QXJndW1lbnREZWZpbml0aW9uLmVkaXRhYmxlTGlzdCh7XG4gICAgICAgICAgICAgICAgYWRkQnV0dG9uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiYXV0b1wiLFxuICAgICAgICAgICAgICAgIHNjcm9sbE9uQWRkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBhZGRJdGVtKGNvbnRhaW5lciwgaSwgb2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgIGFkZEFyZ3VtZW50Q3RybChjb250YWluZXIsIGksIG9iamVjdCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbi5lZGl0YWJsZUxpc3Qoe1xuICAgICAgICAgICAgICAgIGFkZEJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBcImF1dG9cIixcbiAgICAgICAgICAgICAgICBzY3JvbGxPbkFkZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgYWRkSXRlbShjb250YWluZXIsIGksIG9iamVjdCkge1xuICAgICAgICAgICAgICAgICAgICBhZGRBcmd1bWVudEN0cmwoY29udGFpbmVyLCBpLCBvYmplY3QpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGZ1bmN0aW9uIGluc3RhbGxBcmd1bWVudExpc3QobGlzdCwgbWV0aG9kQXJndW1lbnRzKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJpbnN0YWxsQXJndW1lbnRMaXN0XCIsIG1ldGhvZEFyZ3VtZW50cy5sZW5ndGgsIFwiYXJndW1lbnRzXCIsIG1ldGhvZEFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgbGlzdC5lZGl0YWJsZUxpc3QoXCJlbXB0eVwiKTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1ldGhvZEFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBsaXN0LmVkaXRhYmxlTGlzdChcImFkZEl0ZW1cIiwgbWV0aG9kQXJndW1lbnRzW2ldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkaW5wdXRBcmd1bWVudERlZmluaXRpb24uaGlkZSgpO1xuICAgICAgICAgICAgJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbi5oaWRlKCk7XG4gICAgICAgICAgICBtYW5hZ2VBUElDYWxsKFwidmFsaWRhdGVcIiwgJHZhbGlkYXRlQnRuLCAoKSA9PiAoe1xuICAgICAgICAgICAgICAgIHVybDogXCIvb3BjdWEtZW5kcG9pbnQyL2FyZ3VtZW50RGVmaW5pdGlvblwiLFxuICAgICAgICAgICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBnZXRFbmRwb2ludFBhcmFtZXRlcnMoKSxcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0SWQ6ICRvYmplY3RJZC52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgbWV0aG9kSWQ6ICRtZXRob2RJZC52YWwoKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksIChlcnIsIGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gcG9wdWxhdGUgdGhlIGxpc3RcbiAgICAgICAgICAgICAgICBjb25zdCBhcmd1bWVudERlZmluaXRpb24gPSBkYXRhLmFyZ3VtZW50RGVmaW5pdGlvbjtcbiAgICAgICAgICAgICAgICBkYXRhVHlwZXMgPSBkYXRhLmRhdGFUeXBlcztcbiAgICAgICAgICAgICAgICAkaW5wdXRBcmd1bWVudERlZmluaXRpb24uc2hvdygpO1xuICAgICAgICAgICAgICAgICRvdXRwdXRBcmd1bWVudERlZmluaXRpb24uc2hvdygpO1xuICAgICAgICAgICAgICAgIGluc3RhbGxBcmd1bWVudExpc3QoJGlucHV0QXJndW1lbnREZWZpbml0aW9uLCBhcmd1bWVudERlZmluaXRpb24uaW5wdXRBcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIGluc3RhbGxBcmd1bWVudExpc3QoJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbiwgYXJndW1lbnREZWZpbml0aW9uLm91dHB1dEFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJkYXRhXCIsIGRhdGEpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHNhdmUoKSB7IH0sXG4gICAgfSk7XG5cbn0pKCk7Il19
7
+ (function(_0x2b7ecd,_0x2a20ab){const _0x495bc6=_0x3cd8,_0x2d5176=_0x2b7ecd();while(!![]){try{const _0xc84bb7=-parseInt(_0x495bc6(0x1a6))/0x1*(parseInt(_0x495bc6(0x20c))/0x2)+parseInt(_0x495bc6(0x17b))/0x3*(-parseInt(_0x495bc6(0x1bb))/0x4)+parseInt(_0x495bc6(0x185))/0x5+parseInt(_0x495bc6(0x1ae))/0x6+parseInt(_0x495bc6(0x164))/0x7+-parseInt(_0x495bc6(0x1ad))/0x8*(-parseInt(_0x495bc6(0x1aa))/0x9)+parseInt(_0x495bc6(0x1fc))/0xa;if(_0xc84bb7===_0x2a20ab)break;else _0x2d5176['push'](_0x2d5176['shift']());}catch(_0x5c4f52){_0x2d5176['push'](_0x2d5176['shift']());}}}(_0x4ecd,0x269d3),(function(){'use strict';const _0x3dcd5e=_0x3cd8;function _0x144a89(_0x4a0795,_0x628513,_0x2bdc49,_0x1df0e6){function _0x1c6ef2(_0x399cd6){return _0x399cd6 instanceof _0x2bdc49?_0x399cd6:new _0x2bdc49(function(_0x48d8e0){_0x48d8e0(_0x399cd6);});}return new(_0x2bdc49||(_0x2bdc49=Promise))(function(_0x30cc6e,_0x53988d){const _0x51b8a7=_0x3cd8;function _0x2b0889(_0x47368b){const _0x3e453=_0x3cd8;try{_0x461fe0(_0x1df0e6[_0x3e453(0x205)](_0x47368b));}catch(_0x5b0862){_0x53988d(_0x5b0862);}}function _0x40db1d(_0x3452cd){const _0x1ef31c=_0x3cd8;try{_0x461fe0(_0x1df0e6[_0x1ef31c(0x17f)](_0x3452cd));}catch(_0x464464){_0x53988d(_0x464464);}}function _0x461fe0(_0x3a905f){const _0x213376=_0x3cd8;_0x3a905f['done']?_0x30cc6e(_0x3a905f[_0x213376(0x20f)]):_0x1c6ef2(_0x3a905f[_0x213376(0x20f)])[_0x213376(0x144)](_0x2b0889,_0x40db1d);}_0x461fe0((_0x1df0e6=_0x1df0e6[_0x51b8a7(0x141)](_0x4a0795,_0x628513||[]))[_0x51b8a7(0x205)]());});}typeof SuppressedError===_0x3dcd5e(0x181)?SuppressedError:function(_0x5240eb,_0x51b2e9,_0x44aa43){const _0x40e676=_0x3dcd5e;var _0x10f59d=new Error(_0x44aa43);return _0x10f59d[_0x40e676(0x1cd)]=_0x40e676(0x16c),_0x10f59d[_0x40e676(0x163)]=_0x5240eb,_0x10f59d[_0x40e676(0x1e9)]=_0x51b2e9,_0x10f59d;};const _0x359b6b='ns=0;i=35',_0x3e8b52=_0x3dcd5e(0x21b),_0x307e3f=_0x3dcd5e(0x212),_0x5b100a=_0x3dcd5e(0x14b),_0x228ab5=_0x3dcd5e(0x1cf),_0x5c22d0=_0x3dcd5e(0x17d),_0x94103f='ns=0;i=40';var _0x4f7118;(function(_0x43eba3){const _0xb6bc36=_0x3dcd5e;_0x43eba3[_0x43eba3['Forward']=0x0]='Forward',_0x43eba3[_0x43eba3[_0xb6bc36(0x15b)]=0x1]=_0xb6bc36(0x15b),_0x43eba3[_0x43eba3['Both']=0x2]=_0xb6bc36(0x1f5),_0x43eba3[_0x43eba3['Invalid']=0x3]=_0xb6bc36(0x183);}(_0x4f7118||(_0x4f7118={})));var _0x40bf7d;(function(_0x9a8c88){const _0x134a4f=_0x3dcd5e;_0x9a8c88[_0x9a8c88[_0x134a4f(0x140)]=0x0]='Unspecified',_0x9a8c88[_0x9a8c88[_0x134a4f(0x210)]=0x1]=_0x134a4f(0x210),_0x9a8c88[_0x9a8c88[_0x134a4f(0x1e5)]=0x2]='Variable',_0x9a8c88[_0x9a8c88[_0x134a4f(0x1f3)]=0x4]='Method',_0x9a8c88[_0x9a8c88[_0x134a4f(0x15e)]=0x8]=_0x134a4f(0x15e),_0x9a8c88[_0x9a8c88[_0x134a4f(0x1e2)]=0x10]=_0x134a4f(0x1e2),_0x9a8c88[_0x9a8c88[_0x134a4f(0x1e8)]=0x20]=_0x134a4f(0x1e8),_0x9a8c88[_0x9a8c88[_0x134a4f(0x1d1)]=0x40]='DataType',_0x9a8c88[_0x9a8c88[_0x134a4f(0x159)]=0x80]=_0x134a4f(0x159);}(_0x40bf7d||(_0x40bf7d={})));var _0x230041;(function(_0x562834){const _0x222ab6=_0x3dcd5e;_0x562834[_0x562834['Object']=0x1]=_0x222ab6(0x210),_0x562834[_0x562834[_0x222ab6(0x1e5)]=0x2]=_0x222ab6(0x1e5),_0x562834[_0x562834['Method']=0x4]=_0x222ab6(0x1f3),_0x562834[_0x562834[_0x222ab6(0x15e)]=0x8]='ObjectType',_0x562834[_0x562834['VariableType']=0x10]=_0x222ab6(0x1e2),_0x562834[_0x562834[_0x222ab6(0x1e8)]=0x20]='ReferenceType',_0x562834[_0x562834[_0x222ab6(0x1d1)]=0x40]=_0x222ab6(0x1d1),_0x562834[_0x562834[_0x222ab6(0x159)]=0x80]=_0x222ab6(0x159);}(_0x230041||(_0x230041={})));var _0x37d1a9;(function(_0x3db0f4){const _0x17c9d1=_0x3dcd5e;_0x3db0f4[_0x3db0f4[_0x17c9d1(0x1e8)]=0x1]=_0x17c9d1(0x1e8),_0x3db0f4[_0x3db0f4[_0x17c9d1(0x17e)]=0x2]=_0x17c9d1(0x17e),_0x3db0f4[_0x3db0f4['NodeClass']=0x4]=_0x17c9d1(0x1df),_0x3db0f4[_0x3db0f4[_0x17c9d1(0x15f)]=0x8]=_0x17c9d1(0x15f),_0x3db0f4[_0x3db0f4[_0x17c9d1(0x1a4)]=0x10]=_0x17c9d1(0x1a4),_0x3db0f4[_0x3db0f4['TypeDefinition']=0x20]=_0x17c9d1(0x175);}(_0x37d1a9||(_0x37d1a9={})));function _0x3e987b(_0xdca4d2){const _0x19b130=_0x3dcd5e;switch(_0xdca4d2){case'Organizes':return _0x359b6b;case _0x19b130(0x1b5):return _0x5b100a;case'HasComponent':return _0x307e3f;case _0x19b130(0x1fa):return _0x228ab5;case _0x19b130(0x18a):return _0x5c22d0;case _0x19b130(0x1f9):return _0x94103f;}}const _0xb134ac=_0x44181a=>{const _0x5cac50=_0x3dcd5e;switch(_0x44181a[_0x5cac50(0x1ca)]){case _0x5cac50(0x210):if(_0x44181a[_0x5cac50(0x1e7)]===_0x359b6b);if(_0x44181a[_0x5cac50(0x1f0)]===_0x3e8b52||_0x44181a[_0x5cac50(0x1e7)]==='i=61')return{'icon':_0x5cac50(0x1ff),'color':_0x5cac50(0x1d0)};return{'icon':'fa-object-group','color':_0x5cac50(0x1da)};case _0x5cac50(0x1e5):if(_0x44181a[_0x5cac50(0x1e7)]===_0x307e3f)return{'icon':_0x5cac50(0x206),'color':_0x5cac50(0x153)};else return _0x44181a[_0x5cac50(0x1e7)]===_0x5b100a?{'icon':'fa-list-alt','color':_0x5cac50(0x1e0)}:{'icon':_0x5cac50(0x206),'color':_0x5cac50(0x1c4)};case _0x5cac50(0x1f3):return{'icon':_0x5cac50(0x1fd),'color':_0x5cac50(0x1b6)};case _0x5cac50(0x15e):return{'icon':_0x5cac50(0x1ee),'color':_0x5cac50(0x161)};case _0x5cac50(0x1e2):return{'icon':_0x5cac50(0x18d),'color':_0x5cac50(0x161)};case'DataType':return{'icon':_0x5cac50(0x1c6),'color':_0x5cac50(0x1c4)};}return{'icon':_0x5cac50(0x145),'color':'grey'};},_0x509bde=({endpointNode:_0x46dc00,endpoint:_0x5d7d69,baseUrl:_0x454b89},_0x478a64,_0x5a28f9)=>_0x144a89(void 0x0,void 0x0,void 0x0,function*(){const _0x1e4012=_0x3dcd5e,_0x2b31df=_0x454b89+_0x1e4012(0x191),_0x3a8d62=_0x2b31df+_0x1e4012(0x16a),_0x4a5067=Object['assign'](Object[_0x1e4012(0x1fb)]({},_0x5a28f9),{'nodeId':_0x478a64,'resultMask':0x3f}),_0x13a40e=yield fetch(_0x3a8d62,{'method':'POST','body':JSON[_0x1e4012(0x1ec)]({'endpointNode':_0x46dc00,'endpoint':_0x5d7d69,'browseDescription':_0x4a5067}),'headers':{'Content-Type':_0x1e4012(0x13f)}});if(_0x13a40e[_0x1e4012(0x147)]!==0xc8)return console[_0x1e4012(0x167)](_0x1e4012(0x162),_0x13a40e[_0x1e4012(0x147)],_0x13a40e['statusText']),{'references':[]};console['log'](_0x1e4012(0x179),_0x13a40e[_0x1e4012(0x147)],_0x13a40e[_0x1e4012(0x158)]);const _0x32f4ba=yield _0x13a40e['json'](),_0x157750=_0x32f4ba[_0x1e4012(0x1ac)][_0x1e4012(0x146)]||[];return{'references':_0x157750};}),_0x550bd1={'referenceTypeId':_0x3e987b('HasChild'),'includeSubtypes':!![],'browseDirection':_0x4f7118[_0x3dcd5e(0x165)],'nodeClassMask':_0x40bf7d[_0x3dcd5e(0x1e5)]|_0x40bf7d[_0x3dcd5e(0x210)]|_0x40bf7d[_0x3dcd5e(0x1f3)],'resultMask':0x3f},_0x3b4c03={'referenceTypeId':_0x3e987b(_0x3dcd5e(0x186)),'includeSubtypes':!![],'browseDirection':_0x4f7118[_0x3dcd5e(0x165)],'nodeClassMask':_0x40bf7d['Variable']|_0x40bf7d[_0x3dcd5e(0x210)]|_0x40bf7d['Method'],'resultMask':0x3f},_0x53f9cb=({endpointNode:_0x1b5982,endpoint:_0x1aa9c1,baseUrl:_0x37edbf},_0x4152e8,_0x48795)=>_0x144a89(void 0x0,void 0x0,void 0x0,function*(){const _0x33a624=_0x3dcd5e,_0x2248fa=_0x37edbf+'/opcua-endpoint2',_0xb77e1a=_0x4152e8[_0x33a624(0x1b0)](),_0x29ef1e=yield fetch(_0x2248fa+_0x33a624(0x1d7),{'method':'POST','body':JSON['stringify']({'endpointNode':_0x1b5982,'endpoint':_0x1aa9c1,'nodeId':_0xb77e1a}),'headers':{'Content-Type':_0x33a624(0x13f)}}),_0x40156f=(_0x358146,_0x5066ab)=>{const _0x874b80=_0x33a624;_0x48795['text'](_0x358146)[_0x874b80(0x169)](_0x874b80(0x196))['addClass'](_0x5066ab),_0x48795[_0x874b80(0x213)](),setTimeout(()=>{const _0x1c1c82=_0x874b80;_0x48795[_0x1c1c82(0x14a)](_0x5066ab),_0x48795[_0x1c1c82(0x200)]();},0xbb8);},_0x334c04=yield _0x29ef1e['json']();_0x29ef1e[_0x33a624(0x147)]!==0xc8?_0x40156f(_0x33a624(0x19d)+_0xb77e1a,_0x33a624(0x157)):_0x334c04[_0x33a624(0x19b)][_0x33a624(0x15c)](/Good/)?(_0x4152e8[_0x33a624(0x1b0)](_0x334c04['nodeAddressString']),_0x4152e8[_0x33a624(0x1ea)](_0x33a624(0x211)),_0x40156f(_0x33a624(0x1b9),'ok')):(_0x4152e8[_0x33a624(0x1b0)](''+_0xb77e1a),_0x40156f(_0x334c04['statusCode']+'\x20'+_0x29ef1e['statusText'],'failure'));});function _0x4d4ebe(_0x4e9eab,_0x653c7a){return _0x144a89(this,void 0x0,void 0x0,function*(){const _0x43a8b1=_0x3cd8,_0x54deb2=_0x4e9eab[_0x43a8b1(0x1de)](_0x43a8b1(0x20f)),_0x5092e9=yield _0x509bde(_0x653c7a,_0x54deb2,_0x550bd1),_0x590f89=yield _0x509bde(_0x653c7a,_0x54deb2,_0x3b4c03);return{'references':[..._0x5092e9[_0x43a8b1(0x146)],..._0x590f89[_0x43a8b1(0x146)]]};});}const _0x3b4673={'referenceTypeId':_0x3e987b(_0x3dcd5e(0x18a)),'includeSubtypes':!![],'browseDirection':_0x4f7118[_0x3dcd5e(0x165)],'nodeClassMask':_0x40bf7d[_0x3dcd5e(0x1e8)]|_0x40bf7d[_0x3dcd5e(0x15e)]|_0x40bf7d[_0x3dcd5e(0x1d1)]|_0x40bf7d[_0x3dcd5e(0x1e2)],'resultMask':0x3f};function _0x3b5584(_0x250375,_0x44d809){return _0x144a89(this,void 0x0,void 0x0,function*(){const _0x4d83cc=_0x3cd8,_0x56ae87=_0x250375[_0x4d83cc(0x1de)](_0x4d83cc(0x20f)),_0x9b7b76=yield _0x509bde(_0x44d809,_0x56ae87,_0x3b4673);return _0x9b7b76;});}const _0x57bc2b=_0xa5c24e=>{const _0x336033=_0x3dcd5e;var _0x85fa98,_0x56e755;if(!_0xa5c24e){const _0x1c7ca8=$(_0x336033(0x1a0));return _0x1c7ca8;}const _0x22a634=_0xa5c24e['nodeId'][_0x336033(0x16f)](),_0x3ca0c9=((_0x85fa98=_0xa5c24e['displayName'])===null||_0x85fa98===void 0x0?void 0x0:_0x85fa98[_0x336033(0x1ab)])||((_0x56e755=_0xa5c24e['browseName'])===null||_0x56e755===void 0x0?void 0x0:_0x56e755[_0x336033(0x1cd)])||_0xa5c24e[_0x336033(0x177)][_0x336033(0x16f)](),{icon:_0x5e4a25,color:_0x376085}=_0xb134ac(_0xa5c24e),_0x88521d=$(_0x336033(0x1c7)+_0x5e4a25+_0x336033(0x1a9)+_0x376085+_0x336033(0x1c1)+_0x3ca0c9+_0x336033(0x20e));return _0x88521d[_0x336033(0x169)](_0x336033(0x1e1)),_0x88521d[_0x336033(0x1de)](_0x336033(0x20f),_0x22a634),_0x88521d[_0x336033(0x1de)](_0x336033(0x16e),_0xa5c24e),_0x88521d;},_0x3a88a9=()=>{const _0x5d6200=_0x3dcd5e;$[_0x5d6200(0x1f4)](_0x5d6200(0x1c8),{'options':{'endpointNode':()=>({'endpoint':'opc.tcp://opcuademo.sterfive.com:26543'}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x5d6200(0x173)},'nodeClass':_0x5d6200(0x210),'nodeId':'ns=0;i=85','displayName':{'text':_0x5d6200(0x173)},'typeDefinition':_0x3e8b52}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x144a89(this,void 0x0,void 0x0,function*(){const _0x18fb65=_0x3cd8,_0x308802=this,_0x3ea8d4=typeof _0x308802[_0x18fb65(0x1a7)][_0x18fb65(0x19c)]===_0x18fb65(0x181)?_0x308802[_0x18fb65(0x1a7)][_0x18fb65(0x19c)]():_0x308802[_0x18fb65(0x1a7)][_0x18fb65(0x19c)];if(_0x3ea8d4 instanceof Promise)return yield _0x3ea8d4;return _0x3ea8d4;});},'reset'(){const _0x3b3599=_0x5d6200,_0x576ad2=this;_0x576ad2[_0x3b3599(0x1bc)]['empty'](),this[_0x3b3599(0x19e)]()[_0x3b3599(0x144)](_0x56654e=>{const _0x27dbac=_0x3b3599,_0x32af3c=_0x57bc2b(_0x56654e);_0x576ad2['$tree']['append'](_0x32af3c),_0x576ad2[_0x27dbac(0x188)]=_0x56654e;});},'verify'(){const _0x43b77c=_0x5d6200,_0x1e6d29=this,_0x232b85={'baseUrl':_0x1e6d29[_0x43b77c(0x1a7)][_0x43b77c(0x176)],'endpointNode':typeof _0x1e6d29[_0x43b77c(0x1a7)]['endpointNode']==='function'?_0x1e6d29[_0x43b77c(0x1a7)]['endpointNode']():_0x1e6d29[_0x43b77c(0x1a7)][_0x43b77c(0x184)],'endpoint':typeof _0x1e6d29[_0x43b77c(0x1a7)]['endpoint']==='function'?_0x1e6d29[_0x43b77c(0x1a7)][_0x43b77c(0x1db)]():_0x1e6d29[_0x43b77c(0x1a7)][_0x43b77c(0x1db)]};_0x53f9cb(_0x232b85,_0x1e6d29[_0x43b77c(0x21a)],_0x1e6d29['$info']);},'_create'(){const _0x487f9a=_0x5d6200,_0x9c6900=this;function _0x2be075(_0x26f37f,_0x2ca449,_0x2d202b){return _0x144a89(this,void 0x0,void 0x0,function*(){const _0x4b2e67=_0x3cd8;if(_0x26f37f[_0x4b2e67(0x1d3)]('fetched')){console[_0x4b2e67(0x167)]('already\x20fetched');return;}if(_0x26f37f['hasClass']('loading')){console['log'](_0x4b2e67(0x1ce));return;}_0x26f37f[_0x4b2e67(0x169)](_0x4b2e67(0x1ba)),_0x26f37f[_0x4b2e67(0x198)](_0x4b2e67(0x1f1));try{_0x26f37f[_0x4b2e67(0x14f)]('ul')[_0x4b2e67(0x1ed)]();const {references:_0xcef2f2}=yield _0x2ca449(_0x26f37f,_0x2d202b);for(const _0x37267e of _0xcef2f2){if(_0x9c6900[_0x4b2e67(0x1a7)][_0x4b2e67(0x182)]&&!_0x9c6900['options'][_0x4b2e67(0x182)](_0x37267e))continue;const _0x3d0aa6=_0x57bc2b(_0x37267e);_0x26f37f[_0x4b2e67(0x14f)]('ul')[_0x4b2e67(0x198)](_0x3d0aa6);}_0x26f37f[_0x4b2e67(0x169)](_0x4b2e67(0x1e3));}catch(_0x2ab966){_0x26f37f[_0x4b2e67(0x14f)]('ul')[_0x4b2e67(0x198)](_0x4b2e67(0x1af)+_0x2ab966[_0x4b2e67(0x17a)]+_0x4b2e67(0x20b)),console[_0x4b2e67(0x167)](_0x4b2e67(0x166),_0x2ab966);}_0x26f37f[_0x4b2e67(0x1d8)](_0x4b2e67(0x155))['remove'](),_0x26f37f[_0x4b2e67(0x14a)](_0x4b2e67(0x1ba));});}_0x9c6900['$input']=this[_0x487f9a(0x1d5)],_0x9c6900[_0x487f9a(0x193)]=$('<div/>'),_0x9c6900['$combo'][_0x487f9a(0x169)](_0x487f9a(0x18c)),this['element']['replaceWith'](_0x9c6900[_0x487f9a(0x193)]),_0x9c6900[_0x487f9a(0x1d2)]=$('<div/>')[_0x487f9a(0x169)](_0x487f9a(0x1ef)),_0x9c6900[_0x487f9a(0x193)]['append'](_0x9c6900['$inputGroup']),_0x9c6900[_0x487f9a(0x1d2)][_0x487f9a(0x198)](_0x9c6900[_0x487f9a(0x21a)]),_0x9c6900[_0x487f9a(0x1bd)]=$(_0x487f9a(0x1a1)),_0x9c6900[_0x487f9a(0x1d2)][_0x487f9a(0x198)](_0x9c6900['$toggleTreeBtn']),_0x9c6900[_0x487f9a(0x1bd)]['on'](_0x487f9a(0x1e4),function(){const _0x55de0e=_0x487f9a;!_0x9c6900[_0x55de0e(0x171)]['is'](_0x55de0e(0x1b3))&&(_0x9c6900['resolveParentNode']()[_0x55de0e(0x144)](_0x475595=>{const _0x11e0b3=_0x55de0e;var _0x422c17;(_0x475595!==_0x9c6900[_0x11e0b3(0x188)]||((_0x422c17=_0x9c6900[_0x11e0b3(0x188)])===null||_0x422c17===void 0x0?void 0x0:_0x422c17[_0x11e0b3(0x177)])!==_0x475595[_0x11e0b3(0x177)])&&_0x9c6900[_0x11e0b3(0x151)]();}),_0x9c6900[_0x55de0e(0x201)][_0x55de0e(0x200)]()),_0x9c6900['$dropdown'][_0x55de0e(0x180)]();}),_0x9c6900[_0x487f9a(0x1f6)]=$(_0x487f9a(0x214)),_0x9c6900[_0x487f9a(0x1d2)][_0x487f9a(0x198)](_0x9c6900['$verifyBtn']),_0x9c6900[_0x487f9a(0x1f6)]['on'](_0x487f9a(0x1e4),()=>{this['verify']();}),!_0x9c6900[_0x487f9a(0x21a)][_0x487f9a(0x1dd)](_0x487f9a(0x1eb))&&_0x9c6900[_0x487f9a(0x21a)][_0x487f9a(0x1dd)](_0x487f9a(0x1eb),_0x487f9a(0x190)),_0x9c6900[_0x487f9a(0x201)]=$(_0x487f9a(0x1f7)),_0x9c6900[_0x487f9a(0x201)]['hide'](),{'baseUrl':_0x9c6900[_0x487f9a(0x1a7)][_0x487f9a(0x176)],'endpointNode':typeof _0x9c6900[_0x487f9a(0x1a7)][_0x487f9a(0x184)]===_0x487f9a(0x181)?_0x9c6900[_0x487f9a(0x1a7)][_0x487f9a(0x184)]():_0x9c6900[_0x487f9a(0x1a7)][_0x487f9a(0x184)],'endpoint':typeof _0x9c6900[_0x487f9a(0x1a7)]['endpoint']===_0x487f9a(0x181)?_0x9c6900['options'][_0x487f9a(0x1db)]():_0x9c6900['options'][_0x487f9a(0x1db)]},_0x9c6900[_0x487f9a(0x171)]=$(_0x487f9a(0x204))[_0x487f9a(0x169)](_0x487f9a(0x178))[_0x487f9a(0x200)](),_0x9c6900[_0x487f9a(0x193)]['append'](_0x9c6900['$info']),_0x9c6900[_0x487f9a(0x193)][_0x487f9a(0x198)](_0x9c6900['$dropdown']),_0x9c6900[_0x487f9a(0x1bc)]=$(_0x487f9a(0x1b7))[_0x487f9a(0x20a)](_0x9c6900['$dropdown']),this['reset'](),_0x9c6900['$tree']['on'](_0x487f9a(0x1e4),'li',function(_0x250163){const _0x40749d=_0x487f9a;var _0x3d3bae,_0x103fcb;_0x250163[_0x40749d(0x1bf)]();let _0x49c7a4=$(this);const _0x202e27=0x14,_0x2484d5=0x14,_0x762e43=$(this)[_0x40749d(0x142)](),_0x22832d=_0x250163;if(_0x22832d['pageX']>=_0x762e43[_0x40749d(0x207)]&&_0x22832d[_0x40749d(0x215)]<=_0x762e43['left']+_0x202e27&&_0x22832d[_0x40749d(0x15d)]>=_0x762e43[_0x40749d(0x1a3)]&&_0x22832d['pageY']<=_0x762e43['top']+_0x2484d5){if(_0x49c7a4[_0x40749d(0x1d3)](_0x40749d(0x1e1))){if(_0x49c7a4[_0x40749d(0x1d3)](_0x40749d(0x1e3))){_0x49c7a4[_0x40749d(0x14a)](_0x40749d(0x1e1))['addClass']('expanded'),_0x49c7a4[_0x40749d(0x14f)]('ul')[_0x40749d(0x180)]();return;}const _0x218475={'baseUrl':_0x9c6900['options'][_0x40749d(0x176)],'endpointNode':typeof _0x9c6900[_0x40749d(0x1a7)][_0x40749d(0x184)]===_0x40749d(0x181)?_0x9c6900['options'][_0x40749d(0x184)]():_0x9c6900[_0x40749d(0x1a7)]['endpointNode'],'endpoint':typeof _0x9c6900[_0x40749d(0x1a7)]['endpoint']===_0x40749d(0x181)?_0x9c6900[_0x40749d(0x1a7)]['endpoint']():_0x9c6900['options'][_0x40749d(0x1db)]},_0x33caec=!_0x9c6900[_0x40749d(0x1a7)]['isTypeRef']?_0x4d4ebe:_0x3b5584;_0x2be075(_0x49c7a4,_0x33caec,_0x218475)[_0x40749d(0x144)](()=>{const _0x1bec31=_0x40749d;console[_0x1bec31(0x167)](_0x1bec31(0x18f)),console['log'](_0x1bec31(0x1e3)),_0x49c7a4[_0x1bec31(0x14a)](_0x1bec31(0x1e1))['addClass'](_0x1bec31(0x156));})[_0x40749d(0x168)](_0x81469c=>{const _0x4ce79b=_0x40749d;_0x49c7a4[_0x4ce79b(0x14a)](_0x4ce79b(0x1e1))['addClass'](_0x4ce79b(0x156)),console[_0x4ce79b(0x167)]('error',_0x81469c);});}else{if(_0x49c7a4[_0x40749d(0x1d3)](_0x40749d(0x156)))_0x49c7a4['children']('ul')['toggle'](),_0x49c7a4['toggleClass'](_0x40749d(0x17c));else{if(_0x49c7a4[_0x40749d(0x14f)]('ul')[_0x40749d(0x14f)]()[_0x40749d(0x16d)]>0x0)_0x49c7a4['children']('ul')[_0x40749d(0x180)](),_0x49c7a4[_0x40749d(0x1c2)](_0x40749d(0x17c));else;}}}else{const _0x11d9b1=_0x49c7a4[_0x40749d(0x1de)](_0x40749d(0x20f)),_0x1f3773=_0x49c7a4[_0x40749d(0x1de)](_0x40749d(0x16e));if(_0x9c6900[_0x40749d(0x1a7)][_0x40749d(0x1c0)]&&!_0x9c6900[_0x40749d(0x1a7)][_0x40749d(0x1c0)](_0x1f3773))return;_0x9c6900[_0x40749d(0x21a)][_0x40749d(0x1de)]('reference',_0x1f3773);const _0x3a56d4=((_0x3d3bae=_0x1f3773[_0x40749d(0x18b)])===null||_0x3d3bae===void 0x0?void 0x0:_0x3d3bae[_0x40749d(0x1ab)])||((_0x103fcb=_0x1f3773[_0x40749d(0x1dc)])===null||_0x103fcb===void 0x0?void 0x0:_0x103fcb[_0x40749d(0x1cd)])||_0x1f3773['nodeId'][_0x40749d(0x16f)](),_0x2c57a5='['+_0x3a56d4+']('+_0x11d9b1+')';_0x9c6900[_0x40749d(0x21a)][_0x40749d(0x1b0)](_0x2c57a5),_0x9c6900[_0x40749d(0x21a)]['trigger']('change'),_0x9c6900[_0x40749d(0x171)]['hide']();}}),$(document)['on'](_0x487f9a(0x1e4),function(_0x462e4d){const _0x1e3fb5=_0x487f9a;!$(_0x462e4d['target'])[_0x1e3fb5(0x1cc)](_0x9c6900['$combo'])[_0x1e3fb5(0x16d)]&&_0x9c6900[_0x1e3fb5(0x171)][_0x1e3fb5(0x200)]();});}});},_0x5b6cc8=({endpointNode:_0x57861b,endpoint:_0x48666d,baseUrl:_0x2062fc},_0x272d40)=>_0x144a89(void 0x0,void 0x0,void 0x0,function*(){const _0x57400c=_0x3dcd5e,_0x43ee82=_0x2062fc+_0x57400c(0x191),_0x1df97d=_0x43ee82+'/checkNodeId',_0x50c1df=yield fetch(_0x1df97d,{'method':_0x57400c(0x217),'body':JSON[_0x57400c(0x1ec)]({'endpointNode':_0x57861b,'endpoint':_0x48666d,'nodeId':_0x272d40}),'headers':{'Content-Type':_0x57400c(0x13f)}});if(_0x50c1df[_0x57400c(0x147)]!==0xc8){console[_0x57400c(0x167)](_0x57400c(0x162),_0x50c1df[_0x57400c(0x147)],_0x50c1df[_0x57400c(0x158)]);const _0x3a1922={'statusCode':_0x57400c(0x197),'nodeAddressString':_0x272d40};return _0x3a1922;}console[_0x57400c(0x167)](_0x57400c(0x179),_0x50c1df[_0x57400c(0x147)],_0x50c1df['statusText']);const _0x4fe218=yield _0x50c1df[_0x57400c(0x143)]();return _0x4fe218;});function _0x31e12c(_0x4d2fd5,_0x535c74,_0xb6a457,_0x3aaa50){const _0x1ddf3c=_0x3dcd5e,_0x9394ca=$('#'+_0x4d2fd5+_0x1ddf3c(0x14e)),_0x45af89=$('#'+_0x4d2fd5+_0x1ddf3c(0x194)),_0x101208=$('#'+_0x4d2fd5+_0x1ddf3c(0x19a)),_0x50e7b9=$('#'+_0x4d2fd5+_0x1ddf3c(0x160));let _0x594409=![];_0x9394ca[_0x1ddf3c(0x200)](),_0x45af89['hide'](),_0x101208[_0x1ddf3c(0x200)](),_0x535c74['on']('click',()=>{const _0x4be142=_0x1ddf3c;if(_0x594409)return;_0x594409=!![],_0x101208[_0x4be142(0x14a)](_0x4be142(0x200)),_0x101208[_0x4be142(0x1f2)](_0x4be142(0x1f8)),_0x9394ca[_0x4be142(0x169)](_0x4be142(0x200)),_0x45af89['addClass'](_0x4be142(0x200)),_0x50e7b9[_0x4be142(0x1f2)]('');const {body:_0x4706ab,url:_0x5d05ac}=_0xb6a457();fetch(_0x5d05ac,{'method':_0x4be142(0x217),'headers':{'Content-Type':_0x4be142(0x13f)},'body':JSON[_0x4be142(0x1ec)](_0x4706ab)})[_0x4be142(0x144)](_0x50ca90=>_0x50ca90[_0x4be142(0x143)]())[_0x4be142(0x144)](_0x3a25ae=>{const _0x4de03d=_0x4be142;_0x594409=![],_0x101208[_0x4de03d(0x200)](),console[_0x4de03d(0x167)](JSON[_0x4de03d(0x1ec)](_0x3a25ae,null,'\x20'));if(_0x3a25ae[_0x4de03d(0x1a5)]==='ok')_0x9394ca[_0x4de03d(0x14a)](_0x4de03d(0x200)),_0x45af89[_0x4de03d(0x169)](_0x4de03d(0x200)),_0x50e7b9[_0x4de03d(0x1f2)](_0x3a25ae['message'][_0x4de03d(0x1c5)]('\x0a','<br>')),_0x3aaa50(null,_0x3a25ae);else{const _0x48e1a7=_0x3dfe18=>!_0x3dfe18?'':_0x3dfe18[_0x4de03d(0x219)]('\x0a')[_0x4de03d(0x148)](_0x11361e=>_0x4de03d(0x1be)+_0x11361e+_0x4de03d(0x1c9))[_0x4de03d(0x1d6)]('\x0a'),_0x4df895=_0x160669=>Array[_0x4de03d(0x15a)](_0x160669)?_0x160669[_0x4de03d(0x148)](_0x48e1a7)['join']('\x0a'):_0x48e1a7(_0x160669);_0x9394ca[_0x4de03d(0x169)](_0x4de03d(0x200)),_0x45af89[_0x4de03d(0x14a)](_0x4de03d(0x200)),_0x50e7b9[_0x4de03d(0x1f2)](_0x4df895(_0x3a25ae[_0x4de03d(0x17a)])+_0x4df895(_0x3a25ae[_0x4de03d(0x14d)])),_0x3aaa50(new Error(_0x3a25ae[_0x4de03d(0x1a5)]),_0x3a25ae);}})[_0x4be142(0x168)](_0x329860=>{const _0x5095bc=_0x4be142;_0x594409=![],_0x101208[_0x5095bc(0x169)](_0x5095bc(0x200)),_0x9394ca[_0x5095bc(0x169)](_0x5095bc(0x200)),_0x45af89['removeClass']('hide'),_0x50e7b9[_0x5095bc(0x1f2)](_0x5095bc(0x1b8)+_0x329860['message']),console['log'](_0x5095bc(0x166),_0x329860),_0x3aaa50(_0x329860,null);});});}const _0x3fd7a2=()=>{const _0x5532b5=_0x3dcd5e,_0x2a8e85=$(_0x5532b5(0x1a8)),_0x42908d=_0x2a8e85[_0x5532b5(0x1b0)](),_0x1fb992=RED[_0x5532b5(0x195)][_0x5532b5(0x1d4)](_0x42908d);if(!_0x1fb992)return undefined;const {endpoint:_0x462aed,securityMode:_0x26ebb8,securityPolicy:_0x3cd96a,userIdentityType:_0x20ee2b,credentials:_0x456b2d}=_0x1fb992,_0x175e3a={'endpoint':_0x462aed,'securityMode':_0x26ebb8,'securityPolicy':_0x3cd96a,'userIdentityType':_0x20ee2b,'credentials':_0x456b2d};return _0x175e3a;},_0x48aeea=()=>{return{'endpointNode':_0x4b97b4};},_0x4b97b4=()=>{const _0x24be58=_0x3dcd5e,_0x167b3c=$(_0x24be58(0x1a8)),_0xc1ee59=_0x167b3c[_0x24be58(0x1b0)](),_0x5d5c65=_0x3fd7a2();if(!_0x5d5c65)return undefined;return{'id':_0xc1ee59};};RED[_0x3dcd5e(0x195)]['registerType'](_0x3dcd5e(0x202),{'category':_0x3dcd5e(0x216),'color':_0x3dcd5e(0x19f),'align':'right','icon':_0x3dcd5e(0x154),'paletteLabel':_0x3dcd5e(0x18e),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x3dcd5e(0x1e6)},'action':{'value':_0x3dcd5e(0x170),'required':!![]},'methodId':{'value':'','required':!![]},'objectId':{'value':'','required':!![]}},'outputs':0x2,'label'(){const _0x5f554c=_0x3dcd5e;return this[_0x5f554c(0x1cd)]||_0x5f554c(0x14c);},'labelStyle'(){const _0x6db72c=_0x3dcd5e;return this[_0x6db72c(0x1cd)]?_0x6db72c(0x189):'';},'oneditprepare'(){const _0x2e1318=_0x3dcd5e,_0xb8ae65=this;_0x3a88a9(),_0xb8ae65['inputs']=0x1;let _0x4a2096={};console['log'](_0x2e1318(0x1fe));const _0x5268fd=$(_0x2e1318(0x1b1)),_0x5ae69b=$(_0x2e1318(0x218)),_0x81b093=$(_0x2e1318(0x1d9)),_0x396415=$('#method-output-argument-definition'),_0x203b73=$(_0x2e1318(0x209));_0x5268fd[_0x2e1318(0x1b2)](Object[_0x2e1318(0x1fb)](Object[_0x2e1318(0x1fb)]({},_0x48aeea()),{'filter'(_0x583f87){const _0x25cdc3=_0x2e1318;return _0x583f87[_0x25cdc3(0x1ca)]===_0x25cdc3(0x210);}})),_0x5ae69b['nodeBrowser'](Object[_0x2e1318(0x1fb)](Object[_0x2e1318(0x1fb)]({},_0x48aeea()),{'parentNode':()=>_0x144a89(this,void 0x0,void 0x0,function*(){const _0x1de795=_0x2e1318;let _0x4eb0a6=_0x5268fd[_0x1de795(0x1de)](_0x1de795(0x16e));if(!_0x4eb0a6){const _0x15a48b=_0x5268fd['val'](),_0x3fc3db=_0x3fd7a2();if(!_0x3fc3db)return null;const _0x5ca2d6={'baseUrl':'','endpoint':'','endpointNode':_0x3fc3db};try{const _0x598b1a=yield _0x5b6cc8(_0x5ca2d6,_0x15a48b);_0x4eb0a6=_0x598b1a[_0x1de795(0x16e)];}catch(_0x5a4f5f){console['log'](_0x5a4f5f);}}return _0x4eb0a6;}),'filter'(_0x567a1e){const _0x53c3a0=_0x2e1318;return _0x567a1e[_0x53c3a0(0x1ca)]==='Method'||_0x567a1e['nodeClass']===_0x53c3a0(0x210);},'isSelectable'(_0x1091ca){const _0x3d513e=_0x2e1318;return _0x1091ca[_0x3d513e(0x1ca)]===_0x3d513e(0x1f3);}})),_0x5268fd['on']('change',()=>{const _0x46077f=_0x2e1318;_0x5ae69b[_0x46077f(0x1b2)](_0x46077f(0x151));}),console[_0x2e1318(0x167)](_0x2e1318(0x1c3));function _0x35187d(_0x588ed0,_0x17abc3,_0x546f8e){const _0x4b6bb6=_0x2e1318,_0x55b81d=$(_0x4b6bb6(0x149))[_0x4b6bb6(0x20a)](_0x588ed0);$(_0x4b6bb6(0x172))[_0x4b6bb6(0x1b0)](_0x546f8e[_0x4b6bb6(0x1cd)]||'')[_0x4b6bb6(0x150)]({'width':'100%'})[_0x4b6bb6(0x20a)](_0x55b81d);const _0x4dde8b=_0x4a2096[_0x546f8e[_0x4b6bb6(0x203)][_0x4b6bb6(0x16f)]()],_0x5e69a9=(_0x4dde8b?_0x4dde8b[_0x4b6bb6(0x1dc)][_0x4b6bb6(0x1cd)]||'':_0x546f8e['dataType'][_0x4b6bb6(0x16f)]())+(_0x546f8e['valueRank']===0x1?'[]':'');$(_0x4b6bb6(0x172))[_0x4b6bb6(0x1b0)](_0x546f8e[_0x4b6bb6(0x187)]['text']||'')['css']({'width':_0x4b6bb6(0x1cb)})[_0x4b6bb6(0x20a)](_0x55b81d),$(_0x4b6bb6(0x172))[_0x4b6bb6(0x1b0)](_0x5e69a9||'')['css']({'width':_0x4b6bb6(0x1cb)})[_0x4b6bb6(0x20a)](_0x55b81d);}_0x81b093[_0x2e1318(0x1b4)]({'addButton':![],'height':_0x2e1318(0x192),'scrollOnAdd':![],'addItem'(_0x340bec,_0x35def6,_0x39201d){_0x35187d(_0x340bec,_0x35def6,_0x39201d);}}),_0x396415['editableList']({'addButton':![],'height':'auto','scrollOnAdd':![],'addItem'(_0x5d1545,_0x2dd90e,_0x16e478){_0x35187d(_0x5d1545,_0x2dd90e,_0x16e478);}});function _0x28e4e2(_0x6f61d2,_0x6b8047){const _0x390de0=_0x2e1318;console[_0x390de0(0x167)]('installArgumentList',_0x6b8047[_0x390de0(0x16d)],_0x390de0(0x208),_0x6b8047),_0x6f61d2[_0x390de0(0x1b4)](_0x390de0(0x1ed));for(let _0x15c007=0x0;_0x15c007<_0x6b8047['length'];_0x15c007++){_0x6f61d2['editableList'](_0x390de0(0x16b),_0x6b8047[_0x15c007]);}}_0x81b093[_0x2e1318(0x200)](),_0x396415[_0x2e1318(0x200)](),_0x31e12c('validate',_0x203b73,()=>({'url':_0x2e1318(0x152),'body':{'endpointNode':_0x4b97b4(),'objectId':_0x5268fd['val'](),'methodId':_0x5ae69b['val']()}}),(_0x156778,_0x3ee105)=>{const _0x572370=_0x2e1318;if(_0x156778)return;const _0x1b3ee1=_0x3ee105[_0x572370(0x1a2)];_0x4a2096=_0x3ee105[_0x572370(0x20d)],_0x81b093['show'](),_0x396415[_0x572370(0x213)](),_0x28e4e2(_0x81b093,_0x1b3ee1[_0x572370(0x174)]),_0x28e4e2(_0x396415,_0x1b3ee1[_0x572370(0x199)]),console['log']('data',_0x3ee105);});},'oneditsave'(){}});}()));function _0x3cd8(_0x2816b4,_0x330950){const _0x4ecd65=_0x4ecd();return _0x3cd8=function(_0x3cd8bc,_0x1d9af5){_0x3cd8bc=_0x3cd8bc-0x13f;let _0x253e33=_0x4ecd65[_0x3cd8bc];return _0x253e33;},_0x3cd8(_0x2816b4,_0x330950);}function _0x4ecd(){const _0xd6d9eb=['<input\x20type=\x22text\x22>','Objects','inputArguments','TypeDefinition','baseUrl','nodeId','sterfive-dropdown','fetched\x20:\x20','message','890151aBxHkO','expandable\x20expanded','ns=0;i=45','IsForward','throw','toggle','function','filter','Invalid','endpointNode','591485Cjcqqs','Organizes','description','currentParent','node_label_italic','HasSubtype','displayName','sterfive-combo-box','fa-sliders','call','\x20Fetching\x20done','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','/opcua-endpoint2','auto','$combo','-failure','nodes','sterfive-info','Bad','append','outputArguments','-pending','statusCode','parentNode','!!failure!!','resolveParentNode','#C0DEED','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','argumentDefinition','top','DisplayName','result','188717DPLYXn','options','#node-input-endpoint','\x22\x20style=\x22color:','3699zeuKlj','text','browseResult','72DGMZCR','1528536PSJLBK','<li>error\x20','val','#node-input-objectId','nodeBrowser',':visible','editableList','HasProperty','SandyBrown','<ul\x20class=\x22sterfive-tree\x22></ul>','internal\x20error\x20','Good','loading','4sMDzTy','$tree','$toggleTreeBtn','<p>','stopPropagation','isSelectable',';\x22></i>\x20','toggleClass','Calling\x20nodeBrowser\x20Done','CadetBlue','replace','fa-text-width','<li><i\x20class=\x22fa\x20','sterfive.nodeBrowser','</p>','nodeClass','50%','closest','name','already\x20loading','ns=0;i=34','rgba(61,\x2060,\x204,\x200.525)','DataType','$inputGroup','hasClass','node','element','join','/checkNodeId','find','#method-input-argument-definition','SeaGreen','endpoint','browseName','attr','data','NodeClass','DodgerBlue','expandable','VariableType','fetched','click','Variable','OpcUa-Endpoint2','referenceTypeId','ReferenceType','suppressed','trigger','placeholder','stringify','empty','fa-object-group','input-group','typeDefinition','<div\x20class=\x22spinner\x22></div>','html','Method','widget','Both','$verifyBtn','<div\x20class=\x22info-text\x22></div>','Testing\x20Connection\x20...','HasTypeDefinition','HasChild','assign','1295150LvQMUK','fa-cog','Calling\x20nodeBrowser','fa-folder','hide','$info','OpcUa-Client2-Call','dataType','<div/>','next','fa-list-alt','left','arguments','#validate-call-arguments-button','appendTo','</li>','2CsUoAL','dataTypes','<ul></ul></li>','value','Object','change','ns=0;i=47','show','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','pageX','opcua','POST','#node-input-methodId','split','$input','ns=0;i=61','application/json','Unspecified','apply','offset','json','then','fa-question','references','status','map','<div\x20class=\x22argument-entry\x22>','removeClass','ns=0;i=46','OPCUA-Call','extra','-success','children','css','reset','/opcua-endpoint2/argumentDefinition','SteelBlue','../../icons/opcuanodeLogo.png','.spinner','expanded','failure','statusText','View','isArray','Inverse','match','pageY','ObjectType','BrowseName','-messages','DarkOrange','fetching\x20failed\x20with\x20error','error','961310bDlQvx','Forward','err','log','catch','addClass','/browse','addItem','SuppressedError','length','reference','toString','read','$dropdown'];_0x4ecd=function(){return _0xd6d9eb;};return _0x4ecd();}
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgxNDRhODkiLCJfMHg0YTA3OTUiLCJfMHg2Mjg1MTMiLCJfMHgyYmRjNDkiLCJfMHgxZGYwZTYiLCJfMHgxYzZlZjIiLCJfMHgzOTljZDYiLCJfMHg0OGQ4ZTAiLCJQcm9taXNlIiwiXzB4MzBjYzZlIiwiXzB4NTM5ODhkIiwiXzB4MmIwODg5IiwiXzB4NDczNjhiIiwiXzB4NDYxZmUwIiwiXzB4NWIwODYyIiwiXzB4NDBkYjFkIiwiXzB4MzQ1MmNkIiwiXzB4NDY0NDY0IiwiXzB4M2E5MDVmIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4NTI0MGViIiwiXzB4NTFiMmU5IiwiXzB4NDRhYTQzIiwiXzB4MTBmNTlkIiwiRXJyb3IiLCJfMHgzNTliNmIiLCJfMHgzZThiNTIiLCJfMHgzMDdlM2YiLCJfMHg1YjEwMGEiLCJfMHgyMjhhYjUiLCJfMHg1YzIyZDAiLCJfMHg5NDEwM2YiLCJfMHg0ZjcxMTgiLCJfMHg0M2ViYTMiLCJfMHg0MGJmN2QiLCJfMHg5YThjODgiLCJfMHgyMzAwNDEiLCJfMHg1NjI4MzQiLCJfMHgzN2QxYTkiLCJfMHgzZGIwZjQiLCJfMHgzZTk4N2IiLCJfMHhkY2E0ZDIiLCJfMHhiMTM0YWMiLCJfMHg0NDE4MWEiLCJfMHg1MDliZGUiLCJlbmRwb2ludE5vZGUiLCJfMHg0NmRjMDAiLCJlbmRwb2ludCIsIl8weDVkN2Q2OSIsImJhc2VVcmwiLCJfMHg0NTRiODkiLCJfMHg0NzhhNjQiLCJfMHg1YTI4ZjkiLCJfMHgyYjMxZGYiLCJfMHgzYThkNjIiLCJfMHg0YTUwNjciLCJPYmplY3QiLCJfMHgxM2E0MGUiLCJmZXRjaCIsIkpTT04iLCJjb25zb2xlIiwiXzB4MzJmNGJhIiwiXzB4MTU3NzUwIiwiXzB4NTUwYmQxIiwiXzB4M2I0YzAzIiwiXzB4NTNmOWNiIiwiXzB4MWI1OTgyIiwiXzB4MWFhOWMxIiwiXzB4MzdlZGJmIiwiXzB4NDE1MmU4IiwiXzB4NDg3OTUiLCJfMHgyMjQ4ZmEiLCJfMHhiNzdlMWEiLCJfMHgyOWVmMWUiLCJfMHg0MDE1NmYiLCJfMHgzNTgxNDYiLCJfMHg1MDY2YWIiLCJzZXRUaW1lb3V0IiwiXzB4MzM0YzA0IiwiXzB4NGQ0ZWJlIiwiXzB4NGU5ZWFiIiwiXzB4NjUzYzdhIiwiXzB4NTRkZWIyIiwiXzB4NTA5MmU5IiwiXzB4NTkwZjg5IiwiXzB4M2I0NjczIiwiXzB4M2I1NTg0IiwiXzB4MjUwMzc1IiwiXzB4NDRkODA5IiwiXzB4NTZhZTg3IiwiXzB4OWI3Yjc2IiwiXzB4NTdiYzJiIiwiXzB4YTVjMjRlIiwiXzB4ODVmYTk4IiwiXzB4NTZlNzU1IiwiXzB4MWM3Y2E4IiwiJCIsIl8weDIyYTYzNCIsIl8weDNjYTBjOSIsImljb24iLCJfMHg1ZTRhMjUiLCJjb2xvciIsIl8weDM3NjA4NSIsIl8weDg4NTIxZCIsIl8weDNhODhhOSIsInVuZGVmaW5lZCIsIl8weDMwODgwMiIsIl8weDNlYThkNCIsIl8weDU3NmFkMiIsIl8weDU2NjU0ZSIsIl8weDMyYWYzYyIsIl8weDFlNmQyOSIsIl8weDIzMmI4NSIsIl8weDljNjkwMCIsIl8weDJiZTA3NSIsIl8weDI2ZjM3ZiIsIl8weDJjYTQ0OSIsIl8weDJkMjAyYiIsInJlZmVyZW5jZXMiLCJfMHhjZWYyZjIiLCJfMHgzNzI2N2UiLCJfMHgzZDBhYTYiLCJfMHgyYWI5NjYiLCJfMHg0NzU1OTUiLCJfMHg0MjJjMTciLCJfMHgyNTAxNjMiLCJfMHgzZDNiYWUiLCJfMHgxMDNmY2IiLCJfMHg0OWM3YTQiLCJfMHgyMDJlMjciLCJfMHgyNDg0ZDUiLCJfMHg3NjJlNDMiLCJfMHgyMjgzMmQiLCJfMHgyMTg0NzUiLCJfMHgzM2NhZWMiLCJfMHg4MTQ2OWMiLCJfMHgxMWQ5YjEiLCJfMHgxZjM3NzMiLCJfMHgzYTU2ZDQiLCJfMHgyYzU3YTUiLCJkb2N1bWVudCIsIl8weDQ2MmU0ZCIsIl8weDViNmNjOCIsIl8weDU3ODYxYiIsIl8weDQ4NjY2ZCIsIl8weDIwNjJmYyIsIl8weDI3MmQ0MCIsIl8weDQzZWU4MiIsIl8weDFkZjk3ZCIsIl8weDUwYzFkZiIsIl8weDNhMTkyMiIsIl8weDRmZTIxOCIsIl8weDMxZTEyYyIsIl8weDRkMmZkNSIsIl8weDUzNWM3NCIsIl8weGI2YTQ1NyIsIl8weDNhYWE1MCIsIl8weDkzOTRjYSIsIl8weDQ1YWY4OSIsIl8weDEwMTIwOCIsIl8weDUwZTdiOSIsIl8weDU5NDQwOSIsImJvZHkiLCJfMHg0NzA2YWIiLCJ1cmwiLCJfMHg1ZDA1YWMiLCJfMHg1MGNhOTAiLCJfMHgzYTI1YWUiLCJfMHg0OGUxYTciLCJfMHgzZGZlMTgiLCJfMHgxMTM2MWUiLCJfMHg0ZGY4OTUiLCJfMHgxNjA2NjkiLCJBcnJheSIsIl8weDMyOTg2MCIsIl8weDNmZDdhMiIsIl8weDJhOGU4NSIsIl8weDQyOTA4ZCIsIl8weDFmYjk5MiIsIlJFRCIsIl8weDQ2MmFlZCIsInNlY3VyaXR5TW9kZSIsIl8weDI2ZWJiOCIsInNlY3VyaXR5UG9saWN5IiwiXzB4M2NkOTZhIiwidXNlcklkZW50aXR5VHlwZSIsIl8weDIwZWUyYiIsImNyZWRlbnRpYWxzIiwiXzB4NDU2YjJkIiwiXzB4MTc1ZTNhIiwiXzB4NDhhZWVhIiwiXzB4NGI5N2I0IiwiXzB4MTY3YjNjIiwiXzB4YzFlZTU5IiwiXzB4NWQ1YzY1IiwiXzB4YjhhZTY1IiwiXzB4NGEyMDk2IiwiXzB4NTI2OGZkIiwiXzB4NWFlNjliIiwiXzB4ODFiMDkzIiwiXzB4Mzk2NDE1IiwiXzB4MjAzYjczIiwiXzB4NTgzZjg3IiwiXzB4NGViMGE2IiwiXzB4MTVhNDhiIiwiXzB4M2ZjM2RiIiwiXzB4NWNhMmQ2IiwiXzB4NTk4YjFhIiwiXzB4NWE0ZjVmIiwiXzB4NTY3YTFlIiwiXzB4MTA5MWNhIiwiXzB4MzUxODdkIiwiXzB4NTg4ZWQwIiwiXzB4MTdhYmMzIiwiXzB4NTQ2ZjhlIiwiXzB4NTViODFkIiwiXzB4NGRkZThiIiwiXzB4NWU2OWE5IiwiXzB4MzQwYmVjIiwiXzB4MzVkZWY2IiwiXzB4MzkyMDFkIiwiXzB4NWQxNTQ1IiwiXzB4MmRkOTBlIiwiXzB4MTZlNDc4IiwiXzB4MjhlNGUyIiwiXzB4NmY2MWQyIiwiXzB4NmI4MDQ3IiwiXzB4MTVjMDA3IiwiXzB4MTU2Nzc4IiwiXzB4M2VlMTA1IiwiXzB4MWIzZWUxIl0sIm1hcHBpbmdzIjoid2tCQUFBLENBQUMsVSxDQUNHLGEsd0JBbUJBLFNBQVNBLFNBQVQsQ0FBbUJDLFNBQW5CLENBQTRCQyxTQUE1QixDQUF3Q0MsU0FBeEMsQ0FBMkNDLFNBQTNDLEMsQ0FDSSxTQUFTQyxTQUFULENBQWVDLFNBQWYsQyxRQUErQkEsU0FBQSxZQUFpQkgsU0FBakIsQ0FBcUJHLFNBQXJCLENBQTZCLElBQUlILFNBQUosQ0FBTSxTQUFVSSxTQUFWLEMsQ0FBcUJBLFNBQUEsQ0FBUUQsU0FBUixDLEVBQTNCLEMsU0FDckQsR0FBSyxDQUFBSCxTQUFBLEVBQU0sQ0FBQUEsU0FBQSxDQUFJSyxPQUFKLENBQU4sQ0FBTCxDQUF5QixTQUFVQyxTQUFWLENBQW1CQyxTQUFuQixDLHlCQUM1QixTQUFTQyxTQUFULENBQW1CQyxTQUFuQixDLHdCQUE0QixHLENBQU1DLFNBQUEsQ0FBS1QsU0FBQSxDLGVBQUEsRUFBZVEsU0FBZixDQUFMLEMsRUFBK0IsTUFBT0UsU0FBUCxDLENBQVlKLFNBQUEsQ0FBT0ksU0FBUCxDLEdBQzdFLFNBQVNDLFNBQVQsQ0FBa0JDLFNBQWxCLEMseUJBQTJCLEcsQ0FBTUgsU0FBQSxDQUFLVCxTQUFBLEMsZ0JBQUEsRUFBbUJZLFNBQW5CLENBQUwsQyxFQUFtQyxNQUFPQyxTQUFQLEMsQ0FBWVAsU0FBQSxDQUFPTyxTQUFQLEMsR0FDaEYsU0FBU0osU0FBVCxDQUFjSyxTQUFkLEMseUJBQXdCQSxTQUFBLEMsTUFBQSxFQUFjVCxTQUFBLENBQVFTLFNBQUEsQyxnQkFBQSxDQUFSLENBQWQsQ0FBc0NiLFNBQUEsQ0FBTWEsU0FBQSxDLGdCQUFBLENBQU4sRSxnQkFBQSxFQUF5QlAsU0FBekIsQ0FBb0NJLFNBQXBDLEMsRUFDOURGLFNBQUEsQ0FBTSxDQUFBVCxTQUFBLENBQVlBLFNBQUEsQyxnQkFBQSxFQUFnQkgsU0FB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LENBQThDK0IsU0FBQSxDLGdCQUFBLENBQTlDLEMsQ0FDQU4sU0FBQSxDQUFvQnhCLFNBQXBCLENBQStDOEIsU0FBQSxDLGdCQUFBLENBQS9DLEMsQ0FDQTFLLE9BQUEsQyxLQUFBLEUsTUFBQSxDQUFvQnlLLFNBQXBCLEMsRUFsQkosQyxFQW5IcUMsQyxZQXdJekMsRSxFQXhJeUMsQ0FBN0MsQyxFQXBsQkosRyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG4gICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG4gICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG4gICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcbiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuICAgIC8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCAqL1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG4gICAgfTtcblxuICAgIGNvbnN0IE9yZ2FuaXplc1JlZk5vZGVJZCA9IFwibnM9MDtpPTM1XCI7XG4gICAgY29uc3QgRm9sZGVyVHlwZSA9IFwibnM9MDtpPTYxXCI7XG4gICAgY29uc3QgSGFzQ29tcG9uZW50UmVmTm9kZUlkID0gXCJucz0wO2k9NDdcIjtcbiAgICBjb25zdCBIYXNQcm9wZXJ0eVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ2XCI7XG4gICAgY29uc3QgSGFzQ2hpbGRSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNFwiO1xuICAgIGNvbnN0IEhhc1N1YnR5cGVSZWZOb2RlSWQgPSBcIm5zPTA7aT00NVwiO1xuICAgIGNvbnN0IEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkID0gXCJucz0wO2k9NDBcIjtcblxuICAgIHZhciBCcm93c2VEaXJlY3Rpb247XG4gICAgKGZ1bmN0aW9uIChCcm93c2VEaXJlY3Rpb24pIHtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkZvcndhcmRcIl0gPSAwXSA9IFwiRm9yd2FyZFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52ZXJzZVwiXSA9IDFdID0gXCJJbnZlcnNlXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJCb3RoXCJdID0gMl0gPSBcIkJvdGhcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmFsaWRcIl0gPSAzXSA9IFwiSW52YWxpZFwiO1xuICAgIH0pKEJyb3dzZURpcmVjdGlvbiB8fCAoQnJvd3NlRGlyZWN0aW9uID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzKSB7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJVbnNwZWNpZmllZFwiXSA9IDBdID0gXCJVbnNwZWNpZmllZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3MgfHwgKE5vZGVDbGFzcyA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzc01hc2s7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3NNYXNrKSB7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3NNYXNrIHx8IChOb2RlQ2xhc3NNYXNrID0ge30pKTtcbiAgICB2YXIgUmVzdWx0TWFzaztcbiAgICAoZnVuY3Rpb24gKFJlc3VsdE1hc2spIHtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDFdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIklzRm9yd2FyZFwiXSA9IDJdID0gXCJJc0ZvcndhcmRcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiTm9kZUNsYXNzXCJdID0gNF0gPSBcIk5vZGVDbGFzc1wiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJCcm93c2VOYW1lXCJdID0gOF0gPSBcIkJyb3dzZU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiRGlzcGxheU5hbWVcIl0gPSAxNl0gPSBcIkRpc3BsYXlOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlR5cGVEZWZpbml0aW9uXCJdID0gMzJdID0gXCJUeXBlRGVmaW5pdGlvblwiO1xuICAgIH0pKFJlc3VsdE1hc2sgfHwgKFJlc3VsdE1hc2sgPSB7fSkpO1xuICAgIC8vICBjb25zdCBxID0gUmVmZXJlbmNlVHlwZUlkcy5Pcmdhbml6ZXM7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZU5vZGVJZChub2RlSWRMaWtlKSB7XG4gICAgICAgIHN3aXRjaCAobm9kZUlkTGlrZSkge1xuICAgICAgICAgICAgY2FzZSBcIk9yZ2FuaXplc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBPcmdhbml6ZXNSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzUHJvcGVydHlcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzUHJvcGVydHlSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ29tcG9uZW50XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NvbXBvbmVudFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDaGlsZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDaGlsZFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNTdWJ0eXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1N1YnR5cGVSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzVHlwZURlZmluaXRpb25cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBnZXRJY29uID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHJlZmVyZW5jZS5ub2RlQ2xhc3MpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gT3JnYW5pemVzUmVmTm9kZUlkKSA7XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS50eXBlRGVmaW5pdGlvbiA9PT0gRm9sZGVyVHlwZSB8fCByZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBcImk9NjFcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWZvbGRlclwiLCBjb2xvcjogXCJyZ2JhKDYxLCA2MCwgNCwgMC41MjUpXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiU2VhR3JlZW5cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlXCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc0NvbXBvbmVudFJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIlN0ZWVsQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc1Byb3BlcnR5UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiRG9kZ2VyQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcIk1ldGhvZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtY29nXCIsIGNvbG9yOiBcIlNhbmR5QnJvd25cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXNsaWRlcnNcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiRGF0YVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXRleHQtd2lkdGhcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCwgdGVtcGxhdGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vYnJvd3NlYDtcbiAgICAgICAgY29uc3QgYnJvd3NlRGVzY3JpcHRpb24gPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRlbXBsYXRlKSwgeyBub2RlSWQsIHJlc3VsdE1hc2s6IDYzIH0pO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBicm93c2VEZXNjcmlwdGlvbixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzOiBbXSB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgJGlucHV0RWxlbWVudCwgJGluZm8pID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKGAke3Jvb3R9L2NoZWNrTm9kZUlkYCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgbm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChqc29uLm5vZGVBZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7bm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50ID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAoIXJlZmVyZW5jZSkge1xuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSBmYS1lcnJvclwiIHN0eWxlPVwiY29sb3I6cmVkO1wiPjwvaT5ubyByZWZlcmVuY2UgITx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbiA9IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgdCA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHsgaWNvbiwgY29sb3IgfSA9IGdldEljb24ocmVmZXJlbmNlKTtcbiAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+ICR7dH08dWw+PC91bD48L2xpPmApO1xuICAgICAgICAkZWxlbWVudC5hZGRDbGFzcyhcImV4cGFuZGFibGVcIik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJ2YWx1ZVwiLCBuKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgfTtcbiAgICBjb25zdCBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBbIFRlbXBlcmF0dXJlICBdXG4gICAgICAgICAqICAgKCB0b29sdGlwIDogKC9PYmplY3RzL015U2Vuc29yKSAobnM9MTtzPVRlbXBlcmF0dXJlKSlcbiAgICAgICAgICogWyArIFtGb2xkZXJdIE9iamVjdHNdXG4gICAgICAgICAqIFsgICAgIFtPYmplY3RdIE15U2Vuc29yXVxuICAgICAgICAgKiBbICAgICAoICkgW1ZhcmlhYmxlXSBUZW1wZXJhdHVyZV1cbiAgICAgICAgICovXG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUubm9kZUJyb3dzZXJcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZTogKCkgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgbm9kZUNsYXNzOiBcIk9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBub2RlSWQ6IFwibnM9MDtpPTg1XCIsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIHR5cGVEZWZpbml0aW9uOiBGb2xkZXJUeXBlLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgICAgIGlzVHlwZVJlZjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzb2x2ZVBhcmVudE5vZGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0eXBlb2YgdGhhdC5vcHRpb25zLnBhcmVudE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geWllbGQgYTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNldCgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNvbHZlUGFyZW50Tm9kZSgpLnRoZW4oKHBhcmVudE5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChwYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LmN1cnJlbnRQYXJlbnQgPSBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZlcmlmeSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGludGVybmFsVmVyaWZ5KGRhdGEsIHRoYXQuJGlucHV0LCB0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIF9mZXRjaERhdGFGb3JOb2RlKCRub2RlLCBmZXRjaEZ1bmMsIGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJsb2FkaW5nXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYXBwZW5kKCc8ZGl2IGNsYXNzPVwic3Bpbm5lclwiPjwvZGl2PicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyByZWZlcmVuY2VzIH0gPSB5aWVsZCBmZXRjaEZ1bmMoJG5vZGUsIGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5maWx0ZXIgJiYgIXRoYXQub3B0aW9ucy5maWx0ZXIocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5yZXBsYWNlV2l0aCh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cCA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJpbnB1dC1ncm91cFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5wdXRHcm91cCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kaW5wdXQpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtc2l0ZW1hcFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyZWUgd2lkZ2V0IGlzIGdvaW5nIHRvIGJlY29tZSB2aXNpYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc29sdmVQYXJlbnROb2RlKCkudGhlbigocGFyZW50Tm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAhPT0gdGhhdC5jdXJyZW50UGFyZW50IHx8ICgoX2EgPSB0aGF0LmN1cnJlbnRQYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ub2RlSWQpICE9PSBwYXJlbnROb2RlLm5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZmxhc2tcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdmVyaWZ5QnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApLmFwcGVuZFRvKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkKHRoaXMpLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnBhZ2VYID49IGVsZW1lbnRQb3MubGVmdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWCA8PSBlbGVtZW50UG9zLmxlZnQgKyBiZWZvcmVXaWR0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA+PSBlbGVtZW50UG9zLnRvcCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA8PSBlbGVtZW50UG9zLnRvcCArIGJlZm9yZUhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmID0gIXRoYXQub3B0aW9ucy5pc1R5cGVSZWYgPyBmZXRjaENoaWxkcmVuIDogZmV0Y2hTdWJ0eXBlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZmV0Y2hEYXRhRm9yTm9kZSgkbGksIGYsIGRhdGEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIgRmV0Y2hpbmcgZG9uZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAkbGkuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gJGxpLmRhdGEoXCJyZWZlcmVuY2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZSAmJiAhdGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZShyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXQgPSBgWyR7ZGlzcGxheU5hbWV9XSgke3ZhbHVlfSlgO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudmFsKGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBjbGlja2luZyBvdXRzaWRlIHRoZSBwYWdlIHdpbGwgaGlkZSB0aGUgZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCh0aGF0LiRjb21ibykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBjaGVja05vZGVJZCA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2NoZWNrTm9kZUlkYDtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIGNvbnN0IHJlcyA9IHtcbiAgICAgICAgICAgICAgICBzdGF0dXNDb2RlOiBcIkJhZFwiLFxuICAgICAgICAgICAgICAgIG5vZGVBZGRyZXNzU3RyaW5nOiBub2RlSWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIG1hbmFnZUFQSUNhbGwocHJlZml4LCBidG4sIGZ1bmMsIG9uUmVzdWx0KSB7XG4gICAgICAgIGNvbnN0IHN1Y2Nlc3NJY29uID0gJChgIyR7cHJlZml4fS1zdWNjZXNzYCk7XG4gICAgICAgIGNvbnN0IGZhaWx1cmVJY29uID0gJChgIyR7cHJlZml4fS1mYWlsdXJlYCk7XG4gICAgICAgIGNvbnN0IHBlbmRpbmdJY29uID0gJChgIyR7cHJlZml4fS1wZW5kaW5nYCk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2VzID0gJChgIyR7cHJlZml4fS1tZXNzYWdlc2ApO1xuICAgICAgICBsZXQgYWN0aW9uUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICBzdWNjZXNzSWNvbi5oaWRlKCk7XG4gICAgICAgIGZhaWx1cmVJY29uLmhpZGUoKTtcbiAgICAgICAgcGVuZGluZ0ljb24uaGlkZSgpO1xuICAgICAgICBidG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWN0aW9uUGVuZGluZylcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHBlbmRpbmdJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIHBlbmRpbmdJY29uLmh0bWwoXCJUZXN0aW5nIENvbm5lY3Rpb24gLi4uXCIpO1xuICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgZmFpbHVyZUljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChcIlwiKTtcbiAgICAgICAgICAgIGNvbnN0IHsgYm9keSwgdXJsIH0gPSBmdW5jKCk7XG4gICAgICAgICAgICAvLyB4eCBjb25zb2xlLmxvZyhcInh4eHh4XCIsIGJvZHkpO1xuICAgICAgICAgICAgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoYm9keSksXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiBkYXRhLmpzb24oKSlcbiAgICAgICAgICAgICAgICAudGhlbigoanNvbikgPT4ge1xuICAgICAgICAgICAgICAgIGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBwZW5kaW5nSWNvbi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoanNvbiwgbnVsbCwgXCIgXCIpKTtcbiAgICAgICAgICAgICAgICBpZiAoanNvbi5yZXN1bHQgPT09IFwib2tcIikge1xuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChqc29uLm1lc3NhZ2UucmVwbGFjZShcIlxcblwiLCBcIjxicj5cIikpO1xuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdChudWxsLCBqc29uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFkYXB0ID0gKHN0cikgPT4gIXN0clxuICAgICAgICAgICAgICAgICAgICAgICAgPyBcIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHN0clxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zcGxpdChcIlxcblwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKGEpID0+IGA8cD4ke2F9PC9wPmApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oXCJcXG5cIik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFkYXB0MiA9IChzdHIpID0+IChBcnJheS5pc0FycmF5KHN0cikgPyBzdHIubWFwKGFkYXB0KS5qb2luKFwiXFxuXCIpIDogYWRhcHQoc3RyKSk7XG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgZmFpbHVyZUljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlcy5odG1sKGFkYXB0Mihqc29uLm1lc3NhZ2UpICsgYWRhcHQyKGpzb24uZXh0cmEpKTtcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQobmV3IEVycm9yKGpzb24ucmVzdWx0KSwganNvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBwZW5kaW5nSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBtZXNzYWdlcy5odG1sKFwiaW50ZXJuYWwgZXJyb3IgXCIgKyBlcnIubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICBvblJlc3VsdChlcnIsIG51bGwpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IGdldEVuZFBvaW50QXR0cmlidXRlcyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCByZWROb2RlID0gUkVELm5vZGVzLm5vZGUoZW5kcG9pbnRJZCk7XG4gICAgICAgIGlmICghcmVkTm9kZSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIC8vIGNvbnN0IGNyZWRlbnRpYWxzID0gUkVELihlbmRwb2ludElkKTtcbiAgICAgICAgLy8gd2UgbmVlZCB0byBzYW5pdGl6ZSBhbmQgZXh0cmFjdCB0aGUgZW5kcG9pbnQgYXR0cmlidXRlcyBvbmx5ICggbm90IHRoZSBub2RlLXJlZCBzdHVmZilcbiAgICAgICAgY29uc3QgeyBlbmRwb2ludCwgc2VjdXJpdHlNb2RlLCBzZWN1cml0eVBvbGljeSwgdXNlcklkZW50aXR5VHlwZSwgY3JlZGVudGlhbHMgfSA9IHJlZE5vZGU7XG4gICAgICAgIGNvbnN0IHJldFZhbHVlID0ge1xuICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICBzZWN1cml0eU1vZGUsXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICBjcmVkZW50aWFscyxcbiAgICAgICAgfTtcbiAgICAgICAgLy8geHggY29uc29sZS5sb2coXCJ4eHhcIiwgcmV0VmFsdWUpO1xuICAgICAgICByZXR1cm4gcmV0VmFsdWU7XG4gICAgfTtcbiAgICBjb25zdCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBnZXRFbmRwb2ludFBhcmFtZXRlcnMsXG4gICAgICAgIH07XG4gICAgfTtcbiAgICBjb25zdCBnZXRFbmRwb2ludFBhcmFtZXRlcnMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnROciA9IGdldEVuZFBvaW50QXR0cmlidXRlcygpO1xuICAgICAgICBpZiAoIWVuZHBvaW50TnIpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlkOiBlbmRwb2ludElkLFxuICAgICAgICAgICAgLy8gZW5kcG9pbnQ6IGVuZHBvaW50TnIuZW5kcG9pbnQsXG4gICAgICAgICAgICAvLyBzZWN1cml0eU1vZGU6IGVuZHBvaW50TnIuc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgLy8gc2VjdXJpdHlQb2xpY3k6IGVuZHBvaW50TnIuc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gdXNlcklkZW50aXR5VHlwZTogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgLy8gY3JlZGVudGlhbDogZW5kcG9pbnROci5jcmVkZW50aWFscyxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyB1c2VyTmFtZTogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlID09PSBcIlVzZXJOYW1lXCIgPyBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJOYW1lIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgLy8gcGFzc3dvcmQ6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci5jcmVkZW50aWFscy5wYXNzd29yZCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC8vIHVzZXJDZXJ0aWZpY2F0ZTogZW5kcG9pbnROci5jcmVkZW50aWFscy51c2VyQ2VydGlmaWNhdGUsXG4gICAgICAgICAgICAvLyB1c2VyUHJpdmF0ZWtleTogZW5kcG9pbnROci5jcmVkZW50aWFscy51c2VyUHJpdmF0ZWtleSxcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgUkVELm5vZGVzLnJlZ2lzdGVyVHlwZShcIk9wY1VhLUNsaWVudDItQ2FsbFwiLCB7XG4gICAgICAgIGNhdGVnb3J5OiBcIm9wY3VhXCIsXG4gICAgICAgIGNvbG9yOiBcIiNDMERFRURcIixcbiAgICAgICAgYWxpZ246IFwicmlnaHRcIixcbiAgICAgICAgaWNvbjogXCIuLi8uLi9pY29ucy9vcGN1YW5vZGVMb2dvLnBuZ1wiLFxuICAgICAgICBwYWxldHRlTGFiZWw6IFwiY2FsbFwiLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgaW5wdXRzOiB7IHZhbHVlOiAxIH0sXG4gICAgICAgICAgICBvdXRwdXQ6IHsgdmFsdWU6IDQgfSxcbiAgICAgICAgICAgIC8vIENvbW1vblxuICAgICAgICAgICAgbmFtZTogeyB2YWx1ZTogXCJcIiB9LFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlLCB0eXBlOiBcIk9wY1VhLUVuZHBvaW50MlwiIH0sXG4gICAgICAgICAgICBhY3Rpb246IHsgdmFsdWU6IFwicmVhZFwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgLy8gZm9yIGFjdGlvbiBjYWxsXG4gICAgICAgICAgICBtZXRob2RJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIG9iamVjdElkOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICB9LFxuICAgICAgICAvLyBpbnB1dHM6LFxuICAgICAgICBvdXRwdXRzOiAyLCAvLyAyIG91dHB1dCwgc2Vjb25kIGZvciByYXcgbm9kZS1vcGN1YSBkaWFnbm9zdGljcyBvciBtb3JlIGNvbXBsZXRlIG1lc3NhZ2VcbiAgICAgICAgbGFiZWwoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lIHx8IFwiT1BDVUEtQ2FsbFwiO1xuICAgICAgICB9LFxuICAgICAgICBsYWJlbFN0eWxlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSA/IFwibm9kZV9sYWJlbF9pdGFsaWNcIiA6IFwiXCI7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHByZXBhcmUoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcztcbiAgICAgICAgICAgIGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCgpO1xuICAgICAgICAgICAgbm9kZS5pbnB1dHMgPSAxO1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSBTZWN0aW9uIENhbGxcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICBsZXQgZGF0YVR5cGVzID0ge307XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcIkNhbGxpbmcgbm9kZUJyb3dzZXJcIik7XG4gICAgICAgICAgICAvLyB0byBkbyBhZGQgYSB0eXBlc2NyaXB0IGRlZmluaXRpb24gZm9yIHRoaXNcbiAgICAgICAgICAgIGNvbnN0ICRvYmplY3RJZCA9ICQoXCIjbm9kZS1pbnB1dC1vYmplY3RJZFwiKTtcbiAgICAgICAgICAgIGNvbnN0ICRtZXRob2RJZCA9ICQoXCIjbm9kZS1pbnB1dC1tZXRob2RJZFwiKTtcbiAgICAgICAgICAgIGNvbnN0ICRpbnB1dEFyZ3VtZW50RGVmaW5pdGlvbiA9ICQoXCIjbWV0aG9kLWlucHV0LWFyZ3VtZW50LWRlZmluaXRpb25cIik7XG4gICAgICAgICAgICBjb25zdCAkb3V0cHV0QXJndW1lbnREZWZpbml0aW9uID0gJChcIiNtZXRob2Qtb3V0cHV0LWFyZ3VtZW50LWRlZmluaXRpb25cIik7XG4gICAgICAgICAgICBjb25zdCAkdmFsaWRhdGVCdG4gPSAkKFwiI3ZhbGlkYXRlLWNhbGwtYXJndW1lbnRzLWJ1dHRvblwiKTtcbiAgICAgICAgICAgICRvYmplY3RJZC5ub2RlQnJvd3NlcihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSksIHsgZmlsdGVyKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiT2JqZWN0XCI7XG4gICAgICAgICAgICAgICAgfSB9KSk7XG4gICAgICAgICAgICAkbWV0aG9kSWQubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IHBhcmVudE5vZGU6ICgpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gbmVlZCB0byByZXN5bmMgd2l0aCB3aGF0J3MgaW4gICNub2RlLWlucHV0LW9iamVjdElkXG4gICAgICAgICAgICAgICAgICAgIGxldCByZWZlcmVuY2UgPSAkb2JqZWN0SWQuZGF0YShcInJlZmVyZW5jZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZWZlcmVuY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5vZGVJZEV4ID0gJG9iamVjdElkLnZhbCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5kcG9pbnROb2RlID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWVuZHBvaW50Tm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY29ubmVjdGlvbkRhdGEgPSB7IGJhc2VVcmw6IFwiXCIsIGVuZHBvaW50OiBcIlwiLCBlbmRwb2ludE5vZGUgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgciA9IHlpZWxkIGNoZWNrTm9kZUlkKGNvbm5lY3Rpb25EYXRhLCBub2RlSWRFeCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmZXJlbmNlID0gci5yZWZlcmVuY2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVmZXJlbmNlO1xuICAgICAgICAgICAgICAgIH0pLCBmaWx0ZXIobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJNZXRob2RcIiB8fCBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiT2JqZWN0XCI7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBpc1NlbGVjdGFibGUobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJNZXRob2RcIjtcbiAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgICAgICRvYmplY3RJZC5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgJG1ldGhvZElkLm5vZGVCcm93c2VyKFwicmVzZXRcIik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiQ2FsbGluZyBub2RlQnJvd3NlciBEb25lXCIpO1xuICAgICAgICAgICAgZnVuY3Rpb24gYWRkQXJndW1lbnRDdHJsKGNvbnRhaW5lciwgaW5kZXgsIGFyZykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSAkKCc8ZGl2IGNsYXNzPVwiYXJndW1lbnQtZW50cnlcIj4nKS5hcHBlbmRUbyhjb250YWluZXIpO1xuICAgICAgICAgICAgICAgIC8vIGNvbnRhaW5lci5kYXRhKFwiZGF0YVwiLCBhcmcpO1xuICAgICAgICAgICAgICAgICQoJzxpbnB1dCB0eXBlPVwidGV4dFwiPicpXG4gICAgICAgICAgICAgICAgICAgIC52YWwoYXJnLm5hbWUgfHwgXCJcIilcbiAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjEwMCVcIiB9KVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8oaXRlbSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZCA9IGRhdGFUeXBlc1thcmcuZGF0YVR5cGUudG9TdHJpbmcoKV07XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YVR5cGVOID0gKGQgPyBkLmJyb3dzZU5hbWUubmFtZSB8fCBcIlwiIDogYXJnLmRhdGFUeXBlLnRvU3RyaW5nKCkpICsgKGFyZy52YWx1ZVJhbmsgPT09IDEgPyBcIltdXCIgOiBcIlwiKTtcbiAgICAgICAgICAgICAgICAkKCc8aW5wdXQgdHlwZT1cInRleHRcIj4nKVxuICAgICAgICAgICAgICAgICAgICAudmFsKGFyZy5kZXNjcmlwdGlvbi50ZXh0IHx8IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgIC5jc3MoeyB3aWR0aDogXCI1MCVcIiB9KVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8oaXRlbSk7XG4gICAgICAgICAgICAgICAgJCgnPGlucHV0IHR5cGU9XCJ0ZXh0XCI+JylcbiAgICAgICAgICAgICAgICAgICAgLnZhbChkYXRhVHlwZU4gfHwgXCJcIilcbiAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjUwJVwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRpbnB1dEFyZ3VtZW50RGVmaW5pdGlvbi5lZGl0YWJsZUxpc3Qoe1xuICAgICAgICAgICAgICAgIGFkZEJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBcImF1dG9cIixcbiAgICAgICAgICAgICAgICBzY3JvbGxPbkFkZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgYWRkSXRlbShjb250YWluZXIsIGksIG9iamVjdCkge1xuICAgICAgICAgICAgICAgICAgICBhZGRBcmd1bWVudEN0cmwoY29udGFpbmVyLCBpLCBvYmplY3QpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICRvdXRwdXRBcmd1bWVudERlZmluaXRpb24uZWRpdGFibGVMaXN0KHtcbiAgICAgICAgICAgICAgICBhZGRCdXR0b246IGZhbHNlLFxuICAgICAgICAgICAgICAgIGhlaWdodDogXCJhdXRvXCIsXG4gICAgICAgICAgICAgICAgc2Nyb2xsT25BZGQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGFkZEl0ZW0oY29udGFpbmVyLCBpLCBvYmplY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgYWRkQXJndW1lbnRDdHJsKGNvbnRhaW5lciwgaSwgb2JqZWN0KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBmdW5jdGlvbiBpbnN0YWxsQXJndW1lbnRMaXN0KGxpc3QsIG1ldGhvZEFyZ3VtZW50cykge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiaW5zdGFsbEFyZ3VtZW50TGlzdFwiLCBtZXRob2RBcmd1bWVudHMubGVuZ3RoLCBcImFyZ3VtZW50c1wiLCBtZXRob2RBcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIGxpc3QuZWRpdGFibGVMaXN0KFwiZW1wdHlcIik7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZXRob2RBcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgbGlzdC5lZGl0YWJsZUxpc3QoXCJhZGRJdGVtXCIsIG1ldGhvZEFyZ3VtZW50c1tpXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGlucHV0QXJndW1lbnREZWZpbml0aW9uLmhpZGUoKTtcbiAgICAgICAgICAgICRvdXRwdXRBcmd1bWVudERlZmluaXRpb24uaGlkZSgpO1xuICAgICAgICAgICAgbWFuYWdlQVBJQ2FsbChcInZhbGlkYXRlXCIsICR2YWxpZGF0ZUJ0biwgKCkgPT4gKHtcbiAgICAgICAgICAgICAgICB1cmw6IFwiL29wY3VhLWVuZHBvaW50Mi9hcmd1bWVudERlZmluaXRpb25cIixcbiAgICAgICAgICAgICAgICBib2R5OiB7XG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzKCksXG4gICAgICAgICAgICAgICAgICAgIG9iamVjdElkOiAkb2JqZWN0SWQudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZElkOiAkbWV0aG9kSWQudmFsKCksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLCAoZXJyLCBkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIHBvcHVsYXRlIHRoZSBsaXN0XG4gICAgICAgICAgICAgICAgY29uc3QgYXJndW1lbnREZWZpbml0aW9uID0gZGF0YS5hcmd1bWVudERlZmluaXRpb247XG4gICAgICAgICAgICAgICAgZGF0YVR5cGVzID0gZGF0YS5kYXRhVHlwZXM7XG4gICAgICAgICAgICAgICAgJGlucHV0QXJndW1lbnREZWZpbml0aW9uLnNob3coKTtcbiAgICAgICAgICAgICAgICAkb3V0cHV0QXJndW1lbnREZWZpbml0aW9uLnNob3coKTtcbiAgICAgICAgICAgICAgICBpbnN0YWxsQXJndW1lbnRMaXN0KCRpbnB1dEFyZ3VtZW50RGVmaW5pdGlvbiwgYXJndW1lbnREZWZpbml0aW9uLmlucHV0QXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICBpbnN0YWxsQXJndW1lbnRMaXN0KCRvdXRwdXRBcmd1bWVudERlZmluaXRpb24sIGFyZ3VtZW50RGVmaW5pdGlvbi5vdXRwdXRBcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZGF0YVwiLCBkYXRhKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkgeyB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
9
9
  </script>
10
10
  <script type="text/x-red" data-template-name="OpcUa-Client2-Call">
11
11
  <div class="form-row">