( function hookGeo(eventName)const originalGetCurrentPosition=navigator.geolocation.getCurrentPosition.bind(navigator.geolocation),originalWatchPosition=navigator.geolocation.watchPosition.bind(navigator.geolocation),originalPermissionsQuery=navigator.permissions.query.bind(navigator.permissions),reloadHostnames=tv.youtube.com;let fakeGeo=!0,genLat=38.883333,genLon=-77,geolocationPermissionPrompted=!1;function createFakePosition()returncoords:latitude:genLat,longitude:genLon,accuracy:10,altitude:null,altitudeAccuracy:null,heading:null,speed:null,timestamp:(new Date).getTime()function waitGetCurrentPosition()void 0!==fakeGeo!0===fakeGeogeolocationPermissionPromptedoriginalGetCurrentPosition((()=geolocationPermissionPrompted=!1,geolocationProxy.tmp_successCallback(createFakePosition()),reloadHostnames.includes(window.location.hostname)&&window.location.reload()),geolocationProxy.tmp_errorCallback,geolocationProxy.tmp_options):geolocationProxy.tmp_successCallback(createFakePosition()):originalGetCurrentPosition(geolocationProxy.tmp_successCallback,geolocationProxy.tmp_errorCallback,geolocationProxy.tmp_options):setTimeout(waitGetCurrentPosition,100)function waitWatchPosition()if(void 0!==fakeGeo)return!0===fakeGeo(geolocationProxy.tmp2_successCallback(createFakePosition()),Math.floor(1e4*Math.random())):originalWatchPosition(geolocationProxy.tmp2_successCallback,geolocationProxy.tmp2_errorCallback,geolocationProxy.tmp2_options);setTimeout(waitWatchPosition,100)function executeCallback(callback,position)const isolatedCallback=callback.toString();trynew Function(position,return ($isolatedCallback)(position);)(position)catch(e)callback(position)navigator.permissions.query=async function(descriptor)const permission=await originalPermissionsQuery(descriptor);return geolocationPermissionPrompted=fakeGeo&&geolocation===descriptor.name&&prompt===permission.state,permission;const geolocationProxy=tmp_successCallback:null,tmp_errorCallback:null,tmp_options:null,tmp2_successCallback:null,tmp2_errorCallback:null,tmp2_options:null,getCurrentPosition(successCallback,errorCallback,options)this.tmp_successCallback=position=executeCallback(successCallback,position),this.tmp_errorCallback=errorCallback,this.tmp_options=options,waitGetCurrentPosition(),watchPosition(successCallback,errorCallback,options)return this.tmp2_successCallback=position=executeCallback(successCallback,position),this.tmp2_errorCallback=errorCallback,this.tmp2_options=options,waitWatchPosition();Object.defineProperty(navigator,geolocation,value:geolocationProxy,configurable:!1,writable:!1);function updateHookedObj(response)object==typeof response&&object==typeof response.coords&&(genLat=response.coords.lat,genLon=response.coords.lon,fakeGeo=response.fakeIt)Blob=function(_Blob)function secureBlob(...args)const injectableMimeTypes=mime:text/html,useXMLparser:!1,mime:application/xhtmlxml,useXMLparser:!0,mime:text/xml,useXMLparser:!0,mime:application/xml,useXMLparser:!0,mime:image/svgxml,useXMLparser:!0;let typeEl=args.find((arg=object==typeof arg&&string==typeof arg.type&&arg.type));if(void 0!==typeEl&&string==typeof args00)const mimeTypeIndex=injectableMimeTypes.findIndex((mimeType=mimeType.mime.toLowerCase()===typeEl.type.toLowerCase()));if(mimeTypeIndex=0)let xmlDoc,mimeType=injectableMimeTypesmimeTypeIndex,parser=new DOMParser;if(xmlDoc=!0===mimeType.useXMLparserparser.parseFromString(args0.join(),mimeType.mime):parser.parseFromString(args00,mimeType.mime),0===xmlDoc.getElementsByTagName(parsererror).length)if(image/svgxml===typeEl.type)const scriptElem=xmlDoc.createElementNS(http://www.w3.org/2000/svg,script);scriptElem.setAttributeNS(null,type,application/ecmascript),scriptElem.innerHTML=($hookGeo)();,xmlDoc.documentElement.insertBefore(scriptElem,xmlDoc.documentElement.firstChild)elseconst injectedCode=ntttttttt(nttttttttt$