(window.webpackJsonp = window.webpackJsonp || []).push([
    [4], {
        100: function(e, t, n) {
            "use strict";
            n.d(t, "a", (function() {
                return c
            }));
            var o, r = n(0),
                i = n(1),
                a = n(57),
                s = (o = function(e, t) {
                    return (o = Object.setPrototypeOf || {
                            __proto__: []
                        }
                        instanceof Array && function(e, t) {
                            e.__proto__ = t
                        } || function(e, t) {
                            for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                        })(e, t)
                }, function(e, t) {
                    function n() {
                        this.constructor = e
                    }
                    o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
                }),
                p = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                l = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                c = function(e) {
                    function t(t, n) {
                        return e.call(this, t, [], "coinsMeter", n) || this
                    }
                    return s(t, e), t.prototype.onIncrement = function() {
                        this._parent.actions.setPatternsBet(this.steps[this.stepIndex + 1]), i.i.execute("onUiBetUp")
                    }, t.prototype.onDecrement = function() {
                        this._parent.actions.setPatternsBet(this.steps[this.stepIndex - 1]), i.i.execute("onUiBetDown")
                    }, Object.defineProperty(t.prototype, "steps", {
                        get: function() {
                            return this._parent.props.patternSteps
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(t.prototype, "stepIndex", {
                        get: function() {
                            return this._parent.props.patternStepIndex >= 0 ? this._parent.props.patternStepIndex : 0
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(t.prototype, "value", {
                        get: function() {
                            return this.steps[this.stepIndex]
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(t.prototype, "textValue", {
                        get: function() {
                            return this.value > 0 ? this.value.toString() : "0"
                        },
                        enumerable: !0,
                        configurable: !0
                    }), p([r.d, l("design:type", Array), l("design:paramtypes", [])], t.prototype, "steps", null), p([r.d, l("design:type", Number), l("design:paramtypes", [])], t.prototype, "stepIndex", null), p([r.d, l("design:type", Number), l("design:paramtypes", [])], t.prototype, "value", null), p([r.d, l("design:type", String), l("design:paramtypes", [])], t.prototype, "textValue", null), t
                }(a.a)
        },
        101: function(e, t, n) {
            "use strict";
            n.d(t, "a", (function() {
                return c
            }));
            var o, r = n(0),
                i = n(1),
                a = n(57),
                s = (o = function(e, t) {
                    return (o = Object.setPrototypeOf || {
                            __proto__: []
                        }
                        instanceof Array && function(e, t) {
                            e.__proto__ = t
                        } || function(e, t) {
                            for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                        })(e, t)
                }, function(e, t) {
                    function n() {
                        this.constructor = e
                    }
                    o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
                }),
                p = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                l = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                c = function(e) {
                    function t(t, n) {
                        return e.call(this, t, [], "coinValueMeter", n) || this
                    }
                    return s(t, e), t.prototype.onIncrement = function() {
                        this._parent.actions.setBetPerPattern(this.steps[this.stepIndex + 1]), this.playIncrementAudio()
                    }, t.prototype.onDecrement = function() {
                        this._parent.actions.setBetPerPattern(this.steps[this.stepIndex - 1]), i.i.execute("onUiBetDown")
                    }, Object.defineProperty(t.prototype, "steps", {
                        get: function() {
                            return this._parent.props.betSteps
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(t.prototype, "stepIndex", {
                        get: function() {
                            return this._parent.props.betStepIndex >= 0 ? this._parent.props.betStepIndex : 0
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(t.prototype, "value", {
                        get: function() {
                            return this.steps[this.stepIndex]
                        },
                        enumerable: !0,
                        configurable: !0
                    }), t.prototype.playIncrementAudio = function() {
                        this.stepIndex === this.steps.length - 1 ? i.i.execute("onUiBetMax") : i.i.execute("onUiBetUp")
                    }, Object.defineProperty(t.prototype, "textValue", {
                        get: function() {
                            return this.value > 0 && this._parent.props.denomination.length > 0 ? i.c.format(this.value, this._parent.props.denomination[0].value) : ""
                        },
                        enumerable: !0,
                        configurable: !0
                    }), p([r.d, l("design:type", Array), l("design:paramtypes", [])], t.prototype, "steps", null), p([r.d, l("design:type", Number), l("design:paramtypes", [])], t.prototype, "stepIndex", null), p([r.d, l("design:type", Number), l("design:paramtypes", [])], t.prototype, "value", null), p([r.d, l("design:type", String), l("design:paramtypes", [])], t.prototype, "textValue", null), t
                }(a.a)
        },
        103: function(e, t, n) {
            "use strict";
            n.d(t, "a", (function() {
                return R
            }));
            var o, r = n(10),
                i = n(0),
                a = n(20),
                s = n(1),
                p = n(18),
                l = n(19),
                c = n(17),
                u = (o = function(e, t) {
                    return (o = Object.setPrototypeOf || {
                            __proto__: []
                        }
                        instanceof Array && function(e, t) {
                            e.__proto__ = t
                        } || function(e, t) {
                            for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                        })(e, t)
                }, function(e, t) {
                    function n() {
                        this.constructor = e
                    }
                    o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
                }),
                f = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                d = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                y = function(e) {
                    function t() {
                        return null !== e && e.apply(this, arguments) || this
                    }
                    return u(t, e), t.prototype.setTargetValue = function(e) {
                        this._data.targetValue = e
                    }, t.prototype.setConfig = function(e) {
                        this._data.config = e
                    }, t.prototype.setTargetConfigName = function(e) {
                        this._data.targetConfigName = e
                    }, t.prototype.setInputValue = function(e) {
                        this._data.inputValue = e
                    }, t.prototype.setUpdateThresholdFunc = function(e) {
                        this._data.updateThresholdFunc = e
                    }, t.prototype.setUpdateValueFunc = function(e) {
                        this._data.updateValueFunc = e
                    }, t.prototype.setUpdateStateFunc = function(e) {
                        this._data.updateStateFunc = e
                    }, f([i.b.bound, d("design:type", Function), d("design:paramtypes", [Number]), d("design:returntype", void 0)], t.prototype, "setTargetValue", null), f([i.b.bound, d("design:type", Function), d("design:paramtypes", [Map]), d("design:returntype", void 0)], t.prototype, "setConfig", null), f([i.b.bound, d("design:type", Function), d("design:paramtypes", [String]), d("design:returntype", void 0)], t.prototype, "setTargetConfigName", null), f([i.b.bound, d("design:type", Function), d("design:paramtypes", [Number]), d("design:returntype", void 0)], t.prototype, "setInputValue", null), f([i.b.bound, d("design:type", Function), d("design:paramtypes", [Object]), d("design:returntype", void 0)], t.prototype, "setUpdateThresholdFunc", null), f([i.b.bound, d("design:type", Function), d("design:paramtypes", [Object]), d("design:returntype", void 0)], t.prototype, "setUpdateValueFunc", null), f([i.b.bound, d("design:type", Function), d("design:paramtypes", [Object]), d("design:returntype", void 0)], t.prototype, "setUpdateStateFunc", null), t
                }(c.a),
                h = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                g = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                m = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                b = function(e) {
                    function t(t, n, o) {
                        var r = e.call(this, new a.a(t, n), o) || this;
                        return r._thresholds = [], r._actions = new y(o.data), r._time = 0, r._currentValue = 0, r._thresholdIndex = 0, r._hasTick = !1, r
                    }
                    return h(t, e), t.prototype.setBehavior = function(e) {
                        this.setConfig(e.config), this.setUpdateValueFunc(e.updateValueFunc), this.setUpdateThresholdFunc(e.updateThresholdFunc), this.setUpdateStateFunc(e.updateStateFunc)
                    }, t.prototype.applyBehavior = function() {
                        this._hasTick || (s.j.get(0).ticker.add(this.handleTick, this), this._hasTick = !0), this._time = 0, this._currentValue = 0, this._thresholdIndex = 0;
                        var e = this.props.config;
                        this.setThresholds(e.get(this.props.targetConfigName))
                    }, t.prototype.thresholdChangeDynamic = function(e) {
                        return this._thresholdIndex < this._thresholds.length - 1 && this._time >= this._thresholds[this._thresholdIndex]
                    }, t.prototype.thresholdChangeStandard = function(e) {
                        return this._thresholdIndex < e.thresholdConfig.length - 1 && this._currentValue >= this.props.inputValue * e.thresholdConfig[this._thresholdIndex + 1].threshold
                    }, t.prototype.setThresholds = function(e) {
                        this._thresholds.length = 0;
                        var t = e.config;
                        if (null !== t)
                            if (t.type === l.c.STANDARD) {
                                if (this._thresholdChangeFunc = this.thresholdChangeStandard, t.duration > 0) return;
                                for (var n = 0; n < e.thresholdConfig.length - 1 && !(this.props.inputValue * e.thresholdConfig[n + 1].threshold > this.props.targetValue); n++) this._thresholds.push(this.props.inputValue * e.thresholdConfig[n + 1].threshold / this.props.targetValue);
                                this._thresholds.push(1)
                            } else if (t.type === l.c.DYNAMIC) {
                            this._thresholdChangeFunc = this.thresholdChangeDynamic;
                            var o = 1,
                                r = 0;
                            for (n = 1; n < e.thresholdConfig.length && !(this.props.inputValue * e.thresholdConfig[n].threshold > this.props.targetValue); n++) 0 === t.duration && (r += e.thresholdConfig[n].config.duration), o++;
                            t.duration > 0 ? r = t.duration : r += e.thresholdConfig[0].config.duration;
                            var i = r / (o + (o > 1 ? 1 : 0));
                            if (this._thresholds.push(i), o > 1) {
                                for (n = 1; n < o - 1; n++) this._thresholds.push(i + this._thresholds[n - 1]);
                                this._thresholds.push(2 * i + this._thresholds[this._thresholds.length - 1])
                            }
                        }
                    }, t.prototype.finish = function() {
                        var e = this;
                        s.j.get(0).ticker.remove(this.handleTick, this), this._hasTick = !1, this.props.updateValueFunc && this.props.updateValueFunc(this.props.targetValue);
                        var t = this.props.config;
                        this.props.updateThresholdFunc && this.props.updateThresholdFunc(t.get(this.props.targetConfigName).thresholdConfig[this._thresholds.length - 1].animName, this._thresholds.length - 1, t.get(this.props.targetConfigName).thresholdConfig[this._thresholdIndex].tierName), this.props.updateStateFunc && s.j.get(0).ticker.addOnce((function() {
                            return e.props.updateStateFunc(l.b.STOP)
                        }), this), this.setTargetValue(0)
                    }, t.prototype.getCurrentScale = function(e) {
                        var t = e.config;
                        if (t.type === l.c.STANDARD) {
                            if (0 === t.duration) {
                                var n = this._thresholdIndex - 1 < 0 ? 0 : this._thresholds[this._thresholdIndex - 1],
                                    o = e.thresholdConfig[this._thresholdIndex].config;
                                return (this._thresholds[this._thresholdIndex] - n) * this._time / o.duration + n
                            }
                            return this._time / t.duration
                        }
                        return this._time / this._thresholds[this._thresholds.length - 1]
                    }, t.prototype.handleTick = function(e) {
                        if (this._currentValue >= this.props.targetValue) this.finish();
                        else {
                            this._time += s.j.get(0).ticker.deltaMS;
                            var t = this.props.config;
                            this._currentValue = this.props.targetValue * this.getCurrentScale(t.get(this.props.targetConfigName));
                            var n = t.get(this.props.targetConfigName).config;
                            this._currentValue >= this.props.targetValue ? this.finish() : this._thresholdChangeFunc(t.get(this.props.targetConfigName)) ? (n.type === l.c.STANDARD && 0 === n.duration && (this._time = 0), this._thresholdIndex++) : (this.props.updateValueFunc && this.props.updateValueFunc(this._currentValue), this.props.updateThresholdFunc && this.props.updateThresholdFunc(t.get(this.props.targetConfigName).thresholdConfig[this._thresholdIndex].animName, this._thresholdIndex, t.get(this.props.targetConfigName).thresholdConfig[this._thresholdIndex].tierName))
                        }
                    }, t.prototype.setTargetValue = function(e) {
                        this._actions.setTargetValue(e)
                    }, t.prototype.setConfig = function(e) {
                        this._actions.setConfig(e)
                    }, t.prototype.setTargetConfigName = function(e) {
                        this._actions.setTargetConfigName(e)
                    }, t.prototype.setInputValue = function(e) {
                        this._actions.setInputValue(e)
                    }, t.prototype.setUpdateThresholdFunc = function(e) {
                        this._actions.setUpdateThresholdFunc(e)
                    }, t.prototype.setUpdateValueFunc = function(e) {
                        this._actions.setUpdateValueFunc(e)
                    }, t.prototype.setUpdateStateFunc = function(e) {
                        this._actions.setUpdateStateFunc(e)
                    }, t.BEHAVIOR_NAME = "rollupBehavior", g([i.b.bound, m("design:type", Function), m("design:paramtypes", [Number]), m("design:returntype", void 0)], t.prototype, "setTargetValue", null), g([i.b.bound, m("design:type", Function), m("design:paramtypes", [Map]), m("design:returntype", void 0)], t.prototype, "setConfig", null), g([i.b.bound, m("design:type", Function), m("design:paramtypes", [String]), m("design:returntype", void 0)], t.prototype, "setTargetConfigName", null), g([i.b.bound, m("design:type", Function), m("design:paramtypes", [Number]), m("design:returntype", void 0)], t.prototype, "setInputValue", null), g([i.b.bound, m("design:type", Function), m("design:paramtypes", [Object]), m("design:returntype", void 0)], t.prototype, "setUpdateThresholdFunc", null), g([i.b.bound, m("design:type", Function), m("design:paramtypes", [Object]), m("design:returntype", void 0)], t.prototype, "setUpdateValueFunc", null), g([i.b.bound, m("design:type", Function), m("design:paramtypes", [Object]), m("design:returntype", void 0)], t.prototype, "setUpdateStateFunc", null), t
                }(p.a),
                _ = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                S = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                v = function() {
                    function e() {
                        this.targetValue = 0, this.config = null, this.targetConfigName = "", this.inputValue = 0
                    }
                    return _([i.f, S("design:type", Number)], e.prototype, "targetValue", void 0), _([i.f, S("design:type", String)], e.prototype, "targetConfigName", void 0), _([i.f, S("design:type", Number)], e.prototype, "inputValue", void 0), _([i.f, S("design:type", Object)], e.prototype, "config", void 0), _([i.f, S("design:type", Object)], e.prototype, "updateValueFunc", void 0), _([i.f, S("design:type", Object)], e.prototype, "updateThresholdFunc", void 0), _([i.f, S("design:type", Object)], e.prototype, "updateStateFunc", void 0), e
                }(),
                C = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                O = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                P = function() {
                    function e(e, t) {
                        this._data = e, this._parentProps = t
                    }
                    return Object.defineProperty(e.prototype, "data", {
                        get: function() {
                            return this._data
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "config", {
                        get: function() {
                            return this._data.config
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "inputValue", {
                        get: function() {
                            return this._data.inputValue
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "targetConfigName", {
                        get: function() {
                            return this._data.targetConfigName
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "targetValue", {
                        get: function() {
                            return this._data.targetValue
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "updateThresholdFunc", {
                        get: function() {
                            return this._data.updateThresholdFunc
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "updateValueFunc", {
                        get: function() {
                            return this._data.updateValueFunc
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "updateStateFunc", {
                        get: function() {
                            return this._data.updateStateFunc
                        },
                        enumerable: !0,
                        configurable: !0
                    }), C([i.d, O("design:type", v), O("design:paramtypes", [])], e.prototype, "data", null), C([i.d, O("design:type", Object), O("design:paramtypes", [])], e.prototype, "config", null), C([i.d, O("design:type", Number), O("design:paramtypes", [])], e.prototype, "inputValue", null), C([i.d, O("design:type", String), O("design:paramtypes", [])], e.prototype, "targetConfigName", null), C([i.d, O("design:type", Number), O("design:paramtypes", [])], e.prototype, "targetValue", null), C([i.d, O("design:type", Object), O("design:paramtypes", [])], e.prototype, "updateThresholdFunc", null), C([i.d, O("design:type", Object), O("design:paramtypes", [])], e.prototype, "updateValueFunc", null), C([i.d, O("design:type", Object), O("design:paramtypes", [])], e.prototype, "updateStateFunc", null), e
                }(),
                w = n(2),
                R = function() {
                    function e(e) {
                        this._mobxUtil = r.a.getInstance(), this._rollupComponent = e;
                        var t = new P(new v, w.b);
                        this._rollupBehavior = new b(w.b, w.a, t), this.addRollupObservers()
                    }
                    return e.prototype.addRollupObservers = function() {
                        var e = this;
                        this._mobxUtil.addReaction("rollupBehavior_show", (function() {
                            return e._rollupComponent.props.targetValue
                        }), (function() {
                            return e.addRollupReactions()
                        })), this._mobxUtil.addReaction("rollupBehavior_stop", (function() {
                            return e._rollupComponent.props.rollupState
                        }), (function(t) {
                            t === l.b.CANCEL && e._rollupBehavior.finish()
                        }))
                    }, e.prototype.addRollupReactions = function() {
                        if (this._rollupComponent.props.targetValue !== this._rollupBehavior.props.targetValue) {
                            var e = {
                                config: this._rollupComponent.props.rollupConfigData,
                                updateValueFunc: this._rollupComponent.setCurrentValue,
                                updateThresholdFunc: this._rollupComponent.setCurrentThreshold,
                                updateStateFunc: this._rollupComponent.setRollupState
                            };
                            this._rollupBehavior.setTargetConfigName(this._rollupComponent.targetConfigName), this._rollupBehavior.setInputValue(this._rollupComponent.props.bet), this._rollupBehavior.setTargetValue(this._rollupComponent.props.targetValue), this._rollupBehavior.setBehavior(e), this._rollupBehavior.applyBehavior()
                        }
                    }, e
                }()
        },
        105: function(e, t, n) {
            "use strict";
            n.d(t, "a", (function() {
                return b
            }));
            var o, r = n(1),
                i = n(47),
                a = n(21),
                s = n(70),
                p = n(2),
                l = n(8),
                c = n(5),
                u = (o = function(e, t) {
                    return (o = Object.setPrototypeOf || {
                            __proto__: []
                        }
                        instanceof Array && function(e, t) {
                            e.__proto__ = t
                        } || function(e, t) {
                            for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                        })(e, t)
                }, function(e, t) {
                    function n() {
                        this.constructor = e
                    }
                    o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
                }),
                f = function(e) {
                    function t(n) {
                        var o = e.call(this, n) || this;
                        return o._selectiveStackingSymbolNames = "", o._selectiveStackingSymbolNames = t.DEFAULT_SCHEMA, o
                    }
                    return u(t, e), t.prototype.setSystem = function() {
                        if (p.b.response.keyValuePairInfo.has(this.reelSetComponent.props.schemaInfoName)) {
                            var t = p.b.response.keyValuePairInfo.get(this.reelSetComponent.props.schemaInfoName);
                            if (void 0 !== t && void 0 !== t.mapping) {
                                var n = t.mapping.get(p.b.betPerPattern.toString());
                                void 0 === n && (n = t.mapping.values().next().value), void 0 !== n && (this._selectiveStackingSymbolNames = n.value)
                            }
                        }
                        e.prototype.setSystem.call(this)
                    }, t.prototype.setReelCellSymbol = function(t, n) {
                        var o = this.reelSetComponent.props;
                        if (null !== o.reelSetConfigData && o.reelSetConfigData.has(o.reelSetName)) {
                            var r = o.reelSetConfigData.get(o.reelSetName);
                            if (void 0 !== r) {
                                var i = r.config.selectiveStackingConfig,
                                    a = parseInt(t.props.parentProps.name.substr(t.props.parentProps.name.length - 1), 10),
                                    s = i.replacementSymbolNames[a],
                                    p = i.selectiveStackingSymbolMap.get(this._selectiveStackingSymbolNames[a]);
                                void 0 !== p && (void 0 !== t.cellDef ? t.cellDef.text === s && (t.cellDef.text = p) : void 0 !== t.stopDef && null !== t.stopDef && t.stopDef.symbolId === s && (t.stopDef.symbolId = p))
                            }
                        }
                        e.prototype.setReelCellSymbol.call(this, t, n)
                    }, t.DEFAULT_SCHEMA = "12345", t
                }(s.a),
                d = n(7),
                y = n(28),
                h = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                g = function(e) {
                    function t() {
                        return null !== e && e.apply(this, arguments) || this
                    }
                    return h(t, e), t.prototype.snapCellsToTartgetLocation = function(e) {
                        var t, n = this.reelSetUtils.getReelSetChildren(this.reelSetComponent),
                            o = this.reelSetUtils.getReelContainers(n, e.props.name),
                            r = 0;
                        if (o.forEach((function(n, o) {
                                n.name === e.props.name + "_" + y.a.CELL_PREFIX + "0" && (t = n, r = o)
                            })), void 0 !== t)
                            if (this.reelSetComponent.props.reelSetType === l.c.INDEPENDENT) t.x = 0, t.y = 0;
                            else {
                                var i = this.reelSetUtils.getYPadding(t, this.offsets);
                                t.y = e.container.y + i
                            }
                        this.reelSetUtils.anchorDisplayObjectsBottomBoundsByIndex(o, r, this.offsets)
                    }, t.prototype.setSystem = function() {
                        var e = this;
                        this.setOffsets(), this.reelSetComponent.reelComponents.forEach((function(t) {
                            switch (t.props.reelType) {
                                case a.c.SPIN:
                                    var n = e.setSpinBehavior(t),
                                        o = e.reelSetComponent.templateContainers[0];
                                    n.templateContainer = o, e.setSpinReactions(t, n);
                                    break;
                                case a.c.TUMBLE:
                            }
                        }))
                    }, t.prototype.getSpinBehaviorCellThresholds = function(e) {
                        var t = 0,
                            n = 0,
                            o = this.reelSetComponent.templateContainers[0];
                        switch (e.props.direction) {
                            case d.a.DOWN:
                                t = 0 - o.height, n = o.height;
                                break;
                            case d.a.UP:
                                t = o.height, n = 0 - o.height;
                                break;
                            case d.a.LEFT:
                            case d.a.RIGHT:
                        }
                        return {
                            cellAddThreshold: t,
                            cellRemoveThreshold: n
                        }
                    }, t
                }(s.a),
                m = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                b = function(e) {
                    function t(t) {
                        var n = e.call(this, t) || this;
                        return n._time = 0, n._reelsStarted = 0, n._reelSetComponent = t.reelSetComponent, n
                    }
                    return m(t, e), t.prototype.execute = function() {
                        e.prototype.execute.call(this), void 0 !== this._reelSetComponent.triggerName && this._reelSetComponent.setStripInfoName(this._reelSetComponent.triggerName), this.createSpinSystem().setSystem(), p.a.gameActions.setReelsStopping(!1), p.a.gameActions.setReelSetState(l.b.SPIN_START_BEGIN), r.j.get(0).ticker.add(this.handleTick, this)
                    }, t.prototype.handleTick = function() {
                        var e = this;
                        this._time += r.j.get(0).ticker.deltaMS, this._reelSetComponent.reelComponents.forEach((function(t) {
                            var n = t.props.startDelay;
                            t.props.state !== c.a.START && e._time >= n && (p.a.gameActions.setReelState(t.props.name, c.a.START), t.setState(c.a.START), t.setReelState(a.b.SPIN_BEGIN), e._reelsStarted++)
                        })), this._reelsStarted >= this._reelSetComponent.props.columns && (r.j.get(0).ticker.remove(this.handleTick, this), this._time = 0, this._reelsStarted = 0, this.resolveCompleted())
                    }, t.prototype.createSpinSystem = function() {
                        if (null !== this._reelSetComponent.props.reelSetConfigData && this._reelSetComponent.props.reelSetConfigData.has(this._reelSetComponent.props.reelSetName)) {
                            var e = this._reelSetComponent.props.reelSetConfigData.get(this._reelSetComponent.props.reelSetName);
                            if (void 0 !== e) {
                                if (void 0 !== e.config.selectiveStackingConfig) return new f(this._reelSetComponent);
                                if (this._reelSetComponent.props.reelSetType === l.c.INDEPENDENT) return new g(this._reelSetComponent)
                            }
                        }
                        return new s.a(this._reelSetComponent)
                    }, t.COMMAND_NAME = "reelSpinCommand", t
                }(i.a)
        },
        110: function(e, t, n) {
            "use strict";
            n.d(t, "a", (function() {
                return u
            }));
            var o, r = n(10),
                i = n(1),
                a = n(47),
                s = n(2),
                p = n(5),
                l = n(8),
                c = (o = function(e, t) {
                    return (o = Object.setPrototypeOf || {
                            __proto__: []
                        }
                        instanceof Array && function(e, t) {
                            e.__proto__ = t
                        } || function(e, t) {
                            for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                        })(e, t)
                }, function(e, t) {
                    function n() {
                        this.constructor = e
                    }
                    o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
                }),
                u = function(e) {
                    function t(t) {
                        var n = e.call(this, t) || this;
                        return n._time = 0, n.reelSetComponent = t.reelSetComponent, n
                    }
                    return c(t, e), t.prototype.execute = function() {
                        var n = this;
                        e.prototype.execute.call(this), s.a.gameActions.setReelSetState(l.b.SPIN_STOP_BEGIN), r.a.getInstance().addWhen(t.COMMAND_NAME + "_onAllReelsStopped", (function() {
                            return s.b.reelSetState === l.b.SPIN_STOP_END
                        }), (function() {
                            n.resolveCompleted(), n.resetCommand()
                        })), this.reelSetComponent.reelComponents.forEach((function(e, t) {
                            n.setReelStopProperty(e, t)
                        })), i.j.get(0).ticker.add(this.handleTick, this), s.a.gameActions.setReelsStopping(!0)
                    }, t.prototype.setReelStopProperty = function(e, t) {
                        s.a.gameActions.setReelState(e.props.name, p.a.PROCESSING), e.setState(p.a.PROCESSING), this.onReelStopping(e, t), this.onReelStop(e, t)
                    }, t.prototype.handleTick = function() {
                        var e = this;
                        this._time += i.j.get(0).ticker.deltaMS, this.reelSetComponent.reelComponents.forEach((function(t) {
                            e.onReelStopTick(t)
                        }))
                    }, t.prototype.onReelStopTick = function(e) {
                        var t = e.props.stopDelay;
                        this.reelStopDelayReached(e, t) && (s.a.gameActions.setReelState(e.props.name, p.a.STOPPING), e.setState(p.a.STOPPING))
                    }, t.prototype.reelStopDelayReached = function(e, t) {
                        return e.props.state === p.a.PROCESSING && this._time >= t
                    }, t.prototype.onReelStopping = function(e, n) {
                        var o = this;
                        r.a.getInstance().addWhen(t.COMMAND_NAME + "_onReelStopping", (function() {
                            return e.props.state === p.a.STOPPING
                        }), (function() {
                            o.handleReelStopping(n)
                        }))
                    }, t.prototype.onReelStop = function(e, n) {
                        var o = this;
                        r.a.getInstance().addWhen(t.COMMAND_NAME + "_onReelStopped", (function() {
                            return e.props.state === p.a.STOPPED
                        }), (function() {
                            o.handleReelStop(n)
                        }))
                    }, t.prototype.handleReelStopping = function(e) {
                        this.playReelStopAudios(e)
                    }, t.prototype.handleReelStop = function(e) {}, t.prototype.resetCommand = function() {
                        i.j.get(0).ticker.remove(this.handleTick, this), this._time = 0
                    }, t.prototype.playReelStopAudios = function(e) {
                        var t = e + 1;
                        i.i.execute("onReel" + t.toString() + "Land"), this.reelSetComponent.props.columns === t && "BaseGame" === s.b.response.outcomeDetail.stage && i.i.execute("onBaseGameSpinEnd")
                    }, t.COMMAND_NAME = "reelStopCommand", t
                }(a.a)
        },
        12: function(e, t, n) {
            "use strict";
            n.d(t, "a", (function() {
                return o
            })), n.d(t, "b", (function() {
                return p
            }));
            var o, r = n(0),
                i = n(8),
                a = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                s = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                };
            ! function(e) {
                e[e.NONE = 0] = "NONE", e[e.BET = 1] = "BET", e[e.AUTO_SPIN = 2] = "AUTO_SPIN", e[e.GAME = 3] = "GAME", e[e.CUSTOM_1 = 4] = "CUSTOM_1", e[e.CUSTOM_2 = 5] = "CUSTOM_2", e[e.CUSTOM_3 = 6] = "CUSTOM_3"
            }(o || (o = {}));
            var p = function() {
                function e() {
                    this.win = "", this.patternsBet = 0, this.betPerPattern = 0, this.reelSetState = i.b.IDLE, this.reelStates = new Map, this.reelDimensions = [], this.skipped = !1, this.pickerInput = {}, this.spins = 0, this.controlsEnabled = !1, this.settingsShown = o.NONE, this.autoSpinOptions = {
                        steps: 0,
                        lossLimit: 0
                    }, this.slamStopManualEnabled = !1, this.slamStopFullyDisabled = !1, this.slamStopReelsAreaClickEnabled = !1, this.scaleFactor = new Map, this.fsIncrementTriggered = !1, this.fsCount = 0, this.reelsStopping = !1, this.autoSpinStarted = !1, this.replayTurbo = !1, this.replaySpeed = 2, this.gameReInit = !1, this.muteEnabled = !1
                }
                return a([r.f, s("design:type", String)], e.prototype, "win", void 0), a([r.f, s("design:type", Number)], e.prototype, "patternsBet", void 0), a([r.f, s("design:type", Number)], e.prototype, "betPerPattern", void 0), a([r.f, s("design:type", Number)], e.prototype, "reelSetState", void 0), a([r.f, s("design:type", Map)], e.prototype, "reelStates", void 0), a([r.f, s("design:type", Array)], e.prototype, "reelDimensions", void 0), a([r.f, s("design:type", Boolean)], e.prototype, "skipped", void 0), a([r.f, s("design:type", Number)], e.prototype, "spins", void 0), a([r.f, s("design:type", Boolean)], e.prototype, "controlsEnabled", void 0), a([r.f, s("design:type", Number)], e.prototype, "settingsShown", void 0), a([r.f, s("design:type", Object)], e.prototype, "pickerInput", void 0), a([r.f, s("design:type", Object)], e.prototype, "autoSpinOptions", void 0), a([r.f, s("design:type", Boolean)], e.prototype, "slamStopManualEnabled", void 0), a([r.f, s("design:type", Boolean)], e.prototype, "slamStopFullyDisabled", void 0), a([r.f, s("design:type", Boolean)], e.prototype, "slamStopReelsAreaClickEnabled", void 0), a([r.f, s("design:type", Map)], e.prototype, "scaleFactor", void 0), a([r.f, s("design:type", Boolean)], e.prototype, "fsIncrementTriggered", void 0), a([r.f, s("design:type", Number)], e.prototype, "fsCount", void 0), a([r.f, s("design:type", Boolean)], e.prototype, "reelsStopping", void 0), a([r.f, s("design:type", Boolean)], e.prototype, "autoSpinStarted", void 0), a([r.f, s("design:type", Boolean)], e.prototype, "replayTurbo", void 0), a([r.f, s("design:type", Boolean)], e.prototype, "muteEnabled", void 0), e
            }()
        },
        132: function(e, t, n) {
            "use strict";
            n.d(t, "a", (function() {
                return u
            }));
            var o = n(10),
                r = n(108),
                i = n(1),
                a = n(9),
                s = n(114),
                p = n(6),
                l = n(2),
                c = n(161),
                u = function() {
                    function e(e, t) {
                        var n = this;
                        this._mobxUtils = o.a.getInstance(), this._genericUtils = r.a.getInstance(), this._query = "", this.onGameReInit = function() {
                            l.a.controlActions.setGameReInit(!0)
                        }, this.consoleReady = function() {
                            n.setBetReactions(), n.registerConsoleControls()
                        }, this.queryConditionsMet = function() {
                            return !n._genericUtils.isEmptyObject(l.b.paytable.paytableStatistics) && !n._genericUtils.isEmptyObject(l.b.paytable.awardCapInfo.currencyCap)
                        }, this.makeQueryParams = function() {
                            var e = l.b.paytable.paytableStatistics,
                                t = i.c.format(l.b.paytable.awardCapInfo.currencyCap.awardCap, 1),
                                o = i.f.props.language.replace("_", "-");
                            if (n._query = "?awardCap=" + t + "&minRTP=" + e.minRTP.toLocaleString(o, {
                                    minimumFractionDigits: 2
                                }) + "&maxRTP=" + e.maxRTP.toLocaleString(o, {
                                    minimumFractionDigits: 2
                                }) + "&singleRTP=" + e.singleRTP + "&minSingleRTP=" + e.minSingleRTP.toLocaleString(o, {
                                    minimumFractionDigits: 2
                                }) + "&maxSingleRTP=" + e.maxSingleRTP.toLocaleString(o, {
                                    minimumFractionDigits: 2
                                }), l.b.paytable.prizesInfo.size > 0) {
                                var r = new Array;
                                l.b.paytable.prizesInfo.forEach((function(e) {
                                    e.prizes.forEach((function(e) {
                                        var t = new Array;
                                        e.prizesPay.forEach((function(e) {
                                            var n = "";
                                            "number" == typeof e.value && (n = i.c.format(e.value * l.b.betPerPattern)), t.push({
                                                count: e.count,
                                                value: e.value,
                                                valueFormated: n
                                            })
                                        })), r.push({
                                            name: e.name,
                                            prizesPay: t
                                        })
                                    }))
                                })), n._post = r
                            }
                        }, this.onConsoleChange = function(e) {
                            var t = e.option,
                                r = e.value;
                            switch (t) {
                                case a.a.PATTERNS_BET_NAME:
                                    l.a.controlActions.setPatternsBet(Number(r));
                                    break;
                                case a.a.BET_PER_PATTERN_NAME:
                                    l.a.controlActions.setBetPerPattern(Number(r));
                                    break;
                                case a.a.DEBUG_NAME:
                                    i.j.toggleDebug(0, "1" === r);
                                    break;
                                case a.a.PAYTABLE_NAME:
                                    s.a.getInstance().show(n._paytableUrl + n._query, t, n._post);
                                    break;
                                case a.a.HOW_TO_PLAY_NAME:
                                    s.a.getInstance().show(n._helpUrl, t);
                                    break;
                                case a.a.SOUND_NAME:
                                    l.a.controlActions.setMuteEnabled("1" === r);
                                    break;
                                case a.a.START_REPLAY_NAME:
                                    l.a.controlActions.setSpins(Number(l.b.rcTotalRounds)), a.a.getInstance().enableConsoleControl("turbo", !0), o.a.getInstance().addWhen("replaySpinsSet", (function() {
                                        return 0 === l.b.spins && "onEndGame" === l.b.ixfState
                                    }), (function() {
                                        l.a.controlActions.setReplayTurbo(!1), a.a.getInstance().enableConsoleControl("turbo", !1)
                                    }));
                                    break;
                                case a.a.TURBO_NAME:
                                    l.a.controlActions.setReplayTurbo("1" === r)
                            }
                        }, this.consoleConditionsMet = function() {
                            return void 0 !== l.b.patternsBet && void 0 !== l.b.betPerPattern
                        }, a.a.getInstance().consoleChannel.subscribe(a.a.GAME_CONTROL, this.onConsoleChange), a.a.getInstance().gameChannel.subscribe("Game.ReInit", this.onGameReInit), this._mobxUtils.addReaction("patternsBet", (function() {
                            return l.b.patternsBet
                        }), l.a.controlActions.setPatternsBet), this._mobxUtils.addReaction("betPerPattern", (function() {
                            return l.b.betPerPattern
                        }), l.a.controlActions.setBetPerPattern), this._mobxUtils.addReaction("gameReInitReset", (function() {
                            return i.l.ixfState
                        }), (function(e) {
                            if ("onBeforeShowStage" === e && !0 === l.b.gameReInit) {
                                var t = l.b.response.patternSliderInput,
                                    o = t.betPerPattern,
                                    r = t.patternsBet;
                                l.a.controlActions.setPatternsBet(r), l.a.controlActions.setBetPerPattern(o), a.a.getInstance().setStake([n._totalStake, n._totalBetFormatted]), l.a.controlActions.setGameReInit(!1)
                            }
                        })), this._mobxUtils.addWhen("consoleProxy", this.consoleConditionsMet, this.consoleReady), this._paytableUrl = e + "_" + i.f.props.language + ".html", this._helpUrl = t + "_" + i.f.props.language + ".html", this._mobxUtils.addWhen("queryParams", this.queryConditionsMet, this.makeQueryParams), this._mobxUtils.addReaction("betQueryParams", (function() {
                            return l.b.betPerPattern
                        }), this.makeQueryParams), this._mobxUtils.addWhen("isReplaySet", (function() {
                            return l.b.gcName.length > 0
                        }), (function() {
                            !0 === l.b.rcIsReplay && c.a.apply()
                        }))
                    }
                    return e.prototype.setBetReactions = function() {
                        var e = this;
                        this._mobxUtils.addReaction("patternsBet_Bet", (function() {
                            return l.b.patternsBet
                        }), (function(t) {
                            var n = a.a.getInstance();
                            n.setStake([e._totalStake, e._totalBetFormatted]), n.setPatternsBet([t, t.toString()])
                        })), this._mobxUtils.addReaction("betPerPattern_Bet", (function() {
                            return l.b.betPerPattern
                        }), (function(t) {
                            var n = a.a.getInstance();
                            n.setStake([e._totalStake, e._totalBetFormatted]), n.setBetPerPattern([t, i.c.format(l.b.betPerPattern)])
                        })), this._mobxUtils.addReaction("muteEnabled_Console", (function() {
                            return l.b.muteEnabled
                        }), (function(e) {
                            a.a.getInstance().setSound([Number(e), String(e)]), i.i.toggleAllSounds(e)
                        })), this._mobxUtils.addReaction("controlsEnabled", (function() {
                            return l.b.controlsEnabled
                        }), (function(e) {
                            a.a.getInstance().enableConsoleControls(e)
                        }))
                    }, e.prototype.registerConsoleControls = function() {
                        var t = [];
                        void 0 !== l.b.patternSteps && l.b.patternSteps.forEach((function(e) {
                            t.push(e.toString())
                        }));
                        var n = [],
                            o = [];
                        (void 0 !== l.b.betSteps && l.b.betSteps.forEach((function(e) {
                            n.push(e.toString()), o.push(i.c.format(e))
                        })), void 0 === i.l.response.Preference && (l.a.controlActions.setMuteEnabled(l.b.muteEnabled), i.i.tags.forEach((function(e) {
                            return l.a.controlActions.setTagMuteEnabled(e, !1)
                        }))), a.a.getInstance().registerStake(), a.a.getInstance().setStake([this._totalStake, this._totalBetFormatted]), a.a.getInstance().registerPatternsBet(l.b.patternsBet, t, t), a.a.getInstance().registerBetPerPattern(l.b.betPerPattern, o, n), a.a.getInstance().registerPaytable(), a.a.getInstance().registerHowToPlay(), !0 === l.b.rcIsReplay && (a.a.getInstance().registerStartReplay(), a.a.getInstance().registerFastForward(), a.a.getInstance().enableConsoleControl("turbo", !1)), a.a.getInstance().registerSound(!l.b.muteEnabled), a.a.getInstance().registerDebug(), void 0 !== l.b.muteEnabled) && (l.a.controlActions.setMuteEnabled(l.b.muteEnabled), a.a.getInstance().setSound([Number(l.b.muteEnabled), String(l.b.muteEnabled)]), p.f.delayedCall(e.TIME_DELAY / 1e3, (function() {
                            i.i.toggleAllSounds(l.b.muteEnabled)
                        })));
                        l.b.controlsEnabled ? a.a.getInstance().enableConsoleControls(!0) : a.a.getInstance().enableConsoleControls(!1)
                    }, Object.defineProperty(e.prototype, "_totalStake", {
                        get: function() {
                            return parseFloat((l.b.patternsBet * l.b.betPerPattern * l.b.paytable.denominationList[0].value).toFixed(2))
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "_totalBet", {
                        get: function() {
                            return l.b.patternsBet * l.b.betPerPattern
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "_totalBetFormatted", {
                        get: function() {
                            return i.c.format(this._totalBet)
                        },
                        enumerable: !0,
                        configurable: !0
                    }), e.TIME_DELAY = 800, e
                }()
        },
        133: function(e, t, n) {
            "use strict";
            n.d(t, "a", (function() {
                return Y
            }));
            var o, r = n(99),
                i = n(10),
                a = n(1),
                s = n(47),
                p = n(34),
                l = n(2),
                c = n(5),
                u = n(8),
                f = n(16),
                d = n(66),
                y = n(7),
                h = n(28),
                g = n(38),
                m = n(24),
                b = n(32),
                _ = function() {
                    function e(e) {
                        this._graphicsUtils = d.a.getInstance(), this._reelSetComponent = e
                    }
                    return Object.defineProperty(e.prototype, "reelSetComponent", {
                        get: function() {
                            return this._reelSetComponent
                        },
                        enumerable: !0,
                        configurable: !0
                    }), e.prototype.initReelComponent = function(e, t, n) {
                        for (; e.newReelCellComponents.length > 0;) {
                            var o = e.newReelCellComponents[e.newReelCellComponents.length - 1];
                            switch (e.props.direction) {
                                case y.a.DOWN:
                                    o = e.newReelCellComponents[e.newReelCellComponents.length - 1], e.reelCellComponents.unshift(o), this.setReelCellSymbol(o, t, n), e.newReelCellComponents.pop();
                                    break;
                                case y.a.UP:
                                    o = e.newReelCellComponents[0], e.reelCellComponents.push(o), this.setReelCellSymbol(o, t, n), e.newReelCellComponents.shift();
                                    break;
                                case y.a.LEFT:
                                case y.a.RIGHT:
                            }
                        }
                    }, e.prototype.setSystem = function() {}, e.prototype.setReelCellSymbol = function(e, t, n) {
                        var o;
                        if (void 0 !== e.cellDef ? o = t.get(e.cellDef.text) : void 0 !== e.stopDef && null !== e.stopDef && (o = t.get(e.stopDef.symbolId)), void 0 !== o && "" !== o.swapName && (o = t.get(o.swapName)), void 0 !== o) {
                            var r = void 0;
                            if (void 0 !== (r = null !== o.symbolsConfigDef && o.symbolsConfigDef.suffix.length > 0 ? o.getPooledObject(o.name + o.symbolsConfigDef.suffix + m.a.STATIC_SUFFIX) : o.getPooledObject(o.name + m.a.STATIC_SUFFIX))) {
                                var i = r.object,
                                    a = n.find((function(e) {
                                        return void 0 !== o && null !== o.symbolsConfigDef && e.name === o.symbolsConfigDef.symbolBounds
                                    }));
                                void 0 !== a && f.a.getInstance().createCellBounds(e, a);
                                var s = e.container;
                                null !== o.symbolsConfigDef && (o.symbolsConfigDef.isGiant || o.symbolsConfigDef.isBleeding ? o.symbolsConfigDef.isBleeding && (i.x = (s.width - i.width) / 2, i.y = (s.height - i.height) / 2) : this._graphicsUtils.centerToContainer(s, i), e.offsetX = o.symbolsConfigDef.offsetX, e.offsetY = o.symbolsConfigDef.offsetY, s.zIndex = o.symbolsConfigDef.layer), s.addChild(i), e.setPoolObjectName(r.name + "_" + r.id)
                            }
                        } else {
                            if (void 0 === e.container) {
                                var p = e;
                                n.length > 0 && (p.container = this._graphicsUtils.createEmptyContainer(n[0].width, n[0].height), p.container.children[0].name = b.a.BOUNDS_NAME)
                            }
                            f.a.getInstance().setReelCellText(e)
                        }
                    }, e.prototype.handleNewOutcome = function(e) {
                        if (void 0 === e.reelDef) throw new Error("Reel Def is undefined");
                        if (void 0 === e.stripDef) throw new Error("Strip Def is undefined. Please make sure you're using the correct backend and Reel Set name");
                        for (var t = 0; t < e.props.rows; t++) {
                            var n = e.reelDef.cells[t];
                            (i = e.createReelCell()).setCellIndex(t), i.setName(e.props.name + "_" + h.a.CELL_PREFIX + t);
                            var o = n.stripIndex;
                            i.setStopIndex(o), e.newReelCellComponents.push(i)
                        }
                        for (t = 0; t < e.props.topPadding; t++) {
                            var r = e.newReelCellComponents[0],
                                i = e.createReelCell();
                            e.setCellStripIndex(i, r, !1), i.setName(g.a.TOP_PADDING_NAME + e.props.name + "_" + h.a.CELL_PREFIX + t), e.newReelCellComponents.unshift(i)
                        }
                        for (t = 0; t < e.props.bottomPadding; t++) {
                            r = e.newReelCellComponents[e.newReelCellComponents.length - 1], i = e.createReelCell();
                            e.setCellStripIndex(i, r, !0), i.setName(g.a.BOTTOM_PADDING_NAME + e.props.name + "_" + h.a.CELL_PREFIX + t), e.newReelCellComponents.push(i)
                        }
                    }, e
                }(),
                S = (o = function(e, t) {
                    return (o = Object.setPrototypeOf || {
                            __proto__: []
                        }
                        instanceof Array && function(e, t) {
                            e.__proto__ = t
                        } || function(e, t) {
                            for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                        })(e, t)
                }, function(e, t) {
                    function n() {
                        this.constructor = e
                    }
                    o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
                }),
                v = function(e) {
                    function t(n) {
                        var o = e.call(this, n) || this;
                        return o._selectiveStackingSymbolNames = "", o._selectiveStackingSymbolNames = t.DEFAULT_SCHEMA, o
                    }
                    return S(t, e), t.prototype.setSystem = function() {
                        var n = this.reelSetComponent.props.data;
                        if (l.b.response.keyValuePairInfo.has(n.schemaInfoName)) {
                            var o = l.b.response.keyValuePairInfo.get(n.schemaInfoName + t.SCHEMA_POSTFIX);
                            if (void 0 === o && (o = l.b.response.keyValuePairInfo.get(n.schemaInfoName)), void 0 !== o && void 0 !== o.mapping) {
                                var r = o.mapping.get(l.b.betPerPattern.toString());
                                void 0 === r && (r = o.mapping.values().next().value), void 0 !== r && (this._selectiveStackingSymbolNames = r.value)
                            }
                        }
                        e.prototype.setSystem.call(this)
                    }, t.prototype.setReelCellSymbol = function(t, n, o) {
                        var r = t.props.parentProps.parentProps;
                        if (null !== r.reelSetConfigData && r.reelSetConfigData.has(r.reelSetName)) {
                            var i = r.reelSetConfigData.get(r.reelSetName);
                            if (void 0 !== i) {
                                var a = i.config.selectiveStackingConfig,
                                    s = parseInt(t.props.parentProps.name.substr(t.props.parentProps.name.length - 1), 10),
                                    p = a.replacementSymbolNames[s],
                                    l = a.selectiveStackingSymbolMap.get(this._selectiveStackingSymbolNames[s]);
                                void 0 !== l && (void 0 !== t.cellDef ? t.cellDef.text === p && (t.cellDef.text = l) : void 0 !== t.stopDef && null !== t.stopDef && t.stopDef.symbolId === p && (t.stopDef.symbolId = l))
                            }
                        }
                        e.prototype.setReelCellSymbol.call(this, t, n, o)
                    }, t.DEFAULT_SCHEMA = "12345", t.SCHEMA_POSTFIX = ".Current", t
                }(_),
                C = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                O = function(e) {
                    function t(t) {
                        var n = e.call(this, t) || this;
                        return n._reelSetUtils = f.a.getInstance(), n._reelSetComponent = t.reelSetComponent, n
                    }
                    return C(t, e), t.prototype.execute = function() {
                        var n = this;
                        e.prototype.execute.call(this), l.a.gameActions.setReelSetState(u.b.SPIN_STOP_BEGIN), i.a.getInstance().addWhen(t.COMMAND_NAME + "_onAllReelsStopped", (function() {
                            return l.b.reelSetState === u.b.SPIN_STOP_END
                        }), (function() {
                            n.stopSounds(), n.resetReelSet(), n.initReelSet(), n.layoutReelSet(), n.resolveCompleted()
                        })), this._reelSetComponent.reelComponents.forEach((function(e) {
                            e.props.state === c.a.START && (l.a.gameActions.setReelState(e.props.name, c.a.PROCESSING), e.setState(c.a.PROCESSING), l.a.gameActions.setReelState(e.props.name, c.a.CANCEL), e.setState(c.a.CANCEL))
                        }))
                    }, t.prototype.stopSounds = function() {
                        "BaseGame" === l.b.response.outcomeDetail.stage && a.i.execute("onBaseGameSpinEnd")
                    }, t.prototype.resetReelSet = function() {
                        this._reelSetUtils.resetReelCells(this._reelSetComponent);
                        var e = this._reelSetComponent.container.getChildByName(p.a.REEL_SET_CONTAINER),
                            t = e.getChildByName(p.a.REEL_SET_CONTAINER_BOUNDS);
                        e.removeChildren(), t.visible = !0, e.addChild(t)
                    }, t.prototype.initReelSet = function() {
                        var e = this,
                            t = this.createSpinSystem();
                        t.setSystem(), this._reelSetComponent.reelComponents.forEach((function(n) {
                            t.initReelComponent(n, e._reelSetComponent.symbolSetComponent.symbols, e._reelSetComponent.templateContainers)
                        }))
                    }, t.prototype.layoutReelSet = function() {
                        var e = this,
                            t = this._reelSetComponent.container.getChildByName(p.a.REEL_SET_CONTAINER);
                        this._reelSetComponent.reelComponents.forEach((function(n, o) {
                            e._reelSetUtils.positionReelCells(n, t)
                        }))
                    }, t.prototype.createSpinSystem = function() {
                        if (null !== this._reelSetComponent.props.reelSetConfigData && this._reelSetComponent.props.reelSetConfigData.has(this._reelSetComponent.props.reelSetName)) {
                            var e = this._reelSetComponent.props.reelSetConfigData.get(this._reelSetComponent.props.reelSetName);
                            if (void 0 !== e)
                                if (void 0 !== e.config.selectiveStackingConfig) return new v(this._reelSetComponent)
                        }
                        return new _(this._reelSetComponent)
                    }, t.COMMAND_NAME = "reelForceStopCommand", t
                }(s.a),
                P = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                w = function(e) {
                    function t(t) {
                        var n = e.call(this, t) || this;
                        return n._stateRef = ["IDLE", "START", "STARTED", "PROCESSING", "STOPPING", "STOPPED", "CANCEL"], n._reelSetComponent = t.reelSetComponent, n._readyToSlamStopTotal = 0, n._reelReactions = [], n.execute(), n
                    }
                    return P(t, e), t.prototype.execute = function() {
                        e.prototype.execute.call(this);
                        for (var t = this._reelSetComponent.reelComponents, n = t.length, o = 0; o < n; o++) {
                            var r = t[o];
                            r.props.movementState >= c.a.STARTED ? this._readyToSlamStopTotal++ : this.reelCheckMovementStateReaction(o, r)
                        }
                        this._readyToSlamStopTotal === n && this.whenReelsReadyToSlamStop(n, t)
                    }, t.prototype.reelCheckMovementStateReaction = function(e, t) {
                        var n = this,
                            o = i.a.getInstance().addReaction("reel" + e + "_movementStateCheck", (function() {
                                return t.props.movementState >= c.a.STARTED
                            }), (function() {
                                n._readyToSlamStopTotal++;
                                var e = n._reelSetComponent.reelComponents.length;
                                n._readyToSlamStopTotal === e && n.whenReelsReadyToSlamStop(e, n._reelSetComponent.reelComponents)
                            }));
                        this._reelReactions.push(o)
                    }, t.prototype.whenReelsReadyToSlamStop = function(e, n) {
                        for (var o = this, r = 0; r < e; r++) {
                            var a = n[r];
                            a.props.movementState < c.a.STOPPING && (l.a.gameActions.setReelState(a.props.name, c.a.STOPPING), a.setState(c.a.STOPPING))
                        }
                        var s = this._reelReactions.length;
                        for (r = 0; r < s; r++) i.a.getInstance().disposeReaction(this._reelReactions[r]);
                        i.a.getInstance().addWhen(t.COMMAND_NAME + "_onAllReelsStopped", (function() {
                            return l.b.reelSetState === u.b.SPIN_STOP_END
                        }), (function() {
                            o.stopSounds(), o.resolveCompleted()
                        }))
                    }, t.prototype.stopSounds = function() {
                        "BaseGame" === l.b.response.outcomeDetail.stage && a.i.execute("onBaseGameSpinEnd")
                    }, t.COMMAND_NAME = "reelSlamStopCommand", t
                }(s.a),
                R = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                N = function(e) {
                    function t(t, n, o, r, i) {
                        var a = e.call(this, t) || this;
                        if (a._reelSetUtils = f.a.getInstance(), a._reelSetComponent = t.reelSetComponent, a._templateContainerNames = o, a._reelSetComponent.setReelSetComponent(n, r, i), a._reelSetComponent.templateContainers.length <= 0) {
                            var s = a._reelSetUtils.getTemplateContainers(a._reelSetComponent, a._templateContainerNames);
                            a._reelSetComponent.templateContainers = s
                        }
                        return a
                    }
                    return R(t, e), t.prototype.execute = function() {
                        var t = this;
                        e.prototype.execute.call(this), l.a.gameActions.setReelSetState(u.b.IDLE);
                        var n = this.createSpinSystem();
                        n.setSystem(), this._reelSetComponent.reelComponents.forEach((function(e) {
                            l.a.gameActions.setReelState(e.props.name, c.a.IDLE), n.handleNewOutcome(e), n.initReelComponent(e, t._reelSetComponent.symbolSetComponent.symbols, t._reelSetComponent.templateContainers), t.positionReelCells(e)
                        })), this.resolveCompleted()
                    }, t.prototype.createSpinSystem = function() {
                        if (null !== this._reelSetComponent.props.reelSetConfigData && this._reelSetComponent.props.reelSetConfigData.has(this._reelSetComponent.props.reelSetName)) {
                            var e = this._reelSetComponent.props.reelSetConfigData.get(this._reelSetComponent.props.reelSetName);
                            if (void 0 !== e)
                                if (void 0 !== e.config.selectiveStackingConfig) return new v(this._reelSetComponent)
                        }
                        return new _(this._reelSetComponent)
                    }, t.prototype.positionReelCells = function(e) {
                        var t = this._reelSetComponent.container.getChildByName(p.a.REEL_SET_CONTAINER);
                        this._reelSetComponent.props.reelSetType === u.c.INDEPENDENT ? this._reelSetUtils.positionIndependentReelCells(e, t) : this._reelSetUtils.positionReelCells(e, t)
                    }, t.COMMAND_NAME = "reelInitCommand", t
                }(s.a),
                I = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                T = function(e) {
                    function t(t) {
                        var n = e.call(this, t) || this;
                        return n._reelSetComponent = t.reelSetComponent, n
                    }
                    return I(t, e), t.prototype.execute = function() {
                        e.prototype.execute.call(this), this.resetReelSet(), this.resolveCompleted()
                    }, t.prototype.resetReelSet = function() {
                        f.a.getInstance().resetReelCells(this._reelSetComponent);
                        var e = this._reelSetComponent.container.getChildByName(p.a.REEL_SET_CONTAINER),
                            t = e.getChildByName(p.a.REEL_SET_CONTAINER_BOUNDS);
                        e.removeChildren(), t.visible = !0, e.addChild(t)
                    }, t.COMMAND_NAME = "reelResetCommand", t
                }(s.a),
                A = n(105),
                j = n(110),
                E = n(45),
                D = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                x = function(e) {
                    function t(t) {
                        var n = e.call(this, t) || this;
                        return n._ixfProxy = new E.a, n
                    }
                    return D(t, e), t.prototype.execute = function() {
                        var n = this;
                        if (e.prototype.execute.call(this), this.playAudio(), this._ixfProxy.game.publish(t.GAME_PLAY_DATA, {
                                ActionInput: {
                                    Action: "play"
                                },
                                PatternSliderInput: {
                                    BetPerPattern: l.b.betPerPattern,
                                    PatternsBet: l.b.patternsBet
                                }
                            }), this.resolveCompleted(), this._payload.reelSetComponent.props.parentProps.replayTurbo) var o = i.a.getInstance().addReaction("slamStopReelStateListener", (function() {
                            return n._payload.reelSetComponent.props.parentProps.reelsStopping || n._payload.reelSetComponent.props.parentProps.reelSetState
                        }), (function() {
                            n._payload.reelSetComponent.props.parentProps.reelsStopping ? (i.a.getInstance().disposeReaction(o), n._payload.reelSetComponent.commands.slamStopCommand()) : n._payload.reelSetComponent.props.parentProps.reelSetState !== u.b.SPIN_START_BEGIN && n._payload.reelSetComponent.props.parentProps.reelSetState !== u.b.IDLE || i.a.getInstance().disposeReaction(o)
                        }))
                    }, t.prototype.playAudio = function() {
                        "FreeSpin" === l.b.response.outcomeDetail.nextStage && a.i.execute("onBonusGameSpinStart")
                    }, t.GAME_PLAY_DATA = "Game.PlayData", t
                }(s.a),
                B = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                M = function(e) {
                    function t(t, n) {
                        var o = e.call(this, [t, n]) || this;
                        return o._show = n, o._view = t, o
                    }
                    return B(t, e), t.prototype.execute = function() {
                        e.prototype.execute.call(this), this._view.container.visible = this._show, this.resolveCompleted()
                    }, t
                }(s.a),
                k = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                F = function(e) {
                    function t() {
                        var t = e.call(this) || this;
                        return t._ixfProxy = new E.a, t
                    }
                    return k(t, e), t.prototype.execute = function() {
                        e.prototype.execute.call(this), this._ixfProxy.game.publish(t.GAME_DEDUCT_STAKE, parseFloat((l.b.patternsBet * l.b.betPerPattern * l.b.paytable.denominationList[0].value).toFixed(2))), this.resolveCompleted()
                    }, t.GAME_DEDUCT_STAKE = "Game.DeductStake", t
                }(s.a),
                L = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                U = function(e) {
                    function t(t) {
                        var n = e.call(this, [t]) || this;
                        return n._ixfProxy = new E.a, n._playModeSupported = t, n
                    }
                    return L(t, e), t.prototype.execute = function() {
                        e.prototype.execute.call(this), this._ixfProxy.game.publish(t.GAME_CAPABILITIES, {
                            switchPlayModeSupport: this._playModeSupported
                        }), this.resolveCompleted()
                    }, t.GAME_CAPABILITIES = "Game.Capabilities", t
                }(s.a),
                G = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                V = function(e) {
                    function t() {
                        var t = e.call(this) || this;
                        return t._ixfProxy = new E.a, t
                    }
                    return G(t, e), t.prototype.execute = function() {
                        e.prototype.execute.call(this), this._ixfProxy.game.publish(t.GAME_RE_INIT, {
                            gameConfig: {
                                wagerType: "BUY"
                            }
                        }), this.resolveCompleted()
                    }, t.GAME_RE_INIT = "Game.ReInit", t
                }(s.a),
                W = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                z = function(e) {
                    function t(t) {
                        var n = e.call(this, [t]) || this;
                        return n._view = t, n
                    }
                    return W(t, e), t.prototype.execute = function() {
                        e.prototype.execute.call(this), this._view.container.children.forEach((function(e) {
                            void 0 !== a.e.props.layout.get(e.name) && (e.visible = !1), "reelSetContainer" === e.name && (e.children[0].visible = !1)
                        })), this.resolveCompleted()
                    }, t
                }(s.a),
                H = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                X = function(e) {
                    function t(t) {
                        var n = e.call(this, [t]) || this;
                        return n._view = t, n
                    }
                    return H(t, e), t.prototype.execute = function() {
                        e.prototype.execute.call(this), this._view.container.children.forEach((function(e) {
                            void 0 !== a.e.props.layout.get(e.name) && (e.visible = !1), "reelSetContainer" === e.name && (e.children[0].visible = !1)
                        })), "visible" === document.visibilityState && a.j.get(0).renderer.render(a.j.get(0).container), this.resolveCompleted()
                    }, t
                }(s.a),
                Y = function(e) {
                    var t = {
                        reelSetComponent: e
                    };
                    this.initCommand = function(e, n, o, r) {
                        return new N(t, e, n, o, r)
                    }, this.spinCommand = function() {
                        return new A.a(t)
                    }, this.stakeDeductCommand = function() {
                        return new F
                    }, this.requestDataCommand = function() {
                        return new x(t)
                    }, this.stopSpinCommand = function() {
                        return new j.a(t)
                    }, this.bonusStopSpinCommand = function(e, n) {
                        return new r.a(t, e, n)
                    }, this.forceStopCommand = function() {
                        return new O(t)
                    }, this.slamStopCommand = function() {
                        return new w(t)
                    }, this.resetCommand = function() {
                        return new T(t)
                    }, this.showCommand = function() {
                        return new M(t.reelSetComponent, !0)
                    }, this.hideCommand = function() {
                        return new M(t.reelSetComponent, !1)
                    }, this.visibilityCommand = function() {
                        return new z(t.reelSetComponent)
                    }, this.switchPlayModeCommand = function() {
                        return new U(!0)
                    }, this.gameReInitCommand = function() {
                        return new V
                    }, this.renderStageCommand = function() {
                        return new X(t.reelSetComponent)
                    }
                }
        },
        135: function(e, t, n) {
            "use strict";
            n.d(t, "a", (function() {
                return P
            }));
            var o, r = n(0),
                i = n(20),
                a = n(10),
                s = n(22),
                p = n(1),
                l = n(75),
                c = n(17),
                u = (o = function(e, t) {
                    return (o = Object.setPrototypeOf || {
                            __proto__: []
                        }
                        instanceof Array && function(e, t) {
                            e.__proto__ = t
                        } || function(e, t) {
                            for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                        })(e, t)
                }, function(e, t) {
                    function n() {
                        this.constructor = e
                    }
                    o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
                }),
                f = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                d = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                y = function(e) {
                    function t() {
                        return null !== e && e.apply(this, arguments) || this
                    }
                    return u(t, e), t.prototype.setCurrentThreshold = function(e) {
                        this._data.currentThreshold.label = e.label, this._data.currentThreshold.tier = e.tier, this._data.currentThreshold.tierName = e.tierName
                    }, f([r.b.bound, d("design:type", Function), d("design:paramtypes", [Object]), d("design:returntype", void 0)], t.prototype, "setCurrentThreshold", null), t
                }(c.a),
                h = function() {
                    this.currentThreshold = Object(r.f)({
                        label: "",
                        tier: 0,
                        tierName: ""
                    })
                },
                g = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                m = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                b = function() {
                    function e(e, t) {
                        this._data = e, this._parent = t
                    }
                    return Object.defineProperty(e.prototype, "currentLabel", {
                        get: function() {
                            return this._data.currentThreshold.label
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "currentTier", {
                        get: function() {
                            return this._data.currentThreshold.tier
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "currentTierName", {
                        get: function() {
                            return this._data.currentThreshold.tierName
                        },
                        enumerable: !0,
                        configurable: !0
                    }), g([r.d, m("design:type", String), m("design:paramtypes", [])], e.prototype, "currentLabel", null), g([r.d, m("design:type", Number), m("design:paramtypes", [])], e.prototype, "currentTier", null), g([r.d, m("design:type", String), m("design:paramtypes", [])], e.prototype, "currentTierName", null), e
                }(),
                _ = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                S = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                v = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                C = function(e, t, n, o) {
                    return new(n || (n = Promise))((function(r, i) {
                        function a(e) {
                            try {
                                p(o.next(e))
                            } catch (e) {
                                i(e)
                            }
                        }

                        function s(e) {
                            try {
                                p(o.throw(e))
                            } catch (e) {
                                i(e)
                            }
                        }

                        function p(e) {
                            var t;
                            e.done ? r(e.value) : (t = e.value, t instanceof n ? t : new n((function(e) {
                                e(t)
                            }))).then(a, s)
                        }
                        p((o = o.apply(e, t || [])).next())
                    }))
                },
                O = function(e, t) {
                    var n, o, r, i, a = {
                        label: 0,
                        sent: function() {
                            if (1 & r[0]) throw r[1];
                            return r[1]
                        },
                        trys: [],
                        ops: []
                    };
                    return i = {
                        next: s(0),
                        throw: s(1),
                        return: s(2)
                    }, "function" == typeof Symbol && (i[Symbol.iterator] = function() {
                        return this
                    }), i;

                    function s(i) {
                        return function(s) {
                            return function(i) {
                                if (n) throw new TypeError("Generator is already executing.");
                                for (; a;) try {
                                    if (n = 1, o && (r = 2 & i[0] ? o.return : i[0] ? o.throw || ((r = o.return) && r.call(o), 0) : o.next) && !(r = r.call(o, i[1])).done) return r;
                                    switch (o = 0, r && (i = [2 & i[0], r.value]), i[0]) {
                                        case 0:
                                        case 1:
                                            r = i;
                                            break;
                                        case 4:
                                            return a.label++, {
                                                value: i[1],
                                                done: !1
                                            };
                                        case 5:
                                            a.label++, o = i[1], i = [0];
                                            continue;
                                        case 7:
                                            i = a.ops.pop(), a.trys.pop();
                                            continue;
                                        default:
                                            if (!(r = a.trys, (r = r.length > 0 && r[r.length - 1]) || 6 !== i[0] && 2 !== i[0])) {
                                                a = 0;
                                                continue
                                            }
                                            if (3 === i[0] && (!r || i[1] > r[0] && i[1] < r[3])) {
                                                a.label = i[1];
                                                break
                                            }
                                            if (6 === i[0] && a.label < r[1]) {
                                                a.label = r[1], r = i;
                                                break
                                            }
                                            if (r && a.label < r[2]) {
                                                a.label = r[2], a.ops.push(i);
                                                break
                                            }
                                            r[2] && a.ops.pop(), a.trys.pop();
                                            continue
                                    }
                                    i = t.call(e, a)
                                } catch (e) {
                                    i = [6, e], o = 0
                                } finally {
                                    n = r = 0
                                }
                                if (5 & i[0]) throw i[1];
                                return {
                                    value: i[0] ? i[1] : void 0,
                                    done: !0
                                }
                            }([i, s])
                        }
                    }
                },
                P = function(e) {
                    function t(t, n, o, r) {
                        void 0 === o && (o = "bigWin"), void 0 === r && (r = new h);
                        var s = e.call(this, new i.a(t, null), new b(r, t), void 0, [], o) || this;
                        return s._mobxUtils = a.a.getInstance(), s._animations = n, s._actions = new y(r), s._setTextReaction = "", s
                    }
                    return _(t, e), t.prototype.init = function() {
                        return C(this, void 0, void 0, (function() {
                            var e;
                            return O(this, (function(t) {
                                if (void 0 === this.layout) throw new Error("Layout data not yet set");
                                return this.build(), this.container.visible = !1, this._spine = this.container.children.find((function(e) {
                                    return e instanceof s.a
                                })), void 0 !== this._spine && (this._spine.visible = !1), e = this.layout.id + "_label", this._labelField = this.container.children.find((function(t) {
                                    return t.name === e
                                })), [2]
                            }))
                        }))
                    }, t.prototype.setCommands = function(e) {
                        this._commands = e
                    }, t.prototype.showTier = function() {
                        var e = p.m.getString(this.props.currentLabel);
                        if (this._labelField.text = e || "", void 0 !== this._spine)
                            if ("" !== this._labelField.text) {
                                var t = this.props.currentTier < this._animations.length ? this._animations[this.props.currentTier] : this._animations[this._animations.length - 1],
                                    n = this._spine,
                                    o = n.visible;
                                n.visible = !0, o || n.updateTransform(), Array.isArray(t) ? t.forEach((function(e, t) {
                                    n.addAnimation(e, t)
                                })) : n.addAnimation(t, 0), n.play()
                            } else this._spine.visible = !1;
                        this.playBigWinTierAudio(this.props.currentTierName)
                    }, t.prototype.playBigWinTierAudio = function(e) {
                        p.i.execute(e + "Start")
                    }, t.prototype.show = function() {
                        var e = this;
                        "" === this._setTextReaction && (this._setTextReaction = this._mobxUtils.addReaction(t.BIG_WIN_SET_TEXT, (function() {
                            return e.props.currentLabel
                        }), (function() {
                            "" !== e.props.currentLabel && e.showTier()
                        }))), void 0 !== this._spine && (this._spine.clearTracks(), this._spine.setToSetupPose()), this.container.visible = !0
                    }, t.prototype.hide = function() {
                        this.skip(), this._spine && (this._spine.visible = !1), this.setCurrentThreshold({
                            label: "",
                            tier: 0,
                            tierName: ""
                        }), this.container.visible = !1
                    }, t.prototype.skip = function() {
                        "" !== this._setTextReaction && (this._mobxUtils.disposeReaction(this._setTextReaction), this._setTextReaction = "")
                    }, t.prototype.setCurrentThreshold = function(e) {
                        this._actions.setCurrentThreshold(e)
                    }, t.BIG_WIN_SET_TEXT = "bigWinText", S([r.b.bound, v("design:type", Function), v("design:paramtypes", [Object]), v("design:returntype", void 0)], t.prototype, "setCurrentThreshold", null), t
                }(l.a)
        },
        136: function(e, t, n) {
            "use strict";
            n.d(t, "a", (function() {
                return m
            }));
            var o, r = n(10),
                i = n(1),
                a = n(47),
                s = n(6),
                p = n(2),
                l = n(49),
                c = (o = function(e, t) {
                    return (o = Object.setPrototypeOf || {
                            __proto__: []
                        }
                        instanceof Array && function(e, t) {
                            e.__proto__ = t
                        } || function(e, t) {
                            for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                        })(e, t)
                }, function(e, t) {
                    function n() {
                        this.constructor = e
                    }
                    o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
                }),
                u = function(e) {
                    function t(t, n, o, r) {
                        void 0 === r && (r = !1);
                        var i = e.call(this, [t, n, o]) || this;
                        return i._whenName = "", i._show = n, i._useCurrentStage = o, i._rollupComponent = t.rollupComponent, i._force = r, i
                    }
                    return c(t, e), t.prototype.execute = function() {
                        var n = this;
                        if (e.prototype.execute.call(this), this._show && p.b.response.outcomeDetail.payout > 0 && !p.b.skipped) {
                            var o = 0;
                            if (this._useCurrentStage) {
                                var i = this._useCurrentStage ? p.b.response.outcomeDetail.stage : p.b.response.outcomeDetail.nextStage;
                                t.PRIZES.forEach((function(e) {
                                    var t = p.b.response.prizeOutcomes.get(i + e);
                                    void 0 !== t && (o += t.totalPay)
                                }))
                            } else {
                                var a = p.b.response.prizeOutcomes.get(t.GAME_TOTAL);
                                void 0 !== a && (o = a.totalPay)
                            }
                            this._rollupComponent.show(o), this.playRollupAudio(), this.resolveCompleted()
                        } else if (!0 === this._rollupComponent.container.visible) {
                            this._force && this.playRollupAudio("End");
                            var l = this._rollupComponent.props.rollupConfigData;
                            if (!this._force && l.get(this._rollupComponent.targetConfigName).config.endDelay > 0) {
                                var c = p.b.skipped;
                                this._currentTween = s.f.delayedCall(l.get(this._rollupComponent.targetConfigName).config.endDelay / 1e3, (function() {
                                    r.a.getInstance().disposeReaction(n._whenName), n._rollupComponent.hide(), c || n.resolveCompleted()
                                })), c ? this.resolveCompleted() : this._whenName = r.a.getInstance().addWhen(t.COMMAND_NAME + "_onSkip", (function() {
                                    return p.b.skipped
                                }), (function() {
                                    void 0 !== n._currentTween && n._currentTween.kill(), n._rollupComponent.hide(), n.resolveCompleted()
                                }))
                            } else this._rollupComponent.hide(), this.resolveCompleted()
                        } else this._rollupComponent.hide(), this.resolveCompleted()
                    }, t.prototype.playRollupAudio = function(e) {
                        void 0 === e && (e = "Start");
                        var t = this._useCurrentStage ? p.b.response.outcomeDetail.stage : p.b.response.outcomeDetail.nextStage;
                        this._rollupComponent.targetConfigName === l.a.BIG_WIN_ROLLUP_CONFIG ? i.i.execute("onBigWin" + e) : this._rollupComponent.targetConfigName === l.a.WIN_ROLLUP_CONFIG && i.i.execute("on" + ("BaseGame" === t ? "" : "Bonus") + "Rollup" + e)
                    }, t.prototype.cancel = function() {
                        this._state !== a.b.IDLE && (this._force && this.playRollupAudio("End"), this._rollupComponent.hide()), e.prototype.cancel.call(this)
                    }, t.COMMAND_NAME = "rollupShowCommand", t.GAME_TOTAL = "Game.Total", t.PRIZES = [".Lines", ".Scatter"], t
                }(a.a),
                f = n(19),
                d = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                y = function(e) {
                    function t(t, n) {
                        var o = e.call(this, t) || this;
                        return o.skip = function() {
                            o._payload.rollupComponent.skip(), "" !== o._whenName && (r.a.getInstance().disposeReaction(o._whenName), o._whenName = ""), p.a.gameActions.setSkipped(!0)
                        }, o._useCurrentStage = n, o._reactionName = "", o._whenName = "", o
                    }
                    return d(t, e), t.prototype.execute = function() {
                        var n = this;
                        e.prototype.execute.call(this), this._payload.rollupComponent.props.rollupState === f.b.START ? (this._payload.rollupComponent.targetConfigName === l.a.BIG_WIN_ROLLUP_CONFIG && (this._payload.reelSetComponent.container.interactive = !0, this._payload.reelSetComponent.container.on("pointerup", this.skip)), this._reactionName = r.a.getInstance().addWhen(t.COMMAND_NAME + "_onComplete", (function() {
                            return n._payload.rollupComponent.props.rollupState === f.b.STOP
                        }), (function() {
                            n.cancel()
                        })), this._whenName = r.a.getInstance().addWhen(t.COMMAND_NAME + "_onSkip", (function() {
                            return n._payload.rollupComponent.props.skipped
                        }), (function() {
                            n._payload.rollupComponent.skip()
                        }))) : this.resolveCompleted()
                    }, t.prototype.playRollupAudio = function() {
                        var e = this._useCurrentStage ? p.b.response.outcomeDetail.stage : p.b.response.outcomeDetail.nextStage;
                        this._payload.rollupComponent.targetConfigName === l.a.BIG_WIN_ROLLUP_CONFIG ? i.i.execute("onBigWinEnd") : this._payload.rollupComponent.targetConfigName === l.a.WIN_ROLLUP_CONFIG && i.i.execute("on" + ("BaseGame" === e ? "" : "Bonus") + "RollupEnd")
                    }, t.prototype.cancel = function() {
                        this._state !== a.b.IDLE && (this.playRollupAudio(), "" !== this._reactionName && (r.a.getInstance().disposeReaction(this._reactionName), this._reactionName = ""), "" !== this._whenName && (r.a.getInstance().disposeReaction(this._whenName), this._whenName = ""), this._payload.reelSetComponent.container.interactive = !1, this._payload.reelSetComponent.container.off("pointerup", this.skip)), e.prototype.cancel.call(this)
                    }, t.COMMAND_NAME = "rollupSkipCommand", t
                }(a.a),
                h = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                g = function(e) {
                    function t(t, n) {
                        var o = e.call(this, [t, n]) || this;
                        return o._show = n, o._rollupComponent = t.rollupComponent, o
                    }
                    return h(t, e), t.prototype.execute = function() {
                        e.prototype.execute.call(this);
                        var n = 0;
                        if (this._show) {
                            var o = p.b.response.outcomeDetail.stage;
                            t.PRIZES.forEach((function(e) {
                                var t = p.b.response.prizeOutcomes.get(o + e);
                                void 0 !== t && (n += t.totalPay)
                            }))
                        }
                        n > 0 ? (this._rollupComponent.show(n), this.playBonusRollupAudio()) : this._rollupComponent.hide(), this.resolveCompleted()
                    }, t.prototype.playBonusRollupAudio = function() {
                        this._rollupComponent.targetConfigName === l.a.BIG_WIN_ROLLUP_CONFIG ? i.i.execute("onBigWinStart") : this._rollupComponent.targetConfigName === l.a.WIN_ROLLUP_CONFIG && i.i.execute("onBonusRollupStart")
                    }, t.prototype.cancel = function() {
                        this._state !== a.b.IDLE && this._rollupComponent.hide(), e.prototype.cancel.call(this)
                    }, t.COMMAND_NAME = "rollupShowCommand", t.PRIZES = [".Lines", ".Scatter"], t
                }(a.a),
                m = function(e, t) {
                    var n = {
                        rollupComponent: e,
                        reelSetComponent: t
                    };
                    this.showCommand = function() {
                        return new u(n, !0, !0)
                    }, this.showBonusCommand = function() {
                        return new g(n, !0)
                    }, this.showBonusWinCommand = function() {
                        return new u(n, !0, !1)
                    }, this.hideCommand = function(e) {
                        return void 0 === e && (e = !1), new u(n, !1, !0, e)
                    }, this.hideBonusWinCommand = function() {
                        return new u(n, !1, !1)
                    }, this.skipCommand = function() {
                        return new y(n, !0)
                    }, this.skipBonusWinCommand = function() {
                        return new y(n, !1)
                    }
                }
        },
        137: function(e, t, n) {
            "use strict";
            n.d(t, "a", (function() {
                return u
            }));
            var o, r = n(10),
                i = n(47),
                a = n(6),
                s = n(2),
                p = n(19),
                l = (o = function(e, t) {
                    return (o = Object.setPrototypeOf || {
                            __proto__: []
                        }
                        instanceof Array && function(e, t) {
                            e.__proto__ = t
                        } || function(e, t) {
                            for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                        })(e, t)
                }, function(e, t) {
                    function n() {
                        this.constructor = e
                    }
                    o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
                }),
                c = function(e) {
                    function t(t, n) {
                        var o = e.call(this, [t, n]) || this;
                        return o._whenName = "", o._show = n, o._rollupComponent = t.rollupComponent, o._bigWinComponent = t.bigWinComponent, o._labelReaction = "", o._rollupReaction = "", o
                    }
                    return l(t, e), t.prototype.execute = function() {
                        var n = this;
                        if (e.prototype.execute.call(this), this._show && this._rollupComponent.props.targetValue > 0) this._bigWinComponent.show(), this._labelReaction = r.a.getInstance().addReaction(t.COMMAND_NAME + "_onChange", (function() {
                            return n._rollupComponent.props.currentLabel
                        }), (function(e) {
                            n._bigWinComponent.setCurrentThreshold(n._rollupComponent.props.currentThreshold)
                        })), this._rollupReaction = r.a.getInstance().addWhen(t.COMMAND_NAME + "_onComplete", (function() {
                            return n._rollupComponent.props.rollupState === p.b.STOP
                        }), (function() {
                            n._rollupReaction = "", n.dispose(), n.resolveCompleted()
                        }));
                        else if (this._bigWinComponent.container.visible) {
                            var o = this._rollupComponent.props.rollupConfigData;
                            o.get(this._rollupComponent.targetConfigName).config.endDelay > 0 && this._rollupComponent.props.targetValue > 0 ? (this._currentTween = a.f.delayedCall(o.get(this._rollupComponent.targetConfigName).config.endDelay / 1e3, (function() {
                                r.a.getInstance().disposeReaction(n._whenName), n._bigWinComponent.hide()
                            })), this._whenName = r.a.getInstance().addWhen(t.COMMAND_NAME + "_onSkip", (function() {
                                return s.b.skipped
                            }), (function() {
                                void 0 !== n._currentTween && n._currentTween.kill(), n._bigWinComponent.hide()
                            }))) : this._bigWinComponent.hide(), this.resolveCompleted()
                        } else this._bigWinComponent.hide(), this.resolveCompleted()
                    }, t.prototype.cancel = function() {
                        this._state !== i.b.IDLE && (this.dispose(), this._bigWinComponent.hide()), e.prototype.cancel.call(this)
                    }, t.prototype.dispose = function() {
                        "" !== this._labelReaction && (r.a.getInstance().disposeReaction(this._labelReaction), this._labelReaction = "")
                    }, t.COMMAND_NAME = "bigWinShowCommand", t
                }(i.a),
                u = function(e, t) {
                    var n = {
                        bigWinComponent: e,
                        rollupComponent: t
                    };
                    this.showCommand = function() {
                        return new c(n, !0)
                    }, this.hideCommand = function() {
                        return new c(n, !1)
                    }
                }
        },
        16: function(e, t, n) {
            "use strict";
            n.d(t, "a", (function() {
                return u
            }));
            var o = n(3),
                r = n(66),
                i = n(1),
                a = n(11),
                s = n(34),
                p = n(24),
                l = n(32),
                c = n(8),
                u = function() {
                    function e() {
                        this._graphicsUtils = r.a.getInstance(), this.anchorTopBounds = function(e, t) {
                            var n = t,
                                o = n.getChildByName(l.a.BOUNDS_NAME);
                            null !== o && (n.y = e.y - o.height)
                        }, this.anchorBottomBounds = function(e, t) {
                            var n = t,
                                o = e.getChildByName(l.a.BOUNDS_NAME);
                            null !== o && (n.y = e.y + o.height)
                        }
                    }
                    return e.getInstance = function() {
                        return e.instance || (e.instance = new e), e.instance
                    }, e.prototype.getReelSetChildren = function(e) {
                        var t = [],
                            n = this.getReelSetContainer(e).children;
                        if (e.props.reelSetType === c.c.INDEPENDENT) {
                            for (var r = 0; r < n.length; r++)
                                if (n[r].children.length > 0)
                                    for (var i = n[r].children, a = 0; a < i.length; a++) i[a] instanceof o.Graphics || t.push(i[a])
                        } else
                            for (var s = 0; s < n.length; s++) t.push(n[s]);
                        return t
                    }, e.prototype.getReelSetContainer = function(e) {
                        return r.a.getInstance().findContainer(e.container, s.a.REEL_SET_CONTAINER)
                    }, e.prototype.getReelContainers = function(e, t) {
                        var n = this._graphicsUtils.getDisplayObjectsByName(e, t);
                        return n = this._graphicsUtils.getSortedDisplayObjects(n)
                    }, e.prototype.positionReelCells = function(e, t) {
                        for (var n = null, o = null, r = 0; r < e.reelCellComponents.length - e.props.topPadding; r++) {
                            var s = (u = e.reelCellComponents[r + e.props.topPadding]).container;
                            if (t.addChild(s), null === n || null === o) {
                                e.container.scale.set(1, 1);
                                var p = i.e.props.layouts.get(a.a.LANDSCAPE);
                                if (void 0 !== p) {
                                    var l = p.get(e.container.name);
                                    if (void 0 !== l) {
                                        var c = e.container;
                                        c.x = l.x, c.y = l.y
                                    }
                                }
                                s.x = e.container.x + u.offsetX, s.y += u.offsetY, n = s, o = s
                            } else this.anchorBottomBounds(o, s), s.x = e.container.x + u.offsetX, s.y += u.offsetY;
                            o = s
                        }
                        for (r = e.props.topPadding - 1; r >= 0; r--) {
                            var u;
                            s = (u = e.reelCellComponents[r]).container;
                            t.addChild(s), null !== n && (this.anchorTopBounds(n, s), s.x = e.container.x + u.offsetX, s.y -= u.offsetY), n = s
                        }
                        n = null, o = null
                    }, e.prototype.positionIndependentReelCells = function(e, t) {
                        var n = null,
                            o = null;
                        t.addChild(e.container), e.container.children[0].name = "graphic";
                        for (var r = 0; r < e.reelCellComponents.length - e.props.topPadding; r++) {
                            var i = e.reelCellComponents[r + e.props.topPadding].container;
                            e.container.addChild(i), null === n || null === o ? (e.container.scale.set(1, 1), e.container.mask = this.getReelCellMask(e), n = i, o = i) : (this.anchorBottomBounds(o, i), i.x = o.x, i.y += 0), o = i
                        }
                        for (r = e.props.topPadding - 1; r >= 0; r--) {
                            i = e.reelCellComponents[r].container;
                            e.container.addChild(i), null !== n && (this.anchorTopBounds(n, i), i.x = n.x, i.y -= 0), n = i
                        }
                        n = null, o = null
                    }, e.prototype.getReelCellMask = function(e) {
                        var t = r.a.getInstance().findContainer(e.container, "graphic"),
                            n = r.a.getInstance().drawRectGraphic(16711935, t.x, t.y, t.width, t.height);
                        return e.container.addChild(n), t.visible = !1, n
                    }, e.prototype.anchorDisplayObjectsTopBounds = function(e, t) {
                        if (null !== e)
                            for (var n = e.length - 2; n >= 0; n--) {
                                var o = e[n + 1],
                                    r = e[n];
                                this.anchorTopBounds(o, r), void 0 !== t && this.handleYPadding(r, t, !0)
                            }
                    }, e.prototype.anchorDisplayObjectsBottomBounds = function(e, t) {
                        if (null !== e)
                            for (var n = 1; n < e.length; n++) {
                                var o = e[n - 1],
                                    r = e[n];
                                this.anchorBottomBounds(o, r), void 0 !== t && this.handleYPadding(r, t, !1)
                            }
                    }, e.prototype.handleYPadding = function(e, t, n) {
                        e.children.forEach((function(r) {
                            if (r instanceof o.Sprite && null !== r.name) {
                                var i = r.name.split("_")[0],
                                    a = t.get(i);
                                void 0 !== a && (n ? e.y -= a[1] : e.y += a[1])
                            }
                        }))
                    }, e.prototype.getYPadding = function(e, t) {
                        var n = 0;
                        return e.children.forEach((function(e) {
                            if (e instanceof o.Sprite && null !== e.name) {
                                var r = e.name.split("_")[0],
                                    i = t.get(r);
                                if (void 0 !== i) {
                                    var a = i[1];
                                    n = a
                                }
                            }
                        })), n
                    }, e.prototype.handleXPadding = function(e, t) {
                        e.children.forEach((function(n) {
                            if (n instanceof o.Sprite && null !== n.name) {
                                var r = n.name.split("_")[0],
                                    i = t.get(r);
                                void 0 !== i && (e.x += i[0])
                            }
                        }))
                    }, e.prototype.getXPadding = function(e, t) {
                        var n = 0;
                        return e.children.forEach((function(e) {
                            if (e instanceof o.Sprite && null !== e.name) {
                                var r = e.name.split("_")[0],
                                    i = t.get(r);
                                if (void 0 !== i) {
                                    var a = i[0];
                                    n = a
                                }
                            }
                        })), n
                    }, e.prototype.anchorDisplayObjectsBottomBoundsByIndex = function(e, t, n) {
                        if (null !== e) {
                            for (var o = t + 1; o < e.length; o++) {
                                var r = e[o - 1],
                                    i = e[o];
                                this.anchorBottomBounds(r, i), void 0 !== n && this.handleYPadding(i, n, !1)
                            }
                            for (o = t; o > 0; o--) {
                                r = e[o], i = e[o - 1];
                                this.anchorTopBounds(r, i), void 0 !== n && this.handleYPadding(i, n, !0)
                            }
                        }
                    }, e.prototype.createCellBounds = function(e, t) {
                        if (void 0 === e.container) {
                            var n = e,
                                r = new o.Container,
                                i = this._graphicsUtils.drawRectGraphic(Number(0), 0, 0, t.width, t.height);
                            i.name = l.a.BOUNDS_NAME, i.alpha = 0, r.addChild(i), n.container = r
                        }
                    }, e.prototype.matchCellBounds = function(e, t) {
                        e.children.forEach((function(e) {
                            if (e.name === l.a.BOUNDS_NAME) {
                                var n = e;
                                n.x = 0, n.y = 0, n.width = t.width, n.height = t.height
                            } else if (e instanceof o.Sprite) {
                                var r = e,
                                    a = i.e.props.layout.get(e.name);
                                void 0 !== a && (r.width = a.width, r.height = a.height)
                            }
                        }))
                    }, e.prototype.getCellBounds = function(e) {
                        return e.getChildByName(l.a.BOUNDS_NAME)
                    }, e.prototype.getTemplateContainer = function(e, t) {
                        new o.Container;
                        return e.container.getChildByName(t)
                    }, e.prototype.getTemplateContainers = function(e, t) {
                        var n = [];
                        if (null !== t)
                            for (var i = 0; i < t.length; i++) {
                                var a = e.container.getChildByName(t[i]),
                                    s = new o.Container;
                                s.name = a.name;
                                var p = r.a.getInstance().drawRectGraphic(Number(0), 0, 0, a.width, a.height);
                                s.addChild(p), n.push(s)
                            }
                        return n
                    }, e.prototype.setReelCellText = function(e) {
                        void 0 !== e.cellDef && e.addCellDefText(), void 0 !== e.stopDef && e.addStopIndexText()
                    }, e.prototype.returnPoolObject = function(e, t) {
                        var n, o = e.props.poolObjectName;
                        if (o) {
                            var r = o.split("_");
                            void 0 !== r && void 0 === (n = t.get(r[0])) && void 0 !== e.stopDef && void 0 !== t.get(e.stopDef.symbolId) && (n = t.get(e.stopDef.symbolId))
                        }
                        if (void 0 !== n && null !== e.props.poolObjectName) n.returnPooledObject(e.props.poolObjectName);
                        else if (void 0 !== e.cellDef && void 0 !== t.get(e.cellDef.text)) throw new Error("Could not return pooled object: " + e.props.poolObjectName)
                    }, e.prototype.resetReelCells = function(t) {
                        t.reelComponents.forEach((function(n) {
                            n.reelCellComponents.forEach((function(n) {
                                n.container.removeChildren(), e.getInstance().returnPoolObject(n, t.symbolSetComponent.symbols)
                            })), n.reelCellComponents.length = 0
                        }))
                    }, e.prototype.swapCellSymbol = function(e, t, n) {
                        var o;
                        if (void 0 !== (o = null !== t.symbolsConfigDef && t.symbolsConfigDef.suffix.length > 0 ? t.getPooledObject(t.name + t.symbolsConfigDef.suffix + p.a.STATIC_SUFFIX) : t.getPooledObject(t.name + p.a.STATIC_SUFFIX))) {
                            var r = o.object,
                                i = n.templateContainers.find((function(e) {
                                    return void 0 !== t && null !== t.symbolsConfigDef && e.name === t.symbolsConfigDef.symbolBounds
                                }));
                            e.container.removeChildAt(e.container.children.length - 1), void 0 !== i && this.createCellBounds(e, i);
                            var a = e.container;
                            null !== t.symbolsConfigDef && (a.zIndex = t.symbolsConfigDef.layer), a.addChild(r), e.setPoolObjectName(o.name + "_" + o.id)
                        }
                    }, e
                }()
        },
        161: function(e, t, n) {
            "use strict";
            (function(e) {
                n.d(t, "a", (function() {
                    return u
                }));
                var o = n(124),
                    r = n(9),
                    i = n(1),
                    a = n(10),
                    s = n(113),
                    p = n(47),
                    l = n(45),
                    c = n(2),
                    u = function() {
                        function t() {}
                        return t.apply = function() {
                            t.ixfProxy.clientService.subscribe("ReplayExpired", (function() {
                                c.a.controlActions.setReplayTurbo(!1), r.a.getInstance().enableConsoleControl("turbo", !1)
                            })), i.j.get(0).container.interactiveChildren = !1, c.a.controlActions.setMuteEnabled(!0), a.a.getInstance().addReaction("replayTurboSet", (function() {
                                return c.b.replayTurbo
                            }), (function(t) {
                                e.Ticker.shared.speed = t ? c.b.replaySpeed : 1, i.j.get(0).ticker.speed = e.Ticker.shared.speed, o.a.globalTimeScale(e.Ticker.shared.speed)
                            })), t.overrideSpineUpdate(), t.overridePickerBlock(), t.overrideVideoSpeed()
                        }, t.overrideVideoSpeed = function() {
                            Object.defineProperty(s.a.prototype, "animationSpeed", {
                                get: function() {
                                    return this._setSpeed || 1
                                },
                                set: function(e) {
                                    this._setSpeed = e, this.video && (this.video.playbackRate = this._setSpeed * c.b.replaySpeed)
                                },
                                enumerable: !0,
                                configurable: !0
                            }), Object.defineProperty(s.a.prototype, "pause", {
                                value: function() {
                                    var e = this;
                                    this.video && this.video.pause(), this._setReact || (a.a.getInstance().addReaction("replaySpeedSet", (function() {
                                        return c.b.replaySpeed
                                    }), (function() {
                                        e.animationSpeed = e.animationSpeed
                                    })), this._setReact = !0)
                                }
                            })
                        }, t.overridePickerBlock = function() {
                            Object.defineProperty(p.a.prototype, "completed", {
                                get: function() {
                                    return "PickButtonPressedCommand" === this.constructor.name && this.cancel(), this._completed
                                },
                                enumerable: !0,
                                configurable: !0
                            })
                        }, t.overrideSpineUpdate = function() {
                            var t = Object.getOwnPropertyDescriptor(e.spine.Spine.prototype, "update");
                            t && Object.defineProperty(e.spine.Spine.prototype, "update", {
                                value: function(n) {
                                    t.value.call(this, n * e.Ticker.shared.speed)
                                }
                            })
                        }, t.ixfProxy = new l.a, t
                    }()
            }).call(this, n(3))
        },
        19: function(e, t, n) {
            "use strict";
            n.d(t, "c", (function() {
                return o
            })), n.d(t, "b", (function() {
                return r
            })), n.d(t, "a", (function() {
                return p
            }));
            var o, r, i = n(0),
                a = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                s = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                };
            ! function(e) {
                e[e.STANDARD = 0] = "STANDARD", e[e.DYNAMIC = 1] = "DYNAMIC"
            }(o || (o = {})),
            function(e) {
                e[e.START = 0] = "START", e[e.CANCEL = 1] = "CANCEL", e[e.STOP = 2] = "STOP"
            }(r || (r = {}));
            var p = function() {
                function e() {
                    this.currentValue = 0, this.currentThreshold = Object(i.f)({
                        label: "",
                        tier: 0,
                        tierName: ""
                    }), this.targetValue = 0, this.rollupConfigData = null, this.rollupState = r.STOP
                }
                return a([i.f, s("design:type", Number)], e.prototype, "currentValue", void 0), a([i.f, s("design:type", Number)], e.prototype, "targetValue", void 0), a([i.f, s("design:type", Object)], e.prototype, "rollupConfigData", void 0), a([i.f, s("design:type", Number)], e.prototype, "rollupState", void 0), e
            }()
        },
        2: function(e, t, n) {
            "use strict";
            n.d(t, "b", (function() {
                return i
            })), n.d(t, "a", (function() {
                return a
            }));
            var o = n(1),
                r = new(n(87).a)(o.l, o.d),
                i = r.props,
                a = r.actions
        },
        21: function(e, t, n) {
            "use strict";
            n.d(t, "b", (function() {
                return o
            })), n.d(t, "c", (function() {
                return r
            })), n.d(t, "a", (function() {
                return c
            }));
            var o, r, i = n(0),
                a = n(7),
                s = n(5),
                p = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                l = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                };
            ! function(e) {
                e[e.IDLE = 0] = "IDLE", e[e.SPIN_BEGIN = 1] = "SPIN_BEGIN", e[e.SPIN_END = 2] = "SPIN_END", e[e.TUMBLE_BEGIN = 3] = "TUMBLE_BEGIN", e[e.TUMBLE_END = 4] = "TUMBLE_END"
            }(o || (o = {})),
            function(e) {
                e[e.SPIN = 0] = "SPIN", e[e.TUMBLE = 1] = "TUMBLE"
            }(r || (r = {}));
            var c = function() {
                function e() {
                    this.name = "", this.state = s.a.IDLE, this.direction = a.a.DOWN, this.speed = 0, this.speedUp = 0, this.rows = 0, this.topPadding = 0, this.bottomPadding = 0, this.easeIn = [], this.easeOut = [], this.movementState = s.a.IDLE, this.reelState = o.IDLE, this.reelType = r.SPIN, this.startDelay = 0, this.stopDelay = 0, this.anticipationDelay = 0, this.reelConfigDef = null
                }
                return p([i.f, l("design:type", String)], e.prototype, "name", void 0), p([i.f, l("design:type", Number)], e.prototype, "state", void 0), p([i.f, l("design:type", Number)], e.prototype, "direction", void 0), p([i.f, l("design:type", Number)], e.prototype, "speed", void 0), p([i.f, l("design:type", Number)], e.prototype, "speedUp", void 0), p([i.f, l("design:type", Number)], e.prototype, "rows", void 0), p([i.f, l("design:type", Number)], e.prototype, "topPadding", void 0), p([i.f, l("design:type", Number)], e.prototype, "bottomPadding", void 0), p([i.f, l("design:type", Array)], e.prototype, "easeIn", void 0), p([i.f, l("design:type", Array)], e.prototype, "easeOut", void 0), p([i.f, l("design:type", Number)], e.prototype, "movementState", void 0), p([i.f, l("design:type", Number)], e.prototype, "reelState", void 0), p([i.f, l("design:type", Number)], e.prototype, "reelType", void 0), p([i.f, l("design:type", Number)], e.prototype, "startDelay", void 0), p([i.f, l("design:type", Number)], e.prototype, "stopDelay", void 0), p([i.f, l("design:type", Number)], e.prototype, "anticipationDelay", void 0), p([i.f, l("design:type", Object)], e.prototype, "reelConfigDef", void 0), e
            }()
        },
        230: function(e, t, n) {
            "use strict";
            n.d(t, "a", (function() {
                return ue
            }));
            var o, r = n(162),
                i = n(23),
                a = n(0),
                s = n(10),
                p = n(1),
                l = n(115),
                c = n(2),
                u = n(12);
            ! function(e) {
                e[e.Front = 0] = "Front", e[e.Back = 1] = "Back"
            }(o || (o = {}));
            var f, d, y, h, g, m, b, _, S, v, C, O, P, w = n(17),
                R = (f = function(e, t) {
                    return (f = Object.setPrototypeOf || {
                            __proto__: []
                        }
                        instanceof Array && function(e, t) {
                            e.__proto__ = t
                        } || function(e, t) {
                            for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                        })(e, t)
                }, function(e, t) {
                    function n() {
                        this.constructor = e
                    }
                    f(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
                }),
                N = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                I = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                T = function(e) {
                    function t() {
                        return null !== e && e.apply(this, arguments) || this
                    }
                    return R(t, e), t.prototype.setBetPerPattern = function(e) {
                        this._data.betPerPattern = e
                    }, t.prototype.setPatternsBet = function(e) {
                        this._data.patternsBet = e
                    }, t.prototype.setMuteAllEnabled = function(e) {
                        this._data.muteAllSounds = e, this.setTagMutePrefs("muteAllEnabled", e), this.setTagMutePrefs(p.f.props.assetPack.charAt(0).toUpperCase() + p.f.props.assetPack.slice(1) + "Sound", e ? "Off" : "On")
                    }, t.prototype.setTagMuteEnabled = function(e, t) {
                        this.setTagMutePrefs(p.f.props.assetPack.charAt(0).toUpperCase() + p.f.props.assetPack.slice(1) + e, t ? "Off" : "On")
                    }, t.prototype.setTagMutePrefs = function(e, t) {
                        this._data.tagMuteMap.set(e, t)
                    }, N([a.b.bound, I("design:type", Function), I("design:paramtypes", [Number]), I("design:returntype", void 0)], t.prototype, "setBetPerPattern", null), N([a.b.bound, I("design:type", Function), I("design:paramtypes", [Number]), I("design:returntype", void 0)], t.prototype, "setPatternsBet", null), N([a.b.bound, I("design:type", Function), I("design:paramtypes", [Boolean]), I("design:returntype", void 0)], t.prototype, "setMuteAllEnabled", null), N([a.b.bound, I("design:type", Function), I("design:paramtypes", [String, Boolean]), I("design:returntype", void 0)], t.prototype, "setTagMuteEnabled", null), N([a.b.bound, I("design:type", Function), I("design:paramtypes", [Object, Object]), I("design:returntype", void 0)], t.prototype, "setTagMutePrefs", null), t
                }(w.a),
                A = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                j = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                E = function() {
                    function e() {
                        this.betPerPattern = 0, this.patternsBet = 0, this.muteAllSounds = !1, this.tagMuteMap = new a.a
                    }
                    return A([a.f, j("design:type", Number)], e.prototype, "betPerPattern", void 0), A([a.f, j("design:type", Number)], e.prototype, "patternsBet", void 0), A([a.f, j("design:type", Boolean)], e.prototype, "muteAllSounds", void 0), A([a.f, j("design:type", a.a)], e.prototype, "tagMuteMap", void 0), e
                }(),
                D = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                x = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                B = function() {
                    function e(e, t) {
                        this._data = e, this._parent = t
                    }
                    return Object.defineProperty(e.prototype, "settingsShown", {
                        get: function() {
                            return this._parent.settingsShown
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "muteEnabled", {
                        get: function() {
                            return this._parent.muteEnabled
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "muteAllEnabled", {
                        get: function() {
                            var e = p.f.props.assetPack.charAt(0).toUpperCase() + p.f.props.assetPack.slice(1) + "Sound";
                            return !!this.tagMuteMap.has(e) && "Off" === this.tagMuteMap.get(e)
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "tagMuteMap", {
                        get: function() {
                            return this._data.tagMuteMap
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "preferences", {
                        get: function() {
                            return this._parent.preferences
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "autoSpinConfig", {
                        get: function() {
                            return this._parent.autoSpinConfig
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "supportedSteps", {
                        get: function() {
                            return this._parent.betSteps
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "supportedLineSteps", {
                        get: function() {
                            return this._parent.patternSteps
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "betPerPattern", {
                        get: function() {
                            return this._parent.betPerPattern
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "patternsBet", {
                        get: function() {
                            return this._parent.patternsBet
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "assetPack", {
                        get: function() {
                            return this._parent.assetPack
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "autoSpinInfo", {
                        get: function() {
                            return this._parent.paytable.autoSpinInfo
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "bet", {
                        get: function() {
                            return this._data.betPerPattern
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "lines", {
                        get: function() {
                            return this._data.patternsBet
                        },
                        enumerable: !0,
                        configurable: !0
                    }), D([a.d, x("design:type", Number), x("design:paramtypes", [])], e.prototype, "settingsShown", null), D([a.d, x("design:type", Boolean), x("design:paramtypes", [])], e.prototype, "muteEnabled", null), D([a.d, x("design:type", Boolean), x("design:paramtypes", [])], e.prototype, "muteAllEnabled", null), D([a.d, x("design:type", a.a), x("design:paramtypes", [])], e.prototype, "tagMuteMap", null), D([a.d, x("design:type", a.a), x("design:paramtypes", [])], e.prototype, "preferences", null), D([a.d, x("design:type", Object), x("design:paramtypes", [])], e.prototype, "autoSpinConfig", null), D([a.d, x("design:type", Array), x("design:paramtypes", [])], e.prototype, "supportedSteps", null), D([a.d, x("design:type", Array), x("design:paramtypes", [])], e.prototype, "supportedLineSteps", null), D([a.d, x("design:type", Number), x("design:paramtypes", [])], e.prototype, "betPerPattern", null), D([a.d, x("design:type", Number), x("design:paramtypes", [])], e.prototype, "patternsBet", null), D([a.d, x("design:type", Object), x("design:paramtypes", [])], e.prototype, "autoSpinInfo", null), D([a.d, x("design:type", Number), x("design:paramtypes", [])], e.prototype, "bet", null), D([a.d, x("design:type", Number), x("design:paramtypes", [])], e.prototype, "lines", null), e
                }(),
                M = n(48),
                k = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                F = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                L = function() {
                    function e() {
                        this.count = 0, this.lossLimit = 0, this.winLimit = 0, this.showHidden = !1, this.showInfo = !1
                    }
                    return k([a.f, F("design:type", Number)], e.prototype, "count", void 0), k([a.f, F("design:type", Number)], e.prototype, "lossLimit", void 0), k([a.f, F("design:type", Number)], e.prototype, "winLimit", void 0), k([a.f, F("design:type", Boolean)], e.prototype, "showHidden", void 0), k([a.f, F("design:type", Boolean)], e.prototype, "showInfo", void 0), e
                }(),
                U = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                G = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                V = function() {
                    function e(e, t) {
                        this._data = e, this._parent = t
                    }
                    return Object.defineProperty(e.prototype, "supportedSteps", {
                        get: function() {
                            var e = this._parent.autoSpinConfig;
                            return void 0 !== e ? e.steps : []
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "supportedLossLimits", {
                        get: function() {
                            var e = this._parent.autoSpinConfig;
                            return void 0 !== e && void 0 !== e.lossLimit ? e.lossLimit : []
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "supportedWinLimits", {
                        get: function() {
                            var e = this._parent.autoSpinConfig;
                            return void 0 !== e && void 0 !== e.winLimit ? e.winLimit : []
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "count", {
                        get: function() {
                            return this._data.count
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "lossLimit", {
                        get: function() {
                            return this._data.lossLimit
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "winLimit", {
                        get: function() {
                            return this._data.winLimit
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "showHidden", {
                        get: function() {
                            return this._data.showHidden
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "showInfo", {
                        get: function() {
                            return this._data.showInfo
                        },
                        enumerable: !0,
                        configurable: !0
                    }), U([a.d, G("design:type", Array), G("design:paramtypes", [])], e.prototype, "supportedSteps", null), U([a.d, G("design:type", Array), G("design:paramtypes", [])], e.prototype, "supportedLossLimits", null), U([a.d, G("design:type", Array), G("design:paramtypes", [])], e.prototype, "supportedWinLimits", null), U([a.d, G("design:type", Number), G("design:paramtypes", [])], e.prototype, "count", null), U([a.d, G("design:type", Number), G("design:paramtypes", [])], e.prototype, "lossLimit", null), U([a.d, G("design:type", Number), G("design:paramtypes", [])], e.prototype, "winLimit", null), U([a.d, G("design:type", Boolean), G("design:paramtypes", [])], e.prototype, "showHidden", null), U([a.d, G("design:type", Boolean), G("design:paramtypes", [])], e.prototype, "showInfo", null), e
                }(),
                W = function(e, t) {
                    return Object.defineProperty ? Object.defineProperty(e, "raw", {
                        value: t
                    }) : e.raw = t, e
                },
                z = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                H = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                X = function() {
                    function e(e) {
                        this.index = u.a.AUTO_SPIN, this.icon = "autoplay.svg", this.iconSelected = "autoplay_active.svg", this._data = new L, this._parent = e, this.props = new V(this._data, this._parent.props)
                    }
                    return Object.defineProperty(e.prototype, "textFit", {
                        get: function() {
                            return !0
                        },
                        enumerable: !0,
                        configurable: !0
                    }), e.prototype._createRadio = function(e, t, n, o, r) {
                        return Object(i.d)(d || (d = W(['\n            <label\n                class="radio-control count ', '"\n                style="', '"\n            >\n                <span class="radio-control__label">', '</span>\n                <input\n                    type="radio"\n                    class="radio-control__input"\n                    name="', '"\n                    value=', "\n                    @click=", "\n                    ?disabled=", "\n                />\n            </label>\n        "], ['\n            <label\n                class="radio-control count ', '"\n                style="', '"\n            >\n                <span class="radio-control__label">', '</span>\n                <input\n                    type="radio"\n                    class="radio-control__input"\n                    name="', '"\n                    value=', "\n                    @click=", "\n                    ?disabled=", "\n                />\n            </label>\n        "])), n === t ? "radio-control--active" : "", 0 === o.length ? "opacity: 0; cursor: unset;" : "", Object(M.a)(e), o, t, (function(e) {
                            p.i.execute("onUiAutoPlaySelect"), r(e.target.value)
                        }), 0 === o.length)
                    }, e.prototype._setCount = function(e) {
                        this._data.count = this._data.count === e ? 0 : e, 0 === this._data.count && (this._data.winLimit = 0, this._showHiddenSettings(!1))
                    }, e.prototype._setWinLimit = function(e) {
                        this._data.winLimit = this._data.winLimit === e ? 0 : e
                    }, e.prototype._setLossLimit = function(e) {
                        this._data.lossLimit = this._data.lossLimit === e ? 0 : e, 0 === this._data.lossLimit && (this._data.winLimit = 0, this._showHiddenSettings(!1))
                    }, e.prototype._resetOptions = function() {
                        this._data.count = 0, this._data.winLimit = 0, this._data.lossLimit = 0, this._showHiddenSettings(!1)
                    }, e.prototype._showHiddenSettings = function(e) {
                        this._data.showHidden = void 0 !== e ? e : !this._data.showHidden
                    }, e.prototype._showInfo = function(e) {
                        this._data.showInfo = void 0 !== e ? e : !this._data.showInfo
                    }, Object.defineProperty(e.prototype, "template", {
                        get: function() {
                            var e = this,
                                t = p.m.getString("settings.autoSpin_label"),
                                n = p.m.getString("settings.autoSpin_info");
                            return Object(i.d)(y || (y = W(['\n            <h1 class="settings-header multiple">\n                <div>', '</div>\n                <button\n                    class="show-info-btn"\n                    @click=', '\n                >\n                    <img\n                        src="', '"\n                        class="info-btn__icon"\n                        alt="info icon"\n                    />\n                    <img\n                        src="', '"\n                        class="info-btn__icon-hover"\n                        alt="info icon"\n                    />\n                </button>\n            </h1>\n            <div class="settings-wrapper">\n                <div class="settings-info ', '">\n                    <div class="settings-content">\n                        <h2 class="settings-info-header">\n                            ', '\n                        </h2>\n                    </div>\n                </div>\n            </div>\n            <div class="settings-sub-wrapper">\n                <div class="settings-content">\n                    <div class="settings-scroller ', '">\n                        <div\n                            class="settings-scroller-content ', '"\n                        >\n                            <h2\n                                class="settings-sub-header ', '"\n                            >\n                                ', '\n                            </h2>\n                            <div\n                                class="settings-radio-line ', '"\n                            >\n                                ', '\n                            </div>\n                            <h2\n                                class="settings-sub-header ', '"\n                                style="opacity: ', ';"\n                            >\n                                ', '\n                            </h2>\n                            <div\n                                class="settings-radio-line ', '"\n                            >\n                                ', '\n                            </div>\n                            <h2\n                                class="settings-sub-header textfit-sub-header ', '"\n                                ?hidden=', "\n                            >\n                                ", '\n                            </h2>\n                            <div\n                                class="settings-radio-line ', '"\n                            >\n                                ', '\n                            </div>\n                        </div>\n                    </div>\n                    <h2\n                        class="settings-sub-header settings-show-more ', " ", '"\n                        ?hidden=', "\n                        ?disabled=", "\n                    >\n                        ", '\n                        <button\n                            class="show-more-btn ', '"\n                            @click=', "\n                            ?disabled=", '\n                        >\n                            <img\n                                src="', '"\n                                class="show-more-btn__icon"\n                                alt="down arrow icon"\n                            />\n                        </button>\n                    </h2>\n                </div>\n            </div>\n            <footer class="settings-footer multiple_nowrap">\n                <button\n                    class="reset-btn textfit-btn"\n                    @click=', "\n                    ?disabled=", "\n                >\n                    ", '\n                </button>\n                <button\n                    class="confirm-btn"\n                    @click=', "\n                    ?disabled=", "\n                >\n                    ", "\n                </button>\n            </footer>\n        "], ['\n            <h1 class="settings-header multiple">\n                <div>', '</div>\n                <button\n                    class="show-info-btn"\n                    @click=', '\n                >\n                    <img\n                        src="', '"\n                        class="info-btn__icon"\n                        alt="info icon"\n                    />\n                    <img\n                        src="', '"\n                        class="info-btn__icon-hover"\n                        alt="info icon"\n                    />\n                </button>\n            </h1>\n            <div class="settings-wrapper">\n                <div class="settings-info ', '">\n                    <div class="settings-content">\n                        <h2 class="settings-info-header">\n                            ', '\n                        </h2>\n                    </div>\n                </div>\n            </div>\n            <div class="settings-sub-wrapper">\n                <div class="settings-content">\n                    <div class="settings-scroller ', '">\n                        <div\n                            class="settings-scroller-content ', '"\n                        >\n                            <h2\n                                class="settings-sub-header ', '"\n                            >\n                                ', '\n                            </h2>\n                            <div\n                                class="settings-radio-line ', '"\n                            >\n                                ', '\n                            </div>\n                            <h2\n                                class="settings-sub-header ', '"\n                                style="opacity: ', ';"\n                            >\n                                ', '\n                            </h2>\n                            <div\n                                class="settings-radio-line ', '"\n                            >\n                                ', '\n                            </div>\n                            <h2\n                                class="settings-sub-header textfit-sub-header ', '"\n                                ?hidden=', "\n                            >\n                                ", '\n                            </h2>\n                            <div\n                                class="settings-radio-line ', '"\n                            >\n                                ', '\n                            </div>\n                        </div>\n                    </div>\n                    <h2\n                        class="settings-sub-header settings-show-more ', " ", '"\n                        ?hidden=', "\n                        ?disabled=", "\n                    >\n                        ", '\n                        <button\n                            class="show-more-btn ', '"\n                            @click=', "\n                            ?disabled=", '\n                        >\n                            <img\n                                src="', '"\n                                class="show-more-btn__icon"\n                                alt="down arrow icon"\n                            />\n                        </button>\n                    </h2>\n                </div>\n            </div>\n            <footer class="settings-footer multiple_nowrap">\n                <button\n                    class="reset-btn textfit-btn"\n                    @click=', "\n                    ?disabled=", "\n                >\n                    ", '\n                </button>\n                <button\n                    class="confirm-btn"\n                    @click=', "\n                    ?disabled=", "\n                >\n                    ", "\n                </button>\n            </footer>\n        "])), Object(M.a)(t), (function() {
                                e._showInfo(), p.i.execute("onUiConfirmSmall")
                            }), this.props.showInfo ? p.f.props.manifest.images["info_close.png"] : p.f.props.manifest.images["info_open.png"], this.props.showInfo ? p.f.props.manifest.images["info_close_hover.png"] : p.f.props.manifest.images["info_open_hover.png"], this.props.showInfo ? "settings-info--active" : "", Object(M.a)(n), this._parent.props.supportedLineSteps.length > 1 ? "lines" : "", this.props.showHidden ? "settings-scroller-content--scrolled" : "", this._parent.props.supportedLineSteps.length > 1 ? "lines" : "", p.m.getString("settings.autoSpin_count"), this._parent.props.supportedLineSteps.length > 1 ? "lines" : "", this.props.supportedSteps.map((function(t) {
                                return e._createRadio(t.toString(), t, e.props.count, "autospin_count", (function(t) {
                                    return e._setCount(parseInt(t, 10))
                                }))
                            })), this._parent.props.supportedLineSteps.length > 1 ? "lines" : "", 0 === this.props.supportedLossLimits.length ? 0 : 1, p.m.getString("settings.autoSpin_loss"), this._parent.props.supportedLineSteps.length > 1 ? "lines" : "", this.props.supportedLossLimits.length > 0 ? this.props.supportedLossLimits.map((function(t) {
                                return e._createRadio("" + t + p.m.getString("settings.autoSpin_multiply"), t, e.props.lossLimit, "autospin_loss", (function(t) {
                                    return e._setLossLimit(parseInt(t, 10))
                                }))
                            })) : this.props.supportedSteps.map((function() {
                                return e._createRadio("", 0, 0, "", (function() {}))
                            })), this._parent.props.supportedLineSteps.length > 1 ? "lines" : "", 0 === this.props.supportedWinLimits.length, p.m.getString("settings.autoSpin_win"), this._parent.props.supportedLineSteps.length > 1 ? "lines" : "", this.props.supportedWinLimits.map((function(t) {
                                return e._createRadio("" + t + p.m.getString("settings.autoSpin_multiply"), t, e.props.winLimit, "autospin_win", (function(t) {
                                    return e._setWinLimit(parseInt(t, 10))
                                }))
                            })), this.props.showHidden ? "settings-show-more--active" : "", this._parent.props.supportedLineSteps.length > 1 ? "lines" : "", 0 === this.props.supportedWinLimits.length, 0 === this.props.count || this.props.supportedLossLimits.length > 0 && 0 === this.props.lossLimit, p.m.getString("settings.optional_settings"), this.props.showHidden ? "show-more-btn--active" : "", (function() {
                                e._showHiddenSettings(), p.i.execute("onUiConfirmSmall")
                            }), 0 === this.props.count || this.props.supportedLossLimits.length > 0 && 0 === this.props.lossLimit, p.f.props.manifest.images["down_arrow.svg"], (function() {
                                e._resetOptions(), p.i.execute("onUiConfirmSmall")
                            }), 0 === this.props.count && 0 === this.props.lossLimit && 0 === this.props.winLimit, p.m.getString("settings.resetButton_label"), (function() {
                                return e._onConfirm()
                            }), 0 === this.props.count || this.props.supportedLossLimits.length > 0 && 0 === this.props.lossLimit, p.m.getString("settings.startButton_label"))
                        },
                        enumerable: !0,
                        configurable: !0
                    }), e.prototype._onConfirm = function() {
                        this._parent.actions.controlActions.setBetPerPattern(this._parent.props.bet), this._parent.actions.controlActions.setPatternsBet(this._parent.props.lines), this._parent.actions.controlActions.setAutoSpinOptions({
                            steps: this.props.count,
                            lossLimit: this.props.lossLimit,
                            winLimit: this.props.winLimit || void 0
                        }), this._parent.actions.controlActions.setSettingsShown(u.a.NONE), this._resetOptions(), this._parent.emit(ue.EVENT_CONFIRM)
                    }, e.prototype.onSelect = function() {
                        return this._showHiddenSettings(!1), this._showInfo(!1), this._parent.actions.controlActions.setSettingsShown(this.index), !1
                    }, z([a.b.bound, H("design:type", Function), H("design:paramtypes", [Number]), H("design:returntype", void 0)], e.prototype, "_setCount", null), z([a.b.bound, H("design:type", Function), H("design:paramtypes", [Number]), H("design:returntype", void 0)], e.prototype, "_setWinLimit", null), z([a.b.bound, H("design:type", Function), H("design:paramtypes", [Number]), H("design:returntype", void 0)], e.prototype, "_setLossLimit", null), z([a.b.bound, H("design:type", Function), H("design:paramtypes", []), H("design:returntype", void 0)], e.prototype, "_resetOptions", null), z([a.b.bound, H("design:type", Function), H("design:paramtypes", [Boolean]), H("design:returntype", void 0)], e.prototype, "_showHiddenSettings", null), z([a.b.bound, H("design:type", Function), H("design:paramtypes", [Boolean]), H("design:returntype", void 0)], e.prototype, "_showInfo", null), z([a.d, H("design:type", i.b), H("design:paramtypes", [])], e.prototype, "template", null), e
                }(),
                Y = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                J = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                q = function() {
                    function e() {
                        this.previewCoinValue = 0
                    }
                    return Y([a.f, J("design:type", Number)], e.prototype, "previewCoinValue", void 0), e
                }(),
                K = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                Q = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                Z = function() {
                    function e(e, t) {
                        this._data = e, this._parent = t
                    }
                    return Object.defineProperty(e.prototype, "previewCoinValue", {
                        get: function() {
                            return this._data.previewCoinValue
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "supportedSteps", {
                        get: function() {
                            return this._parent.supportedSteps
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "supportedLineSteps", {
                        get: function() {
                            return this._parent.supportedLineSteps
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "betPerPattern", {
                        get: function() {
                            return this._parent.betPerPattern
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "patternsBet", {
                        get: function() {
                            return this._parent.patternsBet
                        },
                        enumerable: !0,
                        configurable: !0
                    }), K([a.d, Q("design:type", Number), Q("design:paramtypes", [])], e.prototype, "previewCoinValue", null), K([a.d, Q("design:type", Array), Q("design:paramtypes", [])], e.prototype, "supportedSteps", null), K([a.d, Q("design:type", Array), Q("design:paramtypes", [])], e.prototype, "supportedLineSteps", null), K([a.d, Q("design:type", Number), Q("design:paramtypes", [])], e.prototype, "betPerPattern", null), K([a.d, Q("design:type", Number), Q("design:paramtypes", [])], e.prototype, "patternsBet", null), e
                }(),
                $ = function(e, t) {
                    return Object.defineProperty ? Object.defineProperty(e, "raw", {
                        value: t
                    }) : e.raw = t, e
                },
                ee = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                te = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                ne = function() {
                    function e(t, n) {
                        var o = this;
                        this.index = u.a.BET, this.icon = "bet_settings.svg", this.iconSelected = "bet_settings_active.svg", this._data = new q, this._parent = t, this._customComponents = n, this.props = new Z(this._data, this._parent.props), s.a.getInstance().addReaction(e.setBet, (function() {
                            return o.props.betPerPattern
                        }), (function(e) {
                            return o._parent.actions.settingsPanelActions.setBetPerPattern(e)
                        }), {
                            fireImmediately: !0
                        }), s.a.getInstance().addReaction(e.setLines, (function() {
                            return o.props.patternsBet
                        }), (function(e) {
                            return o._parent.actions.settingsPanelActions.setPatternsBet(e)
                        }), {
                            fireImmediately: !0
                        }), s.a.getInstance().addReaction(e.resetBet, (function() {
                            return o._parent.props.settingsShown
                        }), (function(e) {
                            e === u.a.NONE && (o._parent.actions.settingsPanelActions.setBetPerPattern(o.props.betPerPattern), o._data.previewCoinValue = 0)
                        }))
                    }
                    return Object.defineProperty(e.prototype, "textFit", {
                        get: function() {
                            return !0
                        },
                        enumerable: !0,
                        configurable: !0
                    }), e.prototype._createRadio = function(e, t, n, o, r, a) {
                        return Object(i.d)(h || (h = $(['\n            <label\n                class="radio-control ', '"\n                }\n                @mouseover=', "\n                @mouseleave=", '\n            >\n                <span class="radio-control__label">\n                    <span class="textFitted" style="display: inline-block; font-size: 23px;">\n                        ', '\n                    </span>\n                </span>\n                <input\n                    type="radio"\n                    class="radio-control__input"\n                    name="', '"\n                    value=', "\n                    @click=", "\n                />\n            </label>\n        "], ['\n            <label\n                class="radio-control ', '"\n                }\n                @mouseover=', "\n                @mouseleave=", '\n            >\n                <span class="radio-control__label">\n                    <span class="textFitted" style="display: inline-block; font-size: 23px;">\n                        ', '\n                    </span>\n                </span>\n                <input\n                    type="radio"\n                    class="radio-control__input"\n                    name="', '"\n                    value=', "\n                    @click=", "\n                />\n            </label>\n        "])), n === t ? "radio-control--active" : "", a ? function(e) {
                            return a(e.target.querySelector("input").value)
                        } : void 0, a ? function(e) {
                            return a()
                        } : void 0, Object(M.a)(e), o, t, (function(e) {
                            p.i.execute("onUiOptionsSelect"), r(e.target.value)
                        }))
                    }, e.prototype._showCoinValue = function(e) {
                        void 0 === e && (e = ""), this._data.previewCoinValue = e.length > 0 ? parseFloat(e) : 0
                    }, Object.defineProperty(e.prototype, "template", {
                        get: function() {
                            var e = this,
                                t = p.m.getString("settings.bet_label");
                            return Object(i.d)(b || (b = $(['\n            <h1 class="settings-header">', '</h1>\n            <div class="settings-sub-wrapper">\n                <div class="settings-content">\n                    <div class="settings-scroller-content">\n                        ', "\n                        ", '\n                        <div\n                            class="settings-radio-line bet ', '"\n                        >\n                            ', "\n                        </div>\n                        ", '\n                    </div>\n                </div>\n            </div>\n            <footer class="settings-footer multiple">\n                <div>\n                    <label class="left ', '"\n                        >', "\n                        ", '</label\n                    >\n                    <label class="right ', '">\n                        ', "", '</label\n                    >\n                </div>\n                <button class="confirm-btn max-width" @click=', ">\n                    ", "\n                </button>\n            </footer>\n        "], ['\n            <h1 class="settings-header">', '</h1>\n            <div class="settings-sub-wrapper">\n                <div class="settings-content">\n                    <div class="settings-scroller-content">\n                        ', "\n                        ", '\n                        <div\n                            class="settings-radio-line bet ', '"\n                        >\n                            ', "\n                        </div>\n                        ", '\n                    </div>\n                </div>\n            </div>\n            <footer class="settings-footer multiple">\n                <div>\n                    <label class="left ', '"\n                        >', "\n                        ", '</label\n                    >\n                    <label class="right ', '">\n                        ', "", '</label\n                    >\n                </div>\n                <button class="confirm-btn max-width" @click=', ">\n                    ", "\n                </button>\n            </footer>\n        "])), Object(M.a)(t), this._customComponents.filter((function(e) {
                                return e.order === o.Front
                            })).map((function(e) {
                                return e.template
                            })), this.props.supportedLineSteps.length > 1 ? Object(i.d)(g || (g = $(['\n                                  <h2 class="settings-sub-header lines">\n                                      ', '\n                                  </h2>\n                                  <div class="settings-radio-line lines">\n                                      ', '\n                                  </div>\n                                  <h2 class="settings-sub-header lines">\n                                      ', "\n                                  </h2>\n                              "], ['\n                                  <h2 class="settings-sub-header lines">\n                                      ', '\n                                  </h2>\n                                  <div class="settings-radio-line lines">\n                                      ', '\n                                  </div>\n                                  <h2 class="settings-sub-header lines">\n                                      ', "\n                                  </h2>\n                              "])), p.m.getString("settings.lines_label"), this.props.supportedLineSteps.map((function(t) {
                                return e._createRadio(t.toString(), t, e._parent.props.lines, "lines_count", (function(t) {
                                    return e._parent.actions.settingsPanelActions.setPatternsBet(parseFloat(t))
                                }))
                            })), p.m.getString("settings.totalBet_label")) : Object(i.d)(m || (m = $(['\n                                  <div class="settings-space"></div>\n                              '], ['\n                                  <div class="settings-space"></div>\n                              ']))), this._parent.props.supportedLineSteps.length > 1 ? "lines" : "", this.props.supportedSteps.map((function(t) {
                                return e._createRadio(p.c.format(t * e._parent.props.lines, void 0, !1, !1, "<i>$1</i>"), t, e._parent.props.bet, "bet_total", (function(t) {
                                    return e._parent.actions.settingsPanelActions.setBetPerPattern(parseFloat(t))
                                }), (function(t) {
                                    return e._showCoinValue(t)
                                }))
                            })), this._customComponents.filter((function(e) {
                                return e.order === o.Back
                            })).map((function(e) {
                                return e.template
                            })), this._parent.props.supportedLineSteps.length > 1 ? "lines" : "", Object(M.a)(p.m.getString(1 === this.props.supportedLineSteps.length ? "settings.coins_label" : "settings.betPerLine_label")), 1 === this.props.supportedLineSteps.length ? this._parent.props.lines : "", this._parent.props.supportedLineSteps.length > 1 ? "lines" : "", 1 === this.props.supportedLineSteps.length ? Object(M.a)(p.m.getString("settings.coinsValue_label")) : "", p.c.format(this._data.previewCoinValue > 0 ? this._data.previewCoinValue : this._parent.props.bet), (function() {
                                return e._onConfirm()
                            }), p.m.getString("settings.okButton_label"))
                        },
                        enumerable: !0,
                        configurable: !0
                    }), e.prototype._onConfirm = function() {
                        p.i.execute("onUiOptionsClose"), this._parent.actions.controlActions.setBetPerPattern(this._parent.props.bet), this._parent.actions.controlActions.setPatternsBet(this._parent.props.lines), this._parent.actions.controlActions.setSettingsShown(u.a.NONE), this._parent.emit(ue.EVENT_CONFIRM)
                    }, e.prototype.onSelect = function() {
                        return this._parent.actions.controlActions.setSettingsShown(this.index), !1
                    }, e.setBet = "settingsBetSet", e.setLines = "settingsLinesSet", e.resetBet = "settingsBetReset", ee([a.b.bound, te("design:type", Function), te("design:paramtypes", [String]), te("design:returntype", void 0)], e.prototype, "_showCoinValue", null), ee([a.d, te("design:type", i.b), te("design:paramtypes", [])], e.prototype, "template", null), e
                }(),
                oe = function(e, t) {
                    return Object.defineProperty ? Object.defineProperty(e, "raw", {
                        value: t
                    }) : e.raw = t, e
                },
                re = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                ie = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                ae = function() {
                    function e(t) {
                        var n = this;
                        this.index = u.a.GAME, this.icon = "settings.svg", this.iconSelected = "settings_active.svg", this._wasLastToggle = !1, this._changeConfirmed = !1, this._isVisible = !1, this._consoleMuteChange = !1, this._parent = t, p.i.tags.forEach((function(e) {
                            var t = n._parent.props.assetPack.charAt(0).toUpperCase() + n._parent.props.assetPack.slice(1) + e,
                                o = n._parent.props.preferences.get(t);
                            void 0 === o && (o = "On"), p.i.toggleTagSounds("Off" === o, e), n._parent.actions.settingsPanelActions.setTagMutePrefs(t, o)
                        })), p.i.tags.length > 0 && s.a.getInstance().addReaction(e.setMute, (function() {
                            return n._parent.props.muteAllEnabled
                        }), (function(e) {
                            n._wasLastToggle || p.i.tags.forEach((function(t) {
                                n._parent.actions.settingsPanelActions.setTagMuteEnabled(t, e), n._parent.actions.settingsPanelActions.setMuteAllEnabled(e), n._parent.actions.settingsPanelActions.setTagMutePrefs("muteAllEnabled", n._parent.props.muteEnabled.toString())
                            }))
                        })), s.a.getInstance().addReaction(e.setMuteConsole, (function() {
                            return c.b.muteEnabled
                        }), (function(e) {
                            n._wasLastToggle || !1 !== n._changeConfirmed || p.i.tags.forEach((function(t) {
                                n._parent.actions.settingsPanelActions.setTagMuteEnabled(t, e), n._parent.actions.settingsPanelActions.setMuteAllEnabled(e), n._parent.actions.controlActions.setTagMuteEnabled(t, e), n._parent.actions.settingsPanelActions.setTagMutePrefs("muteAllEnabled", n._parent.props.muteEnabled.toString()), p.i.toggleTagSounds(e, t), n._consoleMuteChange = !0
                            }))
                        })), s.a.getInstance().addReaction(e.resetMute, (function() {
                            return n._parent.props.settingsShown
                        }), (function(e) {
                            e === u.a.NONE && !0 !== n._changeConfirmed && !0 === n._isVisible && n.resetSelections(), e === u.a.NONE && !0 === n._changeConfirmed && !1 === n._isVisible && (n._changeConfirmed = !1)
                        }))
                    }
                    return e.prototype.resetSelections = function() {
                        var e = this;
                        this._isVisible = !1, p.i.tags.forEach((function(t) {
                            var n = e._parent.props.assetPack.charAt(0).toUpperCase() + e._parent.props.assetPack.slice(1) + t,
                                o = e._parent.props.preferences.get(n);
                            o === e._parent.props.tagMuteMap.get(n) || e._consoleMuteChange || e._parent.actions.settingsPanelActions.setTagMutePrefs(n, o), e._consoleMuteChange && (e._parent.actions.settingsPanelActions.setTagMutePrefs(n, e._parent.props.muteEnabled ? "Off" : "On"), e._parent.actions.settingsPanelActions.setTagMuteEnabled(t, e._parent.props.muteEnabled), e._parent.actions.settingsPanelActions.setMuteAllEnabled(e._parent.props.muteEnabled))
                        })), this._parent.actions.settingsPanelActions.setTagMutePrefs("muteAllEnabled", this._parent.props.muteEnabled.toString()), this._parent.actions.controlActions.setMuteEnabled(this._parent.props.muteEnabled), this._consoleMuteChange = !1
                    }, Object.defineProperty(e.prototype, "textFit", {
                        get: function() {
                            return !1
                        },
                        enumerable: !0,
                        configurable: !0
                    }), e.prototype._createToggle = function(e, t, n, o, r) {
                        var a;
                        return a = r ? o ? "Off" === e[t].get(r) : "Off" !== e[t].get(r) : o ? !e[t] : e[t], Object(i.d)(_ || (_ = oe(['\n            <label class="toggle-control">\n                <input\n                    type="checkbox"\n                    name="soundToggle"\n                    class="toggle-control__checkbox"\n                    ?checked=', "\n                    @change=", '\n                />\n                <div class="toggle-control__slider ', '">\n                    <span class="toggle-control__label">ON</span>\n                    <div class="toggle-control__icon">\n                        <img\n                            src="', '"\n                            class="toggle-setting-btn__icon"\n                            alt="Toggle icon"\n                        />\n                    </div>\n                    <span class="toggle-control__label">OFF</span>\n                </div>\n            </label>\n        '], ['\n            <label class="toggle-control">\n                <input\n                    type="checkbox"\n                    name="soundToggle"\n                    class="toggle-control__checkbox"\n                    ?checked=', "\n                    @change=", '\n                />\n                <div class="toggle-control__slider ', '">\n                    <span class="toggle-control__label">ON</span>\n                    <div class="toggle-control__icon">\n                        <img\n                            src="', '"\n                            class="toggle-setting-btn__icon"\n                            alt="Toggle icon"\n                        />\n                    </div>\n                    <span class="toggle-control__label">OFF</span>\n                </div>\n            </label>\n        '])), a, (function(e) {
                            p.i.execute("onUiOptionsSelect"), n()
                        }), a ? "toggle-control_slider--active" : "", a ? p.f.props.manifest.images["tick.svg"] : p.f.props.manifest.images["close.svg"])
                    }, e.prototype._onConfirm = function() {
                        var e = this;
                        this._changeConfirmed = !0, this._isVisible = !1, p.i.execute("onUiOptionsClose"), this._parent.actions.controlActions.setMuteEnabled(this._parent.props.muteAllEnabled), p.i.tags.forEach((function(t) {
                            var n = e._parent.props.assetPack.charAt(0).toUpperCase() + e._parent.props.assetPack.slice(1) + t,
                                o = e._parent.props.tagMuteMap.get(n);
                            p.k.updateValue(n, o), p.i.toggleTagSounds("Off" === o, t)
                        })), this._parent.actions.controlActions.setBetPerPattern(this._parent.props.bet), this._parent.actions.controlActions.setPatternsBet(this._parent.props.lines), this._parent.actions.controlActions.setSettingsShown(u.a.NONE), this._parent.emit(ue.EVENT_CONFIRM), this._consoleMuteChange = !1
                    }, Object.defineProperty(e.prototype, "template", {
                        get: function() {
                            var e = this;
                            return Object(i.d)(v || (v = oe(['\n            <h1 class="settings-header">', '</h1>\n            <div class="settings-content">\n                <div class="settings-space toggle"></div>\n                <div class="toggle-line">\n                    <span class="toggle-line__label">', "</span>\n                    ", "\n                </div>\n                ", '\n            </div>\n            <footer class="settings-footer">\n                <button class="confirm-btn max-width" @click=', ">\n                    ", "\n                </button>\n            </footer>\n        "], ['\n            <h1 class="settings-header">', '</h1>\n            <div class="settings-content">\n                <div class="settings-space toggle"></div>\n                <div class="toggle-line">\n                    <span class="toggle-line__label">', "</span>\n                    ", "\n                </div>\n                ", '\n            </div>\n            <footer class="settings-footer">\n                <button class="confirm-btn max-width" @click=', ">\n                    ", "\n                </button>\n            </footer>\n        "])), Object(M.a)(p.m.getString("settings.game_label")), p.m.getString("settings.soundOn_label"), this._createToggle(this._parent.props, "muteAllEnabled", (function() {
                                return e._parent.actions.settingsPanelActions.setMuteAllEnabled(!e._parent.props.muteAllEnabled)
                            }), !0), p.i.tags.map((function(t) {
                                return Object(i.d)(S || (S = oe(['\n                            <div class="toggle-line">\n                                <span class="toggle-line__label"\n                                    >', "</span\n                                >\n                                ", "\n                            </div>\n                        "], ['\n                            <div class="toggle-line">\n                                <span class="toggle-line__label"\n                                    >', "</span\n                                >\n                                ", "\n                            </div>\n                        "])), p.m.getString("settings." + (t.charAt(0).toLowerCase() + t.slice(1)) + "On_label"), e._createToggle(e._parent.props, "tagMuteMap", (function() {
                                    var n, o = !("Off" !== e._parent.props.tagMuteMap.get(e._parent.props.assetPack.charAt(0).toUpperCase() + e._parent.props.assetPack.slice(1) + t));
                                    for (e._wasLastToggle = !1, n = 0; n < p.i.tags.length && (p.i.tags[n] === t || "Off" === e._parent.props.tagMuteMap.get(e._parent.props.assetPack.charAt(0).toUpperCase() + e._parent.props.assetPack.slice(1) + p.i.tags[n])); n++);
                                    n === p.i.tags.length && (e._wasLastToggle = !0, e._parent.actions.settingsPanelActions.setMuteAllEnabled(!o), e._wasLastToggle = !1), e._parent.actions.settingsPanelActions.setTagMuteEnabled(t, !o)
                                }), !1, e._parent.props.assetPack.charAt(0).toUpperCase() + e._parent.props.assetPack.slice(1) + t))
                            })), (function() {
                                return e._onConfirm()
                            }), p.m.getString("settings.okButton_label"))
                        },
                        enumerable: !0,
                        configurable: !0
                    }), e.prototype.onSelect = function() {
                        var e = this;
                        this._parent.actions.controlActions.setSettingsShown(this.index), this._changeConfirmed = !1, this._isVisible = !0, this._parent.actions.settingsPanelActions.setTagMutePrefs("muteAllEnabled", this._parent.props.muteEnabled.toString());
                        var t = p.f.props.assetPack.charAt(0).toUpperCase() + p.f.props.assetPack.slice(1) + "Sound";
                        return this._parent.actions.settingsPanelActions.setTagMutePrefs(t, this._parent.props.preferences.get(t)), p.i.tags.forEach((function(t) {
                            var n = e._parent.props.assetPack.charAt(0).toUpperCase() + e._parent.props.assetPack.slice(1) + t,
                                o = e._parent.props.preferences.get(n);
                            void 0 === o && (o = "On"), e._parent.actions.settingsPanelActions.setTagMutePrefs(n, o)
                        })), !1
                    }, e.setMute = "settingsMuteSet", e.resetMute = "settingsMuteReset", e.setMuteConsole = "settingMuteFromConsole", re([a.d, ie("design:type", i.b), ie("design:paramtypes", [])], e.prototype, "template", null), e
                }(),
                se = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                pe = function(e, t) {
                    return Object.defineProperty ? Object.defineProperty(e, "raw", {
                        value: t
                    }) : e.raw = t, e
                },
                le = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                ce = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                ue = function(e) {
                    function t() {
                        for (var n = [], r = 0; r < arguments.length; r++) n[r] = arguments[r];
                        var l = e.call(this) || this;
                        l._tabs = [], l._lastIndex = u.a.NONE;
                        var f = new E;
                        l.props = new B(f, c.b);
                        var d = {
                            controlActions: c.a.controlActions,
                            settingsPanelActions: new T(f)
                        };
                        l.actions = d;
                        var y = n.map((function(e) {
                                return new e(l)
                            })),
                            h = new ne(l, y.filter((function(e) {
                                return !e.index
                            }))),
                            g = new X(l);
                        l._tabs = [h, new ae(l)], l._textFitted = [!h.textFit, !l._tabs[l._tabs.length - 1].textFit], l.props.assetPack.includes("mini") || !0 !== l.props.autoSpinInfo.enable || (l._tabs.splice(1, 0, g), l._textFitted.splice(1, 0, !g.textFit)), y.forEach((function(e) {
                            e.index && (e.order !== o.Front ? (l._tabs.push(e), l._textFitted.push(!0)) : (l._tabs.unshift(e), l._textFitted.unshift(!0)))
                        })), l._div = document.createElement("div"), l._div.id = "settingsPanel", l._div.addEventListener("gesturestart", (function(e) {
                            return e.preventDefault()
                        }));
                        var m, b = document.querySelector("#root");
                        if (null === b) throw new Error("Failed to locate #root html container");
                        return b.appendChild(l._div), s.a.getInstance().addAutoRun(t.renderPanel, (function() {
                            if (Object(i.e)(l.template, l._div), l.props.settingsShown > 0) {
                                var e = l.getTabElement();
                                l._textFitted[l.props.settingsShown - 1] || (l.textFitShown(e), l._textFitted[l.props.settingsShown - 1] = !0), l.textFitButtons(e)
                            }
                        })), s.a.getInstance().addReaction(t.openPanel, (function() {
                            return l.props.settingsShown
                        }), (function(e) {
                            l._lastIndex === u.a.NONE && e !== l._lastIndex && p.i.execute(e === u.a.AUTO_SPIN ? "onUiAutoPlayOpen" : "onUiOptionsOpen"), l._lastIndex = e
                        })), l.props.assetPack.includes("desktop") ? Object(a.c)((function() {
                            if (p.l.width && p.l.height && p.l.orientation) {
                                var e = l.getTabElement();
                                l.textFitShown(e), l.textFitButtons(e)
                            }
                        }), {
                            delay: 1
                        }) : s.a.getInstance().addReaction(t.orientationChanged, (function() {
                            return p.l.orientation
                        }), (function(e) {
                            var t = l.getTabElement();
                            l.textFitShown(t), l.textFitButtons(t)
                        }), {
                            delay: 1
                        }), s.a.getInstance().addReaction(t.linesChanged, (function() {
                            return l.props.lines
                        }), (function(e) {
                            var t = l.getTabElement();
                            l.textFitShown(t), null === t && (l._textFitted[u.a.BET - 1] = !1)
                        }), {
                            delay: 1
                        }), p.j.get(0).renderer.plugins.interaction.addListener("pointerup", (function(e) {
                            m = e.data.originalEvent
                        })), l._div.addEventListener("click", (function(e) {
                            m && e.timeStamp === m.timeStamp && e.stopPropagation()
                        }), !0), l
                    }
                    return se(t, e), t.prototype.getTabElement = function() {
                        var e = this,
                            t = this._tabs.find((function(t) {
                                return t.index === e.props.settingsShown
                            }));
                        return t && t.textFit ? this._div.querySelector("#tab-page-" + u.a[t.index]) : null
                    }, t.prototype.textFitShown = function(e) {
                        if (e) {
                            var t = e.getElementsByClassName("radio-control__label");
                            t.length > 0 && l(t, {
                                maxFontSize: parseFloat(window.getComputedStyle(t.item(0), null).getPropertyValue("font-size"))
                            }), (t = e.getElementsByClassName("textfit-sub-header")).length > 0 && null === t.item(0).attributes.getNamedItem("hidden") && l(t, {
                                maxFontSize: parseFloat(window.getComputedStyle(t.item(0), null).getPropertyValue("font-size"))
                            })
                        }
                    }, t.prototype.textFitButtons = function(e) {
                        if (e) {
                            var t = e.getElementsByClassName("textfit-btn");
                            t.length > 0 && l(t, {
                                maxFontSize: parseFloat(window.getComputedStyle(t.item(0), null).getPropertyValue("font-size"))
                            })
                        }
                    }, t.prototype._createTabTemplate = function(e) {
                        var t = this.props.settingsShown === e.index;
                        return Object(i.d)(C || (C = pe(['\n            <li role="presentation" class="settings-tab ', '">\n                <button\n                    role="tab"\n                    id="#tab-', '"\n                    class="settings-tab__link"\n                    aria-selected="', '"\n                    tabindex="', '"\n                    @click=', '\n                >\n                    <img\n                        src="', '"\n                        class="settings-tab__icon"\n                        alt="', ' icon"\n                    />\n                </button>\n            </li>\n        '], ['\n            <li role="presentation" class="settings-tab ', '">\n                <button\n                    role="tab"\n                    id="#tab-', '"\n                    class="settings-tab__link"\n                    aria-selected="', '"\n                    tabindex="', '"\n                    @click=', '\n                >\n                    <img\n                        src="', '"\n                        class="settings-tab__icon"\n                        alt="', ' icon"\n                    />\n                </button>\n            </li>\n        '])), t ? "settings-tab--active" : "", u.a[e.index], t, t ? 0 : -1, (function(t) {
                            p.i.execute("onUiOptionsSelect"), e.onSelect(t)
                        }), t ? p.f.props.manifest.images[e.iconSelected] : p.f.props.manifest.images[e.icon], u.a[e.index])
                    }, t.prototype._createTabPageTemplate = function(e) {
                        var t = this.props.settingsShown === e.index;
                        return Object(i.d)(O || (O = pe(['\n            <section\n                role="tabpanel"\n                aria-labelledby="tab-page-', '"\n                id="tab-page-', '"\n                class="settings-tab-page ', '"\n                ?hidden=', '\n                tabindex="-1"\n            >\n                ', "\n            </section>\n        "], ['\n            <section\n                role="tabpanel"\n                aria-labelledby="tab-page-', '"\n                id="tab-page-', '"\n                class="settings-tab-page ', '"\n                ?hidden=', '\n                tabindex="-1"\n            >\n                ', "\n            </section>\n        "])), u.a[e.index], u.a[e.index], t ? "settings-tab-page--active" : "", !t, e.template)
                    }, Object.defineProperty(t.prototype, "template", {
                        get: function() {
                            var e = this,
                                t = this.props.settingsShown;
                            return Object(i.d)(P || (P = pe(['\n            <div class="settings-overlay ', '">\n                <div class="settings-panel ', '">\n                    <nav class="settings-nav">\n                        <ul role="tablist" class="settings-tabs">\n                            ', '\n                        </ul>\n                        <button\n                            class="close-settings-btn"\n                            @click=', '\n                        >\n                            <img\n                                src="', '"\n                                class="close-settings-btn__icon"\n                                alt="Close icon"\n                            />\n                        </button>\n                    </nav>\n                    ', "\n                </div>\n            </div>\n        "], ['\n            <div class="settings-overlay ', '">\n                <div class="settings-panel ', '">\n                    <nav class="settings-nav">\n                        <ul role="tablist" class="settings-tabs">\n                            ', '\n                        </ul>\n                        <button\n                            class="close-settings-btn"\n                            @click=', '\n                        >\n                            <img\n                                src="', '"\n                                class="close-settings-btn__icon"\n                                alt="Close icon"\n                            />\n                        </button>\n                    </nav>\n                    ', "\n                </div>\n            </div>\n        "])), t !== u.a.NONE ? "settings-overlay--active" : "", this.props.supportedLineSteps.length > 1 ? "lines" : "", this._tabs.map((function(t) {
                                return e._createTabTemplate(t)
                            })), (function() {
                                p.i.execute("onUiOptionsClose"), e.actions.controlActions.setSettingsShown(u.a.NONE)
                            }), p.f.props.manifest.images["close.svg"], this._tabs.map((function(t) {
                                return e._createTabPageTemplate(t)
                            })))
                        },
                        enumerable: !0,
                        configurable: !0
                    }), t.EVENT_CONFIRM = "confirm", t.renderPanel = "settingsRender", t.openPanel = "settingsOpen", t.orientationChanged = "settingsOrientationChanged", t.linesChanged = "settingsLinesChanged", le([a.d, ce("design:type", i.b), ce("design:paramtypes", [])], t.prototype, "template", null), t
                }(r.EventEmitter)
        },
        24: function(e, t, n) {
            "use strict";
            n.d(t, "b", (function() {
                return r
            })), n.d(t, "a", (function() {
                return p
            }));
            var o, r, i = n(22),
                a = n(59),
                s = n(3);
            n(119);
            ! function(e) {
                e[e.STATIC = 0] = "STATIC", e[e.IDLE = 1] = "IDLE", e[e.PRESHOW = 2] = "PRESHOW", e[e.LOOP = 3] = "LOOP", e[e.LANDS = 4] = "LANDS"
            }(o || (o = {})),
            function(e) {
                e[e.START = 0] = "START", e[e.MIDDLE = 1] = "MIDDLE", e[e.END = 2] = "END"
            }(r || (r = {}));
            var p = function() {
                function e() {
                    var e = this;
                    this._id = 0, this.pooledObjects = new Map, this.symbolsConfigDef = null, this.name = "", this.swapName = "", this.setSymbolsConfig = function(t) {
                        null !== t && (e.symbolsConfigDef = t)
                    }, this.setPooledObjects = function() {
                        e.pooledObjects = e.addObjectsToPool()
                    }
                }
                return e.prototype.addObjectsToPool = function() {
                    var e = new Map;
                    if (null !== this.symbolsConfigDef && null !== this.symbolsConfigDef.pool)
                        for (var t = 0; t < this.symbolsConfigDef.pool; t++)
                            if (void 0 !== this.sprite) {
                                var n = this.createNewPoolObject(this.sprite);
                                e.set(n.name + "_" + n.id, n)
                            }
                    return e
                }, e.prototype.createNewPoolObject = function(e, t) {
                    var n, o = "",
                        r = this._id++;
                    if (e instanceof i.a)(n = new i.a(e.spine.skeleton.data)).name = e.name + r, o = e.name;
                    else if (e instanceof a.a)(n = new a.a(e.sprite.textures)).name = e.name + r, o = e.name;
                    else {
                        var p = e;
                        (n = new s.Sprite(p.texture)).width = p.width, n.height = p.height, void 0 !== t ? (n.name = t + r, o = t) : (n.name = p.name + r, o = p.name)
                    }
                    return {
                        name: o,
                        id: r,
                        isUsed: !1,
                        object: n
                    }
                }, e.prototype.getPooledObject = function(e) {
                    var t;
                    if (this.pooledObjects.forEach((function(n) {
                            var o = n.object;
                            (o instanceof i.a && n.name === e || o instanceof a.a && n.name === e || o instanceof s.Sprite && n.name === e) && (void 0 === t && (t = n), n.isUsed || (t = n))
                        })), void 0 === t || t.isUsed) {
                        if (void 0 === t) throw new Error("Could not find object with name: " + e);
                        (t = this.createNewPoolObject(t.object, t.name)).isUsed = !0, this.pooledObjects.set(t.name + "_" + t.id, t)
                    } else t.isUsed = !0;
                    return t
                }, e.prototype.returnPooledObject = function(e) {
                    var t = this.pooledObjects.get(e);
                    if (void 0 === t) throw new Error("Could not find object with name: " + e);
                    t.isUsed = !1
                }, e.prototype.setSprite = function(e) {
                    this.sprite = e
                }, e.STATIC_SUFFIX = "_static", e
            }()
        },
        28: function(e, t, n) {
            "use strict";
            n.d(t, "a", (function() {
                return s
            }));
            var o = n(20),
                r = n(66),
                i = n(2),
                a = function() {
                    function e(e) {
                        this._data = e
                    }
                    return e.prototype.setName = function(e) {
                        this._data.name = e
                    }, e.prototype.setCellIndex = function(e) {
                        this._data.cellIndex = e
                    }, e.prototype.setStopIndex = function(e) {
                        this._data.stopIndex = e
                    }, e.prototype.setPoolObjectName = function(e) {
                        this._data.poolObjectName = e
                    }, e
                }(),
                s = function() {
                    function e(e, t, n) {
                        this.offsetX = 0, this.offsetY = 0, this._parent = new o.a(e, t), this._props = n, this._actions = new a(n.data)
                    }
                    return Object.defineProperty(e.prototype, "props", {
                        get: function() {
                            return this._props
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "container", {
                        get: function() {
                            return this._container
                        },
                        set: function(e) {
                            this._container = e
                        },
                        enumerable: !0,
                        configurable: !0
                    }), e.prototype.addCellDefText = function() {
                        if (void 0 !== this.cellDef) {
                            var e = r.a.getInstance().addText(this.cellDef.name + "\n" + this.cellDef.text);
                            void 0 !== this.container && this.container.addChild(e)
                        }
                    }, e.prototype.addStopIndexText = function() {
                        var e = this.props.data.stopIndex;
                        if (void 0 === this.stopDef || null == e) throw new Error("Reel Cell Component -- Stop Index is undefined");
                        var t = r.a.getInstance().addText(this.stopDef.symbolId + "\n" + e);
                        void 0 !== this.container && (t.x = this.container.width - t.width), void 0 !== this.container && this.container.addChild(t)
                    }, Object.defineProperty(e.prototype, "cellDef", {
                        get: function() {
                            if (i.b.response.populationOutcomes.has(this._parent.props.parentProps.reelSetName)) {
                                var e = i.b.response.populationOutcomes.get(this._parent.props.parentProps.reelSetName);
                                if (void 0 !== e) {
                                    var t = e.entry.get(this._parent.props.name);
                                    if (void 0 !== t) return t.cells[this.props.cellIndex]
                                }
                            }
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "stopDef", {
                        get: function() {
                            if (i.b.paytable.stripsInfo.has(this._parent.props.parentProps.stripInfoName)) {
                                var e = i.b.paytable.stripsInfo.get(this._parent.props.parentProps.stripInfoName);
                                if (void 0 !== e) {
                                    var t = e.strips.get(this._parent.props.name);
                                    if (void 0 !== t && null !== this.props.stopIndex) return t.stops[this.props.stopIndex]
                                }
                            }
                        },
                        enumerable: !0,
                        configurable: !0
                    }), e.prototype.setName = function(e) {
                        this._actions.setName(e)
                    }, e.prototype.setCellIndex = function(e) {
                        this._actions.setCellIndex(e)
                    }, e.prototype.setStopIndex = function(e) {
                        this._actions.setStopIndex(e)
                    }, e.prototype.setPoolObjectName = function(e) {
                        this._actions.setPoolObjectName(e)
                    }, e.CELL_PREFIX = "cell_", e
                }()
        },
        32: function(e, t, n) {
            "use strict";
            n.d(t, "b", (function() {
                return o
            })), n.d(t, "a", (function() {
                return d
            }));
            var o, r = n(1),
                i = n(11),
                a = n(3),
                s = n(2),
                p = n(108),
                l = function() {
                    this.symbolSetConfig = new Map
                },
                c = n(69),
                u = n(24),
                f = function() {
                    function e() {
                        var e = this;
                        this.symbolsConfig = "SymbolsConfig", this.configUtils = c.a.getInstance(), this.getSymbolSetConfigDef = function(t) {
                            var n = {
                                type: o.STANDARD
                            };
                            return n.type = e.getSymbolSetType(t["@type"]), n
                        }, this.getSymbolConfigDef = function(t) {
                            return {
                                isBonus: e.configUtils.getBool(t["@isBonus"]),
                                isTall: e.configUtils.getBool(t["@isTall"]),
                                isBleeding: e.configUtils.getBool(t["@isBleeding"]),
                                isGiant: e.configUtils.getBool(t["@isGiant"]),
                                stack: e.getSymbolStack(t["@stack"]),
                                pool: e.configUtils.getNumber(t["@pool"]),
                                layer: e.configUtils.getNumber(t["@layer"]),
                                symbolBounds: t["@symbolBounds"],
                                suffix: t["@suffix"],
                                offsetX: e.configUtils.getNumber(t["@offsetX"]),
                                offsetY: e.configUtils.getNumber(t["@offsetY"])
                            }
                        }, this.getSymbolSetType = function(e) {
                            var t = o.STANDARD;
                            switch (e) {
                                case "standard":
                                    t = o.STANDARD
                            }
                            return t
                        }, this.getSymbolStack = function(e) {
                            var t = u.b.END;
                            switch (e) {
                                case "start":
                                    t = u.b.START;
                                    break;
                                case "middle":
                                    t = u.b.MIDDLE;
                                    break;
                                case "end":
                                    t = u.b.END
                            }
                            return t
                        }
                    }
                    return e.prototype.translate = function(e) {
                        if (null != e) {
                            this._platformData = e;
                            var t = new l;
                            return t.symbolSetConfig = this.getSymbolSetConfigData(e), t.symbolSetConfig
                        }
                        return null
                    }, e.prototype.getSymbolSetConfigData = function(e) {
                        var t = new Map;
                        if (p.a.getInstance().exists(e.BaseGameSymbolSetConfig)) {
                            var n = this.getSymbolSetConfig(e.BaseGameSymbolSetConfig);
                            t.set(n.name, n)
                        }
                        if (p.a.getInstance().exists(e.FreeSpinSymbolSetConfig)) {
                            n = this.getSymbolSetConfig(e.FreeSpinSymbolSetConfig);
                            t.set(n.name, n)
                        }
                        return t
                    }, e.prototype.getSymbolSetConfig = function(e) {
                        var t = {
                            name: e["@name"],
                            config: e["@config"],
                            symbolsConfig: e[this.symbolsConfig]
                        };
                        if (p.a.getInstance().exists(t.config)) {
                            var n = this.getSymbolSetConfigDef(this._platformData[t.config]);
                            t.config = n
                        }
                        if (p.a.getInstance().exists(t.symbolsConfig)) {
                            var o = this.getSymbolsConfigData(t.symbolsConfig);
                            t.symbolsConfig = o
                        }
                        return t
                    }, e.prototype.getSymbolsConfigData = function(e) {
                        var t = this,
                            n = new Map;
                        return Object.keys(e).forEach((function(o, r) {
                            var i = t.getSymbolsConfig(e[o]);
                            n.set(o, i)
                        })), n
                    }, e.prototype.getSymbolsConfig = function(e) {
                        var t, n = {
                            config: e["@config"]
                        };
                        return p.a.getInstance().exists(n.config) ? (t = this.getSymbolConfigDef(this._platformData[n.config]), n.config = t) : (t = this.getSymbolConfigDef(e), n.config = t), n
                    }, e
                }();
            ! function(e) {
                e[e.STANDARD = 0] = "STANDARD"
            }(o || (o = {}));
            var d = function() {
                function e() {
                    var t = this;
                    this.symbols = new Map, this.applySymbolSetConfig = function(n) {
                        if (null !== t.symbolSetConfigData) {
                            var o = t.getSymbolSetName(n);
                            t.symbolSetConfigData.has(o) || (o = e.DEFAULT_SYMBOL_SET);
                            var r = t.symbolSetConfigData.get(o);
                            if (void 0 !== r) {
                                t.symbolSetType = r.config.type;
                                var i = r.symbolsConfig;
                                t.symbols.size > 0 && s.b.stage !== s.b.nextStage ? (t.symbols.forEach((function(e) {
                                    e.pooledObjects.clear()
                                })), t.symbols.clear(), t.symbols = t.createSymbolComponents(i)) : t.symbols.size <= 0 && (t.symbols = t.createSymbolComponents(i))
                            }
                        }
                    }, this.translateSymbolSetConfig = function(e) {
                        return (new f).translate(e)
                    }, this.symbolSetType = o.STANDARD, this.symbolSetConfigData = new Map
                }
                return e.prototype.createSymbolComponents = function(e) {
                    var t = this,
                        n = new Map;
                    return e.forEach((function(e, o) {
                        var r = new u.a;
                        r.name = o, r.setSymbolsConfig(e.config), t.setSymbolSprite(r), r.setPooledObjects(), n.set(o, r)
                    })), n
                }, e.prototype.setSymbolSprite = function(e) {
                    var t = e.name,
                        n = r.e.props.layouts.get(i.a.LANDSCAPE);
                    if (void 0 === n) throw new Error("SymbolSetComponent -- Layout Node is undefined.");
                    if (null !== e.symbolsConfigDef) {
                        if (void 0 === e.symbolsConfigDef.suffix) throw new Error("SymbolSetComponent -- Suffix node is missing within symbolSetConfig.json");
                        e.symbolsConfigDef.suffix.length > 0 && (t += e.symbolsConfigDef.suffix)
                    }
                    var o = n.get(t + u.a.STATIC_SUFFIX);
                    if (void 0 === o) throw new Error("Symbol Node - " + t + u.a.STATIC_SUFFIX + " - is undefined. Be sure Symbol in config exists in layout json.");
                    var s = new a.Sprite(r.f.fromCache(this.baseName(o.bitmap)));
                    s.blendMode = o.blendMode || 0, s.width = o.width, s.height = o.height, s.name = t + u.a.STATIC_SUFFIX, e.setSprite(s)
                }, e.prototype.baseName = function(e) {
                    return e.substr(e.lastIndexOf("/") + 1)
                }, e.prototype.getSymbolSetName = function(e) {
                    if (void 0 !== e) return e + ".Symbols";
                    if (void 0 === s.b.nextStage) throw new Error("Next Stage is undefined.");
                    return s.b.nextStage + ".Symbols"
                }, e.CONFIG_NAME = "symbolSetConfig.json", e.BOUNDS_NAME = "bounds", e.DEFAULT_SYMBOL_SET = "BaseGame.Symbols", e
            }()
        },
        34: function(e, t, n) {
            "use strict";
            n.d(t, "a", (function() {
                return B
            }));
            var o, r = n(0),
                i = n(20),
                a = n(66),
                s = n(75),
                p = n(3),
                l = n(8),
                c = n(71),
                u = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                f = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                d = function() {
                    function e(e, t) {
                        this._data = e, this._parent = t
                    }
                    return Object.defineProperty(e.prototype, "data", {
                        get: function() {
                            return this._data
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "parentProps", {
                        get: function() {
                            return this._parent
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "stripInfoName", {
                        get: function() {
                            return this._data.stripInfoName
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "reelSetName", {
                        get: function() {
                            return this._data.reelSetName
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "reelsLayoutConfig", {
                        get: function() {
                            return this._data.reelLayoutConfig
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "reelSetType", {
                        get: function() {
                            return this._data.reelSetType
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "columns", {
                        get: function() {
                            return this._data.columns
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "schemaInfoName", {
                        get: function() {
                            return this._data.schemaInfoName
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "reelSetConfigData", {
                        get: function() {
                            return this._data.reelSetConfigData
                        },
                        enumerable: !0,
                        configurable: !0
                    }), u([r.d, f("design:type", l.a), f("design:paramtypes", [])], e.prototype, "data", null), u([r.d, f("design:type", c.a), f("design:paramtypes", [])], e.prototype, "parentProps", null), u([r.d, f("design:type", String), f("design:paramtypes", [])], e.prototype, "stripInfoName", null), u([r.d, f("design:type", String), f("design:paramtypes", [])], e.prototype, "reelSetName", null), u([r.d, f("design:type", Map), f("design:paramtypes", [])], e.prototype, "reelsLayoutConfig", null), u([r.d, f("design:type", Number), f("design:paramtypes", [])], e.prototype, "reelSetType", null), u([r.d, f("design:type", Number), f("design:paramtypes", [])], e.prototype, "columns", null), u([r.d, f("design:type", String), f("design:paramtypes", [])], e.prototype, "schemaInfoName", null), u([r.d, f("design:type", Object), f("design:paramtypes", [])], e.prototype, "reelSetConfigData", null), e
                }(),
                y = n(17),
                h = (o = function(e, t) {
                    return (o = Object.setPrototypeOf || {
                            __proto__: []
                        }
                        instanceof Array && function(e, t) {
                            e.__proto__ = t
                        } || function(e, t) {
                            for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                        })(e, t)
                }, function(e, t) {
                    function n() {
                        this.constructor = e
                    }
                    o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
                }),
                g = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                m = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                b = function(e) {
                    function t(t, n) {
                        var o = e.call(this, t) || this;
                        return o._parentActions = n, o
                    }
                    return h(t, e), t.prototype.setStripInfoName = function(e) {
                        this._data.stripInfoName = e
                    }, t.prototype.setReelSetName = function(e) {
                        this._data.reelSetName = e
                    }, t.prototype.setReelLayoutConfig = function(e) {
                        this._data.reelLayoutConfig = e
                    }, t.prototype.setReelSetType = function(e) {
                        this._data.reelSetType = e
                    }, t.prototype.setColumns = function(e) {
                        this._data.columns = e
                    }, t.prototype.setSchemaInfoName = function(e) {
                        this._data.schemaInfoName = e
                    }, t.prototype.setReelSetConfigData = function(e) {
                        this._data.reelSetConfigData = e
                    }, t.prototype.setReelDimensions = function(e) {
                        this._parentActions.setReelDimensions(e)
                    }, g([r.b.bound, m("design:type", Function), m("design:paramtypes", [String]), m("design:returntype", void 0)], t.prototype, "setStripInfoName", null), g([r.b.bound, m("design:type", Function), m("design:paramtypes", [String]), m("design:returntype", void 0)], t.prototype, "setReelSetName", null), g([r.b.bound, m("design:type", Function), m("design:paramtypes", [Map]), m("design:returntype", void 0)], t.prototype, "setReelLayoutConfig", null), g([r.b.bound, m("design:type", Function), m("design:paramtypes", [Number]), m("design:returntype", void 0)], t.prototype, "setReelSetType", null), g([r.b.bound, m("design:type", Function), m("design:paramtypes", [Number]), m("design:returntype", void 0)], t.prototype, "setColumns", null), g([r.b.bound, m("design:type", Function), m("design:paramtypes", [String]), m("design:returntype", void 0)], t.prototype, "setSchemaInfoName", null), g([r.b.bound, m("design:type", Function), m("design:paramtypes", [Object]), m("design:returntype", void 0)], t.prototype, "setReelSetConfigData", null), g([r.b.bound, m("design:type", Function), m("design:paramtypes", [Array]), m("design:returntype", void 0)], t.prototype, "setReelDimensions", null), t
                }(y.a),
                _ = n(38),
                S = n(108),
                v = n(98),
                C = n(21),
                O = n(69),
                P = function() {
                    function e() {
                        var e = this;
                        this.reelsConfig = "ReelsConfig", this.genericUtils = S.a.getInstance(), this.configUtils = O.a.getInstance(), this.getReelSetConfigDef = function(t) {
                            var n = {
                                columns: Number(t["@columns"]),
                                type: l.c.STANDARD,
                                selectiveStackingConfig: t["@selectiveStackingConfig"]
                            };
                            return e.genericUtils.exists(n.selectiveStackingConfig) && void 0 !== e._platformData[n.selectiveStackingConfig] && (n.selectiveStackingConfig = e.getSelectiveStackingConfig(e._platformData[n.selectiveStackingConfig])), n.type = e.getReelSetType(t["@type"]), n
                        }, this.getReelConfigDef = function(t) {
                            return {
                                rows: e.configUtils.getNumber(t["@rows"]),
                                topPadding: e.configUtils.getNumber(t["@topPadding"]),
                                bottomPadding: e.configUtils.getNumber(t["@bottomPadding"]),
                                direction: e.configUtils.getDirection(t["@direction"]),
                                speed: e.configUtils.getNumber(t["@speed"]),
                                speedUp: e.configUtils.getNumber(t["@speedUp"]),
                                easeIn: JSON.parse(t["@easeIn"]),
                                easeOut: JSON.parse(t["@easeOut"]),
                                type: e.getReelType(t["@type"]),
                                startDelay: e.configUtils.getNumber(t["@startDelay"]),
                                stopDelay: e.configUtils.getNumber(t["@stopDelay"]),
                                anticipationDelay: e.configUtils.getNumber(t["@anticipationDelay"])
                            }
                        }, this.getReelSetType = function(e) {
                            var t = l.c.STANDARD;
                            switch (e) {
                                case "standard":
                                    t = l.c.STANDARD;
                                    break;
                                case "tumble":
                                    t = l.c.TUMBLING;
                                    break;
                                case "independent":
                                    t = l.c.INDEPENDENT
                            }
                            return t
                        }, this.getReelType = function(e) {
                            var t = C.c.SPIN;
                            switch (e) {
                                case "spin":
                                    t = C.c.SPIN;
                                    break;
                                case "tumble":
                                    t = C.c.TUMBLE
                            }
                            return t
                        }
                    }
                    return e.prototype.translate = function(e) {
                        if (null != e) {
                            this._platformData = e;
                            var t = new v.a;
                            return t.reelSetConfig = this.getReelSetConfigData(e), t.reelSetConfig
                        }
                        return null
                    }, e.prototype.getReelSetConfigData = function(e) {
                        var t = new Map;
                        if (this.genericUtils.exists(e.BaseGameReelSetConfig)) {
                            var n = this.getReelSetConfig(e.BaseGameReelSetConfig);
                            t.set(n.name, n)
                        }
                        if (this.genericUtils.exists(e.FreeSpinReelSetConfig)) {
                            n = this.getReelSetConfig(e.FreeSpinReelSetConfig);
                            t.set(n.name, n)
                        }
                        return t
                    }, e.prototype.getReelSetConfig = function(e) {
                        var t = {
                            name: e["@name"],
                            config: e["@config"],
                            reelsConfig: e[this.reelsConfig]
                        };
                        if (this.genericUtils.exists(t.config) && void 0 !== this._platformData[t.config]) {
                            var n = this.getReelSetConfigDef(this._platformData[t.config]);
                            t.config = n
                        }
                        if (this.genericUtils.exists(t.reelsConfig)) {
                            var o = this.getReelsConfigData(t.reelsConfig);
                            t.reelsConfig = o
                        }
                        return t
                    }, e.prototype.getReelsConfigData = function(e) {
                        var t = this,
                            n = new Map;
                        return Object.keys(e).forEach((function(o, r) {
                            var i = t.getReelsConfig(e[o]);
                            n.set(o, i)
                        })), n
                    }, e.prototype.getReelsConfig = function(e) {
                        var t, n = {
                            config: e["@config"]
                        };
                        return this.genericUtils.exists(n.config) ? (t = this.getReelConfigDef(this._platformData[n.config]), n.config = t) : (t = this.getReelConfigDef(e), n.config = t), n
                    }, e.prototype.getSelectiveStackingConfig = function(e) {
                        var t = {
                            replacementSymbolNames: e["@replacementSymbolNames"],
                            selectiveStackingSymbolMap: e["@selectiveStackingSymbolMap"]
                        };
                        return this.genericUtils.exists(t.replacementSymbolNames) && (t.replacementSymbolNames = this.getSelectiveStackingReplacementSymbols(t.replacementSymbolNames)), this.genericUtils.exists(t.selectiveStackingSymbolMap) && (t.selectiveStackingSymbolMap = this.getSelectiveStackingSymbolMap(t.selectiveStackingSymbolMap)), t
                    }, e.prototype.getSelectiveStackingReplacementSymbols = function(e) {
                        var t = [];
                        return Object.keys(e).forEach((function(n) {
                            t.push(e[n])
                        })), t
                    }, e.prototype.getSelectiveStackingSymbolMap = function(e) {
                        var t = new Map;
                        return Object.keys(e).forEach((function(n) {
                            t.set(n, e[n])
                        })), t
                    }, e
                }(),
                w = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                R = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                N = function() {
                    function e(e, t) {
                        this._data = e, this._parent = t
                    }
                    return Object.defineProperty(e.prototype, "data", {
                        get: function() {
                            return this._data
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "parentProps", {
                        get: function() {
                            return this._parent
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "name", {
                        get: function() {
                            return this._data.name
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "state", {
                        get: function() {
                            return this._data.state
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "direction", {
                        get: function() {
                            return this._data.direction
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "speed", {
                        get: function() {
                            return this._data.speed
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "speedUp", {
                        get: function() {
                            return this._data.speedUp
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "rows", {
                        get: function() {
                            return this._data.rows
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "topPadding", {
                        get: function() {
                            return this._data.topPadding
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "bottomPadding", {
                        get: function() {
                            return this._data.bottomPadding
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "easeIn", {
                        get: function() {
                            return this._data.easeIn
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "easeOut", {
                        get: function() {
                            return this._data.easeOut
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "movementState", {
                        get: function() {
                            return this._data.movementState
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "reelState", {
                        get: function() {
                            return this._data.reelState
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "reelType", {
                        get: function() {
                            return this._data.reelType
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "startDelay", {
                        get: function() {
                            return this._data.startDelay
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "stopDelay", {
                        get: function() {
                            return this._data.stopDelay
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "anticipationDelay", {
                        get: function() {
                            return this._data.anticipationDelay
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "reelConfigDef", {
                        get: function() {
                            return this._data.reelConfigDef
                        },
                        enumerable: !0,
                        configurable: !0
                    }), w([r.d, R("design:type", C.a), R("design:paramtypes", [])], e.prototype, "data", null), w([r.d, R("design:type", d), R("design:paramtypes", [])], e.prototype, "parentProps", null), w([r.d, R("design:type", String), R("design:paramtypes", [])], e.prototype, "name", null), w([r.d, R("design:type", Number), R("design:paramtypes", [])], e.prototype, "state", null), w([r.d, R("design:type", Number), R("design:paramtypes", [])], e.prototype, "direction", null), w([r.d, R("design:type", Number), R("design:paramtypes", [])], e.prototype, "speed", null), w([r.d, R("design:type", Number), R("design:paramtypes", [])], e.prototype, "speedUp", null), w([r.d, R("design:type", Number), R("design:paramtypes", [])], e.prototype, "rows", null), w([r.d, R("design:type", Number), R("design:paramtypes", [])], e.prototype, "topPadding", null), w([r.d, R("design:type", Number), R("design:paramtypes", [])], e.prototype, "bottomPadding", null), w([r.d, R("design:type", Array), R("design:paramtypes", [])], e.prototype, "easeIn", null), w([r.d, R("design:type", Array), R("design:paramtypes", [])], e.prototype, "easeOut", null), w([r.d, R("design:type", Number), R("design:paramtypes", [])], e.prototype, "movementState", null), w([r.d, R("design:type", Number), R("design:paramtypes", [])], e.prototype, "reelState", null), w([r.d, R("design:type", Number), R("design:paramtypes", [])], e.prototype, "reelType", null), w([r.d, R("design:type", Number), R("design:paramtypes", [])], e.prototype, "startDelay", null), w([r.d, R("design:type", Number), R("design:paramtypes", [])], e.prototype, "stopDelay", null), w([r.d, R("design:type", Number), R("design:paramtypes", [])], e.prototype, "anticipationDelay", null), w([r.d, R("design:type", Object), R("design:paramtypes", [])], e.prototype, "reelConfigDef", null), e
                }(),
                I = n(2),
                T = n(32),
                A = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                j = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                E = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                D = function(e, t, n, o) {
                    return new(n || (n = Promise))((function(r, i) {
                        function a(e) {
                            try {
                                p(o.next(e))
                            } catch (e) {
                                i(e)
                            }
                        }

                        function s(e) {
                            try {
                                p(o.throw(e))
                            } catch (e) {
                                i(e)
                            }
                        }

                        function p(e) {
                            var t;
                            e.done ? r(e.value) : (t = e.value, t instanceof n ? t : new n((function(e) {
                                e(t)
                            }))).then(a, s)
                        }
                        p((o = o.apply(e, t || [])).next())
                    }))
                },
                x = function(e, t) {
                    var n, o, r, i, a = {
                        label: 0,
                        sent: function() {
                            if (1 & r[0]) throw r[1];
                            return r[1]
                        },
                        trys: [],
                        ops: []
                    };
                    return i = {
                        next: s(0),
                        throw: s(1),
                        return: s(2)
                    }, "function" == typeof Symbol && (i[Symbol.iterator] = function() {
                        return this
                    }), i;

                    function s(i) {
                        return function(s) {
                            return function(i) {
                                if (n) throw new TypeError("Generator is already executing.");
                                for (; a;) try {
                                    if (n = 1, o && (r = 2 & i[0] ? o.return : i[0] ? o.throw || ((r = o.return) && r.call(o), 0) : o.next) && !(r = r.call(o, i[1])).done) return r;
                                    switch (o = 0, r && (i = [2 & i[0], r.value]), i[0]) {
                                        case 0:
                                        case 1:
                                            r = i;
                                            break;
                                        case 4:
                                            return a.label++, {
                                                value: i[1],
                                                done: !1
                                            };
                                        case 5:
                                            a.label++, o = i[1], i = [0];
                                            continue;
                                        case 7:
                                            i = a.ops.pop(), a.trys.pop();
                                            continue;
                                        default:
                                            if (!(r = a.trys, (r = r.length > 0 && r[r.length - 1]) || 6 !== i[0] && 2 !== i[0])) {
                                                a = 0;
                                                continue
                                            }
                                            if (3 === i[0] && (!r || i[1] > r[0] && i[1] < r[3])) {
                                                a.label = i[1];
                                                break
                                            }
                                            if (6 === i[0] && a.label < r[1]) {
                                                a.label = r[1], r = i;
                                                break
                                            }
                                            if (r && a.label < r[2]) {
                                                a.label = r[2], a.ops.push(i);
                                                break
                                            }
                                            r[2] && a.ops.pop(), a.trys.pop();
                                            continue
                                    }
                                    i = t.call(e, a)
                                } catch (e) {
                                    i = [6, e], o = 0
                                } finally {
                                    n = r = 0
                                }
                                if (5 & i[0]) throw i[1];
                                return {
                                    value: i[0] ? i[1] : void 0,
                                    done: !0
                                }
                            }([i, s])
                        }
                    }
                },
                B = function(e) {
                    function t(n, o, r, a, s, p) {
                        void 0 === r && (r = []), void 0 === a && (a = new l.a), void 0 === s && (s = [t.CONFIG_NAME, T.a.CONFIG_NAME]), void 0 === p && (p = "reels");
                        var c = e.call(this, new i.a(n, o), new d(a, n), void 0, s, p, r) || this;
                        return c.stripInfoSet = !1, c.name = "", c.translateReelSetConfig = function(e) {
                            return (new P).translate(e)
                        }, c._actions = new b(a, o), c.reelAssetNames = [], c.reelMaskName = [], c.reelSetMaskName = "reelSetMask", c.reelComponents = [], c.symbolSetComponent = new T.a, c.templateContainers = [], c
                    }
                    return A(t, e), t.prototype.init = function() {
                        return D(this, void 0, void 0, (function() {
                            var e, n = this;
                            return x(this, (function(o) {
                                if (void 0 === this.layout) throw new Error("Layout data not yet set");
                                return this.build(), e = this.translateReelSetConfig(this.assets.get(t.CONFIG_NAME)), this.setReelSetConfigData(e), this.container.children.filter((function(e) {
                                    return e.name.startsWith("reelPosition") && n.reelAssetNames.push(e.name), e.name.startsWith("reelMask") && n.reelMaskName.push(e.name), null
                                })), this.reelAssetNames.sort((function(e, t) {
                                    return +e.replace("reelPosition", "") - +t.replace("reelPosition", "")
                                })), this.reelMaskName.sort((function(e, t) {
                                    return +e.replace("reelMask", "") - +t.replace("reelMask", "")
                                })), [2]
                            }))
                        }))
                    }, t.prototype.setCommands = function(e) {
                        this._commands = e
                    }, t.prototype.setReelSetComponent = function(e, n, o) {
                        if (this.setSymbolSetComponent(o), void 0 === I.b.nextStage) throw new Error("Next Stage is undefined.");
                        void 0 !== n ? this.setReelSetName(n) : this._parent.props.response.populationOutcomes.has(I.b.nextStage + ".Reels") ? this.setReelSetName(I.b.nextStage + t.REELS_SUFFIX) : this.setReelSetName(t.DEFAULT_STAGE_NAME + t.REELS_SUFFIX), this._parent.props.response.populationOutcomes.has(I.b.nextStage + t.SCHEMA_SUFFIX) ? this.setSchemaInfoName(I.b.nextStage + t.SCHEMA_SUFFIX) : this.setSchemaInfoName(t.DEFAULT_STAGE_NAME + t.SCHEMA_SUFFIX), this.setStripInfoName(e), this.createReelSetContainer(), this.applyReelSetConfig()
                    }, t.prototype.setSymbolSetComponent = function(e) {
                        var t = this.symbolSetComponent.translateSymbolSetConfig(this.assets.get(T.a.CONFIG_NAME));
                        null !== t && (this.symbolSetComponent.symbolSetConfigData = t), this.symbolSetComponent.applySymbolSetConfig(e)
                    }, t.prototype.createReelSetContainer = function() {
                        var e = this.container.getChildByName(t.REEL_SET_CONTAINER);
                        if (null === e && void 0 !== this.layout) {
                            e = new p.Container;
                            var n = a.a.getInstance().drawRectGraphic(16711935, 0, 0, this.layout.width, this.layout.height);
                            if (n.visible = !0, n.alpha = .01, n.name = t.REEL_SET_CONTAINER_BOUNDS, e.addChild(n), e.name = t.REEL_SET_CONTAINER, e.sortableChildren = !0, this.container.addChild(e), null !== this.props.reelSetConfigData && this.props.reelSetConfigData.has(this.props.reelSetName)) {
                                var o = this.props.reelSetConfigData.get(this.props.reelSetName);
                                void 0 !== o && o.config.type !== l.c.INDEPENDENT && (e.mask = this.getMask())
                            }
                        }
                    }, t.prototype.getMask = function() {
                        var e = this.container.getChildByName("reelMask"),
                            t = a.a.getInstance().drawRectGraphic(16711935, e.x, e.y, e.width, e.height);
                        return t.name = this.reelSetMaskName, this.container.addChild(t), e.visible = !1, t
                    }, t.prototype.applyReelSetConfig = function() {
                        if (null !== this.props.reelSetConfigData && this.props.reelSetConfigData.has(this.props.reelSetName)) {
                            var e = this.props.reelSetConfigData.get(this.props.reelSetName);
                            void 0 !== e && (this.setReelSetType(e.config.type), this.setColumns(e.config.columns), this.createReelComponentsByConfig(e), this.setReelDimensions())
                        }
                    }, t.prototype.createReelComponentsByConfig = function(e) {
                        var t = e.reelsConfig;
                        this.reelComponents.length <= 0 && (this.reelComponents.length = 0, this.reelComponents = this.createReelComponents(t))
                    }, t.prototype.createReelComponents = function(e) {
                        for (var t = [], n = 0; n < this.props.columns; n++) {
                            var o = _.a.REEL_PREFIX + n,
                                r = e.get(o);
                            if (void 0 === r) throw new Error('Reel Set Component -- Cannot find Reel Config for "' + o + '".');
                            var i = this.createReelComponent(r, o);
                            void 0 !== i && t.push(i)
                        }
                        return t
                    }, t.prototype.createReelComponent = function(e, n) {
                        var o = this._props,
                            r = new N(new C.a, o),
                            i = new _.a(o, this._actions, r),
                            s = n.split(/(\d+)/)[1],
                            p = a.a.getInstance().findContainer(this.container, this.reelAssetNames[s]);
                        if (i.container = a.a.getInstance().createEmptyContainer(p.width, p.height), i.container.x = p.x, i.container.y = p.y, i.container.name = p.name, void 0 === i.container) throw new Error("Reel Component Contianer is undefined. Be sure Reel in config exists in asset json.");
                        i.container.visible = !0, i.setName(n), i.setConfig(e.config), i.container.zIndex = Number(s);
                        this.container.getChildByName(t.REEL_SET_CONTAINER);
                        return i
                    }, t.prototype.setReelDimensions = function() {
                        var e = [];
                        this.reelComponents.forEach((function(t) {
                            e.push(t.props.rows)
                        })), this._actions.setReelDimensions(e)
                    }, t.prototype.getReelComponentByName = function(e) {
                        var t;
                        return this.reelComponents.forEach((function(n) {
                            e.indexOf(n.props.name) > -1 && (t = n)
                        })), t
                    }, t.prototype.getReelComponents = function() {
                        return this.reelComponents
                    }, Object.defineProperty(t.prototype, "stripInfoDef", {
                        get: function() {
                            if (void 0 !== this.props.stripInfoName && this._parent.props.paytable.stripsInfo.has(this.props.stripInfoName)) return this._parent.props.paytable.stripsInfo.get(this.props.stripInfoName)
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(t.prototype, "triggerName", {
                        get: function() {
                            if (void 0 !== this.props.stripInfoName && this._parent.props.response.triggerOutcome.has(I.b.nextStage + t.REEL_SET_SUFFIX)) {
                                var e = this._parent.props.response.triggerOutcome.get(I.b.nextStage + t.REEL_SET_SUFFIX);
                                if (void 0 !== e) return e.trigger[0].name
                            }
                        },
                        enumerable: !0,
                        configurable: !0
                    }), t.prototype.setStripInfoName = function(e) {
                        this._actions.setStripInfoName(e)
                    }, t.prototype.setReelSetName = function(e) {
                        this._actions.setReelSetName(e)
                    }, t.prototype.setSchemaInfoName = function(e) {
                        this._actions.setSchemaInfoName(e)
                    }, t.prototype.setReelLayoutConfig = function(e) {
                        this._actions.setReelLayoutConfig(e)
                    }, t.prototype.setReelSetType = function(e) {
                        this._actions.setReelSetType(e)
                    }, t.prototype.setColumns = function(e) {
                        this._actions.setColumns(e)
                    }, t.prototype.setReelSetConfigData = function(e) {
                        this._actions.setReelSetConfigData(e)
                    }, t.CONFIG_NAME = "reelSetConfig.json", t.DEFAULT_STAGE_NAME = "BaseGame", t.REELS_SUFFIX = ".Reels", t.SCHEMA_SUFFIX = ".SchemaSet", t.REEL_SET_SUFFIX = ".ReelSet", t.REEL_SET_CONTAINER = "reelSetContainer", t.REEL_SET_CONTAINER_BOUNDS = "reelSetContainerBounds", j([r.d, E("design:type", Object), E("design:paramtypes", [])], t.prototype, "stripInfoDef", null), j([r.d, E("design:type", Object), E("design:paramtypes", [])], t.prototype, "triggerName", null), j([r.b.bound, E("design:type", Function), E("design:paramtypes", [String]), E("design:returntype", void 0)], t.prototype, "setStripInfoName", null), j([r.b.bound, E("design:type", Function), E("design:paramtypes", [String]), E("design:returntype", void 0)], t.prototype, "setReelSetName", null), j([r.b.bound, E("design:type", Function), E("design:paramtypes", [String]), E("design:returntype", void 0)], t.prototype, "setSchemaInfoName", null), j([r.b.bound, E("design:type", Function), E("design:paramtypes", [Map]), E("design:returntype", void 0)], t.prototype, "setReelLayoutConfig", null), j([r.b.bound, E("design:type", Function), E("design:paramtypes", [Number]), E("design:returntype", void 0)], t.prototype, "setReelSetType", null), j([r.b.bound, E("design:type", Function), E("design:paramtypes", [Number]), E("design:returntype", void 0)], t.prototype, "setColumns", null), j([r.b.bound, E("design:type", Function), E("design:paramtypes", [Object]), E("design:returntype", void 0)], t.prototype, "setReelSetConfigData", null), t
                }(s.a)
        },
        37: function(e, t, n) {
            "use strict";
            n.d(t, "a", (function() {
                return f
            }));
            var o, r = n(0),
                i = n(64),
                a = n(75),
                s = (o = function(e, t) {
                    return (o = Object.setPrototypeOf || {
                            __proto__: []
                        }
                        instanceof Array && function(e, t) {
                            e.__proto__ = t
                        } || function(e, t) {
                            for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                        })(e, t)
                }, function(e, t) {
                    function n() {
                        this.constructor = e
                    }
                    o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
                }),
                p = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                l = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                c = function(e, t, n, o) {
                    return new(n || (n = Promise))((function(r, i) {
                        function a(e) {
                            try {
                                p(o.next(e))
                            } catch (e) {
                                i(e)
                            }
                        }

                        function s(e) {
                            try {
                                p(o.throw(e))
                            } catch (e) {
                                i(e)
                            }
                        }

                        function p(e) {
                            var t;
                            e.done ? r(e.value) : (t = e.value, t instanceof n ? t : new n((function(e) {
                                e(t)
                            }))).then(a, s)
                        }
                        p((o = o.apply(e, t || [])).next())
                    }))
                },
                u = function(e, t) {
                    var n, o, r, i, a = {
                        label: 0,
                        sent: function() {
                            if (1 & r[0]) throw r[1];
                            return r[1]
                        },
                        trys: [],
                        ops: []
                    };
                    return i = {
                        next: s(0),
                        throw: s(1),
                        return: s(2)
                    }, "function" == typeof Symbol && (i[Symbol.iterator] = function() {
                        return this
                    }), i;

                    function s(i) {
                        return function(s) {
                            return function(i) {
                                if (n) throw new TypeError("Generator is already executing.");
                                for (; a;) try {
                                    if (n = 1, o && (r = 2 & i[0] ? o.return : i[0] ? o.throw || ((r = o.return) && r.call(o), 0) : o.next) && !(r = r.call(o, i[1])).done) return r;
                                    switch (o = 0, r && (i = [2 & i[0], r.value]), i[0]) {
                                        case 0:
                                        case 1:
                                            r = i;
                                            break;
                                        case 4:
                                            return a.label++, {
                                                value: i[1],
                                                done: !1
                                            };
                                        case 5:
                                            a.label++, o = i[1], i = [0];
                                            continue;
                                        case 7:
                                            i = a.ops.pop(), a.trys.pop();
                                            continue;
                                        default:
                                            if (!(r = a.trys, (r = r.length > 0 && r[r.length - 1]) || 6 !== i[0] && 2 !== i[0])) {
                                                a = 0;
                                                continue
                                            }
                                            if (3 === i[0] && (!r || i[1] > r[0] && i[1] < r[3])) {
                                                a.label = i[1];
                                                break
                                            }
                                            if (6 === i[0] && a.label < r[1]) {
                                                a.label = r[1], r = i;
                                                break
                                            }
                                            if (r && a.label < r[2]) {
                                                a.label = r[2], a.ops.push(i);
                                                break
                                            }
                                            r[2] && a.ops.pop(), a.trys.pop();
                                            continue
                                    }
                                    i = t.call(e, a)
                                } catch (e) {
                                    i = [6, e], o = 0
                                } finally {
                                    n = r = 0
                                }
                                if (5 & i[0]) throw i[1];
                                return {
                                    value: i[0] ? i[1] : void 0,
                                    done: !0
                                }
                            }([i, s])
                        }
                    }
                },
                f = function(e) {
                    function t(t, n, o, r) {
                        return e.call(this, t, {}, null, n, o, r) || this
                    }
                    return s(t, e), t.prototype.init = function() {
                        return c(this, void 0, void 0, (function() {
                            var e, t = this;
                            return u(this, (function(n) {
                                if (void 0 === this.layout) throw new Error("Layout data not yet set");
                                return e = this.layout.id, this.build(), this.valueField = this.container.children.find((function(t) {
                                    return t.name === e + "_value"
                                })), Object(r.c)((function() {
                                    t.valueField.text = t.textValue, t.valueField instanceof i.a && (t.valueField.autoCalculate || t.valueField.center())
                                })), [2]
                            }))
                        }))
                    }, Object.defineProperty(t.prototype, "value", {
                        get: function() {
                            throw new Error('Meter "' + this.constructor.name + '" value getter not implemented')
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(t.prototype, "textValue", {
                        get: function() {
                            return "$" + (.01 * this.value).toFixed(2)
                        },
                        enumerable: !0,
                        configurable: !0
                    }), p([r.d, l("design:type", String), l("design:paramtypes", [])], t.prototype, "textValue", null), t
                }(a.a)
        },
        38: function(e, t, n) {
            "use strict";
            n.d(t, "a", (function() {
                return O
            }));
            var o, r = n(0),
                i = n(3),
                a = n(10),
                s = n(20),
                p = n(2),
                l = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                c = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                u = function() {
                    function e() {
                        this.name = "", this.position = {
                            x: 0,
                            y: 0,
                            z: 0
                        }, this.bounds = {
                            width: 0,
                            height: 0
                        }
                    }
                    return l([r.f, c("design:type", String)], e.prototype, "name", void 0), l([r.f, c("design:type", Object)], e.prototype, "position", void 0), l([r.f, c("design:type", Object)], e.prototype, "bounds", void 0), e
                }(),
                f = n(28),
                d = function() {
                    function e(e, t) {
                        this._data = e, this._parent = t
                    }
                    return Object.defineProperty(e.prototype, "data", {
                        get: function() {
                            return this._data
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "parentProps", {
                        get: function() {
                            return this._parent
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "name", {
                        get: function() {
                            return this._data.name
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "cellIndex", {
                        get: function() {
                            return this._data.cellIndex
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "stopIndex", {
                        get: function() {
                            return this._data.stopIndex
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "poolObjectName", {
                        get: function() {
                            return this._data.poolObjectName
                        },
                        enumerable: !0,
                        configurable: !0
                    }), e
                }(),
                y = n(17),
                h = (o = function(e, t) {
                    return (o = Object.setPrototypeOf || {
                            __proto__: []
                        }
                        instanceof Array && function(e, t) {
                            e.__proto__ = t
                        } || function(e, t) {
                            for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                        })(e, t)
                }, function(e, t) {
                    function n() {
                        this.constructor = e
                    }
                    o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
                }),
                g = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                m = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                b = function(e) {
                    function t() {
                        return null !== e && e.apply(this, arguments) || this
                    }
                    return h(t, e), t.prototype.setName = function(e) {
                        this._data.name = e
                    }, t.prototype.setState = function(e) {
                        this._data.state = e
                    }, t.prototype.setDirection = function(e) {
                        this._data.direction = e
                    }, t.prototype.setSpeed = function(e) {
                        this._data.speed = e
                    }, t.prototype.setSpeedUp = function(e) {
                        this._data.speedUp = e
                    }, t.prototype.setRows = function(e) {
                        this._data.rows = e
                    }, t.prototype.setTopPadding = function(e) {
                        this._data.topPadding = e
                    }, t.prototype.setBottomPadding = function(e) {
                        this._data.bottomPadding = e
                    }, t.prototype.setEaseIn = function(e) {
                        this._data.easeIn = e
                    }, t.prototype.setEaseOut = function(e) {
                        this._data.easeOut = e
                    }, t.prototype.setReelMovementState = function(e) {
                        this._data.movementState = e
                    }, t.prototype.setReelState = function(e) {
                        this._data.reelState = e
                    }, t.prototype.setReelType = function(e) {
                        this._data.reelType = e
                    }, t.prototype.setStartDelay = function(e) {
                        this._data.startDelay = e
                    }, t.prototype.setStopDelay = function(e) {
                        this._data.stopDelay = e
                    }, t.prototype.setAnticipationDelay = function(e) {
                        this._data.anticipationDelay = e
                    }, t.prototype.setReelConfigDef = function(e) {
                        this._data.reelConfigDef = e
                    }, t.prototype.getReelData = function() {
                        return this._data
                    }, g([r.b.bound, m("design:type", Function), m("design:paramtypes", [String]), m("design:returntype", void 0)], t.prototype, "setName", null), g([r.b.bound, m("design:type", Function), m("design:paramtypes", [Number]), m("design:returntype", void 0)], t.prototype, "setState", null), g([r.b.bound, m("design:type", Function), m("design:paramtypes", [Number]), m("design:returntype", void 0)], t.prototype, "setDirection", null), g([r.b.bound, m("design:type", Function), m("design:paramtypes", [Number]), m("design:returntype", void 0)], t.prototype, "setSpeed", null), g([r.b.bound, m("design:type", Function), m("design:paramtypes", [Number]), m("design:returntype", void 0)], t.prototype, "setSpeedUp", null), g([r.b.bound, m("design:type", Function), m("design:paramtypes", [Number]), m("design:returntype", void 0)], t.prototype, "setRows", null), g([r.b.bound, m("design:type", Function), m("design:paramtypes", [Number]), m("design:returntype", void 0)], t.prototype, "setTopPadding", null), g([r.b.bound, m("design:type", Function), m("design:paramtypes", [Number]), m("design:returntype", void 0)], t.prototype, "setBottomPadding", null), g([r.b.bound, m("design:type", Function), m("design:paramtypes", [Array]), m("design:returntype", void 0)], t.prototype, "setEaseIn", null), g([r.b.bound, m("design:type", Function), m("design:paramtypes", [Array]), m("design:returntype", void 0)], t.prototype, "setEaseOut", null), g([r.b.bound, m("design:type", Function), m("design:paramtypes", [Number]), m("design:returntype", void 0)], t.prototype, "setReelMovementState", null), g([r.b.bound, m("design:type", Function), m("design:paramtypes", [Number]), m("design:returntype", void 0)], t.prototype, "setReelState", null), g([r.b.bound, m("design:type", Function), m("design:paramtypes", [Number]), m("design:returntype", void 0)], t.prototype, "setReelType", null), g([r.b.bound, m("design:type", Function), m("design:paramtypes", [Number]), m("design:returntype", void 0)], t.prototype, "setStartDelay", null), g([r.b.bound, m("design:type", Function), m("design:paramtypes", [Number]), m("design:returntype", void 0)], t.prototype, "setStopDelay", null), g([r.b.bound, m("design:type", Function), m("design:paramtypes", [Number]), m("design:returntype", void 0)], t.prototype, "setAnticipationDelay", null), g([r.b.bound, m("design:type", Function), m("design:paramtypes", [Object]), m("design:returntype", void 0)], t.prototype, "setReelConfigDef", null), t
                }(y.a),
                _ = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                S = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                v = function(e, t, n, o) {
                    return new(n || (n = Promise))((function(r, i) {
                        function a(e) {
                            try {
                                p(o.next(e))
                            } catch (e) {
                                i(e)
                            }
                        }

                        function s(e) {
                            try {
                                p(o.throw(e))
                            } catch (e) {
                                i(e)
                            }
                        }

                        function p(e) {
                            var t;
                            e.done ? r(e.value) : (t = e.value, t instanceof n ? t : new n((function(e) {
                                e(t)
                            }))).then(a, s)
                        }
                        p((o = o.apply(e, t || [])).next())
                    }))
                },
                C = function(e, t) {
                    var n, o, r, i, a = {
                        label: 0,
                        sent: function() {
                            if (1 & r[0]) throw r[1];
                            return r[1]
                        },
                        trys: [],
                        ops: []
                    };
                    return i = {
                        next: s(0),
                        throw: s(1),
                        return: s(2)
                    }, "function" == typeof Symbol && (i[Symbol.iterator] = function() {
                        return this
                    }), i;

                    function s(i) {
                        return function(s) {
                            return function(i) {
                                if (n) throw new TypeError("Generator is already executing.");
                                for (; a;) try {
                                    if (n = 1, o && (r = 2 & i[0] ? o.return : i[0] ? o.throw || ((r = o.return) && r.call(o), 0) : o.next) && !(r = r.call(o, i[1])).done) return r;
                                    switch (o = 0, r && (i = [2 & i[0], r.value]), i[0]) {
                                        case 0:
                                        case 1:
                                            r = i;
                                            break;
                                        case 4:
                                            return a.label++, {
                                                value: i[1],
                                                done: !1
                                            };
                                        case 5:
                                            a.label++, o = i[1], i = [0];
                                            continue;
                                        case 7:
                                            i = a.ops.pop(), a.trys.pop();
                                            continue;
                                        default:
                                            if (!(r = a.trys, (r = r.length > 0 && r[r.length - 1]) || 6 !== i[0] && 2 !== i[0])) {
                                                a = 0;
                                                continue
                                            }
                                            if (3 === i[0] && (!r || i[1] > r[0] && i[1] < r[3])) {
                                                a.label = i[1];
                                                break
                                            }
                                            if (6 === i[0] && a.label < r[1]) {
                                                a.label = r[1], r = i;
                                                break
                                            }
                                            if (r && a.label < r[2]) {
                                                a.label = r[2], a.ops.push(i);
                                                break
                                            }
                                            r[2] && a.ops.pop(), a.trys.pop();
                                            continue
                                    }
                                    i = t.call(e, a)
                                } catch (e) {
                                    i = [6, e], o = 0
                                } finally {
                                    n = r = 0
                                }
                                if (5 & i[0]) throw i[1];
                                return {
                                    value: i[0] ? i[1] : void 0,
                                    done: !0
                                }
                            }([i, s])
                        }
                    }
                },
                O = function() {
                    function e(e, t, n) {
                        var o = this;
                        this._mobxUtils = a.a.getInstance(), this.cellBufferName = "buffer_", this.nameSetHander = function() {
                            o.cellName = o.props.name + "_" + f.a.CELL_PREFIX
                        }, this.setConfig = function(e) {
                            o.setReelConfigDef(e), null !== o.props.reelConfigDef && (o.setReelType(o.props.reelConfigDef.type), o.setRows(o.props.reelConfigDef.rows), o.setTopPadding(o.props.reelConfigDef.topPadding), o.setBottomPadding(o.props.reelConfigDef.bottomPadding), o.setDirection(o.props.reelConfigDef.direction), o.setEaseIn(o.props.reelConfigDef.easeIn), o.setEaseOut(o.props.reelConfigDef.easeOut), o.setSpeed(o.props.reelConfigDef.speed), o.setSpeedUp(o.props.reelConfigDef.speedUp), o.setStartDelay(o.props.reelConfigDef.startDelay), o.setStopDelay(o.props.reelConfigDef.stopDelay), o.setAnticipationDelay(o.props.reelConfigDef.anticipationDelay))
                        }, this._parent = new s.a(e, t), this._props = n, this._actions = new b(n.data), this._topCellName = null, this._bottomCellName = null, this.cellName = "", this.reelCellComponents = [], this.newReelCellComponents = [], this.addHandlers()
                    }
                    return e.prototype.addHandlers = function() {
                        this.handleCellName()
                    }, e.prototype.handleCellName = function() {
                        var t = this;
                        this._mobxUtils.addWhen(e.REEL_PREFIX, (function() {
                            return void 0 !== t.props.name && "" !== t.props.name
                        }), this.nameSetHander)
                    }, e.prototype.init = function() {
                        return v(this, void 0, void 0, (function() {
                            return C(this, (function(e) {
                                return [2]
                            }))
                        }))
                    }, Object.defineProperty(e.prototype, "props", {
                        get: function() {
                            return this._props
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "container", {
                        get: function() {
                            return this._container
                        },
                        set: function(e) {
                            this._container = e
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "mask", {
                        get: function() {
                            return this._mask
                        },
                        set: function(e) {
                            this._mask = e
                        },
                        enumerable: !0,
                        configurable: !0
                    }), e.prototype.setReelCellStopDef = function() {
                        var e = this;
                        this.reelCellComponents.forEach((function(t) {
                            if (void 0 !== t.cellDef && void 0 !== t.cellDef) {
                                var n = t.cellDef.stripIndex;
                                t.setStopIndex(n)
                            } else e.setPaddingStopDef(t)
                        }))
                    }, e.prototype.setPaddingStopDef = function(t) {
                        var n = this,
                            o = t.props.name;
                        if (o.indexOf(e.TOP_PADDING_NAME) > -1) {
                            var r = !0,
                                i = 1;
                            if (null === this._topCellName && (this._topCellName = this.cellName + "0", i = this.getIndexOfTopPaddingCell(t) + 1, r = !1), void 0 === (a = this.reelCellComponents.find((function(e) {
                                    return e.props.name === n._topCellName
                                })))) throw new Error("Reel Cell Component is undefined.");
                            this.setCellStripIndex(t, a, r, i), this._topCellName = o
                        } else if (o.indexOf(e.BOTTOM_PADDING_NAME) > -1) {
                            var a;
                            if (null === this._bottomCellName && (this._bottomCellName = this.cellName + (this.props.rows - 1)), void 0 === (a = this.reelCellComponents.find((function(e) {
                                    return e.props.name === n._bottomCellName
                                })))) throw new Error("Reel Cell Component is undefined.");
                            this.setCellStripIndex(t, a, !0), this._bottomCellName = o
                        }
                    }, e.prototype.getIndexOfTopPaddingCell = function(t) {
                        var n = e.TOP_PADDING_NAME + this.props.name + "_" + f.a.CELL_PREFIX,
                            o = t.props.name;
                        return Number(o.substring(n.length, o.length))
                    }, e.prototype.setCellStripIndex = function(e, t, n, o) {
                        void 0 === o && (o = 1);
                        var r = 0;
                        void 0 !== t && void 0 !== t.cellDef && null !== t.cellDef ? r = t.cellDef.stripIndex : void 0 !== t && void 0 !== t.props.stopIndex && null !== t.props.stopIndex && (r = t.props.stopIndex);
                        var i = this.getNextStripIndex(r, o, n);
                        void 0 !== i && e.setStopIndex(i)
                    }, e.prototype.createReelCell = function() {
                        var e = new d(new u, this.props);
                        return new f.a(this.props, this._actions, e)
                    }, e.prototype.getNextStripIndex = function(e, t, n) {
                        if (void 0 === n && (n = !0), void 0 === this.stripDef) throw new Error("Strip Def is undefined");
                        var o = this.stripDef.stops;
                        if (void 0 !== o[e] && null !== o[e]) {
                            var r = 0;
                            return r = n ? (e + t) % o.length : (e - t) % o.length, Number.isSafeInteger(r) && r < 0 && (r = o.length + r), r
                        }
                    }, Object.defineProperty(e.prototype, "reelDef", {
                        get: function() {
                            if (p.b.response.populationOutcomes.has(this._parent.props.reelSetName)) {
                                var e = p.b.response.populationOutcomes.get(this._parent.props.reelSetName);
                                if (void 0 !== e) return e.entry.get(this.props.name)
                            }
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "stripDef", {
                        get: function() {
                            if (p.b.paytable.stripsInfo.has(this._parent.props.stripInfoName)) {
                                var e = p.b.paytable.stripsInfo.get(this._parent.props.stripInfoName);
                                if (void 0 === e) throw new Error("ReelComponent -- Can't find StripInfoDef with name: " + this._parent.props.stripInfoName);
                                return e.strips.get(this.props.name)
                            }
                        },
                        enumerable: !0,
                        configurable: !0
                    }), e.prototype.setName = function(e) {
                        this._actions.setName(e)
                    }, e.prototype.setState = function(e) {
                        this._actions.setState(e)
                    }, e.prototype.setDirection = function(e) {
                        this._actions.setDirection(e)
                    }, e.prototype.setSpeed = function(e) {
                        this._actions.setSpeed(e)
                    }, e.prototype.setSpeedUp = function(e) {
                        this._actions.setSpeedUp(e)
                    }, e.prototype.setRows = function(e) {
                        this._actions.setRows(e)
                    }, e.prototype.setTopPadding = function(e) {
                        this._actions.setTopPadding(e)
                    }, e.prototype.setBottomPadding = function(e) {
                        this._actions.setBottomPadding(e)
                    }, e.prototype.setEaseIn = function(e) {
                        this._actions.setEaseIn(e)
                    }, e.prototype.setEaseOut = function(e) {
                        this._actions.setEaseOut(e)
                    }, e.prototype.setReelState = function(e) {
                        this._actions.setReelState(e)
                    }, e.prototype.setReelType = function(e) {
                        this._actions.setReelType(e)
                    }, e.prototype.setStartDelay = function(e) {
                        this._actions.setStartDelay(e)
                    }, e.prototype.setStopDelay = function(e) {
                        this._actions.setStopDelay(e)
                    }, e.prototype.setAnticipationDelay = function(e) {
                        this._actions.setAnticipationDelay(e)
                    }, e.prototype.setReelConfigDef = function(e) {
                        this._actions.setReelConfigDef(e)
                    }, e.prototype.getReelActions = function() {
                        return this._actions
                    }, e.REEL_PREFIX = "Reel", e.TOP_PADDING_NAME = "TopPadding_", e.BOTTOM_PADDING_NAME = "BottomPadding_", _([r.f, S("design:type", i.Container)], e.prototype, "_container", void 0), _([r.f, S("design:type", i.Graphics)], e.prototype, "_mask", void 0), _([r.d, S("design:type", i.Container), S("design:paramtypes", [i.Container])], e.prototype, "container", null), _([r.d, S("design:type", i.Graphics), S("design:paramtypes", [i.Graphics])], e.prototype, "mask", null), _([r.d, S("design:type", Object), S("design:paramtypes", [])], e.prototype, "reelDef", null), _([r.d, S("design:type", Object), S("design:paramtypes", [])], e.prototype, "stripDef", null), _([r.b.bound, S("design:type", Function), S("design:paramtypes", [String]), S("design:returntype", void 0)], e.prototype, "setName", null), _([r.b.bound, S("design:type", Function), S("design:paramtypes", [Number]), S("design:returntype", void 0)], e.prototype, "setState", null), _([r.b.bound, S("design:type", Function), S("design:paramtypes", [Number]), S("design:returntype", void 0)], e.prototype, "setDirection", null), _([r.b.bound, S("design:type", Function), S("design:paramtypes", [Number]), S("design:returntype", void 0)], e.prototype, "setSpeed", null), _([r.b.bound, S("design:type", Function), S("design:paramtypes", [Number]), S("design:returntype", void 0)], e.prototype, "setSpeedUp", null), _([r.b.bound, S("design:type", Function), S("design:paramtypes", [Number]), S("design:returntype", void 0)], e.prototype, "setRows", null), _([r.b.bound, S("design:type", Function), S("design:paramtypes", [Number]), S("design:returntype", void 0)], e.prototype, "setTopPadding", null), _([r.b.bound, S("design:type", Function), S("design:paramtypes", [Number]), S("design:returntype", void 0)], e.prototype, "setBottomPadding", null), _([r.b.bound, S("design:type", Function), S("design:paramtypes", [Array]), S("design:returntype", void 0)], e.prototype, "setEaseIn", null), _([r.b.bound, S("design:type", Function), S("design:paramtypes", [Array]), S("design:returntype", void 0)], e.prototype, "setEaseOut", null), _([r.b.bound, S("design:type", Function), S("design:paramtypes", [Number]), S("design:returntype", void 0)], e.prototype, "setReelState", null), _([r.b.bound, S("design:type", Function), S("design:paramtypes", [Number]), S("design:returntype", void 0)], e.prototype, "setReelType", null), _([r.b.bound, S("design:type", Function), S("design:paramtypes", [Number]), S("design:returntype", void 0)], e.prototype, "setStartDelay", null), _([r.b.bound, S("design:type", Function), S("design:paramtypes", [Number]), S("design:returntype", void 0)], e.prototype, "setStopDelay", null), _([r.b.bound, S("design:type", Function), S("design:paramtypes", [Number]), S("design:returntype", void 0)], e.prototype, "setAnticipationDelay", null), _([r.b.bound, S("design:type", Function), S("design:paramtypes", [Object]), S("design:returntype", void 0)], e.prototype, "setReelConfigDef", null), e
                }()
        },
        39: function(e, t, n) {
            "use strict";
            n.d(t, "a", (function() {
                return r
            })), n.d(t, "b", (function() {
                return pe
            }));
            var o, r, i = n(20),
                a = n(65),
                s = n(10),
                p = n(75),
                l = n(0),
                c = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                u = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                f = function() {
                    function e() {
                        this.win = 0, this.bonusWin = 0, this.spins = 0, this.autoSpinDialogOpened = !1, this.stopAutoSpinFromIXF = !1, this.autoSpinOptions = {
                            steps: 0,
                            lossLimit: 0,
                            winLimit: void 0
                        }
                    }
                    return c([l.f, u("design:type", Number)], e.prototype, "win", void 0), c([l.f, u("design:type", Number)], e.prototype, "bonusWin", void 0), c([l.f, u("design:type", Number)], e.prototype, "spins", void 0), c([l.f, u("design:type", Object)], e.prototype, "autoSpinOptions", void 0), c([l.f, u("design:type", Boolean)], e.prototype, "autoSpinDialogOpened", void 0), c([l.f, u("design:type", Boolean)], e.prototype, "stopAutoSpinFromIXF", void 0), e
                }(),
                d = n(96),
                y = n(17),
                h = (o = function(e, t) {
                    return (o = Object.setPrototypeOf || {
                            __proto__: []
                        }
                        instanceof Array && function(e, t) {
                            e.__proto__ = t
                        } || function(e, t) {
                            for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                        })(e, t)
                }, function(e, t) {
                    function n() {
                        this.constructor = e
                    }
                    o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
                }),
                g = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                m = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                b = function(e) {
                    function t(t, n) {
                        var o = e.call(this, t) || this;
                        return o._parentActions = n, o
                    }
                    return h(t, e), t.prototype.setWin = function(e) {
                        this._data.win = e
                    }, t.prototype.setAutoSpinDialogOpen = function(e) {
                        this._data.autoSpinDialogOpened = e
                    }, t.prototype.setBonusWin = function(e) {
                        this._data.bonusWin = e
                    }, t.prototype.setPatternsBet = function(e) {
                        this._parentActions.setPatternsBet(e)
                    }, t.prototype.setBetPerPattern = function(e) {
                        this._parentActions.setBetPerPattern(e)
                    }, t.prototype.setSpins = function(e) {
                        this._parentActions.setSpins(e)
                    }, t.prototype.setSettingsShown = function(e) {
                        this._parentActions.setSettingsShown(e)
                    }, t.prototype.resetAutoSpinOptions = function() {
                        this._parentActions.setAutoSpinOptions({
                            steps: 0,
                            lossLimit: 0,
                            winLimit: void 0
                        })
                    }, t.prototype.setStopAutoSpinFromIXF = function(e) {
                        this._data.stopAutoSpinFromIXF = e
                    }, t.prototype.setFsCount = function(e) {
                        this._parentActions.setFsCount(e)
                    }, g([l.b.bound, m("design:type", Function), m("design:paramtypes", [Number]), m("design:returntype", void 0)], t.prototype, "setWin", null), g([l.b.bound, m("design:type", Function), m("design:paramtypes", [Boolean]), m("design:returntype", void 0)], t.prototype, "setAutoSpinDialogOpen", null), g([l.b.bound, m("design:type", Function), m("design:paramtypes", [Number]), m("design:returntype", void 0)], t.prototype, "setBonusWin", null), g([l.b.bound, m("design:type", Function), m("design:paramtypes", [Number]), m("design:returntype", void 0)], t.prototype, "setPatternsBet", null), g([l.b.bound, m("design:type", Function), m("design:paramtypes", [Number]), m("design:returntype", void 0)], t.prototype, "setBetPerPattern", null), g([l.b.bound, m("design:type", Function), m("design:paramtypes", [Number]), m("design:returntype", void 0)], t.prototype, "setSpins", null), g([l.b.bound, m("design:type", Function), m("design:paramtypes", [Number]), m("design:returntype", void 0)], t.prototype, "setSettingsShown", null), g([l.b.bound, m("design:type", Function), m("design:paramtypes", []), m("design:returntype", void 0)], t.prototype, "resetAutoSpinOptions", null), g([l.b.bound, m("design:type", Function), m("design:paramtypes", [Boolean]), m("design:returntype", void 0)], t.prototype, "setStopAutoSpinFromIXF", null), g([l.b.bound, m("design:type", Function), m("design:paramtypes", [Number]), m("design:returntype", void 0)], t.prototype, "setFsCount", null), t
                }(y.a),
                _ = n(97),
                S = n(1),
                v = n(37),
                C = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                O = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                P = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                w = function(e) {
                    function t(t, n) {
                        return e.call(this, new i.a(t, null), [], "winMeter", n) || this
                    }
                    return C(t, e), Object.defineProperty(t.prototype, "value", {
                        get: function() {
                            return this._parent.props.win
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(t.prototype, "textValue", {
                        get: function() {
                            return this.value > 0 && this._parent.props.denomination.length > 0 ? S.c.format(this.value, this._parent.props.denomination[0].value) : ""
                        },
                        enumerable: !0,
                        configurable: !0
                    }), O([l.d, P("design:type", Number), P("design:paramtypes", [])], t.prototype, "value", null), O([l.d, P("design:type", String), P("design:paramtypes", [])], t.prototype, "textValue", null), t
                }(v.a),
                R = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                N = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                I = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                T = function(e, t, n, o) {
                    return new(n || (n = Promise))((function(r, i) {
                        function a(e) {
                            try {
                                p(o.next(e))
                            } catch (e) {
                                i(e)
                            }
                        }

                        function s(e) {
                            try {
                                p(o.throw(e))
                            } catch (e) {
                                i(e)
                            }
                        }

                        function p(e) {
                            var t;
                            e.done ? r(e.value) : (t = e.value, t instanceof n ? t : new n((function(e) {
                                e(t)
                            }))).then(a, s)
                        }
                        p((o = o.apply(e, t || [])).next())
                    }))
                },
                A = function(e, t) {
                    var n, o, r, i, a = {
                        label: 0,
                        sent: function() {
                            if (1 & r[0]) throw r[1];
                            return r[1]
                        },
                        trys: [],
                        ops: []
                    };
                    return i = {
                        next: s(0),
                        throw: s(1),
                        return: s(2)
                    }, "function" == typeof Symbol && (i[Symbol.iterator] = function() {
                        return this
                    }), i;

                    function s(i) {
                        return function(s) {
                            return function(i) {
                                if (n) throw new TypeError("Generator is already executing.");
                                for (; a;) try {
                                    if (n = 1, o && (r = 2 & i[0] ? o.return : i[0] ? o.throw || ((r = o.return) && r.call(o), 0) : o.next) && !(r = r.call(o, i[1])).done) return r;
                                    switch (o = 0, r && (i = [2 & i[0], r.value]), i[0]) {
                                        case 0:
                                        case 1:
                                            r = i;
                                            break;
                                        case 4:
                                            return a.label++, {
                                                value: i[1],
                                                done: !1
                                            };
                                        case 5:
                                            a.label++, o = i[1], i = [0];
                                            continue;
                                        case 7:
                                            i = a.ops.pop(), a.trys.pop();
                                            continue;
                                        default:
                                            if (!(r = a.trys, (r = r.length > 0 && r[r.length - 1]) || 6 !== i[0] && 2 !== i[0])) {
                                                a = 0;
                                                continue
                                            }
                                            if (3 === i[0] && (!r || i[1] > r[0] && i[1] < r[3])) {
                                                a.label = i[1];
                                                break
                                            }
                                            if (6 === i[0] && a.label < r[1]) {
                                                a.label = r[1], r = i;
                                                break
                                            }
                                            if (r && a.label < r[2]) {
                                                a.label = r[2], a.ops.push(i);
                                                break
                                            }
                                            r[2] && a.ops.pop(), a.trys.pop();
                                            continue
                                    }
                                    i = t.call(e, a)
                                } catch (e) {
                                    i = [6, e], o = 0
                                } finally {
                                    n = r = 0
                                }
                                if (5 & i[0]) throw i[1];
                                return {
                                    value: i[0] ? i[1] : void 0,
                                    done: !0
                                }
                            }([i, s])
                        }
                    }
                },
                j = function(e) {
                    function t(t, n) {
                        return e.call(this, new i.a(t, null), [], "balanceMeter", n) || this
                    }
                    return R(t, e), t.prototype.init = function() {
                        return T(this, void 0, void 0, (function() {
                            var t, n = this;
                            return A(this, (function(o) {
                                return e.prototype.init.call(this), t = this.container.children.find((function(e) {
                                    return "balanceMeter_label" === e.name
                                })), Object(l.c)((function() {
                                    var e = "real" === n._parent.props.playMode ? "messages.balanceMeter_label" : "promoFreeSpins_label";
                                    t.text = S.m.getString(e)
                                })), [2]
                            }))
                        }))
                    }, Object.defineProperty(t.prototype, "value", {
                        get: function() {
                            return this._parent.props.balance
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(t.prototype, "textValue", {
                        get: function() {
                            return "freespin" === this._parent.props.playMode ? void 0 !== this._parent.props.promoFreeSpinCount ? this._parent.props.promoFreeSpinCount.toString() : "" : this.value
                        },
                        enumerable: !0,
                        configurable: !0
                    }), N([l.d, I("design:type", Object), I("design:paramtypes", [])], t.prototype, "value", null), N([l.d, I("design:type", String), I("design:paramtypes", [])], t.prototype, "textValue", null), t
                }(v.a),
                E = n(68),
                D = n(2),
                x = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                B = function(e) {
                    function t(t) {
                        var n = e.call(this) || this;
                        return n.actions = t, n
                    }
                    return x(t, e), t.prototype.onButtonUp = function(t) {
                        D.a.gameActions.setSkipped(!0), S.i.execute("onUiSkip"), e.prototype.onButtonUp.call(this, t)
                    }, t
                }(a.a),
                M = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                k = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                F = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                L = function(e) {
                    function t(t, n) {
                        var o = e.call(this, new i.a(t, null), [], "spinMeterFreeSpin", n) || this;
                        return o._initialized = !1, o._freespinRetriggerAnimComplete = !1, o
                    }
                    return M(t, e), Object.defineProperty(t.prototype, "value", {
                        get: function() {
                            return this._parent.props.count
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(t.prototype, "totalAwarded", {
                        get: function() {
                            return this._parent.props.totalAwarded
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(t.prototype, "textValue", {
                        get: function() {
                            var e = "";
                            return this.value >= 0 && (this._freespinRetriggerAnimComplete ? (e = this.value.toString() + " / " + this.totalAwarded, this._freespinRetriggerAnimComplete = !1) : (this._freespinRetriggerAnimComplete = !1, e = this._parent.props.incrementTriggered && this._initialized && this.previousTotalAwarded > 0 ? this.value.toString() + " / " + this.previousTotalAwarded : this.value.toString() + " / " + this.totalAwarded)), this._initialized = !0, e
                        },
                        enumerable: !0,
                        configurable: !0
                    }), t.prototype.updateFreespinTotalAwardMeter = function() {
                        this.valueField.text = this.value.toString() + " / " + this.totalAwarded, this._freespinRetriggerAnimComplete = !0
                    }, Object.defineProperty(t.prototype, "previousTotalAwarded", {
                        get: function() {
                            return this.totalAwarded - this._parent.props.awarded
                        },
                        enumerable: !0,
                        configurable: !0
                    }), k([l.d, F("design:type", Number), F("design:paramtypes", [])], t.prototype, "value", null), k([l.d, F("design:type", Number), F("design:paramtypes", [])], t.prototype, "totalAwarded", null), k([l.d, F("design:type", String), F("design:paramtypes", [])], t.prototype, "textValue", null), k([l.d, F("design:type", Number), F("design:paramtypes", [])], t.prototype, "previousTotalAwarded", null), t
                }(v.a),
                U = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                G = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                V = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                W = function(e) {
                    function t(t, n) {
                        return e.call(this, new i.a(t, null), [], "winMeterFreeSpin", n) || this
                    }
                    return U(t, e), Object.defineProperty(t.prototype, "value", {
                        get: function() {
                            return this._parent.props.win
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(t.prototype, "textValue", {
                        get: function() {
                            return this.value > 0 && this._parent.props.denomination.length > 0 ? S.c.format(this.value, this._parent.props.denomination[0].value) : ""
                        },
                        enumerable: !0,
                        configurable: !0
                    }), G([l.d, V("design:type", Number), V("design:paramtypes", [])], t.prototype, "value", null), G([l.d, V("design:type", String), V("design:paramtypes", [])], t.prototype, "textValue", null), t
                }(v.a),
                z = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                H = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                X = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                Y = function(e) {
                    function t(t, n) {
                        return e.call(this, new i.a(t, null), [], "totalWinMeterFreeSpin", n) || this
                    }
                    return z(t, e), Object.defineProperty(t.prototype, "value", {
                        get: function() {
                            return this._parent.props.bonusWin
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(t.prototype, "textValue", {
                        get: function() {
                            return this.value > 0 && this._parent.props.denomination.length > 0 ? S.c.format(this.value, this._parent.props.denomination[0].value) : ""
                        },
                        enumerable: !0,
                        configurable: !0
                    }), H([l.d, X("design:type", Number), X("design:paramtypes", [])], t.prototype, "value", null), H([l.d, X("design:type", String), X("design:paramtypes", [])], t.prototype, "textValue", null), t
                }(v.a),
                J = n(12),
                q = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                K = function(e) {
                    function t(t) {
                        var n = e.call(this) || this;
                        return n.actions = t, n
                    }
                    return q(t, e), t.prototype.onButtonUp = function(e) {
                        this.actions.setSettingsShown(J.a.BET)
                    }, t
                }(a.a),
                Q = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                Z = function(e, t, n, o) {
                    return new(n || (n = Promise))((function(r, i) {
                        function a(e) {
                            try {
                                p(o.next(e))
                            } catch (e) {
                                i(e)
                            }
                        }

                        function s(e) {
                            try {
                                p(o.throw(e))
                            } catch (e) {
                                i(e)
                            }
                        }

                        function p(e) {
                            var t;
                            e.done ? r(e.value) : (t = e.value, t instanceof n ? t : new n((function(e) {
                                e(t)
                            }))).then(a, s)
                        }
                        p((o = o.apply(e, t || [])).next())
                    }))
                },
                $ = function(e, t) {
                    var n, o, r, i, a = {
                        label: 0,
                        sent: function() {
                            if (1 & r[0]) throw r[1];
                            return r[1]
                        },
                        trys: [],
                        ops: []
                    };
                    return i = {
                        next: s(0),
                        throw: s(1),
                        return: s(2)
                    }, "function" == typeof Symbol && (i[Symbol.iterator] = function() {
                        return this
                    }), i;

                    function s(i) {
                        return function(s) {
                            return function(i) {
                                if (n) throw new TypeError("Generator is already executing.");
                                for (; a;) try {
                                    if (n = 1, o && (r = 2 & i[0] ? o.return : i[0] ? o.throw || ((r = o.return) && r.call(o), 0) : o.next) && !(r = r.call(o, i[1])).done) return r;
                                    switch (o = 0, r && (i = [2 & i[0], r.value]), i[0]) {
                                        case 0:
                                        case 1:
                                            r = i;
                                            break;
                                        case 4:
                                            return a.label++, {
                                                value: i[1],
                                                done: !1
                                            };
                                        case 5:
                                            a.label++, o = i[1], i = [0];
                                            continue;
                                        case 7:
                                            i = a.ops.pop(), a.trys.pop();
                                            continue;
                                        default:
                                            if (!(r = a.trys, (r = r.length > 0 && r[r.length - 1]) || 6 !== i[0] && 2 !== i[0])) {
                                                a = 0;
                                                continue
                                            }
                                            if (3 === i[0] && (!r || i[1] > r[0] && i[1] < r[3])) {
                                                a.label = i[1];
                                                break
                                            }
                                            if (6 === i[0] && a.label < r[1]) {
                                                a.label = r[1], r = i;
                                                break
                                            }
                                            if (r && a.label < r[2]) {
                                                a.label = r[2], a.ops.push(i);
                                                break
                                            }
                                            r[2] && a.ops.pop(), a.trys.pop();
                                            continue
                                    }
                                    i = t.call(e, a)
                                } catch (e) {
                                    i = [6, e], o = 0
                                } finally {
                                    n = r = 0
                                }
                                if (5 & i[0]) throw i[1];
                                return {
                                    value: i[0] ? i[1] : void 0,
                                    done: !0
                                }
                            }([i, s])
                        }
                    }
                },
                ee = function(e) {
                    function t(t) {
                        var n = e.call(this, t, {}, null, [], "networkActivity") || this;
                        return n._delayMilseconds = 0, n._ticker = S.j.get(0).ticker, n._time = 0, n
                    }
                    return Q(t, e), t.prototype.init = function() {
                        return Z(this, void 0, void 0, (function() {
                            return $(this, (function(e) {
                                if (void 0 === this.layout) throw new Error("Layout data not yet set");
                                return this.build(this.layout, new Map, this.container), this._sprite = this.container.children.find((function(e) {
                                    return "activityAnim" === e.name
                                })), [2]
                            }))
                        }))
                    }, t.prototype.delayAndShow = function(e) {
                        void 0 === e && (e = t.DEFAULT_WAITING_TIME), this._delayMilseconds = e, this._ticker.add(this.onDelayTickHandler, this)
                    }, t.prototype.onDelayTickHandler = function() {
                        this._time += this._ticker.deltaMS, this._time > this._delayMilseconds && !1 === this.container.visible && (this.container.visible = !0, this._sprite.loop = !0, this._sprite.play(), this.interruptTick())
                    }, t.prototype.interruptTick = function() {
                        this._ticker.remove(this.onDelayTickHandler, this), this._time = 0
                    }, t.prototype.hide = function() {
                        this.interruptTick(), this._sprite.stop(), this.container.visible = !1
                    }, t.DEFAULT_WAITING_TIME = 3e3, t
                }(p.a),
                te = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                ne = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                oe = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                re = function(e) {
                    function t(t, n) {
                        return e.call(this, new i.a(t, null), [], "totalBetMeterFreeSpin", n) || this
                    }
                    return te(t, e), Object.defineProperty(t.prototype, "value", {
                        get: function() {
                            return this._parent.props.patternsBet * this._parent.props.betPerPattern
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(t.prototype, "textValue", {
                        get: function() {
                            return this.value > 0 && this._parent.props.denomination.length > 0 ? S.c.format(this.value, this._parent.props.denomination[0].value) : ""
                        },
                        enumerable: !0,
                        configurable: !0
                    }), ne([l.d, oe("design:type", Number), oe("design:paramtypes", [])], t.prototype, "value", null), ne([l.d, oe("design:type", String), oe("design:paramtypes", [])], t.prototype, "textValue", null), t
                }(v.a),
                ie = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                ae = function(e, t, n, o) {
                    return new(n || (n = Promise))((function(r, i) {
                        function a(e) {
                            try {
                                p(o.next(e))
                            } catch (e) {
                                i(e)
                            }
                        }

                        function s(e) {
                            try {
                                p(o.throw(e))
                            } catch (e) {
                                i(e)
                            }
                        }

                        function p(e) {
                            var t;
                            e.done ? r(e.value) : (t = e.value, t instanceof n ? t : new n((function(e) {
                                e(t)
                            }))).then(a, s)
                        }
                        p((o = o.apply(e, t || [])).next())
                    }))
                },
                se = function(e, t) {
                    var n, o, r, i, a = {
                        label: 0,
                        sent: function() {
                            if (1 & r[0]) throw r[1];
                            return r[1]
                        },
                        trys: [],
                        ops: []
                    };
                    return i = {
                        next: s(0),
                        throw: s(1),
                        return: s(2)
                    }, "function" == typeof Symbol && (i[Symbol.iterator] = function() {
                        return this
                    }), i;

                    function s(i) {
                        return function(s) {
                            return function(i) {
                                if (n) throw new TypeError("Generator is already executing.");
                                for (; a;) try {
                                    if (n = 1, o && (r = 2 & i[0] ? o.return : i[0] ? o.throw || ((r = o.return) && r.call(o), 0) : o.next) && !(r = r.call(o, i[1])).done) return r;
                                    switch (o = 0, r && (i = [2 & i[0], r.value]), i[0]) {
                                        case 0:
                                        case 1:
                                            r = i;
                                            break;
                                        case 4:
                                            return a.label++, {
                                                value: i[1],
                                                done: !1
                                            };
                                        case 5:
                                            a.label++, o = i[1], i = [0];
                                            continue;
                                        case 7:
                                            i = a.ops.pop(), a.trys.pop();
                                            continue;
                                        default:
                                            if (!(r = a.trys, (r = r.length > 0 && r[r.length - 1]) || 6 !== i[0] && 2 !== i[0])) {
                                                a = 0;
                                                continue
                                            }
                                            if (3 === i[0] && (!r || i[1] > r[0] && i[1] < r[3])) {
                                                a.label = i[1];
                                                break
                                            }
                                            if (6 === i[0] && a.label < r[1]) {
                                                a.label = r[1], r = i;
                                                break
                                            }
                                            if (r && a.label < r[2]) {
                                                a.label = r[2], a.ops.push(i);
                                                break
                                            }
                                            r[2] && a.ops.pop(), a.trys.pop();
                                            continue
                                    }
                                    i = t.call(e, a)
                                } catch (e) {
                                    i = [6, e], o = 0
                                } finally {
                                    n = r = 0
                                }
                                if (5 & i[0]) throw i[1];
                                return {
                                    value: i[0] ? i[1] : void 0,
                                    done: !0
                                }
                            }([i, s])
                        }
                    }
                };
            ! function(e) {
                e[e.BTN_SPIN = 0] = "BTN_SPIN", e[e.BTN_SLAM_STOP = 1] = "BTN_SLAM_STOP", e[e.BTN_SKIP = 2] = "BTN_SKIP", e[e.BTN_PLAY = 3] = "BTN_PLAY", e[e.BTN_AUTO_SPIN_START = 4] = "BTN_AUTO_SPIN_START", e[e.BTN_AUTO_SPIN_STOP = 5] = "BTN_AUTO_SPIN_STOP", e[e.BTN_BET_CONTROLS = 6] = "BTN_BET_CONTROLS", e[e.CONTROL_AUTO_SPIN = 7] = "CONTROL_AUTO_SPIN", e[e.METER_TOTAL_BET = 8] = "METER_TOTAL_BET", e[e.METER_WIN = 9] = "METER_WIN", e[e.METER_BALANCE = 10] = "METER_BALANCE", e[e.METER_SPIN = 11] = "METER_SPIN", e[e.METER_FS_WIN = 12] = "METER_FS_WIN", e[e.METER_FS_TOTAL_WIN = 13] = "METER_FS_TOTAL_WIN", e[e.METER_FS_TOTAL_BET = 14] = "METER_FS_TOTAL_BET", e[e.NETWORKACTIVITY = 15] = "NETWORKACTIVITY"
            }(r || (r = {}));
            var pe = function(e) {
                function t(t, n, o) {
                    var p = this,
                        l = new i.a(t, n),
                        c = new f,
                        u = new d.a(c, t);
                    (p = e.call(this, l, u, void 0, [], "ui") || this).actions = new b(c, l.actions), p.subComponents = new Map, p.subComponents.set(r.METER_TOTAL_BET, new _.a(p, o)), p.subComponents.set(r.METER_WIN, new w(p.props, o)), p.subComponents.set(r.METER_BALANCE, new j(p.props, o));
                    var y = l.props.assetPack.includes("mini");
                    if (y || (p.subComponents.set(r.CONTROL_AUTO_SPIN, new E.a(p)), p.subComponents.set(r.BTN_AUTO_SPIN_START, p.subComponents.get(r.CONTROL_AUTO_SPIN).startButton), p.subComponents.set(r.BTN_AUTO_SPIN_STOP, p.subComponents.get(r.CONTROL_AUTO_SPIN).stopButton)), p.subComponents.set(r.BTN_BET_CONTROLS, new K(p.actions)), p.subComponents.set(r.BTN_SPIN, new a.a), p.subComponents.set(r.BTN_SLAM_STOP, new a.a), p.subComponents.set(r.BTN_SKIP, new B(p.actions)), p.subComponents.set(r.BTN_PLAY, new a.a), p.subComponents.set(r.METER_SPIN, new L(p.props, o)), p.subComponents.set(r.METER_FS_WIN, new W(p.props, o)), p.subComponents.set(r.METER_FS_TOTAL_WIN, new Y(p.props, o)), p.subComponents.set(r.METER_FS_TOTAL_BET, new re(p.props, o)), p.subComponents.set(r.NETWORKACTIVITY, new ee(new i.a(u, null))), p.baseGameMeters = [p.subComponents.get(r.METER_TOTAL_BET), p.subComponents.get(r.METER_WIN), p.subComponents.get(r.METER_BALANCE), p.subComponents.get(r.BTN_BET_CONTROLS)], !y) {
                        p.baseGameMeters.push(p.subComponents.get(r.BTN_AUTO_SPIN_START), p.subComponents.get(r.CONTROL_AUTO_SPIN));
                        var h = s.a.getInstance().addReaction("autoSpinInfoSet", (function() {
                            return l.props.paytable.autoSpinInfo
                        }), (function(e) {
                            null === e || e.enable || p._hideAutoSpinControl(), s.a.getInstance().disposeReaction(h)
                        }))
                    }
                    return p.freeSpinMeters = [p.subComponents.get(r.METER_SPIN), p.subComponents.get(r.METER_FS_TOTAL_BET), p.subComponents.get(r.METER_FS_TOTAL_WIN)], s.a.getInstance().addWhen("isReplaySet", (function() {
                        return l.props.gcName.length > 0
                    }), (function() {
                        !0 === l.props.rcIsReplay && (p._hideBalanceMeter(), p._hideTotalBetButtons())
                    })), p
                }
                return ie(t, e), t.prototype.getControl = function(e) {
                    return this.subComponents.get(e)
                }, t.prototype.getParentProps = function() {
                    return this._parent.props
                }, t.prototype.init = function() {
                    return ae(this, void 0, void 0, (function() {
                        var e;
                        return se(this, (function(t) {
                            return this.build(this.layout, new Map([
                                ["betControlsButton", this.subComponents.get(r.BTN_BET_CONTROLS)],
                                ["playButton", this.subComponents.get(r.BTN_PLAY)],
                                ["skipButton", this.subComponents.get(r.BTN_SKIP)],
                                ["slamStopButton", this.subComponents.get(r.BTN_SLAM_STOP)],
                                ["spinButton", this.subComponents.get(r.BTN_SPIN)]
                            ]), this.container), this._parent.props.assetPack.includes("mini") && (e = this.container.parent.getChildByName("autoSpin")) && e.destroy(), [2]
                        }))
                    }))
                }, t.prototype.setCommands = function(e) {
                    this._commands = e
                }, t.prototype._hideAutoSpinControl = function() {
                    var e = this.subComponents.get(r.CONTROL_AUTO_SPIN),
                        t = this.subComponents.get(r.BTN_AUTO_SPIN_START),
                        n = this.subComponents.get(r.BTN_AUTO_SPIN_STOP);
                    t.children.length > 0 ? t.destroy() : s.a.getInstance().addWhen("autoSpinStartButtonInit", (function() {
                        return e.initialized
                    }), (function() {
                        return t.destroy()
                    })), n.children.length > 0 ? n.destroy() : s.a.getInstance().addWhen("autoSpinStopButtonInit", (function() {
                        return e.initialized
                    }), (function() {
                        return n.destroy()
                    })), this.subComponents.delete(r.CONTROL_AUTO_SPIN), this.subComponents.delete(r.BTN_AUTO_SPIN_START), this.subComponents.delete(r.BTN_AUTO_SPIN_STOP)
                }, t.prototype._hideBalanceMeter = function() {
                    var e = this.subComponents.get(r.METER_BALANCE);
                    s.a.getInstance().addWhen("balanceMeterInit", (function() {
                        return e.initialized
                    }), (function() {
                        return e.container.destroy()
                    })), this.subComponents.delete(r.METER_BALANCE)
                }, t.prototype._hideTotalBetButtons = function() {
                    var e = this.subComponents.get(r.METER_TOTAL_BET);
                    s.a.getInstance().addWhen("totalBetStepperMeterInit", (function() {
                        return e.initialized
                    }), (function() {
                        e.container.removeChild(e.incrementButton), e.container.removeChild(e.decrementButton)
                    }))
                }, t
            }(p.a)
        },
        49: function(e, t, n) {
            "use strict";
            n.d(t, "a", (function() {
                return A
            }));
            var o, r = n(0),
                i = n(3),
                a = n(20),
                s = n(10),
                p = n(1),
                l = n(64),
                c = n(120),
                u = n(75),
                f = n(108),
                d = function() {
                    this.rollupConfig = new Map
                },
                y = n(19),
                h = function() {
                    function e() {
                        var e = this;
                        this.getRollupType = function(e) {
                            var t;
                            switch (e) {
                                default:
                                    case "standard":
                                    t = y.c.STANDARD;
                                break;
                                case "dynamic":
                                        t = y.c.DYNAMIC
                            }
                            return t
                        }, this.getRollupConfigDef = function(t) {
                            return {
                                type: e.getRollupType(t["@type"]),
                                duration: t["@duration"],
                                endDelay: t["@endDelay"],
                                winThreshold: t["@winThreshold"]
                            }
                        }, this.getThresholdConfigDef = function(e) {
                            return {
                                duration: e["@duration"]
                            }
                        }
                    }
                    return e.prototype.translate = function(e) {
                        if (null != e) {
                            this._platformData = e;
                            var t = new d;
                            return t.rollupConfig = this.getRollupConfigData(e), t.rollupConfig
                        }
                        return null
                    }, e.prototype.getRollupConfigData = function(e) {
                        var t = new Map;
                        if (f.a.getInstance().exists(e.WinRollupConfig)) {
                            var n = this.getRollupConfig(e.WinRollupConfig);
                            t.set(n.name, n)
                        }
                        if (f.a.getInstance().exists(e.BigWinRollupConfig)) {
                            n = this.getRollupConfig(e.BigWinRollupConfig);
                            t.set(n.name, n)
                        }
                        return t
                    }, e.prototype.getRollupConfig = function(t) {
                        var n = {
                            name: t["@name"],
                            config: t["@config"],
                            thresholdConfig: t[e.THRESHOLD_CONFIG]
                        };
                        if (f.a.getInstance().exists(n.config)) {
                            var o = this.getRollupConfigDef(this._platformData[n.config]);
                            n.config = o
                        }
                        if (f.a.getInstance().exists(n.thresholdConfig)) {
                            var r = this.getThresholdConfigData(n.thresholdConfig);
                            n.thresholdConfig = r
                        }
                        return n
                    }, e.prototype.getThresholdConfigData = function(e) {
                        var t = this,
                            n = [];
                        return Object.keys(e).forEach((function(o, r) {
                            var i = t.getThresholdConfig(o, e[o]);
                            n.push(i)
                        })), n.sort((function(e, t) {
                            return e.threshold < t.threshold ? -1 : 1
                        })), n
                    }, e.prototype.getThresholdConfig = function(e, t) {
                        var n = {
                            threshold: parseFloat(e),
                            animName: t["@animName"],
                            tierName: t["@tierName"],
                            config: t["@config"]
                        };
                        if (f.a.getInstance().exists(n.config)) {
                            var o = this.getThresholdConfigDef(this._platformData[n.config]);
                            n.config = o
                        }
                        return n
                    }, e.THRESHOLD_CONFIG = "ThresholdConfig", e
                }(),
                g = n(17),
                m = (o = function(e, t) {
                    return (o = Object.setPrototypeOf || {
                            __proto__: []
                        }
                        instanceof Array && function(e, t) {
                            e.__proto__ = t
                        } || function(e, t) {
                            for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                        })(e, t)
                }, function(e, t) {
                    function n() {
                        this.constructor = e
                    }
                    o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
                }),
                b = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                _ = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                S = function(e) {
                    function t() {
                        return null !== e && e.apply(this, arguments) || this
                    }
                    return m(t, e), t.prototype.setCurrentValue = function(e) {
                        this._data.currentValue = e
                    }, t.prototype.setCurrentThreshold = function(e, t, n) {
                        this._data.currentThreshold.label = e, this._data.currentThreshold.tier = t, this._data.currentThreshold.tierName = n
                    }, t.prototype.setTargetValue = function(e) {
                        this._data.targetValue = e
                    }, t.prototype.setRollupConfigData = function(e) {
                        this._data.rollupConfigData = e
                    }, t.prototype.setRollupState = function(e) {
                        this._data.rollupState = e
                    }, b([r.b.bound, _("design:type", Function), _("design:paramtypes", [Number]), _("design:returntype", void 0)], t.prototype, "setCurrentValue", null), b([r.b.bound, _("design:type", Function), _("design:paramtypes", [String, Number, String]), _("design:returntype", void 0)], t.prototype, "setCurrentThreshold", null), b([r.b.bound, _("design:type", Function), _("design:paramtypes", [Number]), _("design:returntype", void 0)], t.prototype, "setTargetValue", null), b([r.b.bound, _("design:type", Function), _("design:paramtypes", [Object]), _("design:returntype", void 0)], t.prototype, "setRollupConfigData", null), b([r.b.bound, _("design:type", Function), _("design:paramtypes", [Number]), _("design:returntype", void 0)], t.prototype, "setRollupState", null), t
                }(g.a),
                v = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                C = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                O = function() {
                    function e(e, t) {
                        this._data = e, this._parent = t
                    }
                    return Object.defineProperty(e.prototype, "currentValue", {
                        get: function() {
                            return this._data.currentValue
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "currentLabel", {
                        get: function() {
                            return this._data.currentThreshold.label
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "currentThreshold", {
                        get: function() {
                            return this._data.currentThreshold
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "targetValue", {
                        get: function() {
                            return this._data.targetValue
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "rollupConfigData", {
                        get: function() {
                            return this._data.rollupConfigData
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "bet", {
                        get: function() {
                            return "BaseGame" === this._parent.response.outcomeDetail.nextStage ? this._parent.response.outcomeDetail.settled : this._parent.response.outcomeDetail.pending
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "rollupState", {
                        get: function() {
                            return this._data.rollupState
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "skipped", {
                        get: function() {
                            return this._parent.skipped
                        },
                        enumerable: !0,
                        configurable: !0
                    }), v([r.d, C("design:type", Number), C("design:paramtypes", [])], e.prototype, "currentValue", null), v([r.d, C("design:type", String), C("design:paramtypes", [])], e.prototype, "currentLabel", null), v([r.d, C("design:type", Object), C("design:paramtypes", [])], e.prototype, "currentThreshold", null), v([r.d, C("design:type", Number), C("design:paramtypes", [])], e.prototype, "targetValue", null), v([r.d, C("design:type", Object), C("design:paramtypes", [])], e.prototype, "rollupConfigData", null), v([r.d, C("design:type", Number), C("design:paramtypes", [])], e.prototype, "bet", null), v([r.d, C("design:type", Number), C("design:paramtypes", [])], e.prototype, "rollupState", null), v([r.d, C("design:type", Boolean), C("design:paramtypes", [])], e.prototype, "skipped", null), e
                }(),
                P = n(103),
                w = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                R = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                N = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                I = function(e, t, n, o) {
                    return new(n || (n = Promise))((function(r, i) {
                        function a(e) {
                            try {
                                p(o.next(e))
                            } catch (e) {
                                i(e)
                            }
                        }

                        function s(e) {
                            try {
                                p(o.throw(e))
                            } catch (e) {
                                i(e)
                            }
                        }

                        function p(e) {
                            var t;
                            e.done ? r(e.value) : (t = e.value, t instanceof n ? t : new n((function(e) {
                                e(t)
                            }))).then(a, s)
                        }
                        p((o = o.apply(e, t || [])).next())
                    }))
                },
                T = function(e, t) {
                    var n, o, r, i, a = {
                        label: 0,
                        sent: function() {
                            if (1 & r[0]) throw r[1];
                            return r[1]
                        },
                        trys: [],
                        ops: []
                    };
                    return i = {
                        next: s(0),
                        throw: s(1),
                        return: s(2)
                    }, "function" == typeof Symbol && (i[Symbol.iterator] = function() {
                        return this
                    }), i;

                    function s(i) {
                        return function(s) {
                            return function(i) {
                                if (n) throw new TypeError("Generator is already executing.");
                                for (; a;) try {
                                    if (n = 1, o && (r = 2 & i[0] ? o.return : i[0] ? o.throw || ((r = o.return) && r.call(o), 0) : o.next) && !(r = r.call(o, i[1])).done) return r;
                                    switch (o = 0, r && (i = [2 & i[0], r.value]), i[0]) {
                                        case 0:
                                        case 1:
                                            r = i;
                                            break;
                                        case 4:
                                            return a.label++, {
                                                value: i[1],
                                                done: !1
                                            };
                                        case 5:
                                            a.label++, o = i[1], i = [0];
                                            continue;
                                        case 7:
                                            i = a.ops.pop(), a.trys.pop();
                                            continue;
                                        default:
                                            if (!(r = a.trys, (r = r.length > 0 && r[r.length - 1]) || 6 !== i[0] && 2 !== i[0])) {
                                                a = 0;
                                                continue
                                            }
                                            if (3 === i[0] && (!r || i[1] > r[0] && i[1] < r[3])) {
                                                a.label = i[1];
                                                break
                                            }
                                            if (6 === i[0] && a.label < r[1]) {
                                                a.label = r[1], r = i;
                                                break
                                            }
                                            if (r && a.label < r[2]) {
                                                a.label = r[2], a.ops.push(i);
                                                break
                                            }
                                            r[2] && a.ops.pop(), a.trys.pop();
                                            continue
                                    }
                                    i = t.call(e, a)
                                } catch (e) {
                                    i = [6, e], o = 0
                                } finally {
                                    n = r = 0
                                }
                                if (5 & i[0]) throw i[1];
                                return {
                                    value: i[0] ? i[1] : void 0,
                                    done: !0
                                }
                            }([i, s])
                        }
                    }
                },
                A = function(e) {
                    function t(n, o, r, i, p) {
                        void 0 === o && (o = ""), void 0 === r && (r = new y.a), void 0 === i && (i = [t.rollupConfigName]), void 0 === p && (p = "rollup");
                        var l = e.call(this, new a.a(n, null), new O(r, n), void 0, "" !== o ? i.concat(o) : i, p) || this;
                        l._mobxUtils = s.a.getInstance(), l._textWidth = 0, l.orientationChange = "", l.translateRollupConfig = function(e) {
                            return (new h).translate(e)
                        }, l.setConfig = function(e) {
                            l.setRollupConfigData(e)
                        }, l._actions = new S(r), l._setTextAutoRun = "", l._stopReaction = "", l._bitmapTextId = o;
                        new P.a(l);
                        return l
                    }
                    return w(t, e), t.prototype.init = function() {
                        return I(this, void 0, void 0, (function() {
                            var e, n, o, r, a, s, u;
                            return T(this, (function(f) {
                                if (void 0 === this.layout) throw new Error("Layout data not yet set");
                                return e = this.layout.id, n = e + "_value", o = new Map, "" !== this._bitmapTextId && (r = p.m.getStyle(n) || {}, a = new i.BitmapText("", {
                                    font: {
                                        name: this.assets.get(this._bitmapTextId),
                                        size: r.fontSize || 0
                                    },
                                    align: r.align
                                }), this._valueField = a, o.set(n, this._valueField)), this.build(this.layout, o, this.container), this.container.visible = !1, "" === this._bitmapTextId && (this._valueField = this.container.children.find((function(e) {
                                    return e.name === n
                                })), this._valueField instanceof l.a && (this._valueField.autoCalculate = !1)), this._valueField instanceof i.BitmapText && (this._pixiTextUtil = new c.a, this._textWidth = p.l.width, this._valueField.maxWidth = p.j.get(0).canvas.width, "" === this._bitmapTextId && (s = p.e.props.layout.get(this._valueField.name), this._bitmapTextId = s ? s.font.name + ".xml" : this._valueField.name)), u = this.translateRollupConfig(this.assets.get(t.rollupConfigName)), this.setConfig(u), [2]
                            }))
                        }))
                    }, t.prototype.setCommands = function(e) {
                        this._commands = e
                    }, t.prototype.show = function(e) {
                        var n = this;
                        "" === this._setTextAutoRun && (this._setTextAutoRun = this._mobxUtils.addAutoRun(t.rollupSetText, (function() {
                            n._valueField.text = n.textValue, "" === n._bitmapTextId ? n._valueField.center() : n._pixiTextUtil && n._pixiTextUtil.autoFitSingleLineBitmapText(n._valueField, n._textWidth)
                        }))), this.setTargetValue(e), this.setRollupState(y.b.START), "" === this._stopReaction && (this._stopReaction = this._mobxUtils.addWhen(t.rollupStop, (function() {
                            return n.props.rollupState === y.b.STOP
                        }), (function() {
                            n._stopReaction = "", n.dispose()
                        }))), this.container.visible = !0, this.orientChangeRollup()
                    }, t.prototype.hide = function() {
                        this.skip(), this.container.visible = !1, this.setCurrentThreshold("", 0, ""), this.setTargetValue(0), "" !== this.orientationChange && (this._mobxUtils.disposeReaction(this.orientationChange), this.orientationChange = "")
                    }, t.prototype.skip = function() {
                        this.props.rollupState === y.b.START ? this.setRollupState(y.b.CANCEL) : this.dispose()
                    }, t.prototype.dispose = function() {
                        "" !== this._setTextAutoRun && (this._mobxUtils.disposeReaction(this._setTextAutoRun), this._setTextAutoRun = ""), "" !== this._stopReaction && (this._mobxUtils.disposeReaction(this._stopReaction), this._stopReaction = "")
                    }, t.prototype.orientChangeRollup = function() {
                        var e = this;
                        "" === this.orientationChange && (this.orientationChange = this._mobxUtils.addReaction("rollupComponent_orientationChange", (function() {
                            return p.l.orientation
                        }), (function() {
                            e._textWidth = p.l.width, e._pixiTextUtil && e._pixiTextUtil.autoFitSingleLineBitmapText(e._valueField, e._textWidth)
                        })))
                    }, Object.defineProperty(t.prototype, "targetConfigName", {
                        get: function() {
                            var e = null !== this.props.rollupConfigData ? this.props.rollupConfigData.get(t.BIG_WIN_ROLLUP_CONFIG) : void 0;
                            return void 0 !== e && this.props.targetValue >= this.props.bet * e.thresholdConfig[0].threshold && this.props.targetValue > e.config.winThreshold ? t.BIG_WIN_ROLLUP_CONFIG : t.WIN_ROLLUP_CONFIG
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(t.prototype, "value", {
                        get: function() {
                            return this.props.currentValue
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(t.prototype, "textValue", {
                        get: function() {
                            return "" !== this._bitmapTextId ? this.value > 0 && this._parent.props.paytable.denominationList.length > 0 ? p.c.formatForBitmapFont(this.value, this._parent.props.paytable.denominationList[0].value) : "" : this.value > 0 && this._parent.props.paytable.denominationList.length > 0 ? p.c.format(this.value, this._parent.props.paytable.denominationList[0].value) : ""
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(t.prototype, "textWidth", {
                        set: function(e) {
                            this._textWidth = e
                        },
                        enumerable: !0,
                        configurable: !0
                    }), t.prototype.setCurrentValue = function(e) {
                        this._actions.setCurrentValue(e)
                    }, t.prototype.setCurrentThreshold = function(e, t, n) {
                        this._actions.setCurrentThreshold(e, t, n)
                    }, t.prototype.setTargetValue = function(e) {
                        this._actions.setTargetValue(e)
                    }, t.prototype.setRollupConfigData = function(e) {
                        this._actions.setRollupConfigData(e)
                    }, t.prototype.setRollupState = function(e) {
                        this._actions.setRollupState(e)
                    }, t.BIG_WIN_ROLLUP_CONFIG = "BigWin.Rollup", t.WIN_ROLLUP_CONFIG = "Win.Rollup", t.rollupConfigName = "rollupConfig.json", t.rollupSetStyle = "rollupStyle", t.rollupSetText = "rollupText", t.rollupStop = "rollupStop", R([r.d, N("design:type", Number), N("design:paramtypes", [])], t.prototype, "value", null), R([r.d, N("design:type", String), N("design:paramtypes", [])], t.prototype, "textValue", null), R([r.b.bound, N("design:type", Function), N("design:paramtypes", [Number]), N("design:returntype", void 0)], t.prototype, "setCurrentValue", null), R([r.b.bound, N("design:type", Function), N("design:paramtypes", [String, Number, String]), N("design:returntype", void 0)], t.prototype, "setCurrentThreshold", null), R([r.b.bound, N("design:type", Function), N("design:paramtypes", [Number]), N("design:returntype", void 0)], t.prototype, "setTargetValue", null), R([r.b.bound, N("design:type", Function), N("design:paramtypes", [Object]), N("design:returntype", void 0)], t.prototype, "setRollupConfigData", null), R([r.b.bound, N("design:type", Function), N("design:paramtypes", [Number]), N("design:returntype", void 0)], t.prototype, "setRollupState", null), t
                }(u.a)
        },
        5: function(e, t, n) {
            "use strict";
            var o;
            n.d(t, "a", (function() {
                    return o
                })),
                function(e) {
                    e[e.IDLE = 0] = "IDLE", e[e.START = 1] = "START", e[e.STARTED = 2] = "STARTED", e[e.PROCESSING = 3] = "PROCESSING", e[e.STOPPING = 4] = "STOPPING", e[e.STOPPED = 5] = "STOPPED", e[e.CANCEL = 6] = "CANCEL"
                }(o || (o = {}))
        },
        57: function(e, t, n) {
            "use strict";
            n.d(t, "a", (function() {
                return d
            }));
            var o, r = n(0),
                i = n(65),
                a = n(40),
                s = n(37),
                p = (o = function(e, t) {
                    return (o = Object.setPrototypeOf || {
                            __proto__: []
                        }
                        instanceof Array && function(e, t) {
                            e.__proto__ = t
                        } || function(e, t) {
                            for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                        })(e, t)
                }, function(e, t) {
                    function n() {
                        this.constructor = e
                    }
                    o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
                }),
                l = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                c = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                u = function(e, t, n, o) {
                    return new(n || (n = Promise))((function(r, i) {
                        function a(e) {
                            try {
                                p(o.next(e))
                            } catch (e) {
                                i(e)
                            }
                        }

                        function s(e) {
                            try {
                                p(o.throw(e))
                            } catch (e) {
                                i(e)
                            }
                        }

                        function p(e) {
                            var t;
                            e.done ? r(e.value) : (t = e.value, t instanceof n ? t : new n((function(e) {
                                e(t)
                            }))).then(a, s)
                        }
                        p((o = o.apply(e, t || [])).next())
                    }))
                },
                f = function(e, t) {
                    var n, o, r, i, a = {
                        label: 0,
                        sent: function() {
                            if (1 & r[0]) throw r[1];
                            return r[1]
                        },
                        trys: [],
                        ops: []
                    };
                    return i = {
                        next: s(0),
                        throw: s(1),
                        return: s(2)
                    }, "function" == typeof Symbol && (i[Symbol.iterator] = function() {
                        return this
                    }), i;

                    function s(i) {
                        return function(s) {
                            return function(i) {
                                if (n) throw new TypeError("Generator is already executing.");
                                for (; a;) try {
                                    if (n = 1, o && (r = 2 & i[0] ? o.return : i[0] ? o.throw || ((r = o.return) && r.call(o), 0) : o.next) && !(r = r.call(o, i[1])).done) return r;
                                    switch (o = 0, r && (i = [2 & i[0], r.value]), i[0]) {
                                        case 0:
                                        case 1:
                                            r = i;
                                            break;
                                        case 4:
                                            return a.label++, {
                                                value: i[1],
                                                done: !1
                                            };
                                        case 5:
                                            a.label++, o = i[1], i = [0];
                                            continue;
                                        case 7:
                                            i = a.ops.pop(), a.trys.pop();
                                            continue;
                                        default:
                                            if (!(r = a.trys, (r = r.length > 0 && r[r.length - 1]) || 6 !== i[0] && 2 !== i[0])) {
                                                a = 0;
                                                continue
                                            }
                                            if (3 === i[0] && (!r || i[1] > r[0] && i[1] < r[3])) {
                                                a.label = i[1];
                                                break
                                            }
                                            if (6 === i[0] && a.label < r[1]) {
                                                a.label = r[1], r = i;
                                                break
                                            }
                                            if (r && a.label < r[2]) {
                                                a.label = r[2], a.ops.push(i);
                                                break
                                            }
                                            r[2] && a.ops.pop(), a.trys.pop();
                                            continue
                                    }
                                    i = t.call(e, a)
                                } catch (e) {
                                    i = [6, e], o = 0
                                } finally {
                                    n = r = 0
                                }
                                if (5 & i[0]) throw i[1];
                                return {
                                    value: i[0] ? i[1] : void 0,
                                    done: !0
                                }
                            }([i, s])
                        }
                    }
                },
                d = function(e) {
                    function t(t, n, o, r) {
                        var a = e.call(this, t, n, o, r) || this;
                        return a._enabled = !0, a.incrementButton = new i.a, a.decrementButton = new i.a, a.incrementButton.addListener("buttonup", a.onIncrement, a), a.decrementButton.addListener("buttonup", a.onDecrement, a), a
                    }
                    return p(t, e), t.prototype.init = function() {
                        return u(this, void 0, void 0, (function() {
                            var e, t, n = this;
                            return f(this, (function(o) {
                                if (void 0 === this.layout) throw new Error("Layout data not yet set");
                                return e = this.layout.id, a.a.build(this.layout, this.createPreBuiltMap(e), this.container), t = this.container.children.find((function(t) {
                                    return t.name === e + "_value"
                                })), Object(r.c)((function() {
                                    t.text = n.textValue
                                })), Object(r.c)((function() {
                                    n.incrementButton.enabled = n._enabled && n.stepIndex < n.steps.length - 1
                                })), Object(r.c)((function() {
                                    n.decrementButton.enabled = n._enabled && n.stepIndex > 0
                                })), [2]
                            }))
                        }))
                    }, t.prototype.createPreBuiltMap = function(e) {
                        return new Map([
                            [e + "Plus", this.incrementButton],
                            [e + "Minus", this.decrementButton]
                        ])
                    }, t.prototype.onIncrement = function(e) {}, t.prototype.onDecrement = function(e) {}, Object.defineProperty(t.prototype, "value", {
                        get: function() {
                            throw new Error('Meter "' + this.constructor.name + '" value getter not implemented')
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(t.prototype, "steps", {
                        get: function() {
                            throw new Error('Meter "' + this.constructor.name + '" steps getter not implemented')
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(t.prototype, "stepIndex", {
                        get: function() {
                            throw new Error('Meter "' + this.constructor.name + '" stepIndex getter not implemented')
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(t.prototype, "textValue", {
                        get: function() {
                            return "$" + (.01 * this.value).toFixed(2)
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(t.prototype, "enabled", {
                        get: function() {
                            return this._enabled
                        },
                        set: function(e) {
                            this._enabled = e
                        },
                        enumerable: !0,
                        configurable: !0
                    }), l([r.f, c("design:type", Boolean)], t.prototype, "_enabled", void 0), l([r.d, c("design:type", String), c("design:paramtypes", [])], t.prototype, "textValue", null), l([r.d, c("design:type", Boolean), c("design:paramtypes", [Object])], t.prototype, "enabled", null), t
                }(s.a)
        },
        63: function(e, t, n) {
            "use strict";
            n.d(t, "a", (function() {
                return o
            }));
            var o = function() {
                this.populationOutcomes = new Map, this.outcomeDetail = {}, this.pickerInput = null, this.pickerOutcome = {}, this.keyValuePairInfo = new Map, this.obfuscatedOutcome = {}, this.decryptedOutcome = {}, this.patternSliderInput = {}, this.pickerSummaryOutcomes = new Map, this.balances = {}, this.cumulativePayout = 0, this.prizeOutcomes = new Map, this.highlightOutcomes = new Map, this.freeSpinOutcomes = new Map, this.multiplierOutcome = {}, this.multiplierOutcomes = new Map, this.awardCapOutcome = {}, this.triggerOutcome = new Map, this.promotionalFreeSpin = {}, this.jackpotOutcomes = null
            }
        },
        68: function(e, t, n) {
            "use strict";
            n.d(t, "b", (function() {
                return r
            })), n.d(t, "a", (function() {
                return m
            }));
            var o, r, i = n(6),
                a = n(3),
                s = n(45),
                p = n(65),
                l = n(10),
                c = n(1),
                u = n(75),
                f = n(2),
                d = n(12),
                y = (o = function(e, t) {
                    return (o = Object.setPrototypeOf || {
                            __proto__: []
                        }
                        instanceof Array && function(e, t) {
                            e.__proto__ = t
                        } || function(e, t) {
                            for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                        })(e, t)
                }, function(e, t) {
                    function n() {
                        this.constructor = e
                    }
                    o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
                }),
                h = function(e, t, n, o) {
                    return new(n || (n = Promise))((function(r, i) {
                        function a(e) {
                            try {
                                p(o.next(e))
                            } catch (e) {
                                i(e)
                            }
                        }

                        function s(e) {
                            try {
                                p(o.throw(e))
                            } catch (e) {
                                i(e)
                            }
                        }

                        function p(e) {
                            var t;
                            e.done ? r(e.value) : (t = e.value, t instanceof n ? t : new n((function(e) {
                                e(t)
                            }))).then(a, s)
                        }
                        p((o = o.apply(e, t || [])).next())
                    }))
                },
                g = function(e, t) {
                    var n, o, r, i, a = {
                        label: 0,
                        sent: function() {
                            if (1 & r[0]) throw r[1];
                            return r[1]
                        },
                        trys: [],
                        ops: []
                    };
                    return i = {
                        next: s(0),
                        throw: s(1),
                        return: s(2)
                    }, "function" == typeof Symbol && (i[Symbol.iterator] = function() {
                        return this
                    }), i;

                    function s(i) {
                        return function(s) {
                            return function(i) {
                                if (n) throw new TypeError("Generator is already executing.");
                                for (; a;) try {
                                    if (n = 1, o && (r = 2 & i[0] ? o.return : i[0] ? o.throw || ((r = o.return) && r.call(o), 0) : o.next) && !(r = r.call(o, i[1])).done) return r;
                                    switch (o = 0, r && (i = [2 & i[0], r.value]), i[0]) {
                                        case 0:
                                        case 1:
                                            r = i;
                                            break;
                                        case 4:
                                            return a.label++, {
                                                value: i[1],
                                                done: !1
                                            };
                                        case 5:
                                            a.label++, o = i[1], i = [0];
                                            continue;
                                        case 7:
                                            i = a.ops.pop(), a.trys.pop();
                                            continue;
                                        default:
                                            if (!(r = a.trys, (r = r.length > 0 && r[r.length - 1]) || 6 !== i[0] && 2 !== i[0])) {
                                                a = 0;
                                                continue
                                            }
                                            if (3 === i[0] && (!r || i[1] > r[0] && i[1] < r[3])) {
                                                a.label = i[1];
                                                break
                                            }
                                            if (6 === i[0] && a.label < r[1]) {
                                                a.label = r[1], r = i;
                                                break
                                            }
                                            if (r && a.label < r[2]) {
                                                a.label = r[2], a.ops.push(i);
                                                break
                                            }
                                            r[2] && a.ops.pop(), a.trys.pop();
                                            continue
                                    }
                                    i = t.call(e, a)
                                } catch (e) {
                                    i = [6, e], o = 0
                                } finally {
                                    n = r = 0
                                }
                                if (5 & i[0]) throw i[1];
                                return {
                                    value: i[0] ? i[1] : void 0,
                                    done: !0
                                }
                            }([i, s])
                        }
                    }
                };
            ! function(e) {
                e.AUTO = "AutoStop", e.MANUAL = "ManualStop", e.BONUS = "BonusStop"
            }(r || (r = {}));
            var m = function(e) {
                function t(n) {
                    var o = e.call(this, n, {}, null, [], "autoSpin") || this;
                    return o._counter = new a.Container, o._counterReaction = "", o._ixfProxy = new s.a, o._ixfProxy.clientService.subscribe(t.GAME_STOP_AUTO_SPIN, (function() {
                        return o._parent.actions.setStopAutoSpinFromIXF(!0)
                    })), o.startButton = new p.a, o.startButton.addListener("buttonup", (function() {
                        return o._parent.actions.setSettingsShown(d.a.AUTO_SPIN)
                    }), o), o.stopButton = new p.a, o.stopButton.addListener("buttonup", o._onManualStop, o), o
                }
                return y(t, e), t.prototype.init = function() {
                    return h(this, void 0, void 0, (function() {
                        var e = this;
                        return g(this, (function(n) {
                            if (void 0 === this.layout) throw new Error("Layout data not yet set");
                            return this.build(this.layout, new Map([
                                ["autoSpinStart", this.startButton],
                                ["autoSpinStop", this.stopButton]
                            ]), this.container), this.stopButton.visible = !1, this._counter = this.container.children.find((function(e) {
                                return "autoSpinCounter" === e.name
                            })), this._counterField = this._counter.children.find((function(e) {
                                return "autoSpinCounter_value" === e.name
                            })), this._counter.visible = !1, l.a.getInstance().addReaction(t.REACTION_AUTO_SPIN_OPTION, (function() {
                                return e._parent.props.autoSpinOptions
                            }), (function(t) {
                                t.steps > 0 && e._requestSpins(t)
                            })), [2]
                        }))
                    }))
                }, t.prototype.requestStop = function(e) {
                    this._stopSpins(e)
                }, t.prototype._requestSpins = function(e) {
                    var n = this;
                    this._ixfProxy.game.request({
                        topic: t.GAME_AUTO_SPIN_OPTION,
                        data: {
                            steps: e.steps,
                            winLimit: e.winLimit,
                            lossLimit: e.lossLimit
                        }
                    }).then((function() {
                        n._parent.actions.resetAutoSpinOptions(), n._startSpins(e.steps)
                    }))
                }, t.prototype._onManualStop = function() {
                    c.i.execute("onUiAutoPlayStop"), this._stopSpins(r.MANUAL)
                }, t.prototype._startSpins = function(e) {
                    var n = this;
                    this.playAutoSpinAudio(), this._counterReaction = l.a.getInstance().addAutoRun("autoSpinCounter", (function() {
                        void 0 !== n._counterField && (n._counterField.text = String(n._parent.props.spins)), 0 === n._parent.props.spins && (n._counter.visible = !1, n.stopButton.enabled = !1, n.stopButton.visible = !1, n.startButton.visible = !0, f.a.gameActions.setAutoSpinStarted(!1))
                    })), void 0 !== this._counterField && (this._counterField.text = String(e)), this._counter.visible = !0, f.a.gameActions.setAutoSpinStarted(!0), i.f.delayedCall(t.FIRST_AUTOSPIN_DELAY / 1e3, (function() {
                        n._parent.actions.setSpins(e), n.stopButton.enabled = !0, n.stopButton.visible = !0, n.startButton.visible = !1, n._ixfProxy.game.publish(t.GAME_AUTO_SPIN_START)
                    }))
                }, t.prototype.playAutoSpinAudio = function() {
                    c.i.execute("onUiClick"), c.i.execute("onBaseGameSpinStart")
                }, t.prototype._stopSpins = function(e) {
                    this._parent.actions.setSpins(0), l.a.getInstance().disposeReaction(this._counterReaction), this._parent.actions.setStopAutoSpinFromIXF(!1), this._ixfProxy.game.publish(t.GAME_AUTO_SPIN_STOPPED, {
                        stopReason: e
                    })
                }, t.REACTION_AUTO_SPIN_OPTION = "AutoSpinOption", t.GAME_AUTO_SPIN_OPTION = "Game.AutoSpinOption", t.GAME_AUTO_SPIN_START = "Game.AutoSpinStart", t.GAME_AUTO_SPIN_STOPPED = "Game.AutoSpinStopped", t.GAME_STOP_AUTO_SPIN = "Game.StopAutoSpin", t.FIRST_AUTOSPIN_DELAY = 500, t
            }(u.a)
        },
        69: function(e, t, n) {
            "use strict";
            n.d(t, "a", (function() {
                return s
            }));
            var o = n(4),
                r = n(13),
                i = n(6),
                a = n(7),
                s = function() {
                    function e() {
                        this.getBool = function(e) {
                            var t = !1;
                            switch (e) {
                                case "true":
                                    t = !0;
                                    break;
                                case "false":
                                    t = !1
                            }
                            return t
                        }, this.getNumber = function(e) {
                            var t = Number(e);
                            return null == t || Number.isNaN(t) ? 0 : t
                        }, this.getDirection = function(e) {
                            var t = a.a.UP;
                            switch (e) {
                                case "up":
                                    t = a.a.UP;
                                    break;
                                case "down":
                                    t = a.a.DOWN;
                                    break;
                                case "left":
                                    t = a.a.LEFT;
                                    break;
                                case "right":
                                    t = a.a.RIGHT
                            }
                            return t
                        }, this.getEasing = function(e) {
                            var t = o.c.easeNone;
                            switch (e) {
                                case "linear":
                                    t = o.c.easeNone;
                                    break;
                                case "in_sine":
                                    t = r.h.easeIn;
                                    break;
                                case "out_sine":
                                    t = r.h.easeOut;
                                    break;
                                case "in_out_sine":
                                    t = r.h.easeInOut;
                                    break;
                                case "in_quad":
                                    t = o.d.easeIn;
                                    break;
                                case "out_quad":
                                    t = o.d.easeOut;
                                    break;
                                case "in_out_quad":
                                    t = o.d.easeInOut;
                                    break;
                                case "in_back":
                                    t = i.a.easeIn;
                                    break;
                                case "out_back":
                                    t = i.a.easeOut;
                                    break;
                                case "in_out_back":
                                    t = i.a.easeInOut
                            }
                            return t
                        }
                    }
                    return e.getInstance = function() {
                        return e.instance || (e.instance = new e), e.instance
                    }, e
                }()
        },
        7: function(e, t, n) {
            "use strict";
            var o, r;
            n.d(t, "a", (function() {
                    return o
                })),
                function(e) {
                    e[e.UP = 0] = "UP", e[e.DOWN = 1] = "DOWN", e[e.LEFT = 2] = "LEFT", e[e.RIGHT = 3] = "RIGHT"
                }(o || (o = {})),
                function(e) {
                    e[e.LINEAR = 0] = "LINEAR", e[e.IN_SINE = 1] = "IN_SINE", e[e.OUT_SINE = 2] = "OUT_SINE", e[e.IN_OUT_SINE = 3] = "IN_OUT_SINE", e[e.IN_QUAD = 4] = "IN_QUAD", e[e.OUT_QUAD = 5] = "OUT_QUAD", e[e.IN_OUT_QUAD = 6] = "IN_OUT_QUAD"
                }(r || (r = {}))
        },
        70: function(e, t, n) {
            "use strict";
            n.d(t, "a", (function() {
                return K
            }));
            var o, r = n(66),
                i = n(10),
                a = n(38),
                s = n(7),
                p = n(16),
                l = n(21),
                c = n(28),
                u = n(0),
                f = n(5),
                d = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                y = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                h = function() {
                    function e() {
                        this.state = f.a.IDLE
                    }
                    return d([u.f, y("design:type", Number)], e.prototype, "state", void 0), e
                }(),
                g = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                m = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                b = function() {
                    function e(e, t) {
                        this._data = e, this._parentProps = t
                    }
                    return Object.defineProperty(e.prototype, "data", {
                        get: function() {
                            return this._data
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "state", {
                        get: function() {
                            return this._data.state
                        },
                        enumerable: !0,
                        configurable: !0
                    }), g([u.d, m("design:type", h), m("design:paramtypes", [])], e.prototype, "data", null), g([u.d, m("design:type", Number), m("design:paramtypes", [])], e.prototype, "state", null), e
                }(),
                _ = n(2),
                S = n(8),
                v = n(24),
                C = n(3),
                O = n(20),
                P = n(1),
                w = n(124),
                R = n(6),
                N = n(17),
                I = (o = function(e, t) {
                    return (o = Object.setPrototypeOf || {
                            __proto__: []
                        }
                        instanceof Array && function(e, t) {
                            e.__proto__ = t
                        } || function(e, t) {
                            for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                        })(e, t)
                }, function(e, t) {
                    function n() {
                        this.constructor = e
                    }
                    o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
                }),
                T = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                A = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                j = function(e) {
                    function t() {
                        return null !== e && e.apply(this, arguments) || this
                    }
                    return I(t, e), t.prototype.setMovementState = function(e) {
                        this._data.movementState = e
                    }, t.prototype.setSpeed = function(e) {
                        this._data.speed = e
                    }, t.prototype.setEaseIn = function(e) {
                        this._data.easeIn = e
                    }, t.prototype.setEaseOut = function(e) {
                        this._data.easeOut = e
                    }, t.prototype.setDirection = function(e) {
                        this._data.direction = e
                    }, T([u.b.bound, A("design:type", Function), A("design:paramtypes", [Number]), A("design:returntype", void 0)], t.prototype, "setMovementState", null), T([u.b.bound, A("design:type", Function), A("design:paramtypes", [Number]), A("design:returntype", void 0)], t.prototype, "setSpeed", null), T([u.b.bound, A("design:type", Function), A("design:paramtypes", [Array]), A("design:returntype", void 0)], t.prototype, "setEaseIn", null), T([u.b.bound, A("design:type", Function), A("design:paramtypes", [Array]), A("design:returntype", void 0)], t.prototype, "setEaseOut", null), T([u.b.bound, A("design:type", Function), A("design:paramtypes", [Number]), A("design:returntype", void 0)], t.prototype, "setDirection", null), t
                }(N.a),
                E = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                D = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                x = function(e, t) {
                    var n = "function" == typeof Symbol && e[Symbol.iterator];
                    if (!n) return e;
                    var o, r, i = n.call(e),
                        a = [];
                    try {
                        for (;
                            (void 0 === t || t-- > 0) && !(o = i.next()).done;) a.push(o.value)
                    } catch (e) {
                        r = {
                            error: e
                        }
                    } finally {
                        try {
                            o && !o.done && (n = i.return) && n.call(i)
                        } finally {
                            if (r) throw r.error
                        }
                    }
                    return a
                },
                B = function() {
                    function e(t, n, o, r) {
                        var a = this;
                        this._originY = 0, this._originHeight = null, this._currentIncrement = 0, this._trickPerIncrement = .01, this.offsets = new Map, this.easeInIncrementComplete = function() {
                            a._currentIncrement++, a._currentIncrement >= a.props.easeIn.length ? a.setMovementState(f.a.STARTED) : (null !== a._currentTween && a._currentTween.kill(), null !== a._tweenObject && a.setEaseInIncrementTween(a._tweenObject, a.props.easeIn[a._currentIncrement]))
                        }, this.easeOutIncrementComplete = function() {
                            if (a._currentIncrement++, a._currentIncrement >= a.props.easeOut.length) a.setMovementState(f.a.STOPPED);
                            else if (null !== a._currentTween && a._currentTween.kill(), null !== a._tweenObject) {
                                var e = p.a.getInstance().getYPadding(a._tweenObject, a.offsets);
                                a.setEaseOutIncrementTween(a._tweenObject, a.props.easeOut[a._currentIncrement] + e)
                            }
                        }, this.onEaseTick = function() {
                            if (null !== a._displayObjects && a._displayObjects.length > 0) switch (a.props.direction) {
                                case s.a.DOWN:
                                    p.a.getInstance().anchorDisplayObjectsTopBounds(a._displayObjects, a.offsets);
                                    break;
                                case s.a.UP:
                                    p.a.getInstance().anchorDisplayObjectsBottomBounds(a._displayObjects, a.offsets);
                                    break;
                                case s.a.LEFT:
                                case s.a.RIGHT:
                            }
                        }, this.onMoveTick = function() {
                            if (null !== a._displayObjects && a._displayObjects.length > 0) switch (a.props.direction) {
                                case s.a.DOWN:
                                    var e = a.props.speed * P.j.get(0).ticker.deltaTime;
                                    e <= a._displayObjects[0].height ? a._displayObjects.forEach((function(t, n) {
                                        t.y += e
                                    })) : a._displayObjects.forEach((function(e, t) {
                                        e.y += a.props.speed
                                    }));
                                    break;
                                case s.a.UP:
                                    var t = a.props.speed * P.j.get(0).ticker.deltaTime;
                                    t <= a._displayObjects[a._displayObjects.length - 1].height ? a._displayObjects.forEach((function(e) {
                                        e.y -= t
                                    })) : a._displayObjects.forEach((function(e) {
                                        e.y -= a.props.speed
                                    }));
                                    break;
                                case s.a.LEFT:
                                    a._displayObjects[0].x += a.props.speed * P.j.get(0).ticker.deltaTime;
                                    break;
                                case s.a.RIGHT:
                                    a._displayObjects[a._displayObjects.length - 1].x -= a.props.speed * P.j.get(0).ticker.deltaTime
                            }
                        }, this.onEndTick = function() {
                            if (null !== a._displayObjects && a._displayObjects.length > 0) switch (a.props.direction) {
                                case s.a.DOWN:
                                    if (a._displayObjects[a._displayObjects.length - 1].name.indexOf(J.SPIN_NAME) <= -1 && a._displayObjects[a._displayObjects.length - 1].y + a.props.speed * P.j.get(0).ticker.deltaTime >= a._originY + a.props.easeOut[0]) a._displayObjects[a._displayObjects.length - 1].y = a._originY + a.props.easeOut[0], p.a.getInstance().anchorDisplayObjectsTopBounds(a._displayObjects, a.offsets), a.handleEaseOut();
                                    else {
                                        var e = a.props.speed * P.j.get(0).ticker.deltaTime;
                                        e <= a._displayObjects[0].height ? a._displayObjects.forEach((function(t) {
                                            t.y += e
                                        })) : a._displayObjects.forEach((function(e) {
                                            e.y += a.props.speed
                                        }))
                                    }
                                    break;
                                case s.a.UP:
                                    if (a._displayObjects[0].name.indexOf(J.SPIN_NAME) <= -1 && a._displayObjects[0].y - a.props.speed * P.j.get(0).ticker.deltaTime <= a._originY + a.props.easeOut[0]) a._displayObjects[0].y = a._originY + a.props.easeOut[0], p.a.getInstance().anchorDisplayObjectsBottomBounds(a._displayObjects, a.offsets), a.handleEaseOut();
                                    else {
                                        var t = a.props.speed * P.j.get(0).ticker.deltaTime;
                                        t <= a._displayObjects[a._displayObjects.length - 1].height ? a._displayObjects.forEach((function(e) {
                                            e.y -= t
                                        })) : a._displayObjects.forEach((function(e) {
                                            e.y -= a.props.speed
                                        }))
                                    }
                                    break;
                                case s.a.LEFT:
                                case s.a.RIGHT:
                            }
                        }, this.onEaseStartComplete = function() {
                            null !== a._currentTween && a._currentTween.kill(), P.j.get(0).ticker.add(a.onMoveTick, a)
                        }, this.onEaseEndComplete = function() {
                            null !== a._currentTween && a._currentTween.kill(), a.stopMovement()
                        }, this._parent = new O.a(t, n), this._props = o, this._reelActions = r, this._actions = new j(o.data), this._displayObjects = null, this._tweenObject = null, this._currentTween = null, this.reactionName = i.a.getInstance().addReaction(e.BEHAVIOR_NAME + "_stateChange", (function() {
                            return a.props.movementState
                        }), (function(e) {
                            switch (e) {
                                case f.a.START:
                                    a.startMovement();
                                    break;
                                case f.a.STARTED:
                                    a.onEaseStartComplete(), a.setParentState(e);
                                    break;
                                case f.a.STOPPING:
                                    a.startStopMovement();
                                    break;
                                case f.a.STOPPED:
                                    a.onEaseEndComplete(), a.setParentState(e);
                                    break;
                                case f.a.CANCEL:
                                    a.stopMovement()
                            }
                        }))
                    }
                    return Object.defineProperty(e.prototype, "props", {
                        get: function() {
                            return this._props
                        },
                        enumerable: !0,
                        configurable: !0
                    }), e.prototype.setParentState = function(e) {
                        null !== this._parent.actions && null !== this._parent.actions.setState && this._parent.actions.setState(e)
                    }, e.prototype.startMovement = function() {
                        P.j.get(0).ticker.remove(this.onMoveTick, this), this._currentIncrement = 0, this._originY = 0, this._originHeight = null, this.setEaseOrigin(), this.setTweenObject(), null !== this._tweenObject && this.setEaseInIncrementTween(this._tweenObject, this.props.easeIn[this._currentIncrement])
                    }, e.prototype.startStopMovement = function() {
                        this._currentIncrement = 0, P.j.get(0).ticker.remove(this.onMoveTick, this), P.j.get(0).ticker.add(this.onEndTick, this)
                    }, e.prototype.setEaseOrigin = function() {
                        if (null !== this._displayObjects && this._displayObjects.length > 0) switch (this.props.direction) {
                            case s.a.DOWN:
                                this.handleDisplayObject();
                                break;
                            case s.a.UP:
                                this.handleDisplayObject(!0);
                                break;
                            case s.a.RIGHT:
                                this.handleDisplayObject();
                                break;
                            case s.a.LEFT:
                                this.handleDisplayObject(!0)
                        }
                    }, e.prototype.handleDisplayObject = function(e) {
                        if (void 0 === e && (e = !1), null !== this._displayObjects && this._displayObjects.length > 0)
                            if (e) {
                                var t = this._displayObjects[0];
                                this.handleOriginUpdate(t)
                            } else {
                                var n = this._displayObjects[this._displayObjects.length - 1];
                                this.handleOriginUpdate(n)
                            }
                    }, e.prototype.handleOriginUpdate = function(e) {
                        var t = p.a.getInstance().getCellBounds(e);
                        null === this._originHeight && void 0 !== t ? (this._originHeight = t.height, this._originY = e.y) : null !== this._originHeight && void 0 !== t && (this._originY *= t.height / this._originHeight, this._originHeight = t.height)
                    }, e.prototype.setTweenObject = function() {
                        var e, t;
                        if (null !== this._displayObjects && this._displayObjects.length > 0) switch (this.props.direction) {
                            case s.a.DOWN:
                                this._tweenObject = this._displayObjects[this._displayObjects.length - 1];
                                break;
                            case s.a.UP:
                                e = x(this._displayObjects, 1), this._tweenObject = e[0];
                                break;
                            case s.a.RIGHT:
                                this._tweenObject = this._displayObjects[this._displayObjects.length - 1];
                                break;
                            case s.a.LEFT:
                                t = x(this._displayObjects, 1), this._tweenObject = t[0]
                        }
                    }, e.prototype.setEaseInIncrementTween = function(e, t) {
                        this._currentTween = w.a.to(e, this._trickPerIncrement, {
                            y: this._originY + t,
                            ease: R.b.easeNone,
                            onComplete: this.easeInIncrementComplete,
                            onUpdate: this.onEaseTick
                        })
                    }, e.prototype.setEaseOutIncrementTween = function(e, t) {
                        this._currentTween = w.a.to(e, this._trickPerIncrement, {
                            y: this._originY + t,
                            ease: R.b.easeNone,
                            onComplete: this.easeOutIncrementComplete,
                            onUpdate: this.onEaseTick
                        })
                    }, e.prototype.handleEaseOut = function() {
                        if (P.j.get(0).ticker.remove(this.onEndTick, this), this.setTweenObject(), null !== this._tweenObject) {
                            var e = p.a.getInstance().getYPadding(this._tweenObject, this.offsets);
                            this.setEaseOutIncrementTween(this._tweenObject, this.props.easeOut[this._currentIncrement] + e)
                        }
                    }, e.prototype.stopMovement = function() {
                        P.j.get(0).ticker.remove(this.onMoveTick, this), P.j.get(0).ticker.remove(this.onEndTick, this)
                    }, e.prototype.setDisplayObjects = function(e) {
                        this._displayObjects = e
                    }, e.prototype.setMovementState = function(e) {
                        this._actions.setMovementState(e), this._reelActions.setReelMovementState(e)
                    }, e.prototype.setSpeed = function(e) {
                        this._actions.setSpeed(e)
                    }, e.prototype.setEaseIn = function(e) {
                        this._actions.setEaseIn(e)
                    }, e.prototype.setEaseOut = function(e) {
                        this._actions.setEaseOut(e)
                    }, e.prototype.setDirection = function(e) {
                        this._actions.setDirection(e)
                    }, e.BEHAVIOR_NAME = "cellMovementBehavior", E([u.b.bound, D("design:type", Function), D("design:paramtypes", [Number]), D("design:returntype", void 0)], e.prototype, "setMovementState", null), E([u.b.bound, D("design:type", Function), D("design:paramtypes", [Number]), D("design:returntype", void 0)], e.prototype, "setSpeed", null), E([u.b.bound, D("design:type", Function), D("design:paramtypes", [Array]), D("design:returntype", void 0)], e.prototype, "setEaseIn", null), E([u.b.bound, D("design:type", Function), D("design:paramtypes", [Array]), D("design:returntype", void 0)], e.prototype, "setEaseOut", null), E([u.b.bound, D("design:type", Function), D("design:paramtypes", [Number]), D("design:returntype", void 0)], e.prototype, "setDirection", null), e
                }(),
                M = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                k = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                F = function() {
                    function e() {
                        this.movementState = f.a.IDLE, this.speed = 0, this.easeIn = [], this.easeOut = [], this.direction = s.a.DOWN
                    }
                    return M([u.f, k("design:type", Number)], e.prototype, "movementState", void 0), M([u.f, k("design:type", Number)], e.prototype, "speed", void 0), M([u.f, k("design:type", Array)], e.prototype, "easeIn", void 0), M([u.f, k("design:type", Array)], e.prototype, "easeOut", void 0), M([u.f, k("design:type", Number)], e.prototype, "direction", void 0), e
                }(),
                L = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                U = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                G = function() {
                    function e(e, t) {
                        this._data = e, this._parentProps = t
                    }
                    return Object.defineProperty(e.prototype, "data", {
                        get: function() {
                            return this._data
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "movementState", {
                        get: function() {
                            return this._data.movementState
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "speed", {
                        get: function() {
                            return this._data.speed
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "easeIn", {
                        get: function() {
                            return this._data.easeIn
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "easeOut", {
                        get: function() {
                            return this._data.easeOut
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "direction", {
                        get: function() {
                            return this._data.direction
                        },
                        enumerable: !0,
                        configurable: !0
                    }), L([u.d, U("design:type", F), U("design:paramtypes", [])], e.prototype, "data", null), L([u.d, U("design:type", Number), U("design:paramtypes", [])], e.prototype, "movementState", null), L([u.d, U("design:type", Number), U("design:paramtypes", [])], e.prototype, "speed", null), L([u.d, U("design:type", Array), U("design:paramtypes", [])], e.prototype, "easeIn", null), L([u.d, U("design:type", Array), U("design:paramtypes", [])], e.prototype, "easeOut", null), L([u.d, U("design:type", Number), U("design:paramtypes", [])], e.prototype, "direction", null), e
                }(),
                V = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                W = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                z = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                H = function(e) {
                    function t() {
                        return null !== e && e.apply(this, arguments) || this
                    }
                    return V(t, e), t.prototype.setState = function(e) {
                        this._data.state = e
                    }, W([u.b.bound, z("design:type", Function), z("design:paramtypes", [Number]), z("design:returntype", void 0)], t.prototype, "setState", null), t
                }(N.a),
                X = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                Y = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                J = function() {
                    function e(e, t, n) {
                        this._displayObjects = [], this._containerToAdd = null, this._cellAddThreshold = 0, this._cellRemoveThreshold = 0, this._totalCells = 0, this.reactionName = "", this.templateContainer = new C.Container, this._parent = new O.a(e, t), this._props = n, this._actions = new H(n.data);
                        var o = new G(new F, this.props);
                        this.cellMovementBehavior = new B(this.props, this._actions, o, t), this.addedDisplayObjectName = null, this.removedDisplayObjectName = null
                    }
                    return Object.defineProperty(e.prototype, "props", {
                        get: function() {
                            return this._props
                        },
                        enumerable: !0,
                        configurable: !0
                    }), e.prototype.setBehavior = function(t) {
                        var n = this;
                        this._displayObjects = t.displayObjects, this._containerToAdd = t.symbol, this._cellAddThreshold = t.cellAddThreshold, this._cellRemoveThreshold = t.cellRemoveThreshold, this._totalCells = this._displayObjects.length, this.setCellMovementBehavior(t.cellMovementData), this.reactionName = i.a.getInstance().addReaction(e.BEHAVIOR_NAME + "_stateChange", (function() {
                            return n.props.state
                        }), (function(e) {
                            switch (e) {
                                case f.a.IDLE:
                                    break;
                                case f.a.START:
                                    n.startSpin();
                                    break;
                                case f.a.STARTED:
                                    n.spinStarted();
                                    break;
                                case f.a.STOPPING:
                                    n.startStopSpin();
                                    break;
                                case f.a.STOPPED:
                                    n.stopSpin(), n.cellMovementBehavior.setMovementState(f.a.STOPPED), null !== n._parent.actions && null !== n._parent.actions.setState && n._parent.actions.setState(f.a.STOPPED);
                                    break;
                                case f.a.CANCEL:
                                    n.stopSpin(), n.cellMovementBehavior.setMovementState(f.a.CANCEL)
                            }
                        }))
                    }, e.prototype.setCellMovementBehavior = function(e) {
                        this.cellMovementBehavior.setSpeed(e.speed), this.cellMovementBehavior.setDirection(e.direction), this.cellMovementBehavior.setDisplayObjects(e.displayObjects), this.cellMovementBehavior.setEaseIn(e.easeIn), this.cellMovementBehavior.setEaseOut(e.easeOut), this.cellMovementBehavior.offsets = e.offsets
                    }, e.prototype.startSpin = function() {
                        this.cellMovementBehavior.setMovementState(f.a.START)
                    }, e.prototype.spinStarted = function() {
                        P.j.get(0).ticker.remove(this.onStopSpinTick, this), P.j.get(0).ticker.add(this.onSpinTick, this)
                    }, e.prototype.startStopSpin = function() {
                        P.j.get(0).ticker.remove(this.onSpinTick, this), P.j.get(0).ticker.add(this.onStopSpinTick, this)
                    }, e.prototype.onSpinTick = function() {
                        this.handleAddCellThreshold(), this.cellTopRemoveThresholdReached() ? this.removeLastElement() : this.cellBottomRemoveThresholdReached() && this.removeFirstElement(), this.cellMovementBehavior.setDisplayObjects(this._displayObjects)
                    }, e.prototype.onStopSpinTick = function() {
                        (this.spinUpThresholdEase() || this.spinDownThresholdEase()) && this.cellMovementBehavior.setMovementState(f.a.STOPPING), this.handleAddCellThreshold(), this.handleRemoveCellThreshold(), this.cellMovementBehavior.setDisplayObjects(this._displayObjects)
                    }, e.prototype.handleAddCellThreshold = function() {
                        this.cellTopAddThresholdReached() && null !== this._containerToAdd ? (this.addNewCell(this._containerToAdd, !0), this.incrementTotalCells(), this.setAddedDisplayObjectName(this._displayObjects[0].name)) : this.cellBottomAddThresholdReached() && null !== this._containerToAdd && (this.addNewCell(this._containerToAdd, !1), this.incrementTotalCells(), this.setAddedDisplayObjectName(this._displayObjects[this._displayObjects.length - 1].name))
                    }, e.prototype.handleRemoveCellThreshold = function() {
                        var t = this._displayObjects[0],
                            n = this._displayObjects[this._displayObjects.length - 1];
                        this.cellTopRemoveThresholdReached() ? this.cellMovementBehavior.props.movementState !== f.a.STOPPING && n.name.indexOf(e.SPIN_NAME) <= -1 ? (this.cellMovementBehavior.setMovementState(f.a.STOPPED), this.setSpinState(f.a.STOPPED)) : n.name.indexOf(e.SPIN_NAME) > -1 && this.removeLastElement() : this.cellBottomRemoveThresholdReached() && (this.cellMovementBehavior.props.movementState !== f.a.STOPPING && t.name.indexOf(e.SPIN_NAME) <= -1 ? (this.cellMovementBehavior.setMovementState(f.a.STOPPED), this.setSpinState(f.a.STOPPED)) : t.name.indexOf(e.SPIN_NAME) > -1 && this.removeFirstElement())
                    }, e.prototype.addNewCell = function(e, t) {
                        void 0 === t && (t = !0);
                        var n = this._displayObjects[0],
                            o = p.a.getInstance().getCellBounds(n);
                        if (void 0 !== o) {
                            var r = e;
                            if (void 0 === r.name || null === r.name) {
                                var i = n.name.split("_");
                                i[i.length - 1] = String(this._totalCells);
                                var a = i.join("_");
                                r.name = a
                            }
                            t ? (r.y = n.y - o.height, r.x = this.templateContainer.x, p.a.getInstance().handleYPadding(r, this.cellMovementBehavior.offsets, !0), p.a.getInstance().handleXPadding(r, this.cellMovementBehavior.offsets), this._displayObjects.unshift(r)) : (r.y = n.y + o.height, r.x = this.templateContainer.x, p.a.getInstance().handleYPadding(r, this.cellMovementBehavior.offsets, !1), p.a.getInstance().handleXPadding(r, this.cellMovementBehavior.offsets), this._displayObjects.push(r)), n.parent.addChild(e)
                        }
                    }, e.prototype.incrementTotalCells = function() {
                        this._totalCells++
                    }, e.prototype.stopSpin = function() {
                        this.stopTickers()
                    }, e.prototype.stopTickers = function() {
                        P.j.get(0).ticker.remove(this.onSpinTick, this), P.j.get(0).ticker.remove(this.onStopSpinTick, this)
                    }, e.prototype.cellTopAddThresholdReached = function() {
                        var e = this._displayObjects[0];
                        return this.cellMovementBehavior.props.direction === s.a.DOWN && e.y >= this._cellAddThreshold
                    }, e.prototype.cellBottomAddThresholdReached = function() {
                        var e = this._displayObjects[this._displayObjects.length - 1];
                        return this.cellMovementBehavior.props.direction === s.a.UP && e.y <= this._cellAddThreshold
                    }, e.prototype.cellTopRemoveThresholdReached = function() {
                        var e = this._displayObjects[this._displayObjects.length - 1];
                        return this.cellMovementBehavior.props.direction === s.a.DOWN && e.y >= this._cellRemoveThreshold
                    }, e.prototype.cellBottomRemoveThresholdReached = function() {
                        var e = this._displayObjects[0];
                        return this.cellMovementBehavior.props.direction === s.a.UP && e.y <= this._cellRemoveThreshold
                    }, e.prototype.spinUpThresholdEase = function() {
                        var t = this._displayObjects[this._displayObjects.length - 1];
                        return this.cellMovementBehavior.props.direction === s.a.UP && t.name.indexOf(e.SPIN_NAME) <= -1 && t.y < -1 * this._cellAddThreshold
                    }, e.prototype.spinDownThresholdEase = function() {
                        var t = this._displayObjects[0];
                        return this.cellMovementBehavior.props.direction === s.a.DOWN && t.name.indexOf(e.SPIN_NAME) <= -1 && t.y > -1 * this._cellRemoveThreshold
                    }, e.prototype.removeLastElement = function() {
                        var e = this._displayObjects[this._displayObjects.length - 1];
                        e.children.length > 0 && (this.setRemovedDisplayObjectName(e.name), e.getChildByName("bounds").destroy(), e.removeChildren(), e.parent.removeChild(e), this._displayObjects.pop())
                    }, e.prototype.removeFirstElement = function() {
                        var e = this._displayObjects[0];
                        this.setRemovedDisplayObjectName(e.name), e.getChildByName("bounds").destroy(), e.removeChildren(), e.parent.removeChild(e), this._displayObjects.shift()
                    }, e.prototype.setContainerToAdd = function(e) {
                        this._containerToAdd = e
                    }, e.prototype.setAddedDisplayObjectName = function(e) {
                        this.addedDisplayObjectName = e
                    }, e.prototype.setRemovedDisplayObjectName = function(e) {
                        this.removedDisplayObjectName = e
                    }, e.prototype.setSpinState = function(e) {
                        this._actions.setState(e)
                    }, e.SPIN_NAME = "Spin_", e.BEHAVIOR_NAME = "spinBehavior", X([u.f, Y("design:type", Object)], e.prototype, "addedDisplayObjectName", void 0), X([u.f, Y("design:type", Object)], e.prototype, "removedDisplayObjectName", void 0), X([u.b.bound, Y("design:type", Function), Y("design:paramtypes", [String]), Y("design:returntype", void 0)], e.prototype, "setAddedDisplayObjectName", null), X([u.b.bound, Y("design:type", Function), Y("design:paramtypes", [String]), Y("design:returntype", void 0)], e.prototype, "setRemovedDisplayObjectName", null), X([u.b.bound, Y("design:type", Function), Y("design:paramtypes", [Number]), Y("design:returntype", void 0)], e.prototype, "setSpinState", null), e
                }(),
                q = n(32),
                K = function() {
                    function e(e) {
                        var t = this;
                        this._spinBehaviors = new Map, this._reelsStopped = 0, this._reactions = [], this.graphicsUtils = r.a.getInstance(), this.mobxUtils = i.a.getInstance(), this.reelSetUtils = p.a.getInstance(), this.isComplete = !1, this.offsets = new Map, this.removeReelCell = function(e) {
                            var n = t.reelSetComponent.getReelComponentByName(e);
                            if (void 0 === n) throw new Error("Reel Component is undefined.");
                            var o = n.reelCellComponents.find((function(t) {
                                return t.container.name === e
                            }));
                            if (void 0 === o) throw new Error("Reel Cell is undefined.");
                            void 0 !== o.props.poolObjectName && t.reelSetUtils.returnPoolObject(o, t.symbols);
                            var r = n.reelCellComponents.indexOf(o);
                            r > -1 && n.reelCellComponents.splice(r, 1)
                        }, this.handleNewReelCell = function(e) {
                            var n = t.reelSetComponent.getReelComponentByName(e);
                            if (void 0 === n) throw new Error("Reel Component is undefined.");
                            var o = t._spinBehaviors.get(n.props.name);
                            if (void 0 !== o) {
                                var r = void 0;
                                n.props.state === f.a.START || n.props.state === f.a.PROCESSING ? (r = t.addNewReelCell(n), t.setReelCellSymbol(r, t.symbols), o.setContainerToAdd(r.container)) : n.props.state === f.a.STOPPING && n.newReelCellComponents.length > 0 && (r = t.addReelCellFromOutcome(n), t.setReelCellSymbol(r, t.symbols), r.container.name = r.props.name, o.setContainerToAdd(r.container))
                            }
                        }, this.reelSetComponent = e, this.symbols = e.symbolSetComponent.symbols
                    }
                    return e.prototype.setSystem = function() {
                        var e = this;
                        this.setOffsets(), this.reelSetComponent.reelComponents.forEach((function(t) {
                            switch (t.props.reelType) {
                                case l.c.SPIN:
                                    var n = e.setSpinBehavior(t);
                                    e.setSpinReactions(t, n);
                                    break;
                                case l.c.TUMBLE:
                            }
                        }))
                    }, e.prototype.setOffsets = function() {
                        var e = this;
                        this.reelSetComponent.symbolSetComponent.symbols.forEach((function(t) {
                            null !== t.symbolsConfigDef && e.offsets.set(t.name, [t.symbolsConfigDef.offsetX, t.symbolsConfigDef.offsetY])
                        }))
                    }, e.prototype.setSpinBehavior = function(e) {
                        var t = new b(new h, e.props),
                            n = new J(e.props, e.getReelActions(), t);
                        this._spinBehaviors.set(e.props.name, n), this.setSpinCellName(e);
                        var o = this.addNewReelCell(e);
                        this.setReelCellSymbol(o, this.symbols);
                        var r = this.reelSetUtils.getReelSetChildren(this.reelSetComponent),
                            i = e.props.name,
                            a = this.reelSetUtils.getReelContainers(r, i),
                            s = this.getSpinBehaviorData(e, a, o.container, this.offsets);
                        return n.setBehavior(s), n.templateContainer = e.container, n
                    }, e.prototype.setSpinReactions = function(e, t) {
                        this.setReelStateReaction(e), this.setStateReaction(t, e), this.setSpinStateReaction(t, e), this.setRemoveCellReaction(t), this.setAddCellReaction(t)
                    }, e.prototype.getSpinBehaviorData = function(e, t, n, o) {
                        var r = {
                                speed: e.props.speed,
                                easeIn: e.props.easeIn,
                                easeOut: e.props.easeOut,
                                direction: e.props.direction,
                                displayObjects: t,
                                offsets: o
                            },
                            i = this.getSpinBehaviorCellThresholds(e);
                        return {
                            cellMovementData: r,
                            displayObjects: t,
                            symbol: n,
                            cellAddThreshold: i.cellAddThreshold,
                            cellRemoveThreshold: i.cellRemoveThreshold
                        }
                    }, e.prototype.setReelStateReaction = function(t) {
                        var n = this,
                            o = this.mobxUtils.addReaction(e.SYSTEM_NAME + "_isSpinning", (function() {
                                return t.props.reelState
                            }), (function(e) {
                                switch (e) {
                                    case l.b.IDLE:
                                    case l.b.SPIN_BEGIN:
                                        break;
                                    case l.b.SPIN_END:
                                        n.handleOnReelStopped()
                                }
                            }));
                        this._reactions.push(o)
                    }, e.prototype.setStateReaction = function(t, n) {
                        var o = this,
                            r = this.mobxUtils.addReaction(e.SYSTEM_NAME + "_state", (function() {
                                return n.props.state
                            }), (function(e) {
                                switch (t.setSpinState(e), e) {
                                    case f.a.IDLE:
                                    case f.a.START:
                                        break;
                                    case f.a.PROCESSING:
                                        o.handleNewOutcome(n);
                                        break;
                                    case f.a.STOPPING:
                                        break;
                                    case f.a.STOPPED:
                                        o.spinCellCleanup(n), o.snapCellsToTartgetLocation(n), _.a.gameActions.setReelState(n.props.name, f.a.STOPPED);
                                        break;
                                    case f.a.CANCEL:
                                        n.setReelState(l.b.SPIN_END), _.a.gameActions.setReelState(n.props.name, f.a.STOPPED)
                                }
                            }));
                        this._reactions.push(r)
                    }, e.prototype.setSpinStateReaction = function(t, n) {
                        var o = this.mobxUtils.addReaction(e.SYSTEM_NAME + "_state", (function() {
                            return t.props.state
                        }), (function(e) {
                            switch (e) {
                                case f.a.STOPPED:
                                    n.setState(f.a.STOPPED), n.setReelState(l.b.SPIN_END)
                            }
                        }));
                        this._reactions.push(o)
                    }, e.prototype.setRemoveCellReaction = function(t) {
                        var n = this,
                            o = this.mobxUtils.addReaction(e.SYSTEM_NAME + "_removedDisplayObject", (function() {
                                return t.removedDisplayObjectName
                            }), (function(e) {
                                n.removeReelCell(e)
                            }));
                        this._reactions.push(o)
                    }, e.prototype.setAddCellReaction = function(t) {
                        var n = this,
                            o = this.mobxUtils.addReaction(e.SYSTEM_NAME + "_spinBehaviorRow", (function() {
                                return t.addedDisplayObjectName
                            }), (function(e) {
                                n.handleNewReelCell(e)
                            }));
                        this._reactions.push(o)
                    }, e.prototype.setReelCellSymbol = function(e, t) {
                        var n;
                        if (void 0 !== e.cellDef ? n = t.get(e.cellDef.text) : void 0 !== e.stopDef && null !== e.stopDef && (n = t.get(e.stopDef.symbolId)), void 0 !== n && "" !== n.swapName && (n = t.get(n.swapName)), void 0 !== n) {
                            var o = void 0;
                            if (void 0 !== (o = null !== n.symbolsConfigDef && n.symbolsConfigDef.suffix.length > 0 ? n.getPooledObject(n.name + n.symbolsConfigDef.suffix + v.a.STATIC_SUFFIX) : n.getPooledObject(n.name + v.a.STATIC_SUFFIX))) {
                                var r = o.object,
                                    i = this.reelSetComponent.templateContainers.find((function(e) {
                                        return void 0 !== n && null !== n.symbolsConfigDef && e.name === n.symbolsConfigDef.symbolBounds
                                    }));
                                void 0 !== i && this.reelSetUtils.createCellBounds(e, i);
                                var a = e.container;
                                null !== n.symbolsConfigDef && (n.symbolsConfigDef.isGiant || n.symbolsConfigDef.isBleeding ? n.symbolsConfigDef.isBleeding && (r.x = (a.width - r.width) / 2, r.y = (a.height - r.height) / 2) : this.graphicsUtils.centerToContainer(a, r), a.zIndex = n.symbolsConfigDef.layer), a.addChild(r), e.setPoolObjectName(o.name + "_" + o.id)
                            }
                        } else {
                            if (void 0 === e.container) {
                                var s = e;
                                s.container = this.graphicsUtils.createEmptyContainer(this.reelSetComponent.templateContainers[0].width, this.reelSetComponent.templateContainers[0].height), s.container.children[0].name = q.a.BOUNDS_NAME
                            }
                            this.reelSetUtils.setReelCellText(e)
                        }
                    }, e.prototype.addNewReelCell = function(e) {
                        var t, n = e.createReelCell();
                        switch (e.props.direction) {
                            case s.a.DOWN:
                                (t = e.reelCellComponents[0]).setName(t.container.name), e.reelCellComponents.unshift(n), e.setCellStripIndex(n, t, !1);
                                break;
                            case s.a.UP:
                                (t = e.reelCellComponents[e.reelCellComponents.length - 1]).setName(t.container.name), e.reelCellComponents.push(n), e.setCellStripIndex(n, t, !0);
                                break;
                            case s.a.LEFT:
                            case s.a.RIGHT:
                        }
                        return n
                    }, e.prototype.handleNewOutcome = function(e) {
                        if (void 0 === e.reelDef) throw new Error("Reel Def is undefined");
                        if (void 0 === e.stripDef) throw new Error("Strip Def is undefined");
                        for (var t = 0; t < e.props.rows; t++) {
                            var n = e.reelDef.cells[t];
                            (i = e.createReelCell()).setCellIndex(t), i.setName(e.props.name + "_" + c.a.CELL_PREFIX + t);
                            var o = n.stripIndex;
                            i.setStopIndex(o), e.newReelCellComponents.push(i)
                        }
                        for (t = 0; t < e.props.topPadding; t++) {
                            var r = e.newReelCellComponents[0],
                                i = e.createReelCell();
                            e.setCellStripIndex(i, r, !1), i.setName(a.a.TOP_PADDING_NAME + e.props.name + "_" + c.a.CELL_PREFIX + t), e.newReelCellComponents.unshift(i)
                        }
                        for (t = 0; t < e.props.bottomPadding; t++) {
                            r = e.newReelCellComponents[e.newReelCellComponents.length - 1], i = e.createReelCell();
                            e.setCellStripIndex(i, r, !0), i.setName(a.a.BOTTOM_PADDING_NAME + e.props.name + "_" + c.a.CELL_PREFIX + t), e.newReelCellComponents.push(i)
                        }
                    }, e.prototype.addReelCellFromOutcome = function(e) {
                        var t = e.newReelCellComponents[e.newReelCellComponents.length - 1];
                        switch (e.props.direction) {
                            case s.a.DOWN:
                                t = e.newReelCellComponents[e.newReelCellComponents.length - 1], e.reelCellComponents.unshift(t), e.newReelCellComponents.pop();
                                break;
                            case s.a.UP:
                                t = e.newReelCellComponents[0], e.reelCellComponents.push(t), e.newReelCellComponents.shift();
                                break;
                            case s.a.LEFT:
                            case s.a.RIGHT:
                        }
                        return t
                    }, e.prototype.handleOnReelStopped = function() {
                        this._reelsStopped++, this._reelsStopped >= this.reelSetComponent.props.columns && (_.a.gameActions.setReelSetState(S.b.SPIN_STOP_END), this.resetReelSpinSystem())
                    }, e.prototype.resetReelSpinSystem = function() {
                        this._reelsStopped = 0, this.disposeReelSpinSystemReactions(), this.disposeSpinBehaviorReactions()
                    }, e.prototype.disposeReelSpinSystemReactions = function() {
                        var e = this;
                        this._reactions.forEach((function(t) {
                            e.mobxUtils.reactions.has(t) && e.mobxUtils.disposeReaction(t)
                        }))
                    }, e.prototype.disposeSpinBehaviorReactions = function() {
                        var e = this;
                        this._spinBehaviors.forEach((function(t) {
                            e.mobxUtils.disposeReaction(t.cellMovementBehavior.reactionName), e.mobxUtils.disposeReaction(t.reactionName)
                        }))
                    }, e.prototype.setSpinCellName = function(e) {
                        e.reelCellComponents.forEach((function(t, n) {
                            t.setName(""), t.container.name = J.SPIN_NAME + e.cellName + n
                        }))
                    }, e.prototype.spinCellCleanup = function(e) {
                        for (var t = 0; t < e.reelCellComponents.length; t++) {
                            var n = e.reelCellComponents[t];
                            null !== n.container.name && n.container.name.indexOf(J.SPIN_NAME) > -1 && (null !== n.container.parent && n.container.parent.removeChild(n.container), e.reelCellComponents.splice(t, 1), t--)
                        }
                    }, e.prototype.snapCellsToTartgetLocation = function(e) {
                        var t, n = this.reelSetUtils.getReelSetChildren(this.reelSetComponent),
                            o = this.reelSetUtils.getReelContainers(n, e.props.name),
                            r = 0;
                        if (o.forEach((function(n, o) {
                                n.name === e.props.name + "_" + c.a.CELL_PREFIX + "0" && (t = n, r = o)
                            })), void 0 !== t) {
                            var i = this.reelSetUtils.getYPadding(t, this.offsets);
                            t.y = e.container.y + i
                        }
                        this.reelSetUtils.anchorDisplayObjectsBottomBoundsByIndex(o, r, this.offsets)
                    }, e.prototype.getSpinBehaviorCellThresholds = function(e) {
                        var t = 0,
                            n = 0,
                            o = this.reelSetComponent.templateContainers[0];
                        switch (e.props.direction) {
                            case s.a.DOWN:
                                t = e.container.y - o.height * e.props.topPadding, n = e.container.y + e.container.height + o.height * e.props.bottomPadding;
                                break;
                            case s.a.UP:
                                t = e.container.y + e.container.height + o.height * e.props.bottomPadding, n = e.container.y - o.height * e.props.topPadding;
                                break;
                            case s.a.LEFT:
                            case s.a.RIGHT:
                        }
                        return {
                            cellAddThreshold: t,
                            cellRemoveThreshold: n
                        }
                    }, e.SYSTEM_NAME = "reelSpinSystem", e
                }()
        },
        71: function(e, t, n) {
            "use strict";
            n.d(t, "a", (function() {
                return d
            }));
            var o = n(0),
                r = n(1),
                i = n(11),
                a = n(63),
                s = function() {
                    this.paytableStatistics = {}, this.pickerInfo = new Map, this.prizesInfo = new Map, this.stripsInfo = new Map, this.longStripsInfo = new Map, this.patternSliderInfo = {}, this.patternInfo = {}, this.awardCapInfo = {}, this.denominationList = new Array, this.gameBetInfo = {}, this.gameData = {}, this.autoSpinInfo = {}, this.keyValuePairInfo = new Map, this.jackpot = {}
                },
                p = function(e) {
                    var t = "function" == typeof Symbol && Symbol.iterator,
                        n = t && e[t],
                        o = 0;
                    if (n) return n.call(e);
                    if (e && "number" == typeof e.length) return {
                        next: function() {
                            return e && o >= e.length && (e = void 0), {
                                value: e && e[o++],
                                done: !e
                            }
                        }
                    };
                    throw new TypeError(t ? "Object is not iterable." : "Symbol.iterator is not defined.")
                },
                l = function(e, t) {
                    var n = "function" == typeof Symbol && e[Symbol.iterator];
                    if (!n) return e;
                    var o, r, i = n.call(e),
                        a = [];
                    try {
                        for (;
                            (void 0 === t || t-- > 0) && !(o = i.next()).done;) a.push(o.value)
                    } catch (e) {
                        r = {
                            error: e
                        }
                    } finally {
                        try {
                            o && !o.done && (n = i.return) && n.call(i)
                        } finally {
                            if (r) throw r.error
                        }
                    }
                    return a
                },
                c = function() {
                    function e() {
                        this.reponse = new a.a, this.paytable = new s, this.currentStage = {}, this.transactionId = {}
                    }
                    return e.prototype.translate = function(e, t) {
                        var n = e,
                            o = t;
                        if (null != n) {
                            if (null != n.PaytableResponse) {
                                var r = n.PaytableResponse;
                                this.translatePaytableData(r)
                            }
                            var i = null;
                            null != n.GameLogicResponse ? i = n.GameLogicResponse : null != n.response && (i = n.response), null != i && this.translateResponse(i), o = this.setupEvtData(n, o)
                        }
                        return o
                    }, e.prototype.translatePaytableData = function(e) {
                        var t = new s;
                        return null != e.PaytableStatistics && (t.paytableStatistics = this.getPaytableStatistics(e.PaytableStatistics)), null != e.PickerInfo && (t.pickerInfo = this.getPickerInfo(e.PickerInfo)), null != e.PrizeInfo && (t.prizesInfo = this.getPrizesInfo(e.PrizeInfo)), null != e.StripInfo && (t.stripsInfo = this.getStripsInfo(e.StripInfo)), null != e.LongStripInfo && (t.longStripsInfo = this.getStripsInfo(e.LongStripInfo)), null != e.PatternInfo && (t.patternInfo = this.getPatternInfo(e.PatternInfo)), null != e.PatternSliderInfo && (t.patternSliderInfo = this.getPatternSliderInfo(e.PatternSliderInfo)), null != e.AwardCapInfo && (t.awardCapInfo = this.getAwardCapInfo(e.AwardCapInfo)), null != e.DenominationList && (t.denominationList = this.getDenominationList(e.DenominationList)), null != e.GameBetInfo && (t.gameBetInfo = this.getGameBetInfo(e.GameBetInfo)), null != e.GameData && (t.gameData = this.getGameDataInfo(e.GameData)), null != e.AutoSpinInfo && (t.autoSpinInfo = this.getAutoSpinInfo(e.AutoSpinInfo)), null != e.KeyValuePairInfo && (t.keyValuePairInfo = this.getKeyValuePairInfo(e.KeyValuePairInfo)), null != e.Jackpot && (t.jackpot = this.getJackpotBetBandMap(e.Jackpot)), t
                    }, e.prototype.translateResponse = function(e) {
                        var t = new a.a;
                        if (null != e.OutcomeDetail && (this.currentStage = e.OutcomeDetail.Stage), null != e.OutcomeDetail && (t.outcomeDetail = this.getOutcomeDetails(e.OutcomeDetail)), null != e.JackpotOutcome && null !== e.OutcomeDetail && e.OutcomeDetail.TransactionId !== this.transactionId && (t.jackpotOutcomes = this.getJackpotOutcomes(e.JackpotOutcome)), null != e.PickerInput && (t.pickerInput = this.getPickerInput(e.PickerInput)), null != e.PickerOutcome && (t.pickerOutcome = this.getPickerOutcome(e.PickerOutcome)), null != e.PickerSummaryOutcome && (t.pickerSummaryOutcomes = this.getPickerSummaryOutcomes(e.PickerSummaryOutcome)), null != e.KeyValuePairOutcome && (t.keyValuePairInfo = this.getKeyValuePairInfo(e.KeyValuePairOutcome)), null != e.ObfuscatedOutcome && (t.obfuscatedOutcome = this.getObfuscatedOutcome(e.ObfuscatedOutcome)), null != e.ObfuscatedOutcome && null != e.OutcomeDetail) e.OutcomeDetail.TransactionId;
                        return null != e.Balances && (t.balances = this.getBalances(e.Balances)), null != e.PatternSliderInput && (t.patternSliderInput = this.getPatternSliderInput(e.PatternSliderInput)), null != e.CumulativePayout && (t.cumulativePayout = parseFloat(e.CumulativePayout)), null != e.PopulationOutcome && (t.populationOutcomes = this.getPopulationOutcomes(e.PopulationOutcome)), null != e.PrizeOutcome && (t.prizeOutcomes = this.getPrizeOutcomes(e.PrizeOutcome)), null != e.HighlightOutcome && (t.highlightOutcomes = this.getHighlightOutcomes(e.HighlightOutcome)), null != e.FreeSpinOutcome && (t.freeSpinOutcomes = this.getFreeSpinOutcomes(e.FreeSpinOutcome)), null != e.MultiplierOutcome && (t.multiplierOutcome = this.getMultiplierOutcome(e.MultiplierOutcome), t.multiplierOutcomes = this.getMultiplierOutcomes(e.MultiplierOutcome)), null != e.AwardCapOutcome && (t.awardCapOutcome = this.getAwardCapOutcome(e.AwardCapOutcome)), null != e.TriggerOutcome && (t.triggerOutcome = this.getTriggerOutcome(e.TriggerOutcome)), null != e.PromotionalFreeSpin && (t.promotionalFreeSpin = this.getPromotionalFreeSpin(e.PromotionalFreeSpin)), null != e.OutcomeDetail && (this.transactionId = e.OutcomeDetail.TransactionId), t
                    }, e.prototype.setupEvtData = function(e, t) {
                        var n = e,
                            o = t;
                        return o.state = n.state, o.nextStage = n.nextStage, o.response = this.reponse, o.paytable = this.paytable, o
                    }, e.printJsonData = function(e) {
                        var t = JSON.stringify(e);
                        if (t.length < 1e5);
                        else
                            for (var n = 0; n <= t.length;) n += 1e5
                    }, e.prototype.getPaytableStatistics = function(e) {
                        var t = !1,
                            n = 0,
                            o = 0;
                        return null != e["@singleRTP"] && (t = "true" === e["@singleRTP"].toLowerCase()), null != e["@minSingleRTP"] && (n = parseFloat(e["@minSingleRTP"])), null != e["@maxSingleRTP"] && (o = parseFloat(e["@maxSingleRTP"])), {
                            name: e["@name"],
                            description: e["@description"],
                            minRTP: parseFloat(e["@minRTP"]),
                            maxRTP: parseFloat(e["@maxRTP"]),
                            singleRTP: t,
                            minSingleRTP: n,
                            maxSingleRTP: o
                        }
                    }, e.prototype.getPickerInfo = function(e) {
                        var t, n, o, r, i, a, s, l, c = new Map;
                        if (e instanceof Array) try {
                            for (var u = p(e), f = u.next(); !f.done; f = u.next()) {
                                var d = f.value;
                                s = [];
                                try {
                                    for (var y = (o = void 0, p(d.Layer.Pick)), h = y.next(); !h.done; h = y.next()) {
                                        l = {
                                            cellName: (b = h.value)["@cellName"],
                                            name: b["@name"]
                                        }, s.push(l)
                                    }
                                } catch (e) {
                                    o = {
                                        error: e
                                    }
                                } finally {
                                    try {
                                        h && !h.done && (r = y.return) && r.call(y)
                                    } finally {
                                        if (o) throw o.error
                                    }
                                }
                                c.set(d["@name"], {
                                    picks: s
                                })
                            }
                        } catch (e) {
                            t = {
                                error: e
                            }
                        } finally {
                            try {
                                f && !f.done && (n = u.return) && n.call(u)
                            } finally {
                                if (t) throw t.error
                            }
                        } else {
                            s = [];
                            try {
                                for (var g = p(e.Layer.Pick), m = g.next(); !m.done; m = g.next()) {
                                    var b;
                                    l = {
                                        cellName: (b = m.value)["@cellName"],
                                        name: b["@name"]
                                    }, s.push(l)
                                }
                            } catch (e) {
                                i = {
                                    error: e
                                }
                            } finally {
                                try {
                                    m && !m.done && (a = g.return) && a.call(g)
                                } finally {
                                    if (i) throw i.error
                                }
                            }
                            c.set(e["@name"], {
                                picks: s
                            })
                        }
                        return c
                    }, e.prototype.getPrizesInfo = function(e) {
                        var t = new Map;
                        if (Array.isArray(e)) {
                            for (var n in e)
                                if (Object.prototype.hasOwnProperty.call(e, n)) {
                                    var o = {
                                        name: (a = e[n])["@name"],
                                        strategy: a["@strategy"],
                                        prizes: []
                                    };
                                    if (Array.isArray(a.Prize)) {
                                        for (var r in a.Prize)
                                            if (Object.prototype.hasOwnProperty.call(a.Prize, r)) {
                                                var i = a.Prize[r];
                                                o.prizes.push(this.getPrize(i))
                                            }
                                    } else o.prizes.push(this.getPrize(a.Prize));
                                    t.set(o.name, o)
                                }
                        } else {
                            var a;
                            o = {
                                name: (a = e)["@name"],
                                strategy: a["@strategy"],
                                prizes: []
                            };
                            if (Array.isArray(a.Prize)) {
                                for (var n in a.Prize)
                                    if (Object.prototype.hasOwnProperty.call(a.Prize, n)) {
                                        i = a.Prize[n];
                                        o.prizes.push(this.getPrize(i))
                                    }
                            } else o.prizes.push(this.getPrize(a.Prize));
                            t.set(o.name, o)
                        }
                        return t
                    }, e.prototype.getPrize = function(e) {
                        var t, n, o, r, i = {
                            name: e["@name"],
                            prizesPay: [],
                            symbols: []
                        };
                        if (e.PrizePay instanceof Array) try {
                            for (var a = p(e.PrizePay), s = a.next(); !s.done; s = a.next()) {
                                var l = s.value;
                                i.prizesPay.push({
                                    count: parseInt(l["@count"], 10),
                                    pph: 0,
                                    value: parseInt(l["@value"], 10)
                                })
                            }
                        } catch (e) {
                            t = {
                                error: e
                            }
                        } finally {
                            try {
                                s && !s.done && (n = a.return) && n.call(a)
                            } finally {
                                if (t) throw t.error
                            }
                        } else i.prizesPay.push({
                            count: parseInt(e.PrizePay["@count"], 10),
                            pph: 0,
                            value: parseInt(e.PrizePay["@value"], 10)
                        });
                        if (null != e.Symbol)
                            if (e.Symbol instanceof Array) try {
                                for (var c = p(e.Symbol), u = c.next(); !u.done; u = c.next()) {
                                    var f = u.value;
                                    i.symbols.push({
                                        symbolId: f["@id"],
                                        required: "true" === f["@required"].toLowerCase()
                                    })
                                }
                            } catch (e) {
                                o = {
                                    error: e
                                }
                            } finally {
                                try {
                                    u && !u.done && (r = c.return) && r.call(c)
                                } finally {
                                    if (o) throw o.error
                                }
                            } else i.symbols.push({
                                symbolId: e.Symbol["@id"],
                                required: "true" === e.Symbol["@required"].toLowerCase()
                            });
                        return i
                    }, e.prototype.getStripsInfo = function(e) {
                        var t, n, o = new Map;
                        if (e instanceof Array) try {
                            for (var r = p(e), i = r.next(); !i.done; i = r.next()) {
                                var a = i.value,
                                    s = this.getStripInfoDef(a);
                                o.set(s.name, s)
                            }
                        } catch (e) {
                            t = {
                                error: e
                            }
                        } finally {
                            try {
                                i && !i.done && (n = r.return) && n.call(r)
                            } finally {
                                if (t) throw t.error
                            }
                        } else {
                            s = this.getStripInfoDef(e);
                            o.set(s.name, s)
                        }
                        return o
                    }, e.prototype.getStripInfoDef = function(e) {
                        var t, n, o, r, i, a, s = {
                            name: e["@name"],
                            strips: new Map
                        };
                        if (e.Strip instanceof Array) try {
                            for (var l = p(e.Strip), c = l.next(); !c.done; c = l.next()) {
                                var u = c.value,
                                    f = {
                                        name: u["@name"],
                                        stops: []
                                    };
                                if (u.Stop instanceof Array) try {
                                    for (var d = (o = void 0, p(u.Stop)), y = d.next(); !y.done; y = d.next()) {
                                        var h = y.value;
                                        f.stops.push({
                                            symbolId: h["@symbolID"],
                                            weight: parseInt(h["@weight"], 10)
                                        })
                                    }
                                } catch (e) {
                                    o = {
                                        error: e
                                    }
                                } finally {
                                    try {
                                        y && !y.done && (r = d.return) && r.call(d)
                                    } finally {
                                        if (o) throw o.error
                                    }
                                } else f.stops.push({
                                    symbolId: u.Stop["@symbolID"],
                                    weight: parseInt(u.Stop["@weight"], 10)
                                });
                                s.strips.set(f.name, f)
                            }
                        } catch (e) {
                            t = {
                                error: e
                            }
                        } finally {
                            try {
                                c && !c.done && (n = l.return) && n.call(l)
                            } finally {
                                if (t) throw t.error
                            }
                        } else {
                            f = {
                                name: e.Strip["@name"],
                                stops: []
                            };
                            if (e.Strip.Stop instanceof Array) try {
                                for (var g = p(e.Strip.Stop), m = g.next(); !m.done; m = g.next()) {
                                    h = m.value;
                                    f.stops.push({
                                        symbolId: h["@symbolID"],
                                        weight: parseInt(h["@weight"], 10)
                                    })
                                }
                            } catch (e) {
                                i = {
                                    error: e
                                }
                            } finally {
                                try {
                                    m && !m.done && (a = g.return) && a.call(g)
                                } finally {
                                    if (i) throw i.error
                                }
                            } else f.stops.push({
                                symbolId: e.Strip.Stop["@symbolID"],
                                weight: parseInt(e.Strip.Stop["@weight"], 10)
                            });
                            s.strips.set(f.name, f)
                        }
                        return s
                    }, e.prototype.getPatternInfo = function(e) {
                        return e
                    }, e.prototype.getPatternSliderInfo = function(e) {
                        var t, n, o, r, i = {};
                        if (null != e.BetInfo)
                            if (i = {
                                    max: parseInt(e.BetInfo["@max"], 10),
                                    min: parseInt(e.BetInfo["@min"], 10),
                                    steps: []
                                }, e.BetInfo.Step instanceof Array) try {
                                for (var a = p(e.BetInfo.Step), s = a.next(); !s.done; s = a.next()) {
                                    null != (f = s.value) && (f.toString ? i.steps.push(parseInt(f, 10)) : i.steps.push(parseInt(f["#text"], 10)))
                                }
                            } catch (e) {
                                t = {
                                    error: e
                                }
                            } finally {
                                try {
                                    s && !s.done && (n = a.return) && n.call(a)
                                } finally {
                                    if (t) throw t.error
                                }
                            } else null != (f = e.BetInfo.Step) && (f.toString ? i.steps.push(parseInt(f, 10)) : i.steps.push(parseInt(f["#text"], 10)));
                        var l = {};
                        if (null != e.PatternInfo)
                            if (l = {
                                    max: parseInt(e.PatternInfo["@max"], 10),
                                    min: parseInt(e.PatternInfo["@min"], 10),
                                    steps: []
                                }, e.PatternInfo.Step instanceof Array) try {
                                for (var c = p(e.PatternInfo.Step), u = c.next(); !u.done; u = c.next()) {
                                    var f;
                                    null != (f = u.value) && (f.toString ? l.steps.push(parseInt(f, 10)) : l.steps.push(parseInt(f["#text"], 10)))
                                }
                            } catch (e) {
                                o = {
                                    error: e
                                }
                            } finally {
                                try {
                                    u && !u.done && (r = c.return) && r.call(c)
                                } finally {
                                    if (o) throw o.error
                                }
                            } else null != (f = e.PatternInfo.Step) && (f.toString ? l.steps.push(parseInt(f, 10)) : l.steps.push(parseInt(f["#text"], 10)));
                        return {
                            patternInfo: l,
                            betInfo: i
                        }
                    }, e.prototype.getAwardCapInfo = function(e) {
                        var t = {};
                        null != e.TriggerInfo && (t = {
                            name: e.TriggerInfo["@name"],
                            priority: parseFloat(e.TriggerInfo["@priority"]),
                            stageConnector: e.TriggerInfo["@stageConnector"]
                        });
                        var n = {};
                        return null != e.CurrencyCap && (n = {
                            currencyType: e.CurrencyCap.CurrencyType,
                            awardCap: parseFloat(e.CurrencyCap.AwardCap)
                        }), {
                            name: e["@name"],
                            triggerInfo: t,
                            currencyCap: n
                        }
                    }, e.prototype.getDenominationList = function(e) {
                        var t = [];
                        return null != e.Denomination && t.push({
                            softwareId: e.Denomination["@softwareId"],
                            value: parseFloat(e.Denomination["#text"])
                        }), t
                    }, e.prototype.getGameBetInfo = function(e) {
                        return {
                            minChipValue: parseFloat(e.MinChipValue),
                            minBet: parseFloat(e.MinBet),
                            maxBet: parseFloat(e.MaxBet),
                            minSideBet: 0,
                            maxSideBet: 0
                        }
                    }, e.prototype.getGameDataInfo = function(e) {
                        var t, n, o, r, i, a, s = new Array;
                        if (e.BaseCurrency && s.push({
                                value: e.BaseCurrency.Currency["@value"]
                            }), e.JackpotResetRtp && null != e.JackpotResetRtp.Sample)
                            if (i = new Array, e.JackpotResetRtp.Sample instanceof Array) try {
                                for (var c = p(e.JackpotResetRtp.Sample.entries()), u = c.next(); !u.done; u = c.next()) {
                                    var f = l(u.value, 2),
                                        d = f[0],
                                        y = f[1];
                                    i.push({
                                        jackpotValue: y["@jackpotValue"] ? y["@jackpotValue"] : y["@jackpotValue" + (d + 1)],
                                        rtpValue: y["@rtpValue"] ? y["@rtpValue"] : y["@rtpValue" + (d + 1)]
                                    })
                                }
                            } catch (e) {
                                t = {
                                    error: e
                                }
                            } finally {
                                try {
                                    u && !u.done && (n = c.return) && n.call(c)
                                } finally {
                                    if (t) throw t.error
                                }
                            } else i.push({
                                jackpotValue: e.JackpotResetRtp.Sample["@jackpotValue"],
                                rtpValue: e.JackpotResetRtp.Sample["@rtpValue"]
                            });
                        if (e.JackpotRtpSamples && null != e.JackpotRtpSamples.Sample)
                            if (a = new Array, e.JackpotRtpSamples.Sample instanceof Array) try {
                                for (var h = p(e.JackpotRtpSamples.Sample.entries()), g = h.next(); !g.done; g = h.next()) {
                                    var m = l(g.value, 2);
                                    d = m[0], y = m[1];
                                    a.push({
                                        jackpotValue: y["@jackpotValue"] ? y["@jackpotValue"] : y["@jackpotValue" + (d + 1)],
                                        rtpValue: y["@rtpValue"] ? y["@rtpValue"] : y["@rtpValue" + (d + 1)]
                                    })
                                }
                            } catch (e) {
                                o = {
                                    error: e
                                }
                            } finally {
                                try {
                                    g && !g.done && (r = h.return) && r.call(h)
                                } finally {
                                    if (o) throw o.error
                                }
                            } else a.push({
                                jackpotValue: e.JackpotRtpSamples.Sample["@jackpotValue"],
                                rtpValue: e.JackpotRtpSamples.Sample["@rtpValue"]
                            });
                        return {
                            name: e["@name"],
                            baseCurrency: s,
                            jackpotResetRTP: i,
                            jackpotRTPSamples: a
                        }
                    }, e.prototype.getAutoSpinInfo = function(e) {
                        var t, n, o = {
                            enable: this.getBool(e["@enable"]),
                            steps: []
                        };
                        if (void 0 !== o)
                            if (e.Step instanceof Array) try {
                                for (var r = p(e.Step), i = r.next(); !i.done; i = r.next()) {
                                    var a = i.value;
                                    o.steps.push(parseInt(a, 10))
                                }
                            } catch (e) {
                                t = {
                                    error: e
                                }
                            } finally {
                                try {
                                    i && !i.done && (n = r.return) && n.call(r)
                                } finally {
                                    if (t) throw t.error
                                }
                            } else o.steps.push(parseInt(e.Step, 10));
                        return o
                    }, e.prototype.getKeyValuePairInfo = function(e) {
                        var t, n, o, r, i, a, s, l = new Map;
                        if (e instanceof Array) try {
                            for (var c = p(e), u = c.next(); !u.done; u = c.next()) {
                                var f = u.value;
                                if (f.Mapping instanceof Array) {
                                    s = new Map;
                                    try {
                                        for (var d = (o = void 0, p(f.Mapping)), y = d.next(); !y.done; y = d.next()) {
                                            var h = y.value;
                                            null != h && s.set(h["@key"], this.getMapInfoDef(h))
                                        }
                                    } catch (e) {
                                        o = {
                                            error: e
                                        }
                                    } finally {
                                        try {
                                            y && !y.done && (r = d.return) && r.call(d)
                                        } finally {
                                            if (o) throw o.error
                                        }
                                    }
                                    l.set(f["@name"], {
                                        name: f["@name"],
                                        mapping: s
                                    })
                                } else null != f.Mapping && ((s = new Map).set(f.Mapping["@key"], this.getMapInfoDef(f.Mapping)), l.set(f["@name"], {
                                    name: f["@name"],
                                    mapping: s
                                }))
                            }
                        } catch (e) {
                            t = {
                                error: e
                            }
                        } finally {
                            try {
                                u && !u.done && (n = c.return) && n.call(c)
                            } finally {
                                if (t) throw t.error
                            }
                        } else if (e.Mapping instanceof Array) {
                            s = new Map;
                            try {
                                for (var g = p(e.Mapping), m = g.next(); !m.done; m = g.next()) {
                                    var b = m.value;
                                    null != b && s.set(b["@key"], this.getMapInfoDef(b))
                                }
                            } catch (e) {
                                i = {
                                    error: e
                                }
                            } finally {
                                try {
                                    m && !m.done && (a = g.return) && a.call(g)
                                } finally {
                                    if (i) throw i.error
                                }
                            }
                            l.set(e["@name"], {
                                name: e["@name"],
                                mapping: s
                            })
                        } else null != e.Mapping && ((s = new Map).set(e.Mapping["@key"], this.getMapInfoDef(e.Mapping)), l.set(e["@name"], {
                            name: e["@name"],
                            mapping: s
                        }));
                        return l
                    }, e.prototype.getJackpotBetBandMap = function(e) {
                        var t, n, o = {
                            id: e["@id"],
                            betBandMap: []
                        };
                        if (e.BetBandMap instanceof Array) try {
                            for (var r = p(e.BetBandMap), i = r.next(); !i.done; i = r.next()) {
                                var a = i.value;
                                o.betBandMap.push({
                                    bandId: a["@bandId"],
                                    totalBet: parseInt(a["@totalBet"], 10)
                                })
                            }
                        } catch (e) {
                            t = {
                                error: e
                            }
                        } finally {
                            try {
                                i && !i.done && (n = r.return) && n.call(r)
                            } finally {
                                if (t) throw t.error
                            }
                        } else o.betBandMap.push({
                            bandId: e.BetBandMap["@bandId"],
                            totalBet: parseInt(e.BetBandMap["@totalBet"], 10)
                        });
                        return o
                    }, e.prototype.getMapInfoDef = function(e) {
                        return {
                            key: e["@key"],
                            value: e["@value"]
                        }
                    }, e.prototype.getJackpotOutcomes = function(e) {
                        var t = null;
                        return null != e && e.Jackpot && e.Jackpot["@id"] && e.Jackpot["@id"].length > 0 && (t = new Map).set(e.Jackpot["@id"], {
                            id: e.Jackpot["@id"],
                            level: e.Jackpot["@level"],
                            name: e.Jackpot["@name"],
                            value: e.Jackpot["@value"]
                        }), t
                    }, e.prototype.getOutcomeDetails = function(e) {
                        return {
                            transactionId: e.TransactionId,
                            stage: e.Stage,
                            nextStage: e.NextStage,
                            gameStatus: e.GameStatus,
                            settled: parseInt(e.Settled, 10),
                            pending: parseInt(e.Pending, 10),
                            payout: parseInt(e.Payout, 10)
                        }
                    }, e.prototype.getPickerInput = function(e) {
                        return e.Pick ? e.Pick["@name"] : ""
                    }, e.prototype.getPickerOutcome = function(e) {
                        var t, n, o = new Map;
                        if (null != e && null != e.Layer && e.Layer.Pick instanceof Array) try {
                            for (var r = p(e.Layer.Pick), i = r.next(); !i.done; i = r.next()) {
                                var a = i.value;
                                o.set(a["@name"], {
                                    name: a["@name"],
                                    picked: this.getBool(a["@picked"]),
                                    value: a.Feature["@value"]
                                })
                            }
                        } catch (e) {
                            t = {
                                error: e
                            }
                        } finally {
                            try {
                                i && !i.done && (n = r.return) && n.call(r)
                            } finally {
                                if (t) throw t.error
                            }
                        }
                        return o
                    }, e.prototype.getPickerSummaryOutcomes = function(e) {
                        var t, n, o = new Map;
                        if (e instanceof Array) try {
                            for (var r = p(e), i = r.next(); !i.done; i = r.next()) {
                                var a = i.value;
                                o.set(a["@name"], {
                                    name: a["@name"],
                                    awarded: parseInt(a["@Awarded"], 10),
                                    currentLayer: a.CurrentLayer ? {
                                        index: parseInt(a.CurrentLayer["@index"], 10),
                                        name: a.CurrentLayer["@name"]
                                    } : null,
                                    incrementTriggered: a.IncrementTriggered,
                                    initAwarded: parseInt(a.InitAwarded, 10),
                                    maxPicksAwarded: a.MaxPicksAwarded,
                                    pickCount: parseInt(a.PickCount, 10),
                                    picksRemaining: parseInt(a.PicksRemaining, 10)
                                })
                            }
                        } catch (e) {
                            t = {
                                error: e
                            }
                        } finally {
                            try {
                                i && !i.done && (n = r.return) && n.call(r)
                            } finally {
                                if (t) throw t.error
                            }
                        } else o.set(e["@name"], {
                            name: e["@name"],
                            awarded: parseInt(e.Awarded, 10),
                            currentLayer: e.CurrentLayer ? {
                                index: parseInt(e.CurrentLayer["@index"], 10),
                                name: e.CurrentLayer["@name"]
                            } : null,
                            incrementTriggered: e.IncrementTriggered,
                            initAwarded: parseInt(e.InitAwarded, 10),
                            maxPicksAwarded: e.MaxPicksAwarded,
                            pickCount: parseInt(e.PickCount, 10),
                            picksRemaining: parseInt(e.PicksRemaining, 10)
                        });
                        return o
                    }, e.prototype.getObfuscatedOutcome = function(e) {
                        return {
                            obfuscatedOutcome: e.Data
                        }
                    }, e.prototype.getBalances = function(e) {
                        var t, n, o, r, i = new Map;
                        if (e instanceof Array) try {
                            for (var a = p(e), s = a.next(); !s.done; s = a.next()) {
                                var l = s.value;
                                i.set(l["@name"], {
                                    name: l["@name"],
                                    value: parseFloat(l["#text"])
                                })
                            }
                        } catch (e) {
                            t = {
                                error: e
                            }
                        } finally {
                            try {
                                s && !s.done && (n = a.return) && n.call(a)
                            } finally {
                                if (t) throw t.error
                            }
                        } else if (null != e.Balance)
                            if (e.Balance instanceof Array) try {
                                for (var c = p(e.Balance), u = c.next(); !u.done; u = c.next()) {
                                    l = u.value;
                                    i.set(l["@name"], {
                                        name: l["@name"],
                                        value: parseFloat(l["#text"])
                                    })
                                }
                            } catch (e) {
                                o = {
                                    error: e
                                }
                            } finally {
                                try {
                                    u && !u.done && (r = c.return) && r.call(c)
                                } finally {
                                    if (o) throw o.error
                                }
                            } else
                                for (var l in e.Balance) Object.prototype.hasOwnProperty.call(e.Balance, l) && i.set(l["@name"], {
                                    name: l["@name"],
                                    value: parseFloat(l["#text"])
                                });
                        var f = 0;
                        return null != e["@totalBalance"] ? f = parseFloat(e["@totalBalance"]) : null !== i && null !== i.get("CASH") ? f = i["@CASH"].value : null !== this.reponse && null !== this.reponse.balances && (f = this.reponse["@balances"]["@totalBalance"]), {
                            totalBalance: f,
                            balances: i
                        }
                    }, e.prototype.getPatternSliderInput = function(e) {
                        return {
                            betPerPattern: parseInt(e.BetPerPattern, 10),
                            patternsBet: parseInt(e.PatternsBet, 10)
                        }
                    }, e.prototype.getPopulationOutcomes = function(e) {
                        var t, n, o = new Map;
                        if (e instanceof Array) try {
                            for (var r = p(e), i = r.next(); !i.done; i = r.next()) {
                                var a = i.value;
                                o.set(a["@name"], {
                                    name: a["@name"],
                                    stage: a["@stage"],
                                    entry: this.getEntry(a.Entry)
                                })
                            }
                        } catch (e) {
                            t = {
                                error: e
                            }
                        } finally {
                            try {
                                i && !i.done && (n = r.return) && n.call(r)
                            } finally {
                                if (t) throw t.error
                            }
                        } else o.set(e["@name"], {
                            name: e["@name"],
                            stage: e["@stage"],
                            entry: this.getEntry(e.Entry)
                        });
                        return o
                    }, e.prototype.getEntry = function(e) {
                        var t, n, o = new Map;
                        if (null != e)
                            if (e instanceof Array) try {
                                for (var r = p(e), i = r.next(); !i.done; i = r.next()) {
                                    var a = i.value;
                                    o.set(a["@name"], {
                                        name: a["@name"],
                                        stripIndex: parseInt(a["@stripIndex"], 10),
                                        cells: this.getCells(a.Cell)
                                    })
                                }
                            } catch (e) {
                                t = {
                                    error: e
                                }
                            } finally {
                                try {
                                    i && !i.done && (n = r.return) && n.call(r)
                                } finally {
                                    if (t) throw t.error
                                }
                            } else o.set(e["@name"], {
                                name: e["@name"],
                                stripIndex: parseInt(e["@stripIndex"], 10),
                                cells: this.getCells(e.Cell)
                            });
                        return o
                    }, e.prototype.getCells = function(e) {
                        var t, n, o = [];
                        if (null != e)
                            if (e instanceof Array) try {
                                for (var r = p(e), i = r.next(); !i.done; i = r.next()) {
                                    var a = i.value;
                                    o.push({
                                        name: a["@name"],
                                        type: a["@type"] || "",
                                        stripIndex: parseInt(a["@stripIndex"], 10),
                                        text: a["#text"]
                                    })
                                }
                            } catch (e) {
                                t = {
                                    error: e
                                }
                            } finally {
                                try {
                                    i && !i.done && (n = r.return) && n.call(r)
                                } finally {
                                    if (t) throw t.error
                                }
                            } else o.push({
                                name: e["@name"],
                                type: e["@type"] || "",
                                stripIndex: parseInt(e["@stripIndex"], 10),
                                text: e["#text"]
                            });
                        return o
                    }, e.prototype.getPrizeOutcomes = function(e) {
                        var t, n, o = new Map;
                        if (e instanceof Array) try {
                            for (var r = p(e), i = r.next(); !i.done; i = r.next()) {
                                var a = i.value;
                                o.set(a["@name"], {
                                    name: a["@name"],
                                    stage: a["@stage"],
                                    multiplier: parseFloat(a["@multiplier"]),
                                    pay: parseFloat(a["@pay"]),
                                    totalPay: parseFloat(a["@totalPay"]),
                                    prizes: this.getPrizes(a.Prize)
                                })
                            }
                        } catch (e) {
                            t = {
                                error: e
                            }
                        } finally {
                            try {
                                i && !i.done && (n = r.return) && n.call(r)
                            } finally {
                                if (t) throw t.error
                            }
                        } else o.set(e["@name"], {
                            name: e["@name"],
                            stage: e["@stage"],
                            multiplier: parseFloat(e["@multiplier"]),
                            pay: parseFloat(e["@pay"]),
                            totalPay: parseFloat(e["@totalPay"]),
                            prizes: this.getPrizes(e.Prize)
                        });
                        return o
                    }, e.prototype.getPrizes = function(e) {
                        var t, n, o = new Array;
                        if (null != e)
                            if (e instanceof Array) try {
                                for (var r = p(e), i = r.next(); !i.done; i = r.next()) {
                                    var a = i.value;
                                    o.push({
                                        name: a["@name"],
                                        betMultiplier: parseFloat(a["@betMultiplier"]),
                                        multiplier: parseFloat(a["@multiplier"]),
                                        pay: parseFloat(a["@pay"]),
                                        payName: a["@payName"],
                                        position: parseInt(a["@position"], 10),
                                        symbolCount: parseInt(a["@symbolCount"], 10),
                                        totalPay: parseFloat(a["@totalPay"]),
                                        ways: parseInt(a["@ways"], 10)
                                    })
                                }
                            } catch (e) {
                                t = {
                                    error: e
                                }
                            } finally {
                                try {
                                    i && !i.done && (n = r.return) && n.call(r)
                                } finally {
                                    if (t) throw t.error
                                }
                            } else o.push({
                                name: e["@name"],
                                betMultiplier: parseFloat(e["@betMultiplier"]),
                                multiplier: parseFloat(e["@multiplier"]),
                                pay: parseFloat(e["@pay"]),
                                payName: e["@payName"],
                                position: parseInt(e["@position"], 10),
                                symbolCount: parseInt(e["@symbolCount"], 10),
                                totalPay: parseFloat(e["@totalPay"]),
                                ways: parseInt(e["@ways"], 10)
                            });
                        return o
                    }, e.prototype.getHighlightOutcomes = function(e) {
                        var t, n, o = new Map;
                        if (null != e)
                            if (e instanceof Array) try {
                                for (var r = p(e), i = r.next(); !i.done; i = r.next()) {
                                    var a = i.value;
                                    o.set(a["@name"], {
                                        name: a["@name"],
                                        type: a["@type"] || "",
                                        highlights: this.getHighlights(a.Highlight)
                                    })
                                }
                            } catch (e) {
                                t = {
                                    error: e
                                }
                            } finally {
                                try {
                                    i && !i.done && (n = r.return) && n.call(r)
                                } finally {
                                    if (t) throw t.error
                                }
                            } else o.set(e["@name"], {
                                name: e["@name"],
                                type: e["@type"] || "",
                                highlights: this.getHighlights(e.Highlight)
                            });
                        return o
                    }, e.prototype.getHighlights = function(e) {
                        var t, n, o = [];
                        if (null != e)
                            if (e instanceof Array) try {
                                for (var r = p(e), i = r.next(); !i.done; i = r.next()) {
                                    var a = i.value;
                                    o.push({
                                        name: a["@name"],
                                        type: a["@type"] || "",
                                        cells: this.getCells(a.Cell)
                                    })
                                }
                            } catch (e) {
                                t = {
                                    error: e
                                }
                            } finally {
                                try {
                                    i && !i.done && (n = r.return) && n.call(r)
                                } finally {
                                    if (t) throw t.error
                                }
                            } else o.push({
                                name: e["@name"],
                                type: e["@type"] || "",
                                cells: this.getCells(e.Cell)
                            });
                        return o
                    }, e.prototype.getFreeSpinOutcomes = function(e) {
                        var t, n, o = new Map;
                        if (e instanceof Array) try {
                            for (var r = p(e), i = r.next(); !i.done; i = r.next()) {
                                var a = i.value;
                                o.set(a["@name"], {
                                    name: a["@name"],
                                    awarded: parseFloat(a.Awarded),
                                    count: parseFloat(a.Count),
                                    countdown: parseFloat(a.Countdown),
                                    incrementTriggered: this.getBool(a.IncrementTriggered),
                                    initAwarded: parseFloat(a.InitAwarded),
                                    maxAwarded: this.getBool(a.MaxAwarded),
                                    maxSpinsHit: this.getBool(a.MaxSpinsHit),
                                    totalAwarded: parseFloat(a.TotalAwarded)
                                })
                            }
                        } catch (e) {
                            t = {
                                error: e
                            }
                        } finally {
                            try {
                                i && !i.done && (n = r.return) && n.call(r)
                            } finally {
                                if (t) throw t.error
                            }
                        } else o.set(e["@name"], {
                            name: e["@name"],
                            awarded: parseFloat(e.Awarded),
                            count: parseFloat(e.Count),
                            countdown: parseFloat(e.Countdown),
                            incrementTriggered: this.getBool(e.IncrementTriggered),
                            initAwarded: parseFloat(e.InitAwarded),
                            maxAwarded: this.getBool(e.MaxAwarded),
                            maxSpinsHit: this.getBool(e.MaxSpinsHit),
                            totalAwarded: parseFloat(e.TotalAwarded)
                        });
                        return o
                    }, e.prototype.getMultiplierOutcome = function(e) {
                        return e instanceof Array ? null : {
                            name: e["@name"],
                            multiplier: this.getMultiplier(e.Multiplier)
                        }
                    }, e.prototype.getMultiplier = function(e) {
                        return null != e ? {
                            text: e["#text"],
                            name: e["@name"]
                        } : null
                    }, e.prototype.getMultiplierOutcomes = function(e) {
                        var t, n, o = new Map;
                        if (e instanceof Array) try {
                            for (var r = p(e), i = r.next(); !i.done; i = r.next()) {
                                var a = i.value;
                                null !== a.Multiplier && o.set(a["@name"], {
                                    name: a["@name"],
                                    multiplier: this.getMultiplier(a.Multiplier)
                                })
                            }
                        } catch (e) {
                            t = {
                                error: e
                            }
                        } finally {
                            try {
                                i && !i.done && (n = r.return) && n.call(r)
                            } finally {
                                if (t) throw t.error
                            }
                        } else null != e.Multiplier && o.set(e["@name"], {
                            name: e["@name"],
                            multiplier: this.getMultiplier(e.Multiplier)
                        });
                        return o
                    }, e.prototype.getAwardCapOutcome = function(e) {
                        return {
                            name: e["@name"],
                            awardCapExceeded: this.getBool(e.AwardCapExceeded)
                        }
                    }, e.prototype.getTriggerOutcome = function(e) {
                        var t, n, o = new Map;
                        if (e instanceof Array) try {
                            for (var r = p(e), i = r.next(); !i.done; i = r.next()) {
                                var a = i.value;
                                o.set(a["@name"], {
                                    component: a["@component"],
                                    name: a["@name"],
                                    stage: a["@stage"],
                                    trigger: this.getTriggers(a.Trigger)
                                })
                            }
                        } catch (e) {
                            t = {
                                error: e
                            }
                        } finally {
                            try {
                                i && !i.done && (n = r.return) && n.call(r)
                            } finally {
                                if (t) throw t.error
                            }
                        } else o.set(e["@name"], {
                            component: e["@component"],
                            name: e["@name"],
                            stage: e["@stage"],
                            trigger: this.getTriggers(e.Trigger)
                        });
                        return o
                    }, e.prototype.getTriggers = function(e) {
                        var t, n, o = new Array;
                        if (null != e)
                            if (e instanceof Array) try {
                                for (var r = p(e), i = r.next(); !i.done; i = r.next()) {
                                    var a = i.value;
                                    o.push({
                                        name: a["@name"],
                                        priority: parseFloat(a["@priority"]),
                                        stageConnector: a["@stageConnector"]
                                    })
                                }
                            } catch (e) {
                                t = {
                                    error: e
                                }
                            } finally {
                                try {
                                    i && !i.done && (n = r.return) && n.call(r)
                                } finally {
                                    if (t) throw t.error
                                }
                            } else o.push({
                                name: e["@name"],
                                priority: e["@priority"],
                                stageConnector: e["@stageConnector"]
                            });
                        return o
                    }, e.prototype.getPromotionalFreeSpin = function(e) {
                        return {
                            count: e["@count"]
                        }
                    }, e.prototype.getBool = function(e) {
                        return "true" === e.toLowerCase() || "yes" === e.toLowerCase()
                    }, e
                }(),
                u = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                f = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                d = function() {
                    function e(e, t, n) {
                        this.data = t, this.system = e, this.loader = n, this.slotGleDataTranslator = new c
                    }
                    return Object.defineProperty(e.prototype, "assetPack", {
                        get: function() {
                            return this.loader.assetPack
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "ixfState", {
                        get: function() {
                            return this.system.ixfState
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "loadStatus", {
                        get: function() {
                            return this.system.loadStatus
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "currency", {
                        get: function() {
                            return this.system.currency
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "response", {
                        get: function() {
                            return null != this.system.response && void 0 !== this.system.response ? this.slotGleDataTranslator.translateResponse(this.system.response) : this.system.response
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "paytable", {
                        get: function() {
                            return null !== this.system.paytable && void 0 !== this.system.paytable ? this.slotGleDataTranslator.translatePaytableData(this.system.paytable) : this.system.paytable
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "balance", {
                        get: function() {
                            return null !== this.system.balance && void 0 !== this.system.balance ? this.system.balance : "0"
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "patternsBet", {
                        get: function() {
                            return this.data.patternsBet > 0 && !this.data.gameReInit ? this.data.patternsBet : this.response.patternSliderInput.patternsBet
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "patternSteps", {
                        get: function() {
                            var e = this.paytable.patternSliderInfo.patternInfo;
                            return void 0 !== e ? e.steps : []
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "betPerPattern", {
                        get: function() {
                            return this.data.betPerPattern > 0 && !this.data.gameReInit ? this.data.betPerPattern : this.response.patternSliderInput.betPerPattern
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "betSteps", {
                        get: function() {
                            var e = this.paytable.patternSliderInfo.betInfo;
                            return void 0 !== e ? e.steps : []
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "autoSpinConfig", {
                        get: function() {
                            return this.system.gameConfig.autospin
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "autoSpinOptions", {
                        get: function() {
                            return this.data.autoSpinOptions
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "gcName", {
                        get: function() {
                            return this.system.gameConfig.game
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "rcIsReplay", {
                        get: function() {
                            return this.system.gameConfig.isReplay
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "rcTotalRounds", {
                        get: function() {
                            return this.system.gameConfig.totalRounds
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "replaySpeed", {
                        get: function() {
                            return this.data.replaySpeed
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "replayTurbo", {
                        get: function() {
                            return this.data.replayTurbo
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "gameReInit", {
                        get: function() {
                            return this.data.gameReInit
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "stage", {
                        get: function() {
                            return this.response.outcomeDetail.stage
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "nextStage", {
                        get: function() {
                            return this.response.outcomeDetail.nextStage
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "gameTotal", {
                        get: function() {
                            var e = 0;
                            return this.response.prizeOutcomes.forEach((function(t) {
                                "Game.Total" === t.name && (e = t.totalPay)
                            })), e
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "bonusTotal", {
                        get: function() {
                            var e = 0;
                            return this.response.prizeOutcomes.forEach((function(t) {
                                "Game.Total" === t.name ? e += t.totalPay : "BaseGame.Lines" === t.name && (e -= t.totalPay)
                            })), e
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "stageLinesTotal", {
                        get: function() {
                            var e = this,
                                t = 0;
                            return this.response.prizeOutcomes.forEach((function(n) {
                                n.name === e.stage + ".Lines" && (t = n.totalPay)
                            })), t
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "fsCountLocal", {
                        get: function() {
                            return this.data.fsCount
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "fsCount", {
                        get: function() {
                            var e = 0;
                            return this.response.freeSpinOutcomes.forEach((function(t) {
                                e = t.count
                            })), e
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "fsCountDown", {
                        get: function() {
                            var e = 0;
                            return this.response.freeSpinOutcomes.forEach((function(t) {
                                e = t.countdown
                            })), e
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "fsTotalAwarded", {
                        get: function() {
                            var e = 0;
                            return this.response.freeSpinOutcomes.forEach((function(t) {
                                e = t.totalAwarded
                            })), e
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "fsIncrementTriggered", {
                        get: function() {
                            var e = !1;
                            return this.response.freeSpinOutcomes.forEach((function(t) {
                                e = t.incrementTriggered
                            })), e && !this.data.fsIncrementTriggered
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "fsMaxAwarded", {
                        get: function() {
                            var e = !1;
                            return this.response.freeSpinOutcomes.forEach((function(t) {
                                e = t.maxAwarded
                            })), e
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "fsAwarded", {
                        get: function() {
                            var e = 0;
                            return this.response.freeSpinOutcomes.forEach((function(t) {
                                e = t.awarded
                            })), e
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "playMode", {
                        get: function() {
                            return this.system.playMode
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "slamStopSystemEnabled", {
                        get: function() {
                            return this.system.slamStopEnabled
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "slamStopManualEnabled", {
                        get: function() {
                            return this.data.slamStopManualEnabled
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "slamStopFullyDisabled", {
                        get: function() {
                            return this.data.slamStopFullyDisabled
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "slamStopReelsAreaClickEnabled", {
                        get: function() {
                            return this.data.slamStopReelsAreaClickEnabled
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "jackpotData", {
                        get: function() {
                            return this.system.jackpotData
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "promoFreeSpinCount", {
                        get: function() {
                            return this.response.promotionalFreeSpin.count
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "awardCap", {
                        get: function() {
                            return this.paytable.awardCapInfo.currencyCap.awardCap
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "awardCapCurrency", {
                        get: function() {
                            return this.paytable.awardCapInfo.currencyCap.currencyType
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "awardCapExceeded", {
                        get: function() {
                            return this.response.awardCapOutcome.awardCapExceeded
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "pickerInput", {
                        get: function() {
                            return this.data.pickerInput
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "reelSetState", {
                        get: function() {
                            return this.data.reelSetState
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "reelStates", {
                        get: function() {
                            return this.data.reelStates
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "reelsStopping", {
                        get: function() {
                            return this.data.reelsStopping
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "autoSpinStarted", {
                        get: function() {
                            return this.data.autoSpinStarted
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "reelDimensions", {
                        get: function() {
                            return this.data.reelDimensions
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "skipped", {
                        get: function() {
                            return this.data.skipped
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "controlsEnabled", {
                        get: function() {
                            return this.data.controlsEnabled
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "settingsShown", {
                        get: function() {
                            return this.data.settingsShown
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "muteEnabled", {
                        get: function() {
                            var e = this.loader.assetPack.charAt(0).toUpperCase() + this.loader.assetPack.slice(1) + "Sound";
                            return !!this.system.preferences.has(e) && "Off" === this.system.preferences.get(e)
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "tutorialOff", {
                        get: function() {
                            if (this.rcIsReplay) return !0;
                            return !!this.system.preferences.has("Tutorial") && "Off" === this.system.preferences.get("Tutorial")
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "preferences", {
                        get: function() {
                            return this.system.preferences
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "spins", {
                        get: function() {
                            return this.data.spins
                        },
                        enumerable: !0,
                        configurable: !0
                    }), e.prototype.scaleFactor = function(e) {
                        var t = r.e.landScapeAssets,
                            n = r.e.portraitAssets,
                            o = new Map;
                        if (void 0 !== t && void 0 !== n && void 0 !== t.get(e) && void 0 !== n.get(e)) {
                            var a = t.get(e),
                                s = n.get(e),
                                p = a.width / s.width,
                                l = s.width / a.width;
                            return o.set(i.a.PORTRAIT, l), o.set(i.a.LANDSCAPE, p), o
                        }
                        return o
                    }, e.prototype.startSubLoader = function(e) {
                        var t = this.system.loadStatus[e];
                        void 0 !== t && (t.subLoaderTrigger = !0)
                    }, e.prototype.setSlamStopFullyDisabled = function() {
                        this.data.slamStopFullyDisabled = !0
                    }, u([o.d, f("design:type", String), f("design:paramtypes", [])], e.prototype, "ixfState", null), u([o.d, f("design:type", Object), f("design:paramtypes", [])], e.prototype, "loadStatus", null), u([o.d, f("design:type", Object), f("design:paramtypes", [])], e.prototype, "currency", null), u([o.d, f("design:type", a.a), f("design:paramtypes", [])], e.prototype, "response", null), u([o.d, f("design:type", s), f("design:paramtypes", [])], e.prototype, "paytable", null), u([o.d, f("design:type", Object), f("design:paramtypes", [])], e.prototype, "balance", null), u([o.d, f("design:type", Number), f("design:paramtypes", [])], e.prototype, "patternsBet", null), u([o.d, f("design:type", Array), f("design:paramtypes", [])], e.prototype, "patternSteps", null), u([o.d, f("design:type", Number), f("design:paramtypes", [])], e.prototype, "betPerPattern", null), u([o.d, f("design:type", Array), f("design:paramtypes", [])], e.prototype, "betSteps", null), u([o.d, f("design:type", Object), f("design:paramtypes", [])], e.prototype, "autoSpinConfig", null), u([o.d, f("design:type", Object), f("design:paramtypes", [])], e.prototype, "autoSpinOptions", null), u([o.d, f("design:type", String), f("design:paramtypes", [])], e.prototype, "gcName", null), u([o.d, f("design:type", Object), f("design:paramtypes", [])], e.prototype, "rcIsReplay", null), u([o.d, f("design:type", Object), f("design:paramtypes", [])], e.prototype, "rcTotalRounds", null), u([o.d, f("design:type", Number), f("design:paramtypes", [])], e.prototype, "replaySpeed", null), u([o.d, f("design:type", Boolean), f("design:paramtypes", [])], e.prototype, "replayTurbo", null), u([o.d, f("design:type", String), f("design:paramtypes", [])], e.prototype, "stage", null), u([o.d, f("design:type", String), f("design:paramtypes", [])], e.prototype, "nextStage", null), u([o.d, f("design:type", Number), f("design:paramtypes", [])], e.prototype, "gameTotal", null), u([o.d, f("design:type", Number), f("design:paramtypes", [])], e.prototype, "bonusTotal", null), u([o.d, f("design:type", Number), f("design:paramtypes", [])], e.prototype, "stageLinesTotal", null), u([o.d, f("design:type", Number), f("design:paramtypes", [])], e.prototype, "fsCountLocal", null), u([o.d, f("design:type", Number), f("design:paramtypes", [])], e.prototype, "fsCount", null), u([o.d, f("design:type", Number), f("design:paramtypes", [])], e.prototype, "fsCountDown", null), u([o.d, f("design:type", Number), f("design:paramtypes", [])], e.prototype, "fsTotalAwarded", null), u([o.d, f("design:type", Boolean), f("design:paramtypes", [])], e.prototype, "fsIncrementTriggered", null), u([o.d, f("design:type", Boolean), f("design:paramtypes", [])], e.prototype, "fsMaxAwarded", null), u([o.d, f("design:type", Number), f("design:paramtypes", [])], e.prototype, "fsAwarded", null), u([o.d, f("design:type", String), f("design:paramtypes", [])], e.prototype, "playMode", null), u([o.d, f("design:type", Boolean), f("design:paramtypes", [])], e.prototype, "slamStopSystemEnabled", null), u([o.d, f("design:type", Boolean), f("design:paramtypes", [])], e.prototype, "slamStopManualEnabled", null), u([o.d, f("design:type", Boolean), f("design:paramtypes", [])], e.prototype, "slamStopFullyDisabled", null), u([o.d, f("design:type", Boolean), f("design:paramtypes", [])], e.prototype, "slamStopReelsAreaClickEnabled", null), u([o.d, f("design:type", Object), f("design:paramtypes", [])], e.prototype, "jackpotData", null), u([o.d, f("design:type", Number), f("design:paramtypes", [])], e.prototype, "promoFreeSpinCount", null), u([o.d, f("design:type", Number), f("design:paramtypes", [])], e.prototype, "awardCap", null), u([o.d, f("design:type", String), f("design:paramtypes", [])], e.prototype, "awardCapCurrency", null), u([o.d, f("design:type", Boolean), f("design:paramtypes", [])], e.prototype, "awardCapExceeded", null), u([o.d, f("design:type", Object), f("design:paramtypes", [])], e.prototype, "pickerInput", null), u([o.d, f("design:type", Number), f("design:paramtypes", [])], e.prototype, "reelSetState", null), u([o.d, f("design:type", Map), f("design:paramtypes", [])], e.prototype, "reelStates", null), u([o.d, f("design:type", Boolean), f("design:paramtypes", [])], e.prototype, "reelsStopping", null), u([o.d, f("design:type", Boolean), f("design:paramtypes", [])], e.prototype, "autoSpinStarted", null), u([o.d, f("design:type", Array), f("design:paramtypes", [])], e.prototype, "reelDimensions", null), u([o.d, f("design:type", Boolean), f("design:paramtypes", [])], e.prototype, "skipped", null), u([o.d, f("design:type", Boolean), f("design:paramtypes", [])], e.prototype, "controlsEnabled", null), u([o.d, f("design:type", Number), f("design:paramtypes", [])], e.prototype, "settingsShown", null), u([o.d, f("design:type", Boolean), f("design:paramtypes", [])], e.prototype, "muteEnabled", null), u([o.d, f("design:type", Boolean), f("design:paramtypes", [])], e.prototype, "tutorialOff", null), u([o.d, f("design:type", o.a), f("design:paramtypes", [])], e.prototype, "preferences", null), u([o.d, f("design:type", Number), f("design:paramtypes", [])], e.prototype, "spins", null), u([o.b.bound, f("design:type", Function), f("design:paramtypes", [String]), f("design:returntype", Map)], e.prototype, "scaleFactor", null), u([o.b.bound, f("design:type", Function), f("design:paramtypes", [String]), f("design:returntype", void 0)], e.prototype, "startSubLoader", null), u([o.b.bound, f("design:type", Function), f("design:paramtypes", []), f("design:returntype", void 0)], e.prototype, "setSlamStopFullyDisabled", null), e
                }()
        },
        8: function(e, t, n) {
            "use strict";
            n.d(t, "b", (function() {
                return o
            })), n.d(t, "c", (function() {
                return r
            })), n.d(t, "a", (function() {
                return p
            }));
            var o, r, i = n(0),
                a = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                s = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                };
            ! function(e) {
                e[e.IDLE = 0] = "IDLE", e[e.SPIN_START_BEGIN = 1] = "SPIN_START_BEGIN", e[e.SPIN_START_END = 2] = "SPIN_START_END", e[e.SPIN_STOP_BEGIN = 3] = "SPIN_STOP_BEGIN", e[e.SPIN_STOP_END = 4] = "SPIN_STOP_END"
            }(o || (o = {})),
            function(e) {
                e[e.STANDARD = 0] = "STANDARD", e[e.TUMBLING = 1] = "TUMBLING", e[e.INDEPENDENT = 2] = "INDEPENDENT"
            }(r || (r = {}));
            var p = function() {
                function e() {
                    this.stripInfoName = "", this.reelSetName = "", this.reelLayoutConfig = new Map, this.reelSetType = r.STANDARD, this.columns = 0, this.schemaInfoName = "", this.reelSetConfigData = null
                }
                return a([i.f, s("design:type", String)], e.prototype, "stripInfoName", void 0), a([i.f, s("design:type", String)], e.prototype, "reelSetName", void 0), a([i.f, s("design:type", Map)], e.prototype, "reelLayoutConfig", void 0), a([i.f, s("design:type", Number)], e.prototype, "reelSetType", void 0), a([i.f, s("design:type", Number)], e.prototype, "columns", void 0), a([i.f, s("design:type", String)], e.prototype, "schemaInfoName", void 0), a([i.f, s("design:type", Object)], e.prototype, "reelSetConfigData", void 0), e
            }()
        },
        85: function(e, t, n) {
            "use strict";
            n.d(t, "a", (function() {
                return z
            }));
            var o, r = n(10),
                i = n(47),
                a = n(39),
                s = n(8),
                p = (o = function(e, t) {
                    return (o = Object.setPrototypeOf || {
                            __proto__: []
                        }
                        instanceof Array && function(e, t) {
                            e.__proto__ = t
                        } || function(e, t) {
                            for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                        })(e, t)
                }, function(e, t) {
                    function n() {
                        this.constructor = e
                    }
                    o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
                }),
                l = function(e) {
                    function t(t, n, o, r) {
                        void 0 === r && (r = a.a.BTN_SLAM_STOP);
                        var i = e.call(this) || this;
                        return i._reactionName = "slamStopReelStateListener", i._takeNoChancesReactionName = "takeNoChances", i._reelSetCommands = t.reelSetCommands, i._view = n, i._parentProps = i._view.getParentProps(), i._slamStopButton = i._view.getControl(r), i._reelsClickArea = o.container, i._isPreResponse = t.isPreResponse, i._isSlamStopEnabled = (i._parentProps.slamStopSystemEnabled || i._parentProps.slamStopManualEnabled) && i._slamStopButton.children.length > 0, i._isPreResponse && i._isSlamStopEnabled && (i._slamStopButton.visible = i._isSlamStopEnabled, i._slamStopButton.enabled = i._isSlamStopEnabled), i._isSlamStopEnabled || i._parentProps.setSlamStopFullyDisabled(), i
                    }
                    return p(t, e), t.prototype.execute = function() {
                        var t = this;
                        e.prototype.execute.call(this), this._isSlamStopEnabled && (this._slamStopButton.removeAllListeners("buttonup"), this._slamStopButton.enabled && (this._slamStopButton.addListener("buttonup", this.processSlamStop, this), this._parentProps.slamStopReelsAreaClickEnabled && (this._reelsClickArea.interactive = !0, this._reelsClickArea.on("pointerup", this.processSlamStop, this)), this._returnedTakeNoChancesReactionName = r.a.getInstance().addReaction(this._takeNoChancesReactionName, (function() {
                            return t._parentProps.reelSetState
                        }), (function() {
                            t._parentProps.reelSetState === s.b.SPIN_STOP_BEGIN && t._isPreResponse ? (t._reelsClickArea.off("pointerup", t.processSlamStop, t), r.a.getInstance().disposeReaction(t._returnedTakeNoChancesReactionName)) : t._parentProps.reelSetState === s.b.SPIN_STOP_END && (t._slamStopButton.removeAllListeners("buttonup"), t._slamStopButton.enabled = !1, t._reelsClickArea.interactive = !1, t._reelsClickArea.off("pointerup", t.processSlamStop, t), r.a.getInstance().disposeReaction(t._returnedTakeNoChancesReactionName))
                        })))), this.resolveCompleted()
                    }, t.prototype.processSlamStop = function() {
                        this._isPreResponse;
                        this._slamStopButton.removeAllListeners("buttonup"), this._slamStopButton.enabled = !1, this._reelsClickArea.off("pointerup", this.processSlamStop, this), r.a.getInstance().disposeReaction(this._returnedTakeNoChancesReactionName), this._isPreResponse ? this.preResponseSlamStop() : this._reelSetCommands.slamStopCommand()
                    }, t.prototype.preResponseSlamStop = function() {
                        var e = this;
                        this._returnedReactionName = r.a.getInstance().addReaction(this._reactionName, (function() {
                            return e._parentProps.reelsStopping || e._parentProps.reelSetState
                        }), (function() {
                            e._parentProps.reelsStopping ? (r.a.getInstance().disposeReaction(e._returnedReactionName), e._reelSetCommands.slamStopCommand()) : e._parentProps.reelSetState !== s.b.SPIN_START_BEGIN && e._parentProps.reelSetState !== s.b.IDLE || r.a.getInstance().disposeReaction(e._returnedReactionName)
                        }))
                    }, t.COMMAND_NAME = "uiSlamStopCommand", t
                }(i.a),
                c = n(1),
                u = n(2),
                f = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                d = function(e) {
                    function t() {
                        var t = null !== e && e.apply(this, arguments) || this;
                        return t._time = 0, t._autoSpinDelay = 1e3, t._whenName = "", t._spinWhenName = "", t
                    }
                    return f(t, e), t.prototype.execute = function() {
                        var n = this;
                        e.prototype.execute.call(this), c.j.get(0).ticker.add(this.onAutoSpinDelayTick, this), this._whenName = r.a.getInstance().addWhen(t.COMMAND_NAME + "_onSkip", (function() {
                            return u.b.skipped
                        }), (function() {
                            n._whenName = "", n.cancel()
                        })), this._spinWhenName = r.a.getInstance().addWhen(t.COMMAND_NAME + "_onAutoSpinStop", (function() {
                            return 0 === u.b.spins && "onBeginNewGame" === u.b.ixfState
                        }), (function() {
                            n._spinWhenName = "", n.cancel()
                        }))
                    }, t.prototype.onAutoSpinDelayTick = function() {
                        this._time += c.j.get(0).ticker.deltaMS, this._time > this._autoSpinDelay && (u.a.gameActions.setSkipped(!0), this._time = 0, this.playAutoSpinClickAudio(), c.j.get(0).ticker.remove(this.onAutoSpinDelayTick, this))
                    }, t.prototype.cancel = function() {
                        this._state !== i.b.IDLE && (this.disposeReaction(), this._time = 0, c.j.get(0).ticker.remove(this.onAutoSpinDelayTick, this)), e.prototype.cancel.call(this)
                    }, t.prototype.disposeReaction = function() {
                        "" !== this._whenName && (r.a.getInstance().disposeReaction(this._whenName), this._whenName = ""), "" !== this._spinWhenName && (r.a.getInstance().disposeReaction(this._spinWhenName), this._spinWhenName = "")
                    }, t.prototype.playAutoSpinClickAudio = function() {
                        u.b.spins > 0 && "BaseGame" === u.b.stage && c.i.execute("onUiSpin")
                    }, t.COMMAND_NAME = "autoSpinDelayCommand", t
                }(i.a),
                y = n(68),
                h = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                g = function(e) {
                    function t(t, n, o) {
                        void 0 === n && (n = !1);
                        var r = e.call(this) || this;
                        return r.view = t, r.ixfStopCheck = n, r.stopReason = o, r
                    }
                    return h(t, e), t.prototype.execute = function() {
                        e.prototype.execute.call(this);
                        var t = this.view.subComponents.get(a.a.CONTROL_AUTO_SPIN);
                        null != t ? (this.ixfStopCheck || !0 !== u.b.autoSpinStarted ? (this.view.props.stopAutoSpinFromIXF || "freespin" === this.view.props.playMode && this.view.props.promoFreeSpinCount <= 0 && !0 === u.b.autoSpinStarted) && t.requestStop(y.b.AUTO) : t.requestStop(this.stopReason), this.resolveCompleted()) : this.resolveCompleted()
                    }, t.COMMAND_NAME = "autoSpinStopCommand", t
                }(i.a),
                m = n(124),
                b = n(100),
                _ = n(101),
                S = n(97),
                v = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                C = function(e) {
                    function t(t, n, o, r) {
                        void 0 === r && (r = !0);
                        var i = e.call(this, n) || this;
                        return i.reactionName = "", i.enable = o, i.view = t, i.action = r, i
                    }
                    return v(t, e), t.prototype.execute = function() {
                        var n = this;
                        e.prototype.execute.call(this), 0 === this._payload.length && null !== this.enable ? (u.a.controlActions.setControlsEnabled(this.enable), this.resolveCompleted()) : null === this.enable ? this.reactionName = r.a.getInstance().addReaction(t.COMMAND_NAME + "_onCondition", this._payload.dataFunction, (function(e) {
                            n.enableControl(e, n._payload.components)
                        })) : (this.enableControl(this.enable, this._payload), this._payload.findIndex((function(e) {
                            var t = n.view.subComponents.get(e);
                            return t instanceof b.a || t instanceof _.a || t instanceof S.a
                        })) > -1 && this.action && u.a.controlActions.setControlsEnabled(this.enable), this.resolveCompleted()), this.playStageAudios()
                    }, t.prototype.cancel = function() {
                        this._state !== i.b.IDLE && "" !== this.reactionName && (r.a.getInstance().disposeReaction(this.reactionName), this.reactionName = ""), e.prototype.cancel.call(this)
                    }, t.prototype.enableControl = function(e, t) {
                        var n = this;
                        t.forEach((function(t) {
                            var o = n.view.subComponents.get(t);
                            void 0 !== o && (o.enabled = e)
                        }))
                    }, t.prototype.playStageAudios = function() {
                        "onBeforeShowStage" === c.l.ixfState && "BaseGame" === u.b.response.outcomeDetail.nextStage && m.a.delayedCall(t.TIME_DELAY / 1e3, (function() {
                            c.i.execute("onGameInit"), c.i.execute("onBaseGameStart")
                        }))
                    }, t.COMMAND_NAME = "enableControlCommand", t.TIME_DELAY = 300, t
                }(i.a),
                O = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                P = function(e) {
                    function t(t, n, o) {
                        var r = e.call(this, n) || this;
                        return r.show = o, r.view = t, r
                    }
                    return O(t, e), t.prototype.execute = function() {
                        var t = this;
                        e.prototype.execute.call(this), this._payload.forEach((function(e) {
                            var n = t.view.subComponents.get(e);
                            n && (n.container ? n.container.visible = t.show : n.visible = t.show)
                        })), this.resolveCompleted()
                    }, t
                }(i.a),
                w = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                R = function(e) {
                    function t(t, n) {
                        var o = e.call(this, n) || this;
                        return o._show = n, o._uiControls = t, o
                    }
                    return w(t, e), t.prototype.execute = function() {
                        e.prototype.execute.call(this), this._uiControls.actions.setBonusWin(u.b.bonusTotal), this.resolveCompleted()
                    }, t.prototype.cancel = function() {
                        e.prototype.cancel.call(this)
                    }, t.COMMAND_NAME = "showTotalWinCommand", t.GAME_TOTAL = "Game.Total", t.PRIZES = [".Lines", ".Scatter"], t
                }(i.a),
                N = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                I = function(e) {
                    function t(t, n, o) {
                        var r = e.call(this, n) || this;
                        return r._show = n, r._useCurrentStage = o, r._uiControls = t, r
                    }
                    return N(t, e), t.prototype.execute = function() {
                        e.prototype.execute.call(this);
                        var n = 0;
                        if (this._show)
                            if (!this._useCurrentStage || u.b.awardCapExceeded) {
                                var o = u.b.response.prizeOutcomes.get(t.GAME_TOTAL);
                                void 0 !== o && (n = o.totalPay)
                            } else {
                                var r = u.b.response.outcomeDetail.stage;
                                t.PRIZES.forEach((function(e) {
                                    var t = u.b.response.prizeOutcomes.get(r + e);
                                    void 0 !== t && (n += t.totalPay)
                                }))
                            }
                        this._uiControls.actions.setWin(n), this.resolveCompleted()
                    }, t.prototype.cancel = function() {
                        e.prototype.cancel.call(this)
                    }, t.COMMAND_NAME = "showWinCommand", t.GAME_TOTAL = "Game.Total", t.PRIZES = [".Lines", ".Scatter"], t
                }(i.a),
                T = n(12),
                A = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                j = function(e) {
                    function t(t, n, o) {
                        void 0 === o && (o = a.a.BTN_SPIN);
                        var r = e.call(this, t) || this;
                        return r.view = n, r.spinButton = r.view.getControl(o), r.uiProps = n.props, r.reactionName = "", r
                    }
                    return A(t, e), t.prototype.execute = function() {
                        var n = this;
                        if (e.prototype.execute.call(this), this.spinButton.removeAllListeners("buttonup"), u.b.skipped) u.a.gameActions.setSkipped(!1), this.playSpinBtnAudios(), this.resolveCompleted();
                        else {
                            if (!this.spinButton.enabled && u.b.settingsShown === T.a.NONE) {
                                var o = this.view.subComponents.get(a.a.BTN_SPIN);
                                void 0 !== o && (o.enabled = !0)
                            }
                            0 === this.uiProps.spins ? u.b.rcIsReplay && "playButton" === this.spinButton.name ? this.handleButtonUp() : this.spinButton.addListener("buttonup", this.handleButtonUp, this) : this.uiProps.spins > 0 && this.playSpinBtnAudios(), this.reactionName = r.a.getInstance().addWhen(t.COMMAND_NAME + "_onSpin", (function() {
                                return n.uiProps.spins > 0
                            }), (function() {
                                u.a.gameActions.setSkipped(!1), n._payload ? n._payload() : n.cancel()
                            })), 2 === this.state && r.a.getInstance().disposeReaction(this.reactionName)
                        }
                    }, t.prototype.handleButtonUp = function() {
                        u.b.fsTotalAwarded > 0 && "FreeSpin" === u.b.nextStage && u.a.controlActions.setFsCount(this.uiProps.count), this.playSpinBtnAudios(), this.playTransitionAudio(), u.a.controlActions.setSpins(this.uiProps.spins + 1)
                    }, t.prototype.playSpinBtnAudios = function() {
                        c.i.execute("onUiSpin"), "BaseGame" === u.b.response.outcomeDetail.nextStage ? c.i.execute("onBaseGameSpinStart") : "FreeSpin" === u.b.response.outcomeDetail.nextStage && c.i.execute("onBonusGameSpinStart")
                    }, t.prototype.playTransitionAudio = function() {
                        "FreeSpin" === u.b.response.outcomeDetail.nextStage && "playButton" === this.spinButton.name && c.i.execute("onBonusGameStart")
                    }, t.prototype.cancel = function() {
                        this._state !== i.b.IDLE && ("" !== this.reactionName && (r.a.getInstance().disposeReaction(this.reactionName), this.reactionName = ""), this.spinButton.removeListener("buttonup", this.handleButtonUp, this)), e.prototype.cancel.call(this)
                    }, t.COMMAND_NAME = "uiSpinCommand", t
                }(i.a),
                E = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                D = function(e) {
                    function t(t, n) {
                        var o = e.call(this, t) || this;
                        return o.view = n, o.uiProps = n.props, o
                    }
                    return E(t, e), t.prototype.execute = function() {
                        e.prototype.execute.call(this), this.uiProps.spins > 0 && u.a.controlActions.setSpins(this.uiProps.spins - 1), this.resolveCompleted()
                    }, t.COMMAND_NAME = "uiDecrementSpinsCommand", t
                }(i.a),
                x = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                B = function(e) {
                    function t(t, n, o) {
                        var r = e.call(this, n) || this;
                        return r.show = o, r.view = t, r
                    }
                    return x(t, e), t.prototype.execute = function() {
                        var t = this;
                        e.prototype.execute.call(this), this._payload.forEach((function(e) {
                            var n = t.view.subComponents.get(e);
                            t.show ? n.delayAndShow() : n.hide()
                        })), this.resolveCompleted()
                    }, t
                }(i.a),
                M = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                k = function(e) {
                    function t(t, n, o, r, i) {
                        void 0 === o && (o = a.a.BTN_SKIP), void 0 === r && (r = !0), void 0 === i && (i = !1);
                        var s = e.call(this, t) || this;
                        return s.view = n, s.button = s.view.getControl(o), s.uiProps = n.props, s._whenName = "", s._disabledPressed = r, s._hidePressed = i, s
                    }
                    return M(t, e), t.prototype.execute = function() {
                        var n = this;
                        e.prototype.execute.call(this), this.button.enabled = !0, u.a.gameActions.setSkipped(!1), u.b.rcIsReplay && "playButton" === this.button.name ? this.handleButtonUp() : this.button.addListener("buttonup", this.handleButtonUp, this), this._whenName = r.a.getInstance().addWhen(t.COMMAND_NAME + "_onSkip", (function() {
                            return u.b.skipped
                        }), (function() {
                            n._whenName = "", n.cancel()
                        })), this.resolveCompleted()
                    }, t.prototype.handleButtonUp = function() {
                        u.a.gameActions.setSkipped(!0), this.handlePressed(), this.disposeReaction()
                    }, t.prototype.handlePressed = function() {
                        this._disabledPressed && (this.button.enabled = !1), this._hidePressed && (this.button.visible = !1)
                    }, t.prototype.cancel = function() {
                        this._state !== i.b.IDLE && (this.disposeReaction(), this.button.removeListener("buttonup", this.handleButtonUp, this), u.a.gameActions.setSkipped(!0), this.handlePressed()), e.prototype.cancel.call(this)
                    }, t.prototype.disposeReaction = function() {
                        "" !== this._whenName && (r.a.getInstance().disposeReaction(this._whenName), this._whenName = "")
                    }, t.COMMAND_NAME = "uiForceSkipCommand", t
                }(i.a),
                F = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                L = function(e) {
                    function t(t, n) {
                        var o = e.call(this, t) || this;
                        return o.view = n, o.uiProps = n.props, o
                    }
                    return F(t, e), t.prototype.execute = function() {
                        e.prototype.execute.call(this), u.b.fsTotalAwarded > 0 && "FreeSpin" === u.b.nextStage && u.a.controlActions.setFsCount(this.uiProps.count + 1), this.resolveCompleted()
                    }, t.COMMAND_NAME = "uiUpdateFSCounterCommand", t
                }(i.a),
                U = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                G = function(e) {
                    function t(t, n) {
                        var o = e.call(this, t) || this;
                        return o.view = n, o.uiProps = n.props, o
                    }
                    return U(t, e), t.prototype.execute = function() {
                        e.prototype.execute.call(this), this.view.subComponents.get(a.a.METER_SPIN).updateFreespinTotalAwardMeter(), this.resolveCompleted()
                    }, t.COMMAND_NAME = "uiUpdateFSTotalAwardCommand", t
                }(i.a),
                V = function() {
                    var e = function(t, n) {
                        return (e = Object.setPrototypeOf || {
                                __proto__: []
                            }
                            instanceof Array && function(e, t) {
                                e.__proto__ = t
                            } || function(e, t) {
                                for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                            })(t, n)
                    };
                    return function(t, n) {
                        function o() {
                            this.constructor = t
                        }
                        e(t, n), t.prototype = null === n ? Object.create(n) : (o.prototype = n.prototype, new o)
                    }
                }(),
                W = function(e) {
                    function t() {
                        return e.call(this) || this
                    }
                    return V(t, e), t.prototype.execute = function() {
                        e.prototype.execute.call(this), this.playInactivityAudio(), this.resolveCompleted()
                    }, t.prototype.playInactivityAudio = function() {
                        c.i.execute("onInactivityStart")
                    }, t.prototype.cancel = function() {
                        e.prototype.cancel.call(this)
                    }, t.COMMAND_NAME = "onEndGameInactivityCommand", t
                }(i.a),
                z = function(e, t) {
                    this.enableControlCommand = function(t, n) {
                        return new C(e, t, !0, n)
                    }, this.disableControlCommand = function(t, n) {
                        return new C(e, t, !1, n)
                    }, this.toggleControlCommand = function(t) {
                        return new C(e, t, null)
                    }, this.showControlCommand = function(t) {
                        return new P(e, t, !0)
                    }, this.hideControlCommand = function(t) {
                        return new P(e, t, !1)
                    }, this.spinCommand = function(t, n) {
                        return new j(t, e, n)
                    }, this.slamStopCommand = function(n, o) {
                        return new l(n, e, t, o)
                    }, this.forceSkipCommand = function(t, n, o, r) {
                        return new k(t, e, n, o, r)
                    }, this.showWinCommand = function() {
                        return new I(e, !0, !0)
                    }, this.hideWinCommand = function() {
                        return new I(e, !1, !0)
                    }, this.showBonusWinCommand = function() {
                        return new I(e, !0, !1)
                    }, this.showTotalWinCommand = function() {
                        return new R(e, !0)
                    }, this.hideTotalWinCommand = function() {
                        return new R(e, !1)
                    }, this.autoSpinDelayCommand = function() {
                        return new d
                    }, this.autoSpinStopCommand = function(t) {
                        return new g(e, !1, t)
                    }, this.checkIXFAutoSpinStopCommand = function() {
                        return new g(e, !0, y.b.AUTO)
                    }, this.decrementSpinsCommand = function(t) {
                        return new D(t, e)
                    }, this.updateFSCounterCommand = function(t) {
                        return new L(t, e)
                    }, this.updateFSTotalAwardCommand = function(t) {
                        return new G(t, e)
                    }, this.delayShowControlCommand = function(t, n) {
                        return new B(e, t, n)
                    }, this.endGameInactivityCommand = function() {
                        return new W
                    }
                }
        },
        87: function(e, t, n) {
            "use strict";
            n.d(t, "a", (function() {
                return y
            }));
            var o, r = n(20),
                i = n(1),
                a = n(54),
                s = n(108),
                p = n(78),
                l = n(12),
                c = n(71),
                u = n(93),
                f = n(94),
                d = (o = function(e, t) {
                    return (o = Object.setPrototypeOf || {
                            __proto__: []
                        }
                        instanceof Array && function(e, t) {
                            e.__proto__ = t
                        } || function(e, t) {
                            for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                        })(e, t)
                }, function(e, t) {
                    function n() {
                        this.constructor = e
                    }
                    o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
                }),
                y = function(e) {
                    function t(t, n) {
                        var o = new r.a(t, n),
                            s = new l.b,
                            p = new c.a(t, s, i.f.props),
                            d = {
                                controlActions: new u.a(s),
                                gameActions: new f.a(s)
                            };
                        return e.call(this, o, p, d, s, [a.a]) || this
                    }
                    return d(t, e), t.prototype.isInitializable = function() {
                        return 0 === this.dependencies.length && !s.a.getInstance().isEmptyObject(this.props.response)
                    }, t
                }(p.a)
        },
        93: function(e, t, n) {
            "use strict";
            n.d(t, "a", (function() {
                return c
            }));
            var o, r = n(0),
                i = n(1),
                a = n(17),
                s = (o = function(e, t) {
                    return (o = Object.setPrototypeOf || {
                            __proto__: []
                        }
                        instanceof Array && function(e, t) {
                            e.__proto__ = t
                        } || function(e, t) {
                            for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                        })(e, t)
                }, function(e, t) {
                    function n() {
                        this.constructor = e
                    }
                    o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
                }),
                p = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                l = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                c = function(e) {
                    function t() {
                        return null !== e && e.apply(this, arguments) || this
                    }
                    return s(t, e), t.prototype.setPatternsBet = function(e) {
                        this._data.patternsBet = e
                    }, t.prototype.setBetPerPattern = function(e) {
                        this._data.betPerPattern = e
                    }, t.prototype.setSpins = function(e) {
                        this._data.spins = e
                    }, t.prototype.setControlsEnabled = function(e) {
                        this._data.controlsEnabled = e
                    }, t.prototype.setSlamStopSettings = function(e) {
                        void 0 !== e.manualEnable && (this._data.slamStopManualEnabled = e.manualEnable), void 0 !== e.reelsAreaClickEnabled && (this._data.slamStopReelsAreaClickEnabled = e.reelsAreaClickEnabled)
                    }, t.prototype.setSlamStopFullyDisabled = function() {
                        this._data.slamStopFullyDisabled = !0
                    }, t.prototype.setSettingsShown = function(e) {
                        this._data.settingsShown = e
                    }, t.prototype.setAutoSpinOptions = function(e) {
                        this._data.autoSpinOptions = e
                    }, t.prototype.setMuteEnabled = function(e) {
                        this._data.muteEnabled = e, this.setMuteAllEnabled(e)
                    }, t.prototype.setMuteAllEnabled = function(e) {
                        i.k.updateValue(i.f.props.assetPack.charAt(0).toUpperCase() + i.f.props.assetPack.slice(1) + "Sound", e ? "Off" : "On")
                    }, t.prototype.setTagMuteEnabled = function(e, t) {
                        i.k.updateValue(i.f.props.assetPack.charAt(0).toUpperCase() + i.f.props.assetPack.slice(1) + e, t ? "Off" : "On")
                    }, t.prototype.setFsCount = function(e) {
                        this._data.fsCount = e
                    }, t.prototype.setReplaySpeed = function(e) {
                        this._data.replaySpeed = e
                    }, t.prototype.setReplayTurbo = function(e) {
                        this._data.replayTurbo = e
                    }, t.prototype.setGameReInit = function(e) {
                        this._data.gameReInit = e
                    }, p([r.b.bound, l("design:type", Function), l("design:paramtypes", [Number]), l("design:returntype", void 0)], t.prototype, "setPatternsBet", null), p([r.b.bound, l("design:type", Function), l("design:paramtypes", [Number]), l("design:returntype", void 0)], t.prototype, "setBetPerPattern", null), p([r.b.bound, l("design:type", Function), l("design:paramtypes", [Number]), l("design:returntype", void 0)], t.prototype, "setSpins", null), p([r.b.bound, l("design:type", Function), l("design:paramtypes", [Boolean]), l("design:returntype", void 0)], t.prototype, "setControlsEnabled", null), p([r.b.bound, l("design:type", Function), l("design:paramtypes", [Object]), l("design:returntype", void 0)], t.prototype, "setSlamStopSettings", null), p([r.b.bound, l("design:type", Function), l("design:paramtypes", []), l("design:returntype", void 0)], t.prototype, "setSlamStopFullyDisabled", null), p([r.b.bound, l("design:type", Function), l("design:paramtypes", [Number]), l("design:returntype", void 0)], t.prototype, "setSettingsShown", null), p([r.b.bound, l("design:type", Function), l("design:paramtypes", [Object]), l("design:returntype", void 0)], t.prototype, "setAutoSpinOptions", null), p([r.b.bound, l("design:type", Function), l("design:paramtypes", [Boolean]), l("design:returntype", void 0)], t.prototype, "setMuteEnabled", null), p([r.b.bound, l("design:type", Function), l("design:paramtypes", [Boolean]), l("design:returntype", void 0)], t.prototype, "setMuteAllEnabled", null), p([r.b.bound, l("design:type", Function), l("design:paramtypes", [String, Boolean]), l("design:returntype", void 0)], t.prototype, "setTagMuteEnabled", null), p([r.b.bound, l("design:type", Function), l("design:paramtypes", [Number]), l("design:returntype", void 0)], t.prototype, "setFsCount", null), p([r.b.bound, l("design:type", Function), l("design:paramtypes", [Number]), l("design:returntype", void 0)], t.prototype, "setReplaySpeed", null), p([r.b.bound, l("design:type", Function), l("design:paramtypes", [Boolean]), l("design:returntype", void 0)], t.prototype, "setReplayTurbo", null), p([r.b.bound, l("design:type", Function), l("design:paramtypes", [Boolean]), l("design:returntype", void 0)], t.prototype, "setGameReInit", null), t
                }(a.a)
        },
        94: function(e, t, n) {
            "use strict";
            n.d(t, "a", (function() {
                return l
            }));
            var o, r = n(17),
                i = n(0),
                a = (o = function(e, t) {
                    return (o = Object.setPrototypeOf || {
                            __proto__: []
                        }
                        instanceof Array && function(e, t) {
                            e.__proto__ = t
                        } || function(e, t) {
                            for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                        })(e, t)
                }, function(e, t) {
                    function n() {
                        this.constructor = e
                    }
                    o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
                }),
                s = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                p = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                l = function(e) {
                    function t() {
                        return null !== e && e.apply(this, arguments) || this
                    }
                    return a(t, e), t.prototype.setPickerInput = function(e) {
                        this._data.pickerInput = e
                    }, t.prototype.setReelSetState = function(e) {
                        this._data.reelSetState = e
                    }, t.prototype.setReelState = function(e, t) {
                        this._data.reelStates.set(e, t)
                    }, t.prototype.setReelDimensions = function(e) {
                        this._data.reelDimensions = e
                    }, t.prototype.setSkipped = function(e) {
                        this._data.skipped = e
                    }, t.prototype.setFreespinsIncrementTriggered = function(e) {
                        this._data.fsIncrementTriggered = e
                    }, t.prototype.setReelsStopping = function(e) {
                        this._data.reelsStopping = e
                    }, t.prototype.setAutoSpinStarted = function(e) {
                        this._data.autoSpinStarted = e
                    }, s([i.b.bound, p("design:type", Function), p("design:paramtypes", [Object]), p("design:returntype", void 0)], t.prototype, "setPickerInput", null), s([i.b.bound, p("design:type", Function), p("design:paramtypes", [Number]), p("design:returntype", void 0)], t.prototype, "setReelSetState", null), s([i.b.bound, p("design:type", Function), p("design:paramtypes", [String, Number]), p("design:returntype", void 0)], t.prototype, "setReelState", null), s([i.b.bound, p("design:type", Function), p("design:paramtypes", [Array]), p("design:returntype", void 0)], t.prototype, "setReelDimensions", null), s([i.b.bound, p("design:type", Function), p("design:paramtypes", [Boolean]), p("design:returntype", void 0)], t.prototype, "setSkipped", null), s([i.b.bound, p("design:type", Function), p("design:paramtypes", [Boolean]), p("design:returntype", void 0)], t.prototype, "setFreespinsIncrementTriggered", null), s([i.b.bound, p("design:type", Function), p("design:paramtypes", [Boolean]), p("design:returntype", void 0)], t.prototype, "setReelsStopping", null), s([i.b.bound, p("design:type", Function), p("design:paramtypes", [Boolean]), p("design:returntype", void 0)], t.prototype, "setAutoSpinStarted", null), t
                }(r.a)
        },
        96: function(e, t, n) {
            "use strict";
            n.d(t, "a", (function() {
                return a
            }));
            var o = n(0),
                r = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                i = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                a = function() {
                    function e(e, t) {
                        this._data = e, this._parent = t
                    }
                    return Object.defineProperty(e.prototype, "win", {
                        get: function() {
                            return this._data.win
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "bonusWin", {
                        get: function() {
                            return this._data.bonusWin
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "balance", {
                        get: function() {
                            return this._parent.balance
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "playMode", {
                        get: function() {
                            return this._parent.playMode
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "promoFreeSpinCount", {
                        get: function() {
                            return this._parent.promoFreeSpinCount
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "betPerPattern", {
                        get: function() {
                            return this._parent.betPerPattern
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "patternsBet", {
                        get: function() {
                            return this._parent.patternsBet
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "denomination", {
                        get: function() {
                            return this._parent.paytable.denominationList
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "steps", {
                        get: function() {
                            return this._parent.paytable.autoSpinInfo
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "betSteps", {
                        get: function() {
                            return this._parent.betSteps
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "betStepIndex", {
                        get: function() {
                            return this.betSteps.indexOf(this.betPerPattern) >= 0 ? this.betSteps.indexOf(this.betPerPattern) : 0
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "patternSteps", {
                        get: function() {
                            return this._parent.patternSteps
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "patternStepIndex", {
                        get: function() {
                            return this.patternSteps.indexOf(this.patternsBet) >= 0 ? this.patternSteps.indexOf(this.patternsBet) : 0
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "currency", {
                        get: function() {
                            return this._parent.currency
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "spins", {
                        get: function() {
                            return this._parent.spins
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "skipped", {
                        get: function() {
                            return this._parent.skipped
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "count", {
                        get: function() {
                            return this._parent.fsCountLocal
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "countDown", {
                        get: function() {
                            return this._parent.fsCountDown
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "totalAwarded", {
                        get: function() {
                            return this._parent.fsTotalAwarded
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "awarded", {
                        get: function() {
                            return this._parent.fsAwarded
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "incrementTriggered", {
                        get: function() {
                            return this._parent.fsIncrementTriggered
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "autoSpinOptions", {
                        get: function() {
                            return this._parent.autoSpinOptions
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "autoSpinDialogOpened", {
                        get: function() {
                            return this._data.autoSpinDialogOpened
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(e.prototype, "stopAutoSpinFromIXF", {
                        get: function() {
                            return this._data.stopAutoSpinFromIXF
                        },
                        enumerable: !0,
                        configurable: !0
                    }), r([o.d, i("design:type", Number), i("design:paramtypes", [])], e.prototype, "win", null), r([o.d, i("design:type", Number), i("design:paramtypes", [])], e.prototype, "bonusWin", null), r([o.d, i("design:type", Object), i("design:paramtypes", [])], e.prototype, "balance", null), r([o.d, i("design:type", String), i("design:paramtypes", [])], e.prototype, "playMode", null), r([o.d, i("design:type", Number), i("design:paramtypes", [])], e.prototype, "promoFreeSpinCount", null), r([o.d, i("design:type", Number), i("design:paramtypes", [])], e.prototype, "betPerPattern", null), r([o.d, i("design:type", Number), i("design:paramtypes", [])], e.prototype, "patternsBet", null), r([o.d, i("design:type", Array), i("design:paramtypes", [])], e.prototype, "denomination", null), r([o.d, i("design:type", Object), i("design:paramtypes", [])], e.prototype, "steps", null), r([o.d, i("design:type", Array), i("design:paramtypes", [])], e.prototype, "betSteps", null), r([o.d, i("design:type", Number), i("design:paramtypes", [])], e.prototype, "betStepIndex", null), r([o.d, i("design:type", Array), i("design:paramtypes", [])], e.prototype, "patternSteps", null), r([o.d, i("design:type", Number), i("design:paramtypes", [])], e.prototype, "patternStepIndex", null), r([o.d, i("design:type", Object), i("design:paramtypes", [])], e.prototype, "currency", null), r([o.d, i("design:type", Number), i("design:paramtypes", [])], e.prototype, "spins", null), r([o.d, i("design:type", Boolean), i("design:paramtypes", [])], e.prototype, "skipped", null), r([o.d, i("design:type", Number), i("design:paramtypes", [])], e.prototype, "count", null), r([o.d, i("design:type", Number), i("design:paramtypes", [])], e.prototype, "countDown", null), r([o.d, i("design:type", Number), i("design:paramtypes", [])], e.prototype, "totalAwarded", null), r([o.d, i("design:type", Number), i("design:paramtypes", [])], e.prototype, "awarded", null), r([o.d, i("design:type", Boolean), i("design:paramtypes", [])], e.prototype, "incrementTriggered", null), r([o.d, i("design:type", Object), i("design:paramtypes", [])], e.prototype, "autoSpinOptions", null), r([o.d, i("design:type", Boolean), i("design:paramtypes", [])], e.prototype, "autoSpinDialogOpened", null), r([o.d, i("design:type", Boolean), i("design:paramtypes", [])], e.prototype, "stopAutoSpinFromIXF", null), e
                }()
        },
        97: function(e, t, n) {
            "use strict";
            n.d(t, "a", (function() {
                return y
            }));
            var o, r = n(0),
                i = n(65),
                a = n(1),
                s = n(12),
                p = n(57),
                l = (o = function(e, t) {
                    return (o = Object.setPrototypeOf || {
                            __proto__: []
                        }
                        instanceof Array && function(e, t) {
                            e.__proto__ = t
                        } || function(e, t) {
                            for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                        })(e, t)
                }, function(e, t) {
                    function n() {
                        this.constructor = e
                    }
                    o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
                }),
                c = function(e, t, n, o) {
                    var r, i = arguments.length,
                        a = i < 3 ? t : null === o ? o = Object.getOwnPropertyDescriptor(t, n) : o;
                    if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) a = Reflect.decorate(e, t, n, o);
                    else
                        for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (a = (i < 3 ? r(a) : i > 3 ? r(t, n, a) : r(t, n)) || a);
                    return i > 3 && a && Object.defineProperty(t, n, a), a
                },
                u = function(e, t) {
                    if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t)
                },
                f = function(e, t, n, o) {
                    return new(n || (n = Promise))((function(r, i) {
                        function a(e) {
                            try {
                                p(o.next(e))
                            } catch (e) {
                                i(e)
                            }
                        }

                        function s(e) {
                            try {
                                p(o.throw(e))
                            } catch (e) {
                                i(e)
                            }
                        }

                        function p(e) {
                            var t;
                            e.done ? r(e.value) : (t = e.value, t instanceof n ? t : new n((function(e) {
                                e(t)
                            }))).then(a, s)
                        }
                        p((o = o.apply(e, t || [])).next())
                    }))
                },
                d = function(e, t) {
                    var n, o, r, i, a = {
                        label: 0,
                        sent: function() {
                            if (1 & r[0]) throw r[1];
                            return r[1]
                        },
                        trys: [],
                        ops: []
                    };
                    return i = {
                        next: s(0),
                        throw: s(1),
                        return: s(2)
                    }, "function" == typeof Symbol && (i[Symbol.iterator] = function() {
                        return this
                    }), i;

                    function s(i) {
                        return function(s) {
                            return function(i) {
                                if (n) throw new TypeError("Generator is already executing.");
                                for (; a;) try {
                                    if (n = 1, o && (r = 2 & i[0] ? o.return : i[0] ? o.throw || ((r = o.return) && r.call(o), 0) : o.next) && !(r = r.call(o, i[1])).done) return r;
                                    switch (o = 0, r && (i = [2 & i[0], r.value]), i[0]) {
                                        case 0:
                                        case 1:
                                            r = i;
                                            break;
                                        case 4:
                                            return a.label++, {
                                                value: i[1],
                                                done: !1
                                            };
                                        case 5:
                                            a.label++, o = i[1], i = [0];
                                            continue;
                                        case 7:
                                            i = a.ops.pop(), a.trys.pop();
                                            continue;
                                        default:
                                            if (!(r = a.trys, (r = r.length > 0 && r[r.length - 1]) || 6 !== i[0] && 2 !== i[0])) {
                                                a = 0;
                                                continue
                                            }
                                            if (3 === i[0] && (!r || i[1] > r[0] && i[1] < r[3])) {
                                                a.label = i[1];
                                                break
                                            }
                                            if (6 === i[0] && a.label < r[1]) {
                                                a.label = r[1], r = i;
                                                break
                                            }
                                            if (r && a.label < r[2]) {
                                                a.label = r[2], a.ops.push(i);
                                                break
                                            }
                                            r[2] && a.ops.pop(), a.trys.pop();
                                            continue
                                    }
                                    i = t.call(e, a)
                                } catch (e) {
                                    i = [6, e], o = 0
                                } finally {
                                    n = r = 0
                                }
                                if (5 & i[0]) throw i[1];
                                return {
                                    value: i[0] ? i[1] : void 0,
                                    done: !0
                                }
                            }([i, s])
                        }
                    }
                },
                y = function(e) {
                    function t(t, n) {
                        var o = e.call(this, t, [], "totalBetMeter", n) || this;
                        return o.backgroundButton = new i.a, o.backgroundButton.on("buttonup", (function() {
                            return o._parent.actions.setSettingsShown(s.a.BET)
                        }), o), o
                    }
                    return l(t, e), t.prototype.init = function() {
                        return f(this, void 0, void 0, (function() {
                            var t = this;
                            return d(this, (function(n) {
                                return e.prototype.init.call(this), Object(r.c)((function() {
                                    t.backgroundButton.enabled = t.enabled
                                })), [2]
                            }))
                        }))
                    }, t.prototype.createPreBuiltMap = function(t) {
                        return e.prototype.createPreBuiltMap.call(this, t).set(t + "Button", this.backgroundButton)
                    }, t.prototype.onIncrement = function() {
                        this._parent.actions.setBetPerPattern(this.steps[this.stepIndex + 1]), this.playIncrementAudio()
                    }, t.prototype.onDecrement = function() {
                        this._parent.actions.setBetPerPattern(this.steps[this.stepIndex - 1]), a.i.execute("onUiBetDown")
                    }, Object.defineProperty(t.prototype, "steps", {
                        get: function() {
                            return this._parent.props.betSteps
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(t.prototype, "stepIndex", {
                        get: function() {
                            return this._parent.props.betStepIndex >= 0 ? this._parent.props.betStepIndex : 0
                        },
                        enumerable: !0,
                        configurable: !0
                    }), Object.defineProperty(t.prototype, "value", {
                        get: function() {
                            return this.steps[this.stepIndex] * this._parent.props.patternsBet
                        },
                        enumerable: !0,
                        configurable: !0
                    }), t.prototype.playIncrementAudio = function() {
                        this.stepIndex === this.steps.length - 1 ? a.i.execute("onUiBetMax") : a.i.execute("onUiBetUp")
                    }, Object.defineProperty(t.prototype, "textValue", {
                        get: function() {
                            return this.value > 0 && this._parent.props.denomination.length > 0 ? a.c.format(this.value, this._parent.props.denomination[0].value) : ""
                        },
                        enumerable: !0,
                        configurable: !0
                    }), c([r.d, u("design:type", Array), u("design:paramtypes", [])], t.prototype, "steps", null), c([r.d, u("design:type", Number), u("design:paramtypes", [])], t.prototype, "stepIndex", null), c([r.d, u("design:type", Number), u("design:paramtypes", [])], t.prototype, "value", null), c([r.d, u("design:type", String), u("design:paramtypes", [])], t.prototype, "textValue", null), t
                }(p.a)
        },
        98: function(e, t, n) {
            "use strict";
            n.d(t, "a", (function() {
                return o
            }));
            var o = function() {
                this.reelSetConfig = new Map
            }
        },
        99: function(e, t, n) {
            "use strict";
            n.d(t, "a", (function() {
                return l
            }));
            var o, r = n(1),
                i = n(2),
                a = n(5),
                s = n(110),
                p = (o = function(e, t) {
                    return (o = Object.setPrototypeOf || {
                            __proto__: []
                        }
                        instanceof Array && function(e, t) {
                            e.__proto__ = t
                        } || function(e, t) {
                            for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n])
                        })(e, t)
                }, function(e, t) {
                    function n() {
                        this.constructor = e
                    }
                    o(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n)
                }),
                l = function(e) {
                    function t(t, n, o) {
                        var r = e.call(this, t) || this;
                        return r._bonusCount = 0, r._bonusReel = [], r._isAnticipation = !1, r._wasAnticipationStarted = !1, r._bonusSymbol = "", r._bonusSymbol = n, r._bonusSymbolIndices = o, r
                    }
                    return p(t, e), t.prototype.setReelStopProperty = function(t, n) {
                        e.prototype.setReelStopProperty.call(this, t, n), this.handleAnticipation(t, n)
                    }, t.prototype.onReelStopTick = function(e) {
                        var t = 0;
                        t = this._isAnticipation ? e.props.anticipationDelay + e.props.stopDelay : e.props.stopDelay, this.reelStopDelayReached(e, t) && (i.a.gameActions.setReelState(e.props.name, a.a.STOPPING), e.setState(a.a.STOPPING))
                    }, t.prototype.handleReelStopping = function(t) {
                        e.prototype.handleReelStopping.call(this, t), this._bonusReel[t] && (this._bonusCount++, Array.isArray(this._bonusSymbolIndices) ? (this._bonusReel[t] = this._bonusSymbolIndices.indexOf(t) === this._bonusCount - 1, !this._isAnticipation && this._bonusReel[t] && this._bonusCount >= this._bonusSymbolIndices.length - 1 && (this._isAnticipation = !0)) : "number" == typeof this._bonusSymbolIndices && (this._bonusReel[t] = t <= this.reelSetComponent.reelComponents.length - this._bonusSymbolIndices || this._bonusCount + (this.reelSetComponent.reelComponents.length - 1 - t) === this._bonusSymbolIndices, !this._isAnticipation && this._bonusReel[t] && this._bonusCount >= this._bonusSymbolIndices - 1 && (this._isAnticipation = !0)))
                    }, t.prototype.handleReelStop = function(t) {
                        e.prototype.handleReelStop.call(this, t), this._bonusReel[t] ? this.playBonusSymbolLand(t) : this.playSymbolLand(t), this._isAnticipation && ("number" == typeof this._bonusSymbolIndices && t + 1 >= this._bonusSymbolIndices - 1 && t <= this.reelSetComponent.reelComponents.length - this._bonusSymbolIndices - 1 || Array.isArray(this._bonusSymbolIndices) && this._bonusSymbolIndices.indexOf(t + 1) + 1 === this._bonusSymbolIndices.length) && (this._wasAnticipationStarted || (this.playAnticipationAudio(), this._wasAnticipationStarted = !0), this.setReelSpeedUp(t + 1), this.playAnticipationEndAudio(t))
                    }, t.prototype.handleAnticipation = function(e, t) {
                        var n = this;
                        this._bonusReel[t] = !1, e.newReelCellComponents.forEach((function(e) {
                            void 0 !== e.cellDef && (e.cellDef.text === n._bonusSymbol && (n._bonusReel[t] = !0))
                        }))
                    }, t.prototype.playAnticipationEndAudio = function(e) {
                        var t = this.reelSetComponent.reelComponents[e + 1];
                        (t.props.stopDelay < 3e3 && t.props.anticipationDelay < 3e3 || "number" == typeof this._bonusSymbolIndices && e + 1 === this.reelSetComponent.reelComponents.length - this._bonusSymbolIndices - 1 || Array.isArray(this._bonusSymbolIndices) && this._bonusSymbolIndices.indexOf(e + 1) + 1 === this._bonusSymbolIndices.length) && r.i.execute("onBonusAnticipationEnd")
                    }, t.prototype.resetCommand = function() {
                        e.prototype.resetCommand.call(this), this._bonusReel.length = 0, this._bonusCount = 0, this._wasAnticipationStarted = !1, this.resetReelSpeed()
                    }, t.prototype.setReelSpeedUp = function(e) {
                        if (null !== this.reelSetComponent.props.reelSetConfigData && this.reelSetComponent.props.reelSetConfigData.has(this.reelSetComponent.props.reelSetName)) {
                            var t = this.reelSetComponent.props.reelSetConfigData.get(this.reelSetComponent.props.reelSetName);
                            if (void 0 !== t) {
                                var n = t.reelsConfig.get("Reel" + e);
                                void 0 !== n && this.reelSetComponent.reelComponents[e].setSpeed(n.config.speedUp)
                            }
                        }
                    }, t.prototype.resetReelSpeed = function() {
                        var e = this;
                        if (null !== this.reelSetComponent.props.reelSetConfigData && this.reelSetComponent.props.reelSetConfigData.has(this.reelSetComponent.props.reelSetName)) {
                            var t = this.reelSetComponent.props.reelSetConfigData.get(this.reelSetComponent.props.reelSetName);
                            if (void 0 !== t) {
                                var n = 0;
                                t.reelsConfig.forEach((function(t) {
                                    n < e.reelSetComponent.reelComponents.length && (e.reelSetComponent.reelComponents[n].setSpeed(t.config.speed), n++)
                                }))
                            }
                        }
                    }, t.prototype.playSymbolLand = function(e) {}, t.prototype.playBonusSymbolLand = function(e) {
                        r.i.execute("onBonusSymbolLand")
                    }, t.prototype.playAnticipationAudio = function() {
                        r.i.execute("onBonusAnticipationStart")
                    }, t.COMMAND_NAME = "bonusReelStopCommand", t
                }(s.a)
        }
    }
]);