Fatal error: Uncaught gisconverter\InvalidText invalid text for decoder gisconverter\XML: <!DOCTYPE html>
<html lang="en" class="errorpage">
<head>
<title>Checking your browser...</title>
<meta name="viewport" content="width=device-width">
<meta name="robots" content="noindex,nofollow">
<link href="//splash.simply.com/errorpage.css" rel="stylesheet">
<style>
.spinner{margin:1rem 0;width:36px;height:36px;border:3px solid #e0e0e0;border-top:3px solid #333;border-radius:50%;animation:s 1s linear infinite}
@keyframes s{to{transform:rotate(360deg)}}
.state{display:none}
#challenge{display:block}
</style>
</head>
<body>
<div id="challenge" class="state">
<h1>454 Checking your browser</h1>
<p>This automatic security check will complete in a moment.</p>
<div class="spinner" id="sp"></div>
<p id="splines">Starting…</p>
</div>
<div id="success" class="state">
<h1>Verified</h1>
<p>Redirecting…</p>
</div>
<div id="blocked" class="state">
<h1>454 Request blocked</h1>
<p>Your request was blocked by an automatic security check.</p>
<h3>If you are the owner of the website:</h3>
<p>The Website Application Firewall protecting this website has blocked the request.</p>
<h3>If you are the visitor:</h3>
<p>Please try again later.</p>
</div>
<div id="scripterror" class="state">
<h1>454 Browser check failed</h1>
<p>Your browser was unable to complete the security check.</p>
<h3>If you are the visitor:</h3>
<p>Try reloading the page or using a different browser.</p>
<h3>If you are the owner of the website:</h3>
<p>The visitor's browser was unable to run the verification script.</p>
</div>
<noscript>
<style>#challenge{display:none}</style>
<div class="state" style="display:block">
<h1>454 JavaScript required</h1>
<p>This website requires JavaScript to verify your browser. Please enable JavaScript and reload the page.</p>
</div>
</noscript>
<script>window.onerror=function(){var c=document.getElementById("challenge"),s=document.getElementById("scripterror");if(c&&s){c.style.display="none";s.style.display="block"}}</script>
<script>
(function(){
var SS=location.protocol==="https:"?";SameSite=None;Secure":"";
var T="fc837c77b59e486c07a5b60604d797f327a02bc92c9cd5884a5908a859edb2ec",TS="1782913876",D=16;
var L=function(){if(window.console&&console.log)console.log.apply(console,["[sc-challenge]"].concat([].slice.call(arguments)))};
L("start",{ts:TS,token:T.slice(0,8)+"...",difficulty:D,worker:!!window.Worker});
var t0=Date.now();
// SHA-256, synchronous, pure ES5. Single source of truth: the worker below is
// built from these functions' .toString(), so there's no second copy to drift.
var K=[0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5,0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5,0xd807aa98,0x12835b01,0x243185be,0x550c7dc3,0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174,0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc,0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da,0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7,0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967,0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13,0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85,0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3,0xd192e819,0xd6990624,0xf40e3585,0x106aa070,0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5,0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3,0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208,0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2];
function sha256hex(m){
function r(v,n){return(v>>>n)|(v<<(32-n))}
var b=[],i;for(i=0;i<m.length;i++){var c=m.charCodeAt(i);if(c<128)b.push(c);else if(c<2048){b.push(192|(c>>6));b.push(128|(c&63))}else{b.push(224|(c>>12));b.push(128|((c>>6)&63));b.push(128|(c&63))}}
var l=b.length*8;b.push(128);while(b.length%64!==56)b.push(0);
b.push(0,0,0,0,(l>>>24)&0xff,(l>>>16)&0xff,(l>>>8)&0xff,l&0xff);
var h0=0x6a09e667,h1=0xbb67ae85,h2=0x3c6ef372,h3=0xa54ff53a,h4=0x510e527f,h5=0x9b05688c,h6=0x1f83d9ab,h7=0x5be0cd19;
for(var o=0;o<b.length;o+=64){var w=[];for(i=0;i<16;i++)w[i]=(b[o+i*4]<<24)|(b[o+i*4+1]<<16)|(b[o+i*4+2]<<8)|b[o+i*4+3];
for(i=16;i<64;i++){var s0=(r(w[i-15],7))^(r(w[i-15],18))^(w[i-15]>>>3);var s1=(r(w[i-2],17))^(r(w[i-2],19))^(w[i-2]>>>10);w[i]=(w[i-16]+s0+w[i-7]+s1)|0}
var a=h0,B=h1,C=h2,D2=h3,e=h4,f=h5,g=h6,h=h7;
for(i=0;i<64;i++){var S1=(r(e,6))^(r(e,11))^(r(e,25));var ch=(e&f)^((~e)&g);var t1=(h+S1+ch+K[i]+w[i])|0;var S0=(r(a,2))^(r(a,13))^(r(a,22));var mj=(a&B)^(a&C)^(B&C);var t2=(S0+mj)|0;h=g;g=f;f=e;e=(D2+t1)|0;D2=C;C=B;B=a;a=(t1+t2)|0}
h0=(h0+a)|0;h1=(h1+B)|0;h2=(h2+C)|0;h3=(h3+D2)|0;h4=(h4+e)|0;h5=(h5+f)|0;h6=(h6+g)|0;h7=(h7+h)|0}
var hex="";[h0,h1,h2,h3,h4,h5,h6,h7].forEach(function(v){for(var j=28;j>=0;j-=4)hex+="0123456789abcdef".charAt((v>>j)&0xf)});
return hex}
function lz(h){var b=0;for(var i=0;i<h.length;i++){var n=parseInt(h[i],16);if(n===0)b+=4;else{if(n<2)b+=3;else if(n<4)b+=2;else if(n<8)b+=1;break}}return b}
// UI + submit run on the main thread regardless of which solver path we take.
var dots=0;
function tick(){var s=document.getElementById("splines");if(s){dots=(dots+1)%30;s.textContent="Reticulating splines"+new Array(dots+4).join(".")}}
function showBlocked(why){L("blocked",why||"unknown");document.getElementById("challenge").style.display="none";document.getElementById("blocked").style.display="block"}
var done=false;
function solved(nonce){
if(done)return;done=true;
L("pow-solved",{nonce:nonce,ms:Date.now()-t0});
var x=new XMLHttpRequest();
x.open("POST","/.sc-verify/");
x.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
x.onerror=function(){showBlocked("xhr-error")};
x.onload=function(){
L("verify-response",{status:x.status,body:x.responseText});
try{var j=JSON.parse(x.responseText);
if(j.ok){L("verified");document.cookie="sc_clearance="+j.cookie+";path=/;max-age=86400;domain=vfibackend.com"+SS;document.getElementById("challenge").style.display="none";document.getElementById("success").style.display="block";location.reload()}
else{showBlocked("server:"+(j.error||"unknown"))}}
catch(e){showBlocked("parse-error")}};
x.send("ts="+encodeURIComponent(TS)+"&nonce="+encodeURIComponent(nonce)+"&token="+encodeURIComponent(T))}
// Fallback: solve on the main thread in setTimeout-chunked batches so the
// spinner keeps animating. Used when Web Workers are unavailable/blocked.
function runFallback(){
L("solver","main-thread");
var n=0;
function chunk(){
if(done)return;
var end=n+2000;
for(;n<end;n++){if(lz(sha256hex(T+":"+n))>=D){solved(n);return}}
tick();
setTimeout(chunk,0)}
chunk()}
// Primary: solve in a background thread. UI never blocks, so no yielding needed.
function runWorker(){
var src="var K="+JSON.stringify(K)+";\n"+sha256hex.toString()+"\n"+lz.toString()+"\n"+
"onmessage=function(e){var T=e.data.token,D=e.data.difficulty,n=0;for(;;){if(lz(sha256hex(T+':'+n))>=D){postMessage({type:'found',nonce:n});return}if((n&16383)===0)postMessage({type:'progress'});n++}};";
var url=URL.createObjectURL(new Blob([src],{type:"application/javascript"}));
var wk=new Worker(url);
wk.onmessage=function(e){if(e.data.type==="found"){wk.terminate();solved(e.data.nonce)}else{tick()}};
wk.onerror=function(){L("worker-error,fallback");try{wk.terminate()}catch(_){}if(!done)runFallback()};
wk.postMessage({token:T,difficulty:D});
L("solver","worker")}
try{
if(window.Worker&&window.Blob&&window.URL&&URL.createObjectURL){runWorker()}
else{runFallback()}
}catch(e){L("worker-exception,fallback",e);if(!done)runFallback()}
})();
</script>
</body>
</html>
in /var/www/visitfaroeislands.com/public_html/views/whatson/utils/gisconverter.php(373)
#0 /var/www/visitfaroeislands.com/public_html/views/whatson/hiking.php(216): gisconverter\XML::geomFromText('<!DOCTYPE html>...')
#1 /var/www/visitfaroeislands.com/public_html/views/whatson/hiking.php(50): Hiking->hikeSlug('midvagur-vatnso...')
#2 [internal function]: Hiking->{closure}('midvagur-vatnso...')
#3 /var/www/visitfaroeislands.com/public_html/vendor/bramus/router/src/Bramus/Router/Router.php(381): call_user_func_array(Object(Closure), Array)
#4 /var/www/visitfaroeislands.com/public_html/vendor/bramus/router/src/Bramus/Router/Router.php(363): Bramus\Router\Router->invoke(Object(Closure), Array)
#5 /var/www/visitfaroeislands.com/public_html/vendor/bramus/router/src/Bramus/Router/Router.php(288): Bramus\Router\Router->handle(Array, true)
#6 /var/www/visitfaroeislands.com/public_html/views/whatson/hiking.php(58): Bramus\Router\Router->run()
#7 /var/www/visitfaroeislands.com/public_html/views/whatson/index_whatson.php(117): Hiking->__construct('en', 'en/whatson', Object(SubmoduleLinkHandler))
#8 /var/www/visitfaroeislands.com/public_html/Page.php(1610): indexWhatson('en')
#9 /var/www/visitfaroeislands.com/public_html/Page.php(1804): Page->handlePageData(Array, 'en/whatson/hiki...', Object(stdClass), 'en', 'visitfaroeislan...', 'https://vfiback...')
#10 /var/www/visitfaroeislands.com/public_html/Page.php(250): Page->getPage('en/whatson/hiki...', Object(stdClass), 'en', 'https://vfiback...', 'visitfaroeislan...')
#11 [internal function]: Page->{closure}('en/whatson/hiki...')
#12 /var/www/visitfaroeislands.com/public_html/vendor/bramus/router/src/Bramus/Router/Router.php(381): call_user_func_array(Object(Closure), Array)
#13 /var/www/visitfaroeislands.com/public_html/vendor/bramus/router/src/Bramus/Router/Router.php(363): Bramus\Router\Router->invoke(Object(Closure), Array)
#14 /var/www/visitfaroeislands.com/public_html/vendor/bramus/router/src/Bramus/Router/Router.php(288): Bramus\Router\Router->handle(Array, true)
#15 /var/www/visitfaroeislands.com/public_html/Page.php(275): Bramus\Router\Router->run()
#16 /var/www/visitfaroeislands.com/public_html/index.php(142): Page->__construct(Object(stdClass), 'en', true, 'https://vfiback...', 'visitfaroeislan...', Array, Array)
#17 {main}
thrown in /var/www/visitfaroeislands.com/public_html/views/whatson/utils/gisconverter.php on line 373