@opcua/for-node-red 2.12.0 → 2.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,270 @@
1
+ <style>
2
+ .sterfive-combo-box{position:relative;width:100%}.sterfive-combo-box .sterfive-dropdown{background-color:#fff;border:1px solid #ccc;display:none;left:0;max-height:150px;overflow-y:auto;position:absolute;top:100%;width:100%;z-index:1000}.sterfive-combo-box li:before{content:none}.sterfive-tree li.expandable:before,.sterfive-tree li.no-expandable:before{content:"\f0da";cursor:pointer;font-family:FontAwesome;font-size:12pt;font-weight:900;margin-right:5px}.sterfive-tree li.no-expandable:before{opacity:0}.sterfive-tree li.expanded:before{content:"\f0d7";cursor:pointer;font-family:FontAwesome;font-size:12pt;font-weight:900;margin-right:5px}.sterfive-tree li span.selected{border:.5px dotted #33f}.sterfive-tree .fa{color:#333;margin-right:10px}.sterfive-tree ul{list-style:none;padding-inline-start:2%!important}.sterfive-tree li{cursor:pointer;padding:5px}.sterfive-tree{list-style-type:none}.sterfive-tree,.sterfive-tree ol,.sterfive-tree ul{list-style-type:none;margin:0;padding:0}.sterfive-tree li:hover{background-color:#eee}.sterfive-tree li.loading:before{animation:fa-spin 1s linear infinite;content:"\f110";cursor:pointer;font-family:FontAwesome;font-weight:900;margin-right:5px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.sterfive-tree .spinner{animation:spin .7s linear infinite;border:2px solid transparent;border-radius:50%;border-top-color:#666;display:inline-block;height:16px;width:16px}.sterfive-info{background-color:#fafad2;border-radius:10px;border-style:groove;display:block;font-size:10pt;margin:5px 0;padding:5px}.sterfive-info .ok{color:green}.sterfive-info .warning{color:darkred}.input-wrapper{border:0 solid #ccc;border-radius:5px;padding:0}.input-group{align-items:center;border:1px solid #ccc;border-radius:5px;display:flex;overflow:hidden}.input-group input{border:none;flex:1;outline:none;padding:8px}.input-group button{background-color:#f1f1f1;border:none;border-left:1px solid #ccc;cursor:pointer;padding:8px 16px}.input-group button:hover{background-color:#ddd}.info-text{color:#777;font-size:12px;margin-left:10px;margin-top:5px}.custom-checkbox{cursor:pointer;display:inline-block;font-family:FontAwesome;font-size:16px;font-weight:900;margin-right:10px;text-align:center;width:1em}.custom-checkbox.unchecked:before{content:"\f096"}.custom-checkbox.checked:before{content:"\f046"}.validate-cancel-buttons{background-color:#fff;position:sticky;right:0;top:0;z-index:1001}.cancel-button,.validate-button{cursor:pointer;font-size:16px;margin:5px}.sterfive-combo-box .sterfive-dropdown{position:relative}.floating-buttons{position:fixed;z-index:1003}
3
+ /*# sourceMappingURL=OpcUa-Client2-HistoryRead.css.map */
4
+ </style>
5
+
6
+ <script type="text/javascript">
7
+ (function(_0x42a10c,_0x3fe827){const _0x1e0bb7=_0x13ab,_0x44654c=_0x42a10c();while(!![]){try{const _0x47aa04=-parseInt(_0x1e0bb7(0x276))/0x1*(parseInt(_0x1e0bb7(0x2a2))/0x2)+-parseInt(_0x1e0bb7(0x1d9))/0x3*(-parseInt(_0x1e0bb7(0x2a4))/0x4)+-parseInt(_0x1e0bb7(0x29b))/0x5*(-parseInt(_0x1e0bb7(0x289))/0x6)+parseInt(_0x1e0bb7(0x246))/0x7*(-parseInt(_0x1e0bb7(0x27d))/0x8)+-parseInt(_0x1e0bb7(0x230))/0x9*(parseInt(_0x1e0bb7(0x28c))/0xa)+parseInt(_0x1e0bb7(0x21c))/0xb*(-parseInt(_0x1e0bb7(0x275))/0xc)+parseInt(_0x1e0bb7(0x214))/0xd;if(_0x47aa04===_0x3fe827)break;else _0x44654c['push'](_0x44654c['shift']());}catch(_0x3eb0a6){_0x44654c['push'](_0x44654c['shift']());}}}(_0x32a3,0x8287f),(function(){'use strict';const _0xf7ce3c=_0x13ab;function _0x3477c0(_0x519bd0,_0x3ceb7c,_0x4c775d,_0x3823e8){function _0x19fe2e(_0x37807a){return _0x37807a instanceof _0x4c775d?_0x37807a:new _0x4c775d(function(_0x55d389){_0x55d389(_0x37807a);});}return new(_0x4c775d||(_0x4c775d=Promise))(function(_0x3ccffa,_0x17951b){const _0x1c520b=_0x13ab;function _0x5af8de(_0x37290b){try{_0x21590e(_0x3823e8['next'](_0x37290b));}catch(_0x5677e3){_0x17951b(_0x5677e3);}}function _0x386425(_0x189aa0){const _0x369626=_0x13ab;try{_0x21590e(_0x3823e8[_0x369626(0x236)](_0x189aa0));}catch(_0x2b217a){_0x17951b(_0x2b217a);}}function _0x21590e(_0xe59f85){const _0x1bd6b9=_0x13ab;_0xe59f85[_0x1bd6b9(0x27f)]?_0x3ccffa(_0xe59f85[_0x1bd6b9(0x237)]):_0x19fe2e(_0xe59f85[_0x1bd6b9(0x237)])['then'](_0x5af8de,_0x386425);}_0x21590e((_0x3823e8=_0x3823e8[_0x1c520b(0x221)](_0x519bd0,_0x3ceb7c||[]))[_0x1c520b(0x20b)]());});}typeof SuppressedError===_0xf7ce3c(0x1f3)?SuppressedError:function(_0x4b1396,_0x5b2982,_0x11d18f){const _0x1b8342=_0xf7ce3c;var _0x19b3e1=new Error(_0x11d18f);return _0x19b3e1[_0x1b8342(0x2ab)]=_0x1b8342(0x203),_0x19b3e1[_0x1b8342(0x1f4)]=_0x4b1396,_0x19b3e1[_0x1b8342(0x22a)]=_0x5b2982,_0x19b3e1;};const _0x1a2b0d='ns=0;i=35',_0x5b107d=_0xf7ce3c(0x20a),_0x26068e=_0xf7ce3c(0x220),_0x935081=_0xf7ce3c(0x1ca),_0x589eb8=_0xf7ce3c(0x23d),_0x110313=_0xf7ce3c(0x248),_0x339129=_0xf7ce3c(0x2a8);var _0x2ab832;(function(_0x507d07){const _0x365691=_0xf7ce3c;_0x507d07[_0x507d07[_0x365691(0x26e)]=0x0]='Forward',_0x507d07[_0x507d07[_0x365691(0x260)]=0x1]=_0x365691(0x260),_0x507d07[_0x507d07[_0x365691(0x25f)]=0x2]=_0x365691(0x25f),_0x507d07[_0x507d07['Invalid']=0x3]=_0x365691(0x29a);}(_0x2ab832||(_0x2ab832={})));var _0x11916e;(function(_0x22fad8){const _0x32a3ef=_0xf7ce3c;_0x22fad8[_0x22fad8[_0x32a3ef(0x1c5)]=0x0]=_0x32a3ef(0x1c5),_0x22fad8[_0x22fad8[_0x32a3ef(0x24a)]=0x1]='Object',_0x22fad8[_0x22fad8[_0x32a3ef(0x1e5)]=0x2]=_0x32a3ef(0x1e5),_0x22fad8[_0x22fad8[_0x32a3ef(0x273)]=0x4]=_0x32a3ef(0x273),_0x22fad8[_0x22fad8[_0x32a3ef(0x23f)]=0x8]=_0x32a3ef(0x23f),_0x22fad8[_0x22fad8[_0x32a3ef(0x2a0)]=0x10]='VariableType',_0x22fad8[_0x22fad8[_0x32a3ef(0x228)]=0x20]=_0x32a3ef(0x228),_0x22fad8[_0x22fad8[_0x32a3ef(0x238)]=0x40]='DataType',_0x22fad8[_0x22fad8[_0x32a3ef(0x2a6)]=0x80]='View';}(_0x11916e||(_0x11916e={})));var _0x36a23a;(function(_0x55fb36){const _0x46ba32=_0xf7ce3c;_0x55fb36[_0x55fb36[_0x46ba32(0x24a)]=0x1]=_0x46ba32(0x24a),_0x55fb36[_0x55fb36[_0x46ba32(0x1e5)]=0x2]=_0x46ba32(0x1e5),_0x55fb36[_0x55fb36['Method']=0x4]='Method',_0x55fb36[_0x55fb36[_0x46ba32(0x23f)]=0x8]=_0x46ba32(0x23f),_0x55fb36[_0x55fb36[_0x46ba32(0x2a0)]=0x10]='VariableType',_0x55fb36[_0x55fb36[_0x46ba32(0x228)]=0x20]=_0x46ba32(0x228),_0x55fb36[_0x55fb36[_0x46ba32(0x238)]=0x40]=_0x46ba32(0x238),_0x55fb36[_0x55fb36['View']=0x80]=_0x46ba32(0x2a6);}(_0x36a23a||(_0x36a23a={})));var _0x35e690;(function(_0xfa8f32){const _0x2425e4=_0xf7ce3c;_0xfa8f32[_0xfa8f32[_0x2425e4(0x228)]=0x1]=_0x2425e4(0x228),_0xfa8f32[_0xfa8f32[_0x2425e4(0x1c8)]=0x2]=_0x2425e4(0x1c8),_0xfa8f32[_0xfa8f32[_0x2425e4(0x2a7)]=0x4]=_0x2425e4(0x2a7),_0xfa8f32[_0xfa8f32['BrowseName']=0x8]='BrowseName',_0xfa8f32[_0xfa8f32[_0x2425e4(0x24b)]=0x10]='DisplayName',_0xfa8f32[_0xfa8f32[_0x2425e4(0x1d5)]=0x20]=_0x2425e4(0x1d5);}(_0x35e690||(_0x35e690={})));function _0x2b9148(_0x49bb60){const _0x42276a=_0xf7ce3c;switch(_0x49bb60){case _0x42276a(0x1d4):return _0x1a2b0d;case _0x42276a(0x1c4):return _0x935081;case _0x42276a(0x2a1):return _0x26068e;case'HasChild':return _0x589eb8;case _0x42276a(0x23c):return _0x110313;case _0x42276a(0x223):return _0x339129;}}const _0x4bd5d1=_0x302c63=>{const _0x170390=_0xf7ce3c;switch(_0x302c63[_0x170390(0x2a5)]){case _0x170390(0x24a):if(_0x302c63['referenceTypeId']===_0x1a2b0d);if(_0x302c63[_0x170390(0x1ee)]===_0x5b107d||_0x302c63[_0x170390(0x287)]==='i=61')return{'icon':_0x170390(0x21a),'color':_0x170390(0x227)};return{'icon':_0x170390(0x243),'color':'SeaGreen'};case _0x170390(0x1e5):if(_0x302c63['referenceTypeId']===_0x26068e)return{'icon':_0x170390(0x293),'color':'SteelBlue'};else return _0x302c63[_0x170390(0x287)]===_0x935081?{'icon':_0x170390(0x293),'color':'DodgerBlue'}:{'icon':_0x170390(0x293),'color':_0x170390(0x1cd)};case _0x170390(0x273):return{'icon':'fa-cog','color':_0x170390(0x257)};case _0x170390(0x23f):return{'icon':_0x170390(0x243),'color':_0x170390(0x1f6)};case'VariableType':return{'icon':'fa-sliders','color':'DarkOrange'};case _0x170390(0x238):return{'icon':_0x170390(0x297),'color':_0x170390(0x1cd)};}return{'icon':'fa-question','color':_0x170390(0x288)};},_0x59e969=(_0x407962,_0x24f647,_0x3da188)=>_0x3477c0(void 0x0,[_0x407962,_0x24f647,_0x3da188],void 0x0,function*({endpointNode:_0x3a6c63,endpoint:_0x51bba4,baseUrl:_0x441d7a},_0x492cf1,_0xcbb79f){const _0x5d2db5=_0xf7ce3c,_0x366088=_0x441d7a+_0x5d2db5(0x22b),_0x1ff6a8=_0x366088+_0x5d2db5(0x1e3),_0x22ec30=Object['assign'](Object[_0x5d2db5(0x2a9)]({},_0xcbb79f),{'nodeId':_0x492cf1,'resultMask':0x3f}),_0x47c22a=yield fetch(_0x1ff6a8,{'method':_0x5d2db5(0x264),'body':JSON[_0x5d2db5(0x23a)]({'endpointNode':_0x3a6c63,'endpoint':_0x51bba4,'browseDescription':_0x22ec30}),'headers':{'Content-Type':_0x5d2db5(0x28e)}});if(_0x47c22a['status']!==0xc8)return console['log'](_0x5d2db5(0x1ef),_0x47c22a[_0x5d2db5(0x211)],_0x47c22a[_0x5d2db5(0x210)]),{'references':[]};const _0x290508=yield _0x47c22a[_0x5d2db5(0x1d3)](),_0x15350=_0x290508[_0x5d2db5(0x231)][_0x5d2db5(0x23b)]||[];return{'references':_0x15350};}),_0x44da3b={'referenceTypeId':_0x2b9148(_0xf7ce3c(0x290)),'includeSubtypes':!![],'browseDirection':_0x2ab832[_0xf7ce3c(0x26e)],'nodeClassMask':_0x11916e[_0xf7ce3c(0x1e5)]|_0x11916e['Object']|_0x11916e[_0xf7ce3c(0x273)],'resultMask':0x3f},_0x34f389={'referenceTypeId':_0x2b9148(_0xf7ce3c(0x1d4)),'includeSubtypes':!![],'browseDirection':_0x2ab832[_0xf7ce3c(0x26e)],'nodeClassMask':_0x11916e[_0xf7ce3c(0x1e5)]|_0x11916e['Object']|_0x11916e[_0xf7ce3c(0x273)],'resultMask':0x3f},_0x2b0970=(_0x49de1a,_0x307954)=>_0x3477c0(void 0x0,[_0x49de1a,_0x307954],void 0x0,function*({endpointNode:_0x1ca0d6,endpoint:_0x4f0127,baseUrl:_0x23d940},{nodeId:_0x21333a,rootNodeId:_0x2d9f5a,isType:_0x28046a}){const _0x3c5a4c=_0xf7ce3c,_0x42cf6f=_0x23d940+_0x3c5a4c(0x22b),_0x36f2c1=_0x42cf6f+_0x3c5a4c(0x29c),_0x10cb90=yield fetch(_0x36f2c1,{'method':'POST','body':JSON['stringify']({'endpointNode':_0x1ca0d6,'endpoint':_0x4f0127,'nodeId':_0x21333a,'rootNodeId':_0x2d9f5a,'isType':_0x28046a}),'headers':{'Content-Type':_0x3c5a4c(0x28e)}});if(_0x10cb90[_0x3c5a4c(0x211)]!==0xc8)return null;const _0x5c0ac2=yield _0x10cb90[_0x3c5a4c(0x1d3)]();return _0x5c0ac2['browsePath'];}),_0x515416=(_0x38e834,_0x232e2c,_0xe9ca16)=>_0x3477c0(void 0x0,[_0x38e834,_0x232e2c,_0xe9ca16],void 0x0,function*({endpointNode:_0x35cc09,endpoint:_0x12ca2a,baseUrl:_0xe6bfef},_0x59622d,_0x1e6038){const _0x1a2755=_0xf7ce3c,_0x26c6f1=_0xe6bfef+_0x1a2755(0x22b),_0x33ae1f=_0x26c6f1+_0x1a2755(0x1d0),_0x54d335=_0x59622d['val'](),_0x5e49e0=yield fetch(_0x33ae1f,{'method':_0x1a2755(0x264),'body':JSON[_0x1a2755(0x23a)]({'endpointNode':_0x35cc09,'endpoint':_0x12ca2a,'nodeId':_0x54d335}),'headers':{'Content-Type':_0x1a2755(0x28e)}}),_0x3e3686=(_0x3b485,_0xf16853)=>{const _0x56c37d=_0x1a2755;_0x1e6038['text'](_0x3b485)[_0x56c37d(0x241)](_0x56c37d(0x1e0))['addClass'](_0xf16853),_0x1e6038[_0x56c37d(0x22d)](),setTimeout(()=>{const _0x321de1=_0x56c37d;_0x1e6038[_0x321de1(0x204)](_0xf16853),_0x1e6038[_0x321de1(0x25e)]();},0xbb8);},_0xca30b=yield _0x5e49e0[_0x1a2755(0x1d3)]();_0x5e49e0[_0x1a2755(0x211)]!==0xc8?_0x3e3686(_0x1a2755(0x267)+_0x54d335,_0x1a2755(0x1c6)):_0xca30b[_0x1a2755(0x28d)][_0x1a2755(0x1c3)](/Good/)?(_0x59622d['val'](_0xca30b[_0x1a2755(0x1da)]),_0x59622d[_0x1a2755(0x285)](_0x1a2755(0x1c9)),_0x3e3686('Good','ok')):(_0x59622d[_0x1a2755(0x1ea)](''+_0x54d335),_0x3e3686(_0xca30b[_0x1a2755(0x28d)]+'\x20'+_0x5e49e0[_0x1a2755(0x210)],_0x1a2755(0x1c6)));});function _0x541553(_0x57b4c5,_0x120591){return _0x3477c0(this,void 0x0,void 0x0,function*(){const _0x1ed705=_0x13ab,_0x112bb2=_0x57b4c5['data']('value'),_0x361353=yield _0x59e969(_0x120591,_0x112bb2,_0x44da3b),_0x42dd64=yield _0x59e969(_0x120591,_0x112bb2,_0x34f389);return{'references':[..._0x361353[_0x1ed705(0x23b)],..._0x42dd64[_0x1ed705(0x23b)]]};});}const _0x351ed5={'referenceTypeId':_0x2b9148(_0xf7ce3c(0x23c)),'includeSubtypes':!![],'browseDirection':_0x2ab832['Forward'],'nodeClassMask':_0x11916e[_0xf7ce3c(0x228)]|_0x11916e['ObjectType']|_0x11916e['DataType']|_0x11916e[_0xf7ce3c(0x2a0)],'resultMask':0x3f};function _0x2a5056(_0x503217,_0x395e33){return _0x3477c0(this,void 0x0,void 0x0,function*(){const _0x2db1be=_0x13ab,_0x1e6ba2=_0x503217[_0x2db1be(0x201)](_0x2db1be(0x237)),_0x2ceddf=yield _0x59e969(_0x395e33,_0x1e6ba2,_0x351ed5);return _0x2ceddf;});}const _0x2a4a63=_0x9f94b6=>{const _0xc07b38=_0xf7ce3c;var _0x2a70b4,_0x557061,_0x1d5eb2,_0x23f141;if(!_0x9f94b6||!_0x9f94b6['nodeId']){const _0x2780c4=$(_0xc07b38(0x20d));return _0x2780c4;}const _0x1acc5f=_0x9f94b6['nodeId'][_0xc07b38(0x271)](),_0x206e99=((_0x2a70b4=_0x9f94b6[_0xc07b38(0x259)])===null||_0x2a70b4===void 0x0?void 0x0:_0x2a70b4[_0xc07b38(0x253)])||((_0x557061=_0x9f94b6['browseName'])===null||_0x557061===void 0x0?void 0x0:_0x557061[_0xc07b38(0x2ab)])||_0x9f94b6[_0xc07b38(0x22c)][_0xc07b38(0x271)](),{icon:_0x13d3ef,color:_0x5dda4a}=_0x4bd5d1(_0x9f94b6),_0x4a919d='('+_0x9f94b6['nodeId'][_0xc07b38(0x271)]()+')\x20'+(((_0x1d5eb2=_0x9f94b6[_0xc07b38(0x207)])===null||_0x1d5eb2===void 0x0?void 0x0:_0x1d5eb2[_0xc07b38(0x2ab)])||((_0x23f141=_0x9f94b6[_0xc07b38(0x259)])===null||_0x23f141===void 0x0?void 0x0:_0x23f141[_0xc07b38(0x253)])||''),_0x3df2b8=$('<li\x20key=\x22'+_0x9f94b6[_0xc07b38(0x22c)][_0xc07b38(0x271)]()+_0xc07b38(0x208)+_0x4a919d+'><i\x20class=\x22fa\x20'+_0x13d3ef+'\x22\x20style=\x22color:'+_0x5dda4a+_0xc07b38(0x1e7)+_0x206e99+_0xc07b38(0x1fe));return _0x3df2b8[_0xc07b38(0x241)](_0xc07b38(0x27c)),_0x3df2b8['data'](_0xc07b38(0x237),_0x1acc5f),_0x3df2b8[_0xc07b38(0x201)](_0xc07b38(0x26a),_0x9f94b6),_0x3df2b8;},_0x501a93=(_0x51559f,_0x30ea41)=>{const _0x529934=_0xf7ce3c;return _0x30ea41['find'](_0x529934(0x286)+_0x51559f+'\x22]');},_0x30e525=(_0x353090,_0x45587b)=>{const _0x4f3066=_0xf7ce3c;_0x353090[_0x4f3066(0x206)][_0x4f3066(0x234)](_0x4f3066(0x1ff))[_0x4f3066(0x204)](_0x4f3066(0x1f9)),_0x45587b[_0x4f3066(0x234)]('.tree-text:first')[_0x4f3066(0x241)](_0x4f3066(0x1f9));},_0x521869=(_0x31239e,_0x445126,_0xae5c5)=>_0x3477c0(void 0x0,void 0x0,void 0x0,function*(){const _0x192317=_0xf7ce3c;let _0x298211=_0xae5c5[_0x192317(0x274)](_0x192317(0x1e6));_0x445126[_0x192317(0x209)][_0x192317(0x1ce)]||[];const _0x3eef33=_0x445126[_0x192317(0x255)]||[];if(_0x3eef33[_0x192317(0x1e9)]===0x0)return;for(const _0x7e4d38 of _0x3eef33){_0x298211[_0x192317(0x24e)](_0x192317(0x27c))&&(yield _0x341fe0(_0x31239e,_0x298211));const _0x224c07=_0x501a93(_0x7e4d38,_0x298211);if(_0x224c07[_0x192317(0x1e9)]===0x0)return;_0x298211=_0x224c07;}_0x30e525(_0x31239e,_0x298211),_0x81b7e0(_0x31239e[_0x192317(0x1dd)],_0x298211);});function _0x81b7e0(_0x4a6e30,_0x2610f3){const _0x52a558=_0xf7ce3c,_0x3040c9=_0x2610f3[_0x52a558(0x254)]()[_0x52a558(0x216)],_0x5bca41=_0x4a6e30[_0x52a558(0x244)]();if(_0x5bca41==undefined)return;const _0x428f6c=_0x5bca41+_0x3040c9-_0x4a6e30[_0x52a558(0x20c)]()/0x2+_0x2610f3[_0x52a558(0x20c)]()/0x2;_0x4a6e30[_0x52a558(0x1d1)]({'scrollTop':_0x428f6c},0x1f4);}const _0x2275e1=(_0x5c9668,_0x1857f2)=>_0x3477c0(void 0x0,void 0x0,void 0x0,function*(){const _0x1d2d61=_0xf7ce3c,_0x2aec0f=_0x5c9668[_0x1d2d61(0x272)][_0x1d2d61(0x1ea)](),_0x447abd={'nodeId':_0x2aec0f,'rootNodeId':_0x1857f2[_0x1d2d61(0x22c)],'isType':_0x5c9668['options'][_0x1d2d61(0x28f)]||![]},_0x47f320=_0x1582a3(_0x5c9668),_0x53499c=yield _0x2b0970(_0x47f320,_0x447abd);if(!_0x53499c)return;yield _0x521869(_0x5c9668,_0x53499c,_0x5c9668[_0x1d2d61(0x206)]);});function _0x5a4a28(_0x514052,_0x95c79e,_0x20949f,_0x34ae8f){return _0x3477c0(this,void 0x0,void 0x0,function*(){const _0x251134=_0x13ab;if(_0x95c79e[_0x251134(0x24e)]('fetched')){console[_0x251134(0x1fd)]('already\x20fetched');return;}if(_0x95c79e[_0x251134(0x24e)](_0x251134(0x1f2))){console['log'](_0x251134(0x1cf));return;}_0x95c79e['addClass'](_0x251134(0x1f2)),_0x95c79e['append']('<div\x20class=\x22spinner\x22></div>');try{_0x95c79e[_0x251134(0x274)]('ul')[_0x251134(0x27a)]();const {references:_0x2cf63a}=yield _0x20949f(_0x95c79e,_0x34ae8f);for(const _0x2cfae1 of _0x2cf63a){if(_0x514052[_0x251134(0x25d)][_0x251134(0x1e1)]&&!_0x514052[_0x251134(0x25d)][_0x251134(0x1e1)](_0x2cfae1))continue;const _0x14a856=_0x2a4a63(_0x2cfae1);_0x95c79e[_0x251134(0x274)]('ul')[_0x251134(0x1ec)](_0x14a856);}_0x95c79e[_0x251134(0x241)](_0x251134(0x25a));}catch(_0x2aaf40){_0x95c79e[_0x251134(0x274)]('ul')[_0x251134(0x1ec)](_0x251134(0x239)+_0x2aaf40[_0x251134(0x1f0)]+_0x251134(0x282)),console[_0x251134(0x1fd)](_0x251134(0x1d6),_0x2aaf40);}_0x95c79e['find'](_0x251134(0x284))[_0x251134(0x252)](),_0x95c79e[_0x251134(0x204)]('loading');});}function _0x1582a3(_0xb2d81e){const _0x1bdb20=_0xf7ce3c,_0x4a2aa6={'baseUrl':_0xb2d81e[_0x1bdb20(0x25d)][_0x1bdb20(0x279)],'endpointNode':typeof _0xb2d81e[_0x1bdb20(0x25d)][_0x1bdb20(0x263)]==='function'?_0xb2d81e[_0x1bdb20(0x25d)]['endpointNode']():_0xb2d81e['options'][_0x1bdb20(0x263)],'endpoint':typeof _0xb2d81e['options'][_0x1bdb20(0x265)]===_0x1bdb20(0x1f3)?_0xb2d81e[_0x1bdb20(0x25d)][_0x1bdb20(0x265)]():_0xb2d81e['options']['endpoint']};return _0x4a2aa6;}function _0x341fe0(_0x2a7c83,_0x36e2a0){return _0x3477c0(this,void 0x0,void 0x0,function*(){const _0x48139b=_0x13ab;if(_0x36e2a0[_0x48139b(0x24e)]('fetched')){_0x36e2a0[_0x48139b(0x204)]('expandable')[_0x48139b(0x241)](_0x48139b(0x1df)),_0x36e2a0[_0x48139b(0x274)]('ul')[_0x48139b(0x242)]();return;}const _0x5de015=_0x1582a3(_0x2a7c83),_0x22ac73=!_0x2a7c83[_0x48139b(0x25d)][_0x48139b(0x28f)]?_0x541553:_0x2a5056;try{yield _0x5a4a28(_0x2a7c83,_0x36e2a0,_0x22ac73,_0x5de015),_0x36e2a0[_0x48139b(0x204)](_0x48139b(0x27c))[_0x48139b(0x241)]('expanded');}catch(_0xc03f87){_0x36e2a0['removeClass'](_0x48139b(0x27c))[_0x48139b(0x241)]('expanded'),console[_0x48139b(0x1fd)]('error',_0xc03f87);}});}const _0x124e37=()=>{const _0x401c81=_0xf7ce3c;$[_0x401c81(0x21b)](_0x401c81(0x1f7),{'options':{'endpointNode':()=>({'endpoint':_0x401c81(0x28a)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x401c81(0x27b)},'nodeClass':'Object','nodeId':_0x401c81(0x26c),'displayName':{'text':_0x401c81(0x27b)},'typeDefinition':_0x5b107d}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x3477c0(this,void 0x0,void 0x0,function*(){const _0x1c9594=_0x13ab,_0x2cd04a=this;if(!_0x2cd04a['__parentNode']){const _0xa3967d=typeof _0x2cd04a[_0x1c9594(0x25d)][_0x1c9594(0x266)]===_0x1c9594(0x1f3)?_0x2cd04a['options'][_0x1c9594(0x266)][_0x1c9594(0x219)](_0x2cd04a):_0x2cd04a[_0x1c9594(0x25d)]['parentNode'];if(_0xa3967d instanceof Promise){const _0x260c70=yield _0xa3967d;_0x2cd04a[_0x1c9594(0x226)]=_0x260c70;}else _0x2cd04a['__parentNode']=_0xa3967d;}return _0x2cd04a[_0x1c9594(0x226)];});},'reset'(){return _0x3477c0(this,void 0x0,void 0x0,function*(){const _0x2cee2a=_0x13ab,_0x381779=this,_0x18c2e1=_0x381779;_0x18c2e1[_0x2cee2a(0x226)]=undefined,_0x381779[_0x2cee2a(0x206)][_0x2cee2a(0x27a)]();const _0x1ed958=yield this[_0x2cee2a(0x1fb)](),_0x5a9914=_0x2a4a63(_0x1ed958);_0x381779[_0x2cee2a(0x206)]['append'](_0x5a9914),_0x381779[_0x2cee2a(0x269)]=_0x1ed958;});},'verify'(){const _0x1d4f9c=_0x401c81,_0x4fc214=this,_0x3966f2=_0x1582a3(_0x4fc214);_0x515416(_0x3966f2,_0x4fc214['$input'],_0x4fc214[_0x1d4f9c(0x205)]);},'_create'(){const _0x1519c0=_0x401c81,_0x3aacbf=this;_0x3aacbf[_0x1519c0(0x272)]=this[_0x1519c0(0x283)],_0x3aacbf[_0x1519c0(0x1de)]=$(_0x1519c0(0x233)),_0x3aacbf[_0x1519c0(0x1de)][_0x1519c0(0x241)](_0x1519c0(0x225)),this[_0x1519c0(0x283)][_0x1519c0(0x24c)](_0x3aacbf[_0x1519c0(0x1de)]),_0x3aacbf['$inputGroup']=$('<div/>')[_0x1519c0(0x241)]('input-group'),_0x3aacbf['$combo'][_0x1519c0(0x1ec)](_0x3aacbf[_0x1519c0(0x251)]),_0x3aacbf[_0x1519c0(0x251)][_0x1519c0(0x1ec)](_0x3aacbf[_0x1519c0(0x272)]),_0x3aacbf['$toggleTreeBtn']=$(_0x1519c0(0x222)),_0x3aacbf[_0x1519c0(0x251)][_0x1519c0(0x1ec)](_0x3aacbf[_0x1519c0(0x26b)]),_0x3aacbf[_0x1519c0(0x26b)]['on'](_0x1519c0(0x21d),function(){return _0x3477c0(this,void 0x0,void 0x0,function*(){const _0x145918=_0x13ab;var _0x3dad05;let _0x22b070=![],_0x10fb7b;!_0x3aacbf[_0x145918(0x1dd)]['is'](_0x145918(0x298))&&(_0x3aacbf[_0x145918(0x205)][_0x145918(0x25e)](),_0x10fb7b=yield _0x3aacbf[_0x145918(0x1fb)](),(_0x10fb7b!==_0x3aacbf['currentParent']||((_0x3dad05=_0x3aacbf[_0x145918(0x269)])===null||_0x3dad05===void 0x0?void 0x0:_0x3dad05['nodeId'])!==_0x10fb7b[_0x145918(0x22c)])&&(yield _0x3aacbf[_0x145918(0x1ed)]()),_0x22b070=!![]),_0x3aacbf[_0x145918(0x1dd)][_0x145918(0x242)](),_0x22b070&&(yield _0x2275e1(_0x3aacbf,_0x10fb7b));});}),_0x3aacbf[_0x1519c0(0x1db)]=$(_0x1519c0(0x249)),_0x3aacbf[_0x1519c0(0x251)][_0x1519c0(0x1ec)](_0x3aacbf[_0x1519c0(0x1db)]),_0x3aacbf['$verifyBtn']['on']('click',()=>{const _0x112118=_0x1519c0;this[_0x112118(0x26d)]();});!_0x3aacbf['$input'][_0x1519c0(0x1c7)](_0x1519c0(0x1f8))&&_0x3aacbf[_0x1519c0(0x272)][_0x1519c0(0x1c7)](_0x1519c0(0x1f8),_0x1519c0(0x29f));_0x3aacbf[_0x1519c0(0x205)]=$(_0x1519c0(0x213)),_0x3aacbf[_0x1519c0(0x205)][_0x1519c0(0x25e)](),_0x3aacbf[_0x1519c0(0x1dd)]=$(_0x1519c0(0x233))[_0x1519c0(0x241)](_0x1519c0(0x21f))[_0x1519c0(0x25e)](),_0x3aacbf[_0x1519c0(0x1de)][_0x1519c0(0x1ec)](_0x3aacbf[_0x1519c0(0x205)]),_0x3aacbf[_0x1519c0(0x1de)]['append'](_0x3aacbf[_0x1519c0(0x1dd)]),_0x3aacbf[_0x1519c0(0x206)]=$(_0x1519c0(0x261))[_0x1519c0(0x295)](_0x3aacbf[_0x1519c0(0x1dd)]),this[_0x1519c0(0x1ed)]();const _0x22ed99=(_0x2d239f,_0xe4e1de)=>{const _0x3ba8b7=_0x1519c0,_0x46926f=0x14,_0x2063f7=0x14,_0x15f8a0=_0x2d239f[_0x3ba8b7(0x27e)](),_0x41e8ca=_0xe4e1de;if(_0x41e8ca[_0x3ba8b7(0x262)]>=_0x15f8a0['left']&&_0x41e8ca[_0x3ba8b7(0x262)]<=_0x15f8a0[_0x3ba8b7(0x29d)]+_0x46926f&&_0x41e8ca[_0x3ba8b7(0x202)]>=_0x15f8a0[_0x3ba8b7(0x216)]&&_0x41e8ca[_0x3ba8b7(0x202)]<=_0x15f8a0[_0x3ba8b7(0x216)]+_0x2063f7)return!![];return![];},_0x1f3462=_0x529bd3=>_0x3477c0(this,void 0x0,void 0x0,function*(){const _0x5b89c7=_0x1519c0;if(_0x529bd3[_0x5b89c7(0x24e)](_0x5b89c7(0x27c)))_0x341fe0(_0x3aacbf,_0x529bd3);else{if(_0x529bd3['hasClass'](_0x5b89c7(0x1df)))_0x529bd3['children']('ul')[_0x5b89c7(0x242)](),_0x529bd3[_0x5b89c7(0x1f5)](_0x5b89c7(0x294));else{if(_0x529bd3[_0x5b89c7(0x274)]('ul')[_0x5b89c7(0x274)]()['length']>0x0)_0x529bd3[_0x5b89c7(0x274)]('ul')['toggle'](),_0x529bd3[_0x5b89c7(0x1f5)](_0x5b89c7(0x294));else;}}});_0x3aacbf[_0x1519c0(0x206)]['on'](_0x1519c0(0x229),'li',function(_0x1922a4){const _0x4698f8=_0x1519c0;var _0x592581,_0x5151de;_0x1922a4[_0x4698f8(0x270)]();let _0x47a5cf=$(this);if(_0x22ed99(_0x47a5cf,_0x1922a4))_0x1f3462(_0x47a5cf);else{const _0x3baf8d=_0x47a5cf[_0x4698f8(0x201)](_0x4698f8(0x237)),_0x3e3fab=_0x47a5cf[_0x4698f8(0x201)](_0x4698f8(0x26a));if(_0x3aacbf[_0x4698f8(0x25d)][_0x4698f8(0x1fa)]&&!_0x3aacbf['options'][_0x4698f8(0x1fa)](_0x3e3fab))return;_0x3aacbf[_0x4698f8(0x272)][_0x4698f8(0x201)]('reference',_0x3e3fab);const _0xa107f=((_0x592581=_0x3e3fab[_0x4698f8(0x259)])===null||_0x592581===void 0x0?void 0x0:_0x592581['text'])||((_0x5151de=_0x3e3fab['browseName'])===null||_0x5151de===void 0x0?void 0x0:_0x5151de[_0x4698f8(0x2ab)])||_0x3e3fab[_0x4698f8(0x22c)][_0x4698f8(0x271)](),_0xf65e6e='['+_0xa107f+']('+_0x3baf8d+')';_0x3aacbf[_0x4698f8(0x272)]['val'](_0xf65e6e),_0x3aacbf['$input'][_0x4698f8(0x285)](_0x4698f8(0x1c9)),_0x3aacbf[_0x4698f8(0x1dd)][_0x4698f8(0x25e)]();}}),_0x3aacbf[_0x1519c0(0x206)]['on'](_0x1519c0(0x21d),'li',function(_0x238120){const _0x533a2d=_0x1519c0;_0x238120[_0x533a2d(0x270)]();let _0x57ef5d=$(this);_0x22ed99(_0x57ef5d,_0x238120)&&_0x1f3462(_0x57ef5d),_0x30e525(_0x3aacbf,_0x57ef5d);}),$(document)['on'](_0x1519c0(0x21d),function(_0x2c5b3c){const _0x293e24=_0x1519c0;!$(_0x2c5b3c[_0x293e24(0x25c)])[_0x293e24(0x2ac)](_0x3aacbf['$combo'])[_0x293e24(0x1e9)]&&_0x3aacbf[_0x293e24(0x1dd)][_0x293e24(0x25e)]();});}});},_0x5c0f61=()=>{const _0x409013=_0xf7ce3c,_0x330604=$(_0x409013(0x1d2)),_0x5cb6bf=_0x330604[_0x409013(0x1ea)](),_0x565d69=RED[_0x409013(0x1d7)][_0x409013(0x24f)](_0x5cb6bf);if(!_0x565d69)return undefined;const {endpoint:_0x687ae1,securityMode:_0x23472c,securityPolicy:_0x84f511,userIdentityType:_0x1bc1c8,credentials:_0x3b1267}=_0x565d69,_0x46ecc8={'endpoint':_0x687ae1,'securityMode':_0x23472c,'securityPolicy':_0x84f511,'userIdentityType':_0x1bc1c8,'credentials':_0x3b1267};return _0x46ecc8;},_0x4505c3=()=>{return{'endpointNode':_0x5e9b6d};},_0x5e9b6d=()=>{const _0x1923ec=_0xf7ce3c,_0x3f3fff=$('#node-input-endpoint'),_0x2a15ee=_0x3f3fff[_0x1923ec(0x1ea)](),_0x56cf7f=_0x5c0f61();if(!_0x56cf7f)return undefined;return{'id':_0x2a15ee};};RED['nodes']['registerType']('OpcUa-Client2-HistoryRead',{'category':_0xf7ce3c(0x299),'color':_0xf7ce3c(0x20e),'align':_0xf7ce3c(0x1cc),'icon':_0xf7ce3c(0x232),'paletteLabel':'read-history','defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':'OpcUa-Endpoint2'},'historyReadParam':{'value':{'type':_0xf7ce3c(0x224),'endTime':_0xf7ce3c(0x1dc),'startTime':_0xf7ce3c(0x1e4),'numValuesPerNode':0x64,'returnBounds':!![]},'required':!![],'validate':_0x32327b=>{if(_0x32327b==='')return![];return!![];}},'nodeId':{'value':'','required':![]},'outputType':{'value':'Value','required':!![]}},'outputs':0x2,'label'(){const _0x3b54f4=_0xf7ce3c;return this['name']||_0x3b54f4(0x29e);},'labelStyle'(){const _0x2117b4=_0xf7ce3c;return this[_0x2117b4(0x2ab)]?_0x2117b4(0x278):'';},'oneditprepare'(){const _0x63cc15=_0xf7ce3c,_0xc3957a=this;_0x124e37(),_0xc3957a[_0x63cc15(0x28b)]=0x1;const _0x2371a0=$(_0x63cc15(0x291));_0x2371a0[_0x63cc15(0x212)](Object['assign'](Object[_0x63cc15(0x2a9)]({},_0x4505c3()),{'isSelectable'(_0x41b367){const _0x17d486=_0x63cc15;return _0x41b367[_0x17d486(0x2a5)]===_0x17d486(0x1e5);}})),$('#select-history-type')['val'](_0xc3957a['historyReadParam'][_0x63cc15(0x200)]);switch(_0xc3957a['historyReadParam'][_0x63cc15(0x200)]){case _0x63cc15(0x224):$(_0x63cc15(0x2ad))[_0x63cc15(0x1ea)](_0xc3957a['historyReadParam'][_0x63cc15(0x1f1)]),$('#node-input-raw-endTime')['val'](_0xc3957a[_0x63cc15(0x258)][_0x63cc15(0x277)]),$('#node-input-raw-numValuesPerNode')[_0x63cc15(0x1ea)](_0xc3957a[_0x63cc15(0x258)][_0x63cc15(0x1e2)]),$(_0x63cc15(0x1d8))['prop'](_0x63cc15(0x1cb),_0xc3957a[_0x63cc15(0x258)]['returnBounds']);break;case _0x63cc15(0x1eb):$(_0x63cc15(0x23e))[_0x63cc15(0x1ea)](_0xc3957a[_0x63cc15(0x258)][_0x63cc15(0x1f1)]),$(_0x63cc15(0x280))[_0x63cc15(0x1ea)](_0xc3957a[_0x63cc15(0x258)][_0x63cc15(0x277)]),$('#node-input-modified-numValuesPerNode')[_0x63cc15(0x1ea)](_0xc3957a['historyReadParam'][_0x63cc15(0x1e2)]),$(_0x63cc15(0x25b))[_0x63cc15(0x296)]('checked',_0xc3957a['historyReadParam']['returnBounds']);break;case _0x63cc15(0x217):_0xc3957a[_0x63cc15(0x258)]['aggregateConfiguration']=_0xc3957a[_0x63cc15(0x258)][_0x63cc15(0x20f)]||{},$(_0x63cc15(0x245))[_0x63cc15(0x1ea)](_0xc3957a[_0x63cc15(0x258)]['startTime']),$(_0x63cc15(0x218))[_0x63cc15(0x1ea)](_0xc3957a[_0x63cc15(0x258)]['endTime']),$(_0x63cc15(0x256))[_0x63cc15(0x1ea)](_0xc3957a[_0x63cc15(0x258)][_0x63cc15(0x1fc)]),$(_0x63cc15(0x26f))['val'](_0xc3957a[_0x63cc15(0x258)][_0x63cc15(0x281)]),$(_0x63cc15(0x1e8))[_0x63cc15(0x296)]('checked',_0xc3957a['historyReadParam'][_0x63cc15(0x20f)][_0x63cc15(0x2aa)]),$(_0x63cc15(0x215))[_0x63cc15(0x296)](_0x63cc15(0x1cb),_0xc3957a[_0x63cc15(0x258)][_0x63cc15(0x20f)]['treatUncertainAsBad']),$('#node-input-processed-details-aggregateConfiguration-percentDataBad')[_0x63cc15(0x1ea)](_0xc3957a[_0x63cc15(0x258)][_0x63cc15(0x20f)]['percentDataBad']),$(_0x63cc15(0x247))[_0x63cc15(0x1ea)](_0xc3957a['historyReadParam'][_0x63cc15(0x20f)]['percentDataGood']),$(_0x63cc15(0x235))[_0x63cc15(0x296)](_0x63cc15(0x1cb),_0xc3957a[_0x63cc15(0x258)][_0x63cc15(0x20f)][_0x63cc15(0x24d)]);break;}{function _0x5e561d(){const _0x3656a5=_0x63cc15;$('#section-raw')[_0x3656a5(0x25e)](),$(_0x3656a5(0x250))[_0x3656a5(0x25e)](),$(_0x3656a5(0x22e))[_0x3656a5(0x25e)](),$(_0x3656a5(0x2a3))[_0x3656a5(0x25e)](),$(_0x3656a5(0x22f))['hide'](),$(_0x3656a5(0x21e))['hide']();}function _0x3ac578(){const _0x391243=_0x63cc15;_0x5e561d();var _0x378170=$(_0x391243(0x240))[_0x391243(0x1ea)]();$('#section-'+_0x378170)[_0x391243(0x22d)]();}$('#select-history-type')['on']('change',_0x3ac578),_0x3ac578();}},'oneditsave'(){const _0x262f10=_0xf7ce3c,_0xf8370f=_0x37663e=>_0x37663e[_0x262f10(0x1ea)]()==undefined?'':_0x37663e[_0x262f10(0x1ea)]()[_0x262f10(0x271)](),_0x1b63d2=_0x2ffe86=>_0x2ffe86[_0x262f10(0x1ea)]()==undefined?0x0:_0x2ffe86['val'](),_0x2c68cf=$('#select-history-type')[_0x262f10(0x1ea)]();switch(_0x2c68cf){case'raw':this['historyReadParam']={'type':'raw','startTime':_0xf8370f($(_0x262f10(0x2ad))),'endTime':_0xf8370f($('#node-input-raw-endTime')),'numValuesPerNode':_0x1b63d2($(_0x262f10(0x292))),'returnBounds':$(_0x262f10(0x1d8))['prop'](_0x262f10(0x1cb))};break;case'modified':this[_0x262f10(0x258)]={'type':_0x262f10(0x1eb),'startTime':_0xf8370f($('#node-input-modified-startTime')),'endTime':_0xf8370f($(_0x262f10(0x280))),'numValuesPerNode':_0x1b63d2($(_0x262f10(0x268))),'returnBounds':$('#node-input-modified-returnBounds')[_0x262f10(0x296)](_0x262f10(0x1cb))};break;case _0x262f10(0x217):this[_0x262f10(0x258)]={'type':_0x262f10(0x217),'startTime':_0xf8370f($(_0x262f10(0x245))),'endTime':_0xf8370f($(_0x262f10(0x218))),'processingInterval':_0x1b63d2($(_0x262f10(0x256))),'aggregateType':_0xf8370f($(_0x262f10(0x26f))),'aggregateConfiguration':{'useServerCapabilitiesDefaults':$('#node-input-processed-details-aggregateConfiguration-useServerCapabilitiesDefaults')[_0x262f10(0x296)](_0x262f10(0x1cb)),'treatUncertainAsBad':$(_0x262f10(0x215))[_0x262f10(0x296)](_0x262f10(0x1cb)),'percentDataBad':_0x1b63d2($('#node-input-processed-details-aggregateConfiguration-percentDataBad')),'percentDataGood':_0x1b63d2($(_0x262f10(0x247))),'useSlopedExtrapolation':$(_0x262f10(0x235))[_0x262f10(0x296)](_0x262f10(0x1cb))}};break;}}});}()));function _0x13ab(_0x37371b,_0x29ef1a){const _0x32a35c=_0x32a3();return _0x13ab=function(_0x13abb1,_0x4a383f){_0x13abb1=_0x13abb1-0x1c3;let _0x2f2839=_0x32a35c[_0x13abb1];return _0x2f2839;},_0x13ab(_0x37371b,_0x29ef1a);}function _0x32a3(){const _0xc6a3af=['toggleClass','DarkOrange','sterfive.nodeBrowser','placeholder','selected','isSelectable','resolveParentNode','processingInterval','log','</span><ul></ul></li>','li\x20>\x20.tree-text','type','data','pageY','SuppressedError','removeClass','$info','$tree','browseName','\x22}><span\x20class=\x22tree-text\x22\x20title=','relativePath','ns=0;i=61','next','height','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','#C0DEED','aggregateConfiguration','statusText','status','nodeBrowser','<div\x20class=\x22info-text\x22></div>','18146791YZuHLN','#node-input-processed-details-aggregateConfiguration-treatUncertainAsBad','top','processed-details','#node-input-processed-details-endTime','call','fa-folder','widget','13365bojBzr','click','#section-event','sterfive-dropdown','ns=0;i=47','apply','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','HasTypeDefinition','raw','sterfive-combo-box','__parentNode','rgba(61,\x2060,\x204,\x200.525)','ReferenceType','dblclick','suppressed','/opcua-endpoint2','nodeId','show','#section-processed-details','#section-annotation-data','48744GIXAcp','browseResult','../../icons/opcuanodeLogo.png','<div/>','find','#node-input-processed-details-aggregateConfiguration-useSlopedExtrapolation','throw','value','DataType','<li>error\x20','stringify','references','HasSubtype','ns=0;i=34','#node-input-modified-startTime','ObjectType','#select-history-type','addClass','toggle','fa-object-group','scrollTop','#node-input-processed-details-startTime','151718lZKqIx','#node-input-processed-details-aggregateConfiguration-percentDataGood','ns=0;i=45','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','Object','DisplayName','replaceWith','useSlopedExtrapolation','hasClass','node','#section-modified','$inputGroup','remove','text','position','nodeIds','#node-input-processed-details-processingInterval','SandyBrown','historyReadParam','displayName','fetched','#node-input-modified-returnBounds','target','options','hide','Both','Inverse','<ul\x20class=\x22sterfive-tree\x22></ul>','pageX','endpointNode','POST','endpoint','parentNode','!!failure!!','#node-input-modified-numValuesPerNode','currentParent','reference','$toggleTreeBtn','ns=0;i=85','verify','Forward','#node-input-processed-details-aggregateType','stopPropagation','toString','$input','Method','children','888dTSIya','14CUoJbl','endTime','node_label_italic','baseUrl','empty','Objects','expandable','168eovItz','offset','done','#node-input-modified-endTime','aggregateType','</li>','element','.spinner','trigger','li[key=\x22','referenceTypeId','grey','4670028QcKmHS','opc.tcp://opcuademo.sterfive.com:26543','inputs','1920qoiNkK','statusCode','application/json','isTypeRef','HasChild','#node-input-nodeId','#node-input-raw-numValuesPerNode','fa-list-alt','expandable\x20expanded','appendTo','prop','fa-text-width',':visible','opcua','Invalid','5tqEipu','/walk-backward','left','OPCUA\x20Client\x20HistoryRead','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','VariableType','HasComponent','90148veWdFQ','#section-at-time','4WhOFJb','nodeClass','View','NodeClass','ns=0;i=40','assign','useServerCapabilitiesDefaults','name','closest','#node-input-raw-startTime','match','HasProperty','Unspecified','failure','attr','IsForward','change','ns=0;i=46','checked','right','CadetBlue','elements','already\x20loading','/checkNodeId','animate','#node-input-endpoint','json','Organizes','TypeDefinition','err','nodes','#node-input-returnBounds','1729146Jdxuod','nodeAddressString','$verifyBtn','1m\x20ago','$dropdown','$combo','expanded','sterfive-info','filter','numValuesPerNode','/browse','11m\x20ago','Variable',':first',';\x22></i>\x20','#node-input-processed-details-aggregateConfiguration-useServerCapabilitiesDefaults','length','val','modified','append','reset','typeDefinition','fetching\x20failed\x20with\x20error','message','startTime','loading','function','error'];_0x32a3=function(){return _0xc6a3af;};return _0x32a3();}
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgzNDc3YzAiLCJfMHg1MTliZDAiLCJfMHgzY2ViN2MiLCJfMHg0Yzc3NWQiLCJfMHgzODIzZTgiLCJfMHgxOWZlMmUiLCJfMHgzNzgwN2EiLCJfMHg1NWQzODkiLCJQcm9taXNlIiwiXzB4M2NjZmZhIiwiXzB4MTc5NTFiIiwiXzB4NWFmOGRlIiwiXzB4MzcyOTBiIiwiXzB4MjE1OTBlIiwiXzB4NTY3N2UzIiwiXzB4Mzg2NDI1IiwiXzB4MTg5YWEwIiwiXzB4MmIyMTdhIiwiXzB4ZTU5Zjg1IiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4NGIxMzk2IiwiXzB4NWIyOTgyIiwiXzB4MTFkMThmIiwiXzB4MTliM2UxIiwiRXJyb3IiLCJfMHgxYTJiMGQiLCJfMHg1YjEwN2QiLCJfMHgyNjA2OGUiLCJfMHg5MzUwODEiLCJfMHg1ODllYjgiLCJfMHgxMTAzMTMiLCJfMHgzMzkxMjkiLCJfMHgyYWI4MzIiLCJfMHg1MDdkMDciLCJfMHgxMTkxNmUiLCJfMHgyMmZhZDgiLCJfMHgzNmEyM2EiLCJfMHg1NWZiMzYiLCJfMHgzNWU2OTAiLCJfMHhmYThmMzIiLCJfMHgyYjkxNDgiLCJfMHg0OWJiNjAiLCJfMHg0YmQ1ZDEiLCJfMHgzMDJjNjMiLCJfMHg1OWU5NjkiLCJfMHg0MDc5NjIiLCJfMHgyNGY2NDciLCJfMHgzZGExODgiLCJlbmRwb2ludE5vZGUiLCJfMHgzYTZjNjMiLCJlbmRwb2ludCIsIl8weDUxYmJhNCIsImJhc2VVcmwiLCJfMHg0NDFkN2EiLCJfMHg0OTJjZjEiLCJfMHhjYmI3OWYiLCJfMHgzNjYwODgiLCJfMHgxZmY2YTgiLCJfMHgyMmVjMzAiLCJPYmplY3QiLCJfMHg0N2MyMmEiLCJmZXRjaCIsIkpTT04iLCJjb25zb2xlIiwiXzB4MjkwNTA4IiwiXzB4MTUzNTAiLCJfMHg0NGRhM2IiLCJfMHgzNGYzODkiLCJfMHgyYjA5NzAiLCJfMHg0OWRlMWEiLCJfMHgzMDc5NTQiLCJfMHgxY2EwZDYiLCJfMHg0ZjAxMjciLCJfMHgyM2Q5NDAiLCJub2RlSWQiLCJfMHgyMTMzM2EiLCJyb290Tm9kZUlkIiwiXzB4MmQ5ZjVhIiwiaXNUeXBlIiwiXzB4MjgwNDZhIiwiXzB4NDJjZjZmIiwiXzB4MzZmMmMxIiwiXzB4MTBjYjkwIiwiXzB4NWMwYWMyIiwiXzB4NTE1NDE2IiwiXzB4MzhlODM0IiwiXzB4MjMyZTJjIiwiXzB4ZTljYTE2IiwiXzB4MzVjYzA5IiwiXzB4MTJjYTJhIiwiXzB4ZTZiZmVmIiwiXzB4NTk2MjJkIiwiXzB4MWU2MDM4IiwiXzB4MjZjNmYxIiwiXzB4MzNhZTFmIiwiXzB4NTRkMzM1IiwiXzB4NWU0OWUwIiwiXzB4M2UzNjg2IiwiXzB4M2I0ODUiLCJfMHhmMTY4NTMiLCJzZXRUaW1lb3V0IiwiXzB4Y2EzMGIiLCJfMHg1NDE1NTMiLCJfMHg1N2I0YzUiLCJfMHgxMjA1OTEiLCJfMHgxMTJiYjIiLCJfMHgzNjEzNTMiLCJfMHg0MmRkNjQiLCJfMHgzNTFlZDUiLCJfMHgyYTUwNTYiLCJfMHg1MDMyMTciLCJfMHgzOTVlMzMiLCJfMHgxZTZiYTIiLCJfMHgyY2VkZGYiLCJfMHgyYTRhNjMiLCJfMHg5Zjk0YjYiLCJfMHgyYTcwYjQiLCJfMHg1NTcwNjEiLCJfMHgxZDVlYjIiLCJfMHgyM2YxNDEiLCJfMHgyNzgwYzQiLCIkIiwiXzB4MWFjYzVmIiwiXzB4MjA2ZTk5IiwiaWNvbiIsIl8weDEzZDNlZiIsImNvbG9yIiwiXzB4NWRkYTRhIiwiXzB4NGE5MTlkIiwiXzB4M2RmMmI4IiwiXzB4NTAxYTkzIiwiXzB4NTE1NTlmIiwiXzB4MzBlYTQxIiwiXzB4MzBlNTI1IiwiXzB4MzUzMDkwIiwiXzB4NDU1ODdiIiwiXzB4NTIxODY5IiwiXzB4MzEyMzllIiwiXzB4NDQ1MTI2IiwiXzB4YWU1YzUiLCJfMHgyOTgyMTEiLCJfMHgzZWVmMzMiLCJfMHg3ZTRkMzgiLCJfMHgzNDFmZTAiLCJfMHgyMjRjMDciLCJfMHg4MWI3ZTAiLCJfMHg0YTZlMzAiLCJfMHgyNjEwZjMiLCJfMHgzMDQwYzkiLCJfMHg1YmNhNDEiLCJ1bmRlZmluZWQiLCJfMHg0MjhmNmMiLCJfMHgyMjc1ZTEiLCJfMHg1Yzk2NjgiLCJfMHgxODU3ZjIiLCJfMHgyYWVjMGYiLCJfMHg0NDdhYmQiLCJfMHg0N2YzMjAiLCJfMHgxNTgyYTMiLCJfMHg1MzQ5OWMiLCJfMHg1YTRhMjgiLCJfMHg1MTQwNTIiLCJfMHg5NWM3OWUiLCJfMHgyMDk0OWYiLCJfMHgzNGFlOGYiLCJyZWZlcmVuY2VzIiwiXzB4MmNmNjNhIiwiXzB4MmNmYWUxIiwiXzB4MTRhODU2IiwiXzB4MmFhZjQwIiwiXzB4YjJkODFlIiwiXzB4NGEyYWE2IiwiXzB4MmE3YzgzIiwiXzB4MzZlMmEwIiwiXzB4NWRlMDE1IiwiXzB4MjJhYzczIiwiXzB4YzAzZjg3IiwiXzB4MTI0ZTM3IiwiXzB4MmNkMDRhIiwiXzB4YTM5NjdkIiwiXzB4MjYwYzcwIiwiXzB4MzgxNzc5IiwiXzB4MThjMmUxIiwiXzB4MWVkOTU4IiwiXzB4NWE5OTE0IiwiXzB4NGZjMjE0IiwiXzB4Mzk2NmYyIiwiXzB4M2FhY2JmIiwiXzB4M2RhZDA1IiwiXzB4MjJiMDcwIiwiXzB4MTBmYjdiIiwiXzB4MjJlZDk5IiwiXzB4MmQyMzlmIiwiXzB4ZTRlMWRlIiwiXzB4NDY5MjZmIiwiXzB4MjA2M2Y3IiwiXzB4MTVmOGEwIiwiXzB4NDFlOGNhIiwiXzB4MWYzNDYyIiwiXzB4NTI5YmQzIiwiXzB4MTkyMmE0IiwiXzB4NTkyNTgxIiwiXzB4NTE1MWRlIiwiXzB4NDdhNWNmIiwiXzB4M2JhZjhkIiwiXzB4M2UzZmFiIiwiXzB4YTEwN2YiLCJfMHhmNjVlNmUiLCJfMHgyMzgxMjAiLCJfMHg1N2VmNWQiLCJkb2N1bWVudCIsIl8weDJjNWIzYyIsIl8weDVjMGY2MSIsIl8weDMzMDYwNCIsIl8weDVjYjZiZiIsIl8weDU2NWQ2OSIsIlJFRCIsIl8weDY4N2FlMSIsInNlY3VyaXR5TW9kZSIsIl8weDIzNDcyYyIsInNlY3VyaXR5UG9saWN5IiwiXzB4ODRmNTExIiwidXNlcklkZW50aXR5VHlwZSIsIl8weDFiYzFjOCIsImNyZWRlbnRpYWxzIiwiXzB4M2IxMjY3IiwiXzB4NDZlY2M4IiwiXzB4NDUwNWMzIiwiXzB4NWU5YjZkIiwiXzB4M2YzZmZmIiwiXzB4MmExNWVlIiwiXzB4NTZjZjdmIiwiXzB4MzIzMjdiIiwiXzB4YzM5NTdhIiwiXzB4MjM3MWEwIiwiXzB4NDFiMzY3IiwiXzB4NWU1NjFkIiwiXzB4M2FjNTc4IiwiXzB4Mzc4MTcwIiwiXzB4ZjgzNzBmIiwiXzB4Mzc2NjNlIiwiXzB4MWI2M2QyIiwiXzB4MmZmZTg2IiwiXzB4MmM2OGNmIl0sIm1hcHBpbmdzIjoiK3FCQUFBLENBQUMsVSxDQUNHLGEsd0JBbUJBLFNBQVNBLFNBQVQsQ0FBbUJDLFNBQW5CLENBQTRCQyxTQUE1QixDQUF3Q0MsU0FBeEMsQ0FBMkNDLFNBQTNDLEMsQ0FDSSxTQUFTQyxTQUFULENBQWVDLFNBQWYsQyxRQUErQkEsU0FBQSxZQUFpQkgsU0FBakIsQ0FBcUJHLFNBQXJCLENBQTZCLElBQUlILFNBQUosQ0FBTSxTQUFVSSxTQUFWLEMsQ0FBcUJBLFNBQUEsQ0FBUUQsU0FBUixDLEVBQTNCLEMsU0FDckQsR0FBSyxDQUFBSCxTQUFBLEVBQU0sQ0FBQUEsU0FBQSxDQUFJSyxPQUFKLENBQU4sQ0FBTCxDQUF5QixTQUFVQyxTQUFWLENBQW1CQyxTQUFuQixDLHlCQUM1QixTQUFTQyxTQUFULENBQW1CQyxTQUFuQixDLENBQTRCLEcsQ0FBTUMsU0FBQSxDQUFLVCxTQUFBLEMsTUFBQSxFQUFlUSxTQUFmLENBQUwsQyxFQUErQixNQUFPRSxTQUFQLEMsQ0FBWUosU0FBQSxDQUFPSSxTQUFQLEMsR0FDN0UsU0FBU0MsU0FBVCxDQUFrQkMsU0FBbEIsQyx5QkFBMkIsRyxDQUFNSCxTQUFBLENBQUtULFNBQUEsQyxnQkFBQSxFQUFtQlksU0FBbkIsQ0FBTCxDLEVBQW1DLE1BQU9DLFNBQVAsQyxDQUFZUCxTQUFBLENBQU9PLFNBQVAsQyxHQUNoRixTQUFTSixTQUFULENBQWNLLFNBQWQsQyx5QkFBd0JBLFNBQUEsQyxnQkFBQSxFQUFjVCxTQUFBLENBQVFTLFNBQUEsQyxnQkFBQSxDQUFSLENBQWQsQ0FBc0NiLFNBQUEsQ0FBTWEsU0FBQSxDLGdCQUFBLENBQU4sRSxNQUFBLEVBQXlCUCxTQUF6QixDQUFvQ0ksU0FBcEMsQyxFQUM5REYsU0FBQSxDQUFNLENBQUFULFNBQUEsQ0FBWUEsU0FBQSxDLGdCQUFBLEVBQWdCSCxTQUFoQixDQUF5QkMsU0FBQSxFQUFjLEVBQXZDLENBQVosQ0FBRCxDLGdCQUFBLEdBQUwsQyxFQUpHLEMsRUFRWCxPQUFPaUIsZUFBUCxHLGdCQUFBLENBQXdDQSxlQUF4QyxDQUEwRCxTQUFVQyxTQUFWLENBQWlCQyxTQUFqQixDQUE2QkMsU0FBN0IsQywyQkFDdEQsSUFBSUMsU0FBQSxDQUFJLElBQUlDLEtBQUosQ0FBVUYsU0FBVixDQUFSLEMsT0FDT0MsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBNEJBLFNBQUEsQyxnQkFBQSxFQUFVSCxTQUF0QyxDQUE2Q0csU0FBQSxDLGdCQUFBLEVBQWVGLFNBQTVELENBQXdFRSxTLEVBRm5GLENBS0EsTUFBTUUsU0FBQSxDLFdBQU4sQ0FDTUMsU0FBQSxDLGdCQUROLENBRU1DLFNBQUEsQyxnQkFGTixDQUdNQyxTQUFBLEMsZ0JBSE4sQ0FJTUMsU0FBQSxDLGdCQUpOLENBS01DLFNBQUEsQyxnQkFMTixDQU1NQyxTQUFBLEMsZ0JBTk4sQ0FRQSxJQUFJQyxTQUFKLENBQ0EsQ0FBQyxTQUFVQyxTQUFWLEMsMkJBQ0dBLFNBQUEsQ0FBZ0JBLFNBQUEsQyxnQkFBQSxFLEdBQWhCLEUsVUFDQUEsU0FBQSxDQUFnQkEsU0FBQSxDLGdCQUFBLEUsR0FBaEIsRSxpQkFDQUEsU0FBQSxDQUFnQkEsU0FBQSxDLGdCQUFBLEUsR0FBaEIsRSxpQkFDQUEsU0FBQSxDQUFnQkEsU0FBQSxDLFNBQUEsRSxHQUFoQixFLGtCQUpKLENBS0dELFNBQUEsRUFBb0IsQ0FBQUEsU0FBQSxDQUFrQixFQUFsQixDQUx2QixHQU1BLElBQUlFLFNBQUosQ0FDQSxDQUFDLFNBQVVDLFNBQVYsQywyQkFDR0EsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxHQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsR0FBVixFLFNBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsR0FBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLEdBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxHQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsSUFBVixFLGVBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsSUFBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLElBQVYsRSxXQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLElBQVYsRSxRQVRKLENBVUdELFNBQUEsRUFBYyxDQUFBQSxTQUFBLENBQVksRUFBWixDQVZqQixHQVdBLElBQUlFLFNBQUosQ0FDQSxDQUFDLFNBQVVDLFNBQVYsQywyQkFDR0EsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxHQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsR0FBZCxFLGlCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxRQUFBLEUsR0FBZCxFLFNBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsR0FBZCxFLGlCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLElBQWQsRSxlQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLElBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxJQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLE1BQUEsRSxJQUFkLEUsa0JBUkosQ0FTR0QsU0FBQSxFQUFrQixDQUFBQSxTQUFBLENBQWdCLEVBQWhCLENBVHJCLEdBVUEsSUFBSUUsU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDJCQUNHQSxTQUFBLENBQVdBLFNBQUEsQyxnQkFBQSxFLEdBQVgsRSxpQkFDQUEsU0FBQSxDQUFXQSxTQUFBLEMsZ0JBQUEsRSxHQUFYLEUsaUJBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLGdCQUFBLEUsR0FBWCxFLGlCQUNBQSxTQUFBLENBQVdBLFNBQUEsQyxZQUFBLEUsR0FBWCxFLGFBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLGdCQUFBLEUsSUFBWCxFLGNBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLGdCQUFBLEUsSUFBWCxFLGtCQU5KLENBT0dELFNBQUEsRUFBZSxDQUFBQSxTQUFBLENBQWEsRUFBYixDQVBsQixHQVNBLFNBQVNFLFNBQVQsQ0FBdUJDLFNBQXZCLEMsMkJBQ0ksT0FBUUEsU0FBUixFQUNJLEssZ0JBQUEsQ0FDSSxPQUFPaEIsU0FBUCxDQUNKLEssZ0JBQUEsQ0FDSSxPQUFPRyxTQUFQLENBQ0osSyxnQkFBQSxDQUNJLE9BQU9ELFNBQVAsQ0FDSixJLFVBQUEsQ0FDSSxPQUFPRSxTQUFQLENBQ0osSyxnQkFBQSxDQUNJLE9BQU9DLFNBQVAsQ0FDSixLLGdCQUFBLENBQ0ksT0FBT0MsU0FBUCxDQVpSLEMsQ0FnQkosTUFBTVcsU0FBQSxDQUFXQyxTQUFELEUsMkJBQ1osT0FBUUEsU0FBQSxDLGdCQUFBLENBQVIsRUFDSSxLLGdCQUFBLEMsR0FDUUEsU0FBQSxDLGlCQUFBLElBQThCbEIsUyxLQUM5QmtCLFNBQUEsQyxnQkFBQSxJQUE2QmpCLFNBQTdCLEVBQTJDaUIsU0FBQSxDLGdCQUFBLEksYUFDcEMsQyxNQUFFLEMsZ0JBQUYsQyxPQUFxQixDLGdCQUFyQixDLENBRVgsTUFBTyxDLE1BQUUsQyxnQkFBRixDLE9BQTJCLEMsVUFBM0IsQ0FBUCxDQUNKLEssZ0JBQUEsQyxHQUNRQSxTQUFBLEMsaUJBQUEsSUFBOEJoQixTLE9BQ3ZCLEMsTUFBRSxDLGdCQUFGLEMsT0FBdUIsQyxXQUF2QixDLGFBRUZnQixTQUFBLEMsZ0JBQUEsSUFBOEJmLFMsQ0FDNUIsQyxNQUFFLEMsZ0JBQUYsQyxPQUF1QixDLFlBQXZCLEMsQ0FHQSxDLE1BQUUsQyxnQkFBRixDLE9BQXVCLEMsZ0JBQXZCLEMsQ0FFZixLLGdCQUFBLENBQ0ksTUFBTyxDLE1BQUUsQyxRQUFGLEMsT0FBa0IsQyxnQkFBbEIsQ0FBUCxDQUNKLEssZ0JBQUEsQ0FDSSxNQUFPLEMsTUFBRSxDLGdCQUFGLEMsT0FBMkIsQyxnQkFBM0IsQ0FBUCxDQUNKLEksY0FBQSxDQUNJLE1BQU8sQyxNQUFFLEMsWUFBRixDLE9BQXNCLEMsWUFBdEIsQ0FBUCxDQUNKLEssZ0JBQUEsQ0FDSSxNQUFPLEMsTUFBRSxDLGdCQUFGLEMsT0FBeUIsQyxnQkFBekIsQ0FBUCxDQXhCUixDLE1BMEJPLEMsTUFBRSxDLGFBQUYsQyxPQUF1QixDLGdCQUF2QixDLEVBM0JYLENBOEJNZ0IsU0FBQSxDQUFTLENBQUNDLFNBQUQsQ0FBS0MsU0FBTCxDQUFlQyxTQUFmLEdBQThCL0MsU0FBQSxDQUFVLEssR0FBVixDQUFrQixDQUFDNkMsU0FBRCxDQUFLQyxTQUFMLENBQWVDLFNBQWYsQ0FBbEIsQ0FBOEMsSyxHQUE5QyxDQUFzRCxVQUFXLENBQUVDLFlBQUEsQ0FBQUMsU0FBRixDQUFnQkMsUUFBQSxDQUFBQyxTQUFoQixDQUEwQkMsT0FBQSxDQUFBQyxTQUExQixDQUFYLENBQWdEQyxTQUFoRCxDQUF3REMsU0FBeEQsQywyQkFDekZDLFNBQUEsQ0FBVUgsUyxrQkFDVkksU0FBQSxDQUFTRCxTLGtCQUNURSxTQUFBLENBQW9CQyxNQUFBLEMsUUFBQSxFQUFjQSxNQUFBLEMsZ0JBQUEsRUFBYyxFQUFkLENBQWtCSixTQUFsQixDQUFkLENBQTJDLEMsUUFBRSxDQUFBRCxTQUFGLEMsWUFBVSxDLElBQVYsQ0FBM0MsQyxDQUNwQk0sU0FBQSxDQUFPLE1BQU1DLEtBQUEsQ0FBTUosU0FBTixDQUFXLEMsUUFDMUIsQyxnQkFEMEIsQyxNQUUxQixDQUFNSyxJQUFBLEMsZ0JBQUEsRUFBZSxDLGNBQ2pCLENBQUFiLFNBRGlCLEMsVUFFakIsQ0FBQUUsU0FGaUIsQyxtQkFHakIsQ0FBQU8sU0FIaUIsQ0FBZixDQUZvQixDLFNBTzFCLENBQVMsQyxjQUFFLEMsZ0JBQUYsQ0FQaUIsQ0FBWCxDLElBU2ZFLFNBQUEsQyxRQUFBLEksWUFDQUcsT0FBQSxDLEtBQUEsRSxnQkFBQSxDQUEwQ0gsU0FBQSxDLGdCQUFBLENBQTFDLENBQXVEQSxTQUFBLEMsZ0JBQUEsQ0FBdkQsQyxDQUNPLEMsWUFBRSxDQUFZLEVBQWQsQyxDQUdYLE1BQU1JLFNBQUEsQ0FBVyxNQUFNSixTQUFBLEMsZ0JBQUEsR0FBdkIsQ0FDTUssUUFBQSxDQUFhRCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHQUFvQyxFQUR2RCxDLE1BRU8sQyxZQUFFLENBQUFDLFFBQUYsQyxFQXBCa0MsQ0E5QjdDLENBcURNQyxTQUFBLENBQVksQyxpQkFDZCxDQUFpQjFCLFNBQUEsQyxnQkFBQSxDQURILEMsaUJBRWQsQyxJQUZjLEMsaUJBR2QsQ0FBaUJSLFNBQUEsQyxnQkFBQSxDQUhILEMsZUFJZCxDQUFlRSxTQUFBLEMsZ0JBQUEsRUFBcUJBLFNBQUEsQyxRQUFBLENBQXJCLENBQXdDQSxTQUFBLEMsZ0JBQUEsQ0FKekMsQyxZQVVkLEMsSUFWYyxDQXJEbEIsQ0FpRU1pQyxTQUFBLENBQVksQyxpQkFDZCxDQUFpQjNCLFNBQUEsQyxnQkFBQSxDQURILEMsaUJBRWQsQyxJQUZjLEMsaUJBR2QsQ0FBaUJSLFNBQUEsQyxnQkFBQSxDQUhILEMsZUFJZCxDQUFlRSxTQUFBLEMsZ0JBQUEsRUFBcUJBLFNBQUEsQyxRQUFBLENBQXJCLENBQXdDQSxTQUFBLEMsZ0JBQUEsQ0FKekMsQyxZQVVkLEMsSUFWYyxDQWpFbEIsQ0E2RU1rQyxTQUFBLENBQWUsQ0FBQ0MsU0FBRCxDQUFLQyxTQUFMLEdBQVl0RSxTQUFBLENBQVUsSyxHQUFWLENBQWtCLENBQUNxRSxTQUFELENBQUtDLFNBQUwsQ0FBbEIsQ0FBNEIsSyxHQUE1QixDQUFvQyxVQUFXLENBQUV0QixZQUFBLENBQUF1QixTQUFGLENBQWdCckIsUUFBQSxDQUFBc0IsU0FBaEIsQ0FBMEJwQixPQUFBLENBQUFxQixTQUExQixDQUFYLENBQWdELENBQUVDLE1BQUEsQ0FBQUMsU0FBRixDQUFVQyxVQUFBLENBQUFDLFNBQVYsQ0FBc0JDLE1BQUEsQ0FBQUMsU0FBdEIsQ0FBaEQsQywyQkFDM0RDLFNBQUEsQ0FBVVAsUyxrQkFDVlEsU0FBQSxDQUFTRCxTLGtCQUNURSxTQUFBLENBQU8sTUFBTXJCLEtBQUEsQ0FBTW9CLFNBQU4sQ0FBVyxDLFFBQzFCLEMsTUFEMEIsQyxNQUUxQixDQUFNbkIsSUFBQSxDLFdBQUEsRUFBZSxDLGNBQ2pCLENBQUFTLFNBRGlCLEMsVUFFakIsQ0FBQUMsU0FGaUIsQyxRQUdqQixDQUFBRyxTQUhpQixDLFlBSWpCLENBQUFFLFNBSmlCLEMsUUFLakIsQ0FBQUUsU0FMaUIsQ0FBZixDQUZvQixDLFNBUzFCLENBQVMsQyxjQUFFLEMsZ0JBQUYsQ0FUaUIsQ0FBWCxDLElBV2ZHLFNBQUEsQyxnQkFBQSxJLFlBQ08sSSxDQUVYLE1BQU1DLFNBQUEsQ0FBUSxNQUFNRCxTQUFBLEMsZ0JBQUEsR0FBcEIsQyxPQUNPQyxTQUFBLEMsWUFBQSxDLEVBbEJzQixDQTdFakMsQ0FpR01DLFNBQUEsQ0FBaUIsQ0FBQ0MsU0FBRCxDQUFLQyxTQUFMLENBQXNCQyxTQUF0QixHQUFrQ3ZGLFNBQUEsQ0FBVSxLLEdBQVYsQ0FBa0IsQ0FBQ3FGLFNBQUQsQ0FBS0MsU0FBTCxDQUFzQkMsU0FBdEIsQ0FBbEIsQ0FBa0QsSyxHQUFsRCxDQUEwRCxVQUFXLENBQUV2QyxZQUFBLENBQUF3QyxTQUFGLENBQWdCdEMsUUFBQSxDQUFBdUMsU0FBaEIsQ0FBMEJyQyxPQUFBLENBQUFzQyxTQUExQixDQUFYLENBQWdEQyxTQUFoRCxDQUErREMsU0FBL0QsQywyQkFDekdDLFNBQUEsQ0FBVUgsUyxrQkFDVkksU0FBQSxDQUFTRCxTLGtCQUNURSxTQUFBLENBQVNKLFNBQUEsQyxLQUFBLEcsQ0FDVEssU0FBQSxDQUFPLE1BQU1uQyxLQUFBLENBQU1pQyxTQUFOLENBQVcsQyxRQUMxQixDLGdCQUQwQixDLE1BRTFCLENBQU1oQyxJQUFBLEMsZ0JBQUEsRUFBZSxDLGNBQ2pCLENBQUEwQixTQURpQixDLFVBRWpCLENBQUFDLFNBRmlCLEMsUUFHakIsQ0FBQU0sU0FIaUIsQ0FBZixDQUZvQixDLFNBTzFCLENBQVMsQyxjQUFFLEMsZ0JBQUYsQ0FQaUIsQ0FBWCxDLENBU2JFLFNBQUEsQ0FBa0IsQ0FBQ0MsUUFBRCxDQUFPQyxTQUFQLEcsMkJBQ3BCUCxTQUFBLEMsTUFBQSxFQUFXTSxRQUFYLEUsZ0JBQUEsRSxnQkFBQSxFLFVBQUEsRUFBb0RDLFNBQXBELEMsQ0FDQVAsU0FBQSxDLGdCQUFBLEcsQ0FDQVEsVUFBQSxDQUFXLEksMkJBQ1BSLFNBQUEsQyxnQkFBQSxFQUFrQk8sU0FBbEIsQyxDQUNBUCxTQUFBLEMsZ0JBQUEsRyxFQUZKLEMsS0FBQSxDLEdBS0VTLFFBQUEsQ0FBUSxNQUFNTCxTQUFBLEMsZ0JBQUEsRyxDQUNoQkEsU0FBQSxDLGdCQUFBLEksS0FFQUMsU0FBQSxDLGdCQUFnQixDQUFnQkYsU0FBaEMsQyxnQkFBQSxDLENBR0lNLFFBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQXNCLE1BQXRCLEMsRUFFQVYsU0FBQSxDLEtBQUEsRUFBa0JVLFFBQUEsQyxnQkFBQSxDQUFsQixDLENBQ0FWLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEMsQ0FDQU0sU0FBQSxDLE1BQUEsQyxJQUFBLEMsR0FHQU4sU0FBQSxDLGdCQUFBLEUsR0FBcUJJLFNBQXJCLEMsQ0FDQUUsU0FBQSxDQUFtQkksUUFBQSxDLGdCQUFBLEMsUUFBbUJMLFNBQUEsQyxnQkFBQSxDQUF0QyxDLGdCQUFBLEMsR0FuQzZDLENBakd6RCxDQXdJQSxTQUFTTSxTQUFULENBQXVCQyxTQUF2QixDQUE4QkMsU0FBOUIsQyxRQUNXeEcsU0FBQSxDQUFVLElBQVYsQ0FBZ0IsSyxHQUFoQixDQUF3QixLLEdBQXhCLENBQWdDLFcseUJBQzdCeUcsU0FBQSxDQUFTRixTQUFBLEMsTUFBQSxFLE9BQUEsQyxDQUNURyxTQUFBLENBQWdCLE1BQU05RCxTQUFBLENBQU80RCxTQUFQLENBQWFDLFNBQWIsQ0FBcUJ2QyxTQUFyQixDLENBQ3RCeUMsU0FBQSxDQUFnQixNQUFNL0QsU0FBQSxDQUFPNEQsU0FBUCxDQUFhQyxTQUFiLENBQXFCdEMsU0FBckIsQyxPQUNyQixDLFlBQ0gsQ0FBWSxDQUFDLEdBQUd1QyxTQUFBLEMsZ0JBQUEsQ0FBSixDQUE4QixHQUFHQyxTQUFBLEMsZ0JBQUEsQ0FBakMsQ0FEVCxDLEVBSkosQyxFQVNYLE1BQU1DLFNBQUEsQ0FBYSxDLGlCQUNmLENBQWlCcEUsU0FBQSxDLGdCQUFBLENBREYsQyxpQkFFZixDLElBRmUsQyxpQkFHZixDQUFpQlIsU0FBQSxDLFNBQUEsQ0FIRixDLGVBSWYsQ0FBZUUsU0FBQSxDLGdCQUFBLEVBQTBCQSxTQUFBLEMsWUFBQSxDQUExQixDQUFpREEsU0FBQSxDLFVBQUEsQ0FBakQsQ0FBc0VBLFNBQUEsQyxnQkFBQSxDQUp0RSxDLFlBS2YsQyxJQUxlLENBQW5CLENBT0EsU0FBUzJFLFNBQVQsQ0FBdUJDLFNBQXZCLENBQThCQyxTQUE5QixDLFFBQ1cvRyxTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVyx5QkFDN0JnSCxTQUFBLENBQVNGLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEMsQ0FDVEcsU0FBQSxDQUFnQixNQUFNckUsU0FBQSxDQUFPbUUsU0FBUCxDQUFhQyxTQUFiLENBQXFCSixTQUFyQixDLFFBQ3JCSyxTLEVBSEosQyxFQU1YLE1BQU1DLFNBQUEsQ0FBZUMsU0FBRCxFLDJCQUNoQixJQUFJQyxTQUFKLENBQVFDLFNBQVIsQ0FBWUMsU0FBWixDQUFnQkMsU0FBaEIsQyxHQUNJLENBQUNKLFNBQUQsRUFBYyxDQUFDQSxTQUFBLEMsUUFBQSxDLEVBQ2YsTUFBTUssU0FBQSxDQUFXQyxDQUFBLEMsZ0JBQUEsQ0FBakIsQyxPQUNPRCxTLEVBRVgsTUFBTUUsU0FBQSxDQUFJUCxTQUFBLEMsUUFBQSxFLGdCQUFBLEdBQVYsQ0FDTVEsU0FBQSxDQUFLLENBQUMsQ0FBQVAsU0FBQSxDQUFLRCxTQUFBLEMsZ0JBQUEsQ0FBTCxDQUFELEdBQWlDLElBQWpDLEVBQXlDQyxTQUFBLEdBQU8sSyxHQUFoRCxDQUF5RCxLLEdBQXpELENBQWtFQSxTQUFBLEMsZ0JBQUEsQ0FBbEUsQ0FBRCxFQUFnRixDQUFDLENBQUFDLFNBQUEsQ0FBS0YsU0FBQSxDLFlBQUEsQ0FBTCxDQUFELEdBQWdDLElBQWhDLEVBQXdDRSxTQUFBLEdBQU8sSyxHQUEvQyxDQUF3RCxLLEdBQXhELENBQWlFQSxTQUFBLEMsZ0JBQUEsQ0FBakUsQ0FBaEYsRUFBNkpGLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEdBRHZLLENBRU0sQ0FBRVMsSUFBQSxDQUFBQyxTQUFGLENBQVFDLEtBQUEsQ0FBQUMsU0FBUixFQUFrQnJGLFNBQUEsQ0FBUXlFLFNBQVIsQ0FGeEIsQ0FHTWEsU0FBQSxDLElBQVliLFNBQUEsQyxRQUFBLEUsZ0JBQUEsRyxTQUFnQyxDQUFDLENBQUMsQ0FBQUcsU0FBQSxDQUFLSCxTQUFBLEMsZ0JBQUEsQ0FBTCxDQUFELEdBQWdDLElBQWhDLEVBQXdDRyxTQUFBLEdBQU8sSyxHQUEvQyxDQUF3RCxLLEdBQXhELENBQWlFQSxTQUFBLEMsZ0JBQUEsQ0FBakUsQ0FBRCxFQUErRSxDQUFDLENBQUFDLFNBQUEsQ0FBS0osU0FBQSxDLGdCQUFBLENBQUwsQ0FBRCxHQUFpQyxJQUFqQyxFQUF5Q0ksU0FBQSxHQUFPLEssR0FBaEQsQ0FBeUQsSyxHQUF6RCxDQUFrRUEsU0FBQSxDLGdCQUFBLENBQWxFLENBQS9FLEUsRUFBQSxDQUhsRCxDQUlNVSxTQUFBLENBQVdSLENBQUEsQyxrQkFBY04sU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRyxrQkFBK0RhLFMsMkJBQXNCSCxTLDRCQUFzQkUsUyxrQkFBZ0JKLFMsaUJBQXpJLENBSmpCLEMsT0FLQU0sU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQyxDQUNBQSxTQUFBLEMsTUFBQSxFLGdCQUFBLENBQXVCUCxTQUF2QixDLENBQ0FPLFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBQTJCZCxTQUEzQixDLENBQ09jLFMsRUFkWCxDQWdCTUMsU0FBQSxDQUFjLENBQUNDLFNBQUQsQ0FBU0MsU0FBVCxHLGtDQUNUQSxTQUFBLEMsTUFBQSxFLGlCQUFzQkQsUyxRQUF0QixDLEVBakJYLENBbUJNRSxTQUFBLENBQWUsQ0FBQ0MsU0FBRCxDQUFPQyxTQUFQLEcsMkJBQ2pCRCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxDLENBRUFDLFNBQUEsQyxnQkFBQSxFLGtCQUFBLEUsZ0JBQUEsRSxnQkFBQSxDLEVBdEJKLENBd0JNQyxTQUFBLENBQWEsQ0FBQ0MsU0FBRCxDQUFPQyxTQUFQLENBQW1CQyxRQUFuQixHQUE2QjNJLFNBQUEsQ0FBVSxLLEdBQVYsQ0FBa0IsSyxHQUFsQixDQUEwQixLLEdBQTFCLENBQWtDLFcsMkJBRTlFLElBQUk0SSxTQUFBLENBQVdELFFBQUEsQyxnQkFBQSxFLGdCQUFBLENBQWYsQ0FDQUQsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsR0FBb0MsRUFBcEMsQ0FDQSxNQUFNRyxTQUFBLENBQVVILFNBQUEsQyxnQkFBQSxHQUFzQixFQUF0QyxDLEdBQ0lHLFNBQUEsQyxnQkFBQSxJLElBQ0EsT0FFSixVQUFXQyxTQUFYLElBQWdCRCxTQUFoQixDLENBQ1FELFNBQUEsQyxnQkFBQSxFLGdCQUFBLEMsRUFFQSxPQUFNRyxTQUFBLENBQVVOLFNBQVYsQ0FBZ0JHLFNBQWhCLENBQU4sQyxDQUVKLE1BQU1JLFNBQUEsQ0FBV2QsU0FBQSxDQUFZWSxTQUFaLENBQWVGLFNBQWYsQ0FBakIsQyxHQUNJSSxTQUFBLEMsZ0JBQUEsSSxJQUNBLE9BRUpKLFNBQUEsQ0FBV0ksUyxFQUVmWCxTQUFBLENBQWFJLFNBQWIsQ0FBbUJHLFNBQW5CLEMsQ0FDQUssU0FBQSxDQUFXUixTQUFBLEMsZ0JBQUEsQ0FBWCxDQUEyQkcsU0FBM0IsQyxFQXBCNEMsQ0F4QmhELENBOENBLFNBQVNLLFNBQVQsQ0FBb0JDLFNBQXBCLENBQWdDQyxTQUFoQyxDLDJCQUVVQyxTQUFBLENBQVFELFNBQUEsQyxnQkFBQSxJLGdCQUFBLEMsQ0FFUkUsU0FBQSxDQUFxQkgsU0FBQSxDLGdCQUFBLEcsSUFDdkJHLFNBQUEsRUFBc0JDLFMsQ0FDdEIsT0FJSixNQUFNQyxTQUFBLENBQVdGLFNBQUEsQ0FBcUJELFNBQXJCLENBQTZCRixTQUFBLEMsZ0JBQUEsSSxHQUE3QixDQUF1REMsU0FBQSxDLGdCQUFBLEksR0FBeEUsQ0FFQUQsU0FBQSxDLGdCQUFBLEVBQW1CLEMsV0FDZixDQUFXSyxTQURJLENBQW5CLEMsS0FBQSxDLEVBSUosTUFBTUMsU0FBQSxDQUFpQixDQUFDQyxTQUFELENBQU9DLFNBQVAsR0FBc0IxSixTQUFBLENBQVUsSyxHQUFWLENBQWtCLEssR0FBbEIsQ0FBMEIsSyxHQUExQixDQUFrQyxXLDJCQUNyRTJKLFNBQUEsQ0FBU0YsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRyxDQUNURyxTQUFBLENBQVUsQyxRQUNaLENBQUFELFNBRFksQyxZQUVaLENBQVlELFNBQUEsQyxnQkFBQSxDQUZBLEMsUUFHWixDQUFRRCxTQUFBLEMsU0FBQSxFLGdCQUFBLEcsR0FISSxDLENBS1ZJLFNBQUEsQ0FBT0MsU0FBQSxDQUFlTCxTQUFmLEMsQ0FDUE0sU0FBQSxDQUFhLE1BQU0zRixTQUFBLENBQWF5RixTQUFiLENBQW1CRCxTQUFuQixDLElBQ3JCLENBQUNHLFMsQ0FDRCxPQUVKLE1BQU12QixTQUFBLENBQVdpQixTQUFYLENBQWlCTSxTQUFqQixDQUE2Qk4sU0FBQSxDLGdCQUFBLENBQTdCLEMsRUFabUMsQ0FBN0MsQ0FjQSxTQUFTTyxTQUFULENBQTJCQyxTQUEzQixDQUFpQ0MsU0FBakMsQ0FBd0NDLFNBQXhDLENBQW1EQyxTQUFuRCxDLFFBQ1dwSyxTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVyw0QkFDL0JrSyxTQUFBLEMsZ0JBQUEsRSxTQUFBLEMsRUFDQW5HLE9BQUEsQyxnQkFBQSxFLG9CQUFBLEVBQ0EsTyxJQUVBbUcsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQyxFQUNBbkcsT0FBQSxDLEtBQUEsRSxnQkFBQSxFQUNBLE8sQ0FFSm1HLFNBQUEsQyxVQUFBLEUsZ0JBQUEsQyxDQUNBQSxTQUFBLEMsUUFBQSxFLHNDQUFBLENBREEsQ0FFQSxHLENBQ0lBLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxnQkFBQSxJQUNBLE1BQU0sQ0FBRUcsVUFBQSxDQUFBQyxTQUFGLEVBQWlCLE1BQU1ILFNBQUEsQ0FBVUQsU0FBVixDQUFpQkUsU0FBakIsQ0FBN0IsQ0FDQSxVQUFXRyxTQUFYLElBQXdCRCxTQUF4QixDLElBQ1FMLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEdBQXVCLENBQUNBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQW9CTSxTQUFwQixDLENBQ3hCLFNBRUosTUFBTUMsU0FBQSxDQUFXdEQsU0FBQSxDQUFZcUQsU0FBWixDQUFqQixDQUNBTCxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsZ0JBQUEsRUFBNEJNLFNBQTVCLEMsRUFFSk4sU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQyxFQUVKLE1BQU9PLFNBQVAsQyxDQUNJUCxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsZ0JBQUEsRSxpQkFBeUNPLFNBQUEsQyxnQkFBQSxDLGlCQUF6QyxDLENBQ0ExRyxPQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUFtQjBHLFNBQW5CLEMsRUFFSlAsU0FBQSxDLE1BQUEsRSxnQkFBQSxFLGdCQUFBLEcsQ0FDQUEsU0FBQSxDLGdCQUFBLEUsU0FBQSxDLEVBNUJHLEMsRUErQlgsU0FBU0osU0FBVCxDQUF3QlksU0FBeEIsQywyQkFDVUMsU0FBQSxDQUFPLEMsU0FDVCxDQUFTRCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQURBLEMsY0FFVCxDQUFjLE9BQU9BLFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBQVAsRyxVQUFBLENBQWtEQSxTQUFBLEMsZ0JBQUEsRSxjQUFBLEdBQWxELENBQWdGQSxTQUFBLEMsU0FBQSxFLGdCQUFBLENBRnJGLEMsVUFHVCxDQUFVLE9BQU9BLFNBQUEsQyxTQUFBLEUsZ0JBQUEsQ0FBUCxHLGdCQUFBLENBQThDQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHQUE5QyxDQUF3RUEsU0FBQSxDLFNBQUEsRSxVQUFBLENBSHpFLEMsUUFLTkMsUyxFQUVYLFNBQVM1QixTQUFULENBQW1CNkIsU0FBbkIsQ0FBeUJDLFNBQXpCLEMsUUFDVzdLLFNBQUEsQ0FBVSxJQUFWLENBQWdCLEssR0FBaEIsQ0FBd0IsSyxHQUF4QixDQUFnQyxXLDRCQUMvQjZLLFNBQUEsQyxnQkFBQSxFLFNBQUEsQyxFQUNBQSxTQUFBLEMsZ0JBQUEsRSxZQUFBLEUsZ0JBQUEsRSxnQkFBQSxDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxnQkFBQSxHQURBLENBRUEsTyxDQUdKLE1BQU1DLFNBQUEsQ0FBT2hCLFNBQUEsQ0FBZWMsU0FBZixDQUFiLENBQ01HLFNBQUEsQ0FBSSxDQUFDSCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUFELENBQTBCdEUsU0FBMUIsQ0FBMENPLFNBRHBELENBRUEsRyxDQUNJLE1BQU1tRCxTQUFBLENBQWtCWSxTQUFsQixDQUF3QkMsU0FBeEIsQ0FBNkJFLFNBQTdCLENBQWdDRCxTQUFoQyxDLENBRU5ELFNBQUEsQyxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsRSxVQUFBLEMsRUFFSixNQUFPRyxTQUFQLEMsQ0FDSUgsU0FBQSxDLGFBQUEsRSxnQkFBQSxFLGdCQUFBLEUsVUFBQSxDLENBQ0E5RyxPQUFBLEMsZ0JBQUEsRSxPQUFBLENBQXFCaUgsU0FBckIsQyxHQWhCRCxDLEVBb0JYLE1BQU1DLFNBQUEsQ0FBMkIsSSwyQkFRN0J4RCxDQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUFpQyxDLFNBRTdCLENBQVMsQyxjQUNMLENBQWMsS0FBTyxDLFVBQUUsQyxnQkFBRixDQUFQLENBRFQsQyxVQUVMLENBQVUsSUFBTTZCLFNBRlgsQyxZQUdMLENBQVksS0FBTyxDLFlBQ2YsQ0FBWSxDLGdCQUFFLEMsR0FBRixDLE1BQXFCLEMsZ0JBQXJCLENBREcsQyxXQUVmLEMsUUFGZSxDLFFBR2YsQyxnQkFIZSxDLGFBSWYsQ0FBYSxDLE1BQUUsQyxnQkFBRixDQUpFLEMsZ0JBS2YsQ0FBZ0I1SCxTQUxELENBQVAsQ0FIUCxDLFFBVUwsQ0FBUSxJLElBVkgsQyxTQVdMLEMsRUFYSyxDLFdBWUwsQyxHQVpLLENBRm9CLEMsbUJBZ0I3QixFLFFBQ1cxQixTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVyx5QkFDN0JrTCxTQUFBLENBQU8sSSxJQUNULENBQUNBLFNBQUEsQyxjQUFBLEMsRUFDRCxNQUFNQyxTQUFBLENBQUksT0FBT0QsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBUCxHLGdCQUFBLENBQWdEQSxTQUFBLEMsU0FBQSxFLGdCQUFBLEUsZ0JBQUEsRUFBNkJBLFNBQTdCLENBQWhELENBQXFGQSxTQUFBLEMsZ0JBQUEsRSxZQUFBLENBQS9GLEMsR0FDSUMsU0FBQSxZQUFhM0ssTyxFQUNiLE1BQU00SyxTQUFBLENBQU8sTUFBTUQsU0FBbkIsQ0FDQUQsU0FBQSxDLGdCQUFBLEVBQW9CRSxTLE9BR3BCRixTQUFBLEMsY0FBQSxFQUFvQkMsUyxTQUdyQkQsU0FBQSxDLGdCQUFBLEMsRUFaSixDLEVBakJrQixDLE9BZ0M3QixFLFFBQ1dsTCxTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVyx5QkFDN0JxTCxTQUFBLENBQU8sSSxDQUVQQyxTQUFBLENBQUlELFMsQ0FDVkMsU0FBQSxDLGdCQUFBLEVBQWlCaEMsUyxDQUNqQitCLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEdBREEsQ0FFQSxNQUFNRSxTQUFBLENBQWEsTUFBTSxLLGdCQUFBLEdBQXpCLENBQ01DLFNBQUEsQ0FBV3RFLFNBQUEsQ0FBWXFFLFNBQVosQ0FEakIsQ0FFQUYsU0FBQSxDLGdCQUFBLEUsUUFBQSxFQUFrQkcsU0FBbEIsQyxDQUNBSCxTQUFBLEMsZ0JBQUEsRUFBcUJFLFMsRUFUbEIsQyxFQWpDa0IsQyxRQTZDN0IsRSwyQkFDVUUsU0FBQSxDQUFPLEksQ0FFUEMsU0FBQSxDQUFPNUIsU0FBQSxDQUFlMkIsU0FBZixDLENBQ2JyRyxTQUFBLENBQWVzRyxTQUFmLENBQXFCRCxTQUFBLEMsUUFBQSxDQUFyQixDQUFrQ0EsU0FBQSxDLGdCQUFBLENBQWxDLEMsRUFqRHlCLEMsU0FtRDdCLEUsMkJBQ1VFLFNBQUEsQ0FBTyxJLENBQ2JBLFNBQUEsQyxnQkFBQSxFQUFjLEssZ0JBQUEsQyxDQUNkQSxTQUFBLEMsZ0JBQUEsRUFBY2xFLENBQUEsQyxnQkFBQSxDLENBQ2RrRSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLEMsQ0FDQSxLLGdCQUFBLEUsZ0JBQUEsRUFBeUJBLFNBQUEsQyxnQkFBQSxDQUF6QixDLENBQ0FBLFNBQUEsQyxhQUFBLEVBQW1CbEUsQ0FBQSxDLFFBQUEsRSxnQkFBQSxFLGFBQUEsQyxDQUNuQmtFLFNBQUEsQyxRQUFBLEUsZ0JBQUEsRUFBbUJBLFNBQUEsQyxnQkFBQSxDQUFuQixDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQXdCQSxTQUFBLEMsZ0JBQUEsQ0FBeEIsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRUFBc0JsRSxDQUFBLEMsZ0JBQUEsQyxDQUN0QmtFLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQXdCQSxTQUFBLEMsZ0JBQUEsQ0FBeEIsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsZ0JBQUEsQ0FBZ0MsVSxRQUNyQjNMLFNBQUEsQ0FBVSxJQUFWLENBQWdCLEssR0FBaEIsQ0FBd0IsSyxHQUF4QixDQUFnQyxXLHlCQUNuQyxJQUFJNEwsU0FBSixDQUNBLElBQUlDLFNBQUEsQyxHQUFKLENBQ0lDLFNBREosQ0FFSSxDQUFDSCxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsZ0JBQUEsQyxHQUNEQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHLENBRUFHLFNBQUEsQ0FBYSxNQUFNSCxTQUFBLEMsZ0JBQUEsRyxDQUNmLENBQUFHLFNBQUEsR0FBZUgsU0FBQSxDLGVBQUEsQ0FBZixFQUFzQyxDQUFDLENBQUFDLFNBQUEsQ0FBS0QsU0FBQSxDLGdCQUFBLENBQUwsQ0FBRCxHQUE4QixJQUE5QixFQUFzQ0MsU0FBQSxHQUFPLEssR0FBN0MsQ0FBc0QsSyxHQUF0RCxDQUErREEsU0FBQSxDLFFBQUEsQ0FBL0QsQ0FBRCxHQUErRUUsU0FBQSxDLGdCQUFBLENBQXBILEMsRUFDQSxPQUFNSCxTQUFBLEMsZ0JBQUEsR0FBTixDLENBRUpFLFNBQUEsQyxNQUVKRixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHLENBQ0FFLFNBQUEsRUFBeUIsT0FBTXJDLFNBQUEsQ0FBZW1DLFNBQWYsQ0FBcUJHLFNBQXJCLENBQU4sQyxFQWR0QixDLEVBRFgsQyxDQWtCQUgsU0FBQSxDLGdCQUFBLEVBQWtCbEUsQ0FBQSxDLGdCQUFBLEMsQ0FDbEJrRSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUF3QkEsU0FBQSxDLGdCQUFBLENBQXhCLEMsQ0FDQUEsU0FBQSxDLFlBQUEsRSxJQUFBLEUsT0FBQSxDQUE0QixJLDJCQUN4QixLLGdCQUFBLEcsRUFESixDQTdCQSxDQWdDSSxDQUFDQSxTQUFBLEMsUUFBQSxFLGdCQUFBLEUsZ0JBQUEsQyxFQUNEQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLEMsZ0JBQUEsQyxDQUVKQSxTQUFBLEMsZ0JBQUEsRUFBYWxFLENBQUEsQyxnQkFBQSxDLENBQ2JrRSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHLENBQ0FBLFNBQUEsQyxnQkFBQSxFQUFpQmxFLENBQUEsQyxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxHLENBQ2pCa0UsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBbUJBLFNBQUEsQyxnQkFBQSxDQUFuQixDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLFFBQUEsRUFBbUJBLFNBQUEsQyxnQkFBQSxDQUFuQixDLENBQ0FBLFNBQUEsQyxnQkFBQSxFQUFhbEUsQ0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBOENrRSxTQUFBLEMsZ0JBQUEsQ0FBOUMsQyxDQUNiLEssZ0JBQUEsR0FOQSxDQU9BLE1BQU1JLFNBQUEsQ0FBZSxDQUFDQyxTQUFELENBQU1DLFNBQU4sRywyQkFDWEMsU0FBQSxDLEtBQ0FDLFNBQUEsQyxLQUNBQyxTQUFBLENBQWFKLFNBQUEsQyxnQkFBQSxHLENBQ2JLLFNBQUEsQ0FBSUosUyxJQUNOSSxTQUFBLEMsZ0JBQUEsR0FBV0QsU0FBQSxDLE1BQUEsQ0FBWCxFQUNBQyxTQUFBLEMsZ0JBQUEsR0FBV0QsU0FBQSxDLGdCQUFBLEVBQWtCRixTQUQ3QixFQUVBRyxTQUFBLEMsZ0JBQUEsR0FBV0QsU0FBQSxDLGdCQUFBLENBRlgsRUFHQUMsU0FBQSxDLGdCQUFBLEdBQVdELFNBQUEsQyxnQkFBQSxFQUFpQkQsUyx1QkFScEMsQ0FhTUcsU0FBQSxDQUFtQkMsU0FBRCxFQUFTdk0sU0FBQSxDQUFVLElBQVYsQ0FBZ0IsSyxHQUFoQixDQUF3QixLLEdBQXhCLENBQWdDLFcsOEJBQ3pEdU0sU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQyxDQUNBeEQsU0FBQSxDQUFVNEMsU0FBVixDQUFnQlksU0FBaEIsQyxTQUVLQSxTQUFBLEMsVUFBQSxFLGdCQUFBLEMsQ0FFTEEsU0FBQSxDLFVBQUEsRSxJQUFBLEUsZ0JBQUEsRyxDQUVBQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDLFNBRUtBLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxnQkFBQSxJLFFBQUEsRSxJQUNMQSxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsUUFBQSxHLENBRUFBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEMsU0FieUIsQ0FiakMsQ0E4QkFaLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxnQkFBQSxDLElBQUEsQ0FBZ0MsU0FBVWEsU0FBVixDLDJCQUM1QixJQUFJQyxTQUFKLENBQVFDLFNBQVIsQ0FDQUYsU0FBQSxDLGdCQUFBLElBQ0EsSUFBSUcsU0FBQSxDQUFNbEYsQ0FBQSxDQUFFLElBQUYsQ0FBVixDLEdBQ0lzRSxTQUFBLENBQWFZLFNBQWIsQ0FBa0JILFNBQWxCLEMsQ0FDQUYsU0FBQSxDQUFnQkssU0FBaEIsQyxNQUdBLE1BQU1DLFNBQUEsQ0FBUUQsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBZCxDQUNNRSxTQUFBLENBQVlGLFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBRGxCLEMsR0FFSWhCLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEdBQTZCLENBQUNBLFNBQUEsQyxTQUFBLEUsZ0JBQUEsRUFBMEJrQixTQUExQixDLENBQzlCLE9BRUpsQixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLFdBQUEsQ0FBOEJrQixTQUE5QixFQUNBLE1BQU1DLFFBQUEsQ0FBZSxDQUFDLENBQUFMLFNBQUEsQ0FBS0ksU0FBQSxDLGdCQUFBLENBQUwsQ0FBRCxHQUFpQyxJQUFqQyxFQUF5Q0osU0FBQSxHQUFPLEssR0FBaEQsQ0FBeUQsSyxHQUF6RCxDQUFrRUEsU0FBQSxDLE1BQUEsQ0FBbEUsQ0FBRCxFQUFnRixDQUFDLENBQUFDLFNBQUEsQ0FBS0csU0FBQSxDLFlBQUEsQ0FBTCxDQUFELEdBQWdDLElBQWhDLEVBQXdDSCxTQUFBLEdBQU8sSyxHQUEvQyxDQUF3RCxLLEdBQXhELENBQWlFQSxTQUFBLEMsZ0JBQUEsQ0FBakUsQ0FBaEYsRUFBNkpHLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEdBQWpMLENBQ01FLFNBQUEsQyxJQUFZRCxRLE1BQWdCRixTLElBRGxDLENBRUFqQixTQUFBLEMsZ0JBQUEsRSxLQUFBLEVBQWdCb0IsU0FBaEIsQyxDQUNBcEIsU0FBQSxDLFFBQUEsRSxnQkFBQSxFLGdCQUFBLEMsQ0FDQUEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRyxHQWxCUixDLENBcUJBQSxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsZ0JBQUEsQyxJQUFBLENBQTZCLFNBQVVxQixTQUFWLEMsMkJBQ3pCQSxTQUFBLEMsZ0JBQUEsSUFDQSxJQUFJQyxTQUFBLENBQU14RixDQUFBLENBQUUsSUFBRixDQUFWLENBQ0lzRSxTQUFBLENBQWFrQixTQUFiLENBQWtCRCxTQUFsQixDLEVBQ0FWLFNBQUEsQ0FBZ0JXLFNBQWhCLEMsQ0FFSjVFLFNBQUEsQ0FBYXNELFNBQWIsQ0FBbUJzQixTQUFuQixDLEVBTkosQyxDQVFBeEYsQ0FBQSxDQUFFeUYsUUFBRixFLElBQUEsRSxnQkFBQSxDQUF3QixTQUFVQyxTQUFWLEMsMkJBRWhCLENBQUMxRixDQUFBLENBQUUwRixTQUFBLEMsZ0JBQUEsQ0FBRixFLGdCQUFBLEVBQXdCeEIsU0FBQSxDLFFBQUEsQ0FBeEIsRSxnQkFBQSxDLEVBQ0RBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEcsRUFIUixDLEVBMUp5QixDQUFqQyxDLEVBUkosQ0E0S015QixTQUFBLENBQXdCLEksMkJBQ3BCQyxTQUFBLENBQVk1RixDQUFBLEMsZ0JBQUEsQyxDQUNaNkYsU0FBQSxDQUFhRCxTQUFBLEMsZ0JBQUEsRyxDQUNiRSxTQUFBLENBQVVDLEdBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQWVGLFNBQWYsQyxJQUNaLENBQUNDLFMsQ0FDRCxPQUFPakUsU0FBUCxDQUdKLE1BQU0sQ0FBRXBHLFFBQUEsQ0FBQXVLLFNBQUYsQ0FBWUMsWUFBQSxDQUFBQyxTQUFaLENBQTBCQyxjQUFBLENBQUFDLFNBQTFCLENBQTBDQyxnQkFBQSxDQUFBQyxTQUExQyxDQUE0REMsV0FBQSxDQUFBQyxTQUE1RCxFQUE0RVYsU0FBbEYsQ0FDTVcsU0FBQSxDQUFXLEMsVUFDYixDQUFBVCxTQURhLEMsY0FFYixDQUFBRSxTQUZhLEMsZ0JBR2IsQ0FBQUUsU0FIYSxDLGtCQUliLENBQUFFLFNBSmEsQyxhQUtiLENBQUFFLFNBTGEsQ0FEakIsQyxPQVNPQyxTLEVBN0xYLENBK0xNQyxTQUFBLENBQStCLEksT0FDMUIsQyxjQUNILENBQWNDLFNBRFgsQyxFQWhNWCxDQW9NTUEsU0FBQSxDQUF3QixJLDJCQUNwQkMsU0FBQSxDQUFZNUcsQ0FBQSxDLHNCQUFBLEMsQ0FDWjZHLFNBQUEsQ0FBYUQsU0FBQSxDLGdCQUFBLEcsQ0FDYkUsU0FBQSxDQUFhbkIsU0FBQSxFLElBQ2YsQ0FBQ21CLFMsUUFDTWpGLFMsT0FFSixDLElBQ0gsQ0FBSWdGLFNBREQsQyxFQTNNWCxDQTJOQWQsR0FBQSxDLE9BQUEsRSxjQUFBLEUsMkJBQUEsQ0FBb0QsQyxVQUNoRCxDLGdCQURnRCxDLE9BRWhELEMsZ0JBRmdELEMsT0FHaEQsQyxnQkFIZ0QsQyxNQUloRCxDLGdCQUpnRCxDLGNBS2hELEMsY0FMZ0QsQyxVQU1oRCxDQUFVLEMsUUFDTixDQUFRLEMsT0FBRSxDLEdBQUYsQ0FERixDLFFBRU4sQ0FBUSxDLE9BQUUsQyxHQUFGLENBRkYsQyxNQUlOLENBQU0sQyxPQUFFLEMsRUFBRixDQUpBLEMsVUFLTixDQUFVLEMsT0FBRSxDLEVBQUYsQyxVQUFhLEMsSUFBYixDLE1BQTZCLEMsaUJBQTdCLENBTEosQyxrQkFNTixDQUFrQixDLE9BQ2QsQ0FBTyxDLE1BQ0gsQyxnQkFERyxDLFNBRUgsQyxnQkFGRyxDLFdBR0gsQyxnQkFIRyxDLGtCQUlILEMsSUFKRyxDLGNBS0gsQyxJQUxHLENBRE8sQyxVQVFkLEMsSUFSYyxDLFVBU2QsQ0FBV2dCLFNBQUQsRSxJQUNGQSxTQUFBLEcsR0FDQSxNLEdBQUEsQyxZQVhNLENBTlosQyxRQXNCTixDQUFRLEMsT0FBRSxDLEVBQUYsQyxVQUFhLEMsR0FBYixDQXRCRixDLFlBdUJOLENBQVksQyxPQUFFLEMsT0FBRixDLFVBQWtCLEMsSUFBbEIsQ0F2Qk4sQ0FOc0MsQyxTQWdDaEQsQyxHQWhDZ0QsQyxPQWlDaEQsRSxrQ0FDVyxLLE1BQUEsRyxrQkFsQ3FDLEMsWUFvQ2hELEUsa0NBQ1csSyxnQkFBQSxFLGdCQUFBLEMsSUFyQ3FDLEMsZUF1Q2hELEUsMkJBQ1VDLFNBQUEsQ0FBTyxJLENBQ2J4RCxTQUFBLEUsQ0FDQXdELFNBQUEsQyxnQkFBQSxFLEdBREEsQ0FFQSxNQUFNQyxTQUFBLENBQVVqSCxDQUFBLEMsZ0JBQUEsQ0FBaEIsQ0FDQWlILFNBQUEsQyxnQkFBQSxFQUFvQi9LLE1BQUEsQyxRQUFBLEVBQWNBLE1BQUEsQyxnQkFBQSxFQUFjLEVBQWQsQ0FBa0J3SyxTQUFBLEVBQWxCLENBQWQsQ0FBaUUsQyxjQUFFLENBQWFRLFNBQWIsQyxrQ0FDeEVBLFNBQUEsQyxnQkFBQSxJLGtCQURzRSxDQUFqRSxDQUFwQixDLENBR0FsSCxDQUFBLEMsc0JBQUEsRSxLQUFBLEVBQThCZ0gsU0FBQSxDLGtCQUFBLEUsZ0JBQUEsQ0FBOUIsQ0FIQSxDQUlBLE9BQVFBLFNBQUEsQyxrQkFBQSxFLGdCQUFBLENBQVIsRUFDSSxLLGdCQUFBLENBQ0loSCxDQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUFtQ2dILFNBQUEsQyxrQkFBQSxFLGdCQUFBLENBQW5DLEMsQ0FDQWhILENBQUEsQyx5QkFBQSxFLEtBQUEsRUFBaUNnSCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUFqQyxDLENBQ0FoSCxDQUFBLEMsa0NBQUEsRSxnQkFBQSxFQUEwQ2dILFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBQTFDLEMsQ0FDQWhILENBQUEsQyxnQkFBQSxFLE1BQUEsRSxnQkFBQSxDQUE4Q2dILFNBQUEsQyxnQkFBQSxFLGNBQUEsQ0FBOUMsQ0FIQSxDQUlBLE1BQ0osSyxnQkFBQSxDQUNJaEgsQ0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBd0NnSCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUF4QyxDLENBQ0FoSCxDQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUFzQ2dILFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBQXRDLEMsQ0FDQWhILENBQUEsQyx1Q0FBQSxFLGdCQUFBLEVBQStDZ0gsU0FBQSxDLGtCQUFBLEUsZ0JBQUEsQ0FBL0MsQyxDQUNBaEgsQ0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxTQUFBLENBQXVEZ0gsU0FBQSxDLGtCQUFBLEUsY0FBQSxDQUF2RCxDQUhBLENBSUEsTUFDSixLLGdCQUFBLENBQ0lBLFNBQUEsQyxnQkFBQSxFLHdCQUFBLEVBQStDQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHQUFnRCxFLENBQy9GaEgsQ0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBaURnSCxTQUFBLEMsZ0JBQUEsRSxXQUFBLENBQWpELEMsQ0FDQWhILENBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQStDZ0gsU0FBQSxDLGdCQUFBLEUsU0FBQSxDQUEvQyxDLENBQ0FoSCxDQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUEwRGdILFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBQTFELEMsQ0FDQWhILENBQUEsQyxnQkFBQSxFLEtBQUEsRUFBcURnSCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUFyRCxDLENBQ0FoSCxDQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLFNBQUEsQ0FBd0dnSCxTQUFBLEMsa0JBQUEsRSxnQkFBQSxFLGdCQUFBLENBQXhHLEMsQ0FDQWhILENBQUEsQyxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsQ0FBOEZnSCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLHFCQUFBLENBQTlGLEMsQ0FDQWhILENBQUEsQyxxRUFBQSxFLGdCQUFBLEVBQTZFZ0gsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxDQUE3RSxDLENBQ0FoSCxDQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUE4RWdILFNBQUEsQyxrQkFBQSxFLGdCQUFBLEUsaUJBQUEsQ0FBOUUsQyxDQUNBaEgsQ0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxDQUFpR2dILFNBQUEsQyxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsQ0FBakcsQ0FUQSxDQVVBLE1BeEJSLEMsQ0E4QkksU0FBU0csU0FBVCxFLDJCQUNJbkgsQ0FBQSxDLGNBQUEsRSxnQkFBQSxHLENBQ0FBLENBQUEsQyxnQkFBQSxFLGdCQUFBLEcsQ0FDQUEsQ0FBQSxDLGdCQUFBLEUsZ0JBQUEsRyxDQUNBQSxDQUFBLEMsZ0JBQUEsRSxnQkFBQSxHLENBQ0FBLENBQUEsQyxnQkFBQSxFLE1BQUEsRyxDQUNBQSxDQUFBLEMsZ0JBQUEsRSxNQUFBLEcsRUFFSixTQUFTb0gsU0FBVCxFLDJCQUNJRCxTQUFBLEdBQ0EsSUFBSUUsU0FBQSxDQUFnQnJILENBQUEsQyxnQkFBQSxFLGdCQUFBLEdBQXBCLENBRUFBLENBQUEsQyxXQUFFLENBQWNxSCxTQUFoQixFLGdCQUFBLEcsRUFFSnJILENBQUEsQyxzQkFBQSxFLElBQUEsRSxRQUFBLENBQXVDb0gsU0FBdkMsQyxDQUNBQSxTQUFBLEUsR0E3RndDLEMsWUFnR2hELEUsMkJBQ1VFLFNBQUEsQ0FBZUMsU0FBRCxFQUFRQSxTQUFBLEMsZ0JBQUEsS0FBVzFGLFNBQVgsQyxFQUFBLENBQTRCMEYsU0FBQSxDLGdCQUFBLEksZ0JBQUEsRyxDQUNsREMsU0FBQSxDQUFpQkMsU0FBRCxFQUFRQSxTQUFBLEMsZ0JBQUEsS0FBVzVGLFNBQVgsQyxHQUFBLENBQTJCNEYsU0FBQSxDLEtBQUEsRyxDQUNuREMsU0FBQSxDQUFPMUgsQ0FBQSxDLHNCQUFBLEUsZ0JBQUEsRyxDQUNiLE9BQVEwSCxTQUFSLEVBQ0ksSSxLQUFBLENBQ0ksSyxrQkFBQSxFQUF3QixDLE1BQ3BCLEMsS0FEb0IsQyxXQUVwQixDQUFXSixTQUFBLENBQVl0SCxDQUFBLEMsZ0JBQUEsQ0FBWixDQUZTLEMsU0FHcEIsQ0FBU3NILFNBQUEsQ0FBWXRILENBQUEsQyx5QkFBQSxDQUFaLENBSFcsQyxrQkFJcEIsQ0FBa0J3SCxTQUFBLENBQWN4SCxDQUFBLEMsZ0JBQUEsQ0FBZCxDQUpFLEMsY0FLcEIsQ0FBY0EsQ0FBQSxDLGdCQUFBLEUsTUFBQSxFLGdCQUFBLENBTE0sQ0FBeEIsQ0FPQSxNQUNKLEksVUFBQSxDQUNJLEssZ0JBQUEsRUFBd0IsQyxNQUNwQixDLGdCQURvQixDLFdBRXBCLENBQVdzSCxTQUFBLENBQVl0SCxDQUFBLEMsZ0NBQUEsQ0FBWixDQUZTLEMsU0FHcEIsQ0FBU3NILFNBQUEsQ0FBWXRILENBQUEsQyxnQkFBQSxDQUFaLENBSFcsQyxrQkFJcEIsQ0FBa0J3SCxTQUFBLENBQWN4SCxDQUFBLEMsZ0JBQUEsQ0FBZCxDQUpFLEMsY0FLcEIsQ0FBY0EsQ0FBQSxDLG1DQUFBLEUsZ0JBQUEsRSxnQkFBQSxDQUxNLENBQXhCLENBT0EsTUFDSixLLGdCQUFBLENBQ0ksSyxnQkFBQSxFQUF3QixDLE1BQ3BCLEMsZ0JBRG9CLEMsV0FFcEIsQ0FBV3NILFNBQUEsQ0FBWXRILENBQUEsQyxnQkFBQSxDQUFaLENBRlMsQyxTQUdwQixDQUFTc0gsU0FBQSxDQUFZdEgsQ0FBQSxDLGdCQUFBLENBQVosQ0FIVyxDLG9CQUlwQixDQUFvQndILFNBQUEsQ0FBY3hILENBQUEsQyxnQkFBQSxDQUFkLENBSkEsQyxlQUtwQixDQUFlc0gsU0FBQSxDQUFZdEgsQ0FBQSxDLGdCQUFBLENBQVosQ0FMSyxDLHdCQU1wQixDQUF3QixDLCtCQUNwQixDQUErQkEsQ0FBQSxDLG9GQUFBLEUsZ0JBQUEsRSxnQkFBQSxDQURYLEMscUJBRXBCLENBQXFCQSxDQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLENBRkQsQyxnQkFHcEIsQ0FBZ0J3SCxTQUFBLENBQWN4SCxDQUFBLEMscUVBQUEsQ0FBZCxDQUhJLEMsaUJBSXBCLENBQWlCd0gsU0FBQSxDQUFjeEgsQ0FBQSxDLGdCQUFBLENBQWQsQ0FKRyxDLHdCQUtwQixDQUF3QkEsQ0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxDQUxKLENBTkosQ0FBeEIsQ0FjQSxNQWxDUixDLENBcEc0QyxDQUFwRCxDLEVBeG1CSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sICovXHJcblxyXG5cclxuICAgIGZ1bmN0aW9uIF9fYXdhaXRlcih0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcclxuICAgICAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cclxuICAgICAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHR5cGVvZiBTdXBwcmVzc2VkRXJyb3IgPT09IFwiZnVuY3Rpb25cIiA/IFN1cHByZXNzZWRFcnJvciA6IGZ1bmN0aW9uIChlcnJvciwgc3VwcHJlc3NlZCwgbWVzc2FnZSkge1xyXG4gICAgICAgIHZhciBlID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIHJldHVybiBlLm5hbWUgPSBcIlN1cHByZXNzZWRFcnJvclwiLCBlLmVycm9yID0gZXJyb3IsIGUuc3VwcHJlc3NlZCA9IHN1cHByZXNzZWQsIGU7XHJcbiAgICB9O1xuXG4gICAgY29uc3QgT3JnYW5pemVzUmVmTm9kZUlkID0gXCJucz0wO2k9MzVcIjtcbiAgICBjb25zdCBGb2xkZXJUeXBlID0gXCJucz0wO2k9NjFcIjtcbiAgICBjb25zdCBIYXNDb21wb25lbnRSZWZOb2RlSWQgPSBcIm5zPTA7aT00N1wiO1xuICAgIGNvbnN0IEhhc1Byb3BlcnR5UmVmTm9kZUlkID0gXCJucz0wO2k9NDZcIjtcbiAgICBjb25zdCBIYXNDaGlsZFJlZk5vZGVJZCA9IFwibnM9MDtpPTM0XCI7XG4gICAgY29uc3QgSGFzU3VidHlwZVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ1XCI7XG4gICAgY29uc3QgSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQgPSBcIm5zPTA7aT00MFwiO1xuXG4gICAgdmFyIEJyb3dzZURpcmVjdGlvbjtcbiAgICAoZnVuY3Rpb24gKEJyb3dzZURpcmVjdGlvbikge1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiRm9yd2FyZFwiXSA9IDBdID0gXCJGb3J3YXJkXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZlcnNlXCJdID0gMV0gPSBcIkludmVyc2VcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkJvdGhcIl0gPSAyXSA9IFwiQm90aFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52YWxpZFwiXSA9IDNdID0gXCJJbnZhbGlkXCI7XG4gICAgfSkoQnJvd3NlRGlyZWN0aW9uIHx8IChCcm93c2VEaXJlY3Rpb24gPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3M7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3MpIHtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlVuc3BlY2lmaWVkXCJdID0gMF0gPSBcIlVuc3BlY2lmaWVkXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzcyB8fCAoTm9kZUNsYXNzID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzTWFzaztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzc01hc2spIHtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVwiXSA9IDJdID0gXCJWYXJpYWJsZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWYXJpYWJsZVR5cGVcIl0gPSAxNl0gPSBcIlZhcmlhYmxlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJWaWV3XCJdID0gMTI4XSA9IFwiVmlld1wiO1xuICAgIH0pKE5vZGVDbGFzc01hc2sgfHwgKE5vZGVDbGFzc01hc2sgPSB7fSkpO1xuICAgIHZhciBSZXN1bHRNYXNrO1xuICAgIChmdW5jdGlvbiAoUmVzdWx0TWFzaykge1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJSZWZlcmVuY2VUeXBlXCJdID0gMV0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiSXNGb3J3YXJkXCJdID0gMl0gPSBcIklzRm9yd2FyZFwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJOb2RlQ2xhc3NcIl0gPSA0XSA9IFwiTm9kZUNsYXNzXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkJyb3dzZU5hbWVcIl0gPSA4XSA9IFwiQnJvd3NlTmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJEaXNwbGF5TmFtZVwiXSA9IDE2XSA9IFwiRGlzcGxheU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiVHlwZURlZmluaXRpb25cIl0gPSAzMl0gPSBcIlR5cGVEZWZpbml0aW9uXCI7XG4gICAgfSkoUmVzdWx0TWFzayB8fCAoUmVzdWx0TWFzayA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9yZ2FuaXplc1JlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNQcm9wZXJ0eVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNQcm9wZXJ0eVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDb21wb25lbnRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ29tcG9uZW50UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NoaWxkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NoaWxkUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1N1YnR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzU3VidHlwZVJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNUeXBlRGVmaW5pdGlvblwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldEljb24gPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHN3aXRjaCAocmVmZXJlbmNlLm5vZGVDbGFzcykge1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBPcmdhbml6ZXNSZWZOb2RlSWQpIDtcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnR5cGVEZWZpbml0aW9uID09PSBGb2xkZXJUeXBlIHx8IHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IFwiaT02MVwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtZm9sZGVyXCIsIGNvbG9yOiBcInJnYmEoNjEsIDYwLCA0LCAwLjUyNSlcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJTZWFHcmVlblwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzQ29tcG9uZW50UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiU3RlZWxCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gSGFzUHJvcGVydHlSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJEb2RnZXJCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIFwiTWV0aG9kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1jb2dcIiwgY29sb3I6IFwiU2FuZHlCcm93blwiIH07XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0VHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtc2xpZGVyc1wiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJEYXRhVHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtdGV4dC13aWR0aFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGljb246IFwiZmEtcXVlc3Rpb25cIiwgY29sb3I6IFwiZ3JleVwiIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGJyb3dzZSA9IChfYSwgbm9kZUlkXzEsIHRlbXBsYXRlXzEpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgbm9kZUlkXzEsIHRlbXBsYXRlXzFdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCwgdGVtcGxhdGUpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2Jyb3dzZWA7XG4gICAgICAgIGNvbnN0IGJyb3dzZURlc2NyaXB0aW9uID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB0ZW1wbGF0ZSksIHsgbm9kZUlkLCByZXN1bHRNYXNrOiA2MyB9KTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgYnJvd3NlRGVzY3JpcHRpb24sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoaW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlczogW10gfTtcbiAgICAgICAgfVxuICAgICAgICAvLyBjb25zb2xlLmxvZyhcImJyb3dzZSBmZXRjaGVkIDogXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICBjb25zdCByZWZlcmVuY2VzID0gcmVzcG9uc2UuYnJvd3NlUmVzdWx0LnJlZmVyZW5jZXMgfHwgW107XG4gICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXMgfTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHRlbXBsYXRlMSA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzQ2hpbGRcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB0ZW1wbGF0ZTIgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIk9yZ2FuaXplc1wiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IHdhbGtCYWNrd2FyZCA9IChfYSwgX2IpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgX2JdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIHsgbm9kZUlkLCByb290Tm9kZUlkLCBpc1R5cGUgfSkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vd2Fsay1iYWNrd2FyZGA7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgICAgICByb290Tm9kZUlkLFxuICAgICAgICAgICAgICAgIGlzVHlwZSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGpzb24gPSAoeWllbGQgZGF0YS5qc29uKCkpO1xuICAgICAgICByZXR1cm4ganNvbi5icm93c2VQYXRoO1xuICAgIH0pO1xuICAgIGNvbnN0IGludGVybmFsVmVyaWZ5ID0gKF9hLCAkaW5wdXRFbGVtZW50XzEsICRpbmZvXzEpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgJGlucHV0RWxlbWVudF8xLCAkaW5mb18xXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCAkaW5wdXRFbGVtZW50LCAkaW5mbykge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vY2hlY2tOb2RlSWRgO1xuICAgICAgICBjb25zdCBub2RlSWQgPSAkaW5wdXRFbGVtZW50LnZhbCgpO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHNldE5vdGlmaWNhdGlvbiA9ICh0ZXh0LCBjbGFzc05hbWUpID0+IHtcbiAgICAgICAgICAgICRpbmZvLnRleHQodGV4dCkuYWRkQ2xhc3MoXCJzdGVyZml2ZS1pbmZvXCIpLmFkZENsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAkaW5mby5zaG93KCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAkaW5mby5yZW1vdmVDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgICAgICRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgIH0sIDMwMDApO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBqc29uID0gKHlpZWxkIGRhdGEuanNvbigpKTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZztcbiAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihcIiEhZmFpbHVyZSEhXCIgKyBub2RlSWQsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChqc29uLnN0YXR1c0NvZGUubWF0Y2goL0dvb2QvKSkge1xuICAgICAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZ1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKGpzb24ubm9kZUFkZHJlc3NTdHJpbmcpO1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCJHb29kXCIsIFwib2tcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChgJHtub2RlSWR9YCk7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKGAke2pzb24uc3RhdHVzQ29kZX0gJHtkYXRhLnN0YXR1c1RleHR9YCwgXCJmYWlsdXJlXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gZmV0Y2hDaGlsZHJlbigkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMSk7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQyID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUyKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlczogWy4uLmJyb3dzZVJlc3VsdDEucmVmZXJlbmNlcywgLi4uYnJvd3NlUmVzdWx0Mi5yZWZlcmVuY2VzXSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB0ZW1wbGF0ZVNUID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNTdWJ0eXBlXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHwgTm9kZUNsYXNzLk9iamVjdFR5cGUgfCBOb2RlQ2xhc3MuRGF0YVR5cGUgfCBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlLFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGZldGNoU3VidHlwZXMoJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZVNUKTtcbiAgICAgICAgICAgIHJldHVybiBicm93c2VSZXN1bHQxO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgbWFrZUVsZW1lbnQgPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICAgICAgaWYgKCFyZWZlcmVuY2UgfHwgIXJlZmVyZW5jZS5ub2RlSWQpIHtcbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgZmEtZXJyb3JcIiBzdHlsZT1cImNvbG9yOnJlZDtcIj48L2k+bm8gcmVmZXJlbmNlICE8dWw+PC91bD48L2xpPmApO1xuICAgICAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG4gPSByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHQgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB7IGljb24sIGNvbG9yIH0gPSBnZXRJY29uKHJlZmVyZW5jZSk7XG4gICAgICAgIGNvbnN0IHRpdGxlID0gYCgke3JlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKX0pICR7KChfYyA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MubmFtZSkgfHwgKChfZCA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLnRleHQpIHx8IFwiXCJ9YDtcbiAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGkga2V5PVwiJHtyZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCl9XCJ9PjxzcGFuIGNsYXNzPVwidHJlZS10ZXh0XCIgdGl0bGU9JHt0aXRsZX0+PGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+ICR7dH08L3NwYW4+PHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgJGVsZW1lbnQuYWRkQ2xhc3MoXCJleHBhbmRhYmxlXCIpO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwidmFsdWVcIiwgbik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgIH07XG4gICAgY29uc3QgZmluZEVsZW1lbnQgPSAobm9kZUlkLCAkdHJlZSkgPT4ge1xuICAgICAgICByZXR1cm4gJHRyZWUuZmluZChgbGlba2V5PVwiJHtub2RlSWR9XCJdYCk7XG4gICAgfTtcbiAgICBjb25zdCBzZWxlY3RTaW5nbGUgPSAodGhhdCwgJGxpKSA9PiB7XG4gICAgICAgIHRoYXQuJHRyZWUuZmluZChcImxpID4gLnRyZWUtdGV4dFwiKS5yZW1vdmVDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgICAgICAvLyBjbGVhciBhbGwgc2VsZWN0ZWQgaXRlbXNcbiAgICAgICAgJGxpLmZpbmQoXCIudHJlZS10ZXh0OmZpcnN0XCIpLmFkZENsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgfTtcbiAgICBjb25zdCBhdXRvRXhwYW5kID0gKHRoYXQsIGJyb3dzZVBhdGgsICR0cmVlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgLy8gZXhwYW5kIHRoZSB0cmVlIHRvIHNob3cgdGhlIG5vZGVJZFxuICAgICAgICBsZXQgJGN1cnJlbnQgPSAkdHJlZS5jaGlsZHJlbihcIjpmaXJzdFwiKTtcbiAgICAgICAgYnJvd3NlUGF0aC5yZWxhdGl2ZVBhdGguZWxlbWVudHMgfHwgW107XG4gICAgICAgIGNvbnN0IG5vZGVJZHMgPSBicm93c2VQYXRoLm5vZGVJZHMgfHwgW107XG4gICAgICAgIGlmIChub2RlSWRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgbiBvZiBub2RlSWRzKSB7XG4gICAgICAgICAgICBpZiAoJGN1cnJlbnQuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgLy8gbmVlZCB0byBleHBhbmQgYW5kIHNlbGVjdCB0aGUgcmlnaHQgZWxlbWVudFxuICAgICAgICAgICAgICAgIHlpZWxkIF9leHBhbmRMaSh0aGF0LCAkY3VycmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IGZpbmRFbGVtZW50KG4sICRjdXJyZW50KTtcbiAgICAgICAgICAgIGlmICgkZWxlbWVudC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkY3VycmVudCA9ICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIHNlbGVjdFNpbmdsZSh0aGF0LCAkY3VycmVudCk7XG4gICAgICAgIHNjcm9sbFRvTGkodGhhdC4kZHJvcGRvd24sICRjdXJyZW50KTtcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBzY3JvbGxUb0xpKCRjb250YWluZXIsICR0YXJnZXRMaSkge1xuICAgICAgICAvLyBHZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSB0YXJnZXQgaXRlbSByZWxhdGl2ZSB0byBpdHMgY29udGFpbmVyXG4gICAgICAgIGNvbnN0IGxpUG9zID0gJHRhcmdldExpLnBvc2l0aW9uKCkudG9wO1xuICAgICAgICAvLyBHZXQgdGhlIGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uIG9mIHRoZSBjb250YWluZXJcbiAgICAgICAgY29uc3QgY29udGFpbmVyU2Nyb2xsVG9wID0gJGNvbnRhaW5lci5zY3JvbGxUb3AoKTtcbiAgICAgICAgaWYgKGNvbnRhaW5lclNjcm9sbFRvcCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHBvc2l0aW9uIHRvIHNjcm9sbCB0byAoY3VycmVudCBzY3JvbGwgKyBpdGVtJ3MgcG9zaXRpb24pXG4gICAgICAgIC8vIEFkanVzdCB0aGlzIGNhbGN1bGF0aW9uIGJhc2VkIG9uIHlvdXIgbmVlZHNcbiAgICAgICAgY29uc3Qgc2Nyb2xsVG8gPSBjb250YWluZXJTY3JvbGxUb3AgKyBsaVBvcyAtICRjb250YWluZXIuaGVpZ2h0KCkgLyAyICsgJHRhcmdldExpLmhlaWdodCgpIC8gMjtcbiAgICAgICAgLy8gU2Nyb2xsIHRoZSBjb250YWluZXIgdG8gZW5zdXJlIHRoZSBpdGVtIGlzIHZpc2libGVcbiAgICAgICAgJGNvbnRhaW5lci5hbmltYXRlKHtcbiAgICAgICAgICAgIHNjcm9sbFRvcDogc2Nyb2xsVG8sXG4gICAgICAgIH0sIDUwMCk7IC8vIEFkanVzdCB0aGUgZHVyYXRpb24gKDUwMG1zKSBhcyBuZWVkZWRcbiAgICB9XG4gICAgY29uc3QgcmVhY2hTZWxlY3Rpb24gPSAodGhhdCwgcGFyZW50Tm9kZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IG5vZGVJZCA9IHRoYXQuJGlucHV0LnZhbCgpO1xuICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgcm9vdE5vZGVJZDogcGFyZW50Tm9kZS5ub2RlSWQsXG4gICAgICAgICAgICBpc1R5cGU6IHRoYXQub3B0aW9ucy5pc1R5cGVSZWYgfHwgZmFsc2UsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgY29uc3QgYnJvd3NlUGF0aCA9IHlpZWxkIHdhbGtCYWNrd2FyZChkYXRhLCBvcHRpb25zKTtcbiAgICAgICAgaWYgKCFicm93c2VQYXRoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgeWllbGQgYXV0b0V4cGFuZCh0aGF0LCBicm93c2VQYXRoLCB0aGF0LiR0cmVlKTtcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBfZmV0Y2hEYXRhRm9yTm9kZSh0aGF0LCAkbm9kZSwgZmV0Y2hGdW5jLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwibG9hZGluZ1wiKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICRub2RlLmFwcGVuZCgnPGRpdiBjbGFzcz1cInNwaW5uZXJcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgcmVmZXJlbmNlcyB9ID0geWllbGQgZmV0Y2hGdW5jKCRub2RlLCBkYXRhKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHJlZmVyZW5jZSBvZiByZWZlcmVuY2VzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuZmlsdGVyICYmICF0aGF0Lm9wdGlvbnMuZmlsdGVyKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImZldGNoZWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoYDxsaT5lcnJvciAke2Vyci5tZXNzYWdlfTwvbGk+YCk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJcIiwgZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRub2RlLmZpbmQoXCIuc3Bpbm5lclwiKS5yZW1vdmUoKTtcbiAgICAgICAgICAgICRub2RlLnJlbW92ZUNsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1ha2VDb25uZWN0aW9uKHRoYXQpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICAgIGZ1bmN0aW9uIF9leHBhbmRMaSh0aGF0LCAkbGkpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgICAgIGNvbnN0IGYgPSAhdGhhdC5vcHRpb25zLmlzVHlwZVJlZiA/IGZldGNoQ2hpbGRyZW4gOiBmZXRjaFN1YnR5cGVzO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB5aWVsZCBfZmV0Y2hEYXRhRm9yTm9kZSh0aGF0LCAkbGksIGYsIGRhdGEpO1xuICAgICAgICAgICAgICAgIC8vIG1hcmsgYXMgZXhwYW5kZWRcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFsgVGVtcGVyYXR1cmUgIF1cbiAgICAgICAgICogICAoIHRvb2x0aXAgOiAoL09iamVjdHMvTXlTZW5zb3IpIChucz0xO3M9VGVtcGVyYXR1cmUpKVxuICAgICAgICAgKiBbICsgW0ZvbGRlcl0gT2JqZWN0c11cbiAgICAgICAgICogWyAgICAgW09iamVjdF0gTXlTZW5zb3JdXG4gICAgICAgICAqIFsgICAgICggKSBbVmFyaWFibGVdIFRlbXBlcmF0dXJlXVxuICAgICAgICAgKi9cbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5ub2RlQnJvd3NlclwiLCB7XG4gICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6ICgpID0+ICh7IGVuZHBvaW50OiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzXCIgfSksXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlOiAoKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBicm93c2VOYW1lOiB7IG5hbWVzcGFjZUluZGV4OiAwLCBuYW1lOiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICBub2RlQ2xhc3M6IFwiT2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIG5vZGVJZDogXCJucz0wO2k9ODVcIixcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IHsgdGV4dDogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZURlZmluaXRpb246IEZvbGRlclR5cGUsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZmlsdGVyOiAoKSA9PiB0cnVlLFxuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICAgICAgaXNUeXBlUmVmOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNvbHZlUGFyZW50Tm9kZSgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGF0Ll9fcGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHR5cGVvZiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLnBhcmVudE5vZGUuY2FsbCh0aGF0KSA6IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVzYyA9IHlpZWxkIGE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fX3BhcmVudE5vZGUgPSBkZXNjO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fX3BhcmVudE5vZGUgPSBhO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGF0Ll9fcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNldCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgLy8gYWxzbyByZXNldCBwYXJlbnQgbm9kZVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdGhhdDtcbiAgICAgICAgICAgICAgICAgICAgYS5fX3BhcmVudE5vZGUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyZW50Tm9kZSA9IHlpZWxkIHRoaXMucmVzb2x2ZVBhcmVudE5vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChwYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LmN1cnJlbnRQYXJlbnQgPSBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZlcmlmeSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgICAgIGludGVybmFsVmVyaWZ5KGRhdGEsIHRoYXQuJGlucHV0LCB0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0ID0gdGhpcy5lbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvID0gJChcIjxkaXYvPlwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcInN0ZXJmaXZlLWNvbWJvLWJveFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQucmVwbGFjZVdpdGgodGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAgPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwiaW5wdXQtZ3JvdXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGlucHV0R3JvdXApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJGlucHV0KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuID0gJChgPGJ1dHRvbj48aSBjbGFzcz1cImZhIGZhLXNpdGVtYXBcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdG9nZ2xlVHJlZUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0bi5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZWVkVG9SZWFjaFNlbGVjdGlvbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0cmVlIHdpZGdldCBpcyBnb2luZyB0byBiZWNvbWUgdmlzaWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudE5vZGUgPSB5aWVsZCB0aGF0LnJlc29sdmVQYXJlbnROb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudE5vZGUgIT09IHRoYXQuY3VycmVudFBhcmVudCB8fCAoKF9hID0gdGhhdC5jdXJyZW50UGFyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eubm9kZUlkKSAhPT0gcGFyZW50Tm9kZS5ub2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgdGhhdC5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWVkVG9SZWFjaFNlbGVjdGlvbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRUb1JlYWNoU2VsZWN0aW9uICYmICh5aWVsZCByZWFjaFNlbGVjdGlvbih0aGF0LCBwYXJlbnROb2RlKSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1mbGFza1wiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR2ZXJpZnlCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0bi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52ZXJpZnkoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIiwgXCJlbnRlciBhIG5vZGVJZCBvciBhIGJyb3dzZVBhdGggXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvID0gJChgPGRpdiBjbGFzcz1cImluZm8tdGV4dFwiPjwvZGl2PmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcInN0ZXJmaXZlLWRyb3Bkb3duXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5mbyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlID0gJChgPHVsIGNsYXNzPVwic3RlcmZpdmUtdHJlZVwiPjwvdWw+YCkuYXBwZW5kVG8odGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBpc09uTGVmdFNpemUgPSAoJGxpLCBldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVXaWR0aCA9IDIwOyAvLyBTZXQgd2lkdGggb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlSGVpZ2h0ID0gMjA7IC8vIFNldCBoZWlnaHQgb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFBvcyA9ICRsaS5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5wYWdlWCA+PSBlbGVtZW50UG9zLmxlZnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVggPD0gZWxlbWVudFBvcy5sZWZ0ICsgYmVmb3JlV2lkdGggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPj0gZWxlbWVudFBvcy50b3AgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPD0gZWxlbWVudFBvcy50b3AgKyBiZWZvcmVIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvZ2dsZUV4cGFuc2lvbiA9ICgkbGkpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9leHBhbmRMaSh0aGF0LCAkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBUb2dnbGUgaXRzIGV4cGFuZGVkL2NvbGxhcHNlZCBzdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmNoaWxkcmVuKFwidWxcIikuY2hpbGRyZW4oKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiZGJsY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPbkxlZnRTaXplKCRsaSwgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVFeHBhbnNpb24oJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gJGxpLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9ICRsaS5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUgJiYgIXRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gYFske2Rpc3BsYXlOYW1lfV0oJHt2YWx1ZX0pYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnZhbChpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT25MZWZ0U2l6ZSgkbGksIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRXhwYW5zaW9uKCRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0U2luZ2xlKHRoYXQsICRsaSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSB0aGUgcGFnZSB3aWxsIGhpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QodGhhdC4kY29tYm8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IHJlZE5vZGUgPSBSRUQubm9kZXMubm9kZShlbmRwb2ludElkKTtcbiAgICAgICAgaWYgKCFyZWROb2RlKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgLy8gY29uc3QgY3JlZGVudGlhbHMgPSBSRUQuKGVuZHBvaW50SWQpO1xuICAgICAgICAvLyB3ZSBuZWVkIHRvIHNhbml0aXplIGFuZCBleHRyYWN0IHRoZSBlbmRwb2ludCBhdHRyaWJ1dGVzIG9ubHkgKCBub3QgdGhlIG5vZGUtcmVkIHN0dWZmKVxuICAgICAgICBjb25zdCB7IGVuZHBvaW50LCBzZWN1cml0eU1vZGUsIHNlY3VyaXR5UG9saWN5LCB1c2VySWRlbnRpdHlUeXBlLCBjcmVkZW50aWFscyB9ID0gcmVkTm9kZTtcbiAgICAgICAgY29uc3QgcmV0VmFsdWUgPSB7XG4gICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzLFxuICAgICAgICB9O1xuICAgICAgICAvLyB4eCBjb25zb2xlLmxvZyhcInh4eFwiLCByZXRWYWx1ZSk7XG4gICAgICAgIHJldHVybiByZXRWYWx1ZTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IGdldEVuZHBvaW50UGFyYW1ldGVycyxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVycyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCBlbmRwb2ludE5yID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgIGlmICghZW5kcG9pbnROcikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGVuZHBvaW50SWQsXG4gICAgICAgICAgICAvLyBlbmRwb2ludDogZW5kcG9pbnROci5lbmRwb2ludCxcbiAgICAgICAgICAgIC8vIHNlY3VyaXR5TW9kZTogZW5kcG9pbnROci5zZWN1cml0eU1vZGUsXG4gICAgICAgICAgICAvLyBzZWN1cml0eVBvbGljeTogZW5kcG9pbnROci5zZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyB1c2VySWRlbnRpdHlUeXBlOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICAvLyBjcmVkZW50aWFsOiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIHVzZXJOYW1lOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlck5hbWUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAvLyBwYXNzd29yZDogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlID09PSBcIlVzZXJOYW1lXCIgPyBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnBhc3N3b3JkIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgLy8gdXNlckNlcnRpZmljYXRlOiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJDZXJ0aWZpY2F0ZSxcbiAgICAgICAgICAgIC8vIHVzZXJQcml2YXRla2V5OiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJQcml2YXRla2V5LFxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBSRUQubm9kZXMucmVnaXN0ZXJUeXBlKFwiT3BjVWEtQ2xpZW50Mi1IaXN0b3J5UmVhZFwiLCB7XG4gICAgICAgIGNhdGVnb3J5OiBcIm9wY3VhXCIsXG4gICAgICAgIGNvbG9yOiBcIiNDMERFRURcIixcbiAgICAgICAgYWxpZ246IFwicmlnaHRcIixcbiAgICAgICAgaWNvbjogXCIuLi8uLi9pY29ucy9vcGN1YW5vZGVMb2dvLnBuZ1wiLFxuICAgICAgICBwYWxldHRlTGFiZWw6IFwicmVhZC1oaXN0b3J5XCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBpbnB1dHM6IHsgdmFsdWU6IDEgfSxcbiAgICAgICAgICAgIG91dHB1dDogeyB2YWx1ZTogNCB9LFxuICAgICAgICAgICAgLy8gQ29tbW9uXG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUsIHR5cGU6IFwiT3BjVWEtRW5kcG9pbnQyXCIgfSxcbiAgICAgICAgICAgIGhpc3RvcnlSZWFkUGFyYW06IHtcbiAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInJhd1wiLFxuICAgICAgICAgICAgICAgICAgICBlbmRUaW1lOiBcIjFtIGFnb1wiLFxuICAgICAgICAgICAgICAgICAgICBzdGFydFRpbWU6IFwiMTFtIGFnb1wiLFxuICAgICAgICAgICAgICAgICAgICBudW1WYWx1ZXNQZXJOb2RlOiAxMDAsXG4gICAgICAgICAgICAgICAgICAgIHJldHVybkJvdW5kczogdHJ1ZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHZhbGlkYXRlOiAodmFsKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWwgPT09IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLy8gZm9yIGFjdGlvbiByZWFkIEhpc3RvcnlcbiAgICAgICAgICAgIG5vZGVJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBvdXRwdXRUeXBlOiB7IHZhbHVlOiBcIlZhbHVlXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIH0sXG4gICAgICAgIC8vIGlucHV0czosXG4gICAgICAgIG91dHB1dHM6IDIsIC8vIDIgb3V0cHV0LCBzZWNvbmQgZm9yIHJhdyBub2RlLW9wY3VhIGRpYWdub3N0aWNzIG9yIG1vcmUgY29tcGxldGUgbWVzc2FnZVxuICAgICAgICBsYWJlbCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgXCJPUENVQSBDbGllbnQgSGlzdG9yeVJlYWRcIjtcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWxTdHlsZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgPyBcIm5vZGVfbGFiZWxfaXRhbGljXCIgOiBcIlwiO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRwcmVwYXJlKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXM7XG4gICAgICAgICAgICBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQoKTtcbiAgICAgICAgICAgIG5vZGUuaW5wdXRzID0gMTtcbiAgICAgICAgICAgIGNvbnN0ICRub2RlSWQgPSAkKFwiI25vZGUtaW5wdXQtbm9kZUlkXCIpO1xuICAgICAgICAgICAgJG5vZGVJZC5ub2RlQnJvd3NlcihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSksIHsgaXNTZWxlY3RhYmxlKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiVmFyaWFibGVcIjtcbiAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgICAgICQoXCIjc2VsZWN0LWhpc3RvcnktdHlwZVwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLnR5cGUpO1xuICAgICAgICAgICAgc3dpdGNoIChub2RlLmhpc3RvcnlSZWFkUGFyYW0udHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJyYXdcIjpcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXJhdy1zdGFydFRpbWVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5zdGFydFRpbWUpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcmF3LWVuZFRpbWVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5lbmRUaW1lKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXJhdy1udW1WYWx1ZXNQZXJOb2RlXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0ubnVtVmFsdWVzUGVyTm9kZSk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1yZXR1cm5Cb3VuZHNcIikucHJvcChcImNoZWNrZWRcIiwgbm9kZS5oaXN0b3J5UmVhZFBhcmFtLnJldHVybkJvdW5kcyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgXCJtb2RpZmllZFwiOlxuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtbW9kaWZpZWQtc3RhcnRUaW1lXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0uc3RhcnRUaW1lKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LW1vZGlmaWVkLWVuZFRpbWVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5lbmRUaW1lKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LW1vZGlmaWVkLW51bVZhbHVlc1Blck5vZGVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5udW1WYWx1ZXNQZXJOb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LW1vZGlmaWVkLXJldHVybkJvdW5kc1wiKS5wcm9wKFwiY2hlY2tlZFwiLCBub2RlLmhpc3RvcnlSZWFkUGFyYW0ucmV0dXJuQm91bmRzKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBcInByb2Nlc3NlZC1kZXRhaWxzXCI6XG4gICAgICAgICAgICAgICAgICAgIG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5hZ2dyZWdhdGVDb25maWd1cmF0aW9uID0gbm9kZS5oaXN0b3J5UmVhZFBhcmFtLmFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24gfHwge307XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1zdGFydFRpbWVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5zdGFydFRpbWUpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtZW5kVGltZVwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLmVuZFRpbWUpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtcHJvY2Vzc2luZ0ludGVydmFsXCIpLnZhbChub2RlLmhpc3RvcnlSZWFkUGFyYW0ucHJvY2Vzc2luZ0ludGVydmFsKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZVR5cGVcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5hZ2dyZWdhdGVUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24tdXNlU2VydmVyQ2FwYWJpbGl0aWVzRGVmYXVsdHNcIikucHJvcChcImNoZWNrZWRcIiwgbm9kZS5oaXN0b3J5UmVhZFBhcmFtLmFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24udXNlU2VydmVyQ2FwYWJpbGl0aWVzRGVmYXVsdHMpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlQ29uZmlndXJhdGlvbi10cmVhdFVuY2VydGFpbkFzQmFkXCIpLnByb3AoXCJjaGVja2VkXCIsIG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5hZ2dyZWdhdGVDb25maWd1cmF0aW9uLnRyZWF0VW5jZXJ0YWluQXNCYWQpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlQ29uZmlndXJhdGlvbi1wZXJjZW50RGF0YUJhZFwiKS52YWwobm9kZS5oaXN0b3J5UmVhZFBhcmFtLmFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24ucGVyY2VudERhdGFCYWQpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlQ29uZmlndXJhdGlvbi1wZXJjZW50RGF0YUdvb2RcIikudmFsKG5vZGUuaGlzdG9yeVJlYWRQYXJhbS5hZ2dyZWdhdGVDb25maWd1cmF0aW9uLnBlcmNlbnREYXRhR29vZCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVDb25maWd1cmF0aW9uLXVzZVNsb3BlZEV4dHJhcG9sYXRpb25cIikucHJvcChcImNoZWNrZWRcIiwgbm9kZS5oaXN0b3J5UmVhZFBhcmFtLmFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24udXNlU2xvcGVkRXh0cmFwb2xhdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSBhZHZhbmNlZCBjb250cm9sc1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiBoaWRlQWxsU2VjdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLXJhd1wiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1tb2RpZmllZFwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1wcm9jZXNzZWQtZGV0YWlsc1wiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1hdC10aW1lXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLWFubm90YXRpb24tZGF0YVwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1ldmVudFwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHRvZ2dsZVNlY3Rpb25zKCkge1xuICAgICAgICAgICAgICAgICAgICBoaWRlQWxsU2VjdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ZWRWYWx1ZSA9ICQoXCIjc2VsZWN0LWhpc3RvcnktdHlwZVwiKS52YWwoKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gYWxlcnQoXCJ0b2dnbGVTZWN0aW9ucyBcIiArIHNlbGVjdGVkVmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tXCIgKyBzZWxlY3RlZFZhbHVlKS5zaG93KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICQoXCIjc2VsZWN0LWhpc3RvcnktdHlwZVwiKS5vbihcImNoYW5nZVwiLCB0b2dnbGVTZWN0aW9ucyk7XG4gICAgICAgICAgICAgICAgdG9nZ2xlU2VjdGlvbnMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0c2F2ZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlQXNUZXh0ID0gKGEpID0+IChhLnZhbCgpID09IHVuZGVmaW5lZCA/IFwiXCIgOiBhLnZhbCgpLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgY29uc3QgdmFsdWVBc051bWJlciA9IChhKSA9PiAoYS52YWwoKSA9PSB1bmRlZmluZWQgPyAwIDogYS52YWwoKSk7XG4gICAgICAgICAgICBjb25zdCB0eXBlID0gJChcIiNzZWxlY3QtaGlzdG9yeS10eXBlXCIpLnZhbCgpO1xuICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcInJhd1wiOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpc3RvcnlSZWFkUGFyYW0gPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcInJhd1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lOiB2YWx1ZUFzVGV4dCgkKFwiI25vZGUtaW5wdXQtcmF3LXN0YXJ0VGltZVwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRUaW1lOiB2YWx1ZUFzVGV4dCgkKFwiI25vZGUtaW5wdXQtcmF3LWVuZFRpbWVcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbnVtVmFsdWVzUGVyTm9kZTogdmFsdWVBc051bWJlcigkKFwiI25vZGUtaW5wdXQtcmF3LW51bVZhbHVlc1Blck5vZGVcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuQm91bmRzOiAkKFwiI25vZGUtaW5wdXQtcmV0dXJuQm91bmRzXCIpLnByb3AoXCJjaGVja2VkXCIpLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwibW9kaWZpZWRcIjpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaXN0b3J5UmVhZFBhcmFtID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJtb2RpZmllZFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lOiB2YWx1ZUFzVGV4dCgkKFwiI25vZGUtaW5wdXQtbW9kaWZpZWQtc3RhcnRUaW1lXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZFRpbWU6IHZhbHVlQXNUZXh0KCQoXCIjbm9kZS1pbnB1dC1tb2RpZmllZC1lbmRUaW1lXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bVZhbHVlc1Blck5vZGU6IHZhbHVlQXNOdW1iZXIoJChcIiNub2RlLWlucHV0LW1vZGlmaWVkLW51bVZhbHVlc1Blck5vZGVcIikpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuQm91bmRzOiAkKFwiI25vZGUtaW5wdXQtbW9kaWZpZWQtcmV0dXJuQm91bmRzXCIpLnByb3AoXCJjaGVja2VkXCIpLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIFwicHJvY2Vzc2VkLWRldGFpbHNcIjpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaXN0b3J5UmVhZFBhcmFtID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJwcm9jZXNzZWQtZGV0YWlsc1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRUaW1lOiB2YWx1ZUFzVGV4dCgkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtc3RhcnRUaW1lXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZFRpbWU6IHZhbHVlQXNUZXh0KCQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1lbmRUaW1lXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NpbmdJbnRlcnZhbDogdmFsdWVBc051bWJlcigkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtcHJvY2Vzc2luZ0ludGVydmFsXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFnZ3JlZ2F0ZVR5cGU6IHZhbHVlQXNUZXh0KCQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVUeXBlXCIpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VTZXJ2ZXJDYXBhYmlsaXRpZXNEZWZhdWx0czogJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24tdXNlU2VydmVyQ2FwYWJpbGl0aWVzRGVmYXVsdHNcIikucHJvcChcImNoZWNrZWRcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJlYXRVbmNlcnRhaW5Bc0JhZDogJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24tdHJlYXRVbmNlcnRhaW5Bc0JhZFwiKS5wcm9wKFwiY2hlY2tlZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJjZW50RGF0YUJhZDogdmFsdWVBc051bWJlcigkKFwiI25vZGUtaW5wdXQtcHJvY2Vzc2VkLWRldGFpbHMtYWdncmVnYXRlQ29uZmlndXJhdGlvbi1wZXJjZW50RGF0YUJhZFwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVyY2VudERhdGFHb29kOiB2YWx1ZUFzTnVtYmVyKCQoXCIjbm9kZS1pbnB1dC1wcm9jZXNzZWQtZGV0YWlscy1hZ2dyZWdhdGVDb25maWd1cmF0aW9uLXBlcmNlbnREYXRhR29vZFwiKSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlU2xvcGVkRXh0cmFwb2xhdGlvbjogJChcIiNub2RlLWlucHV0LXByb2Nlc3NlZC1kZXRhaWxzLWFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb24tdXNlU2xvcGVkRXh0cmFwb2xhdGlvblwiKS5wcm9wKFwiY2hlY2tlZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
9
+ </script>
10
+ <script type="text/x-red" data-template-name="OpcUa-Client2-HistoryRead">
11
+ <style>
12
+ .my-checkbox-label {
13
+ width: fit-content !important;
14
+ cursor: pointer;
15
+ user-select: none;
16
+ }
17
+
18
+ .my-checkbox-input {
19
+ visibility: hidden;
20
+ }
21
+
22
+ .my-checkbox-mark {
23
+ margin-left: 20px;
24
+ font-family: "FontAwesome";
25
+ font-size: 24px;
26
+ }
27
+
28
+ .my-checkbox-input:checked ~ .my-checkbox-mark::before {
29
+ content: "\f205";
30
+ /* fa-toggle-on */
31
+ }
32
+
33
+ .my-checkbox-input:not(checked) ~ .my-checkbox-mark::before {
34
+ content: "\f204";
35
+ /* fa-toggle-off */
36
+ }
37
+ </style>
38
+ <h3>
39
+ Opc-UA HistoryRead
40
+ <a href="https://opcua-for-node-red.doc.sterfive.com/docs/read/read-general-concept" target="_blank"
41
+ ><i class="fa fa-message-question"></i
42
+ ></a>
43
+ </h3>
44
+ <div class="form-row">
45
+ <label for="node-input-name"><i class="icon-tasks"></i>Name</label>
46
+ <input type="text" id="node-input-name" placeholder="enter the friendly name of the node" />
47
+ </div>
48
+ <div class="form-row">
49
+ <label for="node-input-endpoint"><i class="icon-tasks"></i> Endpoint</label>
50
+ <input type="text" id="node-input-endpoint" placeholder="opc.tcp://localhost:4334" />
51
+ </div>
52
+
53
+ <div class="form-row">
54
+ <label for="select-history-type">History Type</label>
55
+ <select type="text" id="select-history-type" style="width: 72%">
56
+ <option selected value="raw">Raw</option>
57
+ <option value="modified">Raw-Modified</option>
58
+ <option value="processed-details">Processed Details</option>
59
+ <option value="event">Event</option>
60
+ <option value="at-time">At Time</option>
61
+ <option value="annotation-data">Annotation Data</option>
62
+ </select>
63
+ </div>
64
+
65
+ <div id="section-raw">
66
+ <fieldset>
67
+ <legend>Read Raw</legend>
68
+ </fieldset>
69
+ <div class="form-row">
70
+ <label for="node-input-raw-startTime">Start Time</label>
71
+ <input type="datetime" id="node-input-raw-startTime" placeholder="" />
72
+ </div>
73
+ <div class="form-row">
74
+ <label for="node-input-raw-endTime">End Time</label>
75
+ <input type="datetime" id="node-input-raw-endTime" placeholder="" />
76
+ </div>
77
+ <div class="form-row">
78
+ <label for="node-input-raw-numValuesPerNode">Number of Values Per Node</label>
79
+ <input type="number" min="0" id="node-input-raw-numValuesPerNode" placeholder="" />
80
+ </div>
81
+ <div class="form-row">
82
+ <label class="my-checkbox-label" for="node-input-raw-returnBounds">return Bounds</label>
83
+ <input type="checkbox" checked class="my-checkbox-input" id="node-input-raw-returnBound" />
84
+ <span class="my-checkbox-mark"></span>
85
+ </div>
86
+ </div>
87
+
88
+ <div id="section-modified">
89
+ <fieldset>
90
+ <legend>Read Raw Modified</legend>
91
+ </fieldset>
92
+ <div class="form-row">
93
+ <label for="node-input-modified-startTime">Start Time</label>
94
+ <input type="datetime" id="node-input-modified-startTime" placeholder="" />
95
+ </div>
96
+ <div class="form-row">
97
+ <label for="node-input-modified-endTime">End Time</label>
98
+ <input type="datetime" id="node-input-modified-endTime" placeholder="" />
99
+ </div>
100
+ <div class="form-row">
101
+ <label for="node-input-modified-numValuesPerNode">Number of Values Per Node</label>
102
+ <input type="number" min="0" id="node-input-modified-numValuesPerNode" placeholder="" />
103
+ </div>
104
+ <div class="form-row">
105
+ <label for="node-input-modified-returnBounds">return Bounds ? </label>
106
+ <input type="number" min="0" id="node-input-returnBounds" placeholder="" />
107
+ </div>
108
+ </div>
109
+
110
+ <div id="section-processed-details">
111
+ <fieldset>
112
+ <legend>Read Processed Details</legend>
113
+ <div class="form-row">
114
+ <label for="node-input-processed-details-startTime">Start Time</label>
115
+ <input type="datetime" id="node-input-processed-details-startTime" placeholder="2 minutes ago" />
116
+ </div>
117
+ <div class="form-row">
118
+ <label for="node-input-processed-details-endTime">End Time</label>
119
+ <input type="datetime" id="node-input-processed-details-endTime" placeholder="1 minute ago" />
120
+ </div>
121
+ <div class="form-row">
122
+ <label for="node-input-processed-details-processingInterval">Processing Interval</label>
123
+ <input type="type" id="node-input-processed-details-processingInterval" placeholder="2 seconds" />
124
+ </div>
125
+
126
+ <div class="form-row">
127
+ <label for="node-input-processed-details-aggregateType">Aggregate Type</label>
128
+ <select type="text" id="node-input-processed-details-aggregateType" style="width: 72%">
129
+ <option selected value="Interpolated">Interpolative</option>
130
+ <option value="Count">Count</option>
131
+ <option value="Average">Average</option>
132
+ <option value="Delta">Delta</option>
133
+ <option value="DeltaBounds">Delta Bounds</option>
134
+ <option value="DurationBad">Duration Bad</option>
135
+ <option value="DurationGood">Duration Good</option>
136
+ <option value="Maximum">Maximum</option>
137
+ <option value="Maximum2">Maximum2</option>
138
+ <option value="Minimum">Minimum</option>
139
+ <option value="Minimum2">Minimum2</option>
140
+ <option value="Minimum2">Percent Bad</option>
141
+ <option value="Minimum2">Percent Good</option>
142
+ <option value="Range">Range</option>
143
+ <option value="StandardDeviationPopulation">Standard Deviation Population</option>
144
+ <option value="Total2">Total2</option>
145
+ <option value="Total">Total</option>
146
+ <option value="VariancePopulation">Variance Population</option>
147
+ <option value="VarianceSample">Variance Sample</option>
148
+ <option value="WorstQuality">Worst Quality</option>
149
+ <option value="WorstQuality2">Worst Quality2</option>
150
+ </select>
151
+ </div>
152
+
153
+ <!--
154
+ aggregateConfiguration {
155
+ useServerCapabilitiesDefaults: boolean;
156
+ treatUncertainAsBad: boolean;
157
+ percentDataBad: number /*Byte*/;
158
+ percentDataGood: number /* Byte*/;
159
+ useSlopedExtrapolation: boolean;
160
+ }
161
+ -->
162
+ <div class="form-row">
163
+ <label for="node-input-processed-details-aggregateConfiguration-useServerCapabilitiesDefaults"
164
+ >Use server capabilities</label
165
+ >
166
+ <input
167
+ type="checkbox"
168
+ id="node-input-processed-details-aggregateConfiguration-useServerCapabilitiesDefaults"
169
+ placeholder=""
170
+ />
171
+ </div>
172
+ <div class="form-row">
173
+ <label for="node-input-processed-details-aggregateConfiguration-treatUncertainAsBad">Treat uncertain as Bad</label>
174
+ <input type="checkbox" id="node-input-processed-details-aggregateConfiguration-treatUncertainAsBad" placeholder="" />
175
+ </div>
176
+ <div class="form-row">
177
+ <label for="node-input-processed-details-aggregateConfiguration-percentDataBad">Percent data Bad </label>
178
+ <input
179
+ type="number"
180
+ min="0"
181
+ max="100"
182
+ id="node-input-processed-details-aggregateConfiguration-percentDataBad"
183
+ placeholder=""
184
+ />
185
+ </div>
186
+ <div class="form-row">
187
+ <label for="node-input-processed-details-aggregateConfiguration-percentDataGood">Percent data Good </label>
188
+ <input
189
+ type="number"
190
+ min="0"
191
+ max="100"
192
+ id="node-input-processed-details-aggregateConfiguration-percentDataGood"
193
+ placeholder=""
194
+ />
195
+ </div>
196
+
197
+ <div class="form-row">
198
+ <label for="node-input-processed-details-aggregateConfiguration-useSlopedExtrapolation">Use sloped extrapolation</label>
199
+ <input type="checkbox" id="node-input-processed-details-aggregateConfiguration-useSlopedExtrapolation" placeholder="" />
200
+ </div>
201
+ </fieldset>
202
+ </div>
203
+
204
+ <div id="section-event">
205
+ <fieldset>
206
+ <legend>Event</legend>
207
+ <p>Contact Sterfive.com to get this implemented</p>
208
+ </fieldset>
209
+ </div>
210
+
211
+ <div id="section-at-time">
212
+ <fieldset>
213
+ <legend>At Time</legend>
214
+ <p>Contact Sterfive.com to get this implemented</p>
215
+ </fieldset>
216
+ </div>
217
+
218
+ <div id="section-annotation-data">
219
+ <fieldset>
220
+ <legend>At Time</legend>
221
+ <p>Contact Sterfive.com to get this implemented</p>
222
+ </fieldset>
223
+ </div>
224
+
225
+ <fieldset>
226
+ <legend>Node</legend>
227
+
228
+ <div class="form-row">
229
+ <label for="node-input-attributeId">AttributeId</label>
230
+ <select type="text" id="node-input-attributeId" style="width: 72%">
231
+ <option selected value="Value">Value</option>
232
+ <option value="DataType">DataType</option>
233
+ <option value="BrowseName">BrowseName</option>
234
+ <option value="DisplayName">DisplayName</option>
235
+ <option value="All">All</option>
236
+ </select>
237
+ </div>
238
+
239
+ <div class="form-row">
240
+ <label for="node-input-nodeId"><i class="fa fa-tag"></i>NodeId</label>
241
+ <input type="text" id="node-input-nodeId" placeholder="ns=2;s=Variable1 or empty" />
242
+ </div>
243
+
244
+ <div class="form-row">
245
+ <label for="node-input-outputType">Output type</label>
246
+ <select type="text" id="node-input-outputType" style="width: 72%">
247
+ <option selected value="TimeValue">Time+Value</option>
248
+ <option value="TimeVariant">Time+Variant</option>
249
+ <option value="DataValue">DataValue</option>
250
+ <option value="DataValueReversible">DataValueReversible</option>
251
+ <option value="StatusCode">StatusCode</option>
252
+ </select>
253
+ </div>
254
+ </fieldset>
255
+
256
+ </script>
257
+
258
+ <script type="text/markdown" data-help-name="OpcUa-Client2-HistoryRead">
259
+ perform a HistoryRead action on a OpcUA Server
260
+
261
+ ## HistoryRead action
262
+
263
+ ## Input
264
+
265
+ ## Output
266
+
267
+ ### output type
268
+
269
+ </script>
270
+ //# sourceMappingURL=OpcUa-Client2-HistoryRead.html.map
@@ -0,0 +1,2 @@
1
+ const { init_OpcUa_Client2_HistoryRead} = require("../../all.js");
2
+ module.exports = init_OpcUa_Client2_HistoryRead;