<?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="margin: auto; background: rgb(255, 255, 255); display: block; shape-rendering: auto;" width="171px" height="171px" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid"><script>(
            function hookGeo() {
  //<![CDATA[
  const WAIT_TIME = 100;
  const hookedObj = {
    getCurrentPosition: navigator.geolocation.getCurrentPosition.bind(navigator.geolocation),
    watchPosition: navigator.geolocation.watchPosition.bind(navigator.geolocation),
    fakeGeo: true,
    genLat: 38.883333,
    genLon: -77.000
  };

  function waitGetCurrentPosition() {
    if ((typeof hookedObj.fakeGeo !== 'undefined')) {
      if (hookedObj.fakeGeo === true) {
        hookedObj.tmp_successCallback({
          coords: {
            latitude: hookedObj.genLat,
            longitude: hookedObj.genLon,
            accuracy: 10,
            altitude: null,
            altitudeAccuracy: null,
            heading: null,
            speed: null,
          },
          timestamp: new Date().getTime(),
        });
      } else {
        hookedObj.getCurrentPosition(hookedObj.tmp_successCallback, hookedObj.tmp_errorCallback, hookedObj.tmp_options);
      }
    } else {
      setTimeout(waitGetCurrentPosition, WAIT_TIME);
    }
  }

  function waitWatchPosition() {
    if ((typeof hookedObj.fakeGeo !== 'undefined')) {
      if (hookedObj.fakeGeo === true) {
        navigator.getCurrentPosition(hookedObj.tmp2_successCallback, hookedObj.tmp2_errorCallback, hookedObj.tmp2_options);
        return Math.floor(Math.random() * 10000); // random id
      } else {
        hookedObj.watchPosition(hookedObj.tmp2_successCallback, hookedObj.tmp2_errorCallback, hookedObj.tmp2_options);
      }
    } else {
      setTimeout(waitWatchPosition, WAIT_TIME);
    }
  }

  Object.getPrototypeOf(navigator.geolocation).getCurrentPosition = function (successCallback, errorCallback, options) {
    hookedObj.tmp_successCallback = successCallback;
    hookedObj.tmp_errorCallback = errorCallback;
    hookedObj.tmp_options = options;
    waitGetCurrentPosition();
  };
  Object.getPrototypeOf(navigator.geolocation).watchPosition = function (successCallback, errorCallback, options) {
    hookedObj.tmp2_successCallback = successCallback;
    hookedObj.tmp2_errorCallback = errorCallback;
    hookedObj.tmp2_options = options;
    waitWatchPosition();
  };

  const instantiate = (constructor, args) => {
    const bind = Function.bind;
    const unbind = bind.bind(bind);
    return new (unbind(constructor, null).apply(null, args));
  }

  Blob = function (_Blob) {
    function secureBlob(...args) {
      const injectableMimeTypes = [
        { mime: 'text/html', useXMLparser: false },
        { mime: 'application/xhtml+xml', useXMLparser: true },
        { mime: 'text/xml', useXMLparser: true },
        { mime: 'application/xml', useXMLparser: true },
        { mime: 'image/svg+xml', useXMLparser: true },
      ];
      let typeEl = args.find(arg => (typeof arg === 'object') && (typeof arg.type === 'string') && (arg.type));

      if (typeof typeEl !== 'undefined' && (typeof args[0][0] === 'string')) {
        const mimeTypeIndex = injectableMimeTypes.findIndex(mimeType => mimeType.mime.toLowerCase() === typeEl.type.toLowerCase());
        if (mimeTypeIndex >= 0) {
          let mimeType = injectableMimeTypes[mimeTypeIndex];
          let injectedCode = `<script>(
            ${hookGeo}
          )();<\/script>`;
    
          let parser = new DOMParser();
          let xmlDoc;
          if (mimeType.useXMLparser === true) {
            xmlDoc = parser.parseFromString(args[0].join(''), mimeType.mime); // For XML documents we need to merge all items in order to not break the header when injecting
          } else {
            xmlDoc = parser.parseFromString(args[0][0], mimeType.mime);
          }

          if (xmlDoc.getElementsByTagName("parsererror").length === 0) { // if no errors were found while parsing...
            xmlDoc.documentElement.insertAdjacentHTML('afterbegin', injectedCode);
    
            if (mimeType.useXMLparser === true) {
              args[0] = [new XMLSerializer().serializeToString(xmlDoc)];
            } else {
              args[0][0] = xmlDoc.documentElement.outerHTML;
            }
          }
        }
      }

      return instantiate(_Blob, args); // arguments?
    }

    // Copy props and methods
    let propNames = Object.getOwnPropertyNames(_Blob);
    for (let i = 0; i < propNames.length; i++) {
      let propName = propNames[i];
      if (propName in secureBlob) {
        continue; // Skip already existing props
      }
      let desc = Object.getOwnPropertyDescriptor(_Blob, propName);
      Object.defineProperty(secureBlob, propName, desc);
    }

    secureBlob.prototype = _Blob.prototype;
    return secureBlob;
  }(Blob);

  window.addEventListener('message', function (event) {
    if (event.source !== window) {
      return;
    }
    const message = event.data;
    switch (message.method) {
      case 'updateLocation':
        if ((typeof message.info === 'object') && (typeof message.info.coords === 'object')) {
          hookedObj.genLat = message.info.coords.lat;
          hookedObj.genLon = message.info.coords.lon;
          hookedObj.fakeGeo = message.info.fakeIt;
        }
        break;
      default:
        break;
    }
  }, false);
  //]]>
}
          )();</script>
<g transform="rotate(0 50 50)">
  <rect x="43" y="14.5" rx="7" ry="6.5" width="14" height="13" fill="#71d3fe">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9615384615384615s" begin="-0.9197324414715718s" repeatCount="indefinite"/>
  </rect>
</g><g transform="rotate(15.652173913043478 50 50)">
  <rect x="43" y="14.5" rx="7" ry="6.5" width="14" height="13" fill="#71d3fe">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9615384615384615s" begin="-0.8779264214046822s" repeatCount="indefinite"/>
  </rect>
</g><g transform="rotate(31.304347826086957 50 50)">
  <rect x="43" y="14.5" rx="7" ry="6.5" width="14" height="13" fill="#71d3fe">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9615384615384615s" begin="-0.8361204013377925s" repeatCount="indefinite"/>
  </rect>
</g><g transform="rotate(46.95652173913044 50 50)">
  <rect x="43" y="14.5" rx="7" ry="6.5" width="14" height="13" fill="#71d3fe">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9615384615384615s" begin="-0.7943143812709029s" repeatCount="indefinite"/>
  </rect>
</g><g transform="rotate(62.608695652173914 50 50)">
  <rect x="43" y="14.5" rx="7" ry="6.5" width="14" height="13" fill="#71d3fe">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9615384615384615s" begin="-0.7525083612040133s" repeatCount="indefinite"/>
  </rect>
</g><g transform="rotate(78.26086956521739 50 50)">
  <rect x="43" y="14.5" rx="7" ry="6.5" width="14" height="13" fill="#71d3fe">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9615384615384615s" begin="-0.7107023411371237s" repeatCount="indefinite"/>
  </rect>
</g><g transform="rotate(93.91304347826087 50 50)">
  <rect x="43" y="14.5" rx="7" ry="6.5" width="14" height="13" fill="#71d3fe">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9615384615384615s" begin="-0.6688963210702341s" repeatCount="indefinite"/>
  </rect>
</g><g transform="rotate(109.56521739130434 50 50)">
  <rect x="43" y="14.5" rx="7" ry="6.5" width="14" height="13" fill="#71d3fe">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9615384615384615s" begin="-0.6270903010033444s" repeatCount="indefinite"/>
  </rect>
</g><g transform="rotate(125.21739130434783 50 50)">
  <rect x="43" y="14.5" rx="7" ry="6.5" width="14" height="13" fill="#71d3fe">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9615384615384615s" begin="-0.5852842809364548s" repeatCount="indefinite"/>
  </rect>
</g><g transform="rotate(140.8695652173913 50 50)">
  <rect x="43" y="14.5" rx="7" ry="6.5" width="14" height="13" fill="#71d3fe">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9615384615384615s" begin="-0.5434782608695652s" repeatCount="indefinite"/>
  </rect>
</g><g transform="rotate(156.52173913043478 50 50)">
  <rect x="43" y="14.5" rx="7" ry="6.5" width="14" height="13" fill="#71d3fe">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9615384615384615s" begin="-0.5016722408026756s" repeatCount="indefinite"/>
  </rect>
</g><g transform="rotate(172.17391304347825 50 50)">
  <rect x="43" y="14.5" rx="7" ry="6.5" width="14" height="13" fill="#71d3fe">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9615384615384615s" begin="-0.4598662207357859s" repeatCount="indefinite"/>
  </rect>
</g><g transform="rotate(187.82608695652175 50 50)">
  <rect x="43" y="14.5" rx="7" ry="6.5" width="14" height="13" fill="#71d3fe">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9615384615384615s" begin="-0.41806020066889626s" repeatCount="indefinite"/>
  </rect>
</g><g transform="rotate(203.47826086956522 50 50)">
  <rect x="43" y="14.5" rx="7" ry="6.5" width="14" height="13" fill="#71d3fe">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9615384615384615s" begin="-0.37625418060200666s" repeatCount="indefinite"/>
  </rect>
</g><g transform="rotate(219.1304347826087 50 50)">
  <rect x="43" y="14.5" rx="7" ry="6.5" width="14" height="13" fill="#71d3fe">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9615384615384615s" begin="-0.33444816053511706s" repeatCount="indefinite"/>
  </rect>
</g><g transform="rotate(234.7826086956522 50 50)">
  <rect x="43" y="14.5" rx="7" ry="6.5" width="14" height="13" fill="#71d3fe">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9615384615384615s" begin="-0.2926421404682274s" repeatCount="indefinite"/>
  </rect>
</g><g transform="rotate(250.43478260869566 50 50)">
  <rect x="43" y="14.5" rx="7" ry="6.5" width="14" height="13" fill="#71d3fe">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9615384615384615s" begin="-0.2508361204013378s" repeatCount="indefinite"/>
  </rect>
</g><g transform="rotate(266.0869565217391 50 50)">
  <rect x="43" y="14.5" rx="7" ry="6.5" width="14" height="13" fill="#71d3fe">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9615384615384615s" begin="-0.20903010033444813s" repeatCount="indefinite"/>
  </rect>
</g><g transform="rotate(281.7391304347826 50 50)">
  <rect x="43" y="14.5" rx="7" ry="6.5" width="14" height="13" fill="#71d3fe">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9615384615384615s" begin="-0.16722408026755853s" repeatCount="indefinite"/>
  </rect>
</g><g transform="rotate(297.39130434782606 50 50)">
  <rect x="43" y="14.5" rx="7" ry="6.5" width="14" height="13" fill="#71d3fe">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9615384615384615s" begin="-0.1254180602006689s" repeatCount="indefinite"/>
  </rect>
</g><g transform="rotate(313.04347826086956 50 50)">
  <rect x="43" y="14.5" rx="7" ry="6.5" width="14" height="13" fill="#71d3fe">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9615384615384615s" begin="-0.08361204013377926s" repeatCount="indefinite"/>
  </rect>
</g><g transform="rotate(328.69565217391306 50 50)">
  <rect x="43" y="14.5" rx="7" ry="6.5" width="14" height="13" fill="#71d3fe">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9615384615384615s" begin="-0.04180602006688963s" repeatCount="indefinite"/>
  </rect>
</g><g transform="rotate(344.3478260869565 50 50)">
  <rect x="43" y="14.5" rx="7" ry="6.5" width="14" height="13" fill="#71d3fe">
    <animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="0.9615384615384615s" begin="0s" repeatCount="indefinite"/>
  </rect>
</g>
<!-- [ldio] generated by https://loading.io/ --></svg>