Transaction

27a1dfed696cf050efeb116d1e4948834ce2381be4e06d8bc41174681bfc050e

Summary

Block
125,243(1454k)
Date / Time
2024-01-14(2.4y ago)
Fee Rate(sat/vB)
1,000
Total Fee
0.55062000BTC

Technical Details

Version
1
Size(vB)
55,062(219,964)
Raw Data(hex)
010000…00000
Weight(wu)
220,246

1 Input, 1 Output

Input Scripts

Input
0
witness
#0
utf84��KW��!՘������FP����<YK{;��mի�t�p��˿N%S~�E�U��E]�ջ�4��KW��!՘������FP����<YK{;��mի�t�p��˿N%S~�E�U��E]�ջ�
#1
utf8 �s"�ÒUR`�p!$��x�=`�#L��Dʏ��(�cordtext/javascriptM(function (e, t) { if (typeof exports == 'object' && typeof module == 'object') { module.exports = t(); } else if (typeof define == 'function' && define.amd) { define('site', [], t); } else if (typeof exports == 'object') { exports.site = t(); } else { e.site = t(); } })(window, function () { return (function (e) { function n(r) { if (t[r]) { return t[r].exports; } var i = (t[r] = { i: r, l: false, exports: {} }); e[r].call(i.exports, i, i.exports, n);M i.l = true; return i.exports; } var t = {}; n.m = e; n.c = t; n.d = function (e, t, r) { if (!n.o(e, t)) { Object.defineProperty(e, t, { enumerable: true, get: r }); } }; n.r = function (e) { if (typeof Symbol != 'undefined' && Symbol.toStringTag) { Object.defineProperty(e, Symbol.toStringTag, { value: 'Module' }); } Object.defineProperty(e, '__esModule', { value: true }); }; n.t = function (e, t) { if (1 & t) { M e = n(e); } if (8 & t) { return e; } if (4 & t && typeof e == 'object' && e && e.__esModule) { return e; } var r = Object.create(null); n.r(r); Object.defineProperty(r, 'default', { enumerable: true, value: e }); if (2 & t && typeof e != 'string') { for (var i in e) { n.d( r, i, function (t) { return e[t]; }.bind(null, i) ); } } retuMrn r; }; n.n = function (e) { var t = e && e.__esModule ? function () { return e.default; } : function () { return e; }; n.d(t, 'a', t); return t; }; n.o = function (e, t) { return Object.prototype.hasOwnProperty.call(e, t); }; n.p = ''; return n((n.s = 8)); })([ function (e, t, n) { 'use strict'; function l(e) { var t = -1; for (var n = 0; n < a.lengtMh; n++) { if (a[n].identifier === e) { t = n; break; } } return t; } function s(e, t) { var n = {}; var r = []; for (var i = 0; i < e.length; i++) { var o = e[i]; var s = t.base ? o[0] + t.base : o[0]; var c = n[s] || 0; var d = ''.concat(s, ' ').concat(c); n[s] = c + 1; var u = l(d); var p = { css: o[1], media: o[2], sourceMap: o[3] }; if (uM === -1) { a.push({ identifier: d, updater: m(p, t), references: 1 }); } else { a[u].references++; a[u].updater(p); } r.push(d); } return r; } function c(e) { var t = document.createElement('style'); var r = e.attributes || {}; if (r.nonce === void 0) { var i = n.nc; if (i) { r.nonce = i; } } Object.keys(r).forEach(function (e) { t.MsetAttribute(e, r[e]); }); if (typeof e.insert == 'function') { e.insert(t); } else { var a = o(e.insert || 'head'); if (!a) { throw new Error( "Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid." ); } a.appendChild(t); } return t; } function p(e, t, n, r) { var i = n ? '' : r.media ? '@mMedia '.concat(r.media, ' {').concat(r.css, '}') : r.css; if (e.styleSheet) { e.styleSheet.cssText = u(t, i); } else { var o = document.createTextNode(i); var a = e.childNodes; if (a[t]) { e.removeChild(a[t]); } if (a.length) { e.insertBefore(o, a[t]); } else { e.appendChild(o); } } } function h(e, t, n) { var r = n.css; var i = n.media; M var o = n.sourceMap; if (i) { e.setAttribute('media', i); } else { e.removeAttribute('media'); } if (o && btoa) { r += '\n/*# sourceMappingURL=data:application/json;base64,'.concat( btoa(unescape(encodeURIComponent(JSON.stringify(o)))), ' */' ); } if (e.styleSheet) { e.styleSheet.cssText = r; } else { while (e.firstChild) { e.removeChild(e.firstChild); M } e.appendChild(document.createTextNode(r)); } } function m(e, t) { var n; var r; var i; if (t.singleton) { var o = g++; n = f || (f = c(t)); r = p.bind(null, n, o, false); i = p.bind(null, n, o, true); } else { n = c(t); r = h.bind(null, n, t); i = function () { var e = n; if (e.parentNode === null) { return; } e.MparentNode.removeChild(e); }; } r(e); return function (t) { if (t) { if ( t.css === e.css && t.media === e.media && t.sourceMap === e.sourceMap ) { return; } r((e = t)); } else { i(); } }; } var r; var i = function () { if (r === void 0) { r = Boolean(window && document && document.all && !windoMw.atob); } return r; }; var o = (function () { var e = {}; return function (t) { if (e[t] === void 0) { var n = document.querySelector(t); if ( window.HTMLIFrameElement && n instanceof window.HTMLIFrameElement ) { try { n = n.contentDocument.head; } catch (e) { n = null; } } e[t] = n; } M return e[t]; }; })(); var a = []; var d = []; var u = function (e, t) { d[e] = t; return d.filter(Boolean).join('\n'); }; var f = null; var g = 0; e.exports = function (e, t) { if (!(t = t || {}).singleton && typeof t.singleton != 'boolean') { t.singleton = i(); } var n = s((e = e || []), t); return function (e) { e = e || []; if (Object.prototype.toString.call(e) === '[object ArMray]') { for (var r = 0; r < n.length; r++) { var i = l(n[r]); a[i].references--; } var o = s(e, t); for (var c = 0; c < n.length; c++) { var d = l(n[c]); if (a[d].references === 0) { a[d].updater(); a.splice(d, 1); } } n = o; } }; }; }, function (e, t, n) { 'use strict'; e.exports = function (e) { M var t = []; t.toString = function () { return this.map(function (t) { var n = (function (e, t) { var n = e[1] || ''; var r = e[3]; if (!r) { return n; } if (t && typeof btoa == 'function') { a = r; l = btoa(unescape(encodeURIComponent(JSON.stringify(a)))); s = 'sourceMappingURL=data:application/json;charset=utf-8;base64,'.concat( M l ); var i = '/*# '.concat(s, ' */'); var o = r.sources.map(function (e) { return '/*# sourceURL=' .concat(r.sourceRoot || '') .concat(e, ' */'); }); return [n].concat(o).concat([i]).join('\n'); } var a; var l; var s; return [n].join('\n'); })(t, e); if (t[2]) { M return '@media '.concat(t[2], ' {').concat(n, '}'); } else { return n; } }).join(''); }; t.i = function (e, n, r) { if (typeof e == 'string') { e = [[null, e, '']]; } var i = {}; if (r) { for (var o = 0; o < this.length; o++) { var a = this[o][0]; if (a != null) { i[a] = true; } } } for (vaMr l = 0; l < e.length; l++) { var s = [].concat(e[l]); if (!r || !i[s[0]]) { if (n) { if (s[2]) { s[2] = ''.concat(n, ' and ').concat(s[2]); } else { s[2] = n; } } t.push(s); } } }; return t; }; }, function (e, t, n) { var r = n(0); var i = n(3); if (typeof (i = i.__esModule ? i.default : i) == 'strMing') { i = [[e.i, i, '']]; } var o = { insert: 'head', singleton: false }; r(i, o); var a = i.locals ? i.locals : {}; e.exports = a; }, function (e, t, n) { var r = n(1); var i = n(4); var o = n(5); t = r(false); var a = i(o); t.push([ e.i, "/* All sizing currently done in em with the exception of command bar \r\n components (which are in px) */\r\n\r\nbody {\r\n background-color: #1E1E1E;\r\n font-family: 'RobotoM', Arial, Helvetica, sans-serif; /* Roboto */\r\n /*font-family: Arial, Helvetica, sans-serif; */\r\n font-size: 75%;\r\n margin: 5em 0 0 0;\r\n -webkit-user-select: none;\r\n -moz-user-select: -moz-none;\r\n -ms-user-select: none;\r\n user-select: none;\r\n}\r\n\r\nselect, button {\r\n font-family: 'Roboto', Arial, Helvetica, sans-serif; /* Roboto */\r\n /*font-family: Arial, Helvetica, sans-serif;*/\r\n}\r\n\r\nimg {\r\n -webkit-user-select: none;\r\n -khtml-user-select: none;\r\n -moz-user-select: nMone;\r\n -o-user-select: none;\r\n user-select: none;\r\n}\r\n\r\n.break-word {\r\n overflow-wrap: break-word;\r\n}\r\n\r\n.header {\r\n top: 0;\r\n position: fixed;\r\n background-color: #1B1B1B;\r\n color: #BBBBBB;\r\n padding: .50em;\r\n font-size: 1.25em;\r\n width: 100%;\r\n z-index: 1;\r\n text-align: center;\r\n display: block;\r\n box-shadow: 0 0 .54em 0 rgba(0, 0, 0, 0.4), 0 0 1.34em 0 rgba(0, 0, 0, 0.39);\r\n}\r\n\r\n.header__label {\r\n margin-right: .54em;\r\n vertical-align: middle;\r\nM}\r\n\r\n.header__logo {\r\n vertical-align: middle;\r\n width: 1.34m;\r\n height: 1.34em;\r\n}\r\n\r\n#js7800__target {\r\n position: relative;\r\n text-align: center;\r\n}\r\n\r\n.controls {\r\n display: flex;\r\n justify-content: center;\r\n margin-top: 1.8em;\r\n}\r\n\r\n.controls-button {\r\n width: 3em;\r\n height: 3em;\r\n margin: 0 .8em;\r\n background: #282828;\r\n border-radius: .75em;\r\n box-shadow: 0 .34em .67em 0 rgba(0, 0, 0, 0.4), 0 .5em 1.67em 0 rgba(0, 0, 0, 0.39);\r\n opacity: .8;\Mr\n}\r\n\r\n.controls-button:hover {\r\n opacity: 1;\r\n}\r\n\r\n.controls-button__img {\r\n width: 2em;\r\n height: 2em;\r\n padding: .5em .5em;\r\n margin: 0;\r\n cursor: pointer;\r\n opacity: .7;\r\n}\r\n\r\n.controls-button__img:hover {\r\n opacity: .9;\r\n}\r\n\r\n.controls-button__upload {\r\n display: inline-block;\r\n cursor: pointer;\r\n}\r\n\r\n.controls-button__upload>input[type=\"file\"] {\r\n display: none;\r\n}\r\n\r\n/* Custom Select */\r\n.cartselect {\r\n opacity: .8;\r\n position: relMative;\r\n display: flex;\r\n width: 25em;\r\n height: 3em;\r\n line-height: 3em;\r\n background: black;\r\n overflow: hidden;\r\n border-radius: .75em;\r\n box-shadow: 0 .34em .67em 0 rgba(0, 0, 0, 0.4), 0 .5em 1.67em 0 rgba(0, 0, 0, 0.39);\r\n margin: 0 .8em;\r\n}\r\n\r\n.cartselect:hover {\r\n opacity: 1;\r\n}\r\n\r\n/* Arrow */\r\n.cartselect::after {\r\n content: '\\25BC';\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n padding: 0 1em;\r\n color: #ce2f37;\r\n background: #282828;\r\n cuMrsor: pointer;\r\n pointer-events: none;\r\n}\r\n\r\n/* Reset Select */\r\n.cartselect select {\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n -ms-appearance: none;\r\n appearance: none;\r\n outline: 0;\r\n box-shadow: none;\r\n border: 0 !important;\r\n background: black;\r\n background-image: none;\r\n flex: 1;\r\n padding: 0 1em;\r\n color: #BBBBBB;\r\n cursor: pointer;\r\n font-size: 1.2em;\r\n}\r\n\r\n/* Remove IE arrow */\r\n.cartselect select::-ms-expand {\r\n display: none;\r\nM}\r\n\r\n.cartselect select optgroup {\r\n font-weight: bold;\r\n color: #777777;\r\n}\r\n\r\n.cartselect select option {\r\n font-weight: normal;\r\n color: #BBBBBB;\r\n}\r\n\r\n#content {\r\n clear: both;\r\n margin-top: 4.5em;\r\n}\r\n\r\n.drop__div {\r\n position: fixed;\r\n z-index: -999;\r\n left: 0;\r\n top: 0;\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n/* Command bar components (uses px) */\r\n\r\n.fsselect {\r\n opacity: .8;\r\n font-size: 11px;\r\n color: #fff;\r\n position: relative;\Mr\n display: flex;\r\n width: 190px;\r\n height: 20px;\r\n line-height: 20px;\r\n background: black;\r\n overflow: hidden;\r\n border-radius: 4px;\r\n border: 1px solid #666;\r\n margin: 0 15px 0 15px;\r\n display: none;\r\n}\r\n\r\n.fsselect:hover {\r\n opacity: 1;\r\n}\r\n\r\n/* Arrow */\r\n.fsselect::after {\r\n content: '\\25BC';\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n padding: 0 3px;\r\n font-size: 11px;\r\n color: #ce2f37;\r\n cursor: pointer;\r\n pointer-events: none;\r\n}\rM\n\r\n/* Reset Select */\r\n.fsselect select {\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n -ms-appearance: none;\r\n appearance: none;\r\n outline: 0;\r\n box-shadow: none;\r\n border: 0 !important;\r\n background: black;\r\n background-image: none;\r\n padding: 0 10px;\r\n color: #CCC;\r\n cursor: pointer;\r\n font-size: 11px;\r\n flex: 1;\r\n}\r\n\r\n/* Remove IE arrow */\r\n.fsselect select::-ms-expand {\r\n display: none;\r\n}\r\n\r\n.fsselect select optgroup {\r\n font-weight: Mbold;\r\n font-size: 12px;\r\n color: #777777;\r\n}\r\n\r\n.fsselect select option {\r\n font-weight: normal;\r\n font-size: 12px;\r\n color: #BBBBBB;\r\n}\r\n\r\n.modal {\r\n display: none;\r\n position: fixed;\r\n z-index: 1;\r\n padding-top: 7.5em;\r\n left: 0;\r\n top: 0;\r\n width: 100%;\r\n height: 100%;\r\n overflow: auto;\r\n background-color: rgb(0, 0, 0);\r\n background-color: rgba(0, 0, 0, 0.6);\r\n text-align: left;\r\n}\r\n\r\n.modal-content {\r\n position: relative;\r\n background-cMolor: #1A1A1A;\r\n margin: auto;\r\n border-left: 1em solid #202020;\r\n border-right: 1em solid #202020;\r\n width: 65em;\r\n box-shadow: 0 .34em .67em 0 rgba(0, 0, 0, 0.2), 0 .5em 1.67em 0 rgba(0, 0, 0, 0.19);\r\n -webkit-animation-name: animatetop;\r\n -webkit-animation-duration: 0.6s;\r\n animation-name: animatetop;\r\n animation-duration: 0.6s;\r\n border-radius: .67em;\r\n}\r\n\r\n@-webkit-keyframes animatetop {\r\n from {\r\n /* top: -25em; */\r\n opacity: 0\r\n }\r\n\r\n to {\r\n /* toMp: 0; */\r\n opacity: 1\r\n }\r\n}\r\n\r\n@keyframes animatetop {\r\n from {\r\n /* top: -25em; */\r\n opacity: 0\r\n }\r\n\r\n to {\r\n /* top: 0; */\r\n opacity: 1\r\n }\r\n}\r\n\r\n.modal-header {\r\n padding: .625em;\r\n background-color: #202020;\r\n color: #BBBBBB;\r\n font-size: 1.33em;\r\n font-weight: bold;\r\n\r\n}\r\n\r\n.modal-body {\r\n display: flex;\r\n align-items: stretch;\r\n}\r\n\r\n.modal-footer {\r\n padding: .834em .4167em;\r\n background-color: #202020;\r\n colorM: white;\r\n display: flex;\r\n justify-content: flex-end;\r\n}\r\n\r\n.tabset {\r\n display: flex;\r\n align-items: stretch;\r\n width: 100%;\r\n}\r\n\r\n.tab {\r\n padding: .667em;\r\n background-color: #171717;\r\n width: 10.5em;\r\n min-width: 10.5em;\r\n min-height: 35.67em;\r\n flex-grow: 0;\r\n}\r\n\r\n.tab button {\r\n opacity: .8;\r\n display: block;\r\n font-weight: bold;\r\n background-color: inherit;\r\n color: #CCCCCC;\r\n padding: .62em .923em;\r\n width: 100%;\r\n border: none;\r\nM outline: none;\r\n text-align: left;\r\n cursor: pointer;\r\n transition: 0.3s;\r\n font-size: 1.1em; /* Roboto */\r\n /* font-size: 1.0834em; */\r\n margin-bottom: .385em;\r\n border-radius: .308em;\r\n}\r\n\r\n.tab button:hover {\r\n opacity: 1;\r\n background-color: #333;\r\n box-shadow: 0 .308em .615em 0 rgba(0, 0, 0, 0.2), 0 .461em 1.54em 0 rgba(0, 0, 0, 0.19);\r\n}\r\n\r\n.tab button.active {\r\n opacity: 1;\r\n background-color: #8b2429;\r\n box-shadow: 0 .308em .615em 0 rgba(0, 0, 0, 0.2), 0 M.461em 1.54em 0 rgba(0, 0, 0, 0.19);\r\n}\r\n\r\n.tabcontent {\r\n padding: 0 .857em;\r\n border-left: none;\r\n display: none;\r\n color: #BBBBBB;\r\n flex-grow: 1;\r\n font-size: 1.167em;\r\n /* 14px */\r\n min-height: 35.67em;\r\n max-height: 35.67em;\r\n height: 35.67em;\r\n overflow: auto; \r\n scrollbar-width: thin; /* \"auto\" or \"thin\" */\r\n scrollbar-color: #8b2429 #171717; \r\n}\r\n\r\n.tabcontent::-webkit-scrollbar {\r\n width: .857em; /* width of the entire scMrollbar */\r\n}\r\n.tabcontent::-webkit-scrollbar-track {\r\n background: #171717; /* color of the tracking area */\r\n}\r\n.tabcontent::-webkit-scrollbar-thumb {\r\n background-color: #8b2429; /* color of the scroll thumb */\r\n border-radius: 1.43em; /* roundness of the scroll thumb */\r\n border: .214em solid #171717; /* creates padding around scroll thumb */\r\n}\r\n\r\n.tabcontent__title {\r\n font-weight: bold;\r\n font-size: 1.143em;\r\n text-align: center;\r\n line-height: 1em;\r\n M margin: 1em 0 1em 0;\r\n line-height: 1.125;\r\n}\r\n\r\n.tabcontent a, \r\n.tabcontent a:visited\r\n.tabcontent a:active {\r\n font-weight: bold;\r\n text-decoration: none;\r\n color: #BBB; \r\n}\r\n\r\n.tabcontent a:hover {\r\n color: #DDD; \r\n}\r\n\r\n.dialog-button {\r\n background-color: #ce2f37;\r\n border: none;\r\n color: white;\r\n text-align: center;\r\n font-size: 1.13em; /* Roboto */\r\n /* font-size: 1.1em; */\r\n margin: 0 .4167em;\r\n opacity: .6;\r\n transition: .3s;\r\n text-decoMration: none;\r\n cursor: pointer;\r\n padding: .25em .167em;\r\n min-width: 4.5em;\r\n border-radius: .25em;\r\n box-shadow: 0 .334em .667em 0 rgba(0, 0, 0, 0.2), 0 .5em 1.667em 0 rgba(0, 0, 0, 0.19);\r\n}\r\n\r\n.dialog-button:hover {\r\n opacity: 1\r\n}\r\n\r\np.center {\r\n text-align: center;\r\n}\r\n\r\n.about-label {\r\n margin-right: .571em;\r\n vertical-align: middle;\r\n}\r\n\r\n.about-logo {\r\n vertical-align: middle;\r\n width: 1.286em;\r\n height: 1.286em;\r\n}\r\n\r\n.about-atari {\r\n wMidth: 240px;\r\n height: 180px;\r\n margin: 20px auto;\r\n background: black;\r\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);\r\n border-radius: 12px;\r\n text-align: center;\r\n display: inline-block;\r\n position: relative;\r\n}\r\n\r\n.about-atari__v {\r\n padding: 15px;\r\n display: none;\r\n}\r\n\r\n.about-atari__top {\r\n position: absolute;\r\n /* width: 206px; */\r\n /* height: 146px; */\r\n width: 240px;\r\n height: 180px;\r\n z-index: 100;\r\n top: 0;\r\nM left: 0;\r\n opacity: 0;\r\n background-color: #555;\r\n /* border: 17px solid black; */\r\n border-radius: 12px;\r\n}\r\n\r\nb.callout {\r\n font-weight: bold;\r\n color: #ddd;\r\n}\r\n\r\n.controls-container {\r\n display: flex;\r\n overflow: hidden;\r\n justify-content: center;\r\n min-width: 600px;\r\n margin-top: 30px; /* Roboto */\r\n /* margin-top: 40px; */\r\n}\r\n\r\n.controller {\r\n width: 291px; \r\n min-width: 291px;\r\n color: #bbb; \r\n overflow: hidden;\r\n flex-grow: 1;\r\n flexM-shrink: 0;\r\n text-align: center;\r\n}\r\n\r\n.controller-keyboard {\r\n padding: 0 0 5px 5px;\r\n}\r\n\r\n.controller__title {\r\n text-align: center; \r\n padding-bottom: 10px;\r\n font-weight: bold;\r\n}\r\n\r\n.controller__inner {\r\n display: inline-block;\r\n position: relative;\r\n width: 291px;\r\n min-width: 291px;\r\n height: 151px; \r\n min-height: 151px; \r\n background-image: url(" + a + ');\r\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0M, 0, 0, 0.19);\r\n}\r\n\r\n.controller__keytarget {\r\n text-align: center;\r\n color: #ccc;\r\n background-color: #992329;\r\n position: absolute;\r\n width: 40px;\r\n height: 20px; \r\n line-height: 20px; \r\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);\r\n border-radius: 4px;\r\n overflow: hidden;\r\n font-size: 11px;\r\n}\r\n\r\n.controller__keytarget:hover {\r\n background-color: #ce2f37;\r\n color: white;\r\n}\r\n\r\n.controller__keytarget:focus {\r\n Mcolor: #292929;\r\n background-color :#ccc;\r\n}\r\n\r\n.console {\r\n padding-top:25px;\r\n}\r\n\r\n.console__inner {\r\n padding-top: 2px;\r\n display: flex;\r\n justify-content: center;\r\n}\r\n\r\n.console__button {\r\n display: inline-block;\r\n position: relative;\r\n text-align: center;\r\n font-size: 12px;\r\n font-weight: bold;\r\n width: 70px;\r\n height: 24px;\r\n line-height: 24px; \r\n border-radius: 5px;\r\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);\rM\n margin: 0 8px;\r\n}\r\n\r\n.console__button--up {\r\n border: 2px solid #464448;\r\n background-color: #333;\r\n}\r\n\r\n.console__button--down {\r\n border: 2px solid #464448;\r\n background-color: #b0abb6; \r\n color: #111;\r\n}\r\n\r\n.gamepad-focus {\r\n position: absolute;\r\n width: 10px;\r\n height: 10px;\r\n border-radius: 50%;\r\n display: none;\r\n background-color: #ccc;\r\n box-shadow: 0 0 2px #ccc;\r\n}\r\n\r\n.gamepad-grid {\r\n background-color: #222; \r\n width: 270px;\r\n grid-cMolumn-gap: 5px;\r\n grid-row-gap:5px;\r\n display: inline-grid; \r\n grid-template-columns: auto 1fr; \r\n padding: 10px;\r\n border-radius: 5px;\r\n margin: 0 0 25px 1px;\r\n font-size: 12px;\r\n}\r\n\r\n.gamepad-cell-name { \r\n overflow: hidden;\r\n text-align: left; \r\n font-weight:bold;\r\n color: #777;\r\n white-space: nowrap;\r\n}\r\n\r\n.gamepad-cell-value { \r\n text-align: center;\r\n overflow: hidden;\r\n text-align: left; \r\n white-space: nowrap;\r\n}\r\n\r\n.dialog-grid {\r\n mMargin: 2em 1em 1em 1em;\r\n grid-column-gap: 1em;\r\n grid-row-gap: 1.5em;\r\n display: grid;\r\n grid-template-columns: auto 1fr;\r\n padding: 1em;\r\n line-height: 1em;\r\n background-color: #222; \r\n border-radius: .4em;\r\n /* justify-items: center; */\r\n align-items: center; \r\n}\r\n\r\n.dialog-cell-label {\r\n overflow: hidden;\r\n text-align: left;\r\n font-weight: bold;\r\n color: #7C7C7C;\r\n white-space: nowrap;\r\n /* border: 1px solid red; */\r\n}\r\n\r\n.dialog-cell-content {\r\n Mtext-align: center;\r\n overflow: hidden;\r\n text-align: left;\r\n white-space: nowrap;\r\n /* border: 1px solid red; */\r\n}\r\n\r\n.dialog-switch { /* 14px */\r\n position: relative;\r\n display: inline-block;\r\n width: 2.429em; /*34px;*/\r\n height: 1.4286em; /*20px;*/\r\n}\r\n\r\n.dialog-switch input {\r\n opacity: 0;\r\n width: 0;\r\n height: 0;\r\n}\r\n\r\n.dialog-switch-slider {\r\n position: absolute;\r\n cursor: pointer;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n backgroMund-color: #666;\r\n -webkit-transition: .4s;\r\n transition: .4s;\r\n opacity: 0.6;\r\n border-radius: 2.4286em; /* 34px;*/\r\n}\r\n\r\n.dialog-switch-slider:hover {\r\n opacity: 1\r\n}\r\n\r\n.dialog-switch-slider:before {\r\n position: absolute;\r\n content: "";\r\n height: .857em; /*12px;*/\r\n width: .857em; /*12px;*/\r\n left: .2857em; /*4px;*/\r\n bottom: .2857em; /*4px;*/\r\n background-color: #DDD;\r\n border-radius: 50%;\r\n -webkit-transition: .4s;\r\n transition: .4s;\r\n}\r\n\r\ninput:chMecked + .dialog-switch-slider {\r\n background-color: #ce2f37;\r\n}\r\n\r\ninput:checked+.dialog-switch-slider:before {\r\n -webkit-transform: translateX(1em /*14px*/);\r\n -ms-transform: translateX(1em /*14px*/);\r\n transform: translateX(1em /*14px*/); \r\n}\r\n\r\n.dialog-select { /* 14px */\r\n opacity: .8;\r\n font-size: 1em; \r\n color: #fff;\r\n position: relative;\r\n display: flex;\r\n width: 14em; /*160px;*/\r\n height: 1.8em; /*20px;*/\r\n line-height: 1.8em; /*20px;*/\r\n background: blackM;\r\n overflow: hidden;\r\n border-radius: .4em; /*4px;*/\r\n border: 1px solid #666;\r\n}\r\n\r\n.dialog-select:hover {\r\n opacity: 1;\r\n}\r\n\r\n/* Arrow */\r\n.dialog-select::after {\r\n content: \'\\25BC\';\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n padding: 0 .3em; /*3px*/\r\n font-size: 1em;\r\n color: #ce2f37;\r\n cursor: pointer;\r\n pointer-events: none;\r\n}\r\n\r\n/* Reset Select */\r\n.dialog-select select {\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n -ms-apMpearance: none;\r\n appearance: none;\r\n outline: 0;\r\n box-shadow: none;\r\n border: 0 !important;\r\n background: black;\r\n background-image: none;\r\n padding: 0 .714em;\r\n color: #CCC;\r\n cursor: pointer;\r\n /* font-size: 11px; */\r\n font-size: .9em;\r\n flex: 1;\r\n}\r\n\r\n/* Remove IE arrow */\r\n.dialog-select select::-ms-expand {\r\n display: none;\r\n}\r\n\r\n.dialog-select select optgroup {\r\n font-weight: bold;\r\n font-size: 1em;\r\n color: #777777;\r\n}\r\n\r\n.dialog-select seMlect option {\r\n font-weight: normal;\r\n font-size: 1em;\r\n color: #BBBBBB;\r\n}\r\n\r\n.about P {\r\n text-align: center;\r\n line-height: 1.5em;\r\n padding: 0 3em 0 3em;\r\n}\r\n\r\n.instructs {\r\n font-size:1.15em;\r\n border-radius:1em;\r\n opacity:0.875;\r\n padding:1em;\r\n /* background-color: #1E1E1E; */\r\n background-color: #1F1F1F; \r\n /* background-color: #9c1919; */\r\n color:#BBB;\r\n box-shadow: 0 .27em .54em 0 rgba(0, 0, 0, 0.4), 0 .4em 1.34em 0 rgba(0, 0, 0, 0.39);\r\n max-wiMdth: 40em;\r\n}\r\n\r\n.instructs .ilink {\r\n font-weight: bold;\r\n color: #CCC; \r\n}\r\n\r\n.instructs .ilink:hover {\r\n color: #FFF; \r\n cursor: pointer;\r\n}\r\n\r\n.instructs img {\r\n width: 1.7em;\r\n height: 1.7em;\r\n margin: 0 .2em 0 .3em;\r\n opacity: .8;\r\n vertical-align:middle;\r\n cursor: pointer;\r\n}\r\n\r\n.instructs img:hover {\r\n opacity: 1;\r\n} \r\n\r\n.instructs div {\r\n vertical-align:middle;\r\n line-height:1.5em;\r\n}\r\n\r\n.instructs div.ihelp {\r\n margin-top:1em;M\r\n}\r\n\r\n', '', ]); e.exports = t; }, function (e, t, n) { 'use strict'; e.exports = function (e, t) { if (!t) { t = {}; } if (typeof (e = e && e.__esModule ? e.default : e) == 'string') { if (/^['"].*['"]$/.test(e)) { e = e.slice(1, -1); } if (t.hash) { e += t.hash; } if (/["'() \t\n]/.test(e) || t.needQuotes) { return '"'.concat( e.replacMe(/"/g, '\\"').replace(/\n/g, '\\n'), '"' ); } else { return e; } } else { return e; } }; }, function (e, t, n) { 'use strict'; n.r(t); t.default = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASQAAACXCAMAAACLDtaxAAAAA3NCSVQICAjb4U/gAAABgFBMVEX///8zMzMpKSkhISFXVlnVISk6OjpHRUlMTE9aWlopIicqKzBEQ0dmZmYhIilPTVFER0hCQkIAAABfXWFmZmY/PEHXKTFsbnFHRUncIjDVIjEQEBBcXGBKSUpUU1eMi40ICAk9PEAXExjVKSiPjpKGiM4wZGRlfXWFSUlJPT06Ehok6MzuZmZneISghJyBMTE+NlJTlJzLeKjKDhINsbnEhKSoHCRAZGiF+g4QpISQBCAdxcnN0d3nlMDEQFxl8fIAAEA3fKSoVISJ7e3tNUFERCgjWMTQIEhAQAgKhpKVbYGHkMjkyBwkhBQdcXGDgLTeLISR8Hh8qMjTWIiOSJzBWExASCAIHAARVWVruJzqFHSHGKC+2JzJ0HB5JFhBLEQsQGyEJEQkpBAemqavxKS/MMzPoJymlKSkgHxoXAAjkKDu8Mi5mFhdVFxlKSUrOKTQrNTUiBAHFJju8JSqrIiWfHSqTHyp1IChBDww6Dw0HFRsgAw1qIBxoGyJFBw0NDxa7soR8AAAAgHRSTlMA////////////////d///////d////4jM/////////////////////3f//////3f///////////////////////////////////////93/////////////////////////////////////M////3f//////////////////////9bPHqQAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAWdEVYdENyZWF0aW9uIFRpbWUAMDQvMTUvMjDSGnhzAAAAIHRFWHRTb2Z0d2FyZQBNYWNyb21lZGlhIEZpcmV3b3JrcyBNWLuRKiQAABeUSURBVHic7Z33Y9pW18ejK1loWRhV8ASDQGyKwQ8bvB3HK4kz2yTNXs1OmqRNutLxr7/nSgwJJCEwsXj79PtDEmNxw/34nHPPucunTmHN/ysbnepqfv60sqD4/tWgFhZOX+pgAkSCAvL6I82iBN/pSzojX0BRAnSC7ogYIfp/RkHBJwgMtqVLCwGfMJLM/6gSgiCcngdDCiwIXn+WYSVm5MdGC4Iyf+qSIvgMH4hHnLXgdREhBN8nW8lkRFMymW2R8KIokuJI9Vqy+br/ArzC06Pd/m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'; }, function (e, t, n) { var r = n(0); var i = n(7)M; if (typeof (i = i.__esModule ? i.default : i) == 'string') { i = [[e.i, i, '']]; } var o = { insert: 'head', singleton: false }; r(i, o); var a = i.locals ? i.locals : {}; e.exports = a; }, function (e, t, n) { (t = n(1)(false)).push([ e.i, '.message {\r\n visibility: hidden;\r\n color: #BBB;\r\n text-align: center;\r\n border-radius: .4em;\r\n padding: .54em;\r\n position: fixed;\r\n z-index: 2;\r\n left: 50%;\r\n M top: 7.34em;\r\n font-size: 1.25em; /* Roboto */\r\n /* font-size: 1.25em; */\r\n opacity: .98;\r\n box-shadow: 0 .27em .54em 0 rgba(0, 0, 0, 0.4), 0 .4em 1.34em 0 rgba(0, 0, 0, 0.39);\r\n word-wrap: break-word;\r\n }\r\n \r\n #snackbar {\r\n background-color: #222;\r\n min-width: 16.67em;\r\n max-width: 16.67em;\r\n margin-left: -8.335em;\r\n }\r\n \r\n #errormsg {\r\n background-color: #992329;\r\n cursor: pointer;\r\n min-width: 23.34em;\r\n max-width: 23.34em;\r\n M margin-left: -11.67em;\r\n color: #ddd;\r\n }\r\n \r\n #errormsg .closebtn {\r\n margin-left: .68em;\r\n color: #ddd;\r\n font-weight: bold;\r\n float: right;\r\n font-size: 1.48em;\r\n line-height: .9em;\r\n cursor: pointer;\r\n }\r\n \r\n #errormsg .closebtn:hover {\r\n color: #000;\r\n }\r\n \r\n #snackbar.show,\r\n #errormsg.show {\r\n visibility: visible;\r\n -webkit-animation: message--fadein 0.5;\r\n animation: message--fadein 0.5s;\r\n }\r\n \r\n #snackbarM.hide,\r\n #errormsg.hide {\r\n visibility: hidden;\r\n -webkit-animation: message--fadeout 0.5s;\r\n animation: message--fadeout 0.5s;\r\n transition: visibility 0.5s;\r\n }\r\n \r\n @-webkit-keyframes message--fadein {\r\n from {\r\n top: 4.67em;\r\n opacity: 0;\r\n }\r\n \r\n to {\r\n top: 7.34em;\r\n opacity: .98;\r\n }\r\n }\r\n \r\n @keyframes message--fadein {\r\n from {\r\n top: 4.67em;\r\n opacity: 0;\r\n }\r\n \r\n to {\r\n top: M7.34em;\r\n opacity: .98;\r\n }\r\n }\r\n \r\n @-webkit-keyframes message--fadeout {\r\n from {\r\n top: 7.34em;\r\n opacity: .98;\r\n }\r\n \r\n to {\r\n top: 4.67em;\r\n opacity: 0;\r\n }\r\n }\r\n \r\n @keyframes message--fadeout {\r\n from {\r\n top: 7.34em;\r\n opacity: .98;\r\n }\r\n \r\n to {\r\n top: 4.67em;\r\n opacity: 0;\r\n }\r\n }\r\n ', '', ]); e.exports = t; }, function (t, n, r) { 'useM strict'; function c(e, t) { this.topic = e; if (t) { this.onEvent = t; } } function d(e) { if (s) { var t = new s.Listener(); t.getTopic = function () { return e.getTopic(); }; t.onEvent = function (t) { e.onEvent(t); }; s.addListener(t); } else { var n = e.getTopic(); var r = l[n]; if (!r) { r = []; l[n] = r; M } r.push(e); } } function u(e, t) { if (s) { s.fireEvent(e, t); } else { var n = l[e]; if (n) { for (var r = 0; r < n.length; r++) { n[r].onEvent(t); } } } } function h(e, t) { for (var n in t) { e[n] = t[n]; } } function w(e) { var t = e.toLowerCase(); var n = ''; if (g && (t.startsWith('http://') || t.MstartsWith('https://'))) { n = m + g + '?y='; } return n + e; } function v() { return m + g; } function A(e) { function n(e, t) { var n = 0; (function (e) { var t; for ( var n = (t = e.getElementsByTagName('optgroup')).length; n; n-- ) { e.removeChild(t[n - 1]); } for (n = e.options.length; n; n--) { e.Moptions[n - 1].parentNode.removeChild(e.options[n - 1]); } })(e); var r = document.createElement('option'); r.text = 'Select Atari 7800 Cartridge...'; r.disabled = true; r.selected = true; e.appendChild(r); (function e(t, r) { n++; try { var i = r.files; for (var o = 0; o < i.length; o++) { var a = i[o]; var l = document.createElement('option'); M l.text = a.name; l.value = a.path; t.appendChild(l); } if (n < 2) { var s = r.folders; for (o = 0; o < s.length; o++) { var c = s[o]; if (c.name && (c.path || c.children)) { var d = document.createElement('optgroup'); d.setAttribute('label', c.name); t.appendChild(d); e(d, c); } M } } } finally { n--; } })(e, t); } function r(t, i) { function o(e, t) { if (t.indexOf('//') == -1) { return e + '/' + t; } else { return t; } } function a(e, t, n, i) { var a = t.pathPrefix; if (!a) { var l = n ? n.lastIndexOf('/') : -1; a = l == -1 ? '' : n.substring(0, l); M } var s = []; var c = t.files; if (c) { for (var d = 0; d < c.length; d++) { var u = c[d]; if (u.path && u.name) { var p = c[d]; p.path = o(a, c[d].path); s.push(p); } } } i.files = s; var h = []; var f = t.folders; if (f) { for (d = 0; d < f.length; d++) { iMf (f[d].children) { var g = f[d]; h.push(g); new r(e, g).fromList(f[d].children, a + '/'); } else if (f[d].path) { g = f[d]; h.push(g); g.path = o(a, f[d].path); new r(e, g).fromUrl(g.path); } } } i.folders = h; } function l() { t.loadCount--; if (t.loadCount == 0) { M if (t.error) { y(t.errorMessage); } else { for (var r = 0; r < e.length; r++) { n(e[r], t.root); } u('romlistLoaded', null); } } } this.fromList = function (e, n) { t.loadCount++; a(t, e, n, i); l(); }; this.fromUrl = function (e) { t.loadCount++; var n = new XMLHttpRequest(); n.openM('GET', w(e)); n.onload = function () { try { if (n.status >= 300 || n.status < 200) { throw n.status + ': ' + n.statusText; } var r = JSON.parse(n.responseText); a(t, r, e, i); } catch (n) { t.error = true; t.errorMessage = e + ' (' + n + ')'; } l(); }; n.onerror = function () { y( M'Error attempting to read cartridge list.<br>(See console log for details)' ); }; n.send(); }; } function i(e, t) { var n = { loadCount: 0, error: false, errorMessage: '', root: {} }; if (t) { new r(n, n.root).fromUrl(e); } else { try { var i = JSON.parse(e); new r(n, n.root).fromList(i, null); } catch (e) { y(e); } } M } for (var t = 0; t < e.length; t++) { (function () { var n = e[t]; n.onchange = function () { var t = n.value; x(t, true); this.blur(); for (var r = 0; r < e.length; r++) { if (e[r] != n) { e[r].value = t; } } }; })(); } this.loadListFromJson = function (e) { i(e, false); }; this.loadListFrMomFile = function (e) { var t = e.name ? e.name.toLowerCase() : ''; var n = e.type ? e.type.toLowerCase() : ''; if (t.endsWith('.json') || n.includes('text') || n.includes('json')) { var r = new FileReader(); var i = this; r.onload = function (e) { i.loadListFromJson(e.target.result); }; r.readAsText(e); return true; } return false; }; this.loadListFromUrl = functioMn (e) { i(e, true); }; this.resetSelection = function () { for (var t = 0; t < e.length; t++) { e[t].selectedIndex = 0; } }; } function I(e, t) { var n = e == -1; if (e == E || n) { var r = 0; if (!n && t) { var i = Date.now() - _; if (i < t) { r = t - i; } } setTimeout(function () { if (n || e == E) { k.clasMsList.add('hide'); k.classList.remove('show'); } }, r); } } function D() { S.classList.add('hide'); S.classList.remove('show'); } function R(e, t, n, r, i) { var o = document.getElementById(e); o.className = 'controls-button'; if (i) { o.onclick = i; } var a = document.createElement('label'); o.appendChild(a); if (r) { a.setAttribute('tabindex', '0'); M a.onmousedown = function (e) { e.preventDefault(); }; if (i) { o.onkeydown = function (e) { var t = e.which; if (t === 13 || t === 32) { i(); } }; } } var l = document.createElement('img'); a.appendChild(l); l.className = 'controls-button__img'; l.setAttribute('draggable', 'false'); l.setAttribute('src', t); l.setAttribute('title', n)M; return { div: o, label: a, img: l }; } function z(e) { e.preventDefault(); var t = null; if (e.dataTransfer.items) { for (var n = 0; n < e.dataTransfer.items.length; n++) { var r = e.dataTransfer.items[n]; if (r.kind === 'file') { t = r.getAsFile(); if (L.loadListFromFile(t)) { t = null; } break; } if ( r.kind === 'string' && M (r.type.match('^text/uri-list') || r.type.match('^text/plain')) ) { r.getAsString(function (e) { G(e); }); } } } if (t) { Q(t); } } function V(e, t) { F[e] = { left: t.getLeft(), right: t.getRight(), up: t.getUp(), down: t.getDown(), b1: t.getButton1(), b2: t.getButton2(), }; } function q(e, t) M{ var n = F[e]; if (n != null) { for (var r in n) { var i = n[r]; switch (r) { case 'left': t.setLeft(i); case 'right': t.setRight(i); case 'up': t.setUp(i); case 'down': t.setDown(i); case 'b1': t.setButton1(i); case 'b2': t.setButton2(i); } } } } M function J() { if (W) { try { if (localStorage.getItem('prefs')) { F = JSON.parse(localStorage.getItem('prefs')); q('p1map', K.p1KeyMap); q('p2map', K.p2KeyMap); (function () { var e = F.consoleMap; if (e != null) { for (var t in e) { var n = e[t]; switch (t) { case 'pause': K.setPauseKey(n); M case 'select': K.setSelectKey(n); case 'reset': K.setResetKey(n); } } } })(); var e = F.displayFilter; if (e !== void 0) { Y.setFilterEnabled(e); } var t = F.displayRatio; if (t !== void 0) { Y.setScreenRatio(t); } var n = F.displaySMize; if (n !== void 0) { Y.setScreenSize(n); } var r = F.hsEnabled; if (r !== void 0) { P.setEnabled(r); } var i = F.hsGlobal; if (i !== void 0) { P.setGlobal(i); } var o = F.hsFallback; if (o !== void 0) { P.setLocalFallback(o); } var a = F.palette; if (a !== void 0) { M O.setPaletteIndex(a); } var l = F[N]; if (l !== void 0) { Y.setFullscreenMode(l); } var s = F.vsync; if (s !== void 0) { j.setVsyncEnabled(s); } var c = F.frameSkip; if (c !== void 0) { j.setSkipLevel(c); } var d = F.xmMode; if (d !== void 0) { H.SetXmMode(d); M} } } catch (e) { u('showError', 'An error occurred loading preferences: ' + e); F = {}; } } else { console.log('Unable to load preferences, local storage disabled.'); } } function Z() { if (W) { try { V('p1map', K.p1KeyMap); V('p2map', K.p2KeyMap); F.consoleMap = { pause: K.getPauseKey(), select: K.getSelectKey(), reset: K.getRMesetKey(), }; F.displayFilter = Y.isFilterEnabled(); F.displaySize = Y.getScreenSize(); F.displayRatio = Y.getScreenRatio(); F.hsEnabled = P.getEnabled(); F.hsGlobal = P.getGlobal(); F.hsFallback = P.isLocalFallback(); F.palette = O.getPaletteIndex(); F[N] = Y.getFullscreenMode(); F.vsync = j.isVsyncEnabled(); F.frameSkip = j.getSkipLevel(); F.xmMode = H.GetXmMode(); M localStorage.setItem('prefs', JSON.stringify(F)); } catch (e) { u('showError', 'An error occurred saving preferences: ' + e); } } else { console.log('Unable to save preferences, local storage disabled.'); } } function ge(e) { for (var t = 0; t < e.length; t++) { e[t] = 0; } var n = 'AABog6pVnAILDgIACx0LBAADBBEBDgARAx8AAAAAAAAAAAAAAAAAABE'; for (t = 0; t < 183; t++) { n += 'A'; } M n += 'B'; for (t = 0; t < 45; t++) { n += '/f39'; } be((n += '/f38'), e); } function me(e) { var t = ''; for (var n = 0; n < e.length; n++) { t += String.fromCharCode(e[n]); } return btoa(t); } function be(e, t) { var n = atob(e); for (var r = 0; r < n.length; r++) { t[r] = n.charCodeAt(r); } } function we() { Ae(); var e = new Date().getTime(); M var t = (performance && performance.now && 1e3 * performance.now()) || 0; se = 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (n) { var r = 16 * Math.random(); if (e > 0) { r = (e + r) % 16 | 0; e = Math.floor(e / 16); } else { r = (t + r) % 16 | 0; t = Math.floor(t / 16); } return (n === 'x' ? r : (3 & r) | 8).toString(16); }); ce = ee.Cartridge.GetDigest(); Mue = de; te.setHighScoreCallback(pe && (W || ue) ? oe : ie); } function ve(e, t) { console.log('Reading High Score SRAM from local storage.'); try { var n = (function () { var e = 'highScoreSRAM'; var t = true; if (W) { try { return localStorage.getItem(e); } catch (r) { n = "An error occurred attempting to load '" + e + "': " + r; if (t) { tMhrow n; } u('showError', n); } return null; } var n = "Unable to read '" + e + "', local storage disabled."; if (t) { throw n; } console.log(n); })(); if (n) { console.log('Found High Score SRAM in local storage.'); try { be(n, fe); } catch (e) { t('Error converting SRAM: ' + e); return;M } } else { console.log('Not able to find High Score SRAM in local storage.'); } e(fe); } catch (e) { t(e); } } function ye(e) { var t = function (t) { e(t); }; var n = function (t) { console.log(t); u('showError', t); e(null); }; if (ue) { (function (e, t) { console.log('Reading High Score SRAM from global storage.'); M Date.now(); var n = B('Loading global leaderboard...'); var r = new XMLHttpRequest(); r.open('GET', v() + '/load.php?d=' + ce); r.onload = function () { if (r.status == 200) { console.log('Successfully read global leaderboard for game'); try { be(r.responseText, fe); } catch (e) { t('Error converting SRAM: ' + e); return; } M e(fe); M(n, 1e3); } else if (r.status == 204) { var i = null; if (he) { ve( function (e) { i = e; ue = false; }, function () {} ); } var o = 'Global loaderboard not currently supported for this game.'; if (!ue) { o += '<br><bMr>Using local storage for high scores.'; } n = B(o); console.log(o); e(i); M(n, ue ? 1500 : 3e3); } else { t( 'Error reading global leaderboard (' + r.status + ': ' + r.statusText + ')' ); } }; r.onerror = function () { t( 'ErroMr reading global leaderboard.<br>(see console log for details)' ); }; r.send(); })(t, n); } else { ve(t, n); } } function xe() { console.log('Writing High Score SRAM to local storage.'); (function () { var e = 'highScoreSRAM'; var t = me(fe); var n = true; if (!W) { var r = "Unable to write '" + e + "', local storage disabled."; if (n) { Mthrow r; } console.log(r); return false; } try { localStorage.setItem(e, t); } catch (t) { r = "An error occurred attempting to save '" + e + "': " + t; if (n) { throw r; } u('showError', r); return false; } })(); } function Ae() { if (le != null) { clearTimeout(le); le = null; } if (ae) { M ae = 0; console.log('HSC Scores have changed, saving.'); try { if (ue) { (function () { console.log('Writing High Score SRAM to global storage.'); var t = new XMLHttpRequest(); t.open('POST', v() + '/save.php?sid=' + se + '&d=' + ce); t.onload = function () { if (t.status == 200) { console.log( 'Successfully saved global high scores for gameM' ); } else { console.log(e); u( 'showError', 'Error saving global high scores (' + t.status + ': ' + t.statusText + ')' ); } }; t.onerror = function () { u( 'showError', 'ErMror saving global high scores.<br>(see console log for details)' ); }; t.send(me(fe)); })(); } else { xe(); } } catch (e) { console.log(e); u('showError', e); } } else { console.log('HSC Scores have not changed, ignoring.'); } } function ke(e) { ee = e.js7800; te = ee.Main; ne = e.debug; ge(fe); M re = atob( 'data:;base64,qe8ggzSgGLGmkY+IEPmpAGCpBCCDNKAYsY+RpogQ+akBYKkCIIM0okSgAL0pEMWA0A+9bhDFgdAIvbMQyX/wAcjKEOeYoASRlKWn0BSgD5GUyJGUyJGUyJGUoAWp/5GUYCDcPfAxoBipBYW1ogKxptWtkBXQBojKEPQwDSDVPZgYaQXJGdAK8A4g1T2IxrXQ26W1oAXQBKn/oAWRlCBpN6IHoFMkgDAByLGUyR3QAqkhOOkhCgoKCsjKSLGUyR3wCGgYcZQ46SFIyMoQ3KASaJGUiMAPEPipAGCp/yCDNCAjNs4HEM4HECBpNyDYP6WL0AqpZaA9IBU3TAkxqUGkh9ACqU+FqCDeNqWH8AepdaA9IBU3oD2tBxAQBKk90AKpMSA9N6kAYKkB0AKpACCDNCAjNiDcPfCqoBOiAMixpp36F+jAGND1qQWFtaICsabVrZAW0AaIyhD0MA4g1T2YGGkFyRnQDUziMCDVMPYjGtdDayJiFtKAUohiGqsS08BCImKqxpqSqkabGqoqoTHsxpKqiArWtkaaIyhD4IOgwpbWoqqn0GGkMiBD6GGlQhZitBxDJAdASoAClj5GYyKWQkZjIpZGRmBAPqewYaRTKEPoYaTGqIEIyoAGxmCkcCgoKiBGYSMixmCkDGGpqasgRmKS0yJGmiGiRpqkBYKGcCYCBnGAg+TqpCoW3qR6Fs2AgAzKkl4aahJvohpyEnejohp6En2AgYDfGudANqemFuca60AWFuiAsOWCxmIGaqR2RmGAgDzKiAKAAqR+BnKkAhaqpH8AD8AUgOTKhmoGahLsgfDnJ8PADIPk6mDADTBgzpLsgYDepAy2CAskD8ANMTjOYSCDbNmioogAgJzLGt9BvqQqFtyB0OSmQyZDQLyB0OSlgyWDwWaGawAPQBMkf8BI46QGBmgiiAYaqogAoEE6Y8ASpINACqR+BmtBBoZrJGtAGpqrQAqn/ogGFqqIAGGkBySHwC8kg0BGY8A6pINAKMwAPQBKkf0AKpAIGaTA4zxrPQEaIAoZxJgIGc0AMg/DGpHoWzTF4yIPA6pLsgYDcg/DGhmskg0BTAA/ACkZiIoZ446QSBnjiQA0xNMskf8A2RmMihnhhpBIGeTE0yqQCBnJjQGaW0haoYaQWqqMAZ8BixpqSq5qqRpuiK0O/AAxAHqR2RmMjQ9WCiBIi9+heRpsoQ9yBpN2AgDzKll6IYhqCFoeiGooWjogCKqJGYqR+BnCA5MoS7IHw5yfDwAyD5OpgwA0wgNKS7ICQyxrfQR6kKhbcgdDkpkMmQ0B8gdDkpYMlg8DGhmjjpAYGaEDaY8ASpINACqR+BmtApoZoYaQHJIfALySDQCZjwBqkg0AKpAIGaTBY0xrPQEaIAoZxJgIGc0AMg/DGpHoWzTKYzIPA6pLsgYDcg/DGhmskg0BuRmIihnjjpAoGeoaAYaQGBoKGiGGkCgaJMozORmMkf8B/IxKjwGpGYoZ4YaQKBnqGgOOkBgaChojjpAoGiTKMzqQCBnIwoMEJjQB6kdkZjuKBBgjQcQeNjJAvASye/wDskE8Aqpf4U8qQCFGYUapZSNABCllY0BEKIAhpSElaATojy1gJGUyMoQ+KWUpJWFlsiEl62CAoW8qf+NggKgEbGUmYAAiBD4pYIpA4WppYsFhdALoA657zmZgACIEPdoqmioqTxIqStImEiKSK0HEMkC8AvJ7/AHyQTwAyCtOakAhaupaM0CENAcqYPNAxDQFamqzQQQ0A6pVc0FENAHqZzNBhDwNKWr5quq8NapaI0CEKmDjQMQqaqNBBCpVY0FEKmcjQYQIM8/rQcQye/wCskE8AYglTwgcDkggTqpAIWqokXKMGulqt34EBAHvfgQhaqGtqWA3SkQ0Oilgd1uENDhpYIp/N2zENDYhra9+BCFqopIrQcQyQLwFKkAnfgQokS9+BDFqhAD/vgQyhDzaKAAIEA6CiAsOiA9OiAsOiAsOiA9Oqk9oBEgMzqFpoSnYKwHEBAGhI5oaJhgwALQBakAhadgpralgJ0pEKWBMnW4QpYIp/J2zECChNaAYogKpAJGmiMoQ+qmakaaIqdqRpogQ6mCghqITvU8+kZaIyhD3mBDyoCK5LD7J/dACpZWRlogQ8qAfOK1LPu0oEJGWyDitTD7tKBA47SgQkZapAaAjIOc9pZWgKZGWqQAg5z2gLpGWIOk9qQygJyDnPaAsIOk9oCSpn5GWoCqpl5GWoC+pnZGWqYyklYSZIEA6oBmxhJGSiBD5qaaFkqAZsYaRkogQ+anAhZKgGLksPxhlqZGSiLksP5GSiBD4qdqklSBAOqAfuQgQkZKIEPhgbIwAqQCoqrGKEArAANAGqUCFubGKgaRIyOaksYqBpMjmpLGKgaRoIAo3xagw2WDI5qQ4KQ9lsoWyYCBAOqAAogCxkvD0EAYGudACKX+BpCAKN6WXgaTmpMixkoGk5qTI0N8gFTep8jjlsgipYaA9KBDwIGA3pZeFLKmHhTCpS4U8YCBgNyQoMPwkKBD8YKAAqVCFkqWVhZOxpshIsabIhKqqaCDWOoSsMoACRksiKkZLIpayRksipA6AAID06pKqxpoWtyLGmha7IsaaFr8iEqiC8N6kJoAAgPTqkqsAZ0LhgoACEq4Ssqf1IpYAQUmip/4Wx5rGlrTj5xz6FraWu+cg+ha6lr/nJPoWvsOalrRh5xz6FraWuecg+ha6lr3nJPoWvmEilsaSrGGkhwAjQBMkh8BLJIfAISKmAhaxo0AYkrDACqR2RksiEq2ioyMjIwBjQm6SrwAjQBKkhkZJgIPk6oAMg+T4g6D6gBiD5PiDnPmgpENAaqUuiKuSS8AWlkjjpC4WSIN8+oAQg3z5MzDupKqJL5JLw66WSGGkL0OSlkoWtoAMg8D6gBiDwPqAAqVaRmiADMqlghZIg8DogJDLGt9AQqQqFtyB8OSnAycDQE5gQLsaz0OWpHoWzoAMg8z5MmTgg+TqgAyD5PqlgxZLQAqlbhZIg8D4gfDnJ8ND58LupBaAAkZog8DqlkqSthJLJYPADTMg5TOs7////////////xvxw+P7APsZ+MOM7+xsY4wDbOfBh8EGzGMP7/OAAAAP8AOH7+fAx4ODA4eDAgcDmpBo2DAqkAjYICqf+NgQKpEY2AAqkGjYICqQCNgQKNgwKtgALJ/9ARpQwQDaUNEAmtggIpC8kL8OipSyBgN4U8YKl/0PaEuyB8OaS7YKWDyQLwGqWp0AqtgAIp8KQMTKU5rYACCgoKCqQNTKU5pqkgpjkp8KIAYGyEAKlLhTyi4KkAlUDo6KAEuSw9lUDo6OjoiBD0qTmFNGCpKsWS0AMgxD+pNcWS0AMgzz+pQMWS0AYglTxMfzupS8WS0PdMRjyAAfEBeekAGkwAAAD/PAr//8bG3MzAwObGGMzM/sbG7sDszMYY7jh8xjDGADgAAAD/EO4YwM4M7u4w7gwACkiYKqhoYBhlkkiYZZOoaGAgMzqFkoSTYIqota0Yea0Ala21rnmuAJWuta95rwCVr2CYSLWthbC1roWxta+FsiBFOiBFOqADIEc6IEU6aKhgFndyFaD/yMAE8BW5fTrRiDAEM8PIQCpGIyLl9OsAE0PapAIWtha6Fr6iiACBeOrGISCnwSkpKShhlrYWtpa5pAIWuIF46aCkPGGWtha2lrmkAha7IwATQ02BIKeBKSkqFsYopH6iKKcAYKioqBbGqaCkfYCBgNyB8OZgQ96nphbmFumD+xsDGwMDGxhjM2MDGzsb43MgOGMZs1mwwYAAAAAAA/yDmGGAE/gLGMO4GEKkIIGM8LIIC0AYgXTcsggJgqQiFuC2CAsW4YCAsOUhIIGM8aGggcTupAIUZhRqg6YS6xrrw5ca58PggLDvQ9yBxO0wxPCA9O/DQqQogMTvQ9GhoqQCFg4WpIHA5qYyklSBAOqBUuW8/kZKIEPipI+aThZKgQ7mDPsn90AKllZGSiBDyINg/qaSgPSA9N6kKID870PkgDzKpSyBAOqm2hZogJDLGt9AQqQqFtyB8OSkwyTDQGJgQGcaz0OWpHoWzoAMg8z6gBiDzPkzMO0hMOjhMezj/xvzAxvj4zv4YDPDA1t7Gzsb4PBjGMxtY4MDAAADwAEP981hg4OMwO3Bg4dhhIxo4wFak8haggLDvQA0xROyDbNsao0PHw56W8jYICojygE7GUlYDIyhD4rQAQhZStARCFlWhgIGA3SKWDyQLwCyQMEBytgALJ/9AVrYICKQNJA9AMIHw5yfDQBZgQAmhgaGhoaGhMRjwgcDkgrTmklanRIEA6oCi5RT+RkogQ+KmMhZKgIrljPsn90AKllZGWiBDyINg/qXygPSA9N6AJjCgQiLnMPZkIEIgQ96kAhampIIWoqYyFmKSVhJmiGiCJM6SVqYwgQDqgH7GSmQgQiBD4YGzIwMbAwMDGGAzQwO72xsbGzuAYxsbGODgYAAAAABj/IM4YDARs+MAM7sYMnQqWmPqPYQUGYQAGYQUGYQePYQUGYRwGYQUGYSMGYQUGYTcGYQUGYUsGYQUGYV8GYQUGYXMGYQUACWEFD2EFD2EFBmEOD2EFAIZhBQZhFQAPYQUIYQUPYQUPYQUGYQUGYQALYQUGYQcLYQUGYQ4PMYQUEYQUGYRUAD2EFD2EFD2EFBmEjD2EFD2EFBmEqC2EFBmE1C2EFBmFAC2EFBmFLAAAdEx0AHREdCIjK4P7Q+mClrdAGpa7QAqWvYIWzsZaiBEiYGGkUqGgYZbORlsrQ8WD///94zNzMwMDgxhgMyMDG5u7O7s7mfsbGxmxszAAAAAAM/xDueMbOPMDgzu7szMBg/REwAADRYP0YQAAAjGD9ZhwAAKZg/WYcAADaYP2AUAAAIl85MlNgYDc6UGBgPWIAADliAADaYP0VOgAA5WD9CyYAANFg/Rc+AACMYP0fTgAAOU4AAIxg/YMWAACpYP1XGB9/OUYAAMFg/VcYH385RgAAsmD9UQAffzlGAADKYP1ZcB9/OZYAANFg/ZMk3mD9fWDKYP0+dAAAgJaYQEIPoIYBECcA6AMAZAAACgAAAQAAsZIYaVCRkmDIyLGSOOlQEPQg+T6xkklA0OuxkglA0OX/EPhw+Pz+PMZ+fszAgsY4+Dj4fH7GxsbGxv4AAAAABP8AMODh8fBz+OP44OPgCDg0GEQATFAsAEwgODRIdHQ8LABgEER0iAgARExEIAwYEDwQREg4NAAsIGQQYDhQRHQATABEIHQcIBgcdEgIOEQQAFgcAEx0WDhQLAx0YDhQdCwgKBB0TDh0CCwQAESsTBwgSHQYADAQPBBESDg0ACwgZABMIDg0ACwsdBgAMBBINDhMHCA0GABEEHRgOFB0SFBEEKxgEEqa2qX+dsxCd+BBgokQgxj/KEPpgqQCFsoW5qYeFpKWXhaVg/////0ypOUwAMEwRMEwnMUwiMEzaMEwrMQ=='.split( ',' )[1] ); console.log('High score rom: ' + ee.md5(re)); d(new c('onCartridgeLoaded', we)); ie = new te.HighScoreCallback(); oe = new te.HighScoreCaMllback(); X(oe, { getRom: function () { return re; }, write: function (e, t) { (function (e, t) { var n = false; if (fe[e - 4096] != t) { fe[e - 4096] = t; n = true; } if (n && e >= 4413) { ae++; if (le == null) { le = setTimeout(function () { le = null; Ae(); }M, 2e3); } } if (ne && e >= 4413) { if (n) { console.log( 'HSC pending write: 0x' + e.toString(16) + ' = 0x' + t.toString(16) + ', ' + ae ); } else { console.log( 'HSC pending write ignored (no change): 0x' + e.toStringM(16) + ' = 0x' + t.toString(16) + ', ' + ae ); } } })(e, t); }, loadSram: function (e) { ye(e); }, }); if (ne) { document.addEventListener('keydown', function (e) { if (e.keyCode == 119) { console.log(me(fe)); } }); } } function Se(e) {M pe = e; } function Ce() { return pe; } function Ee() { return true; } function _e(e) { de = e; } function Ie() { return de; } function De() { return true; } function Be(e) { he = e; } function Me() { return he; } function Te() { return true; } function Re() { return ce; } function Le() { this.el = null; M} function Qe(e, t) { Le.call(this); this.title = t; this.text = e; } function ze(e) { Le.call(this); this.title = e; this.cb = null; } function Oe(e, t) { Ne.call(this, e, t); } function je(e) { Ue.call(this, e); } function Pe(e) { Fe.call(this); this.opts = e; this.div = null; this.width = null; } function He(e, t) { Fe.call(this); this.iMsReadOnly = !!t; this.title = e; this.modalEl = null; this.contentEl = null; this.bodyEl = null; this.headerEl = null; this.bodyEl = null; this.footerEl = null; this.ok = null; this.cancel = null; this.defaults = null; this.pauseButton = null; this.paused = false; var n = this; this.windowResizeFunc = function (e) { n.modalEl.style.paddingTop = (((window.innerHeight - n.contentEl.offMsetHeight) / 2) | 0) + 'px'; }; } function We() { Fe.call(this); this.tabs = []; this.defaultTab = null; } function Ve(e) { Fe.call(this); this.title = e; this.buttonEl = null; } function qe(e, t) { He.call(this, e, t); this.tabset = this.getTabSet(); } function Je() { Fe.call(this); } function Ze(e) { Je.call(this); this.label = e; } function Xe(e) M{ Je.call(this); this.content = e; } function $e() { Fe.call(this); this.cells = []; } function rt() { et.call(this, 'About'); this.top = null; this.wrapperEl = null; this.logoEl = null; this.vEl = null; this.iframe = null; this.timerId = null; this.played = false; var e = this; this.fClick = function (t) { e.showv(); t.preventDefault(); }; } M function mt(e, t) { Le.call(this); this.keys = null; this.left = e; this.top = t; this.value = 0; var n = this; this.keydownf = function (e) { n.setValue(e.keyCode); e.preventDefault(); e.stopPropagation(); }; } function bt(e) { Le.call(this); this.title = e; this.inner = null; } function wt(e, t) { Le.call(this); this.left = e; this.top = t; } M function vt(e, t) { bt.call(this, e); this.index = t; this.left = new wt(33, 38); this.right = new wt(73, 38); this.up = new wt(53, 18); this.down = new wt(53, 58); this.b1 = new wt(152, 102); this.b2 = new wt(218, 102); this.mapping = null; this.focus = [ this.left, this.right, this.up, this.down, this.b1, this.b2, ]; this.padId = null; this.padMaMpping = null; } function yt(e) { bt.call(this, e); this.up = new mt(38, -5); this.left = new mt(-7, 33); this.right = new mt(82, 33); this.down = new mt(38, 70); this.b1 = new mt(138, 133); this.b2 = new mt(204, 133); this.targets = [ this.up, this.left, this.right, this.down, this.b1, this.b2, ]; this.map = null; } function xt(e) { Le.call(this)M; this.title = e; } function At(e) { xt.call(this, e); this.target = new mt(15, 34); } function kt(e) { xt.call(this, e); } function St() { Le.call(this); this.pauseButton = this.createPauseButton('PAUSE'); this.selectButton = this.createSelectButton('SELECT'); this.resetButton = this.createResetButton('RESET'); this.buttons = [this.pauseButton, this.selectButton, this.resetButton]; this.kb = null; M } function Ct() { St.call(this); } function Et() { St.call(this); this.mapping = null; } function Rt() { it.call(this, 'Settings', false); } function Ft(e, t) { Qt.call(this, e); this.url = t; } function Pt() { Gt.call(this, 'Help', true); } function nn(e, t) { (function (e, t, n) { function r(e) { var r = null; var i = false; if (e.lengtMh == 1) { r = e[0]; } else if (e.length > 0) { for (var o = 0; o < e.length; o++) { var l = e[o]; var s = l.filename.toLowerCase(); if (s.endsWith('p.a78')) { r = l; i = true; } else { if (s.endsWith('.a78')) { r = l; break; } if (s.endsWith('.bin') && !i) { r = l; M } } } } if (r) { var c = new a.BlobWriter(); r.getData(c, t); } else { n('Unable to find valid ROM in zip file'); } } n = n || p; a.createReader( new a.BlobReader(e), function (e) { e.getEntries(r, n); }, function () { t(e); } ); })( e,M function (e) { var n = new FileReader(); n.readAsBinaryString(e); n.onloadend = function () { var e = n.result; var r = e.length; var i = new Array(r); for (var o = 0; o < r; o++) { i[o] = e.charCodeAt(o); } if (!t) { en.resetSelection(); } $t.Main.startEmulation(i); }; }, tn ); } M function an(e, t) { var n = e.toLowerCase(); var r = n.endsWith('.json') || n.indexOf('.json?') != -1; rn = Ht('Loading...'); if (!on) { d( (on = new c('onEmulationStarted', function () { Wt(rn, 750); })) ); } const i = function (e) { var n = (function (e) { var t = e.toLowerCase(); var n = ''; if (g && (t.startsWith('http://') || t.startsWith('https://'))) { M n = m + atob('Oi8vcHJveHkud2VicmNhZGUud29ya2Vycy5kZXY/'); } return n + e; })(e); if (!n) { throw i.status + ': ' + i.statusText; } var i = new XMLHttpRequest(); i.open('GET', n); i.responseType = 'blob'; i.onload = function () { try { if (i.status >= 300 || i.stats < 200) { throw i.status + ': ' + i.statusText; } if (en.loadListFMromFile(i.response) || r) { Wt(rn, 750); } else { nn(i.response, t); } } catch (t) { tn(e + ' (' + t + ')'); } }; i.onerror = function () { tn( 'An error occurred during the load attempt.<br>(see console log for details)', false ); }; i.send(); }; var o = new XMLHttpRequest(); o.open('GET', w(e)); M o.responseType = 'blob'; o.onload = function () { try { if (o.status >= 300 || o.stats < 200) { i(e); } else if (en.loadListFromFile(o.response) || r) { Wt(rn, 750); } else { nn(o.response, t); } } catch (t) { tn(e + ' (' + t + ')'); } }; o.onerror = function () { i(e); }; o.send(); } function ln(e) { var t = ($t = Me).Main; var n = $t.ControlsBar; (function () { var e = $t.Events; for (var t in ((s = e), l)) { var n = l[t]; for (var r = 0; r < n.length; r++) { d(n[r]); } } })(); var o = (function () { var e = $t.ControlsBar; var t = document.createElement('div'); var n = document.createElement('select'); t.appendChild(n); var r = new e.Component(); f(r, { M getClass: function () { return 'fsselect'; }, doCreateElement: function () { return t; }, }); e.getGroup(1).addChildAtIndex(2, r); return n; })(); var r = qt('debug'); Xt = !!r && ((r = r.toLowerCase()) === '1' || r == 'true'); t.setErrorHandler(tn); t.init('js7800__target', { debug: Xt }); var a = t.descriptionDiv; a.className = 'instructs'; a.inneMrHTML = '<div>Click<img id="ins_settings_img" src="' + n.cogsImgSrc + '"></img><span id="ins_settings" class="ilink">Settings</span> to view current keyboard mappings.</div>'; a.innerHTML += '<div class="ihelp">Click<img id="ins_help_img" src="' + n.infoImgSrc + '"></img><span id="ins_help" class="ilink">Help</span> for detailed usage instructions.</div>'; a.innerHTML += '<div class="ihelp">Load a cartridge using the drop-down menMu or buttons below (you can also drag and drop a local file or remote file link onto the emulator).</div>'; var p = document.getElementById('js7800__fullscreen-container'); d( new c('onHighScoreCartLoaded', function (e) { Zt = e; }) ); var h = n.leaderboardButton; h.onClick = function () { var e = 'leaderboard'; if (Zt) { e += '?d=' + Re(); } window.open(e, '_blank'); }; d( M new c('fullscreen', function (e) { h.getElement().style.display = e ? 'none' : 'block'; o.parentElement.style.display = e ? 'flex' : 'none'; }) ); var g = new Rt(); n.settingsButton.onClick = function () { g.show(); }; var m = new Pt(); n.helpButton.onClick = function () { m.show(); }; var b = function () { g.selectKeyboardTab(); n.settingsButton.onClick(); }; M var w = function () { n.helpButton.onClick(); }; document.getElementById('ins_settings').onclick = b; document.getElementById('ins_settings_img').onclick = b; document.getElementById('ins_help').onclick = w; document.getElementById('ins_help_img').onclick = w; en = new A([document.getElementById('cartselect__select'), o]); u('siteInit', { js7800: $t, romList: en, loadFromUrl: an, startEmulation: nn, M errorHandler: tn, debug: Xt, HighScore: i, }); p.appendChild(g.createElement()); p.appendChild(m.createElement()); d( new c('showError', function (e) { tn(e); }) ); d( new c('romlistLoaded', function () { var e = Ht('Succesfully loaded cartridge list.'); Wt(e, 1e3); }) ); J(); (function () { $t.Main; var e = qt('cartlist'); M if (!e) { e = 'https://bitordinals.io/content/b6c80b8c71623549c62640ff67a2ae0e699e7fd030480d843bf6a4437be99a05i0'; } en.loadListFromUrl(e); var t = Jt('cart'); if (t) { an(t); } })(); } r.r(n); var i = {}; r.r(i); r.d(i, 'SRAM_SIZE', function () { return $; }); r.d(i, 'generateDefaultSram', function () { return ge; }); r.d(i, 'sramToBase64', function () { M return me; }); r.d(i, 'base64toSram', function () { return be; }); r.d(i, 'setEnabled', function () { return Se; }); r.d(i, 'getEnabled', function () { return Ce; }); r.d(i, 'getEnabledDefault', function () { return Ee; }); r.d(i, 'getGlobal', function () { return Ie; }); r.d(i, 'setGlobal', function () { return _e; }); r.d(i, 'getGlobalDefault', function () { return De; M }); r.d(i, 'isLocalFallback', function () { return Me; }); r.d(i, 'setLocalFallback', function () { return Be; }); r.d(i, 'getLocalFallbackDefault', function () { return Te; }); r.d(i, 'getDigest', function () { return Re; }); var o = {}; (function (e) { function i() { this.crc = -1; } function o() {} function a(e, t) { var n = new ArrayBuffer(e); var r = newM Uint8Array(n); if (t) { r.set(t, 0); } return { buffer: n, array: r, view: new DataView(n) }; } function l() {} function s(e) { var t; var n = this; n.size = 0; n.init = function (r, i) { var o = new Blob([e], { type: 'text/plain' }); (t = new d(o)).init(function () { n.size = t.size; r(); }, i); }; n.readUint8Array = function M(e, n, r, i) { t.readUint8Array(e, n, r, i); }; } function c(t) { var n; var r = this; r.size = 0; r.init = function (e) { for (var i = t.length; t.charAt(i - 1) == '='; ) { i--; } n = t.indexOf(',') + 1; r.size = Math.floor(0.75 * (i - n)); e(); }; r.readUint8Array = function (r, i, o) { var s = a(i); var c = 4 * Math.floMor(r / 3); var d = 4 * Math.ceil((r + i) / 3); var u = e.atob(t.substring(c + n, d + n)); var p = r - 3 * Math.floor(c / 4); for (var l = p; l < p + i; l++) { s.array[l - p] = u.charCodeAt(l); } o(s.array); }; } function d(e) { var t = this; t.size = 0; t.init = function (n) { t.size = e.size; n(); }; t.readUint8Array = function (t,M n, r, i) { var o = new FileReader(); o.onload = function (e) { r(new Uint8Array(e.target.result)); }; o.onerror = i; try { o.readAsArrayBuffer( (function (e, t, n) { if (t < 0 || n < 0 || t + n > e.size) { throw new RangeError( 'offset:' + t + ', length:' + n + ', size:' + e.size ); } if (e.slice) M{ return e.slice(t, t + n); } else if (e.webkitSlice) { return e.webkitSlice(t, t + n); } else if (e.mozSlice) { return e.mozSlice(t, t + n); } else if (e.msSlice) { return e.msSlice(t, t + n); } else { return; } })(e, t, n) ); } catch (e) { i(e); } };M } function u() {} function p(e) { var n; this.init = function (e) { n = new Blob([], { type: 'text/plain' }); e(); }; this.writeUint8Array = function (e, r) { n = new Blob([n, t ? e : e.buffer], { type: 'text/plain' }); r(); }; this.getData = function (t, r) { var i = new FileReader(); i.onload = function (e) { t(e.target.result); }; M i.onerror = r; i.readAsText(n, e); }; } function h(t) { var n = ''; var r = ''; this.init = function (e) { n += 'data:' + (t || '') + ';base64,'; e(); }; this.writeUint8Array = function (t, i) { var a = r.length; var l = r; r = ''; for (var o = 0; o < 3 * Math.floor((a + t.length) / 3) - a; o++) { l += String.fromCharCode(t[o]); M } if (l.length > 2) { n += e.btoa(l); } else { r = l; } i(); }; this.getData = function (t) { t(n + e.btoa(r)); }; } function f(e) { var n; this.init = function (t) { n = new Blob([], { type: e }); t(); }; this.writeUint8Array = function (r, i) { n = new Blob([n, t ? r : r.buffer], { type: e }); M i(); }; this.getData = function (e) { e(n); }; } function g(e, t, n, r, i, o, a, l, s, c) { function g() { e.removeEventListener('message', m, false); l(u, p); } function m(t) { var n = t.data; var i = n.data; var l = n.error; if (l) { l.toString = function () { return 'Error: ' + this.message; }; M s(l); return; } if (n.sn === f) { switch ( (typeof n.codecTime == 'number' && (e.codecTime += n.codecTime), typeof n.crcTime == 'number' && (e.crcTime += n.crcTime), n.type) ) { case 'append': if (i) { u += i.length; r.writeUint8Array( i, function () { b(); M }, c ); } else { b(); } break; case 'flush': p = n.crc; if (i) { u += i.length; r.writeUint8Array( i, function () { g(); }, c ); } else { M g(); } break; case 'progress': if (a) { a(d + n.loaded, o); } break; case 'importScripts': case 'newTask': case 'echo': break; default: console.warn( 'zip.js:launchWorkerProcess: unknown message: ', n ); } M } } function b() { if ((d = 524288 * h) <= o) { n.readUint8Array( i + d, Math.min(524288, o - d), function (n) { if (a) { a(d, o); } var r = d === 0 ? t : { sn: f }; r.type = 'append'; r.data = n; try { e.postMessage(r, [n.buffer]); } catch (t) { M e.postMessage(r); } h++; }, s ); } else { e.postMessage({ sn: f, type: 'flush' }); } } var d; var p; var h = 0; var f = t.sn; var u = 0; e.addEventListener('message', m, false); b(); } function m(e, t, n, r, o, a, l, s, c, d) { var u; var p = 0; var h = 0M; var f = a === 'input'; var g = a === 'output'; var m = new i(); (function i() { var a; if ((u = 524288 * p) < o) { t.readUint8Array( r + u, Math.min(524288, o - u), function (t) { var r; try { r = e.append(t, function (e) { if (l) { l(u + e, o); } M}); } catch (e) { c(e); return; } if (r) { h += r.length; n.writeUint8Array( r, function () { p++; setTimeout(i, 1); }, d ); if (g) { m.append(r); } }M else { p++; setTimeout(i, 1); } if (f) { m.append(t); } if (l) { l(u, o); } }, c ); } else { try { a = e.flush(); } catch (e) { c(e); return; } if (a) { if (g) { M m.append(a); } h += a.length; n.writeUint8Array( a, function () { s(h, m.get()); }, d ); } else { s(h, m.get()); } } })(); } function b(t, n, r, i, a, l, s, c, d, u, p) { if (e.zip.useWebWorkers && s) { g( t, { sn: n, codecMClass: 'NOOP', crcType: 'input' }, r, i, a, l, d, c, u, p ); } else { m(new o(), r, i, a, l, 'input', d, c, u, p); } } function w(e) { var n; var r = ''; var i = [ '\xC7', '\xFC', '\xE9', '\xE2', '\xE4', '\xE0', '\xE5', '\MxE7', '\xEA', '\xEB', '\xE8', '\xEF', '\xEE', '\xEC', '\xC4', '\xC5', '\xC9', '\xE6', '\xC6', '\xF4', '\xF6', '\xF2', '\xFB', '\xF9', '\xFF', '\xD6', '\xDC', '\xF8', '\xA3', '\xD8', '\xD7', '\u0192', '\xE1', M'\xED', '\xF3', '\xFA', '\xF1', '\xD1', '\xAA', '\xBA', '\xBF', '\xAE', '\xAC', '\xBD', '\xBC', '\xA1', '\xAB', '\xBB', '_', '_', '_', '\xA6', '\xA6', '\xC1', '\xC2', '\xC0', '\xA9', '\xA6', '\xA6', '+', M '+', '\xA2', '\xA5', '+', '+', '-', '-', '+', '-', '+', '\xE3', '\xC3', '+', '+', '-', '-', '\xA6', '-', '+', '\xA4', '\xF0', '\xD0', '\xCA', '\xCB', '\xC8', 'i', '\xCD', '\xCE', M '\xCF', '+', '+', '_', '_', '\xA6', '\xCC', '_', '\xD3', '\xDF', '\xD4', '\xD2', '\xF5', '\xD5', '\xB5', '\xFE', '\xDE', '\xDA', '\xDB', '\xD9', '\xFD', '\xDD', '\xAF', '\xB4', '\xAD', '\xB1', '_', M '\xBE', '\xB6', '\xA7', '\xF7', '\xB8', '\xB0', '\xA8', '\xB7', '\xB9', '\xB3', '\xB2', '_', ' ', ]; for (var t = 0; t < e.length; t++) { r += (n = 255 & e.charCodeAt(t)) > 127 ? i[n - 128] : String.fromCharCode(n); } return r; } function v(e) { rMeturn decodeURIComponent(escape(e)); } function y(e) { var n = ''; for (var t = 0; t < e.length; t++) { n += String.fromCharCode(e[t]); } return n; } function x(e, t, n, r, i) { e.version = t.view.getUint16(n, true); e.bitFlag = t.view.getUint16(n + 2, true); e.compressionMethod = t.view.getUint16(n + 4, true); e.lastModDateRaw = t.view.getUint32(n + 6, true); e.lastModDate = (functiMon (e) { var t = (4294901760 & e) >> 16; var n = 65535 & e; try { return new Date( 1980 + ((65024 & t) >> 9), ((480 & t) >> 5) - 1, 31 & t, (63488 & n) >> 11, (2016 & n) >> 5, 2 * (31 & n), 0 ); } catch (e) {} })(e.lastModDateRaw); if ((1 & e.bitFlag) == 1) { i('File contains encrypted entry.'); M } else { if (r || (8 & e.bitFlag) != 8) { e.crc32 = t.view.getUint32(n + 10, true); e.compressedSize = t.view.getUint32(n + 14, true); e.uncompressedSize = t.view.getUint32(n + 18, true); } if ( e.compressedSize !== 4294967295 && e.uncompressedSize !== 4294967295 ) { e.filenameLength = t.view.getUint16(n + 22, true); e.extraFieldLength = t.view.getUint16(n + 24, trMue); } else { i('File is using Zip64 (4gb+ file size).'); } } } function A(t, i, o) { function s() {} var l = 0; s.prototype.getData = function (r, i, s, c) { function u(e, t) { if ( c && !(function (e) { var t = a(4); t.view.setUint32(0, e); return d.crc32 == t.view.getUint32(0); })(t) M ) { o('CRC failed.'); } else { r.getData(function (e) { i(e); }); } } function p(e) { o(e || 'Error while reading file data.'); } function h(e) { o(e || 'Error while writing file data.'); } var d = this; t.readUint8Array( d.offset, 30, function (i) { vMar f; var w = a(i.length, i); if (w.view.getUint32(0) == 1347093252) { x(d, w, 4, false, o); f = d.offset + 30 + d.filenameLength + d.extraFieldLength; r.init(function () { if (d.compressionMethod === 0) { b( d._worker, l++, t, r, f, d.compressedSiMze, c, u, s, p, h ); } else { (function (t, n, r, i, o, a, l, s, c, d, u) { var p = l ? 'output' : 'none'; if (e.zip.useWebWorkers) { g( t, { sn: n, codecClass: 'Inflater', crcType: p }, M r, i, o, a, c, s, d, u ); } else { m(new e.zip.Inflater(), r, i, o, a, p, c, s, d, u); } })( d._worker, l++, t, M r, f, d.compressedSize, c, u, s, p, h ); } }, h); } else { o(n); } }, p ); }; var c = { getEntries: function (e) { var i = this._worker; M (function (e) { function i(n, i) { t.readUint8Array( t.size - n, n, function (t) { for (var n = t.length - 22; n >= 0; n--) { if ( t[n] === 80 && t[n + 1] === 75 && t[n + 2] === 5 && t[n + 3] === 6 ) { e(new DataViewM(t.buffer, n, 22)); return; } } i(); }, function () { o(r); } ); } if (t.size < 22) { o(n); } else { i(22, function () { i(Math.min(65558, t.size), function () { o(n); }); M }); } })(function (l) { var c = l.getUint32(16, true); var d = l.getUint16(8, true); if (c < 0 || c >= t.size) { o(n); } else { t.readUint8Array( c, t.size - c, function (t) { var l; var c; var u; var p = 0; vaMr h = []; var f = a(t.length, t); for (var r = 0; r < d; r++) { (l = new s())._worker = i; if (f.view.getUint32(p) != 1347092738) { o(n); return; } x(l, f, p + 6, true, o); l.commentLength = f.view.getUint16(p + 32, true); l.directory = (16 & f.view.getUint8(p + 38)) == 16; M l.offset = f.view.getUint32(p + 42, true); c = y( f.array.subarray(p + 46, p + 46 + l.filenameLength) ); l.filename = (2048 & l.bitFlag) == 2048 ? v(c) : w(c); if ( !l.directory && l.filename.charAt(l.filename.length - 1) == '/' ) { l.directory = true; M} u = y( f.array.subarray( p + 46 + l.filenameLength + l.extraFieldLength, p + 46 + l.filenameLength + l.extraFieldLength + l.commentLength ) ); l.comment = (2048 & l.bitFlag) == 2048 ? v(u) : w(u); M h.push(l); p += 46 + l.filenameLength + l.extraFieldLength + l.commentLength; } e(h); }, function () { o(r); } ); } }); }, close: function (e) { if (this._worker) { M this._worker.terminate(); this._worker = null; } if (e) { e(); } }, _worker: null, }; if (e.zip.useWebWorkers) { _( 'inflater', function (e) { c._worker = e; i(c); }, function (e) { o(e); } ); } else { i(c); } } M function k(e) { return unescape(encodeURIComponent(e)); } function S(e) { var n = []; for (var t = 0; t < e.length; t++) { n.push(e.charCodeAt(t)); } return n; } function C(t, n, r, i) { function d(e) { r(e || 'Error while writing zip file.'); } function u(e) { r(e || 'Error while reading file data.'); } var o = {}; var l = []; M var s = 0; var c = 0; var p = { add: function (n, p, h, f, w) { function C(e, n) { var r = a(16); s += e || 0; r.view.setUint32(0, 1347094280); if (n !== void 0) { v.view.setUint32(10, n, true); r.view.setUint32(4, n, true); } if (p) { r.view.setUint32(8, e, true); v.view.setUint32(14, e, true); M r.view.setUint32(12, p.size, true); v.view.setUint32(18, p.size, true); } t.writeUint8Array( r.array, function () { s += 16; h(); }, d ); } function E() { w = w || {}; n = n.trim(); if (w.directory && n.charAt(n.length - 1) != '/') { n +M= '/'; } if (o.hasOwnProperty(n)) { r('File already exists.'); } else { y = S(k(n)); l.push(n); (function (e) { var r; x = w.lastModDate || new Date(); v = a(26); o[n] = { headerArray: v.array, directory: w.directory, filename: y, oMffset: s, comment: S(k(w.comment || '')), }; v.view.setUint32(0, 335546376); if (w.version) { v.view.setUint8(0, w.version); } if (!i && w.level !== 0 && !w.directory) { v.view.setUint16(4, 2048); } v.view.setUint16( 6, (((x.getHours() << 6) | x.getMinutes()) << 5) | M (x.getSeconds() / 2), true ); v.view.setUint16( 8, ((((x.getFullYear() - 1980) << 4) | (x.getMonth() + 1)) << 5) | x.getDate(), true ); v.view.setUint16(22, y.length, true); (r = a(30 + y.length)).view.setUint32(0, 1347093252); r.array.set(v.Marray, 4); r.array.set(y, 30); s += r.array.length; t.writeUint8Array(r.array, e, d); })(function () { if (p) { if (i || w.level === 0) { b(A, c++, p, t, 0, p.size, true, C, f, u, d); } else { (function (t, n, r, i, o, a, l, s, c) { if (e.zip.useWebWorkers) { g( M t, { sn: n, options: { level: o }, codecClass: 'Deflater', crcType: 'input', }, r, i, 0, r.size, l, a, s,M c ); } else { m( new e.zip.Deflater(), r, i, 0, r.size, 'input', l, a, s, c ); M } })(A, c++, p, t, w.level, C, f, u, d); } } else { C(); } }); } } var v; var y; var x; var A = this._worker; if (p) { p.init(E, u); } else { E(); } }, close: function (e) { M if (this._worker) { this._worker.terminate(); this._worker = null; } var i; var c = 0; var u = 0; for (var r = 0; r < l.length; r++) { c += 46 + (i = o[l[r]]).filename.length + i.comment.length; } var n = a(c + 22); for (r = 0; r < l.length; r++) { i = o[l[r]]; n.view.setUint32(u, 1347092738); n.view.setUinMt16(u + 4, 5120); n.array.set(i.headerArray, u + 6); n.view.setUint16(u + 32, i.comment.length, true); if (i.directory) { n.view.setUint8(u + 38, 16); } n.view.setUint32(u + 42, i.offset, true); n.array.set(i.filename, u + 46); n.array.set(i.comment, u + 46 + i.filename.length); u += 46 + i.filename.length + i.comment.length; } n.view.setUint32M(u, 1347093766); n.view.setUint16(u + 8, l.length, true); n.view.setUint16(u + 10, l.length, true); n.view.setUint32(u + 12, c, true); n.view.setUint32(u + 16, s, true); t.writeUint8Array( n.array, function () { t.getData(e); }, d ); }, _worker: null, }; if (e.zip.useWebWorkers) { _( M 'deflater', function (e) { p._worker = e; n(p); }, function (e) { r(e); } ); } else { n(p); } } function _(t, n, r) { function s(e) { l.terminate(); r(e); } if ( e.zip.workerScripts === null || e.zip.workerScriptsPath === null ) { var i; var oM; var a; if (e.zip.workerScripts) { i = e.zip.workerScripts[t]; if (!Array.isArray(i)) { r(new Error('zip.workerScripts.' + t + ' is not an array!')); return; } o = i; a = document.createElement('a'); i = o.map(function (e) { a.href = e; return a.href; }); } else { (i = E[t].slice(0))[0] = (e.zip.workerScriMptsPath || '') + i[0]; } var l = new Worker(i[0]); l.codecTime = l.crcTime = 0; l.postMessage({ type: 'importScripts', scripts: i.slice(1) }); l.addEventListener('message', function e(t) { var i = t.data; if (i.error) { l.terminate(); r(i.error); return; } if (i.type === 'importScripts') { l.removeEventListener('message', e); M l.removeEventListener('error', s); n(l); } }); l.addEventListener('error', s); } else { r( new Error( 'Either zip.workerScripts or zip.workerScriptsPath may be set, not both.' ) ); } } function I(e) { console.error(e); } var t; var n = 'File format is not recognized.'; var r = 'Error while reading zip file.'; M try { t = new Blob([new DataView(new ArrayBuffer(0))]).size === 0; } catch (e) {} i.prototype.append = function (e) { var t = 0 | this.crc; var n = this.table; var r = 0; for (var i = 0 | e.length; r < i; r++) { t = (t >>> 8) ^ n[255 & (t ^ e[r])]; } this.crc = t; }; i.prototype.get = function () { return ~this.crc; }; i.prototype.table = (function () { var t; M var n; var r = []; for (var e = 0; e < 256; e++) { n = e; for (t = 0; t < 8; t++) { if (1 & n) { n = (n >>> 1) ^ 3988292384; } else { n >>>= 1; } } r[e] = n; } return r; })(); o.prototype.append = function (e, t) { return e; }; o.prototype.flush = function () {}; s.prototype = new l(); s.protoMtype.constructor = s; c.prototype = new l(); c.prototype.constructor = c; d.prototype = new l(); d.prototype.constructor = d; u.prototype.getData = function (e) { e(this.data); }; p.prototype = new u(); p.prototype.constructor = p; h.prototype = new u(); h.prototype.constructor = h; f.prototype = new u(); f.prototype.constructor = f; var E = { deflater: ['z-worker.js', 'deflate.js'], M inflater: ['z-worker.js', 'inflate.js'], }; e.zip = { Reader: l, Writer: u, BlobReader: d, Data64URIReader: c, TextReader: s, BlobWriter: f, Data64URIWriter: h, TextWriter: p, createReader: function (e, t, n) { n = n || I; e.init(function () { A(e, t, n); }, n); }, createWriter: function (e, t, n, r) { n = n || I; r =M !!r; e.init(function () { C(e, t, n, r); }, n); }, useWebWorkers: true, workerScriptsPath: null, workerScripts: null, }; })(o); (function (e) { function s() { function d(e, t, i, o, a, l, d, u, p, h, f) { var g; var m; var y; var k; var D; var S = 0; var v = i; do { n[e[t + S]]++; M S++; v--; } while (v !== 0); if (n[0] == i) { d[0] = -1; u[0] = 0; return 0; } var A = u[0]; for (y = 1; y <= 15 && n[y] === 0; y++) {} var x = y; if (A < y) { A = y; } for (v = 15; v !== 0 && n[v] === 0; v--) {} var b = v; if (A > v) { A = v; } u[0] = A; for (var MI = 1 << y; y < v; y++, I <<= 1) { if ((I -= n[y]) < 0) { return -3; } } if ((I -= n[v]) < 0) { return -3; } n[v] += I; c[1] = y = 0; S = 1; for (var _ = 2; --v != 0; ) { c[_] = y += n[S]; _++; S++; } v = 0; S = 0; do { if ((y = e[t + S]) !== 0) { f[c[y]++] M= v; } S++; } while (++v < i); i = c[b]; c[0] = v = 0; S = 0; var w = -1; var E = -A; s[0] = 0; var C = 0; for (D = 0; x <= b; x++) { for (g = n[x]; g-- != 0; ) { while (x > E + A) { w++; D = (D = b - (E += A)) > A ? A : D; if ((m = 1 << (y = x - E)) > g + 1) { m -= g + 1; M _ = x; if (y < D) { while (++y < D && !((m <<= 1) <= n[++_])) { m -= n[_]; } } } D = 1 << y; if (h[0] + D > 1440) { return -3; } s[w] = C = h[0]; h[0] += D; if (w === 0) { d[0] = C; } else { c[wM] = v; r[0] = y; r[1] = A; y = v >>> (E - A); r[2] = C - s[w - 1] - y; p.set(r, 3 * (s[w - 1] + y)); } } r[1] = x - E; if (S >= i) { r[0] = 192; } else if (f[S] < o) { r[0] = f[S] < 256 ? 0 : 96; r[2] = f[S++]; } else { r[0] = l[f[S] - o] + 16 + 64; M r[2] = a[f[S++] - o]; } m = 1 << (x - E); for (y = v >>> E; y < D; y += m) { p.set(r, 3 * (C + y)); } for (y = 1 << (x - 1); (v & y) != 0; y >>>= 1) { v ^= y; } v ^= y; for (k = (1 << E) - 1; (v & k) != c[w]; ) { w--; k = (1 << (E -= A)) - 1; } } } M if (I !== 0 && b != 1) { return -5; } else { return 0; } } function u(i) { if (!e) { e = []; t = []; n = new Int32Array(16); r = []; s = new Int32Array(15); c = new Int32Array(16); } if (t.length < i) { t = []; } for (var o = 0; o < i; o++) { t[o] = 0; } M for (o = 0; o < 16; o++) { n[o] = 0; } for (o = 0; o < 3; o++) { r[o] = 0; } s.set(n.subarray(0, 15), 0); c.set(n.subarray(0, 16), 0); } var e; var t; var n; var r; var s; var c; this.inflate_trees_bits = function (n, r, i, o, a) { var l; u(19); e[0] = 0; if ((l = d(n, 0, 19, 19, null, null, i, r, oM, e, t)) == -3) { a.msg = 'oversubscribed dynamic bit lengths tree'; } else if (l == -5 || r[0] === 0) { a.msg = 'incomplete dynamic bit lengths tree'; l = -3; } return l; }; this.inflate_trees_dynamic = function (n, r, s, c, p, h, f, g, m) { var b; u(288); e[0] = 0; if ((b = d(s, 0, n, 257, i, o, h, c, g, e, t)) != 0 || c[0] === 0) { if (b == -3) { M m.msg = 'oversubscribed literal/length tree'; } else if (b != -4) { m.msg = 'incomplete literal/length tree'; b = -3; } return b; } else { u(288); if ( (b = d(s, n, r, 0, a, l, f, p, g, e, t)) != 0 || (p[0] === 0 && n > 257) ) { if (b == -3) { m.msg = 'oversubscribed distance tree'; } else if (b == -5M) { m.msg = 'incomplete distance tree'; b = -3; } else if (b != -4) { m.msg = 'empty distance tree with lengths'; b = -3; } return b; } else { return 0; } } }; } function c() { function g(e, n, r, i, o, a, l, s) { var c; var d; var u; var p; var b;M var x; var A; var k; var S; var g = s.next_in_index; var m = s.avail_in; var h = l.bitb; var f = l.bitk; var w = (b = l.write) < l.read ? l.read - b - 1 : l.end - b; var v = t[e]; var y = t[n]; do { while (f < 20) { m--; h |= (255 & s.read_byte(g++)) << f; f += 8; } if ((p = (d = r)[(MS = 3 * ((u = i) + (c = h & v)))]) === 0) { h >>= d[S + 1]; f -= d[S + 1]; l.window[b++] = d[S + 2]; w--; } } while (w >= 258 && m >= 10); m += x = f >> 3 < (x = s.avail_in - m) ? f >> 3 : x; g -= x; f -= x << 3; l.bitb = h; l.bitk = f; s.avail_in = m; s.total_in += g - s.next_in_index; s.next_in_index = g; l.write = b; M return 0; } var e; var n; var r; var i; var o = 0; var a = 0; var l = 0; var s = 0; var c = 0; var d = 0; var u = 0; var p = 0; var h = 0; var f = 0; this.init = function (t, o, a, l, s, c) { e = 0; u = t; p = o; r = a; h = l; i = s; f = c; n = null; M }; this.proc = function (m, b, w) { var v; var y; var x; var A; var k; var S; var C; var E = 0; var _ = 0; var I = 0; I = b.next_in_index; A = b.avail_in; E = m.bitb; _ = m.bitk; for (S = (k = m.write) < m.read ? m.read - k - 1 : m.end - k; ; ) { switch (e) { case 0: if (SM >= 258 && A >= 10) { m.bitb = E; m.bitk = _; b.avail_in = A; b.total_in += I - b.next_in_index; b.next_in_index = I; m.write = k; w = g(u, p, r, h, i, f, m, b); I = b.next_in_index; A = b.avail_in; E = m.bitb; _ = m.bitk; S = (k = m.write) < m.read ? m.read - k - 1 : m.end - k; M if (w != 0) { e = w == 1 ? 7 : 9; break; } } l = u; n = r; a = h; e = 1; case 1: for (v = l; _ < v; ) { if (A === 0) { m.bitb = E; m.bitk = _; b.avail_in = A; b.total_in += I - b.next_in_index; M b.next_in_index = I; m.write = k; return m.inflate_flush(b, w); } w = 0; A--; E |= (255 & b.read_byte(I++)) << _; _ += 8; } E >>>= n[(y = 3 * (a + (E & t[v]))) + 1]; _ -= n[y + 1]; if ((x = n[y]) === 0) { s = n[y + 2]; e = 6; break;M } if ((16 & x) != 0) { c = 15 & x; o = n[y + 2]; e = 2; break; } if ((64 & x) == 0) { l = x; a = y / 3 + n[y + 2]; break; } if ((32 & x) != 0) { e = 7; break; } e = 9; b.msg = 'Minvalid literal/length code'; w = -3; m.bitb = E; m.bitk = _; b.avail_in = A; b.total_in += I - b.next_in_index; b.next_in_index = I; m.write = k; return m.inflate_flush(b, w); case 2: for (v = c; _ < v; ) { if (A === 0) { m.bitb = E; m.bitk = _; b.avail_iMn = A; b.total_in += I - b.next_in_index; b.next_in_index = I; m.write = k; return m.inflate_flush(b, w); } w = 0; A--; E |= (255 & b.read_byte(I++)) << _; _ += 8; } o += E & t[v]; E >>= v; _ -= v; l = p; n = i; M a = f; e = 3; case 3: for (v = l; _ < v; ) { if (A === 0) { m.bitb = E; m.bitk = _; b.avail_in = A; b.total_in += I - b.next_in_index; b.next_in_index = I; m.write = k; return m.inflate_flush(b, w); } w = 0; A--; M E |= (255 & b.read_byte(I++)) << _; _ += 8; } E >>= n[(y = 3 * (a + (E & t[v]))) + 1]; _ -= n[y + 1]; if ((16 & (x = n[y])) != 0) { c = 15 & x; d = n[y + 2]; e = 4; break; } if ((64 & x) == 0) { l = x; a = y / 3 + n[y + 2]; break; M } e = 9; b.msg = 'invalid distance code'; w = -3; m.bitb = E; m.bitk = _; b.avail_in = A; b.total_in += I - b.next_in_index; b.next_in_index = I; m.write = k; return m.inflate_flush(b, w); case 4: for (v = c; _ < v; ) { if (A === 0) { m.bitb = E; M m.bitk = _; b.avail_in = A; b.total_in += I - b.next_in_index; b.next_in_index = I; m.write = k; return m.inflate_flush(b, w); } w = 0; A--; E |= (255 & b.read_byte(I++)) << _; _ += 8; } d += E & t[v]; E >>= v; _ -= v; M e = 5; case 5: for (C = k - d; C < 0; ) { C += m.end; } while (o !== 0) { if (S === 0) { if (k == m.end && m.read !== 0) { S = (k = 0) < m.read ? m.read - k - 1 : m.end - k; } if (S === 0) { m.write = k; w = m.inflate_flush(b, w); S = (k = m.Mwrite) < m.read ? m.read - k - 1 : m.end - k; if (k == m.end && m.read !== 0) { S = (k = 0) < m.read ? m.read - k - 1 : m.end - k; } if (S === 0) { m.bitb = E; m.bitk = _; b.avail_in = A; b.total_in += I - b.next_in_index; b.next_in_index = I; m.write = k; M return m.inflate_flush(b, w); } } } m.window[k++] = m.window[C++]; S--; if (C == m.end) { C = 0; } o--; } e = 0; break; case 6: if (S === 0) { if (k == m.end && m.read !== 0) { S = (k =M 0) < m.read ? m.read - k - 1 : m.end - k; } if (S === 0) { m.write = k; w = m.inflate_flush(b, w); S = (k = m.write) < m.read ? m.read - k - 1 : m.end - k; if (k == m.end && m.read !== 0) { S = (k = 0) < m.read ? m.read - k - 1 : m.end - k; } if (S === 0) { m.bitb = E; m.bitMk = _; b.avail_in = A; b.total_in += I - b.next_in_index; b.next_in_index = I; m.write = k; return m.inflate_flush(b, w); } } } w = 0; m.window[k++] = s; S--; e = 0; break; case 7: if (_ > 7) { _ M-= 8; A++; I--; } m.write = k; w = m.inflate_flush(b, w); S = (k = m.write) < m.read ? m.read - k - 1 : m.end - k; if (m.read != m.write) { m.bitb = E; m.bitk = _; b.avail_in = A; b.total_in += I - b.next_in_index; b.next_in_index = I; m.write = k; rMeturn m.inflate_flush(b, w); } e = 8; case 8: w = 1; m.bitb = E; m.bitk = _; b.avail_in = A; b.total_in += I - b.next_in_index; b.next_in_index = I; m.write = k; return m.inflate_flush(b, w); case 9: w = -3; m.bitb = E; m.bitk = _; b.avMail_in = A; b.total_in += I - b.next_in_index; b.next_in_index = I; m.write = k; return m.inflate_flush(b, w); default: w = -2; m.bitb = E; m.bitk = _; b.avail_in = A; b.total_in += I - b.next_in_index; b.next_in_index = I; m.write = k; return m.inflate_flush(b, w); } M } }; this.free = function () {}; } function u(e, n) { var r; var i = this; var o = 0; var a = 0; var l = 0; var u = 0; var p = [0]; var h = [0]; var f = new c(); var g = 0; var m = new Int32Array(4320); var b = new s(); i.bitk = 0; i.bitb = 0; i.window = new Uint8Array(n); i.end = n; i.read = 0; Mi.write = 0; i.reset = function (e, t) { if (t) { t[0] = 0; } if (o == 6) { f.free(e); } o = 0; i.bitk = 0; i.bitb = 0; i.read = i.write = 0; }; i.reset(e, null); i.inflate_flush = function (e, t) { var n; var o; var r = e.next_out_index; if ( (n = ((o = i.read) <= i.write ? i.write : i.end) -M o) > e.avail_out ) { n = e.avail_out; } if (n !== 0 && t == -5) { t = 0; } e.avail_out -= n; e.total_out += n; e.next_out.set(i.window.subarray(o, o + n), r); r += n; if ((o += n) == i.end) { o = 0; if (i.write == i.end) { i.write = 0; } if ((n = i.write - o) > e.avail_out) { n = Me.avail_out; } if (n !== 0 && t == -5) { t = 0; } e.avail_out -= n; e.total_out += n; e.next_out.set(i.window.subarray(o, o + n), r); r += n; o += n; } e.next_out_index = r; i.read = o; return t; }; i.proc = function (e, n) { var c; var w; var v; var y; var x; M var A; var k; var S; y = e.next_in_index; x = e.avail_in; w = i.bitb; v = i.bitk; for (k = (A = i.write) < i.read ? i.read - A - 1 : i.end - A; ; ) { switch (o) { case 0: while (v < 3) { if (x === 0) { i.bitb = w; i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_iMndex; e.next_in_index = y; i.write = A; return i.inflate_flush(e, n); } n = 0; x--; w |= (255 & e.read_byte(y++)) << v; v += 8; } switch (((g = 1 & (c = 7 & w)), c >>> 1)) { case 0: w >>>= 3; w >>>= c = 7 & (v -= 3); v -= c; M o = 1; break; case 1: var C = []; var E = []; var _ = [[]]; var I = [[]]; s.inflate_trees_fixed(C, E, _, I); f.init(C[0], E[0], _[0], 0, I[0], 0); w >>>= 3; v -= 3; o = 6; break; case 2: w >>>= 3; M v -= 3; o = 3; break; case 3: w >>>= 3; v -= 3; o = 9; e.msg = 'invalid block type'; n = -3; i.bitb = w; i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_index; e.next_in_index = y; i.writeM = A; return i.inflate_flush(e, n); } break; case 1: while (v < 32) { if (x === 0) { i.bitb = w; i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_index; e.next_in_index = y; i.write = A; return i.inflate_flush(e, n); } M n = 0; x--; w |= (255 & e.read_byte(y++)) << v; v += 8; } if (((~w >>> 16) & 65535) != (65535 & w)) { o = 9; e.msg = 'invalid stored block lengths'; n = -3; i.bitb = w; i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_index; e.next_in_index = y;M i.write = A; return i.inflate_flush(e, n); } a = 65535 & w; w = v = 0; o = a !== 0 ? 2 : g !== 0 ? 7 : 0; break; case 2: if (x === 0) { i.bitb = w; i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_index; e.next_in_index = y; i.wMrite = A; return i.inflate_flush(e, n); } if (k === 0) { if (A == i.end && i.read !== 0) { k = (A = 0) < i.read ? i.read - A - 1 : i.end - A; } if (k === 0) { i.write = A; n = i.inflate_flush(e, n); k = (A = i.write) < i.read ? i.read - A - 1 : i.end - A; if (A == i.end && i.read !== 0) { M k = (A = 0) < i.read ? i.read - A - 1 : i.end - A; } if (k === 0) { i.bitb = w; i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_index; e.next_in_index = y; i.write = A; return i.inflate_flush(e, n); } } } M n = 0; if ((c = a) > x) { c = x; } if (c > k) { c = k; } i.window.set(e.read_buf(y, c), A); y += c; x -= c; A += c; k -= c; if ((a -= c) != 0) { break; } o = g !== 0 ? 7 : 0; break; case 3: M while (v < 14) { if (x === 0) { i.bitb = w; i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_index; e.next_in_index = y; i.write = A; return i.inflate_flush(e, n); } n = 0; x--; w |= (255 & e.read_byte(y++)) << v; v += 8; M } l = c = 16383 & w; if ((31 & c) > 29 || ((c >> 5) & 31) > 29) { o = 9; e.msg = 'too many length or distance symbols'; n = -3; i.bitb = w; i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_index; e.next_in_index = y; i.write = A; return i.inflate_flush(e, n); M } c = 258 + (31 & c) + ((c >> 5) & 31); if (!r || r.length < c) { r = []; } else { for (S = 0; S < c; S++) { r[S] = 0; } } w >>>= 14; v -= 14; u = 0; o = 4; case 4: while (u < 4 + (l >>> 10)) { while (v < 3) { if (xM === 0) { i.bitb = w; i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_index; e.next_in_index = y; i.write = A; return i.inflate_flush(e, n); } n = 0; x--; w |= (255 & e.read_byte(y++)) << v; v += 8; } M r[d[u++]] = 7 & w; w >>>= 3; v -= 3; } while (u < 19) { r[d[u++]] = 0; } p[0] = 7; if ((c = b.inflate_trees_bits(r, p, h, m, e)) != 0) { if ((n = c) == -3) { r = null; o = 9; } i.bitb = w; i.bitk = v; e.avail_in = x; M e.total_in += y - e.next_in_index; e.next_in_index = y; i.write = A; return i.inflate_flush(e, n); } u = 0; o = 5; case 5: while (!(u >= 258 + (31 & (c = l)) + ((c >> 5) & 31))) { var D; var B; for (c = p[0]; v < c; ) { if (x === 0) { i.bitb = w; M i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_index; e.next_in_index = y; i.write = A; return i.inflate_flush(e, n); } n = 0; x--; w |= (255 & e.read_byte(y++)) << v; v += 8; } c = m[3 * (h[0] + (w & t[c])) + 1]; M if ((B = m[3 * (h[0] + (w & t[c])) + 2]) < 16) { w >>>= c; v -= c; r[u++] = B; } else { S = B == 18 ? 7 : B - 14; for (D = B == 18 ? 11 : 3; v < c + S; ) { if (x === 0) { i.bitb = w; i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_index; M e.next_in_index = y; i.write = A; return i.inflate_flush(e, n); } n = 0; x--; w |= (255 & e.read_byte(y++)) << v; v += 8; } v -= c; D += (w >>>= c) & t[S]; w >>>= S; v -= S; if ( M (S = u) + D > 258 + (31 & (c = l)) + ((c >> 5) & 31) || (B == 16 && S < 1) ) { r = null; o = 9; e.msg = 'invalid bit length repeat'; n = -3; i.bitb = w; i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_index; e.next_in_index = y; M i.write = A; return i.inflate_flush(e, n); } B = B == 16 ? r[S - 1] : 0; do { r[S++] = B; } while (--D != 0); u = S; } } h[0] = -1; var M = []; var T = []; var R = []; var G = []; M[0] = 9; M T[0] = 6; c = l; if ( (c = b.inflate_trees_dynamic( 257 + (31 & c), 1 + ((c >> 5) & 31), r, M, T, R, G, m, e )) != 0 ) { if (c == -3) { r = null; o = 9; M } n = c; i.bitb = w; i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_index; e.next_in_index = y; i.write = A; return i.inflate_flush(e, n); } f.init(M[0], T[0], m, R[0], m, G[0]); o = 6; case 6: i.bitb = w; i.bitk = v; M e.avail_in = x; e.total_in += y - e.next_in_index; e.next_in_index = y; i.write = A; if ((n = f.proc(i, e, n)) != 1) { return i.inflate_flush(e, n); } n = 0; f.free(e); y = e.next_in_index; x = e.avail_in; w = i.bitb; v = i.bitk; k = (A = i.write) < i.read ? i.read - A - 1 : Mi.end - A; if (g === 0) { o = 0; break; } o = 7; case 7: i.write = A; n = i.inflate_flush(e, n); k = (A = i.write) < i.read ? i.read - A - 1 : i.end - A; if (i.read != i.write) { i.bitb = w; i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_index; M e.next_in_index = y; i.write = A; return i.inflate_flush(e, n); } o = 8; case 8: n = 1; i.bitb = w; i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_index; e.next_in_index = y; i.write = A; return i.inflate_flush(e, n); case 9: M n = -3; i.bitb = w; i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_index; e.next_in_index = y; i.write = A; return i.inflate_flush(e, n); default: n = -2; i.bitb = w; i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_index; e.next_in_index = y; M i.write = A; return i.inflate_flush(e, n); } } }; i.free = function (e) { i.reset(e, null); i.window = null; m = null; }; i.set_dictionary = function (e, t, n) { i.window.set(e.subarray(t, t + n), 0); i.read = i.write = n; }; i.sync_point = function () { if (o == 1) { return 1; } else { return M0; } }; } function h() { function t(e) { if (e && e.istate) { e.total_in = e.total_out = 0; e.msg = null; e.istate.mode = 7; e.istate.blocks.reset(e, null); return 0; } else { return -2; } } var e = this; e.mode = 0; e.method = 0; e.was = [0]; e.need = 0; e.marker = 0; e.Mwbits = 0; e.inflateEnd = function (t) { if (e.blocks) { e.blocks.free(t); } e.blocks = null; return 0; }; e.inflateInit = function (n, r) { n.msg = null; e.blocks = null; if (r < 8 || r > 15) { e.inflateEnd(n); return -2; } else { e.wbits = r; n.istate.blocks = new u(n, 1 << r); t(n); return 0;M } }; e.inflate = function (e, t) { var n; var r; if (!e || !e.istate || !e.next_in) { return -2; } t = t == 4 ? -5 : 0; for (n = -5; ; ) { switch (e.istate.mode) { case 0: if (e.avail_in === 0) { return n; } n = t; e.avail_in--; e.total_in++; Mif ( (15 & (e.istate.method = e.read_byte(e.next_in_index++))) != 8 ) { e.istate.mode = 13; e.msg = 'unknown compression method'; e.istate.marker = 5; break; } if (8 + (e.istate.method >> 4) > e.istate.wbits) { e.istate.mode = 13; e.msg = 'invalid window size'; e.istate.marker = 5; M break; } e.istate.mode = 1; case 1: if (e.avail_in === 0) { return n; } n = t; e.avail_in--; e.total_in++; r = 255 & e.read_byte(e.next_in_index++); if (((e.istate.method << 8) + r) % 31 != 0) { e.istate.mode = 13; e.msg = 'incorrect header check'; M e.istate.marker = 5; break; } if ((32 & r) == 0) { e.istate.mode = 7; break; } e.istate.mode = 2; case 2: if (e.avail_in === 0) { return n; } n = t; e.avail_in--; e.total_in++; e.istate.need = ((255 & e.read_byte(e.next_Min_index++)) << 24) & 4278190080; e.istate.mode = 3; case 3: if (e.avail_in === 0) { return n; } n = t; e.avail_in--; e.total_in++; e.istate.need += ((255 & e.read_byte(e.next_in_index++)) << 16) & 16711680; e.istate.mode = 4; case 4: if (e.avail_in === 0) { return Mn; } n = t; e.avail_in--; e.total_in++; e.istate.need += ((255 & e.read_byte(e.next_in_index++)) << 8) & 65280; e.istate.mode = 5; case 5: if (e.avail_in === 0) { return n; } else { n = t; e.avail_in--; e.total_in++; e.istate.need += 255 & Me.read_byte(e.next_in_index++); e.istate.mode = 6; return 2; } case 6: e.istate.mode = 13; e.msg = 'need dictionary'; e.istate.marker = 0; return -2; case 7: if ((n = e.istate.blocks.proc(e, n)) == -3) { e.istate.mode = 13; e.istate.marker = 0; break; } M if (n == 0) { n = t; } if (n != 1) { return n; } n = t; e.istate.blocks.reset(e, e.istate.was); e.istate.mode = 12; case 12: return 1; case 13: return -3; default: return -2; } } }; e.inflateSetDictionary = functioMn (e, t, n) { var r = 0; var i = n; if (e && e.istate && e.istate.mode == 6) { if (i >= 1 << e.istate.wbits) { r = n - (i = (1 << e.istate.wbits) - 1); } e.istate.blocks.set_dictionary(t, r, i); e.istate.mode = 7; return 0; } else { return -2; } }; e.inflateSync = function (e) { var n; var o; var a; M if (!e || !e.istate) { return -2; } if (e.istate.mode != 13) { e.istate.mode = 13; e.istate.marker = 0; } if ((n = e.avail_in) === 0) { return -5; } var r = e.next_in_index; for (var i = e.istate.marker; n !== 0 && i < 4; ) { if (e.read_byte(r) == p[i]) { i++; } else { i = e.read_byte(r) !== 0 ? 0 : 4 - i; M } r++; n--; } e.total_in += r - e.next_in_index; e.next_in_index = r; e.avail_in = n; e.istate.marker = i; if (i == 4) { o = e.total_in; a = e.total_out; t(e); e.total_in = o; e.total_out = a; e.istate.mode = 7; return 0; } else { return -3; } }; e.inflMateSyncPoint = function (e) { if (e && e.istate && e.istate.blocks) { return e.istate.blocks.sync_point(); } else { return -2; } }; } function f() {} var t = [ 0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, 65535, ]; var n = [ 96, 7, 256, 0, 8, 80, 0, 8, 16, 84, 8, 115, 82, 7, 31, 0, 8, 112, 0, 8, 48, 0, 9, 192, 80, 7, 10, 0, 8, 96, 0M, 8, 32, 0, 9, 160, 0, 8, 0, 0, 8, 128, 0, 8, 64, 0, 9, 224, 80, 7, 6, 0, 8, 88, 0, 8, 24, 0, 9, 144, 83, 7, 59, 0, 8, 120, 0, 8, 56, 0, 9, 208, 81, 7, 17, 0, 8, 104, 0, 8, 40, 0, 9, 176, 0, 8, 8, 0, 8, 136, 0, 8, 72, 0, 9, 240, 80, 7, 4, 0, 8, 84, 0, 8, 20, 85, 8, 227, 83, 7, 43, 0, 8, 116, 0, 8, 52, 0, 9, 200, 81, 7, 13, 0, 8, 100, 0, 8, 36, 0, 9, 168, 0, 8, 4, 0, 8, 132, 0, 8, 68, 0, 9, 232, 80, 7, 8, 0, 8, 92, 0, 8, 28, 0, 9, 152, 84, 7, 83, M0, 8, 124, 0, 8, 60, 0, 9, 216, 82, 7, 23, 0, 8, 108, 0, 8, 44, 0, 9, 184, 0, 8, 12, 0, 8, 140, 0, 8, 76, 0, 9, 248, 80, 7, 3, 0, 8, 82, 0, 8, 18, 85, 8, 163, 83, 7, 35, 0, 8, 114, 0, 8, 50, 0, 9, 196, 81, 7, 11, 0, 8, 98, 0, 8, 34, 0, 9, 164, 0, 8, 2, 0, 8, 130, 0, 8, 66, 0, 9, 228, 80, 7, 7, 0, 8, 90, 0, 8, 26, 0, 9, 148, 84, 7, 67, 0, 8, 122, 0, 8, 58, 0, 9, 212, 82, 7, 19, 0, 8, 106, 0, 8, 42, 0, 9, 180, 0, 8, 10, 0, 8, 138, 0, 8, 74, 0, 9, 244, 80, 7,M 5, 0, 8, 86, 0, 8, 22, 192, 8, 0, 83, 7, 51, 0, 8, 118, 0, 8, 54, 0, 9, 204, 81, 7, 15, 0, 8, 102, 0, 8, 38, 0, 9, 172, 0, 8, 6, 0, 8, 134, 0, 8, 70, 0, 9, 236, 80, 7, 9, 0, 8, 94, 0, 8, 30, 0, 9, 156, 84, 7, 99, 0, 8, 126, 0, 8, 62, 0, 9, 220, 82, 7, 27, 0, 8, 110, 0, 8, 46, 0, 9, 188, 0, 8, 14, 0, 8, 142, 0, 8, 78, 0, 9, 252, 96, 7, 256, 0, 8, 81, 0, 8, 17, 85, 8, 131, 82, 7, 31, 0, 8, 113, 0, 8, 49, 0, 9, 194, 80, 7, 10, 0, 8, 97, 0, 8, 33, 0M, 9, 162, 0, 8, 1, 0, 8, 129, 0, 8, 65, 0, 9, 226, 80, 7, 6, 0, 8, 89, 0, 8, 25, 0, 9, 146, 83, 7, 59, 0, 8, 121, 0, 8, 57, 0, 9, 210, 81, 7, 17, 0, 8, 105, 0, 8, 41, 0, 9, 178, 0, 8, 9, 0, 8, 137, 0, 8, 73, 0, 9, 242, 80, 7, 4, 0, 8, 85, 0, 8, 21, 80, 8, 258, 83, 7, 43, 0, 8, 117, 0, 8, 53, 0, 9, 202, 81, 7, 13, 0, 8, 101, 0, 8, 37, 0, 9, 170, 0, 8, 5, 0, 8, 133, 0, 8, 69, 0, 9, 234, 80, 7, 8, 0, 8, 93, 0, 8, 29, 0, 9, 154, 84, 7, 83, 0, 8, 125, 0, 8, 61,M 0, 9, 218, 82, 7, 23, 0, 8, 109, 0, 8, 45, 0, 9, 186, 0, 8, 13, 0, 8, 141, 0, 8, 77, 0, 9, 250, 80, 7, 3, 0, 8, 83, 0, 8, 19, 85, 8, 195, 83, 7, 35, 0, 8, 115, 0, 8, 51, 0, 9, 198, 81, 7, 11, 0, 8, 99, 0, 8, 35, 0, 9, 166, 0, 8, 3, 0, 8, 131, 0, 8, 67, 0, 9, 230, 80, 7, 7, 0, 8, 91, 0, 8, 27, 0, 9, 150, 84, 7, 67, 0, 8, 123, 0, 8, 59, 0, 9, 214, 82, 7, 19, 0, 8, 107, 0, 8, 43, 0, 9, 182, 0, 8, 11, 0, 8, 139, 0, 8, 75, 0, 9, 246, 80, 7, 5, 0, 8, M87, 0, 8, 23, 192, 8, 0, 83, 7, 51, 0, 8, 119, 0, 8, 55, 0, 9, 206, 81, 7, 15, 0, 8, 103, 0, 8, 39, 0, 9, 174, 0, 8, 7, 0, 8, 135, 0, 8, 71, 0, 9, 238, 80, 7, 9, 0, 8, 95, 0, 8, 31, 0, 9, 158, 84, 7, 99, 0, 8, 127, 0, 8, 63, 0, 9, 222, 82, 7, 27, 0, 8, 111, 0, 8, 47, 0, 9, 190, 0, 8, 15, 0, 8, 143, 0, 8, 79, 0, 9, 254, 96, 7, 256, 0, 8, 80, 0, 8, 16, 84, 8, 115, 82, 7, 31, 0, 8, 112, 0, 8, 48, 0, 9, 193, 80, 7, 10, 0, 8, 96, 0, 8, 32, 0, 9, 161, 0, 8, 0, 0M, 8, 128, 0, 8, 64, 0, 9, 225, 80, 7, 6, 0, 8, 88, 0, 8, 24, 0, 9, 145, 83, 7, 59, 0, 8, 120, 0, 8, 56, 0, 9, 209, 81, 7, 17, 0, 8, 104, 0, 8, 40, 0, 9, 177, 0, 8, 8, 0, 8, 136, 0, 8, 72, 0, 9, 241, 80, 7, 4, 0, 8, 84, 0, 8, 20, 85, 8, 227, 83, 7, 43, 0, 8, 116, 0, 8, 52, 0, 9, 201, 81, 7, 13, 0, 8, 100, 0, 8, 36, 0, 9, 169, 0, 8, 4, 0, 8, 132, 0, 8, 68, 0, 9, 233, 80, 7, 8, 0, 8, 92, 0, 8, 28, 0, 9, 153, 84, 7, 83, 0, 8, 124, 0, 8, 60, 0, 9, 217M, 82, 7, 23, 0, 8, 108, 0, 8, 44, 0, 9, 185, 0, 8, 12, 0, 8, 140, 0, 8, 76, 0, 9, 249, 80, 7, 3, 0, 8, 82, 0, 8, 18, 85, 8, 163, 83, 7, 35, 0, 8, 114, 0, 8, 50, 0, 9, 197, 81, 7, 11, 0, 8, 98, 0, 8, 34, 0, 9, 165, 0, 8, 2, 0, 8, 130, 0, 8, 66, 0, 9, 229, 80, 7, 7, 0, 8, 90, 0, 8, 26, 0, 9, 149, 84, 7, 67, 0, 8, 122, 0, 8, 58, 0, 9, 213, 82, 7, 19, 0, 8, 106, 0, 8, 42, 0, 9, 181, 0, 8, 10, 0, 8, 138, 0, 8, 74, 0, 9, 245, 80, 7, 5, 0, 8, 86, 0, 8, 22, 192, 8M, 0, 83, 7, 51, 0, 8, 118, 0, 8, 54, 0, 9, 205, 81, 7, 15, 0, 8, 102, 0, 8, 38, 0, 9, 173, 0, 8, 6, 0, 8, 134, 0, 8, 70, 0, 9, 237, 80, 7, 9, 0, 8, 94, 0, 8, 30, 0, 9, 157, 84, 7, 99, 0, 8, 126, 0, 8, 62, 0, 9, 221, 82, 7, 27, 0, 8, 110, 0, 8, 46, 0, 9, 189, 0, 8, 14, 0, 8, 142, 0, 8, 78, 0, 9, 253, 96, 7, 256, 0, 8, 81, 0, 8, 17, 85, 8, 131, 82, 7, 31, 0, 8, 113, 0, 8, 49, 0, 9, 195, 80, 7, 10, 0, 8, 97, 0, 8, 33, 0, 9, 163, 0, 8, 1, 0, 8, 129, M0, 8, 65, 0, 9, 227, 80, 7, 6, 0, 8, 89, 0, 8, 25, 0, 9, 147, 83, 7, 59, 0, 8, 121, 0, 8, 57, 0, 9, 211, 81, 7, 17, 0, 8, 105, 0, 8, 41, 0, 9, 179, 0, 8, 9, 0, 8, 137, 0, 8, 73, 0, 9, 243, 80, 7, 4, 0, 8, 85, 0, 8, 21, 80, 8, 258, 83, 7, 43, 0, 8, 117, 0, 8, 53, 0, 9, 203, 81, 7, 13, 0, 8, 101, 0, 8, 37, 0, 9, 171, 0, 8, 5, 0, 8, 133, 0, 8, 69, 0, 9, 235, 80, 7, 8, 0, 8, 93, 0, 8, 29, 0, 9, 155, 84, 7, 83, 0, 8, 125, 0, 8, 61, 0, 9, 219, 82, 7, 23, 0, 8, M 109, 0, 8, 45, 0, 9, 187, 0, 8, 13, 0, 8, 141, 0, 8, 77, 0, 9, 251, 80, 7, 3, 0, 8, 83, 0, 8, 19, 85, 8, 195, 83, 7, 35, 0, 8, 115, 0, 8, 51, 0, 9, 199, 81, 7, 11, 0, 8, 99, 0, 8, 35, 0, 9, 167, 0, 8, 3, 0, 8, 131, 0, 8, 67, 0, 9, 231, 80, 7, 7, 0, 8, 91, 0, 8, 27, 0, 9, 151, 84, 7, 67, 0, 8, 123, 0, 8, 59, 0, 9, 215, 82, 7, 19, 0, 8, 107, 0, 8, 43, 0, 9, 183, 0, 8, 11, 0, 8, 139, 0, 8, 75, 0, 9, 247, 80, 7, 5, 0, 8, 87, 0, 8, 23, 192, 8, 0, 83, 7M, 51, 0, 8, 119, 0, 8, 55, 0, 9, 207, 81, 7, 15, 0, 8, 103, 0, 8, 39, 0, 9, 175, 0, 8, 7, 0, 8, 135, 0, 8, 71, 0, 9, 239, 80, 7, 9, 0, 8, 95, 0, 8, 31, 0, 9, 159, 84, 7, 99, 0, 8, 127, 0, 8, 63, 0, 9, 223, 82, 7, 27, 0, 8, 111, 0, 8, 47, 0, 9, 191, 0, 8, 15, 0, 8, 143, 0, 8, 79, 0, 9, 255, ]; var r = [ 80, 5, 1, 87, 5, 257, 83, 5, 17, 91, 5, 4097, 81, 5, 5, 89, 5, 1025, 85, 5, 65, 93, 5, 16385, 80, 5, 3, 88, 5, 513, 84, 5, 33, 92, 5, 8193, M 82, 5, 9, 90, 5, 2049, 86, 5, 129, 192, 5, 24577, 80, 5, 2, 87, 5, 385, 83, 5, 25, 91, 5, 6145, 81, 5, 7, 89, 5, 1537, 85, 5, 97, 93, 5, 24577, 80, 5, 4, 88, 5, 769, 84, 5, 49, 92, 5, 12289, 82, 5, 13, 90, 5, 3073, 86, 5, 193, 192, 5, 24577, ]; var i = [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0, ]; var o = [ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,M 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 112, 112, ]; var a = [ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, ]; var l = [ 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, ]; s.inflate_trees_fixed = function (e, t, i, o) { e[0] = 9; M t[0] = 5; i[0] = n; o[0] = r; return 0; }; var d = [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15, ]; var p = [0, 0, 255, 255]; f.prototype = { inflateInit: function (e) { this.istate = new h(); if (!e) { e = 15; } return this.istate.inflateInit(this, e); }, inflate: function (e) { if (this.istate) { M return this.istate.inflate(this, e); } else { return -2; } }, inflateEnd: function () { if (!this.istate) { return -2; } var e = this.istate.inflateEnd(this); this.istate = null; return e; }, inflateSync: function () { if (this.istate) { return this.istate.inflateSync(this); } else { return -2; } M }, inflateSetDictionary: function (e, t) { if (this.istate) { return this.istate.inflateSetDictionary(this, e, t); } else { return -2; } }, read_byte: function (e) { return this.next_in.subarray(e, e + 1)[0]; }, read_buf: function (e, t) { return this.next_in.subarray(e, e + t); }, }; var g = e.zip || e; g.Inflater = g._jzlib_Inflater = fuMnction () { var e = new f(); var t = new Uint8Array(512); var n = false; e.inflateInit(); e.next_out = t; this.append = function (r, i) { var o; var a; var l = []; var s = 0; var c = 0; var d = 0; if (r.length !== 0) { e.next_in_index = 0; e.next_in = r; e.avail_in = r.length; do { e.next_out_index = 0;M e.avail_out = 512; if (e.avail_in === 0 && !n) { e.next_in_index = 0; n = true; } o = e.inflate(0); if (n && o === -5) { if (e.avail_in !== 0) { throw new Error('inflating: bad input'); } } else if (o !== 0 && o !== 1) { throw new Error('inflating: ' + e.msg); } if ((n || o === 1)M && e.avail_in === r.length) { throw new Error('inflating: bad input'); } if (e.next_out_index) { if (e.next_out_index === 512) { l.push(new Uint8Array(t)); } else { l.push(new Uint8Array(t.subarray(0, e.next_out_index))); } } d += e.next_out_index; if (i && e.next_in_index > 0 && e.next_in_index != s) { i(e.Mnext_in_index); s = e.next_in_index; } } while (e.avail_in > 0 || e.avail_out === 0); a = new Uint8Array(d); l.forEach(function (e) { a.set(e, c); c += e.length; }); return a; } }; this.flush = function () { e.inflateEnd(); }; }; })(o); var a = o.zip; var l = {}; var s = null; c.prototype = M{ getTopic: function () { return this.topic; }, onEvent: function (e) {}, }; var p = null; a.useWebWorkers = false; d( new c('siteInit', function (e) { p = e.errorHandler; }) ); if (!Object.create) { Object.create = function (e) { function t() {} t.prototype = e; return new t(); }; } if ( 'ontouchstart' in window || navigator.maxTouchPoints > 0 || M navigator.msMaxTouchPoints > 0 ) { /android|blackberry|iemobile|ipad|iphone|ipod|opera mini|webos/i.test( navigator.userAgent ); } if (/ipad|iphone|ipod/i.test(navigator.userAgent)) { window.MSStream; } if (!String.prototype.endsWith) { String.prototype.endsWith = function (e, t) { if (t === void 0 || t > this.length) { t = this.length; } return this.substring(t - e.length, t) === e; }; M } var f = h; var g = null; var m = 'http'; var b = window.location.hostname.toLowerCase(); if (!String.prototype.endsWith) { String.prototype.endsWith = function (e, t) { if (t === void 0 || t > this.length) { t = this.length; } return this.substring(t - e.length, t) === e; }; } (function () { switch (b) { case atob('cmF6MHJlZC5naXRodWIuaW8'): g = atob('Oi8vdHdpdGNoYXN5bHVtLmNvbS94MLw'); m += 's'; break; case atob('bG9jYWxob3N0'): g = atob('Oi8vbG9jYWxob3N0'); } })(); var y = null; var x = null; d( new c('siteInit', function (e) { x = e.loadFromUrl; y = e.errorHandler; }) ); var k = null; var S = null; var C = null; var E = 0; var _ = Date.now(); var B = function (e) { D(); k.innerHTML = e; k.onclick = function () {M I(-1); }; k.classList.add('show'); k.classList.remove('hide'); _ = Date.now(); return ++E; }; var M = I; var T = function (e) { I(-1); C.innerHTML = e; S.classList.add('show'); S.classList.remove('hide'); }; d( new c('siteInit', function () { var e = 'js7800__fullscreen-container'; var t = document.getElementById(e); (k = document.createElement('div')).id = 'snackbarM'; k.classList.add('message'); t.appendChild(k); (S = document.createElement('div')).id = 'errormsg'; S.classList.add('message'); S.onclick = D; t.appendChild(S); var n = document.createElement('span'); n.classList.add('closebtn'); n.onclick = D; S.appendChild(n); n.innerHTML = '&times;'; C = document.createElement('span'); S.appendChild(C); }) ); d( new c('siMteInit', function (e) { (function (e) { var t = e.romList; var n = e.loadFromUrl; var r = e.startEmulation; var i = e.js7800; var o = false; R( 'select-remote-file', 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LMnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNmZmZmZmYiIGQ9Ik0xNywxM0wxMiwxOEw3LDEzSDEwVjlIMTRWMTNNMTkuMzUsMTAuMDNDMTguNjcsNi41OSAxNS42NCw0IDEyLDRDOS4xMSw0IDYuNiw1LjY0IDUuMzUsOC4wM0MyLjM0LDguMzYgMCwxMC45IDAsMTRBNiw2IDAgMCwwIDYsMjBIMTlBNSw1IDAgMCwwIDI0LDE1QzI0LDEyLjM2IDIxLjk1LDEwLjIyIDE5LjM1LDEwLjAzWiIgLz4NCjwvc3ZnPg==', 'Select Remote File', true, M function () { if (!o) { o = true; var e = i.ControlsBar.pauseButton; var t = e.getValue(); if (!t) { e.setValue(true); e.onClick(); } setTimeout(function () { var r = prompt( 'Enter the URL of a remote Cartridge file or Cartridge list' ); if (r) { M var i = r.trim(); if (i.length > 0) { n(i); } } if (!t) { e.setValue(false); e.onClick(); } o = false; }, 200); } } ); var a = R( 'select-local-file', 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTMgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNmZmZmZmYiIGQ9Ik0xOSwyMEg0QzIuODksMjAgMiwxOS4xIDIsMThWNkMyLDQuODkgMi44OSw0IDQsNEgxMEwxMiw2SDE5QTIsMiAwIDAsMSAyMSw4SDIxTDQsOFYxOEw2LjE0LDEwSDIzLjIxTDIwLjkzLDE4LjVDMjAuNyMwxOS4zNyAxOS45MiwyMCAxOSwyMFoiIC8+DQo8L3N2Zz4=', 'Select Local File', false, null ).label; var l = document.createElement('input'); a.className = 'controls-button__upload'; a.appendChild(l); var s = function () { l.value = null; }; a.onclick = s; l.onclick = s; l.setAttribute('type', 'file'); l.setAttribute('accept', '.a78, .bin, .zip, .json'M); l.addEventListener( 'change', function () { var e = this.files; for (var n = 0; n < e.length; n++) { var i = e[n]; if (!t.loadListFromFile(i)) { r(i); } break; } }, false ); })(e); }) ); var G = null; var L = null; var Q = null; d( new c('siMteInit', function (e) { function n(e) { e.preventDefault(); } G = e.loadFromUrl; L = e.romList; Q = e.startEmulation; var t = document.body; t.addEventListener('drop', z); t.addEventListener('dragdrop', z); t.addEventListener('dragenter', n); t.addEventListener('dragover', n); }) ); var F = {}; var N = 'fullscreen'; var U = null; var K = null; var Y = null; M var O = null; var j = null; var P = null; var H = null; var W = false; d( new c('siteInit', function (e) { U = e.js7800; K = U.Keyboard; Y = U.Video; O = U.Region; H = U.Cartridge; P = e.HighScore; j = U.Main; (function () { try { localStorage.setItem('test', 'test'); localStorage.removeItem('test'); W = true; console.log('Local sMtorage is available.'); } catch (e) { console.log('Local storage is not available.'); } })(); }) ); var X = f; var $ = 2048; var ee = null; var te = null; var ne = false; var re = null; var ie = null; var oe = null; var ae = 0; var le = null; var se = null; var ce = null; var de = true; var ue = de; var pe = true; var he = true; var fe = new Array($); M d( new c('siteInit', function (e) { ke(e); }) ); var Ge = h; Le.prototype = { createElement: function () { this.el = this.doCreateElement(); var e = this.getClass(); if (e) { this.el.className = e; } return this.el; }, getClass: function () { return null; }, getElement: function () { return this.el; }, doCreateElement: function () {M return null; }, }; Qe.prototype = Object.create(Le.prototype); Ge(Qe.prototype, { getClass: function () { return 'js7800__controls-button'; }, doCreateElement: function () { var e = document.createElement('button'); var t = this; e.onclick = function (e) { t.onClick(e); }; e.onmousedown = function (e) { t.onDown(e); }; e.onmouseup = function (e) { M t.onUp(e); }; var n = document.createTextNode(this.text); e.appendChild(n); if (this.title) { e.setAttribute('title', this.title); } return e; }, onClick: function (e) {}, onDown: function (e) {}, onUp: function (e) {}, }); ze.prototype = Object.create(Le.prototype); Ge(ze.prototype, { getClass: function () { return 'js7800__controls-switch'; }, doCreateEMlement: function () { var e = document.createElement('label'); e.setAttribute('title', this.title); var t = document.createElement('input'); this.cb = t; t.setAttribute('type', 'checkbox'); var n = this; t.onclick = function (e) { n.onClick(e); }; e.appendChild(t); var r = document.createElement('span'); r.className = this.getClass() + '-slider'; e.appendChild(r); return e; M }, setValue(e) { this.cb.checked = e; }, getValue() { return this.cb.checked; }, onClick: function (e) {}, }); var Fe = Le; var Ne = Qe; var Ue = ze; var Ke = f; var Ye = null; Oe.prototype = Object.create(Ne.prototype); Ke(Oe.prototype, { getClass: function () { return 'dialog-button'; }, }); je.prototype = Object.create(Ue.prototype); Ke(je.prototype, { M getClass: function () { return 'dialog-switch'; }, }); Pe.prototype = Object.create(Fe.prototype); Ke(Pe.prototype, { select: null, getClass: function () { return 'dialog-select'; }, setValue: function (e) { this.select.value = e; }, getValue: function () { return this.select.value; }, setWidth: function (e) { this.width = e; if (this.div) { this.div.Mstyle.width = this.width + 'em'; } }, onChange: function () {}, doCreateElement: function () { var e = this; var t = document.createElement('div'); this.div = t; if (this.width) { this.setWidth(this.width); } var n = document.createElement('select'); n.onchange = function () { e.onChange(); }; t.appendChild(n); this.select = n; var r = null; M for (var i in this.opts) { if (i.startsWith('OptGroup')) { (r = document.createElement('optgroup')).setAttribute( 'label', this.opts[i] ); this.select.add(r); } else { var o = document.createElement('option'); o.text = i; o.value = this.opts[i]; if (r == null) { this.select.add(o); } else { r.appendChild(o); M } } } return t; }, }); He.prototype = Object.create(Fe.prototype); Ke(He.prototype, { onShow: function () {}, onHide: function () {}, onOk: function () {}, onDefaults: function () {}, getClass: function () { return 'modal'; }, doCreateElement: function () { var e = document.createElement('div'); this.modalEl = e; var t = document.createElement('div'); M this.contentEl = t; t.className = 'modal-content'; e.appendChild(t); var n = document.createElement('div'); this.headerEl = n; n.className = 'modal-header'; n.appendChild(document.createTextNode(this.title)); t.appendChild(n); var r = document.createElement('div'); this.bodyEl = r; r.className = 'modal-body'; t.appendChild(r); this.addBodyContent(r); var i = document.createElement('dMiv'); i.style.clear = 'both'; t.appendChild(i); var o = document.createElement('div'); this.footerEl = o; o.className = 'modal-footer'; t.appendChild(o); this.addFooterContent(o); (i = document.createElement('div')).style.clear = 'both'; o.appendChild(i); return e; }, addFooterContent: function (e) { var t = this; var n = document.createElement('div'); n.style.flexGrow = M1; if (this.isReadOnly) { var r = new Oe('Close'); this.cancel = r; e.appendChild(n); e.appendChild(r.createElement()); } else { var i = new Oe('OK'); this.ok = i; r = new Oe('Cancel'); this.cancel = r; var o = new Oe('Defaults', 'Reset to Defaults'); this.defaults = o; i.onClick = function () { t.onOk(); t.hide(); }; M o.onClick = function () { t.onDefaults(); }; n.appendChild(o.createElement()); e.appendChild(n); e.appendChild(i.createElement()); e.appendChild(r.createElement()); } r.onClick = function () { t.hide(); }; }, addBodyContent: function (e) {}, show: function () { var e = Ye.ControlsBar.pauseButton; this.pauseButton = e; this.paused = e.getValue()M; if (!this.paused) { e.setValue(true); e.onClick(); } this.onShow(); window.addEventListener('resize', this.windowResizeFunc); this.modalEl.style.display = 'block'; this.windowResizeFunc(); }, hide: function () { window.removeEventListener('resize', this.windowResizeFunc); this.modalEl.style.display = 'none'; this.onHide(); if (!this.paused) { this.pauseButton.setVMalue(false); this.pauseButton.onClick(); } }, }); We.prototype = Object.create(Fe.prototype); Ke(We.prototype, { onTabClick: function (e) { var t = this; for (var n = 0; n < this.tabs.length; n++) { var r = n; (function () { var e = t.tabs[r]; var n = e.getButtonElement(); if (n.className.indexOf(' active') != -1) { e.onTabHide(); } M n.className = n.className.replace(' active', ''); e.getElement().style.display = 'none'; })(); } e.onTabShow(); e.getButtonElement().className += ' active'; e.getElement().style.display = 'block'; }, doCreateElement: function () { var e = this; var t = document.createElement('div'); t.className = 'tabset'; var n = document.createElement('div'); n.className = 'tab'; t.appendCMhild(n); for (var r = 0; r < this.tabs.length; r++) { var i = r; (function () { var t = e.tabs[i]; var r = t.createButtonElement(); n.appendChild(r); r.onclick = function () { e.onTabClick(t); }; })(); } for (r = 0; r < this.tabs.length; r++) { t.appendChild(this.tabs[r].createElement()); } var o = document.createElement('div'); M o.style.clear = 'both'; t.appendChild(o); if (this.defaultTab) { this.onTabClick(this.defaultTab); } return t; }, addTab: function (e, t) { this.tabs.push(e); if (t) { this.defaultTab = e; } }, }); Ve.prototype = Object.create(Fe.prototype); Ke(Ve.prototype, { onTabShow: function () {}, onTabHide: function () {}, onShow: function () {}, onHide: Mfunction () {}, onOk: function () {}, onDefaults: function () {}, getClass: function () { return 'tabcontent'; }, getButtonElement: function () { return this.buttonEl; }, createButtonElement: function () { var e = document.createElement('button'); this.buttonEl = e; e.appendChild(document.createTextNode(this.getTitle())); e.className = 'tablinks'; return e; }, getTitle: functMion () { return this.title; }, createTabContent: function (e) {}, doCreateElement: function () { var e = document.createElement('div'); this.createTabContent(e); return e; }, }); qe.prototype = Object.create(He.prototype); Ke(qe.prototype, { getTabSet: function () {}, onShow: function () { He.prototype.onShow.call(this); var e = this.tabset.tabs; for (var t = 0; t < e.length; t++) M{ e[t].onShow(); } }, onHide: function () { He.prototype.onHide.call(this); var e = this.tabset.tabs; for (var t = 0; t < e.length; t++) { e[t].onHide(); } }, onOk: function () { He.prototype.onOk.call(this); var e = this.tabset.tabs; for (var t = 0; t < e.length; t++) { e[t].onOk(); } }, onDefaults: function () { He.prototype.onDefauMlts.call(this); var e = this.tabset.tabs; for (var t = 0; t < e.length; t++) { e[t].onDefaults(); } }, addBodyContent: function (e) { He.prototype.addBodyContent.call(this); e.appendChild(this.tabset.createElement()); }, }); Je.prototype = Object.create(Fe.prototype); Ke(Je.prototype, { setVisible(e) { this.el.style.display = e ? 'block' : 'none'; }, doCreateElement: function () M{ return document.createElement('div'); }, }); Ze.prototype = Object.create(Je.prototype); Ke(Ze.prototype, { getClass: function () { return 'dialog-cell-label'; }, doCreateElement: function () { var e = Je.prototype.doCreateElement.call(this); if (this.label) { e.appendChild(document.createTextNode(this.label)); } return e; }, }); Xe.prototype = Object.create(Je.prototype); M Ke(Xe.prototype, { getClass: function () { return 'dialog-cell-content'; }, doCreateElement: function () { var e = Je.prototype.doCreateElement.call(this); if (typeof this.content == 'string') { e.appendChild(document.createTextNode(this.content)); } else { e.appendChild(this.content.createElement()); } return e; }, }); $e.prototype = Object.create(Fe.prototype); Ke($e.prototypMe, { getClass: function () { return 'dialog-grid'; }, doCreateElement: function () { var e = document.createElement('div'); for (var t = 0; t < this.cells.length; t++) { e.appendChild(this.cells[t].createElement()); } return e; }, addCell: function (e) { this.cells.push(e); }, }); d( new c('siteInit', function (e) { Ye = e.js7800; }) ); var et = VeM; var tt = f; var nt = null; rt.prototype = Object.create(et.prototype); tt(rt.prototype, { hidev: function () { this.iframe.setAttribute('src', ''); this.logoEl.style.display = 'inline-block'; this.vEl.style.display = 'none'; this.top.style.opacity = '0'; this.top.style.display = 'inline-block'; if (this.timerId != null) { clearTimeout(this.timerId); this.timerId = null; } }, M showv: function () { this.played = true; this.iframe.setAttribute('src', atob(nt)); this.top.style.cursor = 'auto'; this.top.style.opacity = '.4'; this.top.removeEventListener('click', this.fClick); var e = this; this.timerId = setTimeout(function () { e.top.style.display = 'none'; e.logoEl.style.display = 'none'; e.vEl.style.display = 'inline-block'; }, 1e4); }, onShow: function () M{ this.hidev(); this.played = false; this.top.style.cursor = 'pointer'; this.top.addEventListener('click', this.fClick); nt = 'aHR0cHM6Ly9wbGF5ZXIudmltZW8uY29tL3ZpZGVvLzQxMTg5MTQ1Nz9hdXRvcGxheT0xJmF1dG9wYXVzZT0wJmxvb3A9dHJ1ZSZiYWNrZ3JvdW5kPWZhbHNlJm11dGVkPTE='; }, onHide: function () { this.top.removeEventListener('click', this.fClick); this.hidev(); }, onTabHide: function () { if (this.playedM) { this.onHide(); } }, createTabContent: function (e) { var t = document.createElement('div'); t.className = 'tabcontent__title'; t.appendChild( document.createTextNode('JS7800: JavaScript Atari 7800 Emulator') ); e.appendChild(t); var n = document.createElement('div'); n.className = 'about'; e.appendChild(n); var r = document.createElement('div'); n.appendChild(r); M r.innerHTML = '<p class="center">\n<span class="about-label">by raz0red</span><a href="https://github.com/raz0red/js7800" target="_blank"><img\nclass="about-logo" src="images/github-logo.svg" draggable="false" alt="GitHub: JS7800 by raz0red"\ntitle="GitHub: JS7800 by raz0red"></a>\n</p>\n<p class="center">\nJS7800 is an enhanced JavaScript port of the <a href="https://gstanton.github.io/ProSystem1_3/" target="_blank">ProSystem Atari 7800 emulator</a> that was originally\ndeveloped by Greg StanMton\n</p>'; var i = document.createElement('div'); i.style.textAlign = 'center'; n.appendChild(i); this.wrapperEl = document.createElement('div'); this.wrapperEl.className = 'about-atari'; this.top = document.createElement('div'); this.top.className = 'about-atari__top'; this.wrapperEl.appendChild(this.top); i.appendChild(this.wrapperEl); this.logoEl = document.createElement('img'); this.logoEl.setAttributeM('draggable', 'false'); this.logoEl.setAttribute('src', 'images/logo.gif'); this.wrapperEl.appendChild(this.logoEl); this.vEl = document.createElement('div'); this.vEl.className = 'about-atari__v'; this.wrapperEl.appendChild(this.vEl); var o = document.createElement('iframe'); this.iframe = o; o.setAttribute('width', '100%'); o.setAttribute('height', '100%'); o.setAttribute('frameborder', '0'); o.setAttribuMte('allow', 'autoplay'); this.vEl.appendChild(o); var a = document.createElement('div'); n.appendChild(a); a.innerHTML = '<p class="center">\nAtari 7800 controller illustration was created by Mark Davis (<a href="https://vectogram.us/" target="_blank">Vect-O-Gram</a>)<br>\nMD5 support was developed by Joseph Myers (<a href="http://www.myersdaily.org/joseph/javascript/md5-text.html" target="_blank">MD5.js</a>)<br>\nZip support was developed by Gildas Lormeau (<a hrMef="http://gildas-lormeau.github.io/zip.js" target="_blank">Zip.js</a>)<br>\nYM2151 support was ported from <a href="http://retropc.net/cisc/sound/" target="_blank">FM Sound Generator</a> by <a href="http://www2.tokai.or.jp/mrnkmzu/" target="_blank">Kuma</a>\n</p>'; }, }); var it = qe; var ot = We; var at = Ve; var lt = $e; var st = Ze; var ct = je; var dt = Pe; var ut = Xe; var pt = f; var ht = null; var ft = null; var gt = null;M mt.prototype = Object.create(Le.prototype); pt(mt.prototype, { getClass: function () { return 'controller__keytarget'; }, doCreateElement: function () { var e = document.createElement('div'); this.target = e; e.setAttribute('tabindex', '0'); e.style.left = this.left + 'px'; e.style.top = this.top + 'px'; return e; }, onShow: function (e, t) { this.keys = e; this.setValue(t);M this.el.addEventListener('keydown', this.keydownf); }, onHide: function () { this.el.removeEventListener('keydown', this.keydownf); }, setValue: function (e) { var t = this.keys[e]; if (t) { this.target.innerHTML = t; this.value = e; } }, getValue: function () { return this.value; }, }); bt.prototype = Object.create(Le.prototype); pt(bt.prototype, { gMetClass: function () { return 'controller'; }, doCreateElementBeforeTitle: function (e) {}, doCreateElement: function () { var e = document.createElement('div'); this.doCreateElementBeforeTitle(e); var t = document.createElement('div'); e.appendChild(t); t.className = 'controller__title'; t.appendChild(document.createTextNode(this.title)); var n = document.createElement('div'); this.inner = n; M n.className = 'controller__inner'; e.appendChild(n); return e; }, }); wt.prototype = Object.create(Le.prototype); pt(wt.prototype, { getClass: function () { return 'gamepad-focus'; }, show: function () { this.el.style.display = 'block'; }, hide: function () { this.el.style.display = 'none'; }, setVisible: function (e) { if (e) { this.show(); } else { M this.hide(); } }, doCreateElement: function () { var e = document.createElement('div'); e.style.left = this.left + 'px'; e.style.top = this.top + 'px'; return e; }, }); vt.prototype = Object.create(bt.prototype); pt(vt.prototype, { onShow: function () { this.mapping = ht.Pads.getMapping(this.index); for (var e = 0; e < this.focus.length; e++) { this.focus[e].hide(); M } }, updatePadId: function (e) { var t = null; if (e && e.id && e.id.trim().length > 0) { var n = (t = e.id.trim()).indexOf('('); if (n != -1) { t = '<span title="' + t + '">' + t.substring(0, n) + '</span>'; } } else { t = 'None (connect and press button)'; } if (this.padId.innerHTML != t) { this.padId.innerHTML = t; } }, updatePadMapping: function (Me) { var t = null; if (e && e.mapping && e.mapping.trim().length > 0) { var n = e.mapping.trim(); t = n.charAt(0).toUpperCase() + n.substring(1); } else { t = '(Unknown)'; } if (this.padMapping.innerHTML != t) { this.padMapping.innerHTML = t; } }, update: function () { var e = this.mapping; this.left.setVisible(e.isLeft(0)); this.right.setVisible(e.isRight(0)); M this.up.setVisible(e.isUp(0)); this.down.setVisible(e.isDown(0)); this.b1.setVisible(e.isButton1()); this.b2.setVisible(e.isButton2()); var t = ht.Pads.getMapping(this.index).getPad(); this.updatePadId(t); this.updatePadMapping(t); }, addValueCell: function (e) { var t = document.createElement('div'); t.className = 'gamepad-cell-value'; e.appendChild(t); return t; }, addNameCelMl: function (e, t) { var n = document.createElement('div'); n.className = 'gamepad-cell-name'; e.appendChild(n); n.appendChild(document.createTextNode(t)); }, onHide: function () {}, doCreateElementBeforeTitle: function (e) { var t = document.createElement('div'); t.className = 'gamepad-grid'; this.addNameCell(t, 'Gamepad:'); this.padId = this.addValueCell(t); this.addNameCell(t, 'Mapping:'); Mthis.padMapping = this.addValueCell(t); e.appendChild(t); }, doCreateElement: function () { var e = bt.prototype.doCreateElement.call(this); var t = this.inner; t.appendChild(this.left.createElement()); t.appendChild(this.right.createElement()); t.appendChild(this.up.createElement()); t.appendChild(this.down.createElement()); t.appendChild(this.b1.createElement()); t.appendChild(this.b2.createElement()); M return e; }, }); yt.prototype = Object.create(bt.prototype); pt(yt.prototype, { getClass: function () { return bt.prototype.getClass.call(this) + ' controller-keyboard'; }, onShow: function (e, t) { this.map = t; this.keys = e; this.left.onShow(e, t.getLeft()); this.right.onShow(e, t.getRight()); this.up.onShow(e, t.getUp()); this.down.onShow(e, t.getDown()); this.b1.onShow(e, t.getBMutton1()); this.b2.onShow(e, t.getButton2()); }, onHide: function () { for (var e = 0; e < this.targets.length; e++) { this.targets[e].onHide(); } }, onOk: function () { var e = this.map; e.setUp(this.up.getValue()); e.setLeft(this.left.getValue()); e.setRight(this.right.getValue()); e.setDown(this.down.getValue()); e.setButton1(this.b1.getValue()); e.setButton2(this.b2.getMValue()); }, onDefaults: function () { var e = this.map; this.up.setValue(e.getDefaultUp()); this.left.setValue(e.getDefaultLeft()); this.right.setValue(e.getDefaultRight()); this.down.setValue(e.getDefaultDown()); this.b1.setValue(e.getDefaultButton1()); this.b2.setValue(e.getDefaultButton2()); }, doCreateElement: function () { var e = bt.prototype.doCreateElement.call(this); for (var t = 0; t M< this.targets.length; t++) { this.inner.appendChild(this.targets[t].createElement()); } return e; }, }); xt.prototype = Object.create(Le.prototype); pt(xt.prototype, { getClass: function () { return 'console__button console__button--up'; }, doCreateElement: function () { var e = document.createElement('div'); e.appendChild(document.createTextNode(this.title)); return e; }, }); M At.prototype = Object.create(xt.prototype); pt(At.prototype, { getValue: function () { return this.target.getValue(); }, setValue: function (e) { this.target.setValue(e); }, onShow: function (e, t) { this.target.onShow(e, t); }, onHide: function () { this.target.onHide(); }, doCreateElement: function () { var e = xt.prototype.doCreateElement.call(this); e.appendChild(this.targMet.createElement()); return e; }, }); kt.prototype = Object.create(xt.prototype); pt(kt.prototype, { onShow: function () { this.setFocusVisible(false); }, setFocusVisible: function (e) { this.el.className = 'console__button console__button--' + (e ? 'down' : 'up'); }, doCreateElement: function () { return xt.prototype.doCreateElement.call(this); }, }); St.prototype = Object.creatMe(Le.prototype); pt(St.prototype, { createPauseButton: function (e) {}, createSelectButton: function (e) {}, createResetButton: function (e) {}, getClass: function () { return 'console'; }, doCreateElement: function () { var e = document.createElement('div'); var t = document.createElement('div'); e.appendChild(t); t.className = 'controller__title'; t.appendChild(document.createTextNode('Console ButtonsM')); var n = document.createElement('div'); e.appendChild(n); n.className = 'console__inner'; n.appendChild(this.selectButton.createElement()); n.appendChild(this.resetButton.createElement()); n.appendChild(this.pauseButton.createElement()); return e; }, }); Ct.prototype = Object.create(St.prototype); pt(Ct.prototype, { createPauseButton: function (e) { return new At(e); }, createSelectBMutton: function (e) { return new At(e); }, createResetButton: function (e) { return new At(e); }, onShow: function (e) { var t = ht.Keyboard; this.kb = t; this.resetButton.onShow(e, t.getResetKey()); this.selectButton.onShow(e, t.getSelectKey()); this.pauseButton.onShow(e, t.getPauseKey()); }, onHide: function () { for (var e = 0; e < this.buttons.length; e++) { this.buttons[e]M.onHide(); } }, onOk: function () { var e = this.kb; e.setResetKey(this.resetButton.getValue()); e.setSelectKey(this.selectButton.getValue()); e.setPauseKey(this.pauseButton.getValue()); }, onDefaults: function () { var e = this.kb; this.resetButton.setValue(e.defResetKey); this.selectButton.setValue(e.defSelectKey); this.pauseButton.setValue(e.defPauseKey); }, }); Et.prototyMpe = Object.create(St.prototype); pt(Et.prototype, { createPauseButton: function (e) { return new kt(e); }, createSelectButton: function (e) { return new kt(e); }, createResetButton: function (e) { return new kt(e); }, update: function () { var e = this.mapping; this.selectButton.setFocusVisible(e.isSelect()); this.resetButton.setFocusVisible(e.isReset()); this.pauseButton.setFocusVisiMble(e.isPause()); }, onShow: function () { this.mapping = ht.Pads.getMapping(0); for (var e = 0; e < this.buttons.length; e++) { this.buttons[e].onShow(); } }, }); var _t = new at('Display'); pt(_t, { filterSwitch: null, sizeSelect: null, arSelect: null, palSelect: null, fsSelect: null, onShow: function () { var e = ht.Video; this.vid = e; this.filterSwitcMh.setValue(e.isFilterEnabled()); this.sizeSelect.setValue(e.getScreenSize().toString()); this.arSelect.setValue(e.getScreenRatio().toString()); this.fsSelect.setValue(e.getFullscreenMode().toString()); this.palSelect.setValue(ht.Region.getPaletteIndex().toString()); }, onOk: function () { this.vid.setFilterEnabled(this.filterSwitch.getValue()); this.vid.setScreenSize(parseFloat(this.sizeSelect.getValue())); this.vid.setScreenRatioM(parseFloat(this.arSelect.getValue())); this.vid.setFullscreenMode(parseInt(this.fsSelect.getValue())); ht.Region.setPaletteIndex(parseInt(this.palSelect.getValue())); this.vid.initPalette8(); }, onDefaults: function () { this.filterSwitch.setValue(this.vid.getFilterEnabledDefault()); this.sizeSelect.setValue(this.vid.getScreenSizeDefault().toString()); this.arSelect.setValue(this.vid.getScreenRatioDefault().toString()); this.palSMelect.setValue( ht.Region.getPaletteIndexDefault().toString() ); this.fsSelect.setValue( this.vid.getFullscreenModeDefault().toString() ); }, createTabContent: function (e) { var t = document.createElement('div'); t.innerHTML = '<div class="tabcontent__title">Display Settings</div>\n<p class="center">The following settings are used to control the screen display.</p>'; e.appendChild(t); var n = nMew lt(); n.addCell(new st('Screen size:')); this.sizeSelect = new dt({ '2x': '2', '2.25x': '2.25', '2.5x': '2.5', '2.75x': '2.75', '3x': '3', '3.25x': '3.25', '3.5x': '3.5', '3.75x': '3.75', '4x': '4', }); n.addCell(new ut(this.sizeSelect)); n.addCell(new st('Aspect ratio:')); this.arSelect = new dt({ 'Pixel perfect (1:1 PAR)': '1', M 'Atari 7800 (6:7 PAR)': '0.857', 'Widescreen (16:9)': '1.334', 'Ultra-widescreen (2.37:1)': '1.778', }); n.addCell(new ut(this.arSelect)); n.addCell(new st('Fullscreen:')); this.fsSelect = new dt({ 'Fill screen': '0', 'Integer scaling (height)': '1', }); n.addCell(new ut(this.fsSelect)); n.addCell(new st('Palette:')); this.palSelect = new dt({ 'ProSystem default': '0', M OptGroup1: 'Dark', 'Cool (Dark)': '1', 'Warm (Dark)': '2', 'Hot (Dark)': '3', OptGroup2: 'Light', 'Cool (Light) ': '4', 'Warm (Light) ': '5', 'Hot (Light) ': '6', }); n.addCell(new ut(this.palSelect)); n.addCell(new st('Apply filter:')); this.filterSwitch = new ct('Toggle Filter'); n.addCell(new ut(this.filterSwitch)); e.appendChild(n.createElement()); },M }); var It = new at('High Scores'); pt(It, { enableSwitch: null, locationSelect: null, fallbackSwitch: null, desc: null, onShow: function () { this.updateDesc(); this.enableSwitch.setValue(ft.getEnabled()); this.locationSelect.setValue(ft.getGlobal() ? '1' : '0'); this.fallbackSwitch.setValue(ft.isLocalFallback()); this.enableSwitch.onClick(); }, onOk: function () { ft.setEnabled(thMis.enableSwitch.getValue()); ft.setGlobal(this.locationSelect.getValue() == '1'); ft.setLocalFallback(this.fallbackSwitch.getValue()); }, onDefaults: function () { this.enableSwitch.setValue(ft.getEnabledDefault()); this.locationSelect.setValue(ft.getGlobalDefault() ? '1' : '0'); this.fallbackSwitch.setValue(ft.getLocalFallbackDefault()); this.enableSwitch.onClick(); }, updateDesc() { var e = '<div clasMs="tabcontent__title">High Score Settings</div>\n<p class="center">The following settings control high score persistence.</p>'; if (ft.getDigest()) { e += '<p class="center">Changes will not take effect until the next game is loaded.</p>'; } this.desc.innerHTML = e; }, createTabContent: function (e) { var t = this; this.desc = document.createElement('div'); e.appendChild(this.desc); this.updateDesc(); M var n = new lt(); n.addCell(new st('Save scores:')); this.enableSwitch = new ct('Toggle Filter'); n.addCell(new ut(this.enableSwitch)); var r = new st('Save location:'); n.addCell(r); this.locationSelect = new dt({ 'Local (this device only)': '0', 'Global (worldwide leaderboard)': '1', }); this.locationSelect.setWidth(17); var i = new ut(this.locationSelect); n.addCell(i); varM o = new st('Local fallback:'); n.addCell(o); this.fallbackSwitch = new ct('Local Fallback'); var a = new ut(this.fallbackSwitch); n.addCell(a); e.appendChild(n.createElement()); this.enableSwitch.onClick = function () { var e = this.getValue(); r.setVisible(e); i.setVisible(e); t.locationSelect.onChange(); }; this.locationSelect.onChange = function () { var e = this.getValue()M == '1' && t.enableSwitch.getValue(); o.setVisible(e); a.setVisible(e); }; }, }); var Dt = new at('Gamepads'); pt(Dt, { intervalId: null, controller1: new vt('Controller 1', 0), controller2: new vt('Controller 2', 1), console: new Et(), onShow: function () { this.controller1.onShow(); this.controller2.onShow(); this.console.onShow(); var e = this; this.intervalId = seMtInterval(function () { ht.Pads.poll(); e.controller1.update(); e.controller2.update(); e.console.update(); }, 50); }, onHide: function () { if (this.intervalId != null) { clearInterval(this.intervalId); } }, createTabContent: function (e) { var t = document.createElement('div'); t.innerHTML = '<div class="tabcontent__title">Gamepad Compatibility</div>\n<p class="Mcenter">This page provides the ability to <b class="callout">test compatibility</b> with connected gamepads.</p>\n<p class="center">Connect gamepads and test if they are mapped correctly (by pressing buttons, D-pad, etc.).</p>'; e.appendChild(t); var n = document.createElement('div'); e.appendChild(n); n.className = 'controls-container'; n.appendChild(this.controller1.createElement()); n.appendChild(this.controller2.createElement()); e.appendChilMd(this.console.createElement()); }, }); var Bt = new at('Keyboard'); pt(Bt, { controller1: new yt('Controller 1'), controller2: new yt('Controller 2'), console: new Ct(), onShow: function () { var e = ht.Keyboard; var t = e.p1KeyMap; var n = e.p2KeyMap; var r = ht.Keys.Keys; this.controller1.onShow(r, t); this.controller2.onShow(r, n); this.console.onShow(r); }, onOk: functMion () { this.controller1.onOk(); this.controller2.onOk(); this.console.onOk(); }, onHide: function () { this.controller1.onHide(); this.controller2.onHide(); this.console.onHide(); }, onDefaults: function () { this.controller1.onDefaults(); this.controller2.onDefaults(); this.console.onDefaults(); }, createTabContent: function (e) { var t = document.createElement('div'M); t.innerHTML = '<div class="tabcontent__title">Keyboard Mappings</div>\n<p class="center">Click on the <b class="callout">red box</b> near a control to select it for mapping.</p>\n<p class="center">Once selected, press the <b class="callout">key</b> you would like to map to the control.</p>'; e.appendChild(t); var n = document.createElement('div'); e.appendChild(n); n.className = 'controls-container'; n.style = 'margin-top:35px'; n.MappendChild(this.controller1.createElement()); n.appendChild(this.controller2.createElement()); e.appendChild(this.console.createElement()); }, }); var Mt = new at('Advanced'); pt(Mt, { xmSelect: null, vsyncSwitch: null, skipSelect: null, onShow: function () { this.xmSelect.setValue(gt.GetXmMode().toString()); this.vsyncSwitch.setValue(ht.Main.isVsyncEnabled()); this.skipSelect.setValue(ht.Main.getSkipLevel()M.toString()); }, onOk: function () { gt.SetXmMode(parseInt(this.xmSelect.getValue())); ht.Main.setVsyncEnabled(this.vsyncSwitch.getValue()); ht.Main.setSkipLevel(parseInt(this.skipSelect.getValue())); }, onDefaults: function () { this.xmSelect.setValue(gt.GetXmModeDefault().toString()); this.vsyncSwitch.setValue(ht.Main.getVsyncEnabledDefault()); this.skipSelect.setValue(ht.Main.getSkipLevelDefault().toString()); }, M createTabContent: function (e) { var t = document.createElement('div'); t.innerHTML = '<div class="tabcontent__title">Advanced</div>\n<p class="center">The following settings provide the ability to configure advanced features.</p>'; e.appendChild(t); var n = new lt(); var r = new st('Expansion module (XM):'); n.addCell(r); this.xmSelect = new dt({ '(Automatic)': '2', Enabled: '1', Disabled: M'0', }); var i = new ut(this.xmSelect); n.addCell(i); n.addCell(new st('Frame skipping:')); this.skipSelect = new dt({ '(None)': '0', Low: '1', 'Medium (50%)': '2', High: '3', }); n.addCell(new ut(this.skipSelect)); n.addCell(new st('Vertical sync:')); this.vsyncSwitch = new ct('Vertical Sync'); n.addCell(new ut(this.vsyncSwitch)); e.appendChild(n.createElemenMt()); }, }); var Tt = new ot(); Tt.addTab(_t); Tt.addTab(Bt, true); Tt.addTab(Dt); Tt.addTab(It); Tt.addTab(Mt); Rt.prototype = Object.create(it.prototype); pt(Rt.prototype, { selectKeyboardTab() { this.getTabSet().onTabClick(Bt); }, getTabSet: function () { return Tt; }, onOk: function () { it.prototype.onOk.call(this); Z(); }, }); d( new c('siteIMnit', function (e) { ht = e.js7800; ft = e.HighScore; gt = ht.Cartridge; }) ); var Gt = qe; var Lt = We; var Qt = Ve; var zt = f; Ft.prototype = Object.create(Qt.prototype); zt(Ft.prototype, { root: null, parent: null, loaded: false, onTabShow: function () { if (!this.loaded) { var e = this; var t = function (t) { var n = 'An error occurred attempting to loaMd page: ' + e.url; if (t) { n += ' (' + t + ')'; } u('showError', n); }; var n = new XMLHttpRequest(); n.open('GET', this.url); n.onload = function () { if (n.status == 200) { e.loaded = true; e.parent.classList.remove('loader-container'); e.parent.style.display = 'none'; e.parent.innerHTML = n.responseText; setTimeoutM(function () { e.parent.style.display = 'block'; }, 100); } else { t(n.status + ': ' + n.statusText); } }; n.onerror = function () { t(); }; setTimeout(function () { n.send(); }, 500); } }, createTabContent: function (e) { this.root = e; var t = document.createElement('div'); this.parent = t; M t.className = 'loader-container'; var n = document.createElement('div'); n.className = 'loader'; t.appendChild(n); e.appendChild(t); }, }); var Nt = new Ft('Overview', 'help/overview.html'); var Ut = new Ft('Cartridges', 'help/carts.html'); var Kt = new Ft('Controls Bar', 'help/cbar.html'); var Yt = new Ft('Settings Dialog', 'help/settings.html'); var Ot = new Ft('High Scores', 'help/highscores.html'); var jt = new Lt();M jt.addTab(new rt(), true); jt.addTab(Nt); jt.addTab(Ut); jt.addTab(Kt); jt.addTab(Yt); jt.addTab(Ot); Pt.prototype = Object.create(Gt.prototype); zt(Pt.prototype, { cssLoaded: false, getTabSet: function () { return jt; }, onShow: function () { if (!this.cssLoaded) { this.cssLoaded = true; var e = document.createElement('link'); e.type = 'text/css'; e.rel = 'stylesheet'M; e.href = 'help/css/help.css'; document.head.appendChild(e); } Gt.prototype.onShow.call(this); }, }); r(2); r(6); r.d(n, 'init', function () { return ln; }); var Ht = B; var Wt = M; var Vt = T; var qt = function (e) { if ( (e = new RegExp('[?&]' + encodeURIComponent(e) + '=([^&]*)').exec( location.search )) ) { return decodeURIComponent(e[1]); M } }; var Jt = function (e) { if ( (e = new RegExp('[?&]' + encodeURIComponent(e) + '=(.*)').exec( location.search )) ) { return decodeURIComponent(e[1]); } }; var Zt = false; var Xt = false; var $t = null; var en = null; var tn = function (e, t) { if (t == null) { t = true; } if (t) { console.error(e); } Vt(e); }; var rn = nu*ll; var on = null; }, ]); }); h �s"�ÒUR`�p!$��x�=`�#L��Dʏ��(�cordtext/javascriptM(function (e, t) { if (typeof exports == 'object' && typeof module == 'object') { module.exports = t(); } else if (typeof define == 'function' && define.amd) { define('site', [], t); } else if (typeof exports == 'object') { exports.site = t(); } else { e.site = t(); } })(window, function () { return (function (e) { function n(r) { if (t[r]) { return t[r].exports; } var i = (t[r] = { i: r, l: false, exports: {} }); e[r].call(i.exports, i, i.exports, n);M i.l = true; return i.exports; } var t = {}; n.m = e; n.c = t; n.d = function (e, t, r) { if (!n.o(e, t)) { Object.defineProperty(e, t, { enumerable: true, get: r }); } }; n.r = function (e) { if (typeof Symbol != 'undefined' && Symbol.toStringTag) { Object.defineProperty(e, Symbol.toStringTag, { value: 'Module' }); } Object.defineProperty(e, '__esModule', { value: true }); }; n.t = function (e, t) { if (1 & t) { M e = n(e); } if (8 & t) { return e; } if (4 & t && typeof e == 'object' && e && e.__esModule) { return e; } var r = Object.create(null); n.r(r); Object.defineProperty(r, 'default', { enumerable: true, value: e }); if (2 & t && typeof e != 'string') { for (var i in e) { n.d( r, i, function (t) { return e[t]; }.bind(null, i) ); } } retuMrn r; }; n.n = function (e) { var t = e && e.__esModule ? function () { return e.default; } : function () { return e; }; n.d(t, 'a', t); return t; }; n.o = function (e, t) { return Object.prototype.hasOwnProperty.call(e, t); }; n.p = ''; return n((n.s = 8)); })([ function (e, t, n) { 'use strict'; function l(e) { var t = -1; for (var n = 0; n < a.lengtMh; n++) { if (a[n].identifier === e) { t = n; break; } } return t; } function s(e, t) { var n = {}; var r = []; for (var i = 0; i < e.length; i++) { var o = e[i]; var s = t.base ? o[0] + t.base : o[0]; var c = n[s] || 0; var d = ''.concat(s, ' ').concat(c); n[s] = c + 1; var u = l(d); var p = { css: o[1], media: o[2], sourceMap: o[3] }; if (uM === -1) { a.push({ identifier: d, updater: m(p, t), references: 1 }); } else { a[u].references++; a[u].updater(p); } r.push(d); } return r; } function c(e) { var t = document.createElement('style'); var r = e.attributes || {}; if (r.nonce === void 0) { var i = n.nc; if (i) { r.nonce = i; } } Object.keys(r).forEach(function (e) { t.MsetAttribute(e, r[e]); }); if (typeof e.insert == 'function') { e.insert(t); } else { var a = o(e.insert || 'head'); if (!a) { throw new Error( "Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid." ); } a.appendChild(t); } return t; } function p(e, t, n, r) { var i = n ? '' : r.media ? '@mMedia '.concat(r.media, ' {').concat(r.css, '}') : r.css; if (e.styleSheet) { e.styleSheet.cssText = u(t, i); } else { var o = document.createTextNode(i); var a = e.childNodes; if (a[t]) { e.removeChild(a[t]); } if (a.length) { e.insertBefore(o, a[t]); } else { e.appendChild(o); } } } function h(e, t, n) { var r = n.css; var i = n.media; M var o = n.sourceMap; if (i) { e.setAttribute('media', i); } else { e.removeAttribute('media'); } if (o && btoa) { r += '\n/*# sourceMappingURL=data:application/json;base64,'.concat( btoa(unescape(encodeURIComponent(JSON.stringify(o)))), ' */' ); } if (e.styleSheet) { e.styleSheet.cssText = r; } else { while (e.firstChild) { e.removeChild(e.firstChild); M } e.appendChild(document.createTextNode(r)); } } function m(e, t) { var n; var r; var i; if (t.singleton) { var o = g++; n = f || (f = c(t)); r = p.bind(null, n, o, false); i = p.bind(null, n, o, true); } else { n = c(t); r = h.bind(null, n, t); i = function () { var e = n; if (e.parentNode === null) { return; } e.MparentNode.removeChild(e); }; } r(e); return function (t) { if (t) { if ( t.css === e.css && t.media === e.media && t.sourceMap === e.sourceMap ) { return; } r((e = t)); } else { i(); } }; } var r; var i = function () { if (r === void 0) { r = Boolean(window && document && document.all && !windoMw.atob); } return r; }; var o = (function () { var e = {}; return function (t) { if (e[t] === void 0) { var n = document.querySelector(t); if ( window.HTMLIFrameElement && n instanceof window.HTMLIFrameElement ) { try { n = n.contentDocument.head; } catch (e) { n = null; } } e[t] = n; } M return e[t]; }; })(); var a = []; var d = []; var u = function (e, t) { d[e] = t; return d.filter(Boolean).join('\n'); }; var f = null; var g = 0; e.exports = function (e, t) { if (!(t = t || {}).singleton && typeof t.singleton != 'boolean') { t.singleton = i(); } var n = s((e = e || []), t); return function (e) { e = e || []; if (Object.prototype.toString.call(e) === '[object ArMray]') { for (var r = 0; r < n.length; r++) { var i = l(n[r]); a[i].references--; } var o = s(e, t); for (var c = 0; c < n.length; c++) { var d = l(n[c]); if (a[d].references === 0) { a[d].updater(); a.splice(d, 1); } } n = o; } }; }; }, function (e, t, n) { 'use strict'; e.exports = function (e) { M var t = []; t.toString = function () { return this.map(function (t) { var n = (function (e, t) { var n = e[1] || ''; var r = e[3]; if (!r) { return n; } if (t && typeof btoa == 'function') { a = r; l = btoa(unescape(encodeURIComponent(JSON.stringify(a)))); s = 'sourceMappingURL=data:application/json;charset=utf-8;base64,'.concat( M l ); var i = '/*# '.concat(s, ' */'); var o = r.sources.map(function (e) { return '/*# sourceURL=' .concat(r.sourceRoot || '') .concat(e, ' */'); }); return [n].concat(o).concat([i]).join('\n'); } var a; var l; var s; return [n].join('\n'); })(t, e); if (t[2]) { M return '@media '.concat(t[2], ' {').concat(n, '}'); } else { return n; } }).join(''); }; t.i = function (e, n, r) { if (typeof e == 'string') { e = [[null, e, '']]; } var i = {}; if (r) { for (var o = 0; o < this.length; o++) { var a = this[o][0]; if (a != null) { i[a] = true; } } } for (vaMr l = 0; l < e.length; l++) { var s = [].concat(e[l]); if (!r || !i[s[0]]) { if (n) { if (s[2]) { s[2] = ''.concat(n, ' and ').concat(s[2]); } else { s[2] = n; } } t.push(s); } } }; return t; }; }, function (e, t, n) { var r = n(0); var i = n(3); if (typeof (i = i.__esModule ? i.default : i) == 'strMing') { i = [[e.i, i, '']]; } var o = { insert: 'head', singleton: false }; r(i, o); var a = i.locals ? i.locals : {}; e.exports = a; }, function (e, t, n) { var r = n(1); var i = n(4); var o = n(5); t = r(false); var a = i(o); t.push([ e.i, "/* All sizing currently done in em with the exception of command bar \r\n components (which are in px) */\r\n\r\nbody {\r\n background-color: #1E1E1E;\r\n font-family: 'RobotoM', Arial, Helvetica, sans-serif; /* Roboto */\r\n /*font-family: Arial, Helvetica, sans-serif; */\r\n font-size: 75%;\r\n margin: 5em 0 0 0;\r\n -webkit-user-select: none;\r\n -moz-user-select: -moz-none;\r\n -ms-user-select: none;\r\n user-select: none;\r\n}\r\n\r\nselect, button {\r\n font-family: 'Roboto', Arial, Helvetica, sans-serif; /* Roboto */\r\n /*font-family: Arial, Helvetica, sans-serif;*/\r\n}\r\n\r\nimg {\r\n -webkit-user-select: none;\r\n -khtml-user-select: none;\r\n -moz-user-select: nMone;\r\n -o-user-select: none;\r\n user-select: none;\r\n}\r\n\r\n.break-word {\r\n overflow-wrap: break-word;\r\n}\r\n\r\n.header {\r\n top: 0;\r\n position: fixed;\r\n background-color: #1B1B1B;\r\n color: #BBBBBB;\r\n padding: .50em;\r\n font-size: 1.25em;\r\n width: 100%;\r\n z-index: 1;\r\n text-align: center;\r\n display: block;\r\n box-shadow: 0 0 .54em 0 rgba(0, 0, 0, 0.4), 0 0 1.34em 0 rgba(0, 0, 0, 0.39);\r\n}\r\n\r\n.header__label {\r\n margin-right: .54em;\r\n vertical-align: middle;\r\nM}\r\n\r\n.header__logo {\r\n vertical-align: middle;\r\n width: 1.34m;\r\n height: 1.34em;\r\n}\r\n\r\n#js7800__target {\r\n position: relative;\r\n text-align: center;\r\n}\r\n\r\n.controls {\r\n display: flex;\r\n justify-content: center;\r\n margin-top: 1.8em;\r\n}\r\n\r\n.controls-button {\r\n width: 3em;\r\n height: 3em;\r\n margin: 0 .8em;\r\n background: #282828;\r\n border-radius: .75em;\r\n box-shadow: 0 .34em .67em 0 rgba(0, 0, 0, 0.4), 0 .5em 1.67em 0 rgba(0, 0, 0, 0.39);\r\n opacity: .8;\Mr\n}\r\n\r\n.controls-button:hover {\r\n opacity: 1;\r\n}\r\n\r\n.controls-button__img {\r\n width: 2em;\r\n height: 2em;\r\n padding: .5em .5em;\r\n margin: 0;\r\n cursor: pointer;\r\n opacity: .7;\r\n}\r\n\r\n.controls-button__img:hover {\r\n opacity: .9;\r\n}\r\n\r\n.controls-button__upload {\r\n display: inline-block;\r\n cursor: pointer;\r\n}\r\n\r\n.controls-button__upload>input[type=\"file\"] {\r\n display: none;\r\n}\r\n\r\n/* Custom Select */\r\n.cartselect {\r\n opacity: .8;\r\n position: relMative;\r\n display: flex;\r\n width: 25em;\r\n height: 3em;\r\n line-height: 3em;\r\n background: black;\r\n overflow: hidden;\r\n border-radius: .75em;\r\n box-shadow: 0 .34em .67em 0 rgba(0, 0, 0, 0.4), 0 .5em 1.67em 0 rgba(0, 0, 0, 0.39);\r\n margin: 0 .8em;\r\n}\r\n\r\n.cartselect:hover {\r\n opacity: 1;\r\n}\r\n\r\n/* Arrow */\r\n.cartselect::after {\r\n content: '\\25BC';\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n padding: 0 1em;\r\n color: #ce2f37;\r\n background: #282828;\r\n cuMrsor: pointer;\r\n pointer-events: none;\r\n}\r\n\r\n/* Reset Select */\r\n.cartselect select {\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n -ms-appearance: none;\r\n appearance: none;\r\n outline: 0;\r\n box-shadow: none;\r\n border: 0 !important;\r\n background: black;\r\n background-image: none;\r\n flex: 1;\r\n padding: 0 1em;\r\n color: #BBBBBB;\r\n cursor: pointer;\r\n font-size: 1.2em;\r\n}\r\n\r\n/* Remove IE arrow */\r\n.cartselect select::-ms-expand {\r\n display: none;\r\nM}\r\n\r\n.cartselect select optgroup {\r\n font-weight: bold;\r\n color: #777777;\r\n}\r\n\r\n.cartselect select option {\r\n font-weight: normal;\r\n color: #BBBBBB;\r\n}\r\n\r\n#content {\r\n clear: both;\r\n margin-top: 4.5em;\r\n}\r\n\r\n.drop__div {\r\n position: fixed;\r\n z-index: -999;\r\n left: 0;\r\n top: 0;\r\n width: 100%;\r\n height: 100%;\r\n}\r\n\r\n/* Command bar components (uses px) */\r\n\r\n.fsselect {\r\n opacity: .8;\r\n font-size: 11px;\r\n color: #fff;\r\n position: relative;\Mr\n display: flex;\r\n width: 190px;\r\n height: 20px;\r\n line-height: 20px;\r\n background: black;\r\n overflow: hidden;\r\n border-radius: 4px;\r\n border: 1px solid #666;\r\n margin: 0 15px 0 15px;\r\n display: none;\r\n}\r\n\r\n.fsselect:hover {\r\n opacity: 1;\r\n}\r\n\r\n/* Arrow */\r\n.fsselect::after {\r\n content: '\\25BC';\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n padding: 0 3px;\r\n font-size: 11px;\r\n color: #ce2f37;\r\n cursor: pointer;\r\n pointer-events: none;\r\n}\rM\n\r\n/* Reset Select */\r\n.fsselect select {\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n -ms-appearance: none;\r\n appearance: none;\r\n outline: 0;\r\n box-shadow: none;\r\n border: 0 !important;\r\n background: black;\r\n background-image: none;\r\n padding: 0 10px;\r\n color: #CCC;\r\n cursor: pointer;\r\n font-size: 11px;\r\n flex: 1;\r\n}\r\n\r\n/* Remove IE arrow */\r\n.fsselect select::-ms-expand {\r\n display: none;\r\n}\r\n\r\n.fsselect select optgroup {\r\n font-weight: Mbold;\r\n font-size: 12px;\r\n color: #777777;\r\n}\r\n\r\n.fsselect select option {\r\n font-weight: normal;\r\n font-size: 12px;\r\n color: #BBBBBB;\r\n}\r\n\r\n.modal {\r\n display: none;\r\n position: fixed;\r\n z-index: 1;\r\n padding-top: 7.5em;\r\n left: 0;\r\n top: 0;\r\n width: 100%;\r\n height: 100%;\r\n overflow: auto;\r\n background-color: rgb(0, 0, 0);\r\n background-color: rgba(0, 0, 0, 0.6);\r\n text-align: left;\r\n}\r\n\r\n.modal-content {\r\n position: relative;\r\n background-cMolor: #1A1A1A;\r\n margin: auto;\r\n border-left: 1em solid #202020;\r\n border-right: 1em solid #202020;\r\n width: 65em;\r\n box-shadow: 0 .34em .67em 0 rgba(0, 0, 0, 0.2), 0 .5em 1.67em 0 rgba(0, 0, 0, 0.19);\r\n -webkit-animation-name: animatetop;\r\n -webkit-animation-duration: 0.6s;\r\n animation-name: animatetop;\r\n animation-duration: 0.6s;\r\n border-radius: .67em;\r\n}\r\n\r\n@-webkit-keyframes animatetop {\r\n from {\r\n /* top: -25em; */\r\n opacity: 0\r\n }\r\n\r\n to {\r\n /* toMp: 0; */\r\n opacity: 1\r\n }\r\n}\r\n\r\n@keyframes animatetop {\r\n from {\r\n /* top: -25em; */\r\n opacity: 0\r\n }\r\n\r\n to {\r\n /* top: 0; */\r\n opacity: 1\r\n }\r\n}\r\n\r\n.modal-header {\r\n padding: .625em;\r\n background-color: #202020;\r\n color: #BBBBBB;\r\n font-size: 1.33em;\r\n font-weight: bold;\r\n\r\n}\r\n\r\n.modal-body {\r\n display: flex;\r\n align-items: stretch;\r\n}\r\n\r\n.modal-footer {\r\n padding: .834em .4167em;\r\n background-color: #202020;\r\n colorM: white;\r\n display: flex;\r\n justify-content: flex-end;\r\n}\r\n\r\n.tabset {\r\n display: flex;\r\n align-items: stretch;\r\n width: 100%;\r\n}\r\n\r\n.tab {\r\n padding: .667em;\r\n background-color: #171717;\r\n width: 10.5em;\r\n min-width: 10.5em;\r\n min-height: 35.67em;\r\n flex-grow: 0;\r\n}\r\n\r\n.tab button {\r\n opacity: .8;\r\n display: block;\r\n font-weight: bold;\r\n background-color: inherit;\r\n color: #CCCCCC;\r\n padding: .62em .923em;\r\n width: 100%;\r\n border: none;\r\nM outline: none;\r\n text-align: left;\r\n cursor: pointer;\r\n transition: 0.3s;\r\n font-size: 1.1em; /* Roboto */\r\n /* font-size: 1.0834em; */\r\n margin-bottom: .385em;\r\n border-radius: .308em;\r\n}\r\n\r\n.tab button:hover {\r\n opacity: 1;\r\n background-color: #333;\r\n box-shadow: 0 .308em .615em 0 rgba(0, 0, 0, 0.2), 0 .461em 1.54em 0 rgba(0, 0, 0, 0.19);\r\n}\r\n\r\n.tab button.active {\r\n opacity: 1;\r\n background-color: #8b2429;\r\n box-shadow: 0 .308em .615em 0 rgba(0, 0, 0, 0.2), 0 M.461em 1.54em 0 rgba(0, 0, 0, 0.19);\r\n}\r\n\r\n.tabcontent {\r\n padding: 0 .857em;\r\n border-left: none;\r\n display: none;\r\n color: #BBBBBB;\r\n flex-grow: 1;\r\n font-size: 1.167em;\r\n /* 14px */\r\n min-height: 35.67em;\r\n max-height: 35.67em;\r\n height: 35.67em;\r\n overflow: auto; \r\n scrollbar-width: thin; /* \"auto\" or \"thin\" */\r\n scrollbar-color: #8b2429 #171717; \r\n}\r\n\r\n.tabcontent::-webkit-scrollbar {\r\n width: .857em; /* width of the entire scMrollbar */\r\n}\r\n.tabcontent::-webkit-scrollbar-track {\r\n background: #171717; /* color of the tracking area */\r\n}\r\n.tabcontent::-webkit-scrollbar-thumb {\r\n background-color: #8b2429; /* color of the scroll thumb */\r\n border-radius: 1.43em; /* roundness of the scroll thumb */\r\n border: .214em solid #171717; /* creates padding around scroll thumb */\r\n}\r\n\r\n.tabcontent__title {\r\n font-weight: bold;\r\n font-size: 1.143em;\r\n text-align: center;\r\n line-height: 1em;\r\n M margin: 1em 0 1em 0;\r\n line-height: 1.125;\r\n}\r\n\r\n.tabcontent a, \r\n.tabcontent a:visited\r\n.tabcontent a:active {\r\n font-weight: bold;\r\n text-decoration: none;\r\n color: #BBB; \r\n}\r\n\r\n.tabcontent a:hover {\r\n color: #DDD; \r\n}\r\n\r\n.dialog-button {\r\n background-color: #ce2f37;\r\n border: none;\r\n color: white;\r\n text-align: center;\r\n font-size: 1.13em; /* Roboto */\r\n /* font-size: 1.1em; */\r\n margin: 0 .4167em;\r\n opacity: .6;\r\n transition: .3s;\r\n text-decoMration: none;\r\n cursor: pointer;\r\n padding: .25em .167em;\r\n min-width: 4.5em;\r\n border-radius: .25em;\r\n box-shadow: 0 .334em .667em 0 rgba(0, 0, 0, 0.2), 0 .5em 1.667em 0 rgba(0, 0, 0, 0.19);\r\n}\r\n\r\n.dialog-button:hover {\r\n opacity: 1\r\n}\r\n\r\np.center {\r\n text-align: center;\r\n}\r\n\r\n.about-label {\r\n margin-right: .571em;\r\n vertical-align: middle;\r\n}\r\n\r\n.about-logo {\r\n vertical-align: middle;\r\n width: 1.286em;\r\n height: 1.286em;\r\n}\r\n\r\n.about-atari {\r\n wMidth: 240px;\r\n height: 180px;\r\n margin: 20px auto;\r\n background: black;\r\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);\r\n border-radius: 12px;\r\n text-align: center;\r\n display: inline-block;\r\n position: relative;\r\n}\r\n\r\n.about-atari__v {\r\n padding: 15px;\r\n display: none;\r\n}\r\n\r\n.about-atari__top {\r\n position: absolute;\r\n /* width: 206px; */\r\n /* height: 146px; */\r\n width: 240px;\r\n height: 180px;\r\n z-index: 100;\r\n top: 0;\r\nM left: 0;\r\n opacity: 0;\r\n background-color: #555;\r\n /* border: 17px solid black; */\r\n border-radius: 12px;\r\n}\r\n\r\nb.callout {\r\n font-weight: bold;\r\n color: #ddd;\r\n}\r\n\r\n.controls-container {\r\n display: flex;\r\n overflow: hidden;\r\n justify-content: center;\r\n min-width: 600px;\r\n margin-top: 30px; /* Roboto */\r\n /* margin-top: 40px; */\r\n}\r\n\r\n.controller {\r\n width: 291px; \r\n min-width: 291px;\r\n color: #bbb; \r\n overflow: hidden;\r\n flex-grow: 1;\r\n flexM-shrink: 0;\r\n text-align: center;\r\n}\r\n\r\n.controller-keyboard {\r\n padding: 0 0 5px 5px;\r\n}\r\n\r\n.controller__title {\r\n text-align: center; \r\n padding-bottom: 10px;\r\n font-weight: bold;\r\n}\r\n\r\n.controller__inner {\r\n display: inline-block;\r\n position: relative;\r\n width: 291px;\r\n min-width: 291px;\r\n height: 151px; \r\n min-height: 151px; \r\n background-image: url(" + a + ');\r\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0M, 0, 0, 0.19);\r\n}\r\n\r\n.controller__keytarget {\r\n text-align: center;\r\n color: #ccc;\r\n background-color: #992329;\r\n position: absolute;\r\n width: 40px;\r\n height: 20px; \r\n line-height: 20px; \r\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);\r\n border-radius: 4px;\r\n overflow: hidden;\r\n font-size: 11px;\r\n}\r\n\r\n.controller__keytarget:hover {\r\n background-color: #ce2f37;\r\n color: white;\r\n}\r\n\r\n.controller__keytarget:focus {\r\n Mcolor: #292929;\r\n background-color :#ccc;\r\n}\r\n\r\n.console {\r\n padding-top:25px;\r\n}\r\n\r\n.console__inner {\r\n padding-top: 2px;\r\n display: flex;\r\n justify-content: center;\r\n}\r\n\r\n.console__button {\r\n display: inline-block;\r\n position: relative;\r\n text-align: center;\r\n font-size: 12px;\r\n font-weight: bold;\r\n width: 70px;\r\n height: 24px;\r\n line-height: 24px; \r\n border-radius: 5px;\r\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);\rM\n margin: 0 8px;\r\n}\r\n\r\n.console__button--up {\r\n border: 2px solid #464448;\r\n background-color: #333;\r\n}\r\n\r\n.console__button--down {\r\n border: 2px solid #464448;\r\n background-color: #b0abb6; \r\n color: #111;\r\n}\r\n\r\n.gamepad-focus {\r\n position: absolute;\r\n width: 10px;\r\n height: 10px;\r\n border-radius: 50%;\r\n display: none;\r\n background-color: #ccc;\r\n box-shadow: 0 0 2px #ccc;\r\n}\r\n\r\n.gamepad-grid {\r\n background-color: #222; \r\n width: 270px;\r\n grid-cMolumn-gap: 5px;\r\n grid-row-gap:5px;\r\n display: inline-grid; \r\n grid-template-columns: auto 1fr; \r\n padding: 10px;\r\n border-radius: 5px;\r\n margin: 0 0 25px 1px;\r\n font-size: 12px;\r\n}\r\n\r\n.gamepad-cell-name { \r\n overflow: hidden;\r\n text-align: left; \r\n font-weight:bold;\r\n color: #777;\r\n white-space: nowrap;\r\n}\r\n\r\n.gamepad-cell-value { \r\n text-align: center;\r\n overflow: hidden;\r\n text-align: left; \r\n white-space: nowrap;\r\n}\r\n\r\n.dialog-grid {\r\n mMargin: 2em 1em 1em 1em;\r\n grid-column-gap: 1em;\r\n grid-row-gap: 1.5em;\r\n display: grid;\r\n grid-template-columns: auto 1fr;\r\n padding: 1em;\r\n line-height: 1em;\r\n background-color: #222; \r\n border-radius: .4em;\r\n /* justify-items: center; */\r\n align-items: center; \r\n}\r\n\r\n.dialog-cell-label {\r\n overflow: hidden;\r\n text-align: left;\r\n font-weight: bold;\r\n color: #7C7C7C;\r\n white-space: nowrap;\r\n /* border: 1px solid red; */\r\n}\r\n\r\n.dialog-cell-content {\r\n Mtext-align: center;\r\n overflow: hidden;\r\n text-align: left;\r\n white-space: nowrap;\r\n /* border: 1px solid red; */\r\n}\r\n\r\n.dialog-switch { /* 14px */\r\n position: relative;\r\n display: inline-block;\r\n width: 2.429em; /*34px;*/\r\n height: 1.4286em; /*20px;*/\r\n}\r\n\r\n.dialog-switch input {\r\n opacity: 0;\r\n width: 0;\r\n height: 0;\r\n}\r\n\r\n.dialog-switch-slider {\r\n position: absolute;\r\n cursor: pointer;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n backgroMund-color: #666;\r\n -webkit-transition: .4s;\r\n transition: .4s;\r\n opacity: 0.6;\r\n border-radius: 2.4286em; /* 34px;*/\r\n}\r\n\r\n.dialog-switch-slider:hover {\r\n opacity: 1\r\n}\r\n\r\n.dialog-switch-slider:before {\r\n position: absolute;\r\n content: "";\r\n height: .857em; /*12px;*/\r\n width: .857em; /*12px;*/\r\n left: .2857em; /*4px;*/\r\n bottom: .2857em; /*4px;*/\r\n background-color: #DDD;\r\n border-radius: 50%;\r\n -webkit-transition: .4s;\r\n transition: .4s;\r\n}\r\n\r\ninput:chMecked + .dialog-switch-slider {\r\n background-color: #ce2f37;\r\n}\r\n\r\ninput:checked+.dialog-switch-slider:before {\r\n -webkit-transform: translateX(1em /*14px*/);\r\n -ms-transform: translateX(1em /*14px*/);\r\n transform: translateX(1em /*14px*/); \r\n}\r\n\r\n.dialog-select { /* 14px */\r\n opacity: .8;\r\n font-size: 1em; \r\n color: #fff;\r\n position: relative;\r\n display: flex;\r\n width: 14em; /*160px;*/\r\n height: 1.8em; /*20px;*/\r\n line-height: 1.8em; /*20px;*/\r\n background: blackM;\r\n overflow: hidden;\r\n border-radius: .4em; /*4px;*/\r\n border: 1px solid #666;\r\n}\r\n\r\n.dialog-select:hover {\r\n opacity: 1;\r\n}\r\n\r\n/* Arrow */\r\n.dialog-select::after {\r\n content: \'\\25BC\';\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n padding: 0 .3em; /*3px*/\r\n font-size: 1em;\r\n color: #ce2f37;\r\n cursor: pointer;\r\n pointer-events: none;\r\n}\r\n\r\n/* Reset Select */\r\n.dialog-select select {\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n -ms-apMpearance: none;\r\n appearance: none;\r\n outline: 0;\r\n box-shadow: none;\r\n border: 0 !important;\r\n background: black;\r\n background-image: none;\r\n padding: 0 .714em;\r\n color: #CCC;\r\n cursor: pointer;\r\n /* font-size: 11px; */\r\n font-size: .9em;\r\n flex: 1;\r\n}\r\n\r\n/* Remove IE arrow */\r\n.dialog-select select::-ms-expand {\r\n display: none;\r\n}\r\n\r\n.dialog-select select optgroup {\r\n font-weight: bold;\r\n font-size: 1em;\r\n color: #777777;\r\n}\r\n\r\n.dialog-select seMlect option {\r\n font-weight: normal;\r\n font-size: 1em;\r\n color: #BBBBBB;\r\n}\r\n\r\n.about P {\r\n text-align: center;\r\n line-height: 1.5em;\r\n padding: 0 3em 0 3em;\r\n}\r\n\r\n.instructs {\r\n font-size:1.15em;\r\n border-radius:1em;\r\n opacity:0.875;\r\n padding:1em;\r\n /* background-color: #1E1E1E; */\r\n background-color: #1F1F1F; \r\n /* background-color: #9c1919; */\r\n color:#BBB;\r\n box-shadow: 0 .27em .54em 0 rgba(0, 0, 0, 0.4), 0 .4em 1.34em 0 rgba(0, 0, 0, 0.39);\r\n max-wiMdth: 40em;\r\n}\r\n\r\n.instructs .ilink {\r\n font-weight: bold;\r\n color: #CCC; \r\n}\r\n\r\n.instructs .ilink:hover {\r\n color: #FFF; \r\n cursor: pointer;\r\n}\r\n\r\n.instructs img {\r\n width: 1.7em;\r\n height: 1.7em;\r\n margin: 0 .2em 0 .3em;\r\n opacity: .8;\r\n vertical-align:middle;\r\n cursor: pointer;\r\n}\r\n\r\n.instructs img:hover {\r\n opacity: 1;\r\n} \r\n\r\n.instructs div {\r\n vertical-align:middle;\r\n line-height:1.5em;\r\n}\r\n\r\n.instructs div.ihelp {\r\n margin-top:1em;M\r\n}\r\n\r\n', '', ]); e.exports = t; }, function (e, t, n) { 'use strict'; e.exports = function (e, t) { if (!t) { t = {}; } if (typeof (e = e && e.__esModule ? e.default : e) == 'string') { if (/^['"].*['"]$/.test(e)) { e = e.slice(1, -1); } if (t.hash) { e += t.hash; } if (/["'() \t\n]/.test(e) || t.needQuotes) { return '"'.concat( e.replacMe(/"/g, '\\"').replace(/\n/g, '\\n'), '"' ); } else { return e; } } else { return e; } }; }, function (e, t, n) { 'use strict'; n.r(t); t.default = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASQAAACXCAMAAACLDtaxAAAAA3NCSVQICAjb4U/gAAABgFBMVEX///8zMzMpKSkhISFXVlnVISk6OjpHRUlMTE9aWlopIicqKzBEQ0dmZmYhIilPTVFER0hCQkIAAABfXWFmZmY/PEHXKTFsbnFHRUncIjDVIjEQEBBcXGBKSUpUU1eMi40ICAk9PEAXExjVKSiPjpKGiM4wZGRlfXWFSUlJPT06Ehok6MzuZmZneISghJyBMTE+NlJTlJzLeKjKDhINsbnEhKSoHCRAZGiF+g4QpISQBCAdxcnN0d3nlMDEQFxl8fIAAEA3fKSoVISJ7e3tNUFERCgjWMTQIEhAQAgKhpKVbYGHkMjkyBwkhBQdcXGDgLTeLISR8Hh8qMjTWIiOSJzBWExASCAIHAARVWVruJzqFHSHGKC+2JzJ0HB5JFhBLEQsQGyEJEQkpBAemqavxKS/MMzPoJymlKSkgHxoXAAjkKDu8Mi5mFhdVFxlKSUrOKTQrNTUiBAHFJju8JSqrIiWfHSqTHyp1IChBDww6Dw0HFRsgAw1qIBxoGyJFBw0NDxa7soR8AAAAgHRSTlMA////////////////d///////d////4jM/////////////////////3f//////3f///////////////////////////////////////93/////////////////////////////////////M////3f//////////////////////9bPHqQAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAWdEVYdENyZWF0aW9uIFRpbWUAMDQvMTUvMjDSGnhzAAAAIHRFWHRTb2Z0d2FyZQBNYWNyb21lZGlhIEZpcmV3b3JrcyBNWLuRKiQAABeUSURBVHic7Z33Y9pW18ejK1loWRhV8ASDQGyKwQ8bvB3HK4kz2yTNXs1OmqRNutLxr7/nSgwJJCEwsXj79PtDEmNxw/34nHPPucunTmHN/ysbnepqfv60sqD4/tWgFhZOX+pgAkSCAvL6I82iBN/pSzojX0BRAnSC7ogYIfp/RkHBJwgMtqVLCwGfMJLM/6gSgiCcngdDCiwIXn+WYSVm5MdGC4Iyf+qSIvgMH4hHnLXgdREhBN8nW8lkRFMymW2R8KIokuJI9Vqy+br/ArzC06Pd/m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'; }, function (e, t, n) { var r = n(0); var i = n(7)M; if (typeof (i = i.__esModule ? i.default : i) == 'string') { i = [[e.i, i, '']]; } var o = { insert: 'head', singleton: false }; r(i, o); var a = i.locals ? i.locals : {}; e.exports = a; }, function (e, t, n) { (t = n(1)(false)).push([ e.i, '.message {\r\n visibility: hidden;\r\n color: #BBB;\r\n text-align: center;\r\n border-radius: .4em;\r\n padding: .54em;\r\n position: fixed;\r\n z-index: 2;\r\n left: 50%;\r\n M top: 7.34em;\r\n font-size: 1.25em; /* Roboto */\r\n /* font-size: 1.25em; */\r\n opacity: .98;\r\n box-shadow: 0 .27em .54em 0 rgba(0, 0, 0, 0.4), 0 .4em 1.34em 0 rgba(0, 0, 0, 0.39);\r\n word-wrap: break-word;\r\n }\r\n \r\n #snackbar {\r\n background-color: #222;\r\n min-width: 16.67em;\r\n max-width: 16.67em;\r\n margin-left: -8.335em;\r\n }\r\n \r\n #errormsg {\r\n background-color: #992329;\r\n cursor: pointer;\r\n min-width: 23.34em;\r\n max-width: 23.34em;\r\n M margin-left: -11.67em;\r\n color: #ddd;\r\n }\r\n \r\n #errormsg .closebtn {\r\n margin-left: .68em;\r\n color: #ddd;\r\n font-weight: bold;\r\n float: right;\r\n font-size: 1.48em;\r\n line-height: .9em;\r\n cursor: pointer;\r\n }\r\n \r\n #errormsg .closebtn:hover {\r\n color: #000;\r\n }\r\n \r\n #snackbar.show,\r\n #errormsg.show {\r\n visibility: visible;\r\n -webkit-animation: message--fadein 0.5;\r\n animation: message--fadein 0.5s;\r\n }\r\n \r\n #snackbarM.hide,\r\n #errormsg.hide {\r\n visibility: hidden;\r\n -webkit-animation: message--fadeout 0.5s;\r\n animation: message--fadeout 0.5s;\r\n transition: visibility 0.5s;\r\n }\r\n \r\n @-webkit-keyframes message--fadein {\r\n from {\r\n top: 4.67em;\r\n opacity: 0;\r\n }\r\n \r\n to {\r\n top: 7.34em;\r\n opacity: .98;\r\n }\r\n }\r\n \r\n @keyframes message--fadein {\r\n from {\r\n top: 4.67em;\r\n opacity: 0;\r\n }\r\n \r\n to {\r\n top: M7.34em;\r\n opacity: .98;\r\n }\r\n }\r\n \r\n @-webkit-keyframes message--fadeout {\r\n from {\r\n top: 7.34em;\r\n opacity: .98;\r\n }\r\n \r\n to {\r\n top: 4.67em;\r\n opacity: 0;\r\n }\r\n }\r\n \r\n @keyframes message--fadeout {\r\n from {\r\n top: 7.34em;\r\n opacity: .98;\r\n }\r\n \r\n to {\r\n top: 4.67em;\r\n opacity: 0;\r\n }\r\n }\r\n ', '', ]); e.exports = t; }, function (t, n, r) { 'useM strict'; function c(e, t) { this.topic = e; if (t) { this.onEvent = t; } } function d(e) { if (s) { var t = new s.Listener(); t.getTopic = function () { return e.getTopic(); }; t.onEvent = function (t) { e.onEvent(t); }; s.addListener(t); } else { var n = e.getTopic(); var r = l[n]; if (!r) { r = []; l[n] = r; M } r.push(e); } } function u(e, t) { if (s) { s.fireEvent(e, t); } else { var n = l[e]; if (n) { for (var r = 0; r < n.length; r++) { n[r].onEvent(t); } } } } function h(e, t) { for (var n in t) { e[n] = t[n]; } } function w(e) { var t = e.toLowerCase(); var n = ''; if (g && (t.startsWith('http://') || t.MstartsWith('https://'))) { n = m + g + '?y='; } return n + e; } function v() { return m + g; } function A(e) { function n(e, t) { var n = 0; (function (e) { var t; for ( var n = (t = e.getElementsByTagName('optgroup')).length; n; n-- ) { e.removeChild(t[n - 1]); } for (n = e.options.length; n; n--) { e.Moptions[n - 1].parentNode.removeChild(e.options[n - 1]); } })(e); var r = document.createElement('option'); r.text = 'Select Atari 7800 Cartridge...'; r.disabled = true; r.selected = true; e.appendChild(r); (function e(t, r) { n++; try { var i = r.files; for (var o = 0; o < i.length; o++) { var a = i[o]; var l = document.createElement('option'); M l.text = a.name; l.value = a.path; t.appendChild(l); } if (n < 2) { var s = r.folders; for (o = 0; o < s.length; o++) { var c = s[o]; if (c.name && (c.path || c.children)) { var d = document.createElement('optgroup'); d.setAttribute('label', c.name); t.appendChild(d); e(d, c); } M } } } finally { n--; } })(e, t); } function r(t, i) { function o(e, t) { if (t.indexOf('//') == -1) { return e + '/' + t; } else { return t; } } function a(e, t, n, i) { var a = t.pathPrefix; if (!a) { var l = n ? n.lastIndexOf('/') : -1; a = l == -1 ? '' : n.substring(0, l); M } var s = []; var c = t.files; if (c) { for (var d = 0; d < c.length; d++) { var u = c[d]; if (u.path && u.name) { var p = c[d]; p.path = o(a, c[d].path); s.push(p); } } } i.files = s; var h = []; var f = t.folders; if (f) { for (d = 0; d < f.length; d++) { iMf (f[d].children) { var g = f[d]; h.push(g); new r(e, g).fromList(f[d].children, a + '/'); } else if (f[d].path) { g = f[d]; h.push(g); g.path = o(a, f[d].path); new r(e, g).fromUrl(g.path); } } } i.folders = h; } function l() { t.loadCount--; if (t.loadCount == 0) { M if (t.error) { y(t.errorMessage); } else { for (var r = 0; r < e.length; r++) { n(e[r], t.root); } u('romlistLoaded', null); } } } this.fromList = function (e, n) { t.loadCount++; a(t, e, n, i); l(); }; this.fromUrl = function (e) { t.loadCount++; var n = new XMLHttpRequest(); n.openM('GET', w(e)); n.onload = function () { try { if (n.status >= 300 || n.status < 200) { throw n.status + ': ' + n.statusText; } var r = JSON.parse(n.responseText); a(t, r, e, i); } catch (n) { t.error = true; t.errorMessage = e + ' (' + n + ')'; } l(); }; n.onerror = function () { y( M'Error attempting to read cartridge list.<br>(See console log for details)' ); }; n.send(); }; } function i(e, t) { var n = { loadCount: 0, error: false, errorMessage: '', root: {} }; if (t) { new r(n, n.root).fromUrl(e); } else { try { var i = JSON.parse(e); new r(n, n.root).fromList(i, null); } catch (e) { y(e); } } M } for (var t = 0; t < e.length; t++) { (function () { var n = e[t]; n.onchange = function () { var t = n.value; x(t, true); this.blur(); for (var r = 0; r < e.length; r++) { if (e[r] != n) { e[r].value = t; } } }; })(); } this.loadListFromJson = function (e) { i(e, false); }; this.loadListFrMomFile = function (e) { var t = e.name ? e.name.toLowerCase() : ''; var n = e.type ? e.type.toLowerCase() : ''; if (t.endsWith('.json') || n.includes('text') || n.includes('json')) { var r = new FileReader(); var i = this; r.onload = function (e) { i.loadListFromJson(e.target.result); }; r.readAsText(e); return true; } return false; }; this.loadListFromUrl = functioMn (e) { i(e, true); }; this.resetSelection = function () { for (var t = 0; t < e.length; t++) { e[t].selectedIndex = 0; } }; } function I(e, t) { var n = e == -1; if (e == E || n) { var r = 0; if (!n && t) { var i = Date.now() - _; if (i < t) { r = t - i; } } setTimeout(function () { if (n || e == E) { k.clasMsList.add('hide'); k.classList.remove('show'); } }, r); } } function D() { S.classList.add('hide'); S.classList.remove('show'); } function R(e, t, n, r, i) { var o = document.getElementById(e); o.className = 'controls-button'; if (i) { o.onclick = i; } var a = document.createElement('label'); o.appendChild(a); if (r) { a.setAttribute('tabindex', '0'); M a.onmousedown = function (e) { e.preventDefault(); }; if (i) { o.onkeydown = function (e) { var t = e.which; if (t === 13 || t === 32) { i(); } }; } } var l = document.createElement('img'); a.appendChild(l); l.className = 'controls-button__img'; l.setAttribute('draggable', 'false'); l.setAttribute('src', t); l.setAttribute('title', n)M; return { div: o, label: a, img: l }; } function z(e) { e.preventDefault(); var t = null; if (e.dataTransfer.items) { for (var n = 0; n < e.dataTransfer.items.length; n++) { var r = e.dataTransfer.items[n]; if (r.kind === 'file') { t = r.getAsFile(); if (L.loadListFromFile(t)) { t = null; } break; } if ( r.kind === 'string' && M (r.type.match('^text/uri-list') || r.type.match('^text/plain')) ) { r.getAsString(function (e) { G(e); }); } } } if (t) { Q(t); } } function V(e, t) { F[e] = { left: t.getLeft(), right: t.getRight(), up: t.getUp(), down: t.getDown(), b1: t.getButton1(), b2: t.getButton2(), }; } function q(e, t) M{ var n = F[e]; if (n != null) { for (var r in n) { var i = n[r]; switch (r) { case 'left': t.setLeft(i); case 'right': t.setRight(i); case 'up': t.setUp(i); case 'down': t.setDown(i); case 'b1': t.setButton1(i); case 'b2': t.setButton2(i); } } } } M function J() { if (W) { try { if (localStorage.getItem('prefs')) { F = JSON.parse(localStorage.getItem('prefs')); q('p1map', K.p1KeyMap); q('p2map', K.p2KeyMap); (function () { var e = F.consoleMap; if (e != null) { for (var t in e) { var n = e[t]; switch (t) { case 'pause': K.setPauseKey(n); M case 'select': K.setSelectKey(n); case 'reset': K.setResetKey(n); } } } })(); var e = F.displayFilter; if (e !== void 0) { Y.setFilterEnabled(e); } var t = F.displayRatio; if (t !== void 0) { Y.setScreenRatio(t); } var n = F.displaySMize; if (n !== void 0) { Y.setScreenSize(n); } var r = F.hsEnabled; if (r !== void 0) { P.setEnabled(r); } var i = F.hsGlobal; if (i !== void 0) { P.setGlobal(i); } var o = F.hsFallback; if (o !== void 0) { P.setLocalFallback(o); } var a = F.palette; if (a !== void 0) { M O.setPaletteIndex(a); } var l = F[N]; if (l !== void 0) { Y.setFullscreenMode(l); } var s = F.vsync; if (s !== void 0) { j.setVsyncEnabled(s); } var c = F.frameSkip; if (c !== void 0) { j.setSkipLevel(c); } var d = F.xmMode; if (d !== void 0) { H.SetXmMode(d); M} } } catch (e) { u('showError', 'An error occurred loading preferences: ' + e); F = {}; } } else { console.log('Unable to load preferences, local storage disabled.'); } } function Z() { if (W) { try { V('p1map', K.p1KeyMap); V('p2map', K.p2KeyMap); F.consoleMap = { pause: K.getPauseKey(), select: K.getSelectKey(), reset: K.getRMesetKey(), }; F.displayFilter = Y.isFilterEnabled(); F.displaySize = Y.getScreenSize(); F.displayRatio = Y.getScreenRatio(); F.hsEnabled = P.getEnabled(); F.hsGlobal = P.getGlobal(); F.hsFallback = P.isLocalFallback(); F.palette = O.getPaletteIndex(); F[N] = Y.getFullscreenMode(); F.vsync = j.isVsyncEnabled(); F.frameSkip = j.getSkipLevel(); F.xmMode = H.GetXmMode(); M localStorage.setItem('prefs', JSON.stringify(F)); } catch (e) { u('showError', 'An error occurred saving preferences: ' + e); } } else { console.log('Unable to save preferences, local storage disabled.'); } } function ge(e) { for (var t = 0; t < e.length; t++) { e[t] = 0; } var n = 'AABog6pVnAILDgIACx0LBAADBBEBDgARAx8AAAAAAAAAAAAAAAAAABE'; for (t = 0; t < 183; t++) { n += 'A'; } M n += 'B'; for (t = 0; t < 45; t++) { n += '/f39'; } be((n += '/f38'), e); } function me(e) { var t = ''; for (var n = 0; n < e.length; n++) { t += String.fromCharCode(e[n]); } return btoa(t); } function be(e, t) { var n = atob(e); for (var r = 0; r < n.length; r++) { t[r] = n.charCodeAt(r); } } function we() { Ae(); var e = new Date().getTime(); M var t = (performance && performance.now && 1e3 * performance.now()) || 0; se = 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (n) { var r = 16 * Math.random(); if (e > 0) { r = (e + r) % 16 | 0; e = Math.floor(e / 16); } else { r = (t + r) % 16 | 0; t = Math.floor(t / 16); } return (n === 'x' ? r : (3 & r) | 8).toString(16); }); ce = ee.Cartridge.GetDigest(); Mue = de; te.setHighScoreCallback(pe && (W || ue) ? oe : ie); } function ve(e, t) { console.log('Reading High Score SRAM from local storage.'); try { var n = (function () { var e = 'highScoreSRAM'; var t = true; if (W) { try { return localStorage.getItem(e); } catch (r) { n = "An error occurred attempting to load '" + e + "': " + r; if (t) { tMhrow n; } u('showError', n); } return null; } var n = "Unable to read '" + e + "', local storage disabled."; if (t) { throw n; } console.log(n); })(); if (n) { console.log('Found High Score SRAM in local storage.'); try { be(n, fe); } catch (e) { t('Error converting SRAM: ' + e); return;M } } else { console.log('Not able to find High Score SRAM in local storage.'); } e(fe); } catch (e) { t(e); } } function ye(e) { var t = function (t) { e(t); }; var n = function (t) { console.log(t); u('showError', t); e(null); }; if (ue) { (function (e, t) { console.log('Reading High Score SRAM from global storage.'); M Date.now(); var n = B('Loading global leaderboard...'); var r = new XMLHttpRequest(); r.open('GET', v() + '/load.php?d=' + ce); r.onload = function () { if (r.status == 200) { console.log('Successfully read global leaderboard for game'); try { be(r.responseText, fe); } catch (e) { t('Error converting SRAM: ' + e); return; } M e(fe); M(n, 1e3); } else if (r.status == 204) { var i = null; if (he) { ve( function (e) { i = e; ue = false; }, function () {} ); } var o = 'Global loaderboard not currently supported for this game.'; if (!ue) { o += '<br><bMr>Using local storage for high scores.'; } n = B(o); console.log(o); e(i); M(n, ue ? 1500 : 3e3); } else { t( 'Error reading global leaderboard (' + r.status + ': ' + r.statusText + ')' ); } }; r.onerror = function () { t( 'ErroMr reading global leaderboard.<br>(see console log for details)' ); }; r.send(); })(t, n); } else { ve(t, n); } } function xe() { console.log('Writing High Score SRAM to local storage.'); (function () { var e = 'highScoreSRAM'; var t = me(fe); var n = true; if (!W) { var r = "Unable to write '" + e + "', local storage disabled."; if (n) { Mthrow r; } console.log(r); return false; } try { localStorage.setItem(e, t); } catch (t) { r = "An error occurred attempting to save '" + e + "': " + t; if (n) { throw r; } u('showError', r); return false; } })(); } function Ae() { if (le != null) { clearTimeout(le); le = null; } if (ae) { M ae = 0; console.log('HSC Scores have changed, saving.'); try { if (ue) { (function () { console.log('Writing High Score SRAM to global storage.'); var t = new XMLHttpRequest(); t.open('POST', v() + '/save.php?sid=' + se + '&d=' + ce); t.onload = function () { if (t.status == 200) { console.log( 'Successfully saved global high scores for gameM' ); } else { console.log(e); u( 'showError', 'Error saving global high scores (' + t.status + ': ' + t.statusText + ')' ); } }; t.onerror = function () { u( 'showError', 'ErMror saving global high scores.<br>(see console log for details)' ); }; t.send(me(fe)); })(); } else { xe(); } } catch (e) { console.log(e); u('showError', e); } } else { console.log('HSC Scores have not changed, ignoring.'); } } function ke(e) { ee = e.js7800; te = ee.Main; ne = e.debug; ge(fe); M re = atob( 'data:;base64,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'.split( ',' )[1] ); console.log('High score rom: ' + ee.md5(re)); d(new c('onCartridgeLoaded', we)); ie = new te.HighScoreCallback(); oe = new te.HighScoreCaMllback(); X(oe, { getRom: function () { return re; }, write: function (e, t) { (function (e, t) { var n = false; if (fe[e - 4096] != t) { fe[e - 4096] = t; n = true; } if (n && e >= 4413) { ae++; if (le == null) { le = setTimeout(function () { le = null; Ae(); }M, 2e3); } } if (ne && e >= 4413) { if (n) { console.log( 'HSC pending write: 0x' + e.toString(16) + ' = 0x' + t.toString(16) + ', ' + ae ); } else { console.log( 'HSC pending write ignored (no change): 0x' + e.toStringM(16) + ' = 0x' + t.toString(16) + ', ' + ae ); } } })(e, t); }, loadSram: function (e) { ye(e); }, }); if (ne) { document.addEventListener('keydown', function (e) { if (e.keyCode == 119) { console.log(me(fe)); } }); } } function Se(e) {M pe = e; } function Ce() { return pe; } function Ee() { return true; } function _e(e) { de = e; } function Ie() { return de; } function De() { return true; } function Be(e) { he = e; } function Me() { return he; } function Te() { return true; } function Re() { return ce; } function Le() { this.el = null; M} function Qe(e, t) { Le.call(this); this.title = t; this.text = e; } function ze(e) { Le.call(this); this.title = e; this.cb = null; } function Oe(e, t) { Ne.call(this, e, t); } function je(e) { Ue.call(this, e); } function Pe(e) { Fe.call(this); this.opts = e; this.div = null; this.width = null; } function He(e, t) { Fe.call(this); this.iMsReadOnly = !!t; this.title = e; this.modalEl = null; this.contentEl = null; this.bodyEl = null; this.headerEl = null; this.bodyEl = null; this.footerEl = null; this.ok = null; this.cancel = null; this.defaults = null; this.pauseButton = null; this.paused = false; var n = this; this.windowResizeFunc = function (e) { n.modalEl.style.paddingTop = (((window.innerHeight - n.contentEl.offMsetHeight) / 2) | 0) + 'px'; }; } function We() { Fe.call(this); this.tabs = []; this.defaultTab = null; } function Ve(e) { Fe.call(this); this.title = e; this.buttonEl = null; } function qe(e, t) { He.call(this, e, t); this.tabset = this.getTabSet(); } function Je() { Fe.call(this); } function Ze(e) { Je.call(this); this.label = e; } function Xe(e) M{ Je.call(this); this.content = e; } function $e() { Fe.call(this); this.cells = []; } function rt() { et.call(this, 'About'); this.top = null; this.wrapperEl = null; this.logoEl = null; this.vEl = null; this.iframe = null; this.timerId = null; this.played = false; var e = this; this.fClick = function (t) { e.showv(); t.preventDefault(); }; } M function mt(e, t) { Le.call(this); this.keys = null; this.left = e; this.top = t; this.value = 0; var n = this; this.keydownf = function (e) { n.setValue(e.keyCode); e.preventDefault(); e.stopPropagation(); }; } function bt(e) { Le.call(this); this.title = e; this.inner = null; } function wt(e, t) { Le.call(this); this.left = e; this.top = t; } M function vt(e, t) { bt.call(this, e); this.index = t; this.left = new wt(33, 38); this.right = new wt(73, 38); this.up = new wt(53, 18); this.down = new wt(53, 58); this.b1 = new wt(152, 102); this.b2 = new wt(218, 102); this.mapping = null; this.focus = [ this.left, this.right, this.up, this.down, this.b1, this.b2, ]; this.padId = null; this.padMaMpping = null; } function yt(e) { bt.call(this, e); this.up = new mt(38, -5); this.left = new mt(-7, 33); this.right = new mt(82, 33); this.down = new mt(38, 70); this.b1 = new mt(138, 133); this.b2 = new mt(204, 133); this.targets = [ this.up, this.left, this.right, this.down, this.b1, this.b2, ]; this.map = null; } function xt(e) { Le.call(this)M; this.title = e; } function At(e) { xt.call(this, e); this.target = new mt(15, 34); } function kt(e) { xt.call(this, e); } function St() { Le.call(this); this.pauseButton = this.createPauseButton('PAUSE'); this.selectButton = this.createSelectButton('SELECT'); this.resetButton = this.createResetButton('RESET'); this.buttons = [this.pauseButton, this.selectButton, this.resetButton]; this.kb = null; M } function Ct() { St.call(this); } function Et() { St.call(this); this.mapping = null; } function Rt() { it.call(this, 'Settings', false); } function Ft(e, t) { Qt.call(this, e); this.url = t; } function Pt() { Gt.call(this, 'Help', true); } function nn(e, t) { (function (e, t, n) { function r(e) { var r = null; var i = false; if (e.lengtMh == 1) { r = e[0]; } else if (e.length > 0) { for (var o = 0; o < e.length; o++) { var l = e[o]; var s = l.filename.toLowerCase(); if (s.endsWith('p.a78')) { r = l; i = true; } else { if (s.endsWith('.a78')) { r = l; break; } if (s.endsWith('.bin') && !i) { r = l; M } } } } if (r) { var c = new a.BlobWriter(); r.getData(c, t); } else { n('Unable to find valid ROM in zip file'); } } n = n || p; a.createReader( new a.BlobReader(e), function (e) { e.getEntries(r, n); }, function () { t(e); } ); })( e,M function (e) { var n = new FileReader(); n.readAsBinaryString(e); n.onloadend = function () { var e = n.result; var r = e.length; var i = new Array(r); for (var o = 0; o < r; o++) { i[o] = e.charCodeAt(o); } if (!t) { en.resetSelection(); } $t.Main.startEmulation(i); }; }, tn ); } M function an(e, t) { var n = e.toLowerCase(); var r = n.endsWith('.json') || n.indexOf('.json?') != -1; rn = Ht('Loading...'); if (!on) { d( (on = new c('onEmulationStarted', function () { Wt(rn, 750); })) ); } const i = function (e) { var n = (function (e) { var t = e.toLowerCase(); var n = ''; if (g && (t.startsWith('http://') || t.startsWith('https://'))) { M n = m + atob('Oi8vcHJveHkud2VicmNhZGUud29ya2Vycy5kZXY/'); } return n + e; })(e); if (!n) { throw i.status + ': ' + i.statusText; } var i = new XMLHttpRequest(); i.open('GET', n); i.responseType = 'blob'; i.onload = function () { try { if (i.status >= 300 || i.stats < 200) { throw i.status + ': ' + i.statusText; } if (en.loadListFMromFile(i.response) || r) { Wt(rn, 750); } else { nn(i.response, t); } } catch (t) { tn(e + ' (' + t + ')'); } }; i.onerror = function () { tn( 'An error occurred during the load attempt.<br>(see console log for details)', false ); }; i.send(); }; var o = new XMLHttpRequest(); o.open('GET', w(e)); M o.responseType = 'blob'; o.onload = function () { try { if (o.status >= 300 || o.stats < 200) { i(e); } else if (en.loadListFromFile(o.response) || r) { Wt(rn, 750); } else { nn(o.response, t); } } catch (t) { tn(e + ' (' + t + ')'); } }; o.onerror = function () { i(e); }; o.send(); } function ln(e) { var t = ($t = Me).Main; var n = $t.ControlsBar; (function () { var e = $t.Events; for (var t in ((s = e), l)) { var n = l[t]; for (var r = 0; r < n.length; r++) { d(n[r]); } } })(); var o = (function () { var e = $t.ControlsBar; var t = document.createElement('div'); var n = document.createElement('select'); t.appendChild(n); var r = new e.Component(); f(r, { M getClass: function () { return 'fsselect'; }, doCreateElement: function () { return t; }, }); e.getGroup(1).addChildAtIndex(2, r); return n; })(); var r = qt('debug'); Xt = !!r && ((r = r.toLowerCase()) === '1' || r == 'true'); t.setErrorHandler(tn); t.init('js7800__target', { debug: Xt }); var a = t.descriptionDiv; a.className = 'instructs'; a.inneMrHTML = '<div>Click<img id="ins_settings_img" src="' + n.cogsImgSrc + '"></img><span id="ins_settings" class="ilink">Settings</span> to view current keyboard mappings.</div>'; a.innerHTML += '<div class="ihelp">Click<img id="ins_help_img" src="' + n.infoImgSrc + '"></img><span id="ins_help" class="ilink">Help</span> for detailed usage instructions.</div>'; a.innerHTML += '<div class="ihelp">Load a cartridge using the drop-down menMu or buttons below (you can also drag and drop a local file or remote file link onto the emulator).</div>'; var p = document.getElementById('js7800__fullscreen-container'); d( new c('onHighScoreCartLoaded', function (e) { Zt = e; }) ); var h = n.leaderboardButton; h.onClick = function () { var e = 'leaderboard'; if (Zt) { e += '?d=' + Re(); } window.open(e, '_blank'); }; d( M new c('fullscreen', function (e) { h.getElement().style.display = e ? 'none' : 'block'; o.parentElement.style.display = e ? 'flex' : 'none'; }) ); var g = new Rt(); n.settingsButton.onClick = function () { g.show(); }; var m = new Pt(); n.helpButton.onClick = function () { m.show(); }; var b = function () { g.selectKeyboardTab(); n.settingsButton.onClick(); }; M var w = function () { n.helpButton.onClick(); }; document.getElementById('ins_settings').onclick = b; document.getElementById('ins_settings_img').onclick = b; document.getElementById('ins_help').onclick = w; document.getElementById('ins_help_img').onclick = w; en = new A([document.getElementById('cartselect__select'), o]); u('siteInit', { js7800: $t, romList: en, loadFromUrl: an, startEmulation: nn, M errorHandler: tn, debug: Xt, HighScore: i, }); p.appendChild(g.createElement()); p.appendChild(m.createElement()); d( new c('showError', function (e) { tn(e); }) ); d( new c('romlistLoaded', function () { var e = Ht('Succesfully loaded cartridge list.'); Wt(e, 1e3); }) ); J(); (function () { $t.Main; var e = qt('cartlist'); M if (!e) { e = 'https://bitordinals.io/content/b6c80b8c71623549c62640ff67a2ae0e699e7fd030480d843bf6a4437be99a05i0'; } en.loadListFromUrl(e); var t = Jt('cart'); if (t) { an(t); } })(); } r.r(n); var i = {}; r.r(i); r.d(i, 'SRAM_SIZE', function () { return $; }); r.d(i, 'generateDefaultSram', function () { return ge; }); r.d(i, 'sramToBase64', function () { M return me; }); r.d(i, 'base64toSram', function () { return be; }); r.d(i, 'setEnabled', function () { return Se; }); r.d(i, 'getEnabled', function () { return Ce; }); r.d(i, 'getEnabledDefault', function () { return Ee; }); r.d(i, 'getGlobal', function () { return Ie; }); r.d(i, 'setGlobal', function () { return _e; }); r.d(i, 'getGlobalDefault', function () { return De; M }); r.d(i, 'isLocalFallback', function () { return Me; }); r.d(i, 'setLocalFallback', function () { return Be; }); r.d(i, 'getLocalFallbackDefault', function () { return Te; }); r.d(i, 'getDigest', function () { return Re; }); var o = {}; (function (e) { function i() { this.crc = -1; } function o() {} function a(e, t) { var n = new ArrayBuffer(e); var r = newM Uint8Array(n); if (t) { r.set(t, 0); } return { buffer: n, array: r, view: new DataView(n) }; } function l() {} function s(e) { var t; var n = this; n.size = 0; n.init = function (r, i) { var o = new Blob([e], { type: 'text/plain' }); (t = new d(o)).init(function () { n.size = t.size; r(); }, i); }; n.readUint8Array = function M(e, n, r, i) { t.readUint8Array(e, n, r, i); }; } function c(t) { var n; var r = this; r.size = 0; r.init = function (e) { for (var i = t.length; t.charAt(i - 1) == '='; ) { i--; } n = t.indexOf(',') + 1; r.size = Math.floor(0.75 * (i - n)); e(); }; r.readUint8Array = function (r, i, o) { var s = a(i); var c = 4 * Math.floMor(r / 3); var d = 4 * Math.ceil((r + i) / 3); var u = e.atob(t.substring(c + n, d + n)); var p = r - 3 * Math.floor(c / 4); for (var l = p; l < p + i; l++) { s.array[l - p] = u.charCodeAt(l); } o(s.array); }; } function d(e) { var t = this; t.size = 0; t.init = function (n) { t.size = e.size; n(); }; t.readUint8Array = function (t,M n, r, i) { var o = new FileReader(); o.onload = function (e) { r(new Uint8Array(e.target.result)); }; o.onerror = i; try { o.readAsArrayBuffer( (function (e, t, n) { if (t < 0 || n < 0 || t + n > e.size) { throw new RangeError( 'offset:' + t + ', length:' + n + ', size:' + e.size ); } if (e.slice) M{ return e.slice(t, t + n); } else if (e.webkitSlice) { return e.webkitSlice(t, t + n); } else if (e.mozSlice) { return e.mozSlice(t, t + n); } else if (e.msSlice) { return e.msSlice(t, t + n); } else { return; } })(e, t, n) ); } catch (e) { i(e); } };M } function u() {} function p(e) { var n; this.init = function (e) { n = new Blob([], { type: 'text/plain' }); e(); }; this.writeUint8Array = function (e, r) { n = new Blob([n, t ? e : e.buffer], { type: 'text/plain' }); r(); }; this.getData = function (t, r) { var i = new FileReader(); i.onload = function (e) { t(e.target.result); }; M i.onerror = r; i.readAsText(n, e); }; } function h(t) { var n = ''; var r = ''; this.init = function (e) { n += 'data:' + (t || '') + ';base64,'; e(); }; this.writeUint8Array = function (t, i) { var a = r.length; var l = r; r = ''; for (var o = 0; o < 3 * Math.floor((a + t.length) / 3) - a; o++) { l += String.fromCharCode(t[o]); M } if (l.length > 2) { n += e.btoa(l); } else { r = l; } i(); }; this.getData = function (t) { t(n + e.btoa(r)); }; } function f(e) { var n; this.init = function (t) { n = new Blob([], { type: e }); t(); }; this.writeUint8Array = function (r, i) { n = new Blob([n, t ? r : r.buffer], { type: e }); M i(); }; this.getData = function (e) { e(n); }; } function g(e, t, n, r, i, o, a, l, s, c) { function g() { e.removeEventListener('message', m, false); l(u, p); } function m(t) { var n = t.data; var i = n.data; var l = n.error; if (l) { l.toString = function () { return 'Error: ' + this.message; }; M s(l); return; } if (n.sn === f) { switch ( (typeof n.codecTime == 'number' && (e.codecTime += n.codecTime), typeof n.crcTime == 'number' && (e.crcTime += n.crcTime), n.type) ) { case 'append': if (i) { u += i.length; r.writeUint8Array( i, function () { b(); M }, c ); } else { b(); } break; case 'flush': p = n.crc; if (i) { u += i.length; r.writeUint8Array( i, function () { g(); }, c ); } else { M g(); } break; case 'progress': if (a) { a(d + n.loaded, o); } break; case 'importScripts': case 'newTask': case 'echo': break; default: console.warn( 'zip.js:launchWorkerProcess: unknown message: ', n ); } M } } function b() { if ((d = 524288 * h) <= o) { n.readUint8Array( i + d, Math.min(524288, o - d), function (n) { if (a) { a(d, o); } var r = d === 0 ? t : { sn: f }; r.type = 'append'; r.data = n; try { e.postMessage(r, [n.buffer]); } catch (t) { M e.postMessage(r); } h++; }, s ); } else { e.postMessage({ sn: f, type: 'flush' }); } } var d; var p; var h = 0; var f = t.sn; var u = 0; e.addEventListener('message', m, false); b(); } function m(e, t, n, r, o, a, l, s, c, d) { var u; var p = 0; var h = 0M; var f = a === 'input'; var g = a === 'output'; var m = new i(); (function i() { var a; if ((u = 524288 * p) < o) { t.readUint8Array( r + u, Math.min(524288, o - u), function (t) { var r; try { r = e.append(t, function (e) { if (l) { l(u + e, o); } M}); } catch (e) { c(e); return; } if (r) { h += r.length; n.writeUint8Array( r, function () { p++; setTimeout(i, 1); }, d ); if (g) { m.append(r); } }M else { p++; setTimeout(i, 1); } if (f) { m.append(t); } if (l) { l(u, o); } }, c ); } else { try { a = e.flush(); } catch (e) { c(e); return; } if (a) { if (g) { M m.append(a); } h += a.length; n.writeUint8Array( a, function () { s(h, m.get()); }, d ); } else { s(h, m.get()); } } })(); } function b(t, n, r, i, a, l, s, c, d, u, p) { if (e.zip.useWebWorkers && s) { g( t, { sn: n, codecMClass: 'NOOP', crcType: 'input' }, r, i, a, l, d, c, u, p ); } else { m(new o(), r, i, a, l, 'input', d, c, u, p); } } function w(e) { var n; var r = ''; var i = [ '\xC7', '\xFC', '\xE9', '\xE2', '\xE4', '\xE0', '\xE5', '\MxE7', '\xEA', '\xEB', '\xE8', '\xEF', '\xEE', '\xEC', '\xC4', '\xC5', '\xC9', '\xE6', '\xC6', '\xF4', '\xF6', '\xF2', '\xFB', '\xF9', '\xFF', '\xD6', '\xDC', '\xF8', '\xA3', '\xD8', '\xD7', '\u0192', '\xE1', M'\xED', '\xF3', '\xFA', '\xF1', '\xD1', '\xAA', '\xBA', '\xBF', '\xAE', '\xAC', '\xBD', '\xBC', '\xA1', '\xAB', '\xBB', '_', '_', '_', '\xA6', '\xA6', '\xC1', '\xC2', '\xC0', '\xA9', '\xA6', '\xA6', '+', M '+', '\xA2', '\xA5', '+', '+', '-', '-', '+', '-', '+', '\xE3', '\xC3', '+', '+', '-', '-', '\xA6', '-', '+', '\xA4', '\xF0', '\xD0', '\xCA', '\xCB', '\xC8', 'i', '\xCD', '\xCE', M '\xCF', '+', '+', '_', '_', '\xA6', '\xCC', '_', '\xD3', '\xDF', '\xD4', '\xD2', '\xF5', '\xD5', '\xB5', '\xFE', '\xDE', '\xDA', '\xDB', '\xD9', '\xFD', '\xDD', '\xAF', '\xB4', '\xAD', '\xB1', '_', M '\xBE', '\xB6', '\xA7', '\xF7', '\xB8', '\xB0', '\xA8', '\xB7', '\xB9', '\xB3', '\xB2', '_', ' ', ]; for (var t = 0; t < e.length; t++) { r += (n = 255 & e.charCodeAt(t)) > 127 ? i[n - 128] : String.fromCharCode(n); } return r; } function v(e) { rMeturn decodeURIComponent(escape(e)); } function y(e) { var n = ''; for (var t = 0; t < e.length; t++) { n += String.fromCharCode(e[t]); } return n; } function x(e, t, n, r, i) { e.version = t.view.getUint16(n, true); e.bitFlag = t.view.getUint16(n + 2, true); e.compressionMethod = t.view.getUint16(n + 4, true); e.lastModDateRaw = t.view.getUint32(n + 6, true); e.lastModDate = (functiMon (e) { var t = (4294901760 & e) >> 16; var n = 65535 & e; try { return new Date( 1980 + ((65024 & t) >> 9), ((480 & t) >> 5) - 1, 31 & t, (63488 & n) >> 11, (2016 & n) >> 5, 2 * (31 & n), 0 ); } catch (e) {} })(e.lastModDateRaw); if ((1 & e.bitFlag) == 1) { i('File contains encrypted entry.'); M } else { if (r || (8 & e.bitFlag) != 8) { e.crc32 = t.view.getUint32(n + 10, true); e.compressedSize = t.view.getUint32(n + 14, true); e.uncompressedSize = t.view.getUint32(n + 18, true); } if ( e.compressedSize !== 4294967295 && e.uncompressedSize !== 4294967295 ) { e.filenameLength = t.view.getUint16(n + 22, true); e.extraFieldLength = t.view.getUint16(n + 24, trMue); } else { i('File is using Zip64 (4gb+ file size).'); } } } function A(t, i, o) { function s() {} var l = 0; s.prototype.getData = function (r, i, s, c) { function u(e, t) { if ( c && !(function (e) { var t = a(4); t.view.setUint32(0, e); return d.crc32 == t.view.getUint32(0); })(t) M ) { o('CRC failed.'); } else { r.getData(function (e) { i(e); }); } } function p(e) { o(e || 'Error while reading file data.'); } function h(e) { o(e || 'Error while writing file data.'); } var d = this; t.readUint8Array( d.offset, 30, function (i) { vMar f; var w = a(i.length, i); if (w.view.getUint32(0) == 1347093252) { x(d, w, 4, false, o); f = d.offset + 30 + d.filenameLength + d.extraFieldLength; r.init(function () { if (d.compressionMethod === 0) { b( d._worker, l++, t, r, f, d.compressedSiMze, c, u, s, p, h ); } else { (function (t, n, r, i, o, a, l, s, c, d, u) { var p = l ? 'output' : 'none'; if (e.zip.useWebWorkers) { g( t, { sn: n, codecClass: 'Inflater', crcType: p }, M r, i, o, a, c, s, d, u ); } else { m(new e.zip.Inflater(), r, i, o, a, p, c, s, d, u); } })( d._worker, l++, t, M r, f, d.compressedSize, c, u, s, p, h ); } }, h); } else { o(n); } }, p ); }; var c = { getEntries: function (e) { var i = this._worker; M (function (e) { function i(n, i) { t.readUint8Array( t.size - n, n, function (t) { for (var n = t.length - 22; n >= 0; n--) { if ( t[n] === 80 && t[n + 1] === 75 && t[n + 2] === 5 && t[n + 3] === 6 ) { e(new DataViewM(t.buffer, n, 22)); return; } } i(); }, function () { o(r); } ); } if (t.size < 22) { o(n); } else { i(22, function () { i(Math.min(65558, t.size), function () { o(n); }); M }); } })(function (l) { var c = l.getUint32(16, true); var d = l.getUint16(8, true); if (c < 0 || c >= t.size) { o(n); } else { t.readUint8Array( c, t.size - c, function (t) { var l; var c; var u; var p = 0; vaMr h = []; var f = a(t.length, t); for (var r = 0; r < d; r++) { (l = new s())._worker = i; if (f.view.getUint32(p) != 1347092738) { o(n); return; } x(l, f, p + 6, true, o); l.commentLength = f.view.getUint16(p + 32, true); l.directory = (16 & f.view.getUint8(p + 38)) == 16; M l.offset = f.view.getUint32(p + 42, true); c = y( f.array.subarray(p + 46, p + 46 + l.filenameLength) ); l.filename = (2048 & l.bitFlag) == 2048 ? v(c) : w(c); if ( !l.directory && l.filename.charAt(l.filename.length - 1) == '/' ) { l.directory = true; M} u = y( f.array.subarray( p + 46 + l.filenameLength + l.extraFieldLength, p + 46 + l.filenameLength + l.extraFieldLength + l.commentLength ) ); l.comment = (2048 & l.bitFlag) == 2048 ? v(u) : w(u); M h.push(l); p += 46 + l.filenameLength + l.extraFieldLength + l.commentLength; } e(h); }, function () { o(r); } ); } }); }, close: function (e) { if (this._worker) { M this._worker.terminate(); this._worker = null; } if (e) { e(); } }, _worker: null, }; if (e.zip.useWebWorkers) { _( 'inflater', function (e) { c._worker = e; i(c); }, function (e) { o(e); } ); } else { i(c); } } M function k(e) { return unescape(encodeURIComponent(e)); } function S(e) { var n = []; for (var t = 0; t < e.length; t++) { n.push(e.charCodeAt(t)); } return n; } function C(t, n, r, i) { function d(e) { r(e || 'Error while writing zip file.'); } function u(e) { r(e || 'Error while reading file data.'); } var o = {}; var l = []; M var s = 0; var c = 0; var p = { add: function (n, p, h, f, w) { function C(e, n) { var r = a(16); s += e || 0; r.view.setUint32(0, 1347094280); if (n !== void 0) { v.view.setUint32(10, n, true); r.view.setUint32(4, n, true); } if (p) { r.view.setUint32(8, e, true); v.view.setUint32(14, e, true); M r.view.setUint32(12, p.size, true); v.view.setUint32(18, p.size, true); } t.writeUint8Array( r.array, function () { s += 16; h(); }, d ); } function E() { w = w || {}; n = n.trim(); if (w.directory && n.charAt(n.length - 1) != '/') { n +M= '/'; } if (o.hasOwnProperty(n)) { r('File already exists.'); } else { y = S(k(n)); l.push(n); (function (e) { var r; x = w.lastModDate || new Date(); v = a(26); o[n] = { headerArray: v.array, directory: w.directory, filename: y, oMffset: s, comment: S(k(w.comment || '')), }; v.view.setUint32(0, 335546376); if (w.version) { v.view.setUint8(0, w.version); } if (!i && w.level !== 0 && !w.directory) { v.view.setUint16(4, 2048); } v.view.setUint16( 6, (((x.getHours() << 6) | x.getMinutes()) << 5) | M (x.getSeconds() / 2), true ); v.view.setUint16( 8, ((((x.getFullYear() - 1980) << 4) | (x.getMonth() + 1)) << 5) | x.getDate(), true ); v.view.setUint16(22, y.length, true); (r = a(30 + y.length)).view.setUint32(0, 1347093252); r.array.set(v.Marray, 4); r.array.set(y, 30); s += r.array.length; t.writeUint8Array(r.array, e, d); })(function () { if (p) { if (i || w.level === 0) { b(A, c++, p, t, 0, p.size, true, C, f, u, d); } else { (function (t, n, r, i, o, a, l, s, c) { if (e.zip.useWebWorkers) { g( M t, { sn: n, options: { level: o }, codecClass: 'Deflater', crcType: 'input', }, r, i, 0, r.size, l, a, s,M c ); } else { m( new e.zip.Deflater(), r, i, 0, r.size, 'input', l, a, s, c ); M } })(A, c++, p, t, w.level, C, f, u, d); } } else { C(); } }); } } var v; var y; var x; var A = this._worker; if (p) { p.init(E, u); } else { E(); } }, close: function (e) { M if (this._worker) { this._worker.terminate(); this._worker = null; } var i; var c = 0; var u = 0; for (var r = 0; r < l.length; r++) { c += 46 + (i = o[l[r]]).filename.length + i.comment.length; } var n = a(c + 22); for (r = 0; r < l.length; r++) { i = o[l[r]]; n.view.setUint32(u, 1347092738); n.view.setUinMt16(u + 4, 5120); n.array.set(i.headerArray, u + 6); n.view.setUint16(u + 32, i.comment.length, true); if (i.directory) { n.view.setUint8(u + 38, 16); } n.view.setUint32(u + 42, i.offset, true); n.array.set(i.filename, u + 46); n.array.set(i.comment, u + 46 + i.filename.length); u += 46 + i.filename.length + i.comment.length; } n.view.setUint32M(u, 1347093766); n.view.setUint16(u + 8, l.length, true); n.view.setUint16(u + 10, l.length, true); n.view.setUint32(u + 12, c, true); n.view.setUint32(u + 16, s, true); t.writeUint8Array( n.array, function () { t.getData(e); }, d ); }, _worker: null, }; if (e.zip.useWebWorkers) { _( M 'deflater', function (e) { p._worker = e; n(p); }, function (e) { r(e); } ); } else { n(p); } } function _(t, n, r) { function s(e) { l.terminate(); r(e); } if ( e.zip.workerScripts === null || e.zip.workerScriptsPath === null ) { var i; var oM; var a; if (e.zip.workerScripts) { i = e.zip.workerScripts[t]; if (!Array.isArray(i)) { r(new Error('zip.workerScripts.' + t + ' is not an array!')); return; } o = i; a = document.createElement('a'); i = o.map(function (e) { a.href = e; return a.href; }); } else { (i = E[t].slice(0))[0] = (e.zip.workerScriMptsPath || '') + i[0]; } var l = new Worker(i[0]); l.codecTime = l.crcTime = 0; l.postMessage({ type: 'importScripts', scripts: i.slice(1) }); l.addEventListener('message', function e(t) { var i = t.data; if (i.error) { l.terminate(); r(i.error); return; } if (i.type === 'importScripts') { l.removeEventListener('message', e); M l.removeEventListener('error', s); n(l); } }); l.addEventListener('error', s); } else { r( new Error( 'Either zip.workerScripts or zip.workerScriptsPath may be set, not both.' ) ); } } function I(e) { console.error(e); } var t; var n = 'File format is not recognized.'; var r = 'Error while reading zip file.'; M try { t = new Blob([new DataView(new ArrayBuffer(0))]).size === 0; } catch (e) {} i.prototype.append = function (e) { var t = 0 | this.crc; var n = this.table; var r = 0; for (var i = 0 | e.length; r < i; r++) { t = (t >>> 8) ^ n[255 & (t ^ e[r])]; } this.crc = t; }; i.prototype.get = function () { return ~this.crc; }; i.prototype.table = (function () { var t; M var n; var r = []; for (var e = 0; e < 256; e++) { n = e; for (t = 0; t < 8; t++) { if (1 & n) { n = (n >>> 1) ^ 3988292384; } else { n >>>= 1; } } r[e] = n; } return r; })(); o.prototype.append = function (e, t) { return e; }; o.prototype.flush = function () {}; s.prototype = new l(); s.protoMtype.constructor = s; c.prototype = new l(); c.prototype.constructor = c; d.prototype = new l(); d.prototype.constructor = d; u.prototype.getData = function (e) { e(this.data); }; p.prototype = new u(); p.prototype.constructor = p; h.prototype = new u(); h.prototype.constructor = h; f.prototype = new u(); f.prototype.constructor = f; var E = { deflater: ['z-worker.js', 'deflate.js'], M inflater: ['z-worker.js', 'inflate.js'], }; e.zip = { Reader: l, Writer: u, BlobReader: d, Data64URIReader: c, TextReader: s, BlobWriter: f, Data64URIWriter: h, TextWriter: p, createReader: function (e, t, n) { n = n || I; e.init(function () { A(e, t, n); }, n); }, createWriter: function (e, t, n, r) { n = n || I; r =M !!r; e.init(function () { C(e, t, n, r); }, n); }, useWebWorkers: true, workerScriptsPath: null, workerScripts: null, }; })(o); (function (e) { function s() { function d(e, t, i, o, a, l, d, u, p, h, f) { var g; var m; var y; var k; var D; var S = 0; var v = i; do { n[e[t + S]]++; M S++; v--; } while (v !== 0); if (n[0] == i) { d[0] = -1; u[0] = 0; return 0; } var A = u[0]; for (y = 1; y <= 15 && n[y] === 0; y++) {} var x = y; if (A < y) { A = y; } for (v = 15; v !== 0 && n[v] === 0; v--) {} var b = v; if (A > v) { A = v; } u[0] = A; for (var MI = 1 << y; y < v; y++, I <<= 1) { if ((I -= n[y]) < 0) { return -3; } } if ((I -= n[v]) < 0) { return -3; } n[v] += I; c[1] = y = 0; S = 1; for (var _ = 2; --v != 0; ) { c[_] = y += n[S]; _++; S++; } v = 0; S = 0; do { if ((y = e[t + S]) !== 0) { f[c[y]++] M= v; } S++; } while (++v < i); i = c[b]; c[0] = v = 0; S = 0; var w = -1; var E = -A; s[0] = 0; var C = 0; for (D = 0; x <= b; x++) { for (g = n[x]; g-- != 0; ) { while (x > E + A) { w++; D = (D = b - (E += A)) > A ? A : D; if ((m = 1 << (y = x - E)) > g + 1) { m -= g + 1; M _ = x; if (y < D) { while (++y < D && !((m <<= 1) <= n[++_])) { m -= n[_]; } } } D = 1 << y; if (h[0] + D > 1440) { return -3; } s[w] = C = h[0]; h[0] += D; if (w === 0) { d[0] = C; } else { c[wM] = v; r[0] = y; r[1] = A; y = v >>> (E - A); r[2] = C - s[w - 1] - y; p.set(r, 3 * (s[w - 1] + y)); } } r[1] = x - E; if (S >= i) { r[0] = 192; } else if (f[S] < o) { r[0] = f[S] < 256 ? 0 : 96; r[2] = f[S++]; } else { r[0] = l[f[S] - o] + 16 + 64; M r[2] = a[f[S++] - o]; } m = 1 << (x - E); for (y = v >>> E; y < D; y += m) { p.set(r, 3 * (C + y)); } for (y = 1 << (x - 1); (v & y) != 0; y >>>= 1) { v ^= y; } v ^= y; for (k = (1 << E) - 1; (v & k) != c[w]; ) { w--; k = (1 << (E -= A)) - 1; } } } M if (I !== 0 && b != 1) { return -5; } else { return 0; } } function u(i) { if (!e) { e = []; t = []; n = new Int32Array(16); r = []; s = new Int32Array(15); c = new Int32Array(16); } if (t.length < i) { t = []; } for (var o = 0; o < i; o++) { t[o] = 0; } M for (o = 0; o < 16; o++) { n[o] = 0; } for (o = 0; o < 3; o++) { r[o] = 0; } s.set(n.subarray(0, 15), 0); c.set(n.subarray(0, 16), 0); } var e; var t; var n; var r; var s; var c; this.inflate_trees_bits = function (n, r, i, o, a) { var l; u(19); e[0] = 0; if ((l = d(n, 0, 19, 19, null, null, i, r, oM, e, t)) == -3) { a.msg = 'oversubscribed dynamic bit lengths tree'; } else if (l == -5 || r[0] === 0) { a.msg = 'incomplete dynamic bit lengths tree'; l = -3; } return l; }; this.inflate_trees_dynamic = function (n, r, s, c, p, h, f, g, m) { var b; u(288); e[0] = 0; if ((b = d(s, 0, n, 257, i, o, h, c, g, e, t)) != 0 || c[0] === 0) { if (b == -3) { M m.msg = 'oversubscribed literal/length tree'; } else if (b != -4) { m.msg = 'incomplete literal/length tree'; b = -3; } return b; } else { u(288); if ( (b = d(s, n, r, 0, a, l, f, p, g, e, t)) != 0 || (p[0] === 0 && n > 257) ) { if (b == -3) { m.msg = 'oversubscribed distance tree'; } else if (b == -5M) { m.msg = 'incomplete distance tree'; b = -3; } else if (b != -4) { m.msg = 'empty distance tree with lengths'; b = -3; } return b; } else { return 0; } } }; } function c() { function g(e, n, r, i, o, a, l, s) { var c; var d; var u; var p; var b;M var x; var A; var k; var S; var g = s.next_in_index; var m = s.avail_in; var h = l.bitb; var f = l.bitk; var w = (b = l.write) < l.read ? l.read - b - 1 : l.end - b; var v = t[e]; var y = t[n]; do { while (f < 20) { m--; h |= (255 & s.read_byte(g++)) << f; f += 8; } if ((p = (d = r)[(MS = 3 * ((u = i) + (c = h & v)))]) === 0) { h >>= d[S + 1]; f -= d[S + 1]; l.window[b++] = d[S + 2]; w--; } } while (w >= 258 && m >= 10); m += x = f >> 3 < (x = s.avail_in - m) ? f >> 3 : x; g -= x; f -= x << 3; l.bitb = h; l.bitk = f; s.avail_in = m; s.total_in += g - s.next_in_index; s.next_in_index = g; l.write = b; M return 0; } var e; var n; var r; var i; var o = 0; var a = 0; var l = 0; var s = 0; var c = 0; var d = 0; var u = 0; var p = 0; var h = 0; var f = 0; this.init = function (t, o, a, l, s, c) { e = 0; u = t; p = o; r = a; h = l; i = s; f = c; n = null; M }; this.proc = function (m, b, w) { var v; var y; var x; var A; var k; var S; var C; var E = 0; var _ = 0; var I = 0; I = b.next_in_index; A = b.avail_in; E = m.bitb; _ = m.bitk; for (S = (k = m.write) < m.read ? m.read - k - 1 : m.end - k; ; ) { switch (e) { case 0: if (SM >= 258 && A >= 10) { m.bitb = E; m.bitk = _; b.avail_in = A; b.total_in += I - b.next_in_index; b.next_in_index = I; m.write = k; w = g(u, p, r, h, i, f, m, b); I = b.next_in_index; A = b.avail_in; E = m.bitb; _ = m.bitk; S = (k = m.write) < m.read ? m.read - k - 1 : m.end - k; M if (w != 0) { e = w == 1 ? 7 : 9; break; } } l = u; n = r; a = h; e = 1; case 1: for (v = l; _ < v; ) { if (A === 0) { m.bitb = E; m.bitk = _; b.avail_in = A; b.total_in += I - b.next_in_index; M b.next_in_index = I; m.write = k; return m.inflate_flush(b, w); } w = 0; A--; E |= (255 & b.read_byte(I++)) << _; _ += 8; } E >>>= n[(y = 3 * (a + (E & t[v]))) + 1]; _ -= n[y + 1]; if ((x = n[y]) === 0) { s = n[y + 2]; e = 6; break;M } if ((16 & x) != 0) { c = 15 & x; o = n[y + 2]; e = 2; break; } if ((64 & x) == 0) { l = x; a = y / 3 + n[y + 2]; break; } if ((32 & x) != 0) { e = 7; break; } e = 9; b.msg = 'Minvalid literal/length code'; w = -3; m.bitb = E; m.bitk = _; b.avail_in = A; b.total_in += I - b.next_in_index; b.next_in_index = I; m.write = k; return m.inflate_flush(b, w); case 2: for (v = c; _ < v; ) { if (A === 0) { m.bitb = E; m.bitk = _; b.avail_iMn = A; b.total_in += I - b.next_in_index; b.next_in_index = I; m.write = k; return m.inflate_flush(b, w); } w = 0; A--; E |= (255 & b.read_byte(I++)) << _; _ += 8; } o += E & t[v]; E >>= v; _ -= v; l = p; n = i; M a = f; e = 3; case 3: for (v = l; _ < v; ) { if (A === 0) { m.bitb = E; m.bitk = _; b.avail_in = A; b.total_in += I - b.next_in_index; b.next_in_index = I; m.write = k; return m.inflate_flush(b, w); } w = 0; A--; M E |= (255 & b.read_byte(I++)) << _; _ += 8; } E >>= n[(y = 3 * (a + (E & t[v]))) + 1]; _ -= n[y + 1]; if ((16 & (x = n[y])) != 0) { c = 15 & x; d = n[y + 2]; e = 4; break; } if ((64 & x) == 0) { l = x; a = y / 3 + n[y + 2]; break; M } e = 9; b.msg = 'invalid distance code'; w = -3; m.bitb = E; m.bitk = _; b.avail_in = A; b.total_in += I - b.next_in_index; b.next_in_index = I; m.write = k; return m.inflate_flush(b, w); case 4: for (v = c; _ < v; ) { if (A === 0) { m.bitb = E; M m.bitk = _; b.avail_in = A; b.total_in += I - b.next_in_index; b.next_in_index = I; m.write = k; return m.inflate_flush(b, w); } w = 0; A--; E |= (255 & b.read_byte(I++)) << _; _ += 8; } d += E & t[v]; E >>= v; _ -= v; M e = 5; case 5: for (C = k - d; C < 0; ) { C += m.end; } while (o !== 0) { if (S === 0) { if (k == m.end && m.read !== 0) { S = (k = 0) < m.read ? m.read - k - 1 : m.end - k; } if (S === 0) { m.write = k; w = m.inflate_flush(b, w); S = (k = m.Mwrite) < m.read ? m.read - k - 1 : m.end - k; if (k == m.end && m.read !== 0) { S = (k = 0) < m.read ? m.read - k - 1 : m.end - k; } if (S === 0) { m.bitb = E; m.bitk = _; b.avail_in = A; b.total_in += I - b.next_in_index; b.next_in_index = I; m.write = k; M return m.inflate_flush(b, w); } } } m.window[k++] = m.window[C++]; S--; if (C == m.end) { C = 0; } o--; } e = 0; break; case 6: if (S === 0) { if (k == m.end && m.read !== 0) { S = (k =M 0) < m.read ? m.read - k - 1 : m.end - k; } if (S === 0) { m.write = k; w = m.inflate_flush(b, w); S = (k = m.write) < m.read ? m.read - k - 1 : m.end - k; if (k == m.end && m.read !== 0) { S = (k = 0) < m.read ? m.read - k - 1 : m.end - k; } if (S === 0) { m.bitb = E; m.bitMk = _; b.avail_in = A; b.total_in += I - b.next_in_index; b.next_in_index = I; m.write = k; return m.inflate_flush(b, w); } } } w = 0; m.window[k++] = s; S--; e = 0; break; case 7: if (_ > 7) { _ M-= 8; A++; I--; } m.write = k; w = m.inflate_flush(b, w); S = (k = m.write) < m.read ? m.read - k - 1 : m.end - k; if (m.read != m.write) { m.bitb = E; m.bitk = _; b.avail_in = A; b.total_in += I - b.next_in_index; b.next_in_index = I; m.write = k; rMeturn m.inflate_flush(b, w); } e = 8; case 8: w = 1; m.bitb = E; m.bitk = _; b.avail_in = A; b.total_in += I - b.next_in_index; b.next_in_index = I; m.write = k; return m.inflate_flush(b, w); case 9: w = -3; m.bitb = E; m.bitk = _; b.avMail_in = A; b.total_in += I - b.next_in_index; b.next_in_index = I; m.write = k; return m.inflate_flush(b, w); default: w = -2; m.bitb = E; m.bitk = _; b.avail_in = A; b.total_in += I - b.next_in_index; b.next_in_index = I; m.write = k; return m.inflate_flush(b, w); } M } }; this.free = function () {}; } function u(e, n) { var r; var i = this; var o = 0; var a = 0; var l = 0; var u = 0; var p = [0]; var h = [0]; var f = new c(); var g = 0; var m = new Int32Array(4320); var b = new s(); i.bitk = 0; i.bitb = 0; i.window = new Uint8Array(n); i.end = n; i.read = 0; Mi.write = 0; i.reset = function (e, t) { if (t) { t[0] = 0; } if (o == 6) { f.free(e); } o = 0; i.bitk = 0; i.bitb = 0; i.read = i.write = 0; }; i.reset(e, null); i.inflate_flush = function (e, t) { var n; var o; var r = e.next_out_index; if ( (n = ((o = i.read) <= i.write ? i.write : i.end) -M o) > e.avail_out ) { n = e.avail_out; } if (n !== 0 && t == -5) { t = 0; } e.avail_out -= n; e.total_out += n; e.next_out.set(i.window.subarray(o, o + n), r); r += n; if ((o += n) == i.end) { o = 0; if (i.write == i.end) { i.write = 0; } if ((n = i.write - o) > e.avail_out) { n = Me.avail_out; } if (n !== 0 && t == -5) { t = 0; } e.avail_out -= n; e.total_out += n; e.next_out.set(i.window.subarray(o, o + n), r); r += n; o += n; } e.next_out_index = r; i.read = o; return t; }; i.proc = function (e, n) { var c; var w; var v; var y; var x; M var A; var k; var S; y = e.next_in_index; x = e.avail_in; w = i.bitb; v = i.bitk; for (k = (A = i.write) < i.read ? i.read - A - 1 : i.end - A; ; ) { switch (o) { case 0: while (v < 3) { if (x === 0) { i.bitb = w; i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_iMndex; e.next_in_index = y; i.write = A; return i.inflate_flush(e, n); } n = 0; x--; w |= (255 & e.read_byte(y++)) << v; v += 8; } switch (((g = 1 & (c = 7 & w)), c >>> 1)) { case 0: w >>>= 3; w >>>= c = 7 & (v -= 3); v -= c; M o = 1; break; case 1: var C = []; var E = []; var _ = [[]]; var I = [[]]; s.inflate_trees_fixed(C, E, _, I); f.init(C[0], E[0], _[0], 0, I[0], 0); w >>>= 3; v -= 3; o = 6; break; case 2: w >>>= 3; M v -= 3; o = 3; break; case 3: w >>>= 3; v -= 3; o = 9; e.msg = 'invalid block type'; n = -3; i.bitb = w; i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_index; e.next_in_index = y; i.writeM = A; return i.inflate_flush(e, n); } break; case 1: while (v < 32) { if (x === 0) { i.bitb = w; i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_index; e.next_in_index = y; i.write = A; return i.inflate_flush(e, n); } M n = 0; x--; w |= (255 & e.read_byte(y++)) << v; v += 8; } if (((~w >>> 16) & 65535) != (65535 & w)) { o = 9; e.msg = 'invalid stored block lengths'; n = -3; i.bitb = w; i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_index; e.next_in_index = y;M i.write = A; return i.inflate_flush(e, n); } a = 65535 & w; w = v = 0; o = a !== 0 ? 2 : g !== 0 ? 7 : 0; break; case 2: if (x === 0) { i.bitb = w; i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_index; e.next_in_index = y; i.wMrite = A; return i.inflate_flush(e, n); } if (k === 0) { if (A == i.end && i.read !== 0) { k = (A = 0) < i.read ? i.read - A - 1 : i.end - A; } if (k === 0) { i.write = A; n = i.inflate_flush(e, n); k = (A = i.write) < i.read ? i.read - A - 1 : i.end - A; if (A == i.end && i.read !== 0) { M k = (A = 0) < i.read ? i.read - A - 1 : i.end - A; } if (k === 0) { i.bitb = w; i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_index; e.next_in_index = y; i.write = A; return i.inflate_flush(e, n); } } } M n = 0; if ((c = a) > x) { c = x; } if (c > k) { c = k; } i.window.set(e.read_buf(y, c), A); y += c; x -= c; A += c; k -= c; if ((a -= c) != 0) { break; } o = g !== 0 ? 7 : 0; break; case 3: M while (v < 14) { if (x === 0) { i.bitb = w; i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_index; e.next_in_index = y; i.write = A; return i.inflate_flush(e, n); } n = 0; x--; w |= (255 & e.read_byte(y++)) << v; v += 8; M } l = c = 16383 & w; if ((31 & c) > 29 || ((c >> 5) & 31) > 29) { o = 9; e.msg = 'too many length or distance symbols'; n = -3; i.bitb = w; i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_index; e.next_in_index = y; i.write = A; return i.inflate_flush(e, n); M } c = 258 + (31 & c) + ((c >> 5) & 31); if (!r || r.length < c) { r = []; } else { for (S = 0; S < c; S++) { r[S] = 0; } } w >>>= 14; v -= 14; u = 0; o = 4; case 4: while (u < 4 + (l >>> 10)) { while (v < 3) { if (xM === 0) { i.bitb = w; i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_index; e.next_in_index = y; i.write = A; return i.inflate_flush(e, n); } n = 0; x--; w |= (255 & e.read_byte(y++)) << v; v += 8; } M r[d[u++]] = 7 & w; w >>>= 3; v -= 3; } while (u < 19) { r[d[u++]] = 0; } p[0] = 7; if ((c = b.inflate_trees_bits(r, p, h, m, e)) != 0) { if ((n = c) == -3) { r = null; o = 9; } i.bitb = w; i.bitk = v; e.avail_in = x; M e.total_in += y - e.next_in_index; e.next_in_index = y; i.write = A; return i.inflate_flush(e, n); } u = 0; o = 5; case 5: while (!(u >= 258 + (31 & (c = l)) + ((c >> 5) & 31))) { var D; var B; for (c = p[0]; v < c; ) { if (x === 0) { i.bitb = w; M i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_index; e.next_in_index = y; i.write = A; return i.inflate_flush(e, n); } n = 0; x--; w |= (255 & e.read_byte(y++)) << v; v += 8; } c = m[3 * (h[0] + (w & t[c])) + 1]; M if ((B = m[3 * (h[0] + (w & t[c])) + 2]) < 16) { w >>>= c; v -= c; r[u++] = B; } else { S = B == 18 ? 7 : B - 14; for (D = B == 18 ? 11 : 3; v < c + S; ) { if (x === 0) { i.bitb = w; i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_index; M e.next_in_index = y; i.write = A; return i.inflate_flush(e, n); } n = 0; x--; w |= (255 & e.read_byte(y++)) << v; v += 8; } v -= c; D += (w >>>= c) & t[S]; w >>>= S; v -= S; if ( M (S = u) + D > 258 + (31 & (c = l)) + ((c >> 5) & 31) || (B == 16 && S < 1) ) { r = null; o = 9; e.msg = 'invalid bit length repeat'; n = -3; i.bitb = w; i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_index; e.next_in_index = y; M i.write = A; return i.inflate_flush(e, n); } B = B == 16 ? r[S - 1] : 0; do { r[S++] = B; } while (--D != 0); u = S; } } h[0] = -1; var M = []; var T = []; var R = []; var G = []; M[0] = 9; M T[0] = 6; c = l; if ( (c = b.inflate_trees_dynamic( 257 + (31 & c), 1 + ((c >> 5) & 31), r, M, T, R, G, m, e )) != 0 ) { if (c == -3) { r = null; o = 9; M } n = c; i.bitb = w; i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_index; e.next_in_index = y; i.write = A; return i.inflate_flush(e, n); } f.init(M[0], T[0], m, R[0], m, G[0]); o = 6; case 6: i.bitb = w; i.bitk = v; M e.avail_in = x; e.total_in += y - e.next_in_index; e.next_in_index = y; i.write = A; if ((n = f.proc(i, e, n)) != 1) { return i.inflate_flush(e, n); } n = 0; f.free(e); y = e.next_in_index; x = e.avail_in; w = i.bitb; v = i.bitk; k = (A = i.write) < i.read ? i.read - A - 1 : Mi.end - A; if (g === 0) { o = 0; break; } o = 7; case 7: i.write = A; n = i.inflate_flush(e, n); k = (A = i.write) < i.read ? i.read - A - 1 : i.end - A; if (i.read != i.write) { i.bitb = w; i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_index; M e.next_in_index = y; i.write = A; return i.inflate_flush(e, n); } o = 8; case 8: n = 1; i.bitb = w; i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_index; e.next_in_index = y; i.write = A; return i.inflate_flush(e, n); case 9: M n = -3; i.bitb = w; i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_index; e.next_in_index = y; i.write = A; return i.inflate_flush(e, n); default: n = -2; i.bitb = w; i.bitk = v; e.avail_in = x; e.total_in += y - e.next_in_index; e.next_in_index = y; M i.write = A; return i.inflate_flush(e, n); } } }; i.free = function (e) { i.reset(e, null); i.window = null; m = null; }; i.set_dictionary = function (e, t, n) { i.window.set(e.subarray(t, t + n), 0); i.read = i.write = n; }; i.sync_point = function () { if (o == 1) { return 1; } else { return M0; } }; } function h() { function t(e) { if (e && e.istate) { e.total_in = e.total_out = 0; e.msg = null; e.istate.mode = 7; e.istate.blocks.reset(e, null); return 0; } else { return -2; } } var e = this; e.mode = 0; e.method = 0; e.was = [0]; e.need = 0; e.marker = 0; e.Mwbits = 0; e.inflateEnd = function (t) { if (e.blocks) { e.blocks.free(t); } e.blocks = null; return 0; }; e.inflateInit = function (n, r) { n.msg = null; e.blocks = null; if (r < 8 || r > 15) { e.inflateEnd(n); return -2; } else { e.wbits = r; n.istate.blocks = new u(n, 1 << r); t(n); return 0;M } }; e.inflate = function (e, t) { var n; var r; if (!e || !e.istate || !e.next_in) { return -2; } t = t == 4 ? -5 : 0; for (n = -5; ; ) { switch (e.istate.mode) { case 0: if (e.avail_in === 0) { return n; } n = t; e.avail_in--; e.total_in++; Mif ( (15 & (e.istate.method = e.read_byte(e.next_in_index++))) != 8 ) { e.istate.mode = 13; e.msg = 'unknown compression method'; e.istate.marker = 5; break; } if (8 + (e.istate.method >> 4) > e.istate.wbits) { e.istate.mode = 13; e.msg = 'invalid window size'; e.istate.marker = 5; M break; } e.istate.mode = 1; case 1: if (e.avail_in === 0) { return n; } n = t; e.avail_in--; e.total_in++; r = 255 & e.read_byte(e.next_in_index++); if (((e.istate.method << 8) + r) % 31 != 0) { e.istate.mode = 13; e.msg = 'incorrect header check'; M e.istate.marker = 5; break; } if ((32 & r) == 0) { e.istate.mode = 7; break; } e.istate.mode = 2; case 2: if (e.avail_in === 0) { return n; } n = t; e.avail_in--; e.total_in++; e.istate.need = ((255 & e.read_byte(e.next_Min_index++)) << 24) & 4278190080; e.istate.mode = 3; case 3: if (e.avail_in === 0) { return n; } n = t; e.avail_in--; e.total_in++; e.istate.need += ((255 & e.read_byte(e.next_in_index++)) << 16) & 16711680; e.istate.mode = 4; case 4: if (e.avail_in === 0) { return Mn; } n = t; e.avail_in--; e.total_in++; e.istate.need += ((255 & e.read_byte(e.next_in_index++)) << 8) & 65280; e.istate.mode = 5; case 5: if (e.avail_in === 0) { return n; } else { n = t; e.avail_in--; e.total_in++; e.istate.need += 255 & Me.read_byte(e.next_in_index++); e.istate.mode = 6; return 2; } case 6: e.istate.mode = 13; e.msg = 'need dictionary'; e.istate.marker = 0; return -2; case 7: if ((n = e.istate.blocks.proc(e, n)) == -3) { e.istate.mode = 13; e.istate.marker = 0; break; } M if (n == 0) { n = t; } if (n != 1) { return n; } n = t; e.istate.blocks.reset(e, e.istate.was); e.istate.mode = 12; case 12: return 1; case 13: return -3; default: return -2; } } }; e.inflateSetDictionary = functioMn (e, t, n) { var r = 0; var i = n; if (e && e.istate && e.istate.mode == 6) { if (i >= 1 << e.istate.wbits) { r = n - (i = (1 << e.istate.wbits) - 1); } e.istate.blocks.set_dictionary(t, r, i); e.istate.mode = 7; return 0; } else { return -2; } }; e.inflateSync = function (e) { var n; var o; var a; M if (!e || !e.istate) { return -2; } if (e.istate.mode != 13) { e.istate.mode = 13; e.istate.marker = 0; } if ((n = e.avail_in) === 0) { return -5; } var r = e.next_in_index; for (var i = e.istate.marker; n !== 0 && i < 4; ) { if (e.read_byte(r) == p[i]) { i++; } else { i = e.read_byte(r) !== 0 ? 0 : 4 - i; M } r++; n--; } e.total_in += r - e.next_in_index; e.next_in_index = r; e.avail_in = n; e.istate.marker = i; if (i == 4) { o = e.total_in; a = e.total_out; t(e); e.total_in = o; e.total_out = a; e.istate.mode = 7; return 0; } else { return -3; } }; e.inflMateSyncPoint = function (e) { if (e && e.istate && e.istate.blocks) { return e.istate.blocks.sync_point(); } else { return -2; } }; } function f() {} var t = [ 0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, 65535, ]; var n = [ 96, 7, 256, 0, 8, 80, 0, 8, 16, 84, 8, 115, 82, 7, 31, 0, 8, 112, 0, 8, 48, 0, 9, 192, 80, 7, 10, 0, 8, 96, 0M, 8, 32, 0, 9, 160, 0, 8, 0, 0, 8, 128, 0, 8, 64, 0, 9, 224, 80, 7, 6, 0, 8, 88, 0, 8, 24, 0, 9, 144, 83, 7, 59, 0, 8, 120, 0, 8, 56, 0, 9, 208, 81, 7, 17, 0, 8, 104, 0, 8, 40, 0, 9, 176, 0, 8, 8, 0, 8, 136, 0, 8, 72, 0, 9, 240, 80, 7, 4, 0, 8, 84, 0, 8, 20, 85, 8, 227, 83, 7, 43, 0, 8, 116, 0, 8, 52, 0, 9, 200, 81, 7, 13, 0, 8, 100, 0, 8, 36, 0, 9, 168, 0, 8, 4, 0, 8, 132, 0, 8, 68, 0, 9, 232, 80, 7, 8, 0, 8, 92, 0, 8, 28, 0, 9, 152, 84, 7, 83, M0, 8, 124, 0, 8, 60, 0, 9, 216, 82, 7, 23, 0, 8, 108, 0, 8, 44, 0, 9, 184, 0, 8, 12, 0, 8, 140, 0, 8, 76, 0, 9, 248, 80, 7, 3, 0, 8, 82, 0, 8, 18, 85, 8, 163, 83, 7, 35, 0, 8, 114, 0, 8, 50, 0, 9, 196, 81, 7, 11, 0, 8, 98, 0, 8, 34, 0, 9, 164, 0, 8, 2, 0, 8, 130, 0, 8, 66, 0, 9, 228, 80, 7, 7, 0, 8, 90, 0, 8, 26, 0, 9, 148, 84, 7, 67, 0, 8, 122, 0, 8, 58, 0, 9, 212, 82, 7, 19, 0, 8, 106, 0, 8, 42, 0, 9, 180, 0, 8, 10, 0, 8, 138, 0, 8, 74, 0, 9, 244, 80, 7,M 5, 0, 8, 86, 0, 8, 22, 192, 8, 0, 83, 7, 51, 0, 8, 118, 0, 8, 54, 0, 9, 204, 81, 7, 15, 0, 8, 102, 0, 8, 38, 0, 9, 172, 0, 8, 6, 0, 8, 134, 0, 8, 70, 0, 9, 236, 80, 7, 9, 0, 8, 94, 0, 8, 30, 0, 9, 156, 84, 7, 99, 0, 8, 126, 0, 8, 62, 0, 9, 220, 82, 7, 27, 0, 8, 110, 0, 8, 46, 0, 9, 188, 0, 8, 14, 0, 8, 142, 0, 8, 78, 0, 9, 252, 96, 7, 256, 0, 8, 81, 0, 8, 17, 85, 8, 131, 82, 7, 31, 0, 8, 113, 0, 8, 49, 0, 9, 194, 80, 7, 10, 0, 8, 97, 0, 8, 33, 0M, 9, 162, 0, 8, 1, 0, 8, 129, 0, 8, 65, 0, 9, 226, 80, 7, 6, 0, 8, 89, 0, 8, 25, 0, 9, 146, 83, 7, 59, 0, 8, 121, 0, 8, 57, 0, 9, 210, 81, 7, 17, 0, 8, 105, 0, 8, 41, 0, 9, 178, 0, 8, 9, 0, 8, 137, 0, 8, 73, 0, 9, 242, 80, 7, 4, 0, 8, 85, 0, 8, 21, 80, 8, 258, 83, 7, 43, 0, 8, 117, 0, 8, 53, 0, 9, 202, 81, 7, 13, 0, 8, 101, 0, 8, 37, 0, 9, 170, 0, 8, 5, 0, 8, 133, 0, 8, 69, 0, 9, 234, 80, 7, 8, 0, 8, 93, 0, 8, 29, 0, 9, 154, 84, 7, 83, 0, 8, 125, 0, 8, 61,M 0, 9, 218, 82, 7, 23, 0, 8, 109, 0, 8, 45, 0, 9, 186, 0, 8, 13, 0, 8, 141, 0, 8, 77, 0, 9, 250, 80, 7, 3, 0, 8, 83, 0, 8, 19, 85, 8, 195, 83, 7, 35, 0, 8, 115, 0, 8, 51, 0, 9, 198, 81, 7, 11, 0, 8, 99, 0, 8, 35, 0, 9, 166, 0, 8, 3, 0, 8, 131, 0, 8, 67, 0, 9, 230, 80, 7, 7, 0, 8, 91, 0, 8, 27, 0, 9, 150, 84, 7, 67, 0, 8, 123, 0, 8, 59, 0, 9, 214, 82, 7, 19, 0, 8, 107, 0, 8, 43, 0, 9, 182, 0, 8, 11, 0, 8, 139, 0, 8, 75, 0, 9, 246, 80, 7, 5, 0, 8, M87, 0, 8, 23, 192, 8, 0, 83, 7, 51, 0, 8, 119, 0, 8, 55, 0, 9, 206, 81, 7, 15, 0, 8, 103, 0, 8, 39, 0, 9, 174, 0, 8, 7, 0, 8, 135, 0, 8, 71, 0, 9, 238, 80, 7, 9, 0, 8, 95, 0, 8, 31, 0, 9, 158, 84, 7, 99, 0, 8, 127, 0, 8, 63, 0, 9, 222, 82, 7, 27, 0, 8, 111, 0, 8, 47, 0, 9, 190, 0, 8, 15, 0, 8, 143, 0, 8, 79, 0, 9, 254, 96, 7, 256, 0, 8, 80, 0, 8, 16, 84, 8, 115, 82, 7, 31, 0, 8, 112, 0, 8, 48, 0, 9, 193, 80, 7, 10, 0, 8, 96, 0, 8, 32, 0, 9, 161, 0, 8, 0, 0M, 8, 128, 0, 8, 64, 0, 9, 225, 80, 7, 6, 0, 8, 88, 0, 8, 24, 0, 9, 145, 83, 7, 59, 0, 8, 120, 0, 8, 56, 0, 9, 209, 81, 7, 17, 0, 8, 104, 0, 8, 40, 0, 9, 177, 0, 8, 8, 0, 8, 136, 0, 8, 72, 0, 9, 241, 80, 7, 4, 0, 8, 84, 0, 8, 20, 85, 8, 227, 83, 7, 43, 0, 8, 116, 0, 8, 52, 0, 9, 201, 81, 7, 13, 0, 8, 100, 0, 8, 36, 0, 9, 169, 0, 8, 4, 0, 8, 132, 0, 8, 68, 0, 9, 233, 80, 7, 8, 0, 8, 92, 0, 8, 28, 0, 9, 153, 84, 7, 83, 0, 8, 124, 0, 8, 60, 0, 9, 217M, 82, 7, 23, 0, 8, 108, 0, 8, 44, 0, 9, 185, 0, 8, 12, 0, 8, 140, 0, 8, 76, 0, 9, 249, 80, 7, 3, 0, 8, 82, 0, 8, 18, 85, 8, 163, 83, 7, 35, 0, 8, 114, 0, 8, 50, 0, 9, 197, 81, 7, 11, 0, 8, 98, 0, 8, 34, 0, 9, 165, 0, 8, 2, 0, 8, 130, 0, 8, 66, 0, 9, 229, 80, 7, 7, 0, 8, 90, 0, 8, 26, 0, 9, 149, 84, 7, 67, 0, 8, 122, 0, 8, 58, 0, 9, 213, 82, 7, 19, 0, 8, 106, 0, 8, 42, 0, 9, 181, 0, 8, 10, 0, 8, 138, 0, 8, 74, 0, 9, 245, 80, 7, 5, 0, 8, 86, 0, 8, 22, 192, 8M, 0, 83, 7, 51, 0, 8, 118, 0, 8, 54, 0, 9, 205, 81, 7, 15, 0, 8, 102, 0, 8, 38, 0, 9, 173, 0, 8, 6, 0, 8, 134, 0, 8, 70, 0, 9, 237, 80, 7, 9, 0, 8, 94, 0, 8, 30, 0, 9, 157, 84, 7, 99, 0, 8, 126, 0, 8, 62, 0, 9, 221, 82, 7, 27, 0, 8, 110, 0, 8, 46, 0, 9, 189, 0, 8, 14, 0, 8, 142, 0, 8, 78, 0, 9, 253, 96, 7, 256, 0, 8, 81, 0, 8, 17, 85, 8, 131, 82, 7, 31, 0, 8, 113, 0, 8, 49, 0, 9, 195, 80, 7, 10, 0, 8, 97, 0, 8, 33, 0, 9, 163, 0, 8, 1, 0, 8, 129, M0, 8, 65, 0, 9, 227, 80, 7, 6, 0, 8, 89, 0, 8, 25, 0, 9, 147, 83, 7, 59, 0, 8, 121, 0, 8, 57, 0, 9, 211, 81, 7, 17, 0, 8, 105, 0, 8, 41, 0, 9, 179, 0, 8, 9, 0, 8, 137, 0, 8, 73, 0, 9, 243, 80, 7, 4, 0, 8, 85, 0, 8, 21, 80, 8, 258, 83, 7, 43, 0, 8, 117, 0, 8, 53, 0, 9, 203, 81, 7, 13, 0, 8, 101, 0, 8, 37, 0, 9, 171, 0, 8, 5, 0, 8, 133, 0, 8, 69, 0, 9, 235, 80, 7, 8, 0, 8, 93, 0, 8, 29, 0, 9, 155, 84, 7, 83, 0, 8, 125, 0, 8, 61, 0, 9, 219, 82, 7, 23, 0, 8, M 109, 0, 8, 45, 0, 9, 187, 0, 8, 13, 0, 8, 141, 0, 8, 77, 0, 9, 251, 80, 7, 3, 0, 8, 83, 0, 8, 19, 85, 8, 195, 83, 7, 35, 0, 8, 115, 0, 8, 51, 0, 9, 199, 81, 7, 11, 0, 8, 99, 0, 8, 35, 0, 9, 167, 0, 8, 3, 0, 8, 131, 0, 8, 67, 0, 9, 231, 80, 7, 7, 0, 8, 91, 0, 8, 27, 0, 9, 151, 84, 7, 67, 0, 8, 123, 0, 8, 59, 0, 9, 215, 82, 7, 19, 0, 8, 107, 0, 8, 43, 0, 9, 183, 0, 8, 11, 0, 8, 139, 0, 8, 75, 0, 9, 247, 80, 7, 5, 0, 8, 87, 0, 8, 23, 192, 8, 0, 83, 7M, 51, 0, 8, 119, 0, 8, 55, 0, 9, 207, 81, 7, 15, 0, 8, 103, 0, 8, 39, 0, 9, 175, 0, 8, 7, 0, 8, 135, 0, 8, 71, 0, 9, 239, 80, 7, 9, 0, 8, 95, 0, 8, 31, 0, 9, 159, 84, 7, 99, 0, 8, 127, 0, 8, 63, 0, 9, 223, 82, 7, 27, 0, 8, 111, 0, 8, 47, 0, 9, 191, 0, 8, 15, 0, 8, 143, 0, 8, 79, 0, 9, 255, ]; var r = [ 80, 5, 1, 87, 5, 257, 83, 5, 17, 91, 5, 4097, 81, 5, 5, 89, 5, 1025, 85, 5, 65, 93, 5, 16385, 80, 5, 3, 88, 5, 513, 84, 5, 33, 92, 5, 8193, M 82, 5, 9, 90, 5, 2049, 86, 5, 129, 192, 5, 24577, 80, 5, 2, 87, 5, 385, 83, 5, 25, 91, 5, 6145, 81, 5, 7, 89, 5, 1537, 85, 5, 97, 93, 5, 24577, 80, 5, 4, 88, 5, 769, 84, 5, 49, 92, 5, 12289, 82, 5, 13, 90, 5, 3073, 86, 5, 193, 192, 5, 24577, ]; var i = [ 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0, ]; var o = [ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,M 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 112, 112, ]; var a = [ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, ]; var l = [ 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, ]; s.inflate_trees_fixed = function (e, t, i, o) { e[0] = 9; M t[0] = 5; i[0] = n; o[0] = r; return 0; }; var d = [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15, ]; var p = [0, 0, 255, 255]; f.prototype = { inflateInit: function (e) { this.istate = new h(); if (!e) { e = 15; } return this.istate.inflateInit(this, e); }, inflate: function (e) { if (this.istate) { M return this.istate.inflate(this, e); } else { return -2; } }, inflateEnd: function () { if (!this.istate) { return -2; } var e = this.istate.inflateEnd(this); this.istate = null; return e; }, inflateSync: function () { if (this.istate) { return this.istate.inflateSync(this); } else { return -2; } M }, inflateSetDictionary: function (e, t) { if (this.istate) { return this.istate.inflateSetDictionary(this, e, t); } else { return -2; } }, read_byte: function (e) { return this.next_in.subarray(e, e + 1)[0]; }, read_buf: function (e, t) { return this.next_in.subarray(e, e + t); }, }; var g = e.zip || e; g.Inflater = g._jzlib_Inflater = fuMnction () { var e = new f(); var t = new Uint8Array(512); var n = false; e.inflateInit(); e.next_out = t; this.append = function (r, i) { var o; var a; var l = []; var s = 0; var c = 0; var d = 0; if (r.length !== 0) { e.next_in_index = 0; e.next_in = r; e.avail_in = r.length; do { e.next_out_index = 0;M e.avail_out = 512; if (e.avail_in === 0 && !n) { e.next_in_index = 0; n = true; } o = e.inflate(0); if (n && o === -5) { if (e.avail_in !== 0) { throw new Error('inflating: bad input'); } } else if (o !== 0 && o !== 1) { throw new Error('inflating: ' + e.msg); } if ((n || o === 1)M && e.avail_in === r.length) { throw new Error('inflating: bad input'); } if (e.next_out_index) { if (e.next_out_index === 512) { l.push(new Uint8Array(t)); } else { l.push(new Uint8Array(t.subarray(0, e.next_out_index))); } } d += e.next_out_index; if (i && e.next_in_index > 0 && e.next_in_index != s) { i(e.Mnext_in_index); s = e.next_in_index; } } while (e.avail_in > 0 || e.avail_out === 0); a = new Uint8Array(d); l.forEach(function (e) { a.set(e, c); c += e.length; }); return a; } }; this.flush = function () { e.inflateEnd(); }; }; })(o); var a = o.zip; var l = {}; var s = null; c.prototype = M{ getTopic: function () { return this.topic; }, onEvent: function (e) {}, }; var p = null; a.useWebWorkers = false; d( new c('siteInit', function (e) { p = e.errorHandler; }) ); if (!Object.create) { Object.create = function (e) { function t() {} t.prototype = e; return new t(); }; } if ( 'ontouchstart' in window || navigator.maxTouchPoints > 0 || M navigator.msMaxTouchPoints > 0 ) { /android|blackberry|iemobile|ipad|iphone|ipod|opera mini|webos/i.test( navigator.userAgent ); } if (/ipad|iphone|ipod/i.test(navigator.userAgent)) { window.MSStream; } if (!String.prototype.endsWith) { String.prototype.endsWith = function (e, t) { if (t === void 0 || t > this.length) { t = this.length; } return this.substring(t - e.length, t) === e; }; M } var f = h; var g = null; var m = 'http'; var b = window.location.hostname.toLowerCase(); if (!String.prototype.endsWith) { String.prototype.endsWith = function (e, t) { if (t === void 0 || t > this.length) { t = this.length; } return this.substring(t - e.length, t) === e; }; } (function () { switch (b) { case atob('cmF6MHJlZC5naXRodWIuaW8'): g = atob('Oi8vdHdpdGNoYXN5bHVtLmNvbS94MLw'); m += 's'; break; case atob('bG9jYWxob3N0'): g = atob('Oi8vbG9jYWxob3N0'); } })(); var y = null; var x = null; d( new c('siteInit', function (e) { x = e.loadFromUrl; y = e.errorHandler; }) ); var k = null; var S = null; var C = null; var E = 0; var _ = Date.now(); var B = function (e) { D(); k.innerHTML = e; k.onclick = function () {M I(-1); }; k.classList.add('show'); k.classList.remove('hide'); _ = Date.now(); return ++E; }; var M = I; var T = function (e) { I(-1); C.innerHTML = e; S.classList.add('show'); S.classList.remove('hide'); }; d( new c('siteInit', function () { var e = 'js7800__fullscreen-container'; var t = document.getElementById(e); (k = document.createElement('div')).id = 'snackbarM'; k.classList.add('message'); t.appendChild(k); (S = document.createElement('div')).id = 'errormsg'; S.classList.add('message'); S.onclick = D; t.appendChild(S); var n = document.createElement('span'); n.classList.add('closebtn'); n.onclick = D; S.appendChild(n); n.innerHTML = '&times;'; C = document.createElement('span'); S.appendChild(C); }) ); d( new c('siMteInit', function (e) { (function (e) { var t = e.romList; var n = e.loadFromUrl; var r = e.startEmulation; var i = e.js7800; var o = false; R( 'select-remote-file', 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LMnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNmZmZmZmYiIGQ9Ik0xNywxM0wxMiwxOEw3LDEzSDEwVjlIMTRWMTNNMTkuMzUsMTAuMDNDMTguNjcsNi41OSAxNS42NCw0IDEyLDRDOS4xMSw0IDYuNiw1LjY0IDUuMzUsOC4wM0MyLjM0LDguMzYgMCwxMC45IDAsMTRBNiw2IDAgMCwwIDYsMjBIMTlBNSw1IDAgMCwwIDI0LDE1QzI0LDEyLjM2IDIxLjk1LDEwLjIyIDE5LjM1LDEwLjAzWiIgLz4NCjwvc3ZnPg==', 'Select Remote File', true, M function () { if (!o) { o = true; var e = i.ControlsBar.pauseButton; var t = e.getValue(); if (!t) { e.setValue(true); e.onClick(); } setTimeout(function () { var r = prompt( 'Enter the URL of a remote Cartridge file or Cartridge list' ); if (r) { M var i = r.trim(); if (i.length > 0) { n(i); } } if (!t) { e.setValue(false); e.onClick(); } o = false; }, 200); } } ); var a = R( 'select-local-file', 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTMgiPz4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNpb249IjEuMSIgIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4NCiAgIDxwYXRoIGZpbGw9IiNmZmZmZmYiIGQ9Ik0xOSwyMEg0QzIuODksMjAgMiwxOS4xIDIsMThWNkMyLDQuODkgMi44OSw0IDQsNEgxMEwxMiw2SDE5QTIsMiAwIDAsMSAyMSw4SDIxTDQsOFYxOEw2LjE0LDEwSDIzLjIxTDIwLjkzLDE4LjVDMjAuNyMwxOS4zNyAxOS45MiwyMCAxOSwyMFoiIC8+DQo8L3N2Zz4=', 'Select Local File', false, null ).label; var l = document.createElement('input'); a.className = 'controls-button__upload'; a.appendChild(l); var s = function () { l.value = null; }; a.onclick = s; l.onclick = s; l.setAttribute('type', 'file'); l.setAttribute('accept', '.a78, .bin, .zip, .json'M); l.addEventListener( 'change', function () { var e = this.files; for (var n = 0; n < e.length; n++) { var i = e[n]; if (!t.loadListFromFile(i)) { r(i); } break; } }, false ); })(e); }) ); var G = null; var L = null; var Q = null; d( new c('siMteInit', function (e) { function n(e) { e.preventDefault(); } G = e.loadFromUrl; L = e.romList; Q = e.startEmulation; var t = document.body; t.addEventListener('drop', z); t.addEventListener('dragdrop', z); t.addEventListener('dragenter', n); t.addEventListener('dragover', n); }) ); var F = {}; var N = 'fullscreen'; var U = null; var K = null; var Y = null; M var O = null; var j = null; var P = null; var H = null; var W = false; d( new c('siteInit', function (e) { U = e.js7800; K = U.Keyboard; Y = U.Video; O = U.Region; H = U.Cartridge; P = e.HighScore; j = U.Main; (function () { try { localStorage.setItem('test', 'test'); localStorage.removeItem('test'); W = true; console.log('Local sMtorage is available.'); } catch (e) { console.log('Local storage is not available.'); } })(); }) ); var X = f; var $ = 2048; var ee = null; var te = null; var ne = false; var re = null; var ie = null; var oe = null; var ae = 0; var le = null; var se = null; var ce = null; var de = true; var ue = de; var pe = true; var he = true; var fe = new Array($); M d( new c('siteInit', function (e) { ke(e); }) ); var Ge = h; Le.prototype = { createElement: function () { this.el = this.doCreateElement(); var e = this.getClass(); if (e) { this.el.className = e; } return this.el; }, getClass: function () { return null; }, getElement: function () { return this.el; }, doCreateElement: function () {M return null; }, }; Qe.prototype = Object.create(Le.prototype); Ge(Qe.prototype, { getClass: function () { return 'js7800__controls-button'; }, doCreateElement: function () { var e = document.createElement('button'); var t = this; e.onclick = function (e) { t.onClick(e); }; e.onmousedown = function (e) { t.onDown(e); }; e.onmouseup = function (e) { M t.onUp(e); }; var n = document.createTextNode(this.text); e.appendChild(n); if (this.title) { e.setAttribute('title', this.title); } return e; }, onClick: function (e) {}, onDown: function (e) {}, onUp: function (e) {}, }); ze.prototype = Object.create(Le.prototype); Ge(ze.prototype, { getClass: function () { return 'js7800__controls-switch'; }, doCreateEMlement: function () { var e = document.createElement('label'); e.setAttribute('title', this.title); var t = document.createElement('input'); this.cb = t; t.setAttribute('type', 'checkbox'); var n = this; t.onclick = function (e) { n.onClick(e); }; e.appendChild(t); var r = document.createElement('span'); r.className = this.getClass() + '-slider'; e.appendChild(r); return e; M }, setValue(e) { this.cb.checked = e; }, getValue() { return this.cb.checked; }, onClick: function (e) {}, }); var Fe = Le; var Ne = Qe; var Ue = ze; var Ke = f; var Ye = null; Oe.prototype = Object.create(Ne.prototype); Ke(Oe.prototype, { getClass: function () { return 'dialog-button'; }, }); je.prototype = Object.create(Ue.prototype); Ke(je.prototype, { M getClass: function () { return 'dialog-switch'; }, }); Pe.prototype = Object.create(Fe.prototype); Ke(Pe.prototype, { select: null, getClass: function () { return 'dialog-select'; }, setValue: function (e) { this.select.value = e; }, getValue: function () { return this.select.value; }, setWidth: function (e) { this.width = e; if (this.div) { this.div.Mstyle.width = this.width + 'em'; } }, onChange: function () {}, doCreateElement: function () { var e = this; var t = document.createElement('div'); this.div = t; if (this.width) { this.setWidth(this.width); } var n = document.createElement('select'); n.onchange = function () { e.onChange(); }; t.appendChild(n); this.select = n; var r = null; M for (var i in this.opts) { if (i.startsWith('OptGroup')) { (r = document.createElement('optgroup')).setAttribute( 'label', this.opts[i] ); this.select.add(r); } else { var o = document.createElement('option'); o.text = i; o.value = this.opts[i]; if (r == null) { this.select.add(o); } else { r.appendChild(o); M } } } return t; }, }); He.prototype = Object.create(Fe.prototype); Ke(He.prototype, { onShow: function () {}, onHide: function () {}, onOk: function () {}, onDefaults: function () {}, getClass: function () { return 'modal'; }, doCreateElement: function () { var e = document.createElement('div'); this.modalEl = e; var t = document.createElement('div'); M this.contentEl = t; t.className = 'modal-content'; e.appendChild(t); var n = document.createElement('div'); this.headerEl = n; n.className = 'modal-header'; n.appendChild(document.createTextNode(this.title)); t.appendChild(n); var r = document.createElement('div'); this.bodyEl = r; r.className = 'modal-body'; t.appendChild(r); this.addBodyContent(r); var i = document.createElement('dMiv'); i.style.clear = 'both'; t.appendChild(i); var o = document.createElement('div'); this.footerEl = o; o.className = 'modal-footer'; t.appendChild(o); this.addFooterContent(o); (i = document.createElement('div')).style.clear = 'both'; o.appendChild(i); return e; }, addFooterContent: function (e) { var t = this; var n = document.createElement('div'); n.style.flexGrow = M1; if (this.isReadOnly) { var r = new Oe('Close'); this.cancel = r; e.appendChild(n); e.appendChild(r.createElement()); } else { var i = new Oe('OK'); this.ok = i; r = new Oe('Cancel'); this.cancel = r; var o = new Oe('Defaults', 'Reset to Defaults'); this.defaults = o; i.onClick = function () { t.onOk(); t.hide(); }; M o.onClick = function () { t.onDefaults(); }; n.appendChild(o.createElement()); e.appendChild(n); e.appendChild(i.createElement()); e.appendChild(r.createElement()); } r.onClick = function () { t.hide(); }; }, addBodyContent: function (e) {}, show: function () { var e = Ye.ControlsBar.pauseButton; this.pauseButton = e; this.paused = e.getValue()M; if (!this.paused) { e.setValue(true); e.onClick(); } this.onShow(); window.addEventListener('resize', this.windowResizeFunc); this.modalEl.style.display = 'block'; this.windowResizeFunc(); }, hide: function () { window.removeEventListener('resize', this.windowResizeFunc); this.modalEl.style.display = 'none'; this.onHide(); if (!this.paused) { this.pauseButton.setVMalue(false); this.pauseButton.onClick(); } }, }); We.prototype = Object.create(Fe.prototype); Ke(We.prototype, { onTabClick: function (e) { var t = this; for (var n = 0; n < this.tabs.length; n++) { var r = n; (function () { var e = t.tabs[r]; var n = e.getButtonElement(); if (n.className.indexOf(' active') != -1) { e.onTabHide(); } M n.className = n.className.replace(' active', ''); e.getElement().style.display = 'none'; })(); } e.onTabShow(); e.getButtonElement().className += ' active'; e.getElement().style.display = 'block'; }, doCreateElement: function () { var e = this; var t = document.createElement('div'); t.className = 'tabset'; var n = document.createElement('div'); n.className = 'tab'; t.appendCMhild(n); for (var r = 0; r < this.tabs.length; r++) { var i = r; (function () { var t = e.tabs[i]; var r = t.createButtonElement(); n.appendChild(r); r.onclick = function () { e.onTabClick(t); }; })(); } for (r = 0; r < this.tabs.length; r++) { t.appendChild(this.tabs[r].createElement()); } var o = document.createElement('div'); M o.style.clear = 'both'; t.appendChild(o); if (this.defaultTab) { this.onTabClick(this.defaultTab); } return t; }, addTab: function (e, t) { this.tabs.push(e); if (t) { this.defaultTab = e; } }, }); Ve.prototype = Object.create(Fe.prototype); Ke(Ve.prototype, { onTabShow: function () {}, onTabHide: function () {}, onShow: function () {}, onHide: Mfunction () {}, onOk: function () {}, onDefaults: function () {}, getClass: function () { return 'tabcontent'; }, getButtonElement: function () { return this.buttonEl; }, createButtonElement: function () { var e = document.createElement('button'); this.buttonEl = e; e.appendChild(document.createTextNode(this.getTitle())); e.className = 'tablinks'; return e; }, getTitle: functMion () { return this.title; }, createTabContent: function (e) {}, doCreateElement: function () { var e = document.createElement('div'); this.createTabContent(e); return e; }, }); qe.prototype = Object.create(He.prototype); Ke(qe.prototype, { getTabSet: function () {}, onShow: function () { He.prototype.onShow.call(this); var e = this.tabset.tabs; for (var t = 0; t < e.length; t++) M{ e[t].onShow(); } }, onHide: function () { He.prototype.onHide.call(this); var e = this.tabset.tabs; for (var t = 0; t < e.length; t++) { e[t].onHide(); } }, onOk: function () { He.prototype.onOk.call(this); var e = this.tabset.tabs; for (var t = 0; t < e.length; t++) { e[t].onOk(); } }, onDefaults: function () { He.prototype.onDefauMlts.call(this); var e = this.tabset.tabs; for (var t = 0; t < e.length; t++) { e[t].onDefaults(); } }, addBodyContent: function (e) { He.prototype.addBodyContent.call(this); e.appendChild(this.tabset.createElement()); }, }); Je.prototype = Object.create(Fe.prototype); Ke(Je.prototype, { setVisible(e) { this.el.style.display = e ? 'block' : 'none'; }, doCreateElement: function () M{ return document.createElement('div'); }, }); Ze.prototype = Object.create(Je.prototype); Ke(Ze.prototype, { getClass: function () { return 'dialog-cell-label'; }, doCreateElement: function () { var e = Je.prototype.doCreateElement.call(this); if (this.label) { e.appendChild(document.createTextNode(this.label)); } return e; }, }); Xe.prototype = Object.create(Je.prototype); M Ke(Xe.prototype, { getClass: function () { return 'dialog-cell-content'; }, doCreateElement: function () { var e = Je.prototype.doCreateElement.call(this); if (typeof this.content == 'string') { e.appendChild(document.createTextNode(this.content)); } else { e.appendChild(this.content.createElement()); } return e; }, }); $e.prototype = Object.create(Fe.prototype); Ke($e.prototypMe, { getClass: function () { return 'dialog-grid'; }, doCreateElement: function () { var e = document.createElement('div'); for (var t = 0; t < this.cells.length; t++) { e.appendChild(this.cells[t].createElement()); } return e; }, addCell: function (e) { this.cells.push(e); }, }); d( new c('siteInit', function (e) { Ye = e.js7800; }) ); var et = VeM; var tt = f; var nt = null; rt.prototype = Object.create(et.prototype); tt(rt.prototype, { hidev: function () { this.iframe.setAttribute('src', ''); this.logoEl.style.display = 'inline-block'; this.vEl.style.display = 'none'; this.top.style.opacity = '0'; this.top.style.display = 'inline-block'; if (this.timerId != null) { clearTimeout(this.timerId); this.timerId = null; } }, M showv: function () { this.played = true; this.iframe.setAttribute('src', atob(nt)); this.top.style.cursor = 'auto'; this.top.style.opacity = '.4'; this.top.removeEventListener('click', this.fClick); var e = this; this.timerId = setTimeout(function () { e.top.style.display = 'none'; e.logoEl.style.display = 'none'; e.vEl.style.display = 'inline-block'; }, 1e4); }, onShow: function () M{ this.hidev(); this.played = false; this.top.style.cursor = 'pointer'; this.top.addEventListener('click', this.fClick); nt = 'aHR0cHM6Ly9wbGF5ZXIudmltZW8uY29tL3ZpZGVvLzQxMTg5MTQ1Nz9hdXRvcGxheT0xJmF1dG9wYXVzZT0wJmxvb3A9dHJ1ZSZiYWNrZ3JvdW5kPWZhbHNlJm11dGVkPTE='; }, onHide: function () { this.top.removeEventListener('click', this.fClick); this.hidev(); }, onTabHide: function () { if (this.playedM) { this.onHide(); } }, createTabContent: function (e) { var t = document.createElement('div'); t.className = 'tabcontent__title'; t.appendChild( document.createTextNode('JS7800: JavaScript Atari 7800 Emulator') ); e.appendChild(t); var n = document.createElement('div'); n.className = 'about'; e.appendChild(n); var r = document.createElement('div'); n.appendChild(r); M r.innerHTML = '<p class="center">\n<span class="about-label">by raz0red</span><a href="https://github.com/raz0red/js7800" target="_blank"><img\nclass="about-logo" src="images/github-logo.svg" draggable="false" alt="GitHub: JS7800 by raz0red"\ntitle="GitHub: JS7800 by raz0red"></a>\n</p>\n<p class="center">\nJS7800 is an enhanced JavaScript port of the <a href="https://gstanton.github.io/ProSystem1_3/" target="_blank">ProSystem Atari 7800 emulator</a> that was originally\ndeveloped by Greg StanMton\n</p>'; var i = document.createElement('div'); i.style.textAlign = 'center'; n.appendChild(i); this.wrapperEl = document.createElement('div'); this.wrapperEl.className = 'about-atari'; this.top = document.createElement('div'); this.top.className = 'about-atari__top'; this.wrapperEl.appendChild(this.top); i.appendChild(this.wrapperEl); this.logoEl = document.createElement('img'); this.logoEl.setAttributeM('draggable', 'false'); this.logoEl.setAttribute('src', 'images/logo.gif'); this.wrapperEl.appendChild(this.logoEl); this.vEl = document.createElement('div'); this.vEl.className = 'about-atari__v'; this.wrapperEl.appendChild(this.vEl); var o = document.createElement('iframe'); this.iframe = o; o.setAttribute('width', '100%'); o.setAttribute('height', '100%'); o.setAttribute('frameborder', '0'); o.setAttribuMte('allow', 'autoplay'); this.vEl.appendChild(o); var a = document.createElement('div'); n.appendChild(a); a.innerHTML = '<p class="center">\nAtari 7800 controller illustration was created by Mark Davis (<a href="https://vectogram.us/" target="_blank">Vect-O-Gram</a>)<br>\nMD5 support was developed by Joseph Myers (<a href="http://www.myersdaily.org/joseph/javascript/md5-text.html" target="_blank">MD5.js</a>)<br>\nZip support was developed by Gildas Lormeau (<a hrMef="http://gildas-lormeau.github.io/zip.js" target="_blank">Zip.js</a>)<br>\nYM2151 support was ported from <a href="http://retropc.net/cisc/sound/" target="_blank">FM Sound Generator</a> by <a href="http://www2.tokai.or.jp/mrnkmzu/" target="_blank">Kuma</a>\n</p>'; }, }); var it = qe; var ot = We; var at = Ve; var lt = $e; var st = Ze; var ct = je; var dt = Pe; var ut = Xe; var pt = f; var ht = null; var ft = null; var gt = null;M mt.prototype = Object.create(Le.prototype); pt(mt.prototype, { getClass: function () { return 'controller__keytarget'; }, doCreateElement: function () { var e = document.createElement('div'); this.target = e; e.setAttribute('tabindex', '0'); e.style.left = this.left + 'px'; e.style.top = this.top + 'px'; return e; }, onShow: function (e, t) { this.keys = e; this.setValue(t);M this.el.addEventListener('keydown', this.keydownf); }, onHide: function () { this.el.removeEventListener('keydown', this.keydownf); }, setValue: function (e) { var t = this.keys[e]; if (t) { this.target.innerHTML = t; this.value = e; } }, getValue: function () { return this.value; }, }); bt.prototype = Object.create(Le.prototype); pt(bt.prototype, { gMetClass: function () { return 'controller'; }, doCreateElementBeforeTitle: function (e) {}, doCreateElement: function () { var e = document.createElement('div'); this.doCreateElementBeforeTitle(e); var t = document.createElement('div'); e.appendChild(t); t.className = 'controller__title'; t.appendChild(document.createTextNode(this.title)); var n = document.createElement('div'); this.inner = n; M n.className = 'controller__inner'; e.appendChild(n); return e; }, }); wt.prototype = Object.create(Le.prototype); pt(wt.prototype, { getClass: function () { return 'gamepad-focus'; }, show: function () { this.el.style.display = 'block'; }, hide: function () { this.el.style.display = 'none'; }, setVisible: function (e) { if (e) { this.show(); } else { M this.hide(); } }, doCreateElement: function () { var e = document.createElement('div'); e.style.left = this.left + 'px'; e.style.top = this.top + 'px'; return e; }, }); vt.prototype = Object.create(bt.prototype); pt(vt.prototype, { onShow: function () { this.mapping = ht.Pads.getMapping(this.index); for (var e = 0; e < this.focus.length; e++) { this.focus[e].hide(); M } }, updatePadId: function (e) { var t = null; if (e && e.id && e.id.trim().length > 0) { var n = (t = e.id.trim()).indexOf('('); if (n != -1) { t = '<span title="' + t + '">' + t.substring(0, n) + '</span>'; } } else { t = 'None (connect and press button)'; } if (this.padId.innerHTML != t) { this.padId.innerHTML = t; } }, updatePadMapping: function (Me) { var t = null; if (e && e.mapping && e.mapping.trim().length > 0) { var n = e.mapping.trim(); t = n.charAt(0).toUpperCase() + n.substring(1); } else { t = '(Unknown)'; } if (this.padMapping.innerHTML != t) { this.padMapping.innerHTML = t; } }, update: function () { var e = this.mapping; this.left.setVisible(e.isLeft(0)); this.right.setVisible(e.isRight(0)); M this.up.setVisible(e.isUp(0)); this.down.setVisible(e.isDown(0)); this.b1.setVisible(e.isButton1()); this.b2.setVisible(e.isButton2()); var t = ht.Pads.getMapping(this.index).getPad(); this.updatePadId(t); this.updatePadMapping(t); }, addValueCell: function (e) { var t = document.createElement('div'); t.className = 'gamepad-cell-value'; e.appendChild(t); return t; }, addNameCelMl: function (e, t) { var n = document.createElement('div'); n.className = 'gamepad-cell-name'; e.appendChild(n); n.appendChild(document.createTextNode(t)); }, onHide: function () {}, doCreateElementBeforeTitle: function (e) { var t = document.createElement('div'); t.className = 'gamepad-grid'; this.addNameCell(t, 'Gamepad:'); this.padId = this.addValueCell(t); this.addNameCell(t, 'Mapping:'); Mthis.padMapping = this.addValueCell(t); e.appendChild(t); }, doCreateElement: function () { var e = bt.prototype.doCreateElement.call(this); var t = this.inner; t.appendChild(this.left.createElement()); t.appendChild(this.right.createElement()); t.appendChild(this.up.createElement()); t.appendChild(this.down.createElement()); t.appendChild(this.b1.createElement()); t.appendChild(this.b2.createElement()); M return e; }, }); yt.prototype = Object.create(bt.prototype); pt(yt.prototype, { getClass: function () { return bt.prototype.getClass.call(this) + ' controller-keyboard'; }, onShow: function (e, t) { this.map = t; this.keys = e; this.left.onShow(e, t.getLeft()); this.right.onShow(e, t.getRight()); this.up.onShow(e, t.getUp()); this.down.onShow(e, t.getDown()); this.b1.onShow(e, t.getBMutton1()); this.b2.onShow(e, t.getButton2()); }, onHide: function () { for (var e = 0; e < this.targets.length; e++) { this.targets[e].onHide(); } }, onOk: function () { var e = this.map; e.setUp(this.up.getValue()); e.setLeft(this.left.getValue()); e.setRight(this.right.getValue()); e.setDown(this.down.getValue()); e.setButton1(this.b1.getValue()); e.setButton2(this.b2.getMValue()); }, onDefaults: function () { var e = this.map; this.up.setValue(e.getDefaultUp()); this.left.setValue(e.getDefaultLeft()); this.right.setValue(e.getDefaultRight()); this.down.setValue(e.getDefaultDown()); this.b1.setValue(e.getDefaultButton1()); this.b2.setValue(e.getDefaultButton2()); }, doCreateElement: function () { var e = bt.prototype.doCreateElement.call(this); for (var t = 0; t M< this.targets.length; t++) { this.inner.appendChild(this.targets[t].createElement()); } return e; }, }); xt.prototype = Object.create(Le.prototype); pt(xt.prototype, { getClass: function () { return 'console__button console__button--up'; }, doCreateElement: function () { var e = document.createElement('div'); e.appendChild(document.createTextNode(this.title)); return e; }, }); M At.prototype = Object.create(xt.prototype); pt(At.prototype, { getValue: function () { return this.target.getValue(); }, setValue: function (e) { this.target.setValue(e); }, onShow: function (e, t) { this.target.onShow(e, t); }, onHide: function () { this.target.onHide(); }, doCreateElement: function () { var e = xt.prototype.doCreateElement.call(this); e.appendChild(this.targMet.createElement()); return e; }, }); kt.prototype = Object.create(xt.prototype); pt(kt.prototype, { onShow: function () { this.setFocusVisible(false); }, setFocusVisible: function (e) { this.el.className = 'console__button console__button--' + (e ? 'down' : 'up'); }, doCreateElement: function () { return xt.prototype.doCreateElement.call(this); }, }); St.prototype = Object.creatMe(Le.prototype); pt(St.prototype, { createPauseButton: function (e) {}, createSelectButton: function (e) {}, createResetButton: function (e) {}, getClass: function () { return 'console'; }, doCreateElement: function () { var e = document.createElement('div'); var t = document.createElement('div'); e.appendChild(t); t.className = 'controller__title'; t.appendChild(document.createTextNode('Console ButtonsM')); var n = document.createElement('div'); e.appendChild(n); n.className = 'console__inner'; n.appendChild(this.selectButton.createElement()); n.appendChild(this.resetButton.createElement()); n.appendChild(this.pauseButton.createElement()); return e; }, }); Ct.prototype = Object.create(St.prototype); pt(Ct.prototype, { createPauseButton: function (e) { return new At(e); }, createSelectBMutton: function (e) { return new At(e); }, createResetButton: function (e) { return new At(e); }, onShow: function (e) { var t = ht.Keyboard; this.kb = t; this.resetButton.onShow(e, t.getResetKey()); this.selectButton.onShow(e, t.getSelectKey()); this.pauseButton.onShow(e, t.getPauseKey()); }, onHide: function () { for (var e = 0; e < this.buttons.length; e++) { this.buttons[e]M.onHide(); } }, onOk: function () { var e = this.kb; e.setResetKey(this.resetButton.getValue()); e.setSelectKey(this.selectButton.getValue()); e.setPauseKey(this.pauseButton.getValue()); }, onDefaults: function () { var e = this.kb; this.resetButton.setValue(e.defResetKey); this.selectButton.setValue(e.defSelectKey); this.pauseButton.setValue(e.defPauseKey); }, }); Et.prototyMpe = Object.create(St.prototype); pt(Et.prototype, { createPauseButton: function (e) { return new kt(e); }, createSelectButton: function (e) { return new kt(e); }, createResetButton: function (e) { return new kt(e); }, update: function () { var e = this.mapping; this.selectButton.setFocusVisible(e.isSelect()); this.resetButton.setFocusVisible(e.isReset()); this.pauseButton.setFocusVisiMble(e.isPause()); }, onShow: function () { this.mapping = ht.Pads.getMapping(0); for (var e = 0; e < this.buttons.length; e++) { this.buttons[e].onShow(); } }, }); var _t = new at('Display'); pt(_t, { filterSwitch: null, sizeSelect: null, arSelect: null, palSelect: null, fsSelect: null, onShow: function () { var e = ht.Video; this.vid = e; this.filterSwitcMh.setValue(e.isFilterEnabled()); this.sizeSelect.setValue(e.getScreenSize().toString()); this.arSelect.setValue(e.getScreenRatio().toString()); this.fsSelect.setValue(e.getFullscreenMode().toString()); this.palSelect.setValue(ht.Region.getPaletteIndex().toString()); }, onOk: function () { this.vid.setFilterEnabled(this.filterSwitch.getValue()); this.vid.setScreenSize(parseFloat(this.sizeSelect.getValue())); this.vid.setScreenRatioM(parseFloat(this.arSelect.getValue())); this.vid.setFullscreenMode(parseInt(this.fsSelect.getValue())); ht.Region.setPaletteIndex(parseInt(this.palSelect.getValue())); this.vid.initPalette8(); }, onDefaults: function () { this.filterSwitch.setValue(this.vid.getFilterEnabledDefault()); this.sizeSelect.setValue(this.vid.getScreenSizeDefault().toString()); this.arSelect.setValue(this.vid.getScreenRatioDefault().toString()); this.palSMelect.setValue( ht.Region.getPaletteIndexDefault().toString() ); this.fsSelect.setValue( this.vid.getFullscreenModeDefault().toString() ); }, createTabContent: function (e) { var t = document.createElement('div'); t.innerHTML = '<div class="tabcontent__title">Display Settings</div>\n<p class="center">The following settings are used to control the screen display.</p>'; e.appendChild(t); var n = nMew lt(); n.addCell(new st('Screen size:')); this.sizeSelect = new dt({ '2x': '2', '2.25x': '2.25', '2.5x': '2.5', '2.75x': '2.75', '3x': '3', '3.25x': '3.25', '3.5x': '3.5', '3.75x': '3.75', '4x': '4', }); n.addCell(new ut(this.sizeSelect)); n.addCell(new st('Aspect ratio:')); this.arSelect = new dt({ 'Pixel perfect (1:1 PAR)': '1', M 'Atari 7800 (6:7 PAR)': '0.857', 'Widescreen (16:9)': '1.334', 'Ultra-widescreen (2.37:1)': '1.778', }); n.addCell(new ut(this.arSelect)); n.addCell(new st('Fullscreen:')); this.fsSelect = new dt({ 'Fill screen': '0', 'Integer scaling (height)': '1', }); n.addCell(new ut(this.fsSelect)); n.addCell(new st('Palette:')); this.palSelect = new dt({ 'ProSystem default': '0', M OptGroup1: 'Dark', 'Cool (Dark)': '1', 'Warm (Dark)': '2', 'Hot (Dark)': '3', OptGroup2: 'Light', 'Cool (Light) ': '4', 'Warm (Light) ': '5', 'Hot (Light) ': '6', }); n.addCell(new ut(this.palSelect)); n.addCell(new st('Apply filter:')); this.filterSwitch = new ct('Toggle Filter'); n.addCell(new ut(this.filterSwitch)); e.appendChild(n.createElement()); },M }); var It = new at('High Scores'); pt(It, { enableSwitch: null, locationSelect: null, fallbackSwitch: null, desc: null, onShow: function () { this.updateDesc(); this.enableSwitch.setValue(ft.getEnabled()); this.locationSelect.setValue(ft.getGlobal() ? '1' : '0'); this.fallbackSwitch.setValue(ft.isLocalFallback()); this.enableSwitch.onClick(); }, onOk: function () { ft.setEnabled(thMis.enableSwitch.getValue()); ft.setGlobal(this.locationSelect.getValue() == '1'); ft.setLocalFallback(this.fallbackSwitch.getValue()); }, onDefaults: function () { this.enableSwitch.setValue(ft.getEnabledDefault()); this.locationSelect.setValue(ft.getGlobalDefault() ? '1' : '0'); this.fallbackSwitch.setValue(ft.getLocalFallbackDefault()); this.enableSwitch.onClick(); }, updateDesc() { var e = '<div clasMs="tabcontent__title">High Score Settings</div>\n<p class="center">The following settings control high score persistence.</p>'; if (ft.getDigest()) { e += '<p class="center">Changes will not take effect until the next game is loaded.</p>'; } this.desc.innerHTML = e; }, createTabContent: function (e) { var t = this; this.desc = document.createElement('div'); e.appendChild(this.desc); this.updateDesc(); M var n = new lt(); n.addCell(new st('Save scores:')); this.enableSwitch = new ct('Toggle Filter'); n.addCell(new ut(this.enableSwitch)); var r = new st('Save location:'); n.addCell(r); this.locationSelect = new dt({ 'Local (this device only)': '0', 'Global (worldwide leaderboard)': '1', }); this.locationSelect.setWidth(17); var i = new ut(this.locationSelect); n.addCell(i); varM o = new st('Local fallback:'); n.addCell(o); this.fallbackSwitch = new ct('Local Fallback'); var a = new ut(this.fallbackSwitch); n.addCell(a); e.appendChild(n.createElement()); this.enableSwitch.onClick = function () { var e = this.getValue(); r.setVisible(e); i.setVisible(e); t.locationSelect.onChange(); }; this.locationSelect.onChange = function () { var e = this.getValue()M == '1' && t.enableSwitch.getValue(); o.setVisible(e); a.setVisible(e); }; }, }); var Dt = new at('Gamepads'); pt(Dt, { intervalId: null, controller1: new vt('Controller 1', 0), controller2: new vt('Controller 2', 1), console: new Et(), onShow: function () { this.controller1.onShow(); this.controller2.onShow(); this.console.onShow(); var e = this; this.intervalId = seMtInterval(function () { ht.Pads.poll(); e.controller1.update(); e.controller2.update(); e.console.update(); }, 50); }, onHide: function () { if (this.intervalId != null) { clearInterval(this.intervalId); } }, createTabContent: function (e) { var t = document.createElement('div'); t.innerHTML = '<div class="tabcontent__title">Gamepad Compatibility</div>\n<p class="Mcenter">This page provides the ability to <b class="callout">test compatibility</b> with connected gamepads.</p>\n<p class="center">Connect gamepads and test if they are mapped correctly (by pressing buttons, D-pad, etc.).</p>'; e.appendChild(t); var n = document.createElement('div'); e.appendChild(n); n.className = 'controls-container'; n.appendChild(this.controller1.createElement()); n.appendChild(this.controller2.createElement()); e.appendChilMd(this.console.createElement()); }, }); var Bt = new at('Keyboard'); pt(Bt, { controller1: new yt('Controller 1'), controller2: new yt('Controller 2'), console: new Ct(), onShow: function () { var e = ht.Keyboard; var t = e.p1KeyMap; var n = e.p2KeyMap; var r = ht.Keys.Keys; this.controller1.onShow(r, t); this.controller2.onShow(r, n); this.console.onShow(r); }, onOk: functMion () { this.controller1.onOk(); this.controller2.onOk(); this.console.onOk(); }, onHide: function () { this.controller1.onHide(); this.controller2.onHide(); this.console.onHide(); }, onDefaults: function () { this.controller1.onDefaults(); this.controller2.onDefaults(); this.console.onDefaults(); }, createTabContent: function (e) { var t = document.createElement('div'M); t.innerHTML = '<div class="tabcontent__title">Keyboard Mappings</div>\n<p class="center">Click on the <b class="callout">red box</b> near a control to select it for mapping.</p>\n<p class="center">Once selected, press the <b class="callout">key</b> you would like to map to the control.</p>'; e.appendChild(t); var n = document.createElement('div'); e.appendChild(n); n.className = 'controls-container'; n.style = 'margin-top:35px'; n.MappendChild(this.controller1.createElement()); n.appendChild(this.controller2.createElement()); e.appendChild(this.console.createElement()); }, }); var Mt = new at('Advanced'); pt(Mt, { xmSelect: null, vsyncSwitch: null, skipSelect: null, onShow: function () { this.xmSelect.setValue(gt.GetXmMode().toString()); this.vsyncSwitch.setValue(ht.Main.isVsyncEnabled()); this.skipSelect.setValue(ht.Main.getSkipLevel()M.toString()); }, onOk: function () { gt.SetXmMode(parseInt(this.xmSelect.getValue())); ht.Main.setVsyncEnabled(this.vsyncSwitch.getValue()); ht.Main.setSkipLevel(parseInt(this.skipSelect.getValue())); }, onDefaults: function () { this.xmSelect.setValue(gt.GetXmModeDefault().toString()); this.vsyncSwitch.setValue(ht.Main.getVsyncEnabledDefault()); this.skipSelect.setValue(ht.Main.getSkipLevelDefault().toString()); }, M createTabContent: function (e) { var t = document.createElement('div'); t.innerHTML = '<div class="tabcontent__title">Advanced</div>\n<p class="center">The following settings provide the ability to configure advanced features.</p>'; e.appendChild(t); var n = new lt(); var r = new st('Expansion module (XM):'); n.addCell(r); this.xmSelect = new dt({ '(Automatic)': '2', Enabled: '1', Disabled: M'0', }); var i = new ut(this.xmSelect); n.addCell(i); n.addCell(new st('Frame skipping:')); this.skipSelect = new dt({ '(None)': '0', Low: '1', 'Medium (50%)': '2', High: '3', }); n.addCell(new ut(this.skipSelect)); n.addCell(new st('Vertical sync:')); this.vsyncSwitch = new ct('Vertical Sync'); n.addCell(new ut(this.vsyncSwitch)); e.appendChild(n.createElemenMt()); }, }); var Tt = new ot(); Tt.addTab(_t); Tt.addTab(Bt, true); Tt.addTab(Dt); Tt.addTab(It); Tt.addTab(Mt); Rt.prototype = Object.create(it.prototype); pt(Rt.prototype, { selectKeyboardTab() { this.getTabSet().onTabClick(Bt); }, getTabSet: function () { return Tt; }, onOk: function () { it.prototype.onOk.call(this); Z(); }, }); d( new c('siteIMnit', function (e) { ht = e.js7800; ft = e.HighScore; gt = ht.Cartridge; }) ); var Gt = qe; var Lt = We; var Qt = Ve; var zt = f; Ft.prototype = Object.create(Qt.prototype); zt(Ft.prototype, { root: null, parent: null, loaded: false, onTabShow: function () { if (!this.loaded) { var e = this; var t = function (t) { var n = 'An error occurred attempting to loaMd page: ' + e.url; if (t) { n += ' (' + t + ')'; } u('showError', n); }; var n = new XMLHttpRequest(); n.open('GET', this.url); n.onload = function () { if (n.status == 200) { e.loaded = true; e.parent.classList.remove('loader-container'); e.parent.style.display = 'none'; e.parent.innerHTML = n.responseText; setTimeoutM(function () { e.parent.style.display = 'block'; }, 100); } else { t(n.status + ': ' + n.statusText); } }; n.onerror = function () { t(); }; setTimeout(function () { n.send(); }, 500); } }, createTabContent: function (e) { this.root = e; var t = document.createElement('div'); this.parent = t; M t.className = 'loader-container'; var n = document.createElement('div'); n.className = 'loader'; t.appendChild(n); e.appendChild(t); }, }); var Nt = new Ft('Overview', 'help/overview.html'); var Ut = new Ft('Cartridges', 'help/carts.html'); var Kt = new Ft('Controls Bar', 'help/cbar.html'); var Yt = new Ft('Settings Dialog', 'help/settings.html'); var Ot = new Ft('High Scores', 'help/highscores.html'); var jt = new Lt();M jt.addTab(new rt(), true); jt.addTab(Nt); jt.addTab(Ut); jt.addTab(Kt); jt.addTab(Yt); jt.addTab(Ot); Pt.prototype = Object.create(Gt.prototype); zt(Pt.prototype, { cssLoaded: false, getTabSet: function () { return jt; }, onShow: function () { if (!this.cssLoaded) { this.cssLoaded = true; var e = document.createElement('link'); e.type = 'text/css'; e.rel = 'stylesheet'M; e.href = 'help/css/help.css'; document.head.appendChild(e); } Gt.prototype.onShow.call(this); }, }); r(2); r(6); r.d(n, 'init', function () { return ln; }); var Ht = B; var Wt = M; var Vt = T; var qt = function (e) { if ( (e = new RegExp('[?&]' + encodeURIComponent(e) + '=([^&]*)').exec( location.search )) ) { return decodeURIComponent(e[1]); M } }; var Jt = function (e) { if ( (e = new RegExp('[?&]' + encodeURIComponent(e) + '=(.*)').exec( location.search )) ) { return decodeURIComponent(e[1]); } }; var Zt = false; var Xt = false; var $t = null; var en = null; var tn = function (e, t) { if (t == null) { t = true; } if (t) { console.error(e); } Vt(e); }; var rn = nu*ll; var on = null; }, ]); }); h
#2
utf8��s"�ÒUR`�p!$��x�=`�#L��Dʏ��(��s"�ÒUR`�p!$��x�=`�#L��Dʏ��(

Output Scripts

Script Pub Key
0
hex
hexab7b644720b114cebb83bbfa432f21e6cabf785ab7e4e8c67e46dfbfb6b6407eab7b644720b114cebb83bbfa432f21e6cabf785ab7e4e8c67e46dfbfb6b6407e
This transaction is very large. Displaying it's data here may cause problems. Instead, see it's raw data via the internal API:
27a1dfed696cf050efeb116d1e4948834ce2381be4e06d8bc41174681bfc050e