PageSourceSearch

https://www.lrt.lt/static/theo/THEOplayerUIHelper.js?v=257

js lrt.lt collected 2026-09-24 08:34:39 UTC 25,865 bytes, 2 lines download raw bytes

1!function(e){var t={};function o(n){if(t[n])return t[n].exports;var s=t[n]={i:n,l:!1,exports:{}};return e[n].call(s.exports,s,s.exports,o),s.l=!0,s.exports}o.m=e,o.c=t,o.d=function(e,t,n){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var s in e)o.d(n,s,function(t){return e[t]}.bind(null,s));return n},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=0)}([function(e,t,o){"use strict";o.r(t);window.THEOplayerUIHelper=class{constructor(e){this.player=e,this.element=e.element.parentNode.parentNode}getAllowedControls(e){return{fullscreen:!0,play:!0,mute:!0,settings:!0,"text-track":!0,"audio-track":!0,chromecast:!0,airplay:!0,vr:!0}[e]}getAllowedMenuItems(e){return{speed:"Open the video speed settings menu",quality:"Open the video quality settings menu"}[e]}
1getControlElement(e){return this.element.querySelector(".vjs-"+e+"-control")||this.element.querySelector(".theo-"+e+"-control-button")||this.element.querySelector(".theo-"+e+"-button")}hideControl(e){let t=this.getControlElement(e);t&&this.getAllowedControls(e)&&(t.style.display="none")}showControl(e){let t=this.getControlElement(e);t&&this.getAllowedControls(e)&&(t.style.display="")}isControlDisplayNone(e){return"none"==this.getControlElement(e).style.display}showTimeline(){let e=document.querySelector(".vjs-progress-control");e&&(e.style.display="flex")}hideTimeline(){let e=document.querySelector(".vjs-progress-control");e&&(e.style.display="none")}hideMenuItem(e){let t=this.getAllowedMenuItems(e);if(t){let e=document.querySelector('li[aria-label="'+t+'"].theo-menu-item');e&&(e.style.display="none")}}showMenuItem(e){let t=this.getAllowedMenuItems(e);if(t){let e=document.querySelector('li[aria-label="'+t+'"].theo-menu-item');e&&(e.style.display="")}}createOverlay(e){this.element.appendChild(e)}addLogo(e){let{file:t,hide:o,link:n,margin:s,position:l}=e;s=s||0;let i,r=document.querySelector(".video-js"),a=document.createElement("img");switch(a.setAttribute("src",t),a.classList.add("logo"),o&&(document.styleSheets[0].addRule(".vjs-user-inactive .logo.hide","opacity: 0;"),document.styleSheets[0].addRule(".vjs-user-inactive .logo.hide","transition: all 0.5s;"),a.classList.add("hide")),"bottom-right"==l&&document.styleSheets[0].addRule(".theo-menu-opened .logo","opacity: 0;"),"bottom-left"!=l&&"bottom-right"!=l||(document.styleSheets[0].addRule(".vjs-user-active .logo","margin-bottom: 3em;"),document.styleSheets[0].addRule(".vjs-user-active .logo","-webkit-transition: margin 0.3s ease-out; -moz-transition: margin 0.3s ease-out; -o-transition: margin 0.3s ease-out;"),document.styleSheets[0].addRule(".vjs-user-inactive .logo","-webkit-transition: margin 0.3s ease-out; -moz-transition: margin 0.3s ease-out; -o-transition: margin 0.3s ease-out;"),document.styleSheets[0].addRule(".vjs-paused .logo","margin-bottom: 3em;"),document.styleSheets[0].addRule(".vjs-paused .logo","-webkit-transition: margin 0.3s ease-out; -moz-transition: margin 0.3s ease-out; -o-transition: margin 0.3s ease-out;"),document.styleSheets[0].addRule(".vjs-playing .logo","-webkit-transition: margin 0.3s ease-out; -moz-transition: margin 0.3s ease-out; -o-transition: margin 0.3s ease-out;")),n?((i=document.createElement("a")).setAttribute("href",n),i.setAttribute("target","_blank"),i.appendChild(a),r.appendChild(i)):(r.appendChild(a),a.style.pointerEvents="none"),a.style.position="absolute",a.style.maxHeight="50%",a.style.maxWidth="50%",l){case"top-right":a.style.top=`${s}px`,a.style.right=`${s}px`;break;case"bottom-left":a.style.bottom=`${s}px`,a.style.left=`${s}px`;break;case"bottom-right":a.style.bottom=`${s}px`,a.style.right=`${s}px`;break;case"top-left":default:a.style.top=`${s}px`,a.style.left=`${s}px`}}addButton(e,t,o){var n=THEOplayer.videojs.getComponent("Button"),s=THEOplayer.videojs.extend(n,{constructor:function(){if(n.apply(this,arguments),o){var e=document.createElement("span");e.className="theo-button-tooltip vjs-hidden",e.innerText="Info";let t=function(){e.classList.toggle("vjs-hidden")};this.el().addEventListener("mouseover",t),this.el().addEventListener("mouseout",t),this.el().appendChild(e)}},handleClick:function(){e()},buildCSSClass:function(){return t+" vjs-control vjs-button"}});return THEOplayer.videojs.registerComponent("MyButton",s),player.ui.getChild("controlBar").addChild("myButton",{}),s}}}]);
2//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vLy4vc3JjL2luZGV4LmpzIiwid2VicGFjazovLy8uL3NyYy9USEVPcGxheWVyVUlIZWxwZXIuanMiXSwibmFtZXMiOlsiaW5zdGFsbGVkTW9kdWxlcyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJtb2R1bGVJZCIsImV4cG9ydHMiLCJtb2R1bGUiLCJpIiwibCIsIm1vZHVsZXMiLCJjYWxsIiwibSIsImMiLCJkIiwibmFtZSIsImdldHRlciIsIm8iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJyIiwiU3ltYm9sIiwidG9TdHJpbmdUYWciLCJ2YWx1ZSIsInQiLCJtb2RlIiwiX19lc01vZHVsZSIsIm5zIiwiY3JlYXRlIiwia2V5IiwiYmluZCIsIm4iLCJvYmplY3QiLCJwcm9wZXJ0eSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwicCIsInMiLCJ3aW5kb3ciLCJUSEVPcGxheWVyVUlIZWxwZXIiLCJwbGF5ZXIiLCJ0aGlzIiwiZWxlbWVudCIsInBhcmVudE5vZGUiLCJjb250cm9sIiwibWVudUl0ZW0iLCJxdWVyeVNlbGVjdG9yIiwiY29udHJvbEVsZW1lbnQiLCJnZXRDb250cm9sRWxlbWVudCIsImdldEFsbG93ZWRDb250cm9scyIsInN0eWxlIiwiZGlzcGxheSIsInRpbWVsaW5lRWxlbWVudCIsImRvY3VtZW50IiwiYXJpYUxhYmVsIiwiZ2V0QWxsb3dlZE1lbnVJdGVtcyIsIm1lbnVJdGVtRWxlbWVudCIsImRpdkVsZW1lbnQiLCJhcHBlbmRDaGlsZCIsInBhcmFtZXRlcnMiLCJmaWxlIiwiaGlkZSIsImxpbmsiLCJtYXJnaW4iLCJwb3NpdGlvbiIsImNsaWNrVGhyb3VnaCIsInRoZW9wbGF5ZXIiLCJsb2dvIiwiY3JlYXRlRWxlbWVudCIsInNldEF0dHJpYnV0ZSIsImNsYXNzTGlzdCIsImFkZCIsInN0eWxlU2hlZXRzIiwiYWRkUnVsZSIsInBvaW50ZXJFdmVudHMiLCJtYXhIZWlnaHQiLCJtYXhXaWR0aCIsInRvcCIsInJpZ2h0IiwiYm90dG9tIiwibGVmdCIsImNsaWNrQ2FsbGJhY2siLCJjc3NDbGFzc05hbWUiLCJ0b29sdGlwVGV4dCIsIkJ1dHRvbiIsIlRIRU9wbGF5ZXIiLCJ2aWRlb2pzIiwiZ2V0Q29tcG9uZW50IiwiTXlCdXR0b24iLCJleHRlbmQiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiYXJndW1lbnRzIiwidG9vbHRpcFNwYW4iLCJjbGFzc05hbWUiLCJpbm5lclRleHQiLCJ0b2dnbGVUb29sdGlwIiwidG9nZ2xlIiwiZWwiLCJhZGRFdmVudExpc3RlbmVyIiwiaGFuZGxlQ2xpY2siLCJidWlsZENTU0NsYXNzIiwicmVnaXN0ZXJDb21wb25lbnQiLCJ1aSIsImdldENoaWxkIiwiYWRkQ2hpbGQiXSwibWFwcGluZ3MiOiJhQUNFLElBQUlBLEVBQW1CLEdBR3ZCLFNBQVNDLEVBQW9CQyxHQUc1QixHQUFHRixFQUFpQkUsR0FDbkIsT0FBT0YsRUFBaUJFLEdBQVVDLFFBR25DLElBQUlDLEVBQVNKLEVBQWlCRSxHQU
2FZLENBQ3pDRyxFQUFHSCxFQUNISSxHQUFHLEVBQ0hILFFBQVMsSUFVVixPQU5BSSxFQUFRTCxHQUFVTSxLQUFLSixFQUFPRCxRQUFTQyxFQUFRQSxFQUFPRCxRQUFTRixHQUcvREcsRUFBT0UsR0FBSSxFQUdKRixFQUFPRCxRQUtmRixFQUFvQlEsRUFBSUYsRUFHeEJOLEVBQW9CUyxFQUFJVixFQUd4QkMsRUFBb0JVLEVBQUksU0FBU1IsRUFBU1MsRUFBTUMsR0FDM0NaLEVBQW9CYSxFQUFFWCxFQUFTUyxJQUNsQ0csT0FBT0MsZUFBZWIsRUFBU1MsRUFBTSxDQUFFSyxZQUFZLEVBQU1DLElBQUtMLEtBS2hFWixFQUFvQmtCLEVBQUksU0FBU2hCLEdBQ1gsb0JBQVhpQixRQUEwQkEsT0FBT0MsYUFDMUNOLE9BQU9DLGVBQWViLEVBQVNpQixPQUFPQyxZQUFhLENBQUVDLE1BQU8sV0FFN0RQLE9BQU9DLGVBQWViLEVBQVMsYUFBYyxDQUFFbUIsT0FBTyxLQVF2RHJCLEVBQW9Cc0IsRUFBSSxTQUFTRCxFQUFPRSxHQUV2QyxHQURVLEVBQVBBLElBQVVGLEVBQVFyQixFQUFvQnFCLElBQy9CLEVBQVBFLEVBQVUsT0FBT0YsRUFDcEIsR0FBVyxFQUFQRSxHQUE4QixpQkFBVkYsR0FBc0JBLEdBQVNBLEVBQU1HLFdBQVksT0FBT0gsRUFDaEYsSUFBSUksRUFBS1gsT0FBT1ksT0FBTyxNQUd2QixHQUZBMUIsRUFBb0JrQixFQUFFTyxHQUN0QlgsT0FBT0MsZUFBZVUsRUFBSSxVQUFXLENBQUVULFlBQVksRUFBTUssTUFBT0EsSUFDdEQsRUFBUEUsR0FBNEIsaUJBQVRGLEVBQW1CLElBQUksSUFBSU0sS0FBT04sRUFBT3JCLEVBQW9CVSxFQUFFZSxFQUFJRSxFQUFLLFNBQVNBLEdBQU8sT0FBT04sRUFBTU0sSUFBUUMsS0FBSyxLQUFNRCxJQUM5SSxPQUFPRixHQUlSekIsRUFBb0I2QixFQUFJLFNBQVMxQixHQUNoQyxJQUFJUyxFQUFTVCxHQUFVQSxFQUFPcUIsV0FDN0IsV0FBd0IsT0FBT3JCLEVBQWdCL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FLakMsVUFBVWtCLEVBQWVDLEVBQWNDLEdBQ25DLElBQUlDLEVBQVNDLFdBQVdDLFFBQVFDLGFBQWEsVUFDekNDLEVBQVdILFdBQVdDLFFBQVFHLE9BQU9MLEVBQVEsQ0FDN0NNLFlBQWEsV0FLVCxHQUpBTixFQU
2FPTyxNQUFNbEQsS0FBTW1ELFdBSWZULEVBQWEsQ0FFYixJQUFJVSxFQUFjeEMsU0FBU2UsY0FBYyxRQUN6Q3lCLEVBQVlDLFVBQVksaUNBQ3hCRCxFQUFZRSxVQUFZLE9BRXhCLElBQUlDLEVBQWdCLFdBQ2hCSCxFQUFZdkIsVUFBVTJCLE9BQU8sZUFHakN4RCxLQUFLeUQsS0FBS0MsaUJBQWlCLFlBQWFILEdBQ3hDdkQsS0FBS3lELEtBQUtDLGlCQUFpQixXQUFZSCxHQUN2Q3ZELEtBQUt5RCxLQUFLeEMsWUFBWW1DLEtBRzlCTyxZQUFhLFdBQ1RuQixLQUVKb0IsY0FBZSxXQUNYLE9BQU9uQixFQUFhLDZCQU01QixPQUZBRyxXQUFXQyxRQUFRZ0Isa0JBQWtCLFdBQVlkLEdBQ2pEaEQsT0FBTytELEdBQUdDLFNBQVMsY0FBY0MsU0FBUyxXQUFZLElBQy9DakIiLCJmaWxlIjoiVEhFT3BsYXllclVJSGVscGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHtcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbiBcdFx0fVxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0aTogbW9kdWxlSWQsXG4gXHRcdFx0bDogZmFsc2UsXG4gXHRcdFx0ZXhwb3J0czoge31cbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubCA9IHRydWU7XG5cbiBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbiBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuIFx0fVxuXG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbiBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZ2V0dGVyIH0pO1xuIFx0XHR9XG4gXHR9O1xuXG4gXHQvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSBmdW5jdGlvbihleHBvcnRzKSB7XG4gXHRcdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuIFx0XHR9XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gXHR9O1xuXG4gXHQvLyBjcmVhdGUgYSBmYWtlIG5hbWVzcGFjZSBvYmplY3RcbiBcdC8vIG1vZGUgJiAxOiB2YWx1ZSBpcyBhIG1vZHVsZSBpZCwgcmVxdWlyZSBpdFxuIFx0Ly8gbW9kZSAmIDI6IG1lcmdlIGFsbCBwcm9wZXJ0aWVzIG9mIHZhbHVlIGludG8gdGhlIG5zXG4gXHQvLyBtb2RlICYgNDogcmV0dXJuIHZhbHVlIHdoZW4gYWxyZWFkeSBucyBvYmplY3RcbiBcdC8vIG1vZGUgJiA4fDE6IGJlaGF2ZSBsaWtlIHJlcXVpcmVcbiBcdF9fd2VicGFja19yZXF1aXJlX18udCA9IGZ1bmN0aW9uKHZhbHVlLCBtb2RlKSB7XG4gXHRcdGlmKG1vZGUgJiAxKSB2YWx1ZSA9IF9fd2VicGFja19yZXF1aXJlX18odmFsdWUpO1xuIFx0XHRpZihtb2RlICYgOCkgcmV0dXJuIHZhbHVlO1xuIFx0XHRpZigobW9kZSAmIDQpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgJiYgdmFsdWUuX19lc01vZHVsZSkgcmV0dXJuIHZhbHVlO1xuIFx0XHR2YXIgbnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIobnMpO1xuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobnMsICdkZWZhdWx0JywgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdmFsdWUgfSk7XG4gXHRcdGlmKG1vZGUgJiAyICYmIHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykgZm9yKHZhciBrZXkgaW4gdmFsdWUpIF9fd2VicGFja19yZXF1aXJlX18uZChucywga2V5LCBmdW5jdGlvbihrZXkpIHsgcmV0dXJuIHZhbHVlW2tleV07IH0uYmluZChudWxsLCBrZXkpKTtcbiBcdFx0cmV0dXJuIG5zO1xuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcblxuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybi
2BfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IDApO1xuIiwiaW1wb3J0IHtUSEVPcGxheWVyVUlIZWxwZXJ9IGZyb20gXCIuL1RIRU9wbGF5ZXJVSUhlbHBlclwiO1xud2luZG93LlRIRU9wbGF5ZXJVSUhlbHBlciA9IFRIRU9wbGF5ZXJVSUhlbHBlcjsiLCJleHBvcnQgY2xhc3MgVEhFT3BsYXllclVJSGVscGVyIHtcbiAgICBjb25zdHJ1Y3RvcihwbGF5ZXIpIHtcbiAgICAgICAgdGhpcy5wbGF5ZXIgPSBwbGF5ZXI7XG4gICAgICAgIHRoaXMuZWxlbWVudCA9IHBsYXllci5lbGVtZW50LnBhcmVudE5vZGUucGFyZW50Tm9kZTtcbiAgICB9XG5cbiAgICBnZXRBbGxvd2VkQ29udHJvbHMoY29udHJvbCkge1xuICAgICAgICBsZXQgYWxsb3dlZENvbnRyb2xzID0ge1xuICAgICAgICAgICAgJ2Z1bGxzY3JlZW4nOiB0cnVlLCAncGxheSc6IHRydWUsICdtdXRlJzogdHJ1ZSwgJ3NldHRpbmdzJzogdHJ1ZSwgJ3RleHQtdHJhY2snOiB0cnVlLCAnYXVkaW8tdHJhY2snOiB0cnVlLFxuICAgICAgICAgICAgJ2Nocm9tZWNhc3QnOiB0cnVlLCAnYWlycGxheSc6IHRydWUsICd2cic6IHRydWVcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGFsbG93ZWRDb250cm9sc1tjb250cm9sXTtcbiAgICB9XG5cbiAgICBnZXRBbGxvd2VkTWVudUl0ZW1zKG1lbnVJdGVtKSB7XG4gICAgICAgIGxldCBhbGxvd2VkTWVudUl0ZW1zID0ge1xuICAgICAgICAgICAgJ3NwZWVkJzogJ09wZW4gdGhlIHZpZGVvIHNwZWVkIHNldHRpbmdzIG1lbnUnLFxuICAgICAgICAgICAgJ3F1YWxpdHknOiAnT3BlbiB0aGUgdmlkZW8gcXVhbGl0eSBzZXR0aW5ncyBtZW51J1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gYWxsb3dlZE1lbnVJdGVtc1ttZW51SXRlbV1cbiAgICB9XG5cblxuICAgIGdldENvbnRyb2xFbGVtZW50KGNvbnRyb2wpIHtcbiAgICAgICAgbGV0IGNvbnRyb2xFbGVtZW50ID0gdGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy52anMtJytjb250cm9sKyctY29udHJvbCcpIHx8XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQucXVlcnlTZWxlY3RvcignLnRoZW8tJytjb250cm9sKyctY29udHJvbC1idXR0b24nKSB8fFxuICAgICAgICAgICAgdGhpcy5lbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy50aGVvLScrY29udHJvbCsnLWJ1dHRvbicpO1xuICAgICAgICByZXR1cm4gY29udHJvbEVsZW1lbnQ7XG4gICAgfVxuICAgIGhpZGVDb250cm9sKGNvbnRyb2wpIHtcbiAgICAgICAgbGV0IGNvbnRyb2xFbGVtZW50ID0gdGhpcy5nZXRDb250cm9sRWxlbWVudChjb250cm9sKTtcbiAgICAgICAgaWYgKGNvbnRyb2xFbGVtZW50ICYmIHRoaXMuZ2V0QWxsb3dlZENvbnRyb2xzKGNvbnRyb2wpKSB7XG4gICAgICAgICAgICBjb250cm9sRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICB9XG4gICAgfVxuICAgIHNob3dDb250cm9sKGNvbnRyb2wpIHtcbiAgICAgICAgbGV0IGNvbnRyb2xFbGVtZW50ID0gdGhpcy5nZXRDb250cm9sRWxlbWVudChjb250cm9sKTtcbiAgICAgICAgaWYgKGNvbnRyb2xFbGVtZW50ICYmIHRoaXMuZ2V0QWxsb3dlZENvbnRyb2xzKGNvbnRyb2wpKSB7XG4gICAgICAgICAgICBjb250cm9sRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJyc7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaXNDb250cm9sRGlzcGxheU5vbmUoY29udHJvbCkge1xuICAgICAgICBsZXQgY29udHJvbEVsZW1lbnQgPSB0aGlzLmdldENvbnRyb2xFbGVtZW50KGNvbnRyb2wpO1xuICAgICAgICByZXR1cm4gKGNvbnRyb2xFbGVtZW50LnN0eWxlLmRpc3BsYXkgPT0gJ25vbmUnKTtcbiAgICB9XG4gICAgc2hvd1RpbWVsaW5lKCkge1xuICAgICAgICBsZXQgdGltZWxpbmVFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnZqcy1wcm9ncmVzcy1jb250cm9sJyk7XG4gICAgICAgIGlmICh0aW1lbGluZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRpbWVsaW5lRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnO1xuICAgICAgICB9XG4gICAgfVxuICAgIGhpZGVUaW1lbGluZSgpIHtcbiAgICAgICAgbGV0IHRpbWVsaW5lRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy52anMtcHJvZ3Jlc3MtY29udHJvbCcpO1xuICAgICAgICBpZiAodGltZWxpbmVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aW1lbGluZUVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgfVxuICAgIH1cbiAgICBoaWRlTWVudUl0ZW0obWVudUl0ZW0pIHtcbiAgICAgICAgbGV0IGFyaWFMYWJlbCA9IHRoaXMuZ2V0QWxsb3dlZE1lbnVJdGVtcyhtZW51SXRlbSk7XG4gICAgICAgIGlmIChhcmlhTGFiZWwpIHtcbiAgICAgICAgICAgIGxldCBtZW51SXRlbUVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdsaVthcmlhLWxhYmVsPVwiJythcmlhTGFiZWwrJ1wiXS50aGVvLW1lbnUtaXRlbScpO1xuICAgICAgICAgICAgaWYgKG1lbnVJdGVtRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIG1lbnVJdGVtRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHNob3dNZW51SXRlbShtZW51SXRlbSkge1xuICAgICAgICBsZXQgYXJpYUxhYmVsID0gdGhpcy5nZXRBbGxvd2VkTWVudUl0ZW1zKG1lbnVJdGVtKTtcbiAgICAgICAgaWYgKGFyaWFMYWJlbCkge1xuICAgICAgICAgICAgbGV0IG1lbnVJdGVtRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2xpW2FyaWEtbGFiZWw9XCInK2FyaWFMYWJlbCsnXCJdLnRoZW8tbWVudS1pdGVtJyk7XG4gICAgICAgICAgICBpZiAobWVudUl0ZW1FbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgbWVudUl0ZW1FbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBjcmVhdGVPdmVybGF5KGRpdkVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKGRpdkVsZW1lbnQpO1xuICAgIH1cbiAgICBhZGRMb2dvKHBhcmFtZXRlcnMpIHtcbiAgICAgICAgbGV0IHsgZmlsZSwgaGlkZSwgbGluaywgbWFy
2Z2luLCBwb3NpdGlvbiB9ID0gcGFyYW1ldGVycztcblxuICAgICAgICBtYXJnaW4gPSBtYXJnaW4gfHwgMDtcblxuICAgICAgICBsZXQgdGhlb3BsYXllciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy52aWRlby1qcycpXG4gICAgICAgIGxldCBsb2dvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJylcbiAgICAgICAgbG9nby5zZXRBdHRyaWJ1dGUoJ3NyYycsZmlsZSlcbiAgICAgICAgbG9nby5jbGFzc0xpc3QuYWRkKCdsb2dvJylcbiAgICAgICAgXG5cbiAgICAgICAgaWYgKGhpZGUpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LnN0eWxlU2hlZXRzWzBdLmFkZFJ1bGUoJy52anMtdXNlci1pbmFjdGl2ZSAubG9nby5oaWRlJywgJ29wYWNpdHk6IDA7JylcbiAgICAgICAgICAgIGRvY3VtZW50LnN0eWxlU2hlZXRzWzBdLmFkZFJ1bGUoJy52anMtdXNlci1pbmFjdGl2ZSAubG9nby5oaWRlJywgJ3RyYW5zaXRpb246IGFsbCAwLjVzOycpXG4gICAgICAgICAgICBsb2dvLmNsYXNzTGlzdC5hZGQoJ2hpZGUnKVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBvc2l0aW9uID09IFwiYm90dG9tLXJpZ2h0XCIpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LnN0eWxlU2hlZXRzWzBdLmFkZFJ1bGUoJy50aGVvLW1lbnUtb3BlbmVkIC5sb2dvJywgJ29wYWNpdHk6IDA7JylcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwb3NpdGlvbiA9PSBcImJvdHRvbS1sZWZ0XCIgfHwgcG9zaXRpb24gPT0gXCJib3R0b20tcmlnaHRcIikge1xuICAgICAgICAgICAgZG9jdW1lbnQuc3R5bGVTaGVldHNbMF0uYWRkUnVsZSgnLnZqcy11c2VyLWFjdGl2ZSAubG9nbycsICdtYXJnaW4tYm90dG9tOiAzZW07JylcbiAgICAgICAgICAgIGRvY3VtZW50LnN0eWxlU2hlZXRzWzBdLmFkZFJ1bGUoJy52anMtdXNlci1hY3RpdmUgLmxvZ28nLCAnLXdlYmtpdC10cmFuc2l0aW9uOiBtYXJnaW4gMC4zcyBlYXNlLW91dDsgLW1vei10cmFuc2l0aW9uOiBtYXJnaW4gMC4zcyBlYXNlLW91dDsgLW8tdHJhbnNpdGlvbjogbWFyZ2luIDAuM3MgZWFzZS1vdXQ7JylcbiAgICAgICAgICAgIGRvY3VtZW50LnN0eWxlU2hlZXRzWzBdLmFkZFJ1bGUoJy52anMtdXNlci1pbmFjdGl2ZSAubG9nbycsICctd2Via2l0LXRyYW5zaXRpb246IG1hcmdpbiAwLjNzIGVhc2Utb3V0OyAtbW96LXRyYW5zaXRpb246IG1hcmdpbiAwLjNzIGVhc2Utb3V0OyAtby10cmFuc2l0aW9uOiBtYXJnaW4gMC4zcyBlYXNlLW91dDsnKVxuICAgICAgICAgICAgZG9jdW1lbnQuc3R5bGVTaGVldHNbMF0uYWRkUnVsZSgnLnZqcy1wYXVzZWQgLmxvZ28nLCAnbWFyZ2luLWJvdHRvbTogM2VtOycpXG4gICAgICAgICAgICBkb2
2N1bWVudC5zdHlsZVNoZWV0c1swXS5hZGRSdWxlKCcudmpzLXBhdXNlZCAubG9nbycsICctd2Via2l0LXRyYW5zaXRpb246IG1hcmdpbiAwLjNzIGVhc2Utb3V0OyAtbW96LXRyYW5zaXRpb246IG1hcmdpbiAwLjNzIGVhc2Utb3V0OyAtby10cmFuc2l0aW9uOiBtYXJnaW4gMC4zcyBlYXNlLW91dDsnKVxuICAgICAgICAgICAgZG9jdW1lbnQuc3R5bGVTaGVldHNbMF0uYWRkUnVsZSgnLnZqcy1wbGF5aW5nIC5sb2dvJywgJy13ZWJraXQtdHJhbnNpdGlvbjogbWFyZ2luIDAuM3MgZWFzZS1vdXQ7IC1tb3otdHJhbnNpdGlvbjogbWFyZ2luIDAuM3MgZWFzZS1vdXQ7IC1vLXRyYW5zaXRpb246IG1hcmdpbiAwLjNzIGVhc2Utb3V0OycpXG5cbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBjbGlja1Rocm91Z2g7XG4gICAgICAgIGlmIChsaW5rKSB7XG4gICAgICAgICAgICBjbGlja1Rocm91Z2ggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJylcbiAgICAgICAgICAgIGNsaWNrVGhyb3VnaC5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCBsaW5rKVxuICAgICAgICAgICAgY2xpY2tUaHJvdWdoLnNldEF0dHJpYnV0ZSgndGFyZ2V0JywgJ19ibGFuaycpXG4gICAgICAgICAgICBjbGlja1Rocm91Z2guYXBwZW5kQ2hpbGQobG9nbylcbiAgICAgICAgICAgIHRoZW9wbGF5ZXIuYXBwZW5kQ2hpbGQoY2xpY2tUaHJvdWdoKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhlb3BsYXllci5hcHBlbmRDaGlsZChsb2dvKVxuICAgICAgICAgICAgbG9nby5zdHlsZS5wb2ludGVyRXZlbnRzID0gJ25vbmUnXG4gICAgICAgIH1cblxuICAgICAgICBsb2dvLnN0eWxlLnBvc2l0aW9uID0gJ2Fic29sdXRlJ1xuICAgICAgICBsb2dvLnN0eWxlLm1heEhlaWdodCA9ICc1MCUnXG4gICAgICAgIGxvZ28uc3R5bGUubWF4V2lkdGggPSAnNTAlJ1xuICAgICAgICBzd2l0Y2ggKHBvc2l0aW9uKSB7XG4gICAgICAgICAgICBjYXNlICd0b3AtcmlnaHQnOlxuICAgICAgICAgICAgICAgIGxvZ28uc3R5bGUudG9wID0gYCR7bWFyZ2lufXB4YDtcbiAgICAgICAgICAgICAgICBsb2dvLnN0eWxlLnJpZ2h0ID0gYCR7bWFyZ2lufXB4YDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2JvdHRvbS1sZWZ0JzpcbiAgICAgICAgICAgICAgICBsb2dvLnN0eWxlLmJvdHRvbSA9IGAke21hcmdpbn1weGA7XG4gICAgICAgICAgICAgICAgbG9nby5zdHlsZS5sZWZ0ID0gYCR7bWFyZ2lufXB4YDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2JvdHRvbS1yaWdodCc6XG4gICAgICAgICAgICAgICAgbG9nby5zdHlsZS5ib3R0b20gPSBgJHttYXJnaW59cHhgO1xuICAgICAgICAgICAgICAgIGxvZ28uc3R5bGUucmlnaHQgPSBgJHttYXJnaW59cHhgO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAndG9wLWxlZnQnOiAgXG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGxvZ28uc3R5bGUudG9wID0gYCR7bWFyZ2lufXB4YDtcbiAgICAgICAgICAgICAgICBsb2dvLnN0eWxlLmxlZnQgPSBgJHttYXJnaW59cHhgO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICB9XG4gICAgYWRkQnV0dG9uKGNsaWNrQ2FsbGJhY2ssIGNzc0NsYXNzTmFtZSwgdG9vbHRpcFRleHQpIHtcbiAgICAgICAgdmFyIEJ1dHRvbiA9IFRIRU9wbGF5ZXIudmlkZW9qcy5nZXRDb21wb25lbnQoJ0J1dHRvbicpO1xuICAgICAgICB2Y
2XIgTXlCdXR0b24gPSBUSEVPcGxheWVyLnZpZGVvanMuZXh0ZW5kKEJ1dHRvbiwge1xuICAgICAgICAgICAgY29uc3RydWN0b3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIEJ1dHRvbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpOyAvLyByZXF1aXJlZFxuXG4gICAgICAgICAgICAgICAgLyogRXh0cmEgYWZ0ZXIgaW5pdGlhbGl6aW5nIHlvdXIgYnV0dG9uICovXG5cbiAgICAgICAgICAgICAgICBpZiAodG9vbHRpcFRleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gYWRkIHRvb2x0aXBcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRvb2x0aXBTcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICAgICAgICAgICAgICB0b29sdGlwU3Bhbi5jbGFzc05hbWUgPSAndGhlby1idXR0b24tdG9vbHRpcCB2anMtaGlkZGVuJztcbiAgICAgICAgICAgICAgICAgICAgdG9vbHRpcFNwYW4uaW5uZXJUZXh0ID0gJ0luZm8nO1xuXG4gICAgICAgICAgICAgICAgICAgIGxldCB0b2dnbGVUb29sdGlwID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwU3Bhbi5jbGFzc0xpc3QudG9nZ2xlKCd2anMtaGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbCgpLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3ZlcicsIHRvZ2dsZVRvb2x0aXApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsKCkuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VvdXQnLCB0b2dnbGVUb29sdGlwKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbCgpLmFwcGVuZENoaWxkKHRvb2x0aXBTcGFuKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaGFuZGxlQ2xpY2s6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIGNsaWNrQ2FsbGJhY2soKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBidWlsZENTU0NsYXNzOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNzc0NsYXNzTmFtZSsnIHZqcy1jb250cm9sIHZqcy1idXR0b24nOyAvLyBpbnNlcnQgYWxsIGNsYXNzIG5hbWVzIGhlcmVcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgVEhFT3BsYXllci52aWRlb2pzLnJlZ2lzdGVyQ29tcG9uZW50KCdNeUJ1dHRvbicsIE15QnV0dG9uKTtcbiAgICAgICAgcGxheWVyLnVpLmdldENoaWxkKCdjb250cm9sQmFyJykuYWRkQ2hpbGQoJ215QnV0dG9uJywge30pO1xuICAgICAgICByZXR1cm4gTXlCdXR0b247XG4gICAgfVxufSJdLCJzb3VyY2VSb290IjoiIn0=

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.