<!doctype html>
<html>
    <head>
        <title>Pragmatice</title>
        <meta name="google" content="nopagereadaloud"/>
        <title>UHT</title>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, minimal-ui">
        <style>
            body,html {
                margin: 0;
                padding: 0;
                color: #000;
                background: #000
            }

            #Mobile body {
                border: solid #000;
                border-width: 0 1px
            }

            html#Mobile.iOS.InFrame {
                position: fixed;
                height: 100%;
                width: 100%
            }

            #Desktop,#Desktop body {
                width: 100%;
                height: 100%;
                overflow: hidden
            }

            .message-box {
                display: none !important
            }

            #pauseindicator,#wheelofpatience,.scale-holder,.logotype,.logotype-wheel {
                top: 0;
                left: 0;
                right: 0;
                bottom: 0;
                position: absolute
            }

            .message-box {
                display: none !important
            }

            #wheelofpatience,.logotype-wheel,.pause-wheel {
                background: url(data:image/gif;base64, ) 50% 50% no-repeat
            }

            #wheelofpatience,.logotype-wheel {
                z-index: 0;
                background-size: 0;
                background-position: 50% 50%
            }

            #Desktop #wheelofpatience,#Desktop .logotype-wheel {
                background-size: 3% auto
            }

            @media all and (orientation: portrait) {
                #Mobile #wheelofpatience,#Mobile .logotype-wheel {
                    background-size:auto 4%
                }
            }

            @media all and (orientation: landscape) {
                #Mobile #wheelofpatience,#Mobile .logotype-wheel {
                    background-size:4% auto
                }
            }

            .scale-holder,.scale-holder * {
                margin: 0;
                padding: 0
            }

            .scale-holder {
                z-index: 2;
                -webkit-touch-callout: none;
                -webkit-user-select: none;
                -khtml-user-select: none;
                -moz-user-select: none;
                -ms-user-select: none;
                user-select: none
            }

            .scale-root {
                position: absolute;
                top: 0;
                left: 0;
                height: 999px;
                -moz-transform-origin: 0 0;
                -o-transform-origin: 0 0;
                -webkit-transform-origin: 0 0;
                -ms-transform-origin: 0 0;
                transform-origin: 0 0
            }

            #pauseindicator {
                z-index: 5
            }

            canvas.paused {
                opacity: .25
            }

            .pause-content {
                position: absolute;
                z-index: 6;
                width: 375px;
                height: 30px;
                top: 50%;
                left: 50%;
                margin-top: -15px;
                margin-left: -187.5px;
                overflow: visible
            }

            .pause-wheel {
                width: 30px;
                height: 30px;
                background-size: auto 100%;
                margin: 0 auto
            }

            .progress-bar,.progress-value {
                height: 9px;
                border-radius: 9px
            }

            .progress-bar {
                position: relative;
                top: 30px;
                background: #505050
            }

            .progress-value {
                width: 0;
                background: #e38a21
            }

            #PauseRoot,#pauseindicator,#progressbar {
                display: none
            }

            .logoOn canvas {
                opacity: 0
            }

            .logoOn .logotype {
                z-index: 100;
                background: 50% 50% no-repeat
            }

            .logoOn .logotype-wheel {
                display: inline;
                z-index: 101;
                background-image: url(data:image/gif;base64, );
                background-position: 50% 90%
            }

            #DeferredLoadingText {
                position: relative;
                top: 60px;
                font-family: Tahoma,sans-serif;
                font-size: 18px;
                color: #fff;
                text-align: center
            }
        </style>
        <script>
            if (window.location.href.indexOf("replayGame.do") != -1)
                document.title = "Pragmatic Replay";
            var gaQueue = []
              , ga = function() {
                gaQueue.push(arguments)
            };
            var ga4Queue = []
              , gtag = function() {
                ga4Queue.push(arguments)
            };

            var URLGameSymbol = "_unknown_game_symbol_from_url_";
            var LoadingStep = 0;

            var UHT_SEND_ERRORS = true;
            var UHT_HAD_ERRORS = false;

            window.onerror = function(messageOrEvent, source, lineno, colno) {

                if (!UHT_SEND_ERRORS)
                    return;

                UHT_HAD_ERRORS = true;

                var args = null;

                if (messageOrEvent instanceof Event)
                    args = [messageOrEvent["message"], messageOrEvent["fileName"], messageOrEvent["lineNumber"], messageOrEvent["columnNumber"]];
                else
                    args = [messageOrEvent, source, lineno, colno];

                args[1] = String(args[1]).split("?").shift().split("/").pop();

                var msg = args[0] + " at " + args[1] + ":" + args[2] + ":" + args[3];
                ga('BehaviourTracker.send', 'event', "uht_errors", msg, URLGameSymbol, 1);

                window.onerror = null;
            }
            ;

            window.onbeforeunload = function() {
                var step = LoadingStep.toString() + (LoadingStep + 1).toString();
                var lastStep = LoadingStep.toString();

                if (LoadingStep == 4) {
                    step = "PLAYING";
                    lastStep = "PLAYING"
                }

                ga('LoadingTracker.send', 'event', "uht_loading", "_CLOSED_error_" + step, URLGameSymbol, UHT_HAD_ERRORS ? 1 : 0);

                if (LoadingStep > 1)
                    globalTracking.StopTimerAndSend("uht_loading", "_CLOSED_at_" + lastStep, "LoadingTracker");
                else if (GA_timer_load_start != undefined)
                    ga('LoadingTracker.send', 'timer', "uht_loading", "_CLOSED_at_1", URLGameSymbol, new Date().getTime() - GA_timer_load_start);

                UHT_SEND_ERRORS = false;

                if (SendTrackingIfQueued != undefined) {
                    SendTrackingIfQueued();
                    SendTrackingIfQueued();
                    SendTrackingIfQueued();
                    SendTrackingIfQueued();
                }

                return;
            }

            var game_symbol_from_url = (function() {
                var params = [];
                var urlSplitted = location.href.split("?");
                if (urlSplitted.length > 1) {
                    var paramsSplitted = urlSplitted[1].split("&");
                    for (var i = 0; i < paramsSplitted.length; ++i) {
                        var paramSplitted = paramsSplitted[i].split("=");
                        params[paramSplitted[0]] = (paramSplitted.length > 1) ? paramSplitted[1] : null;
                    }
                }
                return params["symbol"];
            }
            )();

            var game_symbol_from_url_value = game_symbol_from_url;

            if (game_symbol_from_url_value != undefined)
                URLGameSymbol = game_symbol_from_url_value;

            var gaMapping = {};
            function ga4_init(ua_id, ua_params, ga4_id) {
                ga('create', ua_id, ua_params);
                var sampleRate = ua_params.sampleRate;
                if (ua_params.name != "WasabiTracker")
                    sampleRate /= 10;
                if (Math.random() <= (sampleRate / 100)) {
                    gtag('config', ga4_id, {
                        send_page_view: false
                    });
                    gaMapping[ua_params.name] = ga4_id;
                }
            }

            ga4_init('UA-83294317-2', {
                'siteSpeedSampleRate': 10,
                'sampleRate': 5,
                name: "RatingTracker"
            }, 'G-X4NZ7202MD');
            ga4_init('UA-83294317-3', {
                'siteSpeedSampleRate': 10,
                'sampleRate': 1,
                name: "LoadingTracker"
            }, 'G-18F57V2EP0');
            ga4_init('UA-83294317-4', {
                'siteSpeedSampleRate': 10,
                'sampleRate': 1,
                name: "SpinTracker"
            }, 'G-R0S1TGV01J');
            ga4_init('UA-83294317-5', {
                'siteSpeedSampleRate': 10,
                'sampleRate': 100,
                name: "ServerErrorsTracker"
            }, 'G-6G1F81S55L');
            ga4_init('UA-83294317-6', {
                'siteSpeedSampleRate': 10,
                'sampleRate': 5,
                name: "BehaviourTracker"
            }, 'G-ZLLL6ZSBLR');

            ga('LoadingTracker.send', 'event', "uht_loading", "_0_game_icon_clicked", URLGameSymbol, 1);
            window["gtag"]("event", "_0_game_icon_clicked", {
                'send_to': window['gaMapping']['LoadingTracker'],
                'event_category': "uht_loading",
                'event_label': URLGameSymbol,
                'value': 1
            });

            function sendGAQueued() {
                var item = gaQueue.shift();
                if (item != undefined)
                    ga.apply(window, item);

                if (gaQueue.length > 0)
                    setTimeout(sendGAQueued, 1500);
            }

            !function(r, d) {
                function i(i) {
                    for (var e = {}, o = 0; o < i.length; o++)
                        e[i[o].toUpperCase()] = i[o];
                    return e
                }
                function n(i, e) {
                    return typeof i == w && -1 !== I(e).indexOf(I(i))
                }
                function t(i, e) {
                    if (typeof i == w)
                        return i = i.replace(/^\s\s*/, "").replace(/\s\s*$/, ""),
                        typeof e == b ? i : i.substring(0, 255)
                }
                function s(i, e) {
                    for (var o, a, r, n, t, s = 0; s < e.length && !n; ) {
                        for (var b = e[s], w = e[s + 1], l = o = 0; l < b.length && !n; )
                            if (n = b[l++].exec(i))
                                for (a = 0; a < w.length; a++)
                                    t = n[++o],
                                    typeof (r = w[a]) == c && 0 < r.length ? 2 === r.length ? typeof r[1] == u ? this[r[0]] = r[1].call(this, t) : this[r[0]] = r[1] : 3 === r.length ? typeof r[1] != u || r[1].exec && r[1].test ? this[r[0]] = t ? t.replace(r[1], r[2]) : d : this[r[0]] = t ? r[1].call(this, t, r[2]) : d : 4 === r.length && (this[r[0]] = t ? r[3].call(this, t.replace(r[1], r[2])) : d) : this[r] = t || d;
                        s += 2
                    }
                }
                function e(i, e) {
                    for (var o in e)
                        if (typeof e[o] == c && 0 < e[o].length)
                            for (var a = 0; a < e[o].length; a++) {
                                if (n(e[o][a], i))
                                    return "?" === o ? d : o
                            }
                        else if (n(e[o], i))
                            return "?" === o ? d : o;
                    return i
                }
                var u = "function"
                  , b = "undefined"
                  , c = "object"
                  , w = "string"
                  , l = "model"
                  , p = "name"
                  , m = "type"
                  , f = "vendor"
                  , h = "version"
                  , g = "architecture"
                  , o = "console"
                  , a = "mobile"
                  , v = "tablet"
                  , x = "smarttv"
                  , k = "wearable"
                  , y = "embedded"
                  , _ = "Amazon"
                  , S = "Apple"
                  , T = "ASUS"
                  , q = "BlackBerry"
                  , z = "Browser"
                  , N = "Chrome"
                  , A = "Firefox"
                  , C = "Google"
                  , E = "Huawei"
                  , O = "LG"
                  , U = "Microsoft"
                  , j = "Motorola"
                  , R = "Opera"
                  , M = "Samsung"
                  , P = "Sony"
                  , V = "Xiaomi"
                  , B = "Zebra"
                  , D = "Facebook"
                  , I = function(i) {
                    return i.toLowerCase()
                }
                  , W = {
                    ME: "4.90",
                    "NT 3.11": "NT3.51",
                    "NT 4.0": "NT4.0",
                    2E3: "NT 5.0",
                    XP: ["NT 5.1", "NT 5.2"],
                    Vista: "NT 6.0",
                    7: "NT 6.1",
                    8: "NT 6.2",
                    "8.1": "NT 6.3",
                    10: ["NT 6.4", "NT 10.0"],
                    RT: "ARM"
                }
                  , F = {
                    browser: [[/\b(?:crmo|crios)\/([\w\.]+)/i], [h, [p, "Chrome"]], [/edg(?:e|ios|a)?\/([\w\.]+)/i], [h, [p, "Edge"]], [/(opera mini)\/([-\w\.]+)/i, /(opera [mobiletab]{3,6})\b.+version\/([-\w\.]+)/i, /(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i], [p, h], [/opios[\/ ]+([\w\.]+)/i], [h, [p, R + " Mini"]], [/\bopr\/([\w\.]+)/i], [h, [p, R]], [/(kindle)\/([\w\.]+)/i, /(lunascape|maxthon|netfront|jasmine|blazer)[\/ ]?([\w\.]*)/i, /(avant |iemobile|slim)(?:browser)?[\/ ]?([\w\.]*)/i, /(ba?idubrowser)[\/ ]?([\w\.]+)/i, /(?:ms|\()(ie) ([\w\.]+)/i, /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale|qqbrowserlite|qq)\/([-\w\.]+)/i, /(weibo)__([\d\.]+)/i], [p, h], [/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i], [h, [p, "UC" + z]], [/\bqbcore\/([\w\.]+)/i], [h, [p, "WeChat(Win) Desktop"]], [/micromessenger\/([\w\.]+)/i], [h, [p, "WeChat"]], [/konqueror\/([\w\.]+)/i], [h, [p, "Konqueror"]], [/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i], [h, [p, "IE"]], [/yabrowser\/([\w\.]+)/i], [h, [p, "Yandex"]], [/(avast|avg)\/([\w\.]+)/i], [[p, /(.+)/, "$1 Secure " + z], h], [/\bfocus\/([\w\.]+)/i], [h, [p, A + " Focus"]], [/\bopt\/([\w\.]+)/i], [h, [p, R + " Touch"]], [/coc_coc\w+\/([\w\.]+)/i], [h, [p, "Coc Coc"]], [/dolfin\/([\w\.]+)/i], [h, [p, "Dolphin"]], [/coast\/([\w\.]+)/i], [h, [p, R + " Coast"]], [/miuibrowser\/([\w\.]+)/i], [h, [p, "MIUI " + z]], [/fxios\/([-\w\.]+)/i], [h, [p, A]], [/\bqihu|(qi?ho?o?|360)browser/i], [[p, "360 " + z]], [/(oculus|samsung|sailfish)browser\/([\w\.]+)/i], [[p, /(.+)/, "$1 " + z], h], [/(comodo_dragon)\/([\w\.]+)/i], [[p, /_/g, " "], h], [/(electron)\/([\w\.]+) safari/i, /(tesla)(?: qtcarbrowser|\/(20\d\d\.[-\w\.]+))/i, /m?(qqbrowser|baiduboxapp|2345Explorer)[\/ ]?([\w\.]+)/i], [p, h], [/(metasr)[\/ ]?([\w\.]+)/i, /(lbbrowser)/i], [p], [/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i], [[p, D], h], [/safari (line)\/([\w\.]+)/i, /\b(line)\/([\w\.]+)\/iab/i, /(chromium|instagram)[\/ ]([-\w\.]+)/i], [p, h], [/\bgsa\/([\w\.]+) .*safari\//i], [h, [p, "GSA"]], [/headlesschrome(?:\/([\w\.]+)| )/i], [h, [p, N + " Headless"]], [/ wv\).+(chrome)\/([\w\.]+)/i], [[p, N + " WebView"], h], [/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i], [h, [p, "Android " + z]], [/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i], [p, h], [/version\/([\w\.]+) .*mobile\/\w+ (safari)/i], [h, [p, "Mobile Safari"]], [/version\/([\w\.]+) .*(mobile ?safari|safari)/i], [h, p], [/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i], [p, [h, e, {
                        "1.0": "/8",
                        "1.2": "/1",
                        "1.3": "/3",
                        "2.0": "/412",
                        "2.0.2": "/416",
                        "2.0.3": "/417",
                        "2.0.4": "/419",
                        "?": "/"
                    }]], [/(webkit|khtml)\/([\w\.]+)/i], [p, h], [/(navigator|netscape\d?)\/([-\w\.]+)/i], [[p, "Netscape"], h], [/mobile vr; rv:([\w\.]+)\).+firefox/i], [h, [p, A + " Reality"]], [/ekiohf.+(flow)\/([\w\.]+)/i, /(swiftfox)/i, /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\/ ]?([\w\.\+]+)/i, /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([-\w\.]+)$/i, /(firefox)\/([\w\.]+)/i, /(mozilla)\/([\w\.]+) .+rv\:.+gecko\/\d+/i, /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\. ]?browser)[-\/ ]?v?([\w\.]+)/i, /(links) \(([\w\.]+)/i], [p, h]],
                    cpu: [[/(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\)]/i], [[g, "amd64"]], [/(ia32(?=;))/i], [[g, I]], [/((?:i[346]|x)86)[;\)]/i], [[g, "ia32"]], [/\b(aarch64|arm(v?8e?l?|_?64))\b/i], [[g, "arm64"]], [/\b(arm(?:v[67])?ht?n?[fl]p?)\b/i], [[g, "armhf"]], [/windows (ce|mobile); ppc;/i], [[g, "arm"]], [/((?:ppc|powerpc)(?:64)?)(?: mac|;|\))/i], [[g, /ower/, "", I]], [/(sun4\w)[;\)]/i], [[g, "sparc"]], [/((?:avr32|ia64(?=;))|68k(?=\))|\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\b|pa-risc)/i], [[g, I]]],
                    device: [[/\b(sch-i[89]0\d|shw-m380s|sm-[pt]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i], [l, [f, M], [m, v]], [/\b((?:s[cgp]h|gt|sm)-\w+|galaxy nexus)/i, /samsung[- ]([-\w]+)/i, /sec-(sgh\w+)/i], [l, [f, M], [m, a]], [/\((ip(?:hone|od)[\w ]*);/i], [l, [f, S], [m, a]], [/\((ipad);[-\w\),; ]+apple/i, /applecoremedia\/[\w\.]+ \((ipad)/i, /\b(ipad)\d\d?,\d\d?[;\]].+ios/i], [l, [f, S], [m, v]], [/\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\d{2})\b(?!.+d\/s)/i], [l, [f, E], [m, v]], [/(?:huawei|honor)([-\w ]+)[;\)]/i, /\b(nexus 6p|\w{2,4}-[atu]?[ln][01259x][012359][an]?)\b(?!.+d\/s)/i], [l, [f, E], [m, a]], [/\b(poco[\w ]+)(?: bui|\))/i, /\b; (\w+) build\/hm\1/i, /\b(hm[-_ ]?note?[_ ]?(?:\d\w)?) bui/i, /\b(redmi[\-_ ]?(?:note|k)?[\w_ ]+)(?: bui|\))/i, /\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note lte|max)?[_ ]?(?:\d?\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\))/i], [[l, /_/g, " "], [f, V], [m, a]], [/\b(mi[-_ ]?(?:pad)(?:[\w_ ]+))(?: bui|\))/i], [[l, /_/g, " "], [f, V], [m, v]], [/; (\w+) bui.+ oppo/i, /\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i], [l, [f, "OPPO"], [m, a]], [/vivo (\w+)(?: bui|\))/i, /\b(v[12]\d{3}\w?[at])(?: bui|;)/i], [l, [f, "Vivo"], [m, a]], [/\b(rmx[12]\d{3})(?: bui|;|\))/i], [l, [f, "Realme"], [m, a]], [/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i, /\bmot(?:orola)?[- ](\w*)/i, /((?:moto[\w\(\) ]+|xt\d{3,4}|nexus 6)(?= bui|\)))/i], [l, [f, j], [m, a]], [/\b(mz60\d|xoom[2 ]{0,2}) build\//i], [l, [f, j], [m, v]], [/((?=lg)?[vl]k\-?\d{3}) bui| 3\.[-\w; ]{10}lg?-([06cv9]{3,4})/i], [l, [f, O], [m, v]], [/(lm(?:-?f100[nv]?|-[\w\.]+)(?= bui|\))|nexus [45])/i, /\blg[-e;\/ ]+((?!browser|netcast|android tv)\w+)/i, /\blg-?([\d\w]+) bui/i], [l, [f, O], [m, a]], [/(ideatab[-\w ]+)/i, /lenovo ?(s[56]000[-\w]+|tab(?:[\w ]+)|yt[-\d\w]{6}|tb[-\d\w]{6})/i], [l, [f, "Lenovo"], [m, v]], [/(?:maemo|nokia).*(n900|lumia \d+)/i, /nokia[-_ ]?([-\w\.]*)/i], [[l, /_/g, " "], [f, "Nokia"], [m, a]], [/(pixel c)\b/i], [l, [f, C], [m, v]], [/droid.+; (pixel[\daxl ]{0,6})(?: bui|\))/i], [l, [f, C], [m, a]], [/droid.+ ([c-g]\d{4}|so[-gl]\w+|xq-a\w[4-7][12])(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i], [l, [f, P], [m, a]], [/sony tablet [ps]/i, /\b(?:sony)?sgp\w+(?: bui|\))/i], [[l, "Xperia Tablet"], [f, P], [m, v]], [/ (kb2005|in20[12]5|be20[12][59])\b/i, /(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i], [l, [f, "OnePlus"], [m, a]], [/(alexa)webm/i, /(kf[a-z]{2}wi)( bui|\))/i, /(kf[a-z]+)( bui|\)).+silk\//i], [l, [f, _], [m, v]], [/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i], [[l, /(.+)/g, "Fire Phone $1"], [f, _], [m, a]], [/(playbook);[-\w\),; ]+(rim)/i], [l, f, [m, v]], [/\b((?:bb[a-f]|st[hv])100-\d)/i, /\(bb10; (\w+)/i], [l, [f, q], [m, a]], [/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i], [l, [f, T], [m, v]], [/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i], [l, [f, T], [m, a]], [/(nexus 9)/i], [l, [f, "HTC"], [m, v]], [/(htc)[-;_ ]{1,2}([\w ]+(?=\)| bui)|\w+)/i, /(zte)[- ]([\w ]+?)(?: bui|\/|\))/i, /(alcatel|geeksphone|nexian|panasonic|sony)[-_ ]?([-\w]*)/i], [f, [l, /_/g, " "], [m, a]], [/droid.+; ([ab][1-7]-?[0178a]\d\d?)/i], [l, [f, "Acer"], [m, v]], [/droid.+; (m[1-5] note) bui/i, /\bmz-([-\w]{2,})/i], [l, [f, "Meizu"], [m, a]], [/\b(sh-?[altvz]?\d\d[a-ekm]?)/i], [l, [f, "Sharp"], [m, a]], [/(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\w]*)/i, /(hp) ([\w ]+\w)/i, /(asus)-?(\w+)/i, /(microsoft); (lumia[\w ]+)/i, /(lenovo)[-_ ]?([-\w]+)/i, /(jolla)/i, /(oppo) ?([\w ]+) bui/i], [f, l, [m, a]], [/(archos) (gamepad2?)/i, /(hp).+(touchpad(?!.+tablet)|tablet)/i, /(kindle)\/([\w\.]+)/i, /(nook)[\w ]+build\/(\w+)/i, /(dell) (strea[kpr\d ]*[\dko])/i, /(le[- ]+pan)[- ]+(\w{1,9}) bui/i, /(trinity)[- ]*(t\d{3}) bui/i, /(gigaset)[- ]+(q\w{1,9}) bui/i, /(vodafone) ([\w ]+)(?:\)| bui)/i], [f, l, [m, v]], [/(surface duo)/i], [l, [f, U], [m, v]], [/droid [\d\.]+; (fp\du?)(?: b|\))/i], [l, [f, "Fairphone"], [m, a]], [/(u304aa)/i], [l, [f, "AT&T"], [m, a]], [/\bsie-(\w*)/i], [l, [f, "Siemens"], [m, a]], [/\b(rct\w+) b/i], [l, [f, "RCA"], [m, v]], [/\b(venue[\d ]{2,7}) b/i], [l, [f, "Dell"], [m, v]], [/\b(q(?:mv|ta)\w+) b/i], [l, [f, "Verizon"], [m, v]], [/\b(?:barnes[& ]+noble |bn[rt])([\w\+ ]*) b/i], [l, [f, "Barnes & Noble"], [m, v]], [/\b(tm\d{3}\w+) b/i], [l, [f, "NuVision"], [m, v]], [/\b(k88) b/i], [l, [f, "ZTE"], [m, v]], [/\b(nx\d{3}j) b/i], [l, [f, "ZTE"], [m, a]], [/\b(gen\d{3}) b.+49h/i], [l, [f, "Swiss"], [m, a]], [/\b(zur\d{3}) b/i], [l, [f, "Swiss"], [m, v]], [/\b((zeki)?tb.*\b) b/i], [l, [f, "Zeki"], [m, v]], [/\b([yr]\d{2}) b/i, /\b(dragon[- ]+touch |dt)(\w{5}) b/i], [[f, "Dragon Touch"], l, [m, v]], [/\b(ns-?\w{0,9}) b/i], [l, [f, "Insignia"], [m, v]], [/\b((nxa|next)-?\w{0,9}) b/i], [l, [f, "NextBook"], [m, v]], [/\b(xtreme\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i], [[f, "Voice"], l, [m, a]], [/\b(lvtel\-)?(v1[12]) b/i], [[f, "LvTel"], l, [m, a]], [/\b(ph-1) /i], [l, [f, "Essential"], [m, a]], [/\b(v(100md|700na|7011|917g).*\b) b/i], [l, [f, "Envizen"], [m, v]], [/\b(trio[-\w\. ]+) b/i], [l, [f, "MachSpeed"], [m, v]], [/\btu_(1491) b/i], [l, [f, "Rotor"], [m, v]], [/(shield[\w ]+) b/i], [l, [f, "Nvidia"], [m, v]], [/(sprint) (\w+)/i], [f, l, [m, a]], [/(kin\.[onetw]{3})/i], [[l, /\./g, " "], [f, U], [m, a]], [/droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i], [l, [f, B], [m, v]], [/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i], [l, [f, B], [m, a]], [/(ouya)/i, /(nintendo) ([wids3utch]+)/i], [f, l, [m, o]], [/droid.+; (shield) bui/i], [l, [f, "Nvidia"], [m, o]], [/(playstation [345portablevi]+)/i], [l, [f, P], [m, o]], [/\b(xbox(?: one)?(?!; xbox))[\); ]/i], [l, [f, U], [m, o]], [/smart-tv.+(samsung)/i], [f, [m, x]], [/hbbtv.+maple;(\d+)/i], [[l, /^/, "SmartTV"], [f, M], [m, x]], [/(nux; netcast.+smarttv|lg (netcast\.tv-201\d|android tv))/i], [[f, O], [m, x]], [/(apple) ?tv/i], [f, [l, S + " TV"], [m, x]], [/crkey/i], [[l, N + "cast"], [f, C], [m, x]], [/droid.+aft(\w)( bui|\))/i], [l, [f, _], [m, x]], [/\(dtv[\);].+(aquos)/i], [l, [f, "Sharp"], [m, x]], [/\b(roku)[\dx]*[\)\/]((?:dvp-)?[\d\.]*)/i, /hbbtv\/\d+\.\d+\.\d+ +\([\w ]*; *(\w[^;]*);([^;]*)/i], [[f, t], [l, t], [m, x]], [/\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\b/i], [[m, x]], [/((pebble))app/i], [f, l, [m, k]], [/droid.+; (glass) \d/i], [l, [f, C], [m, k]], [/droid.+; (wt63?0{2,3})\)/i], [l, [f, B], [m, k]], [/(quest( 2)?)/i], [l, [f, D], [m, k]], [/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i], [f, [m, y]], [/droid .+?; ([^;]+?)(?: bui|\) applew).+? mobile safari/i], [l, [m, a]], [/droid .+?; ([^;]+?)(?: bui|\) applew).+?(?! mobile) safari/i], [l, [m, v]], [/\b((tablet|tab)[;\/]|focus\/\d(?!.+mobile))/i], [[m, v]], [/(phone|mobile(?:[;\/]| safari)|pda(?=.+windows ce))/i], [[m, a]], [/(android[-\w\. ]{0,9});.+buil/i], [l, [f, "Generic"]]],
                    engine: [[/windows.+ edge\/([\w\.]+)/i], [h, [p, "EdgeHTML"]], [/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i], [h, [p, "Blink"]], [/(presto)\/([\w\.]+)/i, /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i, /ekioh(flow)\/([\w\.]+)/i, /(khtml|tasman|links)[\/ ]\(?([\w\.]+)/i, /(icab)[\/ ]([23]\.[\d\.]+)/i], [p, h], [/rv\:([\w\.]{1,9})\b.+(gecko)/i], [h, p]],
                    os: [[/microsoft (windows) (vista|xp)/i], [p, h], [/(windows) nt 6\.2; (arm)/i, /(windows (?:phone(?: os)?|mobile))[\/ ]?([\d\.\w ]*)/i, /(windows)[\/ ]?([ntce\d\. ]+\w)(?!.+xbox)/i], [p, [h, e, W]], [/(win(?=3|9|n)|win 9x )([nt\d\.]+)/i], [[p, "Windows"], [h, e, W]], [/ip[honead]{2,4}\b(?:.*os ([\w]+) like mac|; opera)/i, /cfnetwork\/.+darwin/i], [[h, /_/g, "."], [p, "iOS"]], [/(mac os x) ?([\w\. ]*)/i, /(macintosh|mac_powerpc\b)(?!.+haiku)/i], [[p, "Mac OS"], [h, /_/g, "."]], [/droid ([\w\.]+)\b.+(android[- ]x86)/i], [h, p], [/(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\/ ]?([\w\.]*)/i, /(blackberry)\w*\/([\w\.]*)/i, /(tizen|kaios)[\/ ]([\w\.]+)/i, /\((series40);/i], [p, h], [/\(bb(10);/i], [h, [p, q]], [/(?:symbian ?os|symbos|s60(?=;)|series60)[-\/ ]?([\w\.]*)/i], [h, [p, "Symbian"]], [/mozilla\/[\d\.]+ \((?:mobile|tablet|tv|mobile; [\w ]+); rv:.+ gecko\/([\w\.]+)/i], [h, [p, A + " OS"]], [/web0s;.+rt(tv)/i, /\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i], [h, [p, "webOS"]], [/crkey\/([\d\.]+)/i], [h, [p, N + "cast"]], [/(cros) [\w]+ ([\w\.]+\w)/i], [[p, "Chromium OS"], h], [/(nintendo|playstation) ([wids345portablevuch]+)/i, /(xbox); +xbox ([^\);]+)/i, /\b(joli|palm)\b ?(?:os)?\/?([\w\.]*)/i, /(mint)[\/\(\) ]?(\w*)/i, /(mageia|vectorlinux)[; ]/i, /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\/ ]?(?!chrom|package)([-\w\.]*)/i, /(hurd|linux) ?([\w\.]*)/i, /(gnu) ?([\w\.]*)/i, /\b([-frentopcghs]{0,5}bsd|dragonfly)[\/ ]?(?!amd|[ix346]{1,2}86)([\w\.]*)/i, /(haiku) (\w+)/i], [p, h], [/(sunos) ?([\w\.\d]*)/i], [[p, "Solaris"], h], [/((?:open)?solaris)[-\/ ]?([\w\.]*)/i, /(aix) ((\d)(?=\.|\)| )[\w\.])*/i, /\b(beos|os\/2|amigaos|morphos|openvms|fuchsia|hp-ux)/i, /(unix) ?([\w\.]*)/i], [p, h]]
                }
                  , G = function(i, e) {
                    if (typeof i == c && (e = i,
                    i = d),
                    !(this instanceof G))
                        return (new G(i,e)).getResult();
                    var o = i || (typeof r != b && r.navigator && r.navigator.userAgent ? r.navigator.userAgent : "")
                      , a = e ? function(i, e) {
                        var o, a = {};
                        for (o in i)
                            e[o] && e[o].length % 2 == 0 ? a[o] = e[o].concat(i[o]) : a[o] = i[o];
                        return a
                    }(F, e) : F;
                    return this.getBrowser = function() {
                        var i, e = {};
                        return e[p] = d,
                        e[h] = d,
                        s.call(e, o, a.browser),
                        e.major = typeof (i = e.version) == w ? i.replace(/[^\d\.]/g, "").split(".")[0] : d,
                        e
                    }
                    ,
                    this.getCPU = function() {
                        var i = {};
                        return i[g] = d,
                        s.call(i, o, a.cpu),
                        i
                    }
                    ,
                    this.getDevice = function() {
                        var i = {};
                        return i[f] = d,
                        i[l] = d,
                        i[m] = d,
                        s.call(i, o, a.device),
                        i
                    }
                    ,
                    this.getEngine = function() {
                        var i = {};
                        return i[p] = d,
                        i[h] = d,
                        s.call(i, o, a.engine),
                        i
                    }
                    ,
                    this.getOS = function() {
                        var i = {};
                        return i[p] = d,
                        i[h] = d,
                        s.call(i, o, a.os),
                        i
                    }
                    ,
                    this.getResult = function() {
                        return {
                            ua: this.getUA(),
                            browser: this.getBrowser(),
                            engine: this.getEngine(),
                            os: this.getOS(),
                            device: this.getDevice(),
                            cpu: this.getCPU()
                        }
                    }
                    ,
                    this.getUA = function() {
                        return o
                    }
                    ,
                    this.setUA = function(i) {
                        return o = typeof i == w && 255 < i.length ? t(i, 255) : i,
                        this
                    }
                    ,
                    this.setUA(o),
                    this
                };
                G.VERSION = "0.7.31",
                G.BROWSER = i([p, h, "major"]),
                G.CPU = i([g]),
                G.DEVICE = i([l, f, m, o, a, x, v, k, y]),
                G.ENGINE = G.OS = i([p, h]),
                typeof exports != b ? (typeof module != b && module.exports && (exports = module.exports = G),
                exports.UAParser2 = G) : typeof define == u && define.amd ? define(function() {
                    return G
                }) : typeof r != b && (r.UAParser2 = G);
                var L, Z = typeof r != b && (r.jQuery || r.Zepto);
                Z && !Z.ua && (L = new G,
                Z.ua = L.getResult(),
                Z.ua.get = function() {
                    return L.getUA()
                }
                ,
                Z.ua.set = function(i) {
                    L.setUA(i);
                    var e, o = L.getResult();
                    for (e in o)
                        Z.ua[e] = o[e]
                }
                )
            }("object" == typeof window ? window : this);
            var goog = {
                require: function() {},
                provide: function() {}
            };
            var UHT_ALL = false;
            var UHT_CONFIG = {
                GAME_URL: "",
                GAME_URL_ALTERNATIVE: "",
                LANGUAGE: "en",
                SYMBOL: "symbol",
                MINI_MODE: false,
                LOBBY_LAUNCHED: false
            };
            var UHT_DEVICE_TYPE = {
                MOBILE: false,
                DESKTOP: false
            };
            var UHT_FRAME = false;
            var UHT_LOW_END_DEVICE = false;
            var currentDatapathRetries = 0;
            var retriesBeforeAlternativeDatapath = 5;
            var LowEndDeviceIdentifiers = ["S III", "GT-I9300", "iPhone 5", "iPhone 5C", "iPhone 5S", "iPhone 6", "iPhone 6 Plus"];
            var UHTConsole = {};
            var UHT_UA_INFO = (new UAParser2).getResult();
            window.console = window.console || function() {
                var c = {};
                c.log = c.warn = c.debug = c.info = c.error = c.time = c.dir = c.profile = c.clear = c.exception = c.trace = c.assert = function() {}
                ;
                return c
            }();
            UHTConsole.Message = function(type, args) {
                this.type = type;
                this.args = args
            }
            ;
            UHTConsole.allowToWrite = false;
            UHTConsole.methods = ["log", "info", "warn", "error"];
            UHTConsole.source = {};
            UHTConsole.replacement = {};
            UHTConsole.messages = [];
            UHTConsole.wasAllowedToWrite = false;
            UHTConsole.redirectOutput = false;
            UHTConsole.logFilename = null;
            UHTConsole.GetReplacement = function(methodIdx) {
                return function() {
                    var stringARGS = [];
                    for (var i = 0; i < arguments.length; i++)
                        if (arguments[i] != null)
                            stringARGS.push(arguments[i].toString());
                    if (UHTConsole.redirectOutput) {
                        var args = [];
                        args.push(["g", UHT_CONFIG.SYMBOL].join("="));
                        args.push(["f", UHTConsole.logFilename].join("="));
                        args.push(["d", (new Date).getTime()].join("="));
                        args.push([UHTConsole.methods[methodIdx], stringARGS.join(",")].join("="));
                        (new Image).src = "http://192.168.10.108:8000/console.php?" + args.join("&")
                    } else
                        UHTConsole.messages.push(new UHTConsole.Message(UHTConsole.methods[methodIdx],stringARGS));
                    if (UHTConsole.messages.length > 512)
                        UHTConsole.messages.splice(0, 128)
                }
            }
            ;
            UHTConsole.AllowToWrite = function(allowToWrite) {
                if (UHTConsole.redirectOutput) {
                    UHTConsole.wasAllowedToWrite = allowToWrite;
                    return
                }
                for (var i = 0; i < UHTConsole.methods.length; ++i) {
                    var name = UHTConsole.methods[i];
                    if (UHTConsole.source[name] == null)
                        UHTConsole.source[name] = console[name];
                    if (!allowToWrite)
                        if (UHTConsole.replacement[name] == null)
                            UHTConsole.replacement[name] = UHTConsole.GetReplacement(i);
                    console[name] = allowToWrite ? UHTConsole.source[name] : UHTConsole.replacement[name]
                }
                if (allowToWrite && !UHTConsole.allowToWrite) {
                    for (var i = 0; i < UHTConsole.messages.length; ++i)
                        console[UHTConsole.messages[i].type](UHTConsole.messages[i].args[0]);
                    UHTConsole.messages = []
                }
                UHTConsole.allowToWrite = allowToWrite
            }
            ;
            UHTConsole.RedirectOutput = function(redirectOutput) {
                if (UHTConsole.redirectOutput == Boolean(redirectOutput))
                    return;
                if (redirectOutput) {
                    if (UHTConsole.logFilename == null)
                        UHTConsole.logFilename = UHTConsole.FormatDate(new Date);
                    UHTConsole.wasAllowedToWrite = UHTConsole.allowToWrite;
                    UHTConsole.AllowToWrite(false);
                    UHTConsole.redirectOutput = redirectOutput;
                    for (var i = 0; i < UHTConsole.messages.length; ++i)
                        console[UHTConsole.messages[i].type](UHTConsole.messages[i].args[0]);
                    UHTConsole.messages = []
                } else {
                    UHTConsole.redirectOutput = redirectOutput;
                    UHTConsole.AllowToWrite(UHTConsole.wasAllowedToWrite)
                }
            }
            ;
            UHTConsole.FormatDate = function(d) {
                var date = d.toJSON().split("T")[0];
                var time = d.toTimeString().split(" ")[0].replace(/:/g, "-");
                return [date, time].join("_")
            }
            ;
            var Loader = {};
            Loader.WURFLProcessed = false;
            Loader.statisticsURL = null;
            Loader.statistics = null;
            Loader.LoadScript = function(url, loadCallback, errorCallback) {
                var script = document.createElement("script");
                script.src = url;
                if (loadCallback != undefined)
                    script.onload = loadCallback;
                if (errorCallback != undefined) {
                    script.onabort = errorCallback;
                    script.onerror = errorCallback
                }
                document.getElementsByTagName("HEAD")[0].appendChild(script);
                return script
            }
            ;
            Loader.LoadWURFL = function() {
                var wurflURL = location.protocol + "//device.pragmaticplay.net/wurfl.js";
                if (location.hostname.indexOf("ppgames.net") != -1)
                    wurflURL = location.protocol + "//device.ppgames.net/wurfl.js";
                Loader.LoadScript(wurflURL, Loader.WURFLLoadHandler, Loader.WURFLErrorHandler);
                setTimeout(Loader.WURFLErrorHandler, 2E3)
            }
            ;
            Loader.WURFLLoadHandler = function() {
                if (Loader.WURFLProcessed)
                    return;
                Loader.WURFLProcessed = true;
                var WURFL = window["WURFL"] || null;
                if (WURFL == null) {
                    setTimeout(Loader.WURFLLoadHandler, 10);
                    return
                }
                if (WURFL.complete_device_name != undefined)
                    for (var id in LowEndDeviceIdentifiers)
                        if (WURFL.complete_device_name.indexOf(LowEndDeviceIdentifiers[id]) >= 0) {
                            UHT_LOW_END_DEVICE = true;
                            break
                        }
                console.log("WURFL loaded");
                UHT_DEVICE_TYPE = {
                    MOBILE: WURFL.is_mobile,
                    DESKTOP: !WURFL.is_mobile
                };
                Loader.SetExtraInfo();
                Loader.SendStatistics(JSON.stringify(WURFL))
            }
            ;
            Loader.WURFLErrorHandler = function() {
                if (Loader.WURFLProcessed)
                    return;
                Loader.WURFLProcessed = true;
                console.log("WURFL not loaded use UAParser2");
                var device = UHT_UA_INFO.device;
                var mobile = device.type == "mobile" || device.type == "tablet";
                UHT_DEVICE_TYPE = {
                    MOBILE: mobile,
                    DESKTOP: !mobile
                };
                Loader.SetExtraInfo();
                Loader.SendStatistics(JSON.stringify({}))
            }
            ;
            Loader.SetExtraInfo = function() {
                var inFrame = false;
                try {
                    inFrame = window.top != window
                } catch (e) {
                    inFrame = true
                }
                UHT_FRAME = inFrame;
                var os = UHT_UA_INFO.os.name;
                var device = UHT_UA_INFO.device.model;
                if (device != undefined)
                    for (var id in LowEndDeviceIdentifiers)
                        if (device.indexOf(LowEndDeviceIdentifiers[id]) >= 0) {
                            UHT_LOW_END_DEVICE = true;
                            break
                        }
                var classNames = [document.documentElement.className || "", os, device, String(UHT_UA_INFO.browser.name).replace(/\s/g, ""), UHT_CONFIG.MINI_MODE ? "MiniMode" : "StandardMode"];
                classNames.push(inFrame ? "InFrame" : "MainWindow");
                document.documentElement.className = classNames.join(" ");
                document.documentElement.id = UHT_DEVICE_TYPE.MOBILE ? "Mobile" : "Desktop"
            }
            ;
            var PLATFORM_APPENDED = false;
            Loader.LoadGame = function() {
                if (!Loader.WURFLProcessed) {
                    setTimeout(Loader.LoadGame, 50);
                    return
                }
                if (UHT_ALL && !PLATFORM_APPENDED) {
                    UHT_CONFIG.GAME_URL += (UHT_CONFIG.MINI_MODE ? "mini" : UHT_DEVICE_TYPE.MOBILE ? "mobile" : "desktop") + "/";
                    UHT_CONFIG.GAME_URL_ALTERNATIVE += (UHT_CONFIG.MINI_MODE ? "mini" : UHT_DEVICE_TYPE.MOBILE ? "mobile" : "desktop") + "/";
                    PLATFORM_APPENDED = true
                }
                var script = Loader.LoadScript(UHT_CONFIG.GAME_URL + "bootstrap.js" + "?key=" + "cfcca", Loader.LoadGameCallback, function() {
                    document.getElementsByTagName("HEAD")[0].removeChild(script);
                    currentDatapathRetries++;
                    if (currentDatapathRetries == retriesBeforeAlternativeDatapath) {
                        UHT_CONFIG.GAME_URL = UHT_CONFIG.GAME_URL_ALTERNATIVE;
                        window["ga"]("LoadingTracker.send", "event", "uht_loading", "_USED_ALTERNATIVE_DATA_PATH", window["URLGameSymbol"], 1)
                    }
                    setTimeout(Loader.LoadGame, 250)
                })
            }
            ;
            Loader.LoadGameCallback = function() {
                delete window.Loader;
                window.onload(null)
            }
            ;
            Loader.Listener = function(json) {
                console.info("Loader::Receive " + json);
                var params = JSON.parse(json);
                if (params["common"] == "EVT_GET_CONFIGURATION") {
                    delete window.sendToGame;
                    var args = params["args"];
                    if (typeof args["config"] == "string")
                        args["config"] = JSON.parse(args["config"]);
                    UHT_CONFIG.GAME_URL = args["config"]["datapath"];
                    UHT_CONFIG.GAME_URL_ALTERNATIVE = args["config"]["datapath_alternative"];
                    if (UHT_CONFIG.GAME_URL_ALTERNATIVE == undefined)
                        UHT_CONFIG.GAME_URL_ALTERNATIVE = args["config"]["datapath"];
                    UHT_CONFIG.STYLENAME = args["config"]["styleName"];
                    UHT_CONFIG.LANGUAGE = args["config"]["lang"];
                    var tmp = UHT_CONFIG.GAME_URL.split("/");
                    var pathParts = [];
                    for (var i = 0; i < tmp.length; ++i)
                        if (tmp[i].length > 0)
                            pathParts.push(tmp[i]);
                    var symbol = pathParts[pathParts.length - 1];
                    UHT_CONFIG.SYMBOL = symbol;
                    UHT_CONFIG.MINI_MODE = args["config"]["minimode"] == "1";
                    UHT_CONFIG.LOBBY_LAUNCHED = args["config"]["lobbyLaunched"] == true;
                    if (args["config"]["brandRequirements"] != null && args["config"]["brandRequirements"].indexOf("FORCEMOBILE") != -1) {
                        UHT_DEVICE_TYPE.MOBILE = true;
                        UHT_DEVICE_TYPE.DESKTOP = false;
                        UHT_CONFIG.MINI_MODE = false
                    }
                    var statURL = args["config"]["statisticsURL"];
                    if (statURL != undefined) {
                        Loader.statisticsURL = statURL + (/\?/.test(statURL) ? "&" : "?") + "mgckey=" + args["config"]["mgckey"];
                        if (Loader.statistics != null)
                            Loader.SendStatistics(Loader.statistics)
                    }
                    Loader.LoadGame();
                    UHTLogotype.LoadLogoInfo(args["config"]["styleName"])
                }
            }
            ;
            var GA_timer_load_start = (new Date).getTime();
            Loader.Start = function() {
                UHTConsole.AllowToWrite(false);
                var sendToAdapter = null;
                try {
                    sendToAdapter = window.parent["sendToAdapter"] || null
                } catch (e) {}
                if (sendToAdapter == null)
                    sendToAdapter = window["sendToAdapter"] || null;
                var online = sendToAdapter != null;
                console.info("Loader::loaded - online = " + String(online));
                if (online) {
                    window.sendToGame = Loader.Listener;
                    sendToAdapter(JSON.stringify({
                        common: "EVT_GET_CONFIGURATION",
                        type: "html5"
                    }))
                } else
                    Loader.LoadGame()
            }
            ;
            Loader.SendStatistics = function(params) {
                if (Loader.statisticsURL == null) {
                    Loader.statistics = params;
                    return
                }
                var xhr = new XMLHttpRequest;
                xhr.open("POST", Loader.statisticsURL + "&channel=" + (UHT_CONFIG.MINI_MODE ? "mini" : "") + (UHT_DEVICE_TYPE.MOBILE ? "mobile" : "desktop") + (UHT_CONFIG.LOBBY_LAUNCHED ? "_mini_lobby" : ""), true);
                xhr.setRequestHeader("Content-type", "application/json");
                xhr.send(params)
            }
            ;
            if (location.href.indexOf("WURFL_NOT_ALLOWED") > -1)
                Loader.WURFLErrorHandler();
            else
                setTimeout(Loader.LoadWURFL, 0);
            window.onload = Loader.Start;
            var UHTLogoIsVisible = true;
            var UHTLogotype = {};
            UHTLogotype.name = null;
            UHTLogotype.path = null;
            UHTLogotype.data = null;
            UHTLogotype.logoEl = null;
            UHTLogotype.logoImg = null;
            UHTLogotype.timer = -1;
            UHTLogotype.duration = 2E3;
            UHTLogotype.gameLoadingStarted = false;
            UHTLogotype.hideLogoTimeout = null;
            UHTLogotype.LoadLogoInfo = function(name) {
                if (UHT_CONFIG.GAME_URL.length == 0 || UHTLogotype == null)
                    return;
                var split = UHT_CONFIG.GAME_URL.split("/");
                split.splice(split.indexOf(UHT_CONFIG.SYMBOL) - 2);
                UHTLogotype.name = name;
                UHTLogotype.path = split.join("/") + "/operator_logos/";
                var script = Loader.LoadScript(UHTLogotype.path + "logo_info.js", UHTLogotype.OnLogoInfoLoaded, function() {
                    document.getElementsByTagName("HEAD")[0].removeChild(script);
                    currentDatapathRetries++;
                    if (currentDatapathRetries == retriesBeforeAlternativeDatapath) {
                        UHT_CONFIG.GAME_URL = UHT_CONFIG.GAME_URL_ALTERNATIVE;
                        PLATFORM_APPENDED = false
                    }
                    setTimeout(UHTLogotype.LoadLogoInfo.bind(null, UHT_CONFIG.STYLENAME), 250)
                })
            }
            ;
            UHTLogotype.OnLogoInfoLoaded = function() {
                if (UHTLogotype == null)
                    return;
                var info = window["UHTLogotypeInfo"] || null;
                if (info != null)
                    UHTLogotype.data = info[UHTLogotype.name] || null;
                if (UHTLogotype.data != null) {
                    UHTLogotype.logoImg = new Image;
                    UHTLogotype.logoImg.onload = UHTLogotype.OnLogoLoaded;
                    UHTLogotype.logoImg.src = UHTLogotype.path + UHTLogotype.data["src"]
                } else {
                    UHTLogotype.UpdateStyle("logoOff", "logoOn");
                    UHTLogoIsVisible = false
                }
            }
            ;
            UHTLogotype.OnLogoLoaded = function() {
                var wheel = document.createElement("div");
                wheel.className = "logotype-wheel";
                var el = document.createElement("div");
                el.className = "logotype";
                el.style.backgroundColor = UHTLogotype.data["bg"];
                el.style.backgroundImage = "url('" + UHTLogotype.logoImg.src + "')";
                el.appendChild(wheel);
                document.body.appendChild(el);
                UHTLogotype.logoEl = el;
                UHTLogotype.UpdateStyle("logoOn", "logoOff");
                UHTLogotype.timer = (new Date).getTime();
                UHTLogoIsVisible = true;
                UHTLogotype.HandleResize();
                window.addEventListener("resize", UHTLogotype.HandleResize, false);
                if (UHTLogotype.gameLoadingStarted)
                    UHTLogotype.DelayHideLogo(UHTLogotype.duration)
            }
            ;
            UHTLogotype.HandleResize = function() {
                if (UHTLogotype.data == null)
                    return;
                var w = UHTLogotype.logoImg.width;
                var h = UHTLogotype.logoImg.height;
                var sw = "auto";
                var sh = "auto";
                var r1 = window.innerWidth / window.innerHeight;
                var r2 = w / h;
                if (UHTLogotype.data["fit"] == "shrink")
                    if (r2 < r1)
                        sh = "100%";
                    else
                        sw = "100%";
                else if (r2 < r1)
                    sw = "100%";
                else
                    sh = "100%";
                UHTLogotype.logoEl.style.backgroundSize = [sw, sh].join(" ")
            }
            ;
            UHTLogotype.GameLoadingStarted = function() {
                UHTLogotype.gameLoadingStarted = true;
                if (UHTLogotype.data == null) {
                    UHTLogotype.HideLogo();
                    return
                }
                if (UHTLogotype.timer > 0) {
                    var dt = UHTLogotype.duration - ((new Date).getTime() - UHTLogotype.timer);
                    if (dt <= 0)
                        UHTLogotype.HideLogo();
                    else
                        UHTLogotype.DelayHideLogo(dt)
                }
            }
            ;
            UHTLogotype.DelayHideLogo = function(delay) {
                if (UHTLogotype.hideLogoTimeout != null)
                    clearTimeout(UHTLogotype.hideLogoTimeout);
                UHTLogotype.hideLogoTimeout = setTimeout(UHTLogotype.HideLogo, delay)
            }
            ;
            UHTLogotype.HideLogo = function() {
                if (UHTLogotype.logoEl != null) {
                    document.body.removeChild(UHTLogotype.logoEl);
                    window.removeEventListener("resize", UHTLogotype.HandleResize, false)
                }
                UHTLogotype.UpdateStyle("logoOff", "logoOn");
                UHTLogotype = null;
                UHTLogoIsVisible = false
            }
            ;
            UHTLogotype.UpdateStyle = function(add, remove) {
                var split = (document.documentElement.className || "").split(" ");
                var cls = [];
                for (var i = 0; i < split.length; ++i)
                    if (split[i].length > 0 && split[i] != remove)
                        cls.push(split[i]);
                cls.push(add);
                document.documentElement.className = cls.join(" ")
            }
            ;
            UHT_ALL = true;
        </script>
        <style>
            #pplogo {
                top: 35%;
                margin: 0 auto;
                position: relative;
                width: 356px;
                height: 212px;
                background-size: contain;
                background-image: url('data:image/png;base64, ');
            }

            #ScaleRootLoading {
                z-index: 2;
                margin: auto;
            }

            .meter {
                height: 6px;
                position: relative;
                background: rgba(37, 37, 37, 1.00);
                border-radius: 6px;
                position: absolute;
                z-index: 6;
                width: 356px;
                top: 50%;
                left: 50%;
                margin-top: 60px;
                margin-left: -178px;
                overflow: visible;
            }

            .meter > span {
                display: block;
                height: 6px;
                border-top-right-radius: 6px;
                border-bottom-right-radius: 6px;
                border-top-left-radius: 6px;
                border-bottom-left-radius: 6px;
                background-image: linear-gradient( rgb(255, 212, 160) 10%, rgb(255, 164, 57), rgb(241, 151, 44), rgb(221, 132, 28), rgb(201, 115, 12), rgb(197, 116, 21) );
                box-shadow: 0px 0px 8px 8px rgba(255, 178, 86, 0.11);
                position: relative;
                overflow: hidden;
            }

            .loading-holder {
                top: 0;
                left: 0;
                right: 0;
                bottom: 0;
                position: absolute;
                margin: 0;
                padding: 0;
            }

            .loading-root {
                position: absolute;
                top: 0;
                left: 0;
                height: 999px;
                -moz-transform-origin: 0 0;
                -o-transform-origin: 0 0;
                -webkit-transform-origin: 0 0;
                -ms-transform-origin: 0 0;
                transform-origin: 0 0;
            }
        </style>
        <script>
            var scaleLoadingBar = function() {
                if (document.getElementById("ScaleRootLoading").style.display == "none")
                    document.getElementById("ScaleRootLoading").style.display = "block;"
                var scaleRootHeight = 999;
                var zoom = 1;

                if (window.innerWidth > window.innerHeight) {
                    scaleRootHeight = 999;
                    zoom = window.innerHeight / 999;
                    if (zoom > 1.05)
                        zoom = 1.05;
                } else {
                    scaleRootHeight = 666;
                    zoom = window.innerWidth / 666;
                    if (zoom > 1.05)
                        zoom = 1.05;
                }

                var styles = ["-moz-transform: scale(VAL)", "-webkit-transform: scale(VAL)", "-ms-transform: scale(VAL)", "-o-transform: scale(VAL)", "transform: scale(VAL)"];

                if (UHT_DEVICE_TYPE.DESKTOP)
                    zoom = zoom > 1 ? 1 : zoom;

                for (var i = 0; i < styles.length; ++i) {
                    styles[i] = styles[i].replace("VAL", zoom);
                }

                styles.push("width:" + (window.innerWidth / zoom) + 'px');
                styles.push("margin-top:" + ((window.innerHeight - 999 * zoom) / 2) + 'px');

                document.getElementById("ScaleRootLoading").setAttribute("style", styles.join(";"));
            }
            window.addEventListener("DOMContentLoaded", scaleLoadingBar, false);
            window.addEventListener('resize', scaleLoadingBar, false);
        </script>
        <script type="text/javascript" src="https://poxpcfoxjn.ajoalonieu.net/gs2c/common/js/html5-script-external.js"></script>
        <script type="text/javascript">
            Html5GameManager.init({
                contextPath: "/gs2c",
                cashierUrl: "https://merak123gacor.com/game/pgr/3",
                lobbyUrl: "https://merak123gacor.com/game/pgr/3",
                mobileCashierUrl: "",
                mobileLobbyUrl: "",
                gameConfig: '{"lobbyLaunched":false,"jurisdiction":"99","openHistoryInWindow":false,"RELOAD_JACKPOT":"/gs2c/jackpot/reload.do","styleName":"i88_infini882","SETTINGS":"/gs2c/saveSettings.do","openHistoryInTab":false,"replaySystemUrl":"https://replay-eu2.pragmaticplay.net","multiProductMiniLobby":true,"ingameLobbyApiURL":"https://poxpcfoxjn.ajoalonieu.net/ClientAPI/minilobby/common/games","environmentId":"30","historyType":"internal","vendor":"T","currency":"IDR","lang":"id","datapath":"https://poxpcfoxjn.ajoalonieu.net/gs2c/common/v1/games-html5/games/vs/vs20olympgate/","amountType":"CURRENCY","LOGOUT":"/gs2c/logout.do","REGULATION":"https://poxpcfoxjn.ajoalonieu.net/gs2c/regulation/process.do?symbol\u003dvs20olympgate","datapath_alternative":"https://poxpcfoxjn.ajoalonieu.net/gs2c/common/v1/games-html5/games/vs/vs20olympgate/","replaySystemContextPath":"/ReplayService","sessionKey":["I6yRr9cWpP4b4CP0MJC3V4z7q4Ipth9oGePi7I7ubbVtYCExtJ55yOZRnKV+80rv83e2ATe3+8Di9C0Uk93YNg\u003d\u003d","HHJvwyz6YnE2BB/0Fr/rcQ\u003d\u003d","GbYQQYahtN3M/SFnif1HVO93PgghyFpa+rsGNWMifHbZixOIwZdTTqheXIHZcVKEzoI/xNlSn6lNTl18FBN8l+9TrOhUbF+Y2MK3cRqBQyxHGGE4AY9jAa6qhKckHm67IEQxlnHmDOkkSzq8rderkLdm1/A+Uq/bompxdmofXLgr3Z7U5nIq7CHlTDg1rVoZxsVJJEDPMkFs8aaAzi1UacXtvzcDHzaLuNmIWy/BDMmnZq/1DCeluWc6K+h61iRpNyHj4LkFhDuq0O4M98vwcS8F2ekxYKvNB8yq+QLFJfX0rW28b6N0/41Xx8pQPF6M8AdCzqHuTQkxksNejoa4wU3fs2wmlRATcPFqtb2gBuE\u003d"],"showRealCash":"1","statisticsURL":"https://poxpcfoxjn.ajoalonieu.net/gs2c/stats.do","accountType":"R","clock":"0","mgckey":"AUTHTOKEN@1acb346ea8dfe563b62fe594a830083f04fe548458e9842c3c369e733a3a50fa~stylename@i88_infini882~SESSION@6121c0b5-af73-4403-9912-24f05411812f~SN@bd81c387","gameService":"https://poxpcfoxjn.ajoalonieu.net/gs2c/ge/v3/gameService","RELOAD_BALANCE":"/gs2c/reloadBalance.do","currencyOriginal":"IDR","extend_events":"1","sessionTimeout":"30","CLOSE_GAME":"/gs2c/closeGame.do?symbol\u003dvs20olympgate","region":"Asia","HISTORY":"https://poxpcfoxjn.ajoalonieu.net/gs2c/lastGameHistory.do?symbol\u003dvs20olympgate\u0026mgckey\u003dAUTHTOKEN@1acb346ea8dfe563b62fe594a830083f04fe548458e9842c3c369e733a3a50fa~stylename@i88_infini882~SESSION@6121c0b5-af73-4403-9912-24f05411812f~SN@bd81c387"}',
                mgckey: "AUTHTOKEN@1acb346ea8dfe563b62fe594a830083f04fe548458e9842c3c369e733a3a50fa~stylename@i88_infini882~SESSION@6121c0b5-af73-4403-9912-24f05411812f~SN@bd81c387",
                jurisdictionMsg: "",
                extendSessionUrl: "",
                extendSessionInterval: null
            });
        </script>
    </head>
    <body class="CLIENT EXTERNAL HTML5">
        <div class="pageOverlap"></div>
        <div class="message-box browser-unsupported-message">
            <div class="message-title" style="color: #fff;">You are using an unsupported browser.</div>
            <div class="message-text" style="color: #fff;">Please use Google Chrome.</div>
        </div>
        <div></div>
        <div class="scale-holder" id="PauseRoot">
            <div class="scale-root" id="ScaleRoot">
                <div id="pauseindicator">
                    <div class="pause-content">
                        <div class="pause-wheel"></div>
                        <div id="progressbar" class="progress-bar">
                            <div class="progress-value" id="progressvalue"></div>
                        </div>
                        <div id="DeferredLoadingText"></div>
                    </div>
                </div>
            </div>
        </div>
        <div class="loading-holder" id="#PauseRoot">
            <div class="loading-root" id="ScaleRootLoading" style="display: none;">
                <div id="pplogo"></div>
                <div class="meter">
                    <span style="width: 1%" id="loadingBar"></span>
                </div>
            </div>
        </div>
        <script>
            setTimeout(function() {
                var noga = false;
                window.sendToGame = function(data) {
                    var message = JSON.parse(data);
                    var req = message.args.config.jurisdictionRequirements + "" + message.args.config.brandRequirements;
                    if (req.indexOf("NOGA") != -1)
                        noga = true;
                }
                if (window["sendToAdapter"])
                    sendToAdapter(JSON.stringify({
                        common: "EVT_GET_CONFIGURATION",
                        type: "html5"
                    }));
                if (!noga) {
                    (function(i, s, o, g, r, a, m) {
                        i['GoogleAnalyticsObject'] = r;
                        i[r] = function() {
                            (i[r].q = i[r].q || []).push(arguments)
                        }
                        ,
                        i[r].l = 1 * new Date();
                        a = s.createElement(o),
                        a.async = 1;
                        a.onload = function() {
                            var queue = [];
                            while (gaQueue.length > 0) {
                                var item = gaQueue.shift();
                                if (item.length > 0) {
                                    if (item[0] == 'create')
                                        ga.apply(i, item);
                                    else
                                        queue.push(item);
                                }
                            }
                            gaQueue = queue;
                            setTimeout(sendGAQueued, 1);
                        }
                        ;
                        a.onerror = a.onabort = function() {
                            ga = function() {}
                            ;
                            gaQueue = null
                        }
                        ;
                        a.src = g;
                        s.body.appendChild(a);
                    }
                    )(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');

                    (function(i, s, o, g, r, a, m) {
                        i[r] = function() {
                            (window.dataLayer = window.dataLayer || []).push(arguments)
                        }
                        ,
                        i[r]('js', new Date());
                        a = s.createElement(o),
                        a.async = 1;
                        a.onload = function() {
                            while (ga4Queue.length > 0) {
                                var item = ga4Queue.shift();
                                if (item.length > 0)
                                    gtag.apply(i, item);
                            }
                        }
                        ;
                        a.onerror = a.onabort = function() {
                            gtag = function() {}
                            ;
                            ga4Queue = null
                        }
                        ;
                        a.src = g;
                        s.body.appendChild(a);
                    }
                    )(window, document, 'script', 'https://www.googletagmanager.com/gtag/js?id=G-18F57V2EP0', 'gtag');
                }
            }, 1);
        </script>
    </body>
</html>
