@opcua/for-node-red 2.1.6 → 2.1.7

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 _0x5870(_0x56e994,_0x315446){const _0x21f8fa=_0x21f8();return _0x5870=function(_0x5870b7,_0xcffd4c){_0x5870b7=_0x5870b7-0x1e8;let _0x407e9e=_0x21f8fa[_0x5870b7];return _0x407e9e;},_0x5870(_0x56e994,_0x315446);}function _0x21f8(){const _0x5a6ab0=['3170816HNYYbD','value','assign','removeClass','opcualogobig.png','application/json','/extractEventTypes','$verifyBtn','nodeClass','#node-input-inputs','OpcUa-Client2-MonitorEvent','stringify','function','options','$inputGroup','status','SandyBrown',';\x22></i>','<li>error\x20','trigger','SeaGreen','already\x20fetched','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','each','TypeDefinition','rgba(61,\x2060,\x204,\x200.525)','Organizes','HasChild','BrowseName','sterfive-combo-box','referenceTypeId','Method','_updateSelectedFields','change','\x20Fetching\x20done','ns=0;i=46','$dropdown','calc(100%\x20-\x20','throw','toggleClass','$info','node','<div\x20class=\x22floating-buttons\x22></div>','parentNode','data','class','pageY','UserName','#node-input-endpoint','#node-input-whereClause','986682YlQoFC','ns=0;i=61','data-value','$toggleTreeBtn','placeholder','OPCUA\x20Monitor','find','has','show','1739958UrnpoY','_installTree','_populate','fa-object-group','View','Variable','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','ObjectType','parentElement','input-group','nodeBrowser','inputs','ns=0;i=34','reset','children','log','node_label_italic','<span\x20class=\x22validate-button\x22>✔</span>','displayName','isSelectable','endpointNode','browseName','<span\x20class=\x22custom-checkbox\x20unchecked\x22></span>','expandable\x20expanded','clicked\x20on\x20','then','ns=0;i=35','node-input-startImmediately','expanded','_installChildren','ReferenceType','i=61','remove','#node-input-nodeId','pageX','done','DataType','VariableType','2743748xRXcxW','statusCode','NodeClass','split','catch','currentParent','_setInputValue','/checkNodeId','</li>','filter','userName','val','namespaceIndex','<div\x20class=\x22info-text\x22></div>','fa-list-alt','isTypeRef','expandable','fetched\x20:\x20','$input','baseUrl','DarkOrange','length','failure','fetching\x20failed\x20with\x20error','stopPropagation','subTypes','apply','Forward','4dMNohS',';\x22></i>\x20','nodes','clicked\x20on\x20icon','reference','<span\x20class=\x22cancel-button\x22>✖</span>','.spinner','eventFieldSelector','#node-input-startImmediately','empty','<div/>','ns=0;i=85','px)','sterfive.eventFieldSelector','password','SuppressedError','nodeId','checked','unchecked','sterfive-dropdown','appendTo','widget','Both','subscription','nodeAddressString','click','match','<i\x20class=\x22fa\x20','opc.tcp://opcuademo.sterfive.com:26543','POST','left','span.custom-checkbox','DisplayName','$tree','Object','Invalid','#node-input-subscription','registerType','hasClass','HasProperty','verify','Unspecified','element','<li>','$combo','hide','sort','1486540CERcDH','toggle','<div\x20class=\x22spinner\x22></div>','/opcua-endpoint2','top','ns=0;i=47','width','append','attr','<li><i\x20class=\x22fa\x20','DodgerBlue','Good','replaceWith','552778CyJHAS',':visible','#node-input-selectClauses','statusText','/browse','references','511218dhajQZ','events','toString','subscriptions','addClass','error','span.custom-checkbox.checked','sterfive.nodeBrowser','offset','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','join','text','prop','_updateValues','name','<ul\x20class=\x22sterfive-tree\x22></ul>','IsForward','monitor\x20events','fetched','securityMode','HasSubtype','sterfive-info','userIdentityType','securityPolicy','<option/>','!!failure!!','HasTypeDefinition','fa-sliders','endpoint','json','target','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','\x22\x20style=\x22color:','fa-question'];_0x21f8=function(){return _0x5a6ab0;};return _0x21f8();}(function(_0x22efea,_0x2c4da2){const _0x4205ba=_0x5870,_0x2c44b6=_0x22efea();while(!![]){try{const _0xaf6247=parseInt(_0x4205ba(0x1fc))/0x1+parseInt(_0x4205ba(0x202))/0x2+-parseInt(_0x4205ba(0x256))/0x3*(parseInt(_0x4205ba(0x2a1))/0x4)+parseInt(_0x4205ba(0x1ef))/0x5+parseInt(_0x4205ba(0x25f))/0x6+-parseInt(_0x4205ba(0x285))/0x7+-parseInt(_0x4205ba(0x224))/0x8;if(_0xaf6247===_0x2c4da2)break;else _0x2c44b6['push'](_0x2c44b6['shift']());}catch(_0x1c0a15){_0x2c44b6['push'](_0x2c44b6['shift']());}}}(_0x21f8,0x43fce),(function(){'use strict';const _0x56baa6=_0x5870;function _0x28f1b7(_0x58d0ff,_0x18eec9){const _0x2f8fb8=_0x5870,_0x2bf29f=$(_0x2f8fb8(0x254)),_0x294974=$(_0x2f8fb8(0x2c5)),_0x3d22ab=()=>{const _0xacbec3=_0x2f8fb8,_0x5c0dfd=_0x58d0ff[_0xacbec3(0x2a3)][_0xacbec3(0x24d)](_0x2bf29f['val']());_0x294974[_0xacbec3(0x2aa)]();if(!_0x5c0dfd||!_0x5c0dfd[_0xacbec3(0x205)])return;if(_0x5c0dfd[_0xacbec3(0x205)])for(const _0x451c11 of _0x5c0dfd[_0xacbec3(0x205)]){const _0x21b5f3=_0x451c11[_0xacbec3(0x210)]||_0x451c11['id'];$(_0xacbec3(0x21a),{'value':_0x451c11['id'],'label':_0x21b5f3,'selected':_0x451c11['id']===_0x18eec9[_0xacbec3(0x2b8)]})['text'](_0x21b5f3)[_0xacbec3(0x2b5)](_0x294974);}};_0x3d22ab(),_0x294974['on']('focus\x20click',()=>{_0x3d22ab();}),_0x2bf29f['on'](_0x2f8fb8(0x245),()=>{_0x3d22ab();});}function _0x510377(_0x4a4e1d,_0x1c65d9,_0x1c6d9c,_0xf10544){function _0x83e8d0(_0x2a48ee){return _0x2a48ee instanceof _0x1c6d9c?_0x2a48ee:new _0x1c6d9c(function(_0x5bb544){_0x5bb544(_0x2a48ee);});}return new(_0x1c6d9c||(_0x1c6d9c=Promise))(function(_0x4e8094,_0x18a075){const _0x50f99=_0x5870;function _0x5a9cfb(_0x1e8c10){try{_0x2298d7(_0xf10544['next'](_0x1e8c10));}catch(_0x1c8474){_0x18a075(_0x1c8474);}}function _0xad1e86(_0x9ae450){const _0x49ba18=_0x5870;try{_0x2298d7(_0xf10544[_0x49ba18(0x24a)](_0x9ae450));}catch(_0x4fd196){_0x18a075(_0x4fd196);}}function _0x2298d7(_0x45a5f8){const _0x54b2a1=_0x5870;_0x45a5f8[_0x54b2a1(0x282)]?_0x4e8094(_0x45a5f8[_0x54b2a1(0x225)]):_0x83e8d0(_0x45a5f8[_0x54b2a1(0x225)])[_0x54b2a1(0x278)](_0x5a9cfb,_0xad1e86);}_0x2298d7((_0xf10544=_0xf10544[_0x50f99(0x29f)](_0x4a4e1d,_0x1c65d9||[]))['next']());});}typeof SuppressedError===_0x56baa6(0x230)?SuppressedError:function(_0x177b12,_0xbbd018,_0x47a4c0){const _0x41e72a=_0x56baa6;var _0x3a9a0b=new Error(_0x47a4c0);return _0x3a9a0b[_0x41e72a(0x210)]=_0x41e72a(0x2b0),_0x3a9a0b[_0x41e72a(0x207)]=_0x177b12,_0x3a9a0b['suppressed']=_0xbbd018,_0x3a9a0b;};const _0x2e2257=_0x56baa6(0x279),_0x2a87d3=_0x56baa6(0x257),_0x48d667=_0x56baa6(0x1f4),_0x619190=_0x56baa6(0x247),_0x1aa73c=_0x56baa6(0x26b),_0x188465='ns=0;i=45',_0x5379f7='ns=0;i=40';var _0x4e54c0;(function(_0x40973f){const _0x304b6b=_0x56baa6;_0x40973f[_0x40973f['Forward']=0x0]=_0x304b6b(0x2a0),_0x40973f[_0x40973f['Inverse']=0x1]='Inverse',_0x40973f[_0x40973f[_0x304b6b(0x2b7)]=0x2]=_0x304b6b(0x2b7),_0x40973f[_0x40973f[_0x304b6b(0x2c4)]=0x3]=_0x304b6b(0x2c4);}(_0x4e54c0||(_0x4e54c0={})));var _0x48d60a;(function(_0x46694a){const _0x409770=_0x56baa6;_0x46694a[_0x46694a['Unspecified']=0x0]=_0x409770(0x1e9),_0x46694a[_0x46694a[_0x409770(0x2c3)]=0x1]=_0x409770(0x2c3),_0x46694a[_0x46694a[_0x409770(0x264)]=0x2]=_0x409770(0x264),_0x46694a[_0x46694a[_0x409770(0x243)]=0x4]=_0x409770(0x243),_0x46694a[_0x46694a['ObjectType']=0x8]=_0x409770(0x266),_0x46694a[_0x46694a['VariableType']=0x10]=_0x409770(0x284),_0x46694a[_0x46694a[_0x409770(0x27d)]=0x20]=_0x409770(0x27d),_0x46694a[_0x46694a[_0x409770(0x283)]=0x40]='DataType',_0x46694a[_0x46694a[_0x409770(0x263)]=0x80]='View';}(_0x48d60a||(_0x48d60a={})));var _0x72d7af;(function(_0x60f894){const _0x4b71ee=_0x56baa6;_0x60f894[_0x60f894[_0x4b71ee(0x2c3)]=0x1]=_0x4b71ee(0x2c3),_0x60f894[_0x60f894['Variable']=0x2]='Variable',_0x60f894[_0x60f894[_0x4b71ee(0x243)]=0x4]=_0x4b71ee(0x243),_0x60f894[_0x60f894[_0x4b71ee(0x266)]=0x8]=_0x4b71ee(0x266),_0x60f894[_0x60f894[_0x4b71ee(0x284)]=0x10]=_0x4b71ee(0x284),_0x60f894[_0x60f894[_0x4b71ee(0x27d)]=0x20]=_0x4b71ee(0x27d),_0x60f894[_0x60f894[_0x4b71ee(0x283)]=0x40]=_0x4b71ee(0x283),_0x60f894[_0x60f894[_0x4b71ee(0x263)]=0x80]=_0x4b71ee(0x263);}(_0x72d7af||(_0x72d7af={})));var _0x39a863;(function(_0x210595){const _0x30d299=_0x56baa6;_0x210595[_0x210595[_0x30d299(0x27d)]=0x1]=_0x30d299(0x27d),_0x210595[_0x210595[_0x30d299(0x212)]=0x2]=_0x30d299(0x212),_0x210595[_0x210595[_0x30d299(0x287)]=0x4]=_0x30d299(0x287),_0x210595[_0x210595[_0x30d299(0x240)]=0x8]=_0x30d299(0x240),_0x210595[_0x210595[_0x30d299(0x2c1)]=0x10]='DisplayName',_0x210595[_0x210595[_0x30d299(0x23c)]=0x20]=_0x30d299(0x23c);}(_0x39a863||(_0x39a863={})));function _0x57eae0(_0x2ac130){const _0x4cdc4b=_0x56baa6;switch(_0x2ac130){case'Organizes':return _0x2e2257;case _0x4cdc4b(0x2c8):return _0x619190;case'HasComponent':return _0x48d667;case _0x4cdc4b(0x23f):return _0x1aa73c;case _0x4cdc4b(0x216):return _0x188465;case _0x4cdc4b(0x21c):return _0x5379f7;}}const _0x5c3c1c=_0x552ff9=>{const _0x406395=_0x56baa6;switch(_0x552ff9[_0x406395(0x22c)]){case'Object':if(_0x552ff9[_0x406395(0x242)]===_0x2e2257);if(_0x552ff9['typeDefinition']===_0x2a87d3||_0x552ff9[_0x406395(0x242)]===_0x406395(0x27e))return{'icon':'fa-folder','color':_0x406395(0x23d)};return{'icon':'fa-object-group','color':_0x406395(0x238)};case'Variable':if(_0x552ff9[_0x406395(0x242)]===_0x48d667)return{'icon':'fa-list-alt','color':'SteelBlue'};else return _0x552ff9[_0x406395(0x242)]===_0x619190?{'icon':_0x406395(0x293),'color':_0x406395(0x1f9)}:{'icon':'fa-list-alt','color':'CadetBlue'};case'Method':return{'icon':'fa-cog','color':_0x406395(0x234)};case'ObjectType':return{'icon':_0x406395(0x262),'color':_0x406395(0x299)};case _0x406395(0x284):return{'icon':_0x406395(0x21d),'color':_0x406395(0x299)};}return{'icon':_0x406395(0x223),'color':'grey'};},_0x4a3eb3=({endpointNode:_0x2d1c07,endpoint:_0x3856c8,baseUrl:_0x15ce10},_0x44b5a9,_0x6bad1f)=>_0x510377(void 0x0,void 0x0,void 0x0,function*(){const _0x1f0f0e=_0x56baa6,_0x3c3fbf=_0x15ce10+_0x1f0f0e(0x1f2),_0x3ec219=_0x3c3fbf+_0x1f0f0e(0x200),_0x145510=Object[_0x1f0f0e(0x226)](Object[_0x1f0f0e(0x226)]({},_0x6bad1f),{'nodeId':_0x44b5a9,'resultMask':0x3f}),_0x10939b=yield fetch(_0x3ec219,{'method':_0x1f0f0e(0x2be),'body':JSON[_0x1f0f0e(0x22f)]({'endpointNode':_0x2d1c07,'endpoint':_0x3856c8,'browseDescription':_0x145510}),'headers':{'Content-Type':_0x1f0f0e(0x229)}});if(_0x10939b[_0x1f0f0e(0x233)]!==0xc8)return console[_0x1f0f0e(0x26e)](_0x1f0f0e(0x29c),_0x10939b[_0x1f0f0e(0x233)],_0x10939b[_0x1f0f0e(0x1ff)]),{'references':[]};console[_0x1f0f0e(0x26e)](_0x1f0f0e(0x296),_0x10939b[_0x1f0f0e(0x233)],_0x10939b[_0x1f0f0e(0x1ff)]);const _0x27b4d0=yield _0x10939b[_0x1f0f0e(0x21f)](),_0x31132b=_0x27b4d0['browseResult']['references']||[];return{'references':_0x31132b};}),_0x30b025={'referenceTypeId':_0x57eae0(_0x56baa6(0x23f)),'includeSubtypes':!![],'browseDirection':_0x4e54c0[_0x56baa6(0x2a0)],'nodeClassMask':_0x48d60a[_0x56baa6(0x264)]|_0x48d60a[_0x56baa6(0x2c3)]|_0x48d60a[_0x56baa6(0x243)],'resultMask':0x3f},_0x837b11={'referenceTypeId':_0x57eae0(_0x56baa6(0x23e)),'includeSubtypes':!![],'browseDirection':_0x4e54c0[_0x56baa6(0x2a0)],'nodeClassMask':_0x48d60a[_0x56baa6(0x264)]|_0x48d60a[_0x56baa6(0x2c3)]|_0x48d60a[_0x56baa6(0x243)],'resultMask':0x3f},_0x5c8a43=({endpointNode:_0x31ee3a,endpoint:_0x296651,baseUrl:_0x4e8724},_0x2aa44a,_0x1b4783)=>_0x510377(void 0x0,void 0x0,void 0x0,function*(){const _0xf2dab4=_0x56baa6,_0x24b16e=_0x4e8724+_0xf2dab4(0x1f2),_0x1abdaa=_0x2aa44a['val'](),_0x178d82=yield fetch(_0x24b16e+_0xf2dab4(0x28c),{'method':_0xf2dab4(0x2be),'body':JSON[_0xf2dab4(0x22f)]({'endpointNode':_0x31ee3a,'endpoint':_0x296651,'nodeId':_0x1abdaa}),'headers':{'Content-Type':'application/json'}}),_0x78a48a=(_0x1942a8,_0x17aa8b)=>{const _0x4fd95c=_0xf2dab4;_0x1b4783[_0x4fd95c(0x20d)](_0x1942a8)[_0x4fd95c(0x206)](_0x4fd95c(0x217))[_0x4fd95c(0x206)](_0x17aa8b),_0x1b4783[_0x4fd95c(0x25e)](),setTimeout(()=>{_0x1b4783['removeClass'](_0x17aa8b),_0x1b4783['hide']();},0xbb8);},_0x84f255=yield _0x178d82[_0xf2dab4(0x21f)]();_0x178d82[_0xf2dab4(0x233)]!==0xc8?_0x78a48a(_0xf2dab4(0x21b)+_0x1abdaa,_0xf2dab4(0x29b)):_0x84f255['statusCode']['match'](/Good/)?(_0x2aa44a['val'](_0x84f255[_0xf2dab4(0x2b9)]),_0x2aa44a['trigger'](_0xf2dab4(0x245)),_0x78a48a(_0xf2dab4(0x1fa),'ok')):(_0x2aa44a[_0xf2dab4(0x290)](''+_0x1abdaa),_0x78a48a(_0x84f255[_0xf2dab4(0x286)]+'\x20'+_0x178d82[_0xf2dab4(0x1ff)],_0xf2dab4(0x29b)));});function _0x57e46a(_0x1ec215,_0x570eb7){return _0x510377(this,void 0x0,void 0x0,function*(){const _0x41a9a6=_0x5870,_0x2e6135=_0x1ec215[_0x41a9a6(0x250)](_0x41a9a6(0x225)),_0x433409=yield _0x4a3eb3(_0x570eb7,_0x2e6135,_0x30b025),_0x2eb817=yield _0x4a3eb3(_0x570eb7,_0x2e6135,_0x837b11);return{'references':[..._0x433409[_0x41a9a6(0x201)],..._0x2eb817['references']]};});}const _0x1c2387={'referenceTypeId':_0x57eae0(_0x56baa6(0x216)),'includeSubtypes':!![],'browseDirection':_0x4e54c0['Forward'],'nodeClassMask':_0x48d60a[_0x56baa6(0x27d)]|_0x48d60a['ObjectType']|_0x48d60a[_0x56baa6(0x283)]|_0x48d60a['VariableType'],'resultMask':0x3f};function _0xe1afa2(_0x875c12,_0x47cc86){return _0x510377(this,void 0x0,void 0x0,function*(){const _0x19bd57=_0x5870,_0x4fdae7=_0x875c12['data'](_0x19bd57(0x225)),_0x4e8923=yield _0x4a3eb3(_0x47cc86,_0x4fdae7,_0x1c2387);return _0x4e8923;});}const _0xf274c=_0x1c6590=>{const _0x5cc3ca=_0x56baa6;var _0x53cb9c,_0x1833c8;if(!_0x1c6590){const _0x1c34f5=$(_0x5cc3ca(0x265));return _0x1c34f5;}const _0x5d1e57=_0x1c6590[_0x5cc3ca(0x2b1)][_0x5cc3ca(0x204)](),_0x4c6ecd=((_0x53cb9c=_0x1c6590['displayName'])===null||_0x53cb9c===void 0x0?void 0x0:_0x53cb9c[_0x5cc3ca(0x20d)])||((_0x1833c8=_0x1c6590[_0x5cc3ca(0x274)])===null||_0x1833c8===void 0x0?void 0x0:_0x1833c8[_0x5cc3ca(0x210)])||_0x1c6590[_0x5cc3ca(0x2b1)][_0x5cc3ca(0x204)](),{icon:_0x1e9968,color:_0x55694e}=_0x5c3c1c(_0x1c6590),_0xd7b2b6=$(_0x5cc3ca(0x1f8)+_0x1e9968+_0x5cc3ca(0x222)+_0x55694e+_0x5cc3ca(0x2a2)+_0x4c6ecd+'<ul></ul></li>');return _0xd7b2b6['addClass']('expandable'),_0xd7b2b6[_0x5cc3ca(0x250)](_0x5cc3ca(0x225),_0x5d1e57),_0xd7b2b6[_0x5cc3ca(0x250)]('reference',_0x1c6590),_0xd7b2b6;},_0x3f72ac=()=>{const _0x512271=_0x56baa6;$[_0x512271(0x2b6)](_0x512271(0x209),{'options':{'endpointNode':()=>({'endpoint':_0x512271(0x2bd)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':'Objects'},'nodeClass':_0x512271(0x2c3),'nodeId':_0x512271(0x2ac),'displayName':{'text':'Objects'},'typeDefinition':_0x2a87d3}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x510377(this,void 0x0,void 0x0,function*(){const _0x2b889b=_0x5870,_0x5c64fa=this,_0x5266d4=typeof _0x5c64fa[_0x2b889b(0x231)][_0x2b889b(0x24f)]==='function'?_0x5c64fa['options'][_0x2b889b(0x24f)]():_0x5c64fa[_0x2b889b(0x231)][_0x2b889b(0x24f)];if(_0x5266d4 instanceof Promise)return yield _0x5266d4;return _0x5266d4;});},'reset'(){const _0x3cc5fe=_0x512271,_0x317c49=this;_0x317c49[_0x3cc5fe(0x2c2)][_0x3cc5fe(0x2aa)](),this['resolveParentNode']()['then'](_0x1d823e=>{const _0x4cb8b7=_0x3cc5fe,_0x2e024f=_0xf274c(_0x1d823e);_0x317c49['$tree'][_0x4cb8b7(0x1f6)](_0x2e024f),_0x317c49['currentParent']=_0x1d823e;});},'verify'(){const _0x25fa6c=_0x512271,_0x1bfce9=this,_0x29ec46={'baseUrl':_0x1bfce9[_0x25fa6c(0x231)][_0x25fa6c(0x298)],'endpointNode':typeof _0x1bfce9['options'][_0x25fa6c(0x273)]===_0x25fa6c(0x230)?_0x1bfce9['options'][_0x25fa6c(0x273)]():_0x1bfce9[_0x25fa6c(0x231)][_0x25fa6c(0x273)],'endpoint':typeof _0x1bfce9[_0x25fa6c(0x231)][_0x25fa6c(0x21e)]===_0x25fa6c(0x230)?_0x1bfce9[_0x25fa6c(0x231)][_0x25fa6c(0x21e)]():_0x1bfce9[_0x25fa6c(0x231)][_0x25fa6c(0x21e)]};_0x5c8a43(_0x29ec46,_0x1bfce9[_0x25fa6c(0x297)],_0x1bfce9[_0x25fa6c(0x24c)]);},'_create'(){const _0x4db2f4=_0x512271,_0x3b238c=this;function _0x431377(_0x598c1c,_0x5cc681,_0xfb6508){return _0x510377(this,void 0x0,void 0x0,function*(){const _0xf650cb=_0x5870;if(_0x598c1c['hasClass'](_0xf650cb(0x214))){console[_0xf650cb(0x26e)](_0xf650cb(0x239));return;}if(_0x598c1c[_0xf650cb(0x2c7)]('loading')){console['log']('already\x20loading');return;}_0x598c1c[_0xf650cb(0x206)]('loading'),_0x598c1c['append'](_0xf650cb(0x1f1));try{_0x598c1c['children']('ul')[_0xf650cb(0x2aa)]();const {references:_0x2a60a3}=yield _0x5cc681(_0x598c1c,_0xfb6508);for(const _0x35ef1d of _0x2a60a3){if(_0x3b238c[_0xf650cb(0x231)][_0xf650cb(0x28e)]&&!_0x3b238c['options']['filter'](_0x35ef1d))continue;const _0x3add30=_0xf274c(_0x35ef1d);_0x598c1c[_0xf650cb(0x26d)]('ul')['append'](_0x3add30);}_0x598c1c[_0xf650cb(0x206)](_0xf650cb(0x214));}catch(_0x190886){_0x598c1c[_0xf650cb(0x26d)]('ul')[_0xf650cb(0x1f6)](_0xf650cb(0x236)+_0x190886['message']+_0xf650cb(0x28d)),console['log']('err',_0x190886);}_0x598c1c[_0xf650cb(0x25c)](_0xf650cb(0x2a7))[_0xf650cb(0x27f)](),_0x598c1c[_0xf650cb(0x227)]('loading');});}_0x3b238c[_0x4db2f4(0x297)]=this[_0x4db2f4(0x1ea)],_0x3b238c['$combo']=$('<div/>'),_0x3b238c[_0x4db2f4(0x1ec)]['addClass'](_0x4db2f4(0x241)),this[_0x4db2f4(0x1ea)][_0x4db2f4(0x1fb)](_0x3b238c[_0x4db2f4(0x1ec)]),_0x3b238c[_0x4db2f4(0x232)]=$(_0x4db2f4(0x2ab))[_0x4db2f4(0x206)](_0x4db2f4(0x268)),_0x3b238c['$combo'][_0x4db2f4(0x1f6)](_0x3b238c[_0x4db2f4(0x232)]),_0x3b238c[_0x4db2f4(0x232)][_0x4db2f4(0x1f6)](_0x3b238c[_0x4db2f4(0x297)]),_0x3b238c[_0x4db2f4(0x259)]=$(_0x4db2f4(0x20b)),_0x3b238c[_0x4db2f4(0x232)][_0x4db2f4(0x1f6)](_0x3b238c[_0x4db2f4(0x259)]),_0x3b238c[_0x4db2f4(0x259)]['on'](_0x4db2f4(0x2ba),function(){const _0x177ee4=_0x4db2f4;!_0x3b238c['$dropdown']['is'](_0x177ee4(0x1fd))&&(_0x3b238c['resolveParentNode']()['then'](_0x19e9d2=>{const _0x206a09=_0x177ee4;var _0x2df6e6;(_0x19e9d2!==_0x3b238c['currentParent']||((_0x2df6e6=_0x3b238c[_0x206a09(0x28a)])===null||_0x2df6e6===void 0x0?void 0x0:_0x2df6e6[_0x206a09(0x2b1)])!==_0x19e9d2[_0x206a09(0x2b1)])&&_0x3b238c[_0x206a09(0x26c)]();}),_0x3b238c['$info'][_0x177ee4(0x1ed)]()),_0x3b238c[_0x177ee4(0x248)][_0x177ee4(0x1f0)]();}),_0x3b238c[_0x4db2f4(0x22b)]=$(_0x4db2f4(0x221)),_0x3b238c[_0x4db2f4(0x232)][_0x4db2f4(0x1f6)](_0x3b238c[_0x4db2f4(0x22b)]),_0x3b238c[_0x4db2f4(0x22b)]['on'](_0x4db2f4(0x2ba),()=>{const _0xff8765=_0x4db2f4;this[_0xff8765(0x1e8)]();}),!_0x3b238c[_0x4db2f4(0x297)][_0x4db2f4(0x1f7)]('placeholder')&&_0x3b238c[_0x4db2f4(0x297)][_0x4db2f4(0x1f7)](_0x4db2f4(0x25a),_0x4db2f4(0x23a)),_0x3b238c[_0x4db2f4(0x24c)]=$(_0x4db2f4(0x292)),_0x3b238c[_0x4db2f4(0x24c)][_0x4db2f4(0x1ed)](),{'baseUrl':_0x3b238c['options'][_0x4db2f4(0x298)],'endpointNode':typeof _0x3b238c[_0x4db2f4(0x231)][_0x4db2f4(0x273)]===_0x4db2f4(0x230)?_0x3b238c[_0x4db2f4(0x231)][_0x4db2f4(0x273)]():_0x3b238c[_0x4db2f4(0x231)]['endpointNode'],'endpoint':typeof _0x3b238c[_0x4db2f4(0x231)]['endpoint']===_0x4db2f4(0x230)?_0x3b238c[_0x4db2f4(0x231)]['endpoint']():_0x3b238c['options'][_0x4db2f4(0x21e)]},_0x3b238c[_0x4db2f4(0x248)]=$('<div/>')[_0x4db2f4(0x206)](_0x4db2f4(0x2b4))['hide'](),_0x3b238c['$combo']['append'](_0x3b238c['$info']),_0x3b238c['$combo'][_0x4db2f4(0x1f6)](_0x3b238c[_0x4db2f4(0x248)]),_0x3b238c[_0x4db2f4(0x2c2)]=$(_0x4db2f4(0x211))[_0x4db2f4(0x2b5)](_0x3b238c['$dropdown']),this[_0x4db2f4(0x26c)](),_0x3b238c['$tree']['on'](_0x4db2f4(0x2ba),'li',function(_0x580f97){const _0x21f430=_0x4db2f4;var _0x3f1955,_0x5ac854;_0x580f97[_0x21f430(0x29d)]();let _0x58204a=$(this);const _0x246f8f=0x14,_0x121202=0x14,_0x47a322=$(this)[_0x21f430(0x20a)](),_0x11bf04=_0x580f97;if(_0x11bf04[_0x21f430(0x281)]>=_0x47a322[_0x21f430(0x2bf)]&&_0x11bf04[_0x21f430(0x281)]<=_0x47a322['left']+_0x246f8f&&_0x11bf04[_0x21f430(0x252)]>=_0x47a322['top']&&_0x11bf04[_0x21f430(0x252)]<=_0x47a322[_0x21f430(0x1f3)]+_0x121202){if(_0x58204a['hasClass'](_0x21f430(0x295))){if(_0x58204a[_0x21f430(0x2c7)](_0x21f430(0x214))){_0x58204a[_0x21f430(0x227)](_0x21f430(0x295))[_0x21f430(0x206)]('expanded'),_0x58204a['children']('ul')[_0x21f430(0x1f0)]();return;}const _0x2c96b2={'baseUrl':_0x3b238c['options'][_0x21f430(0x298)],'endpointNode':typeof _0x3b238c[_0x21f430(0x231)]['endpointNode']===_0x21f430(0x230)?_0x3b238c[_0x21f430(0x231)][_0x21f430(0x273)]():_0x3b238c[_0x21f430(0x231)][_0x21f430(0x273)],'endpoint':typeof _0x3b238c[_0x21f430(0x231)][_0x21f430(0x21e)]==='function'?_0x3b238c['options'][_0x21f430(0x21e)]():_0x3b238c[_0x21f430(0x231)][_0x21f430(0x21e)]},_0xf50abd=!_0x3b238c[_0x21f430(0x231)][_0x21f430(0x294)]?_0x57e46a:_0xe1afa2;_0x431377(_0x58204a,_0xf50abd,_0x2c96b2)[_0x21f430(0x278)](()=>{const _0x364e89=_0x21f430;console[_0x364e89(0x26e)](_0x364e89(0x246)),console[_0x364e89(0x26e)](_0x364e89(0x214)),_0x58204a[_0x364e89(0x227)]('expandable')['addClass'](_0x364e89(0x27b));})[_0x21f430(0x289)](_0x340bdb=>{const _0x1cb36e=_0x21f430;_0x58204a[_0x1cb36e(0x227)](_0x1cb36e(0x295))[_0x1cb36e(0x206)](_0x1cb36e(0x27b)),console['log'](_0x1cb36e(0x207),_0x340bdb);});}else{if(_0x58204a[_0x21f430(0x2c7)]('expanded'))_0x58204a['children']('ul')[_0x21f430(0x1f0)](),_0x58204a['toggleClass'](_0x21f430(0x276));else{if(_0x58204a[_0x21f430(0x26d)]('ul')[_0x21f430(0x26d)]()[_0x21f430(0x29a)]>0x0)_0x58204a['children']('ul')[_0x21f430(0x1f0)](),_0x58204a[_0x21f430(0x24b)](_0x21f430(0x276));else;}}}else{const _0x4c84c8=_0x58204a[_0x21f430(0x250)](_0x21f430(0x225)),_0x460454=_0x58204a[_0x21f430(0x250)](_0x21f430(0x2a5));if(_0x3b238c[_0x21f430(0x231)][_0x21f430(0x272)]&&!_0x3b238c[_0x21f430(0x231)][_0x21f430(0x272)](_0x460454))return;_0x3b238c[_0x21f430(0x297)][_0x21f430(0x250)](_0x21f430(0x2a5),_0x460454);const _0x3fdc39=((_0x3f1955=_0x460454[_0x21f430(0x271)])===null||_0x3f1955===void 0x0?void 0x0:_0x3f1955[_0x21f430(0x20d)])||((_0x5ac854=_0x460454[_0x21f430(0x274)])===null||_0x5ac854===void 0x0?void 0x0:_0x5ac854[_0x21f430(0x210)])||_0x460454[_0x21f430(0x2b1)][_0x21f430(0x204)](),_0x566024='['+_0x3fdc39+']('+_0x4c84c8+')';_0x3b238c['$input'][_0x21f430(0x290)](_0x566024),_0x3b238c['$input'][_0x21f430(0x237)](_0x21f430(0x245)),_0x3b238c[_0x21f430(0x248)][_0x21f430(0x1ed)]();}}),$(document)['on'](_0x4db2f4(0x2ba),function(_0x4200d0){const _0x5a3ce0=_0x4db2f4;!$(_0x4200d0['target'])['closest'](_0x3b238c[_0x5a3ce0(0x1ec)])[_0x5a3ce0(0x29a)]&&_0x3b238c['$dropdown'][_0x5a3ce0(0x1ed)]();});}});},_0x14d6b0=_0x1c289e=>{const _0x56e6df=_0x56baa6;var _0x2f372e,_0x405ba1,_0x1f753b;if(!_0x1c289e){const _0x241af8=$(_0x56e6df(0x265));return _0x241af8;}const _0x4822ff=_0x1c289e[_0x56e6df(0x2b1)][_0x56e6df(0x204)]();let _0x33ffa5=((_0x2f372e=_0x1c289e['displayName'])===null||_0x2f372e===void 0x0?void 0x0:_0x2f372e['text'])||((_0x405ba1=_0x1c289e[_0x56e6df(0x274)])===null||_0x405ba1===void 0x0?void 0x0:_0x405ba1[_0x56e6df(0x210)])||_0x1c289e[_0x56e6df(0x2b1)][_0x56e6df(0x204)](),_0x11f65b=(_0x1f753b=_0x1c289e[_0x56e6df(0x274)])===null||_0x1f753b===void 0x0?void 0x0:_0x1f753b[_0x56e6df(0x291)];_0x33ffa5+=_0x11f65b!==undefined&&_0x1c289e['nodeClass'][_0x56e6df(0x2bb)](/Type/)?'\x20(ns='+_0x11f65b+')':'';const {icon:_0x1aa630,color:_0x4165bd}=_0x5c3c1c(_0x1c289e),_0xe25d26=$(_0x56e6df(0x1eb));if(_0x1c289e[_0x56e6df(0x22c)]===_0x56e6df(0x264)){const _0xff9cd=$(_0x56e6df(0x275));_0xe25d26[_0x56e6df(0x1f6)](_0xff9cd),_0xff9cd['on'](_0x56e6df(0x2ba),function(){const _0x56f3cc=_0x56e6df;_0xff9cd[_0x56f3cc(0x2c7)](_0x56f3cc(0x2b3))?_0xff9cd['removeClass'](_0x56f3cc(0x2b3))[_0x56f3cc(0x206)](_0x56f3cc(0x2b2)):_0xff9cd[_0x56f3cc(0x227)]('checked')[_0x56f3cc(0x206)](_0x56f3cc(0x2b3));});}return _0xe25d26[_0x56e6df(0x1f6)]($(_0x56e6df(0x2bc)+_0x1aa630+'\x22\x20style=\x22color:'+_0x4165bd+_0x56e6df(0x235)+_0x33ffa5+'<ul></ul>')),_0xe25d26[_0x56e6df(0x206)](_0x56e6df(0x295)),_0xe25d26[_0x56e6df(0x250)](_0x56e6df(0x225),_0x4822ff),_0xe25d26[_0x56e6df(0x250)]('reference',_0x1c289e),_0xe25d26;},_0xa15b63=()=>{const _0xc7170c=_0x56baa6;$[_0xc7170c(0x2b6)](_0xc7170c(0x2ae),{'options':{'endpointNode':()=>({'endpoint':_0xc7170c(0x2bd)}),'endpoint':()=>undefined,'baseUrl':''},'_populate'(){var _0x212d32;return _0x510377(this,void 0x0,void 0x0,function*(){const _0x2f9a01=_0x5870,_0x41f1c0=this,_0x474421=new Set((_0x212d32=_0x41f1c0['$input'][_0x2f9a01(0x290)]())===null||_0x212d32===void 0x0?void 0x0:_0x212d32[_0x2f9a01(0x204)]()[_0x2f9a01(0x288)](';')),_0x13a581={'baseUrl':_0x41f1c0[_0x2f9a01(0x231)]['baseUrl'],'endpointNode':typeof _0x41f1c0[_0x2f9a01(0x231)][_0x2f9a01(0x273)]==='function'?_0x41f1c0['options'][_0x2f9a01(0x273)]():_0x41f1c0['options'][_0x2f9a01(0x273)],'endpoint':typeof _0x41f1c0[_0x2f9a01(0x231)][_0x2f9a01(0x21e)]===_0x2f9a01(0x230)?_0x41f1c0[_0x2f9a01(0x231)][_0x2f9a01(0x21e)]():_0x41f1c0['options']['endpoint']},_0x243549=yield _0x21da7d(_0x13a581);this[_0x2f9a01(0x260)](_0x243549,_0x474421);});},'_installTree'(_0x24bb30,_0x5342ec){const _0x5cfd2c=_0xc7170c,_0x5dcd3c=this;_0x5dcd3c[_0x5cfd2c(0x2c2)][_0x5cfd2c(0x2aa)]();if(!_0x24bb30[_0x5cfd2c(0x203)])return;const _0x199130=_0x24bb30[_0x5cfd2c(0x203)],_0x481071=_0x14d6b0(_0x199130);_0x5dcd3c[_0x5cfd2c(0x2c2)][_0x5cfd2c(0x1f6)](_0x481071);const _0x33af0b='';this['_installChildren'](_0x481071[_0x5cfd2c(0x26d)]('ul'),_0x199130,_0x33af0b,_0x5342ec),_0x481071['removeClass']('expandable')['addClass']('expanded'),this['_updateValues'](_0x5342ec);},'_installChildren'(_0x5da1aa,_0x41d72c,_0x3718c2,_0x263b73){const _0x1891c9=_0xc7170c,_0x60b293=({name:_0x20fafb,namespaceIndex:_0x53032c})=>{if(_0x53032c===0x0)return _0x20fafb;return _0x53032c+':'+_0x20fafb;},_0x609b10=_0x41d72c['children']||[],_0x2b93be=_0x41d72c['subTypes']||[],_0x4afb27=[..._0x609b10,..._0x2b93be];for(const _0x21ecfd of _0x4afb27){const _0x5aee38=_0x14d6b0(_0x21ecfd);_0x5da1aa[_0x1891c9(0x1f6)](_0x5aee38);let _0x5edb39='';_0x21ecfd['nodeClass']===_0x1891c9(0x264)&&(_0x3718c2?_0x5edb39=_0x3718c2+'.'+_0x60b293(_0x21ecfd[_0x1891c9(0x274)]):_0x5edb39=_0x60b293(_0x21ecfd['browseName']),_0x5aee38[_0x1891c9(0x1f7)](_0x1891c9(0x258),_0x5edb39));const _0x1c623d=_0x21ecfd['children']&&_0x21ecfd[_0x1891c9(0x26d)][_0x1891c9(0x29a)],_0x33f59f=_0x21ecfd[_0x1891c9(0x29e)]&&_0x21ecfd['subTypes'][_0x1891c9(0x29a)];!_0x1c623d&&!_0x33f59f?_0x5aee38[_0x1891c9(0x227)]('expandable')['addClass']('no-expandable'):(this[_0x1891c9(0x27c)](_0x5aee38['children']('ul'),_0x21ecfd,_0x5edb39,_0x263b73),_0x5aee38[_0x1891c9(0x227)](_0x1891c9(0x295))['addClass'](_0x1891c9(0x27b)));}},'_updateSelectedFields'(){const _0x560fa2=_0xc7170c;var _0x1926f8;const _0x1e5915=this,_0x3fb37c=new Set((_0x1926f8=_0x1e5915[_0x560fa2(0x297)][_0x560fa2(0x290)]())===null||_0x1926f8===void 0x0?void 0x0:_0x1926f8['toString']()[_0x560fa2(0x288)](';'));this[_0x560fa2(0x20f)](_0x3fb37c);},'_updateValues'(_0x15f894){const _0x38cd8c=_0xc7170c;$('.sterfive-tree\x20li')[_0x38cd8c(0x23b)](function(){const _0x375aeb=_0x38cd8c,_0x3e7467=$(this),_0x14953b=_0x3e7467[_0x375aeb(0x1f7)]('data-value');_0x14953b&&_0x15f894[_0x375aeb(0x25d)](_0x14953b)&&_0x3e7467[_0x375aeb(0x26d)](_0x375aeb(0x2c0))[_0x375aeb(0x227)](_0x375aeb(0x2b3))['addClass'](_0x375aeb(0x2b2));});},'_setInputValue'(){const _0x729db0=_0xc7170c,_0x410549=this,_0x162969=[];$('.sterfive-tree\x20li')[_0x729db0(0x23b)](function(){const _0x323ad1=_0x729db0,_0x223d0f=$(this);if(_0x223d0f['children'](_0x323ad1(0x208))[_0x323ad1(0x29a)]>0x0){const _0x53db10=_0x223d0f[_0x323ad1(0x1f7)]('data-value');if(_0x53db10)_0x162969['push'](_0x53db10);}});const _0x21f29e=[...new Set(_0x162969)][_0x729db0(0x1ee)]()[_0x729db0(0x20c)](';');_0x410549[_0x729db0(0x297)][_0x729db0(0x290)](_0x21f29e),_0x410549[_0x729db0(0x297)][_0x729db0(0x237)](_0x729db0(0x245));},'_create'(){const _0x1c6496=_0xc7170c,_0x2ab29a=this;_0x2ab29a[_0x1c6496(0x297)]=this[_0x1c6496(0x1ea)],_0x2ab29a[_0x1c6496(0x1ec)]=$(_0x1c6496(0x2ab)),_0x2ab29a[_0x1c6496(0x1ec)][_0x1c6496(0x206)]('sterfive-combo-box'),this[_0x1c6496(0x1ea)][0x0][_0x1c6496(0x267)]['replaceChild'](_0x2ab29a[_0x1c6496(0x1ec)][0x0],this[_0x1c6496(0x1ea)][0x0]),_0x2ab29a['$inputGroup']=$(_0x1c6496(0x2ab))[_0x1c6496(0x206)](_0x1c6496(0x268)),_0x2ab29a[_0x1c6496(0x1ec)]['append'](_0x2ab29a[_0x1c6496(0x232)]),_0x2ab29a[_0x1c6496(0x232)][_0x1c6496(0x1f6)](_0x2ab29a[_0x1c6496(0x297)]),_0x2ab29a[_0x1c6496(0x259)]=$(_0x1c6496(0x20b)),_0x2ab29a[_0x1c6496(0x232)]['append'](_0x2ab29a[_0x1c6496(0x259)]),_0x2ab29a[_0x1c6496(0x259)]['on']('click',function(){const _0x56bd77=_0x1c6496;_0x2ab29a['$dropdown']['toggle'](),_0x2ab29a[_0x56bd77(0x24c)][_0x56bd77(0x1f0)]();if(_0x2ab29a[_0x56bd77(0x248)]['is'](_0x56bd77(0x1fd))){_0x5ca454[_0x56bd77(0x25e)]();const _0x3efe0d=_0x2ab29a[_0x56bd77(0x248)]['offset']();_0x5ca454['css']({'top':_0x3efe0d['top']+'px','right':_0x56bd77(0x249)+(_0x3efe0d[_0x56bd77(0x2bf)]+_0x2ab29a[_0x56bd77(0x248)][_0x56bd77(0x1f5)]())+_0x56bd77(0x2ad)}),_0x2ab29a[_0x56bd77(0x261)](),_0x2ab29a[_0x56bd77(0x244)]();}else _0x5ca454['hide']();});!_0x2ab29a['$input'][_0x1c6496(0x1f7)](_0x1c6496(0x25a))&&_0x2ab29a[_0x1c6496(0x297)][_0x1c6496(0x1f7)]('placeholder','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20');_0x2ab29a[_0x1c6496(0x24c)]=$(_0x1c6496(0x292)),_0x2ab29a[_0x1c6496(0x24c)]['hide'](),_0x2ab29a[_0x1c6496(0x248)]=$('<div/>')[_0x1c6496(0x206)](_0x1c6496(0x2b4))[_0x1c6496(0x1ed)]();const _0xc6bce1=$(_0x1c6496(0x270)),_0x588126=$(_0x1c6496(0x2a6)),_0x5ca454=$(_0x1c6496(0x24e))[_0x1c6496(0x1f6)](_0xc6bce1,_0x588126);_0x5ca454['hide'](),_0xc6bce1['on'](_0x1c6496(0x2ba),()=>{const _0xe091e5=_0x1c6496;_0x2ab29a[_0xe091e5(0x28b)](),_0x2ab29a[_0xe091e5(0x248)][_0xe091e5(0x1ed)]();}),_0x588126['on'](_0x1c6496(0x2ba),()=>{const _0x6c1f1c=_0x1c6496;_0x2ab29a[_0x6c1f1c(0x248)]['hide']();}),_0x2ab29a['$combo'][_0x1c6496(0x1f6)](_0x2ab29a[_0x1c6496(0x24c)]),_0x2ab29a[_0x1c6496(0x1ec)][_0x1c6496(0x1f6)](_0x2ab29a['$dropdown']),_0x2ab29a[_0x1c6496(0x2c2)]=$(_0x1c6496(0x211)),_0x2ab29a[_0x1c6496(0x248)]['empty']()[_0x1c6496(0x1f6)](_0x2ab29a[_0x1c6496(0x2c2)],_0x5ca454),_0x2ab29a[_0x1c6496(0x2c2)]['on'](_0x1c6496(0x2ba),'li',function(_0xb07560){const _0x343b50=_0x1c6496;_0xb07560[_0x343b50(0x29d)]();let _0x489af6=$(this);const _0x1c5de0=0x14,_0x49898c=0x14,_0x445477=$(this)[_0x343b50(0x20a)](),_0x336540=_0xb07560;if(_0x336540[_0x343b50(0x281)]>=_0x445477[_0x343b50(0x2bf)]&&_0x336540[_0x343b50(0x281)]<=_0x445477[_0x343b50(0x2bf)]+_0x1c5de0&&_0x336540[_0x343b50(0x252)]>=_0x445477[_0x343b50(0x1f3)]&&_0x336540['pageY']<=_0x445477[_0x343b50(0x1f3)]+_0x49898c){console[_0x343b50(0x26e)](_0x343b50(0x2a4)),console[_0x343b50(0x26e)](_0x343b50(0x277),_0x489af6[_0x343b50(0x250)](_0x343b50(0x225)),_0x489af6[_0x343b50(0x1f7)](_0x343b50(0x251)));if(_0x489af6['hasClass']('expandable'))_0x489af6[_0x343b50(0x227)]('expandable')[_0x343b50(0x206)](_0x343b50(0x27b)),_0x489af6[_0x343b50(0x26d)]('ul')[_0x343b50(0x1f0)]();else{if(_0x489af6[_0x343b50(0x2c7)]('expanded'))_0x489af6[_0x343b50(0x26d)]('ul')[_0x343b50(0x1f0)](),_0x489af6['toggleClass'](_0x343b50(0x276));else{if(_0x489af6[_0x343b50(0x26d)]('ul')[_0x343b50(0x26d)]()[_0x343b50(0x29a)]>0x0)_0x489af6['children']('ul')['toggle'](),_0x489af6[_0x343b50(0x24b)](_0x343b50(0x276));else;}}}}),$(document)['on'](_0x1c6496(0x2ba),function(_0x35a117){const _0x339a86=_0x1c6496;!$(_0x35a117[_0x339a86(0x220)])['closest'](_0x2ab29a[_0x339a86(0x1ec)])[_0x339a86(0x29a)]&&_0x2ab29a[_0x339a86(0x248)]['hide']();}),this[_0x1c6496(0x261)]();}});},_0x21da7d=({endpointNode:_0x3b5e93,endpoint:_0x37f008,baseUrl:_0x5d7305})=>_0x510377(void 0x0,void 0x0,void 0x0,function*(){const _0x2180a0=_0x56baa6,_0x1003fe=_0x5d7305+_0x2180a0(0x1f2),_0x57f5fc=_0x1003fe+_0x2180a0(0x22a),_0x50f445=yield fetch(_0x57f5fc,{'method':_0x2180a0(0x2be),'body':JSON[_0x2180a0(0x22f)]({'endpointNode':_0x3b5e93,'endpoint':_0x37f008}),'headers':{'Content-Type':_0x2180a0(0x229)}});if(_0x50f445['status']!==0xc8)return console[_0x2180a0(0x26e)](_0x2180a0(0x29c),_0x50f445[_0x2180a0(0x233)],_0x50f445[_0x2180a0(0x1ff)]),{'events':null};console['log'](_0x2180a0(0x296),_0x50f445['status'],_0x50f445[_0x2180a0(0x1ff)]);const _0x55b95a=yield _0x50f445[_0x2180a0(0x21f)](),_0x48f9a9=_0x55b95a['events'];return{'events':_0x48f9a9};}),_0x458678=()=>{const _0x2cd0d6=_0x56baa6,_0x5d6a7a=$(_0x2cd0d6(0x254)),_0x1ee5b2=_0x5d6a7a['val'](),_0x313af3=RED[_0x2cd0d6(0x2a3)][_0x2cd0d6(0x24d)](_0x1ee5b2);if(!_0x313af3)return undefined;const {endpoint:_0xc8e604,securityMode:_0x42dcaa,securityPolicy:_0x3a336c,userIdentityType:_0x5cfbb7,userName:_0x35997f,password:_0x3e6cbc,userCertificate:_0x36eacd,userPrivatekey:_0x1f2b70}=_0x313af3;return{'endpoint':_0xc8e604,'securityMode':_0x42dcaa,'securityPolicy':_0x3a336c,'userIdentityType':_0x5cfbb7,'userName':_0x35997f,'password':_0x3e6cbc,'userCertificate':_0x36eacd,'userPrivatekey':_0x1f2b70};},_0x2a2c09=()=>{return{'endpointNode':_0xccde93};},_0xccde93=()=>{const _0x3861d8=_0x56baa6,_0x2087c8=$(_0x3861d8(0x254)),_0x1959a0=_0x2087c8['val'](),_0x121b90=_0x458678();if(!_0x121b90)return undefined;return{'id':_0x1959a0,'endpoint':_0x121b90[_0x3861d8(0x21e)],'securityMode':_0x121b90[_0x3861d8(0x215)],'securityPolicy':_0x121b90[_0x3861d8(0x219)],'userIdentityType':_0x121b90[_0x3861d8(0x218)],'userName':_0x121b90[_0x3861d8(0x218)]===_0x3861d8(0x253)?_0x121b90[_0x3861d8(0x28f)]:undefined,'password':_0x121b90[_0x3861d8(0x218)]===_0x3861d8(0x253)?_0x121b90[_0x3861d8(0x2af)]:undefined,'userCertificate':_0x121b90['userCertificate'],'userPrivatekey':_0x121b90['userPrivatekey']};};RED['nodes'][_0x56baa6(0x2c6)](_0x56baa6(0x22e),{'category':'opcua','color':'#C0DEED','align':'right','icon':_0x56baa6(0x228),'paletteLabel':_0x56baa6(0x213),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':'OpcUa-Endpoint2'},'subscription':{'value':'','required':!![],'validate':_0x5a42be=>{if(_0x5a42be==='')return![];return!![];}},'startImmediately':{'value':!![],'required':!![]},'nodeId':{'value':'','required':![],'validate':()=>!![]},'samplingInterval':{'value':0x3e8,'required':!![]},'discardOldest':{'value':!![],'required':!![]},'queueSize':{'value':0xa,'required':!![]},'selectClauses':{'value':'','required':!![]},'whereClause':{'value':'','required':![]}},'outputs':0x2,'label'(){const _0x1cb1ea=_0x56baa6;return this[_0x1cb1ea(0x210)]||_0x1cb1ea(0x25b);},'labelStyle'(){const _0x3fb235=_0x56baa6;return this[_0x3fb235(0x210)]?_0x3fb235(0x26f):'';},'oneditprepare'(){const _0x5d5f02=_0x56baa6;_0x3f72ac(),_0xa15b63(),_0x28f1b7(RED,this),$(_0x5d5f02(0x27a))['on']('change',()=>{const _0x198914=_0x5d5f02,_0x37cb1c=$(_0x198914(0x2a9))[_0x198914(0x20e)](_0x198914(0x2b2));_0x37cb1c?$(_0x198914(0x22d))[_0x198914(0x290)](0x0):$('#node-input-inputs')[_0x198914(0x290)](0x1);});const _0xa90513=$(_0x5d5f02(0x280));_0xa90513[_0x5d5f02(0x269)](Object['assign'](Object[_0x5d5f02(0x226)]({},_0x2a2c09()),{'filter'(_0xb927d9){const _0x37c0ed=_0x5d5f02;return _0xb927d9[_0x37c0ed(0x22c)]===_0x37c0ed(0x2c3);},'isSelectable'(_0x16e7a6){const _0x2f8ddd=_0x5d5f02;return _0x16e7a6['nodeClass']===_0x2f8ddd(0x2c3);}})),$(_0x5d5f02(0x255));const _0x150333=$(_0x5d5f02(0x1fe));_0x150333[_0x5d5f02(0x2a8)](Object[_0x5d5f02(0x226)]({},_0x2a2c09()));},'oneditsave'(){const _0x43a607=_0x56baa6,_0x399cda=$(_0x43a607(0x2a9))[_0x43a607(0x20e)](_0x43a607(0x2b2));_0x399cda?($(_0x43a607(0x2a9))[_0x43a607(0x290)](_0x399cda?0x0:0x1),this[_0x43a607(0x26a)]=_0x399cda?0x0:0x1):($(_0x43a607(0x2a9))['val'](0x1),this[_0x43a607(0x26a)]=0x1);}});}()));
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgyOGYxYjciLCJfMHg1OGQwZmYiLCJfMHgxOGVlYzkiLCJfMHgyYmYyOWYiLCIkIiwiXzB4Mjk0OTc0IiwiXzB4M2QyMmFiIiwiXzB4NWMwZGZkIiwiXzB4NDUxYzExIiwiXzB4MjFiNWYzIiwiXzB4NTEwMzc3IiwiXzB4NGE0ZTFkIiwiXzB4MWM2NWQ5IiwiXzB4MWM2ZDljIiwiXzB4ZjEwNTQ0IiwiXzB4ODNlOGQwIiwiXzB4MmE0OGVlIiwiXzB4NWJiNTQ0IiwiUHJvbWlzZSIsIl8weDRlODA5NCIsIl8weDE4YTA3NSIsIl8weDVhOWNmYiIsIl8weDFlOGMxMCIsIl8weDIyOThkNyIsIl8weDFjODQ3NCIsIl8weGFkMWU4NiIsIl8weDlhZTQ1MCIsIl8weDRmZDE5NiIsIl8weDQ1YTVmOCIsIlN1cHByZXNzZWRFcnJvciIsIl8weDE3N2IxMiIsIl8weGJiZDAxOCIsIl8weDQ3YTRjMCIsIl8weDNhOWEwYiIsIkVycm9yIiwiXzB4MmUyMjU3IiwiXzB4MmE4N2QzIiwiXzB4NDhkNjY3IiwiXzB4NjE5MTkwIiwiXzB4MWFhNzNjIiwiXzB4MTg4NDY1IiwiXzB4NTM3OWY3IiwiXzB4NGU1NGMwIiwiXzB4NDA5NzNmIiwiXzB4NDhkNjBhIiwiXzB4NDY2OTRhIiwiXzB4NzJkN2FmIiwiXzB4NjBmODk0IiwiXzB4MzlhODYzIiwiXzB4MjEwNTk1IiwiXzB4NTdlYWUwIiwiXzB4MmFjMTMwIiwiXzB4NWMzYzFjIiwiXzB4NTUyZmY5IiwiXzB4NGEzZWIzIiwiZW5kcG9pbnROb2RlIiwiXzB4MmQxYzA3IiwiZW5kcG9pbnQiLCJfMHgzODU2YzgiLCJiYXNlVXJsIiwiXzB4MTVjZTEwIiwiXzB4NDRiNWE5IiwiXzB4NmJhZDFmIiwiXzB4M2MzZmJmIiwiXzB4M2VjMjE5IiwiXzB4MTQ1NTEwIiwiT2JqZWN0IiwiXzB4MTA5MzliIiwiZmV0Y2giLCJKU09OIiwiY29uc29sZSIsIl8weDI3YjRkMCIsIl8weDMxMTMyYiIsIl8weDMwYjAyNSIsIl8weDgzN2IxMSIsIl8weDVjOGE0MyIsIl8weDMxZWUzYSIsIl8weDI5NjY1MSIsIl8weDRlODcyNCIsIl8weDJhYTQ0YSIsIl8weDFiNDc4MyIsIl8weDI0YjE2ZSIsIl8weDFhYmRhYSIsIl8weDE3OGQ4MiIsIl8weDc4YTQ4YSIsIl8weDE5NDJhOCIsIl8weDE3YWE4YiIsInNldFRpbWVvdXQiLCJfMHg4NGYyNTUiLCJfMHg1N2U0NmEiLCJfMHgxZWMyMTUiLCJfMHg1NzBlYjciLCJfMHgyZTYxMzUiLCJfMHg0MzM0MDkiLCJfMHgyZWI4MTciLCJfMHgxYzIzODciLCJfMHhlMWFmYTIiLCJfMHg4NzVjMTIiLCJfMHg0N2NjODYiLCJfMHg0ZmRhZTciLCJfMHg0ZTg5MjMiLCJfMHhmMjc0YyIsIl8weDFjNjU5MCIsIl8weDUzY2I5YyIsIl8weDE4MzNjOCIsIl8weDFjMzRmNSIsIl8weDVkMWU1NyIsIl8weDRjNmVjZCIsImljb24iLCJfMHgxZTk5NjgiLCJjb2xvciIsIl8weDU1Njk0ZSIsIl8weGQ3YjJiNiIsIl8weDNmNzJhYyIsInVuZGVmaW5lZCIsIl8weDVjNjRmYSIsIl8weDUyNjZkNCIsIl8weDMxN2M0OSIsIl8weDFkODIzZSIsIl8weDJlMDI0ZiIsIl8weDFiZmNlOSIsIl8weDI5ZWM0NiIsIl8weDNiMjM4YyIsIl8weDQzMTM3NyIsIl8weDU5OGMxYyIsIl8weDVjYzY4MSIsIl8weGZiNjUwOCIsInJlZmVyZW5jZXMiLCJfMHgyYTYwYTMiLCJfMHgzNWVmMWQiLCJfMHgzYWRkMzAiLCJfMHgxOTA4ODYiLCJfMHgxOWU5ZDIiLCJfMHgyZGY2ZTYiLCJfMHg1ODBmOTciLCJfMHgzZjE5NTUiLCJfMHg1YWM4NTQiLCJfMHg1ODIwNGEiLCJfMHgyNDZmOGYiLCJfMHgxMjEyMDIiLCJfMHg0N2EzMjIiLCJfMHgxMWJmMDQiLCJfMHgyYzk2YjIiLCJfMHhmNTBhYmQiLCJfMHgzNDBiZGIiLCJfMHg0Yzg0YzgiLCJfMHg0NjA0NTQiLCJfMHgzZmRjMzkiLCJfMHg1NjYwMjQiLCJkb2N1bWVudCIsIl8weDQyMDBkMCIsIl8weDE0ZDZiMCIsIl8weDFjMjg5ZSIsIl8weDJmMzcyZSIsIl8weDQwNWJhMSIsIl8weDFmNzUzYiIsIl8weDI0MWFmOCIsIl8weDQ4MjJmZiIsIl8weDMzZmZhNSIsIl8weDExZjY1YiIsIl8weDFhYTYzMCIsIl8weDQxNjViZCIsIl8weGUyNWQyNiIsIl8weGZmOWNkIiwiXzB4YTE1YjYzIiwiXzB4MjEyZDMyIiwiXzB4NDFmMWMwIiwiXzB4NDc0NDIxIiwiU2V0IiwiXzB4MTNhNTgxIiwiXzB4MjQzNTQ5IiwiXzB4MjFkYTdkIiwiXzB4MjRiYjMwIiwiXzB4NTM0MmVjIiwiXzB4NWRjZDNjIiwiXzB4MTk5MTMwIiwiXzB4NDgxMDcxIiwiXzB4MzNhZjBiIiwiXzB4NWRhMWFhIiwiXzB4NDFkNzJjIiwiXzB4MzcxOGMyIiwiXzB4MjYzYjczIiwiXzB4NjBiMjkzIiwibmFtZSIsIl8weDIwZmFmYiIsIm5hbWVzcGFjZUluZGV4IiwiXzB4NTMwMzJjIiwiXzB4NjA5YjEwIiwiXzB4MmI5M2JlIiwiXzB4NGFmYjI3IiwiXzB4MjFlY2ZkIiwiXzB4NWFlZTM4IiwiXzB4NWVkYjM5IiwiXzB4MWM2MjNkIiwiXzB4MzNmNTlmIiwiXzB4MTkyNmY4IiwiXzB4MWU1OTE1IiwiXzB4M2ZiMzdjIiwiXzB4MTVmODk0IiwiXzB4M2U3NDY3IiwiXzB4MTQ5NTNiIiwiXzB4NDEwNTQ5IiwiXzB4MTYyOTY5IiwiXzB4MjIzZDBmIiwiXzB4NTNkYjEwIiwiXzB4MjFmMjllIiwiXzB4MmFiMjlhIiwiXzB4NWNhNDU0IiwiXzB4M2VmZTBkIiwiXzB4YzZiY2UxIiwiXzB4NTg4MTI2IiwiXzB4YjA3NTYwIiwiXzB4NDg5YWY2IiwiXzB4MWM1ZGUwIiwiXzB4NDk4OThjIiwiXzB4NDQ1NDc3IiwiXzB4MzM2NTQwIiwiXzB4MzVhMTE3IiwiXzB4M2I1ZTkzIiwiXzB4MzdmMDA4IiwiXzB4NWQ3MzA1IiwiXzB4MTAwM2ZlIiwiXzB4NTdmNWZjIiwiXzB4NTBmNDQ1IiwiXzB4NTViOTVhIiwiXzB4NDhmOWE5IiwiXzB4NDU4Njc4IiwiXzB4NWQ2YTdhIiwiXzB4MWVlNWIyIiwiXzB4MzEzYWYzIiwiUkVEIiwiXzB4YzhlNjA0Iiwic2VjdXJpdHlNb2RlIiwiXzB4NDJkY2FhIiwic2VjdXJpdHlQb2xpY3kiLCJfMHgzYTMzNmMiLCJ1c2VySWRlbnRpdHlUeXBlIiwiXzB4NWNmYmI3IiwidXNlck5hbWUiLCJfMHgzNTk5N2YiLCJwYXNzd29yZCIsIl8weDNlNmNiYyIsInVzZXJDZXJ0aWZpY2F0ZSIsIl8weDM2ZWFjZCIsInVzZXJQcml2YXRla2V5IiwiXzB4MWYyYjcwIiwiXzB4MmEyYzA5IiwiXzB4Y2NkZTkzIiwiXzB4MjA4N2M4IiwiXzB4MTk1OWEwIiwiXzB4MTIxYjkwIiwiXzB4NWE0MmJlIiwiXzB4MzdjYjFjIiwiXzB4YTkwNTEzIiwiXzB4YjkyN2Q5IiwiXzB4MTZlN2E2IiwiXzB4MTUwMzMzIiwiXzB4Mzk5Y2RhIl0sIm1hcHBpbmdzIjoia3hJQUFBLENBQUMsVSxDQUNHLGEsd0JBRUEsU0FBU0EsU0FBVCxDQUFxQ0MsU0FBckMsQ0FBMENDLFNBQTFDLEMseUJBQ1VDLFNBQUEsQ0FBWUMsQ0FBQSxDLGdCQUFBLEMsQ0FDWkMsU0FBQSxDQUFnQkQsQ0FBQSxDLGdCQUFBLEMsQ0FDaEJFLFNBQUEsQ0FBNkIsSSwyQkFDekJDLFNBQUEsQ0FBV04sU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBZUUsU0FBQSxDLEtBQUEsR0FBZixDLENBQ2pCRSxTQUFBLEMsZ0JBQUEsSSxHQUNJLENBQUNFLFNBQUQsRUFBYSxDQUFDQSxTQUFBLEMsZ0JBQUEsQyxDQUNkLE8sR0FFQUEsU0FBQSxDLGdCQUFBLEMsQ0FDQSxVQUFXQyxTQUFYLElBQWdCRCxTQUFBLEMsZ0JBQUEsQ0FBaEIsQyxDQUNJLE1BQU1FLFNBQUEsQ0FBUUQsU0FBQSxDLGdCQUFBLEdBQVVBLFNBQUEsQyxJQUFBLENBQXhCLENBQ0FKLENBQUEsQyxnQkFBQSxDQUFlLEMsT0FDWCxDQUFPSSxTQUFBLEMsSUFBQSxDQURJ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LFNBQUEsQyxnQkFBQSxFLEdBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxHQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsR0FBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxZQUFBLEUsR0FBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxjQUFBLEUsSUFBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLElBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxJQUFWLEUsV0FDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxJQUFWLEUsUUFUSixDQVVHRCxTQUFBLEVBQWMsQ0FBQUEsU0FBQSxDQUFZLEVBQVosQ0FWakIsR0FXQSxJQUFJRSxTQUFKLENBQ0EsQ0FBQyxTQUFVQyxTQUFWLEMsMkJBQ0dBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsR0FBZCxFLGlCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxVQUFBLEUsR0FBZCxFLFdBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsR0FBZCxFLGlCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLEdBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxJQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsSUFBZCxFLGlCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLElBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxJQUFkLEUsa0JBUkosQ0FTR0QsU0FBQSxFQUFrQixDQUFBQSxTQUFBLENBQWdCLEVBQWhCLENBVHJCLEdBVUEsSUFBSUUsU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDJCQUNHQSxTQUFBLENBQVdBLFNBQUEsQyxnQkFBQSxFLEdBQVgsRSxpQkFDQUEsU0FBQSxDQUFXQSxTQUFBLEMsZ0JBQUEsRSxHQUFYLEUsaUJBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLGdCQUFBLEUsR0FBWCxFLGlCQUNBQSxTQUFBLENBQVdBLFNBQUEsQyxnQkFBQSxFLEdBQVgsRSxpQkFDQUEsU0FBQSxDQUFXQSxTQUFBLEMsZ0JBQUEsRSxJQUFYLEUsY0FDQUEsU0FBQSxDQUFXQSxTQUFBLEMsZ0JBQUEsRSxJQUFYLEUsa0JBTkosQ0FPR0QsU0FBQSxFQUFlLENBQUFBLFNBQUEsQ0FBYSxFQUFiLENBUGxCLEdBU0EsU0FBU0UsU0FBVCxDQUF1QkMsU0FBdkIsQywyQkFDSSxPQUFRQSxTQUFSLEVBQ0ksSSxXQUFBLENBQ0ksT0FBT2hCLFNBQVAsQ0FDSixLLGdCQUFBLENBQ0ksT0FBT0csU0FBUCxDQUNKLEksY0FBQSxDQUNJLE9BQU9ELFNBQVAsQ0FDSixLLGdCQUFBLENBQ0ksT0FBT0UsU0FBUCxDQUNKLEssZ0JBQUEsQ0FDSSxPQUFPQyxTQUFQLENBQ0osSyxnQkFBQSxDQUNJLE9BQU9DLFNBQVAsQ0FaUixDLENBZ0JKLE1BQU1XLFNBQUEsQ0FBV0MsU0FBRCxFLDJCQUNaLE9BQVFBLFNBQUEsQyxnQkFBQSxDQUFSLEVBQ0ksSSxRQUFBLEMsR0FDUUEsU0FBQSxDLGdCQUFBLElBQThCbEIsUyxLQUM5QmtCLFNBQUEsQyxnQkFBQSxJQUE2QmpCLFNBQTdCLEVBQTJDaUIsU0FBQSxDLGdCQUFBLEksdUJBQ3BDLEMsTUFBRSxDLFdBQUYsQyxPQUFxQixDLGdCQUFyQixDLENBRVgsTUFBTyxDLE1BQUUsQyxpQkFBRixDLE9BQTJCLEMsZ0JBQTNCLENBQVAsQ0FDSixJLFVBQUEsQyxHQUNRQSxTQUFBLEMsZ0JBQUEsSUFBOEJoQixTLE9BQ3ZCLEMsTUFBRSxDLGFBQUYsQyxPQUF1QixDLFdBQXZCLEMsYUFFRmdCLFNBQUEsQyxnQkFBQSxJQUE4QmYsUyxDQUM1QixDLE1BQUUsQyxnQkFBRixDLE9BQXVCLEMsZ0JBQXZCLEMsQ0FHQSxDLE1BQUUsQyxhQUFGLEMsT0FBdUIsQyxXQUF2QixDLENBRWYsSSxRQUFBLENBQ0ksTUFBTyxDLE1BQUUsQyxRQUFGLEMsT0FBa0IsQyxnQkFBbEIsQ0FBUCxDQUNKLEksWUFBQSxDQUNJLE1BQU8sQyxNQUFFLEMsZ0JBQUYsQyxPQUEyQixDLGdCQUEzQixDQUFQLENBQ0osSyxnQkFBQSxDQUNJLE1BQU8sQyxNQUFFLEMsZ0JBQUYsQyxPQUFzQixDLGdCQUF0QixDQUFQLENBdEJSLEMsTUF3Qk8sQyxNQUFFLEMsZ0JBQUYsQyxPQUF1QixDLE1BQXZCLEMsRUF6QlgsQ0E0Qk1nQixTQUFBLENBQVMsQ0FBQyxDQUFFQyxZQUFBLENBQUFDLFNBQUYsQ0FBZ0JDLFFBQUEsQ0FBQUMsU0FBaEIsQ0FBMEJDLE9BQUEsQ0FBQUMsU0FBMUIsQ0FBRCxDQUFzQ0MsU0FBdEMsQ0FBOENDLFNBQTlDLEdBQTJEcEQsU0FBQSxDQUFVLEssR0FBVixDQUFrQixLLEdBQWxCLENBQTBCLEssR0FBMUIsQ0FBa0MsVywyQkFDbEdxRCxTQUFBLENBQVVILFMsa0JBQ1ZJLFNBQUEsQ0FBU0QsUyxrQkFDVEUsU0FBQSxDQUFvQkMsTUFBQSxDLGdCQUFBLEVBQWNBLE1BQUEsQyxnQkFBQSxFQUFjLEVBQWQsQ0FBa0JKLFNBQWxCLENBQWQsQ0FBMkMsQyxRQUFFLENBQUFELFNBQUYsQyxZQUFVLEMsSUFBVixDQUEzQyxDLENBQ3BCTSxTQUFBLENBQU8sTUFBTUMsS0FBQSxDQUFNSixTQUFOLENBQVcsQyxRQUMxQixDLGdCQUQwQixDLE1BRTFCLENBQU1LLElBQUEsQyxnQkFBQSxFQUFlLEMsY0FDakIsQ0FBQWIsU0FEaUIsQyxVQUVqQixDQUFBRSxTQUZpQixDLG1CQUdqQixDQUFBTyxTQUhpQixDQUFmLENBRm9CLEMsU0FPMUIsQ0FBUyxDLGNBQUUsQyxnQkFBRixDQVBpQixDQUFYLEMsSUFTZkUsU0FBQSxDLGdCQUFBLEksWUFDQUcsT0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBMENILFNBQUEsQyxnQkFBQSxDQUExQyxDQUF1REEsU0FBQSxDLGdCQUFBLENBQXZELEMsQ0FDTyxDLFlBQUUsQ0FBWSxFQUFkLEMsQ0FFWEcsT0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBMEJILFNBQUEsQyxnQkFBQSxDQUExQixDQUF1Q0EsU0FBQSxDLGdCQUFBLENBQXZDLEVBQ0EsTUFBTUksU0FBQSxDQUFXLE1BQU1KLFNBQUEsQyxnQkFBQSxHQUF2QixDQUNNSyxTQUFBLENBQWFELFNBQUEsQyxjQUFBLEUsWUFBQSxHQUFvQyxFQUR2RCxDLE1BRU8sQyxZQUFFLENBQUFDLFNBQUYsQyxFQXBCK0QsQ0E1QjFFLENBbURNQyxTQUFBLENBQVksQyxpQkFDZCxDQUFpQnZCLFNBQUEsQyxnQkFBQSxDQURILEMsaUJBRWQsQyxJQUZjLEMsaUJBR2QsQ0FBaUJSLFNBQUEsQyxnQkFBQSxDQUhILEMsZUFJZCxDQUFlRSxTQUFBLEMsZ0JBQUEsRUFBcUJBLFNBQUEsQyxnQkFBQSxDQUFyQixDQUF3Q0EsU0FBQSxDLGdCQUFBLENBSnpDLEMsWUFVZCxDLElBVmMsQ0FuRGxCLENBK0RNOEIsU0FBQSxDQUFZLEMsaUJBQ2QsQ0FBaUJ4QixTQUFBLEMsZ0JBQUEsQ0FESCxDLGlCQUVkLEMsSUFGYyxDLGlCQUdkLENBQWlCUixTQUFBLEMsZ0JBQUEsQ0FISCxDLGVBSWQsQ0FBZUUsU0FBQSxDLGdCQUFBLEVBQXFCQSxTQUFBLEMsZ0JBQUEsQ0FBckIsQ0FBd0NBLFNBQUEsQyxnQkFBQSxDQUp6QyxDLFlBVWQsQyxJQVZjLENBL0RsQixDQTJFTStCLFNBQUEsQ0FBaUIsQ0FBQyxDQUFFcEIsWUFBQSxDQUFBcUIsU0FBRixDQUFnQm5CLFFBQUEsQ0FBQW9CLFNBQWhCLENBQTBCbEIsT0FBQSxDQUFBbUIsU0FBMUIsQ0FBRCxDQUFzQ0MsU0FBdEMsQ0FBcURDLFNBQXJELEdBQStEdEUsU0FBQSxDQUFVLEssR0FBVixDQUFrQixLLEdBQWxCLENBQTBCLEssR0FBMUIsQ0FBa0MsVywyQkFDOUd1RSxTQUFBLENBQVVILFMsa0JBQ1ZJLFNBQUEsQ0FBU0gsU0FBQSxDLEtBQUEsRyxDQUNUSSxTQUFBLENBQU8sTUFBTWYsS0FBQSxDQUFTYSxTLGlCQUFULENBQTZCLEMsUUFDNUMsQyxnQkFENEMsQyxNQUU1QyxDQUFNWixJQUFBLEMsZ0JBQUEsRUFBZSxDLGNBQ2pCLENBQUFPLFNBRGlCLEMsVUFFakIsQ0FBQUMsU0FGaUIsQyxRQUdqQixDQUFBSyxTQUhpQixDQUFmLENBRnNDLEMsU0FPNUMsQ0FBUyxDLGNBQUUsQyxrQkFBRixDQVBtQyxDQUE3QixDLENBU2JFLFNBQUEsQ0FBa0IsQ0FBQ0MsU0FBRCxDQUFPQyxTQUFQLEcsMkJBQ3BCTixTQUFBLEMsZ0JBQUEsRUFBV0ssU0FBWCxFLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxFQUFvREMsU0FBcEQsQyxDQUNBTixTQUFBLEMsZ0JBQUEsRyxDQUNBTyxVQUFBLENBQVcsSSxDQUNQUCxTQUFBLEMsYUFBQSxFQUFrQk0sU0FBbEIsQyxDQUNBTixTQUFBLEMsTUFBQSxHLEVBRkosQyxLQUFBLEMsR0FLRVEsU0FBQSxDQUFRLE1BQU1MLFNBQUEsQyxnQkFBQSxHLENBQ2hCQSxTQUFBLEMsZ0JBQUEsSSxLQUVBQyxTQUFBLEMsZ0JBQWdCLENBQWdCRixTQUFoQyxDLGdCQUFBLEMsQ0FHSU0sU0FBQSxDLFlBQUEsRSxPQUFBLEVBQXNCLE1BQXRCLEMsRUFFQVQsU0FBQSxDLEtBQUEsRUFBa0JTLFNBQUEsQyxnQkFBQSxDQUFsQixDLENBQ0FULFNBQUEsQyxTQUFBLEUsZ0JBQUEsQyxDQUNBSyxTQUFBLEMsZ0JBQUEsQyxJQUFBLEMsR0FHQUwsU0FBQSxDLGdCQUFBLEUsR0FBcUJHLFNBQXJCLEMsQ0FDQUUsU0FBQSxDQUFtQkksU0FBQSxDLGdCQUFBLEMsUUFBbUJMLFNBQUEsQyxnQkFBQSxDQUF0QyxDLGdCQUFBLEMsR0FsQzBFLENBM0V0RixDQWlIQSxTQUFTTSxTQUFULENBQXVCQyxTQUF2QixDQUE4QkMsU0FBOUIsQyxRQUNXakYsU0FBQSxDQUFVLElBQVYsQ0FBZ0IsSyxHQUFoQixDQUF3QixLLEdBQXhCLENBQWdDLFcseUJBQzdCa0YsU0FBQSxDQUFTRixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDLENBQ1RHLFNBQUEsQ0FBZ0IsTUFBTXZDLFNBQUEsQ0FBT3FDLFNBQVAsQ0FBYUMsU0FBYixDQUFxQm5CLFNBQXJCLEMsQ0FDdEJxQixTQUFBLENBQWdCLE1BQU14QyxTQUFBLENBQU9xQyxTQUFQLENBQWFDLFNBQWIsQ0FBcUJsQixTQUFyQixDLE9BQ3JCLEMsWUFDSCxDQUFZLENBQUMsR0FBR21CLFNBQUEsQyxnQkFBQSxDQUFKLENBQThCLEdBQUdDLFNBQUEsQyxZQUFBLENBQWpDLENBRFQsQyxFQUpKLEMsRUFTWCxNQUFNQyxTQUFBLENBQWEsQyxpQkFDZixDQUFpQjdDLFNBQUEsQyxnQkFBQSxDQURGLEMsaUJBRWYsQyxJQUZlLEMsaUJBR2YsQ0FBaUJSLFNBQUEsQyxTQUFBLENBSEYsQyxlQUlmLENBQWVFLFNBQUEsQyxnQkFBQSxFQUEwQkEsU0FBQSxDLFlBQUEsQ0FBMUIsQ0FBaURBLFNBQUEsQyxnQkFBQSxDQUFqRCxDQUFzRUEsU0FBQSxDLGNBQUEsQ0FKdEUsQyxZQUtmLEMsSUFMZSxDQUFuQixDQU9BLFNBQVNvRCxTQUFULENBQXVCQyxTQUF2QixDQUE4QkMsU0FBOUIsQyxRQUNXeEYsU0FBQSxDQUFVLElBQVYsQ0FBZ0IsSyxHQUFoQixDQUF3QixLLEdBQXhCLENBQWdDLFcseUJBQzdCeUYsU0FBQSxDQUFTRixTQUFBLEMsTUFBQSxFLGdCQUFBLEMsQ0FDVEcsU0FBQSxDQUFnQixNQUFNOUMsU0FBQSxDQUFPNEMsU0FBUCxDQUFhQyxTQUFiLENBQXFCSixTQUFyQixDLFFBQ3JCSyxTLEVBSEosQyxFQU1YLE1BQU1DLFFBQUEsQ0FBaUJDLFNBQUQsRSwyQkFDbEIsSUFBSUMsU0FBSixDQUFRQyxTQUFSLEMsR0FDSSxDQUFDRixTLEVBQ0QsTUFBTUcsU0FBQSxDQUFXckcsQ0FBQSxDLGdCQUFBLENBQWpCLEMsT0FDT3FHLFMsRUFFWCxNQUFNQyxTQUFBLENBQUlKLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEdBQVYsQ0FDTUssU0FBQSxDQUFLLENBQUMsQ0FBQUosU0FBQSxDQUFLRCxTQUFBLEMsYUFBQSxDQUFMLENBQUQsR0FBaUMsSUFBakMsRUFBeUNDLFNBQUEsR0FBTyxLLEdBQWhELENBQXlELEssR0FBekQsQ0FBa0VBLFNBQUEsQyxnQkFBQSxDQUFsRSxDQUFELEVBQWdGLENBQUMsQ0FBQUMsU0FBQSxDQUFLRixTQUFBLEMsZ0JBQUEsQ0FBTCxDQUFELEdBQWdDLElBQWhDLEVBQXdDRSxTQUFBLEdBQU8sSyxHQUEvQyxDQUF3RCxLLEdBQXhELENBQWlFQSxTQUFBLEMsZ0JBQUEsQ0FBakUsQ0FBaEYsRUFBNkpGLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEdBRHZLLENBRU0sQ0FBRU0sSUFBQSxDQUFBQyxTQUFGLENBQVFDLEtBQUEsQ0FBQUMsU0FBUixFQUFrQjNELFNBQUEsQ0FBUWtELFNBQVIsQ0FGeEIsQ0FHTVUsU0FBQSxDQUFXNUcsQ0FBQSxDLGlCQUFzQnlHLFMsa0JBQXNCRSxTLGtCQUFnQkosUyxpQkFBNUQsQ0FIakIsQyxPQUlBSyxTQUFBLEMsVUFBQSxFLFlBQUEsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUF1Qk4sU0FBdkIsQyxDQUNBTSxTQUFBLEMsZ0JBQUEsRSxXQUFBLENBQTJCVixTQUEzQixDLENBQ09VLFMsRUFiWCxDQWVNQyxTQUFBLENBQTJCLEksMkJBUTdCN0csQ0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBaUMsQyxTQUU3QixDQUFTLEMsY0FDTCxDQUFjLEtBQU8sQyxVQUFFLEMsZ0JBQUYsQ0FBUCxDQURULEMsVUFFTCxDQUFVLElBQU04RyxTQUZYLEMsWUFHTCxDQUFZLEtBQU8sQyxZQUNmLENBQVksQyxnQkFBRSxDLEdBQUYsQyxNQUFxQixDLFNBQXJCLENBREcsQyxXQUVmLEMsZ0JBRmUsQyxRQUdmLEMsZ0JBSGUsQyxhQUlmLENBQWEsQyxNQUFFLEMsU0FBRixDQUpFLEMsZ0JBS2YsQ0FBZ0I5RSxTQUxELENBQVAsQ0FIUCxDLFFBVUwsQ0FBUSxJLElBVkgsQyxTQVdMLEMsRUFYSyxDLFdBWUwsQyxHQVpLLENBRm9CLEMsbUJBZ0I3QixFLFFBQ1cxQixTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVyx5QkFDN0J5RyxTQUFBLENBQU8sSSxDQUNQQyxTQUFBLENBQUksT0FBT0QsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBUCxHLFVBQUEsQ0FBZ0RBLFNBQUEsQyxTQUFBLEUsZ0JBQUEsR0FBaEQsQ0FBNEVBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEMsSUFDbEZDLFNBQUEsWUFBYWxHLE8sUUFDTixNQUFNa0csUyxRQUVWQSxTLEVBTkosQyxFQWpCa0IsQyxPQTBCN0IsRSwyQkFDVUMsU0FBQSxDQUFPLEksQ0FDYkEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRyxDQUNBLEssbUJBQUEsSSxNQUFBLEVBQStCQyxTQUFELEUsMkJBQ3BCQyxTQUFBLENBQVdsQixRQUFBLENBQWNpQixTQUFkLEMsQ0FDakJELFNBQUEsQyxPQUFBLEUsZ0JBQUEsRUFBa0JFLFNBQWxCLEMsQ0FDQUYsU0FBQSxDLGVBQUEsRUFBcUJDLFMsRUFIekIsQyxFQTdCeUIsQyxRQW1DN0IsRSwyQkFDVUUsU0FBQSxDQUFPLEksQ0FFUEMsU0FBQSxDQUFPLEMsU0FDVCxDQUFTRCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQURBLEMsY0FFVCxDQUFjLE9BQU9BLFNBQUEsQyxTQUFBLEUsZ0JBQUEsQ0FBUCxHLGdCQUFBLENBQWtEQSxTQUFBLEMsU0FBQSxFLGdCQUFBLEdBQWxELENBQWdGQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUZyRixDLFVBR1QsQ0FBVSxPQUFPQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUFQLEcsZ0JBQUEsQ0FBOENBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEdBQTlDLENBQXdFQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUh6RSxDLENBS2I3QyxTQUFBLENBQWU4QyxTQUFmLENBQXFCRCxTQUFBLEMsZ0JBQUEsQ0FBckIsQ0FBa0NBLFNBQUEsQyxnQkFBQSxDQUFsQyxDLEVBM0N5QixDLFNBNkM3QixFLDJCQUNVRSxTQUFBLENBQU8sSSxDQUNiLFNBQVNDLFNBQVQsQ0FBMkJDLFNBQTNCLENBQWtDQyxTQUFsQyxDQUE2Q0MsU0FBN0MsQyxRQUNXcEgsU0FBQSxDQUFVLElBQVYsQ0FBZ0IsSyxHQUFoQixDQUF3QixLLEdBQXhCLENBQWdDLFcsNEJBQy9Ca0gsU0FBQSxDLFVBQUEsRSxnQkFBQSxDLEVBQ0F0RCxPQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUNBLE8sSUFFQXNELFNBQUEsQyxnQkFBQSxFLFNBQUEsQyxFQUNBdEQsT0FBQSxDLEtBQUEsRSxvQkFBQSxFQUNBLE8sQ0FFSnNELFNBQUEsQyxnQkFBQSxFLFNBQUEsQyxDQUNBQSxTQUFBLEMsUUFBQSxFLGdCQUFBLENBREEsQ0FFQSxHLENBQ0lBLFNBQUEsQyxVQUFBLEUsSUFBQSxFLGdCQUFBLElBQ0EsTUFBTSxDQUFFRyxVQUFBLENBQUFDLFNBQUYsRUFBaUIsTUFBTUgsU0FBQSxDQUFVRCxTQUFWLENBQWlCRSxTQUFqQixDQUE3QixDQUNBLFVBQVdHLFNBQVgsSUFBd0JELFNBQXhCLEMsSUFDUU4sU0FBQSxDLGdCQUFBLEUsZ0JBQUEsR0FBdUIsQ0FBQ0EsU0FBQSxDLFNBQUEsRSxRQUFBLEVBQW9CTyxTQUFwQixDLENBQ3hCLFNBRUosTUFBTUMsU0FBQSxDQUFXN0IsUUFBQSxDQUFjNEIsU0FBZCxDQUFqQixDQUNBTCxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsUUFBQSxFQUE0Qk0sU0FBNUIsQyxFQUVKTixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDLEVBRUosTUFBT08sU0FBUCxDLENBQ0lQLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxnQkFBQSxFLGlCQUF5Q08sU0FBQSxDLFNBQUEsQyxpQkFBekMsQyxDQUNBN0QsT0FBQSxDLEtBQUEsRSxLQUFBLENBQW1CNkQsU0FBbkIsQyxFQUVKUCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLEcsQ0FDQUEsU0FBQSxDLGdCQUFBLEUsU0FBQSxDLEVBNUJHLEMsRUErQlhGLFNBQUEsQyxnQkFBQSxFQUFjLEssZ0JBQUEsQyxDQUNkQSxTQUFBLEMsUUFBQSxFQUFjdEgsQ0FBQSxDLFFBQUEsQyxDQUNkc0gsU0FBQSxDLGdCQUFBLEUsVUFBQSxFLGdCQUFBLEMsQ0FDQSxLLGdCQUFBLEUsZ0JBQUEsRUFBeUJBLFNBQUEsQyxnQkFBQSxDQUF6QixDLENBQ0FBLFNBQUEsQyxnQkFBQSxFQUFtQnRILENBQUEsQyxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsQyxDQUNuQnNILFNBQUEsQyxRQUFBLEUsZ0JBQUEsRUFBbUJBLFNBQUEsQyxnQkFBQSxDQUFuQixDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQXdCQSxTQUFBLEMsZ0JBQUEsQ0FBeEIsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRUFBc0J0SCxDQUFBLEMsZ0JBQUEsQyxDQUN0QnNILFNBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQXdCQSxTQUFBLEMsZ0JBQUEsQ0FBeEIsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsZ0JBQUEsQ0FBZ0MsVSwyQkFDeEIsQ0FBQ0EsU0FBQSxDLFdBQUEsRSxJQUFBLEUsZ0JBQUEsQyxHQUVEQSxTQUFBLEMsbUJBQUEsSSxNQUFBLEVBQStCVSxTQUFELEUsMkJBQzFCLElBQUlDLFNBQUosQ0FDSSxDQUFBRCxTQUFBLEdBQWVWLFNBQUEsQyxlQUFBLENBQWYsRUFBc0MsQ0FBQyxDQUFBVyxTQUFBLENBQUtYLFNBQUEsQyxnQkFBQSxDQUFMLENBQUQsR0FBOEIsSUFBOUIsRUFBc0NXLFNBQUEsR0FBTyxLLEdBQTdDLENBQXNELEssR0FBdEQsQ0FBK0RBLFNBQUEsQyxnQkFBQSxDQUEvRCxDQUFELEdBQStFRCxTQUFBLEMsZ0JBQUEsQ0FBcEgsQyxFQUNBVixTQUFBLEMsZ0JBQUEsRyxFQUhSLEMsQ0FNQUEsU0FBQSxDLE9BQUEsRSxnQkFBQSxHLEVBRUpBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEcsRUFYSixDLENBYUFBLFNBQUEsQyxnQkFBQSxFQUFrQnRILENBQUEsQyxnQkFBQSxDLENBQ2xCc0gsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBd0JBLFNBQUEsQyxnQkFBQSxDQUF4QixDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxnQkFBQSxDQUE0QixJLDJCQUN4QixLLGdCQUFBLEcsRUFESixDLENBR0ksQ0FBQ0EsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxhQUFBLEMsRUFDREEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxDLGdCQUFBLEMsQ0FFSkEsU0FBQSxDLGdCQUFBLEVBQWF0SCxDQUFBLEMsZ0JBQUEsQyxDQUNic0gsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRyxDQUVDLEMsU0FDRyxDQUFTQSxTQUFBLEMsU0FBQSxFLGdCQUFBLENBRFosQyxjQUVHLENBQWMsT0FBT0EsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBUCxHLGdCQUFBLENBQWtEQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHQUFsRCxDQUFnRkEsU0FBQSxDLGdCQUFBLEUsY0FBQSxDQUZqRyxDLFVBR0csQ0FBVSxPQUFPQSxTQUFBLEMsZ0JBQUEsRSxVQUFBLENBQVAsRyxnQkFBQSxDQUE4Q0EsU0FBQSxDLGdCQUFBLEUsVUFBQSxHQUE5QyxDQUF3RUEsU0FBQSxDLFNBQUEsRSxnQkFBQSxDQUhyRixDLENBS0RBLFNBQUEsQyxnQkFBQSxFQUFpQnRILENBQUEsQyxRQUFBLEUsZ0JBQUEsRSxnQkFBQSxFLE1BQUEsRyxDQUNqQnNILFNBQUEsQyxRQUFBLEUsUUFBQSxFQUFtQkEsU0FBQSxDLE9BQUEsQ0FBbkIsQyxDQUNBQSxTQUFBLEMsUUFBQSxFLGdCQUFBLEVBQW1CQSxTQUFBLEMsZ0JBQUEsQ0FBbkIsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRUFBYXRILENBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQThDc0gsU0FBQSxDLFdBQUEsQ0FBOUMsQyxDQUNiLEssZ0JBQUEsRyxDQUNBQSxTQUFBLEMsT0FBQSxFLElBQUEsRSxnQkFBQSxDLElBQUEsQ0FBNkIsU0FBVVksU0FBVixDLDJCQUN6QixJQUFJQyxTQUFKLENBQVFDLFNBQVIsQ0FDQUYsU0FBQSxDLGdCQUFBLElBQ0EsSUFBSUcsU0FBQSxDQUFNckksQ0FBQSxDQUFFLElBQUYsQ0FBVixDQUNBLE1BQU1zSSxTQUFBLEMsSUFBTixDQUNNQyxTQUFBLEMsSUFETixDQUVNQyxTQUFBLENBQWF4SSxDQUFBLENBQUUsSUFBRixFLGdCQUFBLEdBRm5CLENBR015SSxTQUFBLENBQUlQLFNBSFYsQyxHQUlJTyxTQUFBLEMsZ0JBQUEsR0FBV0QsU0FBQSxDLGdCQUFBLENBQVgsRUFDQUMsU0FBQSxDLGdCQUFBLEdBQVdELFNBQUEsQyxNQUFBLEVBQWtCRixTQUQ3QixFQUVBRyxTQUFBLEMsZ0JBQUEsR0FBV0QsU0FBQSxDLEtBQUEsQ0FGWCxFQUdBQyxTQUFBLEMsZ0JBQUEsR0FBV0QsU0FBQSxDLGdCQUFBLEVBQWlCRCxTLEtBQ3hCRixTQUFBLEMsVUFBQSxFLGdCQUFBLEMsS0FDSUEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQyxFQUNBQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLEUsVUFBQSxDLENBQ0FBLFNBQUEsQyxVQUFBLEUsSUFBQSxFLGdCQUFBLEdBREEsQ0FFQSxPLENBR0osTUFBTUssU0FBQSxDQUFPLEMsU0FDVCxDQUFTcEIsU0FBQSxDLFNBQUEsRSxnQkFBQSxDQURBLEMsY0FFVCxDQUFjLE9BQU9BLFNBQUEsQyxnQkFBQSxFLGNBQUEsQ0FBUCxHLGdCQUFBLENBQ1JBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEdBRFEsQ0FFUkEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FKRyxDLFVBS1QsQ0FBVSxPQUFPQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUFQLEcsVUFBQSxDQUE4Q0EsU0FBQSxDLFNBQUEsRSxnQkFBQSxHQUE5QyxDQUF3RUEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FMekUsQ0FBYixDQU9NcUIsU0FBQSxDQUFJLENBQUNyQixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUFELENBQTBCakMsU0FBMUIsQ0FBMENPLFNBUHBELENBUUEyQixTQUFBLENBQWtCYyxTQUFsQixDQUF1Qk0sU0FBdkIsQ0FBMEJELFNBQTFCLEUsZ0JBQUEsRUFDVSxJLDJCQUNOeEUsT0FBQSxDLGdCQUFBLEUsZ0JBQUEsQyxDQUNBQSxPQUFBLEMsZ0JBQUEsRSxnQkFBQSxDLENBRUFtRSxTQUFBLEMsZ0JBQUEsRSxZQUFBLEUsVUFBQSxFLGdCQUFBLEMsRUFMSixFLGdCQUFBLEVBT1lPLFNBQUQsRSwyQkFDUFAsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLEMsQ0FDQW5FLE9BQUEsQyxLQUFBLEUsZ0JBQUEsQ0FBcUIwRSxTQUFyQixDLEVBVEosQyxVQVlLUCxTQUFBLEMsZ0JBQUEsRSxVQUFBLEMsQ0FFTEEsU0FBQSxDLFVBQUEsRSxJQUFBLEUsZ0JBQUEsRyxDQUVBQSxTQUFBLEMsYUFBQSxFLGdCQUFBLEMsU0FFS0EsU0FBQSxDLGdCQUFBLEUsSUFBQSxFLGdCQUFBLEksZ0JBQUEsRSxJQUNMQSxTQUFBLEMsVUFBQSxFLElBQUEsRSxnQkFBQSxHLENBRUFBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEMsY0FLSixNQUFNUSxTQUFBLENBQVFSLFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBQWQsQ0FDTVMsU0FBQSxDQUFZVCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQURsQixDLEdBRUlmLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEdBQTZCLENBQUNBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQTBCd0IsU0FBMUIsQyxDQUM5QixPQUVKeEIsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxDQUE4QndCLFNBQTlCLEVBQ0EsTUFBTUMsU0FBQSxDQUFlLENBQUMsQ0FBQVosU0FBQSxDQUFLVyxTQUFBLEMsZ0JBQUEsQ0FBTCxDQUFELEdBQWlDLElBQWpDLEVBQXlDWCxTQUFBLEdBQU8sSyxHQUFoRCxDQUF5RCxLLEdBQXpELENBQWtFQSxTQUFBLEMsZ0JBQUEsQ0FBbEUsQ0FBRCxFQUFnRixDQUFDLENBQUFDLFNBQUEsQ0FBS1UsU0FBQSxDLGdCQUFBLENBQUwsQ0FBRCxHQUFnQyxJQUFoQyxFQUF3Q1YsU0FBQSxHQUFPLEssR0FBL0MsQ0FBd0QsSyxHQUF4RCxDQUFpRUEsU0FBQSxDLGdCQUFBLENBQWpFLENBQWhGLEVBQTZKVSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHQUFqTCxDQUNNRSxTQUFBLEMsSUFBWUQsUyxNQUFnQkYsUyxJQURsQyxDQUVBdkIsU0FBQSxDLFFBQUEsRSxnQkFBQSxFQUFnQjBCLFNBQWhCLEMsQ0FDQTFCLFNBQUEsQyxRQUFBLEUsZ0JBQUEsRSxnQkFBQSxDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEcsR0EvRFIsQyxDQWtFQXRILENBQUEsQ0FBRWlKLFFBQUYsRSxJQUFBLEUsZ0JBQUEsQ0FBd0IsU0FBVUMsU0FBVixDLDJCQUVoQixDQUFDbEosQ0FBQSxDQUFFa0osU0FBQSxDLFFBQUEsQ0FBRixFLFNBQUEsRUFBd0I1QixTQUFBLEMsZ0JBQUEsQ0FBeEIsRSxnQkFBQSxDLEVBQ0RBLFNBQUEsQyxXQUFBLEUsZ0JBQUEsRyxFQUhSLEMsRUE1THlCLENBQWpDLEMsRUF2QkosQ0E2Tk02QixTQUFBLENBQWVDLFNBQUQsRSwyQkFDaEIsSUFBSUMsU0FBSixDQUFRQyxTQUFSLENBQVlDLFNBQVosQyxHQUNJLENBQUNILFMsRUFDRCxNQUFNSSxTQUFBLENBQVd4SixDQUFBLEMsZ0JBQUEsQ0FBakIsQyxPQUNPd0osUyxFQUVYLE1BQU1DLFNBQUEsQ0FBSUwsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsR0FBVixDQUNBLElBQUlNLFNBQUEsQ0FBSyxDQUFDLENBQUFMLFNBQUEsQ0FBS0QsU0FBQSxDLGFBQUEsQ0FBTCxDQUFELEdBQWlDLElBQWpDLEVBQXlDQyxTQUFBLEdBQU8sSyxHQUFoRCxDQUF5RCxLLEdBQXpELENBQWtFQSxTQUFBLEMsTUFBQSxDQUFsRSxDQUFELEVBQWdGLENBQUMsQ0FBQUMsU0FBQSxDQUFLRixTQUFBLEMsZ0JBQUEsQ0FBTCxDQUFELEdBQWdDLElBQWhDLEVBQXdDRSxTQUFBLEdBQU8sSyxHQUEvQyxDQUF3RCxLLEdBQXhELENBQWlFQSxTQUFBLEMsZ0JBQUEsQ0FBakUsQ0FBaEYsRUFBNkpGLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEdBQXJLLENBQ0lPLFNBQUEsQ0FBTSxDQUFBSixTQUFBLENBQUtILFNBQUEsQyxnQkFBQSxDQUFMLENBQUQsR0FBZ0MsSUFBaEMsRUFBd0NHLFNBQUEsR0FBTyxLLEdBQS9DLENBQXdELEssR0FBeEQsQ0FBaUVBLFNBQUEsQyxnQkFBQSxDQUQxRSxDQUVBRyxTQUFBLEVBQUtDLFNBQUEsR0FBTzdDLFNBQVAsRUFBb0JzQyxTQUFBLEMsV0FBQSxFLGdCQUFBLEVBQTBCLE1BQTFCLENBQXBCLEMsV0FBZ0VPLFMsSUFBaEUsQyxFQUFMLENBQ0EsTUFBTSxDQUFFbkQsSUFBQSxDQUFBb0QsU0FBRixDQUFRbEQsS0FBQSxDQUFBbUQsU0FBUixFQUFrQjdHLFNBQUEsQ0FBUW9HLFNBQVIsQ0FBeEIsQ0FDTVUsU0FBQSxDQUFXOUosQ0FBQSxDLGdCQUFBLENBRGpCLEMsR0FFSW9KLFNBQUEsQyxnQkFBQSxJLGtCQUNBLE1BQU1XLFFBQUEsQ0FBVy9KLENBQUEsQyxnQkFBQSxDQUFqQixDQUNBOEosU0FBQSxDLGdCQUFBLEVBQWdCQyxRQUFoQixDLENBRUFBLFFBQUEsQyxJQUFBLEUsZ0JBQUEsQ0FBcUIsVSwyQkFDYkEsUUFBQSxDLGdCQUFBLEUsZ0JBQUEsQyxDQUNBQSxRQUFBLEMsYUFBQSxFLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxDLENBR0FBLFFBQUEsQyxnQkFBQSxFLFNBQUEsRSxnQkFBQSxFLGdCQUFBLEMsRUFMUixDLFNBU0pELFNBQUEsQyxnQkFBQSxFQUFnQjlKLENBQUEsQyxpQkFBa0I0SixTLDRCQUFzQkMsUyxrQkFBZUgsUyxZQUF2RCxDQUFoQixDLENBQ0FJLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEMsQ0FDQUEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBdUJMLFNBQXZCLEMsQ0FDQUssU0FBQSxDLGdCQUFBLEUsV0FBQSxDQUEyQlYsU0FBM0IsQyxDQUNPVSxTLEVBMVBYLENBNFBNRSxTQUFBLENBQWtDLEksMkJBUXBDaEssQ0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBd0MsQyxTQUVwQyxDQUFTLEMsY0FDTCxDQUFjLEtBQU8sQyxVQUFFLEMsZ0JBQUYsQ0FBUCxDQURULEMsVUFFTCxDQUFVLElBQU04RyxTQUZYLEMsU0FHTCxDLEVBSEssQ0FGMkIsQyxXQU9wQyxFLENBQ0ksSUFBSW1ELFNBQUosQyxPQUNPM0osU0FBQSxDQUFVLElBQVYsQ0FBZ0IsSyxHQUFoQixDQUF3QixLLEdBQXhCLENBQWdDLFcseUJBQzdCNEosU0FBQSxDQUFPLEksQ0FDUEMsU0FBQSxDQUFnQixJQUFJQyxHQUFKLENBQVMsQ0FBQUgsU0FBQSxDQUFLQyxTQUFBLEMsUUFBQSxFLGdCQUFBLEdBQUwsQ0FBRCxHQUNkLElBRGMsRUFDTkQsU0FBQSxHQUFPLEssR0FERCxDQUNVLEssR0FEVixDQUNtQkEsU0FBQSxDLGdCQUFBLEksZ0JBQUEsRSxHQUFBLENBRDNCLEMsQ0FFaEJJLFNBQUEsQ0FBTyxDLFNBQ1QsQ0FBU0gsU0FBQSxDLGdCQUFBLEUsU0FBQSxDQURBLEMsY0FFVCxDQUFjLE9BQU9BLFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBQVAsRyxVQUFBLENBQWtEQSxTQUFBLEMsU0FBQSxFLGdCQUFBLEdBQWxELENBQWdGQSxTQUFBLEMsU0FBQSxFLGdCQUFBLENBRnJGLEMsVUFHVCxDQUFVLE9BQU9BLFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBQVAsRyxnQkFBQSxDQUE4Q0EsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsR0FBOUMsQ0FBd0VBLFNBQUEsQyxTQUFBLEUsVUFBQSxDQUh6RSxDLENBS1BJLFNBQUEsQ0FBUyxNQUFNQyxTQUFBLENBQXNCRixTQUF0QixDLENBQ3JCLEssZ0JBQUEsRUFBa0JDLFNBQWxCLENBQTBCSCxTQUExQixDLEVBVkcsQyxFQVR5QixDLGNBc0JwQyxDQUFhSyxTQUFiLENBQXFCQyxTQUFyQixDLDJCQUNVQyxTQUFBLENBQU8sSSxDQUNiQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxJLEdBQ0ksQ0FBQ0YsU0FBQSxDLGdCQUFBLEMsQ0FDRCxPQUVKLE1BQU1HLFNBQUEsQ0FBT0gsU0FBQSxDLGdCQUFBLENBQWIsQ0FDTUksU0FBQSxDQUFlekIsU0FBQSxDQUFZd0IsU0FBWixDQURyQixDQUVBRCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUFrQkUsU0FBbEIsRUFDQSxNQUFNQyxTQUFBLEMsRUFBTixDQUNBLEssa0JBQUEsRUFBc0JELFNBQUEsQyxnQkFBQSxFLElBQUEsQ0FBdEIsQ0FBbURELFNBQW5ELENBQXlERSxTQUF6RCxDQUFpRUosU0FBakUsQyxDQUNBRyxTQUFBLEMsYUFBQSxFLFlBQUEsRSxVQUFBLEUsVUFBQSxDLENBQ0EsSyxlQUFBLEVBQW1CSCxTQUFuQixDLEVBbENnQyxDLGtCQW9DcEMsQ0FBaUJLLFNBQWpCLENBQTBCQyxTQUExQixDQUFrQ0MsU0FBbEMsQ0FBMENDLFNBQTFDLEMsMkJBQ1VDLFNBQUEsQ0FBSSxDQUFDLENBQUVDLElBQUEsQ0FBQUMsU0FBRixDQUFRQyxjQUFBLENBQUFDLFNBQVIsQ0FBRCxHLElBQ0ZBLFNBQUEsRyxXQUNPRixTLFFBRURFLFMsS0FBa0JGLFMsR0FFMUJHLFNBQUEsQ0FBV1IsU0FBQSxDLFVBQUEsR0FBbUIsRSxDQUM5QlMsU0FBQSxDQUFXVCxTQUFBLEMsVUFBQSxHQUFtQixFLENBQzlCVSxTQUFBLENBQXNCLENBQUMsR0FBR0YsU0FBSixDQUFjLEdBQUdDLFNBQWpCLEMsQ0FDNUIsVUFBV0UsU0FBWCxJQUFvQkQsU0FBcEIsQyxDQUNJLE1BQU1FLFNBQUEsQ0FBV3hDLFNBQUEsQ0FBWXVDLFNBQVosQ0FBakIsQ0FDQVosU0FBQSxDLGdCQUFBLEVBQWVhLFNBQWYsRUFDQSxJQUFJQyxTQUFBLEMsRUFBSixDQUNJRixTQUFBLEMsV0FBQSxJLG1CQUNJVixTLENBQ0FZLFNBQUEsQ0FBVVosU0FBQSxDLEdBQUEsQ0FBZUUsU0FBQSxDQUFFUSxTQUFBLEMsZ0JBQUEsQ0FBRixDLENBR3pCRSxTQUFBLENBQVVWLFNBQUEsQ0FBRVEsU0FBQSxDLFlBQUEsQ0FBRixDLENBRWRDLFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBQTRCQyxTQUE1QixDLEVBRUosTUFBTUMsU0FBQSxDQUFjSCxTQUFBLEMsVUFBQSxHQUFrQkEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBdEMsQ0FDTUksU0FBQSxDQUFjSixTQUFBLEMsZ0JBQUEsR0FBa0JBLFNBQUEsQyxVQUFBLEUsZ0JBQUEsQ0FEdEMsQ0FFSSxDQUFDRyxTQUFELEVBQWdCLENBQUNDLFMsQ0FDakJILFNBQUEsQyxnQkFBQSxFLFlBQUEsRSxVQUFBLEUsZUFBQSxDLEVBR0EsSyxnQkFBQSxFQUFzQkEsU0FBQSxDLFVBQUEsRSxJQUFBLENBQXRCLENBQStDRCxTQUEvQyxDQUFzREUsU0FBdEQsQ0FBK0RYLFNBQS9ELEMsQ0FDQVUsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxVQUFBLEUsZ0JBQUEsQyxJQWxFd0IsQyx1QkFzRXBDLEUsMkJBQ0ksSUFBSUksU0FBSixDQUNBLE1BQU1DLFNBQUEsQ0FBTyxJQUFiLENBQ01DLFNBQUEsQ0FBaUIsSUFBSTdCLEdBQUosQ0FBUyxDQUFBMkIsU0FBQSxDQUFLQyxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHQUFMLENBQUQsR0FDZixJQURlLEVBQ1BELFNBQUEsR0FBTyxLLEdBREEsQ0FDUyxLLEdBRFQsQ0FDa0JBLFNBQUEsQyxVQUFBLEksZ0JBQUEsRSxHQUFBLENBRDFCLENBRHZCLENBR0EsSyxnQkFBQSxFQUFtQkUsU0FBbkIsQyxFQTNFZ0MsQyxlQTZFcEMsQ0FBY0MsU0FBZCxDLDJCQUNJbE0sQ0FBQSxDLHNCQUFBLEUsZ0JBQUEsRUFBNEIsVSwyQkFDbEJtTSxTQUFBLENBQVFuTSxDQUFBLENBQUUsSUFBRixDLENBQ1JvTSxTQUFBLENBQUlELFNBQUEsQyxnQkFBQSxFLFlBQUEsQyxDQUNOQyxTQUFBLEVBQUtGLFNBQUEsQyxnQkFBQSxFQUFtQkUsU0FBbkIsQyxFQUNMRCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsRSxVQUFBLEUsZ0JBQUEsQyxFQUpSLEMsRUE5RWdDLEMsZ0JBc0ZwQyxFLDJCQUNVRSxTQUFBLENBQU8sSSxDQUNQQyxTQUFBLENBQU8sRSxDQUVidE0sQ0FBQSxDLHNCQUFBLEUsZ0JBQUEsRUFBNEIsVSwyQkFDbEJ1TSxTQUFBLENBQVF2TSxDQUFBLENBQUUsSUFBRixDLElBRVZ1TSxTQUFBLEMsVUFBQSxFLGdCQUFBLEUsZ0JBQUEsRSxLQUNBLE1BQU1DLFNBQUEsQ0FBSUQsU0FBQSxDLGdCQUFBLEUsWUFBQSxDQUFWLEMsR0FDSUMsUyxDQUNBRixTQUFBLEMsTUFBQSxFQUFVRSxTQUFWLEUsRUFOWixFQVNBLE1BQU1DLFNBQUEsQ0FBUSxDQUFDLEdBQUcsSUFBSXJDLEdBQUosQ0FBUWtDLFNBQVIsQ0FBSixFLGdCQUFBLEksZ0JBQUEsRSxHQUFBLENBQWQsQ0FDQUQsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBZ0JJLFNBQWhCLEMsQ0FDQUosU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxDLEVBckdnQyxDLFNBdUdwQyxFLDJCQUNVSyxTQUFBLENBQU8sSSxDQUNiQSxTQUFBLEMsZ0JBQUEsRUFBYyxLLGdCQUFBLEMsQ0FDZEEsU0FBQSxDLGdCQUFBLEVBQWMxTSxDQUFBLEMsZ0JBQUEsQyxDQUNkME0sU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxvQkFBQSxDLENBQ0EsSyxnQkFBQSxFLEdBQUEsRSxnQkFBQSxFLGNBQUEsRUFBMkNBLFNBQUEsQyxnQkFBQSxFLEdBQUEsQ0FBM0MsQ0FBMkQsSyxnQkFBQSxFLEdBQUEsQ0FBM0QsQyxDQUVBQSxTQUFBLEMsYUFBQSxFQUFtQjFNLENBQUEsQyxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsQyxDQUNuQjBNLFNBQUEsQyxnQkFBQSxFLFFBQUEsRUFBbUJBLFNBQUEsQyxnQkFBQSxDQUFuQixDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQXdCQSxTQUFBLEMsZ0JBQUEsQ0FBeEIsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRUFBc0IxTSxDQUFBLEMsZ0JBQUEsQyxDQUN0QjBNLFNBQUEsQyxnQkFBQSxFLFFBQUEsRUFBd0JBLFNBQUEsQyxnQkFBQSxDQUF4QixDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxPQUFBLENBQWdDLFUsMkJBQzVCQSxTQUFBLEMsV0FBQSxFLFFBQUEsRyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHQURBLEMsR0FFSUEsU0FBQSxDLGdCQUFBLEUsSUFBQSxFLGdCQUFBLEMsRUFDQUMsU0FBQSxDLGdCQUFBLElBQ0EsTUFBTUMsU0FBQSxDQUFTRixTQUFBLEMsZ0JBQUEsRSxRQUFBLEdBQWYsQ0FDQUMsU0FBQSxDLEtBQUEsRUFBcUIsQyxLQUNqQixDQUFRQyxTQUFBLEMsS0FBQSxDLEtBRFMsQyxPQUVqQixDLGlCQUFzQixDQUFBQSxTQUFBLEMsZ0JBQUEsRUFBY0YsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsR0FBZCxDLGlCQUZMLENBQXJCLEMsQ0FJQUEsU0FBQSxDLGdCQUFBLEcsQ0FDQUEsU0FBQSxDLGdCQUFBLEcsT0FHQUMsU0FBQSxDLE1BQUEsRyxFQWRSLENBVkEsQ0EyQkksQ0FBQ0QsU0FBQSxDLFFBQUEsRSxnQkFBQSxFLGdCQUFBLEMsRUFDREEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxhQUFBLEMsbURBQUEsQyxDQUVKQSxTQUFBLEMsZ0JBQUEsRUFBYTFNLENBQUEsQyxnQkFBQSxDLENBQ2IwTSxTQUFBLEMsZ0JBQUEsRSxNQUFBLEcsQ0FDQUEsU0FBQSxDLGdCQUFBLEVBQWlCMU0sQ0FBQSxDLFFBQUEsRSxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsR0FGakIsQ0FJQSxNQUFNNk0sU0FBQSxDQUFrQjdNLENBQUEsQyxnQkFBQSxDQUF4QixDQUNNOE0sU0FBQSxDQUFnQjlNLENBQUEsQyxnQkFBQSxDQUR0QixDQUVNMk0sU0FBQSxDQUFtQjNNLENBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQWlENk0sU0FBakQsQ0FBa0VDLFNBQWxFLENBRnpCLENBR0FILFNBQUEsQyxNQUFBLEcsQ0FFQUUsU0FBQSxDLElBQUEsRSxnQkFBQSxDQUE0QixJLDJCQUN4QkgsU0FBQSxDLGdCQUFBLEcsQ0FDQUEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRyxFQUZKLEMsQ0FJQUksU0FBQSxDLElBQUEsRSxnQkFBQSxDQUEwQixJLDJCQUN0QkosU0FBQSxDLGdCQUFBLEUsTUFBQSxHLEVBREosQyxDQUdBQSxTQUFBLEMsUUFBQSxFLGdCQUFBLEVBQW1CQSxTQUFBLEMsZ0JBQUEsQ0FBbkIsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUFtQkEsU0FBQSxDLFdBQUEsQ0FBbkIsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRUFBYTFNLENBQUEsQyxnQkFBQSxDLENBQ2IwTSxTQUFBLEMsZ0JBQUEsRSxPQUFBLEksZ0JBQUEsRUFBOEJBLFNBQUEsQyxnQkFBQSxDQUE5QixDQUEwQ0MsU0FBMUMsQyxDQUNBRCxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsZ0JBQUEsQyxJQUFBLENBQTZCLFNBQVVLLFNBQVYsQywyQkFDekJBLFNBQUEsQyxnQkFBQSxJQUNBLElBQUlDLFNBQUEsQ0FBTWhOLENBQUEsQ0FBRSxJQUFGLENBQVYsQ0FDQSxNQUFNaU4sU0FBQSxDLElBQU4sQ0FDTUMsU0FBQSxDLElBRE4sQ0FFTUMsU0FBQSxDQUFhbk4sQ0FBQSxDQUFFLElBQUYsRSxnQkFBQSxHQUZuQixDQUdNb04sU0FBQSxDQUFJTCxTQUhWLEMsR0FJSUssU0FBQSxDLGdCQUFBLEdBQVdELFNBQUEsQyxnQkFBQSxDQUFYLEVBQ0FDLFNBQUEsQyxnQkFBQSxHQUFXRCxTQUFBLEMsZ0JBQUEsRUFBa0JGLFNBRDdCLEVBRUFHLFNBQUEsQyxnQkFBQSxHQUFXRCxTQUFBLEMsZ0JBQUEsQ0FGWCxFQUdBQyxTQUFBLEMsT0FBQSxHQUFXRCxTQUFBLEMsZ0JBQUEsRUFBaUJELFMsRUFDNUJoSixPQUFBLEMsZ0JBQUEsRSxnQkFBQSxDLENBQ0FBLE9BQUEsQyxnQkFBQSxFLGdCQUFBLENBQTJCOEksU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBM0IsQ0FBOENBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBQTlDLENBREEsQyxHQUVJQSxTQUFBLEMsVUFBQSxFLFlBQUEsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxZQUFBLEUsZ0JBQUEsRSxnQkFBQSxDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxnQkFBQSxHLFNBRUtBLFNBQUEsQyxnQkFBQSxFLFVBQUEsQyxDQUVMQSxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsZ0JBQUEsRyxDQUVBQSxTQUFBLEMsYUFBQSxFLGdCQUFBLEMsU0FFS0EsU0FBQSxDLGdCQUFBLEUsSUFBQSxFLGdCQUFBLEksZ0JBQUEsRSxJQUNMQSxTQUFBLEMsVUFBQSxFLElBQUEsRSxRQUFBLEcsQ0FFQUEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQyxVQTFCWixDLENBK0JBaE4sQ0FBQSxDQUFFaUosUUFBRixFLElBQUEsRSxnQkFBQSxDQUF3QixTQUFVb0UsU0FBVixDLDJCQUVoQixDQUFDck4sQ0FBQSxDQUFFcU4sU0FBQSxDLGdCQUFBLENBQUYsRSxTQUFBLEVBQXdCWCxTQUFBLEMsZ0JBQUEsQ0FBeEIsRSxnQkFBQSxDLEVBQ0RBLFNBQUEsQyxnQkFBQSxFLE1BQUEsRyxFQUhSLEMsQ0FNQSxLLGdCQUFBLEcsRUFoTWdDLENBQXhDLEMsRUFwUUosQ0F3Y01uQyxTQUFBLENBQXdCLENBQUMsQ0FBRXBILFlBQUEsQ0FBQW1LLFNBQUYsQ0FBZ0JqSyxRQUFBLENBQUFrSyxTQUFoQixDQUEwQmhLLE9BQUEsQ0FBQWlLLFNBQTFCLENBQUQsR0FBMENsTixTQUFBLENBQVUsSyxHQUFWLENBQWtCLEssR0FBbEIsQ0FBMEIsSyxHQUExQixDQUFrQyxXLDJCQUNoR21OLFNBQUEsQ0FBVUQsUyxrQkFDVkUsU0FBQSxDQUFTRCxTLGtCQUNURSxTQUFBLENBQU8sTUFBTTNKLEtBQUEsQ0FBTTBKLFNBQU4sQ0FBVyxDLFFBQzFCLEMsZ0JBRDBCLEMsTUFFMUIsQ0FBTXpKLElBQUEsQyxnQkFBQSxFQUFlLEMsY0FDakIsQ0FBQXFKLFNBRGlCLEMsVUFFakIsQ0FBQUMsU0FGaUIsQ0FBZixDQUZvQixDLFNBTTFCLENBQVMsQyxjQUFFLEMsZ0JBQUYsQ0FOaUIsQ0FBWCxDLElBUWZJLFNBQUEsQyxRQUFBLEksWUFDQXpKLE9BQUEsQyxnQkFBQSxFLGdCQUFBLENBQTBDeUosU0FBQSxDLGdCQUFBLENBQTFDLENBQXVEQSxTQUFBLEMsZ0JBQUEsQ0FBdkQsQyxDQUNPLEMsUUFBRSxDQUFRLElBQVYsQyxDQUVYekosT0FBQSxDLEtBQUEsRSxnQkFBQSxDQUEwQnlKLFNBQUEsQyxRQUFBLENBQTFCLENBQXVDQSxTQUFBLEMsZ0JBQUEsQ0FBdkMsRUFDQSxNQUFNQyxTQUFBLENBQVcsTUFBTUQsU0FBQSxDLGdCQUFBLEdBQXZCLENBQ01FLFNBQUEsQ0FBU0QsU0FBQSxDLFFBQUEsQ0FEZixDLE1BRU8sQyxRQUFFLENBQUFDLFNBQUYsQyxFQWxCNkQsQ0F4Y3hFLENBNmRNQyxTQUFBLENBQXdCLEksMkJBQ3BCQyxTQUFBLENBQVkvTixDQUFBLEMsZ0JBQUEsQyxDQUNaZ08sU0FBQSxDQUFhRCxTQUFBLEMsS0FBQSxHLENBQ2JFLFNBQUEsQ0FBVUMsR0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBZUYsU0FBZixDLElBQ1osQ0FBQ0MsUyxDQUNELE9BQU9uSCxTQUFQLENBRUosTUFBTSxDQUFFekQsUUFBQSxDQUFBOEssU0FBRixDQUFZQyxZQUFBLENBQUFDLFNBQVosQ0FBMEJDLGNBQUEsQ0FBQUMsU0FBMUIsQ0FBMENDLGdCQUFBLENBQUFDLFNBQTFDLENBQTREQyxRQUFBLENBQUFDLFNBQTVELENBQXNFQyxRQUFBLENBQUFDLFNBQXRFLENBQWdGQyxlQUFBLENBQUFDLFNBQWhGLENBQWlHQyxjQUFBLENBQUFDLFNBQWpHLEVBQW9IaEIsU0FBMUgsQyxNQUNPLEMsVUFDSCxDQUFBRSxTQURHLEMsY0FFSCxDQUFBRSxTQUZHLEMsZ0JBR0gsQ0FBQUUsU0FIRyxDLGtCQUlILENBQUFFLFNBSkcsQyxVQUtILENBQUFFLFNBTEcsQyxVQU1ILENBQUFFLFNBTkcsQyxpQkFPSCxDQUFBRSxTQVBHLEMsZ0JBUUgsQ0FBQUUsU0FSRyxDLEVBcmVYLENBZ2ZNQyxTQUFBLENBQStCLEksT0FDMUIsQyxjQUNILENBQWNDLFNBRFgsQyxFQWpmWCxDQXFmTUEsU0FBQSxDQUF3QixJLDJCQUNwQkMsU0FBQSxDQUFZcFAsQ0FBQSxDLGdCQUFBLEMsQ0FDWnFQLFNBQUEsQ0FBYUQsU0FBQSxDLEtBQUEsRyxDQUNiRSxTQUFBLENBQWF4QixTQUFBLEUsSUFDZixDQUFDd0IsUyxRQUNNeEksUyxPQUVKLEMsSUFDSCxDQUFJdUksU0FERCxDLFVBRUgsQ0FBVUMsU0FBQSxDLGdCQUFBLENBRlAsQyxjQUdILENBQWNBLFNBQUEsQyxnQkFBQSxDQUhYLEMsZ0JBSUgsQ0FBZ0JBLFNBQUEsQyxnQkFBQSxDQUpiLEMsa0JBTUgsQ0FBa0JBLFNBQUEsQyxnQkFBQSxDQU5mLEMsVUFRSCxDQUFVQSxTQUFBLEMsZ0JBQUEsSSxnQkFBQSxDQUE2Q0EsU0FBQSxDLGdCQUFBLENBQTdDLENBQW1FeEksU0FSMUUsQyxVQVNILENBQVV3SSxTQUFBLEMsZ0JBQUEsSSxnQkFBQSxDQUE2Q0EsU0FBQSxDLGdCQUFBLENBQTdDLENBQW1FeEksU0FUMUUsQyxpQkFVSCxDQUFpQndJLFNBQUEsQyxpQkFBQSxDQVZkLEMsZ0JBV0gsQ0FBZ0JBLFNBQUEsQyxnQkFBQSxDQVhiLEMsRUE1ZlgsQ0EyZ0JBcEIsR0FBQSxDLE9BQUEsRSxnQkFBQSxFLGdCQUFBLENBQXFELEMsVUFDakQsQyxPQURpRCxDLE9BRWpELEMsU0FGaUQsQyxPQUdqRCxDLE9BSGlELEMsTUFJakQsQyxnQkFKaUQsQyxjQUtqRCxDLGdCQUxpRCxDLFVBTWpELENBQVUsQyxRQUNOLENBQVEsQyxPQUFFLEMsR0FBRixDQURGLEMsUUFFTixDQUFRLEMsT0FBRSxDLEdBQUYsQ0FGRixDLE1BR04sQ0FBTSxDLE9BQUUsQyxFQUFGLENBSEEsQyxVQUlOLENBQVUsQyxPQUFFLEMsRUFBRixDLFVBQWEsQyxJQUFiLEMsTUFBNkIsQyxpQkFBN0IsQ0FKSixDLGNBS04sQ0FBYyxDLE9BQ1YsQyxFQURVLEMsVUFFVixDLElBRlUsQyxVQUdWLENBQVdxQixTQUFELEUsSUFDRkEsU0FBQSxHLEdBQ0EsTSxHQUFBLEMsWUFMRSxDQUxSLEMsa0JBY04sQ0FBa0IsQyxPQUFFLEMsSUFBRixDLFVBQWUsQyxJQUFmLENBZFosQyxRQWlCTixDQUFRLEMsT0FBRSxDLEVBQUYsQyxVQUFhLEMsR0FBYixDLFVBQThCLENBQVUsSSxJQUF4QyxDQWpCRixDLGtCQWtCTixDQUFrQixDLE9BQUUsQyxLQUFGLEMsVUFBZSxDLElBQWYsQ0FsQlosQyxlQW1CTixDQUFlLEMsT0FBRSxDLElBQUYsQyxVQUFlLEMsSUFBZixDQW5CVCxDLFdBb0JOLENBQVcsQyxPQUFFLEMsR0FBRixDLFVBQWEsQyxJQUFiLENBcEJMLEMsZUFxQk4sQ0FBZSxDLE9BQUUsQyxFQUFGLEMsVUFBYSxDLElBQWIsQ0FyQlQsQyxhQXNCTixDQUFhLEMsT0FBRSxDLEVBQUYsQyxVQUFhLEMsR0FBYixDQXRCUCxDQU51QyxDLFNBK0JqRCxDLEdBL0JpRCxDLE9BZ0NqRCxFLGtDQUNXLEssZ0JBQUEsRyxrQkFqQ3NDLEMsWUFtQ2pELEUsa0NBQ1csSyxnQkFBQSxFLGdCQUFBLEMsSUFwQ3NDLEMsZUFzQ2pELEUsMkJBQ0kxSSxTQUFBLEUsQ0FDQW1ELFNBQUEsRSxDQUNBcEssU0FBQSxDQUE0QnNPLEdBQTVCLENBQWlDLElBQWpDLEMsQ0FLQWxPLENBQUEsQyxnQkFBQSxFLElBQUEsRSxRQUFBLENBQThDLEksMkJBQ3BDd1AsU0FBQSxDQUFVeFAsQ0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxDLENBQ1p3UCxTLENBQ0F4UCxDQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLEdBQUEsQyxDQUdBQSxDQUFBLEMsb0JBQUEsRSxnQkFBQSxFLEdBQUEsQyxFQU5SLENBUEEsQ0FtQkEsTUFBTXlQLFNBQUEsQ0FBVXpQLENBQUEsQyxnQkFBQSxDQUFoQixDQUNBeVAsU0FBQSxDLGdCQUFBLEVBQW9CM0wsTUFBQSxDLFFBQUEsRUFBY0EsTUFBQSxDLGdCQUFBLEVBQWMsRUFBZCxDQUFrQm9MLFNBQUEsRUFBbEIsQ0FBZCxDQUFpRSxDLFFBQUUsQ0FBT1EsU0FBUCxDLGtDQUN4RUEsU0FBQSxDLGdCQUFBLEksa0JBRHNFLEMsY0FHakYsQ0FBYUMsU0FBYixDLGtDQUNXQSxTQUFBLEMsV0FBQSxJLGtCQUpzRSxDQUFqRSxDQUFwQixDLENBT0EzUCxDQUFBLEMsZ0JBQUEsQ0FQQSxDQVFBLE1BQU00UCxTQUFBLENBQWlCNVAsQ0FBQSxDLGdCQUFBLENBQXZCLENBQ0E0UCxTQUFBLEMsZ0JBQUEsRUFBa0M5TCxNQUFBLEMsZ0JBQUEsRUFBYyxFQUFkLENBQWtCb0wsU0FBQSxFQUFsQixDQUFsQyxDLEVBcEU2QyxDLFlBc0VqRCxFLDJCQUNVVyxTQUFBLENBQW1CN1AsQ0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxDLENBQ3JCNlAsUyxFQUNBN1AsQ0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBc0M2UCxTQUFBLEMsR0FBQSxDLEdBQXRDLEMsQ0FDQSxLLGdCQUFBLEVBQWNBLFNBQUEsQyxHQUFBLEMsTUFHZDdQLENBQUEsQyxnQkFBQSxFLEtBQUEsRSxHQUFBLEMsQ0FDQSxLLGdCQUFBLEUsTUE5RXlDLENBQXJELEMsRUE3eEJKLEciLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIGZ1bmN0aW9uIGluc3RhbGxTdWJzY3JpcHRpb25TZWxlY3RvcihSRUQsIG5vZGUpIHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCAkc3Vic2NyaXB0aW9uID0gJChcIiNub2RlLWlucHV0LXN1YnNjcmlwdGlvblwiKTtcbiAgICAgICAgY29uc3QgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMgPSAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBlbmRwb2ludCA9IFJFRC5ub2Rlcy5ub2RlKCRlbmRwb2ludC52YWwoKSk7XG4gICAgICAgICAgICAkc3Vic2NyaXB0aW9uLmVtcHR5KCk7XG4gICAgICAgICAgICBpZiAoIWVuZHBvaW50IHx8ICFlbmRwb2ludC5zdWJzY3JpcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGVuZHBvaW50LnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHMgb2YgZW5kcG9pbnQuc3Vic2NyaXB0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9IHMubmFtZSB8fCBzLmlkO1xuICAgICAgICAgICAgICAgICAgICAkKFwiPG9wdGlvbi8+XCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBzLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGxhYmVsLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHMuaWQgPT09IG5vZGUuc3Vic2NyaXB0aW9uLFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLnRleHQobGFiZWwpXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8oJHN1YnNjcmlwdGlvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucygpO1xuICAgICAgICAvLyBoYWNrXG4gICAgICAgIC8vICRpbnB1dEFjdGlvbi5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgIC8vICAgICAkZW5kcG9pbnQub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAvLyAgICAgICAgIGluc3RhbGxTdWJzY3JpcHRpb25PcHRpb25zKCk7XG4gICAgICAgIC8vICAgICB9KTtcbiAgICAgICAgLy8gfSk7XG4gICAgICAgICRzdWJzY3JpcHRpb24ub24oXCJmb2N1cyBjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucygpO1xuICAgICAgICB9KTtcbiAgICAgICAgJGVuZHBvaW50Lm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgIGluc3RhbGxTdWJzY3JpcHRpb25PcHRpb25zKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuICAgIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG4gICAgcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLlxyXG5cclxuICAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuICAgIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG4gICAgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULFxyXG4gICAgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbiAgICBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG4gICAgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUlxyXG4gICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbiAgICAvKiBnbG9iYWwgUmVmbGVjdCwgUHJvbWlzZSwgU3VwcHJlc3NlZEVycm9yLCBTeW1ib2wgKi9cclxuXHJcblxyXG4gICAgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdHlwZW9mIFN1cHByZXNzZWRFcnJvciA9PT0gXCJmdW5jdGlvblwiID8gU3VwcHJlc3NlZEVycm9yIDogZnVuY3Rpb24gKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7XHJcbiAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICAgICAgcmV0dXJuIGUubmFtZSA9IFwiU3VwcHJlc3NlZEVycm9yXCIsIGUuZXJyb3IgPSBlcnJvciwgZS5zdXBwcmVzc2VkID0gc3VwcHJlc3NlZCwgZTtcclxuICAgIH07XG5cbiAgICBjb25zdCBPcmdhbml6ZXNSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNVwiO1xuICAgIGNvbnN0IEZvbGRlclR5cGUgPSBcIm5zPTA7aT02MVwiO1xuICAgIGNvbnN0IEhhc0NvbXBvbmVudFJlZk5vZGVJZCA9IFwibnM9MDtpPTQ3XCI7XG4gICAgY29uc3QgSGFzUHJvcGVydHlSZWZOb2RlSWQgPSBcIm5zPTA7aT00NlwiO1xuICAgIGNvbnN0IEhhc0NoaWxkUmVmTm9kZUlkID0gXCJucz0wO2k9MzRcIjtcbiAgICBjb25zdCBIYXNTdWJ0eXBlUmVmTm9kZUlkID0gXCJucz0wO2k9NDVcIjtcbiAgICBjb25zdCBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZCA9IFwibnM9MDtpPTQwXCI7XG5cbiAgICB2YXIgQnJvd3NlRGlyZWN0aW9uO1xuICAgIChmdW5jdGlvbiAoQnJvd3NlRGlyZWN0aW9uKSB7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJGb3J3YXJkXCJdID0gMF0gPSBcIkZvcndhcmRcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmVyc2VcIl0gPSAxXSA9IFwiSW52ZXJzZVwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiQm90aFwiXSA9IDJdID0gXCJCb3RoXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZhbGlkXCJdID0gM10gPSBcIkludmFsaWRcIjtcbiAgICB9KShCcm93c2VEaXJlY3Rpb24gfHwgKEJyb3dzZURpcmVjdGlvbiA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzcztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzcykge1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVW5zcGVjaWZpZWRcIl0gPSAwXSA9IFwiVW5zcGVjaWZpZWRcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlXCJdID0gMl0gPSBcIlZhcmlhYmxlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlVHlwZVwiXSA9IDE2XSA9IFwiVmFyaWFibGVUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZpZXdcIl0gPSAxMjhdID0gXCJWaWV3XCI7XG4gICAgfSkoTm9kZUNsYXNzIHx8IChOb2RlQ2xhc3MgPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3NNYXNrO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzTWFzaykge1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZhcmlhYmxlXCJdID0gMl0gPSBcIlZhcmlhYmxlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZhcmlhYmxlVHlwZVwiXSA9IDE2XSA9IFwiVmFyaWFibGVUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZpZXdcIl0gPSAxMjhdID0gXCJWaWV3XCI7XG4gICAgfSkoTm9kZUNsYXNzTWFzayB8fCAoTm9kZUNsYXNzTWFzayA9IHt9KSk7XG4gICAgdmFyIFJlc3VsdE1hc2s7XG4gICAgKGZ1bmN0aW9uIChSZXN1bHRNYXNrKSB7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAxXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJJc0ZvcndhcmRcIl0gPSAyXSA9IFwiSXNGb3J3YXJkXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIk5vZGVDbGFzc1wiXSA9IDRdID0gXCJOb2RlQ2xhc3NcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiQnJvd3NlTmFtZVwiXSA9IDhdID0gXCJCcm93c2VOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkRpc3BsYXlOYW1lXCJdID0gMTZdID0gXCJEaXNwbGF5TmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJUeXBlRGVmaW5pdGlvblwiXSA9IDMyXSA9IFwiVHlwZURlZmluaXRpb25cIjtcbiAgICB9KShSZXN1bHRNYXNrIHx8IChSZXN1bHRNYXNrID0ge30pKTtcbiAgICAvLyAgY29uc3QgcSA9IFJlZmVyZW5jZVR5cGVJZHMuT3JnYW5pemVzO1xuICAgIGZ1bmN0aW9uIHJlc29sdmVOb2RlSWQobm9kZUlkTGlrZSkge1xuICAgICAgICBzd2l0Y2ggKG5vZGVJZExpa2UpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPcmdhbml6ZXNcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gT3JnYW5pemVzUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1Byb3BlcnR5XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1Byb3BlcnR5UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NvbXBvbmVudFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDb21wb25lbnRSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ2hpbGRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ2hpbGRSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzU3VidHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNTdWJ0eXBlUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1R5cGVEZWZpbml0aW9uXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZ2V0SWNvbiA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgc3dpdGNoIChyZWZlcmVuY2Uubm9kZUNsYXNzKSB7XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0XCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IE9yZ2FuaXplc1JlZk5vZGVJZCkgO1xuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UudHlwZURlZmluaXRpb24gPT09IEZvbGRlclR5cGUgfHwgcmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gXCJpPTYxXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1mb2xkZXJcIiwgY29sb3I6IFwicmdiYSg2MSwgNjAsIDQsIDAuNTI1KVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIlNlYUdyZWVuXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNDb21wb25lbnRSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJTdGVlbEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNQcm9wZXJ0eVJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkRvZGdlckJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgXCJNZXRob2RcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWNvZ1wiLCBjb2xvcjogXCJTYW5keUJyb3duXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1zbGlkZXJzXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGljb246IFwiZmEtcXVlc3Rpb25cIiwgY29sb3I6IFwiZ3JleVwiIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGJyb3dzZSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkLCB0ZW1wbGF0ZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9icm93c2VgO1xuICAgICAgICBjb25zdCBicm93c2VEZXNjcmlwdGlvbiA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGVtcGxhdGUpLCB7IG5vZGVJZCwgcmVzdWx0TWFzazogNjMgfSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGJyb3dzZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXM6IFtdIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkIDogXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICBjb25zdCByZWZlcmVuY2VzID0gcmVzcG9uc2UuYnJvd3NlUmVzdWx0LnJlZmVyZW5jZXMgfHwgW107XG4gICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXMgfTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHRlbXBsYXRlMSA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzQ2hpbGRcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB0ZW1wbGF0ZTIgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIk9yZ2FuaXplc1wiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IGludGVybmFsVmVyaWZ5ID0gKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCAkaW5wdXRFbGVtZW50LCAkaW5mbykgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCBub2RlSWQgPSAkaW5wdXRFbGVtZW50LnZhbCgpO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2goYCR7cm9vdH0vY2hlY2tOb2RlSWRgLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHNldE5vdGlmaWNhdGlvbiA9ICh0ZXh0LCBjbGFzc05hbWUpID0+IHtcbiAgICAgICAgICAgICRpbmZvLnRleHQodGV4dCkuYWRkQ2xhc3MoXCJzdGVyZml2ZS1pbmZvXCIpLmFkZENsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAkaW5mby5zaG93KCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAkaW5mby5yZW1vdmVDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgICAgICRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgIH0sIDMwMDApO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBqc29uID0gKHlpZWxkIGRhdGEuanNvbigpKTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZztcbiAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihcIiEhZmFpbHVyZSEhXCIgKyBub2RlSWQsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChqc29uLnN0YXR1c0NvZGUubWF0Y2goL0dvb2QvKSkge1xuICAgICAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZ1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKGpzb24ubm9kZUFkZHJlc3NTdHJpbmcpO1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCJHb29kXCIsIFwib2tcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChgJHtub2RlSWR9YCk7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKGAke2pzb24uc3RhdHVzQ29kZX0gJHtkYXRhLnN0YXR1c1RleHR9YCwgXCJmYWlsdXJlXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gZmV0Y2hDaGlsZHJlbigkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMSk7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQyID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUyKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlczogWy4uLmJyb3dzZVJlc3VsdDEucmVmZXJlbmNlcywgLi4uYnJvd3NlUmVzdWx0Mi5yZWZlcmVuY2VzXSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB0ZW1wbGF0ZVNUID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNTdWJ0eXBlXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHwgTm9kZUNsYXNzLk9iamVjdFR5cGUgfCBOb2RlQ2xhc3MuRGF0YVR5cGUgfCBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlLFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGZldGNoU3VidHlwZXMoJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZVNUKTtcbiAgICAgICAgICAgIHJldHVybiBicm93c2VSZXN1bHQxO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgbWFrZUVsZW1lbnQkMSA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKCFyZWZlcmVuY2UpIHtcbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgZmEtZXJyb3JcIiBzdHlsZT1cImNvbG9yOnJlZDtcIj48L2k+bm8gcmVmZXJlbmNlICE8dWw+PC91bD48L2xpPmApO1xuICAgICAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG4gPSByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHQgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB7IGljb24sIGNvbG9yIH0gPSBnZXRJY29uKHJlZmVyZW5jZSk7XG4gICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgJHtpY29ufVwiIHN0eWxlPVwiY29sb3I6JHtjb2xvcn07XCI+PC9pPiAke3R9PHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgJGVsZW1lbnQuYWRkQ2xhc3MoXCJleHBhbmRhYmxlXCIpO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwidmFsdWVcIiwgbik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgIH07XG4gICAgY29uc3QgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogWyBUZW1wZXJhdHVyZSAgXVxuICAgICAgICAgKiAgICggdG9vbHRpcCA6ICgvT2JqZWN0cy9NeVNlbnNvcikgKG5zPTE7cz1UZW1wZXJhdHVyZSkpXG4gICAgICAgICAqIFsgKyBbRm9sZGVyXSBPYmplY3RzXVxuICAgICAgICAgKiBbICAgICBbT2JqZWN0XSBNeVNlbnNvcl1cbiAgICAgICAgICogWyAgICAgKCApIFtWYXJpYWJsZV0gVGVtcGVyYXR1cmVdXG4gICAgICAgICAqL1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLm5vZGVCcm93c2VyXCIsIHtcbiAgICAgICAgICAgIC8qIGRlZmF1bHQgb3B0aW9ucyAqL1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogKCkgPT4gKHsgZW5kcG9pbnQ6IFwib3BjLnRjcDovL29wY3VhZGVtby5zdGVyZml2ZS5jb206MjY1NDNcIiB9KSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludDogKCkgPT4gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHBhcmVudE5vZGU6ICgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIGJyb3dzZU5hbWU6IHsgbmFtZXNwYWNlSW5kZXg6IDAsIG5hbWU6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIG5vZGVDbGFzczogXCJPYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgbm9kZUlkOiBcIm5zPTA7aT04NVwiLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogeyB0ZXh0OiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICB0eXBlRGVmaW5pdGlvbjogRm9sZGVyVHlwZSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6ICgpID0+IHRydWUsXG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgICAgICBpc1R5cGVSZWY6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc29sdmVQYXJlbnROb2RlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdHlwZW9mIHRoYXQub3B0aW9ucy5wYXJlbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHlpZWxkIGE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGE7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzZXQoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzb2x2ZVBhcmVudE5vZGUoKS50aGVuKChwYXJlbnROb2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQkMShwYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LmN1cnJlbnRQYXJlbnQgPSBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZlcmlmeSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGludGVybmFsVmVyaWZ5KGRhdGEsIHRoYXQuJGlucHV0LCB0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIF9mZXRjaERhdGFGb3JOb2RlKCRub2RlLCBmZXRjaEZ1bmMsIGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJsb2FkaW5nXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYXBwZW5kKCc8ZGl2IGNsYXNzPVwic3Bpbm5lclwiPjwvZGl2PicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyByZWZlcmVuY2VzIH0gPSB5aWVsZCBmZXRjaEZ1bmMoJG5vZGUsIGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5maWx0ZXIgJiYgIXRoYXQub3B0aW9ucy5maWx0ZXIocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudCQxKHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKGA8bGk+ZXJyb3IgJHtlcnIubWVzc2FnZX08L2xpPmApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyXCIsIGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5maW5kKFwiLnNwaW5uZXJcIikucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5yZW1vdmVDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21ibyA9ICQoXCI8ZGl2Lz5cIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJzdGVyZml2ZS1jb21iby1ib3hcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHJlZSB3aWRnZXQgaXMgZ29pbmcgdG8gYmVjb21lIHZpc2libGVcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQucmVzb2x2ZVBhcmVudE5vZGUoKS50aGVuKChwYXJlbnROb2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnROb2RlICE9PSB0aGF0LmN1cnJlbnRQYXJlbnQgfHwgKChfYSA9IHRoYXQuY3VycmVudFBhcmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5vZGVJZCkgIT09IHBhcmVudE5vZGUubm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1mbGFza1wiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR2ZXJpZnlCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0bi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52ZXJpZnkoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIiwgXCJlbnRlciBhIG5vZGVJZCBvciBhIGJyb3dzZVBhdGggXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvID0gJChgPGRpdiBjbGFzcz1cImluZm8tdGV4dFwiPjwvZGl2PmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICAoe1xuICAgICAgICAgICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcInN0ZXJmaXZlLWRyb3Bkb3duXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5mbyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlID0gJChgPHVsIGNsYXNzPVwic3RlcmZpdmUtdHJlZVwiPjwvdWw+YCkuYXBwZW5kVG8odGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVXaWR0aCA9IDIwOyAvLyBTZXQgd2lkdGggb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlSGVpZ2h0ID0gMjA7IC8vIFNldCBoZWlnaHQgb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFBvcyA9ICQodGhpcykub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBldmVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUucGFnZVggPj0gZWxlbWVudFBvcy5sZWZ0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VYIDw9IGVsZW1lbnRQb3MubGVmdCArIGJlZm9yZVdpZHRoICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZID49IGVsZW1lbnRQb3MudG9wICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZIDw9IGVsZW1lbnRQb3MudG9wICsgYmVmb3JlSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGYgPSAhdGhhdC5vcHRpb25zLmlzVHlwZVJlZiA/IGZldGNoQ2hpbGRyZW4gOiBmZXRjaFN1YnR5cGVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9mZXRjaERhdGFGb3JOb2RlKCRsaSwgZiwgZGF0YSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIiBGZXRjaGluZyBkb25lXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1hcmsgYXMgZXhwYW5kZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUb2dnbGUgaXRzIGV4cGFuZGVkL2NvbGxhcHNlZCBzdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuY2hpbGRyZW4oXCJ1bFwiKS5jaGlsZHJlbigpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICRsaS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWZlcmVuY2UgPSAkbGkuZGF0YShcInJlZmVyZW5jZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlICYmICF0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXNwbGF5TmFtZSA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dCA9IGBbJHtkaXNwbGF5TmFtZX1dKCR7dmFsdWV9KWA7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC52YWwoaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsaWNraW5nIG91dHNpZGUgdGhlIHBhZ2Ugd2lsbCBoaWRlIHRoZSBkcm9wZG93blxuICAgICAgICAgICAgICAgICAgICBpZiAoISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KHRoYXQuJGNvbWJvKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IG1ha2VFbGVtZW50ID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgaWYgKCFyZWZlcmVuY2UpIHtcbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgZmEtZXJyb3JcIiBzdHlsZT1cImNvbG9yOnJlZDtcIj48L2k+bm8gcmVmZXJlbmNlICE8dWw+PC91bD48L2xpPmApO1xuICAgICAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG4gPSByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGxldCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgbGV0IG5zID0gKF9jID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5uYW1lc3BhY2VJbmRleDtcbiAgICAgICAgdCArPSBucyAhPT0gdW5kZWZpbmVkICYmIHJlZmVyZW5jZS5ub2RlQ2xhc3MubWF0Y2goL1R5cGUvKSA/IGAgKG5zPSR7bnN9KWAgOiBcIlwiO1xuICAgICAgICBjb25zdCB7IGljb24sIGNvbG9yIH0gPSBnZXRJY29uKHJlZmVyZW5jZSk7XG4gICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPmApO1xuICAgICAgICBpZiAocmVmZXJlbmNlLm5vZGVDbGFzcyA9PT0gXCJWYXJpYWJsZVwiKSB7XG4gICAgICAgICAgICBjb25zdCBjaGVja0JveCA9ICQoJzxzcGFuIGNsYXNzPVwiY3VzdG9tLWNoZWNrYm94IHVuY2hlY2tlZFwiPjwvc3Bhbj4nKTtcbiAgICAgICAgICAgICRlbGVtZW50LmFwcGVuZChjaGVja0JveCk7XG4gICAgICAgICAgICAvLyBUb2dnbGUgY2hlY2tib3ggc3RhdGUgd2hlbiBjbGlja2VkXG4gICAgICAgICAgICBjaGVja0JveC5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBpZiAoY2hlY2tCb3guaGFzQ2xhc3MoXCJ1bmNoZWNrZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tCb3gucmVtb3ZlQ2xhc3MoXCJ1bmNoZWNrZWRcIikuYWRkQ2xhc3MoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tCb3gucmVtb3ZlQ2xhc3MoXCJjaGVja2VkXCIpLmFkZENsYXNzKFwidW5jaGVja2VkXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgICRlbGVtZW50LmFwcGVuZCgkKGA8aSBjbGFzcz1cImZhICR7aWNvbn1cIiBzdHlsZT1cImNvbG9yOiR7Y29sb3J9O1wiPjwvaT4ke3R9PHVsPjwvdWw+YCkpO1xuICAgICAgICAkZWxlbWVudC5hZGRDbGFzcyhcImV4cGFuZGFibGVcIik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJ2YWx1ZVwiLCBuKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgfTtcbiAgICBjb25zdCBkZWNsYXJlRXZlbnRGaWVsZFNlbGVjdG9yV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogWyBUZW1wZXJhdHVyZSAgXVxuICAgICAgICAgKiAgICggdG9vbHRpcCA6ICgvT2JqZWN0cy9NeVNlbnNvcikgKG5zPTE7cz1UZW1wZXJhdHVyZSkpXG4gICAgICAgICAqIFsgKyBbRm9sZGVyXSBPYmplY3RzXVxuICAgICAgICAgKiBbICAgICBbT2JqZWN0XSBNeVNlbnNvcl1cbiAgICAgICAgICogWyAgICAgKCApIFtWYXJpYWJsZV0gVGVtcGVyYXR1cmVdXG4gICAgICAgICAqL1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLmV2ZW50RmllbGRTZWxlY3RvclwiLCB7XG4gICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6ICgpID0+ICh7IGVuZHBvaW50OiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzXCIgfSksXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9wb3B1bGF0ZSgpIHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRmllbGQgPSBuZXcgU2V0KChfYSA9IHRoYXQuJGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAudmFsKCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50b1N0cmluZygpLnNwbGl0KFwiO1wiICkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB5aWVsZCBleHRyYWN0RXZlbnRGaWVsZEluZm8oZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2luc3RhbGxUcmVlKHJlc3VsdCwgc2VsZWN0ZWRGaWVsZCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2luc3RhbGxUcmVlKHJlc3VsdCwgc2VsZWN0RmllbGQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuZXZlbnRzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3Qgcm9vdCA9IHJlc3VsdC5ldmVudHM7XG4gICAgICAgICAgICAgICAgY29uc3QgJHJvb3RFbGVtZW50ID0gbWFrZUVsZW1lbnQocm9vdCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5hcHBlbmQoJHJvb3RFbGVtZW50KTtcbiAgICAgICAgICAgICAgICBjb25zdCBwcmVmaXggPSBcIlwiO1xuICAgICAgICAgICAgICAgIHRoaXMuX2luc3RhbGxDaGlsZHJlbigkcm9vdEVsZW1lbnQuY2hpbGRyZW4oXCJ1bFwiKSwgcm9vdCwgcHJlZml4LCBzZWxlY3RGaWVsZCk7XG4gICAgICAgICAgICAgICAgJHJvb3RFbGVtZW50LnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVZhbHVlcyhzZWxlY3RGaWVsZCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2luc3RhbGxDaGlsZHJlbigkcGFyZW50LCBwYXJlbnQsIHByZWZpeCwgc2VsZWN0ZWRGaWVsZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGIgPSAoeyBuYW1lLCBuYW1lc3BhY2VJbmRleCB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChuYW1lc3BhY2VJbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5hbWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGAke25hbWVzcGFjZUluZGV4fToke25hbWV9YDtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuID0gcGFyZW50LmNoaWxkcmVuIHx8IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN1YlR5cGVzID0gcGFyZW50LnN1YlR5cGVzIHx8IFtdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuQW5kU3ViVHlwZXMgPSBbLi4uY2hpbGRyZW4sIC4uLnN1YlR5cGVzXTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIGNoaWxkcmVuQW5kU3ViVHlwZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChjaGlsZCk7XG4gICAgICAgICAgICAgICAgICAgICRwYXJlbnQuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByZWZpeDIgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGQubm9kZUNsYXNzID09PSBcIlZhcmlhYmxlXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmVmaXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXgyID0gcHJlZml4ICsgXCIuXCIgKyBiKGNoaWxkLmJyb3dzZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4MiA9IGIoY2hpbGQuYnJvd3NlTmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAkZWxlbWVudC5hdHRyKFwiZGF0YS12YWx1ZVwiLCBwcmVmaXgyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBoYXNDaGlsZHJlbiA9IGNoaWxkLmNoaWxkcmVuICYmIGNoaWxkLmNoaWxkcmVuLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGFzU3ViVHlwZXMgPSBjaGlsZC5zdWJUeXBlcyAmJiBjaGlsZC5zdWJUeXBlcy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaGFzQ2hpbGRyZW4gJiYgIWhhc1N1YlR5cGVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZWxlbWVudC5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJuby1leHBhbmRhYmxlXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5zdGFsbENoaWxkcmVuKCRlbGVtZW50LmNoaWxkcmVuKFwidWxcIiksIGNoaWxkLCBwcmVmaXgyLCBzZWxlY3RlZEZpZWxkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICRlbGVtZW50LnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF91cGRhdGVTZWxlY3RlZEZpZWxkcygpIHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRGaWVsZHMgPSBuZXcgU2V0KChfYSA9IHRoYXQuJGlucHV0XG4gICAgICAgICAgICAgICAgICAgIC52YWwoKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRvU3RyaW5nKCkuc3BsaXQoXCI7XCIgKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlVmFsdWVzKHNlbGVjdGVkRmllbGRzKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfdXBkYXRlVmFsdWVzKHNlbGVjdGVkRmllbGRzKSB7XG4gICAgICAgICAgICAgICAgJChcIi5zdGVyZml2ZS10cmVlIGxpXCIpLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkdGhpcyA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHYgPSAkdGhpcy5hdHRyKFwiZGF0YS12YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHYgJiYgc2VsZWN0ZWRGaWVsZHMuaGFzKHYpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy5jaGlsZHJlbihcInNwYW4uY3VzdG9tLWNoZWNrYm94XCIpLnJlbW92ZUNsYXNzKFwidW5jaGVja2VkXCIpLmFkZENsYXNzKFwiY2hlY2tlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9zZXRJbnB1dFZhbHVlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpc3QgPSBbXTtcbiAgICAgICAgICAgICAgICAvLyBjcmF3bCB0aGUgdHJlZSB0byBmaW5kIHNlbGVjdGVkIGVsZW1lbnRzIGFuZCBjcmVhdGUgYSBsaXN0IG9mIEJyb3dzZVBhdGhcbiAgICAgICAgICAgICAgICAkKFwiLnN0ZXJmaXZlLXRyZWUgbGlcIikuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICR0aGlzID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIGVsZW1lbnQgaXMgc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLmNoaWxkcmVuKFwic3Bhbi5jdXN0b20tY2hlY2tib3guY2hlY2tlZFwiKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ID0gJHRoaXMuYXR0cihcImRhdGEtdmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0LnB1c2godik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IFsuLi5uZXcgU2V0KGxpc3QpXS5zb3J0KCkuam9pbihcIjtcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudmFsKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFswXS5wYXJlbnRFbGVtZW50LnJlcGxhY2VDaGlsZCh0aGF0LiRjb21ib1swXSwgdGhpcy5lbGVtZW50WzBdKTtcbiAgICAgICAgICAgICAgICAvLyB0aGlzLmVsZW1lbnQucmVwbGFjZVdpdGgodGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAgPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwiaW5wdXQtZ3JvdXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGlucHV0R3JvdXApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJGlucHV0KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLXNpdGVtYXBcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdG9nZ2xlVHJlZUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0bi5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGluZm8udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGF0LiRkcm9wZG93bi5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZmxvYXRpbmdCdXR0b25zLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9mZnNldCA9IHRoYXQuJGRyb3Bkb3duLm9mZnNldCgpOyAvLyBHZXQgdGhlIHRvcC1sZWZ0IGNvcm5lciBwb3NpdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgJGZsb2F0aW5nQnV0dG9ucy5jc3Moe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogYCR7b2Zmc2V0LnRvcH1weGAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IGBjYWxjKDEwMCUgLSAke29mZnNldC5sZWZ0ICsgdGhhdC4kZHJvcGRvd24ud2lkdGgoKX1weClgLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9wb3B1bGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fdXBkYXRlU2VsZWN0ZWRGaWVsZHMoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRmbG9hdGluZ0J1dHRvbnMuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgLy8gY29uc3QgJHNjcm9sbGFibGVDb250ZW50ID0gJCgnPGRpdiBjbGFzcz1cInN0ZXJmaXZlLWRyb3Bkb3duLXNjcm9sbGFibGUtY29udGVudFwiPjwvZGl2PicpO1xuICAgICAgICAgICAgICAgIGNvbnN0ICR2YWxpZGF0ZUJ1dHRvbiA9ICQoJzxzcGFuIGNsYXNzPVwidmFsaWRhdGUtYnV0dG9uXCI+4pyUPC9zcGFuPicpOyAvLyBVc2UgYW55IGljb24gb3IgdGV4dCBoZXJlXG4gICAgICAgICAgICAgICAgY29uc3QgJGNhbmNlbEJ1dHRvbiA9ICQoJzxzcGFuIGNsYXNzPVwiY2FuY2VsLWJ1dHRvblwiPuKcljwvc3Bhbj4nKTsgLy8gVXNlIGFueSBpY29uIG9yIHRleHQgaGVyZVxuICAgICAgICAgICAgICAgIGNvbnN0ICRmbG9hdGluZ0J1dHRvbnMgPSAkKCc8ZGl2IGNsYXNzPVwiZmxvYXRpbmctYnV0dG9uc1wiPjwvZGl2PicpLmFwcGVuZCgkdmFsaWRhdGVCdXR0b24sICRjYW5jZWxCdXR0b24pO1xuICAgICAgICAgICAgICAgICRmbG9hdGluZ0J1dHRvbnMuaGlkZSgpO1xuICAgICAgICAgICAgICAgIC8vIERlZmluZSB5b3VyIHZhbGlkYXRpb24gYW5kIGNhbmNlbGxhdGlvbiBsb2dpY1xuICAgICAgICAgICAgICAgICR2YWxpZGF0ZUJ1dHRvbi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5fc2V0SW5wdXRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJGNhbmNlbEJ1dHRvbi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUgPSAkKGA8dWwgY2xhc3M9XCJzdGVyZml2ZS10cmVlXCI+PC91bD5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5lbXB0eSgpLmFwcGVuZCh0aGF0LiR0cmVlLCAkZmxvYXRpbmdCdXR0b25zKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVXaWR0aCA9IDIwOyAvLyBTZXQgd2lkdGggb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlSGVpZ2h0ID0gMjA7IC8vIFNldCBoZWlnaHQgb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFBvcyA9ICQodGhpcykub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBldmVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUucGFnZVggPj0gZWxlbWVudFBvcy5sZWZ0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VYIDw9IGVsZW1lbnRQb3MubGVmdCArIGJlZm9yZVdpZHRoICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZID49IGVsZW1lbnRQb3MudG9wICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZIDw9IGVsZW1lbnRQb3MudG9wICsgYmVmb3JlSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImNsaWNrZWQgb24gaWNvblwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiY2xpY2tlZCBvbiBcIiwgJGxpLmRhdGEoXCJ2YWx1ZVwiKSwgJGxpLmF0dHIoXCJjbGFzc1wiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSB0aGUgcGFnZSB3aWxsIGhpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QodGhhdC4kY29tYm8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fcG9wdWxhdGUoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgY29uc3QgZXh0cmFjdEV2ZW50RmllbGRJbmZvID0gKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCwgfSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9leHRyYWN0RXZlbnRUeXBlc2A7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIHJldHVybiB7IGV2ZW50czogbnVsbCB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgZXZlbnRzID0gcmVzcG9uc2UuZXZlbnRzO1xuICAgICAgICByZXR1cm4geyBldmVudHMgfTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGdldEVuZFBvaW50QXR0cmlidXRlcyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCByZWROb2RlID0gUkVELm5vZGVzLm5vZGUoZW5kcG9pbnRJZCk7XG4gICAgICAgIGlmICghcmVkTm9kZSlcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIC8vIHdlIG5lZWQgdG8gc2FuaXR6ZSBhbmQgZXh0cmFjdCB0aGUgZW5kcG9pbnQgYXR0cmlidXRlcyBvbmx5ICggbm90IGh0ZSByZWRub2RlIHN0dWZmKVxuICAgICAgICBjb25zdCB7IGVuZHBvaW50LCBzZWN1cml0eU1vZGUsIHNlY3VyaXR5UG9saWN5LCB1c2VySWRlbnRpdHlUeXBlLCB1c2VyTmFtZSwgcGFzc3dvcmQsIHVzZXJDZXJ0aWZpY2F0ZSwgdXNlclByaXZhdGVrZXkgfSA9IHJlZE5vZGU7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIHVzZXJOYW1lLFxuICAgICAgICAgICAgcGFzc3dvcmQsXG4gICAgICAgICAgICB1c2VyQ2VydGlmaWNhdGUsXG4gICAgICAgICAgICB1c2VyUHJpdmF0ZWtleSxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IGdldEVuZHBvaW50UGFyYW1ldGVycyxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVycyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCBlbmRwb2ludE5yID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgIGlmICghZW5kcG9pbnROcikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGVuZHBvaW50SWQsXG4gICAgICAgICAgICBlbmRwb2ludDogZW5kcG9pbnROci5lbmRwb2ludCxcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZTogZW5kcG9pbnROci5zZWN1cml0eU1vZGUsXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeTogZW5kcG9pbnROci5zZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgdXNlck5hbWU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci51c2VyTmFtZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHBhc3N3b3JkOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIucGFzc3dvcmQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB1c2VyQ2VydGlmaWNhdGU6IGVuZHBvaW50TnIudXNlckNlcnRpZmljYXRlLFxuICAgICAgICAgICAgdXNlclByaXZhdGVrZXk6IGVuZHBvaW50TnIudXNlclByaXZhdGVrZXksXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1DbGllbnQyLU1vbml0b3JFdmVudFwiLCB7XG4gICAgICAgIGNhdGVnb3J5OiBcIm9wY3VhXCIsXG4gICAgICAgIGNvbG9yOiBcIiNDMERFRURcIixcbiAgICAgICAgYWxpZ246IFwicmlnaHRcIixcbiAgICAgICAgaWNvbjogXCJvcGN1YWxvZ29iaWcucG5nXCIsXG4gICAgICAgIHBhbGV0dGVMYWJlbDogXCJtb25pdG9yIGV2ZW50c1wiLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgaW5wdXRzOiB7IHZhbHVlOiAxIH0sXG4gICAgICAgICAgICBvdXRwdXQ6IHsgdmFsdWU6IDQgfSxcbiAgICAgICAgICAgIG5hbWU6IHsgdmFsdWU6IFwiXCIgfSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSwgdHlwZTogXCJPcGNVYS1FbmRwb2ludDJcIiB9LFxuICAgICAgICAgICAgc3Vic2NyaXB0aW9uOiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiXCIsXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgdmFsaWRhdGU6ICh2YWwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbCA9PT0gXCJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdGFydEltbWVkaWF0ZWx5OiB7IHZhbHVlOiB0cnVlLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgLy8gd2UgdXNlIGEgZGlmZmVyZW50IHdpZGdldCBmb3IgZWRpdGluZyB0aGUgbm9kZUlkLCBiZWNhdXNlIHRoZSBiZWhhdmlvclxuICAgICAgICAgICAgLy8gaXMgc3BlY2lmaWMgdG8gbW9uaXRvciwgaG93ZXZlciBwcm9wZXJ0eSB3aWxsIGJlIHN0b3JlZCBpbiBub2RlSWRcbiAgICAgICAgICAgIG5vZGVJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IGZhbHNlLCB2YWxpZGF0ZTogKCkgPT4gdHJ1ZSB9LFxuICAgICAgICAgICAgc2FtcGxpbmdJbnRlcnZhbDogeyB2YWx1ZTogMTAwMCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIGRpc2NhcmRPbGRlc3Q6IHsgdmFsdWU6IHRydWUsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBxdWV1ZVNpemU6IHsgdmFsdWU6IDEwLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgc2VsZWN0Q2xhdXNlczogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHdoZXJlQ2xhdXNlOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gaW5wdXRzOixcbiAgICAgICAgb3V0cHV0czogMiwgLy8gMiBvdXRwdXQsIHNlY29uZCBmb3IgcmF3IG5vZGUtb3BjdWEgZGlhZ25vc3RpY3Mgb3IgbW9yZSBjb21wbGV0ZSBtZXNzYWdlXG4gICAgICAgIGxhYmVsKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSB8fCBcIk9QQ1VBIE1vbml0b3JcIjtcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWxTdHlsZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgPyBcIm5vZGVfbGFiZWxfaXRhbGljXCIgOiBcIlwiO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRwcmVwYXJlKCkge1xuICAgICAgICAgICAgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0KCk7XG4gICAgICAgICAgICBkZWNsYXJlRXZlbnRGaWVsZFNlbGVjdG9yV2lkZ2V0KCk7XG4gICAgICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uU2VsZWN0b3IoUkVELCB0aGlzKTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgQWN0aW9uIE1vbml0b3IgQ29tbW9uXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gLS0gaW5zdGFsbCBzdWJzY3JpcHRpb24gc2VsZWN0aW9uXG4gICAgICAgICAgICAkKFwibm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGVja2VkID0gJChcIiNub2RlLWlucHV0LXN0YXJ0SW1tZWRpYXRlbHlcIikucHJvcChcImNoZWNrZWRcIik7XG4gICAgICAgICAgICAgICAgaWYgKGNoZWNrZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LWlucHV0c1wiKS52YWwoMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtaW5wdXRzXCIpLnZhbCgxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgQWN0aW9uIE1vbml0b3JcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICBjb25zdCAkbm9kZUlkID0gJChcIiNub2RlLWlucHV0LW5vZGVJZFwiKTtcbiAgICAgICAgICAgICRub2RlSWQubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IGZpbHRlcihub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgaXNTZWxlY3RhYmxlKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiT2JqZWN0XCIgLyogdG8gZG8gfHwgbm9kZURlc2MuZXZlbnROb3RpZmllciA9PT0gMSAqLztcbiAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgICAgIC8vIC0tLS0tLSBpbnN0YWxsIGV2ZW50IGZpZWxkIHNlbGVjdG9yXG4gICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtd2hlcmVDbGF1c2VcIik7XG4gICAgICAgICAgICBjb25zdCAkc2VsZWN0Q2xhdXNlcyA9ICQoXCIjbm9kZS1pbnB1dC1zZWxlY3RDbGF1c2VzXCIpO1xuICAgICAgICAgICAgJHNlbGVjdENsYXVzZXMuZXZlbnRGaWVsZFNlbGVjdG9yKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSkpO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnRJbW1lZGlhdGVseSA9ICQoXCIjbm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLnByb3AoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgaWYgKHN0YXJ0SW1tZWRpYXRlbHkpIHtcbiAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtc3RhcnRJbW1lZGlhdGVseVwiKS52YWwoc3RhcnRJbW1lZGlhdGVseSA/IDAgOiAxKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0cyA9IHN0YXJ0SW1tZWRpYXRlbHkgPyAwIDogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLnZhbCgxKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0cyA9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbn0pKCk7Il19
7
+ function _0x14e3(_0x2f90e5,_0x5a9bf9){const _0x22340f=_0x2234();return _0x14e3=function(_0x14e39f,_0x23487f){_0x14e39f=_0x14e39f-0x13b;let _0xbab771=_0x22340f[_0x14e39f];return _0xbab771;},_0x14e3(_0x2f90e5,_0x5a9bf9);}function _0x2234(){const _0x11a897=['#node-input-endpoint','<ul\x20class=\x22sterfive-tree\x22></ul>','\x20(ns=','\x20Fetching\x20done','<li>error\x20','24rLyjlZ','DataType','placeholder','$toggleTreeBtn','toggle','json','/extractEventTypes','BrowseName','118676hTysvk','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','\x22\x20style=\x22color:','Invalid','inputs','<i\x20class=\x22fa\x20','opc.tcp://opcuademo.sterfive.com:26543','error','NodeClass','<div\x20class=\x22floating-buttons\x22></div>','_populate','hide','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','join','expanded','rgba(61,\x2060,\x204,\x200.525)','subTypes','show','$inputGroup','OpcUa-Client2-MonitorEvent',';\x22></i>','#node-input-selectClauses','span.custom-checkbox.checked','/browse','_updateSelectedFields','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','already\x20loading','focus\x20click','data','$dropdown','isTypeRef','name','already\x20fetched','click','checked','ObjectType','closest','ns=0;i=47','ns=0;i=61','isSelectable',':visible','application/json','HasSubtype','Inverse','browseName','!!failure!!','userPrivatekey','target','fa-question','top','data-value','endpoint','suppressed','push','appendTo','<li>','expandable\x20expanded','trigger','#C0DEED','node-input-startImmediately','24928McWidA','DisplayName','throw','span.custom-checkbox','then','displayName','widget','reset','password','options','Objects','has','replaceWith','IsForward','sterfive-combo-box','_setInputValue','px)','7092666NMofAO','assign','.spinner','VariableType','<div\x20class=\x22info-text\x22></div>','fetched\x20:\x20','<ul></ul>','filter','registerType','err','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','monitor\x20events','<div/>','attr','children','grey','HasChild','4631pFxcse','HasProperty','eventFieldSelector','5vPXTIc','/checkNodeId','width','loading','nodeClass','POST','each','ns=0;i=85','3372228rtOCFP','DodgerBlue','apply','Object','sterfive-dropdown','log','text','_installChildren','nodes','Forward','$tree','statusText','$input','endpointNode','reference','change','Both','left','addClass','View','prop','element','fa-object-group','node','SteelBlue','HasTypeDefinition','ns=0;i=40','currentParent','offset','.sterfive-tree\x20li','Good','statusCode','unchecked','message','input-group','catch','fa-list-alt','SeaGreen','SuppressedError','Method','sterfive-info','removeClass','/opcua-endpoint2','ReferenceType','status','pageX','i=61','toggleClass','$combo','<div\x20class=\x22spinner\x22></div>','node_label_italic','toString','remove','fa-sliders','value','function','1747308mPzNPa','Organizes','#node-input-whereClause','verify','<li><i\x20class=\x22fa\x20','#node-input-startImmediately','stopPropagation','$info','OpcUa-Endpoint2','TypeDefinition','find','UserName','stringify','DarkOrange','1575890OfRikd','OPCUA\x20Monitor','empty','calc(100%\x20-\x20','#node-input-inputs','pageY','val','subscriptions','css','clicked\x20on\x20','$verifyBtn','15310PZbqWP','baseUrl','fa-cog','CadetBlue','resolveParentNode','match','split','next','Unspecified','append','204ovnFfR','#node-input-subscription','fetching\x20failed\x20with\x20error','nodeId','browseResult','parentNode','ns=0;i=45','ns=0;i=34','Variable','no-expandable','hasClass','length','opcualogobig.png','fetched','subscription','expandable','referenceTypeId','#node-input-nodeId','references'];_0x2234=function(){return _0x11a897;};return _0x2234();}(function(_0x572105,_0x3e5490){const _0x57c22c=_0x14e3,_0x3f4cf5=_0x572105();while(!![]){try{const _0x1a8be0=-parseInt(_0x57c22c(0x216))/0x1*(-parseInt(_0x57c22c(0x1b5))/0x2)+-parseInt(_0x57c22c(0x195))/0x3*(parseInt(_0x57c22c(0x1f1))/0x4)+-parseInt(_0x57c22c(0x180))/0x5+-parseInt(_0x57c22c(0x172))/0x6+parseInt(_0x57c22c(0x202))/0x7+parseInt(_0x57c22c(0x1ad))/0x8*(parseInt(_0x57c22c(0x21e))/0x9)+-parseInt(_0x57c22c(0x18b))/0xa*(parseInt(_0x57c22c(0x213))/0xb);if(_0x1a8be0===_0x3e5490)break;else _0x3f4cf5['push'](_0x3f4cf5['shift']());}catch(_0x49aec1){_0x3f4cf5['push'](_0x3f4cf5['shift']());}}}(_0x2234,0xb95f1),(function(){'use strict';const _0x2bcaca=_0x14e3;function _0xd530c9(_0x6284d6,_0x5b9732){const _0x782825=_0x14e3,_0x2f2424=$(_0x782825(0x1a8)),_0x2a0cf2=$(_0x782825(0x196)),_0x2518b1=()=>{const _0x3ef64b=_0x782825,_0x108b9e=_0x6284d6[_0x3ef64b(0x142)][_0x3ef64b(0x151)](_0x2f2424[_0x3ef64b(0x186)]());_0x2a0cf2[_0x3ef64b(0x182)]();if(!_0x108b9e||!_0x108b9e[_0x3ef64b(0x187)])return;if(_0x108b9e[_0x3ef64b(0x187)])for(const _0x4b2bb9 of _0x108b9e['subscriptions']){const _0x557277=_0x4b2bb9[_0x3ef64b(0x1d4)]||_0x4b2bb9['id'];$('<option/>',{'value':_0x4b2bb9['id'],'label':_0x557277,'selected':_0x4b2bb9['id']===_0x5b9732[_0x3ef64b(0x1a3)]})['text'](_0x557277)[_0x3ef64b(0x1eb)](_0x2a0cf2);}};_0x2518b1(),_0x2a0cf2['on'](_0x782825(0x1d0),()=>{_0x2518b1();}),_0x2f2424['on'](_0x782825(0x149),()=>{_0x2518b1();});}function _0x2f93f5(_0x16a892,_0x14e279,_0xc89242,_0x454cbf){function _0x15f6b2(_0x107aa7){return _0x107aa7 instanceof _0xc89242?_0x107aa7:new _0xc89242(function(_0x40b41d){_0x40b41d(_0x107aa7);});}return new(_0xc89242||(_0xc89242=Promise))(function(_0x419b65,_0x2a9e70){const _0x174331=_0x14e3;function _0x1d3748(_0x1f8eae){const _0x3e194a=_0x14e3;try{_0x4782a0(_0x454cbf[_0x3e194a(0x192)](_0x1f8eae));}catch(_0x6f5a8c){_0x2a9e70(_0x6f5a8c);}}function _0x5b866f(_0x5af9d0){const _0x4a27a7=_0x14e3;try{_0x4782a0(_0x454cbf[_0x4a27a7(0x1f3)](_0x5af9d0));}catch(_0x9111c1){_0x2a9e70(_0x9111c1);}}function _0x4782a0(_0x145731){const _0x25cb2a=_0x14e3;_0x145731['done']?_0x419b65(_0x145731['value']):_0x15f6b2(_0x145731[_0x25cb2a(0x170)])[_0x25cb2a(0x1f5)](_0x1d3748,_0x5b866f);}_0x4782a0((_0x454cbf=_0x454cbf[_0x174331(0x13c)](_0x16a892,_0x14e279||[]))[_0x174331(0x192)]());});}typeof SuppressedError==='function'?SuppressedError:function(_0x5c3b95,_0x181de7,_0x3d3d6b){const _0x35e18b=_0x14e3;var _0x169ff4=new Error(_0x3d3d6b);return _0x169ff4[_0x35e18b(0x1d4)]=_0x35e18b(0x160),_0x169ff4['error']=_0x5c3b95,_0x169ff4[_0x35e18b(0x1e9)]=_0x181de7,_0x169ff4;};const _0x1478a9='ns=0;i=35',_0x1acdc9=_0x2bcaca(0x1db),_0x3288a0=_0x2bcaca(0x1da),_0x136a43='ns=0;i=46',_0xfd7c93=_0x2bcaca(0x19c),_0x55dd09=_0x2bcaca(0x19b),_0x2f6fe0=_0x2bcaca(0x154);var _0x187fc6;(function(_0xaa90ca){const _0x5819c7=_0x2bcaca;_0xaa90ca[_0xaa90ca[_0x5819c7(0x143)]=0x0]='Forward',_0xaa90ca[_0xaa90ca[_0x5819c7(0x1e0)]=0x1]=_0x5819c7(0x1e0),_0xaa90ca[_0xaa90ca[_0x5819c7(0x14a)]=0x2]=_0x5819c7(0x14a),_0xaa90ca[_0xaa90ca[_0x5819c7(0x1b8)]=0x3]=_0x5819c7(0x1b8);}(_0x187fc6||(_0x187fc6={})));var _0x320238;(function(_0x259823){const _0x132e4b=_0x2bcaca;_0x259823[_0x259823['Unspecified']=0x0]=_0x132e4b(0x193),_0x259823[_0x259823[_0x132e4b(0x13d)]=0x1]=_0x132e4b(0x13d),_0x259823[_0x259823['Variable']=0x2]=_0x132e4b(0x19d),_0x259823[_0x259823['Method']=0x4]=_0x132e4b(0x161),_0x259823[_0x259823[_0x132e4b(0x1d8)]=0x8]=_0x132e4b(0x1d8),_0x259823[_0x259823[_0x132e4b(0x205)]=0x10]=_0x132e4b(0x205),_0x259823[_0x259823[_0x132e4b(0x165)]=0x20]=_0x132e4b(0x165),_0x259823[_0x259823[_0x132e4b(0x1ae)]=0x40]=_0x132e4b(0x1ae),_0x259823[_0x259823[_0x132e4b(0x14d)]=0x80]=_0x132e4b(0x14d);}(_0x320238||(_0x320238={})));var _0x58d4aa;(function(_0x36c9eb){const _0x1e3e0a=_0x2bcaca;_0x36c9eb[_0x36c9eb['Object']=0x1]=_0x1e3e0a(0x13d),_0x36c9eb[_0x36c9eb[_0x1e3e0a(0x19d)]=0x2]=_0x1e3e0a(0x19d),_0x36c9eb[_0x36c9eb[_0x1e3e0a(0x161)]=0x4]='Method',_0x36c9eb[_0x36c9eb['ObjectType']=0x8]=_0x1e3e0a(0x1d8),_0x36c9eb[_0x36c9eb['VariableType']=0x10]='VariableType',_0x36c9eb[_0x36c9eb[_0x1e3e0a(0x165)]=0x20]=_0x1e3e0a(0x165),_0x36c9eb[_0x36c9eb[_0x1e3e0a(0x1ae)]=0x40]='DataType',_0x36c9eb[_0x36c9eb[_0x1e3e0a(0x14d)]=0x80]=_0x1e3e0a(0x14d);}(_0x58d4aa||(_0x58d4aa={})));var _0x16e0d2;(function(_0x5abd63){const _0x5cfb2a=_0x2bcaca;_0x5abd63[_0x5abd63[_0x5cfb2a(0x165)]=0x1]=_0x5cfb2a(0x165),_0x5abd63[_0x5abd63[_0x5cfb2a(0x1fe)]=0x2]=_0x5cfb2a(0x1fe),_0x5abd63[_0x5abd63[_0x5cfb2a(0x1bd)]=0x4]=_0x5cfb2a(0x1bd),_0x5abd63[_0x5abd63[_0x5cfb2a(0x1b4)]=0x8]='BrowseName',_0x5abd63[_0x5abd63['DisplayName']=0x10]=_0x5cfb2a(0x1f2),_0x5abd63[_0x5abd63[_0x5cfb2a(0x17b)]=0x20]=_0x5cfb2a(0x17b);}(_0x16e0d2||(_0x16e0d2={})));function _0x81f361(_0x3fed7d){const _0x231e62=_0x2bcaca;switch(_0x3fed7d){case'Organizes':return _0x1478a9;case _0x231e62(0x214):return _0x136a43;case'HasComponent':return _0x3288a0;case _0x231e62(0x212):return _0xfd7c93;case _0x231e62(0x1df):return _0x55dd09;case _0x231e62(0x153):return _0x2f6fe0;}}const _0x15d276=_0x2ad73b=>{const _0x10faa0=_0x2bcaca;switch(_0x2ad73b[_0x10faa0(0x21a)]){case'Object':if(_0x2ad73b[_0x10faa0(0x1a5)]===_0x1478a9);if(_0x2ad73b['typeDefinition']===_0x1acdc9||_0x2ad73b[_0x10faa0(0x1a5)]===_0x10faa0(0x168))return{'icon':'fa-folder','color':_0x10faa0(0x1c4)};return{'icon':_0x10faa0(0x150),'color':_0x10faa0(0x15f)};case _0x10faa0(0x19d):if(_0x2ad73b['referenceTypeId']===_0x3288a0)return{'icon':_0x10faa0(0x15e),'color':_0x10faa0(0x152)};else return _0x2ad73b[_0x10faa0(0x1a5)]===_0x136a43?{'icon':_0x10faa0(0x15e),'color':_0x10faa0(0x13b)}:{'icon':_0x10faa0(0x15e),'color':_0x10faa0(0x18e)};case _0x10faa0(0x161):return{'icon':_0x10faa0(0x18d),'color':'SandyBrown'};case _0x10faa0(0x1d8):return{'icon':_0x10faa0(0x150),'color':_0x10faa0(0x17f)};case _0x10faa0(0x205):return{'icon':_0x10faa0(0x16f),'color':_0x10faa0(0x17f)};}return{'icon':_0x10faa0(0x1e5),'color':_0x10faa0(0x211)};},_0x5ca414=({endpointNode:_0x480ae8,endpoint:_0x2d652a,baseUrl:_0x57a98d},_0x51af8e,_0x1da0c6)=>_0x2f93f5(void 0x0,void 0x0,void 0x0,function*(){const _0x555aee=_0x2bcaca,_0x34b944=_0x57a98d+'/opcua-endpoint2',_0x59a713=_0x34b944+_0x555aee(0x1cc),_0x3a0def=Object['assign'](Object['assign']({},_0x1da0c6),{'nodeId':_0x51af8e,'resultMask':0x3f}),_0x504fa4=yield fetch(_0x59a713,{'method':_0x555aee(0x21b),'body':JSON[_0x555aee(0x17e)]({'endpointNode':_0x480ae8,'endpoint':_0x2d652a,'browseDescription':_0x3a0def}),'headers':{'Content-Type':'application/json'}});if(_0x504fa4[_0x555aee(0x166)]!==0xc8)return console[_0x555aee(0x13f)](_0x555aee(0x197),_0x504fa4[_0x555aee(0x166)],_0x504fa4[_0x555aee(0x145)]),{'references':[]};console[_0x555aee(0x13f)](_0x555aee(0x207),_0x504fa4[_0x555aee(0x166)],_0x504fa4['statusText']);const _0x3e027a=yield _0x504fa4[_0x555aee(0x1b2)](),_0x1f460=_0x3e027a[_0x555aee(0x199)][_0x555aee(0x1a7)]||[];return{'references':_0x1f460};}),_0x235b89={'referenceTypeId':_0x81f361('HasChild'),'includeSubtypes':!![],'browseDirection':_0x187fc6[_0x2bcaca(0x143)],'nodeClassMask':_0x320238[_0x2bcaca(0x19d)]|_0x320238['Object']|_0x320238[_0x2bcaca(0x161)],'resultMask':0x3f},_0x5f3db7={'referenceTypeId':_0x81f361(_0x2bcaca(0x173)),'includeSubtypes':!![],'browseDirection':_0x187fc6[_0x2bcaca(0x143)],'nodeClassMask':_0x320238['Variable']|_0x320238[_0x2bcaca(0x13d)]|_0x320238[_0x2bcaca(0x161)],'resultMask':0x3f},_0x18416d=({endpointNode:_0x3c6cf0,endpoint:_0x57ae64,baseUrl:_0x5d5e08},_0x3e35a9,_0x2b1653)=>_0x2f93f5(void 0x0,void 0x0,void 0x0,function*(){const _0x4b6719=_0x2bcaca,_0x514e95=_0x5d5e08+_0x4b6719(0x164),_0x2d9c53=_0x3e35a9[_0x4b6719(0x186)](),_0x48de4f=yield fetch(_0x514e95+_0x4b6719(0x217),{'method':'POST','body':JSON['stringify']({'endpointNode':_0x3c6cf0,'endpoint':_0x57ae64,'nodeId':_0x2d9c53}),'headers':{'Content-Type':_0x4b6719(0x1de)}}),_0x24003e=(_0x5168b2,_0x3648f9)=>{const _0x2d94d7=_0x4b6719;_0x2b1653[_0x2d94d7(0x140)](_0x5168b2)[_0x2d94d7(0x14c)](_0x2d94d7(0x162))[_0x2d94d7(0x14c)](_0x3648f9),_0x2b1653[_0x2d94d7(0x1c6)](),setTimeout(()=>{const _0x4d0155=_0x2d94d7;_0x2b1653['removeClass'](_0x3648f9),_0x2b1653[_0x4d0155(0x1c0)]();},0xbb8);},_0x1a6dbe=yield _0x48de4f[_0x4b6719(0x1b2)]();_0x48de4f[_0x4b6719(0x166)]!==0xc8?_0x24003e(_0x4b6719(0x1e2)+_0x2d9c53,'failure'):_0x1a6dbe[_0x4b6719(0x159)][_0x4b6719(0x190)](/Good/)?(_0x3e35a9[_0x4b6719(0x186)](_0x1a6dbe['nodeAddressString']),_0x3e35a9[_0x4b6719(0x1ee)](_0x4b6719(0x149)),_0x24003e(_0x4b6719(0x158),'ok')):(_0x3e35a9['val'](''+_0x2d9c53),_0x24003e(_0x1a6dbe['statusCode']+'\x20'+_0x48de4f[_0x4b6719(0x145)],'failure'));});function _0x1d972c(_0x21cda1,_0x303736){return _0x2f93f5(this,void 0x0,void 0x0,function*(){const _0x13d6e9=_0x14e3,_0x3a1f5f=_0x21cda1[_0x13d6e9(0x1d1)](_0x13d6e9(0x170)),_0x2eeaaa=yield _0x5ca414(_0x303736,_0x3a1f5f,_0x235b89),_0x27c95c=yield _0x5ca414(_0x303736,_0x3a1f5f,_0x5f3db7);return{'references':[..._0x2eeaaa['references'],..._0x27c95c[_0x13d6e9(0x1a7)]]};});}const _0x1f6d96={'referenceTypeId':_0x81f361(_0x2bcaca(0x1df)),'includeSubtypes':!![],'browseDirection':_0x187fc6[_0x2bcaca(0x143)],'nodeClassMask':_0x320238[_0x2bcaca(0x165)]|_0x320238[_0x2bcaca(0x1d8)]|_0x320238[_0x2bcaca(0x1ae)]|_0x320238[_0x2bcaca(0x205)],'resultMask':0x3f};function _0x2a8bdf(_0x369036,_0x36cf87){return _0x2f93f5(this,void 0x0,void 0x0,function*(){const _0x43321d=_0x14e3,_0x56da10=_0x369036[_0x43321d(0x1d1)]('value'),_0x2b5968=yield _0x5ca414(_0x36cf87,_0x56da10,_0x1f6d96);return _0x2b5968;});}const _0x4b587a=_0x3c5c92=>{const _0x77645c=_0x2bcaca;var _0x1f606e,_0xd8c14a;if(!_0x3c5c92){const _0x4718c3=$(_0x77645c(0x1ce));return _0x4718c3;}const _0x298123=_0x3c5c92[_0x77645c(0x198)]['toString'](),_0x16efb2=((_0x1f606e=_0x3c5c92[_0x77645c(0x1f6)])===null||_0x1f606e===void 0x0?void 0x0:_0x1f606e['text'])||((_0xd8c14a=_0x3c5c92[_0x77645c(0x1e1)])===null||_0xd8c14a===void 0x0?void 0x0:_0xd8c14a[_0x77645c(0x1d4)])||_0x3c5c92[_0x77645c(0x198)][_0x77645c(0x16d)](),{icon:_0x40c300,color:_0x45da73}=_0x15d276(_0x3c5c92),_0x37cc66=$(_0x77645c(0x176)+_0x40c300+_0x77645c(0x1b7)+_0x45da73+';\x22></i>\x20'+_0x16efb2+'<ul></ul></li>');return _0x37cc66[_0x77645c(0x14c)]('expandable'),_0x37cc66[_0x77645c(0x1d1)](_0x77645c(0x170),_0x298123),_0x37cc66[_0x77645c(0x1d1)]('reference',_0x3c5c92),_0x37cc66;},_0xc93541=()=>{const _0x29311e=_0x2bcaca;$[_0x29311e(0x1f7)]('sterfive.nodeBrowser',{'options':{'endpointNode':()=>({'endpoint':_0x29311e(0x1bb)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x29311e(0x1fb)},'nodeClass':_0x29311e(0x13d),'nodeId':_0x29311e(0x21d),'displayName':{'text':_0x29311e(0x1fb)},'typeDefinition':_0x1acdc9}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x2f93f5(this,void 0x0,void 0x0,function*(){const _0x15a893=_0x14e3,_0x391d44=this,_0x3b2edb=typeof _0x391d44[_0x15a893(0x1fa)][_0x15a893(0x19a)]===_0x15a893(0x171)?_0x391d44[_0x15a893(0x1fa)][_0x15a893(0x19a)]():_0x391d44[_0x15a893(0x1fa)][_0x15a893(0x19a)];if(_0x3b2edb instanceof Promise)return yield _0x3b2edb;return _0x3b2edb;});},'reset'(){const _0x385a8f=_0x29311e,_0x5850a6=this;_0x5850a6[_0x385a8f(0x144)]['empty'](),this[_0x385a8f(0x18f)]()[_0x385a8f(0x1f5)](_0x1b649b=>{const _0x16fadc=_0x4b587a(_0x1b649b);_0x5850a6['$tree']['append'](_0x16fadc),_0x5850a6['currentParent']=_0x1b649b;});},'verify'(){const _0x3c7ac7=_0x29311e,_0x198641=this,_0x511005={'baseUrl':_0x198641['options'][_0x3c7ac7(0x18c)],'endpointNode':typeof _0x198641['options'][_0x3c7ac7(0x147)]===_0x3c7ac7(0x171)?_0x198641['options'][_0x3c7ac7(0x147)]():_0x198641[_0x3c7ac7(0x1fa)][_0x3c7ac7(0x147)],'endpoint':typeof _0x198641[_0x3c7ac7(0x1fa)][_0x3c7ac7(0x1e8)]===_0x3c7ac7(0x171)?_0x198641[_0x3c7ac7(0x1fa)][_0x3c7ac7(0x1e8)]():_0x198641[_0x3c7ac7(0x1fa)]['endpoint']};_0x18416d(_0x511005,_0x198641[_0x3c7ac7(0x146)],_0x198641[_0x3c7ac7(0x179)]);},'_create'(){const _0x41cf55=_0x29311e,_0x3c8b64=this;function _0x3bf933(_0x27326b,_0x3dbd15,_0x365e65){return _0x2f93f5(this,void 0x0,void 0x0,function*(){const _0x566e73=_0x14e3;if(_0x27326b['hasClass']('fetched')){console[_0x566e73(0x13f)](_0x566e73(0x1d5));return;}if(_0x27326b[_0x566e73(0x19f)]('loading')){console[_0x566e73(0x13f)](_0x566e73(0x1cf));return;}_0x27326b[_0x566e73(0x14c)](_0x566e73(0x219)),_0x27326b[_0x566e73(0x194)](_0x566e73(0x16b));try{_0x27326b[_0x566e73(0x210)]('ul')[_0x566e73(0x182)]();const {references:_0x3a7389}=yield _0x3dbd15(_0x27326b,_0x365e65);for(const _0x599b49 of _0x3a7389){if(_0x3c8b64[_0x566e73(0x1fa)]['filter']&&!_0x3c8b64[_0x566e73(0x1fa)][_0x566e73(0x209)](_0x599b49))continue;const _0x3487b9=_0x4b587a(_0x599b49);_0x27326b[_0x566e73(0x210)]('ul')[_0x566e73(0x194)](_0x3487b9);}_0x27326b[_0x566e73(0x14c)](_0x566e73(0x1a2));}catch(_0x4582c5){_0x27326b[_0x566e73(0x210)]('ul')['append'](_0x566e73(0x1ac)+_0x4582c5[_0x566e73(0x15b)]+'</li>'),console[_0x566e73(0x13f)](_0x566e73(0x20b),_0x4582c5);}_0x27326b[_0x566e73(0x17c)](_0x566e73(0x204))[_0x566e73(0x16e)](),_0x27326b[_0x566e73(0x163)](_0x566e73(0x219));});}_0x3c8b64[_0x41cf55(0x146)]=this[_0x41cf55(0x14f)],_0x3c8b64[_0x41cf55(0x16a)]=$('<div/>'),_0x3c8b64['$combo'][_0x41cf55(0x14c)](_0x41cf55(0x1ff)),this[_0x41cf55(0x14f)][_0x41cf55(0x1fd)](_0x3c8b64[_0x41cf55(0x16a)]),_0x3c8b64[_0x41cf55(0x1c7)]=$(_0x41cf55(0x20e))[_0x41cf55(0x14c)](_0x41cf55(0x15c)),_0x3c8b64[_0x41cf55(0x16a)][_0x41cf55(0x194)](_0x3c8b64[_0x41cf55(0x1c7)]),_0x3c8b64[_0x41cf55(0x1c7)][_0x41cf55(0x194)](_0x3c8b64[_0x41cf55(0x146)]),_0x3c8b64[_0x41cf55(0x1b0)]=$(_0x41cf55(0x20c)),_0x3c8b64['$inputGroup']['append'](_0x3c8b64[_0x41cf55(0x1b0)]),_0x3c8b64[_0x41cf55(0x1b0)]['on'](_0x41cf55(0x1d6),function(){const _0x303636=_0x41cf55;!_0x3c8b64['$dropdown']['is'](_0x303636(0x1dd))&&(_0x3c8b64['resolveParentNode']()[_0x303636(0x1f5)](_0x5c8f24=>{const _0x3897ed=_0x303636;var _0x372e30;(_0x5c8f24!==_0x3c8b64[_0x3897ed(0x155)]||((_0x372e30=_0x3c8b64['currentParent'])===null||_0x372e30===void 0x0?void 0x0:_0x372e30['nodeId'])!==_0x5c8f24[_0x3897ed(0x198)])&&_0x3c8b64[_0x3897ed(0x1f8)]();}),_0x3c8b64[_0x303636(0x179)][_0x303636(0x1c0)]()),_0x3c8b64[_0x303636(0x1d2)]['toggle']();}),_0x3c8b64[_0x41cf55(0x18a)]=$(_0x41cf55(0x1b6)),_0x3c8b64[_0x41cf55(0x1c7)][_0x41cf55(0x194)](_0x3c8b64['$verifyBtn']),_0x3c8b64[_0x41cf55(0x18a)]['on'](_0x41cf55(0x1d6),()=>{const _0x223b84=_0x41cf55;this[_0x223b84(0x175)]();}),!_0x3c8b64['$input'][_0x41cf55(0x20f)](_0x41cf55(0x1af))&&_0x3c8b64['$input'][_0x41cf55(0x20f)](_0x41cf55(0x1af),_0x41cf55(0x1c1)),_0x3c8b64[_0x41cf55(0x179)]=$('<div\x20class=\x22info-text\x22></div>'),_0x3c8b64[_0x41cf55(0x179)][_0x41cf55(0x1c0)](),{'baseUrl':_0x3c8b64[_0x41cf55(0x1fa)][_0x41cf55(0x18c)],'endpointNode':typeof _0x3c8b64[_0x41cf55(0x1fa)][_0x41cf55(0x147)]===_0x41cf55(0x171)?_0x3c8b64[_0x41cf55(0x1fa)][_0x41cf55(0x147)]():_0x3c8b64[_0x41cf55(0x1fa)][_0x41cf55(0x147)],'endpoint':typeof _0x3c8b64[_0x41cf55(0x1fa)][_0x41cf55(0x1e8)]===_0x41cf55(0x171)?_0x3c8b64[_0x41cf55(0x1fa)][_0x41cf55(0x1e8)]():_0x3c8b64[_0x41cf55(0x1fa)][_0x41cf55(0x1e8)]},_0x3c8b64['$dropdown']=$(_0x41cf55(0x20e))[_0x41cf55(0x14c)](_0x41cf55(0x13e))['hide'](),_0x3c8b64[_0x41cf55(0x16a)][_0x41cf55(0x194)](_0x3c8b64[_0x41cf55(0x179)]),_0x3c8b64[_0x41cf55(0x16a)][_0x41cf55(0x194)](_0x3c8b64[_0x41cf55(0x1d2)]),_0x3c8b64[_0x41cf55(0x144)]=$(_0x41cf55(0x1a9))[_0x41cf55(0x1eb)](_0x3c8b64['$dropdown']),this[_0x41cf55(0x1f8)](),_0x3c8b64[_0x41cf55(0x144)]['on'](_0x41cf55(0x1d6),'li',function(_0x214a3c){const _0x24adb8=_0x41cf55;var _0x12013b,_0x4140d5;_0x214a3c[_0x24adb8(0x178)]();let _0x1e9653=$(this);const _0xe3046=0x14,_0x369c8e=0x14,_0xa3c2a8=$(this)[_0x24adb8(0x156)](),_0x52f966=_0x214a3c;if(_0x52f966[_0x24adb8(0x167)]>=_0xa3c2a8[_0x24adb8(0x14b)]&&_0x52f966[_0x24adb8(0x167)]<=_0xa3c2a8[_0x24adb8(0x14b)]+_0xe3046&&_0x52f966[_0x24adb8(0x185)]>=_0xa3c2a8['top']&&_0x52f966['pageY']<=_0xa3c2a8[_0x24adb8(0x1e6)]+_0x369c8e){if(_0x1e9653[_0x24adb8(0x19f)](_0x24adb8(0x1a4))){if(_0x1e9653['hasClass'](_0x24adb8(0x1a2))){_0x1e9653[_0x24adb8(0x163)](_0x24adb8(0x1a4))['addClass'](_0x24adb8(0x1c3)),_0x1e9653[_0x24adb8(0x210)]('ul')[_0x24adb8(0x1b1)]();return;}const _0x175c95={'baseUrl':_0x3c8b64[_0x24adb8(0x1fa)][_0x24adb8(0x18c)],'endpointNode':typeof _0x3c8b64['options'][_0x24adb8(0x147)]===_0x24adb8(0x171)?_0x3c8b64[_0x24adb8(0x1fa)][_0x24adb8(0x147)]():_0x3c8b64[_0x24adb8(0x1fa)]['endpointNode'],'endpoint':typeof _0x3c8b64['options']['endpoint']===_0x24adb8(0x171)?_0x3c8b64[_0x24adb8(0x1fa)][_0x24adb8(0x1e8)]():_0x3c8b64[_0x24adb8(0x1fa)][_0x24adb8(0x1e8)]},_0x15b219=!_0x3c8b64[_0x24adb8(0x1fa)][_0x24adb8(0x1d3)]?_0x1d972c:_0x2a8bdf;_0x3bf933(_0x1e9653,_0x15b219,_0x175c95)[_0x24adb8(0x1f5)](()=>{const _0x32736d=_0x24adb8;console[_0x32736d(0x13f)](_0x32736d(0x1ab)),console[_0x32736d(0x13f)](_0x32736d(0x1a2)),_0x1e9653[_0x32736d(0x163)](_0x32736d(0x1a4))['addClass'](_0x32736d(0x1c3));})[_0x24adb8(0x15d)](_0x3cb792=>{const _0x13c5c8=_0x24adb8;_0x1e9653['removeClass'](_0x13c5c8(0x1a4))[_0x13c5c8(0x14c)](_0x13c5c8(0x1c3)),console[_0x13c5c8(0x13f)](_0x13c5c8(0x1bc),_0x3cb792);});}else{if(_0x1e9653['hasClass'](_0x24adb8(0x1c3)))_0x1e9653[_0x24adb8(0x210)]('ul')[_0x24adb8(0x1b1)](),_0x1e9653[_0x24adb8(0x169)](_0x24adb8(0x1ed));else{if(_0x1e9653[_0x24adb8(0x210)]('ul')[_0x24adb8(0x210)]()[_0x24adb8(0x1a0)]>0x0)_0x1e9653[_0x24adb8(0x210)]('ul')['toggle'](),_0x1e9653[_0x24adb8(0x169)](_0x24adb8(0x1ed));else;}}}else{const _0xa7da5d=_0x1e9653[_0x24adb8(0x1d1)]('value'),_0x4b759e=_0x1e9653[_0x24adb8(0x1d1)]('reference');if(_0x3c8b64[_0x24adb8(0x1fa)][_0x24adb8(0x1dc)]&&!_0x3c8b64[_0x24adb8(0x1fa)]['isSelectable'](_0x4b759e))return;_0x3c8b64[_0x24adb8(0x146)][_0x24adb8(0x1d1)]('reference',_0x4b759e);const _0x3d90f2=((_0x12013b=_0x4b759e[_0x24adb8(0x1f6)])===null||_0x12013b===void 0x0?void 0x0:_0x12013b[_0x24adb8(0x140)])||((_0x4140d5=_0x4b759e[_0x24adb8(0x1e1)])===null||_0x4140d5===void 0x0?void 0x0:_0x4140d5[_0x24adb8(0x1d4)])||_0x4b759e['nodeId'][_0x24adb8(0x16d)](),_0x4d0e3f='['+_0x3d90f2+']('+_0xa7da5d+')';_0x3c8b64[_0x24adb8(0x146)]['val'](_0x4d0e3f),_0x3c8b64[_0x24adb8(0x146)][_0x24adb8(0x1ee)](_0x24adb8(0x149)),_0x3c8b64[_0x24adb8(0x1d2)][_0x24adb8(0x1c0)]();}}),$(document)['on'](_0x41cf55(0x1d6),function(_0x3e2296){const _0x279a01=_0x41cf55;!$(_0x3e2296[_0x279a01(0x1e4)])['closest'](_0x3c8b64['$combo'])['length']&&_0x3c8b64[_0x279a01(0x1d2)][_0x279a01(0x1c0)]();});}});},_0x3b4236=_0x2c3384=>{const _0x2f8736=_0x2bcaca;var _0x4b0980,_0x8d5dc8,_0x94836c;if(!_0x2c3384){const _0x45c864=$(_0x2f8736(0x1ce));return _0x45c864;}const _0x8c99d7=_0x2c3384[_0x2f8736(0x198)]['toString']();let _0x14992e=((_0x4b0980=_0x2c3384[_0x2f8736(0x1f6)])===null||_0x4b0980===void 0x0?void 0x0:_0x4b0980['text'])||((_0x8d5dc8=_0x2c3384[_0x2f8736(0x1e1)])===null||_0x8d5dc8===void 0x0?void 0x0:_0x8d5dc8[_0x2f8736(0x1d4)])||_0x2c3384[_0x2f8736(0x198)]['toString'](),_0x77445e=(_0x94836c=_0x2c3384[_0x2f8736(0x1e1)])===null||_0x94836c===void 0x0?void 0x0:_0x94836c['namespaceIndex'];_0x14992e+=_0x77445e!==undefined&&_0x2c3384[_0x2f8736(0x21a)][_0x2f8736(0x190)](/Type/)?_0x2f8736(0x1aa)+_0x77445e+')':'';const {icon:_0x476a58,color:_0x242cf5}=_0x15d276(_0x2c3384),_0x473b92=$(_0x2f8736(0x1ec));if(_0x2c3384['nodeClass']===_0x2f8736(0x19d)){const _0x200715=$('<span\x20class=\x22custom-checkbox\x20unchecked\x22></span>');_0x473b92['append'](_0x200715),_0x200715['on'](_0x2f8736(0x1d6),function(){const _0x5b1320=_0x2f8736;_0x200715['hasClass'](_0x5b1320(0x15a))?_0x200715[_0x5b1320(0x163)](_0x5b1320(0x15a))[_0x5b1320(0x14c)](_0x5b1320(0x1d7)):_0x200715[_0x5b1320(0x163)]('checked')[_0x5b1320(0x14c)]('unchecked');});}return _0x473b92['append']($(_0x2f8736(0x1ba)+_0x476a58+'\x22\x20style=\x22color:'+_0x242cf5+_0x2f8736(0x1c9)+_0x14992e+_0x2f8736(0x208))),_0x473b92[_0x2f8736(0x14c)](_0x2f8736(0x1a4)),_0x473b92[_0x2f8736(0x1d1)](_0x2f8736(0x170),_0x8c99d7),_0x473b92[_0x2f8736(0x1d1)](_0x2f8736(0x148),_0x2c3384),_0x473b92;},_0x465028=()=>{$['widget']('sterfive.eventFieldSelector',{'options':{'endpointNode':()=>({'endpoint':'opc.tcp://opcuademo.sterfive.com:26543'}),'endpoint':()=>undefined,'baseUrl':''},'_populate'(){var _0x160911;return _0x2f93f5(this,void 0x0,void 0x0,function*(){const _0x475fd0=_0x14e3,_0x4216bf=this,_0x2c31cd=new Set((_0x160911=_0x4216bf['$input']['val']())===null||_0x160911===void 0x0?void 0x0:_0x160911[_0x475fd0(0x16d)]()[_0x475fd0(0x191)](';')),_0x158f6f={'baseUrl':_0x4216bf['options']['baseUrl'],'endpointNode':typeof _0x4216bf[_0x475fd0(0x1fa)][_0x475fd0(0x147)]===_0x475fd0(0x171)?_0x4216bf[_0x475fd0(0x1fa)]['endpointNode']():_0x4216bf[_0x475fd0(0x1fa)][_0x475fd0(0x147)],'endpoint':typeof _0x4216bf[_0x475fd0(0x1fa)][_0x475fd0(0x1e8)]==='function'?_0x4216bf[_0x475fd0(0x1fa)]['endpoint']():_0x4216bf['options'][_0x475fd0(0x1e8)]},_0x1b2e49=yield _0x3820ed(_0x158f6f);this['_installTree'](_0x1b2e49,_0x2c31cd);});},'_installTree'(_0x425f00,_0x18a54e){const _0xaf214a=_0x14e3,_0x1e4e1c=this;_0x1e4e1c[_0xaf214a(0x144)][_0xaf214a(0x182)]();if(!_0x425f00['events'])return;const _0x49b842=_0x425f00['events'],_0x20bc26=_0x3b4236(_0x49b842);_0x1e4e1c[_0xaf214a(0x144)][_0xaf214a(0x194)](_0x20bc26);const _0x12fb80='';this[_0xaf214a(0x141)](_0x20bc26['children']('ul'),_0x49b842,_0x12fb80,_0x18a54e),_0x20bc26[_0xaf214a(0x163)](_0xaf214a(0x1a4))[_0xaf214a(0x14c)](_0xaf214a(0x1c3)),this['_updateValues'](_0x18a54e);},'_installChildren'(_0x51898a,_0x2cfa83,_0x4ff39a,_0x4941dd){const _0x5417e5=_0x14e3,_0xc2633=({name:_0x2ef021,namespaceIndex:_0x743a74})=>{if(_0x743a74===0x0)return _0x2ef021;return _0x743a74+':'+_0x2ef021;},_0x563b1c=_0x2cfa83[_0x5417e5(0x210)]||[],_0x14b020=_0x2cfa83[_0x5417e5(0x1c5)]||[],_0x1f1cbe=[..._0x563b1c,..._0x14b020];for(const _0x3b2c51 of _0x1f1cbe){const _0x170431=_0x3b4236(_0x3b2c51);_0x51898a[_0x5417e5(0x194)](_0x170431);let _0x2bc026='';_0x3b2c51[_0x5417e5(0x21a)]==='Variable'&&(_0x4ff39a?_0x2bc026=_0x4ff39a+'.'+_0xc2633(_0x3b2c51[_0x5417e5(0x1e1)]):_0x2bc026=_0xc2633(_0x3b2c51['browseName']),_0x170431[_0x5417e5(0x20f)](_0x5417e5(0x1e7),_0x2bc026));const _0x56cc22=_0x3b2c51[_0x5417e5(0x210)]&&_0x3b2c51['children'][_0x5417e5(0x1a0)],_0x2b7eba=_0x3b2c51['subTypes']&&_0x3b2c51[_0x5417e5(0x1c5)][_0x5417e5(0x1a0)];!_0x56cc22&&!_0x2b7eba?_0x170431['removeClass']('expandable')[_0x5417e5(0x14c)](_0x5417e5(0x19e)):(this[_0x5417e5(0x141)](_0x170431[_0x5417e5(0x210)]('ul'),_0x3b2c51,_0x2bc026,_0x4941dd),_0x170431[_0x5417e5(0x163)](_0x5417e5(0x1a4))[_0x5417e5(0x14c)](_0x5417e5(0x1c3)));}},'_updateSelectedFields'(){const _0x21b23e=_0x14e3;var _0x579450;const _0x299587=this,_0x3f44b4=new Set((_0x579450=_0x299587[_0x21b23e(0x146)]['val']())===null||_0x579450===void 0x0?void 0x0:_0x579450[_0x21b23e(0x16d)]()[_0x21b23e(0x191)](';'));this['_updateValues'](_0x3f44b4);},'_updateValues'(_0x23952c){const _0x37f170=_0x14e3;$(_0x37f170(0x157))[_0x37f170(0x21c)](function(){const _0x524f3e=_0x37f170,_0x3b2676=$(this),_0x4120a5=_0x3b2676[_0x524f3e(0x20f)](_0x524f3e(0x1e7));_0x4120a5&&_0x23952c[_0x524f3e(0x1fc)](_0x4120a5)&&_0x3b2676['children'](_0x524f3e(0x1f4))[_0x524f3e(0x163)]('unchecked')[_0x524f3e(0x14c)](_0x524f3e(0x1d7));});},'_setInputValue'(){const _0x22e664=_0x14e3,_0x221feb=this,_0x23bdee=[];$('.sterfive-tree\x20li')['each'](function(){const _0x533a1c=_0x14e3,_0x70f632=$(this);if(_0x70f632[_0x533a1c(0x210)](_0x533a1c(0x1cb))[_0x533a1c(0x1a0)]>0x0){const _0x1e7af1=_0x70f632[_0x533a1c(0x20f)](_0x533a1c(0x1e7));if(_0x1e7af1)_0x23bdee[_0x533a1c(0x1ea)](_0x1e7af1);}});const _0x3eae16=[...new Set(_0x23bdee)]['sort']()[_0x22e664(0x1c2)](';');_0x221feb[_0x22e664(0x146)]['val'](_0x3eae16),_0x221feb['$input']['trigger']('change');},'_create'(){const _0x15fd99=_0x14e3,_0x1dbcf6=this;_0x1dbcf6[_0x15fd99(0x146)]=this['element'],_0x1dbcf6[_0x15fd99(0x16a)]=$('<div/>'),_0x1dbcf6[_0x15fd99(0x16a)]['addClass'](_0x15fd99(0x1ff)),this[_0x15fd99(0x14f)][0x0]['parentElement']['replaceChild'](_0x1dbcf6[_0x15fd99(0x16a)][0x0],this[_0x15fd99(0x14f)][0x0]),_0x1dbcf6['$inputGroup']=$(_0x15fd99(0x20e))['addClass'](_0x15fd99(0x15c)),_0x1dbcf6[_0x15fd99(0x16a)][_0x15fd99(0x194)](_0x1dbcf6['$inputGroup']),_0x1dbcf6['$inputGroup'][_0x15fd99(0x194)](_0x1dbcf6[_0x15fd99(0x146)]),_0x1dbcf6[_0x15fd99(0x1b0)]=$('<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>'),_0x1dbcf6['$inputGroup'][_0x15fd99(0x194)](_0x1dbcf6['$toggleTreeBtn']),_0x1dbcf6['$toggleTreeBtn']['on'](_0x15fd99(0x1d6),function(){const _0x4607e1=_0x15fd99;_0x1dbcf6['$dropdown'][_0x4607e1(0x1b1)](),_0x1dbcf6['$info']['toggle']();if(_0x1dbcf6[_0x4607e1(0x1d2)]['is'](_0x4607e1(0x1dd))){_0x122a0a[_0x4607e1(0x1c6)]();const _0x5236e9=_0x1dbcf6[_0x4607e1(0x1d2)][_0x4607e1(0x156)]();_0x122a0a[_0x4607e1(0x188)]({'top':_0x5236e9[_0x4607e1(0x1e6)]+'px','right':_0x4607e1(0x183)+(_0x5236e9[_0x4607e1(0x14b)]+_0x1dbcf6[_0x4607e1(0x1d2)][_0x4607e1(0x218)]())+_0x4607e1(0x201)}),_0x1dbcf6[_0x4607e1(0x1bf)](),_0x1dbcf6[_0x4607e1(0x1cd)]();}else _0x122a0a[_0x4607e1(0x1c0)]();});!_0x1dbcf6[_0x15fd99(0x146)][_0x15fd99(0x20f)](_0x15fd99(0x1af))&&_0x1dbcf6[_0x15fd99(0x146)][_0x15fd99(0x20f)](_0x15fd99(0x1af),_0x15fd99(0x1c1));_0x1dbcf6[_0x15fd99(0x179)]=$(_0x15fd99(0x206)),_0x1dbcf6[_0x15fd99(0x179)][_0x15fd99(0x1c0)](),_0x1dbcf6[_0x15fd99(0x1d2)]=$(_0x15fd99(0x20e))[_0x15fd99(0x14c)](_0x15fd99(0x13e))[_0x15fd99(0x1c0)]();const _0x5c9ba3=$('<span\x20class=\x22validate-button\x22>✔</span>'),_0x2723ca=$('<span\x20class=\x22cancel-button\x22>✖</span>'),_0x122a0a=$(_0x15fd99(0x1be))['append'](_0x5c9ba3,_0x2723ca);_0x122a0a[_0x15fd99(0x1c0)](),_0x5c9ba3['on'](_0x15fd99(0x1d6),()=>{const _0x50ecc6=_0x15fd99;_0x1dbcf6[_0x50ecc6(0x200)](),_0x1dbcf6['$dropdown'][_0x50ecc6(0x1c0)]();}),_0x2723ca['on'](_0x15fd99(0x1d6),()=>{const _0x23e195=_0x15fd99;_0x1dbcf6['$dropdown'][_0x23e195(0x1c0)]();}),_0x1dbcf6[_0x15fd99(0x16a)][_0x15fd99(0x194)](_0x1dbcf6[_0x15fd99(0x179)]),_0x1dbcf6[_0x15fd99(0x16a)][_0x15fd99(0x194)](_0x1dbcf6[_0x15fd99(0x1d2)]),_0x1dbcf6[_0x15fd99(0x144)]=$(_0x15fd99(0x1a9)),_0x1dbcf6['$dropdown'][_0x15fd99(0x182)]()[_0x15fd99(0x194)](_0x1dbcf6[_0x15fd99(0x144)],_0x122a0a),_0x1dbcf6[_0x15fd99(0x144)]['on'](_0x15fd99(0x1d6),'li',function(_0x1d49c2){const _0x47b6de=_0x15fd99;_0x1d49c2[_0x47b6de(0x178)]();let _0x830cf4=$(this);const _0x7bf931=0x14,_0x157ac2=0x14,_0x8e35b7=$(this)[_0x47b6de(0x156)](),_0x547c27=_0x1d49c2;if(_0x547c27[_0x47b6de(0x167)]>=_0x8e35b7[_0x47b6de(0x14b)]&&_0x547c27[_0x47b6de(0x167)]<=_0x8e35b7['left']+_0x7bf931&&_0x547c27[_0x47b6de(0x185)]>=_0x8e35b7[_0x47b6de(0x1e6)]&&_0x547c27[_0x47b6de(0x185)]<=_0x8e35b7[_0x47b6de(0x1e6)]+_0x157ac2){console['log']('clicked\x20on\x20icon'),console[_0x47b6de(0x13f)](_0x47b6de(0x189),_0x830cf4['data'](_0x47b6de(0x170)),_0x830cf4[_0x47b6de(0x20f)]('class'));if(_0x830cf4['hasClass'](_0x47b6de(0x1a4)))_0x830cf4[_0x47b6de(0x163)](_0x47b6de(0x1a4))[_0x47b6de(0x14c)](_0x47b6de(0x1c3)),_0x830cf4[_0x47b6de(0x210)]('ul')[_0x47b6de(0x1b1)]();else{if(_0x830cf4[_0x47b6de(0x19f)](_0x47b6de(0x1c3)))_0x830cf4['children']('ul')[_0x47b6de(0x1b1)](),_0x830cf4[_0x47b6de(0x169)](_0x47b6de(0x1ed));else{if(_0x830cf4['children']('ul')['children']()[_0x47b6de(0x1a0)]>0x0)_0x830cf4['children']('ul')[_0x47b6de(0x1b1)](),_0x830cf4['toggleClass']('expandable\x20expanded');else;}}}}),$(document)['on'](_0x15fd99(0x1d6),function(_0x3ce07a){const _0xd2f879=_0x15fd99;!$(_0x3ce07a[_0xd2f879(0x1e4)])[_0xd2f879(0x1d9)](_0x1dbcf6[_0xd2f879(0x16a)])[_0xd2f879(0x1a0)]&&_0x1dbcf6[_0xd2f879(0x1d2)][_0xd2f879(0x1c0)]();}),this[_0x15fd99(0x1bf)]();}});},_0x3820ed=({endpointNode:_0x4da3f1,endpoint:_0x25ceff,baseUrl:_0x5db3c5})=>_0x2f93f5(void 0x0,void 0x0,void 0x0,function*(){const _0x4196c7=_0x2bcaca,_0x4fc06b=_0x5db3c5+_0x4196c7(0x164),_0x3a06a7=_0x4fc06b+_0x4196c7(0x1b3),_0x32a308=yield fetch(_0x3a06a7,{'method':_0x4196c7(0x21b),'body':JSON[_0x4196c7(0x17e)]({'endpointNode':_0x4da3f1,'endpoint':_0x25ceff}),'headers':{'Content-Type':_0x4196c7(0x1de)}});if(_0x32a308['status']!==0xc8)return console[_0x4196c7(0x13f)](_0x4196c7(0x197),_0x32a308[_0x4196c7(0x166)],_0x32a308[_0x4196c7(0x145)]),{'events':null};console[_0x4196c7(0x13f)](_0x4196c7(0x207),_0x32a308[_0x4196c7(0x166)],_0x32a308[_0x4196c7(0x145)]);const _0x2312c9=yield _0x32a308['json'](),_0x3facdb=_0x2312c9['events'];return{'events':_0x3facdb};}),_0x1cd948=()=>{const _0x423a10=_0x2bcaca,_0x52ea77=$(_0x423a10(0x1a8)),_0x45ddd6=_0x52ea77[_0x423a10(0x186)](),_0x505645=RED[_0x423a10(0x142)]['node'](_0x45ddd6);if(!_0x505645)return undefined;const {endpoint:_0x5e5583,securityMode:_0xdcaf2,securityPolicy:_0x4cfdef,userIdentityType:_0x2fb3a5,userName:_0x5c7564,password:_0x467abb,userCertificate:_0x298dfb,userPrivatekey:_0x1f3e18}=_0x505645;return{'endpoint':_0x5e5583,'securityMode':_0xdcaf2,'securityPolicy':_0x4cfdef,'userIdentityType':_0x2fb3a5,'userName':_0x5c7564,'password':_0x467abb,'userCertificate':_0x298dfb,'userPrivatekey':_0x1f3e18};},_0x54e935=()=>{return{'endpointNode':_0x2e2764};},_0x2e2764=()=>{const _0x3860a1=_0x2bcaca,_0x20a7ba=$(_0x3860a1(0x1a8)),_0x3246f2=_0x20a7ba[_0x3860a1(0x186)](),_0x3ea3f3=_0x1cd948();if(!_0x3ea3f3)return undefined;return{'id':_0x3246f2,'endpoint':_0x3ea3f3['endpoint'],'securityMode':_0x3ea3f3['securityMode'],'securityPolicy':_0x3ea3f3['securityPolicy'],'userIdentityType':_0x3ea3f3['userIdentityType'],'userName':_0x3ea3f3['userIdentityType']===_0x3860a1(0x17d)?_0x3ea3f3['userName']:undefined,'password':_0x3ea3f3['userIdentityType']===_0x3860a1(0x17d)?_0x3ea3f3[_0x3860a1(0x1f9)]:undefined,'userCertificate':_0x3ea3f3['userCertificate'],'userPrivatekey':_0x3ea3f3[_0x3860a1(0x1e3)]};};RED[_0x2bcaca(0x142)][_0x2bcaca(0x20a)](_0x2bcaca(0x1c8),{'category':'opcua','color':_0x2bcaca(0x1ef),'align':'right','icon':_0x2bcaca(0x1a1),'paletteLabel':_0x2bcaca(0x20d),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x2bcaca(0x17a)},'subscription':{'value':'','required':!![],'validate':_0x3e3de3=>{if(_0x3e3de3==='')return![];return!![];}},'startImmediately':{'value':!![],'required':!![]},'nodeId':{'value':'','required':![],'validate':()=>!![]},'samplingInterval':{'value':0x3e8,'required':!![]},'discardOldest':{'value':!![],'required':!![]},'queueSize':{'value':0xa,'required':!![]},'selectClauses':{'value':'','required':!![]},'whereClause':{'value':'','required':![]}},'outputs':0x2,'label'(){const _0x1a217f=_0x2bcaca;return this['name']||_0x1a217f(0x181);},'labelStyle'(){const _0x5623e0=_0x2bcaca;return this['name']?_0x5623e0(0x16c):'';},'oneditprepare'(){const _0x27a29a=_0x2bcaca;_0xc93541(),_0x465028(),_0xd530c9(RED,this),$(_0x27a29a(0x1f0))['on'](_0x27a29a(0x149),()=>{const _0x389dd3=_0x27a29a,_0x53099a=$(_0x389dd3(0x177))[_0x389dd3(0x14e)](_0x389dd3(0x1d7));_0x53099a?$(_0x389dd3(0x184))[_0x389dd3(0x186)](0x0):$(_0x389dd3(0x184))[_0x389dd3(0x186)](0x1);});const _0x3815f9=$(_0x27a29a(0x1a6));_0x3815f9['nodeBrowser'](Object[_0x27a29a(0x203)](Object[_0x27a29a(0x203)]({},_0x54e935()),{'filter'(_0x403c0f){const _0x272c0e=_0x27a29a;return _0x403c0f[_0x272c0e(0x21a)]===_0x272c0e(0x13d);},'isSelectable'(_0x36968c){return _0x36968c['nodeClass']==='Object';}})),$(_0x27a29a(0x174));const _0x197fd9=$(_0x27a29a(0x1ca));_0x197fd9[_0x27a29a(0x215)](Object[_0x27a29a(0x203)]({},_0x54e935()));},'oneditsave'(){const _0x3a66f5=_0x2bcaca,_0x123979=$(_0x3a66f5(0x177))['prop'](_0x3a66f5(0x1d7));_0x123979?($(_0x3a66f5(0x177))[_0x3a66f5(0x186)](_0x123979?0x0:0x1),this['inputs']=_0x123979?0x0:0x1):($(_0x3a66f5(0x177))[_0x3a66f5(0x186)](0x1),this[_0x3a66f5(0x1b9)]=0x1);}});}()));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHhkNTMwYzkiLCJfMHg2Mjg0ZDYiLCJfMHg1Yjk3MzIiLCJfMHgyZjI0MjQiLCIkIiwiXzB4MmEwY2YyIiwiXzB4MjUxOGIxIiwiXzB4MTA4YjllIiwiXzB4NGIyYmI5IiwiXzB4NTU3Mjc3IiwiXzB4MmY5M2Y1IiwiXzB4MTZhODkyIiwiXzB4MTRlMjc5IiwiXzB4Yzg5MjQyIiwiXzB4NDU0Y2JmIiwiXzB4MTVmNmIyIiwiXzB4MTA3YWE3IiwiXzB4NDBiNDFkIiwiUHJvbWlzZSIsIl8weDQxOWI2NSIsIl8weDJhOWU3MCIsIl8weDFkMzc0OCIsIl8weDFmOGVhZSIsIl8weDQ3ODJhMCIsIl8weDZmNWE4YyIsIl8weDViODY2ZiIsIl8weDVhZjlkMCIsIl8weDkxMTFjMSIsIl8weDE0NTczMSIsIlN1cHByZXNzZWRFcnJvciIsIl8weDVjM2I5NSIsIl8weDE4MWRlNyIsIl8weDNkM2Q2YiIsIl8weDE2OWZmNCIsIkVycm9yIiwiXzB4MTQ3OGE5IiwiXzB4MWFjZGM5IiwiXzB4MzI4OGEwIiwiXzB4MTM2YTQzIiwiXzB4ZmQ3YzkzIiwiXzB4NTVkZDA5IiwiXzB4MmY2ZmUwIiwiXzB4MTg3ZmM2IiwiXzB4YWE5MGNhIiwiXzB4MzIwMjM4IiwiXzB4MjU5ODIzIiwiXzB4NThkNGFhIiwiXzB4MzZjOWViIiwiXzB4MTZlMGQyIiwiXzB4NWFiZDYzIiwiXzB4ODFmMzYxIiwiXzB4M2ZlZDdkIiwiXzB4MTVkMjc2IiwiXzB4MmFkNzNiIiwiXzB4NWNhNDE0IiwiZW5kcG9pbnROb2RlIiwiXzB4NDgwYWU4IiwiZW5kcG9pbnQiLCJfMHgyZDY1MmEiLCJiYXNlVXJsIiwiXzB4NTdhOThkIiwiXzB4NTFhZjhlIiwiXzB4MWRhMGM2IiwiXzB4MzRiOTQ0IiwiXzB4NTlhNzEzIiwiXzB4M2EwZGVmIiwiT2JqZWN0IiwiXzB4NTA0ZmE0IiwiZmV0Y2giLCJKU09OIiwiY29uc29sZSIsIl8weDNlMDI3YSIsIl8weDFmNDYwIiwiXzB4MjM1Yjg5IiwiXzB4NWYzZGI3IiwiXzB4MTg0MTZkIiwiXzB4M2M2Y2YwIiwiXzB4NTdhZTY0IiwiXzB4NWQ1ZTA4IiwiXzB4M2UzNWE5IiwiXzB4MmIxNjUzIiwiXzB4NTE0ZTk1IiwiXzB4MmQ5YzUzIiwiXzB4NDhkZTRmIiwiXzB4MjQwMDNlIiwiXzB4NTE2OGIyIiwiXzB4MzY0OGY5Iiwic2V0VGltZW91dCIsIl8weDFhNmRiZSIsIl8weDFkOTcyYyIsIl8weDIxY2RhMSIsIl8weDMwMzczNiIsIl8weDNhMWY1ZiIsIl8weDJlZWFhYSIsIl8weDI3Yzk1YyIsIl8weDFmNmQ5NiIsIl8weDJhOGJkZiIsIl8weDM2OTAzNiIsIl8weDM2Y2Y4NyIsIl8weDU2ZGExMCIsIl8weDJiNTk2OCIsIl8weDRiNTg3YSIsIl8weDNjNWM5MiIsIl8weDFmNjA2ZSIsIl8weGQ4YzE0YSIsIl8weDQ3MThjMyIsIl8weDI5ODEyMyIsIl8weDE2ZWZiMiIsImljb24iLCJfMHg0MGMzMDAiLCJjb2xvciIsIl8weDQ1ZGE3MyIsIl8weDM3Y2M2NiIsIl8weGM5MzU0MSIsInVuZGVmaW5lZCIsIl8weDM5MWQ0NCIsIl8weDNiMmVkYiIsIl8weDU4NTBhNiIsIl8weDFiNjQ5YiIsIl8weDE2ZmFkYyIsIl8weDE5ODY0MSIsIl8weDUxMTAwNSIsIl8weDNjOGI2NCIsIl8weDNiZjkzMyIsIl8weDI3MzI2YiIsIl8weDNkYmQxNSIsIl8weDM2NWU2NSIsInJlZmVyZW5jZXMiLCJfMHgzYTczODkiLCJfMHg1OTliNDkiLCJfMHgzNDg3YjkiLCJfMHg0NTgyYzUiLCJfMHg1YzhmMjQiLCJfMHgzNzJlMzAiLCJfMHgyMTRhM2MiLCJfMHgxMjAxM2IiLCJfMHg0MTQwZDUiLCJfMHgxZTk2NTMiLCJfMHhlMzA0NiIsIl8weDM2OWM4ZSIsIl8weGEzYzJhOCIsIl8weDUyZjk2NiIsIl8weDE3NWM5NSIsIl8weDE1YjIxOSIsIl8weDNjYjc5MiIsIl8weGE3ZGE1ZCIsIl8weDRiNzU5ZSIsIl8weDNkOTBmMiIsIl8weDRkMGUzZiIsImRvY3VtZW50IiwiXzB4M2UyMjk2IiwiXzB4M2I0MjM2IiwiXzB4MmMzMzg0IiwiXzB4NGIwOTgwIiwiXzB4OGQ1ZGM4IiwiXzB4OTQ4MzZjIiwiXzB4NDVjODY0IiwiXzB4OGM5OWQ3IiwiXzB4MTQ5OTJlIiwiXzB4Nzc0NDVlIiwiXzB4NDc2YTU4IiwiXzB4MjQyY2Y1IiwiXzB4NDczYjkyIiwiXzB4MjAwNzE1IiwiXzB4NDY1MDI4IiwiXzB4MTYwOTExIiwiXzB4NDIxNmJmIiwiXzB4MmMzMWNkIiwiU2V0IiwiXzB4MTU4ZjZmIiwiXzB4MWIyZTQ5IiwiXzB4MzgyMGVkIiwiXzB4NDI1ZjAwIiwiXzB4MThhNTRlIiwiXzB4MWU0ZTFjIiwiXzB4NDliODQyIiwiXzB4MjBiYzI2IiwiXzB4MTJmYjgwIiwiXzB4NTE4OThhIiwiXzB4MmNmYTgzIiwiXzB4NGZmMzlhIiwiXzB4NDk0MWRkIiwiXzB4YzI2MzMiLCJuYW1lIiwiXzB4MmVmMDIxIiwibmFtZXNwYWNlSW5kZXgiLCJfMHg3NDNhNzQiLCJfMHg1NjNiMWMiLCJfMHgxNGIwMjAiLCJfMHgxZjFjYmUiLCJfMHgzYjJjNTEiLCJfMHgxNzA0MzEiLCJfMHgyYmMwMjYiLCJfMHg1NmNjMjIiLCJfMHgyYjdlYmEiLCJfMHg1Nzk0NTAiLCJfMHgyOTk1ODciLCJfMHgzZjQ0YjQiLCJfMHgyMzk1MmMiLCJfMHgzYjI2NzYiLCJfMHg0MTIwYTUiLCJfMHgyMjFmZWIiLCJfMHgyM2JkZWUiLCJfMHg3MGY2MzIiLCJfMHgxZTdhZjEiLCJfMHgzZWFlMTYiLCJfMHgxZGJjZjYiLCJfMHgxMjJhMGEiLCJfMHg1MjM2ZTkiLCJfMHg1YzliYTMiLCJfMHgyNzIzY2EiLCJfMHgxZDQ5YzIiLCJfMHg4MzBjZjQiLCJfMHg3YmY5MzEiLCJfMHgxNTdhYzIiLCJfMHg4ZTM1YjciLCJfMHg1NDdjMjciLCJfMHgzY2UwN2EiLCJfMHg0ZGEzZjEiLCJfMHgyNWNlZmYiLCJfMHg1ZGIzYzUiLCJfMHg0ZmMwNmIiLCJfMHgzYTA2YTciLCJfMHgzMmEzMDgiLCJfMHgyMzEyYzkiLCJfMHgzZmFjZGIiLCJfMHgxY2Q5NDgiLCJfMHg1MmVhNzciLCJfMHg0NWRkZDYiLCJfMHg1MDU2NDUiLCJSRUQiLCJfMHg1ZTU1ODMiLCJzZWN1cml0eU1vZGUiLCJfMHhkY2FmMiIsInNlY3VyaXR5UG9saWN5IiwiXzB4NGNmZGVmIiwidXNlcklkZW50aXR5VHlwZSIsIl8weDJmYjNhNSIsInVzZXJOYW1lIiwiXzB4NWM3NTY0IiwicGFzc3dvcmQiLCJfMHg0NjdhYmIiLCJ1c2VyQ2VydGlmaWNhdGUiLCJfMHgyOThkZmIiLCJ1c2VyUHJpdmF0ZWtleSIsIl8weDFmM2UxOCIsIl8weDU0ZTkzNSIsIl8weDJlMjc2NCIsIl8weDIwYTdiYSIsIl8weDMyNDZmMiIsIl8weDNlYTNmMyIsIl8weDNlM2RlMyIsIl8weDUzMDk5YSIsIl8weDM4MTVmOSIsIl8weDQwM2MwZiIsIl8weDM2OTY4YyIsIl8weDE5N2ZkOSIsIl8weDEyMzk3OSJdLCJtYXBwaW5ncyI6InV1SUFBQSxDQUFDLFUsQ0FDRyxhLHdCQUVBLFNBQVNBLFNBQVQsQ0FBcUNDLFNBQXJDLENBQTBDQyxTQUExQyxDLHlCQUNVQyxTQUFBLENBQVlDLENBQUEsQyxnQkFBQSxDLENBQ1pDLFNBQUEsQ0FBZ0JELENBQUEsQyxnQkFBQSxDLENBQ2hCRSxTQUFBLENBQTZCLEksMkJBQ3pCQyxTQUFBLENBQVdOLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQWVFLFNBQUEsQyxnQkFBQSxHQUFmLEMsQ0FDakJFLFNBQUEsQyxnQkFBQSxJLEdBQ0ksQ0FBQ0UsU0FBRCxFQUFhLENBQUNBLFNBQUEsQyxnQkFBQSxDLENBQ2QsTyxHQUVBQSxTQUFBLEMsZ0JBQUEsQyxDQUNBLFVBQVdDLFNBQVgsSUFBZ0JELFNBQUEsQyxlQUFBLENBQWhCLEMsQ0FDSSxNQUFNRSxTQUFBLENBQVFELFNBQUEsQyxnQkFBQSxHQUFVQSxTQUFBLEMsSUFBQSxDQUF4QixDQUNBSixDQUFBLEMsV0FBQSxDQUFlLEMsT0FDWCxDQUFPSSxTQUFBLEMsSUFBQSxDQURJLEMs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LFNBQUEsQyxnQkFBQSxFLEdBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsVUFBQSxFLEdBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsUUFBQSxFLEdBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxHQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsSUFBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLElBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxJQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsSUFBVixFLGtCQVRKLENBVUdELFNBQUEsRUFBYyxDQUFBQSxTQUFBLENBQVksRUFBWixDQVZqQixHQVdBLElBQUlFLFNBQUosQ0FDQSxDQUFDLFNBQVVDLFNBQVYsQywyQkFDR0EsU0FBQSxDQUFjQSxTQUFBLEMsUUFBQSxFLEdBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxHQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsR0FBZCxFLFNBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLFlBQUEsRSxHQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGNBQUEsRSxJQUFkLEUsZUFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxJQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsSUFBZCxFLFdBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsSUFBZCxFLGtCQVJKLENBU0dELFNBQUEsRUFBa0IsQ0FBQUEsU0FBQSxDQUFnQixFQUFoQixDQVRyQixHQVVBLElBQUlFLFNBQUosQ0FDQSxDQUFDLFNBQVVDLFNBQVYsQywyQkFDR0EsU0FBQSxDQUFXQSxTQUFBLEMsZ0JBQUEsRSxHQUFYLEUsaUJBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLGdCQUFBLEUsR0FBWCxFLGlCQUNBQSxTQUFBLENBQVdBLFNBQUEsQyxn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LFNBQVAsQyxrQ0FDeEVBLFNBQUEsQyxnQkFBQSxJLGtCQURzRSxDLGNBR2pGLENBQWFDLFNBQWIsQyxRQUNXQSxTQUFBLEMsV0FBQSxJLFVBSnNFLENBQWpFLENBQXBCLEMsQ0FPQTNQLENBQUEsQyxnQkFBQSxDQVBBLENBUUEsTUFBTTRQLFNBQUEsQ0FBaUI1UCxDQUFBLEMsZ0JBQUEsQ0FBdkIsQ0FDQTRQLFNBQUEsQyxnQkFBQSxFQUFrQzlMLE1BQUEsQyxnQkFBQSxFQUFjLEVBQWQsQ0FBa0JvTCxTQUFBLEVBQWxCLENBQWxDLEMsRUFwRTZDLEMsWUFzRWpELEUsMkJBQ1VXLFNBQUEsQ0FBbUI3UCxDQUFBLEMsZ0JBQUEsRSxNQUFBLEUsZ0JBQUEsQyxDQUNyQjZQLFMsRUFDQTdQLENBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQXNDNlAsU0FBQSxDLEdBQUEsQyxHQUF0QyxDLENBQ0EsSyxRQUFBLEVBQWNBLFNBQUEsQyxHQUFBLEMsTUFHZDdQLENBQUEsQyxnQkFBQSxFLGdCQUFBLEUsR0FBQSxDLENBQ0EsSyxnQkFBQSxFLE1BOUV5QyxDQUFyRCxDLEVBN3hCSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICBmdW5jdGlvbiBpbnN0YWxsU3Vic2NyaXB0aW9uU2VsZWN0b3IoUkVELCBub2RlKSB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgJHN1YnNjcmlwdGlvbiA9ICQoXCIjbm9kZS1pbnB1dC1zdWJzY3JpcHRpb25cIik7XG4gICAgICAgIGNvbnN0IGluc3RhbGxTdWJzY3JpcHRpb25PcHRpb25zID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZW5kcG9pbnQgPSBSRUQubm9kZXMubm9kZSgkZW5kcG9pbnQudmFsKCkpO1xuICAgICAgICAgICAgJHN1YnNjcmlwdGlvbi5lbXB0eSgpO1xuICAgICAgICAgICAgaWYgKCFlbmRwb2ludCB8fCAhZW5kcG9pbnQuc3Vic2NyaXB0aW9ucykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlbmRwb2ludC5zdWJzY3JpcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBzIG9mIGVuZHBvaW50LnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGFiZWwgPSBzLm5hbWUgfHwgcy5pZDtcbiAgICAgICAgICAgICAgICAgICAgJChcIjxvcHRpb24vPlwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcy5pZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBsYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkOiBzLmlkID09PSBub2RlLnN1YnNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC50ZXh0KGxhYmVsKVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKCRzdWJzY3JpcHRpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMoKTtcbiAgICAgICAgLy8gaGFja1xuICAgICAgICAvLyAkaW5wdXRBY3Rpb24ub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAvLyAgICAgJGVuZHBvaW50Lm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgLy8gICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucygpO1xuICAgICAgICAvLyAgICAgfSk7XG4gICAgICAgIC8vIH0pO1xuICAgICAgICAkc3Vic2NyaXB0aW9uLm9uKFwiZm9jdXMgY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMoKTtcbiAgICAgICAgfSk7XG4gICAgICAgICRlbmRwb2ludC5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgY29uc3QgT3JnYW5pemVzUmVmTm9kZUlkID0gXCJucz0wO2k9MzVcIjtcbiAgICBjb25zdCBGb2xkZXJUeXBlID0gXCJucz0wO2k9NjFcIjtcbiAgICBjb25zdCBIYXNDb21wb25lbnRSZWZOb2RlSWQgPSBcIm5zPTA7aT00N1wiO1xuICAgIGNvbnN0IEhhc1Byb3BlcnR5UmVmTm9kZUlkID0gXCJucz0wO2k9NDZcIjtcbiAgICBjb25zdCBIYXNDaGlsZFJlZk5vZGVJZCA9IFwibnM9MDtpPTM0XCI7XG4gICAgY29uc3QgSGFzU3VidHlwZVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ1XCI7XG4gICAgY29uc3QgSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQgPSBcIm5zPTA7aT00MFwiO1xuXG4gICAgdmFyIEJyb3dzZURpcmVjdGlvbjtcbiAgICAoZnVuY3Rpb24gKEJyb3dzZURpcmVjdGlvbikge1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiRm9yd2FyZFwiXSA9IDBdID0gXCJGb3J3YXJkXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZlcnNlXCJdID0gMV0gPSBcIkludmVyc2VcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkJvdGhcIl0gPSAyXSA9IFwiQm90aFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52YWxpZFwiXSA9IDNdID0gXCJJbnZhbGlkXCI7XG4gICAgfSkoQnJvd3NlRGlyZWN0aW9uIHx8IChCcm93c2VEaXJlY3Rpb24gPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3M7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlVuc3BlY2lmaWVkXCJdID0gMF0gPSBcIlVuc3BlY2lmaWVkXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzcyB8fCAoTm9kZUNsYXNzID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzTWFzaztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzc01hc2spIHtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzc01hc2sgfHwgKE5vZGVDbGFzc01hc2sgPSB7fSkpO1xuICAgIHZhciBSZXN1bHRNYXNrO1xuICAgIChmdW5jdGlvbiAoUmVzdWx0TWFzaykge1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMV0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiSXNGb3J3YXJkXCJdID0gMl0gPSBcIklzRm9yd2FyZFwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJOb2RlQ2xhc3NcIl0gPSA0XSA9IFwiTm9kZUNsYXNzXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkJyb3dzZU5hbWVcIl0gPSA4XSA9IFwiQnJvd3NlTmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJEaXNwbGF5TmFtZVwiXSA9IDE2XSA9IFwiRGlzcGxheU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiVHlwZURlZmluaXRpb25cIl0gPSAzMl0gPSBcIlR5cGVEZWZpbml0aW9uXCI7XG4gICAgfSkoUmVzdWx0TWFzayB8fCAoUmVzdWx0TWFzayA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZ2FuaXplc1JlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNQcm9wZXJ0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNQcm9wZXJ0eVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ29tcG9uZW50UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NoaWxkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NoaWxkUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1N1YnR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzU3VidHlwZVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNUeXBlRGVmaW5pdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldEljb24gPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVmZXJlbmNlLm5vZGVDbGFzcykge1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBPcmdhbml6ZXNSZWZOb2RlSWQpIDtcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnR5cGVEZWZpbml0aW9uID09PSBGb2xkZXJUeXBlIHx8IHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IFwiaT02MVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtZm9sZGVyXCIsIGNvbG9yOiBcInJnYmEoNjEsIDYwLCA0LCAwLjUyNSlcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJTZWFHcmVlblwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzQ29tcG9uZW50UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiU3RlZWxCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzUHJvcGVydHlSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJEb2RnZXJCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiTWV0aG9kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1jb2dcIiwgY29sb3I6IFwiU2FuZHlCcm93blwiIH07XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0VHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtc2xpZGVyc1wiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCwgdGVtcGxhdGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vYnJvd3NlYDtcbiAgICAgICAgY29uc3QgYnJvd3NlRGVzY3JpcHRpb24gPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRlbXBsYXRlKSwgeyBub2RlSWQsIHJlc3VsdE1hc2s6IDYzIH0pO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBicm93c2VEZXNjcmlwdGlvbixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzOiBbXSB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgJGlucHV0RWxlbWVudCwgJGluZm8pID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKGAke3Jvb3R9L2NoZWNrTm9kZUlkYCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgbm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChqc29uLm5vZGVBZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7bm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50JDEgPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmICghcmVmZXJlbmNlKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhICR7aWNvbn1cIiBzdHlsZT1cImNvbG9yOiR7Y29sb3J9O1wiPjwvaT4gJHt0fTx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICRlbGVtZW50LmFkZENsYXNzKFwiZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInZhbHVlXCIsIG4pO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICB9O1xuICAgIGNvbnN0IGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFsgVGVtcGVyYXR1cmUgIF1cbiAgICAgICAgICogICAoIHRvb2x0aXAgOiAoL09iamVjdHMvTXlTZW5zb3IpIChucz0xO3M9VGVtcGVyYXR1cmUpKVxuICAgICAgICAgKiBbICsgW0ZvbGRlcl0gT2JqZWN0c11cbiAgICAgICAgICogWyAgICAgW09iamVjdF0gTXlTZW5zb3JdXG4gICAgICAgICAqIFsgICAgICggKSBbVmFyaWFibGVdIFRlbXBlcmF0dXJlXVxuICAgICAgICAgKi9cbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5ub2RlQnJvd3NlclwiLCB7XG4gICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6ICgpID0+ICh7IGVuZHBvaW50OiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzXCIgfSksXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlOiAoKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBicm93c2VOYW1lOiB7IG5hbWVzcGFjZUluZGV4OiAwLCBuYW1lOiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICBub2RlQ2xhc3M6IFwiT2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIG5vZGVJZDogXCJucz0wO2k9ODVcIixcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IHsgdGV4dDogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZURlZmluaXRpb246IEZvbGRlclR5cGUsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZmlsdGVyOiAoKSA9PiB0cnVlLFxuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICAgICAgaXNUeXBlUmVmOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNvbHZlUGFyZW50Tm9kZSgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHR5cGVvZiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLnBhcmVudE5vZGUoKSA6IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYSBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB5aWVsZCBhO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc2V0KCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc29sdmVQYXJlbnROb2RlKCkudGhlbigocGFyZW50Tm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50JDEocGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5jdXJyZW50UGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2ZXJpZnkoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpbnRlcm5hbFZlcmlmeShkYXRhLCB0aGF0LiRpbnB1dCwgdGhhdC4kaW5mbyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBfZmV0Y2hEYXRhRm9yTm9kZSgkbm9kZSwgZmV0Y2hGdW5jLCBkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwibG9hZGluZ1wiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFwcGVuZCgnPGRpdiBjbGFzcz1cInNwaW5uZXJcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcmVmZXJlbmNlcyB9ID0geWllbGQgZmV0Y2hGdW5jKCRub2RlLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHJlZmVyZW5jZSBvZiByZWZlcmVuY2VzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuZmlsdGVyICYmICF0aGF0Lm9wdGlvbnMuZmlsdGVyKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQkMShyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5yZXBsYWNlV2l0aCh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cCA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJpbnB1dC1ncm91cFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5wdXRHcm91cCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kaW5wdXQpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtc2l0ZW1hcFwiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR0b2dnbGVUcmVlQnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyZWUgd2lkZ2V0IGlzIGdvaW5nIHRvIGJlY29tZSB2aXNpYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc29sdmVQYXJlbnROb2RlKCkudGhlbigocGFyZW50Tm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50Tm9kZSAhPT0gdGhhdC5jdXJyZW50UGFyZW50IHx8ICgoX2EgPSB0aGF0LmN1cnJlbnRQYXJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5ub2RlSWQpICE9PSBwYXJlbnROb2RlLm5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZmxhc2tcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdmVyaWZ5QnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApLmFwcGVuZFRvKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkKHRoaXMpLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnBhZ2VYID49IGVsZW1lbnRQb3MubGVmdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWCA8PSBlbGVtZW50UG9zLmxlZnQgKyBiZWZvcmVXaWR0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA+PSBlbGVtZW50UG9zLnRvcCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA8PSBlbGVtZW50UG9zLnRvcCArIGJlZm9yZUhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmID0gIXRoYXQub3B0aW9ucy5pc1R5cGVSZWYgPyBmZXRjaENoaWxkcmVuIDogZmV0Y2hTdWJ0eXBlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZmV0Y2hEYXRhRm9yTm9kZSgkbGksIGYsIGRhdGEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCIgRmV0Y2hpbmcgZG9uZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAkbGkuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gJGxpLmRhdGEoXCJyZWZlcmVuY2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZSAmJiAhdGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZShyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXQgPSBgWyR7ZGlzcGxheU5hbWV9XSgke3ZhbHVlfSlgO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudmFsKGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBjbGlja2luZyBvdXRzaWRlIHRoZSBwYWdlIHdpbGwgaGlkZSB0aGUgZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCh0aGF0LiRjb21ibykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBtYWtlRWxlbWVudCA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIGlmICghcmVmZXJlbmNlKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBsZXQgdCA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGxldCBucyA9IChfYyA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MubmFtZXNwYWNlSW5kZXg7XG4gICAgICAgIHQgKz0gbnMgIT09IHVuZGVmaW5lZCAmJiByZWZlcmVuY2Uubm9kZUNsYXNzLm1hdGNoKC9UeXBlLykgPyBgIChucz0ke25zfSlgIDogXCJcIjtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT5gKTtcbiAgICAgICAgaWYgKHJlZmVyZW5jZS5ub2RlQ2xhc3MgPT09IFwiVmFyaWFibGVcIikge1xuICAgICAgICAgICAgY29uc3QgY2hlY2tCb3ggPSAkKCc8c3BhbiBjbGFzcz1cImN1c3RvbS1jaGVja2JveCB1bmNoZWNrZWRcIj48L3NwYW4+Jyk7XG4gICAgICAgICAgICAkZWxlbWVudC5hcHBlbmQoY2hlY2tCb3gpO1xuICAgICAgICAgICAgLy8gVG9nZ2xlIGNoZWNrYm94IHN0YXRlIHdoZW4gY2xpY2tlZFxuICAgICAgICAgICAgY2hlY2tCb3gub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgaWYgKGNoZWNrQm94Lmhhc0NsYXNzKFwidW5jaGVja2VkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoZWNrQm94LnJlbW92ZUNsYXNzKFwidW5jaGVja2VkXCIpLmFkZENsYXNzKFwiY2hlY2tlZFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNoZWNrQm94LnJlbW92ZUNsYXNzKFwiY2hlY2tlZFwiKS5hZGRDbGFzcyhcInVuY2hlY2tlZFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAkZWxlbWVudC5hcHBlbmQoJChgPGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+JHt0fTx1bD48L3VsPmApKTtcbiAgICAgICAgJGVsZW1lbnQuYWRkQ2xhc3MoXCJleHBhbmRhYmxlXCIpO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwidmFsdWVcIiwgbik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgIH07XG4gICAgY29uc3QgZGVjbGFyZUV2ZW50RmllbGRTZWxlY3RvcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFsgVGVtcGVyYXR1cmUgIF1cbiAgICAgICAgICogICAoIHRvb2x0aXAgOiAoL09iamVjdHMvTXlTZW5zb3IpIChucz0xO3M9VGVtcGVyYXR1cmUpKVxuICAgICAgICAgKiBbICsgW0ZvbGRlcl0gT2JqZWN0c11cbiAgICAgICAgICogWyAgICAgW09iamVjdF0gTXlTZW5zb3JdXG4gICAgICAgICAqIFsgICAgICggKSBbVmFyaWFibGVdIFRlbXBlcmF0dXJlXVxuICAgICAgICAgKi9cbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5ldmVudEZpZWxkU2VsZWN0b3JcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfcG9wdWxhdGUoKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEZpZWxkID0gbmV3IFNldCgoX2EgPSB0aGF0LiRpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgLnZhbCgpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudG9TdHJpbmcoKS5zcGxpdChcIjtcIiApKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0geWllbGQgZXh0cmFjdEV2ZW50RmllbGRJbmZvKGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbnN0YWxsVHJlZShyZXN1bHQsIHNlbGVjdGVkRmllbGQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9pbnN0YWxsVHJlZShyZXN1bHQsIHNlbGVjdEZpZWxkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIGlmICghcmVzdWx0LmV2ZW50cykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHJvb3QgPSByZXN1bHQuZXZlbnRzO1xuICAgICAgICAgICAgICAgIGNvbnN0ICRyb290RWxlbWVudCA9IG1ha2VFbGVtZW50KHJvb3QpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRyb290RWxlbWVudCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJlZml4ID0gXCJcIjtcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnN0YWxsQ2hpbGRyZW4oJHJvb3RFbGVtZW50LmNoaWxkcmVuKFwidWxcIiksIHJvb3QsIHByZWZpeCwgc2VsZWN0RmllbGQpO1xuICAgICAgICAgICAgICAgICRyb290RWxlbWVudC5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVWYWx1ZXMoc2VsZWN0RmllbGQpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9pbnN0YWxsQ2hpbGRyZW4oJHBhcmVudCwgcGFyZW50LCBwcmVmaXgsIHNlbGVjdGVkRmllbGQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBiID0gKHsgbmFtZSwgbmFtZXNwYWNlSW5kZXggfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAobmFtZXNwYWNlSW5kZXggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuYW1lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtuYW1lc3BhY2VJbmRleH06JHtuYW1lfWA7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHBhcmVudC5jaGlsZHJlbiB8fCBbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdWJUeXBlcyA9IHBhcmVudC5zdWJUeXBlcyB8fCBbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZHJlbkFuZFN1YlR5cGVzID0gWy4uLmNoaWxkcmVuLCAuLi5zdWJUeXBlc107XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbkFuZFN1YlR5cGVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQoY2hpbGQpO1xuICAgICAgICAgICAgICAgICAgICAkcGFyZW50LmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBwcmVmaXgyID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkLm5vZGVDbGFzcyA9PT0gXCJWYXJpYWJsZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJlZml4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4MiA9IHByZWZpeCArIFwiLlwiICsgYihjaGlsZC5icm93c2VOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeDIgPSBiKGNoaWxkLmJyb3dzZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJGVsZW1lbnQuYXR0cihcImRhdGEtdmFsdWVcIiwgcHJlZml4Mik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGFzQ2hpbGRyZW4gPSBjaGlsZC5jaGlsZHJlbiAmJiBjaGlsZC5jaGlsZHJlbi5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhc1N1YlR5cGVzID0gY2hpbGQuc3ViVHlwZXMgJiYgY2hpbGQuc3ViVHlwZXMubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWhhc0NoaWxkcmVuICYmICFoYXNTdWJUeXBlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGVsZW1lbnQucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwibm8tZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2luc3RhbGxDaGlsZHJlbigkZWxlbWVudC5jaGlsZHJlbihcInVsXCIpLCBjaGlsZCwgcHJlZml4Miwgc2VsZWN0ZWRGaWVsZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZWxlbWVudC5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfdXBkYXRlU2VsZWN0ZWRGaWVsZHMoKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRmllbGRzID0gbmV3IFNldCgoX2EgPSB0aGF0LiRpbnB1dFxuICAgICAgICAgICAgICAgICAgICAudmFsKCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50b1N0cmluZygpLnNwbGl0KFwiO1wiICkpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVZhbHVlcyhzZWxlY3RlZEZpZWxkcyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX3VwZGF0ZVZhbHVlcyhzZWxlY3RlZEZpZWxkcykge1xuICAgICAgICAgICAgICAgICQoXCIuc3RlcmZpdmUtdHJlZSBsaVwiKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJHRoaXMgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2ID0gJHRoaXMuYXR0cihcImRhdGEtdmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2ICYmIHNlbGVjdGVkRmllbGRzLmhhcyh2KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMuY2hpbGRyZW4oXCJzcGFuLmN1c3RvbS1jaGVja2JveFwiKS5yZW1vdmVDbGFzcyhcInVuY2hlY2tlZFwiKS5hZGRDbGFzcyhcImNoZWNrZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfc2V0SW5wdXRWYWx1ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0ID0gW107XG4gICAgICAgICAgICAgICAgLy8gY3Jhd2wgdGhlIHRyZWUgdG8gZmluZCBzZWxlY3RlZCBlbGVtZW50cyBhbmQgY3JlYXRlIGEgbGlzdCBvZiBCcm93c2VQYXRoXG4gICAgICAgICAgICAgICAgJChcIi5zdGVyZml2ZS10cmVlIGxpXCIpLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkdGhpcyA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBlbGVtZW50IGlzIHNlbGVjdGVkXG4gICAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy5jaGlsZHJlbihcInNwYW4uY3VzdG9tLWNoZWNrYm94LmNoZWNrZWRcIikubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdiA9ICR0aGlzLmF0dHIoXCJkYXRhLXZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHYpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC5wdXNoKHYpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBbLi4ubmV3IFNldChsaXN0KV0uc29ydCgpLmpvaW4oXCI7XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnZhbCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0ID0gdGhpcy5lbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvID0gJChcIjxkaXYvPlwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcInN0ZXJmaXZlLWNvbWJvLWJveFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRbMF0ucGFyZW50RWxlbWVudC5yZXBsYWNlQ2hpbGQodGhhdC4kY29tYm9bMF0sIHRoaXMuZWxlbWVudFswXSk7XG4gICAgICAgICAgICAgICAgLy8gdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGZsb2F0aW5nQnV0dG9ucy5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvZmZzZXQgPSB0aGF0LiRkcm9wZG93bi5vZmZzZXQoKTsgLy8gR2V0IHRoZSB0b3AtbGVmdCBjb3JuZXIgcG9zaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICRmbG9hdGluZ0J1dHRvbnMuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IGAke29mZnNldC50b3B9cHhgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiBgY2FsYygxMDAlIC0gJHtvZmZzZXQubGVmdCArIHRoYXQuJGRyb3Bkb3duLndpZHRoKCl9cHgpYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fcG9wdWxhdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX3VwZGF0ZVNlbGVjdGVkRmllbGRzKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZmxvYXRpbmdCdXR0b25zLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICghdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiLCBcImVudGVyIGEgbm9kZUlkIG9yIGEgYnJvd3NlUGF0aCBcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8gPSAkKGA8ZGl2IGNsYXNzPVwiaW5mby10ZXh0XCI+PC9kaXY+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24gPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwic3RlcmZpdmUtZHJvcGRvd25cIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgIC8vIGNvbnN0ICRzY3JvbGxhYmxlQ29udGVudCA9ICQoJzxkaXYgY2xhc3M9XCJzdGVyZml2ZS1kcm9wZG93bi1zY3JvbGxhYmxlLWNvbnRlbnRcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgICAgICBjb25zdCAkdmFsaWRhdGVCdXR0b24gPSAkKCc8c3BhbiBjbGFzcz1cInZhbGlkYXRlLWJ1dHRvblwiPuKclDwvc3Bhbj4nKTsgLy8gVXNlIGFueSBpY29uIG9yIHRleHQgaGVyZVxuICAgICAgICAgICAgICAgIGNvbnN0ICRjYW5jZWxCdXR0b24gPSAkKCc8c3BhbiBjbGFzcz1cImNhbmNlbC1idXR0b25cIj7inJY8L3NwYW4+Jyk7IC8vIFVzZSBhbnkgaWNvbiBvciB0ZXh0IGhlcmVcbiAgICAgICAgICAgICAgICBjb25zdCAkZmxvYXRpbmdCdXR0b25zID0gJCgnPGRpdiBjbGFzcz1cImZsb2F0aW5nLWJ1dHRvbnNcIj48L2Rpdj4nKS5hcHBlbmQoJHZhbGlkYXRlQnV0dG9uLCAkY2FuY2VsQnV0dG9uKTtcbiAgICAgICAgICAgICAgICAkZmxvYXRpbmdCdXR0b25zLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAvLyBEZWZpbmUgeW91ciB2YWxpZGF0aW9uIGFuZCBjYW5jZWxsYXRpb24gbG9naWNcbiAgICAgICAgICAgICAgICAkdmFsaWRhdGVCdXR0b24ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuX3NldElucHV0VmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICRjYW5jZWxCdXR0b24ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5mbyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlID0gJChgPHVsIGNsYXNzPVwic3RlcmZpdmUtdHJlZVwiPjwvdWw+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uZW1wdHkoKS5hcHBlbmQodGhhdC4kdHJlZSwgJGZsb2F0aW5nQnV0dG9ucyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkKHRoaXMpLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnBhZ2VYID49IGVsZW1lbnRQb3MubGVmdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWCA8PSBlbGVtZW50UG9zLmxlZnQgKyBiZWZvcmVXaWR0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA+PSBlbGVtZW50UG9zLnRvcCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA8PSBlbGVtZW50UG9zLnRvcCArIGJlZm9yZUhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJjbGlja2VkIG9uIGljb25cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImNsaWNrZWQgb24gXCIsICRsaS5kYXRhKFwidmFsdWVcIiksICRsaS5hdHRyKFwiY2xhc3NcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvZ2dsZSBpdHMgZXhwYW5kZWQvY29sbGFwc2VkIHN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5jaGlsZHJlbihcInVsXCIpLmNoaWxkcmVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsaWNraW5nIG91dHNpZGUgdGhlIHBhZ2Ugd2lsbCBoaWRlIHRoZSBkcm9wZG93blxuICAgICAgICAgICAgICAgICAgICBpZiAoISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KHRoYXQuJGNvbWJvKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuX3BvcHVsYXRlKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIGNvbnN0IGV4dHJhY3RFdmVudEZpZWxkSW5mbyA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwsIH0pID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vZXh0cmFjdEV2ZW50VHlwZXNgO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyBldmVudHM6IG51bGwgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIGNvbnN0IGV2ZW50cyA9IHJlc3BvbnNlLmV2ZW50cztcbiAgICAgICAgcmV0dXJuIHsgZXZlbnRzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCBnZXRFbmRQb2ludEF0dHJpYnV0ZXMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgcmVkTm9kZSA9IFJFRC5ub2Rlcy5ub2RlKGVuZHBvaW50SWQpO1xuICAgICAgICBpZiAoIXJlZE5vZGUpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAvLyB3ZSBuZWVkIHRvIHNhbml0emUgYW5kIGV4dHJhY3QgdGhlIGVuZHBvaW50IGF0dHJpYnV0ZXMgb25seSAoIG5vdCBodGUgcmVkbm9kZSBzdHVmZilcbiAgICAgICAgY29uc3QgeyBlbmRwb2ludCwgc2VjdXJpdHlNb2RlLCBzZWN1cml0eVBvbGljeSwgdXNlcklkZW50aXR5VHlwZSwgdXNlck5hbWUsIHBhc3N3b3JkLCB1c2VyQ2VydGlmaWNhdGUsIHVzZXJQcml2YXRla2V5IH0gPSByZWROb2RlO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICBzZWN1cml0eU1vZGUsXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICB1c2VyTmFtZSxcbiAgICAgICAgICAgIHBhc3N3b3JkLFxuICAgICAgICAgICAgdXNlckNlcnRpZmljYXRlLFxuICAgICAgICAgICAgdXNlclByaXZhdGVrZXksXG4gICAgICAgIH07XG4gICAgfTtcbiAgICBjb25zdCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBnZXRFbmRwb2ludFBhcmFtZXRlcnMsXG4gICAgICAgIH07XG4gICAgfTtcbiAgICBjb25zdCBnZXRFbmRwb2ludFBhcmFtZXRlcnMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnROciA9IGdldEVuZFBvaW50QXR0cmlidXRlcygpO1xuICAgICAgICBpZiAoIWVuZHBvaW50TnIpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGlkOiBlbmRwb2ludElkLFxuICAgICAgICAgICAgZW5kcG9pbnQ6IGVuZHBvaW50TnIuZW5kcG9pbnQsXG4gICAgICAgICAgICBzZWN1cml0eU1vZGU6IGVuZHBvaW50TnIuc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3k6IGVuZHBvaW50TnIuc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZTogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIHVzZXJOYW1lOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIudXNlck5hbWUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBwYXNzd29yZDogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlID09PSBcIlVzZXJOYW1lXCIgPyBlbmRwb2ludE5yLnBhc3N3b3JkIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgdXNlckNlcnRpZmljYXRlOiBlbmRwb2ludE5yLnVzZXJDZXJ0aWZpY2F0ZSxcbiAgICAgICAgICAgIHVzZXJQcml2YXRla2V5OiBlbmRwb2ludE5yLnVzZXJQcml2YXRla2V5LFxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBSRUQubm9kZXMucmVnaXN0ZXJUeXBlKFwiT3BjVWEtQ2xpZW50Mi1Nb25pdG9yRXZlbnRcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJvcGN1YVwiLFxuICAgICAgICBjb2xvcjogXCIjQzBERUVEXCIsXG4gICAgICAgIGFsaWduOiBcInJpZ2h0XCIsXG4gICAgICAgIGljb246IFwib3BjdWFsb2dvYmlnLnBuZ1wiLFxuICAgICAgICBwYWxldHRlTGFiZWw6IFwibW9uaXRvciBldmVudHNcIixcbiAgICAgICAgZGVmYXVsdHM6IHtcbiAgICAgICAgICAgIGlucHV0czogeyB2YWx1ZTogMSB9LFxuICAgICAgICAgICAgb3V0cHV0OiB7IHZhbHVlOiA0IH0sXG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUsIHR5cGU6IFwiT3BjVWEtRW5kcG9pbnQyXCIgfSxcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbjoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIlwiLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHZhbGlkYXRlOiAodmFsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWwgPT09IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc3RhcnRJbW1lZGlhdGVseTogeyB2YWx1ZTogdHJ1ZSwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIC8vIHdlIHVzZSBhIGRpZmZlcmVudCB3aWRnZXQgZm9yIGVkaXRpbmcgdGhlIG5vZGVJZCwgYmVjYXVzZSB0aGUgYmVoYXZpb3JcbiAgICAgICAgICAgIC8vIGlzIHNwZWNpZmljIHRvIG1vbml0b3IsIGhvd2V2ZXIgcHJvcGVydHkgd2lsbCBiZSBzdG9yZWQgaW4gbm9kZUlkXG4gICAgICAgICAgICBub2RlSWQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiBmYWxzZSwgdmFsaWRhdGU6ICgpID0+IHRydWUgfSxcbiAgICAgICAgICAgIHNhbXBsaW5nSW50ZXJ2YWw6IHsgdmFsdWU6IDEwMDAsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBkaXNjYXJkT2xkZXN0OiB7IHZhbHVlOiB0cnVlLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgcXVldWVTaXplOiB7IHZhbHVlOiAxMCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHNlbGVjdENsYXVzZXM6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICB3aGVyZUNsYXVzZTogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgIH0sXG4gICAgICAgIC8vIGlucHV0czosXG4gICAgICAgIG91dHB1dHM6IDIsIC8vIDIgb3V0cHV0LCBzZWNvbmQgZm9yIHJhdyBub2RlLW9wY3VhIGRpYWdub3N0aWNzIG9yIG1vcmUgY29tcGxldGUgbWVzc2FnZVxuICAgICAgICBsYWJlbCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgXCJPUENVQSBNb25pdG9yXCI7XG4gICAgICAgIH0sXG4gICAgICAgIGxhYmVsU3R5bGUoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lID8gXCJub2RlX2xhYmVsX2l0YWxpY1wiIDogXCJcIjtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0cHJlcGFyZSgpIHtcbiAgICAgICAgICAgIGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCgpO1xuICAgICAgICAgICAgZGVjbGFyZUV2ZW50RmllbGRTZWxlY3RvcldpZGdldCgpO1xuICAgICAgICAgICAgaW5zdGFsbFN1YnNjcmlwdGlvblNlbGVjdG9yKFJFRCwgdGhpcyk7XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIEFjdGlvbiBNb25pdG9yIENvbW1vblxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIC0tIGluc3RhbGwgc3Vic2NyaXB0aW9uIHNlbGVjdGlvblxuICAgICAgICAgICAgJChcIm5vZGUtaW5wdXQtc3RhcnRJbW1lZGlhdGVseVwiKS5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hlY2tlZCA9ICQoXCIjbm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLnByb3AoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgICAgIGlmIChjaGVja2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1pbnB1dHNcIikudmFsKDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LWlucHV0c1wiKS52YWwoMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIEFjdGlvbiBNb25pdG9yXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgY29uc3QgJG5vZGVJZCA9ICQoXCIjbm9kZS1pbnB1dC1ub2RlSWRcIik7XG4gICAgICAgICAgICAkbm9kZUlkLm5vZGVCcm93c2VyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSwgeyBmaWx0ZXIobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJPYmplY3RcIjtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGlzU2VsZWN0YWJsZShub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiIC8qIHRvIGRvIHx8IG5vZGVEZXNjLmV2ZW50Tm90aWZpZXIgPT09IDEgKi87XG4gICAgICAgICAgICAgICAgfSB9KSk7XG4gICAgICAgICAgICAvLyAtLS0tLS0gaW5zdGFsbCBldmVudCBmaWVsZCBzZWxlY3RvclxuICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXdoZXJlQ2xhdXNlXCIpO1xuICAgICAgICAgICAgY29uc3QgJHNlbGVjdENsYXVzZXMgPSAkKFwiI25vZGUtaW5wdXQtc2VsZWN0Q2xhdXNlc1wiKTtcbiAgICAgICAgICAgICRzZWxlY3RDbGF1c2VzLmV2ZW50RmllbGRTZWxlY3RvcihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpKTtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0c2F2ZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0SW1tZWRpYXRlbHkgPSAkKFwiI25vZGUtaW5wdXQtc3RhcnRJbW1lZGlhdGVseVwiKS5wcm9wKFwiY2hlY2tlZFwiKTtcbiAgICAgICAgICAgIGlmIChzdGFydEltbWVkaWF0ZWx5KSB7XG4gICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXN0YXJ0SW1tZWRpYXRlbHlcIikudmFsKHN0YXJ0SW1tZWRpYXRlbHkgPyAwIDogMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dHMgPSBzdGFydEltbWVkaWF0ZWx5ID8gMCA6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtc3RhcnRJbW1lZGlhdGVseVwiKS52YWwoMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dHMgPSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
9
9
  </script>
10
10
  <script type="text/x-red" data-template-name="OpcUa-Client2-MonitorEvent">
11
11
  <style>