Skip to content

Instantly share code, notes, and snippets.

@chris124567
Created March 30, 2020 01:21
Show Gist options
  • Save chris124567/522cf33fd48a7da76ba5fd228c65ba4d to your computer and use it in GitHub Desktop.
Save chris124567/522cf33fd48a7da76ba5fd228c65ba4d to your computer and use it in GitHub Desktop.
Hcaptcha JS
'use strict';
!function() {
/**
* @param {?} functionToRunLater
* @return {?}
*/
function storeOffline(functionToRunLater) {
var deferred = this.constructor;
return this.then(function(n) {
return deferred.resolve(functionToRunLater()).then(function() {
return n;
});
}, function(exception) {
return deferred.resolve(functionToRunLater()).then(function() {
return deferred.reject(exception);
});
});
}
/**
* @return {undefined}
*/
function noop() {
}
/**
* @param {?} a
* @return {undefined}
*/
function Promise(a) {
if (!(this instanceof Promise)) {
throw new TypeError("Promises must be constructed via new");
}
if ("function" != typeof a) {
throw new TypeError("not a function");
}
/** @type {number} */
this._state = 0;
/** @type {boolean} */
this._handled = false;
this._value = undefined;
/** @type {!Array} */
this._deferreds = [];
fn(a, this);
}
/**
* @param {!Object} self
* @param {?} deferred
* @return {undefined}
*/
function handle(self, deferred) {
for (; 3 === self._state;) {
self = self._value;
}
if (0 !== self._state) {
/** @type {boolean} */
self._handled = true;
Promise._immediateFn(function() {
var cb = 1 === self._state ? deferred.onFulfilled : deferred.onRejected;
if (null !== cb) {
var ret;
try {
ret = cb(self._value);
} catch (password) {
return void reject(deferred.promise, password);
}
resolve(deferred.promise, ret);
} else {
(1 === self._state ? resolve : reject)(deferred.promise, self._value);
}
});
} else {
self._deferreds.push(deferred);
}
}
/**
* @param {!Object} self
* @param {!Object} value
* @return {?}
*/
function resolve(self, value) {
try {
if (value === self) {
throw new TypeError("A promise cannot be resolved with itself.");
}
if (value && ("object" == typeof value || "function" == typeof value)) {
var then = value.then;
if (value instanceof Promise) {
return self._state = 3, self._value = value, void finale(self);
}
if ("function" == typeof then) {
return void fn((last = then, type = value, function() {
last.apply(type, arguments);
}), self);
}
}
/** @type {number} */
self._state = 1;
/** @type {!Object} */
self._value = value;
finale(self);
} catch (password) {
reject(self, password);
}
var last;
var type;
}
/**
* @param {!Object} self
* @param {string} value
* @return {undefined}
*/
function reject(self, value) {
/** @type {number} */// Put your JavaScript here that you want to rename, deobfuscate,
// or infer types for:
function chunkData(e, t) {
var n = [];
var r = e.length;
var i = 0;
for (; i < r; i += t) {
if (i + t < r) {
n.push(e.substring(i, i + t));
} else {
n.push(e.substring(i, r));
}
}
return n;
}
// You can also use some ES6 features.
const get = (a,b) => a.getElementById(b);
self._state = 2;
/** @type {string} */
self._value = value;
finale(self);
}
/**
* @param {!Object} self
* @return {undefined}
*/
function finale(self) {
if (2 === self._state && 0 === self._deferreds.length) {
Promise._immediateFn(function() {
if (!self._handled) {
Promise._unhandledRejectionFn(self._value);
}
});
}
/** @type {number} */
var i = 0;
var patchLen = self._deferreds.length;
for (; i < patchLen; i++) {
handle(self, self._deferreds[i]);
}
/** @type {null} */
self._deferreds = null;
}
/**
* @param {!Function} a
* @param {!Function} b
* @param {!Function} p
* @return {undefined}
*/
function Handler(a, b, p) {
/** @type {(!Function|null)} */
this.onFulfilled = "function" == typeof a ? a : null;
/** @type {(!Function|null)} */
this.onRejected = "function" == typeof b ? b : null;
/** @type {!Function} */
this.promise = p;
}
/**
* @param {?} callback
* @param {!Object} self
* @return {undefined}
*/
function fn(callback, self) {
/** @type {boolean} */
var n = false;
try {
callback(function(link) {
if (!n) {
/** @type {boolean} */
n = true;
resolve(self, link);
}
}, function(password) {
if (!n) {
/** @type {boolean} */
n = true;
reject(self, password);
}
});
} catch (password) {
if (n) {
return;
}
/** @type {boolean} */
n = true;
reject(self, password);
}
}
/**
* @param {!Function} gatherFn
* @return {undefined}
*/
function load(gatherFn) {
/** @type {!Array<?>} */
var data = Array.prototype.slice.call(arguments, 1);
if (true !== w && "interactive" !== document.readyState && "loaded" !== document.readyState && "complete" !== document.readyState) {
setup.push({
fn : gatherFn,
args : data
});
if (false === v) {
(function() {
if (document.addEventListener) {
document.addEventListener("DOMContentLoaded", handler);
window.addEventListener("load", handler);
} else {
document.attachEvent("onreadystatechange", ready);
window.attachEvent("onload", handler);
}
/** @type {boolean} */
v = true;
})();
}
} else {
setTimeout(function() {
gatherFn(data);
}, 1);
}
}
/**
* @return {undefined}
*/
function ready() {
if (!("interactive" !== document.readyState && "loaded" !== document.readyState && "complete" !== document.readyState)) {
handler();
}
}
/**
* @return {undefined}
*/
function handler() {
if (false === w) {
/** @type {number} */
var i = 0;
for (; i < setup.length; i++) {
setup[i].fn.apply(null, setup[i].args);
}
/** @type {!Array} */
setup = [];
}
/** @type {boolean} */
w = true;
if (document.removeEventListener) {
document.removeEventListener("DOMContentLoaded", handler);
window.removeEventListener("load", handler);
} else {
document.detachEvent("onreadystatechange", ready);
window.detachEvent("onload", handler);
}
}
/**
* @return {undefined}
*/
function init() {
/**
* @return {undefined}
*/
function updateFullScreen() {
returnWidth = window.innerWidth || window.document.documentElement.clientWidth || document.body.clientWidth;
ret_h = window.innerHeight || window.document.documentElement.clientHeight || document.body.clientHeight;
}
/**
* @return {undefined}
*/
function _getScrollXY() {
/** @type {number} */
scrOfX = window.pageXOffset !== undefined ? window.pageXOffset : self.isCSS1 ? document.documentElement.scrollLeft : document.body.scrollLeft;
/** @type {number} */
scrOfY = window.pageYOffset !== undefined ? window.pageYOffset : self.isCSS1 ? document.documentElement.scrollTop : document.body.scrollTop;
}
var self = this;
/** @type {number} */
var returnWidth = 0;
/** @type {number} */
var ret_h = 0;
/** @type {number} */
var scrOfX = 0;
/** @type {number} */
var scrOfY = 0;
load(function() {
updateFullScreen();
_getScrollXY();
window.addEventListener("resize", updateFullScreen);
window.addEventListener("scroll", _getScrollXY);
});
/** @type {string} */
this.agent = navigator.userAgent.toLowerCase();
this.language = window.navigator.userLanguage || window.navigator.language;
/** @type {boolean} */
this.isCSS1 = "CSS1Compat" === (document.compatMode || "");
/**
* @return {?}
*/
this.width = function() {
return returnWidth;
};
/**
* @return {?}
*/
this.height = function() {
return ret_h;
};
/**
* @return {?}
*/
this.scrollX = function() {
return scrOfX;
};
/**
* @return {?}
*/
this.scrollY = function() {
return scrOfY;
};
/** @type {string} */
this.type = self.detect(["edge"]) ? "edge" : self.detect(["msie"]) ? "ie" : self.detect(["trident", "rv:"]) ? "ie" : self.detect(["chrome", "crios"], true) ? "chrome" : self.detect(["safari"]) ? "safari" : self.detect(["firefox"]) ? "firefox" : "unknown";
this.version = function() {
try {
if ("edge" === self.type) {
return Number(self.agent.split("edge/")[1].split(".")[0]);
}
if ("ie" === self.type) {
if (self.agent.indexOf("msie") >= 0) {
return Number(self.agent.split("msie ")[1].split(".")[0]);
}
if (self.agent.indexOf("rv:") >= 0) {
return Number(self.agent.split("rv:")[1].split(".")[0]);
}
}
if ("firefox" === self.type) {
return Number(self.agent.split("firefox/")[1].split(".")[0]);
}
if ("safari" === self.type) {
return Number(self.agent.split("version/")[1].split(".")[0].split(".")[0]);
}
if ("chrome" === self.type) {
return self.detect(["crios"]) ? Number(self.agent.split("crios/")[1].split(".")[0]) : Number(self.agent.split("chrome/")[1].split(".")[0]);
}
} catch (t) {
return -1;
}
}();
/** @type {boolean} */
this.hasPostMessage = !!window.postMessage;
}
/**
* @return {undefined}
*/
function update() {
var self = this;
/** @type {number} */
this._bottom = 0;
/** @type {number} */
this._top = 0;
this.storage = {};
/**
* @param {?} force
* @return {?}
*/
this.add = function(force) {
return self.storage[self._top] = force, self._top++, force;
};
/**
* @return {?}
*/
this.remove = function() {
if (!self.empty()) {
var key = self._bottom;
var keySave = self.storage[key];
return self.storage[key] = null, self._bottom++, keySave;
}
};
/**
* @return {?}
*/
this.empty = function() {
return self._top === self._bottom;
};
/**
* @return {?}
*/
this.size = function() {
return self._top - self._bottom;
};
}
/**
* @param {!Error} ctx
* @return {undefined}
*/
function error(ctx) {
var ex;
var ERROR;
var paths;
var params = {
message : ctx.name + ": " + ctx.message
};
if (ctx.stack) {
params.stack_trace = {
trace : ctx.stack
};
}
log("report error", "internal", "debug", params);
/** @type {string} */
ex = "internal error";
/** @type {string} */
ERROR = "error";
/** @type {null} */
paths = config.file;
if (success && window.Raven) {
Raven.captureMessage(ex, {
level : ERROR,
logger : paths
});
}
}
/**
* @param {string} msg
* @param {string} type
* @param {string} method
* @param {string} code
* @return {undefined}
*/
function log(msg, type, method, code) {
if (success && window.Raven) {
Raven.captureBreadcrumb({
message : msg,
category : type,
level : method,
data : code
});
}
}
/**
* @param {!Object} el
* @param {!Object} selector
* @param {?} index
* @return {undefined}
*/
function Element(el, selector, index) {
if (this.dom = null, this._clss = [], this._nodes = [], this._listeners = [], this._frag = null, "object" == typeof el) {
/** @type {!Object} */
this.dom = el;
/** @type {!Array} */
var classArray = [];
/** @type {!Array} */
var split = [];
if (el.className) {
split = el.className.split(" ");
}
/** @type {number} */
var i = 0;
for (; i < split.length; i++) {
if ("" !== split[i] && " " !== split[i]) {
classArray.push(split[i]);
}
}
/** @type {!Array} */
this._clss = classArray;
} else {
if (!(index !== undefined && null !== index)) {
/** @type {boolean} */
index = true;
}
if (el === undefined || "string" == typeof el && (el.indexOf("#") >= 0 || el.indexOf(".") >= 0)) {
if (el) {
/** @type {!Object} */
selector = el;
}
/** @type {string} */
el = "div";
}
/** @type {!Element} */
this.dom = document.createElement(el);
if (selector) {
if (selector.indexOf("#") >= 0) {
this.dom.id = selector.split("#")[1];
} else {
if (selector.indexOf(".") >= 0) {
selector = selector.split(".")[1];
}
this.addClass.call(this, selector);
}
}
}
if (true === index) {
/** @type {!DocumentFragment} */
this._frag = document.createDocumentFragment();
this._frag.appendChild(this.dom);
}
}
/**
* @param {?} res
* @param {!Object} t
* @return {undefined}
*/
function View(res, t) {
options.self(this, Element, t || "div", res);
/** @type {!Array} */
this.children = [];
/** @type {!Array} */
this._events = [];
}
/**
* @param {?} name
* @param {?} value
* @param {number} options
* @param {number} index
* @return {undefined}
*/
function value(name, value, options, index) {
if (false !== ne) {
if (result[name]) {
var o = options || EMPTY_OBJ;
var n = index || undefined;
if (result[name].length < n) {
result[name].push(value);
} else {
var i = bindings[name];
if (0 === i) {
i = o;
}
/** @type {number} */
var index = (i + 1) % n;
/** @type {number} */
bindings[name] = index;
result[name][i] = value;
}
} else {
/** @type {!Array} */
result[name] = [value];
/** @type {number} */
bindings[name] = 0;
}
}
}
/**
* @param {!Array} e
* @return {?}
*/
function f(e) {
if (null === e) {
return "";
}
/** @type {!Array} */
var t = [];
return function n(e, t) {
var i;
var k;
if ("object" == typeof e) {
for (k in e) {
if (true === isObject(i = e[k])) {
n(i, t);
} else {
t[t.length] = end(k, i);
}
}
} else {
if (true === Array.isArray(e)) {
/** @type {number} */
var g = 0;
for (; g < e.length; g++) {
if (true === isObject(i = e[g])) {
n(e, t);
} else {
t[t.length] = end(k, i);
}
}
} else {
t[t.length] = end(e);
}
}
}(e, t), t.join("&");
}
/**
* @param {?} val
* @return {?}
*/
function isObject(val) {
return true === Array.isArray(val) || "object" == typeof val;
}
/**
* @param {!Object} text
* @param {string} i
* @return {?}
*/
function end(text, i) {
return encodeURIComponent(text) + "=" + encodeURIComponent(null === i ? "" : i);
}
/**
* @param {string} method
* @param {string} filename
* @param {!Object} options
* @return {?}
*/
function request(method, filename, options) {
/** @type {boolean} */
var webgl = false;
/** @type {null} */
var params = null;
var _imageWin = method.toUpperCase();
var backToPage = options && options.responseType || "string";
var undefined = options && options.dataType || null;
/** @type {!XMLHttpRequest} */
var xhr = new XMLHttpRequest;
/** @type {string} */
var url = filename;
return options && options.withCredentials && "undefined" != typeof XDomainRequest && "withCredentials" in xhr == false && (webgl = true, xhr = new XDomainRequest), options && options.data && (params = options.data, "json" === undefined && "object" == typeof options.data && (params = JSON.stringify(params)), "query" === undefined && (params = f(params))), new Promise(function(cb, dispatch) {
var header;
/**
* @param {string} event
* @return {?}
*/
var callback = function(event) {
return function(n) {
var data = xhr.response || xhr.responseText;
var status = xhr.status;
var message = xhr.statusText;
var state = xhr.readyState;
if (4 === state || webgl) {
if ("error" === event || status >= 400 && status <= 511) {
return void dispatch({
event : "network-error",
endpoint : url,
state : state,
status : status,
message : editorContext.getText(status || 400) || message
});
}
if ("json" === backToPage && data) {
/** @type {*} */
data = JSON.parse(data);
}
cb({
state : state,
status : status,
body : data,
message : message
});
}
};
};
if (xhr.onload = callback("complete"), xhr.onerror = xhr.ontimeout = callback("error"), xhr.open(_imageWin, filename), false === webgl && (xhr.withCredentials = options && options.withCredentials || false), options && options.headers && false === webgl) {
var name;
for (name in options.headers) {
header = options.headers[name];
xhr.setRequestHeader(name, header);
}
}
setTimeout(function() {
xhr.send(params || null);
}, 0);
});
}
/**
* @param {!Object} target
* @param {string} a
* @return {undefined}
*/
function Message(target, a) {
if (!a) {
throw new Error("Chat requires unique id to communicate between windows");
}
/** @type {boolean} */
this.isIframe = target instanceof HTMLIFrameElement;
/** @type {!Object} */
this.target = target;
/** @type {string} */
this.id = a;
/** @type {!Array} */
this.messages = [];
/** @type {!Array} */
this.incoming = [];
/** @type {!Array} */
this.waiting = [];
}
/**
* @param {string} fn
* @param {string} id
* @return {?}
*/
function run(fn, id) {
var data = this;
var callbackTwo = {};
/** @type {!Promise} */
var serializerPromise = new Promise(function(resolve, reject) {
callbackTwo.resolve = resolve;
callbackTwo.reject = reject;
});
var result = {
source : "hcaptcha",
label : fn,
id : data.id,
promise : null,
lookup : id
};
return serializerPromise.then(function(text) {
/** @type {string} */
result.promise = "resolve";
if (null !== text) {
/** @type {!Object} */
result.contents = text;
}
cb(data.target, result, data.isIframe);
})["catch"](function(n) {
/** @type {string} */
result.promise = "reject";
if (null !== n) {
/** @type {!Object} */
result.error = n;
}
cb(data.target, result, data.isIframe);
}), callbackTwo;
}
/**
* @param {!Object} p
* @param {?} value
* @param {?} oldValue
* @return {undefined}
*/
function cb(p, value, oldValue) {
if (oldValue) {
p.contentWindow.postMessage(JSON.stringify(value), "*");
} else {
p.postMessage(JSON.stringify(value), "*");
}
}
/**
* @return {undefined}
*/
function check() {
if (timeout) {
timeout = clearTimeout(timeout);
}
req.get({
url : data.endpoint + "/checksiteconfig?host=" + config.host + "&sitekey=" + config.sitekey,
responseType : "json",
withCredentials : true,
headers : {
"Content-Type" : "application/json; charset=utf-8",
"Cache-Control" : "no-cache"
}
}).then(function(err) {
if (tg = 0, err) {
var data = err.body;
if (false === data.success) {
callback(data["error-codes"].join(", "));
} else {
if (!data.pass && data.error) {
callback(data.error);
} else {
callback(false);
}
}
if (data.charity !== undefined) {
ghRepos = data.charity;
}
if (data.brand_uri !== undefined) {
url = data.brand_uri;
}
}
log("/checksiteconfig success", "request", "info", err);
})["catch"](function(args) {
log("/checksiteconfig error", "request", "debug", args);
tg = tg + 1;
if (400 !== args.status || tg === a || Le) {
/** @type {number} */
tg = 0;
if (!Le) {
callback(args.message);
}
} else {
/** @type {number} */
timeout = setTimeout(check, waitAfter);
}
});
}
/**
* @param {string} val
* @return {undefined}
*/
function callback(val) {
caption.text(val || "");
caption.css({
opacity : val ? 1 : 0
});
}
/**
* @return {undefined}
*/
function clickHandler() {
/** @type {string} */
var facebookString = url + "?site=" + config.host + "&key=" + config.sitekey;
window.open(facebookString, "_blank");
}
/**
* @return {undefined}
*/
function toggle() {
element.setAttribute("aria-checked", "true");
element.removeClass("active");
element.addClass("checked");
elem.addClass("disabled");
}
/**
* @return {undefined}
*/
function render() {
element.setAttribute("aria-checked", "false");
element.removeClass("active");
element.removeClass("checked");
elem.removeClass("disabled");
me.resetData();
me.record();
}
/**
* @param {!Event} event
* @return {?}
*/
function test(event) {
return !!elem.hasClass("disabled") || ("terms-link" == (event.target || event.srcElement).id || "privacy-link" == (event.target || event.srcElement).id || (!!element.hasClass("active") || (element.addClass("active"), element.setAttribute("aria-checked", "mixed"), setTimeout(function() {
me.stop();
res.send("checkbox-selected", {
manifest : me.getData(),
charity : ghRepos,
link : url
});
}, 1), true)));
}
/**
* @return {?}
*/
function getAbsoluteBoundingClientRect() {
var rect = element.dom.getBoundingClientRect();
/** @type {number} */
var height = rect.bottom - rect.top;
/** @type {number} */
var width = rect.right - rect.left;
return {
left : rect.left,
right : rect.right,
top : rect.top,
bottom : rect.bottom,
width : width,
height : height,
x : rect.left + width / 2,
y : rect.top + height / 2
};
}
/** @type {function((!Function|null|string), number=, ...*): number} */
var realSetTimeout = setTimeout;
/**
* @param {!Function} onSettled
* @return {?}
*/
Promise.prototype["catch"] = function(onSettled) {
return this.then(null, onSettled);
};
/**
* @param {!Function} onFulfilled
* @param {!Function} onRejected
* @return {?}
*/
Promise.prototype.then = function(onFulfilled, onRejected) {
var prom = new this.constructor(noop);
return handle(this, new Handler(onFulfilled, onRejected, prom)), prom;
};
/** @type {function(?): ?} */
Promise.prototype["finally"] = storeOffline;
/**
* @param {!NodeList} el
* @return {?}
*/
Promise.all = function(el) {
return new Promise(function(next, reject) {
/**
* @param {number} i
* @param {!Object} val
* @return {?}
*/
function callback(i, val) {
try {
if (val && ("object" == typeof val || "function" == typeof val)) {
var then = val.then;
if ("function" == typeof then) {
return void then.call(val, function(y) {
callback(i, y);
}, reject);
}
}
/** @type {!Object} */
a[i] = val;
if (0 == --startLen) {
next(a);
}
} catch (error_result) {
reject(error_result);
}
}
if (!el || "undefined" == typeof el.length) {
throw new TypeError("Promise.all accepts an array");
}
/** @type {!Array<?>} */
var a = Array.prototype.slice.call(el);
if (0 === a.length) {
return next([]);
}
/** @type {number} */
var startLen = a.length;
/** @type {number} */
var i = 0;
for (; i < a.length; i++) {
callback(i, a[i]);
}
});
};
/**
* @param {string} value
* @return {?}
*/
Promise.resolve = function(value) {
return value && "object" == typeof value && value.constructor === Promise ? value : new Promise(function(resolve) {
resolve(value);
});
};
/**
* @param {?} reason
* @return {?}
*/
Promise.reject = function(reason) {
return new Promise(function(canCreateDiscussions, reject$2) {
reject$2(reason);
});
};
/**
* @param {!NodeList} values
* @return {?}
*/
Promise.race = function(values) {
return new Promise(function(initCb, throwException) {
/** @type {number} */
var i = 0;
var l = values.length;
for (; i < l; i++) {
values[i].then(initCb, throwException);
}
});
};
/** @type {function(!Function): undefined} */
Promise._immediateFn = "function" == typeof setImmediate && function(fn) {
setImmediate(fn);
} || function(fn) {
realSetTimeout(fn, 0);
};
/**
* @param {?} err
* @return {undefined}
*/
Promise._unhandledRejectionFn = function(err) {
if ("undefined" != typeof console && console) {
console.warn("Possible Unhandled Promise Rejection:", err);
}
};
var method;
var local = function() {
if ("undefined" != typeof self) {
return self;
}
if ("undefined" != typeof window) {
return window;
}
if ("undefined" != typeof global) {
return global;
}
throw new Error("unable to locate global object");
}();
if ("Promise" in local) {
if (!local.Promise.prototype["finally"]) {
/** @type {function(?): ?} */
local.Promise.prototype["finally"] = storeOffline;
}
} else {
/** @type {function(?): undefined} */
local.Promise = Promise;
}
if (!Array.prototype.indexOf) {
Array.prototype.indexOf = function(v) {
return function(t, n) {
if (null === this || this === undefined) {
throw TypeError("Array.prototype.indexOf called on null or undefined");
}
/** @type {!Object} */
var o = v(this);
/** @type {number} */
var b = o.length >>> 0;
/** @type {number} */
var a = Math.min(0 | n, b);
if (a < 0) {
/** @type {number} */
a = Math.max(0, b + a);
} else {
if (a >= b) {
return -1;
}
}
if (void 0 === t) {
for (; a !== b; ++a) {
if (void 0 === o[a] && a in o) {
return a;
}
}
} else {
if (t != t) {
for (; a !== b; ++a) {
if (o[a] != o[a]) {
return a;
}
}
} else {
for (; a !== b; ++a) {
if (o[a] === t) {
return a;
}
}
}
}
return -1;
};
}(Object);
}
if (!Array.isArray) {
/**
* @param {*} obj
* @return {boolean}
*/
Array.isArray = function(obj) {
return "[object Array]" === Object.prototype.toString.call(obj);
};
}
if (!document.getElementsByClassName) {
/** @type {function(string): ?} */
window.Element.prototype.getElementsByClassName = document.constructor.prototype.getElementsByClassName = function(name) {
if (document.querySelectorAll) {
return document.querySelectorAll("." + name);
}
/** @type {!NodeList<Element>} */
var elems = document.getElementsByTagName("*");
/** @type {!RegExp} */
var clsRx = new RegExp("(^|\\s)" + name + "(\\s|$)");
/** @type {!Array} */
var ret = [];
/** @type {number} */
var i = 0;
for (; i < elems.length; i++) {
if (clsRx.test(elems[i].className)) {
ret.push(elems[i]);
}
}
return ret;
};
}
if (!String.prototype.startsWith) {
/**
* @param {string} prefix
* @param {number=} position
* @return {boolean}
* @this {!String}
*/
String.prototype.startsWith = function(prefix, position) {
return this.substr(!position || position < 0 ? 0 : +position, prefix.length) === prefix;
};
}
if (!String.prototype.endsWith) {
/**
* @param {string} needle
* @param {number=} end
* @return {boolean}
* @this {!String}
*/
String.prototype.endsWith = function(needle, end) {
return (end === undefined || end > this.length) && (end = this.length), this.substring(end - needle.length, end) === needle;
};
}
try {
if (Object.defineProperty && Object.getOwnPropertyDescriptor && Object.getOwnPropertyDescriptor(Element.prototype, "textContent") && !Object.getOwnPropertyDescriptor(Element.prototype, "textContent").get) {
/** @type {(ObjectPropertyDescriptor<Element.prototype>|undefined)} */
var innerText = Object.getOwnPropertyDescriptor(Element.prototype, "innerText");
Object.defineProperty(Element.prototype, "textContent", {
get : function() {
return innerText.get.call(this);
},
set : function(cellsHash) {
return innerText.set.call(this, cellsHash);
}
});
}
} catch (He) {
}
if (!Function.prototype.bind) {
/**
* @param {(Object|null|undefined)} oThis
* @param {...*} p1
* @return {!Function}
*/
Function.prototype.bind = function(oThis) {
if ("function" != typeof this) {
throw new TypeError("Function.prototype.bind: Item Can Not Be Bound.");
}
/** @type {!Array<?>} */
var headArgs = Array.prototype.slice.call(arguments, 1);
/** @type {!Function} */
var fToBind = this;
/**
* @return {undefined}
*/
var fNOP = function() {
};
/**
* @return {?}
*/
var fBound = function() {
return fToBind.apply(this instanceof fNOP ? this : oThis, headArgs.concat(Array.prototype.slice.call(arguments)));
};
return this.prototype && (fNOP.prototype = this.prototype), fBound.prototype = new fNOP, fBound;
};
}
if ("function" != typeof Object.create) {
/**
* @param {(Object|null)} error
* @param {(Object|null)=} data
* @return {!Object}
*/
Object.create = function(error, data) {
/**
* @return {undefined}
*/
function result() {
}
if (result.prototype = error, "object" == typeof data) {
var i;
for (i in data) {
if (data.hasOwnProperty(i)) {
result[i] = data[i];
}
}
}
return new result;
};
}
if (!Date.now) {
/**
* @return {number}
*/
Date.now = function() {
return (new Date).getTime();
};
}
if (!window.console) {
window.console = {};
}
/** @type {!Array} */
var methods = ["error", "info", "log", "show", "table", "trace", "warn"];
/**
* @param {?} callback
* @return {undefined}
*/
var originalMethod = function(callback) {
};
/** @type {number} */
var i = methods.length;
for (; --i > -1;) {
method = methods[i];
if (!window.console[method]) {
/** @type {function(?): undefined} */
window.console[method] = originalMethod;
}
}
/** @type {!Array} */
var setup = [];
/** @type {boolean} */
var v = false;
/** @type {boolean} */
var w = false;
/**
* @param {!Array} data
* @param {string} isReady
* @return {?}
*/
init.prototype.detect = function(data, isReady) {
var u;
/** @type {boolean} */
var f = false;
/** @type {number} */
var written = 0;
/** @type {number} */
var i = 0;
for (; i < data.length; i++) {
u = data[i];
if (this.agent.indexOf(u.toLowerCase()) >= 0) {
/** @type {number} */
written = written + 1;
}
}
return (written === data.length || isReady && written > 0) && (f = true), f;
};
/**
* @param {string} type
* @param {!Object} el
* @return {?}
*/
init.prototype.hasEvent = function(type, el) {
return "on" + type in (el || document.createElement("div"));
};
/**
* @return {?}
*/
init.prototype.getScreenDimensions = function() {
var track = {};
var prop;
for (prop in window.screen) {
track[prop] = window.screen[prop];
}
return delete track.orientation, track;
};
/**
* @return {?}
*/
init.prototype.interrogateNavigator = function() {
var opts = {};
var i;
for (i in window.navigator) {
opts[i] = window.navigator[i];
}
if (delete opts.plugins, delete opts.mimeTypes, opts.plugins = [], window.navigator.plugins) {
/** @type {number} */
var i = 0;
for (; i < window.navigator.plugins.length; i++) {
/** @type {string} */
opts.plugins[i] = window.navigator.plugins[i].filename;
}
}
return opts;
};
var Browser = new init;
var System = new function($) {
var rows;
var msg = this;
/** @type {(boolean|{})} */
this.mobile = !(!("ontouchstart" in window || "onpointerdown" in window) || !$.detect(["ios", "iphone", "ipad", "windows phone", "android", "blackberry"], true)) && {};
/**
* @return {?}
*/
this.dpr = function() {
return window.devicePixelRatio || 1;
};
if (this.mobile && $.agent.indexOf("windows") >= 0 && $.agent.indexOf("touch") < 0) {
/** @type {boolean} */
this.mobile = false;
}
/** @type {string} */
this.os = $.detect(["ipad", "iphone"], true) ? "ios" : $.detect(["android", "kindle"], true) ? "android" : $.detect(["mac os"]) ? "mac" : $.detect(["windows", "iemobile"], true) ? "windows" : $.detect(["ubuntu", "linux"], false) ? "ubuntu" : "unknown";
/** @type {string} */
this.version = (rows = navigator.appVersion.split(/\s*[;)(]\s*/), navigator.oscpu !== undefined && "firefox" === $.type && (rows = navigator.oscpu.split(" ")).length > 0 ? rows[rows.length - 1].replace(";", "") : "ios" === msg.os ? rows[2].split(" ")[3].replace(/_/g, ".") : "mac" === msg.os ? rows[2].split(" ")[4].replace(/_/g, ".") : "windows" === msg.os ? "ie" === $.type && $.version <= 10 ? rows[3].split(" ")[2] : "safari" === $.type && $.version <= 5 && rows[1].split(" ")[2] === undefined ?
rows[3].split(" ")[2] : rows[1].split(" ")[2] : "android" === msg.os ? rows[0] : "ubuntu" === msg.os ? rows[3].replace(/_/g, ".") : "unknown");
}(Browser);
var $ = {
Browser : Browser,
System : System
};
var config = {
host : null,
file : null,
sitekey : null,
pingdom : "safari" === $.Browser.type && "windows" !== $.System.os && "mac" !== $.System.os && "ios" !== $.System.os && "android" !== $.System.os,
assetUrl : "https://assets.hcaptcha.com/captcha/v1/34323f3/static"
};
var data = {
language : null,
accountsEndpoint : "https://accounts.hcaptcha.com",
endpoint : "https://hcaptcha.com",
size : "normal",
theme : "light"
};
/** @type {string} */
var cssChildWidth = "10000000-ffff-ffff-ffff-000000000001";
/** @type {string} */
var delColumn = "00000000-0000-0000-0000-000000000000";
var defaults = {
queue : update,
depth : function error(val, key, cb) {
if ("object" == typeof val && val[key] && val[key].length > 0) {
var i = val[key].length;
for (; --i > -1;) {
error(val[key][i], key, cb);
}
}
if (val !== undefined) {
cb(val);
}
},
breathe : function(surface, range, cb) {
var container = new update;
/** @type {null} */
var value = null;
container.add(surface);
value = container.remove();
for (; value;) {
/** @type {number} */
var i = 0;
for (; i < value[range].length; i++) {
container.add(value[range][i]);
}
cb(value);
value = container.remove();
}
}
};
/** @type {boolean} */
var success = true;
var expectedProperties = {
UUID : function(uuid) {
return /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i.test(uuid) || false;
},
UUIDv4 : function(pathToDestinationFile) {
return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(pathToDestinationFile) || false;
}
};
var obj = {
eventName : function(e) {
/** @type {string} */
var tTexture = e;
return "down" !== e && "up" !== e && "move" !== e && "over" !== e && "out" !== e || (tTexture = !$.System.mobile || "down" !== e && "up" !== e && "move" !== e ? "mouse" + e : "down" === e ? "touchstart" : "up" === e ? "touchend" : "touchmove"), tTexture;
},
actionName : function(element) {
/** @type {string} */
var name = element;
return "touchstart" === name || "mousedown" === name ? name = "down" : "touchmove" === name || "mousemove" === name ? name = "move" : "touchend" === name || "mouseup" === name ? name = "up" : "mouseover" === name ? name = "over" : "mouseout" === name && (name = "out"), name;
},
eventCallback : function(params, callback, element) {
var undefined = obj.actionName(params);
return function(event) {
if (event = event || window.event, "down" === undefined || "move" === undefined || "up" === undefined || "over" === undefined || "out" === undefined || "click" === undefined) {
var point = obj.eventCoords(event);
var snap = element.getBoundingClientRect();
event.windowX = point.x;
event.windowY = point.y;
/** @type {number} */
event.elementX = event.windowX - (snap.x || snap.left);
/** @type {number} */
event.elementY = event.windowY - (snap.y || snap.top);
}
event.keyNum = event.which || event.keyCode || 0;
event.action = undefined;
/** @type {!Element} */
event.targetElement = element;
callback(event);
};
},
eventCoords : function(event) {
var leftRenderRect = {
x : 0,
y : 0
};
if (event.windowsPointer) {
return event;
}
if (!event) {
return leftRenderRect;
}
if (event.touches || event.changedTouches) {
var posObj = (event.touches && event.touches.length >= 1 ? event.touches : event.changedTouches)[0];
leftRenderRect.x = posObj.pageX || posObj.clientX;
leftRenderRect.y = posObj.pageY || posObj.clientY;
} else {
leftRenderRect.x = event.pageX || event.clientX;
leftRenderRect.y = event.pageY || event.clientY;
}
return leftRenderRect;
}
};
/**
* @param {string} type
* @param {!Object} name
* @return {?}
*/
Element.prototype.createElement = function(type, name) {
var node = new Element(type, name, false);
return this.appendElement.call(this, node), this._nodes.push(node), node;
};
/**
* @param {!Object} el
* @return {?}
*/
Element.prototype.appendElement = function(el) {
return el === undefined ? error({
name : "DomElement Add Child",
message : "Child Element is undefined"
}) : (el._frag !== undefined && null !== el._frag ? this.dom.appendChild(el._frag) : el.dom !== undefined ? this.dom.appendChild(el.dom) : this.dom.appendChild(el), el._parent = this, this);
};
/**
* @param {!Object} node
* @return {undefined}
*/
Element.prototype.removeElement = function(node) {
/** @type {!Object} */
var el = node;
if (node.dom) {
el = el.dom;
var i = node._nodes.length;
for (; --i > -1;) {
node.dom.removeChild(node._nodes[i].dom || node._nodes[i]);
node._nodes.splice(i, 1);
}
} else {
var index = this._nodes.length;
for (; --index > -1;) {
if (this._nodes[index] === el) {
this._nodes.splice(index, 1);
}
}
}
this.dom.removeChild(el);
};
/**
* @param {string} name
* @return {?}
*/
Element.prototype.addClass = function(name) {
return false === this.hasClass.call(this, name) && (this._clss.push(name), this.dom.className = this._clss.join(" ")), this;
};
/**
* @param {string} name
* @return {?}
*/
Element.prototype.hasClass = function(name) {
/** @type {boolean} */
var hasClass = false;
/** @type {number} */
var nai = 0;
for (; nai < this._clss.length; nai++) {
if (this._clss[nai] === name) {
/** @type {boolean} */
hasClass = true;
}
}
return hasClass;
};
/**
* @param {string} name
* @return {?}
*/
Element.prototype.removeClass = function(name) {
var i = this._clss.length;
for (; --i > -1;) {
if (this._clss[i] === name) {
this._clss.splice(i, 1);
}
}
return this.dom.className = this._clss.join(" "), this;
};
/**
* @param {?} s
* @return {?}
*/
Element.prototype.text = function(s) {
if (this && this.dom && void 0 !== s) {
var m;
var source;
var current;
var tmp;
/** @type {!RegExp} */
var a = /&(.*?);/g;
/** @type {!RegExp} */
var successRegExp = /<[a-z][\s\S]*>/i;
for (; null !== (m = a.exec(s));) {
if (false === successRegExp.test(m[0])) {
/** @type {string} */
current = m[0];
tmp = void 0;
/** @type {string} */
(tmp = document.createElement("div")).innerHTML = current;
/** @type {string} */
source = tmp.textContent;
s = s.replace(new RegExp(m[0], "g"), source);
} else {
s = s.replace(m[0], "");
}
}
return this.dom.textContent = s, this;
}
};
/**
* @param {!Object} source
* @return {?}
*/
Element.prototype.css = function(source) {
var value;
var name;
for (name in source) {
value = source[name];
try {
if ("opacity" !== name && "zIndex" !== name && "fontWeight" !== name && isFinite(value) && parseFloat(value) === value) {
/** @type {string} */
value = value + "px";
}
if ("ie" === $.Browser.type && 8 === $.Browser.version && "opacity" === name) {
/** @type {string} */
this.dom.style.filter = "alpha(opacity=" + 100 * value + ")";
} else {
this.dom.style[name] = value;
}
} catch (He) {
}
}
return this;
};
/**
* @param {!Object} data
* @param {string} reason
* @param {number} index
* @param {!Object} o
* @return {undefined}
*/
Element.prototype.backgroundImage = function(data, reason, index, o) {
/** @type {number} */
var w = data.width / data.height;
/** @type {string} */
var x = reason;
/** @type {number} */
var value = x / w;
var style = {};
if (o === undefined) {
o = {};
}
if (o.cover && value < index) {
/** @type {number} */
x = (value = index) * w;
}
if (o.contain && value > index) {
/** @type {number} */
x = (value = index) * w;
}
style.width = x;
style.height = value;
if (o.center) {
/** @type {number} */
style.marginLeft = -x / 2;
/** @type {number} */
style.marginTop = -value / 2;
/** @type {string} */
style.position = "absolute";
/** @type {string} */
style.left = "50%";
/** @type {string} */
style.top = "50%";
}
if (o.left || o.right) {
style.left = o.left || 0;
style.top = o.top || 0;
}
if ("ie" === $.Browser.type && 8 === $.Browser.version) {
/** @type {string} */
style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + data.src + "',sizingMethod='scale')";
} else {
/** @type {string} */
style.background = "url(" + data.src + ")";
/** @type {string} */
style.backgroundSize = x + "px " + value + "px";
/** @type {string} */
style.backgroundPosition = "50% 50%";
/** @type {string} */
style.backgroundRepeat = "no-repeat";
}
this.css.call(this, style);
};
/**
* @param {string} key
* @param {string} value
* @return {undefined}
*/
Element.prototype.setAttribute = function(key, value) {
var value;
if ("object" == typeof key) {
var name;
for (name in key) {
value = key[name];
this.dom.setAttribute(name, value);
}
} else {
this.dom.setAttribute(key, value);
}
};
/**
* @param {string} name
* @param {!Function} handler
* @return {undefined}
*/
Element.prototype.addEventListener = function(name, handler) {
var entry = {
event : obj.eventName(name),
handler : obj.eventCallback(name, handler, this.dom),
callback : handler
};
this._listeners.push(entry);
if (this.dom.addEventListener) {
this.dom.addEventListener(entry.event, entry.handler);
} else {
this.dom.attachEvent("on" + entry.event, entry.handler);
}
};
/**
* @param {string} event
* @param {!Function} callback
* @return {undefined}
*/
Element.prototype.removeEventListener = function(event, callback) {
var listener;
var i = this._listeners.length;
for (; --i > -1;) {
if ((listener = this._listeners[i]).event === event && listener.callback === callback) {
this._listeners.splice(i, 1);
if (this.dom.removeEventListener) {
this.dom.removeEventListener(listener.event, listener.handler);
} else {
this.dom.detachEvent("on" + listener.event, listener.handler);
}
}
}
};
/**
* @return {?}
*/
Element.prototype.__destroy = function() {
var listener;
var i = this._listeners.length;
for (; --i > -1;) {
listener = this._listeners[i];
this._listeners.splice(i, 1);
if (this.dom.removeEventListener) {
this.dom.removeEventListener(listener.event, listener.handler);
} else {
this.dom.detachEvent("on" + listener.event, listener.handler);
}
}
return this.dom = null, this._clss = [], this._nodes = [], this._listeners = [], this._frag = null, listener = null, null;
};
var options = {
self : function(obj, callback) {
var helpersScopeObject = {};
/** @type {!Array<?>} */
var argumentsArray = Array.prototype.slice.call(arguments, 2);
var key;
for (key in callback.apply(obj, argumentsArray), obj) {
helpersScopeObject[key] = obj[key];
}
},
proto : function(obj, type) {
/** @type {!Object} */
obj.prototype = Object.create(type.prototype);
/** @type {!Function} */
obj.prototype.constructor = obj;
}
};
options.proto(View, Element);
/**
* @param {?} Container
* @param {!Object} name
* @param {!Object} options
* @return {?}
*/
View.prototype.initComponent = function(Container, name, options) {
var item = new Container(name);
return item._parent = this, this.children.push(item), item.dom && (options !== undefined ? options.appendElement && options.appendElement(item) : this.appendElement(item)), item;
};
/**
* @return {?}
*/
View.prototype.destroy = function() {
var m = this;
try {
defaults.depth(this, "children", function(socket) {
if (m !== socket) {
var i = m.children.length;
for (; --i > -1;) {
if (m.children[i] === socket) {
m.children.splice(i, 1);
}
}
}
if (socket._destroy) {
socket._destroy();
}
/** @type {null} */
socket = null;
});
} catch (to3) {
throw new Error("Trouble destroying nodes: " + to3);
}
return null;
};
/**
* @return {undefined}
*/
View.prototype._destroy = function() {
if (this.onDestroy) {
this.onDestroy();
}
this._parent.removeElement(this);
var index = this._events.length;
for (; --index > -1;) {
this._events.splice(index, 1);
}
/** @type {null} */
this.children = null;
/** @type {null} */
this._destroy = null;
/** @type {null} */
this._events = null;
/** @type {null} */
this.destroy = null;
/** @type {null} */
this.emit = null;
/** @type {null} */
this.on = null;
/** @type {null} */
this.off = null;
/** @type {null} */
this.initComponent = null;
};
/**
* @param {!Object} event
* @param {?} data
* @return {undefined}
*/
View.prototype.on = function(event, data) {
var index = this._events.length;
/** @type {boolean} */
var handler = false;
for (; --index > -1 && false === handler;) {
if (this._events[index].event === event) {
handler = this._events[index];
}
}
if (false === handler) {
handler = {
event : event,
listeners : []
};
this._events.push(handler);
}
handler.listeners.push(data);
};
/**
* @param {?} event
* @param {?} context
* @return {undefined}
*/
View.prototype.off = function(event, context) {
var index = this._events.length;
for (; --index > -1;) {
if (this._events[index].event === event) {
var i = this._events[index].listeners.length;
for (; --i > -1;) {
if (this._events[index].listeners[i] === context) {
this._events[index].listeners.splice(i, 1);
}
}
if (0 === this._events[index].listeners.length) {
this._events.splice(index, 1);
}
}
}
};
/**
* @param {?} event
* @return {undefined}
*/
View.prototype.emit = function(event) {
/** @type {!Array<?>} */
var cmd_args = Array.prototype.slice.call(arguments, 1);
var index = this._events.length;
for (; --index > -1;) {
if (this._events[index].event === event) {
var i = this._events[index].listeners.length;
for (; --i > -1;) {
this._events[index].listeners[i].apply(this, cmd_args);
}
}
}
};
var models = {
zh : {
"I am human" : "\u00e6\u02c6\u2018\u00e6\u02dc\u00af\u00e4\u00ba\u00ba",
"Enter the two words in the image." : "\u00e5\u0153\u00a8\u00e5\u203a\u00be\u00e5\u0192\u008f\u00e4\u00b8\u00ad\u00e8\u00be\u201c\u00e5\u2026\u00a5\u00e4\u00b8\u00a4\u00e4\u00b8\u00aa\u00e5\u008d\u2022\u00e8\u00af\u008d\u00e3\u20ac\u201a",
Check : "\u00e6\u00a3\u20ac\u00e6\u0178\u00a5",
Skip : "\u00e8\u00b7\u00b3\u00e8\u00b7\u0192",
Next : "\u00e4\u00b8\u2039\u00e4\u00b8\u20ac\u00e4\u00b8\u00aa",
"Please try again." : "\u00e8\u00af\u00b7\u00e5\u2020\u008d\u00e8\u00af\u2022\u00e4\u00b8\u20ac\u00e6\u00ac\u00a1",
"Error submitting captcha." : "\u00e6\u008f\u0090\u00e4\u00ba\u00a4\u00e5\u2021\u00ba\u00e9\u201d\u2122",
"Error fetching captcha." : "\u00e6\u0160\u201c\u00e5\u008f\u2013\u00e5\u2021\u00ba\u00e9\u201d\u2122",
"This hCaptcha is for testing only. Please contact the site admin if you see this." : "\u00e8\u00bf\u2122\u00e4\u00b8\u00aahCaptcha\u00e4\u00bb\u2026\u00e7\u201d\u00a8\u00e4\u00ba\u017d\u00e6\u00b5\u2039\u00e8\u00af\u2022\u00e3\u20ac\u201a\u00e5\u00a6\u201a\u00e6\u017e\u0153\u00e4\u00bd \u00e7\u0153\u2039\u00e5\u02c6\u00b0\u00e8\u00bf\u2122\u00e4\u00b8\u00aa\u00ef\u00bc\u0152\u00e8\u00af\u00b7\u00e8\u0081\u201d\u00e7\u00b3\u00bb\u00e7\u00bd\u2018\u00e7\u00ab\u2122\u00e7\u00ae\u00a1\u00e7\u0090\u2020\u00e5\u2018\u02dc\u00e3\u20ac\u201a",
"Send Us Feedback" : "\u00e5\u008f\u2018\u00e9\u20ac\u0081\u00e5\u008f\u008d\u00e9\u00a6\u02c6\u00e6\u201e\u008f\u00e8\u00a7\u0081",
Feedback : "\u00e5\u008f\u008d\u00e9\u00a6\u02c6",
Info : "\u00e4\u00bf\u00a1\u00e6\u0081\u00af",
Send : "\u00e5\u008f\u2018\u00e9\u20ac\u0081",
"hCaptcha is a service that reduces bots and spam by asking simple questions. Please follow the instructions at the top of the screen for each challenge. For more info visit" : "hCaptcha\u00e6\u02dc\u00af\u00e4\u00b8\u20ac\u00e7\u00a7\u008d\u00e9\u20ac\u0161\u00e8\u00bf\u2021\u00e6\u008f\u0090\u00e5\u2021\u00ba\u00e7\u00ae\u20ac\u00e5\u008d\u2022\u00e9\u2014\u00ae\u00e9\u00a2\u02dc\u00e6\u009d\u00a5\u00e5\u2021\u008f\u00e5\u00b0\u2018\u00e6\u0153\u00ba\u00e5\u2122\u00a8\u00e4\u00ba\u00ba\u00e5\u2019\u0152\u00e5\u017e\u0192\u00e5\u0153\u00be\u00e9\u201a\u00ae\u00e4\u00bb\u00b6\u00e7\u0161\u201e\u00e6\u0153\u008d\u00e5\u0160\u00a1\u00e3\u20ac\u201a\u00e8\u00af\u00b7\u00e6\u0152\u2030\u00e7\u2026\u00a7\u00e5\u00b1\u008f\u00e5\u00b9\u2022\u00e9\u00a1\u00b6\u00e9\u0192\u00a8\u00e7\u0161\u201e\u00e8\u00af\u00b4\u00e6\u02dc\u017d\u00e8\u00bf\u203a\u00e8\u00a1\u0152\u00e6\u00af\u008f\u00e9\u00a1\u00b9\u00e6\u0152\u2018\u00e6\u02c6\u02dc\u00e3\u20ac\u201a\u00e6\u00ac\u00b2\u00e4\u00ba\u2020\u00e8\u00a7\u00a3\u00e6\u203a\u00b4\u00e5\u00a4\u0161\u00e4\u00bf\u00a1\u00e6\u0081\u00af\u00ef\u00bc\u0152\u00e8\u00af\u00b7\u00e8\u00ae\u00bf",
back : "\u00e8\u0192\u0152\u00e9\u0192\u00a8",
"Having a problem?" : "\u00e6\u0153\u2030\u00e9\u2014\u00ae\u00e9\u00a2\u02dc\u00e5\u0090\u2014\u00ef\u00bc\u0178",
"Give feedback." : "\u00e7\u00bb\u2122\u00e4\u00ba\u02c6\u00e5\u008f\u008d\u00e9\u00a6\u02c6\u00e3\u20ac\u201a",
"Learn about accessibility options." : "\u00e4\u00ba\u2020\u00e8\u00a7\u00a3\u00e6\u0153\u2030\u00e5\u2026\u00b3\u00e8\u00be\u2026\u00e5\u0160\u00a9\u00e5\u0160\u0178\u00e8\u0192\u00bd\u00e9\u20ac\u2030\u00e9\u00a1\u00b9\u00e7\u0161\u201e\u00e4\u00bf\u00a1\u00e6\u0081\u00af\u00e3\u20ac\u201a",
"Too Difficult" : "\u00e5\u00a4\u00aa\u00e9\u0161\u00be\u00e4\u00ba\u2020",
Inappropriate : "\u00e4\u00b8\u008d\u00e5\u00bd\u201c",
"Software Bug" : "\u00e8\u00bd\u00af\u00e4\u00bb\u00b6\u00e6\u00bc\u008f\u00e6\u00b4\u017e",
Other : "\u00e5\u2026\u00b6\u00e4\u00bb\u2013",
"Thank you for your feedback. We'll resolve your issue as quickly as we can." : "\u00e6\u201e\u0178\u00e8\u00b0\u00a2\u00e6\u201a\u00a8\u00e7\u0161\u201e\u00e5\u008f\u008d\u00e9\u00a6\u02c6\u00e6\u201e\u008f\u00e8\u00a7\u0081\u00e3\u20ac\u201a\u00e6\u02c6\u2018\u00e4\u00bb\u00ac\u00e5\u00b0\u2020\u00e5\u00b0\u00bd\u00e5\u00bf\u00ab\u00e8\u00a7\u00a3\u00e5\u2020\u00b3\u00e6\u201a\u00a8\u00e7\u0161\u201e\u00e9\u2014\u00ae\u00e9\u00a2\u02dc\u00e3\u20ac\u201a",
"Please describe your issue." : "\u00e8\u00af\u00b7\u00e6\u008f\u008f\u00e8\u00bf\u00b0\u00e6\u201a\u00a8\u00e7\u0161\u201e\u00e9\u2014\u00ae\u00e9\u00a2\u02dc\u00e3\u20ac\u201a"
},
ar : {
"I am human" : "\u00d8\u00a3\u00d9\u2020\u00d8\u00a7 \u00d8\u00a7\u00d9\u201e\u00d8\u00a5\u00d9\u2020\u00d8\u00b3\u00d8\u00a7\u00d9\u2020",
"Enter the two words in the image." : "\u00d8\u00a3\u00d8\u00af\u00d8\u00ae\u00d9\u201e \u00d8\u00a7\u00d9\u201e\u00d9\u0192\u00d9\u201e\u00d9\u2026\u00d8\u00aa\u00d9\u0160\u00d9\u2020 \u00d9\u0081\u00d9\u0160 \u00d8\u00a7\u00d9\u201e\u00d8\u00b5\u00d9\u02c6\u00d8\u00b1\u00d8\u00a9.",
Check : "\u00d8\u00a7\u00d9\u201e\u00d8\u00aa\u00d8\u00ad\u00d9\u201a\u00d9\u201a \u00d9\u2026\u00d9\u2020",
Skip : "\u00d8\u00aa\u00d8\u00ae\u00d8\u00b7\u00d9\u2030",
Next : "\u00d8\u00a7\u00d9\u201e\u00d8\u00aa\u00d8\u00a7\u00d9\u201e\u00d9\u2030",
"Please try again." : "\u00d8\u00ad\u00d8\u00a7\u00d9\u02c6\u00d9\u201e \u00d9\u2026\u00d8\u00b1\u00d8\u00a9 \u00d8\u00a7\u00d8\u00ae\u00d8\u00b1\u00d9\u2030.",
"Error submitting captcha." : "\u00d8\u00ae\u00d8\u00b7\u00d8\u00a3 \u00d9\u0081\u00d9\u0160 \u00d8\u00aa\u00d9\u201a\u00d8\u00af\u00d9\u0160\u00d9\u2026 \u00d9\u0192\u00d9\u201e\u00d9\u2026\u00d8\u00a9 \u00d8\u00a7\u00d9\u201e\u00d8\u00aa\u00d8\u00ad\u00d9\u201a\u00d9\u201a.",
"Error fetching captcha." : "\u00d8\u00ae\u00d8\u00b7\u00d8\u00a3 \u00d9\u0081\u00d9\u0160 \u00d8\u00ac\u00d9\u201e\u00d8\u00a8 \u00d9\u0192\u00d9\u201e\u00d9\u2026\u00d8\u00a9 \u00d8\u00a7\u00d9\u201e\u00d8\u00aa\u00d8\u00ad\u00d9\u201a\u00d9\u201a.",
"This hCaptcha is for testing only. Please contact the site admin if you see this." : "\u00d9\u2021\u00d8\u00b0\u00d8\u00a7 hCaptcha \u00d9\u2021\u00d9\u02c6 \u00d9\u201e\u00d9\u201e\u00d8\u00a7\u00d8\u00ae\u00d8\u00aa\u00d8\u00a8\u00d8\u00a7\u00d8\u00b1 \u00d9\u0081\u00d9\u201a\u00d8\u00b7. \u00d9\u0160\u00d8\u00b1\u00d8\u00ac\u00d9\u2030 \u00d8\u00a7\u00d9\u201e\u00d8\u00a7\u00d8\u00aa\u00d8\u00b5\u00d8\u00a7\u00d9\u201e \u00d8\u00a8\u00d9\u2026\u00d8\u00b3\u00d8\u00a4\u00d9\u02c6\u00d9\u201e \u00d8\u00a7\u00d9\u201e\u00d9\u2026\u00d9\u02c6\u00d9\u201a\u00d8\u00b9 \u00d8\u00a5\u00d8\u00b0\u00d8\u00a7 \u00d8\u00b1\u00d8\u00a3\u00d9\u0160\u00d8\u00aa \u00d9\u2021\u00d8\u00b0\u00d8\u00a7.",
"Send Us Feedback" : "\u00d8\u00a3\u00d8\u00b1\u00d8\u00b3\u00d9\u201e \u00d9\u201e\u00d9\u2020\u00d8\u00a7 \u00d8\u00b1\u00d8\u00af\u00d9\u02c6\u00d8\u00af \u00d8\u00a7\u00d9\u201e\u00d9\u0081\u00d8\u00b9\u00d9\u201e",
Feedback : "\u00d8\u00b1\u00d8\u00af\u00d9\u02c6\u00d8\u00af \u00d8\u00a7\u00d9\u201e\u00d9\u0081\u00d8\u00b9\u00d9\u201e",
Info : "\u00d9\u2026\u00d8\u00b9\u00d9\u201e\u00d9\u02c6\u00d9\u2026\u00d8\u00a7\u00d8\u00aa",
Send : "\u00d8\u00a5\u00d8\u00b1\u00d8\u00b3\u00d8\u00a7\u00d9\u201e",
"hCaptcha is a service that reduces bots and spam by asking simple questions. Please follow the instructions at the top of the screen for each challenge. For more info visit" : "hCaptcha \u00d9\u2021\u00d9\u0160 \u00d8\u00ae\u00d8\u00af\u00d9\u2026\u00d8\u00a9 \u00d8\u00aa\u00d9\u201a\u00d9\u201e\u00d9\u201e \u00d9\u2026\u00d9\u2020 \u00d8\u00a8\u00d8\u00b1\u00d8\u00a7\u00d9\u2026\u00d8\u00ac \u00d8\u00a7\u00d9\u201e\u00d8\u00b1\u00d9\u02c6\u00d8\u00a8\u00d9\u02c6\u00d8\u00aa \u00d9\u02c6\u00d8\u00a7\u00d9\u201e\u00d8\u00a8\u00d8\u00b1\u00d9\u0160\u00d8\u00af \u00d8\u00a7\u00d9\u201e\u00d8\u00b9\u00d8\u00b4\u00d9\u02c6\u00d8\u00a7\u00d8\u00a6\u00d9\u0160 \u00d9\u2026\u00d9\u2020 \u00d8\u00ae\u00d9\u201e\u00d8\u00a7\u00d9\u201e \u00d8\u00b7\u00d8\u00b1\u00d8\u00ad \u00d8\u00a3\u00d8\u00b3\u00d8\u00a6\u00d9\u201e\u00d8\u00a9 \u00d8\u00a8\u00d8\u00b3\u00d9\u0160\u00d8\u00b7\u00d8\u00a9. \u00d9\u0160\u00d8\u00b1\u00d8\u00ac\u00d9\u2030 \u00d8\u00a7\u00d8\u00aa\u00d8\u00a8\u00d8\u00a7\u00d8\u00b9 \u00d8\u00a7\u00d9\u201e\u00d8\u00aa\u00d8\u00b9\u00d9\u201e\u00d9\u0160\u00d9\u2026\u00d8\u00a7\u00d8\u00aa \u00d9\u0081\u00d9\u0160 \u00d8\u00a7\u00d9\u201e\u00d8\u00ac\u00d8\u00b2\u00d8\u00a1 \u00d8\u00a7\u00d9\u201e\u00d8\u00b9\u00d9\u201e\u00d9\u02c6\u00d9\u0160 \u00d9\u2026\u00d9\u2020 \u00d8\u00a7\u00d9\u201e\u00d8\u00b4\u00d8\u00a7\u00d8\u00b4\u00d8\u00a9 \u00d9\u201e\u00d9\u0192\u00d9\u201e \u00d8\u00aa\u00d8\u00ad\u00d8\u00af. \u00d9\u201e\u00d9\u2026\u00d8\u00b2\u00d9\u0160\u00d8\u00af \u00d9\u2026\u00d9\u2020 \u00d8\u00a7\u00d9\u201e\u00d9\u2026\u00d8\u00b9\u00d9\u201e\u00d9\u02c6\u00d9\u2026\u00d8\u00a7\u00d8\u00aa \u00d8\u00b2\u00d9\u0160\u00d8\u00a7\u00d8\u00b1\u00d8\u00a9",
back : "\u00d8\u00a7\u00d9\u201e\u00d9\u2030 \u00d8\u00a7\u00d9\u201e\u00d8\u00ae\u00d9\u201e\u00d9\u0081",
"Having a problem?" : "\u00d8\u00aa\u00d9\u02c6\u00d8\u00a7\u00d8\u00ac\u00d9\u2021 \u00d9\u2026\u00d8\u00b4\u00d9\u0192\u00d9\u201e\u00d8\u00a9\u00d8\u0178",
"Learn about accessibility options." : "\u00d8\u00aa\u00d8\u00b9\u00d8\u00b1\u00d9\u0081 \u00d8\u00b9\u00d9\u201e\u00d9\u2030 \u00d8\u00ae\u00d9\u0160\u00d8\u00a7\u00d8\u00b1\u00d8\u00a7\u00d8\u00aa \u00d8\u00a7\u00d9\u201e\u00d9\u02c6\u00d8\u00b5\u00d9\u02c6\u00d9\u201e.",
"Give feedback." : "\u00d8\u00a5\u00d8\u00b9\u00d8\u00b7\u00d8\u00a7\u00d8\u00a1 \u00d8\u00b1\u00d8\u00af\u00d9\u02c6\u00d8\u00af \u00d8\u00a7\u00d9\u201e\u00d9\u0081\u00d8\u00b9\u00d9\u201e.",
"Too Difficult" : "\u00d8\u00b5\u00d8\u00b9\u00d8\u00a8 \u00d8\u00ac\u00d8\u00af\u00d8\u00a7",
Inappropriate : "\u00d8\u00ba\u00d9\u0160\u00d8\u00b1 \u00d9\u2026\u00d9\u2020\u00d8\u00a7\u00d8\u00b3\u00d8\u00a8",
"Software Bug" : "\u00d8\u00b9\u00d9\u201e\u00d8\u00a9 \u00d8\u00a7\u00d9\u201e\u00d8\u00a8\u00d8\u00b1\u00d9\u2026\u00d8\u00ac\u00d9\u0160\u00d8\u00a7\u00d8\u00aa",
Other : "\u00d8\u00a2\u00d8\u00ae\u00d8\u00b1",
"Thank you for your feedback. We'll resolve your issue as quickly as we can." : "\u00d8\u00b4\u00d9\u0192\u00d8\u00b1\u00d8\u00a7 \u00d9\u201e\u00d9\u0192 \u00d8\u00b9\u00d9\u201e\u00d9\u2030 \u00d9\u2026\u00d9\u201e\u00d8\u00a7\u00d8\u00ad\u00d8\u00b8\u00d8\u00a7\u00d8\u00aa\u00d9\u0192. \u00d8\u00b3\u00d9\u2020\u00d8\u00ad\u00d9\u201e \u00d9\u2026\u00d8\u00b4\u00d9\u0192\u00d9\u201e\u00d8\u00aa\u00d9\u0192 \u00d8\u00a8\u00d8\u00a3\u00d8\u00b3\u00d8\u00b1\u00d8\u00b9 \u00d9\u2026\u00d8\u00a7 \u00d9\u0160\u00d9\u2026\u00d9\u0192\u00d9\u2020.",
"Please describe your issue." : "\u00d9\u0160\u00d8\u00b1\u00d8\u00ac\u00d9\u2030 \u00d9\u02c6\u00d8\u00b5\u00d9\u0081 \u00d9\u2026\u00d8\u00b4\u00d9\u0192\u00d9\u201e\u00d8\u00aa\u00d9\u0192."
},
af : {
"I am human" : "Ek is menslike"
},
am : {
"I am human" : "\u00e1\u0160\u00a5\u00e1\u0160\u201d \u00e1\u02c6\u00b0\u00e1\u2039\u008d \u00e1\u0160\u0090\u00e1\u0160\u009d"
},
hy : {
"I am human" : "\u00d4\u00b5\u00d5\u00bd \u00d5\u00b4\u00d5\u00a1\u00d6\u20ac\u00d5\u00a4 \u00d5\u00a5\u00d5\u00b4"
},
az : {
"I am human" : "M\u00c9\u2122n insanam"
},
eu : {
"I am human" : "Gizakia naiz"
},
bn : {
"I am human" : "\u00e0\u00a6\u2020\u00e0\u00a6\u00ae\u00e0\u00a6\u00bf \u00e0\u00a6\u00ae\u00e0\u00a6\u00be\u00e0\u00a6\u00a8\u00e0\u00a6\u00ac \u00e0\u00a6\u00a8\u00e0\u00a6\u2021"
},
bg : {
"I am human" : "\u00d0\u0090\u00d0\u00b7 \u00d1\u0081\u00d1\u0160\u00d0\u00bc \u00d1\u2021\u00d0\u00be\u00d0\u00b2\u00d0\u00b5\u00d0\u00ba",
"Enter the two words in the image." : "\u00d0\u2019\u00d1\u0160\u00d0\u00b2\u00d0\u00b5\u00d0\u00b4\u00d0\u00b5\u00d1\u201a\u00d0\u00b5 \u00d0\u00b4\u00d0\u00b2\u00d0\u00b5\u00d1\u201a\u00d0\u00b5 \u00d0\u00b4\u00d1\u0192\u00d0\u00bc\u00d0\u00b8 \u00d0\u00b2 \u00d0\u00b8\u00d0\u00b7\u00d0\u00be\u00d0\u00b1\u00d1\u20ac\u00d0\u00b0\u00d0\u00b6\u00d0\u00b5\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5\u00d1\u201a\u00d0\u00be."
},
ca : {
"I am human" : "S\u00c3\u00b3c hum\u00c3 ",
"Enter the two words in the image." : "Introdu\u00c3\u00afu les dues paraules a la imatge."
},
hr : {
"I am human" : "Ja sam \u00c4\u008dovjek",
"Enter the two words in the image." : "Unesite dvije rije\u00c4\u008di u sliku."
},
cs : {
"I am human" : "Jsem \u00c4\u008dlov\u00c4\u203ak",
"Enter the two words in the image." : "Zadejte dv\u00c4\u203a slova do obr\u00c3\u00a1zku.",
Check : "Zkontrolovat",
Skip : "P\u00c5\u2122esko\u00c4\u008dit",
Next : "dal\u00c5\u00a1\u00c3\u00ad",
"Please try again." : "Zkuste to pros\u00c3\u00adm znovu.",
"Error submitting captcha." : "P\u00c5\u2122i odes\u00c3\u00adl\u00c3\u00a1n\u00c3\u00ad captcha se vyskytla chyba.",
"Error fetching captcha." : "P\u00c5\u2122i na\u00c4\u008d\u00c3\u00adt\u00c3\u00a1n\u00c3\u00ad captcha se vyskytla chyba.",
"This hCaptcha is for testing only. Please contact the site admin if you see this." : "Tento hCaptcha je ur\u00c4\u008den pouze pro testov\u00c3\u00a1n\u00c3\u00ad. Pokud to vid\u00c3\u00adte, obra\u00c5\u00a5te se na administr\u00c3\u00a1tora webu.",
"Send Us Feedback" : "Po\u00c5\u00a1lete n\u00c3\u00a1m sv\u00c5\u00afj n\u00c3\u00a1zor",
Feedback : "Zp\u00c4\u203atn\u00c3\u00a1 vazba",
Info : "Informace",
Send : "Poslat",
"hCaptcha is a service that reduces bots and spam by asking simple questions. Please follow the instructions at the top of the screen for each challenge. For more info visit" : "hCaptcha je slu\u00c5\u00beba, kter\u00c3\u00a1 omezuje roboty a spam kladen\u00c3\u00adm jednoduch\u00c3\u00bdch ot\u00c3\u00a1zek. Pro ka\u00c5\u00bedou v\u00c3\u00bdzvu postupujte podle pokyn\u00c5\u00af v horn\u00c3\u00ad \u00c4\u008d\u00c3\u00a1sti obrazovky. Pro v\u00c3\u00adce informac\u00c3\u00ad nav\u00c5\u00a1tivte",
back : "zadn\u00c3\u00ad",
"Having a problem?" : "M\u00c3\u00a1te probl\u00c3\u00a9m?",
"Learn about accessibility options." : "Dal\u00c5\u00a1\u00c3\u00ad informace o mo\u00c5\u00benostech usnadn\u00c4\u203an\u00c3\u00ad p\u00c5\u2122\u00c3\u00adstupu.",
"Give feedback." : "D\u00c3\u00a1t zp\u00c4\u203atnou vazbu.",
"Too Difficult" : "P\u00c5\u2122\u00c3\u00adli\u00c5\u00a1 obt\u00c3\u00ad\u00c5\u00ben\u00c3\u00a9",
Inappropriate : "Nem\u00c3\u00adstn\u00c3\u00bd",
"Software Bug" : "Chyba softwaru",
Other : "jin\u00c3\u00bd",
"Thank you for your feedback. We'll resolve your issue as quickly as we can." : "D\u00c4\u203akujeme v\u00c3\u00a1m za va\u00c5\u00a1i reakci. V\u00c3\u00a1\u00c5\u00a1 probl\u00c3\u00a9m vy\u00c5\u2122e\u00c5\u00a1\u00c3\u00adme co nejrychleji.",
"Please describe your issue." : "Popi\u00c5\u00a1te pros\u00c3\u00adm sv\u00c5\u00afj probl\u00c3\u00a9m."
},
da : {
"I am human" : "Jeg er et menneske",
"Enter the two words in the image." : "Indtast de to ord p\u00c3\u00a5 billedet."
},
nl : {
"I am human" : "Ik ben mens",
"Enter the two words in the image." : "Voer de twee woorden in de afbeelding in."
},
et : {
"I am human" : "Ma olen inimeste",
"Enter the two words in the image." : "Sisestage kaks s\u00c3\u00b5na pildil."
},
fi : {
"I am human" : "Olen ihminen",
"Enter the two words in the image." : "Kirjoita kuvan kaksi sanaa."
},
fr : {
"I am human" : "Je suis humain",
"Enter the two words in the image." : "Entrez les deux mots dans l&#39;image."
},
gl : {
"I am human" : "Eu son humano"
},
ka : {
"I am human" : "\u00e1\u0192\u203a\u00e1\u0192\u201d \u00e1\u0192\u2022\u00e1\u0192\u0090\u00e1\u0192 \u00e1\u0192\u0090\u00e1\u0192\u201c\u00e1\u0192\u0090\u00e1\u0192\u203a\u00e1\u0192\u02dc\u00e1\u0192\u0090\u00e1\u0192\u0153\u00e1\u0192\u02dc"
},
de : {
"I am human" : "Ich bin ein Mensch",
"Enter the two words in the image." : "Geben Sie die beiden W\u00c3\u00b6rter im Bild ein.",
Check : "Pr\u00c3\u00bcfen",
Skip : "\u00c3\u0153berspringen",
Next : "N\u00c3\u00a4chster",
"Please try again." : "Bitte versuche es erneut.",
"Error submitting captcha." : "Fehler beim \u00c3\u0153bermitteln des Captcha.",
"Error fetching captcha." : "Fehler beim Abrufen des Captcha.",
"This hCaptcha is for testing only. Please contact the site admin if you see this." : "Dieses hCaptcha dient nur zu Testzwecken. Wenden Sie sich an den Site-Administrator, wenn Sie dies sehen.",
"Send Us Feedback" : "Sende uns Feedback",
Feedback : "Feedback",
Info : "Info",
Send : "Senden",
"hCaptcha is a service that reduces bots and spam by asking simple questions. Please follow the instructions at the top of the screen for each challenge. For more info visit" : "hCaptcha ist ein Dienst, der Bots und Spam reduziert, indem einfache Fragen gestellt werden. Bitte befolgen Sie die Anweisungen oben auf dem Bildschirm f\u00c3\u00bcr jede Herausforderung. F\u00c3\u00bcr weitere Informationen besuchen Sie",
back : "zur\u00c3\u00bcck",
"Having a problem?" : "Haben Sie ein Problem?",
"Learn about accessibility options." : "Erfahren Sie mehr \u00c3\u00bcber Eingabehilfen.",
"Give feedback." : "Feedback geben.",
"Too Difficult" : "Zu schwer",
Inappropriate : "Unangemessen",
"Software Bug" : "Softwarefehler",
Other : "Andere",
"Thank you for your feedback. We'll resolve your issue as quickly as we can." : "Vielen Dank f\u00c3\u00bcr dein Feedback. Wir werden Ihr Problem so schnell wie m\u00c3\u00b6glich l\u00c3\u00b6sen.",
"Please describe your issue." : "Bitte beschreiben Sie Ihr Problem."
},
el : {
"I am human" : "\u00ce\u2022\u00ce\u00af\u00ce\u00bc\u00ce\u00b1\u00ce\u00b9 \u00ce\u00ac\u00ce\u00bd\u00ce\u00b8\u00cf\u0081\u00cf\u2030\u00cf\u20ac\u00ce\u00bf\u00cf\u201a",
"Enter the two words in the image." : "\u00ce\u0161\u00ce\u00b1\u00cf\u201e\u00ce\u00b1\u00cf\u2021\u00cf\u2030\u00cf\u0081\u00ce\u00af\u00cf\u0192\u00cf\u201e\u00ce\u00b5 \u00cf\u201e\u00ce\u00b9\u00cf\u201a \u00ce\u00b4\u00cf\u008d\u00ce\u00bf \u00ce\u00bb\u00ce\u00ad\u00ce\u00be\u00ce\u00b5\u00ce\u00b9\u00cf\u201a \u00cf\u0192\u00cf\u201e\u00ce\u00b7\u00ce\u00bd \u00ce\u00b5\u00ce\u00b9\u00ce\u00ba\u00cf\u0152\u00ce\u00bd\u00ce\u00b1."
},
gu : {
"I am human" : "\u00e0\u00aa\u00b9\u00e0\u00ab\u0081\u00e0\u00aa\u201a \u00e0\u00aa\u00ae\u00e0\u00aa\u00be\u00e0\u00aa\u00a8\u00e0\u00aa\u00b5 \u00e0\u00aa\u203a\u00e0\u00ab\u0081\u00e0\u00aa\u201a"
},
iw : {
"I am human" : ". \u00d7\u0090\u00d7 \u00d7\u2122 \u00d7\u0090\u00d7 \u00d7\u2022\u00d7\u00a9\u00d7\u2122",
"Enter the two words in the image." : "\u00d7\u201d\u00d7\u2013\u00d7\u0178 \u00d7\u0090\u00d7\u00aa \u00d7\u00a9\u00d7\u00aa\u00d7\u2122 \u00d7\u201d\u00d7\u017e\u00d7\u2122\u00d7\u0153\u00d7\u2122\u00d7\u009d \u00d7\u2018\u00d7\u00aa\u00d7\u017e\u00d7\u2022\u00d7 \u00d7\u201d."
},
hi : {
"I am human" : "\u00e0\u00a4\u00ae\u00e0\u00a5\u02c6\u00e0\u00a4\u201a \u00e0\u00a4\u00ae\u00e0\u00a4\u00be\u00e0\u00a4\u00a8\u00e0\u00a4\u00b5 \u00e0\u00a4\u00b9\u00e0\u00a5\u201a\u00e0\u00a4\u201a",
"Enter the two words in the image." : "\u00e0\u00a4\u203a\u00e0\u00a4\u00b5\u00e0\u00a4\u00bf \u00e0\u00a4\u00ae\u00e0\u00a5\u2021\u00e0\u00a4\u201a \u00e0\u00a4\u00a6\u00e0\u00a5\u2039 \u00e0\u00a4\u00b6\u00e0\u00a4\u00ac\u00e0\u00a5\u008d\u00e0\u00a4\u00a6 \u00e0\u00a4\u00a6\u00e0\u00a4\u00b0\u00e0\u00a5\u008d\u00e0\u00a4\u0153 \u00e0\u00a4\u2022\u00e0\u00a4\u00b0\u00e0\u00a5\u2021\u00e0\u00a4\u201a\u00e0\u00a5\u00a4"
},
hu : {
"I am human" : "\u00c3\u2030n vagyok az emberi",
"Enter the two words in the image." : "\u00c3\u008drja be a k\u00c3\u00a9pen a k\u00c3\u00a9t sz\u00c3\u00b3t."
},
is : {
"I am human" : "\u00c3\u2030g er manneskja"
},
id : {
"I am human" : "Aku manusia",
"Enter the two words in the image." : "Masukkan dua kata dalam gambar.",
Check : "Memeriksa",
Skip : "Melewatkan",
Next : "Lanjut",
"Please try again." : "Silakan coba lagi.",
"Error submitting captcha." : "Kesalahan mengirim captcha.",
"Error fetching captcha." : "Kesalahan mengambil captcha.",
"This hCaptcha is for testing only. Please contact the site admin if you see this." : "HCaptcha ini hanya untuk pengujian. Silakan hubungi admin situs jika Anda melihat ini.",
"Send Us Feedback" : "Berikan umpan balik",
Feedback : "Umpan balik",
Info : "Informasi",
Send : "Kirim",
"hCaptcha is a service that reduces bots and spam by asking simple questions. Please follow the instructions at the top of the screen for each challenge. For more info visit" : "hCaptcha adalah layanan yang mengurangi bot dan spam dengan mengajukan pertanyaan sederhana. Silakan ikuti instruksi di bagian atas layar untuk setiap tantangan. Untuk info lebih lanjut, kunjungi",
back : "kembali",
"Having a problem?" : "Mengalami masalah?",
"Learn about accessibility options." : "Pelajari tentang opsi aksesibilitas.",
"Give feedback." : "Berikan umpan balik.",
"Too Difficult" : "Terlalu sulit",
Inappropriate : "Tidak pantas",
"Software Bug" : "Bug Perangkat Lunak",
Other : "Lain",
"Thank you for your feedback. We'll resolve your issue as quickly as we can." : "Terima kasih atas tanggapan Anda. Kami akan menyelesaikan masalah Anda secepat mungkin.",
"Please describe your issue." : "Tolong jelaskan masalah Anda."
},
it : {
"I am human" : "Sono un essere umano",
"Enter the two words in the image." : "Inserisci le due parole nell&#39;immagine."
},
ja : {
"I am human" : "\u00e7\u00a7\u0081\u00e3\u0081\u00af\u00e4\u00ba\u00ba\u00e9\u2013\u201c",
"Enter the two words in the image." : "\u00e7\u201d\u00bb\u00e5\u0192\u008f\u00e3\u0081\u00ab2\u00e3\u0081\u00a4\u00e3\u0081\u00ae\u00e5\u008d\u02dc\u00e8\u00aa\u017e\u00e3\u201a\u2019\u00e5\u2026\u00a5\u00e5\u0160\u203a\u00e3\u0081\u2014\u00e3\u0081\u00be\u00e3\u0081\u2122\u00e3\u20ac\u201a"
},
kn : {
"I am human" : "\u00e0\u00b2\u00a8\u00e0\u00b2\u00be\u00e0\u00b2\u00a8\u00e0\u00b3\u0081 \u00e0\u00b2\u00ae\u00e0\u00b2\u00be\u00e0\u00b2\u00a8\u00e0\u00b2\u00b5\u00e0\u00b2\u00a8\u00e0\u00b3\u0081"
},
ko : {
"I am human" : "\u00eb\u201a\u02dc\u00eb\u0160\u201d \u00ec\u009d\u00b8\u00ea\u00b0\u201e\u00ec\u009d\u02dc",
"Enter the two words in the image." : "\u00ec\u009d\u00b4\u00eb\u00af\u00b8\u00ec\u00a7\u20ac\u00ec\u2014\u0090 \u00eb\u2018\u0090 \u00eb\u2039\u00a8\u00ec\u2013\u00b4\u00eb\u00a5\u00bc \u00ec\u017e\u2026\u00eb \u00a5\u00ed\u2022\u02dc\u00ec\u2039\u00ad\u00ec\u2039\u0153\u00ec\u02dc\u00a4."
},
lo : {
"I am human" : "\u00e0\u00ba\u201a\u00e0\u00bb\u2030\u00e0\u00ba\u00ad\u00e0\u00ba\u008d\u00e0\u00bb\u20ac\u00e0\u00ba\u203a\u00e0\u00ba\u00b1\u00e0\u00ba\u2122\u00e0\u00ba\u00a1\u00e0\u00ba\u00b0\u00e0\u00ba\u2122\u00e0\u00ba\u00b8\u00e0\u00ba\u201d"
},
lv : {
"I am human" : "Es esmu cilv\u00c4\u201cks"
},
lt : {
"I am human" : "A\u00c5\u00a1 esu \u00c5\u00bemogaus",
"Enter the two words in the image." : "\u00c4\u00aeveskite du \u00c5\u00beod\u00c5\u00beius paveiksl\u00c4\u2014lyje."
},
ms : {
"I am human" : "Saya manusia"
},
ml : {
"I am human" : "\u00e0\u00b4\u017e\u00e0\u00b4\u00be\u00e0\u00b5\u00bb \u00e0\u00b4\u00ae\u00e0\u00b4\u00a8\u00e0\u00b5\u0081\u00e0\u00b4\u00b7\u00e0\u00b5\u008d\u00e0\u00b4\u00af\u00e0\u00b4\u00a8\u00e0\u00b4\u00be\u00e0\u00b4\u00a3\u00e0\u00b5\u008d"
},
mr : {
"I am human" : "\u00e0\u00a4\u00ae\u00e0\u00a5\u20ac \u00e0\u00a4\u00ae\u00e0\u00a4\u00be\u00e0\u00a4\u00a8\u00e0\u00a4\u00b5\u00e0\u00a5\u20ac \u00e0\u00a4\u2020\u00e0\u00a4\u00b9\u00e0\u00a5\u2021"
},
mn : {
"I am human" : "\u00d0\u2018\u00d0\u00b8 \u00d0\u00b1\u00d0\u00be\u00d0\u00bb \u00d1\u2026\u00d2\u00af\u00d0\u00bd"
},
no : {
"I am human" : "Jeg er menneskelig",
"Enter the two words in the image." : "Skriv inn de to ordene p\u00c3\u00a5 bildet."
},
fa : {
"I am human" : "\u00d9\u2026\u00d9\u2020 \u00d8\u00a7\u00d9\u2020\u00d8\u00b3\u00d8\u00a7\u00d9\u2020\u00db\u0152 \u00d9\u2021\u00d8\u00b3\u00d8\u00aa\u00d9\u2026",
"Enter the two words in the image." : "\u00d8\u00af\u00d9\u02c6 \u00da\u00a9\u00d9\u201e\u00d9\u2026\u00d9\u2021 \u00d8\u00b1\u00d8\u00a7 \u00d8\u00af\u00d8\u00b1 \u00d8\u00aa\u00d8\u00b5\u00d9\u02c6\u00db\u0152\u00d8\u00b1 \u00d9\u02c6\u00d8\u00a7\u00d8\u00b1\u00d8\u00af \u00da\u00a9\u00d9\u2020\u00db\u0152\u00d8\u00af."
},
pl : {
"I am human" : "Jestem cz\u00c5\u201aowiekiem",
"Enter the two words in the image." : "Wpisz dwa s\u00c5\u201aowa z obrazka."
},
pt : {
"I am human" : "Sou humano",
"Enter the two words in the image." : "Digite as duas palavras na imagem."
},
ro : {
"I am human" : "Eu sunt om",
"Enter the two words in the image." : "Introduce\u00c8\u203ai cele dou\u00c4\u0192 cuvinte \u00c3\u00aen imagine."
},
ru : {
"I am human" : "\u00d0\u00af \u00d1\u2021\u00d0\u00b5\u00d0\u00bb\u00d0\u00be\u00d0\u00b2\u00d0\u00b5\u00d0\u00ba",
"Enter the two words in the image." : "\u00d0\u2019\u00d0\u00b2\u00d0\u00b5\u00d0\u00b4\u00d0\u00b8\u00d1\u201a\u00d0\u00b5 \u00d0\u00b4\u00d0\u00b2\u00d0\u00b0 \u00d1\u0081\u00d0\u00bb\u00d0\u00be\u00d0\u00b2\u00d0\u00b0 \u00d0\u00bd\u00d0\u00b0 \u00d0\u00ba\u00d0\u00b0\u00d1\u20ac\u00d1\u201a\u00d0\u00b8\u00d0\u00bd\u00d0\u00ba\u00d0\u00b5.",
Check : "\u00d0\u0178\u00d1\u20ac\u00d0\u00be\u00d0\u00b2\u00d0\u00b5\u00d1\u20ac\u00d1\u0152\u00d1\u201a\u00d0\u00b5",
Skip : "\u00d0\u0178\u00d1\u20ac\u00d0\u00be\u00d0\u00bf\u00d1\u0192\u00d1\u0081\u00d0\u00ba\u00d0\u00b0\u00d1\u201a\u00d1\u0152",
Next : "\u00d1\u0081\u00d0\u00bb\u00d0\u00b5\u00d0\u00b4\u00d1\u0192\u00d1\u017d\u00d1\u2030\u00d0\u00b8\u00d0\u00b9",
"Please try again." : "\u00d0\u0178\u00d0\u00be\u00d0\u00b6\u00d0\u00b0\u00d0\u00bb\u00d1\u0192\u00d0\u00b9\u00d1\u0081\u00d1\u201a\u00d0\u00b0, \u00d0\u00bf\u00d0\u00be\u00d0\u00bf\u00d1\u20ac\u00d0\u00be\u00d0\u00b1\u00d1\u0192\u00d0\u00b9\u00d1\u201a\u00d0\u00b5 \u00d0\u00b5\u00d1\u2030\u00d0\u00b5 \u00d1\u20ac\u00d0\u00b0\u00d0\u00b7.",
"Error submitting captcha." : "\u00d0\u017e\u00d1\u02c6\u00d0\u00b8\u00d0\u00b1\u00d0\u00ba\u00d0\u00b0 \u00d0\u00bf\u00d1\u20ac\u00d0\u00b8 \u00d0\u00be\u00d1\u201a\u00d0\u00bf\u00d1\u20ac\u00d0\u00b0\u00d0\u00b2\u00d0\u00ba\u00d0\u00b5 \u00d0\u00ba\u00d0\u00b0\u00d0\u00bf\u00d1\u2021\u00d0\u00b8.",
"Error fetching captcha." : "\u00d0\u017e\u00d1\u02c6\u00d0\u00b8\u00d0\u00b1\u00d0\u00ba\u00d0\u00b0 \u00d0\u00bf\u00d1\u20ac\u00d0\u00b8 \u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d1\u0192\u00d1\u2021\u00d0\u00b5\u00d0\u00bd\u00d0\u00b8\u00d0\u00b8 \u00d0\u00ba\u00d0\u00b0\u00d0\u00bf\u00d1\u2021\u00d0\u00b8.",
"This hCaptcha is for testing only. Please contact the site admin if you see this." : "\u00d0\u00ad\u00d1\u201a\u00d0\u00b0 hCaptcha \u00d1\u201a\u00d0\u00be\u00d0\u00bb\u00d1\u0152\u00d0\u00ba\u00d0\u00be \u00d0\u00b4\u00d0\u00bb\u00d1\u008f \u00d1\u201a\u00d0\u00b5\u00d1\u0081\u00d1\u201a\u00d0\u00b8\u00d1\u20ac\u00d0\u00be\u00d0\u00b2\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d1\u008f. \u00d0\u0178\u00d0\u00be\u00d0\u00b6\u00d0\u00b0\u00d0\u00bb\u00d1\u0192\u00d0\u00b9\u00d1\u0081\u00d1\u201a\u00d0\u00b0, \u00d1\u0081\u00d0\u00b2\u00d1\u008f\u00d0\u00b6\u00d0\u00b8\u00d1\u201a\u00d0\u00b5\u00d1\u0081\u00d1\u0152 \u00d1\u0081 \u00d0\u00b0\u00d0\u00b4\u00d0\u00bc\u00d0\u00b8\u00d0\u00bd\u00d0\u00b8\u00d1\u0081\u00d1\u201a\u00d1\u20ac\u00d0\u00b0\u00d1\u201a\u00d0\u00be\u00d1\u20ac\u00d0\u00be\u00d0\u00bc \u00d1\u0081\u00d0\u00b0\u00d0\u00b9\u00d1\u201a\u00d0\u00b0, \u00d0\u00b5\u00d1\u0081\u00d0\u00bb\u00d0\u00b8 \u00d0\u00b2\u00d1\u2039 \u00d0\u00b2\u00d0\u00b8\u00d0\u00b4\u00d0\u00b8\u00d1\u201a\u00d0\u00b5 \u00d1\u008d\u00d1\u201a\u00d0\u00be.",
"Send Us Feedback" : "\u00d0\u017e\u00d1\u201a\u00d0\u00bf\u00d1\u20ac\u00d0\u00b0\u00d0\u00b2\u00d0\u00b8\u00d1\u201a\u00d1\u0152 \u00d0\u00bd\u00d0\u00b0\u00d0\u00bc \u00d0\u00be\u00d1\u201a\u00d0\u00b7\u00d1\u2039\u00d0\u00b2",
Feedback : "\u00d0\u017e\u00d0\u00b1\u00d1\u20ac\u00d0\u00b0\u00d1\u201a\u00d0\u00bd\u00d0\u00b0\u00d1\u008f \u00d1\u0081\u00d0\u00b2\u00d1\u008f\u00d0\u00b7\u00d1\u0152",
Info : "\u00d0\u02dc\u00d0\u00bd\u00d1\u201e\u00d0\u00be\u00d1\u20ac\u00d0\u00bc\u00d0\u00b0\u00d1\u2020\u00d0\u00b8\u00d1\u008f",
Send : "\u00d0\u00bf\u00d0\u00be\u00d1\u0081\u00d0\u00bb\u00d0\u00b0\u00d1\u201a\u00d1\u0152",
"hCaptcha is a service that reduces bots and spam by asking simple questions. Please follow the instructions at the top of the screen for each challenge. For more info visit" : "hCaptcha - \u00d1\u008d\u00d1\u201a\u00d0\u00be \u00d1\u0081\u00d0\u00b5\u00d1\u20ac\u00d0\u00b2\u00d0\u00b8\u00d1\u0081, \u00d0\u00ba\u00d0\u00be\u00d1\u201a\u00d0\u00be\u00d1\u20ac\u00d1\u2039\u00d0\u00b9 \u00d1\u0192\u00d0\u00bc\u00d0\u00b5\u00d0\u00bd\u00d1\u0152\u00d1\u02c6\u00d0\u00b0\u00d0\u00b5\u00d1\u201a \u00d0\u00b1\u00d0\u00be\u00d1\u201a\u00d0\u00be\u00d0\u00b2 \u00d0\u00b8 \u00d1\u0081\u00d0\u00bf\u00d0\u00b0\u00d0\u00bc, \u00d0\u00b7\u00d0\u00b0\u00d0\u00b4\u00d0\u00b0\u00d0\u00b2\u00d0\u00b0\u00d1\u008f \u00d0\u00bf\u00d1\u20ac\u00d0\u00be\u00d1\u0081\u00d1\u201a\u00d1\u2039\u00d0\u00b5 \u00d0\u00b2\u00d0\u00be\u00d0\u00bf\u00d1\u20ac\u00d0\u00be\u00d1\u0081\u00d1\u2039. \u00d0\u0178\u00d0\u00be\u00d0\u00b6\u00d0\u00b0\u00d0\u00bb\u00d1\u0192\u00d0\u00b9\u00d1\u0081\u00d1\u201a\u00d0\u00b0, \u00d1\u0081\u00d0\u00bb\u00d0\u00b5\u00d0\u00b4\u00d1\u0192\u00d0\u00b9\u00d1\u201a\u00d0\u00b5 \u00d0\u00b8\u00d0\u00bd\u00d1\u0081\u00d1\u201a\u00d1\u20ac\u00d1\u0192\u00d0\u00ba\u00d1\u2020\u00d0\u00b8\u00d1\u008f\u00d0\u00bc \u00d0\u00b2 \u00d0\u00b2\u00d0\u00b5\u00d1\u20ac\u00d1\u2026\u00d0\u00bd\u00d0\u00b5\u00d0\u00b9 \u00d1\u2021\u00d0\u00b0\u00d1\u0081\u00d1\u201a\u00d0\u00b8 \u00d1\u008d\u00d0\u00ba\u00d1\u20ac\u00d0\u00b0\u00d0\u00bd\u00d0\u00b0 \u00d0\u00b4\u00d0\u00bb\u00d1\u008f \u00d0\u00ba\u00d0\u00b0\u00d0\u00b6\u00d0\u00b4\u00d0\u00be\u00d0\u00b3\u00d0\u00be \u00d0\u00b8\u00d1\u0081\u00d0\u00bf\u00d1\u2039\u00d1\u201a\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d1\u008f. \u00d0\u201d\u00d0\u00bb\u00d1\u008f \u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d1\u0192\u00d1\u2021\u00d0\u00b5\u00d0\u00bd\u00d0\u00b8\u00d1\u008f \u00d0\u00b4\u00d0\u00be\u00d0\u00bf\u00d0\u00be\u00d0\u00bb\u00d0\u00bd\u00d0\u00b8\u00d1\u201a\u00d0\u00b5\u00d0\u00bb\u00d1\u0152\u00d0\u00bd\u00d0\u00be\u00d0\u00b9 \u00d0\u00b8\u00d0\u00bd\u00d1\u201e\u00d0\u00be\u00d1\u20ac\u00d0\u00bc\u00d0\u00b0\u00d1\u2020\u00d0\u00b8\u00d0\u00b8 \u00d0\u00bf\u00d0\u00be\u00d1\u0081\u00d0\u00b5\u00d1\u201a\u00d0\u00b8\u00d1\u201a\u00d0\u00b5",
back : "\u00d0\u00bd\u00d0\u00b0\u00d0\u00b7\u00d0\u00b0\u00d0\u00b4",
"Having a problem?" : "\u00d0\u2019\u00d0\u00be\u00d0\u00b7\u00d0\u00bd\u00d0\u00b8\u00d0\u00ba\u00d0\u00bb\u00d0\u00b0 \u00d0\u00bf\u00d1\u20ac\u00d0\u00be\u00d0\u00b1\u00d0\u00bb\u00d0\u00b5\u00d0\u00bc\u00d0\u00b0?",
"Learn about accessibility options." : "\u00d0\u00a3\u00d0\u00b7\u00d0\u00bd\u00d0\u00b0\u00d0\u00b9\u00d1\u201a\u00d0\u00b5 \u00d0\u00be \u00d0\u00b2\u00d0\u00b0\u00d1\u20ac\u00d0\u00b8\u00d0\u00b0\u00d0\u00bd\u00d1\u201a\u00d0\u00b0\u00d1\u2026 \u00d0\u00b4\u00d0\u00be\u00d1\u0081\u00d1\u201a\u00d1\u0192\u00d0\u00bf\u00d0\u00bd\u00d0\u00be\u00d1\u0081\u00d1\u201a\u00d0\u00b8.",
"Give feedback." : "\u00d0\u201d\u00d0\u00b0\u00d1\u201a\u00d1\u0152 \u00d0\u00be\u00d0\u00b1\u00d1\u20ac\u00d0\u00b0\u00d1\u201a\u00d0\u00bd\u00d1\u0192\u00d1\u017d \u00d1\u0081\u00d0\u00b2\u00d1\u008f\u00d0\u00b7\u00d1\u0152.",
"Too Difficult" : "\u00d0\u00a1\u00d0\u00bb\u00d0\u00b8\u00d1\u02c6\u00d0\u00ba\u00d0\u00be\u00d0\u00bc \u00d1\u0081\u00d0\u00bb\u00d0\u00be\u00d0\u00b6\u00d0\u00bd\u00d0\u00be",
Inappropriate : "\u00d0\u00bd\u00d0\u00b5\u00d1\u0081\u00d0\u00be\u00d0\u00be\u00d1\u201a\u00d0\u00b2\u00d0\u00b5\u00d1\u201a\u00d1\u0081\u00d1\u201a\u00d0\u00b2\u00d1\u0192\u00d1\u017d\u00d1\u2030\u00d0\u00b8\u00d0\u00b9",
"Software Bug" : "\u00d0\u0178\u00d1\u20ac\u00d0\u00be\u00d0\u00b3\u00d1\u20ac\u00d0\u00b0\u00d0\u00bc\u00d0\u00bd\u00d0\u00be\u00d0\u00b5 \u00d0\u00be\u00d0\u00b1\u00d0\u00b5\u00d1\u0081\u00d0\u00bf\u00d0\u00b5\u00d1\u2021\u00d0\u00b5\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5",
Other : "\u00d0\u201d\u00d1\u20ac\u00d1\u0192\u00d0\u00b3\u00d0\u00be\u00d0\u00b9",
"Thank you for your feedback. We'll resolve your issue as quickly as we can." : "\u00d0\u00a1\u00d0\u00bf\u00d0\u00b0\u00d1\u0081\u00d0\u00b8\u00d0\u00b1\u00d0\u00be \u00d0\u00b7\u00d0\u00b0 \u00d0\u00b2\u00d0\u00b0\u00d1\u02c6 \u00d0\u00be\u00d1\u201a\u00d0\u00b7\u00d1\u2039\u00d0\u00b2. \u00d0\u0153\u00d1\u2039 \u00d1\u20ac\u00d0\u00b5\u00d1\u02c6\u00d0\u00b8\u00d0\u00bc \u00d0\u00b2\u00d0\u00b0\u00d1\u02c6\u00d1\u0192 \u00d0\u00bf\u00d1\u20ac\u00d0\u00be\u00d0\u00b1\u00d0\u00bb\u00d0\u00b5\u00d0\u00bc\u00d1\u0192 \u00d0\u00ba\u00d0\u00b0\u00d0\u00ba \u00d0\u00bc\u00d0\u00be\u00d0\u00b6\u00d0\u00bd\u00d0\u00be \u00d0\u00b1\u00d1\u2039\u00d1\u0081\u00d1\u201a\u00d1\u20ac\u00d0\u00b5\u00d0\u00b5.",
"Please describe your issue." : "\u00d0\u0178\u00d0\u00be\u00d0\u00b6\u00d0\u00b0\u00d0\u00bb\u00d1\u0192\u00d0\u00b9\u00d1\u0081\u00d1\u201a\u00d0\u00b0, \u00d0\u00be\u00d0\u00bf\u00d0\u00b8\u00d1\u02c6\u00d0\u00b8\u00d1\u201a\u00d0\u00b5 \u00d0\u00b2\u00d0\u00b0\u00d1\u02c6\u00d1\u0192 \u00d0\u00bf\u00d1\u20ac\u00d0\u00be\u00d0\u00b1\u00d0\u00bb\u00d0\u00b5\u00d0\u00bc\u00d1\u0192."
},
sr : {
"I am human" : "Ja sam ljudski",
"Enter the two words in the image." : "\u00d0\u00a3\u00d0\u00bd\u00d0\u00b5\u00d1\u0081\u00d0\u00b8\u00d1\u201a\u00d0\u00b5 \u00d0\u00b4\u00d0\u00b2\u00d0\u00b5 \u00d1\u20ac\u00d0\u00b5\u00d1\u2021\u00d0\u00b8 \u00d1\u0192 \u00d1\u0081\u00d0\u00bb\u00d0\u00b8\u00d0\u00ba\u00d1\u0192."
},
si : {
"I am human" : "\u00e0\u00b6\u00b8\u00e0\u00b6\u00b8 \u00e0\u00b6\u00b8\u00e0\u00b7\u2019\u00e0\u00b6\u00b1\u00e0\u00b7\u2019\u00e0\u00b7\u0192\u00e0\u00b7\u0160\u00e0\u00b7\u0192\u00e0\u00b7\u201d"
},
sk : {
"I am human" : "Ja som \u00c4\u008dlovek",
"Enter the two words in the image." : "Zadajte dve slov\u00c3\u00a1 do obr\u00c3\u00a1zka."
},
sl : {
"I am human" : "Jaz sem \u00c4\u008dlove\u00c5\u00a1ki",
"Enter the two words in the image." : "V sliko vnesite dve besedi."
},
es : {
"I am human" : "Soy humano",
"Enter the two words in the image." : "Ingrese las dos palabras en la imagen."
},
sw : {
"I am human" : "Mimi ni binadamu"
},
sv : {
"I am human" : "Jag \u00c3\u00a4r m\u00c3\u00a4nniska",
"Enter the two words in the image." : "Ange de tv\u00c3\u00a5 orden i bilden."
},
ta : {
"I am human" : "\u00e0\u00ae\u00a8\u00e0\u00ae\u00be\u00e0\u00ae\u00a9\u00e0\u00af\u008d \u00e0\u00ae\u00ae\u00e0\u00ae\u00a9\u00e0\u00ae\u00bf\u00e0\u00ae\u00a4"
},
te : {
"I am human" : "\u00e0\u00b0\u00a8\u00e0\u00b1\u2021\u00e0\u00b0\u00a8\u00e0\u00b1\u0081 \u00e0\u00b0\u00ae\u00e0\u00b0\u00a8\u00e0\u00b0\u00bf\u00e0\u00b0\u00b7\u00e0\u00b0\u00bf\u00e0\u00b0\u00a8\u00e0\u00b0\u00bf"
},
th : {
"I am human" : "\u00e0\u00b8\u0153\u00e0\u00b8\u00a1\u00e0\u00b8\u00a1\u00e0\u00b8\u2122\u00e0\u00b8\u00b8\u00e0\u00b8\u00a9\u00e0\u00b8\u00a2\u00e0\u00b9\u0152",
"Enter the two words in the image." : "\u00e0\u00b8\u203a\u00e0\u00b9\u2030\u00e0\u00b8\u00ad\u00e0\u00b8\u2122\u00e0\u00b8\u201e\u00e0\u00b8\u00b3\u00e0\u00b8\u2014\u00e0\u00b8\u00b1\u00e0\u00b9\u2030\u00e0\u00b8\u2021\u00e0\u00b8\u00aa\u00e0\u00b8\u00ad\u00e0\u00b8\u2021\u00e0\u00b9\u0192\u00e0\u00b8\u2122\u00e0\u00b8 \u00e0\u00b8\u00b2\u00e0\u00b8\u017e"
},
tr : {
"I am human" : "Ben bir insan\u00c4\u00b1m",
"Enter the two words in the image." : "Resimdeki iki kelimeyi giriniz."
},
uk : {
"I am human" : "\u00d0\u00af \u00d0\u00bb\u00d1\u017d\u00d0\u00b4\u00d0\u00b8\u00d0\u00bd\u00d0\u00b8",
"Enter the two words in the image." : "\u00d0\u2019\u00d0\u00b2\u00d0\u00b5\u00d0\u00b4\u00d1\u2013\u00d1\u201a\u00d1\u0152 \u00d0\u00b4\u00d0\u00b2\u00d0\u00b0 \u00d1\u0081\u00d0\u00bb\u00d0\u00be\u00d0\u00b2\u00d0\u00b0 \u00d0\u00bd\u00d0\u00b0 \u00d0\u00b7\u00d0\u00be\u00d0\u00b1\u00d1\u20ac\u00d0\u00b0\u00d0\u00b6\u00d0\u00b5\u00d0\u00bd\u00d0\u00bd\u00d1\u2013."
},
ur : {
"I am human" : "\u00d9\u2026\u00db\u0152\u00da\u00ba \u00d8\u00a7\u00d9\u2020\u00d8\u00b3\u00d8\u00a7\u00d9\u2020 \u00db\u0081\u00d9\u02c6\u00da\u00ba"
},
vi : {
"I am human" : "T\u00c3\u00b4i l\u00c3 con ng\u00c6\u00b0\u00e1\u00bb\u009di",
"Enter the two words in the image." : "Nh\u00e1\u00ba\u00adp hai t\u00e1\u00bb\u00ab trong h\u00c3\u00acnh \u00e1\u00ba\u00a3nh."
},
zu : {
"I am human" : "Ngingumuntu"
}
};
/**
* @param {string} xml
* @return {?}
*/
var parse = function(xml) {
var parsedQR;
var privMapUv;
var value;
var obj = {};
var data = xml ? xml.indexOf("&") >= 0 ? xml.split("&") : [xml] : [];
/** @type {number} */
var i = 0;
for (; i < data.length; i++) {
if (data[i].indexOf("=") >= 0) {
parsedQR = data[i].split("=");
/** @type {string} */
privMapUv = decodeURIComponent(parsedQR[0]);
if (!("false" !== (value = decodeURIComponent(parsedQR[1])) && "true" !== value)) {
/** @type {boolean} */
value = "true" === value;
}
/** @type {(boolean|string)} */
obj[privMapUv] = value;
}
}
return obj;
};
var utils = {
translate : function(v) {
var QUERY = utils.getBestTrans(models);
return QUERY && QUERY[v] || v;
},
getBestTrans : function(obj) {
var prop = utils.getLocale();
return prop in obj ? obj[prop] : utils.getShortLocale(prop) in obj ? obj[utils.getShortLocale(prop)] : "en" in obj ? obj.en : null;
},
getLocale : function() {
/** @type {string} */
var raw = window.location.hash.slice(1);
return parse(raw).hl || window.navigator.userLanguage || window.navigator.language;
},
getShortLocale : function(name) {
return name.substring(0, 2);
}
};
var types = {
touchstart : "ts",
touchend : "te",
touchmove : "tm",
touchcancel : "tc"
};
var Handlers = {
mousedown : "md",
mouseup : "mu",
mousemove : "mm"
};
var keyEvents = {
keydown : "kd",
keyup : "ku"
};
var objectToObserve = {
devicemotion : "dm"
};
/**
* @param {string} type
* @param {!Function} func
* @return {?}
*/
var bind = function(type, func) {
var handler = Handlers[type];
/** @type {null} */
var err = null;
return function(e) {
err = function(rep) {
return [rep.windowX, rep.windowY, Date.now()];
}(e);
func(handler, err);
};
};
/**
* @param {string} name
* @param {!Function} val
* @return {?}
*/
var assert = function(name, val) {
var fn = types[name];
/** @type {null} */
var d = null;
return function(e) {
d = function(event) {
var xhair;
var changedTouches = event.changedTouches;
/** @type {!Array} */
var newNodeLists = [];
/** @type {number} */
var i = 0;
for (; i < changedTouches.length; i++) {
xhair = obj.eventCoords(changedTouches[i]);
newNodeLists.push([changedTouches[i].identifier, xhair.x, xhair.y]);
}
return newNodeLists.push(Date.now()), newNodeLists;
}(e);
val(fn, d);
};
};
/**
* @param {string} type
* @param {!Function} func
* @return {?}
*/
var delegate = function(type, func) {
var encoder = keyEvents[type];
/** @type {null} */
var err = null;
return function(e) {
err = function(a22) {
return [a22.keyNum, Date.now()];
}(e);
func(encoder, err);
};
};
/**
* @param {string} key
* @param {!Function} fn
* @return {?}
*/
var wrap = function(key, fn) {
var n = objectToObserve[key];
/** @type {null} */
var command = null;
/** @type {!Array} */
var name = [];
return function(data) {
if (null !== (command = function(data, m) {
if (data.acceleration === undefined || data.acceleration && data.acceleration.x === undefined) {
data.acceleration = {
x : 0,
y : 0,
z : 0
};
}
if (data.rotationRate === undefined || data.rotationRate && data.rotationRate.alpha === undefined) {
data.rotationRate = {
alpha : 0,
beta : 0,
gamma : 0
};
}
/** @type {!Array} */
var n = [data.acceleration.x, data.acceleration.y, data.acceleration.z, data.rotationRate.alpha, data.rotationRate.beta, data.rotationRate.gamma, Date.now()];
/** @type {!Array} */
var l = [];
if (0 === m.length) {
/** @type {!Array} */
m = n;
/** @type {!Array} */
l = n;
} else {
var tol;
/** @type {number} */
var index = 0;
/** @type {number} */
var key = 0;
for (; key < 6; key++) {
/** @type {number} */
tol = m[key] - n[key];
l.push(n[key]);
/** @type {number} */
index = index + Math.abs(tol);
}
if (l.push(Date.now()), m = n, index <= 0) {
return null;
}
}
return {
motion : l,
prevmotion : m
};
}(data, name))) {
name = command.prevmotion;
command = command.motion;
fn(n, command);
}
};
};
var result = {};
var bindings = {};
/** @type {number} */
var EMPTY_OBJ = 500;
/** @type {number} */
var undefined = 5E3;
/** @type {number} */
var val = Date.now();
/** @type {boolean} */
var ne = false;
/** @type {boolean} */
var ie = false;
/** @type {null} */
var el = null;
/** @type {boolean} */
var width = true;
/** @type {boolean} */
var type = true;
/** @type {boolean} */
var height = false;
/** @type {boolean} */
var p = true;
var me = {
record : function(name, value, string, i) {
width = name === undefined ? width : name;
type = string === undefined ? type : string;
height = value === undefined ? height : value;
p = i === undefined ? p : i;
if (false === ie) {
el = new Element(document.body);
if (width) {
el.addEventListener("mousedown", bind("mousedown", value));
el.addEventListener("mousemove", bind("mousemove", value));
el.addEventListener("mouseup", bind("mouseup", value));
}
if (true === height) {
el.addEventListener("keyup", delegate("keyup", value));
el.addEventListener("keydown", delegate("keydown", value));
}
if (type && true === $.Browser.hasEvent("touchstart", document.body)) {
el.addEventListener("touchstart", assert("touchstart", value));
el.addEventListener("touchmove", assert("touchmove", value));
el.addEventListener("touchend", assert("touchend", value));
}
if (p && true === $.Browser.hasEvent("devicemotion", window)) {
el.addEventListener("devicemotion", wrap("devicemotion", value));
}
/** @type {boolean} */
ie = true;
}
/** @type {number} */
result.st = Date.now();
/** @type {boolean} */
ne = true;
},
stop : function() {
if (false !== ne) {
/** @type {boolean} */
ne = false;
}
},
time : function() {
return val;
},
getData : function() {
return result;
},
setData : function(id, data) {
if (!result[id]) {
/** @type {null} */
result[id] = null;
}
if (Array.isArray(result[id])) {
result[id].push(data);
} else {
result[id] = data;
}
},
resetData : function() {
result = {};
bindings = {};
},
circBuffPush : value
};
new Element(document);
new Element(window);
var mqObj = {
400 : {
en : "Rate limited or network error. Please retry.",
zh : "\u00e9\u20ac\u0178\u00e7\u017d\u2021\u00e9\u2122\u0090\u00e5\u02c6\u00b6\u00e6\u02c6\u2013\u00e7\u00bd\u2018\u00e7\u00bb\u0153\u00e9\u201d\u2122\u00e8\u00af\u00af\u00e3\u20ac\u201a\u00e8\u00af\u00b7\u00e9\u2021\u008d\u00e8\u00af\u2022\u00e3\u20ac\u201a",
ru : "\u00d0\u00a1\u00d0\u00ba\u00d0\u00be\u00d1\u20ac\u00d0\u00be\u00d1\u0081\u00d1\u201a\u00d1\u0152 \u00d0\u00be\u00d0\u00b3\u00d1\u20ac\u00d0\u00b0\u00d0\u00bd\u00d0\u00b8\u00d1\u2021\u00d0\u00b5\u00d0\u00bd\u00d0\u00b0 \u00d0\u00b8\u00d0\u00bb\u00d0\u00b8 \u00d0\u00be\u00d1\u02c6\u00d0\u00b8\u00d0\u00b1\u00d0\u00ba\u00d0\u00b0 \u00d1\u0081\u00d0\u00b5\u00d1\u201a\u00d0\u00b8. \u00d0\u0178\u00d0\u00be\u00d0\u00b6\u00d0\u00b0\u00d0\u00bb\u00d1\u0192\u00d0\u00b9\u00d1\u0081\u00d1\u201a\u00d0\u00b0, \u00d0\u00bf\u00d0\u00be\u00d0\u00b2\u00d1\u201a\u00d0\u00be\u00d1\u20ac\u00d0\u00b8\u00d1\u201a\u00d0\u00b5.",
id : "Nilai terbatas atau kesalahan jaringan. Coba lagi",
ar : "\u00d9\u2026\u00d8\u00b9\u00d8\u00af\u00d9\u201e \u00d9\u2026\u00d8\u00ad\u00d8\u00af\u00d9\u02c6\u00d8\u00af \u00d8\u00a3\u00d9\u02c6 \u00d8\u00ae\u00d8\u00b7\u00d8\u00a3 \u00d9\u0081\u00d9\u0160 \u00d8\u00a7\u00d9\u201e\u00d8\u00b4\u00d8\u00a8\u00d9\u0192\u00d8\u00a9. \u00d8\u00a7\u00d9\u201e\u00d8\u00b1\u00d8\u00ac\u00d8\u00a7\u00d8\u00a1 \u00d8\u00a7\u00d8\u00b9\u00d8\u00a7\u00d8\u00af\u00d8\u00a9 \u00d8\u00a7\u00d9\u201e\u00d9\u2026\u00d8\u00ad\u00d8\u00a7\u00d9\u02c6\u00d9\u201e\u00d8\u00a9.",
de : "Rate begrenzt oder Netzwerkfehler. Bitte erneut versuchen."
},
429 : {
en : "Your computer or network has sent too many requests.",
zh : "\u00e6\u201a\u00a8\u00e7\u0161\u201e\u00e8\u00ae\u00a1\u00e7\u00ae\u2014\u00e6\u0153\u00ba\u00e6\u02c6\u2013\u00e7\u00bd\u2018\u00e7\u00bb\u0153\u00e5\u008f\u2018\u00e9\u20ac\u0081\u00e4\u00ba\u2020\u00e5\u00a4\u00aa\u00e5\u00a4\u0161\u00e8\u00af\u00b7\u00e6\u00b1\u201a\u00e3\u20ac\u201a",
ru : "\u00d0\u2019\u00d0\u00b0\u00d1\u02c6 \u00d0\u00ba\u00d0\u00be\u00d0\u00bc\u00d0\u00bf\u00d1\u0152\u00d1\u017d\u00d1\u201a\u00d0\u00b5\u00d1\u20ac \u00d0\u00b8\u00d0\u00bb\u00d0\u00b8 \u00d1\u0081\u00d0\u00b5\u00d1\u201a\u00d1\u0152 \u00d0\u00be\u00d1\u201a\u00d0\u00bf\u00d1\u20ac\u00d0\u00b0\u00d0\u00b2\u00d0\u00b8\u00d0\u00bb\u00d0\u00b8 \u00d1\u0081\u00d0\u00bb\u00d0\u00b8\u00d1\u02c6\u00d0\u00ba\u00d0\u00be\u00d0\u00bc \u00d0\u00bc\u00d0\u00bd\u00d0\u00be\u00d0\u00b3\u00d0\u00be \u00d0\u00b7\u00d0\u00b0\u00d0\u00bf\u00d1\u20ac\u00d0\u00be\u00d1\u0081\u00d0\u00be\u00d0\u00b2.",
id : "Komputer atau jaringan Anda telah mengirim terlalu banyak permintaan.",
ar : "\u00d8\u00a3\u00d8\u00b1\u00d8\u00b3\u00d9\u201e \u00d8\u00a7\u00d9\u201e\u00d9\u0192\u00d9\u2026\u00d8\u00a8\u00d9\u0160\u00d9\u02c6\u00d8\u00aa\u00d8\u00b1 \u00d8\u00a3\u00d9\u02c6 \u00d8\u00a7\u00d9\u201e\u00d8\u00b4\u00d8\u00a8\u00d9\u0192\u00d8\u00a9 \u00d8\u00a7\u00d9\u201e\u00d9\u0192\u00d8\u00ab\u00d9\u0160\u00d8\u00b1 \u00d9\u2026\u00d9\u2020 \u00d8\u00a7\u00d9\u201e\u00d8\u00b7\u00d9\u201e\u00d8\u00a8\u00d8\u00a7\u00d8\u00aa.",
de : "Ihr Computer oder Netzwerk hat zu viele Anfragen gesendet."
},
500 : {
en : "Cannot contact hCaptcha. Check your connection and try again.",
zh : "\u00e6\u2014 \u00e6\u00b3\u2022\u00e8\u0081\u201d\u00e7\u00b3\u00bbhCaptcha\u00e3\u20ac\u201a\u00e8\u00af\u00b7\u00e6\u00a3\u20ac\u00e6\u0178\u00a5\u00e6\u201a\u00a8\u00e7\u0161\u201e\u00e7\u00bd\u2018\u00e7\u00bb\u0153\u00e5\u0090\u017d\u00e5\u2020\u008d\u00e8\u00af\u2022\u00e4\u00b8\u20ac\u00e6\u00ac\u00a1\u00e3\u20ac\u201a",
ru : "\u00d0\u009d\u00d0\u00b5\u00d0\u00b2\u00d0\u00be\u00d0\u00b7\u00d0\u00bc\u00d0\u00be\u00d0\u00b6\u00d0\u00bd\u00d0\u00be \u00d1\u0081\u00d0\u00b2\u00d1\u008f\u00d0\u00b7\u00d0\u00b0\u00d1\u201a\u00d1\u0152\u00d1\u0081\u00d1\u008f \u00d1\u0081 hCaptcha. \u00d0\u0178\u00d1\u20ac\u00d0\u00be\u00d0\u00b2\u00d0\u00b5\u00d1\u20ac\u00d1\u0152\u00d1\u201a\u00d0\u00b5 \u00d1\u0081\u00d0\u00be\u00d0\u00b5\u00d0\u00b4\u00d0\u00b8\u00d0\u00bd\u00d0\u00b5\u00d0\u00bd\u00d0\u00b8\u00d0\u00b5 \u00d0\u00b8 \u00d0\u00bf\u00d0\u00be\u00d0\u00bf\u00d1\u20ac\u00d0\u00be\u00d0\u00b1\u00d1\u0192\u00d0\u00b9\u00d1\u201a\u00d0\u00b5 \u00d1\u0081\u00d0\u00bd\u00d0\u00be\u00d0\u00b2\u00d0\u00b0.",
id : "Tidak dapat menghubungi hCaptcha. Periksa koneksi Anda dan coba lagi.",
ar : "\u00d9\u201e\u00d8\u00a7 \u00d9\u0160\u00d9\u2026\u00d9\u0192\u00d9\u2020 \u00d8\u00a7\u00d9\u201e\u00d8\u00a7\u00d8\u00aa\u00d8\u00b5\u00d8\u00a7\u00d9\u201e hCaptcha. \u00d8\u00aa\u00d8\u00ad\u00d9\u201a\u00d9\u201a \u00d9\u2026\u00d9\u2020 \u00d8\u00a7\u00d8\u00aa\u00d8\u00b5\u00d8\u00a7\u00d9\u201e\u00d9\u0192 \u00d9\u02c6\u00d8\u00ad\u00d8\u00a7\u00d9\u02c6\u00d9\u201e \u00d9\u2026\u00d8\u00b1\u00d8\u00a9 \u00d8\u00a3\u00d8\u00ae\u00d8\u00b1\u00d9\u2030.",
de : "HCaptcha kann nicht kontaktiert werden. \u00c3\u0153berpr\u00c3\u00bcfen Sie Ihre Verbindung und versuchen Sie es erneut."
}
};
var editorContext = {
getText : function(key) {
try {
return utils.getBestTrans(mqObj[key]);
} catch (t) {
return false;
}
}
};
var req = {
request : function(address, url, verb) {
return new request(address, url, verb);
},
get : function(url, verb) {
if ("object" == typeof url && verb === undefined && (url = (verb = url).url), null === url) {
throw new Error("Url missing");
}
return new request("GET", url, verb);
},
post : function(url, path) {
if ("object" == typeof url && path === undefined && (url = (path = url).url), null === url) {
throw new Error("Url missing");
}
return new request("POST", url, path);
}
};
/**
* @param {string} msg
* @param {?} item
* @return {?}
*/
Message.prototype.contact = function(msg, item) {
var data = this;
/** @type {string} */
var recording = Date.now().toString(36);
var options = {
source : "hcaptcha",
label : msg,
id : this.id,
promise : "create",
lookup : recording
};
if (item) {
if ("object" != typeof item) {
throw new Error("Message must be an object.");
}
options.contents = item;
}
return new Promise(function(n, reject) {
data.waiting.push({
label : msg,
reject : reject,
resolve : n,
lookup : recording
});
cb(data.target, options, data.isIframe);
});
};
/**
* @param {string} text
* @param {!Function} type
* @return {undefined}
*/
Message.prototype.listen = function(text, type) {
var i = this.messages.length;
/** @type {boolean} */
var m = false;
for (; --i > -1 && false === m;) {
if (this.messages[i].label === text) {
m = this.messages[i];
}
}
if (false === m) {
m = {
label : text,
listeners : []
};
this.messages.push(m);
}
m.listeners.push(type);
};
/**
* @param {string} text
* @param {?} ch
* @return {undefined}
*/
Message.prototype.answer = function(text, ch) {
var i = this.incoming.length;
/** @type {boolean} */
var info = false;
for (; --i > -1 && false === info;) {
if (this.incoming[i].label === text) {
info = this.incoming[i];
}
}
if (false === info) {
info = {
label : text,
listeners : []
};
this.incoming.push(info);
}
info.listeners.push(ch);
};
/**
* @param {string} email
* @param {?} body
* @return {undefined}
*/
Message.prototype.send = function(email, body) {
var root = {
source : "hcaptcha",
label : email,
id : this.id
};
if (body) {
if ("object" != typeof body) {
throw new Error("Message must be an object.");
}
root.contents = body;
}
cb(this.target, root, this.isIframe);
};
/**
* @param {?} name
* @param {string} service
* @return {?}
*/
Message.prototype.check = function(name, service) {
/** @type {!Array<?>} */
var result = [].concat.apply([], [this.messages, this.incoming, this.waiting]);
/** @type {!Array} */
var results = [];
/** @type {number} */
var i = -1;
for (; ++i < result.length;) {
if (result[i].label === name) {
if (service && result[i].lookup && service !== result[i].lookup) {
continue;
}
results.push(result[i]);
}
}
return results;
};
/**
* @param {!Object} options
* @return {undefined}
*/
Message.prototype.respond = function(options) {
var item;
var m;
/** @type {number} */
var i = -1;
/** @type {number} */
var j = 0;
/** @type {!Array<?>} */
var result = [].concat.apply([], [this.messages, this.incoming, this.waiting]);
for (; ++i < result.length;) {
if (result[i].label === options.label) {
if (options.lookup && result[i].lookup && options.lookup !== result[i].lookup) {
continue;
}
/** @type {!Array} */
var p = [];
if (item = result[i], options.error && p.push(options.error), options.contents && p.push(options.contents), options.promise && "create" !== options.promise) {
item[options.promise].apply(item[options.promise], p);
var i = this.waiting.length;
/** @type {boolean} */
var c = false;
for (; --i > -1 && false === c;) {
if (this.waiting[i].label === item.label && this.waiting[i].lookup === item.lookup) {
/** @type {boolean} */
c = true;
this.waiting.splice(i, 1);
}
}
continue;
}
/** @type {number} */
j = 0;
for (; j < item.listeners.length; j++) {
if (m = item.listeners[j], "create" === options.promise) {
var falseySection = run.call(this, item.label, options.lookup);
p.push(falseySection);
}
m.apply(m, p);
}
}
}
/** @type {null} */
result = null;
};
/**
* @return {?}
*/
Message.prototype.destroy = function() {
return this.messages = null, this.incoming = null, this.waiting = null, null;
};
var self = {
chats : [],
isSupported : function() {
return !!window.postMessage;
},
createChat : function(data, type) {
var err = new Message(data, type);
return self.chats.push(err), err;
},
removeChat : function(candidate) {
/** @type {boolean} */
var subwiki = false;
/** @type {number} */
var i = self.chats.length;
for (; --i > -1 && false === subwiki;) {
if (candidate.id === self.chats[i].id && candidate.target === self.chats[i].target) {
subwiki = self.chats[i];
self.chats.splice(i, 1);
}
}
return subwiki;
},
handle : function(event) {
if (null !== event.data && "string" == typeof event.data) {
try {
/** @type {string} */
var data = event.data;
if (!("string" == typeof data && data.indexOf("hcaptcha") >= 0)) {
return;
}
/** @type {*} */
data = JSON.parse(data);
var _levelClass;
/** @type {!Array} */
var _levelClasses = self.chats;
/** @type {number} */
var _levelClassNo = -1;
for (; ++_levelClassNo < _levelClasses.length;) {
if ((_levelClass = _levelClasses[_levelClassNo]).id === data.id) {
_levelClass.respond(data);
}
}
} catch (Console_error) {
log("postMessage handler error", "postMessage", "debug", {
event : event,
error : Console_error
});
}
}
}
};
if (window.addEventListener) {
window.addEventListener("message", self.handle);
} else {
window.attachEvent("onmessage", self.handle);
}
/** @type {null} */
var element = null;
/** @type {null} */
var elem = null;
/** @type {null} */
var tile = null;
/** @type {null} */
var caption = null;
/** @type {null} */
var $e = null;
/** @type {null} */
var overlay = null;
/** @type {null} */
var res = null;
/** @type {boolean} */
var ghRepos = false;
/** @type {null} */
var customFieldId = null;
/** @type {boolean} */
var Le = false;
/** @type {string} */
var url = "https://www.hcaptcha.com/what-is-hcaptcha-about";
/** @type {number} */
var a = 3;
/** @type {number} */
var tg = 0;
/** @type {null} */
var timeout = null;
/** @type {number} */
var waitAfter = 5E3;
load(function() {
!function() {
/** @type {string} */
var settings = window.location.hash.slice(1);
var options = parse(settings);
customFieldId = options.id;
config.host = options.host;
config.sitekey = options.sitekey;
/** @type {string} */
config.file = "checkbox_internal";
data.size = options.size || data.compact;
data.theme = options.theme || data.theme;
if (options.endpoint !== undefined && "undefined" !== options.endpoint) {
data.endpoint = options.endpoint;
}
if (options.hl !== undefined && "undefined" !== options.hl) {
data.language = options.hl;
}
if (options.sentry !== undefined && "undefined" !== options.sentry) {
defer = options.sentry;
success = defer;
}
var defer;
element = new Element(document.getElementById("checkbox"));
elem = new Element(document.getElementById("anchor"));
tile = new Element(document.getElementById("checkbox-label"));
caption = new Element(document.getElementById("config-error"));
overlay = new Element(document.getElementById("logo"));
$e = new Element(document.getElementById("config-warning"));
elem.addClass("anchor");
elem.addClass("compact" === data.size ? "compact" : " normal");
elem.addClass("dark" === data.theme ? "dark" : " light");
tile.text(utils.translate("I am human"));
me.resetData();
me.record(true, true, true, true);
if (expectedProperties.UUIDv4(config.sitekey) || config.sitekey === delColumn || config.sitekey === cssChildWidth) {
if (config.sitekey === cssChildWidth) {
$e.text(utils.translate("This hCaptcha is for testing only. Please contact the site admin if you see this."));
/** @type {string} */
Le = "sitekey-dummykey";
}
} else {
$e.text(utils.translate("The sitekey for this hCaptcha is incorrect. Please contact the site admin if you see this."));
/** @type {string} */
Le = "sitekey-invalid";
}
}();
(res = self.createChat(window.parent, customFieldId)).listen("checkbox-tick", toggle);
res.listen("checkbox-reset", render);
res.listen("checkbox-click", test);
res.listen("checkbox-location", function(extensionResolver) {
extensionResolver.resolve(getAbsoluteBoundingClientRect());
});
res.listen("checkbox-status", function(actionConfig) {
callback(actionConfig.text);
});
elem.addEventListener(true === config.pingdom ? "click" : "up", test);
elem.addEventListener("keypress", function(event) {
if (!(13 != event.keyCode && 32 != event.keyCode)) {
test(event);
}
});
overlay.addEventListener("click", clickHandler);
overlay.addEventListener("keypress", function(event) {
if (13 == event.keyCode) {
clickHandler();
}
});
if (true === success) {
if (window.Raven) {
Raven.config("https://0f73e9316e6b4aee9e62a74c820604e0@sentry.io/1198795", {
autoBreadcrumbs : {
xhr : true,
dom : true,
sentry : true
},
tags : {
"site-host" : config.host,
"site-key" : config.sitekey,
"endpoint-url" : data.endpoint,
"asset-url" : config.assetUrl
}
}).install();
}
if (window.Raven) {
Raven.setUserContext({
"Browser-Agent" : $.Browser.agent,
"Browser-Type" : $.Browser.type,
"Browser-Version" : $.Browser.version,
"System-OS" : $.System.os,
"System-Version" : $.System.version,
"Is-Mobile" : $.System.mobile
});
}
log("checkbox_internal", "setup", "info");
}
check();
res.send("checkbox-loaded", getAbsoluteBoundingClientRect());
});
}();
/* https://hcaptcha.com/license */
!function(){"use strict";function e(e){var t=this.constructor;return this.then(function(n){return t.resolve(e()).then(function(){return n})},function(n){return t.resolve(e()).then(function(){return t.reject(n)})})}var t=setTimeout;function n(){}function i(e){if(!(this instanceof i))throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=undefined,this._deferreds=[],u(e,this)}function o(e,t){for(;3===e._state;)e=e._value;0!==e._state?(e._handled=!0,i._immediateFn(function(){var n=1===e._state?t.onFulfilled:t.onRejected;if(null!==n){var i;try{i=n(e._value)}catch(o){return void r(t.promise,o)}a(t.promise,i)}else(1===e._state?a:r)(t.promise,e._value)})):e._deferreds.push(t)}function a(e,t){try{if(t===e)throw new TypeError("A promise cannot be resolved with itself.");if(t&&("object"==typeof t||"function"==typeof t)){var n=t.then;if(t instanceof i)return e._state=3,e._value=t,void s(e);if("function"==typeof n)return void u((o=n,a=t,function(){o.apply(a,arguments)}),e)}e._state=1,e._value=t,s(e)}catch(c){r(e,c)}var o,a}function r(e,t){e._state=2,e._value=t,s(e)}function s(e){2===e._state&&0===e._deferreds.length&&i._immediateFn(function(){e._handled||i._unhandledRejectionFn(e._value)});for(var t=0,n=e._deferreds.length;t<n;t++)o(e,e._deferreds[t]);e._deferreds=null}function c(e,t,n){this.onFulfilled="function"==typeof e?e:null,this.onRejected="function"==typeof t?t:null,this.promise=n}function u(e,t){var n=!1;try{e(function(e){n||(n=!0,a(t,e))},function(e){n||(n=!0,r(t,e))})}catch(i){if(n)return;n=!0,r(t,i)}}i.prototype["catch"]=function(e){return this.then(null,e)},i.prototype.then=function(e,t){var i=new this.constructor(n);return o(this,new c(e,t,i)),i},i.prototype["finally"]=e,i.all=function(e){return new i(function(t,n){if(!e||"undefined"==typeof e.length)throw new TypeError("Promise.all accepts an array");var i=Array.prototype.slice.call(e);if(0===i.length)return t([]);var o=i.length;function a(e,r){try{if(r&&("object"==typeof r||"function"==typeof r)){var s=r.then;if("function"==typeof s)return void s.call(r,function(t){a(e,t)},n)}i[e]=r,0==--o&&t(i)}catch(c){n(c)}}for(var r=0;r<i.length;r++)a(r,i[r])})},i.resolve=function(e){return e&&"object"==typeof e&&e.constructor===i?e:new i(function(t){t(e)})},i.reject=function(e){return new i(function(t,n){n(e)})},i.race=function(e){return new i(function(t,n){for(var i=0,o=e.length;i<o;i++)e[i].then(t,n)})},i._immediateFn="function"==typeof setImmediate&&function(e){setImmediate(e)}||function(e){t(e,0)},i._unhandledRejectionFn=function(e){"undefined"!=typeof console&&console&&console.warn("Possible Unhandled Promise Rejection:",e)};var l,h=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("unable to locate global object")}();"Promise"in h?h.Promise.prototype["finally"]||(h.Promise.prototype["finally"]=e):h.Promise=i,Array.prototype.indexOf||(Array.prototype.indexOf=function(e){return function(t,n){if(null===this||this===undefined)throw TypeError("Array.prototype.indexOf called on null or undefined");var i=e(this),o=i.length>>>0,a=Math.min(0|n,o);if(a<0)a=Math.max(0,o+a);else if(a>=o)return-1;if(void 0===t){for(;a!==o;++a)if(void 0===i[a]&&a in i)return a}else if(t!=t){for(;a!==o;++a)if(i[a]!=i[a])return a}else for(;a!==o;++a)if(i[a]===t)return a;return-1}}(Object)),Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),document.getElementsByClassName||(window.Element.prototype.getElementsByClassName=document.constructor.prototype.getElementsByClassName=function(e){if(document.querySelectorAll)return document.querySelectorAll("."+e);for(var t=document.getElementsByTagName("*"),n=new RegExp("(^|\\s)"+e+"(\\s|$)"),i=[],o=0;o<t.length;o++)n.test(t[o].className)&&i.push(t[o]);return i}),String.prototype.startsWith||(String.prototype.startsWith=function(e,t){return this.substr(!t||t<0?0:+t,e.length)===e}),String.prototype.endsWith||(String.prototype.endsWith=function(e,t){return(t===undefined||t>this.length)&&(t=this.length),this.substring(t-e.length,t)===e});try{if(Object.defineProperty&&Object.getOwnPropertyDescriptor&&Object.getOwnPropertyDescriptor(Element.prototype,"textContent")&&!Object.getOwnPropertyDescriptor(Element.prototype,"textContent").get){var d=Object.getOwnPropertyDescriptor(Element.prototype,"innerText");Object.defineProperty(Element.prototype,"textContent",{get:function(){return d.get.call(this)},set:function(e){return d.set.call(this,e)}})}}catch(He){}Function.prototype.bind||(Function.prototype.bind=function(e){if("function"!=typeof this)throw new TypeError("Function.prototype.bind: Item Can Not Be Bound.");var t=Array.prototype.slice.call(arguments,1),n=this,i=function(){},o=function(){return n.apply(this instanceof i?this:e,t.concat(Array.prototype.slice.call(arguments)))};return this.prototype&&(i.prototype=this.prototype),o.prototype=new i,o}),"function"!=typeof Object.create&&(Object.create=function(e,t){function n(){}if(n.prototype=e,"object"==typeof t)for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i]);return new n}),Date.now||(Date.now=function(){return(new Date).getTime()}),window.console||(window.console={});for(var m=["error","info","log","show","table","trace","warn"],f=function(e){},p=m.length;--p>-1;)l=m[p],window.console[l]||(window.console[l]=f);var g=[],v=!1,w=!1;function y(e){var t=Array.prototype.slice.call(arguments,1);!0!==w&&"interactive"!==document.readyState&&"loaded"!==document.readyState&&"complete"!==document.readyState?(g.push({fn:e,args:t}),!1===v&&function(){document.addEventListener?(document.addEventListener("DOMContentLoaded",k),window.addEventListener("load",k)):(document.attachEvent("onreadystatechange",b),window.attachEvent("onload",k));v=!0}()):setTimeout(function(){e(t)},1)}function b(){"interactive"!==document.readyState&&"loaded"!==document.readyState&&"complete"!==document.readyState||k()}function k(){if(!1===w){for(var e=0;e<g.length;e++)g[e].fn.apply(null,g[e].args);g=[]}w=!0,document.removeEventListener?(document.removeEventListener("DOMContentLoaded",k),window.removeEventListener("load",k)):(document.detachEvent("onreadystatechange",b),window.detachEvent("onload",k))}function E(){var e=this,t=0,n=0,i=0,o=0;function a(){t=window.innerWidth||window.document.documentElement.clientWidth||document.body.clientWidth,n=window.innerHeight||window.document.documentElement.clientHeight||document.body.clientHeight}function r(){i=window.pageXOffset!==undefined?window.pageXOffset:e.isCSS1?document.documentElement.scrollLeft:document.body.scrollLeft,o=window.pageYOffset!==undefined?window.pageYOffset:e.isCSS1?document.documentElement.scrollTop:document.body.scrollTop}y(function(){a(),r(),window.addEventListener("resize",a),window.addEventListener("scroll",r)}),this.agent=navigator.userAgent.toLowerCase(),this.language=window.navigator.userLanguage||window.navigator.language,this.isCSS1="CSS1Compat"===(document.compatMode||""),this.width=function(){return t},this.height=function(){return n},this.scrollX=function(){return i},this.scrollY=function(){return o},this.type=e.detect(["edge"])?"edge":e.detect(["msie"])?"ie":e.detect(["trident","rv:"])?"ie":e.detect(["chrome","crios"],!0)?"chrome":e.detect(["safari"])?"safari":e.detect(["firefox"])?"firefox":"unknown",this.version=function(){try{if("edge"===e.type)return Number(e.agent.split("edge/")[1].split(".")[0]);if("ie"===e.type){if(e.agent.indexOf("msie")>=0)return Number(e.agent.split("msie ")[1].split(".")[0]);if(e.agent.indexOf("rv:")>=0)return Number(e.agent.split("rv:")[1].split(".")[0])}if("firefox"===e.type)return Number(e.agent.split("firefox/")[1].split(".")[0]);if("safari"===e.type)return Number(e.agent.split("version/")[1].split(".")[0].split(".")[0]);if("chrome"===e.type)return e.detect(["crios"])?Number(e.agent.split("crios/")[1].split(".")[0]):Number(e.agent.split("chrome/")[1].split(".")[0])}catch(t){return-1}}(),this.hasPostMessage=!!window.postMessage}E.prototype.detect=function(e,t){for(var n,i=!1,o=0,a=0;a<e.length;a++)n=e[a],this.agent.indexOf(n.toLowerCase())>=0&&(o+=1);return(o===e.length||t&&o>0)&&(i=!0),i},E.prototype.hasEvent=function(e,t){return"on"+e in(t||document.createElement("div"))},E.prototype.getScreenDimensions=function(){var e={};for(var t in window.screen)e[t]=window.screen[t];return delete e.orientation,e},E.prototype.interrogateNavigator=function(){var e={};for(var t in window.navigator)e[t]=window.navigator[t];if(delete e.plugins,delete e.mimeTypes,e.plugins=[],window.navigator.plugins)for(var n=0;n<window.navigator.plugins.length;n++)e.plugins[n]=window.navigator.plugins[n].filename;return e};var C=new E,_=new function(e){var t,n=this;this.mobile=!(!("ontouchstart"in window||"onpointerdown"in window)||!e.detect(["ios","iphone","ipad","windows phone","android","blackberry"],!0))&&{},this.dpr=function(){return window.devicePixelRatio||1},this.mobile&&e.agent.indexOf("windows")>=0&&e.agent.indexOf("touch")<0&&(this.mobile=!1),this.os=e.detect(["ipad","iphone"],!0)?"ios":e.detect(["android","kindle"],!0)?"android":e.detect(["mac os"])?"mac":e.detect(["windows","iemobile"],!0)?"windows":e.detect(["ubuntu","linux"],!1)?"ubuntu":"unknown",this.version=(t=navigator.appVersion.split(/\s*[;)(]\s*/),navigator.oscpu!==undefined&&"firefox"===e.type&&(t=navigator.oscpu.split(" ")).length>0?t[t.length-1].replace(";",""):"ios"===n.os?t[2].split(" ")[3].replace(/_/g,"."):"mac"===n.os?t[2].split(" ")[4].replace(/_/g,"."):"windows"===n.os?"ie"===e.type&&e.version<=10?t[3].split(" ")[2]:"safari"===e.type&&e.version<=5&&t[1].split(" ")[2]===undefined?t[3].split(" ")[2]:t[1].split(" ")[2]:"android"===n.os?t[0]:"ubuntu"===n.os?t[3].replace(/_/g,"."):"unknown")}(C),I={Browser:C,System:_},S={host:null,file:null,sitekey:null,pingdom:"safari"===I.Browser.type&&"windows"!==I.System.os&&"mac"!==I.System.os&&"ios"!==I.System.os&&"android"!==I.System.os,assetUrl:"https://assets.hcaptcha.com/captcha/v1/34323f3/static"},j={language:null,accountsEndpoint:"https://accounts.hcaptcha.com",endpoint:"https://hcaptcha.com",size:"normal",theme:"light"},x="10000000-ffff-ffff-ffff-000000000001",T="00000000-0000-0000-0000-000000000000";function P(){var e=this;this._bottom=0,this._top=0,this.storage={},this.add=function(t){return e.storage[e._top]=t,e._top++,t},this.remove=function(){if(!e.empty()){var t=e._bottom,n=e.storage[t];return e.storage[t]=null,e._bottom++,n}},this.empty=function(){return e._top===e._bottom},this.size=function(){return e._top-e._bottom}}var L={queue:P,depth:function Je(e,t,n){if("object"==typeof e&&e[t]&&e[t].length>0)for(var i=e[t].length;--i>-1;)Je(e[t][i],t,n);e!==undefined&&n(e)},breathe:function(e,t,n){var i=new P,o=null;for(i.add(e),o=i.remove();o;){for(var a=0;a<o[t].length;a++)i.add(o[t][a]);n(o),o=i.remove()}}},A=!0;function z(e){var t,n,i,o={message:e.name+": "+e.message};e.stack&&(o.stack_trace={trace:e.stack}),B("report error","internal","debug",o),t="internal error",n="error",i=S.file,A&&window.Raven&&Raven.captureMessage(t,{level:n,logger:i})}function B(e,t,n,i){A&&window.Raven&&Raven.captureBreadcrumb({message:e,category:t,level:n,data:i})}var O={UUID:function(e){return/^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i.test(e)||!1},UUIDv4:function(e){return/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(e)||!1}},D={eventName:function(e){var t=e;return"down"!==e&&"up"!==e&&"move"!==e&&"over"!==e&&"out"!==e||(t=!I.System.mobile||"down"!==e&&"up"!==e&&"move"!==e?"mouse"+e:"down"===e?"touchstart":"up"===e?"touchend":"touchmove"),t},actionName:function(e){var t=e;return"touchstart"===t||"mousedown"===t?t="down":"touchmove"===t||"mousemove"===t?t="move":"touchend"===t||"mouseup"===t?t="up":"mouseover"===t?t="over":"mouseout"===t&&(t="out"),t},eventCallback:function(e,t,n){var i=D.actionName(e);return function(e){if(e=e||window.event,"down"===i||"move"===i||"up"===i||"over"===i||"out"===i||"click"===i){var o=D.eventCoords(e),a=n.getBoundingClientRect();e.windowX=o.x,e.windowY=o.y,e.elementX=e.windowX-(a.x||a.left),e.elementY=e.windowY-(a.y||a.top)}e.keyNum=e.which||e.keyCode||0,e.action=i,e.targetElement=n,t(e)}},eventCoords:function(e){var t={x:0,y:0};if(e.windowsPointer)return e;if(!e)return t;if(e.touches||e.changedTouches){var n=(e.touches&&e.touches.length>=1?e.touches:e.changedTouches)[0];t.x=n.pageX||n.clientX,t.y=n.pageY||n.clientY}else t.x=e.pageX||e.clientX,t.y=e.pageY||e.clientY;return t}};function F(e,t,n){if(this.dom=null,this._clss=[],this._nodes=[],this._listeners=[],this._frag=null,"object"==typeof e){this.dom=e;var i=[],o=[];e.className&&(o=e.className.split(" "));for(var a=0;a<o.length;a++)""!==o[a]&&" "!==o[a]&&i.push(o[a]);this._clss=i}else n!==undefined&&null!==n||(n=!0),(e===undefined||"string"==typeof e&&(e.indexOf("#")>=0||e.indexOf(".")>=0))&&(e&&(t=e),e="div"),this.dom=document.createElement(e),t&&(t.indexOf("#")>=0?this.dom.id=t.split("#")[1]:(t.indexOf(".")>=0&&(t=t.split(".")[1]),this.addClass.call(this,t)));!0===n&&(this._frag=document.createDocumentFragment(),this._frag.appendChild(this.dom))}F.prototype.createElement=function(e,t){var n=new F(e,t,!1);return this.appendElement.call(this,n),this._nodes.push(n),n},F.prototype.appendElement=function(e){return e===undefined?z({name:"DomElement Add Child",message:"Child Element is undefined"}):(e._frag!==undefined&&null!==e._frag?this.dom.appendChild(e._frag):e.dom!==undefined?this.dom.appendChild(e.dom):this.dom.appendChild(e),e._parent=this,this)},F.prototype.removeElement=function(e){var t=e;if(e.dom){t=t.dom;for(var n=e._nodes.length;--n>-1;)e.dom.removeChild(e._nodes[n].dom||e._nodes[n]),e._nodes.splice(n,1)}else for(var i=this._nodes.length;--i>-1;)this._nodes[i]===t&&this._nodes.splice(i,1);this.dom.removeChild(t)},F.prototype.addClass=function(e){return!1===this.hasClass.call(this,e)&&(this._clss.push(e),this.dom.className=this._clss.join(" ")),this},F.prototype.hasClass=function(e){for(var t=!1,n=0;n<this._clss.length;n++)this._clss[n]===e&&(t=!0);return t},F.prototype.removeClass=function(e){for(var t=this._clss.length;--t>-1;)this._clss[t]===e&&this._clss.splice(t,1);return this.dom.className=this._clss.join(" "),this},F.prototype.text=function(e){if(this&&this.dom&&void 0!==e){for(var t,n,i,o,a=/&(.*?);/g,r=/<[a-z][\s\S]*>/i;null!==(t=a.exec(e));){!1===r.test(t[0])?(i=t[0],o=void 0,(o=document.createElement("div")).innerHTML=i,n=o.textContent,e=e.replace(new RegExp(t[0],"g"),n)):e=e.replace(t[0],"")}return this.dom.textContent=e,this}},F.prototype.css=function(e){var t;for(var n in e){t=e[n];try{"opacity"!==n&&"zIndex"!==n&&"fontWeight"!==n&&isFinite(t)&&parseFloat(t)===t&&(t+="px"),"ie"===I.Browser.type&&8===I.Browser.version&&"opacity"===n?this.dom.style.filter="alpha(opacity="+100*t+")":this.dom.style[n]=t}catch(He){}}return this},F.prototype.backgroundImage=function(e,t,n,i){var o=e.width/e.height,a=t,r=a/o,s={};i===undefined&&(i={}),i.cover&&r<n&&(a=(r=n)*o),i.contain&&r>n&&(a=(r=n)*o),s.width=a,s.height=r,i.center&&(s.marginLeft=-a/2,s.marginTop=-r/2,s.position="absolute",s.left="50%",s.top="50%"),(i.left||i.right)&&(s.left=i.left||0,s.top=i.top||0),"ie"===I.Browser.type&&8===I.Browser.version?s.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+e.src+"',sizingMethod='scale')":(s.background="url("+e.src+")",s.backgroundSize=a+"px "+r+"px",s.backgroundPosition="50% 50%",s.backgroundRepeat="no-repeat"),this.css.call(this,s)},F.prototype.setAttribute=function(e,t){var n;if("object"==typeof e)for(var i in e)n=e[i],this.dom.setAttribute(i,n);else this.dom.setAttribute(e,t)},F.prototype.addEventListener=function(e,t){var n={event:D.eventName(e),handler:D.eventCallback(e,t,this.dom),callback:t};this._listeners.push(n),this.dom.addEventListener?this.dom.addEventListener(n.event,n.handler):this.dom.attachEvent("on"+n.event,n.handler)},F.prototype.removeEventListener=function(e,t){for(var n,i=this._listeners.length;--i>-1;)(n=this._listeners[i]).event===e&&n.callback===t&&(this._listeners.splice(i,1),this.dom.removeEventListener?this.dom.removeEventListener(n.event,n.handler):this.dom.detachEvent("on"+n.event,n.handler))},F.prototype.__destroy=function(){for(var e,t=this._listeners.length;--t>-1;)e=this._listeners[t],this._listeners.splice(t,1),this.dom.removeEventListener?this.dom.removeEventListener(e.event,e.handler):this.dom.detachEvent("on"+e.event,e.handler);return this.dom=null,this._clss=[],this._nodes=[],this._listeners=[],this._frag=null,e=null,null};var N={self:function(e,t){var n={},i=Array.prototype.slice.call(arguments,2);for(var o in t.apply(e,i),e)n[o]=e[o]},proto:function(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e}};function R(e,t){N.self(this,F,t||"div",e),this.children=[],this._events=[]}N.proto(R,F),R.prototype.initComponent=function(e,t,n){var i=new e(t);return i._parent=this,this.children.push(i),i.dom&&(n!==undefined?n.appendElement&&n.appendElement(i):this.appendElement(i)),i},R.prototype.destroy=function(){var e=this;try{L.depth(this,"children",function(t){if(e!==t)for(var n=e.children.length;--n>-1;)e.children[n]===t&&e.children.splice(n,1);t._destroy&&t._destroy(),t=null})}catch(t){throw new Error("Trouble destroying nodes: "+t)}return null},R.prototype._destroy=function(){this.onDestroy&&this.onDestroy(),this._parent.removeElement(this);for(var e=this._events.length;--e>-1;)this._events.splice(e,1);this.children=null,this._destroy=null,this._events=null,this.destroy=null,this.emit=null,this.on=null,this.off=null,this.initComponent=null},R.prototype.on=function(e,t){for(var n=this._events.length,i=!1;--n>-1&&!1===i;)this._events[n].event===e&&(i=this._events[n]);!1===i&&(i={event:e,listeners:[]},this._events.push(i)),i.listeners.push(t)},R.prototype.off=function(e,t){for(var n=this._events.length;--n>-1;)if(this._events[n].event===e){for(var i=this._events[n].listeners.length;--i>-1;)this._events[n].listeners[i]===t&&this._events[n].listeners.splice(i,1);0===this._events[n].listeners.length&&this._events.splice(n,1)}},R.prototype.emit=function(e){for(var t=Array.prototype.slice.call(arguments,1),n=this._events.length;--n>-1;)if(this._events[n].event===e)for(var i=this._events[n].listeners.length;--i>-1;)this._events[n].listeners[i].apply(this,t)};var M={zh:{"I am human":"我是人","Enter the two words in the image.":"在图像中输入两个单词。",Check:"检查",Skip:"跳跃",Next:"下一个","Please try again.":"请再试一次","Error submitting captcha.":"提交出错","Error fetching captcha.":"抓取出错","This hCaptcha is for testing only. Please contact the site admin if you see this.":"这个hCaptchaä»…ç”¨äºŽæµ‹è¯•ã€‚å¦‚æžœä½ çœ‹åˆ°è¿™ä¸ªï¼Œè¯·è”ç³»ç½‘ç«™ç®¡ç†å‘˜ã€‚","Send Us Feedback":"发送反馈意见",Feedback:"反馈",Info:"信息",Send:"发送","hCaptcha is a service that reduces bots and spam by asking simple questions. Please follow the instructions at the top of the screen for each challenge. For more info visit":"hCaptcha是一种通过提出简单问题来减少机器人和垃圾邮件的服务。请按照屏幕顶部的说明进行每项挑战。欲了解更多信息,请访",back:"背部","Having a problem?":"有问题吗?","Give feedback.":"给予反馈。","Learn about accessibility options.":"了解有关辅助功能选项的信息。","Too Difficult":"太难了",Inappropriate:"不当","Software Bug":"软件漏洞",Other:"其他","Thank you for your feedback. We'll resolve your issue as quickly as we can.":"感谢您的反馈意见。我们将尽快解决您的问题。","Please describe your issue.":"请描述您的问题。"},ar:{"I am human":"أنا الإنسان","Enter the two words in the image.":"أدخل الكلمتين في الصورة.",Check:"التحقق من",Skip:"تخطى",Next:"التالى","Please try again.":"حاول مرة اخرى.","Error submitting captcha.":"خطأ في تقديم كلمة التحقق.","Error fetching captcha.":"خطأ في جلب كلمة التحقق.","This hCaptcha is for testing only. Please contact the site admin if you see this.":"هذا hCaptcha هو للاختبار فقط. يرجى الاتصال بمسؤول الموقع إذا رأيت هذا.","Send Us Feedback":"أرسل لنا ردود الفعل",Feedback:"ردود الفعل",Info:"معلومات",Send:"إرسال","hCaptcha is a service that reduces bots and spam by asking simple questions. Please follow the instructions at the top of the screen for each challenge. For more info visit":"hCaptcha هي خدمة تقلل من برامج الروبوت والبريد العشوائي من خلال طرح أسئلة بسيطة. يرجى اتباع التعليمات في الجزء العلوي من الشاشة لكل تحد. لمزيد من المعلومات زيارة",back:"الى الخلف","Having a problem?":"تواجه مشكلة؟","Learn about accessibility options.":"تعرف على خيارات الوصول.","Give feedback.":"إعطاء ردود الفعل.","Too Difficult":"صعب جدا",Inappropriate:"غير مناسب","Software Bug":"علة البرمجيات",Other:"آخر","Thank you for your feedback. We'll resolve your issue as quickly as we can.":"شكرا لك على ملاحظاتك. سنحل مشكلتك بأسرع ما يمكن.","Please describe your issue.":"يرجى وصف مشكلتك."},af:{"I am human":"Ek is menslike"},am:{"I am human":"እኔ ሰው ነኝ"},hy:{"I am human":"ÔµÕ½ Õ´Õ¡Ö€Õ¤ Õ¥Õ´"},az:{"I am human":"MÉ™n insanam"},eu:{"I am human":"Gizakia naiz"},bn:{"I am human":"আমি মানব নই"},bg:{"I am human":"Аз съм човек","Enter the two words in the image.":"Въведете двете думи в изображението."},ca:{"I am human":"Sóc humà ","Enter the two words in the image.":"Introduïu les dues paraules a la imatge."},hr:{"I am human":"Ja sam čovjek","Enter the two words in the image.":"Unesite dvije riječi u sliku."},cs:{"I am human":"Jsem človÄ›k","Enter the two words in the image.":"Zadejte dvÄ› slova do obrázku.",Check:"Zkontrolovat",Skip:"PÅ™eskočit",Next:"další","Please try again.":"Zkuste to prosím znovu.","Error submitting captcha.":"PÅ™i odesílání captcha se vyskytla chyba.","Error fetching captcha.":"PÅ™i načítání captcha se vyskytla chyba.","This hCaptcha is for testing only. Please contact the site admin if you see this.":"Tento hCaptcha je určen pouze pro testování. Pokud to vidíte, obraÅ¥te se na administrátora webu.","Send Us Feedback":"PoÅ¡lete nám svůj názor",Feedback:"ZpÄ›tná vazba",Info:"Informace",Send:"Poslat","hCaptcha is a service that reduces bots and spam by asking simple questions. Please follow the instructions at the top of the screen for each challenge. For more info visit":"hCaptcha je služba, která omezuje roboty a spam kladením jednoduchých otázek. Pro každou výzvu postupujte podle pokynů v horní části obrazovky. Pro více informací navÅ¡tivte",back:"zadní","Having a problem?":"Máte problém?","Learn about accessibility options.":"Další informace o možnostech usnadnÄ›ní přístupu.","Give feedback.":"Dát zpÄ›tnou vazbu.","Too Difficult":"PříliÅ¡ obtížné",Inappropriate:"Nemístný","Software Bug":"Chyba softwaru",Other:"jiný","Thank you for your feedback. We'll resolve your issue as quickly as we can.":"DÄ›kujeme vám za vaÅ¡i reakci. Váš problém vyÅ™ešíme co nejrychleji.","Please describe your issue.":"PopiÅ¡te prosím svůj problém."},da:{"I am human":"Jeg er et menneske","Enter the two words in the image.":"Indtast de to ord pÃ¥ billedet."},nl:{"I am human":"Ik ben mens","Enter the two words in the image.":"Voer de twee woorden in de afbeelding in."},et:{"I am human":"Ma olen inimeste","Enter the two words in the image.":"Sisestage kaks sõna pildil."},fi:{"I am human":"Olen ihminen","Enter the two words in the image.":"Kirjoita kuvan kaksi sanaa."},fr:{"I am human":"Je suis humain","Enter the two words in the image.":"Entrez les deux mots dans l&#39;image."},gl:{"I am human":"Eu son humano"},ka:{"I am human":"მე ვარადამიანი"},de:{"I am human":"Ich bin ein Mensch","Enter the two words in the image.":"Geben Sie die beiden Wörter im Bild ein.",Check:"Prüfen",Skip:"Ãœberspringen",Next:"Nächster","Please try again.":"Bitte versuche es erneut.","Error submitting captcha.":"Fehler beim Ãœbermitteln des Captcha.","Error fetching captcha.":"Fehler beim Abrufen des Captcha.","This hCaptcha is for testing only. Please contact the site admin if you see this.":"Dieses hCaptcha dient nur zu Testzwecken. Wenden Sie sich an den Site-Administrator, wenn Sie dies sehen.","Send Us Feedback":"Sende uns Feedback",Feedback:"Feedback",Info:"Info",Send:"Senden","hCaptcha is a service that reduces bots and spam by asking simple questions. Please follow the instructions at the top of the screen for each challenge. For more info visit":"hCaptcha ist ein Dienst, der Bots und Spam reduziert, indem einfache Fragen gestellt werden. Bitte befolgen Sie die Anweisungen oben auf dem Bildschirm für jede Herausforderung. Für weitere Informationen besuchen Sie",back:"zurück","Having a problem?":"Haben Sie ein Problem?","Learn about accessibility options.":"Erfahren Sie mehr über Eingabehilfen.","Give feedback.":"Feedback geben.","Too Difficult":"Zu schwer",Inappropriate:"Unangemessen","Software Bug":"Softwarefehler",Other:"Andere","Thank you for your feedback. We'll resolve your issue as quickly as we can.":"Vielen Dank für dein Feedback. Wir werden Ihr Problem so schnell wie möglich lösen.","Please describe your issue.":"Bitte beschreiben Sie Ihr Problem."},el:{"I am human":"Είμαι άνθρωπος","Enter the two words in the image.":"Καταχωρίστε τις δύο λέξεις στην εικόνα."},gu:{"I am human":"હું માનવ છું"},iw:{"I am human":". ×× ×™ ×× ×•×©×™","Enter the two words in the image.":"הזן את שתי המילים ×‘×ª×ž×•× ×”."},hi:{"I am human":"मैं मानव हूं","Enter the two words in the image.":"छवि में दो शब्द दर्ज करें।"},hu:{"I am human":"Én vagyok az emberi","Enter the two words in the image.":"Írja be a képen a két szót."},is:{"I am human":"Ég er manneskja"},id:{"I am human":"Aku manusia","Enter the two words in the image.":"Masukkan dua kata dalam gambar.",Check:"Memeriksa",Skip:"Melewatkan",Next:"Lanjut","Please try again.":"Silakan coba lagi.","Error submitting captcha.":"Kesalahan mengirim captcha.","Error fetching captcha.":"Kesalahan mengambil captcha.","This hCaptcha is for testing only. Please contact the site admin if you see this.":"HCaptcha ini hanya untuk pengujian. Silakan hubungi admin situs jika Anda melihat ini.","Send Us Feedback":"Berikan umpan balik",Feedback:"Umpan balik",Info:"Informasi",Send:"Kirim","hCaptcha is a service that reduces bots and spam by asking simple questions. Please follow the instructions at the top of the screen for each challenge. For more info visit":"hCaptcha adalah layanan yang mengurangi bot dan spam dengan mengajukan pertanyaan sederhana. Silakan ikuti instruksi di bagian atas layar untuk setiap tantangan. Untuk info lebih lanjut, kunjungi",back:"kembali","Having a problem?":"Mengalami masalah?","Learn about accessibility options.":"Pelajari tentang opsi aksesibilitas.","Give feedback.":"Berikan umpan balik.","Too Difficult":"Terlalu sulit",Inappropriate:"Tidak pantas","Software Bug":"Bug Perangkat Lunak",Other:"Lain","Thank you for your feedback. We'll resolve your issue as quickly as we can.":"Terima kasih atas tanggapan Anda. Kami akan menyelesaikan masalah Anda secepat mungkin.","Please describe your issue.":"Tolong jelaskan masalah Anda."},it:{"I am human":"Sono un essere umano","Enter the two words in the image.":"Inserisci le due parole nell&#39;immagine."},ja:{"I am human":"私は人間","Enter the two words in the image.":"画像に2つの単語を入力します。"},kn:{"I am human":"ನಾನು ಮಾನವನು"},ko:{"I am human":"나는 인간의","Enter the two words in the image.":"이미지에 두 단어를 ìž…ë ¥í•˜ì‹­ì‹œì˜¤."},lo:{"I am human":"ຂ້ອຍເປັນມະນຸດ"},lv:{"I am human":"Es esmu cilvÄ“ks"},lt:{"I am human":"AÅ¡ esu žmogaus","Enter the two words in the image.":"Ä®veskite du žodžius paveikslÄ—lyje."},ms:{"I am human":"Saya manusia"},ml:{"I am human":"ഞാൻ മനുഷ്യനാണ്"},mr:{"I am human":"मी मानवी आहे"},mn:{"I am human":"Би бол хүн"},no:{"I am human":"Jeg er menneskelig","Enter the two words in the image.":"Skriv inn de to ordene pÃ¥ bildet."},fa:{"I am human":"من انسانی هستم","Enter the two words in the image.":"دو کلمه را در تصویر وارد کنید."},pl:{"I am human":"Jestem czÅ‚owiekiem","Enter the two words in the image.":"Wpisz dwa sÅ‚owa z obrazka."},pt:{"I am human":"Sou humano","Enter the two words in the image.":"Digite as duas palavras na imagem."},ro:{"I am human":"Eu sunt om","Enter the two words in the image.":"IntroduceÈ›i cele două cuvinte în imagine."},ru:{"I am human":"Я человек","Enter the two words in the image.":"Введите два слова на картинке.",Check:"Проверьте",Skip:"Пропускать",Next:"следующий","Please try again.":"Пожалуйста, попробуйте еще раз.","Error submitting captcha.":"Ошибка при отправке капчи.","Error fetching captcha.":"Ошибка при получении капчи.","This hCaptcha is for testing only. Please contact the site admin if you see this.":"Эта hCaptcha только для тестирования. Пожалуйста, свяжитесь с администратором сайта, если вы видите это.","Send Us Feedback":"Отправить нам отзыв",Feedback:"Обратная связь",Info:"Информация",Send:"послать","hCaptcha is a service that reduces bots and spam by asking simple questions. Please follow the instructions at the top of the screen for each challenge. For more info visit":"hCaptcha - это сервис, который уменьшает ботов и спам, задавая простые вопросы. Пожалуйста, следуйте инструкциям в верхней части экрана для каждого испытания. Для получения дополнительной информации посетите",back:"назад","Having a problem?":"Возникла проблема?","Learn about accessibility options.":"Узнайте о вариантах доступности.","Give feedback.":"Дать обратную связь.","Too Difficult":"Слишком сложно",Inappropriate:"несоответствующий","Software Bug":"Програмное обеспечение",Other:"Другой","Thank you for your feedback. We'll resolve your issue as quickly as we can.":"Спасибо за ваш отзыв. Мы решим вашу проблему как можно быстрее.","Please describe your issue.":"Пожалуйста, опишите вашу проблему."},sr:{"I am human":"Ja sam ljudski","Enter the two words in the image.":"Унесите две речи у слику."},si:{"I am human":"මම මිනිස්සු"},sk:{"I am human":"Ja som človek","Enter the two words in the image.":"Zadajte dve slová do obrázka."},sl:{"I am human":"Jaz sem človeÅ¡ki","Enter the two words in the image.":"V sliko vnesite dve besedi."},es:{"I am human":"Soy humano","Enter the two words in the image.":"Ingrese las dos palabras en la imagen."},sw:{"I am human":"Mimi ni binadamu"},sv:{"I am human":"Jag är människa","Enter the two words in the image.":"Ange de tvÃ¥ orden i bilden."},ta:{"I am human":"நான் மனித"},te:{"I am human":"నేను మనిషిని"},th:{"I am human":"ผมมนุษย์","Enter the two words in the image.":"ป้อนคำทั้งสองในภาพ"},tr:{"I am human":"Ben bir insanım","Enter the two words in the image.":"Resimdeki iki kelimeyi giriniz."},uk:{"I am human":"Я людини","Enter the two words in the image.":"Введіть два слова на зображенні."},ur:{"I am human":"میں انسان ہوں"},vi:{"I am human":"Tôi là con người","Enter the two words in the image.":"Nhập hai từ trong hình ảnh."},zu:{"I am human":"Ngingumuntu"}},U=function(e){for(var t,n,i,o={},a=e?e.indexOf("&")>=0?e.split("&"):[e]:[],r=0;r<a.length;r++)a[r].indexOf("=")>=0&&(t=a[r].split("="),n=decodeURIComponent(t[0]),"false"!==(i=decodeURIComponent(t[1]))&&"true"!==i||(i="true"===i),o[n]=i);return o},q={translate:function(e){var t=q.getBestTrans(M);return t&&t[e]||e},getBestTrans:function(e){var t=q.getLocale();return t in e?e[t]:q.getShortLocale(t)in e?e[q.getShortLocale(t)]:"en"in e?e.en:null},getLocale:function(){var e=window.location.hash.slice(1);return U(e).hl||window.navigator.userLanguage||window.navigator.language},getShortLocale:function(e){return e.substring(0,2)}},W={touchstart:"ts",touchend:"te",touchmove:"tm",touchcancel:"tc"},H={mousedown:"md",mouseup:"mu",mousemove:"mm"},J={keydown:"kd",keyup:"ku"},X={devicemotion:"dm"},Y=function(e,t){var n=H[e],i=null;return function(e){i=function(e){return[e.windowX,e.windowY,Date.now()]}(e),t(n,i)}},G=function(e,t){var n=W[e],i=null;return function(e){i=function(e){for(var t,n=e.changedTouches,i=[],o=0;o<n.length;o++)t=D.eventCoords(n[o]),i.push([n[o].identifier,t.x,t.y]);return i.push(Date.now()),i}(e),t(n,i)}},V=function(e,t){var n=J[e],i=null;return function(e){i=function(e){return[e.keyNum,Date.now()]}(e),t(n,i)}},K=function(e,t){var n=X[e],i=null,o=[];return function(e){null!==(i=function(e,t){(e.acceleration===undefined||e.acceleration&&e.acceleration.x===undefined)&&(e.acceleration={x:0,y:0,z:0});(e.rotationRate===undefined||e.rotationRate&&e.rotationRate.alpha===undefined)&&(e.rotationRate={alpha:0,beta:0,gamma:0});var n=[e.acceleration.x,e.acceleration.y,e.acceleration.z,e.rotationRate.alpha,e.rotationRate.beta,e.rotationRate.gamma,Date.now()],i=[];if(0===t.length)t=n,i=n;else{for(var o,a=0,r=0;r<6;r++)o=t[r]-n[r],i.push(n[r]),a+=Math.abs(o);if(i.push(Date.now()),t=n,a<=0)return null}return{motion:i,prevmotion:t}}(e,o))&&(o=i.prevmotion,i=i.motion,t(n,i))}};var Z={},$={},Q=500,ee=5e3,te=Date.now(),ne=!1,ie=!1,oe=null,ae=!0,re=!0,se=!1,ce=!0,ue={record:function(e,t,n,i){ae=e===undefined?ae:e,re=n===undefined?re:n,se=t===undefined?se:t,ce=i===undefined?ce:i,!1===ie&&(oe=new F(document.body),ae&&(oe.addEventListener("mousedown",Y("mousedown",le)),oe.addEventListener("mousemove",Y("mousemove",le)),oe.addEventListener("mouseup",Y("mouseup",le))),!0===se&&(oe.addEventListener("keyup",V("keyup",le)),oe.addEventListener("keydown",V("keydown",le))),re&&!0===I.Browser.hasEvent("touchstart",document.body)&&(oe.addEventListener("touchstart",G("touchstart",le)),oe.addEventListener("touchmove",G("touchmove",le)),oe.addEventListener("touchend",G("touchend",le))),ce&&!0===I.Browser.hasEvent("devicemotion",window)&&oe.addEventListener("devicemotion",K("devicemotion",le)),ie=!0),Z.st=Date.now(),ne=!0},stop:function(){!1!==ne&&(ne=!1)},time:function(){return te},getData:function(){return Z},setData:function(e,t){Z[e]||(Z[e]=null),Array.isArray(Z[e])?Z[e].push(t):Z[e]=t},resetData:function(){Z={},$={}},circBuffPush:le};function le(e,t,n,i){if(!1!==ne)if(Z[e]){var o=n||Q,a=i||ee;if(Z[e].length<a)Z[e].push(t);else{var r=$[e];0===r&&(r=o);var s=(r+1)%a;$[e]=s,Z[e][r]=t}}else Z[e]=[t],$[e]=0}new F(document),new F(window);function he(e){if(null===e)return"";var t=[];return function n(e,t){var i,o;if("object"==typeof e)for(o in e)!0===de(i=e[o])?n(i,t):t[t.length]=me(o,i);else if(!0===Array.isArray(e))for(var a=0;a<e.length;a++)!0===de(i=e[a])?n(e,t):t[t.length]=me(o,i);else t[t.length]=me(e)}(e,t),t.join("&")}function de(e){return!0===Array.isArray(e)||"object"==typeof e}function me(e,t){return encodeURIComponent(e)+"="+encodeURIComponent(null===t?"":t)}var fe={400:{en:"Rate limited or network error. Please retry.",zh:"速率限制或网络错误。请重试。",ru:"Скорость ограничена или ошибка сети. Пожалуйста, повторите.",id:"Nilai terbatas atau kesalahan jaringan. Coba lagi",ar:"معدل محدود أو خطأ في الشبكة. الرجاء اعادة المحاولة.",de:"Rate begrenzt oder Netzwerkfehler. Bitte erneut versuchen."},429:{en:"Your computer or network has sent too many requests.",zh:"您的计算机或网络发送了太多请求。",ru:"Ваш компьютер или сеть отправили слишком много запросов.",id:"Komputer atau jaringan Anda telah mengirim terlalu banyak permintaan.",ar:"أرسل الكمبيوتر أو الشبكة الكثير من الطلبات.",de:"Ihr Computer oder Netzwerk hat zu viele Anfragen gesendet."},500:{en:"Cannot contact hCaptcha. Check your connection and try again.",zh:"æ— æ³•è”ç³»hCaptcha。请检查您的网络后再试一次。",ru:"Невозможно связаться с hCaptcha. Проверьте соединение и попробуйте снова.",id:"Tidak dapat menghubungi hCaptcha. Periksa koneksi Anda dan coba lagi.",ar:"لا يمكن الاتصال hCaptcha. تحقق من اتصالك وحاول مرة أخرى.",de:"HCaptcha kann nicht kontaktiert werden. Ãœberprüfen Sie Ihre Verbindung und versuchen Sie es erneut."}},pe={getText:function(e){try{return q.getBestTrans(fe[e])}catch(t){return!1}}};function ge(e,t,n){var i=!1,o=null,a=e.toUpperCase(),r=n&&n.responseType||"string",s=n&&n.dataType||null,c=new XMLHttpRequest,u=t;return n&&n.withCredentials&&"undefined"!=typeof XDomainRequest&&"withCredentials"in c==!1&&(i=!0,c=new XDomainRequest),n&&n.data&&(o=n.data,"json"===s&&"object"==typeof n.data&&(o=JSON.stringify(o)),"query"===s&&(o=he(o))),new Promise(function(e,s){var l,h=function(t){return function(n){var o=c.response||c.responseText,a=c.status,l=c.statusText,h=c.readyState;if(4===h||i){if("error"===t||a>=400&&a<=511)return void s({event:"network-error",endpoint:u,state:h,status:a,message:pe.getText(a||400)||l});"json"===r&&o&&(o=JSON.parse(o)),e({state:h,status:a,body:o,message:l})}}};if(c.onload=h("complete"),c.onerror=c.ontimeout=h("error"),c.open(a,t),!1===i&&(c.withCredentials=n&&n.withCredentials||!1),n&&n.headers&&!1===i)for(var d in n.headers)l=n.headers[d],c.setRequestHeader(d,l);setTimeout(function(){c.send(o||null)},0)})}var ve={request:function(e,t,n){return new ge(e,t,n)},get:function(e,t){if("object"==typeof e&&t===undefined&&(e=(t=e).url),null===e)throw new Error("Url missing");return new ge("GET",e,t)},post:function(e,t){if("object"==typeof e&&t===undefined&&(e=(t=e).url),null===e)throw new Error("Url missing");return new ge("POST",e,t)}};function we(e,t){if(!t)throw new Error("Chat requires unique id to communicate between windows");this.isIframe=e instanceof HTMLIFrameElement,this.target=e,this.id=t,this.messages=[],this.incoming=[],this.waiting=[]}function ye(e,t){var n=this,i={},o=new Promise(function(e,t){i.resolve=e,i.reject=t}),a={source:"hcaptcha",label:e,id:n.id,promise:null,lookup:t};return o.then(function(e){a.promise="resolve",null!==e&&(a.contents=e),be(n.target,a,n.isIframe)})["catch"](function(e){a.promise="reject",null!==e&&(a.error=e),be(n.target,a,n.isIframe)}),i}function be(e,t,n){n?e.contentWindow.postMessage(JSON.stringify(t),"*"):e.postMessage(JSON.stringify(t),"*")}we.prototype.contact=function(e,t){var n=this,i=Date.now().toString(36),o={source:"hcaptcha",label:e,id:this.id,promise:"create",lookup:i};if(t){if("object"!=typeof t)throw new Error("Message must be an object.");o.contents=t}return new Promise(function(t,a){n.waiting.push({label:e,reject:a,resolve:t,lookup:i}),be(n.target,o,n.isIframe)})},we.prototype.listen=function(e,t){for(var n=this.messages.length,i=!1;--n>-1&&!1===i;)this.messages[n].label===e&&(i=this.messages[n]);!1===i&&(i={label:e,listeners:[]},this.messages.push(i)),i.listeners.push(t)},we.prototype.answer=function(e,t){for(var n=this.incoming.length,i=!1;--n>-1&&!1===i;)this.incoming[n].label===e&&(i=this.incoming[n]);!1===i&&(i={label:e,listeners:[]},this.incoming.push(i)),i.listeners.push(t)},we.prototype.send=function(e,t){var n={source:"hcaptcha",label:e,id:this.id};if(t){if("object"!=typeof t)throw new Error("Message must be an object.");n.contents=t}be(this.target,n,this.isIframe)},we.prototype.check=function(e,t){for(var n=[].concat.apply([],[this.messages,this.incoming,this.waiting]),i=[],o=-1;++o<n.length;)if(n[o].label===e){if(t&&n[o].lookup&&t!==n[o].lookup)continue;i.push(n[o])}return i},we.prototype.respond=function(e){for(var t,n,i=-1,o=0,a=[].concat.apply([],[this.messages,this.incoming,this.waiting]);++i<a.length;)if(a[i].label===e.label){if(e.lookup&&a[i].lookup&&e.lookup!==a[i].lookup)continue;var r=[];if(t=a[i],e.error&&r.push(e.error),e.contents&&r.push(e.contents),e.promise&&"create"!==e.promise){t[e.promise].apply(t[e.promise],r);for(var s=this.waiting.length,c=!1;--s>-1&&!1===c;)this.waiting[s].label===t.label&&this.waiting[s].lookup===t.lookup&&(c=!0,this.waiting.splice(s,1));continue}for(o=0;o<t.listeners.length;o++){if(n=t.listeners[o],"create"===e.promise){var u=ye.call(this,t.label,e.lookup);r.push(u)}n.apply(n,r)}}a=null},we.prototype.destroy=function(){return this.messages=null,this.incoming=null,this.waiting=null,null};var ke={chats:[],isSupported:function(){return!!window.postMessage},createChat:function(e,t){var n=new we(e,t);return ke.chats.push(n),n},removeChat:function(e){for(var t=!1,n=ke.chats.length;--n>-1&&!1===t;)e.id===ke.chats[n].id&&e.target===ke.chats[n].target&&(t=ke.chats[n],ke.chats.splice(n,1));return t},handle:function(e){if(null!==e.data&&"string"==typeof e.data)try{var t=e.data;if(!("string"==typeof t&&t.indexOf("hcaptcha")>=0))return;t=JSON.parse(t);for(var n,i=ke.chats,o=-1;++o<i.length;)(n=i[o]).id===t.id&&n.respond(t)}catch(He){B("postMessage handler error","postMessage","debug",{event:e,error:He})}}};window.addEventListener?window.addEventListener("message",ke.handle):window.attachEvent("onmessage",ke.handle);var Ee=null,Ce=null,_e=null,Ie=null,Se=null,je=null,xe=null,Te=!1,Pe=null,Le=!1,Ae="https://www.hcaptcha.com/what-is-hcaptcha-about",ze=3,Be=0,Oe=null,De=5e3;function Fe(){Oe&&(Oe=clearTimeout(Oe)),ve.get({url:j.endpoint+"/checksiteconfig?host="+S.host+"&sitekey="+S.sitekey,responseType:"json",withCredentials:!0,headers:{"Content-Type":"application/json; charset=utf-8","Cache-Control":"no-cache"}}).then(function(e){if(Be=0,e){var t=e.body;if(!1===t.success)Ne(t["error-codes"].join(", "));else!t.pass&&t.error?Ne(t.error):Ne(!1);t.charity!==undefined&&(Te=t.charity),t.brand_uri!==undefined&&(Ae=t.brand_uri)}B("/checksiteconfig success","request","info",e)})["catch"](function(e){B("/checksiteconfig error","request","debug",e),Be+=1,400!==e.status||Be===ze||Le?(Be=0,Le||Ne(e.message)):Oe=setTimeout(Fe,De)})}function Ne(e){Ie.text(e||""),Ie.css({opacity:e?1:0})}function Re(){var e=Ae+"?site="+S.host+"&key="+S.sitekey;window.open(e,"_blank")}function Me(){Ee.setAttribute("aria-checked","true"),Ee.removeClass("active"),Ee.addClass("checked"),Ce.addClass("disabled")}function Ue(){Ee.setAttribute("aria-checked","false"),Ee.removeClass("active"),Ee.removeClass("checked"),Ce.removeClass("disabled"),ue.resetData(),ue.record()}function qe(e){return!!Ce.hasClass("disabled")||("terms-link"==(e.target||e.srcElement).id||"privacy-link"==(e.target||e.srcElement).id||(!!Ee.hasClass("active")||(Ee.addClass("active"),Ee.setAttribute("aria-checked","mixed"),setTimeout(function(){ue.stop(),xe.send("checkbox-selected",{manifest:ue.getData(),charity:Te,link:Ae})},1),!0)))}function We(){var e=Ee.dom.getBoundingClientRect(),t=e.bottom-e.top,n=e.right-e.left;return{left:e.left,right:e.right,top:e.top,bottom:e.bottom,width:n,height:t,x:e.left+n/2,y:e.top+t/2}}y(function(){!function(){var e=window.location.hash.slice(1),t=U(e);Pe=t.id,S.host=t.host,S.sitekey=t.sitekey,S.file="checkbox_internal",j.size=t.size||j.compact,j.theme=t.theme||j.theme,t.endpoint!==undefined&&"undefined"!==t.endpoint&&(j.endpoint=t.endpoint);t.hl!==undefined&&"undefined"!==t.hl&&(j.language=t.hl);t.sentry!==undefined&&"undefined"!==t.sentry&&(n=t.sentry,A=n);var n;Ee=new F(document.getElementById("checkbox")),Ce=new F(document.getElementById("anchor")),_e=new F(document.getElementById("checkbox-label")),Ie=new F(document.getElementById("config-error")),je=new F(document.getElementById("logo")),Se=new F(document.getElementById("config-warning")),Ce.addClass("anchor"),Ce.addClass("compact"===j.size?"compact":" normal"),Ce.addClass("dark"===j.theme?"dark":" light"),_e.text(q.translate("I am human")),ue.resetData(),ue.record(!0,!0,!0,!0),O.UUIDv4(S.sitekey)||S.sitekey===T||S.sitekey===x?S.sitekey===x&&(Se.text(q.translate("This hCaptcha is for testing only. Please contact the site admin if you see this.")),Le="sitekey-dummykey"):(Se.text(q.translate("The sitekey for this hCaptcha is incorrect. Please contact the site admin if you see this.")),Le="sitekey-invalid")}(),(xe=ke.createChat(window.parent,Pe)).listen("checkbox-tick",Me),xe.listen("checkbox-reset",Ue),xe.listen("checkbox-click",qe),xe.listen("checkbox-location",function(e){e.resolve(We())}),xe.listen("checkbox-status",function(e){Ne(e.text)}),Ce.addEventListener(!0===S.pingdom?"click":"up",qe),Ce.addEventListener("keypress",function(e){13!=e.keyCode&&32!=e.keyCode||qe(e)}),je.addEventListener("click",Re),je.addEventListener("keypress",function(e){13==e.keyCode&&Re()}),!0===A&&(window.Raven&&Raven.config("https://0f73e9316e6b4aee9e62a74c820604e0@sentry.io/1198795",{autoBreadcrumbs:{xhr:!0,dom:!0,sentry:!0},tags:{"site-host":S.host,"site-key":S.sitekey,"endpoint-url":j.endpoint,"asset-url":S.assetUrl}}).install(),window.Raven&&Raven.setUserContext({"Browser-Agent":I.Browser.agent,"Browser-Type":I.Browser.type,"Browser-Version":I.Browser.version,"System-OS":I.System.os,"System-Version":I.System.version,"Is-Mobile":I.System.mobile}),B("checkbox_internal","setup","info")),Fe(),xe.send("checkbox-loaded",We())})}();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment