@neth4ck/neth4ck
Version:
The original NetHack rogue-like game built as a WebAssembly module
191 lines (137 loc) • 6.34 MB
JavaScript
var Module = (function() {
var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;
if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;
return (
function(Module) {
Module = Module || {};
// The Module object: Our interface to the outside world. We import
// and export values on it. There are various ways Module can be used:
// 1. Not defined. We create it here
// 2. A function parameter, function(Module) { ..generated code.. }
// 3. pre-run appended it, var Module = {}; ..generated code..
// 4. External script tag defines var Module.
// We need to check if Module already exists (e.g. case 3 above).
// Substitution will be replaced with actual code on later stage of the build,
// this way Closure Compiler will not mangle it (e.g. case 4. above).
// Note that if you want to run closure, and also to use Module
// after the generated code, you will need to define var Module = {};
// before the code. Then that object will be used in the code, and you
// can continue to use Module afterwards as well.
var Module = typeof Module !== 'undefined' ? Module : {};
// Set up the promise that indicates the Module is initialized
var readyPromiseResolve, readyPromiseReject;
Module['ready'] = new Promise(function(resolve, reject) {
readyPromiseResolve = resolve;
readyPromiseReject = reject;
});
if (!Object.getOwnPropertyDescriptor(Module['ready'], '_main')) {
Object.defineProperty(Module['ready'], '_main', { configurable: true, get: function() { abort('You are getting _main on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
Object.defineProperty(Module['ready'], '_main', { configurable: true, set: function() { abort('You are setting _main on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
}
if (!Object.getOwnPropertyDescriptor(Module['ready'], '_shim_graphics_set_callback')) {
Object.defineProperty(Module['ready'], '_shim_graphics_set_callback', { configurable: true, get: function() { abort('You are getting _shim_graphics_set_callback on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
Object.defineProperty(Module['ready'], '_shim_graphics_set_callback', { configurable: true, set: function() { abort('You are setting _shim_graphics_set_callback on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
}
if (!Object.getOwnPropertyDescriptor(Module['ready'], '_mapglyph')) {
Object.defineProperty(Module['ready'], '_mapglyph', { configurable: true, get: function() { abort('You are getting _mapglyph on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
Object.defineProperty(Module['ready'], '_mapglyph', { configurable: true, set: function() { abort('You are setting _mapglyph on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
}
if (!Object.getOwnPropertyDescriptor(Module['ready'], '_display_inventory')) {
Object.defineProperty(Module['ready'], '_display_inventory', { configurable: true, get: function() { abort('You are getting _display_inventory on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
Object.defineProperty(Module['ready'], '_display_inventory', { configurable: true, set: function() { abort('You are setting _display_inventory on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
}
if (!Object.getOwnPropertyDescriptor(Module['ready'], '_malloc')) {
Object.defineProperty(Module['ready'], '_malloc', { configurable: true, get: function() { abort('You are getting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
Object.defineProperty(Module['ready'], '_malloc', { configurable: true, set: function() { abort('You are setting _malloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
}
if (!Object.getOwnPropertyDescriptor(Module['ready'], '_free')) {
Object.defineProperty(Module['ready'], '_free', { configurable: true, get: function() { abort('You are getting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
Object.defineProperty(Module['ready'], '_free', { configurable: true, set: function() { abort('You are setting _free on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
}
if (!Object.getOwnPropertyDescriptor(Module['ready'], '_stackSave')) {
Object.defineProperty(Module['ready'], '_stackSave', { configurable: true, get: function() { abort('You are getting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
Object.defineProperty(Module['ready'], '_stackSave', { configurable: true, set: function() { abort('You are setting _stackSave on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
}
if (!Object.getOwnPropertyDescriptor(Module['ready'], '_stackRestore')) {
Object.defineProperty(Module['ready'], '_stackRestore', { configurable: true, get: function() { abort('You are getting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
Object.defineProperty(Module['ready'], '_stackRestore', { configurable: true, set: function() { abort('You are setting _stackRestore on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
}
if (!Object.getOwnPropertyDescriptor(Module['ready'], '_stackAlloc')) {
Object.defineProperty(Module['ready'], '_stackAlloc', { configurable: true, get: function() { abort('You are getting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
Object.defineProperty(Module['ready'], '_stackAlloc', { configurable: true, set: function() { abort('You are setting _stackAlloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
}
if (!Object.getOwnPropertyDescriptor(Module['ready'], '___data_end')) {
Object.defineProperty(Module['ready'], '___data_end', { configurable: true, get: function() { abort('You are getting ___data_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
Object.defineProperty(Module['ready'], '___data_end', { configurable: true, set: function() { abort('You are setting ___data_end on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
}
if (!Object.getOwnPropertyDescriptor(Module['ready'], '___wasm_call_ctors')) {
Object.defineProperty(Module['ready'], '___wasm_call_ctors', { configurable: true, get: function() { abort('You are getting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
Object.defineProperty(Module['ready'], '___wasm_call_ctors', { configurable: true, set: function() { abort('You are setting ___wasm_call_ctors on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
}
if (!Object.getOwnPropertyDescriptor(Module['ready'], '_fflush')) {
Object.defineProperty(Module['ready'], '_fflush', { configurable: true, get: function() { abort('You are getting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
Object.defineProperty(Module['ready'], '_fflush', { configurable: true, set: function() { abort('You are setting _fflush on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
}
if (!Object.getOwnPropertyDescriptor(Module['ready'], '___errno_location')) {
Object.defineProperty(Module['ready'], '___errno_location', { configurable: true, get: function() { abort('You are getting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
Object.defineProperty(Module['ready'], '___errno_location', { configurable: true, set: function() { abort('You are setting ___errno_location on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
}
if (!Object.getOwnPropertyDescriptor(Module['ready'], '_usleep')) {
Object.defineProperty(Module['ready'], '_usleep', { configurable: true, get: function() { abort('You are getting _usleep on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
Object.defineProperty(Module['ready'], '_usleep', { configurable: true, set: function() { abort('You are setting _usleep on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
}
if (!Object.getOwnPropertyDescriptor(Module['ready'], '__get_tzname')) {
Object.defineProperty(Module['ready'], '__get_tzname', { configurable: true, get: function() { abort('You are getting __get_tzname on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
Object.defineProperty(Module['ready'], '__get_tzname', { configurable: true, set: function() { abort('You are setting __get_tzname on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
}
if (!Object.getOwnPropertyDescriptor(Module['ready'], '__get_daylight')) {
Object.defineProperty(Module['ready'], '__get_daylight', { configurable: true, get: function() { abort('You are getting __get_daylight on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
Object.defineProperty(Module['ready'], '__get_daylight', { configurable: true, set: function() { abort('You are setting __get_daylight on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
}
if (!Object.getOwnPropertyDescriptor(Module['ready'], '__get_timezone')) {
Object.defineProperty(Module['ready'], '__get_timezone', { configurable: true, get: function() { abort('You are getting __get_timezone on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
Object.defineProperty(Module['ready'], '__get_timezone', { configurable: true, set: function() { abort('You are setting __get_timezone on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
}
if (!Object.getOwnPropertyDescriptor(Module['ready'], '_setThrew')) {
Object.defineProperty(Module['ready'], '_setThrew', { configurable: true, get: function() { abort('You are getting _setThrew on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
Object.defineProperty(Module['ready'], '_setThrew', { configurable: true, set: function() { abort('You are setting _setThrew on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
}
if (!Object.getOwnPropertyDescriptor(Module['ready'], '_realloc')) {
Object.defineProperty(Module['ready'], '_realloc', { configurable: true, get: function() { abort('You are getting _realloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
Object.defineProperty(Module['ready'], '_realloc', { configurable: true, set: function() { abort('You are setting _realloc on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
}
if (!Object.getOwnPropertyDescriptor(Module['ready'], '_testSetjmp')) {
Object.defineProperty(Module['ready'], '_testSetjmp', { configurable: true, get: function() { abort('You are getting _testSetjmp on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
Object.defineProperty(Module['ready'], '_testSetjmp', { configurable: true, set: function() { abort('You are setting _testSetjmp on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
}
if (!Object.getOwnPropertyDescriptor(Module['ready'], '_saveSetjmp')) {
Object.defineProperty(Module['ready'], '_saveSetjmp', { configurable: true, get: function() { abort('You are getting _saveSetjmp on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
Object.defineProperty(Module['ready'], '_saveSetjmp', { configurable: true, set: function() { abort('You are setting _saveSetjmp on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
}
if (!Object.getOwnPropertyDescriptor(Module['ready'], 'onRuntimeInitialized')) {
Object.defineProperty(Module['ready'], 'onRuntimeInitialized', { configurable: true, get: function() { abort('You are getting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
Object.defineProperty(Module['ready'], 'onRuntimeInitialized', { configurable: true, set: function() { abort('You are setting onRuntimeInitialized on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js') } });
}
// --pre-jses are emitted after the Module integration code, so that they can
// refer to Module (if they choose; they can also define Module)
if (!Module.expectedDataFileDownloads) {
Module.expectedDataFileDownloads = 0;
}
Module.expectedDataFileDownloads++;
(function() {
var loadPackage = function(metadata) {
function runWithFS() {
function assert(check, msg) {
if (!check) throw msg + new Error().stack;
}
var fileData0 = [];
Module['FS_createDataFile']('/', 'record', fileData0, true, true, false);
var fileData1 = [];
fileData1.push.apply(fileData1, [32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 78, 69, 84, 72, 65, 67, 75, 32, 71, 69, 78, 69, 82, 65, 76, 32, 80, 85, 66, 76, 73, 67, 32, 76, 73, 67, 69, 78, 83, 69, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 67, 111, 112, 121, 114, 105, 103, 104, 116, 32, 49, 57, 56, 57, 32, 77, 46, 32, 83, 116, 101, 112, 104, 101, 110, 115, 111, 110, 41, 10, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 66, 97, 115, 101, 100, 32, 111, 110, 32, 116, 104, 101, 32, 66, 73, 83, 79, 78, 32, 103, 101, 110, 101, 114, 97, 108, 32, 112, 117, 98, 108, 105, 99, 32, 108, 105, 99, 101, 110, 115, 101, 44, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 99, 111, 112, 121, 114, 105, 103, 104, 116, 32, 49, 57, 56, 56, 32, 82, 105, 99, 104, 97, 114, 100, 32, 77, 46, 32, 83, 116, 97, 108, 108, 109, 97, 110, 41, 10, 10, 32, 69, 118, 101, 114, 121, 111, 110, 101, 32, 105, 115, 32, 112, 101, 114, 109, 105, 116, 116, 101, 100, 32, 116, 111, 32, 99, 111, 112, 121, 32, 97, 110, 100, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 101, 32, 118, 101, 114, 98, 97, 116, 105, 109, 32, 99, 111, 112, 105, 101, 115, 32, 111, 102, 32, 116, 104, 105, 115, 10, 32, 108, 105, 99, 101, 110, 115, 101, 44, 32, 98, 117, 116, 32, 99, 104, 97, 110, 103, 105, 110, 103, 32, 105, 116, 32, 105, 115, 32, 110, 111, 116, 32, 97, 108, 108, 111, 119, 101, 100, 46, 32, 32, 89, 111, 117, 32, 99, 97, 110, 32, 97, 108, 115, 111, 32, 117, 115, 101, 32, 116, 104, 105, 115, 32, 119, 111, 114, 100, 105, 110, 103, 32, 116, 111, 10, 32, 109, 97, 107, 101, 32, 116, 104, 101, 32, 116, 101, 114, 109, 115, 32, 102, 111, 114, 32, 111, 116, 104, 101, 114, 32, 112, 114, 111, 103, 114, 97, 109, 115, 46, 10, 10, 32, 32, 84, 104, 101, 32, 108, 105, 99, 101, 110, 115, 101, 32, 97, 103, 114, 101, 101, 109, 101, 110, 116, 115, 32, 111, 102, 32, 109, 111, 115, 116, 32, 115, 111, 102, 116, 119, 97, 114, 101, 32, 99, 111, 109, 112, 97, 110, 105, 101, 115, 32, 107, 101, 101, 112, 32, 121, 111, 117, 32, 97, 116, 32, 116, 104, 101, 32, 109, 101, 114, 99, 121, 32, 111, 102, 10, 116, 104, 111, 115, 101, 32, 99, 111, 109, 112, 97, 110, 105, 101, 115, 46, 32, 32, 66, 121, 32, 99, 111, 110, 116, 114, 97, 115, 116, 44, 32, 111, 117, 114, 32, 103, 101, 110, 101, 114, 97, 108, 32, 112, 117, 98, 108, 105, 99, 32, 108, 105, 99, 101, 110, 115, 101, 32, 105, 115, 32, 105, 110, 116, 101, 110, 100, 101, 100, 32, 116, 111, 32, 103, 105, 118, 101, 10, 101, 118, 101, 114, 121, 111, 110, 101, 32, 116, 104, 101, 32, 114, 105, 103, 104, 116, 32, 116, 111, 32, 115, 104, 97, 114, 101, 32, 78, 101, 116, 72, 97, 99, 107, 46, 32, 32, 84, 111, 32, 109, 97, 107, 101, 32, 115, 117, 114, 101, 32, 116, 104, 97, 116, 32, 121, 111, 117, 32, 103, 101, 116, 32, 116, 104, 101, 32, 114, 105, 103, 104, 116, 115, 32, 119, 101, 10, 119, 97, 110, 116, 32, 121, 111, 117, 32, 116, 111, 32, 104, 97, 118, 101, 44, 32, 119, 101, 32, 110, 101, 101, 100, 32, 116, 111, 32, 109, 97, 107, 101, 32, 114, 101, 115, 116, 114, 105, 99, 116, 105, 111, 110, 115, 32, 116, 104, 97, 116, 32, 102, 111, 114, 98, 105, 100, 32, 97, 110, 121, 111, 110, 101, 32, 116, 111, 32, 100, 101, 110, 121, 32, 121, 111, 117, 10, 116, 104, 101, 115, 101, 32, 114, 105, 103, 104, 116, 115, 32, 111, 114, 32, 116, 111, 32, 97, 115, 107, 32, 121, 111, 117, 32, 116, 111, 32, 115, 117, 114, 114, 101, 110, 100, 101, 114, 32, 116, 104, 101, 32, 114, 105, 103, 104, 116, 115, 46, 32, 32, 72, 101, 110, 99, 101, 32, 116, 104, 105, 115, 32, 108, 105, 99, 101, 110, 115, 101, 10, 97, 103, 114, 101, 101, 109, 101, 110, 116, 46, 10, 10, 32, 32, 83, 112, 101, 99, 105, 102, 105, 99, 97, 108, 108, 121, 44, 32, 119, 101, 32, 119, 97, 110, 116, 32, 116, 111, 32, 109, 97, 107, 101, 32, 115, 117, 114, 101, 32, 116, 104, 97, 116, 32, 121, 111, 117, 32, 104, 97, 118, 101, 32, 116, 104, 101, 32, 114, 105, 103, 104, 116, 32, 116, 111, 32, 103, 105, 118, 101, 32, 97, 119, 97, 121, 10, 99, 111, 112, 105, 101, 115, 32, 111, 102, 32, 78, 101, 116, 72, 97, 99, 107, 44, 32, 116, 104, 97, 116, 32, 121, 111, 117, 32, 114, 101, 99, 101, 105, 118, 101, 32, 115, 111, 117, 114, 99, 101, 32, 99, 111, 100, 101, 32, 111, 114, 32, 101, 108, 115, 101, 32, 99, 97, 110, 32, 103, 101, 116, 32, 105, 116, 32, 105, 102, 32, 121, 111, 117, 10, 119, 97, 110, 116, 32, 105, 116, 44, 32, 116, 104, 97, 116, 32, 121, 111, 117, 32, 99, 97, 110, 32, 99, 104, 97, 110, 103, 101, 32, 78, 101, 116, 72, 97, 99, 107, 32, 111, 114, 32, 117, 115, 101, 32, 112, 105, 101, 99, 101, 115, 32, 111, 102, 32, 105, 116, 32, 105, 110, 32, 110, 101, 119, 32, 102, 114, 101, 101, 10, 112, 114, 111, 103, 114, 97, 109, 115, 44, 32, 97, 110, 100, 32, 116, 104, 97, 116, 32, 121, 111, 117, 32, 107, 110, 111, 119, 32, 121, 111, 117, 32, 99, 97, 110, 32, 100, 111, 32, 116, 104, 101, 115, 101, 32, 116, 104, 105, 110, 103, 115, 46, 10, 10, 32, 32, 84, 111, 32, 109, 97, 107, 101, 32, 115, 117, 114, 101, 32, 116, 104, 97, 116, 32, 101, 118, 101, 114, 121, 111, 110, 101, 32, 104, 97, 115, 32, 115, 117, 99, 104, 32, 114, 105, 103, 104, 116, 115, 44, 32, 119, 101, 32, 104, 97, 118, 101, 32, 116, 111, 32, 102, 111, 114, 98, 105, 100, 32, 121, 111, 117, 32, 116, 111, 10, 100, 101, 112, 114, 105, 118, 101, 32, 97, 110, 121, 111, 110, 101, 32, 101, 108, 115, 101, 32, 111, 102, 32, 116, 104, 101, 115, 101, 32, 114, 105, 103, 104, 116, 115, 46, 32, 32, 70, 111, 114, 32, 101, 120, 97, 109, 112, 108, 101, 44, 32, 105, 102, 32, 121, 111, 117, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 101, 32, 99, 111, 112, 105, 101, 115, 10, 111, 102, 32, 78, 101, 116, 72, 97, 99, 107, 44, 32, 121, 111, 117, 32, 109, 117, 115, 116, 32, 103, 105, 118, 101, 32, 116, 104, 101, 32, 114, 101, 99, 105, 112, 105, 101, 110, 116, 115, 32, 97, 108, 108, 32, 116, 104, 101, 32, 114, 105, 103, 104, 116, 115, 32, 116, 104, 97, 116, 32, 121, 111, 117, 32, 104, 97, 118, 101, 46, 32, 32, 89, 111, 117, 10, 109, 117, 115, 116, 32, 109, 97, 107, 101, 32, 115, 117, 114, 101, 32, 116, 104, 97, 116, 32, 116, 104, 101, 121, 44, 32, 116, 111, 111, 44, 32, 114, 101, 99, 101, 105, 118, 101, 32, 111, 114, 32, 99, 97, 110, 32, 103, 101, 116, 32, 116, 104, 101, 32, 115, 111, 117, 114, 99, 101, 32, 99, 111, 100, 101, 46, 32, 32, 65, 110, 100, 32, 121, 111, 117, 10, 109, 117, 115, 116, 32, 116, 101, 108, 108, 32, 116, 104, 101, 109, 32, 116, 104, 101, 105, 114, 32, 114, 105, 103, 104, 116, 115, 46, 10, 10, 32, 32, 65, 108, 115, 111, 44, 32, 102, 111, 114, 32, 111, 117, 114, 32, 111, 119, 110, 32, 112, 114, 111, 116, 101, 99, 116, 105, 111, 110, 44, 32, 119, 101, 32, 109, 117, 115, 116, 32, 109, 97, 107, 101, 32, 99, 101, 114, 116, 97, 105, 110, 32, 116, 104, 97, 116, 32, 101, 118, 101, 114, 121, 111, 110, 101, 32, 102, 105, 110, 100, 115, 32, 111, 117, 116, 10, 116, 104, 97, 116, 32, 116, 104, 101, 114, 101, 32, 105, 115, 32, 110, 111, 32, 119, 97, 114, 114, 97, 110, 116, 121, 32, 102, 111, 114, 32, 78, 101, 116, 72, 97, 99, 107, 46, 32, 32, 73, 102, 32, 78, 101, 116, 72, 97, 99, 107, 32, 105, 115, 32, 109, 111, 100, 105, 102, 105, 101, 100, 32, 98, 121, 32, 115, 111, 109, 101, 111, 110, 101, 10, 101, 108, 115, 101, 32, 97, 110, 100, 32, 112, 97, 115, 115, 101, 100, 32, 111, 110, 44, 32, 119, 101, 32, 119, 97, 110, 116, 32, 105, 116, 115, 32, 114, 101, 99, 105, 112, 105, 101, 110, 116, 115, 32, 116, 111, 32, 107, 110, 111, 119, 32, 116, 104, 97, 116, 32, 119, 104, 97, 116, 32, 116, 104, 101, 121, 32, 104, 97, 118, 101, 32, 105, 115, 10, 110, 111, 116, 32, 119, 104, 97, 116, 32, 119, 101, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 101, 100, 46, 10, 10, 32, 32, 84, 104, 101, 114, 101, 102, 111, 114, 101, 32, 119, 101, 32, 40, 77, 105, 107, 101, 32, 83, 116, 101, 112, 104, 101, 110, 115, 111, 110, 32, 97, 110, 100, 32, 111, 116, 104, 101, 114, 32, 104, 111, 108, 100, 101, 114, 115, 32, 111, 102, 32, 78, 101, 116, 72, 97, 99, 107, 32, 99, 111, 112, 121, 114, 105, 103, 104, 116, 115, 41, 32, 109, 97, 107, 101, 10, 116, 104, 101, 32, 102, 111, 108, 108, 111, 119, 105, 110, 103, 32, 116, 101, 114, 109, 115, 32, 119, 104, 105, 99, 104, 32, 115, 97, 121, 32, 119, 104, 97, 116, 32, 121, 111, 117, 32, 109, 117, 115, 116, 32, 100, 111, 32, 116, 111, 32, 98, 101, 32, 97, 108, 108, 111, 119, 101, 100, 32, 116, 111, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 101, 32, 111, 114, 10, 99, 104, 97, 110, 103, 101, 32, 78, 101, 116, 72, 97, 99, 107, 46, 10, 10, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 67, 79, 80, 89, 73, 78, 71, 32, 80, 79, 76, 73, 67, 73, 69, 83, 10, 10, 32, 32, 49, 46, 32, 89, 111, 117, 32, 109, 97, 121, 32, 99, 111, 112, 121, 32, 97, 110, 100, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 101, 32, 118, 101, 114, 98, 97, 116, 105, 109, 32, 99, 111, 112, 105, 101, 115, 32, 111, 102, 32, 78, 101, 116, 72, 97, 99, 107, 32, 115, 111, 117, 114, 99, 101, 32, 99, 111, 100, 101, 32, 97, 115, 10, 121, 111, 117, 32, 114, 101, 99, 101, 105, 118, 101, 32, 105, 116, 44, 32, 105, 110, 32, 97, 110, 121, 32, 109, 101, 100, 105, 117, 109, 44, 32, 112, 114, 111, 118, 105, 100, 101, 100, 32, 116, 104, 97, 116, 32, 121, 111, 117, 32, 107, 101, 101, 112, 32, 105, 110, 116, 97, 99, 116, 32, 116, 104, 101, 32, 110, 111, 116, 105, 99, 101, 115, 32, 111, 110, 10, 97, 108, 108, 32, 102, 105, 108, 101, 115, 32, 116, 104, 97, 116, 32, 114, 101, 102, 101, 114, 32, 116, 111, 32, 99, 111, 112, 121, 114, 105, 103, 104, 116, 115, 44, 32, 116, 111, 32, 116, 104, 105, 115, 32, 76, 105, 99, 101, 110, 115, 101, 32, 65, 103, 114, 101, 101, 109, 101, 110, 116, 44, 32, 97, 110, 100, 32, 116, 111, 32, 116, 104, 101, 10, 97, 98, 115, 101, 110, 99, 101, 32, 111, 102, 32, 97, 110, 121, 32, 119, 97, 114, 114, 97, 110, 116, 121, 59, 32, 97, 110, 100, 32, 103, 105, 118, 101, 32, 97, 110, 121, 32, 111, 116, 104, 101, 114, 32, 114, 101, 99, 105, 112, 105, 101, 110, 116, 115, 32, 111, 102, 32, 116, 104, 101, 32, 78, 101, 116, 72, 97, 99, 107, 10, 112, 114, 111, 103, 114, 97, 109, 32, 97, 32, 99, 111, 112, 121, 32, 111, 102, 32, 116, 104, 105, 115, 32, 76, 105, 99, 101, 110, 115, 101, 32, 65, 103, 114, 101, 101, 109, 101, 110, 116, 32, 97, 108, 111, 110, 103, 32, 119, 105, 116, 104, 32, 116, 104, 101, 32, 112, 114, 111, 103, 114, 97, 109, 46, 10, 10, 32, 32, 50, 46, 32, 89, 111, 117, 32, 109, 97, 121, 32, 109, 111, 100, 105, 102, 121, 32, 121, 111, 117, 114, 32, 99, 111, 112, 121, 32, 111, 114, 32, 99, 111, 112, 105, 101, 115, 32, 111, 102, 32, 78, 101, 116, 72, 97, 99, 107, 32, 111, 114, 32, 97, 110, 121, 32, 112, 111, 114, 116, 105, 111, 110, 32, 111, 102, 32, 105, 116, 44, 32, 97, 110, 100, 10, 99, 111, 112, 121, 32, 97, 110, 100, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 101, 32, 115, 117, 99, 104, 32, 109, 111, 100, 105, 102, 105, 99, 97, 116, 105, 111, 110, 115, 32, 117, 110, 100, 101, 114, 32, 116, 104, 101, 32, 116, 101, 114, 109, 115, 32, 111, 102, 32, 80, 97, 114, 97, 103, 114, 97, 112, 104, 32, 49, 32, 97, 98, 111, 118, 101, 10, 40, 105, 110, 99, 108, 117, 100, 105, 110, 103, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 110, 103, 32, 116, 104, 105, 115, 32, 76, 105, 99, 101, 110, 115, 101, 32, 65, 103, 114, 101, 101, 109, 101, 110, 116, 41, 44, 32, 112, 114, 111, 118, 105, 100, 101, 100, 32, 116, 104, 97, 116, 32, 121, 111, 117, 32, 97, 108, 115, 111, 32, 100, 111, 32, 116, 104, 101, 10, 102, 111, 108, 108, 111, 119, 105, 110, 103, 58, 10, 10, 32, 32, 32, 32, 97, 41, 32, 99, 97, 117, 115, 101, 32, 116, 104, 101, 32, 109, 111, 100, 105, 102, 105, 101, 100, 32, 102, 105, 108, 101, 115, 32, 116, 111, 32, 99, 97, 114, 114, 121, 32, 112, 114, 111, 109, 105, 110, 101, 110, 116, 32, 110, 111, 116, 105, 99, 101, 115, 32, 115, 116, 97, 116, 105, 110, 103, 32, 116, 104, 97, 116, 32, 121, 111, 117, 10, 32, 32, 32, 32, 99, 104, 97, 110, 103, 101, 100, 32, 116, 104, 101, 32, 102, 105, 108, 101, 115, 32, 97, 110, 100, 32, 116, 104, 101, 32, 100, 97, 116, 101, 32, 111, 102, 32, 97, 110, 121, 32, 99, 104, 97, 110, 103, 101, 59, 32, 97, 110, 100, 10, 10, 32, 32, 32, 32, 98, 41, 32, 99, 97, 117, 115, 101, 32, 116, 104, 101, 32, 119, 104, 111, 108, 101, 32, 111, 102, 32, 97, 110, 121, 32, 119, 111, 114, 107, 32, 116, 104, 97, 116, 32, 121, 111, 117, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 101, 32, 111, 114, 32, 112, 117, 98, 108, 105, 115, 104, 44, 32, 116, 104, 97, 116, 32, 105, 110, 10, 32, 32, 32, 32, 119, 104, 111, 108, 101, 32, 111, 114, 32, 105, 110, 32, 112, 97, 114, 116, 32, 99, 111, 110, 116, 97, 105, 110, 115, 32, 111, 114, 32, 105, 115, 32, 97, 32, 100, 101, 114, 105, 118, 97, 116, 105, 118, 101, 32, 111, 102, 32, 78, 101, 116, 72, 97, 99, 107, 32, 111, 114, 32, 97, 110, 121, 32, 112, 97, 114, 116, 10, 32, 32, 32, 32, 116, 104, 101, 114, 101, 111, 102, 44, 32, 116, 111, 32, 98, 101, 32, 108, 105, 99, 101, 110, 115, 101, 100, 32, 97, 116, 32, 110, 111, 32, 99, 104, 97, 114, 103, 101, 32, 116, 111, 32, 97, 108, 108, 32, 116, 104, 105, 114, 100, 32, 112, 97, 114, 116, 105, 101, 115, 32, 111, 110, 32, 116, 101, 114, 109, 115, 10, 32, 32, 32, 32, 105, 100, 101, 110, 116, 105, 99, 97, 108, 32, 116, 111, 32, 116, 104, 111, 115, 101, 32, 99, 111, 110, 116, 97, 105, 110, 101, 100, 32, 105, 110, 32, 116, 104, 105, 115, 32, 76, 105, 99, 101, 110, 115, 101, 32, 65, 103, 114, 101, 101, 109, 101, 110, 116, 32, 40, 101, 120, 99, 101, 112, 116, 32, 116, 104, 97, 116, 32, 121, 111, 117, 10, 32, 32, 32, 32, 109, 97, 121, 32, 99, 104, 111, 111, 115, 101, 32, 116, 111, 32, 103, 114, 97, 110, 116, 32, 109, 111, 114, 101, 32, 101, 120, 116, 101, 110, 115, 105, 118, 101, 32, 119, 97, 114, 114, 97, 110, 116, 121, 32, 112, 114, 111, 116, 101, 99, 116, 105, 111, 110, 32, 116, 111, 32, 115, 111, 109, 101, 32, 111, 114, 32, 97, 108, 108, 10, 32, 32, 32, 32, 116, 104, 105, 114, 100, 32, 112, 97, 114, 116, 105, 101, 115, 44, 32, 97, 116, 32, 121, 111, 117, 114, 32, 111, 112, 116, 105, 111, 110, 41, 10, 10, 32, 32, 32, 32, 99, 41, 32, 89, 111, 117, 32, 109, 97, 121, 32, 99, 104, 97, 114, 103, 101, 32, 97, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 32, 102, 101, 101, 32, 102, 111, 114, 32, 116, 104, 101, 32, 112, 104, 121, 115, 105, 99, 97, 108, 32, 97, 99, 116, 32, 111, 102, 10, 32, 32, 32, 32, 116, 114, 97, 110, 115, 102, 101, 114, 114, 105, 110, 103, 32, 97, 32, 99, 111, 112, 121, 44, 32, 97, 110, 100, 32, 121, 111, 117, 32, 109, 97, 121, 32, 97, 116, 32, 121, 111, 117, 114, 32, 111, 112, 116, 105, 111, 110, 32, 111, 102, 102, 101, 114, 32, 119, 97, 114, 114, 97, 110, 116, 121, 32, 112, 114, 111, 116, 101, 99, 116, 105, 111, 110, 10, 32, 32, 32, 32, 105, 110, 32, 101, 120, 99, 104, 97, 110, 103, 101, 32, 102, 111, 114, 32, 97, 32, 102, 101, 101, 46, 10, 10, 32, 32, 51, 46, 32, 89, 111, 117, 32, 109, 97, 121, 32, 99, 111, 112, 121, 32, 97, 110, 100, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 101, 32, 78, 101, 116, 72, 97, 99, 107, 32, 40, 111, 114, 32, 97, 32, 112, 111, 114, 116, 105, 111, 110, 32, 111, 114, 32, 100, 101, 114, 105, 118, 97, 116, 105, 118, 101, 32, 111, 102, 32, 105, 116, 44, 10, 117, 110, 100, 101, 114, 32, 80, 97, 114, 97, 103, 114, 97, 112, 104, 32, 50, 41, 32, 105, 110, 32, 111, 98, 106, 101, 99, 116, 32, 99, 111, 100, 101, 32, 111, 114, 32, 101, 120, 101, 99, 117, 116, 97, 98, 108, 101, 32, 102, 111, 114, 109, 32, 117, 110, 100, 101, 114, 32, 116, 104, 101, 32, 116, 101, 114, 109, 115, 32, 111, 102, 10, 80, 97, 114, 97, 103, 114, 97, 112, 104, 115, 32, 49, 32, 97, 110, 100, 32, 50, 32, 97, 98, 111, 118, 101, 32, 112, 114, 111, 118, 105, 100, 101, 100, 32, 116, 104, 97, 116, 32, 121, 111, 117, 32, 97, 108, 115, 111, 32, 100, 111, 32, 111, 110, 101, 32, 111, 102, 32, 116, 104, 101, 32, 102, 111, 108, 108, 111, 119, 105, 110, 103, 58, 10, 10, 32, 32, 32, 32, 97, 41, 32, 97, 99, 99, 111, 109, 112, 97, 110, 121, 32, 105, 116, 32, 119, 105, 116, 104, 32, 116, 104, 101, 32, 99, 111, 109, 112, 108, 101, 116, 101, 32, 109, 97, 99, 104, 105, 110, 101, 45, 114, 101, 97, 100, 97, 98, 108, 101, 32, 115, 111, 117, 114, 99, 101, 32, 99, 111, 100, 101, 44, 32, 119, 104, 105, 99, 104, 10, 32, 32, 32, 32, 109, 117, 115, 116, 32, 98, 101, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 101, 100, 32, 117, 110, 100, 101, 114, 32, 116, 104, 101, 32, 116, 101, 114, 109, 115, 32, 111, 102, 32, 80, 97, 114, 97, 103, 114, 97, 112, 104, 115, 32, 49, 32, 97, 110, 100, 32, 50, 32, 97, 98, 111, 118, 101, 59, 32, 111, 114, 44, 10, 10, 32, 32, 32, 32, 98, 41, 32, 97, 99, 99, 111, 109, 112, 97, 110, 121, 32, 105, 116, 32, 119, 105, 116, 104, 32, 102, 117, 108, 108, 32, 105, 110, 102, 111, 114, 109, 97, 116, 105, 111, 110, 32, 97, 115, 32, 116, 111, 32, 104, 111, 119, 32, 116, 111, 32, 111, 98, 116, 97, 105, 110, 32, 116, 104, 101, 32, 99, 111, 109, 112, 108, 101, 116, 101, 10, 32, 32, 32, 32, 109, 97, 99, 104, 105, 110, 101, 45, 114, 101, 97, 100, 97, 98, 108, 101, 32, 115, 111, 117, 114, 99, 101, 32, 99, 111, 100, 101, 32, 102, 114, 111, 109, 32, 97, 110, 32, 97, 112, 112, 114, 111, 112, 114, 105, 97, 116, 101, 32, 97, 114, 99, 104, 105, 118, 101, 32, 115, 105, 116, 101, 46, 32, 32, 40, 84, 104, 105, 115, 10, 32, 32, 32, 32, 97, 108, 116, 101, 114, 110, 97, 116, 105, 118, 101, 32, 105, 115, 32, 97, 108, 108, 111, 119, 101, 100, 32, 111, 110, 108, 121, 32, 102, 111, 114, 32, 110, 111, 110, 99, 111, 109, 109, 101, 114, 99, 105, 97, 108, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 46, 41, 10, 10, 70, 111, 114, 32, 116, 104, 101, 115, 101, 32, 112, 117, 114, 112, 111, 115, 101, 115, 44, 32, 99, 111, 109, 112, 108, 101, 116, 101, 32, 115, 111, 117, 114, 99, 101, 32, 99, 111, 100, 101, 32, 109, 101, 97, 110, 115, 32, 101, 105, 116, 104, 101, 114, 32, 116, 104, 101, 32, 102, 117, 108, 108, 32, 115, 111, 117, 114, 99, 101, 10, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 32, 97, 115, 32, 111, 114, 105, 103, 105, 110, 97, 108, 108, 121, 32, 114, 101, 108, 101, 97, 115, 101, 100, 32, 111, 118, 101, 114, 32, 85, 115, 101, 110, 101, 116, 32, 111, 114, 32, 117, 112, 100, 97, 116, 101, 100, 32, 99, 111, 112, 105, 101, 115, 32, 111, 102, 32, 116, 104, 101, 10, 102, 105, 108, 101, 115, 32, 105, 110, 32, 116, 104, 105, 115, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 105, 111, 110, 32, 117, 115, 101, 100, 32, 116, 111, 32, 99, 114, 101, 97, 116, 101, 32, 116, 104, 101, 32, 111, 98, 106, 101, 99, 116, 32, 99, 111, 100, 101, 32, 111, 114, 32, 101, 120, 101, 99, 117, 116, 97, 98, 108, 101, 46, 10, 10, 32, 32, 52, 46, 32, 89, 111, 117, 32, 109, 97, 121, 32, 110, 111, 116, 32, 99, 111, 112, 121, 44, 32, 115, 117, 98, 108, 105, 99, 101, 110, 115, 101, 44, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 101, 32, 111, 114, 32, 116, 114, 97, 110, 115, 102, 101, 114, 32, 78, 101, 116, 72, 97, 99, 107, 32, 101, 120, 99, 101, 112, 116, 32, 97, 115, 10, 101, 120, 112, 114, 101, 115, 115, 108, 121, 32, 112, 114, 111, 118, 105, 100, 101, 100, 32, 117, 110, 100, 101, 114, 32, 116, 104, 105, 115, 32, 76, 105, 99, 101, 110, 115, 101, 32, 65, 103, 114, 101, 101, 109, 101, 110, 116, 46, 32, 32, 65, 110, 121, 32, 97, 116, 116, 101, 109, 112, 116, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 32, 116, 111, 10, 99, 111, 112, 121, 44, 32, 115, 117, 98, 108, 105, 99, 101, 110, 115, 101, 44, 32, 100, 105, 115, 116, 114, 105, 98, 117, 116, 101, 32, 111, 114, 32, 116, 114, 97, 110, 115, 102, 101, 114, 32, 78, 101, 116, 72, 97, 99, 107, 32, 105, 115, 32, 118, 111, 105, 100, 32, 97, 110, 100, 32, 121, 111, 117, 114, 32, 114, 105, 103, 104, 116, 115, 32, 116, 111, 10, 117, 115, 101, 32, 116, 104, 101, 32, 112, 114, 111, 103, 114, 97, 109, 32, 117, 110, 100, 101, 114, 32, 116, 104, 105, 115, 32, 76, 105, 99, 101, 110, 115, 101, 32, 97, 103, 114, 101, 101, 109, 101, 110, 116, 32, 115, 104, 97, 108, 108, 32, 98, 101, 32, 97, 117, 116, 111, 109, 97, 116, 105, 99, 97, 108, 108, 121, 10, 116, 101, 114, 109, 105, 110, 97, 116, 101, 100, 46, 32, 32, 72, 111, 119, 101, 118, 101, 114, 44, 32, 112, 97, 114, 116, 105, 101, 115, 32, 119, 104, 111, 32, 104, 97, 118, 101, 32, 114, 101, 99, 101, 105, 118, 101, 100, 32, 99, 111, 109, 112, 117, 116, 101, 114, 32, 115, 111, 102, 116, 119, 97, 114, 101, 32, 112, 114, 111, 103, 114, 97, 109, 115, 10, 102, 114, 111, 109, 32, 121, 111, 117, 32, 119, 105, 116, 104, 32, 116, 104, 105, 115, 32, 76, 105, 99, 101, 110, 115, 101, 32, 65, 103, 114, 101, 101, 109, 101, 110, 116, 32, 119, 105, 108, 108, 32, 110, 111, 116, 32, 104, 97, 118, 101, 32, 116, 104, 101, 105, 114, 32, 108, 105, 99, 101, 110, 115, 101, 115, 32, 116, 101, 114, 109, 105, 110, 97, 116, 101, 100, 10, 115, 111, 32, 108, 111, 110, 103, 32, 97, 115, 32, 115, 117, 99, 104, 32, 112, 97, 114, 116, 105, 101, 115, 32, 114, 101, 109, 97, 105, 110, 32, 105, 110, 32, 102, 117, 108, 108, 32, 99, 111, 109, 112, 108, 105, 97, 110, 99, 101, 46, 10, 10, 10, 83, 116, 97, 116, 101, 100, 32, 112, 108, 97, 105, 110, 108, 121, 58, 32, 32, 89, 111, 117, 32, 97, 114, 101, 32, 112, 101, 114, 109, 105, 116, 116, 101, 100, 32, 116, 111, 32, 109, 111, 100, 105, 102, 121, 32, 78, 101, 116, 72, 97, 99, 107, 44, 32, 111, 114, 32, 111, 116, 104, 101, 114, 119, 105, 115, 101, 32, 117, 115, 101, 32, 112, 97, 114, 116, 115, 10, 111, 102, 32, 78, 101, 116, 72, 97, 99, 107, 44, 32, 112, 114, 111, 118, 105, 100, 101, 100, 32, 116, 104, 97, 116, 32, 121, 111, 117, 32, 99, 111, 109, 112, 108, 121, 32, 119, 105, 116, 104, 32, 116, 104, 101, 32, 99, 111, 110, 100, 105, 116, 105, 111, 110, 115, 32, 115, 112, 101, 99, 105, 102, 105, 101, 100, 32, 97, 98, 111, 118, 101, 59, 10, 105, 110, 32, 112, 97, 114, 116, 105, 99, 117, 108, 97, 114, 44, 32, 121, 111, 117, 114, 32, 109, 111, 100, 105, 102, 105, 101, 100, 32, 78, 101, 116, 72, 97, 99, 107, 32, 111, 114, 32, 112, 114, 111, 103, 114, 97, 109, 32, 99, 111, 110, 116, 97, 105, 110, 105, 110, 103, 32, 112, 97, 114, 116, 115, 32, 111, 102, 32, 78, 101, 116, 72, 97, 99, 107, 10, 109, 117, 115, 116, 32, 114, 101, 109, 97, 105, 110, 32, 102, 114, 101, 101, 108, 121, 32, 97, 118, 97, 105, 108, 97, 98, 108, 101, 32, 97, 115, 32, 112, 114, 111, 118, 105, 100, 101, 100, 32, 105, 110, 32, 116, 104, 105, 115, 32, 76, 105, 99, 101, 110, 115, 101, 32, 65, 103, 114, 101, 101, 109, 101, 110, 116, 46, 32, 32, 73, 110, 10, 111, 116, 104, 101, 114, 32, 119, 111, 114, 100, 115, 44, 32, 103, 111, 32, 97, 104, 101, 97, 100, 32, 97, 110, 100, 32, 115, 104, 97, 114, 101, 32, 78, 101, 116, 72, 97, 99, 107, 44, 32, 98, 117, 116, 32, 100, 111, 110, 39, 116, 32, 116, 114, 121, 32, 116, 111, 32, 115, 116, 111, 112, 32, 97, 110, 121, 111, 110, 101, 32, 101, 108, 115, 101, 10, 102, 114, 111, 109, 32, 115, 104, 97, 114, 105, 110, 103, 32, 105, 116, 32, 102, 97, 114, 116, 104, 101, 114, 46, 10]);
Module['FS_createDataFile']('/', 'license', fileData1, true, true, false);
var fileData2 = [];
Module['FS_createDataFile']('/', 'perm', fileData2, true, true, false);
var fileData3 = [];
Module['FS_createDataFile']('/', 'logfile', fileData3, true, true, false);
var fileData4 = [];
fileData4.push.apply(fileData4, [35, 32, 78, 101, 116, 72, 97, 99, 107, 32, 51, 46, 55, 32, 115, 121, 115, 99, 111, 110, 102, 32, 36, 78, 72, 68, 84, 45, 68, 97, 116, 101, 58, 32, 49, 53, 57, 54, 52, 57, 56, 50, 57, 54, 32, 50, 48, 50, 48, 47, 48, 56, 47, 48, 51, 32, 50, 51, 58, 52, 52, 58, 53, 54, 32, 36, 32, 36, 78, 72, 68, 84, 45, 66, 114, 97, 110, 99, 104, 58, 32, 78, 101, 116, 72, 97, 99, 107, 45, 51, 46, 55, 32, 36, 58, 36, 78, 72, 68, 84, 45, 82, 101, 118, 105, 115, 105, 111, 110, 58, 32, 49, 46, 51, 57, 32, 36, 10, 35, 32, 67, 111, 112, 121, 114, 105, 103, 104, 116, 32, 40, 99, 41, 32, 50, 48, 49, 53, 32, 98, 121, 32, 75, 101, 110, 110, 101, 116, 104, 32, 76, 111, 114, 98, 101, 114, 44, 32, 75, 101, 110, 115, 105, 110, 103, 116, 111, 110, 44, 32, 77, 97, 114, 121, 108, 97, 110, 100, 10, 35, 32, 78, 101, 116, 72, 97, 99, 107, 32, 109, 97, 121, 32, 98, 101, 32, 102, 114, 101, 101, 108, 121, 32, 114, 101, 100, 105, 115, 116, 114, 105, 98, 117, 116, 101, 100, 46, 32, 32, 83, 101, 101, 32, 108, 105, 99, 101, 110, 115, 101, 32, 102, 111, 114, 32, 100, 101, 116, 97, 105, 108, 115, 46, 10, 35, 10, 35, 32, 83, 97, 109, 112, 108, 101, 32, 115, 121, 115, 99, 111, 110, 102, 32, 102, 105, 108, 101, 46, 10, 35, 32, 84, 104, 101, 32, 115, 121, 115, 99, 111, 110, 102, 32, 102, 105, 108, 101, 32, 105, 115, 32, 111, 110, 108, 121, 32, 117, 115, 101, 100, 32, 105, 102, 32, 78, 101, 116, 72, 97, 99, 107, 32, 105, 115, 32, 99, 111, 109, 112, 105, 108, 101, 100, 32, 119, 105, 116, 104, 32, 83, 89, 83, 67, 70, 32, 100, 101, 102, 105, 110, 101, 100, 46, 10, 35, 32, 73, 116, 32, 99, 97, 110, 32, 98, 101, 32, 117, 115, 101, 100, 32, 116, 111, 32, 97, 117, 103, 109, 101, 110, 116, 32, 111, 114, 32, 111, 118, 101, 114, 114, 105, 100, 101, 32, 99, 101, 114, 116, 97, 105, 110, 32, 115, 101, 116, 116, 105, 110, 103, 115, 32, 99, 111, 109, 112, 105, 108, 101, 100, 32, 105, 110, 116, 111, 32, 116, 104, 101, 10, 35, 32, 112, 114, 111, 103, 114, 97, 109, 46, 10, 35, 10, 35, 32, 84, 104, 105, 115, 32, 102, 105, 108, 101, 32, 99, 97, 110, 32, 97, 108, 115, 111, 32, 98, 101, 32, 117, 115, 101, 100, 32, 116, 111, 32, 115, 101, 116, 32, 108, 111, 99, 97, 108, 32, 115, 121, 115, 116, 101, 109, 32, 100, 101, 102, 97, 117, 108, 116, 115, 32, 102, 111, 114, 32, 114, 117, 110, 45, 116, 105, 109, 101, 10, 35, 32, 111, 112, 116, 105, 111, 110, 115, 44, 32, 117, 115, 105, 110, 103, 32, 116, 104, 101, 32, 115, 97, 109, 101, 32, 115, 121, 110, 116, 97, 120, 32, 97, 115, 32, 97, 110, 32, 105, 110, 100, 105, 118, 105, 100, 117, 97, 108, 32, 117, 115, 101, 114, 39, 115, 32, 46, 47, 110, 101, 116, 104, 97, 99, 107, 114, 99, 32, 102, 105, 108, 101, 46, 10, 10, 35, 32, 87, 104, 105, 99, 104, 32, 117, 115, 101, 114, 115, 32, 99, 97, 110, 32, 117, 115, 101, 32, 100, 101, 98, 117, 103, 32, 109, 111, 100, 101, 32, 40, 97, 107, 97, 32, 119, 105, 122, 97, 114, 100, 32, 109, 111, 100, 101, 59, 32, 97, 99, 99, 101, 115, 115, 101, 100, 32, 118, 105, 97, 32, 39, 45, 68, 39, 32, 99, 111, 109, 109, 97, 110, 100, 10, 35, 32, 108, 105, 110, 101, 32, 102, 108, 97, 103, 32, 111, 114, 32, 79, 80, 84, 73, 79, 78, 83, 61, 112, 108, 97, 121, 109, 111, 100, 101, 58, 100, 101, 98, 117, 103, 32, 105, 110, 32, 116, 104, 101, 32, 114, 117, 110, 116, 105, 109, 101, 32, 111, 112, 116, 105, 111, 110, 115, 32, 99, 111, 110, 102, 105, 103, 32, 102, 105, 108, 101, 41, 46, 10, 35, 32, 65, 32, 118, 97, 108, 117, 101, 32, 111, 102, 32, 42, 32, 97, 108, 108, 111, 119, 115, 32, 97, 110, 121, 111, 110, 101, 32, 116, 111, 32, 101, 110, 116, 101, 114, 32, 100, 101, 98, 117, 103, 103, 105, 110, 103, 32, 109, 111, 100, 101, 46, 10, 87, 73, 90, 65, 82, 68, 83, 61, 114, 111, 111, 116, 32, 103, 97, 109, 101, 115, 10, 10, 35, 32, 87, 104, 105, 99, 104, 32, 117, 115, 101, 114, 115, 32, 99, 97, 110, 32, 117, 115, 101, 32, 101, 120, 112, 108, 111, 114, 101, 32, 109, 111, 100, 101, 32, 40, 97, 107, 97, 32, 100, 105, 115, 99, 111, 118, 101, 114, 32, 109, 111, 100, 101, 59, 32, 97, 99, 99, 101, 115, 115, 101, 100, 32, 118, 105, 97, 32, 39, 45, 88, 39, 10, 35, 32, 99, 111, 109, 109, 97, 110, 100, 32, 108, 105, 110, 101, 32, 102, 108, 97, 103, 32, 111, 114, 32, 79, 80, 84, 73, 79, 78, 83, 61, 112, 108, 97, 121, 109, 111, 100, 101, 58, 101, 120, 112, 108, 111, 114, 101, 32, 105, 110, 32, 114, 117, 110, 116, 105, 109, 101, 32, 111, 112, 116, 105, 111, 110, 115, 32, 102, 105, 108, 101, 32, 111, 114, 10, 35, 32, 118, 105, 97, 32, 39, 35, 101, 120, 112, 108, 111, 114, 101, 109, 111, 100, 101, 39, 32, 99, 111, 109, 109, 97, 110, 100, 32, 100, 117, 114, 105, 110, 103, 32, 110, 111, 114, 109, 97, 108, 32, 112, 108, 97, 121, 41, 46, 32, 32, 83, 97, 109, 101, 32, 115, 121, 110, 116, 97, 120, 32, 97, 115, 32, 87, 73, 90, 65, 82, 68, 83, 46, 10, 69, 88, 80, 76, 79, 82, 69, 82, 83, 61, 42, 10, 10, 35, 32, 85, 115, 101, 114, 115, 32, 97, 108, 108, 111, 119, 101, 100, 32, 116, 111, 32, 117, 115, 101, 32, 116, 104, 101, 32, 39, 33, 39, 32, 40, 115, 104, 101, 108, 108, 32, 101, 115, 99, 97, 112, 101, 41, 32, 97, 110, 100, 32, 39, 94, 90, 39, 32, 40, 115, 117, 115, 112, 101, 110, 100, 32, 112, 114, 111, 99, 101, 115, 115, 41, 10, 35, 32, 99, 111, 109, 109, 97, 110, 100, 115, 32, 116, 111, 32, 116, 101, 109, 112, 111, 114, 97, 114, 105, 108, 121, 32, 108, 101, 97, 118, 101, 32, 116, 104, 101, 32, 103, 97, 109, 101, 32, 97, 110, 100, 32, 101, 110, 116, 101, 114, 32, 97, 32, 115, 104, 101, 108, 108, 32, 112, 114, 111, 99, 101, 115, 115, 46, 10, 35, 32, 40, 84, 111, 32, 114, 101, 115, 117, 109, 101, 32, 112, 108, 97, 121, 44, 32, 117, 115, 101, 32, 116, 104, 101, 32, 115, 104, 101, 108, 108, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 101, 120, 105, 116, 39, 32, 40, 102, 111, 114, 32, 109, 111, 115, 116, 32, 115, 104, 101, 108, 108, 115, 41, 32, 116, 111, 10, 35, 32, 114, 101, 116, 117, 114, 110, 32, 102, 114, 111, 109, 32, 39, 33, 39, 32, 111, 114, 32, 116, 104, 101, 32, 115, 104, 101, 108, 108, 32, 99, 111, 109, 109, 97, 110, 100, 32, 39, 102, 103, 39, 32, 116, 111, 32, 114, 101, 116, 117, 114, 110, 32, 102, 114, 111, 109, 32, 39, 94, 90, 39, 46, 10, 35, 32, 70, 111, 114, 32, 116, 104, 101, 32, 116, 121, 112, 105, 99, 97, 108, 32, 109, 117, 108, 116, 105, 45, 117, 115, 101, 114, 32, 115, 121, 115, 116, 101, 109, 32, 119, 104, 101, 114, 101, 32, 112, 108, 97, 121, 101, 114, 115, 32, 104, 97, 118, 101, 32, 97, 99, 99, 101, 115, 115, 32, 116, 111, 32, 97, 32, 115, 104, 101, 108, 108, 10, 35, 32, 112, 114, 111, 109, 112, 116, 32, 119, 104, 101, 110, 32, 108, 111, 103, 103, 101, 100, 32, 105, 110, 32, 97, 110, 100, 32, 114, 117, 110, 32, 116, 104, 101, 32, 103, 97, 109, 101, 32, 102, 114, 111, 109, 32, 116, 104, 101, 105, 114, 32, 111, 119, 110, 32, 117, 115, 101, 114, 110, 97, 109, 101, 44, 32, 97, 32, 118, 97, 108, 117, 101, 10, 35, 32, 111, 102, 32, 39, 83, 72, 69, 76, 76, 69, 82, 83, 61, 42, 39, 32, 105, 115, 32, 97, 112, 112, 114, 111, 112, 114, 105, 97, 116, 101, 46, 32, 32, 72, 111, 119, 101, 118, 101, 114, 44, 32, 115, 111, 109, 101, 32, 105, 110, 101, 120, 112, 101, 114, 105, 101, 110, 99, 101, 100, 32, 112, 108, 97, 121, 101, 114, 115, 10, 35, 32, 111, 99, 99, 97, 115, 105, 111, 110, 97, 108, 108, 121, 32, 103, 101, 116, 32, 115, 116, 117, 99, 107, 32, 111, 117, 116, 115, 105, 100, 101, 32, 116, 104, 101, 32, 103, 97, 109, 101, 32, 98, 121, 32, 97, 99, 99, 105, 100, 101, 110, 116, 97, 108, 108, 121, 32, 116, 121, 112, 105, 110, 103, 32, 39, 33, 39, 32, 111, 114, 10, 35, 32, 39, 94, 90, 39, 32, 100, 117, 114, 105, 110, 103, 32, 112, 108, 97, 121, 32, 97, 110, 100, 32, 110, 111, 116, 32, 107, 110, 111, 119, 105, 110, 103, 32, 104, 111, 119, 32, 116, 111, 32, 103, 111, 32, 98, 97, 99, 107, 46, 41, 10, 35, 32, 85, 115, 101, 115, 32, 116, 104, 101, 32, 115, 97, 109, 101, 32, 115, 121, 110, 116, 97, 120, 32, 97, 115, 32, 116, 104, 101, 32, 87, 73, 90, 65, 82, 68, 83, 32, 97, 110, 100, 32, 69, 88, 80, 76, 79, 82, 69, 82, 83, 32, 111, 112, 116, 105, 111, 110, 115, 32, 97, 98, 111, 118, 101, 46, 10, 35, 83, 72, 69, 76, 76, 69, 82, 83, 61, 10, 10, 35, 32, 73, 102, 32, 116, 104, 101, 32, 117, 115, 101, 114, 32, 110, 97, 109, 101, 32, 105, 115, 32, 102, 111, 117, 110, 100, 32, 105, 110, 32, 116, 104, 105, 115, 32, 108, 105, 115, 116, 44, 32, 112, 114, 111, 109, 112, 116, 32, 102, 111, 114, 32, 117, 115, 101, 114, 110, 97, 109, 101, 32, 105, 110, 115, 116, 101, 97, 100, 46, 10, 35, 32, 85, 115, 101, 115, 32, 116, 104, 101, 32, 115, 97, 109, 101, 32, 115, 121, 110, 116, 97, 120, 32, 97, 115, 32, 116, 104, 101, 32, 87, 73, 90, 65, 82, 68, 83, 32, 111, 112, 116, 105, 111, 110, 32, 97, 98, 111, 118, 101, 46, 10, 35, 32, 65, 32, 112, 117, 98, 108, 105, 99, 32, 115, 101, 114, 118, 101, 114, 32, 115, 104, 111, 117, 108, 100, 32, 112, 114, 111, 98, 97, 98, 108, 121, 32, 100, 105, 115, 97, 98, 108, 101, 32, 116, 104, 105, 115, 46, 10, 35, 32, 91, 34, 101, 99, 50, 45, 117, 115, 101, 114, 34, 32, 105, 115, 32, 116, 104, 101, 32, 100, 101, 102, 97, 117, 108, 116, 32, 117, 115, 101, 114, 32, 110, 97, 109, 101, 32, 111, 110, 32, 65, 109, 97, 122, 111, 110, 32, 76, 105, 110, 117, 120, 93, 10, 71, 69, 78, 69, 82, 73, 67, 85, 83, 69, 82, 83, 61, 112, 108, 97, 121, 32, 112, 108, 97, 121, 101, 114, 32, 103, 97, 109, 101, 32, 103, 97, 109, 101, 115, 32, 110, 101, 116, 104, 97, 99, 107, 32, 110, 101, 116, 104, 97, 99, 107, 101, 114, 32, 101, 99, 50, 45, 117, 115, 101, 114, 10, 10, 35, 32, 85, 115, 101, 32, 116, 104, 101, 32, 112, 108, 97, 121, 101, 114, 32, 110, 97, 109, 101, 32, 102, 111, 114, 32, 109, 97, 116, 99, 104, 105, 110, 103, 32, 87, 73, 90, 65, 82, 68, 83, 44, 32, 69, 88, 80, 76, 79, 82, 69, 82, 83, 32, 97, 110, 100, 32, 83, 72, 69, 76, 76, 69, 82, 83, 44, 10, 35, 32, 105, 110, 115, 116, 101, 97, 100, 32, 111, 102, 32, 116, 104, 101, 32, 117, 115, 101, 114, 39, 115, 32, 108, 111, 103, 105, 110, 32, 110, 97, 109, 101, 46, 10, 35, 67, 72, 69, 67, 75, 95, 80, 76, 78, 65, 77, 69, 61, 49, 10, 10, 35, 32, 76, 105, 109, 105, 116, 32, 116, 104, 101, 32, 110, 117, 109, 98, 101, 114, 32, 111, 102, 32, 115, 105, 109, 117, 108, 116, 97, 110, 101, 111, 117, 115, 32, 103, 97, 109, 101, 115, 32, 40, 115, 101, 101, 32, 97, 108, 115, 111, 32, 110, 101, 116, 104, 97, 99, 107, 46, 115, 104, 41, 46, 10, 35, 32, 86, 97, 108, 105, 100, 32, 118, 97, 108, 117, 101, 115, 32, 97, 114, 101, 32, 48, 45, 50, 53, 46, 10, 35, 32, 67, 111, 109, 109, 101, 110, 116, 105, 110, 103, 32, 116, 104, 105, 115, 32, 111, 117, 116, 32, 11