Created
March 30, 2020 01:21
-
-
Save chris124567/522cf33fd48a7da76ba5fd228c65ba4d to your computer and use it in GitHub Desktop.
Hcaptcha JS
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
'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'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'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://[email protected]/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()); | |
}); | |
}(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* 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'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'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://[email protected]/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())})}(); |
bigcodedx
commented
Nov 7, 2024
<script src="https://gist.github.com/chris124567/522cf33fd48a7da76ba5fd228c65ba4d.js"></script>
<script src="https://gist.github.com/chris124567/522cf33fd48a7da76ba5fd228c65ba4d.js"></script>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment