geopackage.min.js 3.0 MB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.geopackage=f()}})(function(){var define,module,exports;return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({"/data/github/geopackage-node/index.js":[function(require,module,exports){var GeoPackage=require("./lib/geopackage"),GeoPackageManager=require("./lib/geoPackageManager"),GeoPackageConnection=require("./lib/db/GeoPackageConnection"),GeoPackageTileRetriever=require("./lib/tiles/retriever"),async=require("async"),SQL=require("sql.js"),reproject=require("reproject"),L=require("leaflet"),fileType=require("file-type");L.Icon.Default.imagePath="node_modules/leaflet/dist/images/";var map=L.map("map",{center:[45,0],zoom:0,worldCopyJump:true});var baseLayer=L.tileLayer("http://mapbox.geointapps.org:2999/v4/mapbox.light/{z}/{x}/{y}.png");baseLayer.addTo(map);var geojsonLayer=L.geoJson();module.exports.loadGeoPackage=function(files){console.log("files",files);var f=files[0];var r=new FileReader;r.onload=function(){var Uints=new Uint8Array(r.result);db=new SQL.Database(Uints);GeoPackageConnection.connectWithDatabase(db,function(err,connection){var geoPackage=new GeoPackage("","",connection);geoPackage.getTileTables(function(err,tables){async.eachSeries(tables,function(table,callback){console.log("tile table",table);geoPackage.getTileDaoWithTableName(table,function(err,tileDao){var maxZoom=tileDao.maxZoom;var minZoom=tileDao.minZoom;var gpr=new GeoPackageTileRetriever(tileDao,256,256);var tableLayer=L.tileLayer.canvas({noWrap:true,minZoom:minZoom,maxZoom:maxZoom});tableLayer.drawTile=function(canvas,tilePoint,zoom){gpr.getTile(tilePoint.x,tilePoint.y,zoom,function(err,tile){console.log("tile",tile);if(tile){var ctx=canvas.getContext("2d");var image=document.createElement("img");image.onload=function(){ctx.drawImage(image,0,0)};image.src=tile}})};tableLayer.addTo(map);callback()})},function(){geoPackage.getFeatureTables(function(err,tables){async.eachSeries(tables,function(table,callback){console.log("table",table);geoPackage.getFeatureDaoWithTableName(table,function(err,featureDao){if(err){return callback()}var features=0;featureDao.getSrs(function(err,srs){featureDao.queryForEach(function(err,row){features++;var currentRow=featureDao.getFeatureRow(row);var geometry=currentRow.getGeometry();var geom=geometry.geometry;var geoJson=geometry.geometry.toGeoJSON();if(srs.definition&&srs.definition!=="undefined"){geoJson=reproject.reproject(geoJson,srs.definition,"EPSG:4326")}geojsonLayer.addData(geoJson)},function(err){console.log("added "+features+" features");callback()})})})},function(){geojsonLayer.addTo(map);geojsonLayer.bringToFront()})})})})})};r.readAsArrayBuffer(f)}},{"./lib/db/GeoPackageConnection":"/data/github/geopackage-node/lib/db/GeoPackageConnection.js","./lib/geoPackageManager":"/data/github/geopackage-node/lib/geoPackageManager.js","./lib/geopackage":"/data/github/geopackage-node/lib/geopackage.js","./lib/tiles/retriever":"/data/github/geopackage-node/lib/tiles/retriever/index.js",async:"/data/github/geopackage-node/node_modules/async/lib/async.js","file-type":"/data/github/geopackage-node/node_modules/file-type/index.js",leaflet:"/data/github/geopackage-node/node_modules/leaflet/dist/leaflet-src.js",reproject:"/data/github/geopackage-node/node_modules/reproject/index.js","sql.js":"/data/github/geopackage-node/node_modules/sql.js/js/sql.js"}],"/data/github/geopackage-node/lib/boundingBox.js":[function(require,module,exports){var proj4=require("proj4");var BoundingBox=function(minLongitudeOrBoundingBox,maxLongitude,minLatitude,maxLatitude){if(maxLongitude!==undefined){this.minLongitude=minLongitudeOrBoundingBox;this.maxLongitude=maxLongitude;this.minLatitude=minLatitude;this.maxLatitude=maxLatitude}else{var boundingBox=minLongitudeOrBoundingBox;this.minLongitude=boundingBox.minLongitude;this.maxLongitude=boundingBox.maxLongitude;this.minLatitude=boundingBox.minLatitude;this.maxLatitude=boundingBox.maxLatitude}};module.exports=BoundingBox;BoundingBox.prototype.buildEnvelope=function(){throw new Error("not implemented")};BoundingBox.prototype.equals=function(boundingBox){if(!boundingBox){return false}if(this===boundingBox){return true}return this.maxLatitude===boundingBox.maxLatitude&&this.minLatitude===boundingBox.minLatitude&&this.maxLongitude===boundingBox.maxLongitude&&this.maxLatitude===boundingBox.maxLatitude};BoundingBox.prototype.projectBoundingBox=function(from,to){if(from&&from!=="undefined"&&to&&to!=="undefined"){var toProj=proj4(to);var fromProj=proj4(from);var min=proj4(from,to,[this.minLongitude,this.minLatitude]);var max=proj4(from,to,[this.maxLongitude,this.maxLatitude]);var projected=new BoundingBox(min[0],max[0],min[1],max[1]);return projected}else{return this}}},{proj4:"/data/github/geopackage-node/node_modules/proj4/lib/index.js"}],"/data/github/geopackage-node/lib/core/contents/index.js":[function(require,module,exports){var Dao=require("../../dao/dao"),SpatialReferenceSystemDao=require("../srs").SpatialReferenceSystemDao,TileMatrixDao=require("../../tiles/matrix").TileMatrixDao,TileMatrixSetDao=require("../../tiles/matrixset").TileMatrixSetDao;var util=require("util");var Contents=function(){this.tableName;this.dataType;this.identifier;this.theDescription;this.lastChange;this.minX;this.minY;this.maxX;this.maxY;this.srsId};var ContentsDao=function(db){Dao.call(this,db);this.initializeColumnIndex()};util.inherits(ContentsDao,Dao);ContentsDao.prototype.createObject=function(){return new Contents};ContentsDao.prototype.getProjection=function(contents,callback){this.getSrs(contents,function(err,srs){var srsDao=this.getSpatialReferenceSystemDao();callback(null,srsDao.getProjection(srs))}.bind(this))};ContentsDao.prototype.validateObject=function(object){throw new Error("not implemented")};ContentsDao.prototype.deleteCascade=function(){throw new Error("not implemented")};ContentsDao.prototype.deleteCascadeWithUserTable=function(contents,userTable){throw new Error("not implemented")};ContentsDao.prototype.deleteCascadeWithCollection=function(contentsCollection){throw new Error("not implemented")};ContentsDao.prototype.deleteCascadeWithCollectionAndUserTable=function(contentsCollection,userTable){throw new Error("not implemented")};ContentsDao.prototype.deleteCascadeWhere=function(where,whereArgs){throw new Error("not implemented")};ContentsDao.prototype.deleteCascadeWhereWithUserTable=function(where,whereArgs,userTable){throw new Error("not implemented")};ContentsDao.prototype.deleteByIdCascade=function(id){throw new Error("not implemented")};ContentsDao.prototype.deleteByIdCascadeWithUserTable=function(id,userTable){throw new Error("not implemented")};ContentsDao.prototype.deleteByIdsCascade=function(idCollection){throw new Error("not implemented")};ContentsDao.prototype.deleteByIdsCascadeWithUserTable=function(idColleciton,userTable){throw new Error("not implemented")};ContentsDao.prototype.deleteTable=function(tableName){throw new Error("not implemented")};ContentsDao.prototype.getSrs=function(contents,callback){var dao=this.getSpatialReferenceSystemDao();dao.queryForIdObject(contents.srsId,callback)};ContentsDao.prototype.getGeometryColumns=function(contents,callback){var dao=this.getGeometryColumnsDao();var GeometryColumnsDao=require("../../features/columns").GeometryColumnsDao;dao.queryForEqWithFieldAndValue(GeometryColumnsDao.COLUMN_TABLE_NAME,contents.tableName,function(err,results){if(err||!results||!results.length)return callback(err);var gc=dao.createObject();dao.populateObjectFromResult(gc,results[0]);callback(err,gc)})};ContentsDao.prototype.getTileMatrixSet=function(contents,callback){var dao=this.getTileMatrixSetDao();dao.queryForEqWithFieldAndValue(TileMatrixSetDao.COLUMN_TABLE_NAME,contents.tableName,function(err,results){if(err||!results||!results.length)return callback(err);var gc=dao.createObject();dao.populateObjectFromResult(gc,results[0]);callback(err,gc)})};ContentsDao.prototype.getTileMatrix=function(contents,callback){var dao=this.getTileMatrixDao();dao.queryForEqWithFieldAndValue(TileMatrixDao.COLUMN_TABLE_NAME,contents.tableName,function(err,results){if(err||!results||!results.length)return callback(err);var tileMatricies=[];for(var i=0;i<results.length;i++){var gc=dao.createObject();dao.populateObjectFromResult(gc,results[i]);tileMatricies.push(gc)}callback(err,tileMatricies)})};ContentsDao.prototype.getGeometryColumnsDao=function(){var GeometryColumnsDao=require("../../features/columns").GeometryColumnsDao;return new GeometryColumnsDao(this.connection)};ContentsDao.prototype.getSpatialReferenceSystemDao=function(){return new SpatialReferenceSystemDao(this.connection)};ContentsDao.prototype.getTileMatrixSetDao=function(){return new TileMatrixSetDao(this.connection)};ContentsDao.prototype.getTileMatrixDao=function(){return new TileMatrixDao(this.connection)};Contents.TABLE_NAME="tableName";Contents.DATA_TYPE="dataType";Contents.IDENTIFIER="identifier";Contents.DESCRIPTION="description";Contents.LAST_CHANGE="lastChange";Contents.MIN_X="minX";Contents.MIN_Y="minY";Contents.MAX_X="maxX";Contents.MAX_Y="maxY";Contents.SRS_ID="srsId";ContentsDao.GPKG_CON_TABLE_NAME="gpkg_contents";ContentsDao.GPKG_CON_COLUMN_PK="table_name";ContentsDao.GPKG_CON_COLUMN_TABLE_NAME="table_name";ContentsDao.GPKG_CON_COLUMN_DATA_TYPE="data_type";ContentsDao.GPKG_CON_COLUMN_IDENTIFIER="identifier";ContentsDao.GPKG_CON_COLUMN_DESCRIPTION="description";ContentsDao.GPKG_CON_COLUMN_LAST_CHANGE="last_change";ContentsDao.GPKG_CON_COLUMN_MIN_X="min_x";ContentsDao.GPKG_CON_COLUMN_MIN_Y="min_y";ContentsDao.GPKG_CON_COLUMN_MAX_X="max_x";ContentsDao.GPKG_CON_COLUMN_MAX_Y="max_y";ContentsDao.GPKG_CON_COLUMN_SRS_ID="srs_id";ContentsDao.GPKG_CDT_FEATURES_NAME="features";ContentsDao.GPKG_CDT_TILES_NAME="tiles";ContentsDao.prototype.tableName=ContentsDao.GPKG_CON_TABLE_NAME;ContentsDao.prototype.idColumns=[ContentsDao.GPKG_CON_COLUMN_PK];ContentsDao.prototype.columns=[ContentsDao.GPKG_CON_COLUMN_TABLE_NAME,ContentsDao.GPKG_CON_COLUMN_DATA_TYPE,ContentsDao.GPKG_CON_COLUMN_IDENTIFIER,ContentsDao.GPKG_CON_COLUMN_DESCRIPTION,ContentsDao.GPKG_CON_COLUMN_LAST_CHANGE,ContentsDao.GPKG_CON_COLUMN_MIN_X,ContentsDao.GPKG_CON_COLUMN_MIN_Y,ContentsDao.GPKG_CON_COLUMN_MAX_X,ContentsDao.GPKG_CON_COLUMN_MAX_Y,ContentsDao.GPKG_CON_COLUMN_SRS_ID];ContentsDao.prototype.columnToPropertyMap={};ContentsDao.prototype.columnToPropertyMap[ContentsDao.GPKG_CON_COLUMN_TABLE_NAME]=Contents.TABLE_NAME;ContentsDao.prototype.columnToPropertyMap[ContentsDao.GPKG_CON_COLUMN_DATA_TYPE]=Contents.DATA_TYPE;ContentsDao.prototype.columnToPropertyMap[ContentsDao.GPKG_CON_COLUMN_IDENTIFIER]=Contents.IDENTIFIER;ContentsDao.prototype.columnToPropertyMap[ContentsDao.GPKG_CON_COLUMN_DESCRIPTION]=Contents.DESCRIPTION;ContentsDao.prototype.columnToPropertyMap[ContentsDao.GPKG_CON_COLUMN_LAST_CHANGE]=Contents.LAST_CHANGE;ContentsDao.prototype.columnToPropertyMap[ContentsDao.GPKG_CON_COLUMN_MIN_X]=Contents.MIN_X;ContentsDao.prototype.columnToPropertyMap[ContentsDao.GPKG_CON_COLUMN_MIN_Y]=Contents.MIN_Y;ContentsDao.prototype.columnToPropertyMap[ContentsDao.GPKG_CON_COLUMN_MAX_X]=Contents.MAX_X;ContentsDao.prototype.columnToPropertyMap[ContentsDao.GPKG_CON_COLUMN_MAX_Y]=Contents.MAX_Y;ContentsDao.prototype.columnToPropertyMap[ContentsDao.GPKG_CON_COLUMN_SRS_ID]=Contents.SRS_ID;ContentsDao.columnIndexToPropertyMap=[Contents.TABLE_NAME,Contents.DATA_TYPE,Contents.IDENTIFIER,Contents.DESCRIPTION,Contents.LAST_CHANGE,Contents.MIN_X,Contents.MIN_Y,Contents.MAX_X,Contents.MAX_Y,Contents.SRS_ID];module.exports.ContentsDao=ContentsDao;module.exports.Contents=Contents},{"../../dao/dao":"/data/github/geopackage-node/lib/dao/dao.js","../../features/columns":"/data/github/geopackage-node/lib/features/columns/index.js","../../tiles/matrix":"/data/github/geopackage-node/lib/tiles/matrix/index.js","../../tiles/matrixset":"/data/github/geopackage-node/lib/tiles/matrixset/index.js","../srs":"/data/github/geopackage-node/lib/core/srs/index.js",util:"/data/github/geopackage-node/node_modules/browserify/node_modules/util/util.js"}],"/data/github/geopackage-node/lib/core/srs/index.js":[function(require,module,exports){var Dao=require("../../dao/dao");var util=require("util"),proj4=require("proj4");var SpatialReferenceSystem=function(){this.srsName;this.srsId;this.organization;this.organizationCoordsysId;this.definition;this.description};var SpatialReferenceSystemDao=function(connection){Dao.call(this,connection)};util.inherits(SpatialReferenceSystemDao,Dao);SpatialReferenceSystemDao.prototype.createObject=function(){return new SpatialReferenceSystem};SpatialReferenceSystemDao.prototype.getBySrsId=function(srsId,callback){this.queryForIdObject(srsId,callback)};SpatialReferenceSystemDao.prototype.getProjection=function(srs){if(srs.organizationCoordsysId===4326&&(srs.organization==="EPSG"||srs.organization==="epsg")){return proj4("EPSG:4326")}else if(srs.definition&&srs.definition!==""&&srs.definition!=="undefined"){return proj4(srs.definition)}else if(srs.organization&&srs.organizationCoordsysId){return proj4(srs.organization+":"+srs.organizationCoordsysId)}else{return{}}};SpatialReferenceSystemDao.prototype.createWgs84=function(callback){callback(new Error("not implemented"))};SpatialReferenceSystemDao.prototype.createUndefinedCartesian=function(callback){callback(new Error("not implemented"))};SpatialReferenceSystemDao.prototype.createUndefinedGeographic=function(callback){callback(new Error("not implemented"))};SpatialReferenceSystemDao.prototype.createWebMercator=function(callback){callback(new Error("not implemented"))};SpatialReferenceSystemDao.prototype.deleteCascade=function(srs,callback){callback(new Error("not implemented"))};SpatialReferenceSystemDao.prototype.deleteCascadeWhere=function(where,whereArgs,callback){callback(new Error("not implemented"))};SpatialReferenceSystemDao.prototype.deleteByIdCascade=function(id,callback){callback(new Error("not implemented"))};SpatialReferenceSystemDao.prototype.deleteByIdsCascade=function(id,callback){callback(new Error("not implemented"))};SpatialReferenceSystemDao.prototype.getContents=function(srs,callback){callback(new Error("not implemented"))};SpatialReferenceSystemDao.prototype.getGeometryColumns=function(srs,callback){callback(new Error("not implemented"))};SpatialReferenceSystemDao.prototype.getTileMatrixSet=function(srs,callback){callback(new Error("not implemented"))};SpatialReferenceSystemDao.prototype.tableName="gpkg_spatial_ref_sys";SpatialReferenceSystemDao.COLUMN_SRS_NAME="srs_name";SpatialReferenceSystemDao.COLUMN_SRS_ID="srs_id";SpatialReferenceSystemDao.COLUMN_ID=SpatialReferenceSystemDao.COLUMN_SRS_ID;SpatialReferenceSystemDao.COLUMN_ORGANIZATION="organization";SpatialReferenceSystemDao.COLUMN_ORGANIZATION_COORDSYS_ID="organization_coordsys_id";SpatialReferenceSystemDao.COLUMN_DEFINITION="definition";SpatialReferenceSystemDao.COLUMN_DESCRIPTION="description";SpatialReferenceSystem.SRS_NAME="srsName";SpatialReferenceSystem.SRS_ID="srsId";SpatialReferenceSystem.ORGANIZATION="organization";SpatialReferenceSystem.ORGANIZATION_COORDSYS_ID="organizationCoordsysId";SpatialReferenceSystem.DEFINITION="definition";SpatialReferenceSystem.DESCRIPTION="description";SpatialReferenceSystemDao.prototype.idColumns=[SpatialReferenceSystemDao.COLUMN_SRS_ID];SpatialReferenceSystemDao.prototype.columns=[SpatialReferenceSystemDao.COLUMN_SRS_NAME,SpatialReferenceSystemDao.COLUMN_SRS_ID,SpatialReferenceSystemDao.COLUMN_ORGANIZATION,SpatialReferenceSystemDao.COLUMN_ORGANIZATION_COORDSYS_ID,SpatialReferenceSystemDao.COLUMN_DEFINITION,SpatialReferenceSystemDao.COLUMN_DESCRIPTION];SpatialReferenceSystemDao.prototype.columnToPropertyMap={};SpatialReferenceSystemDao.prototype.columnToPropertyMap[SpatialReferenceSystemDao.COLUMN_SRS_NAME]=SpatialReferenceSystem.SRS_NAME;SpatialReferenceSystemDao.prototype.columnToPropertyMap[SpatialReferenceSystemDao.COLUMN_SRS_ID]=SpatialReferenceSystem.SRS_ID;SpatialReferenceSystemDao.prototype.columnToPropertyMap[SpatialReferenceSystemDao.COLUMN_ORGANIZATION]=SpatialReferenceSystem.ORGANIZATION;SpatialReferenceSystemDao.prototype.columnToPropertyMap[SpatialReferenceSystemDao.COLUMN_ORGANIZATION_COORDSYS_ID]=SpatialReferenceSystem.ORGANIZATION_COORDSYS_ID;SpatialReferenceSystemDao.prototype.columnToPropertyMap[SpatialReferenceSystemDao.COLUMN_DEFINITION]=SpatialReferenceSystem.DEFINITION;SpatialReferenceSystemDao.prototype.columnToPropertyMap[SpatialReferenceSystemDao.COLUMN_DESCRIPTION]=SpatialReferenceSystem.DESCRIPTION;module.exports.SpatialReferenceSystemDao=SpatialReferenceSystemDao;module.exports.SpatialReferenceSystem=SpatialReferenceSystem},{"../../dao/dao":"/data/github/geopackage-node/lib/dao/dao.js",proj4:"/data/github/geopackage-node/node_modules/proj4/lib/index.js",util:"/data/github/geopackage-node/node_modules/browserify/node_modules/util/util.js"}],"/data/github/geopackage-node/lib/dao/columnValues.js":[function(require,module,exports){var ColumnValues=function(){this.values={};this.columns=[]};module.exports=ColumnValues;ColumnValues.prototype.count=function(){return Object.keys(this.values).length};ColumnValues.prototype.addColumn=function(column,value){this.columns.push(column);this.values[column]=value};ColumnValues.prototype.getValue=function(column){return this.values[column]}},{}],"/data/github/geopackage-node/lib/dao/dao.js":[function(require,module,exports){var sqliteQueryBuilder=require("../db/sqliteQueryBuilder");var Dao=function(connection){this.connection=connection};Dao.prototype.populateObjectFromResult=function(object,result){if(!result)return;for(var key in this.columnToPropertyMap){object[this.columnToPropertyMap[key]]=result[key]}};Dao.prototype.setValueInObject=function(object,columnName,value){var propertyName=object.columnToPropertyMap[columnName];if(!propertyName){throw new Error("Unsupported column name: "+columnName)}object[propertyName]=value};Dao.prototype.getValueFromObject=function(object,columnName){var propertyName=object.columnIndexToPropertyMap[columnName];if(!propertyName){throw new Error("Unsupported column name: "+columnName)}return object[property]};Dao.prototype.isTableExists=function(callback){this.connection.get("SELECT name FROM sqlite_master WHERE type='table' AND name=?",[this.tableName],function(err,results){if(!results){return callback(new Error("Table "+this.tableName+" does not exist"),false)}return callback(err,results)})};Dao.prototype.queryForIdObject=function(id,callback){var whereString=this.buildPkWhereWithValue(id);var whereArgs=this.buildPkWhereArgsWithValue(id);var query=sqliteQueryBuilder.buildQuery(false,this.tableName,undefined,whereString);this.connection.get(query,whereArgs,function(err,result){if(err)return callback(err);if(!result)return callback();var object=this.createObject();this.populateObjectFromResult(object,result);callback(err,object)}.bind(this))};Dao.prototype.queryForAll=function(callback){var query=sqliteQueryBuilder.buildQuery(false,this.tableName);this.connection.all(query,callback)};Dao.prototype.queryForEach=function(rowCallback,callback){var query=sqliteQueryBuilder.buildQuery(false,this.tableName);this.connection.each(query,rowCallback,callback)};Dao.prototype.queryForFieldValues=function(fieldValues,rowCallback,callback){var whereString=this.buildWhereWithFields(fieldValues);var whereArgs=this.buildWhereArgsWithValues(fieldValues);var query=sqliteQueryBuilder.buildQuery(false,this.tableName,undefined,whereString);this.connection.each(query,whereArgs,rowCallback,callback)};Dao.prototype.queryWhereWithArgsDistinct=function(where,whereArgs,rowCallback,doneCallback){var query=sqliteQueryBuilder.buildQuery(true,this.tableName,undefined,where,undefined,undefined,undefined,undefined);this.connection.each(query,whereArgs,rowCallback,doneCallback)};Dao.prototype.queryWhereWithArgs=function(where,whereArgs,rowCallback,doneCallback){this.queryWhere(where,whereArgs,undefined,undefined,undefined,undefined,rowCallback,doneCallback)};Dao.prototype.queryWhere=function(where,whereArgs,groupBy,having,orderBy,limit,rowCallback,doneCallback){var query=sqliteQueryBuilder.buildQuery(false,this.tableName,undefined,where,groupBy,having,orderBy,limit);this.connection.each(query,whereArgs,rowCallback,doneCallback)};Dao.prototype.buildPkWhereWithValue=function(idValue){return this.buildWhereWithFieldAndValue(this.idColumns[0],idValue)};Dao.prototype.buildPkWhereArgsWithValue=function(idValue){return this.buildWhereArgsWithValue(idValue)};Dao.prototype.buildPkWhereWithValues=function(idValuesArray){};Dao.prototype.buildPkWhereArgsWithValues=function(idValuesArray){};Dao.prototype.buildWhereWithFields=function(fields){return this.buildWhereWithFieldsAndOperation(fields,"and")};Dao.prototype.buildWhereWithFieldsAndOperation=function(fields,operation){var whereString="";for(var i=0;i<fields.columns.length;i++){var column=fields.columns[i];if(i){whereString+=" "+operation+" "}whereString+=this.buildWhereWithFieldAndValue(column,fields.getValue(column))}return whereString};Dao.prototype.buildWhereArgsWithValue=function(value){var args=[];if(value!==undefined||value!==null){args.push(value)}return args};Dao.prototype.buildWhereArgsWithValueArray=function(values){var args=[];for(var i=0;i<values.length;i++){var value=values[i];if(value!==undefined&&value!==null){args.push(value)}}return args.count?null:args};Dao.prototype.buildWhereArgsWithValues=function(values){var args=[];for(var i=0;i<values.columns.length;i++){var column=values.columns[i];var value=values.getValue(column);if(value!==undefined&&value!==null){args.push(value)}}return args.count?null:args};Dao.prototype.buildWhereWithFieldAndValue=function(field,value){return this.buildWhereWithFieldAndValueAndOperation(field,value,"=")};Dao.prototype.buildWhereWithFieldAndValueAndOperation=function(field,value,operation){var whereString=""+field+" ";if(value===undefined||value===null){whereString+="is null"}else{whereString+=operation+" ?"}return whereString};Dao.prototype.queryForEqWithFieldAndValue=function(field,value,callback1,callback2){this.queryForEqWithField(field,value,undefined,undefined,undefined,callback1,callback2)};Dao.prototype.queryForEqWithField=function(field,value,groupBy,having,orderBy,callback1,callback2){var whereString=this.buildWhereWithFieldAndValue(field,value);var whereArgs=this.buildWhereArgsWithValue(value);var query=sqliteQueryBuilder.buildQuery(false,this.tableName,undefined,whereString);if(callback2){this.connection.each(query,whereArgs,callback1,callback2)}else{this.connection.all(query,whereArgs,callback1)}};Dao.prototype.initializeColumnIndex=function(){this.columnIndex={};for(var i=0;i<this.columns.length;i++){this.columnIndex[this.columns[i]]=i}};Dao.prototype.getId=function(object){return this.getValueFromObjectWithColumnName(object,this.idColumns[0])};Dao.prototype.getValueFromObjectWithColumnName=function(object,column){return this.getValueFromObject(object,this.columnIndex[column])};Dao.prototype.minOfColumn=function(column,where,whereArgs,callback){this.connection.minOfColumn(this.tableName,column,where,whereArgs,callback)};Dao.prototype.maxOfColumn=function(column,where,whereArgs,callback){this.connection.maxOfColumn(this.tableName,column,where,whereArgs,callback)};module.exports=Dao},{"../db/sqliteQueryBuilder":"/data/github/geopackage-node/lib/db/sqliteQueryBuilder.js"}],"/data/github/geopackage-node/lib/db/GeoPackageConnection.js":[function(require,module,exports){(function(process){var GeoPackageConnection=function(filePath,callback){if(typeof process!=="undefined"&&process.version){this.adapterCreator=require("./sqliteAdapter")}else{this.adapterCreator=require("./sqljsAdapter")}if(filePath){this.adapterCreator.createAdapter(filePath,function(err,adapter){this.adapter=adapter;callback(err,this)}.bind(this))}else{callback(null,this)}};GeoPackageConnection.prototype.getDBConnection=function(){return this.adapter.db};GeoPackageConnection.prototype.setDBConnection=function(db){this.adapter=this.adapterCreator.createAdapterFromDb(db)};GeoPackageConnection.prototype.get=function(sql,params,callback){this.adapter.get(sql,params,callback)};GeoPackageConnection.prototype.prepare=function(){this.adapter.prepare(arguments)};GeoPackageConnection.prototype.all=function(sql,params,callback){if(typeof params==="function"){callback=params;params=[]}this.adapter.all(sql,params,callback)};GeoPackageConnection.prototype.each=function(sql,params,eachCallback,doneCallback){if(typeof params==="function"){doneCallback=eachCallback;eachCallback=params;params=[]}if(!doneCallback)doneCallback=function(){};this.adapter.each(sql,params,eachCallback,doneCallback)};GeoPackageConnection.prototype.minOfColumn=function(table,column,where,whereArgs,callback){var minStatement="select min("+column+") as min from "+table;if(where){minStatement+=" ";if(where.indexOf("where")){where="where "+where}minStatement+=where}this.adapter.get(minStatement,whereArgs,function(err,result){if(err||!result)return callback(err);callback(err,result.min)})};GeoPackageConnection.prototype.maxOfColumn=function(table,column,where,whereArgs,callback){var maxStatement="select max("+column+") as max from "+table;if(where){maxStatement+=" ";if(where.indexOf("where")){where="where "+where}maxStatement+=where}this.adapter.get(maxStatement,whereArgs,function(err,result){if(err||!result)return callback(err);callback(err,result.max)})};module.exports=GeoPackageConnection;GeoPackageConnection.connect=function(filePath,callback){new GeoPackageConnection(filePath,callback)};GeoPackageConnection.connectWithDatabase=function(db,callback){new GeoPackageConnection(undefined,function(err,connection){connection.setDBConnection(db);callback(err,connection)})}}).call(this,require("_process"))},{"./sqliteAdapter":"/data/github/geopackage-node/lib/db/sqliteAdapter.js","./sqljsAdapter":"/data/github/geopackage-node/lib/db/sqljsAdapter.js",_process:"/data/github/geopackage-node/node_modules/browserify/node_modules/process/browser.js"}],"/data/github/geopackage-node/lib/db/dataTypes.js":[function(require,module,exports){module.exports.GPKG_DT_BOOLEAN_NAME="BOOLEAN";module.exports.GPKG_DT_TINYINT_NAME="TINYINT";module.exports.GPKG_DT_SMALLINT_NAME="SMALLINT";module.exports.GPKG_DT_MEDIUMINT_NAME="MEDIUMINT";module.exports.GPKG_DT_INT_NAME="INT";module.exports.GPKG_DT_INTEGER_NAME="INTEGER";module.exports.GPKG_DT_FLOAT_NAME="FLOAT";module.exports.GPKG_DT_DOUBLE_NAME="DOUBLE";module.exports.GPKG_DT_REAL_NAME="REAL";module.exports.GPKG_DT_TEXT_NAME="TEXT";module.exports.GPKG_DT_BLOB_NAME="BLOB";module.exports.GPKG_DT_DATE_NAME="DATE";module.exports.GPKG_DT_DATETIME_NAME="DATETIME";module.exports.GPKG_DT_GEOMETRY_NAME="GEOMETRY";module.exports.GPKGDataType={};module.exports.GPKGDataType[module.exports.GPKG_DT_BOOLEAN_NAME]=0;module.exports.GPKGDataType[module.exports.GPKG_DT_TINYINT_NAME]=1;module.exports.GPKGDataType[module.exports.GPKG_DT_SMALLINT_NAME]=2;module.exports.GPKGDataType[module.exports.GPKG_DT_MEDIUMINT_NAME]=3;module.exports.GPKGDataType[module.exports.GPKG_DT_INT_NAME]=4;module.exports.GPKGDataType[module.exports.GPKG_DT_INTEGER_NAME]=5;module.exports.GPKGDataType[module.exports.GPKG_DT_FLOAT_NAME]=6;module.exports.GPKGDataType[module.exports.GPKG_DT_DOUBLE_NAME]=7;module.exports.GPKGDataType[module.exports.GPKG_DT_REAL_NAME]=8;module.exports.GPKGDataType[module.exports.GPKG_DT_TEXT_NAME]=9;module.exports.GPKGDataType[module.exports.GPKG_DT_BLOB_NAME]=10;module.exports.GPKGDataType[module.exports.GPKG_DT_DATE_NAME]=11;module.exports.GPKGDataType[module.exports.GPKG_DT_DATETIME_NAME]=12;module.exports.GPKGDataType[module.exports.GPKG_DT_GEOMETRY_NAME]=13;module.exports.GPKGDataType.GPKG_DT_BOOLEAN=0;module.exports.GPKGDataType.GPKG_DT_TINYINT=1;module.exports.GPKGDataType.GPKG_DT_SMALLINT=2;module.exports.GPKGDataType.GPKG_DT_MEDIUMINT=3;module.exports.GPKGDataType.GPKG_DT_INT=4;module.exports.GPKGDataType.GPKG_DT_INTEGER=5;module.exports.GPKGDataType.GPKG_DT_FLOAT=6;module.exports.GPKGDataType.GPKG_DT_DOUBLE=7;module.exports.GPKGDataType.GPKG_DT_REAL=8;module.exports.GPKGDataType.GPKG_DT_TEXT=9;module.exports.GPKGDataType.GPKG_DT_BLOB=10;module.exports.GPKGDataType.GPKG_DT_DATE=11;module.exports.GPKGDataType.GPKG_DT_DATETIME=12;module.exports.GPKGDataType.GPKG_DT_GEOMETRY=13;module.exports.name=function(dataType){var name=undefined;switch(dataType){case module.exports.GPKGDataType.GPKG_DT_BOOLEAN:name=module.exports.GPKG_DT_BOOLEAN_NAME;break;case module.exports.GPKGDataType.GPKG_DT_TINYINT:name=module.exports.GPKG_DT_TINYINT_NAME;break;case module.exports.GPKGDataType.GPKG_DT_SMALLINT:name=module.exports.GPKG_DT_SMALLINT_NAME;break;case module.exports.GPKGDataType.GPKG_DT_MEDIUMINT:name=module.exports.GPKG_DT_MEDIUMINT_NAME;break;case module.exports.GPKGDataType.GPKG_DT_INT:name=module.exports.GPKG_DT_INT_NAME;break;case module.exports.GPKGDataType.GPKG_DT_INTEGER:name=module.exports.GPKG_DT_INTEGER_NAME;break;case module.exports.GPKGDataType.GPKG_DT_FLOAT:name=module.exports.GPKG_DT_FLOAT_NAME;break;case module.exports.GPKGDataType.GPKG_DT_DOUBLE:name=module.exports.GPKG_DT_DOUBLE_NAME;break;case module.exports.GPKGDataType.GPKG_DT_REAL:name=module.exports.GPKG_DT_REAL_NAME;break;case module.exports.GPKGDataType.GPKG_DT_TEXT:name=module.exports.GPKG_DT_TEXT_NAME;break;case module.exports.GPKGDataType.GPKG_DT_BLOB:name=module.exports.GPKG_DT_BLOB_NAME;break;case module.exports.GPKGDataType.GPKG_DT_DATE:name=module.exports.GPKG_DT_DATE_NAME;break;case module.exports.GPKGDataType.GPKG_DT_DATETIME:name=module.exports.GPKG_DT_DATETIME_NAME;break;case module.exports.GPKGDataType.GPKG_DT_GEOMETRY:name=module.exports.GPKG_DT_GEOMETRY_NAME;break}return name};module.exports.fromName=function(name){var value=-1;if(name){value=module.exports.GPKGDataType[name]}return value}},{}],"/data/github/geopackage-node/lib/db/geoPackageConnection.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/lib/db/GeoPackageConnection.js"][0].apply(exports,arguments)},{"./sqliteAdapter":"/data/github/geopackage-node/lib/db/sqliteAdapter.js","./sqljsAdapter":"/data/github/geopackage-node/lib/db/sqljsAdapter.js",_process:"/data/github/geopackage-node/node_modules/browserify/node_modules/process/browser.js"}],"/data/github/geopackage-node/lib/db/sqliteAdapter.js":[function(require,module,exports){module.exports.createAdapter=function(filePath,callback){var sqlite3=require("sqlite3").verbose();var db=new sqlite3.Database(filePath,function(err){if(err){console.log("cannot open "+filePath);return callback(err)}var adapter=new Adapter(db);callback(err,adapter)})};module.exports.createAdapterFromDb=function(db){return new Adapter(db)};function Adapter(db){this.db=db}Adapter.prototype.getDBConnection=function(){return this.db};Adapter.prototype.get=function(sql,params,callback){this.db.get.apply(this.db,arguments)};Adapter.prototype.prepare=function(){this.db.prepare.apply(this.db,arguments)};Adapter.prototype.all=function(sql,params,callback){this.db.all.apply(this.db,arguments)};Adapter.prototype.each=function(sql,params,eachCallback,doneCallback){this.db.each.apply(this.db,arguments)}},{sqlite3:false}],"/data/github/geopackage-node/lib/db/sqliteQueryBuilder.js":[function(require,module,exports){module.exports.buildQuery=function(distinct,tables,columns,where,groupBy,having,orderBy,limit){var query="";if(isEmpty(groupBy)&&!isEmpty(having)){
  2. throw new Error("Illegal Arguments: having clauses require a groupBy clause")}query+="select ";if(distinct){query+="distinct "}if(columns&&columns.length){query=appendColumnsToString(columns,query)}else{query+="* "}query+="from "+tables;query=appendClauseToString(query," where ",where);query=appendClauseToString(query," group by ",groupBy);query=appendClauseToString(query," having ",having);query=appendClauseToString(query," order by ",orderBy);query=appendClauseToString(query," limit ",limit);return query};function appendClauseToString(string,name,clause){if(clause){string+=name+clause}return string}function appendColumnsToString(columns,string){string+=columns[0];for(var i=1;i<columns.length;i++){string+=", "+column}string+=" ";return string}function isEmpty(string){return!string||string.length===0}},{}],"/data/github/geopackage-node/lib/db/sqljsAdapter.js":[function(require,module,exports){module.exports.createAdapter=function(filePath,callback){var fs=require("fs");var sqljs=require("sql.js");fs.readFile(filePath,function(err,fileBuffer){var db=new sqljs.Database(fileBuffer);var adapter=new Adapter(db);callback(err,adapter)})};module.exports.createAdapterFromDb=function(db){return new Adapter(db)};function Adapter(db){this.db=db}Adapter.prototype.getDBConnection=function(){return this.db};Adapter.prototype.get=function(sql,params,callback){if(typeof params==="function"){callback=params;params=[]}var statement=this.db.prepare(sql);statement.bind(params);var hasResult=statement.step();var row;if(hasResult){row=statement.getAsObject()}statement.free();callback(null,row)};Adapter.prototype.prepare=function(){this.db.prepare.apply(this.db,arguments)};Adapter.prototype.all=function(sql,params,callback){var rows=[];this.each(sql,params,function(err,row){rows.push(row)},function(err){callback(err,rows)})};Adapter.prototype.each=function(sql,params,eachCallback,doneCallback){if(typeof params==="function"){doneCallback=eachCallback;eachCallback=params;params=[]}rowCallback=function(row){if(eachCallback){eachCallback(null,row)}};this.db.each(sql,params,rowCallback,doneCallback)}},{fs:"/data/github/geopackage-node/node_modules/browserify/lib/_empty.js","sql.js":"/data/github/geopackage-node/node_modules/sql.js/js/sql.js"}],"/data/github/geopackage-node/lib/features/columns/index.js":[function(require,module,exports){var Dao=require("../../dao/dao"),SpatialReferenceSystemDao=require("../../core/srs").SpatialReferenceSystemDao,ContentsDao=require("../../core/contents").ContentsDao,Contents=require("../../core/contents").Contents;var util=require("util");var GeometryColumns=function(){this.tableName;this.columnName;this.geometryTypeName;this.srs;this.srsId;this.z;this.m};var GeometryColumnsDao=function(connection){Dao.call(this,connection);this.initializeColumnIndex()};util.inherits(GeometryColumnsDao,Dao);GeometryColumnsDao.prototype.createObject=function(){return new GeometryColumns};GeometryColumnsDao.prototype.queryForTableName=function(tableName,callback){this.queryForEqWithFieldAndValue(GeometryColumnsDao.COLUMN_TABLE_NAME,tableName,function(err,results){if(results&&results.length){var gc=this.createObject();this.populateObjectFromResult(gc,results[0]);return callback(err,gc)}return callback(err)}.bind(this))};GeometryColumnsDao.prototype.getFeatureTables=function(callback){var tableNames=[];this.connection.each("select "+GeometryColumnsDao.COLUMN_TABLE_NAME+" from "+this.tableName,function(err,result){if(err)return callback(err);tableNames.push(result[GeometryColumnsDao.COLUMN_TABLE_NAME])},function(err,numberOfResults){callback(err,tableNames)})};GeometryColumnsDao.prototype.getSrs=function(geometryColumns,callback){var dao=this.getSpatialReferenceSystemDao();return dao.queryForIdObject(geometryColumns.srsId,callback)};GeometryColumnsDao.prototype.getContents=function(geometryColumns,callback){var dao=this.getContentsDao();return dao.queryForIdObject(geometryColumns.tableName,callback)};GeometryColumnsDao.prototype.getSpatialReferenceSystemDao=function(){return new SpatialReferenceSystemDao(this.connection)};GeometryColumnsDao.prototype.getContentsDao=function(){return new ContentsDao(this.connection)};GeometryColumnsDao.prototype.getProjection=function(projectionObject,callback){this.getSrs(projectionObject,function(err,srs){var srsDao=this.getSpatialReferenceSystemDao();var projection=srsDao.getProjection(srs);callback(null,projection)}.bind(this))};GeometryColumnsDao.COLUMN_TABLE_NAME="table_name";GeometryColumnsDao.COLUMN_COLUMN_NAME="column_name";GeometryColumnsDao.COLUMN_ID_1=GeometryColumnsDao.COLUMN_TABLE_NAME;GeometryColumnsDao.COLUMN_ID_2=GeometryColumnsDao.COLUMN_COLUMN_NAME;GeometryColumnsDao.COLUMN_GEOMETRY_TYPE_NAME="geometry_type_name";GeometryColumnsDao.COLUMN_SRS_ID="srs_id";GeometryColumnsDao.COLUMN_Z="z";GeometryColumnsDao.COLUMN_M="m";GeometryColumnsDao.prototype.tableName="gpkg_geometry_columns";GeometryColumnsDao.prototype.idColumns=[GeometryColumnsDao.COLUMN_ID_1,GeometryColumnsDao.COLUMN_ID_2];GeometryColumnsDao.prototype.columns=[GeometryColumnsDao.COLUMN_TABLE_NAME,GeometryColumnsDao.COLUMN_COLUMN_NAME,GeometryColumnsDao.COLUMN_GEOMETRY_TYPE_NAME,GeometryColumnsDao.COLUMN_SRS_ID,GeometryColumnsDao.COLUMN_Z,GeometryColumnsDao.COLUMN_M];GeometryColumns.TABLE_NAME="tableName";GeometryColumns.COLUMN_NAME="columnName";GeometryColumns.GEOMETRY_TYPE_NAME="geometryTypeName";GeometryColumns.SRS_ID="srsId";GeometryColumns.Z="z";GeometryColumns.M="m";GeometryColumnsDao.prototype.columnToPropertyMap={};GeometryColumnsDao.prototype.columnToPropertyMap[GeometryColumnsDao.COLUMN_TABLE_NAME]=GeometryColumns.TABLE_NAME;GeometryColumnsDao.prototype.columnToPropertyMap[GeometryColumnsDao.COLUMN_COLUMN_NAME]=GeometryColumns.COLUMN_NAME;GeometryColumnsDao.prototype.columnToPropertyMap[GeometryColumnsDao.COLUMN_GEOMETRY_TYPE_NAME]=GeometryColumns.GEOMETRY_TYPE_NAME;GeometryColumnsDao.prototype.columnToPropertyMap[GeometryColumnsDao.COLUMN_SRS_ID]=GeometryColumns.SRS_ID;GeometryColumnsDao.prototype.columnToPropertyMap[GeometryColumnsDao.COLUMN_Z]=GeometryColumns.Z;GeometryColumnsDao.prototype.columnToPropertyMap[GeometryColumnsDao.COLUMN_M]=GeometryColumns.M;module.exports.GeometryColumnsDao=GeometryColumnsDao;module.exports.GeometryColumns=GeometryColumns},{"../../core/contents":"/data/github/geopackage-node/lib/core/contents/index.js","../../core/srs":"/data/github/geopackage-node/lib/core/srs/index.js","../../dao/dao":"/data/github/geopackage-node/lib/dao/dao.js",util:"/data/github/geopackage-node/node_modules/browserify/node_modules/util/util.js"}],"/data/github/geopackage-node/lib/features/user/featureColumn.js":[function(require,module,exports){var UserColumn=require("../../user/userColumn"),DataTypes=require("../../db/dataTypes");var util=require("util");var FeatureColumn=function(index,name,dataType,max,notNull,defaultValue,primaryKey,geometryType){UserColumn.call(this,index,name,dataType,max,notNull,defaultValue,primaryKey);this.geometryType=geometryType;if(!geometryType&&dataType===DataTypes.GPKG_DT_GEOMETRY){throw new Error("Data or Geometry Type is required to create column: "+name)}};util.inherits(FeatureColumn,UserColumn);FeatureColumn.createPrimaryKeyColumnWithIndexAndName=function(index,name){return new FeatureColumn(index,name,DataTypes.GPKG_DT_INTEGER,undefined,true,undefined,true,0)};FeatureColumn.createGeometryColumn=function(index,name,type,notNull,defaultValue){return new FeatureColumn(index,name,DataTypes.GPKG_DT_GEOMETRY,undefined,notNull,defaultValue,false,type)};FeatureColumn.createColumnWithIndex=function(index,name,type,notNull,defaultValue){return FeatureColumn.createColumnWithIndexAndMax(index,name,type,undefined,notNull,defaultValue)};FeatureColumn.createColumnWithIndexAndMax=function(index,name,type,max,notNull,defaultValue){return new FeatureColumn(index,name,type,max,notNull,defaultValue,false,0)};FeatureColumn.prototype.isGeometry=function(){return this.geometryType!==undefined};module.exports=FeatureColumn},{"../../db/dataTypes":"/data/github/geopackage-node/lib/db/dataTypes.js","../../user/userColumn":"/data/github/geopackage-node/lib/user/userColumn.js",util:"/data/github/geopackage-node/node_modules/browserify/node_modules/util/util.js"}],"/data/github/geopackage-node/lib/features/user/featureDao.js":[function(require,module,exports){var UserDao=require("../../user/UserDao"),GeometryColumnsDao=require("../columns").GeometryColumnsDao,FeatureRow=require("./featureRow");var util=require("util");var FeatureDao=function(db,table,geometryColumns,metadataDb){UserDao.call(this,db,table);this.geometryColumns=geometryColumns;this.metadataDb=metadataDb;var dao=this.getGeometryColumnsDao()};util.inherits(FeatureDao,UserDao);FeatureDao.prototype.createObject=function(){return this.newRow()};FeatureDao.prototype.getFeatureTable=function(){return this.table};FeatureDao.prototype.getFeatureRow=function(results){return this.getRow(results)};FeatureDao.prototype.newRowWithColumnTypes=function(columnTypes,values){return new FeatureRow(this.getFeatureTable(),columnTypes,values)};FeatureDao.prototype.newRow=function(){return new FeatureRow(this.getFeatureTable())};FeatureDao.prototype.getGeometryColumnName=function(){return this.geometryColumns.columnName};FeatureDao.prototype.getGeometryType=function(){return this.geometryColumns.getGeometryType()};FeatureDao.prototype.getGeometryColumnsDao=function(){return new GeometryColumnsDao(this.connection)};FeatureDao.prototype.getContentsDao=function(){return new ContentsDao(this.connection)};FeatureDao.prototype.getSrs=function(callback){this.getGeometryColumnsDao().getSrs(this.geometryColumns,callback)};FeatureDao.prototype.getBoundingBox=function(){return undefined};module.exports=FeatureDao},{"../../user/UserDao":"/data/github/geopackage-node/lib/user/UserDao.js","../columns":"/data/github/geopackage-node/lib/features/columns/index.js","./featureRow":"/data/github/geopackage-node/lib/features/user/featureRow.js",util:"/data/github/geopackage-node/node_modules/browserify/node_modules/util/util.js"}],"/data/github/geopackage-node/lib/features/user/featureRow.js":[function(require,module,exports){var UserRow=require("../../user/UserRow"),FeatureColumn=require("./featureColumn"),GeometryData=require("../../geom/geometryData");var util=require("util");var FeatureRow=function(featureTable,columnTypes,values){UserRow.call(this,featureTable,columnTypes,values);this.featureTable=featureTable};util.inherits(FeatureRow,UserRow);FeatureRow.prototype.getGeometryColumnIndex=function(){return this.featureTable.geometryIndex};FeatureRow.prototype.getGeometryColumn=function(){return this.featureTable.getGeometryColumn()};FeatureRow.prototype.getGeometry=function(){return this.getValueWithIndex(this.featureTable.geometryIndex)};FeatureRow.prototype.setGeometry=function(geometryData){};FeatureRow.prototype.toObjectValue=function(index,value){var objectValue=value;var column=this.getColumnWithIndex(index);if(column.isGeometry()&&value){objectValue=new GeometryData(value)}return objectValue};module.exports=FeatureRow},{"../../geom/geometryData":"/data/github/geopackage-node/lib/geom/geometryData.js","../../user/UserRow":"/data/github/geopackage-node/lib/user/UserRow.js","./featureColumn":"/data/github/geopackage-node/lib/features/user/featureColumn.js",util:"/data/github/geopackage-node/node_modules/browserify/node_modules/util/util.js"}],"/data/github/geopackage-node/lib/features/user/featureTable.js":[function(require,module,exports){var UserTable=require("../../user/userTable");var util=require("util");var FeatureTable=function(tableName,columns){UserTable.call(this,tableName,columns);var geometry=undefined;for(var i=0;i<columns.length;i++){var column=columns[i];if(column.isGeometry()){this.duplicateCheck(column.index,geometry,"GEOMETRY");geometry=column.index}}this.missingCheck(geometry,"GEOMETRY");this.geometryIndex=geometry};util.inherits(FeatureTable,UserTable);FeatureTable.prototype.getGeometryColumn=function(){return this.getColumnWithIndex(this.geometryIndex)};module.exports=FeatureTable},{"../../user/userTable":"/data/github/geopackage-node/lib/user/userTable.js",util:"/data/github/geopackage-node/node_modules/browserify/node_modules/util/util.js"}],"/data/github/geopackage-node/lib/features/user/featureTableReader.js":[function(require,module,exports){var UserTableReader=require("../../user/UserTableReader"),FeatureTable=require("./featureTable"),FeatureColumn=require("./featureColumn"),GeometryColumnsDao=require("../columns").GeometryColumnsDao,DataTypes=require("../../db/dataTypes"),wkb=require("../../wkb");var util=require("util");var FeatureTableReader=function(tableNameOrGeometryColumns){if(util.isString(tableNameOrGeometryColumns)){UserTableReader.call(this,tableNameOrGeometryColumns)}else{UserTableReader.call(this,tableNameOrGeometryColumns.tableName);this.geometryColumns=tableNameOrGeometryColumns}};util.inherits(FeatureTableReader,UserTableReader);FeatureTableReader.prototype.readFeatureTable=function(db,callback){if(!this.geometryColumns){new GeometryColumnsDao(db).queryForTableName(this.tableName,function(err,geometryColumns){this.geometryColumns=geometryColumns;this.readTable(db,callback)}.bind(this))}else{this.readTable(db,callback)}};FeatureTableReader.prototype.createTableWithNameAndColumns=function(tableName,columns){return new FeatureTable(tableName,columns)};FeatureTableReader.prototype.createColumnWithResults=function(results,index,name,type,max,notNull,defaultValueIndex,primaryKey){var geometry=name===this.geometryColumns.columnName;var geometryType=undefined;var dataType=undefined;if(geometry){geometryType=wkb.fromName(type)}else{dataType=DataTypes.fromName(type)}var defaultValue=undefined;if(defaultValueIndex){}var column=new FeatureColumn(index,name,dataType,max,notNull,defaultValue,primaryKey,geometryType);return column};module.exports=FeatureTableReader},{"../../db/dataTypes":"/data/github/geopackage-node/lib/db/dataTypes.js","../../user/UserTableReader":"/data/github/geopackage-node/lib/user/UserTableReader.js","../../wkb":"/data/github/geopackage-node/lib/wkb/index.js","../columns":"/data/github/geopackage-node/lib/features/columns/index.js","./featureColumn":"/data/github/geopackage-node/lib/features/user/featureColumn.js","./featureTable":"/data/github/geopackage-node/lib/features/user/featureTable.js",util:"/data/github/geopackage-node/node_modules/browserify/node_modules/util/util.js"}],"/data/github/geopackage-node/lib/geoPackage.js":[function(require,module,exports){var SpatialReferenceSystemDao=require("./core/srs").SpatialReferenceSystemDao,GeometryColumnsDao=require("./features/columns").GeometryColumnsDao,FeatureDao=require("./features/user/featureDao"),FeatureTableReader=require("./features/user/featureTableReader"),ContentsDao=require("./core/contents").ContentsDao,TileMatrixSetDao=require("./tiles/matrixset").TileMatrixSetDao,TileMatrixSet=require("./tiles/matrixset").TileMatrixSet,TileMatrixDao=require("./tiles/matrix").TileMatrixDao,TileMatrix=require("./tiles/matrix").TileMatrix,TileTableReader=require("./tiles/user/tileTableReader"),TileDao=require("./tiles/user/tileDao");var async=require("async");var GeoPackage=function(name,path,connection){this.name=name;this.path=path;this.connection=connection};GeoPackage.prototype.getDatabase=function(){return this.connection};GeoPackage.prototype.getPath=function(){return this.path};GeoPackage.prototype.getName=function(){return this.name};GeoPackage.prototype.getSpatialReferenceSystemDao=function(){return new SpatialReferenceSystemDao(this.connection)};GeoPackage.prototype.getContentsDao=function(){return new ContentsDao(this.connection)};GeoPackage.prototype.getTileMatrixSetDao=function(){return new TileMatrixSetDao(this.connection)};GeoPackage.prototype.getTileMatrixDao=function(){return new TileMatrixDao(this.connection)};GeoPackage.prototype.createDao=function(){};GeoPackage.prototype.getSrs=function(srsId){};GeoPackage.prototype.getTileDaoWithTileMatrixSet=function(tileMatrixSet,callback){var tileMatrices=[];var tileMatrixDao=this.getTileMatrixDao();tileMatrixDao.queryForEqWithField(TileMatrixDao.COLUMN_TABLE_NAME,tileMatrixSet.tableName,null,null,TileMatrixDao.COLUMN_ZOOM_LEVEL+" ASC, "+TileMatrixDao.COLUMN_PIXEL_X_SIZE+" DESC, "+TileMatrixDao.COLUMN_PIXEL_Y_SIZE+" DESC",function(err,results){async.eachSeries(results,function(result,callback){var tm=new TileMatrix;tileMatrixDao.populateObjectFromResult(tm,result);tileMatrices.push(tm);callback()},function(err){var tableReader=new TileTableReader(tileMatrixSet);tableReader.readTileTable(this.connection,function(err,tileTable){new TileDao(this.connection,tileTable,tileMatrixSet,tileMatrices,function(err,tileDao){callback(err,tileDao)})}.bind(this))}.bind(this))}.bind(this))};GeoPackage.prototype.getTileDaoWithContents=function(contents,callback){};GeoPackage.prototype.getTileDaoWithTableName=function(tableName,callback){var tms=this.getTileMatrixSetDao();tms.queryForEqWithFieldAndValue(TileMatrixSetDao.COLUMN_TABLE_NAME,tableName,function(err,results){if(results.length>1){return callback(new Error("Unexpected state. More than one Tile Matrix Set matched for table name: "+tableName+", count: "+results.length))}var tileMatrixSet=new TileMatrixSet;tms.populateObjectFromResult(tileMatrixSet,results[0]);this.getTileDaoWithTileMatrixSet(tileMatrixSet,callback)}.bind(this))};GeoPackage.prototype.getTileTables=function(callback){var tms=this.getTileMatrixSetDao();tms.isTableExists(function(err,exists){if(!exists){return callback(null,[])}tms.getTileTables(callback)})};GeoPackage.prototype.getFeatureTables=function(callback){var gcd=this.getGeometryColumnsDao();gcd.isTableExists(function(err,exists){if(!exists){return callback(null,[])}gcd.getFeatureTables(callback)})};GeoPackage.prototype.getGeometryColumnsDao=function(){return new GeometryColumnsDao(this.connection)};GeoPackage.prototype.getFeatureDaoWithGeometryColumns=function(geometryColumns,callback){if(!geometryColumns){return callback(new Error("Non null Geometry Columns is required to create Feature DAO"))}var tableReader=new FeatureTableReader(geometryColumns);var featureTable=tableReader.readFeatureTable(this.connection,function(err,featureTable){if(err){return callback(err)}var dao=new FeatureDao(this.connection,featureTable,geometryColumns,this.metadataDb);callback(null,dao)}.bind(this))};GeoPackage.prototype.getFeatureDaoWithContents=function(contents,callback){};GeoPackage.prototype.getFeatureDaoWithTableName=function(tableName,callback){var self=this;var dao=this.getGeometryColumnsDao();var geometryColumns=dao.queryForTableName(tableName,function(err,geometryColumns){if(!geometryColumns){return callback(new Error("No Feature Table exists for table name: "+tableName))}self.getFeatureDaoWithGeometryColumns(geometryColumns,callback)})};module.exports=GeoPackage},{"./core/contents":"/data/github/geopackage-node/lib/core/contents/index.js","./core/srs":"/data/github/geopackage-node/lib/core/srs/index.js","./features/columns":"/data/github/geopackage-node/lib/features/columns/index.js","./features/user/featureDao":"/data/github/geopackage-node/lib/features/user/featureDao.js","./features/user/featureTableReader":"/data/github/geopackage-node/lib/features/user/featureTableReader.js","./tiles/matrix":"/data/github/geopackage-node/lib/tiles/matrix/index.js","./tiles/matrixset":"/data/github/geopackage-node/lib/tiles/matrixset/index.js","./tiles/user/tileDao":"/data/github/geopackage-node/lib/tiles/user/tileDao.js","./tiles/user/tileTableReader":"/data/github/geopackage-node/lib/tiles/user/tileTableReader.js",async:"/data/github/geopackage-node/node_modules/async/lib/async.js"}],"/data/github/geopackage-node/lib/geoPackageConstants.js":[function(require,module,exports){exports.GEOPACKAGE_EXTENSION="gpkg";exports.GEOPACKAGE_EXTENDED_EXTENSION="gpkx";exports.APPLICATION_ID="GP10";exports.GEOPACKAGE_EXTENSION_AUTHOR=exports.GEOPACKAGE_EXTENSION;exports.GEOMETRY_EXTENSION_PREFIX="geom";exports.GEOPACKAGE_GEOMETRY_MAGIC_NUMBER="GP";exports.GEOPACKAGE_GEOMETRY_VERSION_1=0;exports.SQLITE_HEADER_PREFIX="SQLite format 3"},{}],"/data/github/geopackage-node/lib/geoPackageManager.js":[function(require,module,exports){var async=require("async"),path=require("path"),GeoPackage=require("./geoPackage"),GeoPackageValidate=require("./validate/geoPackageValidate"),GeoPackageConnection=require("./db/geoPackageConnection");module.exports.open=function(filePath,callback){var error=GeoPackageValidate.validateGeoPackageExtension(filePath);if(error)return callback(error);var results={};async.waterfall([function(callback){GeoPackageConnection.connect(filePath,function(err,connection){if(err){console.log("cannot open "+filePath);return callback(err)}results.connection=connection;callback(err,results)})},function(results,callback){results.geoPackage=new GeoPackage(path.basename(filePath),filePath,results.connection);callback(null,results)},function(results,callback){GeoPackageValidate.hasMinimumTables(results.geoPackage,function(err){callback(err,results)})}],function(err,results){if(err){return callback(err)}callback(err,results.geoPackage)})}},{"./db/geoPackageConnection":"/data/github/geopackage-node/lib/db/geoPackageConnection.js","./geoPackage":"/data/github/geopackage-node/lib/geoPackage.js","./validate/geoPackageValidate":"/data/github/geopackage-node/lib/validate/geoPackageValidate.js",async:"/data/github/geopackage-node/node_modules/async/lib/async.js",path:"/data/github/geopackage-node/node_modules/browserify/node_modules/path-browserify/index.js"}],"/data/github/geopackage-node/lib/geom/geometryData.js":[function(require,module,exports){(function(Buffer){var GeoPackageConstants=require("../geoPackageConstants");var wkx=require("wkx");var BIG_ENDIAN=0;var LITTLE_ENDIAN=1;var GeometryData=function(buffer){this.empty=true;this.byteOrder=BIG_ENDIAN;this.fromData(buffer)};module.exports=GeometryData;GeometryData.prototype.fromData=function(buffer){this.buffer=buffer;if(buffer instanceof Uint8Array){this.buffer=buffer=new Buffer(buffer)}var magicString=buffer.toString("ascii",0,2);if(magicString!==GeoPackageConstants.GEOPACKAGE_GEOMETRY_MAGIC_NUMBER){throw new Error("Unexpected GeoPackage Geometry magic number: "+magicString+", Expected: "+GeoPackageConstants.GEOPACKAGE_GEOMETRY_MAGIC_NUMBER)}var version=buffer.readUInt8(2);if(version!==GeoPackageConstants.GEOPACKAGE_GEOMETRY_VERSION_1){throw new Error("Unexpected GeoPackage Geometry version "+version+", Expected: "+GeoPackageConstants.GEOPACKAGE_GEOMETRY_VERSION_1)}var flags=buffer.readUInt8(3);var envelopeIndicator=this.readFlags(flags);this.srsId=buffer[this.byteOrder?"readUInt32LE":"readUInt32BE"](4);this.envelope=this.readEnvelope(envelopeIndicator,buffer);var offset=this.envelope.offset;var wkbBuffer=buffer.slice(offset);this.geometry=wkx.Geometry.parse(wkbBuffer)};GeometryData.prototype.readFlags=function(flagsInt){var reserved7=flagsInt>>7&1;var reserved6=flagsInt>>6&1;if(reserved7!==0||reserved6!==0){throw new Error("Unexpected GeoPackage Geometry flags. Flag bit 7 and 6 should both be 0, 7="+reserved7+", 6="+reserved6)}var binaryType=flagsInt>>5&1;this.extended=binaryType==1;var emptyValue=flagsInt>>4&1;this.empty=emptyValue==1;var envelopeIndicator=flagsInt>>1&7;if(envelopeIndicator>4){throw new Error("Unexpected GeoPackage Geometry flags. Envelope contents indicator must be between 0 and 4. Actual: "+envelopeIndicator)}var byteOrderValue=flagsInt&1;this.byteOrder=byteOrderValue;return envelopeIndicator};GeometryData.prototype.readEnvelope=function(envelopeIndicator,buffer){var readDoubleMethod="readDouble"+(this.byteOrder?"LE":"BE");var envelopeByteOffset=8;reads=0;var envelope={};if(envelopeIndicator<=0){envelope.offset=envelopeByteOffset;return envelope}envelope.minX=buffer[readDoubleMethod](envelopeByteOffset+8*reads++);envelope.maxX=buffer[readDoubleMethod](envelopeByteOffset+8*reads++);envelope.minY=buffer[readDoubleMethod](envelopeByteOffset+8*reads++);envelope.maxY=buffer[readDoubleMethod](envelopeByteOffset+8*reads++);envelope.hasZ=false;var minZ=undefined;var maxZ=undefined;envelope.hasM=false;var minM=undefined;var maxM=undefined;if(envelopeIndicator===2||envelopeIndicator===4){envelope.hasZ=true;envelope.minZ=buffer[readDoubleMethod](envelopeByteOffset+8*reads++);envelope.maxZ=buffer[readDoubleMethod](envelopeByteOffset+8*reads++)}if(envelopeIndicator===3||envelopeIndicator===4){envelope.hasM=true;envelope.minM=buffer[readDoubleMethod](envelopeByteOffset+8*reads++);envelope.maxM=buffer[readDoubleMethod](envelopeByteOffset+8*reads++)}envelope.offset=envelopeByteOffset+8*reads;return envelope}}).call(this,require("buffer").Buffer)},{"../geoPackageConstants":"/data/github/geopackage-node/lib/geoPackageConstants.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js",wkx:"/data/github/geopackage-node/node_modules/wkx/lib/wkx.js"}],"/data/github/geopackage-node/lib/geopackage.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/lib/geoPackage.js"][0].apply(exports,arguments)},{"./core/contents":"/data/github/geopackage-node/lib/core/contents/index.js","./core/srs":"/data/github/geopackage-node/lib/core/srs/index.js","./features/columns":"/data/github/geopackage-node/lib/features/columns/index.js","./features/user/featureDao":"/data/github/geopackage-node/lib/features/user/featureDao.js","./features/user/featureTableReader":"/data/github/geopackage-node/lib/features/user/featureTableReader.js","./tiles/matrix":"/data/github/geopackage-node/lib/tiles/matrix/index.js","./tiles/matrixset":"/data/github/geopackage-node/lib/tiles/matrixset/index.js","./tiles/user/tileDao":"/data/github/geopackage-node/lib/tiles/user/tileDao.js","./tiles/user/tileTableReader":"/data/github/geopackage-node/lib/tiles/user/tileTableReader.js",async:"/data/github/geopackage-node/node_modules/async/lib/async.js"}],"/data/github/geopackage-node/lib/tiles/creator/index.js":[function(require,module,exports){(function(process){var fileType=require("file-type");module.exports.initialize=function(width,height,callback){if(typeof process!=="undefined"&&process.version){new LwipTileCreator(width,height,callback)}else{new CanvasTileCreator(width,height,callback)}};function CanvasTileCreator(width,height,callback){this.canvas=document.createElement("canvas");this.canvas.width=width;this.canvas.height=height;this.ctx=this.canvas.getContext("2d");callback(null,this)}CanvasTileCreator.prototype.addTile=function(tileData,xOffset,yOffset,callback){var type=fileType(tileData);var base64Data=btoa(String.fromCharCode.apply(null,tileData));var image=document.createElement("img");image.onload=function(){this.ctx.drawImage(image,xOffset,yOffset);callback()}.bind(this);image.src="data:"+type.mime+";base64,"+base64Data};CanvasTileCreator.prototype.getCompleteTile=function(format,callback){callback(null,this.canvas.toDataURL())};function LwipTileCreator(width,height,callback){this.lwip=require("lwip");this.width=width;this.height=height;this.lwip.create(this.width*3,this.height*3,function(err,image){this.image=image;callback(null,this)}.bind(this))}LwipTileCreator.prototype.addTile=function(tileData,xOffset,yOffset,callback){var type=fileType(tileData);this.lwip.open(tileData,type.ext,function(err,tile){this.image.paste(xOffset+this.width,yOffset+this.height,tile,callback)}.bind(this))};LwipTileCreator.prototype.getCompleteTile=function(format,callback){this.image.writeFile("/tmp/lwip.png",function(err){this.image.batch().crop(this.width,this.height).toBuffer(format,callback)}.bind(this))}}).call(this,require("_process"))},{_process:"/data/github/geopackage-node/node_modules/browserify/node_modules/process/browser.js","file-type":"/data/github/geopackage-node/node_modules/file-type/index.js",lwip:false}],"/data/github/geopackage-node/lib/tiles/matrix/index.js":[function(require,module,exports){var Dao=require("../../dao/dao"),TileMatrixSetDao=require("../matrixset").TileMatrixSetDao;var util=require("util");var TileMatrix=function(){this.tableName;this.zoomLevel;this.matrixWidth;this.matrixHeight;this.tileWidth;this.tileHeight;this.pixelXSize;this.pixelYSize};var TileMatrixDao=function(connection){Dao.call(this,connection)};util.inherits(TileMatrixDao,Dao);TileMatrixDao.prototype.createObject=function(){return new TileMatrix};TileMatrixDao.prototype.getContents=function(tileMatrix,callback){var dao=this.getContentsDao();return dao.queryForIdObject(tileMatrix.tableName,callback)};TileMatrixDao.prototype.getContentsDao=function(){var ContentsDao=require("../../core/contents").ContentsDao;return new ContentsDao(this.connection)};TileMatrixDao.prototype.getTileMatrixSet=function(tileMatrix,callback){var dao=this.getTileMatrixSetDao();return dao.queryForIdObject(tileMatrix.tableName,callback)};TileMatrixDao.prototype.getTileMatrixSetDao=function(){return new TileMatrixSetDao(this.connection)};TileMatrixDao.TABLE_NAME="gpkg_tile_matrix";TileMatrixDao.COLUMN_PK1="table_name";TileMatrixDao.COLUMN_PK2="zoom_level";TileMatrixDao.COLUMN_TABLE_NAME="table_name";TileMatrixDao.COLUMN_ZOOM_LEVEL="zoom_level";TileMatrixDao.COLUMN_MATRIX_WIDTH="matrix_width";TileMatrixDao.COLUMN_MATRIX_HEIGHT="matrix_height";TileMatrixDao.COLUMN_TILE_WIDTH="tile_width";TileMatrixDao.COLUMN_TILE_HEIGHT="tile_height";TileMatrixDao.COLUMN_PIXEL_X_SIZE="pixel_x_size";TileMatrixDao.COLUMN_PIXEL_Y_SIZE="pixel_y_size";TileMatrix.TABLE_NAME="tableName";TileMatrix.ZOOM_LEVEL="zoomLevel";TileMatrix.MATRIX_WIDTH="matrixWidth";TileMatrix.MATRIX_HEIGHT="matrixHeight";TileMatrix.TILE_WIDTH="tileWidth";TileMatrix.TILE_HEIGHT="tileHeight";TileMatrix.PIXEL_X_SIZE="pixelXSize";TileMatrix.PIXEL_Y_SIZE="pixelYSize";TileMatrixDao.prototype.tableName="gpkg_tile_matrix";TileMatrixDao.prototype.idColumns=[TileMatrixDao.COLUMN_PK1,TileMatrixDao.COLUMN_PK2];TileMatrixDao.prototype.columns=[TileMatrixDao.COLUMN_TABLE_NAME,TileMatrixDao.COLUMN_ZOOM_LEVEL,TileMatrixDao.COLUMN_MATRIX_WIDTH,TileMatrixDao.COLUMN_MATRIX_HEIGHT,TileMatrixDao.COLUMN_TILE_WIDTH,TileMatrixDao.COLUMN_TILE_HEIGHT,TileMatrixDao.COLUMN_PIXEL_X_SIZE,TileMatrixDao.COLUMN_PIXEL_Y_SIZE];TileMatrixDao.prototype.columnToPropertyMap={};TileMatrixDao.prototype.columnToPropertyMap[TileMatrixDao.COLUMN_TABLE_NAME]=TileMatrix.TABLE_NAME;TileMatrixDao.prototype.columnToPropertyMap[TileMatrixDao.COLUMN_ZOOM_LEVEL]=TileMatrix.ZOOM_LEVEL;TileMatrixDao.prototype.columnToPropertyMap[TileMatrixDao.COLUMN_MATRIX_WIDTH]=TileMatrix.MATRIX_WIDTH;TileMatrixDao.prototype.columnToPropertyMap[TileMatrixDao.COLUMN_MATRIX_HEIGHT]=TileMatrix.MATRIX_HEIGHT;TileMatrixDao.prototype.columnToPropertyMap[TileMatrixDao.COLUMN_TILE_WIDTH]=TileMatrix.TILE_WIDTH;TileMatrixDao.prototype.columnToPropertyMap[TileMatrixDao.COLUMN_TILE_HEIGHT]=TileMatrix.TILE_HEIGHT;TileMatrixDao.prototype.columnToPropertyMap[TileMatrixDao.COLUMN_PIXEL_X_SIZE]=TileMatrix.PIXEL_X_SIZE;TileMatrixDao.prototype.columnToPropertyMap[TileMatrixDao.COLUMN_PIXEL_Y_SIZE]=TileMatrix.PIXEL_Y_SIZE;TileMatrixDao.columnIndexToPropertyMap=[TileMatrix.TABLE_NAME,TileMatrix.ZOOM_LEVEL,TileMatrix.MATRIX_WIDTH,TileMatrix.MATRIX_HEIGHT,TileMatrix.TILE_WIDTH,TileMatrix.TILE_HEIGHT,TileMatrix.PIXEL_X_SIZE,TileMatrix.PIXEL_Y_SIZE];module.exports.TileMatrixDao=TileMatrixDao;module.exports.TileMatrix=TileMatrix},{"../../core/contents":"/data/github/geopackage-node/lib/core/contents/index.js","../../dao/dao":"/data/github/geopackage-node/lib/dao/dao.js","../matrixset":"/data/github/geopackage-node/lib/tiles/matrixset/index.js",util:"/data/github/geopackage-node/node_modules/browserify/node_modules/util/util.js"}],"/data/github/geopackage-node/lib/tiles/matrixset/index.js":[function(require,module,exports){var Dao=require("../../dao/dao"),BoundingBox=require("../../boundingBox"),SpatialReferenceSystemDao=require("../../core/srs").SpatialReferenceSystemDao;var util=require("util");var TileMatrixSet=function(){this.tableName;this.srsId;this.minX;this.minY;this.maxX;
  3. this.maxY};TileMatrixSet.prototype.setBoundingBox=function(boundingBox){this.minX=boundingBox.minLongitude;this.maxX=boundingBox.maxLongitude;this.minY=boundingBox.minLatitude;this.maxY=boundingBox.maxLatitude};TileMatrixSet.prototype.getBoundingBox=function(){return new BoundingBox(this.minX,this.maxX,this.minY,this.maxY)};var TileMatrixSetDao=function(connection){Dao.call(this,connection);this.connection=connection};util.inherits(TileMatrixSetDao,Dao);TileMatrixSetDao.prototype.createObject=function(){return new TileMatrixSet};TileMatrixSetDao.prototype.getTileTables=function(callback){var tableNames=[];this.connection.each("select "+TileMatrixSetDao.COLUMN_TABLE_NAME+" from "+TileMatrixSetDao.TABLE_NAME,function(err,result){if(err)return callback(err);tableNames.push(result[TileMatrixSetDao.COLUMN_TABLE_NAME])},function(err,numberOfResults){callback(err,tableNames)})};TileMatrixSetDao.prototype.getProjection=function(tileMatrixSet,callback){this.getSrs(tileMatrixSet,function(err,srs){if(err)return callback(err);if(!srs)return callback();var srsDao=this.getSpatialReferenceSystemDao();callback(null,srsDao.getProjection(srs))}.bind(this))};TileMatrixSetDao.prototype.getSrs=function(tileMatrixSet,callback){var dao=this.getSpatialReferenceSystemDao();dao.queryForIdObject(tileMatrixSet.srsId,callback)};TileMatrixSetDao.prototype.getContents=function(tileMatrixSet,callback){var dao=this.getContentsDao();dao.queryForIdObject(tileMatrixSet.tableName,callback)};TileMatrixSetDao.prototype.getSpatialReferenceSystemDao=function(){return new SpatialReferenceSystemDao(this.connection)};TileMatrixSetDao.prototype.getContentsDao=function(){var ContentsDao=require("../../core/contents").ContentsDao;return new ContentsDao(this.connection)};TileMatrixSet.TABLE_NAME="tableName";TileMatrixSet.MIN_X="minX";TileMatrixSet.MIN_Y="minY";TileMatrixSet.MAX_X="maxX";TileMatrixSet.MAX_Y="maxY";TileMatrixSet.SRS_ID="srsId";TileMatrixSetDao.TABLE_NAME="gpkg_tile_matrix_set";TileMatrixSetDao.COLUMN_PK="table_name";TileMatrixSetDao.COLUMN_TABLE_NAME="table_name";TileMatrixSetDao.COLUMN_SRS_ID="srs_id";TileMatrixSetDao.COLUMN_MIN_X="min_x";TileMatrixSetDao.COLUMN_MIN_Y="min_y";TileMatrixSetDao.COLUMN_MAX_X="max_x";TileMatrixSetDao.COLUMN_MAX_Y="max_y";TileMatrixSetDao.prototype.tableName="gpkg_tile_matrix_set";TileMatrixSetDao.prototype.idColumns=[TileMatrixSetDao.COLUMN_PK];TileMatrixSetDao.prototype.columns=[TileMatrixSetDao.COLUMN_TABLE_NAME,TileMatrixSetDao.COLUMN_SRS_ID,TileMatrixSetDao.COLUMN_MIN_X,TileMatrixSetDao.COLUMN_MIN_Y,TileMatrixSetDao.COLUMN_MAX_X,TileMatrixSetDao.COLUMN_MAX_Y];TileMatrixSetDao.prototype.columnToPropertyMap={};TileMatrixSetDao.prototype.columnToPropertyMap[TileMatrixSetDao.COLUMN_TABLE_NAME]=TileMatrixSet.TABLE_NAME;TileMatrixSetDao.prototype.columnToPropertyMap[TileMatrixSetDao.COLUMN_SRS_ID]=TileMatrixSet.SRS_ID;TileMatrixSetDao.prototype.columnToPropertyMap[TileMatrixSetDao.COLUMN_MIN_X]=TileMatrixSet.MIN_X;TileMatrixSetDao.prototype.columnToPropertyMap[TileMatrixSetDao.COLUMN_MIN_Y]=TileMatrixSet.MIN_Y;TileMatrixSetDao.prototype.columnToPropertyMap[TileMatrixSetDao.COLUMN_MAX_X]=TileMatrixSet.MAX_X;TileMatrixSetDao.prototype.columnToPropertyMap[TileMatrixSetDao.COLUMN_MAX_Y]=TileMatrixSet.MAX_Y;TileMatrixSetDao.columnIndexToPropertyMap=[TileMatrixSet.TABLE_NAME,TileMatrixSet.SRS_ID,TileMatrixSet.MIN_X,TileMatrixSet.MIN_Y,TileMatrixSet.MAX_X,TileMatrixSet.MAX_Y];module.exports.TileMatrixSetDao=TileMatrixSetDao;module.exports.TileMatrixSet=TileMatrixSet},{"../../boundingBox":"/data/github/geopackage-node/lib/boundingBox.js","../../core/contents":"/data/github/geopackage-node/lib/core/contents/index.js","../../core/srs":"/data/github/geopackage-node/lib/core/srs/index.js","../../dao/dao":"/data/github/geopackage-node/lib/dao/dao.js",util:"/data/github/geopackage-node/node_modules/browserify/node_modules/util/util.js"}],"/data/github/geopackage-node/lib/tiles/retriever/index.js":[function(require,module,exports){var TileMatrixSetDao=require("../matrixset").TileMatrixSetDao,TileBoundingBoxUtils=require("../tileBoundingBoxUtils"),TileCreator=require("../creator");var async=require("async");var GeoPackageTileRetriever=function(tileDao,width,height){this.tileDao=tileDao;this.tileDao.adjustTileMatrixLengths();this.width=width;this.height=height};module.exports=GeoPackageTileRetriever;GeoPackageTileRetriever.prototype.getWebMercatorBoundingBox=function(callback){if(this.setWebMercatorBoundingBox){return callback(null,this.setWebMercatorBoundingBox)}else{var tileMatrixSetDao=new TileMatrixSetDao(this.tileDao.connection);var tileMatrixSet=this.tileDao.tileMatrixSet;tileMatrixSetDao.getSrs(tileMatrixSet,function(err,srs){this.setProjectionBoundingBox=tileMatrixSet.getBoundingBox();this.setWebMercatorBoundingBox=this.setProjectionBoundingBox.projectBoundingBox("EPSG:3857","EPSG:3857");callback(null,this.setWebMercatorBoundingBox)}.bind(this))}};GeoPackageTileRetriever.prototype.hasTile=function(x,y,zoom,callback){var webMercatorBoundingBox=TileBoundingBoxUtils.getWebMercatorBoundingBoxFromXYZ(x,y,zoom);this.getTileMatrixWithWebMercatorBoundingBox(webMercatorBoundingBox,function(err,tileMatrix){var tileResults=[];this.retrieveTileResults(webMercatorBoundingBox,tileMatrix,function(err,result){tileResults.push(result)},function(err){if(tileResults&&tileResults.length>0){return callback(err,true)}callback(err,false)})}.bind(this))};GeoPackageTileRetriever.prototype.getTile=function(x,y,zoom,callback){var webMercatorBoundingBox=TileBoundingBoxUtils.getWebMercatorBoundingBoxFromXYZ(x,y,zoom);this.getTileWithBounds(webMercatorBoundingBox,zoom,callback)};GeoPackageTileRetriever.prototype.getTileWithWgs84Bounds=function(wgs84BoundingBox,zoom,callback){var webMercatorBoundingBox=wgs84BoundingBox.projectBoundingBox("EPSG:4326","EPSG:3857");this.getTileWithBounds(webMercatorBoundingBox,zoom,callback)};GeoPackageTileRetriever.prototype.getTileWithBounds=function(webMercatorBoundingBox,zoom,callback){var tiles=[];this.getTileMatrixWithWebMercatorBoundingBox(webMercatorBoundingBox,zoom,function(err,tileMatrix){if(err||!tileMatrix)return callback();var tileWidth=tileMatrix.tileWidth;var tileHeight=tileMatrix.tileHeight;TileCreator.initialize(this.width||tileWidth,this.height||tileHeight,function(err,creator){this.retrieveTileResults(webMercatorBoundingBox,tileMatrix,function(err,tile){this.getWebMercatorBoundingBox(function(err,box){var tileWebMercatorBoundingBox=TileBoundingBoxUtils.getWebMercatorBoundingBox(box,tileMatrix,tile.getTileColumn(),tile.getTileRow());var overlap=TileBoundingBoxUtils.overlapWithBoundingBox(webMercatorBoundingBox,tileWebMercatorBoundingBox);if(overlap){var xOffset=Math.round(TileBoundingBoxUtils.getXPixelOffset(this.width||tileWidth,webMercatorBoundingBox,tileWebMercatorBoundingBox.minLongitude));var yOffset=Math.round(TileBoundingBoxUtils.getYPixelOffset(this.height||tileHeight,webMercatorBoundingBox,tileWebMercatorBoundingBox.maxLatitude));if(xOffset<=-(this.height||tileHeight)||xOffset>=(this.height||tileHeight)||yOffset<=-(this.width||tileWidth)||yOffset>=(this.width||tileWidth)){}else{tiles.push({data:tile.getTileData(),xOffset:xOffset,yOffset:yOffset})}}}.bind(this))}.bind(this),function(err){async.eachSeries(tiles,function(tile,callback){creator.addTile(tile.data,tile.xOffset,tile.yOffset,callback)},function(err){creator.getCompleteTile("png",callback)})})}.bind(this))}.bind(this))};GeoPackageTileRetriever.prototype.getTileMatrixWithWebMercatorBoundingBox=function(webMercatorBoundingBox,zoom,callback){if(!callback){callback=zoom;zoom=undefined}var tileMatrix;this.getWebMercatorBoundingBox(function(err,setWebMercatorBoundingBox){var overlap=TileBoundingBoxUtils.overlapWithBoundingBox(webMercatorBoundingBox,setWebMercatorBoundingBox);if(overlap){var distance=webMercatorBoundingBox.maxLongitude-webMercatorBoundingBox.minLongitude;var zoomLevel=zoom;if(zoom===undefined||zoom===null){zoomLevel=this.tileDao.getZoomLevelWithLength(distance)}if(zoomLevel!==undefined&&zoomLevel!==null){tileMatrix=this.tileDao.getTileMatrixWithZoomLevel(zoomLevel)}}callback(null,tileMatrix)}.bind(this))};GeoPackageTileRetriever.prototype.retrieveTileResults=function(webMercatorBoundingBox,tileMatrix,tileCallback,doneCallback){if(tileMatrix){this.getWebMercatorBoundingBox(function(err,setWebMercatorBoundingBox){var tileGrid=TileBoundingBoxUtils.getTileGridWithWebMercatorTotalBoundingBox(setWebMercatorBoundingBox,tileMatrix.matrixWidth,tileMatrix.matrixHeight,webMercatorBoundingBox);this.tileDao.queryByTileGrid(tileGrid,tileMatrix.zoomLevel,tileCallback,doneCallback)}.bind(this))}else{doneCallback()}}},{"../creator":"/data/github/geopackage-node/lib/tiles/creator/index.js","../matrixset":"/data/github/geopackage-node/lib/tiles/matrixset/index.js","../tileBoundingBoxUtils":"/data/github/geopackage-node/lib/tiles/tileBoundingBoxUtils.js",async:"/data/github/geopackage-node/node_modules/async/lib/async.js"}],"/data/github/geopackage-node/lib/tiles/tileBoundingBoxUtils.js":[function(require,module,exports){var BoundingBox=require("../boundingBox"),TileGrid=require("./tileGrid");var proj4=require("proj4");var WEB_MERCATOR_HALF_WORLD_WIDTH=20037508.342789244;module.exports.overlapWithBoundingBox=function(boundingBox,boundingBox2){var minLongitude=Math.max(boundingBox.minLongitude,boundingBox2.minLongitude);var maxLongitude=Math.min(boundingBox.maxLongitude,boundingBox2.maxLongitude);var minLatitude=Math.max(boundingBox.minLatitude,boundingBox2.minLatitude);var maxLatitude=Math.min(boundingBox.maxLatitude,boundingBox2.maxLatitude);var overlap;if(minLongitude<maxLongitude&&minLatitude<maxLatitude){overlap=new BoundingBox(minLongitude,maxLongitude,minLatitude,maxLatitude)}return overlap};module.exports.getXPixelOffset=function(width,boundingBox,longitude){var boxWidth=boundingBox.maxLongitude-boundingBox.minLongitude;var offset=longitude-boundingBox.minLongitude;var percentage=offset/boxWidth;var pixel=percentage*width;return pixel};module.exports.getYPixelOffset=function(height,boundingBox,latitude){var boxHeight=boundingBox.maxLatitude-boundingBox.minLatitude;var offset=boundingBox.maxLatitude-latitude;var percentage=offset/boxHeight;var pixel=percentage*height;return pixel};module.exports.getWebMercatorBoundingBoxFromXYZ=function(x,y,zoom){var tilesPerSide=module.exports.tilesPerSideWithZoom(zoom);var tileSize=module.exports.tileSizeWithTilesPerSide(tilesPerSide);var minLon=-1*WEB_MERCATOR_HALF_WORLD_WIDTH+x*tileSize;var maxLon=-1*WEB_MERCATOR_HALF_WORLD_WIDTH+(x+1)*tileSize;var minLat=WEB_MERCATOR_HALF_WORLD_WIDTH-(y+1)*tileSize;var maxLat=WEB_MERCATOR_HALF_WORLD_WIDTH-y*tileSize;var box=new BoundingBox(minLon,maxLon,minLat,maxLat);return box};module.exports.tileSizeWithTilesPerSide=function(tilesPerSide){return 2*WEB_MERCATOR_HALF_WORLD_WIDTH/tilesPerSide};module.exports.tilesPerSideWithZoom=function(zoom){return Math.pow(2,zoom)};module.exports.getTileGridWithWebMercatorTotalBoundingBox=function(webMercatorTotalBox,matrixWidth,matrixHeight,webMercatorBoundingBox){var minColumn=module.exports.getTileColumnWithWebMercatorTotalBoundingBox(webMercatorTotalBox,matrixWidth,webMercatorBoundingBox.minLongitude);var maxColumn=module.exports.getTileColumnWithWebMercatorTotalBoundingBox(webMercatorTotalBox,matrixWidth,webMercatorBoundingBox.maxLongitude,true);if(minColumn<matrixWidth&&maxColumn>=0){if(minColumn<0){minColumn=0}if(maxColumn>=matrixWidth){maxColumn=matrixWidth-1}}var maxRow=module.exports.getTileRowWithWebMercatorTotalBoundingBox(webMercatorTotalBox,matrixHeight,webMercatorBoundingBox.minLatitude,true);var minRow=module.exports.getTileRowWithWebMercatorTotalBoundingBox(webMercatorTotalBox,matrixHeight,webMercatorBoundingBox.maxLatitude);if(minRow<matrixHeight&&maxRow>=0){if(minRow<0){minRow=0}if(maxRow>=matrixHeight){maxRow=matrixHeight-1}}var tileGrid=new TileGrid(minColumn,maxColumn,minRow,maxRow);return tileGrid};module.exports.getTileColumnWithWebMercatorTotalBoundingBox=function(webMercatorTotalBox,matrixWidth,longitude,max){var minX=webMercatorTotalBox.minLongitude;var maxX=webMercatorTotalBox.maxLongitude;var tileId;if(longitude<minX){tileId=-1}else if(longitude>=maxX){tileId=matrixWidth}else{var matrixWidthMeters=maxX-minX;var tileWidth=matrixWidthMeters/matrixWidth;var tileIdDouble=(longitude-minX)/tileWidth;tileId=parseInt(tileIdDouble);if(max){if(tileIdDouble===tileId){tileId--}}}return tileId};module.exports.getTileRowWithWebMercatorTotalBoundingBox=function(webMercatorTotalBox,matrixHeight,latitude,max){var minY=webMercatorTotalBox.minLatitude;var maxY=webMercatorTotalBox.maxLatitude;var tileId;if(latitude<minY){tileId=matrixHeight}else if(latitude>=maxY){tileId=-1}else{var matrixHeightMeters=maxY-minY;var tileHeight=matrixHeightMeters/matrixHeight;var tileIdDouble=(maxY-latitude)/tileHeight;tileId=parseInt(tileIdDouble);if(max){if(tileIdDouble===tileId){tileId--}}}return tileId};module.exports.getWebMercatorBoundingBox=function(webMercatorTotalBox,tileMatrix,tileColumn,tileRow){var tileMatrixWidth=tileMatrix.matrixWidth;var tileMatrixHeight=tileMatrix.matrixHeight;var tileGrid=new TileGrid(tileColumn,tileColumn,tileRow,tileRow);var matrixMinX=webMercatorTotalBox.minLongitude;var matrixMaxX=webMercatorTotalBox.maxLongitude;var matrixWidth=matrixMaxX-matrixMinX;var tileWidth=matrixWidth/tileMatrixWidth;var minLon=matrixMinX+tileWidth*tileGrid.minX;var maxLon=minLon+tileWidth*(tileGrid.maxX+1-tileGrid.minX);var matrixMinY=webMercatorTotalBox.minLatitude;var matrixMaxY=webMercatorTotalBox.maxLatitude;var matrixHeight=matrixMaxY-matrixMinY;var tileHeight=matrixHeight/tileMatrixHeight;var maxLat=matrixMaxY-tileHeight*tileGrid.minY;var minLat=maxLat-tileHeight*(tileGrid.maxY+1-tileGrid.minY);var boundingBox=new BoundingBox(minLon,maxLon,minLat,maxLat);return boundingBox};module.exports.getWebMercatorBoundingBoxWithWebMercatorTotalBoundingBox=function(webMercatorTotalBox,tileMatrixWidth,tileMatrixHeight,tileGrid){var matrixMinX=webMercatorTotalBox.minLongitude;var matrixMaxX=webMercatorTotalBox.maxLongitude;var matrixWidth=matrixMaxX-matrixMinX;var tileWidth=matrixWidth/tileMatrixWidth;var minLon=matrixMinX+tileWidth*tileGrid.minX;var maxLon=minLon+tileWidth*(tileGrid.maxX+1-tileGrid.minX);var matrixMinY=webMercatorTotalBox.minLatitude;var matrixMaxY=webMercatorTotalBox.maxLatitude;var matrixHeight=matrixMaxY-matrixMinY;var tileHeight=matrixHeight/tileMatrixHeight;var maxLat=matrixMaxY-tileHeight*tileGrid.minY;var minLat=maxLat-tileHeight*(tileGrid.maxY+1-tileGrid.minY);return new BoundingBox(minLon,maxLon,minLat,maxLat)}},{"../boundingBox":"/data/github/geopackage-node/lib/boundingBox.js","./tileGrid":"/data/github/geopackage-node/lib/tiles/tileGrid.js",proj4:"/data/github/geopackage-node/node_modules/proj4/lib/index.js"}],"/data/github/geopackage-node/lib/tiles/tileGrid.js":[function(require,module,exports){var TileGrid=function(minX,maxX,minY,maxY){this.minX=minX;this.maxX=maxX;this.minY=minY;this.maxY=maxY};TileGrid.prototype.count=function(){return(this.maxX+1-this.minX)*(this.maxY+1-this.minY)};TileGrid.prototype.equals=function(tileGrid){if(!tileGrid)return false;return this.minX===tileGrid.minX&&this.maxX===tileGrid.maxX&&this.minY===tileGrid.minY&&this.maxY===tileGrid.maxY};module.exports=TileGrid},{}],"/data/github/geopackage-node/lib/tiles/user/tileColumn.js":[function(require,module,exports){var UserColumn=require("../../user/userColumn"),DataTypes=require("../../db/dataTypes"),TileTable=require("./tileTable");var util=require("util");var TileColumn=function(index,name,dataType,max,notNull,defaultValue,primaryKey){UserColumn.call(this,index,name,dataType,max,notNull,defaultValue,primaryKey);if(dataType===DataTypes.GPKG_DT_GEOMETRY){throw new Error("Data Type is required to create column: "+name)}};util.inherits(TileColumn,UserColumn);TileColumn.createIdColumn=function(index){return new TileColumn(index,TileTable.COLUMN_ID,DataTypes.GPKG_DT_INTEGER,null,false,null,true)};TileColumn.createZoomLevelColumn=function(index){return new TileColumn(index,TileTable.COLUMN_ZOOM_LEVEL,DataTypes.GPKG_DT_INTEGER,null,true,null,false)};TileColumn.createTileColumnColumn=function(index){return new TileColumn(index,TileTable.COLUMN_TILE_COLUMN,DataTypes.GPKG_DT_INTEGER,null,true,null,false)};TileColumn.createTileRowColumn=function(index){return new TileColumn(index,TileTable.COLUMN_TILE_ROW,DataTypes.GPKG_DT_INTEGER,null,true,null,false)};TileColumn.createTileDataColumn=function(index){return new TileColumn(index,TileTable.COLUMN_TILE_DATA,DataTypes.GPKG_DT_BLOB,null,true,null,false)};module.exports=TileColumn},{"../../db/dataTypes":"/data/github/geopackage-node/lib/db/dataTypes.js","../../user/userColumn":"/data/github/geopackage-node/lib/user/userColumn.js","./tileTable":"/data/github/geopackage-node/lib/tiles/user/tileTable.js",util:"/data/github/geopackage-node/node_modules/browserify/node_modules/util/util.js"}],"/data/github/geopackage-node/lib/tiles/user/tileDao.js":[function(require,module,exports){var UserDao=require("../../user/UserDao"),TileGrid=require("../tileGrid"),TileRow=require("./tileRow"),TileMatrixSetDao=require("../matrixset").TileMatrixSetDao,BoundingBoxUtils=require("../tileBoundingBoxUtils"),ColumnValues=require("../../dao/columnValues"),TileTable=require("./tileTable"),TileDaoUtils=require("./tileDaoUtils");var util=require("util"),proj4=require("proj4"),async=require("async");var TileDao=function(connection,table,tileMatrixSet,tileMatrices,callback){UserDao.call(this,connection,table);this.connection=connection;this.tileMatrixSet=tileMatrixSet;this.tileMatrices=tileMatrices;this.zoomLevelToTileMatrix=[];this.widths=[];this.heights=[];if(tileMatrices.length===0){this.minZoom=0;this.maxZoom=0}else{this.minZoom=this.tileMatrices[0].zoomLevel;this.maxZoom=this.tileMatrices[this.tileMatrices.length-1].zoomLevel}for(var i=this.tileMatrices.length-1;i>=0;i--){var tileMatrix=this.tileMatrices[i];this.zoomLevelToTileMatrix[tileMatrix.zoomLevel]=tileMatrix}this.initialize(callback)};util.inherits(TileDao,UserDao);TileDao.prototype.initialize=function(callback){var tileMatrixSetDao=this.getTileMatrixSetDao();tileMatrixSetDao.getSrs(this.tileMatrixSet,function(err,srs){if(srs.definition&&srs.definition!=="undefined"){this.projection=proj4(srs.definition)}else{this.projection=proj4(srs.organization+":"+srs.organizationCoordsysId)}for(var i=this.tileMatrices.length-1;i>=0;i--){var tileMatrix=this.tileMatrices[i];var width=tileMatrix.pixelXSize*parseInt(tileMatrix.tileWidth);var height=tileMatrix.pixelYSize*parseInt(tileMatrix.tileHeight);if(this.projection.to_meter){width=this.projection.to_meter*tileMatrix.pixelXSize*parseInt(tileMatrix.tileWidth);height=this.projection.to_meter*tileMatrix.pixelYSize*parseInt(tileMatrix.tileHeight)}this.widths.push(width);this.heights.push(height)}callback(null,this)}.bind(this))};TileDao.prototype.createObject=function(){throw new Error("not implemented")};TileDao.prototype.getBoundingBoxWithZoomLevel=function(zoomLevel,callback){var boundingBox;var tileMatrix=this.getTileMatrixWithZoomLevel(zoomLevel);if(tileMatrix){this.queryForTileGridWithZoomLevel(zoomLevel,function(err,tileGrid){if(tileGrid){var matrixSetBoundingBox=this.getBoundingBox();boundingBox=BoundingBoxUtils.getWebMercatorBoundingBoxWithWebMercatorTotalBoundingBox(matrixSetBoundingBox,tileMatrix.matrixWidth,tileMatrix.matrixHeight,tileGrid)}callback(err,boundingBox)}.bind(this))}else{callback(null,boundingBox)}};TileDao.prototype.getBoundingBox=function(){return this.tileMatrixSet.getBoundingBox()};TileDao.prototype.queryForTileGridWithZoomLevel=function(zoomLevel,callback){var where=this.buildWhereWithFieldAndValue(TileTable.COLUMN_ZOOM_LEVEL,zoomLevel);var whereArgs=this.buildWhereArgsWithValue(zoomLevel);async.series({minX:function(callback){this.minOfColumn(TileTable.COLUMN_TILE_COLUMN,where,whereArgs,callback)}.bind(this),maxX:function(callback){this.maxOfColumn(TileTable.COLUMN_TILE_COLUMN,where,whereArgs,callback)}.bind(this),minY:function(callback){this.minOfColumn(TileTable.COLUMN_TILE_ROW,where,whereArgs,callback)}.bind(this),maxY:function(callback){this.maxOfColumn(TileTable.COLUMN_TILE_ROW,where,whereArgs,callback)}.bind(this)},function(err,results){if(err)return callback(err);var tileGrid;if(results.minX!=null&&results.minY!=null&&results.maxX!=null&&results.maxY!=null){tileGrid=new TileGrid(results.minX,results.maxX,results.minY,results.maxY)}callback(err,tileGrid)})};TileDao.prototype.getTileGridWithZoomLevel=function(zoomLevel){var tileGrid;var tileMatrix=this.getTileMatrixWithZoomLevel(zoomLevel);if(tileMatrix){tileGrid=new TileGrid(0,parseInt(tileMatrix.matrixWidth)-1,0,parseInt(tileMatrix.matrixHeight)-1)}return tileGrid};TileDao.prototype.getTileTable=function(){return this.table};TileDao.prototype.getTileRow=function(result){return this.getRow(result)};TileDao.prototype.newRowWithColumnTypes=function(columnTypes,values){return new TileRow(this.getTileTable(),columnTypes,values)};TileDao.prototype.newRow=function(){return new TileRow(this.getTileTable())};TileDao.prototype.adjustTileMatrixLengths=function(){TileDaoUtils.adjustTileMatrixLengths(this.tileMatrixSet,this.tileMatrices)};TileDao.prototype.getTileMatrixWithZoomLevel=function(zoomLevel){return this.zoomLevelToTileMatrix[zoomLevel]};TileDao.prototype.queryForTile=function(column,row,zoomLevel,callback){var fieldValues=new ColumnValues;fieldValues.addColumn(TileTable.COLUMN_TILE_COLUMN,column);fieldValues.addColumn(TileTable.COLUMN_TILE_ROW,row);fieldValues.addColumn(TileTable.COLUMN_ZOOM_LEVEL,zoomLevel);this.queryForFieldValues(fieldValues,function(err,result){var tileRow=this.getTileRow(result);callback(err,tileRow)}.bind(this))};TileDao.prototype.queryForTilesWithZoomLevel=function(zoomLevel,tileCallback,doneCallback){this.queryForEqWithFieldAndValue(TileTable.COLUMN_ZOOM_LEVEL,zoomLevel,function(err,result){if(!tileCallback)return;if(err||!result)return tileCallback(err);tileCallback(err,this.getTileRow(result))}.bind(this),doneCallback)};TileDao.prototype.queryForTilesDescending=function(zoomLevel,tileCallback,doneCallback){this.queryForEqWithField(TileTable.COLUMN_ZOOM_LEVEL,zoomLevel,undefined,undefined,TileTable.COLUMN_TILE_COLUMN+" DESC, "+TileTable.COLUMN_TILE_ROW+", DESC",function(err,result){if(!tileCallback)return;if(err||!result)return tileCallback(err);tileCallback(err,this.getTileRow(result))}.bind(this),doneCallback)};TileDao.prototype.queryForTilesInColumn=function(column,zoomLevel,tileCallback,doneCallback){var fieldValues=new ColumnValues;fieldValues.addColumn(TileTable.COLUMN_TILE_COLUMN,column);fieldValues.addColumn(TileTable.COLUMN_ZOOM_LEVEL,zoomLevel);this.queryForFieldValues(fieldValues,function(err,result){if(!tileCallback)return;if(err||!result)return tileCallback(err);tileCallback(err,this.getTileRow(result))}.bind(this),doneCallback)};TileDao.prototype.queryForTilesInRow=function(row,zoomLevel,tileCallback,doneCallback){var fieldValues=new ColumnValues;fieldValues.addColumn(TileTable.COLUMN_TILE_ROW,row);fieldValues.addColumn(TileTable.COLUMN_ZOOM_LEVEL,zoomLevel);this.queryForFieldValues(fieldValues,function(err,result){if(!tileCallback)return;if(err||!result)return tileCallback(err);tileCallback(err,this.getTileRow(result))}.bind(this),doneCallback)};TileDao.prototype.getZoomLevelWithLength=function(length){return TileDaoUtils.getZoomLevel(this.widths,this.heights,this.tileMatrices,length)};TileDao.prototype.queryByTileGrid=function(tileGrid,zoomLevel,tileCallback,doneCallback){if(!tileGrid)return doneCallback();var where="";where+=this.buildWhereWithFieldAndValue(TileTable.COLUMN_ZOOM_LEVEL,zoomLevel);where+=" and ";where+=this.buildWhereWithFieldAndValueAndOperation(TileTable.COLUMN_TILE_COLUMN,tileGrid.minX,">=");where+=" and ";where+=this.buildWhereWithFieldAndValueAndOperation(TileTable.COLUMN_TILE_COLUMN,tileGrid.maxX,"<=");where+=" and ";where+=this.buildWhereWithFieldAndValueAndOperation(TileTable.COLUMN_TILE_ROW,tileGrid.minY,">=");where+=" and ";where+=this.buildWhereWithFieldAndValueAndOperation(TileTable.COLUMN_TILE_ROW,tileGrid.maxY,"<=");var whereArgs=this.buildWhereArgsWithValueArray([zoomLevel,tileGrid.minX,tileGrid.maxX,tileGrid.minY,tileGrid.maxY]);this.queryWhereWithArgsDistinct(where,whereArgs,function(err,result){if(!tileCallback)return;if(err||!result)return tileCallback(err);tileCallback(err,this.getTileRow(result))}.bind(this),doneCallback)};TileDao.prototype.getTileMatrixSetDao=function(){return new TileMatrixSetDao(this.connection)};module.exports=TileDao},{"../../dao/columnValues":"/data/github/geopackage-node/lib/dao/columnValues.js","../../user/UserDao":"/data/github/geopackage-node/lib/user/UserDao.js","../matrixset":"/data/github/geopackage-node/lib/tiles/matrixset/index.js","../tileBoundingBoxUtils":"/data/github/geopackage-node/lib/tiles/tileBoundingBoxUtils.js","../tileGrid":"/data/github/geopackage-node/lib/tiles/tileGrid.js","./tileDaoUtils":"/data/github/geopackage-node/lib/tiles/user/tileDaoUtils.js","./tileRow":"/data/github/geopackage-node/lib/tiles/user/tileRow.js","./tileTable":"/data/github/geopackage-node/lib/tiles/user/tileTable.js",async:"/data/github/geopackage-node/node_modules/async/lib/async.js",proj4:"/data/github/geopackage-node/node_modules/proj4/lib/index.js",util:"/data/github/geopackage-node/node_modules/browserify/node_modules/util/util.js"}],"/data/github/geopackage-node/lib/tiles/user/tileDaoUtils.js":[function(require,module,exports){module.exports.adjustTileMatrixLengths=function(tileMatrixSet,tileMatrices){var tileMatrixWidth=tileMatrixSet.maxX-tileMatrixSet.minX;var tileMatrixHeight=tileMatrixSet.maxY-tileMatrixSet.minY;for(var i=0;i<tileMatrices.length;i++){var tileMatrix=tileMatrices[i];var tempMatrixWidth=parseInt(tileMatrixWidth/(tileMatrix.pixelXSize*parseInt(tileMatrix.tileWidth)));var tempMatrixHeight=parseInt(tileMatrixHeight/(tileMatrix.pixelYSize*parseInt(tileMatrix.tileHeight)));if(tempMatrixWidth>parseInt(tileMatrix.matrixWidth)){tileMatrix.matrixWidth=parseInt(tempMatrixWidth)}if(tempMatrixHeight>parseInt(tileMatrix.matrixHeight)){tileMatrix.matrixHeight=parseInt(tempMatrixHeight)}}};module.exports.getZoomLevel=function(widths,heights,tileMatrices,length){var zoomLevel;var widthIndex=widths.length;var heightIndex=heights.length;for(var i=0;i<widths.length;i++){if(widths[i]>length){widthIndex=i;break}}for(var i=0;i<heights.length;i++){if(heights[i]>length){heightIndex=i;break}}if(widthIndex===0){if(length<widths[widthIndex]*.51){widthIndex=-1}}else if(widthIndex===widths.length){if(length>=widths[widthIndex-1]/.51){widthIndex=-1}else{widthIndex=widthIndex-1}}else if(length-widths[widthIndex-1]<widths[widthIndex]-length){widthIndex--}if(heightIndex===0){if(length<widths[heightIndex]*.51){heightIndex=-1}}else if(heightIndex===heights.length){if(length>=heights[heightIndex-1]/.51){heightIndex=-1}else{heightIndex=heightIndex-1}}else if(length-heights[heightIndex-1]<heights[heightIndex]-length){heightIndex--}if(widthIndex>=0&&heightIndex>=0){var index=widthIndex<heightIndex?widthIndex:heightIndex;if(index>=0){var tileMatrix=tileMatrices[tileMatrices.length-index-1];zoomLevel=tileMatrix.zoomLevel}}return zoomLevel}},{}],"/data/github/geopackage-node/lib/tiles/user/tileRow.js":[function(require,module,exports){var UserRow=require("../../user/UserRow");var util=require("util");var TileRow=function(tileTable,columnTypes,values){UserRow.call(this,tileTable,columnTypes,values);this.tileTable=tileTable};util.inherits(TileRow,UserRow);TileRow.prototype.toObjectValue=function(value){return value};TileRow.prototype.toDatabaseValue=function(value){return value};TileRow.prototype.getZoomLevelColumnIndex=function(){return this.tileTable.zoomLevelIndex};TileRow.prototype.getZoomLevelColumn=function(){return this.tileTable.getZoomLevelColumn()};TileRow.prototype.getZoomLevel=function(){return this.getValueWithColumnName(this.getZoomLevelColumn().name)};TileRow.prototype.setZoomLevel=function(zoomLevel){this.setValueWithIndex(this.getZoomLevelColumnIndex(),zoomLevel)};TileRow.prototype.getTileColumnColumnIndex=function(){return this.tileTable.tileColumnIndex};TileRow.prototype.getTileColumnColumn=function(){return this.tileTable.getTileColumnColumn()};TileRow.prototype.getTileColumn=function(){return this.getValueWithColumnName(this.getTileColumnColumn().name)};TileRow.prototype.setTileColumn=function(tileColumn){this.setValueWithColumnName(this.getTileColumnColumn().name,tileColumn)};TileRow.prototype.getTileRowColumnIndex=function(){return this.tileTable.tileRowIndex};TileRow.prototype.getTileRowColumn=function(){return this.tileTable.getTileRowColumn()};TileRow.prototype.getTileRow=function(){return this.getValueWithColumnName(this.getTileRowColumn().name)};TileRow.prototype.setTileRow=function(tileRow){this.setValueWithColumnName(this.getTileRowColumn().name,tileRow)};TileRow.prototype.getTileDataColumnIndex=function(){return this.tileTable.tileDataIndex};TileRow.prototype.getTileDataColumn=function(){return this.tileTable.getTileDataColumn()};TileRow.prototype.getTileData=function(){return this.getValueWithColumnName(this.getTileDataColumn().name)};TileRow.prototype.setTileData=function(tileData){this.setValueWithColumnName(this.getTileDataColumn().name,tileData)};TileRow.prototype.getTileDataImage=function(){};module.exports=TileRow},{"../../user/UserRow":"/data/github/geopackage-node/lib/user/UserRow.js",util:"/data/github/geopackage-node/node_modules/browserify/node_modules/util/util.js"}],"/data/github/geopackage-node/lib/tiles/user/tileTable.js":[function(require,module,exports){var UserTable=require("../../user/userTable");var util=require("util");var TileTable=function(tableName,columns){UserTable.call(this,tableName,columns);var zoomLevel;var tileColumn;var tileRow;var tileData;for(var i=0;i<columns.length;i++){var column=columns[i];var columnName=column.name;var columnIndex=column.index;switch(columnName){case TileTable.COLUMN_ZOOM_LEVEL:this.duplicateCheck(columnIndex,zoomLevel,TileTable.COLUMN_ZOOM_LEVEL);zoomLevel=columnIndex;break;case TileTable.COLUMN_TILE_COLUMN:this.duplicateCheck(columnIndex,tileColumn,TileTable.COLUMN_TILE_COLUMN);tileColumn=columnIndex;break;case TileTable.COLUMN_TILE_ROW:this.duplicateCheck(columnIndex,tileRow,TileTable.COLUMN_TILE_ROW);tileRow=columnIndex;break;case TileTable.COLUMN_TILE_DATA:this.duplicateCheck(columnIndex,tileData,TileTable.COLUMN_TILE_DATA);tileData=columnIndex;break}}this.missingCheck(zoomLevel,TileTable.COLUMN_ZOOM_LEVEL);this.zoomLevelIndex=zoomLevel;this.missingCheck(tileColumn,TileTable.COLUMN_TILE_COLUMN);this.tileColumnIndex=tileColumn;this.missingCheck(tileRow,TileTable.COLUMN_TILE_ROW);this.tileRowIndex=tileRow;this.missingCheck(tileData,TileTable.COLUMN_TILE_DATA);this.tileDataIndex=tileData};util.inherits(TileTable,UserTable);TileTable.prototype.getZoomLevelColumn=function(){return this.getColumnWithIndex(this.zoomLevelIndex)};TileTable.prototype.getTileColumnColumn=function(){return this.getColumnWithIndex(this.tileColumnIndex)};TileTable.prototype.getTileRowColumn=function(){return this.getColumnWithIndex(this.tileRowIndex)};TileTable.prototype.getTileDataColumn=function(){return this.getColumnWithIndex(this.tileDataIndex)};TileTable.createRequiredColumns=function(){return TileTable.createRequiredColumnsWithStartingIndex(0)};TileTable.createRequiredColumnsWithStartingIndex=function(startingIndex){var columns=[];columns.push(TileColumn.createIdColumn(startingIndex++));columns.push(TileColumn.createZoomLevelColumn(startingIndex++));columns.push(TileColumn.createTileColumnColumn(startingIndex++));columns.push(TileColumn.createTileRowColumn(startingIndex++));columns.push(TileColumn.createTileDataColumn(startingIndex++));return columns};TileTable.COLUMN_ID="id";TileTable.COLUMN_ZOOM_LEVEL="zoom_level";TileTable.COLUMN_TILE_COLUMN="tile_column";TileTable.COLUMN_TILE_ROW="tile_row";TileTable.COLUMN_TILE_DATA="tile_data";module.exports=TileTable},{"../../user/userTable":"/data/github/geopackage-node/lib/user/userTable.js",
  4. util:"/data/github/geopackage-node/node_modules/browserify/node_modules/util/util.js"}],"/data/github/geopackage-node/lib/tiles/user/tileTableReader.js":[function(require,module,exports){var UserTableReader=require("../../user/UserTableReader"),DataTypes=require("../../db/dataTypes"),TileMatrixSet=require("../matrixset").TileMatrixSet,TileTable=require("./tileTable"),TileColumn=require("./tileColumn");var util=require("util");var TileTableReader=function(tileMatrixSet){UserTableReader.call(this,tileMatrixSet.tableName);this.tileMatrixSet=tileMatrixSet};util.inherits(TileTableReader,UserTableReader);TileTableReader.prototype.readTileTable=function(db,callback){this.readTable(db,callback)};TileTableReader.prototype.createTableWithNameAndColumns=function(tableName,columns){return new TileTable(tableName,columns)};TileTableReader.prototype.createColumnWithResults=function(results,index,name,type,max,notNull,defaultValueIndex,primaryKey){var dataType=DataTypes.fromName(type);var defaultValue=undefined;if(defaultValueIndex){}var column=new TileColumn(index,name,dataType,max,notNull,defaultValue,primaryKey);return column};module.exports=TileTableReader},{"../../db/dataTypes":"/data/github/geopackage-node/lib/db/dataTypes.js","../../user/UserTableReader":"/data/github/geopackage-node/lib/user/UserTableReader.js","../matrixset":"/data/github/geopackage-node/lib/tiles/matrixset/index.js","./tileColumn":"/data/github/geopackage-node/lib/tiles/user/tileColumn.js","./tileTable":"/data/github/geopackage-node/lib/tiles/user/tileTable.js",util:"/data/github/geopackage-node/node_modules/browserify/node_modules/util/util.js"}],"/data/github/geopackage-node/lib/user/UserDao.js":[function(require,module,exports){var UserRow=require("./userRow"),Dao=require("../dao/dao");var util=require("util");var UserDao=function(connection,table){Dao.call(this,connection);this.table=table;this.tableName=table.tableName;this.idColumns=table.getPkColumn().name;this.columns=table.columnNames;this.initializeColumnIndex()};util.inherits(UserDao,Dao);UserDao.prototype.createObject=function(){return UserRow()};UserDao.prototype.setValueInObject=function(object,columnIndex,value){object.setValueNoValidationWithIndex(columnIndex,value)};UserDao.prototype.getRow=function(results){var row=undefined;if(!this.table)return row;var columns=this.table.columnCount();var columnTypes={};for(var i=0;i<columns;i++){var column=this.table.getColumnWithIndex(i);columnTypes[column.name]=column.dataType}return this.newRowWithColumnTypes(columnTypes,results)};UserDao.prototype.newRowWithColumnTypes=function(columnTypes,values){return new UserRow(this.table,columnTypes,values)};UserDao.prototype.getProjection=function(){return this.projection};UserDao.prototype.getZoomLevel=function(){return 0};module.exports=UserDao},{"../dao/dao":"/data/github/geopackage-node/lib/dao/dao.js","./userRow":"/data/github/geopackage-node/lib/user/userRow.js",util:"/data/github/geopackage-node/node_modules/browserify/node_modules/util/util.js"}],"/data/github/geopackage-node/lib/user/UserRow.js":[function(require,module,exports){var UserRow=function(table,columnTypes,values){this.table=table;this.columnTypes=columnTypes;this.values=values;if(!this.columnTypes){var columnCount=this.table.columnCount();this.columnTypes=[];this.values=[];for(var i=0;i<columnCount;i++){this.columnTypes.push(null);this.values.push(null)}}};module.exports=UserRow;UserRow.prototype.columnCount=function(){return this.table.columnCount()};UserRow.prototype.getColumnNames=function(){return this.table.columnNames};UserRow.prototype.getColumnNameWithIndex=function(index){return this.table.getColumnNameWithIndex(index)};UserRow.prototype.getColumnIndexWithColumnName=function(columnName){return this.table.getColumnIndex(columnName)};UserRow.prototype.getValueWithIndex=function(index){var value=this.values[this.getColumnNameWithIndex(index)];if(value!==undefined){value=this.toObjectValue(index,value)}return value};UserRow.prototype.getValueWithColumnName=function(columnName){return this.values[columnName]};UserRow.prototype.toObjectValue=function(index,value){return value};UserRow.prototype.getRowColumnTypeWithIndex=function(index){return this.columnTypes[this.getColumnNameWithIndex(index)]};UserRow.prototype.getRowColumnTypeWithColumnName=function(columnName){return this.columnTypes[columnName]};UserRow.prototype.getColumnWithIndex=function(index){return this.table.getColumnWithIndex(index)};UserRow.prototype.getColumnWithColumnName=function(columnName){return this.table.getColumnWithColumnName(columnName)};UserRow.prototype.getId=function(){var id=undefined;var objectValue=this.getValueWithIndex(this.getPkColumnIndex());if(objectValue==undefined){throw new Error("Row Id was null. Table: "+this.table.tableName+", Column Index: "+this.getPkColumnIndex()+", Column Name: "+this.getPkColumn().name)}id=objectValue;return id};UserRow.prototype.getPkColumnIndex=function(){return this.table.pkIndex};UserRow.prototype.getPkColumn=function(){return this.table.getPkColumn()};UserRow.prototype.setValueWithIndex=function(index,value){if(index===this.table.pkIndex){throw new Error("Cannot update the primary key of the row. Table Name: "+this.table.tableName+", Index: "+index+", Name: "+this.table.getPkColumn().name)}this.setValueNoValidationWithIndex(index,value)};UserRow.prototype.setValueNoValidationWithIndex=function(index,value){self.values[index]=value};UserRow.prototype.setValueWithColumnName=function(columnName,value){this.setValueWithIndex(this.getColumnIndexWithColumnName(columnName),value)};UserRow.prototype.setId=function(id){this.values[this.getPkColumnIndex()]=id};UserRow.prototype.resetId=function(){this.values[this.getPkColumnIndex()]=undefined};UserRow.prototype.validateValueWithColumn=function(column,value,valueTypes){}},{}],"/data/github/geopackage-node/lib/user/UserTableReader.js":[function(require,module,exports){var UserColumn=require("./userColumn"),UserTable=require("./userTable"),DataTypes=require("../db/dataTypes");var UserTableReader=function(tableName){this.tableName=tableName};var GPKG_UTR_CID="cid";var GPKG_UTR_NAME="name";var GPKG_UTR_TYPE="type";var GPKG_UTR_NOT_NULL="notnull";var GPKG_UTR_PK="pk";var GPKG_UTR_DFLT_VALUE="dflt_value";UserTableReader.prototype.readTable=function(db,callback){var columnList=[];db.all("PRAGMA table_info("+this.tableName+")",function(err,results){for(var i=0;i<results.length;i++){var result=results[i];var index=result[GPKG_UTR_CID];var name=result[GPKG_UTR_NAME];var type=result[GPKG_UTR_TYPE];var notNull=result[GPKG_UTR_NOT_NULL]===1;var primarykey=result[GPKG_UTR_PK]===1;var max=undefined;if(type&&type.lastIndexOf(")")===type.length-1){var maxStart=type.indexOf("(");if(maxStart>-1){var maxString=type.substring(maxStart+1,type.length-1);if(maxString!==""){max=parseInt(maxString);type=type.substring(0,maxStart)}}}var defaultValueIndex=result[GPKG_UTR_DFLT_VALUE];try{var column=this.createColumnWithResults(result,index,name,type,max,notNull,defaultValueIndex,primarykey);columnList.push(column)}catch(e){console.err(e);return callback(e)}}if(columnList.length===0){return callback(new Error("Table does not exist: "+this.tableName))}var table=this.createTableWithNameAndColumns(this.tableName,columnList);callback(null,table)}.bind(this))};UserTableReader.prototype.createColumnWithResults=function(result,index,name,type,max,notNull,defaultValueIndex,primaryKey){var dataType=DataTypes.fromName(type);var defaultValue=undefined;if(defaultValueIndex){}return new UserColumn(index,name,dataType,max,notNull,defaultValue,primaryKey)};UserTableReader.prototype.createTableWithNameAndColumns=function(tableName,columns){return new UserTable(tableName,columns)};module.exports=UserTableReader},{"../db/dataTypes":"/data/github/geopackage-node/lib/db/dataTypes.js","./userColumn":"/data/github/geopackage-node/lib/user/userColumn.js","./userTable":"/data/github/geopackage-node/lib/user/userTable.js"}],"/data/github/geopackage-node/lib/user/userColumn.js":[function(require,module,exports){var DataTypes=require("../db/dataTypes");function UserColumn(index,name,dataType,max,notNull,defaultValue,primaryKey){this.index=index;this.name=name;this.dataType=dataType;this.max=max;this.notNull=notNull,this.defaultValue=defaultValue;this.primaryKey=primaryKey;this.validateMax()}UserColumn.prototype.getTypeName=function(){var type=undefined;if(this.dataType!==DataTypes.GPKG_DT_GEOMETRY){type=DataTypes.name(this.dataType)}return type};UserColumn.prototype.validateMax=function(){if(this.max&&this.dataType!=="TEXT"&&this.dataType!=="BLOB"){throw new Error("Column max is only supported for TEXT and BLOB columns. column: "+self.name+", max: "+self.max+", type: "+self.dataType)}};module.exports=UserColumn},{"../db/dataTypes":"/data/github/geopackage-node/lib/db/dataTypes.js"}],"/data/github/geopackage-node/lib/user/userRow.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/lib/user/UserRow.js"][0].apply(exports,arguments)},{}],"/data/github/geopackage-node/lib/user/userTable.js":[function(require,module,exports){var UserTable=function(tableName,columns){this.tableName=tableName;columns.sort(function(a,b){return a.index-b.index});for(var i=0;i<columns.length;i++){var column=columns[i];if(!column){throw new Error("No column found at index: "+i+", Table Name: "+this.tableName)}else if(column.index!=i){throw new Error("Column has wrong index of "+column.index+", found at index: "+i+", Table Name: "+this.tableName)}}var pk=undefined;var tempColumnNames=new Array;var tempNameToIndex={};for(var i=0;i<columns.length;i++){var column=columns[i];var index=column.index;if(column.primaryKey){if(pk){throw new Error("More than one primary key column was found for table '"+this.tableName+"'. Index "+pk+" and "+index)}pk=index}tempColumnNames.push(column.name);tempNameToIndex[column.name]=index}this.columns=columns;this.columnNames=tempColumnNames;this.nameToIndex=tempNameToIndex;if(pk===undefined){throw new Error("No primary key column was found for table '"+this.tableName+"'")}this.pkIndex=pk};UserTable.prototype.duplicateCheck=function(index,previousIndex,column){if(previousIndex){throw new Error("More than one "+column+" column was found for table '"+this.tableName+"'. Index "+previousIndex+" and "+index)}};UserTable.prototype.typeCheck=function(expected,column){var actual=column.dataType;if(!actual||actual!==expected){throw new Error("Unexpected "+column.name+" column data type was found for table '"+this.tableName+"', expected: "+DataTypes.name(expected)+", actual: "+column.dataType)}};UserTable.prototype.missingCheck=function(index,column){if(index===undefined||index===null){throw new Error("No "+column+" column was found for table '"+this.tableName+"'")}};UserTable.prototype.getColumnIndex=function(columnName){var index=this.nameToIndex[columnName];if(index===undefined||index===null){throw new Error("Column does not exist in table '"+this.tableName+"', column: "+columnName)}return index};UserTable.prototype.getColumnNameWithIndex=function(index){return this.columnNames[index]};UserTable.prototype.getColumnWithIndex=function(index){return this.columns[index]};UserTable.prototype.getColumnWithColumnName=function(columnName){return this.getColumnWithIndex(this.getColumnIndex(columnName))};UserTable.prototype.columnCount=function(){return this.columns.length};UserTable.prototype.getPkColumn=function(){return this.columns[this.pkIndex]};module.exports=UserTable},{}],"/data/github/geopackage-node/lib/validate/geoPackageValidate.js":[function(require,module,exports){var path=require("path"),async=require("async"),SpatialReferenceSystem=require("../core/srs").SpatialReferenceSystem,Contents=require("../core/contents").Contents,GeoPackageConstants=require("../geoPackageConstants");exports.hasGeoPackageExtension=function(filePath){var extension=path.extname(filePath);return extension&&extension!==""&&(extension.toLowerCase()==="."+GeoPackageConstants.GEOPACKAGE_EXTENSION.toLowerCase()||extension.toLowerCase()==="."+GeoPackageConstants.GEOPACKAGE_EXTENDED_EXTENSION.toLowerCase())};exports.validateGeoPackageExtension=function(filePath){if(!exports.hasGeoPackageExtension(filePath)){return new Error("GeoPackage database file '"+filePath+"' does not have a valid extension of '"+GeoPackageConstants.GEOPACKAGE_EXTENSION+"' or '"+GeoPackageConstants.GEOPACKAGE_EXTENDED_EXTENSION+"'")}};exports.hasMinimumTables=function(geoPackage,callback){async.series([function(callback){geoPackage.getSpatialReferenceSystemDao().isTableExists(callback)},function(callback){var contentsDao=geoPackage.getContentsDao();contentsDao.isTableExists(callback)}],function(err){if(err){callback(new Error("Invalid GeoPackage. Does not contain required tables: "+SpatialReferenceSystem.TABLE_NAME+" & "+Contents.TABLE_NAME+", GeoPackage Name: "+geoPackage.getName()))}else{callback()}})}},{"../core/contents":"/data/github/geopackage-node/lib/core/contents/index.js","../core/srs":"/data/github/geopackage-node/lib/core/srs/index.js","../geoPackageConstants":"/data/github/geopackage-node/lib/geoPackageConstants.js",async:"/data/github/geopackage-node/node_modules/async/lib/async.js",path:"/data/github/geopackage-node/node_modules/browserify/node_modules/path-browserify/index.js"}],"/data/github/geopackage-node/lib/wkb/index.js":[function(require,module,exports){var wkx=require("wkx");var wktToEnum={};wktToEnum[wkx.Types.wkt.Point]=wkx.Types.wkb.Point;wktToEnum[wkx.Types.wkt.LineString]=wkx.Types.wkb.LineString;wktToEnum[wkx.Types.wkt.Polygon]=wkx.Types.wkb.Polygon;wktToEnum[wkx.Types.wkt.MultiPoint]=wkx.Types.wkb.MultiPoint;wktToEnum[wkx.Types.wkt.MultiLineString]=wkx.Types.wkb.MultiLineString;wktToEnum[wkx.Types.wkt.MultiPolygon]=wkx.Types.wkb.MultiPolygon;wktToEnum[wkx.Types.wkt.GeometryCollection]=wkx.Types.wkb.GeometryCollection;module.exports.fromName=function(name){if(name==="GEOMETRY"){return wkx.Types.wkb.GeometryCollection}return wktToEnum[name]}},{wkx:"/data/github/geopackage-node/node_modules/wkx/lib/wkx.js"}],"/data/github/geopackage-node/node_modules/async/lib/async.js":[function(require,module,exports){(function(process,global){(function(){var async={};function noop(){}function identity(v){return v}function toBool(v){return!!v}function notId(v){return!v}var previous_async;var root=typeof self==="object"&&self.self===self&&self||typeof global==="object"&&global.global===global&&global||this;if(root!=null){previous_async=root.async}async.noConflict=function(){root.async=previous_async;return async};function only_once(fn){return function(){if(fn===null)throw new Error("Callback was already called.");fn.apply(this,arguments);fn=null}}function _once(fn){return function(){if(fn===null)return;fn.apply(this,arguments);fn=null}}var _toString=Object.prototype.toString;var _isArray=Array.isArray||function(obj){return _toString.call(obj)==="[object Array]"};var _isObject=function(obj){var type=typeof obj;return type==="function"||type==="object"&&!!obj};function _isArrayLike(arr){return _isArray(arr)||typeof arr.length==="number"&&arr.length>=0&&arr.length%1===0}function _arrayEach(arr,iterator){var index=-1,length=arr.length;while(++index<length){iterator(arr[index],index,arr)}}function _map(arr,iterator){var index=-1,length=arr.length,result=Array(length);while(++index<length){result[index]=iterator(arr[index],index,arr)}return result}function _range(count){return _map(Array(count),function(v,i){return i})}function _reduce(arr,iterator,memo){_arrayEach(arr,function(x,i,a){memo=iterator(memo,x,i,a)});return memo}function _forEachOf(object,iterator){_arrayEach(_keys(object),function(key){iterator(object[key],key)})}function _indexOf(arr,item){for(var i=0;i<arr.length;i++){if(arr[i]===item)return i}return-1}var _keys=Object.keys||function(obj){var keys=[];for(var k in obj){if(obj.hasOwnProperty(k)){keys.push(k)}}return keys};function _keyIterator(coll){var i=-1;var len;var keys;if(_isArrayLike(coll)){len=coll.length;return function next(){i++;return i<len?i:null}}else{keys=_keys(coll);len=keys.length;return function next(){i++;return i<len?keys[i]:null}}}function _restParam(func,startIndex){startIndex=startIndex==null?func.length-1:+startIndex;return function(){var length=Math.max(arguments.length-startIndex,0);var rest=Array(length);for(var index=0;index<length;index++){rest[index]=arguments[index+startIndex]}switch(startIndex){case 0:return func.call(this,rest);case 1:return func.call(this,arguments[0],rest)}}}function _withoutIndex(iterator){return function(value,index,callback){return iterator(value,callback)}}var _setImmediate=typeof setImmediate==="function"&&setImmediate;var _delay=_setImmediate?function(fn){_setImmediate(fn)}:function(fn){setTimeout(fn,0)};if(typeof process==="object"&&typeof process.nextTick==="function"){async.nextTick=process.nextTick}else{async.nextTick=_delay}async.setImmediate=_setImmediate?_delay:async.nextTick;async.forEach=async.each=function(arr,iterator,callback){return async.eachOf(arr,_withoutIndex(iterator),callback)};async.forEachSeries=async.eachSeries=function(arr,iterator,callback){return async.eachOfSeries(arr,_withoutIndex(iterator),callback)};async.forEachLimit=async.eachLimit=function(arr,limit,iterator,callback){return _eachOfLimit(limit)(arr,_withoutIndex(iterator),callback)};async.forEachOf=async.eachOf=function(object,iterator,callback){callback=_once(callback||noop);object=object||[];var iter=_keyIterator(object);var key,completed=0;while((key=iter())!=null){completed+=1;iterator(object[key],key,only_once(done))}if(completed===0)callback(null);function done(err){completed--;if(err){callback(err)}else if(key===null&&completed<=0){callback(null)}}};async.forEachOfSeries=async.eachOfSeries=function(obj,iterator,callback){callback=_once(callback||noop);obj=obj||[];var nextKey=_keyIterator(obj);var key=nextKey();function iterate(){var sync=true;if(key===null){return callback(null)}iterator(obj[key],key,only_once(function(err){if(err){callback(err)}else{key=nextKey();if(key===null){return callback(null)}else{if(sync){async.setImmediate(iterate)}else{iterate()}}}}));sync=false}iterate()};async.forEachOfLimit=async.eachOfLimit=function(obj,limit,iterator,callback){_eachOfLimit(limit)(obj,iterator,callback)};function _eachOfLimit(limit){return function(obj,iterator,callback){callback=_once(callback||noop);obj=obj||[];var nextKey=_keyIterator(obj);if(limit<=0){return callback(null)}var done=false;var running=0;var errored=false;(function replenish(){if(done&&running<=0){return callback(null)}while(running<limit&&!errored){var key=nextKey();if(key===null){done=true;if(running<=0){callback(null)}return}running+=1;iterator(obj[key],key,only_once(function(err){running-=1;if(err){callback(err);errored=true}else{replenish()}}))}})()}}function doParallel(fn){return function(obj,iterator,callback){return fn(async.eachOf,obj,iterator,callback)}}function doParallelLimit(fn){return function(obj,limit,iterator,callback){return fn(_eachOfLimit(limit),obj,iterator,callback)}}function doSeries(fn){return function(obj,iterator,callback){return fn(async.eachOfSeries,obj,iterator,callback)}}function _asyncMap(eachfn,arr,iterator,callback){callback=_once(callback||noop);arr=arr||[];var results=_isArrayLike(arr)?[]:{};eachfn(arr,function(value,index,callback){iterator(value,function(err,v){results[index]=v;callback(err)})},function(err){callback(err,results)})}async.map=doParallel(_asyncMap);async.mapSeries=doSeries(_asyncMap);async.mapLimit=doParallelLimit(_asyncMap);async.inject=async.foldl=async.reduce=function(arr,memo,iterator,callback){async.eachOfSeries(arr,function(x,i,callback){iterator(memo,x,function(err,v){memo=v;callback(err)})},function(err){callback(err,memo)})};async.foldr=async.reduceRight=function(arr,memo,iterator,callback){var reversed=_map(arr,identity).reverse();async.reduce(reversed,memo,iterator,callback)};async.transform=function(arr,memo,iterator,callback){if(arguments.length===3){callback=iterator;iterator=memo;memo=_isArray(arr)?[]:{}}async.eachOf(arr,function(v,k,cb){iterator(memo,v,k,cb)},function(err){callback(err,memo)})};function _filter(eachfn,arr,iterator,callback){var results=[];eachfn(arr,function(x,index,callback){iterator(x,function(v){if(v){results.push({index:index,value:x})}callback()})},function(){callback(_map(results.sort(function(a,b){return a.index-b.index}),function(x){return x.value}))})}async.select=async.filter=doParallel(_filter);async.selectLimit=async.filterLimit=doParallelLimit(_filter);async.selectSeries=async.filterSeries=doSeries(_filter);function _reject(eachfn,arr,iterator,callback){_filter(eachfn,arr,function(value,cb){iterator(value,function(v){cb(!v)})},callback)}async.reject=doParallel(_reject);async.rejectLimit=doParallelLimit(_reject);async.rejectSeries=doSeries(_reject);function _createTester(eachfn,check,getResult){return function(arr,limit,iterator,cb){function done(){if(cb)cb(getResult(false,void 0))}function iteratee(x,_,callback){if(!cb)return callback();iterator(x,function(v){if(cb&&check(v)){cb(getResult(true,x));cb=iterator=false}callback()})}if(arguments.length>3){eachfn(arr,limit,iteratee,done)}else{cb=iterator;iterator=limit;eachfn(arr,iteratee,done)}}}async.any=async.some=_createTester(async.eachOf,toBool,identity);async.someLimit=_createTester(async.eachOfLimit,toBool,identity);async.all=async.every=_createTester(async.eachOf,notId,notId);async.everyLimit=_createTester(async.eachOfLimit,notId,notId);function _findGetResult(v,x){return x}async.detect=_createTester(async.eachOf,identity,_findGetResult);async.detectSeries=_createTester(async.eachOfSeries,identity,_findGetResult);async.detectLimit=_createTester(async.eachOfLimit,identity,_findGetResult);async.sortBy=function(arr,iterator,callback){async.map(arr,function(x,callback){iterator(x,function(err,criteria){if(err){callback(err)}else{callback(null,{value:x,criteria:criteria})}})},function(err,results){if(err){return callback(err)}else{callback(null,_map(results.sort(comparator),function(x){return x.value}))}});function comparator(left,right){var a=left.criteria,b=right.criteria;return a<b?-1:a>b?1:0}};async.auto=function(tasks,concurrency,callback){if(typeof arguments[1]==="function"){callback=concurrency;concurrency=null}callback=_once(callback||noop);var keys=_keys(tasks);var remainingTasks=keys.length;if(!remainingTasks){return callback(null)}if(!concurrency){concurrency=remainingTasks}var results={};var runningTasks=0;var hasError=false;var listeners=[];function addListener(fn){listeners.unshift(fn)}function removeListener(fn){var idx=_indexOf(listeners,fn);if(idx>=0)listeners.splice(idx,1)}function taskComplete(){remainingTasks--;_arrayEach(listeners.slice(0),function(fn){fn()})}addListener(function(){if(!remainingTasks){callback(null,results)}});_arrayEach(keys,function(k){if(hasError)return;var task=_isArray(tasks[k])?tasks[k]:[tasks[k]];var taskCallback=_restParam(function(err,args){runningTasks--;if(args.length<=1){args=args[0]}if(err){var safeResults={};_forEachOf(results,function(val,rkey){safeResults[rkey]=val});safeResults[k]=args;hasError=true;callback(err,safeResults)}else{results[k]=args;async.setImmediate(taskComplete)}});var requires=task.slice(0,task.length-1);var len=requires.length;var dep;while(len--){if(!(dep=tasks[requires[len]])){throw new Error("Has nonexistent dependency in "+requires.join(", "))}if(_isArray(dep)&&_indexOf(dep,k)>=0){throw new Error("Has cyclic dependencies")}}function ready(){return runningTasks<concurrency&&_reduce(requires,function(a,x){return a&&results.hasOwnProperty(x)},true)&&!results.hasOwnProperty(k)}if(ready()){runningTasks++;task[task.length-1](taskCallback,results)}else{addListener(listener)}function listener(){if(ready()){runningTasks++;removeListener(listener);task[task.length-1](taskCallback,results)}}})};async.retry=function(times,task,callback){var DEFAULT_TIMES=5;var DEFAULT_INTERVAL=0;var attempts=[];var opts={times:DEFAULT_TIMES,interval:DEFAULT_INTERVAL};function parseTimes(acc,t){if(typeof t==="number"){acc.times=parseInt(t,10)||DEFAULT_TIMES}else if(typeof t==="object"){acc.times=parseInt(t.times,10)||DEFAULT_TIMES;acc.interval=parseInt(t.interval,10)||DEFAULT_INTERVAL}else{throw new Error("Unsupported argument type for 'times': "+typeof t)}}var length=arguments.length;if(length<1||length>3){throw new Error("Invalid arguments - must be either (task), (task, callback), (times, task) or (times, task, callback)")}else if(length<=2&&typeof times==="function"){callback=task;task=times}if(typeof times!=="function"){parseTimes(opts,times)}opts.callback=callback;opts.task=task;function wrappedTask(wrappedCallback,wrappedResults){function retryAttempt(task,finalAttempt){return function(seriesCallback){task(function(err,result){seriesCallback(!err||finalAttempt,{err:err,result:result})},wrappedResults)}}function retryInterval(interval){return function(seriesCallback){setTimeout(function(){seriesCallback(null)},interval)}}while(opts.times){var finalAttempt=!(opts.times-=1);attempts.push(retryAttempt(opts.task,finalAttempt));if(!finalAttempt&&opts.interval>0){attempts.push(retryInterval(opts.interval))}}async.series(attempts,function(done,data){data=data[data.length-1];(wrappedCallback||opts.callback)(data.err,data.result)})}return opts.callback?wrappedTask():wrappedTask};async.waterfall=function(tasks,callback){callback=_once(callback||noop);if(!_isArray(tasks)){var err=new Error("First argument to waterfall must be an array of functions");return callback(err)}if(!tasks.length){return callback()}function wrapIterator(iterator){return _restParam(function(err,args){if(err){callback.apply(null,[err].concat(args))}else{var next=iterator.next();if(next){args.push(wrapIterator(next))}else{args.push(callback)}ensureAsync(iterator).apply(null,args)}})}wrapIterator(async.iterator(tasks))()};function _parallel(eachfn,tasks,callback){callback=callback||noop;var results=_isArrayLike(tasks)?[]:{};eachfn(tasks,function(task,key,callback){task(_restParam(function(err,args){if(args.length<=1){args=args[0]}results[key]=args;callback(err)}))},function(err){callback(err,results)})}async.parallel=function(tasks,callback){_parallel(async.eachOf,tasks,callback)};async.parallelLimit=function(tasks,limit,callback){_parallel(_eachOfLimit(limit),tasks,callback)};async.series=function(tasks,callback){_parallel(async.eachOfSeries,tasks,callback)};async.iterator=function(tasks){function makeCallback(index){function fn(){if(tasks.length){tasks[index].apply(null,arguments)}return fn.next()}fn.next=function(){return index<tasks.length-1?makeCallback(index+1):null};return fn}return makeCallback(0)};async.apply=_restParam(function(fn,args){return _restParam(function(callArgs){return fn.apply(null,args.concat(callArgs))})});function _concat(eachfn,arr,fn,callback){var result=[];eachfn(arr,function(x,index,cb){fn(x,function(err,y){result=result.concat(y||[]);cb(err)})},function(err){callback(err,result)})}async.concat=doParallel(_concat);async.concatSeries=doSeries(_concat);async.whilst=function(test,iterator,callback){callback=callback||noop;if(test()){var next=_restParam(function(err,args){if(err){callback(err)}else if(test.apply(this,args)){iterator(next)}else{callback.apply(null,[null].concat(args))}});iterator(next)}else{callback(null)}};async.doWhilst=function(iterator,test,callback){var calls=0;return async.whilst(function(){return++calls<=1||test.apply(this,arguments)},iterator,callback)};async.until=function(test,iterator,callback){return async.whilst(function(){return!test.apply(this,arguments)},iterator,callback)};async.doUntil=function(iterator,test,callback){return async.doWhilst(iterator,function(){return!test.apply(this,arguments)},callback)};async.during=function(test,iterator,callback){callback=callback||noop;var next=_restParam(function(err,args){if(err){callback(err)}else{args.push(check);test.apply(this,args)}});var check=function(err,truth){if(err){callback(err)}else if(truth){iterator(next)}else{callback(null)}};test(check)};async.doDuring=function(iterator,test,callback){var calls=0;async.during(function(next){if(calls++<1){next(null,true)}else{test.apply(this,arguments)}},iterator,callback)};function _queue(worker,concurrency,payload){if(concurrency==null){concurrency=1}else if(concurrency===0){throw new Error("Concurrency must not be zero")}function _insert(q,data,pos,callback){if(callback!=null&&typeof callback!=="function"){throw new Error("task callback must be a function")}q.started=true;if(!_isArray(data)){data=[data]}if(data.length===0&&q.idle()){return async.setImmediate(function(){q.drain()})}_arrayEach(data,function(task){var item={data:task,callback:callback||noop};if(pos){q.tasks.unshift(item)}else{q.tasks.push(item)}if(q.tasks.length===q.concurrency){q.saturated()}});async.setImmediate(q.process)}function _next(q,tasks){return function(){workers-=1;var removed=false;var args=arguments;_arrayEach(tasks,function(task){_arrayEach(workersList,function(worker,index){if(worker===task&&!removed){workersList.splice(index,1);removed=true}});task.callback.apply(task,args)});if(q.tasks.length+workers===0){q.drain()}q.process()}}var workers=0;var workersList=[];var q={tasks:[],concurrency:concurrency,payload:payload,saturated:noop,empty:noop,drain:noop,started:false,paused:false,push:function(data,callback){_insert(q,data,false,callback)},kill:function(){q.drain=noop;q.tasks=[]},unshift:function(data,callback){_insert(q,data,true,callback)},process:function(){while(!q.paused&&workers<q.concurrency&&q.tasks.length){var tasks=q.payload?q.tasks.splice(0,q.payload):q.tasks.splice(0,q.tasks.length);var data=_map(tasks,function(task){return task.data});if(q.tasks.length===0){q.empty()}workers+=1;workersList.push(tasks[0]);var cb=only_once(_next(q,tasks));worker(data,cb)}},length:function(){return q.tasks.length},running:function(){return workers},workersList:function(){return workersList},idle:function(){return q.tasks.length+workers===0},pause:function(){q.paused=true},resume:function(){if(q.paused===false){return}q.paused=false;var resumeCount=Math.min(q.concurrency,q.tasks.length);for(var w=1;w<=resumeCount;w++){async.setImmediate(q.process)}}};return q}async.queue=function(worker,concurrency){var q=_queue(function(items,cb){worker(items[0],cb)},concurrency,1);return q};async.priorityQueue=function(worker,concurrency){function _compareTasks(a,b){return a.priority-b.priority}function _binarySearch(sequence,item,compare){var beg=-1,end=sequence.length-1;while(beg<end){var mid=beg+(end-beg+1>>>1);if(compare(item,sequence[mid])>=0){beg=mid}else{end=mid-1}}return beg}function _insert(q,data,priority,callback){if(callback!=null&&typeof callback!=="function"){throw new Error("task callback must be a function")}q.started=true;if(!_isArray(data)){data=[data]}if(data.length===0){return async.setImmediate(function(){q.drain()})}_arrayEach(data,function(task){var item={data:task,priority:priority,callback:typeof callback==="function"?callback:noop};q.tasks.splice(_binarySearch(q.tasks,item,_compareTasks)+1,0,item);if(q.tasks.length===q.concurrency){q.saturated()}async.setImmediate(q.process)})}var q=async.queue(worker,concurrency);q.push=function(data,priority,callback){_insert(q,data,priority,callback)};delete q.unshift;return q};async.cargo=function(worker,payload){return _queue(worker,1,payload)};function _console_fn(name){return _restParam(function(fn,args){fn.apply(null,args.concat([_restParam(function(err,args){if(typeof console==="object"){if(err){if(console.error){console.error(err)}}else if(console[name]){_arrayEach(args,function(x){console[name](x)})}}})]))})}async.log=_console_fn("log");async.dir=_console_fn("dir");async.memoize=function(fn,hasher){var memo={};var queues={};var has=Object.prototype.hasOwnProperty;hasher=hasher||identity;var memoized=_restParam(function memoized(args){var callback=args.pop();var key=hasher.apply(null,args);if(has.call(memo,key)){async.setImmediate(function(){callback.apply(null,memo[key])})}else if(has.call(queues,key)){
  5. queues[key].push(callback)}else{queues[key]=[callback];fn.apply(null,args.concat([_restParam(function(args){memo[key]=args;var q=queues[key];delete queues[key];for(var i=0,l=q.length;i<l;i++){q[i].apply(null,args)}})]))}});memoized.memo=memo;memoized.unmemoized=fn;return memoized};async.unmemoize=function(fn){return function(){return(fn.unmemoized||fn).apply(null,arguments)}};function _times(mapper){return function(count,iterator,callback){mapper(_range(count),iterator,callback)}}async.times=_times(async.map);async.timesSeries=_times(async.mapSeries);async.timesLimit=function(count,limit,iterator,callback){return async.mapLimit(_range(count),limit,iterator,callback)};async.seq=function(){var fns=arguments;return _restParam(function(args){var that=this;var callback=args[args.length-1];if(typeof callback=="function"){args.pop()}else{callback=noop}async.reduce(fns,args,function(newargs,fn,cb){fn.apply(that,newargs.concat([_restParam(function(err,nextargs){cb(err,nextargs)})]))},function(err,results){callback.apply(that,[err].concat(results))})})};async.compose=function(){return async.seq.apply(null,Array.prototype.reverse.call(arguments))};function _applyEach(eachfn){return _restParam(function(fns,args){var go=_restParam(function(args){var that=this;var callback=args.pop();return eachfn(fns,function(fn,_,cb){fn.apply(that,args.concat([cb]))},callback)});if(args.length){return go.apply(this,args)}else{return go}})}async.applyEach=_applyEach(async.eachOf);async.applyEachSeries=_applyEach(async.eachOfSeries);async.forever=function(fn,callback){var done=only_once(callback||noop);var task=ensureAsync(fn);function next(err){if(err){return done(err)}task(next)}next()};function ensureAsync(fn){return _restParam(function(args){var callback=args.pop();args.push(function(){var innerArgs=arguments;if(sync){async.setImmediate(function(){callback.apply(null,innerArgs)})}else{callback.apply(null,innerArgs)}});var sync=true;fn.apply(this,args);sync=false})}async.ensureAsync=ensureAsync;async.constant=_restParam(function(values){var args=[null].concat(values);return function(callback){return callback.apply(this,args)}});async.wrapSync=async.asyncify=function asyncify(func){return _restParam(function(args){var callback=args.pop();var result;try{result=func.apply(this,args)}catch(e){return callback(e)}if(_isObject(result)&&typeof result.then==="function"){result.then(function(value){callback(null,value)})["catch"](function(err){callback(err.message?err:new Error(err))})}else{callback(null,result)}})};if(typeof module==="object"&&module.exports){module.exports=async}else if(typeof define==="function"&&define.amd){define([],function(){return async})}else{root.async=async}})()}).call(this,require("_process"),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{_process:"/data/github/geopackage-node/node_modules/browserify/node_modules/process/browser.js"}],"/data/github/geopackage-node/node_modules/browserify/lib/_empty.js":[function(require,module,exports){},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/browser-resolve/empty.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/lib/_empty.js"][0].apply(exports,arguments)},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js":[function(require,module,exports){(function(global){"use strict";var base64=require("base64-js");var ieee754=require("ieee754");var isArray=require("isarray");exports.Buffer=Buffer;exports.SlowBuffer=SlowBuffer;exports.INSPECT_MAX_BYTES=50;Buffer.poolSize=8192;var rootParent={};Buffer.TYPED_ARRAY_SUPPORT=global.TYPED_ARRAY_SUPPORT!==undefined?global.TYPED_ARRAY_SUPPORT:typedArraySupport();function typedArraySupport(){try{var arr=new Uint8Array(1);arr.foo=function(){return 42};return arr.foo()===42&&typeof arr.subarray==="function"&&arr.subarray(1,1).byteLength===0}catch(e){return false}}function kMaxLength(){return Buffer.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function Buffer(arg){if(!(this instanceof Buffer)){if(arguments.length>1)return new Buffer(arg,arguments[1]);return new Buffer(arg)}if(!Buffer.TYPED_ARRAY_SUPPORT){this.length=0;this.parent=undefined}if(typeof arg==="number"){return fromNumber(this,arg)}if(typeof arg==="string"){return fromString(this,arg,arguments.length>1?arguments[1]:"utf8")}return fromObject(this,arg)}Buffer._augment=function(arr){arr.__proto__=Buffer.prototype;return arr};function fromNumber(that,length){that=allocate(that,length<0?0:checked(length)|0);if(!Buffer.TYPED_ARRAY_SUPPORT){for(var i=0;i<length;i++){that[i]=0}}return that}function fromString(that,string,encoding){if(typeof encoding!=="string"||encoding==="")encoding="utf8";var length=byteLength(string,encoding)|0;that=allocate(that,length);that.write(string,encoding);return that}function fromObject(that,object){if(Buffer.isBuffer(object))return fromBuffer(that,object);if(isArray(object))return fromArray(that,object);if(object==null){throw new TypeError("must start with number, buffer, array or string")}if(typeof ArrayBuffer!=="undefined"){if(object.buffer instanceof ArrayBuffer){return fromTypedArray(that,object)}if(object instanceof ArrayBuffer){return fromArrayBuffer(that,object)}}if(object.length)return fromArrayLike(that,object);return fromJsonObject(that,object)}function fromBuffer(that,buffer){var length=checked(buffer.length)|0;that=allocate(that,length);buffer.copy(that,0,0,length);return that}function fromArray(that,array){var length=checked(array.length)|0;that=allocate(that,length);for(var i=0;i<length;i+=1){that[i]=array[i]&255}return that}function fromTypedArray(that,array){var length=checked(array.length)|0;that=allocate(that,length);for(var i=0;i<length;i+=1){that[i]=array[i]&255}return that}function fromArrayBuffer(that,array){array.byteLength;if(Buffer.TYPED_ARRAY_SUPPORT){that=new Uint8Array(array);that.__proto__=Buffer.prototype}else{that=fromTypedArray(that,new Uint8Array(array))}return that}function fromArrayLike(that,array){var length=checked(array.length)|0;that=allocate(that,length);for(var i=0;i<length;i+=1){that[i]=array[i]&255}return that}function fromJsonObject(that,object){var array;var length=0;if(object.type==="Buffer"&&isArray(object.data)){array=object.data;length=checked(array.length)|0}that=allocate(that,length);for(var i=0;i<length;i+=1){that[i]=array[i]&255}return that}if(Buffer.TYPED_ARRAY_SUPPORT){Buffer.prototype.__proto__=Uint8Array.prototype;Buffer.__proto__=Uint8Array;if(typeof Symbol!=="undefined"&&Symbol.species&&Buffer[Symbol.species]===Buffer){Object.defineProperty(Buffer,Symbol.species,{value:null,configurable:true})}}else{Buffer.prototype.length=undefined;Buffer.prototype.parent=undefined}function allocate(that,length){if(Buffer.TYPED_ARRAY_SUPPORT){that=new Uint8Array(length);that.__proto__=Buffer.prototype}else{that.length=length}var fromPool=length!==0&&length<=Buffer.poolSize>>>1;if(fromPool)that.parent=rootParent;return that}function checked(length){if(length>=kMaxLength()){throw new RangeError("Attempt to allocate Buffer larger than maximum "+"size: 0x"+kMaxLength().toString(16)+" bytes")}return length|0}function SlowBuffer(subject,encoding){if(!(this instanceof SlowBuffer))return new SlowBuffer(subject,encoding);var buf=new Buffer(subject,encoding);delete buf.parent;return buf}Buffer.isBuffer=function isBuffer(b){return!!(b!=null&&b._isBuffer)};Buffer.compare=function compare(a,b){if(!Buffer.isBuffer(a)||!Buffer.isBuffer(b)){throw new TypeError("Arguments must be Buffers")}if(a===b)return 0;var x=a.length;var y=b.length;for(var i=0,len=Math.min(x,y);i<len;++i){if(a[i]!==b[i]){x=a[i];y=b[i];break}}if(x<y)return-1;if(y<x)return 1;return 0};Buffer.isEncoding=function isEncoding(encoding){switch(String(encoding).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return true;default:return false}};Buffer.concat=function concat(list,length){if(!isArray(list))throw new TypeError("list argument must be an Array of Buffers.");if(list.length===0){return new Buffer(0)}var i;if(length===undefined){length=0;for(i=0;i<list.length;i++){length+=list[i].length}}var buf=new Buffer(length);var pos=0;for(i=0;i<list.length;i++){var item=list[i];item.copy(buf,pos);pos+=item.length}return buf};function byteLength(string,encoding){if(typeof string!=="string")string=""+string;var len=string.length;if(len===0)return 0;var loweredCase=false;for(;;){switch(encoding){case"ascii":case"binary":case"raw":case"raws":return len;case"utf8":case"utf-8":return utf8ToBytes(string).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return len*2;case"hex":return len>>>1;case"base64":return base64ToBytes(string).length;default:if(loweredCase)return utf8ToBytes(string).length;encoding=(""+encoding).toLowerCase();loweredCase=true}}}Buffer.byteLength=byteLength;function slowToString(encoding,start,end){var loweredCase=false;start=start|0;end=end===undefined||end===Infinity?this.length:end|0;if(!encoding)encoding="utf8";if(start<0)start=0;if(end>this.length)end=this.length;if(end<=start)return"";while(true){switch(encoding){case"hex":return hexSlice(this,start,end);case"utf8":case"utf-8":return utf8Slice(this,start,end);case"ascii":return asciiSlice(this,start,end);case"binary":return binarySlice(this,start,end);case"base64":return base64Slice(this,start,end);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(encoding+"").toLowerCase();loweredCase=true}}}Buffer.prototype._isBuffer=true;Buffer.prototype.toString=function toString(){var length=this.length|0;if(length===0)return"";if(arguments.length===0)return utf8Slice(this,0,length);return slowToString.apply(this,arguments)};Buffer.prototype.equals=function equals(b){if(!Buffer.isBuffer(b))throw new TypeError("Argument must be a Buffer");if(this===b)return true;return Buffer.compare(this,b)===0};Buffer.prototype.inspect=function inspect(){var str="";var max=exports.INSPECT_MAX_BYTES;if(this.length>0){str=this.toString("hex",0,max).match(/.{2}/g).join(" ");if(this.length>max)str+=" ... "}return"<Buffer "+str+">"};Buffer.prototype.compare=function compare(b){if(!Buffer.isBuffer(b))throw new TypeError("Argument must be a Buffer");return Buffer.compare(this,b)};Buffer.prototype.indexOf=function indexOf(val,byteOffset){if(byteOffset>2147483647)byteOffset=2147483647;else if(byteOffset<-2147483648)byteOffset=-2147483648;byteOffset>>=0;if(this.length===0)return-1;if(byteOffset>=this.length)return-1;if(byteOffset<0)byteOffset=Math.max(this.length+byteOffset,0);if(typeof val==="string"){if(val.length===0)return-1;return String.prototype.indexOf.call(this,val,byteOffset)}if(Buffer.isBuffer(val)){return arrayIndexOf(this,val,byteOffset)}if(typeof val==="number"){if(Buffer.TYPED_ARRAY_SUPPORT&&Uint8Array.prototype.indexOf==="function"){return Uint8Array.prototype.indexOf.call(this,val,byteOffset)}return arrayIndexOf(this,[val],byteOffset)}function arrayIndexOf(arr,val,byteOffset){var foundIndex=-1;for(var i=0;byteOffset+i<arr.length;i++){if(arr[byteOffset+i]===val[foundIndex===-1?0:i-foundIndex]){if(foundIndex===-1)foundIndex=i;if(i-foundIndex+1===val.length)return byteOffset+foundIndex}else{foundIndex=-1}}return-1}throw new TypeError("val must be string, number or Buffer")};function hexWrite(buf,string,offset,length){offset=Number(offset)||0;var remaining=buf.length-offset;if(!length){length=remaining}else{length=Number(length);if(length>remaining){length=remaining}}var strLen=string.length;if(strLen%2!==0)throw new Error("Invalid hex string");if(length>strLen/2){length=strLen/2}for(var i=0;i<length;i++){var parsed=parseInt(string.substr(i*2,2),16);if(isNaN(parsed))throw new Error("Invalid hex string");buf[offset+i]=parsed}return i}function utf8Write(buf,string,offset,length){return blitBuffer(utf8ToBytes(string,buf.length-offset),buf,offset,length)}function asciiWrite(buf,string,offset,length){return blitBuffer(asciiToBytes(string),buf,offset,length)}function binaryWrite(buf,string,offset,length){return asciiWrite(buf,string,offset,length)}function base64Write(buf,string,offset,length){return blitBuffer(base64ToBytes(string),buf,offset,length)}function ucs2Write(buf,string,offset,length){return blitBuffer(utf16leToBytes(string,buf.length-offset),buf,offset,length)}Buffer.prototype.write=function write(string,offset,length,encoding){if(offset===undefined){encoding="utf8";length=this.length;offset=0}else if(length===undefined&&typeof offset==="string"){encoding=offset;length=this.length;offset=0}else if(isFinite(offset)){offset=offset|0;if(isFinite(length)){length=length|0;if(encoding===undefined)encoding="utf8"}else{encoding=length;length=undefined}}else{var swap=encoding;encoding=offset;offset=length|0;length=swap}var remaining=this.length-offset;if(length===undefined||length>remaining)length=remaining;if(string.length>0&&(length<0||offset<0)||offset>this.length){throw new RangeError("attempt to write outside buffer bounds")}if(!encoding)encoding="utf8";var loweredCase=false;for(;;){switch(encoding){case"hex":return hexWrite(this,string,offset,length);case"utf8":case"utf-8":return utf8Write(this,string,offset,length);case"ascii":return asciiWrite(this,string,offset,length);case"binary":return binaryWrite(this,string,offset,length);case"base64":return base64Write(this,string,offset,length);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,string,offset,length);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(""+encoding).toLowerCase();loweredCase=true}}};Buffer.prototype.toJSON=function toJSON(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function base64Slice(buf,start,end){if(start===0&&end===buf.length){return base64.fromByteArray(buf)}else{return base64.fromByteArray(buf.slice(start,end))}}function utf8Slice(buf,start,end){end=Math.min(buf.length,end);var res=[];var i=start;while(i<end){var firstByte=buf[i];var codePoint=null;var bytesPerSequence=firstByte>239?4:firstByte>223?3:firstByte>191?2:1;if(i+bytesPerSequence<=end){var secondByte,thirdByte,fourthByte,tempCodePoint;switch(bytesPerSequence){case 1:if(firstByte<128){codePoint=firstByte}break;case 2:secondByte=buf[i+1];if((secondByte&192)===128){tempCodePoint=(firstByte&31)<<6|secondByte&63;if(tempCodePoint>127){codePoint=tempCodePoint}}break;case 3:secondByte=buf[i+1];thirdByte=buf[i+2];if((secondByte&192)===128&&(thirdByte&192)===128){tempCodePoint=(firstByte&15)<<12|(secondByte&63)<<6|thirdByte&63;if(tempCodePoint>2047&&(tempCodePoint<55296||tempCodePoint>57343)){codePoint=tempCodePoint}}break;case 4:secondByte=buf[i+1];thirdByte=buf[i+2];fourthByte=buf[i+3];if((secondByte&192)===128&&(thirdByte&192)===128&&(fourthByte&192)===128){tempCodePoint=(firstByte&15)<<18|(secondByte&63)<<12|(thirdByte&63)<<6|fourthByte&63;if(tempCodePoint>65535&&tempCodePoint<1114112){codePoint=tempCodePoint}}}}if(codePoint===null){codePoint=65533;bytesPerSequence=1}else if(codePoint>65535){codePoint-=65536;res.push(codePoint>>>10&1023|55296);codePoint=56320|codePoint&1023}res.push(codePoint);i+=bytesPerSequence}return decodeCodePointsArray(res)}var MAX_ARGUMENTS_LENGTH=4096;function decodeCodePointsArray(codePoints){var len=codePoints.length;if(len<=MAX_ARGUMENTS_LENGTH){return String.fromCharCode.apply(String,codePoints)}var res="";var i=0;while(i<len){res+=String.fromCharCode.apply(String,codePoints.slice(i,i+=MAX_ARGUMENTS_LENGTH))}return res}function asciiSlice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;i<end;i++){ret+=String.fromCharCode(buf[i]&127)}return ret}function binarySlice(buf,start,end){var ret="";end=Math.min(buf.length,end);for(var i=start;i<end;i++){ret+=String.fromCharCode(buf[i])}return ret}function hexSlice(buf,start,end){var len=buf.length;if(!start||start<0)start=0;if(!end||end<0||end>len)end=len;var out="";for(var i=start;i<end;i++){out+=toHex(buf[i])}return out}function utf16leSlice(buf,start,end){var bytes=buf.slice(start,end);var res="";for(var i=0;i<bytes.length;i+=2){res+=String.fromCharCode(bytes[i]+bytes[i+1]*256)}return res}Buffer.prototype.slice=function slice(start,end){var len=this.length;start=~~start;end=end===undefined?len:~~end;if(start<0){start+=len;if(start<0)start=0}else if(start>len){start=len}if(end<0){end+=len;if(end<0)end=0}else if(end>len){end=len}if(end<start)end=start;var newBuf;if(Buffer.TYPED_ARRAY_SUPPORT){newBuf=this.subarray(start,end);newBuf.__proto__=Buffer.prototype}else{var sliceLen=end-start;newBuf=new Buffer(sliceLen,undefined);for(var i=0;i<sliceLen;i++){newBuf[i]=this[i+start]}}if(newBuf.length)newBuf.parent=this.parent||this;return newBuf};function checkOffset(offset,ext,length){if(offset%1!==0||offset<0)throw new RangeError("offset is not uint");if(offset+ext>length)throw new RangeError("Trying to access beyond buffer length")}Buffer.prototype.readUIntLE=function readUIntLE(offset,byteLength,noAssert){offset=offset|0;byteLength=byteLength|0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i<byteLength&&(mul*=256)){val+=this[offset+i]*mul}return val};Buffer.prototype.readUIntBE=function readUIntBE(offset,byteLength,noAssert){offset=offset|0;byteLength=byteLength|0;if(!noAssert){checkOffset(offset,byteLength,this.length)}var val=this[offset+--byteLength];var mul=1;while(byteLength>0&&(mul*=256)){val+=this[offset+--byteLength]*mul}return val};Buffer.prototype.readUInt8=function readUInt8(offset,noAssert){if(!noAssert)checkOffset(offset,1,this.length);return this[offset]};Buffer.prototype.readUInt16LE=function readUInt16LE(offset,noAssert){if(!noAssert)checkOffset(offset,2,this.length);return this[offset]|this[offset+1]<<8};Buffer.prototype.readUInt16BE=function readUInt16BE(offset,noAssert){if(!noAssert)checkOffset(offset,2,this.length);return this[offset]<<8|this[offset+1]};Buffer.prototype.readUInt32LE=function readUInt32LE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+this[offset+3]*16777216};Buffer.prototype.readUInt32BE=function readUInt32BE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return this[offset]*16777216+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3])};Buffer.prototype.readIntLE=function readIntLE(offset,byteLength,noAssert){offset=offset|0;byteLength=byteLength|0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i<byteLength&&(mul*=256)){val+=this[offset+i]*mul}mul*=128;if(val>=mul)val-=Math.pow(2,8*byteLength);return val};Buffer.prototype.readIntBE=function readIntBE(offset,byteLength,noAssert){offset=offset|0;byteLength=byteLength|0;if(!noAssert)checkOffset(offset,byteLength,this.length);var i=byteLength;var mul=1;var val=this[offset+--i];while(i>0&&(mul*=256)){val+=this[offset+--i]*mul}mul*=128;if(val>=mul)val-=Math.pow(2,8*byteLength);return val};Buffer.prototype.readInt8=function readInt8(offset,noAssert){if(!noAssert)checkOffset(offset,1,this.length);if(!(this[offset]&128))return this[offset];return(255-this[offset]+1)*-1};Buffer.prototype.readInt16LE=function readInt16LE(offset,noAssert){if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return val&32768?val|4294901760:val};Buffer.prototype.readInt16BE=function readInt16BE(offset,noAssert){if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return val&32768?val|4294901760:val};Buffer.prototype.readInt32LE=function readInt32LE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24};Buffer.prototype.readInt32BE=function readInt32BE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3]};Buffer.prototype.readFloatLE=function readFloatLE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return ieee754.read(this,offset,true,23,4)};Buffer.prototype.readFloatBE=function readFloatBE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return ieee754.read(this,offset,false,23,4)};Buffer.prototype.readDoubleLE=function readDoubleLE(offset,noAssert){if(!noAssert)checkOffset(offset,8,this.length);return ieee754.read(this,offset,true,52,8)};Buffer.prototype.readDoubleBE=function readDoubleBE(offset,noAssert){if(!noAssert)checkOffset(offset,8,this.length);return ieee754.read(this,offset,false,52,8)};function checkInt(buf,value,offset,ext,max,min){if(!Buffer.isBuffer(buf))throw new TypeError("buffer must be a Buffer instance");if(value>max||value<min)throw new RangeError("value is out of bounds");if(offset+ext>buf.length)throw new RangeError("index out of range")}Buffer.prototype.writeUIntLE=function writeUIntLE(value,offset,byteLength,noAssert){value=+value;offset=offset|0;byteLength=byteLength|0;if(!noAssert)checkInt(this,value,offset,byteLength,Math.pow(2,8*byteLength),0);var mul=1;var i=0;this[offset]=value&255;while(++i<byteLength&&(mul*=256)){this[offset+i]=value/mul&255}return offset+byteLength};Buffer.prototype.writeUIntBE=function writeUIntBE(value,offset,byteLength,noAssert){value=+value;offset=offset|0;byteLength=byteLength|0;if(!noAssert)checkInt(this,value,offset,byteLength,Math.pow(2,8*byteLength),0);var i=byteLength-1;var mul=1;this[offset+i]=value&255;while(--i>=0&&(mul*=256)){this[offset+i]=value/mul&255}return offset+byteLength};Buffer.prototype.writeUInt8=function writeUInt8(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,1,255,0);if(!Buffer.TYPED_ARRAY_SUPPORT)value=Math.floor(value);this[offset]=value&255;return offset+1};function objectWriteUInt16(buf,value,offset,littleEndian){if(value<0)value=65535+value+1;for(var i=0,j=Math.min(buf.length-offset,2);i<j;i++){buf[offset+i]=(value&255<<8*(littleEndian?i:1-i))>>>(littleEndian?i:1-i)*8}}Buffer.prototype.writeUInt16LE=function writeUInt16LE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,2,65535,0);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value&255;this[offset+1]=value>>>8}else{objectWriteUInt16(this,value,offset,true)}return offset+2};Buffer.prototype.writeUInt16BE=function writeUInt16BE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,2,65535,0);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value>>>8;this[offset+1]=value&255}else{objectWriteUInt16(this,value,offset,false)}return offset+2};function objectWriteUInt32(buf,value,offset,littleEndian){if(value<0)value=4294967295+value+1;for(var i=0,j=Math.min(buf.length-offset,4);i<j;i++){buf[offset+i]=value>>>(littleEndian?i:3-i)*8&255}}Buffer.prototype.writeUInt32LE=function writeUInt32LE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,4,4294967295,0);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset+3]=value>>>24;this[offset+2]=value>>>16;this[offset+1]=value>>>8;this[offset]=value&255}else{objectWriteUInt32(this,value,offset,true)}return offset+4};Buffer.prototype.writeUInt32BE=function writeUInt32BE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,4,4294967295,0);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value&255}else{objectWriteUInt32(this,value,offset,false)}return offset+4};Buffer.prototype.writeIntLE=function writeIntLE(value,offset,byteLength,noAssert){value=+value;offset=offset|0;if(!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=0;var mul=1;var sub=value<0?1:0;this[offset]=value&255;while(++i<byteLength&&(mul*=256)){this[offset+i]=(value/mul>>0)-sub&255}return offset+byteLength};Buffer.prototype.writeIntBE=function writeIntBE(value,offset,byteLength,noAssert){value=+value;offset=offset|0;if(!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=byteLength-1;var mul=1;var sub=value<0?1:0;this[offset+i]=value&255;while(--i>=0&&(mul*=256)){this[offset+i]=(value/mul>>0)-sub&255}return offset+byteLength};Buffer.prototype.writeInt8=function writeInt8(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,1,127,-128);if(!Buffer.TYPED_ARRAY_SUPPORT)value=Math.floor(value);if(value<0)value=255+value+1;this[offset]=value&255;return offset+1};Buffer.prototype.writeInt16LE=function writeInt16LE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,2,32767,-32768);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value&255;this[offset+1]=value>>>8}else{objectWriteUInt16(this,value,offset,true)}return offset+2};Buffer.prototype.writeInt16BE=function writeInt16BE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,2,32767,-32768);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value>>>8;this[offset+1]=value&255}else{objectWriteUInt16(this,value,offset,false)}return offset+2};Buffer.prototype.writeInt32LE=function writeInt32LE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,4,2147483647,-2147483648);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value&255;this[offset+1]=value>>>8;this[offset+2]=value>>>16;this[offset+3]=value>>>24}else{objectWriteUInt32(this,value,offset,true)}return offset+4};Buffer.prototype.writeInt32BE=function writeInt32BE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,4,2147483647,-2147483648);if(value<0)value=4294967295+value+1;if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value&255}else{objectWriteUInt32(this,value,offset,false)}return offset+4};function checkIEEE754(buf,value,offset,ext,max,min){if(offset+ext>buf.length)throw new RangeError("index out of range");if(offset<0)throw new RangeError("index out of range")}function writeFloat(buf,value,offset,littleEndian,noAssert){if(!noAssert){checkIEEE754(buf,value,offset,4,3.4028234663852886e38,-3.4028234663852886e38)}ieee754.write(buf,value,offset,littleEndian,23,4);return offset+4}Buffer.prototype.writeFloatLE=function writeFloatLE(value,offset,noAssert){return writeFloat(this,value,offset,true,noAssert)};Buffer.prototype.writeFloatBE=function writeFloatBE(value,offset,noAssert){return writeFloat(this,value,offset,false,noAssert)};function writeDouble(buf,value,offset,littleEndian,noAssert){if(!noAssert){checkIEEE754(buf,value,offset,8,1.7976931348623157e308,-1.7976931348623157e308)}ieee754.write(buf,value,offset,littleEndian,52,8);return offset+8}Buffer.prototype.writeDoubleLE=function writeDoubleLE(value,offset,noAssert){return writeDouble(this,value,offset,true,noAssert)};Buffer.prototype.writeDoubleBE=function writeDoubleBE(value,offset,noAssert){return writeDouble(this,value,offset,false,noAssert)};Buffer.prototype.copy=function copy(target,targetStart,start,end){if(!start)start=0;if(!end&&end!==0)end=this.length;if(targetStart>=target.length)targetStart=target.length;if(!targetStart)targetStart=0;if(end>0&&end<start)end=start;if(end===start)return 0;if(target.length===0||this.length===0)return 0;if(targetStart<0){throw new RangeError("targetStart out of bounds")}if(start<0||start>=this.length)throw new RangeError("sourceStart out of bounds");if(end<0)throw new RangeError("sourceEnd out of bounds");if(end>this.length)end=this.length;if(target.length-targetStart<end-start){end=target.length-targetStart+start}var len=end-start;var i;if(this===target&&start<targetStart&&targetStart<end){for(i=len-1;i>=0;i--){target[i+targetStart]=this[i+start]}}else if(len<1e3||!Buffer.TYPED_ARRAY_SUPPORT){for(i=0;i<len;i++){target[i+targetStart]=this[i+start]}}else{Uint8Array.prototype.set.call(target,this.subarray(start,start+len),targetStart)}return len};Buffer.prototype.fill=function fill(value,start,end){if(!value)value=0;if(!start)start=0;if(!end)end=this.length;if(end<start)throw new RangeError("end < start");if(end===start)return;if(this.length===0)return;if(start<0||start>=this.length)throw new RangeError("start out of bounds");if(end<0||end>this.length)throw new RangeError("end out of bounds");var i;if(typeof value==="number"){for(i=start;i<end;i++){this[i]=value}}else{var bytes=utf8ToBytes(value.toString());var len=bytes.length;for(i=start;i<end;i++){this[i]=bytes[i%len]}}return this};var INVALID_BASE64_RE=/[^+\/0-9A-Za-z-_]/g;function base64clean(str){str=stringtrim(str).replace(INVALID_BASE64_RE,"");if(str.length<2)return"";while(str.length%4!==0){str=str+"="}return str}function stringtrim(str){if(str.trim)return str.trim();return str.replace(/^\s+|\s+$/g,"")}function toHex(n){if(n<16)return"0"+n.toString(16);return n.toString(16)}function utf8ToBytes(string,units){units=units||Infinity;var codePoint;var length=string.length;var leadSurrogate=null;var bytes=[];for(var i=0;i<length;i++){codePoint=string.charCodeAt(i);if(codePoint>55295&&codePoint<57344){if(!leadSurrogate){if(codePoint>56319){if((units-=3)>-1)bytes.push(239,191,189);continue}else if(i+1===length){if((units-=3)>-1)bytes.push(239,191,189);continue}leadSurrogate=codePoint;continue}if(codePoint<56320){if((units-=3)>-1)bytes.push(239,191,189);leadSurrogate=codePoint;continue}codePoint=(leadSurrogate-55296<<10|codePoint-56320)+65536}else if(leadSurrogate){if((units-=3)>-1)bytes.push(239,191,189)}leadSurrogate=null;if(codePoint<128){if((units-=1)<0)break;bytes.push(codePoint)}else if(codePoint<2048){if((units-=2)<0)break;bytes.push(codePoint>>6|192,codePoint&63|128)}else if(codePoint<65536){if((units-=3)<0)break;bytes.push(codePoint>>12|224,codePoint>>6&63|128,codePoint&63|128)}else if(codePoint<1114112){if((units-=4)<0)break;bytes.push(codePoint>>18|240,codePoint>>12&63|128,codePoint>>6&63|128,codePoint&63|128)}else{throw new Error("Invalid code point")}}return bytes}function asciiToBytes(str){var byteArray=[];for(var i=0;i<str.length;i++){byteArray.push(str.charCodeAt(i)&255)}return byteArray}function utf16leToBytes(str,units){var c,hi,lo;var byteArray=[];for(var i=0;i<str.length;i++){if((units-=2)<0)break;c=str.charCodeAt(i);hi=c>>8;lo=c%256;byteArray.push(lo);byteArray.push(hi)}return byteArray}function base64ToBytes(str){return base64.toByteArray(base64clean(str))}function blitBuffer(src,dst,offset,length){for(var i=0;i<length;i++){if(i+offset>=dst.length||i>=src.length)break;dst[i+offset]=src[i]}return i}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"base64-js":"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/node_modules/base64-js/lib/b64.js",ieee754:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/node_modules/ieee754/index.js",isarray:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/node_modules/isarray/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/node_modules/base64-js/lib/b64.js":[function(require,module,exports){"use strict";exports.toByteArray=toByteArray;exports.fromByteArray=fromByteArray;var lookup=[];var revLookup=[];var Arr=typeof Uint8Array!=="undefined"?Uint8Array:Array;function init(){var code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var i=0,len=code.length;i<len;++i){lookup[i]=code[i];revLookup[code.charCodeAt(i)]=i}revLookup["-".charCodeAt(0)]=62;revLookup["_".charCodeAt(0)]=63}init();function toByteArray(b64){var i,j,l,tmp,placeHolders,arr;var len=b64.length;if(len%4>0){throw new Error("Invalid string. Length must be a multiple of 4")}placeHolders=b64[len-2]==="="?2:b64[len-1]==="="?1:0;arr=new Arr(len*3/4-placeHolders);l=placeHolders>0?len-4:len;
  6. var L=0;for(i=0,j=0;i<l;i+=4,j+=3){tmp=revLookup[b64.charCodeAt(i)]<<18|revLookup[b64.charCodeAt(i+1)]<<12|revLookup[b64.charCodeAt(i+2)]<<6|revLookup[b64.charCodeAt(i+3)];arr[L++]=tmp>>16&255;arr[L++]=tmp>>8&255;arr[L++]=tmp&255}if(placeHolders===2){tmp=revLookup[b64.charCodeAt(i)]<<2|revLookup[b64.charCodeAt(i+1)]>>4;arr[L++]=tmp&255}else if(placeHolders===1){tmp=revLookup[b64.charCodeAt(i)]<<10|revLookup[b64.charCodeAt(i+1)]<<4|revLookup[b64.charCodeAt(i+2)]>>2;arr[L++]=tmp>>8&255;arr[L++]=tmp&255}return arr}function tripletToBase64(num){return lookup[num>>18&63]+lookup[num>>12&63]+lookup[num>>6&63]+lookup[num&63]}function encodeChunk(uint8,start,end){var tmp;var output=[];for(var i=start;i<end;i+=3){tmp=(uint8[i]<<16)+(uint8[i+1]<<8)+uint8[i+2];output.push(tripletToBase64(tmp))}return output.join("")}function fromByteArray(uint8){var tmp;var len=uint8.length;var extraBytes=len%3;var output="";var parts=[];var maxChunkLength=16383;for(var i=0,len2=len-extraBytes;i<len2;i+=maxChunkLength){parts.push(encodeChunk(uint8,i,i+maxChunkLength>len2?len2:i+maxChunkLength))}if(extraBytes===1){tmp=uint8[len-1];output+=lookup[tmp>>2];output+=lookup[tmp<<4&63];output+="=="}else if(extraBytes===2){tmp=(uint8[len-2]<<8)+uint8[len-1];output+=lookup[tmp>>10];output+=lookup[tmp>>4&63];output+=lookup[tmp<<2&63];output+="="}parts.push(output);return parts.join("")}},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/node_modules/ieee754/index.js":[function(require,module,exports){exports.read=function(buffer,offset,isLE,mLen,nBytes){var e,m;var eLen=nBytes*8-mLen-1;var eMax=(1<<eLen)-1;var eBias=eMax>>1;var nBits=-7;var i=isLE?nBytes-1:0;var d=isLE?-1:1;var s=buffer[offset+i];i+=d;e=s&(1<<-nBits)-1;s>>=-nBits;nBits+=eLen;for(;nBits>0;e=e*256+buffer[offset+i],i+=d,nBits-=8){}m=e&(1<<-nBits)-1;e>>=-nBits;nBits+=mLen;for(;nBits>0;m=m*256+buffer[offset+i],i+=d,nBits-=8){}if(e===0){e=1-eBias}else if(e===eMax){return m?NaN:(s?-1:1)*Infinity}else{m=m+Math.pow(2,mLen);e=e-eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)};exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c;var eLen=nBytes*8-mLen-1;var eMax=(1<<eLen)-1;var eBias=eMax>>1;var rt=mLen===23?Math.pow(2,-24)-Math.pow(2,-77):0;var i=isLE?0:nBytes-1;var d=isLE?1:-1;var s=value<0||value===0&&1/value<0?1:0;value=Math.abs(value);if(isNaN(value)||value===Infinity){m=isNaN(value)?1:0;e=eMax}else{e=Math.floor(Math.log(value)/Math.LN2);if(value*(c=Math.pow(2,-e))<1){e--;c*=2}if(e+eBias>=1){value+=rt/c}else{value+=rt*Math.pow(2,1-eBias)}if(value*c>=2){e++;c/=2}if(e+eBias>=eMax){m=0;e=eMax}else if(e+eBias>=1){m=(value*c-1)*Math.pow(2,mLen);e=e+eBias}else{m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen);e=0}}for(;mLen>=8;buffer[offset+i]=m&255,i+=d,m/=256,mLen-=8){}e=e<<mLen|m;eLen+=mLen;for(;eLen>0;buffer[offset+i]=e&255,i+=d,e/=256,eLen-=8){}buffer[offset+i-d]|=s*128}},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/node_modules/isarray/index.js":[function(require,module,exports){var toString={}.toString;module.exports=Array.isArray||function(arr){return toString.call(arr)=="[object Array]"}},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/index.js":[function(require,module,exports){"use strict";exports.randomBytes=exports.rng=exports.pseudoRandomBytes=exports.prng=require("randombytes");exports.createHash=exports.Hash=require("create-hash");exports.createHmac=exports.Hmac=require("create-hmac");var hashes=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(Object.keys(require("browserify-sign/algos")));exports.getHashes=function(){return hashes};var p=require("pbkdf2");exports.pbkdf2=p.pbkdf2;exports.pbkdf2Sync=p.pbkdf2Sync;var aes=require("browserify-cipher");["Cipher","createCipher","Cipheriv","createCipheriv","Decipher","createDecipher","Decipheriv","createDecipheriv","getCiphers","listCiphers"].forEach(function(key){exports[key]=aes[key]});var dh=require("diffie-hellman");["DiffieHellmanGroup","createDiffieHellmanGroup","getDiffieHellman","createDiffieHellman","DiffieHellman"].forEach(function(key){exports[key]=dh[key]});var sign=require("browserify-sign");["createSign","Sign","createVerify","Verify"].forEach(function(key){exports[key]=sign[key]});exports.createECDH=require("create-ecdh");var publicEncrypt=require("public-encrypt");["publicEncrypt","privateEncrypt","publicDecrypt","privateDecrypt"].forEach(function(key){exports[key]=publicEncrypt[key]});["createCredentials"].forEach(function(name){exports[name]=function(){throw new Error(["sorry, "+name+" is not implemented yet","we accept pull requests","https://github.com/crypto-browserify/crypto-browserify"].join("\n"))}})},{"browserify-cipher":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/browser.js","browserify-sign":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/browser.js","browserify-sign/algos":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/algos.js","create-ecdh":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/browser.js","create-hash":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/browser.js","create-hmac":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hmac/browser.js","diffie-hellman":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/diffie-hellman/browser.js",pbkdf2:"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/pbkdf2/browser.js","public-encrypt":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/browser.js",randombytes:"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/randombytes/browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/browser.js":[function(require,module,exports){var ebtk=require("evp_bytestokey");var aes=require("browserify-aes/browser");var DES=require("browserify-des");var desModes=require("browserify-des/modes");var aesModes=require("browserify-aes/modes");function createCipher(suite,password){var keyLen,ivLen;suite=suite.toLowerCase();if(aesModes[suite]){keyLen=aesModes[suite].key;ivLen=aesModes[suite].iv}else if(desModes[suite]){keyLen=desModes[suite].key*8;ivLen=desModes[suite].iv}else{throw new TypeError("invalid suite type")}var keys=ebtk(password,false,keyLen,ivLen);return createCipheriv(suite,keys.key,keys.iv)}function createDecipher(suite,password){var keyLen,ivLen;suite=suite.toLowerCase();if(aesModes[suite]){keyLen=aesModes[suite].key;ivLen=aesModes[suite].iv}else if(desModes[suite]){keyLen=desModes[suite].key*8;ivLen=desModes[suite].iv}else{throw new TypeError("invalid suite type")}var keys=ebtk(password,false,keyLen,ivLen);return createDecipheriv(suite,keys.key,keys.iv)}function createCipheriv(suite,key,iv){suite=suite.toLowerCase();if(aesModes[suite]){return aes.createCipheriv(suite,key,iv)}else if(desModes[suite]){return new DES({key:key,iv:iv,mode:suite})}else{throw new TypeError("invalid suite type")}}function createDecipheriv(suite,key,iv){suite=suite.toLowerCase();if(aesModes[suite]){return aes.createDecipheriv(suite,key,iv)}else if(desModes[suite]){return new DES({key:key,iv:iv,mode:suite,decrypt:true})}else{throw new TypeError("invalid suite type")}}exports.createCipher=exports.Cipher=createCipher;exports.createCipheriv=exports.Cipheriv=createCipheriv;exports.createDecipher=exports.Decipher=createDecipher;exports.createDecipheriv=exports.Decipheriv=createDecipheriv;function getCiphers(){return Object.keys(desModes).concat(aes.getCiphers())}exports.listCiphers=exports.getCiphers=getCiphers},{"browserify-aes/browser":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/browser.js","browserify-aes/modes":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes.js","browserify-des":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-des/index.js","browserify-des/modes":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-des/modes.js",evp_bytestokey:"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/evp_bytestokey/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/aes.js":[function(require,module,exports){(function(Buffer){var uint_max=Math.pow(2,32);function fixup_uint32(x){var ret,x_pos;ret=x>uint_max||x<0?(x_pos=Math.abs(x)%uint_max,x<0?uint_max-x_pos:x_pos):x;return ret}function scrub_vec(v){for(var i=0;i<v.length;v++){v[i]=0}return false}function Global(){this.SBOX=[];this.INV_SBOX=[];this.SUB_MIX=[[],[],[],[]];this.INV_SUB_MIX=[[],[],[],[]];this.init();this.RCON=[0,1,2,4,8,16,32,64,128,27,54]}Global.prototype.init=function(){var d,i,sx,t,x,x2,x4,x8,xi,_i;d=function(){var _i,_results;_results=[];for(i=_i=0;_i<256;i=++_i){if(i<128){_results.push(i<<1)}else{_results.push(i<<1^283)}}return _results}();x=0;xi=0;for(i=_i=0;_i<256;i=++_i){sx=xi^xi<<1^xi<<2^xi<<3^xi<<4;sx=sx>>>8^sx&255^99;this.SBOX[x]=sx;this.INV_SBOX[sx]=x;x2=d[x];x4=d[x2];x8=d[x4];t=d[sx]*257^sx*16843008;this.SUB_MIX[0][x]=t<<24|t>>>8;this.SUB_MIX[1][x]=t<<16|t>>>16;this.SUB_MIX[2][x]=t<<8|t>>>24;this.SUB_MIX[3][x]=t;t=x8*16843009^x4*65537^x2*257^x*16843008;this.INV_SUB_MIX[0][sx]=t<<24|t>>>8;this.INV_SUB_MIX[1][sx]=t<<16|t>>>16;this.INV_SUB_MIX[2][sx]=t<<8|t>>>24;this.INV_SUB_MIX[3][sx]=t;if(x===0){x=xi=1}else{x=x2^d[d[d[x8^x2]]];xi^=d[d[xi]]}}return true};var G=new Global;AES.blockSize=4*4;AES.prototype.blockSize=AES.blockSize;AES.keySize=256/8;AES.prototype.keySize=AES.keySize;function bufferToArray(buf){var len=buf.length/4;var out=new Array(len);var i=-1;while(++i<len){out[i]=buf.readUInt32BE(i*4)}return out}function AES(key){this._key=bufferToArray(key);this._doReset()}AES.prototype._doReset=function(){var invKsRow,keySize,keyWords,ksRow,ksRows,t;keyWords=this._key;keySize=keyWords.length;this._nRounds=keySize+6;ksRows=(this._nRounds+1)*4;this._keySchedule=[];for(ksRow=0;ksRow<ksRows;ksRow++){this._keySchedule[ksRow]=ksRow<keySize?keyWords[ksRow]:(t=this._keySchedule[ksRow-1],ksRow%keySize===0?(t=t<<8|t>>>24,t=G.SBOX[t>>>24]<<24|G.SBOX[t>>>16&255]<<16|G.SBOX[t>>>8&255]<<8|G.SBOX[t&255],t^=G.RCON[ksRow/keySize|0]<<24):keySize>6&&ksRow%keySize===4?t=G.SBOX[t>>>24]<<24|G.SBOX[t>>>16&255]<<16|G.SBOX[t>>>8&255]<<8|G.SBOX[t&255]:void 0,this._keySchedule[ksRow-keySize]^t)}this._invKeySchedule=[];for(invKsRow=0;invKsRow<ksRows;invKsRow++){ksRow=ksRows-invKsRow;t=this._keySchedule[ksRow-(invKsRow%4?0:4)];this._invKeySchedule[invKsRow]=invKsRow<4||ksRow<=4?t:G.INV_SUB_MIX[0][G.SBOX[t>>>24]]^G.INV_SUB_MIX[1][G.SBOX[t>>>16&255]]^G.INV_SUB_MIX[2][G.SBOX[t>>>8&255]]^G.INV_SUB_MIX[3][G.SBOX[t&255]]}return true};AES.prototype.encryptBlock=function(M){M=bufferToArray(new Buffer(M));var out=this._doCryptBlock(M,this._keySchedule,G.SUB_MIX,G.SBOX);var buf=new Buffer(16);buf.writeUInt32BE(out[0],0);buf.writeUInt32BE(out[1],4);buf.writeUInt32BE(out[2],8);buf.writeUInt32BE(out[3],12);return buf};AES.prototype.decryptBlock=function(M){M=bufferToArray(new Buffer(M));var temp=[M[3],M[1]];M[1]=temp[0];M[3]=temp[1];var out=this._doCryptBlock(M,this._invKeySchedule,G.INV_SUB_MIX,G.INV_SBOX);var buf=new Buffer(16);buf.writeUInt32BE(out[0],0);buf.writeUInt32BE(out[3],4);buf.writeUInt32BE(out[2],8);buf.writeUInt32BE(out[1],12);return buf};AES.prototype.scrub=function(){scrub_vec(this._keySchedule);scrub_vec(this._invKeySchedule);scrub_vec(this._key)};AES.prototype._doCryptBlock=function(M,keySchedule,SUB_MIX,SBOX){var ksRow,s0,s1,s2,s3,t0,t1,t2,t3;s0=M[0]^keySchedule[0];s1=M[1]^keySchedule[1];s2=M[2]^keySchedule[2];s3=M[3]^keySchedule[3];ksRow=4;for(var round=1;round<this._nRounds;round++){t0=SUB_MIX[0][s0>>>24]^SUB_MIX[1][s1>>>16&255]^SUB_MIX[2][s2>>>8&255]^SUB_MIX[3][s3&255]^keySchedule[ksRow++];t1=SUB_MIX[0][s1>>>24]^SUB_MIX[1][s2>>>16&255]^SUB_MIX[2][s3>>>8&255]^SUB_MIX[3][s0&255]^keySchedule[ksRow++];t2=SUB_MIX[0][s2>>>24]^SUB_MIX[1][s3>>>16&255]^SUB_MIX[2][s0>>>8&255]^SUB_MIX[3][s1&255]^keySchedule[ksRow++];t3=SUB_MIX[0][s3>>>24]^SUB_MIX[1][s0>>>16&255]^SUB_MIX[2][s1>>>8&255]^SUB_MIX[3][s2&255]^keySchedule[ksRow++];s0=t0;s1=t1;s2=t2;s3=t3}t0=(SBOX[s0>>>24]<<24|SBOX[s1>>>16&255]<<16|SBOX[s2>>>8&255]<<8|SBOX[s3&255])^keySchedule[ksRow++];t1=(SBOX[s1>>>24]<<24|SBOX[s2>>>16&255]<<16|SBOX[s3>>>8&255]<<8|SBOX[s0&255])^keySchedule[ksRow++];t2=(SBOX[s2>>>24]<<24|SBOX[s3>>>16&255]<<16|SBOX[s0>>>8&255]<<8|SBOX[s1&255])^keySchedule[ksRow++];t3=(SBOX[s3>>>24]<<24|SBOX[s0>>>16&255]<<16|SBOX[s1>>>8&255]<<8|SBOX[s2&255])^keySchedule[ksRow++];return[fixup_uint32(t0),fixup_uint32(t1),fixup_uint32(t2),fixup_uint32(t3)]};exports.AES=AES}).call(this,require("buffer").Buffer)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/authCipher.js":[function(require,module,exports){(function(Buffer){var aes=require("./aes");var Transform=require("cipher-base");var inherits=require("inherits");var GHASH=require("./ghash");var xor=require("buffer-xor");inherits(StreamCipher,Transform);module.exports=StreamCipher;function StreamCipher(mode,key,iv,decrypt){if(!(this instanceof StreamCipher)){return new StreamCipher(mode,key,iv)}Transform.call(this);this._finID=Buffer.concat([iv,new Buffer([0,0,0,1])]);iv=Buffer.concat([iv,new Buffer([0,0,0,2])]);this._cipher=new aes.AES(key);this._prev=new Buffer(iv.length);this._cache=new Buffer("");this._secCache=new Buffer("");this._decrypt=decrypt;this._alen=0;this._len=0;iv.copy(this._prev);this._mode=mode;var h=new Buffer(4);h.fill(0);this._ghash=new GHASH(this._cipher.encryptBlock(h));this._authTag=null;this._called=false}StreamCipher.prototype._update=function(chunk){if(!this._called&&this._alen){var rump=16-this._alen%16;if(rump<16){rump=new Buffer(rump);rump.fill(0);this._ghash.update(rump)}}this._called=true;var out=this._mode.encrypt(this,chunk);if(this._decrypt){this._ghash.update(chunk)}else{this._ghash.update(out)}this._len+=chunk.length;return out};StreamCipher.prototype._final=function(){if(this._decrypt&&!this._authTag){throw new Error("Unsupported state or unable to authenticate data")}var tag=xor(this._ghash.final(this._alen*8,this._len*8),this._cipher.encryptBlock(this._finID));if(this._decrypt){if(xorTest(tag,this._authTag)){throw new Error("Unsupported state or unable to authenticate data")}}else{this._authTag=tag}this._cipher.scrub()};StreamCipher.prototype.getAuthTag=function getAuthTag(){if(!this._decrypt&&Buffer.isBuffer(this._authTag)){return this._authTag}else{throw new Error("Attempting to get auth tag in unsupported state")}};StreamCipher.prototype.setAuthTag=function setAuthTag(tag){if(this._decrypt){this._authTag=tag}else{throw new Error("Attempting to set auth tag in unsupported state")}};StreamCipher.prototype.setAAD=function setAAD(buf){if(!this._called){this._ghash.update(buf);this._alen+=buf.length}else{throw new Error("Attempting to set AAD in unsupported state")}};function xorTest(a,b){var out=0;if(a.length!==b.length){out++}var len=Math.min(a.length,b.length);var i=-1;while(++i<len){out+=a[i]^b[i]}return out}}).call(this,require("buffer").Buffer)},{"./aes":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/aes.js","./ghash":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/ghash.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","buffer-xor":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/node_modules/buffer-xor/index.js","cipher-base":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/node_modules/cipher-base/index.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/browser.js":[function(require,module,exports){var ciphers=require("./encrypter");exports.createCipher=exports.Cipher=ciphers.createCipher;exports.createCipheriv=exports.Cipheriv=ciphers.createCipheriv;var deciphers=require("./decrypter");exports.createDecipher=exports.Decipher=deciphers.createDecipher;exports.createDecipheriv=exports.Decipheriv=deciphers.createDecipheriv;var modes=require("./modes");function getCiphers(){return Object.keys(modes)}exports.listCiphers=exports.getCiphers=getCiphers},{"./decrypter":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/decrypter.js","./encrypter":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/encrypter.js","./modes":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/decrypter.js":[function(require,module,exports){(function(Buffer){var aes=require("./aes");var Transform=require("cipher-base");var inherits=require("inherits");var modes=require("./modes");var StreamCipher=require("./streamCipher");var AuthCipher=require("./authCipher");var ebtk=require("evp_bytestokey");inherits(Decipher,Transform);function Decipher(mode,key,iv){if(!(this instanceof Decipher)){return new Decipher(mode,key,iv)}Transform.call(this);this._cache=new Splitter;this._last=void 0;this._cipher=new aes.AES(key);this._prev=new Buffer(iv.length);iv.copy(this._prev);this._mode=mode;this._autopadding=true}Decipher.prototype._update=function(data){this._cache.add(data);var chunk;var thing;var out=[];while(chunk=this._cache.get(this._autopadding)){thing=this._mode.decrypt(this,chunk);out.push(thing)}return Buffer.concat(out)};Decipher.prototype._final=function(){var chunk=this._cache.flush();if(this._autopadding){return unpad(this._mode.decrypt(this,chunk))}else if(chunk){throw new Error("data not multiple of block length")}};Decipher.prototype.setAutoPadding=function(setTo){this._autopadding=!!setTo;return this};function Splitter(){if(!(this instanceof Splitter)){return new Splitter}this.cache=new Buffer("")}Splitter.prototype.add=function(data){this.cache=Buffer.concat([this.cache,data])};Splitter.prototype.get=function(autoPadding){var out;if(autoPadding){if(this.cache.length>16){out=this.cache.slice(0,16);this.cache=this.cache.slice(16);return out}}else{if(this.cache.length>=16){out=this.cache.slice(0,16);this.cache=this.cache.slice(16);return out}}return null};Splitter.prototype.flush=function(){if(this.cache.length){return this.cache}};function unpad(last){var padded=last[15];var i=-1;while(++i<padded){if(last[i+(16-padded)]!==padded){throw new Error("unable to decrypt data")}}if(padded===16){return}return last.slice(0,16-padded)}var modelist={ECB:require("./modes/ecb"),CBC:require("./modes/cbc"),CFB:require("./modes/cfb"),CFB8:require("./modes/cfb8"),CFB1:require("./modes/cfb1"),OFB:require("./modes/ofb"),CTR:require("./modes/ctr"),GCM:require("./modes/ctr")};function createDecipheriv(suite,password,iv){var config=modes[suite.toLowerCase()];if(!config){throw new TypeError("invalid suite type")}if(typeof iv==="string"){iv=new Buffer(iv)}if(typeof password==="string"){password=new Buffer(password)}if(password.length!==config.key/8){throw new TypeError("invalid key length "+password.length)}if(iv.length!==config.iv){throw new TypeError("invalid iv length "+iv.length)}if(config.type==="stream"){return new StreamCipher(modelist[config.mode],password,iv,true)}else if(config.type==="auth"){return new AuthCipher(modelist[config.mode],password,iv,true)}return new Decipher(modelist[config.mode],password,iv)}function createDecipher(suite,password){var config=modes[suite.toLowerCase()];if(!config){throw new TypeError("invalid suite type")}var keys=ebtk(password,false,config.key,config.iv);return createDecipheriv(suite,keys.key,keys.iv)}exports.createDecipher=createDecipher;exports.createDecipheriv=createDecipheriv}).call(this,require("buffer").Buffer)},{"./aes":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/aes.js","./authCipher":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/authCipher.js","./modes":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes.js","./modes/cbc":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/cbc.js","./modes/cfb":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/cfb.js","./modes/cfb1":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/cfb1.js","./modes/cfb8":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/cfb8.js","./modes/ctr":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/ctr.js","./modes/ecb":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/ecb.js","./modes/ofb":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/ofb.js","./streamCipher":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/streamCipher.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","cipher-base":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/node_modules/cipher-base/index.js",evp_bytestokey:"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/evp_bytestokey/index.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/encrypter.js":[function(require,module,exports){(function(Buffer){var aes=require("./aes");var Transform=require("cipher-base");var inherits=require("inherits");var modes=require("./modes");var ebtk=require("evp_bytestokey");var StreamCipher=require("./streamCipher");var AuthCipher=require("./authCipher");inherits(Cipher,Transform);function Cipher(mode,key,iv){if(!(this instanceof Cipher)){return new Cipher(mode,key,iv)}Transform.call(this);this._cache=new Splitter;this._cipher=new aes.AES(key);this._prev=new Buffer(iv.length);iv.copy(this._prev);this._mode=mode;this._autopadding=true}Cipher.prototype._update=function(data){this._cache.add(data);var chunk;var thing;var out=[];while(chunk=this._cache.get()){thing=this._mode.encrypt(this,chunk);out.push(thing)}return Buffer.concat(out)};Cipher.prototype._final=function(){var chunk=this._cache.flush();if(this._autopadding){chunk=this._mode.encrypt(this,chunk);this._cipher.scrub();return chunk}else if(chunk.toString("hex")!=="10101010101010101010101010101010"){this._cipher.scrub();throw new Error("data not multiple of block length")}};Cipher.prototype.setAutoPadding=function(setTo){this._autopadding=!!setTo;return this};function Splitter(){if(!(this instanceof Splitter)){return new Splitter}this.cache=new Buffer("")}Splitter.prototype.add=function(data){this.cache=Buffer.concat([this.cache,data])};Splitter.prototype.get=function(){if(this.cache.length>15){var out=this.cache.slice(0,16);this.cache=this.cache.slice(16);return out}return null};Splitter.prototype.flush=function(){var len=16-this.cache.length;var padBuff=new Buffer(len);var i=-1;while(++i<len){padBuff.writeUInt8(len,i)}var out=Buffer.concat([this.cache,padBuff]);return out};var modelist={ECB:require("./modes/ecb"),CBC:require("./modes/cbc"),CFB:require("./modes/cfb"),CFB8:require("./modes/cfb8"),CFB1:require("./modes/cfb1"),OFB:require("./modes/ofb"),CTR:require("./modes/ctr"),GCM:require("./modes/ctr")};function createCipheriv(suite,password,iv){var config=modes[suite.toLowerCase()];if(!config){throw new TypeError("invalid suite type")}if(typeof iv==="string"){iv=new Buffer(iv)}if(typeof password==="string"){password=new Buffer(password)}if(password.length!==config.key/8){throw new TypeError("invalid key length "+password.length)}if(iv.length!==config.iv){throw new TypeError("invalid iv length "+iv.length)}if(config.type==="stream"){return new StreamCipher(modelist[config.mode],password,iv)}else if(config.type==="auth"){return new AuthCipher(modelist[config.mode],password,iv)}return new Cipher(modelist[config.mode],password,iv)}function createCipher(suite,password){var config=modes[suite.toLowerCase()];if(!config){throw new TypeError("invalid suite type")}var keys=ebtk(password,false,config.key,config.iv);return createCipheriv(suite,keys.key,keys.iv)}exports.createCipheriv=createCipheriv;exports.createCipher=createCipher}).call(this,require("buffer").Buffer)},{"./aes":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/aes.js","./authCipher":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/authCipher.js","./modes":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes.js","./modes/cbc":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/cbc.js","./modes/cfb":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/cfb.js","./modes/cfb1":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/cfb1.js","./modes/cfb8":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/cfb8.js","./modes/ctr":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/ctr.js","./modes/ecb":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/ecb.js","./modes/ofb":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/ofb.js","./streamCipher":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/streamCipher.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","cipher-base":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/node_modules/cipher-base/index.js",evp_bytestokey:"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/evp_bytestokey/index.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/ghash.js":[function(require,module,exports){(function(Buffer){var zeros=new Buffer(16);zeros.fill(0);module.exports=GHASH;function GHASH(key){this.h=key;this.state=new Buffer(16);this.state.fill(0);this.cache=new Buffer("")}GHASH.prototype.ghash=function(block){var i=-1;while(++i<block.length){this.state[i]^=block[i]}this._multiply()};GHASH.prototype._multiply=function(){var Vi=toArray(this.h);var Zi=[0,0,0,0];var j,xi,lsb_Vi;var i=-1;while(++i<128){xi=(this.state[~~(i/8)]&1<<7-i%8)!==0;if(xi){Zi=xor(Zi,Vi)}lsb_Vi=(Vi[3]&1)!==0;for(j=3;j>0;j--){Vi[j]=Vi[j]>>>1|(Vi[j-1]&1)<<31}Vi[0]=Vi[0]>>>1;if(lsb_Vi){Vi[0]=Vi[0]^225<<24}}this.state=fromArray(Zi)};GHASH.prototype.update=function(buf){this.cache=Buffer.concat([this.cache,buf]);var chunk;while(this.cache.length>=16){chunk=this.cache.slice(0,16);this.cache=this.cache.slice(16);this.ghash(chunk)}};GHASH.prototype.final=function(abl,bl){if(this.cache.length){this.ghash(Buffer.concat([this.cache,zeros],16))}this.ghash(fromArray([0,abl,0,bl]));return this.state};function toArray(buf){return[buf.readUInt32BE(0),buf.readUInt32BE(4),buf.readUInt32BE(8),buf.readUInt32BE(12)]}function fromArray(out){out=out.map(fixup_uint32);var buf=new Buffer(16);buf.writeUInt32BE(out[0],0);buf.writeUInt32BE(out[1],4);buf.writeUInt32BE(out[2],8);buf.writeUInt32BE(out[3],12);return buf}var uint_max=Math.pow(2,32);function fixup_uint32(x){var ret,x_pos;ret=x>uint_max||x<0?(x_pos=Math.abs(x)%uint_max,x<0?uint_max-x_pos:x_pos):x;return ret}function xor(a,b){return[a[0]^b[0],a[1]^b[1],a[2]^b[2],a[3]^b[3]]}}).call(this,require("buffer").Buffer)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes.js":[function(require,module,exports){exports["aes-128-ecb"]={cipher:"AES",key:128,iv:0,mode:"ECB",type:"block"};exports["aes-192-ecb"]={cipher:"AES",key:192,iv:0,mode:"ECB",type:"block"};exports["aes-256-ecb"]={cipher:"AES",key:256,iv:0,mode:"ECB",type:"block"};exports["aes-128-cbc"]={cipher:"AES",key:128,iv:16,mode:"CBC",type:"block"};exports["aes-192-cbc"]={cipher:"AES",key:192,iv:16,mode:"CBC",type:"block"};exports["aes-256-cbc"]={cipher:"AES",key:256,iv:16,mode:"CBC",type:"block"};exports["aes128"]=exports["aes-128-cbc"];exports["aes192"]=exports["aes-192-cbc"];exports["aes256"]=exports["aes-256-cbc"];exports["aes-128-cfb"]={cipher:"AES",key:128,iv:16,mode:"CFB",type:"stream"
  7. };exports["aes-192-cfb"]={cipher:"AES",key:192,iv:16,mode:"CFB",type:"stream"};exports["aes-256-cfb"]={cipher:"AES",key:256,iv:16,mode:"CFB",type:"stream"};exports["aes-128-cfb8"]={cipher:"AES",key:128,iv:16,mode:"CFB8",type:"stream"};exports["aes-192-cfb8"]={cipher:"AES",key:192,iv:16,mode:"CFB8",type:"stream"};exports["aes-256-cfb8"]={cipher:"AES",key:256,iv:16,mode:"CFB8",type:"stream"};exports["aes-128-cfb1"]={cipher:"AES",key:128,iv:16,mode:"CFB1",type:"stream"};exports["aes-192-cfb1"]={cipher:"AES",key:192,iv:16,mode:"CFB1",type:"stream"};exports["aes-256-cfb1"]={cipher:"AES",key:256,iv:16,mode:"CFB1",type:"stream"};exports["aes-128-ofb"]={cipher:"AES",key:128,iv:16,mode:"OFB",type:"stream"};exports["aes-192-ofb"]={cipher:"AES",key:192,iv:16,mode:"OFB",type:"stream"};exports["aes-256-ofb"]={cipher:"AES",key:256,iv:16,mode:"OFB",type:"stream"};exports["aes-128-ctr"]={cipher:"AES",key:128,iv:16,mode:"CTR",type:"stream"};exports["aes-192-ctr"]={cipher:"AES",key:192,iv:16,mode:"CTR",type:"stream"};exports["aes-256-ctr"]={cipher:"AES",key:256,iv:16,mode:"CTR",type:"stream"};exports["aes-128-gcm"]={cipher:"AES",key:128,iv:12,mode:"GCM",type:"auth"};exports["aes-192-gcm"]={cipher:"AES",key:192,iv:12,mode:"GCM",type:"auth"};exports["aes-256-gcm"]={cipher:"AES",key:256,iv:12,mode:"GCM",type:"auth"}},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/cbc.js":[function(require,module,exports){var xor=require("buffer-xor");exports.encrypt=function(self,block){var data=xor(block,self._prev);self._prev=self._cipher.encryptBlock(data);return self._prev};exports.decrypt=function(self,block){var pad=self._prev;self._prev=block;var out=self._cipher.decryptBlock(block);return xor(out,pad)}},{"buffer-xor":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/node_modules/buffer-xor/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/cfb.js":[function(require,module,exports){(function(Buffer){var xor=require("buffer-xor");exports.encrypt=function(self,data,decrypt){var out=new Buffer("");var len;while(data.length){if(self._cache.length===0){self._cache=self._cipher.encryptBlock(self._prev);self._prev=new Buffer("")}if(self._cache.length<=data.length){len=self._cache.length;out=Buffer.concat([out,encryptStart(self,data.slice(0,len),decrypt)]);data=data.slice(len)}else{out=Buffer.concat([out,encryptStart(self,data,decrypt)]);break}}return out};function encryptStart(self,data,decrypt){var len=data.length;var out=xor(data,self._cache);self._cache=self._cache.slice(len);self._prev=Buffer.concat([self._prev,decrypt?data:out]);return out}}).call(this,require("buffer").Buffer)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","buffer-xor":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/node_modules/buffer-xor/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/cfb1.js":[function(require,module,exports){(function(Buffer){function encryptByte(self,byteParam,decrypt){var pad;var i=-1;var len=8;var out=0;var bit,value;while(++i<len){pad=self._cipher.encryptBlock(self._prev);bit=byteParam&1<<7-i?128:0;value=pad[0]^bit;out+=(value&128)>>i%8;self._prev=shiftIn(self._prev,decrypt?bit:value)}return out}exports.encrypt=function(self,chunk,decrypt){var len=chunk.length;var out=new Buffer(len);var i=-1;while(++i<len){out[i]=encryptByte(self,chunk[i],decrypt)}return out};function shiftIn(buffer,value){var len=buffer.length;var i=-1;var out=new Buffer(buffer.length);buffer=Buffer.concat([buffer,new Buffer([value])]);while(++i<len){out[i]=buffer[i]<<1|buffer[i+1]>>7}return out}}).call(this,require("buffer").Buffer)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/cfb8.js":[function(require,module,exports){(function(Buffer){function encryptByte(self,byteParam,decrypt){var pad=self._cipher.encryptBlock(self._prev);var out=pad[0]^byteParam;self._prev=Buffer.concat([self._prev.slice(1),new Buffer([decrypt?byteParam:out])]);return out}exports.encrypt=function(self,chunk,decrypt){var len=chunk.length;var out=new Buffer(len);var i=-1;while(++i<len){out[i]=encryptByte(self,chunk[i],decrypt)}return out}}).call(this,require("buffer").Buffer)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/ctr.js":[function(require,module,exports){(function(Buffer){var xor=require("buffer-xor");function incr32(iv){var len=iv.length;var item;while(len--){item=iv.readUInt8(len);if(item===255){iv.writeUInt8(0,len)}else{item++;iv.writeUInt8(item,len);break}}}function getBlock(self){var out=self._cipher.encryptBlock(self._prev);incr32(self._prev);return out}exports.encrypt=function(self,chunk){while(self._cache.length<chunk.length){self._cache=Buffer.concat([self._cache,getBlock(self)])}var pad=self._cache.slice(0,chunk.length);self._cache=self._cache.slice(chunk.length);return xor(chunk,pad)}}).call(this,require("buffer").Buffer)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","buffer-xor":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/node_modules/buffer-xor/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/ecb.js":[function(require,module,exports){exports.encrypt=function(self,block){return self._cipher.encryptBlock(block)};exports.decrypt=function(self,block){return self._cipher.decryptBlock(block)}},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/ofb.js":[function(require,module,exports){(function(Buffer){var xor=require("buffer-xor");function getBlock(self){self._prev=self._cipher.encryptBlock(self._prev);return self._prev}exports.encrypt=function(self,chunk){while(self._cache.length<chunk.length){self._cache=Buffer.concat([self._cache,getBlock(self)])}var pad=self._cache.slice(0,chunk.length);self._cache=self._cache.slice(chunk.length);return xor(chunk,pad)}}).call(this,require("buffer").Buffer)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","buffer-xor":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/node_modules/buffer-xor/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/node_modules/buffer-xor/index.js":[function(require,module,exports){(function(Buffer){module.exports=function xor(a,b){var length=Math.min(a.length,b.length);var buffer=new Buffer(length);for(var i=0;i<length;++i){buffer[i]=a[i]^b[i]}return buffer}}).call(this,require("buffer").Buffer)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/node_modules/cipher-base/index.js":[function(require,module,exports){(function(Buffer){var Transform=require("stream").Transform;var inherits=require("inherits");var StringDecoder=require("string_decoder").StringDecoder;module.exports=CipherBase;inherits(CipherBase,Transform);function CipherBase(hashMode){Transform.call(this);this.hashMode=typeof hashMode==="string";if(this.hashMode){this[hashMode]=this._finalOrDigest}else{this.final=this._finalOrDigest}this._decoder=null;this._encoding=null}CipherBase.prototype.update=function(data,inputEnc,outputEnc){if(typeof data==="string"){data=new Buffer(data,inputEnc)}var outData=this._update(data);if(this.hashMode){return this}if(outputEnc){outData=this._toString(outData,outputEnc)}return outData};CipherBase.prototype.setAutoPadding=function(){};CipherBase.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")};CipherBase.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")};CipherBase.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")};CipherBase.prototype._transform=function(data,_,next){var err;try{if(this.hashMode){this._update(data)}else{this.push(this._update(data))}}catch(e){err=e}finally{next(err)}};CipherBase.prototype._flush=function(done){var err;try{this.push(this._final())}catch(e){err=e}finally{done(err)}};CipherBase.prototype._finalOrDigest=function(outputEnc){var outData=this._final()||new Buffer("");if(outputEnc){outData=this._toString(outData,outputEnc,true)}return outData};CipherBase.prototype._toString=function(value,enc,final){if(!this._decoder){this._decoder=new StringDecoder(enc);this._encoding=enc}if(this._encoding!==enc){throw new Error("can't switch encodings")}var out=this._decoder.write(value);if(final){out+=this._decoder.end()}return out}}).call(this,require("buffer").Buffer)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js",stream:"/data/github/geopackage-node/node_modules/browserify/node_modules/stream-browserify/index.js",string_decoder:"/data/github/geopackage-node/node_modules/browserify/node_modules/string_decoder/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/streamCipher.js":[function(require,module,exports){(function(Buffer){var aes=require("./aes");var Transform=require("cipher-base");var inherits=require("inherits");inherits(StreamCipher,Transform);module.exports=StreamCipher;function StreamCipher(mode,key,iv,decrypt){if(!(this instanceof StreamCipher)){return new StreamCipher(mode,key,iv)}Transform.call(this);this._cipher=new aes.AES(key);this._prev=new Buffer(iv.length);this._cache=new Buffer("");this._secCache=new Buffer("");this._decrypt=decrypt;iv.copy(this._prev);this._mode=mode}StreamCipher.prototype._update=function(chunk){return this._mode.encrypt(this,chunk,this._decrypt)};StreamCipher.prototype._final=function(){this._cipher.scrub()}}).call(this,require("buffer").Buffer)},{"./aes":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/aes.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","cipher-base":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/node_modules/cipher-base/index.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-des/index.js":[function(require,module,exports){(function(Buffer){var CipherBase=require("cipher-base");var des=require("des.js");var inherits=require("inherits");var modes={"des-ede3-cbc":des.CBC.instantiate(des.EDE),"des-ede3":des.EDE,"des-ede-cbc":des.CBC.instantiate(des.EDE),"des-ede":des.EDE,"des-cbc":des.CBC.instantiate(des.DES),"des-ecb":des.DES};modes.des=modes["des-cbc"];modes.des3=modes["des-ede3-cbc"];module.exports=DES;inherits(DES,CipherBase);function DES(opts){CipherBase.call(this);var modeName=opts.mode.toLowerCase();var mode=modes[modeName];var type;if(opts.decrypt){type="decrypt"}else{type="encrypt"}var key=opts.key;if(modeName==="des-ede"||modeName==="des-ede-cbc"){key=Buffer.concat([key,key.slice(0,8)])}var iv=opts.iv;this._des=mode.create({key:key,iv:iv,type:type})}DES.prototype._update=function(data){return new Buffer(this._des.update(data))};DES.prototype._final=function(){return new Buffer(this._des.final())}}).call(this,require("buffer").Buffer)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","cipher-base":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-des/node_modules/cipher-base/index.js","des.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-des/node_modules/des.js/lib/des.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-des/modes.js":[function(require,module,exports){exports["des-ecb"]={key:8,iv:0};exports["des-cbc"]=exports.des={key:8,iv:8};exports["des-ede3-cbc"]=exports.des3={key:24,iv:8};exports["des-ede3"]={key:24,iv:0};exports["des-ede-cbc"]={key:16,iv:8};exports["des-ede"]={key:16,iv:0}},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-des/node_modules/cipher-base/index.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/node_modules/cipher-base/index.js"][0].apply(exports,arguments)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js",stream:"/data/github/geopackage-node/node_modules/browserify/node_modules/stream-browserify/index.js",string_decoder:"/data/github/geopackage-node/node_modules/browserify/node_modules/string_decoder/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-des/node_modules/des.js/lib/des.js":[function(require,module,exports){"use strict";exports.utils=require("./des/utils");exports.Cipher=require("./des/cipher");exports.DES=require("./des/des");exports.CBC=require("./des/cbc");exports.EDE=require("./des/ede")},{"./des/cbc":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-des/node_modules/des.js/lib/des/cbc.js","./des/cipher":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-des/node_modules/des.js/lib/des/cipher.js","./des/des":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-des/node_modules/des.js/lib/des/des.js","./des/ede":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-des/node_modules/des.js/lib/des/ede.js","./des/utils":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-des/node_modules/des.js/lib/des/utils.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-des/node_modules/des.js/lib/des/cbc.js":[function(require,module,exports){"use strict";var assert=require("minimalistic-assert");var inherits=require("inherits");var proto={};function CBCState(iv){assert.equal(iv.length,8,"Invalid IV length");this.iv=new Array(8);for(var i=0;i<this.iv.length;i++)this.iv[i]=iv[i]}function instantiate(Base){function CBC(options){Base.call(this,options);this._cbcInit()}inherits(CBC,Base);var keys=Object.keys(proto);for(var i=0;i<keys.length;i++){var key=keys[i];CBC.prototype[key]=proto[key]}CBC.create=function create(options){return new CBC(options)};return CBC}exports.instantiate=instantiate;proto._cbcInit=function _cbcInit(){var state=new CBCState(this.options.iv);this._cbcState=state};proto._update=function _update(inp,inOff,out,outOff){var state=this._cbcState;var superProto=this.constructor.super_.prototype;var iv=state.iv;if(this.type==="encrypt"){for(var i=0;i<this.blockSize;i++)iv[i]^=inp[inOff+i];superProto._update.call(this,iv,0,out,outOff);for(var i=0;i<this.blockSize;i++)iv[i]=out[outOff+i]}else{superProto._update.call(this,inp,inOff,out,outOff);for(var i=0;i<this.blockSize;i++)out[outOff+i]^=iv[i];for(var i=0;i<this.blockSize;i++)iv[i]=inp[inOff+i]}}},{inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js","minimalistic-assert":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-des/node_modules/des.js/node_modules/minimalistic-assert/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-des/node_modules/des.js/lib/des/cipher.js":[function(require,module,exports){"use strict";var assert=require("minimalistic-assert");function Cipher(options){this.options=options;this.type=this.options.type;this.blockSize=8;this._init();this.buffer=new Array(this.blockSize);this.bufferOff=0}module.exports=Cipher;Cipher.prototype._init=function _init(){};Cipher.prototype.update=function update(data){if(data.length===0)return[];if(this.type==="decrypt")return this._updateDecrypt(data);else return this._updateEncrypt(data)};Cipher.prototype._buffer=function _buffer(data,off){var min=Math.min(this.buffer.length-this.bufferOff,data.length-off);for(var i=0;i<min;i++)this.buffer[this.bufferOff+i]=data[off+i];this.bufferOff+=min;return min};Cipher.prototype._flushBuffer=function _flushBuffer(out,off){this._update(this.buffer,0,out,off);this.bufferOff=0;return this.blockSize};Cipher.prototype._updateEncrypt=function _updateEncrypt(data){var inputOff=0;var outputOff=0;var count=(this.bufferOff+data.length)/this.blockSize|0;var out=new Array(count*this.blockSize);if(this.bufferOff!==0){inputOff+=this._buffer(data,inputOff);if(this.bufferOff===this.buffer.length)outputOff+=this._flushBuffer(out,outputOff)}var max=data.length-(data.length-inputOff)%this.blockSize;for(;inputOff<max;inputOff+=this.blockSize){this._update(data,inputOff,out,outputOff);outputOff+=this.blockSize}for(;inputOff<data.length;inputOff++,this.bufferOff++)this.buffer[this.bufferOff]=data[inputOff];return out};Cipher.prototype._updateDecrypt=function _updateDecrypt(data){var inputOff=0;var outputOff=0;var count=Math.ceil((this.bufferOff+data.length)/this.blockSize)-1;var out=new Array(count*this.blockSize);for(;count>0;count--){inputOff+=this._buffer(data,inputOff);outputOff+=this._flushBuffer(out,outputOff)}inputOff+=this._buffer(data,inputOff);return out};Cipher.prototype.final=function final(buffer){var first;if(buffer)first=this.update(buffer);var last;if(this.type==="encrypt")last=this._finalEncrypt();else last=this._finalDecrypt();if(first)return first.concat(last);else return last};Cipher.prototype._pad=function _pad(buffer,off){if(off===0)return false;while(off<buffer.length)buffer[off++]=0;return true};Cipher.prototype._finalEncrypt=function _finalEncrypt(){if(!this._pad(this.buffer,this.bufferOff))return[];var out=new Array(this.blockSize);this._update(this.buffer,0,out,0);return out};Cipher.prototype._unpad=function _unpad(buffer){return buffer};Cipher.prototype._finalDecrypt=function _finalDecrypt(){assert.equal(this.bufferOff,this.blockSize,"Not enough data to decrypt");var out=new Array(this.blockSize);this._flushBuffer(out,0);return this._unpad(out)}},{"minimalistic-assert":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-des/node_modules/des.js/node_modules/minimalistic-assert/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-des/node_modules/des.js/lib/des/des.js":[function(require,module,exports){"use strict";var assert=require("minimalistic-assert");var inherits=require("inherits");var des=require("../des");var utils=des.utils;var Cipher=des.Cipher;function DESState(){this.tmp=new Array(2);this.keys=null}function DES(options){Cipher.call(this,options);var state=new DESState;this._desState=state;this.deriveKeys(state,options.key)}inherits(DES,Cipher);module.exports=DES;DES.create=function create(options){return new DES(options)};var shiftTable=[1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1];DES.prototype.deriveKeys=function deriveKeys(state,key){state.keys=new Array(16*2);assert.equal(key.length,this.blockSize,"Invalid key length");var kL=utils.readUInt32BE(key,0);var kR=utils.readUInt32BE(key,4);utils.pc1(kL,kR,state.tmp,0);kL=state.tmp[0];kR=state.tmp[1];for(var i=0;i<state.keys.length;i+=2){var shift=shiftTable[i>>>1];kL=utils.r28shl(kL,shift);kR=utils.r28shl(kR,shift);utils.pc2(kL,kR,state.keys,i)}};DES.prototype._update=function _update(inp,inOff,out,outOff){var state=this._desState;var l=utils.readUInt32BE(inp,inOff);var r=utils.readUInt32BE(inp,inOff+4);utils.ip(l,r,state.tmp,0);l=state.tmp[0];r=state.tmp[1];if(this.type==="encrypt")this._encrypt(state,l,r,state.tmp,0);else this._decrypt(state,l,r,state.tmp,0);l=state.tmp[0];r=state.tmp[1];utils.writeUInt32BE(out,l,outOff);utils.writeUInt32BE(out,r,outOff+4)};DES.prototype._pad=function _pad(buffer,off){var value=buffer.length-off;for(var i=off;i<buffer.length;i++)buffer[i]=value;return true};DES.prototype._unpad=function _unpad(buffer){var pad=buffer[buffer.length-1];for(var i=buffer.length-pad;i<buffer.length;i++)assert.equal(buffer[i],pad);return buffer.slice(0,buffer.length-pad)};DES.prototype._encrypt=function _encrypt(state,lStart,rStart,out,off){var l=lStart;var r=rStart;for(var i=0;i<state.keys.length;i+=2){var keyL=state.keys[i];var keyR=state.keys[i+1];utils.expand(r,state.tmp,0);keyL^=state.tmp[0];keyR^=state.tmp[1];var s=utils.substitute(keyL,keyR);var f=utils.permute(s);var t=r;r=(l^f)>>>0;l=t}utils.rip(r,l,out,off)};DES.prototype._decrypt=function _decrypt(state,lStart,rStart,out,off){var l=rStart;var r=lStart;for(var i=state.keys.length-2;i>=0;i-=2){var keyL=state.keys[i];var keyR=state.keys[i+1];utils.expand(l,state.tmp,0);keyL^=state.tmp[0];keyR^=state.tmp[1];var s=utils.substitute(keyL,keyR);var f=utils.permute(s);var t=l;l=(r^f)>>>0;r=t}utils.rip(l,r,out,off)}},{"../des":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-des/node_modules/des.js/lib/des.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js","minimalistic-assert":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-des/node_modules/des.js/node_modules/minimalistic-assert/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-des/node_modules/des.js/lib/des/ede.js":[function(require,module,exports){"use strict";var assert=require("minimalistic-assert");var inherits=require("inherits");var des=require("../des");var Cipher=des.Cipher;var DES=des.DES;function EDEState(type,key){assert.equal(key.length,24,"Invalid key length");var k1=key.slice(0,8);var k2=key.slice(8,16);var k3=key.slice(16,24);if(type==="encrypt"){this.ciphers=[DES.create({type:"encrypt",key:k1}),DES.create({type:"decrypt",key:k2}),DES.create({type:"encrypt",key:k3})]}else{this.ciphers=[DES.create({type:"decrypt",key:k3}),DES.create({type:"encrypt",key:k2}),DES.create({type:"decrypt",key:k1})]}}function EDE(options){Cipher.call(this,options);var state=new EDEState(this.type,this.options.key);this._edeState=state}inherits(EDE,Cipher);module.exports=EDE;EDE.create=function create(options){return new EDE(options)};EDE.prototype._update=function _update(inp,inOff,out,outOff){var state=this._edeState;state.ciphers[0]._update(inp,inOff,out,outOff);state.ciphers[1]._update(out,outOff,out,outOff);state.ciphers[2]._update(out,outOff,out,outOff)};EDE.prototype._pad=DES.prototype._pad;EDE.prototype._unpad=DES.prototype._unpad},{"../des":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-des/node_modules/des.js/lib/des.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js","minimalistic-assert":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-des/node_modules/des.js/node_modules/minimalistic-assert/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-des/node_modules/des.js/lib/des/utils.js":[function(require,module,exports){"use strict";exports.readUInt32BE=function readUInt32BE(bytes,off){var res=bytes[0+off]<<24|bytes[1+off]<<16|bytes[2+off]<<8|bytes[3+off];return res>>>0};exports.writeUInt32BE=function writeUInt32BE(bytes,value,off){bytes[0+off]=value>>>24;bytes[1+off]=value>>>16&255;bytes[2+off]=value>>>8&255;bytes[3+off]=value&255};exports.ip=function ip(inL,inR,out,off){var outL=0;var outR=0;for(var i=6;i>=0;i-=2){for(var j=0;j<=24;j+=8){outL<<=1;outL|=inR>>>j+i&1}for(var j=0;j<=24;j+=8){outL<<=1;outL|=inL>>>j+i&1}}for(var i=6;i>=0;i-=2){for(var j=1;j<=25;j+=8){outR<<=1;outR|=inR>>>j+i&1}for(var j=1;j<=25;j+=8){outR<<=1;outR|=inL>>>j+i&1}}out[off+0]=outL>>>0;out[off+1]=outR>>>0};exports.rip=function rip(inL,inR,out,off){var outL=0;var outR=0;for(var i=0;i<4;i++){for(var j=24;j>=0;j-=8){outL<<=1;outL|=inR>>>j+i&1;outL<<=1;outL|=inL>>>j+i&1}}for(var i=4;i<8;i++){for(var j=24;j>=0;j-=8){outR<<=1;outR|=inR>>>j+i&1;outR<<=1;outR|=inL>>>j+i&1}}out[off+0]=outL>>>0;out[off+1]=outR>>>0};exports.pc1=function pc1(inL,inR,out,off){var outL=0;var outR=0;for(var i=7;i>=5;i--){for(var j=0;j<=24;j+=8){outL<<=1;outL|=inR>>j+i&1}for(var j=0;j<=24;j+=8){outL<<=1;outL|=inL>>j+i&1}}for(var j=0;j<=24;j+=8){outL<<=1;outL|=inR>>j+i&1}for(var i=1;i<=3;i++){for(var j=0;j<=24;j+=8){outR<<=1;outR|=inR>>j+i&1}for(var j=0;j<=24;j+=8){outR<<=1;outR|=inL>>j+i&1}}for(var j=0;j<=24;j+=8){outR<<=1;outR|=inL>>j+i&1}out[off+0]=outL>>>0;out[off+1]=outR>>>0};exports.r28shl=function r28shl(num,shift){return num<<shift&268435455|num>>>28-shift};var pc2table=[14,11,17,4,27,23,25,0,13,22,7,18,5,9,16,24,2,20,12,21,1,8,15,26,15,4,25,19,9,1,26,16,5,11,23,8,12,7,17,0,22,3,10,14,6,20,27,24];exports.pc2=function pc2(inL,inR,out,off){var outL=0;var outR=0;var len=pc2table.length>>>1;for(var i=0;i<len;i++){outL<<=1;outL|=inL>>>pc2table[i]&1}for(var i=len;i<pc2table.length;i++){outR<<=1;outR|=inR>>>pc2table[i]&1}out[off+0]=outL>>>0;out[off+1]=outR>>>0};exports.expand=function expand(r,out,off){var outL=0;var outR=0;outL=(r&1)<<5|r>>>27;for(var i=23;i>=15;i-=4){outL<<=6;outL|=r>>>i&63}for(var i=11;i>=3;i-=4){outR|=r>>>i&63;outR<<=6}outR|=(r&31)<<1|r>>>31;out[off+0]=outL>>>0;out[off+1]=outR>>>0};var sTable=[14,0,4,15,13,7,1,4,2,14,15,2,11,13,8,1,3,10,10,6,6,12,12,11,5,9,9,5,0,3,7,8,4,15,1,12,14,8,8,2,13,4,6,9,2,1,11,7,15,5,12,11,9,3,7,14,3,10,10,0,5,6,0,13,15,3,1,13,8,4,14,7,6,15,11,2,3,8,4,14,9,12,7,0,2,1,13,10,12,6,0,9,5,11,10,5,0,13,14,8,7,10,11,1,10,3,4,15,13,4,1,2,5,11,8,6,12,7,6,12,9,0,3,5,2,14,15,9,10,13,0,7,9,0,14,9,6,3,3,4,15,6,5,10,1,2,13,8,12,5,7,14,11,12,4,11,2,15,8,1,13,1,6,10,4,13,9,0,8,6,15,9,3,8,0,7,11,4,1,15,2,14,12,3,5,11,10,5,14,2,7,12,7,13,13,8,14,11,3,5,0,6,6,15,9,0,10,3,1,4,2,7,8,2,5,12,11,1,12,10,4,14,15,9,10,3,6,15,9,0,0,6,12,10,11,1,7,13,13,8,15,9,1,4,3,5,14,11,5,12,2,7,8,2,4,14,2,14,12,11,4,2,1,12,7,4,10,7,11,13,6,1,8,5,5,0,3,15,15,10,13,3,0,9,14,8,9,6,4,11,2,8,1,12,11,7,10,1,13,14,7,2,8,13,15,6,9,15,12,0,5,9,6,10,3,4,0,5,14,3,12,10,1,15,10,4,15,2,9,7,2,12,6,9,8,5,0,6,13,1,3,13,4,14,14,0,7,11,5,3,11,8,9,4,14,3,15,2,5,12,2,9,8,5,12,15,3,10,7,11,0,14,4,1,10,7,1,6,13,0,11,8,6,13,4,13,11,0,2,11,14,7,15,4,0,9,8,1,13,10,3,14,12,3,9,5,7,12,5,2,10,15,6,8,1,6,1,6,4,11,11,13,13,8,12,1,3,4,7,10,14,7,10,9,15,5,6,0,8,15,0,14,5,2,9,3,2,12,13,1,2,15,8,13,4,8,6,10,15,3,11,7,1,4,10,12,9,5,3,6,14,11,5,0,0,14,12,9,7,2,7,2,11,1,4,14,1,7,9,4,12,10,14,8,2,13,0,15,6,12,10,9,13,0,15,3,3,5,5,6,8,11];exports.substitute=function substitute(inL,inR){var out=0;for(var i=0;i<4;i++){var b=inL>>>18-i*6&63;var sb=sTable[i*64+b];out<<=4;out|=sb}for(var i=0;i<4;i++){var b=inR>>>18-i*6&63;var sb=sTable[4*64+i*64+b];out<<=4;out|=sb}return out>>>0};var permuteTable=[16,25,12,11,3,20,4,15,31,17,9,6,27,14,1,22,30,24,8,18,0,5,29,23,13,19,2,26,10,21,28,7];exports.permute=function permute(num){var out=0;for(var i=0;i<permuteTable.length;i++){out<<=1;out|=num>>>permuteTable[i]&1}return out>>>0};exports.padSplit=function padSplit(num,size,group){var str=num.toString(2);while(str.length<size)str="0"+str;var out=[];for(var i=0;i<size;i+=group)out.push(str.slice(i,i+group));return out.join(" ")}},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-des/node_modules/des.js/node_modules/minimalistic-assert/index.js":[function(require,module,exports){module.exports=assert;function assert(val,msg){if(!val)throw new Error(msg||"Assertion failed")}assert.equal=function assertEqual(l,r,msg){if(l!=r)throw new Error(msg||"Assertion failed: "+l+" != "+r)}},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/evp_bytestokey/index.js":[function(require,module,exports){(function(Buffer){var md5=require("create-hash/md5");module.exports=EVP_BytesToKey;function EVP_BytesToKey(password,salt,keyLen,ivLen){if(!Buffer.isBuffer(password)){password=new Buffer(password,"binary")}if(salt&&!Buffer.isBuffer(salt)){salt=new Buffer(salt,"binary")}keyLen=keyLen/8;ivLen=ivLen||0;var ki=0;var ii=0;var key=new Buffer(keyLen);var iv=new Buffer(ivLen);var addmd=0;var md_buf;var i;var bufs=[];while(true){if(addmd++>0){bufs.push(md_buf)}bufs.push(password);if(salt){bufs.push(salt)}md_buf=md5(Buffer.concat(bufs));bufs=[];i=0;if(keyLen>0){while(true){if(keyLen===0){break}if(i===md_buf.length){break}key[ki++]=md_buf[i];keyLen--;i++}}if(ivLen>0&&i!==md_buf.length){while(true){if(ivLen===0){break}if(i===md_buf.length){break}iv[ii++]=md_buf[i];ivLen--;i++}}if(keyLen===0&&ivLen===0){break}}for(i=0;i<md_buf.length;i++){md_buf[i]=0}return{key:key,iv:iv}}}).call(this,require("buffer").Buffer)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","create-hash/md5":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/md5.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/algos.js":[function(require,module,exports){(function(Buffer){"use strict";exports["RSA-SHA224"]=exports.sha224WithRSAEncryption={sign:"rsa",
  8. hash:"sha224",id:new Buffer("302d300d06096086480165030402040500041c","hex")};exports["RSA-SHA256"]=exports.sha256WithRSAEncryption={sign:"rsa",hash:"sha256",id:new Buffer("3031300d060960864801650304020105000420","hex")};exports["RSA-SHA384"]=exports.sha384WithRSAEncryption={sign:"rsa",hash:"sha384",id:new Buffer("3041300d060960864801650304020205000430","hex")};exports["RSA-SHA512"]=exports.sha512WithRSAEncryption={sign:"rsa",hash:"sha512",id:new Buffer("3051300d060960864801650304020305000440","hex")};exports["RSA-SHA1"]={sign:"rsa",hash:"sha1",id:new Buffer("3021300906052b0e03021a05000414","hex")};exports["ecdsa-with-SHA1"]={sign:"ecdsa",hash:"sha1",id:new Buffer("","hex")};exports.DSA=exports["DSA-SHA1"]=exports["DSA-SHA"]={sign:"dsa",hash:"sha1",id:new Buffer("","hex")};exports["DSA-SHA224"]=exports["DSA-WITH-SHA224"]={sign:"dsa",hash:"sha224",id:new Buffer("","hex")};exports["DSA-SHA256"]=exports["DSA-WITH-SHA256"]={sign:"dsa",hash:"sha256",id:new Buffer("","hex")};exports["DSA-SHA384"]=exports["DSA-WITH-SHA384"]={sign:"dsa",hash:"sha384",id:new Buffer("","hex")};exports["DSA-SHA512"]=exports["DSA-WITH-SHA512"]={sign:"dsa",hash:"sha512",id:new Buffer("","hex")};exports["DSA-RIPEMD160"]={sign:"dsa",hash:"rmd160",id:new Buffer("","hex")};exports["RSA-RIPEMD160"]=exports.ripemd160WithRSA={sign:"rsa",hash:"rmd160",id:new Buffer("3021300906052b2403020105000414","hex")};exports["RSA-MD5"]=exports.md5WithRSAEncryption={sign:"rsa",hash:"md5",id:new Buffer("3020300c06082a864886f70d020505000410","hex")}}).call(this,require("buffer").Buffer)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/browser.js":[function(require,module,exports){(function(Buffer){var _algos=require("./algos");var createHash=require("create-hash");var inherits=require("inherits");var sign=require("./sign");var stream=require("stream");var verify=require("./verify");var algos={};Object.keys(_algos).forEach(function(key){algos[key]=algos[key.toLowerCase()]=_algos[key]});function Sign(algorithm){stream.Writable.call(this);var data=algos[algorithm];if(!data){throw new Error("Unknown message digest")}this._hashType=data.hash;this._hash=createHash(data.hash);this._tag=data.id;this._signType=data.sign}inherits(Sign,stream.Writable);Sign.prototype._write=function _write(data,_,done){this._hash.update(data);done()};Sign.prototype.update=function update(data,enc){if(typeof data==="string"){data=new Buffer(data,enc)}this._hash.update(data);return this};Sign.prototype.sign=function signMethod(key,enc){this.end();var hash=this._hash.digest();var sig=sign(Buffer.concat([this._tag,hash]),key,this._hashType,this._signType);return enc?sig.toString(enc):sig};function Verify(algorithm){stream.Writable.call(this);var data=algos[algorithm];if(!data){throw new Error("Unknown message digest")}this._hash=createHash(data.hash);this._tag=data.id;this._signType=data.sign}inherits(Verify,stream.Writable);Verify.prototype._write=function _write(data,_,done){this._hash.update(data);done()};Verify.prototype.update=function update(data,enc){if(typeof data==="string"){data=new Buffer(data,enc)}this._hash.update(data);return this};Verify.prototype.verify=function verifyMethod(key,sig,enc){if(typeof sig==="string"){sig=new Buffer(sig,enc)}this.end();var hash=this._hash.digest();return verify(sig,Buffer.concat([this._tag,hash]),key,this._signType)};function createSign(algorithm){return new Sign(algorithm)}function createVerify(algorithm){return new Verify(algorithm)}module.exports={Sign:createSign,Verify:createVerify,createSign:createSign,createVerify:createVerify}}).call(this,require("buffer").Buffer)},{"./algos":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/algos.js","./sign":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/sign.js","./verify":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/verify.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","create-hash":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/browser.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js",stream:"/data/github/geopackage-node/node_modules/browserify/node_modules/stream-browserify/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/curves.js":[function(require,module,exports){"use strict";exports["1.3.132.0.10"]="secp256k1";exports["1.3.132.0.33"]="p224";exports["1.2.840.10045.3.1.1"]="p192";exports["1.2.840.10045.3.1.7"]="p256";exports["1.3.132.0.34"]="p384";exports["1.3.132.0.35"]="p521"},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/bn.js/lib/bn.js":[function(require,module,exports){(function(module,exports){"use strict";function assert(val,msg){if(!val)throw new Error(msg||"Assertion failed")}function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype;ctor.prototype=new TempCtor;ctor.prototype.constructor=ctor}function BN(number,base,endian){if(BN.isBN(number)){return number}this.negative=0;this.words=null;this.length=0;this.red=null;if(number!==null){if(base==="le"||base==="be"){endian=base;base=10}this._init(number||0,base||10,endian||"be")}}if(typeof module==="object"){module.exports=BN}else{exports.BN=BN}BN.BN=BN;BN.wordSize=26;var Buffer;try{Buffer=require("buf"+"fer").Buffer}catch(e){}BN.isBN=function isBN(num){return num!==null&&typeof num==="object"&&num.constructor.name==="BN"&&Array.isArray(num.words)};BN.max=function max(left,right){if(left.cmp(right)>0)return left;return right};BN.min=function min(left,right){if(left.cmp(right)<0)return left;return right};BN.prototype._init=function init(number,base,endian){if(typeof number==="number"){return this._initNumber(number,base,endian)}if(typeof number==="object"){return this._initArray(number,base,endian)}if(base==="hex"){base=16}assert(base===(base|0)&&base>=2&&base<=36);number=number.toString().replace(/\s+/g,"");var start=0;if(number[0]==="-"){start++}if(base===16){this._parseHex(number,start)}else{this._parseBase(number,base,start)}if(number[0]==="-"){this.negative=1}this.strip();if(endian!=="le")return;this._initArray(this.toArray(),base,endian)};BN.prototype._initNumber=function _initNumber(number,base,endian){if(number<0){this.negative=1;number=-number}if(number<67108864){this.words=[number&67108863];this.length=1}else if(number<4503599627370496){this.words=[number&67108863,number/67108864&67108863];this.length=2}else{assert(number<9007199254740992);this.words=[number&67108863,number/67108864&67108863,1];this.length=3}if(endian!=="le")return;this._initArray(this.toArray(),base,endian)};BN.prototype._initArray=function _initArray(number,base,endian){assert(typeof number.length==="number");if(number.length<=0){this.words=[0];this.length=1;return this}this.length=Math.ceil(number.length/3);this.words=new Array(this.length);for(var i=0;i<this.length;i++){this.words[i]=0}var j,w;var off=0;if(endian==="be"){for(i=number.length-1,j=0;i>=0;i-=3){w=number[i]|number[i-1]<<8|number[i-2]<<16;this.words[j]|=w<<off&67108863;this.words[j+1]=w>>>26-off&67108863;off+=24;if(off>=26){off-=26;j++}}}else if(endian==="le"){for(i=0,j=0;i<number.length;i+=3){w=number[i]|number[i+1]<<8|number[i+2]<<16;this.words[j]|=w<<off&67108863;this.words[j+1]=w>>>26-off&67108863;off+=24;if(off>=26){off-=26;j++}}}return this.strip()};function parseHex(str,start,end){var r=0;var len=Math.min(str.length,end);for(var i=start;i<len;i++){var c=str.charCodeAt(i)-48;r<<=4;if(c>=49&&c<=54){r|=c-49+10}else if(c>=17&&c<=22){r|=c-17+10}else{r|=c&15}}return r}BN.prototype._parseHex=function _parseHex(number,start){this.length=Math.ceil((number.length-start)/6);this.words=new Array(this.length);for(var i=0;i<this.length;i++){this.words[i]=0}var j,w;var off=0;for(i=number.length-6,j=0;i>=start;i-=6){w=parseHex(number,i,i+6);this.words[j]|=w<<off&67108863;this.words[j+1]|=w>>>26-off&4194303;off+=24;if(off>=26){off-=26;j++}}if(i+6!==start){w=parseHex(number,start,i+6);this.words[j]|=w<<off&67108863;this.words[j+1]|=w>>>26-off&4194303}this.strip()};function parseBase(str,start,end,mul){var r=0;var len=Math.min(str.length,end);for(var i=start;i<len;i++){var c=str.charCodeAt(i)-48;r*=mul;if(c>=49){r+=c-49+10}else if(c>=17){r+=c-17+10}else{r+=c}}return r}BN.prototype._parseBase=function _parseBase(number,base,start){this.words=[0];this.length=1;for(var limbLen=0,limbPow=1;limbPow<=67108863;limbPow*=base){limbLen++}limbLen--;limbPow=limbPow/base|0;var total=number.length-start;var mod=total%limbLen;var end=Math.min(total,total-mod)+start;var word=0;for(var i=start;i<end;i+=limbLen){word=parseBase(number,i,i+limbLen,base);this.imuln(limbPow);if(this.words[0]+word<67108864){this.words[0]+=word}else{this._iaddn(word)}}if(mod!==0){var pow=1;word=parseBase(number,i,number.length,base);for(i=0;i<mod;i++){pow*=base}this.imuln(pow);if(this.words[0]+word<67108864){this.words[0]+=word}else{this._iaddn(word)}}};BN.prototype.copy=function copy(dest){dest.words=new Array(this.length);for(var i=0;i<this.length;i++){dest.words[i]=this.words[i]}dest.length=this.length;dest.negative=this.negative;dest.red=this.red};BN.prototype.clone=function clone(){var r=new BN(null);this.copy(r);return r};BN.prototype._expand=function _expand(size){while(this.length<size){this.words[this.length++]=0}return this};BN.prototype.strip=function strip(){while(this.length>1&&this.words[this.length-1]===0){this.length--}return this._normSign()};BN.prototype._normSign=function _normSign(){if(this.length===1&&this.words[0]===0){this.negative=0}return this};BN.prototype.inspect=function inspect(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var zeros=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"];var groupSizes=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5];var groupBases=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];BN.prototype.toString=function toString(base,padding){base=base||10;padding=padding|0||1;var out;if(base===16||base==="hex"){out="";var off=0;var carry=0;for(var i=0;i<this.length;i++){var w=this.words[i];var word=((w<<off|carry)&16777215).toString(16);carry=w>>>24-off&16777215;if(carry!==0||i!==this.length-1){out=zeros[6-word.length]+word+out}else{out=word+out}off+=2;if(off>=26){off-=26;i--}}if(carry!==0){out=carry.toString(16)+out}while(out.length%padding!==0){out="0"+out}if(this.negative!==0){out="-"+out}return out}if(base===(base|0)&&base>=2&&base<=36){var groupSize=groupSizes[base];var groupBase=groupBases[base];out="";var c=this.clone();c.negative=0;while(!c.isZero()){var r=c.modn(groupBase).toString(base);c=c.idivn(groupBase);if(!c.isZero()){out=zeros[groupSize-r.length]+r+out}else{out=r+out}}if(this.isZero()){out="0"+out}while(out.length%padding!==0){out="0"+out}if(this.negative!==0){out="-"+out}return out}assert(false,"Base should be between 2 and 36")};BN.prototype.toNumber=function toNumber(){var length=this.bitLength();var ret;if(length<=26){ret=this.words[0]}else if(length<=52){ret=this.words[1]*67108864+this.words[0]}else if(length===53){ret=4503599627370496+this.words[1]*67108864+this.words[0]}else{assert(false,"Number can only safely store up to 53 bits")}return this.negative!==0?-ret:ret};BN.prototype.toJSON=function toJSON(){return this.toString(16)};BN.prototype.toBuffer=function toBuffer(endian,length){assert(typeof Buffer!=="undefined");return this.toArrayLike(Buffer,endian,length)};BN.prototype.toArray=function toArray(endian,length){return this.toArrayLike(Array,endian,length)};BN.prototype.toArrayLike=function toArrayLike(ArrayType,endian,length){var byteLength=this.byteLength();var reqLength=length||Math.max(1,byteLength);assert(byteLength<=reqLength,"byte array longer than desired length");assert(reqLength>0,"Requested array length <= 0");this.strip();var littleEndian=endian==="le";var res=new ArrayType(reqLength);var b,i;var q=this.clone();if(!littleEndian){for(i=0;i<reqLength-byteLength;i++){res[i]=0}for(i=0;!q.isZero();i++){b=q.andln(255);q.iushrn(8);res[reqLength-i-1]=b}}else{for(i=0;!q.isZero();i++){b=q.andln(255);q.iushrn(8);res[i]=b}for(;i<reqLength;i++){res[i]=0}}return res};if(Math.clz32){BN.prototype._countBits=function _countBits(w){return 32-Math.clz32(w)}}else{BN.prototype._countBits=function _countBits(w){var t=w;var r=0;if(t>=4096){r+=13;t>>>=13}if(t>=64){r+=7;t>>>=7}if(t>=8){r+=4;t>>>=4}if(t>=2){r+=2;t>>>=2}return r+t}}BN.prototype._zeroBits=function _zeroBits(w){if(w===0)return 26;var t=w;var r=0;if((t&8191)===0){r+=13;t>>>=13}if((t&127)===0){r+=7;t>>>=7}if((t&15)===0){r+=4;t>>>=4}if((t&3)===0){r+=2;t>>>=2}if((t&1)===0){r++}return r};BN.prototype.bitLength=function bitLength(){var w=this.words[this.length-1];var hi=this._countBits(w);return(this.length-1)*26+hi};function toBitArray(num){var w=new Array(num.bitLength());for(var bit=0;bit<w.length;bit++){var off=bit/26|0;var wbit=bit%26;w[bit]=(num.words[off]&1<<wbit)>>>wbit}return w}BN.prototype.zeroBits=function zeroBits(){if(this.isZero())return 0;var r=0;for(var i=0;i<this.length;i++){var b=this._zeroBits(this.words[i]);r+=b;if(b!==26)break}return r};BN.prototype.byteLength=function byteLength(){return Math.ceil(this.bitLength()/8)};BN.prototype.toTwos=function toTwos(width){if(this.negative!==0){return this.abs().inotn(width).iaddn(1)}return this.clone()};BN.prototype.fromTwos=function fromTwos(width){if(this.testn(width-1)){return this.notn(width).iaddn(1).ineg()}return this.clone()};BN.prototype.isNeg=function isNeg(){return this.negative!==0};BN.prototype.neg=function neg(){return this.clone().ineg()};BN.prototype.ineg=function ineg(){if(!this.isZero()){this.negative^=1}return this};BN.prototype.iuor=function iuor(num){while(this.length<num.length){this.words[this.length++]=0}for(var i=0;i<num.length;i++){this.words[i]=this.words[i]|num.words[i]}return this.strip()};BN.prototype.ior=function ior(num){assert((this.negative|num.negative)===0);return this.iuor(num)};BN.prototype.or=function or(num){if(this.length>num.length)return this.clone().ior(num);return num.clone().ior(this)};BN.prototype.uor=function uor(num){if(this.length>num.length)return this.clone().iuor(num);return num.clone().iuor(this)};BN.prototype.iuand=function iuand(num){var b;if(this.length>num.length){b=num}else{b=this}for(var i=0;i<b.length;i++){this.words[i]=this.words[i]&num.words[i]}this.length=b.length;return this.strip()};BN.prototype.iand=function iand(num){assert((this.negative|num.negative)===0);return this.iuand(num)};BN.prototype.and=function and(num){if(this.length>num.length)return this.clone().iand(num);return num.clone().iand(this)};BN.prototype.uand=function uand(num){if(this.length>num.length)return this.clone().iuand(num);return num.clone().iuand(this)};BN.prototype.iuxor=function iuxor(num){var a;var b;if(this.length>num.length){a=this;b=num}else{a=num;b=this}for(var i=0;i<b.length;i++){this.words[i]=a.words[i]^b.words[i]}if(this!==a){for(;i<a.length;i++){this.words[i]=a.words[i]}}this.length=a.length;return this.strip()};BN.prototype.ixor=function ixor(num){assert((this.negative|num.negative)===0);return this.iuxor(num)};BN.prototype.xor=function xor(num){if(this.length>num.length)return this.clone().ixor(num);return num.clone().ixor(this)};BN.prototype.uxor=function uxor(num){if(this.length>num.length)return this.clone().iuxor(num);return num.clone().iuxor(this)};BN.prototype.inotn=function inotn(width){assert(typeof width==="number"&&width>=0);var bytesNeeded=Math.ceil(width/26)|0;var bitsLeft=width%26;this._expand(bytesNeeded);if(bitsLeft>0){bytesNeeded--}for(var i=0;i<bytesNeeded;i++){this.words[i]=~this.words[i]&67108863}if(bitsLeft>0){this.words[i]=~this.words[i]&67108863>>26-bitsLeft}return this.strip()};BN.prototype.notn=function notn(width){return this.clone().inotn(width)};BN.prototype.setn=function setn(bit,val){assert(typeof bit==="number"&&bit>=0);var off=bit/26|0;var wbit=bit%26;this._expand(off+1);if(val){this.words[off]=this.words[off]|1<<wbit}else{this.words[off]=this.words[off]&~(1<<wbit)}return this.strip()};BN.prototype.iadd=function iadd(num){var r;if(this.negative!==0&&num.negative===0){this.negative=0;r=this.isub(num);this.negative^=1;return this._normSign()}else if(this.negative===0&&num.negative!==0){num.negative=0;r=this.isub(num);num.negative=1;return r._normSign()}var a,b;if(this.length>num.length){a=this;b=num}else{a=num;b=this}var carry=0;for(var i=0;i<b.length;i++){r=(a.words[i]|0)+(b.words[i]|0)+carry;this.words[i]=r&67108863;carry=r>>>26}for(;carry!==0&&i<a.length;i++){r=(a.words[i]|0)+carry;this.words[i]=r&67108863;carry=r>>>26}this.length=a.length;if(carry!==0){this.words[this.length]=carry;this.length++}else if(a!==this){for(;i<a.length;i++){this.words[i]=a.words[i]}}return this};BN.prototype.add=function add(num){var res;if(num.negative!==0&&this.negative===0){num.negative=0;res=this.sub(num);num.negative^=1;return res}else if(num.negative===0&&this.negative!==0){this.negative=0;res=num.sub(this);this.negative=1;return res}if(this.length>num.length)return this.clone().iadd(num);return num.clone().iadd(this)};BN.prototype.isub=function isub(num){if(num.negative!==0){num.negative=0;var r=this.iadd(num);num.negative=1;return r._normSign()}else if(this.negative!==0){this.negative=0;this.iadd(num);this.negative=1;return this._normSign()}var cmp=this.cmp(num);if(cmp===0){this.negative=0;this.length=1;this.words[0]=0;return this}var a,b;if(cmp>0){a=this;b=num}else{a=num;b=this}var carry=0;for(var i=0;i<b.length;i++){r=(a.words[i]|0)-(b.words[i]|0)+carry;carry=r>>26;this.words[i]=r&67108863}for(;carry!==0&&i<a.length;i++){r=(a.words[i]|0)+carry;carry=r>>26;this.words[i]=r&67108863}if(carry===0&&i<a.length&&a!==this){for(;i<a.length;i++){this.words[i]=a.words[i]}}this.length=Math.max(this.length,i);if(a!==this){this.negative=1}return this.strip()};BN.prototype.sub=function sub(num){return this.clone().isub(num)};function smallMulTo(self,num,out){out.negative=num.negative^self.negative;var len=self.length+num.length|0;out.length=len;len=len-1|0;var a=self.words[0]|0;var b=num.words[0]|0;var r=a*b;var lo=r&67108863;var carry=r/67108864|0;out.words[0]=lo;for(var k=1;k<len;k++){var ncarry=carry>>>26;var rword=carry&67108863;var maxJ=Math.min(k,num.length-1);for(var j=Math.max(0,k-self.length+1);j<=maxJ;j++){var i=k-j|0;a=self.words[i]|0;b=num.words[j]|0;r=a*b+rword;ncarry+=r/67108864|0;rword=r&67108863}out.words[k]=rword|0;carry=ncarry|0}if(carry!==0){out.words[k]=carry|0}else{out.length--}return out.strip()}var comb10MulTo=function comb10MulTo(self,num,out){var a=self.words;var b=num.words;var o=out.words;var c=0;var lo;var mid;var hi;var a0=a[0]|0;var al0=a0&8191;var ah0=a0>>>13;var a1=a[1]|0;var al1=a1&8191;var ah1=a1>>>13;var a2=a[2]|0;var al2=a2&8191;var ah2=a2>>>13;var a3=a[3]|0;var al3=a3&8191;var ah3=a3>>>13;var a4=a[4]|0;var al4=a4&8191;var ah4=a4>>>13;var a5=a[5]|0;var al5=a5&8191;var ah5=a5>>>13;var a6=a[6]|0;var al6=a6&8191;var ah6=a6>>>13;var a7=a[7]|0;var al7=a7&8191;var ah7=a7>>>13;var a8=a[8]|0;var al8=a8&8191;var ah8=a8>>>13;var a9=a[9]|0;var al9=a9&8191;var ah9=a9>>>13;var b0=b[0]|0;var bl0=b0&8191;var bh0=b0>>>13;var b1=b[1]|0;var bl1=b1&8191;var bh1=b1>>>13;var b2=b[2]|0;var bl2=b2&8191;var bh2=b2>>>13;var b3=b[3]|0;var bl3=b3&8191;var bh3=b3>>>13;var b4=b[4]|0;var bl4=b4&8191;var bh4=b4>>>13;var b5=b[5]|0;var bl5=b5&8191;var bh5=b5>>>13;var b6=b[6]|0;var bl6=b6&8191;var bh6=b6>>>13;var b7=b[7]|0;var bl7=b7&8191;var bh7=b7>>>13;var b8=b[8]|0;var bl8=b8&8191;var bh8=b8>>>13;var b9=b[9]|0;var bl9=b9&8191;var bh9=b9>>>13;out.negative=self.negative^num.negative;out.length=19;lo=Math.imul(al0,bl0);mid=Math.imul(al0,bh0);mid+=Math.imul(ah0,bl0);hi=Math.imul(ah0,bh0);var w0=c+lo+((mid&8191)<<13);c=hi+(mid>>>13)+(w0>>>26);w0&=67108863;lo=Math.imul(al1,bl0);mid=Math.imul(al1,bh0);mid+=Math.imul(ah1,bl0);hi=Math.imul(ah1,bh0);lo+=Math.imul(al0,bl1);mid+=Math.imul(al0,bh1);mid+=Math.imul(ah0,bl1);hi+=Math.imul(ah0,bh1);var w1=c+lo+((mid&8191)<<13);c=hi+(mid>>>13)+(w1>>>26);w1&=67108863;lo=Math.imul(al2,bl0);mid=Math.imul(al2,bh0);mid+=Math.imul(ah2,bl0);hi=Math.imul(ah2,bh0);lo+=Math.imul(al1,bl1);mid+=Math.imul(al1,bh1);mid+=Math.imul(ah1,bl1);hi+=Math.imul(ah1,bh1);lo+=Math.imul(al0,bl2);mid+=Math.imul(al0,bh2);mid+=Math.imul(ah0,bl2);hi+=Math.imul(ah0,bh2);var w2=c+lo+((mid&8191)<<13);c=hi+(mid>>>13)+(w2>>>26);w2&=67108863;lo=Math.imul(al3,bl0);mid=Math.imul(al3,bh0);mid+=Math.imul(ah3,bl0);hi=Math.imul(ah3,bh0);lo+=Math.imul(al2,bl1);mid+=Math.imul(al2,bh1);mid+=Math.imul(ah2,bl1);hi+=Math.imul(ah2,bh1);lo+=Math.imul(al1,bl2);mid+=Math.imul(al1,bh2);mid+=Math.imul(ah1,bl2);hi+=Math.imul(ah1,bh2);lo+=Math.imul(al0,bl3);mid+=Math.imul(al0,bh3);mid+=Math.imul(ah0,bl3);hi+=Math.imul(ah0,bh3);var w3=c+lo+((mid&8191)<<13);c=hi+(mid>>>13)+(w3>>>26);w3&=67108863;lo=Math.imul(al4,bl0);mid=Math.imul(al4,bh0);mid+=Math.imul(ah4,bl0);hi=Math.imul(ah4,bh0);lo+=Math.imul(al3,bl1);mid+=Math.imul(al3,bh1);mid+=Math.imul(ah3,bl1);hi+=Math.imul(ah3,bh1);lo+=Math.imul(al2,bl2);mid+=Math.imul(al2,bh2);mid+=Math.imul(ah2,bl2);hi+=Math.imul(ah2,bh2);lo+=Math.imul(al1,bl3);mid+=Math.imul(al1,bh3);mid+=Math.imul(ah1,bl3);hi+=Math.imul(ah1,bh3);lo+=Math.imul(al0,bl4);mid+=Math.imul(al0,bh4);mid+=Math.imul(ah0,bl4);hi+=Math.imul(ah0,bh4);var w4=c+lo+((mid&8191)<<13);c=hi+(mid>>>13)+(w4>>>26);w4&=67108863;lo=Math.imul(al5,bl0);mid=Math.imul(al5,bh0);mid+=Math.imul(ah5,bl0);hi=Math.imul(ah5,bh0);lo+=Math.imul(al4,bl1);mid+=Math.imul(al4,bh1);mid+=Math.imul(ah4,bl1);hi+=Math.imul(ah4,bh1);lo+=Math.imul(al3,bl2);mid+=Math.imul(al3,bh2);mid+=Math.imul(ah3,bl2);hi+=Math.imul(ah3,bh2);lo+=Math.imul(al2,bl3);mid+=Math.imul(al2,bh3);mid+=Math.imul(ah2,bl3);hi+=Math.imul(ah2,bh3);lo+=Math.imul(al1,bl4);mid+=Math.imul(al1,bh4);mid+=Math.imul(ah1,bl4);hi+=Math.imul(ah1,bh4);lo+=Math.imul(al0,bl5);mid+=Math.imul(al0,bh5);mid+=Math.imul(ah0,bl5);hi+=Math.imul(ah0,bh5);var w5=c+lo+((mid&8191)<<13);c=hi+(mid>>>13)+(w5>>>26);w5&=67108863;lo=Math.imul(al6,bl0);mid=Math.imul(al6,bh0);mid+=Math.imul(ah6,bl0);hi=Math.imul(ah6,bh0);lo+=Math.imul(al5,bl1);mid+=Math.imul(al5,bh1);mid+=Math.imul(ah5,bl1);hi+=Math.imul(ah5,bh1);lo+=Math.imul(al4,bl2);mid+=Math.imul(al4,bh2);mid+=Math.imul(ah4,bl2);hi+=Math.imul(ah4,bh2);lo+=Math.imul(al3,bl3);mid+=Math.imul(al3,bh3);mid+=Math.imul(ah3,bl3);hi+=Math.imul(ah3,bh3);lo+=Math.imul(al2,bl4);mid+=Math.imul(al2,bh4);mid+=Math.imul(ah2,bl4);hi+=Math.imul(ah2,bh4);lo+=Math.imul(al1,bl5);mid+=Math.imul(al1,bh5);mid+=Math.imul(ah1,bl5);hi+=Math.imul(ah1,bh5);lo+=Math.imul(al0,bl6);mid+=Math.imul(al0,bh6);mid+=Math.imul(ah0,bl6);hi+=Math.imul(ah0,bh6);var w6=c+lo+((mid&8191)<<13);c=hi+(mid>>>13)+(w6>>>26);w6&=67108863;lo=Math.imul(al7,bl0);mid=Math.imul(al7,bh0);mid+=Math.imul(ah7,bl0);hi=Math.imul(ah7,bh0);lo+=Math.imul(al6,bl1);mid+=Math.imul(al6,bh1);mid+=Math.imul(ah6,bl1);hi+=Math.imul(ah6,bh1);lo+=Math.imul(al5,bl2);mid+=Math.imul(al5,bh2);mid+=Math.imul(ah5,bl2);hi+=Math.imul(ah5,bh2);lo+=Math.imul(al4,bl3);mid+=Math.imul(al4,bh3);mid+=Math.imul(ah4,bl3);hi+=Math.imul(ah4,bh3);lo+=Math.imul(al3,bl4);mid+=Math.imul(al3,bh4);mid+=Math.imul(ah3,bl4);hi+=Math.imul(ah3,bh4);lo+=Math.imul(al2,bl5);mid+=Math.imul(al2,bh5);mid+=Math.imul(ah2,bl5);hi+=Math.imul(ah2,bh5);lo+=Math.imul(al1,bl6);mid+=Math.imul(al1,bh6);mid+=Math.imul(ah1,bl6);hi+=Math.imul(ah1,bh6);lo+=Math.imul(al0,bl7);mid+=Math.imul(al0,bh7);mid+=Math.imul(ah0,bl7);hi+=Math.imul(ah0,bh7);var w7=c+lo+((mid&8191)<<13);c=hi+(mid>>>13)+(w7>>>26);w7&=67108863;lo=Math.imul(al8,bl0);mid=Math.imul(al8,bh0);mid+=Math.imul(ah8,bl0);hi=Math.imul(ah8,bh0);lo+=Math.imul(al7,bl1);mid+=Math.imul(al7,bh1);mid+=Math.imul(ah7,bl1);hi+=Math.imul(ah7,bh1);lo+=Math.imul(al6,bl2);mid+=Math.imul(al6,bh2);mid+=Math.imul(ah6,bl2);hi+=Math.imul(ah6,bh2);lo+=Math.imul(al5,bl3);mid+=Math.imul(al5,bh3);mid+=Math.imul(ah5,bl3);hi+=Math.imul(ah5,bh3);lo+=Math.imul(al4,bl4);mid+=Math.imul(al4,bh4);mid+=Math.imul(ah4,bl4);hi+=Math.imul(ah4,bh4);lo+=Math.imul(al3,bl5);mid+=Math.imul(al3,bh5);mid+=Math.imul(ah3,bl5);hi+=Math.imul(ah3,bh5);lo+=Math.imul(al2,bl6);mid+=Math.imul(al2,bh6);mid+=Math.imul(ah2,bl6);hi+=Math.imul(ah2,bh6);lo+=Math.imul(al1,bl7);mid+=Math.imul(al1,bh7);mid+=Math.imul(ah1,bl7);hi+=Math.imul(ah1,bh7);lo+=Math.imul(al0,bl8);mid+=Math.imul(al0,bh8);mid+=Math.imul(ah0,bl8);hi+=Math.imul(ah0,bh8);var w8=c+lo+((mid&8191)<<13);c=hi+(mid>>>13)+(w8>>>26);w8&=67108863;lo=Math.imul(al9,bl0);mid=Math.imul(al9,bh0);mid+=Math.imul(ah9,bl0);hi=Math.imul(ah9,bh0);lo+=Math.imul(al8,bl1);mid+=Math.imul(al8,bh1);mid+=Math.imul(ah8,bl1);hi+=Math.imul(ah8,bh1);lo+=Math.imul(al7,bl2);mid+=Math.imul(al7,bh2);mid+=Math.imul(ah7,bl2);hi+=Math.imul(ah7,bh2);lo+=Math.imul(al6,bl3);mid+=Math.imul(al6,bh3);mid+=Math.imul(ah6,bl3);hi+=Math.imul(ah6,bh3);lo+=Math.imul(al5,bl4);mid+=Math.imul(al5,bh4);mid+=Math.imul(ah5,bl4);hi+=Math.imul(ah5,bh4);lo+=Math.imul(al4,bl5);mid+=Math.imul(al4,bh5);mid+=Math.imul(ah4,bl5);hi+=Math.imul(ah4,bh5);lo+=Math.imul(al3,bl6);mid+=Math.imul(al3,bh6);mid+=Math.imul(ah3,bl6);hi+=Math.imul(ah3,bh6);lo+=Math.imul(al2,bl7);mid+=Math.imul(al2,bh7);mid+=Math.imul(ah2,bl7);hi+=Math.imul(ah2,bh7);lo+=Math.imul(al1,bl8);mid+=Math.imul(al1,bh8);mid+=Math.imul(ah1,bl8);hi+=Math.imul(ah1,bh8);lo+=Math.imul(al0,bl9);mid+=Math.imul(al0,bh9);mid+=Math.imul(ah0,bl9);hi+=Math.imul(ah0,bh9);var w9=c+lo+((mid&8191)<<13);c=hi+(mid>>>13)+(w9>>>26);w9&=67108863;lo=Math.imul(al9,bl1);mid=Math.imul(al9,bh1);mid+=Math.imul(ah9,bl1);hi=Math.imul(ah9,bh1);lo+=Math.imul(al8,bl2);mid+=Math.imul(al8,bh2);mid+=Math.imul(ah8,bl2);hi+=Math.imul(ah8,bh2);lo+=Math.imul(al7,bl3);mid+=Math.imul(al7,bh3);mid+=Math.imul(ah7,bl3);hi+=Math.imul(ah7,bh3);lo+=Math.imul(al6,bl4);mid+=Math.imul(al6,bh4);mid+=Math.imul(ah6,bl4);hi+=Math.imul(ah6,bh4);lo+=Math.imul(al5,bl5);mid+=Math.imul(al5,bh5);mid+=Math.imul(ah5,bl5);hi+=Math.imul(ah5,bh5);lo+=Math.imul(al4,bl6);mid+=Math.imul(al4,bh6);mid+=Math.imul(ah4,bl6);hi+=Math.imul(ah4,bh6);lo+=Math.imul(al3,bl7);mid+=Math.imul(al3,bh7);mid+=Math.imul(ah3,bl7);hi+=Math.imul(ah3,bh7);lo+=Math.imul(al2,bl8);mid+=Math.imul(al2,bh8);mid+=Math.imul(ah2,bl8);hi+=Math.imul(ah2,bh8);lo+=Math.imul(al1,bl9);mid+=Math.imul(al1,bh9);mid+=Math.imul(ah1,bl9);hi+=Math.imul(ah1,bh9);var w10=c+lo+((mid&8191)<<13);c=hi+(mid>>>13)+(w10>>>26);w10&=67108863;lo=Math.imul(al9,bl2);mid=Math.imul(al9,bh2);mid+=Math.imul(ah9,bl2);hi=Math.imul(ah9,bh2);lo+=Math.imul(al8,bl3);mid+=Math.imul(al8,bh3);mid+=Math.imul(ah8,bl3);hi+=Math.imul(ah8,bh3);lo+=Math.imul(al7,bl4);mid+=Math.imul(al7,bh4);mid+=Math.imul(ah7,bl4);hi+=Math.imul(ah7,bh4);lo+=Math.imul(al6,bl5);mid+=Math.imul(al6,bh5);mid+=Math.imul(ah6,bl5);hi+=Math.imul(ah6,bh5);lo+=Math.imul(al5,bl6);mid+=Math.imul(al5,bh6);mid+=Math.imul(ah5,bl6);hi+=Math.imul(ah5,bh6);lo+=Math.imul(al4,bl7);mid+=Math.imul(al4,bh7);mid+=Math.imul(ah4,bl7);hi+=Math.imul(ah4,bh7);lo+=Math.imul(al3,bl8);mid+=Math.imul(al3,bh8);mid+=Math.imul(ah3,bl8);hi+=Math.imul(ah3,bh8);lo+=Math.imul(al2,bl9);mid+=Math.imul(al2,bh9);mid+=Math.imul(ah2,bl9);hi+=Math.imul(ah2,bh9);var w11=c+lo+((mid&8191)<<13);c=hi+(mid>>>13)+(w11>>>26);w11&=67108863;lo=Math.imul(al9,bl3);mid=Math.imul(al9,bh3);mid+=Math.imul(ah9,bl3);hi=Math.imul(ah9,bh3);lo+=Math.imul(al8,bl4);mid+=Math.imul(al8,bh4);mid+=Math.imul(ah8,bl4);hi+=Math.imul(ah8,bh4);lo+=Math.imul(al7,bl5);mid+=Math.imul(al7,bh5);mid+=Math.imul(ah7,bl5);hi+=Math.imul(ah7,bh5);lo+=Math.imul(al6,bl6);mid+=Math.imul(al6,bh6);mid+=Math.imul(ah6,bl6);hi+=Math.imul(ah6,bh6);lo+=Math.imul(al5,bl7);mid+=Math.imul(al5,bh7);mid+=Math.imul(ah5,bl7);hi+=Math.imul(ah5,bh7);lo+=Math.imul(al4,bl8);mid+=Math.imul(al4,bh8);mid+=Math.imul(ah4,bl8);hi+=Math.imul(ah4,bh8);lo+=Math.imul(al3,bl9);mid+=Math.imul(al3,bh9);mid+=Math.imul(ah3,bl9);hi+=Math.imul(ah3,bh9);var w12=c+lo+((mid&8191)<<13);c=hi+(mid>>>13)+(w12>>>26);w12&=67108863;lo=Math.imul(al9,bl4);mid=Math.imul(al9,bh4);mid+=Math.imul(ah9,bl4);hi=Math.imul(ah9,bh4);lo+=Math.imul(al8,bl5);mid+=Math.imul(al8,bh5);mid+=Math.imul(ah8,bl5);hi+=Math.imul(ah8,bh5);lo+=Math.imul(al7,bl6);mid+=Math.imul(al7,bh6);mid+=Math.imul(ah7,bl6);hi+=Math.imul(ah7,bh6);lo+=Math.imul(al6,bl7);mid+=Math.imul(al6,bh7);mid+=Math.imul(ah6,bl7);hi+=Math.imul(ah6,bh7);lo+=Math.imul(al5,bl8);mid+=Math.imul(al5,bh8);mid+=Math.imul(ah5,bl8);hi+=Math.imul(ah5,bh8);lo+=Math.imul(al4,bl9);mid+=Math.imul(al4,bh9);mid+=Math.imul(ah4,bl9);hi+=Math.imul(ah4,bh9);var w13=c+lo+((mid&8191)<<13);c=hi+(mid>>>13)+(w13>>>26);w13&=67108863;lo=Math.imul(al9,bl5);mid=Math.imul(al9,bh5);mid+=Math.imul(ah9,bl5);hi=Math.imul(ah9,bh5);lo+=Math.imul(al8,bl6);mid+=Math.imul(al8,bh6);mid+=Math.imul(ah8,bl6);hi+=Math.imul(ah8,bh6);lo+=Math.imul(al7,bl7);mid+=Math.imul(al7,bh7);mid+=Math.imul(ah7,bl7);hi+=Math.imul(ah7,bh7);lo+=Math.imul(al6,bl8);mid+=Math.imul(al6,bh8);mid+=Math.imul(ah6,bl8);hi+=Math.imul(ah6,bh8);lo+=Math.imul(al5,bl9);mid+=Math.imul(al5,bh9);mid+=Math.imul(ah5,bl9);hi+=Math.imul(ah5,bh9);var w14=c+lo+((mid&8191)<<13);c=hi+(mid>>>13)+(w14>>>26);w14&=67108863;lo=Math.imul(al9,bl6);mid=Math.imul(al9,bh6);mid+=Math.imul(ah9,bl6);hi=Math.imul(ah9,bh6);lo+=Math.imul(al8,bl7);mid+=Math.imul(al8,bh7);mid+=Math.imul(ah8,bl7);hi+=Math.imul(ah8,bh7);lo+=Math.imul(al7,bl8);mid+=Math.imul(al7,bh8);mid+=Math.imul(ah7,bl8);hi+=Math.imul(ah7,bh8);lo+=Math.imul(al6,bl9);mid+=Math.imul(al6,bh9);mid+=Math.imul(ah6,bl9);hi+=Math.imul(ah6,bh9);var w15=c+lo+((mid&8191)<<13);c=hi+(mid>>>13)+(w15>>>26);w15&=67108863;lo=Math.imul(al9,bl7);mid=Math.imul(al9,bh7);mid+=Math.imul(ah9,bl7);hi=Math.imul(ah9,bh7);lo+=Math.imul(al8,bl8);mid+=Math.imul(al8,bh8);mid+=Math.imul(ah8,bl8);hi+=Math.imul(ah8,bh8);lo+=Math.imul(al7,bl9);mid+=Math.imul(al7,bh9);mid+=Math.imul(ah7,bl9);hi+=Math.imul(ah7,bh9);var w16=c+lo+((mid&8191)<<13);c=hi+(mid>>>13)+(w16>>>26);w16&=67108863;lo=Math.imul(al9,bl8);mid=Math.imul(al9,bh8);mid+=Math.imul(ah9,bl8);hi=Math.imul(ah9,bh8);lo+=Math.imul(al8,bl9);mid+=Math.imul(al8,bh9);mid+=Math.imul(ah8,bl9);hi+=Math.imul(ah8,bh9);var w17=c+lo+((mid&8191)<<13);c=hi+(mid>>>13)+(w17>>>26);w17&=67108863;lo=Math.imul(al9,bl9);mid=Math.imul(al9,bh9);mid+=Math.imul(ah9,bl9);hi=Math.imul(ah9,bh9);var w18=c+lo+((mid&8191)<<13);c=hi+(mid>>>13)+(w18>>>26);w18&=67108863;o[0]=w0;o[1]=w1;o[2]=w2;o[3]=w3;o[4]=w4;o[5]=w5;o[6]=w6;o[7]=w7;o[8]=w8;o[9]=w9;o[10]=w10;o[11]=w11;o[12]=w12;o[13]=w13;o[14]=w14;o[15]=w15;o[16]=w16;o[17]=w17;o[18]=w18;if(c!==0){o[19]=c;out.length++}return out};if(!Math.imul){comb10MulTo=smallMulTo}function bigMulTo(self,num,out){out.negative=num.negative^self.negative;out.length=self.length+num.length;var carry=0;var hncarry=0;for(var k=0;k<out.length-1;k++){var ncarry=hncarry;hncarry=0;var rword=carry&67108863;var maxJ=Math.min(k,num.length-1);for(var j=Math.max(0,k-self.length+1);j<=maxJ;j++){var i=k-j;var a=self.words[i]|0;var b=num.words[j]|0;var r=a*b;var lo=r&67108863;ncarry=ncarry+(r/67108864|0)|0;lo=lo+rword|0;
  9. rword=lo&67108863;ncarry=ncarry+(lo>>>26)|0;hncarry+=ncarry>>>26;ncarry&=67108863}out.words[k]=rword;carry=ncarry;ncarry=hncarry}if(carry!==0){out.words[k]=carry}else{out.length--}return out.strip()}function jumboMulTo(self,num,out){var fftm=new FFTM;return fftm.mulp(self,num,out)}BN.prototype.mulTo=function mulTo(num,out){var res;var len=this.length+num.length;if(this.length===10&&num.length===10){res=comb10MulTo(this,num,out)}else if(len<63){res=smallMulTo(this,num,out)}else if(len<1024){res=bigMulTo(this,num,out)}else{res=jumboMulTo(this,num,out)}return res};function FFTM(x,y){this.x=x;this.y=y}FFTM.prototype.makeRBT=function makeRBT(N){var t=new Array(N);var l=BN.prototype._countBits(N)-1;for(var i=0;i<N;i++){t[i]=this.revBin(i,l,N)}return t};FFTM.prototype.revBin=function revBin(x,l,N){if(x===0||x===N-1)return x;var rb=0;for(var i=0;i<l;i++){rb|=(x&1)<<l-i-1;x>>=1}return rb};FFTM.prototype.permute=function permute(rbt,rws,iws,rtws,itws,N){for(var i=0;i<N;i++){rtws[i]=rws[rbt[i]];itws[i]=iws[rbt[i]]}};FFTM.prototype.transform=function transform(rws,iws,rtws,itws,N,rbt){this.permute(rbt,rws,iws,rtws,itws,N);for(var s=1;s<N;s<<=1){var l=s<<1;var rtwdf=Math.cos(2*Math.PI/l);var itwdf=Math.sin(2*Math.PI/l);for(var p=0;p<N;p+=l){var rtwdf_=rtwdf;var itwdf_=itwdf;for(var j=0;j<s;j++){var re=rtws[p+j];var ie=itws[p+j];var ro=rtws[p+j+s];var io=itws[p+j+s];var rx=rtwdf_*ro-itwdf_*io;io=rtwdf_*io+itwdf_*ro;ro=rx;rtws[p+j]=re+ro;itws[p+j]=ie+io;rtws[p+j+s]=re-ro;itws[p+j+s]=ie-io;if(j!==l){rx=rtwdf*rtwdf_-itwdf*itwdf_;itwdf_=rtwdf*itwdf_+itwdf*rtwdf_;rtwdf_=rx}}}}};FFTM.prototype.guessLen13b=function guessLen13b(n,m){var N=Math.max(m,n)|1;var odd=N&1;var i=0;for(N=N/2|0;N;N=N>>>1){i++}return 1<<i+1+odd};FFTM.prototype.conjugate=function conjugate(rws,iws,N){if(N<=1)return;for(var i=0;i<N/2;i++){var t=rws[i];rws[i]=rws[N-i-1];rws[N-i-1]=t;t=iws[i];iws[i]=-iws[N-i-1];iws[N-i-1]=-t}};FFTM.prototype.normalize13b=function normalize13b(ws,N){var carry=0;for(var i=0;i<N/2;i++){var w=Math.round(ws[2*i+1]/N)*8192+Math.round(ws[2*i]/N)+carry;ws[i]=w&67108863;if(w<67108864){carry=0}else{carry=w/67108864|0}}return ws};FFTM.prototype.convert13b=function convert13b(ws,len,rws,N){var carry=0;for(var i=0;i<len;i++){carry=carry+(ws[i]|0);rws[2*i]=carry&8191;carry=carry>>>13;rws[2*i+1]=carry&8191;carry=carry>>>13}for(i=2*len;i<N;++i){rws[i]=0}assert(carry===0);assert((carry&~8191)===0)};FFTM.prototype.stub=function stub(N){var ph=new Array(N);for(var i=0;i<N;i++){ph[i]=0}return ph};FFTM.prototype.mulp=function mulp(x,y,out){var N=2*this.guessLen13b(x.length,y.length);var rbt=this.makeRBT(N);var _=this.stub(N);var rws=new Array(N);var rwst=new Array(N);var iwst=new Array(N);var nrws=new Array(N);var nrwst=new Array(N);var niwst=new Array(N);var rmws=out.words;rmws.length=N;this.convert13b(x.words,x.length,rws,N);this.convert13b(y.words,y.length,nrws,N);this.transform(rws,_,rwst,iwst,N,rbt);this.transform(nrws,_,nrwst,niwst,N,rbt);for(var i=0;i<N;i++){var rx=rwst[i]*nrwst[i]-iwst[i]*niwst[i];iwst[i]=rwst[i]*niwst[i]+iwst[i]*nrwst[i];rwst[i]=rx}this.conjugate(rwst,iwst,N);this.transform(rwst,iwst,rmws,_,N,rbt);this.conjugate(rmws,_,N);this.normalize13b(rmws,N);out.negative=x.negative^y.negative;out.length=x.length+y.length;return out.strip()};BN.prototype.mul=function mul(num){var out=new BN(null);out.words=new Array(this.length+num.length);return this.mulTo(num,out)};BN.prototype.mulf=function mulf(num){var out=new BN(null);out.words=new Array(this.length+num.length);return jumboMulTo(this,num,out)};BN.prototype.imul=function imul(num){return this.clone().mulTo(num,this)};BN.prototype.imuln=function imuln(num){assert(typeof num==="number");assert(num<67108864);var carry=0;for(var i=0;i<this.length;i++){var w=(this.words[i]|0)*num;var lo=(w&67108863)+(carry&67108863);carry>>=26;carry+=w/67108864|0;carry+=lo>>>26;this.words[i]=lo&67108863}if(carry!==0){this.words[i]=carry;this.length++}return this};BN.prototype.muln=function muln(num){return this.clone().imuln(num)};BN.prototype.sqr=function sqr(){return this.mul(this)};BN.prototype.isqr=function isqr(){return this.imul(this.clone())};BN.prototype.pow=function pow(num){var w=toBitArray(num);if(w.length===0)return new BN(1);var res=this;for(var i=0;i<w.length;i++,res=res.sqr()){if(w[i]!==0)break}if(++i<w.length){for(var q=res.sqr();i<w.length;i++,q=q.sqr()){if(w[i]===0)continue;res=res.mul(q)}}return res};BN.prototype.iushln=function iushln(bits){assert(typeof bits==="number"&&bits>=0);var r=bits%26;var s=(bits-r)/26;var carryMask=67108863>>>26-r<<26-r;var i;if(r!==0){var carry=0;for(i=0;i<this.length;i++){var newCarry=this.words[i]&carryMask;var c=(this.words[i]|0)-newCarry<<r;this.words[i]=c|carry;carry=newCarry>>>26-r}if(carry){this.words[i]=carry;this.length++}}if(s!==0){for(i=this.length-1;i>=0;i--){this.words[i+s]=this.words[i]}for(i=0;i<s;i++){this.words[i]=0}this.length+=s}return this.strip()};BN.prototype.ishln=function ishln(bits){assert(this.negative===0);return this.iushln(bits)};BN.prototype.iushrn=function iushrn(bits,hint,extended){assert(typeof bits==="number"&&bits>=0);var h;if(hint){h=(hint-hint%26)/26}else{h=0}var r=bits%26;var s=Math.min((bits-r)/26,this.length);var mask=67108863^67108863>>>r<<r;var maskedWords=extended;h-=s;h=Math.max(0,h);if(maskedWords){for(var i=0;i<s;i++){maskedWords.words[i]=this.words[i]}maskedWords.length=s}if(s===0){}else if(this.length>s){this.length-=s;for(i=0;i<this.length;i++){this.words[i]=this.words[i+s]}}else{this.words[0]=0;this.length=1}var carry=0;for(i=this.length-1;i>=0&&(carry!==0||i>=h);i--){var word=this.words[i]|0;this.words[i]=carry<<26-r|word>>>r;carry=word&mask}if(maskedWords&&carry!==0){maskedWords.words[maskedWords.length++]=carry}if(this.length===0){this.words[0]=0;this.length=1}return this.strip()};BN.prototype.ishrn=function ishrn(bits,hint,extended){assert(this.negative===0);return this.iushrn(bits,hint,extended)};BN.prototype.shln=function shln(bits){return this.clone().ishln(bits)};BN.prototype.ushln=function ushln(bits){return this.clone().iushln(bits)};BN.prototype.shrn=function shrn(bits){return this.clone().ishrn(bits)};BN.prototype.ushrn=function ushrn(bits){return this.clone().iushrn(bits)};BN.prototype.testn=function testn(bit){assert(typeof bit==="number"&&bit>=0);var r=bit%26;var s=(bit-r)/26;var q=1<<r;if(this.length<=s)return false;var w=this.words[s];return!!(w&q)};BN.prototype.imaskn=function imaskn(bits){assert(typeof bits==="number"&&bits>=0);var r=bits%26;var s=(bits-r)/26;assert(this.negative===0,"imaskn works only with positive numbers");if(r!==0){s++}this.length=Math.min(s,this.length);if(r!==0){var mask=67108863^67108863>>>r<<r;this.words[this.length-1]&=mask}return this.strip()};BN.prototype.maskn=function maskn(bits){return this.clone().imaskn(bits)};BN.prototype.iaddn=function iaddn(num){assert(typeof num==="number");assert(num<67108864);if(num<0)return this.isubn(-num);if(this.negative!==0){if(this.length===1&&(this.words[0]|0)<num){this.words[0]=num-(this.words[0]|0);this.negative=0;return this}this.negative=0;this.isubn(num);this.negative=1;return this}return this._iaddn(num)};BN.prototype._iaddn=function _iaddn(num){this.words[0]+=num;for(var i=0;i<this.length&&this.words[i]>=67108864;i++){this.words[i]-=67108864;if(i===this.length-1){this.words[i+1]=1}else{this.words[i+1]++}}this.length=Math.max(this.length,i+1);return this};BN.prototype.isubn=function isubn(num){assert(typeof num==="number");assert(num<67108864);if(num<0)return this.iaddn(-num);if(this.negative!==0){this.negative=0;this.iaddn(num);this.negative=1;return this}this.words[0]-=num;if(this.length===1&&this.words[0]<0){this.words[0]=-this.words[0];this.negative=1}else{for(var i=0;i<this.length&&this.words[i]<0;i++){this.words[i]+=67108864;this.words[i+1]-=1}}return this.strip()};BN.prototype.addn=function addn(num){return this.clone().iaddn(num)};BN.prototype.subn=function subn(num){return this.clone().isubn(num)};BN.prototype.iabs=function iabs(){this.negative=0;return this};BN.prototype.abs=function abs(){return this.clone().iabs()};BN.prototype._ishlnsubmul=function _ishlnsubmul(num,mul,shift){var len=num.length+shift;var i;this._expand(len);var w;var carry=0;for(i=0;i<num.length;i++){w=(this.words[i+shift]|0)+carry;var right=(num.words[i]|0)*mul;w-=right&67108863;carry=(w>>26)-(right/67108864|0);this.words[i+shift]=w&67108863}for(;i<this.length-shift;i++){w=(this.words[i+shift]|0)+carry;carry=w>>26;this.words[i+shift]=w&67108863}if(carry===0)return this.strip();assert(carry===-1);carry=0;for(i=0;i<this.length;i++){w=-(this.words[i]|0)+carry;carry=w>>26;this.words[i]=w&67108863}this.negative=1;return this.strip()};BN.prototype._wordDiv=function _wordDiv(num,mode){var shift=this.length-num.length;var a=this.clone();var b=num;var bhi=b.words[b.length-1]|0;var bhiBits=this._countBits(bhi);shift=26-bhiBits;if(shift!==0){b=b.ushln(shift);a.iushln(shift);bhi=b.words[b.length-1]|0}var m=a.length-b.length;var q;if(mode!=="mod"){q=new BN(null);q.length=m+1;q.words=new Array(q.length);for(var i=0;i<q.length;i++){q.words[i]=0}}var diff=a.clone()._ishlnsubmul(b,1,m);if(diff.negative===0){a=diff;if(q){q.words[m]=1}}for(var j=m-1;j>=0;j--){var qj=(a.words[b.length+j]|0)*67108864+(a.words[b.length+j-1]|0);qj=Math.min(qj/bhi|0,67108863);a._ishlnsubmul(b,qj,j);while(a.negative!==0){qj--;a.negative=0;a._ishlnsubmul(b,1,j);if(!a.isZero()){a.negative^=1}}if(q){q.words[j]=qj}}if(q){q.strip()}a.strip();if(mode!=="div"&&shift!==0){a.iushrn(shift)}return{div:q||null,mod:a}};BN.prototype.divmod=function divmod(num,mode,positive){assert(!num.isZero());if(this.isZero()){return{div:new BN(0),mod:new BN(0)}}var div,mod,res;if(this.negative!==0&&num.negative===0){res=this.neg().divmod(num,mode);if(mode!=="mod"){div=res.div.neg()}if(mode!=="div"){mod=res.mod.neg();if(positive&&mod.negative!==0){mod.iadd(num)}}return{div:div,mod:mod}}if(this.negative===0&&num.negative!==0){res=this.divmod(num.neg(),mode);if(mode!=="mod"){div=res.div.neg()}return{div:div,mod:res.mod}}if((this.negative&num.negative)!==0){res=this.neg().divmod(num.neg(),mode);if(mode!=="div"){mod=res.mod.neg();if(positive&&mod.negative!==0){mod.isub(num)}}return{div:res.div,mod:mod}}if(num.length>this.length||this.cmp(num)<0){return{div:new BN(0),mod:this}}if(num.length===1){if(mode==="div"){return{div:this.divn(num.words[0]),mod:null}}if(mode==="mod"){return{div:null,mod:new BN(this.modn(num.words[0]))}}return{div:this.divn(num.words[0]),mod:new BN(this.modn(num.words[0]))}}return this._wordDiv(num,mode)};BN.prototype.div=function div(num){return this.divmod(num,"div",false).div};BN.prototype.mod=function mod(num){return this.divmod(num,"mod",false).mod};BN.prototype.umod=function umod(num){return this.divmod(num,"mod",true).mod};BN.prototype.divRound=function divRound(num){var dm=this.divmod(num);if(dm.mod.isZero())return dm.div;var mod=dm.div.negative!==0?dm.mod.isub(num):dm.mod;var half=num.ushrn(1);var r2=num.andln(1);var cmp=mod.cmp(half);if(cmp<0||r2===1&&cmp===0)return dm.div;return dm.div.negative!==0?dm.div.isubn(1):dm.div.iaddn(1)};BN.prototype.modn=function modn(num){assert(num<=67108863);var p=(1<<26)%num;var acc=0;for(var i=this.length-1;i>=0;i--){acc=(p*acc+(this.words[i]|0))%num}return acc};BN.prototype.idivn=function idivn(num){assert(num<=67108863);var carry=0;for(var i=this.length-1;i>=0;i--){var w=(this.words[i]|0)+carry*67108864;this.words[i]=w/num|0;carry=w%num}return this.strip()};BN.prototype.divn=function divn(num){return this.clone().idivn(num)};BN.prototype.egcd=function egcd(p){assert(p.negative===0);assert(!p.isZero());var x=this;var y=p.clone();if(x.negative!==0){x=x.umod(p)}else{x=x.clone()}var A=new BN(1);var B=new BN(0);var C=new BN(0);var D=new BN(1);var g=0;while(x.isEven()&&y.isEven()){x.iushrn(1);y.iushrn(1);++g}var yp=y.clone();var xp=x.clone();while(!x.isZero()){for(var i=0,im=1;(x.words[0]&im)===0&&i<26;++i,im<<=1);if(i>0){x.iushrn(i);while(i-- >0){if(A.isOdd()||B.isOdd()){A.iadd(yp);B.isub(xp)}A.iushrn(1);B.iushrn(1)}}for(var j=0,jm=1;(y.words[0]&jm)===0&&j<26;++j,jm<<=1);if(j>0){y.iushrn(j);while(j-- >0){if(C.isOdd()||D.isOdd()){C.iadd(yp);D.isub(xp)}C.iushrn(1);D.iushrn(1)}}if(x.cmp(y)>=0){x.isub(y);A.isub(C);B.isub(D)}else{y.isub(x);C.isub(A);D.isub(B)}}return{a:C,b:D,gcd:y.iushln(g)}};BN.prototype._invmp=function _invmp(p){assert(p.negative===0);assert(!p.isZero());var a=this;var b=p.clone();if(a.negative!==0){a=a.umod(p)}else{a=a.clone()}var x1=new BN(1);var x2=new BN(0);var delta=b.clone();while(a.cmpn(1)>0&&b.cmpn(1)>0){for(var i=0,im=1;(a.words[0]&im)===0&&i<26;++i,im<<=1);if(i>0){a.iushrn(i);while(i-- >0){if(x1.isOdd()){x1.iadd(delta)}x1.iushrn(1)}}for(var j=0,jm=1;(b.words[0]&jm)===0&&j<26;++j,jm<<=1);if(j>0){b.iushrn(j);while(j-- >0){if(x2.isOdd()){x2.iadd(delta)}x2.iushrn(1)}}if(a.cmp(b)>=0){a.isub(b);x1.isub(x2)}else{b.isub(a);x2.isub(x1)}}var res;if(a.cmpn(1)===0){res=x1}else{res=x2}if(res.cmpn(0)<0){res.iadd(p)}return res};BN.prototype.gcd=function gcd(num){if(this.isZero())return num.abs();if(num.isZero())return this.abs();var a=this.clone();var b=num.clone();a.negative=0;b.negative=0;for(var shift=0;a.isEven()&&b.isEven();shift++){a.iushrn(1);b.iushrn(1)}do{while(a.isEven()){a.iushrn(1)}while(b.isEven()){b.iushrn(1)}var r=a.cmp(b);if(r<0){var t=a;a=b;b=t}else if(r===0||b.cmpn(1)===0){break}a.isub(b)}while(true);return b.iushln(shift)};BN.prototype.invm=function invm(num){return this.egcd(num).a.umod(num)};BN.prototype.isEven=function isEven(){return(this.words[0]&1)===0};BN.prototype.isOdd=function isOdd(){return(this.words[0]&1)===1};BN.prototype.andln=function andln(num){return this.words[0]&num};BN.prototype.bincn=function bincn(bit){assert(typeof bit==="number");var r=bit%26;var s=(bit-r)/26;var q=1<<r;if(this.length<=s){this._expand(s+1);this.words[s]|=q;return this}var carry=q;for(var i=s;carry!==0&&i<this.length;i++){var w=this.words[i]|0;w+=carry;carry=w>>>26;w&=67108863;this.words[i]=w}if(carry!==0){this.words[i]=carry;this.length++}return this};BN.prototype.isZero=function isZero(){return this.length===1&&this.words[0]===0};BN.prototype.cmpn=function cmpn(num){var negative=num<0;if(this.negative!==0&&!negative)return-1;if(this.negative===0&&negative)return 1;this.strip();var res;if(this.length>1){res=1}else{if(negative){num=-num}assert(num<=67108863,"Number is too big");var w=this.words[0]|0;res=w===num?0:w<num?-1:1}if(this.negative!==0)return-res|0;return res};BN.prototype.cmp=function cmp(num){if(this.negative!==0&&num.negative===0)return-1;if(this.negative===0&&num.negative!==0)return 1;var res=this.ucmp(num);if(this.negative!==0)return-res|0;return res};BN.prototype.ucmp=function ucmp(num){if(this.length>num.length)return 1;if(this.length<num.length)return-1;var res=0;for(var i=this.length-1;i>=0;i--){var a=this.words[i]|0;var b=num.words[i]|0;if(a===b)continue;if(a<b){res=-1}else if(a>b){res=1}break}return res};BN.prototype.gtn=function gtn(num){return this.cmpn(num)===1};BN.prototype.gt=function gt(num){return this.cmp(num)===1};BN.prototype.gten=function gten(num){return this.cmpn(num)>=0};BN.prototype.gte=function gte(num){return this.cmp(num)>=0};BN.prototype.ltn=function ltn(num){return this.cmpn(num)===-1};BN.prototype.lt=function lt(num){return this.cmp(num)===-1};BN.prototype.lten=function lten(num){return this.cmpn(num)<=0};BN.prototype.lte=function lte(num){return this.cmp(num)<=0};BN.prototype.eqn=function eqn(num){return this.cmpn(num)===0};BN.prototype.eq=function eq(num){return this.cmp(num)===0};BN.red=function red(num){return new Red(num)};BN.prototype.toRed=function toRed(ctx){assert(!this.red,"Already a number in reduction context");assert(this.negative===0,"red works only with positives");return ctx.convertTo(this)._forceRed(ctx)};BN.prototype.fromRed=function fromRed(){assert(this.red,"fromRed works only with numbers in reduction context");return this.red.convertFrom(this)};BN.prototype._forceRed=function _forceRed(ctx){this.red=ctx;return this};BN.prototype.forceRed=function forceRed(ctx){assert(!this.red,"Already a number in reduction context");return this._forceRed(ctx)};BN.prototype.redAdd=function redAdd(num){assert(this.red,"redAdd works only with red numbers");return this.red.add(this,num)};BN.prototype.redIAdd=function redIAdd(num){assert(this.red,"redIAdd works only with red numbers");return this.red.iadd(this,num)};BN.prototype.redSub=function redSub(num){assert(this.red,"redSub works only with red numbers");return this.red.sub(this,num)};BN.prototype.redISub=function redISub(num){assert(this.red,"redISub works only with red numbers");return this.red.isub(this,num)};BN.prototype.redShl=function redShl(num){assert(this.red,"redShl works only with red numbers");return this.red.shl(this,num)};BN.prototype.redMul=function redMul(num){assert(this.red,"redMul works only with red numbers");this.red._verify2(this,num);return this.red.mul(this,num)};BN.prototype.redIMul=function redIMul(num){assert(this.red,"redMul works only with red numbers");this.red._verify2(this,num);return this.red.imul(this,num)};BN.prototype.redSqr=function redSqr(){assert(this.red,"redSqr works only with red numbers");this.red._verify1(this);return this.red.sqr(this)};BN.prototype.redISqr=function redISqr(){assert(this.red,"redISqr works only with red numbers");this.red._verify1(this);return this.red.isqr(this)};BN.prototype.redSqrt=function redSqrt(){assert(this.red,"redSqrt works only with red numbers");this.red._verify1(this);return this.red.sqrt(this)};BN.prototype.redInvm=function redInvm(){assert(this.red,"redInvm works only with red numbers");this.red._verify1(this);return this.red.invm(this)};BN.prototype.redNeg=function redNeg(){assert(this.red,"redNeg works only with red numbers");this.red._verify1(this);return this.red.neg(this)};BN.prototype.redPow=function redPow(num){assert(this.red&&!num.red,"redPow(normalNum)");this.red._verify1(this);return this.red.pow(this,num)};var primes={k256:null,p224:null,p192:null,p25519:null};function MPrime(name,p){this.name=name;this.p=new BN(p,16);this.n=this.p.bitLength();this.k=new BN(1).iushln(this.n).isub(this.p);this.tmp=this._tmp()}MPrime.prototype._tmp=function _tmp(){var tmp=new BN(null);tmp.words=new Array(Math.ceil(this.n/13));return tmp};MPrime.prototype.ireduce=function ireduce(num){var r=num;var rlen;do{this.split(r,this.tmp);r=this.imulK(r);r=r.iadd(this.tmp);rlen=r.bitLength()}while(rlen>this.n);var cmp=rlen<this.n?-1:r.ucmp(this.p);if(cmp===0){r.words[0]=0;r.length=1}else if(cmp>0){r.isub(this.p)}else{r.strip()}return r};MPrime.prototype.split=function split(input,out){input.iushrn(this.n,0,out)};MPrime.prototype.imulK=function imulK(num){return num.imul(this.k)};function K256(){MPrime.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}inherits(K256,MPrime);K256.prototype.split=function split(input,output){var mask=4194303;var outLen=Math.min(input.length,9);for(var i=0;i<outLen;i++){output.words[i]=input.words[i]}output.length=outLen;if(input.length<=9){input.words[0]=0;input.length=1;return}var prev=input.words[9];output.words[output.length++]=prev&mask;for(i=10;i<input.length;i++){var next=input.words[i]|0;input.words[i-10]=(next&mask)<<4|prev>>>22;prev=next}prev>>>=22;input.words[i-10]=prev;if(prev===0&&input.length>10){input.length-=10}else{input.length-=9}};K256.prototype.imulK=function imulK(num){num.words[num.length]=0;num.words[num.length+1]=0;num.length+=2;var lo=0;for(var i=0;i<num.length;i++){var w=num.words[i]|0;lo+=w*977;num.words[i]=lo&67108863;lo=w*64+(lo/67108864|0)}if(num.words[num.length-1]===0){num.length--;if(num.words[num.length-1]===0){num.length--}}return num};function P224(){MPrime.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}inherits(P224,MPrime);function P192(){MPrime.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}inherits(P192,MPrime);function P25519(){MPrime.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}inherits(P25519,MPrime);P25519.prototype.imulK=function imulK(num){var carry=0;for(var i=0;i<num.length;i++){var hi=(num.words[i]|0)*19+carry;var lo=hi&67108863;hi>>>=26;num.words[i]=lo;carry=hi}if(carry!==0){num.words[num.length++]=carry}return num};BN._prime=function prime(name){if(primes[name])return primes[name];var prime;if(name==="k256"){prime=new K256}else if(name==="p224"){prime=new P224}else if(name==="p192"){prime=new P192}else if(name==="p25519"){prime=new P25519}else{throw new Error("Unknown prime "+name)}primes[name]=prime;return prime};function Red(m){if(typeof m==="string"){var prime=BN._prime(m);this.m=prime.p;this.prime=prime}else{this.m=m;this.prime=null}}Red.prototype._verify1=function _verify1(a){assert(a.negative===0,"red works only with positives");assert(a.red,"red works only with red numbers")};Red.prototype._verify2=function _verify2(a,b){assert((a.negative|b.negative)===0,"red works only with positives");assert(a.red&&a.red===b.red,"red works only with red numbers")};Red.prototype.imod=function imod(a){if(this.prime)return this.prime.ireduce(a)._forceRed(this);return a.umod(this.m)._forceRed(this)};Red.prototype.neg=function neg(a){if(a.isZero()){return a.clone()}return this.m.sub(a)._forceRed(this)};Red.prototype.add=function add(a,b){this._verify2(a,b);var res=a.add(b);if(res.cmp(this.m)>=0){res.isub(this.m)}return res._forceRed(this)};Red.prototype.iadd=function iadd(a,b){this._verify2(a,b);var res=a.iadd(b);if(res.cmp(this.m)>=0){res.isub(this.m)}return res};Red.prototype.sub=function sub(a,b){this._verify2(a,b);var res=a.sub(b);if(res.cmpn(0)<0){res.iadd(this.m)}return res._forceRed(this)};Red.prototype.isub=function isub(a,b){this._verify2(a,b);var res=a.isub(b);if(res.cmpn(0)<0){res.iadd(this.m)}return res};Red.prototype.shl=function shl(a,num){this._verify1(a);return this.imod(a.ushln(num))};Red.prototype.imul=function imul(a,b){this._verify2(a,b);return this.imod(a.imul(b))};Red.prototype.mul=function mul(a,b){this._verify2(a,b);return this.imod(a.mul(b))};Red.prototype.isqr=function isqr(a){return this.imul(a,a.clone())};Red.prototype.sqr=function sqr(a){return this.mul(a,a)};Red.prototype.sqrt=function sqrt(a){if(a.isZero())return a.clone();var mod3=this.m.andln(3);assert(mod3%2===1);if(mod3===3){var pow=this.m.add(new BN(1)).iushrn(2);return this.pow(a,pow)}var q=this.m.subn(1);var s=0;while(!q.isZero()&&q.andln(1)===0){s++;q.iushrn(1)}assert(!q.isZero());var one=new BN(1).toRed(this);var nOne=one.redNeg();var lpow=this.m.subn(1).iushrn(1);var z=this.m.bitLength();z=new BN(2*z*z).toRed(this);while(this.pow(z,lpow).cmp(nOne)!==0){z.redIAdd(nOne)}var c=this.pow(z,q);var r=this.pow(a,q.addn(1).iushrn(1));var t=this.pow(a,q);var m=s;while(t.cmp(one)!==0){var tmp=t;for(var i=0;tmp.cmp(one)!==0;i++){tmp=tmp.redSqr()}assert(i<m);var b=this.pow(c,new BN(1).iushln(m-i-1));r=r.redMul(b);c=b.redSqr();t=t.redMul(c);m=i}return r};Red.prototype.invm=function invm(a){var inv=a._invmp(this.m);if(inv.negative!==0){inv.negative=0;return this.imod(inv).redNeg()}else{return this.imod(inv)}};Red.prototype.pow=function pow(a,num){if(num.isZero())return new BN(1);if(num.cmpn(1)===0)return a.clone();var windowSize=4;var wnd=new Array(1<<windowSize);wnd[0]=new BN(1).toRed(this);wnd[1]=a;for(var i=2;i<wnd.length;i++){wnd[i]=this.mul(wnd[i-1],a)}var res=wnd[0];var current=0;var currentLen=0;var start=num.bitLength()%26;if(start===0){start=26}for(i=num.length-1;i>=0;i--){var word=num.words[i];for(var j=start-1;j>=0;j--){var bit=word>>j&1;if(res!==wnd[0]){res=this.sqr(res)}if(bit===0&&current===0){currentLen=0;continue}current<<=1;current|=bit;currentLen++;if(currentLen!==windowSize&&(i!==0||j!==0))continue;res=this.mul(res,wnd[current]);currentLen=0;current=0}start=26}return res};Red.prototype.convertTo=function convertTo(num){var r=num.umod(this.m);return r===num?r.clone():r};Red.prototype.convertFrom=function convertFrom(num){var res=num.clone();res.red=null;return res};BN.mont=function mont(num){return new Mont(num)};function Mont(m){Red.call(this,m);this.shift=this.m.bitLength();if(this.shift%26!==0){this.shift+=26-this.shift%26}this.r=new BN(1).iushln(this.shift);this.r2=this.imod(this.r.sqr());this.rinv=this.r._invmp(this.m);this.minv=this.rinv.mul(this.r).isubn(1).div(this.m);this.minv=this.minv.umod(this.r);this.minv=this.r.sub(this.minv)}inherits(Mont,Red);Mont.prototype.convertTo=function convertTo(num){return this.imod(num.ushln(this.shift))};Mont.prototype.convertFrom=function convertFrom(num){var r=this.imod(num.mul(this.rinv));r.red=null;return r};Mont.prototype.imul=function imul(a,b){if(a.isZero()||b.isZero()){a.words[0]=0;a.length=1;return a}var t=a.imul(b);var c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);var u=t.isub(c).iushrn(this.shift);var res=u;if(u.cmp(this.m)>=0){res=u.isub(this.m)}else if(u.cmpn(0)<0){res=u.iadd(this.m)}return res._forceRed(this)};Mont.prototype.mul=function mul(a,b){if(a.isZero()||b.isZero())return new BN(0)._forceRed(this);var t=a.mul(b);var c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);var u=t.isub(c).iushrn(this.shift);var res=u;if(u.cmp(this.m)>=0){res=u.isub(this.m)}else if(u.cmpn(0)<0){res=u.iadd(this.m)}return res._forceRed(this)};Mont.prototype.invm=function invm(a){var res=this.imod(a._invmp(this.m).mul(this.r2));return res._forceRed(this)}})(typeof module==="undefined"||module,this)},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/browserify-rsa/index.js":[function(require,module,exports){(function(Buffer){var bn=require("bn.js");var randomBytes=require("randombytes");module.exports=crt;function blind(priv){var r=getr(priv);var blinder=r.toRed(bn.mont(priv.modulus)).redPow(new bn(priv.publicExponent)).fromRed();return{blinder:blinder,unblinder:r.invm(priv.modulus)}}function crt(msg,priv){var blinds=blind(priv);var len=priv.modulus.byteLength();var mod=bn.mont(priv.modulus);var blinded=new bn(msg).mul(blinds.blinder).umod(priv.modulus);var c1=blinded.toRed(bn.mont(priv.prime1));var c2=blinded.toRed(bn.mont(priv.prime2));var qinv=priv.coefficient;var p=priv.prime1;var q=priv.prime2;var m1=c1.redPow(priv.exponent1);var m2=c2.redPow(priv.exponent2);m1=m1.fromRed();m2=m2.fromRed();var h=m1.isub(m2).imul(qinv).umod(p);h.imul(q);m2.iadd(h);return new Buffer(m2.imul(blinds.unblinder).umod(priv.modulus).toArray(false,len))}crt.getr=getr;function getr(priv){var len=priv.modulus.byteLength();var r=new bn(randomBytes(len));while(r.cmp(priv.modulus)>=0||!r.umod(priv.prime1)||!r.umod(priv.prime2)){r=new bn(randomBytes(len))}return r}}).call(this,require("buffer").Buffer)},{"bn.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/bn.js/lib/bn.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js",randombytes:"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/randombytes/browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic.js":[function(require,module,exports){"use strict";var elliptic=exports;elliptic.version=require("../package.json").version;elliptic.utils=require("./elliptic/utils");elliptic.rand=require("brorand");elliptic.hmacDRBG=require("./elliptic/hmac-drbg");elliptic.curve=require("./elliptic/curve");elliptic.curves=require("./elliptic/curves");elliptic.ec=require("./elliptic/ec");elliptic.eddsa=require("./elliptic/eddsa")},{"../package.json":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/package.json","./elliptic/curve":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/curve/index.js","./elliptic/curves":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/curves.js","./elliptic/ec":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/ec/index.js","./elliptic/eddsa":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/eddsa/index.js","./elliptic/hmac-drbg":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/hmac-drbg.js","./elliptic/utils":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/utils.js",brorand:"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/node_modules/brorand/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/curve/base.js":[function(require,module,exports){"use strict";var BN=require("bn.js");var elliptic=require("../../elliptic");var utils=elliptic.utils;var getNAF=utils.getNAF;var getJSF=utils.getJSF;var assert=utils.assert;function BaseCurve(type,conf){this.type=type;this.p=new BN(conf.p,16);this.red=conf.prime?BN.red(conf.prime):BN.mont(this.p);this.zero=new BN(0).toRed(this.red);this.one=new BN(1).toRed(this.red);this.two=new BN(2).toRed(this.red);this.n=conf.n&&new BN(conf.n,16);this.g=conf.g&&this.pointFromJSON(conf.g,conf.gRed);this._wnafT1=new Array(4);this._wnafT2=new Array(4);this._wnafT3=new Array(4);this._wnafT4=new Array(4)}module.exports=BaseCurve;BaseCurve.prototype.point=function point(){throw new Error("Not implemented")};BaseCurve.prototype.validate=function validate(){throw new Error("Not implemented")};BaseCurve.prototype._fixedNafMul=function _fixedNafMul(p,k){assert(p.precomputed);var doubles=p._getDoubles();var naf=getNAF(k,1);var I=(1<<doubles.step+1)-(doubles.step%2===0?2:1);I/=3;var repr=[];for(var j=0;j<naf.length;j+=doubles.step){var nafW=0;for(var k=j+doubles.step-1;k>=j;k--)nafW=(nafW<<1)+naf[k];repr.push(nafW)}var a=this.jpoint(null,null,null);var b=this.jpoint(null,null,null);for(var i=I;i>0;i--){for(var j=0;j<repr.length;j++){var nafW=repr[j];if(nafW===i)b=b.mixedAdd(doubles.points[j]);else if(nafW===-i)b=b.mixedAdd(doubles.points[j].neg())}a=a.add(b)}return a.toP()};BaseCurve.prototype._wnafMul=function _wnafMul(p,k){var w=4;var nafPoints=p._getNAFPoints(w);w=nafPoints.wnd;var wnd=nafPoints.points;var naf=getNAF(k,w);var acc=this.jpoint(null,null,null);for(var i=naf.length-1;i>=0;i--){for(var k=0;i>=0&&naf[i]===0;i--)k++;if(i>=0)k++;acc=acc.dblp(k);if(i<0)break;var z=naf[i];assert(z!==0);if(p.type==="affine"){if(z>0)acc=acc.mixedAdd(wnd[z-1>>1]);else acc=acc.mixedAdd(wnd[-z-1>>1].neg())}else{if(z>0)acc=acc.add(wnd[z-1>>1]);else acc=acc.add(wnd[-z-1>>1].neg())}}return p.type==="affine"?acc.toP():acc};BaseCurve.prototype._wnafMulAdd=function _wnafMulAdd(defW,points,coeffs,len){var wndWidth=this._wnafT1;var wnd=this._wnafT2;var naf=this._wnafT3;var max=0;for(var i=0;i<len;i++){var p=points[i];var nafPoints=p._getNAFPoints(defW);wndWidth[i]=nafPoints.wnd;wnd[i]=nafPoints.points}for(var i=len-1;i>=1;i-=2){var a=i-1;var b=i;if(wndWidth[a]!==1||wndWidth[b]!==1){naf[a]=getNAF(coeffs[a],wndWidth[a]);naf[b]=getNAF(coeffs[b],wndWidth[b]);max=Math.max(naf[a].length,max);max=Math.max(naf[b].length,max);continue}var comb=[points[a],null,null,points[b]];if(points[a].y.cmp(points[b].y)===0){comb[1]=points[a].add(points[b]);comb[2]=points[a].toJ().mixedAdd(points[b].neg())}else if(points[a].y.cmp(points[b].y.redNeg())===0){comb[1]=points[a].toJ().mixedAdd(points[b]);comb[2]=points[a].add(points[b].neg())}else{comb[1]=points[a].toJ().mixedAdd(points[b]);
  10. comb[2]=points[a].toJ().mixedAdd(points[b].neg())}var index=[-3,-1,-5,-7,0,7,5,1,3];var jsf=getJSF(coeffs[a],coeffs[b]);max=Math.max(jsf[0].length,max);naf[a]=new Array(max);naf[b]=new Array(max);for(var j=0;j<max;j++){var ja=jsf[0][j]|0;var jb=jsf[1][j]|0;naf[a][j]=index[(ja+1)*3+(jb+1)];naf[b][j]=0;wnd[a]=comb}}var acc=this.jpoint(null,null,null);var tmp=this._wnafT4;for(var i=max;i>=0;i--){var k=0;while(i>=0){var zero=true;for(var j=0;j<len;j++){tmp[j]=naf[j][i]|0;if(tmp[j]!==0)zero=false}if(!zero)break;k++;i--}if(i>=0)k++;acc=acc.dblp(k);if(i<0)break;for(var j=0;j<len;j++){var z=tmp[j];var p;if(z===0)continue;else if(z>0)p=wnd[j][z-1>>1];else if(z<0)p=wnd[j][-z-1>>1].neg();if(p.type==="affine")acc=acc.mixedAdd(p);else acc=acc.add(p)}}for(var i=0;i<len;i++)wnd[i]=null;return acc.toP()};function BasePoint(curve,type){this.curve=curve;this.type=type;this.precomputed=null}BaseCurve.BasePoint=BasePoint;BasePoint.prototype.eq=function eq(){throw new Error("Not implemented")};BasePoint.prototype.validate=function validate(){return this.curve.validate(this)};BaseCurve.prototype.decodePoint=function decodePoint(bytes,enc){bytes=utils.toArray(bytes,enc);var len=this.p.byteLength();if(bytes[0]===4&&bytes.length-1===2*len){return this.point(bytes.slice(1,1+len),bytes.slice(1+len,1+2*len))}else if((bytes[0]===2||bytes[0]===3)&&bytes.length-1===len){return this.pointFromX(bytes.slice(1,1+len),bytes[0]===3)}throw new Error("Unknown point format")};BasePoint.prototype.encodeCompressed=function encodeCompressed(enc){return this.encode(enc,true)};BasePoint.prototype._encode=function _encode(compact){var len=this.curve.p.byteLength();var x=this.getX().toArray("be",len);if(compact)return[this.getY().isEven()?2:3].concat(x);return[4].concat(x,this.getY().toArray("be",len))};BasePoint.prototype.encode=function encode(enc,compact){return utils.encode(this._encode(compact),enc)};BasePoint.prototype.precompute=function precompute(power){if(this.precomputed)return this;var precomputed={doubles:null,naf:null,beta:null};precomputed.naf=this._getNAFPoints(8);precomputed.doubles=this._getDoubles(4,power);precomputed.beta=this._getBeta();this.precomputed=precomputed;return this};BasePoint.prototype._hasDoubles=function _hasDoubles(k){if(!this.precomputed)return false;var doubles=this.precomputed.doubles;if(!doubles)return false;return doubles.points.length>=Math.ceil((k.bitLength()+1)/doubles.step)};BasePoint.prototype._getDoubles=function _getDoubles(step,power){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;var doubles=[this];var acc=this;for(var i=0;i<power;i+=step){for(var j=0;j<step;j++)acc=acc.dbl();doubles.push(acc)}return{step:step,points:doubles}};BasePoint.prototype._getNAFPoints=function _getNAFPoints(wnd){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;var res=[this];var max=(1<<wnd)-1;var dbl=max===1?null:this.dbl();for(var i=1;i<max;i++)res[i]=res[i-1].add(dbl);return{wnd:wnd,points:res}};BasePoint.prototype._getBeta=function _getBeta(){return null};BasePoint.prototype.dblp=function dblp(k){var r=this;for(var i=0;i<k;i++)r=r.dbl();return r}},{"../../elliptic":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic.js","bn.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/bn.js/lib/bn.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/curve/edwards.js":[function(require,module,exports){"use strict";var curve=require("../curve");var elliptic=require("../../elliptic");var BN=require("bn.js");var inherits=require("inherits");var Base=curve.base;var assert=elliptic.utils.assert;function EdwardsCurve(conf){this.twisted=(conf.a|0)!==1;this.mOneA=this.twisted&&(conf.a|0)===-1;this.extended=this.mOneA;Base.call(this,"edwards",conf);this.a=new BN(conf.a,16).umod(this.red.m);this.a=this.a.toRed(this.red);this.c=new BN(conf.c,16).toRed(this.red);this.c2=this.c.redSqr();this.d=new BN(conf.d,16).toRed(this.red);this.dd=this.d.redAdd(this.d);assert(!this.twisted||this.c.fromRed().cmpn(1)===0);this.oneC=(conf.c|0)===1}inherits(EdwardsCurve,Base);module.exports=EdwardsCurve;EdwardsCurve.prototype._mulA=function _mulA(num){if(this.mOneA)return num.redNeg();else return this.a.redMul(num)};EdwardsCurve.prototype._mulC=function _mulC(num){if(this.oneC)return num;else return this.c.redMul(num)};EdwardsCurve.prototype.jpoint=function jpoint(x,y,z,t){return this.point(x,y,z,t)};EdwardsCurve.prototype.pointFromX=function pointFromX(x,odd){x=new BN(x,16);if(!x.red)x=x.toRed(this.red);var x2=x.redSqr();var rhs=this.c2.redSub(this.a.redMul(x2));var lhs=this.one.redSub(this.c2.redMul(this.d).redMul(x2));var y2=rhs.redMul(lhs.redInvm());var y=y2.redSqrt();if(y.redSqr().redSub(y2).cmp(this.zero)!==0)throw new Error("invalid point");var isOdd=y.fromRed().isOdd();if(odd&&!isOdd||!odd&&isOdd)y=y.redNeg();return this.point(x,y)};EdwardsCurve.prototype.pointFromY=function pointFromY(y,odd){y=new BN(y,16);if(!y.red)y=y.toRed(this.red);var y2=y.redSqr();var lhs=y2.redSub(this.one);var rhs=y2.redMul(this.d).redAdd(this.one);var x2=lhs.redMul(rhs.redInvm());if(x2.cmp(this.zero)===0){if(odd)throw new Error("invalid point");else return this.point(this.zero,y)}var x=x2.redSqrt();if(x.redSqr().redSub(x2).cmp(this.zero)!==0)throw new Error("invalid point");if(x.isOdd()!==odd)x=x.redNeg();return this.point(x,y)};EdwardsCurve.prototype.validate=function validate(point){if(point.isInfinity())return true;point.normalize();var x2=point.x.redSqr();var y2=point.y.redSqr();var lhs=x2.redMul(this.a).redAdd(y2);var rhs=this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));return lhs.cmp(rhs)===0};function Point(curve,x,y,z,t){Base.BasePoint.call(this,curve,"projective");if(x===null&&y===null&&z===null){this.x=this.curve.zero;this.y=this.curve.one;this.z=this.curve.one;this.t=this.curve.zero;this.zOne=true}else{this.x=new BN(x,16);this.y=new BN(y,16);this.z=z?new BN(z,16):this.curve.one;this.t=t&&new BN(t,16);if(!this.x.red)this.x=this.x.toRed(this.curve.red);if(!this.y.red)this.y=this.y.toRed(this.curve.red);if(!this.z.red)this.z=this.z.toRed(this.curve.red);if(this.t&&!this.t.red)this.t=this.t.toRed(this.curve.red);this.zOne=this.z===this.curve.one;if(this.curve.extended&&!this.t){this.t=this.x.redMul(this.y);if(!this.zOne)this.t=this.t.redMul(this.z.redInvm())}}}inherits(Point,Base.BasePoint);EdwardsCurve.prototype.pointFromJSON=function pointFromJSON(obj){return Point.fromJSON(this,obj)};EdwardsCurve.prototype.point=function point(x,y,z,t){return new Point(this,x,y,z,t)};Point.fromJSON=function fromJSON(curve,obj){return new Point(curve,obj[0],obj[1],obj[2])};Point.prototype.inspect=function inspect(){if(this.isInfinity())return"<EC Point Infinity>";return"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"};Point.prototype.isInfinity=function isInfinity(){return this.x.cmpn(0)===0&&this.y.cmp(this.z)===0};Point.prototype._extDbl=function _extDbl(){var a=this.x.redSqr();var b=this.y.redSqr();var c=this.z.redSqr();c=c.redIAdd(c);var d=this.curve._mulA(a);var e=this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);var g=d.redAdd(b);var f=g.redSub(c);var h=d.redSub(b);var nx=e.redMul(f);var ny=g.redMul(h);var nt=e.redMul(h);var nz=f.redMul(g);return this.curve.point(nx,ny,nz,nt)};Point.prototype._projDbl=function _projDbl(){var b=this.x.redAdd(this.y).redSqr();var c=this.x.redSqr();var d=this.y.redSqr();var nx;var ny;var nz;if(this.curve.twisted){var e=this.curve._mulA(c);var f=e.redAdd(d);if(this.zOne){nx=b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));ny=f.redMul(e.redSub(d));nz=f.redSqr().redSub(f).redSub(f)}else{var h=this.z.redSqr();var j=f.redSub(h).redISub(h);nx=b.redSub(c).redISub(d).redMul(j);ny=f.redMul(e.redSub(d));nz=f.redMul(j)}}else{var e=c.redAdd(d);var h=this.curve._mulC(this.c.redMul(this.z)).redSqr();var j=e.redSub(h).redSub(h);nx=this.curve._mulC(b.redISub(e)).redMul(j);ny=this.curve._mulC(e).redMul(c.redISub(d));nz=e.redMul(j)}return this.curve.point(nx,ny,nz)};Point.prototype.dbl=function dbl(){if(this.isInfinity())return this;if(this.curve.extended)return this._extDbl();else return this._projDbl()};Point.prototype._extAdd=function _extAdd(p){var a=this.y.redSub(this.x).redMul(p.y.redSub(p.x));var b=this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));var c=this.t.redMul(this.curve.dd).redMul(p.t);var d=this.z.redMul(p.z.redAdd(p.z));var e=b.redSub(a);var f=d.redSub(c);var g=d.redAdd(c);var h=b.redAdd(a);var nx=e.redMul(f);var ny=g.redMul(h);var nt=e.redMul(h);var nz=f.redMul(g);return this.curve.point(nx,ny,nz,nt)};Point.prototype._projAdd=function _projAdd(p){var a=this.z.redMul(p.z);var b=a.redSqr();var c=this.x.redMul(p.x);var d=this.y.redMul(p.y);var e=this.curve.d.redMul(c).redMul(d);var f=b.redSub(e);var g=b.redAdd(e);var tmp=this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);var nx=a.redMul(f).redMul(tmp);var ny;var nz;if(this.curve.twisted){ny=a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));nz=f.redMul(g)}else{ny=a.redMul(g).redMul(d.redSub(c));nz=this.curve._mulC(f).redMul(g)}return this.curve.point(nx,ny,nz)};Point.prototype.add=function add(p){if(this.isInfinity())return p;if(p.isInfinity())return this;if(this.curve.extended)return this._extAdd(p);else return this._projAdd(p)};Point.prototype.mul=function mul(k){if(this._hasDoubles(k))return this.curve._fixedNafMul(this,k);else return this.curve._wnafMul(this,k)};Point.prototype.mulAdd=function mulAdd(k1,p,k2){return this.curve._wnafMulAdd(1,[this,p],[k1,k2],2)};Point.prototype.normalize=function normalize(){if(this.zOne)return this;var zi=this.z.redInvm();this.x=this.x.redMul(zi);this.y=this.y.redMul(zi);if(this.t)this.t=this.t.redMul(zi);this.z=this.curve.one;this.zOne=true;return this};Point.prototype.neg=function neg(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())};Point.prototype.getX=function getX(){this.normalize();return this.x.fromRed()};Point.prototype.getY=function getY(){this.normalize();return this.y.fromRed()};Point.prototype.eq=function eq(other){return this===other||this.getX().cmp(other.getX())===0&&this.getY().cmp(other.getY())===0};Point.prototype.toP=Point.prototype.normalize;Point.prototype.mixedAdd=Point.prototype.add},{"../../elliptic":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic.js","../curve":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/curve/index.js","bn.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/bn.js/lib/bn.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/curve/index.js":[function(require,module,exports){"use strict";var curve=exports;curve.base=require("./base");curve.short=require("./short");curve.mont=require("./mont");curve.edwards=require("./edwards")},{"./base":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/curve/base.js","./edwards":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/curve/edwards.js","./mont":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/curve/mont.js","./short":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/curve/short.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/curve/mont.js":[function(require,module,exports){"use strict";var curve=require("../curve");var BN=require("bn.js");var inherits=require("inherits");var Base=curve.base;var elliptic=require("../../elliptic");var utils=elliptic.utils;function MontCurve(conf){Base.call(this,"mont",conf);this.a=new BN(conf.a,16).toRed(this.red);this.b=new BN(conf.b,16).toRed(this.red);this.i4=new BN(4).toRed(this.red).redInvm();this.two=new BN(2).toRed(this.red);this.a24=this.i4.redMul(this.a.redAdd(this.two))}inherits(MontCurve,Base);module.exports=MontCurve;MontCurve.prototype.validate=function validate(point){var x=point.normalize().x;var x2=x.redSqr();var rhs=x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);var y=rhs.redSqrt();return y.redSqr().cmp(rhs)===0};function Point(curve,x,z){Base.BasePoint.call(this,curve,"projective");if(x===null&&z===null){this.x=this.curve.one;this.z=this.curve.zero}else{this.x=new BN(x,16);this.z=new BN(z,16);if(!this.x.red)this.x=this.x.toRed(this.curve.red);if(!this.z.red)this.z=this.z.toRed(this.curve.red)}}inherits(Point,Base.BasePoint);MontCurve.prototype.decodePoint=function decodePoint(bytes,enc){return this.point(utils.toArray(bytes,enc),1)};MontCurve.prototype.point=function point(x,z){return new Point(this,x,z)};MontCurve.prototype.pointFromJSON=function pointFromJSON(obj){return Point.fromJSON(this,obj)};Point.prototype.precompute=function precompute(){};Point.prototype._encode=function _encode(){return this.getX().toArray("be",this.curve.p.byteLength())};Point.fromJSON=function fromJSON(curve,obj){return new Point(curve,obj[0],obj[1]||curve.one)};Point.prototype.inspect=function inspect(){if(this.isInfinity())return"<EC Point Infinity>";return"<EC Point x: "+this.x.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"};Point.prototype.isInfinity=function isInfinity(){return this.z.cmpn(0)===0};Point.prototype.dbl=function dbl(){var a=this.x.redAdd(this.z);var aa=a.redSqr();var b=this.x.redSub(this.z);var bb=b.redSqr();var c=aa.redSub(bb);var nx=aa.redMul(bb);var nz=c.redMul(bb.redAdd(this.curve.a24.redMul(c)));return this.curve.point(nx,nz)};Point.prototype.add=function add(){throw new Error("Not supported on Montgomery curve")};Point.prototype.diffAdd=function diffAdd(p,diff){var a=this.x.redAdd(this.z);var b=this.x.redSub(this.z);var c=p.x.redAdd(p.z);var d=p.x.redSub(p.z);var da=d.redMul(a);var cb=c.redMul(b);var nx=diff.z.redMul(da.redAdd(cb).redSqr());var nz=diff.x.redMul(da.redISub(cb).redSqr());return this.curve.point(nx,nz)};Point.prototype.mul=function mul(k){var t=k.clone();var a=this;var b=this.curve.point(null,null);var c=this;for(var bits=[];t.cmpn(0)!==0;t.iushrn(1))bits.push(t.andln(1));for(var i=bits.length-1;i>=0;i--){if(bits[i]===0){a=a.diffAdd(b,c);b=b.dbl()}else{b=a.diffAdd(b,c);a=a.dbl()}}return b};Point.prototype.mulAdd=function mulAdd(){throw new Error("Not supported on Montgomery curve")};Point.prototype.eq=function eq(other){return this.getX().cmp(other.getX())===0};Point.prototype.normalize=function normalize(){this.x=this.x.redMul(this.z.redInvm());this.z=this.curve.one;return this};Point.prototype.getX=function getX(){this.normalize();return this.x.fromRed()}},{"../../elliptic":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic.js","../curve":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/curve/index.js","bn.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/bn.js/lib/bn.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/curve/short.js":[function(require,module,exports){"use strict";var curve=require("../curve");var elliptic=require("../../elliptic");var BN=require("bn.js");var inherits=require("inherits");var Base=curve.base;var assert=elliptic.utils.assert;function ShortCurve(conf){Base.call(this,"short",conf);this.a=new BN(conf.a,16).toRed(this.red);this.b=new BN(conf.b,16).toRed(this.red);this.tinv=this.two.redInvm();this.zeroA=this.a.fromRed().cmpn(0)===0;this.threeA=this.a.fromRed().sub(this.p).cmpn(-3)===0;this.endo=this._getEndomorphism(conf);this._endoWnafT1=new Array(4);this._endoWnafT2=new Array(4)}inherits(ShortCurve,Base);module.exports=ShortCurve;ShortCurve.prototype._getEndomorphism=function _getEndomorphism(conf){if(!this.zeroA||!this.g||!this.n||this.p.modn(3)!==1)return;var beta;var lambda;if(conf.beta){beta=new BN(conf.beta,16).toRed(this.red)}else{var betas=this._getEndoRoots(this.p);beta=betas[0].cmp(betas[1])<0?betas[0]:betas[1];beta=beta.toRed(this.red)}if(conf.lambda){lambda=new BN(conf.lambda,16)}else{var lambdas=this._getEndoRoots(this.n);if(this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta))===0){lambda=lambdas[0]}else{lambda=lambdas[1];assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta))===0)}}var basis;if(conf.basis){basis=conf.basis.map(function(vec){return{a:new BN(vec.a,16),b:new BN(vec.b,16)}})}else{basis=this._getEndoBasis(lambda)}return{beta:beta,lambda:lambda,basis:basis}};ShortCurve.prototype._getEndoRoots=function _getEndoRoots(num){var red=num===this.p?this.red:BN.mont(num);var tinv=new BN(2).toRed(red).redInvm();var ntinv=tinv.redNeg();var s=new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);var l1=ntinv.redAdd(s).fromRed();var l2=ntinv.redSub(s).fromRed();return[l1,l2]};ShortCurve.prototype._getEndoBasis=function _getEndoBasis(lambda){var aprxSqrt=this.n.ushrn(Math.floor(this.n.bitLength()/2));var u=lambda;var v=this.n.clone();var x1=new BN(1);var y1=new BN(0);var x2=new BN(0);var y2=new BN(1);var a0;var b0;var a1;var b1;var a2;var b2;var prevR;var i=0;var r;var x;while(u.cmpn(0)!==0){var q=v.div(u);r=v.sub(q.mul(u));x=x2.sub(q.mul(x1));var y=y2.sub(q.mul(y1));if(!a1&&r.cmp(aprxSqrt)<0){a0=prevR.neg();b0=x1;a1=r.neg();b1=x}else if(a1&&++i===2){break}prevR=r;v=u;u=r;x2=x1;x1=x;y2=y1;y1=y}a2=r.neg();b2=x;var len1=a1.sqr().add(b1.sqr());var len2=a2.sqr().add(b2.sqr());if(len2.cmp(len1)>=0){a2=a0;b2=b0}if(a1.negative){a1=a1.neg();b1=b1.neg()}if(a2.negative){a2=a2.neg();b2=b2.neg()}return[{a:a1,b:b1},{a:a2,b:b2}]};ShortCurve.prototype._endoSplit=function _endoSplit(k){var basis=this.endo.basis;var v1=basis[0];var v2=basis[1];var c1=v2.b.mul(k).divRound(this.n);var c2=v1.b.neg().mul(k).divRound(this.n);var p1=c1.mul(v1.a);var p2=c2.mul(v2.a);var q1=c1.mul(v1.b);var q2=c2.mul(v2.b);var k1=k.sub(p1).sub(p2);var k2=q1.add(q2).neg();return{k1:k1,k2:k2}};ShortCurve.prototype.pointFromX=function pointFromX(x,odd){x=new BN(x,16);if(!x.red)x=x.toRed(this.red);var y2=x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);var y=y2.redSqrt();if(y.redSqr().redSub(y2).cmp(this.zero)!==0)throw new Error("invalid point");var isOdd=y.fromRed().isOdd();if(odd&&!isOdd||!odd&&isOdd)y=y.redNeg();return this.point(x,y)};ShortCurve.prototype.validate=function validate(point){if(point.inf)return true;var x=point.x;var y=point.y;var ax=this.a.redMul(x);var rhs=x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);return y.redSqr().redISub(rhs).cmpn(0)===0};ShortCurve.prototype._endoWnafMulAdd=function _endoWnafMulAdd(points,coeffs){var npoints=this._endoWnafT1;var ncoeffs=this._endoWnafT2;for(var i=0;i<points.length;i++){var split=this._endoSplit(coeffs[i]);var p=points[i];var beta=p._getBeta();if(split.k1.negative){split.k1.ineg();p=p.neg(true)}if(split.k2.negative){split.k2.ineg();beta=beta.neg(true)}npoints[i*2]=p;npoints[i*2+1]=beta;ncoeffs[i*2]=split.k1;ncoeffs[i*2+1]=split.k2}var res=this._wnafMulAdd(1,npoints,ncoeffs,i*2);for(var j=0;j<i*2;j++){npoints[j]=null;ncoeffs[j]=null}return res};function Point(curve,x,y,isRed){Base.BasePoint.call(this,curve,"affine");if(x===null&&y===null){this.x=null;this.y=null;this.inf=true}else{this.x=new BN(x,16);this.y=new BN(y,16);if(isRed){this.x.forceRed(this.curve.red);this.y.forceRed(this.curve.red)}if(!this.x.red)this.x=this.x.toRed(this.curve.red);if(!this.y.red)this.y=this.y.toRed(this.curve.red);this.inf=false}}inherits(Point,Base.BasePoint);ShortCurve.prototype.point=function point(x,y,isRed){return new Point(this,x,y,isRed)};ShortCurve.prototype.pointFromJSON=function pointFromJSON(obj,red){return Point.fromJSON(this,obj,red)};Point.prototype._getBeta=function _getBeta(){if(!this.curve.endo)return;var pre=this.precomputed;if(pre&&pre.beta)return pre.beta;var beta=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(pre){var curve=this.curve;var endoMul=function(p){return curve.point(p.x.redMul(curve.endo.beta),p.y)};pre.beta=beta;beta.precomputed={beta:null,naf:pre.naf&&{wnd:pre.naf.wnd,points:pre.naf.points.map(endoMul)},doubles:pre.doubles&&{step:pre.doubles.step,points:pre.doubles.points.map(endoMul)}}}return beta};Point.prototype.toJSON=function toJSON(){if(!this.precomputed)return[this.x,this.y];return[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]};Point.fromJSON=function fromJSON(curve,obj,red){if(typeof obj==="string")obj=JSON.parse(obj);var res=curve.point(obj[0],obj[1],red);if(!obj[2])return res;function obj2point(obj){return curve.point(obj[0],obj[1],red)}var pre=obj[2];res.precomputed={beta:null,doubles:pre.doubles&&{step:pre.doubles.step,points:[res].concat(pre.doubles.points.map(obj2point))},naf:pre.naf&&{wnd:pre.naf.wnd,points:[res].concat(pre.naf.points.map(obj2point))}};return res};Point.prototype.inspect=function inspect(){if(this.isInfinity())return"<EC Point Infinity>";return"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+">"};Point.prototype.isInfinity=function isInfinity(){return this.inf};Point.prototype.add=function add(p){if(this.inf)return p;if(p.inf)return this;if(this.eq(p))return this.dbl();if(this.neg().eq(p))return this.curve.point(null,null);if(this.x.cmp(p.x)===0)return this.curve.point(null,null);var c=this.y.redSub(p.y);if(c.cmpn(0)!==0)c=c.redMul(this.x.redSub(p.x).redInvm());var nx=c.redSqr().redISub(this.x).redISub(p.x);var ny=c.redMul(this.x.redSub(nx)).redISub(this.y);return this.curve.point(nx,ny)};Point.prototype.dbl=function dbl(){if(this.inf)return this;var ys1=this.y.redAdd(this.y);if(ys1.cmpn(0)===0)return this.curve.point(null,null);var a=this.curve.a;var x2=this.x.redSqr();var dyinv=ys1.redInvm();var c=x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);var nx=c.redSqr().redISub(this.x.redAdd(this.x));var ny=c.redMul(this.x.redSub(nx)).redISub(this.y);return this.curve.point(nx,ny)};Point.prototype.getX=function getX(){return this.x.fromRed()};Point.prototype.getY=function getY(){return this.y.fromRed()};Point.prototype.mul=function mul(k){k=new BN(k,16);if(this._hasDoubles(k))return this.curve._fixedNafMul(this,k);else if(this.curve.endo)return this.curve._endoWnafMulAdd([this],[k]);else return this.curve._wnafMul(this,k)};Point.prototype.mulAdd=function mulAdd(k1,p2,k2){var points=[this,p2];var coeffs=[k1,k2];if(this.curve.endo)return this.curve._endoWnafMulAdd(points,coeffs);else return this.curve._wnafMulAdd(1,points,coeffs,2)};Point.prototype.eq=function eq(p){return this===p||this.inf===p.inf&&(this.inf||this.x.cmp(p.x)===0&&this.y.cmp(p.y)===0)};Point.prototype.neg=function neg(_precompute){if(this.inf)return this;var res=this.curve.point(this.x,this.y.redNeg());if(_precompute&&this.precomputed){var pre=this.precomputed;var negate=function(p){return p.neg()};res.precomputed={naf:pre.naf&&{wnd:pre.naf.wnd,points:pre.naf.points.map(negate)},doubles:pre.doubles&&{step:pre.doubles.step,points:pre.doubles.points.map(negate)}}}return res};Point.prototype.toJ=function toJ(){if(this.inf)return this.curve.jpoint(null,null,null);var res=this.curve.jpoint(this.x,this.y,this.curve.one);return res};function JPoint(curve,x,y,z){Base.BasePoint.call(this,curve,"jacobian");if(x===null&&y===null&&z===null){this.x=this.curve.one;this.y=this.curve.one;this.z=new BN(0)}else{this.x=new BN(x,16);this.y=new BN(y,16);this.z=new BN(z,16)}if(!this.x.red)this.x=this.x.toRed(this.curve.red);if(!this.y.red)this.y=this.y.toRed(this.curve.red);if(!this.z.red)this.z=this.z.toRed(this.curve.red);this.zOne=this.z===this.curve.one}inherits(JPoint,Base.BasePoint);ShortCurve.prototype.jpoint=function jpoint(x,y,z){return new JPoint(this,x,y,z)};JPoint.prototype.toP=function toP(){if(this.isInfinity())return this.curve.point(null,null);var zinv=this.z.redInvm();var zinv2=zinv.redSqr();var ax=this.x.redMul(zinv2);var ay=this.y.redMul(zinv2).redMul(zinv);return this.curve.point(ax,ay)};JPoint.prototype.neg=function neg(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)};JPoint.prototype.add=function add(p){if(this.isInfinity())return p;if(p.isInfinity())return this;var pz2=p.z.redSqr();var z2=this.z.redSqr();var u1=this.x.redMul(pz2);var u2=p.x.redMul(z2);var s1=this.y.redMul(pz2.redMul(p.z));var s2=p.y.redMul(z2.redMul(this.z));var h=u1.redSub(u2);var r=s1.redSub(s2);if(h.cmpn(0)===0){if(r.cmpn(0)!==0)return this.curve.jpoint(null,null,null);else return this.dbl()}var h2=h.redSqr();var h3=h2.redMul(h);var v=u1.redMul(h2);var nx=r.redSqr().redIAdd(h3).redISub(v).redISub(v);var ny=r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));var nz=this.z.redMul(p.z).redMul(h);return this.curve.jpoint(nx,ny,nz)};JPoint.prototype.mixedAdd=function mixedAdd(p){if(this.isInfinity())return p.toJ();if(p.isInfinity())return this;var z2=this.z.redSqr();var u1=this.x;var u2=p.x.redMul(z2);var s1=this.y;var s2=p.y.redMul(z2).redMul(this.z);var h=u1.redSub(u2);var r=s1.redSub(s2);if(h.cmpn(0)===0){if(r.cmpn(0)!==0)return this.curve.jpoint(null,null,null);else return this.dbl()}var h2=h.redSqr();var h3=h2.redMul(h);var v=u1.redMul(h2);var nx=r.redSqr().redIAdd(h3).redISub(v).redISub(v);var ny=r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));var nz=this.z.redMul(h);return this.curve.jpoint(nx,ny,nz)};JPoint.prototype.dblp=function dblp(pow){if(pow===0)return this;if(this.isInfinity())return this;if(!pow)return this.dbl();if(this.curve.zeroA||this.curve.threeA){var r=this;for(var i=0;i<pow;i++)r=r.dbl();return r}var a=this.curve.a;var tinv=this.curve.tinv;var jx=this.x;var jy=this.y;var jz=this.z;var jz4=jz.redSqr().redSqr();var jyd=jy.redAdd(jy);for(var i=0;i<pow;i++){var jx2=jx.redSqr();var jyd2=jyd.redSqr();var jyd4=jyd2.redSqr();var c=jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));var t1=jx.redMul(jyd2);var nx=c.redSqr().redISub(t1.redAdd(t1));var t2=t1.redISub(nx);var dny=c.redMul(t2);dny=dny.redIAdd(dny).redISub(jyd4);var nz=jyd.redMul(jz);if(i+1<pow)jz4=jz4.redMul(jyd4);jx=nx;jz=nz;jyd=dny}return this.curve.jpoint(jx,jyd.redMul(tinv),jz)};JPoint.prototype.dbl=function dbl(){if(this.isInfinity())return this;if(this.curve.zeroA)return this._zeroDbl();else if(this.curve.threeA)return this._threeDbl();else return this._dbl()};JPoint.prototype._zeroDbl=function _zeroDbl(){var nx;var ny;var nz;if(this.zOne){var xx=this.x.redSqr();var yy=this.y.redSqr();var yyyy=yy.redSqr();var s=this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);s=s.redIAdd(s);var m=xx.redAdd(xx).redIAdd(xx);var t=m.redSqr().redISub(s).redISub(s);var yyyy8=yyyy.redIAdd(yyyy);yyyy8=yyyy8.redIAdd(yyyy8);yyyy8=yyyy8.redIAdd(yyyy8);nx=t;ny=m.redMul(s.redISub(t)).redISub(yyyy8);nz=this.y.redAdd(this.y)}else{var a=this.x.redSqr();var b=this.y.redSqr();var c=b.redSqr();var d=this.x.redAdd(b).redSqr().redISub(a).redISub(c);d=d.redIAdd(d);var e=a.redAdd(a).redIAdd(a);var f=e.redSqr();var c8=c.redIAdd(c);c8=c8.redIAdd(c8);c8=c8.redIAdd(c8);nx=f.redISub(d).redISub(d);ny=e.redMul(d.redISub(nx)).redISub(c8);nz=this.y.redMul(this.z);nz=nz.redIAdd(nz)}return this.curve.jpoint(nx,ny,nz)};JPoint.prototype._threeDbl=function _threeDbl(){var nx;var ny;var nz;if(this.zOne){var xx=this.x.redSqr();var yy=this.y.redSqr();var yyyy=yy.redSqr();var s=this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);s=s.redIAdd(s);var m=xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);var t=m.redSqr().redISub(s).redISub(s);nx=t;var yyyy8=yyyy.redIAdd(yyyy);yyyy8=yyyy8.redIAdd(yyyy8);yyyy8=yyyy8.redIAdd(yyyy8);ny=m.redMul(s.redISub(t)).redISub(yyyy8);nz=this.y.redAdd(this.y)}else{var delta=this.z.redSqr();var gamma=this.y.redSqr();var beta=this.x.redMul(gamma);var alpha=this.x.redSub(delta).redMul(this.x.redAdd(delta));alpha=alpha.redAdd(alpha).redIAdd(alpha);var beta4=beta.redIAdd(beta);beta4=beta4.redIAdd(beta4);var beta8=beta4.redAdd(beta4);nx=alpha.redSqr().redISub(beta8);nz=this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);var ggamma8=gamma.redSqr();ggamma8=ggamma8.redIAdd(ggamma8);ggamma8=ggamma8.redIAdd(ggamma8);ggamma8=ggamma8.redIAdd(ggamma8);ny=alpha.redMul(beta4.redISub(nx)).redISub(ggamma8)}return this.curve.jpoint(nx,ny,nz)};JPoint.prototype._dbl=function _dbl(){var a=this.curve.a;var jx=this.x;var jy=this.y;var jz=this.z;var jz4=jz.redSqr().redSqr();var jx2=jx.redSqr();var jy2=jy.redSqr();var c=jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));var jxd4=jx.redAdd(jx);jxd4=jxd4.redIAdd(jxd4);var t1=jxd4.redMul(jy2);var nx=c.redSqr().redISub(t1.redAdd(t1));var t2=t1.redISub(nx);var jyd8=jy2.redSqr();jyd8=jyd8.redIAdd(jyd8);jyd8=jyd8.redIAdd(jyd8);jyd8=jyd8.redIAdd(jyd8);var ny=c.redMul(t2).redISub(jyd8);var nz=jy.redAdd(jy).redMul(jz);return this.curve.jpoint(nx,ny,nz)};JPoint.prototype.trpl=function trpl(){if(!this.curve.zeroA)return this.dbl().add(this);var xx=this.x.redSqr();var yy=this.y.redSqr();var zz=this.z.redSqr();var yyyy=yy.redSqr();var m=xx.redAdd(xx).redIAdd(xx);var mm=m.redSqr();var e=this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);e=e.redIAdd(e);e=e.redAdd(e).redIAdd(e);e=e.redISub(mm);var ee=e.redSqr();var t=yyyy.redIAdd(yyyy);t=t.redIAdd(t);t=t.redIAdd(t);t=t.redIAdd(t);var u=m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);var yyu4=yy.redMul(u);yyu4=yyu4.redIAdd(yyu4);yyu4=yyu4.redIAdd(yyu4);var nx=this.x.redMul(ee).redISub(yyu4);nx=nx.redIAdd(nx);nx=nx.redIAdd(nx);var ny=this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));ny=ny.redIAdd(ny);ny=ny.redIAdd(ny);ny=ny.redIAdd(ny);var nz=this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);return this.curve.jpoint(nx,ny,nz)};JPoint.prototype.mul=function mul(k,kbase){k=new BN(k,kbase);return this.curve._wnafMul(this,k)};JPoint.prototype.eq=function eq(p){if(p.type==="affine")return this.eq(p.toJ());if(this===p)return true;var z2=this.z.redSqr();var pz2=p.z.redSqr();if(this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0)!==0)return false;var z3=z2.redMul(this.z);var pz3=pz2.redMul(p.z);return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0)===0};JPoint.prototype.inspect=function inspect(){if(this.isInfinity())return"<EC JPoint Infinity>";return"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"};JPoint.prototype.isInfinity=function isInfinity(){return this.z.cmpn(0)===0}},{"../../elliptic":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic.js","../curve":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/curve/index.js","bn.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/bn.js/lib/bn.js",
  11. inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/curves.js":[function(require,module,exports){"use strict";var curves=exports;var hash=require("hash.js");var elliptic=require("../elliptic");var assert=elliptic.utils.assert;function PresetCurve(options){if(options.type==="short")this.curve=new elliptic.curve.short(options);else if(options.type==="edwards")this.curve=new elliptic.curve.edwards(options);else this.curve=new elliptic.curve.mont(options);this.g=this.curve.g;this.n=this.curve.n;this.hash=options.hash;assert(this.g.validate(),"Invalid curve");assert(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}curves.PresetCurve=PresetCurve;function defineCurve(name,options){Object.defineProperty(curves,name,{configurable:true,enumerable:true,get:function(){var curve=new PresetCurve(options);Object.defineProperty(curves,name,{configurable:true,enumerable:true,value:curve});return curve}})}defineCurve("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:hash.sha256,gRed:false,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]});defineCurve("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:hash.sha256,gRed:false,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]});defineCurve("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:hash.sha256,gRed:false,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]});defineCurve("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff "+"fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff "+"fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f "+"5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 "+"f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:hash.sha384,gRed:false,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 "+"5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 "+"0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]});defineCurve("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff "+"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff "+"ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff "+"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff "+"ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b "+"99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd "+"3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff "+"ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 "+"f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:hash.sha512,gRed:false,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 "+"053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 "+"a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 "+"579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 "+"3fad0761 353c7086 a272c240 88be9476 9fd16650"]});defineCurve("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"0",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:hash.sha256,gRed:false,g:["9"]});defineCurve("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:hash.sha256,gRed:false,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});var pre;try{pre=require("./precomputed/secp256k1")}catch(e){pre=undefined}defineCurve("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:hash.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:false,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",pre]})},{"../elliptic":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic.js","./precomputed/secp256k1":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","hash.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/node_modules/hash.js/lib/hash.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/ec/index.js":[function(require,module,exports){"use strict";var BN=require("bn.js");var elliptic=require("../../elliptic");var utils=elliptic.utils;var assert=utils.assert;var KeyPair=require("./key");var Signature=require("./signature");function EC(options){if(!(this instanceof EC))return new EC(options);if(typeof options==="string"){assert(elliptic.curves.hasOwnProperty(options),"Unknown curve "+options);options=elliptic.curves[options]}if(options instanceof elliptic.curves.PresetCurve)options={curve:options};this.curve=options.curve.curve;this.n=this.curve.n;this.nh=this.n.ushrn(1);this.g=this.curve.g;this.g=options.curve.g;this.g.precompute(options.curve.n.bitLength()+1);this.hash=options.hash||options.curve.hash}module.exports=EC;EC.prototype.keyPair=function keyPair(options){return new KeyPair(this,options)};EC.prototype.keyFromPrivate=function keyFromPrivate(priv,enc){return KeyPair.fromPrivate(this,priv,enc)};EC.prototype.keyFromPublic=function keyFromPublic(pub,enc){return KeyPair.fromPublic(this,pub,enc)};EC.prototype.genKeyPair=function genKeyPair(options){if(!options)options={};var drbg=new elliptic.hmacDRBG({hash:this.hash,pers:options.pers,entropy:options.entropy||elliptic.rand(this.hash.hmacStrength),nonce:this.n.toArray()});var bytes=this.n.byteLength();var ns2=this.n.sub(new BN(2));do{var priv=new BN(drbg.generate(bytes));if(priv.cmp(ns2)>0)continue;priv.iaddn(1);return this.keyFromPrivate(priv)}while(true)};EC.prototype._truncateToN=function truncateToN(msg,truncOnly){var delta=msg.byteLength()*8-this.n.bitLength();if(delta>0)msg=msg.ushrn(delta);if(!truncOnly&&msg.cmp(this.n)>=0)return msg.sub(this.n);else return msg};EC.prototype.sign=function sign(msg,key,enc,options){if(typeof enc==="object"){options=enc;enc=null}if(!options)options={};key=this.keyFromPrivate(key,enc);msg=this._truncateToN(new BN(msg,16));var bytes=this.n.byteLength();var bkey=key.getPrivate().toArray("be",bytes);var nonce=msg.toArray("be",bytes);var drbg=new elliptic.hmacDRBG({hash:this.hash,entropy:bkey,nonce:nonce,pers:options.pers,persEnc:options.persEnc});var ns1=this.n.sub(new BN(1));for(var iter=0;true;iter++){var k=options.k?options.k(iter):new BN(drbg.generate(this.n.byteLength()));k=this._truncateToN(k,true);if(k.cmpn(1)<=0||k.cmp(ns1)>=0)continue;var kp=this.g.mul(k);if(kp.isInfinity())continue;var kpX=kp.getX();var r=kpX.umod(this.n);if(r.cmpn(0)===0)continue;var s=k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));s=s.umod(this.n);if(s.cmpn(0)===0)continue;var recoveryParam=(kp.getY().isOdd()?1:0)|(kpX.cmp(r)!==0?2:0);if(options.canonical&&s.cmp(this.nh)>0){s=this.n.sub(s);recoveryParam^=1}return new Signature({r:r,s:s,recoveryParam:recoveryParam})}};EC.prototype.verify=function verify(msg,signature,key,enc){msg=this._truncateToN(new BN(msg,16));key=this.keyFromPublic(key,enc);signature=new Signature(signature,"hex");var r=signature.r;var s=signature.s;if(r.cmpn(1)<0||r.cmp(this.n)>=0)return false;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return false;var sinv=s.invm(this.n);var u1=sinv.mul(msg).umod(this.n);var u2=sinv.mul(r).umod(this.n);var p=this.g.mulAdd(u1,key.getPublic(),u2);if(p.isInfinity())return false;return p.getX().umod(this.n).cmp(r)===0};EC.prototype.recoverPubKey=function(msg,signature,j,enc){assert((3&j)===j,"The recovery param is more than two bits");signature=new Signature(signature,enc);var n=this.n;var e=new BN(msg);var r=signature.r;var s=signature.s;var isYOdd=j&1;var isSecondKey=j>>1;if(r.cmp(this.curve.p.umod(this.curve.n))>=0&&isSecondKey)throw new Error("Unable to find sencond key candinate");if(isSecondKey)r=this.curve.pointFromX(r.add(this.curve.n),isYOdd);else r=this.curve.pointFromX(r,isYOdd);var eNeg=n.sub(e);var rInv=signature.r.invm(n);return this.g.mulAdd(eNeg,r,s).mul(rInv)};EC.prototype.getKeyRecoveryParam=function(e,signature,Q,enc){signature=new Signature(signature,enc);if(signature.recoveryParam!==null)return signature.recoveryParam;for(var i=0;i<4;i++){var Qprime;try{Qprime=this.recoverPubKey(e,signature,i)}catch(e){continue}if(Qprime.eq(Q))return i}throw new Error("Unable to find valid recovery factor")}},{"../../elliptic":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic.js","./key":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/ec/key.js","./signature":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/ec/signature.js","bn.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/bn.js/lib/bn.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/ec/key.js":[function(require,module,exports){"use strict";var BN=require("bn.js");function KeyPair(ec,options){this.ec=ec;this.priv=null;this.pub=null;if(options.priv)this._importPrivate(options.priv,options.privEnc);if(options.pub)this._importPublic(options.pub,options.pubEnc)}module.exports=KeyPair;KeyPair.fromPublic=function fromPublic(ec,pub,enc){if(pub instanceof KeyPair)return pub;return new KeyPair(ec,{pub:pub,pubEnc:enc})};KeyPair.fromPrivate=function fromPrivate(ec,priv,enc){if(priv instanceof KeyPair)return priv;return new KeyPair(ec,{priv:priv,privEnc:enc})};KeyPair.prototype.validate=function validate(){var pub=this.getPublic();if(pub.isInfinity())return{result:false,reason:"Invalid public key"};if(!pub.validate())return{result:false,reason:"Public key is not a point"};if(!pub.mul(this.ec.curve.n).isInfinity())return{result:false,reason:"Public key * N != O"};return{result:true,reason:null}};KeyPair.prototype.getPublic=function getPublic(compact,enc){if(typeof compact==="string"){enc=compact;compact=null}if(!this.pub)this.pub=this.ec.g.mul(this.priv);if(!enc)return this.pub;return this.pub.encode(enc,compact)};KeyPair.prototype.getPrivate=function getPrivate(enc){if(enc==="hex")return this.priv.toString(16,2);else return this.priv};KeyPair.prototype._importPrivate=function _importPrivate(key,enc){this.priv=new BN(key,enc||16);this.priv=this.priv.umod(this.ec.curve.n)};KeyPair.prototype._importPublic=function _importPublic(key,enc){if(key.x||key.y){this.pub=this.ec.curve.point(key.x,key.y);return}this.pub=this.ec.curve.decodePoint(key,enc)};KeyPair.prototype.derive=function derive(pub){return pub.mul(this.priv).getX()};KeyPair.prototype.sign=function sign(msg,enc,options){return this.ec.sign(msg,this,enc,options)};KeyPair.prototype.verify=function verify(msg,signature){return this.ec.verify(msg,signature,this)};KeyPair.prototype.inspect=function inspect(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"}},{"bn.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/bn.js/lib/bn.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/ec/signature.js":[function(require,module,exports){"use strict";var BN=require("bn.js");var elliptic=require("../../elliptic");var utils=elliptic.utils;var assert=utils.assert;function Signature(options,enc){if(options instanceof Signature)return options;if(this._importDER(options,enc))return;assert(options.r&&options.s,"Signature without r or s");this.r=new BN(options.r,16);this.s=new BN(options.s,16);if(options.recoveryParam===undefined)this.recoveryParam=null;else this.recoveryParam=options.recoveryParam}module.exports=Signature;function Position(){this.place=0}function getLength(buf,p){var initial=buf[p.place++];if(!(initial&128)){return initial}var octetLen=initial&15;var val=0;for(var i=0,off=p.place;i<octetLen;i++,off++){val<<=8;val|=buf[off]}p.place=off;return val}function rmPadding(buf){var i=0;var len=buf.length-1;while(!buf[i]&&!(buf[i+1]&128)&&i<len){i++}if(i===0){return buf}return buf.slice(i)}Signature.prototype._importDER=function _importDER(data,enc){data=utils.toArray(data,enc);var p=new Position;if(data[p.place++]!==48){return false}var len=getLength(data,p);if(len+p.place!==data.length){return false}if(data[p.place++]!==2){return false}var rlen=getLength(data,p);var r=data.slice(p.place,rlen+p.place);p.place+=rlen;if(data[p.place++]!==2){return false}var slen=getLength(data,p);if(data.length!==slen+p.place){return false}var s=data.slice(p.place,slen+p.place);if(r[0]===0&&r[1]&128){r=r.slice(1)}if(s[0]===0&&s[1]&128){s=s.slice(1)}this.r=new BN(r);this.s=new BN(s);this.recoveryParam=null;return true};function constructLength(arr,len){if(len<128){arr.push(len);return}var octets=1+(Math.log(len)/Math.LN2>>>3);arr.push(octets|128);while(--octets){arr.push(len>>>(octets<<3)&255)}arr.push(len)}Signature.prototype.toDER=function toDER(enc){var r=this.r.toArray();var s=this.s.toArray();if(r[0]&128)r=[0].concat(r);if(s[0]&128)s=[0].concat(s);r=rmPadding(r);s=rmPadding(s);while(!s[0]&&!(s[1]&128)){s=s.slice(1)}var arr=[2];constructLength(arr,r.length);arr=arr.concat(r);arr.push(2);constructLength(arr,s.length);var backHalf=arr.concat(s);var res=[48];constructLength(res,backHalf.length);res=res.concat(backHalf);return utils.encode(res,enc)}},{"../../elliptic":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic.js","bn.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/bn.js/lib/bn.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/eddsa/index.js":[function(require,module,exports){"use strict";var hash=require("hash.js");var elliptic=require("../../elliptic");var utils=elliptic.utils;var assert=utils.assert;var parseBytes=utils.parseBytes;var KeyPair=require("./key");var Signature=require("./signature");function EDDSA(curve){assert(curve==="ed25519","only tested with ed25519 so far");if(!(this instanceof EDDSA))return new EDDSA(curve);var curve=elliptic.curves[curve].curve;this.curve=curve;this.g=curve.g;this.g.precompute(curve.n.bitLength()+1);this.pointClass=curve.point().constructor;this.encodingLength=Math.ceil(curve.n.bitLength()/8);this.hash=hash.sha512}module.exports=EDDSA;EDDSA.prototype.sign=function sign(message,secret){message=parseBytes(message);var key=this.keyFromSecret(secret);var r=this.hashInt(key.messagePrefix(),message);var R=this.g.mul(r);var Rencoded=this.encodePoint(R);var s_=this.hashInt(Rencoded,key.pubBytes(),message).mul(key.priv());var S=r.add(s_).umod(this.curve.n);return this.makeSignature({R:R,S:S,Rencoded:Rencoded})};EDDSA.prototype.verify=function verify(message,sig,pub){message=parseBytes(message);sig=this.makeSignature(sig);var key=this.keyFromPublic(pub);var h=this.hashInt(sig.Rencoded(),key.pubBytes(),message);var SG=this.g.mul(sig.S());var RplusAh=sig.R().add(key.pub().mul(h));return RplusAh.eq(SG)};EDDSA.prototype.hashInt=function hashInt(){var hash=this.hash();for(var i=0;i<arguments.length;i++)hash.update(arguments[i]);return utils.intFromLE(hash.digest()).umod(this.curve.n)};EDDSA.prototype.keyFromPublic=function keyFromPublic(pub){return KeyPair.fromPublic(this,pub)};EDDSA.prototype.keyFromSecret=function keyFromSecret(secret){return KeyPair.fromSecret(this,secret)};EDDSA.prototype.makeSignature=function makeSignature(sig){if(sig instanceof Signature)return sig;return new Signature(this,sig)};EDDSA.prototype.encodePoint=function encodePoint(point){var enc=point.getY().toArray("le",this.encodingLength);enc[this.encodingLength-1]|=point.getX().isOdd()?128:0;return enc};EDDSA.prototype.decodePoint=function decodePoint(bytes){bytes=utils.parseBytes(bytes);var lastIx=bytes.length-1;var normed=bytes.slice(0,lastIx).concat(bytes[lastIx]&~128);var xIsOdd=(bytes[lastIx]&128)!==0;var y=utils.intFromLE(normed);return this.curve.pointFromY(y,xIsOdd)};EDDSA.prototype.encodeInt=function encodeInt(num){return num.toArray("le",this.encodingLength)};EDDSA.prototype.decodeInt=function decodeInt(bytes){return utils.intFromLE(bytes)};EDDSA.prototype.isPoint=function isPoint(val){return val instanceof this.pointClass}},{"../../elliptic":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic.js","./key":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/eddsa/key.js","./signature":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/eddsa/signature.js","hash.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/node_modules/hash.js/lib/hash.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/eddsa/key.js":[function(require,module,exports){"use strict";var elliptic=require("../../elliptic");var utils=elliptic.utils;var assert=utils.assert;var parseBytes=utils.parseBytes;var cachedProperty=utils.cachedProperty;function KeyPair(eddsa,params){this.eddsa=eddsa;this._secret=parseBytes(params.secret);if(eddsa.isPoint(params.pub))this._pub=params.pub;else this._pubBytes=parseBytes(params.pub)}KeyPair.fromPublic=function fromPublic(eddsa,pub){if(pub instanceof KeyPair)return pub;return new KeyPair(eddsa,{pub:pub})};KeyPair.fromSecret=function fromSecret(eddsa,secret){if(secret instanceof KeyPair)return secret;return new KeyPair(eddsa,{secret:secret})};KeyPair.prototype.secret=function secret(){return this._secret};cachedProperty(KeyPair,function pubBytes(){return this.eddsa.encodePoint(this.pub())});cachedProperty(KeyPair,function pub(){if(this._pubBytes)return this.eddsa.decodePoint(this._pubBytes);return this.eddsa.g.mul(this.priv())});cachedProperty(KeyPair,function privBytes(){var eddsa=this.eddsa;var hash=this.hash();var lastIx=eddsa.encodingLength-1;var a=hash.slice(0,eddsa.encodingLength);a[0]&=248;a[lastIx]&=127;a[lastIx]|=64;return a});cachedProperty(KeyPair,function priv(){return this.eddsa.decodeInt(this.privBytes())});cachedProperty(KeyPair,function hash(){return this.eddsa.hash().update(this.secret()).digest()});cachedProperty(KeyPair,function messagePrefix(){return this.hash().slice(this.eddsa.encodingLength)});KeyPair.prototype.sign=function sign(message){assert(this._secret,"KeyPair can only verify");return this.eddsa.sign(message,this)};KeyPair.prototype.verify=function verify(message,sig){return this.eddsa.verify(message,sig,this)};KeyPair.prototype.getSecret=function getSecret(enc){assert(this._secret,"KeyPair is public only");return utils.encode(this.secret(),enc)};KeyPair.prototype.getPublic=function getPublic(enc){return utils.encode(this.pubBytes(),enc)};module.exports=KeyPair},{"../../elliptic":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/eddsa/signature.js":[function(require,module,exports){"use strict";var BN=require("bn.js");var elliptic=require("../../elliptic");var utils=elliptic.utils;var assert=utils.assert;var cachedProperty=utils.cachedProperty;var parseBytes=utils.parseBytes;function Signature(eddsa,sig){this.eddsa=eddsa;if(typeof sig!=="object")sig=parseBytes(sig);if(Array.isArray(sig)){sig={R:sig.slice(0,eddsa.encodingLength),S:sig.slice(eddsa.encodingLength)}}assert(sig.R&&sig.S,"Signature without R or S");if(eddsa.isPoint(sig.R))this._R=sig.R;if(sig.S instanceof BN)this._S=sig.S;this._Rencoded=Array.isArray(sig.R)?sig.R:sig.Rencoded;this._Sencoded=Array.isArray(sig.S)?sig.S:sig.Sencoded}cachedProperty(Signature,function S(){return this.eddsa.decodeInt(this.Sencoded())});cachedProperty(Signature,function R(){return this.eddsa.decodePoint(this.Rencoded())});cachedProperty(Signature,function Rencoded(){return this.eddsa.encodePoint(this.R())});cachedProperty(Signature,function Sencoded(){return this.eddsa.encodeInt(this.S())});Signature.prototype.toBytes=function toBytes(){return this.Rencoded().concat(this.Sencoded())};Signature.prototype.toHex=function toHex(){return utils.encode(this.toBytes(),"hex").toUpperCase()};module.exports=Signature},{"../../elliptic":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic.js","bn.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/bn.js/lib/bn.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/hmac-drbg.js":[function(require,module,exports){"use strict";var hash=require("hash.js");var elliptic=require("../elliptic");var utils=elliptic.utils;var assert=utils.assert;function HmacDRBG(options){if(!(this instanceof HmacDRBG))return new HmacDRBG(options);this.hash=options.hash;this.predResist=!!options.predResist;this.outLen=this.hash.outSize;this.minEntropy=options.minEntropy||this.hash.hmacStrength;this.reseed=null;this.reseedInterval=null;this.K=null;this.V=null;var entropy=utils.toArray(options.entropy,options.entropyEnc);var nonce=utils.toArray(options.nonce,options.nonceEnc);var pers=utils.toArray(options.pers,options.persEnc);assert(entropy.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits");this._init(entropy,nonce,pers)}module.exports=HmacDRBG;HmacDRBG.prototype._init=function init(entropy,nonce,pers){var seed=entropy.concat(nonce).concat(pers);this.K=new Array(this.outLen/8);this.V=new Array(this.outLen/8);for(var i=0;i<this.V.length;i++){this.K[i]=0;this.V[i]=1}this._update(seed);this.reseed=1;this.reseedInterval=281474976710656};HmacDRBG.prototype._hmac=function hmac(){return new hash.hmac(this.hash,this.K)};HmacDRBG.prototype._update=function update(seed){var kmac=this._hmac().update(this.V).update([0]);if(seed)kmac=kmac.update(seed);this.K=kmac.digest();this.V=this._hmac().update(this.V).digest();if(!seed)return;this.K=this._hmac().update(this.V).update([1]).update(seed).digest();this.V=this._hmac().update(this.V).digest()};HmacDRBG.prototype.reseed=function reseed(entropy,entropyEnc,add,addEnc){if(typeof entropyEnc!=="string"){addEnc=add;add=entropyEnc;entropyEnc=null}entropy=utils.toBuffer(entropy,entropyEnc);add=utils.toBuffer(add,addEnc);assert(entropy.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits");this._update(entropy.concat(add||[]));this.reseed=1};HmacDRBG.prototype.generate=function generate(len,enc,add,addEnc){if(this.reseed>this.reseedInterval)throw new Error("Reseed is required");if(typeof enc!=="string"){addEnc=add;add=enc;enc=null}if(add){add=utils.toArray(add,addEnc);this._update(add)}var temp=[];while(temp.length<len){this.V=this._hmac().update(this.V).digest();temp=temp.concat(this.V)}var res=temp.slice(0,len);this._update(add);this.reseed++;return utils.encode(res,enc)}},{"../elliptic":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic.js","hash.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/node_modules/hash.js/lib/hash.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js":[function(require,module,exports){module.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]
  12. },naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/utils.js":[function(require,module,exports){"use strict";var utils=exports;var BN=require("bn.js");utils.assert=function assert(val,msg){if(!val)throw new Error(msg||"Assertion failed")};function toArray(msg,enc){if(Array.isArray(msg))return msg.slice();if(!msg)return[];var res=[];if(typeof msg!=="string"){for(var i=0;i<msg.length;i++)res[i]=msg[i]|0;return res}if(!enc){for(var i=0;i<msg.length;i++){var c=msg.charCodeAt(i);var hi=c>>8;var lo=c&255;if(hi)res.push(hi,lo);else res.push(lo)}}else if(enc==="hex"){msg=msg.replace(/[^a-z0-9]+/gi,"");if(msg.length%2!==0)msg="0"+msg;for(var i=0;i<msg.length;i+=2)res.push(parseInt(msg[i]+msg[i+1],16))}return res}utils.toArray=toArray;function zero2(word){if(word.length===1)return"0"+word;else return word}utils.zero2=zero2;function toHex(msg){var res="";for(var i=0;i<msg.length;i++)res+=zero2(msg[i].toString(16));return res}utils.toHex=toHex;utils.encode=function encode(arr,enc){if(enc==="hex")return toHex(arr);else return arr};function getNAF(num,w){var naf=[];var ws=1<<w+1;var k=num.clone();while(k.cmpn(1)>=0){var z;if(k.isOdd()){var mod=k.andln(ws-1);if(mod>(ws>>1)-1)z=(ws>>1)-mod;else z=mod;k.isubn(z)}else{z=0}naf.push(z);var shift=k.cmpn(0)!==0&&k.andln(ws-1)===0?w+1:1;for(var i=1;i<shift;i++)naf.push(0);k.iushrn(shift)}return naf}utils.getNAF=getNAF;function getJSF(k1,k2){var jsf=[[],[]];k1=k1.clone();k2=k2.clone();var d1=0;var d2=0;while(k1.cmpn(-d1)>0||k2.cmpn(-d2)>0){var m14=k1.andln(3)+d1&3;var m24=k2.andln(3)+d2&3;if(m14===3)m14=-1;if(m24===3)m24=-1;var u1;if((m14&1)===0){u1=0}else{var m8=k1.andln(7)+d1&7;if((m8===3||m8===5)&&m24===2)u1=-m14;else u1=m14}jsf[0].push(u1);var u2;if((m24&1)===0){u2=0}else{var m8=k2.andln(7)+d2&7;if((m8===3||m8===5)&&m14===2)u2=-m24;else u2=m24}jsf[1].push(u2);if(2*d1===u1+1)d1=1-d1;if(2*d2===u2+1)d2=1-d2;k1.iushrn(1);k2.iushrn(1)}return jsf}utils.getJSF=getJSF;function cachedProperty(obj,computer){var name=computer.name;var key="_"+name;obj.prototype[name]=function cachedProperty(){return this[key]!==undefined?this[key]:this[key]=computer.call(this)}}utils.cachedProperty=cachedProperty;function parseBytes(bytes){return typeof bytes==="string"?utils.toArray(bytes,"hex"):bytes}utils.parseBytes=parseBytes;function intFromLE(bytes){return new BN(bytes,"hex","le")}utils.intFromLE=intFromLE},{"bn.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/bn.js/lib/bn.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/node_modules/brorand/index.js":[function(require,module,exports){var r;module.exports=function rand(len){if(!r)r=new Rand(null);return r.generate(len)};function Rand(rand){this.rand=rand}module.exports.Rand=Rand;Rand.prototype.generate=function generate(len){return this._rand(len)};if(typeof window==="object"){if(window.crypto&&window.crypto.getRandomValues){Rand.prototype._rand=function _rand(n){var arr=new Uint8Array(n);window.crypto.getRandomValues(arr);return arr}}else if(window.msCrypto&&window.msCrypto.getRandomValues){Rand.prototype._rand=function _rand(n){var arr=new Uint8Array(n);window.msCrypto.getRandomValues(arr);return arr}}else{Rand.prototype._rand=function(){throw new Error("Not implemented yet")}}}else{try{var crypto=require("cry"+"pto");Rand.prototype._rand=function _rand(n){return crypto.randomBytes(n)}}catch(e){Rand.prototype._rand=function _rand(n){var res=new Uint8Array(n);for(var i=0;i<res.length;i++)res[i]=this.rand.getByte();return res}}}},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/node_modules/hash.js/lib/hash.js":[function(require,module,exports){var hash=exports;hash.utils=require("./hash/utils");hash.common=require("./hash/common");hash.sha=require("./hash/sha");hash.ripemd=require("./hash/ripemd");hash.hmac=require("./hash/hmac");hash.sha1=hash.sha.sha1;hash.sha256=hash.sha.sha256;hash.sha224=hash.sha.sha224;hash.sha384=hash.sha.sha384;hash.sha512=hash.sha.sha512;hash.ripemd160=hash.ripemd.ripemd160},{"./hash/common":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/node_modules/hash.js/lib/hash/common.js","./hash/hmac":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/node_modules/hash.js/lib/hash/hmac.js","./hash/ripemd":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/node_modules/hash.js/lib/hash/ripemd.js","./hash/sha":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/node_modules/hash.js/lib/hash/sha.js","./hash/utils":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/node_modules/hash.js/lib/hash/utils.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/node_modules/hash.js/lib/hash/common.js":[function(require,module,exports){var hash=require("../hash");var utils=hash.utils;var assert=utils.assert;function BlockHash(){this.pending=null;this.pendingTotal=0;this.blockSize=this.constructor.blockSize;this.outSize=this.constructor.outSize;this.hmacStrength=this.constructor.hmacStrength;this.padLength=this.constructor.padLength/8;this.endian="big";this._delta8=this.blockSize/8;this._delta32=this.blockSize/32}exports.BlockHash=BlockHash;BlockHash.prototype.update=function update(msg,enc){msg=utils.toArray(msg,enc);if(!this.pending)this.pending=msg;else this.pending=this.pending.concat(msg);this.pendingTotal+=msg.length;if(this.pending.length>=this._delta8){msg=this.pending;var r=msg.length%this._delta8;this.pending=msg.slice(msg.length-r,msg.length);if(this.pending.length===0)this.pending=null;msg=utils.join32(msg,0,msg.length-r,this.endian);for(var i=0;i<msg.length;i+=this._delta32)this._update(msg,i,i+this._delta32)}return this};BlockHash.prototype.digest=function digest(enc){this.update(this._pad());assert(this.pending===null);return this._digest(enc)};BlockHash.prototype._pad=function pad(){var len=this.pendingTotal;var bytes=this._delta8;var k=bytes-(len+this.padLength)%bytes;var res=new Array(k+this.padLength);res[0]=128;for(var i=1;i<k;i++)res[i]=0;len<<=3;if(this.endian==="big"){for(var t=8;t<this.padLength;t++)res[i++]=0;res[i++]=0;res[i++]=0;res[i++]=0;res[i++]=0;res[i++]=len>>>24&255;res[i++]=len>>>16&255;res[i++]=len>>>8&255;res[i++]=len&255}else{res[i++]=len&255;res[i++]=len>>>8&255;res[i++]=len>>>16&255;res[i++]=len>>>24&255;res[i++]=0;res[i++]=0;res[i++]=0;res[i++]=0;for(var t=8;t<this.padLength;t++)res[i++]=0}return res}},{"../hash":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/node_modules/hash.js/lib/hash.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/node_modules/hash.js/lib/hash/hmac.js":[function(require,module,exports){var hmac=exports;var hash=require("../hash");var utils=hash.utils;var assert=utils.assert;function Hmac(hash,key,enc){if(!(this instanceof Hmac))return new Hmac(hash,key,enc);this.Hash=hash;this.blockSize=hash.blockSize/8;this.outSize=hash.outSize/8;this.inner=null;this.outer=null;this._init(utils.toArray(key,enc))}module.exports=Hmac;Hmac.prototype._init=function init(key){if(key.length>this.blockSize)key=(new this.Hash).update(key).digest();assert(key.length<=this.blockSize);for(var i=key.length;i<this.blockSize;i++)key.push(0);for(var i=0;i<key.length;i++)key[i]^=54;this.inner=(new this.Hash).update(key);for(var i=0;i<key.length;i++)key[i]^=106;this.outer=(new this.Hash).update(key)};Hmac.prototype.update=function update(msg,enc){this.inner.update(msg,enc);return this};Hmac.prototype.digest=function digest(enc){this.outer.update(this.inner.digest());return this.outer.digest(enc)}},{"../hash":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/node_modules/hash.js/lib/hash.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/node_modules/hash.js/lib/hash/ripemd.js":[function(require,module,exports){var hash=require("../hash");var utils=hash.utils;var rotl32=utils.rotl32;var sum32=utils.sum32;var sum32_3=utils.sum32_3;var sum32_4=utils.sum32_4;var BlockHash=hash.common.BlockHash;function RIPEMD160(){if(!(this instanceof RIPEMD160))return new RIPEMD160;BlockHash.call(this);this.h=[1732584193,4023233417,2562383102,271733878,3285377520];this.endian="little"}utils.inherits(RIPEMD160,BlockHash);exports.ripemd160=RIPEMD160;RIPEMD160.blockSize=512;RIPEMD160.outSize=160;RIPEMD160.hmacStrength=192;RIPEMD160.padLength=64;RIPEMD160.prototype._update=function update(msg,start){var A=this.h[0];var B=this.h[1];var C=this.h[2];var D=this.h[3];var E=this.h[4];var Ah=A;var Bh=B;var Ch=C;var Dh=D;var Eh=E;for(var j=0;j<80;j++){var T=sum32(rotl32(sum32_4(A,f(j,B,C,D),msg[r[j]+start],K(j)),s[j]),E);A=E;E=D;D=rotl32(C,10);C=B;B=T;T=sum32(rotl32(sum32_4(Ah,f(79-j,Bh,Ch,Dh),msg[rh[j]+start],Kh(j)),sh[j]),Eh);Ah=Eh;Eh=Dh;Dh=rotl32(Ch,10);Ch=Bh;Bh=T}T=sum32_3(this.h[1],C,Dh);this.h[1]=sum32_3(this.h[2],D,Eh);this.h[2]=sum32_3(this.h[3],E,Ah);this.h[3]=sum32_3(this.h[4],A,Bh);this.h[4]=sum32_3(this.h[0],B,Ch);this.h[0]=T};RIPEMD160.prototype._digest=function digest(enc){if(enc==="hex")return utils.toHex32(this.h,"little");else return utils.split32(this.h,"little")};function f(j,x,y,z){if(j<=15)return x^y^z;else if(j<=31)return x&y|~x&z;else if(j<=47)return(x|~y)^z;else if(j<=63)return x&z|y&~z;else return x^(y|~z)}function K(j){if(j<=15)return 0;else if(j<=31)return 1518500249;else if(j<=47)return 1859775393;else if(j<=63)return 2400959708;else return 2840853838}function Kh(j){if(j<=15)return 1352829926;else if(j<=31)return 1548603684;else if(j<=47)return 1836072691;else if(j<=63)return 2053994217;else return 0}var r=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13];var rh=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11];var s=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6];var sh=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]},{"../hash":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/node_modules/hash.js/lib/hash.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/node_modules/hash.js/lib/hash/sha.js":[function(require,module,exports){var hash=require("../hash");var utils=hash.utils;var assert=utils.assert;var rotr32=utils.rotr32;var rotl32=utils.rotl32;var sum32=utils.sum32;var sum32_4=utils.sum32_4;var sum32_5=utils.sum32_5;var rotr64_hi=utils.rotr64_hi;var rotr64_lo=utils.rotr64_lo;var shr64_hi=utils.shr64_hi;var shr64_lo=utils.shr64_lo;var sum64=utils.sum64;var sum64_hi=utils.sum64_hi;var sum64_lo=utils.sum64_lo;var sum64_4_hi=utils.sum64_4_hi;var sum64_4_lo=utils.sum64_4_lo;var sum64_5_hi=utils.sum64_5_hi;var sum64_5_lo=utils.sum64_5_lo;var BlockHash=hash.common.BlockHash;var sha256_K=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];var sha512_K=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];var sha1_K=[1518500249,1859775393,2400959708,3395469782];
  13. function SHA256(){if(!(this instanceof SHA256))return new SHA256;BlockHash.call(this);this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225];this.k=sha256_K;this.W=new Array(64)}utils.inherits(SHA256,BlockHash);exports.sha256=SHA256;SHA256.blockSize=512;SHA256.outSize=256;SHA256.hmacStrength=192;SHA256.padLength=64;SHA256.prototype._update=function _update(msg,start){var W=this.W;for(var i=0;i<16;i++)W[i]=msg[start+i];for(;i<W.length;i++)W[i]=sum32_4(g1_256(W[i-2]),W[i-7],g0_256(W[i-15]),W[i-16]);var a=this.h[0];var b=this.h[1];var c=this.h[2];var d=this.h[3];var e=this.h[4];var f=this.h[5];var g=this.h[6];var h=this.h[7];assert(this.k.length===W.length);for(var i=0;i<W.length;i++){var T1=sum32_5(h,s1_256(e),ch32(e,f,g),this.k[i],W[i]);var T2=sum32(s0_256(a),maj32(a,b,c));h=g;g=f;f=e;e=sum32(d,T1);d=c;c=b;b=a;a=sum32(T1,T2)}this.h[0]=sum32(this.h[0],a);this.h[1]=sum32(this.h[1],b);this.h[2]=sum32(this.h[2],c);this.h[3]=sum32(this.h[3],d);this.h[4]=sum32(this.h[4],e);this.h[5]=sum32(this.h[5],f);this.h[6]=sum32(this.h[6],g);this.h[7]=sum32(this.h[7],h)};SHA256.prototype._digest=function digest(enc){if(enc==="hex")return utils.toHex32(this.h,"big");else return utils.split32(this.h,"big")};function SHA224(){if(!(this instanceof SHA224))return new SHA224;SHA256.call(this);this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}utils.inherits(SHA224,SHA256);exports.sha224=SHA224;SHA224.blockSize=512;SHA224.outSize=224;SHA224.hmacStrength=192;SHA224.padLength=64;SHA224.prototype._digest=function digest(enc){if(enc==="hex")return utils.toHex32(this.h.slice(0,7),"big");else return utils.split32(this.h.slice(0,7),"big")};function SHA512(){if(!(this instanceof SHA512))return new SHA512;BlockHash.call(this);this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209];this.k=sha512_K;this.W=new Array(160)}utils.inherits(SHA512,BlockHash);exports.sha512=SHA512;SHA512.blockSize=1024;SHA512.outSize=512;SHA512.hmacStrength=192;SHA512.padLength=128;SHA512.prototype._prepareBlock=function _prepareBlock(msg,start){var W=this.W;for(var i=0;i<32;i++)W[i]=msg[start+i];for(;i<W.length;i+=2){var c0_hi=g1_512_hi(W[i-4],W[i-3]);var c0_lo=g1_512_lo(W[i-4],W[i-3]);var c1_hi=W[i-14];var c1_lo=W[i-13];var c2_hi=g0_512_hi(W[i-30],W[i-29]);var c2_lo=g0_512_lo(W[i-30],W[i-29]);var c3_hi=W[i-32];var c3_lo=W[i-31];W[i]=sum64_4_hi(c0_hi,c0_lo,c1_hi,c1_lo,c2_hi,c2_lo,c3_hi,c3_lo);W[i+1]=sum64_4_lo(c0_hi,c0_lo,c1_hi,c1_lo,c2_hi,c2_lo,c3_hi,c3_lo)}};SHA512.prototype._update=function _update(msg,start){this._prepareBlock(msg,start);var W=this.W;var ah=this.h[0];var al=this.h[1];var bh=this.h[2];var bl=this.h[3];var ch=this.h[4];var cl=this.h[5];var dh=this.h[6];var dl=this.h[7];var eh=this.h[8];var el=this.h[9];var fh=this.h[10];var fl=this.h[11];var gh=this.h[12];var gl=this.h[13];var hh=this.h[14];var hl=this.h[15];assert(this.k.length===W.length);for(var i=0;i<W.length;i+=2){var c0_hi=hh;var c0_lo=hl;var c1_hi=s1_512_hi(eh,el);var c1_lo=s1_512_lo(eh,el);var c2_hi=ch64_hi(eh,el,fh,fl,gh,gl);var c2_lo=ch64_lo(eh,el,fh,fl,gh,gl);var c3_hi=this.k[i];var c3_lo=this.k[i+1];var c4_hi=W[i];var c4_lo=W[i+1];var T1_hi=sum64_5_hi(c0_hi,c0_lo,c1_hi,c1_lo,c2_hi,c2_lo,c3_hi,c3_lo,c4_hi,c4_lo);var T1_lo=sum64_5_lo(c0_hi,c0_lo,c1_hi,c1_lo,c2_hi,c2_lo,c3_hi,c3_lo,c4_hi,c4_lo);var c0_hi=s0_512_hi(ah,al);var c0_lo=s0_512_lo(ah,al);var c1_hi=maj64_hi(ah,al,bh,bl,ch,cl);var c1_lo=maj64_lo(ah,al,bh,bl,ch,cl);var T2_hi=sum64_hi(c0_hi,c0_lo,c1_hi,c1_lo);var T2_lo=sum64_lo(c0_hi,c0_lo,c1_hi,c1_lo);hh=gh;hl=gl;gh=fh;gl=fl;fh=eh;fl=el;eh=sum64_hi(dh,dl,T1_hi,T1_lo);el=sum64_lo(dl,dl,T1_hi,T1_lo);dh=ch;dl=cl;ch=bh;cl=bl;bh=ah;bl=al;ah=sum64_hi(T1_hi,T1_lo,T2_hi,T2_lo);al=sum64_lo(T1_hi,T1_lo,T2_hi,T2_lo)}sum64(this.h,0,ah,al);sum64(this.h,2,bh,bl);sum64(this.h,4,ch,cl);sum64(this.h,6,dh,dl);sum64(this.h,8,eh,el);sum64(this.h,10,fh,fl);sum64(this.h,12,gh,gl);sum64(this.h,14,hh,hl)};SHA512.prototype._digest=function digest(enc){if(enc==="hex")return utils.toHex32(this.h,"big");else return utils.split32(this.h,"big")};function SHA384(){if(!(this instanceof SHA384))return new SHA384;SHA512.call(this);this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}utils.inherits(SHA384,SHA512);exports.sha384=SHA384;SHA384.blockSize=1024;SHA384.outSize=384;SHA384.hmacStrength=192;SHA384.padLength=128;SHA384.prototype._digest=function digest(enc){if(enc==="hex")return utils.toHex32(this.h.slice(0,12),"big");else return utils.split32(this.h.slice(0,12),"big")};function SHA1(){if(!(this instanceof SHA1))return new SHA1;BlockHash.call(this);this.h=[1732584193,4023233417,2562383102,271733878,3285377520];this.W=new Array(80)}utils.inherits(SHA1,BlockHash);exports.sha1=SHA1;SHA1.blockSize=512;SHA1.outSize=160;SHA1.hmacStrength=80;SHA1.padLength=64;SHA1.prototype._update=function _update(msg,start){var W=this.W;for(var i=0;i<16;i++)W[i]=msg[start+i];for(;i<W.length;i++)W[i]=rotl32(W[i-3]^W[i-8]^W[i-14]^W[i-16],1);var a=this.h[0];var b=this.h[1];var c=this.h[2];var d=this.h[3];var e=this.h[4];for(var i=0;i<W.length;i++){var s=~~(i/20);var t=sum32_5(rotl32(a,5),ft_1(s,b,c,d),e,W[i],sha1_K[s]);e=d;d=c;c=rotl32(b,30);b=a;a=t}this.h[0]=sum32(this.h[0],a);this.h[1]=sum32(this.h[1],b);this.h[2]=sum32(this.h[2],c);this.h[3]=sum32(this.h[3],d);this.h[4]=sum32(this.h[4],e)};SHA1.prototype._digest=function digest(enc){if(enc==="hex")return utils.toHex32(this.h,"big");else return utils.split32(this.h,"big")};function ch32(x,y,z){return x&y^~x&z}function maj32(x,y,z){return x&y^x&z^y&z}function p32(x,y,z){return x^y^z}function s0_256(x){return rotr32(x,2)^rotr32(x,13)^rotr32(x,22)}function s1_256(x){return rotr32(x,6)^rotr32(x,11)^rotr32(x,25)}function g0_256(x){return rotr32(x,7)^rotr32(x,18)^x>>>3}function g1_256(x){return rotr32(x,17)^rotr32(x,19)^x>>>10}function ft_1(s,x,y,z){if(s===0)return ch32(x,y,z);if(s===1||s===3)return p32(x,y,z);if(s===2)return maj32(x,y,z)}function ch64_hi(xh,xl,yh,yl,zh,zl){var r=xh&yh^~xh&zh;if(r<0)r+=4294967296;return r}function ch64_lo(xh,xl,yh,yl,zh,zl){var r=xl&yl^~xl&zl;if(r<0)r+=4294967296;return r}function maj64_hi(xh,xl,yh,yl,zh,zl){var r=xh&yh^xh&zh^yh&zh;if(r<0)r+=4294967296;return r}function maj64_lo(xh,xl,yh,yl,zh,zl){var r=xl&yl^xl&zl^yl&zl;if(r<0)r+=4294967296;return r}function s0_512_hi(xh,xl){var c0_hi=rotr64_hi(xh,xl,28);var c1_hi=rotr64_hi(xl,xh,2);var c2_hi=rotr64_hi(xl,xh,7);var r=c0_hi^c1_hi^c2_hi;if(r<0)r+=4294967296;return r}function s0_512_lo(xh,xl){var c0_lo=rotr64_lo(xh,xl,28);var c1_lo=rotr64_lo(xl,xh,2);var c2_lo=rotr64_lo(xl,xh,7);var r=c0_lo^c1_lo^c2_lo;if(r<0)r+=4294967296;return r}function s1_512_hi(xh,xl){var c0_hi=rotr64_hi(xh,xl,14);var c1_hi=rotr64_hi(xh,xl,18);var c2_hi=rotr64_hi(xl,xh,9);var r=c0_hi^c1_hi^c2_hi;if(r<0)r+=4294967296;return r}function s1_512_lo(xh,xl){var c0_lo=rotr64_lo(xh,xl,14);var c1_lo=rotr64_lo(xh,xl,18);var c2_lo=rotr64_lo(xl,xh,9);var r=c0_lo^c1_lo^c2_lo;if(r<0)r+=4294967296;return r}function g0_512_hi(xh,xl){var c0_hi=rotr64_hi(xh,xl,1);var c1_hi=rotr64_hi(xh,xl,8);var c2_hi=shr64_hi(xh,xl,7);var r=c0_hi^c1_hi^c2_hi;if(r<0)r+=4294967296;return r}function g0_512_lo(xh,xl){var c0_lo=rotr64_lo(xh,xl,1);var c1_lo=rotr64_lo(xh,xl,8);var c2_lo=shr64_lo(xh,xl,7);var r=c0_lo^c1_lo^c2_lo;if(r<0)r+=4294967296;return r}function g1_512_hi(xh,xl){var c0_hi=rotr64_hi(xh,xl,19);var c1_hi=rotr64_hi(xl,xh,29);var c2_hi=shr64_hi(xh,xl,6);var r=c0_hi^c1_hi^c2_hi;if(r<0)r+=4294967296;return r}function g1_512_lo(xh,xl){var c0_lo=rotr64_lo(xh,xl,19);var c1_lo=rotr64_lo(xl,xh,29);var c2_lo=shr64_lo(xh,xl,6);var r=c0_lo^c1_lo^c2_lo;if(r<0)r+=4294967296;return r}},{"../hash":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/node_modules/hash.js/lib/hash.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/node_modules/hash.js/lib/hash/utils.js":[function(require,module,exports){var utils=exports;var inherits=require("inherits");function toArray(msg,enc){if(Array.isArray(msg))return msg.slice();if(!msg)return[];var res=[];if(typeof msg==="string"){if(!enc){for(var i=0;i<msg.length;i++){var c=msg.charCodeAt(i);var hi=c>>8;var lo=c&255;if(hi)res.push(hi,lo);else res.push(lo)}}else if(enc==="hex"){msg=msg.replace(/[^a-z0-9]+/gi,"");if(msg.length%2!==0)msg="0"+msg;for(var i=0;i<msg.length;i+=2)res.push(parseInt(msg[i]+msg[i+1],16))}}else{for(var i=0;i<msg.length;i++)res[i]=msg[i]|0}return res}utils.toArray=toArray;function toHex(msg){var res="";for(var i=0;i<msg.length;i++)res+=zero2(msg[i].toString(16));return res}utils.toHex=toHex;function htonl(w){var res=w>>>24|w>>>8&65280|w<<8&16711680|(w&255)<<24;return res>>>0}utils.htonl=htonl;function toHex32(msg,endian){var res="";for(var i=0;i<msg.length;i++){var w=msg[i];if(endian==="little")w=htonl(w);res+=zero8(w.toString(16))}return res}utils.toHex32=toHex32;function zero2(word){if(word.length===1)return"0"+word;else return word}utils.zero2=zero2;function zero8(word){if(word.length===7)return"0"+word;else if(word.length===6)return"00"+word;else if(word.length===5)return"000"+word;else if(word.length===4)return"0000"+word;else if(word.length===3)return"00000"+word;else if(word.length===2)return"000000"+word;else if(word.length===1)return"0000000"+word;else return word}utils.zero8=zero8;function join32(msg,start,end,endian){var len=end-start;assert(len%4===0);var res=new Array(len/4);for(var i=0,k=start;i<res.length;i++,k+=4){var w;if(endian==="big")w=msg[k]<<24|msg[k+1]<<16|msg[k+2]<<8|msg[k+3];else w=msg[k+3]<<24|msg[k+2]<<16|msg[k+1]<<8|msg[k];res[i]=w>>>0}return res}utils.join32=join32;function split32(msg,endian){var res=new Array(msg.length*4);for(var i=0,k=0;i<msg.length;i++,k+=4){var m=msg[i];if(endian==="big"){res[k]=m>>>24;res[k+1]=m>>>16&255;res[k+2]=m>>>8&255;res[k+3]=m&255}else{res[k+3]=m>>>24;res[k+2]=m>>>16&255;res[k+1]=m>>>8&255;res[k]=m&255}}return res}utils.split32=split32;function rotr32(w,b){return w>>>b|w<<32-b}utils.rotr32=rotr32;function rotl32(w,b){return w<<b|w>>>32-b}utils.rotl32=rotl32;function sum32(a,b){return a+b>>>0}utils.sum32=sum32;function sum32_3(a,b,c){return a+b+c>>>0}utils.sum32_3=sum32_3;function sum32_4(a,b,c,d){return a+b+c+d>>>0}utils.sum32_4=sum32_4;function sum32_5(a,b,c,d,e){return a+b+c+d+e>>>0}utils.sum32_5=sum32_5;function assert(cond,msg){if(!cond)throw new Error(msg||"Assertion failed")}utils.assert=assert;utils.inherits=inherits;function sum64(buf,pos,ah,al){var bh=buf[pos];var bl=buf[pos+1];var lo=al+bl>>>0;var hi=(lo<al?1:0)+ah+bh;buf[pos]=hi>>>0;buf[pos+1]=lo}exports.sum64=sum64;function sum64_hi(ah,al,bh,bl){var lo=al+bl>>>0;var hi=(lo<al?1:0)+ah+bh;return hi>>>0}exports.sum64_hi=sum64_hi;function sum64_lo(ah,al,bh,bl){var lo=al+bl;return lo>>>0}exports.sum64_lo=sum64_lo;function sum64_4_hi(ah,al,bh,bl,ch,cl,dh,dl){var carry=0;var lo=al;lo=lo+bl>>>0;carry+=lo<al?1:0;lo=lo+cl>>>0;carry+=lo<cl?1:0;lo=lo+dl>>>0;carry+=lo<dl?1:0;var hi=ah+bh+ch+dh+carry;return hi>>>0}exports.sum64_4_hi=sum64_4_hi;function sum64_4_lo(ah,al,bh,bl,ch,cl,dh,dl){var lo=al+bl+cl+dl;return lo>>>0}exports.sum64_4_lo=sum64_4_lo;function sum64_5_hi(ah,al,bh,bl,ch,cl,dh,dl,eh,el){var carry=0;var lo=al;lo=lo+bl>>>0;carry+=lo<al?1:0;lo=lo+cl>>>0;carry+=lo<cl?1:0;lo=lo+dl>>>0;carry+=lo<dl?1:0;lo=lo+el>>>0;carry+=lo<el?1:0;var hi=ah+bh+ch+dh+eh+carry;return hi>>>0}exports.sum64_5_hi=sum64_5_hi;function sum64_5_lo(ah,al,bh,bl,ch,cl,dh,dl,eh,el){var lo=al+bl+cl+dl+el;return lo>>>0}exports.sum64_5_lo=sum64_5_lo;function rotr64_hi(ah,al,num){var r=al<<32-num|ah>>>num;return r>>>0}exports.rotr64_hi=rotr64_hi;function rotr64_lo(ah,al,num){var r=ah<<32-num|al>>>num;return r>>>0}exports.rotr64_lo=rotr64_lo;function shr64_hi(ah,al,num){return ah>>>num}exports.shr64_hi=shr64_hi;function shr64_lo(ah,al,num){var r=ah<<32-num|al>>>num;return r>>>0}exports.shr64_lo=shr64_lo},{inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/package.json":[function(require,module,exports){module.exports={name:"elliptic",version:"6.2.3",description:"EC cryptography",main:"lib/elliptic.js",files:["lib"],scripts:{coverage:"npm run unit --coverage",coveralls:"npm run coverage && cat ./coverage/lcov.info | coveralls",jscs:"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/*.js",jshint:"jscs benchmarks/*.js lib/*.js lib/**/*.js lib/**/**/*.js test/*.js",lint:"npm run jscs && npm run jshint",test:"npm run lint && npm run unit",unit:"istanbul test _mocha --reporter=spec test/*-test.js"},repository:{type:"git",url:"git+ssh://git@github.com/indutny/elliptic.git"},keywords:["EC","Elliptic","curve","Cryptography"],author:{name:"Fedor Indutny",email:"fedor@indutny.com"},license:"MIT",bugs:{url:"https://github.com/indutny/elliptic/issues"},homepage:"https://github.com/indutny/elliptic",devDependencies:{coveralls:"^2.11.3",istanbul:"^0.4.2",jscs:"^2.9.0",jshint:"^2.6.0",mocha:"^2.1.0"},dependencies:{"bn.js":"^4.0.0",brorand:"^1.0.1","hash.js":"^1.0.0",inherits:"^2.0.1"},gitHead:"c32f20b22b420eb6af3c6dda28963deb7facf823",_id:"elliptic@6.2.3",_shasum:"18e46d7306b0951275a2d42063270a14b74ebe99",_from:"elliptic@>=6.0.0 <7.0.0",_npmVersion:"3.3.12",_nodeVersion:"5.4.1",_npmUser:{name:"indutny",email:"fedor@indutny.com"},dist:{shasum:"18e46d7306b0951275a2d42063270a14b74ebe99",tarball:"http://registry.npmjs.org/elliptic/-/elliptic-6.2.3.tgz"},maintainers:[{name:"indutny",email:"fedor@indutny.com"}],directories:{},_resolved:"https://registry.npmjs.org/elliptic/-/elliptic-6.2.3.tgz",readme:"ERROR: No README data found!"}},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/aesid.json":[function(require,module,exports){module.exports={"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"}},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/asn1.js":[function(require,module,exports){var asn1=require("asn1.js");var RSAPrivateKey=asn1.define("RSAPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("modulus").int(),this.key("publicExponent").int(),this.key("privateExponent").int(),this.key("prime1").int(),this.key("prime2").int(),this.key("exponent1").int(),this.key("exponent2").int(),this.key("coefficient").int())});exports.RSAPrivateKey=RSAPrivateKey;var RSAPublicKey=asn1.define("RSAPublicKey",function(){this.seq().obj(this.key("modulus").int(),this.key("publicExponent").int())});exports.RSAPublicKey=RSAPublicKey;var PublicKey=asn1.define("SubjectPublicKeyInfo",function(){this.seq().obj(this.key("algorithm").use(AlgorithmIdentifier),this.key("subjectPublicKey").bitstr())});exports.PublicKey=PublicKey;var AlgorithmIdentifier=asn1.define("AlgorithmIdentifier",function(){this.seq().obj(this.key("algorithm").objid(),this.key("none").null_().optional(),this.key("curve").objid().optional(),this.key("params").seq().obj(this.key("p").int(),this.key("q").int(),this.key("g").int()).optional())});var PrivateKeyInfo=asn1.define("PrivateKeyInfo",function(){this.seq().obj(this.key("version").int(),this.key("algorithm").use(AlgorithmIdentifier),this.key("subjectPrivateKey").octstr())});exports.PrivateKey=PrivateKeyInfo;var EncryptedPrivateKeyInfo=asn1.define("EncryptedPrivateKeyInfo",function(){this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(),this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(),this.key("kdeparams").seq().obj(this.key("salt").octstr(),this.key("iters").int())),this.key("cipher").seq().obj(this.key("algo").objid(),this.key("iv").octstr()))),this.key("subjectPrivateKey").octstr())});exports.EncryptedPrivateKey=EncryptedPrivateKeyInfo;var DSAPrivateKey=asn1.define("DSAPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("p").int(),this.key("q").int(),this.key("g").int(),this.key("pub_key").int(),this.key("priv_key").int())});exports.DSAPrivateKey=DSAPrivateKey;exports.DSAparam=asn1.define("DSAparam",function(){this.int()});var ECPrivateKey=asn1.define("ECPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("privateKey").octstr(),this.key("parameters").optional().explicit(0).use(ECParameters),this.key("publicKey").optional().explicit(1).bitstr())});exports.ECPrivateKey=ECPrivateKey;var ECParameters=asn1.define("ECParameters",function(){this.choice({namedCurve:this.objid()})});exports.signature=asn1.define("signature",function(){this.seq().obj(this.key("r").int(),this.key("s").int())})},{"asn1.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/fixProc.js":[function(require,module,exports){(function(Buffer){var findProc=/Proc-Type: 4,ENCRYPTED\r?\nDEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)\r?\n\r?\n([0-9A-z\n\r\+\/\=]+)\r?\n/m;var startRegex=/^-----BEGIN (.*) KEY-----\r?\n/m;var fullRegex=/^-----BEGIN (.*) KEY-----\r?\n([0-9A-z\n\r\+\/\=]+)\r?\n-----END \1 KEY-----$/m;var evp=require("evp_bytestokey");var ciphers=require("browserify-aes");module.exports=function(okey,password){var key=okey.toString();var match=key.match(findProc);var decrypted;if(!match){var match2=key.match(fullRegex);decrypted=new Buffer(match2[2].replace(/\r?\n/g,""),"base64")}else{var suite="aes"+match[1];var iv=new Buffer(match[2],"hex");var cipherText=new Buffer(match[3].replace(/\r?\n/g,""),"base64");var cipherKey=evp(password,iv.slice(0,8),parseInt(match[1],10)).key;var out=[];var cipher=ciphers.createDecipheriv(suite,cipherKey,iv);out.push(cipher.update(cipherText));out.push(cipher.final());decrypted=Buffer.concat(out)}var tag=key.match(startRegex)[1]+" KEY";return{tag:tag,data:decrypted}}}).call(this,require("buffer").Buffer)},{"browserify-aes":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/browser.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js",evp_bytestokey:"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/evp_bytestokey/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/index.js":[function(require,module,exports){(function(Buffer){var asn1=require("./asn1");var aesid=require("./aesid.json");var fixProc=require("./fixProc");var ciphers=require("browserify-aes");var compat=require("pbkdf2");module.exports=parseKeys;function parseKeys(buffer){var password;if(typeof buffer==="object"&&!Buffer.isBuffer(buffer)){password=buffer.passphrase;buffer=buffer.key}if(typeof buffer==="string"){buffer=new Buffer(buffer)}var stripped=fixProc(buffer,password);var type=stripped.tag;var data=stripped.data;var subtype,ndata;switch(type){case"PUBLIC KEY":ndata=asn1.PublicKey.decode(data,"der");subtype=ndata.algorithm.algorithm.join(".");switch(subtype){case"1.2.840.113549.1.1.1":return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data,"der");case"1.2.840.10045.2.1":ndata.subjectPrivateKey=ndata.subjectPublicKey;return{type:"ec",data:ndata};case"1.2.840.10040.4.1":ndata.algorithm.params.pub_key=asn1.DSAparam.decode(ndata.subjectPublicKey.data,"der");return{type:"dsa",data:ndata.algorithm.params};default:throw new Error("unknown key id "+subtype)}throw new Error("unknown key type "+type);case"ENCRYPTED PRIVATE KEY":data=asn1.EncryptedPrivateKey.decode(data,"der");data=decrypt(data,password);case"PRIVATE KEY":ndata=asn1.PrivateKey.decode(data,"der");subtype=ndata.algorithm.algorithm.join(".");switch(subtype){case"1.2.840.113549.1.1.1":return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey,"der");case"1.2.840.10045.2.1":return{curve:ndata.algorithm.curve,privateKey:asn1.ECPrivateKey.decode(ndata.subjectPrivateKey,"der").privateKey};case"1.2.840.10040.4.1":ndata.algorithm.params.priv_key=asn1.DSAparam.decode(ndata.subjectPrivateKey,"der");return{type:"dsa",params:ndata.algorithm.params};default:throw new Error("unknown key id "+subtype)}throw new Error("unknown key type "+type);case"RSA PUBLIC KEY":return asn1.RSAPublicKey.decode(data,"der");case"RSA PRIVATE KEY":return asn1.RSAPrivateKey.decode(data,"der");case"DSA PRIVATE KEY":return{type:"dsa",params:asn1.DSAPrivateKey.decode(data,"der")};case"EC PRIVATE KEY":data=asn1.ECPrivateKey.decode(data,"der");return{curve:data.parameters.value,privateKey:data.privateKey};default:throw new Error("unknown key type "+type)}}parseKeys.signature=asn1.signature;function decrypt(data,password){var salt=data.algorithm.decrypt.kde.kdeparams.salt;var iters=parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(),10);var algo=aesid[data.algorithm.decrypt.cipher.algo.join(".")];var iv=data.algorithm.decrypt.cipher.iv;var cipherText=data.subjectPrivateKey;var keylen=parseInt(algo.split("-")[1],10)/8;var key=compat.pbkdf2Sync(password,salt,iters,keylen);var cipher=ciphers.createDecipheriv(algo,key,iv);var out=[];out.push(cipher.update(cipherText));out.push(cipher.final());return Buffer.concat(out)}}).call(this,require("buffer").Buffer)},{"./aesid.json":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/aesid.json","./asn1":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/asn1.js","./fixProc":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/fixProc.js","browserify-aes":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/browser.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js",pbkdf2:"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/pbkdf2/browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1.js":[function(require,module,exports){var asn1=exports;asn1.bignum=require("bn.js");asn1.define=require("./asn1/api").define;asn1.base=require("./asn1/base");asn1.constants=require("./asn1/constants");asn1.decoders=require("./asn1/decoders");asn1.encoders=require("./asn1/encoders")},{"./asn1/api":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/api.js","./asn1/base":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/base/index.js","./asn1/constants":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/constants/index.js","./asn1/decoders":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/decoders/index.js","./asn1/encoders":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/encoders/index.js","bn.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/bn.js/lib/bn.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/api.js":[function(require,module,exports){var asn1=require("../asn1");var inherits=require("inherits");var api=exports;api.define=function define(name,body){return new Entity(name,body)};function Entity(name,body){this.name=name;this.body=body;this.decoders={};this.encoders={}}Entity.prototype._createNamed=function createNamed(base){var named;try{named=require("vm").runInThisContext("(function "+this.name+"(entity) {\n"+" this._initNamed(entity);\n"+"})")}catch(e){named=function(entity){this._initNamed(entity)}}inherits(named,base);named.prototype._initNamed=function initnamed(entity){base.call(this,entity)};return new named(this)};Entity.prototype._getDecoder=function _getDecoder(enc){if(!this.decoders.hasOwnProperty(enc))this.decoders[enc]=this._createNamed(asn1.decoders[enc]);return this.decoders[enc]};Entity.prototype.decode=function decode(data,enc,options){return this._getDecoder(enc).decode(data,options)};Entity.prototype._getEncoder=function _getEncoder(enc){if(!this.encoders.hasOwnProperty(enc))this.encoders[enc]=this._createNamed(asn1.encoders[enc]);return this.encoders[enc]};Entity.prototype.encode=function encode(data,enc,reporter){return this._getEncoder(enc).encode(data,reporter)}},{"../asn1":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js",vm:"/data/github/geopackage-node/node_modules/browserify/node_modules/vm-browserify/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/base/buffer.js":[function(require,module,exports){var inherits=require("inherits");var Reporter=require("../base").Reporter;var Buffer=require("buffer").Buffer;function DecoderBuffer(base,options){Reporter.call(this,options);if(!Buffer.isBuffer(base)){this.error("Input not Buffer");return}this.base=base;this.offset=0;this.length=base.length}inherits(DecoderBuffer,Reporter);exports.DecoderBuffer=DecoderBuffer;DecoderBuffer.prototype.save=function save(){return{offset:this.offset,reporter:Reporter.prototype.save.call(this)}};DecoderBuffer.prototype.restore=function restore(save){var res=new DecoderBuffer(this.base);res.offset=save.offset;res.length=this.offset;this.offset=save.offset;Reporter.prototype.restore.call(this,save.reporter);return res};DecoderBuffer.prototype.isEmpty=function isEmpty(){return this.offset===this.length};DecoderBuffer.prototype.readUInt8=function readUInt8(fail){if(this.offset+1<=this.length)return this.base.readUInt8(this.offset++,true);else return this.error(fail||"DecoderBuffer overrun")};DecoderBuffer.prototype.skip=function skip(bytes,fail){if(!(this.offset+bytes<=this.length))return this.error(fail||"DecoderBuffer overrun");var res=new DecoderBuffer(this.base);res._reporterState=this._reporterState;res.offset=this.offset;res.length=this.offset+bytes;this.offset+=bytes;return res};DecoderBuffer.prototype.raw=function raw(save){return this.base.slice(save?save.offset:this.offset,this.length)};function EncoderBuffer(value,reporter){if(Array.isArray(value)){this.length=0;this.value=value.map(function(item){if(!(item instanceof EncoderBuffer))item=new EncoderBuffer(item,reporter);this.length+=item.length;return item},this)}else if(typeof value==="number"){if(!(0<=value&&value<=255))return reporter.error("non-byte EncoderBuffer value");this.value=value;this.length=1}else if(typeof value==="string"){this.value=value;this.length=Buffer.byteLength(value)}else if(Buffer.isBuffer(value)){this.value=value;this.length=value.length}else{return reporter.error("Unsupported type: "+typeof value)}}exports.EncoderBuffer=EncoderBuffer;EncoderBuffer.prototype.join=function join(out,offset){if(!out)out=new Buffer(this.length);if(!offset)offset=0;if(this.length===0)return out;if(Array.isArray(this.value)){this.value.forEach(function(item){item.join(out,offset);offset+=item.length})}else{if(typeof this.value==="number")out[offset]=this.value;else if(typeof this.value==="string")out.write(this.value,offset);else if(Buffer.isBuffer(this.value))this.value.copy(out,offset);offset+=this.length}return out}},{"../base":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/base/index.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/base/index.js":[function(require,module,exports){var base=exports;base.Reporter=require("./reporter").Reporter;base.DecoderBuffer=require("./buffer").DecoderBuffer;base.EncoderBuffer=require("./buffer").EncoderBuffer;base.Node=require("./node")},{"./buffer":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/base/buffer.js","./node":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/base/node.js","./reporter":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/base/reporter.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/base/node.js":[function(require,module,exports){var Reporter=require("../base").Reporter;var EncoderBuffer=require("../base").EncoderBuffer;var DecoderBuffer=require("../base").DecoderBuffer;var assert=require("minimalistic-assert");var tags=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"];var methods=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(tags);var overrided=["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"];function Node(enc,parent){var state={};this._baseState=state;state.enc=enc;state.parent=parent||null;state.children=null;state.tag=null;state.args=null;state.reverseArgs=null;state.choice=null;state.optional=false;state.any=false;state.obj=false;state.use=null;state.useDecoder=null;
  14. state.key=null;state["default"]=null;state.explicit=null;state.implicit=null;state.contains=null;if(!state.parent){state.children=[];this._wrap()}}module.exports=Node;var stateProps=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit"];Node.prototype.clone=function clone(){var state=this._baseState;var cstate={};stateProps.forEach(function(prop){cstate[prop]=state[prop]});var res=new this.constructor(cstate.parent);res._baseState=cstate;return res};Node.prototype._wrap=function wrap(){var state=this._baseState;methods.forEach(function(method){this[method]=function _wrappedMethod(){var clone=new this.constructor(this);state.children.push(clone);return clone[method].apply(clone,arguments)}},this)};Node.prototype._init=function init(body){var state=this._baseState;assert(state.parent===null);body.call(this);state.children=state.children.filter(function(child){return child._baseState.parent===this},this);assert.equal(state.children.length,1,"Root node can have only one child")};Node.prototype._useArgs=function useArgs(args){var state=this._baseState;var children=args.filter(function(arg){return arg instanceof this.constructor},this);args=args.filter(function(arg){return!(arg instanceof this.constructor)},this);if(children.length!==0){assert(state.children===null);state.children=children;children.forEach(function(child){child._baseState.parent=this},this)}if(args.length!==0){assert(state.args===null);state.args=args;state.reverseArgs=args.map(function(arg){if(typeof arg!=="object"||arg.constructor!==Object)return arg;var res={};Object.keys(arg).forEach(function(key){if(key==(key|0))key|=0;var value=arg[key];res[value]=key});return res})}};overrided.forEach(function(method){Node.prototype[method]=function _overrided(){var state=this._baseState;throw new Error(method+" not implemented for encoding: "+state.enc)}});tags.forEach(function(tag){Node.prototype[tag]=function _tagMethod(){var state=this._baseState;var args=Array.prototype.slice.call(arguments);assert(state.tag===null);state.tag=tag;this._useArgs(args);return this}});Node.prototype.use=function use(item){var state=this._baseState;assert(state.use===null);state.use=item;return this};Node.prototype.optional=function optional(){var state=this._baseState;state.optional=true;return this};Node.prototype.def=function def(val){var state=this._baseState;assert(state["default"]===null);state["default"]=val;state.optional=true;return this};Node.prototype.explicit=function explicit(num){var state=this._baseState;assert(state.explicit===null&&state.implicit===null);state.explicit=num;return this};Node.prototype.implicit=function implicit(num){var state=this._baseState;assert(state.explicit===null&&state.implicit===null);state.implicit=num;return this};Node.prototype.obj=function obj(){var state=this._baseState;var args=Array.prototype.slice.call(arguments);state.obj=true;if(args.length!==0)this._useArgs(args);return this};Node.prototype.key=function key(newKey){var state=this._baseState;assert(state.key===null);state.key=newKey;return this};Node.prototype.any=function any(){var state=this._baseState;state.any=true;return this};Node.prototype.choice=function choice(obj){var state=this._baseState;assert(state.choice===null);state.choice=obj;this._useArgs(Object.keys(obj).map(function(key){return obj[key]}));return this};Node.prototype.contains=function contains(item){var state=this._baseState;assert(state.use===null);state.contains=item;return this};Node.prototype._decode=function decode(input){var state=this._baseState;if(state.parent===null)return input.wrapResult(state.children[0]._decode(input));var result=state["default"];var present=true;var prevKey;if(state.key!==null)prevKey=input.enterKey(state.key);if(state.optional){var tag=null;if(state.explicit!==null)tag=state.explicit;else if(state.implicit!==null)tag=state.implicit;else if(state.tag!==null)tag=state.tag;if(tag===null&&!state.any){var save=input.save();try{if(state.choice===null)this._decodeGeneric(state.tag,input);else this._decodeChoice(input);present=true}catch(e){present=false}input.restore(save)}else{present=this._peekTag(input,tag,state.any);if(input.isError(present))return present}}var prevObj;if(state.obj&&present)prevObj=input.enterObject();if(present){if(state.explicit!==null){var explicit=this._decodeTag(input,state.explicit);if(input.isError(explicit))return explicit;input=explicit}if(state.use===null&&state.choice===null){if(state.any)var save=input.save();var body=this._decodeTag(input,state.implicit!==null?state.implicit:state.tag,state.any);if(input.isError(body))return body;if(state.any)result=input.raw(save);else input=body}if(state.any)result=result;else if(state.choice===null)result=this._decodeGeneric(state.tag,input);else result=this._decodeChoice(input);if(input.isError(result))return result;if(!state.any&&state.choice===null&&state.children!==null){state.children.forEach(function decodeChildren(child){child._decode(input)})}if(state.contains&&(state.tag==="octstr"||state.tag==="bitstr")){var data=new DecoderBuffer(result);result=this._getUse(state.contains,input._reporterState.obj)._decode(data)}}if(state.obj&&present)result=input.leaveObject(prevObj);if(state.key!==null&&(result!==null||present===true))input.leaveKey(prevKey,state.key,result);return result};Node.prototype._decodeGeneric=function decodeGeneric(tag,input){var state=this._baseState;if(tag==="seq"||tag==="set")return null;if(tag==="seqof"||tag==="setof")return this._decodeList(input,tag,state.args[0]);else if(/str$/.test(tag))return this._decodeStr(input,tag);else if(tag==="objid"&&state.args)return this._decodeObjid(input,state.args[0],state.args[1]);else if(tag==="objid")return this._decodeObjid(input,null,null);else if(tag==="gentime"||tag==="utctime")return this._decodeTime(input,tag);else if(tag==="null_")return this._decodeNull(input);else if(tag==="bool")return this._decodeBool(input);else if(tag==="int"||tag==="enum")return this._decodeInt(input,state.args&&state.args[0]);else if(state.use!==null)return this._getUse(state.use,input._reporterState.obj)._decode(input);else return input.error("unknown tag: "+tag);return null};Node.prototype._getUse=function _getUse(entity,obj){var state=this._baseState;state.useDecoder=this._use(entity,obj);assert(state.useDecoder._baseState.parent===null);state.useDecoder=state.useDecoder._baseState.children[0];if(state.implicit!==state.useDecoder._baseState.implicit){state.useDecoder=state.useDecoder.clone();state.useDecoder._baseState.implicit=state.implicit}return state.useDecoder};Node.prototype._decodeChoice=function decodeChoice(input){var state=this._baseState;var result=null;var match=false;Object.keys(state.choice).some(function(key){var save=input.save();var node=state.choice[key];try{var value=node._decode(input);if(input.isError(value))return false;result={type:key,value:value};match=true}catch(e){input.restore(save);return false}return true},this);if(!match)return input.error("Choice not matched");return result};Node.prototype._createEncoderBuffer=function createEncoderBuffer(data){return new EncoderBuffer(data,this.reporter)};Node.prototype._encode=function encode(data,reporter,parent){var state=this._baseState;if(state["default"]!==null&&state["default"]===data)return;var result=this._encodeValue(data,reporter,parent);if(result===undefined)return;if(this._skipDefault(result,reporter,parent))return;return result};Node.prototype._encodeValue=function encode(data,reporter,parent){var state=this._baseState;if(state.parent===null)return state.children[0]._encode(data,reporter||new Reporter);var result=null;var present=true;this.reporter=reporter;if(state.optional&&data===undefined){if(state["default"]!==null)data=state["default"];else return}var prevKey;var content=null;var primitive=false;if(state.any){result=this._createEncoderBuffer(data)}else if(state.choice){result=this._encodeChoice(data,reporter)}else if(state.contains){content=this._getUse(state.contains,parent)._encode(data,reporter);primitive=true}else if(state.children){content=state.children.map(function(child){if(child._baseState.tag==="null_")return child._encode(null,reporter,data);if(child._baseState.key===null)return reporter.error("Child should have a key");var prevKey=reporter.enterKey(child._baseState.key);if(typeof data!=="object")return reporter.error("Child expected, but input is not object");var res=child._encode(data[child._baseState.key],reporter,data);reporter.leaveKey(prevKey);return res},this).filter(function(child){return child});content=this._createEncoderBuffer(content)}else{if(state.tag==="seqof"||state.tag==="setof"){if(!(state.args&&state.args.length===1))return reporter.error("Too many args for : "+state.tag);if(!Array.isArray(data))return reporter.error("seqof/setof, but data is not Array");var child=this.clone();child._baseState.implicit=null;content=this._createEncoderBuffer(data.map(function(item){var state=this._baseState;return this._getUse(state.args[0],data)._encode(item,reporter)},child))}else if(state.use!==null){result=this._getUse(state.use,parent)._encode(data,reporter)}else{content=this._encodePrimitive(state.tag,data);primitive=true}}var result;if(!state.any&&state.choice===null){var tag=state.implicit!==null?state.implicit:state.tag;var cls=state.implicit===null?"universal":"context";if(tag===null){if(state.use===null)reporter.error("Tag could be ommited only for .use()")}else{if(state.use===null)result=this._encodeComposite(tag,primitive,cls,content)}}if(state.explicit!==null)result=this._encodeComposite(state.explicit,false,"context",result);return result};Node.prototype._encodeChoice=function encodeChoice(data,reporter){var state=this._baseState;var node=state.choice[data.type];if(!node){assert(false,data.type+" not found in "+JSON.stringify(Object.keys(state.choice)))}return node._encode(data.value,reporter)};Node.prototype._encodePrimitive=function encodePrimitive(tag,data){var state=this._baseState;if(/str$/.test(tag))return this._encodeStr(data,tag);else if(tag==="objid"&&state.args)return this._encodeObjid(data,state.reverseArgs[0],state.args[1]);else if(tag==="objid")return this._encodeObjid(data,null,null);else if(tag==="gentime"||tag==="utctime")return this._encodeTime(data,tag);else if(tag==="null_")return this._encodeNull();else if(tag==="int"||tag==="enum")return this._encodeInt(data,state.args&&state.reverseArgs[0]);else if(tag==="bool")return this._encodeBool(data);else throw new Error("Unsupported tag: "+tag)};Node.prototype._isNumstr=function isNumstr(str){return/^[0-9 ]*$/.test(str)};Node.prototype._isPrintstr=function isPrintstr(str){return/^[A-Za-z0-9 '\(\)\+,\-\.\/:=\?]*$/.test(str)}},{"../base":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/base/index.js","minimalistic-assert":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/node_modules/minimalistic-assert/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/base/reporter.js":[function(require,module,exports){var inherits=require("inherits");function Reporter(options){this._reporterState={obj:null,path:[],options:options||{},errors:[]}}exports.Reporter=Reporter;Reporter.prototype.isError=function isError(obj){return obj instanceof ReporterError};Reporter.prototype.save=function save(){var state=this._reporterState;return{obj:state.obj,pathLen:state.path.length}};Reporter.prototype.restore=function restore(data){var state=this._reporterState;state.obj=data.obj;state.path=state.path.slice(0,data.pathLen)};Reporter.prototype.enterKey=function enterKey(key){return this._reporterState.path.push(key)};Reporter.prototype.leaveKey=function leaveKey(index,key,value){var state=this._reporterState;state.path=state.path.slice(0,index-1);if(state.obj!==null)state.obj[key]=value};Reporter.prototype.enterObject=function enterObject(){var state=this._reporterState;var prev=state.obj;state.obj={};return prev};Reporter.prototype.leaveObject=function leaveObject(prev){var state=this._reporterState;var now=state.obj;state.obj=prev;return now};Reporter.prototype.error=function error(msg){var err;var state=this._reporterState;var inherited=msg instanceof ReporterError;if(inherited){err=msg}else{err=new ReporterError(state.path.map(function(elem){return"["+JSON.stringify(elem)+"]"}).join(""),msg.message||msg,msg.stack)}if(!state.options.partial)throw err;if(!inherited)state.errors.push(err);return err};Reporter.prototype.wrapResult=function wrapResult(result){var state=this._reporterState;if(!state.options.partial)return result;return{result:this.isError(result)?null:result,errors:state.errors}};function ReporterError(path,msg){this.path=path;this.rethrow(msg)}inherits(ReporterError,Error);ReporterError.prototype.rethrow=function rethrow(msg){this.message=msg+" at: "+(this.path||"(shallow)");Error.captureStackTrace(this,ReporterError);return this}},{inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/constants/der.js":[function(require,module,exports){var constants=require("../constants");exports.tagClass={0:"universal",1:"application",2:"context",3:"private"};exports.tagClassByName=constants._reverse(exports.tagClass);exports.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"};exports.tagByName=constants._reverse(exports.tag)},{"../constants":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/constants/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/constants/index.js":[function(require,module,exports){var constants=exports;constants._reverse=function reverse(map){var res={};Object.keys(map).forEach(function(key){if((key|0)==key)key=key|0;var value=map[key];res[value]=key});return res};constants.der=require("./der")},{"./der":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/constants/der.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/decoders/der.js":[function(require,module,exports){var inherits=require("inherits");var asn1=require("../../asn1");var base=asn1.base;var bignum=asn1.bignum;var der=asn1.constants.der;function DERDecoder(entity){this.enc="der";this.name=entity.name;this.entity=entity;this.tree=new DERNode;this.tree._init(entity.body)}module.exports=DERDecoder;DERDecoder.prototype.decode=function decode(data,options){if(!(data instanceof base.DecoderBuffer))data=new base.DecoderBuffer(data,options);return this.tree._decode(data,options)};function DERNode(parent){base.Node.call(this,"der",parent)}inherits(DERNode,base.Node);DERNode.prototype._peekTag=function peekTag(buffer,tag,any){if(buffer.isEmpty())return false;var state=buffer.save();var decodedTag=derDecodeTag(buffer,'Failed to peek tag: "'+tag+'"');if(buffer.isError(decodedTag))return decodedTag;buffer.restore(state);return decodedTag.tag===tag||decodedTag.tagStr===tag||decodedTag.tagStr+"of"===tag||any};DERNode.prototype._decodeTag=function decodeTag(buffer,tag,any){var decodedTag=derDecodeTag(buffer,'Failed to decode tag of "'+tag+'"');if(buffer.isError(decodedTag))return decodedTag;var len=derDecodeLen(buffer,decodedTag.primitive,'Failed to get length of "'+tag+'"');if(buffer.isError(len))return len;if(!any&&decodedTag.tag!==tag&&decodedTag.tagStr!==tag&&decodedTag.tagStr+"of"!==tag){return buffer.error('Failed to match tag: "'+tag+'"')}if(decodedTag.primitive||len!==null)return buffer.skip(len,'Failed to match body of: "'+tag+'"');var state=buffer.save();var res=this._skipUntilEnd(buffer,'Failed to skip indefinite length body: "'+this.tag+'"');if(buffer.isError(res))return res;len=buffer.offset-state.offset;buffer.restore(state);return buffer.skip(len,'Failed to match body of: "'+tag+'"')};DERNode.prototype._skipUntilEnd=function skipUntilEnd(buffer,fail){while(true){var tag=derDecodeTag(buffer,fail);if(buffer.isError(tag))return tag;var len=derDecodeLen(buffer,tag.primitive,fail);if(buffer.isError(len))return len;var res;if(tag.primitive||len!==null)res=buffer.skip(len);else res=this._skipUntilEnd(buffer,fail);if(buffer.isError(res))return res;if(tag.tagStr==="end")break}};DERNode.prototype._decodeList=function decodeList(buffer,tag,decoder){var result=[];while(!buffer.isEmpty()){var possibleEnd=this._peekTag(buffer,"end");if(buffer.isError(possibleEnd))return possibleEnd;var res=decoder.decode(buffer,"der");if(buffer.isError(res)&&possibleEnd)break;result.push(res)}return result};DERNode.prototype._decodeStr=function decodeStr(buffer,tag){if(tag==="bitstr"){var unused=buffer.readUInt8();if(buffer.isError(unused))return unused;return{unused:unused,data:buffer.raw()}}else if(tag==="bmpstr"){var raw=buffer.raw();if(raw.length%2===1)return buffer.error("Decoding of string type: bmpstr length mismatch");var str="";for(var i=0;i<raw.length/2;i++){str+=String.fromCharCode(raw.readUInt16BE(i*2))}return str}else if(tag==="numstr"){var numstr=buffer.raw().toString("ascii");if(!this._isNumstr(numstr)){return buffer.error("Decoding of string type: "+"numstr unsupported characters")}return numstr}else if(tag==="octstr"){return buffer.raw()}else if(tag==="printstr"){var printstr=buffer.raw().toString("ascii");if(!this._isPrintstr(printstr)){return buffer.error("Decoding of string type: "+"printstr unsupported characters")}return printstr}else if(/str$/.test(tag)){return buffer.raw().toString()}else{return buffer.error("Decoding of string type: "+tag+" unsupported")}};DERNode.prototype._decodeObjid=function decodeObjid(buffer,values,relative){var result;var identifiers=[];var ident=0;while(!buffer.isEmpty()){var subident=buffer.readUInt8();ident<<=7;ident|=subident&127;if((subident&128)===0){identifiers.push(ident);ident=0}}if(subident&128)identifiers.push(ident);var first=identifiers[0]/40|0;var second=identifiers[0]%40;if(relative)result=identifiers;else result=[first,second].concat(identifiers.slice(1));if(values){var tmp=values[result.join(" ")];if(tmp===undefined)tmp=values[result.join(".")];if(tmp!==undefined)result=tmp}return result};DERNode.prototype._decodeTime=function decodeTime(buffer,tag){var str=buffer.raw().toString();if(tag==="gentime"){var year=str.slice(0,4)|0;var mon=str.slice(4,6)|0;var day=str.slice(6,8)|0;var hour=str.slice(8,10)|0;var min=str.slice(10,12)|0;var sec=str.slice(12,14)|0}else if(tag==="utctime"){var year=str.slice(0,2)|0;var mon=str.slice(2,4)|0;var day=str.slice(4,6)|0;var hour=str.slice(6,8)|0;var min=str.slice(8,10)|0;var sec=str.slice(10,12)|0;if(year<70)year=2e3+year;else year=1900+year}else{return buffer.error("Decoding "+tag+" time is not supported yet")}return Date.UTC(year,mon-1,day,hour,min,sec,0)};DERNode.prototype._decodeNull=function decodeNull(buffer){return null};DERNode.prototype._decodeBool=function decodeBool(buffer){var res=buffer.readUInt8();if(buffer.isError(res))return res;else return res!==0};DERNode.prototype._decodeInt=function decodeInt(buffer,values){var raw=buffer.raw();var res=new bignum(raw);if(values)res=values[res.toString(10)]||res;return res};DERNode.prototype._use=function use(entity,obj){if(typeof entity==="function")entity=entity(obj);return entity._getDecoder("der").tree};function derDecodeTag(buf,fail){var tag=buf.readUInt8(fail);if(buf.isError(tag))return tag;var cls=der.tagClass[tag>>6];var primitive=(tag&32)===0;if((tag&31)===31){var oct=tag;tag=0;while((oct&128)===128){oct=buf.readUInt8(fail);if(buf.isError(oct))return oct;tag<<=7;tag|=oct&127}}else{tag&=31}var tagStr=der.tag[tag];return{cls:cls,primitive:primitive,tag:tag,tagStr:tagStr}}function derDecodeLen(buf,primitive,fail){var len=buf.readUInt8(fail);if(buf.isError(len))return len;if(!primitive&&len===128)return null;if((len&128)===0){return len}var num=len&127;if(num>=4)return buf.error("length octect is too long");len=0;for(var i=0;i<num;i++){len<<=8;var j=buf.readUInt8(fail);if(buf.isError(j))return j;len|=j}return len}},{"../../asn1":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/decoders/index.js":[function(require,module,exports){var decoders=exports;decoders.der=require("./der");decoders.pem=require("./pem")},{"./der":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/decoders/der.js","./pem":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/decoders/pem.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/decoders/pem.js":[function(require,module,exports){var inherits=require("inherits");var Buffer=require("buffer").Buffer;var asn1=require("../../asn1");var DERDecoder=require("./der");function PEMDecoder(entity){DERDecoder.call(this,entity);this.enc="pem"}inherits(PEMDecoder,DERDecoder);module.exports=PEMDecoder;PEMDecoder.prototype.decode=function decode(data,options){var lines=data.toString().split(/[\r\n]+/g);var label=options.label.toUpperCase();var re=/^-----(BEGIN|END) ([^-]+)-----$/;var start=-1;var end=-1;for(var i=0;i<lines.length;i++){var match=lines[i].match(re);if(match===null)continue;if(match[2]!==label)continue;if(start===-1){if(match[1]!=="BEGIN")break;start=i}else{if(match[1]!=="END")break;end=i;break}}if(start===-1||end===-1)throw new Error("PEM section not found for: "+label);var base64=lines.slice(start+1,end).join("");base64.replace(/[^a-z0-9\+\/=]+/gi,"");var input=new Buffer(base64,"base64");return DERDecoder.prototype.decode.call(this,input,options)}},{"../../asn1":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1.js","./der":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/decoders/der.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/encoders/der.js":[function(require,module,exports){var inherits=require("inherits");var Buffer=require("buffer").Buffer;var asn1=require("../../asn1");var base=asn1.base;var bignum=asn1.bignum;var der=asn1.constants.der;function DEREncoder(entity){this.enc="der";this.name=entity.name;this.entity=entity;this.tree=new DERNode;this.tree._init(entity.body)}module.exports=DEREncoder;DEREncoder.prototype.encode=function encode(data,reporter){return this.tree._encode(data,reporter).join()};function DERNode(parent){base.Node.call(this,"der",parent)}inherits(DERNode,base.Node);DERNode.prototype._encodeComposite=function encodeComposite(tag,primitive,cls,content){var encodedTag=encodeTag(tag,primitive,cls,this.reporter);if(content.length<128){var header=new Buffer(2);header[0]=encodedTag;header[1]=content.length;return this._createEncoderBuffer([header,content])}var lenOctets=1;for(var i=content.length;i>=256;i>>=8)lenOctets++;var header=new Buffer(1+1+lenOctets);header[0]=encodedTag;header[1]=128|lenOctets;for(var i=1+lenOctets,j=content.length;j>0;i--,j>>=8)header[i]=j&255;return this._createEncoderBuffer([header,content])};DERNode.prototype._encodeStr=function encodeStr(str,tag){if(tag==="bitstr"){return this._createEncoderBuffer([str.unused|0,str.data])}else if(tag==="bmpstr"){var buf=new Buffer(str.length*2);for(var i=0;i<str.length;i++){buf.writeUInt16BE(str.charCodeAt(i),i*2)}return this._createEncoderBuffer(buf)}else if(tag==="numstr"){if(!this._isNumstr(str)){return this.reporter.error("Encoding of string type: numstr supports "+"only digits and space")}return this._createEncoderBuffer(str)}else if(tag==="printstr"){if(!this._isPrintstr(str)){return this.reporter.error("Encoding of string type: printstr supports "+"only latin upper and lower case letters, "+"digits, space, apostrophe, left and rigth "+"parenthesis, plus sign, comma, hyphen, "+"dot, slash, colon, equal sign, "+"question mark")}return this._createEncoderBuffer(str)}else if(/str$/.test(tag)){return this._createEncoderBuffer(str)}else{return this.reporter.error("Encoding of string type: "+tag+" unsupported")}};DERNode.prototype._encodeObjid=function encodeObjid(id,values,relative){if(typeof id==="string"){if(!values)return this.reporter.error("string objid given, but no values map found");if(!values.hasOwnProperty(id))return this.reporter.error("objid not found in values map");id=values[id].split(/[\s\.]+/g);for(var i=0;i<id.length;i++)id[i]|=0}else if(Array.isArray(id)){id=id.slice();for(var i=0;i<id.length;i++)id[i]|=0}if(!Array.isArray(id)){return this.reporter.error("objid() should be either array or string, "+"got: "+JSON.stringify(id))}if(!relative){if(id[1]>=40)return this.reporter.error("Second objid identifier OOB");id.splice(0,2,id[0]*40+id[1])}var size=0;for(var i=0;i<id.length;i++){var ident=id[i];for(size++;ident>=128;ident>>=7)size++}var objid=new Buffer(size);var offset=objid.length-1;for(var i=id.length-1;i>=0;i--){var ident=id[i];objid[offset--]=ident&127;while((ident>>=7)>0)objid[offset--]=128|ident&127}return this._createEncoderBuffer(objid)};function two(num){if(num<10)return"0"+num;else return num}DERNode.prototype._encodeTime=function encodeTime(time,tag){var str;var date=new Date(time);if(tag==="gentime"){str=[two(date.getFullYear()),two(date.getUTCMonth()+1),two(date.getUTCDate()),two(date.getUTCHours()),two(date.getUTCMinutes()),two(date.getUTCSeconds()),"Z"].join("")}else if(tag==="utctime"){str=[two(date.getFullYear()%100),two(date.getUTCMonth()+1),two(date.getUTCDate()),two(date.getUTCHours()),two(date.getUTCMinutes()),two(date.getUTCSeconds()),"Z"].join("")}else{this.reporter.error("Encoding "+tag+" time is not supported yet")}return this._encodeStr(str,"octstr")};DERNode.prototype._encodeNull=function encodeNull(){return this._createEncoderBuffer("")};DERNode.prototype._encodeInt=function encodeInt(num,values){if(typeof num==="string"){if(!values)return this.reporter.error("String int or enum given, but no values map");if(!values.hasOwnProperty(num)){return this.reporter.error("Values map doesn't contain: "+JSON.stringify(num))}num=values[num]}if(typeof num!=="number"&&!Buffer.isBuffer(num)){var numArray=num.toArray();if(!num.sign&&numArray[0]&128){numArray.unshift(0)}num=new Buffer(numArray)}if(Buffer.isBuffer(num)){var size=num.length;if(num.length===0)size++;var out=new Buffer(size);num.copy(out);if(num.length===0)out[0]=0;return this._createEncoderBuffer(out)}if(num<128)return this._createEncoderBuffer(num);if(num<256)return this._createEncoderBuffer([0,num]);var size=1;for(var i=num;i>=256;i>>=8)size++;var out=new Array(size);for(var i=out.length-1;i>=0;i--){out[i]=num&255;num>>=8}if(out[0]&128){out.unshift(0)}return this._createEncoderBuffer(new Buffer(out))};DERNode.prototype._encodeBool=function encodeBool(value){return this._createEncoderBuffer(value?255:0)};DERNode.prototype._use=function use(entity,obj){if(typeof entity==="function")entity=entity(obj);return entity._getEncoder("der").tree};DERNode.prototype._skipDefault=function skipDefault(dataBuffer,reporter,parent){var state=this._baseState;var i;if(state["default"]===null)return false;var data=dataBuffer.join();if(state.defaultBuffer===undefined)state.defaultBuffer=this._encodeValue(state["default"],reporter,parent).join();if(data.length!==state.defaultBuffer.length)return false;for(i=0;i<data.length;i++)if(data[i]!==state.defaultBuffer[i])return false;return true};function encodeTag(tag,primitive,cls,reporter){var res;if(tag==="seqof")tag="seq";else if(tag==="setof")tag="set";if(der.tagByName.hasOwnProperty(tag))res=der.tagByName[tag];else if(typeof tag==="number"&&(tag|0)===tag)res=tag;else return reporter.error("Unknown tag: "+tag);if(res>=31)return reporter.error("Multi-octet tag encoding unsupported");if(!primitive)res|=32;res|=der.tagClassByName[cls||"universal"]<<6;return res}},{"../../asn1":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/encoders/index.js":[function(require,module,exports){var encoders=exports;encoders.der=require("./der");encoders.pem=require("./pem")},{"./der":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/encoders/der.js","./pem":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/encoders/pem.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/encoders/pem.js":[function(require,module,exports){var inherits=require("inherits");var Buffer=require("buffer").Buffer;var asn1=require("../../asn1");var DEREncoder=require("./der");function PEMEncoder(entity){DEREncoder.call(this,entity);this.enc="pem"}inherits(PEMEncoder,DEREncoder);module.exports=PEMEncoder;PEMEncoder.prototype.encode=function encode(data,options){var buf=DEREncoder.prototype.encode.call(this,data);var p=buf.toString("base64");var out=["-----BEGIN "+options.label+"-----"];for(var i=0;i<p.length;i+=64)out.push(p.slice(i,i+64));out.push("-----END "+options.label+"-----");return out.join("\n")}},{"../../asn1":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1.js","./der":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/encoders/der.js",
  15. buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/node_modules/minimalistic-assert/index.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-des/node_modules/des.js/node_modules/minimalistic-assert/index.js"][0].apply(exports,arguments)},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/aes.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/aes.js"][0].apply(exports,arguments)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/authCipher.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/authCipher.js"][0].apply(exports,arguments)},{"./aes":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/aes.js","./ghash":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/ghash.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","buffer-xor":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/node_modules/buffer-xor/index.js","cipher-base":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/node_modules/cipher-base/index.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/browser.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/browser.js"][0].apply(exports,arguments)},{"./decrypter":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/decrypter.js","./encrypter":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/encrypter.js","./modes":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/modes.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/decrypter.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/decrypter.js"][0].apply(exports,arguments)},{"./aes":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/aes.js","./authCipher":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/authCipher.js","./modes":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/modes.js","./modes/cbc":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/modes/cbc.js","./modes/cfb":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/modes/cfb.js","./modes/cfb1":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/modes/cfb1.js","./modes/cfb8":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/modes/cfb8.js","./modes/ctr":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/modes/ctr.js","./modes/ecb":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/modes/ecb.js","./modes/ofb":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/modes/ofb.js","./streamCipher":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/streamCipher.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","cipher-base":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/node_modules/cipher-base/index.js",evp_bytestokey:"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/evp_bytestokey/index.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/encrypter.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/encrypter.js"][0].apply(exports,arguments)},{"./aes":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/aes.js","./authCipher":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/authCipher.js","./modes":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/modes.js","./modes/cbc":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/modes/cbc.js","./modes/cfb":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/modes/cfb.js","./modes/cfb1":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/modes/cfb1.js","./modes/cfb8":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/modes/cfb8.js","./modes/ctr":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/modes/ctr.js","./modes/ecb":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/modes/ecb.js","./modes/ofb":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/modes/ofb.js","./streamCipher":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/streamCipher.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","cipher-base":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/node_modules/cipher-base/index.js",evp_bytestokey:"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/evp_bytestokey/index.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/ghash.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/ghash.js"][0].apply(exports,arguments)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/modes.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes.js"][0].apply(exports,arguments)},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/modes/cbc.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/cbc.js"][0].apply(exports,arguments)},{"buffer-xor":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/node_modules/buffer-xor/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/modes/cfb.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/cfb.js"][0].apply(exports,arguments)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","buffer-xor":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/node_modules/buffer-xor/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/modes/cfb1.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/cfb1.js"][0].apply(exports,arguments)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/modes/cfb8.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/cfb8.js"][0].apply(exports,arguments)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/modes/ctr.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/ctr.js"][0].apply(exports,arguments)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","buffer-xor":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/node_modules/buffer-xor/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/modes/ecb.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/ecb.js"][0].apply(exports,arguments)},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/modes/ofb.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/ofb.js"][0].apply(exports,arguments)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","buffer-xor":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/node_modules/buffer-xor/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/node_modules/buffer-xor/index.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/node_modules/buffer-xor/index.js"][0].apply(exports,arguments)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/node_modules/cipher-base/index.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/node_modules/cipher-base/index.js"][0].apply(exports,arguments)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js",stream:"/data/github/geopackage-node/node_modules/browserify/node_modules/stream-browserify/index.js",string_decoder:"/data/github/geopackage-node/node_modules/browserify/node_modules/string_decoder/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/streamCipher.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/streamCipher.js"][0].apply(exports,arguments)},{"./aes":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/aes.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","cipher-base":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/browserify-aes/node_modules/cipher-base/index.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/evp_bytestokey/index.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/evp_bytestokey/index.js"][0].apply(exports,arguments)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","create-hash/md5":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/md5.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/sign.js":[function(require,module,exports){(function(Buffer){var createHmac=require("create-hmac");var crt=require("browserify-rsa");var curves=require("./curves");var elliptic=require("elliptic");var parseKeys=require("parse-asn1");var BN=require("bn.js");var EC=elliptic.ec;function sign(hash,key,hashType,signType){var priv=parseKeys(key);if(priv.curve){if(signType!=="ecdsa")throw new Error("wrong private key type");return ecSign(hash,priv)}else if(priv.type==="dsa"){if(signType!=="dsa"){throw new Error("wrong private key type")}return dsaSign(hash,priv,hashType)}else{if(signType!=="rsa")throw new Error("wrong private key type")}var len=priv.modulus.byteLength();var pad=[0,1];while(hash.length+pad.length+1<len){pad.push(255)}pad.push(0);var i=-1;while(++i<hash.length){pad.push(hash[i])}var out=crt(pad,priv);return out}function ecSign(hash,priv){var curveId=curves[priv.curve.join(".")];if(!curveId)throw new Error("unknown curve "+priv.curve.join("."));var curve=new EC(curveId);var key=curve.genKeyPair();key._importPrivate(priv.privateKey);var out=key.sign(hash);return new Buffer(out.toDER())}function dsaSign(hash,priv,algo){var x=priv.params.priv_key;var p=priv.params.p;var q=priv.params.q;var g=priv.params.g;var r=new BN(0);var k;var H=bits2int(hash,q).mod(q);var s=false;var kv=getKey(x,q,hash,algo);while(s===false){k=makeKey(q,kv,algo);r=makeR(g,k,p,q);s=k.invm(q).imul(H.add(x.mul(r))).mod(q);if(!s.cmpn(0)){s=false;r=new BN(0)}}return toDER(r,s)}function toDER(r,s){r=r.toArray();s=s.toArray();if(r[0]&128){r=[0].concat(r)}if(s[0]&128){s=[0].concat(s)}var total=r.length+s.length+4;var res=[48,total,2,r.length];res=res.concat(r,[2,s.length],s);return new Buffer(res)}function getKey(x,q,hash,algo){x=new Buffer(x.toArray());if(x.length<q.byteLength()){var zeros=new Buffer(q.byteLength()-x.length);zeros.fill(0);x=Buffer.concat([zeros,x])}var hlen=hash.length;var hbits=bits2octets(hash,q);var v=new Buffer(hlen);v.fill(1);var k=new Buffer(hlen);k.fill(0);k=createHmac(algo,k).update(v).update(new Buffer([0])).update(x).update(hbits).digest();v=createHmac(algo,k).update(v).digest();k=createHmac(algo,k).update(v).update(new Buffer([1])).update(x).update(hbits).digest();v=createHmac(algo,k).update(v).digest();return{k:k,v:v}}function bits2int(obits,q){var bits=new BN(obits);var shift=(obits.length<<3)-q.bitLength();if(shift>0){bits.ishrn(shift)}return bits}function bits2octets(bits,q){bits=bits2int(bits,q);bits=bits.mod(q);var out=new Buffer(bits.toArray());if(out.length<q.byteLength()){var zeros=new Buffer(q.byteLength()-out.length);zeros.fill(0);out=Buffer.concat([zeros,out])}return out}function makeKey(q,kv,algo){var t,k;do{t=new Buffer("");while(t.length*8<q.bitLength()){kv.v=createHmac(algo,kv.k).update(kv.v).digest();t=Buffer.concat([t,kv.v])}k=bits2int(t,q);kv.k=createHmac(algo,kv.k).update(kv.v).update(new Buffer([0])).digest();kv.v=createHmac(algo,kv.k).update(kv.v).digest()}while(k.cmp(q)!==-1);return k}function makeR(g,k,p,q){return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q)}module.exports=sign;module.exports.getKey=getKey;module.exports.makeKey=makeKey}).call(this,require("buffer").Buffer)},{"./curves":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/curves.js","bn.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/bn.js/lib/bn.js","browserify-rsa":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/browserify-rsa/index.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","create-hmac":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hmac/browser.js",elliptic:"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic.js","parse-asn1":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/verify.js":[function(require,module,exports){(function(Buffer){var curves=require("./curves");var elliptic=require("elliptic");var parseKeys=require("parse-asn1");var BN=require("bn.js");var EC=elliptic.ec;function verify(sig,hash,key,signType){var pub=parseKeys(key);if(pub.type==="ec"){if(signType!=="ecdsa"){throw new Error("wrong public key type")}return ecVerify(sig,hash,pub)}else if(pub.type==="dsa"){if(signType!=="dsa"){throw new Error("wrong public key type")}return dsaVerify(sig,hash,pub)}else{if(signType!=="rsa"){throw new Error("wrong public key type")}}var len=pub.modulus.byteLength();var pad=[1];var padNum=0;while(hash.length+pad.length+2<len){pad.push(255);padNum++}pad.push(0);var i=-1;while(++i<hash.length){pad.push(hash[i])}pad=new Buffer(pad);var red=BN.mont(pub.modulus);sig=new BN(sig).toRed(red);sig=sig.redPow(new BN(pub.publicExponent));sig=new Buffer(sig.fromRed().toArray());var out=0;if(padNum<8){out=1}len=Math.min(sig.length,pad.length);if(sig.length!==pad.length){out=1}i=-1;while(++i<len){out|=sig[i]^pad[i]}return out===0}function ecVerify(sig,hash,pub){var curveId=curves[pub.data.algorithm.curve.join(".")];if(!curveId)throw new Error("unknown curve "+pub.data.algorithm.curve.join("."));var curve=new EC(curveId);var pubkey=pub.data.subjectPrivateKey.data;return curve.verify(hash,sig,pubkey)}function dsaVerify(sig,hash,pub){var p=pub.data.p;var q=pub.data.q;var g=pub.data.g;var y=pub.data.pub_key;var unpacked=parseKeys.signature.decode(sig,"der");var s=unpacked.s;var r=unpacked.r;checkValue(s,q);checkValue(r,q);var montp=BN.mont(p);var w=s.invm(q);var v=g.toRed(montp).redPow(new BN(hash).mul(w).mod(q)).fromRed().mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed()).mod(p).mod(q);return!v.cmp(r)}function checkValue(b,q){if(b.cmpn(0)<=0){throw new Error("invalid sig")}if(b.cmp(q)>=q){throw new Error("invalid sig")}}module.exports=verify}).call(this,require("buffer").Buffer)},{"./curves":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/curves.js","bn.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/bn.js/lib/bn.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js",elliptic:"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic.js","parse-asn1":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/browser.js":[function(require,module,exports){(function(Buffer){var elliptic=require("elliptic");var BN=require("bn.js");module.exports=function createECDH(curve){return new ECDH(curve)};var aliases={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};aliases.p224=aliases.secp224r1;aliases.p256=aliases.secp256r1=aliases.prime256v1;aliases.p192=aliases.secp192r1=aliases.prime192v1;aliases.p384=aliases.secp384r1;aliases.p521=aliases.secp521r1;function ECDH(curve){this.curveType=aliases[curve];if(!this.curveType){this.curveType={name:curve}}this.curve=new elliptic.ec(this.curveType.name);this.keys=void 0}ECDH.prototype.generateKeys=function(enc,format){this.keys=this.curve.genKeyPair();return this.getPublicKey(enc,format)};ECDH.prototype.computeSecret=function(other,inenc,enc){inenc=inenc||"utf8";if(!Buffer.isBuffer(other)){other=new Buffer(other,inenc)}var otherPub=this.curve.keyFromPublic(other).getPublic();var out=otherPub.mul(this.keys.getPrivate()).getX();return formatReturnValue(out,enc,this.curveType.byteLength)};ECDH.prototype.getPublicKey=function(enc,format){var key=this.keys.getPublic(format==="compressed",true);if(format==="hybrid"){if(key[key.length-1]%2){key[0]=7}else{key[0]=6}}return formatReturnValue(key,enc)};ECDH.prototype.getPrivateKey=function(enc){return formatReturnValue(this.keys.getPrivate(),enc)};ECDH.prototype.setPublicKey=function(pub,enc){enc=enc||"utf8";if(!Buffer.isBuffer(pub)){pub=new Buffer(pub,enc)}this.keys._importPublic(pub);return this};ECDH.prototype.setPrivateKey=function(priv,enc){enc=enc||"utf8";if(!Buffer.isBuffer(priv)){priv=new Buffer(priv,enc)}var _priv=new BN(priv);_priv=_priv.toString(16);this.keys._importPrivate(_priv);return this};function formatReturnValue(bn,enc,len){if(!Array.isArray(bn)){bn=bn.toArray()}var buf=new Buffer(bn);if(len&&buf.length<len){var zeros=new Buffer(len-buf.length);zeros.fill(0);buf=Buffer.concat([zeros,buf])}if(!enc){return buf}else{return buf.toString(enc)}}}).call(this,require("buffer").Buffer)},{"bn.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/bn.js/lib/bn.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js",elliptic:"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/bn.js/lib/bn.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/bn.js/lib/bn.js"][0].apply(exports,arguments)},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic.js"][0].apply(exports,arguments)},{"../package.json":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/package.json","./elliptic/curve":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic/curve/index.js","./elliptic/curves":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic/curves.js","./elliptic/ec":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic/ec/index.js","./elliptic/eddsa":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic/eddsa/index.js","./elliptic/hmac-drbg":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic/hmac-drbg.js","./elliptic/utils":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic/utils.js",brorand:"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/node_modules/brorand/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic/curve/base.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/curve/base.js"][0].apply(exports,arguments)},{"../../elliptic":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic.js","bn.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/bn.js/lib/bn.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic/curve/edwards.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/curve/edwards.js"][0].apply(exports,arguments)},{"../../elliptic":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic.js","../curve":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic/curve/index.js","bn.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/bn.js/lib/bn.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic/curve/index.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/curve/index.js"][0].apply(exports,arguments);
  16. },{"./base":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic/curve/base.js","./edwards":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic/curve/edwards.js","./mont":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic/curve/mont.js","./short":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic/curve/short.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic/curve/mont.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/curve/mont.js"][0].apply(exports,arguments)},{"../../elliptic":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic.js","../curve":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic/curve/index.js","bn.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/bn.js/lib/bn.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic/curve/short.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/curve/short.js"][0].apply(exports,arguments)},{"../../elliptic":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic.js","../curve":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic/curve/index.js","bn.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/bn.js/lib/bn.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic/curves.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/curves.js"][0].apply(exports,arguments)},{"../elliptic":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic.js","./precomputed/secp256k1":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","hash.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/node_modules/hash.js/lib/hash.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic/ec/index.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/ec/index.js"][0].apply(exports,arguments)},{"../../elliptic":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic.js","./key":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic/ec/key.js","./signature":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic/ec/signature.js","bn.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/bn.js/lib/bn.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic/ec/key.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/ec/key.js"][0].apply(exports,arguments)},{"bn.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/bn.js/lib/bn.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic/ec/signature.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/ec/signature.js"][0].apply(exports,arguments)},{"../../elliptic":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic.js","bn.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/bn.js/lib/bn.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic/eddsa/index.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/eddsa/index.js"][0].apply(exports,arguments)},{"../../elliptic":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic.js","./key":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic/eddsa/key.js","./signature":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic/eddsa/signature.js","hash.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/node_modules/hash.js/lib/hash.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic/eddsa/key.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/eddsa/key.js"][0].apply(exports,arguments)},{"../../elliptic":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic/eddsa/signature.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/eddsa/signature.js"][0].apply(exports,arguments)},{"../../elliptic":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic.js","bn.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/bn.js/lib/bn.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic/hmac-drbg.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/hmac-drbg.js"][0].apply(exports,arguments)},{"../elliptic":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic.js","hash.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/node_modules/hash.js/lib/hash.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js"][0].apply(exports,arguments)},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/lib/elliptic/utils.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/lib/elliptic/utils.js"][0].apply(exports,arguments)},{"bn.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/bn.js/lib/bn.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/node_modules/brorand/index.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/node_modules/brorand/index.js"][0].apply(exports,arguments)},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/node_modules/hash.js/lib/hash.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/node_modules/hash.js/lib/hash.js"][0].apply(exports,arguments)},{"./hash/common":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/node_modules/hash.js/lib/hash/common.js","./hash/hmac":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/node_modules/hash.js/lib/hash/hmac.js","./hash/ripemd":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/node_modules/hash.js/lib/hash/ripemd.js","./hash/sha":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/node_modules/hash.js/lib/hash/sha.js","./hash/utils":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/node_modules/hash.js/lib/hash/utils.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/node_modules/hash.js/lib/hash/common.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/node_modules/hash.js/lib/hash/common.js"][0].apply(exports,arguments)},{"../hash":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/node_modules/hash.js/lib/hash.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/node_modules/hash.js/lib/hash/hmac.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/node_modules/hash.js/lib/hash/hmac.js"][0].apply(exports,arguments)},{"../hash":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/node_modules/hash.js/lib/hash.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/node_modules/hash.js/lib/hash/ripemd.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/node_modules/hash.js/lib/hash/ripemd.js"][0].apply(exports,arguments)},{"../hash":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/node_modules/hash.js/lib/hash.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/node_modules/hash.js/lib/hash/sha.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/node_modules/hash.js/lib/hash/sha.js"][0].apply(exports,arguments)},{"../hash":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/node_modules/hash.js/lib/hash.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/node_modules/hash.js/lib/hash/utils.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/node_modules/hash.js/lib/hash/utils.js"][0].apply(exports,arguments)},{inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-ecdh/node_modules/elliptic/package.json":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/package.json"][0].apply(exports,arguments)},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/browser.js":[function(require,module,exports){(function(Buffer){"use strict";var inherits=require("inherits");var md5=require("./md5");var rmd160=require("ripemd160");var sha=require("sha.js");var Base=require("cipher-base");function HashNoConstructor(hash){Base.call(this,"digest");this._hash=hash;this.buffers=[]}inherits(HashNoConstructor,Base);HashNoConstructor.prototype._update=function(data){this.buffers.push(data)};HashNoConstructor.prototype._final=function(){var buf=Buffer.concat(this.buffers);var r=this._hash(buf);this.buffers=null;return r};function Hash(hash){Base.call(this,"digest");this._hash=hash}inherits(Hash,Base);Hash.prototype._update=function(data){this._hash.update(data)};Hash.prototype._final=function(){return this._hash.digest()};module.exports=function createHash(alg){alg=alg.toLowerCase();if("md5"===alg)return new HashNoConstructor(md5);if("rmd160"===alg||"ripemd160"===alg)return new HashNoConstructor(rmd160);return new Hash(sha(alg))}}).call(this,require("buffer").Buffer)},{"./md5":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/md5.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","cipher-base":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/node_modules/cipher-base/index.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js",ripemd160:"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/node_modules/ripemd160/lib/ripemd160.js","sha.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/node_modules/sha.js/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/helpers.js":[function(require,module,exports){(function(Buffer){"use strict";var intSize=4;var zeroBuffer=new Buffer(intSize);zeroBuffer.fill(0);var chrsz=8;function toArray(buf,bigEndian){if(buf.length%intSize!==0){var len=buf.length+(intSize-buf.length%intSize);buf=Buffer.concat([buf,zeroBuffer],len)}var arr=[];var fn=bigEndian?buf.readInt32BE:buf.readInt32LE;for(var i=0;i<buf.length;i+=intSize){arr.push(fn.call(buf,i))}return arr}function toBuffer(arr,size,bigEndian){var buf=new Buffer(size);var fn=bigEndian?buf.writeInt32BE:buf.writeInt32LE;for(var i=0;i<arr.length;i++){fn.call(buf,arr[i],i*4,true)}return buf}function hash(buf,fn,hashSize,bigEndian){if(!Buffer.isBuffer(buf))buf=new Buffer(buf);var arr=fn(toArray(buf,bigEndian),buf.length*chrsz);return toBuffer(arr,hashSize,bigEndian)}exports.hash=hash}).call(this,require("buffer").Buffer)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/md5.js":[function(require,module,exports){"use strict";var helpers=require("./helpers");function core_md5(x,len){x[len>>5]|=128<<len%32;x[(len+64>>>9<<4)+14]=len;var a=1732584193;var b=-271733879;var c=-1732584194;var d=271733878;for(var i=0;i<x.length;i+=16){var olda=a;var oldb=b;var oldc=c;var oldd=d;a=md5_ff(a,b,c,d,x[i+0],7,-680876936);d=md5_ff(d,a,b,c,x[i+1],12,-389564586);c=md5_ff(c,d,a,b,x[i+2],17,606105819);b=md5_ff(b,c,d,a,x[i+3],22,-1044525330);a=md5_ff(a,b,c,d,x[i+4],7,-176418897);d=md5_ff(d,a,b,c,x[i+5],12,1200080426);c=md5_ff(c,d,a,b,x[i+6],17,-1473231341);b=md5_ff(b,c,d,a,x[i+7],22,-45705983);a=md5_ff(a,b,c,d,x[i+8],7,1770035416);d=md5_ff(d,a,b,c,x[i+9],12,-1958414417);c=md5_ff(c,d,a,b,x[i+10],17,-42063);b=md5_ff(b,c,d,a,x[i+11],22,-1990404162);a=md5_ff(a,b,c,d,x[i+12],7,1804603682);d=md5_ff(d,a,b,c,x[i+13],12,-40341101);c=md5_ff(c,d,a,b,x[i+14],17,-1502002290);b=md5_ff(b,c,d,a,x[i+15],22,1236535329);a=md5_gg(a,b,c,d,x[i+1],5,-165796510);d=md5_gg(d,a,b,c,x[i+6],9,-1069501632);c=md5_gg(c,d,a,b,x[i+11],14,643717713);b=md5_gg(b,c,d,a,x[i+0],20,-373897302);a=md5_gg(a,b,c,d,x[i+5],5,-701558691);d=md5_gg(d,a,b,c,x[i+10],9,38016083);c=md5_gg(c,d,a,b,x[i+15],14,-660478335);b=md5_gg(b,c,d,a,x[i+4],20,-405537848);a=md5_gg(a,b,c,d,x[i+9],5,568446438);d=md5_gg(d,a,b,c,x[i+14],9,-1019803690);c=md5_gg(c,d,a,b,x[i+3],14,-187363961);b=md5_gg(b,c,d,a,x[i+8],20,1163531501);a=md5_gg(a,b,c,d,x[i+13],5,-1444681467);d=md5_gg(d,a,b,c,x[i+2],9,-51403784);c=md5_gg(c,d,a,b,x[i+7],14,1735328473);b=md5_gg(b,c,d,a,x[i+12],20,-1926607734);a=md5_hh(a,b,c,d,x[i+5],4,-378558);d=md5_hh(d,a,b,c,x[i+8],11,-2022574463);c=md5_hh(c,d,a,b,x[i+11],16,1839030562);b=md5_hh(b,c,d,a,x[i+14],23,-35309556);a=md5_hh(a,b,c,d,x[i+1],4,-1530992060);d=md5_hh(d,a,b,c,x[i+4],11,1272893353);c=md5_hh(c,d,a,b,x[i+7],16,-155497632);b=md5_hh(b,c,d,a,x[i+10],23,-1094730640);a=md5_hh(a,b,c,d,x[i+13],4,681279174);d=md5_hh(d,a,b,c,x[i+0],11,-358537222);c=md5_hh(c,d,a,b,x[i+3],16,-722521979);b=md5_hh(b,c,d,a,x[i+6],23,76029189);a=md5_hh(a,b,c,d,x[i+9],4,-640364487);d=md5_hh(d,a,b,c,x[i+12],11,-421815835);c=md5_hh(c,d,a,b,x[i+15],16,530742520);b=md5_hh(b,c,d,a,x[i+2],23,-995338651);a=md5_ii(a,b,c,d,x[i+0],6,-198630844);d=md5_ii(d,a,b,c,x[i+7],10,1126891415);c=md5_ii(c,d,a,b,x[i+14],15,-1416354905);b=md5_ii(b,c,d,a,x[i+5],21,-57434055);a=md5_ii(a,b,c,d,x[i+12],6,1700485571);d=md5_ii(d,a,b,c,x[i+3],10,-1894986606);c=md5_ii(c,d,a,b,x[i+10],15,-1051523);b=md5_ii(b,c,d,a,x[i+1],21,-2054922799);a=md5_ii(a,b,c,d,x[i+8],6,1873313359);d=md5_ii(d,a,b,c,x[i+15],10,-30611744);c=md5_ii(c,d,a,b,x[i+6],15,-1560198380);b=md5_ii(b,c,d,a,x[i+13],21,1309151649);a=md5_ii(a,b,c,d,x[i+4],6,-145523070);d=md5_ii(d,a,b,c,x[i+11],10,-1120210379);c=md5_ii(c,d,a,b,x[i+2],15,718787259);b=md5_ii(b,c,d,a,x[i+9],21,-343485551);a=safe_add(a,olda);b=safe_add(b,oldb);c=safe_add(c,oldc);d=safe_add(d,oldd)}return Array(a,b,c,d)}function md5_cmn(q,a,b,x,s,t){return safe_add(bit_rol(safe_add(safe_add(a,q),safe_add(x,t)),s),b)}function md5_ff(a,b,c,d,x,s,t){return md5_cmn(b&c|~b&d,a,b,x,s,t)}function md5_gg(a,b,c,d,x,s,t){return md5_cmn(b&d|c&~d,a,b,x,s,t)}function md5_hh(a,b,c,d,x,s,t){return md5_cmn(b^c^d,a,b,x,s,t)}function md5_ii(a,b,c,d,x,s,t){return md5_cmn(c^(b|~d),a,b,x,s,t)}function safe_add(x,y){var lsw=(x&65535)+(y&65535);var msw=(x>>16)+(y>>16)+(lsw>>16);return msw<<16|lsw&65535}function bit_rol(num,cnt){return num<<cnt|num>>>32-cnt}module.exports=function md5(buf){return helpers.hash(buf,core_md5,16)}},{"./helpers":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/helpers.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/node_modules/cipher-base/index.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/node_modules/cipher-base/index.js"][0].apply(exports,arguments)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js",stream:"/data/github/geopackage-node/node_modules/browserify/node_modules/stream-browserify/index.js",string_decoder:"/data/github/geopackage-node/node_modules/browserify/node_modules/string_decoder/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/node_modules/ripemd160/lib/ripemd160.js":[function(require,module,exports){(function(Buffer){var zl=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13];var zr=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11];var sl=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6];var sr=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11];var hl=[0,1518500249,1859775393,2400959708,2840853838];var hr=[1352829926,1548603684,1836072691,2053994217,0];function bytesToWords(bytes){var words=[];for(var i=0,b=0;i<bytes.length;i++,b+=8){words[b>>>5]|=bytes[i]<<24-b%32}return words}function wordsToBytes(words){var bytes=[];for(var b=0;b<words.length*32;b+=8){bytes.push(words[b>>>5]>>>24-b%32&255)}return bytes}function processBlock(H,M,offset){for(var i=0;i<16;i++){var offset_i=offset+i;var M_offset_i=M[offset_i];M[offset_i]=(M_offset_i<<8|M_offset_i>>>24)&16711935|(M_offset_i<<24|M_offset_i>>>8)&4278255360}var al,bl,cl,dl,el;var ar,br,cr,dr,er;ar=al=H[0];br=bl=H[1];cr=cl=H[2];dr=dl=H[3];er=el=H[4];var t;for(i=0;i<80;i+=1){t=al+M[offset+zl[i]]|0;if(i<16){t+=f1(bl,cl,dl)+hl[0]}else if(i<32){t+=f2(bl,cl,dl)+hl[1]}else if(i<48){t+=f3(bl,cl,dl)+hl[2]}else if(i<64){t+=f4(bl,cl,dl)+hl[3]}else{t+=f5(bl,cl,dl)+hl[4]}t=t|0;t=rotl(t,sl[i]);t=t+el|0;al=el;el=dl;dl=rotl(cl,10);cl=bl;bl=t;t=ar+M[offset+zr[i]]|0;if(i<16){t+=f5(br,cr,dr)+hr[0]}else if(i<32){t+=f4(br,cr,dr)+hr[1]}else if(i<48){t+=f3(br,cr,dr)+hr[2]}else if(i<64){t+=f2(br,cr,dr)+hr[3]}else{t+=f1(br,cr,dr)+hr[4]}t=t|0;t=rotl(t,sr[i]);t=t+er|0;ar=er;er=dr;dr=rotl(cr,10);cr=br;br=t}t=H[1]+cl+dr|0;H[1]=H[2]+dl+er|0;H[2]=H[3]+el+ar|0;H[3]=H[4]+al+br|0;H[4]=H[0]+bl+cr|0;H[0]=t}function f1(x,y,z){return x^y^z}function f2(x,y,z){return x&y|~x&z}function f3(x,y,z){return(x|~y)^z}function f4(x,y,z){return x&z|y&~z}function f5(x,y,z){return x^(y|~z)}function rotl(x,n){return x<<n|x>>>32-n}function ripemd160(message){var H=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof message==="string"){message=new Buffer(message,"utf8")}var m=bytesToWords(message);var nBitsLeft=message.length*8;var nBitsTotal=message.length*8;m[nBitsLeft>>>5]|=128<<24-nBitsLeft%32;m[(nBitsLeft+64>>>9<<4)+14]=(nBitsTotal<<8|nBitsTotal>>>24)&16711935|(nBitsTotal<<24|nBitsTotal>>>8)&4278255360;for(var i=0;i<m.length;i+=16){processBlock(H,m,i)}for(i=0;i<5;i++){var H_i=H[i];H[i]=(H_i<<8|H_i>>>24)&16711935|(H_i<<24|H_i>>>8)&4278255360}var digestbytes=wordsToBytes(H);return new Buffer(digestbytes)}module.exports=ripemd160}).call(this,require("buffer").Buffer)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/node_modules/sha.js/hash.js":[function(require,module,exports){(function(Buffer){function Hash(blockSize,finalSize){this._block=new Buffer(blockSize);this._finalSize=finalSize;this._blockSize=blockSize;this._len=0;this._s=0}Hash.prototype.update=function(data,enc){if(typeof data==="string"){enc=enc||"utf8";data=new Buffer(data,enc)}var l=this._len+=data.length;var s=this._s||0;var f=0;var buffer=this._block;while(s<l){var t=Math.min(data.length,f+this._blockSize-s%this._blockSize);var ch=t-f;for(var i=0;i<ch;i++){buffer[s%this._blockSize+i]=data[i+f]}s+=ch;f+=ch;if(s%this._blockSize===0){this._update(buffer)}}this._s=s;return this};Hash.prototype.digest=function(enc){var l=this._len*8;this._block[this._len%this._blockSize]=128;this._block.fill(0,this._len%this._blockSize+1);if(l%(this._blockSize*8)>=this._finalSize*8){this._update(this._block);this._block.fill(0)}this._block.writeInt32BE(l,this._blockSize-4);var hash=this._update(this._block)||this._hash();return enc?hash.toString(enc):hash};Hash.prototype._update=function(){throw new Error("_update must be implemented by subclass")};module.exports=Hash}).call(this,require("buffer").Buffer)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/node_modules/sha.js/index.js":[function(require,module,exports){var exports=module.exports=function SHA(algorithm){algorithm=algorithm.toLowerCase();var Algorithm=exports[algorithm];if(!Algorithm)throw new Error(algorithm+" is not supported (we accept pull requests)");return new Algorithm};exports.sha=require("./sha");exports.sha1=require("./sha1");exports.sha224=require("./sha224");exports.sha256=require("./sha256");exports.sha384=require("./sha384");exports.sha512=require("./sha512")},{"./sha":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/node_modules/sha.js/sha.js","./sha1":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/node_modules/sha.js/sha1.js","./sha224":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/node_modules/sha.js/sha224.js","./sha256":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/node_modules/sha.js/sha256.js","./sha384":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/node_modules/sha.js/sha384.js","./sha512":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/node_modules/sha.js/sha512.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/node_modules/sha.js/sha.js":[function(require,module,exports){(function(Buffer){var inherits=require("inherits");var Hash=require("./hash");var K=[1518500249,1859775393,2400959708|0,3395469782|0];var W=new Array(80);function Sha(){this.init();this._w=W;Hash.call(this,64,56)}inherits(Sha,Hash);Sha.prototype.init=function(){this._a=1732584193;this._b=4023233417;this._c=2562383102;this._d=271733878;this._e=3285377520;return this};function rotl5(num){return num<<5|num>>>27}function rotl30(num){return num<<30|num>>>2}function ft(s,b,c,d){if(s===0)return b&c|~b&d;if(s===2)return b&c|b&d|c&d;return b^c^d}Sha.prototype._update=function(M){var W=this._w;var a=this._a|0;var b=this._b|0;var c=this._c|0;var d=this._d|0;var e=this._e|0;for(var i=0;i<16;++i)W[i]=M.readInt32BE(i*4);for(;i<80;++i)W[i]=W[i-3]^W[i-8]^W[i-14]^W[i-16];for(var j=0;j<80;++j){var s=~~(j/20);var t=rotl5(a)+ft(s,b,c,d)+e+W[j]+K[s]|0;e=d;d=c;c=rotl30(b);b=a;a=t}this._a=a+this._a|0;this._b=b+this._b|0;this._c=c+this._c|0;this._d=d+this._d|0;this._e=e+this._e|0};Sha.prototype._hash=function(){var H=new Buffer(20);H.writeInt32BE(this._a|0,0);H.writeInt32BE(this._b|0,4);H.writeInt32BE(this._c|0,8);H.writeInt32BE(this._d|0,12);H.writeInt32BE(this._e|0,16);return H};module.exports=Sha}).call(this,require("buffer").Buffer)},{"./hash":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/node_modules/sha.js/hash.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/node_modules/sha.js/sha1.js":[function(require,module,exports){(function(Buffer){var inherits=require("inherits");var Hash=require("./hash");var K=[1518500249,1859775393,2400959708|0,3395469782|0];var W=new Array(80);function Sha1(){this.init();this._w=W;Hash.call(this,64,56)}inherits(Sha1,Hash);Sha1.prototype.init=function(){this._a=1732584193;this._b=4023233417;this._c=2562383102;this._d=271733878;this._e=3285377520;return this};function rotl1(num){return num<<1|num>>>31}function rotl5(num){return num<<5|num>>>27}function rotl30(num){return num<<30|num>>>2}function ft(s,b,c,d){if(s===0)return b&c|~b&d;if(s===2)return b&c|b&d|c&d;return b^c^d}Sha1.prototype._update=function(M){var W=this._w;var a=this._a|0;var b=this._b|0;var c=this._c|0;var d=this._d|0;var e=this._e|0;for(var i=0;i<16;++i)W[i]=M.readInt32BE(i*4);for(;i<80;++i)W[i]=rotl1(W[i-3]^W[i-8]^W[i-14]^W[i-16]);for(var j=0;j<80;++j){var s=~~(j/20);var t=rotl5(a)+ft(s,b,c,d)+e+W[j]+K[s]|0;e=d;d=c;c=rotl30(b);b=a;a=t}this._a=a+this._a|0;this._b=b+this._b|0;this._c=c+this._c|0;this._d=d+this._d|0;this._e=e+this._e|0};Sha1.prototype._hash=function(){var H=new Buffer(20);H.writeInt32BE(this._a|0,0);H.writeInt32BE(this._b|0,4);H.writeInt32BE(this._c|0,8);H.writeInt32BE(this._d|0,12);H.writeInt32BE(this._e|0,16);return H};module.exports=Sha1}).call(this,require("buffer").Buffer);
  17. },{"./hash":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/node_modules/sha.js/hash.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/node_modules/sha.js/sha224.js":[function(require,module,exports){(function(Buffer){var inherits=require("inherits");var Sha256=require("./sha256");var Hash=require("./hash");var W=new Array(64);function Sha224(){this.init();this._w=W;Hash.call(this,64,56)}inherits(Sha224,Sha256);Sha224.prototype.init=function(){this._a=3238371032;this._b=914150663;this._c=812702999;this._d=4144912697;this._e=4290775857;this._f=1750603025;this._g=1694076839;this._h=3204075428;return this};Sha224.prototype._hash=function(){var H=new Buffer(28);H.writeInt32BE(this._a,0);H.writeInt32BE(this._b,4);H.writeInt32BE(this._c,8);H.writeInt32BE(this._d,12);H.writeInt32BE(this._e,16);H.writeInt32BE(this._f,20);H.writeInt32BE(this._g,24);return H};module.exports=Sha224}).call(this,require("buffer").Buffer)},{"./hash":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/node_modules/sha.js/hash.js","./sha256":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/node_modules/sha.js/sha256.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/node_modules/sha.js/sha256.js":[function(require,module,exports){(function(Buffer){var inherits=require("inherits");var Hash=require("./hash");var K=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];var W=new Array(64);function Sha256(){this.init();this._w=W;Hash.call(this,64,56)}inherits(Sha256,Hash);Sha256.prototype.init=function(){this._a=1779033703;this._b=3144134277;this._c=1013904242;this._d=2773480762;this._e=1359893119;this._f=2600822924;this._g=528734635;this._h=1541459225;return this};function ch(x,y,z){return z^x&(y^z)}function maj(x,y,z){return x&y|z&(x|y)}function sigma0(x){return(x>>>2|x<<30)^(x>>>13|x<<19)^(x>>>22|x<<10)}function sigma1(x){return(x>>>6|x<<26)^(x>>>11|x<<21)^(x>>>25|x<<7)}function gamma0(x){return(x>>>7|x<<25)^(x>>>18|x<<14)^x>>>3}function gamma1(x){return(x>>>17|x<<15)^(x>>>19|x<<13)^x>>>10}Sha256.prototype._update=function(M){var W=this._w;var a=this._a|0;var b=this._b|0;var c=this._c|0;var d=this._d|0;var e=this._e|0;var f=this._f|0;var g=this._g|0;var h=this._h|0;for(var i=0;i<16;++i)W[i]=M.readInt32BE(i*4);for(;i<64;++i)W[i]=gamma1(W[i-2])+W[i-7]+gamma0(W[i-15])+W[i-16]|0;for(var j=0;j<64;++j){var T1=h+sigma1(e)+ch(e,f,g)+K[j]+W[j]|0;var T2=sigma0(a)+maj(a,b,c)|0;h=g;g=f;f=e;e=d+T1|0;d=c;c=b;b=a;a=T1+T2|0}this._a=a+this._a|0;this._b=b+this._b|0;this._c=c+this._c|0;this._d=d+this._d|0;this._e=e+this._e|0;this._f=f+this._f|0;this._g=g+this._g|0;this._h=h+this._h|0};Sha256.prototype._hash=function(){var H=new Buffer(32);H.writeInt32BE(this._a,0);H.writeInt32BE(this._b,4);H.writeInt32BE(this._c,8);H.writeInt32BE(this._d,12);H.writeInt32BE(this._e,16);H.writeInt32BE(this._f,20);H.writeInt32BE(this._g,24);H.writeInt32BE(this._h,28);return H};module.exports=Sha256}).call(this,require("buffer").Buffer)},{"./hash":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/node_modules/sha.js/hash.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/node_modules/sha.js/sha384.js":[function(require,module,exports){(function(Buffer){var inherits=require("inherits");var SHA512=require("./sha512");var Hash=require("./hash");var W=new Array(160);function Sha384(){this.init();this._w=W;Hash.call(this,128,112)}inherits(Sha384,SHA512);Sha384.prototype.init=function(){this._ah=3418070365;this._bh=1654270250;this._ch=2438529370;this._dh=355462360;this._eh=1731405415;this._fh=2394180231;this._gh=3675008525;this._hh=1203062813;this._al=3238371032;this._bl=914150663;this._cl=812702999;this._dl=4144912697;this._el=4290775857;this._fl=1750603025;this._gl=1694076839;this._hl=3204075428;return this};Sha384.prototype._hash=function(){var H=new Buffer(48);function writeInt64BE(h,l,offset){H.writeInt32BE(h,offset);H.writeInt32BE(l,offset+4)}writeInt64BE(this._ah,this._al,0);writeInt64BE(this._bh,this._bl,8);writeInt64BE(this._ch,this._cl,16);writeInt64BE(this._dh,this._dl,24);writeInt64BE(this._eh,this._el,32);writeInt64BE(this._fh,this._fl,40);return H};module.exports=Sha384}).call(this,require("buffer").Buffer)},{"./hash":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/node_modules/sha.js/hash.js","./sha512":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/node_modules/sha.js/sha512.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/node_modules/sha.js/sha512.js":[function(require,module,exports){(function(Buffer){var inherits=require("inherits");var Hash=require("./hash");var K=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];var W=new Array(160);function Sha512(){this.init();this._w=W;Hash.call(this,128,112)}inherits(Sha512,Hash);Sha512.prototype.init=function(){this._ah=1779033703;this._bh=3144134277;this._ch=1013904242;this._dh=2773480762;this._eh=1359893119;this._fh=2600822924;this._gh=528734635;this._hh=1541459225;this._al=4089235720;this._bl=2227873595;this._cl=4271175723;this._dl=1595750129;this._el=2917565137;this._fl=725511199;this._gl=4215389547;this._hl=327033209;return this};function Ch(x,y,z){return z^x&(y^z)}function maj(x,y,z){return x&y|z&(x|y)}function sigma0(x,xl){return(x>>>28|xl<<4)^(xl>>>2|x<<30)^(xl>>>7|x<<25)}function sigma1(x,xl){return(x>>>14|xl<<18)^(x>>>18|xl<<14)^(xl>>>9|x<<23)}function Gamma0(x,xl){return(x>>>1|xl<<31)^(x>>>8|xl<<24)^x>>>7}function Gamma0l(x,xl){return(x>>>1|xl<<31)^(x>>>8|xl<<24)^(x>>>7|xl<<25)}function Gamma1(x,xl){return(x>>>19|xl<<13)^(xl>>>29|x<<3)^x>>>6}function Gamma1l(x,xl){return(x>>>19|xl<<13)^(xl>>>29|x<<3)^(x>>>6|xl<<26)}function getCarry(a,b){return a>>>0<b>>>0?1:0}Sha512.prototype._update=function(M){var W=this._w;var ah=this._ah|0;var bh=this._bh|0;var ch=this._ch|0;var dh=this._dh|0;var eh=this._eh|0;var fh=this._fh|0;var gh=this._gh|0;var hh=this._hh|0;var al=this._al|0;var bl=this._bl|0;var cl=this._cl|0;var dl=this._dl|0;var el=this._el|0;var fl=this._fl|0;var gl=this._gl|0;var hl=this._hl|0;for(var i=0;i<32;i+=2){W[i]=M.readInt32BE(i*4);W[i+1]=M.readInt32BE(i*4+4)}for(;i<160;i+=2){var xh=W[i-15*2];var xl=W[i-15*2+1];var gamma0=Gamma0(xh,xl);var gamma0l=Gamma0l(xl,xh);xh=W[i-2*2];xl=W[i-2*2+1];var gamma1=Gamma1(xh,xl);var gamma1l=Gamma1l(xl,xh);var Wi7h=W[i-7*2];var Wi7l=W[i-7*2+1];var Wi16h=W[i-16*2];var Wi16l=W[i-16*2+1];var Wil=gamma0l+Wi7l|0;var Wih=gamma0+Wi7h+getCarry(Wil,gamma0l)|0;Wil=Wil+gamma1l|0;Wih=Wih+gamma1+getCarry(Wil,gamma1l)|0;Wil=Wil+Wi16l|0;Wih=Wih+Wi16h+getCarry(Wil,Wi16l)|0;W[i]=Wih;W[i+1]=Wil}for(var j=0;j<160;j+=2){Wih=W[j];Wil=W[j+1];var majh=maj(ah,bh,ch);var majl=maj(al,bl,cl);var sigma0h=sigma0(ah,al);var sigma0l=sigma0(al,ah);var sigma1h=sigma1(eh,el);var sigma1l=sigma1(el,eh);var Kih=K[j];var Kil=K[j+1];var chh=Ch(eh,fh,gh);var chl=Ch(el,fl,gl);var t1l=hl+sigma1l|0;var t1h=hh+sigma1h+getCarry(t1l,hl)|0;t1l=t1l+chl|0;t1h=t1h+chh+getCarry(t1l,chl)|0;t1l=t1l+Kil|0;t1h=t1h+Kih+getCarry(t1l,Kil)|0;t1l=t1l+Wil|0;t1h=t1h+Wih+getCarry(t1l,Wil)|0;var t2l=sigma0l+majl|0;var t2h=sigma0h+majh+getCarry(t2l,sigma0l)|0;hh=gh;hl=gl;gh=fh;gl=fl;fh=eh;fl=el;el=dl+t1l|0;eh=dh+t1h+getCarry(el,dl)|0;dh=ch;dl=cl;ch=bh;cl=bl;bh=ah;bl=al;al=t1l+t2l|0;ah=t1h+t2h+getCarry(al,t1l)|0}this._al=this._al+al|0;this._bl=this._bl+bl|0;this._cl=this._cl+cl|0;this._dl=this._dl+dl|0;this._el=this._el+el|0;this._fl=this._fl+fl|0;this._gl=this._gl+gl|0;this._hl=this._hl+hl|0;this._ah=this._ah+ah+getCarry(this._al,al)|0;this._bh=this._bh+bh+getCarry(this._bl,bl)|0;this._ch=this._ch+ch+getCarry(this._cl,cl)|0;this._dh=this._dh+dh+getCarry(this._dl,dl)|0;this._eh=this._eh+eh+getCarry(this._el,el)|0;this._fh=this._fh+fh+getCarry(this._fl,fl)|0;this._gh=this._gh+gh+getCarry(this._gl,gl)|0;this._hh=this._hh+hh+getCarry(this._hl,hl)|0};Sha512.prototype._hash=function(){var H=new Buffer(64);function writeInt64BE(h,l,offset){H.writeInt32BE(h,offset);H.writeInt32BE(l,offset+4)}writeInt64BE(this._ah,this._al,0);writeInt64BE(this._bh,this._bl,8);writeInt64BE(this._ch,this._cl,16);writeInt64BE(this._dh,this._dl,24);writeInt64BE(this._eh,this._el,32);writeInt64BE(this._fh,this._fl,40);writeInt64BE(this._gh,this._gl,48);writeInt64BE(this._hh,this._hl,56);return H};module.exports=Sha512}).call(this,require("buffer").Buffer)},{"./hash":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/node_modules/sha.js/hash.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hmac/browser.js":[function(require,module,exports){(function(Buffer){"use strict";var createHash=require("create-hash/browser");var inherits=require("inherits");var Transform=require("stream").Transform;var ZEROS=new Buffer(128);ZEROS.fill(0);function Hmac(alg,key){Transform.call(this);alg=alg.toLowerCase();if(typeof key==="string"){key=new Buffer(key)}var blocksize=alg==="sha512"||alg==="sha384"?128:64;this._alg=alg;this._key=key;if(key.length>blocksize){key=createHash(alg).update(key).digest()}else if(key.length<blocksize){key=Buffer.concat([key,ZEROS],blocksize)}var ipad=this._ipad=new Buffer(blocksize);var opad=this._opad=new Buffer(blocksize);for(var i=0;i<blocksize;i++){ipad[i]=key[i]^54;opad[i]=key[i]^92}this._hash=createHash(alg).update(ipad)}inherits(Hmac,Transform);Hmac.prototype.update=function(data,enc){this._hash.update(data,enc);return this};Hmac.prototype._transform=function(data,_,next){this._hash.update(data);next()};Hmac.prototype._flush=function(next){this.push(this.digest());next()};Hmac.prototype.digest=function(enc){var h=this._hash.digest();return createHash(this._alg).update(this._opad).update(h).digest(enc)};module.exports=function createHmac(alg,key){return new Hmac(alg,key)}}).call(this,require("buffer").Buffer)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","create-hash/browser":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/browser.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js",stream:"/data/github/geopackage-node/node_modules/browserify/node_modules/stream-browserify/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/diffie-hellman/browser.js":[function(require,module,exports){(function(Buffer){var generatePrime=require("./lib/generatePrime");var primes=require("./lib/primes.json");var DH=require("./lib/dh");function getDiffieHellman(mod){var prime=new Buffer(primes[mod].prime,"hex");var gen=new Buffer(primes[mod].gen,"hex");return new DH(prime,gen)}var ENCODINGS={binary:true,hex:true,base64:true};function createDiffieHellman(prime,enc,generator,genc){if(Buffer.isBuffer(enc)||ENCODINGS[enc]===undefined){return createDiffieHellman(prime,"binary",enc,generator)}enc=enc||"binary";genc=genc||"binary";generator=generator||new Buffer([2]);if(!Buffer.isBuffer(generator)){generator=new Buffer(generator,genc)}if(typeof prime==="number"){return new DH(generatePrime(prime,generator),generator,true)}if(!Buffer.isBuffer(prime)){prime=new Buffer(prime,enc)}return new DH(prime,generator,true)}exports.DiffieHellmanGroup=exports.createDiffieHellmanGroup=exports.getDiffieHellman=getDiffieHellman;exports.createDiffieHellman=exports.DiffieHellman=createDiffieHellman}).call(this,require("buffer").Buffer)},{"./lib/dh":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/diffie-hellman/lib/dh.js","./lib/generatePrime":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/diffie-hellman/lib/generatePrime.js","./lib/primes.json":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/diffie-hellman/lib/primes.json",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/diffie-hellman/lib/dh.js":[function(require,module,exports){(function(Buffer){var BN=require("bn.js");var MillerRabin=require("miller-rabin");var millerRabin=new MillerRabin;var TWENTYFOUR=new BN(24);var ELEVEN=new BN(11);var TEN=new BN(10);var THREE=new BN(3);var SEVEN=new BN(7);var primes=require("./generatePrime");var randomBytes=require("randombytes");module.exports=DH;function setPublicKey(pub,enc){enc=enc||"utf8";if(!Buffer.isBuffer(pub)){pub=new Buffer(pub,enc)}this._pub=new BN(pub);return this}function setPrivateKey(priv,enc){enc=enc||"utf8";if(!Buffer.isBuffer(priv)){priv=new Buffer(priv,enc)}this._priv=new BN(priv);return this}var primeCache={};function checkPrime(prime,generator){var gen=generator.toString("hex");var hex=[gen,prime.toString(16)].join("_");if(hex in primeCache){return primeCache[hex]}var error=0;if(prime.isEven()||!primes.simpleSieve||!primes.fermatTest(prime)||!millerRabin.test(prime)){error+=1;if(gen==="02"||gen==="05"){error+=8}else{error+=4}primeCache[hex]=error;return error}if(!millerRabin.test(prime.shrn(1))){error+=2}var rem;switch(gen){case"02":if(prime.mod(TWENTYFOUR).cmp(ELEVEN)){error+=8}break;case"05":rem=prime.mod(TEN);if(rem.cmp(THREE)&&rem.cmp(SEVEN)){error+=8}break;default:error+=4}primeCache[hex]=error;return error}function DH(prime,generator,malleable){this.setGenerator(generator);this.__prime=new BN(prime);this._prime=BN.mont(this.__prime);this._primeLen=prime.length;this._pub=undefined;this._priv=undefined;this._primeCode=undefined;if(malleable){this.setPublicKey=setPublicKey;this.setPrivateKey=setPrivateKey}else{this._primeCode=8}}Object.defineProperty(DH.prototype,"verifyError",{enumerable:true,get:function(){if(typeof this._primeCode!=="number"){this._primeCode=checkPrime(this.__prime,this.__gen)}return this._primeCode}});DH.prototype.generateKeys=function(){if(!this._priv){this._priv=new BN(randomBytes(this._primeLen))}this._pub=this._gen.toRed(this._prime).redPow(this._priv).fromRed();return this.getPublicKey()};DH.prototype.computeSecret=function(other){other=new BN(other);other=other.toRed(this._prime);var secret=other.redPow(this._priv).fromRed();var out=new Buffer(secret.toArray());var prime=this.getPrime();if(out.length<prime.length){var front=new Buffer(prime.length-out.length);front.fill(0);out=Buffer.concat([front,out])}return out};DH.prototype.getPublicKey=function getPublicKey(enc){return formatReturnValue(this._pub,enc)};DH.prototype.getPrivateKey=function getPrivateKey(enc){return formatReturnValue(this._priv,enc)};DH.prototype.getPrime=function(enc){return formatReturnValue(this.__prime,enc)};DH.prototype.getGenerator=function(enc){return formatReturnValue(this._gen,enc)};DH.prototype.setGenerator=function(gen,enc){enc=enc||"utf8";if(!Buffer.isBuffer(gen)){gen=new Buffer(gen,enc)}this.__gen=gen;this._gen=new BN(gen);return this};function formatReturnValue(bn,enc){var buf=new Buffer(bn.toArray());if(!enc){return buf}else{return buf.toString(enc)}}}).call(this,require("buffer").Buffer)},{"./generatePrime":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/diffie-hellman/lib/generatePrime.js","bn.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","miller-rabin":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/diffie-hellman/node_modules/miller-rabin/lib/mr.js",randombytes:"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/randombytes/browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/diffie-hellman/lib/generatePrime.js":[function(require,module,exports){var randomBytes=require("randombytes");module.exports=findPrime;findPrime.simpleSieve=simpleSieve;findPrime.fermatTest=fermatTest;var BN=require("bn.js");var TWENTYFOUR=new BN(24);var MillerRabin=require("miller-rabin");var millerRabin=new MillerRabin;var ONE=new BN(1);var TWO=new BN(2);var FIVE=new BN(5);var SIXTEEN=new BN(16);var EIGHT=new BN(8);var TEN=new BN(10);var THREE=new BN(3);var SEVEN=new BN(7);var ELEVEN=new BN(11);var FOUR=new BN(4);var TWELVE=new BN(12);var primes=null;function _getPrimes(){if(primes!==null)return primes;var limit=1048576;var res=[];res[0]=2;for(var i=1,k=3;k<limit;k+=2){var sqrt=Math.ceil(Math.sqrt(k));for(var j=0;j<i&&res[j]<=sqrt;j++)if(k%res[j]===0)break;if(i!==j&&res[j]<=sqrt)continue;res[i++]=k}primes=res;return res}function simpleSieve(p){var primes=_getPrimes();for(var i=0;i<primes.length;i++)if(p.modn(primes[i])===0){if(p.cmpn(primes[i])===0){return true}else{return false}}return true}function fermatTest(p){var red=BN.mont(p);return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1)===0}function findPrime(bits,gen){if(bits<16){if(gen===2||gen===5){return new BN([140,123])}else{return new BN([140,39])}}gen=new BN(gen);var num,n2;while(true){num=new BN(randomBytes(Math.ceil(bits/8)));while(num.bitLength()>bits){num.ishrn(1)}if(num.isEven()){num.iadd(ONE)}if(!num.testn(1)){num.iadd(TWO)}if(!gen.cmp(TWO)){while(num.mod(TWENTYFOUR).cmp(ELEVEN)){num.iadd(FOUR)}}else if(!gen.cmp(FIVE)){while(num.mod(TEN).cmp(THREE)){num.iadd(FOUR)}}n2=num.shrn(1);if(simpleSieve(n2)&&simpleSieve(num)&&fermatTest(n2)&&fermatTest(num)&&millerRabin.test(n2)&&millerRabin.test(num)){return num}}}},{"bn.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js","miller-rabin":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/diffie-hellman/node_modules/miller-rabin/lib/mr.js",randombytes:"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/randombytes/browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/diffie-hellman/lib/primes.json":[function(require,module,exports){module.exports={modp1:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff"},modp2:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff"},modp5:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff"},modp14:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff"},modp15:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff"},modp16:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff"},modp17:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff"},modp18:{gen:"02",prime:"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff"}}},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/bn.js/lib/bn.js"][0].apply(exports,arguments)},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/diffie-hellman/node_modules/miller-rabin/lib/mr.js":[function(require,module,exports){var bn=require("bn.js");var brorand=require("brorand");function MillerRabin(rand){this.rand=rand||new brorand.Rand}module.exports=MillerRabin;MillerRabin.create=function create(rand){return new MillerRabin(rand)};MillerRabin.prototype._rand=function _rand(n){var len=n.bitLength();var buf=this.rand.generate(Math.ceil(len/8));buf[0]|=3;var mask=len&7;if(mask!==0)buf[buf.length-1]>>=7-mask;return new bn(buf)};MillerRabin.prototype.test=function test(n,k,cb){var len=n.bitLength();var red=bn.mont(n);var rone=new bn(1).toRed(red);if(!k)k=Math.max(1,len/48|0);var n1=n.subn(1);var n2=n1.subn(1);for(var s=0;!n1.testn(s);s++){}var d=n.shrn(s);var rn1=n1.toRed(red);var prime=true;for(;k>0;k--){var a=this._rand(n2);if(cb)cb(a);var x=a.toRed(red).redPow(d);if(x.cmp(rone)===0||x.cmp(rn1)===0)continue;for(var i=1;i<s;i++){x=x.redSqr();if(x.cmp(rone)===0)return false;if(x.cmp(rn1)===0)break}if(i===s)return false}return prime};MillerRabin.prototype.getDivisor=function getDivisor(n,k){var len=n.bitLength();var red=bn.mont(n);var rone=new bn(1).toRed(red);if(!k)k=Math.max(1,len/48|0);var n1=n.subn(1);var n2=n1.subn(1);for(var s=0;!n1.testn(s);s++){}var d=n.shrn(s);var rn1=n1.toRed(red);for(;k>0;k--){var a=this._rand(n2);var g=n.gcd(a);if(g.cmpn(1)!==0)return g;var x=a.toRed(red).redPow(d);if(x.cmp(rone)===0||x.cmp(rn1)===0)continue;for(var i=1;i<s;i++){x=x.redSqr();if(x.cmp(rone)===0)return x.fromRed().subn(1).gcd(n);if(x.cmp(rn1)===0)break}if(i===s){x=x.redSqr();return x.fromRed().subn(1).gcd(n)}}return false}},{"bn.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js",brorand:"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/diffie-hellman/node_modules/miller-rabin/node_modules/brorand/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/diffie-hellman/node_modules/miller-rabin/node_modules/brorand/index.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/elliptic/node_modules/brorand/index.js"][0].apply(exports,arguments)},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/pbkdf2/browser.js":[function(require,module,exports){(function(Buffer){var createHmac=require("create-hmac");var MAX_ALLOC=Math.pow(2,30)-1;exports.pbkdf2=pbkdf2;
  18. function pbkdf2(password,salt,iterations,keylen,digest,callback){if(typeof digest==="function"){callback=digest;digest=undefined}if(typeof callback!=="function"){throw new Error("No callback provided to pbkdf2")}var result=pbkdf2Sync(password,salt,iterations,keylen,digest);setTimeout(function(){callback(undefined,result)})}exports.pbkdf2Sync=pbkdf2Sync;function pbkdf2Sync(password,salt,iterations,keylen,digest){if(typeof iterations!=="number"){throw new TypeError("Iterations not a number")}if(iterations<0){throw new TypeError("Bad iterations")}if(typeof keylen!=="number"){throw new TypeError("Key length not a number")}if(keylen<0||keylen>MAX_ALLOC){throw new TypeError("Bad key length")}digest=digest||"sha1";if(!Buffer.isBuffer(password))password=new Buffer(password,"binary");if(!Buffer.isBuffer(salt))salt=new Buffer(salt,"binary");var hLen;var l=1;var DK=new Buffer(keylen);var block1=new Buffer(salt.length+4);salt.copy(block1,0,0,salt.length);var r;var T;for(var i=1;i<=l;i++){block1.writeUInt32BE(i,salt.length);var U=createHmac(digest,password).update(block1).digest();if(!hLen){hLen=U.length;T=new Buffer(hLen);l=Math.ceil(keylen/hLen);r=keylen-(l-1)*hLen}U.copy(T,0,0,hLen);for(var j=1;j<iterations;j++){U=createHmac(digest,password).update(U).digest();for(var k=0;k<hLen;k++){T[k]^=U[k]}}var destPos=(i-1)*hLen;var len=i===l?r:hLen;T.copy(DK,destPos,0,len)}return DK}}).call(this,require("buffer").Buffer)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","create-hmac":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hmac/browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/browser.js":[function(require,module,exports){exports.publicEncrypt=require("./publicEncrypt");exports.privateDecrypt=require("./privateDecrypt");exports.privateEncrypt=function privateEncrypt(key,buf){return exports.publicEncrypt(key,buf,true)};exports.publicDecrypt=function publicDecrypt(key,buf){return exports.privateDecrypt(key,buf,true)}},{"./privateDecrypt":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/privateDecrypt.js","./publicEncrypt":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/publicEncrypt.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/mgf.js":[function(require,module,exports){(function(Buffer){var createHash=require("create-hash");module.exports=function(seed,len){var t=new Buffer("");var i=0,c;while(t.length<len){c=i2ops(i++);t=Buffer.concat([t,createHash("sha1").update(seed).update(c).digest()])}return t.slice(0,len)};function i2ops(c){var out=new Buffer(4);out.writeUInt32BE(c,0);return out}}).call(this,require("buffer").Buffer)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","create-hash":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/bn.js/lib/bn.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/bn.js/lib/bn.js"][0].apply(exports,arguments)},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/browserify-rsa/index.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/browserify-rsa/index.js"][0].apply(exports,arguments)},{"bn.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/bn.js/lib/bn.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js",randombytes:"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/randombytes/browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/aesid.json":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/aesid.json"][0].apply(exports,arguments)},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/asn1.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/asn1.js"][0].apply(exports,arguments)},{"asn1.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/fixProc.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/fixProc.js"][0].apply(exports,arguments)},{"browserify-aes":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/browser.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js",evp_bytestokey:"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/evp_bytestokey/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/index.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/index.js"][0].apply(exports,arguments)},{"./aesid.json":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/aesid.json","./asn1":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/asn1.js","./fixProc":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/fixProc.js","browserify-aes":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/browser.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js",pbkdf2:"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/pbkdf2/browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1.js"][0].apply(exports,arguments)},{"./asn1/api":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/api.js","./asn1/base":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/base/index.js","./asn1/constants":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/constants/index.js","./asn1/decoders":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/decoders/index.js","./asn1/encoders":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/encoders/index.js","bn.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/bn.js/lib/bn.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/api.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/api.js"][0].apply(exports,arguments)},{"../asn1":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js",vm:"/data/github/geopackage-node/node_modules/browserify/node_modules/vm-browserify/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/base/buffer.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/base/buffer.js"][0].apply(exports,arguments)},{"../base":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/base/index.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/base/index.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/base/index.js"][0].apply(exports,arguments)},{"./buffer":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/base/buffer.js","./node":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/base/node.js","./reporter":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/base/reporter.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/base/node.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/base/node.js"][0].apply(exports,arguments)},{"../base":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/base/index.js","minimalistic-assert":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/node_modules/minimalistic-assert/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/base/reporter.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/base/reporter.js"][0].apply(exports,arguments)},{inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/constants/der.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/constants/der.js"][0].apply(exports,arguments)},{"../constants":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/constants/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/constants/index.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/constants/index.js"][0].apply(exports,arguments)},{"./der":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/constants/der.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/decoders/der.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/decoders/der.js"][0].apply(exports,arguments)},{"../../asn1":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/decoders/index.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/decoders/index.js"][0].apply(exports,arguments)},{"./der":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/decoders/der.js","./pem":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/decoders/pem.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/decoders/pem.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/decoders/pem.js"][0].apply(exports,arguments)},{"../../asn1":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1.js","./der":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/decoders/der.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/encoders/der.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/encoders/der.js"][0].apply(exports,arguments)},{"../../asn1":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/encoders/index.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/encoders/index.js"][0].apply(exports,arguments)},{"./der":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/encoders/der.js","./pem":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/encoders/pem.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/encoders/pem.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-sign/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/encoders/pem.js"][0].apply(exports,arguments)},{"../../asn1":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1.js","./der":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/lib/asn1/encoders/der.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/asn1.js/node_modules/minimalistic-assert/index.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-des/node_modules/des.js/node_modules/minimalistic-assert/index.js"][0].apply(exports,arguments)},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/aes.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/aes.js"][0].apply(exports,arguments)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/authCipher.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/authCipher.js"][0].apply(exports,arguments)},{"./aes":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/aes.js","./ghash":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/ghash.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","buffer-xor":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/node_modules/buffer-xor/index.js","cipher-base":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/node_modules/cipher-base/index.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/browser.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/browser.js"][0].apply(exports,arguments)},{"./decrypter":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/decrypter.js","./encrypter":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/encrypter.js","./modes":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/modes.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/decrypter.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/decrypter.js"][0].apply(exports,arguments)},{"./aes":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/aes.js","./authCipher":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/authCipher.js","./modes":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/modes.js","./modes/cbc":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/modes/cbc.js","./modes/cfb":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/modes/cfb.js","./modes/cfb1":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/modes/cfb1.js","./modes/cfb8":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/modes/cfb8.js","./modes/ctr":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/modes/ctr.js","./modes/ecb":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/modes/ecb.js","./modes/ofb":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/modes/ofb.js","./streamCipher":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/streamCipher.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","cipher-base":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/node_modules/cipher-base/index.js",evp_bytestokey:"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/evp_bytestokey/index.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/encrypter.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/encrypter.js"][0].apply(exports,arguments)},{"./aes":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/aes.js","./authCipher":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/authCipher.js","./modes":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/modes.js","./modes/cbc":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/modes/cbc.js","./modes/cfb":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/modes/cfb.js","./modes/cfb1":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/modes/cfb1.js","./modes/cfb8":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/modes/cfb8.js","./modes/ctr":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/modes/ctr.js","./modes/ecb":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/modes/ecb.js","./modes/ofb":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/modes/ofb.js","./streamCipher":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/streamCipher.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","cipher-base":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/node_modules/cipher-base/index.js",evp_bytestokey:"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/evp_bytestokey/index.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/ghash.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/ghash.js"][0].apply(exports,arguments)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/modes.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes.js"][0].apply(exports,arguments)},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/modes/cbc.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/cbc.js"][0].apply(exports,arguments)},{"buffer-xor":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/node_modules/buffer-xor/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/modes/cfb.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/cfb.js"][0].apply(exports,arguments)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","buffer-xor":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/node_modules/buffer-xor/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/modes/cfb1.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/cfb1.js"][0].apply(exports,arguments)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js"
  19. }],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/modes/cfb8.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/cfb8.js"][0].apply(exports,arguments)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/modes/ctr.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/ctr.js"][0].apply(exports,arguments)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","buffer-xor":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/node_modules/buffer-xor/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/modes/ecb.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/ecb.js"][0].apply(exports,arguments)},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/modes/ofb.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/modes/ofb.js"][0].apply(exports,arguments)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","buffer-xor":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/node_modules/buffer-xor/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/node_modules/buffer-xor/index.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/node_modules/buffer-xor/index.js"][0].apply(exports,arguments)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/node_modules/cipher-base/index.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/node_modules/cipher-base/index.js"][0].apply(exports,arguments)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js",stream:"/data/github/geopackage-node/node_modules/browserify/node_modules/stream-browserify/index.js",string_decoder:"/data/github/geopackage-node/node_modules/browserify/node_modules/string_decoder/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/streamCipher.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/browserify-aes/streamCipher.js"][0].apply(exports,arguments)},{"./aes":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/aes.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","cipher-base":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/browserify-aes/node_modules/cipher-base/index.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/node_modules/evp_bytestokey/index.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/browserify-cipher/node_modules/evp_bytestokey/index.js"][0].apply(exports,arguments)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","create-hash/md5":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/md5.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/privateDecrypt.js":[function(require,module,exports){(function(Buffer){var parseKeys=require("parse-asn1");var mgf=require("./mgf");var xor=require("./xor");var bn=require("bn.js");var crt=require("browserify-rsa");var createHash=require("create-hash");var withPublic=require("./withPublic");module.exports=function privateDecrypt(private_key,enc,reverse){var padding;if(private_key.padding){padding=private_key.padding}else if(reverse){padding=1}else{padding=4}var key=parseKeys(private_key);var k=key.modulus.byteLength();if(enc.length>k||new bn(enc).cmp(key.modulus)>=0){throw new Error("decryption error")}var msg;if(reverse){msg=withPublic(new bn(enc),key)}else{msg=crt(enc,key)}var zBuffer=new Buffer(k-msg.length);zBuffer.fill(0);msg=Buffer.concat([zBuffer,msg],k);if(padding===4){return oaep(key,msg)}else if(padding===1){return pkcs1(key,msg,reverse)}else if(padding===3){return msg}else{throw new Error("unknown padding")}};function oaep(key,msg){var n=key.modulus;var k=key.modulus.byteLength();var mLen=msg.length;var iHash=createHash("sha1").update(new Buffer("")).digest();var hLen=iHash.length;var hLen2=2*hLen;if(msg[0]!==0){throw new Error("decryption error")}var maskedSeed=msg.slice(1,hLen+1);var maskedDb=msg.slice(hLen+1);var seed=xor(maskedSeed,mgf(maskedDb,hLen));var db=xor(maskedDb,mgf(seed,k-hLen-1));if(compare(iHash,db.slice(0,hLen))){throw new Error("decryption error")}var i=hLen;while(db[i]===0){i++}if(db[i++]!==1){throw new Error("decryption error")}return db.slice(i)}function pkcs1(key,msg,reverse){var p1=msg.slice(0,2);var i=2;var status=0;while(msg[i++]!==0){if(i>=msg.length){status++;break}}var ps=msg.slice(2,i-1);var p2=msg.slice(i-1,i);if(p1.toString("hex")!=="0002"&&!reverse||p1.toString("hex")!=="0001"&&reverse){status++}if(ps.length<8){status++}if(status){throw new Error("decryption error")}return msg.slice(i)}function compare(a,b){a=new Buffer(a);b=new Buffer(b);var dif=0;var len=a.length;if(a.length!==b.length){dif++;len=Math.min(a.length,b.length)}var i=-1;while(++i<len){dif+=a[i]^b[i]}return dif}}).call(this,require("buffer").Buffer)},{"./mgf":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/mgf.js","./withPublic":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/withPublic.js","./xor":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/xor.js","bn.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/bn.js/lib/bn.js","browserify-rsa":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/browserify-rsa/index.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","create-hash":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/browser.js","parse-asn1":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/publicEncrypt.js":[function(require,module,exports){(function(Buffer){var parseKeys=require("parse-asn1");var randomBytes=require("randombytes");var createHash=require("create-hash");var mgf=require("./mgf");var xor=require("./xor");var bn=require("bn.js");var withPublic=require("./withPublic");var crt=require("browserify-rsa");var constants={RSA_PKCS1_OAEP_PADDING:4,RSA_PKCS1_PADDIN:1,RSA_NO_PADDING:3};module.exports=function publicEncrypt(public_key,msg,reverse){var padding;if(public_key.padding){padding=public_key.padding}else if(reverse){padding=1}else{padding=4}var key=parseKeys(public_key);var paddedMsg;if(padding===4){paddedMsg=oaep(key,msg)}else if(padding===1){paddedMsg=pkcs1(key,msg,reverse)}else if(padding===3){paddedMsg=new bn(msg);if(paddedMsg.cmp(key.modulus)>=0){throw new Error("data too long for modulus")}}else{throw new Error("unknown padding")}if(reverse){return crt(paddedMsg,key)}else{return withPublic(paddedMsg,key)}};function oaep(key,msg){var k=key.modulus.byteLength();var mLen=msg.length;var iHash=createHash("sha1").update(new Buffer("")).digest();var hLen=iHash.length;var hLen2=2*hLen;if(mLen>k-hLen2-2){throw new Error("message too long")}var ps=new Buffer(k-mLen-hLen2-2);ps.fill(0);var dblen=k-hLen-1;var seed=randomBytes(hLen);var maskedDb=xor(Buffer.concat([iHash,ps,new Buffer([1]),msg],dblen),mgf(seed,dblen));var maskedSeed=xor(seed,mgf(maskedDb,hLen));return new bn(Buffer.concat([new Buffer([0]),maskedSeed,maskedDb],k))}function pkcs1(key,msg,reverse){var mLen=msg.length;var k=key.modulus.byteLength();if(mLen>k-11){throw new Error("message too long")}var ps;if(reverse){ps=new Buffer(k-mLen-3);ps.fill(255)}else{ps=nonZero(k-mLen-3)}return new bn(Buffer.concat([new Buffer([0,reverse?1:2]),ps,new Buffer([0]),msg],k))}function nonZero(len,crypto){var out=new Buffer(len);var i=0;var cache=randomBytes(len*2);var cur=0;var num;while(i<len){if(cur===cache.length){cache=randomBytes(len*2);cur=0}num=cache[cur++];if(num){out[i++]=num}}return out}}).call(this,require("buffer").Buffer)},{"./mgf":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/mgf.js","./withPublic":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/withPublic.js","./xor":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/xor.js","bn.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/bn.js/lib/bn.js","browserify-rsa":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/browserify-rsa/index.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","create-hash":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/create-hash/browser.js","parse-asn1":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/parse-asn1/index.js",randombytes:"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/randombytes/browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/withPublic.js":[function(require,module,exports){(function(Buffer){var bn=require("bn.js");function withPublic(paddedMsg,key){return new Buffer(paddedMsg.toRed(bn.mont(key.modulus)).redPow(new bn(key.publicExponent)).fromRed().toArray())}module.exports=withPublic}).call(this,require("buffer").Buffer)},{"bn.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/node_modules/bn.js/lib/bn.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/public-encrypt/xor.js":[function(require,module,exports){module.exports=function xor(a,b){var len=a.length;var i=-1;while(++i<len){a[i]^=b[i]}return a}},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/node_modules/randombytes/browser.js":[function(require,module,exports){(function(process,global,Buffer){"use strict";function oldBrowser(){throw new Error("secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11")}var crypto=global.crypto||global.msCrypto;if(crypto&&crypto.getRandomValues){module.exports=randomBytes}else{module.exports=oldBrowser}function randomBytes(size,cb){if(size>65536)throw new Error("requested too many random bytes");var rawBytes=new global.Uint8Array(size);if(size>0){crypto.getRandomValues(rawBytes)}var bytes=new Buffer(rawBytes.buffer);if(typeof cb==="function"){return process.nextTick(function(){cb(null,bytes)})}return bytes}}).call(this,require("_process"),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{},require("buffer").Buffer)},{_process:"/data/github/geopackage-node/node_modules/browserify/node_modules/process/browser.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/events/events.js":[function(require,module,exports){function EventEmitter(){this._events=this._events||{};this._maxListeners=this._maxListeners||undefined}module.exports=EventEmitter;EventEmitter.EventEmitter=EventEmitter;EventEmitter.prototype._events=undefined;EventEmitter.prototype._maxListeners=undefined;EventEmitter.defaultMaxListeners=10;EventEmitter.prototype.setMaxListeners=function(n){if(!isNumber(n)||n<0||isNaN(n))throw TypeError("n must be a positive number");this._maxListeners=n;return this};EventEmitter.prototype.emit=function(type){var er,handler,len,args,i,listeners;if(!this._events)this._events={};if(type==="error"){if(!this._events.error||isObject(this._events.error)&&!this._events.error.length){er=arguments[1];if(er instanceof Error){throw er}throw TypeError('Uncaught, unspecified "error" event.')}}handler=this._events[type];if(isUndefined(handler))return false;if(isFunction(handler)){switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:args=Array.prototype.slice.call(arguments,1);handler.apply(this,args)}}else if(isObject(handler)){args=Array.prototype.slice.call(arguments,1);listeners=handler.slice();len=listeners.length;for(i=0;i<len;i++)listeners[i].apply(this,args)}return true};EventEmitter.prototype.addListener=function(type,listener){var m;if(!isFunction(listener))throw TypeError("listener must be a function");if(!this._events)this._events={};if(this._events.newListener)this.emit("newListener",type,isFunction(listener.listener)?listener.listener:listener);if(!this._events[type])this._events[type]=listener;else if(isObject(this._events[type]))this._events[type].push(listener);else this._events[type]=[this._events[type],listener];if(isObject(this._events[type])&&!this._events[type].warned){if(!isUndefined(this._maxListeners)){m=this._maxListeners}else{m=EventEmitter.defaultMaxListeners}if(m&&m>0&&this._events[type].length>m){this._events[type].warned=true;console.error("(node) warning: possible EventEmitter memory "+"leak detected. %d listeners added. "+"Use emitter.setMaxListeners() to increase limit.",this._events[type].length);if(typeof console.trace==="function"){console.trace()}}}return this};EventEmitter.prototype.on=EventEmitter.prototype.addListener;EventEmitter.prototype.once=function(type,listener){if(!isFunction(listener))throw TypeError("listener must be a function");var fired=false;function g(){this.removeListener(type,g);if(!fired){fired=true;listener.apply(this,arguments)}}g.listener=listener;this.on(type,g);return this};EventEmitter.prototype.removeListener=function(type,listener){var list,position,length,i;if(!isFunction(listener))throw TypeError("listener must be a function");if(!this._events||!this._events[type])return this;list=this._events[type];length=list.length;position=-1;if(list===listener||isFunction(list.listener)&&list.listener===listener){delete this._events[type];if(this._events.removeListener)this.emit("removeListener",type,listener)}else if(isObject(list)){for(i=length;i-- >0;){if(list[i]===listener||list[i].listener&&list[i].listener===listener){position=i;break}}if(position<0)return this;if(list.length===1){list.length=0;delete this._events[type]}else{list.splice(position,1)}if(this._events.removeListener)this.emit("removeListener",type,listener)}return this};EventEmitter.prototype.removeAllListeners=function(type){var key,listeners;if(!this._events)return this;if(!this._events.removeListener){if(arguments.length===0)this._events={};else if(this._events[type])delete this._events[type];return this}if(arguments.length===0){for(key in this._events){if(key==="removeListener")continue;this.removeAllListeners(key)}this.removeAllListeners("removeListener");this._events={};return this}listeners=this._events[type];if(isFunction(listeners)){this.removeListener(type,listeners)}else if(listeners){while(listeners.length)this.removeListener(type,listeners[listeners.length-1])}delete this._events[type];return this};EventEmitter.prototype.listeners=function(type){var ret;if(!this._events||!this._events[type])ret=[];else if(isFunction(this._events[type]))ret=[this._events[type]];else ret=this._events[type].slice();return ret};EventEmitter.prototype.listenerCount=function(type){if(this._events){var evlistener=this._events[type];if(isFunction(evlistener))return 1;else if(evlistener)return evlistener.length}return 0};EventEmitter.listenerCount=function(emitter,type){return emitter.listenerCount(type)};function isFunction(arg){return typeof arg==="function"}function isNumber(arg){return typeof arg==="number"}function isObject(arg){return typeof arg==="object"&&arg!==null}function isUndefined(arg){return arg===void 0}},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js":[function(require,module,exports){if(typeof Object.create==="function"){module.exports=function inherits(ctor,superCtor){ctor.super_=superCtor;ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:false,writable:true,configurable:true}})}}else{module.exports=function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype;ctor.prototype=new TempCtor;ctor.prototype.constructor=ctor}}},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/insert-module-globals/node_modules/is-buffer/index.js":[function(require,module,exports){module.exports=function(obj){return!!(obj!=null&&(obj._isBuffer||obj.constructor&&typeof obj.constructor.isBuffer==="function"&&obj.constructor.isBuffer(obj)))}},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/path-browserify/index.js":[function(require,module,exports){(function(process){function normalizeArray(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up--;up){parts.unshift("..")}}return parts}var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;var splitPath=function(filename){return splitPathRe.exec(filename).slice(1)};exports.resolve=function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:process.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){continue}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=normalizeArray(filter(resolvedPath.split("/"),function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."};exports.normalize=function(path){var isAbsolute=exports.isAbsolute(path),trailingSlash=substr(path,-1)==="/";path=normalizeArray(filter(path.split("/"),function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path};exports.isAbsolute=function(path){return path.charAt(0)==="/"};exports.join=function(){var paths=Array.prototype.slice.call(arguments,0);return exports.normalize(filter(paths,function(p,index){if(typeof p!=="string"){throw new TypeError("Arguments to path.join must be strings")}return p}).join("/"))};exports.relative=function(from,to){from=exports.resolve(from).substr(1);to=exports.resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")};exports.sep="/";exports.delimiter=":";exports.dirname=function(path){var result=splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir};exports.basename=function(path,ext){var f=splitPath(path)[2];if(ext&&f.substr(-1*ext.length)===ext){f=f.substr(0,f.length-ext.length)}return f};exports.extname=function(path){return splitPath(path)[3]};function filter(xs,f){if(xs.filter)return xs.filter(f);var res=[];for(var i=0;i<xs.length;i++){if(f(xs[i],i,xs))res.push(xs[i])}return res}var substr="ab".substr(-1)==="b"?function(str,start,len){return str.substr(start,len)}:function(str,start,len){if(start<0)start=str.length+start;return str.substr(start,len)}}).call(this,require("_process"))},{_process:"/data/github/geopackage-node/node_modules/browserify/node_modules/process/browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/process/browser.js":[function(require,module,exports){var process=module.exports={};var queue=[];var draining=false;var currentQueue;var queueIndex=-1;function cleanUpNextTick(){draining=false;if(currentQueue.length){queue=currentQueue.concat(queue)}else{queueIndex=-1}if(queue.length){drainQueue()}}function drainQueue(){if(draining){return}var timeout=setTimeout(cleanUpNextTick);draining=true;var len=queue.length;while(len){currentQueue=queue;queue=[];while(++queueIndex<len){if(currentQueue){currentQueue[queueIndex].run()}}queueIndex=-1;len=queue.length}currentQueue=null;draining=false;clearTimeout(timeout)}process.nextTick=function(fun){var args=new Array(arguments.length-1);if(arguments.length>1){for(var i=1;i<arguments.length;i++){args[i-1]=arguments[i]}}queue.push(new Item(fun,args));if(queue.length===1&&!draining){setTimeout(drainQueue,0)}};function Item(fun,array){this.fun=fun;this.array=array}Item.prototype.run=function(){this.fun.apply(null,this.array)};process.title="browser";process.browser=true;process.env={};process.argv=[];process.version="";process.versions={};function noop(){}process.on=noop;process.addListener=noop;process.once=noop;process.off=noop;process.removeListener=noop;process.removeAllListeners=noop;process.emit=noop;process.binding=function(name){throw new Error("process.binding is not supported")};process.cwd=function(){return"/"};process.chdir=function(dir){throw new Error("process.chdir is not supported")};process.umask=function(){return 0}},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/duplex.js":[function(require,module,exports){module.exports=require("./lib/_stream_duplex.js")},{"./lib/_stream_duplex.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/lib/_stream_duplex.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/lib/_stream_duplex.js":[function(require,module,exports){"use strict";var objectKeys=Object.keys||function(obj){var keys=[];for(var key in obj){keys.push(key)}return keys};module.exports=Duplex;var processNextTick=require("process-nextick-args");var util=require("core-util-is");util.inherits=require("inherits");var Readable=require("./_stream_readable");var Writable=require("./_stream_writable");util.inherits(Duplex,Readable);var keys=objectKeys(Writable.prototype);for(var v=0;v<keys.length;v++){var method=keys[v];if(!Duplex.prototype[method])Duplex.prototype[method]=Writable.prototype[method]}function Duplex(options){if(!(this instanceof Duplex))return new Duplex(options);Readable.call(this,options);Writable.call(this,options);if(options&&options.readable===false)this.readable=false;if(options&&options.writable===false)this.writable=false;this.allowHalfOpen=true;if(options&&options.allowHalfOpen===false)this.allowHalfOpen=false;this.once("end",onend)}function onend(){if(this.allowHalfOpen||this._writableState.ended)return;processNextTick(onEndNT,this)}function onEndNT(self){self.end()}function forEach(xs,f){for(var i=0,l=xs.length;i<l;i++){f(xs[i],i)}}},{"./_stream_readable":"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/lib/_stream_readable.js","./_stream_writable":"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/lib/_stream_writable.js","core-util-is":"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/node_modules/core-util-is/lib/util.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js","process-nextick-args":"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/node_modules/process-nextick-args/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/lib/_stream_passthrough.js":[function(require,module,exports){"use strict";module.exports=PassThrough;var Transform=require("./_stream_transform");var util=require("core-util-is");util.inherits=require("inherits");util.inherits(PassThrough,Transform);function PassThrough(options){if(!(this instanceof PassThrough))return new PassThrough(options);Transform.call(this,options)}PassThrough.prototype._transform=function(chunk,encoding,cb){cb(null,chunk)}},{"./_stream_transform":"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/lib/_stream_transform.js","core-util-is":"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/node_modules/core-util-is/lib/util.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/lib/_stream_readable.js":[function(require,module,exports){(function(process){"use strict";module.exports=Readable;var processNextTick=require("process-nextick-args");var isArray=require("isarray");var Buffer=require("buffer").Buffer;Readable.ReadableState=ReadableState;var EE=require("events");var EElistenerCount=function(emitter,type){return emitter.listeners(type).length};var Stream;(function(){try{Stream=require("st"+"ream")}catch(_){}finally{if(!Stream)Stream=require("events").EventEmitter}})();var Buffer=require("buffer").Buffer;var util=require("core-util-is");util.inherits=require("inherits");var debugUtil=require("util");var debug=undefined;if(debugUtil&&debugUtil.debuglog){debug=debugUtil.debuglog("stream")}else{debug=function(){}}var StringDecoder;util.inherits(Readable,Stream);var Duplex;function ReadableState(options,stream){Duplex=Duplex||require("./_stream_duplex");options=options||{};this.objectMode=!!options.objectMode;if(stream instanceof Duplex)this.objectMode=this.objectMode||!!options.readableObjectMode;var hwm=options.highWaterMark;var defaultHwm=this.objectMode?16:16*1024;this.highWaterMark=hwm||hwm===0?hwm:defaultHwm;this.highWaterMark=~~this.highWaterMark;this.buffer=[];this.length=0;this.pipes=null;this.pipesCount=0;this.flowing=null;this.ended=false;this.endEmitted=false;this.reading=false;this.sync=true;this.needReadable=false;this.emittedReadable=false;this.readableListening=false;this.resumeScheduled=false;this.defaultEncoding=options.defaultEncoding||"utf8";this.ranOut=false;this.awaitDrain=0;this.readingMore=false;this.decoder=null;this.encoding=null;if(options.encoding){if(!StringDecoder)StringDecoder=require("string_decoder/").StringDecoder;this.decoder=new StringDecoder(options.encoding);this.encoding=options.encoding}}var Duplex;function Readable(options){Duplex=Duplex||require("./_stream_duplex");if(!(this instanceof Readable))return new Readable(options);this._readableState=new ReadableState(options,this);this.readable=true;if(options&&typeof options.read==="function")this._read=options.read;Stream.call(this)}Readable.prototype.push=function(chunk,encoding){var state=this._readableState;if(!state.objectMode&&typeof chunk==="string"){encoding=encoding||state.defaultEncoding;if(encoding!==state.encoding){chunk=new Buffer(chunk,encoding);encoding=""}}return readableAddChunk(this,state,chunk,encoding,false)};Readable.prototype.unshift=function(chunk){var state=this._readableState;return readableAddChunk(this,state,chunk,"",true)};Readable.prototype.isPaused=function(){return this._readableState.flowing===false};function readableAddChunk(stream,state,chunk,encoding,addToFront){var er=chunkInvalid(state,chunk);if(er){stream.emit("error",er)}else if(chunk===null){state.reading=false;onEofChunk(stream,state)}else if(state.objectMode||chunk&&chunk.length>0){if(state.ended&&!addToFront){var e=new Error("stream.push() after EOF");stream.emit("error",e)}else if(state.endEmitted&&addToFront){var e=new Error("stream.unshift() after end event");stream.emit("error",e)}else{var skipAdd;if(state.decoder&&!addToFront&&!encoding){chunk=state.decoder.write(chunk);skipAdd=!state.objectMode&&chunk.length===0}if(!addToFront)state.reading=false;if(!skipAdd){if(state.flowing&&state.length===0&&!state.sync){stream.emit("data",chunk);stream.read(0)}else{state.length+=state.objectMode?1:chunk.length;if(addToFront)state.buffer.unshift(chunk);else state.buffer.push(chunk);if(state.needReadable)emitReadable(stream)}}maybeReadMore(stream,state)}}else if(!addToFront){state.reading=false}return needMoreData(state)}function needMoreData(state){return!state.ended&&(state.needReadable||state.length<state.highWaterMark||state.length===0)}Readable.prototype.setEncoding=function(enc){if(!StringDecoder)StringDecoder=require("string_decoder/").StringDecoder;this._readableState.decoder=new StringDecoder(enc);this._readableState.encoding=enc;return this};var MAX_HWM=8388608;function computeNewHighWaterMark(n){if(n>=MAX_HWM){
  20. n=MAX_HWM}else{n--;n|=n>>>1;n|=n>>>2;n|=n>>>4;n|=n>>>8;n|=n>>>16;n++}return n}function howMuchToRead(n,state){if(state.length===0&&state.ended)return 0;if(state.objectMode)return n===0?0:1;if(n===null||isNaN(n)){if(state.flowing&&state.buffer.length)return state.buffer[0].length;else return state.length}if(n<=0)return 0;if(n>state.highWaterMark)state.highWaterMark=computeNewHighWaterMark(n);if(n>state.length){if(!state.ended){state.needReadable=true;return 0}else{return state.length}}return n}Readable.prototype.read=function(n){debug("read",n);var state=this._readableState;var nOrig=n;if(typeof n!=="number"||n>0)state.emittedReadable=false;if(n===0&&state.needReadable&&(state.length>=state.highWaterMark||state.ended)){debug("read: emitReadable",state.length,state.ended);if(state.length===0&&state.ended)endReadable(this);else emitReadable(this);return null}n=howMuchToRead(n,state);if(n===0&&state.ended){if(state.length===0)endReadable(this);return null}var doRead=state.needReadable;debug("need readable",doRead);if(state.length===0||state.length-n<state.highWaterMark){doRead=true;debug("length less than watermark",doRead)}if(state.ended||state.reading){doRead=false;debug("reading or ended",doRead)}if(doRead){debug("do read");state.reading=true;state.sync=true;if(state.length===0)state.needReadable=true;this._read(state.highWaterMark);state.sync=false}if(doRead&&!state.reading)n=howMuchToRead(nOrig,state);var ret;if(n>0)ret=fromList(n,state);else ret=null;if(ret===null){state.needReadable=true;n=0}state.length-=n;if(state.length===0&&!state.ended)state.needReadable=true;if(nOrig!==n&&state.ended&&state.length===0)endReadable(this);if(ret!==null)this.emit("data",ret);return ret};function chunkInvalid(state,chunk){var er=null;if(!Buffer.isBuffer(chunk)&&typeof chunk!=="string"&&chunk!==null&&chunk!==undefined&&!state.objectMode){er=new TypeError("Invalid non-string/buffer chunk")}return er}function onEofChunk(stream,state){if(state.ended)return;if(state.decoder){var chunk=state.decoder.end();if(chunk&&chunk.length){state.buffer.push(chunk);state.length+=state.objectMode?1:chunk.length}}state.ended=true;emitReadable(stream)}function emitReadable(stream){var state=stream._readableState;state.needReadable=false;if(!state.emittedReadable){debug("emitReadable",state.flowing);state.emittedReadable=true;if(state.sync)processNextTick(emitReadable_,stream);else emitReadable_(stream)}}function emitReadable_(stream){debug("emit readable");stream.emit("readable");flow(stream)}function maybeReadMore(stream,state){if(!state.readingMore){state.readingMore=true;processNextTick(maybeReadMore_,stream,state)}}function maybeReadMore_(stream,state){var len=state.length;while(!state.reading&&!state.flowing&&!state.ended&&state.length<state.highWaterMark){debug("maybeReadMore read 0");stream.read(0);if(len===state.length)break;else len=state.length}state.readingMore=false}Readable.prototype._read=function(n){this.emit("error",new Error("not implemented"))};Readable.prototype.pipe=function(dest,pipeOpts){var src=this;var state=this._readableState;switch(state.pipesCount){case 0:state.pipes=dest;break;case 1:state.pipes=[state.pipes,dest];break;default:state.pipes.push(dest);break}state.pipesCount+=1;debug("pipe count=%d opts=%j",state.pipesCount,pipeOpts);var doEnd=(!pipeOpts||pipeOpts.end!==false)&&dest!==process.stdout&&dest!==process.stderr;var endFn=doEnd?onend:cleanup;if(state.endEmitted)processNextTick(endFn);else src.once("end",endFn);dest.on("unpipe",onunpipe);function onunpipe(readable){debug("onunpipe");if(readable===src){cleanup()}}function onend(){debug("onend");dest.end()}var ondrain=pipeOnDrain(src);dest.on("drain",ondrain);var cleanedUp=false;function cleanup(){debug("cleanup");dest.removeListener("close",onclose);dest.removeListener("finish",onfinish);dest.removeListener("drain",ondrain);dest.removeListener("error",onerror);dest.removeListener("unpipe",onunpipe);src.removeListener("end",onend);src.removeListener("end",cleanup);src.removeListener("data",ondata);cleanedUp=true;if(state.awaitDrain&&(!dest._writableState||dest._writableState.needDrain))ondrain()}src.on("data",ondata);function ondata(chunk){debug("ondata");var ret=dest.write(chunk);if(false===ret){if(state.pipesCount===1&&state.pipes[0]===dest&&src.listenerCount("data")===1&&!cleanedUp){debug("false write response, pause",src._readableState.awaitDrain);src._readableState.awaitDrain++}src.pause()}}function onerror(er){debug("onerror",er);unpipe();dest.removeListener("error",onerror);if(EElistenerCount(dest,"error")===0)dest.emit("error",er)}if(!dest._events||!dest._events.error)dest.on("error",onerror);else if(isArray(dest._events.error))dest._events.error.unshift(onerror);else dest._events.error=[onerror,dest._events.error];function onclose(){dest.removeListener("finish",onfinish);unpipe()}dest.once("close",onclose);function onfinish(){debug("onfinish");dest.removeListener("close",onclose);unpipe()}dest.once("finish",onfinish);function unpipe(){debug("unpipe");src.unpipe(dest)}dest.emit("pipe",src);if(!state.flowing){debug("pipe resume");src.resume()}return dest};function pipeOnDrain(src){return function(){var state=src._readableState;debug("pipeOnDrain",state.awaitDrain);if(state.awaitDrain)state.awaitDrain--;if(state.awaitDrain===0&&EElistenerCount(src,"data")){state.flowing=true;flow(src)}}}Readable.prototype.unpipe=function(dest){var state=this._readableState;if(state.pipesCount===0)return this;if(state.pipesCount===1){if(dest&&dest!==state.pipes)return this;if(!dest)dest=state.pipes;state.pipes=null;state.pipesCount=0;state.flowing=false;if(dest)dest.emit("unpipe",this);return this}if(!dest){var dests=state.pipes;var len=state.pipesCount;state.pipes=null;state.pipesCount=0;state.flowing=false;for(var _i=0;_i<len;_i++){dests[_i].emit("unpipe",this)}return this}var i=indexOf(state.pipes,dest);if(i===-1)return this;state.pipes.splice(i,1);state.pipesCount-=1;if(state.pipesCount===1)state.pipes=state.pipes[0];dest.emit("unpipe",this);return this};Readable.prototype.on=function(ev,fn){var res=Stream.prototype.on.call(this,ev,fn);if(ev==="data"&&false!==this._readableState.flowing){this.resume()}if(ev==="readable"&&!this._readableState.endEmitted){var state=this._readableState;if(!state.readableListening){state.readableListening=true;state.emittedReadable=false;state.needReadable=true;if(!state.reading){processNextTick(nReadingNextTick,this)}else if(state.length){emitReadable(this,state)}}}return res};Readable.prototype.addListener=Readable.prototype.on;function nReadingNextTick(self){debug("readable nexttick read 0");self.read(0)}Readable.prototype.resume=function(){var state=this._readableState;if(!state.flowing){debug("resume");state.flowing=true;resume(this,state)}return this};function resume(stream,state){if(!state.resumeScheduled){state.resumeScheduled=true;processNextTick(resume_,stream,state)}}function resume_(stream,state){if(!state.reading){debug("resume read 0");stream.read(0)}state.resumeScheduled=false;stream.emit("resume");flow(stream);if(state.flowing&&!state.reading)stream.read(0)}Readable.prototype.pause=function(){debug("call pause flowing=%j",this._readableState.flowing);if(false!==this._readableState.flowing){debug("pause");this._readableState.flowing=false;this.emit("pause")}return this};function flow(stream){var state=stream._readableState;debug("flow",state.flowing);if(state.flowing){do{var chunk=stream.read()}while(null!==chunk&&state.flowing)}}Readable.prototype.wrap=function(stream){var state=this._readableState;var paused=false;var self=this;stream.on("end",function(){debug("wrapped end");if(state.decoder&&!state.ended){var chunk=state.decoder.end();if(chunk&&chunk.length)self.push(chunk)}self.push(null)});stream.on("data",function(chunk){debug("wrapped data");if(state.decoder)chunk=state.decoder.write(chunk);if(state.objectMode&&(chunk===null||chunk===undefined))return;else if(!state.objectMode&&(!chunk||!chunk.length))return;var ret=self.push(chunk);if(!ret){paused=true;stream.pause()}});for(var i in stream){if(this[i]===undefined&&typeof stream[i]==="function"){this[i]=function(method){return function(){return stream[method].apply(stream,arguments)}}(i)}}var events=["error","close","destroy","pause","resume"];forEach(events,function(ev){stream.on(ev,self.emit.bind(self,ev))});self._read=function(n){debug("wrapped _read",n);if(paused){paused=false;stream.resume()}};return self};Readable._fromList=fromList;function fromList(n,state){var list=state.buffer;var length=state.length;var stringMode=!!state.decoder;var objectMode=!!state.objectMode;var ret;if(list.length===0)return null;if(length===0)ret=null;else if(objectMode)ret=list.shift();else if(!n||n>=length){if(stringMode)ret=list.join("");else if(list.length===1)ret=list[0];else ret=Buffer.concat(list,length);list.length=0}else{if(n<list[0].length){var buf=list[0];ret=buf.slice(0,n);list[0]=buf.slice(n)}else if(n===list[0].length){ret=list.shift()}else{if(stringMode)ret="";else ret=new Buffer(n);var c=0;for(var i=0,l=list.length;i<l&&c<n;i++){var buf=list[0];var cpy=Math.min(n-c,buf.length);if(stringMode)ret+=buf.slice(0,cpy);else buf.copy(ret,c,0,cpy);if(cpy<buf.length)list[0]=buf.slice(cpy);else list.shift();c+=cpy}}}return ret}function endReadable(stream){var state=stream._readableState;if(state.length>0)throw new Error("endReadable called on non-empty stream");if(!state.endEmitted){state.ended=true;processNextTick(endReadableNT,state,stream)}}function endReadableNT(state,stream){if(!state.endEmitted&&state.length===0){state.endEmitted=true;stream.readable=false;stream.emit("end")}}function forEach(xs,f){for(var i=0,l=xs.length;i<l;i++){f(xs[i],i)}}function indexOf(xs,x){for(var i=0,l=xs.length;i<l;i++){if(xs[i]===x)return i}return-1}}).call(this,require("_process"))},{"./_stream_duplex":"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/lib/_stream_duplex.js",_process:"/data/github/geopackage-node/node_modules/browserify/node_modules/process/browser.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","core-util-is":"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/node_modules/core-util-is/lib/util.js",events:"/data/github/geopackage-node/node_modules/browserify/node_modules/events/events.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js",isarray:"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/node_modules/isarray/index.js","process-nextick-args":"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/node_modules/process-nextick-args/index.js","string_decoder/":"/data/github/geopackage-node/node_modules/browserify/node_modules/string_decoder/index.js",util:"/data/github/geopackage-node/node_modules/browserify/node_modules/browser-resolve/empty.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/lib/_stream_transform.js":[function(require,module,exports){"use strict";module.exports=Transform;var Duplex=require("./_stream_duplex");var util=require("core-util-is");util.inherits=require("inherits");util.inherits(Transform,Duplex);function TransformState(stream){this.afterTransform=function(er,data){return afterTransform(stream,er,data)};this.needTransform=false;this.transforming=false;this.writecb=null;this.writechunk=null;this.writeencoding=null}function afterTransform(stream,er,data){var ts=stream._transformState;ts.transforming=false;var cb=ts.writecb;if(!cb)return stream.emit("error",new Error("no writecb in Transform class"));ts.writechunk=null;ts.writecb=null;if(data!==null&&data!==undefined)stream.push(data);cb(er);var rs=stream._readableState;rs.reading=false;if(rs.needReadable||rs.length<rs.highWaterMark){stream._read(rs.highWaterMark)}}function Transform(options){if(!(this instanceof Transform))return new Transform(options);Duplex.call(this,options);this._transformState=new TransformState(this);var stream=this;this._readableState.needReadable=true;this._readableState.sync=false;if(options){if(typeof options.transform==="function")this._transform=options.transform;if(typeof options.flush==="function")this._flush=options.flush}this.once("prefinish",function(){if(typeof this._flush==="function")this._flush(function(er){done(stream,er)});else done(stream)})}Transform.prototype.push=function(chunk,encoding){this._transformState.needTransform=false;return Duplex.prototype.push.call(this,chunk,encoding)};Transform.prototype._transform=function(chunk,encoding,cb){throw new Error("not implemented")};Transform.prototype._write=function(chunk,encoding,cb){var ts=this._transformState;ts.writecb=cb;ts.writechunk=chunk;ts.writeencoding=encoding;if(!ts.transforming){var rs=this._readableState;if(ts.needTransform||rs.needReadable||rs.length<rs.highWaterMark)this._read(rs.highWaterMark)}};Transform.prototype._read=function(n){var ts=this._transformState;if(ts.writechunk!==null&&ts.writecb&&!ts.transforming){ts.transforming=true;this._transform(ts.writechunk,ts.writeencoding,ts.afterTransform)}else{ts.needTransform=true}};function done(stream,er){if(er)return stream.emit("error",er);var ws=stream._writableState;var ts=stream._transformState;if(ws.length)throw new Error("calling transform done when ws.length != 0");if(ts.transforming)throw new Error("calling transform done when still transforming");return stream.push(null)}},{"./_stream_duplex":"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/lib/_stream_duplex.js","core-util-is":"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/node_modules/core-util-is/lib/util.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/lib/_stream_writable.js":[function(require,module,exports){(function(process){"use strict";module.exports=Writable;var processNextTick=require("process-nextick-args");var asyncWrite=!process.browser&&["v0.10","v0.9."].indexOf(process.version.slice(0,5))>-1?setImmediate:processNextTick;var Buffer=require("buffer").Buffer;Writable.WritableState=WritableState;var util=require("core-util-is");util.inherits=require("inherits");var internalUtil={deprecate:require("util-deprecate")};var Stream;(function(){try{Stream=require("st"+"ream")}catch(_){}finally{if(!Stream)Stream=require("events").EventEmitter}})();var Buffer=require("buffer").Buffer;util.inherits(Writable,Stream);function nop(){}function WriteReq(chunk,encoding,cb){this.chunk=chunk;this.encoding=encoding;this.callback=cb;this.next=null}var Duplex;function WritableState(options,stream){Duplex=Duplex||require("./_stream_duplex");options=options||{};this.objectMode=!!options.objectMode;if(stream instanceof Duplex)this.objectMode=this.objectMode||!!options.writableObjectMode;var hwm=options.highWaterMark;var defaultHwm=this.objectMode?16:16*1024;this.highWaterMark=hwm||hwm===0?hwm:defaultHwm;this.highWaterMark=~~this.highWaterMark;this.needDrain=false;this.ending=false;this.ended=false;this.finished=false;var noDecode=options.decodeStrings===false;this.decodeStrings=!noDecode;this.defaultEncoding=options.defaultEncoding||"utf8";this.length=0;this.writing=false;this.corked=0;this.sync=true;this.bufferProcessing=false;this.onwrite=function(er){onwrite(stream,er)};this.writecb=null;this.writelen=0;this.bufferedRequest=null;this.lastBufferedRequest=null;this.pendingcb=0;this.prefinished=false;this.errorEmitted=false;this.bufferedRequestCount=0;this.corkedRequestsFree=new CorkedRequest(this);this.corkedRequestsFree.next=new CorkedRequest(this)}WritableState.prototype.getBuffer=function writableStateGetBuffer(){var current=this.bufferedRequest;var out=[];while(current){out.push(current);current=current.next}return out};(function(){try{Object.defineProperty(WritableState.prototype,"buffer",{get:internalUtil.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer "+"instead.")})}catch(_){}})();var Duplex;function Writable(options){Duplex=Duplex||require("./_stream_duplex");if(!(this instanceof Writable)&&!(this instanceof Duplex))return new Writable(options);this._writableState=new WritableState(options,this);this.writable=true;if(options){if(typeof options.write==="function")this._write=options.write;if(typeof options.writev==="function")this._writev=options.writev}Stream.call(this)}Writable.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe. Not readable."))};function writeAfterEnd(stream,cb){var er=new Error("write after end");stream.emit("error",er);processNextTick(cb,er)}function validChunk(stream,state,chunk,cb){var valid=true;if(!Buffer.isBuffer(chunk)&&typeof chunk!=="string"&&chunk!==null&&chunk!==undefined&&!state.objectMode){var er=new TypeError("Invalid non-string/buffer chunk");stream.emit("error",er);processNextTick(cb,er);valid=false}return valid}Writable.prototype.write=function(chunk,encoding,cb){var state=this._writableState;var ret=false;if(typeof encoding==="function"){cb=encoding;encoding=null}if(Buffer.isBuffer(chunk))encoding="buffer";else if(!encoding)encoding=state.defaultEncoding;if(typeof cb!=="function")cb=nop;if(state.ended)writeAfterEnd(this,cb);else if(validChunk(this,state,chunk,cb)){state.pendingcb++;ret=writeOrBuffer(this,state,chunk,encoding,cb)}return ret};Writable.prototype.cork=function(){var state=this._writableState;state.corked++};Writable.prototype.uncork=function(){var state=this._writableState;if(state.corked){state.corked--;if(!state.writing&&!state.corked&&!state.finished&&!state.bufferProcessing&&state.bufferedRequest)clearBuffer(this,state)}};Writable.prototype.setDefaultEncoding=function setDefaultEncoding(encoding){if(typeof encoding==="string")encoding=encoding.toLowerCase();if(!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((encoding+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+encoding);this._writableState.defaultEncoding=encoding};function decodeChunk(state,chunk,encoding){if(!state.objectMode&&state.decodeStrings!==false&&typeof chunk==="string"){chunk=new Buffer(chunk,encoding)}return chunk}function writeOrBuffer(stream,state,chunk,encoding,cb){chunk=decodeChunk(state,chunk,encoding);if(Buffer.isBuffer(chunk))encoding="buffer";var len=state.objectMode?1:chunk.length;state.length+=len;var ret=state.length<state.highWaterMark;if(!ret)state.needDrain=true;if(state.writing||state.corked){var last=state.lastBufferedRequest;state.lastBufferedRequest=new WriteReq(chunk,encoding,cb);if(last){last.next=state.lastBufferedRequest}else{state.bufferedRequest=state.lastBufferedRequest}state.bufferedRequestCount+=1}else{doWrite(stream,state,false,len,chunk,encoding,cb)}return ret}function doWrite(stream,state,writev,len,chunk,encoding,cb){state.writelen=len;state.writecb=cb;state.writing=true;state.sync=true;if(writev)stream._writev(chunk,state.onwrite);else stream._write(chunk,encoding,state.onwrite);state.sync=false}function onwriteError(stream,state,sync,er,cb){--state.pendingcb;if(sync)processNextTick(cb,er);else cb(er);stream._writableState.errorEmitted=true;stream.emit("error",er)}function onwriteStateUpdate(state){state.writing=false;state.writecb=null;state.length-=state.writelen;state.writelen=0}function onwrite(stream,er){var state=stream._writableState;var sync=state.sync;var cb=state.writecb;onwriteStateUpdate(state);if(er)onwriteError(stream,state,sync,er,cb);else{var finished=needFinish(state);if(!finished&&!state.corked&&!state.bufferProcessing&&state.bufferedRequest){clearBuffer(stream,state)}if(sync){asyncWrite(afterWrite,stream,state,finished,cb)}else{afterWrite(stream,state,finished,cb)}}}function afterWrite(stream,state,finished,cb){if(!finished)onwriteDrain(stream,state);state.pendingcb--;cb();finishMaybe(stream,state)}function onwriteDrain(stream,state){if(state.length===0&&state.needDrain){state.needDrain=false;stream.emit("drain")}}function clearBuffer(stream,state){state.bufferProcessing=true;var entry=state.bufferedRequest;if(stream._writev&&entry&&entry.next){var l=state.bufferedRequestCount;var buffer=new Array(l);var holder=state.corkedRequestsFree;holder.entry=entry;var count=0;while(entry){buffer[count]=entry;entry=entry.next;count+=1}doWrite(stream,state,true,state.length,buffer,"",holder.finish);state.pendingcb++;state.lastBufferedRequest=null;state.corkedRequestsFree=holder.next;holder.next=null}else{while(entry){var chunk=entry.chunk;var encoding=entry.encoding;var cb=entry.callback;var len=state.objectMode?1:chunk.length;doWrite(stream,state,false,len,chunk,encoding,cb);entry=entry.next;if(state.writing){break}}if(entry===null)state.lastBufferedRequest=null}state.bufferedRequestCount=0;state.bufferedRequest=entry;state.bufferProcessing=false}Writable.prototype._write=function(chunk,encoding,cb){cb(new Error("not implemented"))};Writable.prototype._writev=null;Writable.prototype.end=function(chunk,encoding,cb){var state=this._writableState;if(typeof chunk==="function"){cb=chunk;chunk=null;encoding=null}else if(typeof encoding==="function"){cb=encoding;encoding=null}if(chunk!==null&&chunk!==undefined)this.write(chunk,encoding);if(state.corked){state.corked=1;this.uncork()}if(!state.ending&&!state.finished)endWritable(this,state,cb)};function needFinish(state){return state.ending&&state.length===0&&state.bufferedRequest===null&&!state.finished&&!state.writing}function prefinish(stream,state){if(!state.prefinished){state.prefinished=true;stream.emit("prefinish")}}function finishMaybe(stream,state){var need=needFinish(state);if(need){if(state.pendingcb===0){prefinish(stream,state);state.finished=true;stream.emit("finish")}else{prefinish(stream,state)}}return need}function endWritable(stream,state,cb){state.ending=true;finishMaybe(stream,state);if(cb){if(state.finished)processNextTick(cb);else stream.once("finish",cb)}state.ended=true;stream.writable=false}function CorkedRequest(state){var _this=this;this.next=null;this.entry=null;this.finish=function(err){var entry=_this.entry;_this.entry=null;while(entry){var cb=entry.callback;state.pendingcb--;cb(err);entry=entry.next}if(state.corkedRequestsFree){state.corkedRequestsFree.next=_this}else{state.corkedRequestsFree=_this}}}}).call(this,require("_process"))},{"./_stream_duplex":"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/lib/_stream_duplex.js",_process:"/data/github/geopackage-node/node_modules/browserify/node_modules/process/browser.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js","core-util-is":"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/node_modules/core-util-is/lib/util.js",events:"/data/github/geopackage-node/node_modules/browserify/node_modules/events/events.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js","process-nextick-args":"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/node_modules/process-nextick-args/index.js","util-deprecate":"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/node_modules/util-deprecate/browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/node_modules/core-util-is/lib/util.js":[function(require,module,exports){(function(Buffer){function isArray(arg){if(Array.isArray){return Array.isArray(arg)}return objectToString(arg)==="[object Array]"}exports.isArray=isArray;function isBoolean(arg){return typeof arg==="boolean"}exports.isBoolean=isBoolean;function isNull(arg){return arg===null}exports.isNull=isNull;function isNullOrUndefined(arg){return arg==null}exports.isNullOrUndefined=isNullOrUndefined;function isNumber(arg){return typeof arg==="number"}exports.isNumber=isNumber;function isString(arg){return typeof arg==="string"}exports.isString=isString;function isSymbol(arg){return typeof arg==="symbol"}exports.isSymbol=isSymbol;function isUndefined(arg){return arg===void 0}exports.isUndefined=isUndefined;function isRegExp(re){return objectToString(re)==="[object RegExp]"}exports.isRegExp=isRegExp;function isObject(arg){return typeof arg==="object"&&arg!==null}exports.isObject=isObject;function isDate(d){return objectToString(d)==="[object Date]"}exports.isDate=isDate;function isError(e){return objectToString(e)==="[object Error]"||e instanceof Error}exports.isError=isError;function isFunction(arg){return typeof arg==="function"}exports.isFunction=isFunction;function isPrimitive(arg){return arg===null||typeof arg==="boolean"||typeof arg==="number"||typeof arg==="string"||typeof arg==="symbol"||typeof arg==="undefined"}exports.isPrimitive=isPrimitive;exports.isBuffer=Buffer.isBuffer;function objectToString(o){return Object.prototype.toString.call(o)}}).call(this,{isBuffer:require("../../../../insert-module-globals/node_modules/is-buffer/index.js")})},{"../../../../insert-module-globals/node_modules/is-buffer/index.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/insert-module-globals/node_modules/is-buffer/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/node_modules/isarray/index.js":[function(require,module,exports){arguments[4]["/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/node_modules/isarray/index.js"][0].apply(exports,arguments)},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/node_modules/process-nextick-args/index.js":[function(require,module,exports){(function(process){"use strict";if(!process.version||process.version.indexOf("v0.")===0||process.version.indexOf("v1.")===0&&process.version.indexOf("v1.8.")!==0){module.exports=nextTick}else{module.exports=process.nextTick}function nextTick(fn){var args=new Array(arguments.length-1);var i=0;while(i<args.length){args[i++]=arguments[i]}process.nextTick(function afterTick(){fn.apply(null,args)})}}).call(this,require("_process"))},{_process:"/data/github/geopackage-node/node_modules/browserify/node_modules/process/browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/node_modules/util-deprecate/browser.js":[function(require,module,exports){(function(global){module.exports=deprecate;function deprecate(fn,msg){if(config("noDeprecation")){return fn}var warned=false;function deprecated(){if(!warned){if(config("throwDeprecation")){throw new Error(msg)}else if(config("traceDeprecation")){console.trace(msg)}else{console.warn(msg)}warned=true}return fn.apply(this,arguments)}return deprecated}function config(name){try{if(!global.localStorage)return false}catch(_){return false}var val=global.localStorage[name];if(null==val)return false;return String(val).toLowerCase()==="true"}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/passthrough.js":[function(require,module,exports){module.exports=require("./lib/_stream_passthrough.js")},{"./lib/_stream_passthrough.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/lib/_stream_passthrough.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/readable.js":[function(require,module,exports){var Stream=function(){try{return require("st"+"ream")}catch(_){}}();exports=module.exports=require("./lib/_stream_readable.js");exports.Stream=Stream||exports;exports.Readable=exports;exports.Writable=require("./lib/_stream_writable.js");exports.Duplex=require("./lib/_stream_duplex.js");exports.Transform=require("./lib/_stream_transform.js");exports.PassThrough=require("./lib/_stream_passthrough.js")},{"./lib/_stream_duplex.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/lib/_stream_duplex.js","./lib/_stream_passthrough.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/lib/_stream_passthrough.js","./lib/_stream_readable.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/lib/_stream_readable.js","./lib/_stream_transform.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/lib/_stream_transform.js","./lib/_stream_writable.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/lib/_stream_writable.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/transform.js":[function(require,module,exports){module.exports=require("./lib/_stream_transform.js")},{"./lib/_stream_transform.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/lib/_stream_transform.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/writable.js":[function(require,module,exports){module.exports=require("./lib/_stream_writable.js")},{"./lib/_stream_writable.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/lib/_stream_writable.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/stream-browserify/index.js":[function(require,module,exports){module.exports=Stream;var EE=require("events").EventEmitter;var inherits=require("inherits");inherits(Stream,EE);Stream.Readable=require("readable-stream/readable.js");Stream.Writable=require("readable-stream/writable.js");Stream.Duplex=require("readable-stream/duplex.js");Stream.Transform=require("readable-stream/transform.js");Stream.PassThrough=require("readable-stream/passthrough.js");Stream.Stream=Stream;function Stream(){EE.call(this)}Stream.prototype.pipe=function(dest,options){var source=this;function ondata(chunk){if(dest.writable){if(false===dest.write(chunk)&&source.pause){source.pause()}}}source.on("data",ondata);function ondrain(){if(source.readable&&source.resume){source.resume()}}dest.on("drain",ondrain);if(!dest._isStdio&&(!options||options.end!==false)){source.on("end",onend);source.on("close",onclose)}var didOnEnd=false;function onend(){if(didOnEnd)return;didOnEnd=true;dest.end()}function onclose(){if(didOnEnd)return;didOnEnd=true;if(typeof dest.destroy==="function")dest.destroy()}function onerror(er){cleanup();if(EE.listenerCount(this,"error")===0){throw er}}source.on("error",onerror);dest.on("error",onerror);function cleanup(){source.removeListener("data",ondata);dest.removeListener("drain",ondrain);source.removeListener("end",onend);source.removeListener("close",onclose);source.removeListener("error",onerror);dest.removeListener("error",onerror);source.removeListener("end",cleanup);source.removeListener("close",cleanup);dest.removeListener("close",cleanup)}source.on("end",cleanup);source.on("close",cleanup);dest.on("close",cleanup);dest.emit("pipe",source);return dest}},{events:"/data/github/geopackage-node/node_modules/browserify/node_modules/events/events.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js","readable-stream/duplex.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/duplex.js","readable-stream/passthrough.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/passthrough.js","readable-stream/readable.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/readable.js","readable-stream/transform.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/transform.js","readable-stream/writable.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/readable-stream/writable.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/string_decoder/index.js":[function(require,module,exports){
  21. var Buffer=require("buffer").Buffer;var isBufferEncoding=Buffer.isEncoding||function(encoding){switch(encoding&&encoding.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return true;default:return false}};function assertEncoding(encoding){if(encoding&&!isBufferEncoding(encoding)){throw new Error("Unknown encoding: "+encoding)}}var StringDecoder=exports.StringDecoder=function(encoding){this.encoding=(encoding||"utf8").toLowerCase().replace(/[-_]/,"");assertEncoding(encoding);switch(this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2;this.detectIncompleteChar=utf16DetectIncompleteChar;break;case"base64":this.surrogateSize=3;this.detectIncompleteChar=base64DetectIncompleteChar;break;default:this.write=passThroughWrite;return}this.charBuffer=new Buffer(6);this.charReceived=0;this.charLength=0};StringDecoder.prototype.write=function(buffer){var charStr="";while(this.charLength){var available=buffer.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:buffer.length;buffer.copy(this.charBuffer,this.charReceived,0,available);this.charReceived+=available;if(this.charReceived<this.charLength){return""}buffer=buffer.slice(available,buffer.length);charStr=this.charBuffer.slice(0,this.charLength).toString(this.encoding);var charCode=charStr.charCodeAt(charStr.length-1);if(charCode>=55296&&charCode<=56319){this.charLength+=this.surrogateSize;charStr="";continue}this.charReceived=this.charLength=0;if(buffer.length===0){return charStr}break}this.detectIncompleteChar(buffer);var end=buffer.length;if(this.charLength){buffer.copy(this.charBuffer,0,buffer.length-this.charReceived,end);end-=this.charReceived}charStr+=buffer.toString(this.encoding,0,end);var end=charStr.length-1;var charCode=charStr.charCodeAt(end);if(charCode>=55296&&charCode<=56319){var size=this.surrogateSize;this.charLength+=size;this.charReceived+=size;this.charBuffer.copy(this.charBuffer,size,0,size);buffer.copy(this.charBuffer,0,0,size);return charStr.substring(0,end)}return charStr};StringDecoder.prototype.detectIncompleteChar=function(buffer){var i=buffer.length>=3?3:buffer.length;for(;i>0;i--){var c=buffer[buffer.length-i];if(i==1&&c>>5==6){this.charLength=2;break}if(i<=2&&c>>4==14){this.charLength=3;break}if(i<=3&&c>>3==30){this.charLength=4;break}}this.charReceived=i};StringDecoder.prototype.end=function(buffer){var res="";if(buffer&&buffer.length)res=this.write(buffer);if(this.charReceived){var cr=this.charReceived;var buf=this.charBuffer;var enc=this.encoding;res+=buf.slice(0,cr).toString(enc)}return res};function passThroughWrite(buffer){return buffer.toString(this.encoding)}function utf16DetectIncompleteChar(buffer){this.charReceived=buffer.length%2;this.charLength=this.charReceived?2:0}function base64DetectIncompleteChar(buffer){this.charReceived=buffer.length%3;this.charLength=this.charReceived?3:0}},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/util/support/isBufferBrowser.js":[function(require,module,exports){module.exports=function isBuffer(arg){return arg&&typeof arg==="object"&&typeof arg.copy==="function"&&typeof arg.fill==="function"&&typeof arg.readUInt8==="function"}},{}],"/data/github/geopackage-node/node_modules/browserify/node_modules/util/util.js":[function(require,module,exports){(function(process,global){var formatRegExp=/%[sdj%]/g;exports.format=function(f){if(!isString(f)){var objects=[];for(var i=0;i<arguments.length;i++){objects.push(inspect(arguments[i]))}return objects.join(" ")}var i=1;var args=arguments;var len=args.length;var str=String(f).replace(formatRegExp,function(x){if(x==="%%")return"%";if(i>=len)return x;switch(x){case"%s":return String(args[i++]);case"%d":return Number(args[i++]);case"%j":try{return JSON.stringify(args[i++])}catch(_){return"[Circular]"}default:return x}});for(var x=args[i];i<len;x=args[++i]){if(isNull(x)||!isObject(x)){str+=" "+x}else{str+=" "+inspect(x)}}return str};exports.deprecate=function(fn,msg){if(isUndefined(global.process)){return function(){return exports.deprecate(fn,msg).apply(this,arguments)}}if(process.noDeprecation===true){return fn}var warned=false;function deprecated(){if(!warned){if(process.throwDeprecation){throw new Error(msg)}else if(process.traceDeprecation){console.trace(msg)}else{console.error(msg)}warned=true}return fn.apply(this,arguments)}return deprecated};var debugs={};var debugEnviron;exports.debuglog=function(set){if(isUndefined(debugEnviron))debugEnviron=process.env.NODE_DEBUG||"";set=set.toUpperCase();if(!debugs[set]){if(new RegExp("\\b"+set+"\\b","i").test(debugEnviron)){var pid=process.pid;debugs[set]=function(){var msg=exports.format.apply(exports,arguments);console.error("%s %d: %s",set,pid,msg)}}else{debugs[set]=function(){}}}return debugs[set]};function inspect(obj,opts){var ctx={seen:[],stylize:stylizeNoColor};if(arguments.length>=3)ctx.depth=arguments[2];if(arguments.length>=4)ctx.colors=arguments[3];if(isBoolean(opts)){ctx.showHidden=opts}else if(opts){exports._extend(ctx,opts)}if(isUndefined(ctx.showHidden))ctx.showHidden=false;if(isUndefined(ctx.depth))ctx.depth=2;if(isUndefined(ctx.colors))ctx.colors=false;if(isUndefined(ctx.customInspect))ctx.customInspect=true;if(ctx.colors)ctx.stylize=stylizeWithColor;return formatValue(ctx,obj,ctx.depth)}exports.inspect=inspect;inspect.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]};inspect.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"};function stylizeWithColor(str,styleType){var style=inspect.styles[styleType];if(style){return"["+inspect.colors[style][0]+"m"+str+"["+inspect.colors[style][1]+"m"}else{return str}}function stylizeNoColor(str,styleType){return str}function arrayToHash(array){var hash={};array.forEach(function(val,idx){hash[val]=true});return hash}function formatValue(ctx,value,recurseTimes){if(ctx.customInspect&&value&&isFunction(value.inspect)&&value.inspect!==exports.inspect&&!(value.constructor&&value.constructor.prototype===value)){var ret=value.inspect(recurseTimes,ctx);if(!isString(ret)){ret=formatValue(ctx,ret,recurseTimes)}return ret}var primitive=formatPrimitive(ctx,value);if(primitive){return primitive}var keys=Object.keys(value);var visibleKeys=arrayToHash(keys);if(ctx.showHidden){keys=Object.getOwnPropertyNames(value)}if(isError(value)&&(keys.indexOf("message")>=0||keys.indexOf("description")>=0)){return formatError(value)}if(keys.length===0){if(isFunction(value)){var name=value.name?": "+value.name:"";return ctx.stylize("[Function"+name+"]","special")}if(isRegExp(value)){return ctx.stylize(RegExp.prototype.toString.call(value),"regexp")}if(isDate(value)){return ctx.stylize(Date.prototype.toString.call(value),"date")}if(isError(value)){return formatError(value)}}var base="",array=false,braces=["{","}"];if(isArray(value)){array=true;braces=["[","]"]}if(isFunction(value)){var n=value.name?": "+value.name:"";base=" [Function"+n+"]"}if(isRegExp(value)){base=" "+RegExp.prototype.toString.call(value)}if(isDate(value)){base=" "+Date.prototype.toUTCString.call(value)}if(isError(value)){base=" "+formatError(value)}if(keys.length===0&&(!array||value.length==0)){return braces[0]+base+braces[1]}if(recurseTimes<0){if(isRegExp(value)){return ctx.stylize(RegExp.prototype.toString.call(value),"regexp")}else{return ctx.stylize("[Object]","special")}}ctx.seen.push(value);var output;if(array){output=formatArray(ctx,value,recurseTimes,visibleKeys,keys)}else{output=keys.map(function(key){return formatProperty(ctx,value,recurseTimes,visibleKeys,key,array)})}ctx.seen.pop();return reduceToSingleString(output,base,braces)}function formatPrimitive(ctx,value){if(isUndefined(value))return ctx.stylize("undefined","undefined");if(isString(value)){var simple="'"+JSON.stringify(value).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return ctx.stylize(simple,"string")}if(isNumber(value))return ctx.stylize(""+value,"number");if(isBoolean(value))return ctx.stylize(""+value,"boolean");if(isNull(value))return ctx.stylize("null","null")}function formatError(value){return"["+Error.prototype.toString.call(value)+"]"}function formatArray(ctx,value,recurseTimes,visibleKeys,keys){var output=[];for(var i=0,l=value.length;i<l;++i){if(hasOwnProperty(value,String(i))){output.push(formatProperty(ctx,value,recurseTimes,visibleKeys,String(i),true))}else{output.push("")}}keys.forEach(function(key){if(!key.match(/^\d+$/)){output.push(formatProperty(ctx,value,recurseTimes,visibleKeys,key,true))}});return output}function formatProperty(ctx,value,recurseTimes,visibleKeys,key,array){var name,str,desc;desc=Object.getOwnPropertyDescriptor(value,key)||{value:value[key]};if(desc.get){if(desc.set){str=ctx.stylize("[Getter/Setter]","special")}else{str=ctx.stylize("[Getter]","special")}}else{if(desc.set){str=ctx.stylize("[Setter]","special")}}if(!hasOwnProperty(visibleKeys,key)){name="["+key+"]"}if(!str){if(ctx.seen.indexOf(desc.value)<0){if(isNull(recurseTimes)){str=formatValue(ctx,desc.value,null)}else{str=formatValue(ctx,desc.value,recurseTimes-1)}if(str.indexOf("\n")>-1){if(array){str=str.split("\n").map(function(line){return" "+line}).join("\n").substr(2)}else{str="\n"+str.split("\n").map(function(line){return" "+line}).join("\n")}}}else{str=ctx.stylize("[Circular]","special")}}if(isUndefined(name)){if(array&&key.match(/^\d+$/)){return str}name=JSON.stringify(""+key);if(name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)){name=name.substr(1,name.length-2);name=ctx.stylize(name,"name")}else{name=name.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'");name=ctx.stylize(name,"string")}}return name+": "+str}function reduceToSingleString(output,base,braces){var numLinesEst=0;var length=output.reduce(function(prev,cur){numLinesEst++;if(cur.indexOf("\n")>=0)numLinesEst++;return prev+cur.replace(/\u001b\[\d\d?m/g,"").length+1},0);if(length>60){return braces[0]+(base===""?"":base+"\n ")+" "+output.join(",\n ")+" "+braces[1]}return braces[0]+base+" "+output.join(", ")+" "+braces[1]}function isArray(ar){return Array.isArray(ar)}exports.isArray=isArray;function isBoolean(arg){return typeof arg==="boolean"}exports.isBoolean=isBoolean;function isNull(arg){return arg===null}exports.isNull=isNull;function isNullOrUndefined(arg){return arg==null}exports.isNullOrUndefined=isNullOrUndefined;function isNumber(arg){return typeof arg==="number"}exports.isNumber=isNumber;function isString(arg){return typeof arg==="string"}exports.isString=isString;function isSymbol(arg){return typeof arg==="symbol"}exports.isSymbol=isSymbol;function isUndefined(arg){return arg===void 0}exports.isUndefined=isUndefined;function isRegExp(re){return isObject(re)&&objectToString(re)==="[object RegExp]"}exports.isRegExp=isRegExp;function isObject(arg){return typeof arg==="object"&&arg!==null}exports.isObject=isObject;function isDate(d){return isObject(d)&&objectToString(d)==="[object Date]"}exports.isDate=isDate;function isError(e){return isObject(e)&&(objectToString(e)==="[object Error]"||e instanceof Error)}exports.isError=isError;function isFunction(arg){return typeof arg==="function"}exports.isFunction=isFunction;function isPrimitive(arg){return arg===null||typeof arg==="boolean"||typeof arg==="number"||typeof arg==="string"||typeof arg==="symbol"||typeof arg==="undefined"}exports.isPrimitive=isPrimitive;exports.isBuffer=require("./support/isBuffer");function objectToString(o){return Object.prototype.toString.call(o)}function pad(n){return n<10?"0"+n.toString(10):n.toString(10)}var months=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function timestamp(){var d=new Date;var time=[pad(d.getHours()),pad(d.getMinutes()),pad(d.getSeconds())].join(":");return[d.getDate(),months[d.getMonth()],time].join(" ")}exports.log=function(){console.log("%s - %s",timestamp(),exports.format.apply(exports,arguments))};exports.inherits=require("inherits");exports._extend=function(origin,add){if(!add||!isObject(add))return origin;var keys=Object.keys(add);var i=keys.length;while(i--){origin[keys[i]]=add[keys[i]]}return origin};function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}}).call(this,require("_process"),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./support/isBuffer":"/data/github/geopackage-node/node_modules/browserify/node_modules/util/support/isBufferBrowser.js",_process:"/data/github/geopackage-node/node_modules/browserify/node_modules/process/browser.js",inherits:"/data/github/geopackage-node/node_modules/browserify/node_modules/inherits/inherits_browser.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/vm-browserify/index.js":[function(require,module,exports){var indexOf=require("indexof");var Object_keys=function(obj){if(Object.keys)return Object.keys(obj);else{var res=[];for(var key in obj)res.push(key);return res}};var forEach=function(xs,fn){if(xs.forEach)return xs.forEach(fn);else for(var i=0;i<xs.length;i++){fn(xs[i],i,xs)}};var defineProp=function(){try{Object.defineProperty({},"_",{});return function(obj,name,value){Object.defineProperty(obj,name,{writable:true,enumerable:false,configurable:true,value:value})}}catch(e){return function(obj,name,value){obj[name]=value}}}();var globals=["Array","Boolean","Date","Error","EvalError","Function","Infinity","JSON","Math","NaN","Number","Object","RangeError","ReferenceError","RegExp","String","SyntaxError","TypeError","URIError","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","eval","isFinite","isNaN","parseFloat","parseInt","undefined","unescape"];function Context(){}Context.prototype={};var Script=exports.Script=function NodeScript(code){if(!(this instanceof Script))return new Script(code);this.code=code};Script.prototype.runInContext=function(context){if(!(context instanceof Context)){throw new TypeError("needs a 'context' argument.")}var iframe=document.createElement("iframe");if(!iframe.style)iframe.style={};iframe.style.display="none";document.body.appendChild(iframe);var win=iframe.contentWindow;var wEval=win.eval,wExecScript=win.execScript;if(!wEval&&wExecScript){wExecScript.call(win,"null");wEval=win.eval}forEach(Object_keys(context),function(key){win[key]=context[key]});forEach(globals,function(key){if(context[key]){win[key]=context[key]}});var winKeys=Object_keys(win);var res=wEval.call(win,this.code);forEach(Object_keys(win),function(key){if(key in context||indexOf(winKeys,key)===-1){context[key]=win[key]}});forEach(globals,function(key){if(!(key in context)){defineProp(context,key,win[key])}});document.body.removeChild(iframe);return res};Script.prototype.runInThisContext=function(){return eval(this.code)};Script.prototype.runInNewContext=function(context){var ctx=Script.createContext(context);var res=this.runInContext(ctx);forEach(Object_keys(ctx),function(key){context[key]=ctx[key]});return res};forEach(Object_keys(Script.prototype),function(name){exports[name]=Script[name]=function(code){var s=Script(code);return s[name].apply(s,[].slice.call(arguments,1))}});exports.createScript=function(code){return exports.Script(code)};exports.createContext=Script.createContext=function(context){var copy=new Context;if(typeof context==="object"){forEach(Object_keys(context),function(key){copy[key]=context[key]})}return copy}},{indexof:"/data/github/geopackage-node/node_modules/browserify/node_modules/vm-browserify/node_modules/indexof/index.js"}],"/data/github/geopackage-node/node_modules/browserify/node_modules/vm-browserify/node_modules/indexof/index.js":[function(require,module,exports){var indexOf=[].indexOf;module.exports=function(arr,obj){if(indexOf)return arr.indexOf(obj);for(var i=0;i<arr.length;++i){if(arr[i]===obj)return i}return-1}},{}],"/data/github/geopackage-node/node_modules/file-type/index.js":[function(require,module,exports){"use strict";module.exports=function(buf){if(!(buf&&buf.length>1)){return null}if(buf[0]===255&&buf[1]===216&&buf[2]===255){return{ext:"jpg",mime:"image/jpeg"}}if(buf[0]===137&&buf[1]===80&&buf[2]===78&&buf[3]===71){return{ext:"png",mime:"image/png"}}if(buf[0]===71&&buf[1]===73&&buf[2]===70){return{ext:"gif",mime:"image/gif"}}if(buf[8]===87&&buf[9]===69&&buf[10]===66&&buf[11]===80){return{ext:"webp",mime:"image/webp"}}if((buf[0]===73&&buf[1]===73&&buf[2]===42&&buf[3]===0||buf[0]===77&&buf[1]===77&&buf[2]===0&&buf[3]===42)&&buf[8]===67&&buf[9]===82){return{ext:"cr2",mime:"image/x-canon-cr2"}}if(buf[0]===73&&buf[1]===73&&buf[2]===42&&buf[3]===0||buf[0]===77&&buf[1]===77&&buf[2]===0&&buf[3]===42){return{ext:"tif",mime:"image/tiff"}}if(buf[0]===66&&buf[1]===77){return{ext:"bmp",mime:"image/bmp"}}if(buf[0]===73&&buf[1]===73&&buf[2]===188){return{ext:"jxr",mime:"image/vnd.ms-photo"}}if(buf[0]===56&&buf[1]===66&&buf[2]===80&&buf[3]===83){return{ext:"psd",mime:"image/vnd.adobe.photoshop"}}if(buf[0]===80&&buf[1]===75&&buf[2]===3&&buf[3]===4&&buf[30]===109&&buf[31]===105&&buf[32]===109&&buf[33]===101&&buf[34]===116&&buf[35]===121&&buf[36]===112&&buf[37]===101&&buf[38]===97&&buf[39]===112&&buf[40]===112&&buf[41]===108&&buf[42]===105&&buf[43]===99&&buf[44]===97&&buf[45]===116&&buf[46]===105&&buf[47]===111&&buf[48]===110&&buf[49]===47&&buf[50]===101&&buf[51]===112&&buf[52]===117&&buf[53]===98&&buf[54]===43&&buf[55]===122&&buf[56]===105&&buf[57]===112){return{ext:"epub",mime:"application/epub+zip"}}if(buf[0]===80&&buf[1]===75&&buf[2]===3&&buf[3]===4&&buf[30]===77&&buf[31]===69&&buf[32]===84&&buf[33]===65&&buf[34]===45&&buf[35]===73&&buf[36]===78&&buf[37]===70&&buf[38]===47&&buf[39]===109&&buf[40]===111&&buf[41]===122&&buf[42]===105&&buf[43]===108&&buf[44]===108&&buf[45]===97&&buf[46]===46&&buf[47]===114&&buf[48]===115&&buf[49]===97){return{ext:"xpi",mime:"application/x-xpinstall"}}if(buf[0]===80&&buf[1]===75&&(buf[2]===3||buf[2]===5||buf[2]===7)&&(buf[3]===4||buf[3]===6||buf[3]===8)){return{ext:"zip",mime:"application/zip"}}if(buf[257]===117&&buf[258]===115&&buf[259]===116&&buf[260]===97&&buf[261]===114){return{ext:"tar",mime:"application/x-tar"}}if(buf[0]===82&&buf[1]===97&&buf[2]===114&&buf[3]===33&&buf[4]===26&&buf[5]===7&&(buf[6]===0||buf[6]===1)){return{ext:"rar",mime:"application/x-rar-compressed"}}if(buf[0]===31&&buf[1]===139&&buf[2]===8){return{ext:"gz",mime:"application/gzip"}}if(buf[0]===66&&buf[1]===90&&buf[2]===104){return{ext:"bz2",mime:"application/x-bzip2"}}if(buf[0]===55&&buf[1]===122&&buf[2]===188&&buf[3]===175&&buf[4]===39&&buf[5]===28){return{ext:"7z",mime:"application/x-7z-compressed"}}if(buf[0]===120&&buf[1]===1){return{ext:"dmg",mime:"application/x-apple-diskimage"}}if(buf[0]===0&&buf[1]===0&&buf[2]===0&&(buf[3]===24||buf[3]===32)&&buf[4]===102&&buf[5]===116&&buf[6]===121&&buf[7]===112||buf[0]===51&&buf[1]===103&&buf[2]===112&&buf[3]===53||buf[0]===0&&buf[1]===0&&buf[2]===0&&buf[3]===28&&buf[4]===102&&buf[5]===116&&buf[6]===121&&buf[7]===112&&buf[8]===109&&buf[9]===112&&buf[10]===52&&buf[11]===50&&buf[16]===109&&buf[17]===112&&buf[18]===52&&buf[19]===49&&buf[20]===109&&buf[21]===112&&buf[22]===52&&buf[23]===50&&buf[24]===105&&buf[25]===115&&buf[26]===111&&buf[27]===109||buf[0]===0&&buf[1]===0&&buf[2]===0&&buf[3]===28&&buf[4]===102&&buf[5]===116&&buf[6]===121&&buf[7]===112&&buf[8]===105&&buf[9]===115&&buf[10]===111&&buf[11]===109||buf[0]===0&&buf[1]===0&&buf[2]===0&&buf[3]===28&&buf[4]===102&&buf[5]===116&&buf[6]===121&&buf[7]===112&&buf[8]===109&&buf[9]===112&&buf[10]===52&&buf[11]===50&&buf[12]===0&&buf[13]===0&&buf[14]===0&&buf[15]===0){return{ext:"mp4",mime:"video/mp4"}}if(buf[0]===0&&buf[1]===0&&buf[2]===0&&buf[3]===28&&buf[4]===102&&buf[5]===116&&buf[6]===121&&buf[7]===112&&buf[8]===77&&buf[9]===52&&buf[10]===86){return{ext:"m4v",mime:"video/x-m4v"}}if(buf[0]===77&&buf[1]===84&&buf[2]===104&&buf[3]===100){return{ext:"mid",mime:"audio/midi"}}if(buf[31]===109&&buf[32]===97&&buf[33]===116&&buf[34]===114&&buf[35]===111&&buf[36]===115&&buf[37]===107&&buf[38]===97){return{ext:"mkv",mime:"video/x-matroska"}}if(buf[0]===26&&buf[1]===69&&buf[2]===223&&buf[3]===163){return{ext:"webm",mime:"video/webm"}}if(buf[0]===0&&buf[1]===0&&buf[2]===0&&buf[3]===20&&buf[4]===102&&buf[5]===116&&buf[6]===121&&buf[7]===112){return{ext:"mov",mime:"video/quicktime"}}if(buf[0]===82&&buf[1]===73&&buf[2]===70&&buf[3]===70&&buf[8]===65&&buf[9]===86&&buf[10]===73){return{ext:"avi",mime:"video/x-msvideo"}}if(buf[0]===48&&buf[1]===38&&buf[2]===178&&buf[3]===117&&buf[4]===142&&buf[5]===102&&buf[6]===207&&buf[7]===17&&buf[8]===166&&buf[9]===217){return{ext:"wmv",mime:"video/x-ms-wmv"}}if(buf[0]===0&&buf[1]===0&&buf[2]===1&&buf[3].toString(16)[0]==="b"){return{ext:"mpg",mime:"video/mpeg"}}if(buf[0]===73&&buf[1]===68&&buf[2]===51||buf[0]===255&&buf[1]===251){return{ext:"mp3",mime:"audio/mpeg"}}if(buf[4]===102&&buf[5]===116&&buf[6]===121&&buf[7]===112&&buf[8]===77&&buf[9]===52&&buf[10]===65||buf[0]===77&&buf[1]===52&&buf[2]===65&&buf[3]===32){return{ext:"m4a",mime:"audio/m4a"}}if(buf[28]===79&&buf[29]===112&&buf[30]===117&&buf[31]===115&&buf[32]===72&&buf[33]===101&&buf[34]===97&&buf[35]===100){return{ext:"opus",mime:"audio/opus"}}if(buf[0]===79&&buf[1]===103&&buf[2]===103&&buf[3]===83){return{ext:"ogg",mime:"audio/ogg"}}if(buf[0]===102&&buf[1]===76&&buf[2]===97&&buf[3]===67){return{ext:"flac",mime:"audio/x-flac"}}if(buf[0]===82&&buf[1]===73&&buf[2]===70&&buf[3]===70&&buf[8]===87&&buf[9]===65&&buf[10]===86&&buf[11]===69){return{ext:"wav",mime:"audio/x-wav"}}if(buf[0]===35&&buf[1]===33&&buf[2]===65&&buf[3]===77&&buf[4]===82&&buf[5]===10){return{ext:"amr",mime:"audio/amr"}}if(buf[0]===37&&buf[1]===80&&buf[2]===68&&buf[3]===70){return{ext:"pdf",mime:"application/pdf"}}if(buf[0]===77&&buf[1]===90){return{ext:"exe",mime:"application/x-msdownload"}}if((buf[0]===67||buf[0]===70)&&buf[1]===87&&buf[2]===83){return{ext:"swf",mime:"application/x-shockwave-flash"}}if(buf[0]===123&&buf[1]===92&&buf[2]===114&&buf[3]===116&&buf[4]===102){return{ext:"rtf",mime:"application/rtf"}}if(buf[0]===119&&buf[1]===79&&buf[2]===70&&buf[3]===70&&(buf[4]===0&&buf[5]===1&&buf[6]===0&&buf[7]===0||buf[4]===79&&buf[5]===84&&buf[6]===84&&buf[7]===79)){return{ext:"woff",mime:"application/font-woff"}}if(buf[0]===119&&buf[1]===79&&buf[2]===70&&buf[3]===50&&(buf[4]===0&&buf[5]===1&&buf[6]===0&&buf[7]===0||buf[4]===79&&buf[5]===84&&buf[6]===84&&buf[7]===79)){return{ext:"woff2",mime:"application/font-woff"}}if(buf[34]===76&&buf[35]===80&&(buf[8]===0&&buf[9]===0&&buf[10]===1||buf[8]===1&&buf[9]===0&&buf[10]===2||buf[8]===2&&buf[9]===0&&buf[10]===2)){return{ext:"eot",mime:"application/octet-stream"}}if(buf[0]===0&&buf[1]===1&&buf[2]===0&&buf[3]===0&&buf[4]===0){return{ext:"ttf",mime:"application/font-sfnt"}}if(buf[0]===79&&buf[1]===84&&buf[2]===84&&buf[3]===79&&buf[4]===0){return{ext:"otf",mime:"application/font-sfnt"}}if(buf[0]===0&&buf[1]===0&&buf[2]===1&&buf[3]===0){return{ext:"ico",mime:"image/x-icon"}}if(buf[0]===70&&buf[1]===76&&buf[2]===86&&buf[3]===1){return{ext:"flv",mime:"video/x-flv"}}if(buf[0]===37&&buf[1]===33){return{ext:"ps",mime:"application/postscript"}}if(buf[0]===253&&buf[1]===55&&buf[2]===122&&buf[3]===88&&buf[4]===90&&buf[5]===0){return{ext:"xz",mime:"application/x-xz"}}if(buf[0]===83&&buf[1]===81&&buf[2]===76&&buf[3]===105){return{ext:"sqlite",mime:"application/x-sqlite3"}}if(buf[0]===78&&buf[1]===69&&buf[2]===83&&buf[3]===26){return{ext:"nes",mime:"application/x-nintendo-nes-rom"}}if(buf[0]===67&&buf[1]===114&&buf[2]===50&&buf[3]===52){return{ext:"crx",mime:"application/x-google-chrome-extension"}}if(buf[0]===77&&buf[1]===83&&buf[2]===67&&buf[3]===70||buf[0]===73&&buf[1]===83&&buf[2]===99&&buf[3]===40){return{ext:"cab",mime:"application/vnd.ms-cab-compressed"}}if(buf[0]===33&&buf[1]===60&&buf[2]===97&&buf[3]===114&&buf[4]===99&&buf[5]===104&&buf[6]===62&&buf[7]===10&&buf[8]===100&&buf[9]===101&&buf[10]===98&&buf[11]===105&&buf[12]===97&&buf[13]===110&&buf[14]===45&&buf[15]===98&&buf[16]===105&&buf[17]===110&&buf[18]===97&&buf[19]===114&&buf[20]===121){return{ext:"deb",mime:"application/x-deb"}}if(buf[0]===33&&buf[1]===60&&buf[2]===97&&buf[3]===114&&buf[4]===99&&buf[5]===104&&buf[6]===62){return{ext:"ar",mime:"application/x-unix-archive"}}if(buf[0]===237&&buf[1]===171&&buf[2]===238&&buf[3]===219){return{ext:"rpm",mime:"application/x-rpm"}}if(buf[0]===31&&buf[1]===160||buf[0]===31&&buf[1]===157){return{ext:"Z",mime:"application/x-compress"}}if(buf[0]===76&&buf[1]===90&&buf[2]===73&&buf[3]===80){return{ext:"lz",mime:"application/x-lzip"}}if(buf[0]===208&&buf[1]===207&&buf[2]===17&&buf[3]===224&&buf[4]===161&&buf[5]===177&&buf[6]===26&&buf[7]===225){return{ext:"msi",mime:"application/x-msi"}}return null}},{}],"/data/github/geopackage-node/node_modules/leaflet/dist/leaflet-src.js":[function(require,module,exports){(function(window,document,undefined){var oldL=window.L,L={};L.version="0.7.7";if(typeof module==="object"&&typeof module.exports==="object"){module.exports=L}else if(typeof define==="function"&&define.amd){define(L)}L.noConflict=function(){window.L=oldL;return this};window.L=L;L.Util={extend:function(dest){var sources=Array.prototype.slice.call(arguments,1),i,j,len,src;for(j=0,len=sources.length;j<len;j++){src=sources[j]||{};for(i in src){if(src.hasOwnProperty(i)){dest[i]=src[i]}}}return dest},bind:function(fn,obj){var args=arguments.length>2?Array.prototype.slice.call(arguments,2):null;return function(){return fn.apply(obj,args||arguments)}},stamp:function(){var lastId=0,key="_leaflet_id";return function(obj){obj[key]=obj[key]||++lastId;return obj[key]}}(),invokeEach:function(obj,method,context){var i,args;if(typeof obj==="object"){args=Array.prototype.slice.call(arguments,3);for(i in obj){method.apply(context,[i,obj[i]].concat(args))}return true}return false},limitExecByInterval:function(fn,time,context){var lock,execOnUnlock;return function wrapperFn(){var args=arguments;if(lock){execOnUnlock=true;return}lock=true;setTimeout(function(){lock=false;if(execOnUnlock){wrapperFn.apply(context,args);execOnUnlock=false}},time);fn.apply(context,args)}},falseFn:function(){return false},formatNum:function(num,digits){var pow=Math.pow(10,digits||5);return Math.round(num*pow)/pow},trim:function(str){return str.trim?str.trim():str.replace(/^\s+|\s+$/g,"")},splitWords:function(str){return L.Util.trim(str).split(/\s+/)},setOptions:function(obj,options){obj.options=L.extend({},obj.options,options);return obj.options},getParamString:function(obj,existingUrl,uppercase){var params=[];for(var i in obj){params.push(encodeURIComponent(uppercase?i.toUpperCase():i)+"="+encodeURIComponent(obj[i]))}return(!existingUrl||existingUrl.indexOf("?")===-1?"?":"&")+params.join("&")},template:function(str,data){return str.replace(/\{ *([\w_]+) *\}/g,function(str,key){var value=data[key];if(value===undefined){throw new Error("No value provided for variable "+str)}else if(typeof value==="function"){value=value(data)}return value})},isArray:Array.isArray||function(obj){return Object.prototype.toString.call(obj)==="[object Array]"},emptyImageUrl:"data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs="};(function(){function getPrefixed(name){var i,fn,prefixes=["webkit","moz","o","ms"];for(i=0;i<prefixes.length&&!fn;i++){fn=window[prefixes[i]+name]}return fn}var lastTime=0;function timeoutDefer(fn){var time=+new Date,timeToCall=Math.max(0,16-(time-lastTime));lastTime=time+timeToCall;return window.setTimeout(fn,timeToCall)}var requestFn=window.requestAnimationFrame||getPrefixed("RequestAnimationFrame")||timeoutDefer;var cancelFn=window.cancelAnimationFrame||getPrefixed("CancelAnimationFrame")||getPrefixed("CancelRequestAnimationFrame")||function(id){window.clearTimeout(id)};L.Util.requestAnimFrame=function(fn,context,immediate,element){fn=L.bind(fn,context);if(immediate&&requestFn===timeoutDefer){fn()}else{return requestFn.call(window,fn,element)}};L.Util.cancelAnimFrame=function(id){if(id){cancelFn.call(window,id)}}})();L.extend=L.Util.extend;L.bind=L.Util.bind;L.stamp=L.Util.stamp;L.setOptions=L.Util.setOptions;L.Class=function(){};L.Class.extend=function(props){var NewClass=function(){if(this.initialize){this.initialize.apply(this,arguments)}if(this._initHooks){this.callInitHooks()}};var F=function(){};F.prototype=this.prototype;var proto=new F;proto.constructor=NewClass;NewClass.prototype=proto;for(var i in this){if(this.hasOwnProperty(i)&&i!=="prototype"){NewClass[i]=this[i]}}if(props.statics){L.extend(NewClass,props.statics);delete props.statics}if(props.includes){L.Util.extend.apply(null,[proto].concat(props.includes));delete props.includes}if(props.options&&proto.options){props.options=L.extend({},proto.options,props.options)}L.extend(proto,props);proto._initHooks=[];var parent=this;NewClass.__super__=parent.prototype;proto.callInitHooks=function(){if(this._initHooksCalled){return}if(parent.prototype.callInitHooks){parent.prototype.callInitHooks.call(this)}this._initHooksCalled=true;for(var i=0,len=proto._initHooks.length;i<len;i++){proto._initHooks[i].call(this)}};return NewClass};L.Class.include=function(props){L.extend(this.prototype,props)};L.Class.mergeOptions=function(options){L.extend(this.prototype.options,options)};L.Class.addInitHook=function(fn){var args=Array.prototype.slice.call(arguments,1);var init=typeof fn==="function"?fn:function(){this[fn].apply(this,args)};this.prototype._initHooks=this.prototype._initHooks||[];this.prototype._initHooks.push(init)};var eventsKey="_leaflet_events";L.Mixin={};L.Mixin.Events={addEventListener:function(types,fn,context){if(L.Util.invokeEach(types,this.addEventListener,this,fn,context)){return this}var events=this[eventsKey]=this[eventsKey]||{},contextId=context&&context!==this&&L.stamp(context),i,len,event,type,indexKey,indexLenKey,typeIndex;types=L.Util.splitWords(types);for(i=0,len=types.length;i<len;i++){event={action:fn,context:context||this};type=types[i];if(contextId){indexKey=type+"_idx";indexLenKey=indexKey+"_len";typeIndex=events[indexKey]=events[indexKey]||{};if(!typeIndex[contextId]){typeIndex[contextId]=[];events[indexLenKey]=(events[indexLenKey]||0)+1}typeIndex[contextId].push(event)}else{events[type]=events[type]||[];events[type].push(event)}}return this},hasEventListeners:function(type){var events=this[eventsKey];return!!events&&(type in events&&events[type].length>0||type+"_idx"in events&&events[type+"_idx_len"]>0)},removeEventListener:function(types,fn,context){if(!this[eventsKey]){return this}if(!types){return this.clearAllEventListeners()}if(L.Util.invokeEach(types,this.removeEventListener,this,fn,context)){return this}var events=this[eventsKey],contextId=context&&context!==this&&L.stamp(context),i,len,type,listeners,j,indexKey,indexLenKey,typeIndex,removed;types=L.Util.splitWords(types);for(i=0,len=types.length;i<len;i++){type=types[i];indexKey=type+"_idx";indexLenKey=indexKey+"_len";typeIndex=events[indexKey];if(!fn){delete events[type];delete events[indexKey];delete events[indexLenKey]}else{listeners=contextId&&typeIndex?typeIndex[contextId]:events[type];if(listeners){for(j=listeners.length-1;j>=0;j--){if(listeners[j].action===fn&&(!context||listeners[j].context===context)){removed=listeners.splice(j,1);removed[0].action=L.Util.falseFn}}if(context&&typeIndex&&listeners.length===0){delete typeIndex[contextId];events[indexLenKey]--}}}}return this},clearAllEventListeners:function(){delete this[eventsKey];return this},fireEvent:function(type,data){if(!this.hasEventListeners(type)){return this}var event=L.Util.extend({},data,{type:type,target:this});var events=this[eventsKey],listeners,i,len,typeIndex,contextId;if(events[type]){listeners=events[type].slice();for(i=0,len=listeners.length;i<len;i++){listeners[i].action.call(listeners[i].context,event)}}typeIndex=events[type+"_idx"];
  22. for(contextId in typeIndex){listeners=typeIndex[contextId].slice();if(listeners){for(i=0,len=listeners.length;i<len;i++){listeners[i].action.call(listeners[i].context,event)}}}return this},addOneTimeEventListener:function(types,fn,context){if(L.Util.invokeEach(types,this.addOneTimeEventListener,this,fn,context)){return this}var handler=L.bind(function(){this.removeEventListener(types,fn,context).removeEventListener(types,handler,context)},this);return this.addEventListener(types,fn,context).addEventListener(types,handler,context)}};L.Mixin.Events.on=L.Mixin.Events.addEventListener;L.Mixin.Events.off=L.Mixin.Events.removeEventListener;L.Mixin.Events.once=L.Mixin.Events.addOneTimeEventListener;L.Mixin.Events.fire=L.Mixin.Events.fireEvent;(function(){var ie="ActiveXObject"in window,ielt9=ie&&!document.addEventListener,ua=navigator.userAgent.toLowerCase(),webkit=ua.indexOf("webkit")!==-1,chrome=ua.indexOf("chrome")!==-1,phantomjs=ua.indexOf("phantom")!==-1,android=ua.indexOf("android")!==-1,android23=ua.search("android [23]")!==-1,gecko=ua.indexOf("gecko")!==-1,mobile=typeof orientation!==undefined+"",msPointer=!window.PointerEvent&&window.MSPointerEvent,pointer=window.PointerEvent&&window.navigator.pointerEnabled||msPointer,retina="devicePixelRatio"in window&&window.devicePixelRatio>1||"matchMedia"in window&&window.matchMedia("(min-resolution:144dpi)")&&window.matchMedia("(min-resolution:144dpi)").matches,doc=document.documentElement,ie3d=ie&&"transition"in doc.style,webkit3d="WebKitCSSMatrix"in window&&"m11"in new window.WebKitCSSMatrix&&!android23,gecko3d="MozPerspective"in doc.style,opera3d="OTransition"in doc.style,any3d=!window.L_DISABLE_3D&&(ie3d||webkit3d||gecko3d||opera3d)&&!phantomjs;var touch=!window.L_NO_TOUCH&&!phantomjs&&(pointer||"ontouchstart"in window||window.DocumentTouch&&document instanceof window.DocumentTouch);L.Browser={ie:ie,ielt9:ielt9,webkit:webkit,gecko:gecko&&!webkit&&!window.opera&&!ie,android:android,android23:android23,chrome:chrome,ie3d:ie3d,webkit3d:webkit3d,gecko3d:gecko3d,opera3d:opera3d,any3d:any3d,mobile:mobile,mobileWebkit:mobile&&webkit,mobileWebkit3d:mobile&&webkit3d,mobileOpera:mobile&&window.opera,touch:touch,msPointer:msPointer,pointer:pointer,retina:retina}})();L.Point=function(x,y,round){this.x=round?Math.round(x):x;this.y=round?Math.round(y):y};L.Point.prototype={clone:function(){return new L.Point(this.x,this.y)},add:function(point){return this.clone()._add(L.point(point))},_add:function(point){this.x+=point.x;this.y+=point.y;return this},subtract:function(point){return this.clone()._subtract(L.point(point))},_subtract:function(point){this.x-=point.x;this.y-=point.y;return this},divideBy:function(num){return this.clone()._divideBy(num)},_divideBy:function(num){this.x/=num;this.y/=num;return this},multiplyBy:function(num){return this.clone()._multiplyBy(num)},_multiplyBy:function(num){this.x*=num;this.y*=num;return this},round:function(){return this.clone()._round()},_round:function(){this.x=Math.round(this.x);this.y=Math.round(this.y);return this},floor:function(){return this.clone()._floor()},_floor:function(){this.x=Math.floor(this.x);this.y=Math.floor(this.y);return this},distanceTo:function(point){point=L.point(point);var x=point.x-this.x,y=point.y-this.y;return Math.sqrt(x*x+y*y)},equals:function(point){point=L.point(point);return point.x===this.x&&point.y===this.y},contains:function(point){point=L.point(point);return Math.abs(point.x)<=Math.abs(this.x)&&Math.abs(point.y)<=Math.abs(this.y)},toString:function(){return"Point("+L.Util.formatNum(this.x)+", "+L.Util.formatNum(this.y)+")"}};L.point=function(x,y,round){if(x instanceof L.Point){return x}if(L.Util.isArray(x)){return new L.Point(x[0],x[1])}if(x===undefined||x===null){return x}return new L.Point(x,y,round)};L.Bounds=function(a,b){if(!a){return}var points=b?[a,b]:a;for(var i=0,len=points.length;i<len;i++){this.extend(points[i])}};L.Bounds.prototype={extend:function(point){point=L.point(point);if(!this.min&&!this.max){this.min=point.clone();this.max=point.clone()}else{this.min.x=Math.min(point.x,this.min.x);this.max.x=Math.max(point.x,this.max.x);this.min.y=Math.min(point.y,this.min.y);this.max.y=Math.max(point.y,this.max.y)}return this},getCenter:function(round){return new L.Point((this.min.x+this.max.x)/2,(this.min.y+this.max.y)/2,round)},getBottomLeft:function(){return new L.Point(this.min.x,this.max.y)},getTopRight:function(){return new L.Point(this.max.x,this.min.y)},getSize:function(){return this.max.subtract(this.min)},contains:function(obj){var min,max;if(typeof obj[0]==="number"||obj instanceof L.Point){obj=L.point(obj)}else{obj=L.bounds(obj)}if(obj instanceof L.Bounds){min=obj.min;max=obj.max}else{min=max=obj}return min.x>=this.min.x&&max.x<=this.max.x&&min.y>=this.min.y&&max.y<=this.max.y},intersects:function(bounds){bounds=L.bounds(bounds);var min=this.min,max=this.max,min2=bounds.min,max2=bounds.max,xIntersects=max2.x>=min.x&&min2.x<=max.x,yIntersects=max2.y>=min.y&&min2.y<=max.y;return xIntersects&&yIntersects},isValid:function(){return!!(this.min&&this.max)}};L.bounds=function(a,b){if(!a||a instanceof L.Bounds){return a}return new L.Bounds(a,b)};L.Transformation=function(a,b,c,d){this._a=a;this._b=b;this._c=c;this._d=d};L.Transformation.prototype={transform:function(point,scale){return this._transform(point.clone(),scale)},_transform:function(point,scale){scale=scale||1;point.x=scale*(this._a*point.x+this._b);point.y=scale*(this._c*point.y+this._d);return point},untransform:function(point,scale){scale=scale||1;return new L.Point((point.x/scale-this._b)/this._a,(point.y/scale-this._d)/this._c)}};L.DomUtil={get:function(id){return typeof id==="string"?document.getElementById(id):id},getStyle:function(el,style){var value=el.style[style];if(!value&&el.currentStyle){value=el.currentStyle[style]}if((!value||value==="auto")&&document.defaultView){var css=document.defaultView.getComputedStyle(el,null);value=css?css[style]:null}return value==="auto"?null:value},getViewportOffset:function(element){var top=0,left=0,el=element,docBody=document.body,docEl=document.documentElement,pos;do{top+=el.offsetTop||0;left+=el.offsetLeft||0;top+=parseInt(L.DomUtil.getStyle(el,"borderTopWidth"),10)||0;left+=parseInt(L.DomUtil.getStyle(el,"borderLeftWidth"),10)||0;pos=L.DomUtil.getStyle(el,"position");if(el.offsetParent===docBody&&pos==="absolute"){break}if(pos==="fixed"){top+=docBody.scrollTop||docEl.scrollTop||0;left+=docBody.scrollLeft||docEl.scrollLeft||0;break}if(pos==="relative"&&!el.offsetLeft){var width=L.DomUtil.getStyle(el,"width"),maxWidth=L.DomUtil.getStyle(el,"max-width"),r=el.getBoundingClientRect();if(width!=="none"||maxWidth!=="none"){left+=r.left+el.clientLeft}top+=r.top+(docBody.scrollTop||docEl.scrollTop||0);break}el=el.offsetParent}while(el);el=element;do{if(el===docBody){break}top-=el.scrollTop||0;left-=el.scrollLeft||0;el=el.parentNode}while(el);return new L.Point(left,top)},documentIsLtr:function(){if(!L.DomUtil._docIsLtrCached){L.DomUtil._docIsLtrCached=true;L.DomUtil._docIsLtr=L.DomUtil.getStyle(document.body,"direction")==="ltr"}return L.DomUtil._docIsLtr},create:function(tagName,className,container){var el=document.createElement(tagName);el.className=className;if(container){container.appendChild(el)}return el},hasClass:function(el,name){if(el.classList!==undefined){return el.classList.contains(name)}var className=L.DomUtil._getClass(el);return className.length>0&&new RegExp("(^|\\s)"+name+"(\\s|$)").test(className)},addClass:function(el,name){if(el.classList!==undefined){var classes=L.Util.splitWords(name);for(var i=0,len=classes.length;i<len;i++){el.classList.add(classes[i])}}else if(!L.DomUtil.hasClass(el,name)){var className=L.DomUtil._getClass(el);L.DomUtil._setClass(el,(className?className+" ":"")+name)}},removeClass:function(el,name){if(el.classList!==undefined){el.classList.remove(name)}else{L.DomUtil._setClass(el,L.Util.trim((" "+L.DomUtil._getClass(el)+" ").replace(" "+name+" "," ")))}},_setClass:function(el,name){if(el.className.baseVal===undefined){el.className=name}else{el.className.baseVal=name}},_getClass:function(el){return el.className.baseVal===undefined?el.className:el.className.baseVal},setOpacity:function(el,value){if("opacity"in el.style){el.style.opacity=value}else if("filter"in el.style){var filter=false,filterName="DXImageTransform.Microsoft.Alpha";try{filter=el.filters.item(filterName)}catch(e){if(value===1){return}}value=Math.round(value*100);if(filter){filter.Enabled=value!==100;filter.Opacity=value}else{el.style.filter+=" progid:"+filterName+"(opacity="+value+")"}}},testProp:function(props){var style=document.documentElement.style;for(var i=0;i<props.length;i++){if(props[i]in style){return props[i]}}return false},getTranslateString:function(point){var is3d=L.Browser.webkit3d,open="translate"+(is3d?"3d":"")+"(",close=(is3d?",0":"")+")";return open+point.x+"px,"+point.y+"px"+close},getScaleString:function(scale,origin){var preTranslateStr=L.DomUtil.getTranslateString(origin.add(origin.multiplyBy(-1*scale))),scaleStr=" scale("+scale+") ";return preTranslateStr+scaleStr},setPosition:function(el,point,disable3D){el._leaflet_pos=point;if(!disable3D&&L.Browser.any3d){el.style[L.DomUtil.TRANSFORM]=L.DomUtil.getTranslateString(point)}else{el.style.left=point.x+"px";el.style.top=point.y+"px"}},getPosition:function(el){return el._leaflet_pos}};L.DomUtil.TRANSFORM=L.DomUtil.testProp(["transform","WebkitTransform","OTransform","MozTransform","msTransform"]);L.DomUtil.TRANSITION=L.DomUtil.testProp(["webkitTransition","transition","OTransition","MozTransition","msTransition"]);L.DomUtil.TRANSITION_END=L.DomUtil.TRANSITION==="webkitTransition"||L.DomUtil.TRANSITION==="OTransition"?L.DomUtil.TRANSITION+"End":"transitionend";(function(){if("onselectstart"in document){L.extend(L.DomUtil,{disableTextSelection:function(){L.DomEvent.on(window,"selectstart",L.DomEvent.preventDefault)},enableTextSelection:function(){L.DomEvent.off(window,"selectstart",L.DomEvent.preventDefault)}})}else{var userSelectProperty=L.DomUtil.testProp(["userSelect","WebkitUserSelect","OUserSelect","MozUserSelect","msUserSelect"]);L.extend(L.DomUtil,{disableTextSelection:function(){if(userSelectProperty){var style=document.documentElement.style;this._userSelect=style[userSelectProperty];style[userSelectProperty]="none"}},enableTextSelection:function(){if(userSelectProperty){document.documentElement.style[userSelectProperty]=this._userSelect;delete this._userSelect}}})}L.extend(L.DomUtil,{disableImageDrag:function(){L.DomEvent.on(window,"dragstart",L.DomEvent.preventDefault)},enableImageDrag:function(){L.DomEvent.off(window,"dragstart",L.DomEvent.preventDefault)}})})();L.LatLng=function(lat,lng,alt){lat=parseFloat(lat);lng=parseFloat(lng);if(isNaN(lat)||isNaN(lng)){throw new Error("Invalid LatLng object: ("+lat+", "+lng+")")}this.lat=lat;this.lng=lng;if(alt!==undefined){this.alt=parseFloat(alt)}};L.extend(L.LatLng,{DEG_TO_RAD:Math.PI/180,RAD_TO_DEG:180/Math.PI,MAX_MARGIN:1e-9});L.LatLng.prototype={equals:function(obj){if(!obj){return false}obj=L.latLng(obj);var margin=Math.max(Math.abs(this.lat-obj.lat),Math.abs(this.lng-obj.lng));return margin<=L.LatLng.MAX_MARGIN},toString:function(precision){return"LatLng("+L.Util.formatNum(this.lat,precision)+", "+L.Util.formatNum(this.lng,precision)+")"},distanceTo:function(other){other=L.latLng(other);var R=6378137,d2r=L.LatLng.DEG_TO_RAD,dLat=(other.lat-this.lat)*d2r,dLon=(other.lng-this.lng)*d2r,lat1=this.lat*d2r,lat2=other.lat*d2r,sin1=Math.sin(dLat/2),sin2=Math.sin(dLon/2);var a=sin1*sin1+sin2*sin2*Math.cos(lat1)*Math.cos(lat2);return R*2*Math.atan2(Math.sqrt(a),Math.sqrt(1-a))},wrap:function(a,b){var lng=this.lng;a=a||-180;b=b||180;lng=(lng+b)%(b-a)+(lng<a||lng===b?b:a);return new L.LatLng(this.lat,lng)}};L.latLng=function(a,b){if(a instanceof L.LatLng){return a}if(L.Util.isArray(a)){if(typeof a[0]==="number"||typeof a[0]==="string"){return new L.LatLng(a[0],a[1],a[2])}else{return null}}if(a===undefined||a===null){return a}if(typeof a==="object"&&"lat"in a){return new L.LatLng(a.lat,"lng"in a?a.lng:a.lon)}if(b===undefined){return null}return new L.LatLng(a,b)};L.LatLngBounds=function(southWest,northEast){if(!southWest){return}var latlngs=northEast?[southWest,northEast]:southWest;for(var i=0,len=latlngs.length;i<len;i++){this.extend(latlngs[i])}};L.LatLngBounds.prototype={extend:function(obj){if(!obj){return this}var latLng=L.latLng(obj);if(latLng!==null){obj=latLng}else{obj=L.latLngBounds(obj)}if(obj instanceof L.LatLng){if(!this._southWest&&!this._northEast){this._southWest=new L.LatLng(obj.lat,obj.lng);this._northEast=new L.LatLng(obj.lat,obj.lng)}else{this._southWest.lat=Math.min(obj.lat,this._southWest.lat);this._southWest.lng=Math.min(obj.lng,this._southWest.lng);this._northEast.lat=Math.max(obj.lat,this._northEast.lat);this._northEast.lng=Math.max(obj.lng,this._northEast.lng)}}else if(obj instanceof L.LatLngBounds){this.extend(obj._southWest);this.extend(obj._northEast)}return this},pad:function(bufferRatio){var sw=this._southWest,ne=this._northEast,heightBuffer=Math.abs(sw.lat-ne.lat)*bufferRatio,widthBuffer=Math.abs(sw.lng-ne.lng)*bufferRatio;return new L.LatLngBounds(new L.LatLng(sw.lat-heightBuffer,sw.lng-widthBuffer),new L.LatLng(ne.lat+heightBuffer,ne.lng+widthBuffer))},getCenter:function(){return new L.LatLng((this._southWest.lat+this._northEast.lat)/2,(this._southWest.lng+this._northEast.lng)/2)},getSouthWest:function(){return this._southWest},getNorthEast:function(){return this._northEast},getNorthWest:function(){return new L.LatLng(this.getNorth(),this.getWest())},getSouthEast:function(){return new L.LatLng(this.getSouth(),this.getEast())},getWest:function(){return this._southWest.lng},getSouth:function(){return this._southWest.lat},getEast:function(){return this._northEast.lng},getNorth:function(){return this._northEast.lat},contains:function(obj){if(typeof obj[0]==="number"||obj instanceof L.LatLng){obj=L.latLng(obj)}else{obj=L.latLngBounds(obj)}var sw=this._southWest,ne=this._northEast,sw2,ne2;if(obj instanceof L.LatLngBounds){sw2=obj.getSouthWest();ne2=obj.getNorthEast()}else{sw2=ne2=obj}return sw2.lat>=sw.lat&&ne2.lat<=ne.lat&&sw2.lng>=sw.lng&&ne2.lng<=ne.lng},intersects:function(bounds){bounds=L.latLngBounds(bounds);var sw=this._southWest,ne=this._northEast,sw2=bounds.getSouthWest(),ne2=bounds.getNorthEast(),latIntersects=ne2.lat>=sw.lat&&sw2.lat<=ne.lat,lngIntersects=ne2.lng>=sw.lng&&sw2.lng<=ne.lng;return latIntersects&&lngIntersects},toBBoxString:function(){return[this.getWest(),this.getSouth(),this.getEast(),this.getNorth()].join(",")},equals:function(bounds){if(!bounds){return false}bounds=L.latLngBounds(bounds);return this._southWest.equals(bounds.getSouthWest())&&this._northEast.equals(bounds.getNorthEast())},isValid:function(){return!!(this._southWest&&this._northEast)}};L.latLngBounds=function(a,b){if(!a||a instanceof L.LatLngBounds){return a}return new L.LatLngBounds(a,b)};L.Projection={};L.Projection.SphericalMercator={MAX_LATITUDE:85.0511287798,project:function(latlng){var d=L.LatLng.DEG_TO_RAD,max=this.MAX_LATITUDE,lat=Math.max(Math.min(max,latlng.lat),-max),x=latlng.lng*d,y=lat*d;y=Math.log(Math.tan(Math.PI/4+y/2));return new L.Point(x,y)},unproject:function(point){var d=L.LatLng.RAD_TO_DEG,lng=point.x*d,lat=(2*Math.atan(Math.exp(point.y))-Math.PI/2)*d;return new L.LatLng(lat,lng)}};L.Projection.LonLat={project:function(latlng){return new L.Point(latlng.lng,latlng.lat)},unproject:function(point){return new L.LatLng(point.y,point.x)}};L.CRS={latLngToPoint:function(latlng,zoom){var projectedPoint=this.projection.project(latlng),scale=this.scale(zoom);return this.transformation._transform(projectedPoint,scale)},pointToLatLng:function(point,zoom){var scale=this.scale(zoom),untransformedPoint=this.transformation.untransform(point,scale);return this.projection.unproject(untransformedPoint)},project:function(latlng){return this.projection.project(latlng)},scale:function(zoom){return 256*Math.pow(2,zoom)},getSize:function(zoom){var s=this.scale(zoom);return L.point(s,s)}};L.CRS.Simple=L.extend({},L.CRS,{projection:L.Projection.LonLat,transformation:new L.Transformation(1,0,-1,0),scale:function(zoom){return Math.pow(2,zoom)}});L.CRS.EPSG3857=L.extend({},L.CRS,{code:"EPSG:3857",projection:L.Projection.SphericalMercator,transformation:new L.Transformation(.5/Math.PI,.5,-.5/Math.PI,.5),project:function(latlng){var projectedPoint=this.projection.project(latlng),earthRadius=6378137;return projectedPoint.multiplyBy(earthRadius)}});L.CRS.EPSG900913=L.extend({},L.CRS.EPSG3857,{code:"EPSG:900913"});L.CRS.EPSG4326=L.extend({},L.CRS,{code:"EPSG:4326",projection:L.Projection.LonLat,transformation:new L.Transformation(1/360,.5,-1/360,.5)});L.Map=L.Class.extend({includes:L.Mixin.Events,options:{crs:L.CRS.EPSG3857,fadeAnimation:L.DomUtil.TRANSITION&&!L.Browser.android23,trackResize:true,markerZoomAnimation:L.DomUtil.TRANSITION&&L.Browser.any3d},initialize:function(id,options){options=L.setOptions(this,options);this._initContainer(id);this._initLayout();this._onResize=L.bind(this._onResize,this);this._initEvents();if(options.maxBounds){this.setMaxBounds(options.maxBounds)}if(options.center&&options.zoom!==undefined){this.setView(L.latLng(options.center),options.zoom,{reset:true})}this._handlers=[];this._layers={};this._zoomBoundLayers={};this._tileLayersNum=0;this.callInitHooks();this._addLayers(options.layers)},setView:function(center,zoom){zoom=zoom===undefined?this.getZoom():zoom;this._resetView(L.latLng(center),this._limitZoom(zoom));return this},setZoom:function(zoom,options){if(!this._loaded){this._zoom=this._limitZoom(zoom);return this}return this.setView(this.getCenter(),zoom,{zoom:options})},zoomIn:function(delta,options){return this.setZoom(this._zoom+(delta||1),options)},zoomOut:function(delta,options){return this.setZoom(this._zoom-(delta||1),options)},setZoomAround:function(latlng,zoom,options){var scale=this.getZoomScale(zoom),viewHalf=this.getSize().divideBy(2),containerPoint=latlng instanceof L.Point?latlng:this.latLngToContainerPoint(latlng),centerOffset=containerPoint.subtract(viewHalf).multiplyBy(1-1/scale),newCenter=this.containerPointToLatLng(viewHalf.add(centerOffset));return this.setView(newCenter,zoom,{zoom:options})},fitBounds:function(bounds,options){options=options||{};bounds=bounds.getBounds?bounds.getBounds():L.latLngBounds(bounds);var paddingTL=L.point(options.paddingTopLeft||options.padding||[0,0]),paddingBR=L.point(options.paddingBottomRight||options.padding||[0,0]),zoom=this.getBoundsZoom(bounds,false,paddingTL.add(paddingBR));zoom=options.maxZoom?Math.min(options.maxZoom,zoom):zoom;var paddingOffset=paddingBR.subtract(paddingTL).divideBy(2),swPoint=this.project(bounds.getSouthWest(),zoom),nePoint=this.project(bounds.getNorthEast(),zoom),center=this.unproject(swPoint.add(nePoint).divideBy(2).add(paddingOffset),zoom);return this.setView(center,zoom,options)},fitWorld:function(options){return this.fitBounds([[-90,-180],[90,180]],options)},panTo:function(center,options){return this.setView(center,this._zoom,{pan:options})},panBy:function(offset){this.fire("movestart");this._rawPanBy(L.point(offset));this.fire("move");return this.fire("moveend")},setMaxBounds:function(bounds){bounds=L.latLngBounds(bounds);this.options.maxBounds=bounds;if(!bounds){return this.off("moveend",this._panInsideMaxBounds,this)}if(this._loaded){this._panInsideMaxBounds()}return this.on("moveend",this._panInsideMaxBounds,this)},panInsideBounds:function(bounds,options){var center=this.getCenter(),newCenter=this._limitCenter(center,this._zoom,bounds);if(center.equals(newCenter)){return this}return this.panTo(newCenter,options)},addLayer:function(layer){var id=L.stamp(layer);if(this._layers[id]){return this}this._layers[id]=layer;if(layer.options&&(!isNaN(layer.options.maxZoom)||!isNaN(layer.options.minZoom))){this._zoomBoundLayers[id]=layer;this._updateZoomLevels()}if(this.options.zoomAnimation&&L.TileLayer&&layer instanceof L.TileLayer){this._tileLayersNum++;this._tileLayersToLoad++;layer.on("load",this._onTileLayerLoad,this)}if(this._loaded){this._layerAdd(layer)}return this},removeLayer:function(layer){var id=L.stamp(layer);if(!this._layers[id]){return this}if(this._loaded){layer.onRemove(this)}delete this._layers[id];if(this._loaded){this.fire("layerremove",{layer:layer})}if(this._zoomBoundLayers[id]){delete this._zoomBoundLayers[id];this._updateZoomLevels()}if(this.options.zoomAnimation&&L.TileLayer&&layer instanceof L.TileLayer){this._tileLayersNum--;this._tileLayersToLoad--;layer.off("load",this._onTileLayerLoad,this)}return this},hasLayer:function(layer){if(!layer){return false}return L.stamp(layer)in this._layers},eachLayer:function(method,context){for(var i in this._layers){method.call(context,this._layers[i])}return this},invalidateSize:function(options){if(!this._loaded){return this}options=L.extend({animate:false,pan:true},options===true?{animate:true}:options);var oldSize=this.getSize();this._sizeChanged=true;this._initialCenter=null;var newSize=this.getSize(),oldCenter=oldSize.divideBy(2).round(),newCenter=newSize.divideBy(2).round(),offset=oldCenter.subtract(newCenter);if(!offset.x&&!offset.y){return this}if(options.animate&&options.pan){this.panBy(offset)}else{if(options.pan){this._rawPanBy(offset)}this.fire("move");if(options.debounceMoveend){clearTimeout(this._sizeTimer);this._sizeTimer=setTimeout(L.bind(this.fire,this,"moveend"),200)}else{this.fire("moveend")}}return this.fire("resize",{oldSize:oldSize,newSize:newSize})},addHandler:function(name,HandlerClass){if(!HandlerClass){return this}var handler=this[name]=new HandlerClass(this);this._handlers.push(handler);if(this.options[name]){handler.enable()}return this},remove:function(){if(this._loaded){this.fire("unload")}this._initEvents("off");try{delete this._container._leaflet}catch(e){this._container._leaflet=undefined}this._clearPanes();if(this._clearControlPos){this._clearControlPos()}this._clearHandlers();return this},getCenter:function(){this._checkIfLoaded();if(this._initialCenter&&!this._moved()){return this._initialCenter}return this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var bounds=this.getPixelBounds(),sw=this.unproject(bounds.getBottomLeft()),ne=this.unproject(bounds.getTopRight());return new L.LatLngBounds(sw,ne)},getMinZoom:function(){return this.options.minZoom===undefined?this._layersMinZoom===undefined?0:this._layersMinZoom:this.options.minZoom},getMaxZoom:function(){return this.options.maxZoom===undefined?this._layersMaxZoom===undefined?Infinity:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(bounds,inside,padding){bounds=L.latLngBounds(bounds);var zoom=this.getMinZoom()-(inside?1:0),maxZoom=this.getMaxZoom(),size=this.getSize(),nw=bounds.getNorthWest(),se=bounds.getSouthEast(),zoomNotFound=true,boundsSize;padding=L.point(padding||[0,0]);do{zoom++;boundsSize=this.project(se,zoom).subtract(this.project(nw,zoom)).add(padding);zoomNotFound=!inside?size.contains(boundsSize):boundsSize.x<size.x||boundsSize.y<size.y}while(zoomNotFound&&zoom<=maxZoom);if(zoomNotFound&&inside){return null}return inside?zoom:zoom-1},getSize:function(){if(!this._size||this._sizeChanged){this._size=new L.Point(this._container.clientWidth,this._container.clientHeight);this._sizeChanged=false}return this._size.clone()},getPixelBounds:function(){var topLeftPoint=this._getTopLeftPoint();return new L.Bounds(topLeftPoint,topLeftPoint.add(this.getSize()))},getPixelOrigin:function(){this._checkIfLoaded();return this._initialTopLeftPoint},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(toZoom){var crs=this.options.crs;return crs.scale(toZoom)/crs.scale(this._zoom)},getScaleZoom:function(scale){return this._zoom+Math.log(scale)/Math.LN2},project:function(latlng,zoom){zoom=zoom===undefined?this._zoom:zoom;return this.options.crs.latLngToPoint(L.latLng(latlng),zoom)},unproject:function(point,zoom){zoom=zoom===undefined?this._zoom:zoom;return this.options.crs.pointToLatLng(L.point(point),zoom)},layerPointToLatLng:function(point){var projectedPoint=L.point(point).add(this.getPixelOrigin());return this.unproject(projectedPoint)},latLngToLayerPoint:function(latlng){var projectedPoint=this.project(L.latLng(latlng))._round();return projectedPoint._subtract(this.getPixelOrigin())},containerPointToLayerPoint:function(point){return L.point(point).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(point){return L.point(point).add(this._getMapPanePos())},containerPointToLatLng:function(point){var layerPoint=this.containerPointToLayerPoint(L.point(point));return this.layerPointToLatLng(layerPoint)},latLngToContainerPoint:function(latlng){return this.layerPointToContainerPoint(this.latLngToLayerPoint(L.latLng(latlng)))},mouseEventToContainerPoint:function(e){return L.DomEvent.getMousePosition(e,this._container)},mouseEventToLayerPoint:function(e){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(e))},mouseEventToLatLng:function(e){return this.layerPointToLatLng(this.mouseEventToLayerPoint(e))},_initContainer:function(id){var container=this._container=L.DomUtil.get(id);if(!container){throw new Error("Map container not found.")}else if(container._leaflet){throw new Error("Map container is already initialized.")}container._leaflet=true},_initLayout:function(){var container=this._container;L.DomUtil.addClass(container,"leaflet-container"+(L.Browser.touch?" leaflet-touch":"")+(L.Browser.retina?" leaflet-retina":"")+(L.Browser.ielt9?" leaflet-oldie":"")+(this.options.fadeAnimation?" leaflet-fade-anim":""));var position=L.DomUtil.getStyle(container,"position");if(position!=="absolute"&&position!=="relative"&&position!=="fixed"){container.style.position="relative"}this._initPanes();if(this._initControlPos){this._initControlPos()}},_initPanes:function(){var panes=this._panes={};this._mapPane=panes.mapPane=this._createPane("leaflet-map-pane",this._container);this._tilePane=panes.tilePane=this._createPane("leaflet-tile-pane",this._mapPane);panes.objectsPane=this._createPane("leaflet-objects-pane",this._mapPane);panes.shadowPane=this._createPane("leaflet-shadow-pane");panes.overlayPane=this._createPane("leaflet-overlay-pane");panes.markerPane=this._createPane("leaflet-marker-pane");panes.popupPane=this._createPane("leaflet-popup-pane");var zoomHide=" leaflet-zoom-hide";if(!this.options.markerZoomAnimation){L.DomUtil.addClass(panes.markerPane,zoomHide);L.DomUtil.addClass(panes.shadowPane,zoomHide);L.DomUtil.addClass(panes.popupPane,zoomHide)}},_createPane:function(className,container){return L.DomUtil.create("div",className,container||this._panes.objectsPane)},_clearPanes:function(){this._container.removeChild(this._mapPane)},_addLayers:function(layers){layers=layers?L.Util.isArray(layers)?layers:[layers]:[];for(var i=0,len=layers.length;i<len;i++){this.addLayer(layers[i])}},_resetView:function(center,zoom,preserveMapOffset,afterZoomAnim){var zoomChanged=this._zoom!==zoom;if(!afterZoomAnim){this.fire("movestart");if(zoomChanged){this.fire("zoomstart")}}this._zoom=zoom;this._initialCenter=center;this._initialTopLeftPoint=this._getNewTopLeftPoint(center);if(!preserveMapOffset){L.DomUtil.setPosition(this._mapPane,new L.Point(0,0))}else{this._initialTopLeftPoint._add(this._getMapPanePos())}this._tileLayersToLoad=this._tileLayersNum;var loading=!this._loaded;this._loaded=true;this.fire("viewreset",{hard:!preserveMapOffset});if(loading){this.fire("load");this.eachLayer(this._layerAdd,this)}this.fire("move");if(zoomChanged||afterZoomAnim){this.fire("zoomend")}this.fire("moveend",{hard:!preserveMapOffset})},_rawPanBy:function(offset){L.DomUtil.setPosition(this._mapPane,this._getMapPanePos().subtract(offset))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_updateZoomLevels:function(){var i,minZoom=Infinity,maxZoom=-Infinity,oldZoomSpan=this._getZoomSpan();for(i in this._zoomBoundLayers){var layer=this._zoomBoundLayers[i];if(!isNaN(layer.options.minZoom)){minZoom=Math.min(minZoom,layer.options.minZoom)}if(!isNaN(layer.options.maxZoom)){maxZoom=Math.max(maxZoom,layer.options.maxZoom)}}if(i===undefined){this._layersMaxZoom=this._layersMinZoom=undefined}else{this._layersMaxZoom=maxZoom;this._layersMinZoom=minZoom}if(oldZoomSpan!==this._getZoomSpan()){this.fire("zoomlevelschange")}},_panInsideMaxBounds:function(){this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded){throw new Error("Set map center and zoom first.")}},_initEvents:function(onOff){if(!L.DomEvent){return}onOff=onOff||"on";L.DomEvent[onOff](this._container,"click",this._onMouseClick,this);var events=["dblclick","mousedown","mouseup","mouseenter","mouseleave","mousemove","contextmenu"],i,len;for(i=0,len=events.length;i<len;i++){L.DomEvent[onOff](this._container,events[i],this._fireMouseEvent,this)}if(this.options.trackResize){L.DomEvent[onOff](window,"resize",this._onResize,this)}},_onResize:function(){L.Util.cancelAnimFrame(this._resizeRequest);this._resizeRequest=L.Util.requestAnimFrame(function(){this.invalidateSize({debounceMoveend:true})},this,false,this._container)},_onMouseClick:function(e){if(!this._loaded||!e._simulated&&(this.dragging&&this.dragging.moved()||this.boxZoom&&this.boxZoom.moved())||L.DomEvent._skipped(e)){return}this.fire("preclick");this._fireMouseEvent(e)},_fireMouseEvent:function(e){if(!this._loaded||L.DomEvent._skipped(e)){return}var type=e.type;type=type==="mouseenter"?"mouseover":type==="mouseleave"?"mouseout":type;if(!this.hasEventListeners(type)){return}if(type==="contextmenu"){L.DomEvent.preventDefault(e)}var containerPoint=this.mouseEventToContainerPoint(e),layerPoint=this.containerPointToLayerPoint(containerPoint),latlng=this.layerPointToLatLng(layerPoint);this.fire(type,{latlng:latlng,layerPoint:layerPoint,containerPoint:containerPoint,originalEvent:e})},_onTileLayerLoad:function(){this._tileLayersToLoad--;if(this._tileLayersNum&&!this._tileLayersToLoad){this.fire("tilelayersload")}},_clearHandlers:function(){for(var i=0,len=this._handlers.length;i<len;i++){this._handlers[i].disable()}},whenReady:function(callback,context){if(this._loaded){callback.call(context||this,this)}else{this.on("load",callback,context)}return this},_layerAdd:function(layer){layer.onAdd(this);this.fire("layeradd",{layer:layer})},_getMapPanePos:function(){return L.DomUtil.getPosition(this._mapPane)},_moved:function(){var pos=this._getMapPanePos();return pos&&!pos.equals([0,0])},_getTopLeftPoint:function(){return this.getPixelOrigin().subtract(this._getMapPanePos())},_getNewTopLeftPoint:function(center,zoom){var viewHalf=this.getSize()._divideBy(2);return this.project(center,zoom)._subtract(viewHalf)._round()},_latLngToNewLayerPoint:function(latlng,newZoom,newCenter){var topLeft=this._getNewTopLeftPoint(newCenter,newZoom).add(this._getMapPanePos());return this.project(latlng,newZoom)._subtract(topLeft)},_getCenterLayerPoint:function(){return this.containerPointToLayerPoint(this.getSize()._divideBy(2))},_getCenterOffset:function(latlng){return this.latLngToLayerPoint(latlng).subtract(this._getCenterLayerPoint())},_limitCenter:function(center,zoom,bounds){if(!bounds){return center}var centerPoint=this.project(center,zoom),viewHalf=this.getSize().divideBy(2),viewBounds=new L.Bounds(centerPoint.subtract(viewHalf),centerPoint.add(viewHalf)),offset=this._getBoundsOffset(viewBounds,bounds,zoom);return this.unproject(centerPoint.add(offset),zoom)},_limitOffset:function(offset,bounds){if(!bounds){return offset}var viewBounds=this.getPixelBounds(),newBounds=new L.Bounds(viewBounds.min.add(offset),viewBounds.max.add(offset));return offset.add(this._getBoundsOffset(newBounds,bounds))},_getBoundsOffset:function(pxBounds,maxBounds,zoom){var nwOffset=this.project(maxBounds.getNorthWest(),zoom).subtract(pxBounds.min),seOffset=this.project(maxBounds.getSouthEast(),zoom).subtract(pxBounds.max),dx=this._rebound(nwOffset.x,-seOffset.x),dy=this._rebound(nwOffset.y,-seOffset.y);
  23. return new L.Point(dx,dy)},_rebound:function(left,right){return left+right>0?Math.round(left-right)/2:Math.max(0,Math.ceil(left))-Math.max(0,Math.floor(right))},_limitZoom:function(zoom){var min=this.getMinZoom(),max=this.getMaxZoom();return Math.max(min,Math.min(max,zoom))}});L.map=function(id,options){return new L.Map(id,options)};L.Projection.Mercator={MAX_LATITUDE:85.0840591556,R_MINOR:6356752.314245179,R_MAJOR:6378137,project:function(latlng){var d=L.LatLng.DEG_TO_RAD,max=this.MAX_LATITUDE,lat=Math.max(Math.min(max,latlng.lat),-max),r=this.R_MAJOR,r2=this.R_MINOR,x=latlng.lng*d*r,y=lat*d,tmp=r2/r,eccent=Math.sqrt(1-tmp*tmp),con=eccent*Math.sin(y);con=Math.pow((1-con)/(1+con),eccent*.5);var ts=Math.tan(.5*(Math.PI*.5-y))/con;y=-r*Math.log(ts);return new L.Point(x,y)},unproject:function(point){var d=L.LatLng.RAD_TO_DEG,r=this.R_MAJOR,r2=this.R_MINOR,lng=point.x*d/r,tmp=r2/r,eccent=Math.sqrt(1-tmp*tmp),ts=Math.exp(-point.y/r),phi=Math.PI/2-2*Math.atan(ts),numIter=15,tol=1e-7,i=numIter,dphi=.1,con;while(Math.abs(dphi)>tol&&--i>0){con=eccent*Math.sin(phi);dphi=Math.PI/2-2*Math.atan(ts*Math.pow((1-con)/(1+con),.5*eccent))-phi;phi+=dphi}return new L.LatLng(phi*d,lng)}};L.CRS.EPSG3395=L.extend({},L.CRS,{code:"EPSG:3395",projection:L.Projection.Mercator,transformation:function(){var m=L.Projection.Mercator,r=m.R_MAJOR,scale=.5/(Math.PI*r);return new L.Transformation(scale,.5,-scale,.5)}()});L.TileLayer=L.Class.extend({includes:L.Mixin.Events,options:{minZoom:0,maxZoom:18,tileSize:256,subdomains:"abc",errorTileUrl:"",attribution:"",zoomOffset:0,opacity:1,unloadInvisibleTiles:L.Browser.mobile,updateWhenIdle:L.Browser.mobile},initialize:function(url,options){options=L.setOptions(this,options);if(options.detectRetina&&L.Browser.retina&&options.maxZoom>0){options.tileSize=Math.floor(options.tileSize/2);options.zoomOffset++;if(options.minZoom>0){options.minZoom--}this.options.maxZoom--}if(options.bounds){options.bounds=L.latLngBounds(options.bounds)}this._url=url;var subdomains=this.options.subdomains;if(typeof subdomains==="string"){this.options.subdomains=subdomains.split("")}},onAdd:function(map){this._map=map;this._animated=map._zoomAnimated;this._initContainer();map.on({viewreset:this._reset,moveend:this._update},this);if(this._animated){map.on({zoomanim:this._animateZoom,zoomend:this._endZoomAnim},this)}if(!this.options.updateWhenIdle){this._limitedUpdate=L.Util.limitExecByInterval(this._update,150,this);map.on("move",this._limitedUpdate,this)}this._reset();this._update()},addTo:function(map){map.addLayer(this);return this},onRemove:function(map){this._container.parentNode.removeChild(this._container);map.off({viewreset:this._reset,moveend:this._update},this);if(this._animated){map.off({zoomanim:this._animateZoom,zoomend:this._endZoomAnim},this)}if(!this.options.updateWhenIdle){map.off("move",this._limitedUpdate,this)}this._container=null;this._map=null},bringToFront:function(){var pane=this._map._panes.tilePane;if(this._container){pane.appendChild(this._container);this._setAutoZIndex(pane,Math.max)}return this},bringToBack:function(){var pane=this._map._panes.tilePane;if(this._container){pane.insertBefore(this._container,pane.firstChild);this._setAutoZIndex(pane,Math.min)}return this},getAttribution:function(){return this.options.attribution},getContainer:function(){return this._container},setOpacity:function(opacity){this.options.opacity=opacity;if(this._map){this._updateOpacity()}return this},setZIndex:function(zIndex){this.options.zIndex=zIndex;this._updateZIndex();return this},setUrl:function(url,noRedraw){this._url=url;if(!noRedraw){this.redraw()}return this},redraw:function(){if(this._map){this._reset({hard:true});this._update()}return this},_updateZIndex:function(){if(this._container&&this.options.zIndex!==undefined){this._container.style.zIndex=this.options.zIndex}},_setAutoZIndex:function(pane,compare){var layers=pane.children,edgeZIndex=-compare(Infinity,-Infinity),zIndex,i,len;for(i=0,len=layers.length;i<len;i++){if(layers[i]!==this._container){zIndex=parseInt(layers[i].style.zIndex,10);if(!isNaN(zIndex)){edgeZIndex=compare(edgeZIndex,zIndex)}}}this.options.zIndex=this._container.style.zIndex=(isFinite(edgeZIndex)?edgeZIndex:0)+compare(1,-1)},_updateOpacity:function(){var i,tiles=this._tiles;if(L.Browser.ielt9){for(i in tiles){L.DomUtil.setOpacity(tiles[i],this.options.opacity)}}else{L.DomUtil.setOpacity(this._container,this.options.opacity)}},_initContainer:function(){var tilePane=this._map._panes.tilePane;if(!this._container){this._container=L.DomUtil.create("div","leaflet-layer");this._updateZIndex();if(this._animated){var className="leaflet-tile-container";this._bgBuffer=L.DomUtil.create("div",className,this._container);this._tileContainer=L.DomUtil.create("div",className,this._container)}else{this._tileContainer=this._container}tilePane.appendChild(this._container);if(this.options.opacity<1){this._updateOpacity()}}},_reset:function(e){for(var key in this._tiles){this.fire("tileunload",{tile:this._tiles[key]})}this._tiles={};this._tilesToLoad=0;if(this.options.reuseTiles){this._unusedTiles=[]}this._tileContainer.innerHTML="";if(this._animated&&e&&e.hard){this._clearBgBuffer()}this._initContainer()},_getTileSize:function(){var map=this._map,zoom=map.getZoom()+this.options.zoomOffset,zoomN=this.options.maxNativeZoom,tileSize=this.options.tileSize;if(zoomN&&zoom>zoomN){tileSize=Math.round(map.getZoomScale(zoom)/map.getZoomScale(zoomN)*tileSize)}return tileSize},_update:function(){if(!this._map){return}var map=this._map,bounds=map.getPixelBounds(),zoom=map.getZoom(),tileSize=this._getTileSize();if(zoom>this.options.maxZoom||zoom<this.options.minZoom){return}var tileBounds=L.bounds(bounds.min.divideBy(tileSize)._floor(),bounds.max.divideBy(tileSize)._floor());this._addTilesFromCenterOut(tileBounds);if(this.options.unloadInvisibleTiles||this.options.reuseTiles){this._removeOtherTiles(tileBounds)}},_addTilesFromCenterOut:function(bounds){var queue=[],center=bounds.getCenter();var j,i,point;for(j=bounds.min.y;j<=bounds.max.y;j++){for(i=bounds.min.x;i<=bounds.max.x;i++){point=new L.Point(i,j);if(this._tileShouldBeLoaded(point)){queue.push(point)}}}var tilesToLoad=queue.length;if(tilesToLoad===0){return}queue.sort(function(a,b){return a.distanceTo(center)-b.distanceTo(center)});var fragment=document.createDocumentFragment();if(!this._tilesToLoad){this.fire("loading")}this._tilesToLoad+=tilesToLoad;for(i=0;i<tilesToLoad;i++){this._addTile(queue[i],fragment)}this._tileContainer.appendChild(fragment)},_tileShouldBeLoaded:function(tilePoint){if(tilePoint.x+":"+tilePoint.y in this._tiles){return false}var options=this.options;if(!options.continuousWorld){var limit=this._getWrapTileNum();if(options.noWrap&&(tilePoint.x<0||tilePoint.x>=limit.x)||tilePoint.y<0||tilePoint.y>=limit.y){return false}}if(options.bounds){var tileSize=this._getTileSize(),nwPoint=tilePoint.multiplyBy(tileSize),sePoint=nwPoint.add([tileSize,tileSize]),nw=this._map.unproject(nwPoint),se=this._map.unproject(sePoint);if(!options.continuousWorld&&!options.noWrap){nw=nw.wrap();se=se.wrap()}if(!options.bounds.intersects([nw,se])){return false}}return true},_removeOtherTiles:function(bounds){var kArr,x,y,key;for(key in this._tiles){kArr=key.split(":");x=parseInt(kArr[0],10);y=parseInt(kArr[1],10);if(x<bounds.min.x||x>bounds.max.x||y<bounds.min.y||y>bounds.max.y){this._removeTile(key)}}},_removeTile:function(key){var tile=this._tiles[key];this.fire("tileunload",{tile:tile,url:tile.src});if(this.options.reuseTiles){L.DomUtil.removeClass(tile,"leaflet-tile-loaded");this._unusedTiles.push(tile)}else if(tile.parentNode===this._tileContainer){this._tileContainer.removeChild(tile)}if(!L.Browser.android){tile.onload=null;tile.src=L.Util.emptyImageUrl}delete this._tiles[key]},_addTile:function(tilePoint,container){var tilePos=this._getTilePos(tilePoint);var tile=this._getTile();L.DomUtil.setPosition(tile,tilePos,L.Browser.chrome);this._tiles[tilePoint.x+":"+tilePoint.y]=tile;this._loadTile(tile,tilePoint);if(tile.parentNode!==this._tileContainer){container.appendChild(tile)}},_getZoomForUrl:function(){var options=this.options,zoom=this._map.getZoom();if(options.zoomReverse){zoom=options.maxZoom-zoom}zoom+=options.zoomOffset;return options.maxNativeZoom?Math.min(zoom,options.maxNativeZoom):zoom},_getTilePos:function(tilePoint){var origin=this._map.getPixelOrigin(),tileSize=this._getTileSize();return tilePoint.multiplyBy(tileSize).subtract(origin)},getTileUrl:function(tilePoint){return L.Util.template(this._url,L.extend({s:this._getSubdomain(tilePoint),z:tilePoint.z,x:tilePoint.x,y:tilePoint.y},this.options))},_getWrapTileNum:function(){var crs=this._map.options.crs,size=crs.getSize(this._map.getZoom());return size.divideBy(this._getTileSize())._floor()},_adjustTilePoint:function(tilePoint){var limit=this._getWrapTileNum();if(!this.options.continuousWorld&&!this.options.noWrap){tilePoint.x=(tilePoint.x%limit.x+limit.x)%limit.x}if(this.options.tms){tilePoint.y=limit.y-tilePoint.y-1}tilePoint.z=this._getZoomForUrl()},_getSubdomain:function(tilePoint){var index=Math.abs(tilePoint.x+tilePoint.y)%this.options.subdomains.length;return this.options.subdomains[index]},_getTile:function(){if(this.options.reuseTiles&&this._unusedTiles.length>0){var tile=this._unusedTiles.pop();this._resetTile(tile);return tile}return this._createTile()},_resetTile:function(){},_createTile:function(){var tile=L.DomUtil.create("img","leaflet-tile");tile.style.width=tile.style.height=this._getTileSize()+"px";tile.galleryimg="no";tile.onselectstart=tile.onmousemove=L.Util.falseFn;if(L.Browser.ielt9&&this.options.opacity!==undefined){L.DomUtil.setOpacity(tile,this.options.opacity)}if(L.Browser.mobileWebkit3d){tile.style.WebkitBackfaceVisibility="hidden"}return tile},_loadTile:function(tile,tilePoint){tile._layer=this;tile.onload=this._tileOnLoad;tile.onerror=this._tileOnError;this._adjustTilePoint(tilePoint);tile.src=this.getTileUrl(tilePoint);this.fire("tileloadstart",{tile:tile,url:tile.src})},_tileLoaded:function(){this._tilesToLoad--;if(this._animated){L.DomUtil.addClass(this._tileContainer,"leaflet-zoom-animated")}if(!this._tilesToLoad){this.fire("load");if(this._animated){clearTimeout(this._clearBgBufferTimer);this._clearBgBufferTimer=setTimeout(L.bind(this._clearBgBuffer,this),500)}}},_tileOnLoad:function(){var layer=this._layer;if(this.src!==L.Util.emptyImageUrl){L.DomUtil.addClass(this,"leaflet-tile-loaded");layer.fire("tileload",{tile:this,url:this.src})}layer._tileLoaded()},_tileOnError:function(){var layer=this._layer;layer.fire("tileerror",{tile:this,url:this.src});var newUrl=layer.options.errorTileUrl;if(newUrl){this.src=newUrl}layer._tileLoaded()}});L.tileLayer=function(url,options){return new L.TileLayer(url,options)};L.TileLayer.WMS=L.TileLayer.extend({defaultWmsParams:{service:"WMS",request:"GetMap",version:"1.1.1",layers:"",styles:"",format:"image/jpeg",transparent:false},initialize:function(url,options){this._url=url;var wmsParams=L.extend({},this.defaultWmsParams),tileSize=options.tileSize||this.options.tileSize;if(options.detectRetina&&L.Browser.retina){wmsParams.width=wmsParams.height=tileSize*2}else{wmsParams.width=wmsParams.height=tileSize}for(var i in options){if(!this.options.hasOwnProperty(i)&&i!=="crs"){wmsParams[i]=options[i]}}this.wmsParams=wmsParams;L.setOptions(this,options)},onAdd:function(map){this._crs=this.options.crs||map.options.crs;this._wmsVersion=parseFloat(this.wmsParams.version);var projectionKey=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[projectionKey]=this._crs.code;L.TileLayer.prototype.onAdd.call(this,map)},getTileUrl:function(tilePoint){var map=this._map,tileSize=this.options.tileSize,nwPoint=tilePoint.multiplyBy(tileSize),sePoint=nwPoint.add([tileSize,tileSize]),nw=this._crs.project(map.unproject(nwPoint,tilePoint.z)),se=this._crs.project(map.unproject(sePoint,tilePoint.z)),bbox=this._wmsVersion>=1.3&&this._crs===L.CRS.EPSG4326?[se.y,nw.x,nw.y,se.x].join(","):[nw.x,se.y,se.x,nw.y].join(","),url=L.Util.template(this._url,{s:this._getSubdomain(tilePoint)});return url+L.Util.getParamString(this.wmsParams,url,true)+"&BBOX="+bbox},setParams:function(params,noRedraw){L.extend(this.wmsParams,params);if(!noRedraw){this.redraw()}return this}});L.tileLayer.wms=function(url,options){return new L.TileLayer.WMS(url,options)};L.TileLayer.Canvas=L.TileLayer.extend({options:{async:false},initialize:function(options){L.setOptions(this,options)},redraw:function(){if(this._map){this._reset({hard:true});this._update()}for(var i in this._tiles){this._redrawTile(this._tiles[i])}return this},_redrawTile:function(tile){this.drawTile(tile,tile._tilePoint,this._map._zoom)},_createTile:function(){var tile=L.DomUtil.create("canvas","leaflet-tile");tile.width=tile.height=this.options.tileSize;tile.onselectstart=tile.onmousemove=L.Util.falseFn;return tile},_loadTile:function(tile,tilePoint){tile._layer=this;tile._tilePoint=tilePoint;this._redrawTile(tile);if(!this.options.async){this.tileDrawn(tile)}},drawTile:function(){},tileDrawn:function(tile){this._tileOnLoad.call(tile)}});L.tileLayer.canvas=function(options){return new L.TileLayer.Canvas(options)};L.ImageOverlay=L.Class.extend({includes:L.Mixin.Events,options:{opacity:1},initialize:function(url,bounds,options){this._url=url;this._bounds=L.latLngBounds(bounds);L.setOptions(this,options)},onAdd:function(map){this._map=map;if(!this._image){this._initImage()}map._panes.overlayPane.appendChild(this._image);map.on("viewreset",this._reset,this);if(map.options.zoomAnimation&&L.Browser.any3d){map.on("zoomanim",this._animateZoom,this)}this._reset()},onRemove:function(map){map.getPanes().overlayPane.removeChild(this._image);map.off("viewreset",this._reset,this);if(map.options.zoomAnimation){map.off("zoomanim",this._animateZoom,this)}},addTo:function(map){map.addLayer(this);return this},setOpacity:function(opacity){this.options.opacity=opacity;this._updateOpacity();return this},bringToFront:function(){if(this._image){this._map._panes.overlayPane.appendChild(this._image)}return this},bringToBack:function(){var pane=this._map._panes.overlayPane;if(this._image){pane.insertBefore(this._image,pane.firstChild)}return this},setUrl:function(url){this._url=url;this._image.src=this._url},getAttribution:function(){return this.options.attribution},_initImage:function(){this._image=L.DomUtil.create("img","leaflet-image-layer");if(this._map.options.zoomAnimation&&L.Browser.any3d){L.DomUtil.addClass(this._image,"leaflet-zoom-animated")}else{L.DomUtil.addClass(this._image,"leaflet-zoom-hide")}this._updateOpacity();L.extend(this._image,{galleryimg:"no",onselectstart:L.Util.falseFn,onmousemove:L.Util.falseFn,onload:L.bind(this._onImageLoad,this),src:this._url})},_animateZoom:function(e){var map=this._map,image=this._image,scale=map.getZoomScale(e.zoom),nw=this._bounds.getNorthWest(),se=this._bounds.getSouthEast(),topLeft=map._latLngToNewLayerPoint(nw,e.zoom,e.center),size=map._latLngToNewLayerPoint(se,e.zoom,e.center)._subtract(topLeft),origin=topLeft._add(size._multiplyBy(1/2*(1-1/scale)));image.style[L.DomUtil.TRANSFORM]=L.DomUtil.getTranslateString(origin)+" scale("+scale+") "},_reset:function(){var image=this._image,topLeft=this._map.latLngToLayerPoint(this._bounds.getNorthWest()),size=this._map.latLngToLayerPoint(this._bounds.getSouthEast())._subtract(topLeft);L.DomUtil.setPosition(image,topLeft);image.style.width=size.x+"px";image.style.height=size.y+"px"},_onImageLoad:function(){this.fire("load")},_updateOpacity:function(){L.DomUtil.setOpacity(this._image,this.options.opacity)}});L.imageOverlay=function(url,bounds,options){return new L.ImageOverlay(url,bounds,options)};L.Icon=L.Class.extend({options:{className:""},initialize:function(options){L.setOptions(this,options)},createIcon:function(oldIcon){return this._createIcon("icon",oldIcon)},createShadow:function(oldIcon){return this._createIcon("shadow",oldIcon)},_createIcon:function(name,oldIcon){var src=this._getIconUrl(name);if(!src){if(name==="icon"){throw new Error("iconUrl not set in Icon options (see the docs).")}return null}var img;if(!oldIcon||oldIcon.tagName!=="IMG"){img=this._createImg(src)}else{img=this._createImg(src,oldIcon)}this._setIconStyles(img,name);return img},_setIconStyles:function(img,name){var options=this.options,size=L.point(options[name+"Size"]),anchor;if(name==="shadow"){anchor=L.point(options.shadowAnchor||options.iconAnchor)}else{anchor=L.point(options.iconAnchor)}if(!anchor&&size){anchor=size.divideBy(2,true)}img.className="leaflet-marker-"+name+" "+options.className;if(anchor){img.style.marginLeft=-anchor.x+"px";img.style.marginTop=-anchor.y+"px"}if(size){img.style.width=size.x+"px";img.style.height=size.y+"px"}},_createImg:function(src,el){el=el||document.createElement("img");el.src=src;return el},_getIconUrl:function(name){if(L.Browser.retina&&this.options[name+"RetinaUrl"]){return this.options[name+"RetinaUrl"]}return this.options[name+"Url"]}});L.icon=function(options){return new L.Icon(options)};L.Icon.Default=L.Icon.extend({options:{iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],shadowSize:[41,41]},_getIconUrl:function(name){var key=name+"Url";if(this.options[key]){return this.options[key]}if(L.Browser.retina&&name==="icon"){name+="-2x"}var path=L.Icon.Default.imagePath;if(!path){throw new Error("Couldn't autodetect L.Icon.Default.imagePath, set it manually.")}return path+"/marker-"+name+".png"}});L.Icon.Default.imagePath=function(){var scripts=document.getElementsByTagName("script"),leafletRe=/[\/^]leaflet[\-\._]?([\w\-\._]*)\.js\??/;var i,len,src,matches,path;for(i=0,len=scripts.length;i<len;i++){src=scripts[i].src;matches=src.match(leafletRe);if(matches){path=src.split(leafletRe)[0];return(path?path+"/":"")+"images"}}}();L.Marker=L.Class.extend({includes:L.Mixin.Events,options:{icon:new L.Icon.Default,title:"",alt:"",clickable:true,draggable:false,keyboard:true,zIndexOffset:0,opacity:1,riseOnHover:false,riseOffset:250},initialize:function(latlng,options){L.setOptions(this,options);this._latlng=L.latLng(latlng)},onAdd:function(map){this._map=map;map.on("viewreset",this.update,this);this._initIcon();this.update();this.fire("add");if(map.options.zoomAnimation&&map.options.markerZoomAnimation){map.on("zoomanim",this._animateZoom,this)}},addTo:function(map){map.addLayer(this);return this},onRemove:function(map){if(this.dragging){this.dragging.disable()}this._removeIcon();this._removeShadow();this.fire("remove");map.off({viewreset:this.update,zoomanim:this._animateZoom},this);this._map=null},getLatLng:function(){return this._latlng},setLatLng:function(latlng){this._latlng=L.latLng(latlng);this.update();return this.fire("move",{latlng:this._latlng})},setZIndexOffset:function(offset){this.options.zIndexOffset=offset;this.update();return this},setIcon:function(icon){this.options.icon=icon;if(this._map){this._initIcon();this.update()}if(this._popup){this.bindPopup(this._popup)}return this},update:function(){if(this._icon){this._setPos(this._map.latLngToLayerPoint(this._latlng).round())}return this},_initIcon:function(){var options=this.options,map=this._map,animation=map.options.zoomAnimation&&map.options.markerZoomAnimation,classToAdd=animation?"leaflet-zoom-animated":"leaflet-zoom-hide";var icon=options.icon.createIcon(this._icon),addIcon=false;if(icon!==this._icon){if(this._icon){this._removeIcon()}addIcon=true;if(options.title){icon.title=options.title}if(options.alt){icon.alt=options.alt}}L.DomUtil.addClass(icon,classToAdd);if(options.keyboard){icon.tabIndex="0"}this._icon=icon;this._initInteraction();if(options.riseOnHover){L.DomEvent.on(icon,"mouseover",this._bringToFront,this).on(icon,"mouseout",this._resetZIndex,this)}var newShadow=options.icon.createShadow(this._shadow),addShadow=false;if(newShadow!==this._shadow){this._removeShadow();addShadow=true}if(newShadow){L.DomUtil.addClass(newShadow,classToAdd)}this._shadow=newShadow;if(options.opacity<1){this._updateOpacity()}var panes=this._map._panes;if(addIcon){panes.markerPane.appendChild(this._icon)}if(newShadow&&addShadow){panes.shadowPane.appendChild(this._shadow)}},_removeIcon:function(){if(this.options.riseOnHover){L.DomEvent.off(this._icon,"mouseover",this._bringToFront).off(this._icon,"mouseout",this._resetZIndex)}this._map._panes.markerPane.removeChild(this._icon);this._icon=null},_removeShadow:function(){if(this._shadow){this._map._panes.shadowPane.removeChild(this._shadow)}this._shadow=null},_setPos:function(pos){L.DomUtil.setPosition(this._icon,pos);if(this._shadow){L.DomUtil.setPosition(this._shadow,pos)}this._zIndex=pos.y+this.options.zIndexOffset;this._resetZIndex()},_updateZIndex:function(offset){this._icon.style.zIndex=this._zIndex+offset},_animateZoom:function(opt){var pos=this._map._latLngToNewLayerPoint(this._latlng,opt.zoom,opt.center).round();this._setPos(pos)},_initInteraction:function(){if(!this.options.clickable){return}var icon=this._icon,events=["dblclick","mousedown","mouseover","mouseout","contextmenu"];L.DomUtil.addClass(icon,"leaflet-clickable");L.DomEvent.on(icon,"click",this._onMouseClick,this);L.DomEvent.on(icon,"keypress",this._onKeyPress,this);for(var i=0;i<events.length;i++){L.DomEvent.on(icon,events[i],this._fireMouseEvent,this)}if(L.Handler.MarkerDrag){this.dragging=new L.Handler.MarkerDrag(this);if(this.options.draggable){this.dragging.enable()}}},_onMouseClick:function(e){var wasDragged=this.dragging&&this.dragging.moved();if(this.hasEventListeners(e.type)||wasDragged){L.DomEvent.stopPropagation(e)}if(wasDragged){return}if((!this.dragging||!this.dragging._enabled)&&this._map.dragging&&this._map.dragging.moved()){return}this.fire(e.type,{originalEvent:e,latlng:this._latlng})},_onKeyPress:function(e){if(e.keyCode===13){this.fire("click",{originalEvent:e,latlng:this._latlng})}},_fireMouseEvent:function(e){this.fire(e.type,{originalEvent:e,latlng:this._latlng});if(e.type==="contextmenu"&&this.hasEventListeners(e.type)){L.DomEvent.preventDefault(e)}if(e.type!=="mousedown"){L.DomEvent.stopPropagation(e)}else{L.DomEvent.preventDefault(e)}},setOpacity:function(opacity){this.options.opacity=opacity;if(this._map){this._updateOpacity()}return this},_updateOpacity:function(){L.DomUtil.setOpacity(this._icon,this.options.opacity);if(this._shadow){L.DomUtil.setOpacity(this._shadow,this.options.opacity)}},_bringToFront:function(){this._updateZIndex(this.options.riseOffset)},_resetZIndex:function(){this._updateZIndex(0)}});L.marker=function(latlng,options){return new L.Marker(latlng,options)};L.DivIcon=L.Icon.extend({options:{iconSize:[12,12],className:"leaflet-div-icon",html:false},createIcon:function(oldIcon){var div=oldIcon&&oldIcon.tagName==="DIV"?oldIcon:document.createElement("div"),options=this.options;if(options.html!==false){div.innerHTML=options.html}else{div.innerHTML=""}if(options.bgPos){div.style.backgroundPosition=-options.bgPos.x+"px "+-options.bgPos.y+"px"}this._setIconStyles(div,"icon");return div},createShadow:function(){return null}});L.divIcon=function(options){return new L.DivIcon(options)};L.Map.mergeOptions({closePopupOnClick:true});L.Popup=L.Class.extend({includes:L.Mixin.Events,options:{minWidth:50,maxWidth:300,autoPan:true,closeButton:true,offset:[0,7],autoPanPadding:[5,5],keepInView:false,className:"",zoomAnimation:true},initialize:function(options,source){L.setOptions(this,options);this._source=source;this._animated=L.Browser.any3d&&this.options.zoomAnimation;this._isOpen=false},onAdd:function(map){this._map=map;if(!this._container){this._initLayout()}var animFade=map.options.fadeAnimation;if(animFade){L.DomUtil.setOpacity(this._container,0)}map._panes.popupPane.appendChild(this._container);map.on(this._getEvents(),this);this.update();if(animFade){L.DomUtil.setOpacity(this._container,1)}this.fire("open");map.fire("popupopen",{popup:this});if(this._source){this._source.fire("popupopen",{popup:this})}},addTo:function(map){map.addLayer(this);return this},openOn:function(map){map.openPopup(this);return this},onRemove:function(map){map._panes.popupPane.removeChild(this._container);L.Util.falseFn(this._container.offsetWidth);map.off(this._getEvents(),this);if(map.options.fadeAnimation){L.DomUtil.setOpacity(this._container,0)}this._map=null;this.fire("close");map.fire("popupclose",{popup:this});if(this._source){this._source.fire("popupclose",{popup:this})}},getLatLng:function(){return this._latlng},setLatLng:function(latlng){this._latlng=L.latLng(latlng);if(this._map){this._updatePosition();this._adjustPan()}return this},getContent:function(){return this._content},setContent:function(content){this._content=content;this.update();return this},update:function(){if(!this._map){return}this._container.style.visibility="hidden";this._updateContent();this._updateLayout();this._updatePosition();this._container.style.visibility="";this._adjustPan()},_getEvents:function(){var events={viewreset:this._updatePosition};if(this._animated){events.zoomanim=this._zoomAnimation}if("closeOnClick"in this.options?this.options.closeOnClick:this._map.options.closePopupOnClick){events.preclick=this._close}if(this.options.keepInView){events.moveend=this._adjustPan}return events},_close:function(){if(this._map){this._map.closePopup(this)}},_initLayout:function(){var prefix="leaflet-popup",containerClass=prefix+" "+this.options.className+" leaflet-zoom-"+(this._animated?"animated":"hide"),container=this._container=L.DomUtil.create("div",containerClass),closeButton;if(this.options.closeButton){closeButton=this._closeButton=L.DomUtil.create("a",prefix+"-close-button",container);closeButton.href="#close";closeButton.innerHTML="&#215;";L.DomEvent.disableClickPropagation(closeButton);L.DomEvent.on(closeButton,"click",this._onCloseButtonClick,this)}var wrapper=this._wrapper=L.DomUtil.create("div",prefix+"-content-wrapper",container);L.DomEvent.disableClickPropagation(wrapper);this._contentNode=L.DomUtil.create("div",prefix+"-content",wrapper);L.DomEvent.disableScrollPropagation(this._contentNode);L.DomEvent.on(wrapper,"contextmenu",L.DomEvent.stopPropagation);this._tipContainer=L.DomUtil.create("div",prefix+"-tip-container",container);this._tip=L.DomUtil.create("div",prefix+"-tip",this._tipContainer)},_updateContent:function(){if(!this._content){return}if(typeof this._content==="string"){this._contentNode.innerHTML=this._content}else{while(this._contentNode.hasChildNodes()){this._contentNode.removeChild(this._contentNode.firstChild)}this._contentNode.appendChild(this._content)}this.fire("contentupdate")},_updateLayout:function(){var container=this._contentNode,style=container.style;style.width="";style.whiteSpace="nowrap";var width=container.offsetWidth;width=Math.min(width,this.options.maxWidth);width=Math.max(width,this.options.minWidth);style.width=width+1+"px";style.whiteSpace="";style.height="";var height=container.offsetHeight,maxHeight=this.options.maxHeight,scrolledClass="leaflet-popup-scrolled";if(maxHeight&&height>maxHeight){style.height=maxHeight+"px";L.DomUtil.addClass(container,scrolledClass)}else{L.DomUtil.removeClass(container,scrolledClass)}this._containerWidth=this._container.offsetWidth},_updatePosition:function(){if(!this._map){return}var pos=this._map.latLngToLayerPoint(this._latlng),animated=this._animated,offset=L.point(this.options.offset);if(animated){L.DomUtil.setPosition(this._container,pos)}this._containerBottom=-offset.y-(animated?0:pos.y);this._containerLeft=-Math.round(this._containerWidth/2)+offset.x+(animated?0:pos.x);this._container.style.bottom=this._containerBottom+"px";this._container.style.left=this._containerLeft+"px"},_zoomAnimation:function(opt){var pos=this._map._latLngToNewLayerPoint(this._latlng,opt.zoom,opt.center);L.DomUtil.setPosition(this._container,pos)},_adjustPan:function(){if(!this.options.autoPan){return}var map=this._map,containerHeight=this._container.offsetHeight,containerWidth=this._containerWidth,layerPos=new L.Point(this._containerLeft,-containerHeight-this._containerBottom);if(this._animated){layerPos._add(L.DomUtil.getPosition(this._container))}var containerPos=map.layerPointToContainerPoint(layerPos),padding=L.point(this.options.autoPanPadding),paddingTL=L.point(this.options.autoPanPaddingTopLeft||padding),paddingBR=L.point(this.options.autoPanPaddingBottomRight||padding),size=map.getSize(),dx=0,dy=0;if(containerPos.x+containerWidth+paddingBR.x>size.x){dx=containerPos.x+containerWidth-size.x+paddingBR.x}if(containerPos.x-dx-paddingTL.x<0){dx=containerPos.x-paddingTL.x}if(containerPos.y+containerHeight+paddingBR.y>size.y){dy=containerPos.y+containerHeight-size.y+paddingBR.y}if(containerPos.y-dy-paddingTL.y<0){dy=containerPos.y-paddingTL.y}if(dx||dy){map.fire("autopanstart").panBy([dx,dy])}},_onCloseButtonClick:function(e){this._close();L.DomEvent.stop(e)}});L.popup=function(options,source){return new L.Popup(options,source)};L.Map.include({openPopup:function(popup,latlng,options){this.closePopup();if(!(popup instanceof L.Popup)){var content=popup;popup=new L.Popup(options).setLatLng(latlng).setContent(content)}popup._isOpen=true;this._popup=popup;return this.addLayer(popup)},closePopup:function(popup){if(!popup||popup===this._popup){popup=this._popup;this._popup=null}if(popup){this.removeLayer(popup);popup._isOpen=false}return this}});L.Marker.include({openPopup:function(){if(this._popup&&this._map&&!this._map.hasLayer(this._popup)){this._popup.setLatLng(this._latlng);this._map.openPopup(this._popup)}return this},closePopup:function(){if(this._popup){this._popup._close()}return this},togglePopup:function(){if(this._popup){if(this._popup._isOpen){this.closePopup()}else{this.openPopup()}}return this},bindPopup:function(content,options){var anchor=L.point(this.options.icon.options.popupAnchor||[0,0]);anchor=anchor.add(L.Popup.prototype.options.offset);if(options&&options.offset){anchor=anchor.add(options.offset)}options=L.extend({offset:anchor},options);if(!this._popupHandlersAdded){this.on("click",this.togglePopup,this).on("remove",this.closePopup,this).on("move",this._movePopup,this);this._popupHandlersAdded=true}if(content instanceof L.Popup){L.setOptions(content,options);this._popup=content;content._source=this}else{this._popup=new L.Popup(options,this).setContent(content)}return this},setPopupContent:function(content){if(this._popup){this._popup.setContent(content)}return this},unbindPopup:function(){if(this._popup){this._popup=null;this.off("click",this.togglePopup,this).off("remove",this.closePopup,this).off("move",this._movePopup,this);this._popupHandlersAdded=false}return this},getPopup:function(){return this._popup},_movePopup:function(e){this._popup.setLatLng(e.latlng)}});L.LayerGroup=L.Class.extend({initialize:function(layers){this._layers={};var i,len;if(layers){for(i=0,len=layers.length;i<len;i++){this.addLayer(layers[i])}}},addLayer:function(layer){var id=this.getLayerId(layer);this._layers[id]=layer;if(this._map){this._map.addLayer(layer)}return this},removeLayer:function(layer){var id=layer in this._layers?layer:this.getLayerId(layer);if(this._map&&this._layers[id]){this._map.removeLayer(this._layers[id])}delete this._layers[id];return this},hasLayer:function(layer){if(!layer){return false}return layer in this._layers||this.getLayerId(layer)in this._layers},clearLayers:function(){this.eachLayer(this.removeLayer,this);return this},invoke:function(methodName){var args=Array.prototype.slice.call(arguments,1),i,layer;for(i in this._layers){layer=this._layers[i];if(layer[methodName]){layer[methodName].apply(layer,args)}}return this},onAdd:function(map){this._map=map;this.eachLayer(map.addLayer,map)},onRemove:function(map){this.eachLayer(map.removeLayer,map);this._map=null},addTo:function(map){map.addLayer(this);return this},eachLayer:function(method,context){for(var i in this._layers){method.call(context,this._layers[i])}return this},getLayer:function(id){return this._layers[id]},getLayers:function(){var layers=[];for(var i in this._layers){layers.push(this._layers[i])}return layers},setZIndex:function(zIndex){return this.invoke("setZIndex",zIndex)},getLayerId:function(layer){return L.stamp(layer);
  24. }});L.layerGroup=function(layers){return new L.LayerGroup(layers)};L.FeatureGroup=L.LayerGroup.extend({includes:L.Mixin.Events,statics:{EVENTS:"click dblclick mouseover mouseout mousemove contextmenu popupopen popupclose"},addLayer:function(layer){if(this.hasLayer(layer)){return this}if("on"in layer){layer.on(L.FeatureGroup.EVENTS,this._propagateEvent,this)}L.LayerGroup.prototype.addLayer.call(this,layer);if(this._popupContent&&layer.bindPopup){layer.bindPopup(this._popupContent,this._popupOptions)}return this.fire("layeradd",{layer:layer})},removeLayer:function(layer){if(!this.hasLayer(layer)){return this}if(layer in this._layers){layer=this._layers[layer]}if("off"in layer){layer.off(L.FeatureGroup.EVENTS,this._propagateEvent,this)}L.LayerGroup.prototype.removeLayer.call(this,layer);if(this._popupContent){this.invoke("unbindPopup")}return this.fire("layerremove",{layer:layer})},bindPopup:function(content,options){this._popupContent=content;this._popupOptions=options;return this.invoke("bindPopup",content,options)},openPopup:function(latlng){for(var id in this._layers){this._layers[id].openPopup(latlng);break}return this},setStyle:function(style){return this.invoke("setStyle",style)},bringToFront:function(){return this.invoke("bringToFront")},bringToBack:function(){return this.invoke("bringToBack")},getBounds:function(){var bounds=new L.LatLngBounds;this.eachLayer(function(layer){bounds.extend(layer instanceof L.Marker?layer.getLatLng():layer.getBounds())});return bounds},_propagateEvent:function(e){e=L.extend({layer:e.target,target:this},e);this.fire(e.type,e)}});L.featureGroup=function(layers){return new L.FeatureGroup(layers)};L.Path=L.Class.extend({includes:[L.Mixin.Events],statics:{CLIP_PADDING:function(){var max=L.Browser.mobile?1280:2e3,target=(max/Math.max(window.outerWidth,window.outerHeight)-1)/2;return Math.max(0,Math.min(.5,target))}()},options:{stroke:true,color:"#0033ff",dashArray:null,lineCap:null,lineJoin:null,weight:5,opacity:.5,fill:false,fillColor:null,fillOpacity:.2,clickable:true},initialize:function(options){L.setOptions(this,options)},onAdd:function(map){this._map=map;if(!this._container){this._initElements();this._initEvents()}this.projectLatlngs();this._updatePath();if(this._container){this._map._pathRoot.appendChild(this._container)}this.fire("add");map.on({viewreset:this.projectLatlngs,moveend:this._updatePath},this)},addTo:function(map){map.addLayer(this);return this},onRemove:function(map){map._pathRoot.removeChild(this._container);this.fire("remove");this._map=null;if(L.Browser.vml){this._container=null;this._stroke=null;this._fill=null}map.off({viewreset:this.projectLatlngs,moveend:this._updatePath},this)},projectLatlngs:function(){},setStyle:function(style){L.setOptions(this,style);if(this._container){this._updateStyle()}return this},redraw:function(){if(this._map){this.projectLatlngs();this._updatePath()}return this}});L.Map.include({_updatePathViewport:function(){var p=L.Path.CLIP_PADDING,size=this.getSize(),panePos=L.DomUtil.getPosition(this._mapPane),min=panePos.multiplyBy(-1)._subtract(size.multiplyBy(p)._round()),max=min.add(size.multiplyBy(1+p*2)._round());this._pathViewport=new L.Bounds(min,max)}});L.Path.SVG_NS="http://www.w3.org/2000/svg";L.Browser.svg=!!(document.createElementNS&&document.createElementNS(L.Path.SVG_NS,"svg").createSVGRect);L.Path=L.Path.extend({statics:{SVG:L.Browser.svg},bringToFront:function(){var root=this._map._pathRoot,path=this._container;if(path&&root.lastChild!==path){root.appendChild(path)}return this},bringToBack:function(){var root=this._map._pathRoot,path=this._container,first=root.firstChild;if(path&&first!==path){root.insertBefore(path,first)}return this},getPathString:function(){},_createElement:function(name){return document.createElementNS(L.Path.SVG_NS,name)},_initElements:function(){this._map._initPathRoot();this._initPath();this._initStyle()},_initPath:function(){this._container=this._createElement("g");this._path=this._createElement("path");if(this.options.className){L.DomUtil.addClass(this._path,this.options.className)}this._container.appendChild(this._path)},_initStyle:function(){if(this.options.stroke){this._path.setAttribute("stroke-linejoin","round");this._path.setAttribute("stroke-linecap","round")}if(this.options.fill){this._path.setAttribute("fill-rule","evenodd")}if(this.options.pointerEvents){this._path.setAttribute("pointer-events",this.options.pointerEvents)}if(!this.options.clickable&&!this.options.pointerEvents){this._path.setAttribute("pointer-events","none")}this._updateStyle()},_updateStyle:function(){if(this.options.stroke){this._path.setAttribute("stroke",this.options.color);this._path.setAttribute("stroke-opacity",this.options.opacity);this._path.setAttribute("stroke-width",this.options.weight);if(this.options.dashArray){this._path.setAttribute("stroke-dasharray",this.options.dashArray)}else{this._path.removeAttribute("stroke-dasharray")}if(this.options.lineCap){this._path.setAttribute("stroke-linecap",this.options.lineCap)}if(this.options.lineJoin){this._path.setAttribute("stroke-linejoin",this.options.lineJoin)}}else{this._path.setAttribute("stroke","none")}if(this.options.fill){this._path.setAttribute("fill",this.options.fillColor||this.options.color);this._path.setAttribute("fill-opacity",this.options.fillOpacity)}else{this._path.setAttribute("fill","none")}},_updatePath:function(){var str=this.getPathString();if(!str){str="M0 0"}this._path.setAttribute("d",str)},_initEvents:function(){if(this.options.clickable){if(L.Browser.svg||!L.Browser.vml){L.DomUtil.addClass(this._path,"leaflet-clickable")}L.DomEvent.on(this._container,"click",this._onMouseClick,this);var events=["dblclick","mousedown","mouseover","mouseout","mousemove","contextmenu"];for(var i=0;i<events.length;i++){L.DomEvent.on(this._container,events[i],this._fireMouseEvent,this)}}},_onMouseClick:function(e){if(this._map.dragging&&this._map.dragging.moved()){return}this._fireMouseEvent(e)},_fireMouseEvent:function(e){if(!this._map||!this.hasEventListeners(e.type)){return}var map=this._map,containerPoint=map.mouseEventToContainerPoint(e),layerPoint=map.containerPointToLayerPoint(containerPoint),latlng=map.layerPointToLatLng(layerPoint);this.fire(e.type,{latlng:latlng,layerPoint:layerPoint,containerPoint:containerPoint,originalEvent:e});if(e.type==="contextmenu"){L.DomEvent.preventDefault(e)}if(e.type!=="mousemove"){L.DomEvent.stopPropagation(e)}}});L.Map.include({_initPathRoot:function(){if(!this._pathRoot){this._pathRoot=L.Path.prototype._createElement("svg");this._panes.overlayPane.appendChild(this._pathRoot);if(this.options.zoomAnimation&&L.Browser.any3d){L.DomUtil.addClass(this._pathRoot,"leaflet-zoom-animated");this.on({zoomanim:this._animatePathZoom,zoomend:this._endPathZoom})}else{L.DomUtil.addClass(this._pathRoot,"leaflet-zoom-hide")}this.on("moveend",this._updateSvgViewport);this._updateSvgViewport()}},_animatePathZoom:function(e){var scale=this.getZoomScale(e.zoom),offset=this._getCenterOffset(e.center)._multiplyBy(-scale)._add(this._pathViewport.min);this._pathRoot.style[L.DomUtil.TRANSFORM]=L.DomUtil.getTranslateString(offset)+" scale("+scale+") ";this._pathZooming=true},_endPathZoom:function(){this._pathZooming=false},_updateSvgViewport:function(){if(this._pathZooming){return}this._updatePathViewport();var vp=this._pathViewport,min=vp.min,max=vp.max,width=max.x-min.x,height=max.y-min.y,root=this._pathRoot,pane=this._panes.overlayPane;if(L.Browser.mobileWebkit){pane.removeChild(root)}L.DomUtil.setPosition(root,min);root.setAttribute("width",width);root.setAttribute("height",height);root.setAttribute("viewBox",[min.x,min.y,width,height].join(" "));if(L.Browser.mobileWebkit){pane.appendChild(root)}}});L.Path.include({bindPopup:function(content,options){if(content instanceof L.Popup){this._popup=content}else{if(!this._popup||options){this._popup=new L.Popup(options,this)}this._popup.setContent(content)}if(!this._popupHandlersAdded){this.on("click",this._openPopup,this).on("remove",this.closePopup,this);this._popupHandlersAdded=true}return this},unbindPopup:function(){if(this._popup){this._popup=null;this.off("click",this._openPopup).off("remove",this.closePopup);this._popupHandlersAdded=false}return this},openPopup:function(latlng){if(this._popup){latlng=latlng||this._latlng||this._latlngs[Math.floor(this._latlngs.length/2)];this._openPopup({latlng:latlng})}return this},closePopup:function(){if(this._popup){this._popup._close()}return this},_openPopup:function(e){this._popup.setLatLng(e.latlng);this._map.openPopup(this._popup)}});L.Browser.vml=!L.Browser.svg&&function(){try{var div=document.createElement("div");div.innerHTML='<v:shape adj="1"/>';var shape=div.firstChild;shape.style.behavior="url(#default#VML)";return shape&&typeof shape.adj==="object"}catch(e){return false}}();L.Path=L.Browser.svg||!L.Browser.vml?L.Path:L.Path.extend({statics:{VML:true,CLIP_PADDING:.02},_createElement:function(){try{document.namespaces.add("lvml","urn:schemas-microsoft-com:vml");return function(name){return document.createElement("<lvml:"+name+' class="lvml">')}}catch(e){return function(name){return document.createElement("<"+name+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}(),_initPath:function(){var container=this._container=this._createElement("shape");L.DomUtil.addClass(container,"leaflet-vml-shape"+(this.options.className?" "+this.options.className:""));if(this.options.clickable){L.DomUtil.addClass(container,"leaflet-clickable")}container.coordsize="1 1";this._path=this._createElement("path");container.appendChild(this._path);this._map._pathRoot.appendChild(container)},_initStyle:function(){this._updateStyle()},_updateStyle:function(){var stroke=this._stroke,fill=this._fill,options=this.options,container=this._container;container.stroked=options.stroke;container.filled=options.fill;if(options.stroke){if(!stroke){stroke=this._stroke=this._createElement("stroke");stroke.endcap="round";container.appendChild(stroke)}stroke.weight=options.weight+"px";stroke.color=options.color;stroke.opacity=options.opacity;if(options.dashArray){stroke.dashStyle=L.Util.isArray(options.dashArray)?options.dashArray.join(" "):options.dashArray.replace(/( *, *)/g," ")}else{stroke.dashStyle=""}if(options.lineCap){stroke.endcap=options.lineCap.replace("butt","flat")}if(options.lineJoin){stroke.joinstyle=options.lineJoin}}else if(stroke){container.removeChild(stroke);this._stroke=null}if(options.fill){if(!fill){fill=this._fill=this._createElement("fill");container.appendChild(fill)}fill.color=options.fillColor||options.color;fill.opacity=options.fillOpacity}else if(fill){container.removeChild(fill);this._fill=null}},_updatePath:function(){var style=this._container.style;style.display="none";this._path.v=this.getPathString()+" ";style.display=""}});L.Map.include(L.Browser.svg||!L.Browser.vml?{}:{_initPathRoot:function(){if(this._pathRoot){return}var root=this._pathRoot=document.createElement("div");root.className="leaflet-vml-container";this._panes.overlayPane.appendChild(root);this.on("moveend",this._updatePathViewport);this._updatePathViewport()}});L.Browser.canvas=function(){return!!document.createElement("canvas").getContext}();L.Path=L.Path.SVG&&!window.L_PREFER_CANVAS||!L.Browser.canvas?L.Path:L.Path.extend({statics:{CANVAS:true,SVG:false},redraw:function(){if(this._map){this.projectLatlngs();this._requestUpdate()}return this},setStyle:function(style){L.setOptions(this,style);if(this._map){this._updateStyle();this._requestUpdate()}return this},onRemove:function(map){map.off("viewreset",this.projectLatlngs,this).off("moveend",this._updatePath,this);if(this.options.clickable){this._map.off("click",this._onClick,this);this._map.off("mousemove",this._onMouseMove,this)}this._requestUpdate();this.fire("remove");this._map=null},_requestUpdate:function(){if(this._map&&!L.Path._updateRequest){L.Path._updateRequest=L.Util.requestAnimFrame(this._fireMapMoveEnd,this._map)}},_fireMapMoveEnd:function(){L.Path._updateRequest=null;this.fire("moveend")},_initElements:function(){this._map._initPathRoot();this._ctx=this._map._canvasCtx},_updateStyle:function(){var options=this.options;if(options.stroke){this._ctx.lineWidth=options.weight;this._ctx.strokeStyle=options.color}if(options.fill){this._ctx.fillStyle=options.fillColor||options.color}if(options.lineCap){this._ctx.lineCap=options.lineCap}if(options.lineJoin){this._ctx.lineJoin=options.lineJoin}},_drawPath:function(){var i,j,len,len2,point,drawMethod;this._ctx.beginPath();for(i=0,len=this._parts.length;i<len;i++){for(j=0,len2=this._parts[i].length;j<len2;j++){point=this._parts[i][j];drawMethod=(j===0?"move":"line")+"To";this._ctx[drawMethod](point.x,point.y)}if(this instanceof L.Polygon){this._ctx.closePath()}}},_checkIfEmpty:function(){return!this._parts.length},_updatePath:function(){if(this._checkIfEmpty()){return}var ctx=this._ctx,options=this.options;this._drawPath();ctx.save();this._updateStyle();if(options.fill){ctx.globalAlpha=options.fillOpacity;ctx.fill(options.fillRule||"evenodd")}if(options.stroke){ctx.globalAlpha=options.opacity;ctx.stroke()}ctx.restore()},_initEvents:function(){if(this.options.clickable){this._map.on("mousemove",this._onMouseMove,this);this._map.on("click dblclick contextmenu",this._fireMouseEvent,this)}},_fireMouseEvent:function(e){if(this._containsPoint(e.layerPoint)){this.fire(e.type,e)}},_onMouseMove:function(e){if(!this._map||this._map._animatingZoom){return}if(this._containsPoint(e.layerPoint)){this._ctx.canvas.style.cursor="pointer";this._mouseInside=true;this.fire("mouseover",e)}else if(this._mouseInside){this._ctx.canvas.style.cursor="";this._mouseInside=false;this.fire("mouseout",e)}}});L.Map.include(L.Path.SVG&&!window.L_PREFER_CANVAS||!L.Browser.canvas?{}:{_initPathRoot:function(){var root=this._pathRoot,ctx;if(!root){root=this._pathRoot=document.createElement("canvas");root.style.position="absolute";ctx=this._canvasCtx=root.getContext("2d");ctx.lineCap="round";ctx.lineJoin="round";this._panes.overlayPane.appendChild(root);if(this.options.zoomAnimation){this._pathRoot.className="leaflet-zoom-animated";this.on("zoomanim",this._animatePathZoom);this.on("zoomend",this._endPathZoom)}this.on("moveend",this._updateCanvasViewport);this._updateCanvasViewport()}},_updateCanvasViewport:function(){if(this._pathZooming){return}this._updatePathViewport();var vp=this._pathViewport,min=vp.min,size=vp.max.subtract(min),root=this._pathRoot;L.DomUtil.setPosition(root,min);root.width=size.x;root.height=size.y;root.getContext("2d").translate(-min.x,-min.y)}});L.LineUtil={simplify:function(points,tolerance){if(!tolerance||!points.length){return points.slice()}var sqTolerance=tolerance*tolerance;points=this._reducePoints(points,sqTolerance);points=this._simplifyDP(points,sqTolerance);return points},pointToSegmentDistance:function(p,p1,p2){return Math.sqrt(this._sqClosestPointOnSegment(p,p1,p2,true))},closestPointOnSegment:function(p,p1,p2){return this._sqClosestPointOnSegment(p,p1,p2)},_simplifyDP:function(points,sqTolerance){var len=points.length,ArrayConstructor=typeof Uint8Array!==undefined+""?Uint8Array:Array,markers=new ArrayConstructor(len);markers[0]=markers[len-1]=1;this._simplifyDPStep(points,markers,sqTolerance,0,len-1);var i,newPoints=[];for(i=0;i<len;i++){if(markers[i]){newPoints.push(points[i])}}return newPoints},_simplifyDPStep:function(points,markers,sqTolerance,first,last){var maxSqDist=0,index,i,sqDist;for(i=first+1;i<=last-1;i++){sqDist=this._sqClosestPointOnSegment(points[i],points[first],points[last],true);if(sqDist>maxSqDist){index=i;maxSqDist=sqDist}}if(maxSqDist>sqTolerance){markers[index]=1;this._simplifyDPStep(points,markers,sqTolerance,first,index);this._simplifyDPStep(points,markers,sqTolerance,index,last)}},_reducePoints:function(points,sqTolerance){var reducedPoints=[points[0]];for(var i=1,prev=0,len=points.length;i<len;i++){if(this._sqDist(points[i],points[prev])>sqTolerance){reducedPoints.push(points[i]);prev=i}}if(prev<len-1){reducedPoints.push(points[len-1])}return reducedPoints},clipSegment:function(a,b,bounds,useLastCode){var codeA=useLastCode?this._lastCode:this._getBitCode(a,bounds),codeB=this._getBitCode(b,bounds),codeOut,p,newCode;this._lastCode=codeB;while(true){if(!(codeA|codeB)){return[a,b]}else if(codeA&codeB){return false}else{codeOut=codeA||codeB;p=this._getEdgeIntersection(a,b,codeOut,bounds);newCode=this._getBitCode(p,bounds);if(codeOut===codeA){a=p;codeA=newCode}else{b=p;codeB=newCode}}}},_getEdgeIntersection:function(a,b,code,bounds){var dx=b.x-a.x,dy=b.y-a.y,min=bounds.min,max=bounds.max;if(code&8){return new L.Point(a.x+dx*(max.y-a.y)/dy,max.y)}else if(code&4){return new L.Point(a.x+dx*(min.y-a.y)/dy,min.y)}else if(code&2){return new L.Point(max.x,a.y+dy*(max.x-a.x)/dx)}else if(code&1){return new L.Point(min.x,a.y+dy*(min.x-a.x)/dx)}},_getBitCode:function(p,bounds){var code=0;if(p.x<bounds.min.x){code|=1}else if(p.x>bounds.max.x){code|=2}if(p.y<bounds.min.y){code|=4}else if(p.y>bounds.max.y){code|=8}return code},_sqDist:function(p1,p2){var dx=p2.x-p1.x,dy=p2.y-p1.y;return dx*dx+dy*dy},_sqClosestPointOnSegment:function(p,p1,p2,sqDist){var x=p1.x,y=p1.y,dx=p2.x-x,dy=p2.y-y,dot=dx*dx+dy*dy,t;if(dot>0){t=((p.x-x)*dx+(p.y-y)*dy)/dot;if(t>1){x=p2.x;y=p2.y}else if(t>0){x+=dx*t;y+=dy*t}}dx=p.x-x;dy=p.y-y;return sqDist?dx*dx+dy*dy:new L.Point(x,y)}};L.Polyline=L.Path.extend({initialize:function(latlngs,options){L.Path.prototype.initialize.call(this,options);this._latlngs=this._convertLatLngs(latlngs)},options:{smoothFactor:1,noClip:false},projectLatlngs:function(){this._originalPoints=[];for(var i=0,len=this._latlngs.length;i<len;i++){this._originalPoints[i]=this._map.latLngToLayerPoint(this._latlngs[i])}},getPathString:function(){for(var i=0,len=this._parts.length,str="";i<len;i++){str+=this._getPathPartStr(this._parts[i])}return str},getLatLngs:function(){return this._latlngs},setLatLngs:function(latlngs){this._latlngs=this._convertLatLngs(latlngs);return this.redraw()},addLatLng:function(latlng){this._latlngs.push(L.latLng(latlng));return this.redraw()},spliceLatLngs:function(){var removed=[].splice.apply(this._latlngs,arguments);this._convertLatLngs(this._latlngs,true);this.redraw();return removed},closestLayerPoint:function(p){var minDistance=Infinity,parts=this._parts,p1,p2,minPoint=null;for(var j=0,jLen=parts.length;j<jLen;j++){var points=parts[j];for(var i=1,len=points.length;i<len;i++){p1=points[i-1];p2=points[i];var sqDist=L.LineUtil._sqClosestPointOnSegment(p,p1,p2,true);if(sqDist<minDistance){minDistance=sqDist;minPoint=L.LineUtil._sqClosestPointOnSegment(p,p1,p2)}}}if(minPoint){minPoint.distance=Math.sqrt(minDistance)}return minPoint},getBounds:function(){return new L.LatLngBounds(this.getLatLngs())},_convertLatLngs:function(latlngs,overwrite){var i,len,target=overwrite?latlngs:[];for(i=0,len=latlngs.length;i<len;i++){if(L.Util.isArray(latlngs[i])&&typeof latlngs[i][0]!=="number"){return}target[i]=L.latLng(latlngs[i])}return target},_initEvents:function(){L.Path.prototype._initEvents.call(this)},_getPathPartStr:function(points){var round=L.Path.VML;for(var j=0,len2=points.length,str="",p;j<len2;j++){p=points[j];if(round){p._round()}str+=(j?"L":"M")+p.x+" "+p.y}return str},_clipPoints:function(){var points=this._originalPoints,len=points.length,i,k,segment;if(this.options.noClip){this._parts=[points];return}this._parts=[];var parts=this._parts,vp=this._map._pathViewport,lu=L.LineUtil;for(i=0,k=0;i<len-1;i++){segment=lu.clipSegment(points[i],points[i+1],vp,i);if(!segment){continue}parts[k]=parts[k]||[];parts[k].push(segment[0]);if(segment[1]!==points[i+1]||i===len-2){parts[k].push(segment[1]);k++}}},_simplifyPoints:function(){var parts=this._parts,lu=L.LineUtil;for(var i=0,len=parts.length;i<len;i++){parts[i]=lu.simplify(parts[i],this.options.smoothFactor)}},_updatePath:function(){if(!this._map){return}this._clipPoints();this._simplifyPoints();L.Path.prototype._updatePath.call(this)}});L.polyline=function(latlngs,options){return new L.Polyline(latlngs,options)};L.PolyUtil={};L.PolyUtil.clipPolygon=function(points,bounds){var clippedPoints,edges=[1,4,2,8],i,j,k,a,b,len,edge,p,lu=L.LineUtil;for(i=0,len=points.length;i<len;i++){points[i]._code=lu._getBitCode(points[i],bounds)}for(k=0;k<4;k++){edge=edges[k];clippedPoints=[];for(i=0,len=points.length,j=len-1;i<len;j=i++){a=points[i];b=points[j];if(!(a._code&edge)){if(b._code&edge){p=lu._getEdgeIntersection(b,a,edge,bounds);p._code=lu._getBitCode(p,bounds);clippedPoints.push(p)}clippedPoints.push(a)}else if(!(b._code&edge)){p=lu._getEdgeIntersection(b,a,edge,bounds);p._code=lu._getBitCode(p,bounds);clippedPoints.push(p)}}points=clippedPoints}return points};L.Polygon=L.Polyline.extend({options:{fill:true},initialize:function(latlngs,options){L.Polyline.prototype.initialize.call(this,latlngs,options);this._initWithHoles(latlngs)},_initWithHoles:function(latlngs){var i,len,hole;if(latlngs&&L.Util.isArray(latlngs[0])&&typeof latlngs[0][0]!=="number"){this._latlngs=this._convertLatLngs(latlngs[0]);this._holes=latlngs.slice(1);for(i=0,len=this._holes.length;i<len;i++){hole=this._holes[i]=this._convertLatLngs(this._holes[i]);if(hole[0].equals(hole[hole.length-1])){hole.pop()}}}latlngs=this._latlngs;if(latlngs.length>=2&&latlngs[0].equals(latlngs[latlngs.length-1])){latlngs.pop()}},projectLatlngs:function(){L.Polyline.prototype.projectLatlngs.call(this);this._holePoints=[];if(!this._holes){return}var i,j,len,len2;for(i=0,len=this._holes.length;i<len;i++){this._holePoints[i]=[];for(j=0,len2=this._holes[i].length;j<len2;j++){this._holePoints[i][j]=this._map.latLngToLayerPoint(this._holes[i][j])}}},setLatLngs:function(latlngs){if(latlngs&&L.Util.isArray(latlngs[0])&&typeof latlngs[0][0]!=="number"){this._initWithHoles(latlngs);return this.redraw()}else{return L.Polyline.prototype.setLatLngs.call(this,latlngs)}},_clipPoints:function(){var points=this._originalPoints,newParts=[];this._parts=[points].concat(this._holePoints);if(this.options.noClip){return}for(var i=0,len=this._parts.length;i<len;i++){var clipped=L.PolyUtil.clipPolygon(this._parts[i],this._map._pathViewport);if(clipped.length){newParts.push(clipped)}}this._parts=newParts},_getPathPartStr:function(points){var str=L.Polyline.prototype._getPathPartStr.call(this,points);return str+(L.Browser.svg?"z":"x")}});L.polygon=function(latlngs,options){return new L.Polygon(latlngs,options)};(function(){function createMulti(Klass){return L.FeatureGroup.extend({initialize:function(latlngs,options){this._layers={};this._options=options;this.setLatLngs(latlngs)},setLatLngs:function(latlngs){var i=0,len=latlngs.length;this.eachLayer(function(layer){if(i<len){layer.setLatLngs(latlngs[i++])}else{this.removeLayer(layer)}},this);while(i<len){this.addLayer(new Klass(latlngs[i++],this._options))}return this},getLatLngs:function(){var latlngs=[];this.eachLayer(function(layer){latlngs.push(layer.getLatLngs())});return latlngs}})}L.MultiPolyline=createMulti(L.Polyline);L.MultiPolygon=createMulti(L.Polygon);L.multiPolyline=function(latlngs,options){return new L.MultiPolyline(latlngs,options)};L.multiPolygon=function(latlngs,options){return new L.MultiPolygon(latlngs,options)}})();L.Rectangle=L.Polygon.extend({initialize:function(latLngBounds,options){L.Polygon.prototype.initialize.call(this,this._boundsToLatLngs(latLngBounds),options)},setBounds:function(latLngBounds){this.setLatLngs(this._boundsToLatLngs(latLngBounds))},_boundsToLatLngs:function(latLngBounds){latLngBounds=L.latLngBounds(latLngBounds);return[latLngBounds.getSouthWest(),latLngBounds.getNorthWest(),latLngBounds.getNorthEast(),latLngBounds.getSouthEast()]}});L.rectangle=function(latLngBounds,options){return new L.Rectangle(latLngBounds,options)};L.Circle=L.Path.extend({initialize:function(latlng,radius,options){L.Path.prototype.initialize.call(this,options);this._latlng=L.latLng(latlng);this._mRadius=radius},options:{fill:true},setLatLng:function(latlng){this._latlng=L.latLng(latlng);return this.redraw()},setRadius:function(radius){this._mRadius=radius;return this.redraw()},projectLatlngs:function(){var lngRadius=this._getLngRadius(),latlng=this._latlng,pointLeft=this._map.latLngToLayerPoint([latlng.lat,latlng.lng-lngRadius]);this._point=this._map.latLngToLayerPoint(latlng);this._radius=Math.max(this._point.x-pointLeft.x,1)},getBounds:function(){var lngRadius=this._getLngRadius(),latRadius=this._mRadius/40075017*360,latlng=this._latlng;return new L.LatLngBounds([latlng.lat-latRadius,latlng.lng-lngRadius],[latlng.lat+latRadius,latlng.lng+lngRadius])},getLatLng:function(){return this._latlng},getPathString:function(){var p=this._point,r=this._radius;if(this._checkIfEmpty()){return""}if(L.Browser.svg){return"M"+p.x+","+(p.y-r)+"A"+r+","+r+",0,1,1,"+(p.x-.1)+","+(p.y-r)+" z"}else{p._round();r=Math.round(r);return"AL "+p.x+","+p.y+" "+r+","+r+" 0,"+65535*360}},getRadius:function(){return this._mRadius},_getLatRadius:function(){return this._mRadius/40075017*360},_getLngRadius:function(){return this._getLatRadius()/Math.cos(L.LatLng.DEG_TO_RAD*this._latlng.lat)},_checkIfEmpty:function(){if(!this._map){return false}var vp=this._map._pathViewport,r=this._radius,p=this._point;return p.x-r>vp.max.x||p.y-r>vp.max.y||p.x+r<vp.min.x||p.y+r<vp.min.y}});L.circle=function(latlng,radius,options){return new L.Circle(latlng,radius,options)};L.CircleMarker=L.Circle.extend({options:{radius:10,weight:2},initialize:function(latlng,options){L.Circle.prototype.initialize.call(this,latlng,null,options);this._radius=this.options.radius},projectLatlngs:function(){this._point=this._map.latLngToLayerPoint(this._latlng)},_updateStyle:function(){L.Circle.prototype._updateStyle.call(this);this.setRadius(this.options.radius)},setLatLng:function(latlng){L.Circle.prototype.setLatLng.call(this,latlng);if(this._popup&&this._popup._isOpen){this._popup.setLatLng(latlng)}return this},setRadius:function(radius){this.options.radius=this._radius=radius;return this.redraw()},getRadius:function(){return this._radius}});L.circleMarker=function(latlng,options){return new L.CircleMarker(latlng,options)};L.Polyline.include(!L.Path.CANVAS?{}:{_containsPoint:function(p,closed){var i,j,k,len,len2,dist,part,w=this.options.weight/2;if(L.Browser.touch){w+=10}for(i=0,len=this._parts.length;i<len;i++){part=this._parts[i];for(j=0,len2=part.length,k=len2-1;j<len2;k=j++){if(!closed&&j===0){continue}dist=L.LineUtil.pointToSegmentDistance(p,part[k],part[j]);if(dist<=w){return true}}}return false}});L.Polygon.include(!L.Path.CANVAS?{}:{_containsPoint:function(p){var inside=false,part,p1,p2,i,j,k,len,len2;if(L.Polyline.prototype._containsPoint.call(this,p,true)){return true}for(i=0,len=this._parts.length;i<len;i++){part=this._parts[i];for(j=0,len2=part.length,k=len2-1;j<len2;k=j++){p1=part[j];p2=part[k];if(p1.y>p.y!==p2.y>p.y&&p.x<(p2.x-p1.x)*(p.y-p1.y)/(p2.y-p1.y)+p1.x){inside=!inside}}}return inside}});L.Circle.include(!L.Path.CANVAS?{}:{_drawPath:function(){var p=this._point;this._ctx.beginPath();this._ctx.arc(p.x,p.y,this._radius,0,Math.PI*2,false)},_containsPoint:function(p){var center=this._point,w2=this.options.stroke?this.options.weight/2:0;return p.distanceTo(center)<=this._radius+w2}});L.CircleMarker.include(!L.Path.CANVAS?{}:{_updateStyle:function(){L.Path.prototype._updateStyle.call(this)}});L.GeoJSON=L.FeatureGroup.extend({initialize:function(geojson,options){L.setOptions(this,options);this._layers={};if(geojson){this.addData(geojson)}},addData:function(geojson){var features=L.Util.isArray(geojson)?geojson:geojson.features,i,len,feature;if(features){for(i=0,len=features.length;i<len;i++){feature=features[i];if(feature.geometries||feature.geometry||feature.features||feature.coordinates){this.addData(features[i])}}return this}var options=this.options;if(options.filter&&!options.filter(geojson)){return}var layer=L.GeoJSON.geometryToLayer(geojson,options.pointToLayer,options.coordsToLatLng,options);layer.feature=L.GeoJSON.asFeature(geojson);layer.defaultOptions=layer.options;this.resetStyle(layer);if(options.onEachFeature){options.onEachFeature(geojson,layer)}return this.addLayer(layer)},resetStyle:function(layer){var style=this.options.style;if(style){L.Util.extend(layer.options,layer.defaultOptions);this._setLayerStyle(layer,style)}},setStyle:function(style){this.eachLayer(function(layer){this._setLayerStyle(layer,style)},this)},_setLayerStyle:function(layer,style){if(typeof style==="function"){style=style(layer.feature)}if(layer.setStyle){layer.setStyle(style)}}});L.extend(L.GeoJSON,{geometryToLayer:function(geojson,pointToLayer,coordsToLatLng,vectorOptions){var geometry=geojson.type==="Feature"?geojson.geometry:geojson,coords=geometry.coordinates,layers=[],latlng,latlngs,i,len;coordsToLatLng=coordsToLatLng||this.coordsToLatLng;switch(geometry.type){case"Point":latlng=coordsToLatLng(coords);return pointToLayer?pointToLayer(geojson,latlng):new L.Marker(latlng);case"MultiPoint":for(i=0,len=coords.length;i<len;i++){latlng=coordsToLatLng(coords[i]);layers.push(pointToLayer?pointToLayer(geojson,latlng):new L.Marker(latlng))}return new L.FeatureGroup(layers);case"LineString":latlngs=this.coordsToLatLngs(coords,0,coordsToLatLng);return new L.Polyline(latlngs,vectorOptions);case"Polygon":if(coords.length===2&&!coords[1].length){throw new Error("Invalid GeoJSON object.")}latlngs=this.coordsToLatLngs(coords,1,coordsToLatLng);return new L.Polygon(latlngs,vectorOptions);case"MultiLineString":latlngs=this.coordsToLatLngs(coords,1,coordsToLatLng);return new L.MultiPolyline(latlngs,vectorOptions);case"MultiPolygon":latlngs=this.coordsToLatLngs(coords,2,coordsToLatLng);return new L.MultiPolygon(latlngs,vectorOptions);case"GeometryCollection":for(i=0,len=geometry.geometries.length;i<len;i++){layers.push(this.geometryToLayer({geometry:geometry.geometries[i],type:"Feature",properties:geojson.properties},pointToLayer,coordsToLatLng,vectorOptions))}return new L.FeatureGroup(layers);default:throw new Error("Invalid GeoJSON object.")}},coordsToLatLng:function(coords){return new L.LatLng(coords[1],coords[0],coords[2])},coordsToLatLngs:function(coords,levelsDeep,coordsToLatLng){var latlng,i,len,latlngs=[];for(i=0,len=coords.length;i<len;i++){latlng=levelsDeep?this.coordsToLatLngs(coords[i],levelsDeep-1,coordsToLatLng):(coordsToLatLng||this.coordsToLatLng)(coords[i]);latlngs.push(latlng)}return latlngs},latLngToCoords:function(latlng){var coords=[latlng.lng,latlng.lat];if(latlng.alt!==undefined){coords.push(latlng.alt)}return coords},latLngsToCoords:function(latLngs){var coords=[];for(var i=0,len=latLngs.length;i<len;i++){coords.push(L.GeoJSON.latLngToCoords(latLngs[i]))}return coords},getFeature:function(layer,newGeometry){return layer.feature?L.extend({},layer.feature,{geometry:newGeometry}):L.GeoJSON.asFeature(newGeometry)},asFeature:function(geoJSON){if(geoJSON.type==="Feature"){return geoJSON}return{type:"Feature",properties:{},geometry:geoJSON}}});var PointToGeoJSON={toGeoJSON:function(){return L.GeoJSON.getFeature(this,{type:"Point",coordinates:L.GeoJSON.latLngToCoords(this.getLatLng())})}};L.Marker.include(PointToGeoJSON);L.Circle.include(PointToGeoJSON);L.CircleMarker.include(PointToGeoJSON);L.Polyline.include({toGeoJSON:function(){return L.GeoJSON.getFeature(this,{type:"LineString",coordinates:L.GeoJSON.latLngsToCoords(this.getLatLngs())})}});L.Polygon.include({toGeoJSON:function(){var coords=[L.GeoJSON.latLngsToCoords(this.getLatLngs())],i,len,hole;coords[0].push(coords[0][0]);if(this._holes){for(i=0,len=this._holes.length;i<len;i++){hole=L.GeoJSON.latLngsToCoords(this._holes[i]);hole.push(hole[0]);coords.push(hole)}}return L.GeoJSON.getFeature(this,{type:"Polygon",coordinates:coords})}});(function(){function multiToGeoJSON(type){return function(){var coords=[];this.eachLayer(function(layer){coords.push(layer.toGeoJSON().geometry.coordinates)});return L.GeoJSON.getFeature(this,{type:type,coordinates:coords})}}L.MultiPolyline.include({toGeoJSON:multiToGeoJSON("MultiLineString")});L.MultiPolygon.include({toGeoJSON:multiToGeoJSON("MultiPolygon")});L.LayerGroup.include({
  25. toGeoJSON:function(){var geometry=this.feature&&this.feature.geometry,jsons=[],json;if(geometry&&geometry.type==="MultiPoint"){return multiToGeoJSON("MultiPoint").call(this)}var isGeometryCollection=geometry&&geometry.type==="GeometryCollection";this.eachLayer(function(layer){if(layer.toGeoJSON){json=layer.toGeoJSON();jsons.push(isGeometryCollection?json.geometry:L.GeoJSON.asFeature(json))}});if(isGeometryCollection){return L.GeoJSON.getFeature(this,{geometries:jsons,type:"GeometryCollection"})}return{type:"FeatureCollection",features:jsons}}})})();L.geoJson=function(geojson,options){return new L.GeoJSON(geojson,options)};L.DomEvent={addListener:function(obj,type,fn,context){var id=L.stamp(fn),key="_leaflet_"+type+id,handler,originalHandler,newType;if(obj[key]){return this}handler=function(e){return fn.call(context||obj,e||L.DomEvent._getEvent())};if(L.Browser.pointer&&type.indexOf("touch")===0){return this.addPointerListener(obj,type,handler,id)}if(L.Browser.touch&&type==="dblclick"&&this.addDoubleTapListener){this.addDoubleTapListener(obj,handler,id)}if("addEventListener"in obj){if(type==="mousewheel"){obj.addEventListener("DOMMouseScroll",handler,false);obj.addEventListener(type,handler,false)}else if(type==="mouseenter"||type==="mouseleave"){originalHandler=handler;newType=type==="mouseenter"?"mouseover":"mouseout";handler=function(e){if(!L.DomEvent._checkMouse(obj,e)){return}return originalHandler(e)};obj.addEventListener(newType,handler,false)}else if(type==="click"&&L.Browser.android){originalHandler=handler;handler=function(e){return L.DomEvent._filterClick(e,originalHandler)};obj.addEventListener(type,handler,false)}else{obj.addEventListener(type,handler,false)}}else if("attachEvent"in obj){obj.attachEvent("on"+type,handler)}obj[key]=handler;return this},removeListener:function(obj,type,fn){var id=L.stamp(fn),key="_leaflet_"+type+id,handler=obj[key];if(!handler){return this}if(L.Browser.pointer&&type.indexOf("touch")===0){this.removePointerListener(obj,type,id)}else if(L.Browser.touch&&type==="dblclick"&&this.removeDoubleTapListener){this.removeDoubleTapListener(obj,id)}else if("removeEventListener"in obj){if(type==="mousewheel"){obj.removeEventListener("DOMMouseScroll",handler,false);obj.removeEventListener(type,handler,false)}else if(type==="mouseenter"||type==="mouseleave"){obj.removeEventListener(type==="mouseenter"?"mouseover":"mouseout",handler,false)}else{obj.removeEventListener(type,handler,false)}}else if("detachEvent"in obj){obj.detachEvent("on"+type,handler)}obj[key]=null;return this},stopPropagation:function(e){if(e.stopPropagation){e.stopPropagation()}else{e.cancelBubble=true}L.DomEvent._skipped(e);return this},disableScrollPropagation:function(el){var stop=L.DomEvent.stopPropagation;return L.DomEvent.on(el,"mousewheel",stop).on(el,"MozMousePixelScroll",stop)},disableClickPropagation:function(el){var stop=L.DomEvent.stopPropagation;for(var i=L.Draggable.START.length-1;i>=0;i--){L.DomEvent.on(el,L.Draggable.START[i],stop)}return L.DomEvent.on(el,"click",L.DomEvent._fakeStop).on(el,"dblclick",stop)},preventDefault:function(e){if(e.preventDefault){e.preventDefault()}else{e.returnValue=false}return this},stop:function(e){return L.DomEvent.preventDefault(e).stopPropagation(e)},getMousePosition:function(e,container){if(!container){return new L.Point(e.clientX,e.clientY)}var rect=container.getBoundingClientRect();return new L.Point(e.clientX-rect.left-container.clientLeft,e.clientY-rect.top-container.clientTop)},getWheelDelta:function(e){var delta=0;if(e.wheelDelta){delta=e.wheelDelta/120}if(e.detail){delta=-e.detail/3}return delta},_skipEvents:{},_fakeStop:function(e){L.DomEvent._skipEvents[e.type]=true},_skipped:function(e){var skipped=this._skipEvents[e.type];this._skipEvents[e.type]=false;return skipped},_checkMouse:function(el,e){var related=e.relatedTarget;if(!related){return true}try{while(related&&related!==el){related=related.parentNode}}catch(err){return false}return related!==el},_getEvent:function(){var e=window.event;if(!e){var caller=arguments.callee.caller;while(caller){e=caller["arguments"][0];if(e&&window.Event===e.constructor){break}caller=caller.caller}}return e},_filterClick:function(e,handler){var timeStamp=e.timeStamp||e.originalEvent.timeStamp,elapsed=L.DomEvent._lastClick&&timeStamp-L.DomEvent._lastClick;if(elapsed&&elapsed>100&&elapsed<500||e.target._simulatedClick&&!e._simulated){L.DomEvent.stop(e);return}L.DomEvent._lastClick=timeStamp;return handler(e)}};L.DomEvent.on=L.DomEvent.addListener;L.DomEvent.off=L.DomEvent.removeListener;L.Draggable=L.Class.extend({includes:L.Mixin.Events,statics:{START:L.Browser.touch?["touchstart","mousedown"]:["mousedown"],END:{mousedown:"mouseup",touchstart:"touchend",pointerdown:"touchend",MSPointerDown:"touchend"},MOVE:{mousedown:"mousemove",touchstart:"touchmove",pointerdown:"touchmove",MSPointerDown:"touchmove"}},initialize:function(element,dragStartTarget){this._element=element;this._dragStartTarget=dragStartTarget||element},enable:function(){if(this._enabled){return}for(var i=L.Draggable.START.length-1;i>=0;i--){L.DomEvent.on(this._dragStartTarget,L.Draggable.START[i],this._onDown,this)}this._enabled=true},disable:function(){if(!this._enabled){return}for(var i=L.Draggable.START.length-1;i>=0;i--){L.DomEvent.off(this._dragStartTarget,L.Draggable.START[i],this._onDown,this)}this._enabled=false;this._moved=false},_onDown:function(e){this._moved=false;if(e.shiftKey||e.which!==1&&e.button!==1&&!e.touches){return}L.DomEvent.stopPropagation(e);if(L.Draggable._disabled){return}L.DomUtil.disableImageDrag();L.DomUtil.disableTextSelection();if(this._moving){return}var first=e.touches?e.touches[0]:e;this._startPoint=new L.Point(first.clientX,first.clientY);this._startPos=this._newPos=L.DomUtil.getPosition(this._element);L.DomEvent.on(document,L.Draggable.MOVE[e.type],this._onMove,this).on(document,L.Draggable.END[e.type],this._onUp,this)},_onMove:function(e){if(e.touches&&e.touches.length>1){this._moved=true;return}var first=e.touches&&e.touches.length===1?e.touches[0]:e,newPoint=new L.Point(first.clientX,first.clientY),offset=newPoint.subtract(this._startPoint);if(!offset.x&&!offset.y){return}if(L.Browser.touch&&Math.abs(offset.x)+Math.abs(offset.y)<3){return}L.DomEvent.preventDefault(e);if(!this._moved){this.fire("dragstart");this._moved=true;this._startPos=L.DomUtil.getPosition(this._element).subtract(offset);L.DomUtil.addClass(document.body,"leaflet-dragging");this._lastTarget=e.target||e.srcElement;L.DomUtil.addClass(this._lastTarget,"leaflet-drag-target")}this._newPos=this._startPos.add(offset);this._moving=true;L.Util.cancelAnimFrame(this._animRequest);this._animRequest=L.Util.requestAnimFrame(this._updatePosition,this,true,this._dragStartTarget)},_updatePosition:function(){this.fire("predrag");L.DomUtil.setPosition(this._element,this._newPos);this.fire("drag")},_onUp:function(){L.DomUtil.removeClass(document.body,"leaflet-dragging");if(this._lastTarget){L.DomUtil.removeClass(this._lastTarget,"leaflet-drag-target");this._lastTarget=null}for(var i in L.Draggable.MOVE){L.DomEvent.off(document,L.Draggable.MOVE[i],this._onMove).off(document,L.Draggable.END[i],this._onUp)}L.DomUtil.enableImageDrag();L.DomUtil.enableTextSelection();if(this._moved&&this._moving){L.Util.cancelAnimFrame(this._animRequest);this.fire("dragend",{distance:this._newPos.distanceTo(this._startPos)})}this._moving=false}});L.Handler=L.Class.extend({initialize:function(map){this._map=map},enable:function(){if(this._enabled){return}this._enabled=true;this.addHooks()},disable:function(){if(!this._enabled){return}this._enabled=false;this.removeHooks()},enabled:function(){return!!this._enabled}});L.Map.mergeOptions({dragging:true,inertia:!L.Browser.android23,inertiaDeceleration:3400,inertiaMaxSpeed:Infinity,inertiaThreshold:L.Browser.touch?32:18,easeLinearity:.25,worldCopyJump:false});L.Map.Drag=L.Handler.extend({addHooks:function(){if(!this._draggable){var map=this._map;this._draggable=new L.Draggable(map._mapPane,map._container);this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this);if(map.options.worldCopyJump){this._draggable.on("predrag",this._onPreDrag,this);map.on("viewreset",this._onViewReset,this);map.whenReady(this._onViewReset,this)}}this._draggable.enable()},removeHooks:function(){this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},_onDragStart:function(){var map=this._map;if(map._panAnim){map._panAnim.stop()}map.fire("movestart").fire("dragstart");if(map.options.inertia){this._positions=[];this._times=[]}},_onDrag:function(){if(this._map.options.inertia){var time=this._lastTime=+new Date,pos=this._lastPos=this._draggable._newPos;this._positions.push(pos);this._times.push(time);if(time-this._times[0]>200){this._positions.shift();this._times.shift()}}this._map.fire("move").fire("drag")},_onViewReset:function(){var pxCenter=this._map.getSize()._divideBy(2),pxWorldCenter=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=pxWorldCenter.subtract(pxCenter).x;this._worldWidth=this._map.project([0,180]).x},_onPreDrag:function(){var worldWidth=this._worldWidth,halfWidth=Math.round(worldWidth/2),dx=this._initialWorldOffset,x=this._draggable._newPos.x,newX1=(x-halfWidth+dx)%worldWidth+halfWidth-dx,newX2=(x+halfWidth+dx)%worldWidth-halfWidth-dx,newX=Math.abs(newX1+dx)<Math.abs(newX2+dx)?newX1:newX2;this._draggable._newPos.x=newX},_onDragEnd:function(e){var map=this._map,options=map.options,delay=+new Date-this._lastTime,noInertia=!options.inertia||delay>options.inertiaThreshold||!this._positions[0];map.fire("dragend",e);if(noInertia){map.fire("moveend")}else{var direction=this._lastPos.subtract(this._positions[0]),duration=(this._lastTime+delay-this._times[0])/1e3,ease=options.easeLinearity,speedVector=direction.multiplyBy(ease/duration),speed=speedVector.distanceTo([0,0]),limitedSpeed=Math.min(options.inertiaMaxSpeed,speed),limitedSpeedVector=speedVector.multiplyBy(limitedSpeed/speed),decelerationDuration=limitedSpeed/(options.inertiaDeceleration*ease),offset=limitedSpeedVector.multiplyBy(-decelerationDuration/2).round();if(!offset.x||!offset.y){map.fire("moveend")}else{offset=map._limitOffset(offset,map.options.maxBounds);L.Util.requestAnimFrame(function(){map.panBy(offset,{duration:decelerationDuration,easeLinearity:ease,noMoveStart:true})})}}}});L.Map.addInitHook("addHandler","dragging",L.Map.Drag);L.Map.mergeOptions({doubleClickZoom:true});L.Map.DoubleClickZoom=L.Handler.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(e){var map=this._map,zoom=map.getZoom()+(e.originalEvent.shiftKey?-1:1);if(map.options.doubleClickZoom==="center"){map.setZoom(zoom)}else{map.setZoomAround(e.containerPoint,zoom)}}});L.Map.addInitHook("addHandler","doubleClickZoom",L.Map.DoubleClickZoom);L.Map.mergeOptions({scrollWheelZoom:true});L.Map.ScrollWheelZoom=L.Handler.extend({addHooks:function(){L.DomEvent.on(this._map._container,"mousewheel",this._onWheelScroll,this);L.DomEvent.on(this._map._container,"MozMousePixelScroll",L.DomEvent.preventDefault);this._delta=0},removeHooks:function(){L.DomEvent.off(this._map._container,"mousewheel",this._onWheelScroll);L.DomEvent.off(this._map._container,"MozMousePixelScroll",L.DomEvent.preventDefault)},_onWheelScroll:function(e){var delta=L.DomEvent.getWheelDelta(e);this._delta+=delta;this._lastMousePos=this._map.mouseEventToContainerPoint(e);if(!this._startTime){this._startTime=+new Date}var left=Math.max(40-(+new Date-this._startTime),0);clearTimeout(this._timer);this._timer=setTimeout(L.bind(this._performZoom,this),left);L.DomEvent.preventDefault(e);L.DomEvent.stopPropagation(e)},_performZoom:function(){var map=this._map,delta=this._delta,zoom=map.getZoom();delta=delta>0?Math.ceil(delta):Math.floor(delta);delta=Math.max(Math.min(delta,4),-4);delta=map._limitZoom(zoom+delta)-zoom;this._delta=0;this._startTime=null;if(!delta){return}if(map.options.scrollWheelZoom==="center"){map.setZoom(zoom+delta)}else{map.setZoomAround(this._lastMousePos,zoom+delta)}}});L.Map.addInitHook("addHandler","scrollWheelZoom",L.Map.ScrollWheelZoom);L.extend(L.DomEvent,{_touchstart:L.Browser.msPointer?"MSPointerDown":L.Browser.pointer?"pointerdown":"touchstart",_touchend:L.Browser.msPointer?"MSPointerUp":L.Browser.pointer?"pointerup":"touchend",addDoubleTapListener:function(obj,handler,id){var last,doubleTap=false,delay=250,touch,pre="_leaflet_",touchstart=this._touchstart,touchend=this._touchend,trackedTouches=[];function onTouchStart(e){var count;if(L.Browser.pointer){trackedTouches.push(e.pointerId);count=trackedTouches.length}else{count=e.touches.length}if(count>1){return}var now=Date.now(),delta=now-(last||now);touch=e.touches?e.touches[0]:e;doubleTap=delta>0&&delta<=delay;last=now}function onTouchEnd(e){if(L.Browser.pointer){var idx=trackedTouches.indexOf(e.pointerId);if(idx===-1){return}trackedTouches.splice(idx,1)}if(doubleTap){if(L.Browser.pointer){var newTouch={},prop;for(var i in touch){prop=touch[i];if(typeof prop==="function"){newTouch[i]=prop.bind(touch)}else{newTouch[i]=prop}}touch=newTouch}touch.type="dblclick";handler(touch);last=null}}obj[pre+touchstart+id]=onTouchStart;obj[pre+touchend+id]=onTouchEnd;var endElement=L.Browser.pointer?document.documentElement:obj;obj.addEventListener(touchstart,onTouchStart,false);endElement.addEventListener(touchend,onTouchEnd,false);if(L.Browser.pointer){endElement.addEventListener(L.DomEvent.POINTER_CANCEL,onTouchEnd,false)}return this},removeDoubleTapListener:function(obj,id){var pre="_leaflet_";obj.removeEventListener(this._touchstart,obj[pre+this._touchstart+id],false);(L.Browser.pointer?document.documentElement:obj).removeEventListener(this._touchend,obj[pre+this._touchend+id],false);if(L.Browser.pointer){document.documentElement.removeEventListener(L.DomEvent.POINTER_CANCEL,obj[pre+this._touchend+id],false)}return this}});L.extend(L.DomEvent,{POINTER_DOWN:L.Browser.msPointer?"MSPointerDown":"pointerdown",POINTER_MOVE:L.Browser.msPointer?"MSPointerMove":"pointermove",POINTER_UP:L.Browser.msPointer?"MSPointerUp":"pointerup",POINTER_CANCEL:L.Browser.msPointer?"MSPointerCancel":"pointercancel",_pointers:[],_pointerDocumentListener:false,addPointerListener:function(obj,type,handler,id){switch(type){case"touchstart":return this.addPointerListenerStart(obj,type,handler,id);case"touchend":return this.addPointerListenerEnd(obj,type,handler,id);case"touchmove":return this.addPointerListenerMove(obj,type,handler,id);default:throw"Unknown touch event type"}},addPointerListenerStart:function(obj,type,handler,id){var pre="_leaflet_",pointers=this._pointers;var cb=function(e){if(e.pointerType!=="mouse"&&e.pointerType!==e.MSPOINTER_TYPE_MOUSE){L.DomEvent.preventDefault(e)}var alreadyInArray=false;for(var i=0;i<pointers.length;i++){if(pointers[i].pointerId===e.pointerId){alreadyInArray=true;break}}if(!alreadyInArray){pointers.push(e)}e.touches=pointers.slice();e.changedTouches=[e];handler(e)};obj[pre+"touchstart"+id]=cb;obj.addEventListener(this.POINTER_DOWN,cb,false);if(!this._pointerDocumentListener){var internalCb=function(e){for(var i=0;i<pointers.length;i++){if(pointers[i].pointerId===e.pointerId){pointers.splice(i,1);break}}};document.documentElement.addEventListener(this.POINTER_UP,internalCb,false);document.documentElement.addEventListener(this.POINTER_CANCEL,internalCb,false);this._pointerDocumentListener=true}return this},addPointerListenerMove:function(obj,type,handler,id){var pre="_leaflet_",touches=this._pointers;function cb(e){if((e.pointerType===e.MSPOINTER_TYPE_MOUSE||e.pointerType==="mouse")&&e.buttons===0){return}for(var i=0;i<touches.length;i++){if(touches[i].pointerId===e.pointerId){touches[i]=e;break}}e.touches=touches.slice();e.changedTouches=[e];handler(e)}obj[pre+"touchmove"+id]=cb;obj.addEventListener(this.POINTER_MOVE,cb,false);return this},addPointerListenerEnd:function(obj,type,handler,id){var pre="_leaflet_",touches=this._pointers;var cb=function(e){for(var i=0;i<touches.length;i++){if(touches[i].pointerId===e.pointerId){touches.splice(i,1);break}}e.touches=touches.slice();e.changedTouches=[e];handler(e)};obj[pre+"touchend"+id]=cb;obj.addEventListener(this.POINTER_UP,cb,false);obj.addEventListener(this.POINTER_CANCEL,cb,false);return this},removePointerListener:function(obj,type,id){var pre="_leaflet_",cb=obj[pre+type+id];switch(type){case"touchstart":obj.removeEventListener(this.POINTER_DOWN,cb,false);break;case"touchmove":obj.removeEventListener(this.POINTER_MOVE,cb,false);break;case"touchend":obj.removeEventListener(this.POINTER_UP,cb,false);obj.removeEventListener(this.POINTER_CANCEL,cb,false);break}return this}});L.Map.mergeOptions({touchZoom:L.Browser.touch&&!L.Browser.android23,bounceAtZoomLimits:true});L.Map.TouchZoom=L.Handler.extend({addHooks:function(){L.DomEvent.on(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){L.DomEvent.off(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(e){var map=this._map;if(!e.touches||e.touches.length!==2||map._animatingZoom||this._zooming){return}var p1=map.mouseEventToLayerPoint(e.touches[0]),p2=map.mouseEventToLayerPoint(e.touches[1]),viewCenter=map._getCenterLayerPoint();this._startCenter=p1.add(p2)._divideBy(2);this._startDist=p1.distanceTo(p2);this._moved=false;this._zooming=true;this._centerOffset=viewCenter.subtract(this._startCenter);if(map._panAnim){map._panAnim.stop()}L.DomEvent.on(document,"touchmove",this._onTouchMove,this).on(document,"touchend",this._onTouchEnd,this);L.DomEvent.preventDefault(e)},_onTouchMove:function(e){var map=this._map;if(!e.touches||e.touches.length!==2||!this._zooming){return}var p1=map.mouseEventToLayerPoint(e.touches[0]),p2=map.mouseEventToLayerPoint(e.touches[1]);this._scale=p1.distanceTo(p2)/this._startDist;this._delta=p1._add(p2)._divideBy(2)._subtract(this._startCenter);if(this._scale===1){return}if(!map.options.bounceAtZoomLimits){if(map.getZoom()===map.getMinZoom()&&this._scale<1||map.getZoom()===map.getMaxZoom()&&this._scale>1){return}}if(!this._moved){L.DomUtil.addClass(map._mapPane,"leaflet-touching");map.fire("movestart").fire("zoomstart");this._moved=true}L.Util.cancelAnimFrame(this._animRequest);this._animRequest=L.Util.requestAnimFrame(this._updateOnMove,this,true,this._map._container);L.DomEvent.preventDefault(e)},_updateOnMove:function(){var map=this._map,origin=this._getScaleOrigin(),center=map.layerPointToLatLng(origin),zoom=map.getScaleZoom(this._scale);map._animateZoom(center,zoom,this._startCenter,this._scale,this._delta,false,true)},_onTouchEnd:function(){if(!this._moved||!this._zooming){this._zooming=false;return}var map=this._map;this._zooming=false;L.DomUtil.removeClass(map._mapPane,"leaflet-touching");L.Util.cancelAnimFrame(this._animRequest);L.DomEvent.off(document,"touchmove",this._onTouchMove).off(document,"touchend",this._onTouchEnd);var origin=this._getScaleOrigin(),center=map.layerPointToLatLng(origin),oldZoom=map.getZoom(),floatZoomDelta=map.getScaleZoom(this._scale)-oldZoom,roundZoomDelta=floatZoomDelta>0?Math.ceil(floatZoomDelta):Math.floor(floatZoomDelta),zoom=map._limitZoom(oldZoom+roundZoomDelta),scale=map.getZoomScale(zoom)/this._scale;map._animateZoom(center,zoom,origin,scale)},_getScaleOrigin:function(){var centerOffset=this._centerOffset.subtract(this._delta).divideBy(this._scale);return this._startCenter.add(centerOffset)}});L.Map.addInitHook("addHandler","touchZoom",L.Map.TouchZoom);L.Map.mergeOptions({tap:true,tapTolerance:15});L.Map.Tap=L.Handler.extend({addHooks:function(){L.DomEvent.on(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){L.DomEvent.off(this._map._container,"touchstart",this._onDown,this)},_onDown:function(e){if(!e.touches){return}L.DomEvent.preventDefault(e);this._fireClick=true;if(e.touches.length>1){this._fireClick=false;clearTimeout(this._holdTimeout);return}var first=e.touches[0],el=first.target;this._startPos=this._newPos=new L.Point(first.clientX,first.clientY);if(el.tagName&&el.tagName.toLowerCase()==="a"){L.DomUtil.addClass(el,"leaflet-active")}this._holdTimeout=setTimeout(L.bind(function(){if(this._isTapValid()){this._fireClick=false;this._onUp();this._simulateEvent("contextmenu",first)}},this),1e3);L.DomEvent.on(document,"touchmove",this._onMove,this).on(document,"touchend",this._onUp,this)},_onUp:function(e){clearTimeout(this._holdTimeout);L.DomEvent.off(document,"touchmove",this._onMove,this).off(document,"touchend",this._onUp,this);if(this._fireClick&&e&&e.changedTouches){var first=e.changedTouches[0],el=first.target;if(el&&el.tagName&&el.tagName.toLowerCase()==="a"){L.DomUtil.removeClass(el,"leaflet-active")}if(this._isTapValid()){this._simulateEvent("click",first)}}},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_onMove:function(e){var first=e.touches[0];this._newPos=new L.Point(first.clientX,first.clientY)},_simulateEvent:function(type,e){var simulatedEvent=document.createEvent("MouseEvents");simulatedEvent._simulated=true;e.target._simulatedClick=true;simulatedEvent.initMouseEvent(type,true,true,window,1,e.screenX,e.screenY,e.clientX,e.clientY,false,false,false,false,0,null);e.target.dispatchEvent(simulatedEvent)}});if(L.Browser.touch&&!L.Browser.pointer){L.Map.addInitHook("addHandler","tap",L.Map.Tap)}L.Map.mergeOptions({boxZoom:true});L.Map.BoxZoom=L.Handler.extend({initialize:function(map){this._map=map;this._container=map._container;this._pane=map._panes.overlayPane;this._moved=false},addHooks:function(){L.DomEvent.on(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){L.DomEvent.off(this._container,"mousedown",this._onMouseDown);this._moved=false},moved:function(){return this._moved},_onMouseDown:function(e){this._moved=false;if(!e.shiftKey||e.which!==1&&e.button!==1){return false}L.DomUtil.disableTextSelection();L.DomUtil.disableImageDrag();this._startLayerPoint=this._map.mouseEventToLayerPoint(e);L.DomEvent.on(document,"mousemove",this._onMouseMove,this).on(document,"mouseup",this._onMouseUp,this).on(document,"keydown",this._onKeyDown,this)},_onMouseMove:function(e){if(!this._moved){this._box=L.DomUtil.create("div","leaflet-zoom-box",this._pane);L.DomUtil.setPosition(this._box,this._startLayerPoint);this._container.style.cursor="crosshair";this._map.fire("boxzoomstart")}var startPoint=this._startLayerPoint,box=this._box,layerPoint=this._map.mouseEventToLayerPoint(e),offset=layerPoint.subtract(startPoint),newPos=new L.Point(Math.min(layerPoint.x,startPoint.x),Math.min(layerPoint.y,startPoint.y));L.DomUtil.setPosition(box,newPos);this._moved=true;box.style.width=Math.max(0,Math.abs(offset.x)-4)+"px";box.style.height=Math.max(0,Math.abs(offset.y)-4)+"px"},_finish:function(){if(this._moved){this._pane.removeChild(this._box);this._container.style.cursor=""}L.DomUtil.enableTextSelection();L.DomUtil.enableImageDrag();L.DomEvent.off(document,"mousemove",this._onMouseMove).off(document,"mouseup",this._onMouseUp).off(document,"keydown",this._onKeyDown)},_onMouseUp:function(e){this._finish();var map=this._map,layerPoint=map.mouseEventToLayerPoint(e);if(this._startLayerPoint.equals(layerPoint)){return}var bounds=new L.LatLngBounds(map.layerPointToLatLng(this._startLayerPoint),map.layerPointToLatLng(layerPoint));map.fitBounds(bounds);map.fire("boxzoomend",{boxZoomBounds:bounds})},_onKeyDown:function(e){if(e.keyCode===27){this._finish()}}});L.Map.addInitHook("addHandler","boxZoom",L.Map.BoxZoom);L.Map.mergeOptions({keyboard:true,keyboardPanOffset:80,keyboardZoomOffset:1});L.Map.Keyboard=L.Handler.extend({keyCodes:{left:[37],right:[39],down:[40],up:[38],zoomIn:[187,107,61,171],zoomOut:[189,109,173]},initialize:function(map){this._map=map;this._setPanOffset(map.options.keyboardPanOffset);this._setZoomOffset(map.options.keyboardZoomOffset)},addHooks:function(){var container=this._map._container;if(container.tabIndex===-1){container.tabIndex="0"}L.DomEvent.on(container,"focus",this._onFocus,this).on(container,"blur",this._onBlur,this).on(container,"mousedown",this._onMouseDown,this);this._map.on("focus",this._addHooks,this).on("blur",this._removeHooks,this)},removeHooks:function(){this._removeHooks();var container=this._map._container;L.DomEvent.off(container,"focus",this._onFocus,this).off(container,"blur",this._onBlur,this).off(container,"mousedown",this._onMouseDown,this);this._map.off("focus",this._addHooks,this).off("blur",this._removeHooks,this)},_onMouseDown:function(){if(this._focused){return}var body=document.body,docEl=document.documentElement,top=body.scrollTop||docEl.scrollTop,left=body.scrollLeft||docEl.scrollLeft;this._map._container.focus();window.scrollTo(left,top)},_onFocus:function(){this._focused=true;this._map.fire("focus")},_onBlur:function(){this._focused=false;this._map.fire("blur")},_setPanOffset:function(pan){var keys=this._panKeys={},codes=this.keyCodes,i,len;for(i=0,len=codes.left.length;i<len;i++){keys[codes.left[i]]=[-1*pan,0]}for(i=0,len=codes.right.length;i<len;i++){keys[codes.right[i]]=[pan,0]}for(i=0,len=codes.down.length;i<len;i++){keys[codes.down[i]]=[0,pan]}for(i=0,len=codes.up.length;i<len;i++){keys[codes.up[i]]=[0,-1*pan]}},_setZoomOffset:function(zoom){var keys=this._zoomKeys={},codes=this.keyCodes,i,len;for(i=0,len=codes.zoomIn.length;i<len;i++){keys[codes.zoomIn[i]]=zoom}for(i=0,len=codes.zoomOut.length;i<len;i++){keys[codes.zoomOut[i]]=-zoom}},_addHooks:function(){L.DomEvent.on(document,"keydown",this._onKeyDown,this)},_removeHooks:function(){L.DomEvent.off(document,"keydown",this._onKeyDown,this)},_onKeyDown:function(e){var key=e.keyCode,map=this._map;if(key in this._panKeys){if(map._panAnim&&map._panAnim._inProgress){return}map.panBy(this._panKeys[key]);if(map.options.maxBounds){map.panInsideBounds(map.options.maxBounds)}}else if(key in this._zoomKeys){map.setZoom(map.getZoom()+this._zoomKeys[key])}else{return}L.DomEvent.stop(e)}});L.Map.addInitHook("addHandler","keyboard",L.Map.Keyboard);L.Handler.MarkerDrag=L.Handler.extend({initialize:function(marker){this._marker=marker},addHooks:function(){var icon=this._marker._icon;if(!this._draggable){this._draggable=new L.Draggable(icon,icon)}this._draggable.on("dragstart",this._onDragStart,this).on("drag",this._onDrag,this).on("dragend",this._onDragEnd,this);this._draggable.enable();L.DomUtil.addClass(this._marker._icon,"leaflet-marker-draggable")},removeHooks:function(){this._draggable.off("dragstart",this._onDragStart,this).off("drag",this._onDrag,this).off("dragend",this._onDragEnd,this);this._draggable.disable();L.DomUtil.removeClass(this._marker._icon,"leaflet-marker-draggable")},moved:function(){return this._draggable&&this._draggable._moved},_onDragStart:function(){this._marker.closePopup().fire("movestart").fire("dragstart")},_onDrag:function(){var marker=this._marker,shadow=marker._shadow,iconPos=L.DomUtil.getPosition(marker._icon),latlng=marker._map.layerPointToLatLng(iconPos);if(shadow){L.DomUtil.setPosition(shadow,iconPos)}marker._latlng=latlng;marker.fire("move",{latlng:latlng}).fire("drag")},_onDragEnd:function(e){this._marker.fire("moveend").fire("dragend",e)}});L.Control=L.Class.extend({options:{position:"topright"},initialize:function(options){L.setOptions(this,options)},getPosition:function(){return this.options.position},setPosition:function(position){var map=this._map;if(map){map.removeControl(this)}this.options.position=position;if(map){map.addControl(this)}return this},getContainer:function(){return this._container},addTo:function(map){this._map=map;var container=this._container=this.onAdd(map),pos=this.getPosition(),corner=map._controlCorners[pos];L.DomUtil.addClass(container,"leaflet-control");if(pos.indexOf("bottom")!==-1){corner.insertBefore(container,corner.firstChild)}else{corner.appendChild(container)}return this},removeFrom:function(map){var pos=this.getPosition(),corner=map._controlCorners[pos];corner.removeChild(this._container);this._map=null;if(this.onRemove){this.onRemove(map)}return this},_refocusOnMap:function(){if(this._map){this._map.getContainer().focus()}}});L.control=function(options){return new L.Control(options)};L.Map.include({addControl:function(control){control.addTo(this);return this},removeControl:function(control){control.removeFrom(this);return this},_initControlPos:function(){var corners=this._controlCorners={},l="leaflet-",container=this._controlContainer=L.DomUtil.create("div",l+"control-container",this._container);function createCorner(vSide,hSide){var className=l+vSide+" "+l+hSide;corners[vSide+hSide]=L.DomUtil.create("div",className,container)}createCorner("top","left");createCorner("top","right");createCorner("bottom","left");createCorner("bottom","right")},_clearControlPos:function(){this._container.removeChild(this._controlContainer)}});L.Control.Zoom=L.Control.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom in",zoomOutText:"-",zoomOutTitle:"Zoom out"},onAdd:function(map){var zoomName="leaflet-control-zoom",container=L.DomUtil.create("div",zoomName+" leaflet-bar");this._map=map;this._zoomInButton=this._createButton(this.options.zoomInText,this.options.zoomInTitle,zoomName+"-in",container,this._zoomIn,this);this._zoomOutButton=this._createButton(this.options.zoomOutText,this.options.zoomOutTitle,zoomName+"-out",container,this._zoomOut,this);this._updateDisabled();map.on("zoomend zoomlevelschange",this._updateDisabled,this);return container},onRemove:function(map){map.off("zoomend zoomlevelschange",this._updateDisabled,this)},_zoomIn:function(e){this._map.zoomIn(e.shiftKey?3:1)},_zoomOut:function(e){this._map.zoomOut(e.shiftKey?3:1)},_createButton:function(html,title,className,container,fn,context){var link=L.DomUtil.create("a",className,container);link.innerHTML=html;link.href="#";link.title=title;var stop=L.DomEvent.stopPropagation;L.DomEvent.on(link,"click",stop).on(link,"mousedown",stop).on(link,"dblclick",stop).on(link,"click",L.DomEvent.preventDefault).on(link,"click",fn,context).on(link,"click",this._refocusOnMap,context);return link},_updateDisabled:function(){var map=this._map,className="leaflet-disabled";L.DomUtil.removeClass(this._zoomInButton,className);L.DomUtil.removeClass(this._zoomOutButton,className);if(map._zoom===map.getMinZoom()){L.DomUtil.addClass(this._zoomOutButton,className)}if(map._zoom===map.getMaxZoom()){L.DomUtil.addClass(this._zoomInButton,className)}}});L.Map.mergeOptions({zoomControl:true});L.Map.addInitHook(function(){if(this.options.zoomControl){this.zoomControl=new L.Control.Zoom;this.addControl(this.zoomControl)}});L.control.zoom=function(options){return new L.Control.Zoom(options)};L.Control.Attribution=L.Control.extend({options:{position:"bottomright",prefix:'<a href="http://leafletjs.com" title="A JS library for interactive maps">Leaflet</a>'},initialize:function(options){L.setOptions(this,options);this._attributions={}},onAdd:function(map){this._container=L.DomUtil.create("div","leaflet-control-attribution");L.DomEvent.disableClickPropagation(this._container);for(var i in map._layers){if(map._layers[i].getAttribution){this.addAttribution(map._layers[i].getAttribution())}}map.on("layeradd",this._onLayerAdd,this).on("layerremove",this._onLayerRemove,this);this._update();return this._container},onRemove:function(map){map.off("layeradd",this._onLayerAdd).off("layerremove",this._onLayerRemove)},setPrefix:function(prefix){this.options.prefix=prefix;this._update();return this},addAttribution:function(text){if(!text){return}if(!this._attributions[text]){this._attributions[text]=0}this._attributions[text]++;this._update();return this},removeAttribution:function(text){if(!text){return}if(this._attributions[text]){this._attributions[text]--;this._update()}return this},_update:function(){if(!this._map){return}var attribs=[];for(var i in this._attributions){if(this._attributions[i]){attribs.push(i)}}var prefixAndAttribs=[];if(this.options.prefix){prefixAndAttribs.push(this.options.prefix);
  26. }if(attribs.length){prefixAndAttribs.push(attribs.join(", "))}this._container.innerHTML=prefixAndAttribs.join(" | ")},_onLayerAdd:function(e){if(e.layer.getAttribution){this.addAttribution(e.layer.getAttribution())}},_onLayerRemove:function(e){if(e.layer.getAttribution){this.removeAttribution(e.layer.getAttribution())}}});L.Map.mergeOptions({attributionControl:true});L.Map.addInitHook(function(){if(this.options.attributionControl){this.attributionControl=(new L.Control.Attribution).addTo(this)}});L.control.attribution=function(options){return new L.Control.Attribution(options)};L.Control.Scale=L.Control.extend({options:{position:"bottomleft",maxWidth:100,metric:true,imperial:true,updateWhenIdle:false},onAdd:function(map){this._map=map;var className="leaflet-control-scale",container=L.DomUtil.create("div",className),options=this.options;this._addScales(options,className,container);map.on(options.updateWhenIdle?"moveend":"move",this._update,this);map.whenReady(this._update,this);return container},onRemove:function(map){map.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(options,className,container){if(options.metric){this._mScale=L.DomUtil.create("div",className+"-line",container)}if(options.imperial){this._iScale=L.DomUtil.create("div",className+"-line",container)}},_update:function(){var bounds=this._map.getBounds(),centerLat=bounds.getCenter().lat,halfWorldMeters=6378137*Math.PI*Math.cos(centerLat*Math.PI/180),dist=halfWorldMeters*(bounds.getNorthEast().lng-bounds.getSouthWest().lng)/180,size=this._map.getSize(),options=this.options,maxMeters=0;if(size.x>0){maxMeters=dist*(options.maxWidth/size.x)}this._updateScales(options,maxMeters)},_updateScales:function(options,maxMeters){if(options.metric&&maxMeters){this._updateMetric(maxMeters)}if(options.imperial&&maxMeters){this._updateImperial(maxMeters)}},_updateMetric:function(maxMeters){var meters=this._getRoundNum(maxMeters);this._mScale.style.width=this._getScaleWidth(meters/maxMeters)+"px";this._mScale.innerHTML=meters<1e3?meters+" m":meters/1e3+" km"},_updateImperial:function(maxMeters){var maxFeet=maxMeters*3.2808399,scale=this._iScale,maxMiles,miles,feet;if(maxFeet>5280){maxMiles=maxFeet/5280;miles=this._getRoundNum(maxMiles);scale.style.width=this._getScaleWidth(miles/maxMiles)+"px";scale.innerHTML=miles+" mi"}else{feet=this._getRoundNum(maxFeet);scale.style.width=this._getScaleWidth(feet/maxFeet)+"px";scale.innerHTML=feet+" ft"}},_getScaleWidth:function(ratio){return Math.round(this.options.maxWidth*ratio)-10},_getRoundNum:function(num){var pow10=Math.pow(10,(Math.floor(num)+"").length-1),d=num/pow10;d=d>=10?10:d>=5?5:d>=3?3:d>=2?2:1;return pow10*d}});L.control.scale=function(options){return new L.Control.Scale(options)};L.Control.Layers=L.Control.extend({options:{collapsed:true,position:"topright",autoZIndex:true},initialize:function(baseLayers,overlays,options){L.setOptions(this,options);this._layers={};this._lastZIndex=0;this._handlingClick=false;for(var i in baseLayers){this._addLayer(baseLayers[i],i)}for(i in overlays){this._addLayer(overlays[i],i,true)}},onAdd:function(map){this._initLayout();this._update();map.on("layeradd",this._onLayerChange,this).on("layerremove",this._onLayerChange,this);return this._container},onRemove:function(map){map.off("layeradd",this._onLayerChange,this).off("layerremove",this._onLayerChange,this)},addBaseLayer:function(layer,name){this._addLayer(layer,name);this._update();return this},addOverlay:function(layer,name){this._addLayer(layer,name,true);this._update();return this},removeLayer:function(layer){var id=L.stamp(layer);delete this._layers[id];this._update();return this},_initLayout:function(){var className="leaflet-control-layers",container=this._container=L.DomUtil.create("div",className);container.setAttribute("aria-haspopup",true);if(!L.Browser.touch){L.DomEvent.disableClickPropagation(container).disableScrollPropagation(container)}else{L.DomEvent.on(container,"click",L.DomEvent.stopPropagation)}var form=this._form=L.DomUtil.create("form",className+"-list");if(this.options.collapsed){if(!L.Browser.android){L.DomEvent.on(container,"mouseover",this._expand,this).on(container,"mouseout",this._collapse,this)}var link=this._layersLink=L.DomUtil.create("a",className+"-toggle",container);link.href="#";link.title="Layers";if(L.Browser.touch){L.DomEvent.on(link,"click",L.DomEvent.stop).on(link,"click",this._expand,this)}else{L.DomEvent.on(link,"focus",this._expand,this)}L.DomEvent.on(form,"click",function(){setTimeout(L.bind(this._onInputClick,this),0)},this);this._map.on("click",this._collapse,this)}else{this._expand()}this._baseLayersList=L.DomUtil.create("div",className+"-base",form);this._separator=L.DomUtil.create("div",className+"-separator",form);this._overlaysList=L.DomUtil.create("div",className+"-overlays",form);container.appendChild(form)},_addLayer:function(layer,name,overlay){var id=L.stamp(layer);this._layers[id]={layer:layer,name:name,overlay:overlay};if(this.options.autoZIndex&&layer.setZIndex){this._lastZIndex++;layer.setZIndex(this._lastZIndex)}},_update:function(){if(!this._container){return}this._baseLayersList.innerHTML="";this._overlaysList.innerHTML="";var baseLayersPresent=false,overlaysPresent=false,i,obj;for(i in this._layers){obj=this._layers[i];this._addItem(obj);overlaysPresent=overlaysPresent||obj.overlay;baseLayersPresent=baseLayersPresent||!obj.overlay}this._separator.style.display=overlaysPresent&&baseLayersPresent?"":"none"},_onLayerChange:function(e){var obj=this._layers[L.stamp(e.layer)];if(!obj){return}if(!this._handlingClick){this._update()}var type=obj.overlay?e.type==="layeradd"?"overlayadd":"overlayremove":e.type==="layeradd"?"baselayerchange":null;if(type){this._map.fire(type,obj)}},_createRadioElement:function(name,checked){var radioHtml='<input type="radio" class="leaflet-control-layers-selector" name="'+name+'"';if(checked){radioHtml+=' checked="checked"'}radioHtml+="/>";var radioFragment=document.createElement("div");radioFragment.innerHTML=radioHtml;return radioFragment.firstChild},_addItem:function(obj){var label=document.createElement("label"),input,checked=this._map.hasLayer(obj.layer);if(obj.overlay){input=document.createElement("input");input.type="checkbox";input.className="leaflet-control-layers-selector";input.defaultChecked=checked}else{input=this._createRadioElement("leaflet-base-layers",checked)}input.layerId=L.stamp(obj.layer);L.DomEvent.on(input,"click",this._onInputClick,this);var name=document.createElement("span");name.innerHTML=" "+obj.name;label.appendChild(input);label.appendChild(name);var container=obj.overlay?this._overlaysList:this._baseLayersList;container.appendChild(label);return label},_onInputClick:function(){var i,input,obj,inputs=this._form.getElementsByTagName("input"),inputsLen=inputs.length;this._handlingClick=true;for(i=0;i<inputsLen;i++){input=inputs[i];obj=this._layers[input.layerId];if(input.checked&&!this._map.hasLayer(obj.layer)){this._map.addLayer(obj.layer)}else if(!input.checked&&this._map.hasLayer(obj.layer)){this._map.removeLayer(obj.layer)}}this._handlingClick=false;this._refocusOnMap()},_expand:function(){L.DomUtil.addClass(this._container,"leaflet-control-layers-expanded")},_collapse:function(){this._container.className=this._container.className.replace(" leaflet-control-layers-expanded","")}});L.control.layers=function(baseLayers,overlays,options){return new L.Control.Layers(baseLayers,overlays,options)};L.PosAnimation=L.Class.extend({includes:L.Mixin.Events,run:function(el,newPos,duration,easeLinearity){this.stop();this._el=el;this._inProgress=true;this._newPos=newPos;this.fire("start");el.style[L.DomUtil.TRANSITION]="all "+(duration||.25)+"s cubic-bezier(0,0,"+(easeLinearity||.5)+",1)";L.DomEvent.on(el,L.DomUtil.TRANSITION_END,this._onTransitionEnd,this);L.DomUtil.setPosition(el,newPos);L.Util.falseFn(el.offsetWidth);this._stepTimer=setInterval(L.bind(this._onStep,this),50)},stop:function(){if(!this._inProgress){return}L.DomUtil.setPosition(this._el,this._getPos());this._onTransitionEnd();L.Util.falseFn(this._el.offsetWidth)},_onStep:function(){var stepPos=this._getPos();if(!stepPos){this._onTransitionEnd();return}this._el._leaflet_pos=stepPos;this.fire("step")},_transformRe:/([-+]?(?:\d*\.)?\d+)\D*, ([-+]?(?:\d*\.)?\d+)\D*\)/,_getPos:function(){var left,top,matches,el=this._el,style=window.getComputedStyle(el);if(L.Browser.any3d){matches=style[L.DomUtil.TRANSFORM].match(this._transformRe);if(!matches){return}left=parseFloat(matches[1]);top=parseFloat(matches[2])}else{left=parseFloat(style.left);top=parseFloat(style.top)}return new L.Point(left,top,true)},_onTransitionEnd:function(){L.DomEvent.off(this._el,L.DomUtil.TRANSITION_END,this._onTransitionEnd,this);if(!this._inProgress){return}this._inProgress=false;this._el.style[L.DomUtil.TRANSITION]="";this._el._leaflet_pos=this._newPos;clearInterval(this._stepTimer);this.fire("step").fire("end")}});L.Map.include({setView:function(center,zoom,options){zoom=zoom===undefined?this._zoom:this._limitZoom(zoom);center=this._limitCenter(L.latLng(center),zoom,this.options.maxBounds);options=options||{};if(this._panAnim){this._panAnim.stop()}if(this._loaded&&!options.reset&&options!==true){if(options.animate!==undefined){options.zoom=L.extend({animate:options.animate},options.zoom);options.pan=L.extend({animate:options.animate},options.pan)}var animated=this._zoom!==zoom?this._tryAnimatedZoom&&this._tryAnimatedZoom(center,zoom,options.zoom):this._tryAnimatedPan(center,options.pan);if(animated){clearTimeout(this._sizeTimer);return this}}this._resetView(center,zoom);return this},panBy:function(offset,options){offset=L.point(offset).round();options=options||{};if(!offset.x&&!offset.y){return this}if(!this._panAnim){this._panAnim=new L.PosAnimation;this._panAnim.on({step:this._onPanTransitionStep,end:this._onPanTransitionEnd},this)}if(!options.noMoveStart){this.fire("movestart")}if(options.animate!==false){L.DomUtil.addClass(this._mapPane,"leaflet-pan-anim");var newPos=this._getMapPanePos().subtract(offset);this._panAnim.run(this._mapPane,newPos,options.duration||.25,options.easeLinearity)}else{this._rawPanBy(offset);this.fire("move").fire("moveend")}return this},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){L.DomUtil.removeClass(this._mapPane,"leaflet-pan-anim");this.fire("moveend")},_tryAnimatedPan:function(center,options){var offset=this._getCenterOffset(center)._floor();if((options&&options.animate)!==true&&!this.getSize().contains(offset)){return false}this.panBy(offset,options);return true}});L.PosAnimation=L.DomUtil.TRANSITION?L.PosAnimation:L.PosAnimation.extend({run:function(el,newPos,duration,easeLinearity){this.stop();this._el=el;this._inProgress=true;this._duration=duration||.25;this._easeOutPower=1/Math.max(easeLinearity||.5,.2);this._startPos=L.DomUtil.getPosition(el);this._offset=newPos.subtract(this._startPos);this._startTime=+new Date;this.fire("start");this._animate()},stop:function(){if(!this._inProgress){return}this._step();this._complete()},_animate:function(){this._animId=L.Util.requestAnimFrame(this._animate,this);this._step()},_step:function(){var elapsed=+new Date-this._startTime,duration=this._duration*1e3;if(elapsed<duration){this._runFrame(this._easeOut(elapsed/duration))}else{this._runFrame(1);this._complete()}},_runFrame:function(progress){var pos=this._startPos.add(this._offset.multiplyBy(progress));L.DomUtil.setPosition(this._el,pos);this.fire("step")},_complete:function(){L.Util.cancelAnimFrame(this._animId);this._inProgress=false;this.fire("end")},_easeOut:function(t){return 1-Math.pow(1-t,this._easeOutPower)}});L.Map.mergeOptions({zoomAnimation:true,zoomAnimationThreshold:4});if(L.DomUtil.TRANSITION){L.Map.addInitHook(function(){this._zoomAnimated=this.options.zoomAnimation&&L.DomUtil.TRANSITION&&L.Browser.any3d&&!L.Browser.android23&&!L.Browser.mobileOpera;if(this._zoomAnimated){L.DomEvent.on(this._mapPane,L.DomUtil.TRANSITION_END,this._catchTransitionEnd,this)}})}L.Map.include(!L.DomUtil.TRANSITION?{}:{_catchTransitionEnd:function(e){if(this._animatingZoom&&e.propertyName.indexOf("transform")>=0){this._onZoomTransitionEnd()}},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(center,zoom,options){if(this._animatingZoom){return true}options=options||{};if(!this._zoomAnimated||options.animate===false||this._nothingToAnimate()||Math.abs(zoom-this._zoom)>this.options.zoomAnimationThreshold){return false}var scale=this.getZoomScale(zoom),offset=this._getCenterOffset(center)._divideBy(1-1/scale),origin=this._getCenterLayerPoint()._add(offset);if(options.animate!==true&&!this.getSize().contains(offset)){return false}this.fire("movestart").fire("zoomstart");this._animateZoom(center,zoom,origin,scale,null,true);return true},_animateZoom:function(center,zoom,origin,scale,delta,backwards,forTouchZoom){if(!forTouchZoom){this._animatingZoom=true}L.DomUtil.addClass(this._mapPane,"leaflet-zoom-anim");this._animateToCenter=center;this._animateToZoom=zoom;if(L.Draggable){L.Draggable._disabled=true}L.Util.requestAnimFrame(function(){this.fire("zoomanim",{center:center,zoom:zoom,origin:origin,scale:scale,delta:delta,backwards:backwards});setTimeout(L.bind(this._onZoomTransitionEnd,this),250)},this)},_onZoomTransitionEnd:function(){if(!this._animatingZoom){return}this._animatingZoom=false;L.DomUtil.removeClass(this._mapPane,"leaflet-zoom-anim");L.Util.requestAnimFrame(function(){this._resetView(this._animateToCenter,this._animateToZoom,true,true);if(L.Draggable){L.Draggable._disabled=false}},this)}});L.TileLayer.include({_animateZoom:function(e){if(!this._animating){this._animating=true;this._prepareBgBuffer()}var bg=this._bgBuffer,transform=L.DomUtil.TRANSFORM,initialTransform=e.delta?L.DomUtil.getTranslateString(e.delta):bg.style[transform],scaleStr=L.DomUtil.getScaleString(e.scale,e.origin);bg.style[transform]=e.backwards?scaleStr+" "+initialTransform:initialTransform+" "+scaleStr},_endZoomAnim:function(){var front=this._tileContainer,bg=this._bgBuffer;front.style.visibility="";front.parentNode.appendChild(front);L.Util.falseFn(bg.offsetWidth);var zoom=this._map.getZoom();if(zoom>this.options.maxZoom||zoom<this.options.minZoom){this._clearBgBuffer()}this._animating=false},_clearBgBuffer:function(){var map=this._map;if(map&&!map._animatingZoom&&!map.touchZoom._zooming){this._bgBuffer.innerHTML="";this._bgBuffer.style[L.DomUtil.TRANSFORM]=""}},_prepareBgBuffer:function(){var front=this._tileContainer,bg=this._bgBuffer;var bgLoaded=this._getLoadedTilesPercentage(bg),frontLoaded=this._getLoadedTilesPercentage(front);if(bg&&bgLoaded>.5&&frontLoaded<.5){front.style.visibility="hidden";this._stopLoadingImages(front);return}bg.style.visibility="hidden";bg.style[L.DomUtil.TRANSFORM]="";this._tileContainer=bg;bg=this._bgBuffer=front;this._stopLoadingImages(bg);clearTimeout(this._clearBgBufferTimer)},_getLoadedTilesPercentage:function(container){var tiles=container.getElementsByTagName("img"),i,len,count=0;for(i=0,len=tiles.length;i<len;i++){if(tiles[i].complete){count++}}return count/len},_stopLoadingImages:function(container){var tiles=Array.prototype.slice.call(container.getElementsByTagName("img")),i,len,tile;for(i=0,len=tiles.length;i<len;i++){tile=tiles[i];if(!tile.complete){tile.onload=L.Util.falseFn;tile.onerror=L.Util.falseFn;tile.src=L.Util.emptyImageUrl;tile.parentNode.removeChild(tile)}}}});L.Map.include({_defaultLocateOptions:{watch:false,setView:false,maxZoom:Infinity,timeout:1e4,maximumAge:0,enableHighAccuracy:false},locate:function(options){options=this._locateOptions=L.extend(this._defaultLocateOptions,options);if(!navigator.geolocation){this._handleGeolocationError({code:0,message:"Geolocation not supported."});return this}var onResponse=L.bind(this._handleGeolocationResponse,this),onError=L.bind(this._handleGeolocationError,this);if(options.watch){this._locationWatchId=navigator.geolocation.watchPosition(onResponse,onError,options)}else{navigator.geolocation.getCurrentPosition(onResponse,onError,options)}return this},stopLocate:function(){if(navigator.geolocation){navigator.geolocation.clearWatch(this._locationWatchId)}if(this._locateOptions){this._locateOptions.setView=false}return this},_handleGeolocationError:function(error){var c=error.code,message=error.message||(c===1?"permission denied":c===2?"position unavailable":"timeout");if(this._locateOptions.setView&&!this._loaded){this.fitWorld()}this.fire("locationerror",{code:c,message:"Geolocation error: "+message+"."})},_handleGeolocationResponse:function(pos){var lat=pos.coords.latitude,lng=pos.coords.longitude,latlng=new L.LatLng(lat,lng),latAccuracy=180*pos.coords.accuracy/40075017,lngAccuracy=latAccuracy/Math.cos(L.LatLng.DEG_TO_RAD*lat),bounds=L.latLngBounds([lat-latAccuracy,lng-lngAccuracy],[lat+latAccuracy,lng+lngAccuracy]),options=this._locateOptions;if(options.setView){var zoom=Math.min(this.getBoundsZoom(bounds),options.maxZoom);this.setView(latlng,zoom)}var data={latlng:latlng,bounds:bounds,timestamp:pos.timestamp};for(var i in pos.coords){if(typeof pos.coords[i]==="number"){data[i]=pos.coords[i]}}this.fire("locationfound",data)}})})(window,document)},{}],"/data/github/geopackage-node/node_modules/proj4/lib/Point.js":[function(require,module,exports){var mgrs=require("mgrs");function Point(x,y,z){if(!(this instanceof Point)){return new Point(x,y,z)}if(Array.isArray(x)){this.x=x[0];this.y=x[1];this.z=x[2]||0}else if(typeof x==="object"){this.x=x.x;this.y=x.y;this.z=x.z||0}else if(typeof x==="string"&&typeof y==="undefined"){var coords=x.split(",");this.x=parseFloat(coords[0],10);this.y=parseFloat(coords[1],10);this.z=parseFloat(coords[2],10)||0}else{this.x=x;this.y=y;this.z=z||0}console.warn("proj4.Point will be removed in version 3, use proj4.toPoint")}Point.fromMGRS=function(mgrsStr){return new Point(mgrs.toPoint(mgrsStr))};Point.prototype.toMGRS=function(accuracy){return mgrs.forward([this.x,this.y],accuracy)};module.exports=Point},{mgrs:"/data/github/geopackage-node/node_modules/proj4/node_modules/mgrs/mgrs.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/Proj.js":[function(require,module,exports){var parseCode=require("./parseCode");var extend=require("./extend");var projections=require("./projections");var deriveConstants=require("./deriveConstants");function Projection(srsCode,callback){if(!(this instanceof Projection)){return new Projection(srsCode)}callback=callback||function(error){if(error){throw error}};var json=parseCode(srsCode);if(typeof json!=="object"){callback(srsCode);return}var modifiedJSON=deriveConstants(json);var ourProj=Projection.projections.get(modifiedJSON.projName);if(ourProj){extend(this,modifiedJSON);extend(this,ourProj);this.init();callback(null,this)}else{callback(srsCode)}}Projection.projections=projections;Projection.projections.start();module.exports=Projection},{"./deriveConstants":"/data/github/geopackage-node/node_modules/proj4/lib/deriveConstants.js","./extend":"/data/github/geopackage-node/node_modules/proj4/lib/extend.js","./parseCode":"/data/github/geopackage-node/node_modules/proj4/lib/parseCode.js","./projections":"/data/github/geopackage-node/node_modules/proj4/lib/projections.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/adjust_axis.js":[function(require,module,exports){module.exports=function(crs,denorm,point){var xin=point.x,yin=point.y,zin=point.z||0;var v,t,i;for(i=0;i<3;i++){if(denorm&&i===2&&point.z===undefined){continue}if(i===0){v=xin;t="x"}else if(i===1){v=yin;t="y"}else{v=zin;t="z"}switch(crs.axis[i]){case"e":point[t]=v;break;case"w":point[t]=-v;break;case"n":point[t]=v;break;case"s":point[t]=-v;break;case"u":if(point[t]!==undefined){point.z=v}break;case"d":if(point[t]!==undefined){point.z=-v}break;default:return null}}return point}},{}],"/data/github/geopackage-node/node_modules/proj4/lib/common/adjust_lat.js":[function(require,module,exports){var HALF_PI=Math.PI/2;var sign=require("./sign");module.exports=function(x){return Math.abs(x)<HALF_PI?x:x-sign(x)*Math.PI}},{"./sign":"/data/github/geopackage-node/node_modules/proj4/lib/common/sign.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/common/adjust_lon.js":[function(require,module,exports){var TWO_PI=Math.PI*2;var SPI=3.14159265359;var sign=require("./sign");module.exports=function(x){return Math.abs(x)<=SPI?x:x-sign(x)*TWO_PI}},{"./sign":"/data/github/geopackage-node/node_modules/proj4/lib/common/sign.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/common/asinz.js":[function(require,module,exports){module.exports=function(x){if(Math.abs(x)>1){x=x>1?1:-1}return Math.asin(x)}},{}],"/data/github/geopackage-node/node_modules/proj4/lib/common/e0fn.js":[function(require,module,exports){module.exports=function(x){return 1-.25*x*(1+x/16*(3+1.25*x))}},{}],"/data/github/geopackage-node/node_modules/proj4/lib/common/e1fn.js":[function(require,module,exports){module.exports=function(x){return.375*x*(1+.25*x*(1+.46875*x))}},{}],"/data/github/geopackage-node/node_modules/proj4/lib/common/e2fn.js":[function(require,module,exports){module.exports=function(x){return.05859375*x*x*(1+.75*x)}},{}],"/data/github/geopackage-node/node_modules/proj4/lib/common/e3fn.js":[function(require,module,exports){module.exports=function(x){return x*x*x*(35/3072)}},{}],"/data/github/geopackage-node/node_modules/proj4/lib/common/gN.js":[function(require,module,exports){module.exports=function(a,e,sinphi){var temp=e*sinphi;return a/Math.sqrt(1-temp*temp)}},{}],"/data/github/geopackage-node/node_modules/proj4/lib/common/imlfn.js":[function(require,module,exports){module.exports=function(ml,e0,e1,e2,e3){var phi;var dphi;phi=ml/e0;for(var i=0;i<15;i++){dphi=(ml-(e0*phi-e1*Math.sin(2*phi)+e2*Math.sin(4*phi)-e3*Math.sin(6*phi)))/(e0-2*e1*Math.cos(2*phi)+4*e2*Math.cos(4*phi)-6*e3*Math.cos(6*phi));phi+=dphi;if(Math.abs(dphi)<=1e-10){return phi}}return NaN}},{}],"/data/github/geopackage-node/node_modules/proj4/lib/common/iqsfnz.js":[function(require,module,exports){var HALF_PI=Math.PI/2;module.exports=function(eccent,q){var temp=1-(1-eccent*eccent)/(2*eccent)*Math.log((1-eccent)/(1+eccent));if(Math.abs(Math.abs(q)-temp)<1e-6){if(q<0){return-1*HALF_PI}else{return HALF_PI}}var phi=Math.asin(.5*q);var dphi;var sin_phi;var cos_phi;var con;for(var i=0;i<30;i++){sin_phi=Math.sin(phi);cos_phi=Math.cos(phi);con=eccent*sin_phi;dphi=Math.pow(1-con*con,2)/(2*cos_phi)*(q/(1-eccent*eccent)-sin_phi/(1-con*con)+.5/eccent*Math.log((1-con)/(1+con)));phi+=dphi;if(Math.abs(dphi)<=1e-10){return phi}}return NaN}},{}],"/data/github/geopackage-node/node_modules/proj4/lib/common/mlfn.js":[function(require,module,exports){module.exports=function(e0,e1,e2,e3,phi){return e0*phi-e1*Math.sin(2*phi)+e2*Math.sin(4*phi)-e3*Math.sin(6*phi)}},{}],"/data/github/geopackage-node/node_modules/proj4/lib/common/msfnz.js":[function(require,module,exports){module.exports=function(eccent,sinphi,cosphi){var con=eccent*sinphi;return cosphi/Math.sqrt(1-con*con)}},{}],"/data/github/geopackage-node/node_modules/proj4/lib/common/phi2z.js":[function(require,module,exports){var HALF_PI=Math.PI/2;module.exports=function(eccent,ts){var eccnth=.5*eccent;var con,dphi;var phi=HALF_PI-2*Math.atan(ts);for(var i=0;i<=15;i++){con=eccent*Math.sin(phi);dphi=HALF_PI-2*Math.atan(ts*Math.pow((1-con)/(1+con),eccnth))-phi;phi+=dphi;if(Math.abs(dphi)<=1e-10){return phi}}return-9999}},{}],"/data/github/geopackage-node/node_modules/proj4/lib/common/pj_enfn.js":[function(require,module,exports){var C00=1;var C02=.25;var C04=.046875;var C06=.01953125;var C08=.01068115234375;var C22=.75;var C44=.46875;var C46=.013020833333333334;var C48=.007120768229166667;var C66=.3645833333333333;var C68=.005696614583333333;var C88=.3076171875;module.exports=function(es){var en=[];en[0]=C00-es*(C02+es*(C04+es*(C06+es*C08)));en[1]=es*(C22-es*(C04+es*(C06+es*C08)));var t=es*es;en[2]=t*(C44-es*(C46+es*C48));t*=es;en[3]=t*(C66-es*C68);en[4]=t*es*C88;return en}},{}],"/data/github/geopackage-node/node_modules/proj4/lib/common/pj_inv_mlfn.js":[function(require,module,exports){var pj_mlfn=require("./pj_mlfn");var EPSLN=1e-10;var MAX_ITER=20;module.exports=function(arg,es,en){var k=1/(1-es);var phi=arg;for(var i=MAX_ITER;i;--i){var s=Math.sin(phi);var t=1-es*s*s;t=(pj_mlfn(phi,s,Math.cos(phi),en)-arg)*(t*Math.sqrt(t))*k;phi-=t;if(Math.abs(t)<EPSLN){return phi}}return phi}},{"./pj_mlfn":"/data/github/geopackage-node/node_modules/proj4/lib/common/pj_mlfn.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/common/pj_mlfn.js":[function(require,module,exports){module.exports=function(phi,sphi,cphi,en){cphi*=sphi;sphi*=sphi;return en[0]*phi-cphi*(en[1]+sphi*(en[2]+sphi*(en[3]+sphi*en[4])))}},{}],"/data/github/geopackage-node/node_modules/proj4/lib/common/qsfnz.js":[function(require,module,exports){module.exports=function(eccent,sinphi){var con;if(eccent>1e-7){con=eccent*sinphi;return(1-eccent*eccent)*(sinphi/(1-con*con)-.5/eccent*Math.log((1-con)/(1+con)))}else{return 2*sinphi}}},{}],"/data/github/geopackage-node/node_modules/proj4/lib/common/sign.js":[function(require,module,exports){module.exports=function(x){return x<0?-1:1}},{}],"/data/github/geopackage-node/node_modules/proj4/lib/common/srat.js":[function(require,module,exports){module.exports=function(esinp,exp){return Math.pow((1-esinp)/(1+esinp),exp)}},{}],"/data/github/geopackage-node/node_modules/proj4/lib/common/toPoint.js":[function(require,module,exports){module.exports=function(array){var out={x:array[0],y:array[1]};if(array.length>2){out.z=array[2]}if(array.length>3){out.m=array[3]}return out}},{}],"/data/github/geopackage-node/node_modules/proj4/lib/common/tsfnz.js":[function(require,module,exports){var HALF_PI=Math.PI/2;module.exports=function(eccent,phi,sinphi){var con=eccent*sinphi;var com=.5*eccent;con=Math.pow((1-con)/(1+con),com);return Math.tan(.5*(HALF_PI-phi))/con}},{}],"/data/github/geopackage-node/node_modules/proj4/lib/constants/Datum.js":[function(require,module,exports){exports.wgs84={towgs84:"0,0,0",ellipse:"WGS84",datumName:"WGS84"};exports.ch1903={towgs84:"674.374,15.056,405.346",ellipse:"bessel",datumName:"swiss"};exports.ggrs87={towgs84:"-199.87,74.79,246.62",ellipse:"GRS80",datumName:"Greek_Geodetic_Reference_System_1987"};exports.nad83={towgs84:"0,0,0",ellipse:"GRS80",datumName:"North_American_Datum_1983"};exports.nad27={nadgrids:"@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat",ellipse:"clrk66",datumName:"North_American_Datum_1927"};exports.potsdam={towgs84:"606.0,23.0,413.0",ellipse:"bessel",datumName:"Potsdam Rauenberg 1950 DHDN"};exports.carthage={towgs84:"-263.0,6.0,431.0",ellipse:"clark80",datumName:"Carthage 1934 Tunisia"};exports.hermannskogel={towgs84:"653.0,-212.0,449.0",ellipse:"bessel",datumName:"Hermannskogel"};exports.ire65={towgs84:"482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15",ellipse:"mod_airy",datumName:"Ireland 1965"};exports.rassadiran={towgs84:"-133.63,-157.5,-158.62",ellipse:"intl",datumName:"Rassadiran"};exports.nzgd49={towgs84:"59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993",ellipse:"intl",datumName:"New Zealand Geodetic Datum 1949"};exports.osgb36={towgs84:"446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894",ellipse:"airy",datumName:"Airy 1830"};exports.s_jtsk={towgs84:"589,76,480",ellipse:"bessel",datumName:"S-JTSK (Ferro)"};exports.beduaram={towgs84:"-106,-87,188",ellipse:"clrk80",datumName:"Beduaram"};exports.gunung_segara={towgs84:"-403,684,41",ellipse:"bessel",datumName:"Gunung Segara Jakarta"};exports.rnb72={towgs84:"106.869,-52.2978,103.724,-0.33657,0.456955,-1.84218,1",ellipse:"intl",datumName:"Reseau National Belge 1972"}},{}],"/data/github/geopackage-node/node_modules/proj4/lib/constants/Ellipsoid.js":[function(require,module,exports){exports.MERIT={a:6378137,rf:298.257,ellipseName:"MERIT 1983"};exports.SGS85={a:6378136,rf:298.257,ellipseName:"Soviet Geodetic System 85"};exports.GRS80={a:6378137,rf:298.257222101,ellipseName:"GRS 1980(IUGG, 1980)"};exports.IAU76={a:6378140,rf:298.257,ellipseName:"IAU 1976"};exports.airy={a:6377563.396,b:6356256.91,ellipseName:"Airy 1830"};exports.APL4={a:6378137,rf:298.25,ellipseName:"Appl. Physics. 1965"};exports.NWL9D={a:6378145,rf:298.25,ellipseName:"Naval Weapons Lab., 1965"};exports.mod_airy={a:6377340.189,b:6356034.446,ellipseName:"Modified Airy"};exports.andrae={a:6377104.43,rf:300,ellipseName:"Andrae 1876 (Den., Iclnd.)"};exports.aust_SA={a:6378160,rf:298.25,ellipseName:"Australian Natl & S. Amer. 1969"};exports.GRS67={a:6378160,rf:298.247167427,ellipseName:"GRS 67(IUGG 1967)"};exports.bessel={a:6377397.155,rf:299.1528128,ellipseName:"Bessel 1841"};exports.bess_nam={a:6377483.865,rf:299.1528128,ellipseName:"Bessel 1841 (Namibia)"};exports.clrk66={a:6378206.4,b:6356583.8,ellipseName:"Clarke 1866"};exports.clrk80={a:6378249.145,rf:293.4663,ellipseName:"Clarke 1880 mod."};exports.clrk58={a:6378293.645208759,rf:294.2606763692654,ellipseName:"Clarke 1858"};exports.CPM={a:6375738.7,rf:334.29,ellipseName:"Comm. des Poids et Mesures 1799"};exports.delmbr={a:6376428,rf:311.5,ellipseName:"Delambre 1810 (Belgium)"};exports.engelis={a:6378136.05,rf:298.2566,ellipseName:"Engelis 1985"};exports.evrst30={a:6377276.345,rf:300.8017,ellipseName:"Everest 1830"};exports.evrst48={a:6377304.063,rf:300.8017,ellipseName:"Everest 1948"};exports.evrst56={a:6377301.243,rf:300.8017,ellipseName:"Everest 1956"};exports.evrst69={a:6377295.664,rf:300.8017,ellipseName:"Everest 1969"};exports.evrstSS={a:6377298.556,rf:300.8017,ellipseName:"Everest (Sabah & Sarawak)"};exports.fschr60={a:6378166,rf:298.3,ellipseName:"Fischer (Mercury Datum) 1960"};exports.fschr60m={a:6378155,rf:298.3,ellipseName:"Fischer 1960"};exports.fschr68={a:6378150,rf:298.3,ellipseName:"Fischer 1968"};exports.helmert={a:6378200,rf:298.3,ellipseName:"Helmert 1906"};exports.hough={a:6378270,rf:297,ellipseName:"Hough"};exports.intl={a:6378388,rf:297,ellipseName:"International 1909 (Hayford)"};exports.kaula={a:6378163,rf:298.24,ellipseName:"Kaula 1961"};exports.lerch={a:6378139,rf:298.257,ellipseName:"Lerch 1979"};exports.mprts={a:6397300,rf:191,ellipseName:"Maupertius 1738"};exports.new_intl={a:6378157.5,b:6356772.2,ellipseName:"New International 1967"};exports.plessis={a:6376523,rf:6355863,ellipseName:"Plessis 1817 (France)"};exports.krass={a:6378245,rf:298.3,ellipseName:"Krassovsky, 1942"};exports.SEasia={a:6378155,b:6356773.3205,ellipseName:"Southeast Asia"};exports.walbeck={a:6376896,b:6355834.8467,ellipseName:"Walbeck"};exports.WGS60={a:6378165,rf:298.3,ellipseName:"WGS 60"};exports.WGS66={a:6378145,rf:298.25,ellipseName:"WGS 66"};exports.WGS7={a:6378135,rf:298.26,ellipseName:"WGS 72"};exports.WGS84={a:6378137,rf:298.257223563,ellipseName:"WGS 84"};exports.sphere={a:6370997,b:6370997,ellipseName:"Normal Sphere (r=6370997)"}},{}],"/data/github/geopackage-node/node_modules/proj4/lib/constants/PrimeMeridian.js":[function(require,module,exports){exports.greenwich=0;exports.lisbon=-9.131906111111;exports.paris=2.337229166667;exports.bogota=-74.080916666667;exports.madrid=-3.687938888889;exports.rome=12.452333333333;exports.bern=7.439583333333;exports.jakarta=106.807719444444;exports.ferro=-17.666666666667;exports.brussels=4.367975;exports.stockholm=18.058277777778;exports.athens=23.7163375;exports.oslo=10.722916666667},{}],"/data/github/geopackage-node/node_modules/proj4/lib/constants/units.js":[function(require,module,exports){exports.ft={to_meter:.3048};exports["us-ft"]={to_meter:1200/3937}},{}],"/data/github/geopackage-node/node_modules/proj4/lib/core.js":[function(require,module,exports){var proj=require("./Proj");var transform=require("./transform");var wgs84=proj("WGS84");function transformer(from,to,coords){var transformedArray;if(Array.isArray(coords)){transformedArray=transform(from,to,coords);if(coords.length===3){return[transformedArray.x,transformedArray.y,transformedArray.z]}else{return[transformedArray.x,transformedArray.y]}}else{return transform(from,to,coords)}}function checkProj(item){if(item instanceof proj){
  27. return item}if(item.oProj){return item.oProj}return proj(item)}function proj4(fromProj,toProj,coord){fromProj=checkProj(fromProj);var single=false;var obj;if(typeof toProj==="undefined"){toProj=fromProj;fromProj=wgs84;single=true}else if(typeof toProj.x!=="undefined"||Array.isArray(toProj)){coord=toProj;toProj=fromProj;fromProj=wgs84;single=true}toProj=checkProj(toProj);if(coord){return transformer(fromProj,toProj,coord)}else{obj={forward:function(coords){return transformer(fromProj,toProj,coords)},inverse:function(coords){return transformer(toProj,fromProj,coords)}};if(single){obj.oProj=toProj}return obj}}module.exports=proj4},{"./Proj":"/data/github/geopackage-node/node_modules/proj4/lib/Proj.js","./transform":"/data/github/geopackage-node/node_modules/proj4/lib/transform.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/datum.js":[function(require,module,exports){var HALF_PI=Math.PI/2;var PJD_3PARAM=1;var PJD_7PARAM=2;var PJD_GRIDSHIFT=3;var PJD_WGS84=4;var PJD_NODATUM=5;var SEC_TO_RAD=484813681109536e-20;var AD_C=1.0026;var COS_67P5=.3826834323650898;var datum=function(proj){if(!(this instanceof datum)){return new datum(proj)}this.datum_type=PJD_WGS84;if(!proj){return}if(proj.datumCode&&proj.datumCode==="none"){this.datum_type=PJD_NODATUM}if(proj.datum_params){this.datum_params=proj.datum_params.map(parseFloat);if(this.datum_params[0]!==0||this.datum_params[1]!==0||this.datum_params[2]!==0){this.datum_type=PJD_3PARAM}if(this.datum_params.length>3){if(this.datum_params[3]!==0||this.datum_params[4]!==0||this.datum_params[5]!==0||this.datum_params[6]!==0){this.datum_type=PJD_7PARAM;this.datum_params[3]*=SEC_TO_RAD;this.datum_params[4]*=SEC_TO_RAD;this.datum_params[5]*=SEC_TO_RAD;this.datum_params[6]=this.datum_params[6]/1e6+1}}}this.datum_type=proj.grids?PJD_GRIDSHIFT:this.datum_type;this.a=proj.a;this.b=proj.b;this.es=proj.es;this.ep2=proj.ep2;if(this.datum_type===PJD_GRIDSHIFT){this.grids=proj.grids}};datum.prototype={compare_datums:function(dest){if(this.datum_type!==dest.datum_type){return false}else if(this.a!==dest.a||Math.abs(this.es-dest.es)>5e-11){return false}else if(this.datum_type===PJD_3PARAM){return this.datum_params[0]===dest.datum_params[0]&&this.datum_params[1]===dest.datum_params[1]&&this.datum_params[2]===dest.datum_params[2]}else if(this.datum_type===PJD_7PARAM){return this.datum_params[0]===dest.datum_params[0]&&this.datum_params[1]===dest.datum_params[1]&&this.datum_params[2]===dest.datum_params[2]&&this.datum_params[3]===dest.datum_params[3]&&this.datum_params[4]===dest.datum_params[4]&&this.datum_params[5]===dest.datum_params[5]&&this.datum_params[6]===dest.datum_params[6]}else if(this.datum_type===PJD_GRIDSHIFT||dest.datum_type===PJD_GRIDSHIFT){return this.nadgrids===dest.nadgrids}else{return true}},geodetic_to_geocentric:function(p){var Longitude=p.x;var Latitude=p.y;var Height=p.z?p.z:0;var X;var Y;var Z;var Error_Code=0;var Rn;var Sin_Lat;var Sin2_Lat;var Cos_Lat;if(Latitude<-HALF_PI&&Latitude>-1.001*HALF_PI){Latitude=-HALF_PI}else if(Latitude>HALF_PI&&Latitude<1.001*HALF_PI){Latitude=HALF_PI}else if(Latitude<-HALF_PI||Latitude>HALF_PI){return null}if(Longitude>Math.PI){Longitude-=2*Math.PI}Sin_Lat=Math.sin(Latitude);Cos_Lat=Math.cos(Latitude);Sin2_Lat=Sin_Lat*Sin_Lat;Rn=this.a/Math.sqrt(1-this.es*Sin2_Lat);X=(Rn+Height)*Cos_Lat*Math.cos(Longitude);Y=(Rn+Height)*Cos_Lat*Math.sin(Longitude);Z=(Rn*(1-this.es)+Height)*Sin_Lat;p.x=X;p.y=Y;p.z=Z;return Error_Code},geocentric_to_geodetic:function(p){var genau=1e-12;var genau2=genau*genau;var maxiter=30;var P;var RR;var CT;var ST;var RX;var RK;var RN;var CPHI0;var SPHI0;var CPHI;var SPHI;var SDPHI;var At_Pole;var iter;var X=p.x;var Y=p.y;var Z=p.z?p.z:0;var Longitude;var Latitude;var Height;At_Pole=false;P=Math.sqrt(X*X+Y*Y);RR=Math.sqrt(X*X+Y*Y+Z*Z);if(P/this.a<genau){At_Pole=true;Longitude=0;if(RR/this.a<genau){Latitude=HALF_PI;Height=-this.b;return}}else{Longitude=Math.atan2(Y,X)}CT=Z/RR;ST=P/RR;RX=1/Math.sqrt(1-this.es*(2-this.es)*ST*ST);CPHI0=ST*(1-this.es)*RX;SPHI0=CT*RX;iter=0;do{iter++;RN=this.a/Math.sqrt(1-this.es*SPHI0*SPHI0);Height=P*CPHI0+Z*SPHI0-RN*(1-this.es*SPHI0*SPHI0);RK=this.es*RN/(RN+Height);RX=1/Math.sqrt(1-RK*(2-RK)*ST*ST);CPHI=ST*(1-RK)*RX;SPHI=CT*RX;SDPHI=SPHI*CPHI0-CPHI*SPHI0;CPHI0=CPHI;SPHI0=SPHI}while(SDPHI*SDPHI>genau2&&iter<maxiter);Latitude=Math.atan(SPHI/Math.abs(CPHI));p.x=Longitude;p.y=Latitude;p.z=Height;return p},geocentric_to_geodetic_noniter:function(p){var X=p.x;var Y=p.y;var Z=p.z?p.z:0;var Longitude;var Latitude;var Height;var W;var W2;var T0;var T1;var S0;var S1;var Sin_B0;var Sin3_B0;var Cos_B0;var Sin_p1;var Cos_p1;var Rn;var Sum;var At_Pole;X=parseFloat(X);Y=parseFloat(Y);Z=parseFloat(Z);At_Pole=false;if(X!==0){Longitude=Math.atan2(Y,X)}else{if(Y>0){Longitude=HALF_PI}else if(Y<0){Longitude=-HALF_PI}else{At_Pole=true;Longitude=0;if(Z>0){Latitude=HALF_PI}else if(Z<0){Latitude=-HALF_PI}else{Latitude=HALF_PI;Height=-this.b;return}}}W2=X*X+Y*Y;W=Math.sqrt(W2);T0=Z*AD_C;S0=Math.sqrt(T0*T0+W2);Sin_B0=T0/S0;Cos_B0=W/S0;Sin3_B0=Sin_B0*Sin_B0*Sin_B0;T1=Z+this.b*this.ep2*Sin3_B0;Sum=W-this.a*this.es*Cos_B0*Cos_B0*Cos_B0;S1=Math.sqrt(T1*T1+Sum*Sum);Sin_p1=T1/S1;Cos_p1=Sum/S1;Rn=this.a/Math.sqrt(1-this.es*Sin_p1*Sin_p1);if(Cos_p1>=COS_67P5){Height=W/Cos_p1-Rn}else if(Cos_p1<=-COS_67P5){Height=W/-Cos_p1-Rn}else{Height=Z/Sin_p1+Rn*(this.es-1)}if(At_Pole===false){Latitude=Math.atan(Sin_p1/Cos_p1)}p.x=Longitude;p.y=Latitude;p.z=Height;return p},geocentric_to_wgs84:function(p){if(this.datum_type===PJD_3PARAM){p.x+=this.datum_params[0];p.y+=this.datum_params[1];p.z+=this.datum_params[2]}else if(this.datum_type===PJD_7PARAM){var Dx_BF=this.datum_params[0];var Dy_BF=this.datum_params[1];var Dz_BF=this.datum_params[2];var Rx_BF=this.datum_params[3];var Ry_BF=this.datum_params[4];var Rz_BF=this.datum_params[5];var M_BF=this.datum_params[6];var x_out=M_BF*(p.x-Rz_BF*p.y+Ry_BF*p.z)+Dx_BF;var y_out=M_BF*(Rz_BF*p.x+p.y-Rx_BF*p.z)+Dy_BF;var z_out=M_BF*(-Ry_BF*p.x+Rx_BF*p.y+p.z)+Dz_BF;p.x=x_out;p.y=y_out;p.z=z_out}},geocentric_from_wgs84:function(p){if(this.datum_type===PJD_3PARAM){p.x-=this.datum_params[0];p.y-=this.datum_params[1];p.z-=this.datum_params[2]}else if(this.datum_type===PJD_7PARAM){var Dx_BF=this.datum_params[0];var Dy_BF=this.datum_params[1];var Dz_BF=this.datum_params[2];var Rx_BF=this.datum_params[3];var Ry_BF=this.datum_params[4];var Rz_BF=this.datum_params[5];var M_BF=this.datum_params[6];var x_tmp=(p.x-Dx_BF)/M_BF;var y_tmp=(p.y-Dy_BF)/M_BF;var z_tmp=(p.z-Dz_BF)/M_BF;p.x=x_tmp+Rz_BF*y_tmp-Ry_BF*z_tmp;p.y=-Rz_BF*x_tmp+y_tmp+Rx_BF*z_tmp;p.z=Ry_BF*x_tmp-Rx_BF*y_tmp+z_tmp}}};module.exports=datum},{}],"/data/github/geopackage-node/node_modules/proj4/lib/datum_transform.js":[function(require,module,exports){var PJD_3PARAM=1;var PJD_7PARAM=2;var PJD_GRIDSHIFT=3;var PJD_NODATUM=5;var SRS_WGS84_SEMIMAJOR=6378137;var SRS_WGS84_ESQUARED=.006694379990141316;module.exports=function(source,dest,point){var wp,i,l;function checkParams(fallback){return fallback===PJD_3PARAM||fallback===PJD_7PARAM}if(source.compare_datums(dest)){return point}if(source.datum_type===PJD_NODATUM||dest.datum_type===PJD_NODATUM){return point}var src_a=source.a;var src_es=source.es;var dst_a=dest.a;var dst_es=dest.es;var fallback=source.datum_type;if(fallback===PJD_GRIDSHIFT){if(this.apply_gridshift(source,0,point)===0){source.a=SRS_WGS84_SEMIMAJOR;source.es=SRS_WGS84_ESQUARED}else{if(!source.datum_params){source.a=src_a;source.es=source.es;return point}wp=1;for(i=0,l=source.datum_params.length;i<l;i++){wp*=source.datum_params[i]}if(wp===0){source.a=src_a;source.es=source.es;return point}if(source.datum_params.length>3){fallback=PJD_7PARAM}else{fallback=PJD_3PARAM}}}if(dest.datum_type===PJD_GRIDSHIFT){dest.a=SRS_WGS84_SEMIMAJOR;dest.es=SRS_WGS84_ESQUARED}if(source.es!==dest.es||source.a!==dest.a||checkParams(fallback)||checkParams(dest.datum_type)){source.geodetic_to_geocentric(point);if(checkParams(source.datum_type)){source.geocentric_to_wgs84(point)}if(checkParams(dest.datum_type)){dest.geocentric_from_wgs84(point)}dest.geocentric_to_geodetic(point)}if(dest.datum_type===PJD_GRIDSHIFT){this.apply_gridshift(dest,1,point)}source.a=src_a;source.es=src_es;dest.a=dst_a;dest.es=dst_es;return point}},{}],"/data/github/geopackage-node/node_modules/proj4/lib/defs.js":[function(require,module,exports){var globals=require("./global");var parseProj=require("./projString");var wkt=require("./wkt");function defs(name){var that=this;if(arguments.length===2){var def=arguments[1];if(typeof def==="string"){if(def.charAt(0)==="+"){defs[name]=parseProj(arguments[1])}else{defs[name]=wkt(arguments[1])}}else{defs[name]=def}}else if(arguments.length===1){if(Array.isArray(name)){return name.map(function(v){if(Array.isArray(v)){defs.apply(that,v)}else{defs(v)}})}else if(typeof name==="string"){if(name in defs){return defs[name]}}else if("EPSG"in name){defs["EPSG:"+name.EPSG]=name}else if("ESRI"in name){defs["ESRI:"+name.ESRI]=name}else if("IAU2000"in name){defs["IAU2000:"+name.IAU2000]=name}else{console.log(name)}return}}globals(defs);module.exports=defs},{"./global":"/data/github/geopackage-node/node_modules/proj4/lib/global.js","./projString":"/data/github/geopackage-node/node_modules/proj4/lib/projString.js","./wkt":"/data/github/geopackage-node/node_modules/proj4/lib/wkt.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/deriveConstants.js":[function(require,module,exports){var Datum=require("./constants/Datum");var Ellipsoid=require("./constants/Ellipsoid");var extend=require("./extend");var datum=require("./datum");var EPSLN=1e-10;var SIXTH=.16666666666666666;var RA4=.04722222222222222;var RA6=.022156084656084655;module.exports=function(json){if(json.datumCode&&json.datumCode!=="none"){var datumDef=Datum[json.datumCode];if(datumDef){json.datum_params=datumDef.towgs84?datumDef.towgs84.split(","):null;json.ellps=datumDef.ellipse;json.datumName=datumDef.datumName?datumDef.datumName:json.datumCode}}if(!json.a){var ellipse=Ellipsoid[json.ellps]?Ellipsoid[json.ellps]:Ellipsoid.WGS84;extend(json,ellipse)}if(json.rf&&!json.b){json.b=(1-1/json.rf)*json.a}if(json.rf===0||Math.abs(json.a-json.b)<EPSLN){json.sphere=true;json.b=json.a}json.a2=json.a*json.a;json.b2=json.b*json.b;json.es=(json.a2-json.b2)/json.a2;json.e=Math.sqrt(json.es);if(json.R_A){json.a*=1-json.es*(SIXTH+json.es*(RA4+json.es*RA6));json.a2=json.a*json.a;json.b2=json.b*json.b;json.es=0}json.ep2=(json.a2-json.b2)/json.b2;if(!json.k0){json.k0=1}if(!json.axis){json.axis="enu"}if(!json.datum){json.datum=datum(json)}return json}},{"./constants/Datum":"/data/github/geopackage-node/node_modules/proj4/lib/constants/Datum.js","./constants/Ellipsoid":"/data/github/geopackage-node/node_modules/proj4/lib/constants/Ellipsoid.js","./datum":"/data/github/geopackage-node/node_modules/proj4/lib/datum.js","./extend":"/data/github/geopackage-node/node_modules/proj4/lib/extend.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/extend.js":[function(require,module,exports){module.exports=function(destination,source){destination=destination||{};var value,property;if(!source){return destination}for(property in source){value=source[property];if(value!==undefined){destination[property]=value}}return destination}},{}],"/data/github/geopackage-node/node_modules/proj4/lib/global.js":[function(require,module,exports){module.exports=function(defs){defs("EPSG:4326","+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees");defs("EPSG:4269","+title=NAD83 (long/lat) +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees");defs("EPSG:3857","+title=WGS 84 / Pseudo-Mercator +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs");defs.WGS84=defs["EPSG:4326"];defs["EPSG:3785"]=defs["EPSG:3857"];defs.GOOGLE=defs["EPSG:3857"];defs["EPSG:900913"]=defs["EPSG:3857"];defs["EPSG:102113"]=defs["EPSG:3857"]}},{}],"/data/github/geopackage-node/node_modules/proj4/lib/includedProjections.js":[function(require,module,exports){var projs=[require("./projections/tmerc"),require("./projections/utm"),require("./projections/sterea"),require("./projections/stere"),require("./projections/somerc"),require("./projections/omerc"),require("./projections/lcc"),require("./projections/krovak"),require("./projections/cass"),require("./projections/laea"),require("./projections/aea"),require("./projections/gnom"),require("./projections/cea"),require("./projections/eqc"),require("./projections/poly"),require("./projections/nzmg"),require("./projections/mill"),require("./projections/sinu"),require("./projections/moll"),require("./projections/eqdc"),require("./projections/vandg"),require("./projections/aeqd")];module.exports=function(proj4){projs.forEach(function(proj){proj4.Proj.projections.add(proj)})}},{"./projections/aea":"/data/github/geopackage-node/node_modules/proj4/lib/projections/aea.js","./projections/aeqd":"/data/github/geopackage-node/node_modules/proj4/lib/projections/aeqd.js","./projections/cass":"/data/github/geopackage-node/node_modules/proj4/lib/projections/cass.js","./projections/cea":"/data/github/geopackage-node/node_modules/proj4/lib/projections/cea.js","./projections/eqc":"/data/github/geopackage-node/node_modules/proj4/lib/projections/eqc.js","./projections/eqdc":"/data/github/geopackage-node/node_modules/proj4/lib/projections/eqdc.js","./projections/gnom":"/data/github/geopackage-node/node_modules/proj4/lib/projections/gnom.js","./projections/krovak":"/data/github/geopackage-node/node_modules/proj4/lib/projections/krovak.js","./projections/laea":"/data/github/geopackage-node/node_modules/proj4/lib/projections/laea.js","./projections/lcc":"/data/github/geopackage-node/node_modules/proj4/lib/projections/lcc.js","./projections/mill":"/data/github/geopackage-node/node_modules/proj4/lib/projections/mill.js","./projections/moll":"/data/github/geopackage-node/node_modules/proj4/lib/projections/moll.js","./projections/nzmg":"/data/github/geopackage-node/node_modules/proj4/lib/projections/nzmg.js","./projections/omerc":"/data/github/geopackage-node/node_modules/proj4/lib/projections/omerc.js","./projections/poly":"/data/github/geopackage-node/node_modules/proj4/lib/projections/poly.js","./projections/sinu":"/data/github/geopackage-node/node_modules/proj4/lib/projections/sinu.js","./projections/somerc":"/data/github/geopackage-node/node_modules/proj4/lib/projections/somerc.js","./projections/stere":"/data/github/geopackage-node/node_modules/proj4/lib/projections/stere.js","./projections/sterea":"/data/github/geopackage-node/node_modules/proj4/lib/projections/sterea.js","./projections/tmerc":"/data/github/geopackage-node/node_modules/proj4/lib/projections/tmerc.js","./projections/utm":"/data/github/geopackage-node/node_modules/proj4/lib/projections/utm.js","./projections/vandg":"/data/github/geopackage-node/node_modules/proj4/lib/projections/vandg.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/index.js":[function(require,module,exports){var proj4=require("./core");proj4.defaultDatum="WGS84";proj4.Proj=require("./Proj");proj4.WGS84=new proj4.Proj("WGS84");proj4.Point=require("./Point");proj4.toPoint=require("./common/toPoint");proj4.defs=require("./defs");proj4.transform=require("./transform");proj4.mgrs=require("mgrs");proj4.version=require("../package.json").version;require("./includedProjections")(proj4);module.exports=proj4},{"../package.json":"/data/github/geopackage-node/node_modules/proj4/package.json","./Point":"/data/github/geopackage-node/node_modules/proj4/lib/Point.js","./Proj":"/data/github/geopackage-node/node_modules/proj4/lib/Proj.js","./common/toPoint":"/data/github/geopackage-node/node_modules/proj4/lib/common/toPoint.js","./core":"/data/github/geopackage-node/node_modules/proj4/lib/core.js","./defs":"/data/github/geopackage-node/node_modules/proj4/lib/defs.js","./includedProjections":"/data/github/geopackage-node/node_modules/proj4/lib/includedProjections.js","./transform":"/data/github/geopackage-node/node_modules/proj4/lib/transform.js",mgrs:"/data/github/geopackage-node/node_modules/proj4/node_modules/mgrs/mgrs.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/parseCode.js":[function(require,module,exports){var defs=require("./defs");var wkt=require("./wkt");var projStr=require("./projString");function testObj(code){return typeof code==="string"}function testDef(code){return code in defs}function testWKT(code){var codeWords=["GEOGCS","GEOCCS","PROJCS","LOCAL_CS"];return codeWords.reduce(function(a,b){return a+1+code.indexOf(b)},0)}function testProj(code){return code[0]==="+"}function parse(code){if(testObj(code)){if(testDef(code)){return defs[code]}else if(testWKT(code)){return wkt(code)}else if(testProj(code)){return projStr(code)}}else{return code}}module.exports=parse},{"./defs":"/data/github/geopackage-node/node_modules/proj4/lib/defs.js","./projString":"/data/github/geopackage-node/node_modules/proj4/lib/projString.js","./wkt":"/data/github/geopackage-node/node_modules/proj4/lib/wkt.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/projString.js":[function(require,module,exports){var D2R=.017453292519943295;var PrimeMeridian=require("./constants/PrimeMeridian");var units=require("./constants/units");module.exports=function(defData){var self={};var paramObj={};defData.split("+").map(function(v){return v.trim()}).filter(function(a){return a}).forEach(function(a){var split=a.split("=");split.push(true);paramObj[split[0].toLowerCase()]=split[1]});var paramName,paramVal,paramOutname;var params={proj:"projName",datum:"datumCode",rf:function(v){self.rf=parseFloat(v)},lat_0:function(v){self.lat0=v*D2R},lat_1:function(v){self.lat1=v*D2R},lat_2:function(v){self.lat2=v*D2R},lat_ts:function(v){self.lat_ts=v*D2R},lon_0:function(v){self.long0=v*D2R},lon_1:function(v){self.long1=v*D2R},lon_2:function(v){self.long2=v*D2R},alpha:function(v){self.alpha=parseFloat(v)*D2R},lonc:function(v){self.longc=v*D2R},x_0:function(v){self.x0=parseFloat(v)},y_0:function(v){self.y0=parseFloat(v)},k_0:function(v){self.k0=parseFloat(v)},k:function(v){self.k0=parseFloat(v)},a:function(v){self.a=parseFloat(v)},b:function(v){self.b=parseFloat(v)},r_a:function(){self.R_A=true},zone:function(v){self.zone=parseInt(v,10)},south:function(){self.utmSouth=true},towgs84:function(v){self.datum_params=v.split(",").map(function(a){return parseFloat(a)})},to_meter:function(v){self.to_meter=parseFloat(v)},units:function(v){self.units=v;if(units[v]){self.to_meter=units[v].to_meter}},from_greenwich:function(v){self.from_greenwich=v*D2R},pm:function(v){self.from_greenwich=(PrimeMeridian[v]?PrimeMeridian[v]:parseFloat(v))*D2R},nadgrids:function(v){if(v==="@null"){self.datumCode="none"}else{self.nadgrids=v}},axis:function(v){var legalAxis="ewnsud";if(v.length===3&&legalAxis.indexOf(v.substr(0,1))!==-1&&legalAxis.indexOf(v.substr(1,1))!==-1&&legalAxis.indexOf(v.substr(2,1))!==-1){self.axis=v}}};for(paramName in paramObj){paramVal=paramObj[paramName];if(paramName in params){paramOutname=params[paramName];if(typeof paramOutname==="function"){paramOutname(paramVal)}else{self[paramOutname]=paramVal}}else{self[paramName]=paramVal}}if(typeof self.datumCode==="string"&&self.datumCode!=="WGS84"){self.datumCode=self.datumCode.toLowerCase()}return self}},{"./constants/PrimeMeridian":"/data/github/geopackage-node/node_modules/proj4/lib/constants/PrimeMeridian.js","./constants/units":"/data/github/geopackage-node/node_modules/proj4/lib/constants/units.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/projections.js":[function(require,module,exports){var projs=[require("./projections/merc"),require("./projections/longlat")];var names={};var projStore=[];function add(proj,i){var len=projStore.length;if(!proj.names){console.log(i);return true}projStore[len]=proj;proj.names.forEach(function(n){names[n.toLowerCase()]=len});return this}exports.add=add;exports.get=function(name){if(!name){return false}var n=name.toLowerCase();if(typeof names[n]!=="undefined"&&projStore[names[n]]){return projStore[names[n]]}};exports.start=function(){projs.forEach(add)}},{"./projections/longlat":"/data/github/geopackage-node/node_modules/proj4/lib/projections/longlat.js","./projections/merc":"/data/github/geopackage-node/node_modules/proj4/lib/projections/merc.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/projections/aea.js":[function(require,module,exports){var EPSLN=1e-10;var msfnz=require("../common/msfnz");var qsfnz=require("../common/qsfnz");var adjust_lon=require("../common/adjust_lon");var asinz=require("../common/asinz");exports.init=function(){if(Math.abs(this.lat1+this.lat2)<EPSLN){return}this.temp=this.b/this.a;this.es=1-Math.pow(this.temp,2);this.e3=Math.sqrt(this.es);this.sin_po=Math.sin(this.lat1);this.cos_po=Math.cos(this.lat1);this.t1=this.sin_po;this.con=this.sin_po;this.ms1=msfnz(this.e3,this.sin_po,this.cos_po);this.qs1=qsfnz(this.e3,this.sin_po,this.cos_po);this.sin_po=Math.sin(this.lat2);this.cos_po=Math.cos(this.lat2);this.t2=this.sin_po;this.ms2=msfnz(this.e3,this.sin_po,this.cos_po);this.qs2=qsfnz(this.e3,this.sin_po,this.cos_po);this.sin_po=Math.sin(this.lat0);this.cos_po=Math.cos(this.lat0);this.t3=this.sin_po;this.qs0=qsfnz(this.e3,this.sin_po,this.cos_po);if(Math.abs(this.lat1-this.lat2)>EPSLN){this.ns0=(this.ms1*this.ms1-this.ms2*this.ms2)/(this.qs2-this.qs1)}else{this.ns0=this.con}this.c=this.ms1*this.ms1+this.ns0*this.qs1;this.rh=this.a*Math.sqrt(this.c-this.ns0*this.qs0)/this.ns0};exports.forward=function(p){var lon=p.x;var lat=p.y;this.sin_phi=Math.sin(lat);this.cos_phi=Math.cos(lat);var qs=qsfnz(this.e3,this.sin_phi,this.cos_phi);var rh1=this.a*Math.sqrt(this.c-this.ns0*qs)/this.ns0;var theta=this.ns0*adjust_lon(lon-this.long0);var x=rh1*Math.sin(theta)+this.x0;var y=this.rh-rh1*Math.cos(theta)+this.y0;p.x=x;p.y=y;return p};exports.inverse=function(p){var rh1,qs,con,theta,lon,lat;p.x-=this.x0;p.y=this.rh-p.y+this.y0;if(this.ns0>=0){rh1=Math.sqrt(p.x*p.x+p.y*p.y);con=1}else{rh1=-Math.sqrt(p.x*p.x+p.y*p.y);con=-1}theta=0;if(rh1!==0){theta=Math.atan2(con*p.x,con*p.y)}con=rh1*this.ns0/this.a;if(this.sphere){lat=Math.asin((this.c-con*con)/(2*this.ns0))}else{qs=(this.c-con*con)/this.ns0;lat=this.phi1z(this.e3,qs)}lon=adjust_lon(theta/this.ns0+this.long0);p.x=lon;p.y=lat;return p};exports.phi1z=function(eccent,qs){var sinphi,cosphi,con,com,dphi;var phi=asinz(.5*qs);if(eccent<EPSLN){return phi}var eccnts=eccent*eccent;for(var i=1;i<=25;i++){sinphi=Math.sin(phi);cosphi=Math.cos(phi);con=eccent*sinphi;com=1-con*con;dphi=.5*com*com/cosphi*(qs/(1-eccnts)-sinphi/com+.5/eccent*Math.log((1-con)/(1+con)));phi=phi+dphi;if(Math.abs(dphi)<=1e-7){return phi}}return null};exports.names=["Albers_Conic_Equal_Area","Albers","aea"]},{"../common/adjust_lon":"/data/github/geopackage-node/node_modules/proj4/lib/common/adjust_lon.js","../common/asinz":"/data/github/geopackage-node/node_modules/proj4/lib/common/asinz.js","../common/msfnz":"/data/github/geopackage-node/node_modules/proj4/lib/common/msfnz.js","../common/qsfnz":"/data/github/geopackage-node/node_modules/proj4/lib/common/qsfnz.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/projections/aeqd.js":[function(require,module,exports){var adjust_lon=require("../common/adjust_lon");var HALF_PI=Math.PI/2;var EPSLN=1e-10;var mlfn=require("../common/mlfn");var e0fn=require("../common/e0fn");var e1fn=require("../common/e1fn");var e2fn=require("../common/e2fn");var e3fn=require("../common/e3fn");var gN=require("../common/gN");var asinz=require("../common/asinz");var imlfn=require("../common/imlfn");exports.init=function(){this.sin_p12=Math.sin(this.lat0);this.cos_p12=Math.cos(this.lat0)};exports.forward=function(p){var lon=p.x;var lat=p.y;var sinphi=Math.sin(p.y);var cosphi=Math.cos(p.y);var dlon=adjust_lon(lon-this.long0);var e0,e1,e2,e3,Mlp,Ml,tanphi,Nl1,Nl,psi,Az,G,H,GH,Hs,c,kp,cos_c,s,s2,s3,s4,s5;if(this.sphere){if(Math.abs(this.sin_p12-1)<=EPSLN){p.x=this.x0+this.a*(HALF_PI-lat)*Math.sin(dlon);p.y=this.y0-this.a*(HALF_PI-lat)*Math.cos(dlon);return p}else if(Math.abs(this.sin_p12+1)<=EPSLN){p.x=this.x0+this.a*(HALF_PI+lat)*Math.sin(dlon);p.y=this.y0+this.a*(HALF_PI+lat)*Math.cos(dlon);return p}else{cos_c=this.sin_p12*sinphi+this.cos_p12*cosphi*Math.cos(dlon);c=Math.acos(cos_c);kp=c/Math.sin(c);p.x=this.x0+this.a*kp*cosphi*Math.sin(dlon);p.y=this.y0+this.a*kp*(this.cos_p12*sinphi-this.sin_p12*cosphi*Math.cos(dlon));return p}}else{e0=e0fn(this.es);e1=e1fn(this.es);e2=e2fn(this.es);e3=e3fn(this.es);if(Math.abs(this.sin_p12-1)<=EPSLN){Mlp=this.a*mlfn(e0,e1,e2,e3,HALF_PI);Ml=this.a*mlfn(e0,e1,e2,e3,lat);p.x=this.x0+(Mlp-Ml)*Math.sin(dlon);p.y=this.y0-(Mlp-Ml)*Math.cos(dlon);return p}else if(Math.abs(this.sin_p12+1)<=EPSLN){Mlp=this.a*mlfn(e0,e1,e2,e3,HALF_PI);Ml=this.a*mlfn(e0,e1,e2,e3,lat);p.x=this.x0+(Mlp+Ml)*Math.sin(dlon);p.y=this.y0+(Mlp+Ml)*Math.cos(dlon);return p}else{tanphi=sinphi/cosphi;Nl1=gN(this.a,this.e,this.sin_p12);Nl=gN(this.a,this.e,sinphi);psi=Math.atan((1-this.es)*tanphi+this.es*Nl1*this.sin_p12/(Nl*cosphi));Az=Math.atan2(Math.sin(dlon),this.cos_p12*Math.tan(psi)-this.sin_p12*Math.cos(dlon));if(Az===0){s=Math.asin(this.cos_p12*Math.sin(psi)-this.sin_p12*Math.cos(psi))}else if(Math.abs(Math.abs(Az)-Math.PI)<=EPSLN){s=-Math.asin(this.cos_p12*Math.sin(psi)-this.sin_p12*Math.cos(psi))}else{s=Math.asin(Math.sin(dlon)*Math.cos(psi)/Math.sin(Az))}G=this.e*this.sin_p12/Math.sqrt(1-this.es);H=this.e*this.cos_p12*Math.cos(Az)/Math.sqrt(1-this.es);GH=G*H;Hs=H*H;s2=s*s;s3=s2*s;s4=s3*s;s5=s4*s;c=Nl1*s*(1-s2*Hs*(1-Hs)/6+s3/8*GH*(1-2*Hs)+s4/120*(Hs*(4-7*Hs)-3*G*G*(1-7*Hs))-s5/48*GH);p.x=this.x0+c*Math.sin(Az);p.y=this.y0+c*Math.cos(Az);return p}}};exports.inverse=function(p){p.x-=this.x0;p.y-=this.y0;var rh,z,sinz,cosz,lon,lat,con,e0,e1,e2,e3,Mlp,M,N1,psi,Az,cosAz,tmp,A,B,D,Ee,F;if(this.sphere){rh=Math.sqrt(p.x*p.x+p.y*p.y);if(rh>2*HALF_PI*this.a){return}z=rh/this.a;sinz=Math.sin(z);cosz=Math.cos(z);lon=this.long0;if(Math.abs(rh)<=EPSLN){lat=this.lat0}else{lat=asinz(cosz*this.sin_p12+p.y*sinz*this.cos_p12/rh);con=Math.abs(this.lat0)-HALF_PI;if(Math.abs(con)<=EPSLN){if(this.lat0>=0){lon=adjust_lon(this.long0+Math.atan2(p.x,-p.y))}else{lon=adjust_lon(this.long0-Math.atan2(-p.x,p.y))}}else{lon=adjust_lon(this.long0+Math.atan2(p.x*sinz,rh*this.cos_p12*cosz-p.y*this.sin_p12*sinz))}}p.x=lon;p.y=lat;return p}else{e0=e0fn(this.es);e1=e1fn(this.es);e2=e2fn(this.es);e3=e3fn(this.es);if(Math.abs(this.sin_p12-1)<=EPSLN){Mlp=this.a*mlfn(e0,e1,e2,e3,HALF_PI);rh=Math.sqrt(p.x*p.x+p.y*p.y);M=Mlp-rh;lat=imlfn(M/this.a,e0,e1,e2,e3);lon=adjust_lon(this.long0+Math.atan2(p.x,-1*p.y));p.x=lon;p.y=lat;return p}else if(Math.abs(this.sin_p12+1)<=EPSLN){Mlp=this.a*mlfn(e0,e1,e2,e3,HALF_PI);rh=Math.sqrt(p.x*p.x+p.y*p.y);M=rh-Mlp;lat=imlfn(M/this.a,e0,e1,e2,e3);lon=adjust_lon(this.long0+Math.atan2(p.x,p.y));p.x=lon;p.y=lat;return p}else{rh=Math.sqrt(p.x*p.x+p.y*p.y);Az=Math.atan2(p.x,p.y);N1=gN(this.a,this.e,this.sin_p12);cosAz=Math.cos(Az);tmp=this.e*this.cos_p12*cosAz;A=-tmp*tmp/(1-this.es);B=3*this.es*(1-A)*this.sin_p12*this.cos_p12*cosAz/(1-this.es);D=rh/N1;Ee=D-A*(1+A)*Math.pow(D,3)/6-B*(1+3*A)*Math.pow(D,4)/24;F=1-A*Ee*Ee/2-D*Ee*Ee*Ee/6;psi=Math.asin(this.sin_p12*Math.cos(Ee)+this.cos_p12*Math.sin(Ee)*cosAz);lon=adjust_lon(this.long0+Math.asin(Math.sin(Az)*Math.sin(Ee)/Math.cos(psi)));lat=Math.atan((1-this.es*F*this.sin_p12/Math.sin(psi))*Math.tan(psi)/(1-this.es));p.x=lon;p.y=lat;return p}}};exports.names=["Azimuthal_Equidistant","aeqd"]},{"../common/adjust_lon":"/data/github/geopackage-node/node_modules/proj4/lib/common/adjust_lon.js","../common/asinz":"/data/github/geopackage-node/node_modules/proj4/lib/common/asinz.js","../common/e0fn":"/data/github/geopackage-node/node_modules/proj4/lib/common/e0fn.js","../common/e1fn":"/data/github/geopackage-node/node_modules/proj4/lib/common/e1fn.js","../common/e2fn":"/data/github/geopackage-node/node_modules/proj4/lib/common/e2fn.js","../common/e3fn":"/data/github/geopackage-node/node_modules/proj4/lib/common/e3fn.js","../common/gN":"/data/github/geopackage-node/node_modules/proj4/lib/common/gN.js","../common/imlfn":"/data/github/geopackage-node/node_modules/proj4/lib/common/imlfn.js","../common/mlfn":"/data/github/geopackage-node/node_modules/proj4/lib/common/mlfn.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/projections/cass.js":[function(require,module,exports){var mlfn=require("../common/mlfn");var e0fn=require("../common/e0fn");var e1fn=require("../common/e1fn");var e2fn=require("../common/e2fn");var e3fn=require("../common/e3fn");var gN=require("../common/gN");var adjust_lon=require("../common/adjust_lon");var adjust_lat=require("../common/adjust_lat");var imlfn=require("../common/imlfn");var HALF_PI=Math.PI/2;var EPSLN=1e-10;exports.init=function(){if(!this.sphere){this.e0=e0fn(this.es);this.e1=e1fn(this.es);this.e2=e2fn(this.es);this.e3=e3fn(this.es);this.ml0=this.a*mlfn(this.e0,this.e1,this.e2,this.e3,this.lat0)}};exports.forward=function(p){var x,y;var lam=p.x;var phi=p.y;lam=adjust_lon(lam-this.long0);if(this.sphere){x=this.a*Math.asin(Math.cos(phi)*Math.sin(lam));y=this.a*(Math.atan2(Math.tan(phi),Math.cos(lam))-this.lat0)}else{var sinphi=Math.sin(phi);var cosphi=Math.cos(phi);var nl=gN(this.a,this.e,sinphi);var tl=Math.tan(phi)*Math.tan(phi);var al=lam*Math.cos(phi);var asq=al*al;var cl=this.es*cosphi*cosphi/(1-this.es);var ml=this.a*mlfn(this.e0,this.e1,this.e2,this.e3,phi);x=nl*al*(1-asq*tl*(1/6-(8-tl+8*cl)*asq/120));y=ml-this.ml0+nl*sinphi/cosphi*asq*(.5+(5-tl+6*cl)*asq/24)}p.x=x+this.x0;p.y=y+this.y0;return p};exports.inverse=function(p){p.x-=this.x0;p.y-=this.y0;var x=p.x/this.a;var y=p.y/this.a;var phi,lam;if(this.sphere){var dd=y+this.lat0;phi=Math.asin(Math.sin(dd)*Math.cos(x));lam=Math.atan2(Math.tan(x),Math.cos(dd))}else{var ml1=this.ml0/this.a+y;var phi1=imlfn(ml1,this.e0,this.e1,this.e2,this.e3);if(Math.abs(Math.abs(phi1)-HALF_PI)<=EPSLN){p.x=this.long0;p.y=HALF_PI;if(y<0){p.y*=-1}return p}var nl1=gN(this.a,this.e,Math.sin(phi1));var rl1=nl1*nl1*nl1/this.a/this.a*(1-this.es);var tl1=Math.pow(Math.tan(phi1),2);var dl=x*this.a/nl1;var dsq=dl*dl;phi=phi1-nl1*Math.tan(phi1)/rl1*dl*dl*(.5-(1+3*tl1)*dl*dl/24);lam=dl*(1-dsq*(tl1/3+(1+3*tl1)*tl1*dsq/15))/Math.cos(phi1)}p.x=adjust_lon(lam+this.long0);p.y=adjust_lat(phi);return p};exports.names=["Cassini","Cassini_Soldner","cass"]},{"../common/adjust_lat":"/data/github/geopackage-node/node_modules/proj4/lib/common/adjust_lat.js","../common/adjust_lon":"/data/github/geopackage-node/node_modules/proj4/lib/common/adjust_lon.js","../common/e0fn":"/data/github/geopackage-node/node_modules/proj4/lib/common/e0fn.js","../common/e1fn":"/data/github/geopackage-node/node_modules/proj4/lib/common/e1fn.js","../common/e2fn":"/data/github/geopackage-node/node_modules/proj4/lib/common/e2fn.js","../common/e3fn":"/data/github/geopackage-node/node_modules/proj4/lib/common/e3fn.js","../common/gN":"/data/github/geopackage-node/node_modules/proj4/lib/common/gN.js","../common/imlfn":"/data/github/geopackage-node/node_modules/proj4/lib/common/imlfn.js","../common/mlfn":"/data/github/geopackage-node/node_modules/proj4/lib/common/mlfn.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/projections/cea.js":[function(require,module,exports){var adjust_lon=require("../common/adjust_lon");var qsfnz=require("../common/qsfnz");var msfnz=require("../common/msfnz");var iqsfnz=require("../common/iqsfnz");exports.init=function(){if(!this.sphere){this.k0=msfnz(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts))}};exports.forward=function(p){var lon=p.x;var lat=p.y;var x,y;var dlon=adjust_lon(lon-this.long0);if(this.sphere){x=this.x0+this.a*dlon*Math.cos(this.lat_ts);y=this.y0+this.a*Math.sin(lat)/Math.cos(this.lat_ts)}else{var qs=qsfnz(this.e,Math.sin(lat));x=this.x0+this.a*this.k0*dlon;y=this.y0+this.a*qs*.5/this.k0}p.x=x;p.y=y;return p};exports.inverse=function(p){p.x-=this.x0;p.y-=this.y0;var lon,lat;if(this.sphere){lon=adjust_lon(this.long0+p.x/this.a/Math.cos(this.lat_ts));
  28. lat=Math.asin(p.y/this.a*Math.cos(this.lat_ts))}else{lat=iqsfnz(this.e,2*p.y*this.k0/this.a);lon=adjust_lon(this.long0+p.x/(this.a*this.k0))}p.x=lon;p.y=lat;return p};exports.names=["cea"]},{"../common/adjust_lon":"/data/github/geopackage-node/node_modules/proj4/lib/common/adjust_lon.js","../common/iqsfnz":"/data/github/geopackage-node/node_modules/proj4/lib/common/iqsfnz.js","../common/msfnz":"/data/github/geopackage-node/node_modules/proj4/lib/common/msfnz.js","../common/qsfnz":"/data/github/geopackage-node/node_modules/proj4/lib/common/qsfnz.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/projections/eqc.js":[function(require,module,exports){var adjust_lon=require("../common/adjust_lon");var adjust_lat=require("../common/adjust_lat");exports.init=function(){this.x0=this.x0||0;this.y0=this.y0||0;this.lat0=this.lat0||0;this.long0=this.long0||0;this.lat_ts=this.lat_ts||0;this.title=this.title||"Equidistant Cylindrical (Plate Carre)";this.rc=Math.cos(this.lat_ts)};exports.forward=function(p){var lon=p.x;var lat=p.y;var dlon=adjust_lon(lon-this.long0);var dlat=adjust_lat(lat-this.lat0);p.x=this.x0+this.a*dlon*this.rc;p.y=this.y0+this.a*dlat;return p};exports.inverse=function(p){var x=p.x;var y=p.y;p.x=adjust_lon(this.long0+(x-this.x0)/(this.a*this.rc));p.y=adjust_lat(this.lat0+(y-this.y0)/this.a);return p};exports.names=["Equirectangular","Equidistant_Cylindrical","eqc"]},{"../common/adjust_lat":"/data/github/geopackage-node/node_modules/proj4/lib/common/adjust_lat.js","../common/adjust_lon":"/data/github/geopackage-node/node_modules/proj4/lib/common/adjust_lon.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/projections/eqdc.js":[function(require,module,exports){var e0fn=require("../common/e0fn");var e1fn=require("../common/e1fn");var e2fn=require("../common/e2fn");var e3fn=require("../common/e3fn");var msfnz=require("../common/msfnz");var mlfn=require("../common/mlfn");var adjust_lon=require("../common/adjust_lon");var adjust_lat=require("../common/adjust_lat");var imlfn=require("../common/imlfn");var EPSLN=1e-10;exports.init=function(){if(Math.abs(this.lat1+this.lat2)<EPSLN){return}this.lat2=this.lat2||this.lat1;this.temp=this.b/this.a;this.es=1-Math.pow(this.temp,2);this.e=Math.sqrt(this.es);this.e0=e0fn(this.es);this.e1=e1fn(this.es);this.e2=e2fn(this.es);this.e3=e3fn(this.es);this.sinphi=Math.sin(this.lat1);this.cosphi=Math.cos(this.lat1);this.ms1=msfnz(this.e,this.sinphi,this.cosphi);this.ml1=mlfn(this.e0,this.e1,this.e2,this.e3,this.lat1);if(Math.abs(this.lat1-this.lat2)<EPSLN){this.ns=this.sinphi}else{this.sinphi=Math.sin(this.lat2);this.cosphi=Math.cos(this.lat2);this.ms2=msfnz(this.e,this.sinphi,this.cosphi);this.ml2=mlfn(this.e0,this.e1,this.e2,this.e3,this.lat2);this.ns=(this.ms1-this.ms2)/(this.ml2-this.ml1)}this.g=this.ml1+this.ms1/this.ns;this.ml0=mlfn(this.e0,this.e1,this.e2,this.e3,this.lat0);this.rh=this.a*(this.g-this.ml0)};exports.forward=function(p){var lon=p.x;var lat=p.y;var rh1;if(this.sphere){rh1=this.a*(this.g-lat)}else{var ml=mlfn(this.e0,this.e1,this.e2,this.e3,lat);rh1=this.a*(this.g-ml)}var theta=this.ns*adjust_lon(lon-this.long0);var x=this.x0+rh1*Math.sin(theta);var y=this.y0+this.rh-rh1*Math.cos(theta);p.x=x;p.y=y;return p};exports.inverse=function(p){p.x-=this.x0;p.y=this.rh-p.y+this.y0;var con,rh1,lat,lon;if(this.ns>=0){rh1=Math.sqrt(p.x*p.x+p.y*p.y);con=1}else{rh1=-Math.sqrt(p.x*p.x+p.y*p.y);con=-1}var theta=0;if(rh1!==0){theta=Math.atan2(con*p.x,con*p.y)}if(this.sphere){lon=adjust_lon(this.long0+theta/this.ns);lat=adjust_lat(this.g-rh1/this.a);p.x=lon;p.y=lat;return p}else{var ml=this.g-rh1/this.a;lat=imlfn(ml,this.e0,this.e1,this.e2,this.e3);lon=adjust_lon(this.long0+theta/this.ns);p.x=lon;p.y=lat;return p}};exports.names=["Equidistant_Conic","eqdc"]},{"../common/adjust_lat":"/data/github/geopackage-node/node_modules/proj4/lib/common/adjust_lat.js","../common/adjust_lon":"/data/github/geopackage-node/node_modules/proj4/lib/common/adjust_lon.js","../common/e0fn":"/data/github/geopackage-node/node_modules/proj4/lib/common/e0fn.js","../common/e1fn":"/data/github/geopackage-node/node_modules/proj4/lib/common/e1fn.js","../common/e2fn":"/data/github/geopackage-node/node_modules/proj4/lib/common/e2fn.js","../common/e3fn":"/data/github/geopackage-node/node_modules/proj4/lib/common/e3fn.js","../common/imlfn":"/data/github/geopackage-node/node_modules/proj4/lib/common/imlfn.js","../common/mlfn":"/data/github/geopackage-node/node_modules/proj4/lib/common/mlfn.js","../common/msfnz":"/data/github/geopackage-node/node_modules/proj4/lib/common/msfnz.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/projections/gauss.js":[function(require,module,exports){var FORTPI=Math.PI/4;var srat=require("../common/srat");var HALF_PI=Math.PI/2;var MAX_ITER=20;exports.init=function(){var sphi=Math.sin(this.lat0);var cphi=Math.cos(this.lat0);cphi*=cphi;this.rc=Math.sqrt(1-this.es)/(1-this.es*sphi*sphi);this.C=Math.sqrt(1+this.es*cphi*cphi/(1-this.es));this.phic0=Math.asin(sphi/this.C);this.ratexp=.5*this.C*this.e;this.K=Math.tan(.5*this.phic0+FORTPI)/(Math.pow(Math.tan(.5*this.lat0+FORTPI),this.C)*srat(this.e*sphi,this.ratexp))};exports.forward=function(p){var lon=p.x;var lat=p.y;p.y=2*Math.atan(this.K*Math.pow(Math.tan(.5*lat+FORTPI),this.C)*srat(this.e*Math.sin(lat),this.ratexp))-HALF_PI;p.x=this.C*lon;return p};exports.inverse=function(p){var DEL_TOL=1e-14;var lon=p.x/this.C;var lat=p.y;var num=Math.pow(Math.tan(.5*lat+FORTPI)/this.K,1/this.C);for(var i=MAX_ITER;i>0;--i){lat=2*Math.atan(num*srat(this.e*Math.sin(p.y),-.5*this.e))-HALF_PI;if(Math.abs(lat-p.y)<DEL_TOL){break}p.y=lat}if(!i){return null}p.x=lon;p.y=lat;return p};exports.names=["gauss"]},{"../common/srat":"/data/github/geopackage-node/node_modules/proj4/lib/common/srat.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/projections/gnom.js":[function(require,module,exports){var adjust_lon=require("../common/adjust_lon");var EPSLN=1e-10;var asinz=require("../common/asinz");exports.init=function(){this.sin_p14=Math.sin(this.lat0);this.cos_p14=Math.cos(this.lat0);this.infinity_dist=1e3*this.a;this.rc=1};exports.forward=function(p){var sinphi,cosphi;var dlon;var coslon;var ksp;var g;var x,y;var lon=p.x;var lat=p.y;dlon=adjust_lon(lon-this.long0);sinphi=Math.sin(lat);cosphi=Math.cos(lat);coslon=Math.cos(dlon);g=this.sin_p14*sinphi+this.cos_p14*cosphi*coslon;ksp=1;if(g>0||Math.abs(g)<=EPSLN){x=this.x0+this.a*ksp*cosphi*Math.sin(dlon)/g;y=this.y0+this.a*ksp*(this.cos_p14*sinphi-this.sin_p14*cosphi*coslon)/g}else{x=this.x0+this.infinity_dist*cosphi*Math.sin(dlon);y=this.y0+this.infinity_dist*(this.cos_p14*sinphi-this.sin_p14*cosphi*coslon)}p.x=x;p.y=y;return p};exports.inverse=function(p){var rh;var sinc,cosc;var c;var lon,lat;p.x=(p.x-this.x0)/this.a;p.y=(p.y-this.y0)/this.a;p.x/=this.k0;p.y/=this.k0;if(rh=Math.sqrt(p.x*p.x+p.y*p.y)){c=Math.atan2(rh,this.rc);sinc=Math.sin(c);cosc=Math.cos(c);lat=asinz(cosc*this.sin_p14+p.y*sinc*this.cos_p14/rh);lon=Math.atan2(p.x*sinc,rh*this.cos_p14*cosc-p.y*this.sin_p14*sinc);lon=adjust_lon(this.long0+lon)}else{lat=this.phic0;lon=0}p.x=lon;p.y=lat;return p};exports.names=["gnom"]},{"../common/adjust_lon":"/data/github/geopackage-node/node_modules/proj4/lib/common/adjust_lon.js","../common/asinz":"/data/github/geopackage-node/node_modules/proj4/lib/common/asinz.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/projections/krovak.js":[function(require,module,exports){var adjust_lon=require("../common/adjust_lon");exports.init=function(){this.a=6377397.155;this.es=.006674372230614;this.e=Math.sqrt(this.es);if(!this.lat0){this.lat0=.863937979737193}if(!this.long0){this.long0=.7417649320975901-.308341501185665}if(!this.k0){this.k0=.9999}this.s45=.785398163397448;this.s90=2*this.s45;this.fi0=this.lat0;this.e2=this.es;this.e=Math.sqrt(this.e2);this.alfa=Math.sqrt(1+this.e2*Math.pow(Math.cos(this.fi0),4)/(1-this.e2));this.uq=1.04216856380474;this.u0=Math.asin(Math.sin(this.fi0)/this.alfa);this.g=Math.pow((1+this.e*Math.sin(this.fi0))/(1-this.e*Math.sin(this.fi0)),this.alfa*this.e/2);this.k=Math.tan(this.u0/2+this.s45)/Math.pow(Math.tan(this.fi0/2+this.s45),this.alfa)*this.g;this.k1=this.k0;this.n0=this.a*Math.sqrt(1-this.e2)/(1-this.e2*Math.pow(Math.sin(this.fi0),2));this.s0=1.37008346281555;this.n=Math.sin(this.s0);this.ro0=this.k1*this.n0/Math.tan(this.s0);this.ad=this.s90-this.uq};exports.forward=function(p){var gfi,u,deltav,s,d,eps,ro;var lon=p.x;var lat=p.y;var delta_lon=adjust_lon(lon-this.long0);gfi=Math.pow((1+this.e*Math.sin(lat))/(1-this.e*Math.sin(lat)),this.alfa*this.e/2);u=2*(Math.atan(this.k*Math.pow(Math.tan(lat/2+this.s45),this.alfa)/gfi)-this.s45);deltav=-delta_lon*this.alfa;s=Math.asin(Math.cos(this.ad)*Math.sin(u)+Math.sin(this.ad)*Math.cos(u)*Math.cos(deltav));d=Math.asin(Math.cos(u)*Math.sin(deltav)/Math.cos(s));eps=this.n*d;ro=this.ro0*Math.pow(Math.tan(this.s0/2+this.s45),this.n)/Math.pow(Math.tan(s/2+this.s45),this.n);p.y=ro*Math.cos(eps)/1;p.x=ro*Math.sin(eps)/1;if(!this.czech){p.y*=-1;p.x*=-1}return p};exports.inverse=function(p){var u,deltav,s,d,eps,ro,fi1;var ok;var tmp=p.x;p.x=p.y;p.y=tmp;if(!this.czech){p.y*=-1;p.x*=-1}ro=Math.sqrt(p.x*p.x+p.y*p.y);eps=Math.atan2(p.y,p.x);d=eps/Math.sin(this.s0);s=2*(Math.atan(Math.pow(this.ro0/ro,1/this.n)*Math.tan(this.s0/2+this.s45))-this.s45);u=Math.asin(Math.cos(this.ad)*Math.sin(s)-Math.sin(this.ad)*Math.cos(s)*Math.cos(d));deltav=Math.asin(Math.cos(s)*Math.sin(d)/Math.cos(u));p.x=this.long0-deltav/this.alfa;fi1=u;ok=0;var iter=0;do{p.y=2*(Math.atan(Math.pow(this.k,-1/this.alfa)*Math.pow(Math.tan(u/2+this.s45),1/this.alfa)*Math.pow((1+this.e*Math.sin(fi1))/(1-this.e*Math.sin(fi1)),this.e/2))-this.s45);if(Math.abs(fi1-p.y)<1e-10){ok=1}fi1=p.y;iter+=1}while(ok===0&&iter<15);if(iter>=15){return null}return p};exports.names=["Krovak","krovak"]},{"../common/adjust_lon":"/data/github/geopackage-node/node_modules/proj4/lib/common/adjust_lon.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/projections/laea.js":[function(require,module,exports){var HALF_PI=Math.PI/2;var FORTPI=Math.PI/4;var EPSLN=1e-10;var qsfnz=require("../common/qsfnz");var adjust_lon=require("../common/adjust_lon");exports.S_POLE=1;exports.N_POLE=2;exports.EQUIT=3;exports.OBLIQ=4;exports.init=function(){var t=Math.abs(this.lat0);if(Math.abs(t-HALF_PI)<EPSLN){this.mode=this.lat0<0?this.S_POLE:this.N_POLE}else if(Math.abs(t)<EPSLN){this.mode=this.EQUIT}else{this.mode=this.OBLIQ}if(this.es>0){var sinphi;this.qp=qsfnz(this.e,1);this.mmf=.5/(1-this.es);this.apa=this.authset(this.es);switch(this.mode){case this.N_POLE:this.dd=1;break;case this.S_POLE:this.dd=1;break;case this.EQUIT:this.rq=Math.sqrt(.5*this.qp);this.dd=1/this.rq;this.xmf=1;this.ymf=.5*this.qp;break;case this.OBLIQ:this.rq=Math.sqrt(.5*this.qp);sinphi=Math.sin(this.lat0);this.sinb1=qsfnz(this.e,sinphi)/this.qp;this.cosb1=Math.sqrt(1-this.sinb1*this.sinb1);this.dd=Math.cos(this.lat0)/(Math.sqrt(1-this.es*sinphi*sinphi)*this.rq*this.cosb1);this.ymf=(this.xmf=this.rq)/this.dd;this.xmf*=this.dd;break}}else{if(this.mode===this.OBLIQ){this.sinph0=Math.sin(this.lat0);this.cosph0=Math.cos(this.lat0)}}};exports.forward=function(p){var x,y,coslam,sinlam,sinphi,q,sinb,cosb,b,cosphi;var lam=p.x;var phi=p.y;lam=adjust_lon(lam-this.long0);if(this.sphere){sinphi=Math.sin(phi);cosphi=Math.cos(phi);coslam=Math.cos(lam);if(this.mode===this.OBLIQ||this.mode===this.EQUIT){y=this.mode===this.EQUIT?1+cosphi*coslam:1+this.sinph0*sinphi+this.cosph0*cosphi*coslam;if(y<=EPSLN){return null}y=Math.sqrt(2/y);x=y*cosphi*Math.sin(lam);y*=this.mode===this.EQUIT?sinphi:this.cosph0*sinphi-this.sinph0*cosphi*coslam}else if(this.mode===this.N_POLE||this.mode===this.S_POLE){if(this.mode===this.N_POLE){coslam=-coslam}if(Math.abs(phi+this.phi0)<EPSLN){return null}y=FORTPI-phi*.5;y=2*(this.mode===this.S_POLE?Math.cos(y):Math.sin(y));x=y*Math.sin(lam);y*=coslam}}else{sinb=0;cosb=0;b=0;coslam=Math.cos(lam);sinlam=Math.sin(lam);sinphi=Math.sin(phi);q=qsfnz(this.e,sinphi);if(this.mode===this.OBLIQ||this.mode===this.EQUIT){sinb=q/this.qp;cosb=Math.sqrt(1-sinb*sinb)}switch(this.mode){case this.OBLIQ:b=1+this.sinb1*sinb+this.cosb1*cosb*coslam;break;case this.EQUIT:b=1+cosb*coslam;break;case this.N_POLE:b=HALF_PI+phi;q=this.qp-q;break;case this.S_POLE:b=phi-HALF_PI;q=this.qp+q;break}if(Math.abs(b)<EPSLN){return null}switch(this.mode){case this.OBLIQ:case this.EQUIT:b=Math.sqrt(2/b);if(this.mode===this.OBLIQ){y=this.ymf*b*(this.cosb1*sinb-this.sinb1*cosb*coslam)}else{y=(b=Math.sqrt(2/(1+cosb*coslam)))*sinb*this.ymf}x=this.xmf*b*cosb*sinlam;break;case this.N_POLE:case this.S_POLE:if(q>=0){x=(b=Math.sqrt(q))*sinlam;y=coslam*(this.mode===this.S_POLE?b:-b)}else{x=y=0}break}}p.x=this.a*x+this.x0;p.y=this.a*y+this.y0;return p};exports.inverse=function(p){p.x-=this.x0;p.y-=this.y0;var x=p.x/this.a;var y=p.y/this.a;var lam,phi,cCe,sCe,q,rho,ab;if(this.sphere){var cosz=0,rh,sinz=0;rh=Math.sqrt(x*x+y*y);phi=rh*.5;if(phi>1){return null}phi=2*Math.asin(phi);if(this.mode===this.OBLIQ||this.mode===this.EQUIT){sinz=Math.sin(phi);cosz=Math.cos(phi)}switch(this.mode){case this.EQUIT:phi=Math.abs(rh)<=EPSLN?0:Math.asin(y*sinz/rh);x*=sinz;y=cosz*rh;break;case this.OBLIQ:phi=Math.abs(rh)<=EPSLN?this.phi0:Math.asin(cosz*this.sinph0+y*sinz*this.cosph0/rh);x*=sinz*this.cosph0;y=(cosz-Math.sin(phi)*this.sinph0)*rh;break;case this.N_POLE:y=-y;phi=HALF_PI-phi;break;case this.S_POLE:phi-=HALF_PI;break}lam=y===0&&(this.mode===this.EQUIT||this.mode===this.OBLIQ)?0:Math.atan2(x,y)}else{ab=0;if(this.mode===this.OBLIQ||this.mode===this.EQUIT){x/=this.dd;y*=this.dd;rho=Math.sqrt(x*x+y*y);if(rho<EPSLN){p.x=0;p.y=this.phi0;return p}sCe=2*Math.asin(.5*rho/this.rq);cCe=Math.cos(sCe);x*=sCe=Math.sin(sCe);if(this.mode===this.OBLIQ){ab=cCe*this.sinb1+y*sCe*this.cosb1/rho;q=this.qp*ab;y=rho*this.cosb1*cCe-y*this.sinb1*sCe}else{ab=y*sCe/rho;q=this.qp*ab;y=rho*cCe}}else if(this.mode===this.N_POLE||this.mode===this.S_POLE){if(this.mode===this.N_POLE){y=-y}q=x*x+y*y;if(!q){p.x=0;p.y=this.phi0;return p}ab=1-q/this.qp;if(this.mode===this.S_POLE){ab=-ab}}lam=Math.atan2(x,y);phi=this.authlat(Math.asin(ab),this.apa)}p.x=adjust_lon(this.long0+lam);p.y=phi;return p};exports.P00=.3333333333333333;exports.P01=.17222222222222222;exports.P02=.10257936507936508;exports.P10=.06388888888888888;exports.P11=.0664021164021164;exports.P20=.016415012942191543;exports.authset=function(es){var t;var APA=[];APA[0]=es*this.P00;t=es*es;APA[0]+=t*this.P01;APA[1]=t*this.P10;t*=es;APA[0]+=t*this.P02;APA[1]+=t*this.P11;APA[2]=t*this.P20;return APA};exports.authlat=function(beta,APA){var t=beta+beta;return beta+APA[0]*Math.sin(t)+APA[1]*Math.sin(t+t)+APA[2]*Math.sin(t+t+t)};exports.names=["Lambert Azimuthal Equal Area","Lambert_Azimuthal_Equal_Area","laea"]},{"../common/adjust_lon":"/data/github/geopackage-node/node_modules/proj4/lib/common/adjust_lon.js","../common/qsfnz":"/data/github/geopackage-node/node_modules/proj4/lib/common/qsfnz.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/projections/lcc.js":[function(require,module,exports){var EPSLN=1e-10;var msfnz=require("../common/msfnz");var tsfnz=require("../common/tsfnz");var HALF_PI=Math.PI/2;var sign=require("../common/sign");var adjust_lon=require("../common/adjust_lon");var phi2z=require("../common/phi2z");exports.init=function(){if(!this.lat2){this.lat2=this.lat1}if(!this.k0){this.k0=1}this.x0=this.x0||0;this.y0=this.y0||0;if(Math.abs(this.lat1+this.lat2)<EPSLN){return}var temp=this.b/this.a;this.e=Math.sqrt(1-temp*temp);var sin1=Math.sin(this.lat1);var cos1=Math.cos(this.lat1);var ms1=msfnz(this.e,sin1,cos1);var ts1=tsfnz(this.e,this.lat1,sin1);var sin2=Math.sin(this.lat2);var cos2=Math.cos(this.lat2);var ms2=msfnz(this.e,sin2,cos2);var ts2=tsfnz(this.e,this.lat2,sin2);var ts0=tsfnz(this.e,this.lat0,Math.sin(this.lat0));if(Math.abs(this.lat1-this.lat2)>EPSLN){this.ns=Math.log(ms1/ms2)/Math.log(ts1/ts2)}else{this.ns=sin1}if(isNaN(this.ns)){this.ns=sin1}this.f0=ms1/(this.ns*Math.pow(ts1,this.ns));this.rh=this.a*this.f0*Math.pow(ts0,this.ns);if(!this.title){this.title="Lambert Conformal Conic"}};exports.forward=function(p){var lon=p.x;var lat=p.y;if(Math.abs(2*Math.abs(lat)-Math.PI)<=EPSLN){lat=sign(lat)*(HALF_PI-2*EPSLN)}var con=Math.abs(Math.abs(lat)-HALF_PI);var ts,rh1;if(con>EPSLN){ts=tsfnz(this.e,lat,Math.sin(lat));rh1=this.a*this.f0*Math.pow(ts,this.ns)}else{con=lat*this.ns;if(con<=0){return null}rh1=0}var theta=this.ns*adjust_lon(lon-this.long0);p.x=this.k0*(rh1*Math.sin(theta))+this.x0;p.y=this.k0*(this.rh-rh1*Math.cos(theta))+this.y0;return p};exports.inverse=function(p){var rh1,con,ts;var lat,lon;var x=(p.x-this.x0)/this.k0;var y=this.rh-(p.y-this.y0)/this.k0;if(this.ns>0){rh1=Math.sqrt(x*x+y*y);con=1}else{rh1=-Math.sqrt(x*x+y*y);con=-1}var theta=0;if(rh1!==0){theta=Math.atan2(con*x,con*y)}if(rh1!==0||this.ns>0){con=1/this.ns;ts=Math.pow(rh1/(this.a*this.f0),con);lat=phi2z(this.e,ts);if(lat===-9999){return null}}else{lat=-HALF_PI}lon=adjust_lon(theta/this.ns+this.long0);p.x=lon;p.y=lat;return p};exports.names=["Lambert Tangential Conformal Conic Projection","Lambert_Conformal_Conic","Lambert_Conformal_Conic_2SP","lcc"]},{"../common/adjust_lon":"/data/github/geopackage-node/node_modules/proj4/lib/common/adjust_lon.js","../common/msfnz":"/data/github/geopackage-node/node_modules/proj4/lib/common/msfnz.js","../common/phi2z":"/data/github/geopackage-node/node_modules/proj4/lib/common/phi2z.js","../common/sign":"/data/github/geopackage-node/node_modules/proj4/lib/common/sign.js","../common/tsfnz":"/data/github/geopackage-node/node_modules/proj4/lib/common/tsfnz.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/projections/longlat.js":[function(require,module,exports){exports.init=function(){};function identity(pt){return pt}exports.forward=identity;exports.inverse=identity;exports.names=["longlat","identity"]},{}],"/data/github/geopackage-node/node_modules/proj4/lib/projections/merc.js":[function(require,module,exports){var msfnz=require("../common/msfnz");var HALF_PI=Math.PI/2;var EPSLN=1e-10;var R2D=57.29577951308232;var adjust_lon=require("../common/adjust_lon");var FORTPI=Math.PI/4;var tsfnz=require("../common/tsfnz");var phi2z=require("../common/phi2z");exports.init=function(){var con=this.b/this.a;this.es=1-con*con;if(!("x0"in this)){this.x0=0}if(!("y0"in this)){this.y0=0}this.e=Math.sqrt(this.es);if(this.lat_ts){if(this.sphere){this.k0=Math.cos(this.lat_ts)}else{this.k0=msfnz(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts))}}else{if(!this.k0){if(this.k){this.k0=this.k}else{this.k0=1}}}};exports.forward=function(p){var lon=p.x;var lat=p.y;if(lat*R2D>90&&lat*R2D<-90&&lon*R2D>180&&lon*R2D<-180){return null}var x,y;if(Math.abs(Math.abs(lat)-HALF_PI)<=EPSLN){return null}else{if(this.sphere){x=this.x0+this.a*this.k0*adjust_lon(lon-this.long0);y=this.y0+this.a*this.k0*Math.log(Math.tan(FORTPI+.5*lat))}else{var sinphi=Math.sin(lat);var ts=tsfnz(this.e,lat,sinphi);x=this.x0+this.a*this.k0*adjust_lon(lon-this.long0);y=this.y0-this.a*this.k0*Math.log(ts)}p.x=x;p.y=y;return p}};exports.inverse=function(p){var x=p.x-this.x0;var y=p.y-this.y0;var lon,lat;if(this.sphere){lat=HALF_PI-2*Math.atan(Math.exp(-y/(this.a*this.k0)))}else{var ts=Math.exp(-y/(this.a*this.k0));lat=phi2z(this.e,ts);if(lat===-9999){return null}}lon=adjust_lon(this.long0+x/(this.a*this.k0));p.x=lon;p.y=lat;return p};exports.names=["Mercator","Popular Visualisation Pseudo Mercator","Mercator_1SP","Mercator_Auxiliary_Sphere","merc"]},{"../common/adjust_lon":"/data/github/geopackage-node/node_modules/proj4/lib/common/adjust_lon.js","../common/msfnz":"/data/github/geopackage-node/node_modules/proj4/lib/common/msfnz.js","../common/phi2z":"/data/github/geopackage-node/node_modules/proj4/lib/common/phi2z.js","../common/tsfnz":"/data/github/geopackage-node/node_modules/proj4/lib/common/tsfnz.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/projections/mill.js":[function(require,module,exports){var adjust_lon=require("../common/adjust_lon");exports.init=function(){};exports.forward=function(p){var lon=p.x;var lat=p.y;var dlon=adjust_lon(lon-this.long0);var x=this.x0+this.a*dlon;var y=this.y0+this.a*Math.log(Math.tan(Math.PI/4+lat/2.5))*1.25;p.x=x;p.y=y;return p};exports.inverse=function(p){p.x-=this.x0;p.y-=this.y0;var lon=adjust_lon(this.long0+p.x/this.a);var lat=2.5*(Math.atan(Math.exp(.8*p.y/this.a))-Math.PI/4);p.x=lon;p.y=lat;return p};exports.names=["Miller_Cylindrical","mill"]},{"../common/adjust_lon":"/data/github/geopackage-node/node_modules/proj4/lib/common/adjust_lon.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/projections/moll.js":[function(require,module,exports){var adjust_lon=require("../common/adjust_lon");var EPSLN=1e-10;exports.init=function(){};exports.forward=function(p){var lon=p.x;var lat=p.y;var delta_lon=adjust_lon(lon-this.long0);var theta=lat;var con=Math.PI*Math.sin(lat);for(var i=0;true;i++){var delta_theta=-(theta+Math.sin(theta)-con)/(1+Math.cos(theta));theta+=delta_theta;if(Math.abs(delta_theta)<EPSLN){break}}theta/=2;if(Math.PI/2-Math.abs(lat)<EPSLN){delta_lon=0}var x=.900316316158*this.a*delta_lon*Math.cos(theta)+this.x0;var y=1.4142135623731*this.a*Math.sin(theta)+this.y0;p.x=x;p.y=y;return p};exports.inverse=function(p){var theta;var arg;p.x-=this.x0;p.y-=this.y0;arg=p.y/(1.4142135623731*this.a);if(Math.abs(arg)>.999999999999){arg=.999999999999}theta=Math.asin(arg);var lon=adjust_lon(this.long0+p.x/(.900316316158*this.a*Math.cos(theta)));if(lon<-Math.PI){lon=-Math.PI}if(lon>Math.PI){lon=Math.PI}arg=(2*theta+Math.sin(2*theta))/Math.PI;if(Math.abs(arg)>1){arg=1}var lat=Math.asin(arg);p.x=lon;p.y=lat;return p};exports.names=["Mollweide","moll"]},{"../common/adjust_lon":"/data/github/geopackage-node/node_modules/proj4/lib/common/adjust_lon.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/projections/nzmg.js":[function(require,module,exports){var SEC_TO_RAD=484813681109536e-20;exports.iterations=1;exports.init=function(){this.A=[];this.A[1]=.6399175073;this.A[2]=-.1358797613;this.A[3]=.063294409;this.A[4]=-.02526853;this.A[5]=.0117879;this.A[6]=-.0055161;this.A[7]=.0026906;this.A[8]=-.001333;this.A[9]=67e-5;this.A[10]=-34e-5;this.B_re=[];this.B_im=[];this.B_re[1]=.7557853228;this.B_im[1]=0;this.B_re[2]=.249204646;this.B_im[2]=.003371507;this.B_re[3]=-.001541739;this.B_im[3]=.04105856;this.B_re[4]=-.10162907;this.B_im[4]=.01727609;this.B_re[5]=-.26623489;this.B_im[5]=-.36249218;this.B_re[6]=-.6870983;this.B_im[6]=-1.1651967;this.C_re=[];this.C_im=[];this.C_re[1]=1.3231270439;this.C_im[1]=0;this.C_re[2]=-.577245789;this.C_im[2]=-.007809598;this.C_re[3]=.508307513;this.C_im[3]=-.112208952;this.C_re[4]=-.15094762;this.C_im[4]=.18200602;this.C_re[5]=1.01418179;this.C_im[5]=1.64497696;this.C_re[6]=1.9660549;this.C_im[6]=2.5127645;this.D=[];this.D[1]=1.5627014243;this.D[2]=.5185406398;this.D[3]=-.03333098;this.D[4]=-.1052906;this.D[5]=-.0368594;this.D[6]=.007317;this.D[7]=.0122;this.D[8]=.00394;this.D[9]=-.0013};exports.forward=function(p){var n;var lon=p.x;var lat=p.y;var delta_lat=lat-this.lat0;var delta_lon=lon-this.long0;var d_phi=delta_lat/SEC_TO_RAD*1e-5;var d_lambda=delta_lon;var d_phi_n=1;var d_psi=0;for(n=1;n<=10;n++){d_phi_n=d_phi_n*d_phi;d_psi=d_psi+this.A[n]*d_phi_n}var th_re=d_psi;var th_im=d_lambda;var th_n_re=1;var th_n_im=0;var th_n_re1;var th_n_im1;var z_re=0;var z_im=0;for(n=1;n<=6;n++){th_n_re1=th_n_re*th_re-th_n_im*th_im;th_n_im1=th_n_im*th_re+th_n_re*th_im;th_n_re=th_n_re1;th_n_im=th_n_im1;z_re=z_re+this.B_re[n]*th_n_re-this.B_im[n]*th_n_im;z_im=z_im+this.B_im[n]*th_n_re+this.B_re[n]*th_n_im}p.x=z_im*this.a+this.x0;p.y=z_re*this.a+this.y0;return p};exports.inverse=function(p){var n;var x=p.x;var y=p.y;var delta_x=x-this.x0;var delta_y=y-this.y0;var z_re=delta_y/this.a;var z_im=delta_x/this.a;var z_n_re=1;var z_n_im=0;var z_n_re1;var z_n_im1;var th_re=0;var th_im=0;for(n=1;n<=6;n++){z_n_re1=z_n_re*z_re-z_n_im*z_im;z_n_im1=z_n_im*z_re+z_n_re*z_im;z_n_re=z_n_re1;z_n_im=z_n_im1;th_re=th_re+this.C_re[n]*z_n_re-this.C_im[n]*z_n_im;th_im=th_im+this.C_im[n]*z_n_re+this.C_re[n]*z_n_im}for(var i=0;i<this.iterations;i++){var th_n_re=th_re;var th_n_im=th_im;var th_n_re1;var th_n_im1;var num_re=z_re;var num_im=z_im;for(n=2;n<=6;n++){th_n_re1=th_n_re*th_re-th_n_im*th_im;th_n_im1=th_n_im*th_re+th_n_re*th_im;th_n_re=th_n_re1;th_n_im=th_n_im1;num_re=num_re+(n-1)*(this.B_re[n]*th_n_re-this.B_im[n]*th_n_im);num_im=num_im+(n-1)*(this.B_im[n]*th_n_re+this.B_re[n]*th_n_im)}th_n_re=1;th_n_im=0;var den_re=this.B_re[1];var den_im=this.B_im[1];for(n=2;n<=6;n++){th_n_re1=th_n_re*th_re-th_n_im*th_im;th_n_im1=th_n_im*th_re+th_n_re*th_im;th_n_re=th_n_re1;th_n_im=th_n_im1;den_re=den_re+n*(this.B_re[n]*th_n_re-this.B_im[n]*th_n_im);den_im=den_im+n*(this.B_im[n]*th_n_re+this.B_re[n]*th_n_im)}var den2=den_re*den_re+den_im*den_im;th_re=(num_re*den_re+num_im*den_im)/den2;th_im=(num_im*den_re-num_re*den_im)/den2}var d_psi=th_re;var d_lambda=th_im;var d_psi_n=1;var d_phi=0;for(n=1;n<=9;n++){d_psi_n=d_psi_n*d_psi;d_phi=d_phi+this.D[n]*d_psi_n}var lat=this.lat0+d_phi*SEC_TO_RAD*1e5;var lon=this.long0+d_lambda;p.x=lon;p.y=lat;return p};exports.names=["New_Zealand_Map_Grid","nzmg"]},{}],"/data/github/geopackage-node/node_modules/proj4/lib/projections/omerc.js":[function(require,module,exports){var tsfnz=require("../common/tsfnz");var adjust_lon=require("../common/adjust_lon");var phi2z=require("../common/phi2z");var HALF_PI=Math.PI/2;var FORTPI=Math.PI/4;var EPSLN=1e-10;exports.init=function(){this.no_off=this.no_off||false;this.no_rot=this.no_rot||false;if(isNaN(this.k0)){this.k0=1}var sinlat=Math.sin(this.lat0);var coslat=Math.cos(this.lat0);var con=this.e*sinlat;this.bl=Math.sqrt(1+this.es/(1-this.es)*Math.pow(coslat,4));this.al=this.a*this.bl*this.k0*Math.sqrt(1-this.es)/(1-con*con);var t0=tsfnz(this.e,this.lat0,sinlat);var dl=this.bl/coslat*Math.sqrt((1-this.es)/(1-con*con));if(dl*dl<1){dl=1}var fl;var gl;if(!isNaN(this.longc)){if(this.lat0>=0){fl=dl+Math.sqrt(dl*dl-1)}else{fl=dl-Math.sqrt(dl*dl-1)}this.el=fl*Math.pow(t0,this.bl);gl=.5*(fl-1/fl);this.gamma0=Math.asin(Math.sin(this.alpha)/dl);this.long0=this.longc-Math.asin(gl*Math.tan(this.gamma0))/this.bl}else{var t1=tsfnz(this.e,this.lat1,Math.sin(this.lat1));var t2=tsfnz(this.e,this.lat2,Math.sin(this.lat2));if(this.lat0>=0){this.el=(dl+Math.sqrt(dl*dl-1))*Math.pow(t0,this.bl)}else{this.el=(dl-Math.sqrt(dl*dl-1))*Math.pow(t0,this.bl)}var hl=Math.pow(t1,this.bl);var ll=Math.pow(t2,this.bl);fl=this.el/hl;gl=.5*(fl-1/fl);var jl=(this.el*this.el-ll*hl)/(this.el*this.el+ll*hl);var pl=(ll-hl)/(ll+hl);var dlon12=adjust_lon(this.long1-this.long2);this.long0=.5*(this.long1+this.long2)-Math.atan(jl*Math.tan(.5*this.bl*dlon12)/pl)/this.bl;this.long0=adjust_lon(this.long0);var dlon10=adjust_lon(this.long1-this.long0);this.gamma0=Math.atan(Math.sin(this.bl*dlon10)/gl);this.alpha=Math.asin(dl*Math.sin(this.gamma0))}if(this.no_off){this.uc=0}else{if(this.lat0>=0){this.uc=this.al/this.bl*Math.atan2(Math.sqrt(dl*dl-1),Math.cos(this.alpha))}else{this.uc=-1*this.al/this.bl*Math.atan2(Math.sqrt(dl*dl-1),Math.cos(this.alpha))}}};exports.forward=function(p){var lon=p.x;var lat=p.y;var dlon=adjust_lon(lon-this.long0);var us,vs;var con;if(Math.abs(Math.abs(lat)-HALF_PI)<=EPSLN){if(lat>0){con=-1}else{con=1}vs=this.al/this.bl*Math.log(Math.tan(FORTPI+con*this.gamma0*.5));us=-1*con*HALF_PI*this.al/this.bl}else{var t=tsfnz(this.e,lat,Math.sin(lat));var ql=this.el/Math.pow(t,this.bl);var sl=.5*(ql-1/ql);var tl=.5*(ql+1/ql);var vl=Math.sin(this.bl*dlon);var ul=(sl*Math.sin(this.gamma0)-vl*Math.cos(this.gamma0))/tl;if(Math.abs(Math.abs(ul)-1)<=EPSLN){vs=Number.POSITIVE_INFINITY}else{vs=.5*this.al*Math.log((1-ul)/(1+ul))/this.bl}if(Math.abs(Math.cos(this.bl*dlon))<=EPSLN){us=this.al*this.bl*dlon}else{us=this.al*Math.atan2(sl*Math.cos(this.gamma0)+vl*Math.sin(this.gamma0),Math.cos(this.bl*dlon))/this.bl}}if(this.no_rot){p.x=this.x0+us;p.y=this.y0+vs}else{us-=this.uc;p.x=this.x0+vs*Math.cos(this.alpha)+us*Math.sin(this.alpha);p.y=this.y0+us*Math.cos(this.alpha)-vs*Math.sin(this.alpha)}return p};exports.inverse=function(p){var us,vs;if(this.no_rot){vs=p.y-this.y0;us=p.x-this.x0}else{vs=(p.x-this.x0)*Math.cos(this.alpha)-(p.y-this.y0)*Math.sin(this.alpha);us=(p.y-this.y0)*Math.cos(this.alpha)+(p.x-this.x0)*Math.sin(this.alpha);us+=this.uc}var qp=Math.exp(-1*this.bl*vs/this.al);var sp=.5*(qp-1/qp);var tp=.5*(qp+1/qp);var vp=Math.sin(this.bl*us/this.al);var up=(vp*Math.cos(this.gamma0)+sp*Math.sin(this.gamma0))/tp;var ts=Math.pow(this.el/Math.sqrt((1+up)/(1-up)),1/this.bl);if(Math.abs(up-1)<EPSLN){p.x=this.long0;p.y=HALF_PI}else if(Math.abs(up+1)<EPSLN){p.x=this.long0;p.y=-1*HALF_PI}else{p.y=phi2z(this.e,ts);p.x=adjust_lon(this.long0-Math.atan2(sp*Math.cos(this.gamma0)-vp*Math.sin(this.gamma0),Math.cos(this.bl*us/this.al))/this.bl)}return p};exports.names=["Hotine_Oblique_Mercator","Hotine Oblique Mercator","Hotine_Oblique_Mercator_Azimuth_Natural_Origin","Hotine_Oblique_Mercator_Azimuth_Center","omerc"]},{"../common/adjust_lon":"/data/github/geopackage-node/node_modules/proj4/lib/common/adjust_lon.js","../common/phi2z":"/data/github/geopackage-node/node_modules/proj4/lib/common/phi2z.js","../common/tsfnz":"/data/github/geopackage-node/node_modules/proj4/lib/common/tsfnz.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/projections/poly.js":[function(require,module,exports){var e0fn=require("../common/e0fn");var e1fn=require("../common/e1fn");var e2fn=require("../common/e2fn");var e3fn=require("../common/e3fn");var adjust_lon=require("../common/adjust_lon");var adjust_lat=require("../common/adjust_lat");var mlfn=require("../common/mlfn");var EPSLN=1e-10;var gN=require("../common/gN");var MAX_ITER=20;exports.init=function(){this.temp=this.b/this.a;this.es=1-Math.pow(this.temp,2);this.e=Math.sqrt(this.es);this.e0=e0fn(this.es);this.e1=e1fn(this.es);this.e2=e2fn(this.es);this.e3=e3fn(this.es);this.ml0=this.a*mlfn(this.e0,this.e1,this.e2,this.e3,this.lat0)};exports.forward=function(p){var lon=p.x;var lat=p.y;var x,y,el;var dlon=adjust_lon(lon-this.long0);el=dlon*Math.sin(lat);if(this.sphere){if(Math.abs(lat)<=EPSLN){x=this.a*dlon;y=-1*this.a*this.lat0}else{x=this.a*Math.sin(el)/Math.tan(lat);y=this.a*(adjust_lat(lat-this.lat0)+(1-Math.cos(el))/Math.tan(lat))}}else{if(Math.abs(lat)<=EPSLN){x=this.a*dlon;y=-1*this.ml0}else{var nl=gN(this.a,this.e,Math.sin(lat))/Math.tan(lat);x=nl*Math.sin(el);y=this.a*mlfn(this.e0,this.e1,this.e2,this.e3,lat)-this.ml0+nl*(1-Math.cos(el))}}p.x=x+this.x0;p.y=y+this.y0;return p};exports.inverse=function(p){var lon,lat,x,y,i;var al,bl;var phi,dphi;x=p.x-this.x0;y=p.y-this.y0;if(this.sphere){if(Math.abs(y+this.a*this.lat0)<=EPSLN){lon=adjust_lon(x/this.a+this.long0);lat=0}else{al=this.lat0+y/this.a;bl=x*x/this.a/this.a+al*al;phi=al;var tanphi;for(i=MAX_ITER;i;--i){tanphi=Math.tan(phi);dphi=-1*(al*(phi*tanphi+1)-phi-.5*(phi*phi+bl)*tanphi)/((phi-al)/tanphi-1);phi+=dphi;if(Math.abs(dphi)<=EPSLN){lat=phi;break}}lon=adjust_lon(this.long0+Math.asin(x*Math.tan(phi)/this.a)/Math.sin(lat))}}else{if(Math.abs(y+this.ml0)<=EPSLN){lat=0;lon=adjust_lon(this.long0+x/this.a)}else{al=(this.ml0+y)/this.a;bl=x*x/this.a/this.a+al*al;phi=al;var cl,mln,mlnp,ma;var con;for(i=MAX_ITER;i;--i){con=this.e*Math.sin(phi);cl=Math.sqrt(1-con*con)*Math.tan(phi);mln=this.a*mlfn(this.e0,this.e1,this.e2,this.e3,phi);mlnp=this.e0-2*this.e1*Math.cos(2*phi)+4*this.e2*Math.cos(4*phi)-6*this.e3*Math.cos(6*phi);ma=mln/this.a;dphi=(al*(cl*ma+1)-ma-.5*cl*(ma*ma+bl))/(this.es*Math.sin(2*phi)*(ma*ma+bl-2*al*ma)/(4*cl)+(al-ma)*(cl*mlnp-2/Math.sin(2*phi))-mlnp);phi-=dphi;if(Math.abs(dphi)<=EPSLN){lat=phi;break}}cl=Math.sqrt(1-this.es*Math.pow(Math.sin(lat),2))*Math.tan(lat);lon=adjust_lon(this.long0+Math.asin(x*cl/this.a)/Math.sin(lat))}}p.x=lon;p.y=lat;return p};exports.names=["Polyconic","poly"]},{"../common/adjust_lat":"/data/github/geopackage-node/node_modules/proj4/lib/common/adjust_lat.js","../common/adjust_lon":"/data/github/geopackage-node/node_modules/proj4/lib/common/adjust_lon.js",
  29. "../common/e0fn":"/data/github/geopackage-node/node_modules/proj4/lib/common/e0fn.js","../common/e1fn":"/data/github/geopackage-node/node_modules/proj4/lib/common/e1fn.js","../common/e2fn":"/data/github/geopackage-node/node_modules/proj4/lib/common/e2fn.js","../common/e3fn":"/data/github/geopackage-node/node_modules/proj4/lib/common/e3fn.js","../common/gN":"/data/github/geopackage-node/node_modules/proj4/lib/common/gN.js","../common/mlfn":"/data/github/geopackage-node/node_modules/proj4/lib/common/mlfn.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/projections/sinu.js":[function(require,module,exports){var adjust_lon=require("../common/adjust_lon");var adjust_lat=require("../common/adjust_lat");var pj_enfn=require("../common/pj_enfn");var MAX_ITER=20;var pj_mlfn=require("../common/pj_mlfn");var pj_inv_mlfn=require("../common/pj_inv_mlfn");var HALF_PI=Math.PI/2;var EPSLN=1e-10;var asinz=require("../common/asinz");exports.init=function(){if(!this.sphere){this.en=pj_enfn(this.es)}else{this.n=1;this.m=0;this.es=0;this.C_y=Math.sqrt((this.m+1)/this.n);this.C_x=this.C_y/(this.m+1)}};exports.forward=function(p){var x,y;var lon=p.x;var lat=p.y;lon=adjust_lon(lon-this.long0);if(this.sphere){if(!this.m){lat=this.n!==1?Math.asin(this.n*Math.sin(lat)):lat}else{var k=this.n*Math.sin(lat);for(var i=MAX_ITER;i;--i){var V=(this.m*lat+Math.sin(lat)-k)/(this.m+Math.cos(lat));lat-=V;if(Math.abs(V)<EPSLN){break}}}x=this.a*this.C_x*lon*(this.m+Math.cos(lat));y=this.a*this.C_y*lat}else{var s=Math.sin(lat);var c=Math.cos(lat);y=this.a*pj_mlfn(lat,s,c,this.en);x=this.a*lon*c/Math.sqrt(1-this.es*s*s)}p.x=x;p.y=y;return p};exports.inverse=function(p){var lat,temp,lon,s;p.x-=this.x0;lon=p.x/this.a;p.y-=this.y0;lat=p.y/this.a;if(this.sphere){lat/=this.C_y;lon=lon/(this.C_x*(this.m+Math.cos(lat)));if(this.m){lat=asinz((this.m*lat+Math.sin(lat))/this.n)}else if(this.n!==1){lat=asinz(Math.sin(lat)/this.n)}lon=adjust_lon(lon+this.long0);lat=adjust_lat(lat)}else{lat=pj_inv_mlfn(p.y/this.a,this.es,this.en);s=Math.abs(lat);if(s<HALF_PI){s=Math.sin(lat);temp=this.long0+p.x*Math.sqrt(1-this.es*s*s)/(this.a*Math.cos(lat));lon=adjust_lon(temp)}else if(s-EPSLN<HALF_PI){lon=this.long0}}p.x=lon;p.y=lat;return p};exports.names=["Sinusoidal","sinu"]},{"../common/adjust_lat":"/data/github/geopackage-node/node_modules/proj4/lib/common/adjust_lat.js","../common/adjust_lon":"/data/github/geopackage-node/node_modules/proj4/lib/common/adjust_lon.js","../common/asinz":"/data/github/geopackage-node/node_modules/proj4/lib/common/asinz.js","../common/pj_enfn":"/data/github/geopackage-node/node_modules/proj4/lib/common/pj_enfn.js","../common/pj_inv_mlfn":"/data/github/geopackage-node/node_modules/proj4/lib/common/pj_inv_mlfn.js","../common/pj_mlfn":"/data/github/geopackage-node/node_modules/proj4/lib/common/pj_mlfn.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/projections/somerc.js":[function(require,module,exports){exports.init=function(){var phy0=this.lat0;this.lambda0=this.long0;var sinPhy0=Math.sin(phy0);var semiMajorAxis=this.a;var invF=this.rf;var flattening=1/invF;var e2=2*flattening-Math.pow(flattening,2);var e=this.e=Math.sqrt(e2);this.R=this.k0*semiMajorAxis*Math.sqrt(1-e2)/(1-e2*Math.pow(sinPhy0,2));this.alpha=Math.sqrt(1+e2/(1-e2)*Math.pow(Math.cos(phy0),4));this.b0=Math.asin(sinPhy0/this.alpha);var k1=Math.log(Math.tan(Math.PI/4+this.b0/2));var k2=Math.log(Math.tan(Math.PI/4+phy0/2));var k3=Math.log((1+e*sinPhy0)/(1-e*sinPhy0));this.K=k1-this.alpha*k2+this.alpha*e/2*k3};exports.forward=function(p){var Sa1=Math.log(Math.tan(Math.PI/4-p.y/2));var Sa2=this.e/2*Math.log((1+this.e*Math.sin(p.y))/(1-this.e*Math.sin(p.y)));var S=-this.alpha*(Sa1+Sa2)+this.K;var b=2*(Math.atan(Math.exp(S))-Math.PI/4);var I=this.alpha*(p.x-this.lambda0);var rotI=Math.atan(Math.sin(I)/(Math.sin(this.b0)*Math.tan(b)+Math.cos(this.b0)*Math.cos(I)));var rotB=Math.asin(Math.cos(this.b0)*Math.sin(b)-Math.sin(this.b0)*Math.cos(b)*Math.cos(I));p.y=this.R/2*Math.log((1+Math.sin(rotB))/(1-Math.sin(rotB)))+this.y0;p.x=this.R*rotI+this.x0;return p};exports.inverse=function(p){var Y=p.x-this.x0;var X=p.y-this.y0;var rotI=Y/this.R;var rotB=2*(Math.atan(Math.exp(X/this.R))-Math.PI/4);var b=Math.asin(Math.cos(this.b0)*Math.sin(rotB)+Math.sin(this.b0)*Math.cos(rotB)*Math.cos(rotI));var I=Math.atan(Math.sin(rotI)/(Math.cos(this.b0)*Math.cos(rotI)-Math.sin(this.b0)*Math.tan(rotB)));var lambda=this.lambda0+I/this.alpha;var S=0;var phy=b;var prevPhy=-1e3;var iteration=0;while(Math.abs(phy-prevPhy)>1e-7){if(++iteration>20){return}S=1/this.alpha*(Math.log(Math.tan(Math.PI/4+b/2))-this.K)+this.e*Math.log(Math.tan(Math.PI/4+Math.asin(this.e*Math.sin(phy))/2));prevPhy=phy;phy=2*Math.atan(Math.exp(S))-Math.PI/2}p.x=lambda;p.y=phy;return p};exports.names=["somerc"]},{}],"/data/github/geopackage-node/node_modules/proj4/lib/projections/stere.js":[function(require,module,exports){var HALF_PI=Math.PI/2;var EPSLN=1e-10;var sign=require("../common/sign");var msfnz=require("../common/msfnz");var tsfnz=require("../common/tsfnz");var phi2z=require("../common/phi2z");var adjust_lon=require("../common/adjust_lon");exports.ssfn_=function(phit,sinphi,eccen){sinphi*=eccen;return Math.tan(.5*(HALF_PI+phit))*Math.pow((1-sinphi)/(1+sinphi),.5*eccen)};exports.init=function(){this.coslat0=Math.cos(this.lat0);this.sinlat0=Math.sin(this.lat0);if(this.sphere){if(this.k0===1&&!isNaN(this.lat_ts)&&Math.abs(this.coslat0)<=EPSLN){this.k0=.5*(1+sign(this.lat0)*Math.sin(this.lat_ts))}}else{if(Math.abs(this.coslat0)<=EPSLN){if(this.lat0>0){this.con=1}else{this.con=-1}}this.cons=Math.sqrt(Math.pow(1+this.e,1+this.e)*Math.pow(1-this.e,1-this.e));if(this.k0===1&&!isNaN(this.lat_ts)&&Math.abs(this.coslat0)<=EPSLN){this.k0=.5*this.cons*msfnz(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts))/tsfnz(this.e,this.con*this.lat_ts,this.con*Math.sin(this.lat_ts))}this.ms1=msfnz(this.e,this.sinlat0,this.coslat0);this.X0=2*Math.atan(this.ssfn_(this.lat0,this.sinlat0,this.e))-HALF_PI;this.cosX0=Math.cos(this.X0);this.sinX0=Math.sin(this.X0)}};exports.forward=function(p){var lon=p.x;var lat=p.y;var sinlat=Math.sin(lat);var coslat=Math.cos(lat);var A,X,sinX,cosX,ts,rh;var dlon=adjust_lon(lon-this.long0);if(Math.abs(Math.abs(lon-this.long0)-Math.PI)<=EPSLN&&Math.abs(lat+this.lat0)<=EPSLN){p.x=NaN;p.y=NaN;return p}if(this.sphere){A=2*this.k0/(1+this.sinlat0*sinlat+this.coslat0*coslat*Math.cos(dlon));p.x=this.a*A*coslat*Math.sin(dlon)+this.x0;p.y=this.a*A*(this.coslat0*sinlat-this.sinlat0*coslat*Math.cos(dlon))+this.y0;return p}else{X=2*Math.atan(this.ssfn_(lat,sinlat,this.e))-HALF_PI;cosX=Math.cos(X);sinX=Math.sin(X);if(Math.abs(this.coslat0)<=EPSLN){ts=tsfnz(this.e,lat*this.con,this.con*sinlat);rh=2*this.a*this.k0*ts/this.cons;p.x=this.x0+rh*Math.sin(lon-this.long0);p.y=this.y0-this.con*rh*Math.cos(lon-this.long0);return p}else if(Math.abs(this.sinlat0)<EPSLN){A=2*this.a*this.k0/(1+cosX*Math.cos(dlon));p.y=A*sinX}else{A=2*this.a*this.k0*this.ms1/(this.cosX0*(1+this.sinX0*sinX+this.cosX0*cosX*Math.cos(dlon)));p.y=A*(this.cosX0*sinX-this.sinX0*cosX*Math.cos(dlon))+this.y0}p.x=A*cosX*Math.sin(dlon)+this.x0}return p};exports.inverse=function(p){p.x-=this.x0;p.y-=this.y0;var lon,lat,ts,ce,Chi;var rh=Math.sqrt(p.x*p.x+p.y*p.y);if(this.sphere){var c=2*Math.atan(rh/(.5*this.a*this.k0));lon=this.long0;lat=this.lat0;if(rh<=EPSLN){p.x=lon;p.y=lat;return p}lat=Math.asin(Math.cos(c)*this.sinlat0+p.y*Math.sin(c)*this.coslat0/rh);if(Math.abs(this.coslat0)<EPSLN){if(this.lat0>0){lon=adjust_lon(this.long0+Math.atan2(p.x,-1*p.y))}else{lon=adjust_lon(this.long0+Math.atan2(p.x,p.y))}}else{lon=adjust_lon(this.long0+Math.atan2(p.x*Math.sin(c),rh*this.coslat0*Math.cos(c)-p.y*this.sinlat0*Math.sin(c)))}p.x=lon;p.y=lat;return p}else{if(Math.abs(this.coslat0)<=EPSLN){if(rh<=EPSLN){lat=this.lat0;lon=this.long0;p.x=lon;p.y=lat;return p}p.x*=this.con;p.y*=this.con;ts=rh*this.cons/(2*this.a*this.k0);lat=this.con*phi2z(this.e,ts);lon=this.con*adjust_lon(this.con*this.long0+Math.atan2(p.x,-1*p.y))}else{ce=2*Math.atan(rh*this.cosX0/(2*this.a*this.k0*this.ms1));lon=this.long0;if(rh<=EPSLN){Chi=this.X0}else{Chi=Math.asin(Math.cos(ce)*this.sinX0+p.y*Math.sin(ce)*this.cosX0/rh);lon=adjust_lon(this.long0+Math.atan2(p.x*Math.sin(ce),rh*this.cosX0*Math.cos(ce)-p.y*this.sinX0*Math.sin(ce)))}lat=-1*phi2z(this.e,Math.tan(.5*(HALF_PI+Chi)))}}p.x=lon;p.y=lat;return p};exports.names=["stere","Stereographic_South_Pole","Polar Stereographic (variant B)"]},{"../common/adjust_lon":"/data/github/geopackage-node/node_modules/proj4/lib/common/adjust_lon.js","../common/msfnz":"/data/github/geopackage-node/node_modules/proj4/lib/common/msfnz.js","../common/phi2z":"/data/github/geopackage-node/node_modules/proj4/lib/common/phi2z.js","../common/sign":"/data/github/geopackage-node/node_modules/proj4/lib/common/sign.js","../common/tsfnz":"/data/github/geopackage-node/node_modules/proj4/lib/common/tsfnz.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/projections/sterea.js":[function(require,module,exports){var gauss=require("./gauss");var adjust_lon=require("../common/adjust_lon");exports.init=function(){gauss.init.apply(this);if(!this.rc){return}this.sinc0=Math.sin(this.phic0);this.cosc0=Math.cos(this.phic0);this.R2=2*this.rc;if(!this.title){this.title="Oblique Stereographic Alternative"}};exports.forward=function(p){var sinc,cosc,cosl,k;p.x=adjust_lon(p.x-this.long0);gauss.forward.apply(this,[p]);sinc=Math.sin(p.y);cosc=Math.cos(p.y);cosl=Math.cos(p.x);k=this.k0*this.R2/(1+this.sinc0*sinc+this.cosc0*cosc*cosl);p.x=k*cosc*Math.sin(p.x);p.y=k*(this.cosc0*sinc-this.sinc0*cosc*cosl);p.x=this.a*p.x+this.x0;p.y=this.a*p.y+this.y0;return p};exports.inverse=function(p){var sinc,cosc,lon,lat,rho;p.x=(p.x-this.x0)/this.a;p.y=(p.y-this.y0)/this.a;p.x/=this.k0;p.y/=this.k0;if(rho=Math.sqrt(p.x*p.x+p.y*p.y)){var c=2*Math.atan2(rho,this.R2);sinc=Math.sin(c);cosc=Math.cos(c);lat=Math.asin(cosc*this.sinc0+p.y*sinc*this.cosc0/rho);lon=Math.atan2(p.x*sinc,rho*this.cosc0*cosc-p.y*this.sinc0*sinc)}else{lat=this.phic0;lon=0}p.x=lon;p.y=lat;gauss.inverse.apply(this,[p]);p.x=adjust_lon(p.x+this.long0);return p};exports.names=["Stereographic_North_Pole","Oblique_Stereographic","Polar_Stereographic","sterea","Oblique Stereographic Alternative"]},{"../common/adjust_lon":"/data/github/geopackage-node/node_modules/proj4/lib/common/adjust_lon.js","./gauss":"/data/github/geopackage-node/node_modules/proj4/lib/projections/gauss.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/projections/tmerc.js":[function(require,module,exports){var e0fn=require("../common/e0fn");var e1fn=require("../common/e1fn");var e2fn=require("../common/e2fn");var e3fn=require("../common/e3fn");var mlfn=require("../common/mlfn");var adjust_lon=require("../common/adjust_lon");var HALF_PI=Math.PI/2;var EPSLN=1e-10;var sign=require("../common/sign");var asinz=require("../common/asinz");exports.init=function(){this.e0=e0fn(this.es);this.e1=e1fn(this.es);this.e2=e2fn(this.es);this.e3=e3fn(this.es);this.ml0=this.a*mlfn(this.e0,this.e1,this.e2,this.e3,this.lat0)};exports.forward=function(p){var lon=p.x;var lat=p.y;var delta_lon=adjust_lon(lon-this.long0);var con;var x,y;var sin_phi=Math.sin(lat);var cos_phi=Math.cos(lat);if(this.sphere){var b=cos_phi*Math.sin(delta_lon);if(Math.abs(Math.abs(b)-1)<1e-10){return 93}else{x=.5*this.a*this.k0*Math.log((1+b)/(1-b));con=Math.acos(cos_phi*Math.cos(delta_lon)/Math.sqrt(1-b*b));if(lat<0){con=-con}y=this.a*this.k0*(con-this.lat0)}}else{var al=cos_phi*delta_lon;var als=Math.pow(al,2);var c=this.ep2*Math.pow(cos_phi,2);var tq=Math.tan(lat);var t=Math.pow(tq,2);con=1-this.es*Math.pow(sin_phi,2);var n=this.a/Math.sqrt(con);var ml=this.a*mlfn(this.e0,this.e1,this.e2,this.e3,lat);x=this.k0*n*al*(1+als/6*(1-t+c+als/20*(5-18*t+Math.pow(t,2)+72*c-58*this.ep2)))+this.x0;y=this.k0*(ml-this.ml0+n*tq*(als*(.5+als/24*(5-t+9*c+4*Math.pow(c,2)+als/30*(61-58*t+Math.pow(t,2)+600*c-330*this.ep2)))))+this.y0}p.x=x;p.y=y;return p};exports.inverse=function(p){var con,phi;var delta_phi;var i;var max_iter=6;var lat,lon;if(this.sphere){var f=Math.exp(p.x/(this.a*this.k0));var g=.5*(f-1/f);var temp=this.lat0+p.y/(this.a*this.k0);var h=Math.cos(temp);con=Math.sqrt((1-h*h)/(1+g*g));lat=asinz(con);if(temp<0){lat=-lat}if(g===0&&h===0){lon=this.long0}else{lon=adjust_lon(Math.atan2(g,h)+this.long0)}}else{var x=p.x-this.x0;var y=p.y-this.y0;con=(this.ml0+y/this.k0)/this.a;phi=con;for(i=0;true;i++){delta_phi=(con+this.e1*Math.sin(2*phi)-this.e2*Math.sin(4*phi)+this.e3*Math.sin(6*phi))/this.e0-phi;phi+=delta_phi;if(Math.abs(delta_phi)<=EPSLN){break}if(i>=max_iter){return 95}}if(Math.abs(phi)<HALF_PI){var sin_phi=Math.sin(phi);var cos_phi=Math.cos(phi);var tan_phi=Math.tan(phi);var c=this.ep2*Math.pow(cos_phi,2);var cs=Math.pow(c,2);var t=Math.pow(tan_phi,2);var ts=Math.pow(t,2);con=1-this.es*Math.pow(sin_phi,2);var n=this.a/Math.sqrt(con);var r=n*(1-this.es)/con;var d=x/(n*this.k0);var ds=Math.pow(d,2);lat=phi-n*tan_phi*ds/r*(.5-ds/24*(5+3*t+10*c-4*cs-9*this.ep2-ds/30*(61+90*t+298*c+45*ts-252*this.ep2-3*cs)));lon=adjust_lon(this.long0+d*(1-ds/6*(1+2*t+c-ds/20*(5-2*c+28*t-3*cs+8*this.ep2+24*ts)))/cos_phi)}else{lat=HALF_PI*sign(y);lon=this.long0}}p.x=lon;p.y=lat;return p};exports.names=["Transverse_Mercator","Transverse Mercator","tmerc"]},{"../common/adjust_lon":"/data/github/geopackage-node/node_modules/proj4/lib/common/adjust_lon.js","../common/asinz":"/data/github/geopackage-node/node_modules/proj4/lib/common/asinz.js","../common/e0fn":"/data/github/geopackage-node/node_modules/proj4/lib/common/e0fn.js","../common/e1fn":"/data/github/geopackage-node/node_modules/proj4/lib/common/e1fn.js","../common/e2fn":"/data/github/geopackage-node/node_modules/proj4/lib/common/e2fn.js","../common/e3fn":"/data/github/geopackage-node/node_modules/proj4/lib/common/e3fn.js","../common/mlfn":"/data/github/geopackage-node/node_modules/proj4/lib/common/mlfn.js","../common/sign":"/data/github/geopackage-node/node_modules/proj4/lib/common/sign.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/projections/utm.js":[function(require,module,exports){var D2R=.017453292519943295;var tmerc=require("./tmerc");exports.dependsOn="tmerc";exports.init=function(){if(!this.zone){return}this.lat0=0;this.long0=(6*Math.abs(this.zone)-183)*D2R;this.x0=5e5;this.y0=this.utmSouth?1e7:0;this.k0=.9996;tmerc.init.apply(this);this.forward=tmerc.forward;this.inverse=tmerc.inverse};exports.names=["Universal Transverse Mercator System","utm"]},{"./tmerc":"/data/github/geopackage-node/node_modules/proj4/lib/projections/tmerc.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/projections/vandg.js":[function(require,module,exports){var adjust_lon=require("../common/adjust_lon");var HALF_PI=Math.PI/2;var EPSLN=1e-10;var asinz=require("../common/asinz");exports.init=function(){this.R=this.a};exports.forward=function(p){var lon=p.x;var lat=p.y;var dlon=adjust_lon(lon-this.long0);var x,y;if(Math.abs(lat)<=EPSLN){x=this.x0+this.R*dlon;y=this.y0}var theta=asinz(2*Math.abs(lat/Math.PI));if(Math.abs(dlon)<=EPSLN||Math.abs(Math.abs(lat)-HALF_PI)<=EPSLN){x=this.x0;if(lat>=0){y=this.y0+Math.PI*this.R*Math.tan(.5*theta)}else{y=this.y0+Math.PI*this.R*-Math.tan(.5*theta)}}var al=.5*Math.abs(Math.PI/dlon-dlon/Math.PI);var asq=al*al;var sinth=Math.sin(theta);var costh=Math.cos(theta);var g=costh/(sinth+costh-1);var gsq=g*g;var m=g*(2/sinth-1);var msq=m*m;var con=Math.PI*this.R*(al*(g-msq)+Math.sqrt(asq*(g-msq)*(g-msq)-(msq+asq)*(gsq-msq)))/(msq+asq);if(dlon<0){con=-con}x=this.x0+con;var q=asq+g;con=Math.PI*this.R*(m*q-al*Math.sqrt((msq+asq)*(asq+1)-q*q))/(msq+asq);if(lat>=0){y=this.y0+con}else{y=this.y0-con}p.x=x;p.y=y;return p};exports.inverse=function(p){var lon,lat;var xx,yy,xys,c1,c2,c3;var a1;var m1;var con;var th1;var d;p.x-=this.x0;p.y-=this.y0;con=Math.PI*this.R;xx=p.x/con;yy=p.y/con;xys=xx*xx+yy*yy;c1=-Math.abs(yy)*(1+xys);c2=c1-2*yy*yy+xx*xx;c3=-2*c1+1+2*yy*yy+xys*xys;d=yy*yy/c3+(2*c2*c2*c2/c3/c3/c3-9*c1*c2/c3/c3)/27;a1=(c1-c2*c2/3/c3)/c3;m1=2*Math.sqrt(-a1/3);con=3*d/a1/m1;if(Math.abs(con)>1){if(con>=0){con=1}else{con=-1}}th1=Math.acos(con)/3;if(p.y>=0){lat=(-m1*Math.cos(th1+Math.PI/3)-c2/3/c3)*Math.PI}else{lat=-(-m1*Math.cos(th1+Math.PI/3)-c2/3/c3)*Math.PI}if(Math.abs(xx)<EPSLN){lon=this.long0}else{lon=adjust_lon(this.long0+Math.PI*(xys-1+Math.sqrt(1+2*(xx*xx-yy*yy)+xys*xys))/2/xx)}p.x=lon;p.y=lat;return p};exports.names=["Van_der_Grinten_I","VanDerGrinten","vandg"]},{"../common/adjust_lon":"/data/github/geopackage-node/node_modules/proj4/lib/common/adjust_lon.js","../common/asinz":"/data/github/geopackage-node/node_modules/proj4/lib/common/asinz.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/transform.js":[function(require,module,exports){var D2R=.017453292519943295;var R2D=57.29577951308232;var PJD_3PARAM=1;var PJD_7PARAM=2;var datum_transform=require("./datum_transform");var adjust_axis=require("./adjust_axis");var proj=require("./Proj");var toPoint=require("./common/toPoint");module.exports=function transform(source,dest,point){var wgs84;if(Array.isArray(point)){point=toPoint(point)}function checkNotWGS(source,dest){return(source.datum.datum_type===PJD_3PARAM||source.datum.datum_type===PJD_7PARAM)&&dest.datumCode!=="WGS84"}if(source.datum&&dest.datum&&(checkNotWGS(source,dest)||checkNotWGS(dest,source))){wgs84=new proj("WGS84");transform(source,wgs84,point);source=wgs84}if(source.axis!=="enu"){adjust_axis(source,false,point)}if(source.projName==="longlat"){point.x*=D2R;point.y*=D2R}else{if(source.to_meter){point.x*=source.to_meter;point.y*=source.to_meter}source.inverse(point)}if(source.from_greenwich){point.x+=source.from_greenwich}point=datum_transform(source.datum,dest.datum,point);if(dest.from_greenwich){point.x-=dest.from_greenwich}if(dest.projName==="longlat"){point.x*=R2D;point.y*=R2D}else{dest.forward(point);if(dest.to_meter){point.x/=dest.to_meter;point.y/=dest.to_meter}}if(dest.axis!=="enu"){adjust_axis(dest,true,point)}return point}},{"./Proj":"/data/github/geopackage-node/node_modules/proj4/lib/Proj.js","./adjust_axis":"/data/github/geopackage-node/node_modules/proj4/lib/adjust_axis.js","./common/toPoint":"/data/github/geopackage-node/node_modules/proj4/lib/common/toPoint.js","./datum_transform":"/data/github/geopackage-node/node_modules/proj4/lib/datum_transform.js"}],"/data/github/geopackage-node/node_modules/proj4/lib/wkt.js":[function(require,module,exports){var D2R=.017453292519943295;var extend=require("./extend");function mapit(obj,key,v){obj[key]=v.map(function(aa){var o={};sExpr(aa,o);return o}).reduce(function(a,b){return extend(a,b)},{})}function sExpr(v,obj){var key;if(!Array.isArray(v)){obj[v]=true;return}else{key=v.shift();if(key==="PARAMETER"){key=v.shift()}if(v.length===1){if(Array.isArray(v[0])){obj[key]={};sExpr(v[0],obj[key])}else{obj[key]=v[0]}}else if(!v.length){obj[key]=true}else if(key==="TOWGS84"){obj[key]=v}else{obj[key]={};if(["UNIT","PRIMEM","VERT_DATUM"].indexOf(key)>-1){obj[key]={name:v[0].toLowerCase(),convert:v[1]};if(v.length===3){obj[key].auth=v[2]}}else if(key==="SPHEROID"){obj[key]={name:v[0],a:v[1],rf:v[2]};if(v.length===4){obj[key].auth=v[3]}}else if(["GEOGCS","GEOCCS","DATUM","VERT_CS","COMPD_CS","LOCAL_CS","FITTED_CS","LOCAL_DATUM"].indexOf(key)>-1){v[0]=["name",v[0]];mapit(obj,key,v)}else if(v.every(function(aa){return Array.isArray(aa)})){mapit(obj,key,v)}else{sExpr(v,obj[key])}}}}function rename(obj,params){var outName=params[0];var inName=params[1];if(!(outName in obj)&&inName in obj){obj[outName]=obj[inName];if(params.length===3){obj[outName]=params[2](obj[outName])}}}function d2r(input){return input*D2R}function cleanWKT(wkt){if(wkt.type==="GEOGCS"){wkt.projName="longlat"}else if(wkt.type==="LOCAL_CS"){wkt.projName="identity";wkt.local=true}else{if(typeof wkt.PROJECTION==="object"){wkt.projName=Object.keys(wkt.PROJECTION)[0]}else{wkt.projName=wkt.PROJECTION}}if(wkt.UNIT){wkt.units=wkt.UNIT.name.toLowerCase();if(wkt.units==="metre"){wkt.units="meter"}if(wkt.UNIT.convert){if(wkt.type==="GEOGCS"){if(wkt.DATUM&&wkt.DATUM.SPHEROID){wkt.to_meter=parseFloat(wkt.UNIT.convert,10)*wkt.DATUM.SPHEROID.a}}else{wkt.to_meter=parseFloat(wkt.UNIT.convert,10)}}}if(wkt.GEOGCS){if(wkt.GEOGCS.DATUM){wkt.datumCode=wkt.GEOGCS.DATUM.name.toLowerCase()}else{wkt.datumCode=wkt.GEOGCS.name.toLowerCase()}if(wkt.datumCode.slice(0,2)==="d_"){wkt.datumCode=wkt.datumCode.slice(2)}if(wkt.datumCode==="new_zealand_geodetic_datum_1949"||wkt.datumCode==="new_zealand_1949"){wkt.datumCode="nzgd49"}if(wkt.datumCode==="wgs_1984"){if(wkt.PROJECTION==="Mercator_Auxiliary_Sphere"){wkt.sphere=true}wkt.datumCode="wgs84"}if(wkt.datumCode.slice(-6)==="_ferro"){wkt.datumCode=wkt.datumCode.slice(0,-6)}if(wkt.datumCode.slice(-8)==="_jakarta"){wkt.datumCode=wkt.datumCode.slice(0,-8)}if(~wkt.datumCode.indexOf("belge")){wkt.datumCode="rnb72"}if(wkt.GEOGCS.DATUM&&wkt.GEOGCS.DATUM.SPHEROID){wkt.ellps=wkt.GEOGCS.DATUM.SPHEROID.name.replace("_19","").replace(/[Cc]larke\_18/,"clrk");if(wkt.ellps.toLowerCase().slice(0,13)==="international"){wkt.ellps="intl"}wkt.a=wkt.GEOGCS.DATUM.SPHEROID.a;wkt.rf=parseFloat(wkt.GEOGCS.DATUM.SPHEROID.rf,10)}if(~wkt.datumCode.indexOf("osgb_1936")){wkt.datumCode="osgb36"}}if(wkt.b&&!isFinite(wkt.b)){wkt.b=wkt.a}function toMeter(input){var ratio=wkt.to_meter||1;return parseFloat(input,10)*ratio}var renamer=function(a){return rename(wkt,a)};var list=[["standard_parallel_1","Standard_Parallel_1"],["standard_parallel_2","Standard_Parallel_2"],["false_easting","False_Easting"],["false_northing","False_Northing"],["central_meridian","Central_Meridian"],["latitude_of_origin","Latitude_Of_Origin"],["latitude_of_origin","Central_Parallel"],["scale_factor","Scale_Factor"],["k0","scale_factor"],["latitude_of_center","Latitude_of_center"],["lat0","latitude_of_center",d2r],["longitude_of_center","Longitude_Of_Center"],["longc","longitude_of_center",d2r],["x0","false_easting",toMeter],["y0","false_northing",toMeter],["long0","central_meridian",d2r],["lat0","latitude_of_origin",d2r],["lat0","standard_parallel_1",d2r],["lat1","standard_parallel_1",d2r],["lat2","standard_parallel_2",d2r],["alpha","azimuth",d2r],["srsCode","name"]];list.forEach(renamer);if(!wkt.long0&&wkt.longc&&(wkt.projName==="Albers_Conic_Equal_Area"||wkt.projName==="Lambert_Azimuthal_Equal_Area")){wkt.long0=wkt.longc}if(!wkt.lat_ts&&wkt.lat1&&(wkt.projName==="Stereographic_South_Pole"||wkt.projName==="Polar Stereographic (variant B)")){wkt.lat0=d2r(wkt.lat1>0?90:-90);wkt.lat_ts=wkt.lat1}}module.exports=function(wkt,self){var lisp=JSON.parse((","+wkt).replace(/\s*\,\s*([A-Z_0-9]+?)(\[)/g,',["$1",').slice(1).replace(/\s*\,\s*([A-Z_0-9]+?)\]/g,',"$1"]').replace(/,\["VERTCS".+/,""));var type=lisp.shift();var name=lisp.shift();lisp.unshift(["name",name]);lisp.unshift(["type",type]);lisp.unshift("output");var obj={};sExpr(lisp,obj);cleanWKT(obj.output);return extend(self,obj.output)}},{"./extend":"/data/github/geopackage-node/node_modules/proj4/lib/extend.js"}],"/data/github/geopackage-node/node_modules/proj4/node_modules/mgrs/mgrs.js":[function(require,module,exports){var NUM_100K_SETS=6;var SET_ORIGIN_COLUMN_LETTERS="AJSAJS";var SET_ORIGIN_ROW_LETTERS="AFAFAF";var A=65;var I=73;var O=79;var V=86;var Z=90;exports.forward=function(ll,accuracy){accuracy=accuracy||5;return encode(LLtoUTM({lat:ll[1],lon:ll[0]}),accuracy)};exports.inverse=function(mgrs){var bbox=UTMtoLL(decode(mgrs.toUpperCase()));if(bbox.lat&&bbox.lon){return[bbox.lon,bbox.lat,bbox.lon,bbox.lat]}return[bbox.left,bbox.bottom,bbox.right,bbox.top]};exports.toPoint=function(mgrs){var bbox=UTMtoLL(decode(mgrs.toUpperCase()));if(bbox.lat&&bbox.lon){return[bbox.lon,bbox.lat]}return[(bbox.left+bbox.right)/2,(bbox.top+bbox.bottom)/2]};function degToRad(deg){return deg*(Math.PI/180)}function radToDeg(rad){return 180*(rad/Math.PI)}function LLtoUTM(ll){var Lat=ll.lat;var Long=ll.lon;var a=6378137;var eccSquared=.00669438;var k0=.9996;var LongOrigin;var eccPrimeSquared;var N,T,C,A,M;var LatRad=degToRad(Lat);var LongRad=degToRad(Long);var LongOriginRad;var ZoneNumber;ZoneNumber=Math.floor((Long+180)/6)+1;if(Long===180){ZoneNumber=60}if(Lat>=56&&Lat<64&&Long>=3&&Long<12){ZoneNumber=32}if(Lat>=72&&Lat<84){if(Long>=0&&Long<9){ZoneNumber=31}else if(Long>=9&&Long<21){ZoneNumber=33}else if(Long>=21&&Long<33){ZoneNumber=35}else if(Long>=33&&Long<42){ZoneNumber=37}}LongOrigin=(ZoneNumber-1)*6-180+3;LongOriginRad=degToRad(LongOrigin);eccPrimeSquared=eccSquared/(1-eccSquared);N=a/Math.sqrt(1-eccSquared*Math.sin(LatRad)*Math.sin(LatRad));T=Math.tan(LatRad)*Math.tan(LatRad);C=eccPrimeSquared*Math.cos(LatRad)*Math.cos(LatRad);A=Math.cos(LatRad)*(LongRad-LongOriginRad);M=a*((1-eccSquared/4-3*eccSquared*eccSquared/64-5*eccSquared*eccSquared*eccSquared/256)*LatRad-(3*eccSquared/8+3*eccSquared*eccSquared/32+45*eccSquared*eccSquared*eccSquared/1024)*Math.sin(2*LatRad)+(15*eccSquared*eccSquared/256+45*eccSquared*eccSquared*eccSquared/1024)*Math.sin(4*LatRad)-35*eccSquared*eccSquared*eccSquared/3072*Math.sin(6*LatRad));var UTMEasting=k0*N*(A+(1-T+C)*A*A*A/6+(5-18*T+T*T+72*C-58*eccPrimeSquared)*A*A*A*A*A/120)+5e5;var UTMNorthing=k0*(M+N*Math.tan(LatRad)*(A*A/2+(5-T+9*C+4*C*C)*A*A*A*A/24+(61-58*T+T*T+600*C-330*eccPrimeSquared)*A*A*A*A*A*A/720));if(Lat<0){UTMNorthing+=1e7}return{northing:Math.round(UTMNorthing),easting:Math.round(UTMEasting),zoneNumber:ZoneNumber,zoneLetter:getLetterDesignator(Lat)}}function UTMtoLL(utm){var UTMNorthing=utm.northing;var UTMEasting=utm.easting;var zoneLetter=utm.zoneLetter;var zoneNumber=utm.zoneNumber;if(zoneNumber<0||zoneNumber>60){return null}var k0=.9996;var a=6378137;var eccSquared=.00669438;var eccPrimeSquared;var e1=(1-Math.sqrt(1-eccSquared))/(1+Math.sqrt(1-eccSquared));var N1,T1,C1,R1,D,M;var LongOrigin;var mu,phi1Rad;var x=UTMEasting-5e5;var y=UTMNorthing;if(zoneLetter<"N"){y-=1e7}LongOrigin=(zoneNumber-1)*6-180+3;eccPrimeSquared=eccSquared/(1-eccSquared);M=y/k0;mu=M/(a*(1-eccSquared/4-3*eccSquared*eccSquared/64-5*eccSquared*eccSquared*eccSquared/256));phi1Rad=mu+(3*e1/2-27*e1*e1*e1/32)*Math.sin(2*mu)+(21*e1*e1/16-55*e1*e1*e1*e1/32)*Math.sin(4*mu)+151*e1*e1*e1/96*Math.sin(6*mu);N1=a/Math.sqrt(1-eccSquared*Math.sin(phi1Rad)*Math.sin(phi1Rad));T1=Math.tan(phi1Rad)*Math.tan(phi1Rad);C1=eccPrimeSquared*Math.cos(phi1Rad)*Math.cos(phi1Rad);R1=a*(1-eccSquared)/Math.pow(1-eccSquared*Math.sin(phi1Rad)*Math.sin(phi1Rad),1.5);D=x/(N1*k0);var lat=phi1Rad-N1*Math.tan(phi1Rad)/R1*(D*D/2-(5+3*T1+10*C1-4*C1*C1-9*eccPrimeSquared)*D*D*D*D/24+(61+90*T1+298*C1+45*T1*T1-252*eccPrimeSquared-3*C1*C1)*D*D*D*D*D*D/720);lat=radToDeg(lat);var lon=(D-(1+2*T1+C1)*D*D*D/6+(5-2*C1+28*T1-3*C1*C1+8*eccPrimeSquared+24*T1*T1)*D*D*D*D*D/120)/Math.cos(phi1Rad);lon=LongOrigin+radToDeg(lon);var result;if(utm.accuracy){var topRight=UTMtoLL({northing:utm.northing+utm.accuracy,easting:utm.easting+utm.accuracy,zoneLetter:utm.zoneLetter,zoneNumber:utm.zoneNumber});result={top:topRight.lat,right:topRight.lon,bottom:lat,left:lon}}else{result={lat:lat,lon:lon}}return result}function getLetterDesignator(lat){var LetterDesignator="Z";if(84>=lat&&lat>=72){LetterDesignator="X"}else if(72>lat&&lat>=64){LetterDesignator="W"}else if(64>lat&&lat>=56){LetterDesignator="V"}else if(56>lat&&lat>=48){LetterDesignator="U"}else if(48>lat&&lat>=40){LetterDesignator="T"}else if(40>lat&&lat>=32){LetterDesignator="S"}else if(32>lat&&lat>=24){LetterDesignator="R"}else if(24>lat&&lat>=16){LetterDesignator="Q"}else if(16>lat&&lat>=8){LetterDesignator="P"}else if(8>lat&&lat>=0){LetterDesignator="N"}else if(0>lat&&lat>=-8){LetterDesignator="M"}else if(-8>lat&&lat>=-16){LetterDesignator="L"}else if(-16>lat&&lat>=-24){LetterDesignator="K"}else if(-24>lat&&lat>=-32){LetterDesignator="J"}else if(-32>lat&&lat>=-40){LetterDesignator="H"}else if(-40>lat&&lat>=-48){LetterDesignator="G"}else if(-48>lat&&lat>=-56){LetterDesignator="F"}else if(-56>lat&&lat>=-64){LetterDesignator="E"}else if(-64>lat&&lat>=-72){LetterDesignator="D"}else if(-72>lat&&lat>=-80){LetterDesignator="C"}return LetterDesignator}function encode(utm,accuracy){var seasting="00000"+utm.easting,snorthing="00000"+utm.northing;return utm.zoneNumber+utm.zoneLetter+get100kID(utm.easting,utm.northing,utm.zoneNumber)+seasting.substr(seasting.length-5,accuracy)+snorthing.substr(snorthing.length-5,accuracy)}function get100kID(easting,northing,zoneNumber){var setParm=get100kSetForZone(zoneNumber);var setColumn=Math.floor(easting/1e5);var setRow=Math.floor(northing/1e5)%20;return getLetter100kID(setColumn,setRow,setParm)}function get100kSetForZone(i){var setParm=i%NUM_100K_SETS;if(setParm===0){setParm=NUM_100K_SETS}return setParm}function getLetter100kID(column,row,parm){var index=parm-1;var colOrigin=SET_ORIGIN_COLUMN_LETTERS.charCodeAt(index);var rowOrigin=SET_ORIGIN_ROW_LETTERS.charCodeAt(index);var colInt=colOrigin+column-1;var rowInt=rowOrigin+row;var rollover=false;if(colInt>Z){colInt=colInt-Z+A-1;rollover=true}if(colInt===I||colOrigin<I&&colInt>I||(colInt>I||colOrigin<I)&&rollover){colInt++}if(colInt===O||colOrigin<O&&colInt>O||(colInt>O||colOrigin<O)&&rollover){colInt++;if(colInt===I){colInt++}}if(colInt>Z){colInt=colInt-Z+A-1}if(rowInt>V){rowInt=rowInt-V+A-1;rollover=true}else{rollover=false}if(rowInt===I||rowOrigin<I&&rowInt>I||(rowInt>I||rowOrigin<I)&&rollover){rowInt++}if(rowInt===O||rowOrigin<O&&rowInt>O||(rowInt>O||rowOrigin<O)&&rollover){rowInt++;if(rowInt===I){rowInt++}}if(rowInt>V){rowInt=rowInt-V+A-1}var twoLetter=String.fromCharCode(colInt)+String.fromCharCode(rowInt);return twoLetter}function decode(mgrsString){if(mgrsString&&mgrsString.length===0){throw"MGRSPoint coverting from nothing"}var length=mgrsString.length;var hunK=null;var sb="";var testChar;var i=0;while(!/[A-Z]/.test(testChar=mgrsString.charAt(i))){if(i>=2){throw"MGRSPoint bad conversion from: "+mgrsString}sb+=testChar;i++}var zoneNumber=parseInt(sb,10);if(i===0||i+3>length){throw"MGRSPoint bad conversion from: "+mgrsString}var zoneLetter=mgrsString.charAt(i++);if(zoneLetter<="A"||zoneLetter==="B"||zoneLetter==="Y"||zoneLetter>="Z"||zoneLetter==="I"||zoneLetter==="O"){throw"MGRSPoint zone letter "+zoneLetter+" not handled: "+mgrsString}hunK=mgrsString.substring(i,i+=2);var set=get100kSetForZone(zoneNumber);var east100k=getEastingFromChar(hunK.charAt(0),set);var north100k=getNorthingFromChar(hunK.charAt(1),set);while(north100k<getMinNorthing(zoneLetter)){north100k+=2e6}var remainder=length-i;if(remainder%2!==0){throw"MGRSPoint has to have an even number \nof digits after the zone letter and two 100km letters - front \nhalf for easting meters, second half for \nnorthing meters"+mgrsString}var sep=remainder/2;var sepEasting=0;var sepNorthing=0;var accuracyBonus,sepEastingString,sepNorthingString,easting,northing;if(sep>0){accuracyBonus=1e5/Math.pow(10,sep);sepEastingString=mgrsString.substring(i,i+sep);sepEasting=parseFloat(sepEastingString)*accuracyBonus;sepNorthingString=mgrsString.substring(i+sep);sepNorthing=parseFloat(sepNorthingString)*accuracyBonus}easting=sepEasting+east100k;northing=sepNorthing+north100k;return{easting:easting,northing:northing,zoneLetter:zoneLetter,zoneNumber:zoneNumber,accuracy:accuracyBonus}}function getEastingFromChar(e,set){var curCol=SET_ORIGIN_COLUMN_LETTERS.charCodeAt(set-1);var eastingValue=1e5;var rewindMarker=false;while(curCol!==e.charCodeAt(0)){curCol++;if(curCol===I){curCol++}if(curCol===O){curCol++}if(curCol>Z){if(rewindMarker){throw"Bad character: "+e}curCol=A;rewindMarker=true}eastingValue+=1e5}return eastingValue}function getNorthingFromChar(n,set){if(n>"V"){throw"MGRSPoint given invalid Northing "+n}var curRow=SET_ORIGIN_ROW_LETTERS.charCodeAt(set-1);var northingValue=0;var rewindMarker=false;while(curRow!==n.charCodeAt(0)){curRow++;if(curRow===I){curRow++}if(curRow===O){curRow++}if(curRow>V){if(rewindMarker){throw"Bad character: "+n}curRow=A;rewindMarker=true}northingValue+=1e5}return northingValue}function getMinNorthing(zoneLetter){var northing;switch(zoneLetter){case"C":northing=11e5;break;case"D":northing=2e6;break;case"E":northing=28e5;break;case"F":northing=37e5;
  30. break;case"G":northing=46e5;break;case"H":northing=55e5;break;case"J":northing=64e5;break;case"K":northing=73e5;break;case"L":northing=82e5;break;case"M":northing=91e5;break;case"N":northing=0;break;case"P":northing=8e5;break;case"Q":northing=17e5;break;case"R":northing=26e5;break;case"S":northing=35e5;break;case"T":northing=44e5;break;case"U":northing=53e5;break;case"V":northing=62e5;break;case"W":northing=7e6;break;case"X":northing=79e5;break;default:northing=-1}if(northing>=0){return northing}else{throw"Invalid zone letter: "+zoneLetter}}},{}],"/data/github/geopackage-node/node_modules/proj4/package.json":[function(require,module,exports){module.exports={name:"proj4",version:"2.3.14",description:"Proj4js is a JavaScript library to transform point coordinates from one coordinate system to another, including datum transformations.",main:"lib/index.js",directories:{test:"test",doc:"docs"},scripts:{test:"./node_modules/istanbul/lib/cli.js test ./node_modules/mocha/bin/_mocha test/test.js"},repository:{type:"git",url:"git://github.com/proj4js/proj4js.git"},author:"",license:"MIT",jam:{main:"dist/proj4.js",include:["dist/proj4.js","README.md","AUTHORS","LICENSE.md"]},devDependencies:{"grunt-cli":"~0.1.13",grunt:"~0.4.2","grunt-contrib-connect":"~0.6.0","grunt-contrib-jshint":"~0.8.0",chai:"~1.8.1",mocha:"~1.17.1","grunt-mocha-phantomjs":"~0.4.0",browserify:"~12.0.1","grunt-browserify":"~4.0.1","grunt-contrib-uglify":"~0.11.1",curl:"git://github.com/cujojs/curl.git",istanbul:"~0.2.4",tin:"~0.4.0"},dependencies:{mgrs:"~0.0.2"},contributors:[{name:"Mike Adair",email:"madair@dmsolutions.ca"},{name:"Richard Greenwood",email:"rich@greenwoodmap.com"},{name:"Calvin Metcalf",email:"calvin.metcalf@gmail.com"},{name:"Richard Marsden",url:"http://www.winwaed.com"},{name:"T. Mittan"},{name:"D. Steinwand"},{name:"S. Nelson"}],gitHead:"7619c8a63df1eae5bad0b9ad31ca1d87b0549243",bugs:{url:"https://github.com/proj4js/proj4js/issues"},homepage:"https://github.com/proj4js/proj4js#readme",_id:"proj4@2.3.14",_shasum:"928906144388980c914c5a357fc493aba59a747a",_from:"proj4@>=2.3.14 <3.0.0",_npmVersion:"2.14.12",_nodeVersion:"4.2.6",_npmUser:{name:"ahocevar",email:"andreas.hocevar@gmail.com"},dist:{shasum:"928906144388980c914c5a357fc493aba59a747a",tarball:"https://registry.npmjs.org/proj4/-/proj4-2.3.14.tgz"},maintainers:[{name:"cwmma",email:"calvin.metcalf@gmail.com"},{name:"ahocevar",email:"andreas.hocevar@gmail.com"}],_npmOperationalInternal:{host:"packages-13-west.internal.npmjs.com",tmp:"tmp/proj4-2.3.14.tgz_1457689264880_0.9409773757215589"},_resolved:"https://registry.npmjs.org/proj4/-/proj4-2.3.14.tgz",readme:"ERROR: No README data found!"}},{}],"/data/github/geopackage-node/node_modules/reproject/index.js":[function(require,module,exports){"use strict";var proj4=require("proj4");function isXY(list){return list.length>=2&&typeof list[0]==="number"&&typeof list[1]==="number"}function traverseCoords(coordinates,callback){if(isXY(coordinates))return callback(coordinates);return coordinates.map(function(coord){return traverseCoords(coord,callback)})}function clone(obj){if(null==obj||"object"!==typeof obj)return obj;var copy=obj.constructor();for(var attr in obj){if(obj.hasOwnProperty(attr))copy[attr]=obj[attr]}return copy}function traverseGeoJson(geojson,leafCallback,nodeCallback){if(geojson==null)return geojson;var r=clone(geojson);if(geojson.type==="Feature"){r.geometry=traverseGeoJson(geojson.geometry,leafCallback,nodeCallback)}else if(geojson.type==="FeatureCollection"){r.features=r.features.map(function(gj){return traverseGeoJson(gj,leafCallback,nodeCallback)})}else if(geojson.type==="GeometryCollection"){r.geometries=r.geometries.map(function(gj){return traverseGeoJson(gj,leafCallback,nodeCallback)})}else{if(leafCallback)leafCallback(r)}if(nodeCallback)nodeCallback(r);return r}function detectCrs(geojson,projs){var crsInfo=geojson.crs,crs;if(crsInfo===undefined){throw new Error('Unable to detect CRS, GeoJSON has no "crs" property.')}if(crsInfo.type==="name"){crs=projs[crsInfo.properties.name]}else if(crsInfo.type==="EPSG"){crs=projs["EPSG:"+crsInfo.properties.code]}if(!crs){throw new Error("CRS defined in crs section could not be identified: "+JSON.stringify(crsInfo))}return crs}function determineCrs(crs,projs){if(typeof crs==="string"||crs instanceof String){return projs[crs]||proj4.Proj(crs)}return crs}function reproject(geojson,from,to,projs){projs=projs||{};if(!from){from=detectCrs(geojson,projs)}else{from=determineCrs(from,projs)}to=determineCrs(to,projs);var transform=proj4(from,to);return traverseGeoJson(geojson,function(gj){if(gj.crs){delete gj.crs}gj.coordinates=traverseCoords(gj.coordinates,function(xy){return transform.forward(xy)})},function(gj){if(gj.bbox){gj.bbox=function(){var min=[Number.MAX_VALUE,Number.MAX_VALUE],max=[-Number.MAX_VALUE,-Number.MAX_VALUE];traverseGeoJson(gj,function(_gj){traverseCoords(_gj.coordinates,function(xy){min[0]=Math.min(min[0],xy[0]);min[1]=Math.min(min[1],xy[1]);max[0]=Math.max(max[0],xy[0]);max[1]=Math.max(max[1],xy[1])})});return[min[0],min[1],max[0],max[1]]}()}})}module.exports={detectCrs:detectCrs,reproject:reproject,reverse:function(geojson){return traverseGeoJson(geojson,function(gj){gj.coordinates=traverseCoords(gj.coordinates,function(xy){return[xy[1],xy[0]]})})},toWgs84:function(geojson,from,projs){return reproject(geojson,from,proj4.WGS84,projs)}}},{proj4:"/data/github/geopackage-node/node_modules/proj4/lib/index.js"}],"/data/github/geopackage-node/node_modules/sql.js/js/sql.js":[function(require,module,exports){(function(process,Buffer,__dirname){var SQL=function(){var f;f||(f=eval("(function() { try { return Module || {} } catch(e) { return {} } })()"));var aa={},ba;for(ba in f)f.hasOwnProperty(ba)&&(aa[ba]=f[ba]);var ca="object"===typeof window,da="function"===typeof importScripts,ea="object"===typeof process&&"function"===typeof require&&!ca&&!da,fa=!ca&&!ea&&!da;if(ea){f.print||(f.print=function(a){process.stdout.write(a+"\n")});f.printErr||(f.printErr=function(a){process.stderr.write(a+"\n")});var ga=require("fs"),ia=require("path");f.read=function(a,b){a=ia.normalize(a);var c=ga.readFileSync(a);c||a==ia.resolve(a)||(a=path.join(__dirname,"..","src",a),c=ga.readFileSync(a));c&&!b&&(c=c.toString());return c};f.readBinary=function(a){a=f.read(a,!0);a.buffer||(a=new Uint8Array(a));assert(a.buffer);return a};f.load=function(a){ja(read(a))};f.thisProgram||(f.thisProgram=1<process.argv.length?process.argv[1].replace(/\\/g,"/"):"unknown-program");f.arguments=process.argv.slice(2);"undefined"!==typeof module&&(module.exports=f);process.on("uncaughtException",function(a){if(!(a instanceof ka))throw a});f.inspect=function(){return"[Emscripten Module object]"}}else if(fa)f.print||(f.print=print),"undefined"!=typeof printErr&&(f.printErr=printErr),f.read="undefined"!=typeof read?read:function(){throw"no read() available (jsc?)"},f.readBinary=function(a){if("function"===typeof readbuffer)return new Uint8Array(readbuffer(a));a=read(a,"binary");assert("object"===typeof a);return a},"undefined"!=typeof scriptArgs?f.arguments=scriptArgs:"undefined"!=typeof arguments&&(f.arguments=arguments),eval("if (typeof gc === 'function' && gc.toString().indexOf('[native code]') > 0) var gc = undefined");else if(ca||da)f.read=function(a){var b=new XMLHttpRequest;b.open("GET",a,!1);b.send(null);return b.responseText},"undefined"!=typeof arguments&&(f.arguments=arguments),"undefined"!==typeof console?(f.print||(f.print=function(a){console.log(a)}),f.printErr||(f.printErr=function(a){console.log(a)})):f.print||(f.print=function(){}),da&&(f.load=importScripts),"undefined"===typeof f.setWindowTitle&&(f.setWindowTitle=function(a){document.title=a});else throw"Unknown runtime environment. Where are we?";function ja(a){eval.call(null,a)}!f.load&&f.read&&(f.load=function(a){ja(f.read(a))});f.print||(f.print=function(){});f.printErr||(f.printErr=f.print);f.arguments||(f.arguments=[]);f.thisProgram||(f.thisProgram="./this.program");f.print=f.print;f.fa=f.printErr;f.preRun=[];f.postRun=[];for(ba in aa)aa.hasOwnProperty(ba)&&(f[ba]=aa[ba]);var l={Qb:function(a){la=a},Ab:function(){return la},qa:function(){return k},ga:function(a){k=a},Xa:function(a){switch(a){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:return"*"===a[a.length-1]?l.M:"i"===a[0]?(a=parseInt(a.substr(1)),assert(0===a%8),a/8):0}},xb:function(a){return Math.max(l.Xa(a),l.M)},oe:16,Ke:function(a,b){"double"===b||"i64"===b?a&7&&(assert(4===(a&7)),a+=4):assert(0===(a&3));return a},ye:function(a,b,c){return c||"i64"!=a&&"double"!=a?a?Math.min(b||(a?l.xb(a):0),l.M):Math.min(b,8):8},T:function(a,b,c){return c&&c.length?(c.splice||(c=Array.prototype.slice.call(c)),c.splice(0,0,b),f["dynCall_"+a].apply(null,c)):f["dynCall_"+a].call(null,b)},A:[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],La:function(a){for(var b=0;b<l.A.length;b++)if(!l.A[b])return l.A[b]=a,2*(1+b);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."},Mb:function(a){l.A[(a-2)/2]=null},X:function(a){l.X.Fa||(l.X.Fa={});l.X.Fa[a]||(l.X.Fa[a]=1,f.fa(a))},ya:{},Be:function(a,b){assert(b);l.ya[b]||(l.ya[b]={});var c=l.ya[b];c[a]||(c[a]=function(){return l.T(b,a,arguments)});return c[a]},ze:function(){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"},R:function(a){var b=k;k=k+a|0;k=k+15&-16;return b},bb:function(a){var b=ma;ma=ma+a|0;ma=ma+15&-16;return b},ba:function(a){var b=n;n=n+a|0;n=n+15&-16;if(a=n>=na)p("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+na+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 "),a=!0;return a?(n=b,0):b},ta:function(a,b){return Math.ceil(a/(b?b:16))*(b?b:16)},He:function(a,b,c){return c?+(a>>>0)+4294967296*+(b>>>0):+(a>>>0)+4294967296*+(b|0)},aa:8,M:4,re:0};f.Runtime=l;l.addFunction=l.La;l.removeFunction=l.Mb;var oa=!1,pa,qa,la;function assert(a,b){a||p("Assertion failed: "+b)}function ra(a){var b=f["_"+a];if(!b)try{b=eval("_"+a)}catch(c){}assert(b,"Cannot call unknown function "+a+" (perhaps LLVM optimizations or closure removed it?)");return b}var sa,ta;(function(){function a(a){a=a.toString().match(d).slice(1);return{arguments:a[0],body:a[1],returnValue:a[2]}}var b={stackSave:function(){l.qa()},stackRestore:function(){l.ga()},arrayToC:function(a){var b=l.R(a.length);ua(a,b);return b},stringToC:function(a){var b=0;null!==a&&void 0!==a&&0!==a&&(b=l.R((a.length<<2)+1),wa(a,b));return b}},c={string:b.stringToC,array:b.arrayToC};ta=function(a,b,d,e,g){a=ra(a);var v=[],G=0;if(e)for(var I=0;I<e.length;I++){var Y=c[d[I]];Y?(0===G&&(G=l.qa()),v[I]=Y(e[I])):v[I]=e[I]}d=a.apply(null,v);"string"===b&&(d=q(d));if(0!==G){if(g&&g.async){xa.se.push(function(){l.ga(G)});return}l.ga(G)}return d};var d=/^function\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/,e={},g;for(g in b)b.hasOwnProperty(g)&&(e[g]=a(b[g]));sa=function(b,c,d){d=d||[];var g=ra(b);b=d.every(function(a){return"number"===a});var x="string"!==c;if(x&&b)return g;var v=d.map(function(a,b){return"$"+b});c="(function("+v.join(",")+") {";var G=d.length;if(!b){c+="var stack = "+e.stackSave.body+";";for(var I=0;I<G;I++){var Y=v[I],va=d[I];"number"!==va&&(va=e[va+"ToC"],c+="var "+va.arguments+" = "+Y+";",c+=va.body+";",c+=Y+"="+va.returnValue+";")}}d=a(function(){return g}).returnValue;c+="var ret = "+d+"("+v.join(",")+");";x||(d=a(function(){return q}).returnValue,c+="ret = "+d+"(ret);");b||(c+=e.stackRestore.body.replace("()","(stack)")+";");return eval(c+"return ret})")}})();f.ccall=ta;f.cwrap=sa;function ya(a,b,c){c=c||"i8";"*"===c.charAt(c.length-1)&&(c="i32");switch(c){case"i1":u[a>>0]=b;break;case"i8":u[a>>0]=b;break;case"i16":za[a>>1]=b;break;case"i32":w[a>>2]=b;break;case"i64":qa=[b>>>0,(pa=b,1<=+Aa(pa)?0<pa?(Ba(+Ca(pa/4294967296),4294967295)|0)>>>0:~~+Da((pa-+(~~pa>>>0))/4294967296)>>>0:0)];w[a>>2]=qa[0];w[a+4>>2]=qa[1];break;case"float":Ea[a>>2]=b;break;case"double":Fa[a>>3]=b;break;default:p("invalid type for setValue: "+c)}}f.setValue=ya;function y(a,b){b=b||"i8";"*"===b.charAt(b.length-1)&&(b="i32");switch(b){case"i1":return u[a>>0];case"i8":return u[a>>0];case"i16":return za[a>>1];case"i32":return w[a>>2];case"i64":return w[a>>2];case"float":return Ea[a>>2];case"double":return Fa[a>>3];default:p("invalid type for setValue: "+b)}return null}f.getValue=y;f.ALLOC_NORMAL=0;f.ALLOC_STACK=1;f.ALLOC_STATIC=2;f.ALLOC_DYNAMIC=3;f.ALLOC_NONE=4;function z(a,b,c,d){var e,g;"number"===typeof a?(e=!0,g=a):(e=!1,g=a.length);var h="string"===typeof b?b:null;c=4==c?d:[Ga,l.R,l.bb,l.ba][void 0===c?2:c](Math.max(g,h?1:b.length));if(e){d=c;assert(0==(c&3));for(a=c+(g&-4);d<a;d+=4)w[d>>2]=0;for(a=c+g;d<a;)u[d++>>0]=0;return c}if("i8"===h)return a.subarray||a.slice?A.set(a,c):A.set(new Uint8Array(a),c),c;d=0;for(var m,t;d<g;){var r=a[d];"function"===typeof r&&(r=l.Ce(r));e=h||b[d];0===e?d++:("i64"==e&&(e="i32"),ya(c+d,r,e),t!==e&&(m=l.Xa(e),t=e),d+=m)}return c}f.allocate=z;f.getMemory=function(a){return Ha?"undefined"!==typeof Ia&&!Ia.Va||!Ja?l.ba(a):Ga(a):l.bb(a)};function q(a,b){if(0===b||!a)return"";for(var c=0,d,e=0;;){d=A[a+e>>0];c|=d;if(0==d&&!b)break;e++;if(b&&e==b)break}b||(b=e);d="";if(128>c){for(;0<b;)c=String.fromCharCode.apply(String,A.subarray(a,a+Math.min(b,1024))),d=d?d+c:c,a+=1024,b-=1024;return d}return f.UTF8ToString(a)}f.Pointer_stringify=q;f.AsciiToString=function(a){for(var b="";;){var c=u[a++>>0];if(!c)return b;b+=String.fromCharCode(c)}};f.stringToAscii=function(a,b){return Ka(a,b,!1)};function La(a,b){for(var c,d,e,g,h,m,t="";;){c=a[b++];if(!c)return t;c&128?(d=a[b++]&63,192==(c&224)?t+=String.fromCharCode((c&31)<<6|d):(e=a[b++]&63,224==(c&240)?c=(c&15)<<12|d<<6|e:(g=a[b++]&63,240==(c&248)?c=(c&7)<<18|d<<12|e<<6|g:(h=a[b++]&63,248==(c&252)?c=(c&3)<<24|d<<18|e<<12|g<<6|h:(m=a[b++]&63,c=(c&1)<<30|d<<24|e<<18|g<<12|h<<6|m))),65536>c?t+=String.fromCharCode(c):(c-=65536,t+=String.fromCharCode(55296|c>>10,56320|c&1023)))):t+=String.fromCharCode(c)}}f.UTF8ArrayToString=La;f.UTF8ToString=function(a){return La(A,a)};function Ma(a,b,c,d){if(!(0<d))return 0;var e=c;d=c+d-1;for(var g=0;g<a.length;++g){var h=a.charCodeAt(g);55296<=h&&57343>=h&&(h=65536+((h&1023)<<10)|a.charCodeAt(++g)&1023);if(127>=h){if(c>=d)break;b[c++]=h}else{if(2047>=h){if(c+1>=d)break;b[c++]=192|h>>6}else{if(65535>=h){if(c+2>=d)break;b[c++]=224|h>>12}else{if(2097151>=h){if(c+3>=d)break;b[c++]=240|h>>18}else{if(67108863>=h){if(c+4>=d)break;b[c++]=248|h>>24}else{if(c+5>=d)break;b[c++]=252|h>>30;b[c++]=128|h>>24&63}b[c++]=128|h>>18&63}b[c++]=128|h>>12&63}b[c++]=128|h>>6&63}b[c++]=128|h&63}}b[c]=0;return c-e}f.stringToUTF8Array=Ma;f.stringToUTF8=function(a,b,c){return Ma(a,A,b,c)};function Na(a){for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);55296<=d&&57343>=d&&(d=65536+((d&1023)<<10)|a.charCodeAt(++c)&1023);127>=d?++b:b=2047>=d?b+2:65535>=d?b+3:2097151>=d?b+4:67108863>=d?b+5:b+6}return b}f.lengthBytesUTF8=Na;f.UTF16ToString=function(a){for(var b=0,c="";;){var d=za[a+2*b>>1];if(0==d)return c;++b;c+=String.fromCharCode(d)}};f.stringToUTF16=function(a,b,c){void 0===c&&(c=2147483647);if(2>c)return 0;c-=2;var d=b;c=c<2*a.length?c/2:a.length;for(var e=0;e<c;++e)za[b>>1]=a.charCodeAt(e),b+=2;za[b>>1]=0;return b-d};f.lengthBytesUTF16=function(a){return 2*a.length};f.UTF32ToString=function(a){for(var b=0,c="";;){var d=w[a+4*b>>2];if(0==d)return c;++b;65536<=d?(d=d-65536,c+=String.fromCharCode(55296|d>>10,56320|d&1023)):c+=String.fromCharCode(d)}};f.stringToUTF32=function(a,b,c){void 0===c&&(c=2147483647);if(4>c)return 0;var d=b;c=d+c-4;for(var e=0;e<a.length;++e){var g=a.charCodeAt(e);if(55296<=g&&57343>=g)var h=a.charCodeAt(++e),g=65536+((g&1023)<<10)|h&1023;w[b>>2]=g;b+=4;if(b+4>c)break}w[b>>2]=0;return b-d};f.lengthBytesUTF32=function(a){for(var b=0,c=0;c<a.length;++c){var d=a.charCodeAt(c);55296<=d&&57343>=d&&++c;b+=4}return b};function Oa(a){function b(c,d,e){d=d||Infinity;var g="",h=[],v;if("N"===a[m]){m++;"K"===a[m]&&m++;for(v=[];"E"!==a[m];)if("S"===a[m]){m++;var F=a.indexOf("_",m);v.push(r[a.substring(m,F)||0]||"?");m=F+1}else if("C"===a[m])v.push(v[v.length-1]),m+=2;else{var F=parseInt(a.substr(m)),ha=F.toString().length;if(!F||!ha){m--;break}var lc=a.substr(m+ha,F);v.push(lc);r.push(lc);m+=ha+F}m++;v=v.join("::");d--;if(0===d)return c?[v]:v}else if(("K"===a[m]||x&&"L"===a[m])&&m++,F=parseInt(a.substr(m)))ha=F.toString().length,v=a.substr(m+ha,F),m+=ha+F;x=!1;"I"===a[m]?(m++,F=b(!0),ha=b(!0,1,!0),g+=ha[0]+" "+v+"<"+F.join(", ")+">"):g=v;a:for(;m<a.length&&0<d--;)if(v=a[m++],v in t)h.push(t[v]);else switch(v){case"P":h.push(b(!0,1,!0)[0]+"*");break;case"R":h.push(b(!0,1,!0)[0]+"&");break;case"L":m++;F=a.indexOf("E",m)-m;h.push(a.substr(m,F));m+=F+2;break;case"A":F=parseInt(a.substr(m));m+=F.toString().length;if("_"!==a[m])throw"?";m++;h.push(b(!0,1,!0)[0]+" ["+F+"]");break;case"E":break a;default:g+="?"+v;break a}e||1!==h.length||"void"!==h[0]||(h=[]);return c?(g&&h.push(g+"?"),h):g+("("+h.join(", ")+")")}var c=!!f.___cxa_demangle;if(c)try{var d=Ga(a.length);wa(a.substr(1),d);var e=Ga(4),g=f.___cxa_demangle(d,0,0,e);if(0===y(e,"i32")&&g)return q(g)}catch(h){}finally{d&&Pa(d),e&&Pa(e),g&&Pa(g)}var m=3,t={v:"void",b:"bool",c:"char",s:"short",i:"int",l:"long",f:"float",d:"double",w:"wchar_t",a:"signed char",h:"unsigned char",t:"unsigned short",j:"unsigned int",m:"unsigned long",x:"long long",y:"unsigned long long",z:"..."},r=[],x=!0,d=a;try{if("Object._main"==a||"_main"==a)return"main()";"number"===typeof a&&(a=q(a));if("_"!==a[0]||"_"!==a[1]||"Z"!==a[2])return a;switch(a[3]){case"n":return"operator new()";case"d":return"operator delete()"}d=b()}catch(v){d+="?"}0<=d.indexOf("?")&&!c&&l.X("warning: a problem occurred in builtin C++ name demangling; build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");return d}function Qa(){return Ra().replace(/__Z[\w\d_]+/g,function(a){var b=Oa(a);return a===b?a:a+" ["+b+"]"})}function Ra(){var a=Error();if(!a.stack){try{throw Error(0)}catch(b){a=b}if(!a.stack)return"(no stack trace available)"}return a.stack.toString()}f.stackTrace=function(){return Qa()};function Sa(){var a=n;0<a%4096&&(a+=4096-a%4096);return a}for(var u,A,za,Ta,w,Ua,Ea,Fa,Va=0,ma=0,Ha=!1,Wa=0,k=0,Xa=0,Ya=0,n=0,Za=f.TOTAL_STACK||5242880,na=f.TOTAL_MEMORY||16777216,$a=65536;$a<na||$a<2*Za;)$a=16777216>$a?2*$a:$a+16777216;$a!==na&&(na=$a);assert("undefined"!==typeof Int32Array&&"undefined"!==typeof Float64Array&&!!new Int32Array(1).subarray&&!!new Int32Array(1).set,"JS engine does not provide full typed array support");var buffer;buffer=new ArrayBuffer(na);u=new Int8Array(buffer);za=new Int16Array(buffer);w=new Int32Array(buffer);A=new Uint8Array(buffer);Ta=new Uint16Array(buffer);Ua=new Uint32Array(buffer);Ea=new Float32Array(buffer);Fa=new Float64Array(buffer);w[0]=255;assert(255===A[0]&&0===A[3],"Typed arrays 2 must be run on a little-endian system");f.HEAP=void 0;f.buffer=buffer;f.HEAP8=u;f.HEAP16=za;f.HEAP32=w;f.HEAPU8=A;f.HEAPU16=Ta;f.HEAPU32=Ua;f.HEAPF32=Ea;f.HEAPF64=Fa;function ab(a){for(;0<a.length;){var b=a.shift();if("function"==typeof b)b();else{var c=b.vb;"number"===typeof c?void 0===b.la?l.T("v",c):l.T("vi",c,[b.la]):c(void 0===b.la?null:b.la)}}}var bb=[],cb=[],db=[],eb=[],fb=[],Ja=!1;function gb(a){bb.unshift(a)}f.addOnPreRun=gb;f.addOnInit=function(a){cb.unshift(a)};f.addOnPreMain=function(a){db.unshift(a)};f.addOnExit=function(a){eb.unshift(a)};function hb(a){fb.unshift(a)}f.addOnPostRun=hb;function B(a,b,c){c=Array(0<c?c:Na(a)+1);a=Ma(a,c,0,c.length);b&&(c.length=a);return c}f.intArrayFromString=B;f.intArrayToString=function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c];255<d&&(d&=255);b.push(String.fromCharCode(d))}return b.join("")};function wa(a,b,c){a=B(a,c);for(c=0;c<a.length;)u[b+c>>0]=a[c],c+=1}f.writeStringToMemory=wa;function ua(a,b){for(var c=0;c<a.length;c++)u[b++>>0]=a[c]}f.writeArrayToMemory=ua;function Ka(a,b,c){for(var d=0;d<a.length;++d)u[b++>>0]=a.charCodeAt(d);c||(u[b>>0]=0)}f.writeAsciiToMemory=Ka;Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(a,b){var c=a&65535,d=b&65535;return c*d+((a>>>16)*d+c*(b>>>16)<<16)|0});Math.De=Math.imul;Math.clz32||(Math.clz32=function(a){a=a>>>0;for(var b=0;32>b;b++)if(a&1<<31-b)return b;return 32});Math.ue=Math.clz32;var Aa=Math.abs,ib=Math.cos,jb=Math.sin,kb=Math.tan,lb=Math.acos,mb=Math.asin,nb=Math.atan,ob=Math.atan2,pb=Math.exp,qb=Math.log,rb=Math.sqrt,Da=Math.ceil,Ca=Math.floor,sb=Math.pow,Ba=Math.min,tb=0,ub=null,vb=null;function wb(){tb++;f.monitorRunDependencies&&f.monitorRunDependencies(tb)}f.addRunDependency=wb;function xb(){tb--;f.monitorRunDependencies&&f.monitorRunDependencies(tb);if(0==tb&&(null!==ub&&(clearInterval(ub),ub=null),vb)){var a=vb;vb=null;a()}}f.removeRunDependency=xb;f.preloadedImages={};f.preloadedAudios={};Va=8;ma=Va+50112;cb.push();z([1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,254,255,255,127,0,0,0,0,128,0,0,0,244,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,100,0,0,0,0,0,0,0,0,0,0,0,250,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,146,67,0,0,1,0,1,0,130,0,0,0,151,67,0,0,1,0,1,0,131,0,0,0,156,67,0,0,1,0,1,0,132,0,0,0,161,67,0,0,2,0,1,0,133,0,0,0,166,67,0,0,2,0,1,0,133,0,0,0,172,67,0,0,1,0,1,0,134,0,0,0,178,67,0,0,1,0,1,0,135,0,0,0,184,67,0,0,1,0,1,0,136,0,0,0,190,67,0,0,2,0,1,0,137,0,0,0,201,67,0,0,1,0,1,0,138,0,0,0,209,67,0,0,1,0,1,0,139,0,0,0,217,67,0,0,1,0,1,0,140,0,0,0,221,67,0,0,1,0,1,0,141,0,0,0,225,67,0,0,1,0,1,0,142,0,0,0,229,67,0,0,1,0,1,0,143,0,0,0,233,67,0,0,1,0,1,0,144,0,0,0,238,67,0,0,1,0,1,0,145,0,0,0,243,67,0,0,1,0,1,0,146,0,0,0,248,67,0,0,1,0,1,0,147,0,0,0,253,67,0,0,1,0,1,0,148,0,0,0,232,101,0,0,1,0,1,0,149,0,0,0,1,68,0,0,1,0,1,0,150,0,0,0,7,68,0,0,2,0,1,0,151,0,0,0,13,68,0,0,1,0,1,0,152,0,0,0,18,68,0,0,1,0,1,0,153,0,0,0,23,68,0,0,1,0,1,0,154,0,0,0,30,68,0,0,1,0,1,0,155,0,0,0,35,68,0,0,1,0,1,0,156,0,0,0,41,68,0,0,0,0,1,1,157,0,0,0,44,68,0,0,2,0,1,0,158,0,0,0,54,68,0,0,2,0,1,0,159,0,0,0,54,68,0,0,3,0,1,0,159,0,0,0,64,68,0,0,2,0,1,0,160,0,0,0,72,68,0,0,2,0,1,0,161,0,0,0,81,68,0,0,1,0,1,0,162,0,0,0,89,68,0,0,1,0,1,0,163,0,0,0,96,68,0,0,2,0,1,0,164,0,0,0,101,68,0,0,2,0,1,0,165,0,0,0,106,68,0,0,2,0,1,0,166,0,0,0,111,68,0,0,2,0,1,0,167,0,0,0,121,68,0,0,1,0,0,0,168,0,0,0,130,0,0,0,127,68,0,0,1,0,0,0,168,0,0,0,131,0,0,0,76,105,0,0,1,0,0,0,169,0,0,0,132,0,0,0,136,68,0,0,1,0,0,0,169,0,0,0,133,0,0,0,143,68,0,0,1,0,0,0,169,0,0,0,134,0,0,0,158,68,0,0,1,0,0,0,169,0,0,0,135,0,0,0,0,0,0,0,128,48,0,0,128,32,14,0,128,32,200,3,0,0,0,0,128,255,255,255,0,248,255,255,0,0,255,255,1,0,0,0,0,0,0,0,223,183,0,0,235,183,0,0,247,183,0,0,15,184,0,0,26,184,0,0,46,184,0,0,60,184,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,44,0,0,0,0,2,0,0,0,0,0,0,184,177,0,0,12,28,0,0,130,0,0,0,130,0,0,0,130,0,0,0,131,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,131,0,0,0,130,0,0,0,131,0,0,0,132,0,0,0,132,0,0,0,133,0,0,0,133,0,0,0,134,0,0,0,3,0,0,0,44,0,0,0,0,2,0,0,0,0,0,0,189,177,0,0,16,28,0,0,130,0,0,0,130,0,0,0,130,0,0,0,131,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,131,0,0,0,130,0,0,0,131,0,0,0,132,0,0,0,132,0,0,0,133,0,0,0,133,0,0,0,134,0,0,0,3,0,0,0,44,0,0,0,0,2,0,0,0,0,0,0,199,177,0,0,20,28,0,0,130,0,0,0,130,0,0,0,130,0,0,0,131,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,131,0,0,0,130,0,0,0,131,0,0,0,132,0,0,0,132,0,0,0,133,0,0,0,133,0,0,0,134,0,0,0,3,0,0,0,44,0,0,0,0,2,0,0,0,0,0,0,212,177,0,0,12,28,0,0,130,0,0,0,130,0,0,0,130,0,0,0,131,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,131,0,0,0,130,0,0,0,131,0,0,0,132,0,0,0,132,0,0,0,133,0,0,0,133,0,0,0,134,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,202,154,59,0,202,154,59,208,7,0,0,232,3,0,0,244,1,0,0,168,97,0,0,127,0,0,0,10,0,0,0,80,195,0,0,231,3,0,0,232,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,130,0,0,0,131,0,0,0,135,0,0,0,130,0,0,0,131,0,0,0,136,0,0,0,132,0,0,0,131,0,0,0,133,0,0,0,134,0,0,0,134,0,0,0,137,0,0,0,132,0,0,0,135,0,0,0,136,0,0,0,137,0,0,0,138,0,0,0,132,0,0,0,138,0,0,0,139,0,0,0,140,0,0,0,141,0,0,0,0,0,0,0,132,0,0,0,132,0,0,0,142,0,0,0,139,0,0,0,139,0,0,0,143,0,0,0,140,0,0,0,133,0,0,0,141,0,0,0,142,0,0,0,135,0,0,0,144,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,233,84,0,0,21,85,0,0,89,85,0,0,117,85,0,0,146,85,0,0,173,85,0,0,201,85,0,0,226,85,0,0,250,85,0,0,59,86,0,0,118,86,0,0,186,86,0,0,234,86,0,0,90,87,0,0,225,87,0,0,21,88,0,0,87,88,0,0,130,88,0,0,189,88,0,0,228,88,0,0,16,89,0,0,57,89,0,0,104,89,0,0,146,89,0,0,66,75,0,0,66,75,0,0,184,89,0,0,239,89,0,0,44,90,0,0,149,90,0,0,252,90,0,0,51,91,0,0,109,91,0,0,216,91,0,0,39,92,0,0,104,92,0,0,164,92,0,0,212,92,0,0,62,93,0,0,135,93,0,0,99,83,0,0,170,0,0,0,107,83,0,0,171,0,0,0,125,83,0,0,172,0,0,0,115,83,0,0,173,0,0,0,79,96,0,0,2,0,4,0,82,96,0,0,3,1,3,0,86,96,0,0,3,1,2,0,90,96,0,0,4,0,1,0,115,83,0,0,9,0,0,0,59,100,0,0,6,0,0,0,178,97,0,0,8,0,0,0,187,97,0,0,10,0,0,0,66,100,0,0,5,0,0,0,116,97,0,0,7,0,0,0,72,100,0,0,10,0,0,0,83,100,0,0,10,0,0,0,0,0,0,0,136,0,0,0,143,0,0,0,133,0,0,0,144,0,0,0,133,0,0,0,0,0,0,0,0,0,0,0,137,0,0,0,145,0,0,0,134,0,0,0,146,0,0,0,134,0,0,0,0,0,0,0,0,0,0,0,135,0,0,0,135,0,0,0,145,0,0,0,147,0,0,0,147,0,0,0,146,0,0,0,148,0,0,0,134,0,0,0,149,0,0,0,150,0,0,0,138,0,0,0,147,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,139,0,0,0,151,0,0,0,135,0,0,0,152,0,0,0,136,0,0,0,0,0,0,0,255,255,255,255,255,255,0,252,1,0,0,248,1,0,0,248,48,0,0,0,7,232,0,0,6,108,1,0,47,236,1,0,7,172,2,0,1,208,2,0,3,216,2,0,1,236,2,0,1,252,2,0,1,92,3,0,1,220,3,0,4,8,11,0,14,72,11,0,7,148,11,0,1,180,11,0,129,188,11,0,1,212,13,0,1,248,13,0,2,16,14,0,1,28,14,0,1,216,15,0,8,8,18,0,6,104,21,0,2,36,22,0,1,60,22,0,55,68,22,0,2,204,23,0,5,0,24,0,22,24,24,0,2,120,24,0,21,44,25,0,4,168,25,0,1,192,25,0,1,80,27,0,15,88,27,0,7,156,27,0,2,244,27,0,14,0,28,0,1,60,28,0,1,68,28,0,27,192,28,0,11,152,30,0,9,172,31,0,4,216,31,0,4,88,32,0,9,108,32,0,3,148,32,0,5,164,32,0,15,192,32,0,3,100,33,0,1,120,33,0,27,144,35,0,4,0,36,0,3,232,36,0,18,248,36,0,7,68,37,0,4,136,37,0,1,192,37,0,3,4,38,0,1,240,38,0,7,248,38,0,2,28,39,0,3,44,39,0,1,92,39,0,2,136,39,0,2,200,39,0,2,232,39,0,3,4,40,0,1,240,40,0,5,248,40,0,2,28,41,0,3,44,41,0,1,68,41,0,2,192,41,0,1,212,41,0,3,4,42,0,1,240,42,0,8,248,42,0,3,28,43,0,3,44,43,0,2,136,43,0,2,192,43,0,3,4,44,0,1,240,44,0,7,248,44,0,2,28,45,0,3,44,45,0,2,88,45,0,2,136,45,0,1,192,45,0,1,8,46,0,5,248,46,0,3,24,47,0,4,40,47,0,1,92,47,0,8,204,47,0,3,4,48,0,7,248,48,0,3,24,49,0,4,40,49,0,2,84,49,0,2,136,49,0,1,252,49,0,2,8,50,0,1,240,50,0,7,248,50,0,3,24,51,0,4,40,51,0,2,84,51,0,2,136,51,0,2,8,52,0,7,248,52,0,3,24,53,0,4,40,53,0,1,92,53,0,2,136,53,0,1,228,53,0,2,8,54,0,1,40,55,0,6,60,55,0,1,88,55,0,8,96,55,0,3,200,55,0,1,196,56,0,7,208,56,0,1,252,56,0,9,28,57,0,2,104,57,0,1,196,58,0,6,208,58,0,2,236,58,0,6,32,59,0,31,4,60,0,12,208,60,0,23,196,61,0,11,52,62,0,36,100,62,0,15,248,62,0,13,56,63,0,20,172,64,0,6,40,65,0,4,88,65,0,3,120,65,0,3,136,65,0,7,156,65,0,4,196,65,0,12,8,66,0,1,60,66,0,6,104,66,0,1,236,67,0,12,116,77,0,10,64,78,0,1,0,80,0,2,180,89,0,1,0,90,0,2,108,90,0,3,172,91,0,3,72,92,0,5,200,92,0,2,72,93,0,2,200,93,0,35,208,94,0,4,96,95,0,1,116,95,0,15,0,96,0,1,164,98,0,12,128,100,0,12,192,100,0,1,0,101,0,2,16,101,0,17,192,102,0,2,32,103,0,34,120,103,0,5,92,104,0,2,120,104,0,10,84,105,0,29,128,105,0,1,252,105,0,7,128,106,0,6,160,106,0,5,0,108,0,17,208,108,0,35,104,109,0,3,0,110,0,13,132,110,0,14,152,111,0,4,240,111,0,20,144,112,0,5,236,112,0,2,248,113,0,8,0,115,0,25,64,115,0,1,180,115,0,3,200,115,0,39,0,119,0,4,240,119,0,1,244,126,0,3,252,126,0,3,52,127,0,3,116,127,0,3,180,127,0,2,244,127,0,101,0,128,0,6,168,129,0,5,232,129,0,5,40,130,0,26,128,130,0,33,64,131,0,2,0,132,0,4,12,132,0,2,32,132,0,1,80,132,0,3,88,132,0,6,120,132,0,1,148,132,0,1,156,132,0,1,164,132,0,1,184,132,0,2,232,132,0,5,0,133,0,4,40,133,0,1,60,133,0,100,66,134,0,39,0,144,0,11,0,145,0,78,112,146,0,0,2,148,0,117,4,156,0,185,83,158,0,10,64,173,0,6,148,179,0,3,188,179,0,4,228,179,0,2,248,179,0,1,192,181,0,1,252,181,0,79,128,183,0,12,192,184,0,26,0,186,0,89,108,186,0,214,0,188,0,12,192,191,0,5,0,192,0,25,32,192,0,7,168,192,0,2,216,192,0,3,244,192,0,4,100,194,0,1,128,194,0,1,236,195,0,2,64,198,0,10,88,198,0,36,0,199,0,31,0,200,0,30,168,200,0,1,64,201,0,32,128,201,0,39,40,202,0,63,0,203,0,0,1,204,0,64,0,55,1,55,64,146,2,2,248,147,2,3,52,152,2,16,188,153,2,1,124,154,2,8,192,155,2,23,0,156,2,2,128,156,2,2,36,158,2,1,8,160,2,1,24,160,2,1,44,160,2,9,140,160,2,4,216,160,2,4,208,161,2,2,0,162,2,17,208,162,2,2,56,163,2,18,128,163,2,3,224,163,2,10,152,164,2,13,28,165,2,1,124,165,2,4,0,166,2,27,204,166,2,2,120,167,2,14,164,168,2,1,12,169,2,2,48,169,2,4,112,169,2,3,220,169,2,1,236,169,2,1,192,170,2,3,200,170,2,2,220,170,2,2,248,170,2,1,4,171,2,2,120,171,2,7,172,171,2,2,212,171,2,11,140,175,2,1,0,96,3,2,252,109,3,2,252,111,3,1,252,127,3,1,120,236,3,1,164,236,3,16,200,238,3,2,248,244,3,2,240,247,3,26,0,248,3,7,128,248,3,35,192,248,3,19,80,249,3,4,160,249,3,1,252,251,3,15,4,252,3,7,104,252,3,6,236,252,3,11,108,253,3,7,128,255,3,7,160,255,3,5,228,255,3,3,0,4,4,9,220,4,4,17,228,5,4,12,64,6,4,46,64,7,4,1,124,14,4,1,64,15,4,1,92,33,4,1,124,36,4,1,252,36,4,3,4,40,4,2,20,40,4,4,48,40,4,3,224,40,4,1,252,40,4,9,64,41,4,1,252,41,4,7,228,44,4,3,0,64,4,22,224,64,4,3,0,66,4,18,192,66,4,3,0,68,4,14,156,68,4,4,0,69,4,3,0,70,4,14,204,70,4,4,20,71,4,13,172,90,4,4,192,145,4,46,68,189,5,4,60,190,5,246,0,64,7,39,0,68,7,181,164,68,7,70,0,72,7,87,0,76,7,1,4,91,7,1,108,91,7,1,236,91,7,1,84,92,7,1,212,92,7,1,60,93,7,1,188,93,7,1,36,94,7,1,164,94,7,1,12,95,7,2,192,187,7,44,0,192,7,100,192,192,7,15,128,194,7,14,196,194,7,15,4,195,7,15,68,195,7,31,64,196,7,60,192,196,7,43,192,197,7,29,152,199,7,43,64,200,7,9,0,201,7,2,64,201,7,33,0,204,7,6,192,204,7,70,220,204,7,20,0,206,7,37,128,206,7,5,24,207,7,17,128,207,7,63,0,208,7,1,0,209,7,182,8,209,7,4,228,211,7,62,0,212,7,4,0,213,7,24,64,213,7,70,236,215,7,11,20,217,7,70,0,218,7,116,0,220,7,1,4,0,56,96,128,0,56,240,0,4,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,153,0,0,0,135,0,0,0,136,0,0,0,140,0,0,0,148,0,0,0,149,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,165,105,0,0,0,0,2,0,172,105,0,0,0,0,4,0,0,0,0,0,0,0,0,0,148,105,0,0,1,0,0,0,151,105,0,0,2,0,0,0,154,105,0,0,6,0,0,0,158,105,0,0,128,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,154,0,0,0,136,0,0,0,141,0,0,0,130,0,0,0,155,0,0,0,142,0,0,0,174,0,0,0,130,0,0,0,131,0,0,0,137,0,0,0,138,0,0,0,156,0,0,0,139,0,0,0,150,0,0,0,157,0,0,0,158,0,0,0,159,0,0,0,140,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,189,136,0,0,1,0,0,0,66,81,0,0,1,0,0,0,2,0,1,0,0,0,0,0,0,0,0,0,175,0,0,0,0,0,0,0,32,124,0,0,0,0,0,0,0,0,0,0,2,0,1,0,0,0,0,0,0,0,0,0,176,0,0,0,0,0,0,0,22,124,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,177,0,0,0,0,0,0,0,2,124,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,35,82,0,0,95,124,0,0,108,124,0,0,0,0,0,0,121,124,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,178,0,0,0,0,0,0,0,115,125,0,0,0,0,0,0,0,0,0,0,3,0,1,0,0,0,0,0,0,0,0,0,179,0,0,0,0,0,0,0,240,125,0,0,0,0,0,0,0,0,0,0,67,133,0,0,0,0,0,0,8,0,0,0,35,129,0,0,1,1,0,0,0,0,0,0,82,133,0,0,2,0,0,0,0,0,16,0,98,133,0,0,3,0,0,0,0,0,0,0,158,128,0,0,4,1,0,0,0,0,0,0,67,129,0,0,5,0,0,0,0,0,0,0,111,133,0,0,6,0,0,0,0,0,0,0,131,133,0,0,2,0,0,0,0,0,0,16,147,133,0,0,2,0,0,0,16,0,0,0,168,133,0,0,7,0,0,0,0,0,0,0,183,133,0,0,8,0,0,0,0,0,0,0,199,133,0,0,2,0,0,0,128,0,0,0,213,133,0,0,0,2,0,0,15,0,0,0,226,133,0,0,10,1,0,0,0,0,0,0,240,133,0,0,11,1,0,0,0,0,0,0,3,134,0,0,2,0,0,0,0,0,0,1,22,134,0,0,2,0,0,0,0,1,0,0,170,130,0,0,12,0,0,0,0,0,0,0,45,134,0,0,13,1,0,0,0,0,0,0,63,134,0,0,14,1,0,0,0,0,0,0,80,134,0,0,2,0,0,0,0,0,8,0,93,134,0,0,0,2,0,0,0,0,0,0,108,134,0,0,2,0,0,0,4,0,0,0,126,134,0,0,2,0,0,0,8,0,0,0,136,134,0,0,2,0,0,0,0,32,0,0,161,134,0,0,15,1,0,0,0,0,0,0,180,134,0,0,16,1,0,0,0,0,0,0,191,134,0,0,17,1,0,0,0,0,0,0,202,134,0,0,16,1,0,0,1,0,0,0,9,130,0,0,18,1,0,0,0,0,0,0,3,129,0,0,19,1,0,0,0,0,0,0,16,129,0,0,20,0,0,0,0,0,0,0,214,134,0,0,2,0,0,0,0,128,0,0,246,128,0,0,22,0,0,0,0,0,0,0,233,134,0,0,23,1,0,0,0,0,0,0,79,129,0,0,24,0,0,0,0,0,0,0,248,134,0,0,23,1,0,0,0,0,0,0,205,128,0,0,25,0,0,0,0,0,0,0,3,135,0,0,2,0,0,0,0,0,0,2,14,135,0,0,18,1,0,0,0,0,0,0,26,135,0,0,2,0,0,0,0,64,0,0,43,135,0,0,2,0,0,0,0,0,4,0,62,135,0,0,2,0,0,0,0,0,2,0,88,135,0,0,0,0,0,0,1,0,0,0,215,128,0,0,26,0,0,0,0,0,0,0,103,135,0,0,2,0,0,0,64,0,0,0,122,135,0,0,27,0,0,0,0,0,0,0,32,131,0,0,28,0,0,0,0,0,0,0,136,135,0,0,29,1,0,0,0,0,0,0,146,129,0,0,30,1,0,0,0,0,0,0,142,135,0,0,31,1,0,0,0,0,0,0,89,129,0,0,32,0,0,0,0,0,0,0,100,129,0,0,33,0,0,0,0,0,0,0,48,131,0,0,34,0,0,0,0,0,0,0,153,135,0,0,0,0,0,0,6,0,0,0,5,131,0,0,35,0,0,0,0,0,0,0,166,135,0,0,36,1,0,0,0,0,0,0,181,135,0,0,2,0,0,0,0,8,1,0,165,132,0,0,120,132,0,0,197,132,0,0,202,132,0,0,210,132,0,0,134,132,0,0,13,132,0,0,178,132,0,0,184,132,0,0,190,132,0,0,159,132,0,0,165,132,0,0,120,132,0,0,88,97,0,0,169,132,0,0,174,132,0,0,82,132,0,0,120,132,0,0,137,132,0,0,144,132,0,0,151,132,0,0,130,132,0,0,132,132,0,0,134,132,0,0,82,132,0,0,120,132,0,0,125,132,0,0,82,132,0,0,120,132,0,0,79,132,0,0,82,132,0,0,13,132,0,0,86,132,0,0,91,132,0,0,94,132,0,0,104,132,0,0,114,132,0,0,13,132,0,0,248,99,0,0,19,132,0,0,26,132,0,0,74,131,0,0,1,0,0,0,79,131,0,0,1,0,0,0,85,131,0,0,2,0,0,0,94,131,0,0,3,0,0,0,103,131,0,0,2,0,0,0,111,131,0,0,3,0,0,0,119,131,0,0,0,0,0,0,126,131,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,131,0,0,232,101,0,0,61,131,0,0,44,133,0,0,51,133,0,0,59,133,0,0,252,130,0,0,158,105,0,0,63,133,0,0,114,132,0,0,64,0,0,0,141,131,0,0,66,0,0,0,136,131,0,0,65,0,0,0,113,139,0,0,67,0,0,0,79,120,0,0,3,0,0,0,75,120,0,0,3,0,0,0,66,75,0,0,150,149,0,0,156,149,0,0,161,149,0,0,166,149,0,0,26,150,0,0,32,150,0,0,40,150,0,0,255,157,0,0,4,158,0,0,11,158,0,0,14,158,0,0,17,158,0,0,20,158,0,0,23,158,0,0,26,158,0,0,34,158,0,0,66,100,0,0,86,132,0,0,43,158,0,0,62,169,0,0,71,169,0,0,78,169,0,0,84,169,0,0,167,169,0,0,177,169,0,0,188,169,0,0,200,169,0,0,211,169,0,0,222,169,0,0,233,169,0,0,238,169,0,0,243,169,0,0,254,169,0,0,10,170,0,0,17,170,0,0,25,170,0,0,33,170,0,0,38,170,0,0,44,170,0,0,51,170,0,0,65,170,0,0,78,170,0,0,84,170,0,0,88,170,0,0,99,170,0,0,104,170,0,0,112,170,0,0,118,170,0,0,125,170,0,0,130,170,0,0,139,170,0,0,144,170,0,0,153,170,0,0,158,170,0,0,163,170,0,0,169,170,0,0,177,170,0,0,187,170,0,0,195,170,0,0,205,170,0,0,214,170,0,0,221,170,0,0,231,170,0,0,244,170,0,0,249,170,0,0,5,171,0,0,13,171,0,0,18,171,0,0,23,171,0,0,26,171,0,0,32,171,0,0,39,171,0,0,48,171,0,0,59,171,0,0,65,171,0,0,76,171,0,0,86,171,0,0,96,171,0,0,105,171,0,0,115,171,0,0,129,171,0,0,143,171,0,0,154,171,0,0,167,171,0,0,178,171,0,0,184,171,0,0,196,171,0,0,203,171,0,0,210,171,0,0,217,171,0,0,224,171,0,0,235,171,0,0,244,171,0,0,250,171,0,0,4,172,0,0,7,172,0,0,11,172,0,0,20,172,0,0,29,172,0,0,36,172,0,0,43,172,0,0,51,172,0,0,54,172,0,0,57,172,0,0,60,172,0,0,63,172,0,0,66,172,0,0,69,172,0,0,79,172,0,0,86,172,0,0,92,172,0,0,102,172,0,0,113,172,0,0,117,172,0,0,126,172,0,0,135,172,0,0,142,172,0,0,152,172,0,0,159,172,0,0,166,172,0,0,173,172,0,0,181,172,0,0,192,172,0,0,206,172,0,0,217,172,0,0,224,172,0,0,232,172,0,0,238,172,0,0,246,172,0,0,251,172,0,0,6,173,0,0,11,173,0,0,18,173,0,0,31,173,0,0,41,173,0,0,51,173,0,0,56,173,0,0,65,173,0,0,71,173,0,0,77,173,0,0,83,173,0,0,89,173,0,0,97,173,0,0,103,173,0,0,115,173,0,0,127,173,0,0,139,173,0,0,151,173,0,0,164,173,0,0,174,173,0,0,184,173,0,0,196,173,0,0,208,173,0,0,218,173,0,0,229,173,0,0,240,173,0,0,248,173,0,0,253,173,0,0,3,174,0,0,13,174,0,0,22,174,0,0,29,174,0,0,35,174,0,0,47,174,0,0,57,174,0,0,70,174,0,0,83,174,0,0,92,174,0,0,100,174,0,0,109,174,0,0,120,174,0,0,127,174,0,0,137,174,0,0,144,174,0,0,152,174,0,0,161,174,0,0,167,174,0,0,175,174,0,0,181,174,0,0,189,174,0,0,199,174,0,0,208,174,0,0,213,174,0,0,224,174,0,0,229,174,0,0,57,175,0,0,70,175,0,0,0,0,0,0,106,175,0,0,131,175,0,0,162,175,0,0,181,175,0,0,136,126,0,0,206,175,0,0,243,175,0,0,255,175,0,0,14,176,0,0,47,176,0,0,65,176,0,0,90,176,0,0,119,176,0,0,136,176,0,0,96,160,0,0,90,74,0,0,159,176,0,0,177,176,0,0,195,176,0,0,234,176,0,0,9,177,0,0,30,177,0,0,62,177,0,0,96,177,0,0,151,0,0,0,152,0,0,0,153,0,0,0,1,0,0,0,160,0,0,0,137,0,0,0,138,0,0,0,143,0,0,0,154,0,0,0,155,0,0,0,156,0,0,0,157,0,0,0,158,0,0,0,144,0,0,0,161,0,0,0,162,0,0,0,0,0,0,0,136,0,0,0,141,0,0,0,159,0,0,0,139,0,0,0,137,0,0,0,3,178,0,0,145,0,0,0,0,0,0,0,222,177,0,0,163,0,0,0,0,0,0,0,81,105,0,0,160,0,0,0,0,0,0,0,8,178,0,0,161,0,0,0,0,0,0,0,15,178,0,0,162,0,0,0,0,0,0,0,20,178,0,0,163,0,0,0,0,0,0,0,26,178,0,0,164,0,0,0,0,0,0,0,36,178,0,0,146,0,0,0,0,0,0,0,42,178,0,0,147,0,0,0,0,0,0,0,47,178,0,0,0,0,0,0,0,0,0,0,53,178,0,0,0,0,0,0,0,0,0,0,61,178,0,0,148,0,0,0,0,0,0,0,67,178,0,0,0,0,0,0,0,0,0,0,74,178,0,0,0,0,0,0,0,0,0,0,83,178,0,0,165,0,0,0,0,0,0,0,90,178,0,0,0,0,0,0,0,0,0,0,100,178,0,0,164,0,0,0,0,0,0,0,107,178,0,0,166,0,0,0,0,0,0,0,121,178,0,0,167,0,0,0,0,0,0,0,127,178,0,0,165,0,0,0,0,0,0,0,133,178,0,0,149,0,0,0,0,0,0,0,140,178,0,0,130,0,0,0,0,0,0,0,148,178,0,0,137,0,0,0,0,0,0,0,153,178,0,0,168,0,0,0,0,0,0,0,160,178,0,0,0,0,0,0,0,0,0,0,167,178,0,0,131,0,0,0,0,0,0,0,179,178,0,0,150,0,0,0,0,0,0,0,188,178,0,0,169,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,29,179,0,0,38,179,0,0,47,179,0,0,52,179,0,0,3,0,0,0,166,0,0,0,137,0,0,0,138,0,0,0,143,0,0,0,154,0,0,0,155,0,0,0,170,0,0,0,171,0,0,0,172,0,0,0,144,0,0,0,161,0,0,0,162,0,0,0,0,0,0,0,136,0,0,0,141,0,0,0,159,0,0,0,139,0,0,0,137,0,0,0,0,0,0,0,3,0,0,0,167,0,0,0,137,0,0,0,138,0,0,0,143,0,0,0,154,0,0,0,155,0,0,0,173,0,0,0,174,0,0,0,175,0,0,0,144,0,0,0,161,0,0,0,162,0,0,0,140,0,0,0,136,0,0,0,141,0,0,0,159,0,0,0,139,0,0,0,137,0,0,0,0,0,0,0,1,0,1,8,1,0,0,0,0,0,0,0,180,0,0,0,0,0,0,0,46,182,0,0,0,0,0,0,0,0,0,0,2,0,1,8,1,0,0,0,0,0,0,0,180,0,0,0,0,0,0,0,46,182,0,0,0,0,0,0,0,0,0,0,1,0,1,8,2,0,0,0,0,0,0,0,180,0,0,0,0,0,0,0,52,182,0,0,0,0,0,0,0,0,0,0,2,0,1,8,2,0,0,0,0,0,0,0,180,0,0,0,0,0,0,0,52,182,0,0,0,0,0,0,0,0,0,0,1,0,1,8,3,0,0,0,0,0,0,0,180,0,0,0,0,0,0,0,58,182,0,0,0,0,0,0,0,0,0,0,2,0,1,8,3,0,0,0,0,0,0,0,180,0,0,0,0,0,0,0,58,182,0,0,0,0,0,0,0,0,0,0,255,255,33,8,0,0,0,0,0,0,0,0,181,0,0,0,0,0,0,0,181,142,0,0,0,0,0,0,0,0,0,0,0,0,33,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,181,142,0,0,0,0,0,0,0,0,0,0,1,0,33,16,0,0,0,0,0,0,0,0,182,0,0,0,142,0,0,0,181,142,0,0,0,0,0,0,0,0,0,0,255,255,33,8,1,0,0,0,0,0,0,0,181,0,0,0,0,0,0,0,185,142,0,0,0,0,0,0,0,0,0,0,0,0,33,8,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,185,142,0,0,0,0,0,0,0,0,0,0,1,0,33,16,1,0,0,0,0,0,0,0,182,0,0,0,142,0,0,0,185,142,0,0,0,0,0,0,0,0,0,0,1,0,129,8,0,0,0,0,0,0,0,0,183,0,0,0,0,0,0,0,63,182,0,0,0,0,0,0,0,0,0,0,1,0,65,8,0,0,0,0,0,0,0,0,184,0,0,0,0,0,0,0,70,182,0,0,0,0,0,0,0,0,0,0,2,0,1,8,0,0,0,0,0,0,0,0,185,0,0,0,0,0,0,0,77,182,0,0,0,0,0,0,0,0,0,0,2,0,1,8,0,0,0,0,0,0,0,0,186,0,0,0,0,0,0,0,83,182,0,0,0,0,0,0,0,0,0,0,3,0,1,8,0,0,0,0,0,0,0,0,186,0,0,0,0,0,0,0,83,182,0,0,0,0,0,0,0,0,0,0,255,255,1,8,0,0,0,0,0,0,0,0,187,0,0,0,0,0,0,0,90,182,0,0,0,0,0,0,0,0,0,0,1,0,1,8,0,0,0,0,0,0,0,0,188,0,0,0,0,0,0,0,97,182,0,0,0,0,0,0,0,0,0,0,255,255,1,8,0,0,0,0,0,0,0,0,189,0,0,0,0,0,0,0,105,182,0,0,0,0,0,0,0,0,0,0,1,0,1,8,0,0,0,0,0,0,0,0,190,0,0,0,0,0,0,0,110,182,0,0,0,0,0,0,0,0,0,0,1,0,1,8,0,0,0,0,0,0,0,0,191,0,0,0,0,0,0,0,114,182,0,0,0,0,0,0,0,0,0,0,2,0,1,8,0,0,0,0,0,0,0,0,191,0,0,0,0,0,0,0,114,182,0,0,0,0,0,0,0,0,0,0,1,0,1,8,0,0,0,0,0,0,0,0,192,0,0,0,0,0,0,0,120,182,0,0,0,0,0,0,0,0,0,0,1,0,1,8,0,0,0,0,0,0,0,0,193,0,0,0,0,0,0,0,126,182,0,0,0,0,0,0,0,0,0,0,1,0,1,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,132,182,0,0,0,0,0,0,0,0,0,0,0,0,1,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,132,182,0,0,0,0,0,0,0,0,0,0,255,255,1,10,0,0,0,0,0,0,0,0,194,0,0,0,0,0,0,0,132,182,0,0,0,0,0,0,0,0,0,0,1,0,1,8,0,0,0,0,0,0,0,0,195,0,0,0,0,0,0,0,141,182,0,0,0,0,0,0,0,0,0,0,2,0,1,10,0,0,0,0,0,0,0,0,194,0,0,0,0,0,0,0,145,182,0,0,0,0,0,0,0,0,0,0,1,0,1,12,0,0,0,0,0,0,0,0,194,0,0,0,0,0,0,0,152,182,0,0,0,0,0,0,0,0,0,0,2,0,1,12,0,0,0,0,0,0,0,0,194,0,0,0,0,0,0,0,161,182,0,0,0,0,0,0,0,0,0,0,1,0,1,12,0,0,0,0,0,0,0,0,194,0,0,0,0,0,0,0,172,182,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,196,0,0,0,0,0,0,0,179,182,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,197,0,0,0,0,0,0,0,186,182,0,0,0,0,0,0,0,0,0,0,2,0,33,8,0,0,0,0,0,0,0,0,198,0,0,0,0,0,0,0,197,182,0,0,0,0,0,0,0,0,0,0,0,0,1,32,0,0,0,0,0,0,0,0,194,0,0,0,0,0,0,0,204,182,0,0,0,0,0,0,0,0,0,0,0,0,1,32,0,0,0,0,0,0,0,0,199,0,0,0,0,0,0,0,219,182,0,0,0,0,0,0,0,0,0,0,2,0,1,8,0,0,0,0,0,0,0,0,200,0,0,0,0,0,0,0,236,182,0,0,0,0,0,0,0,0,0,0,1,0,1,32,0,0,0,0,0,0,0,0,201,0,0,0,0,0,0,0,247,182,0,0,0,0,0,0,0,0,0,0,1,0,1,32,0,0,0,0,0,0,0,0,202,0,0,0,0,0,0,0,17,183,0,0,0,0,0,0,0,0,0,0,1,0,1,8,0,0,0,0,0,0,0,0,203,0,0,0,0,0,0,0,42,183,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,204,0,0,0,0,0,0,0,48,183,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,205,0,0,0,0,0,0,0,66,183,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,206,0,0,0,0,0,0,0,74,183,0,0,0,0,0,0,0,0,0,0,3,0,1,8,0,0,0,0,0,0,0,0,207,0,0,0,0,0,0,0,88,183,0,0,0,0,0,0,0,0,0,0,1,0,1,8,0,0,0,0,0,0,0,0,208,0,0,0,0,0,0,0,96,183,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,209,0,0,0,143,0,0,0,105,183,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,209,0,0,0,144,0,0,0,109,183,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,209,0,0,0,145,0,0,0,115,183,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,210,0,0,0,146,0,0,0,119,183,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,210,0,0,0,146,0,0,0,119,183,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,211,0,0,0,147,0,0,0,125,183,0,0,0,0,0,0,0,0,0,0,2,0,1,0,0,0,0,0,0,0,0,0,211,0,0,0,147,0,0,0,125,183,0,0,0,0,0,0,0,0,0,0,2,0,13,8,58,75,0,0,0,0,0,0,212,0,0,0,0,0,0,0,141,131,0,0,0,0,0,0,0,0,0,0,2,0,5,8,62,75,0,0,0,0,0,0,212,0,0,0,0,0,0,0,136,131,0,0,0,0,0,0,0,0,0,0,3,0,5,8,62,75,0,0,0,0,0,0,212,0,0,0,0,0,0,0,136,131,0,0,0,0,0,0,0,0,0,0,2,0,1,8,0,0,0,0,0,0,0,0,213,0,0,0,0,0,0,0,173,180,0,0,0,0,0,0,0,0,0,0,2,0,1,8,0,0,0,0,0,0,0,0,214,0,0,0,0,0,0,0,193,180,0,0,0,0,0,0,0,0,0,0,3,0,1,8,0,0,0,0,0,0,0,0,215,0,0,0,0,0,0,0,215,180,0,0,0,0,0,0,0,0,0,0,255,255,1,32,0,0,0,0,0,0,0,0,216,0,0,0,0,0,0,0,2,181,0,0,0,0,0,0,0,0,0,0,255,255,1,32,0,0,0,0,0,0,0,0,217,0,0,0,0,0,0,0,12,181,0,0,0,0,0,0,0,0,0,0,255,255,1,32,0,0,0,0,0,0,0,0,218,0,0,0,0,0,0,0,17,181,0,0,0,0,0,0,0,0,0,0,255,255,1,32,0,0,0,0,0,0,0,0,219,0,0,0,0,0,0,0,22,181,0,0,0,0,0,0,0,0,0,0,255,255,1,32,0,0,0,0,0,0,0,0,220,0,0,0,0,0,0,0,31,181,0,0,0,0,0,0,0,0,0,0,0,0,1,32,0,0,0,0,0,0,0,0,221,0,0,0,0,0,0,0,40,181,0,0,0,0,0,0,0,0,0,0,0,0,1,32,0,0,0,0,0,0,0,0,222,0,0,0,0,0,0,0,53,181,0,0,0,0,0,0,0,0,0,0,0,0,1,32,0,0,0,0,0,0,0,0,223,0,0,0,0,0,0,0,71,181,0,0,0,0,0,0,0,0,0,0,158,141,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36,39,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,168,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,151,0,0,0,152,0,0,0,196,191,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255],"i8",4,l.aa);
  31. z([2,0,2,0,8,0,9,0,14,0,16,0,20,0,23,0,25,0,25,0,29,0,33,0,36,0,41,0,46,0,48,0,53,0,54,0,59,0,62,0,65,0,67,0,69,0,78,0,81,0,86,0,91,0,95,0,96,0,101,0,105,0,109,0,117,0,122,0,128,0,136,0,142,0,152,0,159,0,162,0,162,0,165,0,167,0,167,0,171,0,176,0,179,0,184,0,184,0,188,0,192,0,199,0,204,0,209,0,212,0,218,0,221,0,225,0,234,0,240,0,240,0,240,0,243,0,246,0,250,0,251,0,255,0,5,1,9,1,16,1,22,1,34,1,40,1,49,1,51,1,57,1,62,1,64,1,71,1,76,1,81,1,87,1,93,1,98,1,102,1,105,1,111,1,115,1,122,1,124,1,131,1,133,1,135,1,144,1,148,1,154,1,160,1,168,1,173,1,173,1,189,1,196,1,203,1,204,1,211,1,215,1,219,1,223,1,227,1,230,1,232,1,234,1,240,1,244,1,252,1,1,2,9,2,12,2,17,2,22,2,28,2,32,2,37,2,0,0,2,0,3,0,5,0,6,0,7,0,8,0,9,0,33,0,32,0,30,0,28,0,26,0,65,0,14,26,181,0,64,1,192,0,14,23,216,0,14,7,0,1,1,48,50,1,1,6,57,1,1,16,74,1,1,46,120,1,116,1,121,1,1,6,127,1,104,1,129,1,50,1,130,1,1,4,134,1,44,1,135,1,0,1,137,1,42,2,139,1,0,1,142,1,32,1,143,1,38,1,144,1,40,1,145,1,0,1,147,1,42,1,148,1,46,1,150,1,52,1,151,1,48,1,152,1,0,1,156,1,52,1,157,1,54,1,159,1,56,1,160,1,1,6,166,1,60,1,167,1,0,1,169,1,60,1,172,1,0,1,174,1,60,1,175,1,0,1,177,1,58,2,179,1,1,4,183,1,62,1,184,1,0,1,188,1,0,1,196,1,2,1,197,1,0,1,199,1,2,1,200,1,0,1,202,1,2,1,203,1,1,18,222,1,1,18,241,1,2,1,242,1,1,4,246,1,122,1,247,1,134,1,248,1,1,40,32,2,110,1,34,2,1,18,58,2,70,1,59,2,0,1,61,2,108,1,62,2,68,1,65,2,0,1,67,2,106,1,68,2,28,1,69,2,30,1,70,2,1,10,69,3,36,1,112,3,1,4,118,3,0,1,134,3,18,1,136,3,16,3,140,3,26,1,142,3,24,2,145,3,14,17,163,3,14,9,194,3,0,1,207,3,4,1,208,3,140,1,209,3,142,1,213,3,146,1,214,3,144,1,216,3,1,24,240,3,136,1,241,3,138,1,244,3,130,1,245,3,128,1,247,3,0,1,249,3,152,1,250,3,0,1,253,3,110,3,0,4,34,16,16,4,14,32,96,4,1,34,138,4,1,54,192,4,6,1,193,4,1,14,208,4,1,88,49,5,22,38,160,16,66,38,199,16,66,1,205,16,66,1,0,30,1,150,155,30,132,1,158,30,96,1,160,30,1,96,8,31,150,8,24,31,150,6,40,31,150,8,56,31,150,8,72,31,150,6,89,31,151,8,104,31,150,8,136,31,150,8,152,31,150,8,168,31,150,8,184,31,150,2,186,31,126,2,188,31,148,1,190,31,100,1,200,31,124,4,204,31,148,1,216,31,150,2,218,31,120,2,232,31,150,2,234,31,118,2,236,31,152,1,248,31,112,2,250,31,114,2,252,31,148,1,38,33,98,1,42,33,92,1,43,33,94,1,50,33,12,1,96,33,8,16,131,33,0,1,182,36,10,26,0,44,22,47,96,44,0,1,98,44,88,1,99,44,102,1,100,44,90,1,103,44,1,6,109,44,84,1,110,44,86,1,111,44,80,1,112,44,82,1,114,44,0,1,117,44,0,1,126,44,78,2,128,44,1,100,235,44,1,4,242,44,0,1,64,166,1,46,128,166,1,24,34,167,1,14,50,167,1,62,121,167,1,4,125,167,76,1,126,167,1,10,139,167,0,1,141,167,74,1,144,167,1,4,160,167,1,10,170,167,72,1,33,255,14,26,1,0,2,0,8,0,15,0,16,0,26,0,28,0,32,0,37,0,38,0,40,0,48,0,63,0,64,0,69,0,71,0,79,0,80,0,116,0,202,0,203,0,205,0,206,0,207,0,209,0,210,0,211,0,213,0,214,0,217,0,218,0,219,0,7,3,96,28,40,42,43,42,188,90,216,90,252,117,193,213,225,213,226,213,228,213,3,214,9,214,25,214,65,223,186,223,65,226,163,226,251,227,26,241,244,254,61,255,93,255,126,255,128,255,130,255,135,255,144,255,156,255,159,255,170,255,182,255,192,255,196,255,198,255,200,255,202,255,208,255,226,255,231,255,234,255,241,255,247,255,248,255,249,255,0,0,5,7,56,7,67,7,99,7,136,7,148,7,203,7,232,7,248,7,12,8,62,8,120,8,158,8,216,8,238,8,40,9,79,9,168,9,184,9,212,9,36,10,108,10,172,10,222,10,26,11,78,11,138,11,168,11,184,11,212,11,8,13,128,13,112,14,128,14,144,14,160,14,56,15,72,15,88,15,128,15,168,15,200,15,10,16,42,16,74,16,106,16,138,16,170,16,200,16,216,16,248,16,56,17,72,17,120,17,152,17,4,24,54,24,120,24,136,24,216,24,29,25,105,25,129,25,8,240,28,240,94,240,152,240,202,240,248,240,8,241,30,241,88,241,104,241,140,241,184,241,218,241,252,241,46,242,170,242,202,242,248,242,10,243,94,243,156,243,234,243,14,244,72,244,90,244,120,244,140,244,176,244,184,244,192,244,200,244,10,245,204,245,74,246,106,246,42,247,158,247,113,255,186,3,86,0,21,0,206,255,23,0,79,0,134,0,226,0,136,255,129,255,146,0,161,0,35,1,93,1,110,1,55,1,126,1,118,1,231,0,108,1,111,1,140,1,142,1,236,0,61,1,153,255,153,255,153,255,153,255,153,255,153,255,153,255,153,255,153,255,153,255,153,255,153,255,153,255,153,255,153,255,153,255,153,255,153,255,153,255,153,255,153,255,153,255,153,255,153,255,153,255,153,255,153,255,153,255,153,255,204,1,247,1,55,2,57,2,60,2,65,2,68,2,70,2,72,2,75,2,81,2,119,2,132,2,134,2,137,2,143,2,145,2,147,2,149,2,152,2,158,2,196,2,208,2,247,2,3,3,42,3,54,3,93,3,105,3,144,3,162,3,179,3,182,3,189,3,191,3,195,3,198,3,200,3,230,3,237,3,245,3,254,3,1,4,153,255,153,255,153,255,153,255,153,255,153,255,153,255,153,255,153,255,218,1,212,0,15,0,242,1,222,0,255,1,153,255,97,0,45,2,153,255,153,255,153,255,153,255,176,255,9,0,59,0,19,0,38,1,38,1,203,255,194,255,178,2,179,2,223,2,225,2,228,2,232,2,133,0,54,1,148,0,74,1,160,0,124,1,18,3,20,3,145,1,40,1,21,3,221,2,85,0,210,2,214,255,68,1,252,1,16,3,60,3,61,3,62,3,166,2,201,2,151,1,69,0,150,0,194,0,188,0,33,1,45,1,147,1,205,1,229,1,56,2,105,2,161,2,212,2,11,3,24,3,56,3,63,3,69,3,74,3,78,3,80,3,113,3,124,3,132,3,163,3,168,3,190,1,142,3,143,3,176,3,181,3,133,3,187,3,199,3,210,3,155,3,224,3,225,3,188,3,228,3,231,3,242,3,33,1,250,3,9,4,19,4,22,4,25,4,32,4,166,3,205,3,229,3,232,3,234,3,133,3,244,3,251,3,36,4,246,3,236,3,252,3,207,3,0,4,208,3,16,4,11,4,23,4,21,4,253,3,239,3,27,4,29,4,7,4,10,4,59,4,2,4,58,4,60,4,240,3,241,3,65,4,12,4,44,4,35,4,45,4,47,4,48,4,49,4,81,4,87,4,52,4,26,4,56,4,66,4,55,4,91,4,93,4,34,4,24,4,104,4,114,4,116,4,100,4,121,4,124,4,125,4,127,4,107,4,111,4,113,4,117,4,106,4,118,4,119,4,120,4,123,4,110,4,126,4,128,4,82,4,88,4,89,4,92,4,90,4,101,4,99,4,103,4,147,4,151,4,95,4,140,4,96,4,97,4,142,4,122,4,131,4,133,4,136,4,143,4,187,4,190,4,200,4,201,4,208,4,209,4,210,4,211,4,108,4,129,4,109,4,177,4,184,4,204,4,55,1,26,5,145,0,139,2,2,0,192,0,140,2,82,1,12,3,92,0,92,0,92,0,92,0,85,0,90,0,90,0,90,0,90,0,89,0,89,0,88,0,88,0,88,0,87,0,79,1,88,0,88,0,88,0,87,0,79,1,71,1,88,3,88,3,92,0,92,0,92,0,92,0,185,2,90,0,90,0,90,0,90,0,89,0,89,0,88,0,88,0,88,0,87,0,79,1,76,0,39,3,74,0,93,0,94,0,84,0,100,3,103,3,92,3,92,3,91,0,91,0,92,0,92,0,92,0,92,0,79,1,90,0,90,0,90,0,90,0,89,0,89,0,88,0,88,0,88,0,87,0,79,1,55,1,12,3,90,0,90,0,90,0,90,0,89,0,89,0,88,0,88,0,88,0,87,0,79,1,100,1,40,3,8,3,189,2,177,2,177,2,86,0,83,0,166,0,1,1,41,3,203,2,174,1,86,0,83,0,166,0,68,1,185,2,88,3,88,3,201,0,158,0,20,1,131,1,15,1,130,1,188,0,177,2,177,2,60,3,86,0,83,0,166,0,13,1,65,3,49,0,123,0,87,0,79,1,93,0,94,0,84,0,100,3,103,3,92,3,92,3,91,0,91,0,92,0,92,0,92,0,92,0,239,0,90,0,90,0,90,0,90,0,89,0,89,0,88,0,88,0,88,0,87,0,79,1,55,1,251,2,77,1,76,1,216,0,152,1,138,1,69,0,231,0,137,1,178,2,179,2,140,1,142,3,251,0,98,1,250,0,32,1,59,1,174,1,140,3,174,1,141,3,89,0,89,0,88,0,88,0,88,0,87,0,79,1,135,1,88,3,88,3,178,2,179,2,183,0,95,0,123,0,128,1,125,1,124,1,65,3,31,0,65,3,49,0,144,3,144,3,239,2,240,2,123,1,123,0,55,1,93,0,94,0,84,0,100,3,103,3,92,3,92,3,91,0,91,0,92,0,92,0,92,0,92,0,114,0,90,0,90,0,90,0,90,0,89,0,89,0,88,0,88,0,88,0,87,0,79,1,174,1,152,1,143,1,179,1,145,2,88,3,88,3,90,1,57,0,232,0,60,3,109,0,192,2,110,1,177,2,177,2,107,1,57,3,248,2,97,0,237,2,240,2,65,3,49,0,196,2,196,2,93,0,94,0,84,0,100,3,103,3,92,3,92,3,91,0,91,0,92,0,92,0,92,0,92,0,167,1,90,0,90,0,90,0,90,0,89,0,89,0,88,0,88,0,88,0,87,0,79,1,55,1,114,0,22,0,105,1,176,2,58,0,152,1,134,1,251,0,93,1,240,0,213,0,250,2,177,2,177,2,79,3,173,2,115,0,105,1,231,0,137,1,177,2,177,2,140,1,183,0,177,2,177,2,128,1,125,1,124,1,105,1,88,3,88,3,178,2,179,2,160,0,159,0,223,0,123,1,226,2,25,0,38,3,195,2,73,3,143,0,177,2,177,2,67,3,136,1,83,1,254,2,254,2,93,0,94,0,84,0,100,3,103,3,92,3,92,3,91,0,91,0,92,0,92,0,92,0,92,0,146,3,90,0,90,0,90,0,90,0,89,0,89,0,88,0,88,0,88,0,87,0,79,1,55,1,72,3,72,3,72,3,10,1,1,1,178,2,179,2,10,3,194,2,86,0,83,0,166,0,219,0,178,2,179,2,225,2,1,0,178,2,179,2,177,2,177,2,177,2,177,2,174,1,86,0,83,0,166,0,249,0,176,2,169,3,88,3,88,3,171,1,187,2,188,2,60,3,42,1,178,2,179,2,221,0,174,2,115,0,123,0,176,3,27,3,65,3,48,0,86,1,49,1,202,3,79,3,93,0,94,0,84,0,100,3,103,3,92,3,92,3,91,0,91,0,92,0,92,0,92,0,92,0,114,0,90,0,90,0,90,0,90,0,89,0,89,0,88,0,88,0,88,0,87,0,79,1,55,1,172,3,73,3,167,2,201,2,173,1,67,3,174,1,251,0,98,1,250,0,99,1,32,1,178,2,179,2,178,2,179,2,29,1,173,3,84,1,203,3,31,1,210,0,23,0,174,0,25,3,64,3,174,1,97,1,65,3,10,0,88,3,88,3,24,0,174,3,151,0,241,2,72,3,72,3,72,3,26,3,200,3,10,5,65,1,142,1,10,5,100,1,96,1,242,2,65,3,49,0,167,3,93,0,94,0,84,0,100,3,103,3,92,3,92,3,91,0,91,0,92,0,92,0,92,0,92,0,174,1,90,0,90,0,90,0,90,0,89,0,89,0,88,0,88,0,88,0,87,0,79,1,55,1,120,1,114,0,139,3,193,2,174,1,139,3,72,1,122,3,114,0,65,3,10,0,198,3,174,1,89,3,89,3,64,1,189,0,163,0,64,3,165,0,174,1,138,3,88,1,67,1,138,3,136,3,65,3,10,0,197,3,50,1,88,3,88,3,187,0,163,1,65,3,10,0,220,0,101,3,104,3,64,3,222,0,147,1,65,3,49,0,195,4,25,3,68,0,169,3,150,1,245,0,66,0,93,0,94,0,84,0,100,3,103,3,92,3,92,3,91,0,91,0,92,0,92,0,92,0,92,0,93,3,90,0,90,0,90,0,90,0,89,0,89,0,88,0,88,0,88,0,87,0,79,1,55,1,148,1,213,0,250,2,66,3,89,1,114,0,172,3,134,3,112,1,215,2,5,0,60,1,192,0,140,1,4,3,12,3,13,1,230,0,242,0,3,3,244,0,141,1,164,0,173,3,129,1,123,0,91,1,55,0,99,1,73,1,88,3,88,3,216,2,77,1,76,1,176,2,200,3,11,5,212,2,174,3,11,5,157,1,214,0,65,3,9,0,106,1,30,1,187,3,115,0,206,2,55,1,93,0,94,0,84,0,100,3,103,3,92,3,92,3,91,0,91,0,92,0,92,0,92,0,92,0,174,1,90,0,90,0,90,0,90,0,89,0,89,0,88,0,88,0,88,0,87,0,79,1,144,3,144,3,20,5,20,5,246,2,88,3,88,3,69,1,198,3,12,3,65,3,35,0,235,2,208,2,78,1,187,2,188,2,209,3,140,2,82,1,243,0,233,2,152,3,152,3,113,1,187,0,93,0,94,0,84,0,100,3,103,3,92,3,92,3,91,0,91,0,92,0,92,0,92,0,92,0,114,0,90,0,90,0,90,0,90,0,89,0,89,0,88,0,88,0,88,0,87,0,79,1,55,1,174,1,186,3,174,1,112,0,54,1,174,1,181,2,61,1,186,2,144,1,174,1,25,3,103,1,174,1,249,3,174,1,192,0,174,1,145,1,12,3,174,1,104,1,65,3,36,0,65,3,12,0,174,1,65,3,27,0,60,1,88,3,88,3,65,3,37,0,20,0,65,3,38,0,65,3,39,0,65,3,28,0,72,0,65,3,29,0,151,2,152,2,153,2,8,1,65,3,40,0,234,0,93,0,94,0,84,0,100,3,103,3,92,3,92,3,91,0,91,0,92,0,92,0,92,0,92,0,174,1,90,0,90,0,90,0,90,0,89,0,89,0,88,0,88,0,88,0,87,0,79,1,55,1,174,1,186,2,174,1,149,3,147,0,174,1,165,0,148,3,19,1,65,3,41,0,174,1,12,3,174,1,21,0,174,1,3,1,174,1,6,1,18,1,174,1,111,1,65,3,42,0,65,3,11,0,174,1,65,3,43,0,235,0,88,3,88,3,25,3,65,3,99,0,65,3,44,0,65,3,45,0,65,3,32,0,75,0,65,3,46,0,49,1,199,3,1,1,1,1,65,3,47,0,55,1,93,0,94,0,84,0,100,3,103,3,92,3,92,3,91,0,91,0,92,0,92,0,92,0,92,0,174,1,90,0,90,0,90,0,90,0,89,0,89,0,88,0,88,0,88,0,87,0,79,1,174,1,186,0,185,0,184,0,238,0,88,3,88,3,138,2,2,0,40,4,65,3,33,0,227,2,217,0,218,0,1,1,203,3,1,1,170,1,61,1,1,1,6,3,65,3,117,0,1,1,55,1,93,0,94,0,84,0,100,3,103,3,92,3,92,3,91,0,91,0,92,0,92,0,92,0,92,0,174,1,90,0,90,0,90,0,90,0,89,0,89,0,88,0,88,0,88,0,87,0,79,1,174,1,62,1,124,0,212,0,163,0,88,3,88,3,175,3,132,3,130,3,65,3,118,0,247,2,214,2,213,2,1,1,243,2,33,1,33,1,221,2,222,2,193,3,65,3,119,0,170,2,55,1,93,0,82,0,84,0,100,3,103,3,92,3,92,3,91,0,91,0,92,0,92,0,92,0,92,0,174,1,90,0,90,0,90,0,90,0,89,0,89,0,88,0,88,0,88,0,87,0,79,1,174,1,204,2,246,0,66,1,75,1,88,3,88,3,0,1,114,0,101,1,65,3,53,0,40,3,145,3,145,3,164,3,156,0,160,1,164,1,168,1,162,3,41,3,65,3,34,0,108,1,55,1,253,0,94,0,84,0,100,3,103,3,92,3,92,3,91,0,91,0,92,0,92,0,92,0,92,0,174,1,90,0,90,0,90,0,90,0,89,0,89,0,88,0,88,0,88,0,87,0,79,1,174,1,114,0,114,0,114,0,192,3,88,3,88,3,51,1,2,1,62,3,65,3,100,0,191,0,252,0,121,1,11,1,68,0,197,0,68,0,5,1,204,2,1,3,65,3,50,0,71,0,143,3,143,3,7,1,84,0,100,3,103,3,92,3,92,3,91,0,91,0,92,0,92,0,92,0,92,0,174,1,90,0,90,0,90,0,90,0,89,0,89,0,88,0,88,0,88,0,87,0,79,1,80,0,169,1,34,3,3,0,190,4,191,0,174,1,9,1,80,1,80,1,65,3,101,0,229,2,80,0,169,1,129,3,3,0,211,2,210,2,172,1,209,2,80,1,80,1,174,1,125,3,14,1,174,1,197,0,65,3,102,0,174,1,32,3,172,1,174,1,183,2,174,1,75,3,111,0,158,1,174,1,16,3,153,1,174,1,63,3,174,1,65,3,98,0,123,0,65,3,116,0,79,3,158,1,65,3,49,0,11,3,65,3,113,0,65,3,106,0,226,0,123,0,65,3,105,0,79,3,65,3,103,0,65,3,104,0,23,3,155,1,77,0,78,0,34,1,156,1,174,1,35,1,114,0,79,0,176,1,175,1,133,1,174,1,67,3,77,0,78,0,129,3,71,3,152,1,154,1,174,1,79,0,176,1,175,1,116,1,191,2,67,3,65,3,52,0,174,1,80,0,169,1,174,1,3,0,65,3,54,0,4,3,75,3,80,1,80,1,172,2,3,3,65,3,51,0,72,3,72,3,72,3,74,3,19,0,172,1,160,2,65,3,26,0,159,2,65,3,30,0,161,2,72,3,72,3,72,3,74,3,19,0,207,0,149,2,22,1,48,1,148,0,24,1,158,1,26,1,248,0,102,1,54,3,126,1,6,0,92,1,161,0,17,1,80,0,169,1,79,3,3,0,166,3,127,3,208,2,126,3,80,1,80,1,40,1,157,0,159,1,241,0,28,1,162,2,190,3,194,0,185,3,172,1,183,3,180,3,77,0,78,0,9,3,63,1,56,0,59,0,135,0,79,0,176,1,175,1,121,0,66,0,67,3,146,0,128,0,94,1,158,1,51,3,130,0,95,1,131,0,132,0,133,0,119,1,173,0,107,0,138,0,149,0,79,3,109,1,178,0,62,0,70,0,169,1,168,3,3,0,59,3,121,3,115,1,255,0,80,1,80,1,24,3,72,3,72,3,72,3,74,3,19,0,77,0,78,0,147,3,172,1,208,0,179,0,144,0,79,0,176,1,175,1,117,1,4,1,67,3,180,0,70,1,163,2,181,0,52,1,232,2,132,1,231,2,219,2,158,1,206,2,230,2,218,2,200,2,146,1,53,1,199,2,16,1,20,3,65,0,198,2,79,3,197,2,21,1,193,0,21,3,19,3,23,1,108,3,73,0,72,3,72,3,72,3,74,3,19,0,18,3,25,1,162,1,27,1,166,1,227,0,77,0,78,0,74,1,228,0,229,0,96,0,255,2,79,0,176,1,175,1,151,1,67,0,67,3,215,0,36,1,37,1,149,1,38,1,47,1,46,1,45,1,204,0,43,1,39,1,202,0,164,2,169,2,7,0,177,1,157,2,203,0,205,0,206,0,125,0,110,0,57,1,178,1,155,2,154,2,146,2,168,0,224,0,237,0,72,3,72,3,72,3,74,3,19,0,120,0,144,2,81,1,236,0,155,0,167,0,85,1,233,0,58,1,108,0,137,3,135,3,58,3,127,0,126,0,244,2,170,0,129,0,172,0,247,0,160,3,134,0,136,0,171,0,60,0,61,0,123,0,169,0,137,0,165,3,175,0,176,0,159,3,8,0,13,0,177,0,254,0,150,3,139,0,191,0,156,3,140,0,114,1,166,2,150,0,118,1,182,0,18,1,12,1,141,0,122,0,63,0,14,0,122,1,15,0,127,1,64,0,225,0,78,3,77,3,106,3,16,0,4,0,217,2,253,2,2,3,162,0,139,1,209,0,211,0,142,0,33,3,110,3,28,3,56,1,71,0,68,0,107,3,105,3,171,3,190,0,161,1,170,3,17,0,195,0,196,0,152,0,18,0,207,3,199,0,208,3,153,0,198,0,154,0,165,1,109,3,76,3,184,2,81,0,200,0,41,1,87,1,251,3,250,3,44,1,141,2,16,16,2,16,5,0,33,4,75,5,46,4,180,4,180,4,180,4,90,0,60,0,237,255,58,0,58,0,186,0,180,4,180,4,180,4,180,4,180,4,180,4,180,4,67,0,67,0,182,0,80,1,218,0,38,2,135,0,7,1,84,1,161,1,238,1,59,2,110,2,187,2,8,3,59,3,59,3,59,3,59,3,59,3,59,3,59,3,59,3,59,3,59,3,59,3,59,3,59,3,59,3,59,3,110,3,59,3,161,3,212,3,212,3,132,4,180,4,180,4,180,4,180,4,180,4,180,4,180,4,180,4,180,4,180,4,180,4,180,4,180,4,180,4,180,4,180,4,180,4,180,4,180,4,180,4,180,4,180,4,180,4,180,4,180,4,180,4,180,4,180,4,234,4,180,4,180,4,180,4,180,4,180,4,180,4,180,4,180,4,180,4,180,4,180,4,180,4,180,4,185,255,209,255,209,255,209,255,209,255,209,255,250,255,88,0,190,255,218,0,218,0,162,1,239,1,23,2,23,2,33,0,43,0,10,0,226,255,167,255,167,255,167,255,11,0,169,1,169,1,12,1,199,1,93,2,218,0,218,0,218,0,218,0,218,0,218,0,218,0,218,0,218,0,218,0,218,0,218,0,218,0,218,0,218,0,218,0,218,0,218,0,218,0,172,2,138,0,10,0,43,0,125,0,125,0,125,0,125,0,125,0,125,0,167,255,167,255,167,255,228,0,85,1,85,1,207,0,20,1,44,1,24,1,96,1,98,1,218,0,218,0,218,0,218,0,218,0,218,0,218,0,218,0,218,0,218,0,218,0,218,0,218,0,218,0,218,0,218,0,218,0,51,2,51,2,51,2,218,0,218,0,179,1,218,0,218,0,218,0,67,2,218,0,218,0,73,2,218,0,218,0,218,0,218,0,218,0,218,0,218,0,218,0,218,0,218,0,69,2,0,3,199,2,199,2,199,2,192,2,215,0,41,4,244,2,178,1,197,2,197,2,200,2,178,1,200,2,22,2,90,3,129,2,185,3,197,2,168,255,185,3,185,3,99,3,233,1,191,1,176,4,94,4,94,4,179,4,179,4,94,4,205,4,160,4,102,4,218,4,218,4,218,4,218,4,94,4,226,4,102,4,205,4,160,4,160,4,102,4,94,4,226,4,115,4,213,4,94,4,94,4,226,4,253,4,94,4,226,4,94,4,226,4,253,4,181,4,181,4,181,4,235,4,253,4,181,4,186,4,181,4,235,4,181,4,181,4,171,4,194,4,171,4,194,4,171,4,194,4,171,4,194,4,94,4,94,4,174,4,253,4,230,4,230,4,253,4,199,4,207,4,206,4,212,4,102,4,66,5,68,5,83,5,83,5,93,5,93,5,93,5,93,5,167,255,167,255,167,255,167,255,167,255,167,255,221,1,35,2,130,1,50,3,238,2,253,2,188,2,238,3,219,2,243,3,247,3,248,3,249,3,180,3,68,3,167,3,191,2,255,3,31,4,40,4,53,4,87,3,150,3,63,4,61,4,99,2,112,5,114,5,97,5,236,4,105,5,53,5,108,5,102,5,103,5,7,5,254,4,17,5,9,5,110,5,8,5,118,5,134,5,13,5,6,5,60,5,61,5,32,5,116,5,109,5,24,5,146,5,143,5,127,5,43,5,11,5,98,5,128,5,99,5,94,5,113,5,49,5,135,5,138,5,141,5,50,5,56,5,142,5,115,5,144,5,145,5,140,5,147,5,117,5,148,5,149,5,119,5,125,5,150,5,151,5,152,5,63,5,154,5,157,5,155,5,156,5,59,5,160,5,161,5,158,5,159,5,163,5,64,5,164,5,162,5,165,5,166,5,164,5,169,5,170,5,171,5,173,5,174,5,178,5,176,5,180,5,179,5,172,5,181,5,182,5,184,5,185,5,181,5,187,5,186,5,188,5,189,5,191,5,82,5,92,5,95,5,96,5,192,5,204,5,219,5,214,3,20,5,20,5,20,5,190,4,190,4,190,4,25,5,20,5,85,4,114,4,114,4,250,4,25,5,25,5,25,5,25,5,25,5,25,5,188,4,25,5,25,5,25,5,20,5,25,5,89,4,120,4,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,249,4,251,4,128,4,127,4,230,4,101,4,125,4,118,4,122,4,191,4,184,4,185,4,183,4,187,4,192,4,25,5,121,4,153,4,168,4,152,4,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,162,4,167,4,174,4,166,4,163,4,155,4,154,4,156,4,157,4,25,5,25,5,240,3,50,4,25,5,25,5,158,4,25,5,252,3,159,4,171,4,170,4,169,4,247,3,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,214,3,20,5,25,5,25,5,20,5,20,5,20,5,20,5,20,5,20,5,12,5,89,4,79,4,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,0,5,254,4,25,5,203,4,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,85,4,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,220,3,25,5,223,4,85,4,85,4,85,4,87,4,65,4,77,4,222,3,124,4,103,4,103,4,235,4,124,4,235,4,21,4,44,4,18,4,114,4,103,4,186,4,114,4,114,4,86,4,77,4,25,5,5,5,94,4,94,4,253,4,253,4,94,4,133,4,54,4,124,4,61,4,61,4,61,4,61,4,94,4,237,3,124,4,133,4,54,4,54,4,124,4,94,4,237,3,229,4,227,4,94,4,94,4,237,3,196,4,94,4,237,3,94,4,237,3,196,4,52,4,52,4,52,4,36,4,196,4,52,4,21,4,52,4,36,4,52,4,52,4,107,4,102,4,107,4,102,4,107,4,102,4,107,4,102,4,94,4,94,4,25,5,196,4,200,4,200,4,196,4,119,4,108,4,117,4,115,4,124,4,243,3,39,4,230,3,230,3,219,3,219,3,219,3,219,3,17,5,17,5,12,5,23,4,23,4,6,4,25,5,25,5,25,5,25,5,25,5,25,5,254,3,25,5,205,4,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,140,4,25,5,215,3,7,5,25,5,25,5,4,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,233,4,25,5,25,5,25,5,25,5,25,5,25,5,226,4,225,4,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,68,4,25,5,25,5,25,5,72,4,25,5,25,5,25,5,25,5,25,5,25,5,25,5,116,4,25,5,109,4,25,5,189,4,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,25,5,22,5,25,5,25,5,25,5,21,5,25,5,25,5,25,5,25,5,25,5,142,4,25,5,141,4,145,4,25,5,228,3,25,5,16,0,2,2,12,0,14,0,24,0,31,0,59,0,15,39,97,99,111,115,0,97,115,105,110,0,97,116,97,110,0,97,116,110,50,0,97,116,97,110,50,0,97,99,111,115,104,0,97,115,105,110,104,0,97,116,97,110,104,0,100,105,102,102,101,114,101,110,99,101,0,100,101,103,114,101,101,115,0,114,97,100,105,97,110,115,0,99,111,115,0,115,105,110,0,116,97,110,0,99,111,116,0,99,111,115,104,0,115,105,110,104,0,116,97,110,104,0,99,111,116,104,0,101,120,112,0,108,111,103,49,48,0,112,111,119,101,114,0,115,105,103,110,0,115,113,114,116,0,115,113,117,97,114,101,0,99,101,105,108,0,102,108,111,111,114,0,112,105,0,114,101,112,108,105,99,97,116,101,0,99,104,97,114,105,110,100,101,120,0,108,101,102,116,115,116,114,0,114,105,103,104,116,115,116,114,0,114,101,118,101,114,115,101,0,112,114,111,112,101,114,0,112,97,100,108,0,112,97,100,114,0,112,97,100,99,0,115,116,114,102,105,108,116,101,114,0,115,116,100,101,118,0,118,97,114,105,97,110,99,101,0,109,101,100,105,97,110,0,108,111,119,101,114,95,113,117,97,114,116,105,108,101,0,117,112,112,101,114,95,113,117,97,114,116,105,108,101,0,102,111,114,32,110,111,100,101,0,97,114,103,99,61,61,49,0,99,47,101,120,116,101,110,115,105,111,110,45,102,117,110,99,116,105,111,110,115,46,99,0,97,99,111,115,70,117,110,99,0,97,115,105,110,70,117,110,99,0,97,116,97,110,70,117,110,99,0,97,114,103,99,61,61,50,0,97,116,110,50,70,117,110,99,0,97,99,111,115,104,70,117,110,99,0,97,115,105,110,104,70,117,110,99,0,97,116,97,110,104,70,117,110,99,0,100,105,102,102,101,114,101,110,99,101,70,117,110,99,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,0,1,2,0,0,2,2,4,5,5,0,1,2,6,2,3,0,1,0,2,0,2,0,0,0,0,0,0,0,1,2,3,0,1,2,0,0,2,2,4,5,5,0,1,2,6,2,3,0,1,0,2,0,2,0,0,0,0,0,63,48,48,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,114,97,100,50,100,101,103,70,117,110,99,0,100,101,103,50,114,97,100,70,117,110,99,0,99,111,115,70,117,110,99,0,115,105,110,70,117,110,99,0,116,97,110,70,117,110,99,0,99,111,116,70,117,110,99,0,99,111,115,104,70,117,110,99,0,115,105,110,104,70,117,110,99,0,116,97,110,104,70,117,110,99,0,99,111,116,104,70,117,110,99,0,101,120,112,70,117,110,99,0,108,111,103,70,117,110,99,0,108,111,103,49,48,70,117,110,99,0,112,111,119,101,114,70,117,110,99,0,115,105,103,110,70,117,110,99,0,115,113,114,116,70,117,110,99,0,115,113,117,97,114,101,70,117,110,99,0,99,101,105,108,70,117,110,99,0,102,108,111,111,114,70,117,110,99,0,100,111,109,97,105,110,32,101,114,114,111,114,0,97,114,103,99,61,61,51,32,124,124,97,114,103,99,61,61,50,0,99,104,97,114,105,110,100,101,120,70,117,110,99,0,108,101,102,116,70,117,110,99,0,114,105,103,104,116,70,117,110,99,0,49,61,61,97,114,103,99,0,114,101,118,101,114,115,101,70,117,110,99,0,112,114,111,112,101,114,70,117,110,99,0,112,97,100,108,70,117,110,99,0,122,60,61,122,84,101,114,109,0,115,113,108,105,116,101,51,85,116,102,56,67,104,97,114,76,101,110,0,112,97,100,114,70,117,110,99,0,112,97,100,99,70,117,110,99,0,115,116,114,102,105,108,116,101,114,70,117,110,99,0,118,97,114,105,97,110,99,101,83,116,101,112,0,109,111,100,101,83,116,101,112,0,51,46,49,49,46,48,0,83,81,76,73,84,69,95,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,5,3,5,1,5,1,5,2,5,2,5,1,5,1,5,4,5,3,5,1,5,1,5,2,5,2,5,1,5,1,5,115,116,114,105,110,103,32,111,114,32,98,108,111,98,32,116,111,111,32,98,105,103,0,99,97,110,110,111,116,32,111,112,101,110,32,118,105,114,116,117,97,108,32,116,97,98,108,101,58,32,37,115,0,99,97,110,110,111,116,32,111,112,101,110,32,116,97,98,108,101,32,119,105,116,104,111,117,116,32,114,111,119,105,100,58,32,37,115,0,99,97,110,110,111,116,32,111,112,101,110,32,118,105,101,119,58,32,37,115,0,110,111,32,115,117,99,104,32,99,111,108,117,109,110,58,32,34,37,115,34,0,102,111,114,101,105,103,110,32,107,101,121,0,105,110,100,101,120,101,100,0,99,97,110,110,111,116,32,111,112,101,110,32,37,115,32,99,111,108,117,109,110,32,102,111,114,32,119,114,105,116,105,110,103,0,148,0,0,0,54,0,0,0,28,1,1,0,70,0,7,1,47,0,0,1,33,1,0,0,13,0,2,0,61,0,0,0,21,0,0,0,37,115,0,42,63,91,0,37,95,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,12,12,12,12,12,12,12,12,12,12,0,0,0,0,0,0,0,10,10,10,10,10,10,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,64,0,42,42,42,42,42,42,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,0,0,0,0,0,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,1,4,3,2,5,116,114,105,103,103,101,114,0,116,101,109,112,0,50,48,49,54,45,48,50,45,49,53,32,49,55,58,50,57,58,50,52,32,51,100,56,54,50,102,50,48,55,101,51,97,100,99,48,48,102,55,56,48,54,54,55,57,57,97,99,53,97,56,99,50,56,50,52,51,48,97,53,102,0,117,110,107,110,111,119,110,32,100,97,116,97,98,97,115,101,58,32,37,115,0,73,78,84,69,71,69,82,0,57,50,50,51,51,55,50,48,51,54,56,53,52,55,55,53,56,48,0,2,2,3,5,3,4,5,4,0,1,2,4,9,12,15,20,111,110,111,102,102,97,108,115,101,121,101,115,116,114,117,101,120,116,114,97,102,117,108,108,0,1,0,0,0,1,1,3,2,76,105,117,74,0,45,0,0,82,0,77,0,0,42,12,78,15,0,116,85,54,112,0,19,0,0,121,0,119,115,0,22,93,0,9,0,0,70,71,0,69,6,0,48,90,102,0,118,101,0,0,44,0,103,24,0,17,0,122,53,23,0,5,110,25,96,0,0,124,106,60,123,57,28,55,0,91,0,100,26,0,99,0,0,0,95,92,97,88,109,14,39,108,0,81,0,18,89,111,32,0,120,80,113,62,46,84,0,0,94,40,59,114,0,36,0,0,29,0,86,63,64,0,20,61,0,56,7,7,5,4,6,4,5,3,6,7,3,6,6,7,7,3,8,2,6,5,4,4,3,10,4,6,11,6,2,7,5,5,9,6,9,9,7,10,10,4,6,2,3,9,4,2,6,5,7,4,5,7,6,6,5,6,5,5,9,7,7,3,2,4,4,7,3,6,4,7,6,12,6,9,4,6,5,4,7,6,5,6,7,5,4,5,6,5,7,3,7,13,2,2,4,6,6,8,5,17,12,7,8,8,2,4,4,4,4,4,2,2,6,5,8,5,8,3,5,5,6,4,9,3,82,69,73,78,68,69,88,69,68,69,83,67,65,80,69,65,67,72,69,67,75,69,89,66,69,70,79,82,69,73,71,78,79,82,69,71,69,88,80,76,65,73,78,83,84,69,65,68,68,65,84,65,66,65,83,69,76,69,67,84,65,66,76,69,70,84,72,69,78,68,69,70,69,82,82,65,66,76,69,76,83,69,88,67,69,80,84,82,65,78,83,65,67,84,73,79,78,65,84,85,82,65,76,84,69,82,65,73,83,69,88,67,76,85,83,73,86,69,88,73,83,84,83,65,86,69,80,79,73,78,84,69,82,83,69,67,84,82,73,71,71,69,82,69,70,69,82,69,78,67,69,83,67,79,78,83,84,82,65,73,78,84,79,70,70,83,69,84,69,77,80,79,82,65,82,89,85,78,73,81,85,69,82,89,87,73,84,72,79,85,84,69,82,69,76,69,65,83,69,65,84,84,65,67,72,65,86,73,78,71,82,79,85,80,68,65,84,69,66,69,71,73,78,78,69,82,69,67,85,82,83,73,86,69,66,69,84,87,69,69,78,79,84,78,85,76,76,73,75,69,67,65,83,67,65,68,69,76,69,84,69,67,65,83,69,67,79,76,76,65,84,69,67,82,69,65,84,69,67,85,82,82,69,78,84,95,68,65,84,69,68,69,84,65,67,72,73,77,77,69,68,73,65,84,69,74,79,73,78,83,69,82,84,77,65,84,67,72,80,76,65,78,65,76,89,90,69,80,82,65,71,77,65,66,79,82,84,86,65,76,85,69,83,86,73,82,84,85,65,76,73,77,73,84,87,72,69,78,87,72,69,82,69,78,65,77,69,65,70,84,69,82,69,80,76,65,67,69,65,78,68,69,70,65,85,76,84,65,85,84,79,73,78,67,82,69,77,69,78,84,67,65,83,84,67,79,76,85,77,78,67,79,77,77,73,84,67,79,78,70,76,73,67,84,67,82,79,83,83,67,85,82,82,69,78,84,95,84,73,77,69,83,84,65,77,80,82,73,77,65,82,89,68,69,70,69,82,82,69,68,73,83,84,73,78,67,84,68,82,79,80,70,65,73,76,70,82,79,77,70,85,76,76,71,76,79,66,89,73,70,73,83,78,85,76,76,79,82,68,69,82,69,83,84,82,73,67,84,82,73,71,72,84,82,79,76,76,66,65,67,75,82,79,87,85,78,73,79,78,85,83,73,78,71,86,65,67,85,85,77,86,73,69,87,73,78,73,84,73,65,76,76,89,67,28,140,42,84,44,104,53,35,113,46,47,50,2,49,142,41,24,119,16,98,138,11,112,139,117,6,30,107,98,141,57,9,20,13,118,62,105,99,131,55,54,111,21,21,71,103,3,25,66,98,14,34,128,127,110,5,98,58,74,77,19,52,101,50,37,33,109,136,95,17,69,43,8,124,108,51,4,32,56,29,120,65,129,137,130,68,31,59,72,100,106,15,75,38,39,10,40,98,69,69,102,7,121,73,114,45,123,98,50,36,18,76,126,60,98,12,61,115,125,63,64,48,116,0,0,0,0,4,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,13,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33,0,21,0,0,0,0,0,50,0,43,3,47,0,0,0,0,30,0,58,0,38,0,0,0,1,66,0,0,67,0,41,0,0,0,0,0,0,49,65,0,0,0,0,31,52,16,34,10,0,0,0,0,0,0,0,11,72,79,0,8,0,104,98,0,107,0,87,0,75,51,0,27,37,73,83,0,35,68,0,0,95,82,79,87,73,68,95,0,82,79,87,73,68,0,79,73,68,0,115,113,108,105,116,101,95,116,101,109,112,95,109,97,115,116,101,114,0,115,113,108,105,116,101,95,109,97,115,116,101,114,0,49,0,67,82,69,65,84,69,32,84,65,66,76,69,32,120,40,116,121,112,101,32,116,101,120,116,44,110,97,109,101,32,116,101,120,116,44,116,98,108,95,110,97,109,101,32,116,101,120,116,44,114,111,111,116,112,97,103,101,32,105,110,116,101,103,101,114,44],"i8",4,l.aa+10622);z([115,113,108,32,116,101,120,116,41,0,97,116,116,97,99,104,101,100,32,100,97,116,97,98,97,115,101,115,32,109,117,115,116,32,117,115,101,32,116,104,101,32,115,97,109,101,32,116,101,120,116,32,101,110,99,111,100,105,110,103,32,97,115,32,109,97,105,110,32,100,97,116,97,98,97,115,101,0,117,110,115,117,112,112,111,114,116,101,100,32,102,105,108,101,32,102,111,114,109,97,116,0,83,69,76,69,67,84,32,110,97,109,101,44,32,114,111,111,116,112,97,103,101,44,32,115,113,108,32,70,82,79,77,32,34,37,119,34,46,37,115,32,79,82,68,69,82,32,66,89,32,114,111,119,105,100,0,115,113,108,105,116,101,95,115,116,97,116,49,0,83,69,76,69,67,84,32,116,98,108,44,105,100,120,44,115,116,97,116,32,70,82,79,77,32,37,81,46,115,113,108,105,116,101,95,115,116,97,116,49,0,117,110,111,114,100,101,114,101,100,42,0,115,122,61,91,48,45,57,93,42,0,110,111,115,107,105,112,115,99,97,110,42,0,99,114,101,97,116,101,32,0,105,110,118,97,108,105,100,32,114,111,111,116,112,97,103,101,0,63,0,109,97,108,102,111,114,109,101,100,32,100,97,116,97,98,97,115,101,32,115,99,104,101,109,97,32,40,37,115,41,0,37,122,32,45,32,37,115,0,100,97,116,97,98,97,115,101,32,99,111,114,114,117,112,116,105,111,110,32,97,116,32,108,105,110,101,32,37,100,32,111,102,32,91,37,46,49,48,115,93,0,117,110,97,98,108,101,32,116,111,32,100,101,108,101,116,101,47,109,111,100,105,102,121,32,99,111,108,108,97,116,105,111,110,32,115,101,113,117,101,110,99,101,32,100,117,101,32,116,111,32,97,99,116,105,118,101,32,115,116,97,116,101,109,101,110,116,115,0,78,79,67,65,83,69,0,82,84,82,73,77,0,109,97,105,110,0,115,105,109,112,108,101,0,112,111,114,116,101,114,0,117,110,105,99,111,100,101,54,49,0,102,116,115,51,95,116,111,107,101,110,105,122,101,114,0,115,110,105,112,112,101,116,0,111,102,102,115,101,116,115,0,109,97,116,99,104,105,110,102,111,0,111,112,116,105,109,105,122,101,0,102,116,115,51,0,102,116,115,52,0,102,116,115,51,116,111,107,101,110,105,122,101,0,67,82,69,65,84,69,32,84,65,66,76,69,32,120,40,105,110,112,117,116,44,32,116,111,107,101,110,44,32,115,116,97,114,116,44,32,101,110,100,44,32,112,111,115,105,116,105,111,110,41,0,117,110,107,110,111,119,110,32,116,111,107,101,110,105,122,101,114,58,32,37,115,0,65,76,84,69,82,32,84,65,66,76,69,32,37,81,46,39,37,113,95,99,111,110,116,101,110,116,39,32,32,82,69,78,65,77,69,32,84,79,32,39,37,113,95,99,111,110,116,101,110,116,39,59,0,65,76,84,69,82,32,84,65,66,76,69,32,37,81,46,39,37,113,95,100,111,99,115,105,122,101,39,32,32,82,69,78,65,77,69,32,84,79,32,39,37,113,95,100,111,99,115,105,122,101,39,59,0,65,76,84,69,82,32,84,65,66,76,69,32,37,81,46,39,37,113,95,115,116,97,116,39,32,32,82,69,78,65,77,69,32,84,79,32,39,37,113,95,115,116,97,116,39,59,0,65,76,84,69,82,32,84,65,66,76,69,32,37,81,46,39,37,113,95,115,101,103,109,101,110,116,115,39,32,82,69,78,65,77,69,32,84,79,32,39,37,113,95,115,101,103,109,101,110,116,115,39,59,0,65,76,84,69,82,32,84,65,66,76,69,32,37,81,46,39,37,113,95,115,101,103,100,105,114,39,32,32,32,82,69,78,65,77,69,32,84,79,32,39,37,113,95,115,101,103,100,105,114,39,59,0,68,69,76,69,84,69,32,70,82,79,77,32,37,81,46,39,37,113,95,99,111,110,116,101,110,116,39,32,87,72,69,82,69,32,114,111,119,105,100,32,61,32,63,0,83,69,76,69,67,84,32,78,79,84,32,69,88,73,83,84,83,40,83,69,76,69,67,84,32,100,111,99,105,100,32,70,82,79,77,32,37,81,46,39,37,113,95,99,111,110,116,101,110,116,39,32,87,72,69,82,69,32,114,111,119,105,100,33,61,63,41,0,68,69,76,69,84,69,32,70,82,79,77,32,37,81,46,39,37,113,95,99,111,110,116,101,110,116,39,0,68,69,76,69,84,69,32,70,82,79,77,32,37,81,46,39,37,113,95,115,101,103,109,101,110,116,115,39,0,68,69,76,69,84,69,32,70,82,79,77,32,37,81,46,39,37,113,95,115,101,103,100,105,114,39,0,68,69,76,69,84,69,32,70,82,79,77,32,37,81,46,39,37,113,95,100,111,99,115,105,122,101,39,0,68,69,76,69,84,69,32,70,82,79,77,32,37,81,46,39,37,113,95,115,116,97,116,39,0,83,69,76,69,67,84,32,37,115,32,87,72,69,82,69,32,114,111,119,105,100,61,63,0,83,69,76,69,67,84,32,40,83,69,76,69,67,84,32,109,97,120,40,105,100,120,41,32,70,82,79,77,32,37,81,46,39,37,113,95,115,101,103,100,105,114,39,32,87,72,69,82,69,32,108,101,118,101,108,32,61,32,63,41,32,43,32,49,0,82,69,80,76,65,67,69,32,73,78,84,79,32,37,81,46,39,37,113,95,115,101,103,109,101,110,116,115,39,40,98,108,111,99,107,105,100,44,32,98,108,111,99,107,41,32,86,65,76,85,69,83,40,63,44,32,63,41,0,83,69,76,69,67,84,32,99,111,97,108,101,115,99,101,40,40,83,69,76,69,67,84,32,109,97,120,40,98,108,111,99,107,105,100,41,32,70,82,79,77,32,37,81,46,39,37,113,95,115,101,103,109,101,110,116,115,39,41,32,43,32,49,44,32,49,41,0,82,69,80,76,65,67,69,32,73,78,84,79,32,37,81,46,39,37,113,95,115,101,103,100,105,114,39,32,86,65,76,85,69,83,40,63,44,63,44,63,44,63,44,63,44,63,41,0,83,69,76,69,67,84,32,105,100,120,44,32,115,116,97,114,116,95,98,108,111,99,107,44,32,108,101,97,118,101,115,95,101,110,100,95,98,108,111,99,107,44,32,101,110,100,95,98,108,111,99,107,44,32,114,111,111,116,32,70,82,79,77,32,37,81,46,39,37,113,95,115,101,103,100,105,114,39,32,87,72,69,82,69,32,108,101,118,101,108,32,61,32,63,32,79,82,68,69,82,32,66,89,32,105,100,120,32,65,83,67,0,83,69,76,69,67,84,32,105,100,120,44,32,115,116,97,114,116,95,98,108,111,99,107,44,32,108,101,97,118,101,115,95,101,110,100,95,98,108,111,99,107,44,32,101,110,100,95,98,108,111,99,107,44,32,114,111,111,116,32,70,82,79,77,32,37,81,46,39,37,113,95,115,101,103,100,105,114,39,32,87,72,69,82,69,32,108,101,118,101,108,32,66,69,84,87,69,69,78,32,63,32,65,78,68,32,63,79,82,68,69,82,32,66,89,32,108,101,118,101,108,32,68,69,83,67,44,32,105,100,120,32,65,83,67,0,83,69,76,69,67,84,32,99,111,117,110,116,40,42,41,32,70,82,79,77,32,37,81,46,39,37,113,95,115,101,103,100,105,114,39,32,87,72,69,82,69,32,108,101,118,101,108,32,61,32,63,0,83,69,76,69,67,84,32,109,97,120,40,108,101,118,101,108,41,32,70,82,79,77,32,37,81,46,39,37,113,95,115,101,103,100,105,114,39,32,87,72,69,82,69,32,108,101,118,101,108,32,66,69,84,87,69,69,78,32,63,32,65,78,68,32,63,0,68,69,76,69,84,69,32,70,82,79,77,32,37,81,46,39,37,113,95,115,101,103,100,105,114,39,32,87,72,69,82,69,32,108,101,118,101,108,32,61,32,63,0,68,69,76,69,84,69,32,70,82,79,77,32,37,81,46,39,37,113,95,115,101,103,109,101,110,116,115,39,32,87,72,69,82,69,32,98,108,111,99,107,105,100,32,66,69,84,87,69,69,78,32,63,32,65,78,68,32,63,0,73,78,83,69,82,84,32,73,78,84,79,32,37,81,46,39,37,113,95,99,111,110,116,101,110,116,39,32,86,65,76,85,69,83,40,37,115,41,0,68,69,76,69,84,69,32,70,82,79,77,32,37,81,46,39,37,113,95,100,111,99,115,105,122,101,39,32,87,72,69,82,69,32,100,111,99,105,100,32,61,32,63,0,82,69,80,76,65,67,69,32,73,78,84,79,32,37,81,46,39,37,113,95,100,111,99,115,105,122,101,39,32,86,65,76,85,69,83,40,63,44,63,41,0,83,69,76,69,67,84,32,115,105,122,101,32,70,82,79,77,32,37,81,46,39,37,113,95,100,111,99,115,105,122,101,39,32,87,72,69,82,69,32,100,111,99,105,100,61,63,0,83,69,76,69,67,84,32,118,97,108,117,101,32,70,82,79,77,32,37,81,46,39,37,113,95,115,116,97,116,39,32,87,72,69,82,69,32,105,100,61,63,0,82,69,80,76,65,67,69,32,73,78,84,79,32,37,81,46,39,37,113,95,115,116,97,116,39,32,86,65,76,85,69,83,40,63,44,63,41,0,68,69,76,69,84,69,32,70,82,79,77,32,37,81,46,39,37,113,95,115,101,103,100,105,114,39,32,87,72,69,82,69,32,108,101,118,101,108,32,66,69,84,87,69,69,78,32,63,32,65,78,68,32,63,0,83,69,76,69,67,84,32,63,32,85,78,73,79,78,32,83,69,76,69,67,84,32,108,101,118,101,108,32,47,32,40,49,48,50,52,32,42,32,63,41,32,70,82,79,77,32,37,81,46,39,37,113,95,115,101,103,100,105,114,39,0,83,69,76,69,67,84,32,108,101,118,101,108,32,70,82,79,77,32,37,81,46,39,37,113,95,115,101,103,100,105,114,39,32,71,82,79,85,80,32,66,89,32,108,101,118,101,108,32,72,65,86,73,78,71,32,99,111,117,110,116,40,42,41,62,61,63,32,32,79,82,68,69,82,32,66,89,32,40,108,101,118,101,108,32,37,37,32,49,48,50,52,41,32,65,83,67,32,76,73,77,73,84,32,49,0,83,69,76,69,67,84,32,50,32,42,32,116,111,116,97,108,40,49,32,43,32,108,101,97,118,101,115,95,101,110,100,95,98,108,111,99,107,32,45,32,115,116,97,114,116,95,98,108,111,99,107,41,32,32,32,70,82,79,77,32,37,81,46,39,37,113,95,115,101,103,100,105,114,39,32,87,72,69,82,69,32,108,101,118,101,108,32,61,32,63,32,65,78,68,32,105,100,120,32,60,32,63,0,68,69,76,69,84,69,32,70,82,79,77,32,37,81,46,39,37,113,95,115,101,103,100,105,114,39,32,87,72,69,82,69,32,108,101,118,101,108,32,61,32,63,32,65,78,68,32,105,100,120,32,61,32,63,0,85,80,68,65,84,69,32,37,81,46,39,37,113,95,115,101,103,100,105,114,39,32,83,69,84,32,105,100,120,32,61,32,63,32,87,72,69,82,69,32,108,101,118,101,108,61,63,32,65,78,68,32,105,100,120,61,63,0,83,69,76,69,67,84,32,105,100,120,44,32,115,116,97,114,116,95,98,108,111,99,107,44,32,108,101,97,118,101,115,95,101,110,100,95,98,108,111,99,107,44,32,101,110,100,95,98,108,111,99,107,44,32,114,111,111,116,32,70,82,79,77,32,37,81,46,39,37,113,95,115,101,103,100,105,114,39,32,87,72,69,82,69,32,108,101,118,101,108,32,61,32,63,32,65,78,68,32,105,100,120,32,61,32,63,0,85,80,68,65,84,69,32,37,81,46,39,37,113,95,115,101,103,100,105,114,39,32,83,69,84,32,115,116,97,114,116,95,98,108,111,99,107,32,61,32,63,44,32,114,111,111,116,32,61,32,63,87,72,69,82,69,32,108,101,118,101,108,32,61,32,63,32,65,78,68,32,105,100,120,32,61,32,63,0,83,69,76,69,67,84,32,49,32,70,82,79,77,32,37,81,46,39,37,113,95,115,101,103,109,101,110,116,115,39,32,87,72,69,82,69,32,98,108,111,99,107,105,100,61,63,32,65,78,68,32,98,108,111,99,107,32,73,83,32,78,85,76,76,0,83,69,76,69,67,84,32,105,100,120,32,70,82,79,77,32,37,81,46,39,37,113,95,115,101,103,100,105,114,39,32,87,72,69,82,69,32,108,101,118,101,108,61,63,32,79,82,68,69,82,32,66,89,32,49,32,65,83,67,0,83,69,76,69,67,84,32,109,97,120,40,32,108,101,118,101,108,32,37,37,32,49,48,50,52,32,41,32,70,82,79,77,32,37,81,46,39,37,113,95,115,101,103,100,105,114,39,0,83,69,76,69,67,84,32,108,101,118,101,108,44,32,105,100,120,44,32,101,110,100,95,98,108,111,99,107,32,70,82,79,77,32,37,81,46,39,37,113,95,115,101,103,100,105,114,39,32,87,72,69,82,69,32,108,101,118,101,108,32,66,69,84,87,69,69,78,32,63,32,65,78,68,32,63,32,79,82,68,69,82,32,66,89,32,108,101,118,101,108,32,68,69,83,67,44,32,105,100,120,32,65,83,67,0,85,80,68,65,84,69,32,79,82,32,70,65,73,76,32,37,81,46,39,37,113,95,115,101,103,100,105,114,39,32,83,69,84,32,108,101,118,101,108,61,45,49,44,105,100,120,61,63,32,87,72,69,82,69,32,108,101,118,101,108,61,63,32,65,78,68,32,105,100,120,61,63,0,85,80,68,65,84,69,32,79,82,32,70,65,73,76,32,37,81,46,39,37,113,95,115,101,103,100,105,114,39,32,83,69,84,32,108,101,118,101,108,61,63,32,87,72,69,82,69,32,108,101,118,101,108,61,45,49,0,37,108,108,100,32,37,108,108,100,0,37,115,95,115,101,103,109,101,110,116,115,0,98,108,111,99,107,0,83,69,76,69,67,84,32,49,32,70,82,79,77,32,37,81,46,115,113,108,105,116,101,95,109,97,115,116,101,114,32,87,72,69,82,69,32,116,98,108,95,110,97,109,101,61,39,37,113,95,115,116,97,116,39,0,112,99,120,0,83,69,76,69,67,84,32,37,115,32,87,72,69,82,69,32,114,111,119,105,100,32,61,32,63,0,117,110,114,101,99,111,103,110,105,122,101,100,32,109,97,116,99,104,105,110,102,111,32,114,101,113,117,101,115,116,58,32,37,99,0,105,108,108,101,103,97,108,32,102,105,114,115,116,32,97,114,103,117,109,101,110,116,32,116,111,32,37,115,0,73,110,100,101,120,32,111,112,116,105,109,105,122,101,100,0,73,110,100,101,120,32,97,108,114,101,97,100,121,32,111,112,116,105,109,97,108,0,83,65,86,69,80,79,73,78,84,32,102,116,115,51,0,82,69,76,69,65,83,69,32,102,116,115,51,0,82,79,76,76,66,65,67,75,32,84,79,32,102,116,115,51,0,37,100,32,37,100,32,37,100,32,37,100,32,0,60,98,62,0,60,47,98,62,0,60,98,62,46,46,46,60,47,98,62,0,119,114,111,110,103,32,110,117,109,98,101,114,32,111,102,32,97,114,103,117,109,101,110,116,115,32,116,111,32,102,117,110,99,116,105,111,110,32,115,110,105,112,112,101,116,40,41,0,114,101,98,117,105,108,100,0,105,110,116,101,103,114,105,116,121,45,99,104,101,99,107,0,109,101,114,103,101,61,0,97,117,116,111,109,101,114,103,101,61,0,67,82,69,65,84,69,32,84,65,66,76,69,32,73,70,32,78,79,84,32,69,88,73,83,84,83,32,37,81,46,39,37,113,95,115,116,97,116,39,40,105,100,32,73,78,84,69,71,69,82,32,80,82,73,77,65,82,89,32,75,69,89,44,32,118,97,108,117,101,32,66,76,79,66,41,59,0,83,69,76,69,67,84,32,37,115,0,68,69,83,67,0,65,83,67,0,83,69,76,69,67,84,32,37,115,32,87,72,69,82,69,32,114,111,119,105,100,32,66,69,84,87,69,69,78,32,37,108,108,100,32,65,78,68,32,37,108,108,100,32,79,82,68,69,82,32,66,89,32,114,111,119,105,100,32,37,115,0,83,69,76,69,67,84,32,37,115,32,79,82,68,69,82,32,66,89,32,114,111,119,105,100,32,37,115,0,70,84,83,32,101,120,112,114,101,115,115,105,111,110,32,116,114,101,101,32,105,115,32,116,111,111,32,108,97,114,103,101,32,40,109,97,120,105,109,117,109,32,100,101,112,116,104,32,37,100,41,0,109,97,108,102,111,114,109,101,100,32,77,65,84,67,72,32,101,120,112,114,101,115,115,105,111,110,58,32,91,37,115,93,0,79,82,0,65,78,68,0,78,79,84,0,78,69,65,82,0,68,82,79,80,32,84,65,66,76,69,32,73,70,32,69,88,73,83,84,83,32,37,81,46,39,37,113,95,99,111,110,116,101,110,116,39,0,68,82,79,80,32,84,65,66,76,69,32,73,70,32,69,88,73,83,84,83,32,37,81,46,39,37,113,95,115,101,103,109,101,110,116,115,39,0,68,82,79,80,32,84,65,66,76,69,32,73,70,32,69,88,73,83,84,83,32,37,81,46,39,37,113,95,115,101,103,100,105,114,39,0,68,82,79,80,32,84,65,66,76,69,32,73,70,32,69,88,73,83,84,83,32,37,81,46,39,37,113,95,100,111,99,115,105,122,101,39,0,68,82,79,80,32,84,65,66,76,69,32,73,70,32,69,88,73,83,84,83,32,37,81,46,39,37,113,95,115,116,97,116,39,0,116,111,107,101,110,105,122,101,0,117,110,114,101,99,111,103,110,105,122,101,100,32,112,97,114,97,109,101,116,101,114,58,32,37,115,0,117,110,114,101,99,111,103,110,105,122,101,100,32,109,97,116,99,104,105,110,102,111,58,32,37,115,0,97,115,99,0,100,101,115,99,0,117,110,114,101,99,111,103,110,105,122,101,100,32,111,114,100,101,114,58,32,37,115,0,99,111,110,116,101,110,116,0,101,114,114,111,114,32,112,97,114,115,105,110,103,32,112,114,101,102,105,120,32,112,97,114,97,109,101,116,101,114,58,32,37,115,0,110,111,32,115,117,99,104,32,99,111,108,117,109,110,58,32,37,115,0,99,111,109,112,114,101,115,115,0,117,110,99,111,109,112,114,101,115,115,0,109,105,115,115,105,110,103,32,37,115,32,112,97,114,97,109,101,116,101,114,32,105,110,32,102,116,115,52,32,99,111,110,115,116,114,117,99,116,111,114,0,95,95,108,97,110,103,105,100,0,37,81,44,32,0,37,122,37,81,44,32,0,67,82,69,65,84,69,32,84,65,66,76,69,32,120,40,37,115,32,37,81,32,72,73,68,68,69,78,44,32,100,111,99,105,100,32,72,73,68,68,69,78,44,32,37,81,32,72,73,68,68,69,78,41,0,80,82,65,71,77,65,32,37,81,46,112,97,103,101,95,115,105,122,101,0,100,111,99,105,100,32,73,78,84,69,71,69,82,32,80,82,73,77,65,82,89,32,75,69,89,0,37,122,44,32,39,99,37,100,37,113,39,0,37,122,44,32,108,97,110,103,105,100,0,67,82,69,65,84,69,32,84,65,66,76,69,32,37,81,46,39,37,113,95,99,111,110,116,101,110,116,39,40,37,115,41,0,67,82,69,65,84,69,32,84,65,66,76,69,32,37,81,46,39,37,113,95,115,101,103,109,101,110,116,115,39,40,98,108,111,99,107,105,100,32,73,78,84,69,71,69,82,32,80,82,73,77,65,82,89,32,75,69,89,44,32,98,108,111,99,107,32,66,76,79,66,41,59,0,67,82,69,65,84,69,32,84,65,66,76,69,32,37,81,46,39,37,113,95,115,101,103,100,105,114,39,40,108,101,118,101,108,32,73,78,84,69,71,69,82,44,105,100,120,32,73,78,84,69,71,69,82,44,115,116,97,114,116,95,98,108,111,99,107,32,73,78,84,69,71,69,82,44,108,101,97,118,101,115,95,101,110,100,95,98,108,111,99,107,32,73,78,84,69,71,69,82,44,101,110,100,95,98,108,111,99,107,32,73,78,84,69,71,69,82,44,114,111,111,116,32,66,76,79,66,44,80,82,73,77,65,82,89,32,75,69,89,40,108,101,118,101,108,44,32,105,100,120,41,41,59,0,67,82,69,65,84,69,32,84,65,66,76,69,32,37,81,46,39,37,113,95,100,111,99,115,105,122,101,39,40,100,111,99,105,100,32,73,78,84,69,71,69,82,32,80,82,73,77,65,82,89,32,75,69,89,44,32,115,105,122,101,32,66,76,79,66,41,59,0,44,37,115,40,63,41,0,44,32,63,0,37,115,37,115,0,100,111,99,105,100,0,44,37,115,40,120,46,39,99,37,100,37,113,39,41,0,44,32,120,46,37,81,0,108,97,110,103,105,100,0,114,111,119,105,100,0,44,32,120,46,39,37,113,39,0,95,99,111,110,116,101,110,116,0,32,70,82,79,77,32,39,37,113,39,46,39,37,113,37,115,39,32,65,83,32,120,0,83,69,76,69,67,84,32,42,32,70,82,79,77,32,37,81,46,37,81,0,112,114,101,102,105,120,0,111,114,100,101,114,0,108,97,110,103,117,97,103,101,105,100,0,110,111,116,105,110,100,101,120,101,100,0,117,110,107,110,111,119,110,32,116,111,107,101,110,105,122,101,114,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,102,116,115,51,116,111,107,101,110,105,122,101,58,32,100,105,115,97,98,108,101,100,32,45,32,114,101,98,117,105,108,100,32,119,105,116,104,32,45,68,83,81,76,73,84,69,95,69,78,65,66,76,69,95,70,84,83,51,95,84,79,75,69,78,73,90,69,82,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,115,101,115,115,0,115,115,0,115,101,105,0,105,0,100,101,101,0,101,101,0,103,110,105,0,100,101,0,116,97,0,97,116,101,0,108,98,0,98,108,101,0,122,105,0,105,122,101,0,108,97,110,111,105,116,97,0,108,97,110,111,105,116,0,116,105,111,110,0,105,99,110,101,0,101,110,99,101,0,105,99,110,97,0,97,110,99,101,0,114,101,122,105,0,105,103,111,108,0,108,111,103,0,105,108,98,0,105,108,108,97,0,97,108,0,105,108,116,110,101,0,101,110,116,0,105,108,101,0,101,0,105,108,115,117,111,0,111,117,115,0,110,111,105,116,97,122,105,0,110,111,105,116,97,0,114,111,116,97,0,109,115,105,108,97,0,115,115,101,110,101,118,105,0,105,118,101,0,115,115,101,110,108,117,102,0,102,117,108,0,115,115,101,110,115,117,111,0,105,116,105,108,97,0,105,116,105,118,105,0,105,116,105,108,105,98,0,101,116,97,99,105,0,105,99,0,101,118,105,116,97,0,101,122,105,108,97,0,105,116,105,99,105,0,108,97,99,105,0,108,117,102,0,115,115,101,110,0,116,110,101,109,101,0,116,110,101,109,0,116,110,101,0,110,111,105,0,101,116,97,0,105,116,105,0,0,1,1,1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,2,1,102,116,115,52,97,117,120,0,42,0,67,82,69,65,84,69,32,84,65,66,76,69,32,120,40,116,101,114,109,44,32,99,111,108,44,32,100,111,99,117,109,101,110,116,115,44,32,111,99,99,117,114,114,101,110,99,101,115,44,32,108,97,110,103,117,97,103,101,105,100,32,72,73,68,68,69,78,41,0,105,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,115,32,116,111,32,102,116,115,52,97,117,120,32,99,111,110,115,116,114,117,99,116,111,114,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0,1,2,3,4,5,6,7,0,1,2,3,0,1,0,0,0,97,99,101,105,110,111,117,121,121,97,99,100,101,101,103,104,105,106,107,108,110,111,114,115,116,117,117,119,121,122,111,117,97,105,111,117,103,107,111,106,103,110,97,101,105,111,114,117,115,116,104,97,101,111,121,0,0,0,0,0,0,0,0,97,98,100,100,101,102,103,104,104,105,107,108,108,109,110,112,114,114,115,116,117,118,119,119,120,121,122,104,116,119,121,97,101,105,111,117,121,114,101,109,111,118,101,95,100,105,97,99,114,105,116,105,99,115,61,49,0,114,101,109,111,118,101,95,100,105,97,99,114,105,116,105,99,115,61,48,0,116,111,107,101,110,99,104,97,114,115,61,0,115,101,112,97,114,97,116,111,114,115,61,0,97,117,116,111,109,97,116,105,99,32,101,120,116,101,110,115,105,111,110,32,108,111,97,100,105,110,103,32,102,97,105,108,101,100,58,32,37,115,0,77,65,84,67,72,0,58,109,101,109,111,114,121,58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,101,99,111,118,101,114,101,100,32,37,100,32,112,97,103,101,115,32,102,114,111,109,32,37,115,0,217,213,5,249,32,161,99,215,99,97,110,110,111,116,32,108,105,109,105,116,32,87,65,76,32,115,105,122,101,58,32,37,115,0,99,97,110,110,111,116,32,111,112,101,110,32,102,105,108,101,32,97,116,32,108,105,110,101,32,37,100,32,111,102,32,91,37,46,49,48,115,93,0,114,101,99,111,118,101,114,101,100,32,37,100,32,102,114,97,109,101,115,32,102,114,111,109,32,87,65,76,32,102,105,108,101,32,37,115,0,45,106,111,117,114,110,97,108,0,0,45,119,97,108,0,0,110,111,108,111,99,107,0,105,109,109,117,116,97,98,108,101,0,0,102,105,108,101,58,0,108,111,99,97,108,104,111,115,116,0,105,110,118,97,108,105,100,32,117,114,105,32,97,117,116,104,111,114,105,116,121,58,32,37,46,42,115,0,118,102,115,0,99,97,99,104,101,0,109,111,100,101,0,97,99,99,101,115,115,0,110,111,32,115,117,99,104,32,37,115,32,109,111,100,101,58,32,37,115,0,37,115,32,109,111,100,101,32,110,111,116,32,97,108,108,111,119,101,100,58,32,37,115,0,110,111,32,115,117,99,104,32,118,102,115,58,32,37,115,0,114,111,0,114,119,0,114,119,99,0,109,101,109,111,114,121,0,115,104,97,114,101,100,0,112,114,105,118,97,116,101,0,117,110,97,98,108,101,32,116,111,32,117,115,101,32,102,117,110,99,116,105,111,110,32,37,115,32,105,110,32,116,104,101,32,114,101,113,117,101,115,116,101,100,32,99,111,110,116,101,120,116,0,117,110,97,98,108,101,32,116,111,32,100,101,108,101,116,101,47,109,111,100,105,102,121,32,117,115,101,114,45,102,117,110,99,116,105,111,110,32,100,117,101,32,116,111,32,97,99,116,105,118,101,32,115,116,97,116,101,109,101,110,116,115,0,117,110,97,98,108,101,32,116,111,32,99,108,111,115,101,32,100,117,101,32,116,111,32,117,110,102,105,110,97,108,105,122,101,100,32,115,116,97,116,101,109,101,110,116,115,32,111,114,32,117,110,102,105,110,105,115,104,101,100,32,98,97,99,107,117,112,115,0,102,97,105,108,101,100,32,109,101,109,111,114,121,32,114,101,115,105,122,101,32,37,117,32,116,111,32,37,117,32,98,121,116,101,115,0,102,97,105,108,101,100,32,116,111,32,97,108,108,111,99,97,116,101,32,37,117,32,98,121,116,101,115,32,111,102,32,109,101,109,111,114,121,0,117,110,114,101,99,111,103,110,105,122,101,100,32,116,111,107,101,110,58,32,34,37,84,34,0,110,101,97,114,32,34,37,84,34,58,32,115,121,110,116,97,120,32,101,114,114,111,114,0,117,110,107,110,111,119,110,32,116,97,98,108,101,32,111,112,116,105,111,110,58,32,37,46,42,115,0,115,101,116,32,108,105,115,116,0,116,111,111,32,109,97,110,121,32,97,114,103,117,109,101,110,116,115,32,111,110,32,102,117,110,99,116,105,111,110,32,37,84,0,113,117,97,108,105,102,105,101,100,32,116,97,98,108,101,32,110,97,109,101,115,32,97,114,101,32,110,111,116,32,97,108,108,111,119,101,100,32,111,110,32,73,78,83,69,82,84,44,32,85,80,68,65,84,69,44,32,97,110,100,32,68,69,76,69,84,69,32,115,116,97,116,101,109,101,110,116,115,32,119,105,116,104,105,110,32,116,114,105,103,103,101,114,115,0,116,104,101,32,73,78,68,69,88,69,68,32,66,89,32,99,108,97,117,115,101,32,105,115,32,110,111,116,32,97,108,108,111,119,101,100,32,111,110,32,85,80,68,65,84,69,32,111,114,32,68,69,76,69,84,69,32,115,116,97,116,101,109,101,110,116,115,32,119,105,116,104,105,110,32,116,114,105,103,103,101,114,115,0,116,104,101,32,78,79,84,32,73,78,68,69,88,69,68,32,99,108,97,117,115,101,32,105,115,32,110,111,116,32,97,108,108,111,119,101,100,32,111,110,32,85,80,68,65,84,69,32,111,114,32,68,69,76,69,84,69,32,115,116,97,116,101,109,101,110,116,115,32,119,105,116,104,105,110,32,116,114,105,103,103,101,114,115,0,144,1,145,2,145,1,146,1,146,3,147,0,147,1,147,3,148,1,149,3,151,0,151,1,151,2,150,0,150,1,150,1,150,1,149,2,149,2,149,2,153,1,153,0,149,2,149,3,149,5,149,2,154,6,156,1,158,0,158,3,157,1,157,0,155,5,155,2,162,0,162,2,160,3,160,1,164,3,165,1,152,1,152,1,152,1,166,0,166,1,168,1,168,4,168,6,169,1,169,2,170,1,170,1,167,2,167,0,173,2,173,2,173,4,173,3,173,3,173,2,173,2,173,3,173,5,173,2,173,4,173,4,173,1,173,2,178,0,178,1,180,0,180,2,182,2,182,3,182,3,182,3,183,2,183,2,183,1,183,1,183,2,181,3,181,2,184,0,184,2,184,2,161,0,161,2,185,3,185,1,186,1,186,0,187,2,187,7,187,5,187,5,187,10,190,0,190,1,176,0,176,3,191,0,191,2,192,1,192,1,192,1,149,4,194,2,194,0,149,9,149,4,149,1,163,2,196,1,196,3,199,1,199,2,199,1,197,9,197,1,208,4,208,5,200,1,200,1,200,0,211,2,211,0,201,3,201,2,201,4,212,2,212,1,212,0,202,0,202,2,214,2,214,0,213,7,213,9,213,7,213,7,159,0,159,2,195,2,215,1,215,2,215,3,215,4,217,2,217,0,216,0,216,3,216,2,218,4,218,0,206,0,206,3,188,4,188,2,177,1,177,1,177,0,204,0,204,3,205,0,205,2,207,0,207,2,207,4,207,4,149,6,203,0,203,2,149,8,220,5,220,3,149,6,149,7,221,2,221,1,222,0,222,3,219,3,219,1,175,1,175,3,174,1,175,1,175,1,175,3,175,5,174,1,174,1,175,1,175,3,175,6,175,5,175,4,174,1,175,3,175,3,175,3,175,3,175,3,175,3,175,3,175,3,223,1,223,2,175,3,175,5,175,2,175,3,175,3,175,4,175,2,175,2,175,2,175,2,224,1,224,2,175,5,225,1,225,2,175,5,175,3,175,5,175,4,175,4,175,5,227,5,227,4,228,2,228,0,226,1,226,0,210,1,210,0,209,3,209,1,149,12,229,1,229,0,179,0,179,3,189,5,189,3,230,0,230,2,149,4,149,1,149,2,149,3,149,5,149,6,149,5,149,6,231,1,231,1,231,1,231,1,231,1,171,2,171,1,172,2,149,5,232,11,234,1,234,1,234,2,234,0,235,1,235,1,235,3,236,0,236,3,237,0,237,2,233,3,233,2,239,1,239,3,240,0,240,3,240,2,238,7,238,5,238,5,238,1,175,4,175,6,193,1,193,1,193,1,149,4,149,6,149,3,242,0,242,2,241,1,241,0,149,1,149,3,149,1,149,3,149,6,149,6,243,1,244,0,244,1,149,1,149,4,245,8,246,1,246,3,247,0,247,2,248,1,248,3,249,1,250,0,250,4,250,2,198,0,198,2,198,3,251,6,251,8,100,117,112,108,105,99,97,116,101,32,87,73,84,72,32,116,97,98,108,101,32,110,97,109,101,58,32,37,115,0,110,111,116,32,97,117,116,104,111,114,105,122,101,100,0,97,117,116,104,111,114,105,122,101,114,32,109,97,108,102,117,110,99,116,105,111,110,0,67,82,69,65,84,69,32,86,73,82,84,85,65,76,32,84,65,66,76,69,32,37,84,0,85,80,68,65,84,69,32,37,81,46,37,115,32,83,69,84,32,116,121,112,101,61,39,116,97,98,108,101,39,44,32,110,97,109,101,61,37,81,44,32,116,98,108,95,110,97,109,101,61,37,81,44,32,114,111,111,116,112,97,103,101,61,48,44,32,115,113,108,61,37,81,32,87,72,69,82,69,32,114,111,119,105,100,61,35,37,100,0,110,97,109,101,61,39,37,113,39,32,65,78,68,32,116,121,112,101,61,39,116,97,98,108,101,39,0,118,105,114,116,117,97,108,32,116,97,98,108,101,115,32,109,97,121,32,110,111,116,32,98,101,32,97,108,116,101,114,101,100,0,67,97,110,110,111,116,32,97,100,100,32,97,32,99,111,108,117,109,110,32,116,111,32,97,32,118,105,101,119,0,115,113,108,105,116,101,95,97,108,116,101,114,116,97,98,95,37,115,0,117,110,97,98,108,101,32,116,111,32,111,112,101,110,32,97,32,116,101,109,112,111,114,97,114,121,32,100,97,116,97,98,97,115,101,32,102,105,108,101,32,102,111,114,32,115,116,111,114,105,110,103,32,116,101,109,112,111,114,97,114,121,32,116,97,98,108,101,115,0,115,113,108,105,116,101,95,0,116,97,98,108,101,32,37,115,32,109,97,121,32,110,111,116,32,98,101,32,97,108,116,101,114,101,100,0,67,97,110,110,111,116,32,97,100,100,32,97,32,80,82,73,77,65,82,89,32,75,69,89,32,99,111,108,117,109,110,0,67,97,110,110,111,116,32,97,100,100,32,97,32,85,78,73,81,85,69,32,99,111,108,117,109,110,0,67,97,110,110,111,116,32,97,100,100,32,97,32,82,69,70,69,82,69,78,67,69,83,32,99,111,108,117,109,110,32,119,105,116,104,32,110,111,110,45,78,85,76,76,32,100,101,102,97,117,108,116,32,118,97,108,117,101,0,67,97,110,110,111,116,32,97,100,100,32,97,32,78,79,84,32,78,85,76,76,32,99,111,108,117,109,110,32,119,105,116,104,32,100,101,102,97,117,108,116,32,118,97,108,117,101,32,78,85,76,76,0,67,97,110,110,111,116,32,97,100,100,32,97,32,99,111,108,117,109,110,32,119,105,116,104,32,110,111,110,45,99,111,110,115,116,97,110,116,32,100,101,102,97,117,108,116,0,85,80,68,65,84,69,32,34,37,119,34,46,37,115,32,83,69,84,32,115,113,108,32,61,32,115,117,98,115,116,114,40,115,113,108,44,49,44,37,100,41,32,124,124,32,39,44,32,39,32,124,124,32,37,81,32,124,124,32,115,117,98,115,116,114,40,115,113,108,44,37,100,41,32,87,72,69,82,69,32,116,121,112,101,32,61,32,39,116,97,98,108,101,39,32,65,78,68,32,110,97,109,101,32,61,32,37,81,0,116,98,108,95,110,97,109,101,61,37,81,0,116,121,112,101,61,39,116,114,105,103,103,101,114,39,32,65,78,68,32,40,37,115,41,0,110,97,109,101,61,37,81,0,37,115,32,79,82,32,110,97,109,101,61,37,81,0,45,0,37,108,108,100,0,37,33,46,49,53,103,0,116,104,101,114,101,32,105,115,32,97,108,114,101,97,100,121,32,97,110,111,116,104,101,114,32,116,97,98,108,101,32,111,114,32,105,110,100,101,120,32,119,105,116,104,32,116,104,105,115,32,110,97,109,101,58,32,37,115,0,118,105,101,119,32,37,115,32,109,97,121,32,110,111,116,32,98,101,32,97,108,116,101,114,101,100,0,85,80,68,65,84,69,32,34,37,119,34,46,37,115,32,83,69,84,32,115,113,108,32,61,32,115,113,108,105,116,101,95,114,101,110,97,109,101,95,112,97,114,101,110,116,40,115,113,108,44,32,37,81,44,32,37,81,41,32,87,72,69,82,69,32,37,115,59,0,85,80,68,65,84,69,32,37,81,46,37,115,32,83,69,84,32,115,113,108,32,61,32,67,65,83,69,32,87,72,69,78,32,116,121,112,101,32,61,32,39,116,114,105,103,103,101,114,39,32,84,72,69,78,32,115,113,108,105,116,101,95,114,101,110,97,109,101,95,116,114,105,103,103,101,114,40,115,113,108,44,32,37,81,41,69,76,83,69,32,115,113,108,105,116,101,95,114,101,110,97,109,101,95,116,97,98,108,101,40,115,113,108,44,32,37,81,41,32,69,78,68,44,32,116,98,108,95,110,97,109,101,32,61,32,37,81,44,32,110,97,109,101,32,61,32,67,65,83,69,32,87,72,69,78,32,116,121,112,101,61,39,116,97,98,108,101,39,32,84,72,69,78,32,37,81,32,87,72,69,78,32,110,97,109,101,32,76,73,75,69,32,39,115,113,108,105,116,101,95,97,117,116,111,105,110,100,101,120,37,37,39,32,65,78,68,32,116,121,112,101,61,39,105,110,100,101,120,39,32,84,72,69,78,32,39,115,113,108,105,116,101,95,97,117,116,111,105,110,100,101,120,95,39,32,124,124,32,37,81,32,124,124,32,115,117,98,115,116,114,40,110,97,109,101,44,37,100,43,49,56,41,32,69,76,83,69,32,110,97,109,101,32,69,78,68,32,87,72,69,82,69,32,116,98,108,95,110,97,109,101,61,37,81,32,67,79,76,76,65,84,69,32,110,111,99,97,115,101,32,65,78,68,32,40,116,121,112,101,61,39,116,97,98,108,101,39,32,79,82,32,116,121,112,101,61,39,105,110,100,101,120,39,32,79,82,32,116,121,112,101,61,39,116,114,105,103,103,101,114,39,41,59,0,115,113,108,105,116,101,95,115,101,113,117,101,110,99,101,0,85,80,68,65,84,69,32,34,37,119,34,46,115,113,108,105,116,101,95,115,101,113,117,101,110,99,101,32,115,101,116,32,110,97,109,101,32,61,32,37,81,32,87,72,69,82,69,32,110,97,109,101,32,61,32,37,81,0,85,80,68,65,84,69,32,115,113,108,105,116,101,95,116,101,109,112,95,109,97,115,116,101,114,32,83,69,84,32,115,113,108,32,61,32,115,113,108,105,116,101,95,114,101,110,97,109,101,95,116,114,105,103,103,101,114,40,115,113,108,44,32,37,81,41,44,32,116,98,108,95,110,97,109,101,32,61,32,37,81,32,87,72,69,82,69,32,37,115,59,0,118,105,101,119,32,37,115,32,105,115,32,99,105,114,99,117,108,97,114,108,121,32,100,101,102,105,110,101,100,0,110,111,32,115,117,99,104,32,99,111,108,108,97,116,105,111,110,32,115,101,113,117,101,110,99,101,58,32,37,115,0,3,2,1,97,32,71,82,79,85,80,32,66,89,32,99,108,97,117,115,101,32,105,115,32,114,101,113,117,105,114,101,100,32,98,101,102,111,114,101,32,72,65,86,73,78,71,0,79,82,68,69,82,0,71,82,79,85,80,0,97,103,103,114,101,103,97,116,101,32,102,117,110,99,116,105,111,110,115,32,97,114,101,32,110,111,116,32,97,108,108,111,119,101,100,32,105,110,32,116,104,101,32,71,82,79,85,80,32,66,89,32,99,108,97,117,115,101,0,116,111,111,32,109,97,110,121,32,116,101,114,109,115,32,105,110,32,79,82,68,69,82,32,66,89,32,99,108,97,117,115,101,0,37,114,32,79,82,68,69,82,32,66,89,32,116,101,114,109,32,100,111,101,115,32,110,111,116,32,109,97,116,99,104,32,97,110,121,32,99,111,108,117,109,110,32,105,110,32,116,104,101,32,114,101,115,117,108,116,32,115,101,116,0,37,114,32,37,115,32,66,89,32,116,101,114,109,32,111,117,116,32,111,102,32,114,97,110,103,101,32,45,32,115,104,111,117,108,100,32,98,101,32,98,101,116,119,101,101,110,32,49,32,97,110,100,32,37,100,0,97,108,108,32,86,65,76,85,69,83,32,109,117,115,116,32,104,97,118,101,32,116,104,101,32,115,97,109,101,32,110,117,109,98,101,114,32,111,102,32,116,101,114,109,115,0,83,69,76,69,67,84,115,32,116,111,32,116,104,101,32,108,101,102,116,32,97,110,100,32,114,105,103,104,116,32,111,102,32,37,115,32,100,111,32,110,111,116,32,104,97,118,101,32,116,104,101,32,115,97,109,101,32,110,117,109,98,101,114,32,111,102,32,114,101,115,117,108,116,32,99,111,108,117,109,110,115,0,85,78,73,79,78,32,65,76,76,0,73,78,84,69,82,83,69,67,84,0,69,88,67,69,80,84,0,85,78,73,79,78,0,116,111,111,32,109,97,110,121,32,116,101,114,109,115,32,105,110,32,37,115,32,66,89,32,99,108,97,117,115,101,0,69,120,112,114,101,115,115,105,111,110,32,116,114,101,101,32,105,115,32,116,111,111,32,108,97,114,103,101,32,40,109,97,120,105,109,117,109,32,100,101,112,116,104,32,37,100,41,0,116,104,101,32,34,46,34,32,111,112,101,114,97,116,111,114,0,102,117,110,99,116,105,111,110,115,0,115,101,99,111,110,100,32,97,114,103,117,109,101,110,116,32,116,111,32,108,105,107,101,108,105,104,111,111,100,40,41,32,109,117,115,116,32,98,101,32,97,32,99,111,110,115,116,97,110,116,32,98,101,116,119,101,101,110,32,48,46,48,32,97,110,100,32,49,46,48,0,110,111,116,32,97,117,116,104,111,114,105,122,101,100,32,116,111,32,117,115,101,32,102,117,110,99,116,105,111,110,58,32,37,115,0,110,111,110,45,100,101,116,101,114,109,105,110,105,115,116,105,99,32,102,117,110,99,116,105,111,110,115,0,109,105,115,117,115,101,32,111,102,32,97,103,103,114,101,103,97,116,101,32,102,117,110,99,116,105,111,110,32,37,46,42,115,40,41,0,110,111,32,115,117,99,104,32,102,117,110,99,116,105,111,110,58,32,37,46,42,115,0,119,114,111,110,103,32,110,117,109,98,101,114,32,111,102,32,97,114,103,117,109,101,110,116,115,32,116,111,32,102,117,110,99,116,105,111,110,32,37,46,42,115,40,41,0,115,117,98,113,117,101,114,105,101,115,0,112,97,114,97,109,101,116,101,114,115,0,112,97,114,116,105,97,108,32,105,110,100,101,120,32,87,72,69,82,69,32,99,108,97,117,115,101,115,0,105,110,100,101,120,32,101,120,112,114,101,115,115,105,111,110,115,0,67,72,69,67,75,32,99,111,110,115,116,114,97,105,110,116,115,0,37,115,32,112,114,111,104,105,98,105,116,101,100,32,105,110,32,37,115,0,110,101,119,0,111,108,100,0,109,105,115,117,115,101,32,111,102,32,97,108,105,97,115,101,100,32,97,103,103,114,101,103,97,116,101,32,37,115,0,110,111,32,115,117,99,104,32,99,111,108,117,109,110,0,97,109,98,105,103,117,111,117,115,32,99,111,108,117,109,110,32,110,97,109,101,0,37,115,58,32,37,115,46,37,115,46,37,115,0,37,115,58,32,37,115,46,37,115,0,37,115,58,32,37,115,0,97,99,99,101,115,115,32,116,111,32,37,115,46,37,115,46,37,115,32,105,115,32,112,114,111,104,105,98,105,116,101,100,0,97,99,99,101,115,115,32,116,111,32,37,115,46,37,115,32,105,115,32,112,114,111,104,105,98,105,116,101,100,0,115,113,108,105,116,101,95,115,113,95,37,112,0,116,111,111,32,109,97,110,121,32,114,101,102,101,114,101,110,99,101,115,32,116,111,32,34,37,115,34,58,32,109,97,120,32,54,53,53,51,53,0,37,115,46,37,115,0,37,115,46,37,115,46,37,115,0,110,111,32,115,117,99,104,32,116,97,98,108,101,58,32,37,115,0,110,111,32,116,97,98,108,101,115,32,115,112,101,99,105,102,105,101,100,0,116,111,111,32,109,97,110,121,32,99,111,108,117,109,110,115,32,105,110,32,114,101,115,117,108,116,32,115,101,116,0,97,32,78,65,84,85,82,65,76,32],"i8",4,l.aa+20862);
  32. z([106,111,105,110,32,109,97,121,32,110,111,116,32,104,97,118,101,32,97,110,32,79,78,32,111,114,32,85,83,73,78,71,32,99,108,97,117,115,101,0,99,97,110,110,111,116,32,104,97,118,101,32,98,111,116,104,32,79,78,32,97,110,100,32,85,83,73,78,71,32,99,108,97,117,115,101,115,32,105,110,32,116,104,101,32,115,97,109,101,32,106,111,105,110,0,99,97,110,110,111,116,32,106,111,105,110,32,117,115,105,110,103,32,99,111,108,117,109,110,32,37,115,32,45,32,99,111,108,117,109,110,32,110,111,116,32,112,114,101,115,101,110,116,32,105,110,32,98,111,116,104,32,116,97,98,108,101,115,0,110,111,32,115,117,99,104,32,105,110,100,101,120,58,32,37,115,0,39,37,115,39,32,105,115,32,110,111,116,32,97,32,102,117,110,99,116,105,111,110,0,109,117,108,116,105,112,108,101,32,114,101,102,101,114,101,110,99,101,115,32,116,111,32,114,101,99,117,114,115,105,118,101,32,116,97,98,108,101,58,32,37,115,0,99,105,114,99,117,108,97,114,32,114,101,102,101,114,101,110,99,101,58,32,37,115,0,116,97,98,108,101,32,37,115,32,104,97,115,32,37,100,32,118,97,108,117,101,115,32,102,111,114,32,37,100,32,99,111,108,117,109,110,115,0,109,117,108,116,105,112,108,101,32,114,101,99,117,114,115,105,118,101,32,114,101,102,101,114,101,110,99,101,115,58,32,37,115,0,114,101,99,117,114,115,105,118,101,32,114,101,102,101,114,101,110,99,101,32,105,110,32,97,32,115,117,98,113,117,101,114,121,58,32,37,115,0,37,46,42,122,58,37,117,0,110,111,32,115,117,99,104,32,109,111,100,117,108,101,58,32,37,115,0,118,116,97,98,108,101,32,99,111,110,115,116,114,117,99,116,111,114,32,99,97,108,108,101,100,32,114,101,99,117,114,115,105,118,101,108,121,58,32,37,115,0,118,116,97,98,108,101,32,99,111,110,115,116,114,117,99,116,111,114,32,102,97,105,108,101,100,58,32,37,115,0,118,116,97,98,108,101,32,99,111,110,115,116,114,117,99,116,111,114,32,100,105,100,32,110,111,116,32,100,101,99,108,97,114,101,32,115,99,104,101,109,97,58,32,37,115,0,104,105,100,100,101,110,0,32,104,105,100,100,101,110,0,111,98,106,101,99,116,32,110,97,109,101,32,114,101,115,101,114,118,101,100,32,102,111,114,32,105,110,116,101,114,110,97,108,32,117,115,101,58,32,37,115,0,99,111,114,114,117,112,116,32,100,97,116,97,98,97,115,101,0,117,110,107,110,111,119,110,32,100,97,116,97,98,97,115,101,32,37,84,0,105,100,120,0,116,98,108,0,115,113,108,105,116,101,95,37,0,66,66,66,0,115,116,97,116,95,103,101,116,0,37,108,108,117,0,32,37,108,108,117,0,115,116,97,116,95,112,117,115,104,0,115,116,97,116,95,105,110,105,116,0,67,82,69,65,84,69,32,84,65,66,76,69,32,37,81,46,37,115,40,37,115,41,0,68,69,76,69,84,69,32,70,82,79,77,32,37,81,46,37,115,32,87,72,69,82,69,32,37,115,61,37,81,0,116,98,108,44,105,100,120,44,115,116,97,116,0,115,113,108,105,116,101,95,115,116,97,116,51,0,115,113,108,105,116,101,95,115,116,97,116,52,0,117,110,97,98,108,101,32,116,111,32,105,100,101,110,116,105,102,121,32,116,104,101,32,111,98,106,101,99,116,32,116,111,32,98,101,32,114,101,105,110,100,101,120,101,100,0,105,110,100,101,120,32,39,37,113,39,0,44,32,0,109,105,115,117,115,101,32,111,102,32,97,103,103,114,101,103,97,116,101,58,32,37,115,40,41,0,117,110,107,110,111,119,110,32,102,117,110,99,116,105,111,110,58,32,37,46,42,115,40,41,0,82,65,73,83,69,40,41,32,109,97,121,32,111,110,108,121,32,98,101,32,117,115,101,100,32,119,105,116,104,105,110,32,97,32,116,114,105,103,103,101,114,45,112,114,111,103,114,97,109,0,67,79,82,82,69,76,65,84,69,68,32,0,76,73,83,84,0,83,67,65,76,65,82,0,69,88,69,67,85,84,69,32,37,115,37,115,32,83,85,66,81,85,69,82,89,32,37,100,0,48,120,0,104,101,120,32,108,105,116,101,114,97,108,32,116,111,111,32,98,105,103,58,32,37,115,0,115,113,108,105,116,101,95,100,101,116,97,99,104,0,110,111,32,115,117,99,104,32,100,97,116,97,98,97,115,101,58,32,37,115,0,99,97,110,110,111,116,32,100,101,116,97,99,104,32,100,97,116,97,98,97,115,101,32,37,115,0,99,97,110,110,111,116,32,68,69,84,65,67,72,32,100,97,116,97,98,97,115,101,32,119,105,116,104,105,110,32,116,114,97,110,115,97,99,116,105,111,110,0,100,97,116,97,98,97,115,101,32,37,115,32,105,115,32,108,111,99,107,101,100,0,115,113,108,105,116,101,95,97,116,116,97,99,104,0,116,111,111,32,109,97,110,121,32,97,116,116,97,99,104,101,100,32,100,97,116,97,98,97,115,101,115,32,45,32,109,97,120,32,37,100,0,99,97,110,110,111,116,32,65,84,84,65,67,72,32,100,97,116,97,98,97,115,101,32,119,105,116,104,105,110,32,116,114,97,110,115,97,99,116,105,111,110,0,100,97,116,97,98,97,115,101,32,37,115,32,105,115,32,97,108,114,101,97,100,121,32,105,110,32,117,115,101,0,100,97,116,97,98,97,115,101,32,105,115,32,97,108,114,101,97,100,121,32,97,116,116,97,99,104,101,100,0,111,117,116,32,111,102,32,109,101,109,111,114,121,0,117,110,97,98,108,101,32,116,111,32,111,112,101,110,32,100,97,116,97,98,97,115,101,58,32,37,115,0,110,111,32,115,117,99,104,32,116,114,105,103,103,101,114,58,32,37,83,0,68,69,76,69,84,69,32,70,82,79,77,32,37,81,46,37,115,32,87,72,69,82,69,32,110,97,109,101,61,37,81,32,65,78,68,32,116,121,112,101,61,39,116,114,105,103,103,101,114,39,0,116,101,109,112,111,114,97,114,121,32,116,114,105,103,103,101,114,32,109,97,121,32,110,111,116,32,104,97,118,101,32,113,117,97,108,105,102,105,101,100,32,110,97,109,101,0,99,97,110,110,111,116,32,99,114,101,97,116,101,32,116,114,105,103,103,101,114,115,32,111,110,32,118,105,114,116,117,97,108,32,116,97,98,108,101,115,0,116,114,105,103,103,101,114,32,37,84,32,97,108,114,101,97,100,121,32,101,120,105,115,116,115,0,99,97,110,110,111,116,32,99,114,101,97,116,101,32,116,114,105,103,103,101,114,32,111,110,32,115,121,115,116,101,109,32,116,97,98,108,101,0,66,69,70,79,82,69,0,65,70,84,69,82,0,99,97,110,110,111,116,32,99,114,101,97,116,101,32,37,115,32,116,114,105,103,103,101,114,32,111,110,32,118,105,101,119,58,32,37,83,0,99,97,110,110,111,116,32,99,114,101,97,116,101,32,73,78,83,84,69,65,68,32,79,70,32,116,114,105,103,103,101,114,32,111,110,32,116,97,98,108,101,58,32,37,83,0,37,115,32,37,84,32,99,97,110,110,111,116,32,114,101,102,101,114,101,110,99,101,32,111,98,106,101,99,116,115,32,105,110,32,100,97,116,97,98,97,115,101,32,37,115,0,37,115,32,99,97,110,110,111,116,32,117,115,101,32,118,97,114,105,97,98,108,101,115,0,73,78,83,69,82,84,32,73,78,84,79,32,37,81,46,37,115,32,86,65,76,85,69,83,40,39,116,114,105,103,103,101,114,39,44,37,81,44,37,81,44,48,44,39,67,82,69,65,84,69,32,84,82,73,71,71,69,82,32,37,113,39,41,0,116,121,112,101,61,39,116,114,105,103,103,101,114,39,32,65,78,68,32,110,97,109,101,61,39,37,113,39,0,45,37,84,0,114,101,115,117,108,116,0,99,97,99,104,101,95,115,105,122,101,0,2,0,0,0,51,0,1,3,138,1,8,0,22,0,2,0,90,1,2,1,138,1,8,0,22,0,1,0,160,0,0,0,33,1,1,0,112,97,103,101,95,115,105,122,101,0,115,101,99,117,114,101,95,100,101,108,101,116,101,0,110,111,114,109,97,108,0,101,120,99,108,117,115,105,118,101,0,108,111,99,107,105,110,103,95,109,111,100,101,0,106,111,117,114,110,97,108,95,109,111,100,101,0,106,111,117,114,110,97,108,95,115,105,122,101,95,108,105,109,105,116,0,97,117,116,111,95,118,97,99,117,117,109,0,2,0,1,0,51,0,1,4,45,1,0,0,21,0,2,0,52,0,7,0,99,97,99,104,101,95,115,112,105,108,108,0,109,109,97,112,95,115,105,122,101,0,116,101,109,112,95,115,116,111,114,101,0,116,101,109,112,95,115,116,111,114,101,95,100,105,114,101,99,116,111,114,121,0,110,111,116,32,97,32,119,114,105,116,97,98,108,101,32,100,105,114,101,99,116,111,114,121,0,115,121,110,99,104,114,111,110,111,117,115,0,83,97,102,101,116,121,32,108,101,118,101,108,32,109,97,121,32,110,111,116,32,98,101,32,99,104,97,110,103,101,100,32,105,110,115,105,100,101,32,97,32,116,114,97,110,115,97,99,116,105,111,110,0,105,115,115,105,115,105,0,115,115,105,105,0,115,105,105,0,105,105,115,0,105,115,105,0,105,115,105,115,105,0,105,115,115,0,105,115,0,105,105,115,115,115,115,115,115,0,78,79,78,69,0,115,105,0,105,110,116,101,103,114,105,116,121,95,99,104,101,99,107,0,42,42,42,32,105,110,32,100,97,116,97,98,97,115,101,32,37,115,32,42,42,42,10,0,78,85,76,76,32,118,97,108,117,101,32,105,110,32,37,115,46,37,115,0,114,111,119,32,0,32,109,105,115,115,105,110,103,32,102,114,111,109,32,105,110,100,101,120,32,0,110,111,110,45,117,110,105,113,117,101,32,101,110,116,114,121,32,105,110,32,105,110,100,101,120,32,0,119,114,111,110,103,32,35,32,111,102,32,101,110,116,114,105,101,115,32,105,110,32,105,110,100,101,120,32,0,37,1,0,0,45,1,4,0,97,0,3,0,33,3,1,0,111,107,0,101,110,99,111,100,105,110,103,0,117,110,115,117,112,112,111,114,116,101,100,32,101,110,99,111,100,105,110,103,58,32,37,115,0,2,0,1,0,52,0,0,0,2,0,0,0,51,0,1,0,33,1,1,0,99,111,109,112,105,108,101,95,111,112,116,105,111,110,0,102,117,108,108,0,114,101,115,116,97,114,116,0,116,114,117,110,99,97,116,101,0,119,97,108,95,97,117,116,111,99,104,101,99,107,112,111,105,110,116,0,116,105,109,101,111,117,116,0,115,111,102,116,95,104,101,97,112,95,108,105,109,105,116,0,116,104,114,101,97,100,115,0,98,117,115,121,0,99,104,101,99,107,112,111,105,110,116,101,100,0,85,84,70,56,0,85,84,70,45,56,0,85,84,70,45,49,54,108,101,0,85,84,70,45,49,54,98,101,0,85,84,70,49,54,108,101,0,85,84,70,49,54,98,101,0,85,84,70,45,49,54,0,85,84,70,49,54,0,37,95,0,0,108,105,107,101,0,103,108,111,98,0,76,73,75,69,32,111,114,32,71,76,79,66,32,112,97,116,116,101,114,110,32,116,111,111,32,99,111,109,112,108,101,120,0,69,83,67,65,80,69,32,101,120,112,114,101,115,115,105,111,110,32,109,117,115,116,32,98,101,32,97,32,115,105,110,103,108,101,32,99,104,97,114,97,99,116,101,114,0,102,111,114,101,105,103,110,32,107,101,121,32,109,105,115,109,97,116,99,104,32,45,32,34,37,119,34,32,114,101,102,101,114,101,110,99,105,110,103,32,34,37,119,34,0,116,97,98,108,101,0,112,97,114,101,110,116,0,102,107,105,100,0,83,69,84,32,78,85,76,76,0,83,69,84,32,68,69,70,65,85,76,84,0,67,65,83,67,65,68,69,0,82,69,83,84,82,73,67,84,0,78,79,32,65,67,84,73,79,78,0,105,100,0,115,101,113,0,102,114,111,109,0,116,111,0,111,110,95,117,112,100,97,116,101,0,111,110,95,100,101,108,101,116,101,0,109,97,116,99,104,0,110,97,109,101,0,102,105,108,101,0,99,0,117,0,112,107,0,117,110,105,113,117,101,0,111,114,105,103,105,110,0,112,97,114,116,105,97,108,0,115,101,113,110,111,0,99,105,100,0,99,111,108,108,0,107,101,121,0,105,110,100,101,120,0,119,105,100,116,104,0,104,101,105,103,104,116,0,116,121,112,101,0,110,111,116,110,117,108,108,0,100,102,108,116,95,118,97,108,117,101,0,116,101,109,112,111,114,97,114,121,32,115,116,111,114,97,103,101,32,99,97,110,110,111,116,32,98,101,32,99,104,97,110,103,101,100,32,102,114,111,109,32,119,105,116,104,105,110,32,97,32,116,114,97,110,115,97,99,116,105,111,110,0,110,111,110,101,0,105,110,99,114,101,109,101,110,116,97,108,0,100,101,108,101,116,101,0,112,101,114,115,105,115,116,0,111,102,102,0,119,97,108,0,97,112,112,108,105,99,97,116,105,111,110,95,105,100,0,97,117,116,111,109,97,116,105,99,95,105,110,100,101,120,0,98,117,115,121,95,116,105,109,101,111,117,116,0,99,97,115,101,95,115,101,110,115,105,116,105,118,101,95,108,105,107,101,0,99,101,108,108,95,115,105,122,101,95,99,104,101,99,107,0,99,104,101,99,107,112,111,105,110,116,95,102,117,108,108,102,115,121,110,99,0,99,111,108,108,97,116,105,111,110,95,108,105,115,116,0,99,111,109,112,105,108,101,95,111,112,116,105,111,110,115,0,99,111,117,110,116,95,99,104,97,110,103,101,115,0,100,97,116,97,95,118,101,114,115,105,111,110,0,100,97,116,97,98,97,115,101,95,108,105,115,116,0,100,101,102,97,117,108,116,95,99,97,99,104,101,95,115,105,122,101,0,100,101,102,101,114,95,102,111,114,101,105,103,110,95,107,101,121,115,0,101,109,112,116,121,95,114,101,115,117,108,116,95,99,97,108,108,98,97,99,107,115,0,102,111,114,101,105,103,110,95,107,101,121,95,99,104,101,99,107,0,102,111,114,101,105,103,110,95,107,101,121,95,108,105,115,116,0,102,111,114,101,105,103,110,95,107,101,121,115,0,102,114,101,101,108,105,115,116,95,99,111,117,110,116,0,102,117,108,108,95,99,111,108,117,109,110,95,110,97,109,101,115,0,102,117,108,108,102,115,121,110,99,0,105,103,110,111,114,101,95,99,104,101,99,107,95,99,111,110,115,116,114,97,105,110,116,115,0,105,110,99,114,101,109,101,110,116,97,108,95,118,97,99,117,117,109,0,105,110,100,101,120,95,105,110,102,111,0,105,110,100,101,120,95,108,105,115,116,0,105,110,100,101,120,95,120,105,110,102,111,0,108,101,103,97,99,121,95,102,105,108,101,95,102,111,114,109,97,116,0,109,97,120,95,112,97,103,101,95,99,111,117,110,116,0,112,97,103,101,95,99,111,117,110,116,0,113,117,101,114,121,95,111,110,108,121,0,113,117,105,99,107,95,99,104,101,99,107,0,114,101,97,100,95,117,110,99,111,109,109,105,116,116,101,100,0,114,101,99,117,114,115,105,118,101,95,116,114,105,103,103,101,114,115,0,114,101,118,101,114,115,101,95,117,110,111,114,100,101,114,101,100,95,115,101,108,101,99,116,115,0,115,99,104,101,109,97,95,118,101,114,115,105,111,110,0,115,104,111,114,116,95,99,111,108,117,109,110,95,110,97,109,101,115,0,115,104,114,105,110,107,95,109,101,109,111,114,121,0,115,116,97,116,115,0,116,97,98,108,101,95,105,110,102,111,0,117,115,101,114,95,118,101,114,115,105,111,110,0,119,97,108,95,99,104,101,99,107,112,111,105,110,116,0,119,114,105,116,97,98,108,101,95,115,99,104,101,109,97,0,110,111,32,115,117,99,104,32,105,110,100,101,120,58,32,37,83,0,105,110,100,101,120,32,97,115,115,111,99,105,97,116,101,100,32,119,105,116,104,32,85,78,73,81,85,69,32,111,114,32,80,82,73,77,65,82,89,32,75,69,89,32,99,111,110,115,116,114,97,105,110,116,32,99,97,110,110,111,116,32,98,101,32,100,114,111,112,112,101,100,0,68,69,76,69,84,69,32,70,82,79,77,32,37,81,46,37,115,32,87,72,69,82,69,32,110,97,109,101,61,37,81,32,65,78,68,32,116,121,112,101,61,39,105,110,100,101,120,39,0,85,80,68,65,84,69,32,37,81,46,37,115,32,83,69,84,32,114,111,111,116,112,97,103,101,61,37,100,32,87,72,69,82,69,32,35,37,100,32,65,78,68,32,114,111,111,116,112,97,103,101,61,35,37,100,0,115,113,108,105,116,101,95,115,116,97,116,37,100,0,115,121,110,116,97,120,32,101,114,114,111,114,32,97,102,116,101,114,32,99,111,108,117,109,110,32,110,97,109,101,32,34,37,46,42,115,34,0,48,0,118,97,114,105,97,98,108,101,32,110,117,109,98,101,114,32,109,117,115,116,32,98,101,32,98,101,116,119,101,101,110,32,63,49,32,97,110,100,32,63,37,100,0,116,111,111,32,109,97,110,121,32,83,81,76,32,118,97,114,105,97,98,108,101,115,0,116,97,98,108,101,32,37,83,32,104,97,115,32,110,111,32,99,111,108,117,109,110,32,110,97,109,101,100,32,37,115,0,116,97,98,108,101,32,37,83,32,104,97,115,32,37,100,32,99,111,108,117,109,110,115,32,98,117,116,32,37,100,32,118,97,108,117,101,115,32,119,101,114,101,32,115,117,112,112,108,105,101,100,0,37,100,32,118,97,108,117,101,115,32,102,111,114,32,37,100,32,99,111,108,117,109,110,115,0,114,111,119,115,32,105,110,115,101,114,116,101,100,0,77,0,2,0,74,0,0,0,49,0,2,0,75,0,0,0,61,0,0,0,97,116,32,109,111,115,116,32,37,100,32,116,97,98,108,101,115,32,105,110,32,97,32,106,111,105,110,0,66,64,63,65,0,0,108,105,66,63,65,64,117,115,114,116,7,6,108,105,83,69,65,82,67,72,0,83,67,65,78,0,32,83,85,66,81,85,69,82,89,32,37,100,0,32,84,65,66,76,69,32,37,115,0,32,65,83,32,37,115,0,80,82,73,77,65,82,89,32,75,69,89,0,65,85,84,79,77,65,84,73,67,32,80,65,82,84,73,65,76,32,67,79,86,69,82,73,78,71,32,73,78,68,69,88,0,65,85,84,79,77,65,84,73,67,32,67,79,86,69,82,73,78,71,32,73,78,68,69,88,0,67,79,86,69,82,73,78,71,32,73,78,68,69,88,32,37,115,0,73,78,68,69,88,32,37,115,0,32,85,83,73,78,71,32,0,61,0,62,63,32,65,78,68,32,114,111,119,105,100,60,0,62,0,60,0,32,85,83,73,78,71,32,73,78,84,69,71,69,82,32,80,82,73,77,65,82,89,32,75,69,89,32,40,114,111,119,105,100,37,115,63,41,0,32,86,73,82,84,85,65,76,32,84,65,66,76,69,32,73,78,68,69,88,32,37,100,58,37,115,0,32,40,0,32,65,78,68,32,0,37,115,61,63,0,65,78,89,40,37,115,41,0,41,0,60,101,120,112,114,62,0,97,117,116,111,109,97,116,105,99,32,105,110,100,101,120,32,111,110,32,37,115,40,37,115,41,0,97,117,116,111,45,105,110,100,101,120,0,110,111,32,113,117,101,114,121,32,115,111,108,117,116,105,111,110,0,10,10,9,9,8,8,7,7,7,6,6,6,5,5,5,4,4,4,4,3,3,3,3,3,3,2,2,2,2,2,2,2,37,115,46,120,66,101,115,116,73,110,100,101,120,40,41,32,109,97,108,102,117,110,99,116,105,111,110,0,116,97,98,108,101,32,37,115,58,32,120,66,101,115,116,73,110,100,101,120,32,114,101,116,117,114,110,101,100,32,97,110,32,105,110,118,97,108,105,100,32,112,108,97,110,0,83,81,66,73,78,65,82,89,0,114,101,103,101,120,112,0,116,111,111,32,109,97,110,121,32,97,114,103,117,109,101,110,116,115,32,111,110,32,37,115,40,41,32,45,32,109,97,120,32,37,100,0,45,45,32,84,82,73,71,71,69,82,32,37,115,0,0,0,0,1,1,1,1,1,0,16,0,1,0,1,1,2,1,2,3,18,8,0,16,16,16,16,0,16,16,0,0,16,16,0,0,0,0,2,3,2,2,0,0,1,1,3,3,0,0,0,16,16,0,0,0,0,0,0,0,0,0,0,0,9,9,9,9,9,9,9,9,38,38,16,16,0,3,3,11,11,11,11,11,11,0,38,38,38,38,38,38,38,38,38,38,0,18,16,0,0,0,0,0,16,0,1,1,1,1,4,4,0,0,16,1,1,1,1,16,0,0,16,16,0,0,0,0,0,0,6,35,11,1,16,16,0,1,4,3,26,3,3,3,0,0,0,1,0,0,0,0,0,0,0,1,0,16,16,1,0,0,0,0,1,2,3,4,6,8,8,0,0,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,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,30,30,31,31,32,32,33,33,34,34,35,35,36,36,37,37,38,38,39,39,40,40,41,41,42,42,43,43,44,44,45,45,46,46,47,47,48,48,49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56,57,57,70,79,82,69,73,71,78,32,75,69,89,32,99,111,110,115,116,114,97,105,110,116,32,102,97,105,108,101,100,0,37,115,46,114,111,119,105,100,0,116,97,98,108,101,32,37,115,32,109,97,121,32,110,111,116,32,98,101,32,109,111,100,105,102,105,101,100,0,99,97,110,110,111,116,32,109,111,100,105,102,121,32,37,115,32,98,101,99,97,117,115,101,32,105,116,32,105,115,32,97,32,118,105,101,119,0,114,111,119,115,32,117,112,100,97,116,101,100,0,116,111,111,32,109,97,110,121,32,99,111,108,117,109,110,115,32,105,110,32,37,115,0,114,111,119,115,32,100,101,108,101,116,101,100,0,0,7,4,6,4,40,10,5,32,14,5,48,19,4,56,23,5,1,28,5,3,110,97,116,117,114,97,108,101,102,116,111,117,116,101,114,105,103,104,116,102,117,108,108,105,110,110,101,114,99,114,111,115,115,0,32,0,117,110,107,110,111,119,110,32,111,114,32,117,110,115,117,112,112,111,114,116,101,100,32,106,111,105,110,32,116,121,112,101,58,32,37,84,32,37,84,37,115,37,84,0,82,73,71,72,84,32,97,110,100,32,70,85,76,76,32,79,85,84,69,82,32,74,79,73,78,115,32,97,114,101,32,110,111,116,32,99,117,114,114,101,110,116,108,121,32,115,117,112,112,111,114,116,101,100,0,79,78,0,85,83,73,78,71,0,97,32,74,79,73,78,32,99,108,97,117,115,101,32,105,115,32,114,101,113,117,105,114,101,100,32,98,101,102,111,114,101,32,37,115,0,116,111,111,32,109,97,110,121,32,116,101,114,109,115,32,105,110,32,99,111,109,112,111,117,110,100,32,83,69,76,69,67,84,0,101,120,112,101,99,116,101,100,32,37,100,32,99,111,108,117,109,110,115,32,102,111,114,32,39,37,115,39,32,98,117,116,32,103,111,116,32,37,100,0,68,73,83,84,73,78,67,84,0,71,82,79,85,80,32,66,89,0,82,73,71,72,84,32,80,65,82,84,32,79,70,32,79,82,68,69,82,32,66,89,0,79,82,68,69,82,32,66,89,0,99,111,108,117,109,110,37,100,0,109,105,110,0,109,97,120,0,32,85,83,73,78,71,32,67,79,86,69,82,73,78,71,32,73,78,68,69,88,32,0,83,67,65,78,32,84,65,66,76,69,32,37,115,37,115,37,115,0,68,73,83,84,73,78,67,84,32,97,103,103,114,101,103,97,116,101,115,32,109,117,115,116,32,104,97,118,101,32,101,120,97,99,116,108,121,32,111,110,101,32,97,114,103,117,109,101,110,116,0,85,83,69,32,84,69,77,80,32,66,45,84,82,69,69,32,70,79,82,32,37,115,0,79,82,68,69,82,32,66,89,32,99,108,97,117,115,101,32,115,104,111,117,108,100,32,99,111,109,101,32,97,102,116,101,114,32,37,115,32,110,111,116,32,98,101,102,111,114,101,0,76,73,77,73,84,32,99,108,97,117,115,101,32,115,104,111,117,108,100,32,99,111,109,101,32,97,102,116,101,114,32,37,115,32,110,111,116,32,98,101,102,111,114,101,0,85,83,73,78,71,32,84,69,77,80,32,66,45,84,82,69,69,32,0,67,79,77,80,79,85,78,68,32,83,85,66,81,85,69,82,73,69,83,32,37,100,32,65,78,68,32,37,100,32,37,115,40,37,115,41,0,114,101,99,117,114,115,105,118,101,32,97,103,103,114,101,103,97,116,101,32,113,117,101,114,105,101,115,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,111,110,108,121,32,97,32,115,105,110,103,108,101,32,114,101,115,117,108,116,32,97,108,108,111,119,101,100,32,102,111,114,32,97,32,83,69,76,69,67,84,32,116,104,97,116,32,105,115,32,112,97,114,116,32,111,102,32,97,110,32,101,120,112,114,101,115,115,105,111,110,0,112,97,114,97,109,101,116,101,114,115,32,97,114,101,32,110,111,116,32,97,108,108,111,119,101,100,32,105,110,32,118,105,101,119,115,0,118,105,101,119,0,115,113,108,105,116,101,95,115,116,97,116,0,116,97,98,108,101,32,37,115,32,109,97,121,32,110,111,116,32,98,101,32,100,114,111,112,112,101,100,0,117,115,101,32,68,82,79,80,32,84,65,66,76,69,32,116,111,32,100,101,108,101,116,101,32,116,97,98,108,101,32,37,115,0,117,115,101,32,68,82,79,80,32,86,73,69,87,32,116,111,32,100,101,108,101,116,101,32,118,105,101,119,32,37,115,0,68,69,76,69,84,69,32,70,82,79,77,32,37,81,46,115,113,108,105,116,101,95,115,101,113,117,101,110,99,101,32,87,72,69,82,69,32,110,97,109,101,61,37,81,0,68,69,76,69,84,69,32,70,82,79,77,32,37,81,46,37,115,32,87,72,69,82,69,32,116,98,108,95,110,97,109,101,61,37,81,32,97,110,100,32,116,121,112,101,33,61,39,116,114,105,103,103,101,114,39,0,102,111,114,101,105,103,110,32,107,101,121,32,111,110,32,37,115,32,115,104,111,117,108,100,32,114,101,102,101,114,101,110,99,101,32,111,110,108,121,32,111,110,101,32,99,111,108,117,109,110,32,111,102,32,116,97,98,108,101,32,37,84,0,110,117,109,98,101,114,32,111,102,32,99,111,108,117,109,110,115,32,105,110,32,102,111,114,101,105,103,110,32,107,101,121,32,100,111,101,115,32,110,111,116,32,109,97,116,99,104,32,116,104,101,32,110,117,109,98,101,114,32,111,102,32,99,111,108,117,109,110,115,32,105,110,32,116,104,101,32,114,101,102,101,114,101,110,99,101,100,32,116,97,98,108,101,0,117,110,107,110,111,119,110,32,99,111,108,117,109,110,32,34,37,115,34,32,105,110,32,102,111,114,101,105,103,110,32,107,101,121,32,100,101,102,105,110,105,116,105,111,110,0,99,97,110,110,111,116,32,99,114,101,97,116,101,32,97,32,84,69,77,80,32,105,110,100,101,120,32,111,110,32,110,111,110,45,84,69,77,80,32,116,97,98,108,101,32,34,37,115,34,0,97,108,116,101,114,116,97,98,95,0,116,97,98,108,101,32,37,115,32,109,97,121,32,110,111,116,32,98,101,32,105,110,100,101,120,101,100,0,118,105,101,119,115,32,109,97,121,32,110,111,116,32,98,101,32,105,110,100,101,120,101,100,0,118,105,114,116,117,97,108,32,116,97,98,108,101,115,32,109,97,121,32,110,111,116,32,98,101,32,105,110,100,101,120,101,100,0,116,104,101,114,101,32,105,115,32,97,108,114,101,97,100,121,32,97,32,116,97,98,108,101,32,110,97,109,101,100,32,37,115,0,105,110,100,101,120,32,37,115,32,97,108,114,101,97,100,121,32,101,120,105,115,116,115,0,115,113,108,105,116,101,95,97,117,116,111,105,110,100,101,120,95,37,115,95,37,100,0,101,120,112,114,101,115,115,105,111,110,115,32,112,114,111,104,105,98,105,116,101,100,32,105,110,32,80,82,73,77,65,82,89,32,75,69,89,32,97,110,100,32,85,78,73,81,85,69,32,99,111,110,115,116,114,97,105,110,116,115,0,99,111,110,102,108,105,99,116,105,110,103,32,79,78,32,67,79,78,70,76,73,67,84,32,99,108,97,117,115,101,115,32,115,112,101,99,105,102,105,101,100,0,32,85,78,73,81,85,69,0,67,82,69,65,84,69,37,115,32,73,78,68,69,88,32,37,46,42,115,0,73,78,83,69,82,84,32,73,78,84,79,32,37,81,46,37,115,32,86,65,76,85,69,83,40,39,105,110,100,101,120,39,44,37,81,44,37,81,44,35,37,100,44,37,81,41,59,0,110,97,109,101,61,39,37,113,39,32,65,78,68,32,116,121,112,101,61,39,105,110,100,101,120,39,0,116,97,98,108,101,32,34,37,115,34,32,104,97,115,32,109,111,114,101,32,116,104,97,110,32,111,110,101,32,112,114,105,109,97,114,121,32,107,101,121,0,65,85,84,79,73,78,67,82,69,77,69,78,84,32,105,115,32,111,110,108,121,32,97,108,108,111,119,101,100,32,111,110,32,97,110,32,73,78,84,69,71,69,82,32,80,82,73,77,65,82,89,32,75,69,89,0,100,101,102,97,117,108,116,32,118,97,108,117,101,32,111,102,32,99,111,108,117,109,110,32,91,37,115,93,32,105,115,32,110,111,116,32,99,111,110,115,116,97,110,116,0,116,111,111,32,109,97,110,121,32,99,111,108,117,109,110,115,32,111,110,32,37,115,0,100,117,112,108,105,99,97,116,101,32,99,111,108,117,109,110,32,110,97,109,101,58,32,37,115,0,65,85,84,79,73,78,67,82,69,77,69,78,84,32,110,111,116,32,97,108,108,111,119,101,100,32,111,110,32,87,73,84,72,79,85,84,32,82,79,87,73,68,32,116,97,98,108,101,115,0,80,82,73,77,65,82,89,32,75,69,89,32,109,105,115,115,105,110,103,32,111,110,32,116,97,98,108,101,32,37,115,0,84,65,66,76,69,0,86,73,69,87,0,67,82,69,65,84,69,32,37,115,32,37,46,42,115,0,85,80,68,65,84,69,32,37,81,46,37,115,32,83,69,84,32,116,121,112,101,61,39,37,115,39,44,32,110,97,109,101,61,37,81,44,32,116,98,108,95,110,97,109,101,61,37,81,44,32,114,111,111,116,112,97,103,101,61,35,37,100,44,32,115,113,108,61,37,81,32,87,72,69,82,69,32,114,111,119,105,100,61,35,37,100,0,67,82,69,65,84,69,32,84,65,66,76,69,32,37,81,46,115,113,108,105,116,101,95,115,101,113,117,101,110,99,101,40,110,97,109,101,44,115,101,113,41,0,116,98,108,95,110,97,109,101,61,39,37,113,39,32,65,78,68,32,116,121,112,101,33,61,39,116,114,105,103,103,101,114,39,0,44,0,10,32,32,0,44,10,32,32,0,10,41,0,67,82,69,65,84,69,32,84,65,66,76,69,32,0,32,84,69,88,84,0,32,78,85,77,0,32,73,78,84,0,32,82,69,65,76,0,116,101,109,112,111,114,97,114,121,32,116,97,98,108,101,32,110,97,109,101,32,109,117,115,116,32,98,101,32,117,110,113,117,97,108,105,102,105,101,100,0,2,4,8,6,116,97,98,108,101,32,37,84,32,97,108,114,101,97,100,121,32,101,120,105,115,116,115,0,116,104,101,114,101,32,105,115,32,97,108,114,101,97,100,121,32,97,110,32,105,110,100,101,120,32,110,97,109,101,100,32,37,115,0,6,0,0,0,0,0,66,69,71,73,78,0,82,69,76,69,65,83,69,0,82,79,76,76,66,65,67,75,0,67,79,77,77,73,84,0,25,0,0,0,108,0,9,0,47,0,0,0,78,0,7,0,103,0,0,0,47,0,1,0,13,0,9,0,7,0,2,0,22,0,0,0,61,0,0,0,112,97,114,115,101,114,32,115,116,97,99,107,32,111,118,101,114,102,108,111,119,0,19,144,145,146,147,24,1,2,27,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,91,92,93,94,95,19,50,51,80,81,82,83,27,85,86,87,88,89,90,91,92,93,94,95,137,177,139,71,72,73,74,75,76,77,78,79,80,81,82,83,95,85,86,87,88,89,90,91,92,93,94,95,19,97,85,86,87,88,89,90,91,92,93,94,95,152,33,212,173,27,28,223,224,225,152,42,181,152,223,224,225,95,97,50,51,99,100,101,102,103,104,105,27,28,59,223,224,225,112,174,175,66,94,95,71,72,73,74,75,76,77,78,79,80,81,82,83,195,85,86,87,88,89,90,91,92,93,94,95,19,197,89,90,220,209,210,26,119,120,97,98,208,100,108,109,110,152,157,152,107,152,109,89,90,91,92,93,94,95,163,50,51,97,98,99,55,66,102,103,104,174,175,174,175,132,133,192,193,113,66,19,71,72,73,74,75,76,77,78,79,80,81,82,83,198,85,86,87,88,89,90,91,92,93,94,95,152,209,210,148,149,50,51,100,53,154,59,156,174,229,27,28,232,163,163,22,192,193,174,175,27,28,71,72,73,74,75,76,77,78,79,80,81,82,83,251,85,86,87,88,89,90,91,92,93,94,95,19,198,198,152,152,24,209,210,108,109,110,196,197,27,28,69,164,165,152,119,120,27,28,208,99,27,28,102,103,104,152,50,51,97,98,89,90,185,113,187,22,177,174,97,58,27,28,101,115,245,117,118,71,72,73,74,75,76,77,78,79,80,81,82,83,11,85,86,87,88,89,90,91,92,93,94,95,19,132,133,134,23,152,97,98,91,174,223,224,225,239,97,98,187,22,97,98,27,28,27,28,152,223,224,225,239,152,163,50,51,170,171,172,59,160,97,98,239,164,165,66,242,124,174,175,195,22,23,69,71,72,73,74,75,76,77,78,79,80,81,82,83,198,85,86,87,88,89,90,91,92,93,94,95,19,12,97,21,23,152,101,152,108,109,110,221,152,97,98,97,98,152,29,243,70,226,23,233,26,26,152,152,238,174,175,50,51,22,45,24,47,132,133,134,124,22,23,188,163,26,152,65,59,174,175,163,71,72,73,74,75,76,77,78,79,80,81,82,83,152,85,86,87,88,89,90,91,92,93,94,95,19,19,198,152,23,152,152,209,103,198,174,175,70,152,50,51,219,213,214,152,98,152,171,172,188,171,172,174,175,248,249,50,51,51,251,174,175,220,74,75,152,188,152,174,175,140,124,26,163,188,16,130,71,72,73,74,75,76,77,78,79,80,81,82,83,101,85,86,87,88,89,90,91,92,93,94,95,19,209,196,197,23,231,198,12,231,219,37,22,107,24,208,116,27,112,201,62,121,64,152,152,29,52,66,221,211,221,219,50,51,60,89,90,152,22,23,183,45,26,47,22,174,175,238,152,164,165,106,19,71,72,73,74,75,76,77,78,79,80,81,82,83,152,85,86,87,88,89,90,91,92,93,94,95,132,133,119,120,163,50,51,111,70,97,174,175,181,182,170,171,172,0,1,2,140,190,108,109,110,51,71,72,73,74,75,76,77,78,79,80,81,82,83,198,85,86,87,88,89,90,91,92,93,94,95,19,152,152,152,22,166,152,168,169,27,19,152,26,19,152,122,152,24,152,28,27,152,28,174,175,174,175,152,174,175,107,50,51,174,175,22,174,175,174,175,174,175,138,174,175,7,8,9,16,174,175,152,71,72,73,74,75,76,77,78,79,80,81,82,83,152,85,86,87,88,89,90,91,92,93,94,95,19,152,97,152,31,24,152,98,35,101,174,175,152,97,152,79,152,62,152,64,112,152,49,174,175,174,175,152,174,175,152,50,51,124,174,175,174,175,174,175,174,175,138,174,175,22,23,152,152,174,175,19,71,72,73,74,75,76,77,78,79,80,81,82,83,152,85,86,87,88,89,90,91,92,93,94,95,152,108,109,110,152,50,51,146,147,23,174,175,26,195,195,152,70,152,168,169,152,26,174,175,152,19,71,72,73,74,75,76,77,78,79,80,81,82,83,152,85,86,87,88,89,90,91,92,93,94,95,152,246,247,213,214,50,51,195,152,195,174,175,195,100,101,152,195,152,152,7,8,152,174,175,163,19,71,72,73,74,75,76,77,78,79,80,81,82,83,152,85,86,87,88,89,90,91,92,93,94,95,152,27,152,189,189,50,51,195,198,152,174,175,33,132,133,152,123,163,163,163,152,42,174,175,152,19,152,72,73,74,75,76,77,78,79,80,81,82,83,152,85,86,87,88,89,90,91,92,93,94,95,152,198,198,198,23,50,51,26,152,23,174,175,26,23,23,23,26,26,26,152,97,23,174,175,26,132,133,152,73,74,75,76,77,78,79,80,81,82,83,152,85,86,87,88,89,90,91,92,93,94,95,19,20,23,22,23,26,152,152,27,28,174,175,152,19,20,27,22,183,183,38,152,27,28,152,23,152,152,26,174,175,152,152,38,152,23,152,27,26,57,152,215,163,152,152,152,174,175,66,174,175,69,57,174,175,152,174,175,174,175,212,66,174,175,69,174,175,174,175,152,152,89,90,152,193,152,152,198,96,97,98,91,152,101,89,90,97,152,209,210,152,96,97,98,235,152,101,174,175,152,19,20,152,22,174,175,116,97,27,28,152,121,174,175,132,133,134,135,136,38,152,174,175,152,174,175,152,132,133,134,135,136,234,152,212,150,199,212,57,212,240,240,203,178,200,216,186,177,19,20,69,22,203,177,182,177,27,28,202,200,228,216,216,155,39,122,159,38,159,41,89,90,91,159,241,241,22,96,97,98,71,130,101,222,191,18,57,203,194,159,194,194,194,18,158,244,191,222,69,159,158,137,19,20,203,22,191,203,46,236,27,28,159,132,133,134,135,136,89,90,237,38,159,158,22,96,97,98,179,159,101,158,48,159,158,179,176,107,176,184,57,106,176,184,176,125,179,178,176,218,107,176,69,176,217,159,218,218,217,159,137,132,133,134,135,136,218,217,179,217,179,227,89,90,95,230,230,129,207,96,97,98,126,128,101,5,206,205,127,204,10,11,12,13,14,203,25,17,162,26,161,13,153,153,6,247,180,250,151,151,151,151,32,180,34,132,133,134,135,136,167,4,3,43,22,15,68,142,250,16,23,23,120,111,131,20,56,123,125,16,1,123,131,63,79,79,66,67,111,28,36,122,1,5,22,107,140,54,54,26,61,107,44,20,24,19,105,112,23,22,40,22,22,53,22,53,22,53,23,23,23,22,22,30,116,23,122,26,23,23,22,28,11,124,114,26,26,23,23,23,36,24,23,36,26,22,22,36,23,122,23,22,26,22,24,23,23,23,22,122,23,141,122,122,15,1,0,0,27,27,27,27,0,27,27,27,0,27,27,27,27,0,0,0,27,0,0,27,0,0,0,27,0,0,0,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,7,7,27,7,7,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,7,15,8,5,4,22,24,8,17,18,21,20,23,11,26,16,3,3,3,3,3,3,3,3,3,3,5,19,12,14,13,6,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,9,27,27,27,1,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,27,10,27,25,27,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,105,110,118,97,108,105,100,0,65,80,73,32,99,97,108,108,32,119,105,116,104,32,37,115,32,100,97,116,97,98,97,115,101,32,99,111,110,110,101,99,116,105,111,110,32,112,111,105,110,116,101,114,0,100,97,116,97,98,97,115,101,32,115,99,104,101,109,97,32,105,115,32,108,111,99,107,101,100,58,32,37,115,0,115,116,97,116,101,109,101,110,116,32,116,111,111,32,108,111,110,103,0,97,100,100,114,0,111,112,99,111,100,101,0,112,49,0,112,50,0,112,51,0,112,52,0,112,53,0,99,111,109,109,101,110,116,0,115,101,108,101,99,116,105,100,0,100,101,116,97,105,108,0,78,85,76,76,0,117,110,111,112,101,110,101,100,0,114,101,97,108,0,105,110,116,101,103,101,114,0,110,117,108,108,0,99,97,110,110,111,116,32,111,112,101,110,32,118,97,108,117,101,32,111,102,32,116,121,112,101,32,37,115,0,110,111,32,115,117,99,104,32,114,111,119,105,100,58,32,37,108,108,100,0,110,111,32,115,117,99,104,32,118,105,101,119,0,110,111,32,115,117,99,104,32,116,97,98,108,101,0,98,105,110,100,32,111,110,32,97,32,98,117,115,121,32,112,114,101,112,97,114,101,100,32,115,116,97,116,101,109,101,110,116,58,32,91,37,115,93,0,97,98,111,114,116,32,97,116,32,37,100,32,105,110,32,91,37,115,93,58,32,37,115,0,37,115,32,99,111,110,115,116,114,97,105,110,116,32,102,97,105,108,101,100,58,32,37,115,0,37,115,32,99,111,110,115,116,114,97,105,110,116,32,102,97,105,108,101,100,0,0,0,0,0,1,2,0,2,2,0,1,2,1,1,1,2,1,2,0,0,0,0,0,0,0,0,99,97,110,110,111,116,32,111,112,101,110,32,115,97,118,101,112,111,105,110,116,32,45,32,83,81,76,32,115,116,97,116,101,109,101,110,116,115,32,105,110,32,112,114,111,103,114,101,115,115,0,110,111,32,115,117,99,104,32,115,97,118,101,112,111,105,110,116,58,32,37,115,0,99,97,110,110,111,116,32,114,101,108,101,97,115,101,32,115,97,118,101,112,111,105,110,116,32,45,32,83,81,76,32,115,116,97,116,101,109,101,110,116,115,32,105,110,32,112,114,111,103,114,101,115,115,0,99,97,110,110,111,116,32,99,111,109,109,105,116,32,116,114,97,110,115,97,99,116,105,111,110,32,45,32,83,81,76,32,115,116,97,116,101,109,101,110,116,115,32,105,110,32,112,114,111,103,114,101,115,115,0,99,97,110,110,111,116,32,114,111,108,108,98,97,99,107,32,45,32,110,111,32,116,114,97,110,115,97,99,116,105,111,110,32,105,115,32,97,99,116,105,118,101,0,99,97,110,110,111,116,32,99,111,109,109,105,116,32,45,32,110,111,32,116,114,97,110,115,97,99,116,105,111,110,32,105,115,32,97,99,116,105,118,101,0,99,97,110,110,111,116,32,115,116,97,114,116,32,97,32,116,114,97,110,115,97,99,116,105,111,110,32,119,105,116,104,105,110,32,97,32,116,114,97,110,115,97,99,116,105,111,110,0,100,97,116,97,98,97,115,101,32,115,99,104,101,109,97,32,104,97,115,32,99,104,97,110,103,101,100,0,83,69,76,69,67,84,32,110,97,109,101,44,32,114,111,111,116,112,97,103,101,44,32,115,113,108,32,70,82,79,77,32,39,37,113,39,46,37,115,32,87,72,69,82,69,32,37,115,32,79,82,68,69,82,32,66,89,32,114,111,119,105,100,0,116,111,111,32,109,97,110,121,32,108,101,118,101,108,115,32,111,102,32,116,114,105,103,103,101,114,32,114,101,99,117,114,115,105,111,110,0,105,110,116,111,0,111,117,116,32,111,102,0,99,97,110,110,111,116,32,99,104,97,110,103,101,32,37,115,32,119,97,108,32,109,111,100,101,32,102,114,111,109,32,119,105,116,104,105,110,32,97,32,116,114,97,110,115,97,99,116,105,111,110,0,100,97,116,97,98,97,115,101,32,116,97,98,108,101,32,105,115,32,108,111,99,107,101,100,58,32,37,115,0,115,116,97,116,101,109,101,110,116,32,97,98,111,114,116,115,32,97,116,32,37,100,58,32,91,37,115,93,32,37,115,0,45,45,32,0,39,37,46,42,113,39,0,122,101,114,111,98,108,111,98,40,37,100,41,0,120,39,0,37,48,50,120,0,39,0,99,97,110,110,111,116],"i8",4,l.aa+31102);
  33. z([32,86,65,67,85,85,77,32,102,114,111,109,32,119,105,116,104,105,110,32,97,32,116,114,97,110,115,97,99,116,105,111,110,0,99,97,110,110,111,116,32,86,65,67,85,85,77,32,45,32,83,81,76,32,115,116,97,116,101,109,101,110,116,115,32,105,110,32,112,114,111,103,114,101,115,115,0,65,84,84,65,67,72,32,39,58,109,101,109,111,114,121,58,39,32,65,83,32,118,97,99,117,117,109,95,100,98,59,0,65,84,84,65,67,72,32,39,39,32,65,83,32,118,97,99,117,117,109,95,100,98,59,0,80,82,65,71,77,65,32,118,97,99,117,117,109,95,100,98,46,115,121,110,99,104,114,111,110,111,117,115,61,79,70,70,0,66,69,71,73,78,59,0,83,69,76,69,67,84,32,39,67,82,69,65,84,69,32,84,65,66,76,69,32,118,97,99,117,117,109,95,100,98,46,39,32,124,124,32,115,117,98,115,116,114,40,115,113,108,44,49,52,41,32,32,32,70,82,79,77,32,115,113,108,105,116,101,95,109,97,115,116,101,114,32,87,72,69,82,69,32,116,121,112,101,61,39,116,97,98,108,101,39,32,65,78,68,32,110,97,109,101,33,61,39,115,113,108,105,116,101,95,115,101,113,117,101,110,99,101,39,32,32,32,65,78,68,32,99,111,97,108,101,115,99,101,40,114,111,111,116,112,97,103,101,44,49,41,62,48,0,83,69,76,69,67,84,32,39,67,82,69,65,84,69,32,73,78,68,69,88,32,118,97,99,117,117,109,95,100,98,46,39,32,124,124,32,115,117,98,115,116,114,40,115,113,108,44,49,52,41,32,32,70,82,79,77,32,115,113,108,105,116,101,95,109,97,115,116,101,114,32,87,72,69,82,69,32,115,113,108,32,76,73,75,69,32,39,67,82,69,65,84,69,32,73,78,68,69,88,32,37,39,32,0,83,69,76,69,67,84,32,39,67,82,69,65,84,69,32,85,78,73,81,85,69,32,73,78,68,69,88,32,118,97,99,117,117,109,95,100,98,46,39,32,124,124,32,115,117,98,115,116,114,40,115,113,108,44,50,49,41,32,32,32,70,82,79,77,32,115,113,108,105,116,101,95,109,97,115,116,101,114,32,87,72,69,82,69,32,115,113,108,32,76,73,75,69,32,39,67,82,69,65,84,69,32,85,78,73,81,85,69,32,73,78,68,69,88,32,37,39,0,83,69,76,69,67,84,32,39,73,78,83,69,82,84,32,73,78,84,79,32,118,97,99,117,117,109,95,100,98,46,39,32,124,124,32,113,117,111,116,101,40,110,97,109,101,41,32,124,124,32,39,32,83,69,76,69,67,84,32,42,32,70,82,79,77,32,109,97,105,110,46,39,32,124,124,32,113,117,111,116,101,40,110,97,109,101,41,32,124,124,32,39,59,39,70,82,79,77,32,109,97,105,110,46,115,113,108,105,116,101,95,109,97,115,116,101,114,32,87,72,69,82,69,32,116,121,112,101,32,61,32,39,116,97,98,108,101,39,32,65,78,68,32,110,97,109,101,33,61,39,115,113,108,105,116,101,95,115,101,113,117,101,110,99,101,39,32,32,32,65,78,68,32,99,111,97,108,101,115,99,101,40,114,111,111,116,112,97,103,101,44,49,41,62,48,0,83,69,76,69,67,84,32,39,68,69,76,69,84,69,32,70,82,79,77,32,118,97,99,117,117,109,95,100,98,46,39,32,124,124,32,113,117,111,116,101,40,110,97,109,101,41,32,124,124,32,39,59,39,32,70,82,79,77,32,118,97,99,117,117,109,95,100,98,46,115,113,108,105,116,101,95,109,97,115,116,101,114,32,87,72,69,82,69,32,110,97,109,101,61,39,115,113,108,105,116,101,95,115,101,113,117,101,110,99,101,39,32,0,83,69,76,69,67,84,32,39,73,78,83,69,82,84,32,73,78,84,79,32,118,97,99,117,117,109,95,100,98,46,39,32,124,124,32,113,117,111,116,101,40,110,97,109,101,41,32,124,124,32,39,32,83,69,76,69,67,84,32,42,32,70,82,79,77,32,109,97,105,110,46,39,32,124,124,32,113,117,111,116,101,40,110,97,109,101,41,32,124,124,32,39,59,39,32,70,82,79,77,32,118,97,99,117,117,109,95,100,98,46,115,113,108,105,116,101,95,109,97,115,116,101,114,32,87,72,69,82,69,32,110,97,109,101,61,61,39,115,113,108,105,116,101,95,115,101,113,117,101,110,99,101,39,59,0,73,78,83,69,82,84,32,73,78,84,79,32,118,97,99,117,117,109,95,100,98,46,115,113,108,105,116,101,95,109,97,115,116,101,114,32,32,32,83,69,76,69,67,84,32,116,121,112,101,44,32,110,97,109,101,44,32,116,98,108,95,110,97,109,101,44,32,114,111,111,116,112,97,103,101,44,32,115,113,108,32,32,32,32,70,82,79,77,32,109,97,105,110,46,115,113,108,105,116,101,95,109,97,115,116,101,114,32,32,32,87,72,69,82,69,32,116,121,112,101,61,39,118,105,101,119,39,32,79,82,32,116,121,112,101,61,39,116,114,105,103,103,101,114,39,32,32,32,32,32,32,79,82,32,40,116,121,112,101,61,39,116,97,98,108,101,39,32,65,78,68,32,114,111,111,116,112,97,103,101,61,48,41,0,1,1,3,0,5,0,6,0,8,0,77,97,105,110,32,102,114,101,101,108,105,115,116,58,32,0,80,97,103,101,32,37,100,32,105,115,32,110,101,118,101,114,32,117,115,101,100,0,80,111,105,110,116,101,114,32,109,97,112,32,112,97,103,101,32,37,100,32,105,115,32,114,101,102,101,114,101,110,99,101,100,0,10,0,80,97,103,101,32,37,100,58,32,0,117,110,97,98,108,101,32,116,111,32,103,101,116,32,116,104,101,32,112,97,103,101,46,32,101,114,114,111,114,32,99,111,100,101,61,37,100,0,98,116,114,101,101,73,110,105,116,80,97,103,101,40,41,32,114,101,116,117,114,110,115,32,101,114,114,111,114,32,99,111,100,101,32,37,100,0,79,110,32,116,114,101,101,32,112,97,103,101,32,37,100,32,99,101,108,108,32,37,100,58,32,0,79,110,32,112,97,103,101,32,37,100,32,97,116,32,114,105,103,104,116,32,99,104,105,108,100,58,32,0,79,102,102,115,101,116,32,37,100,32,111,117,116,32,111,102,32,114,97,110,103,101,32,37,100,46,46,37,100,0,69,120,116,101,110,100,115,32,111,102,102,32,101,110,100,32,111,102,32,112,97,103,101,0,82,111,119,105,100,32,37,108,108,100,32,111,117,116,32,111,102,32,111,114,100,101,114,0,67,104,105,108,100,32,112,97,103,101,32,100,101,112,116,104,32,100,105,102,102,101,114,115,0,77,117,108,116,105,112,108,101,32,117,115,101,115,32,102,111,114,32,98,121,116,101,32,37,117,32,111,102,32,112,97,103,101,32,37,100,0,70,114,97,103,109,101,110,116,97,116,105,111,110,32,111,102,32,37,100,32,98,121,116,101,115,32,114,101,112,111,114,116,101,100,32,97,115,32,37,100,32,111,110,32,112,97,103,101,32,37,100,0,105,110,118,97,108,105,100,32,112,97,103,101,32,110,117,109,98,101,114,32,37,100,0,50,110,100,32,114,101,102,101,114,101,110,99,101,32,116,111,32,112,97,103,101,32,37,100,0,70,97,105,108,101,100,32,116,111,32,114,101,97,100,32,112,116,114,109,97,112,32,107,101,121,61,37,100,0,66,97,100,32,112,116,114,32,109,97,112,32,101,110,116,114,121,32,107,101,121,61,37,100,32,101,120,112,101,99,116,101,100,61,40,37,100,44,37,100,41,32,103,111,116,61,40,37,100,44,37,100,41,0,37,100,32,111,102,32,37,100,32,112,97,103,101,115,32,109,105,115,115,105,110,103,32,102,114,111,109,32,111,118,101,114,102,108,111,119,32,108,105,115,116,32,115,116,97,114,116,105,110,103,32,97,116,32,37,100,0,102,97,105,108,101,100,32,116,111,32,103,101,116,32,112,97,103,101,32,37,100,0,102,114,101,101,108,105,115,116,32,108,101,97,102,32,99,111,117,110,116,32,116,111,111,32,98,105,103,32,111,110,32,112,97,103,101,32,37,100,0,102,114,101,101,45,112,97,103,101,32,99,111,117,110,116,32,105,110,32,104,101,97,100,101,114,32,105,115,32,116,111,111,32,115,109,97,108,108,0,0,1,2,3,4,6,8,83,81,76,105,116,101,32,102,111,114,109,97,116,32,51,0,37,115,45,109,106,88,88,88,88,88,88,57,88,88,122,0,77,74,32,100,101,108,101,116,101,58,32,37,115,0,77,74,32,99,111,108,108,105,100,101,58,32,37,115,0,45,109,106,37,48,54,88,57,37,48,50,88,0,78,79,84,32,78,85,76,76,0,85,78,73,81,85,69,0,67,72,69,67,75,0,70,79,82,69,73,71,78,32,75,69,89,0,37,46,50,120,0,107,40,37,100,0,66,0,44,37,115,37,115,0,40,37,46,50,48,115,41,0,37,115,40,37,100,41,0,37,100,0,37,46,49,54,103,0,40,98,108,111,98,41,0,118,116,97,98,58,37,112,0,44,37,100,0,93,0,112,114,111,103,114,97,109,0,83,97,118,101,112,111,105,110,116,0,65,117,116,111,67,111,109,109,105,116,0,84,114,97,110,115,97,99,116,105,111,110,0,83,111,114,116,101,114,78,101,120,116,0,80,114,101,118,73,102,79,112,101,110,0,78,101,120,116,73,102,79,112,101,110,0,80,114,101,118,0,78,101,120,116,0,67,104,101,99,107,112,111,105,110,116,0,74,111,117,114,110,97,108,77,111,100,101,0,86,97,99,117,117,109,0,86,70,105,108,116,101,114,0,86,85,112,100,97,116,101,0,71,111,116,111,0,71,111,115,117,98,0,82,101,116,117,114,110,0,73,110,105,116,67,111,114,111,117,116,105,110,101,0,69,110,100,67,111,114,111,117,116,105,110,101,0,89,105,101,108,100,0,78,111,116,0,72,97,108,116,73,102,78,117,108,108,0,72,97,108,116,0,73,110,116,101,103,101,114,0,73,110,116,54,52,0,83,116,114,105,110,103,0,78,117,108,108,0,83,111,102,116,78,117,108,108,0,66,108,111,98,0,86,97,114,105,97,98,108,101,0,77,111,118,101,0,67,111,112,121,0,83,67,111,112,121,0,73,110,116,67,111,112,121,0,82,101,115,117,108,116,82,111,119,0,67,111,108,108,83,101,113,0,70,117,110,99,116,105,111,110,48,0,70,117,110,99,116,105,111,110,0,65,100,100,73,109,109,0,77,117,115,116,66,101,73,110,116,0,82,101,97,108,65,102,102,105,110,105,116,121,0,67,97,115,116,0,80,101,114,109,117,116,97,116,105,111,110,0,67,111,109,112,97,114,101,0,74,117,109,112,0,79,110,99,101,0,73,102,0,73,102,78,111,116,0,67,111,108,117,109,110,0,65,102,102,105,110,105,116,121,0,77,97,107,101,82,101,99,111,114,100,0,67,111,117,110,116,0,82,101,97,100,67,111,111,107,105,101,0,83,101,116,67,111,111,107,105,101,0,82,101,111,112,101,110,73,100,120,0,79,112,101,110,82,101,97,100,0,79,112,101,110,87,114,105,116,101,0,79,112,101,110,65,117,116,111,105,110,100,101,120,0,79,112,101,110,69,112,104,101,109,101,114,97,108,0,83,111,114,116,101,114,79,112,101,110,0,83,101,113,117,101,110,99,101,84,101,115,116,0,79,112,101,110,80,115,101,117,100,111,0,67,108,111,115,101,0,67,111,108,117,109,110,115,85,115,101,100,0,83,101,101,107,76,84,0,83,101,101,107,76,69,0,83,101,101,107,71,69,0,83,101,101,107,71,84,0,78,111,67,111,110,102,108,105,99,116,0,78,111,116,70,111,117,110,100,0,70,111,117,110,100,0,78,111,116,69,120,105,115,116,115,0,79,114,0,65,110,100,0,83,101,113,117,101,110,99,101,0,78,101,119,82,111,119,105,100,0,73,110,115,101,114,116,0,73,115,78,117,108,108,0,78,111,116,78,117,108,108,0,78,101,0,69,113,0,71,116,0,76,101,0,76,116,0,71,101,0,73,110,115,101,114,116,73,110,116,0,66,105,116,65,110,100,0,66,105,116,79,114,0,83,104,105,102,116,76,101,102,116,0,83,104,105,102,116,82,105,103,104,116,0,65,100,100,0,83,117,98,116,114,97,99,116,0,77,117,108,116,105,112,108,121,0,68,105,118,105,100,101,0,82,101,109,97,105,110,100,101,114,0,67,111,110,99,97,116,0,68,101,108,101,116,101,0,66,105,116,78,111,116,0,83,116,114,105,110,103,56,0,82,101,115,101,116,67,111,117,110,116,0,83,111,114,116,101,114,67,111,109,112,97,114,101,0,83,111,114,116,101,114,68,97,116,97,0,82,111,119,75,101,121,0,82,111,119,68,97,116,97,0,82,111,119,105,100,0,78,117,108,108,82,111,119,0,76,97,115,116,0,83,111,114,116,101,114,83,111,114,116,0,83,111,114,116,0,82,101,119,105,110,100,0,83,111,114,116,101,114,73,110,115,101,114,116,0,73,100,120,73,110,115,101,114,116,0,73,100,120,68,101,108,101,116,101,0,83,101,101,107,0,73,100,120,82,111,119,105,100,0,73,100,120,76,69,0,73,100,120,71,84,0,73,100,120,76,84,0,73,100,120,71,69,0,68,101,115,116,114,111,121,0,67,108,101,97,114,0,82,101,115,101,116,83,111,114,116,101,114,0,67,114,101,97,116,101,73,110,100,101,120,0,67,114,101,97,116,101,84,97,98,108,101,0,80,97,114,115,101,83,99,104,101,109,97,0,76,111,97,100,65,110,97,108,121,115,105,115,0,68,114,111,112,84,97,98,108,101,0,68,114,111,112,73,110,100,101,120,0,68,114,111,112,84,114,105,103,103,101,114,0,73,110,116,101,103,114,105,116,121,67,107,0,82,111,119,83,101,116,65,100,100,0,82,111,119,83,101,116,82,101,97,100,0,82,111,119,83,101,116,84,101,115,116,0,80,114,111,103,114,97,109,0,82,101,97,108,0,80,97,114,97,109,0,70,107,67,111,117,110,116,101,114,0,70,107,73,102,90,101,114,111,0,77,101,109,77,97,120,0,73,102,80,111,115,0,79,102,102,115,101,116,76,105,109,105,116,0,73,102,78,111,116,90,101,114,111,0,68,101,99,114,74,117,109,112,90,101,114,111,0,74,117,109,112,90,101,114,111,73,110,99,114,0,65,103,103,83,116,101,112,48,0,65,103,103,83,116,101,112,0,65,103,103,70,105,110,97,108,0,73,110,99,114,86,97,99,117,117,109,0,69,120,112,105,114,101,0,84,97,98,108,101,76,111,99,107,0,86,66,101,103,105,110,0,86,67,114,101,97,116,101,0,86,68,101,115,116,114,111,121,0,86,79,112,101,110,0,86,67,111,108,117,109,110,0,86,78,101,120,116,0,86,82,101,110,97,109,101,0,80,97,103,101,99,111,117,110,116,0,77,97,120,80,103,99,110,116,0,73,110,105,116,0,67,117,114,115,111,114,72,105,110,116,0,78,111,111,112,0,69,120,112,108,97,105,110,0,65,80,73,32,99,97,108,108,101,100,32,119,105,116,104,32,78,85,76,76,32,112,114,101,112,97,114,101,100,32,115,116,97,116,101,109,101,110,116,0,117,110,107,110,111,119,110,32,101,114,114,111,114,0,97,98,111,114,116,32,100,117,101,32,116,111,32,82,79,76,76,66,65,67,75,0,110,111,116,32,97,110,32,101,114,114,111,114,0,83,81,76,32,108,111,103,105,99,32,101,114,114,111,114,32,111,114,32,109,105,115,115,105,110,103,32,100,97,116,97,98,97,115,101,0,97,99,99,101,115,115,32,112,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,99,97,108,108,98,97,99,107,32,114,101,113,117,101,115,116,101,100,32,113,117,101,114,121,32,97,98,111,114,116,0,100,97,116,97,98,97,115,101,32,105,115,32,108,111,99,107,101,100,0,100,97,116,97,98,97,115,101,32,116,97,98,108,101,32,105,115,32,108,111,99,107,101,100,0,97,116,116,101,109,112,116,32,116,111,32,119,114,105,116,101,32,97,32,114,101,97,100,111,110,108,121,32,100,97,116,97,98,97,115,101,0,105,110,116,101,114,114,117,112,116,101,100,0,100,105,115,107,32,73,47,79,32,101,114,114,111,114,0,100,97,116,97,98,97,115,101,32,100,105,115,107,32,105,109,97,103,101,32,105,115,32,109,97,108,102,111,114,109,101,100,0,117,110,107,110,111,119,110,32,111,112,101,114,97,116,105,111,110,0,100,97,116,97,98,97,115,101,32,111,114,32,100,105,115,107,32,105,115,32,102,117,108,108,0,117,110,97,98,108,101,32,116,111,32,111,112,101,110,32,100,97,116,97,98,97,115,101,32,102,105,108,101,0,108,111,99,107,105,110,103,32,112,114,111,116,111,99,111,108,0,116,97,98,108,101,32,99,111,110,116,97,105,110,115,32,110,111,32,100,97,116,97,0,99,111,110,115,116,114,97,105,110,116,32,102,97,105,108,101,100,0,100,97,116,97,116,121,112,101,32,109,105,115,109,97,116,99,104,0,108,105,98,114,97,114,121,32,114,111,117,116,105,110,101,32,99,97,108,108,101,100,32,111,117,116,32,111,102,32,115,101,113,117,101,110,99,101,0,108,97,114,103,101,32,102,105,108,101,32,115,117,112,112,111,114,116,32,105,115,32,100,105,115,97,98,108,101,100,0,97,117,116,104,111,114,105,122,97,116,105,111,110,32,100,101,110,105,101,100,0,97,117,120,105,108,105,97,114,121,32,100,97,116,97,98,97,115,101,32,102,111,114,109,97,116,32,101,114,114,111,114,0,98,105,110,100,32,111,114,32,99,111,108,117,109,110,32,105,110,100,101,120,32,111,117,116,32,111,102,32,114,97,110,103,101,0,102,105,108,101,32,105,115,32,101,110,99,114,121,112,116,101,100,32,111,114,32,105,115,32,110,111,116,32,97,32,100,97,116,97,98,97,115,101,0,65,80,73,32,99,97,108,108,101,100,32,119,105,116,104,32,102,105,110,97,108,105,122,101,100,32,112,114,101,112,97,114,101,100,32,115,116,97,116,101,109,101,110,116,0,64,32,32,0,117,110,105,120,0,117,110,105,120,45,110,111,110,101,0,117,110,105,120,45,100,111,116,102,105,108,101,0,117,110,105,120,45,101,120,99,108,0,99,108,111,115,101,0,111,115,95,117,110,105,120,46,99,58,37,100,58,32,40,37,100,41,32,37,115,40,37,115,41,32,45,32,37,115,0,111,112,101,110,0,103,101,116,99,119,100,0,115,116,97,116,0,102,115,116,97,116,0,102,116,114,117,110,99,97,116,101,0,102,99,110,116,108,0,114,101,97,100,0,112,114,101,97,100,0,112,114,101,97,100,54,52,0,119,114,105,116,101,0,112,119,114,105,116,101,0,112,119,114,105,116,101,54,52,0,102,99,104,109,111,100,0,102,97,108,108,111,99,97,116,101,0,117,110,108,105,110,107,0,111,112,101,110,68,105,114,101,99,116,111,114,121,0,109,107,100,105,114,0,114,109,100,105,114,0,102,99,104,111,119,110,0,103,101,116,101,117,105,100,0,109,109,97,112,0,109,117,110,109,97,112,0,109,114,101,109,97,112,0,103,101,116,112,97,103,101,115,105,122,101,0,114,101,97,100,108,105,110,107,0,108,115,116,97,116,0,97,116,116,101,109,112,116,32,116,111,32,111,112,101,110,32,34,37,115,34,32,97,115,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,37,100,0,47,100,101,118,47,110,117,108,108,0,37,115,47,101,116,105,108,113,115,95,37,108,108,120,37,99,0,83,81,76,73,84,69,95,84,77,80,68,73,82,0,84,77,80,68,73,82,0,47,118,97,114,47,116,109,112,0,47,117,115,114,47,116,109,112,0,47,116,109,112,0,46,0,102,117,108,108,95,102,115,121,110,99,0,47,100,101,118,47,117,114,97,110,100,111,109,0,102,115,121,110,99,0,112,115,111,119,0,37,115,46,108,111,99,107,0,99,97,110,110,111,116,32,102,115,116,97,116,32,100,98,32,102,105,108,101,32,37,115,0,102,105,108,101,32,117,110,108,105,110,107,101,100,32,119,104,105,108,101,32,111,112,101,110,58,32,37,115,0,109,117,108,116,105,112,108,101,32,108,105,110,107,115,32,116,111,32,102,105,108,101,58,32,37,115,0,102,105,108,101,32,114,101,110,97,109,101,100,32,119,104,105,108,101,32,111,112,101,110,58,32,37,115,0,37,115,45,115,104,109,0,114,101,97,100,111,110,108,121,95,115,104,109,0,37,0,100,10,1,1,0,0,115,0,4,6,0,0,103,0,1,4,30,0,122,0,4,7,0,0,113,0,4,10,0,0,81,0,4,11,0,0,119,0,4,15,0,0,99,0,0,9,0,0,111,8,0,1,0,2,117,10,0,1,0,0,120,16,0,1,16,1,88,16,0,1,0,4,102,0,1,2,0,0,101,0,1,3,30,0,69,0,1,3,14,0,71,0,1,4,14,0,105,10,1,1,0,0,110,0,0,5,0,0,37,0,0,8,0,0,112,16,0,14,0,1,84,0,2,12,0,0,83,0,2,13,0,0,114,10,3,16,0,0,116,104,115,116,110,100,114,100,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,48,49,50,51,52,53,54,55,56,57,97,98,99,100,101,102,0,45,120,48,0,88,48,0,78,97,78,0,73,110,102,0,40,78,85,76,76,41,0,115,113,108,105,116,101,95,114,101,110,97,109,101,95,116,97,98,108,101,0,115,113,108,105,116,101,95,114,101,110,97,109,101,95,116,114,105,103,103,101,114,0,115,113,108,105,116,101,95,114,101,110,97,109,101,95,112,97,114,101,110,116,0,37,115,37,46,42,115,34,37,119,34,0,37,46,42,115,34,37,119,34,37,115,0,106,117,108,105,97,110,100,97,121,0,100,97,116,101,0,116,105,109,101,0,100,97,116,101,116,105,109,101,0,115,116,114,102,116,105,109,101,0,99,117,114,114,101,110,116,95,116,105,109,101,0,99,117,114,114,101,110,116,95,116,105,109,101,115,116,97,109,112,0,99,117,114,114,101,110,116,95,100,97,116,101,0,37,48,50,100,0,37,48,54,46,51,102,0,37,48,51,100,0,37,48,52,100,0,108,111,99,97,108,116,105,109,101,0,117,110,105,120,101,112,111,99,104,0,117,116,99,0,119,101,101,107,100,97,121,32,0,115,116,97,114,116,32,111,102,32,0,109,111,110,116,104,0,121,101,97,114,0,100,97,121,0,104,111,117,114,0,109,105,110,117,116,101,0,115,101,99,111,110,100,0,50,48,99,58,50,48,101,0,50,48,101,0,50,48,98,58,50,48,101,0,108,111,99,97,108,32,116,105,109,101,32,117,110,97,118,97,105,108,97,98,108,101,0,110,111,119,0,52,48,102,45,50,49,97,45,50,49,100,0,37,48,52,100,45,37,48,50,100,45,37,48,50,100,32,37,48,50,100,58,37,48,50,100,58,37,48,50,100,0,37,48,50,100,58,37,48,50,100,58,37,48,50,100,0,37,48,52,100,45,37,48,50,100,45,37,48,50,100,0,108,116,114,105,109,0,114,116,114,105,109,0,116,114,105,109,0,116,121,112,101,111,102,0,108,101,110,103,116,104,0,105,110,115,116,114,0,115,117,98,115,116,114,0,112,114,105,110,116,102,0,117,110,105,99,111,100,101,0,99,104,97,114,0,97,98,115,0,114,111,117,110,100,0,117,112,112,101,114,0,108,111,119,101,114,0,99,111,97,108,101,115,99,101,0,104,101,120,0,105,102,110,117,108,108,0,117,110,108,105,107,101,108,121,0,108,105,107,101,108,105,104,111,111,100,0,108,105,107,101,108,121,0,114,97,110,100,111,109,0,114,97,110,100,111,109,98,108,111,98,0,110,117,108,108,105,102,0,115,113,108,105,116,101,95,118,101,114,115,105,111,110,0,115,113,108,105,116,101,95,115,111,117,114,99,101,95,105,100,0,115,113,108,105,116,101,95,108,111,103,0,115,113,108,105,116,101,95,99,111,109,112,105,108,101,111,112,116,105,111,110,95,117,115,101,100,0,115,113,108,105,116,101,95,99,111,109,112,105,108,101,111,112,116,105,111,110,95,103,101,116,0,113,117,111,116,101,0,108,97,115,116,95,105,110,115,101,114,116,95,114,111,119,105,100,0,99,104,97,110,103,101,115,0,116,111,116,97,108,95,99,104,97,110,103,101,115,0,114,101,112,108,97,99,101,0,122,101,114,111,98,108,111,98,0,115,117,109,0,116,111,116,97,108,0,97,118,103,0,99,111,117,110,116,0,103,114,111,117,112,95,99,111,110,99,97,116,0,105,110,116,101,103,101,114,32,111,118,101,114,102,108,111,119,0,37,33,46,50,48,101,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,37,46,42,102,0,116,101,120,116,0,98,108,111,98,0,1,109,105,115,117,115,101,32,97,116,32,108,105,110,101,32,37,100,32,111,102,32,91,37,46,49,48,115,93,0,68,73,83,65,66,76,69,95,76,70,83,0,69,78,65,66,76,69,95,70,84,83,51,0,69,78,65,66,76,69,95,70,84,83,51,95,80,65,82,69,78,84,72,69,83,73,83,0,73,78,84,54,52,95,84,89,80,69,0,79,77,73,84,95,76,79,65,68,95,69,88,84,69,78,83,73,79,78,0,83,89,83,84,69,77,95,77,65,76,76,79,67,0,84,72,82,69,65,68,83,65,70,69,61,48,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0,47,112,114,111,99,47,115,101,108,102,47,102,100,47],"i8",4,l.aa+41342);var yb=l.ta(z(12,"i8",2),8);assert(0==yb%8);f._i64Subtract=zb;f._i64Add=Ab;var D={H:1,J:2,Kd:3,Gc:4,O:5,Ka:6,$b:7,dd:8,L:9,nc:10,Ga:11,Ud:11,Ia:12,Y:13,zc:14,rd:15,Z:16,Ha:17,Vd:18,ha:19,ia:20,S:21,p:22,Zc:23,eb:24,$:25,Rd:26,Ac:27,nd:28,ja:29,Hd:30,Sc:31,Bd:32,wc:33,fb:34,jd:42,Dc:43,oc:44,Jc:45,Kc:46,Lc:47,Rc:48,Sd:49,bd:50,Ic:51,tc:35,ed:37,fc:52,ic:53,Wd:54,$c:55,jc:56,kc:57,uc:35,lc:59,pd:60,cd:61,Od:62,od:63,kd:64,ld:65,Gd:66,gd:67,cc:68,Ld:69,pc:70,Cd:71,Uc:72,xc:73,hc:74,wd:76,gc:77,Fd:78,Mc:79,Nc:80,Qc:81,Pc:82,Oc:83,qd:38,Ja:39,Vc:36,sa:40,xd:95,Ad:96,sc:104,ad:105,dc:97,Ed:91,ud:88,md:92,Id:108,rc:111,ac:98,qc:103,Yc:101,Wc:100,Pd:110,Bc:112,Cc:113,Fc:115,ec:114,vc:89,Tc:90,Dd:93,Jd:94,bc:99,Xc:102,Hc:106,sd:107,Qd:109,Td:87,yc:122,Md:116,vd:95,hd:123,Ec:84,yd:75,mc:125,td:131,zd:130,Nd:86},Bb={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"};function Cb(a){f.___errno_location&&(w[f.___errno_location()>>2]=a);return a}function Db(a,b){for(var c=0,d=a.length-1;0<=d;d--){var e=a[d];"."===e?a.splice(d,1):".."===e?(a.splice(d,1),c++):c&&(a.splice(d,1),c--)}if(b)for(;c--;c)a.unshift("..");return a}function Eb(a){var b="/"===a.charAt(0),c="/"===a.substr(-1);(a=Db(a.split("/").filter(function(a){return!!a}),!b).join("/"))||b||(a=".");a&&c&&(a+="/");return(b?"/":"")+a}function Fb(a){var b=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(a).slice(1);a=b[0];b=b[1];if(!a&&!b)return".";b&&(b=b.substr(0,b.length-1));return a+b}function Gb(a){if("/"===a)return"/";var b=a.lastIndexOf("/");return-1===b?a:a.substr(b+1)}function Hb(){var a=Array.prototype.slice.call(arguments,0);return Eb(a.join("/"))}function E(a,b){return Eb(a+"/"+b)}function Ib(){for(var a="",b=!1,c=arguments.length-1;-1<=c&&!b;c--){
  34. b=0<=c?arguments[c]:"/";if("string"!==typeof b)throw new TypeError("Arguments to path.resolve must be strings");if(!b)return"";a=b+"/"+a;b="/"===b.charAt(0)}a=Db(a.split("/").filter(function(a){return!!a}),!b).join("/");return(b?"/":"")+a||"."}var Jb=[];function Kb(a,b){Jb[a]={input:[],output:[],W:b};Lb(a,Mb)}var Mb={open:function(a){var b=Jb[a.g.rdev];if(!b)throw new H(D.ha);a.tty=b;a.seekable=!1},close:function(a){a.tty.W.flush(a.tty)},flush:function(a){a.tty.W.flush(a.tty)},read:function(a,b,c,d){if(!a.tty||!a.tty.W.Ya)throw new H(D.Ka);for(var e=0,g=0;g<d;g++){var h;try{h=a.tty.W.Ya(a.tty)}catch(m){throw new H(D.O)}if(void 0===h&&0===e)throw new H(D.Ga);if(null===h||void 0===h)break;e++;b[c+g]=h}e&&(a.g.timestamp=Date.now());return e},write:function(a,b,c,d){if(!a.tty||!a.tty.W.Ca)throw new H(D.Ka);for(var e=0;e<d;e++)try{a.tty.W.Ca(a.tty,b[c+e])}catch(g){throw new H(D.O)}d&&(a.g.timestamp=Date.now());return e}},Nb={Ya:function(a){if(!a.input.length){var b=null;if(ea){var c=new Buffer(256),d=0,e=process.stdin.fd,g=!1;try{e=fs.openSync("/dev/stdin","r"),g=!0}catch(h){}d=fs.readSync(e,c,0,256,null);g&&fs.closeSync(e);0<d?b=c.slice(0,d).toString("utf-8"):b=null}else"undefined"!=typeof window&&"function"==typeof window.prompt?(b=window.prompt("Input: "),null!==b&&(b+="\n")):"function"==typeof readline&&(b=readline(),null!==b&&(b+="\n"));if(!b)return null;a.input=B(b,!0)}return a.input.shift()},Ca:function(a,b){null===b||10===b?(f.print(La(a.output,0)),a.output=[]):0!=b&&a.output.push(b)},flush:function(a){a.output&&0<a.output.length&&(f.print(La(a.output,0)),a.output=[])}},Ob={Ca:function(a,b){null===b||10===b?(f.printErr(La(a.output,0)),a.output=[]):0!=b&&a.output.push(b)},flush:function(a){a.output&&0<a.output.length&&(f.printErr(La(a.output,0)),a.output=[])}},J={I:null,D:function(){return J.createNode(null,"/",16895,0)},createNode:function(a,b,c,d){if(24576===(c&61440)||4096===(c&61440))throw new H(D.H);J.I||(J.I={dir:{g:{G:J.k.G,B:J.k.B,lookup:J.k.lookup,da:J.k.da,rename:J.k.rename,unlink:J.k.unlink,rmdir:J.k.rmdir,readdir:J.k.readdir,symlink:J.k.symlink},stream:{N:J.n.N}},file:{g:{G:J.k.G,B:J.k.B},stream:{N:J.n.N,read:J.n.read,write:J.n.write,Ma:J.n.Ma,oa:J.n.oa,pa:J.n.pa}},link:{g:{G:J.k.G,B:J.k.B,readlink:J.k.readlink},stream:{}},Qa:{g:{G:J.k.G,B:J.k.B},stream:Pb}});c=Qb(a,b,c,d);K(c.mode)?(c.k=J.I.dir.g,c.n=J.I.dir.stream,c.e={}):32768===(c.mode&61440)?(c.k=J.I.file.g,c.n=J.I.file.stream,c.q=0,c.e=null):40960===(c.mode&61440)?(c.k=J.I.link.g,c.n=J.I.link.stream):8192===(c.mode&61440)&&(c.k=J.I.Qa.g,c.n=J.I.Qa.stream);c.timestamp=Date.now();a&&(a.e[b]=c);return c},wb:function(a){if(a.e&&a.e.subarray){for(var b=[],c=0;c<a.q;++c)b.push(a.e[c]);return b}return a.e},Ae:function(a){return a.e?a.e.subarray?a.e.subarray(0,a.q):new Uint8Array(a.e):new Uint8Array},Sa:function(a,b){a.e&&a.e.subarray&&b>a.e.length&&(a.e=J.wb(a),a.q=a.e.length);if(!a.e||a.e.subarray){var c=a.e?a.e.buffer.byteLength:0;c>=b||(b=Math.max(b,c*(1048576>c?2:1.125)|0),0!=c&&(b=Math.max(b,256)),c=a.e,a.e=new Uint8Array(b),0<a.q&&a.e.set(c.subarray(0,a.q),0))}else for(!a.e&&0<b&&(a.e=[]);a.e.length<b;)a.e.push(0)},Nb:function(a,b){if(a.q!=b)if(0==b)a.e=null,a.q=0;else{if(!a.e||a.e.subarray){var c=a.e;a.e=new Uint8Array(new ArrayBuffer(b));c&&a.e.set(c.subarray(0,Math.min(b,a.q)))}else if(a.e||(a.e=[]),a.e.length>b)a.e.length=b;else for(;a.e.length<b;)a.e.push(0);a.q=b}},k:{G:function(a){var b={};b.dev=8192===(a.mode&61440)?a.id:1;b.ino=a.id;b.mode=a.mode;b.nlink=1;b.uid=0;b.gid=0;b.rdev=a.rdev;K(a.mode)?b.size=4096:32768===(a.mode&61440)?b.size=a.q:40960===(a.mode&61440)?b.size=a.link.length:b.size=0;b.atime=new Date(a.timestamp);b.mtime=new Date(a.timestamp);b.ctime=new Date(a.timestamp);b.P=4096;b.blocks=Math.ceil(b.size/b.P);return b},B:function(a,b){void 0!==b.mode&&(a.mode=b.mode);void 0!==b.timestamp&&(a.timestamp=b.timestamp);void 0!==b.size&&J.Nb(a,b.size)},lookup:function(){throw Rb[D.J]},da:function(a,b,c,d){return J.createNode(a,b,c,d)},rename:function(a,b,c){if(K(a.mode)){var d;try{d=Sb(b,c)}catch(e){}if(d)for(var g in d.e)throw new H(D.Ja)}delete a.parent.e[a.name];a.name=c;b.e[c]=a;a.parent=b},unlink:function(a,b){delete a.e[b]},rmdir:function(a,b){var c=Sb(a,b),d;for(d in c.e)throw new H(D.Ja);delete a.e[b]},readdir:function(a){var b=[".",".."],c;for(c in a.e)a.e.hasOwnProperty(c)&&b.push(c);return b},symlink:function(a,b,c){a=J.createNode(a,b,41471,0);a.link=c;return a},readlink:function(a){if(40960!==(a.mode&61440))throw new H(D.p);return a.link}},n:{read:function(a,b,c,d,e){var g=a.g.e;if(e>=a.g.q)return 0;a=Math.min(a.g.q-e,d);assert(0<=a);if(8<a&&g.subarray)b.set(g.subarray(e,e+a),c);else for(d=0;d<a;d++)b[c+d]=g[e+d];return a},write:function(a,b,c,d,e,g){if(!d)return 0;a=a.g;a.timestamp=Date.now();if(b.subarray&&(!a.e||a.e.subarray)){if(g)return a.e=b.subarray(c,c+d),a.q=d;if(0===a.q&&0===e)return a.e=new Uint8Array(b.subarray(c,c+d)),a.q=d;if(e+d<=a.q)return a.e.set(b.subarray(c,c+d),e),d}J.Sa(a,e+d);if(a.e.subarray&&b.subarray)a.e.set(b.subarray(c,c+d),e);else for(g=0;g<d;g++)a.e[e+g]=b[c+g];a.q=Math.max(a.q,e+d);return d},N:function(a,b,c){1===c?b+=a.position:2===c&&32768===(a.g.mode&61440)&&(b+=a.g.q);if(0>b)throw new H(D.p);return b},Ma:function(a,b,c){J.Sa(a.g,b+c);a.g.q=Math.max(a.g.q,b+c)},oa:function(a,b,c,d,e,g,h){if(32768!==(a.g.mode&61440))throw new H(D.ha);c=a.g.e;if(h&2||c.buffer!==b&&c.buffer!==b.buffer){if(0<e||e+d<a.g.q)c.subarray?c=c.subarray(e,e+d):c=Array.prototype.slice.call(c,e,e+d);a=!0;d=Ga(d);if(!d)throw new H(D.Ia);b.set(c,d)}else a=!1,d=c.byteOffset;return{Kb:d,ua:a}},pa:function(a,b,c,d,e){if(32768!==(a.g.mode&61440))throw new H(D.ha);if(e&2)return 0;J.n.write(a,b,0,d,c,!1);return 0}}},L={na:!1,Rb:function(){L.na=!!process.platform.match(/^win/)},D:function(a){assert(ea);return L.createNode(null,"/",L.Wa(a.Ba.root),0)},createNode:function(a,b,c){if(!K(c)&&32768!==(c&61440)&&40960!==(c&61440))throw new H(D.p);a=Qb(a,b,c);a.k=L.k;a.n=L.n;return a},Wa:function(a){var b;try{b=fs.lstatSync(a),L.na&&(b.mode=b.mode|(b.mode&146)>>1)}catch(c){if(!c.code)throw c;throw new H(D[c.code])}return b.mode},F:function(a){for(var b=[];a.parent!==a;)b.push(a.name),a=a.parent;b.push(a.D.Ba.root);b.reverse();return Hb.apply(null,b)},Ta:{0:"r",1:"r+",2:"r+",64:"r",65:"r+",66:"r+",129:"rx+",193:"rx+",514:"w+",577:"w",578:"w+",705:"wx",706:"wx+",1024:"a",1025:"a",1026:"a+",1089:"a",1090:"a+",1153:"ax",1154:"ax+",1217:"ax",1218:"ax+",4096:"rs",4098:"rs+"},ub:function(a){a&=-32769;if(a in L.Ta)return L.Ta[a];throw new H(D.p)},k:{G:function(a){a=L.F(a);var b;try{b=fs.lstatSync(a)}catch(c){if(!c.code)throw c;throw new H(D[c.code])}L.na&&!b.P&&(b.P=4096);L.na&&!b.blocks&&(b.blocks=(b.size+b.P-1)/b.P|0);return{dev:b.dev,ino:b.ino,mode:b.mode,nlink:b.nlink,uid:b.uid,gid:b.gid,rdev:b.rdev,size:b.size,atime:b.atime,mtime:b.mtime,ctime:b.ctime,P:b.P,blocks:b.blocks}},B:function(a,b){var c=L.F(a);try{void 0!==b.mode&&(fs.chmodSync(c,b.mode),a.mode=b.mode),void 0!==b.size&&fs.truncateSync(c,b.size)}catch(d){if(!d.code)throw d;throw new H(D[d.code])}},lookup:function(a,b){var c=E(L.F(a),b),c=L.Wa(c);return L.createNode(a,b,c)},da:function(a,b,c,d){a=L.createNode(a,b,c,d);b=L.F(a);try{K(a.mode)?fs.mkdirSync(b,a.mode):fs.writeFileSync(b,"",{mode:a.mode})}catch(e){if(!e.code)throw e;throw new H(D[e.code])}return a},rename:function(a,b,c){a=L.F(a);b=E(L.F(b),c);try{fs.renameSync(a,b)}catch(d){if(!d.code)throw d;throw new H(D[d.code])}},unlink:function(a,b){var c=E(L.F(a),b);try{fs.unlinkSync(c)}catch(d){if(!d.code)throw d;throw new H(D[d.code])}},rmdir:function(a,b){var c=E(L.F(a),b);try{fs.rmdirSync(c)}catch(d){if(!d.code)throw d;throw new H(D[d.code])}},readdir:function(a){a=L.F(a);try{return fs.readdirSync(a)}catch(b){if(!b.code)throw b;throw new H(D[b.code])}},symlink:function(a,b,c){a=E(L.F(a),b);try{fs.symlinkSync(c,a)}catch(d){if(!d.code)throw d;throw new H(D[d.code])}},readlink:function(a){var b=L.F(a);try{return b=fs.readlinkSync(b),b=Tb.relative(Tb.resolve(a.D.Ba.root),b)}catch(c){if(!c.code)throw c;throw new H(D[c.code])}}},n:{open:function(a){var b=L.F(a.g);try{32768===(a.g.mode&61440)&&(a.ea=fs.openSync(b,L.ub(a.flags)))}catch(c){if(!c.code)throw c;throw new H(D[c.code])}},close:function(a){try{32768===(a.g.mode&61440)&&a.ea&&fs.closeSync(a.ea)}catch(b){if(!b.code)throw b;throw new H(D[b.code])}},read:function(a,b,c,d,e){if(0===d)return 0;var g=new Buffer(d),h;try{h=fs.readSync(a.ea,g,0,d,e)}catch(m){throw new H(D[m.code])}if(0<h)for(a=0;a<h;a++)b[c+a]=g[a];return h},write:function(a,b,c,d,e){b=new Buffer(b.subarray(c,c+d));var g;try{g=fs.writeSync(a.ea,b,0,d,e)}catch(h){throw new H(D[h.code])}return g},N:function(a,b,c){if(1===c)b+=a.position;else if(2===c&&32768===(a.g.mode&61440))try{b+=fs.fstatSync(a.ea).size}catch(d){throw new H(D[d.code])}if(0>b)throw new H(D.p);return b}}};z(1,"i32*",2);z(1,"i32*",2);z(1,"i32*",2);var Ub=null,Vb=[null],M=[],Wb=1,Xb=null,Yb=!0,N={},H=null,Rb={};function O(a,b){a=Ib("/",a);b=b||{};if(!a)return{path:"",g:null};var c={Ua:!0,Da:0},d;for(d in c)void 0===b[d]&&(b[d]=c[d]);if(8<b.Da)throw new H(D.sa);var c=Db(a.split("/").filter(function(a){return!!a}),!1),e=Ub;d="/";for(var g=0;g<c.length;g++){var h=g===c.length-1;if(h&&b.parent)break;e=Sb(e,c[g]);d=E(d,c[g]);e.U&&(!h||h&&b.Ua)&&(e=e.U.root);if(!h||b.Q)for(h=0;40960===(e.mode&61440);)if(e=Zb(d),d=Ib(Fb(d),e),e=O(d,{Da:b.Da}).g,40<h++)throw new H(D.sa)}return{path:d,g:e}}function P(a){for(var b;;){if(a===a.parent)return a=a.D.$a,b?"/"!==a[a.length-1]?a+"/"+b:a+b:a;b=b?a.name+"/"+b:a.name;a=a.parent}}function $b(a,b){for(var c=0,d=0;d<b.length;d++)c=(c<<5)-c+b.charCodeAt(d)|0;return(a+c>>>0)%Xb.length}function ac(a){var b=$b(a.parent.id,a.name);a.V=Xb[b];Xb[b]=a}function bc(a){var b=$b(a.parent.id,a.name);if(Xb[b]===a)Xb[b]=a.V;else for(b=Xb[b];b;){if(b.V===a){b.V=a.V;break}b=b.V}}function Sb(a,b){var c;if(c=(c=cc(a,"x"))?c:a.k.lookup?0:D.Y)throw new H(c,a);for(c=Xb[$b(a.id,b)];c;c=c.V){var d=c.name;if(c.parent.id===a.id&&d===b)return c}return a.k.lookup(a,b)}function Qb(a,b,c,d){dc||(dc=function(a,b,c,d){a||(a=this);this.parent=a;this.D=a.D;this.U=null;this.id=Wb++;this.name=b;this.mode=c;this.k={};this.n={};this.rdev=d},dc.prototype={},Object.defineProperties(dc.prototype,{read:{get:function(){return 365===(this.mode&365)},set:function(a){a?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146===(this.mode&146)},set:function(a){a?this.mode|=146:this.mode&=-147}},Fb:{get:function(){return K(this.mode)}},Eb:{get:function(){return 8192===(this.mode&61440)}}}));a=new dc(a,b,c,d);ac(a);return a}function K(a){return 16384===(a&61440)}var ec={r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218};function cc(a,b){if(Yb)return 0;if(-1===b.indexOf("r")||a.mode&292){if(-1!==b.indexOf("w")&&!(a.mode&146)||-1!==b.indexOf("x")&&!(a.mode&73))return D.Y}else return D.Y;return 0}function fc(a,b){try{return Sb(a,b),D.Ha}catch(c){}return cc(a,"wx")}function gc(a,b,c){var d;try{d=Sb(a,b)}catch(e){return e.o}if(a=cc(a,"wx"))return a;if(c){if(!K(d.mode))return D.ia;if(d===d.parent||"/"===P(d))return D.Z}else if(K(d.mode))return D.S;return 0}function hc(a){var b;b=4096;for(a=a||0;a<=b;a++)if(!M[a])return a;throw new H(D.eb)}function ic(a,b){jc||(jc=function(){},jc.prototype={},Object.defineProperties(jc.prototype,{object:{get:function(){return this.g},set:function(a){this.g=a}},Fe:{get:function(){return 1!==(this.flags&2097155)}},Ge:{get:function(){return 0!==(this.flags&2097155)}},Ee:{get:function(){return this.flags&1024}}}));var c=new jc,d;for(d in a)c[d]=a[d];a=c;c=hc(b);a.fd=c;return M[c]=a}var Pb={open:function(a){a.n=Vb[a.g.rdev].n;a.n.open&&a.n.open(a)},N:function(){throw new H(D.ja)}};function Lb(a,b){Vb[a]={n:b}}function kc(a,b){var c="/"===b,d=!b,e;if(c&&Ub)throw new H(D.Z);if(!c&&!d){e=O(b,{Ua:!1});b=e.path;e=e.g;if(e.U)throw new H(D.Z);if(!K(e.mode))throw new H(D.ia)}var d={type:a,Ba:{},$a:b,Jb:[]},g=a.D(d);g.D=d;d.root=g;c?Ub=g:e&&(e.U=d,e.D&&e.D.Jb.push(d))}function mc(a,b,c){var d=O(a,{parent:!0}).g;a=Gb(a);if(!a||"."===a||".."===a)throw new H(D.p);var e=fc(d,a);if(e)throw new H(e);if(!d.k.da)throw new H(D.H);return d.k.da(d,a,b,c)}function nc(a,b){b=(void 0!==b?b:438)&4095;b|=32768;return mc(a,b,0)}function Q(a,b){b=(void 0!==b?b:511)&1023;b|=16384;return mc(a,b,0)}function oc(a,b,c){"undefined"===typeof c&&(c=b,b=438);return mc(a,b|8192,c)}function pc(a,b){if(!Ib(a))throw new H(D.J);var c=O(b,{parent:!0}).g;if(!c)throw new H(D.J);var d=Gb(b),e=fc(c,d);if(e)throw new H(e);if(!c.k.symlink)throw new H(D.H);return c.k.symlink(c,d,a)}function qc(a){var b=O(a,{parent:!0}).g,c=Gb(a),d=Sb(b,c),e=gc(b,c,!1);if(e)throw e===D.S&&(e=D.H),new H(e);if(!b.k.unlink)throw new H(D.H);if(d.U)throw new H(D.Z);try{N.willDeletePath&&N.willDeletePath(a)}catch(g){console.log("FS.trackingDelegate['willDeletePath']('"+a+"') threw an exception: "+g.message)}b.k.unlink(b,c);bc(d);try{if(N.onDeletePath)N.onDeletePath(a)}catch(h){console.log("FS.trackingDelegate['onDeletePath']('"+a+"') threw an exception: "+h.message)}}function Zb(a){a=O(a).g;if(!a)throw new H(D.J);if(!a.k.readlink)throw new H(D.p);return Ib(P(a.parent),a.k.readlink(a))}function rc(a,b){var c=O(a,{Q:!b}).g;if(!c)throw new H(D.J);if(!c.k.G)throw new H(D.H);return c.k.G(c)}function sc(a){return rc(a,!0)}function tc(a,b){var c;"string"===typeof a?c=O(a,{Q:!0}).g:c=a;if(!c.k.B)throw new H(D.H);c.k.B(c,{mode:b&4095|c.mode&-4096,timestamp:Date.now()})}function uc(a){var b;"string"===typeof a?b=O(a,{Q:!0}).g:b=a;if(!b.k.B)throw new H(D.H);b.k.B(b,{timestamp:Date.now()})}function vc(a,b){if(0>b)throw new H(D.p);var c;"string"===typeof a?c=O(a,{Q:!0}).g:c=a;if(!c.k.B)throw new H(D.H);if(K(c.mode))throw new H(D.S);if(32768!==(c.mode&61440))throw new H(D.p);var d=cc(c,"w");if(d)throw new H(d);c.k.B(c,{size:b,timestamp:Date.now()})}function wc(a,b,c,d){if(""===a)throw new H(D.J);if("string"===typeof b){var e=ec[b];if("undefined"===typeof e)throw Error("Unknown file open mode: "+b);b=e}c=b&64?("undefined"===typeof c?438:c)&4095|32768:0;var g;if("object"===typeof a)g=a;else{a=Eb(a);try{g=O(a,{Q:!(b&131072)}).g}catch(h){}}e=!1;if(b&64)if(g){if(b&128)throw new H(D.Ha)}else g=mc(a,c,0),e=!0;if(!g)throw new H(D.J);8192===(g.mode&61440)&&(b&=-513);if(b&65536&&!K(g.mode))throw new H(D.ia);if(!e&&(g?40960===(g.mode&61440)?c=D.sa:K(g.mode)&&(0!==(b&2097155)||b&512)?c=D.S:(c=["r","w","rw"][b&3],b&512&&(c+="w"),c=cc(g,c)):c=D.J,c))throw new H(c);b&512&&vc(g,0);b&=-641;d=ic({g:g,path:P(g),flags:b,seekable:!0,position:0,n:g.n,Sb:[],error:!1},d);d.n.open&&d.n.open(d);!f.logReadFiles||b&1||(xc||(xc={}),a in xc||(xc[a]=1,f.printErr("read file: "+a)));try{N.onOpenFile&&(g=0,1!==(b&2097155)&&(g|=1),0!==(b&2097155)&&(g|=2),N.onOpenFile(a,g))}catch(m){console.log("FS.trackingDelegate['onOpenFile']('"+a+"', flags) threw an exception: "+m.message)}return d}function yc(a){a.za&&(a.za=null);try{a.n.close&&a.n.close(a)}catch(b){throw b}finally{M[a.fd]=null}}function zc(a,b,c){if(!a.seekable||!a.n.N)throw new H(D.ja);a.position=a.n.N(a,b,c);a.Sb=[]}function Ac(a,b,c,d,e){if(0>d||0>e)throw new H(D.p);if(1===(a.flags&2097155))throw new H(D.L);if(K(a.g.mode))throw new H(D.S);if(!a.n.read)throw new H(D.p);var g=!0;if("undefined"===typeof e)e=a.position,g=!1;else if(!a.seekable)throw new H(D.ja);b=a.n.read(a,b,c,d,e);g||(a.position+=b);return b}function Bc(a,b,c,d,e,g){if(0>d||0>e)throw new H(D.p);if(0===(a.flags&2097155))throw new H(D.L);if(K(a.g.mode))throw new H(D.S);if(!a.n.write)throw new H(D.p);a.flags&1024&&zc(a,0,2);var h=!0;if("undefined"===typeof e)e=a.position,h=!1;else if(!a.seekable)throw new H(D.ja);b=a.n.write(a,b,c,d,e,g);h||(a.position+=b);try{if(a.path&&N.onWriteToFile)N.onWriteToFile(a.path)}catch(m){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+m.message)}return b}function Cc(){H||(H=function(a,b){this.g=b;this.Pb=function(a){this.o=a;for(var b in D)if(D[b]===a){this.code=b;break}};this.Pb(a);this.message=Bb[a]},H.prototype=Error(),H.prototype.constructor=H,[D.J].forEach(function(a){Rb[a]=new H(a);Rb[a].stack="<generic error, no stack>"}))}var Dc;function Ec(a,b){var c=0;a&&(c|=365);b&&(c|=146);return c}function Fc(a,b,c,d){a=E("string"===typeof a?a:P(a),b);return nc(a,Ec(c,d))}function Gc(a,b,c,d,e,g){a=b?E("string"===typeof a?a:P(a),b):a;d=Ec(d,e);e=nc(a,d);if(c){if("string"===typeof c){a=Array(c.length);b=0;for(var h=c.length;b<h;++b)a[b]=c.charCodeAt(b);c=a}tc(e,d|146);a=wc(e,"w");Bc(a,c,0,c.length,0,g);yc(a);tc(e,d)}return e}function Hc(a,b,c,d){a=E("string"===typeof a?a:P(a),b);b=Ec(!!c,!!d);Hc.Za||(Hc.Za=64);var e=Hc.Za++<<8|0;Lb(e,{open:function(a){a.seekable=!1},close:function(){d&&d.buffer&&d.buffer.length&&d(10)},read:function(a,b,d,e){for(var r=0,x=0;x<e;x++){var v;try{v=c()}catch(G){throw new H(D.O)}if(void 0===v&&0===r)throw new H(D.Ga);if(null===v||void 0===v)break;r++;b[d+x]=v}r&&(a.g.timestamp=Date.now());return r},write:function(a,b,c,e){for(var r=0;r<e;r++)try{d(b[c+r])}catch(x){throw new H(D.O)}e&&(a.g.timestamp=Date.now());return r}});return oc(a,b,e)}function Ic(a){if(a.Eb||a.Fb||a.link||a.e)return!0;var b=!0;if("undefined"!==typeof XMLHttpRequest)throw Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(f.read)try{a.e=B(f.read(a.url),!0),a.q=a.e.length}catch(c){b=!1}else throw Error("Cannot load without read() or XMLHttpRequest.");b||Cb(D.O);return b}var R={},dc,jc,xc,Jc={};function Kc(a,b,c){try{var d=a(b)}catch(e){if(e&&e.g&&Eb(b)!==Eb(P(e.g)))return-D.ia;throw e}w[c>>2]=d.dev;w[c+4>>2]=0;w[c+8>>2]=d.ino;w[c+12>>2]=d.mode;w[c+16>>2]=d.nlink;w[c+20>>2]=d.uid;w[c+24>>2]=d.gid;w[c+28>>2]=d.rdev;w[c+32>>2]=0;w[c+36>>2]=d.size;w[c+40>>2]=4096;w[c+44>>2]=d.blocks;w[c+48>>2]=d.atime.getTime()/1e3|0;w[c+52>>2]=0;w[c+56>>2]=d.mtime.getTime()/1e3|0;w[c+60>>2]=0;w[c+64>>2]=d.ctime.getTime()/1e3|0;w[c+68>>2]=0;w[c+72>>2]=d.ino;return 0}var S=0;function T(){S+=4;return w[S-4>>2]}function U(){return q(T())}function Lc(){var a;a=T();a=M[a];if(!a)throw new H(D.L);return a}var xa=void 0;function Mc(a){a=a/1e3;if((ca||da)&&self.performance&&self.performance.now)for(var b=self.performance.now();self.performance.now()-b<a;);else for(b=Date.now();Date.now()-b<a;);return 0}f._usleep=Mc;var Nc=z(44,"i8",2);z(B("GMT"),"i8",2);var Oc=z(8,"i32*",2),Pc=z(1,"i32*",2),Qc=z(1,"i32*",2);function Rc(){function a(a){return(a=a.toTimeString().match(/\(([A-Za-z ]+)\)$/))?a[1]:"GMT"}if(!Rc.C){Rc.C=!0;w[Qc>>2]=60*-(new Date).getTimezoneOffset();var b=new Date(2e3,0,1),c=new Date(2e3,6,1);w[Pc>>2]=Number(b.getTimezoneOffset()!=c.getTimezoneOffset());var d=a(b),e=a(c),d=z(B(d),"i8",0),e=z(B(e),"i8",0);c.getTimezoneOffset()<b.getTimezoneOffset()?(w[Oc>>2]=d,w[Oc+4>>2]=e):(w[Oc>>2]=e,w[Oc+4>>2]=d)}}function Sc(a,b){Rc();var c=new Date(1e3*w[a>>2]);w[b>>2]=c.getSeconds();w[b+4>>2]=c.getMinutes();w[b+8>>2]=c.getHours();w[b+12>>2]=c.getDate();w[b+16>>2]=c.getMonth();w[b+20>>2]=c.getFullYear()-1900;w[b+24>>2]=c.getDay();var d=new Date(c.getFullYear(),0,1);w[b+28>>2]=(c.getTime()-d.getTime())/864e5|0;w[b+36>>2]=-(60*c.getTimezoneOffset());c=c.getTimezoneOffset()==Math.min(d.getTimezoneOffset(),new Date(2e3,6,1).getTimezoneOffset())|0;w[b+32>>2]=c;w[b+40>>2]=w[Oc+(c?l.M:0)>>2];return b}f._bitshift64Lshr=Tc;function Uc(a,b){eb.push(function(){l.T("vi",a,[b])});Uc.level=eb.length}var Vc=z(1,"i32*",2);function Wc(a){var b,c;Wc.C?(c=w[Vc>>2],b=w[c>>2]):(Wc.C=!0,V.USER=V.LOGNAME="web_user",V.PATH="/",V.PWD="/",V.HOME="/home/web_user",V.LANG="C",V._=f.thisProgram,b=z(1024,"i8",2),c=z(256,"i8*",2),w[c>>2]=b,w[Vc>>2]=c);var d=[],e=0,g;for(g in a)if("string"===typeof a[g]){var h=g+"="+a[g];d.push(h);e+=h.length}if(1024<e)throw Error("Environment size exceeded TOTAL_ENV_SIZE!");for(a=0;a<d.length;a++)h=d[a],Ka(h,b),w[c+4*a>>2]=b,b+=h.length+1;w[c+4*d.length>>2]=0}var V={};function Xc(a){if(0===a)return 0;a=q(a);if(!V.hasOwnProperty(a))return 0;Xc.C&&Pa(Xc.C);Xc.C=z(B(V[a]),"i8",0);return Xc.C}f._memcpy=Yc;function Ia(a){Ia.Va||(n=Sa(),Ia.Va=!0,assert(l.ba),Ia.Gb=l.ba,l.ba=function(){p("cannot dynamically allocate, sbrk now has control")});var b=n;return 0==a||Ia.Gb(a)?b:4294967295}f._memmove=Zc;function $c(a,b){S=b;return 0}f._memset=ad;f._bitshift64Shl=bd;var cd=Ca;function dd(a,b){ed=a;fd=b;if(!gd)return 1;if(0==a)hd=function(){setTimeout(id,b)},jd="timeout";else if(1==a)hd=function(){kd(id)},jd="rAF";else if(2==a){if(!window.setImmediate){var c=[];window.addEventListener("message",function(a){a.source===window&&"__emcc"===a.data&&(a.stopPropagation(),c.shift()())},!0);window.setImmediate=function(a){c.push(a);window.postMessage("__emcc","*")}}hd=function(){window.setImmediate(id)};jd="immediate"}return 0}function ld(a,b,c,d,e){f.noExitRuntime=!0;assert(!gd,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");gd=a;md=d;var g=nd;id=function(){if(!oa)if(0<od.length){var b=Date.now(),c=od.shift();c.vb(c.la);if(pd){var e=pd,r=0==e%1?e-1:Math.floor(e);pd=c.ve?r:(8*e+(r+.5))/9}console.log('main loop blocker "'+c.name+'" took '+(Date.now()-b)+" ms");qd();setTimeout(id,0)}else g<nd||(rd=rd+1|0,1==ed&&1<fd&&0!=rd%fd?hd():("timeout"===jd&&f.wa&&(f.fa("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),jd=""),sd(function(){"undefined"!==typeof d?l.T("vi",a,[d]):l.T("v",a)}),g<nd||("object"===typeof SDL&&SDL.audio&&SDL.audio.Lb&&SDL.audio.Lb(),hd())))};e||(b&&0<b?dd(0,1e3/b):dd(1,1),hd());if(c)throw"SimulateInfiniteLoop"}var hd=null,jd="",nd=0,gd=null,md=0,ed=0,fd=0,rd=0,od=[];function qd(){if(f.setStatus){var a=f.statusMessage||"Please wait...",b=pd,c=td.xe;b?b<c?f.setStatus(a+" ("+(c-b)+"/"+c+")"):f.setStatus(a):f.setStatus("")}}function sd(a){if(!(oa||f.preMainLoop&&!1===f.preMainLoop())){try{a()}catch(b){if(b instanceof ka)return;b&&"object"===typeof b&&b.stack&&f.fa("exception thrown: "+[b,b.stack]);throw b}f.postMainLoop&&f.postMainLoop()}}var td={},id,pd,ud=!1,vd=!1,wd=[];function xd(){function a(){vd=document.pointerLockElement===c||document.mozPointerLockElement===c||document.webkitPointerLockElement===c||document.msPointerLockElement===c}f.preloadPlugins||(f.preloadPlugins=[]);if(!yd){yd=!0;try{zd=!0}catch(b){zd=!1,console.log("warning: no blob constructor, cannot create blobs with mimetypes")}Ad="undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:zd?null:console.log("warning: no BlobBuilder");Bd="undefined"!=typeof window?window.URL?window.URL:window.webkitURL:void 0;f.ab||"undefined"!==typeof Bd||(console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),f.ab=!0);f.preloadPlugins.push({canHandle:function(a){return!f.ab&&/\.(jpg|jpeg|png|bmp)$/i.test(a)},handle:function(a,b,c,h){var m=null;if(zd)try{m=new Blob([a],{type:Cd(b)}),m.size!==a.length&&(m=new Blob([new Uint8Array(a).buffer],{type:Cd(b)}))}catch(t){l.X("Blob constructor present but fails: "+t+"; falling back to blob builder")}m||(m=new Ad,m.append(new Uint8Array(a).buffer),m=m.getBlob());var r=Bd.createObjectURL(m),x=new Image;x.onload=function(){assert(x.complete,"Image "+b+" could not be decoded");var h=document.createElement("canvas");h.width=x.width;h.height=x.height;h.getContext("2d").drawImage(x,0,0);f.preloadedImages[b]=h;Bd.revokeObjectURL(r);c&&c(a)};x.onerror=function(){console.log("Image "+r+" could not be decoded");h&&h()};x.src=r}});f.preloadPlugins.push({canHandle:function(a){return!f.Je&&a.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},handle:function(a,b,c,h){function m(h){r||(r=!0,f.preloadedAudios[b]=h,c&&c(a))}function t(){r||(r=!0,f.preloadedAudios[b]=new Audio,h&&h())}var r=!1;if(zd){try{var x=new Blob([a],{type:Cd(b)})}catch(v){return t()}var x=Bd.createObjectURL(x),G=new Audio;G.addEventListener("canplaythrough",function(){m(G)},!1);G.onerror=function(){if(!r){console.log("warning: browser could not fully decode audio "+b+", trying slower base64 approach");for(var c="",g=0,h=0,x=0;x<a.length;x++)for(g=g<<8|a[x],h+=8;6<=h;)var v=g>>h-6&63,h=h-6,c=c+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[v];2==h?(c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(g&3)<<4],c+="=="):4==h&&(c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(g&15)<<2],c+="=");G.src="data:audio/x-"+b.substr(-3)+";base64,"+c;m(G)}};G.src=x;Dd(function(){m(G)})}else return t()}});var c=f.canvas;c&&(c.Ea=c.requestPointerLock||c.mozRequestPointerLock||c.webkitRequestPointerLock||c.msRequestPointerLock||function(){},c.Ra=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},c.Ra=c.Ra.bind(document),document.addEventListener("pointerlockchange",a,!1),document.addEventListener("mozpointerlockchange",a,!1),document.addEventListener("webkitpointerlockchange",a,!1),document.addEventListener("mspointerlockchange",a,!1),f.elementPointerLock&&c.addEventListener("click",function(a){!vd&&c.Ea&&(c.Ea(),a.preventDefault())},!1))}}function Ed(a,b,c,d){if(b&&f.wa&&a==f.canvas)return f.wa;var e,g;if(b){g={antialias:!1,alpha:!1};if(d)for(var h in d)g[h]=d[h];if(g=GL.createContext(a,g))e=GL.getContext(g).Zd;a.style.backgroundColor="black"}else e=a.getContext("2d");if(!e)return null;c&&(b||assert("undefined"===typeof GLctx,"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),f.wa=e,b&&GL.Ie(g),f.Le=b,wd.forEach(function(a){a()}),xd());return e}var Fd=!1,Gd=void 0,Hd=void 0;function Id(a,b,c){function d(){ud=!1;var a=e.parentNode;(document.webkitFullScreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.mozFullscreenElement||document.fullScreenElement||document.fullscreenElement||document.msFullScreenElement||document.msFullscreenElement||document.webkitCurrentFullScreenElement)===a?(e.Pa=document.cancelFullScreen||document.mozCancelFullScreen||document.webkitCancelFullScreen||document.msExitFullscreen||document.exitFullscreen||function(){},e.Pa=e.Pa.bind(document),Gd&&e.Ea(),ud=!0,Hd&&Jd()):(a.parentNode.insertBefore(e,a),a.parentNode.removeChild(a),Hd&&Kd());if(f.onFullScreen)f.onFullScreen(ud);Ld(e)}Gd=a;Hd=b;Md=c;"undefined"===typeof Gd&&(Gd=!0);"undefined"===typeof Hd&&(Hd=!1);"undefined"===typeof Md&&(Md=null);var e=f.canvas;Fd||(Fd=!0,document.addEventListener("fullscreenchange",d,!1),document.addEventListener("mozfullscreenchange",d,!1),document.addEventListener("webkitfullscreenchange",d,!1),document.addEventListener("MSFullscreenChange",d,!1));var g=document.createElement("div");e.parentNode.insertBefore(g,e);g.appendChild(e);g.C=g.requestFullScreen||g.mozRequestFullScreen||g.msRequestFullscreen||(g.webkitRequestFullScreen?function(){g.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null);c?g.C({Me:c}):g.C()}var Nd=0;function Od(a){var b=Date.now();if(0===Nd)Nd=b+1e3/60;else for(;b+2>=Nd;)Nd+=1e3/60;b=Math.max(Nd-b,0);setTimeout(a,b)}function kd(a){"undefined"===typeof window?Od(a):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||Od),window.requestAnimationFrame(a))}function Dd(a){f.noExitRuntime=!0;setTimeout(function(){oa||a()},1e4)}function Cd(a){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[a.substr(a.lastIndexOf(".")+1)]}function Pd(a,b,c){var d=new XMLHttpRequest;d.open("GET",a,!0);d.responseType="arraybuffer";d.onload=function(){200==d.status||0==d.status&&d.response?b(d.response):c()};d.onerror=c;d.send(null)}function Qd(a,b,c){Pd(a,function(c){assert(c,'Loading data file "'+a+'" failed (no arrayBuffer).');b(new Uint8Array(c));xb()},function(){if(c)c();else throw'Loading data file "'+a+'" failed.'});wb()}var Rd=[];function Sd(){var a=f.canvas;Rd.forEach(function(b){b(a.width,a.height)})}function Jd(){if("undefined"!=typeof SDL){var a=Ua[SDL.screen+0*l.M>>2];w[SDL.screen+0*l.M>>2]=a|8388608}Sd()}function Kd(){if("undefined"!=typeof SDL){var a=Ua[SDL.screen+0*l.M>>2];w[SDL.screen+0*l.M>>2]=a&-8388609}Sd()}function Ld(a,b,c){b&&c?(a.Tb=b,a.Cb=c):(b=a.Tb,c=a.Cb);var d=b,e=c;f.forcedAspectRatio&&0<f.forcedAspectRatio&&(d/e<f.forcedAspectRatio?d=Math.round(e*f.forcedAspectRatio):e=Math.round(d/f.forcedAspectRatio));if((document.webkitFullScreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.mozFullscreenElement||document.fullScreenElement||document.fullscreenElement||document.msFullScreenElement||document.msFullscreenElement||document.webkitCurrentFullScreenElement)===a.parentNode&&"undefined"!=typeof screen)var g=Math.min(screen.width/d,screen.height/e),d=Math.round(d*g),e=Math.round(e*g);Hd?(a.width!=d&&(a.width=d),a.height!=e&&(a.height=e),"undefined"!=typeof a.style&&(a.style.removeProperty("width"),a.style.removeProperty("height"))):(a.width!=b&&(a.width=b),a.height!=c&&(a.height=c),"undefined"!=typeof a.style&&(d!=b||e!=c?(a.style.setProperty("width",d+"px","important"),a.style.setProperty("height",e+"px","important")):(a.style.removeProperty("width"),a.style.removeProperty("height"))))}var yd,zd,Ad,Bd,Md,Td=Da;Cc();Xb=Array(4096);kc(J,"/");Q("/tmp");Q("/home");Q("/home/web_user");(function(){Q("/dev");Lb(259,{read:function(){return 0},write:function(a,b,e,g){return g}});oc("/dev/null",259);Kb(1280,Nb);Kb(1536,Ob);oc("/dev/tty",1280);oc("/dev/tty1",1536);var a;if("undefined"!==typeof crypto){var b=new Uint8Array(1);a=function(){crypto.getRandomValues(b);return b[0]}}else a=ea?function(){return require("crypto").randomBytes(1)[0]}:function(){return 256*Math.random()|0};Hc("/dev","random",a);Hc("/dev","urandom",a);Q("/dev/shm");Q("/dev/shm/tmp")})();Q("/proc");Q("/proc/self");Q("/proc/self/fd");kc({D:function(){var a=Qb("/proc/self","fd",16895,73);a.k={lookup:function(a,c){var d=M[+c];if(!d)throw new H(D.L);var e={parent:null,D:{$a:"fake"},k:{readlink:function(){return d.path}}};return e.parent=e}};return a}},"/proc/self/fd");cb.unshift(function(){if(!f.noFSInit&&!Dc){assert(!Dc,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");Dc=!0;Cc();f.stdin=f.stdin;f.stdout=f.stdout;f.stderr=f.stderr;f.stdin?Hc("/dev","stdin",f.stdin):pc("/dev/tty","/dev/stdin");f.stdout?Hc("/dev","stdout",null,f.stdout):pc("/dev/tty","/dev/stdout");f.stderr?Hc("/dev","stderr",null,f.stderr):pc("/dev/tty1","/dev/stderr");var a=wc("/dev/stdin","r");assert(0===a.fd,"invalid handle for stdin ("+a.fd+")");a=wc("/dev/stdout","w");assert(1===a.fd,"invalid handle for stdout ("+a.fd+")");a=wc("/dev/stderr","w");assert(2===a.fd,"invalid handle for stderr ("+a.fd+")")}});db.push(function(){Yb=!1});eb.push(function(){Dc=!1;var a=f._fflush;a&&a(0);for(a=0;a<M.length;a++){var b=M[a];b&&yc(b)}});f.FS_createFolder=function(a,b,c,d){a=E("string"===typeof a?a:P(a),b);return Q(a,Ec(c,d))};f.FS_createPath=function(a,b){a="string"===typeof a?a:P(a);for(var c=b.split("/").reverse();c.length;){var d=c.pop();if(d){var e=E(a,d);try{Q(e)}catch(g){}a=e}}return e};f.FS_createDataFile=Gc;f.FS_createPreloadedFile=function(a,b,c,d,e,g,h,m,t,r){function x(c){function x(c){r&&r();m||Gc(a,b,c,d,e,t);g&&g();xb()}var Y=!1;f.preloadPlugins.forEach(function(a){!Y&&a.canHandle(v)&&(a.handle(c,v,x,function(){h&&h();xb()}),Y=!0)});Y||x(c)}xd();var v=b?Ib(E(a,b)):a;wb();"string"==typeof c?Qd(c,function(a){x(a)},h):x(c)};f.FS_createLazyFile=function(a,b,c,d,e){
  35. var g,h;function m(){this.Aa=!1;this.ma=[]}m.prototype.get=function(a){if(!(a>this.length-1||0>a)){var b=a%this.chunkSize;return this.Bb(a/this.chunkSize|0)[b]}};m.prototype.Ob=function(a){this.Bb=a};m.prototype.Oa=function(){var a=new XMLHttpRequest;a.open("HEAD",c,!1);a.send(null);if(!(200<=a.status&&300>a.status||304===a.status))throw Error("Couldn't load "+c+". Status: "+a.status);var b=Number(a.getResponseHeader("Content-length")),d,e=1048576;(d=a.getResponseHeader("Accept-Ranges"))&&"bytes"===d||(e=b);var g=this;g.Ob(function(a){var d=a*e,h=(a+1)*e-1,h=Math.min(h,b-1);if("undefined"===typeof g.ma[a]){var m=g.ma;if(d>h)throw Error("invalid range ("+d+", "+h+") or no bytes requested!");if(h>b-1)throw Error("only "+b+" bytes available! programmer error!");var r=new XMLHttpRequest;r.open("GET",c,!1);b!==e&&r.setRequestHeader("Range","bytes="+d+"-"+h);"undefined"!=typeof Uint8Array&&(r.responseType="arraybuffer");r.overrideMimeType&&r.overrideMimeType("text/plain; charset=x-user-defined");r.send(null);if(!(200<=r.status&&300>r.status||304===r.status))throw Error("Couldn't load "+c+". Status: "+r.status);d=void 0!==r.response?new Uint8Array(r.response||[]):B(r.responseText||"",!0);m[a]=d}if("undefined"===typeof g.ma[a])throw Error("doXHR failed!");return g.ma[a]});this.lb=b;this.kb=e;this.Aa=!0};if("undefined"!==typeof XMLHttpRequest){if(!da)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";g=new m;Object.defineProperty(g,"length",{get:function(){this.Aa||this.Oa();return this.lb}});Object.defineProperty(g,"chunkSize",{get:function(){this.Aa||this.Oa();return this.kb}});h=void 0}else h=c,g=void 0;var t=Fc(a,b,d,e);g?t.e=g:h&&(t.e=null,t.url=h);Object.defineProperty(t,"usedBytes",{get:function(){return this.e.length}});var r={};Object.keys(t.n).forEach(function(a){var b=t.n[a];r[a]=function(){if(!Ic(t))throw new H(D.O);return b.apply(null,arguments)}});r.read=function(a,b,c,d,e){if(!Ic(t))throw new H(D.O);a=a.g.e;if(e>=a.length)return 0;d=Math.min(a.length-e,d);assert(0<=d);if(a.slice)for(var g=0;g<d;g++)b[c+g]=a[e+g];else for(g=0;g<d;g++)b[c+g]=a.get(e+g);return d};t.n=r;return t};f.FS_createLink=function(a,b,c){a=E("string"===typeof a?a:P(a),b);return pc(c,a)};f.FS_createDevice=Hc;f.FS_unlink=qc;cb.unshift(function(){});eb.push(function(){});if(ea){var fs=require("fs"),Tb=require("path");L.Rb()}Wc(V);f.requestFullScreen=function(a,b,c){Id(a,b,c)};f.requestAnimationFrame=function(a){kd(a)};f.setCanvasSize=function(a,b,c){Ld(f.canvas,a,b);c||Sd()};f.pauseMainLoop=function(){hd=null;nd++};f.resumeMainLoop=function(){nd++;var a=ed,b=fd,c=gd;gd=null;ld(c,0,!1,md,!0);dd(a,b);hd()};f.getUserMedia=function(){window.C||(window.C=navigator.getUserMedia||navigator.mozGetUserMedia);window.C(void 0)};f.createContext=function(a,b,c,d){return Ed(a,b,c,d)};Wa=k=l.ta(ma);Ha=!0;Xa=Wa+Za;Ya=n=l.ta(Xa);assert(Ya<na,"TOTAL_MEMORY not big enough for stack");var Ud=z([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",3);f.mb={Math:Math,Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array,NaN:NaN,Infinity:Infinity};f.nb={abort:p,assert:assert,invoke_iiii:function(a,b,c,d){try{return f.dynCall_iiii(a,b,c,d)}catch(e){if("number"!==typeof e&&"longjmp"!==e)throw e;W.setThrew(1,0)}},jsCall_iiii:function(a,b,c,d){return l.A[a](b,c,d)},invoke_i:function(a){try{return f.dynCall_i(a)}catch(b){if("number"!==typeof b&&"longjmp"!==b)throw b;W.setThrew(1,0)}},jsCall_i:function(a){return l.A[a]()},invoke_vi:function(a,b){try{f.dynCall_vi(a,b)}catch(c){if("number"!==typeof c&&"longjmp"!==c)throw c;W.setThrew(1,0)}},jsCall_vi:function(a,b){l.A[a](b)},invoke_vii:function(a,b,c){try{f.dynCall_vii(a,b,c)}catch(d){if("number"!==typeof d&&"longjmp"!==d)throw d;W.setThrew(1,0)}},jsCall_vii:function(a,b,c){l.A[a](b,c)},invoke_iiiiiii:function(a,b,c,d,e,g,h){try{return f.dynCall_iiiiiii(a,b,c,d,e,g,h)}catch(m){if("number"!==typeof m&&"longjmp"!==m)throw m;W.setThrew(1,0)}},jsCall_iiiiiii:function(a,b,c,d,e,g,h){return l.A[a](b,c,d,e,g,h)},invoke_ii:function(a,b){try{return f.dynCall_ii(a,b)}catch(c){if("number"!==typeof c&&"longjmp"!==c)throw c;W.setThrew(1,0)}},jsCall_ii:function(a,b){return l.A[a](b)},invoke_viii:function(a,b,c,d){try{f.dynCall_viii(a,b,c,d)}catch(e){if("number"!==typeof e&&"longjmp"!==e)throw e;W.setThrew(1,0)}},jsCall_viii:function(a,b,c,d){l.A[a](b,c,d)},invoke_v:function(a){try{f.dynCall_v(a)}catch(b){if("number"!==typeof b&&"longjmp"!==b)throw b;W.setThrew(1,0)}},jsCall_v:function(a){l.A[a]()},invoke_iiiii:function(a,b,c,d,e){try{return f.dynCall_iiiii(a,b,c,d,e)}catch(g){if("number"!==typeof g&&"longjmp"!==g)throw g;W.setThrew(1,0)}},jsCall_iiiii:function(a,b,c,d,e){return l.A[a](b,c,d,e)},invoke_viiiiii:function(a,b,c,d,e,g,h){try{f.dynCall_viiiiii(a,b,c,d,e,g,h)}catch(m){if("number"!==typeof m&&"longjmp"!==m)throw m;W.setThrew(1,0)}},jsCall_viiiiii:function(a,b,c,d,e,g,h){l.A[a](b,c,d,e,g,h)},invoke_iii:function(a,b,c){try{return f.dynCall_iii(a,b,c)}catch(d){if("number"!==typeof d&&"longjmp"!==d)throw d;W.setThrew(1,0)}},jsCall_iii:function(a,b,c){return l.A[a](b,c)},invoke_iiiiii:function(a,b,c,d,e,g){try{return f.dynCall_iiiiii(a,b,c,d,e,g)}catch(h){if("number"!==typeof h&&"longjmp"!==h)throw h;W.setThrew(1,0)}},jsCall_iiiiii:function(a,b,c,d,e,g){return l.A[a](b,c,d,e,g)},invoke_viiii:function(a,b,c,d,e){try{f.dynCall_viiii(a,b,c,d,e)}catch(g){if("number"!==typeof g&&"longjmp"!==g)throw g;W.setThrew(1,0)}},jsCall_viiii:function(a,b,c,d,e){l.A[a](b,c,d,e)},_pthread_cleanup_pop:function(){assert(Uc.level==eb.length,"cannot pop if something else added meanwhile!");eb.pop();Uc.level=eb.length},___syscall85:function(a,b){S=b;try{var c=U(),d=T(),e;var g=T();if(0>=g)e=-D.p;else{var h=Zb(c),h=h.slice(0,Math.max(0,g));wa(h,d,!0);e=h.length}return e}catch(m){return"undefined"!==typeof R&&m instanceof H||p(m),-m.o}},_sin:jb,_exp:pb,_utimes:function(a,b){var c;b?(c=1e3*w[b+8>>2],c+=w[b+12>>2]/1e3):c=Date.now();a=q(a);try{var d=c,e=O(a,{Q:!0}).g;e.k.B(e,{timestamp:Math.max(d,c)});return 0}catch(g){if(!(g instanceof H))throw g+" : "+Qa();Cb(g.o);return-1}},_llvm_pow_f64:sb,_acos:lb,___syscall54:function(a,b){S=b;try{var c=Lc(),d=T();switch(d){case 21505:return c.tty?0:-D.$;case 21506:return c.tty?0:-D.$;case 21519:if(!c.tty)return-D.$;var e=T();return w[e>>2]=0;case 21520:return c.tty?-D.p:-D.$;case 21531:e=T();if(!c.n.Db)throw new H(D.$);return c.n.Db(c,d,e);default:p("bad ioctl syscall "+d)}}catch(g){return"undefined"!==typeof R&&g instanceof H||p(g),-g.o}},_pthread_cleanup_push:Uc,_abort:function(){f.abort()},___syscall40:function(a,b){S=b;try{var c=U(),d=O(c,{parent:!0}).g,e=Gb(c),g=Sb(d,e),h=gc(d,e,!0);if(h)throw new H(h);if(!d.k.rmdir)throw new H(D.H);if(g.U)throw new H(D.Z);try{N.willDeletePath&&N.willDeletePath(c)}catch(m){console.log("FS.trackingDelegate['willDeletePath']('"+c+"') threw an exception: "+m.message)}d.k.rmdir(d,e);bc(g);try{if(N.onDeletePath)N.onDeletePath(c)}catch(t){console.log("FS.trackingDelegate['onDeletePath']('"+c+"') threw an exception: "+t.message)}return 0}catch(r){return"undefined"!==typeof R&&r instanceof H||p(r),-r.o}},___syscall118:function(a,b){S=b;try{return Lc(),0}catch(c){return"undefined"!==typeof R&&c instanceof H||p(c),-c.o}},___setErrNo:Cb,___syscall20:function(a,b){S=b;return 42},___syscall183:function(a,b){S=b;try{var c=T(),d=T();if(0===d)return-D.p;if(2>d)return-D.fb;Ka("/",c);return c}catch(e){return"undefined"!==typeof R&&e instanceof H||p(e),-e.o}},___assert_fail:function(a,b,c,d){oa=!0;throw"Assertion failed: "+q(a)+", at: "+[b?q(b):"unknown filename",c,d?q(d):"unknown function"]+" at "+Qa()},_usleep:Mc,_asin:mb,___buildEnvironment:Wc,___syscall202:$c,___syscall91:function(a,b){S=b;try{var c=T(),d=T(),e=Jc[c];if(!e)return 0;if(d===e.Hb){var g=M[e.fd],h=e.flags,m=new Uint8Array(A.subarray(c,c+d));g&&g.n.pa&&g.n.pa(g,m,0,d,h);Jc[c]=null;e.ua&&Pa(e.Ib)}return 0}catch(t){return"undefined"!==typeof R&&t instanceof H||p(t),-t.o}},_cos:ib,___syscall39:function(a,b){S=b;try{var c=U(),d=T(),c=Eb(c);"/"===c[c.length-1]&&(c=c.substr(0,c.length-1));Q(c,d);return 0}catch(e){return"undefined"!==typeof R&&e instanceof H||p(e),-e.o}},_localtime_r:Sc,_tzset:Rc,_emscripten_set_main_loop_timing:dd,_sbrk:Ia,___syscall192:function(a,b){S=b;try{var c=T(),d=T(),e=T(),g=T(),h=T(),m=T(),m=m<<12,t,r=!1;if(-1===h){t=Ga(d);if(!t)return-D.Ia;ad(t,0,d);r=!0}else{var x=M[h];if(!x)return-D.L;var v,G=A;if(1===(x.flags&2097155))throw new H(D.Y);if(!x.n.oa)throw new H(D.ha);v=x.n.oa(x,G,c,d,m,e,g);t=v.Kb;r=v.ua}Jc[t]={Ib:t,Hb:d,ua:r,fd:h,flags:g};return t}catch(I){return"undefined"!==typeof R&&I instanceof H||p(I),-I.o}},___syscall197:function(a,b){S=b;try{var c=Lc(),d=T();return Kc(rc,c.path,d)}catch(e){return"undefined"!==typeof R&&e instanceof H||p(e),-e.o}},___syscall196:function(a,b){S=b;try{var c=U(),d=T();return Kc(sc,c,d)}catch(e){return"undefined"!==typeof R&&e instanceof H||p(e),-e.o}},___syscall195:function(a,b){S=b;try{var c=U(),d=T();return Kc(rc,c,d)}catch(e){return"undefined"!==typeof R&&e instanceof H||p(e),-e.o}},___syscall194:function(a,b){S=b;try{var c=T();assert(0===T());var d=T(),e=T();0<=d?assert(0===e):assert(-1===e);var g=M[c];if(!g)throw new H(D.L);if(0===(g.flags&2097155))throw new H(D.p);vc(g.g,d);return 0}catch(h){return"undefined"!==typeof R&&h instanceof H||p(h),-h.o}},___syscall212:function(a,b){S=b;try{var c=U();T();T();uc(c);return 0}catch(d){return"undefined"!==typeof R&&d instanceof H||p(d),-d.o}},_sysconf:function(a){switch(a){case 30:return 4096;case 85:return $a/4096;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:return 200809;case 79:return 0;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:return"object"===typeof navigator?navigator.hardwareConcurrency||1:1}Cb(D.p);return-1},___syscall94:function(a,b){S=b;try{var c=T(),d=T(),e=M[c];if(!e)throw new H(D.L);tc(e.g,d);return 0}catch(g){return"undefined"!==typeof R&&g instanceof H||p(g),-g.o}},_nanosleep:function(a,b){var c=w[a>>2],d=w[a+4>>2];0!==b&&(w[b>>2]=0,w[b+4>>2]=0);return Mc(1e6*c+d/1e3)},_emscripten_memcpy_big:function(a,b,c){A.set(A.subarray(b,b+c),a);return a},___syscall221:function(a,b){S=b;try{var c=Lc();switch(T()){case 0:var d=T();return 0>d?-D.p:wc(c.path,c.flags,0,d).fd;case 1:case 2:return 0;case 3:return c.flags;case 4:return d=T(),c.flags|=d,0;case 12:case 12:return d=T(),za[d+0>>1]=2,0;case 13:case 14:case 13:case 14:return 0;case 16:case 8:return-D.p;case 9:return Cb(D.p),-1;default:return-D.p}}catch(e){return"undefined"!==typeof R&&e instanceof H||p(e),-e.o}},_floor:cd,_atan:nb,___syscall201:function(){return $c.apply(null,arguments)},_pthread_self:function(){return 0},_getenv:Xc,___syscall33:function(a,b){S=b;try{var c=U(),d;var e=T();if(e&-8)d=-D.p;else{var g;g=O(c,{Q:!0}).g;c="";e&4&&(c+="r");e&2&&(c+="w");e&1&&(c+="x");d=c&&cc(g,c)?-D.Y:0}return d}catch(h){return"undefined"!==typeof R&&h instanceof H||p(h),-h.o}},_log:qb,___unlock:function(){},___syscall140:function(a,b){S=b;try{var c=Lc(),d=T(),e=T(),g=T(),h=T();assert(0===d);zc(c,e,h);w[g>>2]=c.position;c.za&&0===e&&0===h&&(c.za=null);return 0}catch(m){return"undefined"!==typeof R&&m instanceof H||p(m),-m.o}},___syscall15:function(a,b){S=b;try{var c=U(),d=T();tc(c,d);return 0}catch(e){return"undefined"!==typeof R&&e instanceof H||p(e),-e.o}},_emscripten_set_main_loop:ld,___syscall10:function(a,b){S=b;try{var c=U();qc(c);return 0}catch(d){return"undefined"!==typeof R&&d instanceof H||p(d),-d.o}},_tan:kb,___syscall3:function(a,b){S=b;try{var c=Lc(),d=T(),e=T();return Ac(c,u,d,e)}catch(g){return"undefined"!==typeof R&&g instanceof H||p(g),-g.o}},___lock:function(){},___syscall6:function(a,b){S=b;try{var c=Lc();yc(c);return 0}catch(d){return"undefined"!==typeof R&&d instanceof H||p(d),-d.o}},___syscall5:function(a,b){S=b;try{var c=U(),d=T(),e=T();return wc(c,d,e).fd}catch(g){return"undefined"!==typeof R&&g instanceof H||p(g),-g.o}},___syscall4:function(a,b){S=b;try{var c=Lc(),d=T(),e=T();return Bc(c,u,d,e)}catch(g){return"undefined"!==typeof R&&g instanceof H||p(g),-g.o}},_time:function(a){var b=Date.now()/1e3|0;a&&(w[a>>2]=b);return b},_atan2:ob,_gettimeofday:function(a){var b=Date.now();w[a>>2]=b/1e3|0;w[a+4>>2]=b%1e3*1e3|0;return 0},_ceil:Td,_sqrt:rb,_localtime:function(a){return Sc(a,Nc)},___syscall207:function(a,b){S=b;try{var c=T();T();T();var d=M[c];if(!d)throw new H(D.L);uc(d.g);return 0}catch(e){return"undefined"!==typeof R&&e instanceof H||p(e),-e.o}},___syscall146:function(a,b){S=b;try{var c=Lc(),d=T(),e;a:{for(var g=T(),h=0,m=0;m<g;m++){var t=Bc(c,u,w[d+8*m>>2],w[d+(8*m+4)>>2],void 0);if(0>t){e=-1;break a}h+=t}e=h}return e}catch(r){return"undefined"!==typeof R&&r instanceof H||p(r),-r.o}},STACKTOP:k,STACK_MAX:Xa,tempDoublePtr:yb,ABORT:oa,cttz_i8:Ud};var W=function(global,env,buffer){"use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.STACKTOP|0;var j=env.STACK_MAX|0;var k=env.tempDoublePtr|0;var l=env.ABORT|0;var m=env.cttz_i8|0;var n=0;var o=0;var p=0;var q=0;var r=global.NaN,s=global.Infinity;var t=0,u=0,v=0,w=0,x=0.0,y=0,z=0,A=0,B=0.0;var C=0;var D=0;var E=0;var F=0;var G=0;var H=0;var I=0;var J=0;var K=0;var L=0;var M=global.Math.floor;var N=global.Math.abs;var O=global.Math.sqrt;var P=global.Math.pow;var Q=global.Math.cos;var R=global.Math.sin;var S=global.Math.tan;var T=global.Math.acos;var U=global.Math.asin;var V=global.Math.atan;var W=global.Math.atan2;var X=global.Math.exp;var Y=global.Math.log;var Z=global.Math.ceil;var _=global.Math.imul;var $=global.Math.min;var aa=global.Math.clz32;var ba=env.abort;var ca=env.assert;var da=env.invoke_iiii;var ea=env.jsCall_iiii;var fa=env.invoke_i;var ga=env.jsCall_i;var ha=env.invoke_vi;var ia=env.jsCall_vi;var ja=env.invoke_vii;var ka=env.jsCall_vii;var la=env.invoke_iiiiiii;var ma=env.jsCall_iiiiiii;var na=env.invoke_ii;var oa=env.jsCall_ii;var pa=env.invoke_viii;var qa=env.jsCall_viii;var ra=env.invoke_v;var sa=env.jsCall_v;var ta=env.invoke_iiiii;var ua=env.jsCall_iiiii;var va=env.invoke_viiiiii;var wa=env.jsCall_viiiiii;var xa=env.invoke_iii;var ya=env.jsCall_iii;var za=env.invoke_iiiiii;var Aa=env.jsCall_iiiiii;var Ba=env.invoke_viiii;var Ca=env.jsCall_viiii;var Da=env._pthread_cleanup_pop;var Ea=env.___syscall85;var Fa=env._sin;var Ga=env._exp;var Ha=env._utimes;var Ia=env._llvm_pow_f64;var Ja=env._acos;var Ka=env.___syscall54;var La=env._pthread_cleanup_push;var Ma=env._abort;var Na=env.___syscall40;var Oa=env.___syscall118;var Pa=env.___setErrNo;var Qa=env.___syscall20;var Ra=env.___syscall183;var Sa=env.___assert_fail;var Ta=env._usleep;var Ua=env._asin;var Va=env.___buildEnvironment;var Wa=env.___syscall202;var Xa=env.___syscall91;var Ya=env._cos;var Za=env.___syscall39;var _a=env._localtime_r;var $a=env._tzset;var ab=env._emscripten_set_main_loop_timing;var bb=env._sbrk;var cb=env.___syscall192;var db=env.___syscall197;var eb=env.___syscall196;var fb=env.___syscall195;var gb=env.___syscall194;var hb=env.___syscall212;var ib=env._sysconf;var jb=env.___syscall94;var kb=env._nanosleep;var lb=env._emscripten_memcpy_big;var mb=env.___syscall221;var nb=env._floor;var ob=env._atan;var pb=env.___syscall201;var qb=env._pthread_self;var rb=env._getenv;var sb=env.___syscall33;var tb=env._log;var ub=env.___unlock;var vb=env.___syscall140;var wb=env.___syscall15;var xb=env._emscripten_set_main_loop;var yb=env.___syscall10;var zb=env._tan;var Ab=env.___syscall3;var Bb=env.___lock;var Cb=env.___syscall6;var Db=env.___syscall5;var Eb=env.___syscall4;var Fb=env._time;var Gb=env._atan2;var Hb=env._gettimeofday;var Ib=env._ceil;var Jb=env._sqrt;var Kb=env._localtime;var Lb=env.___syscall207;var Mb=env.___syscall146;var Nb=0.0;function $b(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+15&-16;return b|0}function ac(){return i|0}function bc(a){a=a|0;i=a}function cc(a,b){a=a|0;b=b|0;i=a;j=b}function dc(a,b){a=a|0;b=b|0;if(!n){n=a;o=b}}function ec(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0]}function fc(b){b=b|0;a[k>>0]=a[b>>0];a[k+1>>0]=a[b+1>>0];a[k+2>>0]=a[b+2>>0];a[k+3>>0]=a[b+3>>0];a[k+4>>0]=a[b+4>>0];a[k+5>>0]=a[b+5>>0];a[k+6>>0]=a[b+6>>0];a[k+7>>0]=a[b+7>>0]}function gc(a){a=a|0;C=a}function hc(){return C|0}function ic(b){b=b|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;e=j+12|0;f=j+8|0;g=j+4|0;h=j;c[e>>2]=b;c[f>>2]=0;while(1){if((c[f>>2]|0)>>>0>=40)break;c[g>>2]=0;switch(d[352+((c[f>>2]|0)*12|0)+5>>0]|0){case 1:{c[g>>2]=c[e>>2];break}case 2:{c[g>>2]=-1;break}default:{}}vf(c[e>>2]|0,c[352+((c[f>>2]|0)*12|0)>>2]|0,a[352+((c[f>>2]|0)*12|0)+4>>0]|0,d[352+((c[f>>2]|0)*12|0)+6>>0]|0,c[g>>2]|0,c[352+((c[f>>2]|0)*12|0)+8>>2]|0,0,0)|0;c[f>>2]=(c[f>>2]|0)+1}c[f>>2]=0;while(1){if((c[f>>2]|0)>>>0>=6)break;c[h>>2]=0;switch(d[832+(c[f>>2]<<4)+5>>0]|0){case 1:{c[h>>2]=c[e>>2];break}case 2:{c[h>>2]=-1;break}default:{}}vf(c[e>>2]|0,c[832+(c[f>>2]<<4)>>2]|0,a[832+(c[f>>2]<<4)+4>>0]|0,1,c[h>>2]|0,0,c[832+(c[f>>2]<<4)+8>>2]|0,c[832+(c[f>>2]<<4)+12>>2]|0)|0;c[f>>2]=(c[f>>2]|0)+1}i=j;return 0}function jc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0;k=i;i=i+32|0;e=k+24|0;l=k+20|0;f=k+16|0;g=k+8|0;j=k;c[e>>2]=a;c[l>>2]=b;c[f>>2]=d;h[g>>3]=0.0;if((c[l>>2]|0)!=1)Sa(17590,17598,378,17622);if((fe(c[c[f>>2]>>2]|0)|0)==5){me(c[e>>2]|0);i=k;return}h[g>>3]=+ce(c[c[f>>2]>>2]|0);c[(SP()|0)>>2]=0;h[j>>3]=+T(+ +h[g>>3]);l=(c[(SP()|0)>>2]|0)==0;e=c[e>>2]|0;if(l){ie(e,+h[j>>3]);i=k;return}else{l=TP(c[(SP()|0)>>2]|0)|0;je(e,l,c[(SP()|0)>>2]|0);i=k;return}}function kc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0;k=i;i=i+32|0;e=k+24|0;l=k+20|0;f=k+16|0;g=k+8|0;j=k;c[e>>2]=a;c[l>>2]=b;c[f>>2]=d;h[g>>3]=0.0;if((c[l>>2]|0)!=1)Sa(17590,17598,379,17631);if((fe(c[c[f>>2]>>2]|0)|0)==5){me(c[e>>2]|0);i=k;return}h[g>>3]=+ce(c[c[f>>2]>>2]|0);c[(SP()|0)>>2]=0;h[j>>3]=+U(+ +h[g>>3]);l=(c[(SP()|0)>>2]|0)==0;e=c[e>>2]|0;if(l){ie(e,+h[j>>3]);i=k;return}else{l=TP(c[(SP()|0)>>2]|0)|0;je(e,l,c[(SP()|0)>>2]|0);i=k;return}}function lc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0;k=i;i=i+32|0;e=k+24|0;l=k+20|0;f=k+16|0;g=k+8|0;j=k;c[e>>2]=a;c[l>>2]=b;c[f>>2]=d;h[g>>3]=0.0;if((c[l>>2]|0)!=1)Sa(17590,17598,380,17640);if((fe(c[c[f>>2]>>2]|0)|0)==5){me(c[e>>2]|0);i=k;return}h[g>>3]=+ce(c[c[f>>2]>>2]|0);c[(SP()|0)>>2]=0;h[j>>3]=+V(+ +h[g>>3]);l=(c[(SP()|0)>>2]|0)==0;e=c[e>>2]|0;if(l){ie(e,+h[j>>3]);i=k;return}else{l=TP(c[(SP()|0)>>2]|0)|0;je(e,l,c[(SP()|0)>>2]|0);i=k;return}}function mc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0;k=i;i=i+32|0;e=k+24|0;l=k+20|0;f=k+16|0;g=k+8|0;j=k;c[e>>2]=a;c[l>>2]=b;c[f>>2]=d;h[g>>3]=0.0;h[j>>3]=0.0;if((c[l>>2]|0)!=2)Sa(17649,17598,570,17657);if((fe(c[c[f>>2]>>2]|0)|0)!=5?(fe(c[(c[f>>2]|0)+4>>2]|0)|0)!=5:0){h[g>>3]=+ce(c[c[f>>2]>>2]|0);h[j>>3]=+ce(c[(c[f>>2]|0)+4>>2]|0);ie(c[e>>2]|0,+W(+ +h[g>>3],+ +h[j>>3]));i=k;return}me(c[e>>2]|0);i=k;return}function nc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0;k=i;i=i+32|0;e=k+24|0;l=k+20|0;f=k+16|0;g=k+8|0;j=k;c[e>>2]=a;c[l>>2]=b;c[f>>2]=d;h[g>>3]=0.0;if((c[l>>2]|0)!=1)Sa(17590,17598,394,17666);if((fe(c[c[f>>2]>>2]|0)|0)==5){me(c[e>>2]|0);i=k;return}h[g>>3]=+ce(c[c[f>>2]>>2]|0);c[(SP()|0)>>2]=0;h[j>>3]=+ZP(+h[g>>3]);l=(c[(SP()|0)>>2]|0)==0;e=c[e>>2]|0;if(l){ie(e,+h[j>>3]);i=k;return}else{l=TP(c[(SP()|0)>>2]|0)|0;je(e,l,c[(SP()|0)>>2]|0);i=k;return}}function oc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0;k=i;i=i+32|0;e=k+24|0;l=k+20|0;f=k+16|0;g=k+8|0;j=k;c[e>>2]=a;c[l>>2]=b;c[f>>2]=d;h[g>>3]=0.0;if((c[l>>2]|0)!=1)Sa(17590,17598,402,17676);if((fe(c[c[f>>2]>>2]|0)|0)==5){me(c[e>>2]|0);i=k;return}h[g>>3]=+ce(c[c[f>>2]>>2]|0);c[(SP()|0)>>2]=0;h[j>>3]=+_P(+h[g>>3]);l=(c[(SP()|0)>>2]|0)==0;e=c[e>>2]|0;if(l){ie(e,+h[j>>3]);i=k;return}else{l=TP(c[(SP()|0)>>2]|0)|0;je(e,l,c[(SP()|0)>>2]|0);i=k;return}}function pc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0;k=i;i=i+32|0;e=k+24|0;l=k+20|0;f=k+16|0;g=k+8|0;j=k;c[e>>2]=a;c[l>>2]=b;c[f>>2]=d;h[g>>3]=0.0;if((c[l>>2]|0)!=1)Sa(17590,17598,410,17686);if((fe(c[c[f>>2]>>2]|0)|0)==5){me(c[e>>2]|0);i=k;return}h[g>>3]=+ce(c[c[f>>2]>>2]|0);c[(SP()|0)>>2]=0;h[j>>3]=+$P(+h[g>>3]);l=(c[(SP()|0)>>2]|0)==0;e=c[e>>2]|0;if(l){ie(e,+h[j>>3]);i=k;return}else{l=TP(c[(SP()|0)>>2]|0)|0;je(e,l,c[(SP()|0)>>2]|0);i=k;return}}function qc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=i;i=i+64|0;f=o+32|0;p=o+28|0;g=o+24|0;m=o+20|0;n=o+16|0;j=o+12|0;h=o+8|0;k=o+4|0;l=o;c[f>>2]=b;c[p>>2]=d;c[g>>2]=e;c[m>>2]=o+48;c[n>>2]=o+40;c[j>>2]=0;c[h>>2]=0;if((c[p>>2]|0)!=2)Sa(17649,17598,1680,17696);if((fe(c[c[g>>2]>>2]|0)|0)!=5?(fe(c[(c[g>>2]|0)+4>>2]|0)|0)!=5:0){c[k>>2]=ae(c[c[g>>2]>>2]|0)|0;c[l>>2]=ae(c[(c[g>>2]|0)+4>>2]|0)|0;md(c[k>>2]|0,c[m>>2]|0);md(c[l>>2]|0,c[n>>2]|0);c[h>>2]=0;while(1){if((c[h>>2]|0)>=4)break;p=nd(c[m>>2]|0)|0;if((p|0)==(nd(c[n>>2]|0)|0))c[j>>2]=(c[j>>2]|0)+1;do{p=(c[m>>2]|0)+1|0;c[m>>2]=p}while((192&a[p>>0]|0)==128);do{p=(c[n>>2]|0)+1|0;c[n>>2]=p}while((192&a[p>>0]|0)==128);c[h>>2]=(c[h>>2]|0)+1}ke(c[f>>2]|0,c[j>>2]|0);i=o;return}me(c[f>>2]|0);i=o;return}function rc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0;k=i;i=i+32|0;e=k+24|0;l=k+20|0;f=k+16|0;g=k+8|0;j=k;c[e>>2]=a;c[l>>2]=b;c[f>>2]=d;h[g>>3]=0.0;if((c[l>>2]|0)!=1)Sa(17590,17598,498,18100);if((fe(c[c[f>>2]>>2]|0)|0)==5){me(c[e>>2]|0);i=k;return}h[g>>3]=+ce(c[c[f>>2]>>2]|0);c[(SP()|0)>>2]=0;h[j>>3]=+od(+h[g>>3]);l=(c[(SP()|0)>>2]|0)==0;e=c[e>>2]|0;if(l){ie(e,+h[j>>3]);i=k;return}else{l=TP(c[(SP()|0)>>2]|0)|0;je(e,l,c[(SP()|0)>>2]|0);i=k;return}}function sc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0;k=i;i=i+32|0;e=k+24|0;l=k+20|0;f=k+16|0;g=k+8|0;j=k;c[e>>2]=a;c[l>>2]=b;c[f>>2]=d;h[g>>3]=0.0;if((c[l>>2]|0)!=1)Sa(17590,17598,499,18112);if((fe(c[c[f>>2]>>2]|0)|0)==5){me(c[e>>2]|0);i=k;return}h[g>>3]=+ce(c[c[f>>2]>>2]|0);c[(SP()|0)>>2]=0;h[j>>3]=+pd(+h[g>>3]);l=(c[(SP()|0)>>2]|0)==0;e=c[e>>2]|0;if(l){ie(e,+h[j>>3]);i=k;return}else{l=TP(c[(SP()|0)>>2]|0)|0;je(e,l,c[(SP()|0)>>2]|0);i=k;return}}function tc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0;k=i;i=i+32|0;e=k+24|0;l=k+20|0;f=k+16|0;g=k+8|0;j=k;c[e>>2]=a;c[l>>2]=b;c[f>>2]=d;h[g>>3]=0.0;if((c[l>>2]|0)!=1)Sa(17590,17598,420,18124);if((fe(c[c[f>>2]>>2]|0)|0)==5){me(c[e>>2]|0);i=k;return}h[g>>3]=+ce(c[c[f>>2]>>2]|0);c[(SP()|0)>>2]=0;h[j>>3]=+Q(+ +h[g>>3]);l=(c[(SP()|0)>>2]|0)==0;e=c[e>>2]|0;if(l){ie(e,+h[j>>3]);i=k;return}else{l=TP(c[(SP()|0)>>2]|0)|0;je(e,l,c[(SP()|0)>>2]|0);i=k;return}}function uc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0;k=i;i=i+32|0;e=k+24|0;l=k+20|0;f=k+16|0;g=k+8|0;j=k;c[e>>2]=a;c[l>>2]=b;c[f>>2]=d;h[g>>3]=0.0;if((c[l>>2]|0)!=1)Sa(17590,17598,419,18132);if((fe(c[c[f>>2]>>2]|0)|0)==5){me(c[e>>2]|0);i=k;return}h[g>>3]=+ce(c[c[f>>2]>>2]|0);c[(SP()|0)>>2]=0;h[j>>3]=+R(+ +h[g>>3]);l=(c[(SP()|0)>>2]|0)==0;e=c[e>>2]|0;if(l){ie(e,+h[j>>3]);i=k;return}else{l=TP(c[(SP()|0)>>2]|0)|0;je(e,l,c[(SP()|0)>>2]|0);i=k;return}}function vc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0;k=i;i=i+32|0;e=k+24|0;l=k+20|0;f=k+16|0;g=k+8|0;j=k;c[e>>2]=a;c[l>>2]=b;c[f>>2]=d;h[g>>3]=0.0;if((c[l>>2]|0)!=1)Sa(17590,17598,421,18140);if((fe(c[c[f>>2]>>2]|0)|0)==5){me(c[e>>2]|0);i=k;return}h[g>>3]=+ce(c[c[f>>2]>>2]|0);c[(SP()|0)>>2]=0;h[j>>3]=+S(+ +h[g>>3]);l=(c[(SP()|0)>>2]|0)==0;e=c[e>>2]|0;if(l){ie(e,+h[j>>3]);i=k;return}else{l=TP(c[(SP()|0)>>2]|0)|0;je(e,l,c[(SP()|0)>>2]|0);i=k;return}}function wc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0;k=i;i=i+32|0;e=k+24|0;l=k+20|0;f=k+16|0;g=k+8|0;j=k;c[e>>2]=a;c[l>>2]=b;c[f>>2]=d;h[g>>3]=0.0;if((c[l>>2]|0)!=1)Sa(17590,17598,422,18148);if((fe(c[c[f>>2]>>2]|0)|0)==5){me(c[e>>2]|0);i=k;return}h[g>>3]=+ce(c[c[f>>2]>>2]|0);c[(SP()|0)>>2]=0;h[j>>3]=+qd(+h[g>>3]);l=(c[(SP()|0)>>2]|0)==0;e=c[e>>2]|0;if(l){ie(e,+h[j>>3]);i=k;return}else{l=TP(c[(SP()|0)>>2]|0)|0;je(e,l,c[(SP()|0)>>2]|0);i=k;return}}function xc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0;k=i;i=i+32|0;e=k+24|0;l=k+20|0;f=k+16|0;g=k+8|0;j=k;c[e>>2]=a;c[l>>2]=b;c[f>>2]=d;h[g>>3]=0.0;if((c[l>>2]|0)!=1)Sa(17590,17598,446,18156);if((fe(c[c[f>>2]>>2]|0)|0)==5){me(c[e>>2]|0);i=k;return}h[g>>3]=+ce(c[c[f>>2]>>2]|0);c[(SP()|0)>>2]=0;h[j>>3]=+aQ(+h[g>>3]);l=(c[(SP()|0)>>2]|0)==0;e=c[e>>2]|0;if(l){ie(e,+h[j>>3]);i=k;return}else{l=TP(c[(SP()|0)>>2]|0)|0;je(e,l,c[(SP()|0)>>2]|0);i=k;return}}function yc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0;k=i;i=i+32|0;e=k+24|0;l=k+20|0;f=k+16|0;g=k+8|0;j=k;c[e>>2]=a;c[l>>2]=b;c[f>>2]=d;h[g>>3]=0.0;if((c[l>>2]|0)!=1)Sa(17590,17598,438,18165);if((fe(c[c[f>>2]>>2]|0)|0)==5){me(c[e>>2]|0);i=k;return}h[g>>3]=+ce(c[c[f>>2]>>2]|0);c[(SP()|0)>>2]=0;h[j>>3]=+eQ(+h[g>>3]);l=(c[(SP()|0)>>2]|0)==0;e=c[e>>2]|0;if(l){ie(e,+h[j>>3]);i=k;return}else{l=TP(c[(SP()|0)>>2]|0)|0;je(e,l,c[(SP()|0)>>2]|0);i=k;return}}function zc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0;k=i;i=i+32|0;e=k+24|0;l=k+20|0;f=k+16|0;g=k+8|0;j=k;c[e>>2]=a;c[l>>2]=b;c[f>>2]=d;h[g>>3]=0.0;if((c[l>>2]|0)!=1)Sa(17590,17598,454,18174);if((fe(c[c[f>>2]>>2]|0)|0)==5){me(c[e>>2]|0);i=k;return}h[g>>3]=+ce(c[c[f>>2]>>2]|0);c[(SP()|0)>>2]=0;h[j>>3]=+fQ(+h[g>>3]);l=(c[(SP()|0)>>2]|0)==0;e=c[e>>2]|0;if(l){ie(e,+h[j>>3]);i=k;return}else{l=TP(c[(SP()|0)>>2]|0)|0;je(e,l,c[(SP()|0)>>2]|0);i=k;return}}function Ac(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0;k=i;i=i+32|0;e=k+24|0;l=k+20|0;f=k+16|0;g=k+8|0;j=k;c[e>>2]=a;c[l>>2]=b;c[f>>2]=d;h[g>>3]=0.0;if((c[l>>2]|0)!=1)Sa(17590,17598,456,18183);if((fe(c[c[f>>2]>>2]|0)|0)==5){me(c[e>>2]|0);i=k;return}h[g>>3]=+ce(c[c[f>>2]>>2]|0);c[(SP()|0)>>2]=0;h[j>>3]=+rd(+h[g>>3]);l=(c[(SP()|0)>>2]|0)==0;e=c[e>>2]|0;if(l){ie(e,+h[j>>3]);i=k;return}else{l=TP(c[(SP()|0)>>2]|0)|0;je(e,l,c[(SP()|0)>>2]|0);i=k;return}}function Bc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0;k=i;i=i+32|0;e=k+24|0;l=k+20|0;f=k+16|0;g=k+8|0;j=k;c[e>>2]=a;c[l>>2]=b;c[f>>2]=d;h[g>>3]=0.0;if((c[l>>2]|0)!=1)Sa(17590,17598,474,18192);if((fe(c[c[f>>2]>>2]|0)|0)==5){me(c[e>>2]|0);i=k;return}h[g>>3]=+ce(c[c[f>>2]>>2]|0);c[(SP()|0)>>2]=0;h[j>>3]=+X(+ +h[g>>3]);l=(c[(SP()|0)>>2]|0)==0;e=c[e>>2]|0;if(l){ie(e,+h[j>>3]);i=k;return}else{l=TP(c[(SP()|0)>>2]|0)|0;je(e,l,c[(SP()|0)>>2]|0);i=k;return}}function Cc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0;k=i;i=i+32|0;e=k+24|0;l=k+20|0;f=k+16|0;g=k+8|0;j=k;c[e>>2]=a;c[l>>2]=b;c[f>>2]=d;h[g>>3]=0.0;if((c[l>>2]|0)!=1)Sa(17590,17598,472,18200);if((fe(c[c[f>>2]>>2]|0)|0)==5){me(c[e>>2]|0);i=k;return}h[g>>3]=+ce(c[c[f>>2]>>2]|0);c[(SP()|0)>>2]=0;h[j>>3]=+Y(+ +h[g>>3]);l=(c[(SP()|0)>>2]|0)==0;e=c[e>>2]|0;if(l){ie(e,+h[j>>3]);i=k;return}else{l=TP(c[(SP()|0)>>2]|0)|0;je(e,l,c[(SP()|0)>>2]|0);i=k;return}}function Dc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0;k=i;i=i+32|0;e=k+24|0;l=k+20|0;f=k+16|0;g=k+8|0;j=k;c[e>>2]=a;c[l>>2]=b;c[f>>2]=d;h[g>>3]=0.0;if((c[l>>2]|0)!=1)Sa(17590,17598,473,18208);if((fe(c[c[f>>2]>>2]|0)|0)==5){me(c[e>>2]|0);i=k;return}h[g>>3]=+ce(c[c[f>>2]>>2]|0);c[(SP()|0)>>2]=0;h[j>>3]=+cQ(+h[g>>3]);l=(c[(SP()|0)>>2]|0)==0;e=c[e>>2]|0;if(l){ie(e,+h[j>>3]);i=k;return}else{l=TP(c[(SP()|0)>>2]|0)|0;je(e,l,c[(SP()|0)>>2]|0);i=k;return}}function Ec(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0,m=0;l=i;i=i+48|0;e=l+32|0;m=l+28|0;f=l+24|0;g=l+16|0;j=l+8|0;k=l;c[e>>2]=a;c[m>>2]=b;c[f>>2]=d;h[g>>3]=0.0;h[j>>3]=0.0;if((c[m>>2]|0)!=2)Sa(17649,17598,546,18218);if((fe(c[c[f>>2]>>2]|0)|0)!=5?(fe(c[(c[f>>2]|0)+4>>2]|0)|0)!=5:0){h[g>>3]=+ce(c[c[f>>2]>>2]|0);h[j>>3]=+ce(c[(c[f>>2]|0)+4>>2]|0);c[(SP()|0)>>2]=0;h[k>>3]=+P(+ +h[g>>3],+ +h[j>>3]);m=(c[(SP()|0)>>2]|0)==0;e=c[e>>2]|0;if(m){ie(e,+h[k>>3]);i=l;return}else{m=TP(c[(SP()|0)>>2]|0)|0;je(e,m,c[(SP()|0)>>2]|0);i=l;return}}me(c[e>>2]|0);i=l;return}function Fc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0;k=i;i=i+32|0;j=k+24|0;l=k+20|0;e=k+16|0;g=k+8|0;f=k;c[j>>2]=a;c[l>>2]=b;c[e>>2]=d;h[g>>3]=0.0;a=f;c[a>>2]=0;c[a+4>>2]=0;if((c[l>>2]|0)!=1)Sa(17590,17598,590,18228);switch(fe(c[c[e>>2]>>2]|0)|0){case 1:{l=f;c[l>>2]=ee(c[c[e>>2]>>2]|0)|0;c[l+4>>2]=C;l=f;g=c[l+4>>2]|0;if((g|0)>0|(g|0)==0&(c[l>>2]|0)>>>0>0)e=1;else e=(c[f+4>>2]|0)<0?-1:0;l=f;c[l>>2]=e;c[l+4>>2]=((e|0)<0)<<31>>31;l=f;le(c[j>>2]|0,c[l>>2]|0,c[l+4>>2]|0);i=k;return}case 5:{me(c[j>>2]|0);i=k;return}default:{h[g>>3]=+ce(c[c[e>>2]>>2]|0);if(+h[g>>3]>0.0)e=1;else e=+h[g>>3]<0.0?-1:0;h[g>>3]=+(e|0);ie(c[j>>2]|0,+h[g>>3]);i=k;return}}}function Gc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0;k=i;i=i+32|0;e=k+24|0;l=k+20|0;f=k+16|0;g=k+8|0;j=k;c[e>>2]=a;c[l>>2]=b;c[f>>2]=d;h[g>>3]=0.0;if((c[l>>2]|0)!=1)Sa(17590,17598,375,18237);if((fe(c[c[f>>2]>>2]|0)|0)==5){me(c[e>>2]|0);i=k;return}h[g>>3]=+ce(c[c[f>>2]>>2]|0);c[(SP()|0)>>2]=0;h[j>>3]=+O(+ +h[g>>3]);l=(c[(SP()|0)>>2]|0)==0;e=c[e>>2]|0;if(l){ie(e,+h[j>>3]);i=k;return}else{l=TP(c[(SP()|0)>>2]|0)|0;je(e,l,c[(SP()|0)>>2]|0);i=k;return}}function Hc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0;k=i;i=i+32|0;e=k+24|0;l=k+20|0;f=k+16|0;g=k+8|0;j=k;c[e>>2]=a;c[l>>2]=b;c[f>>2]=d;a=g;c[a>>2]=0;c[a+4>>2]=0;h[j>>3]=0.0;if((c[l>>2]|0)!=1)Sa(17590,17598,514,18246);switch(fe(c[c[f>>2]>>2]|0)|0){case 1:{a=g;c[a>>2]=ee(c[c[f>>2]>>2]|0)|0;c[a+4>>2]=C;a=c[e>>2]|0;j=g;l=g;le(a,rR(c[j>>2]|0,c[j+4>>2]|0,c[l>>2]|0,c[l+4>>2]|0)|0,C);i=k;return}case 5:{me(c[e>>2]|0);i=k;return}default:{h[j>>3]=+ce(c[c[f>>2]>>2]|0);ie(c[e>>2]|0,+h[j>>3]*+h[j>>3]);i=k;return}}}function Ic(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0,m=0.0;k=i;i=i+48|0;e=k+32|0;l=k+28|0;f=k+24|0;j=k+16|0;g=k;c[e>>2]=a;c[l>>2]=b;c[f>>2]=d;h[j>>3]=0.0;a=k+8|0;c[a>>2]=0;c[a+4>>2]=0;if((c[l>>2]|0)!=1)Sa(17590,17598,620,18257);switch(fe(c[c[f>>2]>>2]|0)|0){case 1:{l=g;c[l>>2]=ee(c[c[f>>2]>>2]|0)|0;c[l+4>>2]=C;l=g;le(c[e>>2]|0,c[l>>2]|0,c[l+4>>2]|0);i=k;return}case 5:{me(c[e>>2]|0);i=k;return}default:{h[j>>3]=+ce(c[c[f>>2]>>2]|0);m=+Z(+ +h[j>>3]);le(c[e>>2]|0,~~m>>>0,+N(m)>=1.0?m>0.0?~~+$(+M(m/4294967296.0),4294967295.0)>>>0:~~+Z((m-+(~~m>>>0))/4294967296.0)>>>0:0);i=k;return}}}function Jc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0,m=0.0;k=i;i=i+48|0;e=k+32|0;l=k+28|0;f=k+24|0;j=k+16|0;g=k;c[e>>2]=a;c[l>>2]=b;c[f>>2]=d;h[j>>3]=0.0;a=k+8|0;c[a>>2]=0;c[a+4>>2]=0;if((c[l>>2]|0)!=1)Sa(17590,17598,645,18266);switch(fe(c[c[f>>2]>>2]|0)|0){case 1:{l=g;c[l>>2]=ee(c[c[f>>2]>>2]|0)|0;
  36. c[l+4>>2]=C;l=g;le(c[e>>2]|0,c[l>>2]|0,c[l+4>>2]|0);i=k;return}case 5:{me(c[e>>2]|0);i=k;return}default:{h[j>>3]=+ce(c[c[f>>2]>>2]|0);m=+M(+ +h[j>>3]);le(c[e>>2]|0,~~m>>>0,+N(m)>=1.0?m>0.0?~~+$(+M(m/4294967296.0),4294967295.0)>>>0:~~+Z((m-+(~~m>>>0))/4294967296.0)>>>0:0);i=k;return}}}function Kc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e+8|0;c[f>>2]=a;c[e+4>>2]=b;c[e>>2]=d;ie(c[f>>2]|0,3.141592653589793);i=e;return}function Lc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;n=i;i=i+64|0;e=n+48|0;o=n+44|0;f=n+40|0;l=n+36|0;m=n+32|0;h=n+24|0;j=n+16|0;k=n+8|0;g=n;c[e>>2]=a;c[o>>2]=b;c[f>>2]=d;a=g;c[a>>2]=0;c[a+4>>2]=0;if((c[o>>2]|0)!=2){i=n;return}if(5==(fe(c[c[f>>2]>>2]|0)|0)){i=n;return}a=ee(c[(c[f>>2]|0)+4>>2]|0)|0;o=h;c[o>>2]=a;c[o+4>>2]=C;if((c[h+4>>2]|0)<0){je(c[e>>2]|0,18276,-1);i=n;return}a=be(c[c[f>>2]>>2]|0)|0;o=j;c[o>>2]=a;c[o+4>>2]=((a|0)<0)<<31>>31;o=j;a=h;a=rR(c[o>>2]|0,c[o+4>>2]|0,c[a>>2]|0,c[a+4>>2]|0)|0;o=k;c[o>>2]=a;c[o+4>>2]=C;o=k;o=gR(c[o>>2]|0,c[o+4>>2]|0,1,0)|0;c[l>>2]=Id(o)|0;o=j;o=gR(c[o>>2]|0,c[o+4>>2]|0,1,0)|0;c[m>>2]=Id(o)|0;if((c[l>>2]|0)!=0&(c[m>>2]|0)!=0){o=c[m>>2]|0;zQ(o,ae(c[c[f>>2]>>2]|0)|0)|0;o=g;c[o>>2]=0;c[o+4>>2]=0;while(1){k=g;d=c[k+4>>2]|0;o=h;a=c[o+4>>2]|0;if(!((d|0)<(a|0)|((d|0)==(a|0)?(c[k>>2]|0)>>>0<(c[o>>2]|0)>>>0:0)))break;o=c[l>>2]|0;a=g;k=j;k=rR(c[a>>2]|0,c[a+4>>2]|0,c[k>>2]|0,c[k+4>>2]|0)|0;zQ(o+k|0,c[m>>2]|0)|0;k=g;k=gR(c[k>>2]|0,c[k+4>>2]|0,1,0)|0;o=g;c[o>>2]=k;c[o+4>>2]=C}ne(c[e>>2]|0,c[l>>2]|0,-1,-1);Kd(c[l>>2]|0);Kd(c[m>>2]|0);i=n;return}te(c[e>>2]|0);if(c[l>>2]|0)Kd(c[l>>2]|0);if(!(c[m>>2]|0)){i=n;return}Kd(c[m>>2]|0);i=n;return}function Mc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;e=m+24|0;f=m+20|0;g=m+16|0;k=m+12|0;l=m+8|0;j=m+4|0;h=m;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[j>>2]=0;c[h>>2]=0;if(!((c[f>>2]|0)==3|(c[f>>2]|0)==2))Sa(18289,17598,1038,18307);if(5!=(fe(c[c[g>>2]>>2]|0)|0)?5!=(fe(c[(c[g>>2]|0)+4>>2]|0)|0):0){c[k>>2]=ae(c[c[g>>2]>>2]|0)|0;if(!(c[k>>2]|0)){i=m;return}c[l>>2]=ae(c[(c[g>>2]|0)+4>>2]|0)|0;if((c[f>>2]|0)==3){a=(de(c[(c[g>>2]|0)+8>>2]|0)|0)-1|0;c[j>>2]=a;c[j>>2]=(c[j>>2]|0)<0?0:a}else c[j>>2]=0;c[h>>2]=sd(c[k>>2]|0,c[l>>2]|0,c[j>>2]|0,0)|0;ke(c[e>>2]|0,(c[h>>2]|0)+1|0);i=m;return}me(c[e>>2]|0);i=m;return}function Nc(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=i;i=i+48|0;g=p+32|0;q=p+28|0;h=p+24|0;j=p+20|0;k=p+16|0;l=p+12|0;n=p+8|0;o=p+4|0;m=p;c[g>>2]=b;c[q>>2]=e;c[h>>2]=f;c[j>>2]=0;c[k>>2]=0;c[l>>2]=0;if((c[q>>2]|0)!=2)Sa(17649,17598,1073,18321);if(5!=(fe(c[c[h>>2]>>2]|0)|0)?5!=(fe(c[(c[h>>2]|0)+4>>2]|0)|0):0){c[n>>2]=ae(c[c[h>>2]>>2]|0)|0;c[l>>2]=de(c[(c[h>>2]|0)+4>>2]|0)|0;c[o>>2]=c[n>>2];a:while(1){if(!(nd(c[o>>2]|0)|0))break;q=c[j>>2]|0;c[j>>2]=q+1;if((q|0)>=(c[l>>2]|0))break;while(1){q=(c[o>>2]|0)+1|0;c[o>>2]=q;if((192&(d[q>>0]|0)|0)!=128)continue a}}c[k>>2]=(c[o>>2]|0)-(c[n>>2]|0);c[m>>2]=Id((c[o>>2]|0)-(c[n>>2]|0)+1|0)|0;if(c[m>>2]|0){DQ(c[m>>2]|0,c[n>>2]|0,(c[o>>2]|0)-(c[n>>2]|0)|0)|0;a[(c[m>>2]|0)+(c[k>>2]|0)>>0]=0;ne(c[g>>2]|0,c[m>>2]|0,-1,-1);Kd(c[m>>2]|0);i=p;return}else{te(c[g>>2]|0);i=p;return}}me(c[g>>2]|0);i=p;return}function Oc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=i;i=i+48|0;f=p+36|0;q=p+32|0;g=p+28|0;k=p+24|0;h=p+20|0;j=p+16|0;m=p+12|0;o=p+8|0;n=p+4|0;l=p;c[f>>2]=b;c[q>>2]=d;c[g>>2]=e;c[k>>2]=0;c[h>>2]=0;c[j>>2]=0;if((c[q>>2]|0)!=2)Sa(17649,17598,1113,18330);if(5!=(fe(c[c[g>>2]>>2]|0)|0)?5!=(fe(c[(c[g>>2]|0)+4>>2]|0)|0):0){c[m>>2]=ae(c[c[g>>2]>>2]|0)|0;c[k>>2]=de(c[(c[g>>2]|0)+4>>2]|0)|0;c[o>>2]=c[m>>2];while(1){if(!(nd(c[o>>2]|0)|0))break;do{q=(c[o>>2]|0)+1|0;c[o>>2]=q}while((192&a[q>>0]|0)==128);c[h>>2]=(c[h>>2]|0)+1}c[n>>2]=c[o>>2];c[o>>2]=c[m>>2];q=(c[h>>2]|0)-(c[k>>2]|0)|0;c[j>>2]=q;c[j>>2]=(c[j>>2]|0)<0?0:q;a:while(1){q=c[j>>2]|0;c[j>>2]=q+-1;if((q|0)<=0)break;while(1){q=(c[o>>2]|0)+1|0;c[o>>2]=q;if((192&a[q>>0]|0)!=128)continue a}}c[l>>2]=Id((c[n>>2]|0)-(c[o>>2]|0)+1|0)|0;if(c[l>>2]|0){zQ(c[l>>2]|0,c[o>>2]|0)|0;ne(c[f>>2]|0,c[l>>2]|0,-1,-1);Kd(c[l>>2]|0);i=p;return}else{te(c[f>>2]|0);i=p;return}}me(c[f>>2]|0);i=p;return}function Pc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=i;i=i+48|0;f=o+32|0;p=o+28|0;g=o+24|0;m=o+20|0;n=o+16|0;k=o+12|0;l=o+8|0;j=o+4|0;h=o;c[f>>2]=b;c[p>>2]=d;c[g>>2]=e;c[j>>2]=0;c[h>>2]=0;if(1!=(c[p>>2]|0))Sa(18340,17598,1323,18348);if(5==(fe(c[c[g>>2]>>2]|0)|0)){me(c[f>>2]|0);i=o;return}c[m>>2]=ae(c[c[g>>2]>>2]|0)|0;c[j>>2]=BQ(c[m>>2]|0)|0;c[k>>2]=Id((c[j>>2]|0)+1|0)|0;if(!(c[k>>2]|0)){te(c[f>>2]|0);i=o;return}c[l>>2]=(c[k>>2]|0)+(c[j>>2]|0);p=c[l>>2]|0;c[l>>2]=p+-1;a[p>>0]=0;c[n>>2]=c[m>>2];a:while(1){if(!(nd(c[n>>2]|0)|0))break;c[m>>2]=c[n>>2];do{p=(c[n>>2]|0)+1|0;c[n>>2]=p}while((192&a[p>>0]|0)==128);c[h>>2]=1;while(1){if(((c[n>>2]|0)+(0-(c[h>>2]|0))|0)>>>0<(c[m>>2]|0)>>>0)continue a;j=a[(c[n>>2]|0)+(0-(c[h>>2]|0))>>0]|0;p=c[l>>2]|0;c[l>>2]=p+-1;a[p>>0]=j;c[h>>2]=(c[h>>2]|0)+1}}ne(c[f>>2]|0,c[k>>2]|0,-1,-1);Kd(c[k>>2]|0);i=o;return}function Qc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;n=i;i=i+32|0;g=n+24|0;o=n+20|0;f=n+16|0;k=n+12|0;l=n+8|0;m=n+4|0;j=n+28|0;h=n;c[g>>2]=b;c[o>>2]=d;c[f>>2]=e;c[h>>2]=1;if((c[o>>2]|0)!=1)Sa(17590,17598,724,18360);if(5==(fe(c[c[f>>2]>>2]|0)|0)){me(c[g>>2]|0);i=n;return}c[k>>2]=ae(c[c[f>>2]>>2]|0)|0;c[l>>2]=td(c[k>>2]|0)|0;if(!(c[l>>2]|0)){te(c[g>>2]|0);i=n;return}c[m>>2]=c[l>>2];while(1){o=c[k>>2]|0;c[k>>2]=o+1;o=a[o>>0]|0;a[j>>0]=o;if(!(o<<24>>24))break;if(NP(a[j>>0]|0)|0)c[h>>2]=1;else{f=a[j>>0]|0;if((c[h>>2]|0)==1)a[j>>0]=RP(f)|0;else a[j>>0]=QP(f)|0;c[h>>2]=0}b=a[j>>0]|0;o=c[m>>2]|0;c[m>>2]=o+1;a[o>>0]=b}a[c[m>>2]>>0]=0;ne(c[g>>2]|0,c[l>>2]|0,-1,-1);Kd(c[l>>2]|0);i=n;return}function Rc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=i;i=i+48|0;m=o+40|0;p=o+36|0;f=o+32|0;h=o+8|0;k=o;g=o+28|0;j=o+24|0;n=o+20|0;l=o+16|0;c[m>>2]=b;c[p>>2]=d;c[f>>2]=e;c[g>>2]=0;if((c[p>>2]|0)!=2)Sa(17649,17598,771,18371);if((fe(c[c[f>>2]>>2]|0)|0)==5){me(c[m>>2]|0);i=o;return}c[j>>2]=ae(c[c[f>>2]>>2]|0)|0;b=ee(c[(c[f>>2]|0)+4>>2]|0)|0;p=h;c[p>>2]=b;c[p+4>>2]=C;if((c[h+4>>2]|0)<0){je(c[m>>2]|0,18276,-1);i=o;return}d=ud(c[j>>2]|0,-1)|0;b=k;c[b>>2]=d;c[b+4>>2]=((d|0)<0)<<31>>31;b=k;d=c[b+4>>2]|0;p=h;e=c[p+4>>2]|0;f=c[j>>2]|0;do if((d|0)>(e|0)|((d|0)==(e|0)?(c[b>>2]|0)>>>0>=(c[p>>2]|0)>>>0:0)){c[n>>2]=td(f)|0;f=c[m>>2]|0;if(c[n>>2]|0){ne(f,c[n>>2]|0,-1,-1);break}te(f);i=o;return}else{p=BQ(f)|0;b=h;b=gR(p|0,0,c[b>>2]|0,c[b+4>>2]|0)|0;p=k;p=fR(b|0,C|0,c[p>>2]|0,c[p+4>>2]|0)|0;p=gR(p|0,C|0,1,0)|0;c[n>>2]=Id(p)|0;if(!(c[n>>2]|0)){te(c[m>>2]|0);i=o;return}c[l>>2]=c[n>>2];c[g>>2]=1;while(1){d=c[g>>2]|0;b=k;b=gR(d|0,((d|0)<0)<<31>>31|0,c[b>>2]|0,c[b+4>>2]|0)|0;d=C;p=h;e=c[p+4>>2]|0;f=c[l>>2]|0;if(!((d|0)<(e|0)|((d|0)==(e|0)?b>>>0<=(c[p>>2]|0)>>>0:0)))break;c[l>>2]=f+1;a[f>>0]=32;c[g>>2]=(c[g>>2]|0)+1}zQ(f,c[j>>2]|0)|0}while(0);ne(c[m>>2]|0,c[n>>2]|0,-1,-1);Kd(c[n>>2]|0);i=o;return}function Sc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=i;i=i+64|0;n=p+48|0;q=p+44|0;f=p+40|0;k=p+16|0;l=p+8|0;h=p;j=p+36|0;g=p+32|0;o=p+28|0;m=p+24|0;c[n>>2]=b;c[q>>2]=d;c[f>>2]=e;c[j>>2]=0;if((c[q>>2]|0)!=2)Sa(17649,17598,825,18408);if((fe(c[c[f>>2]>>2]|0)|0)==5){me(c[n>>2]|0);i=p;return}c[g>>2]=ae(c[c[f>>2]>>2]|0)|0;b=ee(c[(c[f>>2]|0)+4>>2]|0)|0;q=k;c[q>>2]=b;c[q+4>>2]=C;if((c[k+4>>2]|0)<0){je(c[n>>2]|0,18276,-1);i=p;return}d=ud(c[g>>2]|0,-1)|0;b=l;c[b>>2]=d;c[b+4>>2]=((d|0)<0)<<31>>31;b=l;d=c[b+4>>2]|0;q=k;e=c[q+4>>2]|0;f=c[g>>2]|0;do if((d|0)>(e|0)|((d|0)==(e|0)?(c[b>>2]|0)>>>0>=(c[q>>2]|0)>>>0:0)){c[o>>2]=td(f)|0;f=c[n>>2]|0;if(c[o>>2]|0){ne(f,c[o>>2]|0,-1,-1);break}te(f);i=p;return}else{q=h;c[q>>2]=BQ(f)|0;c[q+4>>2]=0;q=h;b=k;b=gR(c[q>>2]|0,c[q+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;q=l;q=fR(b|0,C|0,c[q>>2]|0,c[q+4>>2]|0)|0;q=gR(q|0,C|0,1,0)|0;c[o>>2]=Id(q)|0;if(!(c[o>>2]|0)){te(c[n>>2]|0);i=p;return}q=zQ(c[o>>2]|0,c[g>>2]|0)|0;c[m>>2]=q+(c[h>>2]|0);c[j>>2]=1;while(1){b=c[j>>2]|0;h=l;h=gR(b|0,((b|0)<0)<<31>>31|0,c[h>>2]|0,c[h+4>>2]|0)|0;b=C;q=k;g=c[q+4>>2]|0;f=c[m>>2]|0;if(!((b|0)<(g|0)|((b|0)==(g|0)?h>>>0<=(c[q>>2]|0)>>>0:0)))break;c[m>>2]=f+1;a[f>>0]=32;c[j>>2]=(c[j>>2]|0)+1}a[f>>0]=0}while(0);ne(c[n>>2]|0,c[o>>2]|0,-1,-1);Kd(c[o>>2]|0);i=p;return}function Tc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=i;i=i+64|0;n=p+48|0;q=p+44|0;f=p+40|0;k=p+16|0;l=p+8|0;h=p;j=p+36|0;g=p+32|0;o=p+28|0;m=p+24|0;c[n>>2]=b;c[q>>2]=d;c[f>>2]=e;c[j>>2]=0;if((c[q>>2]|0)!=2)Sa(17649,17598,880,18417);if((fe(c[c[f>>2]>>2]|0)|0)==5){me(c[n>>2]|0);i=p;return}c[g>>2]=ae(c[c[f>>2]>>2]|0)|0;b=ee(c[(c[f>>2]|0)+4>>2]|0)|0;q=k;c[q>>2]=b;c[q+4>>2]=C;if((c[k+4>>2]|0)<0){je(c[n>>2]|0,18276,-1);i=p;return}d=ud(c[g>>2]|0,-1)|0;b=l;c[b>>2]=d;c[b+4>>2]=((d|0)<0)<<31>>31;b=l;d=c[b+4>>2]|0;q=k;e=c[q+4>>2]|0;f=c[g>>2]|0;do if((d|0)>(e|0)|((d|0)==(e|0)?(c[b>>2]|0)>>>0>=(c[q>>2]|0)>>>0:0)){c[o>>2]=td(f)|0;f=c[n>>2]|0;if(c[o>>2]|0){ne(f,c[o>>2]|0,-1,-1);break}te(f);i=p;return}else{q=h;c[q>>2]=BQ(f)|0;c[q+4>>2]=0;q=h;b=k;b=gR(c[q>>2]|0,c[q+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;q=l;q=fR(b|0,C|0,c[q>>2]|0,c[q+4>>2]|0)|0;q=gR(q|0,C|0,1,0)|0;c[o>>2]=Id(q)|0;if(!(c[o>>2]|0)){te(c[n>>2]|0);i=p;return}c[m>>2]=c[o>>2];c[j>>2]=1;while(1){d=c[j>>2]<<1;b=l;b=gR(d|0,((d|0)<0)<<31>>31|0,c[b>>2]|0,c[b+4>>2]|0)|0;d=C;q=k;e=c[q+4>>2]|0;f=c[m>>2]|0;if(!((d|0)<(e|0)|((d|0)==(e|0)?b>>>0<=(c[q>>2]|0)>>>0:0)))break;c[m>>2]=f+1;a[f>>0]=32;c[j>>2]=(c[j>>2]|0)+1}zQ(f,c[g>>2]|0)|0;c[m>>2]=(c[m>>2]|0)+(c[h>>2]|0);while(1){b=c[j>>2]|0;h=l;h=gR(b|0,((b|0)<0)<<31>>31|0,c[h>>2]|0,c[h+4>>2]|0)|0;b=C;q=k;g=c[q+4>>2]|0;f=c[m>>2]|0;if(!((b|0)<(g|0)|((b|0)==(g|0)?h>>>0<=(c[q>>2]|0)>>>0:0)))break;c[m>>2]=f+1;a[f>>0]=32;c[j>>2]=(c[j>>2]|0)+1}a[f>>0]=0}while(0);ne(c[n>>2]|0,c[o>>2]|0,-1,-1);Kd(c[o>>2]|0);i=p;return}function Uc(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;r=i;i=i+48|0;f=r+44|0;s=r+40|0;g=r+36|0;n=r+32|0;o=r+28|0;k=r+24|0;l=r+20|0;m=r+16|0;p=r+12|0;q=r+8|0;h=r+4|0;j=r;c[f>>2]=b;c[s>>2]=d;c[g>>2]=e;c[h>>2]=0;c[j>>2]=0;if((c[s>>2]|0)!=2)Sa(17649,17598,939,18426);if((fe(c[c[g>>2]>>2]|0)|0)!=5?(fe(c[(c[g>>2]|0)+4>>2]|0)|0)!=5:0){c[n>>2]=ae(c[c[g>>2]>>2]|0)|0;c[o>>2]=ae(c[(c[g>>2]|0)+4>>2]|0)|0;c[p>>2]=Id((BQ(c[n>>2]|0)|0)+1|0)|0;if(!(c[p>>2]|0)){te(c[f>>2]|0);i=r;return}c[q>>2]=c[p>>2];c[k>>2]=c[n>>2];a:while(1){s=nd(c[k>>2]|0)|0;c[h>>2]=s;if(!s)break;c[l>>2]=c[o>>2];b:while(1){s=nd(c[l>>2]|0)|0;c[j>>2]=s;if(!s)break;if((c[j>>2]|0)==(c[h>>2]|0))break;while(1){s=(c[l>>2]|0)+1|0;c[l>>2]=s;if((192&a[s>>0]|0)!=128)continue b}}if(c[j>>2]|0){c[m>>2]=c[l>>2];do{s=(c[m>>2]|0)+1|0;c[m>>2]=s}while((192&a[s>>0]|0)==128);DQ(c[q>>2]|0,c[l>>2]|0,(c[m>>2]|0)-(c[l>>2]|0)|0)|0;c[q>>2]=(c[q>>2]|0)+((c[m>>2]|0)-(c[l>>2]|0))}while(1){s=(c[k>>2]|0)+1|0;c[k>>2]=s;if((192&a[s>>0]|0)!=128)continue a}}a[c[q>>2]>>0]=0;ne(c[f>>2]|0,c[p>>2]|0,-1,-1);Kd(c[p>>2]|0);i=r;return}me(c[f>>2]|0);i=r;return}function Vc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0,m=0;l=i;i=i+32|0;e=l+28|0;m=l+24|0;f=l+20|0;j=l+16|0;g=l+8|0;k=l;c[e>>2]=a;c[m>>2]=b;c[f>>2]=d;if((c[m>>2]|0)!=1)Sa(17590,17598,1395,18440);c[j>>2]=xe(c[e>>2]|0,24)|0;if(5==(Te(c[c[f>>2]>>2]|0)|0)){i=l;return}a=(c[j>>2]|0)+16|0;m=a;m=gR(c[m>>2]|0,c[m+4>>2]|0,1,0)|0;c[a>>2]=m;c[a+4>>2]=C;h[k>>3]=+ce(c[c[f>>2]>>2]|0);h[g>>3]=+h[k>>3]-+h[c[j>>2]>>3];a=(c[j>>2]|0)+16|0;m=c[j>>2]|0;h[m>>3]=+h[m>>3]+ +h[g>>3]/(+((c[a>>2]|0)>>>0)+4294967296.0*+(c[a+4>>2]|0));m=(c[j>>2]|0)+8|0;h[m>>3]=+h[m>>3]+ +h[g>>3]*(+h[k>>3]-+h[c[j>>2]>>3]);i=l;return}function Wc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0.0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;c[d>>2]=xe(c[b>>2]|0,0)|0;if((c[d>>2]|0)!=0?(a=(c[d>>2]|0)+16|0,f=c[a+4>>2]|0,(f|0)>0|(f|0)==0&(c[a>>2]|0)>>>0>1):0){a=c[b>>2]|0;g=+h[(c[d>>2]|0)+8>>3];f=(c[d>>2]|0)+16|0;f=fR(c[f>>2]|0,c[f+4>>2]|0,1,0)|0;ie(a,+O(+(g/(+(f>>>0)+4294967296.0*+(C|0)))));i=e;return}ie(c[b>>2]|0,0.0);i=e;return}function Xc(a){a=a|0;var b=0,d=0,e=0,f=0,g=0.0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;c[d>>2]=xe(c[b>>2]|0,0)|0;if((c[d>>2]|0)!=0?(a=(c[d>>2]|0)+16|0,f=c[a+4>>2]|0,(f|0)>0|(f|0)==0&(c[a>>2]|0)>>>0>1):0){a=c[b>>2]|0;g=+h[(c[d>>2]|0)+8>>3];f=(c[d>>2]|0)+16|0;f=fR(c[f>>2]|0,c[f+4>>2]|0,1,0)|0;ie(a,g/(+(f>>>0)+4294967296.0*+(C|0)));i=e;return}ie(c[b>>2]|0,0.0);i=e;return}function Yc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;q=i;i=i+80|0;e=q+64|0;r=q+60|0;f=q+56|0;n=q+52|0;p=q+8|0;o=q;m=q+48|0;l=q+44|0;k=q+40|0;g=q+28|0;j=q+16|0;c[e>>2]=a;c[r>>2]=b;c[f>>2]=d;a=p;c[a>>2]=0;c[a+4>>2]=0;h[o>>3]=0.0;if((c[r>>2]|0)!=1)Sa(17590,17598,1418,18453);c[k>>2]=Te(c[c[f>>2]>>2]|0)|0;if((c[k>>2]|0)==5){i=q;return}c[n>>2]=xe(c[e>>2]|0,64)|0;do if(!(c[(c[n>>2]|0)+56>>2]|0)){e=aR(1,12)|0;c[(c[n>>2]|0)+56>>2]=e;e=c[n>>2]|0;if((c[k>>2]|0)==1){r=c[e+56>>2]|0;bd(g,176);c[r>>2]=c[g>>2];c[r+4>>2]=c[g+4>>2];c[r+8>>2]=c[g+8>>2];r=(c[n>>2]|0)+48|0;c[r>>2]=0;c[r+4>>2]=0;break}else{r=e+48|0;c[r>>2]=1;c[r+4>>2]=0;r=c[(c[n>>2]|0)+56>>2]|0;bd(j,177);c[r>>2]=c[j>>2];c[r+4>>2]=c[j+4>>2];c[r+8>>2]=c[j+8>>2];break}}while(0);r=(c[n>>2]|0)+16|0;e=r;e=gR(c[e>>2]|0,c[e+4>>2]|0,1,0)|0;c[r>>2]=e;c[r+4>>2]=C;r=(c[n>>2]|0)+48|0;e=c[c[f>>2]>>2]|0;if(0==(c[r>>2]|0)?0==(c[r+4>>2]|0):0){r=ee(e)|0;o=p;c[o>>2]=r;c[o+4>>2]=C;c[m>>2]=aR(1,8)|0;o=p;p=c[o+4>>2]|0;r=c[m>>2]|0;c[r>>2]=c[o>>2];c[r+4>>2]=p;fd(c[(c[n>>2]|0)+56>>2]|0,c[m>>2]|0);i=q;return}else{h[o>>3]=+ce(e);c[l>>2]=aR(1,8)|0;h[c[l>>2]>>3]=+h[o>>3];fd(c[(c[n>>2]|0)+56>>2]|0,c[l>>2]|0);i=q;return}}function Zc(a){a=a|0;var b=0,d=0,e=0,f=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;c[d>>2]=xe(c[b>>2]|0,0)|0;if(!(c[d>>2]|0)){i=e;return}if(!(c[(c[d>>2]|0)+56>>2]|0)){i=e;return}hd(c[(c[d>>2]|0)+56>>2]|0,131,c[d>>2]|0);jd(c[(c[d>>2]|0)+56>>2]|0);$Q(c[(c[d>>2]|0)+56>>2]|0);a=(c[d>>2]|0)+40|0;if(!(1==(c[a>>2]|0)?0==(c[a+4>>2]|0):0)){i=e;return}f=(c[d>>2]|0)+48|0;a=c[b>>2]|0;b=c[d>>2]|0;if(0==(c[f>>2]|0)?0==(c[f+4>>2]|0):0){f=b;le(a,c[f>>2]|0,c[f+4>>2]|0);i=e;return}else{ie(a,+h[b+8>>3]);i=e;return}}function _c(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;c[d>>2]=xe(c[b>>2]|0,0)|0;if(!(c[d>>2]|0)){i=e;return}a=(c[d>>2]|0)+16|0;h[(c[d>>2]|0)+24>>3]=(+((c[a>>2]|0)>>>0)+4294967296.0*+(c[a+4>>2]|0))/2.0;wd(c[b>>2]|0);i=e;return}function $c(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;c[d>>2]=xe(c[b>>2]|0,0)|0;if(!(c[d>>2]|0)){i=e;return}a=(c[d>>2]|0)+16|0;h[(c[d>>2]|0)+24>>3]=(+((c[a>>2]|0)>>>0)+4294967296.0*+(c[a+4>>2]|0))/4.0;wd(c[b>>2]|0);i=e;return}function ad(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;c[d>>2]=xe(c[b>>2]|0,0)|0;if(!(c[d>>2]|0)){i=e;return}a=(c[d>>2]|0)+16|0;a=rR(c[a>>2]|0,c[a+4>>2]|0,3,0)|0;h[(c[d>>2]|0)+24>>3]=(+(a>>>0)+4294967296.0*+(C|0))/4.0;wd(c[b>>2]|0);i=e;return}function bd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+12|0;e=d;c[f>>2]=b;c[e+4>>2]=c[f>>2];c[e>>2]=0;c[a>>2]=c[e>>2];c[a+4>>2]=c[e+4>>2];c[a+8>>2]=c[e+8>>2];i=d;return}function cd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;f=i;i=i+16|0;h=f+12|0;g=f+8|0;e=f;c[h>>2]=a;c[g>>2]=b;c[f+4>>2]=d;c[e>>2]=aR(c[h>>2]|0,c[g>>2]|0)|0;i=f;return c[e>>2]|0}function dd(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;$Q(c[d>>2]|0);i=b;return}function ed(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+16|0;g=k+12|0;h=k+8|0;j=k+4|0;f=k;c[e>>2]=a;c[g>>2]=b;c[h>>2]=d;if(!(c[c[e>>2]>>2]|0)){c[f>>2]=cd(1,24,17581)|0;c[(c[f>>2]|0)+8>>2]=c[h>>2];j=(c[f>>2]|0)+16|0;c[j>>2]=1;c[j+4>>2]=0;c[c[e>>2]>>2]=c[f>>2];i=k;return}c[j>>2]=Yb[c[g>>2]&255](c[(c[c[e>>2]>>2]|0)+8>>2]|0,c[h>>2]|0)|0;if(!(c[j>>2]|0)){j=(c[c[e>>2]>>2]|0)+16|0;g=j;g=gR(c[g>>2]|0,c[g+4>>2]|0,1,0)|0;c[j>>2]=g;c[j+4>>2]=C;dd(c[h>>2]|0);i=k;return}e=c[c[e>>2]>>2]|0;if((c[j>>2]|0)>0){ed(e,c[g>>2]|0,c[h>>2]|0);i=k;return}else{ed(e+4|0,c[g>>2]|0,c[h>>2]|0);i=k;return}}function fd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;ed(c[f>>2]|0,c[(c[f>>2]|0)+4>>2]|0,c[e>>2]|0);i=d;return}function gd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+8|0;f=h+4|0;g=h;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;if(!(c[e>>2]|0)){i=h;return}if(c[c[e>>2]>>2]|0)gd(c[c[e>>2]>>2]|0,c[f>>2]|0,c[g>>2]|0);d=(c[e>>2]|0)+16|0;_b[c[f>>2]&255](c[(c[e>>2]|0)+8>>2]|0,c[d>>2]|0,c[d+4>>2]|0,c[g>>2]|0);if(!(c[(c[e>>2]|0)+4>>2]|0)){i=h;return}gd(c[(c[e>>2]|0)+4>>2]|0,c[f>>2]|0,c[g>>2]|0);i=h;return}function hd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;h=e+8|0;g=e+4|0;f=e;c[h>>2]=a;c[g>>2]=b;c[f>>2]=d;gd(c[c[h>>2]>>2]|0,c[g>>2]|0,c[f>>2]|0);i=e;return}function id(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!(c[b>>2]|0)){i=d;return}dd(c[(c[b>>2]|0)+8>>2]|0);if(c[c[b>>2]>>2]|0)id(c[c[b>>2]>>2]|0);if(c[(c[b>>2]|0)+4>>2]|0)id(c[(c[b>>2]|0)+4>>2]|0);dd(c[b>>2]|0);i=d;return}function jd(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;id(c[c[d>>2]>>2]|0);i=b;return}function kd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;g=i;i=i+32|0;d=g+24|0;j=g+20|0;h=g+16|0;e=g+8|0;f=g;c[j>>2]=a;c[h>>2]=b;j=c[j>>2]|0;a=c[j+4>>2]|0;b=e;c[b>>2]=c[j>>2];c[b+4>>2]=a;h=c[h>>2]|0;b=c[h+4>>2]|0;a=f;c[a>>2]=c[h>>2];c[a+4>>2]=b;a=e;b=f;if((c[a>>2]|0)==(c[b>>2]|0)?(c[a+4>>2]|0)==(c[b+4>>2]|0):0){c[d>>2]=0;j=c[d>>2]|0;i=g;return j|0}h=e;b=c[h+4>>2]|0;j=f;f=c[j+4>>2]|0;if((b|0)<(f|0)|((b|0)==(f|0)?(c[h>>2]|0)>>>0<(c[j>>2]|0)>>>0:0)){c[d>>2]=-1;j=c[d>>2]|0;i=g;return j|0}else{c[d>>2]=1;j=c[d>>2]|0;i=g;return j|0}return 0}function ld(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0;g=i;i=i+32|0;d=g+24|0;k=g+20|0;j=g+16|0;e=g+8|0;f=g;c[k>>2]=a;c[j>>2]=b;h[e>>3]=+h[c[k>>2]>>3];h[f>>3]=+h[c[j>>2]>>3];do if(!(+h[e>>3]==+h[f>>3]))if(+h[e>>3]<+h[f>>3]){c[d>>2]=-1;break}else{c[d>>2]=1;break}else c[d>>2]=0;while(0);i=g;return c[d>>2]|0}function md(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;f=l+16|0;j=l+12|0;h=l+8|0;k=l+4|0;g=l;c[f>>2]=b;c[j>>2]=e;c[h>>2]=0;while(1){if(!(d[(c[f>>2]|0)+(c[h>>2]|0)>>0]|0))break;if(!((MP(d[(c[f>>2]|0)+(c[h>>2]|0)>>0]|0)|0)!=0^1))break;c[h>>2]=(c[h>>2]|0)+1}if(!(a[(c[f>>2]|0)+(c[h>>2]|0)>>0]|0)){zQ(c[j>>2]|0,17839)|0;i=l;return}e=(RP(d[(c[f>>2]|0)+(c[h>>2]|0)>>0]|0)|0)&255;a[c[j>>2]>>0]=e;c[k>>2]=1;while(1){if((c[k>>2]|0)>=4)break;if(!(d[(c[f>>2]|0)+(c[h>>2]|0)>>0]|0))break;c[g>>2]=d[17711+(d[(c[f>>2]|0)+(c[h>>2]|0)>>0]&127)>>0];if((c[g>>2]|0)>0){b=(c[g>>2]|0)+48&255;e=c[k>>2]|0;c[k>>2]=e+1;a[(c[j>>2]|0)+e>>0]=b}c[h>>2]=(c[h>>2]|0)+1}while(1){f=c[k>>2]|0;if((c[k>>2]|0)>=4)break;c[k>>2]=f+1;a[(c[j>>2]|0)+f>>0]=48}a[(c[j>>2]|0)+f>>0]=0;i=l;return}function nd(a){a=a|0;var b=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;b=h+8|0;e=h+4|0;f=h;c[b>>2]=a;a=c[b>>2]|0;c[b>>2]=a+1;c[e>>2]=d[a>>0];c[f>>2]=d[17844+(c[e>>2]|0)>>0];switch(c[f>>2]|0){case 4:{c[e>>2]=65533;g=c[e>>2]|0;i=h;return g|0}case 3:{a=c[e>>2]<<6;g=c[b>>2]|0;c[b>>2]=g+1;c[e>>2]=a+(d[g>>0]|0);g=4;break}case 2:{g=4;break}case 1:break;default:{g=c[e>>2]|0;i=h;return g|0}}if((g|0)==4){a=c[e>>2]<<6;g=c[b>>2]|0;c[b>>2]=g+1;c[e>>2]=a+(d[g>>0]|0)}a=c[e>>2]<<6;g=c[b>>2]|0;c[b>>2]=g+1;c[e>>2]=a+(d[g>>0]|0);c[e>>2]=(c[e>>2]|0)-(c[928+(c[f>>2]<<2)>>2]|0);if(((c[944+(c[f>>2]<<2)>>2]&c[e>>2]|0)!=0?(c[e>>2]&-2048|0)!=55296:0)?(c[e>>2]&-2|0)!=65534:0){g=c[e>>2]|0;i=h;return g|0}c[e>>2]=65533;g=c[e>>2]|0;i=h;return g|0}function od(a){a=+a;var b=0,c=0;c=i;i=i+16|0;b=c;h[b>>3]=a;i=c;return+(+h[b>>3]*180.0/3.141592653589793)}function pd(a){a=+a;var b=0,c=0;c=i;i=i+16|0;b=c;h[b>>3]=a;i=c;return+(+h[b>>3]*3.141592653589793/180.0)}function qd(a){a=+a;var b=0,c=0;b=i;i=i+16|0;c=b;h[c>>3]=a;a=1.0/+S(+ +h[c>>3]);i=b;return+a}function rd(a){a=+a;var b=0,c=0;b=i;i=i+16|0;c=b;h[c>>3]=a;a=1.0/+fQ(+h[c>>3]);i=b;return+a}function sd(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+48|0;g=t+40|0;h=t+36|0;j=t+32|0;k=t+28|0;l=t+24|0;m=t+20|0;p=t+16|0;q=t+12|0;r=t+8|0;n=t+4|0;o=t;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;c[m>>2]=0;c[p>>2]=-1;if(!(a[c[h>>2]>>0]|0)){c[g>>2]=-1;s=c[g>>2]|0;i=t;return s|0}a:while(1){if(!(nd(c[j>>2]|0)|0))break;d=c[m>>2]|0;c[m>>2]=d+1;if((d|0)>=(c[k>>2]|0))break;while(1){d=(c[j>>2]|0)+1|0;c[j>>2]=d;if((192&a[d>>0]|0)!=128)continue a}}c[m>>2]=0;while(1){if(!(nd(c[j>>2]|0)|0))break;c[q>>2]=c[h>>2];c[r>>2]=c[j>>2];do{c[n>>2]=nd(c[q>>2]|0)|0;c[o>>2]=nd(c[r>>2]|0)|0;do{d=(c[q>>2]|0)+1|0;c[q>>2]=d}while((192&a[d>>0]|0)==128);do{d=(c[r>>2]|0)+1|0;c[r>>2]=d}while((192&a[d>>0]|0)==128)}while(((c[n>>2]|0)!=0?(c[n>>2]|0)==(c[o>>2]|0):0)&(c[o>>2]|0)!=0);if(!(c[n>>2]|0)){s=14;break}do{d=(c[j>>2]|0)+1|0;c[j>>2]=d}while((192&a[d>>0]|0)==128);c[m>>2]=(c[m>>2]|0)+1}if((s|0)==14)c[p>>2]=c[m>>2];if(c[l>>2]|0)c[c[l>>2]>>2]=c[j>>2];s=c[p>>2]|0;c[g>>2]=(c[p>>2]|0)>=0?s+(c[k>>2]|0)|0:s;s=c[g>>2]|0;i=t;return s|0}function td(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=Id((BQ(c[d>>2]|0)|0)+1|0)|0;a=zQ(c[e>>2]|0,c[d>>2]|0)|0;i=b;return a|0}function ud(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;f=k+12|0;g=k+8|0;j=k+4|0;h=k;c[f>>2]=b;c[g>>2]=e;c[j>>2]=0;if((c[g>>2]|0)>=0)c[h>>2]=(c[f>>2]|0)+(c[g>>2]|0);else c[h>>2]=-1;if((c[f>>2]|0)>>>0>(c[h>>2]|0)>>>0)Sa(18380,17598,316,18389);while(1){if(!(a[c[f>>2]>>0]|0)){f=10;break}if((c[f>>2]|0)>>>0>=(c[h>>2]|0)>>>0){f=10;break}c[f>>2]=(c[f>>2]|0)+((d[17844+(d[c[f>>2]>>0]|0)>>0]|0)+1);c[j>>2]=(c[j>>2]|0)+1}if((f|0)==10){i=k;return c[j>>2]|0}return 0}function vd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0;l=i;i=i+48|0;m=l+32|0;j=l+16|0;n=l+28|0;g=l+8|0;f=l;k=l+24|0;c[m>>2]=a;a=j;c[a>>2]=b;c[a+4>>2]=d;c[n>>2]=e;c[k>>2]=c[n>>2];e=(c[k>>2]|0)+48|0;b=c[m>>2]|0;if(0==(c[e>>2]|0)?0==(c[e+4>>2]|0):0){n=c[b>>2]|0;m=g;c[m>>2]=n;c[m+4>>2]=((n|0)<0)<<31>>31;m=(c[k>>2]|0)+32|0;n=j;b=c[k>>2]|0;if((c[m>>2]|0)==(c[n>>2]|0)?(c[m+4>>2]|0)==(c[n+4>>2]|0):0){n=b+40|0;m=n;m=gR(c[m>>2]|0,c[m+4>>2]|0,1,0)|0;c[n>>2]=m;c[n+4>>2]=C;i=l;return}m=b+32|0;e=c[m+4>>2]|0;n=j;f=c[n+4>>2]|0;if(!((e|0)<(f|0)|((e|0)==(f|0)?(c[m>>2]|0)>>>0<(c[n>>2]|0)>>>0:0))){i=l;return}n=c[g+4>>2]|0;m=c[k>>2]|0;c[m>>2]=c[g>>2];c[m+4>>2]=n;m=c[j+4>>2]|0;n=(c[k>>2]|0)+32|0;c[n>>2]=c[j>>2];c[n+4>>2]=m;n=(c[k>>2]|0)+40|0;c[n>>2]=1;c[n+4>>2]=0;i=l;return}else{h[f>>3]=+h[b>>3];m=(c[k>>2]|0)+32|0;n=j;b=c[k>>2]|0;if((c[m>>2]|0)==(c[n>>2]|0)?(c[m+4>>2]|0)==(c[n+4>>2]|0):0){n=b+40|0;m=n;m=gR(c[m>>2]|0,c[m+4>>2]|0,1,0)|0;c[n>>2]=m;c[n+4>>2]=C;i=l;return}m=b+32|0;e=c[m+4>>2]|0;n=j;g=c[n+4>>2]|0;if(!((e|0)<(g|0)|((e|0)==(g|0)?(c[m>>2]|0)>>>0<(c[n>>2]|0)>>>0:0))){i=l;return}h[(c[k>>2]|0)+8>>3]=+h[f>>3];m=c[j+4>>2]|0;n=(c[k>>2]|0)+32|0;c[n>>2]=c[j>>2];c[n+4>>2]=m;n=(c[k>>2]|0)+40|0;c[n>>2]=1;c[n+4>>2]=0;i=l;return}}function wd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=i;i=i+16|0;b=f+4|0;e=f;c[b>>2]=a;c[e>>2]=xe(c[b>>2]|0,0)|0;if(!(c[e>>2]|0)){i=f;return}if(!(c[(c[e>>2]|0)+56>>2]|0)){i=f;return}c[(c[e>>2]|0)+60>>2]=0;hd(c[(c[e>>2]|0)+56>>2]|0,132,c[e>>2]|0);jd(c[(c[e>>2]|0)+56>>2]|0);$Q(c[(c[e>>2]|0)+56>>2]|0);d=(c[e>>2]|0)+48|0;if(!(0==(c[d>>2]|0)?0==(c[d+4>>2]|0):0)){d=(c[e>>2]|0)+40|0;ie(c[b>>2]|0,+h[(c[e>>2]|0)+8>>3]/(+((c[d>>2]|0)>>>0)+4294967296.0*+(c[d+4>>2]|0)));i=f;return}g=(c[e>>2]|0)+40|0;b=c[b>>2]|0;d=c[e>>2]|0;a=c[d>>2]|0;d=c[d+4>>2]|0;if(1==(c[g>>2]|0)?0==(c[g+4>>2]|0):0){le(b,a,d);i=f;return}else{g=(c[e>>2]|0)+40|0;ie(b,(+(a>>>0)+4294967296.0*+(d|0))*1.0/(+((c[g>>2]|0)>>>0)+4294967296.0*+(c[g+4>>2]|0)));i=f;return}}function xd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;q=i;i=i+64|0;j=q+56|0;m=q+32|0;r=q+52|0;o=q+24|0;n=q+16|0;f=q+8|0;k=q;g=q+48|0;l=q+44|0;p=q+40|0;c[j>>2]=a;a=m;c[a>>2]=b;c[a+4>>2]=d;c[r>>2]=e;c[p>>2]=c[r>>2];if((c[(c[p>>2]|0)+60>>2]|0)>0){i=q;return}h[f>>3]=+h[(c[p>>2]|0)+24>>3];r=(c[p>>2]|0)+16|0;h[k>>3]=+((c[r>>2]|0)>>>0)+4294967296.0*+(c[r+4>>2]|0)-+h[(c[p>>2]|0)+24>>3];r=(c[p>>2]|0)+32|0;e=m;e=gR(c[r>>2]|0,c[r+4>>2]|0,c[e>>2]|0,c[e+4>>2]|0)|0;c[g>>2]=e;e=(c[p>>2]|0)+16|0;r=(c[p>>2]|0)+32|0;r=fR(c[e>>2]|0,c[e+4>>2]|0,c[r>>2]|0,c[r+4>>2]|0)|0;c[l>>2]=r;do if(+(c[g>>2]|0)>=+h[f>>3]){b=c[p>>2]|0;if(!(+(c[l>>2]|0)>=+h[k>>3])){c[b+60>>2]=1;break}r=b+40|0;b=r;b=gR(c[b>>2]|0,c[b+4>>2]|0,1,0)|0;c[r>>2]=b;c[r+4>>2]=C;r=(c[p>>2]|0)+48|0;b=c[j>>2]|0;if(0==(c[r>>2]|0)?0==(c[r+4>>2]|0):0){n=c[b>>2]|0;r=o;c[r>>2]=n;c[r+4>>2]=((n|0)<0)<<31>>31;r=c[p>>2]|0;n=r;o=gR(c[n>>2]|0,c[n+4>>2]|0,c[o>>2]|0,c[o+4>>2]|0)|0;c[r>>2]=o;c[r+4>>2]=C;break}else{h[n>>3]=+h[b>>3];r=(c[p>>2]|0)+8|0;h[r>>3]=+h[r>>3]+ +h[n>>3];break}}while(0);o=m;r=(c[p>>2]|0)+32|0;p=r;p=gR(c[p>>2]|0,c[p+4>>2]|0,c[o>>2]|0,c[o+4>>2]|0)|0;c[r>>2]=p;c[r+4>>2]=C;i=q;return}function yd(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;g=h+12|0;d=h+8|0;e=h+4|0;f=h;c[d>>2]=b;if(!(zd(c[d>>2]|0,18469,7)|0))c[d>>2]=(c[d>>2]|0)+7;c[f>>2]=If(c[d>>2]|0)|0;c[e>>2]=0;while(1){if((c[e>>2]|0)>=7){d=9;break}if((zd(c[d>>2]|0,c[968+(c[e>>2]<<2)>>2]|0,c[f>>2]|0)|0)==0?(Jf(a[(c[968+(c[e>>2]<<2)>>2]|0)+(c[f>>2]|0)>>0]|0)|0)==0:0){d=7;break}c[e>>2]=(c[e>>2]|0)+1}if((d|0)==7){c[g>>2]=1;g=c[g>>2]|0;i=h;return g|0}else if((d|0)==9){c[g>>2]=0;g=c[g>>2]|0;i=h;return g|0}return 0}function zd(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;l=m+20|0;f=m+16|0;g=m+12|0;h=m+8|0;j=m+4|0;k=m;c[f>>2]=a;c[g>>2]=b;c[h>>2]=e;e=c[g>>2]|0;if(!(c[f>>2]|0)){c[l>>2]=(e|0)!=0?-1:0;l=c[l>>2]|0;i=m;return l|0}if(!e){c[l>>2]=1;l=c[l>>2]|0;i=m;return l|0}c[j>>2]=c[f>>2];c[k>>2]=c[g>>2];while(1){g=c[h>>2]|0;c[h>>2]=g+-1;if((g|0)<=0)break;if(!(d[c[j>>2]>>0]|0))break;if((d[18477+(d[c[j>>2]>>0]|0)>>0]|0|0)!=(d[18477+(d[c[k>>2]>>0]|0)>>0]|0|0))break;c[j>>2]=(c[j>>2]|0)+1;c[k>>2]=(c[k>>2]|0)+1}if((c[h>>2]|0)<0)e=0;else e=(d[18477+(d[c[j>>2]>>0]|0)>>0]|0)-(d[18477+(d[c[k>>2]>>0]|0)>>0]|0)|0;c[l>>2]=e;l=c[l>>2]|0;i=m;return l|0}function Ad(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[d>>2]=a;if((c[d>>2]|0)>=0&(c[d>>2]|0)<7){c[b>>2]=c[968+(c[d>>2]<<2)>>2];a=c[b>>2]|0;i=e;return a|0}else{c[b>>2]=0;a=c[b>>2]|0;i=e;return a|0}return 0}function Bd(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;g=m+20|0;h=m+16|0;j=m+12|0;k=m+8|0;l=m+4|0;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;if((c[h>>2]|0)<0|(c[h>>2]|0)>=10){c[g>>2]=Kf(16368)|0;l=c[g>>2]|0;i=m;return l|0}if(a[18733+(c[h>>2]|0)>>0]|0)b=Lf()|0;else b=Mf()|0;c[m>>2]=b;j=c[j>>2]|0;c[j>>2]=c[996+(c[h>>2]<<2)>>2];c[j+4>>2]=0;k=c[k>>2]|0;c[k>>2]=c[1036+(c[h>>2]<<2)>>2];c[k+4>>2]=0;if(c[l>>2]|0)c[1036+(c[h>>2]<<2)>>2]=c[996+(c[h>>2]<<2)>>2];c[g>>2]=0;l=c[g>>2]|0;i=m;return l|0}function Cd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=i;i=i+16|0;b=f+12|0;d=f+8|0;e=f+4|0;g=f;c[d>>2]=a;c[e>>2]=0;c[g>>2]=Dd()|0;if(c[g>>2]|0){c[b>>2]=0;g=c[b>>2]|0;i=f;return g|0}c[e>>2]=c[269];while(1){if((c[e>>2]|0)==0|(c[d>>2]|0)==0)break;if(!(yQ(c[d>>2]|0,c[(c[e>>2]|0)+16>>2]|0)|0))break;c[e>>2]=c[(c[e>>2]|0)+12>>2]}c[b>>2]=c[e>>2];g=c[b>>2]|0;i=f;return g|0}function Dd(){var a=0,b=0,d=0,e=0,f=0;f=i;i=i+16|0;d=f+8|0;e=f+4|0;a=f;if(c[59]|0){c[d>>2]=0;e=c[d>>2]|0;i=f;return e|0}c[e>>2]=0;if(c[e>>2]|0){c[d>>2]=c[e>>2];e=c[d>>2]|0;i=f;return e|0}c[61]=1;if(!(c[62]|0))c[e>>2]=Tf()|0;if(((c[e>>2]|0)==0?(c[62]=1,(c[65]|0)==0):0)?(c[65]=8,!((c[3]|0)==0|(c[65]|0)!=0)):0)c[e>>2]=7;if(!(c[e>>2]|0))c[64]=(c[64]|0)+1;if(c[e>>2]|0){c[d>>2]=c[e>>2];e=c[d>>2]|0;i=f;return e|0}if((c[59]|0)==0&(c[60]|0)==0){c[a>>2]=1080;c[60]=1;a=c[a>>2]|0;b=a+92|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(b|0));Uf();if(!(c[63]|0))c[e>>2]=Vf()|0;if(!(c[e>>2]|0)){c[63]=1;c[e>>2]=Wf()|0}if(!(c[e>>2]|0)){Xf(c[53]|0,c[54]|0,c[55]|0);c[59]=1}c[60]=0}c[64]=(c[64]|0)+-1;if((c[64]|0)<=0)c[65]=0;c[d>>2]=c[e>>2];e=c[d>>2]|0;i=f;return e|0}function Ed(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+12|0;f=h+8|0;g=h+4|0;d=h;c[f>>2]=a;c[g>>2]=b;c[d>>2]=Dd()|0;if(c[d>>2]|0){c[e>>2]=c[d>>2];g=c[e>>2]|0;i=h;return g|0}Yf(c[f>>2]|0);b=c[269]|0;if((c[g>>2]|0)!=0|(c[269]|0)==0){c[(c[f>>2]|0)+12>>2]=b;c[269]=c[f>>2]}else{c[(c[f>>2]|0)+12>>2]=c[b+12>>2];c[(c[269]|0)+12>>2]=c[f>>2]}c[e>>2]=0;g=c[e>>2]|0;i=h;return g|0}function Fd(a){a=a|0;var b=0;b=i;i=i+16|0;c[b>>2]=a;i=b;return 0}function Gd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;j=i;i=i+48|0;e=j+32|0;f=j+24|0;h=j+16|0;g=j+8|0;d=j;k=j+40|0;l=f;c[l>>2]=a;c[l+4>>2]=b;c[k>>2]=Dd()|0;if(c[k>>2]|0){k=e;c[k>>2]=-1;c[k+4>>2]=-1;k=e;l=k;l=c[l>>2]|0;k=k+4|0;k=c[k>>2]|0;C=k;i=j;return l|0}b=288;k=c[b+4>>2]|0;l=h;c[l>>2]=c[b>>2];c[l+4>>2]=k;if((c[f+4>>2]|0)<0){l=c[h+4>>2]|0;k=e;c[k>>2]=c[h>>2];c[k+4>>2]=l;k=e;l=k;l=c[l>>2]|0;k=k+4|0;k=c[k>>2]|0;C=k;i=j;return l|0}b=f;l=c[b+4>>2]|0;k=288;c[k>>2]=c[b>>2];c[k+4>>2]=l;k=Zf(0)|0;l=d;c[l>>2]=k;c[l+4>>2]=C;l=f;k=c[l+4>>2]|0;if((k|0)>0|(k|0)==0&(c[l>>2]|0)>>>0>0){l=f;b=c[l+4>>2]|0;a=d;k=c[a+4>>2]|0;a=(b|0)<(k|0)|((b|0)==(k|0)?(c[l>>2]|0)>>>0<=(c[a>>2]|0)>>>0:0)}else a=0;c[77]=a&1;l=Hd()|0;k=f;k=fR(l|0,C|0,c[k>>2]|0,c[k+4>>2]|0)|0;l=g;c[l>>2]=k;c[l+4>>2]=C;l=g;k=c[l+4>>2]|0;if((k|0)>0|(k|0)==0&(c[l>>2]|0)>>>0>0)Fd(c[g>>2]&2147483647)|0;l=c[h+4>>2]|0;k=e;c[k>>2]=c[h>>2];c[k+4>>2]=l;k=e;l=k;l=c[l>>2]|0;k=k+4|0;k=c[k>>2]|0;C=k;i=j;return l|0}function Hd(){var a=0,b=0;b=i;i=i+16|0;a=b+8|0;Bd(0,a,b,0)|0;C=c[a+4>>2]|0;i=b;return c[a>>2]|0}function Id(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;d=e+4|0;b=e;c[b>>2]=a;if(Dd()|0){c[d>>2]=0;d=c[d>>2]|0;i=e;return d|0}if((c[b>>2]|0)<=0)b=0;else{b=c[b>>2]|0;b=_f(b,((b|0)<0)<<31>>31)|0}c[d>>2]=b;d=c[d>>2]|0;i=e;return d|0}function Jd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=i;i=i+16|0;d=f+8|0;e=f;g=e;c[g>>2]=a;c[g+4>>2]=b;if(Dd()|0){c[d>>2]=0;g=c[d>>2]|0;i=f;return g|0}else{g=e;c[d>>2]=_f(c[g>>2]|0,c[g+4>>2]|0)|0;g=c[d>>2]|0;i=f;return g|0}return 0}function Kd(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!(c[b>>2]|0)){i=d;return}if(c[2]|0){ag(0,$f(c[b>>2]|0)|0);ag(9,1);Qb[c[48>>2]&255](c[b>>2]|0);i=d;return}else{Qb[c[48>>2]&255](c[b>>2]|0);i=d;return}}function Ld(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;e=g+4|0;f=g;c[e>>2]=a;c[f>>2]=b;if(Dd()|0){c[d>>2]=0;a=c[d>>2]|0;i=g;return a|0}if((c[f>>2]|0)<0)c[f>>2]=0;a=c[f>>2]|0;c[d>>2]=bg(c[e>>2]|0,a,((a|0)<0)<<31>>31)|0;a=c[d>>2]|0;i=g;return a|0}function Md(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+12|0;f=h+8|0;g=h;c[f>>2]=a;a=g;c[a>>2]=b;c[a+4>>2]=d;if(Dd()|0){c[e>>2]=0;a=c[e>>2]|0;i=h;return a|0}else{a=g;c[e>>2]=bg(c[f>>2]|0,c[a>>2]|0,c[a+4>>2]|0)|0;a=c[e>>2]|0;i=h;return a|0}return 0}function Nd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+128|0;d=j+40|0;e=j+36|0;f=j+32|0;h=j+28|0;g=j;c[e>>2]=a;c[f>>2]=b;if(Dd()|0){c[d>>2]=0;a=c[d>>2]|0;i=j;return a|0}else{cg(g,0,j+44|0,70,1e9);dg(g,c[e>>2]|0,c[f>>2]|0);c[h>>2]=eg(g)|0;c[d>>2]=c[h>>2];a=c[d>>2]|0;i=j;return a|0}return 0}function Od(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+32|0;d=h+28|0;e=h+24|0;f=h+8|0;g=h;c[e>>2]=a;if(Dd()|0){c[d>>2]=0;a=c[d>>2]|0;i=h;return a|0}else{c[f>>2]=b;c[g>>2]=Nd(c[e>>2]|0,f)|0;c[d>>2]=c[g>>2];a=c[d>>2]|0;i=h;return a|0}return 0}function Pd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;l=i;i=i+48|0;f=l+44|0;g=l+40|0;m=l+36|0;h=l+32|0;j=l+28|0;k=l;c[g>>2]=a;c[m>>2]=b;c[h>>2]=d;c[j>>2]=e;e=c[m>>2]|0;if((c[g>>2]|0)<=0){c[f>>2]=e;m=c[f>>2]|0;i=l;return m|0}else{cg(k,0,e,c[g>>2]|0,0);dg(k,c[h>>2]|0,c[j>>2]|0);c[f>>2]=eg(k)|0;m=c[f>>2]|0;i=l;return m|0}return 0}function Qd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;g=i;i=i+32|0;l=g+28|0;k=g+24|0;j=g+20|0;f=g+16|0;h=g;c[l>>2]=a;c[k>>2]=b;c[j>>2]=d;c[h>>2]=e;c[f>>2]=Pd(c[l>>2]|0,c[k>>2]|0,c[j>>2]|0,h)|0;i=g;return c[f>>2]|0}function Rd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+32|0;e=h+20|0;f=h+16|0;g=h;c[e>>2]=a;c[f>>2]=b;if(!(c[66]|0)){i=h;return}c[g>>2]=d;fg(c[e>>2]|0,c[f>>2]|0,g);i=h;return}function Sd(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+288|0;f=m+12|0;g=m+8|0;k=m+272|0;l=m+4|0;h=m;j=m+16|0;c[f>>2]=b;c[g>>2]=e;c[l>>2]=c[g>>2];if(Dd()|0){i=m;return}if((c[f>>2]|0)<=0|(c[g>>2]|0)==0){a[18743]=0;i=m;return}if(!(a[18743]|0)){a[18745]=0;a[18744]=0;gg(Cd(0)|0,256,j)|0;c[h>>2]=0;while(1){if((c[h>>2]|0)>=256)break;a[18746+(c[h>>2]|0)>>0]=c[h>>2];c[h>>2]=(c[h>>2]|0)+1}c[h>>2]=0;while(1){if((c[h>>2]|0)>=256)break;a[18745]=(d[18745]|0)+((d[18746+(c[h>>2]|0)>>0]|0)+(a[j+(c[h>>2]|0)>>0]|0));a[k>>0]=a[18746+(d[18745]|0)>>0]|0;a[18746+(d[18745]|0)>>0]=a[18746+(c[h>>2]|0)>>0]|0;a[18746+(c[h>>2]|0)>>0]=a[k>>0]|0;c[h>>2]=(c[h>>2]|0)+1}a[18743]=1}do{a[18744]=(a[18744]|0)+1<<24>>24;a[k>>0]=a[18746+(d[18744]|0)>>0]|0;
  37. a[18745]=(d[18745]|0)+(d[k>>0]|0);a[18746+(d[18744]|0)>>0]=a[18746+(d[18745]|0)>>0]|0;a[18746+(d[18745]|0)>>0]=a[k>>0]|0;a[k>>0]=(d[k>>0]|0)+(d[18746+(d[18744]|0)>>0]|0);j=a[18746+(d[k>>0]|0)>>0]|0;e=c[l>>2]|0;c[l>>2]=e+1;a[e>>0]=j;e=(c[f>>2]|0)+-1|0;c[f>>2]=e}while((e|0)!=0);i=m;return}function Td(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;g=k+16|0;e=k+12|0;f=k+8|0;h=k+4|0;j=k;c[e>>2]=a;c[f>>2]=b;a=c[f>>2]|0;if(!(c[e>>2]|0)){c[g>>2]=(a|0)!=0?-1:0;j=c[g>>2]|0;i=k;return j|0}if(!a){c[g>>2]=1;j=c[g>>2]|0;i=k;return j|0}c[h>>2]=c[e>>2];c[j>>2]=c[f>>2];while(1){if(d[c[h>>2]>>0]|0)b=(d[18477+(d[c[h>>2]>>0]|0)>>0]|0|0)==(d[18477+(d[c[j>>2]>>0]|0)>>0]|0|0);else b=0;a=c[h>>2]|0;if(!b)break;c[h>>2]=a+1;c[j>>2]=(c[j>>2]|0)+1}c[g>>2]=(d[18477+(d[a>>0]|0)>>0]|0)-(d[18477+(d[c[j>>2]>>0]|0)>>0]|0);j=c[g>>2]|0;i=k;return j|0}function Ud(){var a=0,b=0;b=i;i=i+16|0;a=b;c[a>>2]=0;while(1){if((c[a>>2]|0)>>>0>=4)break;Ed(1172+((c[a>>2]|0)*88|0)|0,(c[a>>2]|0)==0&1)|0;c[a>>2]=(c[a>>2]|0)+1}i=b;return 0}function Vd(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0;F=i;i=i+112|0;r=F+108|0;e=F+104|0;D=F+100|0;f=F+96|0;B=F+92|0;p=F+88|0;z=F+84|0;x=F+80|0;j=F+76|0;m=F+72|0;s=F+68|0;h=F+64|0;o=F+60|0;k=F+56|0;q=F+52|0;v=F+16|0;y=F+48|0;g=F+44|0;l=F+40|0;u=F+8|0;t=F;n=F+36|0;A=F+32|0;w=F+28|0;E=F+24|0;c[r>>2]=a;c[e>>2]=b;c[B>>2]=0;c[p>>2]=0;kg(c[(c[r>>2]|0)+24>>2]|0);c[D>>2]=c[(c[r>>2]|0)+28>>2];if(lg(c[D>>2]|0)|0){E=c[D>>2]|0;i=F;return E|0}c[z>>2]=Of(c[(c[r>>2]|0)+24>>2]|0)|0;c[x>>2]=Of(c[(c[r>>2]|0)+4>>2]|0)|0;c[m>>2]=-1;c[s>>2]=0;if((c[c[r>>2]>>2]|0)!=0?(d[(c[(c[(c[r>>2]|0)+24>>2]|0)+4>>2]|0)+20>>0]|0|0)==2:0)c[D>>2]=5;else c[D>>2]=0;if((0==(c[D>>2]|0)?(c[(c[r>>2]|0)+12>>2]|0)==0:0)?(a=mg(c[(c[r>>2]|0)+4>>2]|0,2)|0,c[D>>2]=a,0==(a|0)):0){c[(c[r>>2]|0)+12>>2]=1;ng(c[(c[r>>2]|0)+4>>2]|0,1,(c[r>>2]|0)+8|0)}if((c[D>>2]|0)==0?0==(og(c[(c[r>>2]|0)+24>>2]|0)|0):0){c[D>>2]=mg(c[(c[r>>2]|0)+24>>2]|0,0)|0;c[s>>2]=1}c[B>>2]=pg(c[(c[r>>2]|0)+24>>2]|0)|0;c[p>>2]=pg(c[(c[r>>2]|0)+4>>2]|0)|0;c[f>>2]=qg(Of(c[(c[r>>2]|0)+4>>2]|0)|0)|0;if(0==(c[D>>2]|0)&(c[f>>2]|0)==5?(c[B>>2]|0)!=(c[p>>2]|0):0)c[D>>2]=8;c[m>>2]=rg(c[(c[r>>2]|0)+24>>2]|0)|0;c[j>>2]=0;while(1){if((c[e>>2]|0)>=0?(c[j>>2]|0)>=(c[e>>2]|0):0)break;if((c[(c[r>>2]|0)+16>>2]|0)>>>0>(c[m>>2]|0)>>>0)break;if(!((c[D>>2]|0)!=0^1))break;c[h>>2]=c[(c[r>>2]|0)+16>>2];if((c[h>>2]|0)!=((((c[381]|0)>>>0)/((c[(c[(c[(c[r>>2]|0)+24>>2]|0)+4>>2]|0)+32>>2]|0)>>>0)|0)+1|0)?(c[D>>2]=sg(c[z>>2]|0,c[h>>2]|0,o,2)|0,(c[D>>2]|0)==0):0){b=c[r>>2]|0;a=c[h>>2]|0;c[D>>2]=ug(b,a,tg(c[o>>2]|0)|0,0)|0;vg(c[o>>2]|0)}a=(c[r>>2]|0)+16|0;c[a>>2]=(c[a>>2]|0)+1;c[j>>2]=(c[j>>2]|0)+1}do if(!(c[D>>2]|0)){c[(c[r>>2]|0)+36>>2]=c[m>>2];c[(c[r>>2]|0)+32>>2]=(c[m>>2]|0)+1-(c[(c[r>>2]|0)+16>>2]|0);if((c[(c[r>>2]|0)+16>>2]|0)>>>0>(c[m>>2]|0)>>>0){c[D>>2]=101;break}if(!(c[(c[r>>2]|0)+40>>2]|0))wg(c[r>>2]|0)}while(0);if((c[D>>2]|0)==101){if(!(c[m>>2]|0)){c[D>>2]=xg(c[(c[r>>2]|0)+4>>2]|0)|0;c[m>>2]=1}if((c[D>>2]|0)==0|(c[D>>2]|0)==101)c[D>>2]=yg(c[(c[r>>2]|0)+4>>2]|0,1,(c[(c[r>>2]|0)+8>>2]|0)+1|0)|0;if(!(c[D>>2]|0)){if(c[c[r>>2]>>2]|0)zg(c[c[r>>2]>>2]|0);if((c[f>>2]|0)==5)c[D>>2]=Ag(c[(c[r>>2]|0)+4>>2]|0,2)|0}if(!(c[D>>2]|0)){if((c[B>>2]|0)<(c[p>>2]|0)){c[q>>2]=(c[p>>2]|0)/(c[B>>2]|0)|0;c[k>>2]=((c[m>>2]|0)+(c[q>>2]|0)-1|0)/(c[q>>2]|0)|0;if((c[k>>2]|0)==((((c[381]|0)>>>0)/((c[(c[(c[(c[r>>2]|0)+4>>2]|0)+4>>2]|0)+32>>2]|0)>>>0)|0)+1|0))c[k>>2]=(c[k>>2]|0)+-1}else c[k>>2]=_(c[m>>2]|0,(c[B>>2]|0)/(c[p>>2]|0)|0)|0;if((c[B>>2]|0)<(c[p>>2]|0)){q=c[B>>2]|0;o=c[m>>2]|0;o=rR(q|0,((q|0)<0)<<31>>31|0,o|0,((o|0)<0)<<31>>31|0)|0;q=v;c[q>>2]=o;c[q+4>>2]=C;c[y>>2]=Bg(c[x>>2]|0)|0;Cg(c[x>>2]|0,l);c[g>>2]=c[k>>2];while(1){if(c[D>>2]|0)break;if((c[g>>2]|0)>>>0>(c[l>>2]|0)>>>0)break;do if((c[g>>2]|0)!=((((c[381]|0)>>>0)/((c[(c[(c[(c[r>>2]|0)+4>>2]|0)+4>>2]|0)+32>>2]|0)>>>0)|0)+1|0)){c[D>>2]=sg(c[x>>2]|0,c[g>>2]|0,n,0)|0;if(c[D>>2]|0)break;c[D>>2]=Dg(c[n>>2]|0)|0;vg(c[n>>2]|0)}while(0);c[g>>2]=(c[g>>2]|0)+1}if(!(c[D>>2]|0))c[D>>2]=Eg(c[x>>2]|0,0,1)|0;o=(c[381]|0)+(c[p>>2]|0)|0;a=((o|0)<0)<<31>>31;q=v;n=c[q+4>>2]|0;if((a|0)<(n|0)|((a|0)==(n|0)?o>>>0<(c[q>>2]|0)>>>0:0)){f=(c[381]|0)+(c[p>>2]|0)|0;e=f;f=((f|0)<0)<<31>>31}else{f=v;e=c[f>>2]|0;f=c[f+4>>2]|0}p=t;c[p>>2]=e;c[p+4>>2]=f;p=(c[381]|0)+(c[B>>2]|0)|0;q=u;c[q>>2]=p;c[q+4>>2]=((p|0)<0)<<31>>31;while(1){if(c[D>>2]|0)break;p=u;n=c[p+4>>2]|0;q=t;o=c[q+4>>2]|0;if(!((n|0)<(o|0)|((n|0)==(o|0)?(c[p>>2]|0)>>>0<(c[q>>2]|0)>>>0:0)))break;c[A>>2]=0;p=u;q=c[B>>2]|0;q=pR(c[p>>2]|0,c[p+4>>2]|0,q|0,((q|0)<0)<<31>>31|0)|0;q=gR(q|0,C|0,1,0)|0;c[w>>2]=q;c[D>>2]=sg(c[z>>2]|0,c[w>>2]|0,A,0)|0;if(!(c[D>>2]|0)){c[E>>2]=tg(c[A>>2]|0)|0;q=u;c[D>>2]=Fg(c[y>>2]|0,c[E>>2]|0,c[B>>2]|0,c[q>>2]|0,c[q+4>>2]|0)|0}vg(c[A>>2]|0);p=c[B>>2]|0;q=u;p=gR(c[q>>2]|0,c[q+4>>2]|0,p|0,((p|0)<0)<<31>>31|0)|0;q=u;c[q>>2]=p;c[q+4>>2]=C}if(!(c[D>>2]|0)){E=v;c[D>>2]=Gg(c[y>>2]|0,c[E>>2]|0,c[E+4>>2]|0)|0}if(!(c[D>>2]|0))c[D>>2]=Hg(c[x>>2]|0,0)|0}else{Ig(c[x>>2]|0,c[k>>2]|0);c[D>>2]=Eg(c[x>>2]|0,0,0)|0}if(!(c[D>>2]|0)){E=Jg(c[(c[r>>2]|0)+4>>2]|0,0)|0;c[D>>2]=E;c[D>>2]=0==(E|0)?101:E}}}if(c[s>>2]|0){Kg(c[(c[r>>2]|0)+24>>2]|0,0)|0;Jg(c[(c[r>>2]|0)+24>>2]|0,0)|0}if((c[D>>2]|0)==3082)c[D>>2]=7;c[(c[r>>2]|0)+28>>2]=c[D>>2];E=c[D>>2]|0;i=F;return E|0}function Wd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=i;i=i+32|0;d=h+16|0;e=h+12|0;b=h+8|0;f=h+4|0;g=h;c[e>>2]=a;if(!(c[e>>2]|0)){c[d>>2]=0;g=c[d>>2]|0;i=h;return g|0}c[f>>2]=c[(c[e>>2]|0)+20>>2];kg(c[(c[e>>2]|0)+24>>2]|0);if(c[c[e>>2]>>2]|0){a=(c[(c[e>>2]|0)+24>>2]|0)+16|0;c[a>>2]=(c[a>>2]|0)+-1}if(c[(c[e>>2]|0)+40>>2]|0){c[b>>2]=Lg(Of(c[(c[e>>2]|0)+24>>2]|0)|0)|0;while(1){if((c[c[b>>2]>>2]|0)==(c[e>>2]|0))break;c[b>>2]=(c[c[b>>2]>>2]|0)+44}c[c[b>>2]>>2]=c[(c[e>>2]|0)+44>>2]}Mg(c[(c[e>>2]|0)+4>>2]|0,0,0)|0;if((c[(c[e>>2]|0)+28>>2]|0)==101)a=0;else a=c[(c[e>>2]|0)+28>>2]|0;c[g>>2]=a;if(c[c[e>>2]>>2]|0){jg(c[c[e>>2]>>2]|0,c[g>>2]|0);Ng(c[c[e>>2]>>2]|0)}if(c[c[e>>2]>>2]|0)Kd(c[e>>2]|0);Ng(c[f>>2]|0);c[d>>2]=c[g>>2];g=c[d>>2]|0;i=h;return g|0}function Xd(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;c[b>>2]=c[e>>2];if(!(c[b>>2]|0)){e=0;i=d;return e|0}e=c[(c[b>>2]|0)+168>>2]|0;i=d;return e|0}function Yd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=i;i=i+32|0;b=h+16|0;d=h+12|0;f=h+8|0;g=h+4|0;e=h;c[d>>2]=a;if(!(c[d>>2]|0))c[f>>2]=0;else{c[g>>2]=c[d>>2];c[e>>2]=c[c[g>>2]>>2];if(Og(c[g>>2]|0)|0){c[b>>2]=Kf(72362)|0;g=c[b>>2]|0;i=h;return g|0}a=(c[g>>2]|0)+128|0;d=c[a+4>>2]|0;if((d|0)>0|(d|0)==0&(c[a>>2]|0)>>>0>0)Pg(c[e>>2]|0,c[g>>2]|0);c[f>>2]=Qg(c[g>>2]|0)|0;c[f>>2]=Rg(c[e>>2]|0,c[f>>2]|0)|0;Ng(c[e>>2]|0)}c[b>>2]=c[f>>2];g=c[b>>2]|0;i=h;return g|0}function Zd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=i;i=i+16|0;b=g+12|0;e=g+8|0;f=g+4|0;d=g;c[b>>2]=a;if(!(c[b>>2]|0)){c[e>>2]=0;f=c[e>>2]|0;i=g;return f|0}c[f>>2]=c[b>>2];c[d>>2]=c[c[f>>2]>>2];a=(c[f>>2]|0)+128|0;b=c[a+4>>2]|0;if((b|0)>0|(b|0)==0&(c[a>>2]|0)>>>0>0)Pg(c[d>>2]|0,c[f>>2]|0);c[e>>2]=Sg(c[f>>2]|0)|0;Tg(c[f>>2]|0);c[e>>2]=Rg(c[d>>2]|0,c[e>>2]|0)|0;f=c[e>>2]|0;i=g;return f|0}function _d(a){a=a|0;var d=0,f=0,g=0,h=0,j=0;h=i;i=i+16|0;j=h+12|0;d=h+8|0;g=h+4|0;f=h;c[j>>2]=a;c[g>>2]=0;c[f>>2]=c[j>>2];c[d>>2]=0;while(1){if((c[d>>2]|0)>=(b[(c[f>>2]|0)+68>>1]|0))break;Ug((c[(c[f>>2]|0)+60>>2]|0)+((c[d>>2]|0)*40|0)|0);b[(c[(c[f>>2]|0)+60>>2]|0)+((c[d>>2]|0)*40|0)+8>>1]=1;c[d>>2]=(c[d>>2]|0)+1}if(!((e[(c[f>>2]|0)+88>>1]|0)>>>8&1)){j=c[g>>2]|0;i=h;return j|0}if(!(c[(c[f>>2]|0)+188>>2]|0)){j=c[g>>2]|0;i=h;return j|0}j=(c[f>>2]|0)+88|0;b[j>>1]=b[j>>1]&-9|8;j=c[g>>2]|0;i=h;return j|0}function $d(a){a=a|0;var d=0,f=0,g=0,h=0;h=i;i=i+16|0;g=h+8|0;d=h+4|0;f=h;c[d>>2]=a;c[f>>2]=c[d>>2];if(!((e[(c[f>>2]|0)+8>>1]|0)&18)){c[g>>2]=ae(c[d>>2]|0)|0;g=c[g>>2]|0;i=h;return g|0}if(Vg(c[f>>2]|0)|0){c[g>>2]=0;g=c[g>>2]|0;i=h;return g|0}a=(c[f>>2]|0)+8|0;b[a>>1]=e[a>>1]|0|16;if(c[(c[f>>2]|0)+12>>2]|0)d=c[(c[f>>2]|0)+16>>2]|0;else d=0;c[g>>2]=d;g=c[g>>2]|0;i=h;return g|0}function ae(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=Wg(c[d>>2]|0,1)|0;i=b;return a|0}function be(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=Xg(c[d>>2]|0,1)|0;i=b;return a|0}function ce(a){a=a|0;var b=0.0,d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=a;b=+Yg(c[e>>2]|0);i=d;return+b}function de(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=Zg(c[d>>2]|0)|0;i=b;return a|0}function ee(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=Zg(c[d>>2]|0)|0;i=b;return a|0}function fe(a){a=a|0;var b=0,f=0;f=i;i=i+16|0;b=f;c[b>>2]=a;i=f;return d[19002+((e[(c[b>>2]|0)+8>>1]|0)&31)>>0]|0|0}function ge(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+16|0;k=f+12|0;j=f+8|0;h=f+4|0;g=f;c[k>>2]=a;c[j>>2]=b;c[h>>2]=d;c[g>>2]=e;ah(c[k>>2]|0,c[j>>2]|0,c[h>>2]|0,0,c[g>>2]|0);i=f;return}function he(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;g=l+16|0;h=l+12|0;j=l;k=l+8|0;c[g>>2]=a;c[h>>2]=b;b=j;c[b>>2]=d;c[b+4>>2]=e;c[k>>2]=f;b=j;f=c[b+4>>2]|0;if(f>>>0>0|(f|0)==0&(c[b>>2]|0)>>>0>2147483647){bh(c[h>>2]|0,c[k>>2]|0,c[g>>2]|0)|0;i=l;return}else{ah(c[g>>2]|0,c[h>>2]|0,c[j>>2]|0,0,c[k>>2]|0);i=l;return}}function ie(a,b){a=a|0;b=+b;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+8|0;e=d;c[f>>2]=a;h[e>>3]=b;ch(c[c[f>>2]>>2]|0,+h[e>>3]);i=d;return}function je(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+16|0;j=f+8|0;h=f+4|0;g=f;c[j>>2]=b;c[h>>2]=d;c[g>>2]=e;c[(c[j>>2]|0)+20>>2]=1;a[(c[j>>2]|0)+25>>0]=1;dh(c[c[j>>2]>>2]|0,c[h>>2]|0,c[g>>2]|0,1,-1)|0;i=f;return}function ke(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;a=c[f>>2]|0;eh(c[c[e>>2]>>2]|0,a,((a|0)<0)<<31>>31);i=d;return}function le(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e+8|0;g=e;c[f>>2]=a;a=g;c[a>>2]=b;c[a+4>>2]=d;a=g;eh(c[c[f>>2]>>2]|0,c[a>>2]|0,c[a+4>>2]|0);i=e;return}function me(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;fh(c[c[d>>2]>>2]|0);i=b;return}function ne(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+16|0;k=f+12|0;j=f+8|0;h=f+4|0;g=f;c[k>>2]=a;c[j>>2]=b;c[h>>2]=d;c[g>>2]=e;ah(c[k>>2]|0,c[j>>2]|0,c[h>>2]|0,1,c[g>>2]|0);i=f;return}function oe(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;k=p+16|0;l=p+12|0;m=p;n=p+8|0;o=p+20|0;c[k>>2]=b;c[l>>2]=e;e=m;c[e>>2]=f;c[e+4>>2]=g;c[n>>2]=h;a[o>>0]=j;if((d[o>>0]|0)==4)a[o>>0]=(a[960]|0)==0?3:2;e=m;h=c[e+4>>2]|0;if(h>>>0>0|(h|0)==0&(c[e>>2]|0)>>>0>2147483647){bh(c[l>>2]|0,c[n>>2]|0,c[k>>2]|0)|0;i=p;return}else{ah(c[k>>2]|0,c[l>>2]|0,c[m>>2]|0,a[o>>0]|0,c[n>>2]|0);i=p;return}}function pe(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;gh(c[c[f>>2]>>2]|0,c[e>>2]|0)|0;i=d;return}function qe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;h=i;i=i+32|0;e=h+16|0;f=h+12|0;g=h;k=h+8|0;c[f>>2]=a;j=g;c[j>>2]=b;c[j+4>>2]=d;c[k>>2]=c[c[f>>2]>>2];d=g;j=c[d+4>>2]|0;a=c[(c[(c[k>>2]|0)+32>>2]|0)+88>>2]|0;b=((a|0)<0)<<31>>31;if(j>>>0>b>>>0|((j|0)==(b|0)?(c[d>>2]|0)>>>0>a>>>0:0)){c[e>>2]=18;k=c[e>>2]|0;i=h;return k|0}else{hh(c[c[f>>2]>>2]|0,c[g>>2]|0);c[e>>2]=0;k=c[e>>2]|0;i=h;return k|0}return 0}function re(b,d){b=b|0;d=d|0;var f=0,g=0,h=0;h=i;i=i+16|0;f=h+4|0;g=h;c[f>>2]=b;c[g>>2]=d;c[(c[f>>2]|0)+20>>2]=c[g>>2];a[(c[f>>2]|0)+25>>0]=1;if(!((e[(c[c[f>>2]>>2]|0)+8>>1]|0)&1)){i=h;return}b=c[c[f>>2]>>2]|0;dh(b,ih(c[g>>2]|0)|0,-1,1,0)|0;i=h;return}function se(b){b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;c[(c[e>>2]|0)+20>>2]=18;a[(c[e>>2]|0)+25>>0]=1;dh(c[c[e>>2]>>2]|0,19034,-1,1,0)|0;i=d;return}function te(b){b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;fh(c[c[e>>2]>>2]|0);c[(c[e>>2]|0)+20>>2]=7;a[(c[e>>2]|0)+25>>0]=1;jh(c[(c[c[e>>2]>>2]|0)+32>>2]|0);i=d;return}function ue(d){d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+48|0;e=o+32|0;f=o+28|0;j=o+24|0;k=o+20|0;m=o+16|0;g=o+12|0;h=o+8|0;l=o+4|0;n=o;c[f>>2]=d;c[j>>2]=0;c[k>>2]=0;c[m>>2]=c[f>>2];c[g>>2]=0;if(kh(c[m>>2]|0)|0){c[e>>2]=Kf(72913)|0;n=c[e>>2]|0;i=o;return n|0}c[h>>2]=c[c[m>>2]>>2];d=(c[m>>2]|0)+88|0;b[d>>1]=b[d>>1]&-513;while(1){d=lh(c[m>>2]|0)|0;c[j>>2]=d;if((d|0)!=17)break;d=c[g>>2]|0;c[g>>2]=d+1;if((d|0)>=50)break;c[l>>2]=c[(c[m>>2]|0)+76>>2];d=mh(c[m>>2]|0)|0;c[j>>2]=d;c[k>>2]=d;if(c[j>>2]|0)break;Zd(c[f>>2]|0)|0;if((c[l>>2]|0)<0)continue;d=(c[m>>2]|0)+88|0;b[d>>1]=b[d>>1]&-513|512}do if(c[k>>2]|0){c[n>>2]=ae(c[(c[h>>2]|0)+236>>2]|0)|0;Sf(c[h>>2]|0,c[(c[m>>2]|0)+44>>2]|0);if(a[(c[h>>2]|0)+65>>0]|0){c[(c[m>>2]|0)+44>>2]=0;c[j>>2]=7;c[(c[m>>2]|0)+80>>2]=7;break}else{n=nh(c[h>>2]|0,c[n>>2]|0)|0;c[(c[m>>2]|0)+44>>2]=n;c[(c[m>>2]|0)+80>>2]=c[k>>2];break}}while(0);c[j>>2]=Rg(c[h>>2]|0,c[j>>2]|0)|0;c[e>>2]=c[j>>2];n=c[e>>2]|0;i=o;return n|0}function ve(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c[(c[(c[b>>2]|0)+4>>2]|0)+4>>2]|0}function we(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c[(c[c[b>>2]>>2]|0)+32>>2]|0}function xe(a,b){a=a|0;b=b|0;var d=0,f=0,g=0,h=0;g=i;i=i+16|0;d=g+8|0;h=g+4|0;f=g;c[h>>2]=a;c[f>>2]=b;b=c[h>>2]|0;if(!((e[(c[(c[h>>2]|0)+8>>2]|0)+8>>1]|0)&8192)){c[d>>2]=oh(b,c[f>>2]|0)|0;h=c[d>>2]|0;i=g;return h|0}else{c[d>>2]=c[(c[b+8>>2]|0)+16>>2];h=c[d>>2]|0;i=g;return h|0}return 0}function ye(a){a=a|0;var b=0,d=0,f=0;d=i;i=i+16|0;f=d+4|0;b=d;c[f>>2]=a;c[b>>2]=c[f>>2];if(!(c[b>>2]|0)){f=0;i=d;return f|0}f=e[(c[b>>2]|0)+84>>1]|0;i=d;return f|0}function ze(a){a=a|0;var b=0,d=0,f=0,g=0;f=i;i=i+16|0;b=f+8|0;g=f+4|0;d=f;c[g>>2]=a;c[d>>2]=c[g>>2];if((c[d>>2]|0)!=0?(c[(c[d>>2]|0)+20>>2]|0)!=0:0){c[b>>2]=e[(c[d>>2]|0)+84>>1];g=c[b>>2]|0;i=f;return g|0}c[b>>2]=0;g=c[b>>2]|0;i=f;return g|0}function Ae(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+16|0;f=e+8|0;g=e+4|0;d=e;c[f>>2]=a;c[g>>2]=b;c[d>>2]=$d(qh(c[f>>2]|0,c[g>>2]|0)|0)|0;rh(c[f>>2]|0);i=e;return c[d>>2]|0}function Be(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+16|0;f=e+8|0;g=e+4|0;d=e;c[f>>2]=a;c[g>>2]=b;c[d>>2]=be(qh(c[f>>2]|0,c[g>>2]|0)|0)|0;rh(c[f>>2]|0);i=e;return c[d>>2]|0}function Ce(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+16|0;f=e+12|0;g=e+8|0;d=e;c[f>>2]=a;c[g>>2]=b;h[d>>3]=+ce(qh(c[f>>2]|0,c[g>>2]|0)|0);rh(c[f>>2]|0);i=e;return+ +h[d>>3]}function De(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+16|0;f=e+8|0;g=e+4|0;d=e;c[f>>2]=a;c[g>>2]=b;c[d>>2]=de(qh(c[f>>2]|0,c[g>>2]|0)|0)|0;rh(c[f>>2]|0);i=e;return c[d>>2]|0}function Ee(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;f=d+12|0;g=d+8|0;e=d;c[f>>2]=a;c[g>>2]=b;b=ee(qh(c[f>>2]|0,c[g>>2]|0)|0)|0;a=e;c[a>>2]=b;c[a+4>>2]=C;rh(c[f>>2]|0);a=e;C=c[a+4>>2]|0;i=d;return c[a>>2]|0}function Fe(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+16|0;f=e+8|0;g=e+4|0;d=e;c[f>>2]=a;c[g>>2]=b;c[d>>2]=ae(qh(c[f>>2]|0,c[g>>2]|0)|0)|0;rh(c[f>>2]|0);i=e;return c[d>>2]|0}function Ge(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0;h=i;i=i+16|0;f=h+8|0;j=h+4|0;g=h;c[f>>2]=a;c[j>>2]=d;c[g>>2]=qh(c[f>>2]|0,c[j>>2]|0)|0;if(!((e[(c[g>>2]|0)+8>>1]|0)&2048)){j=c[f>>2]|0;rh(j);j=c[g>>2]|0;i=h;return j|0}j=(c[g>>2]|0)+8|0;b[j>>1]=(e[j>>1]|0)&-2049;j=(c[g>>2]|0)+8|0;b[j>>1]=e[j>>1]|0|4096;j=c[f>>2]|0;rh(j);j=c[g>>2]|0;i=h;return j|0}function He(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+16|0;f=e+8|0;g=e+4|0;d=e;c[f>>2]=a;c[g>>2]=b;c[d>>2]=fe(qh(c[f>>2]|0,c[g>>2]|0)|0)|0;rh(c[f>>2]|0);i=e;return c[d>>2]|0}function Ie(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;a=sh(c[f>>2]|0,c[e>>2]|0,169,0)|0;i=d;return a|0}function Je(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+32|0;m=g+16|0;l=g+12|0;k=g+8|0;j=g+4|0;h=g;c[m>>2]=a;c[l>>2]=b;c[k>>2]=d;c[j>>2]=e;c[h>>2]=f;d=th(c[m>>2]|0,c[l>>2]|0,c[k>>2]|0,c[j>>2]|0,c[h>>2]|0,0)|0;i=g;return d|0}function Ke(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,g=0,j=0,k=0,l=0;k=i;i=i+32|0;l=k+20|0;e=k+16|0;f=k;j=k+12|0;g=k+8|0;c[l>>2]=a;c[e>>2]=b;h[f>>3]=d;c[g>>2]=c[l>>2];c[j>>2]=uh(c[g>>2]|0,c[e>>2]|0)|0;if(c[j>>2]|0){l=c[j>>2]|0;i=k;return l|0}ch((c[(c[g>>2]|0)+60>>2]|0)+(((c[e>>2]|0)-1|0)*40|0)|0,+h[f>>3]);l=c[j>>2]|0;i=k;return l|0}function Le(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;g=e+8|0;f=e+4|0;h=e;c[g>>2]=a;c[f>>2]=b;c[h>>2]=d;a=c[h>>2]|0;a=Me(c[g>>2]|0,c[f>>2]|0,a,((a|0)<0)<<31>>31)|0;i=e;return a|0}function Me(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;l=k+20|0;f=k+16|0;g=k;j=k+12|0;h=k+8|0;c[l>>2]=a;c[f>>2]=b;a=g;c[a>>2]=d;c[a+4>>2]=e;c[h>>2]=c[l>>2];c[j>>2]=uh(c[h>>2]|0,c[f>>2]|0)|0;if(c[j>>2]|0){l=c[j>>2]|0;i=k;return l|0}l=g;eh((c[(c[h>>2]|0)+60>>2]|0)+(((c[f>>2]|0)-1|0)*40|0)|0,c[l>>2]|0,c[l+4>>2]|0);l=c[j>>2]|0;i=k;return l|0}function Ne(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=i;i=i+16|0;h=e+12|0;f=e+8|0;d=e+4|0;g=e;c[h>>2]=a;c[f>>2]=b;c[g>>2]=c[h>>2];c[d>>2]=uh(c[g>>2]|0,c[f>>2]|0)|0;i=e;return c[d>>2]|0}function Oe(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+32|0;m=g+16|0;l=g+12|0;k=g+8|0;j=g+4|0;h=g;c[m>>2]=a;c[l>>2]=b;c[k>>2]=d;c[j>>2]=e;c[h>>2]=f;d=th(c[m>>2]|0,c[l>>2]|0,c[k>>2]|0,c[j>>2]|0,c[h>>2]|0,1)|0;i=g;return d|0}function Pe(b,d,f){b=b|0;d=d|0;f=f|0;var g=0,j=0,k=0,l=0,m=0;m=i;i=i+16|0;g=m+12|0;j=m+8|0;k=m+4|0;l=m;c[g>>2]=b;c[j>>2]=d;c[k>>2]=f;switch(fe(c[k>>2]|0)|0){case 1:{k=c[k>>2]|0;c[l>>2]=Me(c[g>>2]|0,c[j>>2]|0,c[k>>2]|0,c[k+4>>2]|0)|0;l=c[l>>2]|0;i=m;return l|0}case 2:{c[l>>2]=Ke(c[g>>2]|0,c[j>>2]|0,+h[c[k>>2]>>3])|0;l=c[l>>2]|0;i=m;return l|0}case 4:{b=c[g>>2]|0;g=c[j>>2]|0;d=c[k>>2]|0;if((e[(c[k>>2]|0)+8>>1]|0)&16384){c[l>>2]=Qe(b,g,c[d>>2]|0)|0;l=c[l>>2]|0;i=m;return l|0}else{c[l>>2]=Je(b,g,c[d+16>>2]|0,c[(c[k>>2]|0)+12>>2]|0,-1)|0;l=c[l>>2]|0;i=m;return l|0}}case 3:{c[l>>2]=th(c[g>>2]|0,c[j>>2]|0,c[(c[k>>2]|0)+16>>2]|0,c[(c[k>>2]|0)+12>>2]|0,-1,a[(c[k>>2]|0)+10>>0]|0)|0;l=c[l>>2]|0;i=m;return l|0}default:{c[l>>2]=Ne(c[g>>2]|0,c[j>>2]|0)|0;l=c[l>>2]|0;i=m;return l|0}}return 0}function Qe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;j=i;i=i+32|0;k=j+16|0;e=j+12|0;f=j+8|0;h=j+4|0;g=j;c[k>>2]=a;c[e>>2]=b;c[f>>2]=d;c[g>>2]=c[k>>2];c[h>>2]=uh(c[g>>2]|0,c[e>>2]|0)|0;if(c[h>>2]|0){k=c[h>>2]|0;i=j;return k|0}hh((c[(c[g>>2]|0)+60>>2]|0)+(((c[e>>2]|0)-1|0)*40|0)|0,c[f>>2]|0);k=c[h>>2]|0;i=j;return k|0}function Re(a){a=a|0;var d=0,e=0,f=0;e=i;i=i+16|0;f=e+4|0;d=e;c[f>>2]=a;c[d>>2]=c[f>>2];if(!(c[d>>2]|0)){f=0;i=e;return f|0}f=b[(c[d>>2]|0)+68>>1]|0;i=e;return f|0}function Se(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;a=c[f>>2]|0;b=c[e>>2]|0;b=vh(a,b,If(c[e>>2]|0)|0)|0;i=d;return b|0}function Te(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;b=f+8|0;d=f+4|0;e=f;c[b>>2]=a;c[d>>2]=fe(c[b>>2]|0)|0;if((c[d>>2]|0)!=3){a=c[d>>2]|0;i=f;return a|0}c[e>>2]=c[b>>2];xh(c[e>>2]|0,0);c[d>>2]=fe(c[b>>2]|0)|0;a=c[d>>2]|0;i=f;return a|0}function Ue(f,g,h,j,k,l,m,n){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;Q=i;i=i+144|0;M=Q+48|0;L=Q+40|0;N=Q+32|0;E=Q+24|0;D=Q+16|0;C=Q+8|0;F=Q+132|0;o=Q+128|0;p=Q+124|0;G=Q+120|0;q=Q;r=Q+116|0;H=Q+112|0;x=Q+108|0;t=Q+104|0;K=Q+100|0;O=Q+96|0;A=Q+92|0;J=Q+88|0;I=Q+84|0;P=Q+80|0;z=Q+76|0;y=Q+72|0;v=Q+68|0;w=Q+64|0;B=Q+60|0;u=Q+56|0;s=Q+52|0;c[F>>2]=f;c[o>>2]=g;c[p>>2]=h;c[G>>2]=j;h=q;c[h>>2]=k;c[h+4>>2]=l;c[r>>2]=m;c[H>>2]=n;c[x>>2]=0;c[K>>2]=0;c[O>>2]=0;c[J>>2]=0;c[I>>2]=0;c[c[H>>2]>>2]=0;c[r>>2]=((c[r>>2]|0)!=0^1^1)&1;c[I>>2]=ph(c[F>>2]|0,28,0)|0;a:do if((c[I>>2]|0)!=0?(c[J>>2]=yh(c[F>>2]|0,544,0)|0,(c[J>>2]|0)!=0):0){while(1){kR(c[J>>2]|0,0,544)|0;c[c[J>>2]>>2]=c[F>>2];Sf(c[F>>2]|0,c[O>>2]|0);c[O>>2]=0;Nf(c[F>>2]|0);c[A>>2]=zh(c[J>>2]|0,0,c[p>>2]|0,c[o>>2]|0)|0;if((c[A>>2]|0)!=0?(d[(c[A>>2]|0)+42>>0]&16|0)!=0:0){c[A>>2]=0;h=c[J>>2]|0;c[C>>2]=c[p>>2];Ah(h,19057,C)}if((c[A>>2]|0)!=0?(d[(c[A>>2]|0)+42>>0]&32|0)!=0:0){c[A>>2]=0;h=c[J>>2]|0;c[D>>2]=c[p>>2];Ah(h,19087,D)}if((c[A>>2]|0)!=0?(c[(c[A>>2]|0)+12>>2]|0)!=0:0){c[A>>2]=0;h=c[J>>2]|0;c[E>>2]=c[p>>2];Ah(h,19123,E)}if(!(c[A>>2]|0)){k=13;break}c[t>>2]=0;while(1){if((c[t>>2]|0)>=(b[(c[A>>2]|0)+34>>1]|0))break;if(!(Td(c[(c[(c[A>>2]|0)+4>>2]|0)+((c[t>>2]|0)*24|0)>>2]|0,c[G>>2]|0)|0))break;c[t>>2]=(c[t>>2]|0)+1}if((c[t>>2]|0)==(b[(c[A>>2]|0)+34>>1]|0)){k=21;break}if(c[r>>2]|0){c[P>>2]=0;b:do if(c[(c[F>>2]|0)+24>>2]&524288){c[y>>2]=c[(c[A>>2]|0)+16>>2];while(1){if(!(c[y>>2]|0))break b;c[v>>2]=0;while(1){if((c[v>>2]|0)>=(c[(c[y>>2]|0)+20>>2]|0))break;if((c[(c[y>>2]|0)+36+(c[v>>2]<<3)>>2]|0)==(c[t>>2]|0))c[P>>2]=19165;c[v>>2]=(c[v>>2]|0)+1}c[y>>2]=c[(c[y>>2]|0)+4>>2]}}while(0);c[z>>2]=c[(c[A>>2]|0)+8>>2];while(1){if(!(c[z>>2]|0))break;c[w>>2]=0;while(1){if((c[w>>2]|0)>=(e[(c[z>>2]|0)+50>>1]|0))break;if(!((b[(c[(c[z>>2]|0)+4>>2]|0)+(c[w>>2]<<1)>>1]|0)!=(c[t>>2]|0)?(b[(c[(c[z>>2]|0)+4>>2]|0)+(c[w>>2]<<1)>>1]|0)!=-2:0))c[P>>2]=19177;c[w>>2]=(c[w>>2]|0)+1}c[z>>2]=c[(c[z>>2]|0)+20>>2]}if(c[P>>2]|0){k=42;break}}h=Ch(c[J>>2]|0)|0;c[(c[I>>2]|0)+20>>2]=h;if(c[(c[I>>2]|0)+20>>2]|0){c[B>>2]=c[(c[I>>2]|0)+20>>2];c[u>>2]=Dh(c[F>>2]|0,c[(c[A>>2]|0)+64>>2]|0)|0;Eh(c[B>>2]|0,2,c[u>>2]|0,c[r>>2]|0,c[c[(c[A>>2]|0)+64>>2]>>2]|0,c[(c[(c[A>>2]|0)+64>>2]|0)+4>>2]|0)|0;Fh(c[B>>2]|0,1);c[s>>2]=Gh(c[B>>2]|0,9,19219,0)|0;Hh(c[B>>2]|0,c[u>>2]|0);if(!(d[(c[F>>2]|0)+65>>0]|0)){c[(c[s>>2]|0)+4>>2]=c[u>>2];c[(c[s>>2]|0)+8>>2]=c[(c[A>>2]|0)+28>>2];c[(c[s>>2]|0)+12>>2]=c[r>>2];Ih(c[B>>2]|0,1,c[c[A>>2]>>2]|0,0)}if(!(d[(c[F>>2]|0)+65>>0]|0)){if(c[r>>2]|0)a[(c[s>>2]|0)+20>>0]=55;c[(c[s>>2]|0)+20+8>>2]=c[(c[A>>2]|0)+28>>2];c[(c[s>>2]|0)+20+12>>2]=c[u>>2];a[(c[s>>2]|0)+20+1>>0]=-14;c[(c[s>>2]|0)+20+16>>2]=(b[(c[A>>2]|0)+34>>1]|0)+1;c[(c[s>>2]|0)+80+8>>2]=b[(c[A>>2]|0)+34>>1];b[(c[J>>2]|0)+444>>1]=1;c[(c[J>>2]|0)+76>>2]=1;c[(c[J>>2]|0)+72>>2]=1;Jh(c[B>>2]|0,c[J>>2]|0)}}c[c[I>>2]>>2]=c[r>>2];c[(c[I>>2]|0)+12>>2]=c[t>>2];c[(c[I>>2]|0)+24>>2]=c[F>>2];if(a[(c[F>>2]|0)+65>>0]|0)break a;h=q;Me(c[(c[I>>2]|0)+20>>2]|0,1,c[h>>2]|0,c[h+4>>2]|0)|0;h=q;c[K>>2]=Kh(c[I>>2]|0,c[h>>2]|0,c[h+4>>2]|0,O)|0;h=(c[x>>2]|0)+1|0;c[x>>2]=h;if(!((h|0)<50?(c[K>>2]|0)==17:0))break a}if((k|0)==13){if(c[(c[J>>2]|0)+4>>2]|0){Sf(c[F>>2]|0,c[O>>2]|0);c[O>>2]=c[(c[J>>2]|0)+4>>2];c[(c[J>>2]|0)+4>>2]=0}c[K>>2]=1;break}else if((k|0)==21){Sf(c[F>>2]|0,c[O>>2]|0);P=c[F>>2]|0;c[N>>2]=c[G>>2];c[O>>2]=Bh(P,19144,N)|0;c[K>>2]=1;break}else if((k|0)==42){Sf(c[F>>2]|0,c[O>>2]|0);N=c[F>>2]|0;c[L>>2]=c[P>>2];c[O>>2]=Bh(N,19185,L)|0;c[K>>2]=1;break}}while(0);if((c[K>>2]|0)==0?(d[(c[F>>2]|0)+65>>0]|0)==0:0){c[c[H>>2]>>2]=c[I>>2];L=c[F>>2]|0;P=c[K>>2]|0;N=c[O>>2]|0;N=(N|0)!=0;N=N?19255:0;I=c[O>>2]|0;c[M>>2]=I;hg(L,P,N,M);N=c[F>>2]|0;P=c[O>>2]|0;Sf(N,P);P=c[J>>2]|0;Lh(P);P=c[F>>2]|0;O=c[J>>2]|0;Sf(P,O);O=c[F>>2]|0;P=c[K>>2]|0;P=Rg(O,P)|0;c[K>>2]=P;P=c[K>>2]|0;i=Q;return P|0}if((c[I>>2]|0)!=0?(c[(c[I>>2]|0)+20>>2]|0)!=0:0)Qg(c[(c[I>>2]|0)+20>>2]|0)|0;Sf(c[F>>2]|0,c[I>>2]|0);L=c[F>>2]|0;P=c[K>>2]|0;N=c[O>>2]|0;N=(N|0)!=0;N=N?19255:0;I=c[O>>2]|0;c[M>>2]=I;hg(L,P,N,M);N=c[F>>2]|0;P=c[O>>2]|0;Sf(N,P);P=c[J>>2]|0;Lh(P);P=c[F>>2]|0;O=c[J>>2]|0;Sf(P,O);O=c[F>>2]|0;P=c[K>>2]|0;P=Rg(O,P)|0;c[K>>2]=P;P=c[K>>2]|0;i=Q;return P|0}function Ve(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=i;i=i+16|0;g=f+12|0;d=f+8|0;e=f+4|0;b=f;c[g>>2]=a;c[d>>2]=c[g>>2];if(c[d>>2]|0){c[b>>2]=c[(c[d>>2]|0)+24>>2];c[e>>2]=Yd(c[(c[d>>2]|0)+20>>2]|0)|0;Sf(c[b>>2]|0,c[d>>2]|0);g=c[e>>2]|0;i=f;return g|0}else{c[e>>2]=0;g=c[e>>2]|0;i=f;return g|0}return 0}function We(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+16|0;k=f+12|0;j=f+8|0;h=f+4|0;g=f;c[k>>2]=a;c[j>>2]=b;c[h>>2]=d;c[g>>2]=e;b=Nh(c[k>>2]|0,c[j>>2]|0,c[h>>2]|0,c[g>>2]|0,138)|0;i=f;return b|0}function Xe(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;c[b>>2]=c[e>>2];if(!(c[b>>2]|0)){e=0;i=d;return e|0}if(!(c[(c[b>>2]|0)+20>>2]|0)){e=0;i=d;return e|0}e=c[(c[b>>2]|0)+4>>2]|0;i=d;return e|0}function Ye(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+48|0;k=m+8|0;e=m+32|0;n=m+28|0;f=m;j=m+24|0;h=m+20|0;g=m+16|0;l=m+12|0;c[n>>2]=a;a=f;c[a>>2]=b;c[a+4>>2]=d;c[h>>2]=c[n>>2];if(!(c[h>>2]|0)){c[e>>2]=Kf(81515)|0;n=c[e>>2]|0;i=m;return n|0}c[g>>2]=c[(c[h>>2]|0)+24>>2];if(c[(c[h>>2]|0)+20>>2]|0){n=f;c[j>>2]=Kh(c[h>>2]|0,c[n>>2]|0,c[n+4>>2]|0,l)|0;if(c[j>>2]|0){h=c[g>>2]|0;a=c[j>>2]|0;n=(c[l>>2]|0)!=0?19255:0;c[k>>2]=c[l>>2];hg(h,a,n,k);Sf(c[g>>2]|0,c[l>>2]|0)}}else c[j>>2]=4;c[j>>2]=Rg(c[g>>2]|0,c[j>>2]|0)|0;c[e>>2]=c[j>>2];n=c[e>>2]|0;i=m;return n|0}function Ze(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;b=(Ph(c[f>>2]|0,c[e>>2]|0,19258,91)|0)==0&1;i=d;return b|0}function _e(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;h=e+8|0;g=e+4|0;f=e;c[h>>2]=a;c[g>>2]=b;c[f>>2]=d;b=(Ph(c[h>>2]|0,c[g>>2]|0,19262,c[f>>2]|0)|0)==0&1;i=e;return b|0}function $e(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=i;i=i+64|0;j=z+56|0;k=z+52|0;l=z+48|0;m=z+44|0;n=z+40|0;o=z+36|0;w=z+32|0;x=z+28|0;v=z+24|0;p=z+20|0;r=z+16|0;t=z+12|0;q=z+8|0;s=z+4|0;u=z;c[k>>2]=b;c[l>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[w>>2]=0;c[v>>2]=0;c[p>>2]=0;if(!(Qh(c[k>>2]|0)|0)){c[j>>2]=Kf(105510)|0;y=c[j>>2]|0;i=z;return y|0}if(!(c[l>>2]|0))c[l>>2]=19266;jg(c[k>>2]|0,0);a:while(1){if(c[w>>2]|0)break;if(!(a[c[l>>2]>>0]|0))break;c[q>>2]=0;c[v>>2]=0;c[w>>2]=af(c[k>>2]|0,c[l>>2]|0,-1,v,x)|0;if(c[w>>2]|0)continue;if(!(c[v>>2]|0)){c[l>>2]=c[x>>2];continue}c[r>>2]=0;c[t>>2]=ye(c[v>>2]|0)|0;do{c[w>>2]=ue(c[v>>2]|0)|0;do if(c[m>>2]|0){if(100!=(c[w>>2]|0)){if(101!=(c[w>>2]|0)|(c[r>>2]|0)!=0)break;if(!(c[(c[k>>2]|0)+24>>2]&256))break}if(!(c[r>>2]|0)){c[p>>2]=ph(c[k>>2]|0,(c[t>>2]<<1<<2)+1|0,0)|0;if(!(c[p>>2]|0))break a;c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[t>>2]|0))break;e=Ie(c[v>>2]|0,c[s>>2]|0)|0;c[(c[p>>2]|0)+(c[s>>2]<<2)>>2]=e;c[s>>2]=(c[s>>2]|0)+1}c[r>>2]=1}b:do if((c[w>>2]|0)==100){c[q>>2]=(c[p>>2]|0)+(c[t>>2]<<2);c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[t>>2]|0))break b;e=Fe(c[v>>2]|0,c[s>>2]|0)|0;c[(c[q>>2]|0)+(c[s>>2]<<2)>>2]=e;if((c[(c[q>>2]|0)+(c[s>>2]<<2)>>2]|0)==0?(He(c[v>>2]|0,c[s>>2]|0)|0)!=5:0){y=27;break a}c[s>>2]=(c[s>>2]|0)+1}}while(0);if(Wb[c[m>>2]&255](c[n>>2]|0,c[t>>2]|0,c[q>>2]|0,c[p>>2]|0)|0){y=30;break a}}while(0)}while((c[w>>2]|0)==100);c[w>>2]=Qg(c[v>>2]|0)|0;c[v>>2]=0;c[l>>2]=c[x>>2];while(1){if(!(d[19267+(d[c[l>>2]>>0]|0)>>0]&1))break;c[l>>2]=(c[l>>2]|0)+1}Sf(c[k>>2]|0,c[p>>2]|0);c[p>>2]=0}if((y|0)==27)jh(c[k>>2]|0);else if((y|0)==30){c[w>>2]=4;Qg(c[v>>2]|0)|0;c[v>>2]=0;jg(c[k>>2]|0,4)}if(c[v>>2]|0)Qg(c[v>>2]|0)|0;Sf(c[k>>2]|0,c[p>>2]|0);c[w>>2]=Rg(c[k>>2]|0,c[w>>2]|0)|0;do if((c[w>>2]|0)!=0&(c[o>>2]|0)!=0){c[u>>2]=1+(If(bf(c[k>>2]|0)|0)|0);y=c[u>>2]|0;y=_f(y,((y|0)<0)<<31>>31)|0;c[c[o>>2]>>2]=y;if(c[c[o>>2]>>2]|0){e=c[c[o>>2]>>2]|0;y=bf(c[k>>2]|0)|0;iR(e|0,y|0,c[u>>2]|0)|0;break}else{c[w>>2]=7;jg(c[k>>2]|0,7);break}}else if(c[o>>2]|0)c[c[o>>2]>>2]=0;while(0);c[j>>2]=c[w>>2];y=c[j>>2]|0;i=z;return y|0}function af(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;h=i;i=i+32|0;n=h+20|0;m=h+16|0;l=h+12|0;k=h+8|0;j=h+4|0;g=h;c[n>>2]=a;c[m>>2]=b;c[l>>2]=d;c[k>>2]=e;c[j>>2]=f;c[g>>2]=Rh(c[n>>2]|0,c[m>>2]|0,c[l>>2]|0,1,0,c[k>>2]|0,c[j>>2]|0)|0;i=h;return c[g>>2]|0}function bf(b){b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;e=g+4|0;f=g;c[e>>2]=b;if(!(c[e>>2]|0)){c[d>>2]=ih(7)|0;f=c[d>>2]|0;i=g;return f|0}if(!(Sh(c[e>>2]|0)|0)){c[d>>2]=ih(Kf(134947)|0)|0;f=c[d>>2]|0;i=g;return f|0}if(!(a[(c[e>>2]|0)+65>>0]|0)){c[f>>2]=ae(c[(c[e>>2]|0)+236>>2]|0)|0;if(!(c[f>>2]|0))c[f>>2]=ih(c[(c[e>>2]|0)+52>>2]|0)|0}else c[f>>2]=ih(7)|0;c[d>>2]=c[f>>2];f=c[d>>2]|0;i=g;return f|0}function cf(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;h=i;i=i+32|0;n=h+20|0;m=h+16|0;l=h+12|0;k=h+8|0;j=h+4|0;g=h;c[n>>2]=a;c[m>>2]=b;c[l>>2]=d;c[k>>2]=e;c[j>>2]=f;c[g>>2]=Rh(c[n>>2]|0,c[m>>2]|0,c[l>>2]|0,0,0,c[k>>2]|0,c[j>>2]|0)|0;i=h;return c[g>>2]|0}function df(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+16|0;k=f+12|0;j=f+8|0;h=f+4|0;g=f;c[k>>2]=a;c[j>>2]=b;c[h>>2]=d;c[g>>2]=e;b=Th(c[k>>2]|0,c[j>>2]|0,c[h>>2]|0,c[g>>2]|0,0)|0;i=f;return b|0}function ef(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+32|0;m=g+16|0;l=g+12|0;k=g+8|0;j=g+4|0;h=g;c[m>>2]=a;c[l>>2]=b;c[k>>2]=d;c[j>>2]=e;c[h>>2]=f;b=Th(c[m>>2]|0,c[l>>2]|0,c[k>>2]|0,c[j>>2]|0,c[h>>2]|0)|0;i=g;return b|0}function ff(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;o=q;g=q+32|0;h=q+28|0;j=q+24|0;k=q+20|0;l=q+16|0;n=q+12|0;m=q+8|0;p=q+4|0;c[h>>2]=e;c[j>>2]=f;c[n>>2]=0;c[p>>2]=0;c[k>>2]=c[(c[h>>2]|0)+328>>2];if((c[k>>2]|0)!=0?(c[(c[k>>2]|0)+12>>2]|0)==0:0){c[m>>2]=c[(c[k>>2]|0)+4>>2];c[l>>2]=ph(c[h>>2]|0,544,0)|0;if(!(c[l>>2]|0))c[n>>2]=7;else{a[(c[l>>2]|0)+454>>0]=1;c[c[l>>2]>>2]=c[h>>2];c[(c[l>>2]|0)+428>>2]=1;if((((0==(Uh(c[l>>2]|0,c[j>>2]|0,p)|0)?(c[(c[l>>2]|0)+488>>2]|0)!=0:0)?(a[(c[h>>2]|0)+65>>0]|0)==0:0)?(c[(c[(c[l>>2]|0)+488>>2]|0)+12>>2]|0)==0:0)?(d[(c[(c[l>>2]|0)+488>>2]|0)+42>>0]&16|0)==0:0){if(!(c[(c[m>>2]|0)+4>>2]|0)){c[(c[m>>2]|0)+4>>2]=c[(c[(c[l>>2]|0)+488>>2]|0)+4>>2];b[(c[m>>2]|0)+34>>1]=b[(c[(c[l>>2]|0)+488>>2]|0)+34>>1]|0;b[(c[(c[l>>2]|0)+488>>2]|0)+34>>1]=0;c[(c[(c[l>>2]|0)+488>>2]|0)+4>>2]=0}c[(c[k>>2]|0)+12>>2]=1}else{m=c[h>>2]|0;f=(c[p>>2]|0)!=0?19255:0;c[o>>2]=c[p>>2];hg(m,1,f,o);Sf(c[h>>2]|0,c[p>>2]|0);c[n>>2]=1}a[(c[l>>2]|0)+454>>0]=0;if(c[(c[l>>2]|0)+8>>2]|0)Qg(c[(c[l>>2]|0)+8>>2]|0)|0;Qf(c[h>>2]|0,c[(c[l>>2]|0)+488>>2]|0);Lh(c[l>>2]|0);Sf(c[h>>2]|0,c[l>>2]|0)}c[n>>2]=Rg(c[h>>2]|0,c[n>>2]|0)|0;c[g>>2]=c[n>>2];p=c[g>>2]|0;i=q;return p|0}jg(c[h>>2]|0,21);c[g>>2]=Kf(119136)|0;p=c[g>>2]|0;i=q;return p|0}function gf(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;b=e;c[b>>2]=a;i=e;return d[19523+((d[(c[b>>2]|0)+70>>0]|0)-1)>>0]|0|0}function hf(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;f=k+28|0;l=k+24|0;g=k+8|0;j=k+4|0;h=k;c[f>>2]=b;c[l>>2]=d;c[j>>2]=0;c[g>>2]=e;do if((c[l>>2]|0)==1){c[h>>2]=c[(c[f>>2]|0)+328>>2];if(c[h>>2]|0){e=(c[g>>2]|0)+(4-1)&~(4-1);l=c[e>>2]|0;c[g>>2]=e+4;a[(c[c[h>>2]>>2]|0)+16>>0]=l;break}else{c[j>>2]=Kf(119587)|0;break}}else c[j>>2]=Kf(119595)|0;while(0);if(!(c[j>>2]|0)){l=c[j>>2]|0;i=k;return l|0}jg(c[f>>2]|0,c[j>>2]|0);l=c[j>>2]|0;i=k;return l|0}function jf(){return 18462}function kf(){return 19541}function lf(){return 3011e3}function mf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+48|0;h=k+44|0;d=k+40|0;e=k+24|0;j=k+16|0;g=k+8|0;f=k;c[d>>2]=a;c[j>>2]=0;if(c[59]|0){c[h>>2]=Kf(133154)|0;j=c[h>>2]|0;i=k;return j|0}c[e>>2]=b;do switch(c[d>>2]|0){case 4:{g=(c[e>>2]|0)+(4-1)&~(4-1);b=c[g>>2]|0;c[e>>2]=g+4;c[11]=c[b>>2];c[12]=c[b+4>>2];c[13]=c[b+8>>2];c[14]=c[b+12>>2];c[15]=c[b+16>>2];c[16]=c[b+20>>2];c[17]=c[b+24>>2];c[18]=c[b+28>>2];break}case 5:{if(!(c[11]|0))Xh();g=(c[e>>2]|0)+(4-1)&~(4-1);b=c[g>>2]|0;c[e>>2]=g+4;c[b>>2]=c[11];c[b+4>>2]=c[12];c[b+8>>2]=c[13];c[b+12>>2]=c[14];c[b+16>>2]=c[15];c[b+20>>2]=c[16];c[b+24>>2]=c[17];c[b+28>>2]=c[18];break}case 9:{g=(c[e>>2]|0)+(4-1)&~(4-1);b=c[g>>2]|0;c[e>>2]=g+4;c[2]=b;break}case 6:{g=(c[e>>2]|0)+(4-1)&~(4-1);b=c[g>>2]|0;c[e>>2]=g+4;c[50]=b;b=(c[e>>2]|0)+(4-1)&~(4-1);g=c[b>>2]|0;c[e>>2]=b+4;c[51]=g;g=(c[e>>2]|0)+(4-1)&~(4-1);b=c[g>>2]|0;c[e>>2]=g+4;c[52]=b;break}case 7:{g=(c[e>>2]|0)+(4-1)&~(4-1);b=c[g>>2]|0;c[e>>2]=g+4;c[53]=b;b=(c[e>>2]|0)+(4-1)&~(4-1);g=c[b>>2]|0;c[e>>2]=b+4;c[54]=g;g=(c[e>>2]|0)+(4-1)&~(4-1);b=c[g>>2]|0;c[e>>2]=g+4;c[55]=b;break}case 24:{g=(Yh()|0)+(Zh()|0)+(_h()|0)|0;a=(c[e>>2]|0)+(4-1)&~(4-1);b=c[a>>2]|0;c[e>>2]=a+4;c[b>>2]=g;break}case 14:break;case 15:{c[j>>2]=1;break}case 18:{d=(c[e>>2]|0)+(4-1)&~(4-1);f=c[d>>2]|0;c[e>>2]=d+4;d=112;e=f;f=d+52|0;do{c[d>>2]=c[e>>2];d=d+4|0;e=e+4|0}while((d|0)<(f|0));break}case 19:{if(!(c[30]|0))$h();f=(c[e>>2]|0)+(4-1)&~(4-1);d=c[f>>2]|0;c[e>>2]=f+4;e=112;f=d+52|0;do{c[d>>2]=c[e>>2];d=d+4|0;e=e+4|0}while((d|0)<(f|0));break}case 13:{b=(c[e>>2]|0)+(4-1)&~(4-1);g=c[b>>2]|0;c[e>>2]=b+4;c[9]=g;g=(c[e>>2]|0)+(4-1)&~(4-1);b=c[g>>2]|0;c[e>>2]=g+4;c[10]=b;break}case 16:{b=(c[e>>2]|0)+(4-1)&~(4-1);g=c[b>>2]|0;c[e>>2]=b+4;c[66]=g;g=(c[e>>2]|0)+(4-1)&~(4-1);b=c[g>>2]|0;c[e>>2]=g+4;c[67]=b;break}case 17:{g=(c[e>>2]|0)+(4-1)&~(4-1);b=c[g>>2]|0;c[e>>2]=g+4;c[5]=b;break}case 20:{g=(c[e>>2]|0)+(4-1)&~(4-1);b=c[g>>2]|0;c[e>>2]=g+4;c[6]=b;break}case 22:{b=(c[e>>2]|0)+(8-1)&~(8-1);a=b;d=c[a>>2]|0;a=c[a+4>>2]|0;c[e>>2]=b+8;b=g;c[b>>2]=d;c[b+4>>2]=a;b=(c[e>>2]|0)+(8-1)&~(8-1);
  38. a=b;d=c[a>>2]|0;a=c[a+4>>2]|0;c[e>>2]=b+8;e=f;c[e>>2]=d;c[e+4>>2]=a;e=f;b=c[e+4>>2]|0;e=(c[f+4>>2]|0)<0|((b|0)>0|(b|0)==0&(c[e>>2]|0)>>>0>0);b=f;c[b>>2]=e?0:d;c[b+4>>2]=e?0:a;if((c[g+4>>2]|0)<0){b=g;c[b>>2]=0;c[b+4>>2]=0}a=g;d=c[a+4>>2]|0;b=f;e=c[b+4>>2]|0;if((d|0)>(e|0)|((d|0)==(e|0)?(c[a>>2]|0)>>>0>(c[b>>2]|0)>>>0:0)){e=f;a=c[e+4>>2]|0;b=g;c[b>>2]=c[e>>2];c[b+4>>2]=a}b=c[f+4>>2]|0;a=192;c[a>>2]=c[f>>2];c[a+4>>2]=b;a=g;g=c[a+4>>2]|0;b=184;c[b>>2]=c[a>>2];c[b+4>>2]=g;break}case 25:{g=(c[e>>2]|0)+(4-1)&~(4-1);b=c[g>>2]|0;c[e>>2]=g+4;c[58]=b;break}default:c[j>>2]=1}while(0);c[h>>2]=c[j>>2];j=c[h>>2]|0;i=k;return j|0}function nf(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=i;i=i+16|0;b=g+12|0;d=g+8|0;e=g+4|0;f=g;c[b>>2]=a;Nf(c[b>>2]|0);c[d>>2]=0;while(1){if((c[d>>2]|0)>=(c[(c[b>>2]|0)+20>>2]|0))break;c[e>>2]=c[(c[(c[b>>2]|0)+16>>2]|0)+(c[d>>2]<<4)+4>>2];if(c[e>>2]|0){c[f>>2]=Of(c[e>>2]|0)|0;ai(c[f>>2]|0)}c[d>>2]=(c[d>>2]|0)+1}i=g;return 0}function of(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=(c[d>>2]|0)+32|0;C=c[a+4>>2]|0;i=b;return c[a>>2]|0}function pf(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c[(c[b>>2]|0)+80>>2]|0}function qf(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c[(c[b>>2]|0)+84>>2]|0}function rf(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=di(c[d>>2]|0,0)|0;i=b;return a|0}function sf(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=di(c[d>>2]|0,1)|0;i=b;return a|0}function tf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;f=e+8|0;h=e+4|0;g=e;c[f>>2]=a;c[h>>2]=b;c[g>>2]=d;c[(c[f>>2]|0)+448>>2]=c[h>>2];c[(c[f>>2]|0)+448+4>>2]=c[g>>2];c[(c[f>>2]|0)+448+8>>2]=0;c[(c[f>>2]|0)+496>>2]=0;i=e;return 0}function uf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f+4|0;e=f;c[d>>2]=a;c[e>>2]=b;a=c[d>>2]|0;if((c[e>>2]|0)>0){tf(a,178,c[d>>2]|0)|0;c[(c[d>>2]|0)+496>>2]=c[e>>2];i=f;return 0}else{tf(a,0,0)|0;i=f;return 0}return 0}function vf(a,b,d,e,f,g,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;k=i;i=i+32|0;s=k+28|0;r=k+24|0;q=k+20|0;p=k+16|0;o=k+12|0;n=k+8|0;m=k+4|0;l=k;c[s>>2]=a;c[r>>2]=b;c[q>>2]=d;c[p>>2]=e;c[o>>2]=f;c[n>>2]=g;c[m>>2]=h;c[l>>2]=j;b=wf(c[s>>2]|0,c[r>>2]|0,c[q>>2]|0,c[p>>2]|0,c[o>>2]|0,c[n>>2]|0,c[m>>2]|0,c[l>>2]|0,0)|0;i=k;return b|0}function wf(a,b,d,e,f,g,h,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=i;i=i+48|0;l=x+40|0;m=x+36|0;n=x+32|0;o=x+28|0;p=x+24|0;q=x+20|0;r=x+16|0;s=x+12|0;t=x+8|0;v=x+4|0;u=x;c[l>>2]=a;c[m>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=j;c[t>>2]=k;c[v>>2]=1;c[u>>2]=0;do if(c[t>>2]|0){c[u>>2]=ph(c[l>>2]|0,12,0)|0;a=c[t>>2]|0;if(c[u>>2]|0){c[(c[u>>2]|0)+4>>2]=a;c[(c[u>>2]|0)+8>>2]=c[p>>2];w=5;break}else{Qb[a&255](c[p>>2]|0);break}}else w=5;while(0);if(((w|0)==5?(c[v>>2]=fi(c[l>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0,c[r>>2]|0,c[s>>2]|0,c[u>>2]|0)|0,(c[u>>2]|0)!=0):0)?(c[c[u>>2]>>2]|0)==0:0){Qb[c[t>>2]&255](c[p>>2]|0);Sf(c[l>>2]|0,c[u>>2]|0)}c[v>>2]=Rg(c[l>>2]|0,c[v>>2]|0)|0;i=x;return c[v>>2]|0}function xf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;j=i;i=i+32|0;e=j+16|0;f=j+12|0;g=j+8|0;k=j+4|0;h=j;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[k>>2]=If(c[f>>2]|0)|0;c[h>>2]=0;if(!(gi(c[e>>2]|0,c[f>>2]|0,c[k>>2]|0,c[g>>2]|0,1,0)|0))c[h>>2]=fi(c[e>>2]|0,c[f>>2]|0,c[g>>2]|0,1,0,224,0,0,0)|0;c[h>>2]=Rg(c[e>>2]|0,c[h>>2]|0)|0;i=j;return c[h>>2]|0}function yf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=i;i=i+16|0;f=e+4|0;d=e;c[f>>2]=a;c[d>>2]=b;a=c[f>>2]|0;if((c[d>>2]|0)>0){zf(a,139,c[d>>2]|0)|0;i=e;return 0}else{zf(a,0,0)|0;i=e;return 0}return 0}function zf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;f=i;i=i+16|0;g=f+12|0;j=f+8|0;h=f+4|0;e=f;c[g>>2]=a;c[j>>2]=b;c[h>>2]=d;c[e>>2]=c[(c[g>>2]|0)+220>>2];c[(c[g>>2]|0)+216>>2]=c[j>>2];c[(c[g>>2]|0)+220>>2]=c[h>>2];i=f;return c[e>>2]|0}function Af(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;q=r;h=r+32|0;j=r+28|0;k=r+24|0;l=r+20|0;m=r+16|0;n=r+12|0;p=r+8|0;o=r+4|0;c[j>>2]=b;c[k>>2]=d;c[l>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=10;if(c[m>>2]|0)c[c[m>>2]>>2]=-1;if(c[n>>2]|0)c[c[n>>2]>>2]=-1;if((c[l>>2]|0)<0|(c[l>>2]|0)>3){c[h>>2]=21;d=c[h>>2]|0;i=r;return d|0}if((c[k>>2]|0)!=0?(a[c[k>>2]>>0]|0)!=0:0)c[o>>2]=ji(c[j>>2]|0,c[k>>2]|0)|0;if((c[o>>2]|0)<0){c[p>>2]=1;d=c[j>>2]|0;c[q>>2]=c[k>>2];hg(d,1,19602,q)}else{c[(c[j>>2]|0)+448+8>>2]=0;c[p>>2]=ki(c[j>>2]|0,c[o>>2]|0,c[l>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;jg(c[j>>2]|0,c[p>>2]|0)}c[p>>2]=Rg(c[j>>2]|0,c[p>>2]|0)|0;c[h>>2]=c[p>>2];d=c[h>>2]|0;i=r;return d|0}function Bf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;b=Af(c[f>>2]|0,c[e>>2]|0,0,0,0)|0;i=d;return b|0}function Cf(a){a=a|0;var b=0,e=0,f=0;f=i;i=i+16|0;b=f+4|0;e=f;c[e>>2]=a;if((c[e>>2]|0)!=0?(Sh(c[e>>2]|0)|0)==0:0){c[b>>2]=Kf(135016)|0;a=c[b>>2]|0;i=f;return a|0}if((c[e>>2]|0)!=0?(d[(c[e>>2]|0)+65>>0]|0|0)==0:0){c[b>>2]=c[(c[e>>2]|0)+52>>2]&c[(c[e>>2]|0)+56>>2];a=c[b>>2]|0;i=f;return a|0}c[b>>2]=7;a=c[b>>2]|0;i=f;return a|0}function Df(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+16|0;f=k+12|0;g=k+8|0;h=k+4|0;j=k;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;if((c[g>>2]|0)<0|(c[g>>2]|0)>=12){c[e>>2]=-1;j=c[e>>2]|0;i=k;return j|0}c[j>>2]=c[(c[f>>2]|0)+88+(c[g>>2]<<2)>>2];if((c[h>>2]|0)>=0){if((c[h>>2]|0)>(c[1536+(c[g>>2]<<2)>>2]|0))c[h>>2]=c[1536+(c[g>>2]<<2)>>2];c[(c[f>>2]|0)+88+(c[g>>2]<<2)>>2]=c[h>>2]}c[e>>2]=c[j>>2];j=c[e>>2]|0;i=k;return j|0}function Ef(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;a=mi(c[f>>2]|0,c[e>>2]|0,6,0)|0;i=d;return a|0}function Ff(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;m=i;i=i+32|0;o=m+28|0;n=m+24|0;f=m+20|0;g=m+16|0;l=m+12|0;j=m+8|0;k=m+4|0;h=m;c[o>>2]=a;c[n>>2]=b;c[f>>2]=d;c[g>>2]=e;c[l>>2]=1;c[j>>2]=si(c[o>>2]|0,c[n>>2]|0)|0;if(!(c[j>>2]|0)){o=c[l>>2]|0;i=m;return o|0}kg(c[j>>2]|0);c[k>>2]=Of(c[j>>2]|0)|0;c[h>>2]=Bg(c[k>>2]|0)|0;if((c[f>>2]|0)==7){c[c[g>>2]>>2]=c[h>>2];c[l>>2]=0;o=c[l>>2]|0;i=m;return o|0}if((c[f>>2]|0)==27){o=ti(c[k>>2]|0)|0;c[c[g>>2]>>2]=o;c[l>>2]=0;o=c[l>>2]|0;i=m;return o|0}if((c[f>>2]|0)==28){o=ui(c[k>>2]|0)|0;c[c[g>>2]>>2]=o;c[l>>2]=0;o=c[l>>2]|0;i=m;return o|0}if(c[c[h>>2]>>2]|0){c[l>>2]=vi(c[h>>2]|0,c[f>>2]|0,c[g>>2]|0)|0;o=c[l>>2]|0;i=m;return o|0}else{c[l>>2]=12;o=c[l>>2]|0;i=m;return o|0}return 0}function Gf(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;h=j+12|0;e=j+8|0;f=j+4|0;g=j;c[e>>2]=b;c[f>>2]=d;if((c[e>>2]|0)==0|(c[f>>2]|0)==0){c[h>>2]=0;h=c[h>>2]|0;i=j;return h|0}d=(If(c[e>>2]|0)|0)+1|0;c[e>>2]=(c[e>>2]|0)+d;while(1){if(!(a[c[e>>2]>>0]|0)){b=8;break}c[g>>2]=yQ(c[e>>2]|0,c[f>>2]|0)|0;d=(If(c[e>>2]|0)|0)+1|0;c[e>>2]=(c[e>>2]|0)+d;d=c[e>>2]|0;if(!(c[g>>2]|0)){b=6;break}d=(If(d)|0)+1|0;c[e>>2]=(c[e>>2]|0)+d}if((b|0)==6){c[h>>2]=d;h=c[h>>2]|0;i=j;return h|0}else if((b|0)==8){c[h>>2]=0;h=c[h>>2]|0;i=j;return h|0}return 0}function Hf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;g=i;i=i+16|0;j=g+12|0;h=g+8|0;e=g+4|0;f=g;c[j>>2]=a;c[h>>2]=b;c[e>>2]=d;c[f>>2]=Gf(c[j>>2]|0,c[h>>2]|0)|0;c[e>>2]=(c[e>>2]|0)!=0&1;if(c[f>>2]|0){j=(Bi(c[f>>2]|0,c[e>>2]&255)|0)&255;i=g;return j|0}else{j=c[e>>2]|0;i=g;return j|0}return 0}function If(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[d>>2]=a;if(!(c[d>>2]|0))c[b>>2]=0;else c[b>>2]=1073741823&(BQ(c[d>>2]|0)|0);i=e;return c[b>>2]|0}function Jf(b){b=b|0;var c=0,e=0;e=i;i=i+16|0;c=e;a[c>>0]=b;i=e;return((d[19267+(d[c>>0]|0)>>0]|0)&70|0)!=0|0}function Kf(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b;e=b+8|0;c[e>>2]=a;e=c[e>>2]|0;a=(kf()|0)+20|0;c[d>>2]=e;c[d+4>>2]=a;Rd(21,47042,d);i=b;return 21}function Lf(){return c[417]|0}function Mf(){return c[70]|0}function Nf(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;b=f+8|0;d=f+4|0;e=f;c[b>>2]=a;c[d>>2]=0;while(1){if((c[d>>2]|0)>=(c[(c[b>>2]|0)+20>>2]|0))break;c[e>>2]=c[(c[(c[b>>2]|0)+16>>2]|0)+(c[d>>2]<<4)+4>>2];if(c[e>>2]|0)c[(c[(c[e>>2]|0)+4>>2]|0)+4>>2]=c[c[e>>2]>>2];c[d>>2]=(c[d>>2]|0)+1}i=f;return}function Of(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c[c[(c[b>>2]|0)+4>>2]>>2]|0}function Pf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f+4|0;e=f;c[d>>2]=a;c[e>>2]=b;if(!(c[e>>2]|0)){i=f;return}bv(c[d>>2]|0,c[(c[e>>2]|0)+28>>2]|0);Sf(c[d>>2]|0,c[c[e>>2]>>2]|0);Sf(c[d>>2]|0,c[(c[e>>2]|0)+4>>2]|0);Zu(c[d>>2]|0,c[(c[e>>2]|0)+12>>2]|0);_u(c[d>>2]|0,c[(c[e>>2]|0)+16>>2]|0);Sf(c[d>>2]|0,c[e>>2]|0);i=f;return}function Qf(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;e=l+16|0;f=l+12|0;g=l+8|0;h=l+4|0;j=l;c[e>>2]=a;c[f>>2]=d;if(!(c[f>>2]|0)){i=l;return}if(!((c[e>>2]|0)!=0?(c[(c[e>>2]|0)+528>>2]|0)!=0:0))k=4;if((k|0)==4?(d=(c[f>>2]|0)+36|0,k=(b[d>>1]|0)+-1<<16>>16,b[d>>1]=k,(k&65535|0)>0):0){i=l;return}c[g>>2]=c[(c[f>>2]|0)+8>>2];while(1){if(!(c[g>>2]|0))break;c[h>>2]=c[(c[g>>2]|0)+20>>2];if(!((c[e>>2]|0)!=0?(c[(c[e>>2]|0)+528>>2]|0)!=0:0)){c[j>>2]=c[c[g>>2]>>2];Oj((c[(c[g>>2]|0)+24>>2]|0)+24|0,c[j>>2]|0,0)|0}WG(c[e>>2]|0,c[g>>2]|0);c[g>>2]=c[h>>2]}LP(c[e>>2]|0,c[f>>2]|0);RG(c[e>>2]|0,c[f>>2]|0);Sf(c[e>>2]|0,c[c[f>>2]>>2]|0);Sf(c[e>>2]|0,c[(c[f>>2]|0)+20>>2]|0);Wu(c[e>>2]|0,c[(c[f>>2]|0)+12>>2]|0);Vu(c[e>>2]|0,c[(c[f>>2]|0)+24>>2]|0);CH(c[e>>2]|0,c[f>>2]|0);Sf(c[e>>2]|0,c[f>>2]|0);i=l;return}function Rf(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;h=l+16|0;j=l+12|0;g=l+8|0;f=l+4|0;k=l;c[h>>2]=a;c[j>>2]=d;oC(c[(c[j>>2]|0)+60>>2]|0,b[(c[j>>2]|0)+68>>1]|0);oC(c[(c[j>>2]|0)+16>>2]|0,e[(c[j>>2]|0)+84>>1]<<1);c[g>>2]=c[(c[j>>2]|0)+192>>2];while(1){if(!(c[g>>2]|0))break;c[f>>2]=c[(c[g>>2]|0)+24>>2];KP(c[h>>2]|0,c[c[g>>2]>>2]|0,c[(c[g>>2]|0)+4>>2]|0);Sf(c[h>>2]|0,c[g>>2]|0);c[g>>2]=c[f>>2]}c[k>>2]=(b[(c[j>>2]|0)+70>>1]|0)-1;while(1){a=c[h>>2]|0;if((c[k>>2]|0)<0)break;Sf(a,c[(c[(c[j>>2]|0)+64>>2]|0)+(c[k>>2]<<2)>>2]|0);c[k>>2]=(c[k>>2]|0)+-1}Sf(a,c[(c[j>>2]|0)+64>>2]|0);KP(c[h>>2]|0,c[(c[j>>2]|0)+4>>2]|0,c[(c[j>>2]|0)+32>>2]|0);Sf(c[h>>2]|0,c[(c[j>>2]|0)+16>>2]|0);Sf(c[h>>2]|0,c[(c[j>>2]|0)+168>>2]|0);Sf(c[h>>2]|0,c[(c[j>>2]|0)+172>>2]|0);i=l;return}function Sf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;e=g+4|0;f=g;c[d>>2]=a;c[e>>2]=b;if(!(c[e>>2]|0)){i=g;return}if(c[d>>2]|0){a=c[d>>2]|0;b=c[e>>2]|0;if(c[(c[d>>2]|0)+528>>2]|0){JP(a,b);i=g;return}if(au(a,b)|0){c[f>>2]=c[e>>2];c[c[f>>2]>>2]=c[(c[d>>2]|0)+248+28>>2];c[(c[d>>2]|0)+248+28>>2]=c[f>>2];f=(c[d>>2]|0)+248+8|0;c[f>>2]=(c[f>>2]|0)+-1;i=g;return}}Kd(c[e>>2]|0);i=g;return}function Tf(){var a=0,b=0,d=0,e=0,f=0,g=0;g=i;i=i+32|0;e=g+16|0;a=g+12|0;b=g+8|0;f=g+4|0;d=g;if(!(c[11]|0))Xh();c[70]=0;c[71]=0;c[72]=0;c[73]=0;c[74]=0;c[75]=0;c[76]=0;c[77]=0;c[70]=8;if((c[50]|0)!=0&(c[51]|0)>=100&(c[52]|0)>0){c[f>>2]=c[51]&-8;c[51]=c[f>>2];c[d>>2]=c[50];c[b>>2]=c[52];c[75]=c[d>>2];c[76]=c[b>>2];c[a>>2]=0;while(1){if((c[a>>2]|0)>=((c[b>>2]|0)-1|0))break;c[c[d>>2]>>2]=(c[d>>2]|0)+(c[f>>2]|0);c[d>>2]=c[c[d>>2]>>2];c[a>>2]=(c[a>>2]|0)+1}c[c[d>>2]>>2]=0;c[74]=(c[d>>2]|0)+4}else{c[74]=0;c[50]=0;c[51]=0;c[52]=0}if((c[53]|0)==0|(c[54]|0)<512|(c[55]|0)<=0){c[53]=0;c[54]=0}c[e>>2]=Tb[c[64>>2]&255](c[18]|0)|0;if(!(c[e>>2]|0)){f=c[e>>2]|0;i=g;return f|0}c[70]=0;c[71]=0;c[72]=0;c[73]=0;c[74]=0;c[75]=0;c[76]=0;c[77]=0;f=c[e>>2]|0;i=g;return f|0}function Uf(){var a=0,b=0,d=0,e=0;e=i;i=i+16|0;b=e+8|0;d=e+4|0;a=e;c[d>>2]=1080;c[a>>2]=7788;c[b>>2]=0;while(1){if((c[b>>2]|0)>=57)break;Yt(c[d>>2]|0,(c[a>>2]|0)+(c[b>>2]<<5)|0);c[b>>2]=(c[b>>2]|0)+1}tO();uO();i=e;return}function Vf(){if(!(c[30]|0))$h();return Tb[c[120>>2]&255](c[29]|0)|0}function Wf(){var a=0,b=0,d=0;d=i;i=i+16|0;a=d+4|0;b=d;c[b>>2]=Id(10)|0;if(!(c[b>>2]|0)){c[a>>2]=7;b=c[a>>2]|0;i=d;return b|0}else{Kd(c[b>>2]|0);c[a>>2]=Ud()|0;b=c[a>>2]|0;i=d;return b|0}return 0}function Xf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;e=j+12|0;f=j+8|0;g=j+4|0;h=j;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;if(!(c[409]|0)){i=j;return}if(!(c[e>>2]|0)){c[g>>2]=0;c[f>>2]=0}c[f>>2]=c[f>>2]&-8;c[412]=c[f>>2];b=c[g>>2]|0;c[419]=b;c[413]=b;if((c[g>>2]|0)>90)d=10;else d=((c[g>>2]|0)/10|0)+1|0;c[414]=d;c[415]=c[e>>2];c[418]=0;c[420]=0;while(1){b=c[g>>2]|0;c[g>>2]=b+-1;d=c[e>>2]|0;if(!b)break;c[h>>2]=d;c[c[h>>2]>>2]=c[418];c[418]=c[h>>2];c[e>>2]=(c[e>>2]|0)+(c[f>>2]|0)}c[416]=d;i=j;return}function Yf(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;d=f+4|0;e=f;c[d>>2]=a;if(!(c[d>>2]|0)){i=f;return}if((c[269]|0)==(c[d>>2]|0)){c[269]=c[(c[d>>2]|0)+12>>2];i=f;return}if(!(c[269]|0)){i=f;return}c[e>>2]=c[269];while(1){if(c[(c[e>>2]|0)+12>>2]|0)b=(c[(c[e>>2]|0)+12>>2]|0)!=(c[d>>2]|0);else b=0;a=c[(c[e>>2]|0)+12>>2]|0;if(!b)break;c[e>>2]=a}if((a|0)!=(c[d>>2]|0)){i=f;return}c[(c[e>>2]|0)+12>>2]=c[(c[d>>2]|0)+12>>2];i=f;return}function Zf(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;C=0;i=d;return c[996+(c[b>>2]<<2)>>2]|0}function _f(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=i;i=i+16|0;d=f;e=f+8|0;g=d;c[g>>2]=a;c[g+4>>2]=b;g=d;b=d;a=c[b+4>>2]|0;if((c[g>>2]|0)==0&(c[g+4>>2]|0)==0|(a>>>0>0|(a|0)==0&(c[b>>2]|0)>>>0>=2147483392)){c[e>>2]=0;g=c[e>>2]|0;i=f;return g|0}if(c[2]|0){sO(c[d>>2]|0,e)|0;g=c[e>>2]|0;i=f;return g|0}else{c[e>>2]=Tb[c[44>>2]&255](c[d>>2]|0)|0;g=c[e>>2]|0;i=f;return g|0}return 0}function $f(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=Tb[c[56>>2]&255](c[d>>2]|0)|0;i=b;return a|0}function ag(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;a=996+(c[f>>2]<<2)|0;c[a>>2]=(c[a>>2]|0)-(c[e>>2]|0);i=d;return}function bg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+32|0;e=m+28|0;f=m+24|0;g=m;k=m+20|0;j=m+16|0;h=m+12|0;l=m+8|0;c[f>>2]=a;a=g;c[a>>2]=b;c[a+4>>2]=d;d=g;b=c[d>>2]|0;d=c[d+4>>2]|0;if(!(c[f>>2]|0)){c[e>>2]=_f(b,d)|0;l=c[e>>2]|0;i=m;return l|0}if((b|0)==0&(d|0)==0){Kd(c[f>>2]|0);c[e>>2]=0;l=c[e>>2]|0;i=m;return l|0}a=g;d=c[a+4>>2]|0;if(d>>>0>0|(d|0)==0&(c[a>>2]|0)>>>0>=2147483392){c[e>>2]=0;l=c[e>>2]|0;i=m;return l|0}c[k>>2]=$f(c[f>>2]|0)|0;c[j>>2]=Tb[c[60>>2]&255](c[g>>2]|0)|0;do if((c[k>>2]|0)!=(c[j>>2]|0)){if(!(c[2]|0)){c[l>>2]=Yb[c[52>>2]&255](c[f>>2]|0,c[j>>2]|0)|0;break}Mi(5,c[g>>2]|0);c[h>>2]=(c[j>>2]|0)-(c[k>>2]|0);d=Zf(0)|0;n=C;b=288;a=c[h>>2]|0;a=fR(c[b>>2]|0,c[b+4>>2]|0,a|0,((a|0)<0)<<31>>31|0)|0;b=C;if((n|0)>(b|0)|(n|0)==(b|0)&d>>>0>=a>>>0)rO(c[h>>2]|0);c[l>>2]=Yb[c[52>>2]&255](c[f>>2]|0,c[j>>2]|0)|0;n=288;h=c[n+4>>2]|0;if((c[l>>2]|0)==0&((h|0)>0|(h|0)==0&(c[n>>2]|0)>>>0>0)){rO(c[g>>2]|0);c[l>>2]=Yb[c[52>>2]&255](c[f>>2]|0,c[j>>2]|0)|0}if(c[l>>2]|0){c[j>>2]=$f(c[l>>2]|0)|0;Ni(0,(c[j>>2]|0)-(c[k>>2]|0)|0)}}else c[l>>2]=c[f>>2];while(0);c[e>>2]=c[l>>2];n=c[e>>2]|0;i=m;return n|0}function cg(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;h=i;i=i+32|0;j=h+16|0;m=h+12|0;n=h+8|0;l=h+4|0;k=h;c[j>>2]=b;c[m>>2]=d;c[n>>2]=e;c[l>>2]=f;c[k>>2]=g;e=c[n>>2]|0;c[(c[j>>2]|0)+4>>2]=e;c[(c[j>>2]|0)+8>>2]=e;c[c[j>>2]>>2]=c[m>>2];c[(c[j>>2]|0)+12>>2]=0;c[(c[j>>2]|0)+16>>2]=c[l>>2];c[(c[j>>2]|0)+20>>2]=c[k>>2];a[(c[j>>2]|0)+24>>0]=0;a[(c[j>>2]|0)+25>>0]=0;i=h;return}function dg(b,e,f){b=b|0;e=e|0;f=f|0;var g=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0;ra=i;i=i+272|0;j=ra+176|0;k=ra+172|0;l=ra+168|0;q=ra+164|0;p=ra+160|0;aa=ra+156|0;Q=ra+152|0;K=ra+148|0;ja=ra+144|0;B=ra+268|0;F=ra+267|0;z=ra+266|0;x=ra+265|0;y=ra+264|0;H=ra+263|0;D=ra+262|0;E=ra+261|0;t=ra+260|0;na=ra+259|0;m=ra+258|0;ha=ra+257|0;ba=ra+256|0;R=ra+32|0;ea=ra+24|0;L=ra+140|0;pa=ra+136|0;T=ra+132|0;oa=ra+128|0;w=ra+124|0;u=ra+120|0;W=ra+116|0;fa=ra+16|0;A=ra+255|0;G=ra+254|0;X=ra+112|0;o=ra+184|0;ka=ra+108|0;ca=ra+104|0;ia=ra+8|0;la=ra+100|0;s=ra+96|0;n=ra+183|0;$=ra+92|0;ma=ra+182|0;ga=ra;I=ra+88|0;U=ra+84|0;J=ra+80|0;N=ra+76|0;O=ra+72|0;S=ra+68|0;M=ra+64|0;V=ra+60|0;r=ra+181|0;da=ra+180|0;v=ra+56|0;_=ra+52|0;Z=ra+48|0;P=ra+44|0;Y=ra+40|0;c[j>>2]=b;c[k>>2]=e;c[l>>2]=f;a[na>>0]=0;c[oa>>2]=0;c[X>>2]=0;c[p>>2]=0;if(a[(c[j>>2]|0)+25>>0]|0){b=d[(c[j>>2]|0)+25>>0]&2;a[m>>0]=b;if(b&255){e=c[l>>2]|0;f=(c[e>>2]|0)+(4-1)&~(4-1);b=c[f>>2]|0;c[e>>2]=f+4;c[X>>2]=b}a[ha>>0]=d[(c[j>>2]|0)+25>>0]&1}else{a[ha>>0]=0;a[m>>0]=0}a:while(1){b=a[c[k>>2]>>0]|0;c[q>>2]=b;if(!b){qa=268;break}if((c[q>>2]|0)!=37){c[p>>2]=c[k>>2];do{c[k>>2]=(c[k>>2]|0)+1;if(!(a[c[k>>2]>>0]|0))break}while((a[c[k>>2]>>0]|0)!=37);aA(c[j>>2]|0,c[p>>2]|0,(c[k>>2]|0)-(c[p>>2]|0)|0);if(!(a[c[k>>2]>>0]|0)){qa=268;break}}b=(c[k>>2]|0)+1|0;c[k>>2]=b;b=a[b>>0]|0;c[q>>2]=b;if(!b){qa=13;break}a[H>>0]=0;a[y>>0]=0;a[x>>0]=0;a[z>>0]=0;a[F>>0]=0;a[B>>0]=0;a[t>>0]=0;do{switch(c[q>>2]|0){case 45:{a[B>>0]=1;break}case 43:{a[F>>0]=1;break}case 32:{a[z>>0]=1;break}case 35:{a[x>>0]=1;break}case 33:{a[y>>0]=1;break}case 48:{a[H>>0]=1;break}default:a[t>>0]=1}if(a[t>>0]|0)break;b=(c[k>>2]|0)+1|0;c[k>>2]=b;b=a[b>>0]|0;c[q>>2]=b}while((b|0)!=0);if((c[q>>2]|0)==42){if(a[m>>0]|0){b=mO(c[X>>2]|0)|0;c[ja>>2]=b}else{e=c[l>>2]|0;f=(c[e>>2]|0)+(4-1)&~(4-1);b=c[f>>2]|0;c[e>>2]=f+4;c[ja>>2]=b}if((c[ja>>2]|0)<0){a[B>>0]=1;c[ja>>2]=(c[ja>>2]|0)>=-2147483647?0-(c[ja>>2]|0)|0:0}b=(c[k>>2]|0)+1|0;c[k>>2]=b;c[q>>2]=a[b>>0]}else{c[ka>>2]=0;while(1){f=c[ka>>2]|0;if(!((c[q>>2]|0)>=48?(c[q>>2]|0)<=57:0))break;c[ka>>2]=(f*10|0)+(c[q>>2]|0)-48;b=(c[k>>2]|0)+1|0;c[k>>2]=b;c[q>>2]=a[b>>0]}c[ja>>2]=f&2147483647}do if((c[q>>2]|0)==46){b=(c[k>>2]|0)+1|0;c[k>>2]=b;c[q>>2]=a[b>>0];if((c[q>>2]|0)!=42){c[ca>>2]=0;while(1){f=c[ca>>2]|0;if(!((c[q>>2]|0)>=48?(c[q>>2]|0)<=57:0))break;c[ca>>2]=(f*10|0)+(c[q>>2]|0)-48;b=(c[k>>2]|0)+1|0;c[k>>2]=b;c[q>>2]=a[b>>0]}c[aa>>2]=f&2147483647;break}if(a[m>>0]|0){b=mO(c[X>>2]|0)|0;c[aa>>2]=b}else{e=c[l>>2]|0;f=(c[e>>2]|0)+(4-1)&~(4-1);b=c[f>>2]|0;c[e>>2]=f+4;c[aa>>2]=b}b=(c[k>>2]|0)+1|0;c[k>>2]=b;c[q>>2]=a[b>>0];if((c[aa>>2]|0)<0)c[aa>>2]=(c[aa>>2]|0)>=-2147483647?0-(c[aa>>2]|0)|0:-1}else c[aa>>2]=-1;while(0);do if((c[q>>2]|0)==108){a[D>>0]=1;b=(c[k>>2]|0)+1|0;c[k>>2]=b;c[q>>2]=a[b>>0];if((c[q>>2]|0)==108){a[E>>0]=1;b=(c[k>>2]|0)+1|0;c[k>>2]=b;c[q>>2]=a[b>>0];break}else{a[E>>0]=0;break}}else{a[E>>0]=0;a[D>>0]=0}while(0);c[L>>2]=46051;a[na>>0]=0;c[K>>2]=0;while(1){if((c[K>>2]|0)>=23)break;f=c[K>>2]|0;if((c[q>>2]|0)==(a[46051+((c[K>>2]|0)*6|0)>>0]|0)){qa=56;break}c[K>>2]=f+1}if((qa|0)==56){qa=0;c[L>>2]=46051+(f*6|0);if((d[ha>>0]|0)==0?(d[(c[L>>2]|0)+2>>0]&2|0)!=0:0){qa=268;break}a[na>>0]=a[(c[L>>2]|0)+3>>0]|0}b:do switch(d[na>>0]|0){case 14:{a[E>>0]=0;a[D>>0]=1;qa=62;break}case 1:case 16:{qa=62;break}case 4:case 3:case 2:{if(a[m>>0]|0)h[ea>>3]=+nO(c[X>>2]|0);else{b=c[l>>2]|0;e=(c[b>>2]|0)+(8-1)&~(8-1);g=+h[e>>3];c[b>>2]=e+8;h[ea>>3]=g}if((c[aa>>2]|0)<0)c[aa>>2]=6;do if(!(+h[ea>>3]<0.0)){if(a[F>>0]|0){a[ba>>0]=43;break}if(a[z>>0]|0){a[ba>>0]=32;break}else{a[ba>>0]=0;break}}else{h[ea>>3]=-+h[ea>>3];a[ba>>0]=45}while(0);if((d[na>>0]|0)==4&(c[aa>>2]|0)>0)c[aa>>2]=(c[aa>>2]|0)+-1;c[K>>2]=c[aa>>2]&4095;h[fa>>3]=.5;while(1){if((c[K>>2]|0)<=0)break;c[K>>2]=(c[K>>2]|0)+-1;h[fa>>3]=+h[fa>>3]*.1}if((d[na>>0]|0)==2)h[ea>>3]=+h[ea>>3]+ +h[fa>>3];c[w>>2]=0;if(HF(+h[ea>>3])|0){c[p>>2]=46238;c[Q>>2]=3;break b}if(+h[ea>>3]>0.0){h[ga>>3]=1.0;while(1){if(!(+h[ea>>3]>=+h[ga>>3]*1.e+100?(c[w>>2]|0)<=350:0))break;h[ga>>3]=+h[ga>>3]*1.e+100;c[w>>2]=(c[w>>2]|0)+100}while(1){if(!(+h[ea>>3]>=+h[ga>>3]*1.0e10?(c[w>>2]|0)<=350:0))break;h[ga>>3]=+h[ga>>3]*1.0e10;c[w>>2]=(c[w>>2]|0)+10}while(1){g=+h[ga>>3];if(!(+h[ea>>3]>=+h[ga>>3]*10.0?(c[w>>2]|0)<=350:0))break;h[ga>>3]=g*10.0;c[w>>2]=(c[w>>2]|0)+1}h[ea>>3]=+h[ea>>3]/g;while(1){if(!(+h[ea>>3]<1.0e-08))break;h[ea>>3]=+h[ea>>3]*1.0e8;c[w>>2]=(c[w>>2]|0)-8}while(1){if(!(+h[ea>>3]<1.0))break;h[ea>>3]=+h[ea>>3]*10.0;c[w>>2]=(c[w>>2]|0)+-1}if((c[w>>2]|0)>350){c[p>>2]=o;a[o>>0]=a[ba>>0]|0;b=o+((a[ba>>0]|0)!=0&1)|0;a[b>>0]=a[46242]|0;a[b+1>>0]=a[46243]|0;a[b+2>>0]=a[46244]|0;a[b+3>>0]=a[46245]|0;c[Q>>2]=3+((a[ba>>0]|0)!=0&1);break b}}c[p>>2]=o;if((d[na>>0]|0)!=2?(h[ea>>3]=+h[ea>>3]+ +h[fa>>3],+h[ea>>3]>=10.0):0){h[ea>>3]=+h[ea>>3]*.1;c[w>>2]=(c[w>>2]|0)+1}c:do if((d[na>>0]|0)==4){a[G>>0]=((a[x>>0]|0)!=0^1)&1;do if((c[w>>2]|0)>=-4){if((c[w>>2]|0)>(c[aa>>2]|0))break;c[aa>>2]=(c[aa>>2]|0)-(c[w>>2]|0);a[na>>0]=2;break c}while(0);a[na>>0]=3}else a[G>>0]=a[y>>0]|0;while(0);if((d[na>>0]|0)==3)c[u>>2]=0;else c[u>>2]=c[w>>2];b=(c[u>>2]|0)>0?c[u>>2]|0:0;e=c[aa>>2]|0;e=gR(b|0,((b|0)<0)<<31>>31|0,e|0,((e|0)<0)<<31>>31|0)|0;b=c[ja>>2]|0;b=gR(e|0,C|0,b|0,((b|0)<0)<<31>>31|0)|0;e=C;if((e|0)>0|(e|0)==0&b>>>0>55?(b=(c[u>>2]|0)>0?c[u>>2]|0:0,e=c[aa>>2]|0,e=gR(b|0,((b|0)<0)<<31>>31|0,e|0,((e|0)<0)<<31>>31|0)|0,b=c[ja>>2]|0,b=gR(e|0,C|0,b|0,((b|0)<0)<<31>>31|0)|0,b=gR(b|0,C|0,15,0)|0,b=_f(b,C)|0,c[oa>>2]=b,c[p>>2]=b,(c[p>>2]|0)==0):0){qa=161;break a}c[pa>>2]=c[p>>2];c[W>>2]=16+((d[y>>0]|0)*10|0);a[A>>0]=((c[aa>>2]|0)>0?1:0)|d[x>>0]|d[y>>0];if(a[ba>>0]|0){e=a[ba>>0]|0;b=c[p>>2]|0;c[p>>2]=b+1;a[b>>0]=e}d:do if((c[u>>2]|0)<0){b=c[p>>2]|0;c[p>>2]=b+1;a[b>>0]=48}else while(1){if((c[u>>2]|0)<0)break d;e=oO(ea,W)|0;b=c[p>>2]|0;c[p>>2]=b+1;a[b>>0]=e;c[u>>2]=(c[u>>2]|0)+-1}while(0);if(a[A>>0]|0){b=c[p>>2]|0;c[p>>2]=b+1;a[b>>0]=46}c[u>>2]=(c[u>>2]|0)+1;while(1){if((c[u>>2]|0)>=0)break;b=c[p>>2]|0;c[p>>2]=b+1;a[b>>0]=48;c[aa>>2]=(c[aa>>2]|0)+-1;c[u>>2]=(c[u>>2]|0)+1}while(1){b=c[aa>>2]|0;c[aa>>2]=b+-1;if((b|0)<=0)break;e=oO(ea,W)|0;b=c[p>>2]|0;c[p>>2]=b+1;a[b>>0]=e}do if(d[G>>0]|0){if(!(d[A>>0]|0))break;while(1){f=(c[p>>2]|0)+-1|0;if((a[(c[p>>2]|0)+-1>>0]|0)!=48)break;c[p>>2]=f;a[f>>0]=0}if((a[f>>0]|0)!=46)break;f=c[p>>2]|0;if(a[y>>0]|0){c[p>>2]=f+1;a[f>>0]=48;break}else{b=f+-1|0;c[p>>2]=b;a[b>>0]=0;break}}while(0);if((d[na>>0]|0)==3){f=a[46198+(d[(c[L>>2]|0)+4>>0]|0)>>0]|0;b=c[p>>2]|0;c[p>>2]=b+1;a[b>>0]=f;b=(c[w>>2]|0)<0;f=c[p>>2]|0;c[p>>2]=f+1;if(b){a[f>>0]=45;c[w>>2]=0-(c[w>>2]|0)}else a[f>>0]=43;if((c[w>>2]|0)>=100){e=((c[w>>2]|0)/100|0)+48&255;b=c[p>>2]|0;c[p>>2]=b+1;a[b>>0]=e;c[w>>2]=(c[w>>2]|0)%100|0}b=((c[w>>2]|0)/10|0)+48&255;e=c[p>>2]|0;c[p>>2]=e+1;a[e>>0]=b;e=((c[w>>2]|0)%10|0)+48&255;b=c[p>>2]|0;c[p>>2]=b+1;a[b>>0]=e}a[c[p>>2]>>0]=0;c[Q>>2]=(c[p>>2]|0)-(c[pa>>2]|0);c[p>>2]=c[pa>>2];if((d[H>>0]|0)==0|(a[B>>0]|0)!=0)break b;if((c[Q>>2]|0)>=(c[ja>>2]|0))break b;c[U>>2]=(c[ja>>2]|0)-(c[Q>>2]|0);c[I>>2]=c[ja>>2];while(1){if((c[I>>2]|0)<(c[U>>2]|0))break;a[(c[p>>2]|0)+(c[I>>2]|0)>>0]=a[(c[p>>2]|0)+((c[I>>2]|0)-(c[U>>2]|0))>>0]|0;c[I>>2]=(c[I>>2]|0)+-1}c[I>>2]=(a[ba>>0]|0)!=0&1;while(1){b=c[U>>2]|0;c[U>>2]=b+-1;if(!b)break;b=c[I>>2]|0;c[I>>2]=b+1;a[(c[p>>2]|0)+b>>0]=48}c[Q>>2]=c[ja>>2];break}case 5:{if(!(a[m>>0]|0)){e=c[(c[j>>2]|0)+12>>2]|0;f=c[l>>2]|0;sa=(c[f>>2]|0)+(4-1)&~(4-1);b=c[sa>>2]|0;c[f>>2]=sa+4;c[b>>2]=e}c[ja>>2]=0;c[Q>>2]=0;break}case 8:{a[o>>0]=37;c[p>>2]=o;c[Q>>2]=1;break}case 9:{if(a[m>>0]|0){c[p>>2]=pO(c[X>>2]|0)|0;if(c[p>>2]|0)f=a[c[p>>2]>>0]|0;else f=0;c[q>>2]=f}else{b=c[l>>2]|0;e=(c[b>>2]|0)+(4-1)&~(4-1);sa=c[e>>2]|0;c[b>>2]=e+4;c[q>>2]=sa}if((c[aa>>2]|0)>1){c[ja>>2]=(c[ja>>2]|0)-((c[aa>>2]|0)-1);if(!((c[ja>>2]|0)<=1|(a[B>>0]|0)!=0)){qO(c[j>>2]|0,(c[ja>>2]|0)-1|0,32);c[ja>>2]=0}qO(c[j>>2]|0,(c[aa>>2]|0)-1|0,c[q>>2]&255)}c[Q>>2]=1;a[o>>0]=c[q>>2];c[p>>2]=o;break}case 7:case 6:{if(a[m>>0]|0){c[p>>2]=pO(c[X>>2]|0)|0;a[na>>0]=6}else{b=c[l>>2]|0;e=(c[b>>2]|0)+(4-1)&~(4-1);sa=c[e>>2]|0;c[b>>2]=e+4;c[p>>2]=sa}if(c[p>>2]|0){if((d[na>>0]|0)==7)c[oa>>2]=c[p>>2]}else c[p>>2]=19266;if((c[aa>>2]|0)<0){c[Q>>2]=If(c[p>>2]|0)|0;break b}c[Q>>2]=0;while(1){if((c[Q>>2]|0)>=(c[aa>>2]|0))break b;if(!(a[(c[p>>2]|0)+(c[Q>>2]|0)>>0]|0))break b;c[Q>>2]=(c[Q>>2]|0)+1}}case 15:case 11:case 10:{a[da>>0]=(d[na>>0]|0)==15?34:39;if(a[m>>0]|0)c[v>>2]=pO(c[X>>2]|0)|0;else{b=c[l>>2]|0;e=(c[b>>2]|0)+(4-1)&~(4-1);sa=c[e>>2]|0;c[b>>2]=e+4;c[v>>2]=sa}c[M>>2]=(c[v>>2]|0)==0&1;if(c[M>>2]|0)c[v>>2]=(d[na>>0]|0)==11?40498:46246;c[O>>2]=c[aa>>2];c[S>>2]=0;c[J>>2]=0;while(1){if(!(c[O>>2]|0))break;sa=a[(c[v>>2]|0)+(c[J>>2]|0)>>0]|0;a[r>>0]=sa;if(!(sa<<24>>24))break;if((a[r>>0]|0)==(a[da>>0]|0))c[S>>2]=(c[S>>2]|0)+1;c[J>>2]=(c[J>>2]|0)+1;c[O>>2]=(c[O>>2]|0)+-1}if(c[M>>2]|0)f=0;else f=(d[na>>0]|0)==11;c[V>>2]=f&1;c[S>>2]=(c[S>>2]|0)+((c[J>>2]|0)+3);if((c[S>>2]|0)>70){sa=c[S>>2]|0;sa=_f(sa,((sa|0)<0)<<31>>31)|0;c[oa>>2]=sa;c[p>>2]=sa;if(!(c[p>>2]|0)){qa=241;break a}}else c[p>>2]=o;c[N>>2]=0;if(c[V>>2]|0){b=a[da>>0]|0;sa=c[N>>2]|0;c[N>>2]=sa+1;a[(c[p>>2]|0)+sa>>0]=b}c[O>>2]=c[J>>2];c[J>>2]=0;while(1){if((c[J>>2]|0)>=(c[O>>2]|0))break;b=a[(c[v>>2]|0)+(c[J>>2]|0)>>0]|0;a[r>>0]=b;sa=c[N>>2]|0;c[N>>2]=sa+1;a[(c[p>>2]|0)+sa>>0]=b;if((a[r>>0]|0)==(a[da>>0]|0)){b=a[r>>0]|0;sa=c[N>>2]|0;c[N>>2]=sa+1;a[(c[p>>2]|0)+sa>>0]=b}c[J>>2]=(c[J>>2]|0)+1}if(c[V>>2]|0){b=a[da>>0]|0;sa=c[N>>2]|0;c[N>>2]=sa+1;a[(c[p>>2]|0)+sa>>0]=b}a[(c[p>>2]|0)+(c[N>>2]|0)>>0]=0;c[Q>>2]=c[N>>2];break}case 12:{b=c[l>>2]|0;e=(c[b>>2]|0)+(4-1)&~(4-1);sa=c[e>>2]|0;c[b>>2]=e+4;c[_>>2]=sa;if((c[_>>2]|0)!=0?(c[(c[_>>2]|0)+4>>2]|0)!=0:0)aA(c[j>>2]|0,c[c[_>>2]>>2]|0,c[(c[_>>2]|0)+4>>2]|0);c[ja>>2]=0;c[Q>>2]=0;break}case 13:{e=c[l>>2]|0;sa=(c[e>>2]|0)+(4-1)&~(4-1);b=c[sa>>2]|0;c[e>>2]=sa+4;c[Z>>2]=b;b=c[l>>2]|0;e=(c[b>>2]|0)+(4-1)&~(4-1);sa=c[e>>2]|0;c[b>>2]=e+4;c[P>>2]=sa;c[Y>>2]=(c[Z>>2]|0)+8+((c[P>>2]|0)*72|0);if(c[(c[Y>>2]|0)+4>>2]|0){AD(c[j>>2]|0,c[(c[Y>>2]|0)+4>>2]|0);aA(c[j>>2]|0,45876,1)}AD(c[j>>2]|0,c[(c[Y>>2]|0)+8>>2]|0);c[ja>>2]=0;c[Q>>2]=0;break}default:{qa=268;break a}}while(0);if((qa|0)==62){qa=0;f=(a[m>>0]|0)!=0;do if(d[(c[L>>2]|0)+2>>0]&1){do if(!f){f=c[l>>2]|0;if(a[E>>0]|0){sa=(c[f>>2]|0)+(8-1)&~(8-1);b=sa;e=c[b>>2]|0;b=c[b+4>>2]|0;c[f>>2]=sa+8;sa=ia;c[sa>>2]=e;c[sa+4>>2]=b;break}else{sa=(c[f>>2]|0)+(4-1)&~(4-1);b=c[sa>>2]|0;c[f>>2]=sa+4;sa=ia;c[sa>>2]=b;c[sa+4>>2]=((b|0)<0)<<31>>31;break}}else{b=mO(c[X>>2]|0)|0;sa=ia;c[sa>>2]=b;c[sa+4>>2]=C}while(0);e=ia;f=c[e>>2]|0;e=c[e+4>>2]|0;if((c[ia+4>>2]|0)<0){if((f|0)==0&(e|0)==-2147483648){sa=R;c[sa>>2]=0;c[sa+4>>2]=-2147483648}else{b=ia;b=fR(0,0,c[b>>2]|0,c[b+4>>2]|0)|0;sa=R;c[sa>>2]=b;c[sa+4>>2]=C}a[ba>>0]=45;break}sa=R;c[sa>>2]=f;c[sa+4>>2]=e;if(a[F>>0]|0){a[ba>>0]=43;break}if(a[z>>0]|0){a[ba>>0]=32;break}else{a[ba>>0]=0;break}}else{do if(!f){f=c[l>>2]|0;if(a[E>>0]|0){sa=(c[f>>2]|0)+(8-1)&~(8-1);b=sa;e=c[b>>2]|0;b=c[b+4>>2]|0;c[f>>2]=sa+8;sa=R;c[sa>>2]=e;c[sa+4>>2]=b;break}else{sa=(c[f>>2]|0)+(4-1)&~(4-1);b=c[sa>>2]|0;c[f>>2]=sa+4;sa=R;c[sa>>2]=b;c[sa+4>>2]=0;break}}else{b=mO(c[X>>2]|0)|0;sa=R;c[sa>>2]=b;c[sa+4>>2]=C}while(0);a[ba>>0]=0}while(0);sa=R;if((c[sa>>2]|0)==0&(c[sa+4>>2]|0)==0)a[x>>0]=0;if((d[H>>0]|0)!=0?(c[aa>>2]|0)<((c[ja>>2]|0)-((a[ba>>0]|0)!=0&1)|0):0)c[aa>>2]=(c[ja>>2]|0)-((a[ba>>0]|0)!=0&1);if((c[aa>>2]|0)>=60){c[T>>2]=(c[aa>>2]|0)+10;sa=c[T>>2]|0;sa=_f(sa,((sa|0)<0)<<31>>31)|0;c[oa>>2]=sa;c[pa>>2]=sa;if(!(c[pa>>2]|0)){qa=92;break}}else{c[T>>2]=70;c[pa>>2]=o}c[p>>2]=(c[pa>>2]|0)+((c[T>>2]|0)-1);if((d[na>>0]|0)==16){sa=R;sa=tR(c[sa>>2]|0,c[sa+4>>2]|0,10,0)|0;c[la>>2]=sa;if(!((c[la>>2]|0)<4?(sa=R,sa=sR(c[sa>>2]|0,c[sa+4>>2]|0,10,0)|0,sa=tR(sa|0,C|0,10,0)|0,!((sa|0)==1&(C|0)==0)):0))c[la>>2]=0;sa=a[46189+((c[la>>2]<<1)+1)>>0]|0;b=(c[p>>2]|0)+-1|0;c[p>>2]=b;a[b>>0]=sa;b=a[46189+(c[la>>2]<<1)>>0]|0;sa=(c[p>>2]|0)+-1|0;c[p>>2]=sa;a[sa>>0]=b}c[s>>2]=46198+(d[(c[L>>2]|0)+4>>0]|0);a[n>>0]=a[(c[L>>2]|0)+1>>0]|0;do{sa=R;sa=tR(c[sa>>2]|0,c[sa+4>>2]|0,d[n>>0]|0,0)|0;sa=a[(c[s>>2]|0)+sa>>0]|0;b=(c[p>>2]|0)+-1|0;c[p>>2]=b;a[b>>0]=sa;b=R;b=sR(c[b>>2]|0,c[b+4>>2]|0,d[n>>0]|0,0)|0;sa=R;c[sa>>2]=b;c[sa+4>>2]=C;sa=R;b=c[sa+4>>2]|0}while(b>>>0>0|(b|0)==0&(c[sa>>2]|0)>>>0>0);c[Q>>2]=(c[pa>>2]|0)+((c[T>>2]|0)-1)-(c[p>>2]|0);c[K>>2]=(c[aa>>2]|0)-(c[Q>>2]|0);while(1){if((c[K>>2]|0)<=0)break;sa=(c[p>>2]|0)+-1|0;c[p>>2]=sa;a[sa>>0]=48;c[K>>2]=(c[K>>2]|0)+-1}if(a[ba>>0]|0){b=a[ba>>0]|0;sa=(c[p>>2]|0)+-1|0;c[p>>2]=sa;a[sa>>0]=b}e:do if((d[x>>0]|0)!=0?(d[(c[L>>2]|0)+5>>0]|0)!=0:0){c[$>>2]=46231+(d[(c[L>>2]|0)+5>>0]|0);while(1){sa=a[c[$>>2]>>0]|0;a[ma>>0]=sa;if(!(sa<<24>>24))break e;b=a[ma>>0]|0;sa=(c[p>>2]|0)+-1|0;c[p>>2]=sa;a[sa>>0]=b;c[$>>2]=(c[$>>2]|0)+1}}while(0);c[Q>>2]=(c[pa>>2]|0)+((c[T>>2]|0)-1)-(c[p>>2]|0)}c[ja>>2]=(c[ja>>2]|0)-(c[Q>>2]|0);if(!((c[ja>>2]|0)<=0|(a[B>>0]|0)!=0))qO(c[j>>2]|0,c[ja>>2]|0,32);aA(c[j>>2]|0,c[p>>2]|0,c[Q>>2]|0);if((c[ja>>2]|0)>0?(d[B>>0]|0)!=0:0)qO(c[j>>2]|0,c[ja>>2]|0,32);if(c[oa>>2]|0){Sf(c[c[j>>2]>>2]|0,c[oa>>2]|0);c[oa>>2]=0}c[k>>2]=(c[k>>2]|0)+1}if((qa|0)==13){aA(c[j>>2]|0,46049,1);i=ra;return}else if((qa|0)==92){eA(c[j>>2]|0,1);i=ra;return}else if((qa|0)==161){eA(c[j>>2]|0,1);i=ra;return}else if((qa|0)==241){eA(c[j>>2]|0,1);i=ra;return}else if((qa|0)==268){i=ra;return}}function eg(b){b=b|0;var e=0,f=0;f=i;i=i+16|0;e=f;c[e>>2]=b;do if(((c[(c[e>>2]|0)+8>>2]|0)!=0?(a[(c[(c[e>>2]|0)+8>>2]|0)+(c[(c[e>>2]|0)+12>>2]|0)>>0]=0,(c[(c[e>>2]|0)+20>>2]|0)>>>0>0):0)?((d[(c[e>>2]|0)+25>>0]|0)&4|0)==0:0){b=yh(c[c[e>>2]>>2]|0,(c[(c[e>>2]|0)+12>>2]|0)+1|0,0)|0;c[(c[e>>2]|0)+8>>2]=b;b=c[e>>2]|0;if(c[(c[e>>2]|0)+8>>2]|0){iR(c[b+8>>2]|0,c[(c[e>>2]|0)+4>>2]|0,(c[(c[e>>2]|0)+12>>2]|0)+1|0)|0;b=(c[e>>2]|0)+25|0;a[b>>0]=d[b>>0]|0|4;break}else{eA(b,1);break}}while(0);i=f;return c[(c[e>>2]|0)+8>>2]|0}function fg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+256|0;h=e+36|0;j=e+32|0;f=e+28|0;g=e;c[h>>2]=a;c[j>>2]=b;c[f>>2]=d;cg(g,0,e+40|0,210,0);dg(g,c[j>>2]|0,c[f>>2]|0);f=c[66]|0;d=c[67]|0;a=c[h>>2]|0;b=eg(g)|0;Ub[f&255](d,a,b);i=e;return}function gg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;h=e+8|0;g=e+4|0;f=e;c[h>>2]=a;c[g>>2]=b;c[f>>2]=d;d=Ob[c[(c[h>>2]|0)+56>>2]&255](c[h>>2]|0,c[g>>2]|0,c[f>>2]|0)|0;i=e;return d|0}function hg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;f=l+28|0;g=l+24|0;h=l+20|0;k=l+16|0;j=l;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[(c[f>>2]|0)+52>>2]=c[g>>2];a=c[f>>2]|0;if(!(c[h>>2]|0)){jg(a,c[g>>2]|0);i=l;return}if((c[a+236>>2]|0)==0?(g=Vh(c[f>>2]|0)|0,c[(c[f>>2]|0)+236>>2]=g,(g|0)==0):0){i=l;return}c[j>>2]=e;c[k>>2]=Zw(c[f>>2]|0,c[h>>2]|0,j)|0;Wh(c[(c[f>>2]|0)+236>>2]|0,-1,c[k>>2]|0,1,170);i=l;return}function ig(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=i;i=i+16|0;d=f;e=f+8|0;g=d;c[g>>2]=a;c[g+4>>2]=b;b=d;c[e>>2]=_f(c[b>>2]|0,c[b+4>>2]|0)|0;if(!(c[e>>2]|0)){g=c[e>>2]|0;i=f;return g|0}kR(c[e>>2]|0,0,c[d>>2]|0)|0;g=c[e>>2]|0;i=f;return g|0}function jg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=i;i=i+16|0;d=e+4|0;f=e;c[d>>2]=a;c[f>>2]=b;c[(c[d>>2]|0)+52>>2]=c[f>>2];if(!(c[(c[d>>2]|0)+236>>2]|0)){i=e;return}PM(c[(c[d>>2]|0)+236>>2]|0);i=e;return}function kg(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;c[(c[(c[d>>2]|0)+4>>2]|0)+4>>2]=c[c[d>>2]>>2];i=b;return}function lg(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!((c[b>>2]|0)!=0&(c[b>>2]|0)!=5)){a=0;a=a&1;i=d;return a|0}a=(c[b>>2]|0)!=6;a=a&1;i=d;return a|0}function mg(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;h=p+24|0;j=p+20|0;l=p+16|0;o=p+12|0;k=p+8|0;m=p+4|0;n=p;c[h>>2]=f;c[j>>2]=g;c[l>>2]=c[(c[h>>2]|0)+4>>2];c[o>>2]=0;kg(c[h>>2]|0);do if((d[(c[h>>2]|0)+8>>0]|0)!=2?(c[j>>2]|0)!=0?1:(d[(c[h>>2]|0)+8>>0]|0)!=1:0){if((c[j>>2]|0)!=0?(e[(c[l>>2]|0)+22>>1]&1|0)!=0:0){c[o>>2]=8;break}c[k>>2]=0;if((c[j>>2]|0)!=0?(d[(c[l>>2]|0)+20>>0]|0)==2:0)g=8;else g=7;a:do if((g|0)==7)if(!(e[(c[l>>2]|0)+22>>1]&64)){if((c[j>>2]|0)>1){c[m>>2]=c[(c[l>>2]|0)+72>>2];while(1){if(!(c[m>>2]|0))break a;f=c[m>>2]|0;if((c[c[m>>2]>>2]|0)!=(c[h>>2]|0))break;c[m>>2]=c[f+12>>2]}c[k>>2]=c[c[f>>2]>>2]}}else g=8;while(0);if((g|0)==8)c[k>>2]=c[c[(c[l>>2]|0)+76>>2]>>2];if(c[k>>2]|0){c[o>>2]=262;break}c[o>>2]=mH(c[h>>2]|0,1,1)|0;if(!(c[o>>2]|0)){m=(c[l>>2]|0)+22|0;b[m>>1]=e[m>>1]&-9;if(!(c[(c[l>>2]|0)+44>>2]|0)){m=(c[l>>2]|0)+22|0;b[m>>1]=e[m>>1]|8}while(1){if((c[(c[l>>2]|0)+12>>2]|0)==0?(m=MM(c[l>>2]|0)|0,c[o>>2]=m,0==(m|0)):0)continue;do if((c[o>>2]|0)==0&(c[j>>2]|0)!=0){if(e[(c[l>>2]|0)+22>>1]&1){c[o>>2]=8;break}k=c[c[l>>2]>>2]|0;m=(c[j>>2]|0)>1&1;c[o>>2]=NM(k,m,Sq(c[c[h>>2]>>2]|0)|0)|0;if(!(c[o>>2]|0))c[o>>2]=VL(c[l>>2]|0)|0}while(0);if(c[o>>2]|0)rB(c[l>>2]|0);if((c[o>>2]&255|0)!=5)break;if(d[(c[l>>2]|0)+20>>0]|0)break;if(!(Yq(c[l>>2]|0)|0))break}if(!(c[o>>2]|0)){if((d[(c[h>>2]|0)+8>>0]|0)==0?(m=(c[l>>2]|0)+40|0,c[m>>2]=(c[m>>2]|0)+1,(a[(c[h>>2]|0)+9>>0]|0)!=0):0){a[(c[h>>2]|0)+32+8>>0]=1;c[(c[h>>2]|0)+32+12>>2]=c[(c[l>>2]|0)+72>>2];c[(c[l>>2]|0)+72>>2]=(c[h>>2]|0)+32}a[(c[h>>2]|0)+8>>0]=(c[j>>2]|0)!=0?2:1;if((d[(c[h>>2]|0)+8>>0]|0)>(d[(c[l>>2]|0)+20>>0]|0))a[(c[l>>2]|0)+20>>0]=a[(c[h>>2]|0)+8>>0]|0;
  39. if(c[j>>2]|0){c[n>>2]=c[(c[l>>2]|0)+12>>2];c[(c[l>>2]|0)+76>>2]=c[h>>2];m=(c[l>>2]|0)+22|0;b[m>>1]=e[m>>1]&-33;if((c[j>>2]|0)>1){m=(c[l>>2]|0)+22|0;b[m>>1]=e[m>>1]|32}m=c[(c[l>>2]|0)+44>>2]|0;if((m|0)!=($q((c[(c[n>>2]|0)+56>>2]|0)+28|0)|0)?(c[o>>2]=Dg(c[(c[n>>2]|0)+72>>2]|0)|0,(c[o>>2]|0)==0):0)Xs((c[(c[n>>2]|0)+56>>2]|0)+28|0,c[(c[l>>2]|0)+44>>2]|0)}}}}while(0);if(!((c[o>>2]|0)==0&(c[j>>2]|0)!=0)){o=c[o>>2]|0;i=p;return o|0}c[o>>2]=SL(c[c[l>>2]>>2]|0,c[(c[c[h>>2]>>2]|0)+500>>2]|0)|0;o=c[o>>2]|0;i=p;return o|0}function ng(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;e=j+12|0;f=j+8|0;g=j+4|0;h=j;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[h>>2]=c[(c[e>>2]|0)+4>>2];kg(c[e>>2]|0);if((c[f>>2]|0)==15){d=LM(c[c[h>>2]>>2]|0)|0;c[c[g>>2]>>2]=d+(c[(c[e>>2]|0)+20>>2]|0);i=j;return}else{d=$q((c[(c[(c[h>>2]|0)+12>>2]|0)+56>>2]|0)+(36+(c[f>>2]<<2))|0)|0;c[c[g>>2]>>2]=d;i=j;return}}function og(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;b=e;c[b>>2]=a;i=e;return(d[(c[b>>2]|0)+8>>0]|0|0)!=0|0}function pg(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c[(c[(c[b>>2]|0)+4>>2]|0)+32>>2]|0}function qg(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;b=e;c[b>>2]=a;i=e;return d[(c[b>>2]|0)+5>>0]|0|0}function rg(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=$E(c[(c[d>>2]|0)+4>>2]|0)|0;i=b;return a|0}function sg(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=i;i=i+48|0;k=t+44|0;l=t+40|0;m=t+36|0;n=t+32|0;u=t+28|0;s=t+24|0;r=t+20|0;p=t+16|0;q=t+12|0;o=t+8|0;h=t+4|0;g=t;c[l>>2]=a;c[m>>2]=b;c[n>>2]=e;c[u>>2]=f;c[s>>2]=0;c[r>>2]=0;c[p>>2]=0;c[q>>2]=c[u>>2]&1;c[o>>2]=0;if((c[m>>2]|0)>>>0<=1&(c[m>>2]|0)==0){c[k>>2]=Lj(49076)|0;u=c[k>>2]|0;i=t;return u|0}do if(c[(c[l>>2]|0)+44>>2]|0){c[s>>2]=c[(c[l>>2]|0)+44>>2];j=23}else{if(((c[o>>2]|0)!=0?(sr(c[l>>2]|0)|0)!=0:0)?(c[s>>2]=xs(c[(c[l>>2]|0)+216>>2]|0,c[m>>2]|0,p)|0,(c[s>>2]|0)!=0):0)break;if((c[o>>2]|0)!=0&(c[p>>2]|0)==0){c[h>>2]=0;e=c[(c[l>>2]|0)+64>>2]|0;u=c[(c[l>>2]|0)+160>>2]|0;u=rR((c[m>>2]|0)-1|0,0,u|0,((u|0)<0)<<31>>31|0)|0;c[s>>2]=$K(e,u,C,c[(c[l>>2]|0)+160>>2]|0,h)|0;if((c[s>>2]|0)==0&(c[h>>2]|0)!=0){if((d[(c[l>>2]|0)+17>>0]|0|0)>1)c[r>>2]=Zr(c[l>>2]|0,c[m>>2]|0)|0;f=c[l>>2]|0;if(!(c[r>>2]|0))c[s>>2]=IM(f,c[m>>2]|0,c[h>>2]|0,r)|0;else{e=c[f+64>>2]|0;u=c[(c[l>>2]|0)+160>>2]|0;u=rR((c[m>>2]|0)-1|0,0,u|0,((u|0)<0)<<31>>31|0)|0;Cs(e,u,C,c[h>>2]|0)|0}if(c[r>>2]|0){c[c[n>>2]>>2]=c[r>>2];c[k>>2]=0;u=c[k>>2]|0;i=t;return u|0}}if(c[s>>2]|0)break}c[g>>2]=cs(c[(c[l>>2]|0)+212>>2]|0,c[m>>2]|0,3)|0;if(!(c[g>>2]|0)){c[s>>2]=JM(c[(c[l>>2]|0)+212>>2]|0,c[m>>2]|0,g)|0;if(c[s>>2]|0)break;if(!(c[g>>2]|0)){c[c[n>>2]>>2]=0;c[r>>2]=0;c[s>>2]=7;break}}j=ds(c[(c[l>>2]|0)+212>>2]|0,c[m>>2]|0,c[g>>2]|0)|0;c[c[n>>2]>>2]=j;c[r>>2]=j;j=23}while(0);do if((j|0)==23){if(c[s>>2]|0){c[r>>2]=0;break}f=c[l>>2]|0;if(!((c[q>>2]|0)!=0?1:(c[(c[r>>2]|0)+16>>2]|0)==0)){u=f+192|0;c[u>>2]=(c[u>>2]|0)+1;c[k>>2]=0;u=c[k>>2]|0;i=t;return u|0}c[(c[r>>2]|0)+16>>2]=f;if((c[m>>2]|0)>>>0<=2147483647?(c[m>>2]|0)!=(((c[381]|0)/(c[(c[l>>2]|0)+160>>2]|0)|0)+1|0):0){if(((d[(c[l>>2]|0)+16>>0]|0|0)==0?!((c[q>>2]|0)!=0?1:(c[(c[l>>2]|0)+28>>2]|0)>>>0<(c[m>>2]|0)>>>0):0)?(c[c[(c[l>>2]|0)+64>>2]>>2]|0)!=0:0){u=(sr(c[l>>2]|0)|0)!=0;if(u&(c[o>>2]|0)==0?(c[s>>2]=xs(c[(c[l>>2]|0)+216>>2]|0,c[m>>2]|0,p)|0,(c[s>>2]|0)!=0):0)break;u=(c[l>>2]|0)+192+4|0;c[u>>2]=(c[u>>2]|0)+1;c[s>>2]=ys(c[r>>2]|0,c[p>>2]|0)|0;if(c[s>>2]|0)break}else{if((c[m>>2]|0)>>>0>(c[(c[l>>2]|0)+164>>2]|0)>>>0){c[s>>2]=13;break}if(c[q>>2]|0){Sj();if((c[m>>2]|0)>>>0<=(c[(c[l>>2]|0)+32>>2]|0)>>>0)gj(c[(c[l>>2]|0)+60>>2]|0,c[m>>2]|0)|0;Ht(c[l>>2]|0,c[m>>2]|0)|0;Tj()}kR(c[(c[r>>2]|0)+4>>2]|0,0,c[(c[l>>2]|0)+160>>2]|0)|0}c[k>>2]=0;u=c[k>>2]|0;i=t;return u|0}c[s>>2]=Lj(49165)|0}while(0);if(c[r>>2]|0)ws(c[r>>2]|0);Bs(c[l>>2]|0);c[c[n>>2]>>2]=0;c[k>>2]=c[s>>2];u=c[k>>2]|0;i=t;return u|0}function tg(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c[(c[b>>2]|0)+4>>2]|0}function ug(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;w=i;i=i+80|0;g=w+68|0;x=w+64|0;h=w+60|0;j=w+56|0;q=w+52|0;p=w+48|0;o=w+44|0;n=w+40|0;l=w+8|0;v=w+36|0;m=w;r=w+32|0;k=w+28|0;t=w+24|0;s=w+20|0;u=w+16|0;c[g>>2]=b;c[x>>2]=d;c[h>>2]=e;c[j>>2]=f;c[q>>2]=Of(c[(c[g>>2]|0)+4>>2]|0)|0;c[p>>2]=pg(c[(c[g>>2]|0)+24>>2]|0)|0;c[o>>2]=pg(c[(c[g>>2]|0)+4>>2]|0)|0;c[n>>2]=(c[p>>2]|0)<(c[o>>2]|0)?c[p>>2]|0:c[o>>2]|0;b=c[p>>2]|0;b=rR(c[x>>2]|0,0,b|0,((b|0)<0)<<31>>31|0)|0;e=l;c[e>>2]=b;c[e+4>>2]=C;c[v>>2]=0;if((c[p>>2]|0)!=(c[o>>2]|0)?(DJ(c[q>>2]|0)|0)!=0:0)c[v>>2]=8;x=l;e=c[p>>2]|0;e=fR(c[x>>2]|0,c[x+4>>2]|0,e|0,((e|0)<0)<<31>>31|0)|0;x=m;c[x>>2]=e;c[x+4>>2]=C;while(1){if(c[v>>2]|0){g=14;break}e=m;d=c[e+4>>2]|0;x=l;b=c[x+4>>2]|0;if(!((d|0)<(b|0)|((d|0)==(b|0)?(c[e>>2]|0)>>>0<(c[x>>2]|0)>>>0:0))){g=14;break}c[r>>2]=0;e=m;x=c[o>>2]|0;x=pR(c[e>>2]|0,c[e+4>>2]|0,x|0,((x|0)<0)<<31>>31|0)|0;c[k>>2]=x+1;if((c[k>>2]|0)!=((((c[381]|0)>>>0)/((c[(c[(c[(c[g>>2]|0)+4>>2]|0)+4>>2]|0)+32>>2]|0)>>>0)|0)+1|0)){x=sg(c[q>>2]|0,c[k>>2]|0,r,0)|0;c[v>>2]=x;if((0==(x|0)?(x=Dg(c[r>>2]|0)|0,c[v>>2]=x,0==(x|0)):0)?(x=m,e=c[p>>2]|0,e=qR(c[x>>2]|0,c[x+4>>2]|0,e|0,((e|0)<0)<<31>>31|0)|0,c[t>>2]=(c[h>>2]|0)+e,c[s>>2]=tg(c[r>>2]|0)|0,e=m,x=c[o>>2]|0,x=qR(c[e>>2]|0,c[e+4>>2]|0,x|0,((x|0)<0)<<31>>31|0)|0,c[u>>2]=(c[s>>2]|0)+x,iR(c[u>>2]|0,c[t>>2]|0,c[n>>2]|0)|0,a[(It(c[r>>2]|0)|0)>>0]=0,x=m,(c[x>>2]|0)==0&(c[x+4>>2]|0)==0&(c[j>>2]|0)==0):0){x=(c[u>>2]|0)+28|0;Xs(x,rg(c[(c[g>>2]|0)+24>>2]|0)|0)}vg(c[r>>2]|0)}e=c[o>>2]|0;x=m;e=gR(c[x>>2]|0,c[x+4>>2]|0,e|0,((e|0)<0)<<31>>31|0)|0;x=m;c[x>>2]=e;c[x+4>>2]=C}if((g|0)==14){i=w;return c[v>>2]|0}return 0}function vg(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!(c[b>>2]|0)){i=d;return}zs(c[b>>2]|0);i=d;return}function wg(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=Lg(Of(c[(c[d>>2]|0)+24>>2]|0)|0)|0;c[(c[d>>2]|0)+44>>2]=c[c[e>>2]>>2];c[c[e>>2]>>2]=c[d>>2];c[(c[d>>2]|0)+40>>2]=1;i=b;return}function xg(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;kg(c[e>>2]|0);c[(c[(c[e>>2]|0)+4>>2]|0)+44>>2]=0;c[b>>2]=VL(c[(c[e>>2]|0)+4>>2]|0)|0;i=d;return c[b>>2]|0}function yg(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;l=i;i=i+32|0;m=l+20|0;f=l+16|0;g=l+12|0;h=l+8|0;j=l+4|0;k=l;c[m>>2]=b;c[f>>2]=d;c[g>>2]=e;c[h>>2]=c[(c[m>>2]|0)+4>>2];kg(c[m>>2]|0);c[j>>2]=c[(c[(c[h>>2]|0)+12>>2]|0)+56>>2];c[k>>2]=Dg(c[(c[(c[h>>2]|0)+12>>2]|0)+72>>2]|0)|0;if(c[k>>2]|0){m=c[k>>2]|0;i=l;return m|0}Xs((c[j>>2]|0)+(36+(c[f>>2]<<2))|0,c[g>>2]|0);if((c[f>>2]|0)!=7){m=c[k>>2]|0;i=l;return m|0}a[(c[h>>2]|0)+18>>0]=c[g>>2];m=c[k>>2]|0;i=l;return m|0}function zg(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;b=f+8|0;d=f+4|0;e=f;c[b>>2]=a;Nf(c[b>>2]|0);c[d>>2]=0;while(1){if((c[d>>2]|0)>=(c[(c[b>>2]|0)+20>>2]|0))break;c[e>>2]=(c[(c[b>>2]|0)+16>>2]|0)+(c[d>>2]<<4);if(c[(c[e>>2]|0)+12>>2]|0)tj(c[(c[e>>2]|0)+12>>2]|0);c[d>>2]=(c[d>>2]|0)+1}e=(c[b>>2]|0)+24|0;c[e>>2]=c[e>>2]&-3;ju(c[b>>2]|0);mB(c[b>>2]|0);i=f;return}function Ag(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;h=n+16|0;j=n+12|0;l=n+8|0;m=n+4|0;k=n;c[h>>2]=f;c[j>>2]=g;c[l>>2]=c[(c[h>>2]|0)+4>>2];f=(c[l>>2]|0)+22|0;b[f>>1]=(e[f>>1]|0)&-17;if((c[j>>2]|0)==1){f=(c[l>>2]|0)+22|0;b[f>>1]=e[f>>1]|0|16}c[m>>2]=mg(c[h>>2]|0,0)|0;do if(!(c[m>>2]|0)){c[k>>2]=c[(c[(c[l>>2]|0)+12>>2]|0)+56>>2];if((d[(c[k>>2]|0)+18>>0]|0|0)==(c[j>>2]&255|0)?(d[(c[k>>2]|0)+19>>0]|0|0)==(c[j>>2]&255|0):0)break;c[m>>2]=mg(c[h>>2]|0,2)|0;if((c[m>>2]|0)==0?(c[m>>2]=Dg(c[(c[(c[l>>2]|0)+12>>2]|0)+72>>2]|0)|0,(c[m>>2]|0)==0):0){a[(c[k>>2]|0)+18>>0]=c[j>>2];a[(c[k>>2]|0)+19>>0]=c[j>>2]}}while(0);f=(c[l>>2]|0)+22|0;b[f>>1]=(e[f>>1]|0)&-17;i=n;return c[m>>2]|0}function Bg(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c[(c[b>>2]|0)+64>>2]|0}function Cg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;c[c[e>>2]>>2]=c[(c[f>>2]|0)+28>>2];i=d;return}function Dg(a){a=a|0;var b=0,d=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;b=g+4|0;f=g;c[b>>2]=a;c[f>>2]=c[(c[b>>2]|0)+16>>2];if(c[(c[f>>2]|0)+44>>2]|0){c[d>>2]=c[(c[f>>2]|0)+44>>2];f=c[d>>2]|0;i=g;return f|0}if(((e[(c[b>>2]|0)+24>>1]|0)&4|0)!=0?(c[(c[f>>2]|0)+28>>2]|0)>>>0>=(c[(c[b>>2]|0)+20>>2]|0)>>>0:0)if(c[(c[f>>2]|0)+104>>2]|0){c[d>>2]=lt(c[b>>2]|0)|0;f=c[d>>2]|0;i=g;return f|0}else{c[d>>2]=0;f=c[d>>2]|0;i=g;return f|0}b=c[b>>2]|0;if((c[(c[f>>2]|0)+156>>2]|0)>>>0>(c[(c[f>>2]|0)+160>>2]|0)>>>0){c[d>>2]=DM(b)|0;f=c[d>>2]|0;i=g;return f|0}else{c[d>>2]=EM(b)|0;f=c[d>>2]|0;i=g;return f|0}return 0}function Eg(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;g=p+28|0;h=p+24|0;j=p+20|0;k=p+16|0;o=p+12|0;m=p+8|0;n=p+4|0;l=p;c[h>>2]=b;c[j>>2]=e;c[k>>2]=f;c[o>>2]=0;f=c[h>>2]|0;if(c[(c[h>>2]|0)+44>>2]|0){c[g>>2]=c[f+44>>2];o=c[g>>2]|0;i=p;return o|0}if((d[f+17>>0]|0)<3){c[g>>2]=0;o=c[g>>2]|0;i=p;return o|0}f=c[h>>2]|0;do if(!(a[(c[h>>2]|0)+16>>0]|0)){e=(sr(f)|0)!=0;f=c[h>>2]|0;if(e){c[m>>2]=qs(c[f+212>>2]|0)|0;c[n>>2]=0;if(!(c[m>>2]|0)){c[o>>2]=sg(c[h>>2]|0,1,n,0)|0;c[m>>2]=c[n>>2];c[(c[m>>2]|0)+12>>2]=0}if(c[m>>2]|0)c[o>>2]=mt(c[h>>2]|0,c[m>>2]|0,c[(c[h>>2]|0)+28>>2]|0,1)|0;vg(c[n>>2]|0);if(c[o>>2]|0)break;rr(c[(c[h>>2]|0)+212>>2]|0);break}c[o>>2]=BM(f,0)|0;if((((c[o>>2]|0)==0?(c[o>>2]=CM(c[h>>2]|0,c[j>>2]|0)|0,(c[o>>2]|0)==0):0)?(c[o>>2]=nt(c[h>>2]|0,0)|0,(c[o>>2]|0)==0):0)?(n=c[h>>2]|0,c[o>>2]=ot(n,qs(c[(c[h>>2]|0)+212>>2]|0)|0)|0,(c[o>>2]|0)==0):0){rr(c[(c[h>>2]|0)+212>>2]|0);if((c[(c[h>>2]|0)+28>>2]|0)>>>0>(c[(c[h>>2]|0)+36>>2]|0)>>>0){c[l>>2]=(c[(c[h>>2]|0)+28>>2]|0)-((c[(c[h>>2]|0)+28>>2]|0)==(((c[381]|0)/(c[(c[h>>2]|0)+160>>2]|0)|0)+1|0)&1);c[o>>2]=ur(c[h>>2]|0,c[l>>2]|0)|0;if((c[o>>2]|0)!=0|(c[k>>2]|0)!=0)break}else if(c[k>>2]|0)break;c[o>>2]=Hg(c[h>>2]|0,c[j>>2]|0)|0}}else _i(c[f+96>>2]|0);while(0);if((c[o>>2]|0)==0?(sr(c[h>>2]|0)|0)==0:0)a[(c[h>>2]|0)+17>>0]=5;c[g>>2]=c[o>>2];o=c[g>>2]|0;i=p;return o|0}function Fg(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i;i=i+32|0;k=g+16|0;j=g+12|0;h=g+8|0;l=g;c[k>>2]=a;c[j>>2]=b;c[h>>2]=d;b=l;c[b>>2]=e;c[b+4>>2]=f;b=l;b=Zb[c[(c[c[k>>2]>>2]|0)+12>>2]&255](c[k>>2]|0,c[j>>2]|0,c[h>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;i=g;return b|0}function Gg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+32|0;e=j+20|0;f=j+8|0;g=j;h=j+16|0;c[e>>2]=a;a=f;c[a>>2]=b;c[a+4>>2]=d;c[h>>2]=Si(c[e>>2]|0,g)|0;if(c[h>>2]|0){h=c[h>>2]|0;i=j;return h|0}b=c[g+4>>2]|0;a=f;d=c[a+4>>2]|0;if(!((b|0)>(d|0)|((b|0)==(d|0)?(c[g>>2]|0)>>>0>(c[a>>2]|0)>>>0:0))){h=c[h>>2]|0;i=j;return h|0}a=f;c[h>>2]=nr(c[e>>2]|0,c[a>>2]|0,c[a+4>>2]|0)|0;h=c[h>>2]|0;i=j;return h|0}function Hg(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;f=k+12|0;g=k+8|0;j=k+4|0;h=k;c[f>>2]=b;c[g>>2]=e;c[j>>2]=0;if(c[c[(c[f>>2]|0)+64>>2]>>2]|0){c[h>>2]=c[g>>2];e=vi(c[(c[f>>2]|0)+64>>2]|0,21,c[h>>2]|0)|0;c[j>>2]=e;c[j>>2]=(c[j>>2]|0)==12?0:e}if(c[j>>2]|0){e=c[j>>2]|0;i=k;return e|0}if(a[(c[f>>2]|0)+7>>0]|0){e=c[j>>2]|0;i=k;return e|0}c[j>>2]=or(c[(c[f>>2]|0)+64>>2]|0,d[(c[f>>2]|0)+12>>0]|0)|0;e=c[j>>2]|0;i=k;return e|0}function Ig(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;c[(c[e>>2]|0)+28>>2]=c[f>>2];i=d;return}function Jg(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;f=l+16|0;g=l+12|0;h=l+8|0;k=l+4|0;j=l;c[g>>2]=b;c[h>>2]=e;if(!(d[(c[g>>2]|0)+8>>0]|0)){c[f>>2]=0;k=c[f>>2]|0;i=l;return k|0}kg(c[g>>2]|0);do if((d[(c[g>>2]|0)+8>>0]|0|0)==2){c[j>>2]=c[(c[g>>2]|0)+4>>2];c[k>>2]=AM(c[c[j>>2]>>2]|0)|0;if(!((c[k>>2]|0)!=0&(c[h>>2]|0)==0)){k=(c[g>>2]|0)+20|0;c[k>>2]=(c[k>>2]|0)+-1;a[(c[j>>2]|0)+20>>0]=1;vM(c[j>>2]|0);break}c[f>>2]=c[k>>2];k=c[f>>2]|0;i=l;return k|0}while(0);wM(c[g>>2]|0);c[f>>2]=0;k=c[f>>2]|0;i=l;return k|0}function Kg(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;f=l+16|0;g=l+12|0;h=l+8|0;k=l+4|0;j=l;c[g>>2]=b;c[h>>2]=e;c[k>>2]=0;if((d[(c[g>>2]|0)+8>>0]|0)==2){c[j>>2]=c[(c[g>>2]|0)+4>>2];kg(c[g>>2]|0);if((a[(c[j>>2]|0)+17>>0]|0)!=0?(c[k>>2]=zM(c[j>>2]|0)|0,(c[k>>2]|0)!=0):0){c[f>>2]=c[k>>2];e=c[f>>2]|0;i=l;return e|0}if(a[(c[j>>2]|0)+19>>0]|0)Ig(c[c[j>>2]>>2]|0,c[(c[j>>2]|0)+44>>2]|0);c[k>>2]=Eg(c[c[j>>2]>>2]|0,c[h>>2]|0,0)|0}c[f>>2]=c[k>>2];e=c[f>>2]|0;i=l;return e|0}function Lg(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return(c[b>>2]|0)+96|0}function Mg(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;g=q+32|0;h=q+28|0;j=q+24|0;n=q+20|0;l=q+16|0;m=q+12|0;o=q+8|0;p=q+4|0;k=q;c[g>>2]=b;c[h>>2]=e;c[j>>2]=f;c[l>>2]=c[(c[g>>2]|0)+4>>2];kg(c[g>>2]|0);if(!(c[h>>2]|0)){f=nH(c[l>>2]|0,0,0)|0;c[h>>2]=f;c[n>>2]=f;if(c[n>>2]|0)c[j>>2]=0}else c[n>>2]=0;if((c[h>>2]|0)!=0?(c[o>>2]=oI(c[g>>2]|0,c[h>>2]|0,c[j>>2]|0)|0,(c[o>>2]|0)!=0):0)c[n>>2]=c[o>>2];if((d[(c[g>>2]|0)+8>>0]|0|0)!=2){f=c[g>>2]|0;wM(f);f=c[n>>2]|0;i=q;return f|0}c[p>>2]=jr(c[c[l>>2]>>2]|0)|0;if(c[p>>2]|0)c[n>>2]=c[p>>2];if(!(nF(c[l>>2]|0,1,m,0)|0)){c[k>>2]=$q((c[(c[m>>2]|0)+56>>2]|0)+28|0)|0;if(!(c[k>>2]|0))Cg(c[c[l>>2]>>2]|0,k);c[(c[l>>2]|0)+44>>2]=c[k>>2];qB(c[m>>2]|0)}a[(c[l>>2]|0)+20>>0]=1;vM(c[l>>2]|0);f=c[g>>2]|0;wM(f);f=c[n>>2]|0;i=q;return f|0}function Ng(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+48|0;d=n+32|0;e=n+28|0;f=n+24|0;j=n+20|0;m=n+16|0;k=n+12|0;g=n+8|0;h=n+4|0;l=n;c[d>>2]=b;if((c[(c[d>>2]|0)+76>>2]|0)!=1691352191){i=n;return}if(eu(c[d>>2]|0)|0){i=n;return}qI(c[d>>2]|0,0);rI(c[d>>2]|0);c[f>>2]=0;while(1){if((c[f>>2]|0)>=(c[(c[d>>2]|0)+20>>2]|0))break;c[j>>2]=(c[(c[d>>2]|0)+16>>2]|0)+(c[f>>2]<<4);if((c[(c[j>>2]|0)+4>>2]|0)!=0?(lB(c[(c[j>>2]|0)+4>>2]|0)|0,c[(c[j>>2]|0)+4>>2]=0,(c[f>>2]|0)!=1):0)c[(c[j>>2]|0)+12>>2]=0;c[f>>2]=(c[f>>2]|0)+1}if(c[(c[(c[d>>2]|0)+16>>2]|0)+16+12>>2]|0)tj(c[(c[(c[d>>2]|0)+16>>2]|0)+16+12>>2]|0);ju(c[d>>2]|0);mB(c[d>>2]|0);c[f>>2]=0;while(1){if((c[f>>2]|0)>=23)break;c[g>>2]=c[(c[d>>2]|0)+340+(c[f>>2]<<2)>>2];while(1){if(!(c[g>>2]|0))break;c[k>>2]=c[(c[g>>2]|0)+24>>2];while(1){if(!(c[g>>2]|0))break;bu(c[d>>2]|0,c[g>>2]|0);c[m>>2]=c[(c[g>>2]|0)+8>>2];Sf(c[d>>2]|0,c[g>>2]|0);c[g>>2]=c[m>>2]}c[g>>2]=c[k>>2]}c[f>>2]=(c[f>>2]|0)+1}c[e>>2]=c[(c[d>>2]|0)+432+8>>2];while(1){if(!(c[e>>2]|0))break;c[h>>2]=c[(c[e>>2]|0)+8>>2];c[f>>2]=0;while(1){if((c[f>>2]|0)>=3)break;if(c[(c[h>>2]|0)+((c[f>>2]|0)*20|0)+16>>2]|0)Qb[c[(c[h>>2]|0)+((c[f>>2]|0)*20|0)+16>>2]&255](c[(c[h>>2]|0)+((c[f>>2]|0)*20|0)+8>>2]|0);c[f>>2]=(c[f>>2]|0)+1}Sf(c[d>>2]|0,c[h>>2]|0);c[e>>2]=c[c[e>>2]>>2]}vj((c[d>>2]|0)+432|0);c[e>>2]=c[(c[d>>2]|0)+312+8>>2];while(1){if(!(c[e>>2]|0))break;c[l>>2]=c[(c[e>>2]|0)+8>>2];if(c[(c[l>>2]|0)+12>>2]|0)Qb[c[(c[l>>2]|0)+12>>2]&255](c[(c[l>>2]|0)+8>>2]|0);BH(c[d>>2]|0,c[l>>2]|0);Sf(c[d>>2]|0,c[l>>2]|0);c[e>>2]=c[c[e>>2]>>2]}vj((c[d>>2]|0)+312|0);jg(c[d>>2]|0,0);$g(c[(c[d>>2]|0)+236>>2]|0);c[(c[d>>2]|0)+76>>2]=-1254786768;Sf(c[d>>2]|0,c[(c[(c[d>>2]|0)+16>>2]|0)+16+12>>2]|0);c[(c[d>>2]|0)+76>>2]=-1623446221;if(a[(c[d>>2]|0)+248+6>>0]|0)Kd(c[(c[d>>2]|0)+248+32>>2]|0);Kd(c[d>>2]|0);i=n;return}function Og(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;b=d+8|0;e=d+4|0;c[e>>2]=a;if(!(c[c[e>>2]>>2]|0)){Rd(21,45447,d);c[b>>2]=1;e=c[b>>2]|0;i=d;return e|0}else{c[b>>2]=0;e=c[b>>2]|0;i=d;return e|0}return 0}function Pg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+16|0;f=d+12|0;e=d+8|0;h=d;c[f>>2]=a;c[e>>2]=b;IH(c[c[f>>2]>>2]|0,h)|0;g=c[(c[f>>2]|0)+184>>2]|0;f=c[(c[f>>2]|0)+188>>2]|0;a=c[(c[e>>2]|0)+168>>2]|0;b=(c[e>>2]|0)+128|0;b=fR(c[h>>2]|0,c[h+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=rR(b|0,C|0,1e6,0)|0;_b[g&255](f,a,b,C);b=(c[e>>2]|0)+128|0;c[b>>2]=0;c[b+4>>2]=0;i=d;return}function Qg(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;c[d>>2]=0;if(!((c[(c[b>>2]|0)+40>>2]|0)!=-1108210269?(c[(c[b>>2]|0)+40>>2]|0)!=1369188723:0))c[d>>2]=Sg(c[b>>2]|0)|0;Tu(c[b>>2]|0);i=e;return c[d>>2]|0}function Rg(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+8|0;f=h+4|0;g=h;c[f>>2]=a;c[g>>2]=b;if((c[g>>2]|0)==3082?1:(d[(c[f>>2]|0)+65>>0]|0|0)!=0){c[e>>2]=uM(c[f>>2]|0)|0;b=c[e>>2]|0;i=h;return b|0}else{c[e>>2]=c[g>>2]&c[(c[f>>2]|0)+56>>2];b=c[e>>2]|0;i=h;return b|0}return 0}function Sg(a){a=a|0;var d=0,f=0,g=0,h=0,j=0,k=0;h=i;i=i+16|0;g=h;d=h+8|0;f=h+4|0;c[d>>2]=a;c[f>>2]=c[c[d>>2]>>2];TH(c[d>>2]|0)|0;a=c[d>>2]|0;if((c[(c[d>>2]|0)+76>>2]|0)>=0){MH(a)|0;Sf(c[f>>2]|0,c[(c[d>>2]|0)+44>>2]|0);c[(c[d>>2]|0)+44>>2]=0;if((e[(c[d>>2]|0)+88>>1]|0)>>>4&1){g=(c[d>>2]|0)+88|0;b[g>>1]=b[g>>1]&-9|8}}else if((c[a+80>>2]|0)!=0?((e[(c[d>>2]|0)+88>>1]|0)>>>3&1|0)!=0:0){k=c[f>>2]|0;j=c[(c[d>>2]|0)+80>>2]|0;a=(c[(c[d>>2]|0)+44>>2]|0)!=0?19255:0;c[g>>2]=c[(c[d>>2]|0)+44>>2];hg(k,j,a,g);Sf(c[f>>2]|0,c[(c[d>>2]|0)+44>>2]|0);c[(c[d>>2]|0)+44>>2]=0}tM(c[d>>2]|0);k=(c[d>>2]|0)+136|0;c[k>>2]=0;c[k+4>>2]=0;c[(c[d>>2]|0)+40>>2]=649915045;i=h;return c[(c[d>>2]|0)+80>>2]&c[(c[f>>2]|0)+56>>2]|0}function Tg(b){b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;c[(c[e>>2]|0)+40>>2]=-1108210269;c[(c[e>>2]|0)+76>>2]=-1;c[(c[e>>2]|0)+80>>2]=0;a[(c[e>>2]|0)+86>>0]=2;c[(c[e>>2]|0)+92>>2]=0;c[(c[e>>2]|0)+72>>2]=1;a[(c[e>>2]|0)+87>>0]=-1;c[(c[e>>2]|0)+104>>2]=0;b=(c[e>>2]|0)+144|0;c[b>>2]=0;c[b+4>>2]=0;i=d;return}function Ug(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(((e[(c[b>>2]|0)+8>>1]|0)&9312|0)==0?(c[(c[b>>2]|0)+24>>2]|0)==0:0){i=d;return}sM(c[b>>2]|0);i=d;return}function Vg(a){a=a|0;var d=0,f=0,g=0,h=0;h=i;i=i+16|0;d=h+8|0;f=h+4|0;g=h;c[f>>2]=a;do if((e[(c[f>>2]|0)+8>>1]|0)&16384){a=(c[(c[f>>2]|0)+12>>2]|0)+(c[c[f>>2]>>2]|0)|0;c[g>>2]=a;c[g>>2]=(c[g>>2]|0)<=0?1:a;if(!(ux(c[f>>2]|0,c[g>>2]|0,1)|0)){kR((c[(c[f>>2]|0)+16>>2]|0)+(c[(c[f>>2]|0)+12>>2]|0)|0,0,c[c[f>>2]>>2]|0)|0;a=(c[f>>2]|0)+12|0;c[a>>2]=(c[a>>2]|0)+(c[c[f>>2]>>2]|0);a=(c[f>>2]|0)+8|0;b[a>>1]=(e[a>>1]|0)&-16897;break}c[d>>2]=7;a=c[d>>2]|0;i=h;return a|0}while(0);c[d>>2]=0;a=c[d>>2]|0;i=h;return a|0}function Wg(b,f){b=b|0;f=f|0;var g=0,h=0,j=0,k=0;k=i;i=i+16|0;g=k+4|0;h=k;j=k+8|0;c[h>>2]=b;a[j>>0]=f;do if(c[h>>2]|0){if(((e[(c[h>>2]|0)+8>>1]|0)&514|0)==514?(d[(c[h>>2]|0)+10>>0]|0|0)==(d[j>>0]|0|0):0){c[g>>2]=c[(c[h>>2]|0)+16>>2];break}if((e[(c[h>>2]|0)+8>>1]|0)&1){c[g>>2]=0;break}else{c[g>>2]=rM(c[h>>2]|0,a[j>>0]|0)|0;break}}else c[g>>2]=0;while(0);i=k;return c[g>>2]|0}function Xg(b,f){b=b|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;l=i;i=i+16|0;j=l+8|0;g=l+4|0;h=l+12|0;k=l;c[g>>2]=b;a[h>>0]=f;c[k>>2]=c[g>>2];if(((e[(c[k>>2]|0)+8>>1]|0)&2|0)!=0?(d[(c[g>>2]|0)+10>>0]|0|0)==(d[h>>0]|0|0):0){c[j>>2]=c[(c[k>>2]|0)+12>>2];k=c[j>>2]|0;i=l;return k|0}b=e[(c[k>>2]|0)+8>>1]|0;if((e[(c[k>>2]|0)+8>>1]|0)&16){f=c[(c[k>>2]|0)+12>>2]|0;if(b&16384){c[j>>2]=f+(c[c[k>>2]>>2]|0);k=c[j>>2]|0;i=l;return k|0}else{c[j>>2]=f;k=c[j>>2]|0;i=l;return k|0}}else if(b&1){c[j>>2]=0;k=c[j>>2]|0;i=l;return k|0}else{c[j>>2]=qM(c[g>>2]|0,a[h>>0]|0)|0;k=c[j>>2]|0;i=l;return k|0}return 0}function Yg(b){b=b|0;var d=0,f=0,g=0,j=0,k=0,l=0.0;k=i;i=i+32|0;f=k+8|0;g=k+16|0;j=k;c[g>>2]=b;d=c[g>>2]|0;if((e[(c[g>>2]|0)+8>>1]|0)&8){h[f>>3]=+h[d>>3];l=+h[f>>3];i=k;return+l}b=c[g>>2]|0;if((e[d+8>>1]|0)&4){j=b;h[f>>3]=+((c[j>>2]|0)>>>0)+4294967296.0*+(c[j+4>>2]|0);l=+h[f>>3];i=k;return+l}if((e[b+8>>1]|0)&18){h[j>>3]=0.0;Ky(c[(c[g>>2]|0)+16>>2]|0,j,c[(c[g>>2]|0)+12>>2]|0,a[(c[g>>2]|0)+10>>0]|0)|0;h[f>>3]=+h[j>>3];l=+h[f>>3];i=k;return+l}else{h[f>>3]=0.0;l=+h[f>>3];i=k;return+l}return 0.0}function Zg(b){b=b|0;var d=0,f=0,g=0,j=0,k=0;k=i;i=i+32|0;d=k+8|0;f=k+20|0;g=k+16|0;j=k;c[f>>2]=b;c[g>>2]=e[(c[f>>2]|0)+8>>1];do if(!(c[g>>2]&4)){if(c[g>>2]&8){b=qx(+h[c[f>>2]>>3])|0;j=d;c[j>>2]=b;c[j+4>>2]=C;break}if(c[g>>2]&18){g=j;c[g>>2]=0;c[g+4>>2]=0;Hi(c[(c[f>>2]|0)+16>>2]|0,j,c[(c[f>>2]|0)+12>>2]|0,a[(c[f>>2]|0)+10>>0]|0)|0;g=j;b=c[g+4>>2]|0;j=d;c[j>>2]=c[g>>2];c[j+4>>2]=b;break}else{j=d;c[j>>2]=0;c[j+4>>2]=0;break}}else{g=c[f>>2]|0;b=c[g+4>>2]|0;j=d;c[j>>2]=c[g>>2];c[j+4>>2]=b}while(0);j=d;C=c[j+4>>2]|0;i=k;return c[j>>2]|0}function _g(d){d=d|0;var f=0,g=0,h=0,j=0;j=i;i=i+16|0;f=j+8|0;g=j+4|0;h=j;c[g>>2]=d;if((e[(c[g>>2]|0)+8>>1]|0)&16384)Vg(c[g>>2]|0)|0;c[h>>2]=e[(c[g>>2]|0)+8>>1];do if(c[h>>2]&18){if((c[(c[g>>2]|0)+24>>2]|0)!=0?(c[(c[g>>2]|0)+16>>2]|0)==(c[(c[g>>2]|0)+20>>2]|0):0)break;if(!(ux(c[g>>2]|0,(c[(c[g>>2]|0)+12>>2]|0)+2|0,1)|0)){a[(c[(c[g>>2]|0)+16>>2]|0)+(c[(c[g>>2]|0)+12>>2]|0)>>0]=0;a[(c[(c[g>>2]|0)+16>>2]|0)+((c[(c[g>>2]|0)+12>>2]|0)+1)>>0]=0;d=(c[g>>2]|0)+8|0;b[d>>1]=e[d>>1]|0|512;break}c[f>>2]=7;d=c[f>>2]|0;i=j;return d|0}while(0);d=(c[g>>2]|0)+8|0;b[d>>1]=(e[d>>1]|0)&-4097;c[f>>2]=0;d=c[f>>2]|0;i=j;return d|0}function $g(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!(c[b>>2]|0)){i=d;return}Ug(c[b>>2]|0);Sf(c[(c[b>>2]|0)+32>>2]|0,c[b>>2]|0);i=d;return}function ah(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;j=i;i=i+32|0;h=j+12|0;n=j+8|0;m=j+4|0;l=j+16|0;k=j;c[h>>2]=b;c[n>>2]=d;c[m>>2]=e;a[l>>0]=f;c[k>>2]=g;if((dh(c[c[h>>2]>>2]|0,c[n>>2]|0,c[m>>2]|0,a[l>>0]|0,c[k>>2]|0)|0)!=18){i=j;return}se(c[h>>2]|0);i=j;return}function bh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+8|0;f=h+4|0;g=h;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;if(!((c[f>>2]|0)==0|(c[f>>2]|0)==(-1|0)))Qb[c[f>>2]&255](c[e>>2]|0);if(!(c[g>>2]|0)){i=h;return 18}se(c[g>>2]|0);i=h;return 18}function ch(a,d){a=a|0;d=+d;var e=0,f=0,g=0;g=i;i=i+16|0;e=g+8|0;f=g;c[e>>2]=a;h[f>>3]=d;fh(c[e>>2]|0);if(HF(+h[f>>3])|0){i=g;return}h[c[e>>2]>>3]=+h[f>>3];b[(c[e>>2]|0)+8>>1]=8;i=g;return}function dh(f,g,h,j,k){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;u=i;i=i+48|0;n=u+28|0;o=u+24|0;l=u+20|0;v=u+16|0;p=u+34|0;q=u+12|0;t=u+8|0;s=u+4|0;r=u+32|0;m=u;c[o>>2]=f;c[l>>2]=g;c[v>>2]=h;a[p>>0]=j;c[q>>2]=k;c[t>>2]=c[v>>2];b[r>>1]=0;j=c[o>>2]|0;if(!(c[l>>2]|0)){fh(j);c[n>>2]=0;v=c[n>>2]|0;i=u;return v|0}if(c[j+32>>2]|0)c[s>>2]=c[(c[(c[o>>2]|0)+32>>2]|0)+88>>2];else c[s>>2]=1e9;b[r>>1]=(d[p>>0]|0)==0?16:2;if((c[t>>2]|0)<0){a:do if((d[p>>0]|0)==1){c[t>>2]=If(c[l>>2]|0)|0;if((c[t>>2]|0)>(c[s>>2]|0))c[t>>2]=(c[s>>2]|0)+1}else{c[t>>2]=0;while(1){if((c[t>>2]|0)>(c[s>>2]|0))break a;if(!(a[(c[l>>2]|0)+(c[t>>2]|0)>>0]|a[(c[l>>2]|0)+((c[t>>2]|0)+1)>>0]))break a;c[t>>2]=(c[t>>2]|0)+2}}while(0);b[r>>1]=e[r>>1]|512}do if((c[q>>2]|0)!=(-1|0)){v=(c[q>>2]|0)==170;Ug(c[o>>2]|0);j=c[l>>2]|0;c[(c[o>>2]|0)+16>>2]=j;if(v){c[(c[o>>2]|0)+20>>2]=j;v=$t(c[(c[o>>2]|0)+32>>2]|0,c[(c[o>>2]|0)+20>>2]|0)|0;c[(c[o>>2]|0)+24>>2]=v;break}else{c[(c[o>>2]|0)+36>>2]=c[q>>2];b[r>>1]=e[r>>1]|((c[q>>2]|0)==0?2048:1024);break}}else{c[m>>2]=c[t>>2];if(e[r>>1]&512)c[m>>2]=(c[m>>2]|0)+((d[p>>0]|0)==1?1:2);if((c[t>>2]|0)>(c[s>>2]|0)){c[n>>2]=18;v=c[n>>2]|0;i=u;return v|0}if(!(tx(c[o>>2]|0,(c[m>>2]|0)>32?c[m>>2]|0:32)|0)){iR(c[(c[o>>2]|0)+16>>2]|0,c[l>>2]|0,c[m>>2]|0)|0;break}c[n>>2]=7;v=c[n>>2]|0;i=u;return v|0}while(0);c[(c[o>>2]|0)+12>>2]=c[t>>2];b[(c[o>>2]|0)+8>>1]=b[r>>1]|0;a[(c[o>>2]|0)+10>>0]=(d[p>>0]|0)==0?1:d[p>>0]|0;if((d[(c[o>>2]|0)+10>>0]|0)!=1?(pM(c[o>>2]|0)|0)!=0:0){c[n>>2]=7;v=c[n>>2]|0;i=u;return v|0}if((c[t>>2]|0)>(c[s>>2]|0)){c[n>>2]=18;v=c[n>>2]|0;i=u;return v|0}else{c[n>>2]=0;v=c[n>>2]|0;i=u;return v|0}return 0}function eh(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,j=0;j=i;i=i+16|0;g=j+8|0;h=j;c[g>>2]=a;a=h;c[a>>2]=d;c[a+4>>2]=f;if((e[(c[g>>2]|0)+8>>1]|0)&9312){a=h;oM(c[g>>2]|0,c[a>>2]|0,c[a+4>>2]|0);i=j;return}else{f=h;h=c[f+4>>2]|0;a=c[g>>2]|0;c[a>>2]=c[f>>2];c[a+4>>2]=h;b[(c[g>>2]|0)+8>>1]=4;i=j;return}}function fh(a){a=a|0;var d=0,f=0;d=i;i=i+16|0;f=d;c[f>>2]=a;a=c[f>>2]|0;if((e[(c[f>>2]|0)+8>>1]|0)&9312){DF(a);i=d;return}else{b[a+8>>1]=1;i=d;return}}function gh(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0;j=i;i=i+16|0;f=j+8|0;g=j+4|0;h=j;c[f>>2]=a;c[g>>2]=d;c[h>>2]=0;if((e[(c[f>>2]|0)+8>>1]|0)&9312)DF(c[f>>2]|0);a=c[f>>2]|0;d=c[g>>2]|0;c[a>>2]=c[d>>2];c[a+4>>2]=c[d+4>>2];c[a+8>>2]=c[d+8>>2];c[a+12>>2]=c[d+12>>2];c[a+16>>2]=c[d+16>>2];a=(c[f>>2]|0)+8|0;b[a>>1]=(e[a>>1]|0)&-1025;if(!((e[(c[f>>2]|0)+8>>1]|0)&18)){h=c[h>>2]|0;i=j;return h|0}if((e[(c[g>>2]|0)+8>>1]|0)&2048){h=c[h>>2]|0;i=j;return h|0}a=(c[f>>2]|0)+8|0;b[a>>1]=e[a>>1]|0|4096;c[h>>2]=_g(c[f>>2]|0)|0;h=c[h>>2]|0;i=j;return h|0}function hh(d,e){d=d|0;e=e|0;var f=0,g=0,h=0;h=i;i=i+16|0;f=h+4|0;g=h;c[f>>2]=d;c[g>>2]=e;Ug(c[f>>2]|0);b[(c[f>>2]|0)+8>>1]=16400;c[(c[f>>2]|0)+12>>2]=0;if((c[g>>2]|0)<0)c[g>>2]=0;c[c[f>>2]>>2]=c[g>>2];a[(c[f>>2]|0)+10>>0]=1;c[(c[f>>2]|0)+16>>2]=0;i=h;return}function ih(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;c[d>>2]=44821;if((c[b>>2]|0)!=516){c[b>>2]=c[b>>2]&255;if((c[b>>2]|0)>=0&(c[b>>2]|0)<27?(c[7072+(c[b>>2]<<2)>>2]|0)!=0:0)c[d>>2]=c[7072+(c[b>>2]<<2)>>2]}else c[d>>2]=44835;i=e;return c[d>>2]|0}function jh(b){b=b|0;var e=0,f=0;f=i;i=i+16|0;e=f;c[e>>2]=b;if(d[(c[e>>2]|0)+65>>0]|0){i=f;return}if(d[(c[e>>2]|0)+66>>0]|0){i=f;return}a[(c[e>>2]|0)+65>>0]=1;if((c[(c[e>>2]|0)+160>>2]|0)>0)c[(c[e>>2]|0)+240>>2]=1;b=(c[e>>2]|0)+248|0;c[b>>2]=(c[b>>2]|0)+1;i=f;return}function kh(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+8|0;d=e+4|0;c[d>>2]=a;if(!(c[d>>2]|0)){Rd(21,44781,e);c[b>>2]=1;a=c[b>>2]|0;i=e;return a|0}else{c[b>>2]=Og(c[d>>2]|0)|0;a=c[b>>2]|0;i=e;return a|0}return 0}function lh(d){d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+16|0;f=k+12|0;g=k+8|0;h=k+4|0;j=k;c[g>>2]=d;if((c[(c[g>>2]|0)+40>>2]|0)!=-1108210269)Zd(c[g>>2]|0)|0;c[h>>2]=c[c[g>>2]>>2];d=c[g>>2]|0;if(a[(c[h>>2]|0)+65>>0]|0){c[d+80>>2]=7;c[f>>2]=7;j=c[f>>2]|0;i=k;return j|0}if((c[d+76>>2]|0)<=0?((e[(c[g>>2]|0)+88>>1]|0)>>>3&1|0)!=0:0){c[(c[g>>2]|0)+80>>2]=17;c[j>>2]=1}else{if((c[(c[g>>2]|0)+76>>2]|0)<0){if(!(c[(c[h>>2]|0)+148>>2]|0))c[(c[h>>2]|0)+240>>2]=0;if(((c[(c[h>>2]|0)+184>>2]|0)!=0?(a[(c[h>>2]|0)+140+5>>0]|0)==0:0)?(c[(c[g>>2]|0)+168>>2]|0)!=0:0)IH(c[c[h>>2]>>2]|0,(c[g>>2]|0)+128|0)|0;d=(c[h>>2]|0)+148|0;c[d>>2]=(c[d>>2]|0)+1;if(!((e[(c[g>>2]|0)+88>>1]|0)>>>6&1)){d=(c[h>>2]|0)+156|0;c[d>>2]=(c[d>>2]|0)+1}if((e[(c[g>>2]|0)+88>>1]|0)>>>7&1){d=(c[h>>2]|0)+152|0;c[d>>2]=(c[d>>2]|0)+1}c[(c[g>>2]|0)+76>>2]=0}if(b[(c[g>>2]|0)+88>>1]&3)c[j>>2]=JH(c[g>>2]|0)|0;else{d=(c[h>>2]|0)+160|0;c[d>>2]=(c[d>>2]|0)+1;c[j>>2]=KH(c[g>>2]|0)|0;d=(c[h>>2]|0)+160|0;c[d>>2]=(c[d>>2]|0)+-1}if((c[j>>2]|0)!=100?(d=(c[g>>2]|0)+128|0,l=c[d+4>>2]|0,(l|0)>0|(l|0)==0&(c[d>>2]|0)>>>0>0):0)Pg(c[h>>2]|0,c[g>>2]|0);if((c[j>>2]|0)==101?(l=LH(c[h>>2]|0)|0,c[(c[g>>2]|0)+80>>2]=l,(c[(c[g>>2]|0)+80>>2]|0)!=0):0)c[j>>2]=1;c[(c[h>>2]|0)+52>>2]=c[j>>2];if(7==(Rg(c[c[g>>2]>>2]|0,c[(c[g>>2]|0)+80>>2]|0)|0))c[(c[g>>2]|0)+80>>2]=7}if(((c[j>>2]|0)!=100?((e[(c[g>>2]|0)+88>>1]|0)>>>8&1|0)!=0:0)&(c[j>>2]|0)!=101)c[j>>2]=MH(c[g>>2]|0)|0;c[f>>2]=c[j>>2]&c[(c[h>>2]|0)+56>>2];l=c[f>>2]|0;i=k;return l|0}function mh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0;h=i;i=i+32|0;b=h+20|0;d=h+16|0;g=h+12|0;f=h+8|0;j=h+4|0;e=h;c[d>>2]=a;c[j>>2]=Xd(c[d>>2]|0)|0;c[e>>2]=wA(c[d>>2]|0)|0;c[g>>2]=Rh(c[e>>2]|0,c[j>>2]|0,-1,0,c[d>>2]|0,f,0)|0;if(!(c[g>>2]|0)){GH(c[f>>2]|0,c[d>>2]|0);wh(c[f>>2]|0,c[d>>2]|0)|0;HH(c[f>>2]|0);Qg(c[f>>2]|0)|0;c[b>>2]=0;j=c[b>>2]|0;i=h;return j|0}if((c[g>>2]|0)==7)jh(c[e>>2]|0);c[b>>2]=c[g>>2];j=c[b>>2]|0;i=h;return j|0}function nh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+32|0;d=j+16|0;e=j+12|0;f=j+8|0;h=j+4|0;g=j;c[e>>2]=a;c[f>>2]=b;if(!(c[f>>2]|0)){c[d>>2]=0;h=c[d>>2]|0;i=j;return h|0}c[g>>2]=(If(c[f>>2]|0)|0)+1;b=c[g>>2]|0;c[h>>2]=yh(c[e>>2]|0,b,((b|0)<0)<<31>>31)|0;if(c[h>>2]|0)iR(c[h>>2]|0,c[f>>2]|0,c[g>>2]|0)|0;c[d>>2]=c[h>>2];h=c[d>>2]|0;i=j;return h|0}function oh(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+8|0;f=h+4|0;g=h;c[e>>2]=a;c[f>>2]=d;c[g>>2]=c[(c[e>>2]|0)+8>>2];d=c[g>>2]|0;if((c[f>>2]|0)>0){tx(d,c[f>>2]|0)|0;b[(c[g>>2]|0)+8>>1]=8192;c[c[g>>2]>>2]=c[(c[e>>2]|0)+4>>2];if(c[(c[g>>2]|0)+16>>2]|0)kR(c[(c[g>>2]|0)+16>>2]|0,0,c[f>>2]|0)|0}else{fh(d);c[(c[g>>2]|0)+16>>2]=0}i=h;return c[(c[g>>2]|0)+16>>2]|0}function ph(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+16|0;h=g+12|0;e=g;f=g+8|0;c[h>>2]=a;a=e;c[a>>2]=b;c[a+4>>2]=d;a=e;c[f>>2]=yh(c[h>>2]|0,c[a>>2]|0,c[a+4>>2]|0)|0;if(!(c[f>>2]|0)){h=c[f>>2]|0;i=g;return h|0}kR(c[f>>2]|0,0,c[e>>2]|0)|0;h=c[f>>2]|0;i=g;return h|0}function qh(a,b){a=a|0;b=b|0;var d=0,f=0,g=0,h=0,j=0;h=i;i=i+16|0;j=h+12|0;d=h+8|0;g=h+4|0;f=h;c[j>>2]=a;c[d>>2]=b;c[g>>2]=c[j>>2];if(((c[g>>2]|0)!=0?(c[(c[g>>2]|0)+20>>2]|0)!=0:0)?(c[d>>2]|0)>=0?(c[d>>2]|0)<(e[(c[g>>2]|0)+84>>1]|0|0):0:0){c[f>>2]=(c[(c[g>>2]|0)+20>>2]|0)+((c[d>>2]|0)*40|0);j=c[f>>2]|0;i=h;return j|0}if((c[g>>2]|0)!=0?(c[c[g>>2]>>2]|0)!=0:0)jg(c[c[g>>2]>>2]|0,25);c[f>>2]=FH()|0;j=c[f>>2]|0;i=h;return j|0}function rh(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;c[b>>2]=c[e>>2];if(!(c[b>>2]|0)){i=d;return}e=Rg(c[c[b>>2]>>2]|0,c[(c[b>>2]|0)+80>>2]|0)|0;c[(c[b>>2]|0)+80>>2]=e;i=d;return}function sh(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=i;i=i+32|0;p=o+28|0;g=o+24|0;h=o+20|0;j=o+16|0;n=o+12|0;m=o+8|0;l=o+4|0;k=o;c[p>>2]=b;c[g>>2]=d;c[h>>2]=e;c[j>>2]=f;c[n>>2]=0;c[m>>2]=c[p>>2];c[k>>2]=c[c[m>>2]>>2];c[l>>2]=ye(c[p>>2]|0)|0;if(!((c[g>>2]|0)>=0?(c[g>>2]|0)<(c[l>>2]|0):0)){p=c[n>>2]|0;i=o;return p|0}p=_(c[j>>2]|0,c[l>>2]|0)|0;c[g>>2]=(c[g>>2]|0)+p;c[n>>2]=Tb[c[h>>2]&255]((c[(c[m>>2]|0)+16>>2]|0)+((c[g>>2]|0)*40|0)|0)|0;if(!(a[(c[k>>2]|0)+65>>0]|0)){p=c[n>>2]|0;i=o;return p|0}li(c[k>>2]|0);c[n>>2]=0;p=c[n>>2]|0;i=o;return p|0}function th(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=i;i=i+48|0;t=s+28|0;k=s+24|0;l=s+20|0;m=s+16|0;n=s+12|0;o=s+32|0;p=s+8|0;q=s+4|0;r=s;c[t>>2]=b;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;c[n>>2]=h;a[o>>0]=j;c[p>>2]=c[t>>2];c[r>>2]=uh(c[p>>2]|0,c[k>>2]|0)|0;if(c[r>>2]|0){if(!((c[n>>2]|0)!=0&(c[n>>2]|0)!=(-1|0))){t=c[r>>2]|0;i=s;return t|0}Qb[c[n>>2]&255](c[l>>2]|0);t=c[r>>2]|0;i=s;return t|0}if(!(c[l>>2]|0)){t=c[r>>2]|0;i=s;return t|0}c[q>>2]=(c[(c[p>>2]|0)+60>>2]|0)+(((c[k>>2]|0)-1|0)*40|0);c[r>>2]=dh(c[q>>2]|0,c[l>>2]|0,c[m>>2]|0,a[o>>0]|0,c[n>>2]|0)|0;if((c[r>>2]|0)==0?(d[o>>0]|0|0)!=0:0)c[r>>2]=Zt(c[q>>2]|0,d[(c[c[p>>2]>>2]|0)+62>>0]|0)|0;jg(c[c[p>>2]>>2]|0,c[r>>2]|0);c[r>>2]=Rg(c[c[p>>2]>>2]|0,c[r>>2]|0)|0;t=c[r>>2]|0;i=s;return t|0}function uh(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;k=m;f=m+16|0;g=m+12|0;h=m+8|0;j=m+4|0;c[g>>2]=a;c[h>>2]=d;if(kh(c[g>>2]|0)|0){c[f>>2]=Kf(73485)|0;l=c[f>>2]|0;i=m;return l|0}if((c[(c[g>>2]|0)+40>>2]|0)==-1108210269?(c[(c[g>>2]|0)+76>>2]|0)<0:0){if((c[h>>2]|0)>=1?(c[h>>2]|0)<=(b[(c[g>>2]|0)+68>>1]|0):0){c[h>>2]=(c[h>>2]|0)+-1;c[j>>2]=(c[(c[g>>2]|0)+60>>2]|0)+((c[h>>2]|0)*40|0);Ug(c[j>>2]|0);b[(c[j>>2]|0)+8>>1]=1;jg(c[c[g>>2]>>2]|0,0);do if((e[(c[g>>2]|0)+88>>1]|0)>>>8&1){if(!((c[h>>2]|0)<32?(c[(c[g>>2]|0)+188>>2]&1<<c[h>>2]|0)!=0:0))l=12;if((l|0)==12?(c[(c[g>>2]|0)+188>>2]|0)!=-1:0)break;l=(c[g>>2]|0)+88|0;b[l>>1]=b[l>>1]&-9|8}while(0);c[f>>2]=0;l=c[f>>2]|0;i=m;return l|0}jg(c[c[g>>2]>>2]|0,25);c[f>>2]=25;l=c[f>>2]|0;i=m;return l|0}jg(c[c[g>>2]>>2]|0,21);c[k>>2]=c[(c[g>>2]|0)+168>>2];Rd(21,40606,k);c[f>>2]=Kf(73493)|0;l=c[f>>2]|0;i=m;return l|0}function vh(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;g=n+20|0;h=n+16|0;j=n+12|0;k=n+8|0;l=n+4|0;m=n;c[h>>2]=d;c[j>>2]=e;c[k>>2]=f;if(!(c[h>>2]|0)){c[g>>2]=0;e=c[g>>2]|0;i=n;return e|0}a:do if(c[j>>2]|0){c[l>>2]=0;while(1){if((c[l>>2]|0)>=(b[(c[h>>2]|0)+70>>1]|0))break a;c[m>>2]=c[(c[(c[h>>2]|0)+64>>2]|0)+(c[l>>2]<<2)>>2];if(((c[m>>2]|0)!=0?(CQ(c[m>>2]|0,c[j>>2]|0,c[k>>2]|0)|0)==0:0)?(a[(c[m>>2]|0)+(c[k>>2]|0)>>0]|0)==0:0)break;c[l>>2]=(c[l>>2]|0)+1}c[g>>2]=(c[l>>2]|0)+1;e=c[g>>2]|0;i=n;return e|0}while(0);c[g>>2]=0;e=c[g>>2]|0;i=n;return e|0}function wh(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;h=i;i=i+32|0;k=h+16|0;j=h+12|0;f=h+8|0;g=h+4|0;e=h;c[k>>2]=a;c[j>>2]=d;c[f>>2]=c[k>>2];c[g>>2]=c[j>>2];c[e>>2]=0;while(1){if((c[e>>2]|0)>=(b[(c[f>>2]|0)+68>>1]|0))break;EH((c[(c[g>>2]|0)+60>>2]|0)+((c[e>>2]|0)*40|0)|0,(c[(c[f>>2]|0)+60>>2]|0)+((c[e>>2]|0)*40|0)|0);c[e>>2]=(c[e>>2]|0)+1}i=h;return 0}function xh(d,f){d=d|0;f=f|0;var g=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;g=n+20|0;j=n+16|0;m=n+8|0;l=n;k=n+24|0;c[g>>2]=d;c[j>>2]=f;a[k>>0]=a[(c[g>>2]|0)+10>>0]|0;if(!(Ky(c[(c[g>>2]|0)+16>>2]|0,m,c[(c[g>>2]|0)+12>>2]|0,a[k>>0]|0)|0)){i=n;return}if(!(Hi(c[(c[g>>2]|0)+16>>2]|0,l,c[(c[g>>2]|0)+12>>2]|0,a[k>>0]|0)|0)){d=c[l+4>>2]|0;m=c[g>>2]|0;c[m>>2]=c[l>>2];c[m+4>>2]=d;m=(c[g>>2]|0)+8|0;b[m>>1]=e[m>>1]|0|4;i=n;return}h[c[g>>2]>>3]=+h[m>>3];m=(c[g>>2]|0)+8|0;b[m>>1]=e[m>>1]|0|8;if(!(c[j>>2]|0)){i=n;return}px(c[g>>2]|0);i=n;return}function yh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;
  40. j=i;i=i+32|0;e=j+16|0;f=j+12|0;g=j;h=j+8|0;c[f>>2]=a;a=g;c[a>>2]=b;c[a+4>>2]=d;if(c[f>>2]|0){h=g;c[e>>2]=Fw(c[f>>2]|0,c[h>>2]|0,c[h+4>>2]|0)|0;h=c[e>>2]|0;i=j;return h|0}else{a=g;c[h>>2]=_f(c[a>>2]|0,c[a+4>>2]|0)|0;c[e>>2]=c[h>>2];h=c[e>>2]|0;i=j;return h|0}return 0}function zh(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+64|0;q=r+16|0;p=r;k=r+52|0;l=r+48|0;g=r+44|0;m=r+40|0;n=r+36|0;o=r+32|0;j=r+28|0;h=r+24|0;c[l>>2]=b;c[g>>2]=d;c[m>>2]=e;c[n>>2]=f;if(pz(c[l>>2]|0)|0){c[k>>2]=0;q=c[k>>2]|0;i=r;return q|0}c[o>>2]=pi(c[c[l>>2]>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;if(!(c[o>>2]|0)){c[j>>2]=(c[g>>2]|0)!=0?40579:40592;if(((ji(c[c[l>>2]>>2]|0,c[n>>2]|0)|0)<1?(c[h>>2]=nj((c[c[l>>2]>>2]|0)+312|0,c[m>>2]|0)|0,(c[h>>2]|0)!=0):0)?(AH(c[l>>2]|0,c[h>>2]|0)|0)!=0:0){c[k>>2]=c[(c[h>>2]|0)+16>>2];q=c[k>>2]|0;i=r;return q|0}d=c[l>>2]|0;g=c[j>>2]|0;if(c[n>>2]|0){n=c[n>>2]|0;q=c[m>>2]|0;c[p>>2]=g;c[p+4>>2]=n;c[p+8>>2]=q;Ah(d,30884,p)}else{p=c[m>>2]|0;c[q>>2]=g;c[q+4>>2]=p;Ah(d,30894,q)}a[(c[l>>2]|0)+17>>0]=1}c[k>>2]=c[o>>2];q=c[k>>2]|0;i=r;return q|0}function Ah(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;j=i;i=i+48|0;f=j+32|0;l=j+28|0;h=j+24|0;k=j+8|0;g=j;c[f>>2]=b;c[l>>2]=d;c[g>>2]=c[c[f>>2]>>2];c[k>>2]=e;c[h>>2]=Zw(c[g>>2]|0,c[l>>2]|0,k)|0;if(a[(c[g>>2]|0)+69>>0]|0){Sf(c[g>>2]|0,c[h>>2]|0);i=j;return}else{l=(c[f>>2]|0)+68|0;c[l>>2]=(c[l>>2]|0)+1;Sf(c[g>>2]|0,c[(c[f>>2]|0)+4>>2]|0);c[(c[f>>2]|0)+4>>2]=c[h>>2];c[(c[f>>2]|0)+12>>2]=1;i=j;return}}function Bh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;f=i;i=i+32|0;j=f+28|0;h=f+24|0;g=f+8|0;e=f;c[j>>2]=a;c[h>>2]=b;c[g>>2]=d;c[e>>2]=Zw(c[j>>2]|0,c[h>>2]|0,g)|0;i=f;return c[e>>2]|0}function Ch(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=i;i=i+16|0;b=g+12|0;d=g+8|0;e=g+4|0;f=g;c[d>>2]=a;c[e>>2]=c[c[d>>2]>>2];c[f>>2]=ph(c[e>>2]|0,208,0)|0;if(!(c[f>>2]|0)){c[b>>2]=0;a=c[b>>2]|0;i=g;return a|0}c[c[f>>2]>>2]=c[e>>2];if(c[(c[e>>2]|0)+4>>2]|0)c[(c[(c[e>>2]|0)+4>>2]|0)+48>>2]=c[f>>2];c[(c[f>>2]|0)+52>>2]=c[(c[e>>2]|0)+4>>2];c[(c[f>>2]|0)+48>>2]=0;c[(c[e>>2]|0)+4>>2]=c[f>>2];c[(c[f>>2]|0)+40>>2]=649915045;c[(c[f>>2]|0)+24>>2]=c[d>>2];c[b>>2]=c[f>>2];a=c[b>>2]|0;i=g;return a|0}function Dh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;e=g+4|0;f=g;c[d>>2]=a;c[e>>2]=b;c[f>>2]=-1e6;if(!(c[e>>2]|0)){f=c[f>>2]|0;i=g;return f|0}c[f>>2]=0;while(1){if((c[f>>2]|0)>=(c[(c[d>>2]|0)+20>>2]|0)){d=6;break}if((c[(c[(c[d>>2]|0)+16>>2]|0)+(c[f>>2]<<4)+12>>2]|0)==(c[e>>2]|0)){d=6;break}c[f>>2]=(c[f>>2]|0)+1}if((d|0)==6){f=c[f>>2]|0;i=g;return f|0}return 0}function Eh(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;j=i;i=i+32|0;l=j+24|0;p=j+20|0;o=j+16|0;n=j+12|0;m=j+8|0;k=j+4|0;h=j;c[l>>2]=a;c[p>>2]=b;c[o>>2]=d;c[n>>2]=e;c[m>>2]=f;c[k>>2]=g;c[h>>2]=Vw(c[l>>2]|0,c[p>>2]|0,c[o>>2]|0,c[n>>2]|0,c[m>>2]|0)|0;Ih(c[l>>2]|0,c[h>>2]|0,c[k>>2]|0,-14);i=j;return c[h>>2]|0}function Fh(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=i;i=i+16|0;e=g;f=g+4|0;c[e>>2]=b;a[f>>0]=d;if(a[(c[c[e>>2]>>2]|0)+65>>0]|0){i=g;return}a[(c[(c[e>>2]|0)+4>>2]|0)+(((c[(c[e>>2]|0)+32>>2]|0)-1|0)*20|0)+3>>0]=a[f>>0]|0;i=g;return}function Gh(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;h=p+28|0;j=p+24|0;k=p+20|0;l=p+16|0;m=p+8|0;o=p+4|0;n=p;c[j>>2]=b;c[k>>2]=e;c[l>>2]=f;c[p+12>>2]=g;if(((c[(c[j>>2]|0)+32>>2]|0)+(c[k>>2]|0)|0)>(c[(c[(c[j>>2]|0)+24>>2]|0)+88>>2]|0)?(Xw(c[j>>2]|0,c[k>>2]|0)|0)!=0:0){c[h>>2]=0;o=c[h>>2]|0;i=p;return o|0}b=(c[(c[j>>2]|0)+4>>2]|0)+((c[(c[j>>2]|0)+32>>2]|0)*20|0)|0;c[o>>2]=b;c[n>>2]=b;c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[k>>2]|0))break;a[c[o>>2]>>0]=a[c[l>>2]>>0]|0;c[(c[o>>2]|0)+4>>2]=a[(c[l>>2]|0)+1>>0];c[(c[o>>2]|0)+8>>2]=a[(c[l>>2]|0)+2>>0];if((d[35754+(d[c[l>>2]>>0]|0)>>0]&1|0)!=0?(a[(c[l>>2]|0)+2>>0]|0)>0:0){b=(c[o>>2]|0)+8|0;c[b>>2]=(c[b>>2]|0)+(c[(c[j>>2]|0)+32>>2]|0)}c[(c[o>>2]|0)+12>>2]=a[(c[l>>2]|0)+3>>0];a[(c[o>>2]|0)+1>>0]=0;c[(c[o>>2]|0)+16>>2]=0;a[(c[o>>2]|0)+3>>0]=0;c[m>>2]=(c[m>>2]|0)+1;c[l>>2]=(c[l>>2]|0)+4;c[o>>2]=(c[o>>2]|0)+20}o=(c[j>>2]|0)+32|0;c[o>>2]=(c[o>>2]|0)+(c[k>>2]|0);c[h>>2]=c[n>>2];o=c[h>>2]|0;i=p;return o|0}function Hh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f+4|0;e=f;c[d>>2]=a;c[e>>2]=b;a=(c[d>>2]|0)+96|0;c[a>>2]=c[a>>2]|1<<c[e>>2];if((c[e>>2]|0)==1){i=f;return}if(!(zH(c[(c[(c[c[d>>2]>>2]|0)+16>>2]|0)+(c[e>>2]<<4)+4>>2]|0)|0)){i=f;return}a=(c[d>>2]|0)+100|0;c[a>>2]=c[a>>2]|1<<c[e>>2];i=f;return}function Ih(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;g=n+20|0;h=n+16|0;k=n+12|0;l=n+8|0;m=n+4|0;j=n;c[g>>2]=b;c[h>>2]=d;c[k>>2]=e;c[l>>2]=f;c[j>>2]=c[c[g>>2]>>2];if(a[(c[j>>2]|0)+65>>0]|0){if((c[l>>2]|0)==-10){i=n;return}qA(c[j>>2]|0,c[l>>2]|0,c[k>>2]|0);i=n;return}if((c[h>>2]|0)<0)c[h>>2]=(c[(c[g>>2]|0)+32>>2]|0)-1;c[m>>2]=(c[(c[g>>2]|0)+4>>2]|0)+((c[h>>2]|0)*20|0);if((c[l>>2]|0)<0?(a[(c[m>>2]|0)+1>>0]|0)==0:0){g=c[k>>2]|0;if((c[l>>2]|0)==-14){c[(c[m>>2]|0)+16>>2]=g;a[(c[m>>2]|0)+1>>0]=-14;i=n;return}if(!g){i=n;return}c[(c[m>>2]|0)+16>>2]=c[k>>2];a[(c[m>>2]|0)+1>>0]=c[l>>2];if((c[l>>2]|0)!=-10){i=n;return}yH(c[k>>2]|0);i=n;return}xH(c[g>>2]|0,c[m>>2]|0,c[k>>2]|0,c[l>>2]|0);i=n;return}function Jh(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;g=r+44|0;h=r+40|0;j=r+36|0;p=r+32|0;n=r+28|0;m=r+24|0;l=r+20|0;o=r+16|0;k=r+12|0;q=r;c[g>>2]=e;c[h>>2]=f;c[j>>2]=c[c[g>>2]>>2];c[p>>2]=b[(c[h>>2]|0)+444>>1];c[n>>2]=c[(c[h>>2]|0)+76>>2];c[m>>2]=c[(c[h>>2]|0)+72>>2];c[l>>2]=c[(c[h>>2]|0)+400>>2];f=c[(c[h>>2]|0)+84>>2]|0;c[o>>2]=f;c[o>>2]=(c[o>>2]|0)==0?1:f;c[n>>2]=(c[n>>2]|0)+(c[m>>2]|0);c[k>>2]=((c[(c[g>>2]|0)+32>>2]|0)*20|0)+7&-8;c[q>>2]=(c[(c[g>>2]|0)+4>>2]|0)+(c[k>>2]|0);c[q+4>>2]=(c[(c[h>>2]|0)+92>>2]|0)-(c[k>>2]|0)&-8;if((c[q+4>>2]|0)>0)kR(c[q>>2]|0,0,c[q+4>>2]|0)|0;SE(c[g>>2]|0,l);if(d[(c[h>>2]|0)+20>>0]|0)e=(d[(c[h>>2]|0)+21>>0]|0)!=0;else e=0;f=(c[g>>2]|0)+88|0;b[f>>1]=b[f>>1]&-33|(e&1)<<5&65535;if((c[n>>2]|0)<10?(d[(c[h>>2]|0)+453>>0]|0)!=0:0)c[n>>2]=10;f=(c[g>>2]|0)+88|0;b[f>>1]=b[f>>1]&-9;do{c[q+8>>2]=0;f=wH(q,c[(c[g>>2]|0)+8>>2]|0,(c[n>>2]|0)*40|0)|0;c[(c[g>>2]|0)+8>>2]=f;f=wH(q,c[(c[g>>2]|0)+60>>2]|0,(c[p>>2]|0)*40|0)|0;c[(c[g>>2]|0)+60>>2]=f;f=wH(q,c[(c[g>>2]|0)+12>>2]|0,c[l>>2]<<2)|0;c[(c[g>>2]|0)+12>>2]=f;f=wH(q,c[(c[g>>2]|0)+56>>2]|0,c[m>>2]<<2)|0;c[(c[g>>2]|0)+56>>2]=f;f=wH(q,c[(c[g>>2]|0)+200>>2]|0,c[o>>2]|0)|0;c[(c[g>>2]|0)+200>>2]=f;if(!(c[q+8>>2]|0))break;f=c[q+8>>2]|0;f=ph(c[j>>2]|0,f,((f|0)<0)<<31>>31)|0;c[(c[g>>2]|0)+172>>2]=f;c[q>>2]=f;c[q+4>>2]=c[q+8>>2]}while((a[(c[j>>2]|0)+65>>0]|0)!=0^1);c[(c[g>>2]|0)+36>>2]=c[m>>2];c[(c[g>>2]|0)+196>>2]=c[o>>2];a:do if(c[(c[g>>2]|0)+60>>2]|0){b[(c[g>>2]|0)+68>>1]=c[p>>2];c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[p>>2]|0))break a;b[(c[(c[g>>2]|0)+60>>2]|0)+((c[k>>2]|0)*40|0)+8>>1]=1;c[(c[(c[g>>2]|0)+60>>2]|0)+((c[k>>2]|0)*40|0)+32>>2]=c[j>>2];c[k>>2]=(c[k>>2]|0)+1}}while(0);b[(c[g>>2]|0)+70>>1]=c[(c[h>>2]|0)+448>>2];c[(c[g>>2]|0)+64>>2]=c[(c[h>>2]|0)+476>>2];c[(c[h>>2]|0)+448>>2]=0;c[(c[h>>2]|0)+476>>2]=0;if(!(c[(c[g>>2]|0)+8>>2]|0)){p=c[h>>2]|0;p=p+453|0;p=a[p>>0]|0;p=p&255;q=c[g>>2]|0;q=q+88|0;p=p&65535;o=b[q>>1]|0;p=p&3;o=o&-4;p=o|p;b[q>>1]=p;q=c[g>>2]|0;Tg(q);i=r;return}q=(c[g>>2]|0)+8|0;c[q>>2]=(c[q>>2]|0)+-40;c[(c[g>>2]|0)+28>>2]=c[n>>2];c[k>>2]=1;while(1){if((c[k>>2]|0)>(c[n>>2]|0))break;b[(c[(c[g>>2]|0)+8>>2]|0)+((c[k>>2]|0)*40|0)+8>>1]=128;c[(c[(c[g>>2]|0)+8>>2]|0)+((c[k>>2]|0)*40|0)+32>>2]=c[j>>2];c[k>>2]=(c[k>>2]|0)+1}p=c[h>>2]|0;p=p+453|0;p=a[p>>0]|0;p=p&255;q=c[g>>2]|0;q=q+88|0;p=p&65535;o=b[q>>1]|0;p=p&3;o=o&-4;p=o|p;b[q>>1]=p;q=c[g>>2]|0;Tg(q);i=r;return}function Kh(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+64|0;q=s+24|0;p=s+16|0;k=s+8|0;l=s+52|0;m=s;n=s+48|0;o=s+44|0;r=s+40|0;g=s+36|0;h=s+32|0;j=s+28|0;c[l>>2]=a;a=m;c[a>>2]=d;c[a+4>>2]=e;c[n>>2]=f;c[r>>2]=0;c[g>>2]=c[(c[l>>2]|0)+20>>2];e=m;a=c[e+4>>2]|0;f=c[(c[g>>2]|0)+60>>2]|0;c[f>>2]=c[e>>2];c[f+4>>2]=a;c[o>>2]=ue(c[(c[l>>2]|0)+20>>2]|0)|0;do if((c[o>>2]|0)==100){c[h>>2]=c[c[(c[g>>2]|0)+56>>2]>>2];c[j>>2]=c[(c[h>>2]|0)+80+(c[(c[l>>2]|0)+12>>2]<<2)>>2];d=c[l>>2]|0;if((c[j>>2]|0)>>>0>=12){c[(c[l>>2]|0)+8>>2]=c[(c[h>>2]|0)+80+((c[d+12>>2]|0)+(b[(c[h>>2]|0)+12>>1]|0)<<2)>>2];k=uF(c[j>>2]|0)|0;c[(c[l>>2]|0)+4>>2]=k;c[(c[l>>2]|0)+16>>2]=c[(c[h>>2]|0)+16>>2];vH(c[(c[l>>2]|0)+16>>2]|0);break}e=c[d+24>>2]|0;if(!(c[j>>2]|0))d=40525;else d=(c[j>>2]|0)==7?40512:40517;c[k>>2]=d;c[r>>2]=Bh(e,40530,k)|0;c[o>>2]=1;Yd(c[(c[l>>2]|0)+20>>2]|0)|0;c[(c[l>>2]|0)+20>>2]=0}while(0);if((c[o>>2]|0)==100){c[o>>2]=0;q=c[r>>2]|0;r=c[n>>2]|0;c[r>>2]=q;r=c[o>>2]|0;i=s;return r|0}if(!(c[(c[l>>2]|0)+20>>2]|0)){q=c[r>>2]|0;r=c[n>>2]|0;c[r>>2]=q;r=c[o>>2]|0;i=s;return r|0}c[o>>2]=Yd(c[(c[l>>2]|0)+20>>2]|0)|0;c[(c[l>>2]|0)+20>>2]=0;d=c[(c[l>>2]|0)+24>>2]|0;if(!(c[o>>2]|0)){l=m;m=c[l+4>>2]|0;q=p;c[q>>2]=c[l>>2];c[q+4>>2]=m;c[r>>2]=Bh(d,40559,p)|0;c[o>>2]=1;q=c[r>>2]|0;r=c[n>>2]|0;c[r>>2]=q;r=c[o>>2]|0;i=s;return r|0}else{c[q>>2]=bf(c[(c[l>>2]|0)+24>>2]|0)|0;c[r>>2]=Bh(d,19255,q)|0;q=c[r>>2]|0;r=c[n>>2]|0;c[r>>2]=q;r=c[o>>2]|0;i=s;return r|0}return 0}function Lh(b){b=b|0;var e=0,f=0,g=0;g=i;i=i+16|0;e=g+4|0;f=g;c[e>>2]=b;if(!(c[e>>2]|0)){i=g;return}c[f>>2]=c[c[e>>2]>>2];Sf(c[f>>2]|0,c[(c[e>>2]|0)+120>>2]|0);Vu(c[f>>2]|0,c[(c[e>>2]|0)+324>>2]|0);if(c[f>>2]|0){b=(c[f>>2]|0)+248|0;c[b>>2]=(c[b>>2]|0)-(d[(c[e>>2]|0)+24>>0]|0)}a[(c[e>>2]|0)+24>>0]=0;i=g;return}function Mh(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;g=n+20|0;h=n+16|0;j=n+12|0;k=n+8|0;l=n+4|0;m=n;c[h>>2]=a;c[j>>2]=b;c[k>>2]=e;c[l>>2]=f;if(!(d[(c[h>>2]|0)+66>>0]|0)){c[g>>2]=4;m=c[g>>2]|0;i=n;return m|0}if((d[(c[h>>2]|0)+66>>0]|0|0)>=3)e=WE(c[h>>2]|0)|0;else e=0;c[m>>2]=e;if(!(c[m>>2]|0))c[m>>2]=hF(c[h>>2]|0,c[j>>2]|0,c[k>>2]|0,c[l>>2]|0,0)|0;c[g>>2]=c[m>>2];m=c[g>>2]|0;i=n;return m|0}function Nh(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;r=i;i=i+48|0;g=r+36|0;s=r+32|0;h=r+28|0;j=r+24|0;k=r+20|0;l=r+16|0;o=r+12|0;n=r+8|0;p=r+4|0;m=r;c[s>>2]=a;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;c[n>>2]=c[s>>2];if(!(c[n>>2]|0)){c[g>>2]=Kf(81441)|0;s=c[g>>2]|0;i=r;return s|0}c[m>>2]=c[(c[n>>2]|0)+24>>2];c[p>>2]=c[(c[n>>2]|0)+20>>2];do if(!((c[j>>2]|0)<0|(c[k>>2]|0)<0)?(a=c[k>>2]|0,b=c[j>>2]|0,b=gR(a|0,((a|0)<0)<<31>>31|0,b|0,((b|0)<0)<<31>>31|0)|0,a=C,s=c[(c[n>>2]|0)+4>>2]|0,f=((s|0)<0)<<31>>31,!((a|0)>(f|0)|(a|0)==(f|0)&b>>>0>s>>>0)):0){if(!(c[p>>2]|0)){c[o>>2]=4;break}uH(c[(c[n>>2]|0)+16>>2]|0);c[o>>2]=Wb[c[l>>2]&255](c[(c[n>>2]|0)+16>>2]|0,(c[k>>2]|0)+(c[(c[n>>2]|0)+8>>2]|0)|0,c[j>>2]|0,c[h>>2]|0)|0;if((c[o>>2]|0)==4){Qg(c[p>>2]|0)|0;c[(c[n>>2]|0)+20>>2]=0;break}else{c[(c[p>>2]|0)+80>>2]=c[o>>2];break}}else q=5;while(0);if((q|0)==5)c[o>>2]=1;jg(c[m>>2]|0,c[o>>2]|0);c[o>>2]=Rg(c[m>>2]|0,c[o>>2]|0)|0;c[g>>2]=c[o>>2];s=c[g>>2]|0;i=r;return s|0}function Oh(a){a=a|0;var d=0,e=0,f=0;e=i;i=i+16|0;f=e+4|0;d=e;c[f>>2]=a;c[d>>2]=c[(c[f>>2]|0)+4>>2];while(1){if(!(c[d>>2]|0))break;f=(c[d>>2]|0)+88|0;b[f>>1]=b[f>>1]&-9|8;c[d>>2]=c[(c[d>>2]|0)+52>>2]}i=e;return}function Ph(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=i;i=i+64|0;s=x+52|0;t=x+48|0;u=x+44|0;v=x+40|0;w=x+36|0;q=x+32|0;r=x+28|0;n=x+24|0;m=x+20|0;p=x+56|0;l=x+16|0;o=x+12|0;j=x+8|0;k=x+4|0;h=x;c[t>>2]=b;c[u>>2]=e;c[v>>2]=f;c[w>>2]=g;c[n>>2]=d[(c[v>>2]|0)+1>>0];c[m>>2]=d[c[v>>2]>>0];a[p>>0]=a[(c[v>>2]|0)+3>>0]|0;c[l>>2]=0;a:while(1){if((d[c[t>>2]>>0]|0)<128){g=c[t>>2]|0;c[t>>2]=g+1;g=d[g>>0]|0}else g=jC(t)|0;c[q>>2]=g;if(!g){b=83;break}if((c[q>>2]|0)==(c[m>>2]|0)){b=7;break}do if((c[q>>2]|0)==(c[w>>2]|0)){if(!(d[(c[v>>2]|0)+2>>0]|0)){c[q>>2]=jC(t)|0;if(!(c[q>>2]|0)){b=49;break a}c[l>>2]=c[t>>2];break}c[j>>2]=0;c[k>>2]=0;c[h>>2]=0;c[q>>2]=jC(u)|0;if(!(c[q>>2]|0)){b=52;break a}c[r>>2]=jC(t)|0;if((c[r>>2]|0)==94){c[h>>2]=1;c[r>>2]=jC(t)|0}if((c[r>>2]|0)==93){if((c[q>>2]|0)==93)c[k>>2]=1;c[r>>2]=jC(t)|0}while(1){g=c[r>>2]|0;if(!((c[r>>2]|0)!=0?(c[r>>2]|0)!=93:0))break;if(((g|0)==45?(d[c[t>>2]>>0]|0)!=93:0)?(c[j>>2]|0)>>>0>0?(d[c[t>>2]>>0]|0)!=0:0:0){c[r>>2]=jC(t)|0;if((c[q>>2]|0)>>>0>=(c[j>>2]|0)>>>0?(c[q>>2]|0)>>>0<=(c[r>>2]|0)>>>0:0)c[k>>2]=1;c[j>>2]=0}else{if((c[q>>2]|0)==(c[r>>2]|0))c[k>>2]=1;c[j>>2]=c[r>>2]}c[r>>2]=jC(t)|0}if(!g){b=73;break a}if(!(c[k>>2]^c[h>>2])){b=73;break a}else continue a}while(0);if((d[c[u>>2]>>0]|0)<128){g=c[u>>2]|0;c[u>>2]=g+1;g=d[g>>0]|0}else g=jC(u)|0;c[r>>2]=g;if((c[q>>2]|0)==(c[r>>2]|0))continue;if((d[p>>0]|0)!=0&(c[q>>2]|0)>>>0<128&(c[r>>2]|0)>>>0<128?(d[18477+(c[q>>2]&255)>>0]|0)==(d[18477+(c[r>>2]&255)>>0]|0):0)continue;if((c[q>>2]|0)!=(c[n>>2]|0)){b=82;break}if(!((c[r>>2]|0)!=0?(c[t>>2]|0)!=(c[l>>2]|0):0)){b=82;break}}if((b|0)==7){while(1){b=0;if((d[c[t>>2]>>0]|0)<128){g=c[t>>2]|0;c[t>>2]=g+1;g=d[g>>0]|0}else g=jC(t)|0;c[q>>2]=g;if((g|0)==(c[m>>2]|0))g=1;else g=(c[q>>2]|0)==(c[n>>2]|0);f=c[q>>2]|0;if(!g)break;if((f|0)!=(c[n>>2]|0)){b=7;continue}if(!(jC(u)|0)){b=15;break}else b=7}if((b|0)==15){c[s>>2]=0;w=c[s>>2]|0;i=x;return w|0}if(!f){c[s>>2]=1;w=c[s>>2]|0;i=x;return w|0}do if((c[q>>2]|0)==(c[w>>2]|0)){if(!(d[(c[v>>2]|0)+2>>0]|0)){c[q>>2]=jC(t)|0;if(c[q>>2]|0)break;c[s>>2]=0;w=c[s>>2]|0;i=x;return w|0}b:while(1){if(d[c[u>>2]>>0]|0)g=(Ph((c[t>>2]|0)+-1|0,c[u>>2]|0,c[v>>2]|0,c[w>>2]|0)|0)==0;else g=0;f=c[u>>2]|0;if(!g)break;c[u>>2]=f+1;if((d[f>>0]|0)<192)continue;while(1){if((d[c[u>>2]>>0]&192|0)!=128)continue b;c[u>>2]=(c[u>>2]|0)+1}}c[s>>2]=(d[f>>0]|0)!=0&1;w=c[s>>2]|0;i=x;return w|0}while(0);c:do if((c[q>>2]|0)>>>0<=128){g=c[q>>2]|0;if(a[p>>0]|0){c[o>>2]=g&~(d[19267+(c[q>>2]&255)>>0]&32);c[q>>2]=d[18477+(c[q>>2]&255)>>0]}else c[o>>2]=g;while(1){p=c[u>>2]|0;c[u>>2]=p+1;p=d[p>>0]|0;c[r>>2]=p;if(!p)break c;if((c[r>>2]|0)!=(c[q>>2]|0)?(c[r>>2]|0)!=(c[o>>2]|0):0)continue;if(Ph(c[t>>2]|0,c[u>>2]|0,c[v>>2]|0,c[w>>2]|0)|0)break}c[s>>2]=1;w=c[s>>2]|0;i=x;return w|0}else{while(1){if((d[c[u>>2]>>0]|0)<128){g=c[u>>2]|0;c[u>>2]=g+1;g=d[g>>0]|0}else g=jC(u)|0;c[r>>2]=g;if(!g)break c;if((c[r>>2]|0)!=(c[q>>2]|0))continue;if(Ph(c[t>>2]|0,c[u>>2]|0,c[v>>2]|0,c[w>>2]|0)|0)break}c[s>>2]=1;w=c[s>>2]|0;i=x;return w|0}while(0);c[s>>2]=0;w=c[s>>2]|0;i=x;return w|0}else if((b|0)==49){c[s>>2]=0;w=c[s>>2]|0;i=x;return w|0}else if((b|0)==52){c[s>>2]=0;w=c[s>>2]|0;i=x;return w|0}else if((b|0)==73){c[s>>2]=0;w=c[s>>2]|0;i=x;return w|0}else if((b|0)==82){c[s>>2]=0;w=c[s>>2]|0;i=x;return w|0}else if((b|0)==83){c[s>>2]=(d[c[u>>2]>>0]|0)==0&1;w=c[s>>2]|0;i=x;return w|0}return 0}function Qh(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;b=f+8|0;d=f+4|0;e=f;c[d>>2]=a;do if(!(c[d>>2]|0)){hH(40498);c[b>>2]=0}else{c[e>>2]=c[(c[d>>2]|0)+76>>2];if((c[e>>2]|0)==-1607883113){c[b>>2]=1;break}if(Sh(c[d>>2]|0)|0)hH(40503);c[b>>2]=0}while(0);i=f;return c[b>>2]|0}function Rh(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+48|0;j=s+32|0;k=s+28|0;l=s+24|0;m=s+20|0;n=s+16|0;o=s+12|0;p=s+8|0;q=s+4|0;r=s;c[k>>2]=a;c[l>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[c[p>>2]>>2]=0;b=(Qh(c[k>>2]|0)|0)==0;if(b|(c[l>>2]|0)==0){c[j>>2]=Kf(110077)|0;b=c[j>>2]|0;i=s;return b|0}Nf(c[k>>2]|0);c[r>>2]=iH(c[k>>2]|0,c[l>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0)|0;if((c[r>>2]|0)==17){Yd(c[c[p>>2]>>2]|0)|0;c[r>>2]=iH(c[k>>2]|0,c[l>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0)|0}c[j>>2]=c[r>>2];b=c[j>>2]|0;i=s;return b|0}function Sh(a){a=a|0;var b=0,d=0,e=0,f=0;d=i;i=i+16|0;b=d+8|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=c[(c[f>>2]|0)+76>>2];if((c[e>>2]|0)!=1266094736&(c[e>>2]|0)!=-1607883113&(c[e>>2]|0)!=-264537850){hH(40345);c[b>>2]=0;f=c[b>>2]|0;i=d;return f|0}else{c[b>>2]=1;f=c[b>>2]|0;i=d;return f|0}return 0}function Th(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;g=r+36|0;h=r+32|0;j=r+28|0;k=r+24|0;l=r+20|0;p=r+16|0;m=r+12|0;o=r+8|0;n=r+4|0;q=r;c[g>>2]=a;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;c[p>>2]=0;c[m>>2]=If(c[h>>2]|0)|0;if(!(nj((c[g>>2]|0)+312|0,c[h>>2]|0)|0)){c[o>>2]=Fw(c[g>>2]|0,20+(c[m>>2]|0)+1|0,0)|0;if((c[o>>2]|0)!=0?(c[q>>2]=(c[o>>2]|0)+20,iR(c[q>>2]|0,c[h>>2]|0,(c[m>>2]|0)+1|0)|0,c[(c[o>>2]|0)+4>>2]=c[q>>2],c[c[o>>2]>>2]=c[j>>2],c[(c[o>>2]|0)+8>>2]=c[k>>2],c[(c[o>>2]|0)+12>>2]=c[l>>2],c[(c[o>>2]|0)+16>>2]=0,c[n>>2]=Oj((c[g>>2]|0)+312|0,c[q>>2]|0,c[o>>2]|0)|0,(c[n>>2]|0)!=0):0){jh(c[g>>2]|0);Sf(c[g>>2]|0,c[n>>2]|0)}}else c[p>>2]=Kf(118442)|0;c[p>>2]=Rg(c[g>>2]|0,c[p>>2]|0)|0;if(!((c[p>>2]|0)!=0&(c[l>>2]|0)!=0)){b=c[p>>2]|0;i=r;return b|0}Qb[c[l>>2]&255](c[k>>2]|0);b=c[p>>2]|0;i=r;return b|0}function Uh(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;z=i;i=i+80|0;g=z+72|0;q=z+16|0;p=z+8|0;o=z;s=z+68|0;t=z+64|0;h=z+60|0;j=z+56|0;w=z+52|0;v=z+48|0;m=z+44|0;n=z+40|0;k=z+36|0;u=z+32|0;l=z+28|0;x=z+24|0;y=z+20|0;c[t>>2]=b;c[h>>2]=e;c[j>>2]=f;c[w>>2]=0;c[k>>2]=-1;c[u>>2]=c[c[t>>2]>>2];c[l>>2]=c[(c[u>>2]|0)+88+4>>2];if(!(c[(c[u>>2]|0)+148>>2]|0))c[(c[u>>2]|0)+240>>2]=0;c[(c[t>>2]|0)+12>>2]=0;c[(c[t>>2]|0)+484>>2]=c[h>>2];c[v>>2]=0;c[m>>2]=Pu(179)|0;if(!(c[m>>2]|0)){jh(c[u>>2]|0);c[s>>2]=7;y=c[s>>2]|0;i=z;return y|0}while(1){if(!(a[(c[h>>2]|0)+(c[v>>2]|0)>>0]|0))break;c[(c[t>>2]|0)+508>>2]=(c[h>>2]|0)+(c[v>>2]|0);e=Qu((c[h>>2]|0)+(c[v>>2]|0)|0,n)|0;c[(c[t>>2]|0)+508+4>>2]=e;c[v>>2]=(c[v>>2]|0)+(c[(c[t>>2]|0)+508+4>>2]|0);if((c[v>>2]|0)>(c[l>>2]|0)){r=7;break}if((c[n>>2]|0)>=159){if(c[(c[u>>2]|0)+240>>2]|0){r=10;break}if((c[n>>2]|0)==160){r=12;break}else continue}if((c[n>>2]|0)==1)c[(c[t>>2]|0)+484>>2]=(c[h>>2]|0)+(c[v>>2]|0);b=c[m>>2]|0;f=c[n>>2]|0;A=(c[t>>2]|0)+508|0;e=c[t>>2]|0;c[g>>2]=c[A>>2];c[g+4>>2]=c[A+4>>2];Ru(b,f,g,e);c[k>>2]=c[n>>2];if(c[(c[t>>2]|0)+12>>2]|0)break;if(d[(c[u>>2]|0)+65>>0]|0)break}if((r|0)==7)c[(c[t>>2]|0)+12>>2]=18;else if((r|0)==10)c[(c[t>>2]|0)+12>>2]=9;else if((r|0)==12){A=c[t>>2]|0;c[o>>2]=(c[t>>2]|0)+508;Ah(A,27316,o)}if((c[(c[t>>2]|0)+12>>2]|0)==0?(d[(c[u>>2]|0)+65>>0]|0)==0:0){if((c[k>>2]|0)!=1){r=c[m>>2]|0;e=(c[t>>2]|0)+508|0;A=c[t>>2]|0;c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];Ru(r,1,g,A);c[(c[t>>2]|0)+484>>2]=(c[h>>2]|0)+(c[v>>2]|0)}if((c[(c[t>>2]|0)+12>>2]|0)==0?(d[(c[u>>2]|0)+65>>0]|0)==0:0){r=c[m>>2]|0;e=(c[t>>2]|0)+508|0;A=c[t>>2]|0;c[g>>2]=c[e>>2];c[g+4>>2]=c[e+4>>2];Ru(r,0,g,A)}}Su(c[m>>2]|0,148);if(a[(c[u>>2]|0)+65>>0]|0)c[(c[t>>2]|0)+12>>2]=7;if(((c[(c[t>>2]|0)+12>>2]|0)!=0?(c[(c[t>>2]|0)+12>>2]|0)!=101:0)?(c[(c[t>>2]|0)+4>>2]|0)==0:0){A=c[u>>2]|0;c[p>>2]=ih(c[(c[t>>2]|0)+12>>2]|0)|0;A=Bh(A,19255,p)|0;c[(c[t>>2]|0)+4>>2]=A}if(c[(c[t>>2]|0)+4>>2]|0){c[c[j>>2]>>2]=c[(c[t>>2]|0)+4>>2];A=c[(c[t>>2]|0)+12>>2]|0;c[q>>2]=c[c[j>>2]>>2];Rd(A,19255,q);c[(c[t>>2]|0)+4>>2]=0;c[w>>2]=(c[w>>2]|0)+1}if(((c[(c[t>>2]|0)+8>>2]|0)!=0?(c[(c[t>>2]|0)+68>>2]|0)>0:0)?(d[(c[t>>2]|0)+18>>0]|0)==0:0){Tu(c[(c[t>>2]|0)+8>>2]|0);c[(c[t>>2]|0)+8>>2]=0}if(!(d[(c[t>>2]|0)+18>>0]|0)){Sf(c[u>>2]|0,c[(c[t>>2]|0)+408>>2]|0);c[(c[t>>2]|0)+408>>2]=0;c[(c[t>>2]|0)+404>>2]=0}Kd(c[(c[t>>2]|0)+524>>2]|0);if(!(a[(c[t>>2]|0)+454>>0]|0))Qf(c[u>>2]|0,c[(c[t>>2]|0)+488>>2]|0);Uu(c[u>>2]|0,c[(c[t>>2]|0)+540>>2]|0);Pf(c[u>>2]|0,c[(c[t>>2]|0)+492>>2]|0);c[v>>2]=(c[(c[t>>2]|0)+448>>2]|0)-1;while(1){g=c[u>>2]|0;if((c[v>>2]|0)<0)break;Sf(g,c[(c[(c[t>>2]|0)+476>>2]|0)+(c[v>>2]<<2)>>2]|0);c[v>>2]=(c[v>>2]|0)+-1}Sf(g,c[(c[t>>2]|0)+476>>2]|0);while(1){if(!(c[(c[t>>2]|0)+412>>2]|0))break;c[x>>2]=c[(c[t>>2]|0)+412>>2];c[(c[t>>2]|0)+412>>2]=c[c[x>>2]>>2];Sf(c[u>>2]|0,c[x>>2]|0)}while(1){if(!(c[(c[t>>2]|0)+528>>2]|0))break;c[y>>2]=c[(c[t>>2]|0)+528>>2];c[(c[t>>2]|0)+528>>2]=c[(c[y>>2]|0)+68>>2];Qf(c[u>>2]|0,c[y>>2]|0)}c[s>>2]=c[w>>2];A=c[s>>2]|0;i=z;return A|0}function Vh(a){a=a|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f+4|0;e=f;c[d>>2]=a;c[e>>2]=ph(c[d>>2]|0,40,0)|0;if(!(c[e>>2]|0)){e=c[e>>2]|0;i=f;return e|0}b[(c[e>>2]|0)+8>>1]=1;c[(c[e>>2]|0)+32>>2]=c[d>>2];e=c[e>>2]|0;i=f;return e|0}function Wh(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;h=n+12|0;j=n+8|0;k=n+4|0;l=n+16|0;m=n;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;a[l>>0]=f;c[m>>2]=g;if(!(c[h>>2]|0)){i=n;return}dh(c[h>>2]|0,c[k>>2]|0,c[j>>2]|0,a[l>>0]|0,c[m>>2]|0)|0;i=n;return}function Xh(){var a=0,b=0;a=i;i=i+16|0;b=a;c[b>>2]=5028;mf(4,b)|0;i=a;return}function Yh(){return 88}function Zh(){return 40}function _h(){return 32}function $h(){var a=0,b=0;a=i;i=i+16|0;b=a;c[b>>2]=4976;mf(18,b)|0;i=a;return}function ai(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;ku(c[(c[d>>2]|0)+212>>2]|0);i=b;return}function bi(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;b=e;c[b>>2]=a;if(!(c[b>>2]|0)){a=0;a=a&1;i=e;return a|0}a=(d[(c[b>>2]|0)+8>>0]|0|0)==2;a=a&1;i=e;return a|0}function ci(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+32|0;h=q+28|0;j=q+24|0;k=q+20|0;l=q+16|0;m=q+12|0;p=q+8|0;n=q+4|0;o=q;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;if(c[(c[j>>2]|0)+248+8>>2]|0){c[h>>2]=5;f=c[h>>2]|0;i=q;return f|0}if(a[(c[j>>2]|0)+248+6>>0]|0)Kd(c[(c[j>>2]|0)+248+32>>2]|0);f=c[l>>2]&-8;c[l>>2]=f;c[l>>2]=(c[l>>2]|0)<=4?0:f;if((c[m>>2]|0)<0)c[m>>2]=0;do if(!((c[l>>2]|0)==0|(c[m>>2]|0)==0)){if(c[k>>2]|0){c[p>>2]=c[k>>2];break}Sj();f=_(c[l>>2]|0,c[m>>2]|0)|0;c[p>>2]=_f(f,((f|0)<0)<<31>>31)|0;Tj();if(c[p>>2]|0){f=$f(c[p>>2]|0)|0;c[m>>2]=(f|0)/(c[l>>2]|0)|0}}else{c[l>>2]=0;c[p>>2]=0}while(0);c[(c[j>>2]|0)+248+32>>2]=c[p>>2];c[(c[j>>2]|0)+248+28>>2]=0;b[(c[j>>2]|0)+248+4>>1]=c[l>>2];if(c[p>>2]|0){c[o>>2]=c[p>>2];c[n>>2]=(c[m>>2]|0)-1;while(1){if((c[n>>2]|0)<0)break;c[c[o>>2]>>2]=c[(c[j>>2]|0)+248+28>>2];c[(c[j>>2]|0)+248+28>>2]=c[o>>2];c[o>>2]=(c[o>>2]|0)+(c[l>>2]|0);c[n>>2]=(c[n>>2]|0)+-1}c[(c[j>>2]|0)+248+36>>2]=c[o>>2];c[(c[j>>2]|0)+248>>2]=0;a[(c[j>>2]|0)+248+6>>0]=(c[k>>2]|0)==0?1:0}else{c[(c[j>>2]|0)+248+32>>2]=c[j>>2];c[(c[j>>2]|0)+248+36>>2]=c[j>>2];c[(c[j>>2]|0)+248>>2]=1;a[(c[j>>2]|0)+248+6>>0]=0}c[h>>2]=0;f=c[h>>2]|0;i=q;return f|0}function di(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;g=h;d=h+12|0;e=h+8|0;f=h+4|0;c[e>>2]=a;c[f>>2]=b;if(!(c[e>>2]|0)){c[d>>2]=0;g=c[d>>2]|0;i=h;return g|0}if(!(Sh(c[e>>2]|0)|0)){c[d>>2]=Kf(133819)|0;g=c[d>>2]|0;i=h;return g|0}cu(c[e>>2]|0);du(c[e>>2]|0)|0;if((c[f>>2]|0)==0?(eu(c[e>>2]|0)|0)!=0:0){hg(c[e>>2]|0,5,27174,g);c[d>>2]=5;g=c[d>>2]|0;i=h;return g|0}c[(c[e>>2]|0)+76>>2]=1691352191;Ng(c[e>>2]|0);c[d>>2]=0;g=c[d>>2]|0;i=h;return g|0}function ei(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;f=i;i=i+32|0;d=f+16|0;j=f+12|0;h=f+8|0;e=f+4|0;g=f;c[j>>2]=a;c[h>>2]=b;c[e>>2]=c[j>>2];c[g>>2]=c[(c[j>>2]|0)+496>>2];if((((c[h>>2]|0)+1|0)*1e3|0)>(c[g>>2]|0)){c[d>>2]=0;j=c[d>>2]|0;i=f;return j|0}else{ri(c[c[e>>2]>>2]|0,1e6)|0;c[d>>2]=1;j=c[d>>2]|0;i=f;return j|0}return 0}function Py(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+48|0;n=t+44|0;h=t+40|0;o=t+36|0;l=t+32|0;q=t+28|0;m=t+24|0;p=t+20|0;j=t+16|0;r=t+12|0;s=t+8|0;k=t;c[h>>2]=f;c[o>>2]=g;if(!(c[(c[o>>2]|0)+52>>2]|0)){c[n>>2]=0;s=c[n>>2]|0;i=t;return s|0}if(!(c[(c[o>>2]|0)+48>>2]|0)){c[n>>2]=0;s=c[n>>2]|0;i=t;return s|0}c[m>>2]=c[o>>2];while(1){if(!(c[m>>2]|0))break;if((d[(c[m>>2]|0)+4>>0]|0|0)!=116?(d[(c[m>>2]|0)+4>>0]|0|0)!=119:0)break;c[m>>2]=c[(c[m>>2]|0)+52>>2]}if(!(c[m>>2]|0)){c[n>>2]=0;s=c[n>>2]|0;i=t;return s|0}c[j>>2]=c[(c[(c[o>>2]|0)+48>>2]|0)+4>>2];c[l>>2]=(c[c[(c[o>>2]|0)+48>>2]>>2]|0)-1;while(1){if((c[l>>2]|0)<0)break;if(c[(c[(c[j>>2]|0)+((c[l>>2]|0)*20|0)>>2]|0)+4>>2]&256)break;c[l>>2]=(c[l>>2]|0)+-1}if((c[l>>2]|0)<0){c[n>>2]=0;s=c[n>>2]|0;i=t;return s|0}c[s>>2]=c[c[h>>2]>>2];c[p>>2]=c[c[s>>2]>>2];c[q>>2]=ph(c[p>>2]|0,72,0)|0;if(!(c[q>>2]|0)){c[n>>2]=2;s=c[n>>2]|0;i=t;return s|0}c[k>>2]=0;c[k+4>>2]=0;c[r>>2]=Ev(c[s>>2]|0,0,0,0,k,c[q>>2]|0,0,0)|0;if(!(c[r>>2]|0)){c[n>>2]=2;s=c[n>>2]|0;i=t;return s|0}else{h=c[q>>2]|0;j=c[o>>2]|0;k=h+72|0;do{c[h>>2]=c[j>>2];h=h+4|0;j=j+4|0}while((h|0)<(k|0));c[(c[o>>2]|0)+32>>2]=c[r>>2];s=c[s>>2]|0;s=Gv(s,0,Jv(c[p>>2]|0,158,0)|0)|0;c[c[o>>2]>>2]=s;a[(c[o>>2]|0)+4>>0]=119;c[(c[o>>2]|0)+36>>2]=0;c[(c[q>>2]|0)+40>>2]=0;c[(c[q>>2]|0)+44>>2]=0;c[(c[q>>2]|0)+48>>2]=0;c[(c[o>>2]|0)+52>>2]=0;c[(c[o>>2]|0)+56>>2]=0;c[(c[o>>2]|0)+68>>2]=0;s=(c[o>>2]|0)+6|0;b[s>>1]=(e[s>>1]|0)&-129;s=(c[o>>2]|0)+6|0;b[s>>1]=e[s>>1]|0|16384;c[(c[(c[q>>2]|0)+52>>2]|0)+56>>2]=c[q>>2];c[(c[q>>2]|0)+60>>2]=0;c[(c[q>>2]|0)+64>>2]=0;c[n>>2]=0;s=c[n>>2]|0;i=t;return s|0}return 0}function Qy(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0;Y=i;i=i+208|0;Q=Y+56|0;P=Y+48|0;O=Y+40|0;N=Y+24|0;R=Y+16|0;p=Y+8|0;m=Y;q=Y+196|0;h=Y+192|0;r=Y+188|0;F=Y+184|0;u=Y+180|0;w=Y+176|0;x=Y+172|0;J=Y+168|0;A=Y+164|0;C=Y+160|0;t=Y+156|0;z=Y+152|0;G=Y+148|0;B=Y+144|0;l=Y+202|0;o=Y+140|0;k=Y+136|0;j=Y+200|0;s=Y+132|0;E=Y+128|0;n=Y+124|0;y=Y+120|0;M=Y+116|0;V=Y+112|0;I=Y+108|0;H=Y+104|0;W=Y+100|0;U=Y+96|0;v=Y+92|0;T=Y+88|0;S=Y+84|0;X=Y+80|0;L=Y+72|0;D=Y+64|0;K=Y+60|0;c[h>>2]=f;c[r>>2]=g;c[F>>2]=c[c[h>>2]>>2];c[t>>2]=c[c[F>>2]>>2];b[l>>1]=b[(c[r>>2]|0)+6>>1]|0;f=(c[r>>2]|0)+6|0;b[f>>1]=e[f>>1]|32;if(a[(c[t>>2]|0)+65>>0]|0){c[q>>2]=2;X=c[q>>2]|0;i=Y;return X|0}if((c[(c[r>>2]|0)+32>>2]|0)!=0?(e[l>>1]&32|0)==0:0){c[J>>2]=c[(c[r>>2]|0)+32>>2];c[A>>2]=c[c[r>>2]>>2];if((c[(c[h>>2]|0)+12>>2]|0)==132){l=c[F>>2]|0;Qv(l,c[(Sy(c[r>>2]|0)|0)+68>>2]|0,0)}Ix(c[F>>2]|0,c[J>>2]|0);c[u>>2]=0;c[C>>2]=(c[J>>2]|0)+8;a:while(1){if((c[u>>2]|0)>=(c[c[J>>2]>>2]|0)){j=38;break}if(!((d[(c[C>>2]|0)+36+1>>0]|0)>>>5&1)){if(Ty(c[h>>2]|0,c[C>>2]|0)|0){j=12;break}do if(!(c[(c[C>>2]|0)+16>>2]|0)){if(!(c[(c[C>>2]|0)+8>>2]|0)){c[k>>2]=c[(c[C>>2]|0)+20>>2];if(Zx(c[h>>2]|0,c[k>>2]|0)|0){j=16;break a}l=ph(c[t>>2]|0,72,0)|0;c[o>>2]=l;c[(c[C>>2]|0)+16>>2]=l;if(!(c[o>>2]|0)){j=18;break a}b[(c[o>>2]|0)+36>>1]=1;l=c[t>>2]|0;c[m>>2]=c[o>>2];l=Bh(l,30964,m)|0;c[c[o>>2]>>2]=l;while(1){if(!(c[(c[k>>2]|0)+52>>2]|0))break;c[k>>2]=c[(c[k>>2]|0)+52>>2]}Gx(c[F>>2]|0,c[c[k>>2]>>2]|0,(c[o>>2]|0)+34|0,(c[o>>2]|0)+4|0)|0;b[(c[o>>2]|0)+32>>1]=-1;b[(c[o>>2]|0)+38>>1]=200;l=(c[o>>2]|0)+42|0;a[l>>0]=d[l>>0]|2;break}l=_w(c[F>>2]|0,0,c[C>>2]|0)|0;c[o>>2]=l;c[(c[C>>2]|0)+16>>2]=l;if(!(c[o>>2]|0)){j=24;break a}if((e[(c[o>>2]|0)+36>>1]|0)==65535){j=26;break a}l=(c[o>>2]|0)+36|0;b[l>>1]=(b[l>>1]|0)+1<<16>>16;if((d[(c[o>>2]|0)+42>>0]&16|0)==0?(Uy(c[F>>2]|0,c[C>>2]|0)|0)!=0:0){j=29;break a}if((d[(c[o>>2]|0)+42>>0]&16|0)==0?(c[(c[o>>2]|0)+12>>2]|0)==0:0)break;if(zx(c[F>>2]|0,c[o>>2]|0)|0){j=33;break a}l=Hx(c[t>>2]|0,c[(c[o>>2]|0)+12>>2]|0,0)|0;c[(c[C>>2]|0)+20>>2]=l;b[j>>1]=b[(c[o>>2]|0)+34>>1]|0;b[(c[o>>2]|0)+34>>1]=-1;Zx(c[h>>2]|0,c[(c[C>>2]|0)+20>>2]|0)|0;b[(c[o>>2]|0)+34>>1]=b[j>>1]|0}while(0);if(Vy(c[F>>2]|0,c[C>>2]|0)|0){j=36;break}}c[u>>2]=(c[u>>2]|0)+1;c[C>>2]=(c[C>>2]|0)+72}if((j|0)==12){c[q>>2]=2;X=c[q>>2]|0;i=Y;return X|0}else if((j|0)==16){c[q>>2]=2;X=c[q>>2]|0;i=Y;return X|0}else if((j|0)==18){c[q>>2]=2;X=c[q>>2]|0;i=Y;return X|0}else if((j|0)==24){c[q>>2]=2;X=c[q>>2]|0;i=Y;return X|0}else if((j|0)==26){X=c[F>>2]|0;c[p>>2]=c[c[o>>2]>>2];Ah(X,30977,p);c[(c[C>>2]|0)+16>>2]=0;c[q>>2]=2;X=c[q>>2]|0;i=Y;return X|0}else if((j|0)==29){c[q>>2]=2;X=c[q>>2]|0;i=Y;return X|0}else if((j|0)==33){c[q>>2]=2;X=c[q>>2]|0;i=Y;return X|0}else if((j|0)==36){c[q>>2]=2;X=c[q>>2]|0;i=Y;return X|0}else if((j|0)==38){if((d[(c[t>>2]|0)+65>>0]|0)==0?(Wy(c[F>>2]|0,c[r>>2]|0)|0)==0:0){c[x>>2]=0;while(1){if((c[x>>2]|0)>=(c[c[A>>2]>>2]|0))break;c[z>>2]=c[(c[(c[A>>2]|0)+4>>2]|0)+((c[x>>2]|0)*20|0)>>2];if((d[c[z>>2]>>0]|0)==158)break;if((d[c[z>>2]>>0]|0)==122?(d[c[(c[z>>2]|0)+16>>2]>>0]|0)==158:0)break;c[x>>2]=(c[x>>2]|0)+1}if((c[x>>2]|0)<(c[c[A>>2]>>2]|0)){c[s>>2]=c[(c[A>>2]|0)+4>>2];c[E>>2]=0;c[n>>2]=c[(c[c[F>>2]>>2]|0)+24>>2];if(c[n>>2]&4)h=(c[n>>2]&64|0)==0;else h=0;c[y>>2]=h&1;c[x>>2]=0;while(1){if((c[x>>2]|0)>=(c[c[A>>2]>>2]|0))break;c[z>>2]=c[(c[s>>2]|0)+((c[x>>2]|0)*20|0)>>2];c[G>>2]=c[(c[z>>2]|0)+16>>2];do if((d[c[z>>2]>>0]|0)!=158){if((d[c[z>>2]>>0]|0)==122?(d[c[G>>2]>>0]|0)==158:0){j=58;break}c[E>>2]=Gv(c[F>>2]|0,c[E>>2]|0,c[(c[s>>2]|0)+((c[x>>2]|0)*20|0)>>2]|0)|0;if(c[E>>2]|0){c[(c[(c[E>>2]|0)+4>>2]|0)+(((c[c[E>>2]>>2]|0)-1|0)*20|0)+4>>2]=c[(c[s>>2]|0)+((c[x>>2]|0)*20|0)+4>>2];c[(c[(c[E>>2]|0)+4>>2]|0)+(((c[c[E>>2]>>2]|0)-1|0)*20|0)+8>>2]=c[(c[s>>2]|0)+((c[x>>2]|0)*20|0)+8>>2];c[(c[s>>2]|0)+((c[x>>2]|0)*20|0)+4>>2]=0;c[(c[s>>2]|0)+((c[x>>2]|0)*20|0)+8>>2]=0}c[(c[s>>2]|0)+((c[x>>2]|0)*20|0)>>2]=0}else j=58;while(0);do if((j|0)==58){j=0;c[M>>2]=0;c[V>>2]=0;if((d[c[z>>2]>>0]|0)==122)c[V>>2]=c[(c[(c[z>>2]|0)+12>>2]|0)+8>>2];c[u>>2]=0;c[C>>2]=(c[J>>2]|0)+8;while(1){if((c[u>>2]|0)>=(c[c[J>>2]>>2]|0))break;c[I>>2]=c[(c[C>>2]|0)+16>>2];c[H>>2]=c[(c[C>>2]|0)+20>>2];c[W>>2]=c[(c[C>>2]|0)+12>>2];c[U>>2]=0;if(!(c[W>>2]|0))c[W>>2]=c[c[I>>2]>>2];if(a[(c[t>>2]|0)+65>>0]|0)break;if((c[H>>2]|0)!=0?(e[(c[H>>2]|0)+6>>1]&1024|0)!=0:0)j=72;else j=67;do if((j|0)==67){j=0;c[H>>2]=0;if((c[V>>2]|0)!=0?(Td(c[V>>2]|0,c[W>>2]|0)|0)!=0:0)break;c[v>>2]=Dh(c[t>>2]|0,c[(c[I>>2]|0)+64>>2]|0)|0;if((c[v>>2]|0)>=0)h=c[(c[(c[t>>2]|0)+16>>2]|0)+(c[v>>2]<<4)>>2]|0;else h=26308;c[U>>2]=h;j=72}while(0);b:do if((j|0)==72){j=0;c[w>>2]=0;while(1){if((c[w>>2]|0)>=(b[(c[I>>2]|0)+34>>1]|0))break b;c[T>>2]=c[(c[(c[I>>2]|0)+4>>2]|0)+((c[w>>2]|0)*24|0)>>2];if(!((c[V>>2]|0)!=0&(c[H>>2]|0)!=0?(Ly(c[(c[(c[c[H>>2]>>2]|0)+4>>2]|0)+((c[w>>2]|0)*20|0)+8>>2]|0,0,c[V>>2]|0,0)|0)==0:0))j=76;do if((j|0)==76){j=0;if((e[(c[r>>2]|0)+6>>1]&32768|0)==0?(d[(c[(c[I>>2]|0)+4>>2]|0)+((c[w>>2]|0)*24|0)+23>>0]&2|0)!=0:0)break;c[M>>2]=1;if((c[u>>2]|0)>0&(c[V>>2]|0)==0){if((d[(c[C>>2]|0)+36>>0]&4|0)!=0?(Xy(c[J>>2]|0,c[u>>2]|0,c[T>>2]|0,0,0)|0)!=0:0)break;if((Yy(c[(c[C>>2]|0)+52>>2]|0,c[T>>2]|0)|0)>=0)break}c[G>>2]=Jv(c[t>>2]|0,27,c[T>>2]|0)|0;c[S>>2]=c[T>>2];c[X>>2]=0;do if(c[y>>2]|0)j=84;else{if((c[c[J>>2]>>2]|0)>1){j=84;break}c[B>>2]=c[G>>2]}while(0);do if((j|0)==84){j=0;c[D>>2]=Jv(c[t>>2]|0,27,c[W>>2]|0)|0;c[B>>2]=rv(c[F>>2]|0,122,c[D>>2]|0,c[G>>2]|0,0)|0;if(c[U>>2]|0){c[D>>2]=Jv(c[t>>2]|0,27,c[U>>2]|0)|0;c[B>>2]=rv(c[F>>2]|0,122,c[D>>2]|0,c[B>>2]|0,0)|0}if(!(c[y>>2]|0))break;p=c[t>>2]|0;o=c[T>>2]|0;c[R>>2]=c[W>>2];c[R+4>>2]=o;c[S>>2]=Bh(p,31016,R)|0;c[X>>2]=c[S>>2]}while(0);c[E>>2]=Gv(c[F>>2]|0,c[E>>2]|0,c[B>>2]|0)|0;Cy(L,c[S>>2]|0);Hv(c[F>>2]|0,c[E>>2]|0,L,0);do if(c[E>>2]|0){if(!(e[(c[r>>2]|0)+6>>1]&1024))break;c[K>>2]=(c[(c[E>>2]|0)+4>>2]|0)+(((c[c[E>>2]>>2]|0)-1|0)*20|0);h=c[t>>2]|0;if(c[H>>2]|0){p=nh(h,c[(c[(c[c[H>>2]>>2]|0)+4>>2]|0)+((c[w>>2]|0)*20|0)+8>>2]|0)|0;c[(c[K>>2]|0)+8>>2]=p}else{o=c[W>>2]|0;p=c[S>>2]|0;c[N>>2]=c[U>>2];c[N+4>>2]=o;c[N+8>>2]=p;p=Bh(h,31022,N)|0;c[(c[K>>2]|0)+8>>2]=p}p=(c[K>>2]|0)+13|0;a[p>>0]=a[p>>0]&-3|2}while(0);Sf(c[t>>2]|0,c[X>>2]|0)}while(0);c[w>>2]=(c[w>>2]|0)+1}}while(0);c[u>>2]=(c[u>>2]|0)+1;c[C>>2]=(c[C>>2]|0)+72}if(!(c[M>>2]|0)){h=c[F>>2]|0;if(c[V>>2]|0){c[O>>2]=c[V>>2];Ah(h,31031,O);break}else{Ah(h,31049,P);break}}}while(0);c[x>>2]=(c[x>>2]|0)+1}Vu(c[t>>2]|0,c[A>>2]|0);c[c[r>>2]>>2]=c[E>>2]}if((c[c[r>>2]>>2]|0)!=0?(c[c[c[r>>2]>>2]>>2]|0)>(c[(c[t>>2]|0)+88+8>>2]|0):0){Ah(c[F>>2]|0,31069,Q);c[q>>2]=2;X=c[q>>2]|0;i=Y;return X|0}c[q>>2]=0;X=c[q>>2]|0;i=Y;return X|0}c[q>>2]=2;X=c[q>>2]|0;i=Y;return X|0}}c[q>>2]=1;X=c[q>>2]|0;i=Y;return X|0}function Ry(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;f=i;i=i+16|0;h=f+12|0;g=f+8|0;d=f+4|0;e=f;c[h>>2]=a;c[g>>2]=b;c[d>>2]=c[c[h>>2]>>2];c[e>>2]=c[(Sy(c[g>>2]|0)|0)+68>>2];if(!(c[e>>2]|0)){i=f;return}c[(c[d>>2]|0)+536>>2]=c[(c[e>>2]|0)+4>>2];i=f;return}function Sy(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;while(1){a=c[b>>2]|0;if(!(c[(c[b>>2]|0)+56>>2]|0))break;c[b>>2]=c[a+56>>2]}i=d;return a|0}function Ty(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=i;i=i+96|0;u=B+16|0;o=B+8|0;j=B;v=B+88|0;w=B+84|0;k=B+80|0;y=B+76|0;h=B+72|0;x=B+68|0;p=B+64|0;t=B+60|0;r=B+56|0;A=B+52|0;s=B+48|0;q=B+44|0;z=B+40|0;l=B+36|0;n=B+32|0;m=B+28|0;c[w>>2]=f;c[k>>2]=g;c[y>>2]=c[c[w>>2]>>2];c[h>>2]=c[c[y>>2]>>2];c[x>>2]=kz(c[(c[y>>2]|0)+536>>2]|0,c[k>>2]|0,p)|0;if(c[x>>2]|0){g=c[y>>2]|0;if(c[(c[x>>2]|0)+12>>2]|0){A=c[(c[x>>2]|0)+12>>2]|0;c[j>>2]=c[c[x>>2]>>2];Ah(g,A,j);c[v>>2]=1;A=c[v>>2]|0;i=B;return A|0}if(Uy(g,c[k>>2]|0)|0){c[v>>2]=1;A=c[v>>2]|0;i=B;return A|0}j=ph(c[h>>2]|0,72,0)|0;c[t>>2]=j;
  41. c[(c[k>>2]|0)+16>>2]=j;if(!(c[t>>2]|0)){c[v>>2]=2;A=c[v>>2]|0;i=B;return A|0}b[(c[t>>2]|0)+36>>1]=1;j=nh(c[h>>2]|0,c[c[x>>2]>>2]|0)|0;c[c[t>>2]>>2]=j;b[(c[t>>2]|0)+32>>1]=-1;b[(c[t>>2]|0)+38>>1]=200;j=(c[t>>2]|0)+42|0;a[j>>0]=d[j>>0]|66;j=Hx(c[h>>2]|0,c[(c[x>>2]|0)+8>>2]|0,0)|0;c[(c[k>>2]|0)+20>>2]=j;if(a[(c[h>>2]|0)+65>>0]|0){c[v>>2]=7;A=c[v>>2]|0;i=B;return A|0}c[A>>2]=c[(c[k>>2]|0)+20>>2];if((d[(c[A>>2]|0)+4>>0]|0)==116)g=1;else g=(d[(c[A>>2]|0)+4>>0]|0)==115;c[q>>2]=g&1;a:do if(c[q>>2]|0){c[n>>2]=c[(c[(c[k>>2]|0)+20>>2]|0)+32>>2];c[l>>2]=0;while(1){if((c[l>>2]|0)>=(c[c[n>>2]>>2]|0))break a;c[m>>2]=(c[n>>2]|0)+8+((c[l>>2]|0)*72|0);if(((c[(c[m>>2]|0)+4>>2]|0)==0?(c[(c[m>>2]|0)+8>>2]|0)!=0:0)?0==(Td(c[(c[m>>2]|0)+8>>2]|0,c[c[x>>2]>>2]|0)|0):0){c[(c[m>>2]|0)+16>>2]=c[t>>2];k=(c[m>>2]|0)+36+1|0;a[k>>0]=a[k>>0]&-33|32;k=(c[t>>2]|0)+36|0;b[k>>1]=(b[k>>1]|0)+1<<16>>16;k=(c[A>>2]|0)+6|0;b[k>>1]=e[k>>1]|8192}c[l>>2]=(c[l>>2]|0)+1}}while(0);if((e[(c[t>>2]|0)+36>>1]|0)>2){A=c[y>>2]|0;c[o>>2]=c[c[x>>2]>>2];Ah(A,31310,o);c[v>>2]=1;A=c[v>>2]|0;i=B;return A|0}c[(c[x>>2]|0)+12>>2]=31353;c[z>>2]=c[(c[y>>2]|0)+536>>2];c[(c[y>>2]|0)+536>>2]=c[p>>2];g=c[A>>2]|0;if(c[q>>2]|0)g=c[g+52>>2]|0;Zx(c[w>>2]|0,g)|0;c[(c[y>>2]|0)+536>>2]=c[p>>2];c[s>>2]=c[A>>2];while(1){g=c[s>>2]|0;if(!(c[(c[s>>2]|0)+52>>2]|0))break;c[s>>2]=c[g+52>>2]}c[r>>2]=c[g>>2];if(c[(c[x>>2]|0)+4>>2]|0){if((c[r>>2]|0)!=0?(c[c[r>>2]>>2]|0)!=(c[c[(c[x>>2]|0)+4>>2]>>2]|0):0){A=c[y>>2]|0;t=c[c[r>>2]>>2]|0;w=c[c[(c[x>>2]|0)+4>>2]>>2]|0;c[u>>2]=c[c[x>>2]>>2];c[u+4>>2]=t;c[u+8>>2]=w;Ah(A,31376,u);c[(c[y>>2]|0)+536>>2]=c[z>>2];c[v>>2]=1;A=c[v>>2]|0;i=B;return A|0}c[r>>2]=c[(c[x>>2]|0)+4>>2]}Gx(c[y>>2]|0,c[r>>2]|0,(c[t>>2]|0)+34|0,(c[t>>2]|0)+4|0)|0;if(c[q>>2]|0){g=(c[x>>2]|0)+12|0;if(e[(c[A>>2]|0)+6>>1]&8192)c[g>>2]=31414;else c[g>>2]=31448;Zx(c[w>>2]|0,c[A>>2]|0)|0}c[(c[x>>2]|0)+12>>2]=0;c[(c[y>>2]|0)+536>>2]=c[z>>2]}c[v>>2]=0;A=c[v>>2]|0;i=B;return A|0}function Uy(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;h=j;e=j+12|0;f=j+8|0;g=j+4|0;c[f>>2]=a;c[g>>2]=b;if((d[(c[g>>2]|0)+36+1>>0]|0)>>>2&1){a=c[f>>2]|0;c[h>>2]=c[(c[g>>2]|0)+8>>2];Ah(a,31287,h);c[e>>2]=1;h=c[e>>2]|0;i=j;return h|0}else{c[e>>2]=0;h=c[e>>2]|0;i=j;return h|0}return 0}function Vy(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;l=n;f=n+28|0;g=n+24|0;h=n+20|0;k=n+16|0;m=n+12|0;j=n+8|0;c[g>>2]=b;c[h>>2]=e;do if((c[(c[h>>2]|0)+16>>2]|0)!=0?((d[(c[h>>2]|0)+36+1>>0]|0)>>>1&1|0)!=0:0){c[k>>2]=c[(c[h>>2]|0)+16>>2];c[m>>2]=c[(c[h>>2]|0)+64>>2];c[j>>2]=c[(c[k>>2]|0)+8>>2];while(1){if(!(c[j>>2]|0))break;if(!(Td(c[c[j>>2]>>2]|0,c[m>>2]|0)|0))break;c[j>>2]=c[(c[j>>2]|0)+20>>2]}if(c[j>>2]|0){c[(c[h>>2]|0)+68>>2]=c[j>>2];break}k=c[g>>2]|0;c[l>>2]=c[m>>2];c[l+4>>2]=0;Ah(k,31269,l);a[(c[g>>2]|0)+17>>0]=1;c[f>>2]=1;m=c[f>>2]|0;i=n;return m|0}while(0);c[f>>2]=0;m=c[f>>2]|0;i=n;return m|0}function Wy(a,e){a=a|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+96|0;A=C+16|0;z=C+8|0;y=C;w=C+92|0;x=C+88|0;f=C+84|0;u=C+80|0;g=C+76|0;o=C+72|0;p=C+68|0;s=C+64|0;q=C+60|0;t=C+56|0;n=C+52|0;v=C+48|0;h=C+44|0;k=C+40|0;r=C+36|0;B=C+32|0;j=C+28|0;l=C+24|0;m=C+20|0;c[x>>2]=a;c[f>>2]=e;c[u>>2]=c[(c[f>>2]|0)+32>>2];c[p>>2]=(c[u>>2]|0)+8;c[s>>2]=(c[p>>2]|0)+72;c[g>>2]=0;a:while(1){if((c[g>>2]|0)>=((c[c[u>>2]>>2]|0)-1|0)){f=28;break}c[q>>2]=c[(c[p>>2]|0)+16>>2];c[t>>2]=c[(c[s>>2]|0)+16>>2];b:do if(!((c[q>>2]|0)==0|(c[t>>2]|0)==0)){c[n>>2]=(d[(c[s>>2]|0)+36>>0]&32|0)!=0&1;c:do if(d[(c[s>>2]|0)+36>>0]&4){if(c[(c[s>>2]|0)+48>>2]|0){f=7;break a}if(c[(c[s>>2]|0)+52>>2]|0){f=7;break a}c[o>>2]=0;while(1){if((c[o>>2]|0)>=(b[(c[t>>2]|0)+34>>1]|0))break c;c[v>>2]=c[(c[(c[t>>2]|0)+4>>2]|0)+((c[o>>2]|0)*24|0)>>2];if(Xy(c[u>>2]|0,(c[g>>2]|0)+1|0,c[v>>2]|0,h,k)|0)_y(c[x>>2]|0,c[u>>2]|0,c[h>>2]|0,c[k>>2]|0,(c[g>>2]|0)+1|0,c[o>>2]|0,c[n>>2]|0,(c[f>>2]|0)+36|0);c[o>>2]=(c[o>>2]|0)+1}}while(0);if((c[(c[s>>2]|0)+48>>2]|0)!=0?(c[(c[s>>2]|0)+52>>2]|0)!=0:0){f=15;break a}if(c[(c[s>>2]|0)+48>>2]|0){if(c[n>>2]|0)$y(c[(c[s>>2]|0)+48>>2]|0,c[(c[s>>2]|0)+44>>2]|0);a=az(c[c[x>>2]>>2]|0,c[(c[f>>2]|0)+36>>2]|0,c[(c[s>>2]|0)+48>>2]|0)|0;c[(c[f>>2]|0)+36>>2]=a;c[(c[s>>2]|0)+48>>2]=0}if(c[(c[s>>2]|0)+52>>2]|0){c[r>>2]=c[(c[s>>2]|0)+52>>2];c[o>>2]=0;while(1){if((c[o>>2]|0)>=(c[(c[r>>2]|0)+4>>2]|0))break b;c[B>>2]=c[(c[c[r>>2]>>2]|0)+(c[o>>2]<<3)>>2];c[m>>2]=Zy(c[t>>2]|0,c[B>>2]|0)|0;if((c[m>>2]|0)<0){f=25;break a}if(!(Xy(c[u>>2]|0,(c[g>>2]|0)+1|0,c[B>>2]|0,j,l)|0)){f=25;break a}_y(c[x>>2]|0,c[u>>2]|0,c[j>>2]|0,c[l>>2]|0,(c[g>>2]|0)+1|0,c[m>>2]|0,c[n>>2]|0,(c[f>>2]|0)+36|0);c[o>>2]=(c[o>>2]|0)+1}}}while(0);c[g>>2]=(c[g>>2]|0)+1;c[s>>2]=(c[s>>2]|0)+72;c[p>>2]=(c[p>>2]|0)+72}if((f|0)==7){B=c[x>>2]|0;c[y>>2]=0;Ah(B,31100,y);c[w>>2]=1;B=c[w>>2]|0;i=C;return B|0}else if((f|0)==15){Ah(c[x>>2]|0,31150,z);c[w>>2]=1;B=c[w>>2]|0;i=C;return B|0}else if((f|0)==25){z=c[x>>2]|0;c[A>>2]=c[B>>2];Ah(z,31205,A);c[w>>2]=1;B=c[w>>2]|0;i=C;return B|0}else if((f|0)==28){c[w>>2]=0;B=c[w>>2]|0;i=C;return B|0}return 0}function Xy(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+32|0;g=q+28|0;h=q+24|0;j=q+20|0;k=q+16|0;l=q+12|0;m=q+8|0;n=q+4|0;o=q;c[h>>2]=a;c[j>>2]=b;c[k>>2]=d;c[l>>2]=e;c[m>>2]=f;c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[j>>2]|0)){p=8;break}c[o>>2]=Zy(c[(c[h>>2]|0)+8+((c[n>>2]|0)*72|0)+16>>2]|0,c[k>>2]|0)|0;if((c[o>>2]|0)>=0)break;c[n>>2]=(c[n>>2]|0)+1}if((p|0)==8){c[g>>2]=0;p=c[g>>2]|0;i=q;return p|0}if(c[l>>2]|0){c[c[l>>2]>>2]=c[n>>2];c[c[m>>2]>>2]=c[o>>2]}c[g>>2]=1;p=c[g>>2]|0;i=q;return p|0}function Yy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;g=h+12|0;d=h+8|0;e=h+4|0;f=h;c[d>>2]=a;c[e>>2]=b;if(!(c[d>>2]|0)){c[g>>2]=-1;g=c[g>>2]|0;i=h;return g|0}c[f>>2]=0;while(1){if((c[f>>2]|0)>=(c[(c[d>>2]|0)+4>>2]|0)){a=8;break}a=(Td(c[(c[c[d>>2]>>2]|0)+(c[f>>2]<<3)>>2]|0,c[e>>2]|0)|0)==0;b=c[f>>2]|0;if(a){a=6;break}c[f>>2]=b+1}if((a|0)==6){c[g>>2]=b;g=c[g>>2]|0;i=h;return g|0}else if((a|0)==8){c[g>>2]=-1;g=c[g>>2]|0;i=h;return g|0}return 0}function Zy(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;h=j+12|0;e=j+8|0;f=j+4|0;g=j;c[e>>2]=a;c[f>>2]=d;c[g>>2]=0;while(1){if((c[g>>2]|0)>=(b[(c[e>>2]|0)+34>>1]|0)){a=6;break}a=(Td(c[(c[(c[e>>2]|0)+4>>2]|0)+((c[g>>2]|0)*24|0)>>2]|0,c[f>>2]|0)|0)==0;d=c[g>>2]|0;if(a){a=4;break}c[g>>2]=d+1}if((a|0)==4){c[h>>2]=d;h=c[h>>2]|0;i=j;return h|0}else if((a|0)==6){c[h>>2]=-1;h=c[h>>2]|0;i=j;return h|0}return 0}function _y(a,d,e,f,g,h,j,k){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;p=i;i=i+48|0;s=p+44|0;v=p+40|0;x=p+36|0;w=p+32|0;u=p+28|0;t=p+24|0;q=p+20|0;l=p+16|0;m=p+12|0;r=p+8|0;n=p+4|0;o=p;c[s>>2]=a;c[v>>2]=d;c[x>>2]=e;c[w>>2]=f;c[u>>2]=g;c[t>>2]=h;c[q>>2]=j;c[l>>2]=k;c[m>>2]=c[c[s>>2]>>2];c[r>>2]=jz(c[m>>2]|0,c[v>>2]|0,c[x>>2]|0,c[w>>2]|0)|0;c[n>>2]=jz(c[m>>2]|0,c[v>>2]|0,c[u>>2]|0,c[t>>2]|0)|0;c[o>>2]=rv(c[s>>2]|0,79,c[r>>2]|0,c[n>>2]|0,0)|0;if(!((c[o>>2]|0)!=0&(c[q>>2]|0)!=0)){v=c[m>>2]|0;x=c[l>>2]|0;x=c[x>>2]|0;w=c[o>>2]|0;w=az(v,x,w)|0;x=c[l>>2]|0;c[x>>2]=w;i=p;return}v=(c[o>>2]|0)+4|0;c[v>>2]=c[v>>2]|1;b[(c[o>>2]|0)+36>>1]=c[(c[n>>2]|0)+28>>2];v=c[m>>2]|0;x=c[l>>2]|0;x=c[x>>2]|0;w=c[o>>2]|0;w=az(v,x,w)|0;x=c[l>>2]|0;c[x>>2]=w;i=p;return}function $y(a,e){a=a|0;e=e|0;var f=0,g=0,h=0,j=0;j=i;i=i+16|0;f=j+8|0;g=j+4|0;h=j;c[f>>2]=a;c[g>>2]=e;while(1){if(!(c[f>>2]|0))break;a=(c[f>>2]|0)+4|0;c[a>>2]=c[a>>2]|1;b[(c[f>>2]|0)+36>>1]=c[g>>2];a:do if((d[c[f>>2]>>0]|0|0)==151?(c[(c[f>>2]|0)+20>>2]|0)!=0:0){c[h>>2]=0;while(1){if((c[h>>2]|0)>=(c[c[(c[f>>2]|0)+20>>2]>>2]|0))break a;$y(c[(c[(c[(c[f>>2]|0)+20>>2]|0)+4>>2]|0)+((c[h>>2]|0)*20|0)>>2]|0,c[g>>2]|0);c[h>>2]=(c[h>>2]|0)+1}}while(0);$y(c[(c[f>>2]|0)+12>>2]|0,c[g>>2]|0);c[f>>2]=c[(c[f>>2]|0)+16>>2]}i=j;return}function az(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+16|0;f=k+12|0;g=k+8|0;h=k+4|0;j=k;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;a=c[h>>2]|0;if(!(c[g>>2]|0)){c[e>>2]=a;j=c[e>>2]|0;i=k;return j|0}b=c[g>>2]|0;if(!a){c[e>>2]=b;j=c[e>>2]|0;i=k;return j|0}if((bz(b)|0)==0?(bz(c[h>>2]|0)|0)==0:0){c[j>>2]=cz(c[f>>2]|0,72,0,0)|0;dz(c[f>>2]|0,c[j>>2]|0,c[g>>2]|0,c[h>>2]|0);c[e>>2]=c[j>>2];j=c[e>>2]|0;i=k;return j|0}Zu(c[f>>2]|0,c[g>>2]|0);Zu(c[f>>2]|0,c[h>>2]|0);c[e>>2]=cz(c[f>>2]|0,132,5092,0)|0;j=c[e>>2]|0;i=k;return j|0}function bz(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;b=f+8|0;d=f+4|0;e=f;c[d>>2]=a;c[e>>2]=0;do if(!(c[(c[d>>2]|0)+4>>2]&1))if(ky(c[d>>2]|0,e)|0){c[b>>2]=(c[e>>2]|0)==0&1;break}else{c[b>>2]=0;break}else c[b>>2]=0;while(0);i=f;return c[b>>2]|0}function cz(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+32|0;h=q+28|0;j=q+24|0;k=q+20|0;l=q+16|0;p=q+12|0;o=q+8|0;n=q+4|0;m=q;c[h>>2]=d;c[j>>2]=e;c[k>>2]=f;c[l>>2]=g;c[o>>2]=0;c[n>>2]=0;do if(c[k>>2]|0){if(((c[j>>2]|0)==132?(c[c[k>>2]>>2]|0)!=0:0)?(Li(c[c[k>>2]>>2]|0,n)|0)!=0:0)break;c[o>>2]=(c[(c[k>>2]|0)+4>>2]|0)+1}while(0);c[p>>2]=Fw(c[h>>2]|0,48+(c[o>>2]|0)|0,0)|0;if(!(c[p>>2]|0)){p=c[p>>2]|0;i=q;return p|0}h=c[p>>2]|0;d=h+48|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(d|0));a[c[p>>2]>>0]=c[j>>2];b[(c[p>>2]|0)+34>>1]=-1;do if(c[k>>2]|0){h=c[p>>2]|0;if(!(c[o>>2]|0)){o=h+4|0;c[o>>2]=c[o>>2]|1024;c[(c[p>>2]|0)+8>>2]=c[n>>2];break}c[(c[p>>2]|0)+8>>2]=h+48;if(c[(c[k>>2]|0)+4>>2]|0)iR(c[(c[p>>2]|0)+8>>2]|0,c[c[k>>2]>>2]|0,c[(c[k>>2]|0)+4>>2]|0)|0;a[(c[(c[p>>2]|0)+8>>2]|0)+(c[(c[k>>2]|0)+4>>2]|0)>>0]=0;if(((c[l>>2]|0)!=0&(c[o>>2]|0)>=3?(o=a[c[c[k>>2]>>2]>>0]|0,c[m>>2]=o,(o|0)==39|(c[m>>2]|0)==34|(c[m>>2]|0)==91|(c[m>>2]|0)==96):0)?(Jw(c[(c[p>>2]|0)+8>>2]|0)|0,(c[m>>2]|0)==34):0){o=(c[p>>2]|0)+4|0;c[o>>2]=c[o>>2]|64}}while(0);c[(c[p>>2]|0)+24>>2]=1;p=c[p>>2]|0;i=q;return p|0}function dz(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;f=k+12|0;g=k+8|0;h=k+4|0;j=k;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;if(!(c[g>>2]|0)){Zu(c[f>>2]|0,c[h>>2]|0);Zu(c[f>>2]|0,c[j>>2]|0);i=k;return}if(c[j>>2]|0){c[(c[g>>2]|0)+16>>2]=c[j>>2];b=(c[g>>2]|0)+4|0;c[b>>2]=c[b>>2]|2097408&c[(c[j>>2]|0)+4>>2]}if(c[h>>2]|0){c[(c[g>>2]|0)+12>>2]=c[h>>2];b=(c[g>>2]|0)+4|0;c[b>>2]=c[b>>2]|2097408&c[(c[h>>2]|0)+4>>2]}ez(c[g>>2]|0);i=k;return}function ez(a){a=a|0;var b=0,d=0,e=0,f=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;c[d>>2]=0;fz(c[(c[b>>2]|0)+12>>2]|0,d);fz(c[(c[b>>2]|0)+16>>2]|0,d);a=(c[b>>2]|0)+20|0;if(!(c[(c[b>>2]|0)+4>>2]&2048)){if(c[a>>2]|0){hz(c[(c[b>>2]|0)+20>>2]|0,d);f=2097408&(iz(c[(c[b>>2]|0)+20>>2]|0)|0);a=(c[b>>2]|0)+4|0;c[a>>2]=c[a>>2]|f}}else gz(c[a>>2]|0,d);c[(c[b>>2]|0)+24>>2]=(c[d>>2]|0)+1;i=e;return}function fz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f+4|0;e=f;c[d>>2]=a;c[e>>2]=b;if(!(c[d>>2]|0)){i=f;return}if((c[(c[d>>2]|0)+24>>2]|0)<=(c[c[e>>2]>>2]|0)){i=f;return}c[c[e>>2]>>2]=c[(c[d>>2]|0)+24>>2];i=f;return}function gz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f+4|0;e=f;c[d>>2]=a;c[e>>2]=b;if(!(c[d>>2]|0)){i=f;return}fz(c[(c[d>>2]|0)+36>>2]|0,c[e>>2]|0);fz(c[(c[d>>2]|0)+44>>2]|0,c[e>>2]|0);fz(c[(c[d>>2]|0)+60>>2]|0,c[e>>2]|0);fz(c[(c[d>>2]|0)+64>>2]|0,c[e>>2]|0);hz(c[c[d>>2]>>2]|0,c[e>>2]|0);hz(c[(c[d>>2]|0)+40>>2]|0,c[e>>2]|0);hz(c[(c[d>>2]|0)+48>>2]|0,c[e>>2]|0);gz(c[(c[d>>2]|0)+52>>2]|0,c[e>>2]|0);i=f;return}function hz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;e=g+4|0;f=g;c[d>>2]=a;c[e>>2]=b;if(!(c[d>>2]|0)){i=g;return}c[f>>2]=0;while(1){if((c[f>>2]|0)>=(c[c[d>>2]>>2]|0))break;fz(c[(c[(c[d>>2]|0)+4>>2]|0)+((c[f>>2]|0)*20|0)>>2]|0,c[e>>2]|0);c[f>>2]=(c[f>>2]|0)+1}i=g;return}function iz(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=i;i=i+16|0;b=g+12|0;d=g+8|0;e=g+4|0;f=g;c[b>>2]=a;c[e>>2]=0;if(!(c[b>>2]|0)){a=c[e>>2]|0;i=g;return a|0}c[d>>2]=0;while(1){if((c[d>>2]|0)>=(c[c[b>>2]>>2]|0))break;c[f>>2]=c[(c[(c[b>>2]|0)+4>>2]|0)+((c[d>>2]|0)*20|0)>>2];if(c[f>>2]|0)c[e>>2]=c[e>>2]|c[(c[f>>2]|0)+4>>2];c[d>>2]=(c[d>>2]|0)+1}a=c[e>>2]|0;i=g;return a|0}function jz(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+32|0;n=m+20|0;g=m+16|0;h=m+12|0;j=m+8|0;k=m+4|0;l=m;c[n>>2]=a;c[g>>2]=d;c[h>>2]=e;c[j>>2]=f;c[k>>2]=cz(c[n>>2]|0,152,0,0)|0;if(!(c[k>>2]|0)){n=c[k>>2]|0;i=m;return n|0}c[l>>2]=(c[g>>2]|0)+8+((c[h>>2]|0)*72|0);c[(c[k>>2]|0)+44>>2]=c[(c[l>>2]|0)+16>>2];c[(c[k>>2]|0)+28>>2]=c[(c[l>>2]|0)+44>>2];if((b[(c[(c[k>>2]|0)+44>>2]|0)+32>>1]|0)==(c[j>>2]|0))b[(c[k>>2]|0)+32>>1]=-1;else{b[(c[k>>2]|0)+32>>1]=c[j>>2];e=lR(1,0,((c[j>>2]|0)>=64?63:c[j>>2]|0)|0)|0;n=(c[l>>2]|0)+56|0;l=n;d=c[l+4>>2]|C;c[n>>2]=c[l>>2]|e;c[n+4>>2]=d}n=(c[k>>2]|0)+4|0;c[n>>2]=c[n>>2]|4;n=c[k>>2]|0;i=m;return n|0}function kz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;e=m+24|0;f=m+20|0;g=m+16|0;h=m+12|0;l=m+8|0;k=m+4|0;j=m;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;a:do if((c[(c[g>>2]|0)+4>>2]|0)==0?(d=c[(c[g>>2]|0)+8>>2]|0,c[l>>2]=d,(d|0)!=0):0){c[k>>2]=c[f>>2];b:while(1){if(!(c[k>>2]|0))break a;c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[c[k>>2]>>2]|0))break;if(!(Td(c[l>>2]|0,c[(c[k>>2]|0)+8+(c[j>>2]<<4)>>2]|0)|0))break b;c[j>>2]=(c[j>>2]|0)+1}c[k>>2]=c[(c[k>>2]|0)+4>>2]}c[c[h>>2]>>2]=c[k>>2];c[e>>2]=(c[k>>2]|0)+8+(c[j>>2]<<4);l=c[e>>2]|0;i=m;return l|0}while(0);c[e>>2]=0;l=c[e>>2]|0;i=m;return l|0}function lz(a,e,f){a=a|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;g=r+36|0;h=r+32|0;j=r+28|0;k=r+24|0;n=r+20|0;l=r+16|0;m=r+12|0;o=r+8|0;p=r+4|0;q=r;c[h>>2]=a;c[j>>2]=e;c[k>>2]=f;if(!(c[j>>2]|0)){c[g>>2]=0;q=c[g>>2]|0;i=r;return q|0}if((c[c[j>>2]>>2]|0)>0)a=((c[c[j>>2]>>2]|0)-1|0)*72|0;else a=0;c[m>>2]=80+a;m=c[m>>2]|0;c[n>>2]=Fw(c[h>>2]|0,m,((m|0)<0)<<31>>31)|0;if(!(c[n>>2]|0)){c[g>>2]=0;q=c[g>>2]|0;i=r;return q|0}m=c[c[j>>2]>>2]|0;c[(c[n>>2]|0)+4>>2]=m;c[c[n>>2]>>2]=m;c[l>>2]=0;while(1){if((c[l>>2]|0)>=(c[c[j>>2]>>2]|0))break;c[o>>2]=(c[n>>2]|0)+8+((c[l>>2]|0)*72|0);c[p>>2]=(c[j>>2]|0)+8+((c[l>>2]|0)*72|0);c[c[o>>2]>>2]=c[c[p>>2]>>2];m=nh(c[h>>2]|0,c[(c[p>>2]|0)+4>>2]|0)|0;c[(c[o>>2]|0)+4>>2]=m;m=nh(c[h>>2]|0,c[(c[p>>2]|0)+8>>2]|0)|0;c[(c[o>>2]|0)+8>>2]=m;m=nh(c[h>>2]|0,c[(c[p>>2]|0)+12>>2]|0)|0;c[(c[o>>2]|0)+12>>2]=m;c[(c[o>>2]|0)+36>>2]=c[(c[p>>2]|0)+36>>2];c[(c[o>>2]|0)+44>>2]=c[(c[p>>2]|0)+44>>2];c[(c[o>>2]|0)+24>>2]=c[(c[p>>2]|0)+24>>2];c[(c[o>>2]|0)+28>>2]=c[(c[p>>2]|0)+28>>2];if((d[(c[o>>2]|0)+36+1>>0]|0)>>>1&1){m=nh(c[h>>2]|0,c[(c[p>>2]|0)+64>>2]|0)|0;c[(c[o>>2]|0)+64>>2]=m}c[(c[o>>2]|0)+68>>2]=c[(c[p>>2]|0)+68>>2];if((d[(c[o>>2]|0)+36+1>>0]|0)>>>2&1){m=vy(c[h>>2]|0,c[(c[p>>2]|0)+64>>2]|0,c[k>>2]|0)|0;c[(c[o>>2]|0)+64>>2]=m}m=c[(c[p>>2]|0)+16>>2]|0;c[(c[o>>2]|0)+16>>2]=m;c[q>>2]=m;if(c[q>>2]|0){m=(c[q>>2]|0)+36|0;b[m>>1]=(b[m>>1]|0)+1<<16>>16}f=Hx(c[h>>2]|0,c[(c[p>>2]|0)+20>>2]|0,c[k>>2]|0)|0;c[(c[o>>2]|0)+20>>2]=f;f=ny(c[h>>2]|0,c[(c[p>>2]|0)+48>>2]|0,c[k>>2]|0)|0;c[(c[o>>2]|0)+48>>2]=f;f=nz(c[h>>2]|0,c[(c[p>>2]|0)+52>>2]|0)|0;c[(c[o>>2]|0)+52>>2]=f;f=(c[p>>2]|0)+56|0;e=c[f+4>>2]|0;m=(c[o>>2]|0)+56|0;c[m>>2]=c[f>>2];c[m+4>>2]=e;c[l>>2]=(c[l>>2]|0)+1}c[g>>2]=c[n>>2];q=c[g>>2]|0;i=r;return q|0}function mz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+32|0;d=j+16|0;e=j+12|0;h=j+8|0;g=j+4|0;f=j;c[d>>2]=a;c[e>>2]=b;c[h>>2]=0;if(!(c[e>>2]|0)){h=c[h>>2]|0;i=j;return h|0}c[g>>2]=24+((c[c[e>>2]>>2]|0)-1<<4);b=c[g>>2]|0;c[h>>2]=ph(c[d>>2]|0,b,((b|0)<0)<<31>>31)|0;if(!(c[h>>2]|0)){h=c[h>>2]|0;i=j;return h|0}c[c[h>>2]>>2]=c[c[e>>2]>>2];c[f>>2]=0;while(1){if((c[f>>2]|0)>=(c[c[e>>2]>>2]|0))break;b=Hx(c[d>>2]|0,c[(c[e>>2]|0)+8+(c[f>>2]<<4)+8>>2]|0,0)|0;c[(c[h>>2]|0)+8+(c[f>>2]<<4)+8>>2]=b;b=vy(c[d>>2]|0,c[(c[e>>2]|0)+8+(c[f>>2]<<4)+4>>2]|0,0)|0;c[(c[h>>2]|0)+8+(c[f>>2]<<4)+4>>2]=b;b=nh(c[d>>2]|0,c[(c[e>>2]|0)+8+(c[f>>2]<<4)>>2]|0)|0;c[(c[h>>2]|0)+8+(c[f>>2]<<4)>>2]=b;c[f>>2]=(c[f>>2]|0)+1}h=c[h>>2]|0;i=j;return h|0}function nz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;d=l+24|0;e=l+20|0;f=l+16|0;h=l+12|0;g=l+8|0;j=l+4|0;k=l;c[e>>2]=a;c[f>>2]=b;if(!(c[f>>2]|0)){c[d>>2]=0;k=c[d>>2]|0;i=l;return k|0}c[h>>2]=Fw(c[e>>2]|0,8,0)|0;if(!(c[h>>2]|0)){c[d>>2]=0;k=c[d>>2]|0;i=l;return k|0}c[(c[h>>2]|0)+4>>2]=c[(c[f>>2]|0)+4>>2];b=Fw(c[e>>2]|0,c[(c[f>>2]|0)+4>>2]<<3,0)|0;c[c[h>>2]>>2]=b;if(!(c[c[h>>2]>>2]|0)){Sf(c[e>>2]|0,c[h>>2]|0);c[d>>2]=0;k=c[d>>2]|0;i=l;return k|0}c[g>>2]=0;while(1){if((c[g>>2]|0)>=(c[(c[f>>2]|0)+4>>2]|0))break;c[j>>2]=(c[c[h>>2]>>2]|0)+(c[g>>2]<<3);c[k>>2]=(c[c[f>>2]>>2]|0)+(c[g>>2]<<3);b=nh(c[e>>2]|0,c[c[k>>2]>>2]|0)|0;c[c[j>>2]>>2]=b;c[(c[j>>2]|0)+4>>2]=c[(c[k>>2]|0)+4>>2];c[g>>2]=(c[g>>2]|0)+1}c[d>>2]=c[h>>2];k=c[d>>2]|0;i=l;return k|0}function oz(e,f,g,h,j){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;N=i;i=i+144|0;A=N+32|0;K=N+24|0;J=N+16|0;m=N+8|0;l=N;E=N+132|0;F=N+128|0;n=N+124|0;o=N+120|0;p=N+116|0;G=N+112|0;z=N+96|0;H=N+92|0;I=N+88|0;q=N+84|0;v=N+80|0;L=N+76|0;M=N+72|0;t=N+68|0;k=N+64|0;B=N+60|0;s=N+56|0;y=N+136|0;C=N+52|0;x=N+48|0;r=N+44|0;u=N+40|0;w=N+36|0;c[F>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[G>>2]=j;c[q>>2]=c[(c[n>>2]|0)+52>>2];c[v>>2]=c[(c[n>>2]|0)+48>>2];c[L>>2]=0;c[k>>2]=c[(c[F>>2]|0)+328>>2];while(1){if(!(c[k>>2]|0))break;if((c[(c[k>>2]|0)+4>>2]|0)==(c[n>>2]|0)){D=4;break}c[k>>2]=c[(c[k>>2]|0)+8>>2]}if((D|0)==4){M=c[F>>2]|0;c[l>>2]=c[c[n>>2]>>2];M=Bh(M,31513,l)|0;c[c[G>>2]>>2]=M;c[E>>2]=6;M=c[E>>2]|0;i=N;return M|0}h=c[F>>2]|0;c[m>>2]=c[c[n>>2]>>2];c[M>>2]=Bh(h,19255,m)|0;if(!(c[M>>2]|0)){c[E>>2]=7;M=c[E>>2]|0;i=N;return M|0}c[H>>2]=ph(c[F>>2]|0,28,0)|0;e=c[F>>2]|0;if(!(c[H>>2]|0)){Sf(e,c[M>>2]|0);c[E>>2]=7;M=c[E>>2]|0;i=N;return M|0}c[c[H>>2]>>2]=e;c[(c[H>>2]|0)+4>>2]=c[o>>2];c[t>>2]=Dh(c[F>>2]|0,c[(c[n>>2]|0)+64>>2]|0)|0;c[(c[(c[n>>2]|0)+52>>2]|0)+4>>2]=c[(c[(c[F>>2]|0)+16>>2]|0)+(c[t>>2]<<4)>>2];c[z+4>>2]=c[n>>2];c[z>>2]=c[H>>2];c[z+8>>2]=c[(c[F>>2]|0)+328>>2];c[z+12>>2]=0;c[(c[F>>2]|0)+328>>2]=z;c[I>>2]=Sb[c[p>>2]&255](c[F>>2]|0,c[(c[o>>2]|0)+8>>2]|0,c[v>>2]|0,c[q>>2]|0,(c[H>>2]|0)+8|0,L)|0;c[(c[F>>2]|0)+328>>2]=c[z+8>>2];if((c[I>>2]|0)==7)jh(c[F>>2]|0);a:do if(!(c[I>>2]|0)){if(c[(c[H>>2]|0)+8>>2]|0){L=c[(c[H>>2]|0)+8>>2]|0;c[L>>2]=0;c[L+4>>2]=0;c[L+8>>2]=0;c[c[(c[H>>2]|0)+8>>2]>>2]=c[c[o>>2]>>2];c[(c[H>>2]|0)+12>>2]=1;if(!(c[z+12>>2]|0)){c[B>>2]=31585;K=c[F>>2]|0;L=c[B>>2]|0;c[A>>2]=c[c[n>>2]>>2];L=Bh(K,L,A)|0;c[c[G>>2]>>2]=L;hu(c[H>>2]|0);c[I>>2]=1;break}a[y>>0]=0;c[(c[H>>2]|0)+24>>2]=c[(c[n>>2]|0)+56>>2];c[(c[n>>2]|0)+56>>2]=c[H>>2];c[s>>2]=0;while(1){if((c[s>>2]|0)>=(b[(c[n>>2]|0)+34>>1]|0))break a;c[C>>2]=c[(c[(c[n>>2]|0)+4>>2]|0)+((c[s>>2]|0)*24|0)+12>>2];c[r>>2]=0;do if(c[C>>2]|0){c[x>>2]=If(c[C>>2]|0)|0;if(!(zd(31631,c[C>>2]|0,6)|0)){if((a[(c[C>>2]|0)+6>>0]|0)!=0?(a[(c[C>>2]|0)+6>>0]|0)!=32:0)D=27}else D=27;b:do if((D|0)==27){D=0;c[r>>2]=0;while(1){if((c[r>>2]|0)>=(c[x>>2]|0))break b;if(!(zd(31638,(c[C>>2]|0)+(c[r>>2]|0)|0,7)|0)){if(!(a[(c[C>>2]|0)+((c[r>>2]|0)+7)>>0]|0))break;if((a[(c[C>>2]|0)+((c[r>>2]|0)+7)>>0]|0)==32)break}c[r>>2]=(c[r>>2]|0)+1}c[r>>2]=(c[r>>2]|0)+1}while(0);if((c[r>>2]|0)>=(c[x>>2]|0)){L=(c[n>>2]|0)+42|0;a[L>>0]=d[L>>0]|d[y>>0];break}c[w>>2]=6+((a[(c[C>>2]|0)+((c[r>>2]|0)+6)>>0]|0)!=0?1:0);c[u>>2]=c[r>>2];while(1){if(((c[u>>2]|0)+(c[w>>2]|0)|0)>(c[x>>2]|0))break;a[(c[C>>2]|0)+(c[u>>2]|0)>>0]=a[(c[C>>2]|0)+((c[u>>2]|0)+(c[w>>2]|0))>>0]|0;c[u>>2]=(c[u>>2]|0)+1}if((c[r>>2]|0)>0?(a[(c[C>>2]|0)+(c[r>>2]|0)>>0]|0)==0:0)a[(c[C>>2]|0)+((c[r>>2]|0)-1)>>0]=0;L=(c[(c[n>>2]|0)+4>>2]|0)+((c[s>>2]|0)*24|0)+23|0;a[L>>0]=d[L>>0]|2;a[y>>0]=-128}else{L=(c[n>>2]|0)+42|0;a[L>>0]=d[L>>0]|d[y>>0]}while(0);c[s>>2]=(c[s>>2]|0)+1}}}else{e=c[F>>2]|0;if(!(c[L>>2]|0)){c[J>>2]=c[M>>2];L=Bh(e,31555,J)|0;c[c[G>>2]>>2]=L}else{c[K>>2]=c[L>>2];K=Bh(e,19255,K)|0;c[c[G>>2]>>2]=K;Kd(c[L>>2]|0)}Sf(c[F>>2]|0,c[H>>2]|0)}while(0);Sf(c[F>>2]|0,c[M>>2]|0);c[E>>2]=c[I>>2];M=c[E>>2]|0;i=N;return M|0}function pz(b){b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;f=g+4|0;e=g;c[d>>2]=b;c[f>>2]=0;c[e>>2]=c[c[d>>2]>>2];if(!(a[(c[e>>2]|0)+140+5>>0]|0))c[f>>2]=oi(c[e>>2]|0,(c[d>>2]|0)+4|0)|0;if(!(c[f>>2]|0)){f=c[f>>2]|0;i=g;return f|0}c[(c[d>>2]|0)+12>>2]=c[f>>2];b=(c[d>>2]|0)+68|0;c[b>>2]=(c[b>>2]|0)+1;f=c[f>>2]|0;i=g;return f|0}function qz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;l=i;i=i+48|0;d=l+32|0;e=l+28|0;n=l+24|0;m=l+20|0;j=l+16|0;g=l+12|0;f=l+8|0;h=l+4|0;k=l;c[d>>2]=a;c[e>>2]=b;c[n>>2]=c[c[d>>2]>>2];c[m>>2]=c[(c[(c[n>>2]|0)+16>>2]|0)+(c[e>>2]<<4)+12>>2];ax(c[d>>2]|0,0,c[e>>2]|0);c[g>>2]=c[(c[d>>2]|0)+72>>2];a=(c[d>>2]|0)+72|0;c[a>>2]=(c[a>>2]|0)+3;uz(c[d>>2]|0,c[e>>2]|0,c[g>>2]|0,0,0);c[f>>2]=(c[(c[d>>2]|0)+76>>2]|0)+1;c[h>>2]=c[(c[d>>2]|0)+72>>2];c[j>>2]=c[(c[m>>2]|0)+8+8>>2];while(1){if(!(c[j>>2]|0))break;c[k>>2]=c[(c[j>>2]|0)+8>>2];vz(c[d>>2]|0,c[k>>2]|0,0,c[g>>2]|0,c[f>>2]|0,c[h>>2]|0);c[j>>2]=c[c[j>>2]>>2]}wz(c[d>>2]|0,c[e>>2]|0);i=l;return}function rz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=i;i=i+16|0;g=e+12|0;h=e+8|0;d=e+4|0;f=e;c[g>>2]=a;c[h>>2]=b;c[f>>2]=Dw(c[g>>2]|0,c[h>>2]|0)|0;c[d>>2]=ji(c[g>>2]|0,c[f>>2]|0)|0;Sf(c[g>>2]|0,c[f>>2]|0);i=e;return c[d>>2]|0}function sz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+16|0;f=k+12|0;g=k+8|0;h=k+4|0;j=k;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[h>>2]=Dh(c[c[e>>2]>>2]|0,c[(c[f>>2]|0)+64>>2]|0)|0;ax(c[e>>2]|0,0,c[h>>2]|0);c[j>>2]=c[(c[e>>2]|0)+72>>2];d=(c[e>>2]|0)+72|0;c[d>>2]=(c[d>>2]|0)+3;d=c[e>>2]|0;a=c[h>>2]|0;b=c[j>>2]|0;if(c[g>>2]|0)uz(d,a,b,c[c[g>>2]>>2]|0,31725);else uz(d,a,b,c[c[f>>2]>>2]|0,31729);vz(c[e>>2]|0,c[f>>2]|0,c[g>>2]|0,c[j>>2]|0,(c[(c[e>>2]|0)+76>>2]|0)+1|0,c[(c[e>>2]|0)+72>>2]|0);wz(c[e>>2]|0,c[h>>2]|0);i=k;return}function tz(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;q=r+8|0;p=r;h=r+36|0;j=r+32|0;k=r+28|0;l=r+24|0;m=r+20|0;o=r+16|0;n=r+12|0;c[j>>2]=b;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;c[n>>2]=c[c[j>>2]>>2];e=(c[n>>2]|0)+140|0;if((c[(c[l>>2]|0)+4>>2]|0)>>>0>0){if(a[e+5>>0]|0){Ah(c[j>>2]|0,31688,p);c[h>>2]=-1;q=c[h>>2]|0;i=r;return q|0}c[c[m>>2]>>2]=c[l>>2];c[o>>2]=rz(c[n>>2]|0,c[k>>2]|0)|0;if((c[o>>2]|0)<0){p=c[j>>2]|0;c[q>>2]=c[k>>2];Ah(p,31705,q);c[h>>2]=-1;q=c[h>>2]|0;i=r;return q|0}}else{c[o>>2]=d[e+4>>0];c[c[m>>2]>>2]=c[k>>2]}c[h>>2]=c[o>>2];q=c[h>>2]|0;i=r;return q|0}function uz(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=i;i=i+96|0;v=x+16|0;u=x;h=x+84|0;j=x+80|0;k=x+76|0;l=x+72|0;m=x+68|0;q=x+64|0;p=x+60|0;r=x+56|0;t=x+52|0;o=x+40|0;n=x+88|0;w=x+36|0;s=x+32|0;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;c[p>>2]=c[c[h>>2]>>2];c[t>>2]=Pw(c[h>>2]|0)|0;if(!(c[t>>2]|0)){i=x;return}c[r>>2]=(c[(c[p>>2]|0)+16>>2]|0)+(c[j>>2]<<4);c[q>>2]=0;while(1){if((c[q>>2]|0)>=3)break;c[w>>2]=c[5224+(c[q>>2]<<3)>>2];g=pi(c[p>>2]|0,c[w>>2]|0,c[c[r>>2]>>2]|0)|0;c[s>>2]=g;do if(!g){if(c[5224+(c[q>>2]<<3)+4>>2]|0){g=c[h>>2]|0;b=c[w>>2]|0;f=c[5224+(c[q>>2]<<3)+4>>2]|0;c[u>>2]=c[c[r>>2]>>2];c[u+4>>2]=b;c[u+8>>2]=f;Ow(g,31786,u);c[o+(c[q>>2]<<2)>>2]=c[(c[h>>2]|0)+396>>2];a[n+(c[q>>2]|0)>>0]=16}}else{c[o+(c[q>>2]<<2)>>2]=c[(c[s>>2]|0)+28>>2];a[n+(c[q>>2]|0)>>0]=0;yz(c[h>>2]|0,c[j>>2]|0,c[o+(c[q>>2]<<2)>>2]|0,1,c[w>>2]|0);if(c[l>>2]|0){g=c[h>>2]|0;e=c[w>>2]|0;b=c[m>>2]|0;f=c[l>>2]|0;c[v>>2]=c[c[r>>2]>>2];c[v+4>>2]=e;c[v+8>>2]=b;c[v+12>>2]=f;Ow(g,31809,v);break}else{Rw(c[t>>2]|0,119,c[o+(c[q>>2]<<2)>>2]|0,c[j>>2]|0)|0;break}}while(0);c[q>>2]=(c[q>>2]|0)+1}c[q>>2]=0;while(1){if(!(c[5224+(c[q>>2]<<3)+4>>2]|0))break;Eh(c[t>>2]|0,55,(c[k>>2]|0)+(c[q>>2]|0)|0,c[o+(c[q>>2]<<2)>>2]|0,c[j>>2]|0,3)|0;Fh(c[t>>2]|0,a[n+(c[q>>2]|0)>>0]|0);c[q>>2]=(c[q>>2]|0)+1}i=x;return}function vz(b,f,g,h,j,k){b=b|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0;R=i;i=i+128|0;n=R+116|0;o=R+112|0;p=R+108|0;q=R+104|0;l=R+100|0;m=R+96|0;u=R+92|0;F=R+88|0;y=R+84|0;z=R+80|0;O=R+76|0;w=R+72|0;A=R+68|0;x=R+64|0;D=R+120|0;I=R+60|0;L=R+56|0;G=R+52|0;N=R+48|0;M=R+44|0;H=R+40|0;K=R+36|0;J=R+32|0;B=R+28|0;t=R+24|0;s=R+20|0;P=R+16|0;C=R+12|0;v=R+8|0;r=R+4|0;E=R;c[n>>2]=b;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[l>>2]=j;c[m>>2]=k;c[u>>2]=c[c[n>>2]>>2];c[A>>2]=-1;a[D>>0]=1;f=c[l>>2]|0;c[l>>2]=f+1;c[I>>2]=f;f=c[l>>2]|0;c[l>>2]=f+1;c[L>>2]=f;f=c[l>>2]|0;c[l>>2]=f+1;c[G>>2]=f;f=c[l>>2]|0;c[l>>2]=f+1;c[N>>2]=f;f=c[l>>2]|0;c[l>>2]=f+1;c[M>>2]=f;f=c[l>>2]|0;c[l>>2]=f+1;c[H>>2]=f;f=c[l>>2]|0;c[l>>2]=f+1;c[K>>2]=f;c[J>>2]=c[l>>2];if((c[(c[n>>2]|0)+76>>2]|0)>(c[l>>2]|0))l=c[(c[n>>2]|0)+76>>2]|0;else l=c[l>>2]|0;c[(c[n>>2]|0)+76>>2]=l;c[O>>2]=Pw(c[n>>2]|0)|0;if((c[O>>2]|0)==0|(c[o>>2]|0)==0){i=R;return}if(!(c[(c[o>>2]|0)+28>>2]|0)){i=R;return}if(!(_e(31733,c[c[o>>2]>>2]|0,0)|0)){i=R;return}c[x>>2]=Dh(c[u>>2]|0,c[(c[o>>2]|0)+64>>2]|0)|0;if(Mw(c[n>>2]|0,28,c[c[o>>2]>>2]|0,0,c[(c[(c[u>>2]|0)+16>>2]|0)+(c[x>>2]<<4)>>2]|0)|0){i=R;return}yz(c[n>>2]|0,c[x>>2]|0,c[(c[o>>2]|0)+28>>2]|0,0,c[c[o>>2]>>2]|0);f=c[m>>2]|0;c[m>>2]=f+1;c[z>>2]=f;f=c[m>>2]|0;c[m>>2]=f+1;c[y>>2]=f;if((c[(c[n>>2]|0)+72>>2]|0)>(c[m>>2]|0))l=c[(c[n>>2]|0)+72>>2]|0;else l=c[m>>2]|0;c[(c[n>>2]|0)+72>>2]=l;zz(c[n>>2]|0,c[z>>2]|0,c[x>>2]|0,c[o>>2]|0,54);Tw(c[O>>2]|0,c[M>>2]|0,c[c[o>>2]>>2]|0)|0;c[F>>2]=c[(c[o>>2]|0)+8>>2];while(1){l=c[p>>2]|0;if(!(c[F>>2]|0))break;if(!((l|0)!=0?(c[p>>2]|0)!=(c[F>>2]|0):0))Q=15;do if((Q|0)==15){Q=0;if(!(c[(c[F>>2]|0)+36>>2]|0))a[D>>0]=0;if(((d[(c[o>>2]|0)+42>>0]|0)&32|0)!=0?(a[(c[F>>2]|0)+55>>0]&3|0)==2:0){c[B>>2]=e[(c[F>>2]|0)+50>>1];c[P>>2]=c[c[o>>2]>>2];c[C>>2]=(c[B>>2]|0)-1}else{c[B>>2]=e[(c[F>>2]|0)+52>>1];c[P>>2]=c[c[F>>2]>>2];if((d[(c[F>>2]|0)+55>>0]|0)>>>3&1)l=e[(c[F>>2]|0)+50>>1]|0;else l=c[B>>2]|0;c[C>>2]=l-1}Tw(c[O>>2]|0,c[H>>2]|0,c[P>>2]|0)|0;if((c[(c[n>>2]|0)+76>>2]|0)>((c[J>>2]|0)+(c[C>>2]|0)|0))l=c[(c[n>>2]|0)+76>>2]|0;else l=(c[J>>2]|0)+(c[C>>2]|0)|0;c[(c[n>>2]|0)+76>>2]=l;Vw(c[O>>2]|0,54,c[y>>2]|0,c[(c[F>>2]|0)+44>>2]|0,c[x>>2]|0)|0;Az(c[n>>2]|0,c[F>>2]|0);Rw(c[O>>2]|0,22,c[B>>2]|0,(c[L>>2]|0)+1|0)|0;Rw(c[O>>2]|0,22,e[(c[F>>2]|0)+50>>1]|0,(c[L>>2]|0)+2|0)|0;Uw(c[O>>2]|0,35,0,(c[L>>2]|0)+1|0,c[L>>2]|0,5108,-5)|0;Fh(c[O>>2]|0,2);c[t>>2]=xz(c[O>>2]|0,108,c[y>>2]|0)|0;Rw(c[O>>2]|0,22,0,c[G>>2]|0)|0;c[s>>2]=Bz(c[O>>2]|0)|0;if((c[C>>2]|0)>0){c[v>>2]=Cz(c[O>>2]|0)|0;c[r>>2]=Fw(c[u>>2]|0,c[C>>2]<<2,0)|0;if(!(c[r>>2]|0))break;Yw(c[O>>2]|0,13)|0;c[s>>2]=Bz(c[O>>2]|0)|0;if(((c[C>>2]|0)==1?(e[(c[F>>2]|0)+50>>1]|0|0)==1:0)?(d[(c[F>>2]|0)+54>>0]|0|0)!=0:0)Rw(c[O>>2]|0,77,c[J>>2]|0,c[v>>2]|0)|0;c[w>>2]=0;while(1){if((c[w>>2]|0)>=(c[C>>2]|0))break;c[E>>2]=Dz(c[n>>2]|0,c[(c[(c[F>>2]|0)+32>>2]|0)+(c[w>>2]<<2)>>2]|0)|0;Rw(c[O>>2]|0,22,c[w>>2]|0,c[G>>2]|0)|0;Vw(c[O>>2]|0,47,c[y>>2]|0,c[w>>2]|0,c[N>>2]|0)|0;m=Uw(c[O>>2]|0,78,c[N>>2]|0,0,(c[J>>2]|0)+(c[w>>2]|0)|0,c[E>>2]|0,-4)|0;c[(c[r>>2]|0)+(c[w>>2]<<2)>>2]=m;Fh(c[O>>2]|0,-128);c[w>>2]=(c[w>>2]|0)+1}Rw(c[O>>2]|0,22,c[C>>2]|0,c[G>>2]|0)|0;Ez(c[O>>2]|0,c[v>>2]|0)|0;Fz(c[O>>2]|0,(c[s>>2]|0)-1|0);c[w>>2]=0;while(1){l=c[O>>2]|0;if((c[w>>2]|0)>=(c[C>>2]|0))break;Fz(l,c[(c[r>>2]|0)+(c[w>>2]<<2)>>2]|0);Vw(c[O>>2]|0,47,c[y>>2]|0,c[w>>2]|0,(c[J>>2]|0)+(c[w>>2]|0)|0)|0;c[w>>2]=(c[w>>2]|0)+1}Gz(l,c[v>>2]|0);Sf(c[u>>2]|0,c[r>>2]|0)}Uw(c[O>>2]|0,35,1,c[L>>2]|0,c[N>>2]|0,5140,-5)|0;Fh(c[O>>2]|0,2);Rw(c[O>>2]|0,7,c[y>>2]|0,c[s>>2]|0)|0;Hz(c[O>>2]|0,c[L>>2]|0,0,c[K>>2]|0);Uw(c[O>>2]|0,49,c[M>>2]|0,3,c[N>>2]|0,31742,0)|0;Rw(c[O>>2]|0,74,c[q>>2]|0,c[I>>2]|0)|0;Vw(c[O>>2]|0,75,c[q>>2]|0,c[N>>2]|0,c[I>>2]|0)|0;Fh(c[O>>2]|0,8);Fz(c[O>>2]|0,c[t>>2]|0)}while(0);c[F>>2]=c[(c[F>>2]|0)+20>>2]}if(l){i=R;return}if(!(d[D>>0]|0)){i=R;return}Rw(c[O>>2]|0,50,c[z>>2]|0,c[K>>2]|0)|0;c[A>>2]=xz(c[O>>2]|0,46,c[K>>2]|0)|0;Rw(c[O>>2]|0,25,0,c[H>>2]|0)|0;Uw(c[O>>2]|0,49,c[M>>2]|0,3,c[N>>2]|0,31742,0)|0;Rw(c[O>>2]|0,74,c[q>>2]|0,c[I>>2]|0)|0;Vw(c[O>>2]|0,75,c[q>>2]|0,c[N>>2]|0,c[I>>2]|0)|0;Fh(c[O>>2]|0,8);Fz(c[O>>2]|0,c[A>>2]|0);i=R;return}function wz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=i;i=i+16|0;g=f+8|0;d=f+4|0;e=f;c[g>>2]=a;c[d>>2]=b;c[e>>2]=Pw(c[g>>2]|0)|0;if(!(c[e>>2]|0)){i=f;return}xz(c[e>>2]|0,124,c[d>>2]|0)|0;i=f;return}function xz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;h=e+8|0;g=e+4|0;f=e;c[h>>2]=a;c[g>>2]=b;c[f>>2]=d;d=Vw(c[h>>2]|0,c[g>>2]|0,c[f>>2]|0,0,0)|0;i=e;return d|0}function yz(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=i;i=i+48|0;t=s+28|0;m=s+24|0;n=s+20|0;o=s+32|0;p=s+16|0;q=s+12|0;j=s+8|0;k=s+4|0;r=s;c[t>>2]=b;c[m>>2]=e;c[n>>2]=f;a[o>>0]=g;c[p>>2]=h;e=c[t>>2]|0;if(c[(c[t>>2]|0)+416>>2]|0)e=c[e+416>>2]|0;c[q>>2]=e;c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[(c[q>>2]|0)+404>>2]|0))break;c[r>>2]=(c[(c[q>>2]|0)+408>>2]|0)+(c[j>>2]<<4);if((c[c[r>>2]>>2]|0)==(c[m>>2]|0)?(c[(c[r>>2]|0)+4>>2]|0)==(c[n>>2]|0):0){l=7;break}c[j>>2]=(c[j>>2]|0)+1}if((l|0)==7){if(d[(c[r>>2]|0)+8>>0]|0)e=1;else e=(d[o>>0]|0|0)!=0;a[(c[r>>2]|0)+8>>0]=e&1;i=s;return}c[k>>2]=(c[(c[q>>2]|0)+404>>2]|0)+1<<4;e=c[k>>2]|0;e=vx(c[c[q>>2]>>2]|0,c[(c[q>>2]|0)+408>>2]|0,e,((e|0)<0)<<31>>31)|0;c[(c[q>>2]|0)+408>>2]=e;e=(c[q>>2]|0)+404|0;if(c[(c[q>>2]|0)+408>>2]|0){t=c[e>>2]|0;c[e>>2]=t+1;c[r>>2]=(c[(c[q>>2]|0)+408>>2]|0)+(t<<4);c[c[r>>2]>>2]=c[m>>2];c[(c[r>>2]|0)+4>>2]=c[n>>2];a[(c[r>>2]|0)+8>>0]=a[o>>0]|0;c[(c[r>>2]|0)+12>>2]=c[p>>2];i=s;return}else{c[e>>2]=0;jh(c[c[q>>2]>>2]|0);i=s;return}}function zz(a,e,f,g,h){a=a|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+32|0;j=q+24|0;k=q+20|0;l=q+16|0;m=q+12|0;n=q+8|0;p=q+4|0;o=q;c[j>>2]=a;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;c[n>>2]=h;c[p>>2]=Pw(c[j>>2]|0)|0;yz(c[j>>2]|0,c[l>>2]|0,c[(c[m>>2]|0)+28>>2]|0,((c[n>>2]|0)==55?1:0)&255,c[c[m>>2]>>2]|0);if(!(d[(c[m>>2]|0)+42>>0]&32)){Eh(c[p>>2]|0,c[n>>2]|0,c[k>>2]|0,c[(c[m>>2]|0)+28>>2]|0,c[l>>2]|0,b[(c[m>>2]|0)+34>>1]|0)|0;i=q;return}else{c[o>>2]=Ej(c[m>>2]|0)|0;Vw(c[p>>2]|0,c[n>>2]|0,c[k>>2]|0,c[(c[o>>2]|0)+44>>2]|0,c[l>>2]|0)|0;Az(c[j>>2]|0,c[o>>2]|0);i=q;return}}function Az(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;f=d+8|0;e=d+4|0;g=d;c[f>>2]=a;c[e>>2]=b;c[g>>2]=c[(c[f>>2]|0)+8>>2];a=c[g>>2]|0;Ih(a,-1,Pz(c[f>>2]|0,c[e>>2]|0)|0,-6);i=d;return}function Bz(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c[(c[b>>2]|0)+32>>2]|0}function Cz(a){a=a|0;var b=0,d=0,e=0,f=0;e=i;i=i+16|0;f=e+8|0;d=e+4|0;b=e;c[f>>2]=a;c[d>>2]=c[(c[f>>2]|0)+24>>2];f=(c[d>>2]|0)+116|0;a=c[f>>2]|0;c[f>>2]=a+1;c[b>>2]=a;if(!(c[b>>2]&(c[b>>2]|0)-1)){f=vx(c[c[d>>2]>>2]|0,c[(c[d>>2]|0)+120>>2]|0,(c[b>>2]<<1)+1<<2,0)|0;c[(c[d>>2]|0)+120>>2]=f}if(!(c[(c[d>>2]|0)+120>>2]|0)){f=c[b>>2]|0;f=-1-f|0;i=e;return f|0}c[(c[(c[d>>2]|0)+120>>2]|0)+(c[b>>2]<<2)>>2]=-1;f=c[b>>2]|0;f=-1-f|0;i=e;return f|0}function Dz(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;k=i;i=i+32|0;f=k+12|0;g=k+8|0;m=k+4|0;h=k+17|0;l=k+16|0;j=k;c[f>>2]=b;c[g>>2]=e;c[m>>2]=c[c[f>>2]>>2];a[h>>0]=a[(c[m>>2]|0)+62>>0]|0;a[l>>0]=a[(c[m>>2]|0)+140+5>>0]|0;c[j>>2]=Mj(c[m>>2]|0,a[h>>0]|0,c[g>>2]|0,d[l>>0]|0)|0;if(a[l>>0]|0){m=c[j>>2]|0;i=k;return m|0}if((c[j>>2]|0)!=0?(c[(c[j>>2]|0)+12>>2]|0)!=0:0){m=c[j>>2]|0;i=k;return m|0}c[j>>2]=Px(c[f>>2]|0,a[h>>0]|0,c[j>>2]|0,c[g>>2]|0)|0;m=c[j>>2]|0;i=k;return m|0}function Ez(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;a=Vw(c[f>>2]|0,13,0,c[e>>2]|0,0)|0;i=d;return a|0}function Fz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;c[(c[(c[e>>2]|0)+24>>2]|0)+96>>2]=(c[(c[e>>2]|0)+32>>2]|0)-1;Lz(c[e>>2]|0,c[f>>2]|0,c[(c[e>>2]|0)+32>>2]|0);i=d;return}function Gz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=i;i=i+16|0;d=g+12|0;h=g+8|0;f=g+4|0;e=g;c[d>>2]=a;c[h>>2]=b;c[f>>2]=c[(c[d>>2]|0)+24>>2];c[e>>2]=-1-(c[h>>2]|0);if(c[(c[f>>2]|0)+120>>2]|0)c[(c[(c[f>>2]|0)+120>>2]|0)+(c[e>>2]<<2)>>2]=c[(c[d>>2]|0)+32>>2];c[(c[f>>2]|0)+96>>2]=(c[(c[d>>2]|0)+32>>2]|0)-1;i=g;return}function Hz(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+16|0;g=f+12|0;j=f+8|0;h=f;c[g>>2]=a;c[j>>2]=b;c[f+4>>2]=d;c[h>>2]=e;Uw(c[g>>2]|0,35,0,c[j>>2]|0,c[h>>2]|0,5172,-5)|0;Fh(c[g>>2]|0,1);i=f;return}function Iz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=i;i=i+64|0;l=o+24|0;k=o+16|0;e=o+56|0;p=o+48|0;j=o+44|0;m=o+40|0;f=o+36|0;n=o+32|0;h=o+8|0;g=o;c[e>>2]=a;c[o+52>>2]=b;c[p>>2]=d;c[j>>2]=$d(c[c[p>>2]>>2]|0)|0;a=((c[(c[j>>2]|0)+12>>2]|0)+1|0)*25|0;c[n>>2]=ig(a,((a|0)<0)<<31>>31)|0;if(!(c[n>>2]|0)){te(c[e>>2]|0);i=o;return}p=c[n>>2]|0;a=k;c[a>>2]=c[c[j>>2]>>2];
  42. c[a+4>>2]=0;Qd(24,p,31755,k)|0;p=c[n>>2]|0;c[m>>2]=p+(If(c[n>>2]|0)|0);c[f>>2]=0;while(1){if((c[f>>2]|0)>=(c[(c[j>>2]|0)+12>>2]|0))break;p=h;c[p>>2]=(c[(c[(c[j>>2]|0)+20+4>>2]|0)+(c[f>>2]<<2)>>2]|0)+1;c[p+4>>2]=0;p=h;p=gR(c[c[j>>2]>>2]|0,0,c[p>>2]|0,c[p+4>>2]|0)|0;p=fR(p|0,C|0,1,0)|0;d=h;d=sR(p|0,C|0,c[d>>2]|0,c[d+4>>2]|0)|0;p=g;c[p>>2]=d;c[p+4>>2]=C;p=c[m>>2]|0;d=g;a=c[d+4>>2]|0;k=l;c[k>>2]=c[d>>2];c[k+4>>2]=a;Qd(24,p,31760,l)|0;p=If(c[m>>2]|0)|0;c[m>>2]=(c[m>>2]|0)+p;c[f>>2]=(c[f>>2]|0)+1}ne(c[e>>2]|0,c[n>>2]|0,-1,148);i=o;return}function Jz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;h=i;i=i+32|0;j=h+12|0;e=h+8|0;g=h+4|0;f=h;c[h+20>>2]=a;c[h+16>>2]=b;c[j>>2]=d;c[g>>2]=$d(c[c[j>>2]>>2]|0)|0;c[f>>2]=de(c[(c[j>>2]|0)+4>>2]|0)|0;if(!(c[c[g>>2]>>2]|0)){c[e>>2]=0;while(1){if((c[e>>2]|0)>=(c[(c[g>>2]|0)+8>>2]|0))break;c[(c[(c[g>>2]|0)+20>>2]|0)+(c[e>>2]<<2)>>2]=1;c[e>>2]=(c[e>>2]|0)+1}j=c[g>>2]|0;g=c[j>>2]|0;g=g+1|0;c[j>>2]=g;i=h;return}Kz(c[g>>2]|0,c[f>>2]|0);c[e>>2]=0;while(1){if((c[e>>2]|0)>=(c[f>>2]|0))break;j=(c[(c[g>>2]|0)+20>>2]|0)+(c[e>>2]<<2)|0;c[j>>2]=(c[j>>2]|0)+1;c[e>>2]=(c[e>>2]|0)+1}c[e>>2]=c[f>>2];while(1){if((c[e>>2]|0)>=(c[(c[g>>2]|0)+8>>2]|0))break;j=(c[(c[g>>2]|0)+20+4>>2]|0)+(c[e>>2]<<2)|0;c[j>>2]=(c[j>>2]|0)+1;c[(c[(c[g>>2]|0)+20>>2]|0)+(c[e>>2]<<2)>>2]=1;c[e>>2]=(c[e>>2]|0)+1}j=c[g>>2]|0;g=c[j>>2]|0;g=g+1|0;c[j>>2]=g;i=h;return}function Kz(a,b){a=a|0;b=b|0;var d=0;d=i;i=i+16|0;c[d+4>>2]=a;c[d>>2]=b;i=d;return}function Lz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;g=e+8|0;f=e+4|0;h=e;c[g>>2]=a;c[f>>2]=b;c[h>>2]=d;d=c[h>>2]|0;c[(Mz(c[g>>2]|0,c[f>>2]|0)|0)+8>>2]=d;i=e;return}function Mz(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+8|0;f=h+4|0;g=h;c[f>>2]=b;c[g>>2]=d;if((c[g>>2]|0)<0)c[g>>2]=(c[(c[f>>2]|0)+32>>2]|0)-1;if(a[(c[c[f>>2]>>2]|0)+65>>0]|0){c[e>>2]=5204;b=c[e>>2]|0;i=h;return b|0}else{c[e>>2]=(c[(c[f>>2]|0)+4>>2]|0)+((c[g>>2]|0)*20|0);b=c[e>>2]|0;i=h;return b|0}return 0}function Nz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;l=i;i=i+48|0;e=l+32|0;n=l+24|0;k=l+20|0;g=l+16|0;j=l+12|0;h=l+8|0;m=l+4|0;f=l;c[e>>2]=a;c[l+28>>2]=b;c[n>>2]=d;c[g>>2]=de(c[c[n>>2]>>2]|0)|0;c[h>>2]=(c[g>>2]|0)+1&-2;c[j>>2]=de(c[(c[n>>2]|0)+4>>2]|0)|0;c[m>>2]=56+(c[h>>2]<<2)+(c[h>>2]<<2);c[f>>2]=we(c[e>>2]|0)|0;a=c[m>>2]|0;c[k>>2]=ph(c[f>>2]|0,a,((a|0)<0)<<31>>31)|0;if(!(c[k>>2]|0)){te(c[e>>2]|0);i=l;return}else{c[(c[k>>2]|0)+52>>2]=c[f>>2];c[c[k>>2]>>2]=0;c[(c[k>>2]|0)+8>>2]=c[g>>2];c[(c[k>>2]|0)+12>>2]=c[j>>2];c[(c[k>>2]|0)+20+4>>2]=(c[k>>2]|0)+56;c[(c[k>>2]|0)+20>>2]=(c[(c[k>>2]|0)+20+4>>2]|0)+(c[h>>2]<<2);ge(c[e>>2]|0,c[k>>2]|0,56,153);i=l;return}}function Oz(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;c[d>>2]=c[e>>2];Sf(c[(c[d>>2]|0)+52>>2]|0,c[d>>2]|0);i=b;return}function Pz(b,f){b=b|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;h=p+28|0;j=p+24|0;k=p+20|0;l=p+16|0;m=p+12|0;g=p+8|0;n=p+4|0;o=p;c[j>>2]=b;c[k>>2]=f;c[m>>2]=e[(c[k>>2]|0)+52>>1];c[g>>2]=e[(c[k>>2]|0)+50>>1];if(c[(c[j>>2]|0)+68>>2]|0){c[h>>2]=0;o=c[h>>2]|0;i=p;return o|0}f=c[c[j>>2]>>2]|0;if((d[(c[k>>2]|0)+55>>0]|0)>>>3&1)c[n>>2]=Qz(f,c[g>>2]|0,(c[m>>2]|0)-(c[g>>2]|0)|0)|0;else c[n>>2]=Qz(f,c[m>>2]|0,0)|0;if(c[n>>2]|0){c[l>>2]=0;while(1){if((c[l>>2]|0)>=(c[m>>2]|0))break;c[o>>2]=c[(c[(c[k>>2]|0)+32>>2]|0)+(c[l>>2]<<2)>>2];if((c[o>>2]|0)==35690)f=0;else f=Dz(c[j>>2]|0,c[o>>2]|0)|0;c[(c[n>>2]|0)+20+(c[l>>2]<<2)>>2]=f;a[(c[(c[n>>2]|0)+16>>2]|0)+(c[l>>2]|0)>>0]=a[(c[(c[k>>2]|0)+28>>2]|0)+(c[l>>2]|0)>>0]|0;c[l>>2]=(c[l>>2]|0)+1}if(c[(c[j>>2]|0)+68>>2]|0){Rz(c[n>>2]|0);c[n>>2]=0}}c[h>>2]=c[n>>2];o=c[h>>2]|0;i=p;return o|0}function Qz(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;g=m+16|0;h=m+12|0;j=m+8|0;k=m+4|0;l=m;c[g>>2]=d;c[h>>2]=e;c[j>>2]=f;c[k>>2]=((c[h>>2]|0)+(c[j>>2]|0)|0)*5;c[l>>2]=_f(24+(c[k>>2]|0)|0,0)|0;if(c[l>>2]|0){c[(c[l>>2]|0)+16>>2]=(c[l>>2]|0)+20+((c[h>>2]|0)+(c[j>>2]|0)<<2);b[(c[l>>2]|0)+6>>1]=c[h>>2];b[(c[l>>2]|0)+8>>1]=c[j>>2];a[(c[l>>2]|0)+4>>0]=a[(c[g>>2]|0)+62>>0]|0;c[(c[l>>2]|0)+12>>2]=c[g>>2];c[c[l>>2]>>2]=1;kR((c[l>>2]|0)+24|0,0,c[k>>2]|0)|0;l=c[l>>2]|0;i=m;return l|0}else{jh(c[g>>2]|0);l=c[l>>2]|0;i=m;return l|0}return 0}function Rz(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!(c[b>>2]|0)){i=d;return}a=c[b>>2]|0;c[a>>2]=(c[a>>2]|0)+-1;if(c[c[b>>2]>>2]|0){i=d;return}Sf(0,c[b>>2]|0);i=d;return}function Sz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;d=l+24|0;e=l+20|0;j=l+16|0;g=l+12|0;f=l+8|0;h=l+4|0;k=l;c[d>>2]=a;c[e>>2]=b;c[f>>2]=c[c[d>>2]>>2];c[g>>2]=0;c[j>>2]=c[(c[f>>2]|0)+16>>2];while(1){if((c[g>>2]|0)>=(c[(c[f>>2]|0)+20>>2]|0))break;c[h>>2]=c[(c[(c[j>>2]|0)+12>>2]|0)+8+8>>2];while(1){if(!(c[h>>2]|0))break;c[k>>2]=c[(c[h>>2]|0)+8>>2];Tz(c[d>>2]|0,c[k>>2]|0,c[e>>2]|0);c[h>>2]=c[c[h>>2]>>2]}c[g>>2]=(c[g>>2]|0)+1;c[j>>2]=(c[j>>2]|0)+16}i=l;return}function Tz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+16|0;f=k+12|0;g=k+8|0;j=k+4|0;h=k;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[j>>2]=c[(c[f>>2]|0)+8>>2];while(1){if(!(c[j>>2]|0))break;if(!((c[g>>2]|0)!=0?(hB(c[g>>2]|0,c[j>>2]|0)|0)==0:0)){c[h>>2]=Dh(c[c[e>>2]>>2]|0,c[(c[f>>2]|0)+64>>2]|0)|0;ax(c[e>>2]|0,0,c[h>>2]|0);Uz(c[e>>2]|0,c[j>>2]|0,-1)}c[j>>2]=c[(c[j>>2]|0)+20>>2]}i=k;return}function Uz(a,b,f){a=a|0;b=b|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;x=i;i=i+80|0;n=x+64|0;o=x+60|0;g=x+56|0;l=x+52|0;t=x+48|0;r=x+44|0;s=x+40|0;p=x+36|0;q=x+32|0;m=x+28|0;j=x+24|0;w=x+20|0;k=x+16|0;v=x+12|0;y=x+8|0;h=x+4|0;u=x;c[n>>2]=a;c[o>>2]=b;c[g>>2]=f;c[l>>2]=c[(c[o>>2]|0)+12>>2];a=(c[n>>2]|0)+72|0;b=c[a>>2]|0;c[a>>2]=b+1;c[t>>2]=b;b=(c[n>>2]|0)+72|0;a=c[b>>2]|0;c[b>>2]=a+1;c[r>>2]=a;c[y>>2]=c[c[n>>2]>>2];c[h>>2]=Dh(c[y>>2]|0,c[(c[o>>2]|0)+24>>2]|0)|0;if(Mw(c[n>>2]|0,27,c[c[o>>2]>>2]|0,0,c[(c[(c[y>>2]|0)+16>>2]|0)+(c[h>>2]<<4)>>2]|0)|0){i=x;return}yz(c[n>>2]|0,c[h>>2]|0,c[(c[l>>2]|0)+28>>2]|0,1,c[c[l>>2]>>2]|0);c[w>>2]=Pw(c[n>>2]|0)|0;if(!(c[w>>2]|0)){i=x;return}if((c[g>>2]|0)>=0)c[m>>2]=c[g>>2];else c[m>>2]=c[(c[o>>2]|0)+44>>2];c[k>>2]=Pz(c[n>>2]|0,c[o>>2]|0)|0;a=(c[n>>2]|0)+72|0;b=c[a>>2]|0;c[a>>2]=b+1;c[s>>2]=b;b=c[w>>2]|0;a=c[s>>2]|0;y=e[(c[o>>2]|0)+50>>1]|0;Uw(b,58,a,0,y,Vz(c[k>>2]|0)|0,-6)|0;zz(c[n>>2]|0,c[t>>2]|0,c[h>>2]|0,c[l>>2]|0,54);c[p>>2]=Rw(c[w>>2]|0,108,c[t>>2]|0,0)|0;c[v>>2]=Wz(c[n>>2]|0)|0;Xz(c[n>>2]|0,c[o>>2]|0,c[t>>2]|0,c[v>>2]|0,0,j,0,0)|0;Rw(c[w>>2]|0,109,c[s>>2]|0,c[v>>2]|0)|0;Yz(c[n>>2]|0,c[j>>2]|0);Rw(c[w>>2]|0,7,c[t>>2]|0,(c[p>>2]|0)+1|0)|0;Fz(c[w>>2]|0,c[p>>2]|0);if((c[g>>2]|0)<0)Rw(c[w>>2]|0,119,c[m>>2]|0,c[h>>2]|0)|0;Uw(c[w>>2]|0,55,c[r>>2]|0,c[m>>2]|0,c[h>>2]|0,c[k>>2]|0,-6)|0;Fh(c[w>>2]|0,(1|((c[g>>2]|0)>=0?16:0))&255);c[p>>2]=Rw(c[w>>2]|0,106,c[s>>2]|0,0)|0;y=(c[k>>2]|0)!=0?(d[(c[o>>2]|0)+54>>0]|0|0)!=0:0;g=Bz(c[w>>2]|0)|0;if(y){c[u>>2]=g+3;Ez(c[w>>2]|0,c[u>>2]|0)|0;c[q>>2]=Bz(c[w>>2]|0)|0;Eh(c[w>>2]|0,99,c[s>>2]|0,c[u>>2]|0,c[v>>2]|0,e[(c[o>>2]|0)+50>>1]|0)|0;Zz(c[n>>2]|0,2,c[o>>2]|0)}else c[q>>2]=g;Vw(c[w>>2]|0,100,c[s>>2]|0,c[v>>2]|0,c[r>>2]|0)|0;Vw(c[w>>2]|0,105,c[r>>2]|0,0,-1)|0;Vw(c[w>>2]|0,110,c[r>>2]|0,c[v>>2]|0,0)|0;Fh(c[w>>2]|0,16);_z(c[n>>2]|0,c[v>>2]|0);Rw(c[w>>2]|0,3,c[s>>2]|0,c[q>>2]|0)|0;Fz(c[w>>2]|0,c[p>>2]|0);xz(c[w>>2]|0,61,c[t>>2]|0)|0;xz(c[w>>2]|0,61,c[r>>2]|0)|0;xz(c[w>>2]|0,61,c[s>>2]|0)|0;i=x;return}function Vz(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(c[b>>2]|0){a=c[b>>2]|0;c[a>>2]=(c[a>>2]|0)+1}i=d;return c[b>>2]|0}function Wz(b){b=b|0;var e=0,f=0,g=0,h=0;g=i;i=i+16|0;e=g+4|0;f=g;c[f>>2]=b;b=c[f>>2]|0;if(!(d[(c[f>>2]|0)+19>>0]|0)){b=b+76|0;f=(c[b>>2]|0)+1|0;c[b>>2]=f;c[e>>2]=f;f=c[e>>2]|0;i=g;return f|0}else{h=b+19|0;b=(a[h>>0]|0)+-1<<24>>24;a[h>>0]=b;c[e>>2]=c[(c[f>>2]|0)+28+((b&255)<<2)>>2];f=c[e>>2]|0;i=g;return f|0}return 0}function Xz(a,e,f,g,h,j,k,l){a=a|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=i;i=i+48|0;o=y+44|0;p=y+40|0;q=y+36|0;r=y+32|0;m=y+28|0;n=y+24|0;s=y+20|0;t=y+16|0;x=y+12|0;u=y+8|0;w=y+4|0;v=y;c[o>>2]=a;c[p>>2]=e;c[q>>2]=f;c[r>>2]=g;c[m>>2]=h;c[n>>2]=j;c[s>>2]=k;c[t>>2]=l;c[x>>2]=c[(c[o>>2]|0)+8>>2];do if(c[n>>2]|0)if(c[(c[p>>2]|0)+36>>2]|0){l=Cz(c[x>>2]|0)|0;c[c[n>>2]>>2]=l;c[(c[o>>2]|0)+104>>2]=c[q>>2];iA(c[o>>2]|0);jA(c[o>>2]|0,c[(c[p>>2]|0)+36>>2]|0,c[c[n>>2]>>2]|0,16);break}else{c[c[n>>2]>>2]=0;break}while(0);if((c[m>>2]|0)!=0?((d[(c[p>>2]|0)+55>>0]|0)>>>3&1|0)!=0:0)m=b[(c[p>>2]|0)+50>>1]|0;else m=b[(c[p>>2]|0)+52>>1]|0;c[v>>2]=m&65535;c[w>>2]=kA(c[o>>2]|0,c[v>>2]|0)|0;do if(c[s>>2]|0){if((c[w>>2]|0)==(c[t>>2]|0)?(c[(c[s>>2]|0)+36>>2]|0)==0:0)break;c[s>>2]=0}while(0);c[u>>2]=0;while(1){if((c[u>>2]|0)>=(c[v>>2]|0))break;if(!(((c[s>>2]|0)!=0?(b[(c[(c[s>>2]|0)+4>>2]|0)+(c[u>>2]<<1)>>1]|0)==(b[(c[(c[p>>2]|0)+4>>2]|0)+(c[u>>2]<<1)>>1]|0):0)?(b[(c[(c[s>>2]|0)+4>>2]|0)+(c[u>>2]<<1)>>1]|0)!=-2:0)){lA(c[o>>2]|0,c[p>>2]|0,c[q>>2]|0,c[u>>2]|0,(c[w>>2]|0)+(c[u>>2]|0)|0);mA(c[x>>2]|0,39)|0}c[u>>2]=(c[u>>2]|0)+1}if(!(c[r>>2]|0)){t=c[o>>2]|0;u=c[w>>2]|0;x=c[v>>2]|0;nA(t,u,x);x=c[w>>2]|0;i=y;return x|0}Vw(c[x>>2]|0,49,c[w>>2]|0,c[v>>2]|0,c[r>>2]|0)|0;t=c[o>>2]|0;u=c[w>>2]|0;x=c[v>>2]|0;nA(t,u,x);x=c[w>>2]|0;i=y;return x|0}function Yz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f+4|0;e=f;c[d>>2]=a;c[e>>2]=b;if(!(c[e>>2]|0)){i=f;return}Gz(c[(c[d>>2]|0)+8>>2]|0,c[e>>2]|0);gA(c[d>>2]|0);i=f;return}function Zz(d,f,g){d=d|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+80|0;p=s+8|0;o=s;h=s+68|0;j=s+64|0;k=s+60|0;r=s+56|0;m=s+52|0;l=s+24|0;n=s+20|0;q=s+16|0;c[h>>2]=d;c[j>>2]=f;c[k>>2]=g;c[n>>2]=c[(c[k>>2]|0)+12>>2];cg(l,c[c[h>>2]>>2]|0,0,0,200);if(c[(c[k>>2]|0)+40>>2]|0){c[o>>2]=c[c[k>>2]>>2];$z(l,31924,o);o=eg(l)|0;c[r>>2]=o;o=c[h>>2]|0;p=c[k>>2]|0;p=p+55|0;p=a[p>>0]|0;p=p&3;p=p&255;p=(p|0)==2;p=p?1555:2067;q=c[j>>2]|0;r=c[r>>2]|0;bA(o,p,q,r,-1,2);i=s;return}c[m>>2]=0;while(1){if((c[m>>2]|0)>=(e[(c[k>>2]|0)+50>>1]|0))break;c[q>>2]=c[(c[(c[n>>2]|0)+4>>2]|0)+((b[(c[(c[k>>2]|0)+4>>2]|0)+(c[m>>2]<<1)>>1]|0)*24|0)>>2];if(c[m>>2]|0)aA(l,31935,2);o=c[q>>2]|0;c[p>>2]=c[c[n>>2]>>2];c[p+4>>2]=o;$z(l,31016,p);c[m>>2]=(c[m>>2]|0)+1}o=eg(l)|0;c[r>>2]=o;o=c[h>>2]|0;p=c[k>>2]|0;p=p+55|0;p=a[p>>0]|0;p=p&3;p=p&255;p=(p|0)==2;p=p?1555:2067;q=c[j>>2]|0;r=c[r>>2]|0;bA(o,p,q,r,-1,2);i=s;return}function _z(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;g=k+12|0;h=k+8|0;f=k+4|0;j=k;c[g>>2]=b;c[h>>2]=e;if(!(c[h>>2]|0)){i=k;return}if((d[(c[g>>2]|0)+19>>0]|0|0)>=8){i=k;return}c[f>>2]=0;c[j>>2]=(c[g>>2]|0)+124;while(1){if((c[f>>2]|0)>=10){f=8;break}if((c[(c[j>>2]|0)+12>>2]|0)==(c[h>>2]|0)){f=6;break}c[f>>2]=(c[f>>2]|0)+1;c[j>>2]=(c[j>>2]|0)+20}if((f|0)==6){a[(c[j>>2]|0)+6>>0]=1;i=k;return}else if((f|0)==8){h=c[h>>2]|0;b=(c[g>>2]|0)+19|0;j=a[b>>0]|0;a[b>>0]=j+1<<24>>24;c[(c[g>>2]|0)+28+((j&255)<<2)>>2]=h;i=k;return}}function $z(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+32|0;h=e+20|0;g=e+16|0;f=e;c[h>>2]=a;c[g>>2]=b;c[f>>2]=d;dg(c[h>>2]|0,c[g>>2]|0,f);i=e;return}function aA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+8|0;f=h+4|0;g=h;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;if(((c[(c[e>>2]|0)+12>>2]|0)+(c[g>>2]|0)|0)>>>0>=(c[(c[e>>2]|0)+16>>2]|0)>>>0){cA(c[e>>2]|0,c[f>>2]|0,c[g>>2]|0);i=h;return}else{b=(c[e>>2]|0)+12|0;c[b>>2]=(c[b>>2]|0)+(c[g>>2]|0);iR((c[(c[e>>2]|0)+8>>2]|0)+((c[(c[e>>2]|0)+12>>2]|0)-(c[g>>2]|0))|0,c[f>>2]|0,c[g>>2]|0)|0;i=h;return}}function bA(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+32|0;j=q+16|0;k=q+12|0;l=q+8|0;m=q+4|0;n=q+21|0;o=q+20|0;p=q;c[j>>2]=b;c[k>>2]=d;c[l>>2]=e;c[m>>2]=f;a[n>>0]=g;a[o>>0]=h;c[p>>2]=Pw(c[j>>2]|0)|0;if((c[l>>2]|0)==2)Bx(c[j>>2]|0);Uw(c[p>>2]|0,21,c[k>>2]|0,c[l>>2]|0,0,c[m>>2]|0,a[n>>0]|0)|0;Fh(c[p>>2]|0,a[o>>0]|0);i=q;return}function cA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+8|0;f=h+4|0;g=h;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[g>>2]=dA(c[e>>2]|0,c[g>>2]|0)|0;if((c[g>>2]|0)<=0){i=h;return}iR((c[(c[e>>2]|0)+8>>2]|0)+(c[(c[e>>2]|0)+12>>2]|0)|0,c[f>>2]|0,c[g>>2]|0)|0;b=(c[e>>2]|0)+12|0;c[b>>2]=(c[b>>2]|0)+(c[g>>2]|0);i=h;return}function dA(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;h=m+24|0;j=m+20|0;k=m+16|0;l=m+12|0;g=m+8|0;f=m;c[j>>2]=b;c[k>>2]=e;if(a[(c[j>>2]|0)+24>>0]|0){c[h>>2]=0;l=c[h>>2]|0;i=m;return l|0}e=c[j>>2]|0;if(!(c[(c[j>>2]|0)+20>>2]|0)){c[k>>2]=(c[e+16>>2]|0)-(c[(c[j>>2]|0)+12>>2]|0)-1;eA(c[j>>2]|0,2);c[h>>2]=c[k>>2];l=c[h>>2]|0;i=m;return l|0}if(d[e+25>>0]&4)e=c[(c[j>>2]|0)+8>>2]|0;else e=0;c[g>>2]=e;e=f;c[e>>2]=c[(c[j>>2]|0)+12>>2];c[e+4>>2]=0;e=(c[k>>2]|0)+1|0;b=f;e=gR(c[b>>2]|0,c[b+4>>2]|0,e|0,((e|0)<0)<<31>>31|0)|0;b=f;c[b>>2]=e;c[b+4>>2]=C;b=f;b=gR(c[b>>2]|0,c[b+4>>2]|0,c[(c[j>>2]|0)+12>>2]|0,0)|0;e=C;if((e|0)<0|((e|0)==0?b>>>0<=(c[(c[j>>2]|0)+20>>2]|0)>>>0:0)){e=f;e=gR(c[e>>2]|0,c[e+4>>2]|0,c[(c[j>>2]|0)+12>>2]|0,0)|0;b=f;c[b>>2]=e;c[b+4>>2]=C}b=f;e=c[b+4>>2]|0;if((e|0)>0|((e|0)==0?(c[b>>2]|0)>>>0>(c[(c[j>>2]|0)+20>>2]|0)>>>0:0)){fA(c[j>>2]|0);eA(c[j>>2]|0,2);c[h>>2]=0;l=c[h>>2]|0;i=m;return l|0}c[(c[j>>2]|0)+16>>2]=c[f>>2];if(c[c[j>>2]>>2]|0)c[l>>2]=Ew(c[c[j>>2]>>2]|0,c[g>>2]|0,c[(c[j>>2]|0)+16>>2]|0,0)|0;else c[l>>2]=Md(c[g>>2]|0,c[(c[j>>2]|0)+16>>2]|0,0)|0;e=c[j>>2]|0;if(!(c[l>>2]|0)){fA(e);eA(c[j>>2]|0,1);c[h>>2]=0;l=c[h>>2]|0;i=m;return l|0}if((d[e+25>>0]&4|0)==0?(c[(c[j>>2]|0)+12>>2]|0)>>>0>0:0)iR(c[l>>2]|0,c[(c[j>>2]|0)+8>>2]|0,c[(c[j>>2]|0)+12>>2]|0)|0;c[(c[j>>2]|0)+8>>2]=c[l>>2];l=$t(c[c[j>>2]>>2]|0,c[l>>2]|0)|0;c[(c[j>>2]|0)+16>>2]=l;l=(c[j>>2]|0)+25|0;a[l>>0]=d[l>>0]|4;c[h>>2]=c[k>>2];l=c[h>>2]|0;i=m;return l|0}function eA(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e;g=e+4|0;c[f>>2]=b;a[g>>0]=d;a[(c[f>>2]|0)+24>>0]=a[g>>0]|0;c[(c[f>>2]|0)+16>>2]=0;i=e;return}function fA(b){b=b|0;var e=0,f=0;f=i;i=i+16|0;e=f;c[e>>2]=b;if(!((d[(c[e>>2]|0)+25>>0]|0)&4)){b=c[e>>2]|0;b=b+8|0;c[b>>2]=0;i=f;return}Sf(c[c[e>>2]>>2]|0,c[(c[e>>2]|0)+8>>2]|0);b=(c[e>>2]|0)+25|0;a[b>>0]=(d[b>>0]|0)&-5;b=c[e>>2]|0;b=b+8|0;c[b>>2]=0;i=f;return}function gA(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;b=f+8|0;d=f+4|0;e=f;c[b>>2]=a;a=(c[b>>2]|0)+108|0;c[a>>2]=(c[a>>2]|0)+-1;c[d>>2]=0;c[e>>2]=(c[b>>2]|0)+124;while(1){if((c[d>>2]|0)>=10)break;if((c[(c[e>>2]|0)+12>>2]|0)!=0?(c[(c[e>>2]|0)+8>>2]|0)>(c[(c[b>>2]|0)+108>>2]|0):0){hA(c[b>>2]|0,c[e>>2]|0);c[(c[e>>2]|0)+12>>2]=0}c[d>>2]=(c[d>>2]|0)+1;c[e>>2]=(c[e>>2]|0)+20}i=f;return}function hA(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0;h=i;i=i+16|0;f=h+4|0;g=h;c[f>>2]=b;c[g>>2]=e;if(!(a[(c[g>>2]|0)+6>>0]|0)){i=h;return}if((d[(c[f>>2]|0)+19>>0]|0)<8){e=c[(c[g>>2]|0)+12>>2]|0;j=(c[f>>2]|0)+19|0;b=a[j>>0]|0;a[j>>0]=b+1<<24>>24;c[(c[f>>2]|0)+28+((b&255)<<2)>>2]=e}a[(c[g>>2]|0)+6>>0]=0;i=h;return}function iA(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=(c[d>>2]|0)+108|0;c[a>>2]=(c[a>>2]|0)+1;i=b;return}function jA(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+32|0;g=m+20|0;n=m+16|0;h=m+12|0;j=m+8|0;k=m+4|0;l=m;c[g>>2]=a;c[n>>2]=b;c[h>>2]=e;c[j>>2]=f;c[k>>2]=c[c[g>>2]>>2];c[l>>2]=ny(c[k>>2]|0,c[n>>2]|0,0)|0;if(d[(c[k>>2]|0)+65>>0]|0){a=c[k>>2]|0;n=c[l>>2]|0;Zu(a,n);i=m;return}LA(c[g>>2]|0,c[l>>2]|0,c[h>>2]|0,c[j>>2]|0);a=c[k>>2]|0;n=c[l>>2]|0;Zu(a,n);i=m;return}function kA(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=i;i=i+16|0;d=g+12|0;e=g+8|0;f=g+4|0;h=g;c[d>>2]=a;c[e>>2]=b;c[f>>2]=c[(c[d>>2]|0)+64>>2];c[h>>2]=c[(c[d>>2]|0)+60>>2];if((c[e>>2]|0)<=(c[h>>2]|0)){h=(c[d>>2]|0)+64|0;c[h>>2]=(c[h>>2]|0)+(c[e>>2]|0);h=(c[d>>2]|0)+60|0;c[h>>2]=(c[h>>2]|0)-(c[e>>2]|0);h=c[f>>2]|0;i=g;return h|0}else{c[f>>2]=(c[(c[d>>2]|0)+76>>2]|0)+1;h=(c[d>>2]|0)+76|0;c[h>>2]=(c[h>>2]|0)+(c[e>>2]|0);h=c[f>>2]|0;i=g;return h|0}return 0}function lA(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;h=o+16|0;j=o+12|0;k=o+8|0;l=o+4|0;m=o;n=o+20|0;c[h>>2]=a;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;b[n>>1]=b[(c[(c[j>>2]|0)+4>>2]|0)+(c[l>>2]<<1)>>1]|0;if((b[n>>1]|0)==-2){c[(c[h>>2]|0)+104>>2]=c[k>>2];sA(c[h>>2]|0,c[(c[(c[(c[j>>2]|0)+40>>2]|0)+4>>2]|0)+((c[l>>2]|0)*20|0)>>2]|0,c[m>>2]|0);i=o;return}else{tA(c[(c[h>>2]|0)+8>>2]|0,c[(c[j>>2]|0)+12>>2]|0,c[k>>2]|0,b[n>>1]|0,c[m>>2]|0);i=o;return}}function mA(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0;h=i;i=i+16|0;f=h+4|0;g=h;j=h+8|0;c[g>>2]=b;a[j>>0]=e;if(((c[(c[g>>2]|0)+32>>2]|0)-1|0)>(c[(c[(c[g>>2]|0)+24>>2]|0)+96>>2]|0)?(d[(c[(c[g>>2]|0)+4>>2]|0)+(((c[(c[g>>2]|0)+32>>2]|0)-1|0)*20|0)>>0]|0|0)==(d[j>>0]|0|0):0){c[f>>2]=pA(c[g>>2]|0,(c[(c[g>>2]|0)+32>>2]|0)-1|0)|0;j=c[f>>2]|0;i=h;return j|0}c[f>>2]=0;j=c[f>>2]|0;i=h;return j|0}function nA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+8|0;f=h+4|0;g=h;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;oA(c[e>>2]|0,c[f>>2]|0,c[g>>2]|0);if((c[g>>2]|0)<=(c[(c[e>>2]|0)+60>>2]|0)){i=h;return}c[(c[e>>2]|0)+60>>2]=c[g>>2];c[(c[e>>2]|0)+64>>2]=c[f>>2];i=h;return}function oA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;l=i;i=i+32|0;e=l+24|0;f=l+20|0;m=l+16|0;g=l+12|0;h=l+8|0;j=l+4|0;k=l;c[e>>2]=a;c[f>>2]=b;c[m>>2]=d;c[h>>2]=(c[f>>2]|0)+(c[m>>2]|0)-1;c[g>>2]=0;c[j>>2]=(c[e>>2]|0)+124;while(1){if((c[g>>2]|0)>=10)break;c[k>>2]=c[(c[j>>2]|0)+12>>2];if((c[k>>2]|0)>=(c[f>>2]|0)?(c[k>>2]|0)<=(c[h>>2]|0):0){hA(c[e>>2]|0,c[j>>2]|0);c[(c[j>>2]|0)+12>>2]=0}c[g>>2]=(c[g>>2]|0)+1;c[j>>2]=(c[j>>2]|0)+20}i=l;return}function pA(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;e=j+12|0;f=j+8|0;g=j+4|0;h=j;c[f>>2]=b;c[g>>2]=d;if(a[(c[c[f>>2]>>2]|0)+65>>0]|0){c[e>>2]=0;h=c[e>>2]|0;i=j;return h|0}else{c[h>>2]=(c[(c[f>>2]|0)+4>>2]|0)+((c[g>>2]|0)*20|0);qA(c[c[f>>2]>>2]|0,a[(c[h>>2]|0)+1>>0]|0,c[(c[h>>2]|0)+16>>2]|0);a[(c[h>>2]|0)+1>>0]=0;c[(c[h>>2]|0)+16>>2]=0;a[c[h>>2]>>0]=-96;c[e>>2]=1;h=c[e>>2]|0;i=j;return h|0}return 0}function qA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;g=j+12|0;e=j+8|0;f=j+4|0;h=j;c[g>>2]=a;c[e>>2]=b;c[f>>2]=d;if(!(c[f>>2]|0)){i=j;return}switch(c[e>>2]|0){case-20:{rA(c[g>>2]|0,c[(c[f>>2]|0)+4>>2]|0);break}case-15:case-1:case-13:case-12:break;case-6:{if(c[(c[g>>2]|0)+528>>2]|0){i=j;return}Rz(c[f>>2]|0);i=j;return}case-11:{if(c[(c[g>>2]|0)+528>>2]|0){i=j;return}Kd(c[f>>2]|0);i=j;return}case-5:{rA(c[g>>2]|0,c[f>>2]|0);i=j;return}case-8:{e=c[f>>2]|0;if(!(c[(c[g>>2]|0)+528>>2]|0)){$g(e);i=j;return}c[h>>2]=e;if(c[(c[h>>2]|0)+24>>2]|0)Sf(c[g>>2]|0,c[(c[h>>2]|0)+20>>2]|0);Sf(c[g>>2]|0,c[h>>2]|0);i=j;return}case-10:{if(c[(c[g>>2]|0)+528>>2]|0){i=j;return}hu(c[f>>2]|0);i=j;return}default:{i=j;return}}Sf(c[g>>2]|0,c[f>>2]|0);i=j;return}function rA(a,b){a=a|0;b=b|0;var d=0,f=0,g=0;g=i;i=i+16|0;d=g+4|0;f=g;c[d>>2]=a;c[f>>2]=b;if(!(c[f>>2]|0)){i=g;return}if(!((e[(c[f>>2]|0)+2>>1]|0)&16)){i=g;return}Sf(c[d>>2]|0,c[f>>2]|0);i=g;return}function sA(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;f=k+12|0;g=k+8|0;h=k+4|0;j=k;c[f>>2]=b;c[g>>2]=d;c[h>>2]=e;c[j>>2]=c[c[f>>2]>>2];c[g>>2]=ny(c[j>>2]|0,c[g>>2]|0,0)|0;if(a[(c[j>>2]|0)+65>>0]|0){b=c[j>>2]|0;e=c[g>>2]|0;Zu(b,e);i=k;return}xA(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0);b=c[j>>2]|0;e=c[g>>2]|0;Zu(b,e);i=k;return}function tA(a,e,f,g,h){a=a|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+32|0;j=q+24|0;k=q+20|0;l=q+16|0;m=q+12|0;n=q+8|0;o=q+4|0;p=q;c[j>>2]=a;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;c[n>>2]=h;if((c[m>>2]|0)>=0?(c[m>>2]|0)!=(b[(c[k>>2]|0)+32>>1]|0):0){c[o>>2]=(d[(c[k>>2]|0)+42>>0]&16|0)!=0?153:47;c[p>>2]=c[m>>2];if(d[(c[k>>2]|0)+42>>0]&32){a=Ej(c[k>>2]|0)|0;c[p>>2]=(uA(a,c[m>>2]&65535)|0)<<16>>16}Vw(c[j>>2]|0,c[o>>2]|0,c[l>>2]|0,c[p>>2]|0,c[n>>2]|0)|0}else Rw(c[j>>2]|0,103,c[l>>2]|0,c[n>>2]|0)|0;if((c[m>>2]|0)<0){i=q;return}vA(c[j>>2]|0,c[k>>2]|0,c[m>>2]|0,c[n>>2]|0);i=q;return}function uA(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;j=k+10|0;f=k+4|0;g=k+8|0;h=k;c[f>>2]=a;b[g>>1]=d;c[h>>2]=0;while(1){if((c[h>>2]|0)>=(e[(c[f>>2]|0)+52>>1]|0)){d=6;break}a=c[h>>2]|0;if((b[g>>1]|0)==(b[(c[(c[f>>2]|0)+4>>2]|0)+(c[h>>2]<<1)>>1]|0)){d=4;break}c[h>>2]=a+1}if((d|0)==4){b[j>>1]=a;j=b[j>>1]|0;i=k;return j|0}else if((d|0)==6){b[j>>1]=-1;j=b[j>>1]|0;i=k;return j|0}return 0}function vA(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;g=o+20|0;h=o+16|0;j=o+12|0;k=o+8|0;n=o+4|0;l=o+24|0;m=o;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[k>>2]=f;if(c[(c[h>>2]|0)+12>>2]|0){i=o;return}c[n>>2]=0;a[l>>0]=a[(wA(c[g>>2]|0)|0)+62>>0]|0;c[m>>2]=(c[(c[h>>2]|0)+4>>2]|0)+((c[j>>2]|0)*24|0);b=wA(c[g>>2]|0)|0;dx(b,c[(c[m>>2]|0)+4>>2]|0,a[l>>0]|0,a[(c[m>>2]|0)+21>>0]|0,n)|0;if(c[n>>2]|0)Ih(c[g>>2]|0,-1,c[n>>2]|0,-8);if((a[(c[(c[h>>2]|0)+4>>2]|0)+((c[j>>2]|0)*24|0)+21>>0]|0)!=69){i=o;return}xz(c[g>>2]|0,39,c[k>>2]|0)|0;i=o;return}function wA(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c[c[b>>2]>>2]|0}function xA(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;f=k+12|0;g=k+8|0;h=k+4|0;j=k;c[f>>2]=a;c[g>>2]=b;c[h>>2]=e;if((c[g>>2]|0)!=0?(d[c[g>>2]>>0]|0|0)==157:0){Rw(c[(c[f>>2]|0)+8>>2]|0,30,c[(c[g>>2]|0)+28>>2]|0,c[h>>2]|0)|0;i=k;return}c[j>>2]=yA(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;if((c[j>>2]|0)==(c[h>>2]|0)){i=k;return}if(!(c[(c[f>>2]|0)+8>>2]|0)){i=k;return}Rw(c[(c[f>>2]|0)+8>>2]|0,31,c[j>>2]|0,c[h>>2]|0)|0;i=k;return}function yA(f,g,h){f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0;la=i;i=i+320|0;C=la+16|0;H=la+8|0;B=la;da=la+308|0;ea=la+304|0;J=la+300|0;fa=la+296|0;ja=la+292|0;o=la+288|0;ga=la+284|0;ha=la+280|0;ia=la+276|0;R=la+272|0;y=la+268|0;z=la+264|0;A=la+260|0;L=la+256|0;U=la+208|0;q=la+200|0;r=la+196|0;m=la+192|0;n=la+188|0;D=la+184|0;E=la+180|0;u=la+176|0;j=la+172|0;s=la+168|0;T=la+164|0;S=la+160|0;Q=la+156|0;G=la+152|0;I=la+148|0;K=la+144|0;O=la+140|0;F=la+313|0;P=la+136|0;M=la+132|0;N=la+312|0;k=la+128|0;l=la+124|0;v=la+120|0;t=la+116|0;w=la+112|0;x=la+108|0;p=la+104|0;W=la+100|0;Z=la+96|0;Y=la+92|0;X=la+88|0;aa=la+84|0;V=la+80|0;$=la+32|0;ca=la+24|0;ba=la+20|0;c[ea>>2]=f;c[J>>2]=g;c[fa>>2]=h;c[ja>>2]=c[(c[ea>>2]|0)+8>>2];c[ga>>2]=c[fa>>2];c[ha>>2]=0;c[ia>>2]=0;c[L>>2]=c[c[ea>>2]>>2];if(!(c[ja>>2]|0)){c[da>>2]=0;ka=c[da>>2]|0;i=la;return ka|0}if(!(c[J>>2]|0))c[o>>2]=101;else c[o>>2]=d[c[J>>2]>>0];a:do switch(c[o>>2]|0){case 154:{c[q>>2]=c[(c[J>>2]|0)+40>>2];c[r>>2]=(c[(c[q>>2]|0)+28>>2]|0)+((b[(c[J>>2]|0)+34>>1]|0)*24|0);if(!(a[c[q>>2]>>0]|0)){c[ga>>2]=c[(c[r>>2]|0)+16>>2];break a}if(a[(c[q>>2]|0)+1>>0]|0)Vw(c[ja>>2]|0,47,c[(c[q>>2]|0)+8>>2]|0,c[(c[r>>2]|0)+12>>2]|0,c[fa>>2]|0)|0;else ka=11;break}case 152:{ka=11;break}case 132:{AA(c[ea>>2]|0,c[J>>2]|0,0,c[fa>>2]|0);break}case 133:{BA(c[ja>>2]|0,c[(c[J>>2]|0)+8>>2]|0,0,c[fa>>2]|0);break}case 97:{Tw(c[ja>>2]|0,c[fa>>2]|0,c[(c[J>>2]|0)+8>>2]|0)|0;break}case 101:{Rw(c[ja>>2]|0,25,0,c[fa>>2]|0)|0;break}case 134:{c[D>>2]=(c[(c[J>>2]|0)+8>>2]|0)+2;c[n>>2]=(If(c[D>>2]|0)|0)-1;c[E>>2]=ox(wA(c[ja>>2]|0)|0,c[D>>2]|0,c[n>>2]|0)|0;Uw(c[ja>>2]|0,27,(c[n>>2]|0)/2|0,c[fa>>2]|0,0,c[E>>2]|0,-1)|0;break}case 135:{Rw(c[ja>>2]|0,28,b[(c[J>>2]|0)+32>>1]|0,c[fa>>2]|0)|0;if(a[(c[(c[J>>2]|0)+8>>2]|0)+1>>0]|0)Ih(c[ja>>2]|0,-1,c[(c[(c[ea>>2]|0)+476>>2]|0)+((b[(c[J>>2]|0)+32>>1]|0)-1<<2)>>2]|0,-2);break}case 157:{c[ga>>2]=c[(c[J>>2]|0)+28>>2];break}case 38:{c[ga>>2]=yA(c[ea>>2]|0,c[(c[J>>2]|0)+12>>2]|0,c[fa>>2]|0)|0;if((c[ga>>2]|0)!=(c[fa>>2]|0)){Rw(c[ja>>2]|0,31,c[ga>>2]|0,c[fa>>2]|0)|0;c[ga>>2]=c[fa>>2]}Rw(c[ja>>2]|0,40,c[fa>>2]|0,(jx(c[(c[J>>2]|0)+8>>2]|0,0)|0)<<24>>24)|0;CA(c[ea>>2]|0,c[ga>>2]|0,1);break}case 79:case 78:case 83:case 80:case 81:case 82:{c[R>>2]=DA(c[ea>>2]|0,c[(c[J>>2]|0)+12>>2]|0,ha)|0;c[y>>2]=DA(c[ea>>2]|0,c[(c[J>>2]|0)+16>>2]|0,ia)|0;EA(c[ea>>2]|0,c[(c[J>>2]|0)+12>>2]|0,c[(c[J>>2]|0)+16>>2]|0,c[o>>2]|0,c[R>>2]|0,c[y>>2]|0,c[ga>>2]|0,32)|0;break}case 148:case 73:{c[R>>2]=DA(c[ea>>2]|0,c[(c[J>>2]|0)+12>>2]|0,ha)|0;c[y>>2]=DA(c[ea>>2]|0,c[(c[J>>2]|0)+16>>2]|0,ia)|0;c[o>>2]=(c[o>>2]|0)==73?79:78;EA(c[ea>>2]|0,c[(c[J>>2]|0)+12>>2]|0,c[(c[J>>2]|0)+16>>2]|0,c[o>>2]|0,c[R>>2]|0,c[y>>2]|0,c[ga>>2]|0,160)|0;break}case 94:case 88:case 87:case 92:case 86:case 85:case 93:case 90:case 91:case 89:case 71:case 72:{c[R>>2]=DA(c[ea>>2]|0,c[(c[J>>2]|0)+12>>2]|0,ha)|0;c[y>>2]=DA(c[ea>>2]|0,c[(c[J>>2]|0)+16>>2]|0,ia)|0;Vw(c[ja>>2]|0,c[o>>2]|0,c[y>>2]|0,c[R>>2]|0,c[fa>>2]|0)|0;break}case 155:{c[u>>2]=c[(c[J>>2]|0)+12>>2];do if((d[c[u>>2]>>0]|0)!=132)if((d[c[u>>2]>>0]|0)==133){BA(c[ja>>2]|0,c[(c[u>>2]|0)+8>>2]|0,1,c[fa>>2]|0);break}else{a[U>>0]=-124;c[U+4>>2]=17408;c[U+8>>2]=0;c[R>>2]=DA(c[ea>>2]|0,U,ha)|0;c[y>>2]=DA(c[ea>>2]|0,c[(c[J>>2]|0)+12>>2]|0,ia)|0;Vw(c[ja>>2]|0,90,c[y>>2]|0,c[R>>2]|0,c[fa>>2]|0)|0;break}else AA(c[ea>>2]|0,c[u>>2]|0,1,c[fa>>2]|0);while(0);c[ga>>2]=c[fa>>2];break}case 19:case 96:{c[R>>2]=DA(c[ea>>2]|0,c[(c[J>>2]|0)+12>>2]|0,ha)|0;c[ga>>2]=c[fa>>2];Rw(c[ja>>2]|0,c[o>>2]|0,c[R>>2]|0,c[ga>>2]|0)|0;break}case 77:case 76:{Rw(c[ja>>2]|0,22,1,c[fa>>2]|0)|0;c[R>>2]=DA(c[ea>>2]|0,c[(c[J>>2]|0)+12>>2]|0,ha)|0;c[j>>2]=xz(c[ja>>2]|0,c[o>>2]|0,c[R>>2]|0)|0;Rw(c[ja>>2]|0,22,0,c[fa>>2]|0)|0;Fz(c[ja>>2]|0,c[j>>2]|0);break}case 153:{c[s>>2]=c[(c[J>>2]|0)+40>>2];if(!(c[s>>2]|0)){ja=c[ea>>2]|0;c[B>>2]=c[(c[J>>2]|0)+8>>2];Ah(ja,31938,B);break a}else{c[ga>>2]=c[(c[(c[s>>2]|0)+40>>2]|0)+(b[(c[J>>2]|0)+34>>1]<<4)+8>>2];break a}}case 151:{c[K>>2]=0;a[F>>0]=a[(c[L>>2]|0)+62>>0]|0;c[P>>2]=0;if(c[(c[J>>2]|0)+4>>2]&16384)c[T>>2]=0;else c[T>>2]=c[(c[J>>2]|0)+20>>2];if(c[T>>2]|0)j=c[c[T>>2]>>2]|0;else j=0;c[S>>2]=j;c[I>>2]=c[(c[J>>2]|0)+8>>2];c[G>>2]=If(c[I>>2]|0)|0;c[Q>>2]=gi(c[L>>2]|0,c[I>>2]|0,c[G>>2]|0,c[S>>2]|0,a[F>>0]|0,0)|0;if((c[Q>>2]|0)!=0?(c[(c[Q>>2]|0)+16>>2]|0)==0:0){if(e[(c[Q>>2]|0)+2>>1]&512){c[M>>2]=Cz(c[ja>>2]|0)|0;xA(c[ea>>2]|0,c[c[(c[T>>2]|0)+4>>2]>>2]|0,c[fa>>2]|0);c[O>>2]=1;while(1){j=c[ja>>2]|0;if((c[O>>2]|0)>=(c[S>>2]|0))break;Rw(j,77,c[fa>>2]|0,c[M>>2]|0)|0;oA(c[ea>>2]|0,c[fa>>2]|0,1);iA(c[ea>>2]|0);xA(c[ea>>2]|0,c[(c[(c[T>>2]|0)+4>>2]|0)+((c[O>>2]|0)*20|0)>>2]|0,c[fa>>2]|0);gA(c[ea>>2]|0);c[O>>2]=(c[O>>2]|0)+1}Gz(j,c[M>>2]|0);break a}if(e[(c[Q>>2]|0)+2>>1]&1024){c[ga>>2]=yA(c[ea>>2]|0,c[c[(c[T>>2]|0)+4>>2]>>2]|0,c[fa>>2]|0)|0;break a}c[O>>2]=0;while(1){if((c[O>>2]|0)>=(c[S>>2]|0))break;if((c[O>>2]|0)<32?(FA(c[(c[(c[T>>2]|0)+4>>2]|0)+((c[O>>2]|0)*20|0)>>2]|0)|0)!=0:0)c[K>>2]=c[K>>2]|1<<c[O>>2];if(!((c[P>>2]|0)!=0?1:(e[(c[Q>>2]|0)+2>>1]&32|0)==0))c[P>>2]=Ox(c[ea>>2]|0,c[(c[(c[T>>2]|0)+4>>2]|0)+((c[O>>2]|0)*20|0)>>2]|0)|0;c[O>>2]=(c[O>>2]|0)+1}if(c[T>>2]|0){j=c[ea>>2]|0;if(c[K>>2]|0){c[R>>2]=(c[j+76>>2]|0)+1;ca=(c[ea>>2]|0)+76|0;c[ca>>2]=(c[ca>>2]|0)+(c[S>>2]|0)}else c[R>>2]=kA(j,c[S>>2]|0)|0;do if(e[(c[Q>>2]|0)+2>>1]&192){a[N>>0]=a[c[c[(c[T>>2]|0)+4>>2]>>2]>>0]|0;if((d[N>>0]|0)!=152?(d[N>>0]|0)!=154:0)break;a[(c[c[(c[T>>2]|0)+4>>2]>>2]|0)+38>>0]=e[(c[Q>>2]|0)+2>>1]&192}while(0);iA(c[ea>>2]|0);GA(c[ea>>2]|0,c[T>>2]|0,c[R>>2]|0,0,3)|0;gA(c[ea>>2]|0)}else c[R>>2]=0;if((c[S>>2]|0)>=2?(c[(c[J>>2]|0)+4>>2]&128|0)!=0:0)c[Q>>2]=HA(c[L>>2]|0,c[Q>>2]|0,c[S>>2]|0,c[(c[(c[T>>2]|0)+4>>2]|0)+20>>2]|0)|0;else ka=77;if((ka|0)==77?(c[S>>2]|0)>0:0)c[Q>>2]=HA(c[L>>2]|0,c[Q>>2]|0,c[S>>2]|0,c[c[(c[T>>2]|0)+4>>2]>>2]|0)|0;if(e[(c[Q>>2]|0)+2>>1]&32){if(!(c[P>>2]|0))c[P>>2]=c[(c[L>>2]|0)+8>>2];Uw(c[ja>>2]|0,34,0,0,0,c[P>>2]|0,-4)|0}Uw(c[ja>>2]|0,35,c[K>>2]|0,c[R>>2]|0,c[fa>>2]|0,c[Q>>2]|0,-5)|0;Fh(c[ja>>2]|0,c[S>>2]&255);if(!((c[S>>2]|0)!=0&(c[K>>2]|0)==0))break a;nA(c[ea>>2]|0,c[R>>2]|0,c[S>>2]|0);break a}ja=c[ea>>2]|0;fa=c[I>>2]|0;c[H>>2]=c[G>>2];c[H+4>>2]=fa;Ah(ja,31964,H);break}case 119:case 20:{c[ga>>2]=IA(c[ea>>2]|0,c[J>>2]|0,0,0)|0;break}case 75:{c[k>>2]=Cz(c[ja>>2]|0)|0;c[l>>2]=Cz(c[ja>>2]|0)|0;Rw(c[ja>>2]|0,25,0,c[fa>>2]|0)|0;JA(c[ea>>2]|0,c[J>>2]|0,c[k>>2]|0,c[l>>2]|0);Rw(c[ja>>2]|0,22,1,c[fa>>2]|0)|0;Gz(c[ja>>2]|0,c[k>>2]|0);Rw(c[ja>>2]|0,37,c[fa>>2]|0,0)|0;Gz(c[ja>>2]|0,c[l>>2]|0);break}case 74:{c[v>>2]=c[(c[J>>2]|0)+12>>2];c[t>>2]=c[(c[(c[J>>2]|0)+20>>2]|0)+4>>2];c[w>>2]=c[c[t>>2]>>2];c[R>>2]=DA(c[ea>>2]|0,c[v>>2]|0,ha)|0;c[y>>2]=DA(c[ea>>2]|0,c[w>>2]|0,ia)|0;c[z>>2]=Wz(c[ea>>2]|0)|0;c[A>>2]=Wz(c[ea>>2]|0)|0;EA(c[ea>>2]|0,c[v>>2]|0,c[w>>2]|0,83,c[R>>2]|0,c[y>>2]|0,c[z>>2]|0,32)|0;c[t>>2]=(c[t>>2]|0)+20;c[w>>2]=c[c[t>>2]>>2];_z(c[ea>>2]|0,c[ia>>2]|0);c[y>>2]=DA(c[ea>>2]|0,c[w>>2]|0,ia)|0;EA(c[ea>>2]|0,c[v>>2]|0,c[w>>2]|0,81,c[R>>2]|0,c[y>>2]|0,c[A>>2]|0,32)|0;Vw(c[ja>>2]|0,72,c[z>>2]|0,c[A>>2]|0,c[fa>>2]|0)|0;_z(c[ea>>2]|0,c[z>>2]|0);_z(c[ea>>2]|0,c[A>>2]|0);break}case 156:case 95:{c[ga>>2]=yA(c[ea>>2]|0,c[(c[J>>2]|0)+12>>2]|0,c[fa>>2]|0)|0;break}case 62:{c[x>>2]=c[(c[J>>2]|0)+44>>2];c[p>>2]=(_(c[(c[J>>2]|0)+28>>2]|0,(b[(c[x>>2]|0)+34>>1]|0)+1|0)|0)+1+(b[(c[J>>2]|0)+32>>1]|0);Rw(c[ja>>2]|0,134,c[p>>2]|0,c[fa>>2]|0)|0;if((b[(c[J>>2]|0)+32>>1]|0)>=0?(a[(c[(c[x>>2]|0)+4>>2]|0)+((b[(c[J>>2]|0)+32>>1]|0)*24|0)+21>>0]|0)==69:0)xz(c[ja>>2]|0,39,c[fa>>2]|0)|0;break}case 57:{if(!(c[(c[ea>>2]|0)+420>>2]|0)){Ah(c[ea>>2]|0,31989,C);c[da>>2]=0;ka=c[da>>2]|0;i=la;return ka|0}if((a[(c[J>>2]|0)+1>>0]|0)==2)Bx(c[ea>>2]|0);if((a[(c[J>>2]|0)+1>>0]|0)==4){Uw(c[ja>>2]|0,21,0,4,0,c[(c[J>>2]|0)+8>>2]|0,0)|0;break a}else{bA(c[ea>>2]|0,1811,a[(c[J>>2]|0)+1>>0]|0,c[(c[J>>2]|0)+8>>2]|0,0,0);break a}}default:{c[ba>>2]=0;c[aa>>2]=c[(c[J>>2]|0)+20>>2];c[V>>2]=c[(c[aa>>2]|0)+4>>2];c[Y>>2]=c[c[aa>>2]>>2];c[W>>2]=Cz(c[ja>>2]|0)|0;T=c[(c[J>>2]|0)+12>>2]|0;c[ca>>2]=T;if(T){j=U;k=c[ca>>2]|0;l=j+48|0;do{c[j>>2]=c[k>>2];j=j+4|0;k=k+4|0}while((j|0)<(l|0));KA(U,DA(c[ea>>2]|0,c[ca>>2]|0,ha)|0);a[$>>0]=79;c[$+12>>2]=U;c[ba>>2]=$;c[ha>>2]=0}c[X>>2]=0;while(1){if((c[X>>2]|0)>=((c[Y>>2]|0)-1|0))break;iA(c[ea>>2]|0);j=c[(c[V>>2]|0)+((c[X>>2]|0)*20|0)>>2]|0;if(c[ca>>2]|0)c[$+16>>2]=j;else c[ba>>2]=j;c[Z>>2]=Cz(c[ja>>2]|0)|0;LA(c[ea>>2]|0,c[ba>>2]|0,c[Z>>2]|0,16);xA(c[ea>>2]|0,c[(c[V>>2]|0)+(((c[X>>2]|0)+1|0)*20|0)>>2]|0,c[fa>>2]|0);Ez(c[ja>>2]|0,c[W>>2]|0)|0;gA(c[ea>>2]|0);Gz(c[ja>>2]|0,c[Z>>2]|0);c[X>>2]=(c[X>>2]|0)+2}if(c[Y>>2]&1){iA(c[ea>>2]|0);xA(c[ea>>2]|0,c[(c[(c[aa>>2]|0)+4>>2]|0)+(((c[Y>>2]|0)-1|0)*20|0)>>2]|0,c[fa>>2]|0);gA(c[ea>>2]|0)}else Rw(c[ja>>2]|0,25,0,c[fa>>2]|0)|0;Gz(c[ja>>2]|0,c[W>>2]|0)}}while(0);b:do if((ka|0)==11){c[m>>2]=c[(c[J>>2]|0)+28>>2];do if((c[m>>2]|0)<0)if((c[(c[ea>>2]|0)+100>>2]|0)>0){c[ga>>2]=(b[(c[J>>2]|0)+32>>1]|0)+(c[(c[ea>>2]|0)+100>>2]|0);break b}else{c[m>>2]=c[(c[ea>>2]|0)+104>>2];break}while(0);c[ga>>2]=zA(c[ea>>2]|0,c[(c[J>>2]|0)+44>>2]|0,b[(c[J>>2]|0)+32>>1]|0,c[m>>2]|0,c[fa>>2]|0,a[(c[J>>2]|0)+38>>0]|0)|0}while(0);_z(c[ea>>2]|0,c[ha>>2]|0);_z(c[ea>>2]|0,c[ia>>2]|0);c[da>>2]=c[ga>>2];ka=c[da>>2]|0;i=la;return ka|0}function zA(d,e,f,g,h,j){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+48|0;k=v+32|0;l=v+28|0;m=v+24|0;n=v+20|0;o=v+16|0;p=v+12|0;q=v+36|0;t=v+8|0;r=v+4|0;s=v;c[l>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;a[q>>0]=j;c[t>>2]=c[(c[l>>2]|0)+8>>2];c[r>>2]=0;c[s>>2]=(c[l>>2]|0)+124;while(1){if((c[r>>2]|0)>=10)break;if(((c[(c[s>>2]|0)+12>>2]|0)>0?(c[c[s>>2]>>2]|0)==(c[o>>2]|0):0)?(b[(c[s>>2]|0)+4>>1]|0)==(c[n>>2]|0):0){u=6;break}c[r>>2]=(c[r>>2]|0)+1;c[s>>2]=(c[s>>2]|0)+20}if((u|0)==6){t=(c[l>>2]|0)+112|0;u=c[t>>2]|0;c[t>>2]=u+1;c[(c[s>>2]|0)+16>>2]=u;fB(c[l>>2]|0,c[(c[s>>2]|0)+12>>2]|0);c[k>>2]=c[(c[s>>2]|0)+12>>2];u=c[k>>2]|0;i=v;return u|0}tA(c[t>>2]|0,c[m>>2]|0,c[o>>2]|0,c[n>>2]|0,c[p>>2]|0);if(a[q>>0]|0)Fh(c[t>>2]|0,a[q>>0]|0);else gB(c[l>>2]|0,c[o>>2]|0,c[n>>2]|0,c[p>>2]|0);c[k>>2]=c[p>>2];u=c[k>>2]|0;i=v;return u|0}function AA(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=i;i=i+48|0;n=p+8|0;f=p+40|0;q=p+36|0;g=p+32|0;h=p+28|0;l=p+24|0;k=p+20|0;j=p+16|0;m=p;o=p+12|0;c[f>>2]=a;c[q>>2]=b;c[g>>2]=d;c[h>>2]=e;c[l>>2]=c[(c[f>>2]|0)+8>>2];e=(c[q>>2]|0)+8|0;if(c[(c[q>>2]|0)+4>>2]&1024){c[k>>2]=c[e>>2];if(c[g>>2]|0)c[k>>2]=0-(c[k>>2]|0);Rw(c[l>>2]|0,22,c[k>>2]|0,c[h>>2]|0)|0;i=p;return}c[o>>2]=c[e>>2];c[j>>2]=Ci(c[o>>2]|0,m)|0;if((c[j>>2]|0)!=0?!((c[j>>2]|0)==2&(c[g>>2]|0)!=0):0)if(!(zd(c[o>>2]|0,32088,2)|0)){q=c[f>>2]|0;c[n>>2]=c[o>>2];Ah(q,32091,n);i=p;return}else{BA(c[l>>2]|0,c[o>>2]|0,c[g>>2]|0,c[h>>2]|0);i=p;return}if(c[g>>2]|0){o=(c[j>>2]|0)==2;n=m;n=fR(0,0,c[n>>2]|0,c[n+4>>2]|0)|0;q=m;c[q>>2]=o?0:n;c[q+4>>2]=o?-2147483648:C}eB(c[l>>2]|0,23,0,c[h>>2]|0,0,m,-13)|0;i=p;return}function BA(a,b,d,e){a=a|0;b=b|0;
  43. d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;f=m+20|0;g=m+16|0;j=m+12|0;k=m+8|0;l=m;c[f>>2]=a;c[g>>2]=b;c[j>>2]=d;c[k>>2]=e;if(!(c[g>>2]|0)){i=m;return}b=c[g>>2]|0;Ky(b,l,If(c[g>>2]|0)|0,1)|0;if(c[j>>2]|0)h[l>>3]=-+h[l>>3];eB(c[f>>2]|0,133,0,c[k>>2]|0,0,l,-12)|0;i=m;return}function CA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;h=e+8|0;g=e+4|0;f=e;c[h>>2]=a;c[g>>2]=b;c[f>>2]=d;oA(c[h>>2]|0,c[g>>2]|0,c[f>>2]|0);i=e;return}function DA(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;f=q+32|0;g=q+28|0;h=q+24|0;j=q+20|0;o=q+16|0;l=q+12|0;k=q+8|0;m=q+4|0;n=q;c[g>>2]=a;c[h>>2]=b;c[j>>2]=e;c[h>>2]=Tx(c[h>>2]|0)|0;if(((d[(c[g>>2]|0)+23>>0]|0|0)!=0?(d[c[h>>2]>>0]|0|0)!=157:0)?(dB(c[h>>2]|0)|0)!=0:0){c[l>>2]=c[(c[g>>2]|0)+324>>2];c[c[j>>2]>>2]=0;a:do if(c[l>>2]|0){c[m>>2]=c[(c[l>>2]|0)+4>>2];c[k>>2]=c[c[l>>2]>>2];while(1){if((c[k>>2]|0)<=0)break a;if(((d[(c[m>>2]|0)+13>>0]|0)>>>2&1|0)!=0?(py(c[c[m>>2]>>2]|0,c[h>>2]|0,-1)|0)==0:0)break;c[m>>2]=(c[m>>2]|0)+20;c[k>>2]=(c[k>>2]|0)+-1}c[f>>2]=c[(c[m>>2]|0)+16>>2];p=c[f>>2]|0;i=q;return p|0}while(0);e=(c[g>>2]|0)+76|0;n=(c[e>>2]|0)+1|0;c[e>>2]=n;c[o>>2]=n;_A(c[g>>2]|0,c[h>>2]|0,c[o>>2]|0,1)}else p=12;do if((p|0)==12){c[n>>2]=Wz(c[g>>2]|0)|0;c[o>>2]=yA(c[g>>2]|0,c[h>>2]|0,c[n>>2]|0)|0;if((c[o>>2]|0)==(c[n>>2]|0)){c[c[j>>2]>>2]=c[n>>2];break}else{_z(c[g>>2]|0,c[n>>2]|0);c[c[j>>2]>>2]=0;break}}while(0);c[f>>2]=c[o>>2];p=c[f>>2]|0;i=q;return p|0}function EA(a,b,d,e,f,g,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;l=i;i=i+48|0;n=l+40|0;v=l+36|0;u=l+32|0;s=l+28|0;p=l+24|0;r=l+20|0;q=l+16|0;t=l+12|0;m=l+8|0;k=l+4|0;o=l;c[n>>2]=a;c[v>>2]=b;c[u>>2]=d;c[s>>2]=e;c[p>>2]=f;c[r>>2]=g;c[q>>2]=h;c[t>>2]=j;c[o>>2]=VA(c[n>>2]|0,c[v>>2]|0,c[u>>2]|0)|0;c[m>>2]=(cB(c[v>>2]|0,c[u>>2]|0,c[t>>2]|0)|0)&255;c[k>>2]=Uw(c[(c[n>>2]|0)+8>>2]|0,c[s>>2]|0,c[r>>2]|0,c[q>>2]|0,c[p>>2]|0,c[o>>2]|0,-4)|0;Fh(c[(c[n>>2]|0)+8>>2]|0,c[m>>2]&255);i=l;return c[k>>2]|0}function FA(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=$A(c[d>>2]|0,1,0)|0;i=b;return a|0}function GA(b,f,g,h,j){b=b|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=i;i=i+64|0;k=z+44|0;l=z+40|0;m=z+36|0;n=z+32|0;o=z+49|0;v=z+28|0;q=z+24|0;s=z+20|0;t=z+16|0;p=z+48|0;x=z+12|0;u=z+8|0;r=z+4|0;w=z;c[k>>2]=b;c[l>>2]=f;c[m>>2]=g;c[n>>2]=h;a[o>>0]=j;a[p>>0]=(d[o>>0]&1|0)!=0?30:31;c[x>>2]=c[(c[k>>2]|0)+8>>2];c[t>>2]=c[c[l>>2]>>2];if(!(a[(c[k>>2]|0)+23>>0]|0))a[o>>0]=d[o>>0]&-3;c[v>>2]=c[(c[l>>2]|0)+4>>2];c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[t>>2]|0))break;c[u>>2]=c[c[v>>2]>>2];if((d[o>>0]&4|0)!=0?(g=e[(c[(c[l>>2]|0)+4>>2]|0)+((c[q>>2]|0)*20|0)+16>>1]|0,c[s>>2]=g,(g|0)>0):0)Rw(c[x>>2]|0,d[p>>0]|0,(c[s>>2]|0)+(c[n>>2]|0)-1|0,(c[m>>2]|0)+(c[q>>2]|0)|0)|0;else y=8;do if((y|0)==8){y=0;if((d[o>>0]&2|0)!=0?(FA(c[u>>2]|0)|0)!=0:0){_A(c[k>>2]|0,c[u>>2]|0,(c[m>>2]|0)+(c[q>>2]|0)|0,0);break}c[r>>2]=yA(c[k>>2]|0,c[u>>2]|0,(c[m>>2]|0)+(c[q>>2]|0)|0)|0;if((c[r>>2]|0)!=((c[m>>2]|0)+(c[q>>2]|0)|0)){if((((d[p>>0]|0)==30?(g=Mz(c[x>>2]|0,-1)|0,c[w>>2]=g,(d[g>>0]|0)==30):0)?((c[(c[w>>2]|0)+4>>2]|0)+(c[(c[w>>2]|0)+12>>2]|0)+1|0)==(c[r>>2]|0):0)?((c[(c[w>>2]|0)+8>>2]|0)+(c[(c[w>>2]|0)+12>>2]|0)+1|0)==((c[m>>2]|0)+(c[q>>2]|0)|0):0){g=(c[w>>2]|0)+12|0;c[g>>2]=(c[g>>2]|0)+1;break}Rw(c[x>>2]|0,d[p>>0]|0,c[r>>2]|0,(c[m>>2]|0)+(c[q>>2]|0)|0)|0}}while(0);c[q>>2]=(c[q>>2]|0)+1;c[v>>2]=(c[v>>2]|0)+20}i=z;return c[t>>2]|0}function HA(f,g,h,j){f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=i;i=i+64|0;k=z+56|0;l=z+52|0;m=z+48|0;n=z+44|0;o=z+40|0;t=z+36|0;u=z+32|0;r=z+28|0;w=z+24|0;q=z+20|0;s=z+16|0;v=z+12|0;y=z+8|0;x=z+4|0;p=z;c[l>>2]=f;c[m>>2]=g;c[n>>2]=h;c[o>>2]=j;c[w>>2]=0;c[q>>2]=0;c[v>>2]=0;if(!(c[o>>2]|0)){c[k>>2]=c[m>>2];y=c[k>>2]|0;i=z;return y|0}if((d[c[o>>2]>>0]|0)!=152){c[k>>2]=c[m>>2];y=c[k>>2]|0;i=z;return y|0}c[t>>2]=c[(c[o>>2]|0)+44>>2];if(!(c[t>>2]|0)){c[k>>2]=c[m>>2];y=c[k>>2]|0;i=z;return y|0}if(!(d[(c[t>>2]|0)+42>>0]&16)){c[k>>2]=c[m>>2];y=c[k>>2]|0;i=z;return y|0}c[u>>2]=c[(Ax(c[l>>2]|0,c[t>>2]|0)|0)+8>>2];c[r>>2]=c[c[u>>2]>>2];if(!(c[(c[r>>2]|0)+72>>2]|0)){c[k>>2]=c[m>>2];y=c[k>>2]|0;i=z;return y|0}c[y>>2]=nh(c[l>>2]|0,c[(c[m>>2]|0)+20>>2]|0)|0;if(c[y>>2]|0){c[x>>2]=c[y>>2];while(1){if(!(a[c[x>>2]>>0]|0))break;a[c[x>>2]>>0]=a[18477+(d[c[x>>2]>>0]|0)>>0]|0;c[x>>2]=(c[x>>2]|0)+1}r=c[(c[r>>2]|0)+72>>2]|0;t=c[u>>2]|0;u=c[n>>2]|0;x=c[y>>2]|0;c[p>>2]=w;c[v>>2]=Zb[r&255](t,u,x,c[p>>2]|0,q)|0;Sf(c[l>>2]|0,c[y>>2]|0)}if(!(c[v>>2]|0)){c[k>>2]=c[m>>2];y=c[k>>2]|0;i=z;return y|0}y=c[l>>2]|0;c[s>>2]=ph(y,32+(If(c[(c[m>>2]|0)+20>>2]|0)|0)+1|0,0)|0;if(!(c[s>>2]|0)){c[k>>2]=c[m>>2];y=c[k>>2]|0;i=z;return y|0}else{x=c[s>>2]|0;y=c[m>>2]|0;c[x>>2]=c[y>>2];c[x+4>>2]=c[y+4>>2];c[x+8>>2]=c[y+8>>2];c[x+12>>2]=c[y+12>>2];c[x+16>>2]=c[y+16>>2];c[x+20>>2]=c[y+20>>2];c[x+24>>2]=c[y+24>>2];c[x+28>>2]=c[y+28>>2];c[(c[s>>2]|0)+20>>2]=(c[s>>2]|0)+32;x=c[(c[s>>2]|0)+20>>2]|0;y=c[(c[m>>2]|0)+20>>2]|0;iR(x|0,y|0,(If(c[(c[m>>2]|0)+20>>2]|0)|0)+1|0)|0;c[(c[s>>2]|0)+12>>2]=c[w>>2];c[(c[s>>2]|0)+4>>2]=c[q>>2];y=(c[s>>2]|0)+2|0;b[y>>1]=e[y>>1]|16;c[k>>2]=c[s>>2];y=c[k>>2]|0;i=z;return y|0}return 0}function IA(f,g,h,j){f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;M=i;i=i+160|0;k=M;t=M+140|0;u=M+136|0;v=M+132|0;w=M+128|0;x=M+124|0;C=M+120|0;J=M+116|0;K=M+112|0;l=M+108|0;z=M+144|0;y=M+104|0;n=M+100|0;F=M+96|0;s=M+92|0;p=M+72|0;q=M+68|0;A=M+64|0;r=M+60|0;E=M+56|0;G=M+52|0;H=M+48|0;I=M+44|0;D=M+40|0;B=M+36|0;o=M+32|0;m=M+12|0;c[u>>2]=f;c[v>>2]=g;c[w>>2]=h;c[x>>2]=j;c[C>>2]=-1;c[J>>2]=0;c[K>>2]=Pw(c[u>>2]|0)|0;if(!(c[K>>2]|0)){c[t>>2]=0;L=c[t>>2]|0;i=M;return L|0}iA(c[u>>2]|0);if(!(c[(c[v>>2]|0)+4>>2]&32))c[C>>2]=UA(c[u>>2]|0)|0;if((d[(c[u>>2]|0)+453>>0]|0)==2){h=c[c[u>>2]>>2]|0;g=(d[c[v>>2]>>0]|0)==75?32051:32056;f=c[(c[u>>2]|0)+472>>2]|0;c[k>>2]=(c[C>>2]|0)>=0?19266:32039;c[k+4>>2]=g;c[k+8>>2]=f;c[l>>2]=Bh(h,32063,k)|0;Uw(c[K>>2]|0,161,c[(c[u>>2]|0)+468>>2]|0,0,0,c[l>>2]|0,-1)|0}j=c[v>>2]|0;do if((d[c[v>>2]>>0]|0)==75){c[n>>2]=c[j+12>>2];c[F>>2]=0;a[z>>0]=Nx(c[n>>2]|0)|0;n=(c[u>>2]|0)+72|0;o=c[n>>2]|0;c[n>>2]=o+1;c[(c[v>>2]|0)+28>>2]=o;c[y>>2]=Rw(c[K>>2]|0,57,c[(c[v>>2]|0)+28>>2]|0,((c[x>>2]|0)!=0^1)&1)|0;if(c[x>>2]|0)j=0;else j=Qz(c[c[u>>2]>>2]|0,1,1)|0;c[F>>2]=j;j=(c[v>>2]|0)+20|0;do if(!(c[(c[v>>2]|0)+4>>2]&2048)){if(c[j>>2]|0){c[r>>2]=c[(c[v>>2]|0)+20>>2];if(!(a[z>>0]|0))a[z>>0]=65;if(c[F>>2]|0){s=Ox(c[u>>2]|0,c[(c[v>>2]|0)+12>>2]|0)|0;c[(c[F>>2]|0)+20>>2]=s}c[G>>2]=Wz(c[u>>2]|0)|0;c[H>>2]=Wz(c[u>>2]|0)|0;if(c[x>>2]|0)Rw(c[K>>2]|0,25,0,c[H>>2]|0)|0;c[A>>2]=c[c[r>>2]>>2];c[E>>2]=c[(c[r>>2]|0)+4>>2];while(1){if((c[A>>2]|0)<=0)break;c[D>>2]=c[c[E>>2]>>2];if((c[C>>2]|0)>=0?(FA(c[D>>2]|0)|0)==0:0){pA(c[K>>2]|0,c[C>>2]|0)|0;c[C>>2]=-1}if((c[x>>2]|0)!=0?(ky(c[D>>2]|0,B)|0)!=0:0)Vw(c[K>>2]|0,84,c[(c[v>>2]|0)+28>>2]|0,c[H>>2]|0,c[B>>2]|0)|0;else L=29;do if((L|0)==29){L=0;c[I>>2]=yA(c[u>>2]|0,c[D>>2]|0,c[G>>2]|0)|0;j=c[K>>2]|0;g=c[I>>2]|0;if(c[x>>2]|0){Rw(j,38,g,(Bz(c[K>>2]|0)|0)+2|0)|0;Vw(c[K>>2]|0,75,c[(c[v>>2]|0)+28>>2]|0,c[H>>2]|0,c[I>>2]|0)|0;break}else{Uw(j,49,g,1,c[H>>2]|0,z,1)|0;CA(c[u>>2]|0,c[I>>2]|0,1);Rw(c[K>>2]|0,110,c[(c[v>>2]|0)+28>>2]|0,c[H>>2]|0)|0;break}}while(0);c[A>>2]=(c[A>>2]|0)+-1;c[E>>2]=(c[E>>2]|0)+20}_z(c[u>>2]|0,c[G>>2]|0);_z(c[u>>2]|0,c[H>>2]|0)}}else{c[s>>2]=c[j>>2];ZA(p,11,c[(c[v>>2]|0)+28>>2]|0);a[p+1>>0]=a[z>>0]|0;c[(c[s>>2]|0)+8>>2]=0;if(!(Cv(c[u>>2]|0,c[s>>2]|0,p)|0)){c[q>>2]=c[c[s>>2]>>2];L=VA(c[u>>2]|0,c[(c[v>>2]|0)+12>>2]|0,c[c[(c[q>>2]|0)+4>>2]>>2]|0)|0;c[(c[F>>2]|0)+20>>2]=L;break}Rz(c[F>>2]|0);c[t>>2]=0;L=c[t>>2]|0;i=M;return L|0}while(0);if(c[F>>2]|0)Ih(c[K>>2]|0,c[y>>2]|0,c[F>>2]|0,-6)}else{c[o>>2]=c[j+20>>2];I=(c[u>>2]|0)+76|0;L=(c[I>>2]|0)+1|0;c[I>>2]=L;ZA(m,0,L);if((d[c[v>>2]>>0]|0)==119){a[m>>0]=10;c[m+8>>2]=c[m+4>>2];Rw(c[K>>2]|0,25,0,c[m+4>>2]|0)|0}else{a[m>>0]=3;Rw(c[K>>2]|0,22,0,c[m+4>>2]|0)|0}Zu(c[c[u>>2]>>2]|0,c[(c[o>>2]|0)+60>>2]|0);L=rv(c[u>>2]|0,132,0,0,5100)|0;c[(c[o>>2]|0)+60>>2]=L;c[(c[o>>2]|0)+8>>2]=0;L=(c[o>>2]|0)+6|0;b[L>>1]=e[L>>1]&-513;if(!(Cv(c[u>>2]|0,c[o>>2]|0,m)|0)){c[J>>2]=c[m+4>>2];break}c[t>>2]=0;L=c[t>>2]|0;i=M;return L|0}while(0);if(c[w>>2]|0)XA(c[K>>2]|0,c[(c[v>>2]|0)+28>>2]|0,c[w>>2]|0);if((c[C>>2]|0)>=0)Fz(c[K>>2]|0,c[C>>2]|0);gA(c[u>>2]|0);c[t>>2]=c[J>>2];L=c[t>>2]|0;i=M;return L|0}function JA(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=i;i=i+80|0;s=z+64|0;r=z+60|0;t=z+56|0;u=z+52|0;x=z+48|0;p=z+68|0;q=z+44|0;w=z+40|0;y=z+36|0;k=z+32|0;j=z+28|0;h=z+24|0;l=z+20|0;n=z+16|0;m=z+12|0;g=z+8|0;o=z+4|0;v=z;c[s>>2]=b;c[r>>2]=d;c[t>>2]=e;c[u>>2]=f;c[x>>2]=0;c[y>>2]=c[(c[s>>2]|0)+8>>2];c[q>>2]=PA(c[s>>2]|0,c[r>>2]|0,3,(c[t>>2]|0)==(c[u>>2]|0)?0:x)|0;a[p>>0]=QA(c[r>>2]|0)|0;iA(c[s>>2]|0);c[w>>2]=Wz(c[s>>2]|0)|0;xA(c[s>>2]|0,c[(c[r>>2]|0)+12>>2]|0,c[w>>2]|0);e=c[r>>2]|0;if((c[q>>2]|0)!=5){do if(RA(c[e+12>>2]|0)|0){e=c[y>>2]|0;f=c[w>>2]|0;if((c[u>>2]|0)==(c[t>>2]|0)){Rw(e,76,f,c[u>>2]|0)|0;break}else{c[o>>2]=xz(e,77,f)|0;Rw(c[y>>2]|0,108,c[(c[r>>2]|0)+28>>2]|0,c[t>>2]|0)|0;Ez(c[y>>2]|0,c[u>>2]|0)|0;Fz(c[y>>2]|0,c[o>>2]|0);break}}while(0);e=c[y>>2]|0;f=c[w>>2]|0;if((c[q>>2]|0)==1){Rw(e,38,f,c[t>>2]|0)|0;Vw(c[y>>2]|0,70,c[(c[r>>2]|0)+28>>2]|0,c[t>>2]|0,c[w>>2]|0)|0;x=c[s>>2]|0;y=c[w>>2]|0;_z(x,y);y=c[s>>2]|0;gA(y);i=z;return}Uw(e,48,f,1,0,p,1)|0;f=c[y>>2]|0;e=c[(c[r>>2]|0)+28>>2]|0;if(!(c[x>>2]|0)){Eh(f,68,e,c[t>>2]|0,c[w>>2]|0,1)|0;x=c[s>>2]|0;y=c[w>>2]|0;_z(x,y);y=c[s>>2]|0;gA(y);i=z;return}else{c[v>>2]=Eh(f,69,e,0,c[w>>2]|0,1)|0;Rw(c[y>>2]|0,76,c[x>>2]|0,c[u>>2]|0)|0;Ez(c[y>>2]|0,c[t>>2]|0)|0;Fz(c[y>>2]|0,c[v>>2]|0);x=c[s>>2]|0;y=c[w>>2]|0;_z(x,y);y=c[s>>2]|0;gA(y);i=z;return}}c[k>>2]=c[e+20>>2];c[j>>2]=Ox(c[s>>2]|0,c[(c[r>>2]|0)+12>>2]|0)|0;c[h>>2]=Cz(c[y>>2]|0)|0;c[m>>2]=0;if((c[u>>2]|0)!=(c[t>>2]|0)){c[m>>2]=Wz(c[s>>2]|0)|0;Vw(c[y>>2]|0,85,c[w>>2]|0,c[w>>2]|0,c[m>>2]|0)|0}c[g>>2]=0;while(1){if((c[g>>2]|0)>=(c[c[k>>2]>>2]|0))break;c[l>>2]=DA(c[s>>2]|0,c[(c[(c[k>>2]|0)+4>>2]|0)+((c[g>>2]|0)*20|0)>>2]|0,n)|0;if((c[m>>2]|0)!=0?(RA(c[(c[(c[k>>2]|0)+4>>2]|0)+((c[g>>2]|0)*20|0)>>2]|0)|0)!=0:0)Vw(c[y>>2]|0,85,c[m>>2]|0,c[l>>2]|0,c[m>>2]|0)|0;if((c[g>>2]|0)>=((c[c[k>>2]>>2]|0)-1|0)?(c[u>>2]|0)==(c[t>>2]|0):0){Uw(c[y>>2]|0,78,c[w>>2]|0,c[t>>2]|0,c[l>>2]|0,c[j>>2]|0,-4)|0;Fh(c[y>>2]|0,(a[p>>0]|16)&255)}else{Uw(c[y>>2]|0,79,c[w>>2]|0,c[h>>2]|0,c[l>>2]|0,c[j>>2]|0,-4)|0;Fh(c[y>>2]|0,a[p>>0]|0)}_z(c[s>>2]|0,c[n>>2]|0);c[g>>2]=(c[g>>2]|0)+1}if(c[m>>2]|0){Rw(c[y>>2]|0,76,c[m>>2]|0,c[u>>2]|0)|0;Ez(c[y>>2]|0,c[t>>2]|0)|0}Gz(c[y>>2]|0,c[h>>2]|0);_z(c[s>>2]|0,c[m>>2]|0);x=c[s>>2]|0;y=c[w>>2]|0;_z(x,y);y=c[s>>2]|0;gA(y);i=z;return}function KA(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;a[(c[f>>2]|0)+38>>0]=a[c[f>>2]>>0]|0;a[c[f>>2]>>0]=-99;c[(c[f>>2]|0)+28>>2]=c[g>>2];b=(c[f>>2]|0)+4|0;c[b>>2]=c[b>>2]&-4097;i=e;return}function LA(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+48|0;g=t+44|0;h=t+40|0;j=t+36|0;k=t+32|0;s=t+28|0;n=t+24|0;q=t+20|0;r=t+16|0;o=t+12|0;p=t+8|0;l=t+4|0;m=t;c[g>>2]=a;c[h>>2]=b;c[j>>2]=e;c[k>>2]=f;c[s>>2]=c[(c[g>>2]|0)+8>>2];c[n>>2]=0;c[q>>2]=0;c[r>>2]=0;if((c[s>>2]|0)==0|(c[h>>2]|0)==0){i=t;return}c[n>>2]=((d[c[h>>2]>>0]|0)+0^1)-0;a:do switch(d[c[h>>2]>>0]|0|0){case 72:{LA(c[g>>2]|0,c[(c[h>>2]|0)+12>>2]|0,c[j>>2]|0,c[k>>2]|0);iA(c[g>>2]|0);LA(c[g>>2]|0,c[(c[h>>2]|0)+16>>2]|0,c[j>>2]|0,c[k>>2]|0);gA(c[g>>2]|0);break}case 71:{c[l>>2]=Cz(c[s>>2]|0)|0;MA(c[g>>2]|0,c[(c[h>>2]|0)+12>>2]|0,c[l>>2]|0,c[k>>2]^16);iA(c[g>>2]|0);LA(c[g>>2]|0,c[(c[h>>2]|0)+16>>2]|0,c[j>>2]|0,c[k>>2]|0);Gz(c[s>>2]|0,c[l>>2]|0);gA(c[g>>2]|0);break}case 19:{MA(c[g>>2]|0,c[(c[h>>2]|0)+12>>2]|0,c[j>>2]|0,c[k>>2]|0);break}case 79:case 78:case 83:case 80:case 81:case 82:{c[o>>2]=DA(c[g>>2]|0,c[(c[h>>2]|0)+12>>2]|0,q)|0;c[p>>2]=DA(c[g>>2]|0,c[(c[h>>2]|0)+16>>2]|0,r)|0;EA(c[g>>2]|0,c[(c[h>>2]|0)+12>>2]|0,c[(c[h>>2]|0)+16>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;break}case 148:case 73:{c[o>>2]=DA(c[g>>2]|0,c[(c[h>>2]|0)+12>>2]|0,q)|0;c[p>>2]=DA(c[g>>2]|0,c[(c[h>>2]|0)+16>>2]|0,r)|0;c[n>>2]=(d[c[h>>2]>>0]|0|0)==73?78:79;EA(c[g>>2]|0,c[(c[h>>2]|0)+12>>2]|0,c[(c[h>>2]|0)+16>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[j>>2]|0,128)|0;break}case 77:case 76:{c[o>>2]=DA(c[g>>2]|0,c[(c[h>>2]|0)+12>>2]|0,q)|0;Rw(c[s>>2]|0,c[n>>2]|0,c[o>>2]|0,c[j>>2]|0)|0;break}case 74:{NA(c[g>>2]|0,c[h>>2]|0,c[j>>2]|0,0,c[k>>2]|0);break}case 75:if(c[k>>2]|0){JA(c[g>>2]|0,c[h>>2]|0,c[j>>2]|0,c[j>>2]|0);break a}else{c[m>>2]=Cz(c[s>>2]|0)|0;JA(c[g>>2]|0,c[h>>2]|0,c[j>>2]|0,c[m>>2]|0);Gz(c[s>>2]|0,c[m>>2]|0);break a}default:{if(bz(c[h>>2]|0)|0){Ez(c[s>>2]|0,c[j>>2]|0)|0;break a}if(!(OA(c[h>>2]|0)|0)){c[o>>2]=DA(c[g>>2]|0,c[h>>2]|0,q)|0;Vw(c[s>>2]|0,46,c[o>>2]|0,c[j>>2]|0,(c[k>>2]|0)!=0&1)|0}}}while(0);_z(c[g>>2]|0,c[q>>2]|0);_z(c[g>>2]|0,c[r>>2]|0);i=t;return}function MA(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+64|0;g=u+48|0;h=u+44|0;j=u+40|0;k=u+36|0;t=u+32|0;o=u+28|0;r=u+24|0;s=u+20|0;p=u+16|0;q=u+12|0;l=u+8|0;m=u+4|0;n=u;c[g>>2]=a;c[h>>2]=b;c[j>>2]=e;c[k>>2]=f;c[t>>2]=c[(c[g>>2]|0)+8>>2];c[o>>2]=0;c[r>>2]=0;c[s>>2]=0;if((c[t>>2]|0)==0|(c[h>>2]|0)==0){i=u;return}c[o>>2]=d[c[h>>2]>>0];a:do switch(c[o>>2]|0){case 72:{c[l>>2]=Cz(c[t>>2]|0)|0;LA(c[g>>2]|0,c[(c[h>>2]|0)+12>>2]|0,c[l>>2]|0,c[k>>2]^16);iA(c[g>>2]|0);MA(c[g>>2]|0,c[(c[h>>2]|0)+16>>2]|0,c[j>>2]|0,c[k>>2]|0);Gz(c[t>>2]|0,c[l>>2]|0);gA(c[g>>2]|0);break}case 71:{MA(c[g>>2]|0,c[(c[h>>2]|0)+12>>2]|0,c[j>>2]|0,c[k>>2]|0);iA(c[g>>2]|0);MA(c[g>>2]|0,c[(c[h>>2]|0)+16>>2]|0,c[j>>2]|0,c[k>>2]|0);gA(c[g>>2]|0);break}case 19:{LA(c[g>>2]|0,c[(c[h>>2]|0)+12>>2]|0,c[j>>2]|0,c[k>>2]|0);break}case 79:case 78:case 83:case 80:case 81:case 82:{c[p>>2]=DA(c[g>>2]|0,c[(c[h>>2]|0)+12>>2]|0,r)|0;c[q>>2]=DA(c[g>>2]|0,c[(c[h>>2]|0)+16>>2]|0,s)|0;EA(c[g>>2]|0,c[(c[h>>2]|0)+12>>2]|0,c[(c[h>>2]|0)+16>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;break}case 148:case 73:{c[p>>2]=DA(c[g>>2]|0,c[(c[h>>2]|0)+12>>2]|0,r)|0;c[q>>2]=DA(c[g>>2]|0,c[(c[h>>2]|0)+16>>2]|0,s)|0;c[o>>2]=(c[o>>2]|0)==73?79:78;EA(c[g>>2]|0,c[(c[h>>2]|0)+12>>2]|0,c[(c[h>>2]|0)+16>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0,c[j>>2]|0,128)|0;break}case 77:case 76:{c[p>>2]=DA(c[g>>2]|0,c[(c[h>>2]|0)+12>>2]|0,r)|0;Rw(c[t>>2]|0,c[o>>2]|0,c[p>>2]|0,c[j>>2]|0)|0;break}case 74:{NA(c[g>>2]|0,c[h>>2]|0,c[j>>2]|0,1,c[k>>2]|0);break}case 75:{c[m>>2]=Cz(c[t>>2]|0)|0;c[n>>2]=(c[k>>2]|0)!=0?c[j>>2]|0:c[m>>2]|0;JA(c[g>>2]|0,c[h>>2]|0,c[m>>2]|0,c[n>>2]|0);Ez(c[t>>2]|0,c[j>>2]|0)|0;Gz(c[t>>2]|0,c[m>>2]|0);break}default:{if(OA(c[h>>2]|0)|0){Ez(c[t>>2]|0,c[j>>2]|0)|0;break a}if(!(bz(c[h>>2]|0)|0)){c[p>>2]=DA(c[g>>2]|0,c[h>>2]|0,r)|0;Vw(c[t>>2]|0,45,c[p>>2]|0,c[j>>2]|0,(c[k>>2]|0)!=0&1)|0}}}while(0);_z(c[g>>2]|0,c[r>>2]|0);_z(c[g>>2]|0,c[s>>2]|0);i=u;return}function NA(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+224|0;o=s+216|0;h=s+212|0;m=s+208|0;p=s+204|0;n=s+200|0;q=s+152|0;j=s+104|0;k=s+56|0;l=s+8|0;r=s;c[o>>2]=b;c[h>>2]=d;c[m>>2]=e;c[p>>2]=f;c[n>>2]=g;c[r>>2]=0;e=l;g=c[(c[h>>2]|0)+12>>2]|0;f=e+48|0;do{c[e>>2]=c[g>>2];e=e+4|0;g=g+4|0}while((e|0)<(f|0));a[q>>0]=72;c[q+12>>2]=j;c[q+16>>2]=k;a[j>>0]=83;c[j+12>>2]=l;c[j+16>>2]=c[c[(c[(c[h>>2]|0)+20>>2]|0)+4>>2]>>2];a[k>>0]=81;c[k+12>>2]=l;c[k+16>>2]=c[(c[(c[(c[h>>2]|0)+20>>2]|0)+4>>2]|0)+20>>2];KA(l,DA(c[o>>2]|0,l,r)|0);f=c[o>>2]|0;g=c[m>>2]|0;e=c[n>>2]|0;if(c[p>>2]|0){MA(f,q,g,e);q=c[o>>2]|0;r=c[r>>2]|0;_z(q,r);i=s;return}else{LA(f,q,g,e);q=c[o>>2]|0;r=c[r>>2]|0;_z(q,r);i=s;return}}function OA(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;b=f+8|0;d=f+4|0;e=f;c[d>>2]=a;c[e>>2]=0;do if(!(c[(c[d>>2]|0)+4>>2]&1))if(ky(c[d>>2]|0,e)|0){c[b>>2]=(c[e>>2]|0)!=0&1;break}else{c[b>>2]=0;break}else c[b>>2]=0;while(0);i=f;return c[b>>2]|0}function PA(f,g,h,j){f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+80|0;l=F+72|0;m=F+68|0;n=F+64|0;o=F+60|0;k=F+56|0;r=F+52|0;w=F+48|0;x=F+44|0;E=F+40|0;q=F+36|0;B=F+32|0;y=F+28|0;u=F+78|0;v=F+76|0;s=F+24|0;z=F+20|0;A=F+16|0;p=F+12|0;t=F+8|0;D=F+4|0;C=F;c[l>>2]=f;c[m>>2]=g;c[n>>2]=h;c[o>>2]=j;c[r>>2]=0;g=(c[l>>2]|0)+72|0;j=c[g>>2]|0;c[g>>2]=j+1;c[w>>2]=j;c[E>>2]=Pw(c[l>>2]|0)|0;c[x>>2]=(c[n>>2]&4|0)!=0&1;if(c[(c[m>>2]|0)+4>>2]&2048)h=c[(c[m>>2]|0)+20>>2]|0;else h=0;c[k>>2]=h;a:do if((c[(c[l>>2]|0)+68>>2]|0)==0?(TA(c[k>>2]|0)|0)!=0:0){c[q>>2]=c[c[l>>2]>>2];c[B>>2]=c[(c[(c[k>>2]|0)+32>>2]|0)+8+16>>2];c[y>>2]=c[c[(c[c[k>>2]>>2]|0)+4>>2]>>2];b[u>>1]=b[(c[y>>2]|0)+32>>1]|0;b[v>>1]=Dh(c[q>>2]|0,c[(c[B>>2]|0)+64>>2]|0)|0;bx(c[l>>2]|0,b[v>>1]|0);yz(c[l>>2]|0,b[v>>1]|0,c[(c[B>>2]|0)+28>>2]|0,0,c[c[B>>2]>>2]|0);h=c[l>>2]|0;if((b[u>>1]|0)<0){c[s>>2]=UA(h)|0;zz(c[l>>2]|0,c[w>>2]|0,b[v>>1]|0,c[B>>2]|0,54);c[r>>2]=1;Fz(c[E>>2]|0,c[s>>2]|0);break}c[A>>2]=VA(h,c[(c[m>>2]|0)+12>>2]|0,c[y>>2]|0)|0;c[p>>2]=WA(c[m>>2]|0,a[(c[(c[B>>2]|0)+4>>2]|0)+((b[u>>1]|0)*24|0)+21>>0]|0)|0;c[z>>2]=c[(c[B>>2]|0)+8>>2];while(1){if(!((c[z>>2]|0)!=0&(c[r>>2]|0)==0&(c[p>>2]|0)!=0))break a;do if((b[c[(c[z>>2]|0)+4>>2]>>1]|0)==(b[u>>1]|0)?(y=Mj(c[q>>2]|0,a[(c[q>>2]|0)+62>>0]|0,c[c[(c[z>>2]|0)+32>>2]>>2]|0,0)|0,(y|0)==(c[A>>2]|0)):0){if(c[x>>2]|0){if((e[(c[z>>2]|0)+50>>1]|0)!=1)break;if(!(d[(c[z>>2]|0)+54>>0]|0))break}c[t>>2]=UA(c[l>>2]|0)|0;Vw(c[E>>2]|0,54,c[w>>2]|0,c[(c[z>>2]|0)+44>>2]|0,b[v>>1]|0)|0;Az(c[l>>2]|0,c[z>>2]|0);c[r>>2]=3+(d[c[(c[z>>2]|0)+28>>2]>>0]|0);if((c[o>>2]|0)!=0?(a[(c[(c[B>>2]|0)+4>>2]|0)+((b[u>>1]|0)*24|0)+20>>0]|0)==0:0){s=(c[l>>2]|0)+76|0;y=(c[s>>2]|0)+1|0;c[s>>2]=y;c[c[o>>2]>>2]=y;XA(c[E>>2]|0,c[w>>2]|0,c[c[o>>2]>>2]|0)}Fz(c[E>>2]|0,c[t>>2]|0)}while(0);c[z>>2]=c[(c[z>>2]|0)+20>>2]}}while(0);do if(((c[r>>2]|0)==0?(c[n>>2]&1|0)!=0:0)?(c[(c[m>>2]|0)+4>>2]&2048|0)==0:0){if((YA(c[m>>2]|0)|0)!=0?(c[c[(c[m>>2]|0)+20>>2]>>2]|0)>2:0)break;c[r>>2]=5}while(0);if(c[r>>2]|0){c[(c[m>>2]|0)+28>>2]=c[w>>2];E=c[r>>2]|0;i=F;return E|0}c[D>>2]=c[(c[l>>2]|0)+428>>2];c[C>>2]=0;c[r>>2]=2;if(c[n>>2]&4){c[(c[l>>2]|0)+428>>2]=0;if((b[(c[(c[m>>2]|0)+12>>2]|0)+32>>1]|0)<0?(c[(c[m>>2]|0)+4>>2]&2048|0)==0:0)c[r>>2]=1}else if(c[o>>2]|0){B=(c[l>>2]|0)+76|0;E=(c[B>>2]|0)+1|0;c[B>>2]=E;c[C>>2]=E;c[c[o>>2]>>2]=E}IA(c[l>>2]|0,c[m>>2]|0,c[C>>2]|0,(c[r>>2]|0)==1&1)|0;c[(c[l>>2]|0)+428>>2]=c[D>>2];E=c[r>>2]|0;i=F;return E|0}function QA(b){b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f;e=f+4|0;c[d>>2]=b;a[e>>0]=Nx(c[(c[d>>2]|0)+12>>2]|0)|0;b=c[d>>2]|0;if(c[(c[d>>2]|0)+16>>2]|0){a[e>>0]=SA(c[b+16>>2]|0,a[e>>0]|0)|0;e=a[e>>0]|0;i=f;return e|0}if(c[b+4>>2]&2048){a[e>>0]=SA(c[c[(c[c[(c[d>>2]|0)+20>>2]>>2]|0)+4>>2]>>2]|0,a[e>>0]|0)|0;e=a[e>>0]|0;i=f;return e|0}if(a[e>>0]|0){e=a[e>>0]|0;i=f;return e|0}a[e>>0]=65;e=a[e>>0]|0;i=f;return e|0}function RA(e){e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;j=k+4|0;g=k;h=k+8|0;c[g>>2]=e;while(1){if((d[c[g>>2]>>0]|0)==156)f=1;else f=(d[c[g>>2]>>0]|0)==155;e=c[g>>2]|0;if(!f)break;c[g>>2]=c[e+12>>2]}a[h>>0]=a[e>>0]|0;if((d[h>>0]|0)==157)a[h>>0]=a[(c[g>>2]|0)+38>>0]|0;switch(d[h>>0]|0){case 134:case 133:case 97:case 132:{c[j>>2]=0;j=c[j>>2]|0;i=k;return j|0}case 152:{if(!(c[(c[g>>2]|0)+4>>2]&1048576))if((b[(c[g>>2]|0)+32>>1]|0)>=0)e=(d[(c[(c[(c[g>>2]|0)+44>>2]|0)+4>>2]|0)+((b[(c[g>>2]|0)+32>>1]|0)*24|0)+20>>0]|0)==0;else e=0;else e=1;c[j>>2]=e&1;j=c[j>>2]|0;i=k;return j|0}default:{c[j>>2]=1;j=c[j>>2]|0;i=k;return j|0}}return 0}function SA(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;h=i;i=i+16|0;e=h+6|0;j=h;f=h+5|0;g=h+4|0;c[j>>2]=b;a[f>>0]=d;a[g>>0]=Nx(c[j>>2]|0)|0;if((a[g>>0]|0)!=0?(a[f>>0]|0)!=0:0){if((a[g>>0]|0)<67?(a[f>>0]|0)<67:0){a[e>>0]=65;j=a[e>>0]|0;i=h;return j|0}a[e>>0]=67;j=a[e>>0]|0;i=h;return j|0}if((a[g>>0]|0)!=0|(a[f>>0]|0)!=0){a[e>>0]=(a[g>>0]|0)+(a[f>>0]|0);j=a[e>>0]|0;i=h;return j|0}else{a[e>>0]=65;j=a[e>>0]|0;i=h;return j|0}return 0}function TA(a){a=a|0;var b=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;b=k+16|0;f=k+12|0;h=k+8|0;g=k+4|0;j=k;c[f>>2]=a;do if(c[f>>2]|0){if(c[(c[f>>2]|0)+52>>2]|0){c[b>>2]=0;break}if((e[(c[f>>2]|0)+6>>1]|0)&9){c[b>>2]=0;break}if(c[(c[f>>2]|0)+60>>2]|0){c[b>>2]=0;break}if(c[(c[f>>2]|0)+36>>2]|0){c[b>>2]=0;break}c[h>>2]=c[(c[f>>2]|0)+32>>2];if((c[c[h>>2]>>2]|0)!=1){c[b>>2]=0;break}if(c[(c[h>>2]|0)+8+20>>2]|0){c[b>>2]=0;break}c[j>>2]=c[(c[h>>2]|0)+8+16>>2];if(!(c[j>>2]|0)){c[b>>2]=0;break}if((d[(c[j>>2]|0)+42>>0]|0)&16){c[b>>2]=0;break}c[g>>2]=c[c[f>>2]>>2];if((c[c[g>>2]>>2]|0)!=1){c[b>>2]=0;break}if((d[c[c[(c[g>>2]|0)+4>>2]>>2]>>0]|0|0)!=152){c[b>>2]=0;break}else{c[b>>2]=1;break}}else c[b>>2]=0;while(0);i=k;return c[b>>2]|0}function UA(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;c[d>>2]=Pw(c[e>>2]|0)|0;d=c[d>>2]|0;e=(c[e>>2]|0)+84|0;a=c[e>>2]|0;c[e>>2]=a+1;a=xz(d,44,a)|0;i=b;return a|0}function VA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;e=j+12|0;f=j+8|0;g=j+4|0;h=j;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;if(c[(c[f>>2]|0)+4>>2]&256){c[h>>2]=Ox(c[e>>2]|0,c[f>>2]|0)|0;d=c[h>>2]|0;i=j;return d|0}if((c[g>>2]|0)!=0?(c[(c[g>>2]|0)+4>>2]&256|0)!=0:0){c[h>>2]=Ox(c[e>>2]|0,c[g>>2]|0)|0;d=c[h>>2]|0;i=j;return d|0}c[h>>2]=Ox(c[e>>2]|0,c[f>>2]|0)|0;if(c[h>>2]|0){d=c[h>>2]|0;i=j;return d|0}c[h>>2]=Ox(c[e>>2]|0,c[g>>2]|0)|0;d=c[h>>2]|0;i=j;return d|0}function WA(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;g=i;i=i+16|0;e=g+4|0;j=g;f=g+9|0;h=g+8|0;c[j>>2]=b;a[f>>0]=d;a[h>>0]=QA(c[j>>2]|0)|0;switch(a[h>>0]|0){case 65:{c[e>>2]=1;break}case 66:{c[e>>2]=(a[f>>0]|0)==66&1;break}default:c[e>>2]=(a[f>>0]|0)>=67&1}i=g;return c[e>>2]|0}function XA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|0;g=e+12|0;j=e+8|0;h=e+4|0;f=e;c[g>>2]=a;c[j>>2]=b;c[h>>2]=d;Rw(c[g>>2]|0,22,0,c[h>>2]|0)|0;c[f>>2]=xz(c[g>>2]|0,108,c[j>>2]|0)|0;Vw(c[g>>2]|0,47,c[j>>2]|0,0,c[h>>2]|0)|0;Fh(c[g>>2]|0,-128);Fz(c[g>>2]|0,c[f>>2]|0);i=e;return}function YA(a){a=a|0;var b=0,d=0,e=0,f=0;d=i;i=i+16|0;e=d+8|0;f=d+4|0;b=d;c[e>>2]=a;c[f>>2]=c[(c[e>>2]|0)+12>>2];c[(c[e>>2]|0)+12>>2]=0;c[b>>2]=FA(c[e>>2]|0)|0;c[(c[e>>2]|0)+12>>2]=c[f>>2];i=d;return c[b>>2]|0}function ZA(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+16|0;g=f+8|0;j=f+4|0;h=f;c[g>>2]=b;c[j>>2]=d;c[h>>2]=e;a[c[g>>2]>>0]=c[j>>2];c[(c[g>>2]|0)+4>>2]=c[h>>2];a[(c[g>>2]|0)+1>>0]=0;c[(c[g>>2]|0)+8>>2]=0;c[(c[g>>2]|0)+12>>2]=0;i=f;return}function _A(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0;n=i;i=i+32|0;h=n+16|0;o=n+12|0;j=n+8|0;k=n+20|0;l=n+4|0;m=n;c[h>>2]=b;c[o>>2]=e;c[j>>2]=f;a[k>>0]=g;c[l>>2]=c[(c[h>>2]|0)+324>>2];c[o>>2]=ny(c[c[h>>2]>>2]|0,c[o>>2]|0,0)|0;c[l>>2]=Gv(c[h>>2]|0,c[l>>2]|0,c[o>>2]|0)|0;if(!(c[l>>2]|0)){g=c[l>>2]|0;o=c[h>>2]|0;o=o+324|0;c[o>>2]=g;i=n;return}c[m>>2]=(c[(c[l>>2]|0)+4>>2]|0)+(((c[c[l>>2]>>2]|0)-1|0)*20|0);c[(c[m>>2]|0)+16>>2]=c[j>>2];g=(c[m>>2]|0)+13|0;a[g>>0]=a[g>>0]&-5|((d[k>>0]|0)&1)<<2&255;g=c[l>>2]|0;o=c[h>>2]|0;o=o+324|0;c[o>>2]=g;i=n;return}function $A(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;h=i;i=i+48|0;j=h+36|0;l=h+32|0;k=h+28|0;g=h;c[j>>2]=b;c[l>>2]=e;c[k>>2]=f;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;c[g+20>>2]=0;c[g+24>>2]=0;a[g+20>>0]=c[l>>2];c[g+4>>2]=197;c[g+8>>2]=198;c[g+24>>2]=c[k>>2];by(g,c[j>>2]|0)|0;i=h;return d[g+20>>0]|0|0}function aB(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;f=k+8|0;g=k+4|0;h=k;c[g>>2]=b;c[h>>2]=e;if((d[(c[g>>2]|0)+20>>0]|0|0)==2?(c[(c[h>>2]|0)+4>>2]&1|0)!=0:0){a[(c[g>>2]|0)+20>>0]=0;c[f>>2]=2}else j=4;a:do if((j|0)==4){b:do switch(d[c[h>>2]>>0]|0|0){case 151:{if((d[(c[g>>2]|0)+20>>0]|0|0)<4?(c[(c[h>>2]|0)+4>>2]&524288|0)==0:0){a[(c[g>>2]|0)+20>>0]=0;c[f>>2]=2;break a}c[f>>2]=0;break a}case 154:case 153:case 152:case 27:{if((d[(c[g>>2]|0)+20>>0]|0|0)==3?(c[(c[h>>2]|0)+28>>2]|0)==(c[(c[g>>2]|0)+24>>2]|0):0){c[f>>2]=0;break a}a[(c[g>>2]|0)+20>>0]=0;c[f>>2]=2;break a}case 135:{if((d[(c[g>>2]|0)+20>>0]|0|0)==5){a[c[h>>2]>>0]=101;break b}if((d[(c[g>>2]|0)+20>>0]|0|0)==4){a[(c[g>>2]|0)+20>>0]=0;c[f>>2]=2;break a}break}default:{}}while(0);c[f>>2]=0}while(0);i=k;return c[f>>2]|0}function bB(b,d){b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e+4|0;c[f>>2]=b;c[e>>2]=d;a[(c[f>>2]|0)+20>>0]=0;i=e;return 2}function cB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;g=i;i=i+16|0;j=g+8|0;k=g+4|0;h=g;f=g+12|0;c[j>>2]=b;c[k>>2]=d;c[h>>2]=e;a[f>>0]=Nx(c[k>>2]|0)|0;d=(SA(c[j>>2]|0,a[f>>0]|0)|0)&255;a[f>>0]=d|c[h>>2]&255;i=g;return a[f>>0]|0}function dB(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=$A(c[d>>2]|0,2,0)|0;i=b;return a|0}function eB(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+32|0;k=s+28|0;l=s+24|0;m=s+20|0;n=s+16|0;o=s+12|0;p=s+8|0;q=s+4|0;r=s;c[k>>2]=b;c[l>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[q>>2]=j;c[r>>2]=Fw(wA(c[k>>2]|0)|0,8,0)|0;if(c[r>>2]|0){h=c[r>>2]|0;j=c[p>>2]|0;a[h>>0]=a[j>>0]|0;a[h+1>>0]=a[j+1>>0]|0;a[h+2>>0]=a[j+2>>0]|0;a[h+3>>0]=a[j+3>>0]|0;a[h+4>>0]=a[j+4>>0]|0;a[h+5>>0]=a[j+5>>0]|0;a[h+6>>0]=a[j+6>>0]|0;a[h+7>>0]=a[j+7>>0]|0}h=Uw(c[k>>2]|0,c[l>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[r>>2]|0,c[q>>2]|0)|0;i=s;return h|0}function fB(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;h=i;i=i+16|0;j=h+12|0;e=h+8|0;f=h+4|0;g=h;c[j>>2]=b;c[e>>2]=d;c[f>>2]=0;c[g>>2]=(c[j>>2]|0)+124;while(1){if((c[f>>2]|0)>=10)break;if((c[(c[g>>2]|0)+12>>2]|0)==(c[e>>2]|0))a[(c[g>>2]|0)+6>>0]=0;c[f>>2]=(c[f>>2]|0)+1;c[g>>2]=(c[g>>2]|0)+20}i=h;return}function gB(d,f,g,h){d=d|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+32|0;j=s+28|0;k=s+24|0;l=s+20|0;m=s+16|0;n=s+12|0;p=s+8|0;o=s+4|0;q=s;c[j>>2]=d;c[k>>2]=f;c[l>>2]=g;c[m>>2]=h;if((e[(c[c[j>>2]>>2]|0)+60>>1]|0)&2){i=s;return}c[n>>2]=0;c[q>>2]=(c[j>>2]|0)+124;while(1){if((c[n>>2]|0)>=10)break;if(!(c[(c[q>>2]|0)+12>>2]|0)){r=5;break}c[n>>2]=(c[n>>2]|0)+1;c[q>>2]=(c[q>>2]|0)+20}if((r|0)==5){c[(c[q>>2]|0)+8>>2]=c[(c[j>>2]|0)+108>>2];c[c[q>>2]>>2]=c[k>>2];b[(c[q>>2]|0)+4>>1]=c[l>>2];c[(c[q>>2]|0)+12>>2]=c[m>>2];a[(c[q>>2]|0)+6>>0]=0;d=(c[j>>2]|0)+112|0;r=c[d>>2]|0;c[d>>2]=r+1;c[(c[q>>2]|0)+16>>2]=r;i=s;return}c[p>>2]=2147483647;c[o>>2]=-1;c[n>>2]=0;c[q>>2]=(c[j>>2]|0)+124;while(1){if((c[n>>2]|0)>=10)break;if((c[(c[q>>2]|0)+16>>2]|0)<(c[p>>2]|0)){c[o>>2]=c[n>>2];c[p>>2]=c[(c[q>>2]|0)+16>>2]}c[n>>2]=(c[n>>2]|0)+1;c[q>>2]=(c[q>>2]|0)+20}if((c[o>>2]|0)<0){i=s;return}c[q>>2]=(c[j>>2]|0)+124+((c[o>>2]|0)*20|0);c[(c[q>>2]|0)+8>>2]=c[(c[j>>2]|0)+108>>2];c[c[q>>2]>>2]=c[k>>2];b[(c[q>>2]|0)+4>>1]=c[l>>2];c[(c[q>>2]|0)+12>>2]=c[m>>2];a[(c[q>>2]|0)+6>>0]=0;d=(c[j>>2]|0)+112|0;r=c[d>>2]|0;c[d>>2]=r+1;c[(c[q>>2]|0)+16>>2]=r;i=s;return}function hB(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;k=l+16|0;f=l+12|0;g=l+8|0;h=l+4|0;j=l;c[f>>2]=a;c[g>>2]=d;c[h>>2]=0;while(1){if((c[h>>2]|0)>=(e[(c[g>>2]|0)+52>>1]|0)){f=7;break}c[j>>2]=c[(c[(c[g>>2]|0)+32>>2]|0)+(c[h>>2]<<2)>>2];if((b[(c[(c[g>>2]|0)+4>>2]|0)+(c[h>>2]<<1)>>1]|0)>=0?0==(Td(c[j>>2]|0,c[f>>2]|0)|0):0){f=5;break}c[h>>2]=(c[h>>2]|0)+1}if((f|0)==5){c[k>>2]=1;k=c[k>>2]|0;i=l;return k|0}else if((f|0)==7){c[k>>2]=0;k=c[k>>2]|0;i=l;return k|0}return 0}function iB(a,e,f,g,h,j,k){a=a|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=i;i=i+80|0;l=y+76|0;m=y+72|0;n=y+68|0;o=y+64|0;p=y+60|0;q=y+56|0;r=y+52|0;t=y+48|0;v=y+16|0;w=y+12|0;s=y+8|0;u=y+4|0;x=y;c[l>>2]=a;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[q>>2]=j;c[r>>2]=k;c[s>>2]=c[c[l>>2]>>2];c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0;c[v+16>>2]=0;c[v+20>>2]=0;c[v+24>>2]=0;c[v+28>>2]=0;c[v>>2]=c[l>>2];e=jB(v,c[p>>2]|0)|0;c[t>>2]=e;do if((0==(e|0)?(e=jB(v,c[q>>2]|0)|0,c[t>>2]=e,0==(e|0)):0)?(e=jB(v,c[r>>2]|0)|0,c[t>>2]=e,0==(e|0)):0){if(c[o>>2]|0){if((d[c[o>>2]>>0]|0)==97)c[x>>2]=c[(c[o>>2]|0)+8>>2];else c[x>>2]=0;c[t>>2]=Mw(c[l>>2]|0,c[m>>2]|0,c[x>>2]|0,0,0)|0;if(c[t>>2]|0)break}c[w>>2]=Pw(c[l>>2]|0)|0;c[u>>2]=kA(c[l>>2]|0,4)|0;xA(c[l>>2]|0,c[p>>2]|0,c[u>>2]|0);xA(c[l>>2]|0,c[q>>2]|0,(c[u>>2]|0)+1|0);xA(c[l>>2]|0,c[r>>2]|0,(c[u>>2]|0)+2|0);if(c[w>>2]|0){Uw(c[w>>2]|0,35,0,(c[u>>2]|0)+3-(b[c[n>>2]>>1]|0)|0,(c[u>>2]|0)+3|0,c[n>>2]|0,-5)|0;Fh(c[w>>2]|0,b[c[n>>2]>>1]&255);xz(c[w>>2]|0,147,(c[m>>2]|0)==24&1)|0}}while(0);Zu(c[s>>2]|0,c[p>>2]|0);Zu(c[s>>2]|0,c[q>>2]|0);Zu(c[s>>2]|0,c[r>>2]|0);i=y;return}function jB(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0;j=i;i=i+16|0;f=j+8|0;g=j+4|0;h=j;c[f>>2]=b;c[g>>2]=e;c[h>>2]=0;do if(c[g>>2]|0)if((d[c[g>>2]>>0]|0|0)!=27){c[h>>2]=fy(c[f>>2]|0,c[g>>2]|0)|0;break}else{a[c[g>>2]>>0]=97;break}while(0);i=j;return c[h>>2]|0}function kB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;q=i;i=i+192|0;n=q+24|0;m=q+16|0;l=q+8|0;k=q;f=q+52|0;r=q+44|0;p=q+40|0;g=q+36|0;h=q+32|0;j=q+28|0;o=q+56|0;c[f>>2]=b;c[q+48>>2]=d;c[r>>2]=e;c[p>>2]=ae(c[c[r>>2]>>2]|0)|0;c[g>>2]=we(c[f>>2]|0)|0;c[j>>2]=0;if(!(c[p>>2]|0))c[p>>2]=19266;c[h>>2]=0;while(1){if((c[h>>2]|0)>=(c[(c[g>>2]|0)+20>>2]|0))break;c[j>>2]=(c[(c[g>>2]|0)+16>>2]|0)+(c[h>>2]<<4);if((c[(c[j>>2]|0)+4>>2]|0)!=0?(Td(c[c[j>>2]>>2]|0,c[p>>2]|0)|0)==0:0)break;c[h>>2]=(c[h>>2]|0)+1}do if((c[h>>2]|0)>=(c[(c[g>>2]|0)+20>>2]|0)){c[k>>2]=c[p>>2];Qd(128,o,32129,k)|0}else{if((c[h>>2]|0)<2){c[l>>2]=c[p>>2];Qd(128,o,32150,l)|0;break}if(!(a[(c[g>>2]|0)+63>>0]|0)){Qd(128,o,32176,m)|0;break}if((og(c[(c[j>>2]|0)+4>>2]|0)|0)==0?(fu(c[(c[j>>2]|0)+4>>2]|0)|0)==0:0){lB(c[(c[j>>2]|0)+4>>2]|0)|0;c[(c[j>>2]|0)+4>>2]=0;c[(c[j>>2]|0)+12>>2]=0;mB(c[g>>2]|0);i=q;return}c[n>>2]=c[p>>2];Qd(128,o,32218,n)|0}while(0);je(c[f>>2]|0,o,-1);i=q;return}function lB(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;d=h+12|0;e=h+8|0;f=h+4|0;g=h;c[d>>2]=b;c[e>>2]=c[(c[d>>2]|0)+4>>2];kg(c[d>>2]|0);c[f>>2]=c[(c[e>>2]|0)+8>>2];while(1){if(!(c[f>>2]|0))break;c[g>>2]=c[f>>2];c[f>>2]=c[(c[f>>2]|0)+8>>2];if((c[c[g>>2]>>2]|0)!=(c[d>>2]|0))continue;nB(c[g>>2]|0)|0}Mg(c[d>>2]|0,0,0)|0;if(!((a[(c[d>>2]|0)+9>>0]|0)!=0?(oB(c[e>>2]|0)|0)==0:0)){ar(c[c[e>>2]>>2]|0)|0;if((c[(c[e>>2]|0)+52>>2]|0)!=0?(c[(c[e>>2]|0)+48>>2]|0)!=0:0)Qb[c[(c[e>>2]|0)+52>>2]&255](c[(c[e>>2]|0)+48>>2]|0);Sf(0,c[(c[e>>2]|0)+48>>2]|0);Pi(c[e>>2]|0);Kd(c[e>>2]|0)}if(c[(c[d>>2]|0)+28>>2]|0)c[(c[(c[d>>2]|0)+28>>2]|0)+24>>2]=c[(c[d>>2]|0)+24>>2];if(!(c[(c[d>>2]|0)+24>>2]|0)){g=c[d>>2]|0;Kd(g);i=h;return 0}c[(c[(c[d>>2]|0)+24>>2]|0)+28>>2]=c[(c[d>>2]|0)+28>>2];g=c[d>>2]|0;Kd(g);i=h;return 0}function mB(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;g=i;i=i+16|0;b=g+12|0;d=g+8|0;e=g+4|0;f=g;c[b>>2]=a;c[e>>2]=2;c[d>>2]=2;while(1){if((c[d>>2]|0)>=(c[(c[b>>2]|0)+20>>2]|0))break;c[f>>2]=(c[(c[b>>2]|0)+16>>2]|0)+(c[d>>2]<<4);if(!(c[(c[f>>2]|0)+4>>2]|0)){Sf(c[b>>2]|0,c[c[f>>2]>>2]|0);c[c[f>>2]>>2]=0}else{if((c[e>>2]|0)<(c[d>>2]|0)){a=(c[(c[b>>2]|0)+16>>2]|0)+(c[e>>2]<<4)|0;h=(c[(c[b>>2]|0)+16>>2]|0)+(c[d>>2]<<4)|0;c[a>>2]=c[h>>2];c[a+4>>2]=c[h+4>>2];c[a+8>>2]=c[h+8>>2];c[a+12>>2]=c[h+12>>2]}c[e>>2]=(c[e>>2]|0)+1}c[d>>2]=(c[d>>2]|0)+1}c[(c[b>>2]|0)+20>>2]=c[e>>2];if((c[(c[b>>2]|0)+20>>2]|0)>2){i=g;return}if((c[(c[b>>2]|0)+16>>2]|0)==((c[b>>2]|0)+460|0)){i=g;return}h=(c[b>>2]|0)+460|0;f=c[(c[b>>2]|0)+16>>2]|0;c[h>>2]=c[f>>2];c[h+4>>2]=c[f+4>>2];c[h+8>>2]=c[f+8>>2];c[h+12>>2]=c[f+12>>2];c[h+16>>2]=c[f+16>>2];c[h+20>>2]=c[f+20>>2];c[h+24>>2]=c[f+24>>2];c[h+28>>2]=c[f+28>>2];Sf(c[b>>2]|0,c[(c[b>>2]|0)+16>>2]|0);c[(c[b>>2]|0)+16>>2]=(c[b>>2]|0)+460;i=g;return}function nB(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+32|0;d=j+16|0;g=j+12|0;e=j+8|0;f=j+4|0;h=j;c[d>>2]=b;c[g>>2]=c[c[d>>2]>>2];if(!(c[g>>2]|0)){i=j;return 0}c[f>>2]=c[(c[d>>2]|0)+4>>2];kg(c[g>>2]|0);pB(c[d>>2]|0);a:do if((c[(c[f>>2]|0)+8>>2]|0)==(c[d>>2]|0))c[(c[f>>2]|0)+8>>2]=c[(c[d>>2]|0)+8>>2];else{c[h>>2]=c[(c[f>>2]|0)+8>>2];while(1){if((c[(c[h>>2]|0)+8>>2]|0)==(c[d>>2]|0))break;c[h>>2]=c[(c[h>>2]|0)+8>>2];if(!(c[h>>2]|0))break a}c[(c[h>>2]|0)+8>>2]=c[(c[d>>2]|0)+8>>2]}while(0);c[e>>2]=0;while(1){if((c[e>>2]|0)>(a[(c[d>>2]|0)+68>>0]|0))break;qB(c[(c[d>>2]|0)+120+(c[e>>2]<<2)>>2]|0);c[e>>2]=(c[e>>2]|0)+1}rB(c[f>>2]|0);Kd(c[(c[d>>2]|0)+12>>2]|0);i=j;return 0}function oB(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;e=g+4|0;f=g;c[d>>2]=a;c[f>>2]=0;b=(c[d>>2]|0)+64|0;c[b>>2]=(c[b>>2]|0)+-1;if((c[(c[d>>2]|0)+64>>2]|0)>0){
  44. f=c[f>>2]|0;i=g;return f|0}if((c[1208]|0)!=(c[d>>2]|0)){c[e>>2]=c[1208];while(1){if(c[e>>2]|0)b=(c[(c[e>>2]|0)+68>>2]|0)!=(c[d>>2]|0);else b=0;a=c[e>>2]|0;if(!b)break;c[e>>2]=c[a+68>>2]}if(a)c[(c[e>>2]|0)+68>>2]=c[(c[d>>2]|0)+68>>2]}else c[1208]=c[(c[d>>2]|0)+68>>2];c[f>>2]=1;f=c[f>>2]|0;i=g;return f|0}function pB(b){b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;Kd(c[(c[e>>2]|0)+48>>2]|0);c[(c[e>>2]|0)+48>>2]=0;a[(c[e>>2]|0)+66>>0]=0;i=d;return}function qB(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!(c[b>>2]|0)){i=d;return}sB(c[b>>2]|0);i=d;return}function rB(a){a=a|0;var b=0,e=0,f=0;f=i;i=i+16|0;b=f+4|0;e=f;c[b>>2]=a;if(d[(c[b>>2]|0)+20>>0]|0){i=f;return}if(!(c[(c[b>>2]|0)+12>>2]|0)){i=f;return}c[e>>2]=c[(c[b>>2]|0)+12>>2];c[(c[b>>2]|0)+12>>2]=0;sB(c[e>>2]|0);i=f;return}function sB(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;zs(c[(c[d>>2]|0)+72>>2]|0);i=b;return}function tB(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;E=i;i=i+128|0;w=E+48|0;v=E+40|0;y=E+32|0;x=E+24|0;k=E+16|0;j=E+8|0;h=E;n=E+116|0;F=E+108|0;g=E+104|0;u=E+100|0;p=E+96|0;C=E+92|0;B=E+88|0;D=E+84|0;z=E+80|0;q=E+76|0;o=E+72|0;A=E+68|0;t=E+64|0;l=E+60|0;s=E+56|0;r=E+52|0;c[n>>2]=b;c[E+112>>2]=e;c[F>>2]=f;c[u>>2]=0;c[p>>2]=we(c[n>>2]|0)|0;c[D>>2]=0;c[z>>2]=0;c[A>>2]=0;c[B>>2]=ae(c[c[F>>2]>>2]|0)|0;c[C>>2]=ae(c[(c[F>>2]|0)+4>>2]|0)|0;if(!(c[B>>2]|0))c[B>>2]=19266;if(!(c[C>>2]|0))c[C>>2]=19266;e=c[p>>2]|0;do if((c[(c[p>>2]|0)+20>>2]|0)<((c[(c[p>>2]|0)+88+28>>2]|0)+2|0)){if(!(a[e+63>>0]|0)){c[A>>2]=Bh(c[p>>2]|0,32291,j)|0;break}c[g>>2]=0;while(1){if((c[g>>2]|0)>=(c[(c[p>>2]|0)+20>>2]|0))break;c[l>>2]=c[(c[(c[p>>2]|0)+16>>2]|0)+(c[g>>2]<<4)>>2];if(!(Td(c[l>>2]|0,c[C>>2]|0)|0)){m=12;break}c[g>>2]=(c[g>>2]|0)+1}if((m|0)==12){F=c[p>>2]|0;c[k>>2]=c[C>>2];c[A>>2]=Bh(F,32333,k)|0;break}e=c[p>>2]|0;do if((c[(c[p>>2]|0)+16>>2]|0)==((c[p>>2]|0)+460|0)){c[o>>2]=Fw(e,48,0)|0;if(!(c[o>>2]|0)){i=E;return}else{F=c[o>>2]|0;m=c[(c[p>>2]|0)+16>>2]|0;c[F>>2]=c[m>>2];c[F+4>>2]=c[m+4>>2];c[F+8>>2]=c[m+8>>2];c[F+12>>2]=c[m+12>>2];c[F+16>>2]=c[m+16>>2];c[F+20>>2]=c[m+20>>2];c[F+24>>2]=c[m+24>>2];c[F+28>>2]=c[m+28>>2];break}}else{c[o>>2]=Ew(e,c[(c[p>>2]|0)+16>>2]|0,(c[(c[p>>2]|0)+20>>2]|0)+1<<4,0)|0;if(!(c[o>>2]|0)){i=E;return}}while(0);c[(c[p>>2]|0)+16>>2]=c[o>>2];c[o>>2]=(c[(c[p>>2]|0)+16>>2]|0)+(c[(c[p>>2]|0)+20>>2]<<4);F=c[o>>2]|0;c[F>>2]=0;c[F+4>>2]=0;c[F+8>>2]=0;c[F+12>>2]=0;c[q>>2]=c[(c[p>>2]|0)+48>>2];c[u>>2]=Wj(c[(c[c[p>>2]>>2]|0)+16>>2]|0,c[B>>2]|0,q,t,D,z)|0;if(c[u>>2]|0){if((c[u>>2]|0)==7)jh(c[p>>2]|0);je(c[n>>2]|0,c[z>>2]|0,-1);Kd(c[z>>2]|0);i=E;return}c[q>>2]=c[q>>2]|256;c[u>>2]=Xj(c[t>>2]|0,c[D>>2]|0,c[p>>2]|0,(c[o>>2]|0)+4|0,0,c[q>>2]|0)|0;Kd(c[D>>2]|0);F=(c[p>>2]|0)+20|0;c[F>>2]=(c[F>>2]|0)+1;if((c[u>>2]|0)!=19){if(!(c[u>>2]|0)){F=Yj(c[p>>2]|0,c[(c[o>>2]|0)+4>>2]|0)|0;c[(c[o>>2]|0)+12>>2]=F;if(c[(c[o>>2]|0)+12>>2]|0){if((d[(c[(c[o>>2]|0)+12>>2]|0)+76>>0]|0)!=0?(d[(c[(c[o>>2]|0)+12>>2]|0)+77>>0]|0)!=(d[(c[p>>2]|0)+62>>0]|0):0){c[A>>2]=Bh(c[p>>2]|0,20880,y)|0;c[u>>2]=1}}else c[u>>2]=7;kg(c[(c[o>>2]|0)+4>>2]|0);c[s>>2]=Of(c[(c[o>>2]|0)+4>>2]|0)|0;uB(c[s>>2]|0,d[(c[p>>2]|0)+67>>0]|0)|0;F=c[(c[o>>2]|0)+4>>2]|0;vB(F,vB(c[(c[(c[p>>2]|0)+16>>2]|0)+4>>2]|0,-1)|0)|0;wB(c[(c[o>>2]|0)+4>>2]|0,3|c[(c[p>>2]|0)+24>>2]&56)|0}}else{c[u>>2]=1;c[A>>2]=Bh(c[p>>2]|0,32363,x)|0}a[(c[o>>2]|0)+8>>0]=3;F=nh(c[p>>2]|0,c[C>>2]|0)|0;c[c[o>>2]>>2]=F;if((c[u>>2]|0)==0?(c[c[o>>2]>>2]|0)==0:0)c[u>>2]=7;if(!(c[u>>2]|0)){Nf(c[p>>2]|0);c[u>>2]=oi(c[p>>2]|0,A)|0}if(!(c[u>>2]|0)){i=E;return}c[r>>2]=(c[(c[p>>2]|0)+20>>2]|0)-1;if(c[(c[(c[p>>2]|0)+16>>2]|0)+(c[r>>2]<<4)+4>>2]|0){lB(c[(c[(c[p>>2]|0)+16>>2]|0)+(c[r>>2]<<4)+4>>2]|0)|0;c[(c[(c[p>>2]|0)+16>>2]|0)+(c[r>>2]<<4)+4>>2]=0;c[(c[(c[p>>2]|0)+16>>2]|0)+(c[r>>2]<<4)+12>>2]=0}zg(c[p>>2]|0);c[(c[p>>2]|0)+20>>2]=c[r>>2];if((c[u>>2]|0)==7|(c[u>>2]|0)==3082){jh(c[p>>2]|0);Sf(c[p>>2]|0,c[A>>2]|0);c[A>>2]=Bh(c[p>>2]|0,32392,v)|0;break}if(!(c[A>>2]|0)){F=c[p>>2]|0;c[w>>2]=c[B>>2];c[A>>2]=Bh(F,32406,w)|0}}else{c[h>>2]=c[(c[p>>2]|0)+88+28>>2];c[A>>2]=Bh(e,32254,h)|0}while(0);if(c[A>>2]|0){je(c[n>>2]|0,c[A>>2]|0,-1);Sf(c[p>>2]|0,c[A>>2]|0)}if(!(c[u>>2]|0)){i=E;return}re(c[n>>2]|0,c[u>>2]|0);i=E;return}function uB(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;h=i;i=i+16|0;f=h+4|0;g=h;c[f>>2]=b;c[g>>2]=e;if(((c[g>>2]|0)>=0?(a[(c[f>>2]|0)+13>>0]|0)==0:0)?(yB(c[(c[f>>2]|0)+216>>2]|0)|0)==0:0)a[(c[f>>2]|0)+4>>0]=c[g>>2];i=h;return d[(c[f>>2]|0)+4>>0]|0}function vB(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;f=k+12|0;g=k+8|0;h=k+4|0;j=k;c[g>>2]=a;c[h>>2]=d;if(!(c[g>>2]|0)){c[f>>2]=0;a=c[f>>2]|0;i=k;return a|0}kg(c[g>>2]|0);if((c[h>>2]|0)>=0?(a=(c[(c[g>>2]|0)+4>>2]|0)+22|0,b[a>>1]=(e[a>>1]|0)&-5,(c[h>>2]|0)!=0):0){a=(c[(c[g>>2]|0)+4>>2]|0)+22|0;b[a>>1]=e[a>>1]|0|4}c[j>>2]=((e[(c[(c[g>>2]|0)+4>>2]|0)+22>>1]|0)&4|0)!=0&1;c[f>>2]=c[j>>2];a=c[f>>2]|0;i=k;return a|0}function wB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;g=d+8|0;e=d+4|0;f=d;c[g>>2]=a;c[e>>2]=b;c[f>>2]=c[(c[g>>2]|0)+4>>2];kg(c[g>>2]|0);xB(c[c[f>>2]>>2]|0,c[e>>2]|0);i=d;return 0}function xB(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0;j=i;i=i+16|0;g=j+8|0;h=j+4|0;f=j;c[g>>2]=b;c[h>>2]=e;c[f>>2]=c[h>>2]&7;if(a[(c[g>>2]|0)+13>>0]|0){a[(c[g>>2]|0)+7>>0]=1;a[(c[g>>2]|0)+8>>0]=0;a[(c[g>>2]|0)+9>>0]=0}else{a[(c[g>>2]|0)+7>>0]=(c[f>>2]|0)==1?1:0;a[(c[g>>2]|0)+8>>0]=(c[f>>2]|0)>>>0>=3?1:0;a[(c[g>>2]|0)+9>>0]=(c[f>>2]|0)==4?1:0}do if(!(a[(c[g>>2]|0)+7>>0]|0)){if(c[h>>2]&8){a[(c[g>>2]|0)+12>>0]=3;a[(c[g>>2]|0)+10>>0]=3;break}e=(c[h>>2]&16|0)!=0;a[(c[g>>2]|0)+12>>0]=2;f=(c[g>>2]|0)+10|0;if(e){a[f>>0]=3;break}else{a[f>>0]=2;break}}else{a[(c[g>>2]|0)+12>>0]=0;a[(c[g>>2]|0)+10>>0]=0}while(0);a[(c[g>>2]|0)+11>>0]=a[(c[g>>2]|0)+12>>0]|0;if(a[(c[g>>2]|0)+8>>0]|0){e=(c[g>>2]|0)+11|0;a[e>>0]=d[e>>0]|32}f=(c[g>>2]|0)+21|0;b=d[f>>0]|0;if(c[h>>2]&32){a[f>>0]=b&-2;i=j;return}else{a[f>>0]=b|1;i=j;return}}function yB(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;b=e;c[b>>2]=a;if(!(c[b>>2]|0)){a=0;a=a&1;i=e;return a|0}a=(d[(c[b>>2]|0)+43>>0]|0|0)==2;a=a&1;i=e;return a|0}function zB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+32|0;d=j+16|0;e=j+12|0;f=j+8|0;g=j+4|0;h=j;c[d>>2]=a;c[e>>2]=b;c[f>>2]=c[c[d>>2]>>2];c[g>>2]=0;while(1){if((c[g>>2]|0)>=(c[(c[f>>2]|0)+20>>2]|0))break;c[h>>2]=(c[(c[f>>2]|0)+16>>2]|0)+(c[g>>2]<<4);do if(c[(c[h>>2]|0)+4>>2]|0){if((c[e>>2]|0)!=0?0!=(Td(c[e>>2]|0,c[c[h>>2]>>2]|0)|0):0)break;bx(c[d>>2]|0,c[g>>2]|0)}while(0);c[g>>2]=(c[g>>2]|0)+1}i=j;return}function AB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+48|0;l=o;d=o+44|0;e=o+40|0;j=o+36|0;k=o+32|0;g=o+28|0;h=o+24|0;f=o+20|0;m=o+16|0;n=o+12|0;c[d>>2]=a;c[e>>2]=b;c[g>>2]=c[c[d>>2]>>2];c[h>>2]=Dh(c[c[d>>2]>>2]|0,c[(c[e>>2]|0)+20>>2]|0)|0;c[j>>2]=BB(c[e>>2]|0)|0;c[f>>2]=16;c[m>>2]=c[(c[(c[g>>2]|0)+16>>2]|0)+(c[h>>2]<<4)>>2];c[n>>2]=(c[h>>2]|0)==1?20769:20788;if((c[h>>2]|0)==1)c[f>>2]=14;if(Mw(c[d>>2]|0,c[f>>2]|0,c[c[e>>2]>>2]|0,c[c[j>>2]>>2]|0,c[m>>2]|0)|0){i=o;return}if(Mw(c[d>>2]|0,9,c[n>>2]|0,0,c[m>>2]|0)|0){i=o;return}n=Pw(c[d>>2]|0)|0;c[k>>2]=n;if(!n){i=o;return}n=c[d>>2]|0;b=(c[h>>2]|0)==1?20769:20788;m=c[c[e>>2]>>2]|0;c[l>>2]=c[(c[(c[g>>2]|0)+16>>2]|0)+(c[h>>2]<<4)>>2];c[l+4>>2]=b;c[l+8>>2]=m;Ow(n,32454,l);Qw(c[d>>2]|0,c[h>>2]|0);Uw(c[k>>2]|0,127,c[h>>2]|0,0,0,c[c[e>>2]>>2]|0,0)|0;i=o;return}function BB(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=nj((c[(c[d>>2]|0)+24>>2]|0)+8|0,c[(c[d>>2]|0)+4>>2]|0)|0;i=b;return a|0}function CB(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;l=k+12|0;f=k+16|0;g=k+8|0;h=k+4|0;j=k;c[l>>2]=b;a[f>>0]=d;c[g>>2]=e;c[h>>2]=ph(c[l>>2]|0,36+(c[(c[g>>2]|0)+4>>2]|0)+1|0,0)|0;if(!(c[h>>2]|0)){l=c[h>>2]|0;i=k;return l|0}c[j>>2]=(c[h>>2]|0)+36;iR(c[j>>2]|0,c[c[g>>2]>>2]|0,c[(c[g>>2]|0)+4>>2]|0)|0;Jw(c[j>>2]|0)|0;c[(c[h>>2]|0)+12>>2]=c[j>>2];a[c[h>>2]>>0]=a[f>>0]|0;l=c[h>>2]|0;i=k;return l|0}function DB(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;h=i;i=i+16|0;e=h+12|0;j=h+8|0;f=h+4|0;g=h;c[e>>2]=a;c[j>>2]=d;c[f>>2]=(c[j>>2]|0)+8;c[g>>2]=_w(c[e>>2]|0,0,c[f>>2]|0)|0;Qf(c[c[e>>2]>>2]|0,c[(c[f>>2]|0)+16>>2]|0);c[(c[f>>2]|0)+16>>2]=c[g>>2];if(c[g>>2]|0){j=(c[g>>2]|0)+36|0;b[j>>1]=(b[j>>1]|0)+1<<16>>16}if(!(Vy(c[e>>2]|0,c[f>>2]|0)|0)){j=c[g>>2]|0;i=h;return j|0}c[g>>2]=0;j=c[g>>2]|0;i=h;return j|0}function EB(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;i=i+32|0;h=g+20|0;n=g+16|0;j=g+12|0;l=g+8|0;k=g+4|0;m=g;c[h>>2]=a;c[n>>2]=b;c[j>>2]=d;c[l>>2]=e;c[k>>2]=f;c[m>>2]=c[c[n>>2]>>2];c[c[h>>2]>>2]=c[n>>2];c[(c[h>>2]|0)+12>>2]=c[(c[(c[m>>2]|0)+16>>2]|0)+(c[j>>2]<<4)>>2];c[(c[h>>2]|0)+4>>2]=c[(c[(c[m>>2]|0)+16>>2]|0)+(c[j>>2]<<4)+12>>2];c[(c[h>>2]|0)+16>>2]=c[l>>2];c[(c[h>>2]|0)+20>>2]=c[k>>2];c[(c[h>>2]|0)+8>>2]=(c[j>>2]|0)==1&1;i=g;return}function FB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+48|0;k=l;g=l+32|0;h=l+28|0;d=l+24|0;e=l+20|0;f=l+16|0;j=l+12|0;c[h>>2]=a;c[d>>2]=b;if(!(c[d>>2]|0)){c[g>>2]=0;k=c[g>>2]|0;i=l;return k|0}c[f>>2]=c[(c[h>>2]|0)+12>>2];c[e>>2]=0;c[j>>2]=(c[d>>2]|0)+8;while(1){if((c[e>>2]|0)>=(c[c[d>>2]>>2]|0)){d=15;break}if(!(c[(c[h>>2]|0)+8>>2]|0)){if((c[(c[j>>2]|0)+4>>2]|0)!=0?(Td(c[(c[j>>2]|0)+4>>2]|0,c[f>>2]|0)|0)!=0:0){d=8;break}Sf(c[c[c[h>>2]>>2]>>2]|0,c[(c[j>>2]|0)+4>>2]|0);c[(c[j>>2]|0)+4>>2]=0;c[c[j>>2]>>2]=c[(c[h>>2]|0)+4>>2]}if(GB(c[h>>2]|0,c[(c[j>>2]|0)+20>>2]|0)|0){d=11;break}if(HB(c[h>>2]|0,c[(c[j>>2]|0)+48>>2]|0)|0){d=13;break}c[e>>2]=(c[e>>2]|0)+1;c[j>>2]=(c[j>>2]|0)+72}if((d|0)==8){f=c[c[h>>2]>>2]|0;b=c[(c[h>>2]|0)+20>>2]|0;j=c[(c[j>>2]|0)+4>>2]|0;c[k>>2]=c[(c[h>>2]|0)+16>>2];c[k+4>>2]=b;c[k+8>>2]=j;Ah(f,32752,k);c[g>>2]=1;k=c[g>>2]|0;i=l;return k|0}else if((d|0)==11){c[g>>2]=1;k=c[g>>2]|0;i=l;return k|0}else if((d|0)==13){c[g>>2]=1;k=c[g>>2]|0;i=l;return k|0}else if((d|0)==15){c[g>>2]=0;k=c[g>>2]|0;i=l;return k|0}return 0}function GB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;f=g+8|0;d=g+4|0;e=g;c[d>>2]=a;c[e>>2]=b;while(1){if(!(c[e>>2]|0)){d=20;break}if(IB(c[d>>2]|0,c[c[e>>2]>>2]|0)|0){d=4;break}if(FB(c[d>>2]|0,c[(c[e>>2]|0)+32>>2]|0)|0){d=6;break}if(HB(c[d>>2]|0,c[(c[e>>2]|0)+36>>2]|0)|0){d=8;break}if(IB(c[d>>2]|0,c[(c[e>>2]|0)+40>>2]|0)|0){d=10;break}if(HB(c[d>>2]|0,c[(c[e>>2]|0)+44>>2]|0)|0){d=12;break}if(IB(c[d>>2]|0,c[(c[e>>2]|0)+48>>2]|0)|0){d=14;break}if(HB(c[d>>2]|0,c[(c[e>>2]|0)+60>>2]|0)|0){d=16;break}if(HB(c[d>>2]|0,c[(c[e>>2]|0)+64>>2]|0)|0){d=18;break}c[e>>2]=c[(c[e>>2]|0)+52>>2]}if((d|0)==4)c[f>>2]=1;else if((d|0)==6)c[f>>2]=1;else if((d|0)==8)c[f>>2]=1;else if((d|0)==10)c[f>>2]=1;else if((d|0)==12)c[f>>2]=1;else if((d|0)==14)c[f>>2]=1;else if((d|0)==16)c[f>>2]=1;else if((d|0)==18)c[f>>2]=1;else if((d|0)==20)c[f>>2]=0;i=g;return c[f>>2]|0}function HB(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;j=k;g=k+12|0;h=k+8|0;f=k+4|0;c[h>>2]=b;c[f>>2]=e;while(1){if(!(c[f>>2]|0)){e=16;break}if((d[c[f>>2]>>0]|0)==135){if(!(a[(c[c[c[h>>2]>>2]>>2]|0)+140+5>>0]|0)){e=6;break}a[c[f>>2]>>0]=101}if(c[(c[f>>2]|0)+4>>2]&16384){e=16;break}e=c[h>>2]|0;b=(c[f>>2]|0)+20|0;if(c[(c[f>>2]|0)+4>>2]&2048){if(GB(e,c[b>>2]|0)|0){e=10;break}}else if(IB(e,c[b>>2]|0)|0){e=12;break}if(HB(c[h>>2]|0,c[(c[f>>2]|0)+16>>2]|0)|0){e=14;break}c[f>>2]=c[(c[f>>2]|0)+12>>2]}if((e|0)==6){f=c[c[h>>2]>>2]|0;c[j>>2]=c[(c[h>>2]|0)+16>>2];Ah(f,32798,j);c[g>>2]=1;j=c[g>>2]|0;i=k;return j|0}else if((e|0)==10){c[g>>2]=1;j=c[g>>2]|0;i=k;return j|0}else if((e|0)==12){c[g>>2]=1;j=c[g>>2]|0;i=k;return j|0}else if((e|0)==14){c[g>>2]=1;j=c[g>>2]|0;i=k;return j|0}else if((e|0)==16){c[g>>2]=0;j=c[g>>2]|0;i=k;return j|0}return 0}function IB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+32|0;h=j+16|0;d=j+12|0;e=j+8|0;f=j+4|0;g=j;c[d>>2]=a;c[e>>2]=b;if(!(c[e>>2]|0)){c[h>>2]=0;h=c[h>>2]|0;i=j;return h|0}c[f>>2]=0;c[g>>2]=c[(c[e>>2]|0)+4>>2];while(1){if((c[f>>2]|0)>=(c[c[e>>2]>>2]|0)){d=8;break}if(HB(c[d>>2]|0,c[c[g>>2]>>2]|0)|0){d=6;break}c[f>>2]=(c[f>>2]|0)+1;c[g>>2]=(c[g>>2]|0)+20}if((d|0)==6){c[h>>2]=1;h=c[h>>2]|0;i=j;return h|0}else if((d|0)==8){c[h>>2]=0;h=c[h>>2]|0;i=j;return h|0}return 0}function JB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;f=g+8|0;d=g+4|0;e=g;c[d>>2]=a;c[e>>2]=b;while(1){if(!(c[e>>2]|0)){d=10;break}if(GB(c[d>>2]|0,c[(c[e>>2]|0)+8>>2]|0)|0){d=4;break}if(HB(c[d>>2]|0,c[(c[e>>2]|0)+16>>2]|0)|0){d=6;break}if(IB(c[d>>2]|0,c[(c[e>>2]|0)+20>>2]|0)|0){d=8;break}c[e>>2]=c[(c[e>>2]|0)+28>>2]}if((d|0)==4)c[f>>2]=1;else if((d|0)==6)c[f>>2]=1;else if((d|0)==8)c[f>>2]=1;else if((d|0)==10)c[f>>2]=0;i=g;return c[f>>2]|0}function KB(a){a=a|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=a;a=(c[e>>2]|0)+88|0;b[a>>1]=b[a>>1]&-17|16;i=d;return}function LB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+8|0;f=h+4|0;g=h;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;if(!(c[g>>2]|0)){i=h;return}Tw(c[e>>2]|0,1,c[g>>2]|0)|0;MB(c[e>>2]|0,c[f>>2]|0);Rw(c[e>>2]|0,33,1,1)|0;i=h;return}function MB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;_B(c[f>>2]|0,1,e);i=d;return}function NB(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+16|0;g=f+12|0;h=f+8|0;j=f;c[g>>2]=a;c[h>>2]=b;b=j;c[b>>2]=d;c[b+4>>2]=e;eB(c[g>>2]|0,23,0,1,0,j,-13)|0;MB(c[g>>2]|0,c[h>>2]|0);Rw(c[g>>2]|0,33,1,1)|0;i=f;return}function OB(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0;j=i;i=i+32|0;f=j+16|0;l=j+12|0;h=j+8|0;g=j+4|0;k=j;c[f>>2]=a;c[l>>2]=d;c[k>>2]=c[c[f>>2]>>2];oC(c[(c[f>>2]|0)+16>>2]|0,(e[(c[f>>2]|0)+84>>1]|0)<<1);Sf(c[k>>2]|0,c[(c[f>>2]|0)+16>>2]|0);c[g>>2]=c[l>>2]<<1;b[(c[f>>2]|0)+84>>1]=c[l>>2];a=ph(c[k>>2]|0,(c[g>>2]|0)*40|0,0)|0;c[h>>2]=a;c[(c[f>>2]|0)+16>>2]=a;if(!(c[(c[f>>2]|0)+16>>2]|0)){i=j;return}while(1){l=c[g>>2]|0;c[g>>2]=l+-1;if((l|0)<=0)break;b[(c[h>>2]|0)+8>>1]=1;c[(c[h>>2]|0)+32>>2]=c[c[f>>2]>>2];c[h>>2]=(c[h>>2]|0)+40}i=j;return}function PB(b,d,f,g,h){b=b|0;d=d|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+32|0;j=r+28|0;k=r+24|0;l=r+20|0;m=r+16|0;n=r+12|0;o=r+8|0;q=r+4|0;p=r;c[k>>2]=b;c[l>>2]=d;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;if(a[(c[c[k>>2]>>2]|0)+65>>0]|0){c[j>>2]=7;g=c[j>>2]|0;i=r;return g|0}else{g=(c[l>>2]|0)+(_(c[m>>2]|0,e[(c[k>>2]|0)+84>>1]|0)|0)|0;c[p>>2]=(c[(c[k>>2]|0)+16>>2]|0)+(g*40|0);c[q>>2]=dh(c[p>>2]|0,c[n>>2]|0,-1,1,c[o>>2]|0)|0;c[j>>2]=c[q>>2];g=c[j>>2]|0;i=r;return g|0}return 0}function QB(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;b=f+4|0;d=f;c[d>>2]=a;do if(c[d>>2]|0){if(!(Td(c[d>>2]|0,33004)|0)){c[b>>2]=1;break}if(!(Td(c[d>>2]|0,32997)|0))c[b>>2]=0;else e=6}else e=6;while(0);if((e|0)==6)c[b>>2]=-1;i=f;return c[b>>2]|0}function RB(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[d>>2]=a;if((c[d>>2]|0)==6)c[b>>2]=0;else c[b>>2]=c[6256+(c[d>>2]<<2)>>2];i=e;return c[b>>2]|0}function SB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=i;i=i+16|0;e=g+8|0;f=g;c[e>>2]=a;a=f;c[a>>2]=b;c[a+4>>2]=d;a=f;d=c[a+4>>2]|0;if((d|0)>-1|(d|0)==-1&(c[a>>2]|0)>>>0>=4294967295){b=f;d=c[b+4>>2]|0;a=(c[e>>2]|0)+168|0;c[a>>2]=c[b>>2];c[a+4>>2]=d;a=f;nC(c[(c[e>>2]|0)+216>>2]|0,c[a>>2]|0,c[a+4>>2]|0)}a=(c[e>>2]|0)+168|0;C=c[a+4>>2]|0;i=g;return c[a>>2]|0}function TB(b){b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f+4|0;e=f;c[d>>2]=b;kg(c[d>>2]|0);if(!(a[(c[(c[d>>2]|0)+4>>2]|0)+17>>0]|0)){b=0;c[e>>2]=b;e=c[e>>2]|0;i=f;return e|0}b=(a[(c[(c[d>>2]|0)+4>>2]|0)+18>>0]|0)!=0^1?1:2;c[e>>2]=b;e=c[e>>2]|0;i=f;return e|0}function UB(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;b=f+8|0;d=f+4|0;e=f;c[d>>2]=a;do if(Td(c[d>>2]|0,34075)|0){if(!(Td(c[d>>2]|0,33519)|0)){c[b>>2]=1;break}if(!(Td(c[d>>2]|0,34080)|0)){c[b>>2]=2;break}else{c[e>>2]=Ki(c[d>>2]|0)|0;c[b>>2]=((c[e>>2]|0)>=0&(c[e>>2]|0)<=2?c[e>>2]|0:0)&255;break}}else c[b>>2]=0;while(0);i=f;return c[b>>2]|0}function VB(b,f){b=b|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;k=i;i=i+32|0;l=k+12|0;m=k+8|0;h=k+4|0;j=k;g=k+16|0;c[l>>2]=b;c[m>>2]=f;c[h>>2]=c[(c[l>>2]|0)+4>>2];c[j>>2]=0;a[g>>0]=c[m>>2];kg(c[l>>2]|0);if(((e[(c[h>>2]|0)+22>>1]|0)&2|0)!=0?(((d[g>>0]|0|0)!=0?1:0)|0)!=(d[(c[h>>2]|0)+17>>0]|0|0):0){c[j>>2]=8;m=c[j>>2]|0;i=k;return m|0}a[(c[h>>2]|0)+17>>0]=(d[g>>0]|0|0)!=0?1:0;a[(c[h>>2]|0)+18>>0]=(d[g>>0]|0|0)==2?1:0;m=c[j>>2]|0;i=k;return m|0}function WB(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=i;i=i+16|0;h=e+12|0;f=e+8|0;g=e+4|0;d=e;c[h>>2]=a;c[f>>2]=b;c[g>>2]=c[(c[h>>2]|0)+4>>2];kg(c[h>>2]|0);c[d>>2]=lC(c[c[g>>2]>>2]|0,c[f>>2]|0)|0;i=e;return c[d>>2]|0}function XB(b){b=b|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+8|0;g=h+4|0;f=h;c[e>>2]=b;if(!(a[(c[e>>2]|0)+63>>0]|0)){i=h;return}c[g>>2]=c[(c[e>>2]|0)+16>>2];c[f>>2]=c[(c[e>>2]|0)+20>>2];while(1){b=c[f>>2]|0;c[f>>2]=b+-1;if((b|0)<=0)break;if(c[(c[g>>2]|0)+4>>2]|0)wB(c[(c[g>>2]|0)+4>>2]|0,d[(c[g>>2]|0)+8>>0]|c[(c[e>>2]|0)+24>>2]&56)|0;c[g>>2]=(c[g>>2]|0)+16}i=h;return}function YB(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;f=k+16|0;g=k+12|0;l=k+8|0;j=k+4|0;h=k;c[g>>2]=b;c[l>>2]=e;c[j>>2]=kC(c[l>>2]|0)|0;c[h>>2]=c[c[g>>2]>>2];if((d[(c[h>>2]|0)+64>>0]|0|0)==(c[j>>2]|0)){c[f>>2]=0;l=c[f>>2]|0;i=k;return l|0}if(ZB(c[g>>2]|0)|0){c[f>>2]=1;l=c[f>>2]|0;i=k;return l|0}else{a[(c[h>>2]|0)+64>>0]=c[j>>2];c[f>>2]=0;l=c[f>>2]|0;i=k;return l|0}return 0}function ZB(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;g=h;d=h+12|0;e=h+8|0;f=h+4|0;c[e>>2]=b;c[f>>2]=c[c[e>>2]>>2];do if(c[(c[(c[f>>2]|0)+16>>2]|0)+16+4>>2]|0){if((a[(c[f>>2]|0)+63>>0]|0)!=0?(og(c[(c[(c[f>>2]|0)+16>>2]|0)+16+4>>2]|0)|0)==0:0){lB(c[(c[(c[f>>2]|0)+16>>2]|0)+16+4>>2]|0)|0;c[(c[(c[f>>2]|0)+16>>2]|0)+16+4>>2]=0;zg(c[f>>2]|0);break}Ah(c[e>>2]|0,34013,g);c[d>>2]=1;g=c[d>>2]|0;i=h;return g|0}while(0);c[d>>2]=0;g=c[d>>2]|0;i=h;return g|0}function _B(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;e=j+12|0;f=j+8|0;g=j+4|0;h=j;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;OB(c[e>>2]|0,c[f>>2]|0);c[h>>2]=0;while(1){if((c[h>>2]|0)>=(c[f>>2]|0))break;PB(c[e>>2]|0,c[h>>2]|0,0,c[(c[g>>2]|0)+(c[h>>2]<<2)>>2]|0,0)|0;c[h>>2]=(c[h>>2]|0)+1}i=j;return}function $B(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+48|0;g=o+32|0;h=o+28|0;j=o+24|0;k=o+8|0;m=o+4|0;l=o+36|0;n=o;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[k>>2]=f;c[m>>2]=0;while(1){e=a[(c[j>>2]|0)+(c[m>>2]|0)>>0]|0;a[l>>0]=e;if(!(e<<24>>24))break;if((a[l>>0]|0)==115){f=(c[k>>2]|0)+(4-1)&~(4-1);b=c[f>>2]|0;c[k>>2]=f+4;c[n>>2]=b;b=c[g>>2]|0;f=(c[n>>2]|0)==0?25:97;e=c[h>>2]|0;c[h>>2]=e+1;Uw(b,f,0,e,0,c[n>>2]|0,0)|0}else{b=c[g>>2]|0;e=(c[k>>2]|0)+(4-1)&~(4-1);f=c[e>>2]|0;c[k>>2]=e+4;e=c[h>>2]|0;c[h>>2]=e+1;Rw(b,22,f,e)|0}c[m>>2]=(c[m>>2]|0)+1}i=o;return}function aC(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;h=i;i=i+32|0;g=h+8|0;e=h+16|0;f=h;b[e>>1]=a;if((b[e>>1]|0)<10){f=g;c[f>>2]=1;c[f+4>>2]=0;f=g;g=f;g=c[g>>2]|0;f=f+4|0;f=c[f>>2]|0;C=f;i=h;return g|0}k=(b[e>>1]|0)%10|0;j=f;c[j>>2]=k;c[j+4>>2]=((k|0)<0)<<31>>31;b[e>>1]=(b[e>>1]|0)/10|0;j=f;k=c[j+4>>2]|0;d=f;a=c[d>>2]|0;d=c[d+4>>2]|0;if(!(k>>>0>0|(k|0)==0&(c[j>>2]|0)>>>0>=5)){if(d>>>0>0|(d|0)==0&a>>>0>=1){j=f;j=fR(c[j>>2]|0,c[j+4>>2]|0,1,0)|0;k=f;c[k>>2]=j;c[k+4>>2]=C}}else{j=fR(a|0,d|0,2,0)|0;k=f;c[k>>2]=j;c[k+4>>2]=C}if((b[e>>1]|0)<3){k=f;k=gR(c[k>>2]|0,c[k+4>>2]|0,8,0)|0;k=hR(k|0,C|0,3-(b[e>>1]|0)|0)|0;j=g;c[j>>2]=k;c[j+4>>2]=C;j=g;k=j;k=c[k>>2]|0;j=j+4|0;j=c[j>>2]|0;C=j;i=h;return k|0}if((b[e>>1]|0)>60){a=-1;d=2147483647}else{a=f;a=gR(c[a>>2]|0,c[a+4>>2]|0,8,0)|0;a=lR(a|0,C|0,(b[e>>1]|0)-3|0)|0;d=C}j=g;c[j>>2]=a;c[j+4>>2]=d;j=g;k=j;k=c[k>>2]|0;j=j+4|0;j=c[j>>2]|0;C=j;i=h;return k|0}function bC(b){b=b|0;var e=0,f=0,g=0;f=i;i=i+16|0;g=f+4|0;e=f;a[g>>0]=b;switch(d[g>>0]|0|0){case 7:{c[e>>2]=33823;break}case 8:{c[e>>2]=33832;break}case 9:{c[e>>2]=33844;break}case 6:{c[e>>2]=33852;break}default:c[e>>2]=33861}i=f;return c[e>>2]|0}function cC(f,g,h,j,k){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+80|0;y=D;l=D+64|0;m=D+60|0;n=D+56|0;o=D+52|0;p=D+48|0;q=D+44|0;x=D+40|0;r=D+36|0;w=D+32|0;B=D+28|0;s=D+24|0;t=D+20|0;v=D+16|0;u=D+68|0;z=D+12|0;A=D+8|0;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[p>>2]=j;c[q>>2]=k;c[x>>2]=0;c[r>>2]=0;c[w>>2]=c[(c[o>>2]|0)+20>>2];c[B>>2]=c[(c[o>>2]|0)+36+4>>2];do if((c[w>>2]|0)==1){if((b[(c[n>>2]|0)+32>>1]|0)>=0){if(!(c[B>>2]|0)){c[l>>2]=0;C=c[l>>2]|0;i=D;return C|0}if(!(Td(c[(c[(c[n>>2]|0)+4>>2]|0)+((b[(c[n>>2]|0)+32>>1]|0)*24|0)>>2]|0,c[B>>2]|0)|0)){c[l>>2]=0;C=c[l>>2]|0;i=D;return C|0}}}else if(c[q>>2]|0){c[r>>2]=Fw(c[c[m>>2]>>2]|0,c[w>>2]<<2,0)|0;if(c[r>>2]|0){c[c[q>>2]>>2]=c[r>>2];break}c[l>>2]=1;C=c[l>>2]|0;i=D;return C|0}while(0);c[x>>2]=c[(c[n>>2]|0)+8>>2];a:while(1){if(!(c[x>>2]|0))break;do if((e[(c[x>>2]|0)+50>>1]|0)==(c[w>>2]|0)?(d[(c[x>>2]|0)+54>>0]|0)!=0:0){if(!(c[B>>2]|0))if((a[(c[x>>2]|0)+55>>0]&3|0)==2){C=17;break a}else break;c[t>>2]=0;while(1){if((c[t>>2]|0)>=(c[w>>2]|0))break;b[u>>1]=b[(c[(c[x>>2]|0)+4>>2]|0)+(c[t>>2]<<1)>>1]|0;if((b[u>>1]|0)<0)break;j=c[(c[(c[n>>2]|0)+4>>2]|0)+((b[u>>1]|0)*24|0)+16>>2]|0;c[z>>2]=j;c[z>>2]=(c[z>>2]|0)!=0?j:35690;if(Td(c[(c[(c[x>>2]|0)+32>>2]|0)+(c[t>>2]<<2)>>2]|0,c[z>>2]|0)|0)break;c[A>>2]=c[(c[(c[n>>2]|0)+4>>2]|0)+((b[u>>1]|0)*24|0)>>2];c[v>>2]=0;while(1){if((c[v>>2]|0)>=(c[w>>2]|0))break;if(!(Td(c[(c[o>>2]|0)+36+(c[v>>2]<<3)+4>>2]|0,c[A>>2]|0)|0)){C=28;break}c[v>>2]=(c[v>>2]|0)+1}if((C|0)==28?(C=0,(c[r>>2]|0)!=0):0)c[(c[r>>2]|0)+(c[t>>2]<<2)>>2]=c[(c[o>>2]|0)+36+(c[v>>2]<<3)>>2];if((c[v>>2]|0)==(c[w>>2]|0))break;c[t>>2]=(c[t>>2]|0)+1}if((c[t>>2]|0)==(c[w>>2]|0))break a}while(0);c[x>>2]=c[(c[x>>2]|0)+20>>2]}b:do if((C|0)==17?(c[r>>2]|0)!=0:0){c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[w>>2]|0))break b;c[(c[r>>2]|0)+(c[s>>2]<<2)>>2]=c[(c[o>>2]|0)+36+(c[s>>2]<<3)>>2];c[s>>2]=(c[s>>2]|0)+1}}while(0);if(c[x>>2]|0){c[c[p>>2]>>2]=c[x>>2];c[l>>2]=0;C=c[l>>2]|0;i=D;return C|0}if(!(a[(c[m>>2]|0)+442>>0]|0)){C=c[m>>2]|0;B=c[(c[o>>2]|0)+8>>2]|0;c[y>>2]=c[c[c[o>>2]>>2]>>2];c[y+4>>2]=B;Ah(C,33760,y)}Sf(c[c[m>>2]>>2]|0,c[r>>2]|0);c[l>>2]=1;C=c[l>>2]|0;i=D;return C|0}function dC(d,f){d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;h=o+16|0;g=o+12|0;j=o+8|0;l=o+4|0;m=o;n=o+20|0;k=o+22|0;c[g>>2]=d;c[j>>2]=f;if(!(c[(c[j>>2]|0)+16>>2]|0)){c[m>>2]=c[(c[j>>2]|0)+12>>2];f=(e[(c[j>>2]|0)+52>>1]|0)+1|0;f=yh(0,f,((f|0)<0)<<31>>31)|0;c[(c[j>>2]|0)+16>>2]=f;if(!(c[(c[j>>2]|0)+16>>2]|0)){jh(c[g>>2]|0);c[h>>2]=0;n=c[h>>2]|0;i=o;return n|0}c[l>>2]=0;while(1){g=c[l>>2]|0;d=c[j>>2]|0;if((c[l>>2]|0)>=(e[(c[j>>2]|0)+52>>1]|0))break;b[n>>1]=b[(c[d+4>>2]|0)+(g<<1)>>1]|0;g=b[n>>1]|0;do if((b[n>>1]|0)<0){d=c[l>>2]|0;f=c[j>>2]|0;if((g|0)==-1){a[(c[f+16>>2]|0)+d>>0]=68;break}else{f=Nx(c[(c[(c[f+40>>2]|0)+4>>2]|0)+(d*20|0)>>2]|0)|0;a[k>>0]=f;a[k>>0]=(a[k>>0]|0)==0?65:f;a[(c[(c[j>>2]|0)+16>>2]|0)+(c[l>>2]|0)>>0]=a[k>>0]|0;break}}else a[(c[(c[j>>2]|0)+16>>2]|0)+(c[l>>2]|0)>>0]=a[(c[(c[m>>2]|0)+4>>2]|0)+(g*24|0)+21>>0]|0;while(0);c[l>>2]=(c[l>>2]|0)+1}a[(c[d+16>>2]|0)+g>>0]=0}c[h>>2]=c[(c[j>>2]|0)+16>>2];n=c[h>>2]|0;i=o;return n|0}function eC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;e=g+4|0;f=g;c[d>>2]=a;c[e>>2]=b;if(c[e>>2]|0)c[f>>2]=33668;else c[f>>2]=19262;fi(c[d>>2]|0,33672,2,1,c[f>>2]|0,212,0,0,0)|0;fi(c[d>>2]|0,33672,3,1,c[f>>2]|0,212,0,0,0)|0;fi(c[d>>2]|0,33677,2,1,19258,212,0,0,0)|0;iC(c[d>>2]|0,33677,12);iC(c[d>>2]|0,33672,((c[e>>2]|0)!=0?12:4)&255);i=g;return}function fC(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;b=f+8|0;d=f+4|0;e=f;c[b>>2]=a;c[d>>2]=0;c[e>>2]=(c[b>>2]|0)+124;while(1){if((c[d>>2]|0)>=10)break;if(c[(c[e>>2]|0)+12>>2]|0){hA(c[b>>2]|0,c[e>>2]|0);c[(c[e>>2]|0)+12>>2]=0}c[d>>2]=(c[d>>2]|0)+1;c[e>>2]=(c[e>>2]|0)+20}i=f;return}function gC(b,e,f,g,h,j,k,l){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+64|0;p=C+52|0;q=C+48|0;r=C+44|0;s=C+40|0;t=C+56|0;u=C+36|0;v=C+32|0;w=C+28|0;m=C+24|0;x=C+20|0;y=C+16|0;n=C+12|0;A=C+8|0;B=C+4|0;z=C;c[q>>2]=b;c[r>>2]=e;c[s>>2]=f;a[t>>0]=g;c[u>>2]=h;c[v>>2]=j;c[w>>2]=k;c[m>>2]=l;if((d[(c[r>>2]|0)+42>>0]|0)&16){c[p>>2]=0;B=c[p>>2]|0;i=C;return B|0}c[y>>2]=Dh(c[c[q>>2]>>2]|0,c[(c[r>>2]|0)+64>>2]|0)|0;c[B>>2]=Pw(c[q>>2]|0)|0;if((c[u>>2]|0)<0)c[u>>2]=c[(c[q>>2]|0)+72>>2];l=c[u>>2]|0;c[u>>2]=l+1;c[n>>2]=l;if(c[w>>2]|0)c[c[w>>2]>>2]=c[n>>2];do if(!((d[(c[r>>2]|0)+42>>0]|0)&32)){if((c[v>>2]|0)!=0?(d[c[v>>2]>>0]|0|0)==0:0){o=11;break}zz(c[q>>2]|0,c[n>>2]|0,c[y>>2]|0,c[r>>2]|0,c[s>>2]|0)}else o=11;while(0);if((o|0)==11)yz(c[q>>2]|0,c[y>>2]|0,c[(c[r>>2]|0)+28>>2]|0,(c[s>>2]|0)==55&255,c[c[r>>2]>>2]|0);if(c[m>>2]|0)c[c[m>>2]>>2]=c[u>>2];c[x>>2]=0;c[A>>2]=c[(c[r>>2]|0)+8>>2];while(1){m=c[u>>2]|0;if(!(c[A>>2]|0))break;c[u>>2]=m+1;c[z>>2]=m;if(!((c[v>>2]|0)!=0?(d[(c[v>>2]|0)+((c[x>>2]|0)+1)>>0]|0|0)==0:0)){Vw(c[B>>2]|0,c[s>>2]|0,c[z>>2]|0,c[(c[A>>2]|0)+44>>2]|0,c[y>>2]|0)|0;Az(c[q>>2]|0,c[A>>2]|0)}if((a[(c[A>>2]|0)+55>>0]&3|0)==2?((d[(c[r>>2]|0)+42>>0]|0)&32|0)!=0:0){if(c[w>>2]|0)c[c[w>>2]>>2]=c[z>>2]}else Fh(c[B>>2]|0,a[t>>0]|0);c[A>>2]=c[(c[A>>2]|0)+20>>2];c[x>>2]=(c[x>>2]|0)+1}if((m|0)>(c[(c[q>>2]|0)+72>>2]|0))c[(c[q>>2]|0)+72>>2]=c[u>>2];c[p>>2]=c[x>>2];B=c[p>>2]|0;i=C;return B|0}function hC(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;o=i;i=i+48|0;f=o+36|0;g=o+32|0;h=o+28|0;l=o+24|0;m=o+20|0;j=o+16|0;q=o+12|0;p=o+8|0;k=o+4|0;n=o;c[f>>2]=a;c[g>>2]=b;c[h>>2]=e;c[p>>2]=we(c[f>>2]|0)|0;c[k>>2]=ve(c[f>>2]|0)|0;c[m>>2]=ae(c[c[h>>2]>>2]|0)|0;c[l>>2]=ae(c[(c[h>>2]|0)+4>>2]|0)|0;c[q>>2]=be(c[c[h>>2]>>2]|0)|0;if((c[q>>2]|0)>(c[(c[p>>2]|0)+88+32>>2]|0)){je(c[f>>2]|0,33682,-1);i=o;return}do if((c[g>>2]|0)==3){c[n>>2]=ae(c[(c[h>>2]|0)+8>>2]|0)|0;if(!(c[n>>2]|0)){i=o;return}if((Cx(c[n>>2]|0,-1)|0)==1){c[j>>2]=jC(n)|0;break}je(c[f>>2]|0,33715,-1);i=o;return}else c[j>>2]=d[(c[k>>2]|0)+2>>0];while(0);if(!((c[l>>2]|0)!=0&(c[m>>2]|0)!=0)){i=o;return}q=c[f>>2]|0;ke(q,Ph(c[m>>2]|0,c[l>>2]|0,c[k>>2]|0,c[j>>2]|0)|0);i=o;return}function iC(f,g,h){f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0;l=i;i=i+16|0;n=l+8|0;m=l+4|0;j=l+12|0;k=l;c[n>>2]=f;c[m>>2]=g;a[j>>0]=h;h=c[n>>2]|0;g=c[m>>2]|0;c[k>>2]=gi(h,g,If(c[m>>2]|0)|0,2,1,0)|0;if(!(c[k>>2]|0)){i=l;return}n=(c[k>>2]|0)+2|0;b[n>>1]=e[n>>1]|0|(d[j>>0]|0);i=l;return}function jC(a){a=a|0;var b=0,e=0,f=0,g=0,h=0;f=i;i=i+16|0;b=f+4|0;e=f;c[b>>2]=a;g=c[b>>2]|0;a=c[g>>2]|0;c[g>>2]=a+1;c[e>>2]=d[a>>0];if((c[e>>2]|0)>>>0<192){g=c[e>>2]|0;i=f;return g|0}c[e>>2]=d[26420+((c[e>>2]|0)-192)>>0];while(1){a=c[e>>2]|0;if(((d[c[c[b>>2]>>2]>>0]|0)&192|0)!=128)break;h=c[b>>2]|0;g=c[h>>2]|0;c[h>>2]=g+1;c[e>>2]=(a<<6)+(63&(d[g>>0]|0))}if((a>>>0>=128?(c[e>>2]&-2048|0)!=55296:0)?(c[e>>2]&-2|0)!=65534:0){h=c[e>>2]|0;i=f;return h|0}c[e>>2]=65533;h=c[e>>2]|0;i=f;return h|0}function kC(b){b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+4|0;e=g;c[e>>2]=b;if((a[c[e>>2]>>0]|0)>=48?(a[c[e>>2]>>0]|0)<=50:0)c[d>>2]=(a[c[e>>2]>>0]|0)-48;else f=4;do if((f|0)==4){if(!(Td(c[e>>2]|0,33917)|0)){c[d>>2]=1;break}if(!(Td(c[e>>2]|0,27038)|0)){c[d>>2]=2;break}else{c[d>>2]=0;break}}while(0);i=g;return c[d>>2]|0}function lC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;a=mC(c[(c[f>>2]|0)+212>>2]|0,c[e>>2]|0)|0;i=d;return a|0}function mC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;e=g+4|0;f=g;c[d>>2]=a;c[e>>2]=b;if(c[e>>2]|0){if((c[e>>2]|0)<0){b=c[e>>2]|0;b=rR(-1024,-1,b|0,((b|0)<0)<<31>>31|0)|0;a=(c[(c[d>>2]|0)+24>>2]|0)+(c[(c[d>>2]|0)+28>>2]|0)|0;a=pR(b|0,C|0,a|0,((a|0)<0)<<31>>31|0)|0;c[e>>2]=a}c[(c[d>>2]|0)+20>>2]=c[e>>2]}c[f>>2]=Zi(c[d>>2]|0)|0;if((c[f>>2]|0)>=(c[(c[d>>2]|0)+20>>2]|0)){f=c[f>>2]|0;i=g;return f|0}c[f>>2]=c[(c[d>>2]|0)+20>>2];f=c[f>>2]|0;i=g;return f|0}function nC(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=i;i=i+16|0;e=g+8|0;f=g;c[e>>2]=a;a=f;c[a>>2]=b;c[a+4>>2]=d;if(!(c[e>>2]|0)){i=g;return}d=f;f=c[d+4>>2]|0;a=(c[e>>2]|0)+16|0;c[a>>2]=c[d>>2];c[a+4>>2]=f;i=g;return}function oC(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;g=k+12|0;f=k+8|0;j=k+4|0;h=k;c[g>>2]=a;c[f>>2]=d;if(!((c[g>>2]|0)!=0&(c[f>>2]|0)!=0)){i=k;return}c[j>>2]=(c[g>>2]|0)+((c[f>>2]|0)*40|0);c[h>>2]=c[(c[g>>2]|0)+32>>2];if(c[(c[h>>2]|0)+528>>2]|0){do{if(c[(c[g>>2]|0)+24>>2]|0)Sf(c[h>>2]|0,c[(c[g>>2]|0)+20>>2]|0);a=(c[g>>2]|0)+40|0;c[g>>2]=a}while(a>>>0<(c[j>>2]|0)>>>0);i=k;return}do{f=c[g>>2]|0;if(!((e[(c[g>>2]|0)+8>>1]|0)&9312)){if(c[f+24>>2]|0){Sf(c[h>>2]|0,c[(c[g>>2]|0)+20>>2]|0);c[(c[g>>2]|0)+24>>2]=0}}else Ug(f);b[(c[g>>2]|0)+8>>1]=128;a=(c[g>>2]|0)+40|0;c[g>>2]=a}while(a>>>0<(c[j>>2]|0)>>>0);i=k;return}function pC(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=i;i=i+80|0;l=o+8|0;k=o;f=o+44|0;p=o+40|0;g=o+36|0;h=o+32|0;j=o+28|0;m=o+24|0;n=o+48|0;c[f>>2]=a;c[p>>2]=b;c[g>>2]=d;c[h>>2]=e;c[m>>2]=c[(c[(c[c[f>>2]>>2]|0)+16>>2]|0)+(c[p>>2]<<4)>>2];c[j>>2]=1;while(1){if((c[j>>2]|0)>4)break;c[k>>2]=c[j>>2];Qd(24,n,34953,k)|0;if(pi(c[c[f>>2]>>2]|0,n,c[m>>2]|0)|0){p=c[f>>2]|0;e=c[g>>2]|0;d=c[h>>2]|0;c[l>>2]=c[m>>2];c[l+4>>2]=n;c[l+8>>2]=e;c[l+12>>2]=d;Ow(p,31809,l)}c[j>>2]=(c[j>>2]|0)+1}i=o;return}function qC(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;e=i;i=i+48|0;h=e;g=e+36|0;j=e+32|0;l=e+28|0;k=e+24|0;f=e+20|0;c[g>>2]=a;c[j>>2]=b;c[l>>2]=d;c[k>>2]=Pw(c[g>>2]|0)|0;c[f>>2]=Wz(c[g>>2]|0)|0;Vw(c[k>>2]|0,118,c[j>>2]|0,c[f>>2]|0,c[l>>2]|0)|0;Bx(c[g>>2]|0);a=c[g>>2]|0;k=(c[l>>2]|0)==1?20769:20788;j=c[j>>2]|0;d=c[f>>2]|0;b=c[f>>2]|0;c[h>>2]=c[(c[(c[c[g>>2]>>2]|0)+16>>2]|0)+(c[l>>2]<<4)>>2];c[h+4>>2]=k;c[h+8>>2]=j;c[h+12>>2]=d;c[h+16>>2]=b;Ow(a,34897,h);_z(c[g>>2]|0,c[f>>2]|0);i=e;return}function rC(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;g=r+36|0;h=r+32|0;j=r+28|0;k=r+24|0;l=r+20|0;m=r+16|0;q=r+12|0;n=r+8|0;p=r+4|0;o=r;c[h>>2]=a;c[j>>2]=b;c[k>>2]=d;c[l>>2]=e;c[m>>2]=f;c[n>>2]=c[c[l>>2]>>2];do if(!(c[n>>2]&(c[n>>2]|0)-1)){c[p>>2]=(c[n>>2]|0)==0?1:c[n>>2]<<1;d=_(c[p>>2]|0,c[k>>2]|0)|0;c[o>>2]=Ew(c[h>>2]|0,c[j>>2]|0,d,((d|0)<0)<<31>>31)|0;if(c[o>>2]|0){c[j>>2]=c[o>>2];break}c[c[m>>2]>>2]=-1;c[g>>2]=c[j>>2];q=c[g>>2]|0;i=r;return q|0}while(0);c[q>>2]=c[j>>2];d=_(c[n>>2]|0,c[k>>2]|0)|0;kR((c[q>>2]|0)+d|0,0,c[k>>2]|0)|0;c[c[m>>2]>>2]=c[n>>2];q=c[l>>2]|0;c[q>>2]=(c[q>>2]|0)+1;c[g>>2]=c[j>>2];q=c[g>>2]|0;i=r;return q|0}function sC(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+32|0;h=q+28|0;j=q+24|0;k=q+20|0;l=q+16|0;m=q+12|0;n=q+8|0;p=q+4|0;o=q;c[h>>2]=a;c[j>>2]=b;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;c[n>>2]=0;c[p>>2]=0;if(c[(c[c[h>>2]>>2]|0)+24>>2]&8388608)c[p>>2]=fx(c[h>>2]|0,c[j>>2]|0)|0;c[o>>2]=c[p>>2];while(1){if(!(c[o>>2]|0))break;if((d[(c[o>>2]|0)+8>>0]|0|0)==(c[k>>2]|0)?(MF(c[(c[o>>2]|0)+16>>2]|0,c[l>>2]|0)|0)!=0:0)c[n>>2]=c[n>>2]|(d[(c[o>>2]|0)+9>>0]|0);c[o>>2]=c[(c[o>>2]|0)+32>>2]}if(!(c[m>>2]|0)){a=c[n>>2]|0;a=(a|0)!=0;b=c[p>>2]|0;b=a?b:0;i=q;return b|0}c[c[m>>2]>>2]=c[n>>2];a=c[n>>2]|0;a=(a|0)!=0;b=c[p>>2]|0;b=a?b:0;i=q;return b|0}function tC(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;l=n+8|0;k=n;f=n+24|0;g=n+20|0;h=n+16|0;j=n+12|0;c[g>>2]=a;c[h>>2]=b;c[j>>2]=e;if(!(((d[(c[h>>2]|0)+42>>0]|0)&16|0)!=0?(c[(c[c[(Ax(c[c[g>>2]>>2]|0,c[h>>2]|0)|0)+4>>2]>>2]|0)+52>>2]|0)==0:0))m=3;do if((m|0)==3){if((((d[(c[h>>2]|0)+42>>0]|0)&1|0)!=0?(c[(c[c[g>>2]>>2]|0)+24>>2]&2048|0)==0:0)?(d[(c[g>>2]|0)+18>>0]|0|0)==0:0)break;if((c[j>>2]|0)==0?(c[(c[h>>2]|0)+12>>2]|0)!=0:0){m=c[g>>2]|0;c[l>>2]=c[c[h>>2]>>2];Ah(m,36112,l);c[f>>2]=1;m=c[f>>2]|0;i=n;return m|0}c[f>>2]=0;m=c[f>>2]|0;i=n;return m|0}while(0);m=c[g>>2]|0;c[k>>2]=c[c[h>>2]>>2];Ah(m,36083,k);c[f>>2]=1;m=c[f>>2]|0;i=n;return m|0}function uC(a){a=a|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=a;a=(c[e>>2]|0)+88|0;b[a>>1]=b[a>>1]&-5|4;i=d;return}function vC(f,g,h,j,k){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0;O=i;i=i+128|0;u=O+108|0;v=O+104|0;w=O+100|0;l=O+96|0;r=O+92|0;x=O+88|0;z=O+84|0;n=O+80|0;I=O+76|0;J=O+72|0;H=O+68|0;o=O+64|0;C=O+60|0;D=O+56|0;F=O+52|0;E=O+48|0;y=O+44|0;s=O+40|0;A=O+36|0;B=O+32|0;M=O+28|0;t=O+24|0;q=O+20|0;K=O+16|0;L=O+12|0;m=O+8|0;p=O+4|0;G=O+112|0;N=O;c[v>>2]=f;c[w>>2]=g;c[l>>2]=h;c[r>>2]=j;c[x>>2]=k;c[z>>2]=c[c[v>>2]>>2];c[A>>2]=0;c[B>>2]=0;c[q>>2]=0;if(!(c[l>>2]|0)){c[u>>2]=0;N=c[u>>2]|0;i=O;return N|0}if((c[(c[v>>2]|0)+536>>2]|0)==0?(c[(c[l>>2]|0)+68>>2]|0)==0:0){if(fx(c[v>>2]|0,c[w>>2]|0)|0){c[u>>2]=0;N=c[u>>2]|0;i=O;return N|0}if(d[(c[w>>2]|0)+42>>0]&16){
  45. c[u>>2]=0;N=c[u>>2]|0;i=O;return N|0}if((c[r>>2]|0)==10){if((b[(c[w>>2]|0)+32>>1]|0)>=0)c[r>>2]=d[(c[w>>2]|0)+43>>0];if((c[r>>2]|0)==10)c[r>>2]=2}if((c[c[(c[l>>2]|0)+32>>2]>>2]|0)!=1){c[u>>2]=0;N=c[u>>2]|0;i=O;return N|0}if(c[(c[(c[l>>2]|0)+32>>2]|0)+8+20>>2]|0){c[u>>2]=0;N=c[u>>2]|0;i=O;return N|0}if(c[(c[l>>2]|0)+36>>2]|0){c[u>>2]=0;N=c[u>>2]|0;i=O;return N|0}if(c[(c[l>>2]|0)+48>>2]|0){c[u>>2]=0;N=c[u>>2]|0;i=O;return N|0}if(c[(c[l>>2]|0)+40>>2]|0){c[u>>2]=0;N=c[u>>2]|0;i=O;return N|0}if(c[(c[l>>2]|0)+60>>2]|0){c[u>>2]=0;N=c[u>>2]|0;i=O;return N|0}if(c[(c[l>>2]|0)+52>>2]|0){c[u>>2]=0;N=c[u>>2]|0;i=O;return N|0}if(e[(c[l>>2]|0)+6>>1]&1){c[u>>2]=0;N=c[u>>2]|0;i=O;return N|0}c[n>>2]=c[c[l>>2]>>2];if((c[c[n>>2]>>2]|0)!=1){c[u>>2]=0;N=c[u>>2]|0;i=O;return N|0}if((d[c[c[(c[n>>2]|0)+4>>2]>>2]>>0]|0)!=158){c[u>>2]=0;N=c[u>>2]|0;i=O;return N|0}c[o>>2]=(c[(c[l>>2]|0)+32>>2]|0)+8;c[I>>2]=_w(c[v>>2]|0,0,c[o>>2]|0)|0;if(!(c[I>>2]|0)){c[u>>2]=0;N=c[u>>2]|0;i=O;return N|0}if((c[I>>2]|0)==(c[w>>2]|0)){c[u>>2]=0;N=c[u>>2]|0;i=O;return N|0}if(((d[(c[w>>2]|0)+42>>0]&32|0)==0|0)!=((d[(c[I>>2]|0)+42>>0]&32|0)==0|0)){c[u>>2]=0;N=c[u>>2]|0;i=O;return N|0}if(d[(c[I>>2]|0)+42>>0]&16){c[u>>2]=0;N=c[u>>2]|0;i=O;return N|0}if(c[(c[I>>2]|0)+12>>2]|0){c[u>>2]=0;N=c[u>>2]|0;i=O;return N|0}if((b[(c[w>>2]|0)+34>>1]|0)!=(b[(c[I>>2]|0)+34>>1]|0)){c[u>>2]=0;N=c[u>>2]|0;i=O;return N|0}if((b[(c[w>>2]|0)+32>>1]|0)!=(b[(c[I>>2]|0)+32>>1]|0)){c[u>>2]=0;N=c[u>>2]|0;i=O;return N|0}c[C>>2]=0;a:while(1){if((c[C>>2]|0)>=(b[(c[w>>2]|0)+34>>1]|0)){l=64;break}c[m>>2]=(c[(c[w>>2]|0)+4>>2]|0)+((c[C>>2]|0)*24|0);c[p>>2]=(c[(c[I>>2]|0)+4>>2]|0)+((c[C>>2]|0)*24|0);if((a[(c[m>>2]|0)+21>>0]|0)!=(a[(c[p>>2]|0)+21>>0]|0)){l=52;break}if(Td(c[(c[m>>2]|0)+16>>2]|0,c[(c[p>>2]|0)+16>>2]|0)|0){l=54;break}if((d[(c[m>>2]|0)+20>>0]|0)!=0?(a[(c[p>>2]|0)+20>>0]|0)==0:0){l=57;break}do if((c[C>>2]|0)>0){if(((c[(c[m>>2]|0)+8>>2]|0)==0|0)!=((c[(c[p>>2]|0)+8>>2]|0)==0|0)){l=62;break a}if(!(c[(c[m>>2]|0)+8>>2]|0))break;if(yQ(c[(c[m>>2]|0)+8>>2]|0,c[(c[p>>2]|0)+8>>2]|0)|0){l=62;break a}}while(0);c[C>>2]=(c[C>>2]|0)+1}if((l|0)==52){c[u>>2]=0;N=c[u>>2]|0;i=O;return N|0}else if((l|0)==54){c[u>>2]=0;N=c[u>>2]|0;i=O;return N|0}else if((l|0)==57){c[u>>2]=0;N=c[u>>2]|0;i=O;return N|0}else if((l|0)==62){c[u>>2]=0;N=c[u>>2]|0;i=O;return N|0}else if((l|0)==64){c[H>>2]=c[(c[w>>2]|0)+8>>2];while(1){if(!(c[H>>2]|0))break;if(d[(c[H>>2]|0)+54>>0]|0)c[q>>2]=1;c[J>>2]=c[(c[I>>2]|0)+8>>2];while(1){if(!(c[J>>2]|0))break;if(OF(c[H>>2]|0,c[J>>2]|0)|0)break;c[J>>2]=c[(c[J>>2]|0)+20>>2]}if(!(c[J>>2]|0)){l=73;break}c[H>>2]=c[(c[H>>2]|0)+20>>2]}if((l|0)==73){c[u>>2]=0;N=c[u>>2]|0;i=O;return N|0}do if(c[(c[w>>2]|0)+24>>2]|0){if(!(qy(c[(c[I>>2]|0)+24>>2]|0,c[(c[w>>2]|0)+24>>2]|0,-1)|0))break;c[u>>2]=0;N=c[u>>2]|0;i=O;return N|0}while(0);do if(c[(c[z>>2]|0)+24>>2]&524288){if(!(c[(c[w>>2]|0)+16>>2]|0))break;c[u>>2]=0;N=c[u>>2]|0;i=O;return N|0}while(0);if(c[(c[z>>2]|0)+24>>2]&128){c[u>>2]=0;N=c[u>>2]|0;i=O;return N|0}c[D>>2]=Dh(c[z>>2]|0,c[(c[I>>2]|0)+64>>2]|0)|0;c[M>>2]=Pw(c[v>>2]|0)|0;bx(c[v>>2]|0,c[D>>2]|0);p=(c[v>>2]|0)+72|0;h=c[p>>2]|0;c[p>>2]=h+1;c[F>>2]=h;h=(c[v>>2]|0)+72|0;p=c[h>>2]|0;c[h>>2]=p+1;c[E>>2]=p;c[t>>2]=wC(c[v>>2]|0,c[x>>2]|0,c[w>>2]|0)|0;c[K>>2]=Wz(c[v>>2]|0)|0;c[L>>2]=Wz(c[v>>2]|0)|0;zz(c[v>>2]|0,c[E>>2]|0,c[x>>2]|0,c[w>>2]|0,55);do if(!(c[(c[z>>2]|0)+24>>2]&134217728)){if((b[(c[w>>2]|0)+32>>1]|0)<0){if(!((c[q>>2]|0)!=0?1:(c[(c[w>>2]|0)+8>>2]|0)!=0))l=87}else if(!(c[q>>2]|0))l=87;if((l|0)==87?!((c[r>>2]|0)!=2&(c[r>>2]|0)!=1):0)break;c[y>>2]=Rw(c[M>>2]|0,108,c[E>>2]|0,0)|0;c[A>>2]=Yw(c[M>>2]|0,13)|0;Fz(c[M>>2]|0,c[y>>2]|0)}while(0);l=c[v>>2]|0;if(!(d[(c[I>>2]|0)+42>>0]&32)){zz(l,c[F>>2]|0,c[D>>2]|0,c[I>>2]|0,54);c[B>>2]=Rw(c[M>>2]|0,108,c[F>>2]|0,0)|0;do if((b[(c[w>>2]|0)+32>>1]|0)<0){l=c[M>>2]|0;if(!(c[(c[w>>2]|0)+8>>2]|0)){c[y>>2]=Rw(l,74,c[E>>2]|0,c[L>>2]|0)|0;break}else{c[y>>2]=Rw(l,103,c[F>>2]|0,c[L>>2]|0)|0;break}}else{c[y>>2]=Rw(c[M>>2]|0,103,c[F>>2]|0,c[L>>2]|0)|0;c[s>>2]=Vw(c[M>>2]|0,70,c[E>>2]|0,0,c[L>>2]|0)|0;CE(c[v>>2]|0,c[r>>2]|0,c[w>>2]|0);Fz(c[M>>2]|0,c[s>>2]|0);CC(c[v>>2]|0,c[t>>2]|0,c[L>>2]|0)}while(0);Rw(c[M>>2]|0,102,c[F>>2]|0,c[K>>2]|0)|0;Uw(c[M>>2]|0,75,c[E>>2]|0,c[K>>2]|0,c[L>>2]|0,c[c[w>>2]>>2]|0,0)|0;Fh(c[M>>2]|0,11);Rw(c[M>>2]|0,7,c[F>>2]|0,c[y>>2]|0)|0;Rw(c[M>>2]|0,61,c[F>>2]|0,0)|0;Rw(c[M>>2]|0,61,c[E>>2]|0,0)|0}else{yz(l,c[x>>2]|0,c[(c[w>>2]|0)+28>>2]|0,1,c[c[w>>2]>>2]|0);yz(c[v>>2]|0,c[D>>2]|0,c[(c[I>>2]|0)+28>>2]|0,0,c[c[I>>2]>>2]|0)}c[H>>2]=c[(c[w>>2]|0)+8>>2];while(1){if(!(c[H>>2]|0))break;a[G>>0]=0;c[J>>2]=c[(c[I>>2]|0)+8>>2];while(1){if(!(c[J>>2]|0))break;if(OF(c[H>>2]|0,c[J>>2]|0)|0)break;c[J>>2]=c[(c[J>>2]|0)+20>>2]}Vw(c[M>>2]|0,54,c[F>>2]|0,c[(c[J>>2]|0)+44>>2]|0,c[D>>2]|0)|0;Az(c[v>>2]|0,c[J>>2]|0);Vw(c[M>>2]|0,55,c[E>>2]|0,c[(c[H>>2]|0)+44>>2]|0,c[x>>2]|0)|0;Az(c[v>>2]|0,c[H>>2]|0);Fh(c[M>>2]|0,1);c[y>>2]=Rw(c[M>>2]|0,108,c[F>>2]|0,0)|0;Rw(c[M>>2]|0,101,c[F>>2]|0,c[K>>2]|0)|0;do if(c[(c[z>>2]|0)+24>>2]&134217728){c[C>>2]=0;while(1){if((c[C>>2]|0)>=(e[(c[J>>2]|0)+52>>1]|0))break;c[N>>2]=c[(c[(c[J>>2]|0)+32>>2]|0)+(c[C>>2]<<2)>>2];if(Td(35690,c[N>>2]|0)|0)break;c[C>>2]=(c[C>>2]|0)+1}if((c[C>>2]|0)!=(e[(c[J>>2]|0)+52>>1]|0))break;a[G>>0]=16;Vw(c[M>>2]|0,105,c[E>>2]|0,0,-1)|0}while(0);do if(d[(c[I>>2]|0)+42>>0]&32){if((a[(c[H>>2]|0)+55>>0]&3|0)!=2)break;a[G>>0]=d[G>>0]|1}while(0);Vw(c[M>>2]|0,110,c[E>>2]|0,c[K>>2]|0,1)|0;Fh(c[M>>2]|0,a[G>>0]|0);Rw(c[M>>2]|0,7,c[F>>2]|0,(c[y>>2]|0)+1|0)|0;Fz(c[M>>2]|0,c[y>>2]|0);Rw(c[M>>2]|0,61,c[F>>2]|0,0)|0;Rw(c[M>>2]|0,61,c[E>>2]|0,0)|0;c[H>>2]=c[(c[H>>2]|0)+20>>2]}if(c[B>>2]|0)Fz(c[M>>2]|0,c[B>>2]|0);_z(c[v>>2]|0,c[L>>2]|0);_z(c[v>>2]|0,c[K>>2]|0);if(c[A>>2]|0){Rw(c[M>>2]|0,21,0,0)|0;Fz(c[M>>2]|0,c[A>>2]|0);Rw(c[M>>2]|0,61,c[E>>2]|0,0)|0;c[u>>2]=0;N=c[u>>2]|0;i=O;return N|0}else{c[u>>2]=1;N=c[u>>2]|0;i=O;return N|0}}}c[u>>2]=0;N=c[u>>2]|0;i=O;return N|0}function wC(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;f=n+24|0;g=n+20|0;h=n+16|0;j=n+12|0;k=n+8|0;m=n+4|0;l=n;c[g>>2]=a;c[h>>2]=b;c[j>>2]=e;c[k>>2]=0;if((d[(c[j>>2]|0)+42>>0]|0)&8){b=c[g>>2]|0;if(c[(c[g>>2]|0)+416>>2]|0)b=c[b+416>>2]|0;c[m>>2]=b;c[l>>2]=c[(c[m>>2]|0)+412>>2];while(1){if(c[l>>2]|0)a=(c[(c[l>>2]|0)+4>>2]|0)!=(c[j>>2]|0);else a=0;b=c[l>>2]|0;if(!a)break;c[l>>2]=c[b>>2]}do if(!b){c[l>>2]=Fw(c[c[g>>2]>>2]|0,16,0)|0;if(c[l>>2]|0){c[c[l>>2]>>2]=c[(c[m>>2]|0)+412>>2];c[(c[m>>2]|0)+412>>2]=c[l>>2];c[(c[l>>2]|0)+4>>2]=c[j>>2];c[(c[l>>2]|0)+8>>2]=c[h>>2];h=(c[m>>2]|0)+76|0;c[h>>2]=(c[h>>2]|0)+1;h=(c[m>>2]|0)+76|0;j=(c[h>>2]|0)+1|0;c[h>>2]=j;c[(c[l>>2]|0)+12>>2]=j;m=(c[m>>2]|0)+76|0;c[m>>2]=(c[m>>2]|0)+1;break}c[f>>2]=0;m=c[f>>2]|0;i=n;return m|0}while(0);c[k>>2]=c[(c[l>>2]|0)+12>>2]}c[f>>2]=c[k>>2];m=c[f>>2]|0;i=n;return m|0}function xC(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;xz(c[f>>2]|0,17,c[g>>2]|0)|0;a[(c[(c[f>>2]|0)+24>>2]|0)+19>>0]=0;c[(c[(c[f>>2]|0)+24>>2]|0)+60>>2]=0;i=e;return}function yC(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;q=r+40|0;f=r+36|0;g=r+32|0;h=r+28|0;p=r+24|0;j=r+20|0;k=r+16|0;n=r+12|0;m=r+8|0;l=r+4|0;o=r;c[f>>2]=a;c[g>>2]=b;c[h>>2]=e;c[p>>2]=Pw(c[f>>2]|0)|0;c[k>>2]=Bz(c[p>>2]|0)|0;if((d[(c[h>>2]|0)+42>>0]|0)&16)f=Ax(c[c[f>>2]>>2]|0,c[h>>2]|0)|0;else f=0;c[n>>2]=f;c[j>>2]=1;a:while(1){if((c[j>>2]|0)>=(c[k>>2]|0)){f=18;break}c[m>>2]=Mz(c[p>>2]|0,c[j>>2]|0)|0;b:do if((d[c[m>>2]>>0]|0|0)==54?(c[(c[m>>2]|0)+12>>2]|0)==(c[g>>2]|0):0){c[o>>2]=c[(c[m>>2]|0)+8>>2];if((c[o>>2]|0)==(c[(c[h>>2]|0)+28>>2]|0)){f=8;break a}c[l>>2]=c[(c[h>>2]|0)+8>>2];while(1){if(!(c[l>>2]|0))break b;if((c[o>>2]|0)==(c[(c[l>>2]|0)+44>>2]|0)){f=12;break a}c[l>>2]=c[(c[l>>2]|0)+20>>2]}}while(0);if((d[c[m>>2]>>0]|0|0)==152?(c[(c[m>>2]|0)+16>>2]|0)==(c[n>>2]|0):0){f=16;break}c[j>>2]=(c[j>>2]|0)+1}if((f|0)==8){c[q>>2]=1;q=c[q>>2]|0;i=r;return q|0}else if((f|0)==12){c[q>>2]=1;q=c[q>>2]|0;i=r;return q|0}else if((f|0)==16){c[q>>2]=1;q=c[q>>2]|0;i=r;return q|0}else if((f|0)==18){c[q>>2]=0;q=c[q>>2]|0;i=r;return q|0}return 0}function zC(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i+32|0;k=e+16|0;g=e+12|0;h=e+8|0;j=e+4|0;f=e;c[k>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=c[(c[k>>2]|0)+8>>2];xA(c[k>>2]|0,c[g>>2]|0,c[h>>2]|0);a=(c[k>>2]|0)+76|0;d=(c[a>>2]|0)+1|0;c[a>>2]=d;c[f>>2]=d;Rw(c[j>>2]|0,30,c[h>>2]|0,c[f>>2]|0)|0;KA(c[g>>2]|0,c[f>>2]|0);i=e;return}function AC(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;g=n+20|0;h=n+16|0;k=n+12|0;l=n+8|0;m=n+4|0;j=n;c[g>>2]=d;c[h>>2]=e;c[k>>2]=f;c[m>>2]=c[(c[h>>2]|0)+20>>2];if(!(c[m>>2]|0)){c[j>>2]=wA(c[g>>2]|0)|0;d=(b[(c[h>>2]|0)+34>>1]|0)+1|0;c[m>>2]=yh(0,d,((d|0)<0)<<31>>31)|0;if(!(c[m>>2]|0)){jh(c[j>>2]|0);i=n;return}c[l>>2]=0;while(1){if((c[l>>2]|0)>=(b[(c[h>>2]|0)+34>>1]|0))break;a[(c[m>>2]|0)+(c[l>>2]|0)>>0]=a[(c[(c[h>>2]|0)+4>>2]|0)+((c[l>>2]|0)*24|0)+21>>0]|0;c[l>>2]=(c[l>>2]|0)+1}do{d=c[l>>2]|0;c[l>>2]=d+-1;a[(c[m>>2]|0)+d>>0]=0;if((c[l>>2]|0)<0)break}while((a[(c[m>>2]|0)+(c[l>>2]|0)>>0]|0)==65);c[(c[h>>2]|0)+20>>2]=c[m>>2]}c[l>>2]=If(c[m>>2]|0)|0;if(!(c[l>>2]|0)){i=n;return}g=c[g>>2]|0;if(c[k>>2]|0){Uw(g,48,c[k>>2]|0,c[l>>2]|0,0,c[m>>2]|0,c[l>>2]|0)|0;i=n;return}else{Ih(g,-1,c[m>>2]|0,c[l>>2]|0);i=n;return}}function BC(a,b,e,f,g,h,j,k,l){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;v=i;i=i+48|0;m=v+36|0;w=v+32|0;n=v+28|0;o=v+24|0;p=v+20|0;q=v+16|0;r=v+12|0;s=v+8|0;t=v+4|0;u=v;c[m>>2]=a;c[w>>2]=b;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[r>>2]=j;c[s>>2]=k;c[t>>2]=l;c[u>>2]=c[w>>2];while(1){if(!(c[u>>2]|0))break;if(((d[(c[u>>2]|0)+8>>0]|0|0)==(c[n>>2]|0)?(d[(c[u>>2]|0)+9>>0]|0|0)==(c[p>>2]|0):0)?(MF(c[(c[u>>2]|0)+16>>2]|0,c[o>>2]|0)|0)!=0:0)LE(c[m>>2]|0,c[u>>2]|0,c[q>>2]|0,c[r>>2]|0,c[s>>2]|0,c[t>>2]|0);c[u>>2]=c[(c[u>>2]|0)+32>>2]}i=v;return}function CC(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+8|0;f=h+4|0;g=h;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;if((c[f>>2]|0)<=0){i=h;return}Rw(c[(c[e>>2]|0)+8>>2]|0,137,c[f>>2]|0,c[g>>2]|0)|0;i=h;return}function DC(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0;j=i;i=i+16|0;f=j+8|0;g=j+4|0;h=j;c[f>>2]=a;c[g>>2]=b;c[h>>2]=e;if((d[(c[f>>2]|0)+23>>0]|0|0)!=0?(FA(c[g>>2]|0)|0)!=0:0){_A(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0,0);i=j;return}xA(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0);i=j;return}function EC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;l=k+20|0;d=k+16|0;h=k+12|0;f=k+8|0;g=k+4|0;e=k;c[l>>2]=a;c[d>>2]=b;a=c[l>>2]|0;if(c[(c[l>>2]|0)+416>>2]|0)a=c[a+416>>2]|0;c[h>>2]=a;c[f>>2]=0;while(1){if((c[f>>2]|0)>=(c[(c[h>>2]|0)+456>>2]|0))break;if((c[d>>2]|0)==(c[(c[(c[h>>2]|0)+524>>2]|0)+(c[f>>2]<<2)>>2]|0)){j=10;break}c[f>>2]=(c[f>>2]|0)+1}if((j|0)==10){i=k;return}c[g>>2]=(c[(c[h>>2]|0)+456>>2]|0)+1<<2;l=c[g>>2]|0;c[e>>2]=Md(c[(c[h>>2]|0)+524>>2]|0,l,((l|0)<0)<<31>>31)|0;if(c[e>>2]|0){c[(c[h>>2]|0)+524>>2]=c[e>>2];j=c[d>>2]|0;g=(c[h>>2]|0)+456|0;l=c[g>>2]|0;c[g>>2]=l+1;c[(c[(c[h>>2]|0)+524>>2]|0)+(l<<2)>>2]=j;i=k;return}else{jh(c[c[h>>2]>>2]|0);i=k;return}}function FC(f,g,h,j,k,l,m,n,o,p,q,r){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;var s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0;na=i;i=i+192|0;A=na;E=na+176|0;F=na+172|0;H=na+168|0;I=na+164|0;J=na+160|0;K=na+156|0;L=na+152|0;M=na+183|0;N=na+182|0;O=na+148|0;G=na+144|0;s=na+140|0;ka=na+136|0;ca=na+132|0;da=na+128|0;S=na+124|0;T=na+120|0;Z=na+116|0;w=na+112|0;$=na+108|0;t=na+104|0;ja=na+100|0;_=na+96|0;X=na+92|0;W=na+88|0;Y=na+181|0;R=na+180|0;ia=na+84|0;B=na+80|0;x=na+76|0;v=na+72|0;y=na+68|0;C=na+64|0;u=na+60|0;z=na+56|0;ga=na+52|0;ha=na+48|0;V=na+44|0;Q=na+40|0;U=na+36|0;la=na+32|0;ma=na+28|0;P=na+24|0;aa=na+20|0;fa=na+16|0;ba=na+12|0;ea=na+8|0;c[E>>2]=f;c[F>>2]=g;c[H>>2]=h;c[I>>2]=j;c[J>>2]=k;c[K>>2]=l;c[L>>2]=m;a[M>>0]=n;a[N>>0]=o;c[O>>2]=p;c[G>>2]=q;c[s>>2]=r;c[da>>2]=0;c[ja>>2]=0;c[X>>2]=0;c[W>>2]=0;a[R>>0]=0;c[ia>>2]=-1;a[Y>>0]=(c[L>>2]|0)!=0;c[S>>2]=c[c[E>>2]>>2];c[ka>>2]=Pw(c[E>>2]|0)|0;c[w>>2]=b[(c[F>>2]|0)+34>>1];if(!(d[(c[F>>2]|0)+42>>0]&32)){c[da>>2]=0;c[_>>2]=1}else{c[da>>2]=Ej(c[F>>2]|0)|0;c[_>>2]=e[(c[da>>2]|0)+50>>1]}c[T>>2]=0;while(1){if((c[T>>2]|0)>=(c[w>>2]|0))break;a:do if((c[T>>2]|0)!=(b[(c[F>>2]|0)+32>>1]|0)){if((c[s>>2]|0)!=0?(c[(c[s>>2]|0)+(c[T>>2]<<2)>>2]|0)<0:0)break;c[$>>2]=d[(c[(c[F>>2]|0)+4>>2]|0)+((c[T>>2]|0)*24|0)+20>>0];if(c[$>>2]|0){if((d[N>>0]|0)==10){if((c[$>>2]|0)==10)c[$>>2]=2}else c[$>>2]=d[N>>0];if((c[$>>2]|0)==5?(c[(c[(c[F>>2]|0)+4>>2]|0)+((c[T>>2]|0)*24|0)+4>>2]|0)==0:0)c[$>>2]=2;switch(c[$>>2]|0){case 2:{Bx(c[E>>2]|0);break}case 3:case 1:break;case 4:{Rw(c[ka>>2]|0,76,(c[K>>2]|0)+1+(c[T>>2]|0)|0,c[O>>2]|0)|0;break a}default:{c[t>>2]=xz(c[ka>>2]|0,77,(c[K>>2]|0)+1+(c[T>>2]|0)|0)|0;xA(c[E>>2]|0,c[(c[(c[F>>2]|0)+4>>2]|0)+((c[T>>2]|0)*24|0)+4>>2]|0,(c[K>>2]|0)+1+(c[T>>2]|0)|0);Fz(c[ka>>2]|0,c[t>>2]|0);break a}}m=c[S>>2]|0;l=c[(c[(c[F>>2]|0)+4>>2]|0)+((c[T>>2]|0)*24|0)>>2]|0;c[A>>2]=c[c[F>>2]>>2];c[A+4>>2]=l;c[B>>2]=Bh(m,31016,A)|0;Uw(c[ka>>2]|0,20,1299,c[$>>2]|0,(c[K>>2]|0)+1+(c[T>>2]|0)|0,c[B>>2]|0,-1)|0;Fh(c[ka>>2]|0,1)}}while(0);c[T>>2]=(c[T>>2]|0)+1}b:do if((c[(c[F>>2]|0)+24>>2]|0)!=0?(c[(c[S>>2]|0)+24>>2]&8192|0)==0:0){c[x>>2]=c[(c[F>>2]|0)+24>>2];c[(c[E>>2]|0)+100>>2]=(c[K>>2]|0)+1;c[$>>2]=(d[N>>0]|0)!=10?d[N>>0]|0:2;c[T>>2]=0;while(1){if((c[T>>2]|0)>=(c[c[x>>2]>>2]|0))break b;c[y>>2]=c[(c[(c[x>>2]|0)+4>>2]|0)+((c[T>>2]|0)*20|0)>>2];if(!((c[s>>2]|0)!=0?(BE(c[y>>2]|0,c[s>>2]|0,d[M>>0]|0)|0)!=0:0)){c[v>>2]=Cz(c[ka>>2]|0)|0;MA(c[E>>2]|0,c[y>>2]|0,c[v>>2]|0,16);if((c[$>>2]|0)==4)Ez(c[ka>>2]|0,c[O>>2]|0)|0;else{c[C>>2]=c[(c[(c[x>>2]|0)+4>>2]|0)+((c[T>>2]|0)*20|0)+4>>2];if(!(c[C>>2]|0))c[C>>2]=c[c[F>>2]>>2];if((c[$>>2]|0)==5)c[$>>2]=2;bA(c[E>>2]|0,275,c[$>>2]|0,c[C>>2]|0,0,3)}Gz(c[ka>>2]|0,c[v>>2]|0)}c[T>>2]=(c[T>>2]|0)+1}}while(0);if((d[M>>0]|0)!=0&(c[da>>2]|0)==0){c[u>>2]=Cz(c[ka>>2]|0)|0;c[$>>2]=d[(c[F>>2]|0)+43>>0];if((d[N>>0]|0)==10){if((c[$>>2]|0)==10)c[$>>2]=2}else c[$>>2]=d[N>>0];if(a[Y>>0]|0){Vw(c[ka>>2]|0,79,c[K>>2]|0,c[u>>2]|0,c[L>>2]|0)|0;Fh(c[ka>>2]|0,-112)}c:do if((c[$>>2]|0)==5?(d[N>>0]|0)!=5:0){c[ca>>2]=c[(c[F>>2]|0)+8>>2];while(1){if(!(c[ca>>2]|0))break c;if((d[(c[ca>>2]|0)+54>>0]|0)==4)break;if((d[(c[ca>>2]|0)+54>>0]|0)==3)break;c[ca>>2]=c[(c[ca>>2]|0)+20>>2]}c[X>>2]=Yw(c[ka>>2]|0,13)|0}while(0);Vw(c[ka>>2]|0,70,c[I>>2]|0,c[u>>2]|0,c[K>>2]|0)|0;switch(c[$>>2]|0){case 3:case 2:case 1:{D=55;break}case 5:{c[z>>2]=0;if(c[(c[S>>2]|0)+24>>2]&262144)c[z>>2]=sC(c[E>>2]|0,c[F>>2]|0,109,0,0)|0;if((c[z>>2]|0)==0?(DE(c[E>>2]|0,c[F>>2]|0,0,0)|0)==0:0){if(c[(c[F>>2]|0)+8>>2]|0){EE(c[E>>2]|0);GE(c[E>>2]|0,c[F>>2]|0,c[I>>2]|0,c[J>>2]|0,0,-1)}}else{EE(c[E>>2]|0);FE(c[E>>2]|0,c[F>>2]|0,c[z>>2]|0,c[I>>2]|0,c[J>>2]|0,c[K>>2]|0,1,0,5,1,-1)}c[ja>>2]=1;break}case 4:{Ez(c[ka>>2]|0,c[O>>2]|0)|0;break}default:{c[$>>2]=2;D=55}}if((D|0)==55)CE(c[E>>2]|0,c[$>>2]|0,c[F>>2]|0);Gz(c[ka>>2]|0,c[u>>2]|0);if(c[X>>2]|0){c[W>>2]=Yw(c[ka>>2]|0,13)|0;Fz(c[ka>>2]|0,c[X>>2]|0)}}c[Z>>2]=0;c[ca>>2]=c[(c[F>>2]|0)+8>>2];while(1){if(!(c[ca>>2]|0))break;do if(c[(c[H>>2]|0)+(c[Z>>2]<<2)>>2]|0){if(!(d[R>>0]|0)){AC(c[ka>>2]|0,c[F>>2]|0,(c[K>>2]|0)+1|0);a[R>>0]=1}c[V>>2]=(c[J>>2]|0)+(c[Z>>2]|0);c[Q>>2]=Cz(c[ka>>2]|0)|0;if(c[(c[ca>>2]|0)+36>>2]|0){Rw(c[ka>>2]|0,25,0,c[(c[H>>2]|0)+(c[Z>>2]<<2)>>2]|0)|0;c[(c[E>>2]|0)+100>>2]=(c[K>>2]|0)+1;jA(c[E>>2]|0,c[(c[ca>>2]|0)+36>>2]|0,c[Q>>2]|0,16);c[(c[E>>2]|0)+100>>2]=0}c[ga>>2]=kA(c[E>>2]|0,e[(c[ca>>2]|0)+52>>1]|0)|0;c[T>>2]=0;while(1){if((c[T>>2]|0)>=(e[(c[ca>>2]|0)+52>>1]|0))break;c[U>>2]=b[(c[(c[ca>>2]|0)+4>>2]|0)+(c[T>>2]<<1)>>1];do if((c[U>>2]|0)==-2){c[(c[E>>2]|0)+100>>2]=(c[K>>2]|0)+1;sA(c[E>>2]|0,c[(c[(c[(c[ca>>2]|0)+40>>2]|0)+4>>2]|0)+((c[T>>2]|0)*20|0)>>2]|0,(c[ga>>2]|0)+(c[T>>2]|0)|0);c[(c[E>>2]|0)+100>>2]=0}else{if((c[U>>2]|0)!=-1?(c[U>>2]|0)!=(b[(c[F>>2]|0)+32>>1]|0):0)c[la>>2]=(c[U>>2]|0)+(c[K>>2]|0)+1;else{if((c[ia>>2]|0)==((c[ga>>2]|0)+(c[T>>2]|0)|0))break;c[la>>2]=c[K>>2];if(c[(c[ca>>2]|0)+36>>2]|0)s=-1;else s=(c[ga>>2]|0)+(c[T>>2]|0)|0;c[ia>>2]=s}Rw(c[ka>>2]|0,(c[U>>2]|0)<0?32:31,c[la>>2]|0,(c[ga>>2]|0)+(c[T>>2]|0)|0)|0}while(0);c[T>>2]=(c[T>>2]|0)+1}Vw(c[ka>>2]|0,49,c[ga>>2]|0,e[(c[ca>>2]|0)+52>>1]|0,c[(c[H>>2]|0)+(c[Z>>2]<<2)>>2]|0)|0;CA(c[E>>2]|0,c[ga>>2]|0,e[(c[ca>>2]|0)+52>>1]|0);if(((d[Y>>0]|0)!=0?(c[da>>2]|0)==(c[ca>>2]|0):0)?(d[M>>0]|0)==0:0){Gz(c[ka>>2]|0,c[Q>>2]|0);break}c[$>>2]=d[(c[ca>>2]|0)+54>>0];if(!(c[$>>2]|0)){nA(c[E>>2]|0,c[ga>>2]|0,e[(c[ca>>2]|0)+52>>1]|0);Gz(c[ka>>2]|0,c[Q>>2]|0);break}if((d[N>>0]|0)==10){if((c[$>>2]|0)==10)c[$>>2]=2}else c[$>>2]=d[N>>0];Eh(c[ka>>2]|0,67,c[V>>2]|0,c[Q>>2]|0,c[ga>>2]|0,e[(c[ca>>2]|0)+50>>1]|0)|0;if((c[ca>>2]|0)==(c[da>>2]|0))s=c[ga>>2]|0;else s=kA(c[E>>2]|0,c[_>>2]|0)|0;c[ha>>2]=s;d:do if((d[Y>>0]|0)!=0|(c[$>>2]|0)==5){if(!(d[(c[F>>2]|0)+42>>0]&32)){Rw(c[ka>>2]|0,113,c[V>>2]|0,c[ha>>2]|0)|0;if(!(a[Y>>0]|0))break;Vw(c[ka>>2]|0,79,c[ha>>2]|0,c[Q>>2]|0,c[L>>2]|0)|0;Fh(c[ka>>2]|0,-112);break}e:do if((c[ca>>2]|0)!=(c[da>>2]|0)){c[T>>2]=0;while(1){if((c[T>>2]|0)>=(e[(c[da>>2]|0)+50>>1]|0))break e;c[ma>>2]=(uA(c[ca>>2]|0,b[(c[(c[da>>2]|0)+4>>2]|0)+(c[T>>2]<<1)>>1]|0)|0)<<16>>16;Vw(c[ka>>2]|0,47,c[V>>2]|0,c[ma>>2]|0,(c[ha>>2]|0)+(c[T>>2]|0)|0)|0;c[T>>2]=(c[T>>2]|0)+1}}while(0);if(a[Y>>0]|0){D=Bz(c[ka>>2]|0)|0;c[P>>2]=D+(e[(c[da>>2]|0)+50>>1]|0);c[aa>>2]=78;c[fa>>2]=(a[(c[ca>>2]|0)+55>>0]&3|0)==2?c[ga>>2]|0:c[ha>>2]|0;c[T>>2]=0;while(1){if((c[T>>2]|0)>=(e[(c[da>>2]|0)+50>>1]|0))break d;c[ba>>2]=Dz(c[E>>2]|0,c[(c[(c[da>>2]|0)+32>>2]|0)+(c[T>>2]<<2)>>2]|0)|0;c[ma>>2]=b[(c[(c[da>>2]|0)+4>>2]|0)+(c[T>>2]<<1)>>1];if((c[T>>2]|0)==((e[(c[da>>2]|0)+50>>1]|0)-1|0)){c[P>>2]=c[Q>>2];c[aa>>2]=79}Uw(c[ka>>2]|0,c[aa>>2]|0,(c[L>>2]|0)+1+(c[ma>>2]|0)|0,c[P>>2]|0,(c[fa>>2]|0)+(c[T>>2]|0)|0,c[ba>>2]|0,-4)|0;Fh(c[ka>>2]|0,-112);c[T>>2]=(c[T>>2]|0)+1}}}while(0);switch(c[$>>2]|0){case 3:case 2:case 1:{Zz(c[E>>2]|0,c[$>>2]|0,c[ca>>2]|0);break}case 4:{Ez(c[ka>>2]|0,c[O>>2]|0)|0;break}default:{c[ea>>2]=0;EE(c[E>>2]|0);if(c[(c[S>>2]|0)+24>>2]&262144)c[ea>>2]=sC(c[E>>2]|0,c[F>>2]|0,109,0,0)|0;FE(c[E>>2]|0,c[F>>2]|0,c[ea>>2]|0,c[I>>2]|0,c[J>>2]|0,c[ha>>2]|0,c[_>>2]&65535,0,5,((c[ca>>2]|0)==(c[da>>2]|0)?1:0)&255,-1);c[ja>>2]=1}}Gz(c[ka>>2]|0,c[Q>>2]|0);nA(c[E>>2]|0,c[ga>>2]|0,e[(c[ca>>2]|0)+52>>1]|0);if((c[ha>>2]|0)!=(c[ga>>2]|0))nA(c[E>>2]|0,c[ha>>2]|0,c[_>>2]|0)}while(0);c[ca>>2]=c[(c[ca>>2]|0)+20>>2];c[Z>>2]=(c[Z>>2]|0)+1}if(!(c[X>>2]|0)){la=c[ja>>2]|0;ma=c[G>>2]|0;c[ma>>2]=la;i=na;return}Ez(c[ka>>2]|0,(c[X>>2]|0)+1|0)|0;Fz(c[ka>>2]|0,c[W>>2]|0);la=c[ja>>2]|0;ma=c[G>>2]|0;c[ma>>2]=la;i=na;return}function GC(e,f,g,h,j,k){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0;O=i;i=i+112|0;l=O+108|0;m=O+104|0;n=O+100|0;o=O+96|0;p=O+92|0;q=O+88|0;v=O+84|0;D=O+80|0;z=O+76|0;M=O+72|0;C=O+68|0;I=O+64|0;E=O+60|0;t=O+56|0;r=O+52|0;y=O+48|0;x=O+44|0;u=O+40|0;K=O+36|0;A=O+32|0;B=O+28|0;J=O+24|0;L=O+20|0;F=O+16|0;H=O+12|0;s=O+8|0;G=O+4|0;w=O;c[l>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[p>>2]=j;c[q>>2]=k;c[v>>2]=c[c[l>>2]>>2];c[C>>2]=d[(c[l>>2]|0)+442>>0];if(!(c[(c[v>>2]|0)+24>>2]&524288)){i=O;return}c[z>>2]=Dh(c[v>>2]|0,c[(c[m>>2]|0)+64>>2]|0)|0;c[M>>2]=c[(c[(c[v>>2]|0)+16>>2]|0)+(c[z>>2]<<4)>>2];c[D>>2]=c[(c[m>>2]|0)+16>>2];a:while(1){if(!(c[D>>2]|0)){N=39;break}c[E>>2]=0;c[t>>2]=0;c[u>>2]=0;if(!(((c[p>>2]|0)!=0?(Td(c[c[m>>2]>>2]|0,c[(c[D>>2]|0)+8>>2]|0)|0)!=0:0)?(KC(c[m>>2]|0,c[D>>2]|0,c[p>>2]|0,c[q>>2]|0)|0)==0:0))N=7;do if((N|0)==7){N=0;if(a[(c[l>>2]|0)+442>>0]|0)c[I>>2]=pi(c[v>>2]|0,c[(c[D>>2]|0)+8>>2]|0,c[M>>2]|0)|0;else c[I>>2]=zh(c[l>>2]|0,0,c[(c[D>>2]|0)+8>>2]|0,c[M>>2]|0)|0;if((c[I>>2]|0)!=0?(cC(c[l>>2]|0,c[I>>2]|0,c[D>>2]|0,E,t)|0)==0:0){if(c[t>>2]|0)c[r>>2]=c[t>>2];else{c[y>>2]=c[(c[D>>2]|0)+36>>2];c[r>>2]=y}c[x>>2]=0;while(1){if((c[x>>2]|0)>=(c[(c[D>>2]|0)+20>>2]|0))break;if((c[(c[r>>2]|0)+(c[x>>2]<<2)>>2]|0)==(b[(c[m>>2]|0)+32>>1]|0))c[(c[r>>2]|0)+(c[x>>2]<<2)>>2]=-1;if(c[(c[v>>2]|0)+288>>2]|0){if(c[E>>2]|0)j=b[(c[(c[E>>2]|0)+4>>2]|0)+(c[x>>2]<<1)>>1]|0;else j=b[(c[I>>2]|0)+32>>1]|0;c[L>>2]=c[(c[(c[I>>2]|0)+4>>2]|0)+((j<<16>>16)*24|0)>>2];c[J>>2]=Oy(c[l>>2]|0,c[c[I>>2]>>2]|0,c[L>>2]|0,c[z>>2]|0)|0;c[u>>2]=(c[J>>2]|0)==2&1}c[x>>2]=(c[x>>2]|0)+1}yz(c[l>>2]|0,c[z>>2]|0,c[(c[I>>2]|0)+28>>2]|0,0,c[c[I>>2]>>2]|0);g=(c[l>>2]|0)+72|0;c[g>>2]=(c[g>>2]|0)+1;if(c[n>>2]|0)LC(c[l>>2]|0,c[z>>2]|0,c[I>>2]|0,c[E>>2]|0,c[D>>2]|0,c[r>>2]|0,c[n>>2]|0,-1,c[u>>2]|0);if((c[o>>2]|0)!=0?(MC(c[l>>2]|0,c[D>>2]|0)|0)==0:0)LC(c[l>>2]|0,c[z>>2]|0,c[I>>2]|0,c[E>>2]|0,c[D>>2]|0,c[r>>2]|0,c[o>>2]|0,1,c[u>>2]|0);Sf(c[v>>2]|0,c[t>>2]|0);break}if(!(c[C>>2]|0)){N=59;break a}if(d[(c[v>>2]|0)+65>>0]|0){N=59;break a}if(!(c[I>>2]|0)){c[K>>2]=Pw(c[l>>2]|0)|0;g=Bz(c[K>>2]|0)|0;c[A>>2]=g+(c[(c[D>>2]|0)+20>>2]|0)+1;c[x>>2]=0;while(1){if((c[x>>2]|0)>=(c[(c[D>>2]|0)+20>>2]|0))break;c[B>>2]=(c[(c[D>>2]|0)+36+(c[x>>2]<<3)>>2]|0)+(c[n>>2]|0)+1;Rw(c[K>>2]|0,76,c[B>>2]|0,c[A>>2]|0)|0;c[x>>2]=(c[x>>2]|0)+1}Rw(c[K>>2]|0,135,d[(c[D>>2]|0)+24>>0]|0,-1)|0}}while(0);c[D>>2]=c[(c[D>>2]|0)+4>>2]}if((N|0)==39){c[D>>2]=Ex(c[m>>2]|0)|0;b:while(1){if(!(c[D>>2]|0)){N=59;break}c[F>>2]=0;c[s>>2]=0;if(!((c[p>>2]|0)!=0?(NC(c[m>>2]|0,c[D>>2]|0,c[p>>2]|0,c[q>>2]|0)|0)==0:0))N=43;do if((N|0)==43){N=0;if((((a[(c[D>>2]|0)+24>>0]|0)==0?(c[(c[v>>2]|0)+24>>2]&16777216|0)==0:0)?(c[(c[l>>2]|0)+416>>2]|0)==0:0)?(a[(c[l>>2]|0)+20>>0]|0)==0:0)break;if(cC(c[l>>2]|0,c[m>>2]|0,c[D>>2]|0,F,s)|0){if(!(c[C>>2]|0)){N=59;break b}if(d[(c[v>>2]|0)+65>>0]|0){N=59;break b}else break}c[H>>2]=Nv(c[v>>2]|0,0,0,0)|0;if(c[H>>2]|0){c[G>>2]=(c[H>>2]|0)+8;c[(c[G>>2]|0)+16>>2]=c[c[D>>2]>>2];c[(c[G>>2]|0)+8>>2]=c[c[c[D>>2]>>2]>>2];L=(c[(c[G>>2]|0)+16>>2]|0)+36|0;b[L>>1]=(b[L>>1]|0)+1<<16>>16;L=(c[l>>2]|0)+72|0;M=c[L>>2]|0;c[L>>2]=M+1;c[(c[G>>2]|0)+44>>2]=M;if(c[o>>2]|0)OC(c[l>>2]|0,c[H>>2]|0,c[m>>2]|0,c[F>>2]|0,c[D>>2]|0,c[s>>2]|0,c[o>>2]|0,-1);if((c[n>>2]|0)!=0?(c[w>>2]=d[(c[D>>2]|0)+25+((c[p>>2]|0)!=0&1)>>0],OC(c[l>>2]|0,c[H>>2]|0,c[m>>2]|0,c[F>>2]|0,c[D>>2]|0,c[s>>2]|0,c[n>>2]|0,1),((c[w>>2]|0)!=9?(a[(c[D>>2]|0)+24>>0]|0)==0:0)&(c[w>>2]|0)!=7):0)Bx(c[l>>2]|0);c[(c[G>>2]|0)+8>>2]=0;Yu(c[v>>2]|0,c[H>>2]|0)}Sf(c[v>>2]|0,c[s>>2]|0)}while(0);c[D>>2]=c[(c[D>>2]|0)+12>>2]}if((N|0)==59){i=O;return}}else if((N|0)==59){i=O;return}}function HC(e,f,g,h,j,k,l,m,n){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+64|0;o=E+52|0;p=E+48|0;q=E+44|0;r=E+40|0;s=E+36|0;t=E+32|0;u=E+28|0;v=E+24|0;w=E+20|0;D=E+16|0;z=E+12|0;A=E+57|0;B=E+8|0;C=E+4|0;y=E;x=E+56|0;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=j;c[t>>2]=k;c[u>>2]=l;c[v>>2]=m;c[w>>2]=n;a[x>>0]=0;c[D>>2]=Pw(c[o>>2]|0)|0;c[y>>2]=0;c[z>>2]=c[(c[p>>2]|0)+8>>2];while(1){if(!(c[z>>2]|0))break;if(c[(c[t>>2]|0)+(c[y>>2]<<2)>>2]|0){a[x>>0]=1;if(c[(c[z>>2]|0)+36>>2]|0){j=c[D>>2]|0;n=c[(c[t>>2]|0)+(c[y>>2]<<2)>>2]|0;Rw(j,76,n,(Bz(c[D>>2]|0)|0)+2|0)|0}Rw(c[D>>2]|0,110,(c[r>>2]|0)+(c[y>>2]|0)|0,c[(c[t>>2]|0)+(c[y>>2]<<2)>>2]|0)|0;a[A>>0]=0;a[A>>0]=(c[w>>2]|0)!=0?16:0;if((a[(c[z>>2]|0)+55>>0]&3|0)==2?(d[(c[p>>2]|0)+42>>0]&32|0)!=0:0)a[A>>0]=d[A>>0]|1;Fh(c[D>>2]|0,a[A>>0]|0)}c[z>>2]=c[(c[z>>2]|0)+20>>2];c[y>>2]=(c[y>>2]|0)+1}if(d[(c[p>>2]|0)+42>>0]&32){i=E;return}c[B>>2]=(c[s>>2]|0)+1;c[C>>2]=Wz(c[o>>2]|0)|0;Vw(c[D>>2]|0,49,c[B>>2]|0,b[(c[p>>2]|0)+34>>1]|0,c[C>>2]|0)|0;if(!(a[x>>0]|0))AC(c[D>>2]|0,c[p>>2]|0,0);CA(c[o>>2]|0,c[B>>2]|0,b[(c[p>>2]|0)+34>>1]|0);if(a[(c[o>>2]|0)+18>>0]|0)a[A>>0]=0;else{a[A>>0]=1;a[A>>0]=d[A>>0]|((c[u>>2]|0)!=0?4:2)}if(c[v>>2]|0)a[A>>0]=d[A>>0]|8;if(c[w>>2]|0)a[A>>0]=d[A>>0]|16;Vw(c[D>>2]|0,75,c[q>>2]|0,c[C>>2]|0,c[s>>2]|0)|0;if(!(a[(c[o>>2]|0)+18>>0]|0))Ih(c[D>>2]|0,-1,c[c[p>>2]>>2]|0,0);Fh(c[D>>2]|0,a[A>>0]|0);i=E;return}function IC(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!(c[(c[b>>2]|0)+412>>2]|0)){i=d;return}JC(c[b>>2]|0);i=d;return}function JC(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;d=m+28|0;j=m+24|0;l=m+20|0;f=m+16|0;e=m+12|0;k=m+8|0;g=m+4|0;h=m;c[d>>2]=b;c[l>>2]=c[(c[d>>2]|0)+8>>2];c[f>>2]=c[c[d>>2]>>2];c[j>>2]=c[(c[d>>2]|0)+412>>2];while(1){if(!(c[j>>2]|0)){d=5;break}c[k>>2]=(c[(c[f>>2]|0)+16>>2]|0)+(c[(c[j>>2]|0)+8>>2]<<4);c[h>>2]=c[(c[j>>2]|0)+12>>2];c[g>>2]=Wz(c[d>>2]|0)|0;zz(c[d>>2]|0,0,c[(c[j>>2]|0)+8>>2]|0,c[(c[(c[k>>2]|0)+12>>2]|0)+72>>2]|0,55);c[e>>2]=Gh(c[l>>2]|0,5,35196,0)|0;if(!(c[e>>2]|0)){d=5;break}c[(c[e>>2]|0)+4>>2]=(c[h>>2]|0)+1;c[(c[e>>2]|0)+20+8>>2]=(c[h>>2]|0)+1;c[(c[e>>2]|0)+40+4>>2]=(c[h>>2]|0)-1;c[(c[e>>2]|0)+40+12>>2]=c[g>>2];c[(c[e>>2]|0)+60+8>>2]=c[g>>2];c[(c[e>>2]|0)+60+12>>2]=(c[h>>2]|0)+1;a[(c[e>>2]|0)+60+3>>0]=8;_z(c[d>>2]|0,c[g>>2]|0);c[j>>2]=c[c[j>>2]>>2]}if((d|0)==5){i=m;return}}function KC(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;n=o+24|0;g=o+20|0;h=o+16|0;j=o+12|0;k=o+8|0;l=o+4|0;m=o;c[g>>2]=a;c[h>>2]=d;c[j>>2]=e;c[k>>2]=f;c[l>>2]=0;while(1){if((c[l>>2]|0)>=(c[(c[h>>2]|0)+20>>2]|0)){g=8;break}c[m>>2]=c[(c[h>>2]|0)+36+(c[l>>2]<<3)>>2];if((c[(c[j>>2]|0)+(c[m>>2]<<2)>>2]|0)>=0){g=4;break}if((c[k>>2]|0)!=0?(c[m>>2]|0)==(b[(c[g>>2]|0)+32>>1]|0):0){g=6;break}c[l>>2]=(c[l>>2]|0)+1}if((g|0)==4){c[n>>2]=1;n=c[n>>2]|0;i=o;return n|0}else if((g|0)==6){c[n>>2]=1;n=c[n>>2]|0;i=o;return n|0}else if((g|0)==8){c[n>>2]=0;n=c[n>>2]|0;i=o;return n|0}return 0}function fi(d,f,g,h,j,k,l,m,n){d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+64|0;C=D;p=D+56|0;q=D+52|0;r=D+48|0;s=D+44|0;t=D+40|0;u=D+36|0;v=D+32|0;w=D+28|0;x=D+24|0;y=D+20|0;B=D+16|0;A=D+12|0;z=D+8|0;o=D+4|0;c[q>>2]=d;c[r>>2]=f;c[s>>2]=g;c[t>>2]=h;c[u>>2]=j;c[v>>2]=k;c[w>>2]=l;c[x>>2]=m;c[y>>2]=n;do if(c[r>>2]|0){if((c[v>>2]|0)!=0?(c[x>>2]|0)!=0|(c[w>>2]|0)!=0:0)break;if(((c[v>>2]|0)==0&(c[x>>2]|0)!=0^1|(c[w>>2]|0)!=0?!((((c[v>>2]|0)!=0|(c[x>>2]|0)!=0)^1)&(c[w>>2]|0)!=0|(c[s>>2]|0)<-1|(c[s>>2]|0)>127):0)?(f=If(c[r>>2]|0)|0,c[A>>2]=f,255>=(f|0)):0){c[z>>2]=c[t>>2]&2048;c[t>>2]=c[t>>2]&7;do if((c[t>>2]|0)!=4){if((c[t>>2]|0)==5){c[o>>2]=fi(c[q>>2]|0,c[r>>2]|0,c[s>>2]|0,1|c[z>>2],c[u>>2]|0,c[v>>2]|0,c[w>>2]|0,c[x>>2]|0,c[y>>2]|0)|0;if(!(c[o>>2]|0))c[o>>2]=fi(c[q>>2]|0,c[r>>2]|0,c[s>>2]|0,2|c[z>>2],c[u>>2]|0,c[v>>2]|0,c[w>>2]|0,c[x>>2]|0,c[y>>2]|0)|0;if(!(c[o>>2]|0)){c[t>>2]=3;break}c[p>>2]=c[o>>2];C=c[p>>2]|0;i=D;return C|0}}else c[t>>2]=(a[960]|0)==0?3:2;while(0);c[B>>2]=gi(c[q>>2]|0,c[r>>2]|0,c[A>>2]|0,c[s>>2]|0,c[t>>2]&255,0)|0;do if(((c[B>>2]|0)!=0?(e[(c[B>>2]|0)+2>>1]&3|0)==(c[t>>2]|0):0)?(b[c[B>>2]>>1]|0)==(c[s>>2]|0):0){d=c[q>>2]|0;if(!(c[(c[q>>2]|0)+148>>2]|0)){Oh(d);break}hg(d,5,27111,C);c[p>>2]=5;C=c[p>>2]|0;i=D;return C|0}while(0);c[B>>2]=gi(c[q>>2]|0,c[r>>2]|0,c[A>>2]|0,c[s>>2]|0,c[t>>2]&255,1)|0;if(!(c[B>>2]|0)){c[p>>2]=7;C=c[p>>2]|0;i=D;return C|0}bu(c[q>>2]|0,c[B>>2]|0);if(c[y>>2]|0){C=c[y>>2]|0;c[C>>2]=(c[C>>2]|0)+1}c[(c[B>>2]|0)+28>>2]=c[y>>2];b[(c[B>>2]|0)+2>>1]=e[(c[B>>2]|0)+2>>1]&3|c[z>>2];c[(c[B>>2]|0)+12>>2]=(c[v>>2]|0)!=0?c[v>>2]|0:c[w>>2]|0;c[(c[B>>2]|0)+16>>2]=c[x>>2];c[(c[B>>2]|0)+4>>2]=c[u>>2];b[c[B>>2]>>1]=c[s>>2];c[p>>2]=0;C=c[p>>2]|0;i=D;return C|0}}while(0);c[p>>2]=Kf(134386)|0;C=c[p>>2]|0;i=D;return C|0}function gi(e,f,g,h,j,k){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=i;i=i+64|0;l=z+44|0;m=z+40|0;n=z+36|0;o=z+32|0;p=z+28|0;q=z+49|0;r=z+48|0;u=z+24|0;v=z+20|0;s=z+16|0;t=z+12|0;x=z+8|0;w=z+4|0;y=z;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;a[q>>0]=j;a[r>>0]=k;c[v>>2]=0;c[s>>2]=0;c[t>>2]=((d[18477+(d[c[n>>2]>>0]|0)>>0]|0)+(c[o>>2]|0)|0)%23|0;c[u>>2]=Wt((c[m>>2]|0)+340|0,c[t>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;while(1){if(!(c[u>>2]|0))break;c[x>>2]=Xt(c[u>>2]|0,c[p>>2]|0,a[q>>0]|0)|0;if((c[x>>2]|0)>(c[s>>2]|0)){c[v>>2]=c[u>>2];c[s>>2]=c[x>>2]}c[u>>2]=c[(c[u>>2]|0)+8>>2]}a:do if(!(a[r>>0]|0)){if((c[v>>2]|0)!=0?(c[(c[m>>2]|0)+24>>2]&2097152|0)==0:0)break;c[w>>2]=1080;c[s>>2]=0;c[u>>2]=Wt(c[w>>2]|0,c[t>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;while(1){if(!(c[u>>2]|0))break a;c[y>>2]=Xt(c[u>>2]|0,c[p>>2]|0,a[q>>0]|0)|0;if((c[y>>2]|0)>(c[s>>2]|0)){c[v>>2]=c[u>>2];c[s>>2]=c[y>>2]}c[u>>2]=c[(c[u>>2]|0)+8>>2]}}while(0);if((d[r>>0]|0)!=0&(c[s>>2]|0)<6?(f=ph(c[m>>2]|0,32+(c[o>>2]|0)+1|0,0)|0,c[v>>2]=f,(f|0)!=0):0){c[(c[v>>2]|0)+20>>2]=(c[v>>2]|0)+32;b[c[v>>2]>>1]=c[p>>2];b[(c[v>>2]|0)+2>>1]=d[q>>0]|0;iR(c[(c[v>>2]|0)+20>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;a[(c[(c[v>>2]|0)+20>>2]|0)+(c[o>>2]|0)>>0]=0;Yt((c[m>>2]|0)+340|0,c[v>>2]|0)}do if(c[v>>2]|0){if((c[(c[v>>2]|0)+12>>2]|0)==0?(d[r>>0]|0)==0:0)break;c[l>>2]=c[v>>2];f=c[l>>2]|0;i=z;return f|0}while(0);c[l>>2]=0;f=c[l>>2]|0;i=z;return f|0}function hi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+32|0;h=e;g=e+20|0;j=e+8|0;f=e+4|0;c[g>>2]=a;c[e+16>>2]=b;c[e+12>>2]=d;c[j>>2]=c[(c[(c[g>>2]|0)+4>>2]|0)+20>>2];c[h>>2]=c[j>>2];c[f>>2]=Od(27060,h)|0;je(c[g>>2]|0,c[f>>2]|0,-1);Kd(c[f>>2]|0);i=e;return}function ii(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;h=i;i=i+16|0;j=h+12|0;f=h+8|0;g=h+4|0;k=h;c[j>>2]=a;c[f>>2]=b;c[g>>2]=d;c[k>>2]=e;if((c[k>>2]|0)<(c[j>>2]|0)){i=h;return 0}Sj();Bf(c[f>>2]|0,c[g>>2]|0)|0;Tj();i=h;return 0}function ji(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+32|0;d=j+16|0;e=j+12|0;h=j+8|0;g=j+4|0;f=j;c[d>>2]=a;c[e>>2]=b;c[h>>2]=-1;if(!(c[e>>2]|0)){h=c[h>>2]|0;i=j;return h|0}c[f>>2]=If(c[e>>2]|0)|0;c[h>>2]=(c[(c[d>>2]|0)+20>>2]|0)-1;c[g>>2]=(c[(c[d>>2]|0)+16>>2]|0)+(c[h>>2]<<4);while(1){if((c[h>>2]|0)<0){d=7;break}b=c[f>>2]|0;if((b|0)==(If(c[c[g>>2]>>2]|0)|0)?0==(Td(c[c[g>>2]>>2]|0,c[e>>2]|0)|0):0){d=7;break}c[h>>2]=(c[h>>2]|0)+-1;c[g>>2]=(c[g>>2]|0)+-16}if((d|0)==7){h=c[h>>2]|0;i=j;return h|0}return 0}function ki(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;g=p+28|0;h=p+24|0;j=p+20|0;k=p+16|0;l=p+12|0;o=p+8|0;n=p+4|0;m=p;c[g>>2]=a;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;c[o>>2]=0;c[m>>2]=0;c[n>>2]=0;while(1){if(!((c[n>>2]|0)<(c[(c[g>>2]|0)+20>>2]|0)?(c[o>>2]|0)==0:0))break;if(((c[h>>2]|0)==10?1:(c[n>>2]|0)==(c[h>>2]|0))?(c[o>>2]=Ut(c[(c[(c[g>>2]|0)+16>>2]|0)+(c[n>>2]<<4)+4>>2]|0,c[j>>2]|0,c[k>>2]|0,c[l>>2]|0)|0,c[k>>2]=0,c[l>>2]=0,(c[o>>2]|0)==5):0){c[m>>2]=1;c[o>>2]=0}c[n>>2]=(c[n>>2]|0)+1}i=p;return((c[o>>2]|0)==0&(c[m>>2]|0)!=0?5:c[o>>2]|0)|0}function li(b){b=b|0;var e=0,f=0;f=i;i=i+16|0;e=f;c[e>>2]=b;if(!(d[(c[e>>2]|0)+65>>0]|0)){i=f;return}if(c[(c[e>>2]|0)+160>>2]|0){i=f;return}a[(c[e>>2]|0)+65>>0]=0;c[(c[e>>2]|0)+240>>2]=0;b=(c[e>>2]|0)+248|0;c[b>>2]=(c[b>>2]|0)+-1;i=f;return}function mi(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+48|0;p=s;h=s+40|0;j=s+36|0;k=s+32|0;l=s+28|0;m=s+24|0;n=s+20|0;o=s+16|0;g=s+12|0;r=s+8|0;q=s+4|0;c[j>>2]=b;c[k>>2]=d;c[l>>2]=e;c[m>>2]=f;c[r>>2]=0;c[q>>2]=0;c[c[k>>2]>>2]=0;c[o>>2]=Dd()|0;if(c[o>>2]|0){c[h>>2]=c[o>>2];r=c[h>>2]|0;i=s;return r|0}if(!(1<<(c[l>>2]&7)&70)){c[h>>2]=Kf(135519)|0;r=c[h>>2]|0;i=s;return r|0}do if(c[3]|0){if(c[l>>2]&32768){c[g>>2]=0;break}if(c[l>>2]&65536){c[g>>2]=1;break}else{c[g>>2]=c[4];break}}else c[g>>2]=0;while(0);if(!(c[l>>2]&262144)){if(c[57]|0)c[l>>2]=c[l>>2]|131072}else c[l>>2]=c[l>>2]&-131073;c[l>>2]=c[l>>2]&-655129;c[n>>2]=ig(536,0)|0;do if(c[n>>2]|0){if((c[g>>2]|0)!=0?(c[(c[n>>2]|0)+12>>2]=8,(c[(c[n>>2]|0)+12>>2]|0)==0):0){Kd(c[n>>2]|0);c[n>>2]=0;break}c[(c[n>>2]|0)+56>>2]=255;c[(c[n>>2]|0)+20>>2]=2;c[(c[n>>2]|0)+76>>2]=-264537850;c[(c[n>>2]|0)+16>>2]=(c[n>>2]|0)+460;e=(c[n>>2]|0)+88|0;g=1536;d=e+48|0;do{c[e>>2]=c[g>>2];e=e+4|0;g=g+4|0}while((e|0)<(d|0));c[(c[n>>2]|0)+88+44>>2]=0;a[(c[n>>2]|0)+63>>0]=1;a[(c[n>>2]|0)+68>>0]=-1;d=184;b=c[d+4>>2]|0;f=(c[n>>2]|0)+40|0;c[f>>2]=c[d>>2];c[f+4>>2]=b;c[(c[n>>2]|0)+72>>2]=0;c[(c[n>>2]|0)+136>>2]=2147483647;f=(c[n>>2]|0)+24|0;c[f>>2]=c[f>>2]|9437280;uj((c[n>>2]|0)+432|0);uj((c[n>>2]|0)+312|0);ni(c[n>>2]|0,35690,1,0,141,0)|0;ni(c[n>>2]|0,35690,3,0,141,0)|0;ni(c[n>>2]|0,35690,2,0,141,0)|0;ni(c[n>>2]|0,21290,1,0,142,0)|0;ni(c[n>>2]|0,21297,1,1,141,0)|0;if(!(a[(c[n>>2]|0)+65>>0]|0)){f=Mj(c[n>>2]|0,1,35690,0)|0;c[(c[n>>2]|0)+8>>2]=f;
  46. c[(c[n>>2]|0)+48>>2]=c[l>>2];c[o>>2]=Wj(c[m>>2]|0,c[j>>2]|0,l,c[n>>2]|0,r,q)|0;if(c[o>>2]|0){if((c[o>>2]|0)==7)jh(c[n>>2]|0);j=c[n>>2]|0;l=c[o>>2]|0;m=(c[q>>2]|0)!=0?19255:0;c[p>>2]=c[q>>2];hg(j,l,m,p);Kd(c[q>>2]|0);break}c[o>>2]=Xj(c[c[n>>2]>>2]|0,c[r>>2]|0,c[n>>2]|0,(c[(c[n>>2]|0)+16>>2]|0)+4|0,0,c[l>>2]|256)|0;if(c[o>>2]|0){if((c[o>>2]|0)==3082)c[o>>2]=7;jg(c[n>>2]|0,c[o>>2]|0);break}kg(c[(c[(c[n>>2]|0)+16>>2]|0)+4>>2]|0);q=Yj(c[n>>2]|0,c[(c[(c[n>>2]|0)+16>>2]|0)+4>>2]|0)|0;c[(c[(c[n>>2]|0)+16>>2]|0)+12>>2]=q;if(!(a[(c[n>>2]|0)+65>>0]|0))a[(c[n>>2]|0)+62>>0]=a[(c[(c[(c[n>>2]|0)+16>>2]|0)+12>>2]|0)+77>>0]|0;q=Yj(c[n>>2]|0,0)|0;c[(c[(c[n>>2]|0)+16>>2]|0)+16+12>>2]=q;c[c[(c[n>>2]|0)+16>>2]>>2]=21303;a[(c[(c[n>>2]|0)+16>>2]|0)+8>>0]=3;c[(c[(c[n>>2]|0)+16>>2]|0)+16>>2]=19536;a[(c[(c[n>>2]|0)+16>>2]|0)+16+8>>0]=1;c[(c[n>>2]|0)+76>>2]=-1607883113;if(!(a[(c[n>>2]|0)+65>>0]|0)){jg(c[n>>2]|0,0);Zj(c[n>>2]|0);c[o>>2]=Cf(c[n>>2]|0)|0;if((c[o>>2]|0)==0?(_j(c[n>>2]|0),c[o>>2]=Cf(c[n>>2]|0)|0,(c[o>>2]|0)!=0):0)break;if((c[o>>2]|0)==0?(a[(c[n>>2]|0)+65>>0]|0)==0:0)c[o>>2]=$j(c[n>>2]|0)|0;if(c[o>>2]|0)jg(c[n>>2]|0,c[o>>2]|0);ci(c[n>>2]|0,0,c[9]|0,c[10]|0)|0;yf(c[n>>2]|0,1e3)|0}}}while(0);c[o>>2]=Cf(c[n>>2]|0)|0;if((c[o>>2]|0)!=7){if(c[o>>2]|0)c[(c[n>>2]|0)+76>>2]=1266094736}else{rf(c[n>>2]|0)|0;c[n>>2]=0}c[c[k>>2]>>2]=c[n>>2];Kd(c[r>>2]|0);c[h>>2]=c[o>>2]&255;r=c[h>>2]|0;i=s;return r|0}function ni(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=i;i=i+64|0;w=x;k=x+44|0;l=x+40|0;m=x+36|0;n=x+48|0;o=x+32|0;p=x+28|0;q=x+24|0;v=x+20|0;s=x+16|0;r=x+12|0;t=x+8|0;u=x+4|0;c[l>>2]=b;c[m>>2]=e;a[n>>0]=f;c[o>>2]=g;c[p>>2]=h;c[q>>2]=j;c[s>>2]=d[n>>0];if((c[s>>2]|0)==4|(c[s>>2]|0)==8)c[s>>2]=(a[960]|0)==0?3:2;if((c[s>>2]|0)<1|(c[s>>2]|0)>3){c[k>>2]=Kf(135070)|0;w=c[k>>2]|0;i=x;return w|0}c[v>>2]=Mj(c[l>>2]|0,c[s>>2]&255,c[m>>2]|0,0)|0;a:do if((c[v>>2]|0)!=0?(c[(c[v>>2]|0)+12>>2]|0)!=0:0){b=c[l>>2]|0;if(c[(c[l>>2]|0)+148>>2]|0){hg(b,5,21222,w);c[k>>2]=5;w=c[k>>2]|0;i=x;return w|0}Oh(b);if((d[(c[v>>2]|0)+4>>0]&-9|0)==(c[s>>2]|0)){c[r>>2]=nj((c[l>>2]|0)+432|0,c[m>>2]|0)|0;c[t>>2]=0;while(1){if((c[t>>2]|0)>=3)break a;c[u>>2]=(c[r>>2]|0)+((c[t>>2]|0)*20|0);if((d[(c[u>>2]|0)+4>>0]|0)==(d[(c[v>>2]|0)+4>>0]|0)){if(c[(c[u>>2]|0)+16>>2]|0)Qb[c[(c[u>>2]|0)+16>>2]&255](c[(c[u>>2]|0)+8>>2]|0);c[(c[u>>2]|0)+12>>2]=0}c[t>>2]=(c[t>>2]|0)+1}}}while(0);c[v>>2]=Mj(c[l>>2]|0,c[s>>2]&255,c[m>>2]|0,1)|0;if(!(c[v>>2]|0)){c[k>>2]=7;w=c[k>>2]|0;i=x;return w|0}else{c[(c[v>>2]|0)+12>>2]=c[p>>2];c[(c[v>>2]|0)+8>>2]=c[o>>2];c[(c[v>>2]|0)+16>>2]=c[q>>2];a[(c[v>>2]|0)+4>>0]=c[s>>2]|d[n>>0]&8;jg(c[l>>2]|0,0);c[k>>2]=0;w=c[k>>2]|0;i=x;return w|0}return 0}function oi(b,d){b=b|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;f=l+16|0;g=l+12|0;j=l+8|0;k=l+4|0;h=l;c[f>>2]=b;c[g>>2]=d;c[h>>2]=((c[(c[f>>2]|0)+24>>2]&2|0)!=0^1)&1;c[k>>2]=0;a[(c[f>>2]|0)+140+5>>0]=1;a[(c[f>>2]|0)+62>>0]=a[(c[(c[(c[f>>2]|0)+16>>2]|0)+12>>2]|0)+77>>0]|0;c[j>>2]=0;while(1){if(c[k>>2]|0)break;if((c[j>>2]|0)>=(c[(c[f>>2]|0)+20>>2]|0))break;if(!((c[j>>2]|0)==1?1:((e[(c[(c[(c[f>>2]|0)+16>>2]|0)+(c[j>>2]<<4)+12>>2]|0)+78>>1]|0)&1|0)==1)?(c[k>>2]=qj(c[f>>2]|0,c[j>>2]|0,c[g>>2]|0)|0,(c[k>>2]|0)!=0):0)rj(c[f>>2]|0,c[j>>2]|0);c[j>>2]=(c[j>>2]|0)+1}if(((c[k>>2]|0)==0?((e[(c[(c[(c[f>>2]|0)+16>>2]|0)+16+12>>2]|0)+78>>1]|0)&1|0)!=1:0)?(c[k>>2]=qj(c[f>>2]|0,1,c[g>>2]|0)|0,(c[k>>2]|0)!=0):0)rj(c[f>>2]|0,1);a[(c[f>>2]|0)+140+5>>0]=0;if(!((c[k>>2]|0)==0&(c[h>>2]|0)!=0)){k=c[k>>2]|0;i=l;return k|0}sj(c[f>>2]|0);k=c[k>>2]|0;i=l;return k|0}function pi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;e=m+20|0;f=m+16|0;g=m+12|0;k=m+8|0;h=m+4|0;j=m;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[k>>2]=0;c[h>>2]=0;while(1){if((c[h>>2]|0)>=(c[(c[e>>2]|0)+20>>2]|0)){l=7;break}b=c[h>>2]|0;c[j>>2]=(c[h>>2]|0)<2?b^1:b;if(!((c[g>>2]|0)!=0?(Td(c[g>>2]|0,c[(c[(c[e>>2]|0)+16>>2]|0)+(c[j>>2]<<4)>>2]|0)|0)!=0:0))l=5;if((l|0)==5?(l=0,c[k>>2]=nj((c[(c[(c[e>>2]|0)+16>>2]|0)+(c[j>>2]<<4)+12>>2]|0)+8|0,c[f>>2]|0)|0,(c[k>>2]|0)!=0):0){l=7;break}c[h>>2]=(c[h>>2]|0)+1}if((l|0)==7){i=m;return c[k>>2]|0}return 0}function qi(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[d>>2]=a;do if(Td(c[d>>2]|0,20751)|0){if(!(Td(c[d>>2]|0,20759)|0)){c[b>>2]=1;break}if(!(Td(c[d>>2]|0,20765)|0)){c[b>>2]=1;break}else{c[b>>2]=0;break}}else c[b>>2]=1;while(0);i=e;return c[b>>2]|0}function ri(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;a=Yb[c[(c[f>>2]|0)+60>>2]&255](c[f>>2]|0,c[e>>2]|0)|0;i=d;return a|0}function si(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+12|0;f=h+8|0;d=h+4|0;g=h;c[f>>2]=a;c[d>>2]=b;c[g>>2]=0;while(1){if((c[g>>2]|0)>=(c[(c[f>>2]|0)+20>>2]|0)){d=8;break}if(c[(c[(c[f>>2]|0)+16>>2]|0)+(c[g>>2]<<4)+4>>2]|0){if(!(c[d>>2]|0)){d=6;break}if(!(Td(c[d>>2]|0,c[(c[(c[f>>2]|0)+16>>2]|0)+(c[g>>2]<<4)>>2]|0)|0)){d=6;break}}c[g>>2]=(c[g>>2]|0)+1}if((d|0)==6){c[e>>2]=c[(c[(c[f>>2]|0)+16>>2]|0)+(c[g>>2]<<4)+4>>2];g=c[e>>2]|0;i=h;return g|0}else if((d|0)==8){c[e>>2]=0;g=c[e>>2]|0;i=h;return g|0}return 0}function ti(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c[c[b>>2]>>2]|0}function ui(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=c[d>>2]|0;if(c[(c[d>>2]|0)+216>>2]|0){d=mj(c[a+216>>2]|0)|0;i=b;return d|0}else{d=c[a+68>>2]|0;i=b;return d|0}return 0}function vi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;h=e+8|0;g=e+4|0;f=e;c[h>>2]=a;c[g>>2]=b;c[f>>2]=d;d=Ob[c[(c[c[h>>2]>>2]|0)+40>>2]&255](c[h>>2]|0,c[g>>2]|0,c[f>>2]|0)|0;i=e;return d|0}function wi(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;c[d>>2]=c[68];if(!(c[d>>2]|0)){d=0;i=e;return d|0}d=Tb[c[d>>2]&255](c[b>>2]|0)|0;i=e;return d|0}function xi(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=i;i=i+32|0;h=o+24|0;p=o+20|0;j=o+16|0;k=o+12|0;l=o+8|0;n=o+4|0;m=o;c[p>>2]=a;c[j>>2]=d;c[k>>2]=f;c[l>>2]=g;c[n>>2]=0;c[m>>2]=c[(c[p>>2]|0)+4>>2];kg(c[p>>2]|0);if((e[(c[m>>2]|0)+22>>1]|0)&2){c[h>>2]=8;p=c[h>>2]|0;i=o;return p|0}if((c[k>>2]|0)<0)c[k>>2]=(c[(c[m>>2]|0)+32>>2]|0)-(c[(c[m>>2]|0)+36>>2]|0);if((c[j>>2]|0)>=512&(c[j>>2]|0)<=65536?((c[j>>2]|0)-1&c[j>>2]|0)==0:0){c[(c[m>>2]|0)+32>>2]=c[j>>2];Pi(c[m>>2]|0)}c[n>>2]=Qi(c[c[m>>2]>>2]|0,(c[m>>2]|0)+32|0,c[k>>2]|0)|0;c[(c[m>>2]|0)+36>>2]=(c[(c[m>>2]|0)+32>>2]|0)-(c[k>>2]&65535);if(c[l>>2]|0){p=(c[m>>2]|0)+22|0;b[p>>1]=e[p>>1]|0|2}c[h>>2]=c[n>>2];p=c[h>>2]|0;i=o;return p|0}function yi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+16|0;g=e+8|0;f=e+4|0;d=e;c[g>>2]=a;c[f>>2]=b;c[d>>2]=27;Oi(c[g>>2]|0,c[f>>2]|0,d)|0;i=e;return c[d>>2]|0}function zi(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;Mi(8,c[b>>2]|0);if((c[76]|0)!=0?(c[51]|0)>=(c[b>>2]|0):0){c[d>>2]=c[75];c[75]=c[c[75]>>2];c[76]=(c[76]|0)+-1;Ni(3,1);d=c[d>>2]|0;i=e;return d|0}a=c[b>>2]|0;c[d>>2]=_f(a,((a|0)<0)<<31>>31)|0;if(!((c[2]|0)!=0&(c[d>>2]|0)!=0)){d=c[d>>2]|0;i=e;return d|0}Ni(4,$f(c[d>>2]|0)|0);d=c[d>>2]|0;i=e;return d|0}function Ai(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;b=f+8|0;e=f+4|0;d=f;c[b>>2]=a;if(!(c[b>>2]|0)){i=f;return}if((c[b>>2]|0)>>>0>=(c[50]|0)>>>0?(c[b>>2]|0)>>>0<(c[74]|0)>>>0:0){c[e>>2]=c[b>>2];c[c[e>>2]>>2]=c[75];c[75]=c[e>>2];c[76]=(c[76]|0)+1;ag(3,1);i=f;return}if(c[2]|0){c[d>>2]=$f(c[b>>2]|0)|0;ag(4,c[d>>2]|0);ag(0,c[d>>2]|0);ag(9,1);Qb[c[48>>2]&255](c[b>>2]|0);i=f;return}else{Qb[c[48>>2]&255](c[b>>2]|0);i=f;return}}function Bi(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;g=e;f=e+4|0;c[g>>2]=b;a[f>>0]=d;b=((Ji(c[g>>2]|0,1,a[f>>0]|0)|0)&255|0)!=0&255;i=e;return b|0}function Ci(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;l=m+24|0;f=m+20|0;g=m+16|0;k=m;h=m+12|0;j=m+8|0;c[f>>2]=b;c[g>>2]=e;do if((a[c[f>>2]>>0]|0)==48){if((a[(c[f>>2]|0)+1>>0]|0)!=120?(a[(c[f>>2]|0)+1>>0]|0)!=88:0)break;if(d[19267+(d[(c[f>>2]|0)+2>>0]|0)>>0]&8){b=k;c[b>>2]=0;c[b+4>>2]=0;c[h>>2]=2;while(1){e=c[h>>2]|0;if((a[(c[f>>2]|0)+(c[h>>2]|0)>>0]|0)!=48)break;c[h>>2]=e+1}c[j>>2]=e;while(1){if(!(d[19267+(d[(c[f>>2]|0)+(c[j>>2]|0)>>0]|0)>>0]&8))break;b=k;b=rR(c[b>>2]|0,c[b+4>>2]|0,16,0)|0;e=C;e=gR(b|0,e|0,(Gi(a[(c[f>>2]|0)+(c[j>>2]|0)>>0]|0)|0)&255|0,0)|0;b=k;c[b>>2]=e;c[b+4>>2]=C;c[j>>2]=(c[j>>2]|0)+1}g=c[g>>2]|0;c[g>>2]=c[k>>2];c[g+4>>2]=c[k+4>>2];if(!(a[(c[f>>2]|0)+(c[j>>2]|0)>>0]|0))e=((c[j>>2]|0)-(c[h>>2]|0)|0)<=16;else e=0;c[l>>2]=e?0:1;l=c[l>>2]|0;i=m;return l|0}}while(0);j=c[f>>2]|0;k=c[g>>2]|0;c[l>>2]=Hi(j,k,If(c[f>>2]|0)|0,1)|0;l=c[l>>2]|0;i=m;return l|0}function Di(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=Fi(c[c[(c[d>>2]|0)+4>>2]>>2]|0,1)|0;i=b;return a|0}function Ei(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return((e[(c[(c[b>>2]|0)+4>>2]|0)+22>>1]|0)&1|0)!=0|0}function Fi(a,b){a=a|0;b=b|0;var e=0,f=0,g=0;f=i;i=i+16|0;e=f+4|0;g=f;c[e>>2]=a;c[g>>2]=b;if((c[g>>2]|0)!=0?(d[(c[e>>2]|0)+16>>0]|0|0)!=0:0){g=19266;i=f;return g|0}g=c[(c[e>>2]|0)+176>>2]|0;i=f;return g|0}function Gi(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;c[b>>2]=(c[b>>2]|0)+((1&c[b>>2]>>6)*9|0);i=d;return c[b>>2]&15|0}function Hi(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=i;i=i+64|0;l=w+48|0;m=w+44|0;n=w+40|0;h=w+36|0;j=w+52|0;q=w+32|0;k=w;r=w+28|0;p=w+24|0;o=w+20|0;s=w+16|0;u=w+12|0;t=w+8|0;c[m>>2]=b;c[n>>2]=e;c[h>>2]=f;a[j>>0]=g;b=k;c[b>>2]=0;c[b+4>>2]=0;c[r>>2]=0;c[o>>2]=0;c[s>>2]=0;c[t>>2]=(c[m>>2]|0)+(c[h>>2]|0);if((d[j>>0]|0)==1)c[q>>2]=1;else{c[q>>2]=2;c[p>>2]=3-(d[j>>0]|0);while(1){if((c[p>>2]|0)>=(c[h>>2]|0))break;if(a[(c[m>>2]|0)+(c[p>>2]|0)>>0]|0)break;c[p>>2]=(c[p>>2]|0)+2}c[s>>2]=(c[p>>2]|0)<(c[h>>2]|0)&1;c[t>>2]=(c[m>>2]|0)+(c[p>>2]|0)+(d[j>>0]|0)+-3;c[m>>2]=(c[m>>2]|0)+(d[j>>0]&1)}while(1){if((c[m>>2]|0)>>>0>=(c[t>>2]|0)>>>0)break;if(!(d[19267+(d[c[m>>2]>>0]|0)>>0]&1))break;c[m>>2]=(c[m>>2]|0)+(c[q>>2]|0)}do if((c[m>>2]|0)>>>0<(c[t>>2]|0)>>>0){if((a[c[m>>2]>>0]|0)==45){c[r>>2]=1;c[m>>2]=(c[m>>2]|0)+(c[q>>2]|0);break}if((a[c[m>>2]>>0]|0)==43)c[m>>2]=(c[m>>2]|0)+(c[q>>2]|0)}while(0);c[u>>2]=c[m>>2];while(1){if((c[m>>2]|0)>>>0>=(c[t>>2]|0)>>>0)break;if((a[c[m>>2]>>0]|0)!=48)break;c[m>>2]=(c[m>>2]|0)+(c[q>>2]|0)}c[p>>2]=0;while(1){if(((c[m>>2]|0)+(c[p>>2]|0)|0)>>>0<(c[t>>2]|0)>>>0?(b=a[(c[m>>2]|0)+(c[p>>2]|0)>>0]|0,c[o>>2]=b,(b|0)>=48):0)h=(c[o>>2]|0)<=57;else h=0;g=k;j=c[g>>2]|0;g=c[g+4>>2]|0;if(!h)break;b=rR(j|0,g|0,10,0)|0;e=c[o>>2]|0;e=gR(b|0,C|0,e|0,((e|0)<0)<<31>>31|0)|0;e=fR(e|0,C|0,48,0)|0;b=k;c[b>>2]=e;c[b+4>>2]=C;c[p>>2]=(c[p>>2]|0)+(c[q>>2]|0)}f=(c[r>>2]|0)!=0;do if(!(g>>>0>2147483647|(g|0)==2147483647&j>>>0>4294967295)){j=k;h=c[j>>2]|0;j=c[j+4>>2]|0;if(f){k=fR(0,0,h|0,j|0)|0;n=c[n>>2]|0;c[n>>2]=k;c[n+4>>2]=C;break}else{n=c[n>>2]|0;c[n>>2]=h;c[n+4>>2]=j;break}}else{n=c[n>>2]|0;c[n>>2]=f?0:-1;c[n+4>>2]=f?-2147483648:2147483647}while(0);if(!((c[o>>2]|0)!=0?((c[m>>2]|0)+(c[p>>2]|0)|0)>>>0<(c[t>>2]|0)>>>0:0))v=33;do if((v|0)==33){if((c[p>>2]|0)==0?(c[u>>2]|0)==(c[m>>2]|0):0)break;if(!((c[s>>2]|0)!=0?1:(c[p>>2]|0)>((c[q>>2]|0)*19|0))){if((c[p>>2]|0)<((c[q>>2]|0)*19|0)){c[l>>2]=0;v=c[l>>2]|0;i=w;return v|0}c[o>>2]=Ii(c[m>>2]|0,c[q>>2]|0)|0;if((c[o>>2]|0)<0){c[l>>2]=0;v=c[l>>2]|0;i=w;return v|0}if((c[o>>2]|0)>0){c[l>>2]=1;v=c[l>>2]|0;i=w;return v|0}else{c[l>>2]=(c[r>>2]|0)!=0?0:2;v=c[l>>2]|0;i=w;return v|0}}}while(0);c[l>>2]=1;v=c[l>>2]|0;i=w;return v|0}function Ii(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+16|0;f=k+12|0;g=k+8|0;h=k+4|0;j=k;c[e>>2]=b;c[f>>2]=d;c[g>>2]=0;c[j>>2]=19631;c[h>>2]=0;while(1){if(!((c[g>>2]|0)==0?(c[h>>2]|0)<18:0))break;b=_(c[h>>2]|0,c[f>>2]|0)|0;c[g>>2]=((a[(c[e>>2]|0)+b>>0]|0)-(a[(c[j>>2]|0)+(c[h>>2]|0)>>0]|0)|0)*10;c[h>>2]=(c[h>>2]|0)+1}if(c[g>>2]|0){b=c[g>>2]|0;i=k;return b|0}c[g>>2]=(a[(c[e>>2]|0)+((c[f>>2]|0)*18|0)>>0]|0)-56;b=c[g>>2]|0;i=k;return b|0}function Ji(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;k=n+17|0;g=n+12|0;h=n+8|0;l=n+16|0;m=n+4|0;j=n;c[g>>2]=b;c[h>>2]=e;a[l>>0]=f;f=c[g>>2]|0;if((d[19267+(d[c[g>>2]>>0]|0)>>0]|0)&4){a[k>>0]=Ki(f)|0;m=a[k>>0]|0;i=n;return m|0}c[j>>2]=If(f)|0;c[m>>2]=0;while(1){if((c[m>>2]|0)>=8){f=11;break}if((d[19650+(c[m>>2]|0)>>0]|0|0)==(c[j>>2]|0)?(zd(19666+(d[19658+(c[m>>2]|0)>>0]|0)|0,c[g>>2]|0,c[j>>2]|0)|0)==0:0){if(!(c[h>>2]|0)){f=9;break}if((d[19691+(c[m>>2]|0)>>0]|0|0)<=1){f=9;break}}c[m>>2]=(c[m>>2]|0)+1}if((f|0)==9){a[k>>0]=a[19691+(c[m>>2]|0)>>0]|0;m=a[k>>0]|0;i=n;return m|0}else if((f|0)==11){a[k>>0]=a[l>>0]|0;m=a[k>>0]|0;i=n;return m|0}return 0}function Ki(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;c[d>>2]=0;if(c[b>>2]|0)Li(c[b>>2]|0,d)|0;i=e;return c[d>>2]|0}function Li(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+48|0;j=o+32|0;k=o+28|0;l=o+24|0;h=o;m=o+20|0;f=o+16|0;g=o+12|0;n=o+8|0;c[k>>2]=b;c[l>>2]=e;b=h;c[b>>2]=0;c[b+4>>2]=0;c[g>>2]=0;do if((a[c[k>>2]>>0]|0)!=45){e=c[k>>2]|0;if((a[c[k>>2]>>0]|0)==43){c[k>>2]=e+1;break}if((a[e>>0]|0)==48){if((a[(c[k>>2]|0)+1>>0]|0)!=120?(a[(c[k>>2]|0)+1>>0]|0)!=88:0)break;if(d[19267+(d[(c[k>>2]|0)+2>>0]|0)>>0]&8){c[n>>2]=0;c[k>>2]=(c[k>>2]|0)+2;while(1){if((a[c[k>>2]>>0]|0)!=48)break;c[k>>2]=(c[k>>2]|0)+1}c[m>>2]=0;while(1){e=c[n>>2]|0;if(!((d[19267+(d[(c[k>>2]|0)+(c[m>>2]|0)>>0]|0)>>0]&8|0)!=0?(c[m>>2]|0)<8:0))break;c[n>>2]=(e<<4)+((Gi(a[(c[k>>2]|0)+(c[m>>2]|0)>>0]|0)|0)&255);c[m>>2]=(c[m>>2]|0)+1}if((e&-2147483648|0)==0?(d[19267+(d[(c[k>>2]|0)+(c[m>>2]|0)>>0]|0)>>0]&8|0)==0:0){c[c[l>>2]>>2]=c[n>>2];c[j>>2]=1;n=c[j>>2]|0;i=o;return n|0}c[j>>2]=0;n=c[j>>2]|0;i=o;return n|0}}}else{c[g>>2]=1;c[k>>2]=(c[k>>2]|0)+1}while(0);while(1){if((a[c[k>>2]>>0]|0)!=48)break;c[k>>2]=(c[k>>2]|0)+1}c[m>>2]=0;while(1){if((c[m>>2]|0)>=11)break;n=(a[(c[k>>2]|0)+(c[m>>2]|0)>>0]|0)-48|0;c[f>>2]=n;if(!((n|0)>=0&(c[f>>2]|0)<=9))break;n=h;n=rR(c[n>>2]|0,c[n+4>>2]|0,10,0)|0;b=c[f>>2]|0;b=gR(n|0,C|0,b|0,((b|0)<0)<<31>>31|0)|0;n=h;c[n>>2]=b;c[n+4>>2]=C;c[m>>2]=(c[m>>2]|0)+1}if((c[m>>2]|0)>10){c[j>>2]=0;n=c[j>>2]|0;i=o;return n|0}m=h;n=c[g>>2]|0;n=fR(c[m>>2]|0,c[m+4>>2]|0,n|0,((n|0)<0)<<31>>31|0)|0;m=C;if((m|0)>0|(m|0)==0&n>>>0>2147483647){c[j>>2]=0;n=c[j>>2]|0;i=o;return n|0}if(c[g>>2]|0){m=h;m=fR(0,0,c[m>>2]|0,c[m+4>>2]|0)|0;n=h;c[n>>2]=m;c[n+4>>2]=C}c[c[l>>2]>>2]=c[h>>2];c[j>>2]=1;n=c[j>>2]|0;i=o;return n|0}function Mi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=i;i=i+16|0;d=f+8|0;g=f+4|0;e=f;c[d>>2]=a;c[g>>2]=b;c[e>>2]=c[g>>2];if((c[e>>2]|0)>>>0<=(c[1036+(c[d>>2]<<2)>>2]|0)>>>0){i=f;return}c[1036+(c[d>>2]<<2)>>2]=c[e>>2];i=f;return}function Ni(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=i;i=i+16|0;d=e+4|0;f=e;c[d>>2]=a;c[f>>2]=b;a=996+(c[d>>2]<<2)|0;c[a>>2]=(c[a>>2]|0)+(c[f>>2]|0);if((c[996+(c[d>>2]<<2)>>2]|0)>>>0<=(c[1036+(c[d>>2]<<2)>>2]|0)>>>0){i=e;return}c[1036+(c[d>>2]<<2)>>2]=c[996+(c[d>>2]<<2)>>2];i=e;return}function Oi(b,f,g){b=b|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;h=p+20|0;j=p+16|0;k=p+12|0;l=p+8|0;m=p+4|0;n=p;c[h>>2]=b;c[j>>2]=f;c[k>>2]=g;if((c[j>>2]|0)<2){o=c[j>>2]|0;i=p;return o|0}c[l>>2]=(d[18477+(d[c[h>>2]>>0]|0)>>0]<<2^(d[18477+(d[(c[h>>2]|0)+((c[j>>2]|0)-1)>>0]|0)>>0]|0)*3^c[j>>2]|0)%127|0;c[l>>2]=(d[19699+(c[l>>2]|0)>>0]|0)-1;while(1){if((c[l>>2]|0)<0){o=13;break}if((d[19826+(c[l>>2]|0)>>0]|0)==(c[j>>2]|0)){c[m>>2]=0;c[n>>2]=19950+(e[10628+(c[l>>2]<<1)>>1]|0);while(1){if((c[m>>2]|0)<(c[j>>2]|0))g=(a[(c[h>>2]|0)+(c[m>>2]|0)>>0]&-33|0)==(a[(c[n>>2]|0)+(c[m>>2]|0)>>0]|0);else g=0;f=c[m>>2]|0;if(!g)break;c[m>>2]=f+1}if((f|0)>=(c[j>>2]|0))break}c[l>>2]=(d[20627+(c[l>>2]|0)>>0]|0)-1}if((o|0)==13){o=c[j>>2]|0;i=p;return o|0}c[c[k>>2]>>2]=d[20503+(c[l>>2]|0)>>0];o=c[j>>2]|0;i=p;return o|0}function Pi(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!(c[(c[b>>2]|0)+80>>2]|0)){i=d;return}a=(c[b>>2]|0)+80|0;c[a>>2]=(c[a>>2]|0)+-4;Wi(c[(c[b>>2]|0)+80>>2]|0);c[(c[b>>2]|0)+80>>2]=0;i=d;return}function Qi(a,e,f){a=a|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;g=p+28|0;h=p+24|0;j=p+20|0;n=p+16|0;m=p+12|0;l=p+8|0;k=p;c[g>>2]=a;c[h>>2]=e;c[j>>2]=f;c[n>>2]=0;c[m>>2]=c[c[h>>2]>>2];if(!((d[(c[g>>2]|0)+16>>0]|0)!=0?(c[(c[g>>2]|0)+28>>2]|0)!=0:0))o=3;do if(((o|0)==3?(o=(Ri(c[(c[g>>2]|0)+212>>2]|0)|0)==0,o&(c[m>>2]|0)!=0):0)?(c[m>>2]|0)!=(c[(c[g>>2]|0)+160>>2]|0):0){c[l>>2]=0;o=k;c[o>>2]=0;c[o+4>>2]=0;if((d[(c[g>>2]|0)+17>>0]|0)>0?(c[c[(c[g>>2]|0)+64>>2]>>2]|0)!=0:0)c[n>>2]=Si(c[(c[g>>2]|0)+64>>2]|0,k)|0;if((c[n>>2]|0)==0?(c[l>>2]=Ti(c[m>>2]|0)|0,(c[l>>2]|0)==0):0)c[n>>2]=7;if(!(c[n>>2]|0)){Ui(c[g>>2]|0);c[n>>2]=Vi(c[(c[g>>2]|0)+212>>2]|0,c[m>>2]|0)|0}if(!(c[n>>2]|0)){Wi(c[(c[g>>2]|0)+208>>2]|0);c[(c[g>>2]|0)+208>>2]=c[l>>2];o=k;o=gR(c[o>>2]|0,c[o+4>>2]|0,c[m>>2]|0,0)|0;o=fR(o|0,C|0,1,0)|0;o=pR(o|0,C|0,c[m>>2]|0,0)|0;c[(c[g>>2]|0)+28>>2]=o;c[(c[g>>2]|0)+160>>2]=c[m>>2];break}else{Wi(c[l>>2]|0);break}}while(0);c[c[h>>2]>>2]=c[(c[g>>2]|0)+160>>2];if(c[n>>2]|0){o=c[n>>2]|0;i=p;return o|0}if((c[j>>2]|0)<0)c[j>>2]=b[(c[g>>2]|0)+150>>1];b[(c[g>>2]|0)+150>>1]=c[j>>2];Xi(c[g>>2]|0);o=c[n>>2]|0;i=p;return o|0}function Ri(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c[(c[b>>2]|0)+12>>2]|0}function Si(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;b=Yb[c[(c[c[f>>2]>>2]|0)+24>>2]&255](c[f>>2]|0,c[e>>2]|0)|0;i=d;return b|0}function Ti(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=ej(c[d>>2]|0)|0;i=b;return a|0}function Ui(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=(c[d>>2]|0)+108|0;c[a>>2]=(c[a>>2]|0)+1;_i(c[(c[d>>2]|0)+96>>2]|0);$i(c[(c[d>>2]|0)+212>>2]|0);i=b;return}function Vi(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0;j=i;i=i+16|0;e=j+12|0;f=j+8|0;g=j+4|0;h=j;c[f>>2]=a;c[g>>2]=b;if(c[(c[f>>2]|0)+24>>2]|0){c[h>>2]=Ob[c[128>>2]&255](c[g>>2]|0,(c[(c[f>>2]|0)+28>>2]|0)+40|0,d[(c[f>>2]|0)+32>>0]|0)|0;if(!(c[h>>2]|0)){c[e>>2]=7;b=c[e>>2]|0;i=j;return b|0}k=c[33]|0;a=c[h>>2]|0;b=Zi(c[f>>2]|0)|0;Rb[k&255](a,b);if(c[(c[f>>2]|0)+44>>2]|0)Qb[c[156>>2]&255](c[(c[f>>2]|0)+44>>2]|0);c[(c[f>>2]|0)+44>>2]=c[h>>2];c[(c[f>>2]|0)+24>>2]=c[g>>2]}c[e>>2]=0;k=c[e>>2]|0;i=j;return k|0}function Wi(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;Yi(c[d>>2]|0);i=b;return}function Xi(a){a=a|0;var b=0;b=i;i=i+16|0;c[b>>2]=a;i=b;return}function Yi(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;b=f+8|0;d=f+4|0;e=f;c[b>>2]=a;c[d>>2]=0;if(!(c[b>>2]|0)){i=f;return}if((c[b>>2]|0)>>>0>=(c[415]|0)>>>0?(c[b>>2]|0)>>>0<(c[416]|0)>>>0:0){ag(1,1);c[e>>2]=c[b>>2];c[c[e>>2]>>2]=c[418];c[418]=c[e>>2];c[419]=(c[419]|0)+1;c[420]=(c[419]|0)<(c[414]|0)&1;i=f;return}c[d>>2]=$f(c[b>>2]|0)|0;ag(2,c[d>>2]|0);Kd(c[b>>2]|0);i=f;return}function Zi(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[d>>2]=a;a=c[(c[d>>2]|0)+16>>2]|0;if((c[(c[d>>2]|0)+16>>2]|0)>=0){c[b>>2]=a;d=c[b>>2]|0;i=e;return d|0}else{a=rR(-1024,-1,a|0,((a|0)<0)<<31>>31|0)|0;d=(c[(c[d>>2]|0)+24>>2]|0)+(c[(c[d>>2]|0)+28>>2]|0)|0;d=pR(a|0,C|0,d|0,((d|0)<0)<<31>>31|0)|0;c[b>>2]=d;d=c[b>>2]|0;i=e;return d|0}return 0}function _i(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;c[b>>2]=c[e>>2];while(1){if(!(c[b>>2]|0))break;c[(c[b>>2]|0)+16>>2]=1;c[b>>2]=c[(c[b>>2]|0)+44>>2]}i=d;return}function $i(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;aj(c[d>>2]|0,0);i=b;return}function aj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+32|0;d=j+16|0;e=j+12|0;f=j+8|0;g=j+4|0;h=j;c[d>>2]=a;c[e>>2]=b;if(!(c[(c[d>>2]|0)+44>>2]|0)){i=j;return}c[f>>2]=c[c[d>>2]>>2];while(1){if(!(c[f>>2]|0))break;c[g>>2]=c[(c[f>>2]|0)+32>>2];if((c[(c[f>>2]|0)+20>>2]|0)>>>0>(c[e>>2]|0)>>>0)bj(c[f>>2]|0);c[f>>2]=c[g>>2]}if(((c[e>>2]|0)==0?(c[(c[d>>2]|0)+12>>2]|0)!=0:0)?(c[h>>2]=Ob[c[140>>2]&255](c[(c[d>>2]|0)+44>>2]|0,1,0)|0,(c[h>>2]|0)!=0):0){kR(c[c[h>>2]>>2]|0,0,c[(c[d>>2]|0)+24>>2]|0)|0;c[e>>2]=1}Rb[c[152>>2]&255](c[(c[d>>2]|0)+44>>2]|0,(c[e>>2]|0)+1|0);i=j;return}function bj(a){a=a|0;var d=0,f=0;f=i;i=i+16|0;d=f;c[d>>2]=a;if(!(e[(c[d>>2]|0)+24>>1]&2)){i=f;return}cj(c[d>>2]|0,1);a=(c[d>>2]|0)+24|0;b[a>>1]=e[a>>1]&-15;a=(c[d>>2]|0)+24|0;b[a>>1]=e[a>>1]|1;if(b[(c[d>>2]|0)+26>>1]|0){i=f;return}dj(c[d>>2]|0);i=f;return}function cj(b,f){b=b|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;l=i;i=i+16|0;j=l+8|0;h=l+12|0;k=l+4|0;g=l;c[j>>2]=b;a[h>>0]=f;c[k>>2]=c[(c[j>>2]|0)+28>>2];if(d[h>>0]&1){if((c[(c[k>>2]|0)+8>>2]|0)==(c[j>>2]|0)){c[g>>2]=c[(c[j>>2]|0)+36>>2];while(1){if(c[g>>2]|0)f=(e[(c[g>>2]|0)+24>>1]&8|0)!=0;else f=0;b=c[g>>2]|0;if(!f)break;c[g>>2]=c[b+36>>2]}c[(c[k>>2]|0)+8>>2]=b}f=c[(c[j>>2]|0)+36>>2]|0;if(c[(c[j>>2]|0)+32>>2]|0)c[(c[(c[j>>2]|0)+32>>2]|0)+36>>2]=f;else c[(c[k>>2]|0)+4>>2]=f;f=c[(c[j>>2]|0)+32>>2]|0;if(!(c[(c[j>>2]|0)+36>>2]|0)){c[c[k>>2]>>2]=f;if((c[c[k>>2]>>2]|0)==0?(d[(c[k>>2]|0)+32>>0]|0)!=0:0)a[(c[k>>2]|0)+33>>0]=2}else c[(c[(c[j>>2]|0)+36>>2]|0)+32>>2]=f;c[(c[j>>2]|0)+32>>2]=0;c[(c[j>>2]|0)+36>>2]=0}if(!(d[h>>0]&2)){i=l;return}c[(c[j>>2]|0)+32>>2]=c[c[k>>2]>>2];f=c[j>>2]|0;if(!(c[(c[j>>2]|0)+32>>2]|0)){c[(c[k>>2]|0)+4>>2]=f;if(a[(c[k>>2]|0)+32>>0]|0)a[(c[k>>2]|0)+33>>0]=1}else c[(c[(c[j>>2]|0)+32>>2]|0)+36>>2]=f;c[c[k>>2]>>2]=c[j>>2];if(c[(c[k>>2]|0)+8>>2]|0){i=l;return}if(e[(c[j>>2]|0)+24>>1]&8){i=l;return}c[(c[k>>2]|0)+8>>2]=c[j>>2];i=l;return}function dj(b){b=b|0;var d=0,e=0;e=i;i=i+16|0;d=e;c[d>>2]=b;if(!(a[(c[(c[d>>2]|0)+28>>2]|0)+32>>0]|0)){i=e;return}Ub[c[144>>2]&255](c[(c[(c[d>>2]|0)+28>>2]|0)+44>>2]|0,c[c[d>>2]>>2]|0,0);i=e;return}function ej(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;b=f+8|0;d=f+4|0;e=f;c[b>>2]=a;c[d>>2]=0;if((c[b>>2]|0)<=(c[412]|0)?(c[d>>2]=c[418],(c[d>>2]|0)!=0):0){c[418]=c[c[418]>>2];c[419]=(c[419]|0)+-1;c[420]=(c[419]|0)<(c[414]|0)&1;Mi(7,c[b>>2]|0);Ni(1,1)}if(c[d>>2]|0){e=c[d>>2]|0;i=f;return e|0}a=c[b>>2]|0;c[d>>2]=_f(a,((a|0)<0)<<31>>31)|0;if(!(c[d>>2]|0)){e=c[d>>2]|0;i=f;return e|0}c[e>>2]=$f(c[d>>2]|0)|0;Mi(7,c[b>>2]|0);Ni(2,c[e>>2]|0);e=c[d>>2]|0;i=f;return e|0}function fj(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;c[d>>2]=ig(512,0)|0;if(!(c[d>>2]|0)){d=c[d>>2]|0;i=e;return d|0}c[c[d>>2]>>2]=c[b>>2];d=c[d>>2]|0;i=e;return d|0}function gj(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;g=p+28|0;h=p+24|0;j=p+20|0;l=p+16|0;f=p+12|0;m=p+8|0;n=p+4|0;k=p;c[h>>2]=b;c[j>>2]=e;if(!(c[h>>2]|0)){c[g>>2]=0;o=c[g>>2]|0;i=p;return o|0}c[j>>2]=(c[j>>2]|0)+-1;while(1){if((c[c[h>>2]>>2]|0)>>>0<=4e3)break;if(!(c[(c[h>>2]|0)+8>>2]|0))break;c[f>>2]=((c[j>>2]|0)>>>0)/((c[(c[h>>2]|0)+8>>2]|0)>>>0)|0;c[j>>2]=((c[j>>2]|0)>>>0)%((c[(c[h>>2]|0)+8>>2]|0)>>>0)|0;if((c[(c[h>>2]|0)+12+(c[f>>2]<<2)>>2]|0)==0?(b=fj(c[(c[h>>2]|0)+8>>2]|0)|0,c[(c[h>>2]|0)+12+(c[f>>2]<<2)>>2]=b,(c[(c[h>>2]|0)+12+(c[f>>2]<<2)>>2]|0)==0):0){o=8;break}c[h>>2]=c[(c[h>>2]|0)+12+(c[f>>2]<<2)>>2]}if((o|0)==8){c[g>>2]=7;o=c[g>>2]|0;i=p;return o|0}f=c[j>>2]|0;if((c[c[h>>2]>>2]|0)>>>0<=4e3){o=(c[h>>2]|0)+12+(((c[j>>2]|0)>>>0)/8|0)|0;a[o>>0]=d[o>>0]|0|1<<(f&7);c[g>>2]=0;o=c[g>>2]|0;i=p;return o|0}c[j>>2]=f+1;c[l>>2]=(f>>>0)%125|0;a:do if(!(c[(c[h>>2]|0)+12+(c[l>>2]<<2)>>2]|0)){if((c[(c[h>>2]|0)+4>>2]|0)>>>0>=124)o=17}else{while(1){if((c[(c[h>>2]|0)+12+(c[l>>2]<<2)>>2]|0)==(c[j>>2]|0))break;o=(c[l>>2]|0)+1|0;c[l>>2]=o;c[l>>2]=(c[l>>2]|0)>>>0>=125?0:o;if(!(c[(c[h>>2]|0)+12+(c[l>>2]<<2)>>2]|0)){o=17;break a}}c[g>>2]=0;o=c[g>>2]|0;i=p;return o|0}while(0);if((o|0)==17?(c[(c[h>>2]|0)+4>>2]|0)>>>0>=62:0){c[k>>2]=yh(0,500,0)|0;if(!(c[k>>2]|0)){c[g>>2]=7;o=c[g>>2]|0;i=p;return o|0}iR(c[k>>2]|0,(c[h>>2]|0)+12|0,500)|0;kR((c[h>>2]|0)+12|0,0,500)|0;c[(c[h>>2]|0)+8>>2]=(((c[c[h>>2]>>2]|0)+125-1|0)>>>0)/125|0;c[n>>2]=gj(c[h>>2]|0,c[j>>2]|0)|0;c[m>>2]=0;while(1){if((c[m>>2]|0)>>>0>=125)break;if(c[(c[k>>2]|0)+(c[m>>2]<<2)>>2]|0){o=gj(c[h>>2]|0,c[(c[k>>2]|0)+(c[m>>2]<<2)>>2]|0)|0;c[n>>2]=c[n>>2]|o}c[m>>2]=(c[m>>2]|0)+1}Sf(0,c[k>>2]|0);c[g>>2]=c[n>>2];o=c[g>>2]|0;i=p;return o|0}o=(c[h>>2]|0)+4|0;c[o>>2]=(c[o>>2]|0)+1;c[(c[h>>2]|0)+12+(c[l>>2]<<2)>>2]=c[j>>2];c[g>>2]=0;o=c[g>>2]|0;i=p;return o|0}function hj(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;g=p+24|0;h=p+20|0;j=p+16|0;l=p+12|0;n=p+8|0;k=p+4|0;m=p;c[g>>2]=b;c[h>>2]=e;c[j>>2]=f;if(!(c[g>>2]|0)){i=p;return}c[h>>2]=(c[h>>2]|0)+-1;while(1){if(!(c[(c[g>>2]|0)+8>>2]|0))break;c[l>>2]=((c[h>>2]|0)>>>0)/((c[(c[g>>2]|0)+8>>2]|0)>>>0)|0;c[h>>2]=((c[h>>2]|0)>>>0)%((c[(c[g>>2]|0)+8>>2]|0)>>>0)|0;c[g>>2]=c[(c[g>>2]|0)+12+(c[l>>2]<<2)>>2];if(!(c[g>>2]|0)){o=16;break}}if((o|0)==16){i=p;return}if((c[c[g>>2]>>2]|0)>>>0<=4e3){o=(c[g>>2]|0)+12+(((c[h>>2]|0)>>>0)/8|0)|0;a[o>>0]=(d[o>>0]|0)&~(1<<(c[h>>2]&7));i=p;return}c[k>>2]=c[j>>2];iR(c[k>>2]|0,(c[g>>2]|0)+12|0,500)|0;kR((c[g>>2]|0)+12|0,0,500)|0;c[(c[g>>2]|0)+4>>2]=0;c[n>>2]=0;while(1){if((c[n>>2]|0)>>>0>=125)break;if((c[(c[k>>2]|0)+(c[n>>2]<<2)>>2]|0)!=0?(c[(c[k>>2]|0)+(c[n>>2]<<2)>>2]|0)!=((c[h>>2]|0)+1|0):0){c[m>>2]=(((c[(c[k>>2]|0)+(c[n>>2]<<2)>>2]|0)-1|0)>>>0)%125|0;o=(c[g>>2]|0)+4|0;c[o>>2]=(c[o>>2]|0)+1;while(1){if(!(c[(c[g>>2]|0)+12+(c[m>>2]<<2)>>2]|0))break;o=(c[m>>2]|0)+1|0;c[m>>2]=o;c[m>>2]=(c[m>>2]|0)>>>0>=125?0:o}c[(c[g>>2]|0)+12+(c[m>>2]<<2)>>2]=c[(c[k>>2]|0)+(c[n>>2]<<2)>>2]}c[n>>2]=(c[n>>2]|0)+1}i=p;return}function ij(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f+4|0;e=f;c[d>>2]=a;c[e>>2]=b;if(!(c[d>>2]|0)){a=0;a=a&1;i=f;return a|0}a=(lj(c[d>>2]|0,c[e>>2]|0)|0)!=0;a=a&1;i=f;return a|0}function jj(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c[c[b>>2]>>2]|0}function kj(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;if(!(c[b>>2]|0)){i=e;return}a:do if(c[(c[b>>2]|0)+8>>2]|0){c[d>>2]=0;while(1){if((c[d>>2]|0)>>>0>=125)break a;kj(c[(c[b>>2]|0)+12+(c[d>>2]<<2)>>2]|0);c[d>>2]=(c[d>>2]|0)+1}}while(0);Kd(c[b>>2]|0);i=e;return}function lj(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;g=l+16|0;h=l+12|0;j=l+8|0;e=l+4|0;k=l;c[h>>2]=a;c[j>>2]=b;c[j>>2]=(c[j>>2]|0)+-1;if((c[j>>2]|0)>>>0>=(c[c[h>>2]>>2]|0)>>>0){c[g>>2]=0;k=c[g>>2]|0;i=l;return k|0}while(1){if(!(c[(c[h>>2]|0)+8>>2]|0))break;c[e>>2]=((c[j>>2]|0)>>>0)/((c[(c[h>>2]|0)+8>>2]|0)>>>0)|0;c[j>>2]=((c[j>>2]|0)>>>0)%((c[(c[h>>2]|0)+8>>2]|0)>>>0)|0;c[h>>2]=c[(c[h>>2]|0)+12+(c[e>>2]<<2)>>2];if(!(c[h>>2]|0)){f=5;break}}if((f|0)==5){c[g>>2]=0;k=c[g>>2]|0;i=l;return k|0}e=c[j>>2]|0;if((c[c[h>>2]>>2]|0)>>>0<=4e3){c[g>>2]=((d[(c[h>>2]|0)+12+((e>>>0)/8|0)>>0]|0)&1<<(c[j>>2]&7)|0)!=0&1;k=c[g>>2]|0;i=l;return k|0}c[j>>2]=e+1;c[k>>2]=(e>>>0)%125|0;while(1){if(!(c[(c[h>>2]|0)+12+(c[k>>2]<<2)>>2]|0)){f=13;break}if((c[(c[h>>2]|0)+12+(c[k>>2]<<2)>>2]|0)==(c[j>>2]|0)){f=11;break}c[k>>2]=(((c[k>>2]|0)+1|0)>>>0)%125|0}if((f|0)==11){c[g>>2]=1;k=c[g>>2]|0;i=l;return k|0}else if((f|0)==13){c[g>>2]=0;k=c[g>>2]|0;i=l;return k|0}return 0}function mj(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c[(c[b>>2]|0)+8>>2]|0}function nj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+16|0;g=e+12|0;f=e+8|0;d=e+4|0;c[g>>2]=a;c[f>>2]=b;c[d>>2]=oj(c[g>>2]|0,c[f>>2]|0,e)|0;if(!(c[d>>2]|0)){g=0;i=e;return g|0}g=c[(c[d>>2]|0)+8>>2]|0;i=e;return g|0}function oj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;m=n+28|0;e=n+24|0;j=n+20|0;f=n+16|0;l=n+12|0;k=n+8|0;g=n+4|0;h=n;c[e>>2]=a;c[j>>2]=b;c[f>>2]=d;if(c[(c[e>>2]|0)+12>>2]|0){b=pj(c[j>>2]|0)|0;c[g>>2]=(b>>>0)%((c[c[e>>2]>>2]|0)>>>0)|0;c[h>>2]=(c[(c[e>>2]|0)+12>>2]|0)+(c[g>>2]<<3);c[l>>2]=c[(c[h>>2]|0)+4>>2];c[k>>2]=c[c[h>>2]>>2]}else{c[g>>2]=0;c[l>>2]=c[(c[e>>2]|0)+8>>2];c[k>>2]=c[(c[e>>2]|0)+4>>2]}c[c[f>>2]>>2]=c[g>>2];while(1){b=c[k>>2]|0;c[k>>2]=b+-1;if(!b){e=9;break}b=(Td(c[(c[l>>2]|0)+12>>2]|0,c[j>>2]|0)|0)==0;f=c[l>>2]|0;if(b){e=7;break}c[l>>2]=c[f>>2]}if((e|0)==7){c[m>>2]=f;m=c[m>>2]|0;i=n;return m|0}else if((e|0)==9){c[m>>2]=0;m=c[m>>2]|0;i=n;return m|0}return 0}function pj(b){b=b|0;var e=0,f=0,g=0,h=0,j=0;h=i;i=i+16|0;e=h+4|0;g=h;f=h+8|0;c[e>>2]=b;c[g>>2]=0;while(1){j=c[e>>2]|0;c[e>>2]=j+1;j=a[j>>0]|0;a[f>>0]=j;b=c[g>>2]|0;if(!(j&255))break;c[g>>2]=b<<3^c[g>>2]^(d[18477+(d[f>>0]|0)>>0]|0)}i=h;return b|0}function qj(f,g,h){f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;A=i;i=i+128|0;w=A;l=A+108|0;m=A+104|0;n=A+100|0;o=A+96|0;u=A+92|0;j=A+88|0;v=A+84|0;t=A+80|0;B=A+64|0;r=A+40|0;q=A+24|0;y=A+20|0;s=A+16|0;p=A+112|0;z=A+12|0;x=A+8|0;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[s>>2]=0;h=(c[n>>2]|0)==1?20769:20788;c[y>>2]=h;c[B>>2]=h;c[B+4>>2]=20802;c[B+8>>2]=20804;c[B+12>>2]=0;c[q>>2]=c[m>>2];c[q+8>>2]=c[n>>2];c[q+12>>2]=0;c[q+4>>2]=c[o>>2];wj(q,3,B,0)|0;if(!(c[q+12>>2]|0)){c[t>>2]=(c[(c[m>>2]|0)+16>>2]|0)+(c[n>>2]<<4);if(!(c[(c[t>>2]|0)+4>>2]|0)){if((c[n>>2]|0)==1){B=(c[(c[(c[m>>2]|0)+16>>2]|0)+16+12>>2]|0)+78|0;b[B>>1]=e[B>>1]|1}c[l>>2]=0;B=c[l>>2]|0;i=A;return B|0}kg(c[(c[t>>2]|0)+4>>2]|0);do if(!(og(c[(c[t>>2]|0)+4>>2]|0)|0)){c[u>>2]=mg(c[(c[t>>2]|0)+4>>2]|0,0)|0;if(c[u>>2]|0){z=c[o>>2]|0;B=c[m>>2]|0;xj(z,B,ih(c[u>>2]|0)|0);break}else{c[s>>2]=1;k=11;break}}else k=11;while(0);a:do if((k|0)==11){c[j>>2]=0;while(1){if((c[j>>2]|0)>=5)break;ng(c[(c[t>>2]|0)+4>>2]|0,(c[j>>2]|0)+1|0,r+(c[j>>2]<<2)|0);c[j>>2]=(c[j>>2]|0)+1}c[c[(c[t>>2]|0)+12>>2]>>2]=c[r>>2];f=c[n>>2]|0;do if(c[r+16>>2]|0){j=c[r+16>>2]|0;if(!f){B=j&3;a[p>>0]=B;a[p>>0]=(d[p>>0]|0)==0?1:B;a[(c[m>>2]|0)+62>>0]=a[p>>0]|0;break}if((j|0)!=(d[(c[m>>2]|0)+62>>0]|0)){xj(c[o>>2]|0,c[m>>2]|0,20880);c[u>>2]=1;break a}}else{B=(c[(c[(c[m>>2]|0)+16>>2]|0)+(f<<4)+12>>2]|0)+78|0;b[B>>1]=e[B>>1]|4}while(0);a[(c[(c[t>>2]|0)+12>>2]|0)+77>>0]=a[(c[m>>2]|0)+62>>0]|0;if(!(c[(c[(c[t>>2]|0)+12>>2]|0)+80>>2]|0)){B=yj(c[r+8>>2]|0)|0;c[v>>2]=B;c[v>>2]=(c[v>>2]|0)==0?2e3:B;c[(c[(c[t>>2]|0)+12>>2]|0)+80>>2]=c[v>>2];zj(c[(c[t>>2]|0)+4>>2]|0,c[(c[(c[t>>2]|0)+12>>2]|0)+80>>2]|0)|0}a[(c[(c[t>>2]|0)+12>>2]|0)+76>>0]=c[r+4>>2];if(!(d[(c[(c[t>>2]|0)+12>>2]|0)+76>>0]|0))a[(c[(c[t>>2]|0)+12>>2]|0)+76>>0]=1;if((d[(c[(c[t>>2]|0)+12>>2]|0)+76>>0]|0)>4){xj(c[o>>2]|0,c[m>>2]|0,20948);c[u>>2]=1;break}if((c[n>>2]|0)==0?(c[r+4>>2]|0)>=4:0){B=(c[m>>2]|0)+24|0;c[B>>2]=c[B>>2]&-32769}B=c[m>>2]|0;y=c[y>>2]|0;c[w>>2]=c[(c[(c[m>>2]|0)+16>>2]|0)+(c[n>>2]<<4)>>2];c[w+4>>2]=y;c[z>>2]=Bh(B,20972,w)|0;c[x>>2]=c[(c[m>>2]|0)+288>>2];c[(c[m>>2]|0)+288>>2]=0;c[u>>2]=$e(c[m>>2]|0,c[z>>2]|0,140,q,0)|0;c[(c[m>>2]|0)+288>>2]=c[x>>2];if(!(c[u>>2]|0))c[u>>2]=c[q+12>>2];Sf(c[m>>2]|0,c[z>>2]|0);if(!(c[u>>2]|0))Aj(c[m>>2]|0,c[n>>2]|0)|0;if(a[(c[m>>2]|0)+65>>0]|0){c[u>>2]=7;zg(c[m>>2]|0)}if((c[u>>2]|0)!=0?(c[(c[m>>2]|0)+24>>2]&65536|0)==0:0)break;B=(c[(c[(c[m>>2]|0)+16>>2]|0)+(c[n>>2]<<4)+12>>2]|0)+78|0;b[B>>1]=e[B>>1]|1;c[u>>2]=0}while(0);if(c[s>>2]|0)Bj(c[(c[t>>2]|0)+4>>2]|0)|0}else c[u>>2]=c[q+12>>2];if((c[u>>2]|0)==7|(c[u>>2]|0)==3082)jh(c[m>>2]|0);c[l>>2]=c[u>>2];B=c[l>>2]|0;i=A;return B|0}function rj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=i;i=i+16|0;d=f+8|0;g=f+4|0;e=f;c[d>>2]=a;c[g>>2]=b;c[e>>2]=(c[(c[d>>2]|0)+16>>2]|0)+(c[g>>2]<<4);tj(c[(c[e>>2]|0)+12>>2]|0);if((c[g>>2]|0)==1){i=f;return}c[e>>2]=(c[(c[d>>2]|0)+16>>2]|0)+16;tj(c[(c[e>>2]|0)+12>>2]|0);i=f;return}function sj(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=(c[d>>2]|0)+24|0;c[a>>2]=c[a>>2]&-3;i=b;return}function tj(a){a=a|0;var d=0,f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+64|0;l=k+48|0;h=k+32|0;j=k+16|0;d=k+8|0;f=k+4|0;g=k;c[l>>2]=a;c[f>>2]=c[l>>2];a=(c[f>>2]|0)+8|0;c[h>>2]=c[a>>2];c[h+4>>2]=c[a+4>>2];c[h+8>>2]=c[a+8>>2];c[h+12>>2]=c[a+12>>2];a=(c[f>>2]|0)+40|0;c[j>>2]=c[a>>2];c[j+4>>2]=c[a+4>>2];c[j+8>>2]=c[a+8>>2];c[j+12>>2]=c[a+12>>2];uj((c[f>>2]|0)+40|0);vj((c[f>>2]|0)+24|0);c[d>>2]=c[j+8>>2];while(1){if(!(c[d>>2]|0))break;Pf(0,c[(c[d>>2]|0)+8>>2]|0);c[d>>2]=c[c[d>>2]>>2]}vj(j);uj((c[f>>2]|0)+8|0);c[d>>2]=c[h+8>>2];while(1){if(!(c[d>>2]|0))break;c[g>>2]=c[(c[d>>2]|0)+8>>2];Qf(0,c[g>>2]|0);c[d>>2]=c[c[d>>2]>>2]}vj(h);vj((c[f>>2]|0)+56|0);c[(c[f>>2]|0)+72>>2]=0;if(!((e[(c[f>>2]|0)+78>>1]|0)&1)){i=k;return}l=(c[f>>2]|0)+4|0;c[l>>2]=(c[l>>2]|0)+1;l=(c[f>>2]|0)+78|0;b[l>>1]=(e[l>>1]|0)&-2;i=k;return}function uj(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;c[(c[d>>2]|0)+8>>2]=0;c[(c[d>>2]|0)+4>>2]=0;c[c[d>>2]>>2]=0;c[(c[d>>2]|0)+12>>2]=0;i=b;return}function vj(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;b=f+8|0;d=f+4|0;e=f;c[b>>2]=a;c[d>>2]=c[(c[b>>2]|0)+8>>2];c[(c[b>>2]|0)+8>>2]=0;Kd(c[(c[b>>2]|0)+12>>2]|0);c[(c[b>>2]|0)+12>>2]=0;c[c[b>>2]>>2]=0;while(1){if(!(c[d>>2]|0))break;c[e>>2]=c[c[d>>2]>>2];Kd(c[d>>2]|0);c[d>>2]=c[e>>2]}c[(c[b>>2]|0)+4>>2]=0;i=f;return}function wj(d,f,g,h){d=d|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;r=i;i=i+48|0;j=r+40|0;s=r+36|0;k=r+28|0;
  47. n=r+20|0;l=r+16|0;m=r+12|0;q=r+8|0;p=r+4|0;o=r;c[s>>2]=d;c[r+32>>2]=f;c[k>>2]=g;c[r+24>>2]=h;c[n>>2]=c[s>>2];c[l>>2]=c[c[n>>2]>>2];c[m>>2]=c[(c[n>>2]|0)+8>>2];d=(c[(c[(c[l>>2]|0)+16>>2]|0)+(c[m>>2]<<4)+12>>2]|0)+78|0;b[d>>1]=e[d>>1]&-5;if(a[(c[l>>2]|0)+65>>0]|0){Kj(c[n>>2]|0,c[c[k>>2]>>2]|0,0);c[j>>2]=1;s=c[j>>2]|0;i=r;return s|0}if(!(c[k>>2]|0)){c[j>>2]=0;s=c[j>>2]|0;i=r;return s|0}a:do if(!(c[(c[k>>2]|0)+4>>2]|0))Kj(c[n>>2]|0,c[c[k>>2]>>2]|0,0);else{if(zd(c[(c[k>>2]|0)+8>>2]|0,21114,7)|0){do if(c[c[k>>2]>>2]|0){if((c[(c[k>>2]|0)+8>>2]|0)!=0?(a[c[(c[k>>2]|0)+8>>2]>>0]|0)!=0:0)break;c[o>>2]=Fj(c[l>>2]|0,c[c[k>>2]>>2]|0,c[(c[(c[l>>2]|0)+16>>2]|0)+(c[m>>2]<<4)>>2]|0)|0;if(!(c[o>>2]|0))break a;if(Li(c[(c[k>>2]|0)+4>>2]|0,(c[o>>2]|0)+44|0)|0)break a;Kj(c[n>>2]|0,c[c[k>>2]>>2]|0,21122);break a}while(0);Kj(c[n>>2]|0,c[c[k>>2]>>2]|0,0);break}a[(c[l>>2]|0)+140+4>>0]=c[m>>2];s=Ki(c[(c[k>>2]|0)+4>>2]|0)|0;c[(c[l>>2]|0)+140>>2]=s;a[(c[l>>2]|0)+140+6>>0]=0;cf(c[l>>2]|0,c[(c[k>>2]|0)+8>>2]|0,-1,p,0)|0;c[q>>2]=c[(c[l>>2]|0)+52>>2];a[(c[l>>2]|0)+140+4>>0]=0;do if(0!=(c[q>>2]|0)?(a[(c[l>>2]|0)+140+6>>0]|0)==0:0){c[(c[n>>2]|0)+12>>2]=c[q>>2];if((c[q>>2]|0)==7){jh(c[l>>2]|0);break}if((c[q>>2]|0)!=9?(c[q>>2]&255|0)!=6:0){q=c[n>>2]|0;s=c[c[k>>2]>>2]|0;Kj(q,s,bf(c[l>>2]|0)|0)}}while(0);Yd(c[p>>2]|0)|0}while(0);c[j>>2]=0;s=c[j>>2]|0;i=r;return s|0}function xj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;f=e+8|0;h=e+4|0;g=e;c[f>>2]=a;c[h>>2]=b;c[g>>2]=d;Sf(c[h>>2]|0,c[c[f>>2]>>2]|0);d=nh(c[h>>2]|0,c[g>>2]|0)|0;c[c[f>>2]>>2]=d;i=e;return}function yj(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[d>>2]=a;a=c[d>>2]|0;do if((c[d>>2]|0)<0)if((a|0)==-2147483648){c[b>>2]=2147483647;break}else{c[b>>2]=0-(c[d>>2]|0);break}else c[b>>2]=a;while(0);i=e;return c[b>>2]|0}function zj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;g=d+8|0;e=d+4|0;f=d;c[g>>2]=a;c[e>>2]=b;c[f>>2]=c[(c[g>>2]|0)+4>>2];kg(c[g>>2]|0);Ij(c[c[f>>2]>>2]|0,c[e>>2]|0);i=d;return 0}function Aj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+48|0;l=n;d=n+40|0;e=n+36|0;f=n+32|0;k=n+24|0;g=n+16|0;m=n+12|0;j=n+8|0;h=n+4|0;c[e>>2]=a;c[f>>2]=b;c[g>>2]=c[(c[(c[(c[e>>2]|0)+16>>2]|0)+(c[f>>2]<<4)+12>>2]|0)+24+8>>2];while(1){if(!(c[g>>2]|0))break;c[h>>2]=c[(c[g>>2]|0)+8>>2];Cj(c[h>>2]|0);c[g>>2]=c[c[g>>2]>>2]}c[k>>2]=c[e>>2];c[k+4>>2]=c[(c[(c[e>>2]|0)+16>>2]|0)+(c[f>>2]<<4)>>2];if(!(pi(c[e>>2]|0,21027,c[k+4>>2]|0)|0)){c[d>>2]=1;m=c[d>>2]|0;i=n;return m|0}h=c[e>>2]|0;c[l>>2]=c[k+4>>2];c[m>>2]=Bh(h,21040,l)|0;if(!(c[m>>2]|0))c[j>>2]=7;else{c[j>>2]=$e(c[e>>2]|0,c[m>>2]|0,141,k,0)|0;Sf(c[e>>2]|0,c[m>>2]|0)}if((c[j>>2]|0)==7)jh(c[e>>2]|0);c[d>>2]=c[j>>2];m=c[d>>2]|0;i=n;return m|0}function Bj(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;kg(c[b>>2]|0);c[d>>2]=Kg(c[b>>2]|0,0)|0;if(c[d>>2]|0){d=c[d>>2]|0;i=e;return d|0}c[d>>2]=Jg(c[b>>2]|0,0)|0;d=c[d>>2]|0;i=e;return d|0}function Cj(a){a=a|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;f=l+12|0;h=l+16|0;g=l+8|0;k=l+4|0;j=l;c[f>>2]=a;b[h>>1]=b[5446]|0;b[h+2>>1]=b[5447]|0;b[h+4>>1]=b[5448]|0;b[h+6>>1]=b[5449]|0;b[h+8>>1]=b[5450]|0;c[g>>2]=c[(c[f>>2]|0)+8>>2];if(5<(e[(c[f>>2]|0)+50>>1]|0))a=5;else a=e[(c[f>>2]|0)+50>>1]|0;c[k>>2]=a;b[c[g>>2]>>1]=b[(c[(c[f>>2]|0)+12>>2]|0)+38>>1]|0;if((b[c[g>>2]>>1]|0)<33)b[c[g>>2]>>1]=33;iR((c[g>>2]|0)+2|0,h|0,c[k>>2]<<1|0)|0;c[j>>2]=(c[k>>2]|0)+1;while(1){if((c[j>>2]|0)>(e[(c[f>>2]|0)+50>>1]|0))break;b[(c[g>>2]|0)+(c[j>>2]<<1)>>1]=23;c[j>>2]=(c[j>>2]|0)+1}if(!(d[(c[f>>2]|0)+54>>0]|0)){i=l;return}b[(c[g>>2]|0)+(e[(c[f>>2]|0)+50>>1]<<1)>>1]=0;i=l;return}function Dj(d,f,g,h){d=d|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=i;i=i+112|0;j=s+96|0;t=s+92|0;k=s+84|0;p=s+76|0;o=s+72|0;q=s+68|0;r=s+64|0;l=s+60|0;n=s+56|0;m=s;c[t>>2]=d;c[s+88>>2]=f;c[k>>2]=g;c[s+80>>2]=h;c[p>>2]=c[t>>2];if(((c[k>>2]|0)!=0?(c[c[k>>2]>>2]|0)!=0:0)?(c[(c[k>>2]|0)+8>>2]|0)!=0:0){c[q>>2]=pi(c[c[p>>2]>>2]|0,c[c[k>>2]>>2]|0,c[(c[p>>2]|0)+4>>2]|0)|0;if(!(c[q>>2]|0)){c[j>>2]=0;t=c[j>>2]|0;i=s;return t|0}do if(c[(c[k>>2]|0)+4>>2]|0)if(!(Td(c[c[k>>2]>>2]|0,c[(c[k>>2]|0)+4>>2]|0)|0)){c[o>>2]=Ej(c[q>>2]|0)|0;break}else{c[o>>2]=Fj(c[c[p>>2]>>2]|0,c[(c[k>>2]|0)+4>>2]|0,c[(c[p>>2]|0)+4>>2]|0)|0;break}else c[o>>2]=0;while(0);c[r>>2]=c[(c[k>>2]|0)+8>>2];if(c[o>>2]|0){c[l>>2]=0;c[n>>2]=(e[(c[o>>2]|0)+50>>1]|0)+1;t=(c[o>>2]|0)+55|0;a[t>>0]=a[t>>0]&-5;Gj(c[r>>2]|0,c[n>>2]|0,c[l>>2]|0,c[(c[o>>2]|0)+8>>2]|0,c[o>>2]|0);if(!(c[(c[o>>2]|0)+36>>2]|0))b[(c[q>>2]|0)+38>>1]=b[c[(c[o>>2]|0)+8>>2]>>1]|0}else{b[m+48>>1]=b[(c[q>>2]|0)+40>>1]|0;Gj(c[r>>2]|0,1,0,(c[q>>2]|0)+38|0,m);b[(c[q>>2]|0)+40>>1]=b[m+48>>1]|0}c[j>>2]=0;t=c[j>>2]|0;i=s;return t|0}c[j>>2]=0;t=c[j>>2]|0;i=s;return t|0}function Ej(b){b=b|0;var d=0,e=0,f=0;e=i;i=i+16|0;f=e+4|0;d=e;c[f>>2]=b;c[d>>2]=c[(c[f>>2]|0)+8>>2];while(1){if(!(c[d>>2]|0)){b=5;break}if(!((a[(c[d>>2]|0)+55>>0]&3|0)==2^1)){b=5;break}c[d>>2]=c[(c[d>>2]|0)+20>>2]}if((b|0)==5){i=e;return c[d>>2]|0}return 0}function Fj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;e=n+24|0;f=n+20|0;g=n+16|0;k=n+12|0;h=n+8|0;j=n+4|0;l=n;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[k>>2]=0;c[h>>2]=0;while(1){if((c[h>>2]|0)>=(c[(c[e>>2]|0)+20>>2]|0)){m=7;break}b=c[h>>2]|0;c[j>>2]=(c[h>>2]|0)<2?b^1:b;c[l>>2]=c[(c[(c[e>>2]|0)+16>>2]|0)+(c[j>>2]<<4)+12>>2];if(!((c[g>>2]|0)!=0?(Td(c[g>>2]|0,c[(c[(c[e>>2]|0)+16>>2]|0)+(c[j>>2]<<4)>>2]|0)|0)!=0:0))m=5;if((m|0)==5?(m=0,c[k>>2]=nj((c[l>>2]|0)+24|0,c[f>>2]|0)|0,(c[k>>2]|0)!=0):0){m=7;break}c[h>>2]=(c[h>>2]|0)+1}if((m|0)==7){i=n;return c[k>>2]|0}return 0}function Gj(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;q=i;i=i+48|0;r=q+32|0;j=q+28|0;k=q+20|0;o=q+16|0;p=q+12|0;l=q+8|0;m=q+4|0;n=q;c[r>>2]=d;c[j>>2]=e;c[q+24>>2]=f;c[k>>2]=g;c[o>>2]=h;c[p>>2]=c[r>>2];c[m>>2]=0;while(1){if(!(a[c[p>>2]>>0]|0))break;if((c[m>>2]|0)>=(c[j>>2]|0))break;c[n>>2]=0;while(1){r=a[c[p>>2]>>0]|0;c[l>>2]=r;if(!((r|0)>=48?(c[l>>2]|0)<=57:0))break;c[n>>2]=((c[n>>2]|0)*10|0)+(c[l>>2]|0)-48;c[p>>2]=(c[p>>2]|0)+1}r=Hj(c[n>>2]|0,0)|0;b[(c[k>>2]|0)+(c[m>>2]<<1)>>1]=r;if((a[c[p>>2]>>0]|0)==32)c[p>>2]=(c[p>>2]|0)+1;c[m>>2]=(c[m>>2]|0)+1}r=(c[o>>2]|0)+55|0;a[r>>0]=a[r>>0]&-5;r=(c[o>>2]|0)+55|0;a[r>>0]=a[r>>0]&-65;a:while(1){if(!(a[c[p>>2]>>0]|0))break;do if(Ze(21081,c[p>>2]|0)|0){r=(Ze(21092,c[p>>2]|0)|0)==0;j=c[p>>2]|0;if(r){r=Ki(j+3|0)|0;r=Hj(r,((r|0)<0)<<31>>31)|0;b[(c[o>>2]|0)+48>>1]=r;break}if(!(Ze(21102,j)|0)){r=(c[o>>2]|0)+55|0;a[r>>0]=a[r>>0]&-65|64}}else{r=(c[o>>2]|0)+55|0;a[r>>0]=a[r>>0]&-5|4}while(0);while(1){if(!(a[c[p>>2]>>0]|0))break;if((a[c[p>>2]>>0]|0)==32)break;c[p>>2]=(c[p>>2]|0)+1}while(1){if((a[c[p>>2]>>0]|0)!=32)continue a;c[p>>2]=(c[p>>2]|0)+1}}i=q;return}function Hj(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;h=i;i=i+16|0;e=h+10|0;f=h;g=h+8|0;j=f;c[j>>2]=a;c[j+4>>2]=d;b[g>>1]=40;d=f;a=c[d+4>>2]|0;a:do if(a>>>0<0|(a|0)==0&(c[d>>2]|0)>>>0<8){j=f;d=c[j+4>>2]|0;if(d>>>0<0|(d|0)==0&(c[j>>2]|0)>>>0<2){b[e>>1]=0;j=b[e>>1]|0;i=h;return j|0}else while(1){j=f;d=c[j+4>>2]|0;if(!(d>>>0<0|(d|0)==0&(c[j>>2]|0)>>>0<8))break a;b[g>>1]=(b[g>>1]|0)-10;d=f;d=lR(c[d>>2]|0,c[d+4>>2]|0,1)|0;j=f;c[j>>2]=d;c[j+4>>2]=C}}else{while(1){j=f;d=c[j+4>>2]|0;if(!(d>>>0>0|(d|0)==0&(c[j>>2]|0)>>>0>255))break;b[g>>1]=(b[g>>1]|0)+40;d=f;d=hR(c[d>>2]|0,c[d+4>>2]|0,4)|0;j=f;c[j>>2]=d;c[j+4>>2]=C}while(1){j=f;d=c[j+4>>2]|0;if(!(d>>>0>0|(d|0)==0&(c[j>>2]|0)>>>0>15))break a;b[g>>1]=(b[g>>1]|0)+10;d=f;d=hR(c[d>>2]|0,c[d+4>>2]|0,1)|0;j=f;c[j>>2]=d;c[j+4>>2]=C}}while(0);b[e>>1]=(b[10876+((c[f>>2]&7)<<1)>>1]|0)+(b[g>>1]|0)-10;j=b[e>>1]|0;i=h;return j|0}function Ij(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;Jj(c[(c[f>>2]|0)+212>>2]|0,c[e>>2]|0);i=d;return}function Jj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;c[(c[f>>2]|0)+16>>2]=c[e>>2];e=c[33]|0;b=c[(c[f>>2]|0)+44>>2]|0;a=Zi(c[f>>2]|0)|0;Rb[e&255](b,a);i=d;return}function Kj(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+48|0;m=o+8|0;l=o;g=o+32|0;h=o+28|0;j=o+24|0;k=o+20|0;n=o+16|0;c[g>>2]=b;c[h>>2]=e;c[j>>2]=f;c[k>>2]=c[c[g>>2]>>2];if((a[(c[k>>2]|0)+65>>0]|0)==0?(c[(c[k>>2]|0)+24>>2]&65536|0)==0:0){if(!(c[h>>2]|0))c[h>>2]=21139;e=c[k>>2]|0;c[l>>2]=c[h>>2];c[n>>2]=Bh(e,21141,l)|0;if(c[j>>2]|0){e=c[k>>2]|0;f=c[j>>2]|0;c[m>>2]=c[n>>2];c[m+4>>2]=f;c[n>>2]=Bh(e,21172,m)|0}Sf(c[k>>2]|0,c[c[(c[g>>2]|0)+4>>2]>>2]|0);c[c[(c[g>>2]|0)+4>>2]>>2]=c[n>>2]}if(d[(c[k>>2]|0)+65>>0]|0){f=7;e=c[g>>2]|0;e=e+12|0;c[e>>2]=f;i=o;return}f=Lj(109430)|0;e=c[g>>2]|0;e=e+12|0;c[e>>2]=f;i=o;return}function Lj(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b;e=b+8|0;c[e>>2]=a;e=c[e>>2]|0;a=(kf()|0)+20|0;c[d>>2]=e;c[d+4>>2]=a;Rd(11,21180,d);i=b;return 11}function Mj(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+32|0;n=m+12|0;h=m+16|0;j=m+8|0;k=m+4|0;l=m;c[n>>2]=b;a[h>>0]=e;c[j>>2]=f;c[k>>2]=g;g=c[n>>2]|0;if(c[j>>2]|0)c[l>>2]=Nj(g,c[j>>2]|0,c[k>>2]|0)|0;else c[l>>2]=c[g+8>>2];if(!(c[l>>2]|0)){n=c[l>>2]|0;i=m;return n|0}c[l>>2]=(c[l>>2]|0)+(((d[h>>0]|0)-1|0)*20|0);n=c[l>>2]|0;i=m;return n|0}function Nj(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;l=i;i=i+32|0;f=l+20|0;g=l+16|0;m=l+12|0;j=l+8|0;h=l+4|0;k=l;c[f>>2]=b;c[g>>2]=d;c[m>>2]=e;c[j>>2]=nj((c[f>>2]|0)+432|0,c[g>>2]|0)|0;if(!(0==(c[j>>2]|0)&(c[m>>2]|0)!=0)){m=c[j>>2]|0;i=l;return m|0}c[h>>2]=If(c[g>>2]|0)|0;c[j>>2]=ph(c[f>>2]|0,60+(c[h>>2]|0)+1|0,0)|0;if(!(c[j>>2]|0)){m=c[j>>2]|0;i=l;return m|0}c[k>>2]=0;c[c[j>>2]>>2]=(c[j>>2]|0)+60;a[(c[j>>2]|0)+4>>0]=1;c[(c[j>>2]|0)+20>>2]=(c[j>>2]|0)+60;a[(c[j>>2]|0)+20+4>>0]=2;c[(c[j>>2]|0)+40>>2]=(c[j>>2]|0)+60;a[(c[j>>2]|0)+40+4>>0]=3;iR(c[c[j>>2]>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;a[(c[c[j>>2]>>2]|0)+(c[h>>2]|0)>>0]=0;c[k>>2]=Oj((c[f>>2]|0)+432|0,c[c[j>>2]>>2]|0,c[j>>2]|0)|0;if(!(c[k>>2]|0)){m=c[j>>2]|0;i=l;return m|0}jh(c[f>>2]|0);Sf(c[f>>2]|0,c[k>>2]|0);c[j>>2]=0;m=c[j>>2]|0;i=l;return m|0}function Oj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;k=n+28|0;l=n+24|0;e=n+20|0;f=n+16|0;h=n+12|0;g=n+8|0;m=n+4|0;j=n;c[l>>2]=a;c[e>>2]=b;c[f>>2]=d;c[g>>2]=oj(c[l>>2]|0,c[e>>2]|0,h)|0;if(c[g>>2]|0){c[j>>2]=c[(c[g>>2]|0)+8>>2];if(!(c[f>>2]|0))Pj(c[l>>2]|0,c[g>>2]|0,c[h>>2]|0);else{c[(c[g>>2]|0)+8>>2]=c[f>>2];c[(c[g>>2]|0)+12>>2]=c[e>>2]}c[k>>2]=c[j>>2];m=c[k>>2]|0;i=n;return m|0}if(!(c[f>>2]|0)){c[k>>2]=0;m=c[k>>2]|0;i=n;return m|0}c[m>>2]=_f(16,0)|0;if(!(c[m>>2]|0)){c[k>>2]=c[f>>2];m=c[k>>2]|0;i=n;return m|0}c[(c[m>>2]|0)+12>>2]=c[e>>2];c[(c[m>>2]|0)+8>>2]=c[f>>2];b=(c[l>>2]|0)+4|0;c[b>>2]=(c[b>>2]|0)+1;if(((c[(c[l>>2]|0)+4>>2]|0)>>>0>=10?(c[(c[l>>2]|0)+4>>2]|0)>>>0>c[c[l>>2]>>2]<<1>>>0:0)?(Qj(c[l>>2]|0,c[(c[l>>2]|0)+4>>2]<<1)|0)!=0:0){b=pj(c[e>>2]|0)|0;c[h>>2]=(b>>>0)%((c[c[l>>2]>>2]|0)>>>0)|0}if(c[(c[l>>2]|0)+12>>2]|0)e=(c[(c[l>>2]|0)+12>>2]|0)+(c[h>>2]<<3)|0;else e=0;Rj(c[l>>2]|0,e,c[m>>2]|0);c[k>>2]=0;m=c[k>>2]|0;i=n;return m|0}function Pj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;e=j+12|0;f=j+8|0;g=j+4|0;h=j;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;b=c[c[f>>2]>>2]|0;if(c[(c[f>>2]|0)+4>>2]|0)c[c[(c[f>>2]|0)+4>>2]>>2]=b;else c[(c[e>>2]|0)+8>>2]=b;if(c[c[f>>2]>>2]|0)c[(c[c[f>>2]>>2]|0)+4>>2]=c[(c[f>>2]|0)+4>>2];if(c[(c[e>>2]|0)+12>>2]|0){c[h>>2]=(c[(c[e>>2]|0)+12>>2]|0)+(c[g>>2]<<3);if((c[(c[h>>2]|0)+4>>2]|0)==(c[f>>2]|0))c[(c[h>>2]|0)+4>>2]=c[c[f>>2]>>2];h=c[h>>2]|0;c[h>>2]=(c[h>>2]|0)+-1}Kd(c[f>>2]|0);h=(c[e>>2]|0)+4|0;c[h>>2]=(c[h>>2]|0)+-1;if(c[(c[e>>2]|0)+4>>2]|0){i=j;return}vj(c[e>>2]|0);i=j;return}function Qj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;d=l+24|0;e=l+20|0;f=l+16|0;j=l+12|0;g=l+8|0;k=l+4|0;h=l;c[e>>2]=a;c[f>>2]=b;c[f>>2]=c[f>>2]<<3>>>0>1024?128:b;if((c[f>>2]|0)==(c[c[e>>2]>>2]|0)){c[d>>2]=0;a=c[d>>2]|0;i=l;return a|0}Sj();c[j>>2]=_f(c[f>>2]<<3,0)|0;Tj();if(!(c[j>>2]|0)){c[d>>2]=0;a=c[d>>2]|0;i=l;return a|0}Kd(c[(c[e>>2]|0)+12>>2]|0);c[(c[e>>2]|0)+12>>2]=c[j>>2];a=(($f(c[j>>2]|0)|0)>>>0)/8|0;c[f>>2]=a;c[c[e>>2]>>2]=a;kR(c[j>>2]|0,0,c[f>>2]<<3|0)|0;c[g>>2]=c[(c[e>>2]|0)+8>>2];c[(c[e>>2]|0)+8>>2]=0;while(1){if(!(c[g>>2]|0))break;a=pj(c[(c[g>>2]|0)+12>>2]|0)|0;c[h>>2]=(a>>>0)%((c[f>>2]|0)>>>0)|0;c[k>>2]=c[c[g>>2]>>2];Rj(c[e>>2]|0,(c[j>>2]|0)+(c[h>>2]<<3)|0,c[g>>2]|0);c[g>>2]=c[k>>2]}c[d>>2]=1;a=c[d>>2]|0;i=l;return a|0}function Rj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;f=j+12|0;e=j+8|0;g=j+4|0;h=j;c[f>>2]=a;c[e>>2]=b;c[g>>2]=d;if(c[e>>2]|0){if(c[c[e>>2]>>2]|0)b=c[(c[e>>2]|0)+4>>2]|0;else b=0;c[h>>2]=b;d=c[e>>2]|0;c[d>>2]=(c[d>>2]|0)+1;c[(c[e>>2]|0)+4>>2]=c[g>>2]}else c[h>>2]=0;if(!(c[h>>2]|0)){c[c[g>>2]>>2]=c[(c[f>>2]|0)+8>>2];if(c[(c[f>>2]|0)+8>>2]|0)c[(c[(c[f>>2]|0)+8>>2]|0)+4>>2]=c[g>>2];c[(c[g>>2]|0)+4>>2]=0;c[(c[f>>2]|0)+8>>2]=c[g>>2];i=j;return}c[c[g>>2]>>2]=c[h>>2];c[(c[g>>2]|0)+4>>2]=c[(c[h>>2]|0)+4>>2];b=c[g>>2]|0;if(c[(c[h>>2]|0)+4>>2]|0)c[c[(c[h>>2]|0)+4>>2]>>2]=b;else c[(c[f>>2]|0)+8>>2]=b;c[(c[h>>2]|0)+4>>2]=c[g>>2];i=j;return}function Sj(){if(!(c[421]|0))return;Vb[c[1684>>2]&255]();return}function Tj(){if(!(c[422]|0))return;Vb[c[1688>>2]&255]();return}function Uj(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;g=o+24|0;h=o+20|0;j=o+16|0;k=o+12|0;l=o+8|0;n=o+4|0;m=o;c[g>>2]=a;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;c[m>>2]=(c[h>>2]|0)<(c[k>>2]|0)?c[h>>2]|0:c[k>>2]|0;c[n>>2]=vQ(c[j>>2]|0,c[l>>2]|0,c[m>>2]|0)|0;if(c[n>>2]|0){n=c[n>>2]|0;i=o;return n|0}if(((c[g>>2]|0)!=0?(Tt((c[j>>2]|0)+(c[m>>2]|0)|0,(c[h>>2]|0)-(c[m>>2]|0)|0)|0)!=0:0)?(Tt((c[l>>2]|0)+(c[m>>2]|0)|0,(c[k>>2]|0)-(c[m>>2]|0)|0)|0)!=0:0){n=c[n>>2]|0;i=o;return n|0}c[n>>2]=(c[h>>2]|0)-(c[k>>2]|0);n=c[n>>2]|0;i=o;return n|0}function Vj(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;k=i;i=i+32|0;g=k+16|0;m=k+12|0;h=k+8|0;l=k+4|0;j=k;c[k+20>>2]=a;c[g>>2]=b;c[m>>2]=d;c[h>>2]=e;c[l>>2]=f;c[j>>2]=zd(c[m>>2]|0,c[l>>2]|0,(c[g>>2]|0)<(c[h>>2]|0)?c[g>>2]|0:c[h>>2]|0)|0;if(c[j>>2]|0){m=c[j>>2]|0;i=k;return m|0}c[j>>2]=(c[g>>2]|0)-(c[h>>2]|0);m=c[j>>2]|0;i=k;return m|0}function Wj(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0;S=i;i=i+160|0;K=S+32|0;J=S+24|0;I=S+16|0;H=S+8|0;m=S+140|0;T=S+136|0;n=S+132|0;o=S+128|0;p=S+124|0;q=S+120|0;r=S+116|0;G=S+112|0;v=S+108|0;Q=S+104|0;M=S+100|0;t=S+144|0;l=S+96|0;O=S+92|0;u=S+88|0;x=S+84|0;y=S+80|0;k=S;F=S+76|0;D=S+72|0;P=S+68|0;E=S+64|0;s=S+60|0;N=S+56|0;A=S+52|0;z=S+48|0;w=S+44|0;B=S+40|0;L=S+36|0;c[T>>2]=b;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[r>>2]=j;c[G>>2]=0;c[v>>2]=c[c[o>>2]>>2];c[Q>>2]=c[T>>2];c[l>>2]=If(c[n>>2]|0)|0;a:do if(((c[v>>2]&64|0)!=0|(c[5]|0)!=0)&(c[l>>2]|0)>=5?(vQ(c[n>>2]|0,26902,5)|0)==0:0){c[y>>2]=0;e=(c[l>>2]|0)+2|0;T=k;c[T>>2]=e;c[T+4>>2]=((e|0)<0)<<31>>31;c[v>>2]=c[v>>2]|64;c[x>>2]=0;while(1){if((c[x>>2]|0)>=(c[l>>2]|0))break;e=(a[(c[n>>2]|0)+(c[x>>2]|0)>>0]|0)==38&1;T=k;e=gR(c[T>>2]|0,c[T+4>>2]|0,e|0,((e|0)<0)<<31>>31|0)|0;T=k;c[T>>2]=e;c[T+4>>2]=C;c[x>>2]=(c[x>>2]|0)+1}T=k;c[M>>2]=Jd(c[T>>2]|0,c[T+4>>2]|0)|0;if(!(c[M>>2]|0)){c[m>>2]=7;T=c[m>>2]|0;i=S;return T|0}c[x>>2]=5;do if((a[(c[n>>2]|0)+5>>0]|0)==47?(a[(c[n>>2]|0)+6>>0]|0)==47:0){c[x>>2]=7;while(1){if(a[(c[n>>2]|0)+(c[x>>2]|0)>>0]|0)k=(a[(c[n>>2]|0)+(c[x>>2]|0)>>0]|0)!=47;else k=0;l=c[x>>2]|0;if(!k)break;c[x>>2]=l+1}if((l|0)!=7){if((c[x>>2]|0)==16?(vQ(26908,(c[n>>2]|0)+7|0,9)|0)==0:0)break;T=(c[n>>2]|0)+7|0;c[H>>2]=(c[x>>2]|0)-7;c[H+4>>2]=T;T=Od(26918,H)|0;c[c[r>>2]>>2]=T;c[G>>2]=1;break a}}while(0);c[u>>2]=0;b:while(1){T=a[(c[n>>2]|0)+(c[x>>2]|0)>>0]|0;a[t>>0]=T;if(!(T<<24>>24))break;if((a[t>>0]|0)==35)break;c[x>>2]=(c[x>>2]|0)+1;do if(((a[t>>0]|0)==37?(d[19267+(d[(c[n>>2]|0)+(c[x>>2]|0)>>0]|0)>>0]&8|0)!=0:0)?(d[19267+(d[(c[n>>2]|0)+((c[x>>2]|0)+1)>>0]|0)>>0]&8|0)!=0:0){T=c[x>>2]|0;c[x>>2]=T+1;c[F>>2]=((Gi(a[(c[n>>2]|0)+T>>0]|0)|0)&255)<<4;T=c[x>>2]|0;c[x>>2]=T+1;T=(Gi(a[(c[n>>2]|0)+T>>0]|0)|0)&255;c[F>>2]=(c[F>>2]|0)+T;if(c[F>>2]|0){a[t>>0]=c[F>>2];break}while(1){T=a[(c[n>>2]|0)+(c[x>>2]|0)>>0]|0;a[t>>0]=T;if(!(T<<24>>24))continue b;if((a[t>>0]|0)==35)continue b;if((c[u>>2]|0)==0?(a[t>>0]|0)==63:0)continue b;if((c[u>>2]|0)==1){if((a[t>>0]|0)==61)continue b;if((a[t>>0]|0)==38)continue b}if((c[u>>2]|0)==2?(a[t>>0]|0)==38:0)continue b;c[x>>2]=(c[x>>2]|0)+1}}else R=37;while(0);c:do if((R|0)==37){R=0;do if((c[u>>2]|0)==1){if((a[t>>0]|0)!=38?(a[t>>0]|0)!=61:0)break;if(!(a[(c[M>>2]|0)+((c[y>>2]|0)-1)>>0]|0))while(1){if(!(a[(c[n>>2]|0)+(c[x>>2]|0)>>0]|0))continue b;if((a[(c[n>>2]|0)+(c[x>>2]|0)>>0]|0)==35)continue b;if((a[(c[n>>2]|0)+((c[x>>2]|0)-1)>>0]|0)==38)continue b;c[x>>2]=(c[x>>2]|0)+1}else{if((a[t>>0]|0)==38){T=c[y>>2]|0;c[y>>2]=T+1;a[(c[M>>2]|0)+T>>0]=0}else c[u>>2]=2;a[t>>0]=0;break c}}while(0);if(!((c[u>>2]|0)==0?(a[t>>0]|0)==63:0)){if((c[u>>2]|0)!=2)break;if((a[t>>0]|0)!=38)break}a[t>>0]=0;c[u>>2]=1}while(0);H=a[t>>0]|0;T=c[y>>2]|0;c[y>>2]=T+1;a[(c[M>>2]|0)+T>>0]=H}if((c[u>>2]|0)==1){T=c[y>>2]|0;c[y>>2]=T+1;a[(c[M>>2]|0)+T>>0]=0}T=c[y>>2]|0;c[y>>2]=T+1;a[(c[M>>2]|0)+T>>0]=0;T=c[y>>2]|0;c[y>>2]=T+1;a[(c[M>>2]|0)+T>>0]=0;T=(If(c[M>>2]|0)|0)+1|0;c[O>>2]=(c[M>>2]|0)+T;while(1){if(!(a[c[O>>2]>>0]|0)){R=84;break a}c[D>>2]=If(c[O>>2]|0)|0;c[P>>2]=(c[O>>2]|0)+((c[D>>2]|0)+1);c[E>>2]=If(c[P>>2]|0)|0;if((c[D>>2]|0)==3?(vQ(26946,c[O>>2]|0,3)|0)==0:0)c[Q>>2]=c[P>>2];else{c[s>>2]=0;c[N>>2]=0;c[A>>2]=0;c[z>>2]=0;if((c[D>>2]|0)==5?(vQ(26950,c[O>>2]|0,5)|0)==0:0){c[A>>2]=393216;c[s>>2]=4912;c[z>>2]=c[A>>2];c[N>>2]=26950}if((c[D>>2]|0)==4?(vQ(26956,c[O>>2]|0,4)|0)==0:0){c[A>>2]=135;c[s>>2]=4936;c[z>>2]=c[A>>2]&c[v>>2];c[N>>2]=26961}if(c[s>>2]|0){c[B>>2]=0;c[w>>2]=0;while(1){if(!(c[(c[s>>2]|0)+(c[w>>2]<<3)>>2]|0))break;c[L>>2]=c[(c[s>>2]|0)+(c[w>>2]<<3)>>2];T=c[E>>2]|0;if((T|0)==(If(c[L>>2]|0)|0)?0==(vQ(c[P>>2]|0,c[L>>2]|0,c[E>>2]|0)|0):0){R=73;break}c[w>>2]=(c[w>>2]|0)+1}if((R|0)==73){R=0;c[B>>2]=c[(c[s>>2]|0)+(c[w>>2]<<3)+4>>2]}if(!(c[B>>2]|0)){R=76;break}if((c[B>>2]&-129|0)>(c[z>>2]|0)){R=78;break}c[v>>2]=c[v>>2]&~c[A>>2]|c[B>>2]}}c[O>>2]=(c[P>>2]|0)+((c[E>>2]|0)+1)}if((R|0)==76){T=c[P>>2]|0;c[I>>2]=c[N>>2];c[I+4>>2]=T;T=Od(26968,I)|0;c[c[r>>2]>>2]=T;c[G>>2]=1;break}else if((R|0)==78){T=c[P>>2]|0;c[J>>2]=c[N>>2];c[J+4>>2]=T;T=Od(26988,J)|0;c[c[r>>2]>>2]=T;c[G>>2]=3;break}}else R=81;while(0);do if((R|0)==81){T=(c[l>>2]|0)+2|0;c[M>>2]=Jd(T,((T|0)<0)<<31>>31)|0;if(c[M>>2]|0){iR(c[M>>2]|0,c[n>>2]|0,c[l>>2]|0)|0;a[(c[M>>2]|0)+(c[l>>2]|0)>>0]=0;a[(c[M>>2]|0)+((c[l>>2]|0)+1)>>0]=0;c[v>>2]=c[v>>2]&-65;R=84;break}c[m>>2]=7;T=c[m>>2]|0;i=S;return T|0}while(0);if((R|0)==84?(T=Cd(c[Q>>2]|0)|0,c[c[p>>2]>>2]=T,(c[c[p>>2]>>2]|0)==0):0){c[K>>2]=c[Q>>2];T=Od(27012,K)|0;c[c[r>>2]>>2]=T;c[G>>2]=1}if(c[G>>2]|0){Kd(c[M>>2]|0);c[M>>2]=0}c[c[o>>2]>>2]=c[v>>2];c[c[q>>2]>>2]=c[M>>2];c[m>>2]=c[G>>2];T=c[m>>2]|0;i=S;return T|0}function Xj(f,g,h,j,k,l){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;I=i;i=i+192|0;C=I+76|0;m=I+72|0;n=I+68|0;o=I+64|0;D=I+60|0;p=I+56|0;q=I+52|0;F=I+48|0;E=I+44|0;H=I+36|0;x=I+180|0;z=I+80|0;u=I+32|0;t=I+28|0;v=I+24|0;w=I+20|0;A=I+16|0;s=I+12|0;y=I+8|0;r=I+4|0;G=I;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[D>>2]=j;c[p>>2]=k;c[q>>2]=l;c[F>>2]=0;c[I+40>>2]=0;c[H>>2]=0;if(!(c[n>>2]|0))h=1;else h=(a[c[n>>2]>>0]|0)==0;c[u>>2]=h&1;if((c[n>>2]|0)!=0?(yQ(c[n>>2]|0,26694)|0)==0:0)h=1;else B=5;do if((B|0)==5){if((c[u>>2]|0)!=0?(Sq(c[o>>2]|0)|0)!=0:0){h=1;break}h=(c[q>>2]&128|0)!=0}while(0);c[t>>2]=h&1;if(c[t>>2]|0)c[p>>2]=c[p>>2]|2;if((c[q>>2]&256|0)!=0?(c[t>>2]|0)!=0|(c[u>>2]|0)!=0:0)c[q>>2]=c[q>>2]&-257|512;c[E>>2]=ig(48,0)|0;if(!(c[E>>2]|0)){c[C>>2]=7;H=c[C>>2]|0;i=I;return H|0}a[(c[E>>2]|0)+8>>0]=0;c[c[E>>2]>>2]=c[o>>2];c[(c[E>>2]|0)+32>>2]=c[E>>2];c[(c[E>>2]|0)+32+4>>2]=1;do if(!(c[u>>2]|0)){if((c[t>>2]|0)!=0?(c[q>>2]&64|0)==0:0)break;if(c[q>>2]&131072){c[v>>2]=(If(c[n>>2]|0)|0)+1;c[w>>2]=(c[(c[m>>2]|0)+8>>2]|0)+1;u=(c[w>>2]|0)>(c[v>>2]|0)?c[w>>2]|0:c[v>>2]|0;c[A>>2]=_f(u,((u|0)<0)<<31>>31)|0;a[(c[E>>2]|0)+9>>0]=1;if(!(c[A>>2]|0)){Kd(c[E>>2]|0);c[C>>2]=7;H=c[C>>2]|0;i=I;return H|0}if(!(c[t>>2]|0)){c[H>>2]=Tq(c[m>>2]|0,c[n>>2]|0,c[w>>2]|0,c[A>>2]|0)|0;if(c[H>>2]|0){Kd(c[A>>2]|0);Kd(c[E>>2]|0);c[C>>2]=c[H>>2];H=c[C>>2]|0;i=I;return H|0}}else iR(c[A>>2]|0,c[n>>2]|0,c[v>>2]|0)|0;c[F>>2]=c[1208];while(1){if(!(c[F>>2]|0))break;w=c[A>>2]|0;if(0==(yQ(w,Fi(c[c[F>>2]>>2]|0,0)|0)|0)?(w=ti(c[c[F>>2]>>2]|0)|0,(w|0)==(c[m>>2]|0)):0){B=29;break}c[F>>2]=c[(c[F>>2]|0)+68>>2]}do if((B|0)==29){c[s>>2]=(c[(c[o>>2]|0)+20>>2]|0)-1;while(1){if((c[s>>2]|0)<0){B=35;break}c[y>>2]=c[(c[(c[o>>2]|0)+16>>2]|0)+(c[s>>2]<<4)+4>>2];if((c[y>>2]|0)!=0?(c[(c[y>>2]|0)+4>>2]|0)==(c[F>>2]|0):0)break;c[s>>2]=(c[s>>2]|0)+-1}if((B|0)==35){c[(c[E>>2]|0)+4>>2]=c[F>>2];y=(c[F>>2]|0)+64|0;c[y>>2]=(c[y>>2]|0)+1;break}Kd(c[A>>2]|0);Kd(c[E>>2]|0);c[C>>2]=19;H=c[C>>2]|0;i=I;return H|0}while(0);Kd(c[A>>2]|0)}}while(0);do if(!(c[F>>2]|0)){c[F>>2]=ig(84,0)|0;if(!(c[F>>2]|0)){c[H>>2]=7;break}c[H>>2]=Vq(c[m>>2]|0,c[F>>2]|0,c[n>>2]|0,88,c[p>>2]|0,c[q>>2]|0,149)|0;if(!(c[H>>2]|0)){A=(c[o>>2]|0)+40|0;Wq(c[c[F>>2]>>2]|0,c[A>>2]|0,c[A+4>>2]|0);c[H>>2]=Xq(c[c[F>>2]>>2]|0,100,z)|0}if(!(c[H>>2]|0)){a[(c[F>>2]|0)+16>>0]=c[p>>2];c[(c[F>>2]|0)+4>>2]=c[o>>2];Zq(c[c[F>>2]>>2]|0,171,c[F>>2]|0);c[(c[E>>2]|0)+4>>2]=c[F>>2];c[(c[F>>2]|0)+8>>2]=0;c[(c[F>>2]|0)+12>>2]=0;if((_q(c[c[F>>2]>>2]|0)|0)<<24>>24){A=(c[F>>2]|0)+22|0;b[A>>1]=e[A>>1]|1}c[(c[F>>2]|0)+32>>2]=d[z+16>>0]<<8|d[z+17>>0]<<16;if(((c[(c[F>>2]|0)+32>>2]|0)>>>0>=512?(c[(c[F>>2]|0)+32>>2]|0)>>>0<=65536:0)?((c[(c[F>>2]|0)+32>>2]|0)-1&c[(c[F>>2]|0)+32>>2]|0)==0:0){a[x>>0]=a[z+20>>0]|0;A=(c[F>>2]|0)+22|0;b[A>>1]=e[A>>1]|2;A=($q(z+52|0)|0)!=0;a[(c[F>>2]|0)+17>>0]=A?1:0;A=($q(z+64|0)|0)!=0;a[(c[F>>2]|0)+18>>0]=A?1:0}else{c[(c[F>>2]|0)+32>>2]=0;if(!((c[n>>2]|0)==0|(c[t>>2]|0)!=0)){a[(c[F>>2]|0)+17>>0]=0;a[(c[F>>2]|0)+18>>0]=0}a[x>>0]=0}c[H>>2]=Qi(c[c[F>>2]>>2]|0,(c[F>>2]|0)+32|0,d[x>>0]|0)|0;if(!(c[H>>2]|0)){c[(c[F>>2]|0)+36>>2]=(c[(c[F>>2]|0)+32>>2]|0)-(d[x>>0]|0);if(a[(c[E>>2]|0)+9>>0]|0){c[(c[F>>2]|0)+64>>2]=1;c[(c[F>>2]|0)+68>>2]=c[1208];c[1208]=c[F>>2];B=56}else B=56}}}else B=56;while(0);if((B|0)==56){a:do if(a[(c[E>>2]|0)+9>>0]|0){c[r>>2]=0;while(1){if((c[r>>2]|0)>=(c[(c[o>>2]|0)+20>>2]|0))break a;B=c[(c[(c[o>>2]|0)+16>>2]|0)+(c[r>>2]<<4)+4>>2]|0;c[G>>2]=B;if((B|0)!=0?(d[(c[G>>2]|0)+9>>0]|0)!=0:0)break;c[r>>2]=(c[r>>2]|0)+1}while(1){if(!(c[(c[G>>2]|0)+28>>2]|0))break;c[G>>2]=c[(c[G>>2]|0)+28>>2]}if((c[(c[E>>2]|0)+4>>2]|0)>>>0<(c[(c[G>>2]|0)+4>>2]|0)>>>0){c[(c[E>>2]|0)+24>>2]=c[G>>2];c[(c[E>>2]|0)+28>>2]=0;c[(c[G>>2]|0)+28>>2]=c[E>>2];break}while(1){if(c[(c[G>>2]|0)+24>>2]|0)k=(c[(c[(c[G>>2]|0)+24>>2]|0)+4>>2]|0)>>>0<(c[(c[E>>2]|0)+4>>2]|0)>>>0;else k=0;h=c[(c[G>>2]|0)+24>>2]|0;if(!k)break;c[G>>2]=h}c[(c[E>>2]|0)+24>>2]=h;c[(c[E>>2]|0)+28>>2]=c[G>>2];if(c[(c[E>>2]|0)+24>>2]|0)c[(c[(c[E>>2]|0)+24>>2]|0)+28>>2]=c[E>>2];c[(c[G>>2]|0)+24>>2]=c[E>>2]}while(0);c[c[D>>2]>>2]=c[E>>2]}if(!(c[H>>2]|0)){if(!(Rq(c[E>>2]|0,0,0)|0))Ij(c[c[(c[E>>2]|0)+4>>2]>>2]|0,2e3)}else{if((c[F>>2]|0)!=0?(c[c[F>>2]>>2]|0)!=0:0)ar(c[c[F>>2]>>2]|0)|0;Kd(c[F>>2]|0);Kd(c[E>>2]|0);c[c[D>>2]>>2]=0}c[C>>2]=c[H>>2];H=c[C>>2]|0;i=I;return H|0}function Yj(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0;j=i;i=i+16|0;f=j+8|0;g=j+4|0;h=j;c[f>>2]=b;c[g>>2]=e;if(c[g>>2]|0)c[h>>2]=Rq(c[g>>2]|0,84,150)|0;else c[h>>2]=ph(0,84,0)|0;if(!(c[h>>2]|0)){jh(c[f>>2]|0);e=c[h>>2]|0;i=j;return e|0}if(d[(c[h>>2]|0)+76>>0]|0){e=c[h>>2]|0;i=j;return e|0}uj((c[h>>2]|0)+8|0);uj((c[h>>2]|0)+24|0);uj((c[h>>2]|0)+40|0);uj((c[h>>2]|0)+56|0);a[(c[h>>2]|0)+77>>0]=1;e=c[h>>2]|0;i=j;return e|0}function Zj(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;b=d+4|0;e=d;c[b>>2]=a;c[e>>2]=xf(c[b>>2]|0,26688,2)|0;if((c[e>>2]|0)!=7){i=d;return}jh(c[b>>2]|0);i=d;return}function _j(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;g=k;b=k+24|0;e=k+20|0;d=k+16|0;f=k+12|0;h=k+8|0;j=k+4|0;c[b>>2]=a;c[d>>2]=1;if(!(c[382]|0)){i=k;return}c[e>>2]=0;while(1){if(!(c[d>>2]|0))break;if((c[e>>2]|0)>>>0>=(c[382]|0)>>>0){c[h>>2]=0;c[d>>2]=0}else c[h>>2]=c[(c[383]|0)+(c[e>>2]<<2)>>2];c[j>>2]=0;if((c[h>>2]|0)!=0?(a=Ob[c[h>>2]&255](c[b>>2]|0,j,3980)|0,c[f>>2]=a,(a|0)!=0):0){l=c[b>>2]|0;a=c[f>>2]|0;c[g>>2]=c[j>>2];hg(l,a,26649,g);c[d>>2]=0}Kd(c[j>>2]|0);c[e>>2]=(c[e>>2]|0)+1}i=k;return}function $j(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;b=k+24|0;d=k+20|0;j=k+16|0;e=k+12|0;g=k+8|0;f=k+4|0;h=k;c[d>>2]=a;c[j>>2]=0;c[e>>2]=0;c[g>>2]=0;c[f>>2]=0;c[h>>2]=0;ak(h);c[j>>2]=bk(c[d>>2]|0)|0;if(c[j>>2]|0){c[b>>2]=c[j>>2];j=c[b>>2]|0;i=k;return j|0}ck(g);dk(f);c[e>>2]=Id(20)|0;if(c[e>>2]|0)ek(c[e>>2]|0,1,1);else c[j>>2]=7;do if(!(c[j>>2]|0)){if(((fk(c[e>>2]|0,21308,7,c[g>>2]|0)|0)==0?(fk(c[e>>2]|0,21315,7,c[f>>2]|0)|0)==0:0)?(fk(c[e>>2]|0,21322,10,c[h>>2]|0)|0)==0:0)break;c[j>>2]=7}while(0);if((((((0==(c[j>>2]|0)?(h=gk(c[d>>2]|0,c[e>>2]|0,21332)|0,c[j>>2]=h,0==(h|0)):0)?(h=xf(c[d>>2]|0,21347,-1)|0,c[j>>2]=h,0==(h|0)):0)?(h=xf(c[d>>2]|0,21355,1)|0,c[j>>2]=h,0==(h|0)):0)?(h=xf(c[d>>2]|0,21363,1)|0,c[j>>2]=h,0==(h|0)):0)?(h=xf(c[d>>2]|0,21363,2)|0,c[j>>2]=h,0==(h|0)):0)?(h=xf(c[d>>2]|0,21373,1)|0,c[j>>2]=h,0==(h|0)):0){c[j>>2]=ef(c[d>>2]|0,21382,1692,c[e>>2]|0,151)|0;if(!(c[j>>2]|0))c[j>>2]=ef(c[d>>2]|0,21387,1692,c[e>>2]|0,0)|0;if(!(c[j>>2]|0))c[j>>2]=ik(c[d>>2]|0,c[e>>2]|0)|0;c[b>>2]=c[j>>2];j=c[b>>2]|0;i=k;return j|0}if(c[e>>2]|0){jk(c[e>>2]|0);Kd(c[e>>2]|0)}c[b>>2]=c[j>>2];j=c[b>>2]|0;i=k;return j|0}function ak(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;c[c[d>>2]>>2]=2312;i=b;return}function bk(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;c[b>>2]=df(c[e>>2]|0,26300,2220,0)|0;i=d;return c[b>>2]|0}function ck(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;c[c[d>>2]>>2]=2192;i=b;return}function dk(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;c[c[d>>2]>>2]=2164;i=b;return}function ek(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+16|0;g=f;j=f+5|0;h=f+4|0;c[g>>2]=b;a[j>>0]=d;a[h>>0]=e;a[c[g>>2]>>0]=a[j>>0]|0;a[(c[g>>2]|0)+1>>0]=a[h>>0]|0;c[(c[g>>2]|0)+8>>2]=0;c[(c[g>>2]|0)+4>>2]=0;c[(c[g>>2]|0)+12>>2]=0;c[(c[g>>2]|0)+16>>2]=0;i=f;return}function fk(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=i;i=i+48|0;k=s+40|0;l=s+36|0;m=s+32|0;n=s+28|0;o=s+24|0;q=s+20|0;p=s+16|0;g=s+12|0;r=s+8|0;t=s+4|0;h=s;c[l>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[t>>2]=Bk(a[c[l>>2]>>0]|0)|0;c[q>>2]=Yb[c[t>>2]&255](c[m>>2]|0,c[n>>2]|0)|0;c[p>>2]=c[q>>2]&(c[(c[l>>2]|0)+12>>2]|0)-1;c[g>>2]=Ck(c[l>>2]|0,c[m>>2]|0,c[n>>2]|0,c[p>>2]|0)|0;if(c[g>>2]|0){c[h>>2]=c[(c[g>>2]|0)+8>>2];if(!(c[o>>2]|0))Vp(c[l>>2]|0,c[g>>2]|0,c[p>>2]|0);else c[(c[g>>2]|0)+8>>2]=c[o>>2];c[k>>2]=c[h>>2];t=c[k>>2]|0;i=s;return t|0}if(!(c[o>>2]|0)){c[k>>2]=0;t=c[k>>2]|0;i=s;return t|0}if(!((c[(c[l>>2]|0)+12>>2]|0)==0?(Wp(c[l>>2]|0,8)|0)!=0:0))j=10;do if((j|0)==10){if((c[(c[l>>2]|0)+4>>2]|0)>=(c[(c[l>>2]|0)+12>>2]|0)?(Wp(c[l>>2]|0,c[(c[l>>2]|0)+12>>2]<<1)|0)!=0:0)break;c[r>>2]=Xp(20)|0;if(!(c[r>>2]|0)){c[k>>2]=c[o>>2];t=c[k>>2]|0;i=s;return t|0}do if((c[m>>2]|0)!=0?(a[(c[l>>2]|0)+1>>0]|0)!=0:0){f=Xp(c[n>>2]|0)|0;c[(c[r>>2]|0)+12>>2]=f;f=c[r>>2]|0;if(c[(c[r>>2]|0)+12>>2]|0){iR(c[f+12>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;break}kk(f);c[k>>2]=c[o>>2];t=c[k>>2]|0;i=s;return t|0}else c[(c[r>>2]|0)+12>>2]=c[m>>2];while(0);c[(c[r>>2]|0)+16>>2]=c[n>>2];t=(c[l>>2]|0)+4|0;c[t>>2]=(c[t>>2]|0)+1;c[p>>2]=c[q>>2]&(c[(c[l>>2]|0)+12>>2]|0)-1;Yp(c[l>>2]|0,(c[(c[l>>2]|0)+16>>2]|0)+(c[p>>2]<<3)|0,c[r>>2]|0);c[(c[r>>2]|0)+8>>2]=c[o>>2];c[k>>2]=0;t=c[k>>2]|0;i=s;return t|0}while(0);c[(c[l>>2]|0)+4>>2]=0;c[k>>2]=c[o>>2];t=c[k>>2]|0;i=s;return t|0}function gk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;j=i;i=i+32|0;e=j+20|0;k=j+16|0;f=j+12|0;h=j+8|0;g=j+4|0;c[e>>2]=a;c[k>>2]=b;c[f>>2]=d;c[h>>2]=0;c[g>>2]=c[k>>2];c[j>>2]=5;if(!(c[h>>2]|0))c[h>>2]=vf(c[e>>2]|0,c[f>>2]|0,1,5,c[g>>2]|0,225,0,0)|0;if(c[h>>2]|0){k=c[h>>2]|0;i=j;return k|0}c[h>>2]=vf(c[e>>2]|0,c[f>>2]|0,2,5,c[g>>2]|0,225,0,0)|0;k=c[h>>2]|0;i=j;return k|0}function hk(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;c[d>>2]=c[e>>2];jk(c[d>>2]|0);Kd(c[d>>2]|0);i=b;return}function ik(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+16|0;g=e+8|0;f=e+4|0;d=e;c[g>>2]=a;c[f>>2]=b;c[d>>2]=df(c[g>>2]|0,21392,1784,c[f>>2]|0)|0;i=e;return c[d>>2]|0}function jk(b){b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;e=g+4|0;f=g;c[d>>2]=b;c[e>>2]=c[(c[d>>2]|0)+8>>2];c[(c[d>>2]|0)+8>>2]=0;kk(c[(c[d>>2]|0)+16>>2]|0);c[(c[d>>2]|0)+16>>2]=0;c[(c[d>>2]|0)+12>>2]=0;while(1){if(!(c[e>>2]|0))break;c[f>>2]=c[c[e>>2]>>2];if((a[(c[d>>2]|0)+1>>0]|0)!=0?(c[(c[e>>2]|0)+12>>2]|0)!=0:0)kk(c[(c[e>>2]|0)+12>>2]|0);kk(c[e>>2]|0);c[e>>2]=c[f>>2]}c[(c[d>>2]|0)+4>>2]=0;i=g;return}function kk(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;Kd(c[d>>2]|0);i=b;return}function lk(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;w=i;i=i+64|0;h=w+56|0;x=w+52|0;j=w+48|0;k=w+44|0;l=w+40|0;m=w+36|0;n=w+32|0;s=w+28|0;r=w+24|0;t=w+20|0;u=w+16|0;p=w+12|0;q=w+8|0;v=w+4|0;o=w;c[x>>2]=a;c[j>>2]=b;c[k>>2]=d;c[l>>2]=e;c[m>>2]=f;c[n>>2]=g;c[s>>2]=0;c[r>>2]=0;c[t>>2]=0;c[p>>2]=0;c[u>>2]=ff(c[x>>2]|0,21405)|0;if(c[u>>2]|0){c[h>>2]=c[u>>2];x=c[h>>2]|0;i=w;return x|0}c[q>>2]=(c[k>>2]|0)-3;c[u>>2]=wk(c[q>>2]|0,(c[l>>2]|0)+12|0,p)|0;if(!(c[u>>2]|0)){if((c[q>>2]|0)<1)c[v>>2]=21308;else c[v>>2]=c[c[p>>2]>>2];c[u>>2]=xk(c[j>>2]|0,c[v>>2]|0,r,c[n>>2]|0)|0}if(!(c[u>>2]|0)){c[o>>2]=(c[p>>2]|0)+4;c[u>>2]=Ob[c[(c[r>>2]|0)+4>>2]&255]((c[q>>2]|0)>1?(c[q>>2]|0)-1|0:0,c[o>>2]|0,t)|0}if((c[u>>2]|0)==0?(c[s>>2]=Id(20)|0,(c[s>>2]|0)==0):0)c[u>>2]=7;if(c[u>>2]|0){if(c[t>>2]|0)Tb[c[(c[r>>2]|0)+8>>2]&255](c[t>>2]|0)|0}else{x=c[s>>2]|0;c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;c[x+12>>2]=0;c[x+16>>2]=0;c[(c[s>>2]|0)+12>>2]=c[r>>2];c[(c[s>>2]|0)+16>>2]=c[t>>2];c[c[m>>2]>>2]=c[s>>2]}Kd(c[p>>2]|0);c[h>>2]=c[u>>2];x=c[h>>2]|0;i=w;return x|0}function mk(b,e){b=b|0;e=e|0;var f=0,g=0,j=0,k=0;k=i;i=i+16|0;f=k+12|0;g=k+4|0;j=k;c[k+8>>2]=b;c[g>>2]=e;c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[c[g>>2]>>2]|0)){e=8;break}if(((d[(c[(c[g>>2]|0)+4>>2]|0)+((c[j>>2]|0)*12|0)+5>>0]|0|0)!=0?(c[(c[(c[g>>2]|0)+4>>2]|0)+((c[j>>2]|0)*12|0)>>2]|0)==0:0)?(d[(c[(c[g>>2]|0)+4>>2]|0)+((c[j>>2]|0)*12|0)+4>>0]|0|0)==2:0){e=6;break}c[j>>2]=(c[j>>2]|0)+1}if((e|0)==6){c[(c[g>>2]|0)+20>>2]=1;c[(c[(c[g>>2]|0)+16>>2]|0)+(c[j>>2]<<3)>>2]=1;a[(c[(c[g>>2]|0)+16>>2]|0)+(c[j>>2]<<3)+4>>0]=1;h[(c[g>>2]|0)+40>>3]=1.0;c[f>>2]=0;j=c[f>>2]|0;i=k;return j|0}else if((e|0)==8){c[(c[g>>2]|0)+20>>2]=0;c[f>>2]=0;j=c[f>>2]|0;i=k;return j|0}return 0}function nk(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;c[d>>2]=c[e>>2];Tb[c[(c[(c[d>>2]|0)+12>>2]|0)+8>>2]&255](c[(c[d>>2]|0)+16>>2]|0)|0;Kd(c[d>>2]|0);i=b;return 0}function ok(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+12|0;e=g+4|0;f=g;c[g+8>>2]=a;c[e>>2]=b;c[f>>2]=Id(36)|0;if(!(c[f>>2]|0)){c[d>>2]=7;f=c[d>>2]|0;i=g;return f|0}else{a=c[f>>2]|0;b=a+36|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(b|0));c[c[e>>2]>>2]=c[f>>2];c[d>>2]=0;f=c[d>>2]|0;i=g;return f|0}return 0}function pk(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;c[d>>2]=c[e>>2];vk(c[d>>2]|0);Kd(c[d>>2]|0);i=b;return 0}function qk(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;q=i;i=i+48|0;h=q+40|0;j=q+36|0;r=q+32|0;k=q+20|0;o=q+16|0;m=q+12|0;n=q+8|0;p=q+4|0;l=q;c[j>>2]=b;c[r>>2]=d;c[q+28>>2]=e;c[q+24>>2]=f;c[k>>2]=g;c[o>>2]=1;c[m>>2]=c[j>>2];c[n>>2]=c[c[j>>2]>>2];vk(c[m>>2]|0);do if((c[r>>2]|0)==1){c[p>>2]=ae(c[c[k>>2]>>2]|0)|0;c[l>>2]=be(c[c[k>>2]>>2]|0)|0;r=Id((c[l>>2]|0)+1|0)|0;c[(c[m>>2]|0)+4>>2]=r;if(!(c[(c[m>>2]|0)+4>>2]|0)){c[o>>2]=7;break}iR(c[(c[m>>2]|0)+4>>2]|0,c[p>>2]|0,c[l>>2]|0)|0;a[(c[(c[m>>2]|0)+4>>2]|0)+(c[l>>2]|0)>>0]=0;c[o>>2]=Wb[c[(c[(c[n>>2]|0)+12>>2]|0)+12>>2]&255](c[(c[n>>2]|0)+16>>2]|0,c[(c[m>>2]|0)+4>>2]|0,c[l>>2]|0,(c[m>>2]|0)+8|0)|0;if(!(c[o>>2]|0))c[c[(c[m>>2]|0)+8>>2]>>2]=c[(c[n>>2]|0)+16>>2]}while(0);if(c[o>>2]|0){c[h>>2]=c[o>>2];r=c[h>>2]|0;i=q;return r|0}else{c[h>>2]=rk(c[j>>2]|0)|0;r=c[h>>2]|0;i=q;return r|0}return 0}function rk(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;e=i;i=i+16|0;g=e+12|0;b=e+8|0;f=e+4|0;
  48. d=e;c[g>>2]=a;c[b>>2]=c[g>>2];c[f>>2]=c[c[g>>2]>>2];a=(c[b>>2]|0)+12|0;c[a>>2]=(c[a>>2]|0)+1;c[d>>2]=Sb[c[(c[(c[f>>2]|0)+12>>2]|0)+20>>2]&255](c[(c[b>>2]|0)+8>>2]|0,(c[b>>2]|0)+16|0,(c[b>>2]|0)+20|0,(c[b>>2]|0)+24|0,(c[b>>2]|0)+28|0,(c[b>>2]|0)+32|0)|0;if(!(c[d>>2]|0)){g=c[d>>2]|0;i=e;return g|0}vk(c[b>>2]|0);if((c[d>>2]|0)!=101){g=c[d>>2]|0;i=e;return g|0}c[d>>2]=0;g=c[d>>2]|0;i=e;return g|0}function sk(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;c[b>>2]=c[e>>2];i=d;return(c[(c[b>>2]|0)+16>>2]|0)==0|0}function tk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;g=i;i=i+16|0;j=g+12|0;e=g+8|0;h=g+4|0;f=g;c[j>>2]=a;c[e>>2]=b;c[h>>2]=d;c[f>>2]=c[j>>2];switch(c[h>>2]|0){case 0:{ne(c[e>>2]|0,c[(c[f>>2]|0)+4>>2]|0,-1,-1);i=g;return 0}case 1:{ne(c[e>>2]|0,c[(c[f>>2]|0)+16>>2]|0,c[(c[f>>2]|0)+20>>2]|0,-1);i=g;return 0}case 2:{ke(c[e>>2]|0,c[(c[f>>2]|0)+24>>2]|0);i=g;return 0}case 3:{ke(c[e>>2]|0,c[(c[f>>2]|0)+28>>2]|0);i=g;return 0}default:{ke(c[e>>2]|0,c[(c[f>>2]|0)+32>>2]|0);i=g;return 0}}return 0}function uk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;g=d+8|0;e=d+4|0;f=d;c[g>>2]=a;c[e>>2]=b;c[f>>2]=c[g>>2];a=c[(c[f>>2]|0)+12>>2]|0;b=c[e>>2]|0;c[b>>2]=a;c[b+4>>2]=((a|0)<0)<<31>>31;i=d;return 0}function vk(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;if(c[(c[b>>2]|0)+8>>2]|0){c[d>>2]=c[c[b>>2]>>2];Tb[c[(c[(c[d>>2]|0)+12>>2]|0)+16>>2]&255](c[(c[b>>2]|0)+8>>2]|0)|0;c[(c[b>>2]|0)+8>>2]=0}Kd(c[(c[b>>2]|0)+4>>2]|0);c[(c[b>>2]|0)+4>>2]=0;c[(c[b>>2]|0)+16>>2]=0;c[(c[b>>2]|0)+20>>2]=0;c[(c[b>>2]|0)+24>>2]=0;c[(c[b>>2]|0)+28>>2]=0;c[(c[b>>2]|0)+32>>2]=0;c[(c[b>>2]|0)+12>>2]=0;i=e;return}function wk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+48|0;e=o+32|0;f=o+28|0;g=o+24|0;n=o+20|0;j=o+16|0;l=o+12|0;h=o+8|0;m=o+4|0;k=o;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[n>>2]=0;if(!(c[e>>2]|0)){c[c[g>>2]>>2]=0;n=c[n>>2]|0;i=o;return n|0}c[l>>2]=0;c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[e>>2]|0))break;d=(BQ(c[(c[f>>2]|0)+(c[j>>2]<<2)>>2]|0)|0)+1|0;c[l>>2]=(c[l>>2]|0)+d;c[j>>2]=(c[j>>2]|0)+1}d=Id((c[e>>2]<<2)+(c[l>>2]|0)|0)|0;c[h>>2]=d;c[c[g>>2]>>2]=d;if(!(c[h>>2]|0)){c[n>>2]=7;n=c[n>>2]|0;i=o;return n|0}c[m>>2]=(c[h>>2]|0)+(c[e>>2]<<2);c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[e>>2]|0))break;c[k>>2]=BQ(c[(c[f>>2]|0)+(c[j>>2]<<2)>>2]|0)|0;c[(c[h>>2]|0)+(c[j>>2]<<2)>>2]=c[m>>2];iR(c[m>>2]|0,c[(c[f>>2]|0)+(c[j>>2]<<2)>>2]|0,(c[k>>2]|0)+1|0)|0;Ik(c[m>>2]|0);c[m>>2]=(c[m>>2]|0)+((c[k>>2]|0)+1);c[j>>2]=(c[j>>2]|0)+1}n=c[n>>2]|0;i=o;return n|0}function xk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;m=i;i=i+32|0;l=m;f=m+28|0;o=m+24|0;g=m+20|0;h=m+16|0;j=m+12|0;k=m+8|0;n=m+4|0;c[o>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[n>>2]=BQ(c[g>>2]|0)|0;c[k>>2]=yk(c[o>>2]|0,c[g>>2]|0,(c[n>>2]|0)+1|0)|0;if(c[k>>2]|0){c[c[h>>2]>>2]=c[k>>2];c[f>>2]=0;o=c[f>>2]|0;i=m;return o|0}else{o=c[j>>2]|0;c[l>>2]=c[g>>2];zk(o,21456,l);c[f>>2]=1;o=c[f>>2]|0;i=m;return o|0}return 0}function yk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;f=i;i=i+16|0;j=f+12|0;h=f+8|0;g=f+4|0;e=f;c[j>>2]=a;c[h>>2]=b;c[g>>2]=d;c[e>>2]=Ak(c[j>>2]|0,c[h>>2]|0,c[g>>2]|0)|0;if(!(c[e>>2]|0)){j=0;i=f;return j|0}j=c[(c[e>>2]|0)+8>>2]|0;i=f;return j|0}function zk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+32|0;f=e+20|0;h=e+16|0;g=e;c[f>>2]=a;c[h>>2]=b;Kd(c[c[f>>2]>>2]|0);c[g>>2]=d;b=Nd(c[h>>2]|0,g)|0;c[c[f>>2]>>2]=b;i=e;return}function Ak(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;f=m+20|0;g=m+16|0;h=m+12|0;j=m+8|0;k=m+4|0;l=m;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;if((c[g>>2]|0)!=0?(c[(c[g>>2]|0)+16>>2]|0)!=0:0){c[l>>2]=Bk(a[c[g>>2]>>0]|0)|0;c[k>>2]=Yb[c[l>>2]&255](c[h>>2]|0,c[j>>2]|0)|0;c[f>>2]=Ck(c[g>>2]|0,c[h>>2]|0,c[j>>2]|0,c[k>>2]&(c[(c[g>>2]|0)+12>>2]|0)-1)|0;l=c[f>>2]|0;i=m;return l|0}c[f>>2]=0;l=c[f>>2]|0;i=m;return l|0}function Bk(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;b=d+4|0;e=d;c[e>>2]=a;if((c[e>>2]|0)==1)c[b>>2]=180;else c[b>>2]=181;i=d;return c[b>>2]|0}function Ck(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;k=q+32|0;g=q+28|0;l=q+24|0;m=q+20|0;h=q+16|0;o=q+12|0;n=q+8|0;p=q+4|0;j=q;c[g>>2]=b;c[l>>2]=d;c[m>>2]=e;c[h>>2]=f;a:do if(c[(c[g>>2]|0)+16>>2]|0){c[j>>2]=(c[(c[g>>2]|0)+16>>2]|0)+(c[h>>2]<<3);c[o>>2]=c[(c[j>>2]|0)+4>>2];c[n>>2]=c[c[j>>2]>>2];c[p>>2]=Dk(a[c[g>>2]>>0]|0)|0;while(1){d=c[n>>2]|0;c[n>>2]=d+-1;if(!((d|0)!=0?(c[o>>2]|0)!=0:0))break a;d=(Wb[c[p>>2]&255](c[(c[o>>2]|0)+12>>2]|0,c[(c[o>>2]|0)+16>>2]|0,c[l>>2]|0,c[m>>2]|0)|0)==0;g=c[o>>2]|0;if(d)break;c[o>>2]=c[g>>2]}c[k>>2]=g;p=c[k>>2]|0;i=q;return p|0}while(0);c[k>>2]=0;p=c[k>>2]|0;i=q;return p|0}function Dk(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;b=d+4|0;e=d;c[e>>2]=a;if((c[e>>2]|0)==1)c[b>>2]=142;else c[b>>2]=143;i=d;return c[b>>2]|0}function Ek(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;f=k+16|0;g=k+12|0;h=k+8|0;j=k+4|0;l=k;c[g>>2]=a;c[h>>2]=b;c[j>>2]=d;c[l>>2]=e;if((c[h>>2]|0)!=(c[l>>2]|0)){c[f>>2]=1;l=c[f>>2]|0;i=k;return l|0}else{c[f>>2]=CQ(c[g>>2]|0,c[j>>2]|0,c[h>>2]|0)|0;l=c[f>>2]|0;i=k;return l|0}return 0}function Fk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;f=k+16|0;g=k+12|0;h=k+8|0;j=k+4|0;l=k;c[g>>2]=a;c[h>>2]=b;c[j>>2]=d;c[l>>2]=e;if((c[h>>2]|0)!=(c[l>>2]|0)){c[f>>2]=1;l=c[f>>2]|0;i=k;return l|0}else{c[f>>2]=vQ(c[g>>2]|0,c[j>>2]|0,c[h>>2]|0)|0;l=c[f>>2]|0;i=k;return l|0}return 0}function Gk(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;h=i;i=i+16|0;j=h+12|0;e=h+8|0;g=h+4|0;f=h;c[j>>2]=b;c[e>>2]=d;c[g>>2]=c[j>>2];c[f>>2]=0;if((c[e>>2]|0)<=0)c[e>>2]=BQ(c[g>>2]|0)|0;while(1){d=c[f>>2]|0;if((c[e>>2]|0)<=0)break;b=d<<3^c[f>>2];j=c[g>>2]|0;c[g>>2]=j+1;c[f>>2]=b^a[j>>0];c[e>>2]=(c[e>>2]|0)+-1}i=h;return d&2147483647|0}function Hk(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;h=i;i=i+16|0;j=h+12|0;e=h+8|0;f=h+4|0;g=h;c[j>>2]=b;c[e>>2]=d;c[f>>2]=0;c[g>>2]=c[j>>2];while(1){j=c[e>>2]|0;c[e>>2]=j+-1;d=c[f>>2]|0;if((j|0)<=0)break;b=d<<3^c[f>>2];j=c[g>>2]|0;c[g>>2]=j+1;c[f>>2]=b^a[j>>0]}i=h;return d&2147483647|0}function Ik(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;e=j+8|0;h=j+12|0;f=j+4|0;g=j;c[e>>2]=b;a[h>>0]=a[c[e>>2]>>0]|0;if((((a[h>>0]|0)!=91?(a[h>>0]|0)!=39:0)?(a[h>>0]|0)!=34:0)?(a[h>>0]|0)!=96:0){i=j;return}c[f>>2]=1;c[g>>2]=0;if((a[h>>0]|0)==91)a[h>>0]=93;while(1){if(!(a[(c[e>>2]|0)+(c[f>>2]|0)>>0]|0))break;b=c[f>>2]|0;d=b+1|0;if((a[(c[e>>2]|0)+(c[f>>2]|0)>>0]|0)!=(a[h>>0]|0)){c[f>>2]=d;b=a[(c[e>>2]|0)+b>>0]|0;d=c[g>>2]|0;c[g>>2]=d+1;a[(c[e>>2]|0)+d>>0]=b;continue}if((a[(c[e>>2]|0)+d>>0]|0)!=(a[h>>0]|0))break;b=a[h>>0]|0;d=c[g>>2]|0;c[g>>2]=d+1;a[(c[e>>2]|0)+d>>0]=b;c[f>>2]=(c[f>>2]|0)+2}a[(c[e>>2]|0)+(c[g>>2]|0)>>0]=0;i=j;return}function Jk(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0;h=i;i=i+32|0;o=h+20|0;n=h+16|0;m=h+12|0;l=h+8|0;k=h+4|0;j=h;c[o>>2]=a;c[n>>2]=b;c[m>>2]=d;c[l>>2]=e;c[k>>2]=f;c[j>>2]=g;g=Fp(1,c[o>>2]|0,c[n>>2]|0,c[m>>2]|0,c[l>>2]|0,c[k>>2]|0,c[j>>2]|0)|0;i=h;return g|0}function Kk(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0;h=i;i=i+32|0;o=h+20|0;n=h+16|0;m=h+12|0;l=h+8|0;k=h+4|0;j=h;c[o>>2]=a;c[n>>2]=b;c[m>>2]=d;c[l>>2]=e;c[k>>2]=f;c[j>>2]=g;g=Fp(0,c[o>>2]|0,c[n>>2]|0,c[m>>2]|0,c[l>>2]|0,c[k>>2]|0,c[j>>2]|0)|0;i=h;return g|0}function Lk(b,e){b=b|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;u=i;i=i+64|0;r=u+48|0;v=u+44|0;s=u+40|0;o=u+36|0;g=u+32|0;j=u+28|0;n=u+24|0;k=u+20|0;l=u+16|0;m=u+12|0;f=u+8|0;p=u+4|0;t=u;c[v>>2]=b;c[s>>2]=e;c[o>>2]=c[v>>2];c[j>>2]=-1;c[n>>2]=-1;c[k>>2]=-1;c[l>>2]=-1;c[(c[s>>2]|0)+20>>2]=0;h[(c[s>>2]|0)+40>>3]=5.0e6;c[g>>2]=0;a:while(1){if((c[g>>2]|0)>=(c[c[s>>2]>>2]|0))break;c[p>>2]=(c[(c[s>>2]|0)+4>>2]|0)+((c[g>>2]|0)*12|0);e=c[p>>2]|0;b:do if(!(d[(c[p>>2]|0)+5>>0]|0)){if((d[e+4>>0]|0)==64){q=5;break a}}else{if((c[e>>2]|0)<0)e=1;else e=(c[c[p>>2]>>2]|0)==((c[(c[o>>2]|0)+24>>2]|0)+1|0);c[f>>2]=e&1;if((c[j>>2]|0)<0?(c[f>>2]|0)!=0?(d[(c[p>>2]|0)+4>>0]|0)==2:0:0){c[(c[s>>2]|0)+20>>2]=1;h[(c[s>>2]|0)+40>>3]=1.0;c[j>>2]=c[g>>2]}if(((d[(c[p>>2]|0)+4>>0]|0)==64?(c[c[p>>2]>>2]|0)>=0:0)?(c[c[p>>2]>>2]|0)<=(c[(c[o>>2]|0)+24>>2]|0):0){c[(c[s>>2]|0)+20>>2]=2+(c[c[p>>2]>>2]|0);h[(c[s>>2]|0)+40>>3]=2.0;c[j>>2]=c[g>>2]}if((d[(c[p>>2]|0)+4>>0]|0)==2?(c[c[p>>2]>>2]|0)==((c[(c[o>>2]|0)+24>>2]|0)+2|0):0)c[n>>2]=c[g>>2];if(c[f>>2]|0)switch(d[(c[p>>2]|0)+4>>0]|0){case 4:case 32:{c[k>>2]=c[g>>2];break b}case 16:case 8:{c[l>>2]=c[g>>2];break b}default:break b}}while(0);c[g>>2]=(c[g>>2]|0)+1}if((q|0)==5){c[(c[s>>2]|0)+20>>2]=0;h[(c[s>>2]|0)+40>>3]=1.e+50;Dp(c[s>>2]|0,0,262144);c[r>>2]=0;v=c[r>>2]|0;i=u;return v|0}if((c[(c[s>>2]|0)+20>>2]|0)==1)Ep(c[s>>2]|0);c[m>>2]=1;if((c[j>>2]|0)>=0){v=c[m>>2]|0;c[m>>2]=v+1;c[(c[(c[s>>2]|0)+16>>2]|0)+(c[j>>2]<<3)>>2]=v;a[(c[(c[s>>2]|0)+16>>2]|0)+(c[j>>2]<<3)+4>>0]=1}if((c[n>>2]|0)>=0){v=(c[s>>2]|0)+20|0;c[v>>2]=c[v>>2]|65536;v=c[m>>2]|0;c[m>>2]=v+1;c[(c[(c[s>>2]|0)+16>>2]|0)+(c[n>>2]<<3)>>2]=v}if((c[k>>2]|0)>=0){v=(c[s>>2]|0)+20|0;c[v>>2]=c[v>>2]|131072;v=c[m>>2]|0;c[m>>2]=v+1;c[(c[(c[s>>2]|0)+16>>2]|0)+(c[k>>2]<<3)>>2]=v}if((c[l>>2]|0)>=0){v=(c[s>>2]|0)+20|0;c[v>>2]=c[v>>2]|262144;v=c[m>>2]|0;c[m>>2]=v+1;c[(c[(c[s>>2]|0)+16>>2]|0)+(c[l>>2]<<3)>>2]=v}do if((c[(c[s>>2]|0)+8>>2]|0)==1){c[t>>2]=c[(c[s>>2]|0)+12>>2];if((c[c[t>>2]>>2]|0)>=0?(c[c[t>>2]>>2]|0)!=((c[(c[o>>2]|0)+24>>2]|0)+1|0):0)break;e=(c[s>>2]|0)+24|0;if(a[(c[t>>2]|0)+4>>0]|0)c[e>>2]=24471;else c[e>>2]=24476;c[(c[s>>2]|0)+32>>2]=1}while(0);c[r>>2]=0;v=c[r>>2]|0;i=u;return v|0}function Mk(a){a=a|0;var b=0,d=0,e=0,f=0;e=i;i=i+16|0;f=e+8|0;d=e+4|0;b=e;c[f>>2]=a;c[d>>2]=c[f>>2];c[b>>2]=0;while(1){if((c[b>>2]|0)>=40)break;Yd(c[(c[d>>2]|0)+56+(c[b>>2]<<2)>>2]|0)|0;c[b>>2]=(c[b>>2]|0)+1}Kd(c[(c[d>>2]|0)+240>>2]|0);Kd(c[(c[d>>2]|0)+216>>2]|0);Kd(c[(c[d>>2]|0)+220>>2]|0);Kd(c[(c[d>>2]|0)+40>>2]|0);Kd(c[(c[d>>2]|0)+44>>2]|0);Tb[c[(c[c[(c[d>>2]|0)+36>>2]>>2]|0)+8>>2]&255](c[(c[d>>2]|0)+36>>2]|0)|0;Kd(c[d>>2]|0);i=e;return 0}function Nk(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;n=i;i=i+64|0;j=n+32|0;h=n+24|0;l=n+16|0;k=n+8|0;g=n;b=n+56|0;e=n+52|0;f=n+48|0;m=n+44|0;d=n+40|0;c[b>>2]=a;c[e>>2]=c[b>>2];c[f>>2]=0;c[m>>2]=c[(c[e>>2]|0)+16>>2];c[d>>2]=c[(c[e>>2]|0)+12>>2];if(!(c[(c[e>>2]|0)+40>>2]|0)){a=c[d>>2]|0;o=c[(c[e>>2]|0)+20>>2]|0;c[g>>2]=c[m>>2];c[g+4>>2]=o;hl(f,a,24671,g)}o=c[d>>2]|0;g=c[(c[e>>2]|0)+20>>2]|0;c[k>>2]=c[m>>2];c[k+4>>2]=g;hl(f,o,24708,k);o=c[d>>2]|0;k=c[(c[e>>2]|0)+20>>2]|0;c[l>>2]=c[m>>2];c[l+4>>2]=k;hl(f,o,24746,l);o=c[d>>2]|0;l=c[(c[e>>2]|0)+20>>2]|0;c[h>>2]=c[m>>2];c[h+4>>2]=l;hl(f,o,24782,h);o=c[d>>2]|0;l=c[(c[e>>2]|0)+20>>2]|0;c[j>>2]=c[m>>2];c[j+4>>2]=l;hl(f,o,24819,j);if(!(c[f>>2]|0)){o=Mk(c[b>>2]|0)|0;i=n;return o|0}else{o=c[f>>2]|0;i=n;return o|0}return 0}function Ok(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=i;i=i+16|0;e=f+12|0;g=f+4|0;d=f;c[f+8>>2]=a;c[g>>2]=b;b=Id(96)|0;c[d>>2]=b;c[c[g>>2]>>2]=b;if(c[d>>2]|0){d=c[d>>2]|0;a=d+96|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(a|0));c[e>>2]=0;g=c[e>>2]|0;i=f;return g|0}else{c[e>>2]=7;g=c[e>>2]|0;i=f;return g|0}return 0}function Pk(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;c[d>>2]=c[e>>2];Yd(c[(c[d>>2]|0)+8>>2]|0)|0;ap(c[(c[d>>2]|0)+12>>2]|0);Cp(c[d>>2]|0);Kd(c[(c[d>>2]|0)+44>>2]|0);tm(c[(c[d>>2]|0)+92>>2]|0);Kd(c[d>>2]|0);i=b;return 0}function Qk(e,f,g,h,j){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0;E=i;i=i+112|0;B=E+32|0;A=E;t=E+108|0;u=E+104|0;k=E+100|0;n=E+96|0;l=E+88|0;z=E+84|0;D=E+80|0;o=E+76|0;v=E+72|0;w=E+68|0;q=E+64|0;r=E+60|0;x=E+56|0;y=E+52|0;m=E+48|0;p=E+44|0;s=E+40|0;c[u>>2]=e;c[k>>2]=f;c[n>>2]=g;c[E+92>>2]=h;c[l>>2]=j;c[z>>2]=0;c[v>>2]=c[c[u>>2]>>2];c[w>>2]=c[u>>2];c[q>>2]=0;c[r>>2]=0;c[x>>2]=0;c[y>>2]=0;c[o>>2]=c[k>>2]&65535;c[m>>2]=0;if(c[o>>2]|0){e=c[m>>2]|0;c[m>>2]=e+1;c[q>>2]=c[(c[l>>2]|0)+(e<<2)>>2]}if(c[k>>2]&65536){e=c[m>>2]|0;c[m>>2]=e+1;c[r>>2]=c[(c[l>>2]|0)+(e<<2)>>2]}if(c[k>>2]&131072){e=c[m>>2]|0;c[m>>2]=e+1;c[x>>2]=c[(c[l>>2]|0)+(e<<2)>>2]}if(c[k>>2]&262144){e=c[m>>2]|0;c[m>>2]=e+1;c[y>>2]=c[(c[l>>2]|0)+(e<<2)>>2]}Yd(c[(c[w>>2]|0)+8>>2]|0)|0;Kd(c[(c[w>>2]|0)+44>>2]|0);tm(c[(c[w>>2]|0)+92>>2]|0);ap(c[(c[w>>2]|0)+12>>2]|0);k=(c[u>>2]|0)+4|0;l=k+92|0;do{c[k>>2]=0;k=k+4|0}while((k|0)<(l|0));e=bp(c[x>>2]|0,0,-2147483648)|0;h=(c[w>>2]|0)+72|0;c[h>>2]=e;c[h+4>>2]=C;h=bp(c[y>>2]|0,-1,2147483647)|0;e=(c[w>>2]|0)+80|0;c[e>>2]=h;c[e+4>>2]=C;if(c[n>>2]|0)a[(c[w>>2]|0)+52>>0]=(a[c[n>>2]>>0]|0)==68;else a[(c[w>>2]|0)+52>>0]=a[(c[v>>2]|0)+231>>0]|0;b[(c[w>>2]|0)+4>>1]=c[o>>2];do if((c[o>>2]|0)!=1&(c[o>>2]|0)!=0){c[p>>2]=(c[o>>2]|0)-2;c[s>>2]=ae(c[q>>2]|0)|0;if((c[s>>2]|0)==0?(fe(c[q>>2]|0)|0)!=5:0){c[t>>2]=7;D=c[t>>2]|0;i=E;return D|0}c[(c[w>>2]|0)+16>>2]=0;if(c[r>>2]|0){r=de(c[r>>2]|0)|0;c[(c[w>>2]|0)+16>>2]=r}c[z>>2]=cp(c[(c[v>>2]|0)+36>>2]|0,c[(c[w>>2]|0)+16>>2]|0,c[(c[v>>2]|0)+28>>2]|0,d[(c[v>>2]|0)+228>>0]|0,c[(c[v>>2]|0)+24>>2]|0,c[p>>2]|0,c[s>>2]|0,-1,(c[w>>2]|0)+12|0,(c[v>>2]|0)+8|0)|0;if(c[z>>2]|0){c[t>>2]=c[z>>2];D=c[t>>2]|0;i=E;return D|0}c[z>>2]=dp(c[w>>2]|0)|0;sm(c[v>>2]|0);if(!(c[z>>2]|0)){c[(c[w>>2]|0)+40>>2]=c[(c[w>>2]|0)+44>>2];s=(c[w>>2]|0)+32|0;c[s>>2]=0;c[s+4>>2]=0;break}c[t>>2]=c[z>>2];D=c[t>>2]|0;i=E;return D|0}while(0);do if(!(c[o>>2]|0)){k=c[(c[v>>2]|0)+216>>2]|0;l=c[w>>2]|0;if((c[x>>2]|0)!=0|(c[y>>2]|0)!=0){r=l+72|0;q=c[r>>2]|0;r=c[r+4>>2]|0;x=(c[w>>2]|0)+80|0;s=c[x>>2]|0;x=c[x+4>>2]|0;B=(d[(c[w>>2]|0)+52>>0]|0)!=0?24471:24476;c[A>>2]=k;y=A+8|0;c[y>>2]=q;c[y+4>>2]=r;y=A+16|0;c[y>>2]=s;c[y+4>>2]=x;c[A+24>>2]=B;c[D>>2]=Od(24480,A)|0}else{A=(d[l+52>>0]|0)!=0?24471:24476;c[B>>2]=k;c[B+4>>2]=A;c[D>>2]=Od(24542,B)|0}if(c[D>>2]|0){c[z>>2]=af(c[(c[v>>2]|0)+12>>2]|0,c[D>>2]|0,-1,(c[w>>2]|0)+8|0,0)|0;Kd(c[D>>2]|0);break}else{c[z>>2]=7;break}}else if((c[o>>2]|0)==1?(c[z>>2]=zn(c[w>>2]|0,(c[w>>2]|0)+8|0)|0,(c[z>>2]|0)==0):0)c[z>>2]=Pe(c[(c[w>>2]|0)+8>>2]|0,1,c[q>>2]|0)|0;while(0);if(c[z>>2]|0){c[t>>2]=c[z>>2];D=c[t>>2]|0;i=E;return D|0}else{c[t>>2]=Rk(c[u>>2]|0)|0;D=c[t>>2]|0;i=E;return D|0}return 0}function Rk(d){d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+8|0;g=h+4|0;f=h;c[e>>2]=d;c[f>>2]=c[e>>2];if((b[(c[f>>2]|0)+4>>1]|0)!=1?(b[(c[f>>2]|0)+4>>1]|0)!=0:0){c[g>>2]=$o(c[e>>2]|0)|0;g=c[g>>2]|0;i=h;return g|0}d=100!=(ue(c[(c[f>>2]|0)+8>>2]|0)|0);e=c[f>>2]|0;if(d){a[e+6>>0]=1;c[g>>2]=Zd(c[(c[f>>2]|0)+8>>2]|0)|0;g=c[g>>2]|0;i=h;return g|0}else{d=Ee(c[e+8>>2]|0,0)|0;f=(c[f>>2]|0)+32|0;c[f>>2]=d;c[f+4>>2]=C;c[g>>2]=0;g=c[g>>2]|0;i=h;return g|0}return 0}function Sk(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;b=e;c[b>>2]=a;i=e;return d[(c[b>>2]|0)+6>>0]|0|0}function Tk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;l=i;i=i+32|0;m=l+24|0;e=l+20|0;f=l+16|0;k=l+12|0;j=l+8|0;h=l+4|0;g=l;c[m>>2]=a;c[e>>2]=b;c[f>>2]=d;c[k>>2]=0;c[j>>2]=c[m>>2];c[h>>2]=c[c[m>>2]>>2];if((c[f>>2]|0)==((c[(c[h>>2]|0)+24>>2]|0)+1|0)){m=(c[j>>2]|0)+32|0;le(c[e>>2]|0,c[m>>2]|0,c[m+4>>2]|0);m=c[k>>2]|0;i=l;return m|0}if((c[f>>2]|0)==(c[(c[h>>2]|0)+24>>2]|0)){ge(c[e>>2]|0,j,4,-1);m=c[k>>2]|0;i=l;return m|0}if((c[f>>2]|0)==((c[(c[h>>2]|0)+24>>2]|0)+2|0)?(c[(c[j>>2]|0)+12>>2]|0)!=0:0){m=c[(c[j>>2]|0)+16>>2]|0;le(c[e>>2]|0,m,((m|0)<0)<<31>>31);m=c[k>>2]|0;i=l;return m|0}c[k>>2]=nn(0,c[j>>2]|0)|0;if(c[k>>2]|0){m=c[k>>2]|0;i=l;return m|0}if((c[f>>2]|0)==((c[(c[h>>2]|0)+24>>2]|0)+2|0)){c[g>>2]=0;if(c[(c[h>>2]|0)+44>>2]|0)c[g>>2]=De(c[(c[j>>2]|0)+8>>2]|0,(c[(c[h>>2]|0)+24>>2]|0)+1|0)|0;ke(c[e>>2]|0,c[g>>2]|0);m=c[k>>2]|0;i=l;return m|0}else{m=ze(c[(c[j>>2]|0)+8>>2]|0)|0;if((m|0)<=((c[f>>2]|0)+1|0)){m=c[k>>2]|0;i=l;return m|0}m=c[e>>2]|0;pe(m,Ge(c[(c[j>>2]|0)+8>>2]|0,(c[f>>2]|0)+1|0)|0);m=c[k>>2]|0;i=l;return m|0}return 0}function Uk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;g=d+8|0;f=d+4|0;e=d;c[g>>2]=a;c[f>>2]=b;c[e>>2]=c[g>>2];e=(c[e>>2]|0)+32|0;a=c[e+4>>2]|0;b=c[f>>2]|0;c[b>>2]=c[e>>2];c[b+4>>2]=a;i=d;return 0}function Vk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+16|0;k=f+12|0;j=f+8|0;h=f+4|0;g=f;c[k>>2]=a;c[j>>2]=b;c[h>>2]=d;c[g>>2]=e;a=Ao(c[k>>2]|0,c[j>>2]|0,c[h>>2]|0,c[g>>2]|0)|0;i=f;return a|0}function Wk(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;c[d>>2]=c[e>>2];c[(c[d>>2]|0)+52>>2]=0;a=fl(c[d>>2]|0)|0;i=b;return a|0}function Xk(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;g=i;i=i+32|0;h=g+20|0;e=g+12|0;f=g+8|0;d=g+4|0;b=g;c[h>>2]=a;c[g+16>>2]=64;c[e>>2]=c[h>>2];c[f>>2]=gl(c[e>>2]|0)|0;if(((((c[f>>2]|0)==0?(c[(c[e>>2]|0)+52>>2]|0)>>>0>4:0)?(c[(c[e>>2]|0)+48>>2]|0)!=0:0)?(c[(c[e>>2]|0)+48>>2]|0)!=255:0)?(c[d>>2]=0,c[f>>2]=_n(c[e>>2]|0,d)|0,c[b>>2]=_(c[(c[e>>2]|0)+52>>2]|0,c[d>>2]|0)|0,c[b>>2]=(c[b>>2]|0)+((c[b>>2]|0)/2|0),(c[b>>2]|0)>64):0)c[f>>2]=$n(c[e>>2]|0,c[b>>2]|0,c[(c[e>>2]|0)+48>>2]|0)|0;sm(c[e>>2]|0);i=g;return c[f>>2]|0}function Yk(a){a=a|0;var b=0;b=i;i=i+16|0;c[b>>2]=a;i=b;return 0}function Zk(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;c[d>>2]=c[e>>2];dl(c[d>>2]|0);i=b;return 0}function _k(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+80|0;j=m+64|0;n=m+60|0;g=m+48|0;k=m+44|0;l=m+8|0;h=m;c[n>>2]=e;e=c[n>>2]|0;c[m+56>>2]=a;c[m+52>>2]=b;c[g>>2]=d;c[k>>2]=e;c[m+40>>2]=f;c[l>>2]=c[509];c[l+4>>2]=c[510];c[l+8>>2]=c[511];c[l+12>>2]=c[512];c[l+16>>2]=c[513];c[l+20>>2]=c[514];c[l+24>>2]=c[515];c[l+28>>2]=c[516];c[h>>2]=0;while(1){if((c[h>>2]|0)>=4){b=6;break}n=(yQ(c[g>>2]|0,c[l+(c[h>>2]<<3)>>2]|0)|0)==0;a=c[h>>2]|0;if(n){b=4;break}c[h>>2]=a+1}if((b|0)==4){c[c[k>>2]>>2]=c[l+(a<<3)+4>>2];c[j>>2]=1;n=c[j>>2]|0;i=m;return n|0}else if((b|0)==6){c[j>>2]=0;n=c[j>>2]|0;i=m;return n|0}return 0}function $k(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=i;i=i+96|0;l=o+64|0;k=o+48|0;n=o+32|0;m=o+16|0;j=o;p=o+92|0;e=o+88|0;g=o+84|0;f=o+80|0;h=o+76|0;c[p>>2]=b;c[e>>2]=d;c[g>>2]=c[p>>2];c[f>>2]=c[(c[g>>2]|0)+12>>2];c[h>>2]=fl(c[g>>2]|0)|0;if(!(c[h>>2]|0))c[h>>2]=gl(c[g>>2]|0)|0;if(!(c[(c[g>>2]|0)+40>>2]|0)){p=c[f>>2]|0;b=c[(c[g>>2]|0)+20>>2]|0;d=c[e>>2]|0;c[j>>2]=c[(c[g>>2]|0)+16>>2];c[j+4>>2]=b;c[j+8>>2]=d;hl(h,p,21478,j)}if(a[(c[g>>2]|0)+230>>0]|0){p=c[f>>2]|0;j=c[(c[g>>2]|0)+20>>2]|0;d=c[e>>2]|0;c[m>>2]=c[(c[g>>2]|0)+16>>2];c[m+4>>2]=j;c[m+8>>2]=d;hl(h,p,21531,m)}if(a[(c[g>>2]|0)+229>>0]|0){p=c[f>>2]|0;m=c[(c[g>>2]|0)+20>>2]|0;d=c[e>>2]|0;c[n>>2]=c[(c[g>>2]|0)+16>>2];c[n+4>>2]=m;c[n+8>>2]=d;hl(h,p,21584,n)}p=c[f>>2]|0;d=c[(c[g>>2]|0)+20>>2]|0;n=c[e>>2]|0;c[k>>2]=c[(c[g>>2]|0)+16>>2];c[k+4>>2]=d;c[k+8>>2]=n;hl(h,p,21631,k);p=c[f>>2]|0;n=c[(c[g>>2]|0)+20>>2]|0;d=c[e>>2]|0;c[l>>2]=c[(c[g>>2]|0)+16>>2];c[l+4>>2]=n;c[l+8>>2]=d;hl(h,p,21685,l);i=o;return c[h>>2]|0}function al(a,b){a=a|0;b=b|0;var e=0,f=0,g=0;g=i;i=i+16|0;e=g+8|0;f=g;c[e>>2]=a;c[g+4>>2]=b;c[f>>2]=0;if(d[(c[e>>2]|0)+232>>0]|0){f=c[f>>2]|0;i=g;return f|0}c[f>>2]=Xk(c[e>>2]|0)|0;f=c[f>>2]|0;i=g;return f|0}function bl(a,b){a=a|0;b=b|0;var d=0;d=i;i=i+16|0;c[d+4>>2]=a;c[d>>2]=b;i=d;return 0}function cl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+8|0;e=d;c[f>>2]=a;c[d+4>>2]=b;c[e>>2]=c[f>>2];dl(c[e>>2]|0);i=d;return 0}function dl(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=i;i=i+32|0;b=h+16|0;d=h+12|0;e=h+8|0;f=h+4|0;g=h;c[b>>2]=a;c[d>>2]=0;while(1){if((c[d>>2]|0)>=(c[(c[b>>2]|0)+248>>2]|0))break;c[f>>2]=(c[(c[b>>2]|0)+252>>2]|0)+((c[d>>2]|0)*24|0)+4;c[e>>2]=c[(c[f>>2]|0)+8>>2];while(1){if(!(c[e>>2]|0))break;c[g>>2]=c[(c[e>>2]|0)+8>>2];el(c[g>>2]|0);c[e>>2]=c[c[e>>2]>>2]}jk(c[f>>2]|0);c[d>>2]=(c[d>>2]|0)+1}c[(c[b>>2]|0)+260>>2]=0;i=h;return}function el(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;Kd(c[d>>2]|0);i=b;return}function fl(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;j=m;e=m+28|0;h=m+24|0;k=m+20|0;l=m+16|0;g=m+12|0;f=m+8|0;c[e>>2]=b;c[h>>2]=0;if((d[(c[e>>2]|0)+229>>0]|0|0)!=2){l=c[h>>2]|0;i=m;return l|0}c[k>>2]=24028;k=c[k>>2]|0;b=c[(c[e>>2]|0)+20>>2]|0;c[j>>2]=c[(c[e>>2]|0)+16>>2];c[j+4>>2]=b;c[l>>2]=Od(k,j)|0;if(!(c[l>>2]|0)){c[h>>2]=7;l=c[h>>2]|0;i=m;return l|0}c[g>>2]=0;c[h>>2]=af(c[(c[e>>2]|0)+12>>2]|0,c[l>>2]|0,-1,g,0)|0;if((c[h>>2]|0)==0?(c[f>>2]=(ue(c[g>>2]|0)|0)==100&1,c[h>>2]=Yd(c[g>>2]|0)|0,(c[h>>2]|0)==0):0)a[(c[e>>2]|0)+229>>0]=c[f>>2];Kd(c[l>>2]|0);l=c[h>>2]|0;i=m;return l|0}function gl(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;e=j+12|0;h=j+8|0;f=j+4|0;g=j;c[e>>2]=a;c[h>>2]=0;c[f>>2]=0;while(1){if(!(c[h>>2]|0))a=(c[f>>2]|0)<(c[(c[e>>2]|0)+248>>2]|0);else a=0;b=c[e>>2]|0;if(!a)break;b=il(b,c[(c[e>>2]|0)+272>>2]|0,c[f>>2]|0,-1)|0;c[h>>2]=b;c[h>>2]=(c[h>>2]|0)==101?0:b;c[f>>2]=(c[f>>2]|0)+1}dl(b);if(c[h>>2]|0){h=c[h>>2]|0;i=j;return h|0}if(!(d[(c[e>>2]|0)+229>>0]|0)){h=c[h>>2]|0;i=j;return h|0}if((c[(c[e>>2]|0)+48>>2]|0)!=255){h=c[h>>2]|0;i=j;return h|0}if((c[(c[e>>2]|0)+52>>2]|0)>>>0<=0){h=c[h>>2]|0;i=j;return h|0}c[g>>2]=0;c[h>>2]=jl(c[e>>2]|0,22,g,0)|0;if(c[h>>2]|0){h=c[h>>2]|0;i=j;return h|0}Le(c[g>>2]|0,1,2)|0;c[h>>2]=ue(c[g>>2]|0)|0;if((c[h>>2]|0)==100){f=De(c[g>>2]|0,0)|0;c[(c[e>>2]|0)+48>>2]=f;if((c[(c[e>>2]|0)+48>>2]|0)==1)c[(c[e>>2]|0)+48>>2]=8}else if((c[h>>2]|0)==101)c[(c[e>>2]|0)+48>>2]=0;c[h>>2]=Zd(c[g>>2]|0)|0;h=c[h>>2]|0;i=j;return h|0}function hl(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+48|0;f=l+32|0;g=l+28|0;h=l+24|0;j=l+8|0;k=l;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;if(c[c[f>>2]>>2]|0){i=l;return}c[j>>2]=e;c[k>>2]=Nd(c[h>>2]|0,j)|0;if(!(c[k>>2]|0)){c[c[f>>2]>>2]=7;i=l;return}else{d=$e(c[g>>2]|0,c[k>>2]|0,0,0,0)|0;c[c[f>>2]>>2]=d;Kd(c[k>>2]|0);i=l;return}}function il(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+128|0;f=s+120|0;g=s+116|0;h=s+112|0;j=s+108|0;r=s+104|0;n=s+100|0;p=s+8|0;q=s+96|0;m=s+80|0;l=s+24|0;k=s+16|0;o=s;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[n>>2]=0;a=p;c[a>>2]=0;c[a+4>>2]=0;c[q>>2]=0;c[k>>2]=0;a=o;c[a>>2]=0;c[a+4>>2]=0;c[r>>2]=kl(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0,c[j>>2]|0,0,0,1,0,l)|0;a:do if((c[r>>2]|0)==0?(c[l+4>>2]|0)!=0:0){if((c[j>>2]|0)!=-1?(c[r>>2]=ll(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0,o)|0,(c[r>>2]|0)!=0):0)break;do if((c[j>>2]|0)==-2)if((c[l+4>>2]|0)==1){c[r>>2]=101;break a}else{b=o;e=c[b+4>>2]|0;a=p;c[a>>2]=c[b>>2];c[a+4>>2]=e;c[k>>2]=1;break}else{e=ml(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0,(c[j>>2]|0)+1|0)|0;a=p;c[a>>2]=e;c[a+4>>2]=C;c[r>>2]=nl(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0,(c[j>>2]|0)+1|0,n)|0;if((c[j>>2]|0)!=-1){a=p;b=c[a+4>>2]|0;d=o;e=c[d+4>>2]|0;d=(b|0)>(e|0)|((b|0)==(e|0)?(c[a>>2]|0)>>>0>(c[d>>2]|0)>>>0:0)}else d=0;c[k>>2]=d&1}while(0);if(!(c[r>>2]|0)){c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[m+12>>2]=1;a=m+12|0;c[a>>2]=c[a>>2]|((c[k>>2]|0)!=0?2:0);c[r>>2]=ol(c[f>>2]|0,l,m)|0;while(1){if(c[r>>2]|0)break;c[r>>2]=pl(c[f>>2]|0,l)|0;if((c[r>>2]|0)!=100)break;c[r>>2]=ql(c[f>>2]|0,q,1,c[l+40>>2]|0,c[l+44>>2]|0,c[l+48>>2]|0,c[l+52>>2]|0)|0}if(!(c[r>>2]|0)){if((c[j>>2]|0)!=-1){c[r>>2]=rl(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0,c[j>>2]|0,c[l>>2]|0,c[l+4>>2]|0)|0;if(!((c[r>>2]|0)==0&(c[q>>2]|0)!=0))break}else if(!(c[q>>2]|0))break;m=p;c[r>>2]=sl(c[f>>2]|0,c[q>>2]|0,c[m>>2]|0,c[m+4>>2]|0,c[n>>2]|0)|0;if(!(c[r>>2]|0)){if((c[j>>2]|0)!=-1?(n=p,k=c[n+4>>2]|0,o,m=c[o+4>>2]|0,!((k|0)<(m|0)|((k|0)==(m|0)?(c[n>>2]|0)>>>0<(c[o>>2]|0)>>>0:0))):0)break;o=p;p=(c[q>>2]|0)+56|0;c[r>>2]=tl(c[f>>2]|0,c[o>>2]|0,c[o+4>>2]|0,c[p>>2]|0,c[p+4>>2]|0)|0}}}}while(0);ul(c[q>>2]|0);vl(l);i=s;return c[r>>2]|0}function jl(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+240|0;o=t+24|0;n=t+16|0;g=t;h=t+228|0;j=t+224|0;q=t+220|0;k=t+216|0;f=t+56|0;s=t+48|0;r=t+44|0;p=t+40|0;l=t+36|0;m=t+32|0;c[h>>2]=a;c[j>>2]=b;c[q>>2]=d;c[k>>2]=e;iR(f|0,1876,160)|0;c[s>>2]=0;c[r>>2]=c[(c[h>>2]|0)+56+(c[j>>2]<<2)>>2];do if(!(c[r>>2]|0)){a=c[j>>2]|0;do if((c[j>>2]|0)!=18){e=c[f+(c[j>>2]<<2)>>2]|0;b=c[h>>2]|0;if((a|0)==7){c[n>>2]=c[b+216>>2];c[p>>2]=Od(e,n)|0;break}else{n=c[(c[h>>2]|0)+20>>2]|0;c[o>>2]=c[b+16>>2];c[o+4>>2]=n;c[p>>2]=Od(e,o)|0;break}}else{o=c[f+(a<<2)>>2]|0;f=c[(c[h>>2]|0)+20>>2]|0;n=c[(c[h>>2]|0)+220>>2]|0;c[g>>2]=c[(c[h>>2]|0)+16>>2];c[g+4>>2]=f;c[g+8>>2]=n;c[p>>2]=Od(o,g)|0}while(0);if(c[p>>2]|0){c[s>>2]=af(c[(c[h>>2]|0)+12>>2]|0,c[p>>2]|0,-1,r,0)|0;Kd(c[p>>2]|0);c[(c[h>>2]|0)+56+(c[j>>2]<<2)>>2]=c[r>>2];break}else{c[s>>2]=7;break}}while(0);if(!(c[k>>2]|0)){p=c[r>>2]|0;r=c[q>>2]|0;c[r>>2]=p;s=c[s>>2]|0;i=t;return s|0}c[m>>2]=Re(c[r>>2]|0)|0;c[l>>2]=0;while(1){if(c[s>>2]|0){e=15;break}if((c[l>>2]|0)>=(c[m>>2]|0)){e=15;break}c[s>>2]=Pe(c[r>>2]|0,(c[l>>2]|0)+1|0,c[(c[k>>2]|0)+(c[l>>2]<<2)>>2]|0)|0;c[l>>2]=(c[l>>2]|0)+1}if((e|0)==15){p=c[r>>2]|0;r=c[q>>2]|0;c[r>>2]=p;s=c[s>>2]|0;i=t;return s|0}return 0}function kl(a,b,d,e,f,g,h,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+48|0;l=u+32|0;m=u+28|0;n=u+24|0;o=u+20|0;p=u+16|0;q=u+12|0;r=u+8|0;s=u+4|0;t=u;c[l>>2]=a;c[m>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=j;c[t>>2]=k;d=c[t>>2]|0;b=d+56|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(b|0));t=dm(c[l>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0,c[r>>2]|0,c[s>>2]|0,c[t>>2]|0)|0;i=u;return t|0}function ll(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;f=n+24|0;g=n+20|0;h=n+16|0;j=n+12|0;k=n+8|0;l=n+4|0;m=n;c[g>>2]=a;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[m>>2]=jl(c[g>>2]|0,15,l,0)|0;if(c[m>>2]|0){c[f>>2]=c[m>>2];m=c[f>>2]|0;i=n;return m|0}m=c[l>>2]|0;e=ml(c[g>>2]|0,c[h>>2]|0,c[j>>2]|0,0)|0;Me(m,1,e,C)|0;e=c[l>>2]|0;m=ml(c[g>>2]|0,c[h>>2]|0,c[j>>2]|0,1023)|0;Me(e,2,m,C)|0;if(100==(ue(c[l>>2]|0)|0)){e=Ee(c[l>>2]|0,0)|0;m=c[k>>2]|0;c[m>>2]=e;c[m+4>>2]=C}c[f>>2]=Zd(c[l>>2]|0)|0;m=c[f>>2]|0;i=n;return m|0}function ml(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+32|0;k=f+20|0;l=f+16|0;j=f+12|0;g=f+8|0;h=f;c[k>>2]=a;c[l>>2]=b;c[j>>2]=d;c[g>>2]=e;a=c[l>>2]|0;e=c[(c[k>>2]|0)+248>>2]|0;e=rR(a|0,((a|0)<0)<<31>>31|0,e|0,((e|0)<0)<<31>>31|0)|0;a=c[j>>2]|0;a=gR(e|0,C|0,a|0,((a|0)<0)<<31>>31|0)|0;a=rR(a|0,C|0,1024,0)|0;e=h;c[e>>2]=a;c[e+4>>2]=C;e=h;a=c[g>>2]|0;a=gR(c[e>>2]|0,c[e+4>>2]|0,a|0,((a|0)<0)<<31>>31|0)|0;i=f;return a|0}function nl(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;g=p+28|0;h=p+24|0;j=p+20|0;k=p+16|0;l=p+12|0;o=p+8|0;n=p+4|0;m=p;c[g>>2]=a;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;c[m>>2]=0;c[o>>2]=jl(c[g>>2]|0,8,n,0)|0;if(!(c[o>>2]|0)){a=c[n>>2]|0;f=ml(c[g>>2]|0,c[h>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;Me(a,1,f,C)|0;if(100==(ue(c[n>>2]|0)|0))c[m>>2]=De(c[n>>2]|0,0)|0;c[o>>2]=Zd(c[n>>2]|0)|0}if(c[o>>2]|0){o=c[o>>2]|0;i=p;return o|0}if((c[m>>2]|0)>=16){c[o>>2]=il(c[g>>2]|0,c[h>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;c[c[l>>2]>>2]=0;o=c[o>>2]|0;i=p;return o|0}else{c[c[l>>2]>>2]=c[m>>2];o=c[o>>2]|0;i=p;return o|0}return 0}function ol(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;h=e+8|0;g=e+4|0;f=e;c[h>>2]=a;c[g>>2]=b;c[f>>2]=d;c[(c[g>>2]|0)+12>>2]=c[f>>2];d=bm(c[h>>2]|0,c[g>>2]|0,c[c[f>>2]>>2]|0,c[(c[f>>2]|0)+4>>2]|0)|0;i=e;return d|0}function pl(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;K=i;i=i+128|0;f=K+120|0;g=K+116|0;h=K+112|0;H=K+108|0;s=K+104|0;u=K+100|0;q=K+96|0;t=K+92|0;v=K+88|0;r=K+84|0;l=K+80|0;B=K+76|0;E=K+72|0;I=K+68|0;A=K+64|0;m=K+60|0;G=K+56|0;y=K+52|0;p=K+16|0;w=K+48|0;F=K+44|0;z=K+40|0;x=K+36|0;o=K+8|0;n=K;k=K+32|0;j=K+28|0;D=K+24|0;c[g>>2]=b;c[h>>2]=e;c[H>>2]=0;c[s>>2]=c[(c[(c[h>>2]|0)+12>>2]|0)+12>>2]&2;c[u>>2]=c[(c[(c[h>>2]|0)+12>>2]|0)+12>>2]&1;c[q>>2]=c[(c[(c[h>>2]|0)+12>>2]|0)+12>>2]&4;c[t>>2]=c[(c[(c[h>>2]|0)+12>>2]|0)+12>>2]&8;c[v>>2]=c[(c[(c[h>>2]|0)+12>>2]|0)+12>>2]&16;c[r>>2]=c[(c[(c[h>>2]|0)+12>>2]|0)+12>>2]&32;c[l>>2]=c[c[h>>2]>>2];c[B>>2]=c[(c[h>>2]|0)+4>>2];c[E>>2]=c[(c[h>>2]|0)+12>>2];c[I>>2]=(d[(c[g>>2]|0)+231>>0]|0)!=0?182:183;if(!(c[(c[h>>2]|0)+4>>2]|0)){c[f>>2]=0;J=c[f>>2]|0;i=K;return J|0}a:while(1){c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[(c[h>>2]|0)+8>>2]|0))break;c[G>>2]=c[(c[l>>2]|0)+(c[m>>2]<<2)>>2];if(a[(c[G>>2]|0)+4>>0]|0)Kl(c[G>>2]|0);else c[H>>2]=Ll(c[g>>2]|0,c[G>>2]|0,0)|0;if(c[H>>2]|0){J=9;break a}c[m>>2]=(c[m>>2]|0)+1}Nl(c[l>>2]|0,c[B>>2]|0,c[(c[h>>2]|0)+8>>2]|0,184);c[(c[h>>2]|0)+8>>2]=0;if(!(c[(c[c[l>>2]>>2]|0)+40>>2]|0)){J=61;break}c[(c[h>>2]|0)+44>>2]=c[(c[c[l>>2]>>2]|0)+60>>2];c[(c[h>>2]|0)+40>>2]=c[(c[c[l>>2]>>2]|0)+64>>2];if(!((c[v>>2]|0)!=0?1:(c[c[E>>2]>>2]|0)==0)){if((c[(c[h>>2]|0)+44>>2]|0)<(c[(c[E>>2]|0)+4>>2]|0)){J=61;break}if((c[t>>2]|0)==0?(c[(c[h>>2]|0)+44>>2]|0)>(c[(c[E>>2]|0)+4>>2]|0):0){J=61;break}if(vQ(c[(c[h>>2]|0)+40>>2]|0,c[c[E>>2]>>2]|0,c[(c[E>>2]|0)+4>>2]|0)|0){J=61;break}}c[A>>2]=1;while(1){if(((c[A>>2]|0)<(c[B>>2]|0)?(c[(c[(c[l>>2]|0)+(c[A>>2]<<2)>>2]|0)+40>>2]|0)!=0:0)?(c[(c[(c[l>>2]|0)+(c[A>>2]<<2)>>2]|0)+60>>2]|0)==(c[(c[h>>2]|0)+44>>2]|0):0)e=0==(vQ(c[(c[h>>2]|0)+40>>2]|0,c[(c[(c[l>>2]|0)+(c[A>>2]<<2)>>2]|0)+64>>2]|0,c[(c[h>>2]|0)+44>>2]|0)|0);else e=0;b=c[A>>2]|0;if(!e)break;c[A>>2]=b+1}do if(!((b|0)!=1|(c[s>>2]|0)!=0|(c[r>>2]|0)!=0)){if((d[(c[g>>2]|0)+231>>0]|0)!=0?((c[(c[c[l>>2]>>2]|0)+56>>2]|0)!=0|0)!=0:0){J=32;break}c[(c[h>>2]|0)+52>>2]=c[(c[c[l>>2]>>2]|0)+76>>2];if(c[(c[c[l>>2]>>2]|0)+56>>2]|0){c[H>>2]=Ol(c[h>>2]|0,c[(c[c[l>>2]>>2]|0)+72>>2]|0,c[(c[h>>2]|0)+52>>2]|0)|0;c[(c[h>>2]|0)+48>>2]=c[(c[h>>2]|0)+16>>2]}else c[(c[h>>2]|0)+48>>2]=c[(c[c[l>>2]>>2]|0)+72>>2];if(!(c[H>>2]|0))c[H>>2]=100}else J=32;while(0);if((J|0)==32){J=0;c[y>>2]=0;e=p;c[e>>2]=0;c[e+4>>2]=0;c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[A>>2]|0))break;Pl(c[g>>2]|0,c[(c[l>>2]|0)+(c[m>>2]<<2)>>2]|0)|0;c[m>>2]=(c[m>>2]|0)+1}Nl(c[l>>2]|0,c[A>>2]|0,c[A>>2]|0,c[I>>2]|0);while(1){if(!(c[(c[c[l>>2]>>2]|0)+80>>2]|0))break;c[F>>2]=0;c[z>>2]=0;L=(c[c[l>>2]>>2]|0)+88|0;b=c[L+4>>2]|0;e=o;c[e>>2]=c[L>>2];c[e+4>>2]=b;Ql(c[g>>2]|0,c[c[l>>2]>>2]|0,F,z)|0;c[w>>2]=1;while(1){if((c[w>>2]|0)>=(c[A>>2]|0))break;if(!(c[(c[(c[l>>2]|0)+(c[w>>2]<<2)>>2]|0)+80>>2]|0))break;e=(c[(c[l>>2]|0)+(c[w>>2]<<2)>>2]|0)+88|0;L=o;if(!((c[e>>2]|0)==(c[L>>2]|0)?(c[e+4>>2]|0)==(c[L+4>>2]|0):0))break;Ql(c[g>>2]|0,c[(c[l>>2]|0)+(c[w>>2]<<2)>>2]|0,0,0)|0;c[w>>2]=(c[w>>2]|0)+1}if(c[q>>2]|0)Rl(c[(c[E>>2]|0)+8>>2]|0,0,F,z);do if((c[s>>2]|0)==0|(c[z>>2]|0)>0){if((c[y>>2]|0)>0?(d[(c[g>>2]|0)+231>>0]|0)!=0:0){L=p;e=o;e=fR(c[L>>2]|0,c[L+4>>2]|0,c[e>>2]|0,c[e+4>>2]|0)|0;L=n;c[L>>2]=e;c[L+4>>2]=C}else{L=o;e=p;e=fR(c[L>>2]|0,c[L+4>>2]|0,c[e>>2]|0,c[e+4>>2]|0)|0;L=n;c[L>>2]=e;c[L+4>>2]=C}L=n;L=Dl(c[L>>2]|0,c[L+4>>2]|0)|0;c[x>>2]=L+((c[u>>2]|0)!=0?(c[z>>2]|0)+1|0:0);if(((c[y>>2]|0)+(c[x>>2]|0)|0)>(c[(c[h>>2]|0)+20>>2]|0)){c[(c[h>>2]|0)+20>>2]=(c[y>>2]|0)+(c[x>>2]|0)<<1;c[k>>2]=Ld(c[(c[h>>2]|0)+16>>2]|0,c[(c[h>>2]|0)+20>>2]|0)|0;if(!(c[k>>2]|0)){J=50;break a}c[(c[h>>2]|0)+16>>2]=c[k>>2]}b=(c[(c[h>>2]|0)+16>>2]|0)+(c[y>>2]|0)|0;if(c[r>>2]|0){c[j>>2]=b;L=n;c[D>>2]=Sl(c[L>>2]|0,c[L+4>>2]|0,c[F>>2]|0,c[z>>2]|0,c[j>>2]|0)|0;if(!(c[D>>2]|0))break;b=o;e=c[b+4>>2]|0;L=p;c[L>>2]=c[b>>2];c[L+4>>2]=e;c[y>>2]=(c[y>>2]|0)+(c[D>>2]|0);break}else{e=n;b=El(b,c[e>>2]|0,c[e+4>>2]|0)|0;c[y>>2]=(c[y>>2]|0)+b;b=o;e=c[b+4>>2]|0;L=p;c[L>>2]=c[b>>2];c[L+4>>2]=e;if(!(c[u>>2]|0))break;iR((c[(c[h>>2]|0)+16>>2]|0)+(c[y>>2]|0)|0,c[F>>2]|0,c[z>>2]|0)|0;c[y>>2]=(c[y>>2]|0)+(c[z>>2]|0);L=c[y>>2]|0;c[y>>2]=L+1;a[(c[(c[h>>2]|0)+16>>2]|0)+L>>0]=0;break}}while(0);Nl(c[l>>2]|0,c[A>>2]|0,c[w>>2]|0,c[I>>2]|0)}if((c[y>>2]|0)>0){c[(c[h>>2]|0)+48>>2]=c[(c[h>>2]|0)+16>>2];c[(c[h>>2]|0)+52>>2]=c[y>>2];c[H>>2]=100}}c[(c[h>>2]|0)+8>>2]=c[A>>2];if(c[H>>2]|0){J=61;break}}if((J|0)==9){c[f>>2]=c[H>>2];L=c[f>>2]|0;i=K;return L|0}else if((J|0)==50){c[f>>2]=7;L=c[f>>2]|0;i=K;return L|0}else if((J|0)==61){c[f>>2]=c[H>>2];L=c[f>>2]|0;i=K;return L|0}return 0}function ql(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=i;i=i+80|0;j=B+68|0;k=B+64|0;l=B+60|0;m=B+56|0;n=B+52|0;o=B+48|0;p=B+44|0;q=B+40|0;t=B+36|0;v=B+32|0;u=B+28|0;s=B+24|0;x=B+20|0;y=B+16|0;w=B+12|0;z=B+8|0;r=B+4|0;A=B;c[k>>2]=a;c[l>>2]=b;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[x>>2]=c[c[l>>2]>>2];if(!(c[x>>2]|0)){c[x>>2]=Id(64)|0;if(!(c[x>>2]|0)){c[j>>2]=7;A=c[j>>2]|0;i=B;return A|0}g=c[x>>2]|0;d=g+64|0;do{c[g>>2]=0;g=g+4|0}while((g|0)<(d|0));c[c[l>>2]>>2]=c[x>>2];l=Id(c[(c[k>>2]|0)+224>>2]|0)|0;c[(c[x>>2]|0)+48>>2]=l;if(!(c[(c[x>>2]|0)+48>>2]|0)){
  49. c[j>>2]=7;A=c[j>>2]|0;i=B;return A|0}c[(c[x>>2]|0)+40>>2]=c[(c[k>>2]|0)+224>>2];c[y>>2]=jl(c[k>>2]|0,10,w,0)|0;if(c[y>>2]|0){c[j>>2]=c[y>>2];A=c[j>>2]|0;i=B;return A|0}if(100==(ue(c[w>>2]|0)|0)){e=Ee(c[w>>2]|0,0)|0;b=(c[x>>2]|0)+16|0;c[b>>2]=e;c[b+4>>2]=C;b=(c[x>>2]|0)+16|0;e=c[b+4>>2]|0;l=(c[x>>2]|0)+8|0;c[l>>2]=c[b>>2];c[l+4>>2]=e}c[y>>2]=Zd(c[w>>2]|0)|0;if(c[y>>2]|0){c[j>>2]=c[y>>2];A=c[j>>2]|0;i=B;return A|0}}c[s>>2]=c[(c[x>>2]|0)+44>>2];c[t>>2]=Gl(c[(c[x>>2]|0)+24>>2]|0,c[(c[x>>2]|0)+28>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;c[v>>2]=(c[o>>2]|0)-(c[t>>2]|0);y=c[t>>2]|0;y=Dl(y,((y|0)<0)<<31>>31)|0;w=c[v>>2]|0;w=y+(Dl(w,((w|0)<0)<<31>>31)|0)|0;w=w+(c[v>>2]|0)|0;y=c[q>>2]|0;y=w+(Dl(y,((y|0)<0)<<31>>31)|0)|0;c[u>>2]=y+(c[q>>2]|0);do if((c[s>>2]|0)>0?((c[s>>2]|0)+(c[u>>2]|0)|0)>(c[(c[k>>2]|0)+224>>2]|0):0){l=c[k>>2]|0;e=(c[x>>2]|0)+16|0;y=e;w=c[y>>2]|0;y=c[y+4>>2]|0;b=gR(w|0,y|0,1,0)|0;c[e>>2]=b;c[e+4>>2]=C;c[z>>2]=zl(l,w,y,c[(c[x>>2]|0)+48>>2]|0,c[s>>2]|0)|0;if(c[z>>2]|0){c[j>>2]=c[z>>2];A=c[j>>2]|0;i=B;return A|0}y=(c[k>>2]|0)+52|0;c[y>>2]=(c[y>>2]|0)+1;c[z>>2]=Hl(c[k>>2]|0,c[x>>2]|0,c[m>>2]|0,c[n>>2]|0,(c[t>>2]|0)+1|0)|0;if(!(c[z>>2]|0)){c[s>>2]=0;c[(c[x>>2]|0)+28>>2]=0;c[t>>2]=0;c[v>>2]=c[o>>2];y=c[o>>2]|0;y=1+(Dl(y,((y|0)<0)<<31>>31)|0)|0;y=y+(c[o>>2]|0)|0;z=c[q>>2]|0;z=y+(Dl(z,((z|0)<0)<<31>>31)|0)|0;c[u>>2]=z+(c[q>>2]|0);break}c[j>>2]=c[z>>2];A=c[j>>2]|0;i=B;return A|0}while(0);y=c[u>>2]|0;z=(c[x>>2]|0)+56|0;w=z;y=gR(c[w>>2]|0,c[w+4>>2]|0,y|0,((y|0)<0)<<31>>31|0)|0;c[z>>2]=y;c[z+4>>2]=C;do if((c[u>>2]|0)>(c[(c[x>>2]|0)+40>>2]|0)){c[r>>2]=Ld(c[(c[x>>2]|0)+48>>2]|0,c[u>>2]|0)|0;if(c[r>>2]|0){c[(c[x>>2]|0)+48>>2]=c[r>>2];c[(c[x>>2]|0)+40>>2]=c[u>>2];break}c[j>>2]=7;A=c[j>>2]|0;i=B;return A|0}while(0);z=c[t>>2]|0;z=El((c[(c[x>>2]|0)+48>>2]|0)+(c[s>>2]|0)|0,z,((z|0)<0)<<31>>31)|0;c[s>>2]=(c[s>>2]|0)+z;z=c[v>>2]|0;z=El((c[(c[x>>2]|0)+48>>2]|0)+(c[s>>2]|0)|0,z,((z|0)<0)<<31>>31)|0;c[s>>2]=(c[s>>2]|0)+z;iR((c[(c[x>>2]|0)+48>>2]|0)+(c[s>>2]|0)|0,(c[n>>2]|0)+(c[t>>2]|0)|0,c[v>>2]|0)|0;c[s>>2]=(c[s>>2]|0)+(c[v>>2]|0);z=c[q>>2]|0;z=El((c[(c[x>>2]|0)+48>>2]|0)+(c[s>>2]|0)|0,z,((z|0)<0)<<31>>31)|0;c[s>>2]=(c[s>>2]|0)+z;iR((c[(c[x>>2]|0)+48>>2]|0)+(c[s>>2]|0)|0,c[p>>2]|0,c[q>>2]|0)|0;c[(c[x>>2]|0)+44>>2]=(c[s>>2]|0)+(c[q>>2]|0);if(c[m>>2]|0){do if((c[o>>2]|0)>(c[(c[x>>2]|0)+32>>2]|0)){c[A>>2]=Ld(c[(c[x>>2]|0)+36>>2]|0,c[o>>2]<<1)|0;if(c[A>>2]|0){c[(c[x>>2]|0)+32>>2]=c[o>>2]<<1;c[(c[x>>2]|0)+36>>2]=c[A>>2];c[(c[x>>2]|0)+24>>2]=c[A>>2];break}c[j>>2]=7;A=c[j>>2]|0;i=B;return A|0}while(0);iR(c[(c[x>>2]|0)+24>>2]|0,c[n>>2]|0,c[o>>2]|0)|0}else c[(c[x>>2]|0)+24>>2]=c[n>>2];c[(c[x>>2]|0)+28>>2]=c[o>>2];c[j>>2]=0;A=c[j>>2]|0;i=B;return A|0}function rl(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+48|0;l=s+36|0;m=s+32|0;n=s+28|0;o=s+24|0;p=s+20|0;h=s+16|0;j=s+12|0;r=s+8|0;k=s+4|0;q=s;c[m>>2]=a;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[h>>2]=f;c[j>>2]=g;c[r>>2]=0;c[q>>2]=0;c[k>>2]=0;while(1){if(c[r>>2]|0)break;if((c[k>>2]|0)>=(c[j>>2]|0))break;c[r>>2]=Fl(c[m>>2]|0,c[(c[h>>2]|0)+(c[k>>2]<<2)>>2]|0)|0;c[k>>2]=(c[k>>2]|0)+1}if(c[r>>2]|0){c[l>>2]=c[r>>2];r=c[l>>2]|0;i=s;return r|0}h=c[m>>2]|0;if((c[p>>2]|0)==-2){c[r>>2]=jl(h,26,q,0)|0;if(!(c[r>>2]|0)){p=c[q>>2]|0;a=ml(c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,0)|0;Me(p,1,a,C)|0;a=c[q>>2]|0;p=ml(c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,1023)|0;Me(a,2,p,C)|0}}else{c[r>>2]=jl(h,16,q,0)|0;if(!(c[r>>2]|0)){a=c[q>>2]|0;p=ml(c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,c[p>>2]|0)|0;Me(a,1,p,C)|0}}if(!(c[r>>2]|0)){ue(c[q>>2]|0)|0;c[r>>2]=Zd(c[q>>2]|0)|0}c[l>>2]=c[r>>2];r=c[l>>2]|0;i=s;return r|0}function sl(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;g=q+44|0;h=q+40|0;j=q+16|0;k=q+36|0;o=q+32|0;l=q+8|0;m=q;p=q+28|0;n=q+24|0;c[g>>2]=a;c[h>>2]=b;b=j;c[b>>2]=d;c[b+4>>2]=e;c[k>>2]=f;if(!(c[c[h>>2]>>2]|0)){b=j;p=(c[h>>2]|0)+56|0;c[o>>2]=Bl(c[g>>2]|0,c[b>>2]|0,c[b+4>>2]|0,c[k>>2]|0,0,0,0,0,0,0,c[p>>2]|0,c[p+4>>2]|0,c[(c[h>>2]|0)+48>>2]|0,c[(c[h>>2]|0)+44>>2]|0)|0;p=c[g>>2]|0;p=p+52|0;b=c[p>>2]|0;b=b+1|0;c[p>>2]=b;p=c[o>>2]|0;i=q;return p|0}b=l;c[b>>2]=0;c[b+4>>2]=0;c[p>>2]=0;c[n>>2]=0;b=(c[h>>2]|0)+16|0;e=c[b+4>>2]|0;f=m;c[f>>2]=c[b>>2];c[f+4>>2]=e;f=c[g>>2]|0;e=(c[h>>2]|0)+16|0;b=e;a=c[b>>2]|0;b=c[b+4>>2]|0;d=gR(a|0,b|0,1,0)|0;c[e>>2]=d;c[e+4>>2]=C;c[o>>2]=zl(f,a,b,c[(c[h>>2]|0)+48>>2]|0,c[(c[h>>2]|0)+44>>2]|0)|0;if(!(c[o>>2]|0)){a=(c[h>>2]|0)+8|0;b=(c[h>>2]|0)+16|0;c[o>>2]=Al(c[g>>2]|0,c[c[h>>2]>>2]|0,1,c[a>>2]|0,c[a+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0,l,p,n)|0}if(c[o>>2]|0){p=c[g>>2]|0;p=p+52|0;b=c[p>>2]|0;b=b+1|0;c[p>>2]=b;p=c[o>>2]|0;i=q;return p|0}f=(c[h>>2]|0)+8|0;a=l;b=(c[h>>2]|0)+56|0;c[o>>2]=Bl(c[g>>2]|0,c[j>>2]|0,c[j+4>>2]|0,c[k>>2]|0,c[f>>2]|0,c[f+4>>2]|0,c[m>>2]|0,c[m+4>>2]|0,c[a>>2]|0,c[a+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0,c[p>>2]|0,c[n>>2]|0)|0;p=c[g>>2]|0;p=p+52|0;b=c[p>>2]|0;b=b+1|0;c[p>>2]=b;p=c[o>>2]|0;i=q;return p|0}function tl(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+80|0;g=v+72|0;h=v+40|0;j=v+32|0;t=v+68|0;q=v+64|0;k=v+60|0;n=v+24|0;o=v+16|0;p=v+8|0;l=v;m=v+56|0;r=v+52|0;s=v+48|0;c[g>>2]=a;a=h;c[a>>2]=b;c[a+4>>2]=d;a=j;c[a>>2]=e;c[a+4>>2]=f;c[t>>2]=0;c[t>>2]=jl(c[g>>2]|0,37,q,0)|0;if(c[t>>2]|0){u=c[t>>2]|0;i=v;return u|0}c[k>>2]=0;f=h;f=pR(c[f>>2]|0,c[f+4>>2]|0,1024,0)|0;f=gR(f|0,C|0,1,0)|0;f=rR(f|0,C|0,1024,0)|0;f=fR(f|0,C|0,1,0)|0;a=n;c[a>>2]=f;c[a+4>>2]=C;a=j;a=rR(c[a>>2]|0,c[a+4>>2]|0,3,0)|0;a=pR(a|0,C|0,2,0)|0;j=o;c[j>>2]=a;c[j+4>>2]=C;j=c[q>>2]|0;a=h;a=gR(c[a>>2]|0,c[a+4>>2]|0,1,0)|0;Me(j,1,a,C)|0;a=n;Me(c[q>>2]|0,2,c[a>>2]|0,c[a+4>>2]|0)|0;while(1){if(100!=(ue(c[q>>2]|0)|0))break;a=p;c[a>>2]=0;c[a+4>>2]=0;yl(c[q>>2]|0,2,l,p);a=p;n=c[a+4>>2]|0;if((n|0)<0|(n|0)==0&(c[a>>2]|0)>>>0<=0){u=6;break}n=p;f=c[n+4>>2]|0;a=o;j=c[a+4>>2]|0;if((f|0)>(j|0)|((f|0)==(j|0)?(c[n>>2]|0)>>>0>(c[a>>2]|0)>>>0:0)){u=6;break}c[k>>2]=1}if((u|0)==6)c[k>>2]=0;c[t>>2]=Zd(c[q>>2]|0)|0;if(!(c[k>>2]|0)){u=c[t>>2]|0;i=v;return u|0}c[m>>2]=0;c[r>>2]=0;c[s>>2]=0;if(!(c[t>>2]|0))c[t>>2]=jl(c[g>>2]|0,38,r,0)|0;if(!(c[t>>2]|0))c[t>>2]=jl(c[g>>2]|0,39,s,0)|0;a:do if(!(c[t>>2]|0)){u=h;Me(c[q>>2]|0,1,c[u>>2]|0,c[u+4>>2]|0)|0;do{if(100!=(ue(c[q>>2]|0)|0))break a;a=c[r>>2]|0;u=c[m>>2]|0;c[m>>2]=u+1;Le(a,1,u)|0;u=c[r>>2]|0;Le(u,2,De(c[q>>2]|0,0)|0)|0;u=c[r>>2]|0;Le(u,3,De(c[q>>2]|0,1)|0)|0;ue(c[r>>2]|0)|0;c[t>>2]=Zd(c[r>>2]|0)|0}while((c[t>>2]|0)==0);Zd(c[q>>2]|0)|0}while(0);if(!(c[t>>2]|0))c[t>>2]=Zd(c[q>>2]|0)|0;if(c[t>>2]|0){u=c[t>>2]|0;i=v;return u|0}u=h;Me(c[s>>2]|0,1,c[u>>2]|0,c[u+4>>2]|0)|0;ue(c[s>>2]|0)|0;c[t>>2]=Zd(c[s>>2]|0)|0;u=c[t>>2]|0;i=v;return u|0}function ul(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!(c[b>>2]|0)){i=d;return}Kd(c[(c[b>>2]|0)+48>>2]|0);Kd(c[(c[b>>2]|0)+36>>2]|0);xl(c[c[b>>2]>>2]|0);Kd(c[b>>2]|0);i=d;return}function vl(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;if(!(c[b>>2]|0)){i=e;return}c[d>>2]=0;while(1){if((c[d>>2]|0)>=(c[(c[b>>2]|0)+4>>2]|0))break;wl(c[(c[c[b>>2]>>2]|0)+(c[d>>2]<<2)>>2]|0);c[d>>2]=(c[d>>2]|0)+1}Kd(c[c[b>>2]>>2]|0);Kd(c[(c[b>>2]|0)+16>>2]|0);c[(c[b>>2]|0)+4>>2]=0;c[c[b>>2]>>2]=0;c[(c[b>>2]|0)+16>>2]=0;i=e;return}function wl(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;b=e;c[b>>2]=a;if(!(c[b>>2]|0)){a=c[b>>2]|0;Kd(a);i=e;return}if(!(c[(c[b>>2]|0)+56>>2]|0))Kd(c[(c[b>>2]|0)+64>>2]|0);if(!(d[(c[b>>2]|0)+5>>0]|0))Kd(c[(c[b>>2]|0)+40>>2]|0);Ve(c[(c[b>>2]|0)+52>>2]|0)|0;a=c[b>>2]|0;Kd(a);i=e;return}function xl(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;b=f+8|0;d=f+4|0;e=f;c[b>>2]=a;if(!(c[b>>2]|0)){i=f;return}c[d>>2]=c[(c[b>>2]|0)+8>>2];xl(c[c[d>>2]>>2]|0);while(1){if(!(c[d>>2]|0))break;c[e>>2]=c[(c[d>>2]|0)+4>>2];if((c[(c[d>>2]|0)+36>>2]|0)!=((c[d>>2]|0)+40|0))Kd(c[(c[d>>2]|0)+36>>2]|0);Kd(c[(c[d>>2]|0)+28>>2]|0);Kd(c[d>>2]|0);c[d>>2]=c[e>>2]}i=f;return}function yl(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;n=i;i=i+48|0;p=n+32|0;o=n+28|0;g=n+24|0;h=n+20|0;m=n+16|0;j=n+12|0;k=n+8|0;l=n;c[p>>2]=a;c[o>>2]=b;c[g>>2]=e;c[h>>2]=f;c[m>>2]=Fe(c[p>>2]|0,c[o>>2]|0)|0;if(!(c[m>>2]|0)){i=n;return}c[k>>2]=1;p=l;c[p>>2]=0;c[p+4>>2]=0;c[j>>2]=0;while(1){if((d[(c[m>>2]|0)+(c[j>>2]|0)>>0]|0|0)>=48)b=(d[(c[m>>2]|0)+(c[j>>2]|0)>>0]|0|0)<=57;else b=0;e=l;a=c[e>>2]|0;e=c[e+4>>2]|0;if(!b)break;p=rR(a|0,e|0,10,0)|0;o=(d[(c[m>>2]|0)+(c[j>>2]|0)>>0]|0)-48|0;o=gR(p|0,C|0,o|0,((o|0)<0)<<31>>31|0)|0;p=l;c[p>>2]=o;c[p+4>>2]=C;c[j>>2]=(c[j>>2]|0)+1}p=c[g>>2]|0;c[p>>2]=a;c[p+4>>2]=e;while(1){if((d[(c[m>>2]|0)+(c[j>>2]|0)>>0]|0|0)!=32)break;c[j>>2]=(c[j>>2]|0)+1}p=l;c[p>>2]=0;c[p+4>>2]=0;if((d[(c[m>>2]|0)+(c[j>>2]|0)>>0]|0|0)==45){c[j>>2]=(c[j>>2]|0)+1;c[k>>2]=-1}while(1){if((d[(c[m>>2]|0)+(c[j>>2]|0)>>0]|0|0)>=48)b=(d[(c[m>>2]|0)+(c[j>>2]|0)>>0]|0|0)<=57;else b=0;e=l;a=c[e>>2]|0;e=c[e+4>>2]|0;if(!b)break;p=rR(a|0,e|0,10,0)|0;o=(d[(c[m>>2]|0)+(c[j>>2]|0)>>0]|0)-48|0;o=gR(p|0,C|0,o|0,((o|0)<0)<<31>>31|0)|0;p=l;c[p>>2]=o;c[p+4>>2]=C;c[j>>2]=(c[j>>2]|0)+1}o=c[k>>2]|0;o=rR(a|0,e|0,o|0,((o|0)<0)<<31>>31|0)|0;p=c[h>>2]|0;c[p>>2]=o;c[p+4>>2]=C;i=n;return}function zl(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+32|0;n=m+24|0;g=m;h=m+20|0;j=m+16|0;k=m+12|0;l=m+8|0;c[n>>2]=a;a=g;c[a>>2]=b;c[a+4>>2]=d;c[h>>2]=e;c[j>>2]=f;c[l>>2]=jl(c[n>>2]|0,9,k,0)|0;if(c[l>>2]|0){n=c[l>>2]|0;i=m;return n|0}n=g;Me(c[k>>2]|0,1,c[n>>2]|0,c[n+4>>2]|0)|0;Je(c[k>>2]|0,2,c[h>>2]|0,c[j>>2]|0,0)|0;ue(c[k>>2]|0)|0;c[l>>2]=Zd(c[k>>2]|0)|0;n=c[l>>2]|0;i=m;return n|0}function Al(a,b,d,e,f,g,h,j,k,l){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=i;i=i+80|0;o=B+72|0;p=B+68|0;q=B+64|0;r=B+24|0;s=B+16|0;t=B+60|0;m=B+56|0;n=B+52|0;A=B+48|0;w=B+44|0;z=B+40|0;u=B+8|0;v=B;x=B+36|0;y=B+32|0;c[o>>2]=a;c[p>>2]=b;c[q>>2]=d;b=r;c[b>>2]=e;c[b+4>>2]=f;b=s;c[b>>2]=g;c[b+4>>2]=h;c[t>>2]=j;c[m>>2]=k;c[n>>2]=l;c[A>>2]=0;if(!(c[c[p>>2]>>2]|0)){j=r;c[w>>2]=Cl(c[p>>2]|0,c[q>>2]|0,c[j>>2]|0,c[j+4>>2]|0)|0;j=s;j=fR(c[j>>2]|0,c[j+4>>2]|0,1,0)|0;l=c[t>>2]|0;c[l>>2]=j;c[l+4>>2]=C;c[c[n>>2]>>2]=(c[(c[p>>2]|0)+32>>2]|0)-(c[w>>2]|0);c[c[m>>2]>>2]=(c[(c[p>>2]|0)+36>>2]|0)+(c[w>>2]|0);A=c[A>>2]|0;i=B;return A|0}l=s;j=c[l+4>>2]|0;k=u;c[k>>2]=c[l>>2];c[k+4>>2]=j;k=r;j=c[k+4>>2]|0;l=v;c[l>>2]=c[k>>2];c[l+4>>2]=j;c[z>>2]=c[(c[p>>2]|0)+8>>2];while(1){if(!((c[z>>2]|0)!=0?(c[A>>2]|0)==0:0))break;l=v;c[x>>2]=Cl(c[z>>2]|0,c[q>>2]|0,c[l>>2]|0,c[l+4>>2]|0)|0;c[y>>2]=(c[(c[z>>2]|0)+32>>2]|0)-(c[x>>2]|0);l=u;c[A>>2]=zl(c[o>>2]|0,c[l>>2]|0,c[l+4>>2]|0,(c[(c[z>>2]|0)+36>>2]|0)+(c[x>>2]|0)|0,c[y>>2]|0)|0;l=u;l=gR(c[l>>2]|0,c[l+4>>2]|0,1,0)|0;j=u;c[j>>2]=l;c[j+4>>2]=C;j=(c[(c[z>>2]|0)+12>>2]|0)+1|0;l=v;j=gR(c[l>>2]|0,c[l+4>>2]|0,j|0,((j|0)<0)<<31>>31|0)|0;l=v;c[l>>2]=j;c[l+4>>2]=C;c[z>>2]=c[(c[z>>2]|0)+4>>2]}if(c[A>>2]|0){A=c[A>>2]|0;i=B;return A|0}j=s;l=u;c[A>>2]=Al(c[o>>2]|0,c[c[p>>2]>>2]|0,(c[q>>2]|0)+1|0,c[j>>2]|0,c[j+4>>2]|0,c[l>>2]|0,c[l+4>>2]|0,c[t>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;A=c[A>>2]|0;i=B;return A|0}function Bl(a,b,d,e,f,g,h,j,k,l,m,n,o,p){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;var q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;D=i;i=i+96|0;B=D+40|0;q=D+84|0;E=D+80|0;r=D+32|0;s=D+76|0;t=D+24|0;u=D+16|0;v=D+8|0;w=D;x=D+72|0;y=D+68|0;z=D+64|0;A=D+60|0;C=D+56|0;c[E>>2]=a;a=r;c[a>>2]=b;c[a+4>>2]=d;c[s>>2]=e;a=t;c[a>>2]=f;c[a+4>>2]=g;a=u;c[a>>2]=h;c[a+4>>2]=j;a=v;c[a>>2]=k;c[a+4>>2]=l;a=w;c[a>>2]=m;c[a+4>>2]=n;c[x>>2]=o;c[y>>2]=p;c[A>>2]=jl(c[E>>2]|0,11,z,0)|0;if(!(c[A>>2]|0)){E=r;Me(c[z>>2]|0,1,c[E>>2]|0,c[E+4>>2]|0)|0;Le(c[z>>2]|0,2,c[s>>2]|0)|0;E=t;Me(c[z>>2]|0,3,c[E>>2]|0,c[E+4>>2]|0)|0;E=u;Me(c[z>>2]|0,4,c[E>>2]|0,c[E+4>>2]|0)|0;E=w;do if((c[E>>2]|0)==0&(c[E+4>>2]|0)==0){E=v;Me(c[z>>2]|0,5,c[E>>2]|0,c[E+4>>2]|0)|0}else{e=v;p=c[e+4>>2]|0;o=w;a=c[o>>2]|0;o=c[o+4>>2]|0;E=B;c[E>>2]=c[e>>2];c[E+4>>2]=p;E=B+8|0;c[E>>2]=a;c[E+4>>2]=o;c[C>>2]=Od(24e3,B)|0;if(c[C>>2]|0){Oe(c[z>>2]|0,5,c[C>>2]|0,-1,148)|0;break}c[q>>2]=7;E=c[q>>2]|0;i=D;return E|0}while(0);Je(c[z>>2]|0,6,c[x>>2]|0,c[y>>2]|0,0)|0;ue(c[z>>2]|0)|0;c[A>>2]=Zd(c[z>>2]|0)|0}c[q>>2]=c[A>>2];E=c[q>>2]|0;i=D;return E|0}function Cl(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;h=i;i=i+32|0;j=h+16|0;l=h+12|0;k=h;g=h+8|0;c[j>>2]=b;c[l>>2]=d;b=k;c[b>>2]=e;c[b+4>>2]=f;b=k;c[g>>2]=10-(Dl(c[b>>2]|0,c[b+4>>2]|0)|0);a[(c[(c[j>>2]|0)+36>>2]|0)+(c[g>>2]|0)>>0]=c[l>>2];b=k;El((c[(c[j>>2]|0)+36>>2]|0)+((c[g>>2]|0)+1)|0,c[b>>2]|0,c[b+4>>2]|0)|0;i=h;return c[g>>2]|0}function Dl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=i;i=i+16|0;d=f;e=f+8|0;g=d;c[g>>2]=a;c[g+4>>2]=b;c[e>>2]=0;do{c[e>>2]=(c[e>>2]|0)+1;b=d;b=hR(c[b>>2]|0,c[b+4>>2]|0,7)|0;g=d;c[g>>2]=b;c[g+4>>2]=C;g=d}while((c[g>>2]|0)!=0|(c[g+4>>2]|0)!=0);i=f;return c[e>>2]|0}function El(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;g=k+20|0;l=k+8|0;h=k+16|0;j=k;c[g>>2]=b;b=l;c[b>>2]=e;c[b+4>>2]=f;c[h>>2]=c[g>>2];e=l;f=c[e+4>>2]|0;b=j;c[b>>2]=c[e>>2];c[b+4>>2]=f;do{l=(c[j>>2]&127|128)&255;b=c[h>>2]|0;c[h>>2]=b+1;a[b>>0]=l;b=j;b=hR(c[b>>2]|0,c[b+4>>2]|0,7)|0;l=j;c[l>>2]=b;c[l+4>>2]=C;l=j}while((c[l>>2]|0)!=0|(c[l+4>>2]|0)!=0);l=(c[h>>2]|0)+-1|0;a[l>>0]=(d[l>>0]|0)&127;i=k;return(c[h>>2]|0)-(c[g>>2]|0)|0}function Fl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;d=h+12|0;e=h+8|0;g=h+4|0;f=h;c[d>>2]=a;c[e>>2]=b;c[g>>2]=0;b=(c[e>>2]|0)+8|0;if(!((c[b>>2]|0)!=0|(c[b+4>>2]|0)!=0)){g=c[g>>2]|0;i=h;return g|0}c[g>>2]=jl(c[d>>2]|0,17,f,0)|0;if(c[g>>2]|0){g=c[g>>2]|0;i=h;return g|0}b=(c[e>>2]|0)+8|0;Me(c[f>>2]|0,1,c[b>>2]|0,c[b+4>>2]|0)|0;b=(c[e>>2]|0)+24|0;Me(c[f>>2]|0,2,c[b>>2]|0,c[b+4>>2]|0)|0;ue(c[f>>2]|0)|0;c[g>>2]=Zd(c[f>>2]|0)|0;g=c[g>>2]|0;i=h;return g|0}function Gl(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;g=l+16|0;h=l+12|0;j=l+8|0;k=l;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[l+4>>2]=f;c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[h>>2]|0)){g=5;break}if((a[(c[g>>2]|0)+(c[k>>2]|0)>>0]|0)!=(a[(c[j>>2]|0)+(c[k>>2]|0)>>0]|0)){g=5;break}c[k>>2]=(c[k>>2]|0)+1}if((g|0)==5){i=l;return c[k>>2]|0}return 0}function Hl(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=i;i=i+64|0;m=w+56|0;n=w+52|0;o=w+48|0;p=w+44|0;q=w+40|0;r=w+36|0;u=w+32|0;v=w+28|0;s=w+24|0;g=w+20|0;j=w+16|0;h=w+12|0;k=w+8|0;l=w+4|0;t=w;c[n>>2]=a;c[o>>2]=b;c[p>>2]=d;c[q>>2]=e;c[r>>2]=f;c[u>>2]=c[c[o>>2]>>2];do if(c[u>>2]|0){c[g>>2]=c[(c[u>>2]|0)+32>>2];c[j>>2]=c[g>>2];c[h>>2]=Gl(c[(c[u>>2]|0)+16>>2]|0,c[(c[u>>2]|0)+20>>2]|0,c[q>>2]|0,c[r>>2]|0)|0;c[k>>2]=(c[r>>2]|0)-(c[h>>2]|0);b=c[h>>2]|0;b=Dl(b,((b|0)<0)<<31>>31)|0;e=c[k>>2]|0;e=b+(Dl(e,((e|0)<0)<<31>>31)|0)|0;c[j>>2]=(c[j>>2]|0)+(e+(c[k>>2]|0));if((c[j>>2]|0)>(c[(c[n>>2]|0)+224>>2]|0)?(c[(c[u>>2]|0)+16>>2]|0)!=0:0)break;if((c[j>>2]|0)>(c[(c[n>>2]|0)+224>>2]|0)?(v=Id(c[j>>2]|0)|0,c[(c[u>>2]|0)+36>>2]=v,(c[(c[u>>2]|0)+36>>2]|0)==0):0){c[m>>2]=7;v=c[m>>2]|0;i=w;return v|0}if(c[(c[u>>2]|0)+16>>2]|0){v=c[h>>2]|0;v=El((c[(c[u>>2]|0)+36>>2]|0)+(c[g>>2]|0)|0,v,((v|0)<0)<<31>>31)|0;c[g>>2]=(c[g>>2]|0)+v}v=c[k>>2]|0;v=El((c[(c[u>>2]|0)+36>>2]|0)+(c[g>>2]|0)|0,v,((v|0)<0)<<31>>31)|0;c[g>>2]=(c[g>>2]|0)+v;iR((c[(c[u>>2]|0)+36>>2]|0)+(c[g>>2]|0)|0,(c[q>>2]|0)+(c[h>>2]|0)|0,c[k>>2]|0)|0;c[(c[u>>2]|0)+32>>2]=(c[g>>2]|0)+(c[k>>2]|0);v=(c[u>>2]|0)+12|0;c[v>>2]=(c[v>>2]|0)+1;if(c[p>>2]|0){do if((c[(c[u>>2]|0)+24>>2]|0)<(c[r>>2]|0)){c[l>>2]=Ld(c[(c[u>>2]|0)+28>>2]|0,c[r>>2]<<1)|0;if(c[l>>2]|0){c[(c[u>>2]|0)+24>>2]=c[r>>2]<<1;c[(c[u>>2]|0)+28>>2]=c[l>>2];break}c[m>>2]=7;v=c[m>>2]|0;i=w;return v|0}while(0);c[(c[u>>2]|0)+16>>2]=c[(c[u>>2]|0)+28>>2];iR(c[(c[u>>2]|0)+16>>2]|0,c[q>>2]|0,c[r>>2]|0)|0;c[(c[u>>2]|0)+20>>2]=c[r>>2]}else{c[(c[u>>2]|0)+16>>2]=c[q>>2];c[(c[u>>2]|0)+20>>2]=c[r>>2]}c[m>>2]=0;v=c[m>>2]|0;i=w;return v|0}while(0);c[s>>2]=Id(40+(c[(c[n>>2]|0)+224>>2]|0)|0)|0;if(!(c[s>>2]|0)){c[m>>2]=7;v=c[m>>2]|0;i=w;return v|0}d=c[s>>2]|0;g=d+40|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(g|0));c[(c[s>>2]|0)+32>>2]=11;c[(c[s>>2]|0)+36>>2]=(c[s>>2]|0)+40;if(c[u>>2]|0){c[t>>2]=c[c[u>>2]>>2];c[v>>2]=Hl(c[n>>2]|0,t,c[p>>2]|0,c[q>>2]|0,c[r>>2]|0)|0;if(!(c[c[u>>2]>>2]|0))c[c[u>>2]>>2]=c[t>>2];c[(c[u>>2]|0)+4>>2]=c[s>>2];c[(c[s>>2]|0)+8>>2]=c[(c[u>>2]|0)+8>>2];c[c[s>>2]>>2]=c[t>>2];c[(c[s>>2]|0)+28>>2]=c[(c[u>>2]|0)+28>>2];c[(c[s>>2]|0)+24>>2]=c[(c[u>>2]|0)+24>>2];c[(c[u>>2]|0)+28>>2]=0}else{c[(c[s>>2]|0)+8>>2]=c[s>>2];c[v>>2]=Hl(c[n>>2]|0,s,c[p>>2]|0,c[q>>2]|0,c[r>>2]|0)|0}c[c[o>>2]>>2]=c[s>>2];c[m>>2]=c[v>>2];v=c[m>>2]|0;i=w;return v|0}function Il(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;e=g+4|0;f=g;c[d>>2]=a;c[e>>2]=b;c[f>>2]=((c[(c[d>>2]|0)+80>>2]|0)==0&1)-((c[(c[e>>2]|0)+80>>2]|0)==0&1);if(c[f>>2]|0){f=c[f>>2]|0;i=g;return f|0}a=(c[d>>2]|0)+88|0;b=(c[e>>2]|0)+88|0;if((c[a>>2]|0)==(c[b>>2]|0)?(c[a+4>>2]|0)==(c[b+4>>2]|0):0){c[f>>2]=(c[c[e>>2]>>2]|0)-(c[c[d>>2]>>2]|0);f=c[f>>2]|0;i=g;return f|0}else{a=(c[d>>2]|0)+88|0;d=c[a+4>>2]|0;b=(c[e>>2]|0)+88|0;e=c[b+4>>2]|0;c[f>>2]=(d|0)<(e|0)|((d|0)==(e|0)?(c[a>>2]|0)>>>0<(c[b>>2]|0)>>>0:0)?1:-1;f=c[f>>2]|0;i=g;return f|0}return 0}function Jl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;e=g+4|0;f=g;c[d>>2]=a;c[e>>2]=b;c[f>>2]=((c[(c[d>>2]|0)+80>>2]|0)==0&1)-((c[(c[e>>2]|0)+80>>2]|0)==0&1);if(c[f>>2]|0){f=c[f>>2]|0;i=g;return f|0}a=(c[d>>2]|0)+88|0;b=(c[e>>2]|0)+88|0;if((c[a>>2]|0)==(c[b>>2]|0)?(c[a+4>>2]|0)==(c[b+4>>2]|0):0){c[f>>2]=(c[c[e>>2]>>2]|0)-(c[c[d>>2]>>2]|0);f=c[f>>2]|0;i=g;return f|0}else{a=(c[d>>2]|0)+88|0;d=c[a+4>>2]|0;b=(c[e>>2]|0)+88|0;e=c[b+4>>2]|0;c[f>>2]=(d|0)>(e|0)|((d|0)==(e|0)?(c[a>>2]|0)>>>0>(c[b>>2]|0)>>>0:0)?1:-1;f=c[f>>2]|0;i=g;return f|0}return 0}function Kl(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;b=e;c[b>>2]=a;if(d[(c[b>>2]|0)+5>>0]|0){a=c[b>>2]|0;a=a+40|0;c[a>>2]=0;i=e;return}Kd(c[(c[b>>2]|0)+40>>2]|0);Ve(c[(c[b>>2]|0)+52>>2]|0)|0;c[(c[b>>2]|0)+52>>2]=0;a=c[b>>2]|0;a=a+40|0;c[a>>2]=0;i=e;return}function Ll(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+64|0;s=v+52|0;g=v+48|0;t=v+44|0;h=v+40|0;q=v+36|0;u=v+32|0;o=v+28|0;p=v+24|0;l=v+20|0;j=v+16|0;m=v+12|0;k=v+8|0;n=v+4|0;r=v;c[g>>2]=b;c[t>>2]=e;c[h>>2]=f;f=c[t>>2]|0;if(c[(c[t>>2]|0)+72>>2]|0)c[u>>2]=(c[(c[t>>2]|0)+72>>2]|0)+(c[f+76>>2]|0);else c[u>>2]=c[f+40>>2];if(!((c[u>>2]|0)!=0?(c[u>>2]|0)>>>0<((c[(c[t>>2]|0)+40>>2]|0)+(c[(c[t>>2]|0)+44>>2]|0)|0)>>>0:0)){f=c[t>>2]|0;if(c[(c[t>>2]|0)+56>>2]|0){c[l>>2]=c[c[f+56>>2]>>2];Kd(c[(c[t>>2]|0)+40>>2]|0);c[(c[t>>2]|0)+40>>2]=0;do if(c[l>>2]|0){c[m>>2]=c[(c[l>>2]|0)+8>>2];c[k>>2]=(c[c[m>>2]>>2]|0)+1;c[(c[t>>2]|0)+64>>2]=c[(c[l>>2]|0)+12>>2];c[(c[t>>2]|0)+60>>2]=c[(c[l>>2]|0)+16>>2];c[j>>2]=Id(c[k>>2]|0)|0;if(c[j>>2]|0){iR(c[j>>2]|0,c[(c[m>>2]|0)+4>>2]|0,c[k>>2]|0)|0;u=c[k>>2]|0;c[(c[t>>2]|0)+76>>2]=u;c[(c[t>>2]|0)+44>>2]=u;u=c[j>>2]|0;c[(c[t>>2]|0)+72>>2]=u;c[(c[t>>2]|0)+40>>2]=u;u=(c[t>>2]|0)+56|0;c[u>>2]=(c[u>>2]|0)+4;break}c[s>>2]=7;u=c[s>>2]|0;i=v;return u|0}while(0);c[s>>2]=0;u=c[s>>2]|0;i=v;return u|0}Kl(f);l=(c[t>>2]|0)+32|0;j=c[l+4>>2]|0;m=(c[t>>2]|0)+16|0;k=c[m+4>>2]|0;if((j|0)>(k|0)|((j|0)==(k|0)?(c[l>>2]|0)>>>0>=(c[m>>2]|0)>>>0:0)){c[s>>2]=0;u=c[s>>2]|0;i=v;return u|0}k=c[g>>2]|0;j=(c[t>>2]|0)+32|0;l=j;l=gR(c[l>>2]|0,c[l+4>>2]|0,1,0)|0;m=C;c[j>>2]=l;c[j+4>>2]=m;c[q>>2]=am(k,l,m,(c[t>>2]|0)+40|0,(c[t>>2]|0)+44|0,(c[h>>2]|0)!=0?(c[t>>2]|0)+48|0:0)|0;if(c[q>>2]|0){c[s>>2]=c[q>>2];u=c[s>>2]|0;i=v;return u|0}if((c[h>>2]|0)!=0?(c[(c[t>>2]|0)+48>>2]|0)<(c[(c[t>>2]|0)+44>>2]|0):0){c[(c[t>>2]|0)+52>>2]=c[(c[g>>2]|0)+244>>2];c[(c[g>>2]|0)+244>>2]=0}c[u>>2]=c[(c[t>>2]|0)+40>>2]}c[q>>2]=Yl(c[t>>2]|0,c[u>>2]|0,20)|0;if(c[q>>2]|0){c[s>>2]=c[q>>2];u=c[s>>2]|0;i=v;return u|0}f=c[u>>2]|0;if(d[c[u>>2]>>0]&128)f=Vl(f,o)|0;else{c[o>>2]=d[f>>0];f=1}c[u>>2]=(c[u>>2]|0)+f;f=c[u>>2]|0;if(d[c[u>>2]>>0]&128)f=Vl(f,p)|0;else{c[p>>2]=d[f>>0];f=1}c[u>>2]=(c[u>>2]|0)+f;if(!((c[o>>2]|0)<0|(c[p>>2]|0)<=0)?((c[u>>2]|0)+(c[p>>2]|0)|0)>>>0<=((c[(c[t>>2]|0)+40>>2]|0)+(c[(c[t>>2]|0)+44>>2]|0)|0)>>>0:0){do if(((c[o>>2]|0)+(c[p>>2]|0)|0)>(c[(c[t>>2]|0)+68>>2]|0)){c[n>>2]=(c[o>>2]|0)+(c[p>>2]|0)<<1;c[r>>2]=Ld(c[(c[t>>2]|0)+64>>2]|0,c[n>>2]|0)|0;if(c[r>>2]|0){c[(c[t>>2]|0)+64>>2]=c[r>>2];c[(c[t>>2]|0)+68>>2]=c[n>>2];break}c[s>>2]=7;u=c[s>>2]|0;i=v;return u|0}while(0);c[q>>2]=Yl(c[t>>2]|0,c[u>>2]|0,(c[p>>2]|0)+10|0)|0;if(c[q>>2]|0){c[s>>2]=c[q>>2];u=c[s>>2]|0;i=v;return u|0}iR((c[(c[t>>2]|0)+64>>2]|0)+(c[o>>2]|0)|0,c[u>>2]|0,c[p>>2]|0)|0;c[(c[t>>2]|0)+60>>2]=(c[o>>2]|0)+(c[p>>2]|0);c[u>>2]=(c[u>>2]|0)+(c[p>>2]|0);f=c[u>>2]|0;if(d[c[u>>2]>>0]&128)f=Vl(f,(c[t>>2]|0)+76|0)|0;else{c[(c[t>>2]|0)+76>>2]=d[f>>0];f=1}c[u>>2]=(c[u>>2]|0)+f;c[(c[t>>2]|0)+72>>2]=c[u>>2];c[(c[t>>2]|0)+80>>2]=0;do if(((c[(c[t>>2]|0)+72>>2]|0)+(c[(c[t>>2]|0)+76>>2]|0)|0)>>>0<=((c[(c[t>>2]|0)+40>>2]|0)+(c[(c[t>>2]|0)+44>>2]|0)|0)>>>0){if((c[(c[t>>2]|0)+48>>2]|0)==0?(a[(c[(c[t>>2]|0)+72>>2]|0)+((c[(c[t>>2]|0)+76>>2]|0)-1)>>0]|0)!=0:0)break;c[s>>2]=0;u=c[s>>2]|0;i=v;return u|0}while(0);c[s>>2]=267;u=c[s>>2]|0;i=v;return u|0}c[s>>2]=267;u=c[s>>2]|0;i=v;return u|0}function Ml(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;d=h+12|0;e=h+8|0;f=h+4|0;g=h;c[d>>2]=a;c[e>>2]=b;if((c[(c[d>>2]|0)+40>>2]|0)!=0?(c[(c[e>>2]|0)+40>>2]|0)!=0:0){c[g>>2]=(c[(c[d>>2]|0)+60>>2]|0)-(c[(c[e>>2]|0)+60>>2]|0);a=c[(c[d>>2]|0)+64>>2]|0;b=c[(c[e>>2]|0)+64>>2]|0;if((c[g>>2]|0)<0)c[f>>2]=vQ(a,b,c[(c[d>>2]|0)+60>>2]|0)|0;else c[f>>2]=vQ(a,b,c[(c[e>>2]|0)+60>>2]|0)|0;if(!(c[f>>2]|0))c[f>>2]=c[g>>2]}else c[f>>2]=((c[(c[d>>2]|0)+40>>2]|0)==0&1)-((c[(c[e>>2]|0)+40>>2]|0)==0&1);if(c[f>>2]|0){g=c[f>>2]|0;i=h;return g|0}c[f>>2]=(c[c[e>>2]>>2]|0)-(c[c[d>>2]>>2]|0);g=c[f>>2]|0;i=h;return g|0}function Nl(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;f=n+24|0;g=n+20|0;h=n+16|0;j=n+12|0;k=n+8|0;l=n+4|0;m=n;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;if((c[h>>2]|0)==(c[g>>2]|0))c[h>>2]=(c[h>>2]|0)+-1;c[k>>2]=(c[h>>2]|0)-1;while(1){if((c[k>>2]|0)<0)break;c[l>>2]=c[k>>2];while(1){if((c[l>>2]|0)>=((c[g>>2]|0)-1|0))break;if((Yb[c[j>>2]&255](c[(c[f>>2]|0)+(c[l>>2]<<2)>>2]|0,c[(c[f>>2]|0)+((c[l>>2]|0)+1<<2)>>2]|0)|0)<0)break;c[m>>2]=c[(c[f>>2]|0)+((c[l>>2]|0)+1<<2)>>2];c[(c[f>>2]|0)+((c[l>>2]|0)+1<<2)>>2]=c[(c[f>>2]|0)+(c[l>>2]<<2)>>2];c[(c[f>>2]|0)+(c[l>>2]<<2)>>2]=c[m>>2];c[l>>2]=(c[l>>2]|0)+1}c[k>>2]=(c[k>>2]|0)+-1}i=n;return}function Ol(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+16|0;f=k+12|0;g=k+8|0;h=k+4|0;j=k;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;do if((c[h>>2]|0)>(c[(c[f>>2]|0)+20>>2]|0)){c[(c[f>>2]|0)+20>>2]=c[h>>2]<<1;c[j>>2]=Ld(c[(c[f>>2]|0)+16>>2]|0,c[(c[f>>2]|0)+20>>2]|0)|0;if(c[j>>2]|0){c[(c[f>>2]|0)+16>>2]=c[j>>2];break}c[e>>2]=7;j=c[e>>2]|0;i=k;return j|0}while(0);iR(c[(c[f>>2]|0)+16>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;c[e>>2]=0;j=c[e>>2]|0;i=k;return j|0}function Pl(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;l=k+12|0;f=k+8|0;j=k+4|0;g=k+16|0;h=k;c[l>>2]=b;c[f>>2]=e;c[j>>2]=0;if((d[(c[l>>2]|0)+231>>0]|0|0)!=0?(c[(c[f>>2]|0)+56>>2]|0)!=0:0){a[g>>0]=0;l=(c[f>>2]|0)+88|0;c[l>>2]=0;c[l+4>>2]=0;c[(c[f>>2]|0)+84>>2]=0;Wl(0,c[(c[f>>2]|0)+72>>2]|0,c[(c[f>>2]|0)+76>>2]|0,(c[f>>2]|0)+80|0,(c[f>>2]|0)+88|0,(c[f>>2]|0)+84|0,g);l=c[j>>2]|0;i=k;return l|0}c[j>>2]=Yl(c[f>>2]|0,c[(c[f>>2]|0)+72>>2]|0,10)|0;if(c[j>>2]|0){l=c[j>>2]|0;i=k;return l|0}c[h>>2]=Ul(c[(c[f>>2]|0)+72>>2]|0,(c[f>>2]|0)+88|0)|0;c[(c[f>>2]|0)+80>>2]=(c[(c[f>>2]|0)+72>>2]|0)+(c[h>>2]|0);l=c[j>>2]|0;i=k;return l|0}function Ql(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+48|0;s=u+36|0;t=u+32|0;r=u+28|0;h=u+24|0;j=u+20|0;q=u+16|0;o=u+12|0;l=u+41|0;k=u+40|0;p=u+8|0;n=u;c[t>>2]=b;c[r>>2]=e;c[h>>2]=f;c[j>>2]=g;c[q>>2]=0;c[o>>2]=c[(c[r>>2]|0)+80>>2];a[l>>0]=0;do if((d[(c[t>>2]|0)+231>>0]|0)!=0?(c[(c[r>>2]|0)+56>>2]|0)!=0:0){a[k>>0]=0;if(c[h>>2]|0){c[c[h>>2]>>2]=c[(c[r>>2]|0)+80>>2];c[c[j>>2]>>2]=(c[(c[r>>2]|0)+84>>2]|0)-1}Wl(0,c[(c[r>>2]|0)+72>>2]|0,c[(c[r>>2]|0)+76>>2]|0,o,(c[r>>2]|0)+88|0,(c[r>>2]|0)+84|0,k);if(a[k>>0]|0){c[(c[r>>2]|0)+80>>2]=0;break}else{c[(c[r>>2]|0)+80>>2]=c[o>>2];break}}else m=8;while(0);do if((m|0)==8){c[p>>2]=(c[(c[r>>2]|0)+72>>2]|0)+(c[(c[r>>2]|0)+76>>2]|0);while(1){if(a[c[o>>2]>>0]|a[l>>0]){f=c[o>>2]|0;c[o>>2]=f+1;a[l>>0]=a[f>>0]&128;continue}if(!(c[(c[r>>2]|0)+52>>2]|0))break;if((c[o>>2]|0)>>>0<((c[(c[r>>2]|0)+40>>2]|0)+(c[(c[r>>2]|0)+48>>2]|0)|0)>>>0)break;c[q>>2]=Xl(c[r>>2]|0)|0;if(c[q>>2]|0){m=14;break}}if((m|0)==14){c[s>>2]=c[q>>2];t=c[s>>2]|0;i=u;return t|0}c[o>>2]=(c[o>>2]|0)+1;if(c[h>>2]|0){c[c[h>>2]>>2]=c[(c[r>>2]|0)+80>>2];c[c[j>>2]>>2]=(c[o>>2]|0)-(c[(c[r>>2]|0)+80>>2]|0)-1}while(1){if((c[o>>2]|0)>>>0<(c[p>>2]|0)>>>0)h=(a[c[o>>2]>>0]|0)==0;else h=0;j=c[o>>2]|0;if(!h)break;c[o>>2]=j+1}h=c[r>>2]|0;if(j>>>0>=(c[p>>2]|0)>>>0){c[h+80>>2]=0;break}c[q>>2]=Yl(h,c[o>>2]|0,10)|0;if(!(c[q>>2]|0)){e=c[o>>2]|0;e=e+(Ul(c[o>>2]|0,n)|0)|0;c[(c[r>>2]|0)+80>>2]=e;e=n;l=c[e>>2]|0;e=c[e+4>>2]|0;h=(c[r>>2]|0)+88|0;k=h;j=c[k>>2]|0;k=c[k+4>>2]|0;if(a[(c[t>>2]|0)+231>>0]|0){r=fR(j|0,k|0,l|0,e|0)|0;t=h;c[t>>2]=r;c[t+4>>2]=C;break}else{r=gR(j|0,k|0,l|0,e|0)|0;t=h;c[t>>2]=r;c[t+4>>2]=C;break}}}while(0);c[s>>2]=0;t=c[s>>2]|0;i=u;return t|0}function Rl(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+48|0;h=t+32|0;j=t+28|0;k=t+24|0;l=t+20|0;r=t+16|0;o=t+12|0;q=t+8|0;n=t+4|0;p=t;m=t+36|0;c[h>>2]=b;c[j>>2]=e;c[k>>2]=f;c[l>>2]=g;c[r>>2]=c[c[k>>2]>>2];c[o>>2]=c[c[l>>2]>>2];c[q>>2]=(c[r>>2]|0)+(c[o>>2]|0);c[n>>2]=0;c[p>>2]=c[r>>2];while(1){a[m>>0]=0;while(1){if((c[p>>2]|0)>>>0>=(c[q>>2]|0)>>>0)break;if(!((a[m>>0]|a[c[p>>2]>>0])&254))break;f=c[p>>2]|0;c[p>>2]=f+1;a[m>>0]=a[f>>0]&128}e=(c[p>>2]|0)-(c[r>>2]|0)|0;if((c[h>>2]|0)==(c[n>>2]|0)){s=7;break}c[o>>2]=(c[o>>2]|0)-e;c[r>>2]=c[p>>2];if(!(c[o>>2]|0))break;c[p>>2]=(c[r>>2]|0)+1;e=c[p>>2]|0;if(d[c[p>>2]>>0]&128)e=Vl(e,n)|0;else{c[n>>2]=d[e>>0];e=1}c[p>>2]=(c[p>>2]|0)+e}if((s|0)==7)c[o>>2]=e;if(!(c[j>>2]|0)){s=c[r>>2]|0;r=c[k>>2]|0;c[r>>2]=s;r=c[o>>2]|0;s=c[l>>2]|0;c[s>>2]=r;i=t;return}if(((c[r>>2]|0)+(c[o>>2]|0)|0)==(c[q>>2]|0)){s=c[r>>2]|0;r=c[k>>2]|0;c[r>>2]=s;r=c[o>>2]|0;s=c[l>>2]|0;c[s>>2]=r;i=t;return}kR((c[r>>2]|0)+(c[o>>2]|0)|0,0,(c[q>>2]|0)-((c[r>>2]|0)+(c[o>>2]|0))|0)|0;s=c[r>>2]|0;r=c[k>>2]|0;c[r>>2]=s;r=c[o>>2]|0;s=c[l>>2]|0;c[s>>2]=r;i=t;return}function Sl(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;p=i;i=i+48|0;h=p+8|0;r=p+40|0;q=p+36|0;j=p+32|0;m=p+28|0;k=p+24|0;n=p+20|0;o=p+16|0;l=p;s=h;c[s>>2]=b;c[s+4>>2]=d;c[r>>2]=e;c[q>>2]=f;c[j>>2]=g;c[m>>2]=0;c[k>>2]=0;c[n>>2]=c[r>>2];c[o>>2]=(c[r>>2]|0)+(c[q>>2]|0);if((a[c[n>>2]>>0]|0)!=1){if((a[c[n>>2]>>0]|0)==2){s=h;s=El((c[j>>2]|0)+(c[m>>2]|0)|0,c[s>>2]|0,c[s+4>>2]|0)|0;c[m>>2]=(c[m>>2]|0)+s;s=c[m>>2]|0;c[m>>2]=s+1;a[(c[j>>2]|0)+s>>0]=2;c[k>>2]=1}Tl(0,n)}while(1){if((c[n>>2]|0)>>>0>=(c[o>>2]|0)>>>0)break;if((a[c[n>>2]>>0]|0)!=1)break;c[n>>2]=(c[n>>2]|0)+1;s=Ul(c[n>>2]|0,l)|0;c[n>>2]=(c[n>>2]|0)+s;if((a[c[n>>2]>>0]|0)==2){if(!(c[k>>2]|0)){s=h;s=El((c[j>>2]|0)+(c[m>>2]|0)|0,c[s>>2]|0,c[s+4>>2]|0)|0;c[m>>2]=(c[m>>2]|0)+s;c[k>>2]=1}s=c[m>>2]|0;c[m>>2]=s+1;a[(c[j>>2]|0)+s>>0]=1;s=l;s=El((c[j>>2]|0)+(c[m>>2]|0)|0,c[s>>2]|0,c[s+4>>2]|0)|0;c[m>>2]=(c[m>>2]|0)+s;s=c[m>>2]|0;c[m>>2]=s+1;a[(c[j>>2]|0)+s>>0]=2}Tl(0,n)}if(!(c[k>>2]|0)){s=c[m>>2]|0;i=p;return s|0}s=c[m>>2]|0;c[m>>2]=s+1;a[(c[j>>2]|0)+s>>0]=0;s=c[m>>2]|0;i=p;return s|0}function Tl(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;e=l+16|0;f=l+12|0;k=l+8|0;g=l+20|0;h=l+4|0;j=l;c[e>>2]=b;c[f>>2]=d;c[k>>2]=c[c[f>>2]>>2];a[g>>0]=0;while(1){if(!(254&(a[c[k>>2]>>0]|a[g>>0])))break;d=c[k>>2]|0;c[k>>2]=d+1;a[g>>0]=a[d>>0]&128}if(!(c[e>>2]|0)){b=c[k>>2]|0;d=c[f>>2]|0;c[d>>2]=b;i=l;return}c[h>>2]=(c[k>>2]|0)-(c[c[f>>2]>>2]|0);c[j>>2]=c[c[e>>2]>>2];iR(c[j>>2]|0,c[c[f>>2]>>2]|0,c[h>>2]|0)|0;c[j>>2]=(c[j>>2]|0)+(c[h>>2]|0);c[c[e>>2]>>2]=c[j>>2];b=c[k>>2]|0;d=c[f>>2]|0;c[d>>2]=b;i=l;return}function Ul(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+48|0;e=n+36|0;f=n+32|0;g=n+28|0;l=n+24|0;h=n+20|0;j=n+8|0;m=n+16|0;k=n;c[f>>2]=b;c[g>>2]=d;c[l>>2]=c[f>>2];b=c[f>>2]|0;c[f>>2]=b+1;c[h>>2]=a[b>>0];b=c[h>>2]|0;if(!(c[h>>2]&128)){m=c[g>>2]|0;c[m>>2]=b;c[m+4>>2]=0;c[e>>2]=1;m=c[e>>2]|0;i=n;return m|0}d=c[f>>2]|0;c[f>>2]=d+1;c[h>>2]=b&127|a[d>>0]<<7;b=c[h>>2]|0;if(!(c[h>>2]&16384)){m=c[g>>2]|0;c[m>>2]=b;c[m+4>>2]=0;c[e>>2]=2;m=c[e>>2]|0;i=n;return m|0}d=c[f>>2]|0;c[f>>2]=d+1;c[h>>2]=b&16383|a[d>>0]<<14;b=c[h>>2]|0;if(!(c[h>>2]&2097152)){m=c[g>>2]|0;c[m>>2]=b;c[m+4>>2]=0;c[e>>2]=3;m=c[e>>2]|0;i=n;return m|0}d=c[f>>2]|0;c[f>>2]=d+1;c[h>>2]=b&2097151|a[d>>0]<<21;b=c[h>>2]|0;if(!(c[h>>2]&268435456)){m=c[g>>2]|0;c[m>>2]=b;c[m+4>>2]=0;c[e>>2]=4;m=c[e>>2]|0;i=n;return m|0}h=j;c[h>>2]=b&268435455;c[h+4>>2]=0;c[m>>2]=28;while(1){if((c[m>>2]|0)>63)break;h=c[f>>2]|0;c[f>>2]=h+1;h=a[h>>0]|0;d=k;c[d>>2]=h;c[d+4>>2]=((h|0)<0)<<31>>31;d=lR(c[k>>2]&127|0,0,c[m>>2]|0)|0;h=j;d=gR(c[h>>2]|0,c[h+4>>2]|0,d|0,C|0)|0;h=j;c[h>>2]=d;c[h+4>>2]=C;if((c[k>>2]&128|0)==0&0==0)break;c[m>>2]=(c[m>>2]|0)+7}k=c[j+4>>2]|0;m=c[g>>2]|0;c[m>>2]=c[j>>2];c[m+4>>2]=k;c[e>>2]=(c[f>>2]|0)-(c[l>>2]|0);m=c[e>>2]|0;i=n;return m|0}function Vl(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;e=j+12|0;f=j+8|0;g=j+4|0;h=j;c[f>>2]=b;c[g>>2]=d;d=c[f>>2]|0;c[f>>2]=d+1;c[h>>2]=a[d>>0];d=c[h>>2]&127;b=c[f>>2]|0;c[f>>2]=b+1;c[h>>2]=d|a[b>>0]<<7;b=c[h>>2]|0;if(!(c[h>>2]&16384)){c[c[g>>2]>>2]=b;c[e>>2]=2;h=c[e>>2]|0;i=j;return h|0}d=c[f>>2]|0;c[f>>2]=d+1;c[h>>2]=b&16383|a[d>>0]<<14;b=c[h>>2]|0;if(!(c[h>>2]&2097152)){c[c[g>>2]>>2]=b;c[e>>2]=3;h=c[e>>2]|0;i=j;return h|0}d=c[f>>2]|0;c[f>>2]=d+1;c[h>>2]=b&2097151|a[d>>0]<<21;b=c[h>>2]|0;if(!(c[h>>2]&268435456)){c[c[g>>2]>>2]=b;c[e>>2]=4;h=c[e>>2]|0;i=j;return h|0}else{c[h>>2]=b&268435455;c[c[g>>2]>>2]=c[h>>2]|(a[c[f>>2]>>0]&15)<<28;c[e>>2]=5;h=c[e>>2]|0;i=j;return h|0}return 0}function Wl(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=i;i=i+80|0;k=B+76|0;l=B+72|0;m=B+68|0;n=B+64|0;o=B+60|0;p=B+56|0;q=B+52|0;w=B+48|0;t=B+16|0;z=B+44|0;x=B+40|0;y=B+36|0;u=B+32|0;r=B+8|0;v=B+28|0;s=B;A=B+24|0;c[k>>2]=b;c[l>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[q>>2]=j;c[w>>2]=c[c[n>>2]>>2];if(c[w>>2]|0){c[v>>2]=(c[k>>2]|0)!=0?-1:1;_l(w,c[l>>2]|0,s);f=c[v>>2]|0;h=s;h=rR(f|0,((f|0)<0)<<31>>31|0,c[h>>2]|0,c[h+4>>2]|0)|0;f=c[o>>2]|0;g=f;h=fR(c[g>>2]|0,c[g+4>>2]|0,h|0,C|0)|0;c[f>>2]=h;c[f+4>>2]=C;if((c[w>>2]|0)==(c[l>>2]|0))a[c[q>>2]>>0]=1;else{c[A>>2]=c[w>>2];$l(c[l>>2]|0,w);c[c[p>>2]>>2]=(c[A>>2]|0)-(c[w>>2]|0)}c[c[n>>2]>>2]=c[w>>2];i=B;return}f=t;c[f>>2]=0;c[f+4>>2]=0;c[z>>2]=0;c[x>>2]=c[l>>2];c[y>>2]=(c[l>>2]|0)+(c[m>>2]|0);c[u>>2]=1;while(1){if((c[x>>2]|0)>>>0>=(c[y>>2]|0)>>>0)break;f=Ul(c[x>>2]|0,r)|0;c[x>>2]=(c[x>>2]|0)+f;f=c[u>>2]|0;h=r;h=rR(f|0,((f|0)<0)<<31>>31|0,c[h>>2]|0,c[h+4>>2]|0)|0;f=t;h=gR(c[f>>2]|0,c[f+4>>2]|0,h|0,C|0)|0;f=t;c[f>>2]=h;c[f+4>>2]=C;c[z>>2]=c[x>>2];Zl(0,x);while(1){if((c[x>>2]|0)>>>0>=(c[y>>2]|0)>>>0)break;if(a[c[x>>2]>>0]|0)break;c[x>>2]=(c[x>>2]|0)+1}c[u>>2]=(c[k>>2]|0)!=0?-1:1}c[c[p>>2]>>2]=(c[y>>2]|0)-(c[z>>2]|0);c[c[n>>2]>>2]=c[z>>2];g=t;h=c[g+4>>2]|0;f=c[o>>2]|0;c[f>>2]=c[g>>2];c[f+4>>2]=h;i=B;return}function Xl(b){b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;e=g+8|0;d=g+4|0;f=g;c[e>>2]=b;if(((c[(c[e>>2]|0)+44>>2]|0)-(c[(c[e>>2]|0)+48>>2]|0)|0)<4096)b=(c[(c[e>>2]|0)+44>>2]|0)-(c[(c[e>>2]|0)+48>>2]|0)|0;else b=4096;c[d>>2]=b;c[f>>2]=We(c[(c[e>>2]|0)+52>>2]|0,(c[(c[e>>2]|0)+40>>2]|0)+(c[(c[e>>2]|0)+48>>2]|0)|0,c[d>>2]|0,c[(c[e>>2]|0)+48>>2]|0)|0;if(c[f>>2]|0){f=c[f>>2]|0;i=g;return f|0}b=(c[e>>2]|0)+48|0;c[b>>2]=(c[b>>2]|0)+(c[d>>2]|0);b=(c[(c[e>>2]|0)+40>>2]|0)+(c[(c[e>>2]|0)+48>>2]|0)|0;d=b+20|0;do{a[b>>0]=0;b=b+1|0}while((b|0)<(d|0));if((c[(c[e>>2]|0)+48>>2]|0)!=(c[(c[e>>2]|0)+44>>2]|0)){f=c[f>>2]|0;i=g;return f|0}Ve(c[(c[e>>2]|0)+52>>2]|0)|0;c[(c[e>>2]|0)+52>>2]=0;c[(c[e>>2]|0)+48>>2]=0;f=c[f>>2]|0;i=g;return f|0}function Yl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;e=j+12|0;f=j+8|0;g=j+4|0;h=j;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[h>>2]=0;while(1){if(!((c[h>>2]|0)==0?(c[(c[e>>2]|0)+52>>2]|0)!=0:0)){e=5;break}if(((c[f>>2]|0)-(c[(c[e>>2]|0)+40>>2]|0)+(c[g>>2]|0)|0)<=(c[(c[e>>2]|0)+48>>2]|0)){
  50. e=5;break}c[h>>2]=Xl(c[e>>2]|0)|0}if((e|0)==5){i=j;return c[h>>2]|0}return 0}function Zl(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;e=l+16|0;f=l+12|0;k=l+8|0;g=l+20|0;h=l+4|0;j=l;c[e>>2]=b;c[f>>2]=d;c[k>>2]=c[c[f>>2]>>2];a[g>>0]=0;while(1){d=(a[c[k>>2]>>0]|a[g>>0]|0)!=0;b=c[k>>2]|0;c[k>>2]=b+1;if(!d)break;a[g>>0]=a[b>>0]&128}if(!(c[e>>2]|0)){j=c[k>>2]|0;k=c[f>>2]|0;c[k>>2]=j;i=l;return}c[h>>2]=(c[k>>2]|0)-(c[c[f>>2]>>2]|0);c[j>>2]=c[c[e>>2]>>2];iR(c[j>>2]|0,c[c[f>>2]>>2]|0,c[h>>2]|0)|0;c[j>>2]=(c[j>>2]|0)+(c[h>>2]|0);c[c[e>>2]>>2]=c[j>>2];j=c[k>>2]|0;k=c[f>>2]|0;c[k>>2]=j;i=l;return}function _l(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;f=l+20|0;g=l+16|0;h=l+12|0;j=l;k=l+8|0;c[f>>2]=b;c[g>>2]=d;c[h>>2]=e;c[k>>2]=(c[c[f>>2]>>2]|0)+-2;while(1){if((c[k>>2]|0)>>>0<(c[g>>2]|0)>>>0)break;if(!(a[c[k>>2]>>0]&128))break;c[k>>2]=(c[k>>2]|0)+-1}c[k>>2]=(c[k>>2]|0)+1;c[c[f>>2]>>2]=c[k>>2];Ul(c[k>>2]|0,j)|0;d=j;e=c[d+4>>2]|0;b=c[h>>2]|0;c[b>>2]=c[d>>2];c[b+4>>2]=e;i=l;return}function $l(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;e=k+8|0;f=k+4|0;h=k;g=k+12|0;c[e>>2]=b;c[f>>2]=d;c[h>>2]=(c[c[f>>2]>>2]|0)+-2;a[g>>0]=0;do{if((c[h>>2]|0)>>>0<=(c[e>>2]|0)>>>0)break;d=c[h>>2]|0;c[h>>2]=d+-1;d=a[d>>0]|0;a[g>>0]=d}while((d<<24>>24|0)==0);while(1){if((c[h>>2]|0)>>>0>(c[e>>2]|0)>>>0)d=(a[c[h>>2]>>0]&128|a[g>>0]|0)!=0;else d=0;b=c[h>>2]|0;if(!d)break;c[h>>2]=b+-1;a[g>>0]=a[b>>0]|0}if(b>>>0<=(c[e>>2]|0)>>>0){if((a[g>>0]|0)==0?(c[c[f>>2]>>2]|0)>>>0>((c[h>>2]|0)+2|0)>>>0:0)j=11}else j=11;if((j|0)==11)c[h>>2]=(c[h>>2]|0)+2;do{j=c[h>>2]|0;c[h>>2]=j+1}while((a[j>>0]&128|0)!=0);c[c[f>>2]>>2]=c[h>>2];i=k;return}function am(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+48|0;o=t+8|0;p=t+40|0;j=t+36|0;k=t;q=t+32|0;l=t+28|0;m=t+24|0;s=t+20|0;n=t+16|0;r=t+12|0;c[j>>2]=b;b=k;c[b>>2]=d;c[b+4>>2]=e;c[q>>2]=f;c[l>>2]=g;c[m>>2]=h;d=c[j>>2]|0;if(c[(c[j>>2]|0)+244>>2]|0){o=k;c[s>>2]=Ye(c[d+244>>2]|0,c[o>>2]|0,c[o+4>>2]|0)|0}else{if(0==(c[d+240>>2]|0)?(c[o>>2]=c[(c[j>>2]|0)+20>>2],o=Od(24010,o)|0,c[(c[j>>2]|0)+240>>2]=o,0==(c[(c[j>>2]|0)+240>>2]|0)):0){c[p>>2]=7;s=c[p>>2]|0;i=t;return s|0}o=k;c[s>>2]=Ue(c[(c[j>>2]|0)+12>>2]|0,c[(c[j>>2]|0)+16>>2]|0,c[(c[j>>2]|0)+240>>2]|0,24022,c[o>>2]|0,c[o+4>>2]|0,0,(c[j>>2]|0)+244|0)|0}if((c[s>>2]|0)==0?(c[n>>2]=Xe(c[(c[j>>2]|0)+244>>2]|0)|0,c[c[l>>2]>>2]=c[n>>2],(c[q>>2]|0)!=0):0){c[r>>2]=Id((c[n>>2]|0)+20|0)|0;if(c[r>>2]|0){if((c[m>>2]|0)!=0&(c[n>>2]|0)>16384){c[n>>2]=4096;c[c[m>>2]>>2]=c[n>>2]}c[s>>2]=We(c[(c[j>>2]|0)+244>>2]|0,c[r>>2]|0,c[n>>2]|0,0)|0;d=(c[r>>2]|0)+(c[n>>2]|0)|0;e=d+20|0;do{a[d>>0]=0;d=d+1|0}while((d|0)<(e|0));if(c[s>>2]|0){Kd(c[r>>2]|0);c[r>>2]=0}}else c[s>>2]=7;c[c[q>>2]>>2]=c[r>>2]}c[p>>2]=c[s>>2];s=c[p>>2]|0;i=t;return s|0}function bm(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;n=r+36|0;g=r+32|0;o=r+28|0;h=r+24|0;j=r+20|0;k=r+16|0;p=r+12|0;m=r+8|0;l=r+4|0;q=r;c[g>>2]=a;c[o>>2]=b;c[h>>2]=e;c[j>>2]=f;c[p>>2]=c[(c[o>>2]|0)+4>>2];c[k>>2]=0;a:while(1){if(c[(c[o>>2]|0)+28>>2]|0){g=12;break}if((c[k>>2]|0)>=(c[(c[o>>2]|0)+4>>2]|0)){g=12;break}c[m>>2]=0;c[l>>2]=c[(c[c[o>>2]>>2]|0)+(c[k>>2]<<2)>>2];do{c[q>>2]=Ll(c[g>>2]|0,c[l>>2]|0,0)|0;if(c[q>>2]|0){g=6;break a}if(!(c[h>>2]|0))break;e=cm(c[l>>2]|0,c[h>>2]|0,c[j>>2]|0)|0;c[m>>2]=e}while((e|0)<0);if((c[m>>2]|0)!=0?(d[(c[l>>2]|0)+4>>0]|0|0)!=0:0)Kl(c[l>>2]|0);c[k>>2]=(c[k>>2]|0)+1}if((g|0)==6){c[n>>2]=c[q>>2];q=c[n>>2]|0;i=r;return q|0}else if((g|0)==12){Nl(c[c[o>>2]>>2]|0,c[p>>2]|0,c[p>>2]|0,184);c[n>>2]=0;q=c[n>>2]|0;i=r;return q|0}return 0}function cm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;f=j+12|0;e=j+8|0;g=j+4|0;h=j;c[f>>2]=a;c[e>>2]=b;c[g>>2]=d;c[h>>2]=0;if(!(c[(c[f>>2]|0)+40>>2]|0)){h=c[h>>2]|0;i=j;return h|0}a=c[(c[f>>2]|0)+64>>2]|0;d=c[e>>2]|0;if((c[(c[f>>2]|0)+60>>2]|0)>(c[g>>2]|0))c[h>>2]=vQ(a,d,c[g>>2]|0)|0;else c[h>>2]=vQ(a,d,c[(c[f>>2]|0)+60>>2]|0)|0;if(c[h>>2]|0){h=c[h>>2]|0;i=j;return h|0}c[h>>2]=(c[(c[f>>2]|0)+60>>2]|0)-(c[g>>2]|0);h=c[h>>2]|0;i=j;return h|0}function dm(a,b,d,e,f,g,h,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0;G=i;i=i+96|0;l=G+88|0;m=G+84|0;n=G+80|0;o=G+76|0;p=G+72|0;q=G+68|0;r=G+64|0;s=G+60|0;t=G+56|0;D=G+52|0;A=G+48|0;E=G+44|0;y=G+40|0;z=G+36|0;w=G+16|0;v=G+8|0;u=G;x=G+32|0;F=G+28|0;B=G+24|0;c[l>>2]=a;c[m>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=j;c[t>>2]=k;c[D>>2]=0;c[A>>2]=0;if(((c[o>>2]|0)<0?(c[(c[l>>2]|0)+252>>2]|0)!=0:0)?(c[y>>2]=0,c[D>>2]=em(c[l>>2]|0,c[n>>2]|0,c[p>>2]|0,c[q>>2]|0,((c[r>>2]|0)!=0?1:(c[s>>2]|0)!=0)&1,y)|0,(c[D>>2]|0)==0&(c[y>>2]|0)!=0):0)c[D>>2]=fm(c[t>>2]|0,c[y>>2]|0)|0;a:do if((c[o>>2]|0)!=-1){if(!(c[D>>2]|0))c[D>>2]=gm(c[l>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,A)|0;while(1){if(c[D>>2]|0)break a;f=ue(c[A>>2]|0)|0;c[D>>2]=f;if(100!=(f|0))break a;c[z>>2]=0;y=Ee(c[A>>2]|0,1)|0;f=w;c[f>>2]=y;c[f+4>>2]=C;f=Ee(c[A>>2]|0,2)|0;y=v;c[y>>2]=f;c[y+4>>2]=C;y=Ee(c[A>>2]|0,3)|0;f=u;c[f>>2]=y;c[f+4>>2]=C;c[x>>2]=Be(c[A>>2]|0,4)|0;c[F>>2]=Ae(c[A>>2]|0,4)|0;f=w;if(((c[f>>2]|0)!=0|(c[f+4>>2]|0)!=0)&(c[p>>2]|0)!=0){c[B>>2]=(c[r>>2]|0)!=0?v:0;c[D>>2]=hm(c[l>>2]|0,c[p>>2]|0,c[q>>2]|0,c[F>>2]|0,c[x>>2]|0,w,c[B>>2]|0)|0;if(c[D>>2]|0)break a;if((c[r>>2]|0)==0&(c[s>>2]|0)==0){k=w;y=c[k+4>>2]|0;f=v;c[f>>2]=c[k>>2];c[f+4>>2]=y}}k=w;y=v;f=u;c[D>>2]=im((c[(c[t>>2]|0)+4>>2]|0)+1|0,((c[r>>2]|0)==0?(c[s>>2]|0)==0:0)&1,c[k>>2]|0,c[k+4>>2]|0,c[y>>2]|0,c[y+4>>2]|0,c[f>>2]|0,c[f+4>>2]|0,c[F>>2]|0,c[x>>2]|0,z)|0;if(c[D>>2]|0)break a;c[D>>2]=fm(c[t>>2]|0,c[z>>2]|0)|0}}while(0);c[E>>2]=Zd(c[A>>2]|0)|0;if((c[D>>2]|0)!=101){f=c[D>>2]|0;i=G;return f|0}c[D>>2]=c[E>>2];f=c[D>>2]|0;i=G;return f|0}function em(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;y=i;i=i+80|0;A=y+64|0;z=y+60|0;h=y+56|0;j=y+52|0;k=y+48|0;l=y+44|0;u=y+40|0;s=y+36|0;m=y+32|0;q=y+28|0;v=y+24|0;t=y+20|0;o=y+16|0;w=y+12|0;r=y+8|0;n=y+4|0;p=y;c[A>>2]=a;c[z>>2]=b;c[h>>2]=d;c[j>>2]=e;c[k>>2]=f;c[l>>2]=g;c[u>>2]=0;c[m>>2]=0;c[q>>2]=0;c[v>>2]=0;c[t>>2]=(c[(c[A>>2]|0)+252>>2]|0)+((c[z>>2]|0)*24|0)+4;if(c[k>>2]|0){c[o>>2]=0;c[s>>2]=c[(c[t>>2]|0)+8>>2];while(1){if(!(c[s>>2]|0))break;c[w>>2]=c[(c[s>>2]|0)+12>>2];c[r>>2]=c[(c[s>>2]|0)+16>>2];if(c[j>>2]|0){if((c[r>>2]|0)>=(c[j>>2]|0)?0==(vQ(c[w>>2]|0,c[h>>2]|0,c[j>>2]|0)|0):0)x=7}else x=7;if((x|0)==7){x=0;if((c[q>>2]|0)==(c[o>>2]|0)){c[o>>2]=(c[o>>2]|0)+16;c[n>>2]=Ld(c[m>>2]|0,c[o>>2]<<2)|0;if(!(c[n>>2]|0)){x=9;break}c[m>>2]=c[n>>2]}z=c[s>>2]|0;A=c[q>>2]|0;c[q>>2]=A+1;c[(c[m>>2]|0)+(A<<2)>>2]=z}c[s>>2]=c[c[s>>2]>>2]}if((x|0)==9){c[v>>2]=7;c[q>>2]=0}if((c[q>>2]|0)>1)uQ(c[m>>2]|0,c[q>>2]|0,4,185)}else{c[s>>2]=Ak(c[t>>2]|0,c[h>>2]|0,c[j>>2]|0)|0;if(c[s>>2]|0){c[m>>2]=s;c[q>>2]=1}}do if((c[q>>2]|0)>0){c[p>>2]=96+((c[q>>2]|0)+1<<2);c[u>>2]=Id(c[p>>2]|0)|0;if(c[u>>2]|0){kR(c[u>>2]|0,0,c[p>>2]|0)|0;c[c[u>>2]>>2]=2147483647;c[(c[u>>2]|0)+56>>2]=(c[u>>2]|0)+96;iR(c[(c[u>>2]|0)+56>>2]|0,c[m>>2]|0,c[q>>2]<<2|0)|0;break}else{c[v>>2]=7;break}}while(0);if(!(c[k>>2]|0)){z=c[u>>2]|0;A=c[l>>2]|0;c[A>>2]=z;A=c[v>>2]|0;i=y;return A|0}Kd(c[m>>2]|0);z=c[u>>2]|0;A=c[l>>2]|0;c[A>>2]=z;A=c[v>>2]|0;i=y;return A|0}function fm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+32|0;d=j+16|0;e=j+12|0;f=j+8|0;g=j+4|0;h=j;c[e>>2]=a;c[f>>2]=b;do if(!((c[(c[e>>2]|0)+4>>2]|0)%16|0)){c[h>>2]=(c[(c[e>>2]|0)+4>>2]|0)+16<<2;c[g>>2]=Ld(c[c[e>>2]>>2]|0,c[h>>2]|0)|0;if(c[g>>2]|0){c[c[e>>2]>>2]=c[g>>2];break}wl(c[f>>2]|0);c[d>>2]=7;b=c[d>>2]|0;i=j;return b|0}while(0);a=c[f>>2]|0;h=(c[e>>2]|0)+4|0;b=c[h>>2]|0;c[h>>2]=b+1;c[(c[c[e>>2]>>2]|0)+(b<<2)>>2]=a;c[d>>2]=0;b=c[d>>2]|0;i=j;return b|0}function gm(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;g=o+24|0;h=o+20|0;j=o+16|0;k=o+12|0;l=o+8|0;n=o+4|0;m=o;c[g>>2]=a;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;c[m>>2]=0;d=c[g>>2]|0;if((c[k>>2]|0)<0){c[n>>2]=jl(d,13,m,0)|0;if(!(c[n>>2]|0)){k=c[m>>2]|0;f=ml(c[g>>2]|0,c[h>>2]|0,c[j>>2]|0,0)|0;Me(k,1,f,C)|0;f=c[m>>2]|0;k=ml(c[g>>2]|0,c[h>>2]|0,c[j>>2]|0,1023)|0;Me(f,2,k,C)|0}}else{c[n>>2]=jl(d,12,m,0)|0;if(!(c[n>>2]|0)){f=c[m>>2]|0;k=ml(c[g>>2]|0,c[h>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;Me(f,1,k,C)|0}}c[c[l>>2]>>2]=c[m>>2];i=o;return c[n>>2]|0}function hm(a,b,e,f,g,h,j){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+48|0;n=v+40|0;o=v+36|0;p=v+32|0;k=v+28|0;l=v+24|0;q=v+20|0;r=v+16|0;t=v+12|0;m=v+8|0;u=v+4|0;s=v;c[n>>2]=a;c[o>>2]=b;c[p>>2]=e;c[k>>2]=f;c[l>>2]=g;c[q>>2]=h;c[r>>2]=j;c[t>>2]=0;g=c[k>>2]|0;if((d[c[k>>2]>>0]|0)&128)Vl(g,m)|0;else c[m>>2]=d[g>>0];c[t>>2]=jm(c[o>>2]|0,c[p>>2]|0,c[k>>2]|0,c[l>>2]|0,c[q>>2]|0,c[r>>2]|0)|0;if(!((c[t>>2]|0)==0&(c[m>>2]|0)>1)){u=c[t>>2]|0;i=v;return u|0}c[u>>2]=0;c[s>>2]=0;if((c[q>>2]|0)!=0&(c[r>>2]|0)!=0?(l=c[q>>2]|0,m=c[r>>2]|0,(c[l>>2]|0)!=(c[m>>2]|0)?1:(c[l+4>>2]|0)!=(c[m+4>>2]|0)):0){m=c[q>>2]|0;c[t>>2]=am(c[n>>2]|0,c[m>>2]|0,c[m+4>>2]|0,u,s,0)|0;if(!(c[t>>2]|0))c[t>>2]=hm(c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[u>>2]|0,c[s>>2]|0,c[q>>2]|0,0)|0;Kd(c[u>>2]|0);c[q>>2]=0;c[u>>2]=0}if(!(c[t>>2]|0)){if(c[q>>2]|0){e=c[q>>2]|0;g=c[e>>2]|0;e=c[e+4>>2]|0}else{e=c[r>>2]|0;g=c[e>>2]|0;e=c[e+4>>2]|0}c[t>>2]=am(c[n>>2]|0,g,e,u,s,0)|0}if(!(c[t>>2]|0))c[t>>2]=hm(c[n>>2]|0,c[o>>2]|0,c[p>>2]|0,c[u>>2]|0,c[s>>2]|0,c[q>>2]|0,c[r>>2]|0)|0;Kd(c[u>>2]|0);u=c[t>>2]|0;i=v;return u|0}function im(b,d,e,f,g,h,j,k,l,m,n){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=i;i=i+64|0;t=z+52|0;u=z+48|0;v=z+44|0;w=z+16|0;o=z+8|0;p=z;q=z+40|0;r=z+36|0;s=z+32|0;y=z+28|0;x=z+24|0;c[u>>2]=b;c[v>>2]=d;b=w;c[b>>2]=e;c[b+4>>2]=f;b=o;c[b>>2]=g;c[b+4>>2]=h;b=p;c[b>>2]=j;c[b+4>>2]=k;c[q>>2]=l;c[r>>2]=m;c[s>>2]=n;c[x>>2]=0;l=w;if((c[l>>2]|0)==0&(c[l+4>>2]|0)==0)c[x>>2]=(c[r>>2]|0)+20;c[y>>2]=Id(96+(c[x>>2]|0)|0)|0;if(!(c[y>>2]|0)){c[t>>2]=7;y=c[t>>2]|0;i=z;return y|0}e=c[y>>2]|0;f=e+96|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(f|0));c[c[y>>2]>>2]=c[u>>2];a[(c[y>>2]|0)+4>>0]=(c[v>>2]|0)!=0;l=w;u=c[l+4>>2]|0;v=(c[y>>2]|0)+8|0;c[v>>2]=c[l>>2];c[v+4>>2]=u;v=c[o+4>>2]|0;u=(c[y>>2]|0)+16|0;c[u>>2]=c[o>>2];c[u+4>>2]=v;u=c[p+4>>2]|0;v=(c[y>>2]|0)+24|0;c[v>>2]=c[p>>2];c[v+4>>2]=u;if(c[x>>2]|0){c[(c[y>>2]|0)+40>>2]=(c[y>>2]|0)+96;a[(c[y>>2]|0)+5>>0]=1;c[(c[y>>2]|0)+44>>2]=c[r>>2];iR(c[(c[y>>2]|0)+40>>2]|0,c[q>>2]|0,c[r>>2]|0)|0;e=(c[(c[y>>2]|0)+40>>2]|0)+(c[r>>2]|0)|0;f=e+20|0;do{a[e>>0]=0;e=e+1|0}while((e|0)<(f|0))}else{w=fR(c[w>>2]|0,c[w+4>>2]|0,1,0)|0;x=(c[y>>2]|0)+32|0;c[x>>2]=w;c[x+4>>2]=C}c[c[s>>2]>>2]=c[y>>2];c[t>>2]=0;y=c[t>>2]|0;i=z;return y|0}function jm(a,b,e,f,g,h){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0;A=i;i=i+80|0;u=A+76|0;j=A+72|0;k=A+68|0;D=A+64|0;B=A+60|0;v=A+56|0;w=A+52|0;y=A+48|0;r=A+44|0;s=A+40|0;z=A+36|0;n=A+32|0;m=A+28|0;x=A;l=A+24|0;q=A+20|0;p=A+16|0;o=A+12|0;t=A+8|0;c[j>>2]=a;c[k>>2]=b;c[D>>2]=e;c[B>>2]=f;c[v>>2]=g;c[w>>2]=h;c[y>>2]=0;c[r>>2]=c[D>>2];c[s>>2]=(c[r>>2]|0)+(c[B>>2]|0);c[z>>2]=0;c[n>>2]=0;c[m>>2]=1;a=Ul(c[r>>2]|0,x)|0;c[r>>2]=(c[r>>2]|0)+a;a=Ul(c[r>>2]|0,x)|0;c[r>>2]=(c[r>>2]|0)+a;if((c[r>>2]|0)>>>0>(c[s>>2]|0)>>>0){c[u>>2]=267;D=c[u>>2]|0;i=A;return D|0}while(1){if((c[r>>2]|0)>>>0>=(c[s>>2]|0)>>>0){f=28;break}if(!((c[v>>2]|0)!=0?1:(c[w>>2]|0)!=0)){f=28;break}c[p>>2]=0;if(!(c[m>>2]|0)){f=c[r>>2]|0;if((d[c[r>>2]>>0]|0)&128)f=Vl(f,p)|0;else{c[p>>2]=d[f>>0];f=1}c[r>>2]=(c[r>>2]|0)+f}c[m>>2]=0;f=c[r>>2]|0;if((d[c[r>>2]>>0]|0)&128)f=Vl(f,q)|0;else{c[q>>2]=d[f>>0];f=1}c[r>>2]=(c[r>>2]|0)+f;if((c[p>>2]|0)<0|(c[q>>2]|0)<0){f=15;break}if(((c[r>>2]|0)+(c[q>>2]|0)|0)>>>0>(c[s>>2]|0)>>>0){f=15;break}if(((c[p>>2]|0)+(c[q>>2]|0)|0)>(c[n>>2]|0)){c[n>>2]=(c[p>>2]|0)+(c[q>>2]|0)<<1;c[t>>2]=Ld(c[z>>2]|0,c[n>>2]|0)|0;if(!(c[t>>2]|0)){f=18;break}c[z>>2]=c[t>>2]}iR((c[z>>2]|0)+(c[p>>2]|0)|0,c[r>>2]|0,c[q>>2]|0)|0;c[o>>2]=(c[p>>2]|0)+(c[q>>2]|0);c[r>>2]=(c[r>>2]|0)+(c[q>>2]|0);c[l>>2]=vQ(c[j>>2]|0,c[z>>2]|0,(c[o>>2]|0)>(c[k>>2]|0)?c[k>>2]|0:c[o>>2]|0)|0;do if(c[v>>2]|0){if((c[l>>2]|0)>=0){if(c[l>>2]|0)break;if((c[o>>2]|0)<=(c[k>>2]|0))break}a=x;B=c[a+4>>2]|0;D=c[v>>2]|0;c[D>>2]=c[a>>2];c[D+4>>2]=B;c[v>>2]=0}while(0);if((c[w>>2]|0)!=0&(c[l>>2]|0)<0){a=x;B=c[a+4>>2]|0;D=c[w>>2]|0;c[D>>2]=c[a>>2];c[D+4>>2]=B;c[w>>2]=0}B=x;B=gR(c[B>>2]|0,c[B+4>>2]|0,1,0)|0;D=x;c[D>>2]=B;c[D+4>>2]=C}if((f|0)==15)c[y>>2]=267;else if((f|0)==18)c[y>>2]=7;else if((f|0)==28){if(c[v>>2]|0){t=x;B=c[t+4>>2]|0;D=c[v>>2]|0;c[D>>2]=c[t>>2];c[D+4>>2]=B}if(c[w>>2]|0){B=c[x+4>>2]|0;D=c[w>>2]|0;c[D>>2]=c[x>>2];c[D+4>>2]=B}}Kd(c[z>>2]|0);c[u>>2]=c[y>>2];D=c[u>>2]|0;i=A;return D|0}function km(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+32|0;m=g+28|0;l=g+24|0;k=g+20|0;j=g+16|0;e=g+12|0;f=g+8|0;h=g+4|0;d=g;c[m>>2]=a;c[l>>2]=b;c[k>>2]=c[(c[c[m>>2]>>2]|0)+12>>2];c[j>>2]=c[(c[c[l>>2]>>2]|0)+12>>2];c[e>>2]=c[(c[c[m>>2]>>2]|0)+16>>2];c[f>>2]=c[(c[c[l>>2]>>2]|0)+16>>2];c[h>>2]=(c[e>>2]|0)<(c[f>>2]|0)?c[e>>2]|0:c[f>>2]|0;c[d>>2]=vQ(c[k>>2]|0,c[j>>2]|0,c[h>>2]|0)|0;if(c[d>>2]|0){m=c[d>>2]|0;i=g;return m|0}c[d>>2]=(c[e>>2]|0)-(c[f>>2]|0);m=c[d>>2]|0;i=g;return m|0}function lm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+48|0;h=p+32|0;e=p+28|0;f=p+24|0;l=p+20|0;o=p+16|0;n=p+12|0;m=p+8|0;j=p+4|0;k=p;c[h>>2]=a;c[e>>2]=b;c[f>>2]=d;c[o>>2]=24274;c[n>>2]=24278;c[m>>2]=24283;c[j>>2]=-1;c[k>>2]=15;d=c[h>>2]|0;if((c[e>>2]|0)>6){je(d,24294,-1);i=p;return}if(pm(d,21347,c[c[f>>2]>>2]|0,l)|0){i=p;return}switch(c[e>>2]|0){case 6:{c[k>>2]=de(c[(c[f>>2]|0)+20>>2]|0)|0;g=6;break}case 5:{g=6;break}case 4:{g=7;break}case 3:{g=8;break}case 2:{g=9;break}default:{}}if((g|0)==6){c[j>>2]=de(c[(c[f>>2]|0)+16>>2]|0)|0;g=7}if((g|0)==7){c[m>>2]=ae(c[(c[f>>2]|0)+12>>2]|0)|0;g=8}if((g|0)==8){c[n>>2]=ae(c[(c[f>>2]|0)+8>>2]|0)|0;g=9}if((g|0)==9)c[o>>2]=ae(c[(c[f>>2]|0)+4>>2]|0)|0;if(!((c[m>>2]|0)!=0&(c[n>>2]|0)!=0&(c[o>>2]|0)!=0)){te(c[h>>2]|0);i=p;return}d=c[h>>2]|0;if(!(c[k>>2]|0)){ne(d,19266,-1,0);i=p;return}if(nn(d,c[l>>2]|0)|0){i=p;return}Sn(c[h>>2]|0,c[l>>2]|0,c[o>>2]|0,c[n>>2]|0,c[m>>2]|0,c[j>>2]|0,c[k>>2]|0);i=p;return}function mm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+16|0;e=g+12|0;h=g+4|0;f=g;c[e>>2]=a;c[g+8>>2]=b;c[h>>2]=d;if(pm(c[e>>2]|0,21355,c[c[h>>2]>>2]|0,f)|0){i=g;return}if(nn(c[e>>2]|0,c[f>>2]|0)|0){i=g;return}On(c[e>>2]|0,c[f>>2]|0);i=g;return}function nm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;j=i;i=i+32|0;e=j+20|0;k=j+12|0;h=j+8|0;f=j+4|0;g=j;c[e>>2]=a;c[j+16>>2]=b;c[k>>2]=d;if(pm(c[e>>2]|0,21373,c[c[k>>2]>>2]|0,g)|0){i=j;return}c[f>>2]=c[c[g>>2]>>2];c[h>>2]=Mn(c[f>>2]|0)|0;switch(c[h>>2]|0){case 0:{ne(c[e>>2]|0,24178,-1,0);i=j;return}case 101:{ne(c[e>>2]|0,24194,-1,0);i=j;return}default:{re(c[e>>2]|0,c[h>>2]|0);i=j;return}}}function om(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+16|0;f=k+12|0;g=k+8|0;h=k+4|0;j=k;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;if(pm(c[e>>2]|0,21363,c[c[g>>2]>>2]|0,h)|0){i=k;return}c[j>>2]=0;if((c[f>>2]|0)>1)c[j>>2]=ae(c[(c[g>>2]|0)+4>>2]|0)|0;qm(c[e>>2]|0,c[h>>2]|0,c[j>>2]|0);i=k;return}function pm(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;n=p;g=p+28|0;h=p+24|0;j=p+20|0;k=p+16|0;l=p+12|0;m=p+8|0;o=p+4|0;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;if((fe(c[k>>2]|0)|0)==4?(be(c[k>>2]|0)|0)==4:0){d=$d(c[k>>2]|0)|0;a[m>>0]=a[d>>0]|0;a[m+1>>0]=a[d+1>>0]|0;a[m+2>>0]=a[d+2>>0]|0;a[m+3>>0]=a[d+3>>0]|0;c[c[l>>2]>>2]=c[m>>2];c[g>>2]=0;d=c[g>>2]|0;i=p;return d|0}c[n>>2]=c[j>>2];c[o>>2]=Od(24149,n)|0;je(c[h>>2]|0,c[o>>2]|0,-1);Kd(c[o>>2]|0);c[g>>2]=1;d=c[g>>2]|0;i=p;return d|0}function qm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+16|0;g=k+12|0;f=k+8|0;h=k+4|0;j=k;c[e>>2]=a;c[g>>2]=b;c[f>>2]=d;c[h>>2]=c[c[g>>2]>>2];if(c[f>>2]|0)c[j>>2]=c[f>>2];else c[j>>2]=24084;e=c[e>>2]|0;if(c[(c[g>>2]|0)+12>>2]|0){rm(e,c[g>>2]|0,c[j>>2]|0);sm(c[h>>2]|0);i=k;return}else{ge(e,19266,0,0);i=k;return}}function rm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+80|0;f=u+76|0;g=u+72|0;h=u+68|0;q=u;o=u+64|0;p=u+60|0;k=u+56|0;j=u+52|0;r=u+48|0;n=u+44|0;l=u+40|0;s=u+36|0;m=u+32|0;c[f>>2]=b;c[g>>2]=d;c[h>>2]=e;c[o>>2]=c[c[g>>2]>>2];c[p>>2]=0;c[k>>2]=0;c[j>>2]=0;c[r>>2]=0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;c[q+16>>2]=0;c[q+20>>2]=0;c[q+24>>2]=0;c[q+28>>2]=0;c[q>>2]=c[g>>2];c[q+4>>2]=c[(c[o>>2]|0)+24>>2];if((c[(c[g>>2]|0)+92>>2]|0)!=0?(yQ(c[(c[(c[g>>2]|0)+92>>2]|0)+12>>2]|0,c[h>>2]|0)|0)!=0:0){tm(c[(c[g>>2]|0)+92>>2]|0);c[(c[g>>2]|0)+92>>2]=0}if(!(c[(c[g>>2]|0)+92>>2]|0)){c[n>>2]=0;e=um(c[(c[g>>2]|0)+12>>2]|0)|0;c[(c[g>>2]|0)+20>>2]=e;c[q+8>>2]=c[(c[g>>2]|0)+20>>2];c[l>>2]=0;while(1){if(!(a[(c[h>>2]|0)+(c[l>>2]|0)>>0]|0))break;c[s>>2]=0;if(vm(c[o>>2]|0,a[(c[h>>2]|0)+(c[l>>2]|0)>>0]|0,s)|0){t=8;break}e=wm(q,a[(c[h>>2]|0)+(c[l>>2]|0)>>0]|0)|0;c[n>>2]=(c[n>>2]|0)+e;c[l>>2]=(c[l>>2]|0)+1}if((t|0)==8){je(c[f>>2]|0,c[s>>2]|0,-1);Kd(c[s>>2]|0);i=u;return}t=xm(c[n>>2]|0,c[h>>2]|0)|0;c[(c[g>>2]|0)+92>>2]=t;if(!(c[(c[g>>2]|0)+92>>2]|0))c[p>>2]=7;c[(c[g>>2]|0)+88>>2]=1;c[k>>2]=1}if((c[p>>2]|0)==0?(c[r>>2]=ym(c[(c[g>>2]|0)+92>>2]|0,j)|0,(c[r>>2]|0)==0):0)c[p>>2]=7;if((c[p>>2]|0)==0?(c[q+28>>2]=c[j>>2],c[q+8>>2]=c[(c[g>>2]|0)+20>>2],c[p>>2]=zm(c[g>>2]|0,c[k>>2]|0,q,c[h>>2]|0)|0,(c[k>>2]|0)!=0):0)Am(c[(c[g>>2]|0)+92>>2]|0);if(!(c[p>>2]|0)){c[m>>2]=c[(c[(c[g>>2]|0)+92>>2]|0)+4>>2]<<2;ge(c[f>>2]|0,c[j>>2]|0,c[m>>2]|0,c[r>>2]|0);i=u;return}re(c[f>>2]|0,c[p>>2]|0);if(!(c[r>>2]|0)){i=u;return}Qb[c[r>>2]&255](c[j>>2]|0);i=u;return}function sm(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;Ve(c[(c[d>>2]|0)+244>>2]|0)|0;c[(c[d>>2]|0)+244>>2]=0;i=b;return}function tm(b){b=b|0;var e=0,f=0;f=i;i=i+16|0;e=f;c[e>>2]=b;if(!(c[e>>2]|0)){i=f;return}a[c[e>>2]>>0]=0;if(d[c[e>>2]>>0]|0){i=f;return}if(d[(c[e>>2]|0)+1>>0]|0){i=f;return}if(d[(c[e>>2]|0)+2>>0]|0){i=f;return}Kd(c[e>>2]|0);i=f;return}function um(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;c[b>>2]=0;Hm(c[e>>2]|0,153,b)|0;i=d;return c[b>>2]|0}function vm(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;l=m;g=m+12|0;h=m+8|0;j=m+16|0;k=m+4|0;c[h>>2]=b;a[j>>0]=e;c[k>>2]=f;do if((a[j>>0]|0)!=112?(a[j>>0]|0)!=99:0){if((a[j>>0]|0)==110?(d[(c[h>>2]|0)+228>>0]|0)!=0:0)break;if((a[j>>0]|0)==97?(d[(c[h>>2]|0)+228>>0]|0)!=0:0)break;if((a[j>>0]|0)==108?(d[(c[h>>2]|0)+230>>0]|0)!=0:0)break;if((((a[j>>0]|0)!=115?(a[j>>0]|0)!=120:0)?(a[j>>0]|0)!=121:0)?(a[j>>0]|0)!=98:0){f=c[k>>2]|0;c[l>>2]=a[j>>0];zk(f,24114,l);c[g>>2]=1;l=c[g>>2]|0;i=m;return l|0}}while(0);c[g>>2]=0;l=c[g>>2]|0;i=m;return l|0}function wm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+16|0;e=g+4|0;h=g+8|0;f=g;c[e>>2]=b;a[h>>0]=d;switch(a[h>>0]|0){case 99:case 112:case 110:{c[f>>2]=1;break}case 115:case 108:case 97:{c[f>>2]=c[(c[e>>2]|0)+4>>2];break}case 121:{c[f>>2]=_(c[(c[e>>2]|0)+4>>2]|0,c[(c[e>>2]|0)+8>>2]|0)|0;break}case 98:{c[f>>2]=_(c[(c[e>>2]|0)+8>>2]|0,((c[(c[e>>2]|0)+4>>2]|0)+31|0)/32|0)|0;break}default:c[f>>2]=(_(c[(c[e>>2]|0)+4>>2]|0,c[(c[e>>2]|0)+8>>2]|0)|0)*3}i=g;return c[f>>2]|0}function xm(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+16|0;f=k+12|0;j=k+8|0;g=k+4|0;h=k;c[e>>2]=b;c[f>>2]=d;c[g>>2]=((c[e>>2]<<1)+1<<2)+20;c[h>>2]=BQ(c[f>>2]|0)|0;c[j>>2]=Id((c[g>>2]|0)+(c[h>>2]|0)+1|0)|0;if(!(c[j>>2]|0)){d=c[j>>2]|0;i=k;return d|0}kR(c[j>>2]|0,0,c[g>>2]|0)|0;c[(c[j>>2]|0)+16>>2]=(c[j>>2]|0)+16+4-(c[j>>2]|0);c[(c[j>>2]|0)+16+(1+(c[e>>2]|0)<<2)>>2]=(c[(c[j>>2]|0)+16>>2]|0)+((c[e>>2]|0)+1<<2);c[(c[j>>2]|0)+4>>2]=c[e>>2];c[(c[j>>2]|0)+12>>2]=(c[j>>2]|0)+(c[g>>2]|0);iR(c[(c[j>>2]|0)+12>>2]|0,c[f>>2]|0,(c[h>>2]|0)+1|0)|0;a[c[j>>2]>>0]=1;d=c[j>>2]|0;i=k;return d|0}function ym(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;f=k+12|0;g=k+8|0;j=k+4|0;h=k;c[f>>2]=b;c[g>>2]=e;c[j>>2]=0;c[h>>2]=0;e=c[f>>2]|0;do if(d[(c[f>>2]|0)+1>>0]|0){b=c[f>>2]|0;if(!(d[e+2>>0]|0)){a[b+2>>0]=1;c[h>>2]=(c[f>>2]|0)+16+((c[(c[f>>2]|0)+4>>2]|0)+2<<2);c[j>>2]=152;break}c[h>>2]=Id(c[b+4>>2]<<2)|0;if((c[h>>2]|0)!=0?(c[j>>2]=148,(c[(c[f>>2]|0)+8>>2]|0)!=0):0)iR(c[h>>2]|0,(c[f>>2]|0)+16+4|0,c[(c[f>>2]|0)+4>>2]<<2|0)|0}else{a[e+1>>0]=1;c[h>>2]=(c[f>>2]|0)+16+4;c[j>>2]=152}while(0);c[c[g>>2]>>2]=c[h>>2];i=k;return c[j>>2]|0}function zm(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=i;i=i+96|0;g=B+92|0;h=B+88|0;j=B+84|0;k=B+80|0;A=B+76|0;n=B+72|0;y=B+68|0;z=B+64|0;r=B+24|0;s=B+16|0;l=B+60|0;o=B+56|0;q=B+52|0;t=B+8|0;x=B+48|0;p=B+44|0;m=B+40|0;u=B;v=B+36|0;w=B+32|0;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[k>>2]=f;c[A>>2]=0;c[y>>2]=c[c[g>>2]>>2];c[z>>2]=0;c[n>>2]=0;while(1){if(c[A>>2]|0){g=31;break}if(!(a[(c[k>>2]|0)+(c[n>>2]|0)>>0]|0)){g=31;break}a[(c[j>>2]|0)+24>>0]=a[(c[k>>2]|0)+(c[n>>2]|0)>>0]|0;a:do switch(a[(c[k>>2]|0)+(c[n>>2]|0)>>0]|0){case 112:{if(c[h>>2]|0)c[c[(c[j>>2]|0)+28>>2]>>2]=c[(c[j>>2]|0)+8>>2];break}case 99:{if(c[h>>2]|0)c[c[(c[j>>2]|0)+28>>2]>>2]=c[(c[j>>2]|0)+4>>2];break}case 110:{if(c[h>>2]|0){f=r;c[f>>2]=0;c[f+4>>2]=0;c[A>>2]=Bm(c[y>>2]|0,z,r,0)|0;c[c[(c[j>>2]|0)+28>>2]>>2]=c[r>>2]}break}case 97:{if((c[h>>2]|0)!=0?(c[A>>2]=Bm(c[y>>2]|0,z,s,l)|0,(c[A>>2]|0)==0):0){c[o>>2]=0;while(1){if((c[o>>2]|0)>=(c[(c[j>>2]|0)+4>>2]|0))break a;f=Ul(c[l>>2]|0,t)|0;c[l>>2]=(c[l>>2]|0)+f;f=c[t>>2]|0;e=s;e=pR(c[e>>2]|0,c[e+4>>2]|0,2,0)|0;e=gR(f|0,0,e|0,C|0)|0;f=s;f=pR(e|0,C|0,c[f>>2]|0,c[f+4>>2]|0)|0;c[q>>2]=f;c[(c[(c[j>>2]|0)+28>>2]|0)+(c[o>>2]<<2)>>2]=c[q>>2];c[o>>2]=(c[o>>2]|0)+1}}break}case 108:{c[x>>2]=0;f=(c[g>>2]|0)+32|0;c[A>>2]=Cm(c[y>>2]|0,c[f>>2]|0,c[f+4>>2]|0,x)|0;b:do if(!(c[A>>2]|0)){c[m>>2]=Ae(c[x>>2]|0,0)|0;c[p>>2]=0;while(1){if((c[p>>2]|0)>=(c[(c[j>>2]|0)+4>>2]|0))break b;f=Ul(c[m>>2]|0,u)|0;c[m>>2]=(c[m>>2]|0)+f;c[(c[(c[j>>2]|0)+28>>2]|0)+(c[p>>2]<<2)>>2]=c[u>>2];c[p>>2]=(c[p>>2]|0)+1}}while(0);Zd(c[x>>2]|0)|0;break}case 115:{c[A>>2]=Dm(c[g>>2]|0,0,0)|0;if(!(c[A>>2]|0))c[A>>2]=Em(c[g>>2]|0,c[j>>2]|0)|0;break}case 121:case 98:{c[v>>2]=(wm(c[j>>2]|0,a[(c[k>>2]|0)+(c[n>>2]|0)>>0]|0)|0)<<2;kR(c[(c[j>>2]|0)+28>>2]|0,0,c[v>>2]|0)|0;Fm(c[(c[g>>2]|0)+12>>2]|0,c[j>>2]|0);break}default:{c[w>>2]=c[(c[g>>2]|0)+12>>2];c[A>>2]=Dm(c[g>>2]|0,0,0)|0;if(!(c[A>>2]|0)){if(c[h>>2]|0){if((c[(c[g>>2]|0)+24>>2]|0)!=0?(c[A>>2]=Bm(c[y>>2]|0,z,(c[j>>2]|0)+16|0,0)|0,(c[A>>2]|0)!=0):0)break a;c[A>>2]=Hm(c[w>>2]|0,154,c[j>>2]|0)|0;Im(c[g>>2]|0,A)|0;if(c[A>>2]|0)break a}Hm(c[w>>2]|0,155,c[j>>2]|0)|0}}}while(0);e=wm(c[j>>2]|0,a[(c[k>>2]|0)+(c[n>>2]|0)>>0]|0)|0;f=(c[j>>2]|0)+28|0;c[f>>2]=(c[f>>2]|0)+(e<<2);c[n>>2]=(c[n>>2]|0)+1}if((g|0)==31){Zd(c[z>>2]|0)|0;i=B;return c[A>>2]|0}return 0}function Am(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;c[(c[d>>2]|0)+8>>2]=1;iR((c[d>>2]|0)+16+(2+(c[(c[d>>2]|0)+4>>2]|0)<<2)|0,(c[d>>2]|0)+16+4|0,c[(c[d>>2]|0)+4>>2]<<2|0)|0;i=b;return}function Bm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+48|0;f=p+36|0;g=p+32|0;h=p+28|0;j=p+24|0;k=p+20|0;n=p+16|0;l=p+12|0;m=p;o=p+8|0;c[g>>2]=a;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;if((c[c[h>>2]>>2]|0)==0?(c[o>>2]=Jn(c[g>>2]|0,c[h>>2]|0)|0,(c[o>>2]|0)!=0):0){c[f>>2]=c[o>>2];o=c[f>>2]|0;i=p;return o|0}c[n>>2]=c[c[h>>2]>>2];c[l>>2]=Ae(c[n>>2]|0,0)|0;o=Ul(c[l>>2]|0,m)|0;c[l>>2]=(c[l>>2]|0)+o;o=m;if((c[o>>2]|0)==0&(c[o+4>>2]|0)==0){c[f>>2]=267;o=c[f>>2]|0;i=p;return o|0}o=c[j>>2]|0;c[o>>2]=c[m>>2];c[o+4>>2]=0;if(c[k>>2]|0)c[c[k>>2]>>2]=c[l>>2];c[f>>2]=0;o=c[f>>2]|0;i=p;return o|0}function Cm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+16|0;h=f+12|0;j=f;g=f+8|0;c[h>>2]=a;a=j;c[a>>2]=b;c[a+4>>2]=d;c[g>>2]=e;e=j;e=In(c[h>>2]|0,c[e>>2]|0,c[e+4>>2]|0,c[g>>2]|0)|0;i=f;return e|0}function Dm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;j=i;i=i+32|0;k=j+24|0;e=j+20|0;f=j+16|0;g=j+12|0;h=j;c[k>>2]=a;c[e>>2]=b;c[f>>2]=d;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h>>2]=c[k>>2];c[g>>2]=Hm(c[(c[k>>2]|0)+12>>2]|0,156,h)|0;if(c[e>>2]|0)c[c[e>>2]>>2]=c[h+4>>2];if(!(c[f>>2]|0)){k=c[g>>2]|0;i=j;return k|0}c[c[f>>2]>>2]=c[h+8>>2];k=c[g>>2]|0;i=j;return k|0}function Em(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+64|0;q=t+56|0;d=t+52|0;e=t+48|0;r=t+44|0;f=t+40|0;g=t+36|0;l=t+32|0;o=t+28|0;h=t+24|0;j=t+20|0;s=t+16|0;n=t+12|0;m=t+8|0;k=t+4|0;p=t;c[d>>2]=a;c[e>>2]=b;c[l>>2]=0;c[r>>2]=Id(c[(c[d>>2]|0)+20>>2]<<4)|0;if(!(c[r>>2]|0)){c[q>>2]=7;s=c[q>>2]|0;i=t;return s|0}kR(c[r>>2]|0,0,c[(c[d>>2]|0)+20>>2]<<4|0)|0;Hm(c[(c[d>>2]|0)+12>>2]|0,157,c[r>>2]|0)|0;c[f>>2]=0;while(1){if((c[f>>2]|0)>=(c[(c[e>>2]|0)+8>>2]|0))break;c[o>>2]=(c[r>>2]|0)+(c[f>>2]<<4);c[l>>2]=(c[l>>2]|0)-(c[(c[(c[c[o>>2]>>2]|0)+20>>2]|0)+64>>2]|0);c[(c[o>>2]|0)+4>>2]=c[l>>2];c[f>>2]=(c[f>>2]|0)+1}c[g>>2]=0;a:while(1){if((c[g>>2]|0)>=(c[(c[e>>2]|0)+4>>2]|0)){d=33;break}c[h>>2]=0;c[j>>2]=0;c[f>>2]=0;while(1){if((c[f>>2]|0)>=(c[(c[e>>2]|0)+8>>2]|0))break;c[n>>2]=(c[r>>2]|0)+(c[f>>2]<<4);c[s>>2]=Km(c[d>>2]|0,c[c[n>>2]>>2]|0,c[g>>2]|0,(c[n>>2]|0)+8|0)|0;if(c[s>>2]|0){d=11;break a}if(c[(c[n>>2]|0)+8>>2]|0){c[(c[n>>2]|0)+12>>2]=c[(c[n>>2]|0)+4>>2];Gn((c[r>>2]|0)+(c[f>>2]<<4)|0)|0;c[j>>2]=(c[j>>2]|0)+1}c[f>>2]=(c[f>>2]|0)+1}while(1){if((c[j>>2]|0)<=0)break;c[m>>2]=0;c[k>>2]=0;c[f>>2]=0;while(1){if((c[f>>2]|0)>=(c[(c[e>>2]|0)+8>>2]|0))break;c[p>>2]=(c[r>>2]|0)+(c[f>>2]<<4);if(c[(c[p>>2]|0)+8>>2]|0){if(!((c[m>>2]|0)!=0?(c[(c[p>>2]|0)+12>>2]|0)>=(c[(c[m>>2]|0)+12>>2]|0):0))c[m>>2]=c[p>>2];if((c[k>>2]|0)!=0?(c[(c[p>>2]|0)+12>>2]|0)!=(c[(c[p>>2]|0)+-16+12>>2]|0):0)c[k>>2]=1;else c[k>>2]=(c[k>>2]|0)+1;if((c[k>>2]|0)>(c[h>>2]|0))c[h>>2]=c[k>>2]}else c[k>>2]=0;c[f>>2]=(c[f>>2]|0)+1}if(!(Gn(c[m>>2]|0)|0))continue;c[j>>2]=(c[j>>2]|0)+-1}c[(c[(c[e>>2]|0)+28>>2]|0)+(c[g>>2]<<2)>>2]=c[h>>2];c[g>>2]=(c[g>>2]|0)+1}if((d|0)==11){c[q>>2]=c[s>>2];s=c[q>>2]|0;i=t;return s|0}else if((d|0)==33){Kd(c[r>>2]|0);c[q>>2]=0;s=c[q>>2]|0;i=t;return s|0}return 0}function Fm(a,b){a=a|0;b=b|0;var e=0,f=0,g=0;g=i;i=i+16|0;e=g+4|0;f=g;c[e>>2]=a;c[f>>2]=b;if(d[(c[e>>2]|0)+32>>0]|0){i=g;return}b=(c[e>>2]|0)+24|0;a=(c[c[f>>2]>>2]|0)+32|0;if(!((c[b>>2]|0)==(c[a>>2]|0)?(c[b+4>>2]|0)==(c[a+4>>2]|0):0)){i=g;return}b=c[e>>2]|0;if(c[(c[e>>2]|0)+12>>2]|0){Fm(c[b+12>>2]|0,c[f>>2]|0);Fm(c[(c[e>>2]|0)+16>>2]|0,c[f>>2]|0);i=g;return}else{En(b,c[f>>2]|0);i=g;return}}function Gm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|0;g=e+12|0;h=e+8|0;j=e+4|0;f=e;c[g>>2]=a;c[h>>2]=b;c[j>>2]=d;c[f>>2]=c[j>>2];a=_((c[h>>2]|0)*3|0,c[(c[f>>2]|0)+4>>2]|0)|0;a=Bn(c[c[f>>2]>>2]|0,c[g>>2]|0,(c[(c[f>>2]|0)+28>>2]|0)+(a<<2)|0)|0;i=e;return a|0}function Hm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|0;j=e+12|0;g=e+8|0;f=e+4|0;h=e;c[j>>2]=a;c[g>>2]=b;c[f>>2]=d;c[h>>2]=0;b=An(c[j>>2]|0,h,c[g>>2]|0,c[f>>2]|0)|0;i=e;return b|0}function Im(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;d=h+12|0;e=h+8|0;g=h+4|0;f=h;c[d>>2]=a;c[e>>2]=b;c[g>>2]=c[c[e>>2]>>2];c[f>>2]=0;if(c[g>>2]|0){b=c[g>>2]|0;b=(b|0)==0;g=c[f>>2]|0;g=(g|0)!=0;g=b?g:0;g=g&1;i=h;return g|0}if((c[(c[d>>2]|0)+24>>2]|0)!=0?(c[g>>2]=nn(0,c[d>>2]|0)|0,(c[g>>2]|0)==0):0)c[g>>2]=on(c[d>>2]|0)|0;c[f>>2]=0==(pn(c[d>>2]|0,c[(c[d>>2]|0)+12>>2]|0,g)|0)&1;qn(c[d>>2]|0);c[c[e>>2]>>2]=c[g>>2];b=c[g>>2]|0;b=(b|0)==0;g=c[f>>2]|0;g=(g|0)!=0;g=b?g:0;g=g&1;i=h;return g|0}function Jm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;l=i;i=i+32|0;e=l+28|0;m=l+24|0;n=l+20|0;k=l+16|0;h=l+12|0;g=l+8|0;f=l+4|0;j=l;c[e>>2]=a;c[m>>2]=b;c[n>>2]=d;c[k>>2]=0;c[h>>2]=c[n>>2];c[g>>2]=(_(c[m>>2]|0,c[(c[h>>2]|0)+4>>2]|0)|0)*3;c[f>>2]=0;while(1){if(!((c[f>>2]|0)<(c[(c[h>>2]|0)+4>>2]|0)?(c[k>>2]|0)==0:0))break;c[k>>2]=Km(c[c[h>>2]>>2]|0,c[e>>2]|0,c[f>>2]|0,j)|0;if(c[j>>2]|0){n=Lm(j)|0;c[(c[(c[h>>2]|0)+28>>2]|0)+((c[g>>2]|0)+((c[f>>2]|0)*3|0)<<2)>>2]=n}else c[(c[(c[h>>2]|0)+28>>2]|0)+((c[g>>2]|0)+((c[f>>2]|0)*3|0)<<2)>>2]=0;c[f>>2]=(c[f>>2]|0)+1}i=l;return c[k>>2]|0}function Fp(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0;ha=i;i=i+288|0;V=ha+40|0;U=ha+32|0;T=ha+24|0;q=ha+16|0;r=ha+8|0;p=ha;v=ha+280|0;w=ha+276|0;ia=ha+272|0;k=ha+268|0;x=ha+264|0;da=ha+260|0;y=ha+256|0;S=ha+252|0;ea=ha+248|0;ga=ha+244|0;E=ha+240|0;L=ha+236|0;F=ha+232|0;R=ha+228|0;M=ha+224|0;Z=ha+220|0;N=ha+216|0;P=ha+212|0;G=ha+208|0;z=ha+204|0;fa=ha+200|0;O=ha+196|0;A=ha+192|0;D=ha+188|0;C=ha+184|0;ba=ha+180|0;X=ha+176|0;ca=ha+172|0;Y=ha+168|0;_=ha+164|0;B=ha+160|0;Q=ha+156|0;s=ha+152|0;n=ha+148|0;t=ha+144|0;l=ha+80|0;m=ha+76|0;o=ha+72|0;H=ha+68|0;I=ha+64|0;W=ha+60|0;J=ha+56|0;K=ha+52|0;aa=ha+48|0;$=ha+44|0;c[v>>2]=b;c[w>>2]=d;c[ia>>2]=e;c[k>>2]=f;c[x>>2]=g;c[da>>2]=h;c[y>>2]=j;c[S>>2]=c[ia>>2];c[ea>>2]=0;c[ga>>2]=0;c[R>>2]=0;c[M>>2]=0;c[G>>2]=(a[(c[c[x>>2]>>2]|0)+3>>0]|0)==52&1;c[fa>>2]=0;c[O>>2]=0;c[A>>2]=0;c[D>>2]=0;c[C>>2]=0;c[ba>>2]=0;c[X>>2]=0;c[ca>>2]=0;c[Y>>2]=0;c[_>>2]=0;c[B>>2]=0;c[Q>>2]=0;c[N>>2]=(BQ(c[(c[x>>2]|0)+4>>2]|0)|0)+1;c[P>>2]=(BQ(c[(c[x>>2]|0)+8>>2]|0)|0)+1;c[L>>2]=(c[k>>2]|0)-2<<2;c[z>>2]=Id(c[L>>2]|0)|0;if(c[z>>2]|0){kR(c[z>>2]|0,0,c[L>>2]|0)|0;c[B>>2]=Id(c[L>>2]|0)|0}if(c[B>>2]|0)kR(c[B>>2]|0,0,c[L>>2]|0)|0;do if((c[z>>2]|0)!=0&(c[B>>2]|0)!=0){c[E>>2]=3;while(1){if(c[ga>>2]|0)break;if((c[E>>2]|0)>=(c[k>>2]|0))break;c[s>>2]=c[(c[x>>2]|0)+(c[E>>2]<<2)>>2];if((((c[fa>>2]|0)==0?(BQ(c[s>>2]|0)|0)>>>0>8:0)?0==(zd(c[s>>2]|0,24853,8)|0):0)?0==(Gp(a[(c[s>>2]|0)+8>>0]|0)|0):0)c[ga>>2]=Hp(c[S>>2]|0,(c[s>>2]|0)+9|0,fa,c[y>>2]|0)|0;else u=15;do if((u|0)==15){u=0;if((c[G>>2]|0)!=0?(Ip(c[s>>2]|0,n,t)|0)!=0:0){f=l;g=2100;d=f+64|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(d|0));if(!(c[t>>2]|0)){c[ga>>2]=7;break}c[m>>2]=0;while(1){if((c[m>>2]|0)>=8)break;c[o>>2]=l+(c[m>>2]<<3);if((c[n>>2]|0)==(c[(c[o>>2]|0)+4>>2]|0)?(zd(c[s>>2]|0,c[c[o>>2]>>2]|0,c[(c[o>>2]|0)+4>>2]|0)|0)==0:0)break;c[m>>2]=(c[m>>2]|0)+1}a:do if((c[m>>2]|0)==8){ia=c[y>>2]|0;c[p>>2]=c[s>>2];zk(ia,24862,p);c[ga>>2]=1}else switch(c[m>>2]|0){case 0:{if(!((BQ(c[t>>2]|0)|0)==4?(zd(c[t>>2]|0,21382,4)|0)==0:0)){ia=c[y>>2]|0;c[r>>2]=c[t>>2];zk(ia,24889,r);c[ga>>2]=1}c[D>>2]=1;break a}case 1:{Kd(c[ba>>2]|0);c[ba>>2]=c[t>>2];c[t>>2]=0;break a}case 2:{Kd(c[X>>2]|0);c[X>>2]=c[t>>2];c[t>>2]=0;break a}case 3:{Kd(c[ca>>2]|0);c[ca>>2]=c[t>>2];c[t>>2]=0;break a}case 4:{if(!((BQ(c[t>>2]|0)|0)==3?(zd(c[t>>2]|0,24916,3)|0)==0:0))u=36;do if((u|0)==36){u=0;if((BQ(c[t>>2]|0)|0)==4?(zd(c[t>>2]|0,24920,4)|0)==0:0)break;ia=c[y>>2]|0;c[q>>2]=c[t>>2];zk(ia,24925,q);c[ga>>2]=1}while(0);if((a[c[t>>2]>>0]|0)==100)f=1;else f=(a[c[t>>2]>>0]|0)==68;c[C>>2]=f&1;break a}case 5:{Kd(c[Y>>2]|0);c[Y>>2]=c[t>>2];c[t>>2]=0;break a}case 6:{Kd(c[_>>2]|0);c[_>>2]=c[t>>2];c[t>>2]=0;break a}case 7:{j=c[t>>2]|0;ia=c[Q>>2]|0;c[Q>>2]=ia+1;c[(c[B>>2]|0)+(ia<<2)>>2]=j;c[t>>2]=0;break a}default:break a}while(0);Kd(c[t>>2]|0);break}j=(BQ(c[s>>2]|0)|0)+1|0;c[R>>2]=(c[R>>2]|0)+j;j=c[s>>2]|0;ia=c[M>>2]|0;c[M>>2]=ia+1;c[(c[z>>2]|0)+(ia<<2)>>2]=j}while(0);c[E>>2]=(c[E>>2]|0)+1}b:do if(((c[ga>>2]|0)==0&(c[Y>>2]|0)!=0?(Kd(c[X>>2]|0),Kd(c[ca>>2]|0),c[X>>2]=0,c[ca>>2]=0,(c[M>>2]|0)==0):0)?(Kd(c[z>>2]|0),c[z>>2]=0,c[ga>>2]=Jp(c[w>>2]|0,c[(c[x>>2]|0)+4>>2]|0,c[Y>>2]|0,z,M,R,c[y>>2]|0)|0,(c[ga>>2]|0)==0&(c[_>>2]|0)!=0):0){c[H>>2]=0;while(1){if((c[H>>2]|0)>=(c[M>>2]|0))break b;ia=(Td(c[_>>2]|0,c[(c[z>>2]|0)+(c[H>>2]<<2)>>2]|0)|0)==0;f=c[H>>2]|0;if(ia)break;c[H>>2]=f+1}c[I>>2]=f;while(1){if((c[I>>2]|0)>=(c[M>>2]|0))break;c[(c[z>>2]|0)+(c[I>>2]<<2)>>2]=c[(c[z>>2]|0)+((c[I>>2]|0)+1<<2)>>2];c[I>>2]=(c[I>>2]|0)+1}c[M>>2]=(c[M>>2]|0)+-1}while(0);if(!(c[ga>>2]|0)){if(!(c[M>>2]|0)){c[c[z>>2]>>2]=24948;c[R>>2]=8;c[M>>2]=1}if((c[fa>>2]|0)==0?(c[ga>>2]=Hp(c[S>>2]|0,21308,fa,c[y>>2]|0)|0,(c[ga>>2]|0)!=0):0)break;c[ga>>2]=Kp(c[ba>>2]|0,O,A)|0;if((c[ga>>2]|0)==1){ia=c[y>>2]|0;c[T>>2]=c[ba>>2];zk(ia,24956,T)}if(!(c[ga>>2]|0)){c[L>>2]=280+(c[M>>2]<<2)+((c[O>>2]|0)*24|0)+(c[M>>2]|0)+(c[P>>2]|0)+(c[N>>2]|0)+(c[R>>2]|0);c[ea>>2]=Id(c[L>>2]|0)|0;
  51. if(!(c[ea>>2]|0)){c[ga>>2]=7;break}kR(c[ea>>2]|0,0,c[L>>2]|0)|0;c[(c[ea>>2]|0)+12>>2]=c[w>>2];c[(c[ea>>2]|0)+24>>2]=c[M>>2];c[(c[ea>>2]|0)+260>>2]=0;c[(c[ea>>2]|0)+28>>2]=(c[ea>>2]|0)+280;c[(c[ea>>2]|0)+36>>2]=c[fa>>2];c[(c[ea>>2]|0)+256>>2]=1048576;a[(c[ea>>2]|0)+230>>0]=((c[G>>2]|0)!=0?(c[D>>2]|0)==0:0)&1;a[(c[ea>>2]|0)+229>>0]=c[G>>2];a[(c[ea>>2]|0)+228>>0]=c[G>>2];a[(c[ea>>2]|0)+231>>0]=c[C>>2];c[(c[ea>>2]|0)+48>>2]=255;c[(c[ea>>2]|0)+40>>2]=c[Y>>2];c[(c[ea>>2]|0)+44>>2]=c[_>>2];c[Y>>2]=0;c[_>>2]=0;c[(c[ea>>2]|0)+252>>2]=(c[(c[ea>>2]|0)+28>>2]|0)+(c[M>>2]<<2);iR(c[(c[ea>>2]|0)+252>>2]|0,c[A>>2]|0,(c[O>>2]|0)*24|0)|0;c[(c[ea>>2]|0)+248>>2]=c[O>>2];c[E>>2]=0;while(1){if((c[E>>2]|0)>=(c[O>>2]|0))break;ek((c[(c[ea>>2]|0)+252>>2]|0)+((c[E>>2]|0)*24|0)+4|0,1,1);c[E>>2]=(c[E>>2]|0)+1}c[(c[ea>>2]|0)+32>>2]=(c[(c[ea>>2]|0)+252>>2]|0)+((c[O>>2]|0)*24|0);c[Z>>2]=(c[(c[ea>>2]|0)+32>>2]|0)+(c[M>>2]|0);c[(c[ea>>2]|0)+20>>2]=c[Z>>2];iR(c[Z>>2]|0,c[(c[x>>2]|0)+8>>2]|0,c[P>>2]|0)|0;c[Z>>2]=(c[Z>>2]|0)+(c[P>>2]|0);c[(c[ea>>2]|0)+16>>2]=c[Z>>2];iR(c[Z>>2]|0,c[(c[x>>2]|0)+4>>2]|0,c[N>>2]|0)|0;c[Z>>2]=(c[Z>>2]|0)+(c[N>>2]|0);c[F>>2]=0;while(1){if((c[F>>2]|0)>=(c[M>>2]|0))break;c[J>>2]=0;c[W>>2]=Lp(c[(c[z>>2]|0)+(c[F>>2]<<2)>>2]|0,J)|0;iR(c[Z>>2]|0,c[W>>2]|0,c[J>>2]|0)|0;a[(c[Z>>2]|0)+(c[J>>2]|0)>>0]=0;Ik(c[Z>>2]|0);c[(c[(c[ea>>2]|0)+28>>2]|0)+(c[F>>2]<<2)>>2]=c[Z>>2];c[Z>>2]=(c[Z>>2]|0)+((c[J>>2]|0)+1);c[F>>2]=(c[F>>2]|0)+1}c[F>>2]=0;while(1){if((c[F>>2]|0)>=(c[M>>2]|0))break;c[K>>2]=BQ(c[(c[(c[ea>>2]|0)+28>>2]|0)+(c[F>>2]<<2)>>2]|0)|0;c[E>>2]=0;while(1){if((c[E>>2]|0)>=(c[Q>>2]|0))break;c[aa>>2]=c[(c[B>>2]|0)+(c[E>>2]<<2)>>2];if(((c[aa>>2]|0)!=0?(ia=c[K>>2]|0,(ia|0)==(BQ(c[aa>>2]|0)|0)):0)?0==(zd(c[(c[(c[ea>>2]|0)+28>>2]|0)+(c[F>>2]<<2)>>2]|0,c[aa>>2]|0,c[K>>2]|0)|0):0){a[(c[(c[ea>>2]|0)+32>>2]|0)+(c[F>>2]|0)>>0]=1;Kd(c[aa>>2]|0);c[(c[B>>2]|0)+(c[E>>2]<<2)>>2]=0}c[E>>2]=(c[E>>2]|0)+1}c[F>>2]=(c[F>>2]|0)+1}c[E>>2]=0;while(1){if((c[E>>2]|0)>=(c[Q>>2]|0))break;if(c[(c[B>>2]|0)+(c[E>>2]<<2)>>2]|0){ia=c[y>>2]|0;c[U>>2]=c[(c[B>>2]|0)+(c[E>>2]<<2)>>2];zk(ia,24991,U);c[ga>>2]=1}c[E>>2]=(c[E>>2]|0)+1}if((c[ga>>2]|0)==0?((c[X>>2]|0)==0|0)!=((c[ca>>2]|0)==0|0):0){c[$>>2]=(c[X>>2]|0)==0?25010:25019;c[ga>>2]=1;ia=c[y>>2]|0;c[V>>2]=c[$>>2];zk(ia,25030,V)}ia=Mp(c[ea>>2]|0,c[ca>>2]|0,ga)|0;c[(c[ea>>2]|0)+216>>2]=ia;ia=Np(c[ea>>2]|0,c[X>>2]|0,ga)|0;c[(c[ea>>2]|0)+220>>2]=ia;if(!(c[ga>>2]|0)){if(c[v>>2]|0)c[ga>>2]=Op(c[ea>>2]|0)|0;if(!((c[G>>2]|0)!=0|(c[v>>2]|0)!=0))a[(c[ea>>2]|0)+229>>0]=2;Pp(ga,c[ea>>2]|0);c[(c[ea>>2]|0)+224>>2]=(c[(c[ea>>2]|0)+236>>2]|0)-35;Qp(ga,c[ea>>2]|0)}}}}else c[ga>>2]=7;while(0);Kd(c[ba>>2]|0);Kd(c[A>>2]|0);Kd(c[X>>2]|0);Kd(c[ca>>2]|0);Kd(c[Y>>2]|0);Kd(c[_>>2]|0);c[E>>2]=0;while(1){if((c[E>>2]|0)>=(c[Q>>2]|0))break;Kd(c[(c[B>>2]|0)+(c[E>>2]<<2)>>2]|0);c[E>>2]=(c[E>>2]|0)+1}Kd(c[z>>2]|0);Kd(c[B>>2]|0);f=c[ea>>2]|0;if(!(c[ga>>2]|0)){c[c[da>>2]>>2]=f;ia=c[ga>>2]|0;i=ha;return ia|0}if(f){Mk(c[ea>>2]|0)|0;ia=c[ga>>2]|0;i=ha;return ia|0}if(!(c[fa>>2]|0)){ia=c[ga>>2]|0;i=ha;return ia|0}Tb[c[(c[c[fa>>2]>>2]|0)+8>>2]&255](c[fa>>2]|0)|0;ia=c[ga>>2]|0;i=ha;return ia|0}function Gp(b){b=b|0;var c=0,d=0;d=i;i=i+16|0;c=d;a[c>>0]=b;if(a[c>>0]&128){b=1;b=b&1;i=d;return b|0}b=(a[25712+(a[c>>0]|0)>>0]|0)!=0;b=b&1;i=d;return b|0}function Hp(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;y=i;i=i+80|0;t=y+16|0;s=y+8|0;z=y;g=y+76|0;h=y+72|0;A=y+68|0;j=y+64|0;k=y+60|0;r=y+56|0;u=y+52|0;p=y+48|0;v=y+44|0;w=y+40|0;o=y+36|0;l=y+32|0;n=y+28|0;q=y+24|0;m=y+20|0;c[h>>2]=b;c[A>>2]=d;c[j>>2]=e;c[k>>2]=f;c[u>>2]=c[A>>2];c[p>>2]=0;c[z>>2]=c[A>>2];c[v>>2]=Od(19255,z)|0;if(!(c[v>>2]|0)){c[g>>2]=7;A=c[g>>2]|0;i=y;return A|0}A=BQ(c[v>>2]|0)|0;c[w>>2]=(c[v>>2]|0)+A;c[u>>2]=Lp(c[v>>2]|0,p)|0;if(!(c[u>>2]|0))c[u>>2]=c[v>>2];a[(c[u>>2]|0)+(c[p>>2]|0)>>0]=0;Ik(c[u>>2]|0);z=c[h>>2]|0;A=c[u>>2]|0;c[o>>2]=yk(z,A,(BQ(c[u>>2]|0)|0)+1|0)|0;if(c[o>>2]|0){c[l>>2]=0;c[n>>2]=0;c[u>>2]=(c[u>>2]|0)+((c[p>>2]|0)+1);while(1){if((c[u>>2]|0)>>>0>=(c[w>>2]|0)>>>0)break;A=Lp(c[u>>2]|0,p)|0;c[u>>2]=A;if(!A)break;c[q>>2]=(c[n>>2]|0)+1<<2;c[m>>2]=Ld(c[l>>2]|0,c[q>>2]|0)|0;if(!(c[m>>2]|0)){x=11;break}c[l>>2]=c[m>>2];z=c[u>>2]|0;A=c[n>>2]|0;c[n>>2]=A+1;c[(c[l>>2]|0)+(A<<2)>>2]=z;a[(c[u>>2]|0)+(c[p>>2]|0)>>0]=0;Ik(c[u>>2]|0);c[u>>2]=(c[u>>2]|0)+((c[p>>2]|0)+1)}if((x|0)==11){Kd(c[v>>2]|0);Kd(c[l>>2]|0);c[g>>2]=7;A=c[g>>2]|0;i=y;return A|0}c[r>>2]=Ob[c[(c[o>>2]|0)+4>>2]&255](c[n>>2]|0,c[l>>2]|0,c[j>>2]|0)|0;if(c[r>>2]|0)zk(c[k>>2]|0,25694,t);else c[c[c[j>>2]>>2]>>2]=c[o>>2];Kd(c[l>>2]|0)}else{A=c[k>>2]|0;c[s>>2]=c[u>>2];zk(A,21456,s);c[r>>2]=1}Kd(c[v>>2]|0);c[g>>2]=c[r>>2];A=c[g>>2]|0;i=y;return A|0}function Ip(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;k=o;f=o+24|0;g=o+20|0;h=o+16|0;j=o+12|0;m=o+8|0;l=o+4|0;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[l>>2]=c[g>>2];while(1){d=c[l>>2]|0;if((a[c[l>>2]>>0]|0)==61)break;if(!(a[d>>0]|0)){n=4;break}c[l>>2]=(c[l>>2]|0)+1}if((n|0)==4){c[f>>2]=0;n=c[f>>2]|0;i=o;return n|0}c[c[h>>2]>>2]=d-(c[g>>2]|0);c[k>>2]=(c[l>>2]|0)+1;c[m>>2]=Od(19255,k)|0;if(c[m>>2]|0)Ik(c[m>>2]|0);c[c[j>>2]>>2]=c[m>>2];c[f>>2]=1;n=c[f>>2]|0;i=o;return n|0}function Jp(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;A=i;i=i+96|0;w=A+8|0;B=A;j=A+80|0;C=A+76|0;D=A+72|0;k=A+68|0;l=A+64|0;m=A+60|0;n=A+56|0;v=A+52|0;z=A+48|0;u=A+44|0;o=A+40|0;s=A+36|0;r=A+32|0;p=A+28|0;x=A+24|0;t=A+20|0;y=A+16|0;q=A+12|0;c[j>>2]=a;c[C>>2]=b;c[D>>2]=d;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;c[n>>2]=h;c[v>>2]=0;c[u>>2]=0;d=c[D>>2]|0;c[B>>2]=c[C>>2];c[B+4>>2]=d;c[z>>2]=Od(25639,B)|0;if(c[z>>2]|0){c[v>>2]=cf(c[j>>2]|0,c[z>>2]|0,-1,u,0)|0;if(c[v>>2]|0){D=c[n>>2]|0;c[w>>2]=bf(c[j>>2]|0)|0;zk(D,19255,w)}}else c[v>>2]=7;Kd(c[z>>2]|0);if(c[v>>2]|0){D=c[v>>2]|0;i=A;return D|0}c[s>>2]=0;c[r>>2]=ye(c[u>>2]|0)|0;c[p>>2]=0;while(1){if((c[p>>2]|0)>=(c[r>>2]|0))break;c[x>>2]=Ie(c[u>>2]|0,c[p>>2]|0)|0;D=(BQ(c[x>>2]|0)|0)+1|0;c[s>>2]=(c[s>>2]|0)+D;c[p>>2]=(c[p>>2]|0)+1}c[o>>2]=Id((c[r>>2]<<2)+(c[s>>2]|0)|0)|0;a:do if(!(c[o>>2]|0))c[v>>2]=7;else{c[t>>2]=(c[o>>2]|0)+(c[r>>2]<<2);c[p>>2]=0;while(1){if((c[p>>2]|0)>=(c[r>>2]|0))break a;c[y>>2]=Ie(c[u>>2]|0,c[p>>2]|0)|0;c[q>>2]=(BQ(c[y>>2]|0)|0)+1;iR(c[t>>2]|0,c[y>>2]|0,c[q>>2]|0)|0;c[(c[o>>2]|0)+(c[p>>2]<<2)>>2]=c[t>>2];c[t>>2]=(c[t>>2]|0)+(c[q>>2]|0);c[p>>2]=(c[p>>2]|0)+1}}while(0);Yd(c[u>>2]|0)|0;c[c[l>>2]>>2]=c[r>>2];c[c[m>>2]>>2]=c[s>>2];c[c[k>>2]>>2]=c[o>>2];D=c[v>>2]|0;i=A;return D|0}function Kp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;f=q+36|0;g=q+32|0;h=q+28|0;j=q+24|0;k=q+20|0;m=q+16|0;o=q+12|0;p=q+8|0;l=q+4|0;n=q;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[m>>2]=1;a:do if((c[g>>2]|0)!=0?(a[c[g>>2]>>0]|0)!=0:0){c[m>>2]=(c[m>>2]|0)+1;c[o>>2]=c[g>>2];while(1){if(!(a[c[o>>2]>>0]|0))break a;if((a[c[o>>2]>>0]|0)==44)c[m>>2]=(c[m>>2]|0)+1;c[o>>2]=(c[o>>2]|0)+1}}while(0);c[k>>2]=Id((c[m>>2]|0)*24|0)|0;c[c[j>>2]>>2]=c[k>>2];if(!(c[k>>2]|0)){c[f>>2]=7;b=c[f>>2]|0;i=q;return b|0}kR(c[k>>2]|0,0,(c[m>>2]|0)*24|0)|0;b:do if(c[g>>2]|0){c[p>>2]=c[g>>2];c[l>>2]=1;while(1){if((c[l>>2]|0)>=(c[m>>2]|0))break b;c[n>>2]=0;if(Tp(p,n)|0)break;if(!(c[n>>2]|0)){c[m>>2]=(c[m>>2]|0)+-1;c[l>>2]=(c[l>>2]|0)+-1}else c[(c[k>>2]|0)+((c[l>>2]|0)*24|0)>>2]=c[n>>2];c[p>>2]=(c[p>>2]|0)+1;c[l>>2]=(c[l>>2]|0)+1}c[f>>2]=1;b=c[f>>2]|0;i=q;return b|0}while(0);c[c[h>>2]>>2]=c[m>>2];c[f>>2]=0;b=c[f>>2]|0;i=q;return b|0}function Lp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;f=k+16|0;l=k+12|0;g=k+8|0;h=k+4|0;j=k;e=k+20|0;c[l>>2]=b;c[g>>2]=d;c[j>>2]=0;c[h>>2]=c[l>>2];a:while(1){if(c[j>>2]|0){d=21;break}a[e>>0]=a[c[h>>2]>>0]|0;switch(a[e>>0]|0){case 0:{d=4;break a}case 96:case 34:case 39:{c[j>>2]=c[h>>2];while(1){l=(c[j>>2]|0)+1|0;c[j>>2]=l;if(!(a[l>>0]|0))continue a;if((a[c[j>>2]>>0]|0)!=(a[e>>0]|0))continue;l=(c[j>>2]|0)+1|0;c[j>>2]=l;if((a[l>>0]|0)!=(a[e>>0]|0))continue a}}case 91:{c[j>>2]=(c[h>>2]|0)+1;while(1){if(a[c[j>>2]>>0]|0)b=(a[c[j>>2]>>0]|0)!=93;else b=0;d=c[j>>2]|0;if(!b)break;c[j>>2]=d+1}if(!(a[d>>0]|0))continue a;c[j>>2]=(c[j>>2]|0)+1;continue a}default:{l=(Gp(a[c[h>>2]>>0]|0)|0)!=0;d=(c[h>>2]|0)+1|0;if(!l){c[h>>2]=d;continue a}c[j>>2]=d;while(1){if(!(Gp(a[c[j>>2]>>0]|0)|0))continue a;c[j>>2]=(c[j>>2]|0)+1}}}}if((d|0)==4){c[f>>2]=0;l=c[f>>2]|0;i=k;return l|0}else if((d|0)==21){c[c[g>>2]>>2]=(c[j>>2]|0)-(c[h>>2]|0);c[f>>2]=c[h>>2];l=c[f>>2]|0;i=k;return l|0}return 0}function Mp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+96|0;r=t+56|0;l=t+48|0;k=t+40|0;n=t+32|0;m=t+24|0;j=t+8|0;h=t;q=t+92|0;e=t+88|0;f=t+84|0;s=t+80|0;o=t+76|0;p=t+72|0;g=t+68|0;c[q>>2]=a;c[e>>2]=b;c[f>>2]=d;c[s>>2]=0;c[o>>2]=0;if(c[(c[q>>2]|0)+40>>2]|0){Sp(c[f>>2]|0,s,25592,n);c[g>>2]=0;while(1){if((c[g>>2]|0)>=(c[(c[q>>2]|0)+24>>2]|0))break;p=c[f>>2]|0;c[k>>2]=c[(c[(c[q>>2]|0)+28>>2]|0)+(c[g>>2]<<2)>>2];Sp(p,s,25598,k);c[g>>2]=(c[g>>2]|0)+1}if(c[(c[q>>2]|0)+44>>2]|0){p=c[f>>2]|0;c[l>>2]=c[(c[q>>2]|0)+44>>2];Sp(p,s,25578,l)}}else{if(c[e>>2]|0){b=Rp(c[e>>2]|0)|0;c[p>>2]=b;c[o>>2]=b}else c[p>>2]=19266;Sp(c[f>>2]|0,s,25557,h);c[g>>2]=0;while(1){if((c[g>>2]|0)>=(c[(c[q>>2]|0)+24>>2]|0))break;b=c[f>>2]|0;l=c[g>>2]|0;n=c[(c[(c[q>>2]|0)+28>>2]|0)+(c[g>>2]<<2)>>2]|0;c[j>>2]=c[p>>2];c[j+4>>2]=l;c[j+8>>2]=n;Sp(b,s,25563,j);c[g>>2]=(c[g>>2]|0)+1}if(c[(c[q>>2]|0)+44>>2]|0){p=c[f>>2]|0;c[m>>2]=25585;Sp(p,s,25578,m)}Kd(c[o>>2]|0)}e=c[f>>2]|0;f=c[(c[q>>2]|0)+16>>2]|0;g=c[q>>2]|0;if(c[(c[q>>2]|0)+40>>2]|0){b=c[g+40>>2]|0;p=c[q>>2]|0;p=p+40|0;p=c[p>>2]|0;p=(p|0)!=0;p=p?19266:25607;c[r>>2]=f;q=r+4|0;c[q>>2]=b;q=r+8|0;c[q>>2]=p;Sp(e,s,25616,r);s=c[s>>2]|0;i=t;return s|0}else{b=c[g+20>>2]|0;p=c[q>>2]|0;p=p+40|0;p=c[p>>2]|0;p=(p|0)!=0;p=p?19266:25607;c[r>>2]=f;q=r+4|0;c[q>>2]=b;q=r+8|0;c[q>>2]=p;Sp(e,s,25616,r);s=c[s>>2]|0;i=t;return s|0}return 0}function Np(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+48|0;k=o+16|0;j=o+8|0;e=o+44|0;f=o+40|0;g=o+36|0;n=o+32|0;l=o+28|0;m=o+24|0;h=o+20|0;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[n>>2]=0;c[l>>2]=0;if(c[f>>2]|0){b=Rp(c[f>>2]|0)|0;c[m>>2]=b;c[l>>2]=b}else c[m>>2]=19266;Sp(c[g>>2]|0,n,21139,o);c[h>>2]=0;while(1){if((c[h>>2]|0)>=(c[(c[e>>2]|0)+24>>2]|0))break;b=c[g>>2]|0;c[j>>2]=c[m>>2];Sp(b,n,25541,j);c[h>>2]=(c[h>>2]|0)+1}if(!(c[(c[e>>2]|0)+44>>2]|0)){m=c[l>>2]|0;Kd(m);n=c[n>>2]|0;i=o;return n|0}Sp(c[g>>2]|0,n,25548,k);m=c[l>>2]|0;Kd(m);n=c[n>>2]|0;i=o;return n|0}function Op(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;r=i;i=i+112|0;m=r+64|0;k=r+56|0;j=r+48|0;h=r+32|0;n=r+24|0;l=r+8|0;d=r+96|0;g=r+92|0;f=r+88|0;e=r+84|0;q=r+80|0;p=r+76|0;o=r+72|0;c[d>>2]=b;c[g>>2]=0;c[e>>2]=c[(c[d>>2]|0)+12>>2];if(!(c[(c[d>>2]|0)+40>>2]|0)){c[q>>2]=c[(c[d>>2]|0)+44>>2];c[p>>2]=Od(25166,r)|0;c[f>>2]=0;while(1){if(!(c[p>>2]|0))break;if((c[f>>2]|0)>=(c[(c[d>>2]|0)+24>>2]|0))break;c[o>>2]=c[(c[(c[d>>2]|0)+28>>2]|0)+(c[f>>2]<<2)>>2];s=c[f>>2]|0;b=c[o>>2]|0;c[l>>2]=c[p>>2];c[l+4>>2]=s;c[l+8>>2]=b;c[p>>2]=Od(25192,l)|0;c[f>>2]=(c[f>>2]|0)+1}if((c[q>>2]|0)!=0&(c[p>>2]|0)!=0){s=c[q>>2]|0;c[n>>2]=c[p>>2];c[n+4>>2]=s;c[p>>2]=Od(25204,n)|0}if(!(c[p>>2]|0))c[g>>2]=7;s=c[e>>2]|0;o=c[(c[d>>2]|0)+20>>2]|0;q=c[p>>2]|0;c[h>>2]=c[(c[d>>2]|0)+16>>2];c[h+4>>2]=o;c[h+8>>2]=q;hl(g,s,25215,h);Kd(c[p>>2]|0)}s=c[e>>2]|0;q=c[(c[d>>2]|0)+20>>2]|0;c[j>>2]=c[(c[d>>2]|0)+16>>2];c[j+4>>2]=q;hl(g,s,25248,j);s=c[e>>2]|0;q=c[(c[d>>2]|0)+20>>2]|0;c[k>>2]=c[(c[d>>2]|0)+16>>2];c[k+4>>2]=q;hl(g,s,25320,k);if(a[(c[d>>2]|0)+230>>0]|0){s=c[e>>2]|0;q=c[(c[d>>2]|0)+20>>2]|0;c[m>>2]=c[(c[d>>2]|0)+16>>2];c[m+4>>2]=q;hl(g,s,25473,m)}if(!(a[(c[d>>2]|0)+229>>0]|0)){s=c[g>>2]|0;i=r;return s|0}Xo(g,c[d>>2]|0);s=c[g>>2]|0;i=r;return s|0}function Pp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;h=k;d=k+20|0;e=k+16|0;g=k+12|0;j=k+8|0;f=k+4|0;c[d>>2]=a;c[e>>2]=b;if(c[c[d>>2]>>2]|0){i=k;return}c[h>>2]=c[(c[e>>2]|0)+16>>2];c[j>>2]=Od(25146,h)|0;do if(c[j>>2]|0){c[g>>2]=cf(c[(c[e>>2]|0)+12>>2]|0,c[j>>2]|0,-1,f,0)|0;if(!(c[g>>2]|0)){ue(c[f>>2]|0)|0;h=De(c[f>>2]|0,0)|0;c[(c[e>>2]|0)+236>>2]=h;c[g>>2]=Yd(c[f>>2]|0)|0;break}if((c[g>>2]|0)==23){c[(c[e>>2]|0)+236>>2]=1024;c[g>>2]=0}}else c[g>>2]=7;while(0);Kd(c[j>>2]|0);c[c[d>>2]>>2]=c[g>>2];i=k;return}function Qp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+64|0;l=p+24|0;k=p+16|0;e=p+8|0;d=p;f=p+60|0;g=p+56|0;h=p+52|0;j=p+48|0;o=p+44|0;m=p+40|0;n=p+36|0;c[f>>2]=a;c[g>>2]=b;if(c[c[f>>2]>>2]|0){i=p;return}if(c[(c[g>>2]|0)+44>>2]|0)b=c[(c[g>>2]|0)+44>>2]|0;else b=25071;c[n>>2]=b;a=c[(c[g>>2]|0)+12>>2]|0;c[d>>2]=1;hf(a,1,d)|0;c[e>>2]=c[c[(c[g>>2]|0)+28>>2]>>2];c[m>>2]=Od(25080,e)|0;c[h>>2]=1;while(1){if(c[m>>2]|0)a=(c[h>>2]|0)<(c[(c[g>>2]|0)+24>>2]|0);else a=0;b=c[m>>2]|0;if(!a)break;e=c[(c[(c[g>>2]|0)+28>>2]|0)+(c[h>>2]<<2)>>2]|0;c[k>>2]=b;c[k+4>>2]=e;c[m>>2]=Od(25085,k)|0;c[h>>2]=(c[h>>2]|0)+1}k=c[(c[g>>2]|0)+20>>2]|0;n=c[n>>2]|0;c[l>>2]=b;c[l+4>>2]=k;c[l+8>>2]=n;c[o>>2]=Od(25092,l)|0;if((c[m>>2]|0)!=0&(c[o>>2]|0)!=0)c[j>>2]=ff(c[(c[g>>2]|0)+12>>2]|0,c[o>>2]|0)|0;else c[j>>2]=7;Kd(c[o>>2]|0);Kd(c[m>>2]|0);c[c[f>>2]>>2]=c[j>>2];i=p;return}function Rp(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;h=i;i=i+32|0;d=h+16|0;j=h+12|0;g=h+8|0;e=h+4|0;f=h;c[d>>2]=b;c[j>>2]=2+((BQ(c[d>>2]|0)|0)<<1)+1;c[g>>2]=Id(c[j>>2]|0)|0;if(!(c[g>>2]|0)){j=c[g>>2]|0;i=h;return j|0}c[f>>2]=c[g>>2];j=c[f>>2]|0;c[f>>2]=j+1;a[j>>0]=34;c[e>>2]=0;while(1){if(!(a[(c[d>>2]|0)+(c[e>>2]|0)>>0]|0))break;if((a[(c[d>>2]|0)+(c[e>>2]|0)>>0]|0)==34){j=c[f>>2]|0;c[f>>2]=j+1;a[j>>0]=34}b=a[(c[d>>2]|0)+(c[e>>2]|0)>>0]|0;j=c[f>>2]|0;c[f>>2]=j+1;a[j>>0]=b;c[e>>2]=(c[e>>2]|0)+1}j=c[f>>2]|0;c[f>>2]=j+1;a[j>>0]=34;j=c[f>>2]|0;c[f>>2]=j+1;a[j>>0]=0;j=c[g>>2]|0;i=h;return j|0}function Sp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+48|0;k=n;f=n+40|0;g=n+36|0;h=n+32|0;j=n+16|0;l=n+12|0;m=n+8|0;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;if(c[c[f>>2]>>2]|0){i=n;return}c[j>>2]=e;c[l>>2]=Nd(c[h>>2]|0,j)|0;if((c[l>>2]|0)!=0?(c[c[g>>2]>>2]|0)!=0:0){d=c[l>>2]|0;c[k>>2]=c[c[g>>2]>>2];c[k+4>>2]=d;c[m>>2]=Od(25552,k)|0;Kd(c[l>>2]|0);c[l>>2]=c[m>>2]}if(!(c[l>>2]|0))c[c[f>>2]>>2]=7;Kd(c[c[g>>2]>>2]|0);c[c[g>>2]>>2]=c[l>>2];i=n;return}function Tp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;e=l+20|0;f=l+16|0;g=l+12|0;j=l+4|0;h=l;c[f>>2]=b;c[g>>2]=d;c[l+8>>2]=1e7;c[h>>2]=0;c[j>>2]=c[c[f>>2]>>2];while(1){if((a[c[j>>2]>>0]|0)<48)break;if((a[c[j>>2]>>0]|0)>57)break;c[h>>2]=((c[h>>2]|0)*10|0)+((a[c[j>>2]>>0]|0)-48);if((c[h>>2]|0)>1e7){k=5;break}c[j>>2]=(c[j>>2]|0)+1}if((k|0)==5)c[h>>2]=0;if((c[j>>2]|0)==(c[c[f>>2]>>2]|0)){c[e>>2]=1;k=c[e>>2]|0;i=l;return k|0}else{c[c[g>>2]>>2]=c[h>>2];c[c[f>>2]>>2]=c[j>>2];c[e>>2]=0;k=c[e>>2]|0;i=l;return k|0}return 0}function Up(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;m=i;i=i+48|0;j=m;e=m+32|0;n=m+28|0;o=m+24|0;g=m+20|0;h=m+16|0;l=m+12|0;f=m+8|0;k=m+4|0;c[e>>2]=a;c[n>>2]=b;c[o>>2]=d;c[h>>2]=0;c[g>>2]=ve(c[e>>2]|0)|0;c[l>>2]=ae(c[c[o>>2]>>2]|0)|0;c[f>>2]=(be(c[c[o>>2]>>2]|0)|0)+1;if((c[n>>2]|0)==2){je(c[e>>2]|0,25840,-1);i=m;return}if(c[l>>2]|0)c[h>>2]=yk(c[g>>2]|0,c[l>>2]|0,c[f>>2]|0)|0;if(c[h>>2]|0){ge(c[e>>2]|0,h,4,-1);i=m;return}else{c[j>>2]=c[l>>2];c[k>>2]=Od(21456,j)|0;je(c[e>>2]|0,c[k>>2]|0,-1);Kd(c[k>>2]|0);i=m;return}}function Vp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;f=k+12|0;g=k+8|0;h=k+4|0;j=k;c[f>>2]=b;c[g>>2]=d;c[h>>2]=e;d=c[c[g>>2]>>2]|0;if(c[(c[g>>2]|0)+4>>2]|0)c[c[(c[g>>2]|0)+4>>2]>>2]=d;else c[(c[f>>2]|0)+8>>2]=d;if(c[c[g>>2]>>2]|0)c[(c[c[g>>2]>>2]|0)+4>>2]=c[(c[g>>2]|0)+4>>2];c[j>>2]=(c[(c[f>>2]|0)+16>>2]|0)+(c[h>>2]<<3);if((c[(c[j>>2]|0)+4>>2]|0)==(c[g>>2]|0))c[(c[j>>2]|0)+4>>2]=c[c[g>>2]>>2];h=c[j>>2]|0;c[h>>2]=(c[h>>2]|0)+-1;if((c[c[j>>2]>>2]|0)<=0)c[(c[j>>2]|0)+4>>2]=0;if((a[(c[f>>2]|0)+1>>0]|0)!=0?(c[(c[g>>2]|0)+12>>2]|0)!=0:0)kk(c[(c[g>>2]|0)+12>>2]|0);kk(c[g>>2]|0);j=(c[f>>2]|0)+4|0;c[j>>2]=(c[j>>2]|0)+-1;if((c[(c[f>>2]|0)+4>>2]|0)>0){i=k;return}jk(c[f>>2]|0);i=k;return}function Wp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;e=n+28|0;f=n+24|0;g=n+20|0;k=n+16|0;h=n+12|0;l=n+8|0;m=n+4|0;j=n;c[f>>2]=b;c[g>>2]=d;c[k>>2]=Xp(c[g>>2]<<3)|0;if(!(c[k>>2]|0)){c[e>>2]=1;m=c[e>>2]|0;i=n;return m|0}kk(c[(c[f>>2]|0)+16>>2]|0);c[(c[f>>2]|0)+16>>2]=c[k>>2];c[(c[f>>2]|0)+12>>2]=c[g>>2];c[m>>2]=Bk(a[c[f>>2]>>0]|0)|0;c[h>>2]=c[(c[f>>2]|0)+8>>2];c[(c[f>>2]|0)+8>>2]=0;while(1){if(!(c[h>>2]|0))break;b=Yb[c[m>>2]&255](c[(c[h>>2]|0)+12>>2]|0,c[(c[h>>2]|0)+16>>2]|0)|0;c[j>>2]=b&(c[g>>2]|0)-1;c[l>>2]=c[c[h>>2]>>2];Yp(c[f>>2]|0,(c[k>>2]|0)+(c[j>>2]<<3)|0,c[h>>2]|0);c[h>>2]=c[l>>2]}c[e>>2]=0;m=c[e>>2]|0;i=n;return m|0}function Xp(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;c[d>>2]=Id(c[b>>2]|0)|0;if(!(c[d>>2]|0)){d=c[d>>2]|0;i=e;return d|0}kR(c[d>>2]|0,0,c[b>>2]|0)|0;d=c[d>>2]|0;i=e;return d|0}function Yp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;e=j+12|0;f=j+8|0;g=j+4|0;h=j;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[h>>2]=c[(c[f>>2]|0)+4>>2];if(!(c[h>>2]|0)){c[c[g>>2]>>2]=c[(c[e>>2]|0)+8>>2];if(c[(c[e>>2]|0)+8>>2]|0)c[(c[(c[e>>2]|0)+8>>2]|0)+4>>2]=c[g>>2];c[(c[g>>2]|0)+4>>2]=0;c[(c[e>>2]|0)+8>>2]=c[g>>2];h=c[f>>2]|0;e=c[h>>2]|0;e=e+1|0;c[h>>2]=e;g=c[g>>2]|0;h=c[f>>2]|0;h=h+4|0;c[h>>2]=g;i=j;return}c[c[g>>2]>>2]=c[h>>2];c[(c[g>>2]|0)+4>>2]=c[(c[h>>2]|0)+4>>2];b=c[g>>2]|0;if(c[(c[h>>2]|0)+4>>2]|0)c[c[(c[h>>2]|0)+4>>2]>>2]=b;else c[(c[e>>2]|0)+8>>2]=b;c[(c[h>>2]|0)+4>>2]=c[g>>2];h=c[f>>2]|0;e=c[h>>2]|0;e=e+1|0;c[h>>2]=e;g=c[g>>2]|0;h=c[f>>2]|0;h=h+4|0;c[h>>2]=g;i=j;return}function Zp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+32|0;e=h+16|0;f=h+4|0;g=h;c[h+12>>2]=a;c[h+8>>2]=b;c[f>>2]=d;c[g>>2]=Id(4)|0;if(!(c[g>>2]|0)){c[e>>2]=7;g=c[e>>2]|0;i=h;return g|0}else{c[c[g>>2]>>2]=0;c[c[f>>2]>>2]=c[g>>2];c[e>>2]=0;g=c[e>>2]|0;i=h;return g|0}return 0}function _p(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;Kd(c[d>>2]|0);i=b;return 0}function $p(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;f=l+20|0;g=l+12|0;h=l+8|0;j=l+4|0;k=l;c[l+16>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[k>>2]=Id(28)|0;if(!(c[k>>2]|0)){c[f>>2]=7;b=c[f>>2]|0;i=l;return b|0}c[(c[k>>2]|0)+4>>2]=c[g>>2];do if(c[g>>2]|0)if((c[h>>2]|0)<0){b=BQ(c[g>>2]|0)|0;c[(c[k>>2]|0)+8>>2]=b;break}else{c[(c[k>>2]|0)+8>>2]=c[h>>2];break}else c[(c[k>>2]|0)+8>>2]=0;while(0);c[(c[k>>2]|0)+12>>2]=0;c[(c[k>>2]|0)+16>>2]=0;c[(c[k>>2]|0)+20>>2]=0;c[(c[k>>2]|0)+24>>2]=0;c[c[j>>2]>>2]=c[k>>2];c[f>>2]=0;b=c[f>>2]|0;i=l;return b|0}function aq(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;c[d>>2]=c[e>>2];Kd(c[(c[d>>2]|0)+20>>2]|0);Kd(c[d>>2]|0);i=b;return 0}function bq(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;w=i;i=i+64|0;j=w+48|0;x=w+44|0;k=w+40|0;l=w+36|0;m=w+32|0;n=w+28|0;o=w+24|0;p=w+20|0;u=w+16|0;r=w+12|0;q=w+8|0;s=w+4|0;t=w;c[x>>2]=b;c[k>>2]=d;c[l>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[p>>2]=c[x>>2];c[u>>2]=c[(c[p>>2]|0)+4>>2];do{if((c[(c[p>>2]|0)+12>>2]|0)>=(c[(c[p>>2]|0)+8>>2]|0)){v=23;break}while(1){if((c[(c[p>>2]|0)+12>>2]|0)<(c[(c[p>>2]|0)+8>>2]|0)?(x=a[(c[u>>2]|0)+(c[(c[p>>2]|0)+12>>2]|0)>>0]|0,c[q>>2]=x,(x&128|0)==0):0)if((c[q>>2]|0)<48)b=1;else b=(a[25909+((c[q>>2]|0)-48)>>0]|0)!=0^1;else b=0;g=(c[p>>2]|0)+12|0;h=c[g>>2]|0;if(!b)break;c[g>>2]=h+1}c[r>>2]=h;while(1){if((c[(c[p>>2]|0)+12>>2]|0)<(c[(c[p>>2]|0)+8>>2]|0)){x=a[(c[u>>2]|0)+(c[(c[p>>2]|0)+12>>2]|0)>>0]|0;c[q>>2]=x;if(!(x&128))if((c[q>>2]|0)<48)b=1;else b=(a[25909+((c[q>>2]|0)-48)>>0]|0)!=0^1;else b=0;b=b^1}else b=0;g=(c[p>>2]|0)+12|0;h=c[g>>2]|0;if(!b)break;c[g>>2]=h+1}}while((h|0)<=(c[r>>2]|0));if((v|0)==23){c[j>>2]=101;x=c[j>>2]|0;i=w;return x|0}c[s>>2]=(c[(c[p>>2]|0)+12>>2]|0)-(c[r>>2]|0);do if((c[s>>2]|0)>(c[(c[p>>2]|0)+24>>2]|0)){c[(c[p>>2]|0)+24>>2]=(c[s>>2]|0)+20;c[t>>2]=Ld(c[(c[p>>2]|0)+20>>2]|0,c[(c[p>>2]|0)+24>>2]|0)|0;if(c[t>>2]|0){c[(c[p>>2]|0)+20>>2]=c[t>>2];break}c[j>>2]=7;x=c[j>>2]|0;i=w;return x|0}while(0);cq((c[u>>2]|0)+(c[r>>2]|0)|0,c[s>>2]|0,c[(c[p>>2]|0)+20>>2]|0,c[l>>2]|0);c[c[k>>2]>>2]=c[(c[p>>2]|0)+20>>2];c[c[m>>2]>>2]=c[r>>2];c[c[n>>2]>>2]=c[(c[p>>2]|0)+12>>2];v=(c[p>>2]|0)+16|0;x=c[v>>2]|0;c[v>>2]=x+1;c[c[o>>2]>>2]=x;c[j>>2]=0;x=c[j>>2]|0;i=w;return x|0}function cq(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+64|0;g=s+28|0;h=s+24|0;o=s+20|0;p=s+16|0;q=s+12|0;k=s+8|0;m=s+36|0;r=s+4|0;l=s;j=s+32|0;c[g>>2]=b;c[h>>2]=d;c[o>>2]=e;c[p>>2]=f;if((c[h>>2]|0)<3|(c[h>>2]|0)>=21){dq(c[g>>2]|0,c[h>>2]|0,c[o>>2]|0,c[p>>2]|0);i=s;return}c[q>>2]=0;c[k>>2]=22;while(1){if((c[q>>2]|0)>=(c[h>>2]|0))break;a[j>>0]=a[(c[g>>2]|0)+(c[q>>2]|0)>>0]|0;if((a[j>>0]|0)>=65?(a[j>>0]|0)<=90:0)a[m+(c[k>>2]|0)>>0]=(a[j>>0]|0)+97-65;else{if((a[j>>0]|0)<97){n=11;break}if((a[j>>0]|0)>122){n=11;break}a[m+(c[k>>2]|0)>>0]=a[j>>0]|0}c[q>>2]=(c[q>>2]|0)+1;c[k>>2]=(c[k>>2]|0)+-1}if((n|0)==11){dq(c[g>>2]|0,c[h>>2]|0,c[o>>2]|0,c[p>>2]|0);i=s;return}n=m+23|0;a[n>>0]=0;a[n+1>>0]=0;a[n+2>>0]=0;a[n+3>>0]=0;a[n+4>>0]=0;c[r>>2]=m+((c[k>>2]|0)+1);if((((a[c[r>>2]>>0]|0)==115?(eq(r,25989,25994,0)|0)==0:0)?(eq(r,25997,26001,0)|0)==0:0)?(eq(r,25994,25994,0)|0)==0:0)c[r>>2]=(c[r>>2]|0)+1;c[l>>2]=c[r>>2];do if(!(eq(r,26003,26007,172)|0)){if((eq(r,26010,19266,173)|0)==0?(eq(r,26014,19266,173)|0)==0:0)break;if((((c[r>>2]|0)!=(c[l>>2]|0)?(eq(r,26017,26020,0)|0)==0:0)?(eq(r,26024,26027,0)|0)==0:0)?(eq(r,26031,26034,0)|0)==0:0){if((((hq(c[r>>2]|0)|0)!=0?(a[c[r>>2]>>0]|0)!=108:0)?(a[c[r>>2]>>0]|0)!=115:0)?(a[c[r>>2]>>0]|0)!=122:0){c[r>>2]=(c[r>>2]|0)+1;break}if((iq(c[r>>2]|0)|0)!=0?(jq(c[r>>2]|0)|0)!=0:0){n=(c[r>>2]|0)+-1|0;c[r>>2]=n;a[n>>0]=101}}}while(0);if((a[c[r>>2]>>0]|0)==121?(gq((c[r>>2]|0)+1|0)|0)!=0:0)a[c[r>>2]>>0]=105;switch(a[(c[r>>2]|0)+1>>0]|0){case 97:{if(!(eq(r,26038,26020,172)|0))eq(r,26046,26053,172)|0;break}case 99:{if(!(eq(r,26058,26063,172)|0))eq(r,26068,26073,172)|0;break}case 101:{eq(r,26078,26034,172)|0;break}case 103:{eq(r,26083,26088,172)|0;break}case 108:{if((((eq(r,26092,26027,172)|0)==0?(eq(r,26096,26101,172)|0)==0:0)?(eq(r,26104,26110,172)|0)==0:0)?(eq(r,26114,26118,172)|0)==0:0)eq(r,26120,26126,172)|0;break}case 111:{if((eq(r,26130,26034,172)|0)==0?(eq(r,26138,26020,172)|0)==0:0)eq(r,26144,26020,172)|0;break}case 115:{if(((eq(r,26149,26101,172)|0)==0?(eq(r,26155,26163,172)|0)==0:0)?(eq(r,26167,26175,172)|0)==0:0)eq(r,26179,26126,172)|0;break}case 116:{if((eq(r,26187,26101,172)|0)==0?(eq(r,26193,26163,172)|0)==0:0)eq(r,26199,26027,172)|0;break}default:{}}switch(a[c[r>>2]>>0]|0){case 101:{if((eq(r,26206,26212,172)|0)==0?(eq(r,26215,19266,172)|0)==0:0)eq(r,26221,26101,172)|0;break}case 105:{eq(r,26227,26212,172)|0;break}case 108:{if(!(eq(r,26233,26212,172)|0))eq(r,26238,19266,172)|0;break}case 115:{eq(r,26242,19266,172)|0;break}default:{}}a:do switch(a[(c[r>>2]|0)+1>>0]|0){case 97:{if((a[c[r>>2]>>0]|0)==108?(kq((c[r>>2]|0)+2|0)|0)!=0:0)c[r>>2]=(c[r>>2]|0)+2;break}case 99:{if((a[c[r>>2]>>0]|0)==101?(a[(c[r>>2]|0)+2>>0]|0)==110:0){if((a[(c[r>>2]|0)+3>>0]|0)!=97?(a[(c[r>>2]|0)+3>>0]|0)!=101:0)break a;if(kq((c[r>>2]|0)+4|0)|0)c[r>>2]=(c[r>>2]|0)+4}break}case 101:{if((a[c[r>>2]>>0]|0)==114?(kq((c[r>>2]|0)+2|0)|0)!=0:0)c[r>>2]=(c[r>>2]|0)+2;break}case 105:{if((a[c[r>>2]>>0]|0)==99?(kq((c[r>>2]|0)+2|0)|0)!=0:0)c[r>>2]=(c[r>>2]|0)+2;break}case 108:{if((a[c[r>>2]>>0]|0)==101?(a[(c[r>>2]|0)+2>>0]|0)==98:0){if((a[(c[r>>2]|0)+3>>0]|0)!=97?(a[(c[r>>2]|0)+3>>0]|0)!=105:0)break a;if(kq((c[r>>2]|0)+4|0)|0)c[r>>2]=(c[r>>2]|0)+4}break}case 110:{if((a[c[r>>2]>>0]|0)==116){g=c[r>>2]|0;if((a[(c[r>>2]|0)+2>>0]|0)==97){if(!(kq(g+3|0)|0))break a;c[r>>2]=(c[r>>2]|0)+3;break a}if(((a[g+2>>0]|0)==101?(eq(r,26247,19266,174)|0)==0:0)?(eq(r,26253,19266,174)|0)==0:0)eq(r,26258,19266,174)|0}break}case 111:{g=c[r>>2]|0;if((a[c[r>>2]>>0]|0)==117){if(!(kq(g+2|0)|0))break a;c[r>>2]=(c[r>>2]|0)+2;break a}if((a[g+3>>0]|0)!=115?(a[(c[r>>2]|0)+3>>0]|0)!=116:0)break a;eq(r,26262,19266,174)|0;break}case 115:{if(((a[c[r>>2]>>0]|0)==109?(a[(c[r>>2]|0)+2>>0]|0)==105:0)?(kq((c[r>>2]|0)+3|0)|0)!=0:0)c[r>>2]=(c[r>>2]|0)+3;break}case 116:{if(!(eq(r,26266,19266,174)|0))eq(r,26270,19266,174)|0;break}case 117:{if(((a[c[r>>2]>>0]|0)==115?(a[(c[r>>2]|0)+2>>0]|0)==111:0)?(kq((c[r>>2]|0)+3|0)|0)!=0:0)c[r>>2]=(c[r>>2]|0)+3;break}case 122:case 118:{if(((a[c[r>>2]>>0]|0)==101?(a[(c[r>>2]|0)+2>>0]|0)==105:0)?(kq((c[r>>2]|0)+3|0)|0)!=0:0)c[r>>2]=(c[r>>2]|0)+3;break}default:{}}while(0);do if((a[c[r>>2]>>0]|0)==101){n=(kq((c[r>>2]|0)+1|0)|0)!=0;g=(c[r>>2]|0)+1|0;if(n){c[r>>2]=g;break}if((iq(g)|0)!=0?(jq((c[r>>2]|0)+1|0)|0)==0:0)c[r>>2]=(c[r>>2]|0)+1}while(0);if(((kq(c[r>>2]|0)|0)!=0?(a[c[r>>2]>>0]|0)==108:0)?(a[(c[r>>2]|0)+1>>0]|0)==108:0)c[r>>2]=(c[r>>2]|0)+1;n=BQ(c[r>>2]|0)|0;c[q>>2]=n;c[c[p>>2]>>2]=n;a[(c[o>>2]|0)+(c[q>>2]|0)>>0]=0;while(1){if(!(a[c[r>>2]>>0]|0))break;n=c[r>>2]|0;c[r>>2]=n+1;n=a[n>>0]|0;p=(c[q>>2]|0)+-1|0;c[q>>2]=p;a[(c[o>>2]|0)+p>>0]=n}i=s;return}function dq(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;g=q+28|0;h=q+24|0;j=q+20|0;k=q+16|0;n=q+12|0;p=q+8|0;o=q+4|0;m=q;l=q+32|0;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[k>>2]=f;c[m>>2]=0;c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[h>>2]|0))break;a[l>>0]=a[(c[g>>2]|0)+(c[n>>2]|0)>>0]|0;if((a[l>>0]|0)>=65?(a[l>>0]|0)<=90:0)a[(c[j>>2]|0)+(c[n>>2]|0)>>0]=(a[l>>0]|0)-65+97;else{if((a[l>>0]|0)>=48?(a[l>>0]|0)<=57:0)c[m>>2]=1;a[(c[j>>2]|0)+(c[n>>2]|0)>>0]=a[l>>0]|0}c[n>>2]=(c[n>>2]|0)+1}c[p>>2]=(c[m>>2]|0)!=0?3:10;if((c[h>>2]|0)<=(c[p>>2]<<1|0)){b=c[n>>2]|0;e=c[j>>2]|0;b=e+b|0;a[b>>0]=0;b=c[n>>2]|0;e=c[k>>2]|0;c[e>>2]=b;i=q;return}c[o>>2]=c[p>>2];c[n>>2]=(c[h>>2]|0)-(c[p>>2]|0);while(1){if((c[n>>2]|0)>=(c[h>>2]|0))break;a[(c[j>>2]|0)+(c[o>>2]|0)>>0]=a[(c[j>>2]|0)+(c[n>>2]|0)>>0]|0;c[n>>2]=(c[n>>2]|0)+1;c[o>>2]=(c[o>>2]|0)+1}c[n>>2]=c[o>>2];b=c[n>>2]|0;e=c[j>>2]|0;b=e+b|0;a[b>>0]=0;b=c[n>>2]|0;e=c[k>>2]|0;c[e>>2]=b;i=q;return}function eq(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;g=n+20|0;h=n+16|0;j=n+12|0;k=n+8|0;l=n+4|0;m=n;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;c[m>>2]=c[c[h>>2]>>2];while(1){if(!(a[c[j>>2]>>0]|0))break;if((a[c[j>>2]>>0]|0)!=(a[c[m>>2]>>0]|0))break;c[m>>2]=(c[m>>2]|0)+1;c[j>>2]=(c[j>>2]|0)+1}if(a[c[j>>2]>>0]|0){c[g>>2]=0;e=c[g>>2]|0;i=n;return e|0}if((c[l>>2]|0)!=0?(Tb[c[l>>2]&255](c[m>>2]|0)|0)==0:0){c[g>>2]=1;e=c[g>>2]|0;i=n;return e|0}while(1){if(!(a[c[k>>2]>>0]|0))break;d=c[k>>2]|0;c[k>>2]=d+1;d=a[d>>0]|0;e=(c[m>>2]|0)+-1|0;c[m>>2]=e;a[e>>0]=d}c[c[h>>2]>>2]=c[m>>2];c[g>>2]=1;e=c[g>>2]|0;i=n;return e|0}function fq(b){b=b|0;var d=0,e=0,f=0,g=0;f=i;i=i+16|0;d=f+4|0;e=f;c[e>>2]=b;while(1){g=(lq(c[e>>2]|0)|0)!=0;b=c[e>>2]|0;if(!g)break;c[e>>2]=b+1}if(!(a[b>>0]|0)){c[d>>2]=0;g=c[d>>2]|0;i=f;return g|0}while(1){g=(mq(c[e>>2]|0)|0)!=0;b=c[e>>2]|0;if(!g)break;c[e>>2]=b+1}c[d>>2]=(a[b>>0]|0)!=0&1;g=c[d>>2]|0;i=f;return g|0}function gq(b){b=b|0;var d=0,e=0,f=0;e=i;i=i+16|0;d=e;c[d>>2]=b;while(1){f=(mq(c[d>>2]|0)|0)!=0;b=c[d>>2]|0;if(!f)break;c[d>>2]=b+1}i=e;return(a[b>>0]|0)!=0|0}function hq(b){b=b|0;var d=0,e=0;e=i;i=i+16|0;d=e;c[d>>2]=b;if(!(mq(c[d>>2]|0)|0)){b=0;b=b&1;i=e;return b|0}b=(a[c[d>>2]>>0]|0)==(a[(c[d>>2]|0)+1>>0]|0);b=b&1;i=e;return b|0}function iq(b){b=b|0;var d=0,e=0,f=0,g=0;f=i;i=i+16|0;d=f+4|0;e=f;c[e>>2]=b;while(1){g=(lq(c[e>>2]|0)|0)!=0;b=c[e>>2]|0;if(!g)break;c[e>>2]=b+1}if(!(a[b>>0]|0)){c[d>>2]=0;g=c[d>>2]|0;i=f;return g|0}while(1){g=(mq(c[e>>2]|0)|0)!=0;b=c[e>>2]|0;if(!g)break;c[e>>2]=b+1}if(!(a[b>>0]|0)){c[d>>2]=0;g=c[d>>2]|0;i=f;return g|0}while(1){g=(lq(c[e>>2]|0)|0)!=0;b=c[e>>2]|0;if(!g)break;c[e>>2]=b+1}if(!(a[b>>0]|0)){c[d>>2]=1;g=c[d>>2]|0;i=f;return g|0}while(1){g=(mq(c[e>>2]|0)|0)!=0;b=c[e>>2]|0;if(!g)break;c[e>>2]=b+1}c[d>>2]=(a[b>>0]|0)==0&1;g=c[d>>2]|0;i=f;return g|0}function jq(b){b=b|0;var d=0,e=0;e=i;i=i+16|0;d=e;c[d>>2]=b;if(((((mq(c[d>>2]|0)|0)!=0?(a[c[d>>2]>>0]|0)!=119:0)?(a[c[d>>2]>>0]|0)!=120:0)?(a[c[d>>2]>>0]|0)!=121:0)?(lq((c[d>>2]|0)+1|0)|0)!=0:0)d=(mq((c[d>>2]|0)+2|0)|0)!=0;else d=0;i=e;return d&1|0}function kq(b){b=b|0;var d=0,e=0,f=0,g=0;f=i;i=i+16|0;d=f+4|0;e=f;c[e>>2]=b;while(1){g=(lq(c[e>>2]|0)|0)!=0;b=c[e>>2]|0;if(!g)break;c[e>>2]=b+1}if(!(a[b>>0]|0)){c[d>>2]=0;g=c[d>>2]|0;i=f;return g|0}while(1){g=(mq(c[e>>2]|0)|0)!=0;b=c[e>>2]|0;if(!g)break;c[e>>2]=b+1}if(!(a[b>>0]|0)){c[d>>2]=0;g=c[d>>2]|0;i=f;return g|0}while(1){g=(lq(c[e>>2]|0)|0)!=0;b=c[e>>2]|0;if(!g)break;c[e>>2]=b+1}if(!(a[b>>0]|0)){c[d>>2]=0;g=c[d>>2]|0;i=f;return g|0}while(1){g=(mq(c[e>>2]|0)|0)!=0;b=c[e>>2]|0;if(!g)break;c[e>>2]=b+1}c[d>>2]=(a[b>>0]|0)!=0&1;g=c[d>>2]|0;i=f;return g|0}function lq(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;d=h+8|0;e=h+4|0;f=h;g=h+12|0;c[e>>2]=b;a[g>>0]=a[c[e>>2]>>0]|0;if(!(a[g>>0]|0)){c[d>>2]=0;b=c[d>>2]|0;i=h;return b|0}c[f>>2]=a[26274+((a[g>>0]|0)-97)>>0];if((c[f>>2]|0)<2){c[d>>2]=1-(c[f>>2]|0);b=c[d>>2]|0;i=h;return b|0}else{c[d>>2]=mq((c[e>>2]|0)+1|0)|0;b=c[d>>2]|0;i=h;return b|0}return 0}function mq(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;g=h+8|0;d=h+4|0;e=h;f=h+12|0;c[d>>2]=b;a[f>>0]=a[c[d>>2]>>0]|0;if(!(a[f>>0]|0)){c[g>>2]=0;g=c[g>>2]|0;i=h;return g|0}c[e>>2]=a[26274+((a[f>>0]|0)-97)>>0];if((c[e>>2]|0)<2){c[g>>2]=c[e>>2];g=c[g>>2]|0;i=h;return g|0}if(!(a[(c[d>>2]|0)+1>>0]|0))d=1;else d=(lq((c[d>>2]|0)+1|0)|0)!=0;c[g>>2]=d&1;g=c[g>>2]|0;i=h;return g|0}function nq(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;g=q+28|0;h=q+24|0;j=q+20|0;k=q+16|0;p=q+12|0;m=q+8|0;o=q+4|0;l=q+32|0;n=q;c[h>>2]=b;c[j>>2]=e;c[k>>2]=f;c[p>>2]=Id(132)|0;if(!(c[p>>2]|0)){c[g>>2]=7;p=c[g>>2]|0;i=q;return p|0}kR(c[p>>2]|0,0,132)|0;a:do if((c[h>>2]|0)>1){c[o>>2]=BQ(c[(c[j>>2]|0)+4>>2]|0)|0;c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[o>>2]|0))break a;a[l>>0]=a[(c[(c[j>>2]|0)+4>>2]|0)+(c[m>>2]|0)>>0]|0;if((d[l>>0]|0|0)>=128)break;a[(c[p>>2]|0)+4+(d[l>>0]|0)>>0]=1;c[m>>2]=(c[m>>2]|0)+1}Kd(c[p>>2]|0);c[g>>2]=1;p=c[g>>2]|0;i=q;return p|0}else{c[n>>2]=1;while(1){if((c[n>>2]|0)>=128)break a;f=(tq(c[n>>2]|0)|0)!=0^1;a[(c[p>>2]|0)+4+(c[n>>2]|0)>>0]=f?-1:0;c[n>>2]=(c[n>>2]|0)+1}}while(0);c[c[k>>2]>>2]=c[p>>2];c[g>>2]=0;p=c[g>>2]|0;i=q;return p|0}function oq(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;Kd(c[d>>2]|0);i=b;return 0}function pq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;f=l+20|0;g=l+12|0;h=l+8|0;j=l+4|0;k=l;c[l+16>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[k>>2]=Id(28)|0;if(!(c[k>>2]|0)){c[f>>2]=7;e=c[f>>2]|0;i=l;return e|0}c[(c[k>>2]|0)+4>>2]=c[g>>2];do if(c[g>>2]|0)if((c[h>>2]|0)<0){e=BQ(c[g>>2]|0)|0;c[(c[k>>2]|0)+8>>2]=e;break}else{c[(c[k>>2]|0)+8>>2]=c[h>>2];break}else c[(c[k>>2]|0)+8>>2]=0;while(0);c[(c[k>>2]|0)+12>>2]=0;c[(c[k>>2]|0)+16>>2]=0;c[(c[k>>2]|0)+20>>2]=0;c[(c[k>>2]|0)+24>>2]=0;c[c[j>>2]>>2]=c[k>>2];c[f>>2]=0;e=c[f>>2]|0;i=l;return e|0}function qq(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;c[d>>2]=c[e>>2];Kd(c[(c[d>>2]|0)+20>>2]|0);Kd(c[d>>2]|0);i=b;return 0}function rq(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;z=i;i=i+64|0;n=z+52|0;A=z+48|0;o=z+44|0;p=z+40|0;q=z+36|0;r=z+32|0;s=z+28|0;t=z+24|0;l=z+20|0;y=z+16|0;w=z+12|0;v=z+8|0;x=z+4|0;k=z;u=z+56|0;c[A>>2]=b;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=j;c[t>>2]=c[A>>2];c[l>>2]=c[c[A>>2]>>2];c[y>>2]=c[(c[t>>2]|0)+4>>2];do{if((c[(c[t>>2]|0)+12>>2]|0)>=(c[(c[t>>2]|0)+8>>2]|0)){m=25;break}while(1){if((c[(c[t>>2]|0)+12>>2]|0)<(c[(c[t>>2]|0)+8>>2]|0))b=(sq(c[l>>2]|0,a[(c[y>>2]|0)+(c[(c[t>>2]|0)+12>>2]|0)>>0]|0)|0)!=0;else b=0;h=(c[t>>2]|0)+12|0;j=c[h>>2]|0;if(!b)break;c[h>>2]=j+1}c[w>>2]=j;while(1){if((c[(c[t>>2]|0)+12>>2]|0)<(c[(c[t>>2]|0)+8>>2]|0))b=(sq(c[l>>2]|0,a[(c[y>>2]|0)+(c[(c[t>>2]|0)+12>>2]|0)>>0]|0)|0)!=0^1;else b=0;h=(c[t>>2]|0)+12|0;j=c[h>>2]|0;if(!b)break;c[h>>2]=j+1}}while((j|0)<=(c[w>>2]|0));if((m|0)==25){c[n>>2]=101;A=c[n>>2]|0;i=z;return A|0}c[x>>2]=(c[(c[t>>2]|0)+12>>2]|0)-(c[w>>2]|0);do if((c[x>>2]|0)>(c[(c[t>>2]|0)+24>>2]|0)){c[(c[t>>2]|0)+24>>2]=(c[x>>2]|0)+20;c[k>>2]=Ld(c[(c[t>>2]|0)+20>>2]|0,c[(c[t>>2]|0)+24>>2]|0)|0;if(c[k>>2]|0){c[(c[t>>2]|0)+20>>2]=c[k>>2];
  52. break}c[n>>2]=7;A=c[n>>2]|0;i=z;return A|0}while(0);c[v>>2]=0;while(1){if((c[v>>2]|0)>=(c[x>>2]|0))break;a[u>>0]=a[(c[y>>2]|0)+((c[w>>2]|0)+(c[v>>2]|0))>>0]|0;if((d[u>>0]|0|0)>=65?(d[u>>0]|0|0)<=90:0)b=(d[u>>0]|0)-65+97|0;else b=d[u>>0]|0;a[(c[(c[t>>2]|0)+20>>2]|0)+(c[v>>2]|0)>>0]=b;c[v>>2]=(c[v>>2]|0)+1}c[c[o>>2]>>2]=c[(c[t>>2]|0)+20>>2];c[c[p>>2]>>2]=c[x>>2];c[c[q>>2]>>2]=c[w>>2];c[c[r>>2]>>2]=c[(c[t>>2]|0)+12>>2];y=(c[t>>2]|0)+16|0;A=c[y>>2]|0;c[y>>2]=A+1;c[c[s>>2]>>2]=A;c[n>>2]=0;A=c[n>>2]|0;i=z;return A|0}function sq(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;h=i;i=i+16|0;f=h;g=h+4|0;c[f>>2]=b;a[g>>0]=e;if((d[g>>0]|0)>=128){b=0;b=b&1;i=h;return b|0}b=(a[(c[f>>2]|0)+4+(d[g>>0]|0)>>0]|0)!=0;b=b&1;i=h;return b|0}function tq(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!((c[b>>2]|0)>=48&(c[b>>2]|0)<=57)?!((c[b>>2]|0)>=65&(c[b>>2]|0)<=90):0)b=(c[b>>2]|0)>=97?(c[b>>2]|0)<=122:0;else b=1;i=d;return b&1|0}function uq(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=i;i=i+64|0;t=w;h=w+56|0;j=w+52|0;k=w+44|0;l=w+40|0;m=w+36|0;n=w+32|0;u=w+28|0;v=w+24|0;p=w+20|0;q=w+16|0;o=w+12|0;s=w+8|0;r=w+4|0;c[j>>2]=a;c[w+48>>2]=b;c[k>>2]=d;c[l>>2]=e;c[m>>2]=f;c[n>>2]=g;do if(!((c[k>>2]|0)!=4&(c[k>>2]|0)!=5)){c[u>>2]=c[(c[l>>2]|0)+4>>2];c[p>>2]=BQ(c[u>>2]|0)|0;if((c[k>>2]|0)==5){if((c[p>>2]|0)!=4)break;if(zd(19536,c[u>>2]|0,4)|0)break;c[u>>2]=c[(c[l>>2]|0)+12>>2];c[p>>2]=BQ(c[u>>2]|0)|0;c[v>>2]=c[(c[l>>2]|0)+16>>2]}else c[v>>2]=c[(c[l>>2]|0)+12>>2];c[q>>2]=BQ(c[v>>2]|0)|0;c[s>>2]=ff(c[j>>2]|0,26310)|0;if(c[s>>2]|0){c[h>>2]=c[s>>2];v=c[h>>2]|0;i=w;return v|0}c[o>>2]=296+(c[p>>2]|0)+(c[q>>2]|0)+2;c[r>>2]=Id(c[o>>2]|0)|0;if(c[r>>2]|0){kR(c[r>>2]|0,0,c[o>>2]|0)|0;c[(c[r>>2]|0)+12>>2]=(c[r>>2]|0)+16;c[(c[(c[r>>2]|0)+12>>2]|0)+16>>2]=(c[(c[r>>2]|0)+12>>2]|0)+280;c[(c[(c[r>>2]|0)+12>>2]|0)+20>>2]=(c[(c[(c[r>>2]|0)+12>>2]|0)+16>>2]|0)+((c[p>>2]|0)+1);c[(c[(c[r>>2]|0)+12>>2]|0)+12>>2]=c[j>>2];c[(c[(c[r>>2]|0)+12>>2]|0)+248>>2]=1;iR(c[(c[(c[r>>2]|0)+12>>2]|0)+16>>2]|0,c[u>>2]|0,c[p>>2]|0)|0;iR(c[(c[(c[r>>2]|0)+12>>2]|0)+20>>2]|0,c[v>>2]|0,c[q>>2]|0)|0;Ik(c[(c[(c[r>>2]|0)+12>>2]|0)+20>>2]|0);c[c[m>>2]>>2]=c[r>>2];c[h>>2]=0;v=c[h>>2]|0;i=w;return v|0}else{c[h>>2]=7;v=c[h>>2]|0;i=w;return v|0}}while(0);zk(c[n>>2]|0,26379,t);c[h>>2]=1;v=c[h>>2]|0;i=w;return v|0}function vq(b,e){b=b|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;k=q+32|0;f=q+28|0;l=q+24|0;m=q+20|0;o=q+16|0;n=q+12|0;p=q+8|0;j=q+4|0;g=q;c[q+36>>2]=b;c[k>>2]=e;c[l>>2]=-1;c[m>>2]=-1;c[o>>2]=-1;c[n>>2]=-1;c[p>>2]=1;if(((c[(c[k>>2]|0)+8>>2]|0)==1?(c[c[(c[k>>2]|0)+12>>2]>>2]|0)==0:0)?(d[(c[(c[k>>2]|0)+12>>2]|0)+4>>0]|0)==0:0)c[(c[k>>2]|0)+32>>2]=1;c[f>>2]=0;while(1){if((c[f>>2]|0)>=(c[c[k>>2]>>2]|0))break;if(a[(c[(c[k>>2]|0)+4>>2]|0)+((c[f>>2]|0)*12|0)+5>>0]|0){c[j>>2]=d[(c[(c[k>>2]|0)+4>>2]|0)+((c[f>>2]|0)*12|0)+4>>0];c[g>>2]=c[(c[(c[k>>2]|0)+4>>2]|0)+((c[f>>2]|0)*12|0)>>2];if(!(c[g>>2]|0)){if((c[j>>2]|0)==2)c[l>>2]=c[f>>2];if((c[j>>2]|0)==16)c[o>>2]=c[f>>2];if((c[j>>2]|0)==8)c[o>>2]=c[f>>2];if((c[j>>2]|0)==4)c[m>>2]=c[f>>2];if((c[j>>2]|0)==32)c[m>>2]=c[f>>2]}if((c[g>>2]|0)==4&(c[j>>2]|0)==2)c[n>>2]=c[f>>2]}c[f>>2]=(c[f>>2]|0)+1}f=(c[k>>2]|0)+20|0;if((c[l>>2]|0)<0){c[f>>2]=0;h[(c[k>>2]|0)+40>>3]=2.0e4;if((c[m>>2]|0)>=0){l=(c[k>>2]|0)+20|0;c[l>>2]=(c[l>>2]|0)+2;l=c[p>>2]|0;c[p>>2]=l+1;c[(c[(c[k>>2]|0)+16>>2]|0)+(c[m>>2]<<3)>>2]=l;m=(c[k>>2]|0)+40|0;h[m>>3]=+h[m>>3]/2.0}if((c[o>>2]|0)>=0){m=(c[k>>2]|0)+20|0;c[m>>2]=(c[m>>2]|0)+4;m=c[p>>2]|0;c[p>>2]=m+1;c[(c[(c[k>>2]|0)+16>>2]|0)+(c[o>>2]<<3)>>2]=m;o=(c[k>>2]|0)+40|0;h[o>>3]=+h[o>>3]/2.0}}else{c[f>>2]=1;o=c[p>>2]|0;c[p>>2]=o+1;c[(c[(c[k>>2]|0)+16>>2]|0)+(c[l>>2]<<3)>>2]=o;h[(c[k>>2]|0)+40>>3]=5.0}if((c[n>>2]|0)<0){i=q;return 0}o=c[p>>2]|0;c[p>>2]=o+1;c[(c[(c[k>>2]|0)+16>>2]|0)+(c[n>>2]<<3)>>2]=o;p=(c[k>>2]|0)+40|0;h[p>>3]=+h[p>>3]+-1.0;i=q;return 0}function wq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=i;i=i+16|0;g=f+12|0;d=f+8|0;e=f+4|0;b=f;c[g>>2]=a;c[d>>2]=c[g>>2];c[e>>2]=c[(c[d>>2]|0)+12>>2];c[b>>2]=0;while(1){if((c[b>>2]|0)>=40)break;Yd(c[(c[e>>2]|0)+56+(c[b>>2]<<2)>>2]|0)|0;c[b>>2]=(c[b>>2]|0)+1}Kd(c[(c[e>>2]|0)+240>>2]|0);Kd(c[d>>2]|0);i=f;return 0}function xq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+12|0;e=g+4|0;f=g;c[g+8>>2]=a;c[e>>2]=b;c[f>>2]=Id(120)|0;if(c[f>>2]|0){a=c[f>>2]|0;b=a+120|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(b|0));c[c[e>>2]>>2]=c[f>>2];c[d>>2]=0;f=c[d>>2]|0;i=g;return f|0}else{c[d>>2]=7;f=c[d>>2]|0;i=g;return f|0}return 0}function yq(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;f=b+8|0;e=b+4|0;d=b;c[f>>2]=a;c[e>>2]=c[(c[c[f>>2]>>2]|0)+12>>2];c[d>>2]=c[f>>2];sm(c[e>>2]|0);vl((c[d>>2]|0)+4|0);Kd(c[(c[d>>2]|0)+60>>2]|0);Kd(c[(c[d>>2]|0)+76>>2]|0);Kd(c[(c[d>>2]|0)+112>>2]|0);Kd(c[d>>2]|0);i=b;return 0}function zq(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=i;i=i+80|0;x=z+8|0;w=z;g=z+76|0;h=z+72|0;j=z+68|0;k=z+60|0;l=z+56|0;t=z+52|0;u=z+48|0;v=z+44|0;s=z+40|0;o=z+36|0;m=z+32|0;n=z+28|0;q=z+24|0;p=z+20|0;r=z+16|0;y=z+12|0;c[h>>2]=a;c[j>>2]=b;c[z+64>>2]=d;c[k>>2]=e;c[l>>2]=f;c[t>>2]=c[h>>2];c[u>>2]=c[(c[c[h>>2]>>2]|0)+12>>2];c[s>>2]=0;c[o>>2]=0;c[m>>2]=-1;c[n>>2]=-1;c[q>>2]=-1;c[p>>2]=-1;c[r>>2]=0;if((c[j>>2]|0)!=1){c[s>>2]=1;if(c[j>>2]&2){a=c[r>>2]|0;c[r>>2]=a+1;c[n>>2]=a}if(c[j>>2]&4){a=c[r>>2]|0;c[r>>2]=a+1;c[q>>2]=a}}else{a=c[r>>2]|0;c[r>>2]=a+1;c[m>>2]=a}if((c[r>>2]|0)<(c[k>>2]|0)){a=c[r>>2]|0;c[r>>2]=a+1;c[p>>2]=a}vl((c[t>>2]|0)+4|0);Kd(c[(c[t>>2]|0)+60>>2]|0);Kd(c[(c[t>>2]|0)+112>>2]|0);kR((c[t>>2]|0)+4|0,0,(c[t>>2]|0)+120-((c[t>>2]|0)+4)|0)|0;c[(c[t>>2]|0)+60+12>>2]=3;if(c[s>>2]|0){a=(c[t>>2]|0)+60+12|0;c[a>>2]=c[a>>2]|16}if(((c[m>>2]|0)>=0|(c[n>>2]|0)>=0?(c[y>>2]=ae(c[c[l>>2]>>2]|0)|0,(c[y>>2]|0)!=0):0)?(c[w>>2]=c[y>>2],y=Od(19255,w)|0,c[(c[t>>2]|0)+60>>2]=y,y=be(c[c[l>>2]>>2]|0)|0,c[(c[t>>2]|0)+60+4>>2]=y,(c[(c[t>>2]|0)+60>>2]|0)==0):0){c[g>>2]=7;y=c[g>>2]|0;i=z;return y|0}if((c[q>>2]|0)>=0?(c[x>>2]=ae(c[(c[l>>2]|0)+(c[q>>2]<<2)>>2]|0)|0,y=Od(19255,x)|0,c[(c[t>>2]|0)+76>>2]=y,y=be(c[(c[l>>2]|0)+(c[q>>2]<<2)>>2]|0)|0,c[(c[t>>2]|0)+80>>2]=y,(c[(c[t>>2]|0)+76>>2]|0)==0):0){c[g>>2]=7;y=c[g>>2]|0;i=z;return y|0}if((c[p>>2]|0)>=0){y=de(c[(c[l>>2]|0)+(c[p>>2]<<2)>>2]|0)|0;c[o>>2]=y;c[o>>2]=(c[o>>2]|0)<0?0:y}c[(c[t>>2]|0)+84>>2]=c[o>>2];c[v>>2]=kl(c[u>>2]|0,c[o>>2]|0,0,-2,c[(c[t>>2]|0)+60>>2]|0,c[(c[t>>2]|0)+60+4>>2]|0,0,c[s>>2]|0,(c[t>>2]|0)+4|0)|0;if(!(c[v>>2]|0))c[v>>2]=ol(c[u>>2]|0,(c[t>>2]|0)+4|0,(c[t>>2]|0)+60|0)|0;if(!(c[v>>2]|0))c[v>>2]=Aq(c[h>>2]|0)|0;c[g>>2]=c[v>>2];y=c[g>>2]|0;i=z;return y|0}function Aq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;q=i;i=i+64|0;d=q+52|0;r=q+48|0;m=q+44|0;b=q+40|0;n=q+36|0;g=q+32|0;l=q+28|0;e=q+24|0;h=q+20|0;f=q+16|0;k=q+12|0;j=q+8|0;o=q;c[r>>2]=a;c[m>>2]=c[r>>2];c[b>>2]=c[(c[c[r>>2]>>2]|0)+12>>2];a=(c[m>>2]|0)+96|0;r=a;r=gR(c[r>>2]|0,c[r+4>>2]|0,1,0)|0;c[a>>2]=r;c[a+4>>2]=C;a=(c[m>>2]|0)+104|0;c[a>>2]=(c[a>>2]|0)+1;while(1){if((c[(c[m>>2]|0)+104>>2]|0)>=(c[(c[m>>2]|0)+108>>2]|0))break;r=(c[(c[m>>2]|0)+112>>2]|0)+(c[(c[m>>2]|0)+104>>2]<<4)|0;a=c[r+4>>2]|0;if((a|0)>0|(a|0)==0&(c[r>>2]|0)>>>0>0){p=4;break}r=(c[m>>2]|0)+104|0;c[r>>2]=(c[r>>2]|0)+1}if((p|0)==4){c[d>>2]=0;r=c[d>>2]|0;i=q;return r|0}c[n>>2]=pl(c[b>>2]|0,(c[m>>2]|0)+4|0)|0;do if((c[n>>2]|0)==100){c[g>>2]=0;c[l>>2]=c[(c[m>>2]|0)+4+52>>2];c[e>>2]=c[(c[m>>2]|0)+4+48>>2];c[f>>2]=0;do if(c[(c[m>>2]|0)+76>>2]|0){a=c[m>>2]|0;if((c[(c[m>>2]|0)+80>>2]|0)<(c[(c[m>>2]|0)+4+44>>2]|0))a=c[a+80>>2]|0;else a=c[a+4+44>>2]|0;c[k>>2]=a;c[j>>2]=vQ(c[(c[m>>2]|0)+76>>2]|0,c[(c[m>>2]|0)+4+40>>2]|0,c[k>>2]|0)|0;if((c[j>>2]|0)>=0){if(c[j>>2]|0)break;if((c[(c[m>>2]|0)+4+44>>2]|0)<=(c[(c[m>>2]|0)+80>>2]|0))break}c[(c[m>>2]|0)+88>>2]=1;c[d>>2]=0;r=c[d>>2]|0;i=q;return r|0}while(0);if(Eq(c[m>>2]|0,2)|0){c[d>>2]=7;r=c[d>>2]|0;i=q;return r|0}kR(c[(c[m>>2]|0)+112>>2]|0,0,c[(c[m>>2]|0)+108>>2]<<4|0)|0;c[h>>2]=0;a:while(1){if((c[g>>2]|0)>=(c[l>>2]|0)){p=32;break}r=o;c[r>>2]=0;c[r+4>>2]=0;r=Ul((c[e>>2]|0)+(c[g>>2]|0)|0,o)|0;c[g>>2]=(c[g>>2]|0)+r;switch(c[f>>2]|0){case 0:{r=c[(c[m>>2]|0)+112>>2]|0;k=r;c[r>>2]=gR(c[k>>2]|0,c[k+4>>2]|0,1,0)|0;c[r+4>>2]=C;c[f>>2]=1;c[h>>2]=0;continue a}case 1:{r=o;k=c[r+4>>2]|0;if((k|0)>0|(k|0)==0&(c[r>>2]|0)>>>0>1){r=(c[(c[m>>2]|0)+112>>2]|0)+16|0;k=r;k=gR(c[k>>2]|0,c[k+4>>2]|0,1,0)|0;c[r>>2]=k;c[r+4>>2]=C}c[f>>2]=2;break}case 2:break;default:{c[h>>2]=c[o>>2];if(Eq(c[m>>2]|0,(c[h>>2]|0)+2|0)|0)break a;r=(c[(c[m>>2]|0)+112>>2]|0)+((c[h>>2]|0)+1<<4)|0;k=r;c[r>>2]=gR(c[k>>2]|0,c[k+4>>2]|0,1,0)|0;c[r+4>>2]=C;c[f>>2]=2;continue a}}r=o;if((c[r>>2]|0)==0&(c[r+4>>2]|0)==0){c[f>>2]=0;continue}r=o;if((c[r>>2]|0)==1&(c[r+4>>2]|0)==0){c[f>>2]=3;continue}else{r=(c[(c[m>>2]|0)+112>>2]|0)+((c[h>>2]|0)+1<<4)+8|0;k=r;k=gR(c[k>>2]|0,c[k+4>>2]|0,1,0)|0;c[r>>2]=k;c[r+4>>2]=C;r=(c[(c[m>>2]|0)+112>>2]|0)+8|0;k=r;k=gR(c[k>>2]|0,c[k+4>>2]|0,1,0)|0;c[r>>2]=k;c[r+4>>2]=C;continue}}if((p|0)==32){c[(c[m>>2]|0)+104>>2]=0;c[n>>2]=0;break}c[d>>2]=7;r=c[d>>2]|0;i=q;return r|0}else c[(c[m>>2]|0)+88>>2]=1;while(0);c[d>>2]=c[n>>2];r=c[d>>2]|0;i=q;return r|0}function Bq(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;c[b>>2]=c[e>>2];i=d;return c[(c[b>>2]|0)+88>>2]|0}function Cq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;g=i;i=i+16|0;j=g+12|0;e=g+8|0;h=g+4|0;f=g;c[j>>2]=a;c[e>>2]=b;c[h>>2]=d;c[f>>2]=c[j>>2];switch(c[h>>2]|0){case 0:{ne(c[e>>2]|0,c[(c[f>>2]|0)+4+40>>2]|0,c[(c[f>>2]|0)+4+44>>2]|0,-1);i=g;return 0}case 1:{e=c[e>>2]|0;if(c[(c[f>>2]|0)+104>>2]|0){ke(e,(c[(c[f>>2]|0)+104>>2]|0)-1|0);i=g;return 0}else{ne(e,26308,-1,0);i=g;return 0}}case 2:{j=(c[(c[f>>2]|0)+112>>2]|0)+(c[(c[f>>2]|0)+104>>2]<<4)|0;le(c[e>>2]|0,c[j>>2]|0,c[j+4>>2]|0);i=g;return 0}case 3:{j=(c[(c[f>>2]|0)+112>>2]|0)+(c[(c[f>>2]|0)+104>>2]<<4)+8|0;le(c[e>>2]|0,c[j>>2]|0,c[j+4>>2]|0);i=g;return 0}default:{ke(c[e>>2]|0,c[(c[f>>2]|0)+84>>2]|0);i=g;return 0}}return 0}function Dq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;g=d+8|0;f=d+4|0;e=d;c[g>>2]=a;c[f>>2]=b;c[e>>2]=c[g>>2];e=(c[e>>2]|0)+96|0;a=c[e+4>>2]|0;b=c[f>>2]|0;c[b>>2]=c[e>>2];c[b+4>>2]=a;i=d;return 0}function Eq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;d=h+12|0;e=h+8|0;f=h+4|0;g=h;c[e>>2]=a;c[f>>2]=b;do if((c[f>>2]|0)>(c[(c[e>>2]|0)+108>>2]|0)){c[g>>2]=Ld(c[(c[e>>2]|0)+112>>2]|0,c[f>>2]<<4)|0;if(c[g>>2]|0){kR((c[g>>2]|0)+(c[(c[e>>2]|0)+108>>2]<<4)|0,0,(c[f>>2]|0)-(c[(c[e>>2]|0)+108>>2]|0)<<4|0)|0;c[(c[e>>2]|0)+112>>2]=c[g>>2];c[(c[e>>2]|0)+108>>2]=c[f>>2];break}c[d>>2]=7;a=c[d>>2]|0;i=h;return a|0}while(0);c[d>>2]=0;a=c[d>>2]|0;i=h;return a|0}function Fq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+48|0;e=p+32|0;f=p+28|0;g=p+24|0;h=p+20|0;l=p+16|0;j=p+12|0;m=p+8|0;n=p+4|0;k=p;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[m>>2]=0;c[l>>2]=Id(16)|0;if(!(c[l>>2]|0)){c[e>>2]=7;o=c[e>>2]|0;i=p;return o|0}d=c[l>>2]|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[(c[l>>2]|0)+4>>2]=1;c[j>>2]=0;while(1){if(c[m>>2]|0)break;if((c[j>>2]|0)>=(c[f>>2]|0))break;c[n>>2]=c[(c[g>>2]|0)+(c[j>>2]<<2)>>2];c[k>>2]=BQ(c[n>>2]|0)|0;if((c[k>>2]|0)==19?(vQ(26585,c[n>>2]|0,19)|0)==0:0)c[(c[l>>2]|0)+4>>2]=1;else o=9;do if((o|0)==9){o=0;if((c[k>>2]|0)==19?(vQ(26605,c[n>>2]|0,19)|0)==0:0){c[(c[l>>2]|0)+4>>2]=0;break}if((c[k>>2]|0)>=11?(vQ(26625,c[n>>2]|0,11)|0)==0:0){c[m>>2]=Qq(c[l>>2]|0,1,(c[n>>2]|0)+11|0,(c[k>>2]|0)-11|0)|0;break}if((c[k>>2]|0)>=11?(vQ(26637,c[n>>2]|0,11)|0)==0:0){c[m>>2]=Qq(c[l>>2]|0,0,(c[n>>2]|0)+11|0,(c[k>>2]|0)-11|0)|0;break}c[m>>2]=1}while(0);c[j>>2]=(c[j>>2]|0)+1}if(c[m>>2]|0){Gq(c[l>>2]|0)|0;c[l>>2]=0}c[c[h>>2]>>2]=c[l>>2];c[e>>2]=c[m>>2];o=c[e>>2]|0;i=p;return o|0}function Gq(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;if(!(c[b>>2]|0)){i=e;return 0}c[d>>2]=c[b>>2];Kd(c[(c[d>>2]|0)+12>>2]|0);Kd(c[d>>2]|0);i=e;return 0}function Hq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;f=l+20|0;g=l+12|0;h=l+8|0;j=l+4|0;k=l;c[l+16>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[k>>2]=Id(28)|0;if(!(c[k>>2]|0)){c[f>>2]=7;e=c[f>>2]|0;i=l;return e|0}e=c[k>>2]|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;c[e+24>>2]=0;c[(c[k>>2]|0)+4>>2]=c[g>>2];do if(c[g>>2]|0)if((c[h>>2]|0)<0){e=BQ(c[g>>2]|0)|0;c[(c[k>>2]|0)+8>>2]=e;break}else{c[(c[k>>2]|0)+8>>2]=c[h>>2];break}else c[(c[k>>2]|0)+8>>2]=0;while(0);c[c[j>>2]>>2]=c[k>>2];c[f>>2]=0;e=c[f>>2]|0;i=l;return e|0}function Iq(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;c[d>>2]=c[e>>2];Kd(c[(c[d>>2]|0)+20>>2]|0);Kd(c[d>>2]|0);i=b;return 0}function Jq(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;A=i;i=i+80|0;p=A+64|0;B=A+60|0;q=A+56|0;r=A+52|0;s=A+48|0;t=A+44|0;u=A+40|0;v=A+36|0;m=A+32|0;k=A+28|0;y=A+24|0;w=A+20|0;z=A+16|0;x=A+12|0;o=A+8|0;l=A+4|0;n=A;c[B>>2]=b;c[q>>2]=e;c[r>>2]=f;c[s>>2]=g;c[t>>2]=h;c[u>>2]=j;c[v>>2]=c[B>>2];c[m>>2]=c[c[v>>2]>>2];c[k>>2]=0;c[w>>2]=(c[(c[v>>2]|0)+4>>2]|0)+(c[(c[v>>2]|0)+12>>2]|0);c[z>>2]=c[w>>2];c[o>>2]=(c[(c[v>>2]|0)+4>>2]|0)+(c[(c[v>>2]|0)+8>>2]|0);while(1){if((c[w>>2]|0)>>>0>=(c[o>>2]|0)>>>0)break;B=c[w>>2]|0;c[w>>2]=B+1;c[k>>2]=d[B>>0];do if((c[k>>2]|0)>=192){c[k>>2]=d[26420+((c[k>>2]|0)-192)>>0];while(1){if((c[w>>2]|0)!=(c[o>>2]|0))b=((d[c[w>>2]>>0]|0)&192|0)==128;else b=0;e=c[k>>2]|0;if(!b)break;B=c[w>>2]|0;c[w>>2]=B+1;c[k>>2]=(e<<6)+(63&(d[B>>0]|0))}if(((e|0)>=128?(c[k>>2]&-2048|0)!=55296:0)?(c[k>>2]&-2|0)!=65534:0)break;c[k>>2]=65533}while(0);if(Kq(c[m>>2]|0,c[k>>2]|0)|0)break;c[z>>2]=c[w>>2]}if((c[z>>2]|0)>>>0>=(c[o>>2]|0)>>>0){c[p>>2]=101;B=c[p>>2]|0;i=A;return B|0}c[y>>2]=c[(c[v>>2]|0)+20>>2];while(1){if(((c[y>>2]|0)-(c[(c[v>>2]|0)+20>>2]|0)|0)>=((c[(c[v>>2]|0)+24>>2]|0)-4|0)){c[n>>2]=Ld(c[(c[v>>2]|0)+20>>2]|0,(c[(c[v>>2]|0)+24>>2]|0)+64|0)|0;if(!(c[n>>2]|0)){b=20;break}c[y>>2]=(c[n>>2]|0)+((c[y>>2]|0)-(c[(c[v>>2]|0)+20>>2]|0));c[(c[v>>2]|0)+20>>2]=c[n>>2];B=(c[v>>2]|0)+24|0;c[B>>2]=(c[B>>2]|0)+64}c[x>>2]=c[w>>2];c[l>>2]=Lq(c[k>>2]|0,c[(c[m>>2]|0)+4>>2]|0)|0;do if(c[l>>2]|0){b=c[l>>2]|0;if((c[l>>2]|0)<128){B=c[y>>2]|0;c[y>>2]=B+1;a[B>>0]=b;break}e=c[l>>2]|0;if((b|0)<2048){f=c[y>>2]|0;c[y>>2]=f+1;a[f>>0]=192+(e>>6&31);f=128+(c[l>>2]&63)&255;B=c[y>>2]|0;c[y>>2]=B+1;a[B>>0]=f;break}b=c[l>>2]|0;if((e|0)<65536){B=c[y>>2]|0;c[y>>2]=B+1;a[B>>0]=224+(b>>12&15);B=128+(c[l>>2]>>6&63)&255;f=c[y>>2]|0;c[y>>2]=f+1;a[f>>0]=B;f=128+(c[l>>2]&63)&255;B=c[y>>2]|0;c[y>>2]=B+1;a[B>>0]=f;break}else{f=c[y>>2]|0;c[y>>2]=f+1;a[f>>0]=240+(b>>18&7);f=128+(c[l>>2]>>12&63)&255;B=c[y>>2]|0;c[y>>2]=B+1;a[B>>0]=f;B=128+(c[l>>2]>>6&63)&255;f=c[y>>2]|0;c[y>>2]=f+1;a[f>>0]=B;f=128+(c[l>>2]&63)&255;B=c[y>>2]|0;c[y>>2]=B+1;a[B>>0]=f;break}}while(0);if((c[w>>2]|0)>>>0>=(c[o>>2]|0)>>>0){b=43;break}B=c[w>>2]|0;c[w>>2]=B+1;c[k>>2]=d[B>>0];do if((c[k>>2]|0)>=192){c[k>>2]=d[26420+((c[k>>2]|0)-192)>>0];while(1){if((c[w>>2]|0)!=(c[o>>2]|0))e=((d[c[w>>2]>>0]|0)&192|0)==128;else e=0;b=c[k>>2]|0;if(!e)break;B=c[w>>2]|0;c[w>>2]=B+1;c[k>>2]=(b<<6)+(63&(d[B>>0]|0))}if(((b|0)>=128?(c[k>>2]&-2048|0)!=55296:0)?(c[k>>2]&-2|0)!=65534:0)break;c[k>>2]=65533}while(0);if(Kq(c[m>>2]|0,c[k>>2]|0)|0)continue;if(!(Mq(c[k>>2]|0)|0)){b=43;break}}if((b|0)==20){c[p>>2]=7;B=c[p>>2]|0;i=A;return B|0}else if((b|0)==43){c[(c[v>>2]|0)+12>>2]=(c[w>>2]|0)-(c[(c[v>>2]|0)+4>>2]|0);c[c[q>>2]>>2]=c[(c[v>>2]|0)+20>>2];c[c[r>>2]>>2]=(c[y>>2]|0)-(c[(c[v>>2]|0)+20>>2]|0);c[c[s>>2]>>2]=(c[z>>2]|0)-(c[(c[v>>2]|0)+4>>2]|0);c[c[t>>2]>>2]=(c[x>>2]|0)-(c[(c[v>>2]|0)+4>>2]|0);z=(c[v>>2]|0)+16|0;B=c[z>>2]|0;c[z>>2]=B+1;c[c[u>>2]>>2]=B;c[p>>2]=0;B=c[p>>2]|0;i=A;return B|0}return 0}function Kq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;a=Oq(c[e>>2]|0)|0;a=a^(Pq(c[f>>2]|0,c[e>>2]|0)|0);i=d;return a|0}function Lq(a,b){a=a|0;b=b|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+48|0;f=p+32|0;g=p+28|0;o=p+24|0;j=p+20|0;k=p+16|0;l=p+12|0;m=p+8|0;h=p+4|0;n=p;c[f>>2]=a;c[g>>2]=b;c[o>>2]=c[f>>2];b=c[f>>2]|0;if((c[f>>2]|0)<128){if(!((b|0)>=65&(c[f>>2]|0)<=90)){o=c[o>>2]|0;i=p;return o|0}c[o>>2]=(c[f>>2]|0)+32;o=c[o>>2]|0;i=p;return o|0}if((b|0)>=65536){if(!((c[f>>2]|0)>=66560&(c[f>>2]|0)<66600)){o=c[o>>2]|0;i=p;return o|0}c[o>>2]=(c[f>>2]|0)+40;o=c[o>>2]|0;i=p;return o|0}c[j>>2]=162;c[k>>2]=0;c[l>>2]=-1;while(1){if((c[j>>2]|0)<(c[k>>2]|0))break;c[m>>2]=((c[j>>2]|0)+(c[k>>2]|0)|0)/2|0;c[h>>2]=(c[f>>2]|0)-(e[10902+(c[m>>2]<<2)>>1]|0);b=c[m>>2]|0;if((c[h>>2]|0)>=0){c[l>>2]=b;c[k>>2]=(c[m>>2]|0)+1;continue}else{c[j>>2]=b-1;continue}}if(((c[l>>2]|0)>=0?(c[n>>2]=10902+(c[l>>2]<<2),(c[f>>2]|0)<((e[c[n>>2]>>1]|0)+(d[(c[n>>2]|0)+3>>0]|0)|0)):0)?0==(1&(d[(c[n>>2]|0)+2>>0]|0)&((e[c[n>>2]>>1]|0)^c[f>>2])|0):0)c[o>>2]=(c[f>>2]|0)+(e[11554+((d[(c[n>>2]|0)+2>>0]|0)>>1<<1)>>1]|0)&65535;if(!(c[g>>2]|0)){o=c[o>>2]|0;i=p;return o|0}c[o>>2]=Nq(c[o>>2]|0)|0;o=c[o>>2]|0;i=p;return o|0}function Mq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=i;i=i+16|0;f=g+12|0;b=g+8|0;d=g+4|0;e=g;c[b>>2]=a;c[d>>2]=134389727;c[e>>2]=221688;if((c[b>>2]|0)<768|(c[b>>2]|0)>817){c[f>>2]=0;f=c[f>>2]|0;i=g;return f|0}if((c[b>>2]|0)<800)b=c[d>>2]&1<<(c[b>>2]|0)-768;else b=c[e>>2]&1<<(c[b>>2]|0)-768-32;c[f>>2]=b;f=c[f>>2]|0;i=g;return f|0}function Nq(b){b=b|0;var d=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+336|0;g=p+20|0;j=p+24|0;h=p+226|0;o=p+16|0;m=p+12|0;k=p+8|0;l=p+4|0;n=p;c[g>>2]=b;iR(j|0,11708,202)|0;b=h;d=26484;f=b+101|0;do{a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}while((b|0)<(f|0));c[o>>2]=c[g>>2]<<3|7;c[m>>2]=0;c[k>>2]=100;c[l>>2]=0;while(1){if((c[k>>2]|0)<(c[l>>2]|0))break;c[n>>2]=((c[k>>2]|0)+(c[l>>2]|0)|0)/2|0;b=c[n>>2]|0;if((c[o>>2]|0)>>>0>=(e[j+(c[n>>2]<<1)>>1]|0)>>>0){c[m>>2]=b;c[l>>2]=(c[n>>2]|0)+1;continue}else{c[k>>2]=b-1;continue}}if((c[g>>2]|0)>((e[j+(c[m>>2]<<1)>>1]>>3)+(e[j+(c[m>>2]<<1)>>1]&7)|0)){o=c[g>>2]|0;i=p;return o|0}else{o=a[h+(c[m>>2]|0)>>0]|0;i=p;return o|0}return 0}function Oq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;b=k+24|0;d=k+20|0;j=k+16|0;g=k+12|0;e=k+8|0;f=k+4|0;h=k;c[d>>2]=a;a=c[d>>2]|0;if((c[d>>2]|0)<128){c[b>>2]=(c[2340+(a>>5<<2)>>2]&1<<(c[d>>2]&31)|0)==0&1;j=c[b>>2]|0;i=k;return j|0}if((a|0)>=4194304){c[b>>2]=1;j=c[b>>2]|0;i=k;return j|0}c[j>>2]=c[d>>2]<<10|1023;c[g>>2]=0;c[e>>2]=405;c[f>>2]=0;while(1){if((c[e>>2]|0)<(c[f>>2]|0))break;c[h>>2]=((c[e>>2]|0)+(c[f>>2]|0)|0)/2|0;a=c[h>>2]|0;if((c[j>>2]|0)>>>0>=(c[2356+(c[h>>2]<<2)>>2]|0)>>>0){c[g>>2]=a;c[f>>2]=(c[h>>2]|0)+1;continue}else{c[e>>2]=a-1;continue}}c[b>>2]=(c[d>>2]|0)>>>0>=(((c[2356+(c[g>>2]<<2)>>2]|0)>>>10)+(c[2356+(c[g>>2]<<2)>>2]&1023)|0)>>>0&1;j=c[b>>2]|0;i=k;return j|0}function Pq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;e=l+24|0;d=l+20|0;f=l+16|0;g=l+12|0;j=l+8|0;h=l+4|0;k=l;c[d>>2]=a;c[f>>2]=b;a:do if((c[(c[d>>2]|0)+8>>2]|0)>0){c[g>>2]=c[(c[d>>2]|0)+12>>2];c[j>>2]=0;c[h>>2]=(c[(c[d>>2]|0)+8>>2]|0)-1;while(1){if((c[h>>2]|0)<(c[j>>2]|0))break a;c[k>>2]=((c[h>>2]|0)+(c[j>>2]|0)|0)/2|0;if((c[f>>2]|0)==(c[(c[g>>2]|0)+(c[k>>2]<<2)>>2]|0))break;d=c[k>>2]|0;if((c[f>>2]|0)>(c[(c[g>>2]|0)+(c[k>>2]<<2)>>2]|0)){c[j>>2]=d+1;continue}else{c[h>>2]=d-1;continue}}c[e>>2]=1;k=c[e>>2]|0;i=l;return k|0}while(0);c[e>>2]=0;k=c[e>>2]|0;i=l;return k|0}function Qq(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=i;i=i+64|0;j=t+48|0;k=t+44|0;l=t+40|0;g=t+36|0;u=t+32|0;r=t+28|0;s=t+24|0;o=t+20|0;h=t+16|0;m=t+12|0;q=t+8|0;n=t+4|0;p=t;c[k>>2]=a;c[l>>2]=b;c[g>>2]=e;c[u>>2]=f;c[r>>2]=c[g>>2];c[s>>2]=(c[r>>2]|0)+(c[u>>2]|0);c[h>>2]=0;while(1){if((c[r>>2]|0)>>>0>=(c[s>>2]|0)>>>0)break;u=c[r>>2]|0;c[r>>2]=u+1;c[o>>2]=d[u>>0];do if((c[o>>2]|0)>=192){c[o>>2]=d[26420+((c[o>>2]|0)-192)>>0];while(1){if((c[r>>2]|0)!=(c[s>>2]|0))b=((d[c[r>>2]>>0]|0)&192|0)==128;else b=0;f=c[o>>2]|0;if(!b)break;u=c[r>>2]|0;c[r>>2]=u+1;c[o>>2]=(f<<6)+(63&(d[u>>0]|0))}if(((f|0)>=128?(c[o>>2]&-2048|0)!=55296:0)?(c[o>>2]&-2|0)!=65534:0)break;c[o>>2]=65533}while(0);u=Oq(c[o>>2]|0)|0;if((u|0)==(c[l>>2]|0))continue;if(Mq(c[o>>2]|0)|0)continue;c[h>>2]=(c[h>>2]|0)+1}if(c[h>>2]|0){c[m>>2]=Ld(c[(c[k>>2]|0)+12>>2]|0,(c[(c[k>>2]|0)+8>>2]|0)+(c[h>>2]|0)<<2)|0;if(!(c[m>>2]|0)){c[j>>2]=7;u=c[j>>2]|0;i=t;return u|0}c[q>>2]=c[(c[k>>2]|0)+8>>2];c[r>>2]=c[g>>2];while(1){if((c[r>>2]|0)>>>0>=(c[s>>2]|0)>>>0)break;u=c[r>>2]|0;c[r>>2]=u+1;c[o>>2]=d[u>>0];do if((c[o>>2]|0)>=192){c[o>>2]=d[26420+((c[o>>2]|0)-192)>>0];while(1){if((c[r>>2]|0)!=(c[s>>2]|0))b=((d[c[r>>2]>>0]|0)&192|0)==128;else b=0;f=c[o>>2]|0;if(!b)break;u=c[r>>2]|0;c[r>>2]=u+1;c[o>>2]=(f<<6)+(63&(d[u>>0]|0))}if(((f|0)>=128?(c[o>>2]&-2048|0)!=55296:0)?(c[o>>2]&-2|0)!=65534:0)break;c[o>>2]=65533}while(0);u=Oq(c[o>>2]|0)|0;if((u|0)==(c[l>>2]|0))continue;if(Mq(c[o>>2]|0)|0)continue;c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[q>>2]|0))break;if((c[(c[m>>2]|0)+(c[n>>2]<<2)>>2]|0)>=(c[o>>2]|0))break;c[n>>2]=(c[n>>2]|0)+1}c[p>>2]=c[q>>2];while(1){if((c[p>>2]|0)<=(c[n>>2]|0))break;c[(c[m>>2]|0)+(c[p>>2]<<2)>>2]=c[(c[m>>2]|0)+((c[p>>2]|0)-1<<2)>>2];c[p>>2]=(c[p>>2]|0)+-1}c[(c[m>>2]|0)+(c[n>>2]<<2)>>2]=c[o>>2];c[q>>2]=(c[q>>2]|0)+1}c[(c[k>>2]|0)+12>>2]=c[m>>2];c[(c[k>>2]|0)+8>>2]=c[q>>2]}c[j>>2]=0;u=c[j>>2]|0;i=t;return u|0}function Rq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;h=i;i=i+16|0;j=h+12|0;e=h+8|0;f=h+4|0;g=h;c[j>>2]=a;c[e>>2]=b;c[f>>2]=d;c[g>>2]=c[(c[j>>2]|0)+4>>2];kg(c[j>>2]|0);if(!((c[e>>2]|0)!=0?(c[(c[g>>2]|0)+48>>2]|0)==0:0)){j=c[g>>2]|0;j=j+48|0;j=c[j>>2]|0;i=h;return j|0}j=c[e>>2]|0;j=ph(0,j,((j|0)<0)<<31>>31)|0;c[(c[g>>2]|0)+48>>2]=j;c[(c[g>>2]|0)+52>>2]=c[f>>2];j=c[g>>2]|0;j=j+48|0;j=c[j>>2]|0;i=h;return j|0}function Sq(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;b=e;c[b>>2]=a;i=e;return(d[(c[b>>2]|0)+64>>0]|0|0)==2|0}function Tq(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i;i=i+16|0;l=g+12|0;k=g+8|0;j=g+4|0;h=g;c[l>>2]=b;c[k>>2]=d;c[j>>2]=e;c[h>>2]=f;a[c[h>>2]>>0]=0;f=Wb[c[(c[l>>2]|0)+36>>2]&255](c[l>>2]|0,c[k>>2]|0,c[j>>2]|0,c[h>>2]|0)|0;i=g;return f|0}function Uq(b){b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f+4|0;e=f;c[d>>2]=b;c[e>>2]=It(c[d>>2]|0)|0;if(!(a[c[e>>2]>>0]|0)){i=f;return}a[c[e>>2]>>0]=0;if((Jt(c[d>>2]|0)|0)<=1){i=f;return}Kt(c[e>>2]|0)|0;i=f;return}function Vq(d,e,f,g,h,j,k){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;L=i;i=i+112|0;s=L+96|0;t=L+92|0;u=L+88|0;v=L+84|0;w=L+80|0;l=L+76|0;x=L+72|0;y=L+68|0;o=L+64|0;D=L+60|0;E=L+56|0;H=L+52|0;B=L+48|0;F=L+44|0;m=L+40|0;J=L+36|0;C=L+32|0;I=L+28|0;p=L+24|0;G=L+20|0;r=L+16|0;n=L+12|0;q=L+8|0;z=L+4|0;A=L;c[t>>2]=d;c[u>>2]=e;c[v>>2]=f;c[w>>2]=g;c[l>>2]=h;c[x>>2]=j;c[y>>2]=k;c[D>>2]=0;c[E>>2]=0;c[H>>2]=0;c[B>>2]=0;c[F>>2]=0;c[J>>2]=0;c[C>>2]=0;c[I>>2]=(c[l>>2]&1|0)==0&1;c[p>>2]=it()|0;c[G>>2]=1024;c[r>>2]=0;c[n>>2]=0;f=c[(c[t>>2]|0)+4>>2]|0;if((f|0)>(Jr()|0))c[m>>2]=(c[(c[t>>2]|0)+4>>2]|0)+7&-8;else c[m>>2]=(Jr()|0)+7&-8;c[c[u>>2]>>2]=0;do if(((c[l>>2]&2|0)!=0?(c[B>>2]=1,(c[v>>2]|0)!=0):0)?(a[c[v>>2]>>0]|0)!=0:0){c[J>>2]=nh(0,c[v>>2]|0)|0;if(c[J>>2]|0){c[C>>2]=If(c[J>>2]|0)|0;c[v>>2]=0;break}c[s>>2]=7;K=c[s>>2]|0;i=L;return K|0}while(0);if((c[v>>2]|0)!=0?(a[c[v>>2]>>0]|0)!=0:0){c[C>>2]=(c[(c[t>>2]|0)+8>>2]|0)+1;f=c[C>>2]<<1;c[J>>2]=yh(0,f,((f|0)<0)<<31>>31)|0;if(!(c[J>>2]|0)){c[s>>2]=7;K=c[s>>2]|0;i=L;return K|0}a[c[J>>2]>>0]=0;c[E>>2]=Tq(c[t>>2]|0,c[v>>2]|0,c[C>>2]|0,c[J>>2]|0)|0;c[C>>2]=If(c[J>>2]|0)|0;f=(If(c[v>>2]|0)|0)+1|0;f=(c[v>>2]|0)+f|0;c[r>>2]=f;c[q>>2]=f;while(1){l=c[q>>2]|0;if(!(a[c[q>>2]>>0]|0))break;f=(If(l)|0)+1|0;c[q>>2]=(c[q>>2]|0)+f;f=(If(c[q>>2]|0)|0)+1|0;c[q>>2]=(c[q>>2]|0)+f}c[n>>2]=l+1-(c[r>>2]|0);if((c[E>>2]|0)==0?((c[C>>2]|0)+8|0)>(c[(c[t>>2]|0)+8>>2]|0):0)c[E>>2]=et(48375)|0;if(c[E>>2]|0){Sf(0,c[J>>2]|0);c[s>>2]=c[E>>2];K=c[s>>2]|0;i=L;return K|0}}c[o>>2]=ig(224+((c[p>>2]|0)+7&-8)+((c[(c[t>>2]|0)+4>>2]|0)+7&-8)+(c[m>>2]<<1)+(c[C>>2]|0)+1+(c[n>>2]|0)+(c[C>>2]|0)+8+2+(c[C>>2]|0)+4+2|0,0)|0;if(!(c[o>>2]|0)){Sf(0,c[J>>2]|0);c[s>>2]=7;K=c[s>>2]|0;i=L;return K|0}c[D>>2]=c[o>>2];q=(c[o>>2]|0)+224|0;c[o>>2]=q;c[(c[D>>2]|0)+212>>2]=q;q=(c[o>>2]|0)+((c[p>>2]|0)+7&-8)|0;c[o>>2]=q;c[(c[D>>2]|0)+64>>2]=q;q=(c[o>>2]|0)+((c[(c[t>>2]|0)+4>>2]|0)+7&-8)|0;c[o>>2]=q;c[(c[D>>2]|0)+72>>2]=q;q=(c[o>>2]|0)+(c[m>>2]|0)|0;c[o>>2]=q;c[(c[D>>2]|0)+68>>2]=q;q=(c[o>>2]|0)+(c[m>>2]|0)|0;c[o>>2]=q;c[(c[D>>2]|0)+176>>2]=q;if(c[J>>2]|0){q=(c[o>>2]|0)+((c[C>>2]|0)+1+(c[n>>2]|0))|0;c[o>>2]=q;c[(c[D>>2]|0)+180>>2]=q;iR(c[(c[D>>2]|0)+176>>2]|0,c[J>>2]|0,c[C>>2]|0)|0;if(c[n>>2]|0)iR((c[(c[D>>2]|0)+176>>2]|0)+((c[C>>2]|0)+1)|0,c[r>>2]|0,c[n>>2]|0)|0;iR(c[(c[D>>2]|0)+180>>2]|0,c[J>>2]|0,c[C>>2]|0)|0;l=(c[(c[D>>2]|0)+180>>2]|0)+(c[C>>2]|0)|0;h=26868;g=l+10|0;do{a[l>>0]=a[h>>0]|0;l=l+1|0;h=h+1|0}while((l|0)<(g|0));c[(c[D>>2]|0)+220>>2]=(c[(c[D>>2]|0)+180>>2]|0)+((c[C>>2]|0)+8+1);iR(c[(c[D>>2]|0)+220>>2]|0,c[J>>2]|0,c[C>>2]|0)|0;C=(c[(c[D>>2]|0)+220>>2]|0)+(c[C>>2]|0)|0;a[C>>0]=a[26878]|0;a[C+1>>0]=a[26879]|0;a[C+2>>0]=a[26880]|0;a[C+3>>0]=a[26881]|0;a[C+4>>0]=a[26882]|0;Sf(0,c[J>>2]|0)}c[c[D>>2]>>2]=c[t>>2];c[(c[D>>2]|0)+152>>2]=c[x>>2];do if((c[v>>2]|0)!=0?(a[c[v>>2]>>0]|0)!=0:0){c[z>>2]=0;c[E>>2]=Vr(c[t>>2]|0,c[(c[D>>2]|0)+176>>2]|0,c[(c[D>>2]|0)+64>>2]|0,c[x>>2]|0,z)|0;c[F>>2]=c[z>>2]&1;if(!(c[E>>2]|0)){c[A>>2]=Sr(c[(c[D>>2]|0)+64>>2]|0)|0;do if((c[F>>2]|0)==0?(Rr(c[D>>2]|0),(c[G>>2]|0)>>>0<(c[(c[D>>2]|0)+156>>2]|0)>>>0):0)if((c[(c[D>>2]|0)+156>>2]|0)>>>0>8192){c[G>>2]=8192;break}else{c[G>>2]=c[(c[D>>2]|0)+156>>2];break}while(0);J=(Hf(c[v>>2]|0,26884,0)|0)&255;a[(c[D>>2]|0)+14>>0]=J;if((c[A>>2]&8192|0)==0?(Hf(c[v>>2]|0,26891,0)|0)==0:0)break;c[x>>2]=c[x>>2]|1;K=39}}else K=39;while(0);if((K|0)==39){c[H>>2]=1;a[(c[D>>2]|0)+17>>0]=1;a[(c[D>>2]|0)+18>>0]=4;a[(c[D>>2]|0)+14>>0]=1;c[F>>2]=c[x>>2]&1}if(!(c[E>>2]|0))c[E>>2]=Qi(c[D>>2]|0,G,-1)|0;if(!(c[E>>2]|0)){c[w>>2]=(c[w>>2]|0)+7&-8;c[E>>2]=kt(c[G>>2]|0,c[w>>2]|0,((c[B>>2]|0)!=0^1)&1,(c[B>>2]|0)!=0^1?186:0,c[D>>2]|0,c[(c[D>>2]|0)+212>>2]|0)|0}if(c[E>>2]|0){hr(c[(c[D>>2]|0)+64>>2]|0)|0;Wi(c[(c[D>>2]|0)+208>>2]|0);Kd(c[D>>2]|0);c[s>>2]=c[E>>2];K=c[s>>2]|0;i=L;return K|0}a[(c[D>>2]|0)+6>>0]=c[I>>2];c[(c[D>>2]|0)+164>>2]=1073741823;a[(c[D>>2]|0)+13>>0]=c[H>>2];a[(c[D>>2]|0)+4>>0]=c[H>>2];a[(c[D>>2]|0)+19>>0]=a[(c[D>>2]|0)+13>>0]|0;a[(c[D>>2]|0)+16>>0]=c[B>>2];a[(c[D>>2]|0)+15>>0]=c[F>>2];a[(c[D>>2]|0)+7>>0]=a[(c[D>>2]|0)+13>>0]|0;if(!(a[(c[D>>2]|0)+7>>0]|0)){a[(c[D>>2]|0)+8>>0]=1;a[(c[D>>2]|0)+9>>0]=0;a[(c[D>>2]|0)+12>>0]=2;a[(c[D>>2]|0)+11>>0]=34;a[(c[D>>2]|0)+10>>0]=2}b[(c[D>>2]|0)+148>>1]=c[w>>2];K=(c[D>>2]|0)+168|0;c[K>>2]=-1;c[K+4>>2]=-1;Rr(c[D>>2]|0);if(c[I>>2]|0){if(c[B>>2]|0)a[(c[D>>2]|0)+5>>0]=4}else a[(c[D>>2]|0)+5>>0]=2;c[(c[D>>2]|0)+204>>2]=c[y>>2];c[c[u>>2]>>2]=c[D>>2];c[s>>2]=0;K=c[s>>2]|0;i=L;return K|0}function Wq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e+8|0;g=e;c[f>>2]=a;a=g;c[a>>2]=b;c[a+4>>2]=d;b=g;d=c[b+4>>2]|0;a=(c[f>>2]|0)+136|0;c[a>>2]=c[b>>2];c[a+4>>2]=d;Xi(c[f>>2]|0);i=e;return}function Xq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;e=j+12|0;f=j+8|0;g=j+4|0;h=j;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[h>>2]=0;kR(c[g>>2]|0,0,c[f>>2]|0)|0;if(!(c[c[(c[e>>2]|0)+64>>2]>>2]|0)){h=c[h>>2]|0;i=j;return h|0}a=Wr(c[(c[e>>2]|0)+64>>2]|0,c[g>>2]|0,c[f>>2]|0,0,0)|0;c[h>>2]=a;c[h>>2]=(c[h>>2]|0)==522?0:a;h=c[h>>2]|0;i=j;return h|0}function Yq(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;c[d>>2]=c[e>>2];a=ht((c[(c[d>>2]|0)+4>>2]|0)+448|0)|0;i=b;return a|0}function Zq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;g=i;i=i+16|0;e=g+12|0;j=g+8|0;h=g+4|0;f=g;c[e>>2]=a;c[j>>2]=b;c[h>>2]=d;c[(c[e>>2]|0)+184>>2]=c[j>>2];c[(c[e>>2]|0)+188>>2]=c[h>>2];if(!(c[c[(c[e>>2]|0)+64>>2]>>2]|0)){i=g;return}c[f>>2]=(c[e>>2]|0)+184;Js(c[(c[e>>2]|0)+64>>2]|0,15,c[f>>2]|0);i=g;return}function _q(b){b=b|0;var d=0,e=0;e=i;i=i+16|0;d=e;c[d>>2]=b;i=e;return a[(c[d>>2]|0)+15>>0]|0}function $q(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;b=e;c[b>>2]=a;i=e;return(d[c[b>>2]>>0]|0)<<24|(d[(c[b>>2]|0)+1>>0]|0)<<16|(d[(c[b>>2]|0)+2>>0]|0)<<8|(d[(c[b>>2]|0)+3>>0]|0)|0}function ar(b){b=b|0;var e=0,f=0,g=0;g=i;i=i+16|0;e=g+4|0;f=g;c[e>>2]=b;c[f>>2]=c[(c[e>>2]|0)+208>>2];Sj();br(c[e>>2]|0);a[(c[e>>2]|0)+4>>0]=0;cr(c[(c[e>>2]|0)+216>>2]|0,d[(c[e>>2]|0)+10>>0]|0,c[(c[e>>2]|0)+160>>2]|0,c[f>>2]|0)|0;c[(c[e>>2]|0)+216>>2]=0;Ui(c[e>>2]|0);b=c[e>>2]|0;if(a[(c[e>>2]|0)+16>>0]|0)dr(b);else{if(c[c[b+68>>2]>>2]|0){b=c[e>>2]|0;fr(b,er(c[e>>2]|0)|0)|0}gr(c[e>>2]|0)}Tj();hr(c[(c[e>>2]|0)+68>>2]|0)|0;hr(c[(c[e>>2]|0)+64>>2]|0)|0;Wi(c[f>>2]|0);ir(c[(c[e>>2]|0)+212>>2]|0);Kd(c[e>>2]|0);i=g;return 0}function br(a){a=a|0;var b=0,d=0,e=0,f=0;e=i;i=i+16|0;f=e+8|0;b=e+4|0;d=e;c[f>>2]=a;c[b>>2]=c[(c[f>>2]|0)+144>>2];while(1){if(!(c[b>>2]|0))break;c[d>>2]=c[(c[b>>2]|0)+12>>2];Kd(c[b>>2]|0);c[b>>2]=c[d>>2]}i=e;return}function cr(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;h=p+24|0;j=p+20|0;k=p+16|0;l=p+12|0;o=p+8|0;n=p+4|0;m=p;c[h>>2]=b;c[j>>2]=e;c[k>>2]=f;c[l>>2]=g;c[o>>2]=0;if(!(c[h>>2]|0)){g=c[o>>2]|0;i=p;return g|0}c[n>>2]=0;c[o>>2]=Hs(c[(c[h>>2]|0)+4>>2]|0,4)|0;do if(!(c[o>>2]|0)){if(!(d[(c[h>>2]|0)+43>>0]|0))a[(c[h>>2]|0)+43>>0]=1;c[o>>2]=Is(c[h>>2]|0,0,0,0,c[j>>2]|0,c[k>>2]|0,c[l>>2]|0,0,0)|0;if(!(c[o>>2]|0)){c[m>>2]=-1;Js(c[(c[h>>2]|0)+4>>2]|0,10,m);if((c[m>>2]|0)!=1){c[n>>2]=1;break}g=(c[h>>2]|0)+16|0;e=c[g+4>>2]|0;if((e|0)>0|(e|0)==0&(c[g>>2]|0)>>>0>=0)Ks(c[h>>2]|0,0,0)}}while(0);Ls(c[h>>2]|0,c[n>>2]|0);hr(c[(c[h>>2]|0)+8>>2]|0)|0;if(c[n>>2]|0){Sj();qr(c[c[h>>2]>>2]|0,c[(c[h>>2]|0)+108>>2]|0,0)|0;Tj()}Kd(c[(c[h>>2]|0)+32>>2]|0);Kd(c[h>>2]|0);g=c[o>>2]|0;i=p;return g|0}function dr(b){b=b|0;var e=0,f=0,g=0,h=0,j=0;h=i;i=i+16|0;e=h+8|0;g=h+4|0;f=h;c[e>>2]=b;kj(c[(c[e>>2]|0)+60>>2]|0);c[(c[e>>2]|0)+60>>2]=0;lr(c[e>>2]|0);j=(sr(c[e>>2]|0)|0)!=0;b=c[e>>2]|0;if(!j){if(!(a[b+4>>0]|0)){if(c[c[(c[e>>2]|0)+64>>2]>>2]|0)b=Sr(c[(c[e>>2]|0)+64>>2]|0)|0;else b=0;c[f>>2]=b;if(!(0!=(c[f>>2]&2048|0)?1==(d[(c[e>>2]|0)+5>>0]&5|0):0))hr(c[(c[e>>2]|0)+68>>2]|0)|0;c[g>>2]=wr(c[e>>2]|0,0)|0;if((c[g>>2]|0)!=0?(d[(c[e>>2]|0)+17>>0]|0)==6:0)a[(c[e>>2]|0)+18>>0]=5;a[(c[e>>2]|0)+19>>0]=0;a[(c[e>>2]|0)+17>>0]=0}}else{Gs(c[b+216>>2]|0);a[(c[e>>2]|0)+17>>0]=0}if(!(c[(c[e>>2]|0)+44>>2]|0)){j=c[e>>2]|0;j=j+80|0;g=j;c[g>>2]=0;j=j+4|0;c[j>>2]=0;j=c[e>>2]|0;j=j+88|0;g=j;c[g>>2]=0;j=j+4|0;c[j>>2]=0;j=c[e>>2]|0;j=j+20|0;a[j>>0]=0;i=h;return}Ui(c[e>>2]|0);a[(c[e>>2]|0)+19>>0]=a[(c[e>>2]|0)+13>>0]|0;a[(c[e>>2]|0)+17>>0]=0;c[(c[e>>2]|0)+44>>2]=0;j=c[e>>2]|0;j=j+80|0;g=j;c[g>>2]=0;j=j+4|0;c[j>>2]=0;j=c[e>>2]|0;j=j+88|0;g=j;c[g>>2]=0;j=j+4|0;c[j>>2]=0;j=c[e>>2]|0;j=j+20|0;a[j>>0]=0;i=h;return}function er(b){b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f+4|0;e=f;c[d>>2]=b;c[e>>2]=0;if(!(a[(c[d>>2]|0)+7>>0]|0))c[e>>2]=or(c[(c[d>>2]|0)+68>>2]|0,2)|0;if(c[e>>2]|0){e=c[e>>2]|0;i=f;return e|0}c[e>>2]=Si(c[(c[d>>2]|0)+68>>2]|0,(c[d>>2]|0)+88|0)|0;e=c[e>>2]|0;i=f;return e|0}function fr(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+16|0;e=g+8|0;f=g+4|0;h=g;c[e>>2]=b;c[f>>2]=d;c[h>>2]=c[f>>2]&255;if(!((c[h>>2]|0)==13|(c[h>>2]|0)==10)){h=c[f>>2]|0;i=g;return h|0}c[(c[e>>2]|0)+44>>2]=c[f>>2];a[(c[e>>2]|0)+17>>0]=6;h=c[f>>2]|0;i=g;return h|0}function gr(b){b=b|0;var e=0,f=0;f=i;i=i+16|0;e=f;c[e>>2]=b;do if((d[(c[e>>2]|0)+17>>0]|0)!=6?(d[(c[e>>2]|0)+17>>0]|0)!=0:0){if((d[(c[e>>2]|0)+17>>0]|0)>=2){Sj();jr(c[e>>2]|0)|0;Tj();break}if(!(a[(c[e>>2]|0)+4>>0]|0))kr(c[e>>2]|0,0,0)|0}while(0);dr(c[e>>2]|0);i=f;return}function hr(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;c[d>>2]=0;if(!(c[c[b>>2]>>2]|0)){d=c[d>>2]|0;i=e;return d|0}c[d>>2]=Tb[c[(c[c[b>>2]>>2]|0)+4>>2]&255](c[b>>2]|0)|0;c[c[b>>2]>>2]=0;d=c[d>>2]|0;i=e;return d|0}function ir(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;Qb[c[156>>2]&255](c[(c[d>>2]|0)+44>>2]|0);i=b;return}function jr(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;e=k+16|0;f=k+12|0;h=k+8|0;j=k+4|0;g=k;c[f>>2]=b;c[h>>2]=0;b=c[f>>2]|0;if((d[(c[f>>2]|0)+17>>0]|0)==6){c[e>>2]=c[b+44>>2];j=c[e>>2]|0;i=k;return j|0}if((d[b+17>>0]|0)<=1){c[e>>2]=0;j=c[e>>2]|0;i=k;return j|0}l=(sr(c[f>>2]|0)|0)!=0;b=c[f>>2]|0;do if(l){c[h>>2]=Kr(b,2,-1)|0;c[j>>2]=kr(c[f>>2]|0,d[(c[f>>2]|0)+20>>0]|0,0)|0;if(!(c[h>>2]|0))c[h>>2]=c[j>>2]}else{if((c[c[b+68>>2]>>2]|0)!=0?(d[(c[f>>2]|0)+17>>0]|0)!=2:0){
  53. c[h>>2]=Lr(c[f>>2]|0,0)|0;break}c[g>>2]=d[(c[f>>2]|0)+17>>0];c[h>>2]=kr(c[f>>2]|0,0,0)|0;if((c[g>>2]|0)>2?(a[(c[f>>2]|0)+16>>0]|0)==0:0){c[(c[f>>2]|0)+44>>2]=4;a[(c[f>>2]|0)+17>>0]=6;c[e>>2]=c[h>>2];l=c[e>>2]|0;i=k;return l|0}}while(0);c[e>>2]=fr(c[f>>2]|0,c[h>>2]|0)|0;l=c[e>>2]|0;i=k;return l|0}function kr(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;g=o+24|0;h=o+20|0;j=o+16|0;k=o+12|0;m=o+8|0;n=o+4|0;l=o;c[h>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=0;c[n>>2]=0;if((d[(c[h>>2]|0)+17>>0]|0)<2?(d[(c[h>>2]|0)+18>>0]|0)<2:0){c[g>>2]=0;n=c[g>>2]|0;i=o;return n|0}lr(c[h>>2]|0);a:do if(c[c[(c[h>>2]|0)+68>>2]>>2]|0){b=(mr(c[(c[h>>2]|0)+68>>2]|0)|0)!=0;f=c[h>>2]|0;if(b){hr(c[f+68>>2]|0)|0;break}e=c[h>>2]|0;if((d[f+5>>0]|0)==3){l=e+80|0;if(!((c[l>>2]|0)==0&(c[l+4>>2]|0)==0)){c[m>>2]=nr(c[(c[h>>2]|0)+68>>2]|0,0,0)|0;if((c[m>>2]|0)==0?(d[(c[h>>2]|0)+8>>0]|0)!=0:0)c[m>>2]=or(c[(c[h>>2]|0)+68>>2]|0,d[(c[h>>2]|0)+12>>0]|0)|0}else c[m>>2]=0;l=(c[h>>2]|0)+80|0;c[l>>2]=0;c[l+4>>2]=0;break}else{do if((d[e+5>>0]|0)!=1){if((d[(c[h>>2]|0)+4>>0]|0)!=0?(d[(c[h>>2]|0)+5>>0]|0)!=5:0)break;c[l>>2]=((a[(c[h>>2]|0)+13>>0]|0)!=0?0:1)&1;hr(c[(c[h>>2]|0)+68>>2]|0)|0;if(!(c[l>>2]|0))break a;c[m>>2]=qr(c[c[h>>2]>>2]|0,c[(c[h>>2]|0)+180>>2]|0,d[(c[h>>2]|0)+9>>0]|0)|0;break a}while(0);c[m>>2]=pr(c[h>>2]|0,c[j>>2]|0)|0;l=(c[h>>2]|0)+80|0;c[l>>2]=0;c[l+4>>2]=0;break}}while(0);kj(c[(c[h>>2]|0)+60>>2]|0);c[(c[h>>2]|0)+60>>2]=0;c[(c[h>>2]|0)+48>>2]=0;rr(c[(c[h>>2]|0)+212>>2]|0);aj(c[(c[h>>2]|0)+212>>2]|0,c[(c[h>>2]|0)+28>>2]|0);if(!(sr(c[h>>2]|0)|0)){if((c[m>>2]|0)==0&(c[k>>2]|0)!=0?(c[(c[h>>2]|0)+36>>2]|0)>>>0>(c[(c[h>>2]|0)+28>>2]|0)>>>0:0)c[m>>2]=ur(c[h>>2]|0,c[(c[h>>2]|0)+28>>2]|0)|0}else c[n>>2]=tr(c[(c[h>>2]|0)+216>>2]|0)|0;if((c[m>>2]|0)==0&(c[k>>2]|0)!=0?(c[c[(c[h>>2]|0)+64>>2]>>2]|0)!=0:0){l=vi(c[(c[h>>2]|0)+64>>2]|0,22,0)|0;c[m>>2]=l;c[m>>2]=(c[m>>2]|0)==12?0:l}do if(!(a[(c[h>>2]|0)+4>>0]|0)){if((sr(c[h>>2]|0)|0)!=0?(vr(c[(c[h>>2]|0)+216>>2]|0,0)|0)==0:0)break;c[n>>2]=wr(c[h>>2]|0,1)|0;a[(c[h>>2]|0)+19>>0]=0}while(0);a[(c[h>>2]|0)+17>>0]=1;a[(c[h>>2]|0)+20>>0]=0;c[g>>2]=(c[m>>2]|0)==0?c[n>>2]|0:c[m>>2]|0;n=c[g>>2]|0;i=o;return n|0}function lr(b){b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f+4|0;e=f;c[d>>2]=b;c[e>>2]=0;while(1){if((c[e>>2]|0)>=(c[(c[d>>2]|0)+104>>2]|0))break;kj(c[(c[(c[d>>2]|0)+100>>2]|0)+((c[e>>2]|0)*48|0)+16>>2]|0);c[e>>2]=(c[e>>2]|0)+1}if(!((a[(c[d>>2]|0)+4>>0]|0)!=0?(mr(c[(c[d>>2]|0)+72>>2]|0)|0)==0:0))hr(c[(c[d>>2]|0)+72>>2]|0)|0;Kd(c[(c[d>>2]|0)+100>>2]|0);c[(c[d>>2]|0)+100>>2]=0;c[(c[d>>2]|0)+104>>2]=0;c[(c[d>>2]|0)+56>>2]=0;i=f;return}function mr(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return(c[c[b>>2]>>2]|0)==4836|0}function nr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e+8|0;g=e;c[f>>2]=a;a=g;c[a>>2]=b;c[a+4>>2]=d;a=g;a=Ob[c[(c[c[f>>2]>>2]|0)+16>>2]&255](c[f>>2]|0,c[a>>2]|0,c[a+4>>2]|0)|0;i=e;return a|0}function or(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;a=Yb[c[(c[c[f>>2]>>2]|0)+20>>2]&255](c[f>>2]|0,c[e>>2]|0)|0;i=d;return a|0}function pr(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;l=i;i=i+32|0;f=l+24|0;g=l+20|0;j=l+16|0;h=l+8|0;k=l;c[f>>2]=b;c[g>>2]=e;c[j>>2]=0;b=(c[f>>2]|0)+80|0;if(!((c[b>>2]|0)!=0|(c[b+4>>2]|0)!=0)){k=c[j>>2]|0;i=l;return k|0}m=(c[f>>2]|0)+168|0;e=c[m+4>>2]|0;b=h;c[b>>2]=c[m>>2];c[b+4>>2]=e;b=h;e=c[(c[f>>2]|0)+68>>2]|0;if((c[g>>2]|0)!=0|(c[b>>2]|0)==0&(c[b+4>>2]|0)==0)c[j>>2]=nr(e,0,0)|0;else c[j>>2]=Fg(e,26703,28,0,0)|0;if((c[j>>2]|0)==0?(a[(c[f>>2]|0)+7>>0]|0)==0:0)c[j>>2]=or(c[(c[f>>2]|0)+68>>2]|0,16|d[(c[f>>2]|0)+12>>0])|0;m=h;g=c[m+4>>2]|0;if(!((c[j>>2]|0)==0&((g|0)>0|(g|0)==0&(c[m>>2]|0)>>>0>0))){m=c[j>>2]|0;i=l;return m|0}c[j>>2]=Si(c[(c[f>>2]|0)+68>>2]|0,k)|0;if(c[j>>2]|0){m=c[j>>2]|0;i=l;return m|0}b=c[k+4>>2]|0;m=h;g=c[m+4>>2]|0;if(!((b|0)>(g|0)|((b|0)==(g|0)?(c[k>>2]|0)>>>0>(c[m>>2]|0)>>>0:0))){m=c[j>>2]|0;i=l;return m|0}m=h;c[j>>2]=nr(c[(c[f>>2]|0)+68>>2]|0,c[m>>2]|0,c[m+4>>2]|0)|0;m=c[j>>2]|0;i=l;return m|0}function qr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;h=e+8|0;g=e+4|0;f=e;c[h>>2]=a;c[g>>2]=b;c[f>>2]=d;b=Ob[c[(c[h>>2]|0)+28>>2]&255](c[h>>2]|0,c[g>>2]|0,c[f>>2]|0)|0;i=e;return b|0}function rr(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;while(1){a=c[c[b>>2]>>2]|0;c[d>>2]=a;if(!a)break;bj(c[d>>2]|0)}i=e;return}function sr(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return(c[(c[b>>2]|0)+216>>2]|0)!=0|0}function tr(b){b=b|0;var d=0,e=0;e=i;i=i+16|0;d=e;c[d>>2]=b;if(!(a[(c[d>>2]|0)+44>>0]|0)){i=e;return 0}Br(c[d>>2]|0,0,1);a[(c[d>>2]|0)+44>>0]=0;c[(c[d>>2]|0)+104>>2]=0;a[(c[d>>2]|0)+47>>0]=0;i=e;return 0}function ur(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;m=i;i=i+48|0;e=m+32|0;f=m+28|0;k=m+24|0;g=m+8|0;h=m;l=m+20|0;j=m+16|0;c[e>>2]=a;c[f>>2]=b;c[k>>2]=0;if(!(c[c[(c[e>>2]|0)+64>>2]>>2]|0)){l=c[k>>2]|0;i=m;return l|0}if((d[(c[e>>2]|0)+17>>0]|0|0)<4?(d[(c[e>>2]|0)+17>>0]|0|0)!=0:0){l=c[k>>2]|0;i=m;return l|0}c[l>>2]=c[(c[e>>2]|0)+160>>2];c[k>>2]=Si(c[(c[e>>2]|0)+64>>2]|0,g)|0;b=c[l>>2]|0;b=rR(b|0,((b|0)<0)<<31>>31|0,c[f>>2]|0,0)|0;a=h;c[a>>2]=b;c[a+4>>2]=C;if(c[k>>2]|0){l=c[k>>2]|0;i=m;return l|0}b=g;a=h;if(!((c[b>>2]|0)!=(c[a>>2]|0)?1:(c[b+4>>2]|0)!=(c[a+4>>2]|0))){l=c[k>>2]|0;i=m;return l|0}b=g;o=c[b+4>>2]|0;a=h;n=c[a+4>>2]|0;if(!((o|0)>(n|0)|((o|0)==(n|0)?(c[b>>2]|0)>>>0>(c[a>>2]|0)>>>0:0))){b=g;n=c[l>>2]|0;n=gR(c[b>>2]|0,c[b+4>>2]|0,n|0,((n|0)<0)<<31>>31|0)|0;b=C;o=h;a=c[o+4>>2]|0;if((b|0)<(a|0)|((b|0)==(a|0)?n>>>0<=(c[o>>2]|0)>>>0:0)){c[j>>2]=c[(c[e>>2]|0)+208>>2];kR(c[j>>2]|0,0,c[l>>2]|0)|0;a=c[(c[e>>2]|0)+64>>2]|0;j=c[j>>2]|0;n=c[l>>2]|0;o=c[l>>2]|0;o=fR(c[h>>2]|0,c[h+4>>2]|0,o|0,((o|0)<0)<<31>>31|0)|0;c[k>>2]=Fg(a,j,n,o,C)|0}}else{o=h;c[k>>2]=nr(c[(c[e>>2]|0)+64>>2]|0,c[o>>2]|0,c[o+4>>2]|0)|0}if(c[k>>2]|0){o=c[k>>2]|0;i=m;return o|0}c[(c[e>>2]|0)+36>>2]=c[f>>2];o=c[k>>2]|0;i=m;return o|0}function vr(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0;k=i;i=i+16|0;g=k+8|0;h=k+4|0;j=k;c[g>>2]=e;c[h>>2]=f;if(c[h>>2]|0){f=c[g>>2]|0;if((c[h>>2]|0)>0){zr(f,3+(b[(c[g>>2]|0)+40>>1]|0)|0);a[(c[g>>2]|0)+43>>0]=1;c[j>>2]=1;j=c[j>>2]|0;i=k;return j|0}else{c[j>>2]=(d[f+43>>0]|0)==0&1;j=c[j>>2]|0;i=k;return j|0}}if(!(a[(c[g>>2]|0)+43>>0]|0)){c[j>>2]=0;j=c[j>>2]|0;i=k;return j|0}a[(c[g>>2]|0)+43>>0]=0;if(yr(c[g>>2]|0,3+(b[(c[g>>2]|0)+40>>1]|0)|0)|0)a[(c[g>>2]|0)+43>>0]=1;c[j>>2]=(d[(c[g>>2]|0)+43>>0]|0)==0&1;j=c[j>>2]|0;i=k;return j|0}function wr(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0;j=i;i=i+16|0;f=j+8|0;g=j+4|0;h=j;c[f>>2]=b;c[g>>2]=e;c[h>>2]=0;if(!(c[c[(c[f>>2]|0)+64>>2]>>2]|0)){h=c[h>>2]|0;i=j;return h|0}if(d[(c[f>>2]|0)+14>>0]|0)e=0;else e=xr(c[(c[f>>2]|0)+64>>2]|0,c[g>>2]|0)|0;c[h>>2]=e;if((d[(c[f>>2]|0)+18>>0]|0|0)==5){h=c[h>>2]|0;i=j;return h|0}a[(c[f>>2]|0)+18>>0]=c[g>>2];h=c[h>>2]|0;i=j;return h|0}function xr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;b=Yb[c[(c[c[f>>2]>>2]|0)+32>>2]&255](c[f>>2]|0,c[e>>2]|0)|0;i=d;return b|0}function yr(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;e=j+12|0;f=j+8|0;g=j+4|0;h=j;c[f>>2]=b;c[g>>2]=d;if(a[(c[f>>2]|0)+43>>0]|0){c[e>>2]=0;h=c[e>>2]|0;i=j;return h|0}else{c[h>>2]=Ar(c[(c[f>>2]|0)+4>>2]|0,c[g>>2]|0,1,6)|0;c[e>>2]=c[h>>2];h=c[e>>2]|0;i=j;return h|0}return 0}function zr(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=i;i=i+16|0;e=g+4|0;f=g;c[e>>2]=b;c[f>>2]=d;if(a[(c[e>>2]|0)+43>>0]|0){i=g;return}Ar(c[(c[e>>2]|0)+4>>2]|0,c[f>>2]|0,1,5)|0;i=g;return}function Ar(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+16|0;k=f+12|0;j=f+8|0;h=f+4|0;g=f;c[k>>2]=a;c[j>>2]=b;c[h>>2]=d;c[g>>2]=e;b=Wb[c[(c[c[k>>2]>>2]|0)+56>>2]&255](c[k>>2]|0,c[j>>2]|0,c[h>>2]|0,c[g>>2]|0)|0;i=f;return b|0}function Br(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;j=i;i=i+16|0;f=j+8|0;g=j+4|0;h=j;c[f>>2]=b;c[g>>2]=d;c[h>>2]=e;if(a[(c[f>>2]|0)+43>>0]|0){i=j;return}Ar(c[(c[f>>2]|0)+4>>2]|0,c[g>>2]|0,c[h>>2]|0,9)|0;i=j;return}function Cr(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;Fr(c[d>>2]|0,0,0)|0;i=b;return 0}function Dr(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;r=i;i=i+64|0;t=r+52|0;s=r+48|0;n=r+44|0;o=r+8|0;p=r+40|0;m=r+36|0;l=r+32|0;g=r+28|0;q=r+24|0;h=r;j=r+20|0;k=r+16|0;c[t>>2]=a;c[s>>2]=b;c[n>>2]=d;d=o;c[d>>2]=e;c[d+4>>2]=f;c[p>>2]=c[t>>2];c[m>>2]=c[s>>2];c[l>>2]=c[n>>2];d=(c[p>>2]|0)+24|0;a=o;b=o;a:do if(((c[d>>2]|0)!=(c[a>>2]|0)?1:(c[d+4>>2]|0)!=(c[a+4>>2]|0))|(c[b>>2]|0)==0&(c[b+4>>2]|0)==0){t=h;c[t>>2]=0;c[t+4>>2]=0;c[q>>2]=c[(c[p>>2]|0)+4>>2];while(1){if(!(c[q>>2]|0))break a;s=h;s=gR(c[s>>2]|0,c[s+4>>2]|0,1020,0)|0;a=C;t=o;b=c[t+4>>2]|0;if(!((a|0)<(b|0)|((a|0)==(b|0)?s>>>0<=(c[t>>2]|0)>>>0:0)))break a;s=h;s=gR(c[s>>2]|0,c[s+4>>2]|0,1020,0)|0;t=h;c[t>>2]=s;c[t+4>>2]=C;c[q>>2]=c[c[q>>2]>>2]}}else c[q>>2]=c[(c[p>>2]|0)+24+8>>2];while(0);t=o;t=qR(c[t>>2]|0,c[t+4>>2]|0,1020,0)|0;c[g>>2]=t;while(1){c[j>>2]=1020-(c[g>>2]|0);c[k>>2]=(c[l>>2]|0)<(1020-(c[g>>2]|0)|0)?c[l>>2]|0:1020-(c[g>>2]|0)|0;iR(c[m>>2]|0,(c[q>>2]|0)+4+(c[g>>2]|0)|0,c[k>>2]|0)|0;c[m>>2]=(c[m>>2]|0)+(c[k>>2]|0);c[l>>2]=(c[l>>2]|0)-(c[j>>2]|0);c[g>>2]=0;if((c[l>>2]|0)<0){e=10;break}t=c[c[q>>2]>>2]|0;c[q>>2]=t;if(!((t|0)!=0&(c[l>>2]|0)>0)){e=10;break}}if((e|0)==10){t=o;s=c[n>>2]|0;s=gR(c[t>>2]|0,c[t+4>>2]|0,s|0,((s|0)<0)<<31>>31|0)|0;t=(c[p>>2]|0)+24|0;c[t>>2]=s;c[t+4>>2]=C;c[(c[p>>2]|0)+24+8>>2]=c[q>>2];i=r;return 0}return 0}function Er(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;p=i;i=i+64|0;o=p+48|0;s=p+44|0;q=p+40|0;r=p+36|0;k=p+32|0;j=p+28|0;n=p+24|0;l=p+20|0;g=p+16|0;h=p+12|0;m=p+8|0;c[s>>2]=a;c[q>>2]=b;c[r>>2]=d;b=p;c[b>>2]=e;c[b+4>>2]=f;c[k>>2]=c[s>>2];c[j>>2]=c[r>>2];c[n>>2]=c[q>>2];while(1){if((c[j>>2]|0)<=0){e=11;break}c[l>>2]=c[(c[k>>2]|0)+8+8>>2];s=(c[k>>2]|0)+8|0;s=qR(c[s>>2]|0,c[s+4>>2]|0,1020,0)|0;c[g>>2]=s;c[h>>2]=(c[j>>2]|0)<(1020-(c[g>>2]|0)|0)?c[j>>2]|0:1020-(c[g>>2]|0)|0;if(!(c[g>>2]|0)){c[m>>2]=Id(1024)|0;if(!(c[m>>2]|0)){e=5;break}c[c[m>>2]>>2]=0;e=c[m>>2]|0;if(c[l>>2]|0)c[c[l>>2]>>2]=e;else c[(c[k>>2]|0)+4>>2]=e;c[(c[k>>2]|0)+8+8>>2]=c[m>>2]}iR((c[(c[k>>2]|0)+8+8>>2]|0)+4+(c[g>>2]|0)|0,c[n>>2]|0,c[h>>2]|0)|0;c[n>>2]=(c[n>>2]|0)+(c[h>>2]|0);c[j>>2]=(c[j>>2]|0)-(c[h>>2]|0);r=c[h>>2]|0;s=(c[k>>2]|0)+8|0;q=s;r=gR(c[q>>2]|0,c[q+4>>2]|0,r|0,((r|0)<0)<<31>>31|0)|0;c[s>>2]=r;c[s+4>>2]=C}if((e|0)==5){c[o>>2]=3082;s=c[o>>2]|0;i=p;return s|0}else if((e|0)==11){c[o>>2]=0;s=c[o>>2]|0;i=p;return s|0}return 0}function Fr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;h=i;i=i+32|0;e=h+20|0;j=h+16|0;f=h+12|0;g=h+8|0;c[e>>2]=a;a=h;c[a>>2]=b;c[a+4>>2]=d;c[j>>2]=c[e>>2];c[f>>2]=c[(c[j>>2]|0)+4>>2];while(1){if(!(c[f>>2]|0))break;c[g>>2]=c[f>>2];c[f>>2]=c[c[f>>2]>>2];Kd(c[g>>2]|0)}Ir(c[e>>2]|0);i=h;return 0}function Gr(a,b){a=a|0;b=b|0;var d=0;d=i;i=i+16|0;c[d+4>>2]=a;c[d>>2]=b;i=d;return 0}function Hr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;g=d+8|0;f=d+4|0;e=d;c[g>>2]=a;c[f>>2]=b;c[e>>2]=c[g>>2];e=(c[e>>2]|0)+8|0;a=c[e+4>>2]|0;b=c[f>>2]|0;c[b>>2]=c[e>>2];c[b+4>>2]=a;i=d;return 0}function Ir(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;c[d>>2]=c[e>>2];a=c[d>>2]|0;kR(a|0,0,Jr()|0)|0;c[c[d>>2]>>2]=4836;i=b;return}function Jr(){return 40}function Kr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;j=m+24|0;e=m+20|0;f=m+16|0;l=m+12|0;g=m+8|0;h=m+4|0;k=m;c[j>>2]=a;c[e>>2]=b;c[f>>2]=d;c[l>>2]=c[(c[j>>2]|0)+44>>2];if(c[l>>2]|0){l=c[l>>2]|0;i=m;return l|0}if((c[f>>2]|0)>=(c[(c[j>>2]|0)+104>>2]|0)){l=c[l>>2]|0;i=m;return l|0}c[h>>2]=(c[f>>2]|0)+((c[e>>2]|0)==1?0:1);c[g>>2]=c[h>>2];while(1){if((c[g>>2]|0)>=(c[(c[j>>2]|0)+104>>2]|0))break;kj(c[(c[(c[j>>2]|0)+100>>2]|0)+((c[g>>2]|0)*48|0)+16>>2]|0);c[g>>2]=(c[g>>2]|0)+1}c[(c[j>>2]|0)+104>>2]=c[h>>2];if((c[e>>2]|0)!=1){if((sr(c[j>>2]|0)|0)==0?(c[c[(c[j>>2]|0)+68>>2]>>2]|0)==0:0){l=c[l>>2]|0;i=m;return l|0}if(!(c[h>>2]|0))e=0;else e=(c[(c[j>>2]|0)+100>>2]|0)+(((c[h>>2]|0)-1|0)*48|0)|0;c[k>>2]=e;c[l>>2]=gs(c[j>>2]|0,c[k>>2]|0)|0;l=c[l>>2]|0;i=m;return l|0}if(c[h>>2]|0){l=c[l>>2]|0;i=m;return l|0}if(!(c[c[(c[j>>2]|0)+72>>2]>>2]|0)){l=c[l>>2]|0;i=m;return l|0}if(mr(c[(c[j>>2]|0)+72>>2]|0)|0)c[l>>2]=nr(c[(c[j>>2]|0)+72>>2]|0,0,0)|0;c[(c[j>>2]|0)+56>>2]=0;l=c[l>>2]|0;i=m;return l|0}function Lr(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+64|0;r=t+8|0;m=t+56|0;n=t+52|0;j=t+48|0;k=t;g=t+44|0;l=t+40|0;f=t+36|0;p=t+32|0;q=t+28|0;s=t+24|0;h=t+20|0;o=t+16|0;c[m>>2]=b;c[n>>2]=e;c[j>>2]=c[c[m>>2]>>2];c[f>>2]=0;c[q>>2]=1;c[s>>2]=0;c[o>>2]=0;c[p>>2]=Si(c[(c[m>>2]|0)+68>>2]|0,k)|0;a:do if(!(c[p>>2]|0)){c[s>>2]=c[(c[m>>2]|0)+208>>2];c[p>>2]=Mr(c[(c[m>>2]|0)+68>>2]|0,c[s>>2]|0,(c[(c[c[m>>2]>>2]|0)+8>>2]|0)+1|0)|0;if((c[p>>2]|0)==0?(a[c[s>>2]>>0]|0)!=0:0)c[p>>2]=Nr(c[j>>2]|0,c[s>>2]|0,0,q)|0;c[s>>2]=0;if((c[p>>2]|0)==0&(c[q>>2]|0)!=0){j=(c[m>>2]|0)+80|0;c[j>>2]=0;c[j+4>>2]=0;c[h>>2]=c[n>>2];b:while(1){j=k;c[p>>2]=Or(c[m>>2]|0,c[n>>2]|0,c[j>>2]|0,c[j+4>>2]|0,g,f)|0;if(c[p>>2]|0){e=8;break}if((c[g>>2]|0)==-1){b=k;b=fR(c[b>>2]|0,c[b+4>>2]|0,c[(c[m>>2]|0)+156>>2]|0,0)|0;j=(c[(c[m>>2]|0)+160>>2]|0)+8|0;j=pR(b|0,C|0,j|0,((j|0)<0)<<31>>31|0)|0;c[g>>2]=j}if(!((c[g>>2]|0)!=0|(c[n>>2]|0)!=0)?(b=(c[m>>2]|0)+88|0,b=gR(c[b>>2]|0,c[b+4>>2]|0,c[(c[m>>2]|0)+156>>2]|0,0)|0,j=(c[m>>2]|0)+80|0,(b|0)==(c[j>>2]|0)?(C|0)==(c[j+4>>2]|0):0):0){j=k;b=(c[m>>2]|0)+80|0;b=fR(c[j>>2]|0,c[j+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;j=(c[(c[m>>2]|0)+160>>2]|0)+8|0;j=pR(b|0,C|0,j|0,((j|0)<0)<<31>>31|0)|0;c[g>>2]=j}j=(c[m>>2]|0)+80|0;if((c[j+4>>2]|0)==0?(c[j>>2]|0)==(c[(c[m>>2]|0)+156>>2]|0):0){c[p>>2]=ur(c[m>>2]|0,c[f>>2]|0)|0;if(c[p>>2]|0)break a;c[(c[m>>2]|0)+28>>2]=c[f>>2]}c[l>>2]=0;while(1){if((c[l>>2]|0)>>>0>=(c[g>>2]|0)>>>0)continue b;if(c[h>>2]|0){Ui(c[m>>2]|0);c[h>>2]=0}c[p>>2]=Pr(c[m>>2]|0,(c[m>>2]|0)+80|0,0,1,0)|0;if(c[p>>2]|0)break;c[o>>2]=(c[o>>2]|0)+1;c[l>>2]=(c[l>>2]|0)+1}if((c[p>>2]|0)!=101){e=26;break}e=k;b=c[e+4>>2]|0;j=(c[m>>2]|0)+80|0;c[j>>2]=c[e>>2];c[j+4>>2]=b}if((e|0)==8){if((c[p>>2]|0)!=101)break;c[p>>2]=0;break}else if((e|0)==26){if((c[p>>2]|0)!=522)break;c[p>>2]=0;break}}}while(0);a[(c[m>>2]|0)+19>>0]=a[(c[m>>2]|0)+13>>0]|0;if(!(c[p>>2]|0)){c[s>>2]=c[(c[m>>2]|0)+208>>2];c[p>>2]=Mr(c[(c[m>>2]|0)+68>>2]|0,c[s>>2]|0,(c[(c[c[m>>2]>>2]|0)+8>>2]|0)+1|0)|0}do if(!(c[p>>2]|0)){if((d[(c[m>>2]|0)+17>>0]|0)<4?(d[(c[m>>2]|0)+17>>0]|0)!=0:0)break;c[p>>2]=Hg(c[m>>2]|0,0)|0}while(0);if(!(c[p>>2]|0))c[p>>2]=kr(c[m>>2]|0,(a[c[s>>2]>>0]|0)!=0&1,0)|0;if((c[p>>2]|0)==0?(c[q>>2]|0)!=0?(a[c[s>>2]>>0]|0)!=0:0:0)c[p>>2]=Qr(c[m>>2]|0,c[s>>2]|0)|0;if(!((c[n>>2]|0)!=0&(c[o>>2]|0)!=0)){s=c[m>>2]|0;Rr(s);s=c[p>>2]|0;i=t;return s|0}s=c[(c[m>>2]|0)+180>>2]|0;c[r>>2]=c[o>>2];c[r+4>>2]=s;Rd(539,26731,r);s=c[m>>2]|0;Rr(s);s=c[p>>2]|0;i=t;return s|0}function Mr(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;f=q+36|0;g=q+32|0;h=q+28|0;j=q+24|0;n=q+20|0;m=q+16|0;o=q;l=q+12|0;p=q+8|0;k=q+40|0;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;a[c[h>>2]>>0]=0;e=Si(c[g>>2]|0,o)|0;c[n>>2]=e;d=o;b=c[d+4>>2]|0;if((((((!(0!=(e|0)|((b|0)<0|(b|0)==0&(c[d>>2]|0)>>>0<16))?(b=c[g>>2]|0,d=o,d=fR(c[d>>2]|0,c[d+4>>2]|0,16,0)|0,d=Xr(b,d,C,m)|0,c[n>>2]=d,0==(d|0)):0)?!((c[m>>2]|0)==0?1:(c[m>>2]|0)>>>0>=(c[j>>2]|0)>>>0):0)?(b=c[g>>2]|0,d=o,d=fR(c[d>>2]|0,c[d+4>>2]|0,12,0)|0,d=Xr(b,d,C,l)|0,c[n>>2]=d,0==(d|0)):0)?(b=c[g>>2]|0,d=o,d=fR(c[d>>2]|0,c[d+4>>2]|0,8,0)|0,d=Wr(b,k,8,d,C)|0,c[n>>2]=d,0==(d|0)):0)?(vQ(k,26758,8)|0)==0:0)?(k=c[g>>2]|0,e=c[h>>2]|0,b=c[m>>2]|0,d=o,d=fR(c[d>>2]|0,c[d+4>>2]|0,16,0)|0,d=fR(d|0,C|0,c[m>>2]|0,0)|0,d=Wr(k,e,b,d,C)|0,c[n>>2]=d,0==(d|0)):0){c[p>>2]=0;while(1){if((c[p>>2]|0)>>>0>=(c[m>>2]|0)>>>0)break;c[l>>2]=(c[l>>2]|0)-(a[(c[h>>2]|0)+(c[p>>2]|0)>>0]|0);c[p>>2]=(c[p>>2]|0)+1}if(c[l>>2]|0)c[m>>2]=0;a[(c[h>>2]|0)+(c[m>>2]|0)>>0]=0;c[f>>2]=0;d=c[f>>2]|0;i=q;return d|0}c[f>>2]=c[n>>2];d=c[f>>2]|0;i=q;return d|0}function Nr(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+16|0;k=f+12|0;j=f+8|0;h=f+4|0;g=f;c[k>>2]=a;c[j>>2]=b;c[h>>2]=d;c[g>>2]=e;b=Wb[c[(c[k>>2]|0)+32>>2]&255](c[k>>2]|0,c[j>>2]|0,c[h>>2]|0,c[g>>2]|0)|0;i=f;return b|0}function Or(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=i;i=i+64|0;h=s+44|0;j=s+40|0;k=s+36|0;t=s+8|0;l=s+32|0;m=s+28|0;r=s+24|0;n=s+48|0;o=s;p=s+20|0;q=s+16|0;c[j>>2]=a;c[k>>2]=b;b=t;c[b>>2]=d;c[b+4>>2]=e;c[l>>2]=f;c[m>>2]=g;b=fs(c[j>>2]|0)|0;f=(c[j>>2]|0)+80|0;c[f>>2]=b;c[f+4>>2]=C;f=(c[j>>2]|0)+80|0;f=gR(c[f>>2]|0,c[f+4>>2]|0,c[(c[j>>2]|0)+156>>2]|0,0)|0;b=C;a=t;g=c[a+4>>2]|0;if((b|0)>(g|0)|((b|0)==(g|0)?f>>>0>(c[a>>2]|0)>>>0:0)){c[h>>2]=101;t=c[h>>2]|0;i=s;return t|0}f=(c[j>>2]|0)+80|0;a=c[f+4>>2]|0;t=o;c[t>>2]=c[f>>2];c[t+4>>2]=a;if(!((c[k>>2]|0)==0?(a=o,t=(c[j>>2]|0)+88|0,!((c[a>>2]|0)!=(c[t>>2]|0)?1:(c[a+4>>2]|0)!=(c[t+4>>2]|0))):0)){t=o;c[r>>2]=Wr(c[(c[j>>2]|0)+68>>2]|0,n,8,c[t>>2]|0,c[t+4>>2]|0)|0;if(c[r>>2]|0){c[h>>2]=c[r>>2];t=c[h>>2]|0;i=s;return t|0}if(vQ(n,26758,8)|0){c[h>>2]=101;t=c[h>>2]|0;i=s;return t|0}}a=c[(c[j>>2]|0)+68>>2]|0;t=o;t=gR(c[t>>2]|0,c[t+4>>2]|0,8,0)|0;t=Xr(a,t,C,c[l>>2]|0)|0;c[r>>2]=t;if((0==(t|0)?(a=c[(c[j>>2]|0)+68>>2]|0,t=o,t=gR(c[t>>2]|0,c[t+4>>2]|0,12,0)|0,t=Xr(a,t,C,(c[j>>2]|0)+52|0)|0,c[r>>2]=t,0==(t|0)):0)?(a=c[(c[j>>2]|0)+68>>2]|0,t=o,t=gR(c[t>>2]|0,c[t+4>>2]|0,16,0)|0,t=Xr(a,t,C,c[m>>2]|0)|0,c[r>>2]=t,0==(t|0)):0){t=(c[j>>2]|0)+80|0;do if((c[t>>2]|0)==0&(c[t+4>>2]|0)==0){a=c[(c[j>>2]|0)+68>>2]|0;t=o;t=gR(c[t>>2]|0,c[t+4>>2]|0,20,0)|0;t=Xr(a,t,C,q)|0;c[r>>2]=t;if(0==(t|0)?(a=c[(c[j>>2]|0)+68>>2]|0,t=o,t=gR(c[t>>2]|0,c[t+4>>2]|0,24,0)|0,t=Xr(a,t,C,p)|0,c[r>>2]=t,0==(t|0)):0){if(!(c[p>>2]|0))c[p>>2]=c[(c[j>>2]|0)+160>>2];if((!((c[p>>2]|0)>>>0<512|(c[q>>2]|0)>>>0<32|(c[p>>2]|0)>>>0>65536|(c[q>>2]|0)>>>0>65536)?((c[p>>2]|0)-1&c[p>>2]|0)==0:0)?((c[q>>2]|0)-1&c[q>>2]|0)==0:0){c[r>>2]=Qi(c[j>>2]|0,p,-1)|0;c[(c[j>>2]|0)+156>>2]=c[q>>2];break}c[h>>2]=101;t=c[h>>2]|0;i=s;return t|0}c[h>>2]=c[r>>2];t=c[h>>2]|0;i=s;return t|0}while(0);t=(c[j>>2]|0)+80|0;a=t;a=gR(c[a>>2]|0,c[a+4>>2]|0,c[(c[j>>2]|0)+156>>2]|0,0)|0;c[t>>2]=a;c[t+4>>2]=C;c[h>>2]=c[r>>2];t=c[h>>2]|0;i=s;return t|0}c[h>>2]=c[r>>2];t=c[h>>2]|0;i=s;return t|0}function Pr(f,g,h,j,k){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=i;i=i+64|0;y=B+60|0;o=B+56|0;p=B+52|0;l=B+48|0;q=B+44|0;r=B+40|0;A=B+36|0;z=B+32|0;v=B+28|0;m=B+24|0;s=B+20|0;n=B+16|0;t=B+12|0;u=B;x=B+8|0;c[o>>2]=f;c[p>>2]=g;c[l>>2]=h;c[q>>2]=j;c[r>>2]=k;c[s>>2]=c[(c[o>>2]|0)+208>>2];j=c[o>>2]|0;if(c[q>>2]|0)j=c[j+68>>2]|0;else j=c[j+72>>2]|0;c[n>>2]=j;f=c[p>>2]|0;c[A>>2]=Xr(c[n>>2]|0,c[f>>2]|0,c[f+4>>2]|0,v)|0;if(c[A>>2]|0){c[y>>2]=c[A>>2];A=c[y>>2]|0;i=B;return A|0}k=c[n>>2]|0;h=c[s>>2]|0;g=c[(c[o>>2]|0)+160>>2]|0;f=c[p>>2]|0;f=gR(c[f>>2]|0,c[f+4>>2]|0,4,0)|0;c[A>>2]=Wr(k,h,g,f,C)|0;if(c[A>>2]|0){c[y>>2]=c[A>>2];A=c[y>>2]|0;i=B;return A|0}g=(c[(c[o>>2]|0)+160>>2]|0)+4+(c[q>>2]<<2)|0;f=c[p>>2]|0;h=f;g=gR(c[h>>2]|0,c[h+4>>2]|0,g|0,((g|0)<0)<<31>>31|0)|0;c[f>>2]=g;c[f+4>>2]=C;if((c[v>>2]|0)!=0?(c[v>>2]|0)!=(((c[381]|0)/(c[(c[o>>2]|0)+160>>2]|0)|0)+1|0):0){if((c[v>>2]|0)>>>0<=(c[(c[o>>2]|0)+28>>2]|0)>>>0?(ij(c[l>>2]|0,c[v>>2]|0)|0)==0:0){if(c[q>>2]|0){f=c[n>>2]|0;n=c[p>>2]|0;n=fR(c[n>>2]|0,c[n+4>>2]|0,4,0)|0;c[A>>2]=Xr(f,n,C,m)|0;if(c[A>>2]|0){c[y>>2]=c[A>>2];A=c[y>>2]|0;i=B;return A|0}if((c[r>>2]|0)==0?(n=Yr(c[o>>2]|0,c[s>>2]|0)|0,(n|0)!=(c[m>>2]|0)):0){c[y>>2]=101;A=c[y>>2]|0;i=B;return A|0}}if((c[l>>2]|0)!=0?(n=gj(c[l>>2]|0,c[v>>2]|0)|0,c[A>>2]=n,(n|0)!=0):0){c[y>>2]=c[A>>2];A=c[y>>2]|0;i=B;return A|0}if((c[v>>2]|0)==1?(b[(c[o>>2]|0)+150>>1]|0)!=(d[(c[s>>2]|0)+20>>0]|0):0)b[(c[o>>2]|0)+150>>1]=d[(c[s>>2]|0)+20>>0]|0;if(sr(c[o>>2]|0)|0)c[z>>2]=0;else c[z>>2]=Zr(c[o>>2]|0,c[v>>2]|0)|0;if(c[q>>2]|0){if(d[(c[o>>2]|0)+7>>0]|0)j=1;else{n=c[p>>2]|0;l=c[n+4>>2]|0;j=(c[o>>2]|0)+88|0;m=c[j+4>>2]|0;j=(l|0)<(m|0)|((l|0)==(m|0)?(c[n>>2]|0)>>>0<=(c[j>>2]|0)>>>0:0)}c[t>>2]=j&1}else{if(!(c[z>>2]|0))j=1;else j=0==(e[(c[z>>2]|0)+24>>1]&8|0);c[t>>2]=j&1}do if(c[c[(c[o>>2]|0)+64>>2]>>2]|0){if((d[(c[o>>2]|0)+17>>0]|0)>=4){if(!(c[t>>2]|0)){w=44;break}}else if(!((c[t>>2]|0)!=0?(d[(c[o>>2]|0)+17>>0]|0)==0:0)){w=44;break}n=c[(c[o>>2]|0)+160>>2]|0;n=rR((c[v>>2]|0)-1|0,0,n|0,((n|0)<0)<<31>>31|0)|0;t=u;c[t>>2]=n;c[t+4>>2]=C;c[A>>2]=Fg(c[(c[o>>2]|0)+64>>2]|0,c[s>>2]|0,c[(c[o>>2]|0)+160>>2]|0,c[u>>2]|0,c[u+4>>2]|0)|0;if((c[v>>2]|0)>>>0>(c[(c[o>>2]|0)+36>>2]|0)>>>0)c[(c[o>>2]|0)+36>>2]=c[v>>2];if(c[(c[o>>2]|0)+96>>2]|0){_r(c[(c[o>>2]|0)+96>>2]|0,c[v>>2]|0,c[s>>2]|0);c[s>>2]=c[s>>2]}}else w=44;while(0);do if((w|0)==44?(c[q>>2]|0)==0&(c[z>>2]|0)==0:0){w=(c[o>>2]|0)+21|0;a[w>>0]=d[w>>0]|2;c[A>>2]=sg(c[o>>2]|0,c[v>>2]|0,z,1)|0;w=(c[o>>2]|0)+21|0;a[w>>0]=d[w>>0]&-3;if(!(c[A>>2]|0)){w=(c[z>>2]|0)+24|0;b[w>>1]=e[w>>1]&-17;$r(c[z>>2]|0);break}c[y>>2]=c[A>>2];A=c[y>>2]|0;i=B;return A|0}while(0);if(c[z>>2]|0){c[x>>2]=c[(c[z>>2]|0)+4>>2];iR(c[x>>2]|0,c[s>>2]|0,c[(c[o>>2]|0)+160>>2]|0)|0;Qb[c[(c[o>>2]|0)+204>>2]&255](c[z>>2]|0);do if(c[q>>2]|0){if((c[r>>2]|0)!=0?(u=c[p>>2]|0,s=c[u+4>>2]|0,w=(c[o>>2]|0)+88|0,t=c[w+4>>2]|0,!((s|0)<(t|0)|((s|0)==(t|0)?(c[u>>2]|0)>>>0<=(c[w>>2]|0)>>>0:0))):0)break;bj(c[z>>2]|0)}while(0);if((c[v>>2]|0)==1){h=(c[o>>2]|0)+112|0;j=(c[x>>2]|0)+24|0;k=h+16|0;do{a[h>>0]=a[j>>0]|0;h=h+1|0;j=j+1|0}while((h|0)<(k|0))}as(c[z>>2]|0)}c[y>>2]=c[A>>2];A=c[y>>2]|0;i=B;return A|0}c[y>>2]=0;A=c[y>>2]|0;i=B;return A|0}c[y>>2]=101;A=c[y>>2]|0;i=B;return A|0}function Qr(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;s=i;i=i+64|0;t=s+60|0;e=s+56|0;n=s+52|0;o=s+48|0;m=s+44|0;l=s+40|0;q=s+36|0;j=s;p=s+32|0;r=s+28|0;k=s+24|0;g=s+16|0;f=s+12|0;h=s+8|0;c[t>>2]=b;c[e>>2]=d;c[n>>2]=c[c[t>>2]>>2];c[q>>2]=0;d=c[(c[n>>2]|0)+4>>2]<<1;c[m>>2]=ig(d,((d|0)<0)<<31>>31)|0;c[l>>2]=(c[m>>2]|0)+(c[(c[n>>2]|0)+4>>2]|0);if(c[m>>2]|0){c[s+20>>2]=16385;c[o>>2]=Vr(c[n>>2]|0,c[e>>2]|0,c[m>>2]|0,16385,0)|0}else c[o>>2]=7;a:do if((c[o>>2]|0)==0?(c[o>>2]=Si(c[m>>2]|0,j)|0,(c[o>>2]|0)==0):0){c[k>>2]=(c[(c[n>>2]|0)+8>>2]|0)+1;d=j;t=c[k>>2]|0;t=gR(c[d>>2]|0,c[d+4>>2]|0,t|0,((t|0)<0)<<31>>31|0)|0;t=gR(t|0,C|0,1,0)|0;c[q>>2]=_f(t,C)|0;if(!(c[q>>2]|0)){c[o>>2]=7;break}t=j;t=gR(c[t>>2]|0,c[t+4>>2]|0,1,0)|0;c[r>>2]=(c[q>>2]|0)+t;c[o>>2]=Wr(c[m>>2]|0,c[q>>2]|0,c[j>>2]|0,0,0)|0;if(!(c[o>>2]|0)){a[(c[q>>2]|0)+(c[j>>2]|0)>>0]=0;c[p>>2]=c[q>>2];while(1){d=(c[p>>2]|0)-(c[q>>2]|0)|0;u=((d|0)<0)<<31>>31;t=j;b=c[t+4>>2]|0;if(!((u|0)<(b|0)|((u|0)==(b|0)?d>>>0<(c[t>>2]|0)>>>0:0)))break;c[o>>2]=Nr(c[n>>2]|0,c[p>>2]|0,0,g)|0;if(c[o>>2]|0)break a;if(c[g>>2]|0){c[h>>2]=2049;c[o>>2]=Vr(c[n>>2]|0,c[p>>2]|0,c[l>>2]|0,c[h>>2]|0,0)|0;if(c[o>>2]|0)break a;c[o>>2]=Mr(c[l>>2]|0,c[r>>2]|0,c[k>>2]|0)|0;hr(c[l>>2]|0)|0;if(c[o>>2]|0)break a;if(a[c[r>>2]>>0]|0)b=(yQ(c[r>>2]|0,c[e>>2]|0)|0)==0;else b=0;c[f>>2]=b&1;if(c[f>>2]|0)break a}u=(If(c[p>>2]|0)|0)+1|0;c[p>>2]=(c[p>>2]|0)+u}hr(c[m>>2]|0)|0;c[o>>2]=qr(c[n>>2]|0,c[e>>2]|0,0)|0}}while(0);Kd(c[q>>2]|0);if(!(c[m>>2]|0)){u=c[o>>2]|0;i=s;return u|0}hr(c[m>>2]|0)|0;Kd(c[m>>2]|0);u=c[o>>2]|0;i=s;return u|0}function Rr(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;b=e;c[b>>2]=a;if((d[(c[b>>2]|0)+13>>0]|0|0)==0?((Sr(c[(c[b>>2]|0)+64>>2]|0)|0)&4096|0)==0:0){a=Tr(c[(c[b>>2]|0)+64>>2]|0)|0;c[(c[b>>2]|0)+156>>2]=a;i=e;return}c[(c[b>>2]|0)+156>>2]=512;i=e;return}function Sr(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=Tb[c[(c[c[d>>2]>>2]|0)+48>>2]&255](c[d>>2]|0)|0;i=b;return a|0}function Tr(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;c[b>>2]=Ur(c[e>>2]|0)|0;if((c[b>>2]|0)>=32){if((c[b>>2]|0)>65536)c[b>>2]=65536}else c[b>>2]=512;i=d;return c[b>>2]|0}function Ur(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;c[d>>2]=c[(c[c[b>>2]>>2]|0)+44>>2];if(!(c[d>>2]|0)){d=4096;i=e;return d|0}d=Tb[c[d>>2]&255](c[b>>2]|0)|0;i=e;return d|0}function Vr(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;h=i;i=i+32|0;n=h+20|0;m=h+16|0;l=h+12|0;k=h+8|0;j=h+4|0;g=h;c[n>>2]=a;c[m>>2]=b;c[l>>2]=d;c[k>>2]=e;c[j>>2]=f;c[g>>2]=Zb[c[(c[n>>2]|0)+24>>2]&255](c[n>>2]|0,c[m>>2]|0,c[l>>2]|0,c[k>>2]&556927,c[j>>2]|0)|0;i=h;return c[g>>2]|0}function Wr(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i;i=i+32|0;k=g+16|0;j=g+12|0;h=g+8|0;l=g;c[k>>2]=a;c[j>>2]=b;c[h>>2]=d;b=l;c[b>>2]=e;c[b+4>>2]=f;b=l;b=Zb[c[(c[c[k>>2]>>2]|0)+8>>2]&255](c[k>>2]|0,c[j>>2]|0,c[h>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;i=g;return b|0}function Xr(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;j=i;i=i+32|0;k=j+16|0;l=j;f=j+12|0;g=j+20|0;h=j+8|0;c[k>>2]=a;a=l;c[a>>2]=b;c[a+4>>2]=d;c[f>>2]=e;e=l;c[h>>2]=Wr(c[k>>2]|0,g,4,c[e>>2]|0,c[e+4>>2]|0)|0;if(c[h>>2]|0){l=c[h>>2]|0;i=j;return l|0}l=$q(g)|0;c[c[f>>2]>>2]=l;l=c[h>>2]|0;i=j;return l|0}function Yr(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0;h=i;i=i+16|0;j=h+12|0;e=h+8|0;f=h+4|0;g=h;c[j>>2]=a;c[e>>2]=b;c[f>>2]=c[(c[j>>2]|0)+52>>2];c[g>>2]=(c[(c[j>>2]|0)+160>>2]|0)-200;while(1){if((c[g>>2]|0)<=0)break;c[f>>2]=(c[f>>2]|0)+(d[(c[e>>2]|0)+(c[g>>2]|0)>>0]|0);c[g>>2]=(c[g>>2]|0)-200}i=h;return c[f>>2]|0}function Zr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;d=h+12|0;e=h+8|0;f=h+4|0;g=h;c[e>>2]=a;c[f>>2]=b;c[g>>2]=cs(c[(c[e>>2]|0)+212>>2]|0,c[f>>2]|0,0)|0;if(!(c[g>>2]|0)){c[d>>2]=0;b=c[d>>2]|0;i=h;return b|0}else{c[d>>2]=ds(c[(c[e>>2]|0)+212>>2]|0,c[f>>2]|0,c[g>>2]|0)|0;b=c[d>>2]|0;i=h;return b|0}return 0}function _r(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+8|0;f=h+4|0;g=h;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;if(!(c[e>>2]|0)){i=h;return}bs(c[e>>2]|0,c[f>>2]|0,c[g>>2]|0);i=h;return}function $r(a){a=a|0;var d=0,f=0;f=i;i=i+16|0;d=f;c[d>>2]=a;if(!((e[(c[d>>2]|0)+24>>1]|0)&33)){i=f;return}a=(c[d>>2]|0)+24|0;b[a>>1]=(e[a>>1]|0)&-33;if(!((e[(c[d>>2]|0)+24>>1]|0)&1)){i=f;return}a=(c[d>>2]|0)+24|0;b[a>>1]=(e[a>>1]|0)^3;cj(c[d>>2]|0,2);i=f;return}function as(a){a=a|0;var d=0,f=0,g=0;f=i;i=i+16|0;d=f;c[d>>2]=a;g=(c[(c[d>>2]|0)+28>>2]|0)+12|0;c[g>>2]=(c[g>>2]|0)+-1;g=(c[d>>2]|0)+26|0;a=(b[g>>1]|0)+-1<<16>>16;b[g>>1]=a;if(a<<16>>16){i=f;return}a=c[d>>2]|0;if((e[(c[d>>2]|0)+24>>1]|0)&1){dj(a);i=f;return}if(!(c[a+36>>2]|0)){i=f;return}cj(c[d>>2]|0,3);i=f;return}function bs(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;e=j+12|0;f=j+8|0;g=j+4|0;h=j;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;do{if(((lg(c[(c[e>>2]|0)+28>>2]|0)|0)==0?(c[f>>2]|0)>>>0<(c[(c[e>>2]|0)+16>>2]|0)>>>0:0)?(c[h>>2]=ug(c[e>>2]|0,c[f>>2]|0,c[g>>2]|0,1)|0,(c[h>>2]|0)!=0):0)c[(c[e>>2]|0)+28>>2]=c[h>>2];a=c[(c[e>>2]|0)+44>>2]|0;c[e>>2]=a}while((a|0)!=0);i=j;return}function cs(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+16|0;j=f+12|0;h=f+8|0;k=f+4|0;g=f;c[j>>2]=a;c[h>>2]=b;c[k>>2]=e;c[g>>2]=c[k>>2]&(d[(c[j>>2]|0)+33>>0]|0);b=Ob[c[140>>2]&255](c[(c[j>>2]|0)+44>>2]|0,c[h>>2]|0,c[g>>2]|0)|0;i=f;return b|0}function ds(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;f=k+16|0;l=k+12|0;g=k+8|0;h=k+4|0;j=k;c[l>>2]=a;c[g>>2]=d;c[h>>2]=e;c[j>>2]=c[(c[h>>2]|0)+4>>2];a=c[l>>2]|0;if(c[c[j>>2]>>2]|0){l=a+12|0;c[l>>2]=(c[l>>2]|0)+1;l=(c[j>>2]|0)+26|0;b[l>>1]=(b[l>>1]|0)+1<<16>>16;c[f>>2]=c[j>>2];l=c[f>>2]|0;i=k;return l|0}else{c[f>>2]=es(a,c[g>>2]|0,c[h>>2]|0)|0;l=c[f>>2]|0;i=k;return l|0}return 0}function es(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;f=k+12|0;g=k+8|0;h=k+4|0;j=k;c[f>>2]=a;c[g>>2]=d;c[h>>2]=e;c[j>>2]=c[(c[h>>2]|0)+4>>2];a=c[j>>2]|0;e=a+40|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(e|0));c[c[j>>2]>>2]=c[h>>2];c[(c[j>>2]|0)+4>>2]=c[c[h>>2]>>2];c[(c[j>>2]|0)+8>>2]=(c[j>>2]|0)+40;kR(c[(c[j>>2]|0)+8>>2]|0,0,c[(c[f>>2]|0)+28>>2]|0)|0;c[(c[j>>2]|0)+28>>2]=c[f>>2];c[(c[j>>2]|0)+20>>2]=c[g>>2];b[(c[j>>2]|0)+24>>1]=1;j=ds(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0)|0;i=k;return j|0}function fs(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;f=i;i=i+32|0;b=f+16|0;e=f+8|0;d=f;c[b>>2]=a;h=e;c[h>>2]=0;c[h+4>>2]=0;h=(c[b>>2]|0)+80|0;g=c[h+4>>2]|0;a=d;c[a>>2]=c[h>>2];c[a+4>>2]=g;a=d;if(!((c[a>>2]|0)!=0|(c[a+4>>2]|0)!=0)){g=e;h=g;h=c[h>>2]|0;g=g+4|0;g=c[g>>2]|0;C=g;i=f;return h|0}h=d;h=fR(c[h>>2]|0,c[h+4>>2]|0,1,0)|0;h=pR(h|0,C|0,c[(c[b>>2]|0)+156>>2]|0,0)|0;h=gR(h|0,C|0,1,0)|0;h=rR(h|0,C|0,c[(c[b>>2]|0)+156>>2]|0,0)|0;g=e;c[g>>2]=h;c[g+4>>2]=C;g=e;h=g;h=c[h>>2]|0;g=g+4|0;g=c[g>>2]|0;C=g;i=f;return h|0}function gs(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;s=i;i=i+64|0;e=s+56|0;f=s+52|0;g=s+48|0;q=s+16|0;j=s+8|0;p=s+44|0;o=s+40|0;k=s+36|0;m=s+32|0;h=s+28|0;l=s+24|0;n=s;c[f>>2]=b;c[g>>2]=d;c[p>>2]=0;c[o>>2]=0;if((c[g>>2]|0)!=0?(c[o>>2]=fj(c[(c[g>>2]|0)+20>>2]|0)|0,(c[o>>2]|0)==0):0){c[e>>2]=7;r=c[e>>2]|0;i=s;return r|0}if(c[g>>2]|0)b=c[(c[g>>2]|0)+20>>2]|0;else b=c[(c[f>>2]|0)+32>>2]|0;c[(c[f>>2]|0)+28>>2]=b;a[(c[f>>2]|0)+19>>0]=a[(c[f>>2]|0)+13>>0]|0;if((c[g>>2]|0)==0?(sr(c[f>>2]|0)|0)!=0:0){c[e>>2]=hs(c[f>>2]|0)|0;r=c[e>>2]|0;i=s;return r|0}t=(c[f>>2]|0)+80|0;b=c[t+4>>2]|0;d=q;c[d>>2]=c[t>>2];c[d+4>>2]=b;a:do if((c[g>>2]|0)!=0?(sr(c[f>>2]|0)|0)==0:0){t=(c[g>>2]|0)+8|0;if((c[t>>2]|0)!=0|(c[t+4>>2]|0)!=0){d=(c[g>>2]|0)+8|0;b=c[d>>2]|0;d=c[d+4>>2]|0}else{d=q;b=c[d>>2]|0;d=c[d+4>>2]|0}t=j;c[t>>2]=b;c[t+4>>2]=d;b=c[g>>2]|0;d=c[b+4>>2]|0;t=(c[f>>2]|0)+80|0;c[t>>2]=c[b>>2];c[t+4>>2]=d;while(1){if(c[p>>2]|0)break a;d=(c[f>>2]|0)+80|0;u=c[d+4>>2]|0;t=j;b=c[t+4>>2]|0;if(!((u|0)<(b|0)|((u|0)==(b|0)?(c[d>>2]|0)>>>0<(c[t>>2]|0)>>>0:0)))break a;c[p>>2]=Pr(c[f>>2]|0,(c[f>>2]|0)+80|0,c[o>>2]|0,1,1)|0}}else r=19;while(0);if((r|0)==19){u=(c[f>>2]|0)+80|0;c[u>>2]=0;c[u+4>>2]=0}b:while(1){if(c[p>>2]|0)break;t=(c[f>>2]|0)+80|0;j=c[t+4>>2]|0;u=q;r=c[u+4>>2]|0;if(!((j|0)<(r|0)|((j|0)==(r|0)?(c[t>>2]|0)>>>0<(c[u>>2]|0)>>>0:0)))break;c[m>>2]=0;u=q;c[p>>2]=Or(c[f>>2]|0,0,c[u>>2]|0,c[u+4>>2]|0,m,h)|0;if((c[m>>2]|0)==0?(t=(c[f>>2]|0)+88|0,t=gR(c[t>>2]|0,c[t+4>>2]|0,c[(c[f>>2]|0)+156>>2]|0,0)|0,u=(c[f>>2]|0)+80|0,(t|0)==(c[u>>2]|0)?(C|0)==(c[u+4>>2]|0):0):0){u=q;t=(c[f>>2]|0)+80|0;t=fR(c[u>>2]|0,c[u+4>>2]|0,c[t>>2]|0,c[t+4>>2]|0)|0;u=(c[(c[f>>2]|0)+160>>2]|0)+8|0;u=pR(t|0,C|0,u|0,((u|0)<0)<<31>>31|0)|0;c[m>>2]=u}c[k>>2]=0;while(1){if(c[p>>2]|0)continue b;if((c[k>>2]|0)>>>0>=(c[m>>2]|0)>>>0)continue b;t=(c[f>>2]|0)+80|0;j=c[t+4>>2]|0;u=q;r=c[u+4>>2]|0;if(!((j|0)<(r|0)|((j|0)==(r|0)?(c[t>>2]|0)>>>0<(c[u>>2]|0)>>>0:0)))continue b;c[p>>2]=Pr(c[f>>2]|0,(c[f>>2]|0)+80|0,c[o>>2]|0,1,1)|0;c[k>>2]=(c[k>>2]|0)+1}}c:do if(c[g>>2]|0){t=4+(c[(c[f>>2]|0)+160>>2]|0)|0;t=rR(c[(c[g>>2]|0)+24>>2]|0,0,t|0,((t|0)<0)<<31>>31|0)|0;u=n;c[u>>2]=t;c[u+4>>2]=C;if(sr(c[f>>2]|0)|0)c[p>>2]=is(c[(c[f>>2]|0)+216>>2]|0,(c[g>>2]|0)+28|0)|0;c[l>>2]=c[(c[g>>2]|0)+24>>2];while(1){if(c[p>>2]|0)break c;if((c[l>>2]|0)>>>0>=(c[(c[f>>2]|0)+56>>2]|0)>>>0)break c;c[p>>2]=Pr(c[f>>2]|0,n,c[o>>2]|0,0,1)|0;c[l>>2]=(c[l>>2]|0)+1}}while(0);kj(c[o>>2]|0);if(!(c[p>>2]|0)){r=q;t=c[r+4>>2]|0;u=(c[f>>2]|0)+80|0;c[u>>2]=c[r>>2];c[u+4>>2]=t}c[e>>2]=c[p>>2];u=c[e>>2]|0;i=s;return u|0}function hs(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=i;i=i+16|0;b=g+12|0;f=g+8|0;d=g+4|0;e=g;c[b>>2]=a;c[(c[b>>2]|0)+28>>2]=c[(c[b>>2]|0)+32>>2];c[f>>2]=ps(c[(c[b>>2]|0)+216>>2]|0,187,c[b>>2]|0)|0;c[d>>2]=qs(c[(c[b>>2]|0)+212>>2]|0)|0;while(1){if(!((c[d>>2]|0)!=0?(c[f>>2]|0)==0:0))break;c[e>>2]=c[(c[d>>2]|0)+12>>2];c[f>>2]=os(c[b>>2]|0,c[(c[d>>2]|0)+20>>2]|0)|0;c[d>>2]=c[e>>2]}i=g;return c[f>>2]|0}function is(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;e=g+4|0;f=g;c[d>>2]=a;c[e>>2]=b;c[f>>2]=0;if((c[(c[e>>2]|0)+12>>2]|0)!=(c[(c[d>>2]|0)+112>>2]|0)){c[c[e>>2]>>2]=0;c[(c[e>>2]|0)+12>>2]=c[(c[d>>2]|0)+112>>2]}if((c[c[e>>2]>>2]|0)>>>0>=(c[(c[d>>2]|0)+52+16>>2]|0)>>>0){f=c[f>>2]|0;i=g;return f|0}c[(c[d>>2]|0)+52+16>>2]=c[c[e>>2]>>2];c[(c[d>>2]|0)+52+24>>2]=c[(c[e>>2]|0)+4>>2];c[(c[d>>2]|0)+52+24+4>>2]=c[(c[e>>2]|0)+8>>2];js(c[d>>2]|0);f=c[f>>2]|0;i=g;return f|0}function js(a){a=a|0;var d=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;d=m+24|0;f=m+20|0;g=m+16|0;k=m+12|0;j=m+8|0;l=m+4|0;h=m;c[d>>2]=a;c[f>>2]=0;c[g>>2]=0;c[k>>2]=0;c[j>>2]=0;if(!(c[(c[d>>2]|0)+52+16>>2]|0)){i=m;return}a=c[d>>2]|0;ls(a,ks(c[(c[d>>2]|0)+52+16>>2]|0)|0,f,g,k)|0;c[j>>2]=(c[(c[d>>2]|0)+52+16>>2]|0)-(c[k>>2]|0);c[h>>2]=0;while(1){if((c[h>>2]|0)>=8192)break;if((e[(c[f>>2]|0)+(c[h>>2]<<1)>>1]|0|0)>(c[j>>2]|0))b[(c[f>>2]|0)+(c[h>>2]<<1)>>1]=0;c[h>>2]=(c[h>>2]|0)+1}c[l>>2]=(c[f>>2]|0)-((c[g>>2]|0)+((c[j>>2]|0)+1<<2));
  54. kR((c[g>>2]|0)+((c[j>>2]|0)+1<<2)|0,0,c[l>>2]|0)|0;i=m;return}function ks(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;c[b>>2]=(((c[e>>2]|0)+4096-4062-1|0)>>>0)/4096|0;i=d;return c[b>>2]|0}function ls(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=i;i=i+48|0;q=p+32|0;g=p+28|0;h=p+24|0;j=p+20|0;k=p+16|0;o=p+12|0;m=p+8|0;n=p+4|0;l=p;c[q>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[k>>2]=f;c[o>>2]=ms(c[q>>2]|0,c[g>>2]|0,m)|0;if(c[o>>2]|0){q=c[o>>2]|0;i=p;return q|0}c[l>>2]=(c[m>>2]|0)+16384;if(!(c[g>>2]|0)){c[m>>2]=(c[m>>2]|0)+136;c[n>>2]=0}else c[n>>2]=4062+((c[g>>2]|0)-1<<12);c[c[j>>2]>>2]=(c[m>>2]|0)+-4;c[c[h>>2]>>2]=c[l>>2];c[c[k>>2]>>2]=c[n>>2];q=c[o>>2]|0;i=p;return q|0}function ms(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;g=o+24|0;h=o+20|0;j=o+16|0;k=o+12|0;n=o+8|0;m=o+4|0;l=o;c[h>>2]=b;c[j>>2]=e;c[k>>2]=f;c[n>>2]=0;do if((c[(c[h>>2]|0)+24>>2]|0)<=(c[j>>2]|0)){c[m>>2]=(c[j>>2]|0)+1<<2;f=c[m>>2]|0;c[l>>2]=Md(c[(c[h>>2]|0)+32>>2]|0,f,((f|0)<0)<<31>>31)|0;if(c[l>>2]|0){kR((c[l>>2]|0)+(c[(c[h>>2]|0)+24>>2]<<2)|0,0,(c[j>>2]|0)+1-(c[(c[h>>2]|0)+24>>2]|0)<<2|0)|0;c[(c[h>>2]|0)+32>>2]=c[l>>2];c[(c[h>>2]|0)+24>>2]=(c[j>>2]|0)+1;break}c[c[k>>2]>>2]=0;c[g>>2]=7;n=c[g>>2]|0;i=o;return n|0}while(0);do if(!(c[(c[(c[h>>2]|0)+32>>2]|0)+(c[j>>2]<<2)>>2]|0))if((d[(c[h>>2]|0)+43>>0]|0|0)==2){f=ig(32768,0)|0;c[(c[(c[h>>2]|0)+32>>2]|0)+(c[j>>2]<<2)>>2]=f;if(c[(c[(c[h>>2]|0)+32>>2]|0)+(c[j>>2]<<2)>>2]|0)break;c[n>>2]=7;break}else{c[n>>2]=ns(c[(c[h>>2]|0)+4>>2]|0,c[j>>2]|0,32768,d[(c[h>>2]|0)+44>>0]|0,(c[(c[h>>2]|0)+32>>2]|0)+(c[j>>2]<<2)|0)|0;if((c[n>>2]|0)!=8)break;f=(c[h>>2]|0)+46|0;a[f>>0]=d[f>>0]|0|2;c[n>>2]=0;break}while(0);c[c[k>>2]>>2]=c[(c[(c[h>>2]|0)+32>>2]|0)+(c[j>>2]<<2)>>2];c[g>>2]=c[n>>2];n=c[g>>2]|0;i=o;return n|0}function ns(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+32|0;m=g+16|0;l=g+12|0;k=g+8|0;j=g+4|0;h=g;c[m>>2]=a;c[l>>2]=b;c[k>>2]=d;c[j>>2]=e;c[h>>2]=f;f=Zb[c[(c[c[m>>2]>>2]|0)+52>>2]&255](c[m>>2]|0,c[l>>2]|0,c[k>>2]|0,c[j>>2]|0,c[h>>2]|0)|0;i=g;return f|0}function os(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;h=i;i=i+32|0;k=h+20|0;j=h+16|0;g=h+12|0;e=h+8|0;f=h+4|0;d=h;c[k>>2]=a;c[j>>2]=b;c[g>>2]=0;c[e>>2]=c[k>>2];c[f>>2]=Zr(c[e>>2]|0,c[j>>2]|0)|0;do if(c[f>>2]|0){if((vs(c[f>>2]|0)|0)==1){ws(c[f>>2]|0);break}c[d>>2]=0;c[g>>2]=xs(c[(c[e>>2]|0)+216>>2]|0,c[(c[f>>2]|0)+20>>2]|0,d)|0;if(!(c[g>>2]|0))c[g>>2]=ys(c[f>>2]|0,c[d>>2]|0)|0;if(!(c[g>>2]|0))Qb[c[(c[e>>2]|0)+204>>2]&255](c[f>>2]|0);zs(c[f>>2]|0)}while(0);_i(c[(c[e>>2]|0)+96>>2]|0);i=h;return c[g>>2]|0}function ps(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;f=m+20|0;g=m+16|0;h=m+12|0;l=m+8|0;k=m+4|0;j=m;c[f>>2]=b;c[g>>2]=d;c[h>>2]=e;c[l>>2]=0;if(!(a[(c[f>>2]|0)+44>>0]|0)){l=c[l>>2]|0;i=m;return l|0}c[k>>2]=c[(c[f>>2]|0)+52+16>>2];e=(c[f>>2]|0)+52|0;b=ts(c[f>>2]|0)|0;d=e+48|0;do{a[e>>0]=a[b>>0]|0;e=e+1|0;b=b+1|0}while((e|0)<(d|0));c[j>>2]=(c[(c[f>>2]|0)+52+16>>2]|0)+1;while(1){if(c[l>>2]|0)break;if((c[j>>2]|0)>>>0>(c[k>>2]|0)>>>0)break;e=c[g>>2]|0;b=c[h>>2]|0;d=us(c[f>>2]|0,c[j>>2]|0)|0;c[l>>2]=Yb[e&255](b,d)|0;c[j>>2]=(c[j>>2]|0)+1}if((c[k>>2]|0)==(c[(c[f>>2]|0)+52+16>>2]|0)){l=c[l>>2]|0;i=m;return l|0}js(c[f>>2]|0);l=c[l>>2]|0;i=m;return l|0}function qs(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;c[d>>2]=c[c[b>>2]>>2];while(1){if(!(c[d>>2]|0))break;c[(c[d>>2]|0)+12>>2]=c[(c[d>>2]|0)+32>>2];c[d>>2]=c[(c[d>>2]|0)+32>>2]}a=rs(c[c[b>>2]>>2]|0)|0;i=e;return a|0}function rs(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+144|0;d=j+136|0;f=j+8|0;h=j+4|0;g=j;c[d>>2]=a;a=f;b=a+128|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(b|0));while(1){if(!(c[d>>2]|0))break;c[h>>2]=c[d>>2];c[d>>2]=c[(c[h>>2]|0)+12>>2];c[(c[h>>2]|0)+12>>2]=0;c[g>>2]=0;while(1){if((c[g>>2]|0)>=31)break;if(!(c[f+(c[g>>2]<<2)>>2]|0)){e=6;break}c[h>>2]=ss(c[f+(c[g>>2]<<2)>>2]|0,c[h>>2]|0)|0;c[f+(c[g>>2]<<2)>>2]=0;c[g>>2]=(c[g>>2]|0)+1}if((e|0)==6){e=0;c[f+(c[g>>2]<<2)>>2]=c[h>>2]}if((c[g>>2]|0)!=31)continue;b=ss(c[f+(c[g>>2]<<2)>>2]|0,c[h>>2]|0)|0;c[f+(c[g>>2]<<2)>>2]=b}c[h>>2]=c[f>>2];c[g>>2]=1;while(1){a=c[h>>2]|0;if((c[g>>2]|0)>=32)break;c[h>>2]=ss(a,c[f+(c[g>>2]<<2)>>2]|0)|0;c[g>>2]=(c[g>>2]|0)+1}i=j;return a|0}function ss(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+64|0;d=h+52|0;e=h+48|0;g=h+8|0;f=h;c[d>>2]=a;c[e>>2]=b;c[f>>2]=g;while(1){a=c[d>>2]|0;if(!((c[d>>2]|0)!=0?(c[e>>2]|0)!=0:0))break;if((c[a+20>>2]|0)>>>0<(c[(c[e>>2]|0)+20>>2]|0)>>>0){c[(c[f>>2]|0)+12>>2]=c[d>>2];c[f>>2]=c[d>>2];c[d>>2]=c[(c[d>>2]|0)+12>>2];continue}else{c[(c[f>>2]|0)+12>>2]=c[e>>2];c[f>>2]=c[e>>2];c[e>>2]=c[(c[e>>2]|0)+12>>2];continue}}if(a){c[(c[f>>2]|0)+12>>2]=c[d>>2];g=g+12|0;g=c[g>>2]|0;i=h;return g|0}if(c[e>>2]|0){c[(c[f>>2]|0)+12>>2]=c[e>>2];g=g+12|0;g=c[g>>2]|0;i=h;return g|0}else{c[(c[f>>2]|0)+12>>2]=0;g=g+12|0;g=c[g>>2]|0;i=h;return g|0}return 0}function ts(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c[c[(c[b>>2]|0)+32>>2]>>2]|0}function us(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=i;i=i+16|0;d=g+12|0;e=g+8|0;h=g+4|0;f=g;c[e>>2]=a;c[h>>2]=b;c[f>>2]=ks(c[h>>2]|0)|0;b=c[h>>2]|0;if(!(c[f>>2]|0)){c[d>>2]=c[(c[c[(c[e>>2]|0)+32>>2]>>2]|0)+(34+b-1<<2)>>2];h=c[d>>2]|0;i=g;return h|0}else{c[d>>2]=c[(c[(c[(c[e>>2]|0)+32>>2]|0)+(c[f>>2]<<2)>>2]|0)+((((b-1-4062|0)>>>0)%4096|0)<<2)>>2];h=c[d>>2]|0;i=g;return h|0}return 0}function vs(a){a=a|0;var d=0,e=0;e=i;i=i+16|0;d=e;c[d>>2]=a;i=e;return b[(c[d>>2]|0)+26>>1]|0}function ws(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if((e[(c[b>>2]|0)+24>>1]|0)&2)cj(c[b>>2]|0,1);a=(c[(c[b>>2]|0)+28>>2]|0)+12|0;c[a>>2]=(c[a>>2]|0)+-1;Ub[c[144>>2]&255](c[(c[(c[b>>2]|0)+28>>2]|0)+44>>2]|0,c[c[b>>2]>>2]|0,1);i=d;return}function xs(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=i;i=i+64|0;s=w+56|0;g=w+52|0;h=w+48|0;t=w+44|0;u=w+40|0;o=w+36|0;m=w+32|0;p=w+28|0;j=w+24|0;k=w+20|0;q=w+16|0;n=w+12|0;r=w+8|0;v=w+4|0;l=w;c[g>>2]=a;c[h>>2]=d;c[t>>2]=f;c[u>>2]=0;c[o>>2]=c[(c[g>>2]|0)+52+16>>2];if((c[o>>2]|0)!=0?(b[(c[g>>2]|0)+40>>1]|0)!=0:0){c[p>>2]=ks(c[(c[g>>2]|0)+100>>2]|0)|0;c[m>>2]=ks(c[o>>2]|0)|0;a:while(1){if(!((c[m>>2]|0)>=(c[p>>2]|0)?(c[u>>2]|0)==0:0)){g=18;break}c[v>>2]=ls(c[g>>2]|0,c[m>>2]|0,j,k,q)|0;if(c[v>>2]|0){g=7;break}c[r>>2]=8192;c[n>>2]=Es(c[h>>2]|0)|0;while(1){if(!(b[(c[j>>2]|0)+(c[n>>2]<<1)>>1]|0))break;c[l>>2]=(e[(c[j>>2]|0)+(c[n>>2]<<1)>>1]|0)+(c[q>>2]|0);if(((c[l>>2]|0)>>>0<=(c[o>>2]|0)>>>0?(c[l>>2]|0)>>>0>=(c[(c[g>>2]|0)+100>>2]|0)>>>0:0)?(c[(c[k>>2]|0)+(e[(c[j>>2]|0)+(c[n>>2]<<1)>>1]<<2)>>2]|0)==(c[h>>2]|0):0)c[u>>2]=c[l>>2];f=c[r>>2]|0;c[r>>2]=f+-1;if(!f){g=15;break a}c[n>>2]=Fs(c[n>>2]|0)|0}c[m>>2]=(c[m>>2]|0)+-1}if((g|0)==7){c[s>>2]=c[v>>2];v=c[s>>2]|0;i=w;return v|0}else if((g|0)==15){c[s>>2]=Lj(53690)|0;v=c[s>>2]|0;i=w;return v|0}else if((g|0)==18){c[c[t>>2]>>2]=c[u>>2];c[s>>2]=0;v=c[s>>2]|0;i=w;return v|0}}c[c[t>>2]>>2]=0;c[s>>2]=0;v=c[s>>2]|0;i=w;return v|0}function ys(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+48|0;e=n+32|0;f=n+28|0;h=n+24|0;j=n+20|0;m=n+16|0;k=n+12|0;g=n;l=n+8|0;c[e>>2]=b;c[f>>2]=d;c[h>>2]=c[(c[e>>2]|0)+16>>2];c[j>>2]=c[(c[e>>2]|0)+20>>2];c[m>>2]=0;c[k>>2]=c[(c[h>>2]|0)+160>>2];if(c[f>>2]|0)c[m>>2]=Ds(c[(c[h>>2]|0)+216>>2]|0,c[f>>2]|0,c[k>>2]|0,c[(c[e>>2]|0)+4>>2]|0)|0;else{d=c[(c[h>>2]|0)+160>>2]|0;d=rR((c[j>>2]|0)-1|0,0,d|0,((d|0)<0)<<31>>31|0)|0;b=g;c[b>>2]=d;c[b+4>>2]=C;b=g;k=Wr(c[(c[h>>2]|0)+64>>2]|0,c[(c[e>>2]|0)+4>>2]|0,c[k>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;c[m>>2]=k;c[m>>2]=(c[m>>2]|0)==522?0:k}if((c[j>>2]|0)!=1){m=c[m>>2]|0;i=n;return m|0}if(c[m>>2]|0){d=(c[h>>2]|0)+112|0;f=d+16|0;do{a[d>>0]=255;d=d+1|0}while((d|0)<(f|0));m=c[m>>2]|0;i=n;return m|0}else{c[l>>2]=(c[(c[e>>2]|0)+4>>2]|0)+24;d=(c[h>>2]|0)+112|0;e=c[l>>2]|0;f=d+16|0;do{a[d>>0]=a[e>>0]|0;d=d+1|0;e=e+1|0}while((d|0)<(f|0));m=c[m>>2]|0;i=n;return m|0}return 0}function zs(a){a=a|0;var b=0,d=0,f=0;d=i;i=i+16|0;f=d+4|0;b=d;c[f>>2]=a;c[b>>2]=c[(c[f>>2]|0)+16>>2];a=c[f>>2]|0;if((e[(c[f>>2]|0)+24>>1]|0)&64){As(a);f=c[b>>2]|0;Bs(f);i=d;return}else{as(a);f=c[b>>2]|0;Bs(f);i=d;return}}function As(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;d=b+4|0;f=b;c[d>>2]=a;c[f>>2]=c[(c[d>>2]|0)+16>>2];e=(c[f>>2]|0)+128|0;c[e>>2]=(c[e>>2]|0)+-1;c[(c[d>>2]|0)+12>>2]=c[(c[f>>2]|0)+144>>2];c[(c[f>>2]|0)+144>>2]=c[d>>2];e=c[(c[f>>2]|0)+64>>2]|0;a=c[(c[f>>2]|0)+160>>2]|0;a=rR((c[(c[d>>2]|0)+20>>2]|0)-1|0,0,a|0,((a|0)<0)<<31>>31|0)|0;Cs(e,a,C,c[(c[d>>2]|0)+4>>2]|0)|0;i=b;return}function Bs(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(c[(c[b>>2]|0)+128>>2]|0){i=d;return}if(Ri(c[(c[b>>2]|0)+212>>2]|0)|0){i=d;return}gr(c[b>>2]|0);i=d;return}function Cs(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;i=i+16|0;c[f+12>>2]=a;a=f;c[a>>2]=b;c[a+4>>2]=d;c[f+8>>2]=e;i=f;return 0}function Ds(a,b,d,f){a=a|0;b=b|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;g=i;i=i+32|0;l=g+24|0;n=g+20|0;h=g+16|0;k=g+12|0;j=g+8|0;m=g;c[l>>2]=a;c[n>>2]=b;c[h>>2]=d;c[k>>2]=f;c[j>>2]=e[(c[l>>2]|0)+52+14>>1];c[j>>2]=(c[j>>2]&65024)+((c[j>>2]&1)<<16);f=(c[j>>2]|0)+24|0;f=rR((c[n>>2]|0)-1|0,0,f|0,((f|0)<0)<<31>>31|0)|0;f=gR(32,0,f|0,C|0)|0;f=gR(f|0,C|0,24,0)|0;a=m;c[a>>2]=f;c[a+4>>2]=C;a=m;a=Wr(c[(c[l>>2]|0)+8>>2]|0,c[k>>2]|0,(c[h>>2]|0)>(c[j>>2]|0)?c[j>>2]|0:c[h>>2]|0,c[a>>2]|0,c[a+4>>2]|0)|0;i=g;return a|0}function Es(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return(c[b>>2]|0)*383&8191|0}function Fs(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return(c[b>>2]|0)+1&8191|0}function Gs(a){a=a|0;var d=0,e=0;e=i;i=i+16|0;d=e;c[d>>2]=a;tr(c[d>>2]|0)|0;if((b[(c[d>>2]|0)+40>>1]|0)<0){i=e;return}zr(c[d>>2]|0,3+(b[(c[d>>2]|0)+40>>1]|0)|0);b[(c[d>>2]|0)+40>>1]=-1;i=e;return}function Hs(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;b=Yb[c[(c[c[f>>2]>>2]|0)+28>>2]&255](c[f>>2]|0,c[e>>2]|0)|0;i=d;return b|0}function Is(b,d,e,f,g,h,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;A=i;i=i+64|0;z=A+52|0;v=A+48|0;w=A+44|0;m=A+40|0;n=A+36|0;o=A+32|0;p=A+28|0;q=A+24|0;r=A+20|0;s=A+16|0;y=A+12|0;t=A+8|0;x=A+4|0;u=A;c[v>>2]=b;c[w>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[q>>2]=j;c[r>>2]=k;c[s>>2]=l;c[t>>2]=0;c[x>>2]=c[w>>2];c[u>>2]=c[m>>2];if(a[(c[v>>2]|0)+46>>0]|0){c[z>>2]=8;z=c[z>>2]|0;i=A;return z|0}c[y>>2]=Ns(c[v>>2]|0,1,1)|0;if(c[y>>2]|0){c[z>>2]=c[y>>2];z=c[z>>2]|0;i=A;return z|0}a[(c[v>>2]|0)+45>>0]=1;do if(c[w>>2]|0){c[y>>2]=Os(c[v>>2]|0,c[m>>2]|0,c[n>>2]|0,0,1)|0;if(!(c[y>>2]|0)){a[(c[v>>2]|0)+44>>0]=1;break}if((c[y>>2]|0)==5){c[x>>2]=0;c[u>>2]=0;c[y>>2]=0}}while(0);if(((c[y>>2]|0)==0?(c[y>>2]=Ps(c[v>>2]|0,t)|0,(c[t>>2]|0)!=0):0)?(c[c[c[(c[v>>2]|0)+4>>2]>>2]>>2]|0)>=3:0)Cs(c[(c[v>>2]|0)+4>>2]|0,0,0,0)|0;if(!(c[y>>2]|0)){if((c[(c[v>>2]|0)+52+16>>2]|0)!=0?(j=Qs(c[v>>2]|0)|0,(j|0)!=(c[p>>2]|0)):0)c[y>>2]=Lj(54390)|0;else c[y>>2]=Rs(c[v>>2]|0,c[x>>2]|0,c[u>>2]|0,c[n>>2]|0,c[o>>2]|0,c[q>>2]|0)|0;if((c[y>>2]|0)==0|(c[y>>2]|0)==5){if(c[r>>2]|0)c[c[r>>2]>>2]=c[(c[v>>2]|0)+52+16>>2];if(c[s>>2]|0){j=c[(Ss(c[v>>2]|0)|0)>>2]|0;c[c[s>>2]>>2]=j}}}if(c[t>>2]|0){m=(c[v>>2]|0)+52|0;n=m+48|0;do{c[m>>2]=0;m=m+4|0}while((m|0)<(n|0))}tr(c[v>>2]|0)|0;Br(c[v>>2]|0,1,1);a[(c[v>>2]|0)+45>>0]=0;if((c[y>>2]|0)==0?(c[w>>2]|0)!=(c[x>>2]|0):0)m=5;else m=c[y>>2]|0;c[z>>2]=m;z=c[z>>2]|0;i=A;return z|0}function Js(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;h=e+8|0;g=e+4|0;f=e;c[h>>2]=a;c[g>>2]=b;c[f>>2]=d;Ob[c[(c[c[h>>2]>>2]|0)+40>>2]&255](c[h>>2]|0,c[g>>2]|0,c[f>>2]|0)|0;i=e;return}function Ks(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;j=k+16|0;e=k+24|0;f=k+8|0;h=k;g=k+20|0;c[e>>2]=a;a=f;c[a>>2]=b;c[a+4>>2]=d;Sj();c[g>>2]=Si(c[(c[e>>2]|0)+8>>2]|0,h)|0;if((c[g>>2]|0)==0?(a=h,b=c[a+4>>2]|0,h=f,d=c[h+4>>2]|0,(b|0)>(d|0)|((b|0)==(d|0)?(c[a>>2]|0)>>>0>(c[h>>2]|0)>>>0:0)):0){h=f;c[g>>2]=nr(c[(c[e>>2]|0)+8>>2]|0,c[h>>2]|0,c[h+4>>2]|0)|0}Tj();if(!(c[g>>2]|0)){i=k;return}h=c[g>>2]|0;c[j>>2]=c[(c[e>>2]|0)+108>>2];Rd(h,26766,j);i=k;return}function Ls(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+8|0;f=h+4|0;g=h;c[e>>2]=a;c[f>>2]=b;if((d[(c[e>>2]|0)+43>>0]|0|0)!=2){Ms(c[(c[e>>2]|0)+4>>2]|0,c[f>>2]|0)|0;i=h;return}c[g>>2]=0;while(1){if((c[g>>2]|0)>=(c[(c[e>>2]|0)+24>>2]|0))break;Kd(c[(c[(c[e>>2]|0)+32>>2]|0)+(c[g>>2]<<2)>>2]|0);c[(c[(c[e>>2]|0)+32>>2]|0)+(c[g>>2]<<2)>>2]=0;c[g>>2]=(c[g>>2]|0)+1}i=h;return}function Ms(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;a=Yb[c[(c[c[f>>2]>>2]|0)+64>>2]&255](c[f>>2]|0,c[e>>2]|0)|0;i=d;return a|0}function Ns(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;f=l+16|0;g=l+12|0;h=l+8|0;j=l+4|0;k=l;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;if(a[(c[g>>2]|0)+43>>0]|0){c[f>>2]=0;k=c[f>>2]|0;i=l;return k|0}else{c[k>>2]=Ar(c[(c[g>>2]|0)+4>>2]|0,c[h>>2]|0,c[j>>2]|0,10)|0;c[f>>2]=c[k>>2];k=c[f>>2]|0;i=l;return k|0}return 0}function Os(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;g=n+20|0;h=n+16|0;j=n+12|0;k=n+8|0;l=n+4|0;m=n;c[g>>2]=a;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;while(1){c[m>>2]=Ns(c[g>>2]|0,c[k>>2]|0,c[l>>2]|0)|0;if(!((c[h>>2]|0)!=0&(c[m>>2]|0)==5)){g=4;break}if(!(Tb[c[h>>2]&255](c[j>>2]|0)|0)){g=4;break}}if((g|0)==4){i=n;return c[m>>2]|0}return 0}function Ps(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;f=m+20|0;g=m+16|0;h=m+12|0;l=m+8|0;j=m+4|0;k=m;c[g>>2]=b;c[h>>2]=e;c[l>>2]=ms(c[g>>2]|0,0,k)|0;if(c[l>>2]|0){c[f>>2]=c[l>>2];l=c[f>>2]|0;i=m;return l|0}if(c[k>>2]|0)e=ct(c[g>>2]|0,c[h>>2]|0)|0;else e=1;c[j>>2]=e;do if(c[j>>2]|0){e=c[g>>2]|0;if((d[(c[g>>2]|0)+46>>0]|0)&2){k=yr(e,0)|0;c[l>>2]=k;if(k)break;zr(c[g>>2]|0,0);c[l>>2]=264;break}b=Ns(e,0,1)|0;c[l>>2]=b;if(!b){a[(c[g>>2]|0)+44>>0]=1;k=ms(c[g>>2]|0,0,k)|0;c[l>>2]=k;if(0==(k|0)?(c[j>>2]=ct(c[g>>2]|0,c[h>>2]|0)|0,(c[j>>2]|0)!=0):0){c[l>>2]=dt(c[g>>2]|0)|0;c[c[h>>2]>>2]=1}a[(c[g>>2]|0)+44>>0]=0;Br(c[g>>2]|0,0,1)}}while(0);if((c[j>>2]|0)==0?(c[(c[g>>2]|0)+52>>2]|0)!=3007e3:0)c[l>>2]=et(53243)|0;c[f>>2]=c[l>>2];l=c[f>>2]|0;i=m;return l|0}function Qs(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return((e[(c[b>>2]|0)+52+14>>1]|0)&65024)+(((e[(c[b>>2]|0)+52+14>>1]|0)&1)<<16)|0}function Rs(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0;H=i;i=i+112|0;h=H+104|0;j=H+100|0;k=H+96|0;l=H+92|0;m=H+88|0;n=H+84|0;o=H+80|0;A=H+76|0;E=H+72|0;z=H+68|0;q=H+64|0;r=H+60|0;u=H+56|0;t=H+52|0;p=H+48|0;y=H+44|0;F=H+40|0;x=H+24|0;v=H+36|0;w=H+16|0;s=H+8|0;D=H;B=H+32|0;c[j>>2]=a;c[k>>2]=b;c[l>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[A>>2]=0;c[z>>2]=0;c[q>>2]=0;c[r>>2]=0;c[E>>2]=Qs(c[j>>2]|0)|0;c[y>>2]=Ss(c[j>>2]|0)|0;a:do if((c[c[y>>2]>>2]|0)>>>0<(c[(c[j>>2]|0)+52+16>>2]|0)>>>0){c[A>>2]=Ts(c[j>>2]|0,z)|0;if(c[A>>2]|0){c[h>>2]=c[A>>2];G=c[h>>2]|0;i=H;return G|0}c[u>>2]=c[(c[j>>2]|0)+52+16>>2];c[t>>2]=c[(c[j>>2]|0)+52+20>>2];c[p>>2]=1;while(1){if((c[p>>2]|0)>=5)break;c[F>>2]=c[(c[y>>2]|0)+4+(c[p>>2]<<2)>>2];do if((c[u>>2]|0)>>>0>(c[F>>2]|0)>>>0){c[A>>2]=Os(c[j>>2]|0,c[l>>2]|0,c[m>>2]|0,3+(c[p>>2]|0)|0,1)|0;if(!(c[A>>2]|0)){c[(c[y>>2]|0)+4+(c[p>>2]<<2)>>2]=(c[p>>2]|0)==1?c[u>>2]|0:-1;Br(c[j>>2]|0,3+(c[p>>2]|0)|0,1);break}if((c[A>>2]|0)!=5)break a;c[u>>2]=c[F>>2];c[l>>2]=0}while(0);c[p>>2]=(c[p>>2]|0)+1}if((c[c[y>>2]>>2]|0)>>>0<(c[u>>2]|0)>>>0?(G=Os(c[j>>2]|0,c[l>>2]|0,c[m>>2]|0,3,1)|0,c[A>>2]=G,(G|0)==0):0){c[v>>2]=c[c[y>>2]>>2];c[(c[y>>2]|0)+32>>2]=c[u>>2];if(c[n>>2]|0)c[A>>2]=or(c[(c[j>>2]|0)+8>>2]|0,c[n>>2]|0)|0;if(((c[A>>2]|0)==0?(g=c[E>>2]|0,g=rR(c[t>>2]|0,0,g|0,((g|0)<0)<<31>>31|0)|0,G=w,c[G>>2]=g,c[G+4>>2]=C,c[A>>2]=Si(c[(c[j>>2]|0)+4>>2]|0,x)|0,(c[A>>2]|0)==0):0)?(g=x,d=c[g+4>>2]|0,G=w,F=c[G+4>>2]|0,(d|0)<(F|0)|((d|0)==(F|0)?(c[g>>2]|0)>>>0<(c[G>>2]|0)>>>0:0)):0)Js(c[(c[j>>2]|0)+4>>2]|0,5,w);b:while(1){if(c[A>>2]|0)break;while(1){if(Us(c[z>>2]|0,q,r)|0)break b;if((c[r>>2]|0)>>>0<=(c[v>>2]|0)>>>0)continue b;if((c[r>>2]|0)>>>0>(c[u>>2]|0)>>>0)continue b;if((c[q>>2]|0)>>>0>(c[t>>2]|0)>>>0)continue b;g=(c[E>>2]|0)+24|0;g=rR((c[r>>2]|0)-1|0,0,g|0,((g|0)<0)<<31>>31|0)|0;g=gR(32,0,g|0,C|0)|0;g=gR(g|0,C|0,24,0)|0;G=s;c[G>>2]=g;c[G+4>>2]=C;G=s;c[A>>2]=Wr(c[(c[j>>2]|0)+8>>2]|0,c[o>>2]|0,c[E>>2]|0,c[G>>2]|0,c[G+4>>2]|0)|0;if(c[A>>2]|0)break b;g=c[E>>2]|0;g=rR((c[q>>2]|0)-1|0,0,g|0,((g|0)<0)<<31>>31|0)|0;G=s;c[G>>2]=g;c[G+4>>2]=C;G=s;c[A>>2]=Fg(c[(c[j>>2]|0)+4>>2]|0,c[o>>2]|0,c[E>>2]|0,c[G>>2]|0,c[G+4>>2]|0)|0;if(!((c[A>>2]|0)==0&(c[A>>2]|0)==0))break b}}if(!(c[A>>2]|0)){G=c[u>>2]|0;if((G|0)==(c[(ts(c[j>>2]|0)|0)+16>>2]|0)?(g=c[E>>2]|0,g=rR(c[(c[j>>2]|0)+52+20>>2]|0,0,g|0,((g|0)<0)<<31>>31|0)|0,G=D,c[G>>2]=g,c[G+4>>2]=C,G=D,c[A>>2]=nr(c[(c[j>>2]|0)+4>>2]|0,c[G>>2]|0,c[G+4>>2]|0)|0,(c[A>>2]|0)==0&(c[n>>2]|0)!=0):0)c[A>>2]=or(c[(c[j>>2]|0)+4>>2]|0,c[n>>2]|0)|0;if(!(c[A>>2]|0))c[c[y>>2]>>2]=c[u>>2]}Br(c[j>>2]|0,3,1)}if((c[A>>2]|0)==5){c[A>>2]=0;G=36}else G=36}else G=36;while(0);do if((G|0)==36?(c[A>>2]|0)==0&(c[k>>2]|0)!=0:0){if((c[c[y>>2]>>2]|0)>>>0<(c[(c[j>>2]|0)+52+16>>2]|0)>>>0){c[A>>2]=5;break}if((c[k>>2]|0)>=2?(Sd(4,B),c[A>>2]=Os(c[j>>2]|0,c[l>>2]|0,c[m>>2]|0,4,4)|0,(c[A>>2]|0)==0):0){if((c[k>>2]|0)==3){Vs(c[j>>2]|0,c[B>>2]|0);c[A>>2]=nr(c[(c[j>>2]|0)+8>>2]|0,0,0)|0}Br(c[j>>2]|0,4,4)}}while(0);Ws(c[z>>2]|0);c[h>>2]=c[A>>2];G=c[h>>2]|0;i=H;return G|0}function Ss(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return(c[c[(c[b>>2]|0)+32>>2]>>2]|0)+96|0}function Ts(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+64|0;e=v+60|0;f=v+56|0;g=v+52|0;t=v+48|0;s=v+44|0;n=v+40|0;q=v+36|0;m=v+32|0;l=v+28|0;u=v+24|0;h=v+20|0;o=v+16|0;k=v+12|0;p=v+8|0;r=v+4|0;j=v;c[f>>2]=a;c[g>>2]=d;c[u>>2]=0;c[n>>2]=c[(c[f>>2]|0)+52+16>>2];c[s>>2]=(ks(c[n>>2]|0)|0)+1;c[q>>2]=28+(((c[s>>2]|0)-1|0)*20|0)+(c[n>>2]<<1);d=c[q>>2]|0;c[t>>2]=Jd(d,((d|0)<0)<<31>>31)|0;if(!(c[t>>2]|0)){c[e>>2]=7;u=c[e>>2]|0;i=v;return u|0}kR(c[t>>2]|0,0,c[q>>2]|0)|0;c[(c[t>>2]|0)+4>>2]=c[s>>2];c[l>>2]=Jd(((c[n>>2]|0)>>>0>4096?4096:c[n>>2]|0)<<1,0)|0;if(!(c[l>>2]|0))c[u>>2]=7;c[m>>2]=0;while(1){if(c[u>>2]|0)break;if((c[m>>2]|0)>=(c[s>>2]|0))break;c[u>>2]=ls(c[f>>2]|0,c[m>>2]|0,h,k,o)|0;if(!(c[u>>2]|0)){c[k>>2]=(c[k>>2]|0)+4;if(((c[m>>2]|0)+1|0)==(c[s>>2]|0))c[r>>2]=(c[n>>2]|0)-(c[o>>2]|0);else c[r>>2]=((c[h>>2]|0)-(c[k>>2]|0)|0)/4|0;c[j>>2]=(c[t>>2]|0)+8+((c[(c[t>>2]|0)+4>>2]|0)*20|0)+(c[o>>2]<<1);c[o>>2]=(c[o>>2]|0)+1;c[p>>2]=0;while(1){if((c[p>>2]|0)>=(c[r>>2]|0))break;b[(c[j>>2]|0)+(c[p>>2]<<1)>>1]=c[p>>2];c[p>>2]=(c[p>>2]|0)+1}at(c[k>>2]|0,c[l>>2]|0,c[j>>2]|0,r);c[(c[t>>2]|0)+8+((c[m>>2]|0)*20|0)+16>>2]=c[o>>2];c[(c[t>>2]|0)+8+((c[m>>2]|0)*20|0)+12>>2]=c[r>>2];c[(c[t>>2]|0)+8+((c[m>>2]|0)*20|0)+4>>2]=c[j>>2];c[(c[t>>2]|0)+8+((c[m>>2]|0)*20|0)+8>>2]=c[k>>2]}c[m>>2]=(c[m>>2]|0)+1}Kd(c[l>>2]|0);if(c[u>>2]|0)Ws(c[t>>2]|0);c[c[g>>2]>>2]=c[t>>2];c[e>>2]=c[u>>2];u=c[e>>2]|0;i=v;return u|0}function Us(a,b,d){a=a|0;b=b|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;f=p+28|0;g=p+24|0;h=p+20|0;k=p+16|0;m=p+12|0;j=p+8|0;n=p+4|0;l=p;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[m>>2]=-1;c[k>>2]=c[c[f>>2]>>2];c[j>>2]=(c[(c[f>>2]|0)+4>>2]|0)-1;while(1){if((c[j>>2]|0)<0)break;c[n>>2]=(c[f>>2]|0)+8+((c[j>>2]|0)*20|0);while(1){if((c[c[n>>2]>>2]|0)>=(c[(c[n>>2]|0)+12>>2]|0))break;c[l>>2]=c[(c[(c[n>>2]|0)+8>>2]|0)+((e[(c[(c[n>>2]|0)+4>>2]|0)+(c[c[n>>2]>>2]<<1)>>1]|0)<<2)>>2];if((c[l>>2]|0)>>>0>(c[k>>2]|0)>>>0){o=6;break}b=c[n>>2]|0;c[b>>2]=(c[b>>2]|0)+1}if((o|0)==6?(o=0,(c[l>>2]|0)>>>0<(c[m>>2]|0)>>>0):0){c[m>>2]=c[l>>2];c[c[h>>2]>>2]=(c[(c[n>>2]|0)+16>>2]|0)+(e[(c[(c[n>>2]|0)+4>>2]|0)+(c[c[n>>2]>>2]<<1)>>1]|0)}c[j>>2]=(c[j>>2]|0)+-1}o=c[m>>2]|0;c[c[f>>2]>>2]=o;c[c[g>>2]>>2]=o;i=p;return(c[m>>2]|0)==-1|0}function Vs(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;f=i;i=i+32|0;g=f+16|0;h=f+12|0;e=f+8|0;d=f+4|0;j=f;c[g>>2]=a;c[h>>2]=b;c[e>>2]=Ss(c[g>>2]|0)|0;c[j>>2]=(c[g>>2]|0)+52+32;b=(c[g>>2]|0)+112|0;c[b>>2]=(c[b>>2]|0)+1;c[(c[g>>2]|0)+52+16>>2]=0;b=c[j>>2]|0;Xs(b,1+($q(c[j>>2]|0)|0)|0);c[(c[g>>2]|0)+52+32+4>>2]=c[h>>2];Ys(c[g>>2]|0);c[c[e>>2]>>2]=0;c[(c[e>>2]|0)+32>>2]=0;c[(c[e>>2]|0)+4+4>>2]=0;c[d>>2]=2;while(1){if((c[d>>2]|0)>=5)break;c[(c[e>>2]|0)+4+(c[d>>2]<<2)>>2]=-1;c[d>>2]=(c[d>>2]|0)+1}i=f;return}function Ws(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;Kd(c[d>>2]|0);i=b;return}function Xs(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;a[c[f>>2]>>0]=(c[g>>2]|0)>>>24;a[(c[f>>2]|0)+1>>0]=(c[g>>2]|0)>>>16;a[(c[f>>2]|0)+2>>0]=(c[g>>2]|0)>>>8;a[(c[f>>2]|0)+3>>0]=c[g>>2];i=e;return}function Ys(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;f=h+8|0;g=h+4|0;c[f>>2]=b;c[g>>2]=ts(c[f>>2]|0)|0;c[h>>2]=40;a[(c[f>>2]|0)+52+12>>0]=1;c[(c[f>>2]|0)+52>>2]=3007e3;Zs(1,(c[f>>2]|0)+52|0,40,0,(c[f>>2]|0)+52+40|0);b=(c[g>>2]|0)+48|0;d=(c[f>>2]|0)+52|0;e=b+48|0;do{a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}while((b|0)<(e|0));_s(c[f>>2]|0);b=c[g>>2]|0;d=(c[f>>2]|0)+52|0;e=b+48|0;do{a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}while((b|0)<(e|0));i=h;return}function Zs(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;o=i;i=i+48|0;g=o+32|0;q=o+28|0;p=o+24|0;h=o+20|0;j=o+16|0;m=o+12|0;n=o+8|0;k=o+4|0;l=o;c[g>>2]=a;c[q>>2]=b;c[p>>2]=d;c[h>>2]=e;c[j>>2]=f;c[k>>2]=c[q>>2];c[l>>2]=(c[q>>2]|0)+(c[p>>2]|0);if(c[h>>2]|0){c[m>>2]=c[c[h>>2]>>2];c[n>>2]=c[(c[h>>2]|0)+4>>2]}else{c[n>>2]=0;c[m>>2]=0}if(c[g>>2]|0){do{q=c[k>>2]|0;c[k>>2]=q+4;c[m>>2]=(c[m>>2]|0)+((c[q>>2]|0)+(c[n>>2]|0));q=c[k>>2]|0;c[k>>2]=q+4;c[n>>2]=(c[n>>2]|0)+((c[q>>2]|0)+(c[m>>2]|0))}while((c[k>>2]|0)>>>0<(c[l>>2]|0)>>>0);q=c[m>>2]|0;p=c[j>>2]|0;c[p>>2]=q;p=c[n>>2]|0;q=c[j>>2]|0;q=q+4|0;c[q>>2]=p;i=o;return}else{do{c[m>>2]=(c[m>>2]|0)+(((c[c[k>>2]>>2]&255)<<24)+((c[c[k>>2]>>2]&65280)<<8)+((c[c[k>>2]>>2]&16711680)>>>8)+((c[c[k>>2]>>2]&-16777216)>>>24)+(c[n>>2]|0));c[n>>2]=(c[n>>2]|0)+(((c[(c[k>>2]|0)+4>>2]&255)<<24)+((c[(c[k>>2]|0)+4>>2]&65280)<<8)+((c[(c[k>>2]|0)+4>>2]&16711680)>>>8)+((c[(c[k>>2]|0)+4>>2]&-16777216)>>>24)+(c[m>>2]|0));c[k>>2]=(c[k>>2]|0)+8}while((c[k>>2]|0)>>>0<(c[l>>2]|0)>>>0);q=c[m>>2]|0;p=c[j>>2]|0;c[p>>2]=q;p=c[n>>2]|0;q=c[j>>2]|0;q=q+4|0;c[q>>2]=p;i=o;return}}function _s(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;b=e;c[b>>2]=a;if((d[(c[b>>2]|0)+43>>0]|0|0)==2){i=e;return}$s(c[(c[b>>2]|0)+4>>2]|0);i=e;return}function $s(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;Qb[c[(c[c[d>>2]>>2]|0)+60>>2]&255](c[d>>2]|0);i=b;return}function at(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+160|0;f=s+144|0;g=s+140|0;h=s+136|0;j=s+132|0;o=s+128|0;p=s+124|0;k=s+120|0;m=s+116|0;n=s+112|0;l=s+8|0;q=s+4|0;r=s;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[o>>2]=c[c[j>>2]>>2];c[p>>2]=0;c[k>>2]=0;c[n>>2]=0;b=l;a=b+104|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(a|0));c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[o>>2]|0))break;c[p>>2]=1;c[k>>2]=(c[h>>2]|0)+(c[m>>2]<<1);c[n>>2]=0;while(1){if(!(c[m>>2]&1<<c[n>>2]))break;c[q>>2]=l+(c[n>>2]<<3);bt(c[f>>2]|0,c[(c[q>>2]|0)+4>>2]|0,c[c[q>>2]>>2]|0,k,p,c[g>>2]|0);c[n>>2]=(c[n>>2]|0)+1}c[l+(c[n>>2]<<3)+4>>2]=c[k>>2];c[l+(c[n>>2]<<3)>>2]=c[p>>2];c[m>>2]=(c[m>>2]|0)+1}c[n>>2]=(c[n>>2]|0)+1;while(1){if((c[n>>2]|0)>>>0>=13)break;if(c[o>>2]&1<<c[n>>2]){c[r>>2]=l+(c[n>>2]<<3);bt(c[f>>2]|0,c[(c[r>>2]|0)+4>>2]|0,c[c[r>>2]>>2]|0,k,p,c[g>>2]|0)}c[n>>2]=(c[n>>2]|0)+1}c[c[j>>2]>>2]=c[p>>2];i=s;return}function bt(a,d,f,g,h,j){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=i;i=i+64|0;k=y+44|0;l=y+40|0;m=y+36|0;n=y+32|0;o=y+28|0;p=y+24|0;s=y+20|0;u=y+16|0;t=y+12|0;w=y+8|0;q=y+4|0;v=y+48|0;r=y;c[k>>2]=a;c[l>>2]=d;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[p>>2]=j;c[s>>2]=0;c[u>>2]=0;c[t>>2]=0;c[w>>2]=c[c[o>>2]>>2];c[q>>2]=c[c[n>>2]>>2];while(1){if((c[u>>2]|0)>=(c[w>>2]|0)?(c[s>>2]|0)>=(c[m>>2]|0):0)break;do if((c[s>>2]|0)<(c[m>>2]|0)){if((c[u>>2]|0)<(c[w>>2]|0)?(c[(c[k>>2]|0)+((e[(c[l>>2]|0)+(c[s>>2]<<1)>>1]|0)<<2)>>2]|0)>>>0>=(c[(c[k>>2]|0)+((e[(c[q>>2]|0)+(c[u>>2]<<1)>>1]|0)<<2)>>2]|0)>>>0:0){x=8;break}h=c[s>>2]|0;c[s>>2]=h+1;b[v>>1]=b[(c[l>>2]|0)+(h<<1)>>1]|0}else x=8;while(0);if((x|0)==8){x=0;h=c[u>>2]|0;c[u>>2]=h+1;b[v>>1]=b[(c[q>>2]|0)+(h<<1)>>1]|0}c[r>>2]=c[(c[k>>2]|0)+((e[v>>1]|0)<<2)>>2];g=b[v>>1]|0;h=c[t>>2]|0;c[t>>2]=h+1;b[(c[p>>2]|0)+(h<<1)>>1]=g;if((c[s>>2]|0)>=(c[m>>2]|0))continue;if((c[(c[k>>2]|0)+((e[(c[l>>2]|0)+(c[s>>2]<<1)>>1]|0)<<2)>>2]|0)!=(c[r>>2]|0))continue;c[s>>2]=(c[s>>2]|0)+1}c[c[n>>2]>>2]=c[l>>2];c[c[o>>2]>>2]=c[t>>2];iR(c[l>>2]|0,c[p>>2]|0,c[t>>2]<<1|0)|0;i=y;return}function ct(b,f){b=b|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+128|0;h=p+120|0;j=p+116|0;k=p+112|0;l=p+104|0;n=p+56|0;o=p+8|0;m=p;c[j>>2]=b;c[k>>2]=f;c[m>>2]=ts(c[j>>2]|0)|0;f=n;b=c[m>>2]|0;g=f+48|0;do{a[f>>0]=a[b>>0]|0;f=f+1|0;b=b+1|0}while((f|0)<(g|0));_s(c[j>>2]|0);f=o;b=(c[m>>2]|0)+48|0;g=f+48|0;do{a[f>>0]=a[b>>0]|0;f=f+1|0;b=b+1|0}while((f|0)<(g|0));if(vQ(n,o,48)|0){c[h>>2]=1;o=c[h>>2]|0;i=p;return o|0}if(!(d[n+12>>0]|0)){c[h>>2]=1;o=c[h>>2]|0;i=p;return o|0}Zs(1,n,40,0,l);if((c[l>>2]|0)==(c[n+40>>2]|0)?(c[l+4>>2]|0)==(c[n+40+4>>2]|0):0){if(vQ((c[j>>2]|0)+52|0,n,48)|0){c[c[k>>2]>>2]=1;f=(c[j>>2]|0)+52|0;b=n;g=f+48|0;do{c[f>>2]=c[b>>2];f=f+4|0;b=b+4|0}while((f|0)<(g|0));c[(c[j>>2]|0)+36>>2]=((e[(c[j>>2]|0)+52+14>>1]|0)&65024)+(((e[(c[j>>2]|0)+52+14>>1]|0)&1)<<16)}c[h>>2]=0;o=c[h>>2]|0;i=p;return o|0}c[h>>2]=1;o=c[h>>2]|0;i=p;return o|0}function dt(e){e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0;E=i;i=i+144|0;B=E+16|0;g=E+96|0;h=E+92|0;y=E+88|0;u=E+8|0;m=E+80|0;p=E+76|0;t=E+72|0;j=E+104|0;l=E+68|0;z=E+64|0;k=E+60|0;o=E+56|0;q=E;A=E+52|0;s=E+48|0;D=E+44|0;r=E+40|0;x=E+36|0;v=E+32|0;w=E+28|0;n=E+24|0;c[h>>2]=e;c[m>>2]=0;c[m+4>>2]=0;c[p>>2]=1+(d[(c[h>>2]|0)+45>>0]|0);c[t>>2]=8-(c[p>>2]|0);c[y>>2]=Ns(c[h>>2]|0,c[p>>2]|0,c[t>>2]|0)|0;if(c[y>>2]|0){c[g>>2]=c[y>>2];D=c[g>>2]|0;i=E;return D|0}e=(c[h>>2]|0)+52|0;f=e+48|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(f|0));c[y>>2]=Si(c[(c[h>>2]|0)+8>>2]|0,u)|0;a:do if(!(c[y>>2]|0)){f=u;e=c[f+4>>2]|0;do if((e|0)>0|(e|0)==0&(c[f>>2]|0)>>>0>32){c[l>>2]=0;c[y>>2]=Wr(c[(c[h>>2]|0)+8>>2]|0,j,32,0,0)|0;if(c[y>>2]|0)break a;c[s>>2]=$q(j)|0;c[A>>2]=$q(j+8|0)|0;if((((c[s>>2]&-2|0)==931071618?!(((c[A>>2]|0)>65536?1:(c[A>>2]&(c[A>>2]|0)-1|0)!=0)|(c[A>>2]|0)<512):0)?(a[(c[h>>2]|0)+52+13>>0]=c[s>>2]&1,c[(c[h>>2]|0)+36>>2]=c[A>>2],s=$q(j+12|0)|0,c[(c[h>>2]|0)+112>>2]=s,s=(c[h>>2]|0)+52+32|0,f=j+16|0,a[s>>0]=a[f>>0]|0,a[s+1>>0]=a[f+1>>0]|0,a[s+2>>0]=a[f+2>>0]|0,a[s+3>>0]=a[f+3>>0]|0,a[s+4>>0]=a[f+4>>0]|0,a[s+5>>0]=a[f+5>>0]|0,a[s+6>>0]=a[f+6>>0]|0,a[s+7>>0]=a[f+7>>0]|0,Zs((d[(c[h>>2]|0)+52+13>>0]|0)==((a[960]|0)==0|0)&1,j,24,0,(c[h>>2]|0)+52+24|0),s=c[(c[h>>2]|0)+52+24>>2]|0,(s|0)==($q(j+24|0)|0)):0)?(s=c[(c[h>>2]|0)+52+24+4>>2]|0,(s|0)==($q(j+28|0)|0)):0){c[D>>2]=$q(j+4|0)|0;if((c[D>>2]|0)!=3007e3){c[y>>2]=et(52297)|0;break}c[z>>2]=(c[A>>2]|0)+24;D=c[z>>2]|0;c[l>>2]=Jd(D,((D|0)<0)<<31>>31)|0;if(!(c[l>>2]|0)){c[y>>2]=7;break a}c[k>>2]=(c[l>>2]|0)+24;c[o>>2]=0;D=q;c[D>>2]=32;c[D+4>>2]=0;while(1){f=q;s=c[z>>2]|0;s=gR(c[f>>2]|0,c[f+4>>2]|0,s|0,((s|0)<0)<<31>>31|0)|0;f=C;D=u;j=c[D+4>>2]|0;if(!((f|0)<(j|0)|((f|0)==(j|0)?s>>>0<=(c[D>>2]|0)>>>0:0)))break;c[o>>2]=(c[o>>2]|0)+1;D=q;c[y>>2]=Wr(c[(c[h>>2]|0)+8>>2]|0,c[l>>2]|0,c[z>>2]|0,c[D>>2]|0,c[D+4>>2]|0)|0;if(c[y>>2]|0)break;c[r>>2]=ft(c[h>>2]|0,x,v,c[k>>2]|0,c[l>>2]|0)|0;if(!(c[r>>2]|0))break;c[y>>2]=gt(c[h>>2]|0,c[o>>2]|0,c[x>>2]|0)|0;if(c[y>>2]|0)break;if(c[v>>2]|0){c[(c[h>>2]|0)+52+16>>2]=c[o>>2];c[(c[h>>2]|0)+52+20>>2]=c[v>>2];b[(c[h>>2]|0)+52+14>>1]=c[A>>2]&65280|c[A>>2]>>16;c[m>>2]=c[(c[h>>2]|0)+52+24>>2];c[m+4>>2]=c[(c[h>>2]|0)+52+24+4>>2]}s=c[z>>2]|0;D=q;s=gR(c[D>>2]|0,c[D+4>>2]|0,s|0,((s|0)<0)<<31>>31|0)|0;D=q;c[D>>2]=s;c[D+4>>2]=C}Kd(c[l>>2]|0)}}while(0);if(!(c[y>>2]|0)){c[(c[h>>2]|0)+52+24>>2]=c[m>>2];c[(c[h>>2]|0)+52+24+4>>2]=c[m+4>>2];Ys(c[h>>2]|0);c[w>>2]=Ss(c[h>>2]|0)|0;c[c[w>>2]>>2]=0;c[(c[w>>2]|0)+32>>2]=c[(c[h>>2]|0)+52+16>>2];c[(c[w>>2]|0)+4>>2]=0;c[n>>2]=1;while(1){if((c[n>>2]|0)>=5)break;c[(c[w>>2]|0)+4+(c[n>>2]<<2)>>2]=-1;c[n>>2]=(c[n>>2]|0)+1}if(c[(c[h>>2]|0)+52+16>>2]|0)c[(c[w>>2]|0)+4+4>>2]=c[(c[h>>2]|0)+52+16>>2];if(c[(c[h>>2]|0)+52+20>>2]|0){D=c[(c[h>>2]|0)+108>>2]|0;c[B>>2]=c[(c[h>>2]|0)+52+16>>2];c[B+4>>2]=D;Rd(283,26831,B)}}}while(0);Br(c[h>>2]|0,c[p>>2]|0,c[t>>2]|0);c[g>>2]=c[y>>2];D=c[g>>2]|0;i=E;return D|0}function et(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b;e=b+8|0;c[e>>2]=a;e=c[e>>2]|0;a=(kf()|0)+20|0;c[d>>2]=e;c[d+4>>2]=a;Rd(14,26792,d);i=b;return 14}function ft(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+48|0;j=s+32|0;k=s+28|0;l=s+24|0;m=s+20|0;n=s+16|0;o=s+12|0;q=s+8|0;p=s+4|0;r=s;c[k>>2]=b;c[l>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[p>>2]=(c[k>>2]|0)+52+24;if(vQ((c[k>>2]|0)+52+32|0,(c[o>>2]|0)+8|0,8)|0){c[j>>2]=0;f=c[j>>2]|0;i=s;return f|0}c[r>>2]=$q(c[o>>2]|0)|0;if(!(c[r>>2]|0)){c[j>>2]=0;f=c[j>>2]|0;i=s;return f|0}c[q>>2]=(d[(c[k>>2]|0)+52+13>>0]|0)==((a[960]|0)==0|0)&1;Zs(c[q>>2]|0,c[o>>2]|0,8,c[p>>2]|0,c[p>>2]|0);Zs(c[q>>2]|0,c[n>>2]|0,c[(c[k>>2]|0)+36>>2]|0,c[p>>2]|0,c[p>>2]|0);f=c[c[p>>2]>>2]|0;if((f|0)==($q((c[o>>2]|0)+16|0)|0)?(f=c[(c[p>>2]|0)+4>>2]|0,(f|0)==($q((c[o>>2]|0)+20|0)|0)):0){c[c[l>>2]>>2]=c[r>>2];f=$q((c[o>>2]|0)+4|0)|0;c[c[m>>2]>>2]=f;c[j>>2]=1;f=c[j>>2]|0;i=s;return f|0}c[j>>2]=0;f=c[j>>2]|0;i=s;return f|0}function gt(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+48|0;f=t+44|0;g=t+40|0;h=t+36|0;j=t+32|0;r=t+28|0;n=t+24|0;l=t+20|0;k=t+16|0;m=t+12|0;o=t+8|0;q=t+4|0;p=t;c[g>>2]=a;c[h>>2]=d;c[j>>2]=e;c[n>>2]=0;c[l>>2]=0;c[k>>2]=0;a=c[g>>2]|0;c[r>>2]=ls(a,ks(c[h>>2]|0)|0,k,l,n)|0;do if(!(c[r>>2]|0)){c[o>>2]=(c[h>>2]|0)-(c[n>>2]|0);if((c[o>>2]|0)==1){c[p>>2]=(c[k>>2]|0)+16384-((c[l>>2]|0)+4);kR((c[l>>2]|0)+4|0,0,c[p>>2]|0)|0}if(c[(c[l>>2]|0)+(c[o>>2]<<2)>>2]|0)js(c[g>>2]|0);c[q>>2]=c[o>>2];c[m>>2]=Es(c[j>>2]|0)|0;while(1){if(!(b[(c[k>>2]|0)+(c[m>>2]<<1)>>1]|0)){s=11;break}a=c[q>>2]|0;c[q>>2]=a+-1;if(!a)break;c[m>>2]=Fs(c[m>>2]|0)|0}if((s|0)==11){c[(c[l>>2]|0)+(c[o>>2]<<2)>>2]=c[j>>2];b[(c[k>>2]|0)+(c[m>>2]<<1)>>1]=c[o>>2];break}c[f>>2]=Lj(52166)|0;s=c[f>>2]|0;i=t;return s|0}while(0);c[f>>2]=c[r>>2];s=c[f>>2]|0;i=t;return s|0}function ht(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;d=f+8|0;b=f+4|0;e=f;c[b>>2]=a;if(((c[b>>2]|0)!=0?(c[c[b>>2]>>2]|0)!=0:0)?(c[(c[b>>2]|0)+8>>2]|0)>=0:0){c[e>>2]=Yb[c[c[b>>2]>>2]&255](c[(c[b>>2]|0)+4>>2]|0,c[(c[b>>2]|0)+8>>2]|0)|0;b=(c[b>>2]|0)+8|0;if(!(c[e>>2]|0))c[b>>2]=-1;else c[b>>2]=(c[b>>2]|0)+1;c[d>>2]=c[e>>2];e=c[d>>2]|0;i=f;return e|0}c[d>>2]=0;e=c[d>>2]|0;i=f;return e|0}function it(){return 48}function jt(a,b){a=a|0;b=b|0;var f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;f=k+16|0;l=k+12|0;g=k+8|0;h=k+4|0;j=k;c[l>>2]=a;c[g>>2]=b;c[h>>2]=c[l>>2];c[j>>2]=0;if(c[(c[h>>2]|0)+44>>2]|0){c[f>>2]=0;l=c[f>>2]|0;i=k;return l|0}do if(d[(c[h>>2]|0)+21>>0]|0){if(((d[(c[h>>2]|0)+21>>0]|0)&3|0)==0?((e[(c[g>>2]|0)+24>>1]|0)&8|0)==0:0)break;c[f>>2]=0;l=c[f>>2]|0;i=k;return l|0}while(0);c[(c[g>>2]|0)+12>>2]=0;l=(sr(c[h>>2]|0)|0)!=0;a=c[g>>2]|0;if(l){c[j>>2]=lt(a)|0;if(!(c[j>>2]|0))c[j>>2]=mt(c[h>>2]|0,c[g>>2]|0,0,0)|0}else{if(!(((e[a+24>>1]|0)&8|0)==0?(d[(c[h>>2]|0)+17>>0]|0|0)!=3:0))c[j>>2]=nt(c[h>>2]|0,1)|0;if(!(c[j>>2]|0))c[j>>2]=ot(c[h>>2]|0,c[g>>2]|0)|0}if(!(c[j>>2]|0))bj(c[g>>2]|0);c[f>>2]=fr(c[h>>2]|0,c[j>>2]|0)|0;l=c[f>>2]|0;i=k;return l|0}function kt(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;j=p+20|0;k=p+16|0;l=p+12|0;m=p+8|0;n=p+4|0;o=p;c[j>>2]=b;c[k>>2]=d;c[l>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;e=c[o>>2]|0;h=e+48|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(h|0));c[(c[o>>2]|0)+24>>2]=1;c[(c[o>>2]|0)+28>>2]=c[k>>2];a[(c[o>>2]|0)+32>>0]=c[l>>2];a[(c[o>>2]|0)+33>>0]=2;c[(c[o>>2]|0)+36>>2]=c[m>>2];c[(c[o>>2]|0)+40>>2]=c[n>>2];c[(c[o>>2]|0)+16>>2]=100;c[(c[o>>2]|0)+20>>2]=1;o=Vi(c[o>>2]|0,c[j>>2]|0)|0;i=p;return o|0}function lt(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[d>>2]=a;if(Dt(c[d>>2]|0)|0){c[b>>2]=Et(c[d>>2]|0)|0;a=c[b>>2]|0;i=e;return a|0}else{c[b>>2]=0;a=c[b>>2]|0;i=e;return a|0}return 0}function mt(a,b,e,f){
  55. a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;g=p+28|0;h=p+24|0;j=p+20|0;k=p+16|0;o=p+12|0;l=p+8|0;m=p+4|0;n=p;c[g>>2]=a;c[h>>2]=b;c[j>>2]=e;c[k>>2]=f;a:do if(c[k>>2]|0){c[n>>2]=h;c[l>>2]=0;c[m>>2]=c[h>>2];while(1){a=c[m>>2]|0;c[c[n>>2]>>2]=a;if(!a)break a;if((c[(c[m>>2]|0)+20>>2]|0)>>>0<=(c[j>>2]|0)>>>0){c[n>>2]=(c[m>>2]|0)+12;c[l>>2]=(c[l>>2]|0)+1}c[m>>2]=c[(c[m>>2]|0)+12>>2]}}else c[l>>2]=1;while(0);n=(c[g>>2]|0)+192+8|0;c[n>>2]=(c[n>>2]|0)+(c[l>>2]|0);if((c[(c[h>>2]|0)+20>>2]|0)==1)qt(c[h>>2]|0);c[o>>2]=wt(c[(c[g>>2]|0)+216>>2]|0,c[(c[g>>2]|0)+160>>2]|0,c[h>>2]|0,c[j>>2]|0,c[k>>2]|0,d[(c[g>>2]|0)+11>>0]|0)|0;if(c[o>>2]|0){o=c[o>>2]|0;i=p;return o|0}if(!(c[(c[g>>2]|0)+96>>2]|0)){o=c[o>>2]|0;i=p;return o|0}c[m>>2]=c[h>>2];while(1){if(!(c[m>>2]|0))break;_r(c[(c[g>>2]|0)+96>>2]|0,c[(c[m>>2]|0)+20>>2]|0,c[(c[m>>2]|0)+4>>2]|0);c[m>>2]=c[(c[m>>2]|0)+12>>2]}o=c[o>>2]|0;i=p;return o|0}function nt(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+48|0;f=o+24|0;g=o+20|0;h=o+16|0;m=o+12|0;k=o+8|0;l=o;j=o+40|0;n=o+28|0;c[g>>2]=b;c[h>>2]=e;c[m>>2]=rt(c[g>>2]|0)|0;if(c[m>>2]|0){c[f>>2]=c[m>>2];n=c[f>>2]|0;i=o;return n|0}do if(!(a[(c[g>>2]|0)+7>>0]|0)){if((c[c[(c[g>>2]|0)+68>>2]>>2]|0)!=0?(d[(c[g>>2]|0)+5>>0]|0)!=4:0){c[k>>2]=Sr(c[(c[g>>2]|0)+64>>2]|0)|0;if(!(c[k>>2]&512)){a[n>>0]=a[26758]|0;a[n+1>>0]=a[26759]|0;a[n+2>>0]=a[26760]|0;a[n+3>>0]=a[26761]|0;a[n+4>>0]=a[26762]|0;a[n+5>>0]=a[26763]|0;a[n+6>>0]=a[26764]|0;a[n+7>>0]=a[26765]|0;Xs(n+8|0,c[(c[g>>2]|0)+48>>2]|0);e=fs(c[g>>2]|0)|0;b=l;c[b>>2]=e;c[b+4>>2]=C;b=l;c[m>>2]=Wr(c[(c[g>>2]|0)+68>>2]|0,j,8,c[b>>2]|0,c[b+4>>2]|0)|0;if((c[m>>2]|0)==0?0==(vQ(j,26758,8)|0):0){b=l;c[m>>2]=Fg(c[(c[g>>2]|0)+68>>2]|0,26901,1,c[b>>2]|0,c[b+4>>2]|0)|0}if((c[m>>2]|0)!=0&(c[m>>2]|0)!=522){c[f>>2]=c[m>>2];n=c[f>>2]|0;i=o;return n|0}if(((d[(c[g>>2]|0)+8>>0]|0)!=0?0==(c[k>>2]&1024|0):0)?(c[m>>2]=or(c[(c[g>>2]|0)+68>>2]|0,d[(c[g>>2]|0)+12>>0]|0)|0,(c[m>>2]|0)!=0):0){c[f>>2]=c[m>>2];n=c[f>>2]|0;i=o;return n|0}b=(c[g>>2]|0)+88|0;c[m>>2]=Fg(c[(c[g>>2]|0)+68>>2]|0,n,12,c[b>>2]|0,c[b+4>>2]|0)|0;if(c[m>>2]|0){c[f>>2]=c[m>>2];n=c[f>>2]|0;i=o;return n|0}}if(0==(c[k>>2]&1024|0)?(c[m>>2]=or(c[(c[g>>2]|0)+68>>2]|0,d[(c[g>>2]|0)+12>>0]|((d[(c[g>>2]|0)+12>>0]|0)==3?16:0))|0,(c[m>>2]|0)!=0):0){c[f>>2]=c[m>>2];n=c[f>>2]|0;i=o;return n|0}e=(c[g>>2]|0)+80|0;b=c[e+4>>2]|0;n=(c[g>>2]|0)+88|0;c[n>>2]=c[e>>2];c[n+4>>2]=b;if(!(c[h>>2]|0))break;if(c[k>>2]&512)break;c[(c[g>>2]|0)+48>>2]=0;c[m>>2]=st(c[g>>2]|0)|0;if(!(c[m>>2]|0))break;c[f>>2]=c[m>>2];n=c[f>>2]|0;i=o;return n|0}b=(c[g>>2]|0)+80|0;m=c[b+4>>2]|0;n=(c[g>>2]|0)+88|0;c[n>>2]=c[b>>2];c[n+4>>2]=m}while(0);tt(c[(c[g>>2]|0)+212>>2]|0);a[(c[g>>2]|0)+17>>0]=4;c[f>>2]=0;n=c[f>>2]|0;i=o;return n|0}function ot(b,d){b=b|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+48|0;g=n+32|0;h=n+28|0;m=n+24|0;f=n+8|0;l=n+20|0;j=n;k=n+16|0;c[g>>2]=b;c[h>>2]=d;c[m>>2]=0;if(!(c[c[(c[g>>2]|0)+64>>2]>>2]|0))c[m>>2]=pt(c[g>>2]|0,c[(c[g>>2]|0)+64>>2]|0,c[(c[g>>2]|0)+152>>2]|0)|0;do if((c[m>>2]|0)==0?(c[(c[g>>2]|0)+40>>2]|0)>>>0<(c[(c[g>>2]|0)+28>>2]|0)>>>0:0){if((c[(c[h>>2]|0)+12>>2]|0)==0?(c[(c[h>>2]|0)+20>>2]|0)>>>0<=(c[(c[g>>2]|0)+40>>2]|0)>>>0:0)break;d=c[(c[g>>2]|0)+160>>2]|0;d=rR(d|0,((d|0)<0)<<31>>31|0,c[(c[g>>2]|0)+28>>2]|0,0)|0;b=f;c[b>>2]=d;c[b+4>>2]=C;Js(c[(c[g>>2]|0)+64>>2]|0,5,f);c[(c[g>>2]|0)+40>>2]=c[(c[g>>2]|0)+28>>2]}while(0);while(1){if(!((c[m>>2]|0)==0?(c[h>>2]|0)!=0:0))break;c[l>>2]=c[(c[h>>2]|0)+20>>2];if((c[l>>2]|0)>>>0<=(c[(c[g>>2]|0)+28>>2]|0)>>>0?0==((e[(c[h>>2]|0)+24>>1]|0)&32|0):0){b=c[(c[g>>2]|0)+160>>2]|0;b=rR((c[l>>2]|0)-1|0,0,b|0,((b|0)<0)<<31>>31|0)|0;f=j;c[f>>2]=b;c[f+4>>2]=C;if((c[(c[h>>2]|0)+20>>2]|0)==1)qt(c[h>>2]|0);c[k>>2]=c[(c[h>>2]|0)+4>>2];f=j;c[m>>2]=Fg(c[(c[g>>2]|0)+64>>2]|0,c[k>>2]|0,c[(c[g>>2]|0)+160>>2]|0,c[f>>2]|0,c[f+4>>2]|0)|0;if((c[l>>2]|0)==1){d=(c[g>>2]|0)+112|0;b=(c[k>>2]|0)+24|0;f=d+16|0;do{a[d>>0]=a[b>>0]|0;d=d+1|0;b=b+1|0}while((d|0)<(f|0))}if((c[l>>2]|0)>>>0>(c[(c[g>>2]|0)+36>>2]|0)>>>0)c[(c[g>>2]|0)+36>>2]=c[l>>2];f=(c[g>>2]|0)+192+8|0;c[f>>2]=(c[f>>2]|0)+1;_r(c[(c[g>>2]|0)+96>>2]|0,c[l>>2]|0,c[(c[h>>2]|0)+4>>2]|0)}c[h>>2]=c[(c[h>>2]|0)+12>>2]}i=n;return c[m>>2]|0}function pt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;f=i;i=i+16|0;j=f+12|0;h=f+8|0;g=f+4|0;e=f;c[j>>2]=a;c[h>>2]=b;c[g>>2]=d;c[g>>2]=c[g>>2]|30;c[e>>2]=Vr(c[c[j>>2]>>2]|0,0,c[h>>2]|0,c[g>>2]|0,0)|0;i=f;return c[e>>2]|0}function qt(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=($q((c[(c[d>>2]|0)+16>>2]|0)+112|0)|0)+1;Xs((c[(c[d>>2]|0)+4>>2]|0)+24|0,c[e>>2]|0);Xs((c[(c[d>>2]|0)+4>>2]|0)+92|0,c[e>>2]|0);Xs((c[(c[d>>2]|0)+4>>2]|0)+96|0,3011e3);i=b;return}function rt(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;c[d>>2]=c[(c[b>>2]|0)+44>>2];if((c[d>>2]|0)==0?0==(sr(c[b>>2]|0)|0):0)c[d>>2]=ut(c[b>>2]|0,4)|0;i=e;return c[d>>2]|0}function st(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;l=i;i=i+32|0;f=l+20|0;k=l+16|0;j=l+12|0;g=l+8|0;h=l+4|0;e=l;c[f>>2]=b;c[k>>2]=0;c[j>>2]=c[(c[f>>2]|0)+208>>2];c[g>>2]=c[(c[f>>2]|0)+160>>2];if((c[g>>2]|0)>>>0>(c[(c[f>>2]|0)+156>>2]|0)>>>0)c[g>>2]=c[(c[f>>2]|0)+156>>2];c[e>>2]=0;while(1){if((c[e>>2]|0)>=(c[(c[f>>2]|0)+104>>2]|0))break;b=(c[(c[f>>2]|0)+100>>2]|0)+((c[e>>2]|0)*48|0)+8|0;if((c[b>>2]|0)==0&(c[b+4>>2]|0)==0){n=(c[f>>2]|0)+80|0;m=c[n+4>>2]|0;b=(c[(c[f>>2]|0)+100>>2]|0)+((c[e>>2]|0)*48|0)+8|0;c[b>>2]=c[n>>2];c[b+4>>2]=m}c[e>>2]=(c[e>>2]|0)+1}b=fs(c[f>>2]|0)|0;m=C;n=(c[f>>2]|0)+80|0;c[n>>2]=b;c[n+4>>2]=m;n=(c[f>>2]|0)+88|0;c[n>>2]=b;c[n+4>>2]=m;if(((d[(c[f>>2]|0)+7>>0]|0|0)==0?(d[(c[f>>2]|0)+5>>0]|0|0)!=4:0)?((Sr(c[(c[f>>2]|0)+64>>2]|0)|0)&512|0)==0:0){e=c[j>>2]|0;b=e+12|0;do{a[e>>0]=0;e=e+1|0}while((e|0)<(b|0))}else{n=c[j>>2]|0;a[n>>0]=a[26758]|0;a[n+1>>0]=a[26759]|0;a[n+2>>0]=a[26760]|0;a[n+3>>0]=a[26761]|0;a[n+4>>0]=a[26762]|0;a[n+5>>0]=a[26763]|0;a[n+6>>0]=a[26764]|0;a[n+7>>0]=a[26765]|0;Xs((c[j>>2]|0)+8|0,-1)}Sd(4,(c[f>>2]|0)+52|0);Xs((c[j>>2]|0)+12|0,c[(c[f>>2]|0)+52>>2]|0);Xs((c[j>>2]|0)+16|0,c[(c[f>>2]|0)+32>>2]|0);Xs((c[j>>2]|0)+20|0,c[(c[f>>2]|0)+156>>2]|0);Xs((c[j>>2]|0)+24|0,c[(c[f>>2]|0)+160>>2]|0);kR((c[j>>2]|0)+28|0,0,(c[g>>2]|0)-28|0)|0;c[h>>2]=0;while(1){if(c[k>>2]|0){e=17;break}if((c[h>>2]|0)>>>0>=(c[(c[f>>2]|0)+156>>2]|0)>>>0){e=17;break}n=(c[f>>2]|0)+80|0;c[k>>2]=Fg(c[(c[f>>2]|0)+68>>2]|0,c[j>>2]|0,c[g>>2]|0,c[n>>2]|0,c[n+4>>2]|0)|0;n=(c[f>>2]|0)+80|0;m=n;m=gR(c[m>>2]|0,c[m+4>>2]|0,c[g>>2]|0,0)|0;c[n>>2]=m;c[n+4>>2]=C;c[h>>2]=(c[h>>2]|0)+(c[g>>2]|0)}if((e|0)==17){i=l;return c[k>>2]|0}return 0}function tt(a){a=a|0;var d=0,f=0,g=0;g=i;i=i+16|0;d=g+4|0;f=g;c[d>>2]=a;c[f>>2]=c[c[d>>2]>>2];while(1){if(!(c[f>>2]|0))break;a=(c[f>>2]|0)+24|0;b[a>>1]=(e[a>>1]|0)&-9;c[f>>2]=c[(c[f>>2]|0)+32>>2]}c[(c[d>>2]|0)+8>>2]=c[(c[d>>2]|0)+4>>2];i=g;return}function ut(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;e=g+4|0;f=g;c[d>>2]=a;c[e>>2]=b;while(1){c[f>>2]=vt(c[d>>2]|0,c[e>>2]|0)|0;if((c[f>>2]|0)!=5){d=4;break}if(!(Tb[c[(c[d>>2]|0)+184>>2]&255](c[(c[d>>2]|0)+188>>2]|0)|0)){d=4;break}}if((d|0)==4){i=g;return c[f>>2]|0}return 0}function vt(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0;j=i;i=i+16|0;f=j+8|0;g=j+4|0;h=j;c[f>>2]=b;c[g>>2]=e;c[h>>2]=0;if((d[(c[f>>2]|0)+18>>0]|0|0)>=(c[g>>2]|0)?(d[(c[f>>2]|0)+18>>0]|0|0)!=5:0){h=c[h>>2]|0;i=j;return h|0}if(d[(c[f>>2]|0)+14>>0]|0)e=0;else e=Hs(c[(c[f>>2]|0)+64>>2]|0,c[g>>2]|0)|0;c[h>>2]=e;if(c[h>>2]|0){h=c[h>>2]|0;i=j;return h|0}if(!((c[g>>2]|0)==4?1:(d[(c[f>>2]|0)+18>>0]|0|0)!=5)){h=c[h>>2]|0;i=j;return h|0}a[(c[f>>2]|0)+18>>0]=c[g>>2];h=c[h>>2]|0;i=j;return h|0}function wt(f,g,h,j,k,l){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;M=i;i=i+176|0;u=M+128|0;v=M+124|0;w=M+120|0;x=M+116|0;y=M+112|0;z=M+108|0;A=M+104|0;H=M+100|0;B=M+96|0;F=M+92|0;G=M+88|0;E=M+84|0;K=M+80|0;D=M+40|0;L=M+16|0;p=M+76|0;o=M+72|0;n=M+136|0;m=M+64|0;s=M+60|0;r=M+56|0;q=M+8|0;t=M+52|0;I=M+48|0;J=M;c[v>>2]=f;c[w>>2]=g;c[x>>2]=h;c[y>>2]=j;c[z>>2]=k;c[A>>2]=l;c[G>>2]=0;c[E>>2]=0;c[p>>2]=0;c[o>>2]=ts(c[v>>2]|0)|0;if(vQ((c[v>>2]|0)+52|0,c[o>>2]|0,48)|0)c[p>>2]=(c[(c[o>>2]|0)+16>>2]|0)+1;g=xt(c[v>>2]|0)|0;c[H>>2]=g;if(g){c[u>>2]=c[H>>2];L=c[u>>2]|0;i=M;return L|0}c[B>>2]=c[(c[v>>2]|0)+52+16>>2];if(!(c[B>>2]|0)){Xs(n,931071618|(a[960]|0)==0);Xs(n+4|0,3007e3);Xs(n+8|0,c[w>>2]|0);Xs(n+12|0,c[(c[v>>2]|0)+112>>2]|0);if(!(c[(c[v>>2]|0)+112>>2]|0))Sd(8,(c[v>>2]|0)+52+32|0);g=n+16|0;l=(c[v>>2]|0)+52+32|0;a[g>>0]=a[l>>0]|0;a[g+1>>0]=a[l+1>>0]|0;a[g+2>>0]=a[l+2>>0]|0;a[g+3>>0]=a[l+3>>0]|0;a[g+4>>0]=a[l+4>>0]|0;a[g+5>>0]=a[l+5>>0]|0;a[g+6>>0]=a[l+6>>0]|0;a[g+7>>0]=a[l+7>>0]|0;Zs(1,n,24,0,m);Xs(n+24|0,c[m>>2]|0);Xs(n+28|0,c[m+4>>2]|0);c[(c[v>>2]|0)+36>>2]=c[w>>2];a[(c[v>>2]|0)+52+13>>0]=(a[960]|0)==0;c[(c[v>>2]|0)+52+24>>2]=c[m>>2];c[(c[v>>2]|0)+52+24+4>>2]=c[m+4>>2];a[(c[v>>2]|0)+47>>0]=1;c[H>>2]=Fg(c[(c[v>>2]|0)+8>>2]|0,n,32,0,0)|0;if(c[H>>2]|0){c[u>>2]=c[H>>2];L=c[u>>2]|0;i=M;return L|0}if(((c[A>>2]|0)!=0?(d[(c[v>>2]|0)+48>>0]|0)!=0:0)?(c[H>>2]=or(c[(c[v>>2]|0)+8>>2]|0,c[A>>2]&19)|0,(c[H>>2]|0)!=0):0){c[u>>2]=c[H>>2];L=c[u>>2]|0;i=M;return L|0}}c[L>>2]=c[v>>2];c[L+4>>2]=c[(c[v>>2]|0)+8>>2];l=L+8|0;c[l>>2]=0;c[l+4>>2]=0;c[L+16>>2]=c[A>>2];c[L+20>>2]=c[w>>2];l=(c[w>>2]|0)+24|0;l=rR((c[B>>2]|0)+1-1|0,0,l|0,((l|0)<0)<<31>>31|0)|0;l=gR(32,0,l|0,C|0)|0;g=D;c[g>>2]=l;c[g+4>>2]=C;c[K>>2]=(c[w>>2]|0)+24;c[F>>2]=c[x>>2];while(1){if(!(c[F>>2]|0)){m=30;break}if(((c[p>>2]|0)!=0?(c[z>>2]|0)==0?1:(c[(c[F>>2]|0)+12>>2]|0)!=0:0)?(c[r>>2]=0,xs(c[v>>2]|0,c[(c[F>>2]|0)+20>>2]|0,r)|0,(c[r>>2]|0)>>>0>=(c[p>>2]|0)>>>0):0){l=(c[w>>2]|0)+24|0;l=rR((c[r>>2]|0)-1|0,0,l|0,((l|0)<0)<<31>>31|0)|0;l=gR(32,0,l|0,C|0)|0;l=gR(l|0,C|0,24,0)|0;g=q;c[g>>2]=l;c[g+4>>2]=C;if(!((c[(c[v>>2]|0)+104>>2]|0)!=0?(c[r>>2]|0)>>>0>=(c[(c[v>>2]|0)+104>>2]|0)>>>0:0))c[(c[v>>2]|0)+104>>2]=c[r>>2];c[t>>2]=c[(c[F>>2]|0)+4>>2];g=q;c[H>>2]=Fg(c[(c[v>>2]|0)+8>>2]|0,c[t>>2]|0,c[w>>2]|0,c[g>>2]|0,c[g+4>>2]|0)|0;if(c[H>>2]|0){m=22;break}g=(c[F>>2]|0)+24|0;b[g>>1]=e[g>>1]&-129}else{c[B>>2]=(c[B>>2]|0)+1;if(c[z>>2]|0)m=(c[(c[F>>2]|0)+12>>2]|0)==0?c[y>>2]|0:0;else m=0;c[s>>2]=m;g=D;c[H>>2]=yt(L,c[F>>2]|0,c[s>>2]|0,c[g>>2]|0,c[g+4>>2]|0)|0;if(c[H>>2]|0){m=27;break}c[G>>2]=c[F>>2];l=c[K>>2]|0;g=D;l=gR(c[g>>2]|0,c[g+4>>2]|0,l|0,((l|0)<0)<<31>>31|0)|0;g=D;c[g>>2]=l;c[g+4>>2]=C;g=(c[F>>2]|0)+24|0;b[g>>1]=e[g>>1]|128}c[F>>2]=c[(c[F>>2]|0)+12>>2]}if((m|0)==22){c[u>>2]=c[H>>2];L=c[u>>2]|0;i=M;return L|0}else if((m|0)==27){c[u>>2]=c[H>>2];L=c[u>>2]|0;i=M;return L|0}else if((m|0)==30){if(((c[z>>2]|0)!=0?(c[(c[v>>2]|0)+104>>2]|0)!=0:0)?(c[H>>2]=zt(c[v>>2]|0,c[B>>2]|0)|0,(c[H>>2]|0)!=0):0){c[u>>2]=c[H>>2];L=c[u>>2]|0;i=M;return L|0}a:do if((c[z>>2]|0)!=0?(c[A>>2]&32|0)!=0:0){if(!(a[(c[v>>2]|0)+49>>0]|0)){c[H>>2]=or(c[L+4>>2]|0,c[A>>2]&19)|0;break}c[I>>2]=Tr(c[(c[v>>2]|0)+8>>2]|0)|0;t=D;A=c[I>>2]|0;A=gR(c[t>>2]|0,c[t+4>>2]|0,A|0,((A|0)<0)<<31>>31|0)|0;A=fR(A|0,C|0,1,0)|0;t=c[I>>2]|0;t=pR(A|0,C|0,t|0,((t|0)<0)<<31>>31|0)|0;A=c[I>>2]|0;A=rR(t|0,C|0,A|0,((A|0)<0)<<31>>31|0)|0;I=L+8|0;c[I>>2]=A;c[I+4>>2]=C;while(1){A=D;s=c[A+4>>2]|0;I=L+8|0;t=c[I+4>>2]|0;if(!((s|0)<(t|0)|((s|0)==(t|0)?(c[A>>2]|0)>>>0<(c[I>>2]|0)>>>0:0)))break a;I=D;c[H>>2]=yt(L,c[G>>2]|0,c[y>>2]|0,c[I>>2]|0,c[I+4>>2]|0)|0;if(c[H>>2]|0)break;A=c[K>>2]|0;I=D;A=gR(c[I>>2]|0,c[I+4>>2]|0,A|0,((A|0)<0)<<31>>31|0)|0;I=D;c[I>>2]=A;c[I+4>>2]=C;c[E>>2]=(c[E>>2]|0)+1}c[u>>2]=c[H>>2];L=c[u>>2]|0;i=M;return L|0}while(0);if(((c[z>>2]|0)!=0?(d[(c[v>>2]|0)+47>>0]|0)!=0:0)?(L=(c[v>>2]|0)+16|0,K=c[L+4>>2]|0,(K|0)>0|(K|0)==0&(c[L>>2]|0)>>>0>=0):0){L=(c[v>>2]|0)+16|0;D=c[L+4>>2]|0;K=J;c[K>>2]=c[L>>2];c[K+4>>2]=D;K=(c[w>>2]|0)+24|0;K=rR((c[B>>2]|0)+(c[E>>2]|0)+1-1|0,0,K|0,((K|0)<0)<<31>>31|0)|0;K=gR(32,0,K|0,C|0)|0;D=C;L=(c[v>>2]|0)+16|0;I=c[L+4>>2]|0;if((D|0)>(I|0)|((D|0)==(I|0)?K>>>0>(c[L>>2]|0)>>>0:0)){K=(c[w>>2]|0)+24|0;K=rR((c[B>>2]|0)+(c[E>>2]|0)+1-1|0,0,K|0,((K|0)<0)<<31>>31|0)|0;K=gR(32,0,K|0,C|0)|0;L=J;c[L>>2]=K;c[L+4>>2]=C}L=J;Ks(c[v>>2]|0,c[L>>2]|0,c[L+4>>2]|0);a[(c[v>>2]|0)+47>>0]=0}c[B>>2]=c[(c[v>>2]|0)+52+16>>2];c[F>>2]=c[x>>2];while(1){if(!((c[F>>2]|0)!=0?(c[H>>2]|0)==0:0))break;if(e[(c[F>>2]|0)+24>>1]&128){c[B>>2]=(c[B>>2]|0)+1;c[H>>2]=gt(c[v>>2]|0,c[B>>2]|0,c[(c[F>>2]|0)+20>>2]|0)|0}c[F>>2]=c[(c[F>>2]|0)+12>>2]}while(1){if(!((c[H>>2]|0)==0?(c[E>>2]|0)>0:0))break;c[B>>2]=(c[B>>2]|0)+1;c[E>>2]=(c[E>>2]|0)+-1;c[H>>2]=gt(c[v>>2]|0,c[B>>2]|0,c[(c[G>>2]|0)+20>>2]|0)|0}if(!(c[H>>2]|0)){b[(c[v>>2]|0)+52+14>>1]=c[w>>2]&65280|c[w>>2]>>16;c[(c[v>>2]|0)+52+16>>2]=c[B>>2];if(c[z>>2]|0){L=(c[v>>2]|0)+52+8|0;c[L>>2]=(c[L>>2]|0)+1;c[(c[v>>2]|0)+52+20>>2]=c[y>>2]}if(c[z>>2]|0){Ys(c[v>>2]|0);c[(c[v>>2]|0)+12>>2]=c[B>>2]}}c[u>>2]=c[H>>2];L=c[u>>2]|0;i=M;return L|0}return 0}function xt(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;d=l+24|0;e=l+20|0;j=l+16|0;f=l+12|0;h=l+8|0;k=l+4|0;g=l;c[e>>2]=a;c[j>>2]=0;if(!(b[(c[e>>2]|0)+40>>1]|0)){c[h>>2]=Ss(c[e>>2]|0)|0;do if((c[c[h>>2]>>2]|0)>>>0>0){Sd(4,k);c[j>>2]=Ns(c[e>>2]|0,4,4)|0;if(!(c[j>>2]|0)){Vs(c[e>>2]|0,c[k>>2]|0);Br(c[e>>2]|0,4,4);break}if((c[j>>2]|0)!=5){c[d>>2]=c[j>>2];k=c[d>>2]|0;i=l;return k|0}}while(0);zr(c[e>>2]|0,3);b[(c[e>>2]|0)+40>>1]=-1;c[f>>2]=0;do{a=c[e>>2]|0;k=(c[f>>2]|0)+1|0;c[f>>2]=k;c[j>>2]=Ct(a,g,1,k)|0}while((c[j>>2]|0)==-1)}c[d>>2]=c[j>>2];k=c[d>>2]|0;i=l;return k|0}function yt(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;m=i;i=i+64|0;g=m+28|0;h=m+24|0;p=m+20|0;o=m+16|0;j=m;l=m+12|0;k=m+8|0;n=m+32|0;c[h>>2]=a;c[p>>2]=b;c[o>>2]=d;b=j;c[b>>2]=e;c[b+4>>2]=f;c[k>>2]=c[(c[p>>2]|0)+4>>2];At(c[c[h>>2]>>2]|0,c[(c[p>>2]|0)+20>>2]|0,c[o>>2]|0,c[k>>2]|0,n);b=j;c[l>>2]=Bt(c[h>>2]|0,n,24,c[b>>2]|0,c[b+4>>2]|0)|0;if(c[l>>2]|0){c[g>>2]=c[l>>2];p=c[g>>2]|0;i=m;return p|0}else{b=c[h>>2]|0;n=c[k>>2]|0;o=c[(c[h>>2]|0)+20>>2]|0;p=j;p=gR(c[p>>2]|0,c[p+4>>2]|0,24,0)|0;c[l>>2]=Bt(b,n,o,p,C)|0;c[g>>2]=c[l>>2];p=c[g>>2]|0;i=m;return p|0}return 0}function zt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+80|0;d=q+48|0;e=q+44|0;f=q+40|0;p=q+36|0;o=q+32|0;g=q+28|0;h=q+56|0;m=q+24|0;j=q+8|0;k=q;l=q+20|0;n=q+16|0;c[e>>2]=a;c[f>>2]=b;c[p>>2]=c[(c[e>>2]|0)+36>>2];c[o>>2]=0;c[g>>2]=Id((c[p>>2]|0)+24|0)|0;if(!(c[g>>2]|0)){c[d>>2]=7;p=c[d>>2]|0;i=q;return p|0}if((c[(c[e>>2]|0)+104>>2]|0)==1){a=j;c[a>>2]=24;c[a+4>>2]=0}else{b=(c[p>>2]|0)+24|0;b=rR((c[(c[e>>2]|0)+104>>2]|0)-1-1|0,0,b|0,((b|0)<0)<<31>>31|0)|0;b=gR(32,0,b|0,C|0)|0;b=gR(b|0,C|0,16,0)|0;a=j;c[a>>2]=b;c[a+4>>2]=C}a=j;c[o>>2]=Wr(c[(c[e>>2]|0)+8>>2]|0,c[g>>2]|0,8,c[a>>2]|0,c[a+4>>2]|0)|0;a=$q(c[g>>2]|0)|0;c[(c[e>>2]|0)+52+24>>2]=a;a=$q((c[g>>2]|0)+4|0)|0;c[(c[e>>2]|0)+52+24+4>>2]=a;c[m>>2]=c[(c[e>>2]|0)+104>>2];c[(c[e>>2]|0)+104>>2]=0;while(1){if(c[o>>2]|0)break;if((c[m>>2]|0)>>>0>(c[f>>2]|0)>>>0)break;b=(c[p>>2]|0)+24|0;b=rR((c[m>>2]|0)-1|0,0,b|0,((b|0)<0)<<31>>31|0)|0;b=gR(32,0,b|0,C|0)|0;a=k;c[a>>2]=b;c[a+4>>2]=C;a=k;c[o>>2]=Wr(c[(c[e>>2]|0)+8>>2]|0,c[g>>2]|0,(c[p>>2]|0)+24|0,c[a>>2]|0,c[a+4>>2]|0)|0;if(!(c[o>>2]|0)){c[l>>2]=$q(c[g>>2]|0)|0;c[n>>2]=$q((c[g>>2]|0)+4|0)|0;At(c[e>>2]|0,c[l>>2]|0,c[n>>2]|0,(c[g>>2]|0)+24|0,h);a=k;c[o>>2]=Fg(c[(c[e>>2]|0)+8>>2]|0,h,24,c[a>>2]|0,c[a+4>>2]|0)|0}c[m>>2]=(c[m>>2]|0)+1}Kd(c[g>>2]|0);c[d>>2]=c[o>>2];p=c[d>>2]|0;i=q;return p|0}function At(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;o=i;i=i+32|0;j=o+24|0;q=o+20|0;p=o+16|0;k=o+12|0;l=o+8|0;n=o+4|0;m=o;c[j>>2]=b;c[q>>2]=e;c[p>>2]=f;c[k>>2]=g;c[l>>2]=h;c[m>>2]=(c[j>>2]|0)+52+24;Xs(c[l>>2]|0,c[q>>2]|0);Xs((c[l>>2]|0)+4|0,c[p>>2]|0);g=(c[l>>2]|0)+8|0;if(!(c[(c[j>>2]|0)+104>>2]|0)){q=(c[j>>2]|0)+52+32|0;a[g>>0]=a[q>>0]|0;a[g+1>>0]=a[q+1>>0]|0;a[g+2>>0]=a[q+2>>0]|0;a[g+3>>0]=a[q+3>>0]|0;a[g+4>>0]=a[q+4>>0]|0;a[g+5>>0]=a[q+5>>0]|0;a[g+6>>0]=a[q+6>>0]|0;a[g+7>>0]=a[q+7>>0]|0;c[n>>2]=(d[(c[j>>2]|0)+52+13>>0]|0)==((a[960]|0)==0|0)&1;Zs(c[n>>2]|0,c[l>>2]|0,8,c[m>>2]|0,c[m>>2]|0);Zs(c[n>>2]|0,c[k>>2]|0,c[(c[j>>2]|0)+36>>2]|0,c[m>>2]|0,c[m>>2]|0);Xs((c[l>>2]|0)+16|0,c[c[m>>2]>>2]|0);Xs((c[l>>2]|0)+20|0,c[(c[m>>2]|0)+4>>2]|0);i=o;return}else{h=g+16|0;do{a[g>>0]=0;g=g+1|0}while((g|0)<(h|0));i=o;return}}function Bt(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;g=o+28|0;h=o+24|0;j=o+20|0;k=o+16|0;l=o;n=o+12|0;m=o+8|0;c[h>>2]=a;c[j>>2]=b;c[k>>2]=d;a=l;c[a>>2]=e;c[a+4>>2]=f;a=l;f=c[a+4>>2]|0;b=(c[h>>2]|0)+8|0;d=c[b+4>>2]|0;if((f|0)<(d|0)|((f|0)==(d|0)?(c[a>>2]|0)>>>0<(c[b>>2]|0)>>>0:0)?(f=l,a=c[k>>2]|0,a=gR(c[f>>2]|0,c[f+4>>2]|0,a|0,((a|0)<0)<<31>>31|0)|0,f=C,b=(c[h>>2]|0)+8|0,d=c[b+4>>2]|0,(f|0)>(d|0)|((f|0)==(d|0)?a>>>0>=(c[b>>2]|0)>>>0:0)):0){a=(c[h>>2]|0)+8|0;b=l;b=fR(c[a>>2]|0,c[a+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;c[m>>2]=b;b=l;c[n>>2]=Fg(c[(c[h>>2]|0)+4>>2]|0,c[j>>2]|0,c[m>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;if(c[n>>2]|0){c[g>>2]=c[n>>2];n=c[g>>2]|0;i=o;return n|0}a=c[m>>2]|0;b=l;a=gR(c[b>>2]|0,c[b+4>>2]|0,a|0,((a|0)<0)<<31>>31|0)|0;b=l;c[b>>2]=a;c[b+4>>2]=C;c[k>>2]=(c[k>>2]|0)-(c[m>>2]|0);c[j>>2]=(c[j>>2]|0)+(c[m>>2]|0);c[n>>2]=or(c[(c[h>>2]|0)+4>>2]|0,c[(c[h>>2]|0)+16>>2]&19)|0;if((c[k>>2]|0)==0|(c[n>>2]|0)!=0){c[g>>2]=c[n>>2];n=c[g>>2]|0;i=o;return n|0}}b=l;c[n>>2]=Fg(c[(c[h>>2]|0)+4>>2]|0,c[j>>2]|0,c[k>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;c[g>>2]=c[n>>2];n=c[g>>2]|0;i=o;return n|0}function Ct(a,e,f,g){a=a|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=i;i=i+64|0;v=w+48|0;h=w+44|0;j=w+40|0;k=w+36|0;l=w+32|0;r=w+28|0;p=w+24|0;o=w+20|0;m=w+16|0;s=w+12|0;n=w+8|0;q=w+4|0;t=w;c[h>>2]=a;c[j>>2]=e;c[k>>2]=f;c[l>>2]=g;c[s>>2]=0;if((c[l>>2]|0)>5){c[q>>2]=1;if((c[l>>2]|0)>100){c[v>>2]=15;v=c[v>>2]|0;i=w;return v|0}if((c[l>>2]|0)>=10)c[q>>2]=(_((c[l>>2]|0)-9|0,(c[l>>2]|0)-9|0)|0)*39;ri(c[c[h>>2]>>2]|0,c[q>>2]|0)|0}if(!(c[k>>2]|0)){c[s>>2]=Ps(c[h>>2]|0,c[j>>2]|0)|0;do if((c[s>>2]|0)==5){if(!(c[c[(c[h>>2]|0)+32>>2]>>2]|0)){c[s>>2]=-1;break}f=yr(c[h>>2]|0,2)|0;c[s>>2]=f;if(!f){zr(c[h>>2]|0,2);c[s>>2]=-1;break}if((c[s>>2]|0)==5)c[s>>2]=261}while(0);if(c[s>>2]|0){c[v>>2]=c[s>>2];v=c[v>>2]|0;i=w;return v|0}}c[r>>2]=Ss(c[h>>2]|0)|0;do if((c[k>>2]|0)==0?(c[c[r>>2]>>2]|0)==(c[(c[h>>2]|0)+52+16>>2]|0):0){c[s>>2]=yr(c[h>>2]|0,3)|0;_s(c[h>>2]|0);if(c[s>>2]|0){if((c[s>>2]|0)==5)break;c[v>>2]=c[s>>2];v=c[v>>2]|0;i=w;return v|0}u=ts(c[h>>2]|0)|0;u=(vQ(u,(c[h>>2]|0)+52|0,48)|0)!=0;h=c[h>>2]|0;if(u){zr(h,3);c[v>>2]=-1;v=c[v>>2]|0;i=w;return v|0}else{b[h+40>>1]=0;c[v>>2]=0;v=c[v>>2]|0;i=w;return v|0}}while(0);c[p>>2]=0;c[o>>2]=0;c[n>>2]=c[(c[h>>2]|0)+52+16>>2];c[m>>2]=1;while(1){if((c[m>>2]|0)>=5)break;c[t>>2]=c[(c[r>>2]|0)+4+(c[m>>2]<<2)>>2];if((c[p>>2]|0)>>>0<=(c[t>>2]|0)>>>0?(c[t>>2]|0)>>>0<=(c[n>>2]|0)>>>0:0){c[p>>2]=c[t>>2];c[o>>2]=c[m>>2]}c[m>>2]=(c[m>>2]|0)+1}a:do if(((d[(c[h>>2]|0)+46>>0]|0)&2|0)==0?(c[o>>2]|0)==0?1:(c[p>>2]|0)>>>0<(c[n>>2]|0)>>>0:0){c[m>>2]=1;while(1){if((c[m>>2]|0)>=5)break a;c[s>>2]=Ns(c[h>>2]|0,3+(c[m>>2]|0)|0,1)|0;if(!(c[s>>2]|0)){u=36;break}if((c[s>>2]|0)!=5)break;c[m>>2]=(c[m>>2]|0)+1}if((u|0)==36){u=c[n>>2]|0;c[(c[r>>2]|0)+4+(c[m>>2]<<2)>>2]=u;c[p>>2]=u;c[o>>2]=c[m>>2];Br(c[h>>2]|0,3+(c[m>>2]|0)|0,1);break}c[v>>2]=c[s>>2];v=c[v>>2]|0;i=w;return v|0}while(0);if(!(c[o>>2]|0)){c[v>>2]=(c[s>>2]|0)==5?-1:520;v=c[v>>2]|0;i=w;return v|0}c[s>>2]=yr(c[h>>2]|0,3+(c[o>>2]|0)|0)|0;if(c[s>>2]|0){c[v>>2]=(c[s>>2]|0)==5?-1:c[s>>2]|0;v=c[v>>2]|0;i=w;return v|0}c[(c[h>>2]|0)+100>>2]=(c[c[r>>2]>>2]|0)+1;_s(c[h>>2]|0);if((c[(c[r>>2]|0)+4+(c[o>>2]<<2)>>2]|0)==(c[p>>2]|0)?(u=ts(c[h>>2]|0)|0,(vQ(u,(c[h>>2]|0)+52|0,48)|0)==0):0){b[(c[h>>2]|0)+40>>1]=c[o>>2];c[v>>2]=c[s>>2];v=c[v>>2]|0;i=w;return v|0}zr(c[h>>2]|0,3+(c[o>>2]|0)|0);c[v>>2]=-1;v=c[v>>2]|0;i=w;return v|0}function Dt(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0;h=i;i=i+32|0;g=h+20|0;j=h+16|0;e=h+12|0;d=h+8|0;f=h+4|0;b=h;c[j>>2]=a;c[e>>2]=c[(c[j>>2]|0)+16>>2];c[f>>2]=c[(c[j>>2]|0)+20>>2];c[b>>2]=0;while(1){if((c[b>>2]|0)>=(c[(c[e>>2]|0)+104>>2]|0)){b=7;break}c[d>>2]=(c[(c[e>>2]|0)+100>>2]|0)+((c[b>>2]|0)*48|0);if((c[(c[d>>2]|0)+20>>2]|0)>>>0>=(c[f>>2]|0)>>>0?0==(lj(c[(c[d>>2]|0)+16>>2]|0,c[f>>2]|0)|0):0){b=5;break}c[b>>2]=(c[b>>2]|0)+1}if((b|0)==5){c[g>>2]=1;j=c[g>>2]|0;i=h;return j|0}else if((b|0)==7){c[g>>2]=0;j=c[g>>2]|0;i=h;return j|0}return 0}function Et(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;b=k+24|0;j=k+20|0;h=k+16|0;f=k+12|0;e=k;g=k+8|0;c[b>>2]=a;c[j>>2]=0;c[h>>2]=c[(c[b>>2]|0)+16>>2];if(((d[(c[h>>2]|0)+5>>0]|0|0)!=2?(c[j>>2]=Ft(c[h>>2]|0)|0,(c[j>>2]|0)==0):0)?(c[f>>2]=c[(c[b>>2]|0)+4>>2],l=4+(c[(c[h>>2]|0)+160>>2]|0)|0,l=rR(c[(c[h>>2]|0)+56>>2]|0,0,l|0,((l|0)<0)<<31>>31|0)|0,a=e,c[a>>2]=l,c[a+4>>2]=C,c[g>>2]=c[f>>2],a=e,c[j>>2]=Gt(c[(c[h>>2]|0)+72>>2]|0,c[a>>2]|0,c[a+4>>2]|0,c[(c[b>>2]|0)+20>>2]|0)|0,(c[j>>2]|0)==0):0){f=c[(c[h>>2]|0)+72>>2]|0;g=c[g>>2]|0;a=c[(c[h>>2]|0)+160>>2]|0;l=e;l=gR(c[l>>2]|0,c[l+4>>2]|0,4,0)|0;c[j>>2]=Fg(f,g,a,l,C)|0}if(c[j>>2]|0){l=c[j>>2]|0;i=k;return l|0}l=(c[h>>2]|0)+56|0;c[l>>2]=(c[l>>2]|0)+1;c[j>>2]=Ht(c[h>>2]|0,c[(c[b>>2]|0)+20>>2]|0)|0;l=c[j>>2]|0;i=k;return l|0}function Ft(a){a=a|0;var b=0,e=0,f=0;f=i;i=i+16|0;b=f+4|0;e=f;c[b>>2]=a;c[e>>2]=0;if(c[c[(c[b>>2]|0)+72>>2]>>2]|0){e=c[e>>2]|0;i=f;return e|0}if((d[(c[b>>2]|0)+5>>0]|0|0)!=4?(d[(c[b>>2]|0)+22>>0]|0|0)==0:0){c[e>>2]=pt(c[b>>2]|0,c[(c[b>>2]|0)+72>>2]|0,8192)|0;e=c[e>>2]|0;i=f;return e|0}Ir(c[(c[b>>2]|0)+72>>2]|0);e=c[e>>2]|0;i=f;return e|0}function Gt(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+32|0;h=f+12|0;j=f;k=f+8|0;g=f+16|0;c[h>>2]=a;a=j;c[a>>2]=b;c[a+4>>2]=d;c[k>>2]=e;Xs(g,c[k>>2]|0);e=j;e=Fg(c[h>>2]|0,g,4,c[e>>2]|0,c[e+4>>2]|0)|0;i=f;return e|0}function Ht(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+32|0;d=j+16|0;e=j+12|0;f=j+8|0;h=j+4|0;g=j;c[d>>2]=a;c[e>>2]=b;c[h>>2]=0;c[f>>2]=0;while(1){if((c[f>>2]|0)>=(c[(c[d>>2]|0)+104>>2]|0))break;c[g>>2]=(c[(c[d>>2]|0)+100>>2]|0)+((c[f>>2]|0)*48|0);if((c[e>>2]|0)>>>0<=(c[(c[g>>2]|0)+20>>2]|0)>>>0){b=gj(c[(c[g>>2]|0)+16>>2]|0,c[e>>2]|0)|0;c[h>>2]=c[h>>2]|b}c[f>>2]=(c[f>>2]|0)+1}i=j;return c[h>>2]|0}function It(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c[(c[b>>2]|0)+8>>2]|0}function Jt(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=vs(c[d>>2]|0)|0;i=b;return a|0}function Kt(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=i;i=i+64|0;l=x+40|0;m=x+36|0;t=x+50|0;o=x+52|0;n=x+32|0;j=x+28|0;w=x+24|0;g=x+48|0;r=x+20|0;v=x+16|0;p=x+12|0;q=x+8|0;h=x+4|0;k=x;s=x+46|0;u=x+44|0;c[m>>2]=f;do if(!(a[c[m>>2]>>0]|0)){c[j>>2]=c[(c[m>>2]|0)+52>>2];a[o>>0]=a[(c[m>>2]|0)+5>>0]|0;c[n>>2]=c[(c[m>>2]|0)+56>>2];if(Lt(c[m>>2]|0,d[(c[n>>2]|0)+(d[o>>0]|0)>>0]|0)|0){c[l>>2]=Lj(57320)|0;w=c[l>>2]|0;i=x;return w|0}b[(c[m>>2]|0)+20>>1]=(c[(c[j>>2]|0)+32>>2]|0)-1;a[(c[m>>2]|0)+1>>0]=0;c[w>>2]=c[(c[j>>2]|0)+36>>2];f=(d[o>>0]|0)+8+(d[(c[m>>2]|0)+6>>0]|0)&65535;b[g>>1]=f;b[(c[m>>2]|0)+14>>1]=f;c[(c[m>>2]|0)+60>>2]=(c[n>>2]|0)+(c[w>>2]|0);c[(c[m>>2]|0)+64>>2]=(c[n>>2]|0)+(e[g>>1]|0);c[(c[m>>2]|0)+68>>2]=(c[n>>2]|0)+(d[(c[m>>2]|0)+6>>0]|0);c[v>>2]=((d[(c[n>>2]|0)+((d[o>>0]|0)+5)>>0]<<8|d[(c[n>>2]|0)+((d[o>>0]|0)+5)+1>>0])-1&65535)+1;b[(c[m>>2]|0)+18>>1]=d[(c[n>>2]|0)+((d[o>>0]|0)+3)>>0]<<8|d[(c[n>>2]|0)+((d[o>>0]|0)+3)+1>>0];if((e[(c[m>>2]|0)+18>>1]|0)>>>0>((((c[(c[j>>2]|0)+32>>2]|0)-8|0)>>>0)/6|0)>>>0){c[l>>2]=Lj(57338)|0;w=c[l>>2]|0;i=x;return w|0}c[p>>2]=(e[g>>1]|0)+(e[(c[m>>2]|0)+18>>1]<<1);c[q>>2]=(c[w>>2]|0)-4;do if(c[(c[(c[j>>2]|0)+4>>2]|0)+24>>2]&268435456){if(!(a[(c[m>>2]|0)+4>>0]|0))c[q>>2]=(c[q>>2]|0)+-1;c[h>>2]=0;while(1){if((c[h>>2]|0)>=(e[(c[m>>2]|0)+18>>1]|0)){g=17;break}b[t>>1]=d[(c[n>>2]|0)+((e[g>>1]|0)+(c[h>>2]<<1))>>0]<<8|d[(c[n>>2]|0)+((e[g>>1]|0)+(c[h>>2]<<1))+1>>0];if((e[t>>1]|0)<(c[p>>2]|0)){g=13;break}if((e[t>>1]|0)>(c[q>>2]|0)){g=13;break}c[k>>2]=(Yb[c[(c[m>>2]|0)+76>>2]&255](c[m>>2]|0,(c[n>>2]|0)+(e[t>>1]|0)|0)|0)&65535;if(((e[t>>1]|0)+(c[k>>2]|0)|0)>(c[w>>2]|0)){g=15;break}c[h>>2]=(c[h>>2]|0)+1}if((g|0)==13){c[l>>2]=Lj(57366)|0;w=c[l>>2]|0;i=x;return w|0}else if((g|0)==15){c[l>>2]=Lj(57371)|0;w=c[l>>2]|0;i=x;return w|0}else if((g|0)==17){if(a[(c[m>>2]|0)+4>>0]|0)break;c[q>>2]=(c[q>>2]|0)+1;break}}while(0);b[t>>1]=d[(c[n>>2]|0)+((d[o>>0]|0)+1)>>0]<<8|d[(c[n>>2]|0)+((d[o>>0]|0)+1)+1>>0];c[r>>2]=(d[(c[n>>2]|0)+((d[o>>0]|0)+7)>>0]|0)+(c[v>>2]|0);while(1){if((e[t>>1]|0)<=0){g=29;break}if((e[t>>1]|0)<(c[p>>2]|0)){g=23;break}if((e[t>>1]|0)>(c[q>>2]|0)){g=23;break}b[s>>1]=d[(c[n>>2]|0)+(e[t>>1]|0)>>0]<<8|d[(c[n>>2]|0)+(e[t>>1]|0)+1>>0];b[u>>1]=d[(c[n>>2]|0)+((e[t>>1]|0)+2)>>0]<<8|d[(c[n>>2]|0)+((e[t>>1]|0)+2)+1>>0];if((e[s>>1]|0)>0?(e[s>>1]|0)<=((e[t>>1]|0)+(e[u>>1]|0)+3|0):0){g=27;break}if(((e[t>>1]|0)+(e[u>>1]|0)|0)>(c[w>>2]|0)){g=27;break}c[r>>2]=(c[r>>2]|0)+(e[u>>1]|0);b[t>>1]=b[s>>1]|0}if((g|0)==23){c[l>>2]=Lj(57391)|0;w=c[l>>2]|0;i=x;return w|0}else if((g|0)==27){c[l>>2]=Lj(57398)|0;w=c[l>>2]|0;i=x;return w|0}else if((g|0)==29){if((c[r>>2]|0)<=(c[w>>2]|0)){b[(c[m>>2]|0)+16>>1]=(c[r>>2]|0)-(c[p>>2]|0);a[c[m>>2]>>0]=1;break}c[l>>2]=Lj(57412)|0;w=c[l>>2]|0;i=x;return w|0}}while(0);c[l>>2]=0;w=c[l>>2]|0;i=x;return w|0}function Lt(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;l=i;i=i+16|0;h=l+12|0;j=l+8|0;g=l+4|0;k=l;c[j>>2]=e;c[g>>2]=f;a[(c[j>>2]|0)+4>>0]=c[g>>2]>>3;c[g>>2]=c[g>>2]&-9;a[(c[j>>2]|0)+6>>0]=4-(d[(c[j>>2]|0)+4>>0]<<2);c[(c[j>>2]|0)+76>>2]=188;c[k>>2]=c[(c[j>>2]|0)+52>>2];do if((c[g>>2]|0)==5){a[(c[j>>2]|0)+2>>0]=1;g=(c[j>>2]|0)+3|0;if(a[(c[j>>2]|0)+4>>0]|0){a[g>>0]=1;c[(c[j>>2]|0)+80>>2]=226}else{a[g>>0]=0;c[(c[j>>2]|0)+76>>2]=189;c[(c[j>>2]|0)+80>>2]=227}b[(c[j>>2]|0)+10>>1]=b[(c[k>>2]|0)+28>>1]|0;b[(c[j>>2]|0)+12>>1]=b[(c[k>>2]|0)+30>>1]|0}else{if((c[g>>2]|0)==2){a[(c[j>>2]|0)+2>>0]=0;a[(c[j>>2]|0)+3>>0]=0;c[(c[j>>2]|0)+80>>2]=228;b[(c[j>>2]|0)+10>>1]=b[(c[k>>2]|0)+24>>1]|0;b[(c[j>>2]|0)+12>>1]=b[(c[k>>2]|0)+26>>1]|0;break}c[h>>2]=Lj(57278)|0;k=c[h>>2]|0;i=l;return k|0}while(0);a[(c[j>>2]|0)+7>>0]=a[(c[k>>2]|0)+21>>0]|0;c[h>>2]=0;k=c[h>>2]|0;i=l;return k|0}function Mt(b,f){b=b|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;g=n+20|0;h=n+16|0;m=n+12|0;l=n+8|0;k=n+4|0;j=n;c[g>>2]=b;c[h>>2]=f;c[m>>2]=(c[h>>2]|0)+(d[(c[g>>2]|0)+6>>0]|0);c[k>>2]=d[c[m>>2]>>0];a:do if((c[k>>2]|0)>>>0>=128){c[l>>2]=(c[m>>2]|0)+8;c[k>>2]=c[k>>2]&127;do{f=c[k>>2]<<7;b=(c[m>>2]|0)+1|0;c[m>>2]=b;c[k>>2]=f|d[b>>0]&127;if((d[c[m>>2]>>0]|0)<128)break a}while((c[m>>2]|0)>>>0<(c[l>>2]|0)>>>0)}while(0);c[m>>2]=(c[m>>2]|0)+1;b:do if(a[(c[g>>2]|0)+2>>0]|0){c[l>>2]=(c[m>>2]|0)+9;do{b=c[m>>2]|0;c[m>>2]=b+1;if(!(d[b>>0]&128))break b}while((c[m>>2]|0)>>>0<(c[l>>2]|0)>>>0)}while(0);if((c[k>>2]|0)>>>0<=(e[(c[g>>2]|0)+10>>1]|0)>>>0){b=(c[k>>2]|0)+((c[m>>2]|0)-(c[h>>2]|0))|0;c[k>>2]=b;c[k>>2]=(c[k>>2]|0)>>>0<4?4:b;b=c[k>>2]|0;b=b&65535;i=n;return b|0}c[j>>2]=e[(c[g>>2]|0)+12>>1];c[k>>2]=(c[j>>2]|0)+((((c[k>>2]|0)-(c[j>>2]|0)|0)>>>0)%(((c[(c[(c[g>>2]|0)+52>>2]|0)+36>>2]|0)-4|0)>>>0)|0);if((c[k>>2]|0)>>>0>(e[(c[g>>2]|0)+10>>1]|0)>>>0)c[k>>2]=c[j>>2];c[k>>2]=(c[k>>2]|0)+(4+((c[m>>2]|0)-(c[h>>2]|0)&65535));b=c[k>>2]|0;b=b&65535;i=n;return b|0}function Nt(a,f,g){a=a|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;h=q+32|0;j=q+28|0;k=q+24|0;p=q+20|0;m=q+16|0;l=q;n=q+12|0;o=q+8|0;c[h>>2]=a;c[j>>2]=f;c[k>>2]=g;c[p>>2]=c[j>>2];c[m>>2]=d[c[p>>2]>>0];a:do if((c[m>>2]|0)>>>0>=128){c[n>>2]=(c[p>>2]|0)+8;c[m>>2]=c[m>>2]&127;do{g=c[m>>2]<<7;a=(c[p>>2]|0)+1|0;c[p>>2]=a;c[m>>2]=g|(d[a>>0]|0)&127;if((d[c[p>>2]>>0]|0|0)<128)break a}while((c[p>>2]|0)>>>0<(c[n>>2]|0)>>>0)}while(0);c[p>>2]=(c[p>>2]|0)+1;a=l;c[a>>2]=d[c[p>>2]>>0];c[a+4>>2]=0;a=l;g=c[a+4>>2]|0;b:do if(g>>>0>0|(g|0)==0&(c[a>>2]|0)>>>0>=128){c[o>>2]=(c[p>>2]|0)+7;a=l;c[a>>2]=c[l>>2]&127;c[a+4>>2]=0;do{n=l;n=lR(c[n>>2]|0,c[n+4>>2]|0,7)|0;g=(c[p>>2]|0)+1|0;c[p>>2]=g;g=(d[g>>0]|0)&127;a=l;c[a>>2]=n|g;c[a+4>>2]=C|((g|0)<0)<<31>>31;if((d[c[p>>2]>>0]|0|0)<128)break b}while((c[p>>2]|0)>>>0<(c[o>>2]|0)>>>0);o=l;o=lR(c[o>>2]|0,c[o+4>>2]|0,8)|0;g=(c[p>>2]|0)+1|0;c[p>>2]=g;a=l;c[a>>2]=o|(d[g>>0]|0);c[a+4>>2]=C}while(0);c[p>>2]=(c[p>>2]|0)+1;o=l;g=c[o+4>>2]|0;a=c[k>>2]|0;c[a>>2]=c[o>>2];c[a+4>>2]=g;c[(c[k>>2]|0)+12>>2]=c[m>>2];c[(c[k>>2]|0)+8>>2]=c[p>>2];if((c[m>>2]|0)>>>0>(e[(c[h>>2]|0)+10>>1]|0)>>>0){Rt(c[h>>2]|0,c[j>>2]|0,c[k>>2]|0);i=q;return}b[(c[k>>2]|0)+18>>1]=(c[m>>2]|0)+((c[p>>2]|0)-(c[j>>2]|0)&65535);if((e[(c[k>>2]|0)+18>>1]|0|0)<4)b[(c[k>>2]|0)+18>>1]=4;b[(c[k>>2]|0)+16>>1]=c[m>>2];i=q;return}function Ot(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+8|0;g=h+4|0;f=h;c[h+12>>2]=a;c[e>>2]=b;c[g>>2]=(c[e>>2]|0)+4;c[f>>2]=(c[g>>2]|0)+9;do{a=c[g>>2]|0;c[g>>2]=a+1;if(!((d[a>>0]|0)&128))break}while((c[g>>2]|0)>>>0<(c[f>>2]|0)>>>0);i=h;return(c[g>>2]|0)-(c[e>>2]|0)&65535|0}function Pt(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;h=f+4|0;g=f;c[f+8>>2]=a;c[h>>2]=d;c[g>>2]=e;a=4+((St((c[h>>2]|0)+4|0,c[g>>2]|0)|0)&255)&65535;b[(c[g>>2]|0)+18>>1]=a;c[(c[g>>2]|0)+12>>2]=0;b[(c[g>>2]|0)+16>>1]=0;c[(c[g>>2]|0)+8>>2]=0;i=f;return}function Qt(a,f,g){a=a|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;h=o+20|0;j=o+16|0;k=o+12|0;n=o+8|0;l=o+4|0;m=o;c[h>>2]=a;c[j>>2]=f;c[k>>2]=g;c[n>>2]=(c[j>>2]|0)+(d[(c[h>>2]|0)+6>>0]|0);c[l>>2]=d[c[n>>2]>>0];a:do if((c[l>>2]|0)>>>0>=128){c[m>>2]=(c[n>>2]|0)+8;c[l>>2]=c[l>>2]&127;do{g=c[l>>2]<<7;a=(c[n>>2]|0)+1|0;c[n>>2]=a;c[l>>2]=g|(d[a>>0]|0)&127;if((d[c[n>>2]>>0]|0|0)<128)break a}while((c[n>>2]|0)>>>0<(c[m>>2]|0)>>>0)}while(0);c[n>>2]=(c[n>>2]|0)+1;a=c[k>>2]|0;c[a>>2]=c[l>>2];c[a+4>>2]=0;c[(c[k>>2]|0)+12>>2]=c[l>>2];c[(c[k>>2]|0)+8>>2]=c[n>>2];if((c[l>>2]|0)>>>0>(e[(c[h>>2]|0)+10>>1]|0)>>>0){Rt(c[h>>2]|0,c[j>>2]|0,c[k>>2]|0);i=o;return}b[(c[k>>2]|0)+18>>1]=(c[l>>2]|0)+((c[n>>2]|0)-(c[j>>2]|0)&65535);if((e[(c[k>>2]|0)+18>>1]|0|0)<4)b[(c[k>>2]|0)+18>>1]=4;b[(c[k>>2]|0)+16>>1]=c[l>>2];i=o;return}function Rt(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;l=i;i=i+32|0;n=l+20|0;g=l+16|0;h=l+12|0;j=l+8|0;m=l+4|0;k=l;c[n>>2]=a;c[g>>2]=d;c[h>>2]=f;c[j>>2]=e[(c[n>>2]|0)+12>>1];c[m>>2]=e[(c[n>>2]|0)+10>>1];c[k>>2]=(c[j>>2]|0)+((((c[(c[h>>2]|0)+12>>2]|0)-(c[j>>2]|0)|0)>>>0)%(((c[(c[(c[n>>2]|0)+52>>2]|0)+36>>2]|0)-4|0)>>>0)|0);if((c[k>>2]|0)<=(c[m>>2]|0))b[(c[h>>2]|0)+16>>1]=c[k>>2];else b[(c[h>>2]|0)+16>>1]=c[j>>2];b[(c[h>>2]|0)+18>>1]=((c[(c[h>>2]|0)+8>>2]|0)+(e[(c[h>>2]|0)+16>>1]|0)-(c[g>>2]|0)&65535)+4;i=l;return}function tE(e,f,g,h,j){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;F=i;i=i+96|0;r=F+80|0;s=F+76|0;k=F+72|0;t=F+68|0;u=F+64|0;G=F+60|0;E=F+56|0;z=F+52|0;m=F+48|0;n=F+44|0;p=F+40|0;v=F+36|0;q=F+84|0;w=F+32|0;A=F+28|0;x=F+24|0;C=F+20|0;o=F+16|0;l=F+12|0;y=F+8|0;D=F+4|0;B=F;c[s>>2]=e;c[k>>2]=f;c[t>>2]=g;c[u>>2]=h;c[G>>2]=j;c[E>>2]=0;c[w>>2]=c[c[s>>2]>>2];c[A>>2]=0;if(!(vE(c[w>>2]|0,c[k>>2]|0,c[G>>2]|0,q)|0)){c[r>>2]=0;G=c[r>>2]|0;i=F;return G|0}c[n>>2]=c[(c[k>>2]|0)+20>>2];c[m>>2]=c[(c[(c[n>>2]|0)+4>>2]|0)+20>>2];if(((d[c[m>>2]>>0]|0)==152?((Nx(c[m>>2]|0)|0)<<24>>24|0)==66:0)?(d[(c[(c[m>>2]|0)+44>>2]|0)+42>>0]&16|0)==0:0){c[z>>2]=Tx(c[c[(c[n>>2]|0)+4>>2]>>2]|0)|0;c[x>>2]=d[c[z>>2]>>0];if((c[x>>2]|0)!=135){if((c[x>>2]|0)==97)c[E>>2]=c[(c[z>>2]|0)+8>>2]}else{c[o>>2]=c[(c[s>>2]|0)+480>>2];c[l>>2]=b[(c[z>>2]|0)+32>>1];c[A>>2]=wE(c[o>>2]|0,c[l>>2]|0,65)|0;if((c[A>>2]|0)!=0?(fe(c[A>>2]|0)|0)==3:0)c[E>>2]=ae(c[A>>2]|0)|0;xE(c[(c[s>>2]|0)+8>>2]|0,c[l>>2]|0)}do if(c[E>>2]|0){c[v>>2]=0;while(1){G=a[(c[E>>2]|0)+(c[v>>2]|0)>>0]|0;c[p>>2]=G;if(((G|0)!=0?(c[p>>2]|0)!=(a[q>>0]|0):0)?(c[p>>2]|0)!=(a[q+1>>0]|0):0)k=(c[p>>2]|0)!=(a[q+2>>0]|0);else k=0;l=c[v>>2]|0;if(!k)break;c[v>>2]=l+1}if((l|0)!=0?255!=(d[(c[E>>2]|0)+((c[v>>2]|0)-1)>>0]|0):0){if((c[p>>2]|0)==(a[q>>0]|0))k=(a[(c[E>>2]|0)+((c[v>>2]|0)+1)>>0]|0)==0;else k=0;c[c[u>>2]>>2]=k&1;c[y>>2]=Jv(c[w>>2]|0,97,c[E>>2]|0)|0;if(c[y>>2]|0)a[(c[(c[y>>2]|0)+8>>2]|0)+(c[v>>2]|0)>>0]=0;c[c[t>>2]>>2]=c[y>>2];if((c[x>>2]|0)!=135)break;c[D>>2]=c[(c[s>>2]|0)+8>>2];xE(c[D>>2]|0,b[(c[z>>2]|0)+32>>1]|0);if(!(c[c[u>>2]>>2]|0))break;if(!(a[(c[(c[z>>2]|0)+8>>2]|0)+1>>0]|0))break;c[B>>2]=Wz(c[s>>2]|0)|0;yA(c[s>>2]|0,c[z>>2]|0,c[B>>2]|0)|0;G=c[D>>2]|0;yE(G,(Bz(c[D>>2]|0)|0)-1|0,0);_z(c[s>>2]|0,c[B>>2]|0);break}c[E>>2]=0}while(0);c[C>>2]=(c[E>>2]|0)!=0&1;$g(c[A>>2]|0);c[r>>2]=c[C>>2];G=c[r>>2]|0;i=F;return G|0}c[r>>2]=0;G=c[r>>2]|0;i=F;return G|0;
  56. }function uE(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+64|0;k=n+56|0;h=n+52|0;l=n+48|0;m=n+16|0;g=n+8|0;f=n+4|0;j=n;c[h>>2]=b;c[l>>2]=e;c[m>>2]=c[1570];c[m+4>>2]=c[1571];c[m+8>>2]=c[1572];c[m+12>>2]=c[1573];c[m+16>>2]=c[1574];c[m+20>>2]=c[1575];c[m+24>>2]=c[1576];c[m+28>>2]=c[1577];if((d[c[h>>2]>>0]|0|0)!=151){c[k>>2]=0;m=c[k>>2]|0;i=n;return m|0}c[g>>2]=c[(c[h>>2]|0)+20>>2];if((c[g>>2]|0)!=0?(c[c[g>>2]>>2]|0)==2:0){c[f>>2]=c[(c[(c[g>>2]|0)+4>>2]|0)+20>>2];if((d[c[f>>2]>>0]|0|0)==152?((d[(c[(c[f>>2]|0)+44>>2]|0)+42>>0]|0)&16|0)!=0:0){c[j>>2]=0;while(1){if((c[j>>2]|0)>=4){f=14;break}e=(Td(c[(c[h>>2]|0)+8>>2]|0,c[m+(c[j>>2]<<3)>>2]|0)|0)==0;b=c[j>>2]|0;if(e){f=12;break}c[j>>2]=b+1}if((f|0)==12){a[c[l>>2]>>0]=a[m+(b<<3)+4>>0]|0;c[k>>2]=1;m=c[k>>2]|0;i=n;return m|0}else if((f|0)==14){c[k>>2]=0;m=c[k>>2]|0;i=n;return m|0}}c[k>>2]=0;m=c[k>>2]|0;i=n;return m|0}c[k>>2]=0;m=c[k>>2]|0;i=n;return m|0}function vE(b,f,g,h){b=b|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;j=p+20|0;k=p+16|0;l=p+12|0;m=p+8|0;n=p+4|0;o=p;c[k>>2]=b;c[l>>2]=f;c[m>>2]=g;c[n>>2]=h;if(((d[c[l>>2]>>0]|0|0)==151?(c[(c[l>>2]|0)+20>>2]|0)!=0:0)?(c[c[(c[l>>2]|0)+20>>2]>>2]|0)==2:0){f=c[k>>2]|0;g=c[(c[l>>2]|0)+8>>2]|0;c[o>>2]=gi(f,g,If(c[(c[l>>2]|0)+8>>2]|0)|0,2,1,0)|0;if((c[o>>2]|0)!=0?((e[(c[o>>2]|0)+2>>1]|0)&4|0)!=0:0){g=c[n>>2]|0;f=c[(c[o>>2]|0)+4>>2]|0;a[g>>0]=a[f>>0]|0;a[g+1>>0]=a[f+1>>0]|0;a[g+2>>0]=a[f+2>>0]|0;c[c[m>>2]>>2]=((e[(c[o>>2]|0)+2>>1]|0)&8|0)==0&1;c[j>>2]=1;g=c[j>>2]|0;i=p;return g|0}c[j>>2]=0;g=c[j>>2]|0;i=p;return g|0}c[j>>2]=0;g=c[j>>2]|0;i=p;return g|0}function wE(b,d,f){b=b|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;g=n+16|0;h=n+12|0;j=n+8|0;k=n+20|0;l=n+4|0;m=n;c[h>>2]=b;c[j>>2]=d;a[k>>0]=f;if((c[h>>2]|0)!=0?(c[l>>2]=(c[(c[h>>2]|0)+60>>2]|0)+(((c[j>>2]|0)-1|0)*40|0),0==((e[(c[l>>2]|0)+8>>1]|0)&1|0)):0){c[m>>2]=Vh(c[c[h>>2]>>2]|0)|0;if(c[m>>2]|0){gh(c[m>>2]|0,c[l>>2]|0)|0;lx(c[m>>2]|0,a[k>>0]|0,1)}c[g>>2]=c[m>>2];b=c[g>>2]|0;i=n;return b|0}c[g>>2]=0;b=c[g>>2]|0;i=n;return b|0}function xE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f+4|0;e=f;c[d>>2]=a;c[e>>2]=b;if((c[e>>2]|0)>32){c[(c[d>>2]|0)+188>>2]=-1;i=f;return}else{a=(c[d>>2]|0)+188|0;c[a>>2]=c[a>>2]|1<<(c[e>>2]|0)-1;i=f;return}}function yE(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;g=e+8|0;f=e+4|0;h=e;c[g>>2]=a;c[f>>2]=b;c[h>>2]=d;d=c[h>>2]|0;c[(Mz(c[g>>2]|0,c[f>>2]|0)|0)+12>>2]=d;i=e;return}function zE(a,b){a=a|0;b=b|0;var d=0,f=0,g=0,h=0;h=i;i=i+16|0;d=h+8|0;f=h+4|0;g=h;c[f>>2]=a;c[g>>2]=b;b=c[g>>2]|0;if((e[(c[f>>2]|0)+18>>1]|0|0)!=1024){c[d>>2]=(b|0)==0?c[f>>2]|0:0;g=c[d>>2]|0;i=h;return g|0}if((b|0)<(c[(c[(c[f>>2]|0)+12>>2]|0)+12>>2]|0)){c[d>>2]=(c[(c[(c[f>>2]|0)+12>>2]|0)+20>>2]|0)+((c[g>>2]|0)*48|0);g=c[d>>2]|0;i=h;return g|0}else{c[d>>2]=0;g=c[d>>2]|0;i=h;return g|0}return 0}function AE(d,f,g,h){d=d|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+48|0;m=s+28|0;n=s+24|0;j=s+20|0;k=s+16|0;o=s+32|0;l=s+12|0;r=s+8|0;q=s+4|0;p=s;c[m>>2]=d;c[n>>2]=f;c[j>>2]=g;c[k>>2]=h;b[o>>1]=e[(c[j>>2]|0)+18>>1]|0|(e[(c[k>>2]|0)+18>>1]|0);if(!((e[(c[j>>2]|0)+18>>1]|0)&62)){i=s;return}if(!((e[(c[k>>2]|0)+18>>1]|0)&62)){i=s;return}if(((e[o>>1]|0)&26|0)!=(e[o>>1]|0|0)?((e[o>>1]|0)&38|0)!=(e[o>>1]|0|0):0){i=s;return}if(py(c[(c[c[j>>2]>>2]|0)+12>>2]|0,c[(c[c[k>>2]>>2]|0)+12>>2]|0,-1)|0){i=s;return}if(py(c[(c[c[j>>2]>>2]|0)+16>>2]|0,c[(c[c[k>>2]>>2]|0)+16>>2]|0,-1)|0){i=s;return}do if((e[o>>1]|0)&(e[o>>1]|0)-1)if((e[o>>1]|0)&24){b[o>>1]=8;break}else{b[o>>1]=32;break}while(0);c[l>>2]=c[c[c[c[n>>2]>>2]>>2]>>2];c[r>>2]=ny(c[l>>2]|0,c[c[j>>2]>>2]|0,0)|0;if(!(c[r>>2]|0)){i=s;return}c[q>>2]=79;while(1){j=c[q>>2]|0;if((e[o>>1]|0|0)==(2<<(c[q>>2]|0)-79|0))break;c[q>>2]=j+1}a[c[r>>2]>>0]=j;c[p>>2]=nE(c[n>>2]|0,c[r>>2]|0,3)|0;jE(c[m>>2]|0,c[n>>2]|0,c[p>>2]|0);i=s;return}function BE(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;h=i;i=i+48|0;k=h+36|0;l=h+32|0;j=h+28|0;g=h;c[k>>2]=b;c[l>>2]=e;c[j>>2]=f;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;c[g+20>>2]=0;c[g+24>>2]=0;a[g+20>>0]=0;c[g+4>>2]=199;c[g+24>>2]=c[l>>2];by(g,c[k>>2]|0)|0;if(c[j>>2]|0){l=g+20|0;l=a[l>>0]|0;l=l<<24>>24!=0;l=l^1;l=l&1;i=h;return l|0}l=g+20|0;a[l>>0]=(d[l>>0]|0)&-3;l=g+20|0;l=a[l>>0]|0;l=l<<24>>24!=0;l=l^1;l=l&1;i=h;return l|0}function CE(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;l=n+8|0;k=n;f=n+28|0;g=n+24|0;h=n+20|0;m=n+16|0;j=n+12|0;c[f>>2]=a;c[g>>2]=d;c[h>>2]=e;a=c[c[f>>2]>>2]|0;d=c[c[h>>2]>>2]|0;if((b[(c[h>>2]|0)+32>>1]|0)>=0){h=c[(c[(c[h>>2]|0)+4>>2]|0)+((b[(c[h>>2]|0)+32>>1]|0)*24|0)>>2]|0;c[k>>2]=d;c[k+4>>2]=h;c[m>>2]=Bh(a,31016,k)|0;c[j>>2]=1555;h=c[f>>2]|0;k=c[j>>2]|0;l=c[g>>2]|0;m=c[m>>2]|0;bA(h,k,l,m,-1,2);i=n;return}else{c[l>>2]=d;c[m>>2]=Bh(a,36074,l)|0;c[j>>2]=2579;h=c[f>>2]|0;k=c[j>>2]|0;l=c[g>>2]|0;m=c[m>>2]|0;bA(h,k,l,m,-1,2);i=n;return}}function DE(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+32|0;l=m+20|0;n=m+16|0;f=m+12|0;g=m+8|0;h=m+4|0;j=m;c[n>>2]=a;c[f>>2]=b;c[g>>2]=d;c[h>>2]=e;a:do if(c[(c[c[n>>2]>>2]|0)+24>>2]&524288){d=c[f>>2]|0;if(!(c[g>>2]|0)){if(Ex(d)|0)d=1;else d=(c[(c[f>>2]|0)+16>>2]|0)!=0;c[l>>2]=d&1;n=c[l>>2]|0;i=m;return n|0}c[j>>2]=c[d+16>>2];while(1){d=c[f>>2]|0;if(!(c[j>>2]|0))break;if(KC(d,c[j>>2]|0,c[g>>2]|0,c[h>>2]|0)|0){k=9;break}c[j>>2]=c[(c[j>>2]|0)+4>>2]}if((k|0)==9){c[l>>2]=1;n=c[l>>2]|0;i=m;return n|0}c[j>>2]=Ex(d)|0;while(1){if(!(c[j>>2]|0))break a;if(NC(c[f>>2]|0,c[j>>2]|0,c[g>>2]|0,c[h>>2]|0)|0)break;c[j>>2]=c[(c[j>>2]|0)+12>>2]}c[l>>2]=1;n=c[l>>2]|0;i=m;return n|0}while(0);c[l>>2]=0;n=c[l>>2]|0;i=m;return n|0}function EE(b){b=b|0;var d=0,e=0,f=0;e=i;i=i+16|0;f=e+4|0;d=e;c[f>>2]=b;b=c[f>>2]|0;if(c[(c[f>>2]|0)+416>>2]|0)b=c[b+416>>2]|0;c[d>>2]=b;a[(c[d>>2]|0)+20>>0]=1;i=e;return}function FE(e,f,g,h,j,k,l,m,n,o,p){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;var q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;K=i;i=i+64|0;q=K+48|0;r=K+44|0;t=K+40|0;u=K+36|0;v=K+32|0;w=K+28|0;x=K+52|0;y=K+58|0;z=K+57|0;A=K+56|0;s=K+24|0;I=K+20|0;E=K+16|0;D=K+12|0;G=K+55|0;F=K+8|0;C=K+4|0;B=K;H=K+54|0;c[q>>2]=e;c[r>>2]=f;c[t>>2]=g;c[u>>2]=h;c[v>>2]=j;c[w>>2]=k;b[x>>1]=l;a[y>>0]=m;a[z>>0]=n;a[A>>0]=o;c[s>>2]=p;c[I>>2]=c[(c[q>>2]|0)+8>>2];c[E>>2]=0;c[D>>2]=Cz(c[I>>2]|0)|0;a[G>>0]=(d[(c[r>>2]|0)+42>>0]&32|0)==0?70:68;if(!(d[A>>0]|0))Eh(c[I>>2]|0,d[G>>0]|0,c[u>>2]|0,c[D>>2]|0,c[w>>2]|0,b[x>>1]|0)|0;g=(DE(c[q>>2]|0,c[r>>2]|0,0,0)|0)!=0;if(g|(c[t>>2]|0)!=0){c[F>>2]=HE(c[q>>2]|0,c[t>>2]|0,0,0,3,c[r>>2]|0,d[z>>0]|0)|0;g=IE(c[q>>2]|0,c[r>>2]|0)|0;c[F>>2]=c[F>>2]|g;c[E>>2]=(c[(c[q>>2]|0)+76>>2]|0)+1;g=(c[q>>2]|0)+76|0;c[g>>2]=(c[g>>2]|0)+(1+(b[(c[r>>2]|0)+34>>1]|0));Rw(c[I>>2]|0,30,c[w>>2]|0,c[E>>2]|0)|0;c[C>>2]=0;while(1){if((c[C>>2]|0)>=(b[(c[r>>2]|0)+34>>1]|0))break;if((c[F>>2]|0)!=-1){if((c[C>>2]|0)<=31?(c[F>>2]&1<<c[C>>2]|0)!=0:0)J=9}else J=9;if((J|0)==9){J=0;tA(c[I>>2]|0,c[r>>2]|0,c[u>>2]|0,c[C>>2]|0,(c[E>>2]|0)+(c[C>>2]|0)+1|0)}c[C>>2]=(c[C>>2]|0)+1}c[B>>2]=Bz(c[I>>2]|0)|0;BC(c[q>>2]|0,c[t>>2]|0,109,0,1,c[r>>2]|0,c[E>>2]|0,d[z>>0]|0,c[D>>2]|0);J=c[B>>2]|0;if((J|0)<(Bz(c[I>>2]|0)|0))Eh(c[I>>2]|0,d[G>>0]|0,c[u>>2]|0,c[D>>2]|0,c[w>>2]|0,b[x>>1]|0)|0;GC(c[q>>2]|0,c[r>>2]|0,c[E>>2]|0,0,0,0)}if(c[(c[r>>2]|0)+12>>2]|0){e=c[q>>2]|0;H=c[r>>2]|0;G=c[E>>2]|0;JE(e,H,0,G,0,0);G=c[q>>2]|0;H=c[t>>2]|0;e=c[r>>2]|0;f=c[E>>2]|0;g=a[z>>0]|0;g=g&255;J=c[D>>2]|0;BC(G,H,109,0,2,e,f,g,J);I=c[I>>2]|0;J=c[D>>2]|0;Gz(I,J);i=K;return}a[H>>0]=0;GE(c[q>>2]|0,c[r>>2]|0,c[u>>2]|0,c[v>>2]|0,0,c[s>>2]|0);Rw(c[I>>2]|0,95,c[u>>2]|0,(d[y>>0]|0)!=0?1:0)|0;if(a[y>>0]|0)Ih(c[I>>2]|0,-1,c[c[r>>2]>>2]|0,0);if(d[A>>0]|0)Fh(c[I>>2]|0,4);if((c[s>>2]|0)>=0)xz(c[I>>2]|0,95,c[s>>2]|0)|0;if((d[A>>0]|0)==2)a[H>>0]=d[H>>0]|2;Fh(c[I>>2]|0,a[H>>0]|0);e=c[q>>2]|0;H=c[r>>2]|0;G=c[E>>2]|0;JE(e,H,0,G,0,0);G=c[q>>2]|0;H=c[t>>2]|0;e=c[r>>2]|0;f=c[E>>2]|0;g=a[z>>0]|0;g=g&255;J=c[D>>2]|0;BC(G,H,109,0,2,e,f,g,J);I=c[I>>2]|0;J=c[D>>2]|0;Gz(I,J);i=K;return}function GE(a,e,f,g,h,j){a=a|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=i;i=i+64|0;l=y+48|0;k=y+44|0;m=y+40|0;n=y+36|0;o=y+32|0;p=y+28|0;q=y+24|0;v=y+20|0;r=y+16|0;s=y+12|0;u=y+8|0;w=y+4|0;t=y;c[l>>2]=a;c[k>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[p>>2]=j;c[v>>2]=-1;c[u>>2]=0;c[w>>2]=c[(c[l>>2]|0)+8>>2];if(!((d[(c[k>>2]|0)+42>>0]|0)&32))h=0;else h=Ej(c[k>>2]|0)|0;c[t>>2]=h;c[q>>2]=0;c[s>>2]=c[(c[k>>2]|0)+8>>2];while(1){if(!(c[s>>2]|0))break;if(!((c[o>>2]|0)!=0?(c[(c[o>>2]|0)+(c[q>>2]<<2)>>2]|0)==0:0))x=7;if(((x|0)==7?(x=0,(c[s>>2]|0)!=(c[t>>2]|0)):0)?((c[n>>2]|0)+(c[q>>2]|0)|0)!=(c[p>>2]|0):0){c[v>>2]=Xz(c[l>>2]|0,c[s>>2]|0,c[m>>2]|0,0,1,r,c[u>>2]|0,c[v>>2]|0)|0;h=c[s>>2]|0;if((d[(c[s>>2]|0)+55>>0]|0)>>>3&1)h=b[h+50>>1]|0;else h=b[h+52>>1]|0;Vw(c[w>>2]|0,111,(c[n>>2]|0)+(c[q>>2]|0)|0,c[v>>2]|0,h&65535)|0;Yz(c[l>>2]|0,c[r>>2]|0);c[u>>2]=c[s>>2]}c[q>>2]=(c[q>>2]|0)+1;c[s>>2]=c[(c[s>>2]|0)+20>>2]}i=y;return}function HE(a,b,e,f,g,h,j){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;u=i;i=i+48|0;k=u+40|0;v=u+36|0;l=u+32|0;m=u+28|0;n=u+24|0;o=u+20|0;p=u+16|0;r=u+12|0;q=u+8|0;s=u+4|0;t=u;c[k>>2]=a;c[v>>2]=b;c[l>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[p>>2]=j;c[r>>2]=(c[l>>2]|0)!=0?110:109;c[q>>2]=0;c[s>>2]=c[v>>2];while(1){if(!(c[s>>2]|0))break;if((((d[(c[s>>2]|0)+8>>0]|0|0)==(c[r>>2]|0)?(c[n>>2]&(d[(c[s>>2]|0)+9>>0]|0)|0)!=0:0)?(MF(c[(c[s>>2]|0)+16>>2]|0,c[l>>2]|0)|0)!=0:0)?(c[t>>2]=ME(c[k>>2]|0,c[s>>2]|0,c[o>>2]|0,c[p>>2]|0)|0,(c[t>>2]|0)!=0):0)c[q>>2]=c[q>>2]|c[(c[t>>2]|0)+16+(c[m>>2]<<2)>>2];c[s>>2]=c[(c[s>>2]|0)+32>>2]}i=u;return c[q>>2]|0}function IE(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;f=m+20|0;g=m+16|0;j=m+12|0;k=m+8|0;h=m+4|0;l=m;c[f>>2]=a;c[g>>2]=d;c[j>>2]=0;if(!(c[(c[c[f>>2]>>2]|0)+24>>2]&524288)){l=c[j>>2]|0;i=m;return l|0}c[k>>2]=c[(c[g>>2]|0)+16>>2];while(1){if(!(c[k>>2]|0))break;c[h>>2]=0;while(1){if((c[h>>2]|0)>=(c[(c[k>>2]|0)+20>>2]|0))break;if((c[(c[k>>2]|0)+36+(c[h>>2]<<3)>>2]|0)>31)a=-1;else a=1<<c[(c[k>>2]|0)+36+(c[h>>2]<<3)>>2];c[j>>2]=c[j>>2]|a;c[h>>2]=(c[h>>2]|0)+1}c[k>>2]=c[(c[k>>2]|0)+4>>2]}c[k>>2]=Ex(c[g>>2]|0)|0;while(1){if(!(c[k>>2]|0))break;c[l>>2]=0;cC(c[f>>2]|0,c[g>>2]|0,c[k>>2]|0,l,0)|0;a:do if(c[l>>2]|0){c[h>>2]=0;while(1){if((c[h>>2]|0)>=(e[(c[l>>2]|0)+50>>1]|0))break a;if((b[(c[(c[l>>2]|0)+4>>2]|0)+(c[h>>2]<<1)>>1]|0)>31)a=-1;else a=1<<b[(c[(c[l>>2]|0)+4>>2]|0)+(c[h>>2]<<1)>>1];c[j>>2]=c[j>>2]|a;c[h>>2]=(c[h>>2]|0)+1}}while(0);c[k>>2]=c[(c[k>>2]|0)+12>>2]}l=c[j>>2]|0;i=m;return l|0}function JE(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+32|0;h=r+28|0;j=r+24|0;k=r+20|0;l=r+16|0;m=r+12|0;n=r+8|0;p=r+4|0;o=r;c[h>>2]=a;c[j>>2]=b;c[k>>2]=d;c[l>>2]=e;c[m>>2]=f;c[n>>2]=g;if(!(c[(c[c[h>>2]>>2]|0)+24>>2]&524288)){i=r;return}c[p>>2]=Ex(c[j>>2]|0)|0;while(1){if(!(c[p>>2]|0))break;if(!((c[m>>2]|0)!=0?(NC(c[j>>2]|0,c[p>>2]|0,c[m>>2]|0,c[n>>2]|0)|0)==0:0))q=6;if((q|0)==6?(q=0,c[o>>2]=KE(c[h>>2]|0,c[j>>2]|0,c[p>>2]|0,c[k>>2]|0)|0,(c[o>>2]|0)!=0):0)LE(c[h>>2]|0,c[o>>2]|0,c[j>>2]|0,c[l>>2]|0,2,0);c[p>>2]=c[(c[p>>2]|0)+12>>2]}i=r;return}function KE(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;N=i;i=i+144|0;j=N+136|0;k=N+132|0;l=N+128|0;m=N+124|0;n=N+120|0;q=N+116|0;o=N+112|0;D=N+108|0;s=N+104|0;L=N+100|0;u=N+96|0;x=N+92|0;p=N+88|0;C=N+84|0;F=N+80|0;y=N+76|0;B=N+72|0;r=N+68|0;E=N+64|0;J=N+56|0;I=N+48|0;H=N+40|0;K=N+32|0;t=N+28|0;w=N+24|0;z=N+20|0;v=N+16|0;G=N+8|0;A=N;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;c[n>>2]=h;c[q>>2]=c[c[k>>2]>>2];c[s>>2]=(c[n>>2]|0)!=0&1;c[o>>2]=d[(c[m>>2]|0)+25+(c[s>>2]|0)>>0];c[D>>2]=c[(c[m>>2]|0)+28+(c[s>>2]<<2)>>2];if(!((c[o>>2]|0)==0|(c[D>>2]|0)!=0)){c[x>>2]=0;c[p>>2]=0;c[C>>2]=0;c[F>>2]=0;c[y>>2]=0;c[B>>2]=0;c[E>>2]=0;if(cC(c[k>>2]|0,c[l>>2]|0,c[m>>2]|0,x,p)|0){c[j>>2]=0;M=c[j>>2]|0;i=N;return M|0}c[r>>2]=0;while(1){if((c[r>>2]|0)>=(c[(c[m>>2]|0)+20>>2]|0))break;c[J>>2]=c[1578];c[J+4>>2]=c[1579];c[I>>2]=c[1580];c[I+4>>2]=c[1581];if(c[p>>2]|0)h=c[(c[p>>2]|0)+(c[r>>2]<<2)>>2]|0;else h=c[(c[m>>2]|0)+36>>2]|0;c[t>>2]=h;if(c[x>>2]|0)h=b[(c[(c[x>>2]|0)+4>>2]|0)+(c[r>>2]<<1)>>1]|0;else h=b[(c[l>>2]|0)+32>>1]|0;Cy(K,c[(c[(c[l>>2]|0)+4>>2]|0)+((h<<16>>16)*24|0)>>2]|0);Cy(H,c[(c[(c[c[m>>2]>>2]|0)+4>>2]|0)+((c[t>>2]|0)*24|0)>>2]|0);e=c[k>>2]|0;g=c[k>>2]|0;f=cz(c[q>>2]|0,27,J,0)|0;f=rv(g,122,f,cz(c[q>>2]|0,27,K,0)|0,0)|0;c[w>>2]=rv(e,79,f,cz(c[q>>2]|0,27,H,0)|0,0)|0;c[F>>2]=az(c[q>>2]|0,c[F>>2]|0,c[w>>2]|0)|0;if(c[n>>2]|0){h=c[k>>2]|0;e=c[k>>2]|0;g=cz(c[q>>2]|0,27,J,0)|0;g=rv(e,122,g,cz(c[q>>2]|0,27,K,0)|0,0)|0;e=c[k>>2]|0;f=cz(c[q>>2]|0,27,I,0)|0;c[w>>2]=rv(h,73,g,rv(e,122,f,cz(c[q>>2]|0,27,K,0)|0,0)|0,0)|0;c[E>>2]=az(c[q>>2]|0,c[E>>2]|0,c[w>>2]|0)|0}if((c[o>>2]|0)!=6?(c[o>>2]|0)!=9|(c[n>>2]|0)!=0:0){do if((c[o>>2]|0)!=9){if((c[o>>2]|0)!=8){c[z>>2]=rv(c[k>>2]|0,101,0,0,0)|0;break}c[v>>2]=c[(c[(c[c[m>>2]>>2]|0)+4>>2]|0)+((c[t>>2]|0)*24|0)+4>>2];if(c[v>>2]|0){c[z>>2]=ny(c[q>>2]|0,c[v>>2]|0,0)|0;break}else{c[z>>2]=rv(c[k>>2]|0,101,0,0,0)|0;break}}else{e=c[k>>2]|0;f=cz(c[q>>2]|0,27,I,0)|0;c[z>>2]=rv(e,122,f,cz(c[q>>2]|0,27,K,0)|0,0)|0}while(0);c[y>>2]=Gv(c[k>>2]|0,c[y>>2]|0,c[z>>2]|0)|0;Hv(c[k>>2]|0,c[y>>2]|0,H,0)}c[r>>2]=(c[r>>2]|0)+1}Sf(c[q>>2]|0,c[p>>2]|0);c[L>>2]=c[c[c[m>>2]>>2]>>2];c[u>>2]=If(c[L>>2]|0)|0;if((c[o>>2]|0)==6){c[G>>2]=c[L>>2];c[G+4>>2]=c[u>>2];c[A>>2]=Jv(c[q>>2]|0,57,36044)|0;if(c[A>>2]|0)a[(c[A>>2]|0)+1>>0]=2;I=c[k>>2]|0;J=Gv(c[k>>2]|0,0,c[A>>2]|0)|0;K=Nv(c[q>>2]|0,0,G,0)|0;c[B>>2]=Fv(I,J,K,c[F>>2]|0,0,0,0,0,0,0)|0;c[F>>2]=0}K=(c[q>>2]|0)+248|0;c[K>>2]=(c[K>>2]|0)+1;c[D>>2]=ph(c[q>>2]|0,72+(c[u>>2]|0)+1|0,0)|0;if((c[D>>2]|0)!=0?(K=(c[D>>2]|0)+36|0,c[(c[D>>2]|0)+28>>2]=K,c[C>>2]=K,c[(c[C>>2]|0)+12>>2]=(c[C>>2]|0)+36,iR(c[(c[C>>2]|0)+12>>2]|0,c[L>>2]|0,c[u>>2]|0)|0,L=ny(c[q>>2]|0,c[F>>2]|0,1)|0,c[(c[C>>2]|0)+16>>2]=L,L=vy(c[q>>2]|0,c[y>>2]|0,1)|0,c[(c[C>>2]|0)+20>>2]=L,L=Hx(c[q>>2]|0,c[B>>2]|0,1)|0,c[(c[C>>2]|0)+8>>2]=L,(c[E>>2]|0)!=0):0){c[E>>2]=rv(c[k>>2]|0,19,c[E>>2]|0,0,0)|0;L=ny(c[q>>2]|0,c[E>>2]|0,1)|0;c[(c[D>>2]|0)+12>>2]=L}L=(c[q>>2]|0)+248|0;c[L>>2]=(c[L>>2]|0)+-1;Zu(c[q>>2]|0,c[F>>2]|0);Zu(c[q>>2]|0,c[E>>2]|0);Vu(c[q>>2]|0,c[y>>2]|0);Wu(c[q>>2]|0,c[B>>2]|0);if((d[(c[q>>2]|0)+65>>0]|0|0)==1){LF(c[q>>2]|0,c[D>>2]|0);c[j>>2]=0;M=c[j>>2]|0;i=N;return M|0}switch(c[o>>2]|0){case 6:{a[c[C>>2]>>0]=119;break}case 9:{if(c[n>>2]|0)M=38;else a[c[C>>2]>>0]=109;break}default:M=38}if((M|0)==38)a[c[C>>2]>>0]=110;c[(c[C>>2]|0)+4>>2]=c[D>>2];c[(c[D>>2]|0)+20>>2]=c[(c[l>>2]|0)+64>>2];c[(c[D>>2]|0)+24>>2]=c[(c[l>>2]|0)+64>>2];c[(c[m>>2]|0)+28+(c[s>>2]<<2)>>2]=c[D>>2];a[(c[D>>2]|0)+8>>0]=(c[n>>2]|0)!=0?110:109}c[j>>2]=c[D>>2];M=c[j>>2]|0;i=N;return M|0}function LE(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;p=i;i=i+48|0;j=p+32|0;h=p+28|0;r=p+24|0;k=p+20|0;q=p+16|0;l=p+12|0;o=p+8|0;n=p+4|0;m=p;c[j>>2]=a;c[h>>2]=b;c[r>>2]=d;c[k>>2]=e;c[q>>2]=f;c[l>>2]=g;c[o>>2]=Pw(c[j>>2]|0)|0;c[n>>2]=ME(c[j>>2]|0,c[h>>2]|0,c[r>>2]|0,c[q>>2]|0)|0;if(!(c[n>>2]|0)){i=p;return}if(c[c[h>>2]>>2]|0)h=0==(c[(c[c[j>>2]>>2]|0)+24>>2]&262144|0);else h=0;c[m>>2]=h&1;e=c[o>>2]|0;k=c[k>>2]|0;q=c[l>>2]|0;l=(c[j>>2]|0)+76|0;r=(c[l>>2]|0)+1|0;c[l>>2]=r;Uw(e,132,k,q,r,c[(c[n>>2]|0)+8>>2]|0,-18)|0;Fh(c[o>>2]|0,c[m>>2]&255);i=p;return}function ME(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;f=m+20|0;g=m+16|0;h=m+12|0;j=m+8|0;l=m+4|0;k=m;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;e=c[f>>2]|0;if(c[(c[f>>2]|0)+416>>2]|0)e=c[e+416>>2]|0;c[l>>2]=e;c[k>>2]=c[(c[l>>2]|0)+532>>2];while(1){if(!(c[k>>2]|0))break;if((c[c[k>>2]>>2]|0)==(c[g>>2]|0)?(c[(c[k>>2]|0)+12>>2]|0)==(c[j>>2]|0):0)break;c[k>>2]=c[(c[k>>2]|0)+4>>2]}if(c[k>>2]|0){l=c[k>>2]|0;i=m;return l|0}c[k>>2]=NE(c[f>>2]|0,c[g>>2]|0,c[h>>2]|0,c[j>>2]|0)|0;l=c[k>>2]|0;i=m;return l|0}function NE(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=i;i=i+96|0;w=x;h=x+84|0;j=x+80|0;k=x+76|0;l=x+72|0;m=x+68|0;s=x+64|0;n=x+60|0;p=x+56|0;t=x+52|0;v=x+48|0;u=x+16|0;q=x+12|0;r=x+8|0;o=x+4|0;c[j>>2]=b;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;g=c[j>>2]|0;if(c[(c[j>>2]|0)+416>>2]|0)g=c[g+416>>2]|0;c[s>>2]=g;c[n>>2]=c[c[j>>2]>>2];c[t>>2]=0;c[q>>2]=0;c[o>>2]=0;c[p>>2]=ph(c[n>>2]|0,24,0)|0;if(!(c[p>>2]|0)){c[h>>2]=0;w=c[h>>2]|0;i=x;return w|0}c[(c[p>>2]|0)+4>>2]=c[(c[s>>2]|0)+532>>2];c[(c[s>>2]|0)+532>>2]=c[p>>2];e=ph(c[n>>2]|0,28,0)|0;c[q>>2]=e;c[(c[p>>2]|0)+8>>2]=e;if(!(c[q>>2]|0)){c[h>>2]=0;w=c[h>>2]|0;i=x;return w|0}OE(c[(c[s>>2]|0)+8>>2]|0,c[q>>2]|0);c[c[p>>2]>>2]=c[k>>2];c[(c[p>>2]|0)+12>>2]=c[m>>2];c[(c[p>>2]|0)+16>>2]=-1;c[(c[p>>2]|0)+16+4>>2]=-1;c[r>>2]=ph(c[n>>2]|0,544,0)|0;if(!(c[r>>2]|0)){c[h>>2]=0;w=c[h>>2]|0;i=x;return w|0}c[u>>2]=0;c[u+4>>2]=0;c[u+8>>2]=0;c[u+12>>2]=0;c[u+16>>2]=0;c[u+20>>2]=0;c[u+24>>2]=0;c[u+28>>2]=0;c[u>>2]=c[r>>2];c[c[r>>2]>>2]=c[n>>2];c[(c[r>>2]|0)+420>>2]=c[l>>2];c[(c[r>>2]|0)+416>>2]=c[s>>2];c[(c[r>>2]|0)+496>>2]=c[c[k>>2]>>2];a[(c[r>>2]|0)+440>>0]=a[(c[k>>2]|0)+8>>0]|0;c[(c[r>>2]|0)+428>>2]=c[(c[j>>2]|0)+428>>2];c[v>>2]=Pw(c[r>>2]|0)|0;if(c[v>>2]|0){e=c[v>>2]|0;l=c[n>>2]|0;c[w>>2]=c[c[k>>2]>>2];Ih(e,-1,Bh(l,35740,w)|0,-1);if(c[(c[k>>2]|0)+12>>2]|0){c[t>>2]=ny(c[n>>2]|0,c[(c[k>>2]|0)+12>>2]|0,0)|0;if(0==(fy(u,c[t>>2]|0)|0)?(d[(c[n>>2]|0)+65>>0]|0|0)==0:0){c[o>>2]=Cz(c[v>>2]|0)|0;LA(c[r>>2]|0,c[t>>2]|0,c[o>>2]|0,16)}Zu(c[n>>2]|0,c[t>>2]|0)}PE(c[r>>2]|0,c[(c[k>>2]|0)+28>>2]|0,c[m>>2]|0)|0;if(c[o>>2]|0)Gz(c[v>>2]|0,c[o>>2]|0);Yw(c[v>>2]|0,21)|0;QE(c[j>>2]|0,c[r>>2]|0);if(!(d[(c[n>>2]|0)+65>>0]|0)){w=RE(c[v>>2]|0,(c[q>>2]|0)+4|0,(c[s>>2]|0)+400|0)|0;c[c[q>>2]>>2]=w}c[(c[q>>2]|0)+8>>2]=c[(c[r>>2]|0)+76>>2];c[(c[q>>2]|0)+12>>2]=c[(c[r>>2]|0)+72>>2];c[(c[q>>2]|0)+16>>2]=c[(c[r>>2]|0)+84>>2];c[(c[q>>2]|0)+20>>2]=c[k>>2];c[(c[p>>2]|0)+16>>2]=c[(c[r>>2]|0)+432>>2];c[(c[p>>2]|0)+16+4>>2]=c[(c[r>>2]|0)+436>>2];Tu(c[v>>2]|0)}Lh(c[r>>2]|0);Sf(c[n>>2]|0,c[r>>2]|0);c[h>>2]=c[p>>2];w=c[h>>2]|0;i=x;return w|0}function OE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;c[(c[f>>2]|0)+24>>2]=c[(c[e>>2]|0)+192>>2];c[(c[e>>2]|0)+192>>2]=c[f>>2];i=d;return}function PE(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=i;i=i+48|0;g=o+44|0;p=o+40|0;h=o+36|0;l=o+32|0;n=o+28|0;j=o+24|0;m=o+4|0;k=o;c[g>>2]=b;c[p>>2]=e;c[h>>2]=f;c[n>>2]=c[(c[g>>2]|0)+8>>2];c[j>>2]=c[c[g>>2]>>2];c[l>>2]=c[p>>2];while(1){if(!(c[l>>2]|0))break;if((c[h>>2]|0)==10)f=a[(c[l>>2]|0)+1>>0]|0;else f=c[h>>2]&255;a[(c[g>>2]|0)+441>>0]=f;switch(d[c[l>>2]>>0]|0|0){case 110:{b=c[g>>2]|0;e=KF(c[g>>2]|0,c[l>>2]|0)|0;p=vy(c[j>>2]|0,c[(c[l>>2]|0)+20>>2]|0,0)|0;Tv(b,e,p,ny(c[j>>2]|0,c[(c[l>>2]|0)+16>>2]|0,0)|0,d[(c[g>>2]|0)+441>>0]|0);break}case 108:{b=c[g>>2]|0;e=KF(c[g>>2]|0,c[l>>2]|0)|0;p=Hx(c[j>>2]|0,c[(c[l>>2]|0)+8>>2]|0,0)|0;Uv(b,e,p,nz(c[j>>2]|0,c[(c[l>>2]|0)+24>>2]|0)|0,d[(c[g>>2]|0)+441>>0]|0);break}case 109:{p=c[g>>2]|0;Rv(p,KF(c[g>>2]|0,c[l>>2]|0)|0,ny(c[j>>2]|0,c[(c[l>>2]|0)+16>>2]|0,0)|0);break}default:{c[k>>2]=Hx(c[j>>2]|0,c[(c[l>>2]|0)+8>>2]|0,0)|0;ZA(m,4,0);Cv(c[g>>2]|0,c[k>>2]|0,m)|0;Wu(c[j>>2]|0,c[k>>2]|0)}}if((d[c[l>>2]>>0]|0|0)!=119)Yw(c[n>>2]|0,98)|0;c[l>>2]=c[(c[l>>2]|0)+28>>2]}i=o;return 0}function QE(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f+4|0;e=f;c[d>>2]=a;c[e>>2]=b;b=c[e>>2]|0;if(!(c[(c[d>>2]|0)+68>>2]|0)){c[(c[d>>2]|0)+4>>2]=c[b+4>>2];c[(c[d>>2]|0)+68>>2]=c[(c[e>>2]|0)+68>>2];c[(c[d>>2]|0)+12>>2]=c[(c[e>>2]|0)+12>>2];i=f;return}else{Sf(c[b>>2]|0,c[(c[e>>2]|0)+4>>2]|0);i=f;return}}function RE(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;f=i;i=i+16|0;g=f+12|0;h=f+8|0;j=f+4|0;e=f;c[g>>2]=a;c[h>>2]=b;c[j>>2]=d;c[e>>2]=c[(c[g>>2]|0)+4>>2];SE(c[g>>2]|0,c[j>>2]|0);c[c[h>>2]>>2]=c[(c[g>>2]|0)+32>>2];c[(c[g>>2]|0)+4>>2]=0;i=f;return c[e>>2]|0}function SE(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;g=r+28|0;h=r+24|0;k=r+20|0;m=r+16|0;o=r+12|0;p=r+8|0;j=r+4|0;n=r+32|0;l=r;c[g>>2]=e;c[h>>2]=f;c[m>>2]=c[c[h>>2]>>2];c[p>>2]=c[(c[g>>2]|0)+24>>2];c[j>>2]=c[(c[p>>2]|0)+120>>2];f=(c[g>>2]|0)+88|0;b[f>>1]=b[f>>1]&-65|64;f=(c[g>>2]|0)+88|0;b[f>>1]=b[f>>1]&-129;c[o>>2]=c[(c[g>>2]|0)+4>>2];c[k>>2]=(c[(c[g>>2]|0)+32>>2]|0)-1;while(1){if((c[k>>2]|0)<0)break;a[n>>0]=a[c[o>>2]>>0]|0;switch(d[n>>0]|0|0){case 2:{if(c[(c[o>>2]|0)+8>>2]|0){q=(c[g>>2]|0)+88|0;b[q>>1]=b[q>>1]&-65;q=6}else q=6;break}case 0:case 1:{q=6;break}case 9:case 10:case 8:{f=(c[g>>2]|0)+88|0;b[f>>1]=b[f>>1]&-65;f=(c[g>>2]|0)+88|0;b[f>>1]=b[f>>1]&-129|128;break}case 12:{if((c[(c[o>>2]|0)+8>>2]|0)>(c[m>>2]|0))c[m>>2]=c[(c[o>>2]|0)+8>>2];break}case 11:{c[l>>2]=c[(c[o>>2]|0)+-20+4>>2];if((c[l>>2]|0)>(c[m>>2]|0))c[m>>2]=c[l>>2];break}case 3:case 5:case 7:{c[(c[o>>2]|0)+16>>2]=200;a[(c[o>>2]|0)+1>>0]=-19;break}case 4:case 6:{c[(c[o>>2]|0)+16>>2]=201;a[(c[o>>2]|0)+1>>0]=-19;break}default:{}}if((q|0)==6){q=0;f=(c[g>>2]|0)+88|0;b[f>>1]=b[f>>1]&-129|128}a[(c[o>>2]|0)+2>>0]=a[35754+(d[n>>0]|0)>>0]|0;if(((d[(c[o>>2]|0)+2>>0]|0)&1|0)!=0?(c[(c[o>>2]|0)+8>>2]|0)<0:0)c[(c[o>>2]|0)+8>>2]=c[(c[j>>2]|0)+(-1-(c[(c[o>>2]|0)+8>>2]|0)<<2)>>2];c[k>>2]=(c[k>>2]|0)+-1;c[o>>2]=(c[o>>2]|0)+20}Sf(c[c[g>>2]>>2]|0,c[(c[p>>2]|0)+120>>2]|0);c[(c[p>>2]|0)+120>>2]=0;c[(c[p>>2]|0)+116>>2]=0;c[c[h>>2]>>2]=c[m>>2];i=r;return}function TE(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;m=i;i=i+16|0;h=m+12|0;j=m+8|0;k=m+4|0;l=m;c[j>>2]=f;c[k>>2]=g;b[(c[j>>2]|0)+16+18>>1]=0;f=(c[j>>2]|0)+64|0;a[f>>0]=d[f>>0]&-7;c[c[k>>2]>>2]=0;f=c[j>>2]|0;if((d[(c[j>>2]|0)+66>>0]|0)!=1){c[h>>2]=IF(f,c[k>>2]|0)|0;l=c[h>>2]|0;i=m;return l|0}c[l>>2]=c[(c[j>>2]|0)+120+(a[f+68>>0]<<2)>>2];f=(c[j>>2]|0)+80+(a[(c[j>>2]|0)+68>>0]<<1)|0;g=(b[f>>1]|0)+1<<16>>16;b[f>>1]=g;if((g&65535|0)>=(e[(c[l>>2]|0)+18>>1]|0)){l=(c[j>>2]|0)+80+(a[(c[j>>2]|0)+68>>0]<<1)|0;b[l>>1]=(b[l>>1]|0)+-1<<16>>16;c[h>>2]=IF(c[j>>2]|0,c[k>>2]|0)|0;l=c[h>>2]|0;i=m;return l|0}if(a[(c[l>>2]|0)+4>>0]|0){c[h>>2]=0;l=c[h>>2]|0;i=m;return l|0}else{c[h>>2]=JF(c[j>>2]|0)|0;l=c[h>>2]|0;i=m;return l|0}return 0}function UE(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0;l=i;i=i+16|0;h=l+8|0;j=l+4|0;k=l;c[j>>2]=f;c[k>>2]=g;c[c[k>>2]>>2]=0;g=(c[j>>2]|0)+64|0;a[g>>0]=d[g>>0]&-15;b[(c[j>>2]|0)+16+18>>1]=0;if(((d[(c[j>>2]|0)+66>>0]|0)==1?(e[(c[j>>2]|0)+80+(a[(c[j>>2]|0)+68>>0]<<1)>>1]|0)!=0:0)?(d[(c[(c[j>>2]|0)+120+(a[(c[j>>2]|0)+68>>0]<<2)>>2]|0)+4>>0]|0)!=0:0){g=(c[j>>2]|0)+80+(a[(c[j>>2]|0)+68>>0]<<1)|0;b[g>>1]=(b[g>>1]|0)+-1<<16>>16;c[h>>2]=0;g=c[h>>2]|0;i=l;return g|0}c[h>>2]=VE(c[j>>2]|0,c[k>>2]|0)|0;g=c[h>>2]|0;i=l;return g|0}function VE(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;j=p+20|0;k=p+16|0;l=p+12|0;n=p+8|0;m=p+4|0;h=p;c[k>>2]=f;c[l>>2]=g;if((d[(c[k>>2]|0)+66>>0]|0)!=1){if((d[(c[k>>2]|0)+66>>0]|0)>=3)f=WE(c[k>>2]|0)|0;else f=0;c[n>>2]=f;if(c[n>>2]|0){c[j>>2]=c[n>>2];o=c[j>>2]|0;i=p;return o|0}if(!(d[(c[k>>2]|0)+66>>0]|0)){c[c[l>>2]>>2]=1;c[j>>2]=0;o=c[j>>2]|0;i=p;return o|0}if((c[(c[k>>2]|0)+60>>2]|0)!=0?(a[(c[k>>2]|0)+66>>0]=1,g=(c[(c[k>>2]|0)+60>>2]|0)<0,c[(c[k>>2]|0)+60>>2]=0,g):0){c[j>>2]=0;o=c[j>>2]|0;i=p;return o|0}}c[m>>2]=c[(c[k>>2]|0)+120+(a[(c[k>>2]|0)+68>>0]<<2)>>2];do if(a[(c[m>>2]|0)+4>>0]|0){while(1){f=a[(c[k>>2]|0)+68>>0]|0;if(e[(c[k>>2]|0)+80+(a[(c[k>>2]|0)+68>>0]<<1)>>1]|0)break;g=c[k>>2]|0;if(!f){o=17;break}ZE(g)}if((o|0)==17){a[g+66>>0]=0;c[c[l>>2]>>2]=1;c[j>>2]=0;o=c[j>>2]|0;i=p;return o|0}o=(c[k>>2]|0)+80+(f<<1)|0;b[o>>1]=(b[o>>1]|0)+-1<<16>>16;c[m>>2]=c[(c[k>>2]|0)+120+(a[(c[k>>2]|0)+68>>0]<<2)>>2];if((d[(c[m>>2]|0)+2>>0]|0)!=0?(a[(c[m>>2]|0)+4>>0]|0)==0:0){c[n>>2]=UE(c[k>>2]|0,c[l>>2]|0)|0;break}c[n>>2]=0}else{c[h>>2]=e[(c[k>>2]|0)+80+(a[(c[k>>2]|0)+68>>0]<<1)>>1];o=c[k>>2]|0;c[n>>2]=XE(o,$q((c[(c[m>>2]|0)+56>>2]|0)+(e[(c[m>>2]|0)+20>>1]&(d[(c[(c[m>>2]|0)+64>>2]|0)+(c[h>>2]<<1)>>0]<<8|d[(c[(c[m>>2]|0)+64>>2]|0)+(c[h>>2]<<1)+1>>0]))|0)|0)|0;if(!(c[n>>2]|0)){c[n>>2]=YE(c[k>>2]|0)|0;break}c[j>>2]=c[n>>2];o=c[j>>2]|0;i=p;return o|0}while(0);c[j>>2]=c[n>>2];o=c[j>>2]|0;i=p;return o|0}function WE(b){b=b|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;e=j+12|0;f=j+8|0;g=j+4|0;h=j;c[f>>2]=b;b=c[f>>2]|0;if((d[(c[f>>2]|0)+66>>0]|0|0)==4){c[e>>2]=c[b+60>>2];h=c[e>>2]|0;i=j;return h|0}a[b+66>>0]=0;b=(c[f>>2]|0)+40|0;c[g>>2]=bF(c[f>>2]|0,c[(c[f>>2]|0)+48>>2]|0,c[b>>2]|0,c[b+4>>2]|0,0,h)|0;if(((c[g>>2]|0)==0?(Kd(c[(c[f>>2]|0)+48>>2]|0),c[(c[f>>2]|0)+48>>2]=0,b=(c[f>>2]|0)+60|0,c[b>>2]=c[b>>2]|c[h>>2],(c[(c[f>>2]|0)+60>>2]|0)!=0):0)?(d[(c[f>>2]|0)+66>>0]|0|0)==1:0)a[(c[f>>2]|0)+66>>0]=2;c[e>>2]=c[g>>2];h=c[e>>2]|0;i=j;return h|0}function XE(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;l=i;i=i+16|0;g=l+12|0;h=l+8|0;j=l+4|0;k=l;c[h>>2]=e;c[j>>2]=f;c[k>>2]=c[(c[h>>2]|0)+4>>2];if((a[(c[h>>2]|0)+68>>0]|0)>=19){c[g>>2]=Lj(60332)|0;e=c[g>>2]|0;i=l;return e|0}else{b[(c[h>>2]|0)+16+18>>1]=0;e=(c[h>>2]|0)+64|0;a[e>>0]=d[e>>0]&-7;e=(c[h>>2]|0)+68|0;a[e>>0]=(a[e>>0]|0)+1<<24>>24;b[(c[h>>2]|0)+80+(a[(c[h>>2]|0)+68>>0]<<1)>>1]=0;c[g>>2]=_E(c[k>>2]|0,c[j>>2]|0,(c[h>>2]|0)+120+(a[(c[h>>2]|0)+68>>0]<<2)|0,c[h>>2]|0,d[(c[h>>2]|0)+65>>0]|0)|0;e=c[g>>2]|0;i=l;return e|0}return 0}function YE(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;k=n+16|0;l=n+12|0;j=n+8|0;m=n+4|0;h=n;c[l>>2]=f;c[m>>2]=0;c[h>>2]=0;while(1){f=c[(c[l>>2]|0)+120+(a[(c[l>>2]|0)+68>>0]<<2)>>2]|0;c[h>>2]=f;g=c[h>>2]|0;if(!((a[f+4>>0]|0)!=0^1)){f=5;break}c[j>>2]=$q((c[(c[h>>2]|0)+56>>2]|0)+((d[g+5>>0]|0)+8)|0)|0;b[(c[l>>2]|0)+80+(a[(c[l>>2]|0)+68>>0]<<1)>>1]=b[(c[h>>2]|0)+18>>1]|0;c[m>>2]=XE(c[l>>2]|0,c[j>>2]|0)|0;if(c[m>>2]|0){f=4;break}}if((f|0)==4){c[k>>2]=c[m>>2];m=c[k>>2]|0;i=n;return m|0}else if((f|0)==5){b[(c[l>>2]|0)+80+(a[(c[l>>2]|0)+68>>0]<<1)>>1]=(e[g+18>>1]|0)-1;c[k>>2]=0;m=c[k>>2]|0;i=n;return m|0}return 0}function ZE(e){e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f;c[g>>2]=e;b[(c[g>>2]|0)+16+18>>1]=0;h=(c[g>>2]|0)+64|0;a[h>>0]=(d[h>>0]|0)&-7;h=(c[g>>2]|0)+68|0;e=a[h>>0]|0;a[h>>0]=e+-1<<24>>24;sB(c[(c[g>>2]|0)+120+(e<<24>>24<<2)>>2]|0);i=f;return}function _E(b,f,g,h,j){b=b|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+32|0;k=s+28|0;l=s+24|0;m=s+20|0;n=s+16|0;o=s+12|0;p=s+8|0;r=s+4|0;q=s;c[l>>2]=b;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[p>>2]=j;g=c[m>>2]|0;a:do if(g>>>0<=($E(c[l>>2]|0)|0)>>>0){c[r>>2]=sg(c[c[l>>2]>>2]|0,c[m>>2]|0,q,c[p>>2]|0)|0;if(!(c[r>>2]|0)){g=It(c[q>>2]|0)|0;c[c[n>>2]>>2]=g;if((d[c[c[n>>2]>>2]>>0]|0|0)==0?(aF(c[q>>2]|0,c[m>>2]|0,c[l>>2]|0)|0,c[r>>2]=Kt(c[c[n>>2]>>2]|0)|0,(c[r>>2]|0)!=0):0){qB(c[c[n>>2]>>2]|0);break}do if(c[o>>2]|0){if((e[(c[c[n>>2]>>2]|0)+18>>1]|0|0)>=1?(d[(c[c[n>>2]>>2]|0)+2>>0]|0|0)==(d[(c[o>>2]|0)+69>>0]|0|0):0)break;c[r>>2]=Lj(57580)|0;qB(c[c[n>>2]>>2]|0);break a}while(0);c[k>>2]=0;r=c[k>>2]|0;i=s;return r|0}}else c[r>>2]=Lj(57558)|0;while(0);if(c[o>>2]|0){g=(c[o>>2]|0)+68|0;a[g>>0]=(a[g>>0]|0)+-1<<24>>24}c[k>>2]=c[r>>2];r=c[k>>2]|0;i=s;return r|0}function $E(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c[(c[b>>2]|0)+44>>2]|0}function aF(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;f=k+12|0;g=k+8|0;h=k+4|0;j=k;c[f>>2]=b;c[g>>2]=d;c[h>>2]=e;c[j>>2]=It(c[f>>2]|0)|0;if((c[g>>2]|0)==(c[(c[j>>2]|0)+84>>2]|0)){d=c[j>>2]|0;i=k;return d|0}d=tg(c[f>>2]|0)|0;c[(c[j>>2]|0)+56>>2]=d;c[(c[j>>2]|0)+72>>2]=c[f>>2];c[(c[j>>2]|0)+52>>2]=c[h>>2];c[(c[j>>2]|0)+84>>2]=c[g>>2];a[(c[j>>2]|0)+5>>0]=(c[g>>2]|0)==1?100:0;d=c[j>>2]|0;i=k;return d|0}function bF(a,b,d,f,g,h){a=a|0;b=b|0;d=d|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+240|0;j=s+36|0;k=s+32|0;l=s+28|0;m=s;n=s+24|0;o=s+20|0;r=s+16|0;q=s+12|0;p=s+8|0;c[k>>2]=a;c[l>>2]=b;b=m;c[b>>2]=d;c[b+4>>2]=f;c[n>>2]=g;c[o>>2]=h;c[p>>2]=0;if(c[l>>2]|0){c[q>>2]=cF(c[(c[k>>2]|0)+72>>2]|0,s+40|0,200,p)|0;if(!(c[q>>2]|0)){c[j>>2]=7;r=c[j>>2]|0;i=s;return r|0}dF(c[(c[k>>2]|0)+72>>2]|0,c[m>>2]|0,c[l>>2]|0,c[q>>2]|0);if(!(e[(c[q>>2]|0)+8>>1]|0)){Sf(c[(c[(c[k>>2]|0)+72>>2]|0)+12>>2]|0,c[p>>2]|0);c[j>>2]=Lj(56338)|0;r=c[j>>2]|0;i=s;return r|0}}else c[q>>2]=0;h=m;c[r>>2]=eF(c[k>>2]|0,c[q>>2]|0,c[h>>2]|0,c[h+4>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;if(c[p>>2]|0)Sf(c[(c[(c[k>>2]|0)+72>>2]|0)+12>>2]|0,c[p>>2]|0);c[j>>2]=c[r>>2];r=c[j>>2]|0;i=s;return r|0}function cF(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=i;i=i+32|0;h=p+28|0;j=p+24|0;k=p+20|0;q=p+16|0;l=p+12|0;o=p+8|0;n=p+4|0;m=p;c[j>>2]=a;c[k>>2]=d;c[q>>2]=f;c[l>>2]=g;c[n>>2]=8-(c[k>>2]&7)&7;c[m>>2]=16+(((e[(c[j>>2]|0)+6>>1]|0)+1|0)*40|0);if((c[m>>2]|0)>((c[q>>2]|0)+(c[n>>2]|0)|0)){q=c[m>>2]|0;c[o>>2]=yh(c[(c[j>>2]|0)+12>>2]|0,q,((q|0)<0)<<31>>31)|0;c[c[l>>2]>>2]=c[o>>2];if(!(c[o>>2]|0)){c[h>>2]=0;q=c[h>>2]|0;i=p;return q|0}}else{c[o>>2]=(c[k>>2]|0)+(c[n>>2]|0);c[c[l>>2]>>2]=0}c[(c[o>>2]|0)+4>>2]=(c[o>>2]|0)+16;c[c[o>>2]>>2]=c[j>>2];b[(c[o>>2]|0)+8>>1]=(e[(c[j>>2]|0)+6>>1]|0)+1;c[h>>2]=c[o>>2];q=c[h>>2]|0;i=p;return q|0}function dF(f,g,h,j){f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;u=i;i=i+48|0;k=u+36|0;l=u+32|0;v=u+28|0;s=u+24|0;m=u+20|0;n=u+16|0;o=u+12|0;t=u+40|0;r=u+8|0;p=u+4|0;q=u;c[k>>2]=f;c[l>>2]=g;c[v>>2]=h;c[s>>2]=j;c[m>>2]=c[v>>2];c[p>>2]=c[(c[s>>2]|0)+4>>2];a[(c[s>>2]|0)+10>>0]=0;g=c[m>>2]|0;if((d[c[m>>2]>>0]|0|0)<128){c[r>>2]=d[g>>0];g=1}else g=(tF(g,r)|0)&255;c[o>>2]=g&255;c[n>>2]=c[r>>2];b[t>>1]=0;while(1){if((c[o>>2]|0)>>>0>=(c[r>>2]|0)>>>0){g=11;break}if((c[n>>2]|0)>(c[l>>2]|0)){g=11;break}g=(c[m>>2]|0)+(c[o>>2]|0)|0;if((d[(c[m>>2]|0)+(c[o>>2]|0)>>0]|0|0)<128){c[q>>2]=d[g>>0];g=1}else g=(tF(g,q)|0)&255;c[o>>2]=(c[o>>2]|0)+(g&255);a[(c[p>>2]|0)+10>>0]=a[(c[k>>2]|0)+4>>0]|0;c[(c[p>>2]|0)+32>>2]=c[(c[k>>2]|0)+12>>2];c[(c[p>>2]|0)+24>>2]=0;v=vF((c[m>>2]|0)+(c[n>>2]|0)|0,c[q>>2]|0,c[p>>2]|0)|0;c[n>>2]=(c[n>>2]|0)+v;c[p>>2]=(c[p>>2]|0)+40;v=(b[t>>1]|0)+1<<16>>16;b[t>>1]=v;if((v&65535|0)>=(e[(c[s>>2]|0)+8>>1]|0|0)){g=11;break}}if((g|0)==11){b[(c[s>>2]|0)+8>>1]=b[t>>1]|0;i=u;return}}function eF(f,g,h,j,k,l){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=i;i=i+96|0;m=F+80|0;n=F+76|0;o=F+72|0;p=F+8|0;q=F+68|0;r=F+64|0;C=F+60|0;E=F+56|0;v=F+52|0;D=F+48|0;u=F+44|0;s=F+40|0;t=F+36|0;B=F+32|0;y=F+28|0;x=F;w=F+24|0;A=F+20|0;z=F+16|0;c[n>>2]=f;c[o>>2]=g;g=p;c[g>>2]=h;c[g+4>>2]=j;c[q>>2]=k;c[r>>2]=l;if(((d[(c[n>>2]|0)+66>>0]|0)==1?(d[(c[n>>2]|0)+64>>0]&2|0)!=0:0)?(d[(c[n>>2]|0)+69>>0]|0)!=0:0){g=(c[n>>2]|0)+16|0;l=p;if((c[g>>2]|0)==(c[l>>2]|0)?(c[g+4>>2]|0)==(c[l+4>>2]|0):0){c[c[r>>2]>>2]=0;c[m>>2]=0;E=c[m>>2]|0;i=F;return E|0}if((d[(c[n>>2]|0)+64>>0]&8|0)!=0?(g=(c[n>>2]|0)+16|0,k=c[g+4>>2]|0,l=p,f=c[l+4>>2]|0,(k|0)<(f|0)|((k|0)==(f|0)?(c[g>>2]|0)>>>0<(c[l>>2]|0)>>>0:0)):0){c[c[r>>2]>>2]=-1;c[m>>2]=0;E=c[m>>2]|0;i=F;return E|0}}if(c[o>>2]|0){c[E>>2]=fF(c[o>>2]|0)|0;a[(c[o>>2]|0)+11>>0]=0}else c[E>>2]=0;c[C>>2]=gF(c[n>>2]|0)|0;if(c[C>>2]|0){c[m>>2]=c[C>>2];E=c[m>>2]|0;i=F;return E|0}if(!(d[(c[n>>2]|0)+66>>0]|0)){c[c[r>>2]>>2]=-1;c[m>>2]=0;E=c[m>>2]|0;i=F;return E|0}a:do{c[B>>2]=c[(c[n>>2]|0)+120+(a[(c[n>>2]|0)+68>>0]<<2)>>2];c[v>>2]=0;c[D>>2]=(e[(c[B>>2]|0)+18>>1]|0)-1;c[u>>2]=c[D>>2]>>1-(c[q>>2]|0);b[(c[n>>2]|0)+80+(a[(c[n>>2]|0)+68>>0]<<1)>>1]=c[u>>2];b:do if(!(c[E>>2]|0)){while(1){c[y>>2]=(c[(c[B>>2]|0)+68>>2]|0)+(e[(c[B>>2]|0)+20>>1]&(d[(c[(c[B>>2]|0)+64>>2]|0)+(c[u>>2]<<1)>>0]<<8|d[(c[(c[B>>2]|0)+64>>2]|0)+(c[u>>2]<<1)+1>>0]));c:do if(a[(c[B>>2]|0)+3>>0]|0)while(1){l=c[y>>2]|0;c[y>>2]=l+1;if(128>(d[l>>0]|0))break c;if((c[y>>2]|0)>>>0>=(c[(c[B>>2]|0)+60>>2]|0)>>>0){j=20;break a}}while(0);St(c[y>>2]|0,x)|0;g=x;k=c[g+4>>2]|0;l=p;f=c[l+4>>2]|0;if((k|0)<(f|0)|((k|0)==(f|0)?(c[g>>2]|0)>>>0<(c[l>>2]|0)>>>0:0)){c[v>>2]=(c[u>>2]|0)+1;if((c[v>>2]|0)>(c[D>>2]|0)){j=23;break}}else{g=x;k=c[g+4>>2]|0;l=p;f=c[l+4>>2]|0;if(!((k|0)>(f|0)|((k|0)==(f|0)?(c[g>>2]|0)>>>0>(c[l>>2]|0)>>>0:0))){j=27;break}c[D>>2]=(c[u>>2]|0)-1;if((c[v>>2]|0)>(c[D>>2]|0)){j=26;break}}c[u>>2]=(c[v>>2]|0)+(c[D>>2]|0)>>1}if((j|0)==23){c[s>>2]=-1;j=51;break}else if((j|0)==26){c[s>>2]=1;j=51;break}else if((j|0)==27){j=0;f=(c[n>>2]|0)+64|0;a[f>>0]=d[f>>0]|2;f=x;g=c[f+4>>2]|0;l=(c[n>>2]|0)+16|0;c[l>>2]=c[f>>2];c[l+4>>2]=g;b[(c[n>>2]|0)+80+(a[(c[n>>2]|0)+68>>0]<<1)>>1]=c[u>>2];
  57. if(a[(c[B>>2]|0)+4>>0]|0){j=29;break a}c[v>>2]=c[u>>2];break}}else while(1){c[y>>2]=(c[(c[B>>2]|0)+68>>2]|0)+(e[(c[B>>2]|0)+20>>1]&(d[(c[(c[B>>2]|0)+64>>2]|0)+(c[u>>2]<<1)>>0]<<8|d[(c[(c[B>>2]|0)+64>>2]|0)+(c[u>>2]<<1)+1>>0]));c[w>>2]=d[c[y>>2]>>0];do if((c[w>>2]|0)<=(d[(c[B>>2]|0)+7>>0]|0))c[s>>2]=Ob[c[E>>2]&255](c[w>>2]|0,(c[y>>2]|0)+1|0,c[o>>2]|0)|0;else{if((d[(c[y>>2]|0)+1>>0]&128|0)==0?(l=((c[w>>2]&127)<<7)+(d[(c[y>>2]|0)+1>>0]|0)|0,c[w>>2]=l,(l|0)<=(e[(c[B>>2]|0)+10>>1]|0)):0){c[s>>2]=Ob[c[E>>2]&255](c[w>>2]|0,(c[y>>2]|0)+2|0,c[o>>2]|0)|0;break}c[z>>2]=(c[y>>2]|0)+(0-(d[(c[B>>2]|0)+6>>0]|0));Ub[c[(c[B>>2]|0)+80>>2]&255](c[B>>2]|0,c[z>>2]|0,(c[n>>2]|0)+16|0);c[w>>2]=c[(c[n>>2]|0)+16>>2];if((c[w>>2]|0)<2){j=37;break a}l=(c[w>>2]|0)+18|0;c[A>>2]=_f(l,((l|0)<0)<<31>>31)|0;if(!(c[A>>2]|0)){j=39;break a}b[(c[n>>2]|0)+80+(a[(c[n>>2]|0)+68>>0]<<1)>>1]=c[u>>2];c[C>>2]=hF(c[n>>2]|0,0,c[w>>2]|0,c[A>>2]|0,2)|0;if(c[C>>2]|0){j=41;break a}c[s>>2]=Ob[c[E>>2]&255](c[w>>2]|0,c[A>>2]|0,c[o>>2]|0)|0;Kd(c[A>>2]|0)}while(0);if((c[s>>2]|0)<0)c[v>>2]=(c[u>>2]|0)+1;else{if((c[s>>2]|0)<=0){j=47;break a}c[D>>2]=(c[u>>2]|0)-1}if((c[v>>2]|0)>(c[D>>2]|0)){j=51;break b}c[u>>2]=(c[v>>2]|0)+(c[D>>2]|0)>>1}while(0);if((j|0)==51?(j=0,(a[(c[B>>2]|0)+4>>0]|0)!=0):0){j=52;break}h=c[B>>2]|0;if((c[v>>2]|0)>=(e[(c[B>>2]|0)+18>>1]|0))c[t>>2]=$q((c[(c[B>>2]|0)+56>>2]|0)+((d[h+5>>0]|0)+8)|0)|0;else c[t>>2]=$q((c[h+56>>2]|0)+(e[(c[B>>2]|0)+20>>1]&(d[(c[(c[B>>2]|0)+64>>2]|0)+(c[v>>2]<<1)>>0]<<8|d[(c[(c[B>>2]|0)+64>>2]|0)+(c[v>>2]<<1)+1>>0]))|0)|0;b[(c[n>>2]|0)+80+(a[(c[n>>2]|0)+68>>0]<<1)>>1]=c[v>>2];c[C>>2]=XE(c[n>>2]|0,c[t>>2]|0)|0}while((c[C>>2]|0)==0);if((j|0)==20){c[m>>2]=Lj(60709)|0;E=c[m>>2]|0;i=F;return E|0}else if((j|0)==29){c[c[r>>2]>>2]=0;c[C>>2]=0}else if((j|0)==37)c[C>>2]=Lj(60782)|0;else if((j|0)==39)c[C>>2]=7;else if((j|0)==41)Kd(c[A>>2]|0);else if((j|0)==47){c[c[r>>2]>>2]=0;c[C>>2]=0;b[(c[n>>2]|0)+80+(a[(c[n>>2]|0)+68>>0]<<1)>>1]=c[u>>2];if(a[(c[o>>2]|0)+11>>0]|0)c[C>>2]=11}else if((j|0)==52){b[(c[n>>2]|0)+80+(a[(c[n>>2]|0)+68>>0]<<1)>>1]=c[u>>2];c[c[r>>2]>>2]=c[s>>2];c[C>>2]=0}b[(c[n>>2]|0)+16+18>>1]=0;E=(c[n>>2]|0)+64|0;a[E>>0]=d[E>>0]&-7;c[m>>2]=c[C>>2];E=c[m>>2]|0;i=F;return E|0}function fF(b){b=b|0;var d=0,f=0,g=0,h=0;h=i;i=i+16|0;d=h+8|0;f=h+4|0;g=h;c[f>>2]=b;if(((e[(c[c[f>>2]>>2]|0)+6>>1]|0)+(e[(c[c[f>>2]>>2]|0)+8>>1]|0)|0)<=13){c[g>>2]=e[(c[(c[f>>2]|0)+4>>2]|0)+8>>1];b=(c[f>>2]|0)+12|0;if(a[c[(c[c[f>>2]>>2]|0)+16>>2]>>0]|0){a[b>>0]=1;a[(c[f>>2]|0)+13>>0]=-1}else{a[b>>0]=-1;a[(c[f>>2]|0)+13>>0]=1}if(c[g>>2]&4){c[d>>2]=160;g=c[d>>2]|0;i=h;return g|0}if((c[g>>2]&25|0)==0?(c[(c[c[f>>2]>>2]|0)+20>>2]|0)==0:0){c[d>>2]=161;g=c[d>>2]|0;i=h;return g|0}}c[d>>2]=162;g=c[d>>2]|0;i=h;return g|0}function gF(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+32|0;g=m+16|0;h=m+12|0;j=m+8|0;k=m+4|0;l=m;c[h>>2]=f;c[k>>2]=0;do if((d[(c[h>>2]|0)+66>>0]|0)>=3){f=c[h>>2]|0;if((d[(c[h>>2]|0)+66>>0]|0)!=4){pB(f);break}c[g>>2]=c[f+60>>2];l=c[g>>2]|0;i=m;return l|0}while(0);a:do if((a[(c[h>>2]|0)+68>>0]|0)>=0)while(1){if(!(a[(c[h>>2]|0)+68>>0]|0))break a;n=(c[h>>2]|0)+68|0;f=a[n>>0]|0;a[n>>0]=f+-1<<24>>24;sB(c[(c[h>>2]|0)+120+(f<<24>>24<<2)>>2]|0)}else{f=c[h>>2]|0;if(!(c[(c[h>>2]|0)+52>>2]|0)){a[f+66>>0]=0;c[g>>2]=0;n=c[g>>2]|0;i=m;return n|0}c[k>>2]=_E(c[(c[f>>2]|0)+4>>2]|0,c[(c[h>>2]|0)+52>>2]|0,(c[h>>2]|0)+120|0,0,d[(c[h>>2]|0)+65>>0]|0)|0;f=c[h>>2]|0;if(!(c[k>>2]|0)){a[f+68>>0]=0;a[(c[h>>2]|0)+69>>0]=a[(c[(c[h>>2]|0)+120>>2]|0)+2>>0]|0;break}a[f+66>>0]=0;c[g>>2]=c[k>>2];n=c[g>>2]|0;i=m;return n|0}while(0);c[j>>2]=c[(c[h>>2]|0)+120>>2];if((d[c[j>>2]>>0]|0)!=0?((c[(c[h>>2]|0)+72>>2]|0)==0|0)==(d[(c[j>>2]|0)+2>>0]|0):0){b[(c[h>>2]|0)+80>>1]=0;b[(c[h>>2]|0)+16+18>>1]=0;n=(c[h>>2]|0)+64|0;a[n>>0]=d[n>>0]&-15;do if((e[(c[j>>2]|0)+18>>1]|0)>0)a[(c[h>>2]|0)+66>>0]=1;else{if(a[(c[j>>2]|0)+4>>0]|0){a[(c[h>>2]|0)+66>>0]=0;break}if((c[(c[j>>2]|0)+84>>2]|0)==1){c[l>>2]=$q((c[(c[j>>2]|0)+56>>2]|0)+((d[(c[j>>2]|0)+5>>0]|0)+8)|0)|0;a[(c[h>>2]|0)+66>>0]=1;c[k>>2]=XE(c[h>>2]|0,c[l>>2]|0)|0;break}c[g>>2]=Lj(60470)|0;n=c[g>>2]|0;i=m;return n|0}while(0);c[g>>2]=c[k>>2];n=c[g>>2]|0;i=m;return n|0}c[g>>2]=Lj(60459)|0;n=c[g>>2]|0;i=m;return n|0}function hF(b,f,g,h,j){b=b|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;C=i;i=i+80|0;k=C+68|0;l=C+64|0;m=C+60|0;n=C+56|0;o=C+52|0;p=C+48|0;t=C+44|0;B=C+40|0;u=C+36|0;A=C+32|0;y=C+28|0;q=C+24|0;x=C+20|0;w=C+16|0;v=C+12|0;s=C+8|0;r=C+4|0;z=C;c[l>>2]=b;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[p>>2]=j;c[B>>2]=0;c[u>>2]=0;c[A>>2]=c[(c[l>>2]|0)+120+(a[(c[l>>2]|0)+68>>0]<<2)>>2];c[y>>2]=c[(c[l>>2]|0)+4>>2];iF(c[l>>2]|0);c[t>>2]=c[(c[l>>2]|0)+16+8>>2];if(((c[t>>2]|0)+(e[(c[l>>2]|0)+16+16>>1]|0)|0)>>>0>((c[(c[A>>2]|0)+56>>2]|0)+(c[(c[y>>2]|0)+36>>2]|0)|0)>>>0){c[k>>2]=Lj(60043)|0;B=c[k>>2]|0;i=C;return B|0}if((c[m>>2]|0)>>>0<(e[(c[l>>2]|0)+16+16>>1]|0)>>>0){c[q>>2]=c[n>>2];if(((c[q>>2]|0)+(c[m>>2]|0)|0)>>>0>(e[(c[l>>2]|0)+16+16>>1]|0)>>>0)c[q>>2]=(e[(c[l>>2]|0)+16+16>>1]|0)-(c[m>>2]|0);c[B>>2]=jF((c[t>>2]|0)+(c[m>>2]|0)|0,c[o>>2]|0,c[q>>2]|0,c[p>>2]&1,c[(c[A>>2]|0)+72>>2]|0)|0;c[m>>2]=0;c[o>>2]=(c[o>>2]|0)+(c[q>>2]|0);c[n>>2]=(c[n>>2]|0)-(c[q>>2]|0)}else c[m>>2]=(c[m>>2]|0)-(e[(c[l>>2]|0)+16+16>>1]|0);a:do if((c[B>>2]|0)==0&(c[n>>2]|0)>>>0>0){c[x>>2]=(c[(c[y>>2]|0)+36>>2]|0)-4;c[w>>2]=$q((c[t>>2]|0)+(e[(c[l>>2]|0)+16+16>>1]|0)|0)|0;if((c[p>>2]|0)!=2?(d[(c[l>>2]|0)+64>>0]&4|0)==0:0){c[v>>2]=(((c[(c[l>>2]|0)+16+12>>2]|0)-(e[(c[l>>2]|0)+16+16>>1]|0)+(c[x>>2]|0)-1|0)>>>0)/((c[x>>2]|0)>>>0)|0;do if((c[v>>2]|0)>(c[(c[l>>2]|0)+56>>2]|0)){c[s>>2]=bg(c[(c[l>>2]|0)+12>>2]|0,c[v>>2]<<1<<2,0)|0;if(!(c[s>>2]|0)){c[B>>2]=7;break}else{c[(c[l>>2]|0)+56>>2]=c[v>>2]<<1;c[(c[l>>2]|0)+12>>2]=c[s>>2];break}}while(0);if(!(c[B>>2]|0)){kR(c[(c[l>>2]|0)+12>>2]|0,0,c[v>>2]<<2|0)|0;A=(c[l>>2]|0)+64|0;a[A>>0]=d[A>>0]|4}}if((d[(c[l>>2]|0)+64>>0]&4|0)!=0?(c[(c[(c[l>>2]|0)+12>>2]|0)+((((c[m>>2]|0)>>>0)/((c[x>>2]|0)>>>0)|0)<<2)>>2]|0)!=0:0){c[u>>2]=((c[m>>2]|0)>>>0)/((c[x>>2]|0)>>>0)|0;c[w>>2]=c[(c[(c[l>>2]|0)+12>>2]|0)+(c[u>>2]<<2)>>2];c[m>>2]=((c[m>>2]|0)>>>0)%((c[x>>2]|0)>>>0)|0}while(1){if(!((c[B>>2]|0)==0&(c[n>>2]|0)>>>0>0&(c[w>>2]|0)!=0))break a;if(d[(c[l>>2]|0)+64>>0]&4)c[(c[(c[l>>2]|0)+12>>2]|0)+(c[u>>2]<<2)>>2]=c[w>>2];if((c[m>>2]|0)>>>0>=(c[x>>2]|0)>>>0){if(c[(c[(c[l>>2]|0)+12>>2]|0)+((c[u>>2]|0)+1<<2)>>2]|0)c[w>>2]=c[(c[(c[l>>2]|0)+12>>2]|0)+((c[u>>2]|0)+1<<2)>>2];else c[B>>2]=kF(c[y>>2]|0,c[w>>2]|0,0,w)|0;c[m>>2]=(c[m>>2]|0)-(c[x>>2]|0)}else{c[r>>2]=c[n>>2];if(((c[r>>2]|0)+(c[m>>2]|0)|0)>>>0>(c[x>>2]|0)>>>0)c[r>>2]=(c[x>>2]|0)-(c[m>>2]|0);c[B>>2]=sg(c[c[y>>2]>>2]|0,c[w>>2]|0,z,(c[p>>2]&1|0)==0?2:0)|0;if(!(c[B>>2]|0)){c[t>>2]=tg(c[z>>2]|0)|0;c[w>>2]=$q(c[t>>2]|0)|0;c[B>>2]=jF((c[t>>2]|0)+((c[m>>2]|0)+4)|0,c[o>>2]|0,c[r>>2]|0,c[p>>2]&1,c[z>>2]|0)|0;vg(c[z>>2]|0);c[m>>2]=0}c[n>>2]=(c[n>>2]|0)-(c[r>>2]|0);c[o>>2]=(c[o>>2]|0)+(c[r>>2]|0)}c[u>>2]=(c[u>>2]|0)+1}}while(0);if((c[B>>2]|0)==0&(c[n>>2]|0)>>>0>0){c[k>>2]=Lj(60200)|0;B=c[k>>2]|0;i=C;return B|0}else{c[k>>2]=c[B>>2];B=c[k>>2]|0;i=C;return B|0}return 0}function iF(b){b=b|0;var f=0,g=0,h=0;h=i;i=i+16|0;f=h+4|0;g=h;c[f>>2]=b;if(e[(c[f>>2]|0)+16+18>>1]|0){i=h;return}c[g>>2]=a[(c[f>>2]|0)+68>>0];b=(c[f>>2]|0)+64|0;a[b>>0]=d[b>>0]|2;oF(c[(c[f>>2]|0)+120+(c[g>>2]<<2)>>2]|0,e[(c[f>>2]|0)+80+(c[g>>2]<<1)>>1]|0,(c[f>>2]|0)+16|0);i=h;return}function jF(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;n=i;i=i+32|0;g=n+24|0;h=n+20|0;j=n+16|0;k=n+12|0;o=n+8|0;l=n+4|0;m=n;c[h>>2]=a;c[j>>2]=b;c[k>>2]=d;c[o>>2]=e;c[l>>2]=f;do if(c[o>>2]|0){c[m>>2]=Dg(c[l>>2]|0)|0;if(!(c[m>>2]|0)){iR(c[h>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;break}c[g>>2]=c[m>>2];o=c[g>>2]|0;i=n;return o|0}else iR(c[j>>2]|0,c[h>>2]|0,c[k>>2]|0)|0;while(0);c[g>>2]=0;o=c[g>>2]|0;i=n;return o|0}function kF(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+48|0;h=s+32|0;j=s+28|0;q=s+24|0;k=s+20|0;n=s+16|0;o=s+12|0;r=s+8|0;p=s+4|0;m=s;l=s+36|0;c[h>>2]=b;c[j>>2]=e;c[q>>2]=f;c[k>>2]=g;c[n>>2]=0;c[o>>2]=0;c[r>>2]=0;if(a[(c[h>>2]|0)+17>>0]|0){c[m>>2]=(c[j>>2]|0)+1;while(1){f=lF(c[h>>2]|0,c[m>>2]|0)|0;if((f|0)==(c[m>>2]|0))b=1;else b=(c[m>>2]|0)==((((c[381]|0)>>>0)/((c[(c[h>>2]|0)+32>>2]|0)>>>0)|0)+1|0);e=c[m>>2]|0;if(!b)break;c[m>>2]=e+1}if(((e>>>0<=($E(c[h>>2]|0)|0)>>>0?(c[r>>2]=mF(c[h>>2]|0,c[m>>2]|0,l,p)|0,(c[r>>2]|0)==0):0)?(d[l>>0]|0)==4:0)?(c[p>>2]|0)==(c[j>>2]|0):0){c[n>>2]=c[m>>2];c[r>>2]=101}}if((c[r>>2]|0)==0?(c[r>>2]=nF(c[h>>2]|0,c[j>>2]|0,o,(c[q>>2]|0)==0?2:0)|0,(c[r>>2]|0)==0):0)c[n>>2]=$q(c[(c[o>>2]|0)+56>>2]|0)|0;c[c[k>>2]>>2]=c[n>>2];e=c[o>>2]|0;if(c[q>>2]|0){c[c[q>>2]>>2]=e;q=c[r>>2]|0;q=(q|0)==101;r=c[r>>2]|0;r=q?0:r;i=s;return r|0}else{qB(e);q=c[r>>2]|0;q=(q|0)==101;r=c[r>>2]|0;r=q?0:r;i=s;return r|0}return 0}function lF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;d=k+20|0;e=k+16|0;f=k+12|0;h=k+8|0;g=k+4|0;j=k;c[e>>2]=a;c[f>>2]=b;if((c[f>>2]|0)>>>0<2){c[d>>2]=0;j=c[d>>2]|0;i=k;return j|0}c[h>>2]=(((c[(c[e>>2]|0)+36>>2]|0)>>>0)/5|0)+1;c[g>>2]=(((c[f>>2]|0)-2|0)>>>0)/((c[h>>2]|0)>>>0)|0;c[j>>2]=(_(c[g>>2]|0,c[h>>2]|0)|0)+2;if((c[j>>2]|0)==((((c[381]|0)>>>0)/((c[(c[e>>2]|0)+32>>2]|0)>>>0)|0)+1|0))c[j>>2]=(c[j>>2]|0)+1;c[d>>2]=c[j>>2];j=c[d>>2]|0;i=k;return j|0}function mF(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;r=i;i=i+48|0;h=r+36|0;s=r+32|0;j=r+28|0;k=r+24|0;l=r+20|0;o=r+16|0;m=r+12|0;p=r+8|0;n=r+4|0;q=r;c[s>>2]=b;c[j>>2]=e;c[k>>2]=f;c[l>>2]=g;c[m>>2]=lF(c[s>>2]|0,c[j>>2]|0)|0;c[q>>2]=sg(c[c[s>>2]>>2]|0,c[m>>2]|0,o,0)|0;if(c[q>>2]|0){c[h>>2]=c[q>>2];s=c[h>>2]|0;i=r;return s|0}c[p>>2]=tg(c[o>>2]|0)|0;c[n>>2]=((c[j>>2]|0)-(c[m>>2]|0)-1|0)*5;if((c[n>>2]|0)<0){vg(c[o>>2]|0);c[h>>2]=Lj(56557)|0;s=c[h>>2]|0;i=r;return s|0}a[c[k>>2]>>0]=a[(c[p>>2]|0)+(c[n>>2]|0)>>0]|0;if(c[l>>2]|0){s=$q((c[p>>2]|0)+((c[n>>2]|0)+1)|0)|0;c[c[l>>2]>>2]=s}vg(c[o>>2]|0);if((d[c[k>>2]>>0]|0|0)>=1?(d[c[k>>2]>>0]|0|0)<=5:0){c[h>>2]=0;s=c[h>>2]|0;i=r;return s|0}c[h>>2]=Lj(56565)|0;s=c[h>>2]|0;i=r;return s|0}function nF(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+32|0;f=m+24|0;g=m+20|0;h=m+16|0;j=m+12|0;n=m+8|0;l=m+4|0;k=m;c[g>>2]=a;c[h>>2]=b;c[j>>2]=d;c[n>>2]=e;c[l>>2]=sg(c[c[g>>2]>>2]|0,c[h>>2]|0,k,c[n>>2]|0)|0;if(c[l>>2]|0){c[f>>2]=c[l>>2];n=c[f>>2]|0;i=m;return n|0}else{n=aF(c[k>>2]|0,c[h>>2]|0,c[g>>2]|0)|0;c[c[j>>2]>>2]=n;c[f>>2]=0;n=c[f>>2]|0;i=m;return n|0}return 0}function oF(a,b,f){a=a|0;b=b|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;i=i+16|0;k=g+8|0;j=g+4|0;h=g;c[k>>2]=a;c[j>>2]=b;c[h>>2]=f;Ub[c[(c[k>>2]|0)+80>>2]&255](c[k>>2]|0,(c[(c[k>>2]|0)+56>>2]|0)+((e[(c[k>>2]|0)+20>>1]|0)&((d[(c[(c[k>>2]|0)+64>>2]|0)+(c[j>>2]<<1)>>0]|0)<<8|(d[(c[(c[k>>2]|0)+64>>2]|0)+(c[j>>2]<<1)+1>>0]|0)))|0,c[h>>2]|0);i=g;return}function pF(b,f,g){b=b|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=i;i=i+64|0;n=s+52|0;o=s+48|0;p=s+44|0;q=s+40|0;h=s+36|0;t=s+32|0;r=s+28|0;m=s+24|0;l=s+16|0;k=s+8|0;j=s;c[o>>2]=b;c[p>>2]=f;c[q>>2]=g;c[h>>2]=(c[p>>2]|0)+(d[c[p>>2]>>0]&63);c[t>>2]=d[(c[p>>2]|0)+1>>0];b=c[(c[q>>2]|0)+4>>2]|0;f=c[b+4>>2]|0;g=k;c[g>>2]=c[b>>2];c[g+4>>2]=f;do switch(c[t>>2]|0){case 1:{m=a[c[h>>2]>>0]|0;t=j;c[t>>2]=m;c[t+4>>2]=((m|0)<0)<<31>>31;break}case 2:{m=a[c[h>>2]>>0]<<8|d[(c[h>>2]|0)+1>>0];t=j;c[t>>2]=m;c[t+4>>2]=((m|0)<0)<<31>>31;break}case 3:{m=a[c[h>>2]>>0]<<16|d[(c[h>>2]|0)+1>>0]<<8|d[(c[h>>2]|0)+2>>0];t=j;c[t>>2]=m;c[t+4>>2]=((m|0)<0)<<31>>31;break}case 4:{c[m>>2]=d[c[h>>2]>>0]<<24|d[(c[h>>2]|0)+1>>0]<<16|d[(c[h>>2]|0)+2>>0]<<8|d[(c[h>>2]|0)+3>>0];m=c[m>>2]|0;t=j;c[t>>2]=m;c[t+4>>2]=((m|0)<0)<<31>>31;break}case 5:{m=a[c[h>>2]>>0]<<8|d[(c[h>>2]|0)+1>>0];t=j;c[t>>2]=gR(d[(c[h>>2]|0)+2>>0]<<24|d[(c[h>>2]|0)+2+1>>0]<<16|d[(c[h>>2]|0)+2+2>>0]<<8|d[(c[h>>2]|0)+2+3>>0]|0,0,rR(0,1,m|0,((m|0)<0)<<31>>31|0)|0,C|0)|0;c[t+4>>2]=C;break}case 6:{t=l;c[t>>2]=d[c[h>>2]>>0]<<24|d[(c[h>>2]|0)+1>>0]<<16|d[(c[h>>2]|0)+2>>0]<<8|d[(c[h>>2]|0)+3>>0];c[t+4>>2]=0;t=c[l>>2]|0;m=l;c[m>>2]=d[(c[h>>2]|0)+4>>0]<<24|d[(c[h>>2]|0)+4+1>>0]<<16|d[(c[h>>2]|0)+4+2>>0]<<8|d[(c[h>>2]|0)+4+3>>0];c[m+4>>2]=t;m=c[l+4>>2]|0;t=j;c[t>>2]=c[l>>2];c[t+4>>2]=m;break}case 8:{t=j;c[t>>2]=0;c[t+4>>2]=0;break}case 9:{t=j;c[t>>2]=1;c[t+4>>2]=0;break}case 7:case 0:{c[n>>2]=rF(c[o>>2]|0,c[p>>2]|0,c[q>>2]|0)|0;t=c[n>>2]|0;i=s;return t|0}default:{c[n>>2]=rF(c[o>>2]|0,c[p>>2]|0,c[q>>2]|0)|0;t=c[n>>2]|0;i=s;return t|0}}while(0);m=k;g=c[m+4>>2]|0;t=j;l=c[t+4>>2]|0;do if(!((g|0)>(l|0)|((g|0)==(l|0)?(c[m>>2]|0)>>>0>(c[t>>2]|0)>>>0:0))){m=k;k=c[m+4>>2]|0;t=j;l=c[t+4>>2]|0;h=c[q>>2]|0;if((k|0)<(l|0)|((k|0)==(l|0)?(c[m>>2]|0)>>>0<(c[t>>2]|0)>>>0:0)){c[r>>2]=a[h+13>>0];break}if((e[h+8>>1]|0)>1){c[r>>2]=sF(c[o>>2]|0,c[p>>2]|0,c[q>>2]|0,1)|0;break}else{c[r>>2]=a[(c[q>>2]|0)+10>>0];a[(c[q>>2]|0)+14>>0]=1;break}}else c[r>>2]=a[(c[q>>2]|0)+12>>0];while(0);c[n>>2]=c[r>>2];t=c[n>>2]|0;i=s;return t|0}function qF(b,f,g){b=b|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+48|0;q=s+36|0;j=s+32|0;k=s+28|0;l=s+24|0;m=s+20|0;h=s+16|0;r=s+12|0;n=s+8|0;o=s+4|0;p=s;c[j>>2]=b;c[k>>2]=f;c[l>>2]=g;c[m>>2]=c[k>>2];b=(c[m>>2]|0)+1|0;if((d[(c[m>>2]|0)+1>>0]|0)<128)c[h>>2]=d[b>>0];else tF(b,h)|0;do if((c[h>>2]|0)>=12){if(!(c[h>>2]&1)){c[r>>2]=a[(c[l>>2]|0)+13>>0];break}c[p>>2]=d[c[m>>2]>>0];c[o>>2]=((c[h>>2]|0)-12|0)/2|0;if(((c[p>>2]|0)+(c[o>>2]|0)|0)>(c[j>>2]|0)){r=(Lj(71970)|0)&255;a[(c[l>>2]|0)+11>>0]=r;c[q>>2]=0;r=c[q>>2]|0;i=s;return r|0}if((c[(c[(c[l>>2]|0)+4>>2]|0)+12>>2]|0)<(c[o>>2]|0))b=c[(c[(c[l>>2]|0)+4>>2]|0)+12>>2]|0;else b=c[o>>2]|0;c[n>>2]=b;c[r>>2]=vQ((c[m>>2]|0)+(c[p>>2]|0)|0,c[(c[(c[l>>2]|0)+4>>2]|0)+16>>2]|0,c[n>>2]|0)|0;if(c[r>>2]|0){b=c[l>>2]|0;if((c[r>>2]|0)>0){c[r>>2]=a[b+13>>0];break}else{c[r>>2]=a[b+12>>0];break}}c[r>>2]=(c[o>>2]|0)-(c[(c[(c[l>>2]|0)+4>>2]|0)+12>>2]|0);if(!(c[r>>2]|0))if((e[(c[l>>2]|0)+8>>1]|0)>1){c[r>>2]=sF(c[j>>2]|0,c[k>>2]|0,c[l>>2]|0,1)|0;break}else{c[r>>2]=a[(c[l>>2]|0)+10>>0];a[(c[l>>2]|0)+14>>0]=1;break}else{b=c[l>>2]|0;if((c[r>>2]|0)>0){c[r>>2]=a[b+13>>0];break}else{c[r>>2]=a[b+12>>0];break}}}else c[r>>2]=a[(c[l>>2]|0)+12>>0];while(0);c[q>>2]=c[r>>2];r=c[q>>2]|0;i=s;return r|0}function rF(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;h=e+8|0;g=e+4|0;f=e;c[h>>2]=a;c[g>>2]=b;c[f>>2]=d;d=sF(c[h>>2]|0,c[g>>2]|0,c[f>>2]|0,0)|0;i=e;return d|0}function sF(f,g,j,k){f=f|0;g=g|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0;F=i;i=i+128|0;A=F+124|0;m=F+120|0;H=F+116|0;B=F+112|0;G=F+108|0;o=F+104|0;p=F+100|0;z=F+96|0;q=F+92|0;E=F+88|0;w=F+84|0;D=F+80|0;n=F+76|0;s=F+16|0;l=F+72|0;y=F+68|0;r=F+8|0;x=F;t=F+64|0;v=F+60|0;u=F+56|0;c[m>>2]=f;c[H>>2]=g;c[B>>2]=j;c[G>>2]=k;c[E>>2]=0;c[w>>2]=c[(c[B>>2]|0)+4>>2];c[D>>2]=c[c[B>>2]>>2];c[n>>2]=c[H>>2];f=c[n>>2]|0;do if(c[G>>2]|0){k=(c[n>>2]|0)+1|0;if((d[f+1>>0]|0)<128){c[l>>2]=d[k>>0];k=1}else k=(tF(k,l)|0)&255;c[q>>2]=1+(k&255);c[z>>2]=d[c[n>>2]>>0];H=c[z>>2]|0;c[o>>2]=H+(uF(c[l>>2]|0)|0);c[p>>2]=1;c[w>>2]=(c[w>>2]|0)+40}else{k=c[n>>2]|0;if((d[f>>0]|0)<128){c[z>>2]=d[k>>0];k=1}else k=(tF(k,z)|0)&255;c[q>>2]=k&255;c[o>>2]=c[z>>2];if((c[o>>2]|0)>>>0<=(c[m>>2]|0)>>>0){c[p>>2]=0;break}H=(Lj(71688)|0)&255;a[(c[B>>2]|0)+11>>0]=H;c[A>>2]=0;H=c[A>>2]|0;i=F;return H|0}while(0);a:while(1){do if(e[(c[w>>2]|0)+8>>1]&4){c[y>>2]=d[(c[n>>2]|0)+(c[q>>2]|0)>>0];if((c[y>>2]|0)>>>0>=10){c[E>>2]=1;break}if(!(c[y>>2]|0)){c[E>>2]=-1;break}if((c[y>>2]|0)==7){vF((c[n>>2]|0)+(c[o>>2]|0)|0,c[y>>2]|0,s)|0;H=c[w>>2]|0;c[E>>2]=0-(wF(c[H>>2]|0,c[H+4>>2]|0,+h[s>>3])|0);break}j=xF(c[y>>2]|0,(c[n>>2]|0)+(c[o>>2]|0)|0)|0;H=r;c[H>>2]=j;c[H+4>>2]=C;H=c[w>>2]|0;j=c[H+4>>2]|0;G=x;c[G>>2]=c[H>>2];c[G+4>>2]=j;G=r;j=c[G+4>>2]|0;H=x;l=c[H+4>>2]|0;if((j|0)<(l|0)|((j|0)==(l|0)?(c[G>>2]|0)>>>0<(c[H>>2]|0)>>>0:0)){c[E>>2]=-1;break}G=r;j=c[G+4>>2]|0;H=x;l=c[H+4>>2]|0;if((j|0)>(l|0)|((j|0)==(l|0)?(c[G>>2]|0)>>>0>(c[H>>2]|0)>>>0:0))c[E>>2]=1}else{if(e[(c[w>>2]|0)+8>>1]&8){c[y>>2]=d[(c[n>>2]|0)+(c[q>>2]|0)>>0];if((c[y>>2]|0)>>>0>=10){c[E>>2]=1;break}if(!(c[y>>2]|0)){c[E>>2]=-1;break}vF((c[n>>2]|0)+(c[o>>2]|0)|0,c[y>>2]|0,s)|0;if((c[y>>2]|0)!=7){H=s;c[E>>2]=wF(c[H>>2]|0,c[H+4>>2]|0,+h[c[w>>2]>>3])|0;break}if(+h[s>>3]<+h[c[w>>2]>>3]){c[E>>2]=-1;break}if(!(+h[s>>3]>+h[c[w>>2]>>3]))break;c[E>>2]=1;break}if(!(e[(c[w>>2]|0)+8>>1]&2)){k=d[(c[n>>2]|0)+(c[q>>2]|0)>>0]|0;if(!(e[(c[w>>2]|0)+8>>1]&16)){c[y>>2]=k;c[E>>2]=(c[y>>2]|0)!=0&1;break}f=(c[n>>2]|0)+(c[q>>2]|0)|0;if((k|0)<128)c[y>>2]=d[f>>0];else tF(f,y)|0;if((c[y>>2]|0)>>>0>=12?(c[y>>2]&1|0)==0:0){c[v>>2]=(((c[y>>2]|0)-12|0)>>>0)/2|0;if(((c[o>>2]|0)+(c[v>>2]|0)|0)>>>0>(c[m>>2]|0)>>>0){k=59;break a}if((c[v>>2]|0)<(c[(c[w>>2]|0)+12>>2]|0))k=c[v>>2]|0;else k=c[(c[w>>2]|0)+12>>2]|0;c[u>>2]=k;c[E>>2]=vQ((c[n>>2]|0)+(c[o>>2]|0)|0,c[(c[w>>2]|0)+16>>2]|0,c[u>>2]|0)|0;if(c[E>>2]|0)break;c[E>>2]=(c[v>>2]|0)-(c[(c[w>>2]|0)+12>>2]|0);break}c[E>>2]=-1;break}k=(c[n>>2]|0)+(c[q>>2]|0)|0;if((d[(c[n>>2]|0)+(c[q>>2]|0)>>0]|0)<128)c[y>>2]=d[k>>0];else tF(k,y)|0;if((c[y>>2]|0)>>>0<12){c[E>>2]=-1;break}if(!(c[y>>2]&1)){c[E>>2]=1;break}c[s+12>>2]=(((c[y>>2]|0)-12|0)>>>0)/2|0;if(((c[o>>2]|0)+(c[s+12>>2]|0)|0)>>>0>(c[m>>2]|0)>>>0){k=43;break a}if(c[(c[D>>2]|0)+20+(c[p>>2]<<2)>>2]|0){a[s+10>>0]=a[(c[D>>2]|0)+4>>0]|0;c[s+32>>2]=c[(c[D>>2]|0)+12>>2];b[s+8>>1]=2;c[s+16>>2]=(c[n>>2]|0)+(c[o>>2]|0);c[E>>2]=yF(s,c[w>>2]|0,c[(c[D>>2]|0)+20+(c[p>>2]<<2)>>2]|0,(c[B>>2]|0)+11|0)|0;break}if((c[s+12>>2]|0)<(c[(c[w>>2]|0)+12>>2]|0))k=c[s+12>>2]|0;else k=c[(c[w>>2]|0)+12>>2]|0;c[t>>2]=k;c[E>>2]=vQ((c[n>>2]|0)+(c[o>>2]|0)|0,c[(c[w>>2]|0)+16>>2]|0,c[t>>2]|0)|0;if(!(c[E>>2]|0))c[E>>2]=(c[s+12>>2]|0)-(c[(c[w>>2]|0)+12>>2]|0)}while(0);f=c[p>>2]|0;if(c[E>>2]|0){k=67;break}c[p>>2]=f+1;c[w>>2]=(c[w>>2]|0)+40;H=uF(c[y>>2]|0)|0;c[o>>2]=(c[o>>2]|0)+H;H=zF(c[y>>2]|0,0)|0;c[q>>2]=(c[q>>2]|0)+H;if((c[q>>2]|0)>>>0>=(c[z>>2]|0)>>>0){k=73;break}if((c[p>>2]|0)>=(e[(c[B>>2]|0)+8>>1]|0)){k=73;break}if((c[o>>2]|0)>>>0>(c[m>>2]|0)>>>0){k=73;break}}if((k|0)==43){H=(Lj(71763)|0)&255;a[(c[B>>2]|0)+11>>0]=H;c[A>>2]=0;H=c[A>>2]|0;i=F;return H|0}else if((k|0)==59){H=(Lj(71792)|0)&255;a[(c[B>>2]|0)+11>>0]=H;c[A>>2]=0;H=c[A>>2]|0;i=F;return H|0}else if((k|0)==67){if(a[(c[(c[D>>2]|0)+16>>2]|0)+f>>0]|0)c[E>>2]=0-(c[E>>2]|0);c[A>>2]=c[E>>2];H=c[A>>2]|0;i=F;return H|0}else if((k|0)==73){a[(c[B>>2]|0)+14>>0]=1;c[A>>2]=a[(c[B>>2]|0)+10>>0];H=c[A>>2]|0;i=F;return H|0}return 0}function tF(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;f=n+25|0;g=n+20|0;h=n+16|0;j=n+12|0;k=n+8|0;m=n;l=n+24|0;c[g>>2]=b;c[h>>2]=e;c[j>>2]=d[c[g>>2]>>0];c[g>>2]=(c[g>>2]|0)+1;c[k>>2]=d[c[g>>2]>>0];if(!(c[k>>2]&128)){c[j>>2]=c[j>>2]&127;c[j>>2]=c[j>>2]<<7;c[c[h>>2]>>2]=c[j>>2]|c[k>>2];a[f>>0]=2;m=a[f>>0]|0;i=n;return m|0}c[g>>2]=(c[g>>2]|0)+1;c[j>>2]=c[j>>2]<<14;c[j>>2]=c[j>>2]|(d[c[g>>2]>>0]|0);if(!(c[j>>2]&128)){c[j>>2]=c[j>>2]&2080895;c[k>>2]=c[k>>2]&127;c[k>>2]=c[k>>2]<<7;c[c[h>>2]>>2]=c[j>>2]|c[k>>2];a[f>>0]=3;m=a[f>>0]|0;i=n;return m|0}c[g>>2]=(c[g>>2]|0)+-2;a[l>>0]=St(c[g>>2]|0,m)|0;e=m;if(0!=(c[e+4>>2]|0)?1:(c[m>>2]|0)!=(c[e>>2]|0))c[c[h>>2]>>2]=-1;else c[c[h>>2]>>2]=c[m>>2];a[f>>0]=a[l>>0]|0;m=a[f>>0]|0;i=n;return m|0}function uF(a){a=a|0;var b=0,e=0,f=0;e=i;i=i+16|0;b=e+4|0;f=e;c[f>>2]=a;a=c[f>>2]|0;if((c[f>>2]|0)>>>0>=128){c[b>>2]=((a-12|0)>>>0)/2|0;f=c[b>>2]|0;i=e;return f|0}else{c[b>>2]=d[35916+a>>0];f=c[b>>2]|0;i=e;return f|0}return 0}function vF(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;m=i;i=i+16|0;h=m+12|0;j=m+8|0;k=m+4|0;l=m;c[j>>2]=e;c[k>>2]=f;c[l>>2]=g;switch(c[k>>2]|0){case 0:case 11:case 10:{b[(c[l>>2]|0)+8>>1]=1;c[h>>2]=0;f=c[h>>2]|0;i=m;return f|0}case 1:{g=a[c[j>>2]>>0]|0;f=c[l>>2]|0;c[f>>2]=g;c[f+4>>2]=((g|0)<0)<<31>>31;b[(c[l>>2]|0)+8>>1]=4;c[h>>2]=1;f=c[h>>2]|0;i=m;return f|0}case 2:{g=a[c[j>>2]>>0]<<8|d[(c[j>>2]|0)+1>>0];f=c[l>>2]|0;c[f>>2]=g;c[f+4>>2]=((g|0)<0)<<31>>31;b[(c[l>>2]|0)+8>>1]=4;c[h>>2]=2;f=c[h>>2]|0;i=m;return f|0}case 3:{g=a[c[j>>2]>>0]<<16|d[(c[j>>2]|0)+1>>0]<<8|d[(c[j>>2]|0)+2>>0];f=c[l>>2]|0;c[f>>2]=g;c[f+4>>2]=((g|0)<0)<<31>>31;b[(c[l>>2]|0)+8>>1]=4;c[h>>2]=3;f=c[h>>2]|0;i=m;return f|0}case 4:{g=a[c[j>>2]>>0]<<24|d[(c[j>>2]|0)+1>>0]<<16|d[(c[j>>2]|0)+2>>0]<<8|d[(c[j>>2]|0)+3>>0];f=c[l>>2]|0;c[f>>2]=g;c[f+4>>2]=((g|0)<0)<<31>>31;b[(c[l>>2]|0)+8>>1]=4;c[h>>2]=4;f=c[h>>2]|0;i=m;return f|0}case 5:{f=d[(c[j>>2]|0)+2>>0]<<24|d[(c[j>>2]|0)+2+1>>0]<<16|d[(c[j>>2]|0)+2+2>>0]<<8|d[(c[j>>2]|0)+2+3>>0];g=a[c[j>>2]>>0]<<8|d[(c[j>>2]|0)+1>>0];g=gR(f|0,0,rR(0,1,g|0,((g|0)<0)<<31>>31|0)|0,C|0)|0;f=c[l>>2]|0;c[f>>2]=g;c[f+4>>2]=C;b[(c[l>>2]|0)+8>>1]=4;c[h>>2]=6;f=c[h>>2]|0;i=m;return f|0}case 7:case 6:{c[h>>2]=GF(c[j>>2]|0,c[k>>2]|0,c[l>>2]|0)|0;f=c[h>>2]|0;i=m;return f|0}case 9:case 8:{f=c[l>>2]|0;c[f>>2]=(c[k>>2]|0)-8;c[f+4>>2]=0;b[(c[l>>2]|0)+8>>1]=4;c[h>>2]=0;f=c[h>>2]|0;i=m;return f|0}default:{c[(c[l>>2]|0)+16>>2]=c[j>>2];c[(c[l>>2]|0)+12>>2]=(((c[k>>2]|0)-12|0)>>>0)/2|0;b[(c[l>>2]|0)+8>>1]=b[15534+((c[k>>2]&1)<<1)>>1]|0;c[h>>2]=c[(c[l>>2]|0)+12>>2];f=c[h>>2]|0;i=m;return f|0}}return 0}function wF(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0;l=i;i=i+48|0;e=l+32|0;f=l+24|0;g=l+16|0;k=l+8|0;j=l;m=f;c[m>>2]=a;c[m+4>>2]=b;h[g>>3]=d;if(+h[g>>3]<-9223372036854775808.0){c[e>>2]=1;m=c[e>>2]|0;i=l;return m|0}if(+h[g>>3]>9223372036854775808.0){c[e>>2]=-1;m=c[e>>2]|0;i=l;return m|0}d=+h[g>>3];n=+N(d)>=1.0?d>0.0?~~+$(+M(d/4294967296.0),4294967295.0)>>>0:~~+Z((d-+(~~d>>>0))/4294967296.0)>>>0:0;b=k;c[b>>2]=~~d>>>0;c[b+4>>2]=n;b=f;n=c[b+4>>2]|0;m=k;a=c[m+4>>2]|0;if((n|0)<(a|0)|((n|0)==(a|0)?(c[b>>2]|0)>>>0<(c[m>>2]|0)>>>0:0)){c[e>>2]=-1;n=c[e>>2]|0;i=l;return n|0}m=f;a=c[m+4>>2]|0;n=k;b=c[n+4>>2]|0;if((a|0)>(b|0)|((a|0)==(b|0)?(c[m>>2]|0)>>>0>(c[n>>2]|0)>>>0:0)){n=k;if(((c[n>>2]|0)==0?(c[n+4>>2]|0)==-2147483648:0)&+h[g>>3]>0.0){c[e>>2]=-1;n=c[e>>2]|0;i=l;return n|0}else{c[e>>2]=1;n=c[e>>2]|0;i=l;return n|0}}n=f;h[j>>3]=+((c[n>>2]|0)>>>0)+4294967296.0*+(c[n+4>>2]|0);if(+h[j>>3]<+h[g>>3]){c[e>>2]=-1;n=c[e>>2]|0;i=l;return n|0}if(+h[j>>3]>+h[g>>3]){c[e>>2]=1;n=c[e>>2]|0;i=l;return n|0}else{c[e>>2]=0;n=c[e>>2]|0;i=l;return n|0}return 0}function xF(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;f=l+8|0;g=l+24|0;h=l+20|0;k=l+16|0;j=l;c[g>>2]=b;c[h>>2]=e;switch(c[g>>2]|0){case 1:case 0:{j=a[c[h>>2]>>0]|0;k=f;c[k>>2]=j;c[k+4>>2]=((j|0)<0)<<31>>31;break}case 2:{j=a[c[h>>2]>>0]<<8|d[(c[h>>2]|0)+1>>0];k=f;c[k>>2]=j;c[k+4>>2]=((j|0)<0)<<31>>31;break}case 3:{j=a[c[h>>2]>>0]<<16|d[(c[h>>2]|0)+1>>0]<<8|d[(c[h>>2]|0)+2>>0];k=f;c[k>>2]=j;c[k+4>>2]=((j|0)<0)<<31>>31;break}case 4:{c[k>>2]=d[c[h>>2]>>0]<<24|d[(c[h>>2]|0)+1>>0]<<16|d[(c[h>>2]|0)+2>>0]<<8|d[(c[h>>2]|0)+3>>0];j=c[k>>2]|0;k=f;c[k>>2]=j;c[k+4>>2]=((j|0)<0)<<31>>31;break}case 5:{b=d[(c[h>>2]|0)+2>>0]<<24|d[(c[h>>2]|0)+2+1>>0]<<16|d[(c[h>>2]|0)+2+2>>0]<<8|d[(c[h>>2]|0)+2+3>>0];j=a[c[h>>2]>>0]<<8|d[(c[h>>2]|0)+1>>0];k=f;c[k>>2]=gR(b|0,0,rR(0,1,j|0,((j|0)<0)<<31>>31|0)|0,C|0)|0;c[k+4>>2]=C;break}case 6:{k=j;c[k>>2]=d[c[h>>2]>>0]<<24|d[(c[h>>2]|0)+1>>0]<<16|d[(c[h>>2]|0)+2>>0]<<8|d[(c[h>>2]|0)+3>>0];c[k+4>>2]=0;k=c[j>>2]|0;b=j;c[b>>2]=d[(c[h>>2]|0)+4>>0]<<24|d[(c[h>>2]|0)+4+1>>0]<<16|d[(c[h>>2]|0)+4+2>>0]<<8|d[(c[h>>2]|0)+4+3>>0];c[b+4>>2]=k;b=j;j=c[b+4>>2]|0;k=f;c[k>>2]=c[b>>2];c[k+4>>2]=j;break}default:{k=f;c[k>>2]=(c[g>>2]|0)-8;c[k+4>>2]=0}}k=f;C=c[k+4>>2]|0;i=l;return c[k>>2]|0}function yF(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+128|0;h=u+116|0;j=u+112|0;k=u+108|0;l=u+104|0;m=u+100|0;r=u+96|0;s=u+92|0;t=u+88|0;p=u+84|0;q=u+80|0;n=u+40|0;o=u;c[j>>2]=b;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;if((d[(c[j>>2]|0)+10>>0]|0|0)==(d[(c[l>>2]|0)+4>>0]|0|0)){c[h>>2]=Zb[c[(c[l>>2]|0)+12>>2]&255](c[(c[l>>2]|0)+8>>2]|0,c[(c[j>>2]|0)+12>>2]|0,c[(c[j>>2]|0)+16>>2]|0,c[(c[k>>2]|0)+12>>2]|0,c[(c[k>>2]|0)+16>>2]|0)|0;t=c[h>>2]|0;i=u;return t|0}AF(n,c[(c[j>>2]|0)+32>>2]|0,1);AF(o,c[(c[j>>2]|0)+32>>2]|0,1);BF(n,c[j>>2]|0,4096);BF(o,c[k>>2]|0,4096);c[s>>2]=Wg(n,a[(c[l>>2]|0)+4>>0]|0)|0;c[p>>2]=(c[s>>2]|0)==0?0:c[n+12>>2]|0;c[t>>2]=Wg(o,a[(c[l>>2]|0)+4>>0]|0)|0;c[q>>2]=(c[t>>2]|0)==0?0:c[o+12>>2]|0;c[r>>2]=Zb[c[(c[l>>2]|0)+12>>2]&255](c[(c[l>>2]|0)+8>>2]|0,c[p>>2]|0,c[s>>2]|0,c[q>>2]|0,c[t>>2]|0)|0;if(((c[s>>2]|0)==0|(c[t>>2]|0)==0)&(c[m>>2]|0)!=0)a[c[m>>2]>>0]=7;Ug(n);Ug(o);c[h>>2]=c[r>>2];t=c[h>>2]|0;i=u;return t|0}function zF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=i;i=i+16|0;d=f;e=f+8|0;g=d;c[g>>2]=a;c[g+4>>2]=b;c[e>>2]=1;while(1){b=d;b=hR(c[b>>2]|0,c[b+4>>2]|0,7)|0;g=C;a=d;c[a>>2]=b;c[a+4>>2]=g;a=c[e>>2]|0;if(!((b|0)!=0|(g|0)!=0))break;c[e>>2]=a+1}i=f;return a|0}function AF(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+16|0;g=f+4|0;h=f;j=f+8|0;c[g>>2]=a;c[h>>2]=d;b[j>>1]=e;b[(c[g>>2]|0)+8>>1]=b[j>>1]|0;c[(c[g>>2]|0)+32>>2]=c[h>>2];c[(c[g>>2]|0)+24>>2]=0;i=f;return}function BF(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0;k=i;i=i+16|0;g=k+8|0;h=k+4|0;j=k;c[g>>2]=a;c[h>>2]=d;c[j>>2]=f;d=c[g>>2]|0;if((e[(c[g>>2]|0)+8>>1]|0)&9312){CF(d,c[h>>2]|0,c[j>>2]|0);i=k;return}f=c[h>>2]|0;c[d>>2]=c[f>>2];c[d+4>>2]=c[f+4>>2];c[d+8>>2]=c[f+8>>2];c[d+12>>2]=c[f+12>>2];c[d+16>>2]=c[f+16>>2];if((e[(c[h>>2]|0)+8>>1]|0)&2048){i=k;return}h=(c[g>>2]|0)+8|0;b[h>>1]=(e[h>>1]|0)&-7169;h=(c[g>>2]|0)+8|0;b[h>>1]=e[h>>1]|0|c[j>>2];i=k;return}function CF(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;h=e+8|0;g=e+4|0;f=e;c[h>>2]=a;c[g>>2]=b;c[f>>2]=d;DF(c[h>>2]|0);BF(c[h>>2]|0,c[g>>2]|0,c[f>>2]|0);i=e;return}function DF(a){a=a|0;var d=0,f=0,g=0,h=0;h=i;i=i+16|0;f=h+4|0;g=h;c[f>>2]=a;if((e[(c[f>>2]|0)+8>>1]|0)&8192)EF(c[f>>2]|0,c[c[f>>2]>>2]|0)|0;a=c[f>>2]|0;do if(!((e[(c[f>>2]|0)+8>>1]|0)&1024)){d=c[f>>2]|0;if((e[a+8>>1]|0)&32){FF(c[d>>2]|0);break}if((e[d+8>>1]|0)&64){c[g>>2]=c[c[f>>2]>>2];c[(c[g>>2]|0)+4>>2]=c[(c[c[g>>2]>>2]|0)+180>>2];c[(c[c[g>>2]>>2]|0)+180>>2]=c[g>>2]}}else Qb[c[a+36>>2]&255](c[(c[f>>2]|0)+16>>2]|0);while(0);b[(c[f>>2]|0)+8>>1]=1;i=h;return}function EF(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+96|0;f=k+80|0;g=k+76|0;j=k+72|0;h=k+40|0;e=k;c[f>>2]=a;c[g>>2]=d;c[j>>2]=0;if(!(c[g>>2]|0)){j=c[j>>2]|0;i=k;return j|0}if(!(c[(c[g>>2]|0)+16>>2]|0)){j=c[j>>2]|0;i=k;return j|0}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[h+16>>2]=0;c[h+20>>2]=0;c[h+24>>2]=0;c[h+28>>2]=0;d=e;a=d+40|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(a|0));b[e+8>>1]=1;c[e+32>>2]=c[(c[f>>2]|0)+32>>2];c[h>>2]=e;c[h+8>>2]=c[f>>2];c[h+4>>2]=c[g>>2];Qb[c[(c[g>>2]|0)+16>>2]&255](h);if((c[(c[f>>2]|0)+24>>2]|0)>0)Sf(c[(c[f>>2]|0)+32>>2]|0,c[(c[f>>2]|0)+20>>2]|0);d=c[f>>2]|0;a=d+40|0;do{c[d>>2]=c[e>>2];d=d+4|0;e=e+4|0}while((d|0)<(a|0));c[j>>2]=c[h+20>>2];j=c[j>>2]|0;i=k;return j|0}function FF(a){a=a|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;e=g+4|0;f=g;c[d>>2]=a;c[e>>2]=c[c[d>>2]>>2];while(1){if(!(c[e>>2]|0))break;c[f>>2]=c[c[e>>2]>>2];Sf(c[(c[d>>2]|0)+4>>2]|0,c[e>>2]|0);c[e>>2]=c[f>>2]}c[c[d>>2]>>2]=0;b[(c[d>>2]|0)+24>>1]=0;c[(c[d>>2]|0)+8>>2]=0;c[(c[d>>2]|0)+12>>2]=0;c[(c[d>>2]|0)+20>>2]=0;b[(c[d>>2]|0)+26>>1]=1;i=g;return}function GF(a,e,f){a=a|0;e=e|0;f=f|0;var g=0,j=0,k=0,l=0,m=0,n=0;k=i;i=i+32|0;n=k+20|0;l=k+16|0;g=k+12|0;j=k;m=k+8|0;c[n>>2]=a;c[l>>2]=e;c[g>>2]=f;f=j;c[f>>2]=(d[c[n>>2]>>0]|0)<<24|(d[(c[n>>2]|0)+1>>0]|0)<<16|(d[(c[n>>2]|0)+2>>0]|0)<<8|(d[(c[n>>2]|0)+3>>0]|0);c[f+4>>2]=0;c[m>>2]=(d[(c[n>>2]|0)+4>>0]|0)<<24|(d[(c[n>>2]|0)+4+1>>0]|0)<<16|(d[(c[n>>2]|0)+4+2>>0]|0)<<8|(d[(c[n>>2]|0)+4+3>>0]|0);f=gR(0,c[j>>2]|0,c[m>>2]|0,0)|0;e=j;c[e>>2]=f;c[e+4>>2]=C;if((c[l>>2]|0)==6){l=j;m=c[l+4>>2]|0;n=c[g>>2]|0;c[n>>2]=c[l>>2];c[n+4>>2]=m;b[(c[g>>2]|0)+8>>1]=4;i=k;return 8}else{n=c[g>>2]|0;c[n>>2]=c[j>>2];c[n+4>>2]=c[j+4>>2];n=(HF(+h[c[g>>2]>>3])|0)!=0;b[(c[g>>2]|0)+8>>1]=n?1:8;i=k;return 8}return 0}function HF(a){a=+a;var b=0,d=0,e=0,f=0,g=0;d=i;i=i+32|0;g=d+16|0;b=d+24|0;f=d+8|0;e=d;h[g>>3]=a;h[f>>3]=+h[g>>3];h[e>>3]=+h[f>>3];c[b>>2]=+h[f>>3]!=+h[e>>3]&1;i=d;return c[b>>2]|0}function IF(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;h=p+20|0;j=p+16|0;k=p+12|0;n=p+8|0;l=p+4|0;m=p;c[j>>2]=f;c[k>>2]=g;if((d[(c[j>>2]|0)+66>>0]|0)!=1){if((d[(c[j>>2]|0)+66>>0]|0)>=3)f=WE(c[j>>2]|0)|0;else f=0;c[n>>2]=f;if(c[n>>2]|0){c[h>>2]=c[n>>2];o=c[h>>2]|0;i=p;return o|0}if(!(d[(c[j>>2]|0)+66>>0]|0)){c[c[k>>2]>>2]=1;c[h>>2]=0;o=c[h>>2]|0;i=p;return o|0}if((c[(c[j>>2]|0)+60>>2]|0)!=0?(a[(c[j>>2]|0)+66>>0]=1,g=(c[(c[j>>2]|0)+60>>2]|0)>0,c[(c[j>>2]|0)+60>>2]=0,g):0){c[h>>2]=0;o=c[h>>2]|0;i=p;return o|0}}c[m>>2]=c[(c[j>>2]|0)+120+(a[(c[j>>2]|0)+68>>0]<<2)>>2];g=(c[j>>2]|0)+80+(a[(c[j>>2]|0)+68>>0]<<1)|0;f=(b[g>>1]|0)+1<<16>>16;b[g>>1]=f;c[l>>2]=f&65535;f=(a[(c[m>>2]|0)+4>>0]|0)!=0;if((c[l>>2]|0)<(e[(c[m>>2]|0)+18>>1]|0))if(f){c[h>>2]=0;o=c[h>>2]|0;i=p;return o|0}else{c[h>>2]=JF(c[j>>2]|0)|0;o=c[h>>2]|0;i=p;return o|0}if(!f){o=c[j>>2]|0;c[n>>2]=XE(o,$q((c[(c[m>>2]|0)+56>>2]|0)+((d[(c[m>>2]|0)+5>>0]|0)+8)|0)|0)|0;if(c[n>>2]|0){c[h>>2]=c[n>>2];o=c[h>>2]|0;i=p;return o|0}else{c[h>>2]=JF(c[j>>2]|0)|0;o=c[h>>2]|0;i=p;return o|0}}do{if(!(a[(c[j>>2]|0)+68>>0]|0)){o=17;break}ZE(c[j>>2]|0);c[m>>2]=c[(c[j>>2]|0)+120+(a[(c[j>>2]|0)+68>>0]<<2)>>2]}while((e[(c[j>>2]|0)+80+(a[(c[j>>2]|0)+68>>0]<<1)>>1]|0)>=(e[(c[m>>2]|0)+18>>1]|0));if((o|0)==17){c[c[k>>2]>>2]=1;a[(c[j>>2]|0)+66>>0]=0;c[h>>2]=0;o=c[h>>2]|0;i=p;return o|0}if(a[(c[m>>2]|0)+2>>0]|0){c[h>>2]=TE(c[j>>2]|0,c[k>>2]|0)|0;o=c[h>>2]|0;i=p;return o|0}else{c[h>>2]=0;o=c[h>>2]|0;i=p;return o|0}return 0}function JF(b){b=b|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;f=k+12|0;h=k+8|0;j=k+4|0;g=k;c[f>>2]=b;c[j>>2]=0;while(1){if(c[j>>2]|0){f=5;break}b=c[(c[f>>2]|0)+120+(a[(c[f>>2]|0)+68>>0]<<2)>>2]|0;c[g>>2]=b;if(!((a[b+4>>0]|0)!=0^1)){f=5;break}c[h>>2]=$q((c[(c[g>>2]|0)+56>>2]|0)+(e[(c[g>>2]|0)+20>>1]&(d[(c[(c[g>>2]|0)+64>>2]|0)+(e[(c[f>>2]|0)+80+(a[(c[f>>2]|0)+68>>0]<<1)>>1]<<1)>>0]<<8|d[(c[(c[g>>2]|0)+64>>2]|0)+(e[(c[f>>2]|0)+80+(a[(c[f>>2]|0)+68>>0]<<1)>>1]<<1)+1>>0]))|0)|0;c[j>>2]=XE(c[f>>2]|0,c[h>>2]|0)|0}if((f|0)==5){i=k;return c[j>>2]|0}return 0}function KF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;h=i;i=i+32|0;j=h+16|0;d=h+12|0;e=h+8|0;f=h+4|0;g=h;c[j>>2]=a;c[d>>2]=b;c[e>>2]=c[c[j>>2]>>2];c[g>>2]=Nv(c[e>>2]|0,0,0,0)|0;if(!(c[g>>2]|0)){j=c[g>>2]|0;i=h;return j|0}j=nh(c[e>>2]|0,c[(c[d>>2]|0)+12>>2]|0)|0;c[(c[g>>2]|0)+8+(((c[c[g>>2]>>2]|0)-1|0)*72|0)+8>>2]=j;c[f>>2]=Dh(c[e>>2]|0,c[(c[(c[d>>2]|0)+4>>2]|0)+20>>2]|0)|0;if(!((c[f>>2]|0)==0|(c[f>>2]|0)>=2)){j=c[g>>2]|0;i=h;return j|0}j=nh(c[e>>2]|0,c[(c[(c[e>>2]|0)+16>>2]|0)+(c[f>>2]<<4)>>2]|0)|0;c[(c[g>>2]|0)+8+(((c[c[g>>2]>>2]|0)-1|0)*72|0)+4>>2]=j;j=c[g>>2]|0;i=h;return j|0}function LF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;e=g+4|0;f=g;c[d>>2]=a;c[e>>2]=b;if(!(c[e>>2]|0)){i=g;return}c[f>>2]=c[(c[e>>2]|0)+28>>2];Zu(c[d>>2]|0,c[(c[f>>2]|0)+16>>2]|0);Vu(c[d>>2]|0,c[(c[f>>2]|0)+20>>2]|0);Wu(c[d>>2]|0,c[(c[f>>2]|0)+8>>2]|0);Zu(c[d>>2]|0,c[(c[e>>2]|0)+12>>2]|0);Sf(c[d>>2]|0,c[e>>2]|0);i=g;return}function MF(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;g=h+12|0;d=h+8|0;e=h+4|0;f=h;c[d>>2]=a;c[e>>2]=b;if((c[d>>2]|0)==0|(c[e>>2]|0)==0){c[g>>2]=1;g=c[g>>2]|0;i=h;return g|0}c[f>>2]=0;while(1){if((c[f>>2]|0)>=(c[c[e>>2]>>2]|0)){d=8;break}if((Yy(c[d>>2]|0,c[(c[(c[e>>2]|0)+4>>2]|0)+((c[f>>2]|0)*20|0)+4>>2]|0)|0)>=0){d=6;break}c[f>>2]=(c[f>>2]|0)+1}if((d|0)==6){c[g>>2]=1;g=c[g>>2]|0;i=h;return g|0}else if((d|0)==8){c[g>>2]=0;g=c[g>>2]|0;i=h;return g|0}return 0}function NF(e,f){e=e|0;f=f|0;var g=0,h=0,j=0;j=i;i=i+16|0;g=j+4|0;h=j;c[g>>2]=e;c[h>>2]=f;if((d[c[h>>2]>>0]|0)!=152){i=j;return 0}if((b[(c[h>>2]|0)+32>>1]|0)<0){e=(c[g>>2]|0)+20|0;a[e>>0]=d[e>>0]|2;i=j;return 0}if((c[(c[(c[g>>2]|0)+24>>2]|0)+(b[(c[h>>2]|0)+32>>1]<<2)>>2]|0)<0){i=j;return 0}e=(c[g>>2]|0)+20|0;a[e>>0]=d[e>>0]|1;i=j;return 0}function OF(a,f){a=a|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;l=i;i=i+16|0;h=l+12|0;j=l+8|0;k=l+4|0;g=l;c[j>>2]=a;c[k>>2]=f;if((e[(c[j>>2]|0)+50>>1]|0)!=(e[(c[k>>2]|0)+50>>1]|0)){c[h>>2]=0;k=c[h>>2]|0;i=l;return k|0}if((d[(c[j>>2]|0)+54>>0]|0)!=(d[(c[k>>2]|0)+54>>0]|0)){c[h>>2]=0;k=c[h>>2]|0;i=l;return k|0}c[g>>2]=0;while(1){if((c[g>>2]|0)>=(e[(c[k>>2]|0)+50>>1]|0)){g=17;break}if((b[(c[(c[k>>2]|0)+4>>2]|0)+(c[g>>2]<<1)>>1]|0)!=(b[(c[(c[j>>2]|0)+4>>2]|0)+(c[g>>2]<<1)>>1]|0)){g=8;break}if((b[(c[(c[k>>2]|0)+4>>2]|0)+(c[g>>2]<<1)>>1]|0)==-2?(py(c[(c[(c[(c[k>>2]|0)+40>>2]|0)+4>>2]|0)+((c[g>>2]|0)*20|0)>>2]|0,c[(c[(c[(c[j>>2]|0)+40>>2]|0)+4>>2]|0)+((c[g>>2]|0)*20|0)>>2]|0,-1)|0)!=0:0){
  58. g=11;break}if((d[(c[(c[k>>2]|0)+28>>2]|0)+(c[g>>2]|0)>>0]|0)!=(d[(c[(c[j>>2]|0)+28>>2]|0)+(c[g>>2]|0)>>0]|0)){g=13;break}if(Td(c[(c[(c[k>>2]|0)+32>>2]|0)+(c[g>>2]<<2)>>2]|0,c[(c[(c[j>>2]|0)+32>>2]|0)+(c[g>>2]<<2)>>2]|0)|0){g=15;break}c[g>>2]=(c[g>>2]|0)+1}if((g|0)==8){c[h>>2]=0;k=c[h>>2]|0;i=l;return k|0}else if((g|0)==11){c[h>>2]=0;k=c[h>>2]|0;i=l;return k|0}else if((g|0)==13){c[h>>2]=0;k=c[h>>2]|0;i=l;return k|0}else if((g|0)==15){c[h>>2]=0;k=c[h>>2]|0;i=l;return k|0}else if((g|0)==17)if(py(c[(c[k>>2]|0)+36>>2]|0,c[(c[j>>2]|0)+36>>2]|0,-1)|0){c[h>>2]=0;k=c[h>>2]|0;i=l;return k|0}else{c[h>>2]=1;k=c[h>>2]|0;i=l;return k|0}return 0}function PF(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;f=e+8|0;h=e+4|0;g=e;c[f>>2]=a;c[h>>2]=b;c[g>>2]=d;c[(c[h>>2]|0)+4>>2]=c[f>>2];c[c[h>>2]>>2]=c[(c[f>>2]|0)+496>>2];c[(c[f>>2]|0)+496>>2]=c[g>>2];i=e;return}function QF(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+64|0;f=p+48|0;g=p+44|0;h=p+40|0;j=p+36|0;l=p+16|0;o=p+12|0;n=p+8|0;k=p+4|0;m=p;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[k>>2]=c[c[f>>2]>>2];c[m>>2]=Dh(c[k>>2]|0,c[(c[g>>2]|0)+64>>2]|0)|0;c[h>>2]=ny(c[k>>2]|0,c[h>>2]|0,0)|0;c[n>>2]=Nv(c[k>>2]|0,0,0,0)|0;if(c[n>>2]|0){d=nh(c[k>>2]|0,c[c[g>>2]>>2]|0)|0;c[(c[n>>2]|0)+8+8>>2]=d;d=nh(c[k>>2]|0,c[(c[(c[k>>2]|0)+16>>2]|0)+(c[m>>2]<<4)>>2]|0)|0;c[(c[n>>2]|0)+8+4>>2]=d}c[o>>2]=Fv(c[f>>2]|0,0,c[n>>2]|0,c[h>>2]|0,0,0,0,-32768,0,0)|0;ZA(l,12,c[j>>2]|0);Cv(c[f>>2]|0,c[o>>2]|0,l)|0;Wu(c[k>>2]|0,c[o>>2]|0);i=p;return}function RF(d,e,f,g,h,j,k,l){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;F=i;i=i+96|0;r=F+88|0;H=F+84|0;s=F+80|0;m=F+76|0;n=F+72|0;o=F+68|0;G=F+64|0;t=F+60|0;E=F+56|0;w=F+52|0;x=F+48|0;I=F+44|0;z=F+40|0;A=F+36|0;y=F+32|0;B=F+28|0;C=F+24|0;D=F+20|0;q=F+16|0;p=F+8|0;v=F+4|0;u=F;c[r>>2]=d;c[H>>2]=e;c[s>>2]=f;c[m>>2]=g;c[n>>2]=h;c[o>>2]=j;c[G>>2]=k;c[t>>2]=l;c[E>>2]=c[(c[r>>2]|0)+8>>2];c[I>>2]=c[c[r>>2]>>2];c[z>>2]=Ax(c[I>>2]|0,c[s>>2]|0)|0;c[y>>2]=2+(b[(c[s>>2]|0)+34>>1]|0);c[q>>2]=c[(c[H>>2]|0)+8+44>>2];f=(c[r>>2]|0)+72|0;k=c[f>>2]|0;c[f>>2]=k+1;c[w>>2]=k;c[u>>2]=Rw(c[E>>2]|0,57,c[w>>2]|0,c[y>>2]|0)|0;c[B>>2]=(c[(c[r>>2]|0)+76>>2]|0)+1;k=(c[r>>2]|0)+76|0;c[k>>2]=(c[k>>2]|0)+(c[y>>2]|0);k=(c[r>>2]|0)+76|0;f=(c[k>>2]|0)+1|0;c[k>>2]=f;c[C>>2]=f;f=(c[r>>2]|0)+76|0;k=(c[f>>2]|0)+1|0;c[f>>2]=k;c[D>>2]=k;c[A>>2]=RC(c[r>>2]|0,c[H>>2]|0,c[G>>2]|0,0,0,4,0)|0;if(!(c[A>>2]|0)){i=F;return}Rw(c[E>>2]|0,103,c[q>>2]|0,c[B>>2]|0)|0;if(c[n>>2]|0)xA(c[r>>2]|0,c[n>>2]|0,(c[B>>2]|0)+1|0);else Rw(c[E>>2]|0,103,c[q>>2]|0,(c[B>>2]|0)+1|0)|0;c[x>>2]=0;while(1){if((c[x>>2]|0)>=(b[(c[s>>2]|0)+34>>1]|0))break;if((c[(c[o>>2]|0)+(c[x>>2]<<2)>>2]|0)>=0)xA(c[r>>2]|0,c[(c[(c[m>>2]|0)+4>>2]|0)+((c[(c[o>>2]|0)+(c[x>>2]<<2)>>2]|0)*20|0)>>2]|0,(c[B>>2]|0)+2+(c[x>>2]|0)|0);else Vw(c[E>>2]|0,153,c[q>>2]|0,c[x>>2]|0,(c[B>>2]|0)+2+(c[x>>2]|0)|0)|0;c[x>>2]=(c[x>>2]|0)+1}c[v>>2]=SF(c[A>>2]|0,p)|0;m=c[E>>2]|0;if(c[v>>2]|0){pA(m,c[u>>2]|0)|0;if(!(c[(c[r>>2]|0)+416>>2]|0))a[(c[r>>2]|0)+20>>0]=0}else{Vw(m,49,c[B>>2]|0,c[y>>2]|0,c[C>>2]|0)|0;Rw(c[E>>2]|0,74,c[w>>2]|0,c[D>>2]|0)|0;Vw(c[E>>2]|0,75,c[w>>2]|0,c[C>>2]|0,c[D>>2]|0)|0}a:do if(!(c[v>>2]|0)){SC(c[A>>2]|0);c[u>>2]=xz(c[E>>2]|0,108,c[w>>2]|0)|0;c[x>>2]=0;while(1){if((c[x>>2]|0)>=(c[y>>2]|0))break a;Vw(c[E>>2]|0,47,c[w>>2]|0,c[x>>2]|0,(c[B>>2]|0)+(c[x>>2]|0)|0)|0;c[x>>2]=(c[x>>2]|0)+1}}while(0);EC(c[r>>2]|0,c[s>>2]|0);Uw(c[E>>2]|0,12,0,c[y>>2]|0,c[B>>2]|0,c[z>>2]|0,-10)|0;Fh(c[E>>2]|0,((c[t>>2]|0)==10?2:c[t>>2]|0)&255);Bx(c[r>>2]|0);if(!(c[v>>2]|0)){Rw(c[E>>2]|0,7,c[w>>2]|0,(c[u>>2]|0)+1|0)|0;Fz(c[E>>2]|0,c[u>>2]|0);Rw(c[E>>2]|0,61,c[w>>2]|0,0)|0;i=F;return}else{SC(c[A>>2]|0);i=F;return}}function SF(a,b){a=a|0;b=b|0;var e=0,f=0,g=0;f=i;i=i+16|0;e=f+4|0;g=f;c[e>>2]=a;c[g>>2]=b;a=c[g>>2]|0;b=(c[e>>2]|0)+60|0;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];i=f;return d[(c[e>>2]|0)+38>>0]|0|0}function TF(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!(c[(c[b>>2]|0)+4>>2]|0)){i=d;return}c[(c[(c[b>>2]|0)+4>>2]|0)+496>>2]=c[c[b>>2]>>2];c[(c[b>>2]|0)+4>>2]=0;i=d;return}function UF(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+48|0;k=p+32|0;f=p+28|0;l=p+24|0;m=p+20|0;n=p+16|0;o=p+12|0;j=p+8|0;g=p+4|0;h=p;c[f>>2]=a;c[l>>2]=b;c[m>>2]=d;c[n>>2]=e;do if(((c[c[l>>2]>>2]|0)+(c[m>>2]|0)|0)>>>0>(c[(c[l>>2]|0)+4>>2]|0)>>>0){c[g>>2]=(c[c[l>>2]>>2]|0)+(c[m>>2]|0);c[j>>2]=Ew(c[f>>2]|0,c[l>>2]|0,80+(((c[g>>2]|0)-1|0)*72|0)|0,0)|0;if(c[j>>2]|0){c[l>>2]=c[j>>2];c[h>>2]=(((($t(c[f>>2]|0,c[j>>2]|0)|0)-80|0)>>>0)/72|0)+1;c[(c[l>>2]|0)+4>>2]=c[h>>2];break}c[k>>2]=c[l>>2];o=c[k>>2]|0;i=p;return o|0}while(0);c[o>>2]=(c[c[l>>2]>>2]|0)-1;while(1){if((c[o>>2]|0)<(c[n>>2]|0))break;f=(c[l>>2]|0)+8+(((c[o>>2]|0)+(c[m>>2]|0)|0)*72|0)|0;a=(c[l>>2]|0)+8+((c[o>>2]|0)*72|0)|0;e=f+72|0;do{c[f>>2]=c[a>>2];f=f+4|0;a=a+4|0}while((f|0)<(e|0));c[o>>2]=(c[o>>2]|0)+-1}b=c[l>>2]|0;c[b>>2]=(c[b>>2]|0)+(c[m>>2]|0);kR((c[l>>2]|0)+8+((c[n>>2]|0)*72|0)|0,0,(c[m>>2]|0)*72|0)|0;c[o>>2]=c[n>>2];while(1){if((c[o>>2]|0)>=((c[n>>2]|0)+(c[m>>2]|0)|0))break;c[(c[l>>2]|0)+8+((c[o>>2]|0)*72|0)+44>>2]=-1;c[o>>2]=(c[o>>2]|0)+1}c[k>>2]=c[l>>2];o=c[k>>2]|0;i=p;return o|0}function VF(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;j=i;i=i+32|0;h=j;f=j+20|0;g=j+16|0;m=j+12|0;l=j+8|0;k=j+4|0;c[g>>2]=a;c[m>>2]=b;c[l>>2]=e;c[k>>2]=d[c[m>>2]>>0];if((c[l>>2]|0)>1?(c[k>>2]|0)==10|(c[k>>2]|0)==11:0){Ah(c[g>>2]|0,36847,h);c[f>>2]=1;m=c[f>>2]|0;i=j;return m|0}c[f>>2]=0;m=c[f>>2]|0;i=j;return m|0}function WF(f,g,h,j,k){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;Q=i;i=i+128|0;y=Q+112|0;u=Q+108|0;v=Q+104|0;z=Q+100|0;l=Q+96|0;A=Q+92|0;n=Q+88|0;I=Q+84|0;K=Q+80|0;L=Q+76|0;J=Q+72|0;M=Q+68|0;G=Q+64|0;D=Q+60|0;C=Q+56|0;O=Q+52|0;N=Q+48|0;B=Q+44|0;m=Q+40|0;p=Q+36|0;r=Q+32|0;o=Q+28|0;q=Q+24|0;s=Q+20|0;w=Q+16|0;x=Q+12|0;F=Q+8|0;E=Q+116|0;P=Q+4|0;H=Q;c[u>>2]=f;c[v>>2]=g;c[z>>2]=h;c[l>>2]=j;c[A>>2]=k;c[n>>2]=c[(c[u>>2]|0)+496>>2];c[B>>2]=c[c[u>>2]>>2];if(e[(c[B>>2]|0)+60>>1]&1){c[y>>2]=0;P=c[y>>2]|0;i=Q;return P|0}c[J>>2]=c[(c[v>>2]|0)+32>>2];c[N>>2]=(c[J>>2]|0)+8+((c[z>>2]|0)*72|0);c[D>>2]=c[(c[N>>2]|0)+44>>2];c[K>>2]=c[(c[N>>2]|0)+20>>2];do if(c[A>>2]|0){if(c[l>>2]|0){c[y>>2]=0;P=c[y>>2]|0;i=Q;return P|0}if((c[c[J>>2]>>2]|0)>1){c[y>>2]=0;P=c[y>>2]|0;i=Q;return P|0}if(!((c[(c[v>>2]|0)+36>>2]|0)!=0?(c[(c[(c[v>>2]|0)+36>>2]|0)+4>>2]&2097152|0)!=0:0))t=10;if(((t|0)==10?((iz(c[c[v>>2]>>2]|0)|0)&2097152|0)==0:0)?((iz(c[(c[v>>2]|0)+48>>2]|0)|0)&2097152|0)==0:0)break;c[y>>2]=0;P=c[y>>2]|0;i=Q;return P|0}while(0);c[M>>2]=c[(c[K>>2]|0)+32>>2];if((c[(c[K>>2]|0)+60>>2]|0)!=0?(c[(c[v>>2]|0)+60>>2]|0)!=0:0){c[y>>2]=0;P=c[y>>2]|0;i=Q;return P|0}if(c[(c[K>>2]|0)+64>>2]|0){c[y>>2]=0;P=c[y>>2]|0;i=Q;return P|0}if((e[(c[v>>2]|0)+6>>1]&128|0)!=0?(c[(c[K>>2]|0)+60>>2]|0)!=0:0){c[y>>2]=0;P=c[y>>2]|0;i=Q;return P|0}if(!(c[c[M>>2]>>2]|0)){c[y>>2]=0;P=c[y>>2]|0;i=Q;return P|0}if(e[(c[K>>2]|0)+6>>1]&1){c[y>>2]=0;P=c[y>>2]|0;i=Q;return P|0}if((c[(c[K>>2]|0)+60>>2]|0)!=0?(c[l>>2]|0)!=0?1:(c[c[J>>2]>>2]|0)>1:0){c[y>>2]=0;P=c[y>>2]|0;i=Q;return P|0}if((c[A>>2]|0)!=0?(e[(c[v>>2]|0)+6>>1]&1|0)!=0:0){c[y>>2]=0;P=c[y>>2]|0;i=Q;return P|0}if((c[(c[v>>2]|0)+48>>2]|0)!=0?(c[(c[K>>2]|0)+48>>2]|0)!=0:0){c[y>>2]=0;P=c[y>>2]|0;i=Q;return P|0}if((c[l>>2]|0)!=0?(c[(c[K>>2]|0)+48>>2]|0)!=0:0){c[y>>2]=0;P=c[y>>2]|0;i=Q;return P|0}if((c[(c[K>>2]|0)+60>>2]|0)!=0?(c[(c[v>>2]|0)+36>>2]|0)!=0:0){c[y>>2]=0;P=c[y>>2]|0;i=Q;return P|0}if((c[(c[K>>2]|0)+60>>2]|0)!=0?(e[(c[v>>2]|0)+6>>1]&1|0)!=0:0){c[y>>2]=0;P=c[y>>2]|0;i=Q;return P|0}if(e[(c[K>>2]|0)+6>>1]&12288){c[y>>2]=0;P=c[y>>2]|0;i=Q;return P|0}if((e[(c[v>>2]|0)+6>>1]&8192|0)!=0?(c[(c[K>>2]|0)+52>>2]|0)!=0:0){c[y>>2]=0;P=c[y>>2]|0;i=Q;return P|0}if(d[(c[N>>2]|0)+36>>0]&32){c[y>>2]=0;P=c[y>>2]|0;i=Q;return P|0}a:do if(c[(c[K>>2]|0)+52>>2]|0){if(c[(c[K>>2]|0)+48>>2]|0){c[y>>2]=0;P=c[y>>2]|0;i=Q;return P|0}do if(!(c[l>>2]|0)){if(e[(c[v>>2]|0)+6>>1]&1)break;if((c[c[J>>2]>>2]|0)!=1)break;c[L>>2]=c[K>>2];while(1){if(!(c[L>>2]|0))break;if(e[(c[L>>2]|0)+6>>1]&9){t=62;break}if((c[(c[L>>2]|0)+52>>2]|0)!=0?(d[(c[L>>2]|0)+4>>0]|0)!=116:0){t=62;break}if((c[c[(c[L>>2]|0)+32>>2]>>2]|0)<1){t=62;break}c[L>>2]=c[(c[L>>2]|0)+52>>2]}if((t|0)==62){c[y>>2]=0;P=c[y>>2]|0;i=Q;return P|0}if(!(c[(c[v>>2]|0)+48>>2]|0))break a;c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[c[(c[v>>2]|0)+48>>2]>>2]|0))break a;if(!(e[(c[(c[(c[v>>2]|0)+48>>2]|0)+4>>2]|0)+((c[m>>2]|0)*20|0)+16>>1]|0))break;c[m>>2]=(c[m>>2]|0)+1}c[y>>2]=0;P=c[y>>2]|0;i=Q;return P|0}while(0);c[y>>2]=0;P=c[y>>2]|0;i=Q;return P|0}while(0);c[(c[u>>2]|0)+496>>2]=c[(c[N>>2]|0)+8>>2];Mw(c[u>>2]|0,21,0,0,0)|0;c[(c[u>>2]|0)+496>>2]=c[n>>2];c[K>>2]=c[(c[K>>2]|0)+52>>2];while(1){if(!(c[K>>2]|0))break;c[r>>2]=c[(c[v>>2]|0)+48>>2];c[o>>2]=c[(c[v>>2]|0)+60>>2];c[q>>2]=c[(c[v>>2]|0)+64>>2];c[s>>2]=c[(c[v>>2]|0)+52>>2];c[(c[v>>2]|0)+48>>2]=0;c[(c[v>>2]|0)+32>>2]=0;c[(c[v>>2]|0)+52>>2]=0;c[(c[v>>2]|0)+60>>2]=0;c[(c[v>>2]|0)+64>>2]=0;c[p>>2]=Hx(c[B>>2]|0,c[v>>2]|0,0)|0;c[(c[v>>2]|0)+64>>2]=c[q>>2];c[(c[v>>2]|0)+60>>2]=c[o>>2];c[(c[v>>2]|0)+48>>2]=c[r>>2];c[(c[v>>2]|0)+32>>2]=c[J>>2];a[(c[v>>2]|0)+4>>0]=116;l=c[s>>2]|0;if(!(c[p>>2]|0))c[(c[v>>2]|0)+52>>2]=l;else{c[(c[p>>2]|0)+52>>2]=l;if(c[s>>2]|0)c[(c[s>>2]|0)+56>>2]=c[p>>2];c[(c[p>>2]|0)+56>>2]=c[v>>2];c[(c[v>>2]|0)+52>>2]=c[p>>2]}if(a[(c[B>>2]|0)+65>>0]|0){t=78;break}c[K>>2]=c[(c[K>>2]|0)+52>>2]}if((t|0)==78){c[y>>2]=1;P=c[y>>2]|0;i=Q;return P|0}t=c[(c[N>>2]|0)+20>>2]|0;c[L>>2]=t;c[K>>2]=t;Sf(c[B>>2]|0,c[(c[N>>2]|0)+4>>2]|0);Sf(c[B>>2]|0,c[(c[N>>2]|0)+8>>2]|0);Sf(c[B>>2]|0,c[(c[N>>2]|0)+12>>2]|0);c[(c[N>>2]|0)+4>>2]=0;c[(c[N>>2]|0)+8>>2]=0;c[(c[N>>2]|0)+12>>2]=0;c[(c[N>>2]|0)+20>>2]=0;if(c[(c[N>>2]|0)+16>>2]|0){c[w>>2]=c[(c[N>>2]|0)+16>>2];if((e[(c[w>>2]|0)+36>>1]|0)==1){l=c[u>>2]|0;if(c[(c[u>>2]|0)+416>>2]|0)l=c[l+416>>2]|0;c[x>>2]=l;c[(c[w>>2]|0)+68>>2]=c[(c[x>>2]|0)+528>>2];c[(c[x>>2]|0)+528>>2]=c[w>>2]}else{x=(c[w>>2]|0)+36|0;b[x>>1]=(b[x>>1]|0)+-1<<16>>16}c[(c[N>>2]|0)+16>>2]=0}c[I>>2]=c[v>>2];while(1){if(!(c[I>>2]|0))break;a[E>>0]=0;c[M>>2]=c[(c[K>>2]|0)+32>>2];c[F>>2]=c[c[M>>2]>>2];c[J>>2]=c[(c[I>>2]|0)+32>>2];if(!(c[J>>2]|0)){x=Nv(c[B>>2]|0,0,0,0)|0;c[(c[I>>2]|0)+32>>2]=x;c[J>>2]=x;if(!(c[J>>2]|0))break}else a[E>>0]=a[(c[N>>2]|0)+36>>0]|0;if((c[F>>2]|0)>1?(x=UF(c[B>>2]|0,c[J>>2]|0,(c[F>>2]|0)-1|0,(c[z>>2]|0)+1|0)|0,c[J>>2]=x,c[(c[I>>2]|0)+32>>2]=x,(a[(c[B>>2]|0)+65>>0]|0)!=0):0)break;c[C>>2]=0;while(1){if((c[C>>2]|0)>=(c[F>>2]|0))break;_u(c[B>>2]|0,c[(c[J>>2]|0)+8+(((c[C>>2]|0)+(c[z>>2]|0)|0)*72|0)+52>>2]|0);l=(c[J>>2]|0)+8+(((c[C>>2]|0)+(c[z>>2]|0)|0)*72|0)|0;h=(c[M>>2]|0)+8+((c[C>>2]|0)*72|0)|0;m=l+72|0;do{c[l>>2]=c[h>>2];l=l+4|0;h=h+4|0}while((l|0)<(m|0));l=(c[M>>2]|0)+8+((c[C>>2]|0)*72|0)|0;m=l+72|0;do{c[l>>2]=0;l=l+4|0}while((l|0)<(m|0));c[C>>2]=(c[C>>2]|0)+1}a[(c[J>>2]|0)+8+((c[z>>2]|0)*72|0)+36>>0]=a[E>>0]|0;c[G>>2]=c[c[I>>2]>>2];c[C>>2]=0;while(1){if((c[C>>2]|0)>=(c[c[G>>2]>>2]|0))break;if(!(c[(c[(c[G>>2]|0)+4>>2]|0)+((c[C>>2]|0)*20|0)+4>>2]|0)){c[P>>2]=nh(c[B>>2]|0,c[(c[(c[G>>2]|0)+4>>2]|0)+((c[C>>2]|0)*20|0)+8>>2]|0)|0;Jw(c[P>>2]|0)|0;c[(c[(c[G>>2]|0)+4>>2]|0)+((c[C>>2]|0)*20|0)+4>>2]=c[P>>2]}c[C>>2]=(c[C>>2]|0)+1}if(c[(c[K>>2]|0)+48>>2]|0){c[H>>2]=c[(c[K>>2]|0)+48>>2];c[C>>2]=0;while(1){if((c[C>>2]|0)>=(c[c[H>>2]>>2]|0))break;b[(c[(c[H>>2]|0)+4>>2]|0)+((c[C>>2]|0)*20|0)+16>>1]=0;c[C>>2]=(c[C>>2]|0)+1}c[(c[I>>2]|0)+48>>2]=c[H>>2];c[(c[K>>2]|0)+48>>2]=0}c[O>>2]=ny(c[B>>2]|0,c[(c[K>>2]|0)+36>>2]|0,0)|0;if(c[A>>2]|0){c[(c[I>>2]|0)+44>>2]=c[(c[I>>2]|0)+36>>2];c[(c[I>>2]|0)+36>>2]=c[O>>2];w=c[B>>2]|0;x=c[(c[I>>2]|0)+44>>2]|0;x=az(w,x,ny(c[B>>2]|0,c[(c[K>>2]|0)+44>>2]|0,0)|0)|0;c[(c[I>>2]|0)+44>>2]=x;x=vy(c[B>>2]|0,c[(c[K>>2]|0)+40>>2]|0,0)|0;c[(c[I>>2]|0)+40>>2]=x}else{x=az(c[B>>2]|0,c[(c[I>>2]|0)+36>>2]|0,c[O>>2]|0)|0;c[(c[I>>2]|0)+36>>2]=x}EG(c[B>>2]|0,c[I>>2]|0,c[D>>2]|0,c[c[K>>2]>>2]|0,0);x=(c[I>>2]|0)+6|0;b[x>>1]=e[x>>1]|e[(c[K>>2]|0)+6>>1]&1;if(c[(c[K>>2]|0)+60>>2]|0){c[(c[I>>2]|0)+60>>2]=c[(c[K>>2]|0)+60>>2];c[(c[K>>2]|0)+60>>2]=0}c[I>>2]=c[(c[I>>2]|0)+52>>2];c[K>>2]=c[(c[K>>2]|0)+52>>2]}Wu(c[B>>2]|0,c[L>>2]|0);c[y>>2]=1;P=c[y>>2]|0;i=Q;return P|0}function XF(f,g,h){f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0;aa=i;i=i+240|0;$=aa+8|0;j=aa;k=aa+220|0;l=aa+216|0;m=aa+212|0;n=aa+208|0;V=aa+204|0;S=aa+200|0;_=aa+196|0;u=aa+176|0;J=aa+172|0;t=aa+168|0;D=aa+164|0;E=aa+160|0;o=aa+156|0;H=aa+152|0;Y=aa+148|0;I=aa+224|0;T=aa+144|0;N=aa+140|0;Q=aa+136|0;p=aa+132|0;Z=aa+112|0;y=aa+108|0;w=aa+104|0;A=aa+100|0;K=aa+96|0;W=aa+92|0;X=aa+88|0;z=aa+84|0;x=aa+80|0;B=aa+76|0;O=aa+72|0;R=aa+68|0;q=aa+64|0;F=aa+44|0;U=aa+40|0;L=aa+36|0;v=aa+32|0;M=aa+28|0;P=aa+24|0;s=aa+20|0;G=aa+16|0;r=aa+12|0;c[l>>2]=f;c[m>>2]=g;c[n>>2]=h;c[V>>2]=0;c[J>>2]=0;c[D>>2]=0;c[E>>2]=0;c[t>>2]=c[c[l>>2]>>2];c[S>>2]=c[(c[m>>2]|0)+52>>2];f=c[n>>2]|0;c[u>>2]=c[f>>2];c[u+4>>2]=c[f+4>>2];c[u+8>>2]=c[f+8>>2];c[u+12>>2]=c[f+12>>2];c[u+16>>2]=c[f+16>>2];a:do if(!(c[(c[S>>2]|0)+48>>2]|0)){g=c[l>>2]|0;if(c[(c[S>>2]|0)+60>>2]|0){c[$>>2]=xy(d[(c[m>>2]|0)+4>>0]|0)|0;Ah(g,36704,$);c[V>>2]=1;break}c[_>>2]=Pw(g)|0;if((d[u>>0]|0|0)==12){Rw(c[_>>2]|0,57,c[u+4>>2]|0,c[c[c[m>>2]>>2]>>2]|0)|0;Fh(c[_>>2]|0,8);a[u>>0]=14}if((e[(c[m>>2]|0)+6>>1]|0)&512){c[V>>2]=GG(c[l>>2]|0,c[m>>2]|0,u)|0;break}b:do if((e[(c[m>>2]|0)+6>>1]|0)&8192)HG(c[l>>2]|0,c[m>>2]|0,u);else{if(c[(c[m>>2]|0)+48>>2]|0){c[k>>2]=IG(c[l>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;$=c[k>>2]|0;i=aa;return $|0}switch(d[(c[m>>2]|0)+4>>0]|0|0){case 116:{c[o>>2]=0;c[(c[S>>2]|0)+8>>2]=c[(c[m>>2]|0)+8>>2];c[(c[S>>2]|0)+12>>2]=c[(c[m>>2]|0)+12>>2];c[(c[S>>2]|0)+60>>2]=c[(c[m>>2]|0)+60>>2];c[(c[S>>2]|0)+64>>2]=c[(c[m>>2]|0)+64>>2];c[D>>2]=c[(c[l>>2]|0)+472>>2];c[V>>2]=Cv(c[l>>2]|0,c[S>>2]|0,u)|0;c[(c[m>>2]|0)+60>>2]=0;c[(c[m>>2]|0)+64>>2]=0;if(c[V>>2]|0)break a;c[(c[m>>2]|0)+52>>2]=0;c[(c[m>>2]|0)+8>>2]=c[(c[S>>2]|0)+8>>2];c[(c[m>>2]|0)+12>>2]=c[(c[S>>2]|0)+12>>2];if((c[(c[m>>2]|0)+8>>2]|0)!=0?(c[o>>2]=xz(c[_>>2]|0,46,c[(c[m>>2]|0)+8>>2]|0)|0,(c[(c[m>>2]|0)+12>>2]|0)!=0):0)Vw(c[_>>2]|0,139,c[(c[m>>2]|0)+8>>2]|0,(c[(c[m>>2]|0)+12>>2]|0)+1|0,c[(c[m>>2]|0)+12>>2]|0)|0;c[E>>2]=c[(c[l>>2]|0)+472>>2];c[V>>2]=Cv(c[l>>2]|0,c[m>>2]|0,u)|0;c[J>>2]=c[(c[m>>2]|0)+52>>2];c[(c[m>>2]|0)+52>>2]=c[S>>2];Z=(c[S>>2]|0)+24|0;$=(c[m>>2]|0)+24|0;Y=$;c[$>>2]=gR(c[Y>>2]|0,c[Y+4>>2]|0,c[Z>>2]|0,c[Z+4>>2]|0)|0;c[$+4>>2]=C;if(((c[(c[S>>2]|0)+60>>2]|0)!=0?($=(ky(c[(c[S>>2]|0)+60>>2]|0,H)|0)!=0,$&(c[H>>2]|0)>0):0)?(Z=(c[m>>2]|0)+24|0,X=c[Z+4>>2]|0,$=c[H>>2]|0,Y=(($|0)<0)<<31>>31,X>>>0>Y>>>0|((X|0)==(Y|0)?(c[Z>>2]|0)>>>0>$>>>0:0)):0){Z=c[H>>2]|0;$=(c[m>>2]|0)+24|0;c[$>>2]=Z;c[$+4>>2]=((Z|0)<0)<<31>>31}if(!(c[o>>2]|0))break b;Fz(c[_>>2]|0,c[o>>2]|0);break b}case 115:case 117:{a[I>>0]=0;c[T>>2]=1;if((d[u>>0]|0|0)==(c[T>>2]|0))c[Y>>2]=c[u+4>>2];else{X=(c[l>>2]|0)+72|0;$=c[X>>2]|0;c[X>>2]=$+1;c[Y>>2]=$;c[p>>2]=Rw(c[_>>2]|0,57,c[Y>>2]|0,0)|0;c[(c[m>>2]|0)+16>>2]=c[p>>2];$=(Sy(c[m>>2]|0)|0)+6|0;b[$>>1]=e[$>>1]|0|16}ZA(Z,c[T>>2]|0,c[Y>>2]|0);c[D>>2]=c[(c[l>>2]|0)+472>>2];c[V>>2]=Cv(c[l>>2]|0,c[S>>2]|0,Z)|0;if(c[V>>2]|0)break a;if((d[(c[m>>2]|0)+4>>0]|0|0)==117)a[I>>0]=2;else a[I>>0]=1;c[(c[m>>2]|0)+52>>2]=0;c[N>>2]=c[(c[m>>2]|0)+60>>2];c[(c[m>>2]|0)+60>>2]=0;c[Q>>2]=c[(c[m>>2]|0)+64>>2];c[(c[m>>2]|0)+64>>2]=0;a[Z>>0]=a[I>>0]|0;c[E>>2]=c[(c[l>>2]|0)+472>>2];c[V>>2]=Cv(c[l>>2]|0,c[m>>2]|0,Z)|0;Vu(c[t>>2]|0,c[(c[m>>2]|0)+48>>2]|0);c[J>>2]=c[(c[m>>2]|0)+52>>2];c[(c[m>>2]|0)+52>>2]=c[S>>2];c[(c[m>>2]|0)+48>>2]=0;if((d[(c[m>>2]|0)+4>>0]|0|0)==115){Z=(c[S>>2]|0)+24|0;$=(c[m>>2]|0)+24|0;X=$;Z=gR(c[X>>2]|0,c[X+4>>2]|0,c[Z>>2]|0,c[Z+4>>2]|0)|0;c[$>>2]=Z;c[$+4>>2]=C}Zu(c[t>>2]|0,c[(c[m>>2]|0)+60>>2]|0);c[(c[m>>2]|0)+60>>2]=c[N>>2];c[(c[m>>2]|0)+64>>2]=c[Q>>2];c[(c[m>>2]|0)+8>>2]=0;c[(c[m>>2]|0)+12>>2]=0;if((d[u>>0]|0|0)==(c[T>>2]|0))break b;if((d[u>>0]|0|0)==9){c[K>>2]=c[m>>2];while(1){if(!(c[(c[K>>2]|0)+52>>2]|0))break;c[K>>2]=c[(c[K>>2]|0)+52>>2]}uG(c[l>>2]|0,c[(c[K>>2]|0)+32>>2]|0,c[c[K>>2]>>2]|0)}c[w>>2]=Cz(c[_>>2]|0)|0;c[y>>2]=Cz(c[_>>2]|0)|0;aG(c[l>>2]|0,c[m>>2]|0,c[w>>2]|0);Rw(c[_>>2]|0,108,c[Y>>2]|0,c[w>>2]|0)|0;c[A>>2]=Bz(c[_>>2]|0)|0;hG(c[l>>2]|0,c[m>>2]|0,c[c[m>>2]>>2]|0,c[Y>>2]|0,0,0,u,c[y>>2]|0,c[w>>2]|0);Gz(c[_>>2]|0,c[y>>2]|0);Rw(c[_>>2]|0,7,c[Y>>2]|0,c[A>>2]|0)|0;Gz(c[_>>2]|0,c[w>>2]|0);Rw(c[_>>2]|0,61,c[Y>>2]|0,0)|0;break b}default:{$=(c[l>>2]|0)+72|0;Z=c[$>>2]|0;c[$>>2]=Z+1;c[W>>2]=Z;Z=(c[l>>2]|0)+72|0;$=c[Z>>2]|0;c[Z>>2]=$+1;c[X>>2]=$;c[q>>2]=Rw(c[_>>2]|0,57,c[W>>2]|0,0)|0;c[(c[m>>2]|0)+16>>2]=c[q>>2];$=(Sy(c[m>>2]|0)|0)+6|0;b[$>>1]=e[$>>1]|0|16;ZA(F,1,c[W>>2]|0);c[D>>2]=c[(c[l>>2]|0)+472>>2];c[V>>2]=Cv(c[l>>2]|0,c[S>>2]|0,F)|0;if(c[V>>2]|0)break a;c[q>>2]=Rw(c[_>>2]|0,57,c[X>>2]|0,0)|0;c[(c[m>>2]|0)+16+4>>2]=c[q>>2];c[(c[m>>2]|0)+52>>2]=0;c[O>>2]=c[(c[m>>2]|0)+60>>2];c[(c[m>>2]|0)+60>>2]=0;c[R>>2]=c[(c[m>>2]|0)+64>>2];c[(c[m>>2]|0)+64>>2]=0;c[F+4>>2]=c[X>>2];c[E>>2]=c[(c[l>>2]|0)+472>>2];c[V>>2]=Cv(c[l>>2]|0,c[m>>2]|0,F)|0;c[J>>2]=c[(c[m>>2]|0)+52>>2];c[(c[m>>2]|0)+52>>2]=c[S>>2];Z=(c[m>>2]|0)+24|0;T=c[Z+4>>2]|0;$=(c[S>>2]|0)+24|0;Y=c[$+4>>2]|0;if(T>>>0>Y>>>0|((T|0)==(Y|0)?(c[Z>>2]|0)>>>0>(c[$>>2]|0)>>>0:0)){Y=(c[S>>2]|0)+24|0;Z=c[Y+4>>2]|0;$=(c[m>>2]|0)+24|0;c[$>>2]=c[Y>>2];c[$+4>>2]=Z}Zu(c[t>>2]|0,c[(c[m>>2]|0)+60>>2]|0);c[(c[m>>2]|0)+60>>2]=c[O>>2];c[(c[m>>2]|0)+64>>2]=c[R>>2];if((d[u>>0]|0|0)==9){c[L>>2]=c[m>>2];while(1){if(!(c[(c[L>>2]|0)+52>>2]|0))break;c[L>>2]=c[(c[L>>2]|0)+52>>2]}uG(c[l>>2]|0,c[(c[L>>2]|0)+32>>2]|0,c[c[L>>2]>>2]|0)}c[x>>2]=Cz(c[_>>2]|0)|0;c[z>>2]=Cz(c[_>>2]|0)|0;aG(c[l>>2]|0,c[m>>2]|0,c[x>>2]|0);Rw(c[_>>2]|0,108,c[W>>2]|0,c[x>>2]|0)|0;c[U>>2]=Wz(c[l>>2]|0)|0;c[B>>2]=Rw(c[_>>2]|0,101,c[W>>2]|0,c[U>>2]|0)|0;Eh(c[_>>2]|0,68,c[X>>2]|0,c[z>>2]|0,c[U>>2]|0,0)|0;_z(c[l>>2]|0,c[U>>2]|0);hG(c[l>>2]|0,c[m>>2]|0,c[c[m>>2]>>2]|0,c[W>>2]|0,0,0,u,c[z>>2]|0,c[x>>2]|0);Gz(c[_>>2]|0,c[z>>2]|0);Rw(c[_>>2]|0,7,c[W>>2]|0,c[B>>2]|0)|0;Gz(c[_>>2]|0,c[x>>2]|0);Rw(c[_>>2]|0,61,c[X>>2]|0,0)|0;Rw(c[_>>2]|0,61,c[W>>2]|0,0)|0;break b}}}while(0);JG(c[l>>2]|0,d[(c[m>>2]|0)+4>>0]|0,c[D>>2]|0,c[E>>2]|0,(d[(c[m>>2]|0)+4>>0]|0|0)!=116&1);if((e[(c[m>>2]|0)+6>>1]|0)&16){c[G>>2]=c[c[c[m>>2]>>2]>>2];c[M>>2]=Qz(c[t>>2]|0,c[G>>2]|0,1)|0;if(!(c[M>>2]|0)){c[V>>2]=7;break}c[v>>2]=0;c[s>>2]=(c[M>>2]|0)+20;while(1){if((c[v>>2]|0)>=(c[G>>2]|0))break;$=KG(c[l>>2]|0,c[m>>2]|0,c[v>>2]|0)|0;c[c[s>>2]>>2]=$;if(!(c[c[s>>2]>>2]|0))c[c[s>>2]>>2]=c[(c[t>>2]|0)+8>>2];c[v>>2]=(c[v>>2]|0)+1;c[s>>2]=(c[s>>2]|0)+4}c[P>>2]=c[m>>2];while(1){if(!(c[P>>2]|0))break;c[v>>2]=0;while(1){if((c[v>>2]|0)>=2)break;c[r>>2]=c[(c[P>>2]|0)+16+(c[v>>2]<<2)>>2];if((c[r>>2]|0)<0)break;Lz(c[_>>2]|0,c[r>>2]|0,c[G>>2]|0);Z=c[_>>2]|0;$=c[r>>2]|0;Ih(Z,$,Vz(c[M>>2]|0)|0,-6);c[(c[P>>2]|0)+16+(c[v>>2]<<2)>>2]=-1;c[v>>2]=(c[v>>2]|0)+1}c[P>>2]=c[(c[P>>2]|0)+52>>2]}Rz(c[M>>2]|0)}}else{$=c[l>>2]|0;c[j>>2]=xy(d[(c[m>>2]|0)+4>>0]|0)|0;Ah($,36656,j);c[V>>2]=1}while(0);c[(c[n>>2]|0)+8>>2]=c[u+8>>2];c[(c[n>>2]|0)+12>>2]=c[u+12>>2];Wu(c[t>>2]|0,c[J>>2]|0);c[k>>2]=c[V>>2];$=c[k>>2]|0;i=aa;return $|0}function YF(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;c[b>>2]=0;gz(c[e>>2]|0,b);i=d;return c[b>>2]|0}function ZF(a,b,f,g){a=a|0;b=b|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;h=p+24|0;j=p+20|0;k=p+16|0;l=p+12|0;m=p+8|0;o=p+4|0;n=p;c[j>>2]=a;c[k>>2]=b;c[l>>2]=f;c[m>>2]=g;c[n>>2]=0;if(!(c[l>>2]|0)){c[h>>2]=0;f=c[h>>2]|0;i=p;return f|0}if((e[(c[k>>2]|0)+6>>1]|0)&8200){c[h>>2]=0;f=c[h>>2]|0;i=p;return f|0}if(c[(c[k>>2]|0)+60>>2]|0){c[h>>2]=0;f=c[h>>2]|0;i=p;return f|0}while(1){if((d[c[l>>2]>>0]|0|0)!=72)break;f=ZF(c[j>>2]|0,c[k>>2]|0,c[(c[l>>2]|0)+16>>2]|0,c[m>>2]|0)|0;c[n>>2]=(c[n>>2]|0)+f;c[l>>2]=c[(c[l>>2]|0)+12>>2]}if(c[(c[l>>2]|0)+4>>2]&1){c[h>>2]=0;f=c[h>>2]|0;i=p;return f|0}a:do if(ED(c[l>>2]|0,c[m>>2]|0)|0){c[n>>2]=(c[n>>2]|0)+1;while(1){if(!(c[k>>2]|0))break a;c[o>>2]=ny(c[j>>2]|0,c[l>>2]|0,0)|0;c[o>>2]=DG(c[j>>2]|0,c[o>>2]|0,c[m>>2]|0,c[c[k>>2]>>2]|0)|0;f=az(c[j>>2]|0,c[(c[k>>2]|0)+36>>2]|0,c[o>>2]|0)|0;c[(c[k>>2]|0)+36>>2]=f;c[k>>2]=c[(c[k>>2]|0)+52>>2]}}while(0);c[h>>2]=c[n>>2];f=c[h>>2]|0;i=p;return f|0}function _F(b){b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;a[(c[e>>2]|0)+19>>0]=0;c[(c[e>>2]|0)+60>>2]=0;i=d;return}function $F(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;q=i;i=i+48|0;g=q+36|0;h=q+32|0;j=q+28|0;r=q+24|0;m=q+20|0;o=q+16|0;p=q+12|0;k=q+8|0;l=q+4|0;n=q;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[r>>2]=f;c[k>>2]=c[c[g>>2]>>2];c[m>>2]=c[c[h>>2]>>2];c[o>>2]=Qz(c[k>>2]|0,(c[m>>2]|0)-(c[j>>2]|0)|0,(c[r>>2]|0)+1|0)|0;if(!(c[o>>2]|0)){r=c[o>>2]|0;i=q;return r|0}c[l>>2]=c[j>>2];c[p>>2]=(c[(c[h>>2]|0)+4>>2]|0)+((c[j>>2]|0)*20|0);while(1){if((c[l>>2]|0)>=(c[m>>2]|0))break;c[n>>2]=Ox(c[g>>2]|0,c[c[p>>2]>>2]|0)|0;if(!(c[n>>2]|0))c[n>>2]=c[(c[k>>2]|0)+8>>2];c[(c[o>>2]|0)+20+((c[l>>2]|0)-(c[j>>2]|0)<<2)>>2]=c[n>>2];a[(c[(c[o>>2]|0)+16>>2]|0)+((c[l>>2]|0)-(c[j>>2]|0))>>0]=a[(c[p>>2]|0)+12>>0]|0;c[l>>2]=(c[l>>2]|0)+1;c[p>>2]=(c[p>>2]|0)+20}r=c[o>>2]|0;i=q;return r|0}function aG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;e=m+24|0;f=m+20|0;g=m+16|0;l=m+12|0;h=m+8|0;j=m+4|0;k=m;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[l>>2]=0;c[h>>2]=0;if(c[(c[f>>2]|0)+8>>2]|0){i=m;return}fC(c[e>>2]|0);if(!(c[(c[f>>2]|0)+60>>2]|0)){i=m;return}b=(c[e>>2]|0)+76|0;a=(c[b>>2]|0)+1|0;c[b>>2]=a;c[h>>2]=a;c[(c[f>>2]|0)+8>>2]=a;c[l>>2]=Pw(c[e>>2]|0)|0;do if(ky(c[(c[f>>2]|0)+60>>2]|0,k)|0){Rw(c[l>>2]|0,22,c[k>>2]|0,c[h>>2]|0)|0;if(!(c[k>>2]|0)){Ez(c[l>>2]|0,c[g>>2]|0)|0;break}if((c[k>>2]|0)>=0?(b=(c[f>>2]|0)+24|0,g=c[b+4>>2]|0,a=c[k>>2]|0,d=((a|0)<0)<<31>>31,g>>>0>d>>>0|((g|0)==(d|0)?(c[b>>2]|0)>>>0>a>>>0:0)):0){b=c[k>>2]|0;a=(c[f>>2]|0)+24|0;c[a>>2]=b;c[a+4>>2]=((b|0)<0)<<31>>31}}else{xA(c[e>>2]|0,c[(c[f>>2]|0)+60>>2]|0,c[h>>2]|0);xz(c[l>>2]|0,38,c[h>>2]|0)|0;Rw(c[l>>2]|0,46,c[h>>2]|0,c[g>>2]|0)|0}while(0);if(!(c[(c[f>>2]|0)+64>>2]|0)){i=m;return}b=(c[e>>2]|0)+76|0;a=(c[b>>2]|0)+1|0;c[b>>2]=a;c[j>>2]=a;c[(c[f>>2]|0)+12>>2]=a;a=(c[e>>2]|0)+76|0;c[a>>2]=(c[a>>2]|0)+1;xA(c[e>>2]|0,c[(c[f>>2]|0)+64>>2]|0,c[j>>2]|0);xz(c[l>>2]|0,38,c[j>>2]|0)|0;Vw(c[l>>2]|0,139,c[h>>2]|0,(c[j>>2]|0)+1|0,c[j>>2]|0)|0;i=m;return}function bG(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+16|0;h=f+4|0;g=f;j=f+8|0;c[h>>2]=b;c[g>>2]=d;a[j>>0]=e;b=a[j>>0]|0;a[(Mz(c[h>>2]|0,c[g>>2]|0)|0)>>0]=b;i=f;return}function cG(a){a=a|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=a;a=aC(b[(c[e>>2]|0)+32>>1]|0)|0;i=d;return a|0}function dG(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;b=e;c[b>>2]=a;i=e;return d[(c[b>>2]|0)+40>>0]|0|0}function eG(b){b=b|0;var d=0,e=0;e=i;i=i+16|0;d=e;c[d>>2]=b;i=e;return a[(c[d>>2]|0)+36>>0]|0}function fG(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c[(c[b>>2]|0)+48>>2]|0}function gG(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c[(c[b>>2]|0)+52>>2]|0}function hG(b,f,g,h,j,k,l,m,n){b=b|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0;V=i;i=i+144|0;P=V+124|0;Q=V+120|0;t=V+116|0;o=V+112|0;R=V+108|0;p=V+104|0;M=V+100|0;u=V+96|0;S=V+92|0;U=V+88|0;D=V+84|0;r=V+80|0;T=V+76|0;C=V+72|0;O=V+68|0;F=V+64|0;N=V+60|0;q=V+128|0;s=V+56|0;w=V+52|0;A=V+48|0;x=V+44|0;y=V+40|0;H=V+36|0;v=V+32|0;K=V+28|0;I=V+24|0;E=V+20|0;J=V+16|0;L=V+12|0;z=V+8|0;B=V+4|0;G=V;c[P>>2]=b;c[Q>>2]=f;c[t>>2]=g;c[o>>2]=h;c[R>>2]=j;c[p>>2]=k;c[M>>2]=l;c[u>>2]=m;c[S>>2]=n;c[U>>2]=c[(c[P>>2]|0)+8>>2];c[C>>2]=d[c[M>>2]>>0];c[O>>2]=c[(c[M>>2]|0)+4>>2];c[N>>2]=0;if(c[p>>2]|0)n=d[(c[p>>2]|0)+1>>0]|0;else n=0;c[r>>2]=n;if((c[R>>2]|0)!=0?(c[c[R>>2]>>2]|0)==0:0)c[R>>2]=0;if(!((c[R>>2]|0)!=0|(c[r>>2]|0)!=0))wG(c[U>>2]|0,c[(c[Q>>2]|0)+12>>2]|0,c[u>>2]|0);c[F>>2]=c[c[t>>2]>>2];if(c[(c[M>>2]|0)+8>>2]|0){if(((c[(c[M>>2]|0)+8>>2]|0)+(c[F>>2]|0)|0)>(c[(c[P>>2]|0)+76>>2]|0)){h=(c[P>>2]|0)+76|0;c[h>>2]=(c[h>>2]|0)+(c[F>>2]|0)}}else{if(c[R>>2]|0){c[N>>2]=c[c[c[R>>2]>>2]>>2];if(!((d[(c[R>>2]|0)+28>>0]|0)&1))c[N>>2]=(c[N>>2]|0)+1;h=(c[P>>2]|0)+76|0;c[h>>2]=(c[h>>2]|0)+(c[N>>2]|0)}c[(c[M>>2]|0)+8>>2]=(c[(c[P>>2]|0)+76>>2]|0)+1;h=(c[P>>2]|0)+76|0;c[h>>2]=(c[h>>2]|0)+(c[F>>2]|0)}c[(c[M>>2]|0)+12>>2]=c[F>>2];c[T>>2]=c[(c[M>>2]|0)+8>>2];a:do if((c[o>>2]|0)<0){if((c[C>>2]|0)!=3){if((c[C>>2]|0)==10|(c[C>>2]|0)==9|(c[C>>2]|0)==13)a[q>>0]=1;else a[q>>0]=0;GA(c[P>>2]|0,c[t>>2]|0,c[T>>2]|0,0,a[q>>0]|0)|0}}else{c[D>>2]=0;while(1){if((c[D>>2]|0)>=(c[F>>2]|0))break a;Vw(c[U>>2]|0,47,c[o>>2]|0,c[D>>2]|0,(c[T>>2]|0)+(c[D>>2]|0)|0)|0;c[D>>2]=(c[D>>2]|0)+1}}while(0);if(c[r>>2]|0){switch(d[(c[p>>2]|0)+1>>0]|0|0){case 2:{c[A>>2]=(c[(c[P>>2]|0)+76>>2]|0)+1;r=(c[P>>2]|0)+76|0;c[r>>2]=(c[r>>2]|0)+(c[F>>2]|0);pA(c[U>>2]|0,c[(c[p>>2]|0)+8>>2]|0)|0;c[s>>2]=Mz(c[U>>2]|0,c[(c[p>>2]|0)+8>>2]|0)|0;a[c[s>>2]>>0]=25;c[(c[s>>2]|0)+4>>2]=1;c[(c[s>>2]|0)+8>>2]=c[A>>2];c[w>>2]=(Bz(c[U>>2]|0)|0)+(c[F>>2]|0);c[D>>2]=0;while(1){if((c[D>>2]|0)>=(c[F>>2]|0))break;c[x>>2]=Ox(c[P>>2]|0,c[(c[(c[t>>2]|0)+4>>2]|0)+((c[D>>2]|0)*20|0)>>2]|0)|0;n=c[U>>2]|0;m=(c[T>>2]|0)+(c[D>>2]|0)|0;if((c[D>>2]|0)<((c[F>>2]|0)-1|0))Vw(n,78,m,c[w>>2]|0,(c[A>>2]|0)+(c[D>>2]|0)|0)|0;else Vw(n,79,m,c[u>>2]|0,(c[A>>2]|0)+(c[D>>2]|0)|0)|0;Ih(c[U>>2]|0,-1,c[x>>2]|0,-4);Fh(c[U>>2]|0,-128);c[D>>2]=(c[D>>2]|0)+1}Vw(c[U>>2]|0,30,c[T>>2]|0,c[A>>2]|0,(c[F>>2]|0)-1|0)|0;break}case 1:{pA(c[U>>2]|0,c[(c[p>>2]|0)+8>>2]|0)|0;break}default:xG(c[P>>2]|0,c[(c[p>>2]|0)+4>>2]|0,c[u>>2]|0,c[F>>2]|0,c[T>>2]|0)}if(!(c[R>>2]|0))wG(c[U>>2]|0,c[(c[Q>>2]|0)+12>>2]|0,c[u>>2]|0)}b:do switch(c[C>>2]|0){case 1:{c[y>>2]=Wz(c[P>>2]|0)|0;Vw(c[U>>2]|0,49,c[T>>2]|0,c[F>>2]|0,c[y>>2]|0)|0;Rw(c[U>>2]|0,110,c[O>>2]|0,c[y>>2]|0)|0;_z(c[P>>2]|0,c[y>>2]|0);break}case 2:{Vw(c[U>>2]|0,111,c[O>>2]|0,c[T>>2]|0,c[F>>2]|0)|0;break}case 12:case 14:case 6:case 5:{c[H>>2]=kA(c[P>>2]|0,(c[N>>2]|0)+1|0)|0;Vw(c[U>>2]|0,49,c[T>>2]|0,c[F>>2]|0,(c[H>>2]|0)+(c[N>>2]|0)|0)|0;if((c[C>>2]|0)==6){c[v>>2]=(Bz(c[U>>2]|0)|0)+4;Eh(c[U>>2]|0,69,(c[O>>2]|0)+1|0,c[v>>2]|0,c[H>>2]|0,0)|0;Rw(c[U>>2]|0,110,(c[O>>2]|0)+1|0,c[H>>2]|0)|0}n=c[P>>2]|0;if(c[R>>2]|0)CG(n,c[R>>2]|0,c[Q>>2]|0,(c[H>>2]|0)+(c[N>>2]|0)|0,c[T>>2]|0,1,c[N>>2]|0);else{c[K>>2]=Wz(n)|0;Rw(c[U>>2]|0,74,c[O>>2]|0,c[K>>2]|0)|0;Vw(c[U>>2]|0,75,c[O>>2]|0,c[H>>2]|0,c[K>>2]|0)|0;Fh(c[U>>2]|0,8);_z(c[P>>2]|0,c[K>>2]|0)}nA(c[P>>2]|0,c[H>>2]|0,(c[N>>2]|0)+1|0);break}case 11:{n=SA(c[c[(c[t>>2]|0)+4>>2]>>2]|0,a[(c[M>>2]|0)+1>>0]|0)|0;a[(c[M>>2]|0)+1>>0]=n;n=c[P>>2]|0;if(c[R>>2]|0){CG(n,c[R>>2]|0,c[Q>>2]|0,c[T>>2]|0,c[T>>2]|0,1,c[N>>2]|0);break b}else{c[I>>2]=Wz(n)|0;Uw(c[U>>2]|0,49,c[T>>2]|0,1,c[I>>2]|0,(c[M>>2]|0)+1|0,1)|0;CA(c[P>>2]|0,c[T>>2]|0,1);Rw(c[U>>2]|0,110,c[O>>2]|0,c[I>>2]|0)|0;_z(c[P>>2]|0,c[I>>2]|0);break b}}case 3:{Rw(c[U>>2]|0,22,1,c[O>>2]|0)|0;break}case 10:{if(c[R>>2]|0)CG(c[P>>2]|0,c[R>>2]|0,c[Q>>2]|0,c[T>>2]|0,c[T>>2]|0,1,c[N>>2]|0);break}case 9:case 13:{if(c[R>>2]|0){CG(c[P>>2]|0,c[R>>2]|0,c[Q>>2]|0,c[T>>2]|0,c[T>>2]|0,c[F>>2]|0,c[N>>2]|0);break b}n=c[U>>2]|0;if((c[C>>2]|0)==13){xz(n,18,c[(c[M>>2]|0)+4>>2]|0)|0;break b}else{Rw(n,33,c[T>>2]|0,c[F>>2]|0)|0;CA(c[P>>2]|0,c[T>>2]|0,c[F>>2]|0);break b}}case 7:case 8:{c[B>>2]=0;c[G>>2]=c[(c[M>>2]|0)+16>>2];c[E>>2]=c[c[G>>2]>>2];c[J>>2]=Wz(c[P>>2]|0)|0;c[L>>2]=kA(c[P>>2]|0,(c[E>>2]|0)+2|0)|0;c[z>>2]=(c[L>>2]|0)+(c[E>>2]|0)+1;if((c[C>>2]|0)==8)c[B>>2]=Eh(c[U>>2]|0,69,(c[O>>2]|0)+1|0,0,c[T>>2]|0,c[F>>2]|0)|0;Vw(c[U>>2]|0,49,c[T>>2]|0,c[F>>2]|0,c[z>>2]|0)|0;if((c[C>>2]|0)==8){Rw(c[U>>2]|0,110,(c[O>>2]|0)+1|0,c[z>>2]|0)|0;Fh(c[U>>2]|0,16)}c[D>>2]=0;while(1){n=c[U>>2]|0;if((c[D>>2]|0)>=(c[E>>2]|0))break;Rw(n,31,(c[T>>2]|0)+(e[(c[(c[G>>2]|0)+4>>2]|0)+((c[D>>2]|0)*20|0)+16>>1]|0)-1|0,(c[L>>2]|0)+(c[D>>2]|0)|0)|0;c[D>>2]=(c[D>>2]|0)+1}Rw(n,73,c[O>>2]|0,(c[L>>2]|0)+(c[E>>2]|0)|0)|0;Vw(c[U>>2]|0,49,c[L>>2]|0,(c[E>>2]|0)+2|0,c[J>>2]|0)|0;Rw(c[U>>2]|0,110,c[O>>2]|0,c[J>>2]|0)|0;if(c[B>>2]|0)Fz(c[U>>2]|0,c[B>>2]|0);_z(c[P>>2]|0,c[J>>2]|0);nA(c[P>>2]|0,c[L>>2]|0,(c[E>>2]|0)+2|0);break}default:{}}while(0);if(c[R>>2]|0){i=V;return}if(!(c[(c[Q>>2]|0)+8>>2]|0)){i=V;return}Rw(c[U>>2]|0,141,c[(c[Q>>2]|0)+8>>2]|0,c[S>>2]|0)|0;i=V;return}function iG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;d=h+12|0;e=h+8|0;g=h+4|0;f=h;c[d>>2]=a;c[e>>2]=b;if(!(c[e>>2]|0)){i=h;return}c[g>>2]=c[(c[e>>2]|0)+4>>2];c[f>>2]=0;while(1){if((c[f>>2]|0)>=(c[c[e>>2]>>2]|0))break;jG(c[d>>2]|0,c[c[g>>2]>>2]|0);c[f>>2]=(c[f>>2]|0)+1;c[g>>2]=(c[g>>2]|0)+20}i=h;return}function jG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+48|0;g=d+32|0;e=d+28|0;f=d;c[g>>2]=a;c[e>>2]=b;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=0;c[f+24>>2]=0;c[f+4>>2]=202;c[f+8>>2]=203;c[f+24>>2]=c[g>>2];by(f,c[e>>2]|0)|0;i=d;return}function kG(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;h=k;e=k+16|0;f=k+12|0;g=k+8|0;j=k+4|0;c[e>>2]=a;c[f>>2]=b;if((d[(c[e>>2]|0)+453>>0]|0|0)!=2){i=k;return}c[g>>2]=c[(c[e>>2]|0)+8>>2];b=c[c[e>>2]>>2]|0;c[h>>2]=c[f>>2];c[j>>2]=Bh(b,36633,h)|0;Uw(c[g>>2]|0,161,c[(c[e>>2]|0)+468>>2]|0,0,0,c[j>>2]|0,-1)|0;i=k;return}function lG(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;b=e;c[b>>2]=a;i=e;return d[(c[b>>2]|0)+37>>0]|0|0}function mG(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+16|0;j=f+12|0;h=f+8|0;k=f+4|0;g=f;c[j>>2]=a;c[h>>2]=b;c[k>>2]=d;c[g>>2]=e;Vw(c[(c[j>>2]|0)+8>>2]|0,29,c[h>>2]|0,c[k>>2]|0,c[g>>2]|0)|0;oA(c[j>>2]|0,c[h>>2]|0,c[g>>2]|0);i=f;return}function nG(b,d){b=b|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+64|0;f=v+56|0;g=v+52|0;u=v+48|0;k=v+44|0;t=v+40|0;h=v+36|0;p=v+32|0;n=v+28|0;m=v+24|0;j=v+20|0;s=v+16|0;r=v+12|0;o=v+8|0;q=v+4|0;l=v;c[f>>2]=b;c[g>>2]=d;c[u>>2]=c[(c[f>>2]|0)+8>>2];c[t>>2]=0;c[h>>2]=0;a[c[g>>2]>>0]=1;c[k>>2]=0;c[p>>2]=c[(c[g>>2]|0)+40>>2];while(1){if((c[k>>2]|0)>=(c[(c[g>>2]|0)+44>>2]|0))break;c[j>>2]=0;c[r>>2]=c[(c[c[p>>2]>>2]|0)+20>>2];if(c[r>>2]|0){c[m>>2]=c[c[r>>2]>>2];c[s>>2]=kA(c[f>>2]|0,c[m>>2]|0)|0;GA(c[f>>2]|0,c[r>>2]|0,c[s>>2]|0,0,1)|0}else{c[m>>2]=0;c[s>>2]=0}if((c[(c[p>>2]|0)+12>>2]|0)>=0){c[j>>2]=Cz(c[u>>2]|0)|0;xG(c[f>>2]|0,c[(c[p>>2]|0)+12>>2]|0,c[j>>2]|0,1,c[s>>2]|0)}if((e[(c[(c[p>>2]|0)+4>>2]|0)+2>>1]|0)&32){c[o>>2]=0;c[l>>2]=0;c[q>>2]=c[(c[r>>2]|0)+4>>2];while(1){if(c[o>>2]|0)break;if((c[l>>2]|0)>=(c[m>>2]|0))break;c[o>>2]=Ox(c[f>>2]|0,c[c[q>>2]>>2]|0)|0;c[l>>2]=(c[l>>2]|0)+1;c[q>>2]=(c[q>>2]|0)+20}if(!(c[o>>2]|0))c[o>>2]=c[(c[c[f>>2]>>2]|0)+8>>2];if((c[t>>2]|0)==0?(c[(c[g>>2]|0)+36>>2]|0)!=0:0){d=(c[f>>2]|0)+76|0;b=(c[d>>2]|0)+1|0;c[d>>2]=b;c[t>>2]=b}Uw(c[u>>2]|0,34,c[t>>2]|0,0,0,c[o>>2]|0,-4)|0}Uw(c[u>>2]|0,143,0,c[s>>2]|0,c[(c[p>>2]|0)+8>>2]|0,c[(c[p>>2]|0)+4>>2]|0,-5)|0;Fh(c[u>>2]|0,c[m>>2]&255);CA(c[f>>2]|0,c[s>>2]|0,c[m>>2]|0);nA(c[f>>2]|0,c[s>>2]|0,c[m>>2]|0);if(c[j>>2]|0){Gz(c[u>>2]|0,c[j>>2]|0);fC(c[f>>2]|0)}c[k>>2]=(c[k>>2]|0)+1;c[p>>2]=(c[p>>2]|0)+16}if(c[t>>2]|0)c[h>>2]=xz(c[u>>2]|0,45,c[t>>2]|0)|0;fC(c[f>>2]|0);c[k>>2]=0;c[n>>2]=c[(c[g>>2]|0)+28>>2];while(1){if((c[k>>2]|0)>=(c[(c[g>>2]|0)+36>>2]|0))break;xA(c[f>>2]|0,c[(c[n>>2]|0)+20>>2]|0,c[(c[n>>2]|0)+16>>2]|0);c[k>>2]=(c[k>>2]|0)+1;c[n>>2]=(c[n>>2]|0)+24}a[c[g>>2]>>0]=0;fC(c[f>>2]|0);if(!(c[h>>2]|0)){i=v;return}Fz(c[u>>2]|0,c[h>>2]|0);i=v;return}function oG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;j=i;i=i+32|0;k=j+20|0;d=j+16|0;h=j+12|0;e=j+8|0;f=j+4|0;g=j;c[k>>2]=a;c[d>>2]=b;c[h>>2]=c[(c[k>>2]|0)+8>>2];c[e>>2]=0;c[f>>2]=c[(c[d>>2]|0)+40>>2];while(1){if((c[e>>2]|0)>=(c[(c[d>>2]|0)+44>>2]|0))break;c[g>>2]=c[(c[c[f>>2]>>2]|0)+20>>2];if(c[g>>2]|0)b=c[c[g>>2]>>2]|0;else b=0;Uw(c[h>>2]|0,145,c[(c[f>>2]|0)+8>>2]|0,b,0,c[(c[f>>2]|0)+4>>2]|0,-5)|0;c[e>>2]=(c[e>>2]|0)+1;c[f>>2]=(c[f>>2]|0)+16}i=j;return}function pG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+48|0;l=m;d=m+32|0;e=m+28|0;k=m+24|0;f=m+20|0;h=m+16|0;n=m+12|0;g=m+8|0;j=m+4|0;c[d>>2]=a;c[e>>2]=b;c[k>>2]=c[(c[d>>2]|0)+8>>2];c[n>>2]=(c[(c[e>>2]|0)+44>>2]|0)+(c[(c[e>>2]|0)+32>>2]|0);if(!(c[n>>2]|0)){i=m;return}Vw(c[k>>2]|0,25,0,c[(c[e>>2]|0)+16>>2]|0,c[(c[e>>2]|0)+20>>2]|0)|0;
  59. c[h>>2]=c[(c[e>>2]|0)+40>>2];c[f>>2]=0;while(1){if((c[f>>2]|0)>=(c[(c[e>>2]|0)+44>>2]|0))break;do if((c[(c[h>>2]|0)+12>>2]|0)>=0){c[g>>2]=c[c[h>>2]>>2];if((c[(c[g>>2]|0)+20>>2]|0)!=0?(c[c[(c[g>>2]|0)+20>>2]>>2]|0)==1:0){c[j>>2]=$F(c[d>>2]|0,c[(c[g>>2]|0)+20>>2]|0,0,0)|0;Uw(c[k>>2]|0,57,c[(c[h>>2]|0)+12>>2]|0,0,0,c[j>>2]|0,-6)|0;break}Ah(c[d>>2]|0,36582,l);c[(c[h>>2]|0)+12>>2]=-1}while(0);c[f>>2]=(c[f>>2]|0)+1;c[h>>2]=(c[h>>2]|0)+16}i=m;return}function qG(a,b){a=a|0;b=b|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;f=l+16|0;g=l+12|0;h=l+8|0;k=l+4|0;j=l;c[g>>2]=a;c[h>>2]=b;if((((c[(c[g>>2]|0)+36>>2]|0)==0?(c[c[c[g>>2]>>2]>>2]|0)==1:0)?(c[c[(c[g>>2]|0)+32>>2]>>2]|0)==1:0)?(c[(c[(c[g>>2]|0)+32>>2]|0)+8+20>>2]|0)==0:0){c[k>>2]=c[(c[(c[g>>2]|0)+32>>2]|0)+8+16>>2];c[j>>2]=c[c[(c[c[g>>2]>>2]|0)+4>>2]>>2];if((d[(c[k>>2]|0)+42>>0]|0)&16){c[f>>2]=0;k=c[f>>2]|0;i=l;return k|0}if((d[c[j>>2]>>0]|0|0)!=153){c[f>>2]=0;k=c[f>>2]|0;i=l;return k|0}if(!(c[(c[h>>2]|0)+44>>2]|0)){c[f>>2]=0;k=c[f>>2]|0;i=l;return k|0}if(!((e[(c[(c[(c[h>>2]|0)+40>>2]|0)+4>>2]|0)+2>>1]|0)&256)){c[f>>2]=0;k=c[f>>2]|0;i=l;return k|0}if(c[(c[j>>2]|0)+4>>2]&16){c[f>>2]=0;k=c[f>>2]|0;i=l;return k|0}else{c[f>>2]=c[k>>2];k=c[f>>2]|0;i=l;return k|0}}c[f>>2]=0;k=c[f>>2]|0;i=l;return k|0}function rG(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;l=n;j=n+28|0;k=n+24|0;g=n+20|0;h=n+16|0;m=n+12|0;c[j>>2]=b;c[k>>2]=e;c[g>>2]=f;if((d[(c[j>>2]|0)+453>>0]|0|0)!=2){i=n;return}if(c[g>>2]|0)if(!((d[(c[k>>2]|0)+42>>0]|0)&32))f=1;else f=(a[(c[g>>2]|0)+55>>0]&3|0)==2^1;else f=0;c[h>>2]=f&1;b=c[c[j>>2]>>2]|0;e=(c[h>>2]|0)!=0?36541:19266;if(c[h>>2]|0)f=c[c[g>>2]>>2]|0;else f=19266;c[l>>2]=c[c[k>>2]>>2];c[l+4>>2]=e;c[l+8>>2]=f;c[m>>2]=Bh(b,36564,l)|0;Uw(c[(c[j>>2]|0)+8>>2]|0,161,c[(c[j>>2]|0)+468>>2]|0,0,0,c[m>>2]|0,-1)|0;i=n;return}function sG(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;e=l+20|0;f=l+16|0;g=l+12|0;j=l+8|0;h=l+4|0;k=l;c[e>>2]=a;c[f>>2]=b;c[g>>2]=0;c[c[f>>2]>>2]=0;do if((((c[(c[e>>2]|0)+44>>2]|0)==1?(c[j>>2]=c[c[(c[e>>2]|0)+40>>2]>>2],c[h>>2]=c[(c[j>>2]|0)+20>>2],(c[h>>2]|0)!=0):0)?(c[c[h>>2]>>2]|0)==1:0)?(d[c[c[(c[h>>2]|0)+4>>2]>>2]>>0]|0|0)==154:0){c[k>>2]=c[(c[j>>2]|0)+8>>2];if(!(Td(c[k>>2]|0,36533)|0)){c[g>>2]=1;c[c[f>>2]>>2]=c[h>>2];break}if(!(Td(c[k>>2]|0,36537)|0)){c[g>>2]=2;c[c[f>>2]>>2]=c[h>>2]}}while(0);i=l;return c[g>>2]&255|0}function tG(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+96|0;s=E+84|0;h=E+80|0;B=E+76|0;t=E+72|0;u=E+68|0;D=E+64|0;C=E+60|0;v=E+56|0;A=E+52|0;j=E+48|0;z=E+44|0;q=E+40|0;w=E+36|0;m=E+32|0;x=E+28|0;y=E+24|0;o=E+20|0;n=E+16|0;p=E+12|0;l=E+8|0;k=E+4|0;r=E;c[s>>2]=a;c[h>>2]=b;c[B>>2]=e;c[t>>2]=f;c[u>>2]=g;c[D>>2]=c[(c[s>>2]|0)+8>>2];c[C>>2]=c[(c[B>>2]|0)+24>>2];c[v>>2]=Cz(c[D>>2]|0)|0;c[j>>2]=0;c[q>>2]=c[c[B>>2]>>2];c[w>>2]=d[c[u>>2]>>0];c[m>>2]=c[(c[u>>2]|0)+4>>2];if(c[(c[B>>2]|0)+16>>2]|0){Rw(c[D>>2]|0,14,c[(c[B>>2]|0)+12>>2]|0,c[(c[B>>2]|0)+16>>2]|0)|0;Ez(c[D>>2]|0,c[C>>2]|0)|0;Gz(c[D>>2]|0,c[(c[B>>2]|0)+16>>2]|0)}c[z>>2]=c[(c[B>>2]|0)+8>>2];if((c[w>>2]|0)==9|(c[w>>2]|0)==13){c[y>>2]=0;c[x>>2]=c[(c[u>>2]|0)+8>>2];c[p>>2]=c[t>>2]}else{c[y>>2]=Wz(c[s>>2]|0)|0;c[x>>2]=Wz(c[s>>2]|0)|0;c[p>>2]=1}c[o>>2]=(c[c[q>>2]>>2]|0)-(c[(c[B>>2]|0)+4>>2]|0);if((d[(c[B>>2]|0)+28>>0]|0)&1){e=(c[s>>2]|0)+76|0;a=(c[e>>2]|0)+1|0;c[e>>2]=a;c[r>>2]=a;a=(c[s>>2]|0)+72|0;e=c[a>>2]|0;c[a>>2]=e+1;c[n>>2]=e;if(c[(c[B>>2]|0)+16>>2]|0)c[j>>2]=UA(c[s>>2]|0)|0;Vw(c[D>>2]|0,60,c[n>>2]|0,c[r>>2]|0,(c[o>>2]|0)+1+(c[p>>2]|0)|0)|0;if(c[j>>2]|0)Fz(c[D>>2]|0,c[j>>2]|0);c[A>>2]=1+(Rw(c[D>>2]|0,106,c[z>>2]|0,c[C>>2]|0)|0);wG(c[D>>2]|0,c[(c[h>>2]|0)+12>>2]|0,c[v>>2]|0);Vw(c[D>>2]|0,100,c[z>>2]|0,c[r>>2]|0,c[n>>2]|0)|0;c[k>>2]=0}else{c[A>>2]=1+(Rw(c[D>>2]|0,107,c[z>>2]|0,c[C>>2]|0)|0);wG(c[D>>2]|0,c[(c[h>>2]|0)+12>>2]|0,c[v>>2]|0);c[n>>2]=c[z>>2];c[k>>2]=1}c[l>>2]=0;while(1){if((c[l>>2]|0)>=(c[p>>2]|0))break;Vw(c[D>>2]|0,47,c[n>>2]|0,(c[o>>2]|0)+(c[k>>2]|0)+(c[l>>2]|0)|0,(c[x>>2]|0)+(c[l>>2]|0)|0)|0;c[l>>2]=(c[l>>2]|0)+1}a:do switch(c[w>>2]|0){case 12:{Rw(c[D>>2]|0,74,c[m>>2]|0,c[y>>2]|0)|0;Vw(c[D>>2]|0,75,c[m>>2]|0,c[x>>2]|0,c[y>>2]|0)|0;Fh(c[D>>2]|0,8);break}case 11:{Uw(c[D>>2]|0,49,c[x>>2]|0,1,c[y>>2]|0,(c[u>>2]|0)+1|0,1)|0;CA(c[s>>2]|0,c[x>>2]|0,1);Rw(c[D>>2]|0,110,c[m>>2]|0,c[y>>2]|0)|0;break}case 10:{mG(c[s>>2]|0,c[x>>2]|0,c[m>>2]|0,1);break}default:{h=c[D>>2]|0;j=c[u>>2]|0;if((c[w>>2]|0)==9){Rw(h,33,c[j+8>>2]|0,c[t>>2]|0)|0;CA(c[s>>2]|0,c[(c[u>>2]|0)+8>>2]|0,c[t>>2]|0);break a}else{xz(h,18,c[j+4>>2]|0)|0;break a}}}while(0);if(c[y>>2]|0){_z(c[s>>2]|0,c[x>>2]|0);_z(c[s>>2]|0,c[y>>2]|0)}Gz(c[D>>2]|0,c[v>>2]|0);k=c[D>>2]|0;j=c[z>>2]|0;h=c[A>>2]|0;if((d[(c[B>>2]|0)+28>>0]|0)&1)Rw(k,3,j,h)|0;else Rw(k,7,j,h)|0;if(!(c[(c[B>>2]|0)+12>>2]|0)){B=c[D>>2]|0;D=c[C>>2]|0;Gz(B,D);i=E;return}xz(c[D>>2]|0,15,c[(c[B>>2]|0)+12>>2]|0)|0;B=c[D>>2]|0;D=c[C>>2]|0;Gz(B,D);i=E;return}function uG(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;A=i;i=i+80|0;v=A+8|0;u=A;h=A+72|0;j=A+68|0;k=A+64|0;t=A+60|0;n=A+56|0;p=A+52|0;l=A+48|0;m=A+44|0;s=A+40|0;q=A+36|0;y=A+32|0;r=A+28|0;x=A+24|0;o=A+20|0;z=A+16|0;w=A+12|0;c[h>>2]=e;c[j>>2]=f;c[k>>2]=g;c[t>>2]=c[(c[h>>2]|0)+8>>2];c[l>>2]=c[c[h>>2]>>2];if(a[(c[h>>2]|0)+453>>0]|0){i=A;return}if(d[(c[h>>2]|0)+16>>0]|0){i=A;return}if(d[(c[l>>2]|0)+65>>0]|0){i=A;return}a[(c[h>>2]|0)+16>>0]=1;c[m>>2]=(c[(c[l>>2]|0)+24>>2]&4|0)!=0&1;c[s>>2]=(c[(c[l>>2]|0)+24>>2]&64|0)!=0&1;OB(c[t>>2]|0,c[c[k>>2]>>2]|0);c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[c[k>>2]>>2]|0))break;c[q>>2]=c[(c[(c[k>>2]|0)+4>>2]|0)+((c[n>>2]|0)*20|0)>>2];do if(c[q>>2]|0){if(c[(c[(c[k>>2]|0)+4>>2]|0)+((c[n>>2]|0)*20|0)+4>>2]|0){c[y>>2]=c[(c[(c[k>>2]|0)+4>>2]|0)+((c[n>>2]|0)*20|0)+4>>2];PB(c[t>>2]|0,c[n>>2]|0,0,c[y>>2]|0,-1)|0;break}if((d[c[q>>2]>>0]|0)!=152?(d[c[q>>2]>>0]|0)!=154:0){c[w>>2]=c[(c[(c[k>>2]|0)+4>>2]|0)+((c[n>>2]|0)*20|0)+8>>2];g=c[l>>2]|0;if(!(c[w>>2]|0)){c[v>>2]=(c[n>>2]|0)+1;g=Bh(g,36524,v)|0}else g=nh(g,c[w>>2]|0)|0;c[w>>2]=g;PB(c[t>>2]|0,c[n>>2]|0,0,c[w>>2]|0,170)|0;break}c[o>>2]=b[(c[q>>2]|0)+32>>1];c[p>>2]=0;while(1){if((c[p>>2]|0)>=(c[c[j>>2]>>2]|0))break;if((c[(c[j>>2]|0)+8+((c[p>>2]|0)*72|0)+44>>2]|0)==(c[(c[q>>2]|0)+28>>2]|0))break;c[p>>2]=(c[p>>2]|0)+1}c[r>>2]=c[(c[j>>2]|0)+8+((c[p>>2]|0)*72|0)+16>>2];if((c[o>>2]|0)<0)c[o>>2]=b[(c[r>>2]|0)+32>>1];if((c[o>>2]|0)<0)c[x>>2]=25592;else c[x>>2]=c[(c[(c[r>>2]|0)+4>>2]|0)+((c[o>>2]|0)*24|0)>>2];if(!((c[s>>2]|0)!=0|(c[m>>2]|0)!=0)){e=c[t>>2]|0;f=c[n>>2]|0;PB(e,f,0,nh(c[l>>2]|0,c[(c[(c[k>>2]|0)+4>>2]|0)+((c[n>>2]|0)*20|0)+8>>2]|0)|0,170)|0;break}if(c[m>>2]|0){c[z>>2]=0;f=c[l>>2]|0;e=c[x>>2]|0;c[u>>2]=c[c[r>>2]>>2];c[u+4>>2]=e;c[z>>2]=Bh(f,31016,u)|0;PB(c[t>>2]|0,c[n>>2]|0,0,c[z>>2]|0,170)|0;break}else{PB(c[t>>2]|0,c[n>>2]|0,0,c[x>>2]|0,-1)|0;break}}while(0);c[n>>2]=(c[n>>2]|0)+1}vG(c[h>>2]|0,c[j>>2]|0,c[k>>2]|0);i=A;return}function vG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;l=i;i=i+64|0;m=l+56|0;n=l+52|0;e=l+48|0;j=l+44|0;f=l+40|0;h=l+8|0;g=l+4|0;k=l;c[m>>2]=a;c[n>>2]=b;c[e>>2]=d;c[j>>2]=c[(c[m>>2]|0)+8>>2];c[h+4>>2]=c[n>>2];c[h>>2]=c[m>>2];c[f>>2]=0;while(1){if((c[f>>2]|0)>=(c[c[e>>2]>>2]|0))break;c[g>>2]=c[(c[(c[e>>2]|0)+4>>2]|0)+((c[f>>2]|0)*20|0)>>2];c[k>>2]=Mx(h,c[g>>2]|0,0)|0;PB(c[j>>2]|0,c[f>>2]|0,1,c[k>>2]|0,-1)|0;c[f>>2]=(c[f>>2]|0)+1}i=l;return}function wG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+8|0;f=h+4|0;g=h;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;if((c[f>>2]|0)<=0){i=h;return}Vw(c[e>>2]|0,138,c[f>>2]|0,c[g>>2]|0,1)|0;i=h;return}function xG(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;g=i;i=i+32|0;j=g+24|0;k=g+20|0;o=g+16|0;m=g+12|0;n=g+8|0;l=g+4|0;h=g;c[j>>2]=a;c[k>>2]=b;c[o>>2]=d;c[m>>2]=e;c[n>>2]=f;c[l>>2]=c[(c[j>>2]|0)+8>>2];c[h>>2]=Wz(c[j>>2]|0)|0;Eh(c[l>>2]|0,69,c[k>>2]|0,c[o>>2]|0,c[n>>2]|0,c[m>>2]|0)|0;Vw(c[l>>2]|0,49,c[n>>2]|0,c[m>>2]|0,c[h>>2]|0)|0;Rw(c[l>>2]|0,110,c[k>>2]|0,c[h>>2]|0)|0;_z(c[j>>2]|0,c[h>>2]|0);i=g;return}function yG(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;A=i;i=i+80|0;t=A+64|0;h=A+60|0;u=A+56|0;w=A+52|0;q=A+48|0;z=A+44|0;r=A+40|0;x=A+36|0;p=A+32|0;m=A+28|0;k=A+24|0;j=A+20|0;l=A+16|0;o=A+12|0;s=A+8|0;n=A+4|0;y=A;v=A+68|0;c[h>>2]=f;c[u>>2]=g;c[q>>2]=c[(c[h>>2]|0)+24>>2];c[z>>2]=c[c[q>>2]>>2];c[r>>2]=c[(c[q>>2]|0)+4>>2];c[x>>2]=c[(c[q>>2]|0)+12>>2];switch(d[c[u>>2]>>0]|0){case 152:case 154:{a:do if(c[r>>2]|0){c[p>>2]=(c[r>>2]|0)+8;c[w>>2]=0;while(1){if((c[w>>2]|0)>=(c[c[r>>2]>>2]|0))break a;if((c[(c[u>>2]|0)+28>>2]|0)==(c[(c[p>>2]|0)+44>>2]|0))break;c[w>>2]=(c[w>>2]|0)+1;c[p>>2]=(c[p>>2]|0)+72}c[m>>2]=c[(c[x>>2]|0)+28>>2];c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[(c[x>>2]|0)+32>>2]|0))break;if((c[(c[m>>2]|0)+4>>2]|0)==(c[(c[u>>2]|0)+28>>2]|0)?(c[(c[m>>2]|0)+8>>2]|0)==(b[(c[u>>2]|0)+32>>1]|0):0)break;c[k>>2]=(c[k>>2]|0)+1;c[m>>2]=(c[m>>2]|0)+24}if((c[k>>2]|0)>=(c[(c[x>>2]|0)+32>>2]|0)?(y=AG(c[c[z>>2]>>2]|0,c[x>>2]|0)|0,c[k>>2]=y,(y|0)>=0):0){c[m>>2]=(c[(c[x>>2]|0)+28>>2]|0)+((c[k>>2]|0)*24|0);c[c[m>>2]>>2]=c[(c[u>>2]|0)+44>>2];c[(c[m>>2]|0)+4>>2]=c[(c[u>>2]|0)+28>>2];c[(c[m>>2]|0)+8>>2]=b[(c[u>>2]|0)+32>>1];y=(c[z>>2]|0)+76|0;z=(c[y>>2]|0)+1|0;c[y>>2]=z;c[(c[m>>2]|0)+16>>2]=z;c[(c[m>>2]|0)+12>>2]=-1;c[(c[m>>2]|0)+20>>2]=c[u>>2];b:do if(c[(c[x>>2]|0)+24>>2]|0){c[o>>2]=c[(c[x>>2]|0)+24>>2];c[s>>2]=c[(c[o>>2]|0)+4>>2];c[l>>2]=c[c[o>>2]>>2];c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[l>>2]|0))break b;c[n>>2]=c[c[s>>2]>>2];if(((d[c[n>>2]>>0]|0)==152?(c[(c[n>>2]|0)+28>>2]|0)==(c[(c[u>>2]|0)+28>>2]|0):0)?(b[(c[n>>2]|0)+32>>1]|0)==(b[(c[u>>2]|0)+32>>1]|0):0)break;c[j>>2]=(c[j>>2]|0)+1;c[s>>2]=(c[s>>2]|0)+20}c[(c[m>>2]|0)+12>>2]=c[j>>2]}while(0);if((c[(c[m>>2]|0)+12>>2]|0)<0){y=(c[x>>2]|0)+12|0;z=c[y>>2]|0;c[y>>2]=z+1;c[(c[m>>2]|0)+12>>2]=z}}c[(c[u>>2]|0)+40>>2]=c[x>>2];a[c[u>>2]>>0]=-102;b[(c[u>>2]|0)+34>>1]=c[k>>2]}while(0);c[t>>2]=1;z=c[t>>2]|0;i=A;return z|0}case 153:{if((e[(c[q>>2]|0)+28>>1]&8|0)==0?(c[(c[h>>2]|0)+16>>2]|0)==(d[(c[u>>2]|0)+38>>0]|0):0){c[y>>2]=c[(c[x>>2]|0)+40>>2];c[w>>2]=0;while(1){if((c[w>>2]|0)>=(c[(c[x>>2]|0)+44>>2]|0))break;if(!(py(c[c[y>>2]>>2]|0,c[u>>2]|0,-1)|0))break;c[w>>2]=(c[w>>2]|0)+1;c[y>>2]=(c[y>>2]|0)+16}do if((c[w>>2]|0)>=(c[(c[x>>2]|0)+44>>2]|0)?(a[v>>0]=a[(c[c[z>>2]>>2]|0)+62>>0]|0,c[w>>2]=BG(c[c[z>>2]>>2]|0,c[x>>2]|0)|0,(c[w>>2]|0)>=0):0){c[y>>2]=(c[(c[x>>2]|0)+40>>2]|0)+(c[w>>2]<<4);c[c[y>>2]>>2]=c[u>>2];j=(c[z>>2]|0)+76|0;h=(c[j>>2]|0)+1|0;c[j>>2]=h;c[(c[y>>2]|0)+8>>2]=h;h=c[c[z>>2]>>2]|0;j=c[(c[u>>2]|0)+8>>2]|0;k=If(c[(c[u>>2]|0)+8>>2]|0)|0;if(c[(c[u>>2]|0)+20>>2]|0)l=c[c[(c[u>>2]|0)+20>>2]>>2]|0;else l=0;v=gi(h,j,k,l,a[v>>0]|0,0)|0;c[(c[y>>2]|0)+4>>2]=v;if(c[(c[u>>2]|0)+4>>2]&16){v=(c[z>>2]|0)+72|0;z=c[v>>2]|0;c[v>>2]=z+1;c[(c[y>>2]|0)+12>>2]=z;break}else{c[(c[y>>2]|0)+12>>2]=-1;break}}while(0);b[(c[u>>2]|0)+34>>1]=c[w>>2];c[(c[u>>2]|0)+40>>2]=c[x>>2];c[t>>2]=1;z=c[t>>2]|0;i=A;return z|0}c[t>>2]=0;z=c[t>>2]|0;i=A;return z|0}default:{c[t>>2]=0;z=c[t>>2]|0;i=A;return z|0}}return 0}function zG(a,b){a=a|0;b=b|0;var d=0;d=i;i=i+16|0;c[d+4>>2]=a;c[d>>2]=b;i=d;return 0}function AG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+16|0;g=e+8|0;f=e+4|0;d=e;c[g>>2]=a;c[f>>2]=b;b=rC(c[g>>2]|0,c[(c[f>>2]|0)+28>>2]|0,24,(c[f>>2]|0)+32|0,d)|0;c[(c[f>>2]|0)+28>>2]=b;i=e;return c[d>>2]|0}function BG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+16|0;g=e+8|0;f=e+4|0;d=e;c[g>>2]=a;c[f>>2]=b;b=rC(c[g>>2]|0,c[(c[f>>2]|0)+40>>2]|0,16,(c[f>>2]|0)+44|0,d)|0;c[(c[f>>2]|0)+40>>2]=b;i=e;return c[d>>2]|0}function CG(b,f,g,h,j,k,l){b=b|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;J=i;i=i+96|0;r=J+88|0;s=J+84|0;m=J+80|0;n=J+76|0;o=J+72|0;t=J+68|0;p=J+64|0;I=J+60|0;x=J+56|0;z=J+52|0;q=J+48|0;F=J+44|0;H=J+40|0;B=J+36|0;C=J+32|0;y=J+28|0;G=J+24|0;v=J+20|0;w=J+16|0;E=J+12|0;A=J+8|0;D=J+4|0;u=J;c[r>>2]=b;c[s>>2]=f;c[m>>2]=g;c[n>>2]=h;c[o>>2]=j;c[t>>2]=k;c[p>>2]=l;c[I>>2]=c[(c[r>>2]|0)+8>>2];c[x>>2]=(d[(c[s>>2]|0)+28>>0]&1|0)==0&1;c[z>>2]=c[c[c[s>>2]>>2]>>2];c[q>>2]=(c[z>>2]|0)+(c[x>>2]|0)+(c[t>>2]|0);h=(c[r>>2]|0)+76|0;j=(c[h>>2]|0)+1|0;c[h>>2]=j;c[H>>2]=j;c[B>>2]=c[(c[s>>2]|0)+4>>2];if(c[p>>2]|0)c[F>>2]=(c[n>>2]|0)-(c[z>>2]|0)-(c[x>>2]|0);else{c[F>>2]=(c[(c[r>>2]|0)+76>>2]|0)+1;j=(c[r>>2]|0)+76|0;c[j>>2]=(c[j>>2]|0)+(c[q>>2]|0)}k=c[m>>2]|0;if(c[(c[m>>2]|0)+12>>2]|0)k=(c[k+12>>2]|0)+1|0;else k=c[k+8>>2]|0;c[y>>2]=k;m=Cz(c[I>>2]|0)|0;c[(c[s>>2]|0)+24>>2]=m;GA(c[r>>2]|0,c[c[s>>2]>>2]|0,c[F>>2]|0,c[o>>2]|0,5)|0;if(c[x>>2]|0)Rw(c[I>>2]|0,73,c[(c[s>>2]|0)+8>>2]|0,(c[F>>2]|0)+(c[z>>2]|0)|0)|0;if(!(c[p>>2]|0))mG(c[r>>2]|0,c[n>>2]|0,(c[F>>2]|0)+(c[z>>2]|0)+(c[x>>2]|0)|0,c[t>>2]|0);Vw(c[I>>2]|0,49,(c[F>>2]|0)+(c[B>>2]|0)|0,(c[q>>2]|0)-(c[B>>2]|0)|0,c[H>>2]|0)|0;if((c[B>>2]|0)>0){c[G>>2]=(c[(c[r>>2]|0)+76>>2]|0)+1;k=(c[r>>2]|0)+76|0;c[k>>2]=(c[k>>2]|0)+(c[(c[s>>2]|0)+4>>2]|0);c[A>>2]=(c[z>>2]|0)-(c[(c[s>>2]|0)+4>>2]|0)+(c[x>>2]|0);k=c[I>>2]|0;if(c[x>>2]|0)c[v>>2]=xz(k,46,(c[F>>2]|0)+(c[z>>2]|0)|0)|0;else c[v>>2]=xz(k,59,c[(c[s>>2]|0)+8>>2]|0)|0;Vw(c[I>>2]|0,42,c[G>>2]|0,c[F>>2]|0,c[(c[s>>2]|0)+4>>2]|0)|0;c[E>>2]=Mz(c[I>>2]|0,c[(c[s>>2]|0)+20>>2]|0)|0;if(a[(c[c[r>>2]>>2]|0)+65>>0]|0){i=J;return}c[(c[E>>2]|0)+8>>2]=(c[A>>2]|0)+(c[t>>2]|0);c[D>>2]=c[(c[E>>2]|0)+16>>2];kR(c[(c[D>>2]|0)+16>>2]|0,0,e[(c[D>>2]|0)+6>>1]|0)|0;Ih(c[I>>2]|0,-1,c[D>>2]|0,-6);D=$F(c[r>>2]|0,c[c[s>>2]>>2]|0,c[B>>2]|0,(e[(c[D>>2]|0)+8>>1]|0)-1|0)|0;c[(c[E>>2]|0)+16>>2]=D;c[w>>2]=Bz(c[I>>2]|0)|0;Vw(c[I>>2]|0,43,(c[w>>2]|0)+1|0,0,(c[w>>2]|0)+1|0)|0;D=Cz(c[I>>2]|0)|0;c[(c[s>>2]|0)+16>>2]=D;D=(c[r>>2]|0)+76|0;E=(c[D>>2]|0)+1|0;c[D>>2]=E;c[(c[s>>2]|0)+12>>2]=E;Rw(c[I>>2]|0,14,c[(c[s>>2]|0)+12>>2]|0,c[(c[s>>2]|0)+16>>2]|0)|0;xz(c[I>>2]|0,120,c[(c[s>>2]|0)+8>>2]|0)|0;if(c[y>>2]|0)Rw(c[I>>2]|0,46,c[y>>2]|0,c[(c[s>>2]|0)+24>>2]|0)|0;Fz(c[I>>2]|0,c[v>>2]|0);mG(c[r>>2]|0,c[F>>2]|0,c[G>>2]|0,c[(c[s>>2]|0)+4>>2]|0);Fz(c[I>>2]|0,c[w>>2]|0)}if(d[(c[s>>2]|0)+28>>0]&1)c[C>>2]=109;else c[C>>2]=110;Rw(c[I>>2]|0,c[C>>2]|0,c[(c[s>>2]|0)+8>>2]|0,c[H>>2]|0)|0;if(!(c[y>>2]|0)){i=J;return}c[u>>2]=Vw(c[I>>2]|0,140,c[y>>2]|0,0,1)|0;xz(c[I>>2]|0,105,c[(c[s>>2]|0)+8>>2]|0)|0;xz(c[I>>2]|0,95,c[(c[s>>2]|0)+8>>2]|0)|0;Fz(c[I>>2]|0,c[u>>2]|0);i=J;return}function DG(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+32|0;m=q+20|0;j=q+16|0;n=q+12|0;o=q+8|0;p=q+4|0;k=q;c[j>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;if(!(c[n>>2]|0)){c[m>>2]=0;p=c[m>>2]|0;i=q;return p|0}do if((d[c[n>>2]>>0]|0)==152?(c[(c[n>>2]|0)+28>>2]|0)==(c[o>>2]|0):0)if((b[(c[n>>2]|0)+32>>1]|0)<0){a[c[n>>2]>>0]=101;break}else{c[k>>2]=ny(c[j>>2]|0,c[(c[(c[p>>2]|0)+4>>2]|0)+((b[(c[n>>2]|0)+32>>1]|0)*20|0)>>2]|0,0)|0;Zu(c[j>>2]|0,c[n>>2]|0);c[n>>2]=c[k>>2];break}else l=8;while(0);do if((l|0)==8){e=DG(c[j>>2]|0,c[(c[n>>2]|0)+12>>2]|0,c[o>>2]|0,c[p>>2]|0)|0;c[(c[n>>2]|0)+12>>2]=e;e=DG(c[j>>2]|0,c[(c[n>>2]|0)+16>>2]|0,c[o>>2]|0,c[p>>2]|0)|0;c[(c[n>>2]|0)+16>>2]=e;j=c[j>>2]|0;e=(c[n>>2]|0)+20|0;if(c[(c[n>>2]|0)+4>>2]&2048){EG(j,c[e>>2]|0,c[o>>2]|0,c[p>>2]|0,1);break}else{FG(j,c[e>>2]|0,c[o>>2]|0,c[p>>2]|0);break}}while(0);c[m>>2]=c[n>>2];p=c[m>>2]|0;i=q;return p|0}function EG(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+32|0;h=q+28|0;j=q+24|0;k=q+20|0;l=q+16|0;m=q+12|0;p=q+8|0;o=q+4|0;n=q;c[h>>2]=a;c[j>>2]=b;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;if(!(c[j>>2]|0)){i=q;return}while(1){FG(c[h>>2]|0,c[c[j>>2]>>2]|0,c[k>>2]|0,c[l>>2]|0);FG(c[h>>2]|0,c[(c[j>>2]|0)+40>>2]|0,c[k>>2]|0,c[l>>2]|0);FG(c[h>>2]|0,c[(c[j>>2]|0)+48>>2]|0,c[k>>2]|0,c[l>>2]|0);f=DG(c[h>>2]|0,c[(c[j>>2]|0)+44>>2]|0,c[k>>2]|0,c[l>>2]|0)|0;c[(c[j>>2]|0)+44>>2]=f;f=DG(c[h>>2]|0,c[(c[j>>2]|0)+36>>2]|0,c[k>>2]|0,c[l>>2]|0)|0;c[(c[j>>2]|0)+36>>2]=f;c[p>>2]=c[(c[j>>2]|0)+32>>2];c[n>>2]=c[c[p>>2]>>2];c[o>>2]=(c[p>>2]|0)+8;while(1){if((c[n>>2]|0)<=0)break;EG(c[h>>2]|0,c[(c[o>>2]|0)+20>>2]|0,c[k>>2]|0,c[l>>2]|0,1);if((d[(c[o>>2]|0)+36+1>>0]|0)>>>2&1)FG(c[h>>2]|0,c[(c[o>>2]|0)+64>>2]|0,c[k>>2]|0,c[l>>2]|0);c[n>>2]=(c[n>>2]|0)+-1;c[o>>2]=(c[o>>2]|0)+72}if(!(c[m>>2]|0)){h=9;break}f=c[(c[j>>2]|0)+52>>2]|0;c[j>>2]=f;if(!f){h=9;break}}if((h|0)==9){i=q;return}}function FG(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;f=l+16|0;g=l+12|0;h=l+8|0;j=l+4|0;k=l;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;if(!(c[g>>2]|0)){i=l;return}c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[c[g>>2]>>2]|0))break;b=DG(c[f>>2]|0,c[(c[(c[g>>2]|0)+4>>2]|0)+((c[k>>2]|0)*20|0)>>2]|0,c[h>>2]|0,c[j>>2]|0)|0;c[(c[(c[g>>2]|0)+4>>2]|0)+((c[k>>2]|0)*20|0)>>2]=b;c[k>>2]=(c[k>>2]|0)+1}i=l;return}function GG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;e=l+20|0;f=l+16|0;g=l+12|0;j=l+8|0;h=l+4|0;k=l;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[h>>2]=1;c[k>>2]=0;while(1){if(!(c[(c[f>>2]|0)+52>>2]|0))break;c[f>>2]=c[(c[f>>2]|0)+52>>2];c[h>>2]=(c[h>>2]|0)+1}while(1){if(!(c[f>>2]|0)){e=7;break}c[j>>2]=c[(c[f>>2]|0)+52>>2];c[(c[f>>2]|0)+52>>2]=0;c[k>>2]=Cv(c[e>>2]|0,c[f>>2]|0,c[g>>2]|0)|0;c[(c[f>>2]|0)+52>>2]=c[j>>2];if(c[k>>2]|0){e=7;break}d=c[h>>2]|0;a=(c[f>>2]|0)+24|0;c[a>>2]=d;c[a+4>>2]=((d|0)<0)<<31>>31;c[f>>2]=c[(c[f>>2]|0)+56>>2]}if((e|0)==7){i=l;return c[k>>2]|0}return 0}function HG(a,f,g){a=a|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;I=i;i=i+128|0;H=I;q=I+112|0;r=I+108|0;s=I+104|0;j=I+100|0;n=I+96|0;G=I+92|0;C=I+88|0;v=I+84|0;u=I+80|0;t=I+76|0;x=I+72|0;D=I+68|0;y=I+64|0;m=I+60|0;l=I+56|0;w=I+36|0;h=I+32|0;p=I+28|0;B=I+24|0;z=I+20|0;A=I+16|0;E=I+12|0;F=I+8|0;o=I+4|0;c[q>>2]=a;c[r>>2]=f;c[s>>2]=g;c[j>>2]=c[(c[r>>2]|0)+32>>2];c[n>>2]=c[c[c[r>>2]>>2]>>2];c[G>>2]=c[(c[q>>2]|0)+8>>2];c[C>>2]=c[(c[r>>2]|0)+52>>2];c[x>>2]=0;c[m>>2]=0;c[l>>2]=5;if(Mw(c[q>>2]|0,33,0,0,0)|0){i=I;return}c[t>>2]=Cz(c[G>>2]|0)|0;aG(c[q>>2]|0,c[r>>2]|0,c[t>>2]|0);c[z>>2]=c[(c[r>>2]|0)+60>>2];c[A>>2]=c[(c[r>>2]|0)+64>>2];c[E>>2]=c[(c[r>>2]|0)+8>>2];c[F>>2]=c[(c[r>>2]|0)+12>>2];c[(c[r>>2]|0)+64>>2]=0;c[(c[r>>2]|0)+60>>2]=0;c[(c[r>>2]|0)+12>>2]=0;c[(c[r>>2]|0)+8>>2]=0;c[B>>2]=c[(c[r>>2]|0)+48>>2];c[h>>2]=0;while(1){if((c[h>>2]|0)>=(c[c[j>>2]>>2]|0))break;f=c[h>>2]|0;if((d[(c[j>>2]|0)+8+((c[h>>2]|0)*72|0)+36+1>>0]|0)>>>5&1){k=5;break}c[h>>2]=f+1}if((k|0)==5)c[x>>2]=c[(c[j>>2]|0)+8+(f*72|0)+44>>2];k=(c[q>>2]|0)+72|0;f=c[k>>2]|0;c[k>>2]=f+1;c[y>>2]=f;f=(c[B>>2]|0)!=0;if((d[(c[r>>2]|0)+4>>0]|0|0)==115){c[l>>2]=f?8:6;j=(c[q>>2]|0)+72|0;k=c[j>>2]|0;c[j>>2]=k+1;c[m>>2]=k}else c[l>>2]=f?7:5;ZA(w,c[l>>2]|0,c[y>>2]|0);k=(c[q>>2]|0)+76|0;l=(c[k>>2]|0)+1|0;c[k>>2]=l;c[D>>2]=l;Vw(c[G>>2]|0,60,c[x>>2]|0,c[D>>2]|0,c[n>>2]|0)|0;if(c[B>>2]|0){c[o>>2]=LG(c[q>>2]|0,c[r>>2]|0,1)|0;Uw(c[G>>2]|0,57,c[y>>2]|0,(c[c[B>>2]>>2]|0)+2|0,0,c[o>>2]|0,-6)|0;c[w+16>>2]=c[B>>2]}else Rw(c[G>>2]|0,57,c[y>>2]|0,c[n>>2]|0)|0;if(c[m>>2]|0){o=Rw(c[G>>2]|0,57,c[m>>2]|0,0)|0;c[(c[r>>2]|0)+16>>2]=o;o=(c[r>>2]|0)+6|0;b[o>>1]=e[o>>1]|0|16}c[(c[r>>2]|0)+48>>2]=0;c[(c[C>>2]|0)+56>>2]=0;c[p>>2]=Cv(c[q>>2]|0,c[C>>2]|0,w)|0;c[(c[C>>2]|0)+56>>2]=c[r>>2];if(!(c[p>>2]|0)){c[v>>2]=Rw(c[G>>2]|0,108,c[y>>2]|0,c[t>>2]|0)|0;xz(c[G>>2]|0,104,c[x>>2]|0)|0;f=c[G>>2]|0;g=c[y>>2]|0;if(c[B>>2]|0)Vw(f,47,g,(c[c[B>>2]>>2]|0)+1|0,c[D>>2]|0)|0;else Rw(f,102,g,c[D>>2]|0)|0;xz(c[G>>2]|0,95,c[y>>2]|0)|0;c[u>>2]=Cz(c[G>>2]|0)|0;wG(c[G>>2]|0,c[F>>2]|0,c[u>>2]|0);hG(c[q>>2]|0,c[r>>2]|0,c[c[r>>2]>>2]|0,c[x>>2]|0,0,0,c[s>>2]|0,c[u>>2]|0,c[t>>2]|0);if(c[E>>2]|0)Rw(c[G>>2]|0,141,c[E>>2]|0,c[t>>2]|0)|0;Gz(c[G>>2]|0,c[u>>2]|0);if((e[(c[r>>2]|0)+6>>1]|0)&8)Ah(c[q>>2]|0,36805,H);else{c[(c[r>>2]|0)+52>>2]=0;Cv(c[q>>2]|0,c[r>>2]|0,w)|0;c[(c[r>>2]|0)+52>>2]=c[C>>2]}Ez(c[G>>2]|0,c[v>>2]|0)|0;Gz(c[G>>2]|0,c[t>>2]|0)}Vu(c[c[q>>2]>>2]|0,c[(c[r>>2]|0)+48>>2]|0);c[(c[r>>2]|0)+48>>2]=c[B>>2];c[(c[r>>2]|0)+60>>2]=c[z>>2];c[(c[r>>2]|0)+64>>2]=c[A>>2];i=I;return}function IG(f,g,h){f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0;ca=i;i=i+224|0;q=ca+212|0;r=ca+208|0;s=ca+204|0;t=ca+200|0;j=ca+196|0;k=ca+192|0;T=ca+188|0;ba=ca+184|0;I=ca+164|0;J=ca+144|0;U=ca+140|0;V=ca+136|0;F=ca+132|0;G=ca+128|0;Y=ca+124|0;Z=ca+120|0;D=ca+116|0;E=ca+112|0;z=ca+108|0;A=ca+104|0;B=ca+100|0;y=ca+96|0;w=ca+92|0;x=ca+88|0;W=ca+84|0;X=ca+80|0;_=ca+76|0;$=ca+72|0;aa=ca+68|0;M=ca+64|0;N=ca+60|0;v=ca+56|0;P=ca+52|0;R=ca+48|0;S=ca+44|0;H=ca+40|0;p=ca+36|0;O=ca+32|0;u=ca+28|0;K=ca+24|0;L=ca+20|0;m=ca+16|0;o=ca+12|0;n=ca+8|0;l=ca+4|0;Q=ca;c[r>>2]=f;c[s>>2]=g;c[t>>2]=h;c[E>>2]=0;c[R>>2]=0;c[H>>2]=c[c[r>>2]>>2];c[ba>>2]=c[(c[r>>2]|0)+8>>2];c[N>>2]=Cz(c[ba>>2]|0)|0;c[M>>2]=Cz(c[ba>>2]|0)|0;c[P>>2]=d[(c[s>>2]|0)+4>>0];c[T>>2]=c[(c[s>>2]|0)+52>>2];c[p>>2]=c[(c[s>>2]|0)+48>>2];c[O>>2]=c[c[p>>2]>>2];a:do if((c[P>>2]|0)!=116){c[j>>2]=1;while(1){if(d[(c[H>>2]|0)+65>>0]|0)break a;if((c[j>>2]|0)>(c[c[c[s>>2]>>2]>>2]|0))break a;c[k>>2]=0;c[m>>2]=c[(c[p>>2]|0)+4>>2];while(1){if((c[k>>2]|0)>=(c[O>>2]|0))break;if((e[(c[m>>2]|0)+16>>1]|0|0)==(c[j>>2]|0))break;c[k>>2]=(c[k>>2]|0)+1;c[m>>2]=(c[m>>2]|0)+20}if((c[k>>2]|0)==(c[O>>2]|0)){c[o>>2]=Jv(c[H>>2]|0,132,0)|0;if(!(c[o>>2]|0))break;f=(c[o>>2]|0)+4|0;c[f>>2]=c[f>>2]|1024;c[(c[o>>2]|0)+8>>2]=c[j>>2];c[p>>2]=Gv(c[r>>2]|0,c[p>>2]|0,c[o>>2]|0)|0;if(c[p>>2]|0){h=c[j>>2]&65535;f=c[O>>2]|0;c[O>>2]=f+1;b[(c[(c[p>>2]|0)+4>>2]|0)+(f*20|0)+16>>1]=h}}c[j>>2]=(c[j>>2]|0)+1}c[q>>2]=7;ba=c[q>>2]|0;i=ca;return ba|0}while(0);c[u>>2]=Fw(c[H>>2]|0,(c[O>>2]|0)+1<<2,0)|0;if(c[u>>2]|0){c[c[u>>2]>>2]=c[O>>2];c[j>>2]=1;c[n>>2]=c[(c[p>>2]|0)+4>>2];while(1){if((c[j>>2]|0)>(c[O>>2]|0))break;c[(c[u>>2]|0)+(c[j>>2]<<2)>>2]=(e[(c[n>>2]|0)+16>>1]|0)-1;c[j>>2]=(c[j>>2]|0)+1;c[n>>2]=(c[n>>2]|0)+20}c[S>>2]=LG(c[r>>2]|0,c[s>>2]|0,1)|0}else c[S>>2]=0;c[(c[s>>2]|0)+48>>2]=c[p>>2];f=vy(c[c[r>>2]>>2]|0,c[p>>2]|0,0)|0;c[(c[T>>2]|0)+48>>2]=f;b:do if((c[P>>2]|0)!=116){c[l>>2]=c[c[c[s>>2]>>2]>>2];c[_>>2]=(c[(c[r>>2]|0)+76>>2]|0)+1;f=(c[r>>2]|0)+76|0;c[f>>2]=(c[f>>2]|0)+((c[l>>2]|0)+1);Rw(c[ba>>2]|0,22,0,c[_>>2]|0)|0;c[R>>2]=Qz(c[H>>2]|0,c[l>>2]|0,1)|0;if(c[R>>2]|0){c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[l>>2]|0))break b;f=KG(c[r>>2]|0,c[s>>2]|0,c[j>>2]|0)|0;c[(c[R>>2]|0)+20+(c[j>>2]<<2)>>2]=f;a[(c[(c[R>>2]|0)+16>>2]|0)+(c[j>>2]|0)>>0]=0;c[j>>2]=(c[j>>2]|0)+1}}}else c[_>>2]=0;while(0);c[(c[s>>2]|0)+52>>2]=0;c[(c[T>>2]|0)+56>>2]=0;yy(c[r>>2]|0,c[s>>2]|0,c[(c[s>>2]|0)+48>>2]|0,29962)|0;if(!(c[(c[T>>2]|0)+52>>2]|0))yy(c[r>>2]|0,c[T>>2]|0,c[(c[T>>2]|0)+48>>2]|0,29962)|0;aG(c[r>>2]|0,c[s>>2]|0,c[N>>2]|0);if((c[P>>2]|0)==116?(c[(c[s>>2]|0)+8>>2]|0)!=0:0){j=(c[r>>2]|0)+76|0;f=(c[j>>2]|0)+1|0;c[j>>2]=f;c[W>>2]=f;f=(c[r>>2]|0)+76|0;j=(c[f>>2]|0)+1|0;c[f>>2]=j;c[X>>2]=j;j=c[s>>2]|0;if(c[(c[s>>2]|0)+12>>2]|0)j=(c[j+12>>2]|0)+1|0;else j=c[j+8>>2]|0;Rw(c[ba>>2]|0,30,j,c[W>>2]|0)|0;Rw(c[ba>>2]|0,30,c[W>>2]|0,c[X>>2]|0)|0}else{c[X>>2]=0;c[W>>2]=0}Zu(c[H>>2]|0,c[(c[s>>2]|0)+60>>2]|0);c[(c[s>>2]|0)+60>>2]=0;Zu(c[H>>2]|0,c[(c[s>>2]|0)+64>>2]|0);c[(c[s>>2]|0)+64>>2]=0;f=(c[r>>2]|0)+76|0;p=(c[f>>2]|0)+1|0;c[f>>2]=p;c[U>>2]=p;p=(c[r>>2]|0)+76|0;f=(c[p>>2]|0)+1|0;c[p>>2]=f;c[V>>2]=f;f=(c[r>>2]|0)+76|0;p=(c[f>>2]|0)+1|0;c[f>>2]=p;c[Y>>2]=p;p=(c[r>>2]|0)+76|0;f=(c[p>>2]|0)+1|0;c[p>>2]=f;c[Z>>2]=f;ZA(I,13,c[U>>2]|0);ZA(J,13,c[V>>2]|0);c[F>>2]=(Bz(c[ba>>2]|0)|0)+1;c[v>>2]=Vw(c[ba>>2]|0,16,c[U>>2]|0,0,c[F>>2]|0)|0;c[(c[T>>2]|0)+8>>2]=c[W>>2];c[K>>2]=c[(c[r>>2]|0)+472>>2];Cv(c[r>>2]|0,c[T>>2]|0,I)|0;xC(c[ba>>2]|0,c[U>>2]|0);Fz(c[ba>>2]|0,c[v>>2]|0);c[G>>2]=(Bz(c[ba>>2]|0)|0)+1;c[v>>2]=Vw(c[ba>>2]|0,16,c[V>>2]|0,0,c[G>>2]|0)|0;c[$>>2]=c[(c[s>>2]|0)+8>>2];c[aa>>2]=c[(c[s>>2]|0)+12>>2];c[(c[s>>2]|0)+8>>2]=c[X>>2];c[(c[s>>2]|0)+12>>2]=0;c[L>>2]=c[(c[r>>2]|0)+472>>2];Cv(c[r>>2]|0,c[s>>2]|0,J)|0;c[(c[s>>2]|0)+8>>2]=c[$>>2];c[(c[s>>2]|0)+12>>2]=c[aa>>2];xC(c[ba>>2]|0,c[V>>2]|0);c[D>>2]=MG(c[r>>2]|0,c[s>>2]|0,I,c[t>>2]|0,c[Y>>2]|0,c[_>>2]|0,c[R>>2]|0,c[N>>2]|0)|0;if((c[P>>2]|0)==116|(c[P>>2]|0)==115)c[E>>2]=MG(c[r>>2]|0,c[s>>2]|0,J,c[t>>2]|0,c[Z>>2]|0,c[_>>2]|0,c[R>>2]|0,c[N>>2]|0)|0;Rz(c[R>>2]|0);if((c[P>>2]|0)==117|(c[P>>2]|0)==118){aa=c[N>>2]|0;c[z>>2]=aa;c[A>>2]=aa}else{c[z>>2]=Rw(c[ba>>2]|0,14,c[Z>>2]|0,c[E>>2]|0)|0;c[A>>2]=Rw(c[ba>>2]|0,18,c[V>>2]|0,c[N>>2]|0)|0;Ez(c[ba>>2]|0,c[z>>2]|0)|0;$=(c[T>>2]|0)+24|0;aa=(c[s>>2]|0)+24|0;_=aa;$=gR(c[_>>2]|0,c[_+4>>2]|0,c[$>>2]|0,c[$+4>>2]|0)|0;c[aa>>2]=$;c[aa+4>>2]=C}if((c[P>>2]|0)==118){c[B>>2]=c[z>>2];$=(c[s>>2]|0)+24|0;X=c[$+4>>2]|0;aa=(c[T>>2]|0)+24|0;_=c[aa+4>>2]|0;if(X>>>0>_>>>0|((X|0)==(_|0)?(c[$>>2]|0)>>>0>(c[aa>>2]|0)>>>0:0)){_=(c[T>>2]|0)+24|0;$=c[_+4>>2]|0;aa=(c[s>>2]|0)+24|0;c[aa>>2]=c[_>>2];c[aa+4>>2]=$}}else{c[B>>2]=Rw(c[ba>>2]|0,14,c[Y>>2]|0,c[D>>2]|0)|0;Rw(c[ba>>2]|0,18,c[U>>2]|0,c[N>>2]|0)|0;Ez(c[ba>>2]|0,c[B>>2]|0)|0}c[y>>2]=Rw(c[ba>>2]|0,14,c[Y>>2]|0,c[D>>2]|0)|0;Rw(c[ba>>2]|0,18,c[U>>2]|0,c[z>>2]|0)|0;Ez(c[ba>>2]|0,c[M>>2]|0)|0;do if((c[P>>2]|0)!=116)if((c[P>>2]|0)==118){c[w>>2]=c[y>>2];c[y>>2]=(c[y>>2]|0)+1;break}else{c[w>>2]=Rw(c[ba>>2]|0,18,c[U>>2]|0,c[z>>2]|0)|0;Ez(c[ba>>2]|0,c[M>>2]|0)|0;break}else c[w>>2]=c[y>>2];while(0);c[x>>2]=Bz(c[ba>>2]|0)|0;if((c[P>>2]|0)==116|(c[P>>2]|0)==115)Rw(c[ba>>2]|0,14,c[Z>>2]|0,c[E>>2]|0)|0;Rw(c[ba>>2]|0,18,c[V>>2]|0,c[B>>2]|0)|0;Ez(c[ba>>2]|0,c[M>>2]|0)|0;Fz(c[ba>>2]|0,c[v>>2]|0);Rw(c[ba>>2]|0,18,c[U>>2]|0,c[A>>2]|0)|0;Rw(c[ba>>2]|0,18,c[V>>2]|0,c[B>>2]|0)|0;Gz(c[ba>>2]|0,c[M>>2]|0);Uw(c[ba>>2]|0,41,0,0,0,c[u>>2]|0,-15)|0;Uw(c[ba>>2]|0,42,c[I+8>>2]|0,c[J+8>>2]|0,c[O>>2]|0,c[S>>2]|0,-6)|0;Fh(c[ba>>2]|0,1);Vw(c[ba>>2]|0,43,c[y>>2]|0,c[w>>2]|0,c[x>>2]|0)|0;Gz(c[ba>>2]|0,c[N>>2]|0);if((d[c[t>>2]>>0]|0|0)==9){c[Q>>2]=c[T>>2];while(1){if(!(c[(c[Q>>2]|0)+52>>2]|0))break;c[Q>>2]=c[(c[Q>>2]|0)+52>>2]}uG(c[r>>2]|0,c[(c[Q>>2]|0)+32>>2]|0,c[c[Q>>2]>>2]|0)}if(c[(c[s>>2]|0)+52>>2]|0)Wu(c[H>>2]|0,c[(c[s>>2]|0)+52>>2]|0);c[(c[s>>2]|0)+52>>2]=c[T>>2];c[(c[T>>2]|0)+56>>2]=c[s>>2];JG(c[r>>2]|0,d[(c[s>>2]|0)+4>>0]|0,c[K>>2]|0,c[L>>2]|0,0);c[q>>2]=(c[(c[r>>2]|0)+68>>2]|0)!=0&1;ba=c[q>>2]|0;i=ca;return ba|0}function JG(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;o=q;h=q+40|0;j=q+36|0;k=q+32|0;l=q+28|0;m=q+24|0;n=q+20|0;p=q+16|0;c[h>>2]=a;c[j>>2]=b;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;if((d[(c[h>>2]|0)+453>>0]|0|0)!=2){i=q;return}c[n>>2]=c[(c[h>>2]|0)+8>>2];a=c[c[h>>2]>>2]|0;g=c[k>>2]|0;e=c[l>>2]|0;f=(c[m>>2]|0)!=0?36749:19266;b=xy(c[j>>2]|0)|0;c[o>>2]=g;c[o+4>>2]=e;c[o+8>>2]=f;c[o+12>>2]=b;c[p>>2]=Bh(a,36768,o)|0;Uw(c[n>>2]|0,161,c[(c[h>>2]|0)+468>>2]|0,0,0,c[p>>2]|0,-1)|0;i=q;return}function KG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;e=j+12|0;f=j+8|0;g=j+4|0;h=j;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;if(c[(c[f>>2]|0)+52>>2]|0)c[h>>2]=KG(c[e>>2]|0,c[(c[f>>2]|0)+52>>2]|0,c[g>>2]|0)|0;else c[h>>2]=0;if(c[h>>2]|0){h=c[h>>2]|0;i=j;return h|0}if((c[g>>2]|0)>=(c[c[c[f>>2]>>2]>>2]|0)){h=c[h>>2]|0;i=j;return h|0}c[h>>2]=Ox(c[e>>2]|0,c[(c[(c[c[f>>2]>>2]|0)+4>>2]|0)+((c[g>>2]|0)*20|0)>>2]|0)|0;h=c[h>>2]|0;i=j;return h|0}function LG(b,d,f){b=b|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;r=i;i=i+48|0;g=r+40|0;h=r+36|0;s=r+32|0;o=r+28|0;l=r+24|0;j=r+20|0;p=r+16|0;k=r+12|0;n=r+8|0;q=r+4|0;m=r;c[g>>2]=b;c[h>>2]=d;c[s>>2]=f;c[o>>2]=c[(c[h>>2]|0)+48>>2];c[l>>2]=c[c[(c[h>>2]|0)+48>>2]>>2];c[j>>2]=c[c[g>>2]>>2];c[p>>2]=Qz(c[j>>2]|0,(c[l>>2]|0)+(c[s>>2]|0)|0,1)|0;if(!(c[p>>2]|0)){s=c[p>>2]|0;i=r;return s|0}c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[l>>2]|0))break;c[n>>2]=(c[(c[o>>2]|0)+4>>2]|0)+((c[k>>2]|0)*20|0);c[q>>2]=c[c[n>>2]>>2];f=c[g>>2]|0;if(c[(c[q>>2]|0)+4>>2]&256)c[m>>2]=Ox(f,c[q>>2]|0)|0;else{c[m>>2]=KG(f,c[h>>2]|0,(e[(c[n>>2]|0)+16>>1]|0)-1|0)|0;if(!(c[m>>2]|0))c[m>>2]=c[(c[j>>2]|0)+8>>2];s=By(c[g>>2]|0,c[q>>2]|0,c[c[m>>2]>>2]|0)|0;c[(c[(c[o>>2]|0)+4>>2]|0)+((c[k>>2]|0)*20|0)>>2]=s}c[(c[p>>2]|0)+20+(c[k>>2]<<2)>>2]=c[m>>2];a[(c[(c[p>>2]|0)+16>>2]|0)+(c[k>>2]|0)>>0]=a[(c[(c[o>>2]|0)+4>>2]|0)+((c[k>>2]|0)*20|0)+12>>0]|0;c[k>>2]=(c[k>>2]|0)+1}s=c[p>>2]|0;i=r;return s|0}function MG(b,e,f,g,h,j,k,l){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+80|0;m=D+64|0;n=D+60|0;o=D+56|0;p=D+52|0;q=D+48|0;r=D+44|0;s=D+40|0;t=D+36|0;u=D+32|0;C=D+28|0;y=D+24|0;v=D+20|0;w=D+16|0;x=D+12|0;z=D+8|0;B=D+4|0;A=D;c[n>>2]=b;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=j;c[t>>2]=k;c[u>>2]=l;c[C>>2]=c[(c[n>>2]|0)+8>>2];c[v>>2]=Bz(c[C>>2]|0)|0;c[y>>2]=Cz(c[C>>2]|0)|0;if(c[s>>2]|0){c[w>>2]=xz(c[C>>2]|0,46,c[s>>2]|0)|0;k=c[C>>2]|0;b=c[(c[p>>2]|0)+8>>2]|0;j=(c[s>>2]|0)+1|0;h=c[(c[p>>2]|0)+12>>2]|0;c[x>>2]=Uw(k,42,b,j,h,Vz(c[t>>2]|0)|0,-6)|0;Vw(c[C>>2]|0,43,(c[x>>2]|0)+2|0,c[y>>2]|0,(c[x>>2]|0)+2|0)|0;Fz(c[C>>2]|0,c[w>>2]|0);Vw(c[C>>2]|0,30,c[(c[p>>2]|0)+8>>2]|0,(c[s>>2]|0)+1|0,(c[(c[p>>2]|0)+12>>2]|0)-1|0)|0;Rw(c[C>>2]|0,22,1,c[s>>2]|0)|0}if(a[(c[c[n>>2]>>2]|0)+65>>0]|0){c[m>>2]=0;C=c[m>>2]|0;i=D;return C|0}wG(c[C>>2]|0,c[(c[o>>2]|0)+12>>2]|0,c[y>>2]|0);switch(d[c[q>>2]>>0]|0){case 12:{c[z>>2]=Wz(c[n>>2]|0)|0;c[B>>2]=Wz(c[n>>2]|0)|0;Vw(c[C>>2]|0,49,c[(c[p>>2]|0)+8>>2]|0,c[(c[p>>2]|0)+12>>2]|0,c[z>>2]|0)|0;Rw(c[C>>2]|0,74,c[(c[q>>2]|0)+4>>2]|0,c[B>>2]|0)|0;Vw(c[C>>2]|0,75,c[(c[q>>2]|0)+4>>2]|0,c[z>>2]|0,c[B>>2]|0)|0;Fh(c[C>>2]|0,8);_z(c[n>>2]|0,c[B>>2]|0);_z(c[n>>2]|0,c[z>>2]|0);break}case 11:{h=SA(c[c[(c[c[o>>2]>>2]|0)+4>>2]>>2]|0,a[(c[q>>2]|0)+1>>0]|0)|0;a[(c[q>>2]|0)+1>>0]=h;c[A>>2]=Wz(c[n>>2]|0)|0;Uw(c[C>>2]|0,49,c[(c[p>>2]|0)+8>>2]|0,1,c[A>>2]|0,(c[q>>2]|0)+1|0,1)|0;CA(c[n>>2]|0,c[(c[p>>2]|0)+8>>2]|0,1);Rw(c[C>>2]|0,110,c[(c[q>>2]|0)+4>>2]|0,c[A>>2]|0)|0;_z(c[n>>2]|0,c[A>>2]|0);break}case 10:{mG(c[n>>2]|0,c[(c[p>>2]|0)+8>>2]|0,c[(c[q>>2]|0)+4>>2]|0,1);break}case 13:{if(!(c[(c[q>>2]|0)+8>>2]|0)){h=kA(c[n>>2]|0,c[(c[p>>2]|0)+12>>2]|0)|0;c[(c[q>>2]|0)+8>>2]=h;c[(c[q>>2]|0)+12>>2]=c[(c[p>>2]|0)+12>>2]}mG(c[n>>2]|0,c[(c[p>>2]|0)+8>>2]|0,c[(c[q>>2]|0)+8>>2]|0,c[(c[p>>2]|0)+12>>2]|0);xz(c[C>>2]|0,18,c[(c[q>>2]|0)+4>>2]|0)|0;break}default:{Rw(c[C>>2]|0,33,c[(c[p>>2]|0)+8>>2]|0,c[(c[p>>2]|0)+12>>2]|0)|0;CA(c[n>>2]|0,c[(c[p>>2]|0)+8>>2]|0,c[(c[p>>2]|0)+12>>2]|0)}}if(c[(c[o>>2]|0)+8>>2]|0)Rw(c[C>>2]|0,141,c[(c[o>>2]|0)+8>>2]|0,c[u>>2]|0)|0;Gz(c[C>>2]|0,c[y>>2]|0);xz(c[C>>2]|0,15,c[r>>2]|0)|0;c[m>>2]=c[v>>2];C=c[m>>2]|0;i=D;return C|0}function NG(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;g=o+24|0;h=o+20|0;j=o+16|0;k=o+12|0;l=o+8|0;n=o+4|0;m=o;c[g>>2]=b;c[h>>2]=e;c[j>>2]=f;c[k>>2]=c[c[g>>2]>>2];if(!(c[(c[k>>2]|0)+24>>2]&524288)){i=o;return}if((d[(c[j>>2]|0)+42>>0]|0)&16){i=o;return}if(c[(c[j>>2]|0)+12>>2]|0){i=o;return}c[l>>2]=0;c[n>>2]=Pw(c[g>>2]|0)|0;do if(!(Ex(c[j>>2]|0)|0)){c[m>>2]=c[(c[j>>2]|0)+16>>2];while(1){if(!(c[m>>2]|0))break;if(d[(c[m>>2]|0)+24>>0]|0)break;if(c[(c[k>>2]|0)+24>>2]&16777216)break;c[m>>2]=c[(c[m>>2]|0)+4>>2]}if(c[m>>2]|0){c[l>>2]=Cz(c[n>>2]|0)|0;Rw(c[n>>2]|0,136,1,c[l>>2]|0)|0;break}else{i=o;return}}while(0);a[(c[g>>2]|0)+442>>0]=1;f=c[g>>2]|0;Rv(f,lz(c[k>>2]|0,c[h>>2]|0,0)|0,0);a[(c[g>>2]|0)+442>>0]=0;if(!(c[(c[k>>2]|0)+24>>2]&16777216)){f=c[n>>2]|0;Rw(f,136,0,(Bz(c[n>>2]|0)|0)+2|0)|0;bA(c[g>>2]|0,787,2,0,-2,4)}if(!(c[l>>2]|0)){i=o;return}Gz(c[n>>2]|0,c[l>>2]|0);i=o;return}function OG(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+64|0;q=r+8|0;p=r;g=r+48|0;h=r+44|0;j=r+40|0;k=r+36|0;o=r+32|0;l=r+28|0;n=r+24|0;m=r+20|0;c[g>>2]=a;c[h>>2]=b;c[j>>2]=e;c[k>>2]=f;c[l>>2]=c[c[g>>2]>>2];c[m>>2]=(c[(c[l>>2]|0)+16>>2]|0)+(c[j>>2]<<4);c[o>>2]=Pw(c[g>>2]|0)|0;ax(c[g>>2]|0,1,c[j>>2]|0);if((d[(c[h>>2]|0)+42>>0]|0)&16)Yw(c[o>>2]|0,149)|0;c[n>>2]=fx(c[g>>2]|0,c[h>>2]|0)|0;while(1){if(!(c[n>>2]|0))break;AB(c[g>>2]|0,c[n>>2]|0);c[n>>2]=c[(c[n>>2]|0)+32>>2]}if((d[(c[h>>2]|0)+42>>0]|0)&8){n=c[g>>2]|0;b=c[c[h>>2]>>2]|0;c[p>>2]=c[c[m>>2]>>2];c[p+4>>2]=b;Ow(n,37066,p)}p=c[g>>2]|0;b=(c[j>>2]|0)==1?20769:20788;n=c[c[h>>2]>>2]|0;c[q>>2]=c[c[m>>2]>>2];c[q+4>>2]=b;c[q+8>>2]=n;Ow(p,37111,q);if((c[k>>2]|0)==0?((d[(c[h>>2]|0)+42>>0]|0)&16|0)==0:0)PG(c[g>>2]|0,c[h>>2]|0);if(!((d[(c[h>>2]|0)+42>>0]|0)&16)){o=c[o>>2]|0;p=c[j>>2]|0;q=c[h>>2]|0;q=c[q>>2]|0;Uw(o,125,p,0,0,q,0)|0;q=c[g>>2]|0;p=c[j>>2]|0;
  60. Qw(q,p);p=c[l>>2]|0;q=c[j>>2]|0;QG(p,q);i=r;return}Uw(c[o>>2]|0,151,c[j>>2]|0,0,0,c[c[h>>2]>>2]|0,0)|0;o=c[o>>2]|0;p=c[j>>2]|0;q=c[h>>2]|0;q=c[q>>2]|0;Uw(o,125,p,0,0,q,0)|0;q=c[g>>2]|0;p=c[j>>2]|0;Qw(q,p);p=c[l>>2]|0;q=c[j>>2]|0;QG(p,q);i=r;return}function PG(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;d=n+28|0;e=n+24|0;k=n+20|0;g=n+16|0;l=n+12|0;j=n+8|0;h=n+4|0;f=n;c[d>>2]=a;c[e>>2]=b;c[k>>2]=c[(c[e>>2]|0)+28>>2];c[g>>2]=0;while(1){c[j>>2]=0;if(!((c[g>>2]|0)!=0?(c[k>>2]|0)>=(c[g>>2]|0):0))c[j>>2]=c[k>>2];c[l>>2]=c[(c[e>>2]|0)+8>>2];while(1){if(!(c[l>>2]|0))break;c[h>>2]=c[(c[l>>2]|0)+44>>2];if(!((c[g>>2]|0)!=0?(c[h>>2]|0)>=(c[g>>2]|0):0))m=9;if((m|0)==9?(m=0,(c[h>>2]|0)>(c[j>>2]|0)):0)c[j>>2]=c[h>>2];c[l>>2]=c[(c[l>>2]|0)+20>>2]}if(!(c[j>>2]|0))break;c[f>>2]=Dh(c[c[d>>2]>>2]|0,c[(c[e>>2]|0)+64>>2]|0)|0;qC(c[d>>2]|0,c[j>>2]|0,c[f>>2]|0);c[g>>2]=c[j>>2]}i=n;return}function QG(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;f=k+12|0;g=k+8|0;h=k+4|0;j=k;c[f>>2]=a;c[g>>2]=d;if(((e[(c[(c[(c[f>>2]|0)+16>>2]|0)+(c[g>>2]<<4)+12>>2]|0)+78>>1]|0)&2|0)!=2){i=k;return}c[h>>2]=c[(c[(c[(c[f>>2]|0)+16>>2]|0)+(c[g>>2]<<4)+12>>2]|0)+8+8>>2];while(1){if(!(c[h>>2]|0))break;c[j>>2]=c[(c[h>>2]|0)+8>>2];if(c[(c[j>>2]|0)+12>>2]|0){RG(c[f>>2]|0,c[j>>2]|0);c[(c[j>>2]|0)+4>>2]=0;b[(c[j>>2]|0)+34>>1]=0}c[h>>2]=c[c[h>>2]>>2]}j=(c[(c[(c[f>>2]|0)+16>>2]|0)+(c[g>>2]<<4)+12>>2]|0)+78|0;b[j>>1]=(e[j>>1]|0)&-3;i=k;return}function RG(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;e=j+12|0;f=j+8|0;g=j+4|0;h=j;c[e>>2]=a;c[f>>2]=d;d=c[(c[f>>2]|0)+4>>2]|0;c[h>>2]=d;if(!d){i=j;return}c[g>>2]=0;while(1){a=c[e>>2]|0;if((c[g>>2]|0)>=(b[(c[f>>2]|0)+34>>1]|0))break;Sf(a,c[c[h>>2]>>2]|0);Zu(c[e>>2]|0,c[(c[h>>2]|0)+4>>2]|0);Sf(c[e>>2]|0,c[(c[h>>2]|0)+8>>2]|0);Sf(c[e>>2]|0,c[(c[h>>2]|0)+12>>2]|0);Sf(c[e>>2]|0,c[(c[h>>2]|0)+16>>2]|0);c[g>>2]=(c[g>>2]|0)+1;c[h>>2]=(c[h>>2]|0)+24}Sf(a,c[(c[f>>2]|0)+4>>2]|0);i=j;return}function SG(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+144|0;h=p+128|0;j=p+124|0;k=p+120|0;l=p+116|0;m=p+112|0;o=p;n=p+80|0;c[h>>2]=a;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;c[n+12>>2]=0;c[n+16>>2]=0;c[n+20>>2]=0;c[n+24>>2]=0;c[n+28>>2]=0;f=o;g=f+80|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));c[o>>2]=1;c[o+8+8>>2]=c[c[j>>2]>>2];c[o+8+16>>2]=c[j>>2];c[o+8+44>>2]=-1;c[n>>2]=c[h>>2];c[n+4>>2]=o;b[n+28>>1]=c[k>>2];o=(fy(n,c[l>>2]|0)|0)==0;if(!(o&(c[m>>2]|0)!=0)){i=p;return}gy(n,c[m>>2]|0)|0;i=p;return}function TG(b){b=b|0;var e=0,f=0;f=i;i=i+16|0;e=f;c[e>>2]=b;b=c[e>>2]|0;if((d[c[e>>2]>>0]|0|0)==97){a[b>>0]=27;i=f;return}if((d[b>>0]|0|0)!=95){i=f;return}if((d[c[(c[e>>2]|0)+12>>2]>>0]|0|0)!=97){i=f;return}a[c[(c[e>>2]|0)+12>>2]>>0]=27;i=f;return}function UG(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;j=k+12|0;f=k+8|0;g=k+4|0;h=k;c[f>>2]=a;c[g>>2]=d;c[h>>2]=e;while(1){e=c[g>>2]|0;c[g>>2]=e+-1;if((e|0)<=0){f=5;break}d=c[h>>2]|0;e=c[f>>2]|0;c[f>>2]=e+2;if((d|0)==(b[e>>1]|0)){f=4;break}}if((f|0)==4){c[j>>2]=1;j=c[j>>2]|0;i=k;return j|0}else if((f|0)==5){c[j>>2]=0;j=c[j>>2]|0;i=k;return j|0}return 0}function VG(a){a=a|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;f=l+12|0;j=l+8|0;h=l+4|0;g=l;k=l+16|0;c[f>>2]=a;c[j>>2]=0;c[g>>2]=c[(c[(c[f>>2]|0)+12>>2]|0)+4>>2];c[h>>2]=0;while(1){if((c[h>>2]|0)>=(e[(c[f>>2]|0)+52>>1]|0))break;b[k>>1]=b[(c[(c[f>>2]|0)+4>>2]|0)+(c[h>>2]<<1)>>1]|0;if((b[k>>1]|0)<0)a=1;else a=d[(c[g>>2]|0)+((b[(c[(c[f>>2]|0)+4>>2]|0)+(c[h>>2]<<1)>>1]|0)*24|0)+22>>0]|0;c[j>>2]=(c[j>>2]|0)+a;c[h>>2]=(c[h>>2]|0)+1}k=Hj(c[j>>2]<<2,0)|0;b[(c[f>>2]|0)+48>>1]=k;i=l;return}function WG(a,b){a=a|0;b=b|0;var e=0,f=0,g=0;g=i;i=i+16|0;e=g+4|0;f=g;c[e>>2]=a;c[f>>2]=b;XG(c[e>>2]|0,c[f>>2]|0);Zu(c[e>>2]|0,c[(c[f>>2]|0)+36>>2]|0);Vu(c[e>>2]|0,c[(c[f>>2]|0)+40>>2]|0);Sf(c[e>>2]|0,c[(c[f>>2]|0)+16>>2]|0);if(!((d[(c[f>>2]|0)+55>>0]|0)>>>4&1)){a=c[e>>2]|0;b=c[f>>2]|0;Sf(a,b);i=g;return}Sf(c[e>>2]|0,c[(c[f>>2]|0)+32>>2]|0);a=c[e>>2]|0;b=c[f>>2]|0;Sf(a,b);i=g;return}function XG(a,b){a=a|0;b=b|0;var d=0;d=i;i=i+16|0;c[d+4>>2]=a;c[d>>2]=b;i=d;return}function YG(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;h=f;g=f+4|0;c[h>>2]=b;a[g>>0]=e;b=$A(c[h>>2]|0,4+(d[g>>0]|0)|0,0)|0;i=f;return b|0}function ZG(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+64|0;h=v+52|0;j=v+48|0;q=v+44|0;s=v+40|0;p=v+36|0;l=v+32|0;n=v+28|0;k=v+24|0;t=v+20|0;r=v+16|0;m=v+8|0;o=v;c[h>>2]=f;c[j>>2]=g;c[k>>2]=c[c[h>>2]>>2];c[t>>2]=c[(c[h>>2]|0)+8>>2];if(c[(c[h>>2]|0)+424>>2]|0)bG(c[t>>2]|0,c[(c[h>>2]|0)+424>>2]|0,121);f=c[j>>2]|0;do if((b[(c[j>>2]|0)+32>>1]|0)>=0){Cy(m,c[(c[(c[j>>2]|0)+4>>2]|0)+((b[f+32>>1]|0)*24|0)>>2]|0);t=c[h>>2]|0;c[r>>2]=Gv(t,0,cz(c[k>>2]|0,27,m,0)|0)|0;if(!(c[r>>2]|0)){i=v;return}a[(c[(c[r>>2]|0)+4>>2]|0)+12>>0]=a[(c[h>>2]|0)+452>>0]|0;c[s>>2]=vv(c[h>>2]|0,0,0,0,c[r>>2]|0,d[(c[j>>2]|0)+43>>0]|0,0,0,0,0)|0;if(!(c[s>>2]|0)){i=v;return}else{t=(c[s>>2]|0)+55|0;a[t>>0]=a[t>>0]&-4|2;b[(c[j>>2]|0)+32>>1]=-1;break}}else{c[s>>2]=Ej(f)|0;if(c[t>>2]|0)bG(c[t>>2]|0,c[(c[s>>2]|0)+44>>2]|0,13);c[n>>2]=1;c[l>>2]=1;while(1){if((c[l>>2]|0)>=(e[(c[s>>2]|0)+50>>1]|0))break;if(UG(c[(c[s>>2]|0)+4>>2]|0,c[n>>2]|0,b[(c[(c[s>>2]|0)+4>>2]|0)+(c[l>>2]<<1)>>1]|0)|0){t=(c[s>>2]|0)+52|0;b[t>>1]=(b[t>>1]|0)+-1<<16>>16}else{r=b[(c[(c[s>>2]|0)+4>>2]|0)+(c[l>>2]<<1)>>1]|0;t=c[n>>2]|0;c[n>>2]=t+1;b[(c[(c[s>>2]|0)+4>>2]|0)+(t<<1)>>1]=r}c[l>>2]=(c[l>>2]|0)+1}b[(c[s>>2]|0)+50>>1]=c[n>>2]}while(0);t=(c[s>>2]|0)+55|0;a[t>>0]=a[t>>0]&-33|32;c[p>>2]=e[(c[s>>2]|0)+50>>1];if(!(a[(c[k>>2]|0)+140+7>>0]|0)){c[l>>2]=0;while(1){if((c[l>>2]|0)>=(c[p>>2]|0))break;a[(c[(c[j>>2]|0)+4>>2]|0)+((b[(c[(c[s>>2]|0)+4>>2]|0)+(c[l>>2]<<1)>>1]|0)*24|0)+20>>0]=2;c[l>>2]=(c[l>>2]|0)+1}t=(c[s>>2]|0)+55|0;a[t>>0]=a[t>>0]&-9|8}c[(c[s>>2]|0)+44>>2]=c[(c[j>>2]|0)+28>>2];c[q>>2]=c[(c[j>>2]|0)+8>>2];a:while(1){if(!(c[q>>2]|0))break;b:do if((a[(c[q>>2]|0)+55>>0]&3|0)!=2){c[o>>2]=0;c[l>>2]=0;while(1){if((c[l>>2]|0)>=(c[p>>2]|0))break;if(!(UG(c[(c[q>>2]|0)+4>>2]|0,e[(c[q>>2]|0)+50>>1]|0,b[(c[(c[s>>2]|0)+4>>2]|0)+(c[l>>2]<<1)>>1]|0)|0))c[o>>2]=(c[o>>2]|0)+1;c[l>>2]=(c[l>>2]|0)+1}if(!(c[o>>2]|0)){b[(c[q>>2]|0)+52>>1]=b[(c[q>>2]|0)+50>>1]|0;break}if(cH(c[k>>2]|0,c[q>>2]|0,(e[(c[q>>2]|0)+50>>1]|0)+(c[o>>2]|0)|0)|0){u=46;break a}c[l>>2]=0;c[n>>2]=e[(c[q>>2]|0)+50>>1];while(1){if((c[l>>2]|0)>=(c[p>>2]|0))break b;if(!(UG(c[(c[q>>2]|0)+4>>2]|0,e[(c[q>>2]|0)+50>>1]|0,b[(c[(c[s>>2]|0)+4>>2]|0)+(c[l>>2]<<1)>>1]|0)|0)){b[(c[(c[q>>2]|0)+4>>2]|0)+(c[n>>2]<<1)>>1]=b[(c[(c[s>>2]|0)+4>>2]|0)+(c[l>>2]<<1)>>1]|0;c[(c[(c[q>>2]|0)+32>>2]|0)+(c[n>>2]<<2)>>2]=c[(c[(c[s>>2]|0)+32>>2]|0)+(c[l>>2]<<2)>>2];c[n>>2]=(c[n>>2]|0)+1}c[l>>2]=(c[l>>2]|0)+1}}while(0);c[q>>2]=c[(c[q>>2]|0)+20>>2]}if((u|0)==46){i=v;return}if((c[p>>2]|0)>=(b[(c[j>>2]|0)+34>>1]|0)){b[(c[s>>2]|0)+52>>1]=b[(c[j>>2]|0)+34>>1]|0;i=v;return}if(cH(c[k>>2]|0,c[s>>2]|0,b[(c[j>>2]|0)+34>>1]|0)|0){i=v;return}c[l>>2]=0;c[n>>2]=c[p>>2];while(1){if((c[l>>2]|0)>=(b[(c[j>>2]|0)+34>>1]|0))break;if(!(UG(c[(c[s>>2]|0)+4>>2]|0,c[n>>2]|0,c[l>>2]|0)|0)){b[(c[(c[s>>2]|0)+4>>2]|0)+(c[n>>2]<<1)>>1]=c[l>>2];c[(c[(c[s>>2]|0)+32>>2]|0)+(c[n>>2]<<2)>>2]=35690;c[n>>2]=(c[n>>2]|0)+1}c[l>>2]=(c[l>>2]|0)+1}i=v;return}function _G(a){a=a|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;e=j+12|0;h=j+8|0;g=j+4|0;f=j;c[e>>2]=a;c[h>>2]=0;c[f>>2]=b[(c[e>>2]|0)+34>>1];c[g>>2]=c[(c[e>>2]|0)+4>>2];while(1){if((c[f>>2]|0)<=0)break;c[h>>2]=(c[h>>2]|0)+(d[(c[g>>2]|0)+22>>0]|0);c[f>>2]=(c[f>>2]|0)+-1;c[g>>2]=(c[g>>2]|0)+24}if((b[(c[e>>2]|0)+32>>1]|0)>=0){g=c[h>>2]|0;g=g<<2;g=Hj(g,0)|0;h=c[e>>2]|0;h=h+40|0;b[h>>1]=g;i=j;return}c[h>>2]=(c[h>>2]|0)+1;g=c[h>>2]|0;g=g<<2;g=Hj(g,0)|0;h=c[e>>2]|0;h=h+40|0;b[h>>1]=g;i=j;return}function $G(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=i;i=i+80|0;q=w+16|0;p=w+8|0;g=w;h=w+68|0;f=w+64|0;j=w+60|0;k=w+56|0;l=w+52|0;n=w+48|0;u=w+44|0;s=w+40|0;t=w+36|0;r=w+32|0;o=w+28|0;m=w+24|0;v=w+20|0;c[f>>2]=d;c[j>>2]=e;c[n>>2]=0;c[o>>2]=c[(c[j>>2]|0)+4>>2];c[k>>2]=0;while(1){if((c[k>>2]|0)>=(b[(c[j>>2]|0)+34>>1]|0))break;e=(aH(c[c[o>>2]>>2]|0)|0)+5|0;c[n>>2]=(c[n>>2]|0)+e;c[k>>2]=(c[k>>2]|0)+1;c[o>>2]=(c[o>>2]|0)+24}e=aH(c[c[j>>2]>>2]|0)|0;c[n>>2]=(c[n>>2]|0)+e;if((c[n>>2]|0)<50){c[s>>2]=19266;c[t>>2]=38266;c[r>>2]=35518}else{c[s>>2]=38268;c[t>>2]=38272;c[r>>2]=38277}c[n>>2]=(c[n>>2]|0)+(35+((b[(c[j>>2]|0)+34>>1]|0)*6|0));e=c[n>>2]|0;c[u>>2]=yh(0,e,((e|0)<0)<<31>>31)|0;if(!(c[u>>2]|0)){jh(c[f>>2]|0);c[h>>2]=0;v=c[h>>2]|0;i=w;return v|0}Qd(c[n>>2]|0,c[u>>2]|0,38280,g)|0;c[l>>2]=If(c[u>>2]|0)|0;bH(c[u>>2]|0,l,c[c[j>>2]>>2]|0);g=c[l>>2]|0;c[l>>2]=g+1;a[(c[u>>2]|0)+g>>0]=40;c[o>>2]=c[(c[j>>2]|0)+4>>2];c[k>>2]=0;while(1){f=(c[n>>2]|0)-(c[l>>2]|0)|0;d=(c[u>>2]|0)+(c[l>>2]|0)|0;if((c[k>>2]|0)>=(b[(c[j>>2]|0)+34>>1]|0))break;Qd(f,d,c[s>>2]|0,p)|0;g=If((c[u>>2]|0)+(c[l>>2]|0)|0)|0;c[l>>2]=(c[l>>2]|0)+g;c[s>>2]=c[t>>2];bH(c[u>>2]|0,l,c[c[o>>2]>>2]|0);c[v>>2]=c[6328+((a[(c[o>>2]|0)+21>>0]|0)-65<<2)>>2];c[m>>2]=If(c[v>>2]|0)|0;iR((c[u>>2]|0)+(c[l>>2]|0)|0,c[v>>2]|0,c[m>>2]|0)|0;c[l>>2]=(c[l>>2]|0)+(c[m>>2]|0);c[k>>2]=(c[k>>2]|0)+1;c[o>>2]=(c[o>>2]|0)+24}c[q>>2]=c[r>>2];Qd(f,d,19255,q)|0;c[h>>2]=c[u>>2];v=c[h>>2]|0;i=w;return v|0}function aH(b){b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f+4|0;e=f;c[d>>2]=b;c[e>>2]=0;while(1){if(!(a[c[d>>2]>>0]|0))break;if((a[c[d>>2]>>0]|0)==34)c[e>>2]=(c[e>>2]|0)+1;c[e>>2]=(c[e>>2]|0)+1;c[d>>2]=(c[d>>2]|0)+1}i=f;return(c[e>>2]|0)+2|0}function bH(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;n=i;i=i+32|0;g=n+24|0;h=n+20|0;o=n+16|0;m=n+12|0;j=n+8|0;k=n+4|0;l=n;c[g>>2]=b;c[h>>2]=e;c[o>>2]=f;c[m>>2]=c[o>>2];c[j>>2]=c[c[h>>2]>>2];c[k>>2]=0;while(1){if(!(a[(c[m>>2]|0)+(c[k>>2]|0)>>0]|0))break;if((d[19267+(d[(c[m>>2]|0)+(c[k>>2]|0)>>0]|0)>>0]&6|0)==0?(d[(c[m>>2]|0)+(c[k>>2]|0)>>0]|0)!=95:0)break;c[k>>2]=(c[k>>2]|0)+1}if(((d[19267+(d[c[m>>2]>>0]|0)>>0]&4|0)==0?(yi(c[m>>2]|0,c[k>>2]|0)|0)==27:0)?(d[(c[m>>2]|0)+(c[k>>2]|0)>>0]|0)==0:0)e=(c[k>>2]|0)==0;else e=1;c[l>>2]=e&1;if(c[l>>2]|0){o=c[j>>2]|0;c[j>>2]=o+1;a[(c[g>>2]|0)+o>>0]=34}c[k>>2]=0;while(1){if(!(a[(c[m>>2]|0)+(c[k>>2]|0)>>0]|0))break;f=a[(c[m>>2]|0)+(c[k>>2]|0)>>0]|0;o=c[j>>2]|0;c[j>>2]=o+1;a[(c[g>>2]|0)+o>>0]=f;if((d[(c[m>>2]|0)+(c[k>>2]|0)>>0]|0)==34){o=c[j>>2]|0;c[j>>2]=o+1;a[(c[g>>2]|0)+o>>0]=34}c[k>>2]=(c[k>>2]|0)+1}if(!(c[l>>2]|0)){m=c[j>>2]|0;o=c[g>>2]|0;m=o+m|0;a[m>>0]=0;m=c[j>>2]|0;o=c[h>>2]|0;c[o>>2]=m;i=n;return}m=c[j>>2]|0;c[j>>2]=m+1;a[(c[g>>2]|0)+m>>0]=34;m=c[j>>2]|0;o=c[g>>2]|0;m=o+m|0;a[m>>0]=0;m=c[j>>2]|0;o=c[h>>2]|0;c[o>>2]=m;i=n;return}function cH(d,f,g){d=d|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;h=o+20|0;j=o+16|0;k=o+12|0;l=o+8|0;n=o+4|0;m=o;c[j>>2]=d;c[k>>2]=f;c[l>>2]=g;if((e[(c[k>>2]|0)+52>>1]|0|0)>=(c[l>>2]|0)){c[h>>2]=0;n=c[h>>2]|0;i=o;return n|0}c[m>>2]=(c[l>>2]|0)*7;f=c[m>>2]|0;c[n>>2]=ph(c[j>>2]|0,f,((f|0)<0)<<31>>31)|0;if(!(c[n>>2]|0)){c[h>>2]=7;n=c[h>>2]|0;i=o;return n|0}else{iR(c[n>>2]|0,c[(c[k>>2]|0)+32>>2]|0,(e[(c[k>>2]|0)+52>>1]|0)<<2|0)|0;c[(c[k>>2]|0)+32>>2]=c[n>>2];c[n>>2]=(c[n>>2]|0)+(c[l>>2]<<2);iR(c[n>>2]|0,c[(c[k>>2]|0)+4>>2]|0,(e[(c[k>>2]|0)+52>>1]|0)<<1|0)|0;c[(c[k>>2]|0)+4>>2]=c[n>>2];c[n>>2]=(c[n>>2]|0)+(c[l>>2]<<1);iR(c[n>>2]|0,c[(c[k>>2]|0)+28>>2]|0,e[(c[k>>2]|0)+52>>1]|0|0)|0;c[(c[k>>2]|0)+28>>2]=c[n>>2];b[(c[k>>2]|0)+52>>1]=c[l>>2];n=(c[k>>2]|0)+55|0;a[n>>0]=a[n>>0]&-17|16;c[h>>2]=0;n=c[h>>2]|0;i=o;return n|0}return 0}function dH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+16|0;d=e+8|0;f=e+4|0;g=e;c[d>>2]=a;c[f>>2]=b;c[g>>2]=Pw(c[d>>2]|0)|0;yz(c[d>>2]|0,c[f>>2]|0,1,1,(c[f>>2]|0)==1?20769:20788);Eh(c[g>>2]|0,55,0,1,c[f>>2]|0,5)|0;if(c[(c[d>>2]|0)+72>>2]|0){i=e;return}c[(c[d>>2]|0)+72>>2]=1;i=e;return}function eH(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+32|0;b=j+16|0;e=j+12|0;h=j+8|0;f=j+4|0;g=j;c[b>>2]=a;c[h>>2]=Pw(c[b>>2]|0)|0;c[e>>2]=0;while(1){if((c[e>>2]|0)>=(c[(c[b>>2]|0)+404>>2]|0))break;c[f>>2]=(c[(c[b>>2]|0)+408>>2]|0)+(c[e>>2]<<4);c[g>>2]=c[c[f>>2]>>2];Uw(c[h>>2]|0,148,c[g>>2]|0,c[(c[f>>2]|0)+4>>2]|0,d[(c[f>>2]|0)+8>>0]|0,c[(c[f>>2]|0)+12>>2]|0,-2)|0;c[e>>2]=(c[e>>2]|0)+1}i=j;return}function fH(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;d=l+24|0;h=l+20|0;f=l+16|0;j=l+12|0;g=l+8|0;k=l+4|0;e=l;c[d>>2]=b;c[f>>2]=c[c[d>>2]>>2];c[k>>2]=c[(c[d>>2]|0)+8>>2];c[h>>2]=c[(c[d>>2]|0)+412>>2];while(1){if(!(c[h>>2]|0)){d=5;break}c[j>>2]=(c[(c[f>>2]|0)+16>>2]|0)+(c[(c[h>>2]|0)+8>>2]<<4);c[g>>2]=c[(c[h>>2]|0)+12>>2];zz(c[d>>2]|0,0,c[(c[h>>2]|0)+8>>2]|0,c[(c[(c[j>>2]|0)+12>>2]|0)+72>>2]|0,54);Tw(c[k>>2]|0,(c[g>>2]|0)-1|0,c[c[(c[h>>2]|0)+4>>2]>>2]|0)|0;c[e>>2]=Gh(c[k>>2]|0,10,38456,0)|0;if(!(c[e>>2]|0)){d=5;break}c[(c[e>>2]|0)+8>>2]=c[g>>2];c[(c[e>>2]|0)+12>>2]=(c[g>>2]|0)+1;c[(c[e>>2]|0)+40+12>>2]=c[g>>2];c[(c[e>>2]|0)+60+4>>2]=(c[g>>2]|0)-1;c[(c[e>>2]|0)+60+12>>2]=c[g>>2];a[(c[e>>2]|0)+60+3>>0]=16;c[(c[e>>2]|0)+80+8>>2]=(c[g>>2]|0)+1;c[(c[e>>2]|0)+100+12>>2]=c[g>>2];c[(c[e>>2]|0)+160+8>>2]=c[g>>2];c[h>>2]=c[c[h>>2]>>2]}if((d|0)==5){i=l;return}}function gH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;f=g;d=g+12|0;e=g+4|0;c[d>>2]=a;c[g+8>>2]=b;c[e>>2]=c[(c[d>>2]|0)+8>>2];a=c[d>>2]|0;c[a>>2]=(c[a>>2]|0)+-1;while(1){if((c[c[d>>2]>>2]|0)<0)break;$u(c[d>>2]|0)}Ah(c[e>>2]|0,38496,f);c[(c[d>>2]|0)+8>>2]=c[e>>2];i=g;return}function hH(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b;e=b+4|0;c[e>>2]=a;c[d>>2]=c[e>>2];Rd(21,40353,d);i=b;return}function iH(b,e,f,g,h,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;I=i;i=i+96|0;G=I+16|0;s=I+8|0;n=I;C=I+92|0;u=I+88|0;p=I+84|0;v=I+80|0;l=I+76|0;w=I+72|0;q=I+68|0;D=I+64|0;H=I+60|0;F=I+56|0;x=I+52|0;m=I+48|0;o=I+44|0;t=I+40|0;r=I+36|0;y=I+32|0;z=I+28|0;A=I+24|0;E=I+20|0;c[C>>2]=b;c[u>>2]=e;c[p>>2]=f;c[v>>2]=g;c[l>>2]=h;c[w>>2]=j;c[q>>2]=k;c[H>>2]=0;c[F>>2]=0;c[D>>2]=ph(c[C>>2]|0,544,0)|0;if(!(c[D>>2]|0)){c[F>>2]=7;H=c[D>>2]|0;Lh(H);H=c[C>>2]|0;G=c[D>>2]|0;Sf(H,G);G=c[C>>2]|0;H=c[F>>2]|0;H=Rg(G,H)|0;c[F>>2]=H;H=c[F>>2]|0;i=I;return H|0}c[(c[D>>2]|0)+480>>2]=c[l>>2];c[x>>2]=0;while(1){if((c[x>>2]|0)>=(c[(c[C>>2]|0)+20>>2]|0))break;c[m>>2]=c[(c[(c[C>>2]|0)+16>>2]|0)+(c[x>>2]<<4)+4>>2];if((c[m>>2]|0)!=0?(c[F>>2]=jH(c[m>>2]|0)|0,(c[F>>2]|0)!=0):0){B=7;break}c[x>>2]=(c[x>>2]|0)+1}if((B|0)==7){c[o>>2]=c[(c[(c[C>>2]|0)+16>>2]|0)+(c[x>>2]<<4)>>2];G=c[C>>2]|0;H=c[F>>2]|0;c[n>>2]=c[o>>2];hg(G,H,40398,n);H=c[D>>2]|0;Lh(H);H=c[C>>2]|0;G=c[D>>2]|0;Sf(H,G);G=c[C>>2]|0;H=c[F>>2]|0;H=Rg(G,H)|0;c[F>>2]=H;H=c[F>>2]|0;i=I;return H|0}ju(c[C>>2]|0);c[c[D>>2]>>2]=c[C>>2];c[(c[D>>2]|0)+428>>2]=0;do if((c[p>>2]|0)>=0){if((c[p>>2]|0)!=0?(a[(c[u>>2]|0)+((c[p>>2]|0)-1)>>0]|0)==0:0){B=17;break}c[r>>2]=c[(c[C>>2]|0)+88+4>>2];l=c[C>>2]|0;if((c[p>>2]|0)>(c[r>>2]|0)){hg(l,18,40428,s);c[F>>2]=Rg(c[C>>2]|0,18)|0;H=c[D>>2]|0;Lh(H);H=c[C>>2]|0;G=c[D>>2]|0;Sf(H,G);G=c[C>>2]|0;H=c[F>>2]|0;H=Rg(G,H)|0;c[F>>2]=H;H=c[F>>2]|0;i=I;return H|0}s=c[p>>2]|0;c[t>>2]=Iw(l,c[u>>2]|0,s,((s|0)<0)<<31>>31)|0;if(c[t>>2]|0){Uh(c[D>>2]|0,c[t>>2]|0,H)|0;c[(c[D>>2]|0)+484>>2]=(c[u>>2]|0)+((c[(c[D>>2]|0)+484>>2]|0)-(c[t>>2]|0));Sf(c[C>>2]|0,c[t>>2]|0);break}else{c[(c[D>>2]|0)+484>>2]=(c[u>>2]|0)+(c[p>>2]|0);break}}else B=17;while(0);if((B|0)==17)Uh(c[D>>2]|0,c[u>>2]|0,H)|0;if((c[(c[D>>2]|0)+12>>2]|0)==101)c[(c[D>>2]|0)+12>>2]=0;if(a[(c[D>>2]|0)+17>>0]|0)kH(c[D>>2]|0);if(a[(c[C>>2]|0)+65>>0]|0)c[(c[D>>2]|0)+12>>2]=7;if(c[q>>2]|0)c[c[q>>2]>>2]=c[(c[D>>2]|0)+484>>2];c[F>>2]=c[(c[D>>2]|0)+12>>2];a:do if(((c[F>>2]|0)==0?(c[(c[D>>2]|0)+8>>2]|0)!=0:0)?(d[(c[D>>2]|0)+453>>0]|0)!=0:0){l=c[(c[D>>2]|0)+8>>2]|0;if((d[(c[D>>2]|0)+453>>0]|0)==2){OB(l,4);c[y>>2]=8;c[z>>2]=12}else{OB(l,8);c[y>>2]=0;c[z>>2]=8}c[x>>2]=c[y>>2];while(1){if((c[x>>2]|0)>=(c[z>>2]|0))break a;PB(c[(c[D>>2]|0)+8>>2]|0,(c[x>>2]|0)-(c[y>>2]|0)|0,0,c[6360+(c[x>>2]<<2)>>2]|0,0)|0;c[x>>2]=(c[x>>2]|0)+1}}while(0);if(!(d[(c[C>>2]|0)+140+5>>0]|0)){c[A>>2]=c[(c[D>>2]|0)+8>>2];lH(c[A>>2]|0,c[u>>2]|0,(c[(c[D>>2]|0)+484>>2]|0)-(c[u>>2]|0)|0,c[v>>2]|0)}do if(c[(c[D>>2]|0)+8>>2]|0){if((c[F>>2]|0)==0?(d[(c[C>>2]|0)+65>>0]|0)==0:0){B=41;break}Qg(c[(c[D>>2]|0)+8>>2]|0)|0}else B=41;while(0);if((B|0)==41)c[c[w>>2]>>2]=c[(c[D>>2]|0)+8>>2];l=c[C>>2]|0;b=c[F>>2]|0;if(c[H>>2]|0){c[G>>2]=c[H>>2];hg(l,b,19255,G);Sf(c[C>>2]|0,c[H>>2]|0)}else jg(l,b);while(1){if(!(c[(c[D>>2]|0)+532>>2]|0))break;c[E>>2]=c[(c[D>>2]|0)+532>>2];c[(c[D>>2]|0)+532>>2]=c[(c[E>>2]|0)+4>>2];Sf(c[C>>2]|0,c[E>>2]|0)}H=c[D>>2]|0;Lh(H);H=c[C>>2]|0;G=c[D>>2]|0;Sf(H,G);G=c[C>>2]|0;H=c[F>>2]|0;H=Rg(G,H)|0;c[F>>2]=H;H=c[F>>2]|0;i=I;return H|0}function jH(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;kg(c[e>>2]|0);c[b>>2]=mH(c[e>>2]|0,1,1)|0;i=d;return c[b>>2]|0}function kH(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;b=k+24|0;e=k+20|0;f=k+16|0;j=k+12|0;d=k+8|0;g=k+4|0;h=k;c[b>>2]=a;c[e>>2]=c[c[b>>2]>>2];c[f>>2]=0;while(1){if((c[f>>2]|0)>=(c[(c[e>>2]|0)+20>>2]|0)){b=14;break}c[g>>2]=0;c[h>>2]=c[(c[(c[e>>2]|0)+16>>2]|0)+(c[f>>2]<<4)+4>>2];if(c[h>>2]|0){if(!(og(c[h>>2]|0)|0)){c[j>>2]=mg(c[h>>2]|0,0)|0;if((c[j>>2]|0)==7|(c[j>>2]|0)==3082)jh(c[e>>2]|0);if(c[j>>2]|0){b=14;break}c[g>>2]=1}ng(c[h>>2]|0,1,d);if((c[d>>2]|0)!=(c[c[(c[(c[e>>2]|0)+16>>2]|0)+(c[f>>2]<<4)+12>>2]>>2]|0)){rj(c[e>>2]|0,c[f>>2]|0);c[(c[b>>2]|0)+12>>2]=17}if(c[g>>2]|0)Bj(c[h>>2]|0)|0}c[f>>2]=(c[f>>2]|0)+1}if((b|0)==14){i=k;return}}function lH(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;l=i;i=i+16|0;g=l+12|0;h=l+8|0;j=l+4|0;k=l;c[g>>2]=a;c[h>>2]=d;c[j>>2]=e;c[k>>2]=f;if(!(c[g>>2]|0)){i=l;return}d=c[j>>2]|0;d=Iw(c[c[g>>2]>>2]|0,c[h>>2]|0,d,((d|0)<0)<<31>>31)|0;c[(c[g>>2]|0)+168>>2]=d;d=(c[g>>2]|0)+88|0;b[d>>1]=b[d>>1]&-257|(c[k>>2]&1)<<8&65535;i=l;return}function mH(f,g,h){f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+32|0;j=q+16|0;k=q+12|0;l=q+8|0;m=q+20|0;n=q+4|0;o=q;c[k>>2]=f;c[l>>2]=g;a[m>>0]=h;c[n>>2]=c[(c[k>>2]|0)+4>>2];if(!(a[(c[k>>2]|0)+9>>0]|0)){c[j>>2]=0;p=c[j>>2]|0;i=q;return p|0}if((c[(c[n>>2]|0)+76>>2]|0)!=(c[k>>2]|0)?(e[(c[n>>2]|0)+22>>1]&32|0)!=0:0){c[j>>2]=262;p=c[j>>2]|0;i=q;return p|0}c[o>>2]=c[(c[n>>2]|0)+72>>2];while(1){if(!(c[o>>2]|0)){p=15;break}if(((c[c[o>>2]>>2]|0)!=(c[k>>2]|0)?(c[(c[o>>2]|0)+4>>2]|0)==(c[l>>2]|0):0)?(d[(c[o>>2]|0)+8>>0]|0)!=(d[m>>0]|0):0)break;c[o>>2]=c[(c[o>>2]|0)+12>>2]}if((p|0)==15){c[j>>2]=0;p=c[j>>2]|0;i=q;return p|0}if((d[m>>0]|0)==2){p=(c[n>>2]|0)+22|0;b[p>>1]=e[p>>1]|64}c[j>>2]=262;p=c[j>>2]|0;i=q;return p|0}function nH(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;l=i;i=i+32|0;g=l+16|0;m=l+12|0;h=l+8|0;j=l+4|0;k=l;c[m>>2]=b;c[h>>2]=e;c[j>>2]=f;c[k>>2]=c[(c[m>>2]|0)+8>>2];while(1){if(!(c[k>>2]|0))break;if((c[k>>2]|0)!=(c[j>>2]|0)){if(!(c[h>>2]|0))break;if((c[(c[k>>2]|0)+52>>2]|0)==(c[h>>2]|0))break}c[k>>2]=c[(c[k>>2]|0)+8>>2]}if(c[k>>2]|0){c[g>>2]=oH(c[k>>2]|0,c[h>>2]|0,c[j>>2]|0)|0;m=c[g>>2]|0;i=l;return m|0}if(c[j>>2]|0){m=(c[j>>2]|0)+64|0;a[m>>0]=(d[m>>0]|0)&-33}c[g>>2]=0;m=c[g>>2]|0;i=l;return m|0}function oH(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;j=l+16|0;f=l+12|0;g=l+8|0;h=l+4|0;k=l;c[f>>2]=a;c[g>>2]=b;c[h>>2]=e;a:while(1){do if((c[f>>2]|0)!=(c[h>>2]|0)){if(0!=(c[g>>2]|0)?(c[(c[f>>2]|0)+52>>2]|0)!=(c[g>>2]|0):0)break;if((d[(c[f>>2]|0)+66>>0]|0|0)!=1?(d[(c[f>>2]|0)+66>>0]|0|0)!=2:0){qH(c[f>>2]|0);break}c[k>>2]=pH(c[f>>2]|0)|0;if(c[k>>2]|0){f=8;break a}}while(0);c[f>>2]=c[(c[f>>2]|0)+8>>2];if(!(c[f>>2]|0)){f=11;break}}if((f|0)==8){c[j>>2]=c[k>>2];k=c[j>>2]|0;i=l;return k|0}else if((f|0)==11){c[j>>2]=0;k=c[j>>2]|0;i=l;return k|0}return 0}function pH(b){b=b|0;var e=0,f=0,g=0;g=i;i=i+16|0;e=g+4|0;f=g;c[e>>2]=b;b=c[e>>2]|0;if((d[(c[e>>2]|0)+66>>0]|0|0)==2)a[b+66>>0]=1;else c[b+60>>2]=0;c[f>>2]=rH(c[e>>2]|0)|0;if(!(c[f>>2]|0)){qH(c[e>>2]|0);a[(c[e>>2]|0)+66>>0]=3}e=(c[e>>2]|0)+64|0;a[e>>0]=(d[e>>0]|0)&-15;i=g;return c[f>>2]|0}function qH(b){b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f+4|0;e=f;c[d>>2]=b;c[e>>2]=0;while(1){if((c[e>>2]|0)>(a[(c[d>>2]|0)+68>>0]|0))break;qB(c[(c[d>>2]|0)+120+(c[e>>2]<<2)>>2]|0);c[(c[d>>2]|0)+120+(c[e>>2]<<2)>>2]=0;c[e>>2]=(c[e>>2]|0)+1}a[(c[d>>2]|0)+68>>0]=-1;i=f;return}function rH(a){a=a|0;var b=0,e=0,f=0,g=0;g=i;i=i+16|0;e=g+8|0;f=g+4|0;b=g;c[e>>2]=a;c[f>>2]=sH(c[e>>2]|0,(c[e>>2]|0)+40|0)|0;if(d[(c[e>>2]|0)+69>>0]|0){f=c[f>>2]|0;i=g;return f|0}a=(c[e>>2]|0)+40|0;c[b>>2]=_f(c[a>>2]|0,c[a+4>>2]|0)|0;if(!(c[b>>2]|0)){c[f>>2]=7;f=c[f>>2]|0;i=g;return f|0}c[f>>2]=tH(c[e>>2]|0,0,c[(c[e>>2]|0)+40>>2]|0,c[b>>2]|0)|0;a=c[b>>2]|0;if(!(c[f>>2]|0)){c[(c[e>>2]|0)+48>>2]=a;f=c[f>>2]|0;i=g;return f|0}else{Kd(a);f=c[f>>2]|0;i=g;return f|0}return 0}function sH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;iF(c[e>>2]|0);e=(c[e>>2]|0)+16|0;a=c[e+4>>2]|0;b=c[f>>2]|0;c[b>>2]=c[e>>2];c[b+4>>2]=a;i=d;return 0}function tH(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+16|0;k=f+12|0;j=f+8|0;h=f+4|0;g=f;c[k>>2]=a;c[j>>2]=b;c[h>>2]=d;c[g>>2]=e;a=hF(c[k>>2]|0,c[j>>2]|0,c[h>>2]|0,c[g>>2]|0,0)|0;i=f;return a|0}function uH(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;kg(c[c[d>>2]>>2]|0);i=b;return}function vH(b){b=b|0;var e=0,f=0;e=i;i=i+16|0;f=e;c[f>>2]=b;b=(c[f>>2]|0)+64|0;a[b>>0]=d[b>>0]|0|16;a[(c[c[f>>2]>>2]|0)+11>>0]=1;i=e;return}function wH(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+8|0;f=h+4|0;g=h;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;if(c[f>>2]|0){g=c[f>>2]|0;i=h;return g|0}c[g>>2]=(c[g>>2]|0)+7&-8;d=c[g>>2]|0;a=c[e>>2]|0;if((c[g>>2]|0)<=(c[(c[e>>2]|0)+4>>2]|0)){g=a+4|0;c[g>>2]=(c[g>>2]|0)-d;c[f>>2]=(c[c[e>>2]>>2]|0)+(c[(c[e>>2]|0)+4>>2]|0);g=c[f>>2]|0;i=h;return g|0}else{g=a+8|0;c[g>>2]=(c[g>>2]|0)+d;g=c[f>>2]|0;i=h;return g|0}return 0}function xH(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;l=i;i=i+16|0;g=l+12|0;h=l+8|0;j=l+4|0;k=l;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[k>>2]=f;if(a[(c[h>>2]|0)+1>>0]|0){qA(c[c[g>>2]>>2]|0,a[(c[h>>2]|0)+1>>0]|0,c[(c[h>>2]|0)+16>>2]|0);a[(c[h>>2]|0)+1>>0]=0;c[(c[h>>2]|0)+16>>2]=0}if((c[k>>2]|0)<0){Ih(c[g>>2]|0,((c[h>>2]|0)-(c[(c[g>>2]|0)+4>>2]|0)|0)/20|0,c[j>>2]|0,c[k>>2]|0);i=l;return}if(!(c[k>>2]|0))c[k>>2]=If(c[j>>2]|0)|0;e=c[k>>2]|0;e=Iw(c[c[g>>2]>>2]|0,c[j>>2]|0,e,((e|0)<0)<<31>>31)|0;c[(c[h>>2]|0)+16>>2]=e;a[(c[h>>2]|0)+1>>0]=-1;i=l;return}function yH(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=(c[d>>2]|0)+12|0;c[a>>2]=(c[a>>2]|0)+1;i=b;return}function zH(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;b=e;c[b>>2]=a;i=e;return d[(c[b>>2]|0)+9>>0]|0|0}function AH(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;p=r;g=r+36|0;h=r+32|0;j=r+28|0;m=r+24|0;n=r+20|0;q=r+16|0;l=r+12|0;o=r+8|0;k=r+4|0;c[h>>2]=e;c[j>>2]=f;c[m>>2]=c[c[j>>2]>>2];c[q>>2]=0;c[k>>2]=c[c[h>>2]>>2];if(c[(c[j>>2]|0)+16>>2]|0){c[g>>2]=1;q=c[g>>2]|0;i=r;return q|0}if((c[(c[m>>2]|0)+4>>2]|0)!=0?(c[(c[m>>2]|0)+4>>2]|0)!=(c[(c[m>>2]|0)+8>>2]|0):0){c[g>>2]=0;q=c[g>>2]|0;i=r;return q|0}c[l>>2]=(If(c[(c[j>>2]|0)+4>>2]|0)|0)+1;c[n>>2]=ph(c[k>>2]|0,72+(c[l>>2]|0)|0,0)|0;if(!(c[n>>2]|0)){c[g>>2]=0;q=c[g>>2]|0;i=r;return q|0}c[(c[j>>2]|0)+16>>2]=c[n>>2];c[c[n>>2]>>2]=(c[n>>2]|0)+72;iR(c[c[n>>2]>>2]|0,c[(c[j>>2]|0)+4>>2]|0,c[l>>2]|0)|0;b[(c[n>>2]|0)+36>>1]=1;c[(c[n>>2]|0)+64>>2]=c[(c[(c[k>>2]|0)+16>>2]|0)+12>>2];e=(c[n>>2]|0)+42|0;a[e>>0]=d[e>>0]|0|16;c[(c[n>>2]|0)+48>>2]=0;b[(c[n>>2]|0)+32>>1]=-1;e=c[k>>2]|0;f=c[n>>2]|0;Lw(e,f,nh(c[k>>2]|0,c[c[n>>2]>>2]|0)|0);Lw(c[k>>2]|0,c[n>>2]|0,0);f=c[k>>2]|0;e=c[n>>2]|0;Lw(f,e,nh(c[k>>2]|0,c[c[n>>2]>>2]|0)|0);c[o>>2]=oz(c[k>>2]|0,c[n>>2]|0,c[j>>2]|0,c[(c[m>>2]|0)+8>>2]|0,q)|0;if(c[o>>2]|0){o=c[h>>2]|0;c[p>>2]=c[q>>2];Ah(o,19255,p);Sf(c[k>>2]|0,c[q>>2]|0);BH(c[k>>2]|0,c[j>>2]|0);c[g>>2]=0;q=c[g>>2]|0;i=r;return q|0}else{c[g>>2]=1;q=c[g>>2]|0;i=r;return q|0}return 0}function BH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;e=g+4|0;f=g;c[d>>2]=a;c[e>>2]=b;c[f>>2]=c[(c[e>>2]|0)+16>>2];if(!(c[f>>2]|0)){i=g;return}RG(c[d>>2]|0,c[f>>2]|0);CH(c[d>>2]|0,c[f>>2]|0);Sf(c[d>>2]|0,c[f>>2]|0);c[(c[e>>2]|0)+16>>2]=0;i=g;return}function CH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;e=g+4|0;f=g;c[d>>2]=a;c[e>>2]=b;if(!((c[d>>2]|0)!=0?(c[(c[d>>2]|0)+528>>2]|0)!=0:0))DH(0,c[e>>2]|0)|0;if(!(c[(c[e>>2]|0)+52>>2]|0)){i=g;return}c[f>>2]=0;while(1){if((c[f>>2]|0)>=(c[(c[e>>2]|0)+48>>2]|0))break;if((c[f>>2]|0)!=1)Sf(c[d>>2]|0,c[(c[(c[e>>2]|0)+52>>2]|0)+(c[f>>2]<<2)>>2]|0);c[f>>2]=(c[f>>2]|0)+1}Sf(c[d>>2]|0,c[(c[e>>2]|0)+52>>2]|0);i=g;return}function DH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;d=k+20|0;e=k+16|0;h=k+12|0;j=k+8|0;f=k+4|0;g=k;c[d>>2]=a;c[e>>2]=b;c[h>>2]=0;c[j>>2]=c[(c[e>>2]|0)+56>>2];c[(c[e>>2]|0)+56>>2]=0;while(1){if(!(c[j>>2]|0))break;c[f>>2]=c[c[j>>2]>>2];c[g>>2]=c[(c[j>>2]|0)+24>>2];if((c[f>>2]|0)==(c[d>>2]|0)){c[h>>2]=c[j>>2];c[(c[e>>2]|0)+56>>2]=c[h>>2];c[(c[h>>2]|0)+24>>2]=0}else{c[(c[j>>2]|0)+24>>2]=c[(c[f>>2]|0)+336>>2];c[(c[f>>2]|0)+336>>2]=c[j>>2]}c[j>>2]=c[g>>2]}i=k;return c[h>>2]|0}function EH(a,d){a=a|0;d=d|0;var e=0,f=0,g=0;g=i;i=i+16|0;e=g+4|0;f=g;c[e>>2]=a;c[f>>2]=d;Ug(c[e>>2]|0);d=c[e>>2]|0;a=c[f>>2]|0;e=d+40|0;do{c[d>>2]=c[a>>2];d=d+4|0;a=a+4|0}while((d|0)<(e|0));b[(c[f>>2]|0)+8>>1]=1;c[(c[f>>2]|0)+24>>2]=0;i=g;return}function FH(){return 312}function GH(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+224|0;g=f+220|0;h=f+216|0;l=f;k=f+212|0;j=f+208|0;c[g>>2]=a;c[h>>2]=d;iR(l|0,c[g>>2]|0,208)|0;iR(c[g>>2]|0,c[h>>2]|0,208)|0;iR(c[h>>2]|0,l|0,208)|0;c[k>>2]=c[(c[g>>2]|0)+52>>2];c[(c[g>>2]|0)+52>>2]=c[(c[h>>2]|0)+52>>2];c[(c[h>>2]|0)+52>>2]=c[k>>2];c[k>>2]=c[(c[g>>2]|0)+48>>2];c[(c[g>>2]|0)+48>>2]=c[(c[h>>2]|0)+48>>2];c[(c[h>>2]|0)+48>>2]=c[k>>2];c[j>>2]=c[(c[g>>2]|0)+168>>2];c[(c[g>>2]|0)+168>>2]=c[(c[h>>2]|0)+168>>2];c[(c[h>>2]|0)+168>>2]=c[j>>2];d=(c[h>>2]|0)+88|0;b[d>>1]=b[d>>1]&-257|((e[(c[g>>2]|0)+88>>1]|0)>>>8&1)<<8&65535;i=f;return}function HH(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;c[(c[d>>2]|0)+80>>2]=0;i=b;return}function IH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0.0;j=i;i=i+32|0;d=j+16|0;e=j+12|0;g=j+8|0;f=j;c[d>>2]=a;c[e>>2]=b;if((c[c[d>>2]>>2]|0)>=2?(c[(c[d>>2]|0)+72>>2]|0)!=0:0){c[g>>2]=Yb[c[(c[d>>2]|0)+72>>2]&255](c[d>>2]|0,c[e>>2]|0)|0;g=c[g>>2]|0;i=j;return g|0}c[g>>2]=Yb[c[(c[d>>2]|0)+64>>2]&255](c[d>>2]|0,f)|0;k=+h[f>>3]*864.0e5;a=+N(k)>=1.0?k>0.0?~~+$(+M(k/4294967296.0),4294967295.0)>>>0:~~+Z((k-+(~~k>>>0))/4294967296.0)>>>0:0;f=c[e>>2]|0;c[f>>2]=~~k>>>0;c[f+4>>2]=a;g=c[g>>2]|0;i=j;return g|0}function JH(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;y=i;i=i+80|0;w=y+8|0;q=y;r=y+68|0;s=y+64|0;n=y+60|0;o=y+56|0;g=y+52|0;p=y+48|0;h=y+44|0;j=y+40|0;v=y+36|0;t=y+32|0;x=y+28|0;u=y+24|0;k=y+20|0;m=y+16|0;l=y+12|0;c[s>>2]=f;c[o>>2]=0;c[g>>2]=0;c[p>>2]=0;c[h>>2]=c[c[s>>2]>>2];c[v>>2]=0;c[t>>2]=(c[(c[s>>2]|0)+8>>2]|0)+40;oC(c[t>>2]|0,8);c[(c[s>>2]|0)+20>>2]=0;if((c[(c[s>>2]|0)+80>>2]|0)==7){jh(c[h>>2]|0);c[r>>2]=1;x=c[r>>2]|0;i=y;return x|0}c[n>>2]=c[(c[s>>2]|0)+32>>2];a:do if((b[(c[s>>2]|0)+88>>1]&3|0)==1){c[p>>2]=(c[(c[s>>2]|0)+8>>2]|0)+360;if(e[(c[p>>2]|0)+8>>1]&16){c[o>>2]=((c[(c[p>>2]|0)+12>>2]|0)>>>0)/4|0;c[g>>2]=c[(c[p>>2]|0)+16>>2]}c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[o>>2]|0))break a;c[n>>2]=(c[n>>2]|0)+(c[(c[(c[g>>2]|0)+(c[j>>2]<<2)>>2]|0)+4>>2]|0);c[j>>2]=(c[j>>2]|0)+1}}while(0);do{z=(c[s>>2]|0)+76|0;f=c[z>>2]|0;c[z>>2]=f+1;c[j>>2]=f;if((c[j>>2]|0)>=(c[n>>2]|0))break;if((b[(c[s>>2]|0)+88>>1]&3|0)!=2)break}while((d[(c[(c[s>>2]|0)+4>>2]|0)+((c[j>>2]|0)*20|0)>>0]|0)!=161);do if((c[j>>2]|0)>=(c[n>>2]|0)){c[(c[s>>2]|0)+80>>2]=0;c[v>>2]=101}else{if(c[(c[h>>2]|0)+240>>2]|0){c[(c[s>>2]|0)+80>>2]=9;c[v>>2]=1;z=c[s>>2]|0;SH(z,ih(c[(c[s>>2]|0)+80>>2]|0)|0,q);break}if((c[j>>2]|0)<(c[(c[s>>2]|0)+32>>2]|0))c[u>>2]=(c[(c[s>>2]|0)+4>>2]|0)+((c[j>>2]|0)*20|0);else{c[j>>2]=(c[j>>2]|0)-(c[(c[s>>2]|0)+32>>2]|0);c[k>>2]=0;while(1){if((c[j>>2]|0)<(c[(c[(c[g>>2]|0)+(c[k>>2]<<2)>>2]|0)+4>>2]|0))break;c[j>>2]=(c[j>>2]|0)-(c[(c[(c[g>>2]|0)+(c[k>>2]<<2)>>2]|0)+4>>2]|0);c[k>>2]=(c[k>>2]|0)+1}c[u>>2]=(c[c[(c[g>>2]|0)+(c[k>>2]<<2)>>2]>>2]|0)+((c[j>>2]|0)*20|0)}if((b[(c[s>>2]|0)+88>>1]&3|0)==1?(b[(c[t>>2]|0)+8>>1]=4,q=c[j>>2]|0,z=c[t>>2]|0,c[z>>2]=q,c[z+4>>2]=((q|0)<0)<<31>>31,c[t>>2]=(c[t>>2]|0)+40,b[(c[t>>2]|0)+8>>1]=2562,z=mM(d[c[u>>2]>>0]|0)|0,c[(c[t>>2]|0)+16>>2]=z,z=If(c[(c[t>>2]|0)+16>>2]|0)|0,c[(c[t>>2]|0)+12>>2]=z,a[(c[t>>2]|0)+10>>0]=1,c[t>>2]=(c[t>>2]|0)+40,(a[(c[u>>2]|0)+1>>0]|0)==-18):0){c[m>>2]=(c[o>>2]|0)+1<<2;c[l>>2]=0;while(1){if((c[l>>2]|0)>=(c[o>>2]|0))break;if((c[(c[g>>2]|0)+(c[l>>2]<<2)>>2]|0)==(c[(c[u>>2]|0)+16>>2]|0))break;c[l>>2]=(c[l>>2]|0)+1}if((c[l>>2]|0)==(c[o>>2]|0)?0==(ux(c[p>>2]|0,c[m>>2]|0,(c[o>>2]|0)!=0&1)|0):0){c[g>>2]=c[(c[p>>2]|0)+16>>2];q=c[(c[u>>2]|0)+16>>2]|0;z=c[o>>2]|0;c[o>>2]=z+1;c[(c[g>>2]|0)+(z<<2)>>2]=q;z=(c[p>>2]|0)+8|0;b[z>>1]=e[z>>1]|16;c[(c[p>>2]|0)+12>>2]=c[o>>2]<<2}}b[(c[t>>2]|0)+8>>1]=4;q=c[(c[u>>2]|0)+4>>2]|0;z=c[t>>2]|0;c[z>>2]=q;c[z+4>>2]=((q|0)<0)<<31>>31;c[t>>2]=(c[t>>2]|0)+40;b[(c[t>>2]|0)+8>>1]=4;z=c[(c[u>>2]|0)+8>>2]|0;q=c[t>>2]|0;c[q>>2]=z;c[q+4>>2]=((z|0)<0)<<31>>31;c[t>>2]=(c[t>>2]|0)+40;b[(c[t>>2]|0)+8>>1]=4;q=c[(c[u>>2]|0)+12>>2]|0;z=c[t>>2]|0;c[z>>2]=q;c[z+4>>2]=((q|0)<0)<<31>>31;c[t>>2]=(c[t>>2]|0)+40;if(tx(c[t>>2]|0,100)|0){c[r>>2]=1;z=c[r>>2]|0;i=y;return z|0}b[(c[t>>2]|0)+8>>1]=514;c[x>>2]=nM(c[u>>2]|0,c[(c[t>>2]|0)+16>>2]|0,c[(c[t>>2]|0)+24>>2]|0)|0;g=c[t>>2]|0;if((c[x>>2]|0)!=(c[(c[t>>2]|0)+16>>2]|0))dh(g,c[x>>2]|0,-1,1,0)|0;else{z=If(c[g+16>>2]|0)|0;c[(c[t>>2]|0)+12>>2]=z;a[(c[t>>2]|0)+10>>0]=1}c[t>>2]=(c[t>>2]|0)+40;do if((b[(c[s>>2]|0)+88>>1]&3|0)==1){if(!(tx(c[t>>2]|0,4)|0)){b[(c[t>>2]|0)+8>>1]=514;c[(c[t>>2]|0)+12>>2]=2;z=c[(c[t>>2]|0)+16>>2]|0;c[w>>2]=d[(c[u>>2]|0)+3>>0];Qd(3,z,43360,w)|0;a[(c[t>>2]|0)+10>>0]=1;c[t>>2]=(c[t>>2]|0)+40;b[(c[t>>2]|0)+8>>1]=1;break}c[r>>2]=1;z=c[r>>2]|0;i=y;return z|0}while(0);b[(c[s>>2]|0)+84>>1]=8-((b[(c[s>>2]|0)+88>>1]&3)-1<<2);c[(c[s>>2]|0)+20>>2]=(c[(c[s>>2]|0)+8>>2]|0)+40;c[(c[s>>2]|0)+80>>2]=0;c[v>>2]=100}while(0);c[r>>2]=c[v>>2];z=c[r>>2]|0;i=y;return z|0}function dJ(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=i;i=i+80|0;k=x+64|0;j=x+60|0;l=x+56|0;s=x+52|0;q=x+48|0;r=x+44|0;h=x+40|0;t=x+36|0;u=x+32|0;v=x+28|0;w=x+24|0;p=x+20|0;f=x+16|0;o=x+12|0;g=x+8|0;n=x+4|0;m=x;c[j>>2]=b;c[l>>2]=e;c[s>>2]=0;c[h>>2]=0;c[p>>2]=0;if(!(a[(c[l>>2]|0)+63>>0]|0)){xj(c[j>>2]|0,c[l>>2]|0,41344);c[k>>2]=1;w=c[k>>2]|0;i=x;return w|0}if((c[(c[l>>2]|0)+148>>2]|0)>1){xj(c[j>>2]|0,c[l>>2]|0,41384);c[k>>2]=1;w=c[k>>2]|0;i=x;return w|0}c[t>>2]=c[(c[l>>2]|0)+24>>2];c[u>>2]=c[(c[l>>2]|0)+80>>2];c[v>>2]=c[(c[l>>2]|0)+84>>2];c[w>>2]=c[(c[l>>2]|0)+176>>2];b=(c[l>>2]|0)+24|0;c[b>>2]=c[b>>2]|2107392;b=(c[l>>2]|0)+24|0;c[b>>2]=c[b>>2]&-655361;c[(c[l>>2]|0)+176>>2]=0;c[q>>2]=c[(c[(c[l>>2]|0)+16>>2]|0)+4>>2];c[f>>2]=DJ(Of(c[q>>2]|0)|0)|0;c[g>>2]=c[(c[l>>2]|0)+20>>2];if(Sq(c[l>>2]|0)|0)c[h>>2]=41427;else c[h>>2]=41459;c[s>>2]=EJ(c[l>>2]|0,c[j>>2]|0,c[h>>2]|0)|0;if((c[(c[l>>2]|0)+20>>2]|0)>(c[g>>2]|0))c[p>>2]=(c[(c[l>>2]|0)+16>>2]|0)+((c[(c[l>>2]|0)+20>>2]|0)-1<<4);a:do if((((c[s>>2]|0)==0?(c[r>>2]=c[(c[(c[l>>2]|0)+16>>2]|0)+((c[(c[l>>2]|0)+20>>2]|0)-1<<4)+4>>2],Bj(c[r>>2]|0)|0,c[o>>2]=FJ(c[q>>2]|0)|0,c[s>>2]=EJ(c[l>>2]|0,c[j>>2]|0,41483)|0,(c[s>>2]|0)==0):0)?(c[s>>2]=EJ(c[l>>2]|0,c[j>>2]|0,41516)|0,(c[s>>2]|0)==0):0)?(c[s>>2]=mg(c[q>>2]|0,2)|0,(c[s>>2]|0)==0):0){if((qg(Of(c[q>>2]|0)|0)|0)==5)c[(c[l>>2]|0)+72>>2]=0;b=c[r>>2]|0;h=pg(c[q>>2]|0)|0;do if(!(xi(b,h,c[o>>2]|0,0)|0)){if((c[f>>2]|0)==0?(xi(c[r>>2]|0,c[(c[l>>2]|0)+72>>2]|0,c[o>>2]|0,0)|0)!=0:0)break;if(!(d[(c[l>>2]|0)+65>>0]|0)){e=c[r>>2]|0;if((a[(c[l>>2]|0)+68>>0]|0)>=0)f=a[(c[l>>2]|0)+68>>0]|0;else f=TB(c[q>>2]|0)|0;VB(e,f)|0;c[s>>2]=GJ(c[l>>2]|0,c[j>>2]|0,41523)|0;if(c[s>>2]|0)break a;c[s>>2]=GJ(c[l>>2]|0,c[j>>2]|0,41671)|0;if(c[s>>2]|0)break a;c[s>>2]=GJ(c[l>>2]|0,c[j>>2]|0,41775)|0;if(c[s>>2]|0)break a;h=(c[l>>2]|0)+24|0;c[h>>2]=c[h>>2]|134217728;c[s>>2]=GJ(c[l>>2]|0,c[j>>2]|0,41893)|0;h=(c[l>>2]|0)+24|0;c[h>>2]=c[h>>2]&-134217729;if(c[s>>2]|0)break a;c[s>>2]=GJ(c[l>>2]|0,c[j>>2]|0,42089)|0;if(c[s>>2]|0)break a;c[s>>2]=GJ(c[l>>2]|0,c[j>>2]|0,42202)|0;if(c[s>>2]|0)break a;c[s>>2]=EJ(c[l>>2]|0,c[j>>2]|0,42357)|0;if(c[s>>2]|0)break a;c[m>>2]=0;while(1){e=c[q>>2]|0;if((c[m>>2]|0)>=10)break;
  61. ng(e,d[42541+(c[m>>2]|0)>>0]|0,n);c[s>>2]=yg(c[r>>2]|0,d[42541+(c[m>>2]|0)>>0]|0,(c[n>>2]|0)+(d[42541+((c[m>>2]|0)+1)>>0]|0)|0)|0;if(c[s>>2]|0)break a;c[m>>2]=(c[m>>2]|0)+2}c[s>>2]=HJ(e,c[r>>2]|0)|0;if(c[s>>2]|0)break a;c[s>>2]=Bj(c[r>>2]|0)|0;if(c[s>>2]|0)break a;n=c[q>>2]|0;VB(n,TB(c[r>>2]|0)|0)|0;n=c[q>>2]|0;r=pg(c[r>>2]|0)|0;c[s>>2]=xi(n,r,c[o>>2]|0,1)|0;break a}}while(0);c[s>>2]=7}while(0);c[(c[l>>2]|0)+24>>2]=c[t>>2];c[(c[l>>2]|0)+80>>2]=c[u>>2];c[(c[l>>2]|0)+84>>2]=c[v>>2];c[(c[l>>2]|0)+176>>2]=c[w>>2];xi(c[q>>2]|0,-1,-1,1)|0;a[(c[l>>2]|0)+63>>0]=1;if(c[p>>2]|0){lB(c[(c[p>>2]|0)+4>>2]|0)|0;c[(c[p>>2]|0)+4>>2]=0;c[(c[p>>2]|0)+12>>2]=0}zg(c[l>>2]|0);c[k>>2]=c[s>>2];w=c[k>>2]|0;i=x;return w|0}function eJ(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;j=i;i=i+32|0;k=j+20|0;h=j+16|0;g=j+12|0;f=j+8|0;e=j+4|0;d=j;c[k>>2]=b;c[g>>2]=c[(c[k>>2]|0)+4>>2];kg(c[k>>2]|0);if(!(a[(c[g>>2]|0)+17>>0]|0)){c[h>>2]=101;k=c[h>>2]|0;i=j;return k|0}c[f>>2]=$E(c[g>>2]|0)|0;c[e>>2]=$q((c[(c[(c[g>>2]|0)+12>>2]|0)+56>>2]|0)+36|0)|0;c[d>>2]=qJ(c[g>>2]|0,c[f>>2]|0,c[e>>2]|0)|0;if((c[f>>2]|0)>>>0<(c[d>>2]|0)>>>0){c[h>>2]=Lj(59178)|0;k=c[h>>2]|0;i=j;return k|0}if((c[e>>2]|0)>>>0<=0){c[h>>2]=101;k=c[h>>2]|0;i=j;return k|0}c[h>>2]=nH(c[g>>2]|0,0,0)|0;if(!(c[h>>2]|0)){rJ(c[g>>2]|0);c[h>>2]=sJ(c[g>>2]|0,c[d>>2]|0,c[f>>2]|0,0)|0}if(c[h>>2]|0){k=c[h>>2]|0;i=j;return k|0}c[h>>2]=Dg(c[(c[(c[g>>2]|0)+12>>2]|0)+72>>2]|0)|0;Xs((c[(c[(c[g>>2]|0)+12>>2]|0)+56>>2]|0)+28|0,c[(c[g>>2]|0)+44>>2]|0);k=c[h>>2]|0;i=j;return k|0}function fJ(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+16|0;g=m+8|0;h=m+4|0;j=m+13|0;l=m;k=m+12|0;c[g>>2]=b;c[h>>2]=e;a[j>>0]=f;c[l>>2]=0;if(!(a[(c[g>>2]|0)+9>>0]|0)){l=c[l>>2]|0;i=m;return l|0}a[k>>0]=1+(d[j>>0]|0);kg(c[g>>2]|0);c[l>>2]=mH(c[g>>2]|0,c[h>>2]|0,a[k>>0]|0)|0;if(c[l>>2]|0){l=c[l>>2]|0;i=m;return l|0}c[l>>2]=pJ(c[g>>2]|0,c[h>>2]|0,a[k>>0]|0)|0;l=c[l>>2]|0;i=m;return l|0}function gJ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;d=m+24|0;e=m+20|0;f=m+16|0;k=m+12|0;j=m+8|0;g=m+4|0;h=m;c[e>>2]=a;c[f>>2]=b;c[k>>2]=0;if((c[(c[e>>2]|0)+308>>2]|0)>0?(c[(c[e>>2]|0)+332>>2]|0)==0:0){c[d>>2]=6;l=c[d>>2]|0;i=m;return l|0}if(!(c[f>>2]|0)){c[d>>2]=0;l=c[d>>2]|0;i=m;return l|0}c[j>>2]=c[c[(c[f>>2]|0)+8>>2]>>2];if(c[(c[j>>2]|0)+56>>2]|0){c[g>>2]=0;while(1){if((c[g>>2]|0)>=(c[(c[e>>2]|0)+308>>2]|0))break;if((c[(c[(c[e>>2]|0)+332>>2]|0)+(c[g>>2]<<2)>>2]|0)==(c[f>>2]|0)){l=10;break}c[g>>2]=(c[g>>2]|0)+1}if((l|0)==10){c[d>>2]=0;l=c[d>>2]|0;i=m;return l|0}c[k>>2]=nJ(c[e>>2]|0)|0;if(((c[k>>2]|0)==0?(c[k>>2]=Tb[c[(c[j>>2]|0)+56>>2]&255](c[(c[f>>2]|0)+8>>2]|0)|0,(c[k>>2]|0)==0):0)?(c[h>>2]=(c[(c[e>>2]|0)+504>>2]|0)+(c[(c[e>>2]|0)+500>>2]|0),oJ(c[e>>2]|0,c[f>>2]|0),(c[h>>2]|0)!=0):0)c[k>>2]=nI(c[e>>2]|0,0,(c[h>>2]|0)-1|0)|0}c[d>>2]=c[k>>2];l=c[d>>2]|0;i=m;return l|0}function hJ(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;n=i;i=i+48|0;l=n;f=n+32|0;o=n+28|0;p=n+24|0;g=n+20|0;k=n+16|0;j=n+12|0;h=n+8|0;m=n+4|0;c[f>>2]=a;c[o>>2]=b;c[p>>2]=d;c[g>>2]=e;c[k>>2]=0;c[j>>2]=pi(c[f>>2]|0,c[p>>2]|0,c[(c[(c[f>>2]|0)+16>>2]|0)+(c[o>>2]<<4)>>2]|0)|0;c[m>>2]=c[c[(c[j>>2]|0)+52>>2]>>2];c[h>>2]=nj((c[f>>2]|0)+312|0,c[m>>2]|0)|0;if(((c[h>>2]|0)!=0?(c[(c[c[h>>2]>>2]|0)+4>>2]|0)!=0:0)?(c[(c[c[h>>2]>>2]|0)+20>>2]|0)!=0:0)c[k>>2]=oz(c[f>>2]|0,c[j>>2]|0,c[h>>2]|0,c[(c[c[h>>2]>>2]|0)+4>>2]|0,c[g>>2]|0)|0;else{p=c[f>>2]|0;c[l>>2]=c[m>>2];p=Bh(p,31494,l)|0;c[c[g>>2]>>2]=p;c[k>>2]=1}if(c[k>>2]|0){p=c[k>>2]|0;i=n;return p|0}if(!(Ax(c[f>>2]|0,c[j>>2]|0)|0)){p=c[k>>2]|0;i=n;return p|0}c[k>>2]=nJ(c[f>>2]|0)|0;if(c[k>>2]|0){p=c[k>>2]|0;i=n;return p|0}p=c[f>>2]|0;oJ(p,Ax(c[f>>2]|0,c[j>>2]|0)|0);p=c[k>>2]|0;i=n;return p|0}function iJ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;l=i;i=i+32|0;e=l+28|0;f=l+24|0;m=l+20|0;n=l+16|0;j=l+12|0;h=l+8|0;g=l+4|0;k=l;c[f>>2]=a;c[m>>2]=b;c[n>>2]=d;c[j>>2]=0;c[h>>2]=pi(c[f>>2]|0,c[n>>2]|0,c[(c[(c[f>>2]|0)+16>>2]|0)+(c[m>>2]<<4)>>2]|0)|0;do if((c[h>>2]|0)!=0?(c[(c[h>>2]|0)+56>>2]|0)!=0:0){c[g>>2]=c[(c[h>>2]|0)+56>>2];while(1){if(!(c[g>>2]|0)){a=8;break}if((c[(c[(c[g>>2]|0)+8>>2]|0)+4>>2]|0)>0){a=6;break}c[g>>2]=c[(c[g>>2]|0)+24>>2]}if((a|0)==6){c[e>>2]=6;n=c[e>>2]|0;i=l;return n|0}else if((a|0)==8){c[g>>2]=DH(c[f>>2]|0,c[h>>2]|0)|0;c[k>>2]=c[(c[c[(c[g>>2]|0)+4>>2]>>2]|0)+20>>2];c[j>>2]=Tb[c[k>>2]&255](c[(c[g>>2]|0)+8>>2]|0)|0;if(c[j>>2]|0)break;c[(c[g>>2]|0)+8>>2]=0;c[(c[h>>2]|0)+56>>2]=0;hu(c[g>>2]|0);break}}while(0);c[e>>2]=c[j>>2];n=c[e>>2]|0;i=l;return n|0}function jJ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+16|0;g=e+8|0;f=e+4|0;d=e;c[g>>2]=a;c[f>>2]=b;kg(c[g>>2]|0);c[d>>2]=mJ(c[c[(c[g>>2]|0)+4>>2]>>2]|0,c[f>>2]|0)|0;i=e;return c[d>>2]|0}function kJ(f,g){f=f|0;g=g|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+256|0;z=D+72|0;B=D+64|0;A=D+56|0;y=D+48|0;x=D+40|0;k=D+148|0;l=D+144|0;m=D+140|0;p=D+136|0;u=D+132|0;q=D+128|0;t=D+124|0;o=D+120|0;v=D+116|0;C=D+88|0;j=D+84|0;r=D+80|0;n=D+152|0;w=D;s=D+76|0;c[k>>2]=f;c[l>>2]=g;c[p>>2]=0;c[u>>2]=1;c[m>>2]=c[c[k>>2]>>2];cg(C,c[m>>2]|0,D+156|0,100,c[(c[m>>2]|0)+88>>2]|0);if((c[(c[m>>2]|0)+160>>2]|0)>1){while(1){if(!(a[c[l>>2]>>0]|0))break;c[j>>2]=c[l>>2];do{B=c[l>>2]|0;c[l>>2]=B+1;if((a[B>>0]|0)==10)break}while((a[c[l>>2]>>0]|0)!=0);aA(C,41310,3);aA(C,c[j>>2]|0,(c[l>>2]|0)-(c[j>>2]|0)|0)}C=eg(C)|0;i=D;return C|0}if(!(b[(c[k>>2]|0)+68>>1]|0)){B=c[l>>2]|0;aA(C,B,If(c[l>>2]|0)|0);C=eg(C)|0;i=D;return C|0}while(1){if(!(a[c[l>>2]>>0]|0)){f=33;break}c[q>>2]=lJ(c[l>>2]|0,t)|0;aA(C,c[l>>2]|0,c[q>>2]|0);c[l>>2]=(c[l>>2]|0)+(c[q>>2]|0);if(!(c[t>>2]|0)){f=33;break}do if((a[c[l>>2]>>0]|0)==63)if((c[t>>2]|0)>1){Li((c[l>>2]|0)+1|0,p)|0;break}else{c[p>>2]=c[u>>2];break}else c[p>>2]=vh(c[k>>2]|0,c[l>>2]|0,c[t>>2]|0)|0;while(0);c[l>>2]=(c[l>>2]|0)+(c[t>>2]|0);c[u>>2]=(c[p>>2]|0)+1;c[v>>2]=(c[(c[k>>2]|0)+60>>2]|0)+(((c[p>>2]|0)-1|0)*40|0);if(e[(c[v>>2]|0)+8>>1]&1){aA(C,40498,4);continue}g=c[v>>2]|0;if(e[(c[v>>2]|0)+8>>1]&4){f=g;g=c[f+4>>2]|0;j=x;c[j>>2]=c[f>>2];c[j+4>>2]=g;$z(C,29137,x);continue}f=c[v>>2]|0;if(e[g+8>>1]&8){h[y>>3]=+h[f>>3];$z(C,29142,y);continue}if(e[f+8>>1]&2){a[n>>0]=a[(c[m>>2]|0)+62>>0]|0;if((d[n>>0]|0)!=1){f=w;g=f+40|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));c[w+32>>2]=c[m>>2];dh(w,c[(c[v>>2]|0)+16>>2]|0,c[(c[v>>2]|0)+12>>2]|0,a[n>>0]|0,0)|0;Zt(w,1)|0;c[v>>2]=w}c[r>>2]=c[(c[v>>2]|0)+12>>2];j=c[(c[v>>2]|0)+16>>2]|0;c[A>>2]=c[r>>2];c[A+4>>2]=j;$z(C,41314,A);if((d[n>>0]|0)==1)continue;Ug(w);continue}if(e[(c[v>>2]|0)+8>>1]&16384){c[B>>2]=c[c[v>>2]>>2];$z(C,41321,B);continue}aA(C,41334,2);c[s>>2]=c[(c[v>>2]|0)+12>>2];c[o>>2]=0;while(1){if((c[o>>2]|0)>=(c[s>>2]|0))break;c[z>>2]=a[(c[(c[v>>2]|0)+16>>2]|0)+(c[o>>2]|0)>>0]&255;$z(C,41337,z);c[o>>2]=(c[o>>2]|0)+1}aA(C,41342,1)}if((f|0)==33){C=eg(C)|0;i=D;return C|0}return 0}function lJ(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;e=l+16|0;f=l+12|0;j=l+8|0;h=l+4|0;g=l;c[e>>2]=b;c[f>>2]=d;c[h>>2]=0;c[c[f>>2]>>2]=0;while(1){if(!(a[c[e>>2]>>0]|0)){k=6;break}c[g>>2]=Qu(c[e>>2]|0,j)|0;d=c[g>>2]|0;if((c[j>>2]|0)==135)break;c[h>>2]=(c[h>>2]|0)+d;c[e>>2]=(c[e>>2]|0)+(c[g>>2]|0)}if((k|0)==6){k=c[h>>2]|0;i=l;return k|0}c[c[f>>2]>>2]=d;k=c[h>>2]|0;i=l;return k|0}function mJ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f+4|0;e=f;c[d>>2]=a;c[e>>2]=b;if((c[e>>2]|0)>0)c[(c[d>>2]|0)+164>>2]=c[e>>2];i=f;return c[(c[d>>2]|0)+164>>2]|0}function nJ(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=i;i=i+32|0;b=g+16|0;d=g+12|0;e=g+4|0;f=g;c[d>>2]=a;c[g+8>>2]=5;do if(!((c[(c[d>>2]|0)+308>>2]|0)%5|0)){c[f>>2]=(c[(c[d>>2]|0)+308>>2]|0)+5<<2;f=c[f>>2]|0;c[e>>2]=Ew(c[d>>2]|0,c[(c[d>>2]|0)+332>>2]|0,f,((f|0)<0)<<31>>31)|0;if(c[e>>2]|0){f=(c[e>>2]|0)+(c[(c[d>>2]|0)+308>>2]<<2)|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[(c[d>>2]|0)+332>>2]=c[e>>2];break}c[b>>2]=7;f=c[b>>2]|0;i=g;return f|0}while(0);c[b>>2]=0;f=c[b>>2]|0;i=g;return f|0}function oJ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;a=c[e>>2]|0;g=(c[f>>2]|0)+308|0;b=c[g>>2]|0;c[g>>2]=b+1;c[(c[(c[f>>2]|0)+332>>2]|0)+(b<<2)>>2]=a;yH(c[e>>2]|0);i=d;return}function pJ(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;g=p+20|0;h=p+16|0;j=p+12|0;k=p+24|0;l=p+8|0;n=p+4|0;m=p;c[h>>2]=b;c[j>>2]=e;a[k>>0]=f;c[l>>2]=c[(c[h>>2]|0)+4>>2];c[n>>2]=0;c[m>>2]=c[(c[l>>2]|0)+72>>2];while(1){if(!(c[m>>2]|0))break;if((c[(c[m>>2]|0)+4>>2]|0)==(c[j>>2]|0)?(c[c[m>>2]>>2]|0)==(c[h>>2]|0):0){o=5;break}c[m>>2]=c[(c[m>>2]|0)+12>>2]}if((o|0)==5)c[n>>2]=c[m>>2];do if(!(c[n>>2]|0)){c[n>>2]=ig(16,0)|0;if(c[n>>2]|0){c[(c[n>>2]|0)+4>>2]=c[j>>2];c[c[n>>2]>>2]=c[h>>2];c[(c[n>>2]|0)+12>>2]=c[(c[l>>2]|0)+72>>2];c[(c[l>>2]|0)+72>>2]=c[n>>2];break}c[g>>2]=7;o=c[g>>2]|0;i=p;return o|0}while(0);if((d[k>>0]|0|0)>(d[(c[n>>2]|0)+8>>0]|0|0))a[(c[n>>2]|0)+8>>0]=a[k>>0]|0;c[g>>2]=0;o=c[g>>2]|0;i=p;return o|0}function qJ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;g=i;i=i+32|0;e=g+20|0;h=g+16|0;k=g+12|0;l=g+8|0;j=g+4|0;f=g;c[e>>2]=a;c[h>>2]=b;c[k>>2]=d;c[l>>2]=((c[(c[e>>2]|0)+36>>2]|0)>>>0)/5|0;a=(c[k>>2]|0)-(c[h>>2]|0)|0;a=a+(lF(c[e>>2]|0,c[h>>2]|0)|0)|0;c[j>>2]=((a+(c[l>>2]|0)|0)>>>0)/((c[l>>2]|0)>>>0)|0;c[f>>2]=(c[h>>2]|0)-(c[k>>2]|0)-(c[j>>2]|0);if((c[h>>2]|0)>>>0>((((c[381]|0)>>>0)/((c[(c[e>>2]|0)+32>>2]|0)>>>0)|0)+1|0)>>>0?(c[f>>2]|0)>>>0<((((c[381]|0)>>>0)/((c[(c[e>>2]|0)+32>>2]|0)>>>0)|0)+1|0)>>>0:0)c[f>>2]=(c[f>>2]|0)+-1;while(1){l=lF(c[e>>2]|0,c[f>>2]|0)|0;if((l|0)==(c[f>>2]|0))b=1;else b=(c[f>>2]|0)==((((c[381]|0)>>>0)/((c[(c[e>>2]|0)+32>>2]|0)>>>0)|0)+1|0);d=c[f>>2]|0;if(!b)break;c[f>>2]=d+-1}i=g;return d|0}function rJ(b){b=b|0;var e=0,f=0,g=0;f=i;i=i+16|0;g=f+4|0;e=f;c[g>>2]=b;c[e>>2]=c[(c[g>>2]|0)+8>>2];while(1){if(!(c[e>>2]|0))break;g=(c[e>>2]|0)+64|0;a[g>>0]=(d[g>>0]|0)&-5;c[e>>2]=c[(c[e>>2]|0)+8>>2]}i=f;return}function sJ(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=i;i=i+64|0;h=z+52|0;j=z+48|0;k=z+44|0;l=z+40|0;m=z+36|0;t=z+32|0;x=z+28|0;o=z+57|0;s=z+24|0;p=z+20|0;u=z+16|0;q=z+12|0;w=z+8|0;n=z+56|0;r=z+4|0;v=z;c[j>>2]=b;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;b=lF(c[j>>2]|0,c[l>>2]|0)|0;do if((b|0)!=(c[l>>2]|0)?(c[l>>2]|0)!=((((c[381]|0)>>>0)/((c[(c[j>>2]|0)+32>>2]|0)>>>0)|0)+1|0):0){c[t>>2]=$q((c[(c[(c[j>>2]|0)+12>>2]|0)+56>>2]|0)+36|0)|0;if(!(c[t>>2]|0)){c[h>>2]=101;y=c[h>>2]|0;i=z;return y|0}c[x>>2]=mF(c[j>>2]|0,c[l>>2]|0,o,s)|0;if(c[x>>2]|0){c[h>>2]=c[x>>2];y=c[h>>2]|0;i=z;return y|0}if((d[o>>0]|0|0)==1){c[h>>2]=Lj(59063)|0;y=c[h>>2]|0;i=z;return y|0}if((d[o>>0]|0|0)==2){if(c[m>>2]|0)break;c[x>>2]=tJ(c[j>>2]|0,u,p,c[l>>2]|0,1)|0;if(!(c[x>>2]|0)){qB(c[u>>2]|0);break}c[h>>2]=c[x>>2];y=c[h>>2]|0;i=z;return y|0}a[n>>0]=0;c[r>>2]=0;c[x>>2]=nF(c[j>>2]|0,c[l>>2]|0,w,0)|0;if(c[x>>2]|0){c[h>>2]=c[x>>2];y=c[h>>2]|0;i=z;return y|0}if(!(c[m>>2]|0)){a[n>>0]=2;c[r>>2]=c[k>>2]}do{c[x>>2]=tJ(c[j>>2]|0,v,q,c[r>>2]|0,a[n>>0]|0)|0;if(c[x>>2]|0){y=19;break}qB(c[v>>2]|0);if(!(c[m>>2]|0))break}while((c[q>>2]|0)>>>0>(c[k>>2]|0)>>>0);if((y|0)==19){qB(c[w>>2]|0);c[h>>2]=c[x>>2];y=c[h>>2]|0;i=z;return y|0}c[x>>2]=uJ(c[j>>2]|0,c[w>>2]|0,a[o>>0]|0,c[s>>2]|0,c[q>>2]|0,c[m>>2]|0)|0;qB(c[w>>2]|0);if(c[x>>2]|0){c[h>>2]=c[x>>2];y=c[h>>2]|0;i=z;return y|0}}while(0);if(!(c[m>>2]|0)){while(1){c[l>>2]=(c[l>>2]|0)+-1;if((c[l>>2]|0)==((((c[381]|0)>>>0)/((c[(c[j>>2]|0)+32>>2]|0)>>>0)|0)+1|0))continue;y=lF(c[j>>2]|0,c[l>>2]|0)|0;if((y|0)!=(c[l>>2]|0))break}a[(c[j>>2]|0)+19>>0]=1;c[(c[j>>2]|0)+44>>2]=c[l>>2]}c[h>>2]=0;y=c[h>>2]|0;i=z;return y|0}function tJ(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;L=i;i=i+112|0;H=L+96|0;m=L+92|0;n=L+88|0;o=L+84|0;p=L+80|0;q=L+102|0;F=L+76|0;K=L+72|0;B=L+68|0;z=L+64|0;J=L+60|0;I=L+56|0;A=L+52|0;y=L+48|0;G=L+101|0;C=L+44|0;k=L+100|0;E=L+40|0;w=L+36|0;s=L+32|0;x=L+28|0;r=L+24|0;v=L+20|0;u=L+16|0;t=L+12|0;D=L+8|0;j=L+4|0;l=L;c[m>>2]=b;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;a[q>>0]=h;c[J>>2]=0;c[I>>2]=0;c[F>>2]=c[(c[m>>2]|0)+12>>2];c[A>>2]=$E(c[m>>2]|0)|0;c[B>>2]=$q((c[(c[F>>2]|0)+56>>2]|0)+36|0)|0;if((c[B>>2]|0)>>>0>=(c[A>>2]|0)>>>0){c[H>>2]=Lj(61115)|0;K=c[H>>2]|0;i=L;return K|0}a:do if((c[B>>2]|0)>>>0>0){a[G>>0]=0;c[C>>2]=0;do if((d[q>>0]|0)==1){if((c[p>>2]|0)>>>0<=(c[A>>2]|0)>>>0){c[K>>2]=mF(c[m>>2]|0,c[p>>2]|0,k,0)|0;if(c[K>>2]|0){c[H>>2]=c[K>>2];K=c[H>>2]|0;i=L;return K|0}else{if((d[k>>0]|0)!=2)break;a[G>>0]=1;break}}}else if((d[q>>0]|0)==2)a[G>>0]=1;while(0);c[K>>2]=Dg(c[(c[F>>2]|0)+72>>2]|0)|0;if(c[K>>2]|0){c[H>>2]=c[K>>2];K=c[H>>2]|0;i=L;return K|0}Xs((c[(c[F>>2]|0)+56>>2]|0)+36|0,(c[B>>2]|0)-1|0);b:while(1){c[I>>2]=c[J>>2];if(c[I>>2]|0)c[y>>2]=$q(c[(c[I>>2]|0)+56>>2]|0)|0;else c[y>>2]=$q((c[(c[F>>2]|0)+56>>2]|0)+32|0)|0;if((c[y>>2]|0)>>>0<=(c[A>>2]|0)>>>0?(e=c[C>>2]|0,c[C>>2]=e+1,e>>>0<=(c[B>>2]|0)>>>0):0)c[K>>2]=BJ(c[m>>2]|0,c[y>>2]|0,J,0)|0;else c[K>>2]=Lj(61171)|0;if(c[K>>2]|0){j=23;break}c[z>>2]=$q((c[(c[J>>2]|0)+56>>2]|0)+4|0)|0;c:do if((c[z>>2]|0)!=0|(a[G>>0]|0)!=0){if((c[z>>2]|0)>>>0>((((c[(c[m>>2]|0)+36>>2]|0)>>>0)/4|0)-2|0)>>>0){j=28;break b}do if(d[G>>0]|0){if((c[p>>2]|0)!=(c[y>>2]|0)){if((c[y>>2]|0)>>>0>=(c[p>>2]|0)>>>0)break;if((d[q>>0]|0)!=2)break}c[c[o>>2]>>2]=c[y>>2];c[c[n>>2]>>2]=c[J>>2];a[G>>0]=0;c[K>>2]=Dg(c[(c[J>>2]|0)+72>>2]|0)|0;if(c[K>>2]|0)break a;do if(!(c[z>>2]|0)){if(!(c[I>>2]|0)){e=(c[(c[F>>2]|0)+56>>2]|0)+32|0;f=c[(c[J>>2]|0)+56>>2]|0;a[e>>0]=a[f>>0]|0;a[e+1>>0]=a[f+1>>0]|0;a[e+2>>0]=a[f+2>>0]|0;a[e+3>>0]=a[f+3>>0]|0;break}c[K>>2]=Dg(c[(c[I>>2]|0)+72>>2]|0)|0;if(c[K>>2]|0)break a;e=c[(c[I>>2]|0)+56>>2]|0;f=c[(c[J>>2]|0)+56>>2]|0;a[e>>0]=a[f>>0]|0;a[e+1>>0]=a[f+1>>0]|0;a[e+2>>0]=a[f+2>>0]|0;a[e+3>>0]=a[f+3>>0]|0}else{c[w>>2]=$q((c[(c[J>>2]|0)+56>>2]|0)+8|0)|0;if((c[w>>2]|0)>>>0>(c[A>>2]|0)>>>0){j=40;break b}c[K>>2]=BJ(c[m>>2]|0,c[w>>2]|0,E,0)|0;if(c[K>>2]|0)break a;c[K>>2]=Dg(c[(c[E>>2]|0)+72>>2]|0)|0;h=c[E>>2]|0;if(c[K>>2]|0){j=43;break b}e=c[h+56>>2]|0;f=c[(c[J>>2]|0)+56>>2]|0;a[e>>0]=a[f>>0]|0;a[e+1>>0]=a[f+1>>0]|0;a[e+2>>0]=a[f+2>>0]|0;a[e+3>>0]=a[f+3>>0]|0;Xs((c[(c[E>>2]|0)+56>>2]|0)+4|0,(c[z>>2]|0)-1|0);iR((c[(c[E>>2]|0)+56>>2]|0)+8|0,(c[(c[J>>2]|0)+56>>2]|0)+12|0,(c[z>>2]|0)-1<<2|0)|0;qB(c[E>>2]|0);if(!(c[I>>2]|0)){Xs((c[(c[F>>2]|0)+56>>2]|0)+32|0,c[w>>2]|0);break}c[K>>2]=Dg(c[(c[I>>2]|0)+72>>2]|0)|0;if(c[K>>2]|0)break a;Xs(c[(c[I>>2]|0)+56>>2]|0,c[w>>2]|0)}while(0);c[J>>2]=0;break c}while(0);if((c[z>>2]|0)>>>0>0){c[r>>2]=c[(c[J>>2]|0)+56>>2];e=(c[p>>2]|0)>>>0>0;c[s>>2]=0;d:do if(e)if((d[q>>0]|0)==2){c[v>>2]=0;while(1){if((c[v>>2]|0)>>>0>=(c[z>>2]|0)>>>0)break d;c[x>>2]=$q((c[r>>2]|0)+(8+(c[v>>2]<<2))|0)|0;j=c[v>>2]|0;if((c[x>>2]|0)>>>0<=(c[p>>2]|0)>>>0)break;c[v>>2]=j+1}c[s>>2]=j;break}else{e=$q((c[r>>2]|0)+8|0)|0;c[u>>2]=yj(e-(c[p>>2]|0)|0)|0;c[v>>2]=1;while(1){if((c[v>>2]|0)>>>0>=(c[z>>2]|0)>>>0)break d;e=$q((c[r>>2]|0)+(8+(c[v>>2]<<2))|0)|0;c[t>>2]=yj(e-(c[p>>2]|0)|0)|0;if((c[t>>2]|0)<(c[u>>2]|0)){c[s>>2]=c[v>>2];c[u>>2]=c[t>>2]}c[v>>2]=(c[v>>2]|0)+1}}while(0);c[x>>2]=$q((c[r>>2]|0)+(8+(c[s>>2]<<2))|0)|0;if((c[x>>2]|0)>>>0>(c[A>>2]|0)>>>0){j=63;break b}if((a[G>>0]|0)!=0?(c[x>>2]|0)!=(c[p>>2]|0):0){if((c[x>>2]|0)>>>0>=(c[p>>2]|0)>>>0)break;if((d[q>>0]|0)!=2)break}c[c[o>>2]>>2]=c[x>>2];c[K>>2]=Dg(c[(c[J>>2]|0)+72>>2]|0)|0;if(c[K>>2]|0)break a;if((c[s>>2]|0)>>>0<((c[z>>2]|0)-1|0)>>>0){e=(c[r>>2]|0)+(8+(c[s>>2]<<2))|0;f=(c[r>>2]|0)+(4+(c[z>>2]<<2))|0;a[e>>0]=a[f>>0]|0;a[e+1>>0]=a[f+1>>0]|0;a[e+2>>0]=a[f+2>>0]|0;a[e+3>>0]=a[f+3>>0]|0}Xs((c[r>>2]|0)+4|0,(c[z>>2]|0)-1|0);e=(CJ(c[m>>2]|0,c[c[o>>2]>>2]|0)|0)!=0^1;c[D>>2]=e?1:0;c[K>>2]=BJ(c[m>>2]|0,c[c[o>>2]>>2]|0,c[n>>2]|0,c[D>>2]|0)|0;do if(!(c[K>>2]|0)){c[K>>2]=Dg(c[(c[c[n>>2]>>2]|0)+72>>2]|0)|0;if(!(c[K>>2]|0))break;qB(c[c[n>>2]>>2]|0);c[c[n>>2]>>2]=0}while(0);a[G>>0]=0}}else{c[K>>2]=Dg(c[(c[J>>2]|0)+72>>2]|0)|0;if(c[K>>2]|0)break a;c[c[o>>2]>>2]=c[y>>2];e=(c[(c[F>>2]|0)+56>>2]|0)+32|0;f=c[(c[J>>2]|0)+56>>2]|0;a[e>>0]=a[f>>0]|0;a[e+1>>0]=a[f+1>>0]|0;a[e+2>>0]=a[f+2>>0]|0;a[e+3>>0]=a[f+3>>0]|0;c[c[n>>2]>>2]=c[J>>2];c[J>>2]=0}while(0);qB(c[I>>2]|0);c[I>>2]=0;if(!(a[G>>0]|0))break a}if((j|0)==23){c[J>>2]=0;break}else if((j|0)==28){c[K>>2]=Lj(61200)|0;break}else if((j|0)==40){c[K>>2]=Lj(61234)|0;break}else if((j|0)==43){qB(h);break}else if((j|0)==63){c[K>>2]=Lj(61299)|0;break}}else{c[j>>2]=0==(d[(c[m>>2]|0)+19>>0]|0)?1:0;c[K>>2]=Dg(c[(c[(c[m>>2]|0)+12>>2]|0)+72>>2]|0)|0;if(c[K>>2]|0){c[H>>2]=c[K>>2];K=c[H>>2]|0;i=L;return K|0}G=(c[m>>2]|0)+44|0;c[G>>2]=(c[G>>2]|0)+1;if((c[(c[m>>2]|0)+44>>2]|0)==((((c[381]|0)>>>0)/((c[(c[m>>2]|0)+32>>2]|0)>>>0)|0)+1|0)){G=(c[m>>2]|0)+44|0;c[G>>2]=(c[G>>2]|0)+1}do if((d[(c[m>>2]|0)+17>>0]|0)!=0?(G=lF(c[m>>2]|0,c[(c[m>>2]|0)+44>>2]|0)|0,(G|0)==(c[(c[m>>2]|0)+44>>2]|0)):0){c[l>>2]=0;c[K>>2]=BJ(c[m>>2]|0,c[(c[m>>2]|0)+44>>2]|0,l,c[j>>2]|0)|0;if(!(c[K>>2]|0)){c[K>>2]=Dg(c[(c[l>>2]|0)+72>>2]|0)|0;qB(c[l>>2]|0)}if(c[K>>2]|0){c[H>>2]=c[K>>2];K=c[H>>2]|0;i=L;return K|0}else{G=(c[m>>2]|0)+44|0;c[G>>2]=(c[G>>2]|0)+1;if((c[(c[m>>2]|0)+44>>2]|0)!=((((c[381]|0)>>>0)/((c[(c[m>>2]|0)+32>>2]|0)>>>0)|0)+1|0))break;G=(c[m>>2]|0)+44|0;c[G>>2]=(c[G>>2]|0)+1;break}}while(0);Xs((c[(c[(c[m>>2]|0)+12>>2]|0)+56>>2]|0)+28|0,c[(c[m>>2]|0)+44>>2]|0);c[c[o>>2]>>2]=c[(c[m>>2]|0)+44>>2];c[K>>2]=BJ(c[m>>2]|0,c[c[o>>2]>>2]|0,c[n>>2]|0,c[j>>2]|0)|0;if(c[K>>2]|0){c[H>>2]=c[K>>2];K=c[H>>2]|0;i=L;return K|0}else{c[K>>2]=Dg(c[(c[c[n>>2]>>2]|0)+72>>2]|0)|0;if(!(c[K>>2]|0))break;qB(c[c[n>>2]>>2]|0);c[c[n>>2]>>2]=0;break}}while(0);qB(c[J>>2]|0);qB(c[I>>2]|0);c[H>>2]=c[K>>2];K=c[H>>2]|0;i=L;return K|0}function uJ(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;v=i;i=i+48|0;n=v+40|0;o=v+36|0;k=v+32|0;p=v+44|0;q=v+28|0;r=v+24|0;w=v+20|0;t=v+16|0;s=v+12|0;x=v+8|0;u=v+4|0;l=v;c[o>>2]=b;c[k>>2]=e;a[p>>0]=f;c[q>>2]=g;c[r>>2]=h;c[w>>2]=j;c[s>>2]=c[(c[k>>2]|0)+84>>2];c[x>>2]=c[c[o>>2]>>2];c[u>>2]=vJ(c[x>>2]|0,c[(c[k>>2]|0)+72>>2]|0,c[r>>2]|0,c[w>>2]|0)|0;if(c[u>>2]|0){c[n>>2]=c[u>>2];x=c[n>>2]|0;i=v;return x|0}c[(c[k>>2]|0)+84>>2]=c[r>>2];if((d[p>>0]|0|0)!=5?(d[p>>0]|0|0)!=1:0){c[l>>2]=$q(c[(c[k>>2]|0)+56>>2]|0)|0;if((c[l>>2]|0)!=0?(xJ(c[o>>2]|0,c[l>>2]|0,4,c[r>>2]|0,u),(c[u>>2]|0)!=0):0){c[n>>2]=c[u>>2];x=c[n>>2]|0;i=v;return x|0}}else m=5;if((m|0)==5?(c[u>>2]=wJ(c[k>>2]|0)|0,(c[u>>2]|0)!=0):0){c[n>>2]=c[u>>2];x=c[n>>2]|0;i=v;return x|0}do if((d[p>>0]|0|0)!=1){c[u>>2]=nF(c[o>>2]|0,c[q>>2]|0,t,0)|0;if(c[u>>2]|0){c[n>>2]=c[u>>2];x=c[n>>2]|0;i=v;return x|0}c[u>>2]=Dg(c[(c[t>>2]|0)+72>>2]|0)|0;k=c[t>>2]|0;if(c[u>>2]|0){qB(k);c[n>>2]=c[u>>2];x=c[n>>2]|0;i=v;return x|0}else{c[u>>2]=yJ(k,c[s>>2]|0,c[r>>2]|0,a[p>>0]|0)|0;qB(c[t>>2]|0);if(c[u>>2]|0)break;xJ(c[o>>2]|0,c[r>>2]|0,a[p>>0]|0,c[q>>2]|0,u);break}}while(0);c[n>>2]=c[u>>2];x=c[n>>2]|0;i=v;return x|0}function vJ(d,f,g,h){d=d|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+48|0;k=t+36|0;l=t+32|0;m=t+28|0;n=t+24|0;j=t+20|0;r=t+16|0;o=t+12|0;s=t+8|0;p=t+4|0;q=t;c[l>>2]=d;c[m>>2]=f;c[n>>2]=g;c[j>>2]=h;c[o>>2]=0;if((a[(c[l>>2]|0)+16>>0]|0)!=0?(c[s>>2]=Dg(c[m>>2]|0)|0,(c[s>>2]|0)!=0):0){c[k>>2]=c[s>>2];s=c[k>>2]|0;i=t;return s|0}if((e[(c[m>>2]|0)+24>>1]&2|0)!=0?(g=lt(c[m>>2]|0)|0,c[s>>2]=g,0!=(g|0)):0){c[k>>2]=c[s>>2];s=c[k>>2]|0;i=t;return s|0}if(!((c[j>>2]|0)!=0?1:(e[(c[m>>2]|0)+24>>1]&8|0)==0))c[o>>2]=c[(c[m>>2]|0)+20>>2];g=(c[m>>2]|0)+24|0;b[g>>1]=e[g>>1]&-9;c[r>>2]=Zr(c[l>>2]|0,c[n>>2]|0)|0;do if(c[r>>2]|0){j=(c[m>>2]|0)+24|0;b[j>>1]=e[j>>1]|e[(c[r>>2]|0)+24>>1]&8;j=c[r>>2]|0;if(a[(c[l>>2]|0)+16>>0]|0){AJ(j,(c[(c[l>>2]|0)+28>>2]|0)+1|0);break}else{ws(j);break}}while(0);c[p>>2]=c[(c[m>>2]|0)+20>>2];AJ(c[m>>2]|0,c[n>>2]|0);$r(c[m>>2]|0);if(a[(c[l>>2]|0)+16>>0]|0){AJ(c[r>>2]|0,c[p>>2]|0);zs(c[r>>2]|0)}do if(c[o>>2]|0){c[s>>2]=sg(c[l>>2]|0,c[o>>2]|0,q,0)|0;if(!(c[s>>2]|0)){s=(c[q>>2]|0)+24|0;b[s>>1]=e[s>>1]|8;$r(c[q>>2]|0);zs(c[q>>2]|0);break}if((c[o>>2]|0)>>>0<=(c[(c[l>>2]|0)+32>>2]|0)>>>0)hj(c[(c[l>>2]|0)+60>>2]|0,c[o>>2]|0,c[(c[l>>2]|0)+208>>2]|0);c[k>>2]=c[s>>2];s=c[k>>2]|0;i=t;return s|0}while(0);c[k>>2]=0;s=c[k>>2]|0;i=t;return s|0}function wJ(b){b=b|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;f=q+32|0;j=q+28|0;l=q+24|0;p=q+20|0;m=q+16|0;k=q+36|0;o=q+12|0;n=q+8|0;g=q+4|0;h=q;c[f>>2]=b;c[m>>2]=c[(c[f>>2]|0)+52>>2];a[k>>0]=a[c[f>>2]>>0]|0;c[o>>2]=c[(c[f>>2]|0)+84>>2];c[p>>2]=Kt(c[f>>2]|0)|0;if(c[p>>2]|0){n=a[k>>0]|0;o=c[f>>2]|0;a[o>>0]=n;p=c[p>>2]|0;i=q;return p|0}c[l>>2]=e[(c[f>>2]|0)+18>>1];c[j>>2]=0;while(1){b=c[f>>2]|0;if((c[j>>2]|0)>=(c[l>>2]|0))break;c[n>>2]=(c[b+56>>2]|0)+(e[(c[f>>2]|0)+20>>1]&(d[(c[(c[f>>2]|0)+64>>2]|0)+(c[j>>2]<<1)>>0]<<8|d[(c[(c[f>>2]|0)+64>>2]|0)+(c[j>>2]<<1)+1>>0]));zJ(c[f>>2]|0,c[n>>2]|0,p);if(!(a[(c[f>>2]|0)+4>>0]|0)){c[g>>2]=$q(c[n>>2]|0)|0;xJ(c[m>>2]|0,c[g>>2]|0,5,c[o>>2]|0,p)}c[j>>2]=(c[j>>2]|0)+1}if(a[b+4>>0]|0){n=a[k>>0]|0;o=c[f>>2]|0;a[o>>0]=n;p=c[p>>2]|0;i=q;return p|0}c[h>>2]=$q((c[(c[f>>2]|0)+56>>2]|0)+((d[(c[f>>2]|0)+5>>0]|0)+8)|0)|0;xJ(c[m>>2]|0,c[h>>2]|0,5,c[o>>2]|0,p);n=a[k>>0]|0;o=c[f>>2]|0;a[o>>0]=n;p=c[p>>2]|0;i=q;return p|0}function xJ(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+48|0;j=t+32|0;k=t+28|0;l=t+36|0;m=t+24|0;n=t+20|0;q=t+16|0;r=t+12|0;o=t+8|0;p=t+4|0;s=t;c[j>>2]=b;c[k>>2]=e;a[l>>0]=f;c[m>>2]=g;c[n>>2]=h;if(c[c[n>>2]>>2]|0){i=t;return}if(!(c[k>>2]|0)){s=Lj(56501)|0;c[c[n>>2]>>2]=s;i=t;return}c[o>>2]=lF(c[j>>2]|0,c[k>>2]|0)|0;c[s>>2]=sg(c[c[j>>2]>>2]|0,c[o>>2]|0,q,0)|0;if(c[s>>2]|0){c[c[n>>2]>>2]=c[s>>2];i=t;return}c[p>>2]=((c[k>>2]|0)-(c[o>>2]|0)-1|0)*5;do if((c[p>>2]|0)>=0){c[r>>2]=tg(c[q>>2]|0)|0;if((d[l>>0]|0|0)==(d[(c[r>>2]|0)+(c[p>>2]|0)>>0]|0|0)?(g=$q((c[r>>2]|0)+((c[p>>2]|0)+1)|0)|0,(g|0)==(c[m>>2]|0)):0)break;g=Dg(c[q>>2]|0)|0;c[s>>2]=g;c[c[n>>2]>>2]=g;if(!(c[s>>2]|0)){a[(c[r>>2]|0)+(c[p>>2]|0)>>0]=a[l>>0]|0;Xs((c[r>>2]|0)+((c[p>>2]|0)+1)|0,c[m>>2]|0)}}else{s=Lj(56512)|0;c[c[n>>2]>>2]=s}while(0);vg(c[q>>2]|0);i=t;return}function yJ(b,f,g,h){b=b|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+64|0;j=v+52|0;k=v+48|0;l=v+44|0;m=v+40|0;n=v+57|0;q=v+56|0;o=v+36|0;r=v+32|0;t=v+28|0;s=v+24|0;p=v;c[k>>2]=b;c[l>>2]=f;c[m>>2]=g;a[n>>0]=h;h=c[k>>2]|0;do if((d[n>>0]|0|0)==4){u=$q(c[h+56>>2]|0)|0;if((u|0)==(c[l>>2]|0)){Xs(c[(c[k>>2]|0)+56>>2]|0,c[m>>2]|0);break}c[j>>2]=Lj(58893)|0;u=c[j>>2]|0;i=v;return u|0}else{a[q>>0]=a[h>>0]|0;c[t>>2]=Kt(c[k>>2]|0)|0;if(c[t>>2]|0){c[j>>2]=c[t>>2];u=c[j>>2]|0;i=v;return u|0}c[r>>2]=e[(c[k>>2]|0)+18>>1];c[o>>2]=0;while(1){if((c[o>>2]|0)>=(c[r>>2]|0))break;c[s>>2]=(c[(c[k>>2]|0)+56>>2]|0)+((e[(c[k>>2]|0)+20>>1]|0)&((d[(c[(c[k>>2]|0)+64>>2]|0)+(c[o>>2]<<1)>>0]|0)<<8|(d[(c[(c[k>>2]|0)+64>>2]|0)+(c[o>>2]<<1)+1>>0]|0)));if((d[n>>0]|0|0)==3){Ub[c[(c[k>>2]|0)+80>>2]&255](c[k>>2]|0,c[s>>2]|0,p);if(((e[p+16>>1]|0)>>>0<(c[p+12>>2]|0)>>>0?((c[s>>2]|0)+(e[p+18>>1]|0)+-1|0)>>>0<=((c[(c[k>>2]|0)+56>>2]|0)+(e[(c[k>>2]|0)+20>>1]|0)|0)>>>0:0)?(t=c[l>>2]|0,(t|0)==($q((c[s>>2]|0)+(e[p+18>>1]|0)+-4|0)|0)):0){u=13;break}}else{t=$q(c[s>>2]|0)|0;if((t|0)==(c[l>>2]|0)){u=15;break}}c[o>>2]=(c[o>>2]|0)+1}if((u|0)==13)Xs((c[s>>2]|0)+(e[p+18>>1]|0)+-4|0,c[m>>2]|0);else if((u|0)==15)Xs(c[s>>2]|0,c[m>>2]|0);do if((c[o>>2]|0)==(c[r>>2]|0)){if((d[n>>0]|0|0)==5?(u=$q((c[(c[k>>2]|0)+56>>2]|0)+((d[(c[k>>2]|0)+5>>0]|0)+8)|0)|0,(u|0)==(c[l>>2]|0)):0){Xs((c[(c[k>>2]|0)+56>>2]|0)+((d[(c[k>>2]|0)+5>>0]|0)+8)|0,c[m>>2]|0);break}c[j>>2]=Lj(58929)|0;u=c[j>>2]|0;i=v;return u|0}while(0);a[c[k>>2]>>0]=a[q>>0]|0}while(0);c[j>>2]=0;u=c[j>>2]|0;i=v;return u|0}function zJ(a,b,d){a=a|0;b=b|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+48|0;f=l+36|0;g=l+32|0;h=l+28|0;j=l;k=l+24|0;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;if(c[c[h>>2]>>2]|0){i=l;return}Ub[c[(c[f>>2]|0)+80>>2]&255](c[f>>2]|0,c[g>>2]|0,j);if((e[j+16>>1]|0)>>>0>=(c[j+12>>2]|0)>>>0){i=l;return}c[k>>2]=$q((c[g>>2]|0)+((e[j+18>>1]|0)-4)|0)|0;xJ(c[(c[f>>2]|0)+52>>2]|0,c[k>>2]|0,3,c[(c[f>>2]|0)+84>>2]|0,c[h>>2]|0);i=l;return}function AJ(a,b){a=a|0;b=b|0;var d=0,f=0,g=0,h=0;f=i;i=i+16|0;d=f+8|0;g=f+4|0;h=f;c[d>>2]=a;c[g>>2]=b;c[h>>2]=c[(c[d>>2]|0)+28>>2];_b[c[148>>2]&255](c[(c[h>>2]|0)+44>>2]|0,c[c[d>>2]>>2]|0,c[(c[d>>2]|0)+20>>2]|0,c[g>>2]|0);c[(c[d>>2]|0)+20>>2]=c[g>>2];if(!((e[(c[d>>2]|0)+24>>1]|0)&2)){i=f;return}if(!((e[(c[d>>2]|0)+24>>1]|0)&8)){i=f;return}cj(c[d>>2]|0,3);i=f;return}function BJ(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;k=i;i=i+32|0;g=k+20|0;n=k+16|0;m=k+12|0;h=k+8|0;l=k+4|0;j=k;c[n>>2]=b;c[m>>2]=d;c[h>>2]=e;c[l>>2]=f;c[j>>2]=nF(c[n>>2]|0,c[m>>2]|0,c[h>>2]|0,c[l>>2]|0)|0;f=c[h>>2]|0;do if(!(c[j>>2]|0)){n=(Jt(c[(c[f>>2]|0)+72>>2]|0)|0)>1;f=c[c[h>>2]>>2]|0;if(!n){a[f>>0]=0;break}qB(f);c[c[h>>2]>>2]=0;c[g>>2]=Lj(57630)|0;n=c[g>>2]|0;i=k;return n|0}else c[f>>2]=0;while(0);c[g>>2]=c[j>>2];n=c[g>>2]|0;i=k;return n|0}function CJ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=i;i=i+16|0;g=f+8|0;d=f+4|0;e=f;c[g>>2]=a;c[d>>2]=b;c[e>>2]=c[(c[g>>2]|0)+60>>2];if(!(c[e>>2]|0)){g=0;g=g&1;i=f;return g|0}g=c[d>>2]|0;if(g>>>0>(jj(c[e>>2]|0)|0)>>>0){g=1;g=g&1;i=f;return g|0}g=(ij(c[e>>2]|0,c[d>>2]|0)|0)!=0;g=g&1;i=f;return g|0}function DJ(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;b=e;c[b>>2]=a;i=e;return d[(c[b>>2]|0)+16>>0]|0|0}function EJ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+16|0;f=k+12|0;g=k+8|0;h=k+4|0;j=k;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;if(!(c[h>>2]|0)){c[e>>2]=7;d=c[e>>2]|0;i=k;return d|0}if(cf(c[f>>2]|0,c[h>>2]|0,-1,j,0)|0){b=c[g>>2]|0;d=c[f>>2]|0;xj(b,d,bf(c[f>>2]|0)|0);c[e>>2]=Cf(c[f>>2]|0)|0;d=c[e>>2]|0;i=k;return d|0}else{ue(c[j>>2]|0)|0;c[e>>2]=JJ(c[f>>2]|0,c[j>>2]|0,c[g>>2]|0)|0;d=c[e>>2]|0;i=k;return d|0}return 0}function FJ(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;kg(c[e>>2]|0);c[b>>2]=KJ(c[e>>2]|0)|0;i=d;return c[b>>2]|0}function GJ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;e=k+20|0;f=k+16|0;g=k+12|0;l=k+8|0;h=k+4|0;j=k;c[f>>2]=a;c[g>>2]=b;c[l>>2]=d;c[j>>2]=cf(c[f>>2]|0,c[l>>2]|0,-1,h,0)|0;if(c[j>>2]|0){c[e>>2]=c[j>>2];l=c[e>>2]|0;i=k;return l|0}while(1){l=100==(ue(c[h>>2]|0)|0);a=c[f>>2]|0;if(!l){b=6;break}l=c[g>>2]|0;c[j>>2]=EJ(a,l,Fe(c[h>>2]|0,0)|0)|0;if(c[j>>2]|0){b=5;break}}if((b|0)==5){JJ(c[f>>2]|0,c[h>>2]|0,c[g>>2]|0)|0;c[e>>2]=c[j>>2];l=c[e>>2]|0;i=k;return l|0}else if((b|0)==6){c[e>>2]=JJ(a,c[h>>2]|0,c[g>>2]|0)|0;l=c[e>>2]|0;i=k;return l|0}return 0}function HJ(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+80|0;h=m+68|0;j=m+64|0;l=m+60|0;g=m+56|0;k=m+8|0;f=m;c[h>>2]=a;c[j>>2]=d;kg(c[h>>2]|0);kg(c[j>>2]|0);c[g>>2]=Bg(Of(c[h>>2]|0)|0)|0;if((c[c[g>>2]>>2]|0)!=0?(d=pg(c[j>>2]|0)|0,d=rR(d|0,((d|0)<0)<<31>>31|0,rg(c[j>>2]|0)|0,0)|0,a=f,c[a>>2]=d,c[a+4>>2]=C,a=vi(c[g>>2]|0,11,f)|0,c[l>>2]=a,c[l>>2]=(c[l>>2]|0)==12?0:a,(c[l>>2]|0)!=0):0){l=c[l>>2]|0;i=m;return l|0}f=k;g=f+48|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(g|0));c[k+20>>2]=c[c[j>>2]>>2];c[k+24>>2]=c[j>>2];c[k+4>>2]=c[h>>2];c[k+16>>2]=1;Vd(k,2147483647)|0;c[l>>2]=Wd(k)|0;if(!(c[l>>2]|0)){k=(c[(c[h>>2]|0)+4>>2]|0)+22|0;b[k>>1]=(e[k>>1]|0)&-3;l=c[l>>2]|0;i=m;return l|0}else{IJ(Of(c[k+4>>2]|0)|0);l=c[l>>2]|0;i=m;return l|0}return 0}function IJ(b){b=b|0;var e=0,f=0;f=i;i=i+16|0;e=f;c[e>>2]=b;if(a[(c[e>>2]|0)+16>>0]|0){i=f;return}if(d[(c[e>>2]|0)+13>>0]|0){i=f;return}Ui(c[e>>2]|0);i=f;return}function JJ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;h=i;i=i+16|0;e=h+12|0;j=h+8|0;f=h+4|0;g=h;c[e>>2]=a;c[j>>2]=b;c[f>>2]=d;c[g>>2]=Qg(c[j>>2]|0)|0;if(!(c[g>>2]|0)){j=c[g>>2]|0;i=h;return j|0}d=c[f>>2]|0;j=c[e>>2]|0;xj(d,j,bf(c[e>>2]|0)|0);j=c[g>>2]|0;i=h;return j|0}function KJ(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;c[b>>2]=(c[(c[(c[e>>2]|0)+4>>2]|0)+32>>2]|0)-(c[(c[(c[e>>2]|0)+4>>2]|0)+36>>2]|0);i=d;return c[b>>2]|0}function LJ(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+64|0;n=q+32|0;o=q+28|0;p=q+24|0;f=q+20|0;j=q+16|0;e=q+12|0;h=q+8|0;g=q+4|0;k=q;m=q+40|0;c[o>>2]=b;c[p>>2]=0;if((d[(c[o>>2]|0)+16>>0]|0)!=0?(c[(c[o>>2]|0)+44>>2]|0)!=0:0){c[n>>2]=c[(c[o>>2]|0)+44>>2];p=c[n>>2]|0;i=q;return p|0}do if((sr(c[o>>2]|0)|0)==0?(d[(c[o>>2]|0)+17>>0]|0)==0:0){c[f>>2]=1;c[p>>2]=ut(c[o>>2]|0,1)|0;if(!(c[p>>2]|0)){if((d[(c[o>>2]|0)+18>>0]|0)<=1)c[p>>2]=MJ(c[o>>2]|0,f)|0;if(!(c[p>>2]|0)){if(c[f>>2]|0){if(a[(c[o>>2]|0)+15>>0]|0){c[p>>2]=776;break}c[p>>2]=vt(c[o>>2]|0,4)|0;if(c[p>>2]|0)break;if((((c[c[(c[o>>2]|0)+68>>2]>>2]|0)==0?(c[j>>2]=c[c[o>>2]>>2],c[p>>2]=Nr(c[j>>2]|0,c[(c[o>>2]|0)+180>>2]|0,0,e)|0,(c[p>>2]|0)==0&(c[e>>2]|0)!=0):0)?(c[h>>2]=0,c[g>>2]=2050,c[p>>2]=Vr(c[j>>2]|0,c[(c[o>>2]|0)+180>>2]|0,c[(c[o>>2]|0)+68>>2]|0,c[g>>2]|0,h)|0,(c[p>>2]|0)==0):0)?(c[h>>2]&1|0)!=0:0){c[p>>2]=et(48855)|0;hr(c[(c[o>>2]|0)+68>>2]|0)|0}e=c[o>>2]|0;if(c[c[(c[o>>2]|0)+68>>2]>>2]|0){c[p>>2]=er(e)|0;if(!(c[p>>2]|0)){c[p>>2]=Lr(c[o>>2]|0,1)|0;a[(c[o>>2]|0)+17>>0]=0}}else if(!(a[e+4>>0]|0))wr(c[o>>2]|0,1)|0;if(c[p>>2]|0){fr(c[o>>2]|0,c[p>>2]|0)|0;break}}if((a[(c[o>>2]|0)+13>>0]|0)==0?(d[(c[o>>2]|0)+24>>0]|0)!=0:0){c[k>>2]=0;c[p>>2]=NJ(c[o>>2]|0,k)|0;if(c[p>>2]|0)break;if((c[k>>2]|0)>>>0>0){c[p>>2]=Wr(c[(c[o>>2]|0)+64>>2]|0,m,16,24,0)|0;if((c[p>>2]|0)!=0&(c[p>>2]|0)!=522)break}else{e=m;f=e+16|0;do{a[e>>0]=0;e=e+1|0}while((e|0)<(f|0))}if(vQ((c[o>>2]|0)+112|0,m,16)|0)Ui(c[o>>2]|0)}c[p>>2]=OJ(c[o>>2]|0)|0;l=35}}}else l=35;while(0);if((l|0)==35){if(sr(c[o>>2]|0)|0)c[p>>2]=PJ(c[o>>2]|0)|0;if((c[p>>2]|0)==0?(d[(c[o>>2]|0)+17>>0]|0)==0:0)c[p>>2]=NJ(c[o>>2]|0,(c[o>>2]|0)+28|0)|0}e=c[o>>2]|0;if(c[p>>2]|0)dr(e);else{a[e+17>>0]=1;a[(c[o>>2]|0)+24>>0]=1}c[n>>2]=c[p>>2];p=c[n>>2]|0;i=q;return p|0}function MJ(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;f=q+32|0;g=q+28|0;o=q+24|0;p=q+20|0;h=q+16|0;l=q+12|0;m=q+8|0;n=q+4|0;j=q;k=q+36|0;c[f>>2]=b;c[g>>2]=e;c[o>>2]=c[c[f>>2]>>2];c[p>>2]=0;c[h>>2]=1;c[l>>2]=((c[c[(c[f>>2]|0)+68>>2]>>2]|0)!=0^1^1)&1;c[c[g>>2]>>2]=0;if(!(c[l>>2]|0))c[p>>2]=Nr(c[o>>2]|0,c[(c[f>>2]|0)+180>>2]|0,0,h)|0;if(!((c[p>>2]|0)==0&(c[h>>2]|0)!=0)){p=c[p>>2]|0;i=q;return p|0}c[m>>2]=0;c[p>>2]=WJ(c[(c[f>>2]|0)+64>>2]|0,m)|0;if((c[p>>2]|0)!=0|(c[m>>2]|0)!=0){p=c[p>>2]|0;i=q;return p|0}c[p>>2]=NJ(c[f>>2]|0,n)|0;if(c[p>>2]|0){p=c[p>>2]|0;i=q;return p|0}if(!((c[n>>2]|0)!=0|(c[l>>2]|0)!=0)){Sj();if((vt(c[f>>2]|0,2)|0)==0?(qr(c[o>>2]|0,c[(c[f>>2]|0)+180>>2]|0,0)|0,(a[(c[f>>2]|0)+4>>0]|0)==0):0)wr(c[f>>2]|0,1)|0;Tj();p=c[p>>2]|0;i=q;return p|0}if(!(c[l>>2]|0)){c[j>>2]=2049;c[p>>2]=Vr(c[o>>2]|0,c[(c[f>>2]|0)+180>>2]|0,c[(c[f>>2]|0)+68>>2]|0,c[j>>2]|0,j)|0}if(!(c[p>>2]|0)){a[k>>0]=0;o=Wr(c[(c[f>>2]|0)+68>>2]|0,k,1,0,0)|0;c[p>>2]=o;c[p>>2]=(c[p>>2]|0)==522?0:o;if(!(c[l>>2]|0))hr(c[(c[f>>2]|0)+68>>2]|0)|0;c[c[g>>2]>>2]=(d[k>>0]|0)!=0&1;p=c[p>>2]|0;i=q;return p|0}else{if((c[p>>2]|0)!=14){p=c[p>>2]|0;i=q;return p|0}c[c[g>>2]>>2]=1;c[p>>2]=0;p=c[p>>2]|0;i=q;return p|0}return 0}function NJ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;d=k+24|0;e=k+20|0;f=k+16|0;h=k+12|0;g=k;j=k+8|0;c[e>>2]=a;c[f>>2]=b;c[h>>2]=VJ(c[(c[e>>2]|0)+216>>2]|0)|0;if(!(c[h>>2]|0)){b=g;c[b>>2]=0;c[b+4>>2]=0;if((c[c[(c[e>>2]|0)+64>>2]>>2]|0)!=0?(c[j>>2]=Si(c[(c[e>>2]|0)+64>>2]|0,g)|0,(c[j>>2]|0)!=0):0){c[d>>2]=c[j>>2];j=c[d>>2]|0;i=k;return j|0}j=g;b=c[(c[e>>2]|0)+160>>2]|0;b=gR(c[j>>2]|0,c[j+4>>2]|0,b|0,((b|0)<0)<<31>>31|0)|0;b=fR(b|0,C|0,1,0)|0;j=c[(c[e>>2]|0)+160>>2]|0;j=pR(b|0,C|0,j|0,((j|0)<0)<<31>>31|0)|0;c[h>>2]=j}if((c[h>>2]|0)>>>0>(c[(c[e>>2]|0)+164>>2]|0)>>>0)c[(c[e>>2]|0)+164>>2]=c[h>>2];c[c[f>>2]>>2]=c[h>>2];c[d>>2]=0;j=c[d>>2]|0;i=k;return j|0}function OJ(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;g=l+16|0;h=l+12|0;k=l+8|0;j=l+4|0;f=l;c[h>>2]=b;c[k>>2]=0;do if(!(a[(c[h>>2]|0)+13>>0]|0)){c[k>>2]=NJ(c[h>>2]|0,f)|0;if(c[k>>2]|0){c[g>>2]=c[k>>2];k=c[g>>2]|0;i=l;return k|0}b=c[c[h>>2]>>2]|0;e=c[(c[h>>2]|0)+220>>2]|0;if(!(c[f>>2]|0)){f=qr(b,e,0)|0;c[k>>2]=f;c[k>>2]=(c[k>>2]|0)==5898?0:f;c[j>>2]=0}else c[k>>2]=Nr(b,e,0,j)|0;if(!(c[k>>2]|0)){b=c[h>>2]|0;if(c[j>>2]|0){c[k>>2]=RJ(b,0)|0;break}if((d[b+5>>0]|0)==5)a[(c[h>>2]|0)+5>>0]=0}}while(0);c[g>>2]=c[k>>2];k=c[g>>2]|0;i=l;return k|0}function PJ(a){a=a|0;var b=0,d=0,e=0,f=0;e=i;i=i+16|0;b=e+8|0;d=e+4|0;f=e;c[b>>2]=a;c[f>>2]=0;Gs(c[(c[b>>2]|0)+216>>2]|0);c[d>>2]=QJ(c[(c[b>>2]|0)+216>>2]|0,f)|0;if(!((c[d>>2]|0)!=0|(c[f>>2]|0)!=0)){
  62. f=c[d>>2]|0;i=e;return f|0}Ui(c[b>>2]|0);f=c[d>>2]|0;i=e;return f|0}function QJ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;h=i;i=i+16|0;d=h+12|0;e=h+8|0;g=h+4|0;f=h;c[d>>2]=a;c[e>>2]=b;c[f>>2]=0;do{j=c[d>>2]|0;b=c[e>>2]|0;a=(c[f>>2]|0)+1|0;c[f>>2]=a;c[g>>2]=Ct(j,b,0,a)|0}while((c[g>>2]|0)==-1);i=h;return c[g>>2]|0}function RJ(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;e=k+12|0;f=k+8|0;g=k+4|0;h=k;c[f>>2]=b;c[g>>2]=d;c[h>>2]=0;do if((a[(c[f>>2]|0)+13>>0]|0)==0?(c[(c[f>>2]|0)+216>>2]|0)==0:0)if(aJ(c[f>>2]|0)|0){hr(c[(c[f>>2]|0)+68>>2]|0)|0;c[h>>2]=SJ(c[f>>2]|0)|0;if(c[h>>2]|0)break;a[(c[f>>2]|0)+5>>0]=5;a[(c[f>>2]|0)+17>>0]=0;break}else{c[e>>2]=14;j=c[e>>2]|0;i=k;return j|0}else j=7;while(0);if((j|0)==7)c[c[g>>2]>>2]=1;c[e>>2]=c[h>>2];j=c[e>>2]|0;i=k;return j|0}function SJ(b){b=b|0;var e=0,f=0,g=0;g=i;i=i+16|0;e=g+4|0;f=g;c[e>>2]=b;c[f>>2]=0;if(a[(c[e>>2]|0)+4>>0]|0)c[f>>2]=TJ(c[e>>2]|0)|0;if(c[f>>2]|0){b=c[e>>2]|0;Xi(b);f=c[f>>2]|0;i=g;return f|0}b=(c[e>>2]|0)+168|0;c[f>>2]=UJ(c[c[e>>2]>>2]|0,c[(c[e>>2]|0)+64>>2]|0,c[(c[e>>2]|0)+220>>2]|0,d[(c[e>>2]|0)+4>>0]|0,c[b>>2]|0,c[b+4>>2]|0,(c[e>>2]|0)+216|0)|0;b=c[e>>2]|0;Xi(b);f=c[f>>2]|0;i=g;return f|0}function TJ(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;c[d>>2]=vt(c[b>>2]|0,4)|0;if(!(c[d>>2]|0)){d=c[d>>2]|0;i=e;return d|0}wr(c[b>>2]|0,1)|0;d=c[d>>2]|0;i=e;return d|0}function UJ(d,e,f,g,h,j,k){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=i;i=i+48|0;l=w+44|0;m=w+40|0;n=w+36|0;o=w+32|0;p=w+28|0;q=w;r=w+24|0;v=w+20|0;u=w+16|0;s=w+12|0;t=w+8|0;c[m>>2]=d;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;f=q;c[f>>2]=h;c[f+4>>2]=j;c[r>>2]=k;c[c[r>>2]>>2]=0;c[u>>2]=ig(120+(c[(c[m>>2]|0)+4>>2]|0)|0,0)|0;if(!(c[u>>2]|0)){c[l>>2]=7;f=c[l>>2]|0;i=w;return f|0}c[c[u>>2]>>2]=c[m>>2];c[(c[u>>2]|0)+8>>2]=(c[u>>2]|0)+120;c[(c[u>>2]|0)+4>>2]=c[n>>2];b[(c[u>>2]|0)+40>>1]=-1;d=q;k=c[d+4>>2]|0;f=(c[u>>2]|0)+16|0;c[f>>2]=c[d>>2];c[f+4>>2]=k;c[(c[u>>2]|0)+108>>2]=c[o>>2];a[(c[u>>2]|0)+48>>0]=1;a[(c[u>>2]|0)+49>>0]=1;a[(c[u>>2]|0)+43>>0]=(c[p>>2]|0)!=0?2:0;c[s>>2]=524294;c[v>>2]=Vr(c[m>>2]|0,c[o>>2]|0,c[(c[u>>2]|0)+8>>2]|0,c[s>>2]|0,s)|0;if((c[v>>2]|0)==0?(c[s>>2]&1|0)!=0:0)a[(c[u>>2]|0)+46>>0]=1;if(c[v>>2]|0){Ls(c[u>>2]|0,0);hr(c[(c[u>>2]|0)+8>>2]|0)|0;Kd(c[u>>2]|0)}else{c[t>>2]=Sr(c[n>>2]|0)|0;if(c[t>>2]&1024)a[(c[u>>2]|0)+48>>0]=0;if(c[t>>2]&4096)a[(c[u>>2]|0)+49>>0]=0;c[c[r>>2]>>2]=c[u>>2]}c[l>>2]=c[v>>2];f=c[l>>2]|0;i=w;return f|0}function VJ(a){a=a|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f+4|0;e=f;c[e>>2]=a;if((c[e>>2]|0)!=0?(b[(c[e>>2]|0)+40>>1]|0)>=0:0){c[d>>2]=c[(c[e>>2]|0)+52+20>>2];a=c[d>>2]|0;i=f;return a|0}c[d>>2]=0;a=c[d>>2]|0;i=f;return a|0}function WJ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;b=Yb[c[(c[c[f>>2]>>2]|0)+36>>2]&255](c[f>>2]|0,c[e>>2]|0)|0;i=d;return b|0}function XJ(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=i;i=i+176|0;d=g+168|0;f=g+164|0;b=g+160|0;e=g;c[d>>2]=a;kR(e|0,0,160)|0;while(1){if(!(c[d>>2]|0))break;c[b>>2]=c[(c[d>>2]|0)+8>>2];c[(c[d>>2]|0)+8>>2]=0;c[f>>2]=0;while(1){if(!(c[e+(c[f>>2]<<2)>>2]|0))break;c[d>>2]=_J(c[e+(c[f>>2]<<2)>>2]|0,c[d>>2]|0)|0;c[e+(c[f>>2]<<2)>>2]=0;c[f>>2]=(c[f>>2]|0)+1}c[e+(c[f>>2]<<2)>>2]=c[d>>2];c[d>>2]=c[b>>2]}c[d>>2]=0;c[f>>2]=0;while(1){a=c[d>>2]|0;if((c[f>>2]|0)>>>0>=40)break;c[d>>2]=_J(a,c[e+(c[f>>2]<<2)>>2]|0)|0;c[f>>2]=(c[f>>2]|0)+1}i=g;return a|0}function YJ(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=i;i=i+16|0;b=g+12|0;d=g+8|0;e=g+4|0;f=g;c[b>>2]=a;c[e>>2]=c[b>>2];c[b>>2]=c[(c[e>>2]|0)+8>>2];c[(c[e>>2]|0)+8>>2]=0;c[(c[e>>2]|0)+12>>2]=0;c[d>>2]=1;while(1){a=c[e>>2]|0;if(!(c[b>>2]|0))break;c[f>>2]=a;c[e>>2]=c[b>>2];c[b>>2]=c[(c[e>>2]|0)+8>>2];c[(c[e>>2]|0)+12>>2]=c[f>>2];a=aK(b,c[d>>2]|0)|0;c[(c[e>>2]|0)+8>>2]=a;c[d>>2]=(c[d>>2]|0)+1}i=g;return a|0}function ZJ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;g=j+12|0;e=j+8|0;h=j+4|0;f=j;c[g>>2]=a;c[e>>2]=b;c[h>>2]=d;a=c[g>>2]|0;if(c[(c[g>>2]|0)+12>>2]|0){ZJ(c[a+12>>2]|0,c[e>>2]|0,f);c[(c[f>>2]|0)+8>>2]=c[g>>2]}else c[c[e>>2]>>2]=a;a=c[g>>2]|0;if(c[(c[g>>2]|0)+8>>2]|0){ZJ(c[a+8>>2]|0,(c[g>>2]|0)+8|0,c[h>>2]|0);i=j;return}else{c[c[h>>2]>>2]=a;i=j;return}}function _J(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;h=i;i=i+32|0;d=h+24|0;e=h+20|0;f=h;g=h+16|0;c[d>>2]=a;c[e>>2]=b;c[g>>2]=f;while(1){a=c[d>>2]|0;if(!((c[d>>2]|0)!=0?(c[e>>2]|0)!=0:0))break;k=c[a+4>>2]|0;b=c[e>>2]|0;j=c[b+4>>2]|0;if((k|0)<(j|0)|((k|0)==(j|0)?(c[a>>2]|0)>>>0<(c[b>>2]|0)>>>0:0)){c[(c[g>>2]|0)+8>>2]=c[d>>2];c[d>>2]=c[(c[d>>2]|0)+8>>2];c[g>>2]=c[(c[g>>2]|0)+8>>2];continue}j=c[e>>2]|0;a=c[j+4>>2]|0;k=c[d>>2]|0;b=c[k+4>>2]|0;if((a|0)<(b|0)|((a|0)==(b|0)?(c[j>>2]|0)>>>0<(c[k>>2]|0)>>>0:0)){c[(c[g>>2]|0)+8>>2]=c[e>>2];c[e>>2]=c[(c[e>>2]|0)+8>>2];c[g>>2]=c[(c[g>>2]|0)+8>>2];continue}else{c[d>>2]=c[(c[d>>2]|0)+8>>2];continue}}if(a){c[(c[g>>2]|0)+8>>2]=c[d>>2];k=f+8|0;k=c[k>>2]|0;i=h;return k|0}else{c[(c[g>>2]|0)+8>>2]=c[e>>2];k=f+8|0;k=c[k>>2]|0;i=h;return k|0}return 0}function $J(a){a=a|0;var d=0,f=0,g=0,h=0;h=i;i=i+16|0;d=h+8|0;f=h+4|0;g=h;c[f>>2]=a;do if(!(e[(c[f>>2]|0)+24>>1]|0)){c[g>>2]=Fw(c[(c[f>>2]|0)+4>>2]|0,1016,0)|0;if(c[g>>2]|0){c[c[g>>2]>>2]=c[c[f>>2]>>2];c[c[f>>2]>>2]=c[g>>2];c[(c[f>>2]|0)+16>>2]=(c[g>>2]|0)+8;b[(c[f>>2]|0)+24>>1]=63;break}c[d>>2]=0;g=c[d>>2]|0;i=h;return g|0}while(0);a=(c[f>>2]|0)+24|0;b[a>>1]=(b[a>>1]|0)+-1<<16>>16;a=(c[f>>2]|0)+16|0;g=c[a>>2]|0;c[a>>2]=g+16;c[d>>2]=g;g=c[d>>2]|0;i=h;return g|0}function aK(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+32|0;e=j+16|0;f=j+12|0;g=j+8|0;h=j+4|0;d=j;c[f>>2]=a;c[g>>2]=b;if(!(c[c[f>>2]>>2]|0)){c[e>>2]=0;h=c[e>>2]|0;i=j;return h|0}b=c[f>>2]|0;if((c[g>>2]|0)==1){c[h>>2]=c[b>>2];c[c[f>>2]>>2]=c[(c[h>>2]|0)+8>>2];c[(c[h>>2]|0)+8>>2]=0;c[(c[h>>2]|0)+12>>2]=0;c[e>>2]=c[h>>2];h=c[e>>2]|0;i=j;return h|0}c[d>>2]=aK(b,(c[g>>2]|0)-1|0)|0;c[h>>2]=c[c[f>>2]>>2];b=c[d>>2]|0;if(!(c[h>>2]|0)){c[e>>2]=b;h=c[e>>2]|0;i=j;return h|0}else{c[(c[h>>2]|0)+12>>2]=b;c[c[f>>2]>>2]=c[(c[h>>2]|0)+8>>2];g=aK(c[f>>2]|0,(c[g>>2]|0)-1|0)|0;c[(c[h>>2]|0)+8>>2]=g;c[e>>2]=c[h>>2];h=c[e>>2]|0;i=j;return h|0}return 0}function bK(a){a=a|0;var d=0,f=0;f=i;i=i+16|0;d=f;c[d>>2]=a;if(!((e[(c[d>>2]|0)+26>>1]|0)&1)){a=XJ(c[(c[d>>2]|0)+8>>2]|0)|0;c[(c[d>>2]|0)+8>>2]=a}a=(c[d>>2]|0)+26|0;b[a>>1]=e[a>>1]|0|2;i=f;return}function cK(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;g=i;i=i+16|0;j=g+12|0;k=g+8|0;h=g+4|0;f=g;c[j>>2]=a;c[k>>2]=d;c[h>>2]=e;c[f>>2]=c[k>>2];c[c[f>>2]>>2]=0;c[(c[f>>2]|0)+4>>2]=c[j>>2];c[(c[f>>2]|0)+8>>2]=0;c[(c[f>>2]|0)+12>>2]=0;c[(c[f>>2]|0)+20>>2]=0;c[(c[f>>2]|0)+16>>2]=(c[f>>2]|0)+32;b[(c[f>>2]|0)+24>>1]=(((c[h>>2]|0)-32|0)>>>0)/16|0;b[(c[f>>2]|0)+26>>1]=1;c[(c[f>>2]|0)+28>>2]=0;i=g;return c[f>>2]|0}function dK(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;h=f+4|0;g=f;c[h>>2]=b;c[g>>2]=e;b=(c[(c[h>>2]|0)+8>>2]|0)+(((c[g>>2]|0)>>>0)/8|0)|0;a[b>>0]=d[b>>0]|0|1<<(c[g>>2]&7);i=f;return}function eK(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=i;i=i+80|0;o=x+32|0;p=x+24|0;w=x+16|0;v=x;q=x+76|0;h=x+72|0;r=x+68|0;s=x+64|0;j=x+60|0;t=x+56|0;u=x+52|0;n=x+48|0;m=x+44|0;l=x+40|0;k=x+36|0;c[q>>2]=b;c[h>>2]=e;c[r>>2]=f;c[s>>2]=g;c[t>>2]=c[s>>2];c[u>>2]=c[r>>2];while(1){b=c[s>>2]|0;c[s>>2]=b+-1;if((b|0)<=0){g=25;break}if(!(c[(c[q>>2]|0)+16>>2]|0)){g=25;break}f=c[q>>2]|0;if((c[r>>2]|0)<1){g=5;break}if(jK(f,c[r>>2]|0)|0){g=25;break}if(sg(c[(c[q>>2]|0)+4>>2]|0,c[r>>2]|0,n,0)|0){g=8;break}c[m>>2]=tg(c[n>>2]|0)|0;do if(!(c[h>>2]|0)){if((c[s>>2]|0)>0?(d[(c[c[q>>2]>>2]|0)+17>>0]|0)!=0:0){c[j>>2]=$q(c[m>>2]|0)|0;fK(c[q>>2]|0,c[j>>2]|0,4,c[r>>2]|0)}}else{c[l>>2]=$q((c[m>>2]|0)+4|0)|0;if(a[(c[c[q>>2]>>2]|0)+17>>0]|0)fK(c[q>>2]|0,c[r>>2]|0,2,0);if((c[l>>2]|0)>(((c[(c[c[q>>2]>>2]|0)+36>>2]|0)/4|0)-2|0)){b=c[q>>2]|0;c[p>>2]=c[r>>2];iK(b,43167,p);c[s>>2]=(c[s>>2]|0)+-1;break}c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[l>>2]|0))break;c[k>>2]=$q((c[m>>2]|0)+(8+(c[j>>2]<<2))|0)|0;if(a[(c[c[q>>2]>>2]|0)+17>>0]|0)fK(c[q>>2]|0,c[k>>2]|0,2,0);jK(c[q>>2]|0,c[k>>2]|0)|0;c[j>>2]=(c[j>>2]|0)+1}c[s>>2]=(c[s>>2]|0)-(c[l>>2]|0)}while(0);c[r>>2]=$q(c[m>>2]|0)|0;vg(c[n>>2]|0);if(!(c[h>>2]|0))continue;if((c[s>>2]|0)>=((c[r>>2]|0)!=0|0))continue;iK(c[q>>2]|0,43206,o)}if((g|0)==5){t=c[t>>2]|0;w=c[u>>2]|0;c[v>>2]=(c[s>>2]|0)+1;c[v+4>>2]=t;c[v+8>>2]=w;iK(f,43088,v);i=x;return}else if((g|0)==8){v=c[q>>2]|0;c[w>>2]=c[r>>2];iK(v,43145,w);i=x;return}else if((g|0)==25){i=x;return}}function fK(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+64|0;q=r+8|0;p=r;h=r+44|0;j=r+40|0;k=r+49|0;l=r+36|0;o=r+32|0;m=r+48|0;n=r+28|0;c[h>>2]=b;c[j>>2]=e;a[k>>0]=f;c[l>>2]=g;c[o>>2]=mF(c[c[h>>2]>>2]|0,c[j>>2]|0,m,n)|0;if(c[o>>2]|0){if((c[o>>2]|0)==7|(c[o>>2]|0)==3082)c[(c[h>>2]|0)+24>>2]=1;q=c[h>>2]|0;c[p>>2]=c[j>>2];iK(q,43005,p);i=r;return}if((d[m>>0]|0|0)==(d[k>>0]|0|0)?(c[n>>2]|0)==(c[l>>2]|0):0){i=r;return}p=c[h>>2]|0;e=d[k>>0]|0;g=c[l>>2]|0;b=d[m>>0]|0;o=c[n>>2]|0;c[q>>2]=c[j>>2];c[q+4>>2]=e;c[q+8>>2]=g;c[q+12>>2]=b;c[q+16>>2]=o;iK(p,43034,q);i=r;return}function gK(b,f,g,h,j){b=b|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0;ca=i;i=i+256|0;Z=ca+96|0;Y=ca+88|0;X=ca+80|0;W=ca+72|0;$=ca+64|0;_=ca+48|0;m=ca+40|0;l=ca+32|0;n=ca+240|0;o=ca+236|0;p=ca+232|0;q=ca+228|0;r=ca+24|0;K=ca+224|0;A=ca+220|0;k=ca+216|0;w=ca+212|0;u=ca+208|0;M=ca+204|0;F=ca+200|0;y=ca+196|0;s=ca+192|0;E=ca+188|0;x=ca+184|0;D=ca+180|0;v=ca+176|0;I=ca+172|0;J=ca+168|0;H=ca+164|0;L=ca+160|0;V=ca+156|0;t=ca+152|0;z=ca+148|0;aa=ca+144|0;O=ca+140|0;S=ca+136|0;Q=ca+132|0;R=ca+128|0;P=ca+244|0;B=ca;G=ca+124|0;N=ca+120|0;T=ca+116|0;U=ca+112|0;C=ca+108|0;c[o>>2]=b;c[p>>2]=f;c[q>>2]=g;g=r;c[g>>2]=h;c[g+4>>2]=j;c[K>>2]=0;c[w>>2]=-1;c[x>>2]=1;c[D>>2]=1;c[z>>2]=0;c[O>>2]=0;c[S>>2]=c[(c[o>>2]|0)+28>>2];c[Q>>2]=c[(c[o>>2]|0)+32>>2];c[R>>2]=c[(c[o>>2]|0)+36>>2];a[P>>0]=0;c[H>>2]=c[c[o>>2]>>2];c[V>>2]=c[(c[H>>2]|0)+36>>2];if(!(c[p>>2]|0)){c[n>>2]=0;ba=c[n>>2]|0;i=ca;return ba|0}if(jK(c[o>>2]|0,c[p>>2]|0)|0){c[n>>2]=0;ba=c[n>>2]|0;i=ca;return ba|0}c[(c[o>>2]|0)+28>>2]=42625;c[(c[o>>2]|0)+32>>2]=c[p>>2];g=nF(c[H>>2]|0,c[p>>2]|0,K,0)|0;c[k>>2]=g;do if(!g){a[P>>0]=a[c[K>>2]>>0]|0;a[c[K>>2]>>0]=0;l=Kt(c[K>>2]|0)|0;c[k>>2]=l;if(l){ba=c[o>>2]|0;c[m>>2]=c[k>>2];iK(ba,42673,m);break}c[v>>2]=c[(c[K>>2]|0)+56>>2];c[y>>2]=d[(c[K>>2]|0)+5>>0];c[(c[o>>2]|0)+28>>2]=42711;c[t>>2]=((d[(c[v>>2]|0)+((c[y>>2]|0)+5)>>0]<<8|d[(c[v>>2]|0)+((c[y>>2]|0)+5)+1>>0])-1&65535)+1;c[E>>2]=d[(c[v>>2]|0)+((c[y>>2]|0)+3)>>0]<<8|d[(c[v>>2]|0)+((c[y>>2]|0)+3)+1>>0];c[s>>2]=(c[y>>2]|0)+12-(d[(c[K>>2]|0)+4>>0]<<2);c[J>>2]=(c[v>>2]|0)+((c[s>>2]|0)+((c[E>>2]|0)-1<<1));if(a[(c[K>>2]|0)+4>>0]|0){c[z>>2]=c[(c[o>>2]|0)+68>>2];c[c[z>>2]>>2]=0}else{c[M>>2]=$q((c[v>>2]|0)+((c[y>>2]|0)+8)|0)|0;if(a[(c[H>>2]|0)+17>>0]|0){c[(c[o>>2]|0)+28>>2]=42737;fK(c[o>>2]|0,c[M>>2]|0,5,c[p>>2]|0)}m=r;c[w>>2]=gK(c[o>>2]|0,c[M>>2]|0,r,c[m>>2]|0,c[m+4>>2]|0)|0;c[D>>2]=0}c[A>>2]=(c[E>>2]|0)-1;while(1){if((c[A>>2]|0)<0)break;if(!(c[(c[o>>2]|0)+16>>2]|0))break;c[(c[o>>2]|0)+36>>2]=c[A>>2];c[L>>2]=d[c[J>>2]>>0]<<8|d[(c[J>>2]|0)+1>>0];c[J>>2]=(c[J>>2]|0)+-2;do if((c[L>>2]|0)>>>0>=(c[t>>2]|0)>>>0?(c[L>>2]|0)>>>0<=((c[V>>2]|0)-4|0)>>>0:0){c[I>>2]=(c[v>>2]|0)+(c[L>>2]|0);Ub[c[(c[K>>2]|0)+80>>2]&255](c[K>>2]|0,c[I>>2]|0,B);if(((c[L>>2]|0)+(e[B+18>>1]|0)|0)>>>0>(c[V>>2]|0)>>>0){iK(c[o>>2]|0,42795,$);c[x>>2]=0;break}if(a[(c[K>>2]|0)+2>>0]|0){j=B;h=c[j>>2]|0;j=c[j+4>>2]|0;b=r;f=c[b>>2]|0;b=c[b+4>>2]|0;if(c[D>>2]|0){if((j|0)>(b|0)|(j|0)==(b|0)&h>>>0>f>>>0)ba=26}else if((j|0)>(b|0)|(j|0)==(b|0)&h>>>0>=f>>>0)ba=26;if((ba|0)==26){ba=0;m=c[o>>2]|0;g=B;k=c[g+4>>2]|0;l=W;c[l>>2]=c[g>>2];c[l+4>>2]=k;iK(m,42819,W)}k=B;l=c[k+4>>2]|0;m=r;c[m>>2]=c[k>>2];c[m+4>>2]=l}if((c[B+12>>2]|0)>>>0>(e[B+16>>1]|0)>>>0){c[G>>2]=(((c[B+12>>2]|0)-(e[B+16>>1]|0)+(c[V>>2]|0)-5|0)>>>0)/(((c[V>>2]|0)-4|0)>>>0)|0;c[N>>2]=$q((c[I>>2]|0)+((e[B+18>>1]|0)-4)|0)|0;if(a[(c[H>>2]|0)+17>>0]|0)fK(c[o>>2]|0,c[N>>2]|0,3,c[p>>2]|0);eK(c[o>>2]|0,0,c[N>>2]|0,c[G>>2]|0)}if(a[(c[K>>2]|0)+4>>0]|0){kK(c[z>>2]|0,c[L>>2]<<16|(c[L>>2]|0)+(e[B+18>>1]|0)-1);break}c[M>>2]=$q(c[I>>2]|0)|0;if(a[(c[H>>2]|0)+17>>0]|0)fK(c[o>>2]|0,c[M>>2]|0,5,c[p>>2]|0);m=r;c[u>>2]=gK(c[o>>2]|0,c[M>>2]|0,r,c[m>>2]|0,c[m+4>>2]|0)|0;c[D>>2]=0;if((c[u>>2]|0)!=(c[w>>2]|0)){iK(c[o>>2]|0,42843,X);c[w>>2]=c[u>>2]}}else ba=19;while(0);if((ba|0)==19){ba=0;m=c[o>>2]|0;k=c[t>>2]|0;l=(c[V>>2]|0)-4|0;c[_>>2]=c[L>>2];c[_+4>>2]=k;c[_+8>>2]=l;iK(m,42765,_);c[x>>2]=0}c[A>>2]=(c[A>>2]|0)+-1}X=r;_=c[X+4>>2]|0;$=c[q>>2]|0;c[$>>2]=c[X>>2];c[$+4>>2]=_;c[(c[o>>2]|0)+28>>2]=0;if((c[x>>2]|0)!=0?(c[(c[o>>2]|0)+16>>2]|0)>0:0){a:do if(!(a[(c[K>>2]|0)+4>>0]|0)){c[z>>2]=c[(c[o>>2]|0)+68>>2];c[c[z>>2]>>2]=0;c[A>>2]=(c[E>>2]|0)-1;while(1){if((c[A>>2]|0)<0)break a;c[L>>2]=d[(c[v>>2]|0)+((c[s>>2]|0)+(c[A>>2]<<1))>>0]<<8|d[(c[v>>2]|0)+((c[s>>2]|0)+(c[A>>2]<<1))+1>>0];c[T>>2]=(Yb[c[(c[K>>2]|0)+76>>2]&255](c[K>>2]|0,(c[v>>2]|0)+(c[L>>2]|0)|0)|0)&65535;kK(c[z>>2]|0,c[L>>2]<<16|(c[L>>2]|0)+(c[T>>2]|0)-1);c[A>>2]=(c[A>>2]|0)+-1}}while(0);c[A>>2]=d[(c[v>>2]|0)+((c[y>>2]|0)+1)>>0]<<8|d[(c[v>>2]|0)+((c[y>>2]|0)+1)+1>>0];while(1){if((c[A>>2]|0)<=0)break;c[U>>2]=d[(c[v>>2]|0)+((c[A>>2]|0)+2)>>0]<<8|d[(c[v>>2]|0)+((c[A>>2]|0)+2)+1>>0];kK(c[z>>2]|0,c[A>>2]<<16|(c[A>>2]|0)+(c[U>>2]|0)-1);c[C>>2]=d[(c[v>>2]|0)+(c[A>>2]|0)>>0]<<8|d[(c[v>>2]|0)+(c[A>>2]|0)+1>>0];c[A>>2]=c[C>>2]}c[F>>2]=0;c[O>>2]=(c[t>>2]|0)-1;while(1){if(!(lK(c[z>>2]|0,aa)|0))break;if((c[O>>2]&65535)>>>0>=(c[aa>>2]|0)>>>16>>>0){ba=51;break}c[F>>2]=(c[F>>2]|0)+(((c[aa>>2]|0)>>>16)-(c[O>>2]&65535)-1);c[O>>2]=c[aa>>2]}if((ba|0)==51){ba=c[o>>2]|0;$=c[p>>2]|0;c[Y>>2]=(c[aa>>2]|0)>>>16;c[Y+4>>2]=$;iK(ba,42868,Y)}c[F>>2]=(c[F>>2]|0)+((c[V>>2]|0)-(c[O>>2]&65535)-1);if((c[c[z>>2]>>2]|0)==0?(c[F>>2]|0)!=(d[(c[v>>2]|0)+((c[y>>2]|0)+7)>>0]|0):0){ba=c[o>>2]|0;$=d[(c[v>>2]|0)+((c[y>>2]|0)+7)>>0]|0;aa=c[p>>2]|0;c[Z>>2]=c[F>>2];c[Z+4>>2]=$;c[Z+8>>2]=aa;iK(ba,42905,Z)}}}else{ba=c[o>>2]|0;c[l>>2]=c[k>>2];iK(ba,42635,l)}while(0);if(!(c[x>>2]|0))a[c[K>>2]>>0]=a[P>>0]|0;qB(c[K>>2]|0);c[(c[o>>2]|0)+28>>2]=c[S>>2];c[(c[o>>2]|0)+32>>2]=c[Q>>2];c[(c[o>>2]|0)+36>>2]=c[R>>2];c[n>>2]=(c[w>>2]|0)+1;ba=c[n>>2]|0;i=ca;return ba|0}function hK(a,b){a=a|0;b=b|0;var e=0,f=0,g=0;g=i;i=i+16|0;f=g+4|0;e=g;c[f>>2]=a;c[e>>2]=b;i=g;return(d[(c[(c[f>>2]|0)+8>>2]|0)+(((c[e>>2]|0)>>>0)/8|0)>>0]|0)&1<<(c[e>>2]&7)|0}function iK(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;j=k;f=k+28|0;g=k+24|0;h=k+8|0;c[f>>2]=a;c[g>>2]=b;if(!(c[(c[f>>2]|0)+16>>2]|0)){i=k;return}b=(c[f>>2]|0)+16|0;c[b>>2]=(c[b>>2]|0)+-1;b=(c[f>>2]|0)+20|0;c[b>>2]=(c[b>>2]|0)+1;c[h>>2]=e;if(c[(c[f>>2]|0)+40+12>>2]|0)aA((c[f>>2]|0)+40|0,42623,1);if(c[(c[f>>2]|0)+28>>2]|0){e=(c[f>>2]|0)+40|0;b=c[(c[f>>2]|0)+28>>2]|0;a=c[(c[f>>2]|0)+36>>2]|0;c[j>>2]=c[(c[f>>2]|0)+32>>2];c[j+4>>2]=a;$z(e,b,j)}dg((c[f>>2]|0)+40|0,c[g>>2]|0,h);if((d[(c[f>>2]|0)+40+24>>0]|0|0)!=1){i=k;return}c[(c[f>>2]|0)+24>>2]=1;i=k;return}function jK(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+32|0;h=j+8|0;e=j;g=j+20|0;d=j+16|0;f=j+12|0;c[d>>2]=a;c[f>>2]=b;do if(c[f>>2]|0){b=c[d>>2]|0;a=c[f>>2]|0;if((c[f>>2]|0)>>>0>(c[(c[d>>2]|0)+12>>2]|0)>>>0){c[e>>2]=a;iK(b,42957,e);c[g>>2]=1;break}e=(hK(b,a)|0)!=0;a=c[d>>2]|0;b=c[f>>2]|0;if(e){c[h>>2]=b;iK(a,42980,h);c[g>>2]=1;break}else{dK(a,b);c[g>>2]=0;break}}else c[g>>2]=1;while(0);i=j;return c[g>>2]|0}function kK(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;d=h+12|0;e=h+8|0;g=h+4|0;f=h;c[d>>2]=a;c[e>>2]=b;a=c[d>>2]|0;b=(c[a>>2]|0)+1|0;c[a>>2]=b;c[f>>2]=b;c[(c[d>>2]|0)+(c[f>>2]<<2)>>2]=c[e>>2];while(1){b=((c[f>>2]|0)>>>0)/2|0;c[g>>2]=b;if(b>>>0<=0){d=5;break}if((c[(c[d>>2]|0)+(c[g>>2]<<2)>>2]|0)>>>0<=(c[(c[d>>2]|0)+(c[f>>2]<<2)>>2]|0)>>>0){d=5;break}c[e>>2]=c[(c[d>>2]|0)+(c[g>>2]<<2)>>2];c[(c[d>>2]|0)+(c[g>>2]<<2)>>2]=c[(c[d>>2]|0)+(c[f>>2]<<2)>>2];c[(c[d>>2]|0)+(c[f>>2]<<2)>>2]=c[e>>2];c[f>>2]=c[g>>2]}if((d|0)==5){i=h;return}}function lK(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;d=k+20|0;e=k+16|0;f=k+12|0;h=k+8|0;g=k+4|0;j=k;c[e>>2]=a;c[f>>2]=b;b=c[c[e>>2]>>2]|0;c[j>>2]=b;if(!b){c[d>>2]=0;j=c[d>>2]|0;i=k;return j|0}c[c[f>>2]>>2]=c[(c[e>>2]|0)+4>>2];c[(c[e>>2]|0)+4>>2]=c[(c[e>>2]|0)+(c[j>>2]<<2)>>2];c[(c[e>>2]|0)+(c[j>>2]<<2)>>2]=-1;b=c[e>>2]|0;c[b>>2]=(c[b>>2]|0)+-1;c[g>>2]=1;while(1){b=c[g>>2]<<1;c[h>>2]=b;if(b>>>0>(c[c[e>>2]>>2]|0)>>>0)break;if((c[(c[e>>2]|0)+(c[h>>2]<<2)>>2]|0)>>>0>(c[(c[e>>2]|0)+((c[h>>2]|0)+1<<2)>>2]|0)>>>0)c[h>>2]=(c[h>>2]|0)+1;if((c[(c[e>>2]|0)+(c[g>>2]<<2)>>2]|0)>>>0<(c[(c[e>>2]|0)+(c[h>>2]<<2)>>2]|0)>>>0)break;c[j>>2]=c[(c[e>>2]|0)+(c[g>>2]<<2)>>2];c[(c[e>>2]|0)+(c[g>>2]<<2)>>2]=c[(c[e>>2]|0)+(c[h>>2]<<2)>>2];c[(c[e>>2]|0)+(c[h>>2]<<2)>>2]=c[j>>2];c[g>>2]=c[h>>2]}c[d>>2]=1;j=c[d>>2]|0;i=k;return j|0}function mK(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;if(!(c[b>>2]|0)){a=c[b>>2]|0;Kd(a);i=e;return}c[d>>2]=0;while(1){if((c[d>>2]|0)>=(c[c[b>>2]>>2]|0))break;qK((c[(c[b>>2]|0)+12>>2]|0)+((c[d>>2]|0)*56|0)|0);c[d>>2]=(c[d>>2]|0)+1}a=c[b>>2]|0;Kd(a);i=e;return}function nK(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=i;i=i+16|0;f=e+4|0;d=e;c[f>>2]=a;c[d>>2]=b;Sf(c[f>>2]|0,c[(c[d>>2]|0)+12>>2]|0);oK(0,c[(c[d>>2]|0)+16>>2]|0);if(c[(c[d>>2]|0)+40>>2]|0)pK(c[(c[d>>2]|0)+40>>2]|0)|0;if(!(c[(c[d>>2]|0)+56>>2]|0)){d=c[d>>2]|0;a=d+72|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(a|0));i=e;return}pK(c[(c[d>>2]|0)+56>>2]|0)|0;d=c[d>>2]|0;a=d+72|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(a|0));i=e;return}function oK(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=i;i=i+16|0;d=g+12|0;h=g+8|0;e=g+4|0;f=g;c[d>>2]=a;c[h>>2]=b;c[e>>2]=c[h>>2];while(1){if(!(c[e>>2]|0))break;c[f>>2]=c[(c[e>>2]|0)+4>>2];Sf(c[d>>2]|0,c[e>>2]|0);c[e>>2]=c[f>>2]}i=g;return}function pK(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;c[b>>2]=0;c[b>>2]=hr(c[e>>2]|0)|0;Kd(c[e>>2]|0);i=d;return c[b>>2]|0}function qK(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;Kd(c[(c[b>>2]|0)+28>>2]|0);Kd(c[(c[b>>2]|0)+36>>2]|0);if(c[(c[b>>2]|0)+44>>2]|0)Cs(c[(c[b>>2]|0)+24>>2]|0,0,0,c[(c[b>>2]|0)+44>>2]|0)|0;rK(c[(c[b>>2]|0)+48>>2]|0);b=c[b>>2]|0;a=b+56|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(a|0));i=d;return}function rK(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(!(c[b>>2]|0)){i=d;return}mK(c[(c[b>>2]|0)+4>>2]|0);Kd(c[b>>2]|0);i=d;return}function sK(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;h=m+16|0;j=m;k=m+12|0;l=m+8|0;c[h>>2]=b;b=j;c[b>>2]=e;c[b+4>>2]=f;c[k>>2]=g;if(!(d[(c[h>>2]|0)+11>>0]|0)){i=m;return}a[(c[h>>2]|0)+11>>0]=0;c[l>>2]=c[(c[(c[h>>2]|0)+4>>2]|0)+8>>2];while(1){if(!(c[l>>2]|0))break;do if((d[(c[l>>2]|0)+64>>0]|0)&16){a[(c[h>>2]|0)+11>>0]=1;if((c[k>>2]|0)==0?(g=(c[l>>2]|0)+16|0,b=j,!((c[g>>2]|0)==(c[b>>2]|0)?(c[g+4>>2]|0)==(c[b+4>>2]|0):0)):0)break;a[(c[l>>2]|0)+66>>0]=0}while(0);c[l>>2]=c[(c[l>>2]|0)+8>>2]}i=m;return}function tK(b,f,g,h){b=b|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+48|0;p=u+36|0;k=u+32|0;j=u+28|0;q=u+24|0;l=u+20|0;s=u+16|0;t=u+12|0;n=u+8|0;m=u+4|0;r=u;o=u+40|0;c[k>>2]=b;c[j>>2]=f;c[q>>2]=g;c[l>>2]=h;h=c[j>>2]|0;if(h>>>0>($E(c[k>>2]|0)|0)>>>0){c[p>>2]=Lj(64010)|0;t=c[p>>2]|0;i=u;return t|0}c[t>>2]=_E(c[k>>2]|0,c[j>>2]|0,s,0,0)|0;if(c[t>>2]|0){c[p>>2]=c[t>>2];t=c[p>>2]|0;i=u;return t|0}a:do if(!(a[(c[s>>2]|0)+8>>0]|0)){a[(c[s>>2]|0)+8>>0]=1;c[r>>2]=d[(c[s>>2]|0)+5>>0];c[m>>2]=0;while(1){j=c[s>>2]|0;if((c[m>>2]|0)>=(e[(c[s>>2]|0)+18>>1]|0))break;c[n>>2]=(c[j+56>>2]|0)+(e[(c[s>>2]|0)+20>>1]&(d[(c[(c[s>>2]|0)+64>>2]|0)+(c[m>>2]<<1)>>0]<<8|d[(c[(c[s>>2]|0)+64>>2]|0)+(c[m>>2]<<1)+1>>0]));if((a[(c[s>>2]|0)+4>>0]|0)==0?(f=c[k>>2]|0,h=$q(c[n>>2]|0)|0,c[t>>2]=tK(f,h,1,c[l>>2]|0)|0,(c[t>>2]|0)!=0):0)break a;c[t>>2]=uK(c[s>>2]|0,c[n>>2]|0,o)|0;if(c[t>>2]|0)break a;c[m>>2]=(c[m>>2]|0)+1}if(a[j+4>>0]|0){if(c[l>>2]|0){o=c[l>>2]|0;c[o>>2]=(c[o>>2]|0)+(e[(c[s>>2]|0)+18>>1]|0)}}else{n=c[k>>2]|0;o=$q((c[(c[s>>2]|0)+56>>2]|0)+((c[r>>2]|0)+8)|0)|0;c[t>>2]=tK(n,o,1,c[l>>2]|0)|0;if(c[t>>2]|0)break}j=c[s>>2]|0;if(c[q>>2]|0){vK(j,t);break}q=Dg(c[j+72>>2]|0)|0;c[t>>2]=q;if(!q)wK(c[s>>2]|0,d[(c[(c[s>>2]|0)+56>>2]|0)+(c[r>>2]|0)>>0]|8)}else c[t>>2]=Lj(64015)|0;while(0);a[(c[s>>2]|0)+8>>0]=0;qB(c[s>>2]|0);c[p>>2]=c[t>>2];t=c[p>>2]|0;i=u;return t|0}function uK(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=i;i=i+80|0;g=t+64|0;h=t+60|0;j=t+56|0;u=t+52|0;p=t+48|0;l=t;o=t+44|0;r=t+40|0;m=t+36|0;n=t+32|0;k=t+28|0;q=t+24|0;c[h>>2]=a;c[j>>2]=d;c[u>>2]=f;c[p>>2]=c[(c[h>>2]|0)+52>>2];Ub[c[(c[h>>2]|0)+80>>2]&255](c[h>>2]|0,c[j>>2]|0,l);b[c[u>>2]>>1]=b[l+18>>1]|0;if((e[l+16>>1]|0|0)==(c[l+12>>2]|0)){c[g>>2]=0;u=c[g>>2]|0;i=t;return u|0}if(((c[j>>2]|0)+(e[l+18>>1]|0)+-1|0)>>>0>((c[(c[h>>2]|0)+56>>2]|0)+(e[(c[h>>2]|0)+20>>1]|0)|0)>>>0){c[g>>2]=Lj(61571)|0;u=c[g>>2]|0;i=t;return u|0}c[o>>2]=$q((c[j>>2]|0)+(e[l+18>>1]|0)+-4|0)|0;c[n>>2]=(c[(c[p>>2]|0)+36>>2]|0)-4;c[m>>2]=(((c[l+12>>2]|0)-(e[l+16>>1]|0)+(c[n>>2]|0)-1|0)>>>0)/((c[n>>2]|0)>>>0)|0;while(1){u=c[m>>2]|0;c[m>>2]=u+-1;if(!u){s=23;break}c[k>>2]=0;c[q>>2]=0;if((c[o>>2]|0)>>>0<2){s=9;break}u=c[o>>2]|0;if(u>>>0>($E(c[p>>2]|0)|0)>>>0){s=9;break}if((c[m>>2]|0)!=0?(c[r>>2]=kF(c[p>>2]|0,c[o>>2]|0,q,k)|0,(c[r>>2]|0)!=0):0){s=12;break}if((c[q>>2]|0)==0?(u=zK(c[p>>2]|0,c[o>>2]|0)|0,c[q>>2]=u,(u|0)==0):0)s=17;else if((Jt(c[(c[q>>2]|0)+72>>2]|0)|0)!=1)c[r>>2]=Lj(61607)|0;else s=17;if((s|0)==17){s=0;c[r>>2]=xK(c[p>>2]|0,c[q>>2]|0,c[o>>2]|0)|0}if(c[q>>2]|0)vg(c[(c[q>>2]|0)+72>>2]|0);if(c[r>>2]|0){s=21;break}c[o>>2]=c[k>>2]}if((s|0)==9){c[g>>2]=Lj(61587)|0;u=c[g>>2]|0;i=t;return u|0}else if((s|0)==12){c[g>>2]=c[r>>2];u=c[g>>2]|0;i=t;return u|0}else if((s|0)==21){c[g>>2]=c[r>>2];u=c[g>>2]|0;i=t;return u|0}else if((s|0)==23){c[g>>2]=0;u=c[g>>2]|0;i=t;return u|0}return 0}function vK(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f+4|0;e=f;c[d>>2]=a;c[e>>2]=b;if(c[c[e>>2]>>2]|0){i=f;return}b=xK(c[(c[d>>2]|0)+52>>2]|0,c[d>>2]|0,c[(c[d>>2]|0)+84>>2]|0)|0;c[c[e>>2]>>2]=b;i=f;return}function wK(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;h=o+12|0;j=o+8|0;k=o+4|0;n=o;m=o+18|0;l=o+16|0;c[h>>2]=f;c[j>>2]=g;c[k>>2]=c[(c[h>>2]|0)+56>>2];c[n>>2]=c[(c[h>>2]|0)+52>>2];a[m>>0]=a[(c[h>>2]|0)+5>>0]|0;if((e[(c[n>>2]|0)+22>>1]|0)&4)kR((c[k>>2]|0)+(d[m>>0]|0)|0,0,(c[(c[n>>2]|0)+36>>2]|0)-(d[m>>0]|0)|0)|0;a[(c[k>>2]|0)+(d[m>>0]|0)>>0]=c[j>>2];b[l>>1]=(d[m>>0]|0)+((c[j>>2]&8|0)==0?12:8);f=(c[k>>2]|0)+((d[m>>0]|0)+1)|0;a[f>>0]=0;a[f+1>>0]=0;a[f+2>>0]=0;a[f+3>>0]=0;a[(c[k>>2]|0)+((d[m>>0]|0)+7)>>0]=0;a[(c[k>>2]|0)+((d[m>>0]|0)+5)>>0]=(c[(c[n>>2]|0)+36>>2]|0)>>>8;a[(c[k>>2]|0)+((d[m>>0]|0)+5)+1>>0]=c[(c[n>>2]|0)+36>>2];b[(c[h>>2]|0)+16>>1]=(c[(c[n>>2]|0)+36>>2]|0)-(e[l>>1]|0);Lt(c[h>>2]|0,c[j>>2]|0)|0;b[(c[h>>2]|0)+14>>1]=b[l>>1]|0;c[(c[h>>2]|0)+60>>2]=(c[k>>2]|0)+(c[(c[n>>2]|0)+36>>2]|0);c[(c[h>>2]|0)+64>>2]=(c[k>>2]|0)+(e[l>>1]|0);c[(c[h>>2]|0)+68>>2]=(c[k>>2]|0)+(d[(c[h>>2]|0)+6>>0]|0);a[(c[h>>2]|0)+1>>0]=0;b[(c[h>>2]|0)+20>>1]=(c[(c[n>>2]|0)+32>>2]|0)-1;b[(c[h>>2]|0)+18>>1]=0;a[c[h>>2]>>0]=1;i=o;return}function xK(b,d,f){b=b|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+48|0;g=s+40|0;h=s+36|0;j=s+32|0;k=s+28|0;q=s+24|0;l=s+20|0;p=s+16|0;o=s+12|0;r=s+8|0;m=s+4|0;n=s;c[h>>2]=b;c[j>>2]=d;c[k>>2]=f;c[q>>2]=0;c[l>>2]=0;c[p>>2]=c[(c[h>>2]|0)+12>>2];if((c[k>>2]|0)>>>0<2){c[g>>2]=Lj(61425)|0;r=c[g>>2]|0;i=s;return r|0}if(c[j>>2]|0){c[o>>2]=c[j>>2];yK(c[(c[o>>2]|0)+72>>2]|0)}else c[o>>2]=zK(c[h>>2]|0,c[k>>2]|0)|0;c[r>>2]=Dg(c[(c[p>>2]|0)+72>>2]|0)|0;do if(!(c[r>>2]|0)){c[m>>2]=$q((c[(c[p>>2]|0)+56>>2]|0)+36|0)|0;Xs((c[(c[p>>2]|0)+56>>2]|0)+36|0,(c[m>>2]|0)+1|0);if(e[(c[h>>2]|0)+22>>1]&4){if((c[o>>2]|0)==0?(d=nF(c[h>>2]|0,c[k>>2]|0,o,0)|0,c[r>>2]=d,(d|0)!=0):0)break;d=Dg(c[(c[o>>2]|0)+72>>2]|0)|0;c[r>>2]=d;if(d)break;kR(c[(c[o>>2]|0)+56>>2]|0,0,c[(c[(c[o>>2]|0)+52>>2]|0)+32>>2]|0)|0}if((a[(c[h>>2]|0)+17>>0]|0)!=0?(xJ(c[h>>2]|0,c[k>>2]|0,2,0,r),(c[r>>2]|0)!=0):0)break;if(c[m>>2]|0){c[l>>2]=$q((c[(c[p>>2]|0)+56>>2]|0)+32|0)|0;c[r>>2]=nF(c[h>>2]|0,c[l>>2]|0,q,0)|0;if(c[r>>2]|0)break;c[n>>2]=$q((c[(c[q>>2]|0)+56>>2]|0)+4|0)|0;if((c[n>>2]|0)>>>0>((((c[(c[h>>2]|0)+36>>2]|0)>>>0)/4|0)-2|0)>>>0){c[r>>2]=Lj(61478)|0;break}if((c[n>>2]|0)>>>0<((((c[(c[h>>2]|0)+36>>2]|0)>>>0)/4|0)-8|0)>>>0){c[r>>2]=Dg(c[(c[q>>2]|0)+72>>2]|0)|0;if(c[r>>2]|0)break;Xs((c[(c[q>>2]|0)+56>>2]|0)+4|0,(c[n>>2]|0)+1|0);Xs((c[(c[q>>2]|0)+56>>2]|0)+(8+(c[n>>2]<<2))|0,c[k>>2]|0);if((c[o>>2]|0)!=0?(e[(c[h>>2]|0)+22>>1]&4|0)==0:0)AK(c[(c[o>>2]|0)+72>>2]|0);c[r>>2]=BK(c[h>>2]|0,c[k>>2]|0)|0;break}}if((c[o>>2]|0)==0?(d=nF(c[h>>2]|0,c[k>>2]|0,o,0)|0,c[r>>2]=d,0!=(d|0)):0)break;c[r>>2]=Dg(c[(c[o>>2]|0)+72>>2]|0)|0;if(!(c[r>>2]|0)){Xs(c[(c[o>>2]|0)+56>>2]|0,c[l>>2]|0);Xs((c[(c[o>>2]|0)+56>>2]|0)+4|0,0);Xs((c[(c[p>>2]|0)+56>>2]|0)+32|0,c[k>>2]|0)}}while(0);if(c[o>>2]|0)a[c[o>>2]>>0]=0;qB(c[o>>2]|0);qB(c[q>>2]|0);c[g>>2]=c[r>>2];r=c[g>>2]|0;i=s;return r|0}function yK(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;CK(c[d>>2]|0);i=b;return}function zK(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;d=h+12|0;e=h+8|0;f=h+4|0;g=h;c[e>>2]=a;c[f>>2]=b;c[g>>2]=Zr(c[c[e>>2]>>2]|0,c[f>>2]|0)|0;if(c[g>>2]|0){c[d>>2]=aF(c[g>>2]|0,c[f>>2]|0,c[e>>2]|0)|0;b=c[d>>2]|0;i=h;return b|0}else{c[d>>2]=0;b=c[d>>2]|0;i=h;return b|0}return 0}function AK(a){a=a|0;var d=0,f=0,g=0;g=i;i=i+16|0;d=g+4|0;f=g;c[d>>2]=a;c[f>>2]=c[(c[d>>2]|0)+16>>2];if(!((e[(c[d>>2]|0)+24>>1]|0)&2)){i=g;return}if(c[(c[f>>2]|0)+104>>2]|0){i=g;return}a=(c[d>>2]|0)+24|0;b[a>>1]=e[a>>1]|0|32;a=(c[d>>2]|0)+24|0;b[a>>1]=(e[a>>1]|0)&-5;i=g;return}function BK(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;e=g+4|0;f=g;c[d>>2]=a;c[e>>2]=b;c[f>>2]=0;if((c[(c[d>>2]|0)+60>>2]|0)==0?(b=fj(c[(c[d>>2]|0)+44>>2]|0)|0,c[(c[d>>2]|0)+60>>2]=b,(c[(c[d>>2]|0)+60>>2]|0)==0):0)c[f>>2]=7;if(c[f>>2]|0){f=c[f>>2]|0;i=g;return f|0}b=c[e>>2]|0;if(b>>>0>(jj(c[(c[d>>2]|0)+60>>2]|0)|0)>>>0){f=c[f>>2]|0;i=g;return f|0}c[f>>2]=gj(c[(c[d>>2]|0)+60>>2]|0,c[e>>2]|0)|0;f=c[f>>2]|0;i=g;return f|0}function CK(a){a=a|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=a;a=(c[e>>2]|0)+26|0;b[a>>1]=(b[a>>1]|0)+1<<16>>16;a=(c[(c[e>>2]|0)+28>>2]|0)+12|0;c[a>>2]=(c[a>>2]|0)+1;i=d;return}function DK(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+48|0;f=p+32|0;g=p+28|0;h=p+24|0;j=p+20|0;o=p+16|0;n=p+12|0;l=p+8|0;k=p+4|0;m=p;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[n>>2]=0;c[l>>2]=c[(c[g>>2]|0)+4>>2];if(c[(c[l>>2]|0)+8>>2]|0){c[f>>2]=262;o=c[f>>2]|0;i=p;return o|0}if((c[h>>2]|0)>>>0<2){c[f>>2]=Lj(64136)|0;o=c[f>>2]|0;i=p;return o|0}c[o>>2]=nF(c[l>>2]|0,c[h>>2]|0,n,0)|0;if(c[o>>2]|0){c[f>>2]=c[o>>2];o=c[f>>2]|0;i=p;return o|0}c[o>>2]=QI(c[g>>2]|0,c[h>>2]|0,0)|0;if(c[o>>2]|0){qB(c[n>>2]|0);c[f>>2]=c[o>>2];o=c[f>>2]|0;i=p;return o|0}c[c[j>>2]>>2]=0;if(a[(c[l>>2]|0)+17>>0]|0){ng(c[g>>2]|0,4,k);d=c[n>>2]|0;do if((c[h>>2]|0)==(c[k>>2]|0)){vK(d,o);qB(c[n>>2]|0);if(c[o>>2]|0){c[f>>2]=c[o>>2];o=c[f>>2]|0;i=p;return o|0}}else{qB(d);c[o>>2]=nF(c[l>>2]|0,c[k>>2]|0,m,0)|0;if(c[o>>2]|0){c[f>>2]=c[o>>2];o=c[f>>2]|0;i=p;return o|0}c[o>>2]=uJ(c[l>>2]|0,c[m>>2]|0,1,0,c[h>>2]|0,0)|0;qB(c[m>>2]|0);if(c[o>>2]|0){c[f>>2]=c[o>>2];o=c[f>>2]|0;i=p;return o|0}c[m>>2]=0;c[o>>2]=nF(c[l>>2]|0,c[k>>2]|0,m,0)|0;vK(c[m>>2]|0,o);qB(c[m>>2]|0);if(!(c[o>>2]|0)){c[c[j>>2]>>2]=c[k>>2];break}c[f>>2]=c[o>>2];o=c[f>>2]|0;i=p;return o|0}while(0);c[k>>2]=(c[k>>2]|0)+-1;while(1){if((c[k>>2]|0)!=((((c[381]|0)>>>0)/((c[(c[l>>2]|0)+32>>2]|0)>>>0)|0)+1|0)?(n=lF(c[l>>2]|0,c[k>>2]|0)|0,(n|0)!=(c[k>>2]|0)):0)break;c[k>>2]=(c[k>>2]|0)+-1}c[o>>2]=yg(c[g>>2]|0,4,c[k>>2]|0)|0}else{vK(c[n>>2]|0,o);qB(c[n>>2]|0)}c[f>>2]=c[o>>2];o=c[f>>2]|0;i=p;return o|0}function EK(b){b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;a[(c[e>>2]|0)+56>>0]=1;b=FK((c[e>>2]|0)+64|0,(c[e>>2]|0)+36|0)|0;i=d;return b|0}function FK(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+64|0;e=l+60|0;f=l+56|0;d=l+52|0;j=l+48|0;k=l;g=l+44|0;h=l+40|0;c[e>>2]=a;c[f>>2]=b;c[d>>2]=c[(c[(c[e>>2]|0)+8>>2]|0)+24>>2];c[j>>2]=0;b=k;a=b+40|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(a|0));if(!(c[(c[e>>2]|0)+40>>2]|0))c[j>>2]=GK(c[d>>2]|0,0,0,(c[e>>2]|0)+40|0)|0;if(!(c[j>>2]|0))c[j>>2]=HK(c[e>>2]|0,c[f>>2]|0)|0;if(c[j>>2]|0){k=c[j>>2]|0;i=l;return k|0}c[h>>2]=0;d=(c[e>>2]|0)+40+8|0;IK(c[(c[e>>2]|0)+40>>2]|0,k,c[(c[(c[e>>2]|0)+8>>2]|0)+12>>2]|0,c[d>>2]|0,c[d+4>>2]|0);d=(c[e>>2]|0)+28|0;c[d>>2]=(c[d>>2]|0)+1;d=c[(c[f>>2]|0)+8>>2]|0;JK(k,d,((d|0)<0)<<31>>31);c[g>>2]=c[c[f>>2]>>2];while(1){b=c[g>>2]|0;if(!(c[g>>2]|0))break;c[h>>2]=c[b+4>>2];d=c[c[g>>2]>>2]|0;JK(k,d,((d|0)<0)<<31>>31);KK(k,(c[g>>2]|0)+8|0,c[c[g>>2]>>2]|0);if(!(c[(c[f>>2]|0)+4>>2]|0))Kd(c[g>>2]|0);c[g>>2]=c[h>>2]}c[c[f>>2]>>2]=b;c[j>>2]=LK(k,(c[e>>2]|0)+40+8|0)|0;k=c[j>>2]|0;i=l;return k|0}function GK(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;f=l+28|0;g=l+24|0;h=l+20|0;k=l+16|0;j=l;c[g>>2]=a;a=l+8|0;c[a>>2]=b;c[a+4>>2]=d;c[h>>2]=e;if(wi(202)|0){c[f>>2]=3338;k=c[f>>2]|0;i=l;return k|0}c[k>>2]=TK(c[c[g>>2]>>2]|0,0,c[h>>2]|0,4126,k)|0;if(!(c[k>>2]|0)){e=j;c[e>>2]=0;c[e+4>>2]=0;Js(c[c[h>>2]>>2]|0,18,j)}c[f>>2]=c[k>>2];k=c[f>>2]|0;i=l;return k|0}function HK(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;f=n+28|0;g=n+24|0;h=n+20|0;k=n+16|0;j=n+12|0;l=n+8|0;e=n+4|0;m=n;c[g>>2]=a;c[h>>2]=b;c[e>>2]=MK(c[g>>2]|0)|0;if(c[e>>2]|0){c[f>>2]=c[e>>2];m=c[f>>2]|0;i=n;return m|0}c[l>>2]=c[c[h>>2]>>2];e=NK(c[(c[g>>2]|0)+8>>2]|0)|0;c[(c[g>>2]|0)+32>>2]=e;c[j>>2]=ig(256,0)|0;if(!(c[j>>2]|0)){c[f>>2]=7;m=c[f>>2]|0;i=n;return m|0}while(1){if(!(c[l>>2]|0))break;b=c[l>>2]|0;do if(c[(c[h>>2]|0)+4>>2]|0)if((b|0)==(c[(c[h>>2]|0)+4>>2]|0)){c[m>>2]=0;break}else{c[m>>2]=(c[(c[h>>2]|0)+4>>2]|0)+(c[(c[l>>2]|0)+4>>2]|0);break}else c[m>>2]=c[b+4>>2];while(0);c[(c[l>>2]|0)+4>>2]=0;c[k>>2]=0;while(1){if(!(c[(c[j>>2]|0)+(c[k>>2]<<2)>>2]|0))break;OK(c[g>>2]|0,c[l>>2]|0,c[(c[j>>2]|0)+(c[k>>2]<<2)>>2]|0,l);c[(c[j>>2]|0)+(c[k>>2]<<2)>>2]=0;c[k>>2]=(c[k>>2]|0)+1}c[(c[j>>2]|0)+(c[k>>2]<<2)>>2]=c[l>>2];c[l>>2]=c[m>>2]}c[l>>2]=0;c[k>>2]=0;while(1){if((c[k>>2]|0)>=64)break;OK(c[g>>2]|0,c[l>>2]|0,c[(c[j>>2]|0)+(c[k>>2]<<2)>>2]|0,l);c[k>>2]=(c[k>>2]|0)+1}c[c[h>>2]>>2]=c[l>>2];Kd(c[j>>2]|0);c[f>>2]=d[(c[(c[g>>2]|0)+12>>2]|0)+11>>0];m=c[f>>2]|0;i=n;return m|0}function IK(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;g=l+16|0;h=l+12|0;j=l+8|0;k=l;c[g>>2]=a;c[h>>2]=b;c[j>>2]=d;a=k;c[a>>2]=e;c[a+4>>2]=f;e=c[h>>2]|0;f=e+40|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(f|0));a=c[j>>2]|0;a=_f(a,((a|0)<0)<<31>>31)|0;c[(c[h>>2]|0)+4>>2]=a;if(c[(c[h>>2]|0)+4>>2]|0){b=k;a=c[j>>2]|0;a=qR(c[b>>2]|0,c[b+4>>2]|0,a|0,((a|0)<0)<<31>>31|0)|0;c[(c[h>>2]|0)+12>>2]=a;c[(c[h>>2]|0)+16>>2]=a;a=c[(c[h>>2]|0)+12>>2]|0;a=fR(c[k>>2]|0,c[k+4>>2]|0,a|0,((a|0)<0)<<31>>31|0)|0;k=(c[h>>2]|0)+24|0;c[k>>2]=a;c[k+4>>2]=C;c[(c[h>>2]|0)+8>>2]=c[j>>2];c[(c[h>>2]|0)+32>>2]=c[g>>2];i=l;return}else{c[c[h>>2]>>2]=7;i=l;return}}function JK(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+32|0;h=e+12|0;j=e;f=e+8|0;g=e+16|0;c[h>>2]=a;a=j;c[a>>2]=b;c[a+4>>2]=d;a=j;c[f>>2]=kI(g,c[a>>2]|0,c[a+4>>2]|0)|0;KK(c[h>>2]|0,g,c[f>>2]|0);i=e;return}function KK(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;k=i;i=i+32|0;e=k+16|0;f=k+12|0;g=k+8|0;j=k+4|0;h=k;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[j>>2]=c[g>>2];while(1){if((c[j>>2]|0)<=0){e=9;break}if(c[c[e>>2]>>2]|0){e=9;break}c[h>>2]=c[j>>2];if((c[h>>2]|0)>((c[(c[e>>2]|0)+8>>2]|0)-(c[(c[e>>2]|0)+16>>2]|0)|0))c[h>>2]=(c[(c[e>>2]|0)+8>>2]|0)-(c[(c[e>>2]|0)+16>>2]|0);iR((c[(c[e>>2]|0)+4>>2]|0)+(c[(c[e>>2]|0)+16>>2]|0)|0,(c[f>>2]|0)+((c[g>>2]|0)-(c[j>>2]|0))|0,c[h>>2]|0)|0;b=(c[e>>2]|0)+16|0;c[b>>2]=(c[b>>2]|0)+(c[h>>2]|0);if((c[(c[e>>2]|0)+16>>2]|0)==(c[(c[e>>2]|0)+8>>2]|0)){l=c[(c[e>>2]|0)+32>>2]|0;d=(c[(c[e>>2]|0)+4>>2]|0)+(c[(c[e>>2]|0)+12>>2]|0)|0;b=(c[(c[e>>2]|0)+16>>2]|0)-(c[(c[e>>2]|0)+12>>2]|0)|0;m=(c[e>>2]|0)+24|0;a=c[(c[e>>2]|0)+12>>2]|0;a=gR(c[m>>2]|0,c[m+4>>2]|0,a|0,((a|0)<0)<<31>>31|0)|0;a=Fg(l,d,b,a,C)|0;c[c[e>>2]>>2]=a;c[(c[e>>2]|0)+16>>2]=0;c[(c[e>>2]|0)+12>>2]=0;a=c[(c[e>>2]|0)+8>>2]|0;b=(c[e>>2]|0)+24|0;d=b;a=gR(c[d>>2]|0,c[d+4>>2]|0,a|0,((a|0)<0)<<31>>31|0)|0;
  63. c[b>>2]=a;c[b+4>>2]=C}c[j>>2]=(c[j>>2]|0)-(c[h>>2]|0)}if((e|0)==9){i=k;return}}function LK(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;g=i;i=i+16|0;d=g+8|0;e=g+4|0;f=g;c[d>>2]=a;c[e>>2]=b;if(((c[c[d>>2]>>2]|0)==0?(c[(c[d>>2]|0)+4>>2]|0)!=0:0)?(c[(c[d>>2]|0)+16>>2]|0)>(c[(c[d>>2]|0)+12>>2]|0):0){j=c[(c[d>>2]|0)+32>>2]|0;h=(c[(c[d>>2]|0)+4>>2]|0)+(c[(c[d>>2]|0)+12>>2]|0)|0;a=(c[(c[d>>2]|0)+16>>2]|0)-(c[(c[d>>2]|0)+12>>2]|0)|0;k=(c[d>>2]|0)+24|0;b=c[(c[d>>2]|0)+12>>2]|0;b=gR(c[k>>2]|0,c[k+4>>2]|0,b|0,((b|0)<0)<<31>>31|0)|0;b=Fg(j,h,a,b,C)|0;c[c[d>>2]>>2]=b}j=(c[d>>2]|0)+24|0;k=c[(c[d>>2]|0)+16>>2]|0;k=gR(c[j>>2]|0,c[j+4>>2]|0,k|0,((k|0)<0)<<31>>31|0)|0;e=c[e>>2]|0;c[e>>2]=k;c[e+4>>2]=C;Kd(c[(c[d>>2]|0)+4>>2]|0);c[f>>2]=c[c[d>>2]>>2];d=c[d>>2]|0;e=d+40|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));i=g;return c[f>>2]|0}function MK(d){d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+8|0;f=h+4|0;g=h;c[f>>2]=d;do if(!(c[(c[f>>2]|0)+12>>2]|0)){d=cF(c[(c[(c[f>>2]|0)+8>>2]|0)+28>>2]|0,0,0,g)|0;c[(c[f>>2]|0)+12>>2]=d;if(c[g>>2]|0){b[(c[(c[f>>2]|0)+12>>2]|0)+8>>1]=b[(c[(c[(c[f>>2]|0)+8>>2]|0)+28>>2]|0)+6>>1]|0;a[(c[(c[f>>2]|0)+12>>2]|0)+11>>0]=0;break}c[e>>2]=7;d=c[e>>2]|0;i=h;return d|0}while(0);c[e>>2]=0;d=c[e>>2]|0;i=h;return d|0}function NK(a){a=a|0;var b=0,e=0,f=0;f=i;i=i+16|0;b=f+4|0;e=f;c[e>>2]=a;do if((d[(c[e>>2]|0)+60>>0]|0|0)!=1)if((d[(c[e>>2]|0)+60>>0]|0|0)==2){c[b>>2]=139;break}else{c[b>>2]=140;break}else c[b>>2]=138;while(0);i=f;return c[b>>2]|0}function OK(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;f=o+28|0;g=o+24|0;h=o+20|0;j=o+16|0;l=o+12|0;m=o+8|0;k=o+4|0;n=o;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[l>>2]=0;c[m>>2]=l;c[k>>2]=0;while(1){if(!((c[g>>2]|0)!=0?(c[h>>2]|0)!=0:0))break;c[n>>2]=Sb[c[(c[f>>2]|0)+32>>2]&255](c[f>>2]|0,k,(c[g>>2]|0)+8|0,c[c[g>>2]>>2]|0,(c[h>>2]|0)+8|0,c[c[h>>2]>>2]|0)|0;if((c[n>>2]|0)<=0){c[c[m>>2]>>2]=c[g>>2];c[m>>2]=(c[g>>2]|0)+4;c[g>>2]=c[(c[g>>2]|0)+4>>2];continue}else{c[c[m>>2]>>2]=c[h>>2];c[m>>2]=(c[h>>2]|0)+4;c[h>>2]=c[(c[h>>2]|0)+4>>2];c[k>>2]=0;continue}}c[c[m>>2]>>2]=(c[g>>2]|0)!=0?c[g>>2]|0:c[h>>2]|0;c[c[j>>2]>>2]=c[l>>2];i=o;return}function PK(b,f,g,h,j,k){b=b|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;x=i;i=i+64|0;q=x+52|0;r=x+48|0;s=x+44|0;t=x+40|0;u=x+36|0;v=x+32|0;z=x+28|0;y=x+24|0;m=x+20|0;n=x+16|0;o=x+12|0;p=x+8|0;w=x+4|0;l=x;c[q>>2]=b;c[r>>2]=f;c[s>>2]=g;c[t>>2]=h;c[u>>2]=j;c[v>>2]=k;c[z>>2]=c[s>>2];c[y>>2]=c[u>>2];c[m>>2]=d[(c[z>>2]|0)+1>>0];c[n>>2]=d[(c[y>>2]|0)+1>>0];c[o>>2]=(c[z>>2]|0)+(d[c[z>>2]>>0]|0);c[p>>2]=(c[y>>2]|0)+(d[c[y>>2]>>0]|0);h=c[m>>2]|0;k=c[n>>2]|0;a:do if(!((c[m>>2]|0)>7&(c[n>>2]|0)>7)){if((h|0)==(k|0)){if((d[c[o>>2]>>0]^d[c[p>>2]>>0])&128){c[w>>2]=(d[c[o>>2]>>0]&128|0)!=0?-1:1;break}c[w>>2]=0;c[l>>2]=0;while(1){if((c[l>>2]|0)>=(d[43245+(c[m>>2]|0)>>0]|0))break a;z=(d[(c[o>>2]|0)+(c[l>>2]|0)>>0]|0)-(d[(c[p>>2]|0)+(c[l>>2]|0)>>0]|0)|0;c[w>>2]=z;if(z)break a;c[l>>2]=(c[l>>2]|0)+1}}do if((c[n>>2]|0)<=7)if((c[m>>2]|0)>7){c[w>>2]=-1;break}else{c[w>>2]=(c[m>>2]|0)-(c[n>>2]|0);break}else c[w>>2]=1;while(0);if((c[w>>2]|0)>0){if(!(d[c[o>>2]>>0]&128))break;c[w>>2]=-1;break}else{if(!(d[c[p>>2]>>0]&128))break;c[w>>2]=1;break}}else c[w>>2]=h-k;while(0);h=c[(c[(c[q>>2]|0)+8>>2]|0)+28>>2]|0;if(!(c[w>>2]|0)){if((e[h+6>>1]|0)<=1){z=c[w>>2]|0;i=x;return z|0}c[w>>2]=SK(c[q>>2]|0,c[r>>2]|0,c[s>>2]|0,c[t>>2]|0,c[u>>2]|0,c[v>>2]|0)|0;z=c[w>>2]|0;i=x;return z|0}else{if(!(a[c[h+16>>2]>>0]|0)){z=c[w>>2]|0;i=x;return z|0}c[w>>2]=_(c[w>>2]|0,-1)|0;z=c[w>>2]|0;i=x;return z|0}return 0}function QK(b,f,g,h,j,k){b=b|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;x=i;i=i+64|0;q=x+48|0;r=x+44|0;s=x+40|0;t=x+36|0;u=x+32|0;v=x+28|0;y=x+24|0;n=x+20|0;o=x+16|0;p=x+12|0;l=x+8|0;m=x+4|0;w=x;c[q>>2]=b;c[r>>2]=f;c[s>>2]=g;c[t>>2]=h;c[u>>2]=j;c[v>>2]=k;c[y>>2]=c[s>>2];c[n>>2]=c[u>>2];c[o>>2]=(c[y>>2]|0)+(d[c[y>>2]>>0]|0);c[p>>2]=(c[n>>2]|0)+(d[c[n>>2]>>0]|0);h=(c[y>>2]|0)+1|0;if((d[(c[y>>2]|0)+1>>0]|0)<128)c[l>>2]=d[h>>0];else tF(h,l)|0;c[l>>2]=((c[l>>2]|0)-13|0)/2|0;h=(c[n>>2]|0)+1|0;if((d[(c[n>>2]|0)+1>>0]|0)<128)c[m>>2]=d[h>>0];else tF(h,m)|0;c[m>>2]=((c[m>>2]|0)-13|0)/2|0;c[w>>2]=vQ(c[o>>2]|0,c[p>>2]|0,(c[l>>2]|0)<(c[m>>2]|0)?c[l>>2]|0:c[m>>2]|0)|0;if(!(c[w>>2]|0))c[w>>2]=(c[l>>2]|0)-(c[m>>2]|0);h=c[(c[(c[q>>2]|0)+8>>2]|0)+28>>2]|0;if(!(c[w>>2]|0)){if((e[h+6>>1]|0)<=1){y=c[w>>2]|0;i=x;return y|0}c[w>>2]=SK(c[q>>2]|0,c[r>>2]|0,c[s>>2]|0,c[t>>2]|0,c[u>>2]|0,c[v>>2]|0)|0;y=c[w>>2]|0;i=x;return y|0}else{if(!(a[c[h+16>>2]>>0]|0)){y=c[w>>2]|0;i=x;return y|0}c[w>>2]=_(c[w>>2]|0,-1)|0;y=c[w>>2]|0;i=x;return y|0}return 0}function RK(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;h=p+24|0;j=p+20|0;k=p+16|0;l=p+12|0;m=p+8|0;n=p+4|0;o=p;c[h>>2]=a;c[j>>2]=b;c[k>>2]=d;c[l>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=c[(c[h>>2]|0)+12>>2];if(c[c[j>>2]>>2]|0){a=c[l>>2]|0;b=c[k>>2]|0;o=c[o>>2]|0;o=rF(a,b,o)|0;i=p;return o|0}dF(c[(c[(c[h>>2]|0)+8>>2]|0)+28>>2]|0,c[n>>2]|0,c[m>>2]|0,c[o>>2]|0);c[c[j>>2]>>2]=1;a=c[l>>2]|0;b=c[k>>2]|0;o=c[o>>2]|0;o=rF(a,b,o)|0;i=p;return o|0}function SK(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;h=p+24|0;j=p+20|0;k=p+16|0;l=p+12|0;m=p+8|0;n=p+4|0;o=p;c[h>>2]=a;c[j>>2]=b;c[k>>2]=d;c[l>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=c[(c[h>>2]|0)+12>>2];if(c[c[j>>2]>>2]|0){a=c[l>>2]|0;b=c[k>>2]|0;o=c[o>>2]|0;o=sF(a,b,o,1)|0;i=p;return o|0}dF(c[(c[(c[h>>2]|0)+8>>2]|0)+28>>2]|0,c[n>>2]|0,c[m>>2]|0,c[o>>2]|0);c[c[j>>2]>>2]=1;a=c[l>>2]|0;b=c[k>>2]|0;o=c[o>>2]|0;o=sF(a,b,o,1)|0;i=p;return o|0}function TK(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;g=o+24|0;h=o+20|0;m=o+16|0;j=o+12|0;k=o+8|0;n=o+4|0;l=o;c[g>>2]=a;c[h>>2]=b;c[m>>2]=d;c[j>>2]=e;c[k>>2]=f;c[n>>2]=7;b=c[(c[g>>2]|0)+4>>2]|0;c[l>>2]=ig(b,((b|0)<0)<<31>>31)|0;if(!(c[l>>2]|0)){n=c[n>>2]|0;i=o;return n|0}c[n>>2]=Vr(c[g>>2]|0,c[h>>2]|0,c[l>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;g=c[l>>2]|0;if(c[n>>2]|0){Kd(g);n=c[n>>2]|0;i=o;return n|0}else{c[c[m>>2]>>2]=g;n=c[n>>2]|0;i=o;return n|0}return 0}function UK(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;e=q+36|0;f=q+32|0;o=q+28|0;j=q+24|0;n=q+20|0;h=q+16|0;l=q+12|0;m=q+8|0;g=q+4|0;k=q;c[e>>2]=a;c[f>>2]=b;c[j>>2]=c[(c[(c[e>>2]|0)+8>>2]|0)+4>>2];c[n>>2]=c[(c[e>>2]|0)+4>>2];c[o>>2]=VK((c[(c[e>>2]|0)+12>>2]|0)+((c[j>>2]|0)*56|0)|0)|0;if(!(c[o>>2]|0)){c[g>>2]=0;c[l>>2]=(c[(c[e>>2]|0)+12>>2]|0)+((c[j>>2]&65534)*56|0);c[m>>2]=(c[(c[e>>2]|0)+12>>2]|0)+((c[j>>2]|1)*56|0);c[h>>2]=((c[c[e>>2]>>2]|0)+(c[j>>2]|0)|0)/2|0;while(1){if((c[h>>2]|0)<=0)break;do if(c[(c[l>>2]|0)+24>>2]|0)if(!(c[(c[m>>2]|0)+24>>2]|0)){c[k>>2]=-1;break}else{c[k>>2]=Sb[c[(c[n>>2]|0)+32>>2]&255](c[n>>2]|0,g,c[(c[l>>2]|0)+32>>2]|0,c[(c[l>>2]|0)+20>>2]|0,c[(c[m>>2]|0)+32>>2]|0,c[(c[m>>2]|0)+20>>2]|0)|0;break}else c[k>>2]=1;while(0);do if((c[k>>2]|0)<0)p=12;else{if((c[k>>2]|0)==0?(c[l>>2]|0)>>>0<(c[m>>2]|0)>>>0:0){p=12;break}if(c[(c[l>>2]|0)+24>>2]|0)c[g>>2]=0;c[(c[(c[e>>2]|0)+8>>2]|0)+(c[h>>2]<<2)>>2]=((c[m>>2]|0)-(c[(c[e>>2]|0)+12>>2]|0)|0)/56|0;c[l>>2]=(c[(c[e>>2]|0)+12>>2]|0)+((c[(c[(c[e>>2]|0)+8>>2]|0)+((c[h>>2]^1)<<2)>>2]|0)*56|0)}while(0);if((p|0)==12){p=0;c[(c[(c[e>>2]|0)+8>>2]|0)+(c[h>>2]<<2)>>2]=((c[l>>2]|0)-(c[(c[e>>2]|0)+12>>2]|0)|0)/56|0;c[m>>2]=(c[(c[e>>2]|0)+12>>2]|0)+((c[(c[(c[e>>2]|0)+8>>2]|0)+((c[h>>2]^1)<<2)>>2]|0)*56|0);c[g>>2]=0}c[h>>2]=(c[h>>2]|0)/2|0}c[c[f>>2]>>2]=(c[(c[(c[e>>2]|0)+12>>2]|0)+((c[(c[(c[e>>2]|0)+8>>2]|0)+4>>2]|0)*56|0)+24>>2]|0)==0&1}if(!(c[o>>2]|0)){p=d[(c[(c[n>>2]|0)+12>>2]|0)+11>>0]|0;i=q;return p|0}else{p=c[o>>2]|0;i=q;return p|0}return 0}function VK(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;j=i;i=i+32|0;b=j+24|0;d=j+20|0;h=j+16|0;f=j;g=j+12|0;e=j+8|0;c[d>>2]=a;c[h>>2]=0;k=f;c[k>>2]=0;c[k+4>>2]=0;k=c[d>>2]|0;m=c[k+4>>2]|0;a=(c[d>>2]|0)+8|0;l=c[a+4>>2]|0;if((m|0)>(l|0)|((m|0)==(l|0)?(c[k>>2]|0)>>>0>=(c[a>>2]|0)>>>0:0)){c[g>>2]=c[(c[d>>2]|0)+48>>2];c[e>>2]=1;if(((c[g>>2]|0)!=0?(c[h>>2]=WK(c[g>>2]|0)|0,(c[h>>2]|0)==0):0)?(c[(c[g>>2]|0)+20>>2]|0)==0:0){m=(c[g>>2]|0)+8|0;c[h>>2]=XK(c[c[g>>2]>>2]|0,c[d>>2]|0,(c[g>>2]|0)+32|0,c[m>>2]|0,c[m+4>>2]|0)|0;c[e>>2]=0}if(c[e>>2]|0){qK(c[d>>2]|0);c[b>>2]=c[h>>2];m=c[b>>2]|0;i=j;return m|0}}if(!(c[h>>2]|0))c[h>>2]=YK(c[d>>2]|0,f)|0;if(!(c[h>>2]|0)){c[(c[d>>2]|0)+20>>2]=c[f>>2];c[h>>2]=ZK(c[d>>2]|0,c[f>>2]|0,(c[d>>2]|0)+32|0)|0}c[b>>2]=c[h>>2];m=c[b>>2]|0;i=j;return m|0}function WK(a){a=a|0;var b=0,d=0,e=0,f=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;c[d>>2]=0;c[d>>2]=aL(c[b>>2]|0)|0;f=(c[b>>2]|0)+32|0;a=(c[b>>2]|0)+32+16|0;c[f>>2]=c[a>>2];c[f+4>>2]=c[a+4>>2];c[f+8>>2]=c[a+8>>2];c[f+12>>2]=c[a+12>>2];f=(c[b>>2]|0)+32+8|0;a=(c[b>>2]|0)+8|0;if(!((c[f>>2]|0)==(c[a>>2]|0)?(c[f+4>>2]|0)==(c[a+4>>2]|0):0)){f=c[d>>2]|0;i=e;return f|0}c[(c[b>>2]|0)+20>>2]=1;f=c[d>>2]|0;i=e;return f|0}function XK(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;g=q+36|0;h=q+32|0;j=q+28|0;k=q+24|0;l=q;p=q+20|0;o=q+16|0;m=q+12|0;n=q+8|0;c[h>>2]=a;c[j>>2]=b;c[k>>2]=d;a=l;c[a>>2]=e;c[a+4>>2]=f;c[p>>2]=0;if(wi(201)|0){c[g>>2]=266;p=c[g>>2]|0;i=q;return p|0}if(c[(c[j>>2]|0)+44>>2]|0){Cs(c[(c[j>>2]|0)+24>>2]|0,0,0,c[(c[j>>2]|0)+44>>2]|0)|0;c[(c[j>>2]|0)+44>>2]=0}a=l;b=c[a+4>>2]|0;d=c[j>>2]|0;c[d>>2]=c[a>>2];c[d+4>>2]=b;d=(c[k>>2]|0)+8|0;b=c[d+4>>2]|0;a=(c[j>>2]|0)+8|0;c[a>>2]=c[d>>2];c[a+4>>2]=b;c[(c[j>>2]|0)+24>>2]=c[c[k>>2]>>2];c[p>>2]=_K(c[h>>2]|0,c[k>>2]|0,(c[j>>2]|0)+44|0)|0;if((c[p>>2]|0)==0?(c[(c[j>>2]|0)+44>>2]|0)==0:0){c[o>>2]=c[(c[(c[h>>2]|0)+8>>2]|0)+12>>2];b=c[j>>2]|0;a=c[o>>2]|0;a=qR(c[b>>2]|0,c[b+4>>2]|0,a|0,((a|0)<0)<<31>>31|0)|0;c[m>>2]=a;if(!(c[(c[j>>2]|0)+36>>2]|0)){a=c[o>>2]|0;a=_f(a,((a|0)<0)<<31>>31)|0;c[(c[j>>2]|0)+36>>2]=a;if(!(c[(c[j>>2]|0)+36>>2]|0))c[p>>2]=7;c[(c[j>>2]|0)+40>>2]=c[o>>2]}if((c[p>>2]|0)==0&(c[m>>2]|0)!=0){c[n>>2]=(c[o>>2]|0)-(c[m>>2]|0);d=c[j>>2]|0;a=c[n>>2]|0;a=gR(c[d>>2]|0,c[d+4>>2]|0,a|0,((a|0)<0)<<31>>31|0)|0;d=C;o=(c[j>>2]|0)+8|0;b=c[o+4>>2]|0;if((d|0)>(b|0)|((d|0)==(b|0)?a>>>0>(c[o>>2]|0)>>>0:0)){a=(c[j>>2]|0)+8|0;o=c[j>>2]|0;o=fR(c[a>>2]|0,c[a+4>>2]|0,c[o>>2]|0,c[o+4>>2]|0)|0;c[n>>2]=o}o=c[j>>2]|0;c[p>>2]=Wr(c[(c[j>>2]|0)+24>>2]|0,(c[(c[j>>2]|0)+36>>2]|0)+(c[m>>2]|0)|0,c[n>>2]|0,c[o>>2]|0,c[o+4>>2]|0)|0}}c[g>>2]=c[p>>2];p=c[g>>2]|0;i=q;return p|0}function YK(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=i;i=i+48|0;f=p+24|0;g=p+20|0;h=p+16|0;m=p+12|0;k=p+32|0;j=p+8|0;l=p+4|0;n=p;c[g>>2]=b;c[h>>2]=e;e=c[g>>2]|0;b=c[e>>2]|0;e=c[e+4>>2]|0;do if(c[(c[g>>2]|0)+44>>2]|0){n=(St((c[(c[g>>2]|0)+44>>2]|0)+b|0,c[h>>2]|0)|0)&255;o=c[g>>2]|0;m=o;n=gR(c[m>>2]|0,c[m+4>>2]|0,n|0,0)|0;c[o>>2]=n;c[o+4>>2]=C}else{q=c[(c[g>>2]|0)+40>>2]|0;e=qR(b|0,e|0,q|0,((q|0)<0)<<31>>31|0)|0;c[m>>2]=e;if((c[m>>2]|0)!=0?((c[(c[g>>2]|0)+40>>2]|0)-(c[m>>2]|0)|0)>=9:0){o=(St((c[(c[g>>2]|0)+36>>2]|0)+(c[m>>2]|0)|0,c[h>>2]|0)|0)&255;q=c[g>>2]|0;n=q;o=gR(c[n>>2]|0,c[n+4>>2]|0,o|0,0)|0;c[q>>2]=o;c[q+4>>2]=C;break}c[l>>2]=0;while(1){c[n>>2]=ZK(c[g>>2]|0,1,j)|0;if(c[n>>2]|0)break;m=a[c[j>>2]>>0]|0;q=c[l>>2]|0;c[l>>2]=q+1;a[k+(q&15)>>0]=m;if(!((d[c[j>>2]>>0]|0)&128)){o=10;break}}if((o|0)==10){St(k,c[h>>2]|0)|0;break}c[f>>2]=c[n>>2];q=c[f>>2]|0;i=p;return q|0}while(0);c[f>>2]=0;q=c[f>>2]|0;i=p;return q|0}function ZK(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;u=i;i=i+64|0;g=u+52|0;h=u+48|0;j=u+44|0;k=u+40|0;n=u+36|0;o=u+32|0;e=u+28|0;f=u+24|0;r=u+20|0;l=u+16|0;q=u+12|0;s=u+8|0;p=u+4|0;m=u;c[h>>2]=a;c[j>>2]=b;c[k>>2]=d;a=c[h>>2]|0;b=c[a>>2]|0;a=c[a+4>>2]|0;if(c[(c[h>>2]|0)+44>>2]|0){c[c[k>>2]>>2]=(c[(c[h>>2]|0)+44>>2]|0)+b;s=c[j>>2]|0;t=c[h>>2]|0;r=t;s=gR(c[r>>2]|0,c[r+4>>2]|0,s|0,((s|0)<0)<<31>>31|0)|0;c[t>>2]=s;c[t+4>>2]=C;c[g>>2]=0;t=c[g>>2]|0;i=u;return t|0}d=c[(c[h>>2]|0)+40>>2]|0;d=qR(b|0,a|0,d|0,((d|0)<0)<<31>>31|0)|0;c[n>>2]=d;if(!(c[n>>2]|0)){w=(c[h>>2]|0)+8|0;a=c[h>>2]|0;a=fR(c[w>>2]|0,c[w+4>>2]|0,c[a>>2]|0,c[a+4>>2]|0)|0;w=C;d=c[(c[h>>2]|0)+40>>2]|0;v=((d|0)<0)<<31>>31;b=c[h>>2]|0;if((w|0)>(v|0)|(w|0)==(v|0)&a>>>0>d>>>0)c[e>>2]=c[b+40>>2];else{v=b+8|0;w=c[h>>2]|0;w=fR(c[v>>2]|0,c[v+4>>2]|0,c[w>>2]|0,c[w+4>>2]|0)|0;c[e>>2]=w}w=c[h>>2]|0;c[f>>2]=Wr(c[(c[h>>2]|0)+24>>2]|0,c[(c[h>>2]|0)+36>>2]|0,c[e>>2]|0,c[w>>2]|0,c[w+4>>2]|0)|0;if(c[f>>2]|0){c[g>>2]=c[f>>2];w=c[g>>2]|0;i=u;return w|0}}c[o>>2]=(c[(c[h>>2]|0)+40>>2]|0)-(c[n>>2]|0);do if((c[j>>2]|0)<=(c[o>>2]|0)){c[c[k>>2]>>2]=(c[(c[h>>2]|0)+36>>2]|0)+(c[n>>2]|0);v=c[j>>2]|0;w=c[h>>2]|0;t=w;v=gR(c[t>>2]|0,c[t+4>>2]|0,v|0,((v|0)<0)<<31>>31|0)|0;c[w>>2]=v;c[w+4>>2]=C}else{do if((c[(c[h>>2]|0)+16>>2]|0)<(c[j>>2]|0)){if(128>(c[(c[h>>2]|0)+16>>2]<<1|0))b=128;else b=c[(c[h>>2]|0)+16>>2]<<1;c[q>>2]=b;while(1){if((c[j>>2]|0)<=(c[q>>2]|0))break;c[q>>2]=c[q>>2]<<1}w=c[q>>2]|0;c[l>>2]=bg(c[(c[h>>2]|0)+28>>2]|0,w,((w|0)<0)<<31>>31)|0;if(c[l>>2]|0){c[(c[h>>2]|0)+16>>2]=c[q>>2];c[(c[h>>2]|0)+28>>2]=c[l>>2];break}c[g>>2]=7;w=c[g>>2]|0;i=u;return w|0}while(0);iR(c[(c[h>>2]|0)+28>>2]|0,(c[(c[h>>2]|0)+36>>2]|0)+(c[n>>2]|0)|0,c[o>>2]|0)|0;v=c[o>>2]|0;w=c[h>>2]|0;q=w;v=gR(c[q>>2]|0,c[q+4>>2]|0,v|0,((v|0)<0)<<31>>31|0)|0;c[w>>2]=v;c[w+4>>2]=C;c[r>>2]=(c[j>>2]|0)-(c[o>>2]|0);while(1){if((c[r>>2]|0)<=0){t=27;break}c[p>>2]=c[r>>2];if((c[r>>2]|0)>(c[(c[h>>2]|0)+40>>2]|0))c[p>>2]=c[(c[h>>2]|0)+40>>2];c[s>>2]=ZK(c[h>>2]|0,c[p>>2]|0,m)|0;if(c[s>>2]|0)break;iR((c[(c[h>>2]|0)+28>>2]|0)+((c[j>>2]|0)-(c[r>>2]|0))|0,c[m>>2]|0,c[p>>2]|0)|0;c[r>>2]=(c[r>>2]|0)-(c[p>>2]|0)}if((t|0)==27){c[c[k>>2]>>2]=c[(c[h>>2]|0)+28>>2];break}c[g>>2]=c[s>>2];w=c[g>>2]|0;i=u;return w|0}while(0);c[g>>2]=0;w=c[g>>2]|0;i=u;return w|0}function _K(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;j=i;i=i+32|0;l=j+16|0;e=j+12|0;f=j+8|0;h=j+4|0;g=j;c[l>>2]=a;c[e>>2]=b;c[f>>2]=d;c[h>>2]=0;a=(c[e>>2]|0)+8|0;k=c[a+4>>2]|0;d=c[(c[(c[(c[l>>2]|0)+8>>2]|0)+24>>2]|0)+136>>2]|0;b=((d|0)<0)<<31>>31;if(!((k|0)<(b|0)|((k|0)==(b|0)?(c[a>>2]|0)>>>0<=d>>>0:0))){l=c[h>>2]|0;i=j;return l|0}c[g>>2]=c[c[e>>2]>>2];if((c[c[c[g>>2]>>2]>>2]|0)<3){l=c[h>>2]|0;i=j;return l|0}c[h>>2]=$K(c[g>>2]|0,0,0,c[(c[e>>2]|0)+8>>2]|0,c[f>>2]|0)|0;l=c[h>>2]|0;i=j;return l|0}function $K(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=i;i=i+32|0;h=g+8|0;c[g+16>>2]=a;a=g;c[a>>2]=b;c[a+4>>2]=d;c[g+12>>2]=e;c[h>>2]=f;c[c[h>>2]>>2]=0;i=g;return 0}function aL(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;o=i;i=i+96|0;b=o+88|0;l=o+84|0;m=o+80|0;f=o+48|0;j=o+76|0;p=o+72|0;h=o+68|0;n=o+8|0;d=o+64|0;k=o+60|0;g=o+56|0;e=o;c[b>>2]=a;c[l>>2]=0;r=(c[b>>2]|0)+8|0;q=c[r+4>>2]|0;a=f;c[a>>2]=c[r>>2];c[a+4>>2]=q;c[j>>2]=(c[b>>2]|0)+32+16;c[p>>2]=c[c[b>>2]>>2];c[h>>2]=c[(c[b>>2]|0)+4>>2];a=f;IK(c[c[j>>2]>>2]|0,n,c[(c[(c[p>>2]|0)+8>>2]|0)+12>>2]|0,c[a>>2]|0,c[a+4>>2]|0);while(1){if(c[l>>2]|0)break;c[k>>2]=(c[(c[h>>2]|0)+12>>2]|0)+((c[(c[(c[h>>2]|0)+8>>2]|0)+4>>2]|0)*56|0);c[g>>2]=c[(c[k>>2]|0)+20>>2];r=n+24|0;q=c[n+16>>2]|0;q=gR(c[r>>2]|0,c[r+4>>2]|0,q|0,((q|0)<0)<<31>>31|0)|0;r=e;c[r>>2]=q;c[r+4>>2]=C;if(!(c[(c[k>>2]|0)+24>>2]|0))break;a=e;p=c[g>>2]|0;p=gR(c[a>>2]|0,c[a+4>>2]|0,p|0,((p|0)<0)<<31>>31|0)|0;a=C;q=c[g>>2]|0;q=zF(q,((q|0)<0)<<31>>31)|0;q=gR(p|0,a|0,q|0,((q|0)<0)<<31>>31|0)|0;a=C;p=f;r=c[(c[b>>2]|0)+16>>2]|0;r=gR(c[p>>2]|0,c[p+4>>2]|0,r|0,((r|0)<0)<<31>>31|0)|0;p=C;if((a|0)>(p|0)|(a|0)==(p|0)&q>>>0>r>>>0)break;r=c[g>>2]|0;JK(n,r,((r|0)<0)<<31>>31);KK(n,c[(c[k>>2]|0)+32>>2]|0,c[g>>2]|0);c[l>>2]=UK(c[(c[b>>2]|0)+4>>2]|0,d)|0}c[m>>2]=LK(n,(c[j>>2]|0)+8|0)|0;if(c[l>>2]|0){r=c[l>>2]|0;i=o;return r|0}c[l>>2]=c[m>>2];r=c[l>>2]|0;i=o;return r|0}function bL(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=i;i=i+16|0;b=g+12|0;f=g+8|0;e=g+4|0;d=g;c[b>>2]=a;c[e>>2]=(c[b>>2]|0)+64;c[d>>2]=0;c[f>>2]=cL(c[b>>2]|0,d)|0;if(!(c[f>>2]|0)){c[f>>2]=dL(c[e>>2]|0,c[d>>2]|0,0)|0;c[(c[b>>2]|0)+20>>2]=c[d>>2];c[d>>2]=0}if(!(c[f>>2]|0)){f=c[f>>2]|0;i=g;return f|0}mK(c[d>>2]|0);f=c[f>>2]|0;i=g;return f|0}function cL(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=i;i=i+64|0;e=s+52|0;f=s+48|0;n=s+44|0;r=s+40|0;k=s+36|0;q=s+32|0;p=s+28|0;l=s+24|0;h=s;g=s+20|0;j=s+16|0;o=s+12|0;m=s+8|0;c[e>>2]=a;c[f>>2]=b;c[n>>2]=0;c[r>>2]=0;c[k>>2]=0;while(1){if(c[r>>2]|0)break;if((c[k>>2]|0)>=(d[(c[e>>2]|0)+59>>0]|0|0))break;c[q>>2]=(c[e>>2]|0)+64+((c[k>>2]|0)*72|0);c[p>>2]=0;c[l>>2]=hL(c[(c[q>>2]|0)+28>>2]|0)|0;b=h;c[b>>2]=0;c[b+4>>2]=0;a:do if((c[(c[q>>2]|0)+28>>2]|0)<=16)c[r>>2]=iL(c[q>>2]|0,c[(c[q>>2]|0)+28>>2]|0,h,p)|0;else{c[j>>2]=0;c[p>>2]=jL(16)|0;if(!(c[p>>2]|0))c[r>>2]=7;c[g>>2]=0;while(1){if(!((c[g>>2]|0)<(c[(c[q>>2]|0)+28>>2]|0)?(c[r>>2]|0)==0:0))break a;c[o>>2]=0;if(((c[(c[q>>2]|0)+28>>2]|0)-(c[g>>2]|0)|0)<16)a=(c[(c[q>>2]|0)+28>>2]|0)-(c[g>>2]|0)|0;else a=16;c[m>>2]=a;c[r>>2]=iL(c[q>>2]|0,c[m>>2]|0,h,o)|0;if(!(c[r>>2]|0)){t=c[q>>2]|0;a=c[l>>2]|0;b=c[j>>2]|0;c[j>>2]=b+1;c[r>>2]=kL(t,a,b,c[p>>2]|0,c[o>>2]|0)|0}c[g>>2]=(c[g>>2]|0)+16}}while(0);a=c[p>>2]|0;if(!(c[r>>2]|0))c[n>>2]=a;else mK(a);c[k>>2]=(c[k>>2]|0)+1}if(!(c[r>>2]|0)){q=c[n>>2]|0;t=c[f>>2]|0;c[t>>2]=q;t=c[r>>2]|0;i=s;return t|0}mK(c[n>>2]|0);c[n>>2]=0;q=c[n>>2]|0;t=c[f>>2]|0;c[t>>2]=q;t=c[r>>2]|0;i=s;return t|0}function dL(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;f=n+24|0;g=n+20|0;h=n+16|0;l=n+8|0;j=n+4|0;k=n;c[g>>2]=a;c[h>>2]=b;c[n+12>>2]=e;c[l>>2]=0;c[k>>2]=c[c[h>>2]>>2];c[(c[h>>2]|0)+4>>2]=c[g>>2];c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[k>>2]|0))break;c[l>>2]=eL((c[(c[h>>2]|0)+12>>2]|0)+((c[j>>2]|0)*56|0)|0,0)|0;if(c[l>>2]|0){m=4;break}c[j>>2]=(c[j>>2]|0)+1}if((m|0)==4){c[f>>2]=c[l>>2];m=c[f>>2]|0;i=n;return m|0}c[j>>2]=(c[c[h>>2]>>2]|0)-1;while(1){if((c[j>>2]|0)<=0)break;fL(c[h>>2]|0,c[j>>2]|0);c[j>>2]=(c[j>>2]|0)+-1}c[f>>2]=d[(c[(c[g>>2]|0)+12>>2]|0)+11>>0];m=c[f>>2]|0;i=n;return m|0}function eL(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=i;i=i+16|0;d=g+12|0;e=g+8|0;h=g+4|0;f=g;c[d>>2]=a;c[e>>2]=b;c[h>>2]=c[(c[d>>2]|0)+48>>2];c[f>>2]=0;if(!(c[h>>2]|0)){h=c[f>>2]|0;i=g;return h|0}c[f>>2]=gL(c[d>>2]|0,c[e>>2]|0)|0;h=c[f>>2]|0;i=g;return h|0}function fL(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+48|0;d=o+36|0;e=o+32|0;g=o+28|0;h=o+24|0;j=o+20|0;k=o+16|0;l=o+12|0;m=o+8|0;f=o+4|0;n=o;c[d>>2]=a;c[e>>2]=b;b=c[e>>2]|0;if((c[e>>2]|0)>=((c[c[d>>2]>>2]|0)/2|0|0)){c[g>>2]=b-((c[c[d>>2]>>2]|0)/2|0)<<1;c[h>>2]=(c[g>>2]|0)+1}else{c[g>>2]=c[(c[(c[d>>2]|0)+8>>2]|0)+(b<<1<<2)>>2];c[h>>2]=c[(c[(c[d>>2]|0)+8>>2]|0)+((c[e>>2]<<1)+1<<2)>>2]}c[k>>2]=(c[(c[d>>2]|0)+12>>2]|0)+((c[g>>2]|0)*56|0);c[l>>2]=(c[(c[d>>2]|0)+12>>2]|0)+((c[h>>2]|0)*56|0);do if(c[(c[k>>2]|0)+24>>2]|0){if(!(c[(c[l>>2]|0)+24>>2]|0)){c[j>>2]=c[g>>2];break}c[m>>2]=c[(c[d>>2]|0)+4>>2];c[f>>2]=0;c[n>>2]=Sb[c[(c[m>>2]|0)+32>>2]&255](c[m>>2]|0,f,c[(c[k>>2]|0)+32>>2]|0,c[(c[k>>2]|0)+20>>2]|0,c[(c[l>>2]|0)+32>>2]|0,c[(c[l>>2]|0)+20>>2]|0)|0;if((c[n>>2]|0)<=0){c[j>>2]=c[g>>2];break}else{c[j>>2]=c[h>>2];break}}else c[j>>2]=c[h>>2];while(0);c[(c[(c[d>>2]|0)+8>>2]|0)+(c[e>>2]<<2)>>2]=c[j>>2];i=o;return}function gL(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;d=k+24|0;l=k+20|0;j=k+16|0;g=k+12|0;h=k+8|0;e=k+4|0;f=k;c[d>>2]=a;c[l>>2]=b;c[j>>2]=0;c[g>>2]=c[(c[d>>2]|0)+48>>2];c[h>>2]=c[c[g>>2]>>2];c[e>>2]=c[(c[(c[h>>2]|0)+8>>2]|0)+24>>2];c[j>>2]=dL(c[h>>2]|0,c[(c[g>>2]|0)+4>>2]|0,c[l>>2]|0)|0;if(!(c[j>>2]|0)){c[f>>2]=c[(c[g>>2]|0)+16>>2];if(!(c[(c[h>>2]|0)+56>>2]|0)){l=(c[h>>2]|0)+56+8|0;c[j>>2]=GK(c[e>>2]|0,c[l>>2]|0,c[l+4>>2]|0,(c[h>>2]|0)+56|0)|0;l=(c[h>>2]|0)+56+8|0;c[l>>2]=0;c[l+4>>2]=0}if(!(c[j>>2]|0)){c[(c[g>>2]|0)+32+16>>2]=c[(c[h>>2]|0)+56>>2];b=(c[h>>2]|0)+56+8|0;l=c[b+4>>2]|0;a=(c[g>>2]|0)+8|0;c[a>>2]=c[b>>2];c[a+4>>2]=l;a=c[f>>2]|0;l=(c[h>>2]|0)+56+8|0;h=l;h=gR(c[h>>2]|0,c[h+4>>2]|0,a|0,((a|0)<0)<<31>>31|0)|0;c[l>>2]=h;c[l+4>>2]=C}}if(c[j>>2]|0){l=c[j>>2]|0;i=k;return l|0}c[j>>2]=VK(c[d>>2]|0)|0;l=c[j>>2]|0;i=k;return l|0}function hL(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0;f=i;i=i+16|0;b=f+12|0;d=f+8|0;e=f;c[b>>2]=a;c[d>>2]=0;a=e;c[a>>2]=16;c[a+4>>2]=0;while(1){g=e;j=c[g+4>>2]|0;a=c[b>>2]|0;h=((a|0)<0)<<31>>31;if(!((j|0)<(h|0)|((j|0)==(h|0)?(c[g>>2]|0)>>>0<a>>>0:0)))break;h=e;h=rR(c[h>>2]|0,c[h+4>>2]|0,16,0)|0;j=e;c[j>>2]=h;c[j+4>>2]=C;c[d>>2]=(c[d>>2]|0)+1}i=f;return c[d>>2]|0}function iL(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;f=q+44|0;g=q+40|0;h=q+36|0;j=q+32|0;n=q+28|0;l=q+8|0;k=q+24|0;p=q+20|0;m=q;o=q+16|0;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;a=c[h>>2]|0;d=c[a+4>>2]|0;e=l;c[e>>2]=c[a>>2];c[e+4>>2]=d;c[p>>2]=0;e=jL(c[g>>2]|0)|0;c[n>>2]=e;c[c[j>>2]>>2]=e;if(!(c[n>>2]|0))c[p>>2]=7;c[k>>2]=0;while(1){if(!((c[k>>2]|0)<(c[g>>2]|0)?(c[p>>2]|0)==0:0))break;c[o>>2]=(c[(c[n>>2]|0)+12>>2]|0)+((c[k>>2]|0)*56|0);a=l;c[p>>2]=mL(c[f>>2]|0,(c[f>>2]|0)+40|0,c[a>>2]|0,c[a+4>>2]|0,c[o>>2]|0,m)|0;a=(c[o>>2]|0)+8|0;d=c[a+4>>2]|0;e=l;c[e>>2]=c[a>>2];c[e+4>>2]=d;c[k>>2]=(c[k>>2]|0)+1}if(!(c[p>>2]|0)){d=l;o=d;o=c[o>>2]|0;d=d+4|0;d=c[d>>2]|0;e=c[h>>2]|0;a=e;c[a>>2]=o;e=e+4|0;c[e>>2]=d;p=c[p>>2]|0;i=q;return p|0}mK(c[n>>2]|0);c[c[j>>2]>>2]=0;d=l;o=d;o=c[o>>2]|0;d=d+4|0;d=c[d>>2]|0;e=c[h>>2]|0;a=e;c[a>>2]=o;e=e+4|0;c[e>>2]=d;p=c[p>>2]|0;i=q;return p|0}function jL(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=i;i=i+16|0;b=g+12|0;e=g+8|0;d=g+4|0;f=g;c[b>>2]=a;c[e>>2]=2;while(1){a=c[e>>2]|0;if((c[e>>2]|0)>=(c[b>>2]|0))break;c[e>>2]=(c[e>>2]|0)+a}c[d>>2]=16+(a*60|0);if(wi(100)|0)a=0;else{a=c[d>>2]|0;a=ig(a,((a|0)<0)<<31>>31)|0}c[f>>2]=a;if(!(c[f>>2]|0)){f=c[f>>2]|0;i=g;return f|0}c[c[f>>2]>>2]=c[e>>2];c[(c[f>>2]|0)+4>>2]=0;c[(c[f>>2]|0)+12>>2]=(c[f>>2]|0)+16;c[(c[f>>2]|0)+8>>2]=(c[(c[f>>2]|0)+12>>2]|0)+((c[e>>2]|0)*56|0);f=c[f>>2]|0;i=g;return f|0}function kL(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;s=i;i=i+64|0;g=s+48|0;h=s+44|0;p=s+40|0;u=s+36|0;t=s+32|0;r=s+28|0;l=s+24|0;j=s+20|0;q=s+16|0;m=s+12|0;k=s+8|0;o=s+4|0;n=s;c[g>>2]=a;c[h>>2]=b;c[p>>2]=d;c[u>>2]=e;c[t>>2]=f;c[r>>2]=0;c[l>>2]=1;c[q>>2]=c[u>>2];c[r>>2]=lL(c[g>>2]|0,c[t>>2]|0,m)|0;c[j>>2]=1;while(1){if((c[j>>2]|0)>=(c[h>>2]|0))break;c[l>>2]=c[l>>2]<<4;c[j>>2]=(c[j>>2]|0)+1}c[j>>2]=1;while(1){if(!((c[j>>2]|0)<(c[h>>2]|0)?(c[r>>2]|0)==0:0))break;c[k>>2]=((c[p>>2]|0)/(c[l>>2]|0)|0|0)%16|0;c[o>>2]=(c[(c[q>>2]|0)+12>>2]|0)+((c[k>>2]|0)*56|0);do if(!(c[(c[o>>2]|0)+48>>2]|0)){c[n>>2]=jL(16)|0;if(!(c[n>>2]|0)){c[r>>2]=7;break}else{c[r>>2]=lL(c[g>>2]|0,c[n>>2]|0,(c[o>>2]|0)+48|0)|0;break}}while(0);if(!(c[r>>2]|0)){c[q>>2]=c[(c[(c[o>>2]|0)+48>>2]|0)+4>>2];c[l>>2]=(c[l>>2]|0)/16|0}c[j>>2]=(c[j>>2]|0)+1}g=c[m>>2]|0;if(!(c[r>>2]|0)){c[(c[(c[q>>2]|0)+12>>2]|0)+(((c[p>>2]|0)%16|0)*56|0)+48>>2]=g;u=c[r>>2]|0;i=s;return u|0}else{rK(g);u=c[r>>2]|0;i=s;return u|0}return 0}function lL(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;g=k+16|0;e=k+12|0;f=k+8|0;j=k+4|0;h=k;c[g>>2]=a;c[e>>2]=b;c[f>>2]=d;c[j>>2]=0;if(wi(100)|0)b=0;else b=ig(64,0)|0;c[c[f>>2]>>2]=b;c[h>>2]=b;b=c[e>>2]|0;if(!(c[h>>2]|0)){mK(b);c[j>>2]=7;j=c[j>>2]|0;i=k;return j|0}c[(c[h>>2]|0)+4>>2]=b;c[c[h>>2]>>2]=c[g>>2];b=c[(c[g>>2]|0)+8>>2]|0;if(((c[(c[(c[g>>2]|0)+8>>2]|0)+8>>2]|0)+9|0)>((c[(c[(c[g>>2]|0)+8>>2]|0)+4>>2]|0)/2|0|0))b=(c[b+8>>2]|0)+9|0;else b=(c[b+4>>2]|0)/2|0;c[(c[h>>2]|0)+16>>2]=b;f=c[(c[h>>2]|0)+16>>2]|0;h=(c[g>>2]|0)+56+8|0;g=h;g=gR(c[g>>2]|0,c[g+4>>2]|0,f|0,((f|0)<0)<<31>>31|0)|0;c[h>>2]=g;c[h+4>>2]=C;j=c[j>>2]|0;i=k;return j|0}function mL(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;m=i;i=i+48|0;o=m+32|0;n=m+28|0;p=m+8|0;h=m+24|0;j=m+20|0;l=m+16|0;k=m;c[o>>2]=a;c[n>>2]=b;a=p;c[a>>2]=d;c[a+4>>2]=e;c[h>>2]=f;c[j>>2]=g;g=p;c[l>>2]=XK(c[o>>2]|0,c[h>>2]|0,c[n>>2]|0,c[g>>2]|0,c[g+4>>2]|0)|0;if(!(c[l>>2]|0)){o=k;c[o>>2]=0;c[o+4>>2]=0;c[l>>2]=YK(c[h>>2]|0,k)|0;o=c[h>>2]|0;p=k;p=gR(c[o>>2]|0,c[o+4>>2]|0,c[p>>2]|0,c[p+4>>2]|0)|0;o=(c[h>>2]|0)+8|0;c[o>>2]=p;c[o+4>>2]=C;o=k;p=c[j>>2]|0;n=p;o=gR(c[n>>2]|0,c[n+4>>2]|0,c[o>>2]|0,c[o+4>>2]|0)|0;c[p>>2]=o;c[p+4>>2]=C}if(c[l>>2]|0){p=c[l>>2]|0;i=m;return p|0}c[l>>2]=VK(c[h>>2]|0)|0;p=c[l>>2]|0;i=m;return p|0}function nL(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;b=e;c[b>>2]=a;i=e;return(d[(c[b>>2]|0)+66>>0]|0|0)!=1|0}function oL(b){b=b|0;var d=0,e=0,f=0,g=0;f=i;i=i+16|0;d=f+8|0;g=f+4|0;e=f;c[d>>2]=b;c[e>>2]=pL(c[(c[d>>2]|0)+16>>2]|0,g)|0;c[(c[d>>2]|0)+56>>2]=0;if(!(c[g>>2]|0)){g=c[e>>2]|0;i=f;return g|0}a[(c[d>>2]|0)+2>>0]=1;g=c[e>>2]|0;i=f;return g|0}function pL(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;g=j+12|0;h=j+8|0;e=j+4|0;f=j;c[h>>2]=a;c[e>>2]=b;if((d[(c[h>>2]|0)+66>>0]|0|0)>=3)a=WE(c[h>>2]|0)|0;else a=0;c[f>>2]=a;if(c[f>>2]|0){c[c[e>>2]>>2]=1;c[g>>2]=c[f>>2];h=c[g>>2]|0;i=j;return h|0}a=c[e>>2]|0;if((d[(c[h>>2]|0)+66>>0]|0|0)!=1)c[a>>2]=1;else c[a>>2]=0;c[g>>2]=0;h=c[g>>2]|0;i=j;return h|0}function qL(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;e=j+12|0;f=j+8|0;g=j+4|0;h=j;c[e>>2]=b;c[f>>2]=d;b=c[e>>2]|0;if(a[(c[e>>2]|0)+56>>0]|0){c[h>>2]=(c[(c[(c[e>>2]|0)+20>>2]|0)+12>>2]|0)+((c[(c[(c[b+20>>2]|0)+8>>2]|0)+4>>2]|0)*56|0);c[c[f>>2]>>2]=c[(c[h>>2]|0)+20>>2];c[g>>2]=c[(c[h>>2]|0)+32>>2];h=c[g>>2]|0;i=j;return h|0}else{c[c[f>>2]>>2]=c[c[b+36>>2]>>2];c[g>>2]=(c[(c[e>>2]|0)+36>>2]|0)+8;h=c[g>>2]|0;i=j;return h|0}return 0}function rL(f,g,h,j){f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+48|0;k=t+32|0;l=t+28|0;m=t+24|0;n=t+20|0;q=t+16|0;o=t+12|0;r=t+8|0;s=t+4|0;p=t;c[k>>2]=f;c[l>>2]=g;c[m>>2]=h;c[n>>2]=j;if(c[c[n>>2]>>2]|0){i=t;return}c[o>>2]=c[(c[k>>2]|0)+56>>2];c[r>>2]=(c[(c[k>>2]|0)+64>>2]|0)+(c[l>>2]<<1);c[q>>2]=(d[c[r>>2]>>0]|0)<<8|(d[(c[r>>2]|0)+1>>0]|0);c[p>>2]=d[(c[k>>2]|0)+5>>0];if((c[q>>2]|0)>>>0>=((d[(c[o>>2]|0)+((c[p>>2]|0)+5)>>0]|0)<<8|(d[(c[o>>2]|0)+((c[p>>2]|0)+5)+1>>0]|0))>>>0?((c[q>>2]|0)+(c[m>>2]|0)|0)>>>0<=(c[(c[(c[k>>2]|0)+52>>2]|0)+36>>2]|0)>>>0:0){c[s>>2]=IL(c[k>>2]|0,c[q>>2]&65535,c[m>>2]&65535)|0;if(c[s>>2]|0){c[c[n>>2]>>2]=c[s>>2];i=t;return}h=(c[k>>2]|0)+18|0;b[h>>1]=(b[h>>1]|0)+-1<<16>>16;if(!(e[(c[k>>2]|0)+18>>1]|0)){h=(c[o>>2]|0)+((c[p>>2]|0)+1)|0;a[h>>0]=0;a[h+1>>0]=0;a[h+2>>0]=0;a[h+3>>0]=0;a[(c[o>>2]|0)+((c[p>>2]|0)+7)>>0]=0;a[(c[o>>2]|0)+((c[p>>2]|0)+5)>>0]=(c[(c[(c[k>>2]|0)+52>>2]|0)+36>>2]|0)>>>8;a[(c[o>>2]|0)+((c[p>>2]|0)+5)+1>>0]=c[(c[(c[k>>2]|0)+52>>2]|0)+36>>2];b[(c[k>>2]|0)+16>>1]=(c[(c[(c[k>>2]|0)+52>>2]|0)+36>>2]|0)-(d[(c[k>>2]|0)+5>>0]|0)-(d[(c[k>>2]|0)+6>>0]|0)-8;i=t;return}else{jR(c[r>>2]|0,(c[r>>2]|0)+2|0,(e[(c[k>>2]|0)+18>>1]|0)-(c[l>>2]|0)<<1|0)|0;a[(c[o>>2]|0)+((c[p>>2]|0)+3)>>0]=(e[(c[k>>2]|0)+18>>1]|0)>>8;a[(c[o>>2]|0)+((c[p>>2]|0)+3)+1>>0]=b[(c[k>>2]|0)+18>>1];h=(c[k>>2]|0)+16|0;b[h>>1]=(e[h>>1]|0)+2;i=t;return}}h=Lj(61841)|0;c[c[n>>2]>>2]=h;i=t;return}function sL(f,g,h,j,k,l,m){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=i;i=i+48|0;n=z+44|0;o=z+40|0;p=z+36|0;q=z+32|0;r=z+28|0;s=z+24|0;t=z+20|0;v=z+16|0;w=z+12|0;u=z+8|0;x=z+4|0;y=z;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[q>>2]=j;c[r>>2]=k;c[s>>2]=l;c[t>>2]=m;c[v>>2]=0;if(c[c[t>>2]>>2]|0){i=z;return}if((d[(c[n>>2]|0)+1>>0]|0)==0?((c[q>>2]|0)+2|0)<=(e[(c[n>>2]|0)+16>>1]|0):0){c[y>>2]=Dg(c[(c[n>>2]|0)+72>>2]|0)|0;if(c[y>>2]|0){c[c[t>>2]>>2]=c[y>>2];i=z;return}c[u>>2]=c[(c[n>>2]|0)+56>>2];c[y>>2]=KL(c[n>>2]|0,c[q>>2]|0,v)|0;if(c[y>>2]|0){c[c[t>>2]>>2]=c[y>>2];i=z;return}j=(c[n>>2]|0)+16|0;b[j>>1]=(e[j>>1]|0)-(2+(c[q>>2]|0)&65535);iR((c[u>>2]|0)+(c[v>>2]|0)|0,c[p>>2]|0,c[q>>2]|0)|0;if(c[s>>2]|0)Xs((c[u>>2]|0)+(c[v>>2]|0)|0,c[s>>2]|0);c[x>>2]=(c[(c[n>>2]|0)+64>>2]|0)+(c[o>>2]<<1);jR((c[x>>2]|0)+2|0,c[x>>2]|0,(e[(c[n>>2]|0)+18>>1]|0)-(c[o>>2]|0)<<1|0)|0;a[c[x>>2]>>0]=c[v>>2]>>8;a[(c[x>>2]|0)+1>>0]=c[v>>2];y=(c[n>>2]|0)+18|0;b[y>>1]=(b[y>>1]|0)+1<<16>>16;y=(c[u>>2]|0)+((d[(c[n>>2]|0)+5>>0]|0)+4)|0;j=(a[y>>0]|0)+1<<24>>24;a[y>>0]=j;if(!(j&255)){j=(c[u>>2]|0)+((d[(c[n>>2]|0)+5>>0]|0)+3)|0;a[j>>0]=(a[j>>0]|0)+1<<24>>24}if(!(a[(c[(c[n>>2]|0)+52>>2]|0)+17>>0]|0)){i=z;return}zJ(c[n>>2]|0,c[p>>2]|0,c[t>>2]|0);i=z;return}if(c[r>>2]|0){iR(c[r>>2]|0,c[p>>2]|0,c[q>>2]|0)|0;c[p>>2]=c[r>>2]}if(c[s>>2]|0)Xs(c[p>>2]|0,c[s>>2]|0);y=(c[n>>2]|0)+1|0;j=a[y>>0]|0;a[y>>0]=j+1<<24>>24;c[w>>2]=j&255;c[(c[n>>2]|0)+32+(c[w>>2]<<2)>>2]=c[p>>2];b[(c[n>>2]|0)+22+(c[w>>2]<<1)>>1]=c[o>>2];i=z;return}function tL(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+64|0;g=r+32|0;q=r+28|0;l=r+24|0;h=r+36|0;m=r+20|0;k=r+16|0;n=r+12|0;o=r+8|0;j=r+4|0;p=r;c[g>>2]=f;c[q>>2]=0;c[l>>2]=(c[(c[(c[g>>2]|0)+4>>2]|0)+36>>2]<<1>>>0)/3|0;c[m>>2]=0;do{c[k>>2]=a[(c[g>>2]|0)+68>>0];c[n>>2]=c[(c[g>>2]|0)+120+(c[k>>2]<<2)>>2];f=a[(c[n>>2]|0)+1>>0]|0;if(!(c[k>>2]|0)){if(!(f<<24>>24))break;c[q>>2]=uL(c[n>>2]|0,(c[g>>2]|0)+120+4|0)|0;if(!(c[q>>2]|0)){a[(c[g>>2]|0)+68>>0]=1;b[(c[g>>2]|0)+80>>1]=0;b[(c[g>>2]|0)+80+2>>1]=0}}else{if((f&255|0)==0?(e[(c[n>>2]|0)+16>>1]|0)<=(c[l>>2]|0):0)break;c[o>>2]=c[(c[g>>2]|0)+120+((c[k>>2]|0)-1<<2)>>2];c[j>>2]=e[(c[g>>2]|0)+80+((c[k>>2]|0)-1<<1)>>1];c[q>>2]=Dg(c[(c[o>>2]|0)+72>>2]|0)|0;do if(!(c[q>>2]|0)){if(((((d[(c[n>>2]|0)+3>>0]|0)!=0?(d[(c[n>>2]|0)+1>>0]|0)==1:0)?(e[(c[n>>2]|0)+22>>1]|0)==(e[(c[n>>2]|0)+18>>1]|0):0)?(c[(c[o>>2]|0)+84>>2]|0)!=1:0)?(e[(c[o>>2]|0)+18>>1]|0)==(c[j>>2]|0):0){c[q>>2]=vL(c[o>>2]|0,c[n>>2]|0,h)|0;break}c[p>>2]=Ti(c[(c[(c[g>>2]|0)+4>>2]|0)+32>>2]|0)|0;c[q>>2]=wL(c[o>>2]|0,c[j>>2]|0,c[p>>2]|0,(c[k>>2]|0)==1&1,d[(c[g>>2]|0)+67>>0]&1)|0;if(c[m>>2]|0)Wi(c[m>>2]|0);c[m>>2]=c[p>>2]}while(0);a[(c[n>>2]|0)+1>>0]=0;qB(c[n>>2]|0);f=(c[g>>2]|0)+68|0;a[f>>0]=(a[f>>0]|0)+-1<<24>>24}}while((c[q>>2]|0)==0);if(!(c[m>>2]|0)){q=c[q>>2]|0;i=r;return q|0}Wi(c[m>>2]|0);q=c[q>>2]|0;i=r;return q|0}function uL(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;f=n+24|0;g=n+20|0;h=n+16|0;m=n+12|0;k=n+8|0;l=n+4|0;j=n;c[g>>2]=b;c[h>>2]=e;c[k>>2]=0;c[l>>2]=0;c[j>>2]=c[(c[g>>2]|0)+52>>2];c[m>>2]=Dg(c[(c[g>>2]|0)+72>>2]|0)|0;if((c[m>>2]|0)==0?(c[m>>2]=tJ(c[j>>2]|0,k,l,c[(c[g>>2]|0)+84>>2]|0,0)|0,BL(c[g>>2]|0,c[k>>2]|0,m),(a[(c[j>>2]|0)+17>>0]|0)!=0):0)xJ(c[j>>2]|0,c[l>>2]|0,5,c[(c[g>>2]|0)+84>>2]|0,m);if(c[m>>2]|0){c[c[h>>2]>>2]=0;qB(c[k>>2]|0);c[f>>2]=c[m>>2];m=c[f>>2]|0;i=n;return m|0}else{iR((c[k>>2]|0)+22|0,(c[g>>2]|0)+22|0,d[(c[g>>2]|0)+1>>0]<<1|0)|0;iR((c[k>>2]|0)+32|0,(c[g>>2]|0)+32|0,d[(c[g>>2]|0)+1>>0]<<2|0)|0;a[(c[k>>2]|0)+1>>0]=a[(c[g>>2]|0)+1>>0]|0;wK(c[g>>2]|0,d[c[(c[k>>2]|0)+56>>2]>>0]&-9);Xs((c[(c[g>>2]|0)+56>>2]|0)+((d[(c[g>>2]|0)+5>>0]|0)+8)|0,c[l>>2]|0);c[c[h>>2]>>2]=c[k>>2];c[f>>2]=0;m=c[f>>2]|0;i=n;return m|0}return 0}function vL(f,g,h){f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+48|0;j=v+40|0;k=v+36|0;l=v+32|0;m=v+28|0;n=v+24|0;p=v+20|0;t=v+16|0;s=v+12|0;q=v+8|0;o=v+4|0;u=v+44|0;r=v;c[k>>2]=f;c[l>>2]=g;c[m>>2]=h;c[n>>2]=c[(c[l>>2]|0)+52>>2];if(!(e[(c[l>>2]|0)+18>>1]|0)){c[j>>2]=Lj(62338)|0;u=c[j>>2]|0;i=v;return u|0}c[t>>2]=tJ(c[n>>2]|0,p,s,0,0)|0;if(!(c[t>>2]|0)){c[q>>2]=(c[m>>2]|0)+4;c[o>>2]=c[(c[l>>2]|0)+32>>2];b[u>>1]=Yb[c[(c[l>>2]|0)+76>>2]&255](c[l>>2]|0,c[o>>2]|0)|0;wK(c[p>>2]|0,13);c[t>>2]=GL(c[p>>2]|0,1,o,u)|0;if(c[t>>2]|0){c[j>>2]=c[t>>2];u=c[j>>2]|0;i=v;return u|0}b[(c[p>>2]|0)+16>>1]=(c[(c[n>>2]|0)+36>>2]|0)-(e[(c[p>>2]|0)+14>>1]|0)-2-(e[u>>1]|0);if((a[(c[n>>2]|0)+17>>0]|0)!=0?(xJ(c[n>>2]|0,c[s>>2]|0,5,c[(c[k>>2]|0)+84>>2]|0,t),(e[u>>1]|0)>(e[(c[p>>2]|0)+12>>1]|0)):0)zJ(c[p>>2]|0,c[o>>2]|0,t);c[o>>2]=(c[(c[l>>2]|0)+56>>2]|0)+(e[(c[l>>2]|0)+20>>1]&(d[(c[(c[l>>2]|0)+64>>2]|0)+((e[(c[l>>2]|0)+18>>1]|0)-1<<1)>>0]<<8|d[(c[(c[l>>2]|0)+64>>2]|0)+((e[(c[l>>2]|0)+18>>1]|0)-1<<1)+1>>0]));c[r>>2]=(c[o>>2]|0)+9;do{u=c[o>>2]|0;c[o>>2]=u+1;if(!(d[u>>0]&128))break}while((c[o>>2]|0)>>>0<(c[r>>2]|0)>>>0);c[r>>2]=(c[o>>2]|0)+9;do{u=c[o>>2]|0;c[o>>2]=u+1;u=a[u>>0]|0;h=c[q>>2]|0;c[q>>2]=h+1;a[h>>0]=u;if(!(u&128))break}while((c[o>>2]|0)>>>0<(c[r>>2]|0)>>>0);sL(c[k>>2]|0,e[(c[k>>2]|0)+18>>1]|0,c[m>>2]|0,(c[q>>2]|0)-(c[m>>2]|0)|0,0,c[(c[l>>2]|0)+84>>2]|0,t);Xs((c[(c[k>>2]|0)+56>>2]|0)+((d[(c[k>>2]|0)+5>>0]|0)+8)|0,c[s>>2]|0);qB(c[p>>2]|0)}c[j>>2]=c[t>>2];u=c[j>>2]|0;i=v;return u|0}function wL(f,g,h,j,k){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0;
  64. Da=i;i=i+448|0;ga=Da+412|0;ha=Da+408|0;l=Da+404|0;Q=Da+400|0;ia=Da+396|0;C=Da+392|0;za=Da+388|0;t=Da+384|0;wa=Da+380|0;ya=Da+376|0;pa=Da+372|0;Y=Da+368|0;H=Da+364|0;Z=Da+360|0;Aa=Da+356|0;ua=Da+430|0;va=Da+352|0;Ca=Da+348|0;L=Da+344|0;q=Da+340|0;W=Da+336|0;A=Da+332|0;la=Da+320|0;ka=Da+300|0;K=Da+296|0;p=Da+288|0;na=Da+264|0;oa=Da+244|0;Ba=Da+224|0;o=Da+220|0;M=Da+216|0;ja=Da+432|0;S=Da+196|0;E=Da+176|0;D=Da+420|0;ma=Da+160|0;m=Da+152|0;v=Da+148|0;r=Da+144|0;n=Da+140|0;s=Da+418|0;x=Da+136|0;y=Da+132|0;z=Da+416|0;w=Da+128|0;u=Da+124|0;B=Da+120|0;P=Da+116|0;O=Da+112|0;N=Da+108|0;F=Da+104|0;I=Da+100|0;G=Da+96|0;J=Da+92|0;aa=Da+88|0;R=Da+84|0;T=Da+80|0;fa=Da+76|0;U=Da+72|0;V=Da+68|0;_=Da+64|0;ca=Da+60|0;$=Da+56|0;da=Da+52|0;ea=Da+48|0;ba=Da+44|0;X=Da;sa=Da+40|0;qa=Da+36|0;ra=Da+32|0;xa=Da+28|0;ta=Da+24|0;c[ha>>2]=f;c[l>>2]=g;c[Q>>2]=h;c[ia>>2]=j;c[C>>2]=k;c[t>>2]=0;c[wa>>2]=0;c[Aa>>2]=0;c[q>>2]=0;c[W>>2]=0;a[ja>>0]=0;a[ja+1>>0]=0;a[ja+2>>0]=0;a[ja+3>>0]=0;a[ja+4>>0]=0;c[ma>>2]=0;c[ma+8>>2]=0;c[za>>2]=c[(c[ha>>2]|0)+52>>2];if(!(c[Q>>2]|0)){c[ga>>2]=7;Ca=c[ga>>2]|0;i=Da;return Ca|0}c[pa>>2]=(d[(c[ha>>2]|0)+1>>0]|0)+(e[(c[ha>>2]|0)+18>>1]|0);if((c[pa>>2]|0)<2)c[Z>>2]=0;else{do if(c[l>>2]|0)if((c[l>>2]|0)==(c[pa>>2]|0)){c[Z>>2]=(c[pa>>2]|0)-2+(c[C>>2]|0);break}else{c[Z>>2]=(c[l>>2]|0)-1;break}else c[Z>>2]=0;while(0);c[pa>>2]=2-(c[C>>2]|0)}c[ya>>2]=(c[pa>>2]|0)+1;l=c[ha>>2]|0;if(((c[pa>>2]|0)+(c[Z>>2]|0)-(d[(c[ha>>2]|0)+1>>0]|0)|0)==(e[(c[ha>>2]|0)+18>>1]|0))c[K>>2]=(c[(c[ha>>2]|0)+56>>2]|0)+((d[l+5>>0]|0)+8);else c[K>>2]=(c[l+56>>2]|0)+(e[(c[ha>>2]|0)+20>>1]&(d[(c[(c[ha>>2]|0)+64>>2]|0)+((c[pa>>2]|0)+(c[Z>>2]|0)-(d[(c[ha>>2]|0)+1>>0]|0)<<1)>>0]<<8|d[(c[(c[ha>>2]|0)+64>>2]|0)+((c[pa>>2]|0)+(c[Z>>2]|0)-(d[(c[ha>>2]|0)+1>>0]|0)<<1)+1>>0]));c[M>>2]=$q(c[K>>2]|0)|0;while(1){c[Aa>>2]=_E(c[za>>2]|0,c[M>>2]|0,la+(c[pa>>2]<<2)|0,0,0)|0;if(c[Aa>>2]|0){h=16;break}c[t>>2]=(c[t>>2]|0)+(1+(e[(c[la+(c[pa>>2]<<2)>>2]|0)+18>>1]|0)+(d[(c[la+(c[pa>>2]<<2)>>2]|0)+1>>0]|0));f=c[pa>>2]|0;c[pa>>2]=f+-1;if(!f){h=26;break}if(((c[pa>>2]|0)+(c[Z>>2]|0)|0)==(e[(c[ha>>2]|0)+22>>1]|0)?(d[(c[ha>>2]|0)+1>>0]|0)!=0:0){c[p+(c[pa>>2]<<2)>>2]=c[(c[ha>>2]|0)+32>>2];c[M>>2]=$q(c[p+(c[pa>>2]<<2)>>2]|0)|0;f=(Yb[c[(c[ha>>2]|0)+76>>2]&255](c[ha>>2]|0,c[p+(c[pa>>2]<<2)>>2]|0)|0)&65535;c[Ba+(c[pa>>2]<<2)>>2]=f;a[(c[ha>>2]|0)+1>>0]=0;continue}c[p+(c[pa>>2]<<2)>>2]=(c[(c[ha>>2]|0)+56>>2]|0)+(e[(c[ha>>2]|0)+20>>1]&(d[(c[(c[ha>>2]|0)+64>>2]|0)+((c[pa>>2]|0)+(c[Z>>2]|0)-(d[(c[ha>>2]|0)+1>>0]|0)<<1)>>0]<<8|d[(c[(c[ha>>2]|0)+64>>2]|0)+((c[pa>>2]|0)+(c[Z>>2]|0)-(d[(c[ha>>2]|0)+1>>0]|0)<<1)+1>>0]));c[M>>2]=$q(c[p+(c[pa>>2]<<2)>>2]|0)|0;f=(Yb[c[(c[ha>>2]|0)+76>>2]&255](c[ha>>2]|0,c[p+(c[pa>>2]<<2)>>2]|0)|0)&65535;c[Ba+(c[pa>>2]<<2)>>2]=f;if(e[(c[za>>2]|0)+22>>1]&4){c[m>>2]=(c[p+(c[pa>>2]<<2)>>2]|0)-(c[(c[ha>>2]|0)+56>>2]|0);if(((c[m>>2]|0)+(c[Ba+(c[pa>>2]<<2)>>2]|0)|0)>(c[(c[za>>2]|0)+36>>2]|0)){h=23;break}iR((c[Q>>2]|0)+(c[m>>2]|0)|0,c[p+(c[pa>>2]<<2)>>2]|0,c[Ba+(c[pa>>2]<<2)>>2]|0)|0;c[p+(c[pa>>2]<<2)>>2]=(c[Q>>2]|0)+((c[p+(c[pa>>2]<<2)>>2]|0)-(c[(c[ha>>2]|0)+56>>2]|0))}rL(c[ha>>2]|0,(c[pa>>2]|0)+(c[Z>>2]|0)-(d[(c[ha>>2]|0)+1>>0]|0)|0,c[Ba+(c[pa>>2]<<2)>>2]|0,Aa)}a:do if((h|0)==16)kR(la|0,0,(c[pa>>2]|0)+1<<2|0)|0;else if((h|0)==23){c[Aa>>2]=Lj(62677)|0;kR(la|0,0,(c[pa>>2]|0)+1<<2|0)|0}else if((h|0)==26){c[t>>2]=(c[t>>2]|0)+3&-4;c[A>>2]=(c[t>>2]<<2)+(c[t>>2]<<1)+(c[(c[za>>2]|0)+32>>2]|0);c[ma+8>>2]=zi(c[A>>2]|0)|0;if(!(c[ma+8>>2]|0)){c[Aa>>2]=7;break}c[ma+12>>2]=(c[ma+8>>2]|0)+(c[t>>2]<<2);c[o>>2]=(c[ma+12>>2]|0)+(c[t>>2]<<1);c[ma+4>>2]=c[la>>2];b[ua>>1]=d[(c[ma+4>>2]|0)+4>>0]<<2;c[va>>2]=d[(c[ma+4>>2]|0)+3>>0];c[pa>>2]=0;while(1){if((c[pa>>2]|0)>=(c[ya>>2]|0))break;c[v>>2]=c[la+(c[pa>>2]<<2)>>2];c[r>>2]=e[(c[v>>2]|0)+18>>1];c[n>>2]=c[(c[v>>2]|0)+56>>2];b[s>>1]=b[(c[v>>2]|0)+20>>1]|0;c[x>>2]=(c[n>>2]|0)+(e[(c[v>>2]|0)+14>>1]|0);if((d[c[(c[v>>2]|0)+56>>2]>>0]|0)!=(d[c[(c[la>>2]|0)+56>>2]>>0]|0)){h=31;break}kR((c[ma+12>>2]|0)+(c[ma>>2]<<1)|0,0,(c[r>>2]|0)+(d[(c[v>>2]|0)+1>>0]|0)<<1|0)|0;b:do if((d[(c[v>>2]|0)+1>>0]|0)>0){c[r>>2]=e[(c[v>>2]|0)+22>>1];c[Y>>2]=0;while(1){if((c[Y>>2]|0)>=(c[r>>2]|0))break;c[(c[ma+8>>2]|0)+(c[ma>>2]<<2)>>2]=(c[n>>2]|0)+(e[s>>1]&(d[c[x>>2]>>0]<<8|d[(c[x>>2]|0)+1>>0]));c[x>>2]=(c[x>>2]|0)+2;c[ma>>2]=(c[ma>>2]|0)+1;c[Y>>2]=(c[Y>>2]|0)+1}c[H>>2]=0;while(1){if((c[H>>2]|0)>=(d[(c[v>>2]|0)+1>>0]|0))break b;c[(c[ma+8>>2]|0)+(c[ma>>2]<<2)>>2]=c[(c[v>>2]|0)+32+(c[H>>2]<<2)>>2];c[ma>>2]=(c[ma>>2]|0)+1;c[H>>2]=(c[H>>2]|0)+1}}while(0);c[y>>2]=(c[n>>2]|0)+(e[(c[v>>2]|0)+14>>1]|0)+(e[(c[v>>2]|0)+18>>1]<<1);while(1){if((c[x>>2]|0)>>>0>=(c[y>>2]|0)>>>0)break;c[(c[ma+8>>2]|0)+(c[ma>>2]<<2)>>2]=(c[n>>2]|0)+(e[s>>1]&(d[c[x>>2]>>0]<<8|d[(c[x>>2]|0)+1>>0]));c[x>>2]=(c[x>>2]|0)+2;c[ma>>2]=(c[ma>>2]|0)+1}c[oa+(c[pa>>2]<<2)>>2]=c[ma>>2];if(!((c[va>>2]|0)!=0?1:(c[pa>>2]|0)>=((c[ya>>2]|0)-1|0))){b[z>>1]=c[Ba+(c[pa>>2]<<2)>>2];b[(c[ma+12>>2]|0)+(c[ma>>2]<<1)>>1]=b[z>>1]|0;c[w>>2]=(c[o>>2]|0)+(c[q>>2]|0);c[q>>2]=(c[q>>2]|0)+(e[z>>1]|0);iR(c[w>>2]|0,c[p+(c[pa>>2]<<2)>>2]|0,e[z>>1]|0)|0;c[(c[ma+8>>2]|0)+(c[ma>>2]<<2)>>2]=(c[w>>2]|0)+(e[ua>>1]|0);b[(c[ma+12>>2]|0)+(c[ma>>2]<<1)>>1]=(e[(c[ma+12>>2]|0)+(c[ma>>2]<<1)>>1]|0)-(e[ua>>1]|0);c:do if(a[(c[v>>2]|0)+4>>0]|0)while(1){if((e[(c[ma+12>>2]|0)+(c[ma>>2]<<1)>>1]|0)>=4)break c;A=c[q>>2]|0;c[q>>2]=A+1;a[(c[o>>2]|0)+A>>0]=0;A=(c[ma+12>>2]|0)+(c[ma>>2]<<1)|0;b[A>>1]=(b[A>>1]|0)+1<<16>>16}else{A=c[(c[ma+8>>2]|0)+(c[ma>>2]<<2)>>2]|0;t=(c[(c[v>>2]|0)+56>>2]|0)+8|0;a[A>>0]=a[t>>0]|0;a[A+1>>0]=a[t+1>>0]|0;a[A+2>>0]=a[t+2>>0]|0;a[A+3>>0]=a[t+3>>0]|0}while(0);c[ma>>2]=(c[ma>>2]|0)+1}c[pa>>2]=(c[pa>>2]|0)+1}if((h|0)==31){c[Aa>>2]=Lj(62744)|0;break}c[Ca>>2]=(c[(c[za>>2]|0)+36>>2]|0)-12+(e[ua>>1]|0);c[pa>>2]=0;while(1){if((c[pa>>2]|0)>=(c[ya>>2]|0))break;c[u>>2]=c[la+(c[pa>>2]<<2)>>2];c[Ba+(c[pa>>2]<<2)>>2]=(c[Ca>>2]|0)-(e[(c[u>>2]|0)+16>>1]|0);if((c[Ba+(c[pa>>2]<<2)>>2]|0)<0){h=52;break}c[Y>>2]=0;while(1){if((c[Y>>2]|0)>=(d[(c[u>>2]|0)+1>>0]|0))break;z=2+((Yb[c[(c[u>>2]|0)+76>>2]&255](c[u>>2]|0,c[(c[u>>2]|0)+32+(c[Y>>2]<<2)>>2]|0)|0)&65535)|0;A=Ba+(c[pa>>2]<<2)|0;c[A>>2]=(c[A>>2]|0)+z;c[Y>>2]=(c[Y>>2]|0)+1}c[na+(c[pa>>2]<<2)>>2]=c[oa+(c[pa>>2]<<2)>>2];c[pa>>2]=(c[pa>>2]|0)+1}if((h|0)==52){c[Aa>>2]=Lj(62842)|0;break}c[H>>2]=c[ya>>2];c[pa>>2]=0;d:while(1){if((c[pa>>2]|0)>=(c[H>>2]|0)){h=83;break}while(1){if((c[Ba+(c[pa>>2]<<2)>>2]|0)<=(c[Ca>>2]|0))break;if(((c[pa>>2]|0)+1|0)>=(c[H>>2]|0)){c[H>>2]=(c[pa>>2]|0)+2;if((c[H>>2]|0)>5){h=62;break d}c[Ba+((c[H>>2]|0)-1<<2)>>2]=0;c[na+((c[H>>2]|0)-1<<2)>>2]=c[ma>>2]}c[B>>2]=2+((xL(ma,(c[na+(c[pa>>2]<<2)>>2]|0)-1|0)|0)&65535);A=Ba+(c[pa>>2]<<2)|0;c[A>>2]=(c[A>>2]|0)-(c[B>>2]|0);do if(!(c[va>>2]|0))if((c[na+(c[pa>>2]<<2)>>2]|0)<(c[ma>>2]|0)){c[B>>2]=2+((xL(ma,c[na+(c[pa>>2]<<2)>>2]|0)|0)&65535);break}else{c[B>>2]=0;break}while(0);A=Ba+((c[pa>>2]|0)+1<<2)|0;c[A>>2]=(c[A>>2]|0)+(c[B>>2]|0);A=na+(c[pa>>2]<<2)|0;c[A>>2]=(c[A>>2]|0)+-1}while(1){if((c[na+(c[pa>>2]<<2)>>2]|0)>=(c[ma>>2]|0))break;c[B>>2]=2+((xL(ma,c[na+(c[pa>>2]<<2)>>2]|0)|0)&65535);if(((c[Ba+(c[pa>>2]<<2)>>2]|0)+(c[B>>2]|0)|0)>(c[Ca>>2]|0))break;A=Ba+(c[pa>>2]<<2)|0;c[A>>2]=(c[A>>2]|0)+(c[B>>2]|0);A=na+(c[pa>>2]<<2)|0;c[A>>2]=(c[A>>2]|0)+1;do if(!(c[va>>2]|0))if((c[na+(c[pa>>2]<<2)>>2]|0)<(c[ma>>2]|0)){c[B>>2]=2+((xL(ma,c[na+(c[pa>>2]<<2)>>2]|0)|0)&65535);break}else{c[B>>2]=0;break}while(0);A=Ba+((c[pa>>2]|0)+1<<2)|0;c[A>>2]=(c[A>>2]|0)-(c[B>>2]|0)}l=c[pa>>2]|0;if((c[na+(c[pa>>2]<<2)>>2]|0)<(c[ma>>2]|0)){if((c[pa>>2]|0)>0)h=c[na+((c[pa>>2]|0)-1<<2)>>2]|0;else h=0;if((c[na+(l<<2)>>2]|0)<=(h|0)){h=81;break}}else c[H>>2]=l+1;c[pa>>2]=(c[pa>>2]|0)+1}if((h|0)==62){c[Aa>>2]=Lj(62854)|0;break}else if((h|0)==81){c[Aa>>2]=Lj(62887)|0;break}else if((h|0)==83){c[pa>>2]=(c[H>>2]|0)-1;while(1){if((c[pa>>2]|0)<=0)break;c[P>>2]=c[Ba+(c[pa>>2]<<2)>>2];c[O>>2]=c[Ba+((c[pa>>2]|0)-1<<2)>>2];c[N>>2]=(c[na+((c[pa>>2]|0)-1<<2)>>2]|0)-1;c[F>>2]=(c[N>>2]|0)+1-(c[va>>2]|0);xL(ma,c[F>>2]|0)|0;do{xL(ma,c[N>>2]|0)|0;if(c[P>>2]|0){if(c[C>>2]|0)break;if(((c[P>>2]|0)+(e[(c[ma+12>>2]|0)+(c[F>>2]<<1)>>1]|0)+2|0)>((c[O>>2]|0)-((e[(c[ma+12>>2]|0)+(c[N>>2]<<1)>>1]|0)+2)|0))break}c[P>>2]=(c[P>>2]|0)+((e[(c[ma+12>>2]|0)+(c[F>>2]<<1)>>1]|0)+2);c[O>>2]=(c[O>>2]|0)-((e[(c[ma+12>>2]|0)+(c[N>>2]<<1)>>1]|0)+2);c[na+((c[pa>>2]|0)-1<<2)>>2]=c[N>>2];c[N>>2]=(c[N>>2]|0)+-1;c[F>>2]=(c[F>>2]|0)+-1}while((c[N>>2]|0)>=0);c[Ba+(c[pa>>2]<<2)>>2]=c[P>>2];c[Ba+((c[pa>>2]|0)-1<<2)>>2]=c[O>>2];if((c[pa>>2]|0)>1)l=c[na+((c[pa>>2]|0)-2<<2)>>2]|0;else l=0;if((c[na+((c[pa>>2]|0)-1<<2)>>2]|0)<=(l|0)){h=93;break}c[pa>>2]=(c[pa>>2]|0)+-1}if((h|0)==93){c[Aa>>2]=Lj(62929)|0;break}c[L>>2]=d[c[(c[la>>2]|0)+56>>2]>>0];c[pa>>2]=0;while(1){if((c[pa>>2]|0)>=(c[H>>2]|0))break;if((c[pa>>2]|0)<(c[ya>>2]|0)){P=c[la+(c[pa>>2]<<2)>>2]|0;c[ka+(c[pa>>2]<<2)>>2]=P;c[I>>2]=P;c[la+(c[pa>>2]<<2)>>2]=0;c[Aa>>2]=Dg(c[(c[I>>2]|0)+72>>2]|0)|0;c[wa>>2]=(c[wa>>2]|0)+1;if(c[Aa>>2]|0)break a}else{c[Aa>>2]=tJ(c[za>>2]|0,I,M,(c[C>>2]|0)!=0?1:c[M>>2]|0,0)|0;if(c[Aa>>2]|0)break a;wK(c[I>>2]|0,c[L>>2]|0);c[ka+(c[pa>>2]<<2)>>2]=c[I>>2];c[wa>>2]=(c[wa>>2]|0)+1;c[oa+(c[pa>>2]<<2)>>2]=c[ma>>2];if((a[(c[za>>2]|0)+17>>0]|0)!=0?(xJ(c[za>>2]|0,c[(c[I>>2]|0)+84>>2]|0,5,c[(c[ha>>2]|0)+84>>2]|0,Aa),(c[Aa>>2]|0)!=0):0)break a}c[pa>>2]=(c[pa>>2]|0)+1}c[pa>>2]=0;e:while(1){if((c[pa>>2]|0)>=(c[wa>>2]|0))break;P=c[(c[ka+(c[pa>>2]<<2)>>2]|0)+84>>2]|0;c[S+(c[pa>>2]<<2)>>2]=P;c[E+(c[pa>>2]<<2)>>2]=P;b[D+(c[pa>>2]<<1)>>1]=b[(c[(c[ka+(c[pa>>2]<<2)>>2]|0)+72>>2]|0)+24>>1]|0;c[Y>>2]=0;while(1){if((c[Y>>2]|0)>=(c[pa>>2]|0))break;if((c[S+(c[Y>>2]<<2)>>2]|0)==(c[S+(c[pa>>2]<<2)>>2]|0)){h=108;break e}c[Y>>2]=(c[Y>>2]|0)+1}c[pa>>2]=(c[pa>>2]|0)+1}if((h|0)==108){c[Aa>>2]=Lj(63003)|0;break}c[pa>>2]=0;while(1){if((c[pa>>2]|0)>=(c[wa>>2]|0))break;c[G>>2]=0;c[Y>>2]=1;while(1){if((c[Y>>2]|0)>=(c[wa>>2]|0))break;if((c[E+(c[Y>>2]<<2)>>2]|0)>>>0<(c[E+(c[G>>2]<<2)>>2]|0)>>>0)c[G>>2]=c[Y>>2];c[Y>>2]=(c[Y>>2]|0)+1}c[M>>2]=c[E+(c[G>>2]<<2)>>2];c[E+(c[G>>2]<<2)>>2]=-1;if((c[G>>2]|0)!=(c[pa>>2]|0)){if((c[G>>2]|0)>(c[pa>>2]|0))yL(c[(c[ka+(c[G>>2]<<2)>>2]|0)+72>>2]|0,(c[(c[za>>2]|0)+44>>2]|0)+(c[G>>2]|0)+1|0,0);yL(c[(c[ka+(c[pa>>2]<<2)>>2]|0)+72>>2]|0,c[M>>2]|0,b[D+(c[G>>2]<<1)>>1]|0);c[(c[ka+(c[pa>>2]<<2)>>2]|0)+84>>2]=c[M>>2]}c[pa>>2]=(c[pa>>2]|0)+1}Xs(c[K>>2]|0,c[(c[ka+((c[wa>>2]|0)-1<<2)>>2]|0)+84>>2]|0);if((c[L>>2]&8|0)==0?(c[ya>>2]|0)!=(c[wa>>2]|0):0){c[J>>2]=c[((c[wa>>2]|0)>(c[ya>>2]|0)?ka:la)+((c[ya>>2]|0)-1<<2)>>2];P=(c[(c[ka+((c[wa>>2]|0)-1<<2)>>2]|0)+56>>2]|0)+8|0;O=(c[(c[J>>2]|0)+56>>2]|0)+8|0;a[P>>0]=a[O>>0]|0;a[P+1>>0]=a[O+1>>0]|0;a[P+2>>0]=a[O+2>>0]|0;a[P+3>>0]=a[O+3>>0]|0}f:do if(a[(c[za>>2]|0)+17>>0]|0){c[aa>>2]=c[ka>>2];c[R>>2]=c[(c[aa>>2]|0)+56>>2];c[T>>2]=(e[(c[aa>>2]|0)+18>>1]|0)+(d[(c[aa>>2]|0)+1>>0]|0);c[fa>>2]=c[(c[za>>2]|0)+36>>2];c[U>>2]=0;c[V>>2]=0;c[pa>>2]=0;while(1){if((c[pa>>2]|0)>=(c[ma>>2]|0))break f;c[_>>2]=c[(c[ma+8>>2]|0)+(c[pa>>2]<<2)>>2];if((c[pa>>2]|0)==(c[T>>2]|0)){P=(c[V>>2]|0)+1|0;c[V>>2]=P;l=c[V>>2]|0;if((P|0)<(c[wa>>2]|0))l=c[ka+(l<<2)>>2]|0;else l=c[la+(l<<2)>>2]|0;c[ca>>2]=l;c[T>>2]=(c[T>>2]|0)+((e[(c[ca>>2]|0)+18>>1]|0)+(d[(c[ca>>2]|0)+1>>0]|0)+(((c[va>>2]|0)!=0^1)&1));c[R>>2]=c[(c[ca>>2]|0)+56>>2]}if(!((c[pa>>2]|0)==(c[na+(c[U>>2]<<2)>>2]|0)?(P=(c[U>>2]|0)+1|0,c[U>>2]=P,c[aa>>2]=c[ka+(P<<2)>>2],(c[va>>2]|0)==0):0))h=136;do if((h|0)==136){h=0;if((((c[V>>2]|0)<(c[wa>>2]|0)?(c[(c[aa>>2]|0)+84>>2]|0)==(c[S+(c[V>>2]<<2)>>2]|0):0)?(c[_>>2]|0)>>>0>=(c[R>>2]|0)>>>0:0)?(c[_>>2]|0)>>>0<((c[R>>2]|0)+(c[fa>>2]|0)|0)>>>0:0)break;if(!(b[ua>>1]|0)){O=c[za>>2]|0;P=$q(c[_>>2]|0)|0;xJ(O,P,5,c[(c[aa>>2]|0)+84>>2]|0,Aa)}P=(xL(ma,c[pa>>2]|0)|0)&65535;if((P|0)>(e[(c[aa>>2]|0)+12>>1]|0))zJ(c[aa>>2]|0,c[_>>2]|0,Aa);if(c[Aa>>2]|0)break a}while(0);c[pa>>2]=(c[pa>>2]|0)+1}}while(0);c[pa>>2]=0;while(1){if((c[pa>>2]|0)>=((c[wa>>2]|0)-1|0))break;c[ba>>2]=c[ka+(c[pa>>2]<<2)>>2];c[Y>>2]=c[na+(c[pa>>2]<<2)>>2];c[$>>2]=c[(c[ma+8>>2]|0)+(c[Y>>2]<<2)>>2];c[ea>>2]=(e[(c[ma+12>>2]|0)+(c[Y>>2]<<1)>>1]|0)+(e[ua>>1]|0);c[da>>2]=(c[Q>>2]|0)+(c[W>>2]|0);do if(a[(c[ba>>2]|0)+4>>0]|0){if(c[va>>2]|0){c[Y>>2]=(c[Y>>2]|0)+-1;Ub[c[(c[ba>>2]|0)+80>>2]&255](c[ba>>2]|0,c[(c[ma+8>>2]|0)+(c[Y>>2]<<2)>>2]|0,X);c[$>>2]=c[da>>2];fa=X;c[ea>>2]=4+(kI((c[$>>2]|0)+4|0,c[fa>>2]|0,c[fa+4>>2]|0)|0);c[da>>2]=0;break}c[$>>2]=(c[$>>2]|0)+-4;if((e[(c[ma+12>>2]|0)+(c[Y>>2]<<1)>>1]|0)==4)c[ea>>2]=(Yb[c[(c[ha>>2]|0)+76>>2]&255](c[ha>>2]|0,c[$>>2]|0)|0)&65535}else{fa=(c[(c[ba>>2]|0)+56>>2]|0)+8|0;ca=c[$>>2]|0;a[fa>>0]=a[ca>>0]|0;a[fa+1>>0]=a[ca+1>>0]|0;a[fa+2>>0]=a[ca+2>>0]|0;a[fa+3>>0]=a[ca+3>>0]|0}while(0);c[W>>2]=(c[W>>2]|0)+(c[ea>>2]|0);sL(c[ha>>2]|0,(c[Z>>2]|0)+(c[pa>>2]|0)|0,c[$>>2]|0,c[ea>>2]|0,c[da>>2]|0,c[(c[ba>>2]|0)+84>>2]|0,Aa);if(c[Aa>>2]|0)break a;c[pa>>2]=(c[pa>>2]|0)+1}c[pa>>2]=1-(c[wa>>2]|0);while(1){if((c[pa>>2]|0)>=(c[wa>>2]|0))break;fa=c[pa>>2]|0;c[sa>>2]=(c[pa>>2]|0)<0?0-fa|0:fa;do if(!(a[ja+(c[sa>>2]|0)>>0]|0)){if((c[pa>>2]|0)<0?(c[oa+((c[sa>>2]|0)-1<<2)>>2]|0)<(c[na+((c[sa>>2]|0)-1<<2)>>2]|0):0)break;if(!(c[sa>>2]|0)){c[ra>>2]=0;c[qa>>2]=0;c[xa>>2]=c[na>>2]}else{if((c[sa>>2]|0)<(c[ya>>2]|0))l=(c[oa+((c[sa>>2]|0)-1<<2)>>2]|0)+(((c[va>>2]|0)!=0^1)&1)|0;else l=c[ma>>2]|0;c[ra>>2]=l;c[qa>>2]=(c[na+((c[sa>>2]|0)-1<<2)>>2]|0)+(((c[va>>2]|0)!=0^1)&1);c[xa>>2]=(c[na+(c[sa>>2]<<2)>>2]|0)-(c[qa>>2]|0)}c[Aa>>2]=zL(c[ka+(c[sa>>2]<<2)>>2]|0,c[ra>>2]|0,c[qa>>2]|0,c[xa>>2]|0,ma)|0;if(c[Aa>>2]|0)break a;fa=ja+(c[sa>>2]|0)|0;a[fa>>0]=(a[fa>>0]|0)+1<<24>>24;b[(c[ka+(c[sa>>2]<<2)>>2]|0)+16>>1]=(c[Ca>>2]|0)-(c[Ba+(c[sa>>2]<<2)>>2]|0)}while(0);c[pa>>2]=(c[pa>>2]|0)+1}if(((c[ia>>2]|0)!=0?(e[(c[ha>>2]|0)+18>>1]|0)==0:0)?(d[(c[ha>>2]|0)+5>>0]|0)<=(e[(c[ka>>2]|0)+16>>1]|0):0){c[Aa>>2]=AL(c[ka>>2]|0)|0;BL(c[ka>>2]|0,c[ha>>2]|0,Aa);vK(c[ka>>2]|0,Aa)}else h=174;g:do if((h|0)==174?!((b[ua>>1]|0)!=0?1:(d[(c[za>>2]|0)+17>>0]|0)==0):0){c[pa>>2]=0;while(1){if((c[pa>>2]|0)>=(c[wa>>2]|0))break g;c[ta>>2]=$q((c[(c[ka+(c[pa>>2]<<2)>>2]|0)+56>>2]|0)+8|0)|0;xJ(c[za>>2]|0,c[ta>>2]|0,5,c[(c[ka+(c[pa>>2]<<2)>>2]|0)+84>>2]|0,Aa);c[pa>>2]=(c[pa>>2]|0)+1}}while(0);c[pa>>2]=c[wa>>2];while(1){if((c[pa>>2]|0)>=(c[ya>>2]|0))break a;vK(c[la+(c[pa>>2]<<2)>>2]|0,Aa);c[pa>>2]=(c[pa>>2]|0)+1}}}while(0);Ai(c[ma+8>>2]|0);c[pa>>2]=0;while(1){if((c[pa>>2]|0)>=(c[ya>>2]|0))break;qB(c[la+(c[pa>>2]<<2)>>2]|0);c[pa>>2]=(c[pa>>2]|0)+1}c[pa>>2]=0;while(1){if((c[pa>>2]|0)>=(c[wa>>2]|0))break;qB(c[ka+(c[pa>>2]<<2)>>2]|0);c[pa>>2]=(c[pa>>2]|0)+1}c[ga>>2]=c[Aa>>2];Ca=c[ga>>2]|0;i=Da;return Ca|0}function xL(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+8|0;f=h+4|0;g=h;c[f>>2]=a;c[g>>2]=d;if(b[(c[(c[f>>2]|0)+12>>2]|0)+(c[g>>2]<<1)>>1]|0){b[e>>1]=b[(c[(c[f>>2]|0)+12>>2]|0)+(c[g>>2]<<1)>>1]|0;a=b[e>>1]|0;i=h;return a|0}else{b[e>>1]=JL(c[f>>2]|0,c[g>>2]|0)|0;a=b[e>>1]|0;i=h;return a|0}return 0}function yL(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+16|0;h=f+4|0;g=f;j=f+8|0;c[h>>2]=a;c[g>>2]=d;b[j>>1]=e;b[(c[h>>2]|0)+24>>1]=b[j>>1]|0;AJ(c[h>>2]|0,c[g>>2]|0);i=f;return}function zL(f,g,h,j,k){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+80|0;o=D+68|0;p=D+64|0;q=D+60|0;r=D+56|0;s=D+52|0;t=D+48|0;u=D+44|0;v=D+40|0;A=D+36|0;z=D+32|0;C=D+28|0;B=D+24|0;w=D+20|0;m=D+16|0;l=D+12|0;n=D+8|0;y=D+4|0;x=D;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=j;c[t>>2]=k;c[u>>2]=c[(c[p>>2]|0)+56>>2];c[v>>2]=d[(c[p>>2]|0)+5>>0];c[A>>2]=(c[(c[p>>2]|0)+64>>2]|0)+(c[s>>2]<<1);c[z>>2]=e[(c[p>>2]|0)+18>>1];c[m>>2]=(c[q>>2]|0)+(e[(c[p>>2]|0)+18>>1]|0)+(d[(c[p>>2]|0)+1>>0]|0);c[l>>2]=(c[r>>2]|0)+(c[s>>2]|0);if((c[q>>2]|0)<(c[r>>2]|0)){c[n>>2]=DL(c[p>>2]|0,c[q>>2]|0,(c[r>>2]|0)-(c[q>>2]|0)|0,c[t>>2]|0)|0;jR(c[(c[p>>2]|0)+64>>2]|0,(c[(c[p>>2]|0)+64>>2]|0)+(c[n>>2]<<1)|0,c[z>>2]<<1|0)|0;c[z>>2]=(c[z>>2]|0)-(c[n>>2]|0)}if((c[l>>2]|0)<(c[m>>2]|0)){f=DL(c[p>>2]|0,c[l>>2]|0,(c[m>>2]|0)-(c[l>>2]|0)|0,c[t>>2]|0)|0;c[z>>2]=(c[z>>2]|0)-f}c[C>>2]=(c[u>>2]|0)+((((d[(c[u>>2]|0)+((c[v>>2]|0)+5)>>0]|0)<<8|(d[(c[u>>2]|0)+((c[v>>2]|0)+5)+1>>0]|0))-1&65535)+1);a:do if((c[C>>2]|0)>>>0>=(c[A>>2]|0)>>>0){if((c[r>>2]|0)<(c[q>>2]|0)){if((c[s>>2]|0)<((c[q>>2]|0)-(c[r>>2]|0)|0))h=c[s>>2]|0;else h=(c[q>>2]|0)-(c[r>>2]|0)|0;c[y>>2]=h;c[B>>2]=c[(c[p>>2]|0)+64>>2];jR((c[B>>2]|0)+(c[y>>2]<<1)|0,c[B>>2]|0,c[z>>2]<<1|0)|0;if(EL(c[p>>2]|0,c[A>>2]|0,C,c[B>>2]|0,c[r>>2]|0,c[y>>2]|0,c[t>>2]|0)|0)break;c[z>>2]=(c[z>>2]|0)+(c[y>>2]|0)}c[w>>2]=0;while(1){if((c[w>>2]|0)>=(d[(c[p>>2]|0)+1>>0]|0|0))break;c[x>>2]=(c[q>>2]|0)+(e[(c[p>>2]|0)+22+(c[w>>2]<<1)>>1]|0)-(c[r>>2]|0);if(((c[x>>2]|0)>=0?(c[x>>2]|0)<(c[s>>2]|0):0)?(c[B>>2]=(c[(c[p>>2]|0)+64>>2]|0)+(c[x>>2]<<1),jR((c[B>>2]|0)+2|0,c[B>>2]|0,(c[z>>2]|0)-(c[x>>2]|0)<<1|0)|0,c[z>>2]=(c[z>>2]|0)+1,(EL(c[p>>2]|0,c[A>>2]|0,C,c[B>>2]|0,(c[x>>2]|0)+(c[r>>2]|0)|0,1,c[t>>2]|0)|0)!=0):0)break a;c[w>>2]=(c[w>>2]|0)+1}c[B>>2]=(c[(c[p>>2]|0)+64>>2]|0)+(c[z>>2]<<1);if(!(EL(c[p>>2]|0,c[A>>2]|0,C,c[B>>2]|0,(c[r>>2]|0)+(c[z>>2]|0)|0,(c[s>>2]|0)-(c[z>>2]|0)|0,c[t>>2]|0)|0)){b[(c[p>>2]|0)+18>>1]=c[s>>2];a[(c[p>>2]|0)+1>>0]=0;a[(c[u>>2]|0)+((c[v>>2]|0)+3)>>0]=(e[(c[p>>2]|0)+18>>1]|0)>>8;a[(c[u>>2]|0)+((c[v>>2]|0)+3)+1>>0]=b[(c[p>>2]|0)+18>>1];a[(c[u>>2]|0)+((c[v>>2]|0)+5)>>0]=(c[C>>2]|0)-(c[u>>2]|0)>>8;a[(c[u>>2]|0)+((c[v>>2]|0)+5)+1>>0]=(c[C>>2]|0)-(c[u>>2]|0);c[o>>2]=0;C=c[o>>2]|0;i=D;return C|0}}while(0);FL(c[t>>2]|0,c[r>>2]|0,c[s>>2]|0);c[o>>2]=GL(c[p>>2]|0,c[s>>2]|0,(c[(c[t>>2]|0)+8>>2]|0)+(c[r>>2]<<2)|0,(c[(c[t>>2]|0)+12>>2]|0)+(c[r>>2]<<1)|0)|0;C=c[o>>2]|0;i=D;return C|0}function AL(b){b=b|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=i;i=i+80|0;f=y+64|0;g=y+60|0;m=y+56|0;r=y+52|0;l=y+48|0;s=y+44|0;v=y+40|0;j=y+36|0;h=y+32|0;p=y+28|0;k=y+24|0;u=y+20|0;t=y+16|0;n=y+12|0;o=y+8|0;q=y+4|0;w=y;c[g>>2]=b;c[u>>2]=0;b=c[(c[g>>2]|0)+56>>2]|0;c[k>>2]=b;c[t>>2]=b;c[l>>2]=d[(c[g>>2]|0)+5>>0];c[j>>2]=e[(c[g>>2]|0)+14>>1];c[p>>2]=e[(c[g>>2]|0)+18>>1];c[v>>2]=c[(c[(c[g>>2]|0)+52>>2]|0)+36>>2];c[h>>2]=c[v>>2];c[n>>2]=(c[j>>2]|0)+(c[p>>2]<<1);c[o>>2]=(c[v>>2]|0)-4;c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[p>>2]|0)){x=14;break}c[q>>2]=(c[k>>2]|0)+((c[j>>2]|0)+(c[m>>2]<<1));c[r>>2]=(d[c[q>>2]>>0]|0)<<8|(d[(c[q>>2]|0)+1>>0]|0);if((c[r>>2]|0)<(c[n>>2]|0)){x=5;break}if((c[r>>2]|0)>(c[o>>2]|0)){x=5;break}c[s>>2]=(Yb[c[(c[g>>2]|0)+76>>2]&255](c[g>>2]|0,(c[t>>2]|0)+(c[r>>2]|0)|0)|0)&65535;c[h>>2]=(c[h>>2]|0)-(c[s>>2]|0);if((c[h>>2]|0)<(c[n>>2]|0)){x=8;break}if(((c[r>>2]|0)+(c[s>>2]|0)|0)>(c[v>>2]|0)){x=8;break}a[c[q>>2]>>0]=c[h>>2]>>8;a[(c[q>>2]|0)+1>>0]=c[h>>2];if(!(c[u>>2]|0)){if((c[h>>2]|0)!=(c[r>>2]|0)){c[u>>2]=CL(c[c[(c[g>>2]|0)+52>>2]>>2]|0)|0;c[w>>2]=(d[(c[k>>2]|0)+((c[l>>2]|0)+5)>>0]|0)<<8|(d[(c[k>>2]|0)+((c[l>>2]|0)+5)+1>>0]|0);iR((c[u>>2]|0)+(c[w>>2]|0)|0,(c[k>>2]|0)+(c[w>>2]|0)|0,(c[h>>2]|0)+(c[s>>2]|0)-(c[w>>2]|0)|0)|0;c[t>>2]=c[u>>2];x=12}}else x=12;if((x|0)==12){x=0;iR((c[k>>2]|0)+(c[h>>2]|0)|0,(c[t>>2]|0)+(c[r>>2]|0)|0,c[s>>2]|0)|0}c[m>>2]=(c[m>>2]|0)+1}if((x|0)==5){c[f>>2]=Lj(56934)|0;x=c[f>>2]|0;i=y;return x|0}else if((x|0)==8){c[f>>2]=Lj(56940)|0;x=c[f>>2]|0;i=y;return x|0}else if((x|0)==14){a[(c[k>>2]|0)+((c[l>>2]|0)+5)>>0]=c[h>>2]>>8;a[(c[k>>2]|0)+((c[l>>2]|0)+5)+1>>0]=c[h>>2];a[(c[k>>2]|0)+((c[l>>2]|0)+1)>>0]=0;a[(c[k>>2]|0)+((c[l>>2]|0)+2)>>0]=0;a[(c[k>>2]|0)+((c[l>>2]|0)+7)>>0]=0;kR((c[k>>2]|0)+(c[n>>2]|0)|0,0,(c[h>>2]|0)-(c[n>>2]|0)|0)|0;if(((c[h>>2]|0)-(c[n>>2]|0)|0)!=(e[(c[g>>2]|0)+16>>1]|0|0)){c[f>>2]=Lj(56964)|0;x=c[f>>2]|0;i=y;return x|0}else{c[f>>2]=0;x=c[f>>2]|0;i=y;return x|0}}return 0}function BL(b,f,g){b=b|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+48|0;h=s+36|0;j=s+32|0;k=s+28|0;q=s+24|0;l=s+20|0;m=s+16|0;o=s+12|0;p=s+8|0;r=s+4|0;n=s;c[h>>2]=b;c[j>>2]=f;c[k>>2]=g;if(c[c[k>>2]>>2]|0){i=s;return}c[q>>2]=c[(c[h>>2]|0)+52>>2];c[l>>2]=c[(c[h>>2]|0)+56>>2];c[m>>2]=c[(c[j>>2]|0)+56>>2];c[o>>2]=d[(c[h>>2]|0)+5>>0];c[p>>2]=(c[(c[j>>2]|0)+84>>2]|0)==1?100:0;c[n>>2]=d[(c[l>>2]|0)+((c[o>>2]|0)+5)>>0]<<8|d[(c[l>>2]|0)+((c[o>>2]|0)+5)+1>>0];iR((c[m>>2]|0)+(c[n>>2]|0)|0,(c[l>>2]|0)+(c[n>>2]|0)|0,(c[(c[q>>2]|0)+36>>2]|0)-(c[n>>2]|0)|0)|0;iR((c[m>>2]|0)+(c[p>>2]|0)|0,(c[l>>2]|0)+(c[o>>2]|0)|0,(e[(c[h>>2]|0)+14>>1]|0)+(e[(c[h>>2]|0)+18>>1]<<1)|0)|0;a[c[j>>2]>>0]=0;c[r>>2]=Kt(c[j>>2]|0)|0;if(c[r>>2]|0){c[c[k>>2]>>2]=c[r>>2];i=s;return}if(!(a[(c[q>>2]|0)+17>>0]|0)){i=s;return}r=wJ(c[j>>2]|0)|0;c[c[k>>2]>>2]=r;i=s;return}function CL(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c[(c[b>>2]|0)+208>>2]|0}function DL(a,b,f,g){a=a|0;b=b|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;w=i;i=i+64|0;h=w+56|0;j=w+52|0;x=w+48|0;y=w+44|0;k=w+40|0;l=w+36|0;q=w+32|0;s=w+28|0;o=w+24|0;m=w+20|0;n=w+16|0;r=w+12|0;u=w+8|0;p=w+4|0;t=w;c[j>>2]=a;c[x>>2]=b;c[y>>2]=f;c[k>>2]=g;c[l>>2]=c[(c[j>>2]|0)+56>>2];c[q>>2]=(c[l>>2]|0)+(c[(c[(c[j>>2]|0)+52>>2]|0)+36>>2]|0);c[s>>2]=(c[l>>2]|0)+((d[(c[j>>2]|0)+5>>0]|0)+8+(d[(c[j>>2]|0)+6>>0]|0));c[o>>2]=0;c[n>>2]=(c[x>>2]|0)+(c[y>>2]|0);c[r>>2]=0;c[u>>2]=0;c[m>>2]=c[x>>2];while(1){if((c[m>>2]|0)>=(c[n>>2]|0))break;c[p>>2]=c[(c[(c[k>>2]|0)+8>>2]|0)+(c[m>>2]<<2)>>2];if((c[p>>2]|0)>>>0>=(c[s>>2]|0)>>>0?(c[p>>2]|0)>>>0<(c[q>>2]|0)>>>0:0){c[t>>2]=e[(c[(c[k>>2]|0)+12>>2]|0)+(c[m>>2]<<1)>>1];if((c[r>>2]|0)!=((c[p>>2]|0)+(c[t>>2]|0)|0)){if(c[r>>2]|0)IL(c[j>>2]|0,(c[r>>2]|0)-(c[l>>2]|0)&65535,c[u>>2]&65535)|0;c[r>>2]=c[p>>2];c[u>>2]=c[t>>2];if(((c[r>>2]|0)+(c[t>>2]|0)|0)>>>0>(c[q>>2]|0)>>>0){v=9;break}}else{c[r>>2]=c[p>>2];c[u>>2]=(c[u>>2]|0)+(c[t>>2]|0)}c[o>>2]=(c[o>>2]|0)+1}c[m>>2]=(c[m>>2]|0)+1}if((v|0)==9){c[h>>2]=0;y=c[h>>2]|0;i=w;return y|0}if(c[r>>2]|0)IL(c[j>>2]|0,(c[r>>2]|0)-(c[l>>2]|0)&65535,c[u>>2]&65535)|0;c[h>>2]=c[o>>2];y=c[h>>2]|0;i=w;return y|0}function EL(b,e,f,g,h,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;y=i;i=i+64|0;l=y+56|0;m=y+52|0;n=y+48|0;o=y+44|0;p=y+40|0;z=y+36|0;A=y+32|0;q=y+28|0;s=y+24|0;r=y+20|0;u=y+16|0;t=y+12|0;x=y+8|0;w=y+4|0;v=y;c[m>>2]=b;c[n>>2]=e;c[o>>2]=f;c[p>>2]=g;c[z>>2]=h;c[A>>2]=j;c[q>>2]=k;c[r>>2]=c[(c[m>>2]|0)+56>>2];c[u>>2]=c[c[o>>2]>>2];c[t>>2]=(c[z>>2]|0)+(c[A>>2]|0);c[s>>2]=c[z>>2];while(1){if((c[s>>2]|0)>=(c[t>>2]|0)){h=10;break}c[x>>2]=(xL(c[q>>2]|0,c[s>>2]|0)|0)&65535;if((d[(c[r>>2]|0)+1>>0]|0|0)==0?(d[(c[r>>2]|0)+2>>0]|0|0)==0:0)h=6;else h=5;if((h|0)==5?(h=0,A=HL(c[m>>2]|0,c[x>>2]|0,w)|0,c[v>>2]=A,(A|0)==0):0)h=6;if((h|0)==6){c[u>>2]=(c[u>>2]|0)+(0-(c[x>>2]|0));if((c[u>>2]|0)>>>0<(c[n>>2]|0)>>>0){h=7;break}c[v>>2]=c[u>>2]}jR(c[v>>2]|0,c[(c[(c[q>>2]|0)+8>>2]|0)+(c[s>>2]<<2)>>2]|0,c[x>>2]|0)|0;a[c[p>>2]>>0]=(c[v>>2]|0)-(c[r>>2]|0)>>8;a[(c[p>>2]|0)+1>>0]=(c[v>>2]|0)-(c[r>>2]|0);c[p>>2]=(c[p>>2]|0)+2;c[s>>2]=(c[s>>2]|0)+1}if((h|0)==7){c[l>>2]=1;A=c[l>>2]|0;i=y;return A|0}else if((h|0)==10){c[c[o>>2]>>2]=c[u>>2];c[l>>2]=0;A=c[l>>2]|0;i=y;return A|0}return 0}function FL(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0;k=i;i=i+16|0;g=k+8|0;h=k+4|0;j=k;c[g>>2]=a;c[h>>2]=d;c[j>>2]=f;while(1){if((c[j>>2]|0)<=0)break;if(!(e[(c[(c[g>>2]|0)+12>>2]|0)+(c[h>>2]<<1)>>1]|0)){a=Yb[c[(c[(c[g>>2]|0)+4>>2]|0)+76>>2]&255](c[(c[g>>2]|0)+4>>2]|0,c[(c[(c[g>>2]|0)+8>>2]|0)+(c[h>>2]<<2)>>2]|0)|0;b[(c[(c[g>>2]|0)+12>>2]|0)+(c[h>>2]<<1)>>1]=a}c[h>>2]=(c[h>>2]|0)+1;c[j>>2]=(c[j>>2]|0)+-1}i=k;return}function GL(f,g,h,j){f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;x=i;i=i+64|0;r=x+52|0;s=x+48|0;t=x+44|0;k=x+40|0;l=x+36|0;v=x+32|0;u=x+28|0;y=x+24|0;p=x+20|0;m=x+16|0;o=x+12|0;q=x+8|0;w=x+4|0;n=x;c[s>>2]=f;c[t>>2]=g;c[k>>2]=h;c[l>>2]=j;c[v>>2]=d[(c[s>>2]|0)+5>>0];c[u>>2]=c[(c[s>>2]|0)+56>>2];c[y>>2]=c[(c[(c[s>>2]|0)+52>>2]|0)+36>>2];c[p>>2]=(c[u>>2]|0)+(c[y>>2]|0);c[o>>2]=c[(c[s>>2]|0)+64>>2];c[q>>2]=CL(c[c[(c[s>>2]|0)+52>>2]>>2]|0)|0;c[m>>2]=(d[(c[u>>2]|0)+((c[v>>2]|0)+5)>>0]|0)<<8|(d[(c[u>>2]|0)+((c[v>>2]|0)+5)+1>>0]|0);iR((c[q>>2]|0)+(c[m>>2]|0)|0,(c[u>>2]|0)+(c[m>>2]|0)|0,(c[y>>2]|0)-(c[m>>2]|0)|0)|0;c[w>>2]=c[p>>2];c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[t>>2]|0)){k=9;break}c[n>>2]=c[(c[k>>2]|0)+(c[m>>2]<<2)>>2];if((c[n>>2]|0)>>>0>=(c[u>>2]|0)>>>0?(c[n>>2]|0)>>>0<(c[p>>2]|0)>>>0:0)c[n>>2]=(c[q>>2]|0)+((c[n>>2]|0)-(c[u>>2]|0));c[w>>2]=(c[w>>2]|0)+(0-(e[(c[l>>2]|0)+(c[m>>2]<<1)>>1]|0));a[c[o>>2]>>0]=(c[w>>2]|0)-(c[u>>2]|0)>>8;a[(c[o>>2]|0)+1>>0]=(c[w>>2]|0)-(c[u>>2]|0);c[o>>2]=(c[o>>2]|0)+2;if((c[w>>2]|0)>>>0<(c[o>>2]|0)>>>0){k=7;break}iR(c[w>>2]|0,c[n>>2]|0,e[(c[l>>2]|0)+(c[m>>2]<<1)>>1]|0|0)|0;c[m>>2]=(c[m>>2]|0)+1}if((k|0)==7){c[r>>2]=Lj(62048)|0;y=c[r>>2]|0;i=x;return y|0}else if((k|0)==9){b[(c[s>>2]|0)+18>>1]=c[t>>2];a[(c[s>>2]|0)+1>>0]=0;a[(c[u>>2]|0)+((c[v>>2]|0)+1)>>0]=0;a[(c[u>>2]|0)+((c[v>>2]|0)+1)+1>>0]=0;a[(c[u>>2]|0)+((c[v>>2]|0)+3)>>0]=(e[(c[s>>2]|0)+18>>1]|0)>>8;a[(c[u>>2]|0)+((c[v>>2]|0)+3)+1>>0]=b[(c[s>>2]|0)+18>>1];a[(c[u>>2]|0)+((c[v>>2]|0)+5)>>0]=(c[w>>2]|0)-(c[u>>2]|0)>>8;a[(c[u>>2]|0)+((c[v>>2]|0)+5)+1>>0]=(c[w>>2]|0)-(c[u>>2]|0);a[(c[u>>2]|0)+((c[v>>2]|0)+7)>>0]=0;c[r>>2]=0;y=c[r>>2]|0;i=x;return y|0}return 0}function HL(b,f,g){b=b|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+48|0;j=t+40|0;k=t+36|0;h=t+32|0;l=t+28|0;n=t+24|0;m=t+20|0;o=t+16|0;p=t+12|0;s=t+8|0;r=t+4|0;q=t;c[k>>2]=b;c[h>>2]=f;c[l>>2]=g;c[n>>2]=d[(c[k>>2]|0)+5>>0];c[m>>2]=c[(c[k>>2]|0)+56>>2];c[o>>2]=(c[n>>2]|0)+1;c[p>>2]=(d[(c[m>>2]|0)+(c[o>>2]|0)>>0]|0)<<8|(d[(c[m>>2]|0)+(c[o>>2]|0)+1>>0]|0);c[r>>2]=c[(c[(c[k>>2]|0)+52>>2]|0)+36>>2];while(1){if((c[p>>2]|0)>((c[r>>2]|0)-4|0)){f=4;break}if((c[p>>2]|0)<((c[o>>2]|0)+4|0)){f=4;break}c[q>>2]=(d[(c[m>>2]|0)+((c[p>>2]|0)+2)>>0]|0)<<8|(d[(c[m>>2]|0)+((c[p>>2]|0)+2)+1>>0]|0);g=(c[q>>2]|0)-(c[h>>2]|0)|0;c[s>>2]=g;b=c[p>>2]|0;if((g|0)>=0){f=6;break}c[o>>2]=b;c[p>>2]=(d[(c[m>>2]|0)+(c[p>>2]|0)>>0]|0)<<8|(d[(c[m>>2]|0)+(c[p>>2]|0)+1>>0]|0);if(!(c[p>>2]|0)){f=16;break}}if((f|0)==4){s=Lj(56997)|0;c[c[l>>2]>>2]=s;c[j>>2]=0;s=c[j>>2]|0;i=t;return s|0}else if((f|0)==6){if((b|0)>=((e[(c[k>>2]|0)+14>>1]|0)+((e[(c[k>>2]|0)+18>>1]|0)<<1)|0)?((c[q>>2]|0)+(c[p>>2]|0)|0)<=(c[r>>2]|0):0){do if((c[s>>2]|0)<4){if((d[(c[m>>2]|0)+((c[n>>2]|0)+7)>>0]|0|0)<=57){r=(c[m>>2]|0)+(c[o>>2]|0)|0;q=(c[m>>2]|0)+(c[p>>2]|0)|0;a[r>>0]=a[q>>0]|0;a[r+1>>0]=a[q+1>>0]|0;r=(c[m>>2]|0)+((c[n>>2]|0)+7)|0;a[r>>0]=(d[r>>0]|0)+(c[s>>2]&255);break}c[j>>2]=0;s=c[j>>2]|0;i=t;return s|0}else{a[(c[m>>2]|0)+((c[p>>2]|0)+2)>>0]=c[s>>2]>>8;a[(c[m>>2]|0)+((c[p>>2]|0)+2)+1>>0]=c[s>>2]}while(0);c[j>>2]=(c[m>>2]|0)+((c[p>>2]|0)+(c[s>>2]|0));s=c[j>>2]|0;i=t;return s|0}s=Lj(57008)|0;c[c[l>>2]>>2]=s;c[j>>2]=0;s=c[j>>2]|0;i=t;return s|0}else if((f|0)==16){c[j>>2]=0;s=c[j>>2]|0;i=t;return s|0}return 0}function IL(f,g,h){f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=i;i=i+48|0;j=x+20|0;k=x+16|0;l=x+32|0;m=x+30|0;t=x+28|0;q=x+26|0;o=x+35|0;v=x+34|0;s=x+24|0;r=x+12|0;p=x+8|0;n=x+4|0;u=x;c[k>>2]=f;b[l>>1]=g;b[m>>1]=h;a[v>>0]=0;b[s>>1]=b[m>>1]|0;c[r>>2]=(c[(c[(c[k>>2]|0)+52>>2]|0)+36>>2]|0)-4;c[p>>2]=(e[l>>1]|0)+(e[m>>1]|0);c[n>>2]=c[(c[k>>2]|0)+56>>2];if((e[(c[(c[k>>2]|0)+52>>2]|0)+22>>1]|0)&4)kR((c[n>>2]|0)+(e[l>>1]|0)|0,0,e[m>>1]|0|0)|0;a[o>>0]=a[(c[k>>2]|0)+5>>0]|0;b[t>>1]=(d[o>>0]|0)+1;if((d[(c[n>>2]|0)+((e[t>>1]|0)+1)>>0]|0|0)==0?(d[(c[n>>2]|0)+(e[t>>1]|0)>>0]|0|0)==0:0)b[q>>1]=0;else w=6;do if((w|0)==6){while(1){w=0;f=((d[(c[n>>2]|0)+(e[t>>1]|0)>>0]|0)<<8|(d[(c[n>>2]|0)+(e[t>>1]|0)+1>>0]|0))&65535;b[q>>1]=f;if((f&65535|0)>0)h=(e[q>>1]|0|0)<(e[l>>1]|0|0);else h=0;g=e[q>>1]|0;if(!h)break;if((g|0)<((e[t>>1]|0)+4|0)){w=10;break}b[t>>1]=b[q>>1]|0;w=6}if((w|0)==10){c[j>>2]=Lj(57169)|0;w=c[j>>2]|0;i=x;return w|0}if(g>>>0>(c[r>>2]|0)>>>0){c[j>>2]=Lj(57172)|0;w=c[j>>2]|0;i=x;return w|0}do if((e[q>>1]|0|0)!=0?((c[p>>2]|0)+3|0)>>>0>=(e[q>>1]|0)>>>0:0){a[v>>0]=(e[q>>1]|0)-(c[p>>2]|0);if((c[p>>2]|0)>>>0>(e[q>>1]|0)>>>0){c[j>>2]=Lj(57183)|0;w=c[j>>2]|0;i=x;return w|0}c[p>>2]=(e[q>>1]|0)+((d[(c[n>>2]|0)+((e[q>>1]|0)+2)>>0]|0)<<8|(d[(c[n>>2]|0)+((e[q>>1]|0)+2)+1>>0]|0));if((c[p>>2]|0)>>>0<=(c[(c[(c[k>>2]|0)+52>>2]|0)+36>>2]|0)>>>0){b[m>>1]=(c[p>>2]|0)-(e[l>>1]|0);b[q>>1]=(d[(c[n>>2]|0)+(e[q>>1]|0)>>0]|0)<<8|(d[(c[n>>2]|0)+(e[q>>1]|0)+1>>0]|0);break}c[j>>2]=Lj(57185)|0;w=c[j>>2]|0;i=x;return w|0}while(0);do if((e[t>>1]|0|0)>((d[o>>0]|0)+1|0)?(c[u>>2]=(e[t>>1]|0)+((d[(c[n>>2]|0)+((e[t>>1]|0)+2)>>0]|0)<<8|(d[(c[n>>2]|0)+((e[t>>1]|0)+2)+1>>0]|0)),((c[u>>2]|0)+3|0)>=(e[l>>1]|0|0)):0){if((c[u>>2]|0)<=(e[l>>1]|0|0)){a[v>>0]=(d[v>>0]|0)+((e[l>>1]|0)-(c[u>>2]|0));b[m>>1]=(c[p>>2]|0)-(e[t>>1]|0);b[l>>1]=b[t>>1]|0;break}c[j>>2]=Lj(57197)|0;w=c[j>>2]|0;i=x;return w|0}while(0);if((d[v>>0]|0|0)<=(d[(c[n>>2]|0)+((d[o>>0]|0)+7)>>0]|0|0)){w=(c[n>>2]|0)+((d[o>>0]|0)+7)|0;a[w>>0]=(d[w>>0]|0)-(d[v>>0]|0);break}c[j>>2]=Lj(57203)|0;w=c[j>>2]|0;i=x;return w|0}while(0);do if((e[l>>1]|0|0)==((d[(c[n>>2]|0)+((d[o>>0]|0)+5)>>0]|0)<<8|(d[(c[n>>2]|0)+((d[o>>0]|0)+5)+1>>0]|0)|0)){if((e[t>>1]|0|0)==((d[o>>0]|0)+1|0)){a[(c[n>>2]|0)+((d[o>>0]|0)+1)>>0]=(e[q>>1]|0)>>8;a[(c[n>>2]|0)+((d[o>>0]|0)+1)+1>>0]=b[q>>1];a[(c[n>>2]|0)+((d[o>>0]|0)+5)>>0]=(c[p>>2]|0)>>>8;a[(c[n>>2]|0)+((d[o>>0]|0)+5)+1>>0]=c[p>>2];break}c[j>>2]=Lj(57210)|0;w=c[j>>2]|0;i=x;return w|0}else{a[(c[n>>2]|0)+(e[t>>1]|0)>>0]=(e[l>>1]|0)>>8;a[(c[n>>2]|0)+(e[t>>1]|0)+1>>0]=b[l>>1];a[(c[n>>2]|0)+(e[l>>1]|0)>>0]=(e[q>>1]|0)>>8;a[(c[n>>2]|0)+(e[l>>1]|0)+1>>0]=b[q>>1];a[(c[n>>2]|0)+((e[l>>1]|0)+2)>>0]=(e[m>>1]|0)>>8;a[(c[n>>2]|0)+((e[l>>1]|0)+2)+1>>0]=b[m>>1]}while(0);w=(c[k>>2]|0)+16|0;b[w>>1]=(e[w>>1]|0)+(e[s>>1]|0);c[j>>2]=0;w=c[j>>2]|0;i=x;return w|0}function JL(a,d){a=a|0;d=d|0;var e=0,f=0,g=0;g=i;i=i+16|0;f=g+4|0;e=g;c[f>>2]=a;c[e>>2]=d;a=Yb[c[(c[(c[f>>2]|0)+4>>2]|0)+76>>2]&255](c[(c[f>>2]|0)+4>>2]|0,c[(c[(c[f>>2]|0)+8>>2]|0)+(c[e>>2]<<2)>>2]|0)|0;b[(c[(c[f>>2]|0)+12>>2]|0)+(c[e>>2]<<1)>>1]=a;i=g;return b[(c[(c[f>>2]|0)+12>>2]|0)+(c[e>>2]<<1)>>1]|0}function KL(b,f,g){b=b|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+48|0;h=t+36|0;j=t+32|0;k=t+28|0;l=t+24|0;o=t+20|0;m=t+16|0;r=t+12|0;q=t+8|0;n=t+4|0;p=t;c[j>>2]=b;c[k>>2]=f;c[l>>2]=g;c[o>>2]=d[(c[j>>2]|0)+5>>0];c[m>>2]=c[(c[j>>2]|0)+56>>2];c[q>>2]=0;c[n>>2]=(e[(c[j>>2]|0)+14>>1]|0)+((e[(c[j>>2]|0)+18>>1]|0)<<1);c[r>>2]=(d[(c[m>>2]|0)+((c[o>>2]|0)+5)>>0]|0)<<8|(d[(c[m>>2]|0)+((c[o>>2]|0)+5)+1>>0]|0);do if((c[n>>2]|0)>(c[r>>2]|0)){if((c[r>>2]|0)==0?(c[(c[(c[j>>2]|0)+52>>2]|0)+36>>2]|0)==65536:0){c[r>>2]=65536;break}c[h>>2]=Lj(57075)|0;s=c[h>>2]|0;i=t;return s|0}while(0);if(!((d[(c[m>>2]|0)+((c[o>>2]|0)+2)>>0]|0|0)==0?(d[(c[m>>2]|0)+((c[o>>2]|0)+1)>>0]|0|0)==0:0))s=8;if((s|0)==8?((c[n>>2]|0)+2|0)<=(c[r>>2]|0):0){c[p>>2]=HL(c[j>>2]|0,c[k>>2]|0,q)|0;if(c[p>>2]|0){c[c[l>>2]>>2]=(c[p>>2]|0)-(c[m>>2]|0);c[h>>2]=0;s=c[h>>2]|0;i=t;return s|0}if(c[q>>2]|0){c[h>>2]=c[q>>2];s=c[h>>2]|0;i=t;return s|0}}do if(((c[n>>2]|0)+2+(c[k>>2]|0)|0)>(c[r>>2]|0)){c[q>>2]=AL(c[j>>2]|0)|0;if(!(c[q>>2]|0)){c[r>>2]=(((d[(c[m>>2]|0)+((c[o>>2]|0)+5)>>0]|0)<<8|(d[(c[m>>2]|0)+((c[o>>2]|0)+5)+1>>0]|0))-1&65535)+1;break}c[h>>2]=c[q>>2];s=c[h>>2]|0;i=t;return s|0}while(0);c[r>>2]=(c[r>>2]|0)-(c[k>>2]|0);a[(c[m>>2]|0)+((c[o>>2]|0)+5)>>0]=c[r>>2]>>8;a[(c[m>>2]|0)+((c[o>>2]|0)+5)+1>>0]=c[r>>2];c[c[l>>2]>>2]=c[r>>2];c[h>>2]=0;s=c[h>>2]|0;i=t;return s|0}function LL(b,f,g,h,j,k,l,m,n){b=b|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;M=i;i=i+112|0;J=M+96|0;p=M+92|0;q=M+88|0;r=M+84|0;s=M;t=M+80|0;u=M+76|0;N=M+72|0;o=M+68|0;z=M+64|0;F=M+60|0;A=M+56|0;x=M+52|0;L=M+48|0;I=M+44|0;C=M+40|0;K=M+36|0;E=M+32|0;D=M+28|0;B=M+24|0;G=M+20|0;y=M+16|0;w=M+12|0;H=M+8|0;v=M+100|0;c[p>>2]=b;c[q>>2]=f;c[r>>2]=g;b=s;c[b>>2]=h;c[b+4>>2]=j;c[t>>2]=k;c[u>>2]=l;c[N>>2]=m;c[o>>2]=n;c[C>>2]=0;c[K>>2]=0;c[B>>2]=c[(c[p>>2]|0)+52>>2];c[G>>2]=0;c[y>>2]=d[(c[p>>2]|0)+6>>0];c[z>>2]=(c[u>>2]|0)+(c[N>>2]|0);if(a[(c[p>>2]|0)+3>>0]|0){if((c[z>>2]|0)>>>0<128){a[(c[q>>2]|0)+(c[y>>2]|0)>>0]=c[z>>2];h=1}else{h=c[z>>2]|0;h=kI((c[q>>2]|0)+(c[y>>2]|0)|0,h,((h|0)<0)<<31>>31)|0}c[y>>2]=(c[y>>2]|0)+(h&255)}N=s;N=kI((c[q>>2]|0)+(c[y>>2]|0)|0,c[N>>2]|0,c[N+4>>2]|0)|0;c[y>>2]=(c[y>>2]|0)+N;if(a[(c[p>>2]|0)+2>>0]|0){c[F>>2]=c[t>>2];c[A>>2]=c[u>>2];c[u>>2]=0}else{c[z>>2]=c[s>>2];c[F>>2]=c[r>>2];c[A>>2]=c[s>>2]}if((c[z>>2]|0)<=(e[(c[p>>2]|0)+10>>1]|0)){N=(c[y>>2]|0)+(c[z>>2]|0)|0;c[x>>2]=N;c[x>>2]=(c[x>>2]|0)<4?4:N;
  65. c[c[o>>2]>>2]=c[x>>2];c[I>>2]=c[z>>2];c[E>>2]=c[q>>2]}else{c[w>>2]=e[(c[p>>2]|0)+12>>1];c[x>>2]=(c[w>>2]|0)+((((c[z>>2]|0)-(c[w>>2]|0)|0)>>>0)%(((c[(c[(c[p>>2]|0)+52>>2]|0)+36>>2]|0)-4|0)>>>0)|0);if((c[x>>2]|0)>(e[(c[p>>2]|0)+10>>1]|0))c[x>>2]=c[w>>2];c[I>>2]=c[x>>2];c[c[o>>2]>>2]=(c[x>>2]|0)+(c[y>>2]|0)+4;c[E>>2]=(c[q>>2]|0)+((c[y>>2]|0)+(c[x>>2]|0))}c[D>>2]=(c[q>>2]|0)+(c[y>>2]|0);while(1){if((c[z>>2]|0)<=0){h=35;break}if(!(c[I>>2]|0)){c[H>>2]=c[G>>2];if(a[(c[B>>2]|0)+17>>0]|0)while(1){c[G>>2]=(c[G>>2]|0)+1;N=lF(c[B>>2]|0,c[G>>2]|0)|0;if((N|0)==(c[G>>2]|0))continue;if((c[G>>2]|0)!=((((c[381]|0)>>>0)/((c[(c[B>>2]|0)+32>>2]|0)>>>0)|0)+1|0))break}c[L>>2]=tJ(c[B>>2]|0,C,G,c[G>>2]|0,0)|0;if(((c[L>>2]|0)==0?(d[(c[B>>2]|0)+17>>0]|0)!=0:0)?(a[v>>0]=(c[H>>2]|0)!=0?4:3,xJ(c[B>>2]|0,c[G>>2]|0,a[v>>0]|0,c[H>>2]|0,L),(c[L>>2]|0)!=0):0)qB(c[C>>2]|0);if(c[L>>2]|0){h=24;break}Xs(c[E>>2]|0,c[G>>2]|0);qB(c[K>>2]|0);c[K>>2]=c[C>>2];c[E>>2]=c[(c[C>>2]|0)+56>>2];Xs(c[E>>2]|0,0);c[D>>2]=(c[(c[C>>2]|0)+56>>2]|0)+4;c[I>>2]=(c[(c[B>>2]|0)+36>>2]|0)-4}c[x>>2]=c[z>>2];if((c[x>>2]|0)>(c[I>>2]|0))c[x>>2]=c[I>>2];if((c[A>>2]|0)>0){if((c[x>>2]|0)>(c[A>>2]|0))c[x>>2]=c[A>>2];iR(c[D>>2]|0,c[F>>2]|0,c[x>>2]|0)|0}else kR(c[D>>2]|0,0,c[x>>2]|0)|0;c[z>>2]=(c[z>>2]|0)-(c[x>>2]|0);c[D>>2]=(c[D>>2]|0)+(c[x>>2]|0);c[F>>2]=(c[F>>2]|0)+(c[x>>2]|0);c[A>>2]=(c[A>>2]|0)-(c[x>>2]|0);c[I>>2]=(c[I>>2]|0)-(c[x>>2]|0);if(c[A>>2]|0)continue;c[A>>2]=c[u>>2];c[F>>2]=c[t>>2]}if((h|0)==24){qB(c[K>>2]|0);c[J>>2]=c[L>>2];N=c[J>>2]|0;i=M;return N|0}else if((h|0)==35){qB(c[K>>2]|0);c[J>>2]=0;N=c[J>>2]|0;i=M;return N|0}return 0}function ML(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;e=g+4|0;f=g;c[d>>2]=a;c[e>>2]=b;c[f>>2]=c[(c[e>>2]|0)+16>>2];if(!(c[f>>2]|0)){i=g;return}RI(c[d>>2]|0,c[f>>2]|0);Kd(c[(c[f>>2]|0)+36+4>>2]|0);Sf(c[d>>2]|0,c[f>>2]|0);c[(c[e>>2]|0)+16>>2]=0;i=g;return}function NL(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+64|0;g=u+44|0;h=u+40|0;j=u+36|0;k=u+32|0;n=u+28|0;p=u+24|0;r=u+20|0;t=u+16|0;s=u+12|0;q=u+8|0;o=u+4|0;l=u+48|0;m=u;c[h>>2]=b;c[j>>2]=e;c[k>>2]=f;c[n>>2]=c[(c[h>>2]|0)+4>>2];f=c[n>>2]|0;if(a[(c[n>>2]|0)+17>>0]|0){rJ(f);ng(c[h>>2]|0,4,r);c[r>>2]=(c[r>>2]|0)+1;while(1){e=c[r>>2]|0;if((e|0)!=(lF(c[n>>2]|0,c[r>>2]|0)|0)?(c[r>>2]|0)!=((((c[381]|0)>>>0)/((c[(c[n>>2]|0)+32>>2]|0)>>>0)|0)+1|0):0)break;c[r>>2]=(c[r>>2]|0)+1}c[t>>2]=tJ(c[n>>2]|0,o,q,c[r>>2]|0,1)|0;if(c[t>>2]|0){c[g>>2]=c[t>>2];t=c[g>>2]|0;i=u;return t|0}if((c[q>>2]|0)!=(c[r>>2]|0)){a[l>>0]=0;c[m>>2]=0;c[t>>2]=nH(c[n>>2]|0,0,0)|0;qB(c[o>>2]|0);if(c[t>>2]|0){c[g>>2]=c[t>>2];t=c[g>>2]|0;i=u;return t|0}c[t>>2]=nF(c[n>>2]|0,c[r>>2]|0,p,0)|0;if(c[t>>2]|0){c[g>>2]=c[t>>2];t=c[g>>2]|0;i=u;return t|0}c[t>>2]=mF(c[n>>2]|0,c[r>>2]|0,l,m)|0;if(!((d[l>>0]|0)!=1?(d[l>>0]|0)!=2:0))c[t>>2]=Lj(63920)|0;if(c[t>>2]|0){qB(c[p>>2]|0);c[g>>2]=c[t>>2];t=c[g>>2]|0;i=u;return t|0}c[t>>2]=uJ(c[n>>2]|0,c[p>>2]|0,a[l>>0]|0,c[m>>2]|0,c[q>>2]|0,0)|0;qB(c[p>>2]|0);if(c[t>>2]|0){c[g>>2]=c[t>>2];t=c[g>>2]|0;i=u;return t|0}c[t>>2]=nF(c[n>>2]|0,c[r>>2]|0,p,0)|0;if(c[t>>2]|0){c[g>>2]=c[t>>2];t=c[g>>2]|0;i=u;return t|0}c[t>>2]=Dg(c[(c[p>>2]|0)+72>>2]|0)|0;if(c[t>>2]|0){qB(c[p>>2]|0);c[g>>2]=c[t>>2];t=c[g>>2]|0;i=u;return t|0}}else c[p>>2]=c[o>>2];xJ(c[n>>2]|0,c[r>>2]|0,1,0,t);if(c[t>>2]|0){qB(c[p>>2]|0);c[g>>2]=c[t>>2];t=c[g>>2]|0;i=u;return t|0}c[t>>2]=yg(c[h>>2]|0,4,c[r>>2]|0)|0;if(c[t>>2]|0){qB(c[p>>2]|0);c[g>>2]=c[t>>2];t=c[g>>2]|0;i=u;return t|0}}else{c[t>>2]=tJ(f,p,r,1,0)|0;if(c[t>>2]|0){c[g>>2]=c[t>>2];t=c[g>>2]|0;i=u;return t|0}}if(c[k>>2]&1)c[s>>2]=13;else c[s>>2]=10;wK(c[p>>2]|0,c[s>>2]|0);vg(c[(c[p>>2]|0)+72>>2]|0);c[c[j>>2]>>2]=c[r>>2];c[g>>2]=0;t=c[g>>2]|0;i=u;return t|0}function OL(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+32|0;j=r+28|0;k=r+24|0;l=r+20|0;m=r+16|0;n=r+12|0;o=r+8|0;p=r+4|0;q=r;c[k>>2]=b;c[l>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[p>>2]=c[(c[k>>2]|0)+4>>2];if((c[m>>2]|0)!=0?(PL(c[p>>2]|0),(c[(c[p>>2]|0)+80>>2]|0)==0):0){c[j>>2]=7;f=c[j>>2]|0;i=r;return f|0}if((c[l>>2]|0)==1?($E(c[p>>2]|0)|0)==0:0)c[l>>2]=0;c[(c[o>>2]|0)+52>>2]=c[l>>2];a[(c[o>>2]|0)+68>>0]=-1;c[(c[o>>2]|0)+72>>2]=c[n>>2];c[c[o>>2]>>2]=c[k>>2];c[(c[o>>2]|0)+4>>2]=c[p>>2];a[(c[o>>2]|0)+64>>0]=(c[m>>2]|0)!=0?1:0;a[(c[o>>2]|0)+65>>0]=(c[m>>2]|0)!=0?0:2;c[q>>2]=c[(c[p>>2]|0)+8>>2];while(1){if(!(c[q>>2]|0))break;if((c[(c[q>>2]|0)+52>>2]|0)==(c[l>>2]|0)){f=(c[q>>2]|0)+64|0;a[f>>0]=d[f>>0]|0|32;f=(c[o>>2]|0)+64|0;a[f>>0]=d[f>>0]|0|32}c[q>>2]=c[(c[q>>2]|0)+8>>2]}c[(c[o>>2]|0)+8>>2]=c[(c[p>>2]|0)+8>>2];c[(c[p>>2]|0)+8>>2]=c[o>>2];a[(c[o>>2]|0)+66>>0]=0;c[j>>2]=0;f=c[j>>2]|0;i=r;return f|0}function PL(b){b=b|0;var d=0,e=0;e=i;i=i+16|0;d=e;c[d>>2]=b;if(c[(c[d>>2]|0)+80>>2]|0){i=e;return}b=Ti(c[(c[d>>2]|0)+32>>2]|0)|0;c[(c[d>>2]|0)+80>>2]=b;if(!(c[(c[d>>2]|0)+80>>2]|0)){i=e;return}b=c[(c[d>>2]|0)+80>>2]|0;a[b>>0]=0;a[b+1>>0]=0;a[b+2>>0]=0;a[b+3>>0]=0;a[b+4>>0]=0;a[b+5>>0]=0;a[b+6>>0]=0;a[b+7>>0]=0;b=(c[d>>2]|0)+80|0;c[b>>2]=(c[b>>2]|0)+4;i=e;return}function QL(){return 200}function RL(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;a=c[b>>2]|0;b=a+68|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(b|0));i=d;return}function SL(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+8|0;f=h+4|0;g=h;c[f>>2]=a;c[g>>2]=b;if((c[g>>2]|0)>(c[(c[f>>2]|0)+104>>2]|0)?(d[(c[f>>2]|0)+6>>0]|0|0)!=0:0){c[e>>2]=TL(c[f>>2]|0,c[g>>2]|0)|0;a=c[e>>2]|0;i=h;return a|0}c[e>>2]=0;a=c[e>>2]|0;i=h;return a|0}function TL(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;j=l+24|0;d=l+20|0;e=l+16|0;k=l+12|0;h=l+8|0;g=l+4|0;f=l;c[d>>2]=a;c[e>>2]=b;c[k>>2]=0;c[h>>2]=c[(c[d>>2]|0)+104>>2];c[f>>2]=bg(c[(c[d>>2]|0)+100>>2]|0,(c[e>>2]|0)*48|0,0)|0;if(!(c[f>>2]|0)){c[j>>2]=7;k=c[j>>2]|0;i=l;return k|0}kR((c[f>>2]|0)+((c[h>>2]|0)*48|0)|0,0,((c[e>>2]|0)-(c[h>>2]|0)|0)*48|0)|0;c[(c[d>>2]|0)+100>>2]=c[f>>2];c[g>>2]=c[h>>2];while(1){if((c[g>>2]|0)>=(c[e>>2]|0)){d=14;break}c[(c[f>>2]|0)+((c[g>>2]|0)*48|0)+20>>2]=c[(c[d>>2]|0)+28>>2];if((c[c[(c[d>>2]|0)+68>>2]>>2]|0)!=0?(a=(c[d>>2]|0)+80|0,b=c[a+4>>2]|0,(b|0)>0|(b|0)==0&(c[a>>2]|0)>>>0>0):0){h=(c[d>>2]|0)+80|0;b=c[h+4>>2]|0;a=(c[f>>2]|0)+((c[g>>2]|0)*48|0)|0;c[a>>2]=c[h>>2];c[a+4>>2]=b}else{a=(c[f>>2]|0)+((c[g>>2]|0)*48|0)|0;c[a>>2]=c[(c[d>>2]|0)+156>>2];c[a+4>>2]=0}c[(c[f>>2]|0)+((c[g>>2]|0)*48|0)+24>>2]=c[(c[d>>2]|0)+56>>2];a=fj(c[(c[d>>2]|0)+28>>2]|0)|0;c[(c[f>>2]|0)+((c[g>>2]|0)*48|0)+16>>2]=a;if(!(c[(c[f>>2]|0)+((c[g>>2]|0)*48|0)+16>>2]|0)){d=10;break}if(sr(c[d>>2]|0)|0)UL(c[(c[d>>2]|0)+216>>2]|0,(c[f>>2]|0)+((c[g>>2]|0)*48|0)+28|0);c[(c[d>>2]|0)+104>>2]=(c[g>>2]|0)+1;c[g>>2]=(c[g>>2]|0)+1}if((d|0)==10){c[j>>2]=7;k=c[j>>2]|0;i=l;return k|0}else if((d|0)==14){c[j>>2]=c[k>>2];k=c[j>>2]|0;i=l;return k|0}return 0}function UL(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;c[c[e>>2]>>2]=c[(c[f>>2]|0)+52+16>>2];c[(c[e>>2]|0)+4>>2]=c[(c[f>>2]|0)+52+24>>2];c[(c[e>>2]|0)+8>>2]=c[(c[f>>2]|0)+52+24+4>>2];c[(c[e>>2]|0)+12>>2]=c[(c[f>>2]|0)+112>>2];i=d;return}function VL(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;j=n+16|0;k=n+12|0;m=n+8|0;l=n+4|0;g=n;c[k>>2]=f;if((c[(c[k>>2]|0)+44>>2]|0)>>>0>0){c[j>>2]=0;m=c[j>>2]|0;i=n;return m|0}c[m>>2]=c[(c[k>>2]|0)+12>>2];c[l>>2]=c[(c[m>>2]|0)+56>>2];c[g>>2]=Dg(c[(c[m>>2]|0)+72>>2]|0)|0;if(c[g>>2]|0){c[j>>2]=c[g>>2];m=c[j>>2]|0;i=n;return m|0}else{f=c[l>>2]|0;g=43252;h=f+16|0;do{a[f>>0]=a[g>>0]|0;f=f+1|0;g=g+1|0}while((f|0)<(h|0));a[(c[l>>2]|0)+16>>0]=(c[(c[k>>2]|0)+32>>2]|0)>>>8;a[(c[l>>2]|0)+17>>0]=(c[(c[k>>2]|0)+32>>2]|0)>>>16;a[(c[l>>2]|0)+18>>0]=1;a[(c[l>>2]|0)+19>>0]=1;a[(c[l>>2]|0)+20>>0]=(c[(c[k>>2]|0)+32>>2]|0)-(c[(c[k>>2]|0)+36>>2]|0);a[(c[l>>2]|0)+21>>0]=64;a[(c[l>>2]|0)+22>>0]=32;a[(c[l>>2]|0)+23>>0]=32;f=(c[l>>2]|0)+24|0;h=f+76|0;do{a[f>>0]=0;f=f+1|0}while((f|0)<(h|0));wK(c[m>>2]|0,13);m=(c[k>>2]|0)+22|0;b[m>>1]=e[m>>1]|0|2;Xs((c[l>>2]|0)+52|0,d[(c[k>>2]|0)+17>>0]|0);Xs((c[l>>2]|0)+64|0,d[(c[k>>2]|0)+18>>0]|0);c[(c[k>>2]|0)+44>>2]=1;a[(c[l>>2]|0)+31>>0]=1;c[j>>2]=0;m=c[j>>2]|0;i=n;return m|0}return 0}function WL(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+48|0;g=o+24|0;h=o+20|0;j=o;l=o+16|0;m=o+12|0;n=o+8|0;k=o+28|0;c[h>>2]=b;b=j;c[b>>2]=e;c[b+4>>2]=f;if(0!=0?1:(c[j+4>>2]&-16777216|0)!=0){a[(c[h>>2]|0)+8>>0]=c[j>>2];n=j;n=hR(c[n>>2]|0,c[n+4>>2]|0,8)|0;b=j;c[b>>2]=n;c[b+4>>2]=C;c[l>>2]=7;while(1){if((c[l>>2]|0)<0)break;a[(c[h>>2]|0)+(c[l>>2]|0)>>0]=c[j>>2]&127|128;n=j;n=hR(c[n>>2]|0,c[n+4>>2]|0,7)|0;b=j;c[b>>2]=n;c[b+4>>2]=C;c[l>>2]=(c[l>>2]|0)+-1}c[g>>2]=9;b=c[g>>2]|0;i=o;return b|0}c[n>>2]=0;do{b=(c[j>>2]&127|128)&255;f=c[n>>2]|0;c[n>>2]=f+1;a[k+f>>0]=b;f=j;f=hR(c[f>>2]|0,c[f+4>>2]|0,7)|0;b=j;c[b>>2]=f;c[b+4>>2]=C;b=j}while((c[b>>2]|0)!=0|(c[b+4>>2]|0)!=0);a[k>>0]=(d[k>>0]|0)&127;c[l>>2]=0;c[m>>2]=(c[n>>2]|0)-1;while(1){if((c[m>>2]|0)<0)break;a[(c[h>>2]|0)+(c[l>>2]|0)>>0]=a[k+(c[m>>2]|0)>>0]|0;c[m>>2]=(c[m>>2]|0)+-1;c[l>>2]=(c[l>>2]|0)+1}c[g>>2]=c[n>>2];b=c[g>>2]|0;i=o;return b|0}function XL(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;j=p+20|0;k=p+16|0;l=p+12|0;m=p+8|0;n=p+4|0;o=p;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;c[n>>2]=h;b[(c[n>>2]|0)+8>>1]=1;h=tx(c[n>>2]|0,(c[l>>2]|0)+2|0)|0;c[o>>2]=h;if(h){o=c[o>>2]|0;i=p;return o|0}e=c[j>>2]|0;j=c[k>>2]|0;f=c[l>>2]|0;g=c[(c[n>>2]|0)+16>>2]|0;if(c[m>>2]|0)c[o>>2]=tH(e,j,f,g)|0;else c[o>>2]=Mh(e,j,f,g)|0;if(!(c[o>>2]|0)){a[(c[(c[n>>2]|0)+16>>2]|0)+(c[l>>2]|0)>>0]=0;a[(c[(c[n>>2]|0)+16>>2]|0)+((c[l>>2]|0)+1)>>0]=0;b[(c[n>>2]|0)+8>>1]=528;c[(c[n>>2]|0)+12>>2]=c[l>>2];o=c[o>>2]|0;i=p;return o|0}else{Ug(c[n>>2]|0);o=c[o>>2]|0;i=p;return o|0}return 0}function YL(b,d){b=b|0;d=d|0;var f=0,g=0,h=0,j=0;j=i;i=i+16|0;f=j+8|0;g=j+4|0;h=j;c[f>>2]=b;c[g>>2]=d;c[h>>2]=(c[(c[(c[f>>2]|0)+120+(a[(c[f>>2]|0)+68>>0]<<2)>>2]|0)+60>>2]|0)-(c[(c[f>>2]|0)+16+8>>2]|0);if((e[(c[f>>2]|0)+16+16>>1]|0)>>>0<(c[h>>2]|0)>>>0)c[h>>2]=e[(c[f>>2]|0)+16+16>>1];c[c[g>>2]>>2]=c[h>>2];i=j;return c[(c[f>>2]|0)+16+8>>2]|0}function ZL(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;d=h+12|0;e=h+8|0;g=h+4|0;f=h;c[e>>2]=b;b=(c[e>>2]|0)+40|0;c[f>>2]=eF(c[(c[e>>2]|0)+16>>2]|0,0,c[b>>2]|0,c[b+4>>2]|0,0,g)|0;if(c[f>>2]|0){c[d>>2]=c[f>>2];g=c[d>>2]|0;i=h;return g|0}if(c[g>>2]|0){c[d>>2]=Lj(70762)|0;g=c[d>>2]|0;i=h;return g|0}else{a[(c[e>>2]|0)+3>>0]=0;c[(c[e>>2]|0)+56>>2]=0;c[d>>2]=0;g=c[d>>2]|0;i=h;return g|0}return 0}function _L(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;d=h+12|0;e=h+8|0;f=h+4|0;g=h;c[e>>2]=a;c[f>>2]=b;if((c[(c[e>>2]|0)+12>>2]|0)>(c[(c[f>>2]|0)+12>>2]|0))a=c[(c[f>>2]|0)+12>>2]|0;else a=c[(c[e>>2]|0)+12>>2]|0;c[g>>2]=vQ(c[(c[e>>2]|0)+16>>2]|0,c[(c[f>>2]|0)+16>>2]|0,a)|0;if(c[g>>2]|0){c[d>>2]=c[g>>2];g=c[d>>2]|0;i=h;return g|0}else{c[d>>2]=(c[(c[e>>2]|0)+12>>2]|0)-(c[(c[f>>2]|0)+12>>2]|0);g=c[d>>2]|0;i=h;return g|0}return 0}function $L(d){d=d|0;var e=0,f=0,g=0;g=i;i=i+16|0;e=g+4|0;f=g;c[f>>2]=d;if(!(Ky(c[(c[f>>2]|0)+16>>2]|0,c[f>>2]|0,c[(c[f>>2]|0)+12>>2]|0,a[(c[f>>2]|0)+10>>0]|0)|0)){b[e>>1]=0;d=b[e>>1]|0;i=g;return d|0}if(!(Hi(c[(c[f>>2]|0)+16>>2]|0,c[f>>2]|0,c[(c[f>>2]|0)+12>>2]|0,a[(c[f>>2]|0)+10>>0]|0)|0)){b[e>>1]=4;d=b[e>>1]|0;i=g;return d|0}else{b[e>>1]=8;d=b[e>>1]|0;i=g;return d|0}return 0}function aM(d){d=d|0;var f=0,g=0,h=0;h=i;i=i+16|0;f=h+4|0;g=h;c[g>>2]=d;if(ux(c[g>>2]|0,(c[(c[g>>2]|0)+12>>2]|0)+2|0,1)|0){c[f>>2]=7;d=c[f>>2]|0;i=h;return d|0}else{a[(c[(c[g>>2]|0)+16>>2]|0)+(c[(c[g>>2]|0)+12>>2]|0)>>0]=0;a[(c[(c[g>>2]|0)+16>>2]|0)+((c[(c[g>>2]|0)+12>>2]|0)+1)>>0]=0;d=(c[g>>2]|0)+8|0;b[d>>1]=e[d>>1]|0|512;c[f>>2]=0;d=c[f>>2]|0;i=h;return d|0}return 0}function bM(a){a=a|0;var d=0,e=0;e=i;i=i+16|0;d=e;c[d>>2]=a;fh(c[d>>2]|0);b[(c[d>>2]|0)+8>>1]=4;i=e;return c[d>>2]|0}function cM(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;d=f+8|0;b=f+4|0;e=f;c[d>>2]=a;if(c[(c[d>>2]|0)+176>>2]|0){c[b>>2]=c[(c[d>>2]|0)+176>>2];while(1){a=c[b>>2]|0;if(!(c[(c[b>>2]|0)+4>>2]|0))break;c[b>>2]=c[a+4>>2]}RH(a)|0;c[(c[d>>2]|0)+176>>2]=0;c[(c[d>>2]|0)+184>>2]=0}kM(c[d>>2]|0);if(c[(c[d>>2]|0)+8>>2]|0)oC((c[(c[d>>2]|0)+8>>2]|0)+40|0,c[(c[d>>2]|0)+28>>2]|0);while(1){a=c[d>>2]|0;if(!(c[(c[d>>2]|0)+180>>2]|0))break;c[e>>2]=c[a+180>>2];c[(c[d>>2]|0)+180>>2]=c[(c[e>>2]|0)+4>>2];lM(c[e>>2]|0)}if(!(c[a+204>>2]|0)){i=f;return}bI(c[d>>2]|0,-1,0);i=f;return}function dM(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0;H=i;i=i+144|0;z=H+32|0;B=H+24|0;A=H+16|0;y=H+8|0;d=H+128|0;e=H+124|0;I=H+120|0;f=H+116|0;j=H+112|0;v=H+108|0;l=H+104|0;n=H+100|0;o=H+96|0;p=H+92|0;u=H+88|0;k=H+84|0;F=H+80|0;E=H+76|0;t=H+72|0;m=H;w=H+68|0;x=H+64|0;h=H+60|0;g=H+56|0;q=H+52|0;D=H+48|0;r=H+44|0;s=H+40|0;c[e>>2]=a;c[I>>2]=b;c[j>>2]=0;c[v>>2]=0;c[l>>2]=0;c[v>>2]=eM(c[e>>2]|0,c[I>>2]|0)|0;c[f>>2]=0;while(1){if(c[v>>2]|0)break;if((c[f>>2]|0)>=(c[(c[e>>2]|0)+20>>2]|0))break;c[n>>2]=c[(c[(c[e>>2]|0)+16>>2]|0)+(c[f>>2]<<4)+4>>2];if(bi(c[n>>2]|0)|0){c[l>>2]=1;if((c[f>>2]|0)!=1)c[j>>2]=(c[j>>2]|0)+1;kg(c[n>>2]|0);c[v>>2]=rt(Of(c[n>>2]|0)|0)|0}c[f>>2]=(c[f>>2]|0)+1}if(c[v>>2]|0){c[d>>2]=c[v>>2];I=c[d>>2]|0;i=H;return I|0}if(((c[l>>2]|0)!=0?(c[(c[e>>2]|0)+196>>2]|0)!=0:0)?(c[v>>2]=Tb[c[(c[e>>2]|0)+196>>2]&255](c[(c[e>>2]|0)+192>>2]|0)|0,(c[v>>2]|0)!=0):0){c[d>>2]=531;I=c[d>>2]|0;i=H;return I|0}I=0==(If(Di(c[(c[(c[e>>2]|0)+16>>2]|0)+4>>2]|0)|0)|0);if(I|(c[j>>2]|0)<=1){c[f>>2]=0;while(1){if(c[v>>2]|0)break;if((c[f>>2]|0)>=(c[(c[e>>2]|0)+20>>2]|0))break;c[o>>2]=c[(c[(c[e>>2]|0)+16>>2]|0)+(c[f>>2]<<4)+4>>2];if(c[o>>2]|0)c[v>>2]=Kg(c[o>>2]|0,0)|0;c[f>>2]=(c[f>>2]|0)+1}c[f>>2]=0;while(1){if(c[v>>2]|0)break;if((c[f>>2]|0)>=(c[(c[e>>2]|0)+20>>2]|0))break;c[p>>2]=c[(c[(c[e>>2]|0)+16>>2]|0)+(c[f>>2]<<4)+4>>2];if(c[p>>2]|0)c[v>>2]=Jg(c[p>>2]|0,0)|0;c[f>>2]=(c[f>>2]|0)+1}if(!(c[v>>2]|0))fM(c[e>>2]|0)|0}else{c[u>>2]=c[c[e>>2]>>2];c[k>>2]=0;c[F>>2]=0;c[E>>2]=Di(c[(c[(c[e>>2]|0)+16>>2]|0)+4>>2]|0)|0;c[t>>2]=0;I=m;c[I>>2]=0;c[I+4>>2]=0;c[x>>2]=0;c[h>>2]=If(c[E>>2]|0)|0;I=c[e>>2]|0;c[y>>2]=c[E>>2];c[F>>2]=Bh(I,43268,y)|0;if(!(c[F>>2]|0)){c[d>>2]=7;I=c[d>>2]|0;i=H;return I|0}do{if(c[x>>2]|0){if((c[x>>2]|0)>100){G=34;break}if((c[x>>2]|0)==1){c[B>>2]=c[F>>2];Rd(13,43298,B)}}c[x>>2]=(c[x>>2]|0)+1;Sd(4,g);I=(c[F>>2]|0)+(c[h>>2]|0)|0;E=c[g>>2]&255;c[z>>2]=(c[g>>2]|0)>>>8&16777215;c[z+4>>2]=E;Qd(13,I,43313,z)|0;c[v>>2]=Nr(c[u>>2]|0,c[F>>2]|0,0,w)|0}while((c[v>>2]|0)==0?(c[w>>2]|0)!=0:0);if((G|0)==34){c[A>>2]=c[F>>2];Rd(13,43284,A);qr(c[u>>2]|0,c[F>>2]|0,0)|0}if(!(c[v>>2]|0))c[v>>2]=TK(c[u>>2]|0,c[F>>2]|0,t,16406,0)|0;if(c[v>>2]|0){Sf(c[e>>2]|0,c[F>>2]|0);c[d>>2]=c[v>>2];I=c[d>>2]|0;i=H;return I|0}c[f>>2]=0;while(1){if((c[f>>2]|0)>=(c[(c[e>>2]|0)+20>>2]|0))break;c[q>>2]=c[(c[(c[e>>2]|0)+16>>2]|0)+(c[f>>2]<<4)+4>>2];if((bi(c[q>>2]|0)|0)!=0?(c[D>>2]=gM(c[q>>2]|0)|0,(c[D>>2]|0)!=0):0){if((c[k>>2]|0)==0?(hM(c[q>>2]|0)|0)==0:0)c[k>>2]=1;A=c[t>>2]|0;B=c[D>>2]|0;I=(If(c[D>>2]|0)|0)+1|0;E=m;c[v>>2]=Fg(A,B,I,c[E>>2]|0,c[E+4>>2]|0)|0;E=(If(c[D>>2]|0)|0)+1|0;I=m;E=gR(c[I>>2]|0,c[I+4>>2]|0,E|0,((E|0)<0)<<31>>31|0)|0;I=m;c[I>>2]=E;c[I+4>>2]=C;if(c[v>>2]|0){G=50;break}}c[f>>2]=(c[f>>2]|0)+1}if((G|0)==50){pK(c[t>>2]|0)|0;qr(c[u>>2]|0,c[F>>2]|0,0)|0;Sf(c[e>>2]|0,c[F>>2]|0);c[d>>2]=c[v>>2];I=c[d>>2]|0;i=H;return I|0}if(((c[k>>2]|0)!=0?0==((Sr(c[t>>2]|0)|0)&1024|0):0)?(I=or(c[t>>2]|0,2)|0,c[v>>2]=I,0!=(I|0)):0){pK(c[t>>2]|0)|0;qr(c[u>>2]|0,c[F>>2]|0,0)|0;Sf(c[e>>2]|0,c[F>>2]|0);c[d>>2]=c[v>>2];I=c[d>>2]|0;i=H;return I|0}c[f>>2]=0;while(1){if(c[v>>2]|0)break;if((c[f>>2]|0)>=(c[(c[e>>2]|0)+20>>2]|0))break;c[r>>2]=c[(c[(c[e>>2]|0)+16>>2]|0)+(c[f>>2]<<4)+4>>2];if(c[r>>2]|0)c[v>>2]=Kg(c[r>>2]|0,c[F>>2]|0)|0;c[f>>2]=(c[f>>2]|0)+1}pK(c[t>>2]|0)|0;if(c[v>>2]|0){Sf(c[e>>2]|0,c[F>>2]|0);c[d>>2]=c[v>>2];I=c[d>>2]|0;i=H;return I|0}c[v>>2]=qr(c[u>>2]|0,c[F>>2]|0,c[k>>2]|0)|0;Sf(c[e>>2]|0,c[F>>2]|0);c[F>>2]=0;if(c[v>>2]|0){c[d>>2]=c[v>>2];I=c[d>>2]|0;i=H;return I|0}Sj();c[f>>2]=0;while(1){if((c[f>>2]|0)>=(c[(c[e>>2]|0)+20>>2]|0))break;c[s>>2]=c[(c[(c[e>>2]|0)+16>>2]|0)+(c[f>>2]<<4)+4>>2];if(c[s>>2]|0)Jg(c[s>>2]|0,1)|0;c[f>>2]=(c[f>>2]|0)+1}Tj();fM(c[e>>2]|0)|0}c[d>>2]=c[v>>2];I=c[d>>2]|0;i=H;return I|0}function eM(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;h=l+24|0;d=l+20|0;e=l+16|0;k=l+12|0;j=l+8|0;g=l+4|0;f=l;c[h>>2]=a;c[d>>2]=b;c[k>>2]=0;c[j>>2]=c[(c[h>>2]|0)+332>>2];c[(c[h>>2]|0)+332>>2]=0;c[e>>2]=0;while(1){if(c[k>>2]|0){d=8;break}if((c[e>>2]|0)>=(c[(c[h>>2]|0)+308>>2]|0)){d=8;break}c[f>>2]=c[(c[(c[j>>2]|0)+(c[e>>2]<<2)>>2]|0)+8>>2];if((c[f>>2]|0)!=0?(b=c[(c[c[f>>2]>>2]|0)+60>>2]|0,c[g>>2]=b,(b|0)!=0):0){c[k>>2]=Tb[c[g>>2]&255](c[f>>2]|0)|0;GI(c[d>>2]|0,c[f>>2]|0)}c[e>>2]=(c[e>>2]|0)+1}if((d|0)==8){c[(c[h>>2]|0)+332>>2]=c[j>>2];i=l;return c[k>>2]|0}return 0}function fM(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;gu(c[d>>2]|0,64);i=b;return 0}function gM(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=jM(c[c[(c[d>>2]|0)+4>>2]>>2]|0)|0;i=b;return a|0}function hM(a){a=a|0;var b=0,d=0,e=0,f=0;d=i;i=i+16|0;f=d+8|0;e=d+4|0;b=d;c[f>>2]=a;c[e>>2]=c[(c[f>>2]|0)+4>>2];kg(c[f>>2]|0);c[b>>2]=iM(c[c[e>>2]>>2]|0)|0;i=d;return c[b>>2]|0}function iM(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;b=e;c[b>>2]=a;i=e;return d[(c[b>>2]|0)+7>>0]|0|0}function jM(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c[(c[b>>2]|0)+180>>2]|0}function kM(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;b=f+8|0;d=f+4|0;e=f;c[b>>2]=a;if(!(c[(c[b>>2]|0)+56>>2]|0)){i=f;return}c[d>>2]=0;while(1){if((c[d>>2]|0)>=(c[(c[b>>2]|0)+36>>2]|0))break;c[e>>2]=c[(c[(c[b>>2]|0)+56>>2]|0)+(c[d>>2]<<2)>>2];if(c[e>>2]|0){yI(c[b>>2]|0,c[e>>2]|0);c[(c[(c[b>>2]|0)+56>>2]|0)+(c[d>>2]<<2)>>2]=0}c[d>>2]=(c[d>>2]|0)+1}i=f;return}function lM(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=i;i=i+16|0;b=g+12|0;f=g+8|0;d=g+4|0;e=g;c[b>>2]=a;c[d>>2]=(c[b>>2]|0)+80;c[e>>2]=(c[d>>2]|0)+((c[(c[b>>2]|0)+60>>2]|0)*40|0);c[f>>2]=0;while(1){if((c[f>>2]|0)>=(c[(c[b>>2]|0)+64>>2]|0))break;yI(c[c[b>>2]>>2]|0,c[(c[e>>2]|0)+(c[f>>2]<<2)>>2]|0);c[f>>2]=(c[f>>2]|0)+1}oC(c[d>>2]|0,c[(c[b>>2]|0)+60>>2]|0);Sf(c[c[c[b>>2]>>2]>>2]|0,c[b>>2]|0);i=g;return}function mM(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c[6424+(c[b>>2]<<2)>>2]|0}function nM(f,g,j){f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;L=i;i=i+192|0;y=L+88|0;x=L+80|0;w=L+72|0;I=L+64|0;H=L+56|0;v=L+48|0;u=L+40|0;t=L+32|0;A=L+24|0;z=L+16|0;E=L+8|0;s=L;k=L+176|0;l=L+172|0;M=L+168|0;K=L+164|0;J=L+136|0;B=L+132|0;D=L+128|0;C=L+124|0;F=L+120|0;p=L+116|0;q=L+112|0;G=L+108|0;r=L+104|0;n=L+100|0;m=L+96|0;o=L+92|0;c[k>>2]=f;c[l>>2]=g;c[M>>2]=j;c[K>>2]=c[l>>2];cg(J,0,c[l>>2]|0,c[M>>2]|0,0);a:do switch(a[(c[k>>2]|0)+1>>0]|0){case-6:{c[D>>2]=c[(c[k>>2]|0)+16>>2];c[s>>2]=e[(c[D>>2]|0)+6>>1];$z(J,43365,s);c[B>>2]=0;while(1){if((c[B>>2]|0)>=(e[(c[D>>2]|0)+6>>1]|0))break;c[C>>2]=c[(c[D>>2]|0)+20+(c[B>>2]<<2)>>2];if(c[C>>2]|0)k=c[c[C>>2]>>2]|0;else k=19266;c[F>>2]=k;M=(yQ(c[F>>2]|0,35690)|0)==0;c[F>>2]=M?43370:k;M=c[F>>2]|0;c[E>>2]=(d[(c[(c[D>>2]|0)+16>>2]|0)+(c[B>>2]|0)>>0]|0)!=0?29135:19266;c[E+4>>2]=M;$z(J,43372,E);c[B>>2]=(c[B>>2]|0)+1}aA(J,35518,1);break}case-4:{c[p>>2]=c[(c[k>>2]|0)+16>>2];c[z>>2]=c[c[p>>2]>>2];$z(J,43378,z);break}case-5:{c[q>>2]=c[(c[k>>2]|0)+16>>2];M=b[c[q>>2]>>1]|0;c[A>>2]=c[(c[q>>2]|0)+20>>2];c[A+4>>2]=M;$z(J,43386,A);break}case-13:{H=c[(c[k>>2]|0)+16>>2]|0;I=c[H+4>>2]|0;M=t;c[M>>2]=c[H>>2];c[M+4>>2]=I;$z(J,29137,t);break}case-14:{c[u>>2]=c[(c[k>>2]|0)+16>>2];$z(J,43393,u);break}case-12:{h[v>>3]=+h[c[(c[k>>2]|0)+16>>2]>>3];$z(J,43396,v);break}case-8:{c[G>>2]=c[(c[k>>2]|0)+16>>2];k=c[G>>2]|0;if(e[(c[G>>2]|0)+8>>1]&2){c[K>>2]=c[k+16>>2];break a}l=c[G>>2]|0;if(e[k+8>>1]&4){G=l;I=c[G+4>>2]|0;M=H;c[M>>2]=c[G>>2];c[M+4>>2]=I;$z(J,29137,H);break a}k=c[G>>2]|0;if(e[l+8>>1]&8){h[I>>3]=+h[k>>3];$z(J,43396,I);break a}if(e[k+8>>1]&1){c[K>>2]=40498;break a}else{c[K>>2]=43402;break a}}case-10:{c[r>>2]=c[(c[(c[k>>2]|0)+16>>2]|0)+8>>2];c[w>>2]=c[r>>2];$z(J,43409,w);break}case-15:{c[m>>2]=c[(c[k>>2]|0)+16>>2];c[o>>2]=c[c[m>>2]>>2];c[n>>2]=1;while(1){if((c[n>>2]|0)>=(c[o>>2]|0))break;c[x>>2]=c[(c[m>>2]|0)+(c[n>>2]<<2)>>2];$z(J,43417,x);c[n>>2]=(c[n>>2]|0)+1}a[c[l>>2]>>0]=91;aA(J,43421,1);break}case-18:{$z(J,43423,y);break}case-19:{a[c[l>>2]>>0]=0;break}default:{c[K>>2]=c[(c[k>>2]|0)+16>>2];if(!(c[K>>2]|0)){c[K>>2]=c[l>>2];a[c[l>>2]>>0]=0}}}while(0);eg(J)|0;i=L;return c[K>>2]|0}function oM(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f+8|0;h=f;c[g>>2]=a;a=h;c[a>>2]=d;c[a+4>>2]=e;fh(c[g>>2]|0);d=h;e=c[d+4>>2]|0;a=c[g>>2]|0;c[a>>2]=c[d>>2];c[a+4>>2]=e;b[(c[g>>2]|0)+8>>1]=4;i=f;return}function pM(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+16|0;g=m+4|0;l=m;k=m+10|0;h=m+9|0;j=m+8|0;c[g>>2]=f;c[l>>2]=0;a[k>>0]=0;if((c[(c[g>>2]|0)+12>>2]|0)>1){a[h>>0]=a[c[(c[g>>2]|0)+16>>2]>>0]|0;a[j>>0]=a[(c[(c[g>>2]|0)+16>>2]|0)+1>>0]|0;if((d[h>>0]|0)==254?(d[j>>0]|0)==255:0)a[k>>0]=3;if((d[h>>0]|0)==255?(d[j>>0]|0)==254:0)a[k>>0]=2}if(!(a[k>>0]|0)){l=c[l>>2]|0;i=m;return l|0}c[l>>2]=_g(c[g>>2]|0)|0;if(c[l>>2]|0){l=c[l>>2]|0;i=m;return l|0}f=(c[g>>2]|0)+12|0;c[f>>2]=(c[f>>2]|0)-2;jR(c[(c[g>>2]|0)+16>>2]|0,(c[(c[g>>2]|0)+16>>2]|0)+2|0,c[(c[g>>2]|0)+12>>2]|0)|0;a[(c[(c[g>>2]|0)+16>>2]|0)+(c[(c[g>>2]|0)+12>>2]|0)>>0]=0;a[(c[(c[g>>2]|0)+16>>2]|0)+((c[(c[g>>2]|0)+12>>2]|0)+1)>>0]=0;f=(c[g>>2]|0)+8|0;b[f>>1]=e[f>>1]|512;a[(c[g>>2]|0)+10>>0]=a[k>>0]|0;l=c[l>>2]|0;i=m;return l|0}function qM(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=i;i=i+16|0;e=f;g=f+4|0;c[e>>2]=b;a[g>>0]=d;if(!(rM(c[e>>2]|0,a[g>>0]|0)|0)){g=0;i=f;return g|0}g=c[(c[e>>2]|0)+12>>2]|0;i=f;return g|0}function rM(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0;l=i;i=i+16|0;h=l+4|0;j=l;k=l+8|0;c[j>>2]=f;a[k>>0]=g;g=c[j>>2]|0;if((e[(c[j>>2]|0)+8>>1]|0)&18){f=g+8|0;b[f>>1]=e[f>>1]|0|2;if((e[(c[j>>2]|0)+8>>1]|0)&16384)Vg(c[j>>2]|0)|0;if((d[(c[j>>2]|0)+10>>0]|0|0)!=((d[k>>0]|0)&-9|0))Zt(c[j>>2]|0,(d[k>>0]|0)&-9)|0;if((((d[k>>0]|0)&8|0)!=0?1==(1&c[(c[j>>2]|0)+16>>2]|0):0)?(_g(c[j>>2]|0)|0)!=0:0){c[h>>2]=0;k=c[h>>2]|0;i=l;return k|0}YH(c[j>>2]|0)|0}else sx(g,a[k>>0]|0,0)|0;if((d[(c[j>>2]|0)+10>>0]|0|0)==((d[k>>0]|0)&-9|0)){c[h>>2]=c[(c[j>>2]|0)+16>>2];k=c[h>>2]|0;i=l;return k|0}else{c[h>>2]=0;k=c[h>>2]|0;i=l;return k|0}return 0}function sM(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if((e[(c[b>>2]|0)+8>>1]|0)&9312)DF(c[b>>2]|0);if(!(c[(c[b>>2]|0)+24>>2]|0)){a=c[b>>2]|0;a=a+16|0;c[a>>2]=0;i=d;return}Sf(c[(c[b>>2]|0)+32>>2]|0,c[(c[b>>2]|0)+20>>2]|0);c[(c[b>>2]|0)+24>>2]=0;a=c[b>>2]|0;a=a+16|0;c[a>>2]=0;i=d;return}function tM(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=c[c[d>>2]>>2];Sf(c[e>>2]|0,c[(c[d>>2]|0)+44>>2]|0);c[(c[d>>2]|0)+44>>2]=0;c[(c[d>>2]|0)+20>>2]=0;i=b;return}function uM(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;li(c[d>>2]|0);jg(c[d>>2]|0,7);i=b;return 7}function vM(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;kj(c[(c[d>>2]|0)+60>>2]|0);c[(c[d>>2]|0)+60>>2]=0;i=b;return}function wM(b){b=b|0;var e=0,f=0,g=0,h=0;g=i;i=i+16|0;e=g+8|0;f=g+4|0;h=g;c[e>>2]=b;c[f>>2]=c[(c[e>>2]|0)+4>>2];c[h>>2]=c[c[e>>2]>>2];a[(c[f>>2]|0)+19>>0]=0;if((d[(c[e>>2]|0)+8>>0]|0|0)>0?(c[(c[h>>2]|0)+152>>2]|0)>1:0){xM(c[e>>2]|0);a[(c[e>>2]|0)+8>>0]=1;i=g;return}if((d[(c[e>>2]|0)+8>>0]|0|0)!=0?(yM(c[e>>2]|0),h=(c[f>>2]|0)+40|0,c[h>>2]=(c[h>>2]|0)+-1,0==(c[(c[f>>2]|0)+40>>2]|0)):0)a[(c[f>>2]|0)+20>>0]=0;a[(c[e>>2]|0)+8>>0]=0;rB(c[f>>2]|0);i=g;return}function xM(d){d=d|0;var f=0,g=0,h=0,j=0;h=i;i=i+16|0;j=h+8|0;f=h+4|0;g=h;c[j>>2]=d;c[f>>2]=c[(c[j>>2]|0)+4>>2];if((c[(c[f>>2]|0)+76>>2]|0)!=(c[j>>2]|0)){i=h;return}c[(c[f>>2]|0)+76>>2]=0;j=(c[f>>2]|0)+22|0;b[j>>1]=(e[j>>1]|0)&-97;c[g>>2]=c[(c[f>>2]|0)+72>>2];while(1){if(!(c[g>>2]|0))break;a[(c[g>>2]|0)+8>>0]=1;c[g>>2]=c[(c[g>>2]|0)+12>>2]}i=h;return}function yM(a){a=a|0;var d=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;g=j+12|0;h=j+8|0;f=j+4|0;d=j;c[g>>2]=a;c[h>>2]=c[(c[g>>2]|0)+4>>2];c[f>>2]=(c[h>>2]|0)+72;while(1){if(!(c[c[f>>2]>>2]|0))break;c[d>>2]=c[c[f>>2]>>2];a=(c[d>>2]|0)+12|0;if((c[c[d>>2]>>2]|0)!=(c[g>>2]|0)){c[f>>2]=a;continue}c[c[f>>2]>>2]=c[a>>2];if((c[(c[d>>2]|0)+4>>2]|0)==1)continue;Kd(c[d>>2]|0)}a=c[h>>2]|0;if((c[(c[h>>2]|0)+76>>2]|0)==(c[g>>2]|0)){c[a+76>>2]=0;h=(c[h>>2]|0)+22|0;b[h>>1]=(e[h>>1]|0)&-97;i=j;return}if((c[a+40>>2]|0)!=2){i=j;return}h=(c[h>>2]|0)+22|0;b[h>>1]=(e[h>>1]|0)&-65;i=j;return}function zM(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;d=m+28|0;e=m+24|0;l=m+20|0;k=m+16|0;g=m+12|0;h=m+8|0;f=m+4|0;j=m;c[e>>2]=b;c[l>>2]=0;c[k>>2]=c[c[e>>2]>>2];rJ(c[e>>2]|0);do if(!(a[(c[e>>2]|0)+18>>0]|0)){c[j>>2]=$E(c[e>>2]|0)|0;b=lF(c[e>>2]|0,c[j>>2]|0)|0;if((b|0)!=(c[j>>2]|0)?(c[j>>2]|0)!=((((c[381]|0)>>>0)/((c[(c[e>>2]|0)+32>>2]|0)>>>0)|0)+1|0):0){c[h>>2]=$q((c[(c[(c[e>>2]|0)+12>>2]|0)+56>>2]|0)+36|0)|0;c[g>>2]=qJ(c[e>>2]|0,c[j>>2]|0,c[h>>2]|0)|0;if((c[g>>2]|0)>>>0>(c[j>>2]|0)>>>0){c[d>>2]=Lj(59231)|0;l=c[d>>2]|0;i=m;return l|0}if((c[g>>2]|0)>>>0<(c[j>>2]|0)>>>0)c[l>>2]=nH(c[e>>2]|0,0,0)|0;c[f>>2]=c[j>>2];while(1){if(!((c[f>>2]|0)>>>0>(c[g>>2]|0)>>>0?(c[l>>2]|0)==0:0))break;c[l>>2]=sJ(c[e>>2]|0,c[g>>2]|0,c[f>>2]|0,1)|0;c[f>>2]=(c[f>>2]|0)+-1}if(((c[l>>2]|0)==101|(c[l>>2]|0)==0)&(c[h>>2]|0)>>>0>0){c[l>>2]=Dg(c[(c[(c[e>>2]|0)+12>>2]|0)+72>>2]|0)|0;Xs((c[(c[(c[e>>2]|0)+12>>2]|0)+56>>2]|0)+32|0,0);Xs((c[(c[(c[e>>2]|0)+12>>2]|0)+56>>2]|0)+36|0,0);Xs((c[(c[(c[e>>2]|0)+12>>2]|0)+56>>2]|0)+28|0,c[g>>2]|0);a[(c[e>>2]|0)+19>>0]=1;c[(c[e>>2]|0)+44>>2]=c[g>>2]}if(!(c[l>>2]|0))break;jr(c[k>>2]|0)|0;break}c[d>>2]=Lj(59226)|0;l=c[d>>2]|0;i=m;return l|0}while(0);c[d>>2]=c[l>>2];l=c[d>>2]|0;i=m;return l|0}function AM(b){b=b|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+8|0;f=h+4|0;g=h;c[f>>2]=b;c[g>>2]=0;b=c[f>>2]|0;if(c[(c[f>>2]|0)+44>>2]|0){c[e>>2]=c[b+44>>2];g=c[e>>2]|0;i=h;return g|0}if(((d[b+17>>0]|0|0)==2?(d[(c[f>>2]|0)+4>>0]|0|0)!=0:0)?(d[(c[f>>2]|0)+5>>0]|0|0)==1:0){a[(c[f>>2]|0)+17>>0]=1;c[e>>2]=0;g=c[e>>2]|0;i=h;return g|0}b=(c[f>>2]|0)+108|0;c[b>>2]=(c[b>>2]|0)+1;c[g>>2]=kr(c[f>>2]|0,d[(c[f>>2]|0)+20>>0]|0,1)|0;c[e>>2]=fr(c[f>>2]|0,c[g>>2]|0)|0;g=c[e>>2]|0;i=h;return g|0}function BM(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+12|0;g=h+4|0;f=h;c[e>>2]=b;c[h+8>>2]=d;c[g>>2]=0;if(a[(c[e>>2]|0)+19>>0]|0){g=c[g>>2]|0;i=h;return g|0}if((c[(c[e>>2]|0)+28>>2]|0)>>>0<=0){g=c[g>>2]|0;i=h;return g|0}c[g>>2]=sg(c[e>>2]|0,1,f,0)|0;if(!(c[g>>2]|0))c[g>>2]=Dg(c[f>>2]|0)|0;if(!(c[g>>2]|0)){qt(c[f>>2]|0);a[(c[e>>2]|0)+19>>0]=1}vg(c[f>>2]|0);g=c[g>>2]|0;i=h;return g|0}function CM(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;o=i;i=i+48|0;f=o+36|0;g=o+32|0;h=o+28|0;n=o+24|0;m=o+20|0;k=o+8|0;l=o;j=o+16|0;c[g>>2]=b;c[h>>2]=e;c[j>>2]=0;if(((c[h>>2]|0)!=0?(d[(c[g>>2]|0)+5>>0]|0)!=4:0)?(c[c[(c[g>>2]|0)+68>>2]>>2]|0)!=0:0){a[(c[g>>2]|0)+20>>0]=1;c[m>>2]=0;while(1){if(!(a[(c[h>>2]|0)+(c[m>>2]|0)>>0]|0))break;c[j>>2]=(c[j>>2]|0)+(a[(c[h>>2]|0)+(c[m>>2]|0)>>0]|0);c[m>>2]=(c[m>>2]|0)+1}if(a[(c[g>>2]|0)+8>>0]|0){b=fs(c[g>>2]|0)|0;e=(c[g>>2]|0)+80|0;c[e>>2]=b;c[e+4>>2]=C}p=(c[g>>2]|0)+80|0;b=c[p+4>>2]|0;e=k;c[e>>2]=c[p>>2];c[e+4>>2]=b;e=k;e=Gt(c[(c[g>>2]|0)+68>>2]|0,c[e>>2]|0,c[e+4>>2]|0,((c[381]|0)/(c[(c[g>>2]|0)+160>>2]|0)|0)+1|0)|0;c[n>>2]=e;if((((0==(e|0)?(q=c[(c[g>>2]|0)+68>>2]|0,b=c[h>>2]|0,e=c[m>>2]|0,p=k,p=gR(c[p>>2]|0,c[p+4>>2]|0,4,0)|0,p=Fg(q,b,e,p,C)|0,c[n>>2]=p,0==(p|0)):0)?(p=c[(c[g>>2]|0)+68>>2]|0,e=k,e=gR(c[e>>2]|0,c[e+4>>2]|0,4,0)|0,q=c[m>>2]|0,q=gR(e|0,C|0,q|0,((q|0)<0)<<31>>31|0)|0,q=Gt(p,q,C,c[m>>2]|0)|0,c[n>>2]=q,0==(q|0)):0)?(p=c[(c[g>>2]|0)+68>>2]|0,e=k,e=gR(c[e>>2]|0,c[e+4>>2]|0,4,0)|0,q=c[m>>2]|0,q=gR(e|0,C|0,q|0,((q|0)<0)<<31>>31|0)|0,q=gR(q|0,C|0,4,0)|0,q=Gt(p,q,C,c[j>>2]|0)|0,c[n>>2]=q,0==(q|0)):0)?(p=c[(c[g>>2]|0)+68>>2]|0,e=k,e=gR(c[e>>2]|0,c[e+4>>2]|0,4,0)|0,q=c[m>>2]|0,q=gR(e|0,C|0,q|0,((q|0)<0)<<31>>31|0)|0,q=gR(q|0,C|0,8,0)|0,q=Fg(p,26758,8,q,C)|0,c[n>>2]=q,0==(q|0)):0){p=(c[m>>2]|0)+20|0;q=(c[g>>2]|0)+80|0;e=q;p=gR(c[e>>2]|0,c[e+4>>2]|0,p|0,((p|0)<0)<<31>>31|0)|0;c[q>>2]=p;c[q+4>>2]=C;q=Si(c[(c[g>>2]|0)+68>>2]|0,l)|0;c[n>>2]=q;if(0==(q|0)?(p=l,b=c[p+4>>2]|0,q=(c[g>>2]|0)+80|0,e=c[q+4>>2]|0,(b|0)>(e|0)|((b|0)==(e|0)?(c[p>>2]|0)>>>0>(c[q>>2]|0)>>>0:0)):0){q=(c[g>>2]|0)+80|0;c[n>>2]=nr(c[(c[g>>2]|0)+68>>2]|0,c[q>>2]|0,c[q+4>>2]|0)|0}c[f>>2]=c[n>>2];q=c[f>>2]|0;i=o;return q|0}c[f>>2]=c[n>>2];q=c[f>>2]|0;i=o;return q|0}c[f>>2]=0;q=c[f>>2]|0;i=o;return q|0}function DM(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+48|0;g=u+44|0;s=u+40|0;k=u+36|0;r=u+32|0;j=u+28|0;h=u+24|0;m=u+20|0;p=u+16|0;l=u+12|0;q=u+8|0;n=u+4|0;o=u;c[g>>2]=f;c[s>>2]=0;c[j>>2]=0;c[m>>2]=0;c[p>>2]=c[(c[g>>2]|0)+16>>2];c[l>>2]=((c[(c[p>>2]|0)+156>>2]|0)>>>0)/((c[(c[p>>2]|0)+160>>2]|0)>>>0)|0;f=(c[p>>2]|0)+21|0;a[f>>0]=d[f>>0]|0|4;c[r>>2]=((c[(c[g>>2]|0)+20>>2]|0)-1&~((c[l>>2]|0)-1))+1;c[k>>2]=c[(c[p>>2]|0)+28>>2];do if((c[(c[g>>2]|0)+20>>2]|0)>>>0<=(c[k>>2]|0)>>>0)if(((c[r>>2]|0)+(c[l>>2]|0)-1|0)>>>0>(c[k>>2]|0)>>>0){c[j>>2]=(c[k>>2]|0)+1-(c[r>>2]|0);break}else{c[j>>2]=c[l>>2];break}else c[j>>2]=(c[(c[g>>2]|0)+20>>2]|0)-(c[r>>2]|0)+1;while(0);c[h>>2]=0;while(1){if(!((c[h>>2]|0)<(c[j>>2]|0)?(c[s>>2]|0)==0:0))break;c[q>>2]=(c[r>>2]|0)+(c[h>>2]|0);if((c[q>>2]|0)!=(c[(c[g>>2]|0)+20>>2]|0)?(ij(c[(c[p>>2]|0)+60>>2]|0,c[q>>2]|0)|0)!=0:0){f=Zr(c[p>>2]|0,c[q>>2]|0)|0;c[n>>2]=f;if(f){if((e[(c[n>>2]|0)+24>>1]|0)&8)c[m>>2]=1;zs(c[n>>2]|0)}}else t=10;if(((t|0)==10?(t=0,(c[q>>2]|0)!=(((c[381]|0)/(c[(c[p>>2]|0)+160>>2]|0)|0)+1|0)):0)?(c[s>>2]=sg(c[p>>2]|0,c[q>>2]|0,n,0)|0,(c[s>>2]|0)==0):0){c[s>>2]=EM(c[n>>2]|0)|0;if((e[(c[n>>2]|0)+24>>1]|0)&8)c[m>>2]=1;zs(c[n>>2]|0)}c[h>>2]=(c[h>>2]|0)+1}if(!((c[s>>2]|0)==0&(c[m>>2]|0)!=0)){t=c[p>>2]|0;t=t+21|0;r=a[t>>0]|0;r=r&255;r=r&-5;r=r&255;a[t>>0]=r;t=c[s>>2]|0;i=u;return t|0}c[h>>2]=0;while(1){if((c[h>>2]|0)>=(c[j>>2]|0))break;c[o>>2]=Zr(c[p>>2]|0,(c[r>>2]|0)+(c[h>>2]|0)|0)|0;if(c[o>>2]|0){t=(c[o>>2]|0)+24|0;b[t>>1]=e[t>>1]|0|8;zs(c[o>>2]|0)}c[h>>2]=(c[h>>2]|0)+1}t=c[p>>2]|0;t=t+21|0;r=a[t>>0]|0;r=r&255;r=r&-5;r=r&255;a[t>>0]=r;t=c[s>>2]|0;i=u;return t|0}function EM(a){a=a|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;f=k+12|0;g=k+8|0;h=k+4|0;j=k;c[g>>2]=a;c[h>>2]=c[(c[g>>2]|0)+16>>2];c[j>>2]=0;if((d[(c[h>>2]|0)+17>>0]|0|0)==2?(c[j>>2]=FM(c[h>>2]|0)|0,(c[j>>2]|0)!=0):0){c[f>>2]=c[j>>2];j=c[f>>2]|0;i=k;return j|0}$r(c[g>>2]|0);do if((c[(c[h>>2]|0)+60>>2]|0)!=0?(lj(c[(c[h>>2]|0)+60>>2]|0,c[(c[g>>2]|0)+20>>2]|0)|0)==0:0){if((c[(c[g>>2]|0)+20>>2]|0)>>>0>(c[(c[h>>2]|0)+32>>2]|0)>>>0){if((d[(c[h>>2]|0)+17>>0]|0|0)==4)break;a=(c[g>>2]|0)+24|0;b[a>>1]=e[a>>1]|0|8;break}c[j>>2]=GM(c[g>>2]|0)|0;if(c[j>>2]|0){c[f>>2]=c[j>>2];j=c[f>>2]|0;i=k;return j|0}}while(0);a=(c[g>>2]|0)+24|0;b[a>>1]=e[a>>1]|0|4;if((c[(c[h>>2]|0)+104>>2]|0)>0)c[j>>2]=lt(c[g>>2]|0)|0;if((c[(c[h>>2]|0)+28>>2]|0)>>>0<(c[(c[g>>2]|0)+20>>2]|0)>>>0)c[(c[h>>2]|0)+28>>2]=c[(c[g>>2]|0)+20>>2];c[f>>2]=c[j>>2];j=c[f>>2]|0;i=k;return j|0}function FM(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;g=k+16|0;h=k+12|0;j=k+8|0;f=k+4|0;e=k;c[h>>2]=b;c[j>>2]=0;c[f>>2]=c[c[h>>2]>>2];b=c[h>>2]|0;if(c[(c[h>>2]|0)+44>>2]|0){c[g>>2]=c[b+44>>2];j=c[g>>2]|0;i=k;return j|0}if((sr(b)|0)==0?(d[(c[h>>2]|0)+5>>0]|0|0)!=2:0){b=fj(c[(c[h>>2]|0)+28>>2]|0)|0;c[(c[h>>2]|0)+60>>2]=b;if(!(c[(c[h>>2]|0)+60>>2]|0)){c[g>>2]=7;j=c[g>>2]|0;i=k;return j|0}do if(!(c[c[(c[h>>2]|0)+68>>2]>>2]|0)){b=c[h>>2]|0;if((d[(c[h>>2]|0)+5>>0]|0|0)==4){Ir(c[b+68>>2]|0);break}c[e>>2]=6|((d[b+13>>0]|0|0)!=0?4104:2048);c[j>>2]=HM(c[h>>2]|0)|0;if(!(c[j>>2]|0))c[j>>2]=Vr(c[f>>2]|0,c[(c[h>>2]|0)+180>>2]|0,c[(c[h>>2]|0)+68>>2]|0,c[e>>2]|0,0)|0}while(0);if(!(c[j>>2]|0)){c[(c[h>>2]|0)+48>>2]=0;f=(c[h>>2]|0)+80|0;c[f>>2]=0;c[f+4>>2]=0;a[(c[h>>2]|0)+20>>0]=0;f=(c[h>>2]|0)+88|0;c[f>>2]=0;c[f+4>>2]=0;c[j>>2]=st(c[h>>2]|0)|0}}b=c[h>>2]|0;if(c[j>>2]|0){kj(c[b+60>>2]|0);c[(c[h>>2]|0)+60>>2]=0}else a[b+17>>0]=3;c[g>>2]=c[j>>2];j=c[g>>2]|0;i=k;return j|0}function GM(a){a=a|0;var d=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;m=i;i=i+32|0;d=m+28|0;f=m+24|0;k=m+20|0;l=m+16|0;g=m+12|0;j=m+8|0;h=m;c[f>>2]=a;c[k>>2]=c[(c[f>>2]|0)+16>>2];o=(c[k>>2]|0)+80|0;n=c[o+4>>2]|0;a=h;c[a>>2]=c[o>>2];c[a+4>>2]=n;c[j>>2]=c[(c[f>>2]|0)+4>>2];c[g>>2]=Yr(c[k>>2]|0,c[j>>2]|0)|0;a=(c[f>>2]|0)+24|0;b[a>>1]=e[a>>1]|0|8;a=h;c[l>>2]=Gt(c[(c[k>>2]|0)+68>>2]|0,c[a>>2]|0,c[a+4>>2]|0,c[(c[f>>2]|0)+20>>2]|0)|0;
  66. if(c[l>>2]|0){c[d>>2]=c[l>>2];o=c[d>>2]|0;i=m;return o|0}p=c[(c[k>>2]|0)+68>>2]|0;a=c[j>>2]|0;n=c[(c[k>>2]|0)+160>>2]|0;o=h;o=gR(c[o>>2]|0,c[o+4>>2]|0,4,0)|0;c[l>>2]=Fg(p,a,n,o,C)|0;if(c[l>>2]|0){c[d>>2]=c[l>>2];p=c[d>>2]|0;i=m;return p|0}o=c[(c[k>>2]|0)+68>>2]|0;n=h;p=c[(c[k>>2]|0)+160>>2]|0;p=gR(c[n>>2]|0,c[n+4>>2]|0,p|0,((p|0)<0)<<31>>31|0)|0;p=gR(p|0,C|0,4,0)|0;c[l>>2]=Gt(o,p,C,c[g>>2]|0)|0;if(c[l>>2]|0){c[d>>2]=c[l>>2];p=c[d>>2]|0;i=m;return p|0}else{o=8+(c[(c[k>>2]|0)+160>>2]|0)|0;p=(c[k>>2]|0)+80|0;n=p;o=gR(c[n>>2]|0,c[n+4>>2]|0,o|0,((o|0)<0)<<31>>31|0)|0;c[p>>2]=o;c[p+4>>2]=C;p=(c[k>>2]|0)+48|0;c[p>>2]=(c[p>>2]|0)+1;c[l>>2]=gj(c[(c[k>>2]|0)+60>>2]|0,c[(c[f>>2]|0)+20>>2]|0)|0;p=Ht(c[k>>2]|0,c[(c[f>>2]|0)+20>>2]|0)|0;c[l>>2]=c[l>>2]|p;c[d>>2]=c[l>>2];p=c[d>>2]|0;i=m;return p|0}return 0}function HM(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;d=h+12|0;e=h+8|0;f=h+4|0;g=h;c[e>>2]=b;c[f>>2]=0;if(a[(c[e>>2]|0)+13>>0]|0){c[d>>2]=0;g=c[d>>2]|0;i=h;return g|0}if(!(c[(c[e>>2]|0)+28>>2]|0)){c[d>>2]=0;g=c[d>>2]|0;i=h;return g|0}c[g>>2]=vi(c[(c[e>>2]|0)+64>>2]|0,20,f)|0;if((c[g>>2]|0)!=12){if((c[g>>2]|0)==0&(c[f>>2]|0)!=0)c[g>>2]=1032}else c[g>>2]=0;c[d>>2]=c[g>>2];g=c[d>>2]|0;i=h;return g|0}function IM(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;h=o+20|0;j=o+16|0;k=o+12|0;l=o+8|0;m=o+4|0;n=o;c[j>>2]=a;c[k>>2]=d;c[l>>2]=f;c[m>>2]=g;f=c[j>>2]|0;do if(c[(c[j>>2]|0)+144>>2]|0){g=c[f+144>>2]|0;c[n>>2]=g;c[c[m>>2]>>2]=g;c[(c[j>>2]|0)+144>>2]=c[(c[n>>2]|0)+12>>2];c[(c[n>>2]|0)+12>>2]=0;kR(c[(c[n>>2]|0)+8>>2]|0,0,e[(c[j>>2]|0)+148>>1]|0|0)|0}else{g=ig(40+(e[f+148>>1]|0)|0,0)|0;c[n>>2]=g;c[c[m>>2]>>2]=g;if(c[n>>2]|0){c[(c[n>>2]|0)+8>>2]=(c[n>>2]|0)+40;b[(c[n>>2]|0)+24>>1]=64;b[(c[n>>2]|0)+26>>1]=1;c[(c[n>>2]|0)+16>>2]=c[j>>2];break}m=c[(c[j>>2]|0)+64>>2]|0;n=c[(c[j>>2]|0)+160>>2]|0;n=rR((c[k>>2]|0)-1|0,0,n|0,((n|0)<0)<<31>>31|0)|0;Cs(m,n,C,c[l>>2]|0)|0;c[h>>2]=7;n=c[h>>2]|0;i=o;return n|0}while(0);c[(c[n>>2]|0)+20>>2]=c[k>>2];c[(c[n>>2]|0)+4>>2]=c[l>>2];n=(c[j>>2]|0)+128|0;c[n>>2]=(c[n>>2]|0)+1;c[h>>2]=0;n=c[h>>2]|0;i=o;return n|0}function JM(a,f,g){a=a|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;h=o+20|0;j=o+16|0;k=o+12|0;l=o+8|0;m=o+4|0;n=o;c[j>>2]=a;c[k>>2]=f;c[l>>2]=g;if((d[(c[j>>2]|0)+33>>0]|0)==2){c[h>>2]=0;n=c[h>>2]|0;i=o;return n|0}g=KM(c[j>>2]|0)|0;if((g|0)>(c[(c[j>>2]|0)+20>>2]|0)){c[m>>2]=c[(c[j>>2]|0)+8>>2];while(1){if(!(c[m>>2]|0))break;if((b[(c[m>>2]|0)+26>>1]|0)==0?(e[(c[m>>2]|0)+24>>1]&8|0)==0:0)break;c[m>>2]=c[(c[m>>2]|0)+36>>2]}c[(c[j>>2]|0)+8>>2]=c[m>>2];a:do if(!(c[m>>2]|0)){c[m>>2]=c[(c[j>>2]|0)+4>>2];while(1){if(!(c[m>>2]|0))break a;if(!(b[(c[m>>2]|0)+26>>1]|0))break a;c[m>>2]=c[(c[m>>2]|0)+36>>2]}}while(0);if((c[m>>2]|0)!=0?(c[n>>2]=Yb[c[(c[j>>2]|0)+36>>2]&255](c[(c[j>>2]|0)+40>>2]|0,c[m>>2]|0)|0,(c[n>>2]|0)!=0&(c[n>>2]|0)!=5):0){c[h>>2]=c[n>>2];n=c[h>>2]|0;i=o;return n|0}}n=Ob[c[140>>2]&255](c[(c[j>>2]|0)+44>>2]|0,c[k>>2]|0,2)|0;c[c[l>>2]>>2]=n;c[h>>2]=(c[c[l>>2]>>2]|0)==0?7:0;n=c[h>>2]|0;i=o;return n|0}function KM(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=Tb[c[136>>2]&255](c[(c[d>>2]|0)+44>>2]|0)|0;i=b;return a|0}function LM(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c[(c[b>>2]|0)+108>>2]|0}function MM(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;n=r+40|0;o=r+36|0;l=r+32|0;q=r+28|0;p=r+24|0;h=r+20|0;k=r+12|0;m=r+8|0;j=r+4|0;g=r;c[o>>2]=f;c[h>>2]=0;c[l>>2]=LJ(c[c[o>>2]>>2]|0)|0;if(c[l>>2]|0){c[n>>2]=c[l>>2];q=c[n>>2]|0;i=r;return q|0}c[l>>2]=nF(c[o>>2]|0,1,q,0)|0;if(c[l>>2]|0){c[n>>2]=c[l>>2];q=c[n>>2]|0;i=r;return q|0}f=$q((c[(c[q>>2]|0)+56>>2]|0)+28|0)|0;c[r+16>>2]=f;c[p>>2]=f;Cg(c[c[o>>2]>>2]|0,h);if(!((c[p>>2]|0)!=0?(vQ((c[(c[q>>2]|0)+56>>2]|0)+24|0,(c[(c[q>>2]|0)+56>>2]|0)+92|0,4)|0)==0:0))c[p>>2]=c[h>>2];a:do if((c[p>>2]|0)>0){c[j>>2]=c[(c[q>>2]|0)+56>>2];c[l>>2]=26;b:do if(!(vQ(c[j>>2]|0,43252,16)|0)){if((d[(c[j>>2]|0)+18>>0]|0|0)>2){f=(c[o>>2]|0)+22|0;b[f>>1]=e[f>>1]|0|1}if((d[(c[j>>2]|0)+19>>0]|0|0)<=2){do if((d[(c[j>>2]|0)+19>>0]|0|0)==2?((e[(c[o>>2]|0)+22>>1]|0)&16|0)==0:0){c[g>>2]=0;c[l>>2]=RJ(c[c[o>>2]>>2]|0,g)|0;if(c[l>>2]|0)break b;if(c[g>>2]|0){c[l>>2]=26;break}qB(c[q>>2]|0);c[n>>2]=0;q=c[n>>2]|0;i=r;return q|0}while(0);if((vQ((c[j>>2]|0)+21|0,45492,3)|0)==0?(c[k>>2]=(d[(c[j>>2]|0)+16>>0]|0)<<8|(d[(c[j>>2]|0)+17>>0]|0)<<16,!(((c[k>>2]|0)>>>0>65536?1:((c[k>>2]|0)-1&c[k>>2]|0)!=0)|(c[k>>2]|0)>>>0<=256)):0){c[m>>2]=(c[k>>2]|0)-(d[(c[j>>2]|0)+20>>0]|0);if((c[k>>2]|0)!=(c[(c[o>>2]|0)+32>>2]|0)){qB(c[q>>2]|0);c[(c[o>>2]|0)+36>>2]=c[m>>2];c[(c[o>>2]|0)+32>>2]=c[k>>2];Pi(c[o>>2]|0);c[l>>2]=Qi(c[c[o>>2]>>2]|0,(c[o>>2]|0)+32|0,(c[k>>2]|0)-(c[m>>2]|0)|0)|0;c[n>>2]=c[l>>2];q=c[n>>2]|0;i=r;return q|0}if((c[(c[(c[o>>2]|0)+4>>2]|0)+24>>2]&65536|0)==0?(c[p>>2]|0)>(c[h>>2]|0):0){c[l>>2]=Lj(58503)|0;break}if((c[m>>2]|0)>>>0>=480){c[(c[o>>2]|0)+32>>2]=c[k>>2];c[(c[o>>2]|0)+36>>2]=c[m>>2];m=($q((c[j>>2]|0)+52|0)|0)!=0;a[(c[o>>2]|0)+17>>0]=m?1:0;m=($q((c[j>>2]|0)+64|0)|0)!=0;a[(c[o>>2]|0)+18>>0]=m?1:0;break a}}}}while(0);qB(c[q>>2]|0);c[(c[o>>2]|0)+12>>2]=0;c[n>>2]=c[l>>2];q=c[n>>2]|0;i=r;return q|0}while(0);b[(c[o>>2]|0)+24>>1]=(((c[(c[o>>2]|0)+36>>2]|0)-12<<6>>>0)/255|0)-23;b[(c[o>>2]|0)+26>>1]=(((c[(c[o>>2]|0)+36>>2]|0)-12<<5>>>0)/255|0)-23;b[(c[o>>2]|0)+28>>1]=(c[(c[o>>2]|0)+36>>2]|0)-35;b[(c[o>>2]|0)+30>>1]=(((c[(c[o>>2]|0)+36>>2]|0)-12<<5>>>0)/255|0)-23;g=c[o>>2]|0;if((e[(c[o>>2]|0)+24>>1]|0|0)>127)a[g+21>>0]=127;else a[(c[o>>2]|0)+21>>0]=b[g+24>>1];c[(c[o>>2]|0)+12>>2]=c[q>>2];c[(c[o>>2]|0)+44>>2]=c[p>>2];c[n>>2]=0;q=c[n>>2]|0;i=r;return q|0}function NM(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;h=m+16|0;j=m+12|0;k=m+8|0;g=m+4|0;l=m;c[j>>2]=b;c[k>>2]=e;c[g>>2]=f;c[l>>2]=0;if(c[(c[j>>2]|0)+44>>2]|0){c[h>>2]=c[(c[j>>2]|0)+44>>2];l=c[h>>2]|0;i=m;return l|0}a[(c[j>>2]|0)+22>>0]=c[g>>2];if((d[(c[j>>2]|0)+17>>0]|0|0)==1){f=(sr(c[j>>2]|0)|0)!=0;g=c[j>>2]|0;if(!f){c[l>>2]=vt(g,2)|0;if((c[l>>2]|0)==0&(c[k>>2]|0)!=0)c[l>>2]=ut(c[j>>2]|0,4)|0}else{do if((d[g+4>>0]|0|0)!=0?(vr(c[(c[j>>2]|0)+216>>2]|0,-1)|0)!=0:0){c[l>>2]=vt(c[j>>2]|0,4)|0;if(!(c[l>>2]|0)){vr(c[(c[j>>2]|0)+216>>2]|0,1)|0;break}c[h>>2]=c[l>>2];l=c[h>>2]|0;i=m;return l|0}while(0);c[l>>2]=OM(c[(c[j>>2]|0)+216>>2]|0)|0}if(!(c[l>>2]|0)){a[(c[j>>2]|0)+17>>0]=2;c[(c[j>>2]|0)+40>>2]=c[(c[j>>2]|0)+28>>2];c[(c[j>>2]|0)+36>>2]=c[(c[j>>2]|0)+28>>2];c[(c[j>>2]|0)+32>>2]=c[(c[j>>2]|0)+28>>2];k=(c[j>>2]|0)+80|0;c[k>>2]=0;c[k+4>>2]=0}}c[h>>2]=c[l>>2];l=c[h>>2]|0;i=m;return l|0}function OM(b){b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;e=g+4|0;f=g;c[e>>2]=b;if(a[(c[e>>2]|0)+46>>0]|0){c[d>>2]=8;f=c[d>>2]|0;i=g;return f|0}c[f>>2]=Ns(c[e>>2]|0,0,1)|0;if(c[f>>2]|0){c[d>>2]=c[f>>2];f=c[d>>2]|0;i=g;return f|0}a[(c[e>>2]|0)+44>>0]=1;b=(c[e>>2]|0)+52|0;if(vQ(b,ts(c[e>>2]|0)|0,48)|0){Br(c[e>>2]|0,0,1);a[(c[e>>2]|0)+44>>0]=0;c[f>>2]=517}c[d>>2]=c[f>>2];f=c[d>>2]|0;i=g;return f|0}function PM(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;fh(c[d>>2]|0);i=b;return}function QM(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;H=i;i=i+624|0;g=H+92|0;h=H+88|0;j=H+84|0;k=H+80|0;l=H+76|0;m=H+72|0;z=H+68|0;p=H+64|0;x=H+60|0;o=H+56|0;w=H+52|0;B=H+48|0;n=H+44|0;t=H+40|0;s=H+36|0;r=H+32|0;v=H+28|0;u=H+24|0;C=H+20|0;F=H+96|0;E=H+16|0;A=H+12|0;y=H+8|0;D=H+4|0;q=H;c[h>>2]=a;c[j>>2]=b;c[k>>2]=d;c[l>>2]=e;c[m>>2]=f;c[z>>2]=c[k>>2];c[p>>2]=-1;c[x>>2]=0;c[o>>2]=c[l>>2]&-256;c[B>>2]=0;c[n>>2]=0;c[t>>2]=c[l>>2]&16;c[s>>2]=c[l>>2]&8;c[r>>2]=c[l>>2]&4;c[v>>2]=c[l>>2]&1;c[u>>2]=c[l>>2]&2;if(c[r>>2]|0)if((c[o>>2]|0)==16384|(c[o>>2]|0)==2048)e=1;else e=(c[o>>2]|0)==524288;else e=0;c[C>>2]=e&1;c[E>>2]=c[j>>2];b=c[1926]|0;if((b|0)!=(LQ()|0)){c[1926]=LQ()|0;Sd(0,0)}e=c[z>>2]|0;d=e+44|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(d|0));e=c[E>>2]|0;do if((c[o>>2]|0)!=256){if(!e){c[B>>2]=FN(c[(c[h>>2]|0)+8>>2]|0,F)|0;if(!(c[B>>2]|0)){c[E>>2]=F;break}c[g>>2]=c[B>>2];G=c[g>>2]|0;i=H;return G|0}}else{c[A>>2]=WN(e,c[l>>2]|0)|0;if(!(c[A>>2]|0)){c[A>>2]=Jd(12,0)|0;if(!(c[A>>2]|0)){c[g>>2]=7;G=c[g>>2]|0;i=H;return G|0}}else c[p>>2]=c[c[A>>2]>>2];c[(c[z>>2]|0)+28>>2]=c[A>>2]}while(0);if(c[v>>2]|0)c[x>>2]=c[x>>2];if(c[u>>2]|0)c[x>>2]=c[x>>2]|2;if(c[r>>2]|0)c[x>>2]=c[x>>2]|64;if(c[t>>2]|0)c[x>>2]=c[x>>2]|131200;c[x>>2]=c[x>>2];do if((c[p>>2]|0)<0){c[B>>2]=XN(c[E>>2]|0,c[l>>2]|0,y,D,q)|0;if(c[B>>2]|0){c[g>>2]=c[B>>2];G=c[g>>2]|0;i=H;return G|0}c[p>>2]=BN(c[E>>2]|0,c[x>>2]|0,c[y>>2]|0)|0;if((c[p>>2]|0)<0?(F=(c[(SP()|0)>>2]|0)!=21,F&(c[u>>2]|0)!=0):0){c[l>>2]=c[l>>2]&-7;c[x>>2]=c[x>>2]&-67;c[l>>2]=c[l>>2]|1;c[x>>2]=c[x>>2];c[v>>2]=1;c[p>>2]=BN(c[E>>2]|0,c[x>>2]|0,c[y>>2]|0)|0}if((c[p>>2]|0)<0){F=et(33050)|0;c[B>>2]=xN(F,45571,c[E>>2]|0,33050)|0;break}if(c[l>>2]&526336){YN(c[p>>2]|0,c[D>>2]|0,c[q>>2]|0)|0;G=34}else G=34}else G=34;while(0);if((G|0)==34){if(c[m>>2]|0)c[c[m>>2]>>2]=c[l>>2];if(c[(c[z>>2]|0)+28>>2]|0){c[c[(c[z>>2]|0)+28>>2]>>2]=c[p>>2];c[(c[(c[z>>2]|0)+28>>2]|0)+4>>2]=c[l>>2]}if(c[s>>2]|0)Tb[c[7464>>2]&255](c[E>>2]|0)|0;c[w>>2]=(c[o>>2]|0)!=256&1;if(c[s>>2]|0)c[n>>2]=c[n>>2]|32;if(c[v>>2]|0)c[n>>2]=c[n>>2]|2;if(c[w>>2]|0)c[n>>2]=c[n>>2]|128;if(c[C>>2]|0)c[n>>2]=c[n>>2]|8;if(c[l>>2]&64)c[n>>2]=c[n>>2]|64;c[B>>2]=ZN(c[h>>2]|0,c[p>>2]|0,c[k>>2]|0,c[j>>2]|0,c[n>>2]|0)|0}if(c[B>>2]|0)Kd(c[(c[z>>2]|0)+28>>2]|0);c[g>>2]=c[B>>2];G=c[g>>2]|0;i=H;return G|0}function RM(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+20|0;f=k+12|0;g=k+8|0;j=k+4|0;h=k;c[k+16>>2]=a;c[f>>2]=b;c[g>>2]=d;c[j>>2]=0;if((Tb[c[7464>>2]&255](c[f>>2]|0)|0)==-1){if((c[(SP()|0)>>2]|0)==2)c[j>>2]=5898;else c[j>>2]=xN(2570,45668,c[f>>2]|0,33178)|0;c[e>>2]=c[j>>2];b=c[e>>2]|0;i=k;return b|0}do if(c[g>>2]&1){c[j>>2]=Yb[c[7476>>2]&255](c[f>>2]|0,h)|0;if(c[j>>2]|0){c[j>>2]=0;break}if(MN(c[h>>2]|0,0,0)|0)c[j>>2]=xN(1290,45902,c[f>>2]|0,33188)|0;wN(0,c[h>>2]|0,33190)}while(0);c[e>>2]=c[j>>2];b=c[e>>2]|0;i=k;return b|0}function SM(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;j=i;i=i+96|0;f=j+84|0;k=j+80|0;g=j+76|0;h=j;c[j+88>>2]=a;c[f>>2]=b;c[k>>2]=d;c[g>>2]=e;if(!(c[k>>2]|0)){k=0==(Yb[c[7320>>2]&255](c[f>>2]|0,h)|0);c[c[g>>2]>>2]=(k?(c[h+36>>2]|0)>0:0)&1;i=j;return 0}else{k=(Yb[c[7296>>2]&255](c[f>>2]|0,6)|0)==0&1;c[c[g>>2]>>2]=k;i=j;return 0}return 0}function TM(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;r=i;i=i+128|0;s=r+112|0;g=r+108|0;h=r+104|0;p=r+100|0;m=r+96|0;n=r+92|0;o=r+88|0;q=r+84|0;j=r+80|0;k=r+4|0;l=r;c[r+116>>2]=b;c[s>>2]=d;c[g>>2]=e;c[h>>2]=f;c[p>>2]=0;c[n>>2]=1;c[o>>2]=c[s>>2];c[q>>2]=0;while(1){c[j>>2]=0;if(Yb[c[7596>>2]&255](c[o>>2]|0,k)|0){if((c[(SP()|0)>>2]|0)!=2){s=et(33302)|0;c[p>>2]=xN(s,45756,c[o>>2]|0,33302)|0}}else c[j>>2]=(c[k+12>>2]&61440|0)==40960&1;if(c[j>>2]|0){if(!(c[q>>2]|0)){c[q>>2]=Id(c[g>>2]|0)|0;if(!(c[q>>2]|0))c[p>>2]=7}else{s=(c[n>>2]|0)+1|0;c[n>>2]=s;if((s|0)>100)c[p>>2]=et(33313)|0}do if(!(c[p>>2]|0)){c[m>>2]=Ob[c[7584>>2]&255](c[o>>2]|0,c[q>>2]|0,(c[g>>2]|0)-1|0)|0;if((c[m>>2]|0)<0){s=et(33319)|0;c[p>>2]=xN(s,45747,c[o>>2]|0,33319)|0;break}do if((a[c[q>>2]>>0]|0)!=47){c[l>>2]=If(c[o>>2]|0)|0;while(1){if((c[l>>2]|0)<=0)break;if((a[(c[o>>2]|0)+((c[l>>2]|0)-1)>>0]|0)==47)break;c[l>>2]=(c[l>>2]|0)+-1}if(((c[m>>2]|0)+(c[l>>2]|0)+1|0)>(c[g>>2]|0)){c[p>>2]=et(33325)|0;break}else{jR((c[q>>2]|0)+(c[l>>2]|0)|0,c[q>>2]|0,(c[m>>2]|0)+1|0)|0;iR(c[q>>2]|0,c[o>>2]|0,c[l>>2]|0)|0;c[m>>2]=(c[m>>2]|0)+(c[l>>2]|0);break}}while(0);a[(c[q>>2]|0)+(c[m>>2]|0)>>0]=0}while(0);c[o>>2]=c[q>>2]}if((c[p>>2]|0)==0?(c[o>>2]|0)!=(c[h>>2]|0):0)c[p>>2]=VN(c[o>>2]|0,c[h>>2]|0,c[g>>2]|0)|0;if(!(c[j>>2]|0)){g=30;break}c[o>>2]=c[h>>2];if(c[p>>2]|0){g=30;break}}if((g|0)==30){Kd(c[q>>2]|0);i=r;return c[p>>2]|0}return 0}function UM(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;f=l+16|0;g=l+12|0;h=l+8|0;j=l+4|0;k=l;c[l+20>>2]=b;c[f>>2]=d;c[g>>2]=e;kR(c[g>>2]|0,0,c[f>>2]|0)|0;c[1926]=LQ()|0;c[h>>2]=BN(45889,0,0)|0;if((c[h>>2]|0)<0){Fb(k|0)|0;e=c[g>>2]|0;a[e>>0]=a[k>>0]|0;a[e+1>>0]=a[k+1>>0]|0;a[e+2>>0]=a[k+2>>0]|0;a[e+3>>0]=a[k+3>>0]|0;e=(c[g>>2]|0)+4|0;a[e>>0]=a[7704]|0;a[e+1>>0]=a[7705]|0;a[e+2>>0]=a[7706]|0;a[e+3>>0]=a[7707]|0;c[f>>2]=8;e=c[f>>2]|0;i=l;return e|0}do{c[j>>2]=Ob[c[7368>>2]&255](c[h>>2]|0,c[g>>2]|0,c[f>>2]|0)|0;if((c[j>>2]|0)>=0)break}while((c[(SP()|0)>>2]|0)==4);wN(0,c[h>>2]|0,33449);e=c[f>>2]|0;i=l;return e|0}function VM(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=i;i=i+16|0;f=e+4|0;d=e;c[e+8>>2]=a;c[f>>2]=b;c[d>>2]=((c[f>>2]|0)+999999|0)/1e6|0;QQ(c[d>>2]|0)|0;i=e;return(c[d>>2]|0)*1e6|0}function WM(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+32|0;f=e+12|0;g=e;d=e+8|0;c[e+16>>2]=a;c[f>>2]=b;b=g;c[b>>2]=0;c[b+4>>2]=0;c[d>>2]=YM(0,g)|0;b=g;h[c[f>>2]>>3]=(+((c[b>>2]|0)>>>0)+4294967296.0*+(c[b+4>>2]|0))/864.0e5;i=e;return c[d>>2]|0}function XM(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=i;i=i+16|0;c[e+8>>2]=a;c[e+4>>2]=b;c[e>>2]=d;i=e;return 0}function YM(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=i;i=i+32|0;f=e+12|0;d=e+8|0;g=e;c[e+16>>2]=a;c[f>>2]=b;c[d>>2]=0;Hb(g|0,0)|0;b=c[g>>2]|0;b=rR(1e3,0,b|0,((b|0)<0)<<31>>31|0)|0;b=gR(1045635584,49096,b|0,C|0)|0;a=(c[g+4>>2]|0)/1e3|0;a=gR(b|0,C|0,a|0,((a|0)<0)<<31>>31|0)|0;b=c[f>>2]|0;c[b>>2]=a;c[b+4>>2]=C;i=e;return c[d>>2]|0}function ZM(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+12|0;f=k+8|0;g=k+4|0;h=k;c[k+16>>2]=a;c[e>>2]=b;c[f>>2]=d;c[h>>2]=12;if(!(c[e>>2]|0)){c[h>>2]=0;c[g>>2]=0;while(1){if((c[g>>2]|0)>>>0>=28)break;if(c[7268+((c[g>>2]|0)*12|0)+8>>2]|0)c[7268+((c[g>>2]|0)*12|0)+4>>2]=c[7268+((c[g>>2]|0)*12|0)+8>>2];c[g>>2]=(c[g>>2]|0)+1}j=c[h>>2]|0;i=k;return j|0}c[g>>2]=0;while(1){if((c[g>>2]|0)>>>0>=28){j=16;break}b=(yQ(c[e>>2]|0,c[7268+((c[g>>2]|0)*12|0)>>2]|0)|0)==0;d=c[g>>2]|0;if(b)break;c[g>>2]=d+1}if((j|0)==16){j=c[h>>2]|0;i=k;return j|0}if(!(c[7268+(d*12|0)+8>>2]|0))c[7268+((c[g>>2]|0)*12|0)+8>>2]=c[7268+((c[g>>2]|0)*12|0)+4>>2];c[h>>2]=0;if(!(c[f>>2]|0))c[f>>2]=c[7268+((c[g>>2]|0)*12|0)+8>>2];c[7268+((c[g>>2]|0)*12|0)+4>>2]=c[f>>2];j=c[h>>2]|0;i=k;return j|0}function _M(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;f=g+12|0;d=g+4|0;e=g;c[g+8>>2]=a;c[d>>2]=b;c[e>>2]=0;while(1){if((c[e>>2]|0)>>>0>=28){a=6;break}a=(yQ(c[d>>2]|0,c[7268+((c[e>>2]|0)*12|0)>>2]|0)|0)==0;b=c[e>>2]|0;if(a){a=4;break}c[e>>2]=b+1}if((a|0)==4){c[f>>2]=c[7268+(b*12|0)+4>>2];f=c[f>>2]|0;i=g;return f|0}else if((a|0)==6){c[f>>2]=0;f=c[f>>2]|0;i=g;return f|0}return 0}function $M(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;f=g+12|0;d=g+4|0;e=g;c[g+8>>2]=a;c[d>>2]=b;c[e>>2]=-1;a:do if(c[d>>2]|0){c[e>>2]=0;while(1){if((c[e>>2]|0)>=27)break a;if(!(yQ(c[d>>2]|0,c[7268+((c[e>>2]|0)*12|0)>>2]|0)|0))break a;c[e>>2]=(c[e>>2]|0)+1}}while(0);c[e>>2]=(c[e>>2]|0)+1;while(1){if((c[e>>2]|0)>=28){d=11;break}a=c[e>>2]|0;if(c[7268+((c[e>>2]|0)*12|0)+4>>2]|0){d=9;break}c[e>>2]=a+1}if((d|0)==9){c[f>>2]=c[7268+(a*12|0)>>2];f=c[f>>2]|0;i=g;return f|0}else if((d|0)==11){c[f>>2]=0;f=c[f>>2]|0;i=g;return f|0}return 0}function aN(a,b){a=a|0;b=b|0;var d=0;d=i;i=i+16|0;c[d+4>>2]=a;c[d>>2]=b;i=d;return 7192}function bN(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;d=b+4|0;e=b;c[d>>2]=a;c[e>>2]=c[d>>2];iN(c[d>>2]|0,0)|0;Kd(c[(c[e>>2]|0)+24>>2]|0);a=PN(c[d>>2]|0)|0;i=b;return a|0}function cN(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;m=i;i=i+32|0;g=m+28|0;o=m+24|0;h=m+20|0;j=m+16|0;n=m;l=m+12|0;k=m+8|0;c[o>>2]=a;c[h>>2]=b;c[j>>2]=d;b=n;c[b>>2]=e;c[b+4>>2]=f;c[l>>2]=c[o>>2];b=n;c[k>>2]=ON(c[l>>2]|0,c[b>>2]|0,c[b+4>>2]|0,c[h>>2]|0,c[j>>2]|0)|0;if((c[k>>2]|0)==(c[j>>2]|0)){c[g>>2]=0;o=c[g>>2]|0;i=m;return o|0}if((c[k>>2]|0)<0){c[g>>2]=266;o=c[g>>2]|0;i=m;return o|0}else{KN(c[l>>2]|0,0);kR((c[h>>2]|0)+(c[k>>2]|0)|0,0,(c[j>>2]|0)-(c[k>>2]|0)|0)|0;c[g>>2]=522;o=c[g>>2]|0;i=m;return o|0}return 0}function dN(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;n=i;i=i+32|0;g=n+28|0;o=n+24|0;h=n+20|0;j=n+16|0;k=n;l=n+12|0;m=n+8|0;c[o>>2]=a;c[h>>2]=b;c[j>>2]=d;b=k;c[b>>2]=e;c[b+4>>2]=f;c[l>>2]=c[o>>2];c[m>>2]=0;while(1){o=k;o=IN(c[l>>2]|0,c[o>>2]|0,c[o+4>>2]|0,c[h>>2]|0,c[j>>2]|0)|0;c[m>>2]=o;if(!((o|0)<(c[j>>2]|0)?(c[m>>2]|0)>0:0))break;c[j>>2]=(c[j>>2]|0)-(c[m>>2]|0);b=c[m>>2]|0;o=k;b=gR(c[o>>2]|0,c[o+4>>2]|0,b|0,((b|0)<0)<<31>>31|0)|0;o=k;c[o>>2]=b;c[o+4>>2]=C;c[h>>2]=(c[h>>2]|0)+(c[m>>2]|0)}if((c[j>>2]|0)<=(c[m>>2]|0)){c[g>>2]=0;o=c[g>>2]|0;i=n;return o|0}if((c[m>>2]|0)<0?(c[(c[l>>2]|0)+20>>2]|0)!=28:0){c[g>>2]=778;o=c[g>>2]|0;i=n;return o|0}KN(c[l>>2]|0,0);c[g>>2]=13;o=c[g>>2]|0;i=n;return o|0}function eN(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;j=i;i=i+32|0;e=j+20|0;k=j+16|0;f=j;g=j+12|0;h=j+8|0;c[k>>2]=a;a=f;c[a>>2]=b;c[a+4>>2]=d;c[g>>2]=c[k>>2];if((c[(c[g>>2]|0)+40>>2]|0)>0){k=f;a=c[(c[g>>2]|0)+40>>2]|0;a=gR(c[k>>2]|0,c[k+4>>2]|0,a|0,((a|0)<0)<<31>>31|0)|0;a=fR(a|0,C|0,1,0)|0;k=c[(c[g>>2]|0)+40>>2]|0;k=pR(a|0,C|0,k|0,((k|0)<0)<<31>>31|0)|0;a=c[(c[g>>2]|0)+40>>2]|0;a=rR(k|0,C|0,a|0,((a|0)<0)<<31>>31|0)|0;k=f;c[k>>2]=a;c[k+4>>2]=C}k=f;c[h>>2]=NN(c[(c[g>>2]|0)+12>>2]|0,c[k>>2]|0,c[k+4>>2]|0)|0;if(c[h>>2]|0){k=c[g>>2]|0;KN(k,c[(SP()|0)>>2]|0);c[e>>2]=xN(1546,45594,c[(c[g>>2]|0)+32>>2]|0,30893)|0;k=c[e>>2]|0;i=j;return k|0}else{c[e>>2]=0;k=c[e>>2]|0;i=j;return k|0}return 0}function fN(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;k=i;i=i+32|0;f=k+28|0;o=k+24|0;n=k+20|0;j=k+16|0;h=k+12|0;l=k+8|0;m=k+4|0;g=k;c[o>>2]=a;c[n>>2]=d;c[h>>2]=c[o>>2];c[l>>2]=c[n>>2]&16;c[m>>2]=(c[n>>2]&15|0)==3&1;c[j>>2]=MN(c[(c[h>>2]|0)+12>>2]|0,c[m>>2]|0,c[l>>2]|0)|0;d=c[h>>2]|0;if(c[j>>2]|0){KN(d,c[(SP()|0)>>2]|0);c[f>>2]=xN(1034,45878,c[(c[h>>2]|0)+32>>2]|0,30848)|0;o=c[f>>2]|0;i=k;return o|0}if((e[d+18>>1]|0)&8){c[j>>2]=Yb[c[7476>>2]&255](c[(c[h>>2]|0)+32>>2]|0,g)|0;if(!(c[j>>2]|0)){MN(c[g>>2]|0,0,0)|0;wN(c[h>>2]|0,c[g>>2]|0,30862)}else c[j>>2]=0;o=(c[h>>2]|0)+18|0;b[o>>1]=(e[o>>1]|0)&-9}c[f>>2]=c[j>>2];o=c[f>>2]|0;i=k;return o|0}function gN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;h=i;i=i+96|0;d=h+88|0;e=h+84|0;f=h+80|0;j=h+76|0;g=h;c[e>>2]=a;c[f>>2]=b;c[j>>2]=Yb[c[7332>>2]&255](c[(c[e>>2]|0)+12>>2]|0,g)|0;if(c[j>>2]|0){j=c[e>>2]|0;KN(j,c[(SP()|0)>>2]|0);c[d>>2]=1802;j=c[d>>2]|0;i=h;return j|0}b=c[g+36>>2]|0;j=c[f>>2]|0;c[j>>2]=b;c[j+4>>2]=((b|0)<0)<<31>>31;j=c[f>>2]|0;if((c[j>>2]|0)==1&(c[j+4>>2]|0)==0){j=c[f>>2]|0;c[j>>2]=0;c[j+4>>2]=0}c[d>>2]=0;j=c[d>>2]|0;i=h;return j|0}function hN(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+32|0;f=m+24|0;n=m+20|0;g=m+16|0;h=m+12|0;l=m+8|0;j=m+4|0;k=m;c[n>>2]=b;c[g>>2]=e;c[h>>2]=c[n>>2];c[l>>2]=c[(c[h>>2]|0)+24>>2];c[j>>2]=0;if((d[(c[h>>2]|0)+16>>0]|0|0)>0){a[(c[h>>2]|0)+16>>0]=c[g>>2];Ha(c[l>>2]|0,0)|0;c[f>>2]=0;n=c[f>>2]|0;i=m;return n|0}c[j>>2]=Yb[c[7488>>2]&255](c[l>>2]|0,511)|0;if((c[j>>2]|0)>=0){a[(c[h>>2]|0)+16>>0]=c[g>>2];c[f>>2]=c[j>>2];n=c[f>>2]|0;i=m;return n|0}c[k>>2]=c[(SP()|0)>>2];if(17!=(c[k>>2]|0)){c[j>>2]=LN(c[k>>2]|0,3850)|0;if((c[j>>2]|0)!=5)KN(c[h>>2]|0,c[k>>2]|0)}else c[j>>2]=5;c[f>>2]=c[j>>2];n=c[f>>2]|0;i=m;return n|0}function iN(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+32|0;f=m+24|0;n=m+20|0;g=m+16|0;h=m+12|0;l=m+8|0;j=m+4|0;k=m;c[n>>2]=b;c[g>>2]=e;c[h>>2]=c[n>>2];c[l>>2]=c[(c[h>>2]|0)+24>>2];if((d[(c[h>>2]|0)+16>>0]|0|0)==(c[g>>2]|0)){c[f>>2]=0;n=c[f>>2]|0;i=m;return n|0}if((c[g>>2]|0)==1){a[(c[h>>2]|0)+16>>0]=1;c[f>>2]=0;n=c[f>>2]|0;i=m;return n|0}c[j>>2]=Tb[c[7500>>2]&255](c[l>>2]|0)|0;if((c[j>>2]|0)>=0){a[(c[h>>2]|0)+16>>0]=0;c[f>>2]=0;n=c[f>>2]|0;i=m;return n|0}c[k>>2]=c[(SP()|0)>>2];if((c[k>>2]|0)==2)c[j>>2]=0;else{c[j>>2]=2058;KN(c[h>>2]|0,c[k>>2]|0)}c[f>>2]=c[j>>2];n=c[f>>2]|0;i=m;return n|0}function jN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;e=i;i=i+32|0;j=e+16|0;f=e+12|0;d=e+8|0;g=e+4|0;h=e;c[j>>2]=a;c[f>>2]=b;c[d>>2]=0;c[g>>2]=0;c[h>>2]=c[j>>2];c[g>>2]=(Yb[c[7296>>2]&255](c[(c[h>>2]|0)+24>>2]|0,0)|0)==0&1;c[c[f>>2]>>2]=c[g>>2];i=e;return c[d>>2]|0}function kN(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;m=i;i=i+32|0;k=m;f=m+28|0;o=m+24|0;n=m+20|0;g=m+16|0;h=m+12|0;j=m+8|0;l=m+4|0;c[o>>2]=a;c[n>>2]=b;c[g>>2]=e;c[h>>2]=c[o>>2];do switch(c[n>>2]|0){case 1:{c[c[g>>2]>>2]=d[(c[h>>2]|0)+16>>0];c[f>>2]=0;break}case 4:{c[c[g>>2]>>2]=c[(c[h>>2]|0)+20>>2];c[f>>2]=0;break}case 6:{c[(c[h>>2]|0)+40>>2]=c[c[g>>2]>>2];c[f>>2]=0;break}case 5:{o=c[g>>2]|0;c[j>>2]=DN(c[h>>2]|0,c[o>>2]|0,c[o+4>>2]|0)|0;c[f>>2]=c[j>>2];break}case 10:{EN(c[h>>2]|0,4,c[g>>2]|0);c[f>>2]=0;break}case 13:{EN(c[h>>2]|0,16,c[g>>2]|0);c[f>>2]=0;break}case 12:{c[k>>2]=c[(c[(c[h>>2]|0)+4>>2]|0)+16>>2];o=Od(19255,k)|0;c[c[g>>2]>>2]=o;c[f>>2]=0;break}case 16:{o=c[(c[(c[h>>2]|0)+4>>2]|0)+8>>2]|0;c[l>>2]=Jd(o,((o|0)<0)<<31>>31)|0;if(c[l>>2]|0){FN(c[(c[(c[h>>2]|0)+4>>2]|0)+8>>2]|0,c[l>>2]|0)|0;c[c[g>>2]>>2]=c[l>>2]}c[f>>2]=0;break}case 20:{o=GN(c[h>>2]|0)|0;c[c[g>>2]>>2]=o;c[f>>2]=0;break}default:c[f>>2]=12}while(0);i=m;return c[f>>2]|0}function lN(a){a=a|0;var b=0;b=i;i=i+16|0;c[b>>2]=a;i=b;return 4096}function mN(a){a=a|0;var b=0,d=0,f=0,g=0;d=i;i=i+16|0;g=d+8|0;f=d+4|0;b=d;c[g>>2]=a;c[f>>2]=c[g>>2];c[b>>2]=0;if(!((e[(c[f>>2]|0)+18>>1]|0)&16)){g=c[b>>2]|0;i=d;return g|0}c[b>>2]=c[b>>2]|4096;g=c[b>>2]|0;i=d;return g|0}function nN(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;u=i;i=i+48|0;v=u+32|0;h=u+28|0;j=u+24|0;k=u+20|0;p=u+16|0;o=u+12|0;r=u+8|0;q=u+4|0;s=u;n=u+40|0;l=u+38|0;m=u+36|0;c[v>>2]=a;c[h>>2]=d;c[j>>2]=f;c[k>>2]=g;c[p>>2]=c[v>>2];c[o>>2]=c[(c[p>>2]|0)+36>>2];c[q>>2]=c[c[o>>2]>>2];c[s>>2]=0;b[n>>1]=(1<<(c[h>>2]|0)+(c[j>>2]|0))-(1<<c[h>>2]);if(c[k>>2]&1){b[l>>1]=0;c[r>>2]=c[(c[q>>2]|0)+32>>2];while(1){if(!(c[r>>2]|0))break;if((c[r>>2]|0)!=(c[o>>2]|0))b[l>>1]=e[l>>1]|0|(e[(c[r>>2]|0)+10>>1]|0);c[r>>2]=c[(c[r>>2]|0)+4>>2]}if(!((e[n>>1]|0)&(e[l>>1]|0)))c[s>>2]=CN(c[p>>2]|0,2,(c[h>>2]|0)+120|0,c[j>>2]|0)|0;else c[s>>2]=0;if(c[s>>2]|0){v=c[s>>2]|0;i=u;return v|0}v=(c[o>>2]|0)+12|0;b[v>>1]=(e[v>>1]|0)&~(e[n>>1]|0);v=(c[o>>2]|0)+10|0;b[v>>1]=(e[v>>1]|0)&~(e[n>>1]|0);v=c[s>>2]|0;i=u;return v|0}if(!(c[k>>2]&4)){c[r>>2]=c[(c[q>>2]|0)+32>>2];while(1){if(!(c[r>>2]|0))break;if((e[(c[r>>2]|0)+12>>1]|0)&(e[n>>1]|0)){t=28;break}if((e[(c[r>>2]|0)+10>>1]|0)&(e[n>>1]|0)){t=28;break}c[r>>2]=c[(c[r>>2]|0)+4>>2]}if((t|0)==28)c[s>>2]=5;if(c[s>>2]|0){v=c[s>>2]|0;i=u;return v|0}c[s>>2]=CN(c[p>>2]|0,1,(c[h>>2]|0)+120|0,c[j>>2]|0)|0;if(c[s>>2]|0){v=c[s>>2]|0;i=u;return v|0}v=(c[o>>2]|0)+12|0;b[v>>1]=e[v>>1]|0|(e[n>>1]|0);v=c[s>>2]|0;i=u;return v|0}b[m>>1]=0;c[r>>2]=c[(c[q>>2]|0)+32>>2];while(1){if(!(c[r>>2]|0))break;if((e[(c[r>>2]|0)+12>>1]|0)&(e[n>>1]|0)){t=16;break}b[m>>1]=e[m>>1]|0|(e[(c[r>>2]|0)+10>>1]|0);c[r>>2]=c[(c[r>>2]|0)+4>>2]}if((t|0)==16)c[s>>2]=5;do if(!(c[s>>2]|0))if(!((e[m>>1]|0)&(e[n>>1]|0))){c[s>>2]=CN(c[p>>2]|0,0,(c[h>>2]|0)+120|0,c[j>>2]|0)|0;break}else{c[s>>2]=0;break}while(0);if(c[s>>2]|0){v=c[s>>2]|0;i=u;return v|0}v=(c[o>>2]|0)+10|0;b[v>>1]=e[v>>1]|0|(e[n>>1]|0);v=c[s>>2]|0;i=u;return v|0}function oN(a){a=a|0;var b=0;b=i;i=i+16|0;c[b>>2]=a;sN();uN();i=b;return}function pN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;d=k+24|0;l=k+20|0;e=k+16|0;f=k+12|0;h=k+8|0;j=k+4|0;g=k;c[l>>2]=a;c[e>>2]=b;c[g>>2]=c[l>>2];c[f>>2]=c[(c[g>>2]|0)+36>>2];if(!(c[f>>2]|0)){c[d>>2]=0;l=c[d>>2]|0;i=k;return l|0}c[h>>2]=c[c[f>>2]>>2];c[j>>2]=(c[h>>2]|0)+32;while(1){if((c[c[j>>2]>>2]|0)==(c[f>>2]|0))break;c[j>>2]=(c[c[j>>2]>>2]|0)+4}c[c[j>>2]>>2]=c[(c[f>>2]|0)+4>>2];Kd(c[f>>2]|0);c[(c[g>>2]|0)+36>>2]=0;sN();l=(c[h>>2]|0)+28|0;c[l>>2]=(c[l>>2]|0)+-1;if(!(c[(c[h>>2]|0)+28>>2]|0)){if((c[e>>2]|0)!=0?(c[(c[h>>2]|0)+12>>2]|0)>=0:0)Tb[c[7464>>2]&255](c[(c[h>>2]|0)+8>>2]|0)|0;tN(c[g>>2]|0)}uN();c[d>>2]=0;l=c[d>>2]|0;i=k;return l|0}function qN(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=i;i=i+32|0;h=g+8|0;c[g+16>>2]=a;a=g;c[a>>2]=b;c[a+4>>2]=d;c[g+12>>2]=e;c[h>>2]=f;c[c[h>>2]>>2]=0;i=g;return 0}function rN(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=i;i=i+16|0;c[f+12>>2]=a;a=f;c[a>>2]=b;c[a+4>>2]=d;c[f+8>>2]=e;i=f;return 0}function sN(){return}function tN(a){a=a|0;var b=0,d=0,f=0,g=0,h=0;h=i;i=i+16|0;b=h+12|0;g=h+8|0;f=h+4|0;d=h;c[b>>2]=a;c[g>>2]=c[(c[(c[b>>2]|0)+8>>2]|0)+20>>2];if(!(c[g>>2]|0)){i=h;return}if(c[(c[g>>2]|0)+28>>2]|0){i=h;return}c[f>>2]=vN()|0;c[d>>2]=0;while(1){a=c[g>>2]|0;if((c[d>>2]|0)>=(e[(c[g>>2]|0)+20>>1]|0|0))break;if((c[a+12>>2]|0)>=0)Yb[c[7548>>2]&255](c[(c[(c[g>>2]|0)+24>>2]|0)+(c[d>>2]<<2)>>2]|0,c[(c[g>>2]|0)+16>>2]|0)|0;else Kd(c[(c[(c[g>>2]|0)+24>>2]|0)+(c[d>>2]<<2)>>2]|0);c[d>>2]=(c[d>>2]|0)+(c[f>>2]|0)}Kd(c[a+24>>2]|0);if((c[(c[g>>2]|0)+12>>2]|0)>=0){wN(c[b>>2]|0,c[(c[g>>2]|0)+12>>2]|0,31469);c[(c[g>>2]|0)+12>>2]=-1}c[(c[c[g>>2]>>2]|0)+20>>2]=0;Kd(c[g>>2]|0);i=h;return}function uN(){return}function vN(){var a=0,b=0,d=0,e=0;e=i;i=i+16|0;a=e+8|0;d=e+4|0;b=e;c[d>>2]=32768;c[b>>2]=Pb[c[7572>>2]&255]()|0;if((c[b>>2]|0)<(c[d>>2]|0)){c[a>>2]=1;d=c[a>>2]|0;i=e;return d|0}else{c[a>>2]=(c[b>>2]|0)/(c[d>>2]|0)|0;d=c[a>>2]|0;i=e;return d|0}return 0}function wN(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+16|0;e=g+8|0;h=g+4|0;f=g;c[e>>2]=a;c[h>>2]=b;c[f>>2]=d;if(!(Tb[c[7284>>2]&255](c[h>>2]|0)|0)){i=g;return}if(c[e>>2]|0)e=c[(c[e>>2]|0)+32>>2]|0;else e=0;xN(4106,45534,e,c[f>>2]|0)|0;i=g;return}function xN(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+48|0;l=n;f=n+40|0;g=n+36|0;h=n+32|0;j=n+28|0;m=n+24|0;k=n+20|0;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[k>>2]=c[(SP()|0)>>2];c[m>>2]=TP(c[k>>2]|0)|0;if(!(c[h>>2]|0))c[h>>2]=19266;d=c[f>>2]|0;a=c[k>>2]|0;k=c[g>>2]|0;e=c[h>>2]|0;b=c[m>>2]|0;c[l>>2]=c[j>>2];c[l+4>>2]=a;c[l+8>>2]=k;c[l+12>>2]=e;c[l+16>>2]=b;Rd(d,45540,l);i=n;return c[f>>2]|0}function yN(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|0;f=e;j=e+12|0;h=e+8|0;g=e+4|0;c[j>>2]=a;c[h>>2]=b;c[g>>2]=d;d=c[j>>2]|0;a=c[h>>2]|0;c[f>>2]=c[g>>2];a=VP(d,a,f)|0;i=e;return a|0}function zN(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;k=i;i=i+544|0;l=k;e=k+20|0;m=k+16|0;f=k+12|0;h=k+8|0;g=k+4|0;j=k+24|0;c[m>>2]=b;c[f>>2]=d;c[g>>2]=-1;c[l>>2]=c[m>>2];Qd(512,j,19255,l)|0;c[h>>2]=BQ(j)|0;while(1){if((c[h>>2]|0)<=0)break;if((a[j+(c[h>>2]|0)>>0]|0)==47)break;c[h>>2]=(c[h>>2]|0)+-1}if((c[h>>2]|0)>0)a[j+(c[h>>2]|0)>>0]=0;else{if((a[j>>0]|0)!=47)a[j>>0]=46;a[j+1>>0]=0}c[g>>2]=BN(j,0,0)|0;c[c[f>>2]>>2]=c[g>>2];if((c[g>>2]|0)>=0){c[e>>2]=0;m=c[e>>2]|0;i=k;return m|0}else{c[e>>2]=xN(et(30807)|0,45675,j,30807)|0;m=c[e>>2]|0;i=k;return m|0}return 0}function AN(){return ib(30)|0}function BN(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+112|0;l=m;e=m+100|0;f=m+96|0;g=m+92|0;h=m+88|0;j=m+84|0;k=m+8|0;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[j>>2]=(c[g>>2]|0)!=0?c[g>>2]|0:420;while(1){c[h>>2]=Ob[c[7272>>2]&255](c[e>>2]|0,c[f>>2]|524288,c[j>>2]|0)|0;if((c[h>>2]|0)<0)if((c[(SP()|0)>>2]|0)==4)continue;else break;if((c[h>>2]|0)>=3)break;Tb[c[7284>>2]&255](c[h>>2]|0)|0;a=c[h>>2]|0;c[l>>2]=c[e>>2];c[l+4>>2]=a;Rd(28,45762,l);c[h>>2]=-1;if((Ob[c[7272>>2]&255](45805,c[f>>2]|0,c[g>>2]|0)|0)<0)break}if(!((c[h>>2]|0)>=0&(c[g>>2]|0)!=0)){a=c[h>>2]|0;i=m;return a|0}if(Yb[c[7332>>2]&255](c[h>>2]|0,k)|0){a=c[h>>2]|0;i=m;return a|0}if(c[k+36>>2]|0){a=c[h>>2]|0;i=m;return a|0}if((c[k+12>>2]&511|0)==(c[g>>2]|0)){a=c[h>>2]|0;i=m;return a|0}Yb[c[7440>>2]&255](c[h>>2]|0,c[g>>2]|0)|0;a=c[h>>2]|0;i=m;return a|0}function CN(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=i;i=i+48|0;n=o;p=o+40|0;g=o+36|0;h=o+32|0;j=o+28|0;l=o+24|0;k=o+8|0;m=o+4|0;c[p>>2]=a;c[g>>2]=d;c[h>>2]=e;c[j>>2]=f;c[m>>2]=0;c[l>>2]=c[(c[(c[p>>2]|0)+8>>2]|0)+20>>2];if((c[(c[l>>2]|0)+12>>2]|0)<0){p=c[m>>2]|0;i=o;return p|0}c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;c[k+12>>2]=0;b[k>>1]=c[g>>2];b[k+2>>1]=0;c[k+4>>2]=c[h>>2];c[k+8>>2]=c[j>>2];a=c[1839]|0;p=c[(c[l>>2]|0)+12>>2]|0;c[n>>2]=k;c[m>>2]=Ob[a&255](p,13,n)|0;c[m>>2]=(c[m>>2]|0)!=-1?0:5;p=c[m>>2]|0;i=o;return p|0}function DN(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+128|0;e=n+112|0;f=n+108|0;g=n+16|0;l=n+8|0;h=n+32|0;k=n+28|0;m=n+24|0;j=n;c[f>>2]=a;a=g;c[a>>2]=b;c[a+4>>2]=d;a:do if((c[(c[f>>2]|0)+40>>2]|0)>0){if(Yb[c[7332>>2]&255](c[(c[f>>2]|0)+12>>2]|0,h)|0){c[e>>2]=1802;a=c[e>>2]|0;i=n;return a|0}b=c[(c[f>>2]|0)+40>>2]|0;b=gR(c[g>>2]|0,c[g+4>>2]|0,b|0,((b|0)<0)<<31>>31|0)|0;b=fR(b|0,C|0,1,0)|0;g=c[(c[f>>2]|0)+40>>2]|0;g=pR(b|0,C|0,g|0,((g|0)<0)<<31>>31|0)|0;b=c[(c[f>>2]|0)+40>>2]|0;b=rR(g|0,C|0,b|0,((b|0)<0)<<31>>31|0)|0;g=l;c[g>>2]=b;c[g+4>>2]=C;g=l;b=c[g+4>>2]|0;a=c[h+36>>2]|0;d=((a|0)<0)<<31>>31;if((b|0)>(d|0)|((b|0)==(d|0)?(c[g>>2]|0)>>>0>a>>>0:0)){c[k>>2]=c[h+40>>2];c[m>>2]=0;h=_((c[h+36>>2]|0)/(c[k>>2]|0)|0,c[k>>2]|0)|0;h=h+(c[k>>2]|0)-1|0;a=j;c[a>>2]=h;c[a+4>>2]=((h|0)<0)<<31>>31;while(1){d=j;h=c[d>>2]|0;d=c[d+4>>2]|0;g=l;a=c[k>>2]|0;a=gR(c[g>>2]|0,c[g+4>>2]|0,a|0,((a|0)<0)<<31>>31|0)|0;a=fR(a|0,C|0,1,0)|0;g=C;if(!((d|0)<(g|0)|(d|0)==(g|0)&h>>>0<a>>>0))break a;h=j;d=c[h+4>>2]|0;a=l;g=c[a+4>>2]|0;if((d|0)>(g|0)|((d|0)==(g|0)?(c[h>>2]|0)>>>0>=(c[a>>2]|0)>>>0:0)){h=l;h=fR(c[h>>2]|0,c[h+4>>2]|0,1,0)|0;a=j;c[a>>2]=h;c[a+4>>2]=C}a=j;c[m>>2]=IN(c[f>>2]|0,c[a>>2]|0,c[a+4>>2]|0,19266,1)|0;if((c[m>>2]|0)!=1)break;h=c[k>>2]|0;a=j;h=gR(c[a>>2]|0,c[a+4>>2]|0,h|0,((h|0)<0)<<31>>31|0)|0;a=j;c[a>>2]=h;c[a+4>>2]=C}c[e>>2]=778;a=c[e>>2]|0;i=n;return a|0}}while(0);c[e>>2]=0;a=c[e>>2]|0;i=n;return a|0}function EN(f,g,h){f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0;m=i;i=i+16|0;k=m+4|0;j=m+8|0;l=m;c[k>>2]=f;a[j>>0]=g;c[l>>2]=h;if((c[c[l>>2]>>2]|0)<0){c[c[l>>2]>>2]=((e[(c[k>>2]|0)+18>>1]|0)&(d[j>>0]|0)|0)!=0&1;i=m;return}j=d[j>>0]|0;if(!(c[c[l>>2]>>2]|0)){l=(c[k>>2]|0)+18|0;b[l>>1]=(e[l>>1]|0)&~j;i=m;return}else{l=(c[k>>2]|0)+18|0;b[l>>1]=e[l>>1]|0|j;i=m;return}}function FN(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;m=i;i=i+64|0;j=m+8|0;l=m+48|0;e=m+44|0;f=m+40|0;k=m+36|0;g=m+32|0;h=m;c[e>>2]=b;c[f>>2]=d;c[g>>2]=0;c[k>>2]=HN()|0;while(1){Sd(8,h);a[(c[f>>2]|0)+((c[e>>2]|0)-2)>>0]=0;b=c[e>>2]|0;d=c[f>>2]|0;o=h;p=c[o>>2]|0;o=c[o+4>>2]|0;c[j>>2]=c[k>>2];n=j+8|0;c[n>>2]=p;c[n+4>>2]=o;c[j+16>>2]=0;Qd(b,d,45815,j)|0;if(a[(c[f>>2]|0)+((c[e>>2]|0)-2)>>0]|0){e=4;break}p=c[g>>2]|0;c[g>>2]=p+1;if((p|0)>10){e=4;break}if(Yb[c[7296>>2]&255](c[f>>2]|0,0)|0){e=6;break}}if((e|0)==4){c[l>>2]=1;p=c[l>>2]|0;i=m;return p|0}else if((e|0)==6){c[l>>2]=0;p=c[l>>2]|0;i=m;return p|0}return 0}function GN(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+80|0;b=e+76|0;d=e;c[b>>2]=a;if(!(c[(c[b>>2]|0)+8>>2]|0)){a=0;a=a&1;i=e;return a|0}if(Yb[c[7320>>2]&255](c[(c[b>>2]|0)+32>>2]|0,d)|0){a=1;a=a&1;i=e;return a|0}a=(c[d+72>>2]|0)!=(c[(c[(c[b>>2]|0)+8>>2]|0)+4>>2]|0);a=a&1;i=e;return a|0}function HN(){var a=0,b=0,d=0,e=0,f=0;e=i;i=i+96|0;b=e+80|0;a=e+4|0;d=e;c[d>>2]=c[241];if(!(c[1901]|0))c[1901]=rb(45832)|0;if(!(c[1902]|0))c[1902]=rb(45846)|0;c[b>>2]=0;while(1){if((c[b>>2]|0)>>>0>=6){a=12;break}if((((c[d>>2]|0)!=0?(Yb[c[7320>>2]&255](c[d>>2]|0,a)|0)==0:0)?(c[a+12>>2]&61440|0)==16384:0)?(Yb[c[7296>>2]&255](c[d>>2]|0,7)|0)==0:0){a=12;break}f=c[b>>2]|0;c[b>>2]=f+1;c[d>>2]=c[7604+(f<<2)>>2]}if((a|0)==12){i=e;return c[d>>2]|0}return 0}function IN(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;g=i;i=i+32|0;h=g+16|0;l=g;k=g+12|0;j=g+8|0;c[h>>2]=a;a=l;c[a>>2]=b;c[a+4>>2]=d;c[k>>2]=e;c[j>>2]=f;e=l;e=JN(c[(c[h>>2]|0)+12>>2]|0,c[e>>2]|0,c[e+4>>2]|0,c[k>>2]|0,c[j>>2]|0,(c[h>>2]|0)+20|0)|0;i=g;return e|0}function JN(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;h=q+32|0;j=q+8|0;k=q+28|0;l=q+24|0;m=q+20|0;o=q+16|0;n=q;c[h>>2]=a;a=j;c[a>>2]=b;c[a+4>>2]=d;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;c[o>>2]=0;c[l>>2]=c[l>>2]&131071;do{e=MQ(c[h>>2]|0,c[j>>2]|0,0)|0;g=n;c[g>>2]=e;c[g+4>>2]=((e|0)<0)<<31>>31;if((c[n+4>>2]|0)<0){p=3;break}c[o>>2]=Ob[c[7404>>2]&255](c[h>>2]|0,c[k>>2]|0,c[l>>2]|0)|0;if((c[o>>2]|0)>=0)break}while((c[(SP()|0)>>2]|0)==4);if((p|0)==3)c[o>>2]=-1;if((c[o>>2]|0)>=0){p=c[o>>2]|0;i=q;return p|0}p=c[(SP()|0)>>2]|0;c[c[m>>2]>>2]=p;p=c[o>>2]|0;i=q;return p|0}function KN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;c[(c[e>>2]|0)+20>>2]=c[f>>2];i=d;return}function LN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=i;i=i+16|0;d=f+8|0;g=f+4|0;e=f;c[g>>2]=a;c[e>>2]=b;switch(c[g>>2]|0){
  67. case 37:case 4:case 16:case 110:case 11:case 13:{c[d>>2]=5;break}case 1:{c[d>>2]=3;break}default:c[d>>2]=c[e>>2]}i=f;return c[d>>2]|0}function MN(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=i;i=i+16|0;g=f+12|0;e=f;c[g>>2]=a;c[f+8>>2]=b;c[f+4>>2]=d;c[e>>2]=HQ(c[g>>2]|0)|0;i=f;return c[e>>2]|0}function NN(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+12|0;f=h;g=h+8|0;c[e>>2]=a;a=f;c[a>>2]=b;c[a+4>>2]=d;while(1){c[g>>2]=Yb[c[7344>>2]&255](c[e>>2]|0,c[f>>2]|0)|0;if((c[g>>2]|0)>=0){b=4;break}if((c[(SP()|0)>>2]|0)!=4){b=4;break}}if((b|0)==4){i=h;return c[g>>2]|0}return 0}function ON(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;g=q+36|0;h=q+32|0;j=q+8|0;k=q+28|0;l=q+24|0;m=q+20|0;o=q+16|0;n=q;c[h>>2]=a;a=j;c[a>>2]=b;c[a+4>>2]=d;c[k>>2]=e;c[l>>2]=f;c[o>>2]=0;do{a=MQ(c[(c[h>>2]|0)+12>>2]|0,c[j>>2]|0,0)|0;e=n;c[e>>2]=a;c[e+4>>2]=((a|0)<0)<<31>>31;if((c[n+4>>2]|0)<0){p=3;break}c[m>>2]=Ob[c[7368>>2]&255](c[(c[h>>2]|0)+12>>2]|0,c[k>>2]|0,c[l>>2]|0)|0;if((c[m>>2]|0)==(c[l>>2]|0))break;if((c[m>>2]|0)>=0){if((c[m>>2]|0)>0){c[l>>2]=(c[l>>2]|0)-(c[m>>2]|0);a=c[m>>2]|0;e=j;a=gR(c[e>>2]|0,c[e+4>>2]|0,a|0,((a|0)<0)<<31>>31|0)|0;e=j;c[e>>2]=a;c[e+4>>2]=C;c[o>>2]=(c[o>>2]|0)+(c[m>>2]|0);c[k>>2]=(c[k>>2]|0)+(c[m>>2]|0)}}else{if((c[(SP()|0)>>2]|0)!=4){p=8;break}c[m>>2]=1}}while((c[m>>2]|0)>0);if((p|0)==3){p=c[h>>2]|0;KN(p,c[(SP()|0)>>2]|0);c[g>>2]=-1;p=c[g>>2]|0;i=q;return p|0}else if((p|0)==8){c[o>>2]=0;p=c[h>>2]|0;KN(p,c[(SP()|0)>>2]|0)}c[g>>2]=(c[m>>2]|0)+(c[o>>2]|0);p=c[g>>2]|0;i=q;return p|0}function PN(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;c[b>>2]=c[e>>2];if((c[(c[b>>2]|0)+12>>2]|0)>=0){wN(c[b>>2]|0,c[(c[b>>2]|0)+12>>2]|0,29216);c[(c[b>>2]|0)+12>>2]=-1}Kd(c[(c[b>>2]|0)+28>>2]|0);a=c[b>>2]|0;b=a+44|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(b|0));i=d;return 0}function QN(a,b){a=a|0;b=b|0;var d=0;d=i;i=i+16|0;c[d+4>>2]=a;c[d>>2]=b;i=d;return 7628}function RN(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=PN(c[d>>2]|0)|0;i=b;return a|0}function SN(a,b){a=a|0;b=b|0;var d=0;d=i;i=i+16|0;c[d+4>>2]=a;c[d>>2]=b;i=d;return 0}function TN(a,b){a=a|0;b=b|0;var d=0;d=i;i=i+16|0;c[d+4>>2]=a;c[d>>2]=b;i=d;return 0}function UN(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[d+4>>2]=a;c[e>>2]=b;c[c[e>>2]>>2]=0;i=d;return 0}function VN(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;m=n;f=n+24|0;g=n+20|0;h=n+16|0;j=n+12|0;l=n+8|0;k=n+4|0;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[l>>2]=If(c[g>>2]|0)|0;c[k>>2]=0;do if((a[c[g>>2]>>0]|0)!=47){if(Yb[c[7308>>2]&255](c[h>>2]|0,(c[j>>2]|0)-2|0)|0){c[k>>2]=If(c[h>>2]|0)|0;b=c[k>>2]|0;c[k>>2]=b+1;a[(c[h>>2]|0)+b>>0]=47;break}b=et(33245)|0;c[f>>2]=xN(b,45576,c[g>>2]|0,33245)|0;b=c[f>>2]|0;i=n;return b|0}while(0);if(((c[k>>2]|0)+(c[l>>2]|0)+1|0)>(c[j>>2]|0)){a[(c[h>>2]|0)+(c[k>>2]|0)>>0]=0;c[f>>2]=et(33254)|0;b=c[f>>2]|0;i=n;return b|0}else{d=(c[j>>2]|0)-(c[k>>2]|0)|0;b=(c[h>>2]|0)+(c[k>>2]|0)|0;c[m>>2]=c[g>>2];Qd(d,b,19255,m)|0;c[f>>2]=0;b=c[f>>2]|0;i=n;return b|0}return 0}function WN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;j=i;i=i+96|0;k=j+92|0;d=j+88|0;f=j+84|0;h=j+8|0;e=j+4|0;g=j;c[k>>2]=a;c[d>>2]=b;c[f>>2]=0;if(Yb[c[7320>>2]&255](c[k>>2]|0,h)|0){k=c[f>>2]|0;i=j;return k|0}sN();c[e>>2]=c[1946];while(1){if(c[e>>2]|0)if((c[c[e>>2]>>2]|0)!=(c[h>>2]|0))a=1;else a=(c[(c[e>>2]|0)+4>>2]|0)!=(c[h+72>>2]|0);else a=0;b=c[e>>2]|0;if(!a)break;c[e>>2]=c[b+32>>2]}if(b){c[g>>2]=(c[e>>2]|0)+28;while(1){if(!(c[c[g>>2]>>2]|0))break;if((c[(c[c[g>>2]>>2]|0)+4>>2]|0)==(c[d>>2]|0))break;c[g>>2]=(c[c[g>>2]>>2]|0)+8}c[f>>2]=c[c[g>>2]>>2];if(c[f>>2]|0)c[c[g>>2]>>2]=c[(c[f>>2]|0)+8>>2]}uN();k=c[f>>2]|0;i=j;return k|0}function XN(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+624|0;h=r+100|0;j=r+96|0;k=r+92|0;l=r+88|0;m=r+84|0;o=r+80|0;q=r+104|0;n=r+76|0;p=r;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;c[o>>2]=0;c[c[k>>2]>>2]=0;c[c[l>>2]>>2]=0;c[c[m>>2]>>2]=0;if(!(c[j>>2]&526336)){if(!(c[j>>2]&8)){b=c[o>>2]|0;i=r;return b|0}c[c[k>>2]>>2]=384;b=c[o>>2]|0;i=r;return b|0}c[n>>2]=(If(c[h>>2]|0)|0)-1;while(1){if((a[(c[h>>2]|0)+(c[n>>2]|0)>>0]|0)==45)break;c[n>>2]=(c[n>>2]|0)+-1}iR(q|0,c[h>>2]|0,c[n>>2]|0)|0;a[q+(c[n>>2]|0)>>0]=0;if(!(Yb[c[7320>>2]&255](q,p)|0)){c[c[k>>2]>>2]=c[p+12>>2]&511;c[c[l>>2]>>2]=c[p+20>>2];c[c[m>>2]>>2]=c[p+24>>2];b=c[o>>2]|0;i=r;return b|0}else{c[o>>2]=1802;b=c[o>>2]|0;i=r;return b|0}return 0}function YN(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+8|0;f=h+4|0;g=h;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;if(Pb[c[7524>>2]&255]()|0){b=0;i=h;return b|0}b=Ob[c[7512>>2]&255](c[e>>2]|0,c[f>>2]|0,c[g>>2]|0)|0;i=h;return b|0}function ZN(a,d,f,g,h){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=i;i=i+48|0;r=t;j=t+40|0;k=t+36|0;u=t+32|0;l=t+28|0;m=t+24|0;o=t+20|0;p=t+16|0;q=t+12|0;s=t+8|0;n=t+4|0;c[j>>2]=a;c[k>>2]=d;c[u>>2]=f;c[l>>2]=g;c[m>>2]=h;c[p>>2]=c[u>>2];c[q>>2]=0;c[(c[p>>2]|0)+12>>2]=c[k>>2];c[(c[p>>2]|0)+4>>2]=c[j>>2];c[(c[p>>2]|0)+32>>2]=c[l>>2];b[(c[p>>2]|0)+18>>1]=c[m>>2]&255;if(Hf((c[m>>2]&64|0)!=0?c[l>>2]|0:0,45908,1)|0){u=(c[p>>2]|0)+18|0;b[u>>1]=e[u>>1]|0|16}if(!(yQ(c[(c[j>>2]|0)+16>>2]|0,45524)|0)){u=(c[p>>2]|0)+18|0;b[u>>1]=e[u>>1]|0|1}if(c[m>>2]&128)c[o>>2]=7628;else c[o>>2]=Yb[c[c[(c[j>>2]|0)+20>>2]>>2]&255](c[l>>2]|0,c[p>>2]|0)|0;if((c[o>>2]|0)!=7708){if((c[o>>2]|0)==7192){c[n>>2]=(BQ(c[l>>2]|0)|0)+6;u=c[n>>2]|0;c[s>>2]=Jd(u,((u|0)<0)<<31>>31)|0;if(!(c[s>>2]|0))c[q>>2]=7;else{g=c[n>>2]|0;u=c[s>>2]|0;c[r>>2]=c[l>>2];Qd(g,u,45913,r)|0}c[(c[p>>2]|0)+24>>2]=c[s>>2]}}else{sN();c[q>>2]=_N(c[p>>2]|0,(c[p>>2]|0)+8|0)|0;if(c[q>>2]|0){wN(c[p>>2]|0,c[k>>2]|0,32585);c[k>>2]=-1}uN()}KN(c[p>>2]|0,0);if(!(c[q>>2]|0)){c[c[p>>2]>>2]=c[o>>2];$N(c[p>>2]|0);u=c[q>>2]|0;i=t;return u|0}if((c[k>>2]|0)<0){u=c[q>>2]|0;i=t;return u|0}wN(c[p>>2]|0,c[k>>2]|0,32670);u=c[q>>2]|0;i=t;return u|0}function _N(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;k=i;i=i+112|0;f=k+104|0;d=k+100|0;g=k+96|0;l=k+92|0;m=k+88|0;h=k+80|0;e=k+4|0;j=k;c[d>>2]=a;c[g>>2]=b;c[j>>2]=0;c[m>>2]=c[(c[d>>2]|0)+12>>2];c[l>>2]=Yb[c[7332>>2]&255](c[m>>2]|0,e)|0;if(c[l>>2]|0){m=c[d>>2]|0;KN(m,c[(SP()|0)>>2]|0);if((c[(c[d>>2]|0)+20>>2]|0)==75){c[f>>2]=22;m=c[f>>2]|0;i=k;return m|0}else{c[f>>2]=10;m=c[f>>2]|0;i=k;return m|0}}c[h>>2]=0;c[h+4>>2]=0;c[h>>2]=c[e>>2];c[h+4>>2]=c[e+72>>2];c[j>>2]=c[1946];while(1){if(c[j>>2]|0)a=(vQ(h,c[j>>2]|0,8)|0)!=0;else a=0;d=c[j>>2]|0;if(!a)break;c[j>>2]=c[d+32>>2]}if(!d){c[j>>2]=Jd(40,0)|0;if(!(c[j>>2]|0)){c[f>>2]=7;m=c[f>>2]|0;i=k;return m|0}d=c[j>>2]|0;a=d+40|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(a|0));m=c[j>>2]|0;c[m>>2]=c[h>>2];c[m+4>>2]=c[h+4>>2];c[(c[j>>2]|0)+16>>2]=1;c[(c[j>>2]|0)+32>>2]=c[1946];c[(c[j>>2]|0)+36>>2]=0;if(c[1946]|0)c[(c[1946]|0)+36>>2]=c[j>>2];c[1946]=c[j>>2]}else{m=(c[j>>2]|0)+16|0;c[m>>2]=(c[m>>2]|0)+1}c[c[g>>2]>>2]=c[j>>2];c[f>>2]=0;m=c[f>>2]|0;i=k;return m|0}function $N(a){a=a|0;var b=0,d=0,f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+112|0;j=k+24|0;h=k+16|0;d=k+8|0;b=k;f=k+108|0;g=k+32|0;l=k+28|0;c[f>>2]=a;c[l>>2]=Yb[c[7332>>2]&255](c[(c[f>>2]|0)+12>>2]|0,g)|0;if(c[l>>2]|0){c[b>>2]=c[(c[f>>2]|0)+32>>2];Rd(28,45921,b);i=k;return}if((c[g+16>>2]|0)==0?((e[(c[f>>2]|0)+18>>1]|0)&32|0)==0:0){c[d>>2]=c[(c[f>>2]|0)+32>>2];Rd(28,45945,d);i=k;return}a=c[f>>2]|0;if((c[g+16>>2]|0)>>>0>1){c[h>>2]=c[a+32>>2];Rd(28,45974,h);i=k;return}if(!(GN(a)|0)){i=k;return}c[j>>2]=c[(c[f>>2]|0)+32>>2];Rd(28,46001,j);i=k;return}function aO(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;b=f+8|0;e=f+4|0;d=f;c[b>>2]=a;c[e>>2]=0;c[d>>2]=c[b>>2];$N(c[d>>2]|0);cO(c[b>>2]|0,0)|0;sN();if((c[(c[d>>2]|0)+8>>2]|0)!=0?(c[(c[(c[d>>2]|0)+8>>2]|0)+24>>2]|0)!=0:0)jO(c[d>>2]|0);kO(c[d>>2]|0);c[e>>2]=PN(c[b>>2]|0)|0;uN();i=f;return c[e>>2]|0}function bO(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=i;i=i+48|0;k=p+44|0;q=p+40|0;l=p+36|0;o=p+32|0;m=p+28|0;n=p+24|0;h=p+8|0;j=p;c[q>>2]=e;c[l>>2]=f;c[o>>2]=0;c[m>>2]=c[q>>2];c[j>>2]=0;if((d[(c[m>>2]|0)+16>>0]|0|0)>=(c[l>>2]|0)){c[k>>2]=0;q=c[k>>2]|0;i=p;return q|0}sN();c[n>>2]=c[(c[m>>2]|0)+8>>2];if((d[(c[m>>2]|0)+16>>0]|0|0)!=(d[(c[n>>2]|0)+12>>0]|0|0)?(c[l>>2]|0)>1?1:(d[(c[n>>2]|0)+12>>0]|0|0)>=3:0)c[o>>2]=5;else g=6;a:do if((g|0)==6){do if((c[l>>2]|0)==1){if((d[(c[n>>2]|0)+12>>0]|0|0)!=1?(d[(c[n>>2]|0)+12>>0]|0|0)!=2:0)break;a[(c[m>>2]|0)+16>>0]=1;q=(c[n>>2]|0)+8|0;c[q>>2]=(c[q>>2]|0)+1;q=(c[n>>2]|0)+24|0;c[q>>2]=(c[q>>2]|0)+1;break a}while(0);c[h+8>>2]=1;b[h+2>>1]=0;if((c[l>>2]|0)!=1){if((c[l>>2]|0)==4?(d[(c[m>>2]|0)+16>>0]|0|0)<3:0)g=13}else g=13;if((g|0)==13?(b[h>>1]=(c[l>>2]|0)==1?0:1,c[h+4>>2]=c[381],(hO(c[m>>2]|0,h)|0)!=0):0){c[j>>2]=c[(SP()|0)>>2];c[o>>2]=LN(c[j>>2]|0,3850)|0;if((c[o>>2]|0)==5)break;KN(c[m>>2]|0,c[j>>2]|0);break}do if((c[l>>2]|0)!=1){if((c[l>>2]|0)==4?(c[(c[n>>2]|0)+8>>2]|0)>1:0){c[o>>2]=5;break}b[h>>1]=1;f=c[381]|0;if((c[l>>2]|0)==2){c[h+4>>2]=f+1;c[h+8>>2]=1}else{c[h+4>>2]=f+2;c[h+8>>2]=510}if((hO(c[m>>2]|0,h)|0)!=0?(c[j>>2]=c[(SP()|0)>>2],c[o>>2]=LN(c[j>>2]|0,3850)|0,(c[o>>2]|0)!=5):0)KN(c[m>>2]|0,c[j>>2]|0)}else{c[h+4>>2]=(c[381]|0)+2;c[h+8>>2]=510;if(hO(c[m>>2]|0,h)|0){c[j>>2]=c[(SP()|0)>>2];c[o>>2]=LN(c[j>>2]|0,3850)|0}c[h+4>>2]=c[381];c[h+8>>2]=1;b[h>>1]=2;q=(hO(c[m>>2]|0,h)|0)!=0;if(q&(c[o>>2]|0)==0){c[j>>2]=c[(SP()|0)>>2];c[o>>2]=2058}if(!(c[o>>2]|0)){a[(c[m>>2]|0)+16>>0]=1;q=(c[n>>2]|0)+24|0;c[q>>2]=(c[q>>2]|0)+1;c[(c[n>>2]|0)+8>>2]=1;break}if((c[o>>2]|0)==5)break a;KN(c[m>>2]|0,c[j>>2]|0);break a}while(0);f=c[l>>2]|0;if(!(c[o>>2]|0)){a[(c[m>>2]|0)+16>>0]=f;a[(c[n>>2]|0)+12>>0]=c[l>>2];break}if((f|0)==4){a[(c[m>>2]|0)+16>>0]=3;a[(c[n>>2]|0)+12>>0]=3}}while(0);uN();c[k>>2]=c[o>>2];q=c[k>>2]|0;i=p;return q|0}function cO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;a=gO(c[f>>2]|0,c[e>>2]|0,0)|0;i=d;return a|0}function dO(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;n=i;i=i+48|0;m=n;o=n+40|0;g=n+36|0;k=n+32|0;l=n+28|0;j=n+24|0;h=n+8|0;c[o>>2]=e;c[g>>2]=f;c[k>>2]=0;c[l>>2]=0;c[j>>2]=c[o>>2];sN();if((d[(c[(c[j>>2]|0)+8>>2]|0)+12>>0]|0)>1)c[l>>2]=1;do if((c[l>>2]|0)==0?(a[(c[(c[j>>2]|0)+8>>2]|0)+13>>0]|0)==0:0){b[h+2>>1]=0;c[h+4>>2]=(c[381]|0)+1;c[h+8>>2]=1;b[h>>1]=1;f=c[1839]|0;o=c[(c[j>>2]|0)+12>>2]|0;c[m>>2]=h;if(Ob[f&255](o,12,m)|0){c[k>>2]=3594;o=c[j>>2]|0;KN(o,c[(SP()|0)>>2]|0);break}if((b[h>>1]|0)!=2)c[l>>2]=1}while(0);uN();c[c[g>>2]>>2]=c[l>>2];i=n;return c[k>>2]|0}function eO(a,f,g,h,j){a=a|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;E=i;i=i+160|0;z=E+152|0;F=E+148|0;A=E+144|0;k=E+140|0;l=E+136|0;B=E+132|0;u=E+128|0;t=E+124|0;C=E+120|0;D=E+116|0;s=E+112|0;r=E+108|0;m=E+104|0;p=E+100|0;w=E+24|0;o=E+20|0;x=E+16|0;y=E+12|0;q=E+8|0;n=E+4|0;v=E;c[F>>2]=a;c[A>>2]=f;c[k>>2]=g;c[l>>2]=h;c[B>>2]=j;c[u>>2]=c[F>>2];c[D>>2]=0;c[s>>2]=vN()|0;if((c[(c[u>>2]|0)+36>>2]|0)==0?(c[D>>2]=fO(c[u>>2]|0)|0,(c[D>>2]|0)!=0):0){c[z>>2]=c[D>>2];F=c[z>>2]|0;i=E;return F|0}c[t>>2]=c[(c[u>>2]|0)+36>>2];c[C>>2]=c[c[t>>2]>>2];c[r>>2]=_(((c[A>>2]|0)+(c[s>>2]|0)|0)/(c[s>>2]|0)|0,c[s>>2]|0)|0;a:do if((e[(c[C>>2]|0)+20>>1]|0|0)<(c[r>>2]|0)){c[p>>2]=_(c[r>>2]|0,c[k>>2]|0)|0;c[(c[C>>2]|0)+16>>2]=c[k>>2];b:do if((c[(c[C>>2]|0)+12>>2]|0)>=0){if(Yb[c[7332>>2]&255](c[(c[C>>2]|0)+12>>2]|0,w)|0){c[D>>2]=4874;break a}if((c[w+36>>2]|0)<(c[p>>2]|0)){if(!(c[l>>2]|0))break a;c[o>>2]=(c[w+36>>2]|0)/4096|0;while(1){if((c[o>>2]|0)>=((c[p>>2]|0)/4096|0|0))break b;c[x>>2]=0;F=(c[o>>2]<<12)+4096-1|0;if((JN(c[(c[C>>2]|0)+12>>2]|0,F,((F|0)<0)<<31>>31,19266,1,x)|0)!=1)break;c[o>>2]=(c[o>>2]|0)+1}c[y>>2]=c[(c[C>>2]|0)+8>>2];c[D>>2]=xN(4874,45629,c[y>>2]|0,31732)|0;break a}}while(0);c[m>>2]=Ld(c[(c[C>>2]|0)+24>>2]|0,c[r>>2]<<2)|0;if(!(c[m>>2]|0)){c[D>>2]=3082;break}c[(c[C>>2]|0)+24>>2]=c[m>>2];while(1){if((e[(c[C>>2]|0)+20>>1]|0|0)>=(c[r>>2]|0))break a;c[q>>2]=_(c[k>>2]|0,c[s>>2]|0)|0;if((c[(c[C>>2]|0)+12>>2]|0)>=0){w=c[1884]|0;g=c[q>>2]|0;x=(d[(c[C>>2]|0)+22>>0]|0|0)!=0?1:3;y=c[(c[C>>2]|0)+12>>2]|0;F=c[k>>2]|0;F=rR(F|0,((F|0)<0)<<31>>31|0,e[(c[C>>2]|0)+20>>1]|0|0,0)|0;c[v>>2]=Sb[w&255](0,g,x,1,y,F)|0;if((c[v>>2]|0)==(-1|0)){k=21;break}}else{F=c[k>>2]|0;c[v>>2]=Jd(F,((F|0)<0)<<31>>31)|0;if(!(c[v>>2]|0)){k=23;break}kR(c[v>>2]|0,0,c[k>>2]|0)|0}c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[s>>2]|0))break;F=_(c[k>>2]|0,c[n>>2]|0)|0;c[(c[(c[C>>2]|0)+24>>2]|0)+((e[(c[C>>2]|0)+20>>1]|0)+(c[n>>2]|0)<<2)>>2]=(c[v>>2]|0)+F;c[n>>2]=(c[n>>2]|0)+1}F=(c[C>>2]|0)+20|0;b[F>>1]=(e[F>>1]|0)+(c[s>>2]|0)}if((k|0)==21){c[D>>2]=xN(5386,45716,c[(c[C>>2]|0)+8>>2]|0,31759)|0;break}else if((k|0)==23){c[D>>2]=7;break}}while(0);if((e[(c[C>>2]|0)+20>>1]|0|0)>(c[A>>2]|0))c[c[B>>2]>>2]=c[(c[(c[C>>2]|0)+24>>2]|0)+(c[A>>2]<<2)>>2];else c[c[B>>2]>>2]=0;if((c[D>>2]|0)==0?(d[(c[C>>2]|0)+22>>0]|0|0)!=0:0)c[D>>2]=8;c[z>>2]=c[D>>2];F=c[z>>2]|0;i=E;return F|0}function fO(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+128|0;o=r;e=r+116|0;f=r+112|0;j=r+108|0;l=r+104|0;m=r+100|0;k=r+96|0;q=r+92|0;g=r+88|0;n=r+12|0;p=r+8|0;h=r+4|0;c[f>>2]=b;c[j>>2]=0;c[j>>2]=Jd(16,0)|0;if(!(c[j>>2]|0)){c[e>>2]=7;q=c[e>>2]|0;i=r;return q|0}b=c[j>>2]|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;sN();c[k>>2]=c[(c[f>>2]|0)+8>>2];c[l>>2]=c[(c[k>>2]|0)+20>>2];a:do if(!(c[l>>2]|0)){c[p>>2]=c[(c[f>>2]|0)+32>>2];do if(!(Yb[c[7332>>2]&255](c[(c[f>>2]|0)+12>>2]|0,n)|0)){c[g>>2]=6+(BQ(c[p>>2]|0)|0);c[l>>2]=Jd(36+(c[g>>2]|0)|0,0)|0;if(!(c[l>>2]|0)){c[m>>2]=7;break}kR(c[l>>2]|0,0,36+(c[g>>2]|0)|0)|0;b=(c[l>>2]|0)+36|0;c[(c[l>>2]|0)+8>>2]=b;c[q>>2]=b;g=c[g>>2]|0;b=c[q>>2]|0;c[o>>2]=c[p>>2];Qd(g,b,46029,o)|0;c[(c[l>>2]|0)+12>>2]=-1;c[(c[(c[f>>2]|0)+8>>2]|0)+20>>2]=c[l>>2];c[c[l>>2]>>2]=c[(c[f>>2]|0)+8>>2];c[(c[l>>2]|0)+4>>2]=8;if(!(c[(c[l>>2]|0)+4>>2]|0)){c[m>>2]=7;break}if(d[(c[k>>2]|0)+13>>0]|0)break a;c[h>>2]=66;if(Hf(c[(c[f>>2]|0)+32>>2]|0,46036,0)|0){c[h>>2]=0;a[(c[l>>2]|0)+22>>0]=1}p=BN(c[q>>2]|0,c[h>>2]|0,c[n+12>>2]&511)|0;c[(c[l>>2]|0)+12>>2]=p;if((c[(c[l>>2]|0)+12>>2]|0)<0){p=et(31584)|0;c[m>>2]=xN(p,45571,c[q>>2]|0,31584)|0;break}YN(c[(c[l>>2]|0)+12>>2]|0,c[n+20>>2]|0,c[n+24>>2]|0)|0;c[m>>2]=0;if((CN(c[f>>2]|0,1,128,1)|0)==0?(NN(c[(c[l>>2]|0)+12>>2]|0,0,0)|0)!=0:0)c[m>>2]=xN(4618,45594,c[q>>2]|0,31600)|0;if(!(c[m>>2]|0))c[m>>2]=CN(c[f>>2]|0,0,128,1)|0;if(!(c[m>>2]|0))break a}else c[m>>2]=1802;while(0);tN(c[f>>2]|0);Kd(c[j>>2]|0);uN();c[e>>2]=c[m>>2];q=c[e>>2]|0;i=r;return q|0}while(0);c[c[j>>2]>>2]=c[l>>2];q=(c[l>>2]|0)+28|0;c[q>>2]=(c[q>>2]|0)+1;c[(c[f>>2]|0)+36>>2]=c[j>>2];uN();c[(c[j>>2]|0)+4>>2]=c[(c[l>>2]|0)+32>>2];c[(c[l>>2]|0)+32>>2]=c[j>>2];c[e>>2]=0;q=c[e>>2]|0;i=r;return q|0}function gO(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=i;i=i+48|0;h=p+44|0;q=p+40|0;j=p+36|0;l=p+28|0;m=p+24|0;k=p+8|0;n=p;c[q>>2]=e;c[j>>2]=f;c[p+32>>2]=g;c[l>>2]=c[q>>2];c[n>>2]=0;if((d[(c[l>>2]|0)+16>>0]|0|0)<=(c[j>>2]|0)){c[h>>2]=0;q=c[h>>2]|0;i=p;return q|0}sN();c[m>>2]=c[(c[l>>2]|0)+8>>2];do if((d[(c[l>>2]|0)+16>>0]|0|0)>1){if((c[j>>2]|0)==1?(b[k>>1]=0,b[k+2>>1]=0,c[k+4>>2]=(c[381]|0)+2,c[k+8>>2]=510,(hO(c[l>>2]|0,k)|0)!=0):0){c[n>>2]=2314;q=c[l>>2]|0;KN(q,c[(SP()|0)>>2]|0);break}b[k>>1]=2;b[k+2>>1]=0;c[k+4>>2]=c[381];c[k+8>>2]=2;if(!(hO(c[l>>2]|0,k)|0)){a[(c[m>>2]|0)+12>>0]=1;o=10;break}else{c[n>>2]=2058;q=c[l>>2]|0;KN(q,c[(SP()|0)>>2]|0);break}}else o=10;while(0);if((o|0)==10?(c[j>>2]|0)==0:0){q=(c[m>>2]|0)+8|0;c[q>>2]=(c[q>>2]|0)+-1;do if(!(c[(c[m>>2]|0)+8>>2]|0)){b[k>>1]=2;b[k+2>>1]=0;c[k+8>>2]=0;c[k+4>>2]=0;if(!(hO(c[l>>2]|0,k)|0)){a[(c[m>>2]|0)+12>>0]=0;break}else{c[n>>2]=2058;q=c[l>>2]|0;KN(q,c[(SP()|0)>>2]|0);a[(c[m>>2]|0)+12>>0]=0;a[(c[l>>2]|0)+16>>0]=0;break}}while(0);q=(c[m>>2]|0)+24|0;c[q>>2]=(c[q>>2]|0)+-1;if(!(c[(c[m>>2]|0)+24>>2]|0))iO(c[l>>2]|0)}uN();if(!(c[n>>2]|0))a[(c[l>>2]|0)+16>>0]=c[j>>2];c[h>>2]=c[n>>2];q=c[h>>2]|0;i=p;return q|0}function hO(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+64|0;p=q+8|0;o=q;h=q+48|0;j=q+44|0;k=q+40|0;n=q+36|0;m=q+32|0;l=q+16|0;c[j>>2]=f;c[k>>2]=g;c[m>>2]=c[(c[j>>2]|0)+8>>2];do if(((e[(c[j>>2]|0)+18>>1]|0)&3|0)==1){if(d[(c[m>>2]|0)+13>>0]|0){c[n>>2]=0;break}b[l+2>>1]=0;c[l+4>>2]=(c[381]|0)+2;c[l+8>>2]=510;b[l>>1]=1;g=c[1839]|0;p=c[(c[j>>2]|0)+12>>2]|0;c[o>>2]=l;c[n>>2]=Ob[g&255](p,13,o)|0;if((c[n>>2]|0)>=0){a[(c[m>>2]|0)+13>>0]=1;p=(c[m>>2]|0)+24|0;c[p>>2]=(c[p>>2]|0)+1;break}c[h>>2]=c[n>>2];p=c[h>>2]|0;i=q;return p|0}else{g=c[1839]|0;o=c[(c[j>>2]|0)+12>>2]|0;c[p>>2]=c[k>>2];c[n>>2]=Ob[g&255](o,13,p)|0}while(0);c[h>>2]=c[n>>2];p=c[h>>2]|0;i=q;return p|0}function iO(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=i;i=i+16|0;b=g+12|0;e=g+8|0;d=g+4|0;f=g;c[b>>2]=a;c[e>>2]=c[(c[b>>2]|0)+8>>2];c[d>>2]=c[(c[e>>2]|0)+28>>2];while(1){if(!(c[d>>2]|0))break;c[f>>2]=c[(c[d>>2]|0)+8>>2];wN(c[b>>2]|0,c[c[d>>2]>>2]|0,28492);Kd(c[d>>2]|0);c[d>>2]=c[f>>2]}c[(c[e>>2]|0)+28>>2]=0;i=g;return}function jO(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;d=b+8|0;e=b+4|0;f=b;c[d>>2]=a;c[e>>2]=c[(c[d>>2]|0)+8>>2];c[f>>2]=c[(c[d>>2]|0)+28>>2];c[(c[f>>2]|0)+8>>2]=c[(c[e>>2]|0)+28>>2];c[(c[e>>2]|0)+28>>2]=c[f>>2];c[(c[d>>2]|0)+12>>2]=-1;c[(c[d>>2]|0)+28>>2]=0;i=b;return}function kO(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;c[d>>2]=c[(c[b>>2]|0)+8>>2];if(!(c[d>>2]|0)){i=e;return}a=(c[d>>2]|0)+16|0;c[a>>2]=(c[a>>2]|0)+-1;if(c[(c[d>>2]|0)+16>>2]|0){i=e;return}iO(c[b>>2]|0);b=c[(c[d>>2]|0)+32>>2]|0;if(c[(c[d>>2]|0)+36>>2]|0)c[(c[(c[d>>2]|0)+36>>2]|0)+32>>2]=b;else c[1946]=b;if(c[(c[d>>2]|0)+32>>2]|0)c[(c[(c[d>>2]|0)+32>>2]|0)+36>>2]=c[(c[d>>2]|0)+36>>2];Kd(c[d>>2]|0);i=e;return}function lO(a,b){a=a|0;b=b|0;var d=0;d=i;i=i+16|0;c[d+4>>2]=a;c[d>>2]=b;i=d;return 7708}function mO(a){a=a|0;var b=0,d=0,e=0,f=0;e=i;i=i+16|0;b=e;d=e+8|0;c[d>>2]=a;if((c[c[d>>2]>>2]|0)<=(c[(c[d>>2]|0)+4>>2]|0)){d=b;c[d>>2]=0;c[d+4>>2]=0;d=b;a=d;a=c[a>>2]|0;d=d+4|0;d=c[d>>2]|0;C=d;i=e;return a|0}else{f=(c[d>>2]|0)+4|0;a=c[f>>2]|0;c[f>>2]=a+1;a=ee(c[(c[(c[d>>2]|0)+8>>2]|0)+(a<<2)>>2]|0)|0;d=b;c[d>>2]=a;c[d+4>>2]=C;d=b;a=d;a=c[a>>2]|0;d=d+4|0;d=c[d>>2]|0;C=d;i=e;return a|0}return 0}function nO(a){a=a|0;var b=0,d=0,e=0,f=0.0,g=0;e=i;i=i+16|0;b=e;d=e+8|0;c[d>>2]=a;if((c[c[d>>2]>>2]|0)<=(c[(c[d>>2]|0)+4>>2]|0)){h[b>>3]=0.0;f=+h[b>>3];i=e;return+f}else{g=(c[d>>2]|0)+4|0;a=c[g>>2]|0;c[g>>2]=a+1;h[b>>3]=+ce(c[(c[(c[d>>2]|0)+8>>2]|0)+(a<<2)>>2]|0);f=+h[b>>3];i=e;return+f}return 0.0}function oO(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0;l=i;i=i+32|0;e=l+20|0;f=l+16|0;g=l+12|0;k=l+8|0;j=l;c[f>>2]=b;c[g>>2]=d;if((c[c[g>>2]>>2]|0)<=0){a[e>>0]=48;b=a[e>>0]|0;i=l;return b|0}else{b=c[g>>2]|0;c[b>>2]=(c[b>>2]|0)+-1;c[k>>2]=~~+h[c[f>>2]>>3];h[j>>3]=+(c[k>>2]|0);c[k>>2]=(c[k>>2]|0)+48;h[c[f>>2]>>3]=(+h[c[f>>2]>>3]-+h[j>>3])*10.0;a[e>>0]=c[k>>2];b=a[e>>0]|0;i=l;return b|0}return 0}function pO(a){a=a|0;var b=0,d=0,e=0,f=0;e=i;i=i+16|0;b=e+4|0;d=e;c[d>>2]=a;if((c[c[d>>2]>>2]|0)<=(c[(c[d>>2]|0)+4>>2]|0)){c[b>>2]=0;a=c[b>>2]|0;i=e;return a|0}else{f=(c[d>>2]|0)+4|0;a=c[f>>2]|0;c[f>>2]=a+1;c[b>>2]=ae(c[(c[(c[d>>2]|0)+8>>2]|0)+(a<<2)>>2]|0)|0;a=c[b>>2]|0;i=e;return a|0}return 0}function qO(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;j=i;i=i+16|0;f=j+4|0;g=j;h=j+8|0;c[f>>2]=b;c[g>>2]=d;a[h>>0]=e;b=c[g>>2]|0;b=gR(c[(c[f>>2]|0)+12>>2]|0,0,b|0,((b|0)<0)<<31>>31|0)|0;e=C;if((e|0)>0|((e|0)==0?b>>>0>=(c[(c[f>>2]|0)+16>>2]|0)>>>0:0)?(b=dA(c[f>>2]|0,c[g>>2]|0)|0,c[g>>2]=b,(b|0)<=0):0){i=j;return}while(1){b=c[g>>2]|0;c[g>>2]=b+-1;if((b|0)<=0)break;e=a[h>>0]|0;d=(c[f>>2]|0)+12|0;b=c[d>>2]|0;c[d>>2]=b+1;a[(c[(c[f>>2]|0)+8>>2]|0)+b>>0]=e}i=j;return}function rO(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;b=d;c[b>>2]=a;a=288;e=c[a+4>>2]|0;if((e|0)<0|(e|0)==0&(c[a>>2]|0)>>>0<=0){i=d;return}Fd(c[b>>2]|0)|0;i=d;return}function sO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;h=i;i=i+32|0;j=h+20|0;d=h+16|0;e=h+12|0;g=h+8|0;f=h;c[j>>2]=a;c[d>>2]=b;c[e>>2]=Tb[c[60>>2]&255](c[j>>2]|0)|0;Mi(5,c[j>>2]|0);b=288;a=c[b+4>>2]|0;do if((a|0)>0|(a|0)==0&(c[b>>2]|0)>>>0>0){b=Zf(0)|0;a=f;c[a>>2]=b;c[a+4>>2]=C;a=f;b=c[a>>2]|0;a=c[a+4>>2]|0;f=288;j=c[e>>2]|0;j=fR(c[f>>2]|0,c[f+4>>2]|0,j|0,((j|0)<0)<<31>>31|0)|0;f=C;if((a|0)>(f|0)|(a|0)==(f|0)&b>>>0>=j>>>0){c[77]=1;rO(c[e>>2]|0);break}else{c[77]=0;break}}while(0);c[g>>2]=Tb[c[44>>2]&255](c[e>>2]|0)|0;if(!(c[g>>2]|0)){b=c[g>>2]|0;j=c[d>>2]|0;c[j>>2]=b;j=c[e>>2]|0;i=h;return j|0}c[e>>2]=$f(c[g>>2]|0)|0;Ni(0,c[e>>2]|0);Ni(9,1);b=c[g>>2]|0;j=c[d>>2]|0;c[j>>2]=b;j=c[e>>2]|0;i=h;return j|0}function tO(){var a=0,b=0,d=0,e=0;e=i;i=i+16|0;b=e+8|0;d=e+4|0;a=e;c[d>>2]=1080;c[a>>2]=9708;c[b>>2]=0;while(1){if((c[b>>2]|0)>=8)break;Yt(c[d>>2]|0,(c[a>>2]|0)+(c[b>>2]<<5)|0);c[b>>2]=(c[b>>2]|0)+1}i=e;return}function uO(){var a=0,b=0,d=0,e=0;e=i;i=i+16|0;b=e+8|0;d=e+4|0;a=e;c[d>>2]=1080;c[a>>2]=9612;c[b>>2]=0;while(1){if((c[b>>2]|0)>=3)break;Yt(c[d>>2]|0,(c[a>>2]|0)+(c[b>>2]<<5)|0);c[b>>2]=(c[b>>2]|0)+1}i=e;return}function vO(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;r=i;i=i+64|0;l=r;f=r+60|0;s=r+52|0;o=r+48|0;p=r+44|0;k=r+40|0;j=r+32|0;m=r+28|0;h=r+24|0;n=r+20|0;g=r+16|0;c[f>>2]=b;c[r+56>>2]=d;c[s>>2]=e;c[o>>2]=ae(c[c[s>>2]>>2]|0)|0;c[p>>2]=ae(c[(c[s>>2]|0)+4>>2]|0)|0;c[m>>2]=c[o>>2];c[h>>2]=0;c[g>>2]=we(c[f>>2]|0)|0;if(!(c[o>>2]|0)){i=r;return}do{if(!(a[c[m>>2]>>0]|0)){q=7;break}c[j>>2]=c[m>>2];c[j+4>>2]=c[h>>2];do{c[m>>2]=(c[m>>2]|0)+(c[h>>2]|0);c[h>>2]=Qu(c[m>>2]|0,k)|0}while((c[k>>2]|0)==159)}while((c[k>>2]|0)!=22?(c[k>>2]|0)!=125:0);if((q|0)==7){i=r;return}s=c[g>>2]|0;m=c[o>>2]|0;p=c[p>>2]|0;q=(c[j>>2]|0)+(c[j+4>>2]|0)|0;c[l>>2]=(c[j>>2]|0)-(c[o>>2]|0);c[l+4>>2]=m;c[l+8>>2]=p;c[l+12>>2]=q;c[n>>2]=Bh(s,46327,l)|0;ne(c[f>>2]|0,c[n>>2]|0,-1,170);i=r;return}function wO(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=i;i=i+80|0;m=s;f=s+68|0;t=s+60|0;p=s+56|0;q=s+52|0;l=s+48|0;k=s+40|0;h=s+32|0;n=s+28|0;j=s+24|0;o=s+20|0;g=s+16|0;c[f>>2]=b;c[s+64>>2]=d;c[t>>2]=e;c[p>>2]=ae(c[c[t>>2]>>2]|0)|0;c[q>>2]=ae(c[(c[t>>2]|0)+4>>2]|0)|0;c[h>>2]=3;c[n>>2]=c[p>>2];c[j>>2]=0;c[g>>2]=we(c[f>>2]|0)|0;if(!(c[p>>2]|0)){i=s;return}while(1){if(!(a[c[n>>2]>>0]|0)){r=8;break}c[k>>2]=c[n>>2];c[k+4>>2]=c[j>>2];do{c[n>>2]=(c[n>>2]|0)+(c[j>>2]|0);c[j>>2]=Qu(c[n>>2]|0,l)|0}while((c[l>>2]|0)==159);t=(c[h>>2]|0)+1|0;c[h>>2]=t;c[h>>2]=(c[l>>2]|0)==122|(c[l>>2]|0)==107?0:t;if((c[h>>2]|0)!=2)continue;if(!((c[l>>2]|0)!=137&(c[l>>2]|0)!=46&(c[l>>2]|0)!=5))break}if((r|0)==8){i=s;return}t=c[g>>2]|0;n=c[p>>2]|0;q=c[q>>2]|0;r=(c[k>>2]|0)+(c[k+4>>2]|0)|0;c[m>>2]=(c[k>>2]|0)-(c[p>>2]|0);c[m+4>>2]=n;c[m+8>>2]=q;c[m+12>>2]=r;c[o>>2]=Bh(t,46327,m)|0;ne(c[f>>2]|0,c[o>>2]|0,-1,170);i=s;return}function xO(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;u=i;i=i+80|0;l=u+16|0;k=u;f=u+76|0;v=u+68|0;g=u+64|0;r=u+60|0;t=u+56|0;n=u+52|0;p=u+48|0;o=u+44|0;m=u+40|0;h=u+36|0;j=u+32|0;s=u+28|0;q=u+24|0;c[f>>2]=b;c[u+72>>2]=d;c[v>>2]=e;c[g>>2]=we(c[f>>2]|0)|0;c[r>>2]=0;c[n>>2]=ae(c[c[v>>2]>>2]|0)|0;c[p>>2]=ae(c[(c[v>>2]|0)+4>>2]|0)|0;c[o>>2]=ae(c[(c[v>>2]|0)+8>>2]|0)|0;if((c[n>>2]|0)==0|(c[p>>2]|0)==0){i=u;return}c[m>>2]=c[n>>2];while(1){if(!(a[c[m>>2]>>0]|0))break;c[h>>2]=Qu(c[m>>2]|0,j)|0;if((c[j>>2]|0)==105){do{c[m>>2]=(c[m>>2]|0)+(c[h>>2]|0);c[h>>2]=Qu(c[m>>2]|0,j)|0}while((c[j>>2]|0)==159);if((c[j>>2]|0)==160)break;v=c[h>>2]|0;c[s>>2]=Iw(c[g>>2]|0,c[m>>2]|0,v,((v|0)<0)<<31>>31)|0;if(!(c[s>>2]|0))break;Jw(c[s>>2]|0)|0;if(!(Td(c[p>>2]|0,c[s>>2]|0)|0)){v=c[g>>2]|0;d=(c[m>>2]|0)-(c[n>>2]|0)|0;e=c[n>>2]|0;b=c[o>>2]|0;c[k>>2]=(c[r>>2]|0)!=0?c[r>>2]|0:19266;c[k+4>>2]=d;c[k+8>>2]=e;c[k+12>>2]=b;c[q>>2]=Bh(v,46316,k)|0;Sf(c[g>>2]|0,c[r>>2]|0);c[r>>2]=c[q>>2];c[n>>2]=(c[m>>2]|0)+(c[h>>2]|0)}Sf(c[g>>2]|0,c[s>>2]|0)}c[m>>2]=(c[m>>2]|0)+(c[h>>2]|0)}v=c[g>>2]|0;s=c[n>>2]|0;c[l>>2]=(c[r>>2]|0)!=0?c[r>>2]|0:19266;c[l+4>>2]=s;c[t>>2]=Bh(v,25552,l)|0;ne(c[f>>2]|0,c[t>>2]|0,-1,170);Sf(c[g>>2]|0,c[r>>2]|0);i=u;return}function yO(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;g=i;i=i+64|0;e=g+56|0;j=g+52|0;h=g+48|0;f=g;c[e>>2]=a;c[j>>2]=b;c[h>>2]=d;if(GO(c[e>>2]|0,c[j>>2]|0,c[h>>2]|0,f)|0){i=g;return}HO(f);j=f;ie(c[e>>2]|0,(+((c[j>>2]|0)>>>0)+4294967296.0*+(c[j+4>>2]|0))/864.0e5);i=g;return}function zO(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;j=i;i=i+176|0;f=j+48|0;e=j+68|0;l=j+64|0;k=j+60|0;g=j;h=j+72|0;c[e>>2]=a;c[l>>2]=b;c[k>>2]=d;if(GO(c[e>>2]|0,c[l>>2]|0,c[k>>2]|0,g)|0){i=j;return}JO(g);k=c[g+12>>2]|0;l=c[g+16>>2]|0;c[f>>2]=c[g+8>>2];c[f+4>>2]=k;c[f+8>>2]=l;Qd(100,h,46623,f)|0;ne(c[e>>2]|0,h,-1,-1);i=j;return}function AO(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0,m=0;k=i;i=i+176|0;f=k+48|0;e=k+68|0;m=k+64|0;l=k+60|0;g=k;j=k+72|0;c[e>>2]=a;c[m>>2]=b;c[l>>2]=d;if(GO(c[e>>2]|0,c[m>>2]|0,c[l>>2]|0,g)|0){i=k;return}KO(g);l=c[g+24>>2]|0;m=~~+h[g+32>>3];c[f>>2]=c[g+20>>2];c[f+4>>2]=l;c[f+8>>2]=m;Qd(100,j,46608,f)|0;ne(c[e>>2]|0,j,-1,-1);i=k;return}function BO(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0,m=0;k=i;i=i+192|0;f=k+48|0;e=k+80|0;m=k+76|0;l=k+72|0;g=k;j=k+84|0;c[e>>2]=a;c[m>>2]=b;c[l>>2]=d;if(GO(c[e>>2]|0,c[m>>2]|0,c[l>>2]|0,g)|0){i=k;return}IO(g);b=c[g+12>>2]|0;d=c[g+16>>2]|0;a=c[g+20>>2]|0;l=c[g+24>>2]|0;m=~~+h[g+32>>3];c[f>>2]=c[g+8>>2];c[f+4>>2]=b;c[f+8>>2]=d;c[f+12>>2]=a;c[f+16>>2]=l;c[f+20>>2]=m;Qd(100,j,46578,f)|0;ne(c[e>>2]|0,j,-1,-1);i=k;return}function CO(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;J=i;i=i+336|0;z=J+192|0;y=J+184|0;x=J+176|0;w=J+168|0;v=J+160|0;u=J+152|0;t=J+144|0;B=J+136|0;A=J+128|0;s=J+120|0;r=J+112|0;m=J+232|0;f=J+228|0;g=J+224|0;E=J+64|0;k=J+56|0;n=J+220|0;o=J+216|0;G=J+212|0;j=J+208|0;I=J+204|0;H=J+236|0;q=J+48|0;p=J+200|0;F=J;D=J+196|0;c[m>>2]=b;c[f>>2]=d;c[g>>2]=e;if(!(c[f>>2]|0)){i=J;return}c[I>>2]=ae(c[c[g>>2]>>2]|0)|0;if(!(c[I>>2]|0)){i=J;return}if(GO(c[m>>2]|0,(c[f>>2]|0)-1|0,(c[g>>2]|0)+4|0,E)|0){i=J;return}c[j>>2]=we(c[m>>2]|0)|0;c[n>>2]=0;b=k;c[b>>2]=1;c[b+4>>2]=0;a:while(1){if(!(a[(c[I>>2]|0)+(c[n>>2]|0)>>0]|0))break;if((a[(c[I>>2]|0)+(c[n>>2]|0)>>0]|0)==37){switch(a[(c[I>>2]|0)+((c[n>>2]|0)+1)>>0]|0){case 87:case 83:case 77:case 109:case 72:case 100:{e=k;b=k;c[b>>2]=gR(c[e>>2]|0,c[e+4>>2]|0,1,0)|0;c[b+4>>2]=C;break}case 37:case 119:break;case 102:{e=k;b=k;c[b>>2]=gR(c[e>>2]|0,c[e+4>>2]|0,8,0)|0;c[b+4>>2]=C;break}case 106:{e=k;b=k;c[b>>2]=gR(c[e>>2]|0,c[e+4>>2]|0,3,0)|0;c[b+4>>2]=C;break}case 89:{e=k;b=k;c[b>>2]=gR(c[e>>2]|0,c[e+4>>2]|0,8,0)|0;c[b+4>>2]=C;break}case 74:case 115:{e=k;b=k;c[b>>2]=gR(c[e>>2]|0,c[e+4>>2]|0,50,0)|0;c[b+4>>2]=C;break}default:{l=44;break a}}c[n>>2]=(c[n>>2]|0)+1}c[n>>2]=(c[n>>2]|0)+1;e=k;e=gR(c[e>>2]|0,c[e+4>>2]|0,1,0)|0;b=k;c[b>>2]=e;c[b+4>>2]=C}if((l|0)==44){i=J;return}l=k;b=c[l+4>>2]|0;if(!(b>>>0<0|(b|0)==0&(c[l>>2]|0)>>>0<100)){b=k;d=c[b+4>>2]|0;l=c[(c[j>>2]|0)+88>>2]|0;e=((l|0)<0)<<31>>31;if(d>>>0>e>>>0|((d|0)==(e|0)?(c[b>>2]|0)>>>0>l>>>0:0)){se(c[m>>2]|0);i=J;return}l=c[k>>2]|0;c[G>>2]=Fw(c[j>>2]|0,l,((l|0)<0)<<31>>31)|0;if(!(c[G>>2]|0)){te(c[m>>2]|0);i=J;return}}else c[G>>2]=H;HO(E);IO(E);c[o>>2]=0;c[n>>2]=0;while(1){if(!(a[(c[I>>2]|0)+(c[n>>2]|0)>>0]|0))break;f=c[n>>2]|0;b:do if((a[(c[I>>2]|0)+(c[n>>2]|0)>>0]|0)!=37){k=a[(c[I>>2]|0)+f>>0]|0;l=c[o>>2]|0;c[o>>2]=l+1;a[(c[G>>2]|0)+l>>0]=k}else{c[n>>2]=f+1;do switch(a[(c[I>>2]|0)+(c[n>>2]|0)>>0]|0){case 100:{l=(c[G>>2]|0)+(c[o>>2]|0)|0;c[r>>2]=c[E+16>>2];Qd(3,l,46420,r)|0;c[o>>2]=(c[o>>2]|0)+2;break b}case 102:{h[q>>3]=+h[E+32>>3];if(+h[q>>3]>59.999)h[q>>3]=59.999;l=(c[G>>2]|0)+(c[o>>2]|0)|0;h[s>>3]=+h[q>>3];Qd(7,l,46425,s)|0;c[o>>2]=(If((c[G>>2]|0)+(c[o>>2]|0)|0)|0)+(c[o>>2]|0);break b}case 72:{l=(c[G>>2]|0)+(c[o>>2]|0)|0;c[A>>2]=c[E+20>>2];Qd(3,l,46420,A)|0;c[o>>2]=(c[o>>2]|0)+2;break b}case 106:case 87:{f=F;g=E;d=f+48|0;do{c[f>>2]=c[g>>2];f=f+4|0;g=g+4|0}while((f|0)<(d|0));a[F+42>>0]=0;c[F+12>>2]=1;c[F+16>>2]=1;HO(F);k=E;l=F;c[p>>2]=pR(gR(fR(c[k>>2]|0,c[k+4>>2]|0,c[l>>2]|0,c[l+4>>2]|0)|0,C|0,432e5,0)|0,C|0,864e5,0)|0;if((a[(c[I>>2]|0)+(c[n>>2]|0)>>0]|0)==87){l=E;l=gR(c[l>>2]|0,c[l+4>>2]|0,432e5,0)|0;l=pR(l|0,C|0,864e5,0)|0;l=qR(l|0,C|0,7,0)|0;c[D>>2]=l;l=(c[G>>2]|0)+(c[o>>2]|0)|0;c[B>>2]=((c[p>>2]|0)+7-(c[D>>2]|0)|0)/7|0;Qd(3,l,46420,B)|0;c[o>>2]=(c[o>>2]|0)+2;break b}else{l=(c[G>>2]|0)+(c[o>>2]|0)|0;c[t>>2]=(c[p>>2]|0)+1;Qd(4,l,46432,t)|0;c[o>>2]=(c[o>>2]|0)+3;break b}}case 74:{l=(c[G>>2]|0)+(c[o>>2]|0)|0;k=E;h[u>>3]=(+((c[k>>2]|0)>>>0)+4294967296.0*+(c[k+4>>2]|0))/864.0e5;Qd(20,l,43396,u)|0;c[o>>2]=(If((c[G>>2]|0)+(c[o>>2]|0)|0)|0)+(c[o>>2]|0);break b}case 109:{l=(c[G>>2]|0)+(c[o>>2]|0)|0;c[v>>2]=c[E+12>>2];Qd(3,l,46420,v)|0;c[o>>2]=(c[o>>2]|0)+2;break b}case 77:{l=(c[G>>2]|0)+(c[o>>2]|0)|0;c[w>>2]=c[E+24>>2];Qd(3,l,46420,w)|0;c[o>>2]=(c[o>>2]|0)+2;break b}case 115:{l=(c[G>>2]|0)+(c[o>>2]|0)|0;j=E;k=x;c[k>>2]=fR(pR(c[j>>2]|0,c[j+4>>2]|0,1e3,0)|0,C|0,413362496,49)|0;c[k+4>>2]=C;Qd(30,l,29137,x)|0;c[o>>2]=(If((c[G>>2]|0)+(c[o>>2]|0)|0)|0)+(c[o>>2]|0);break b}case 83:{l=(c[G>>2]|0)+(c[o>>2]|0)|0;c[y>>2]=~~+h[E+32>>3];Qd(3,l,46420,y)|0;c[o>>2]=(c[o>>2]|0)+2;break b}case 119:{k=E;k=qR(pR(gR(c[k>>2]|0,c[k+4>>2]|0,1296e5,0)|0,C|0,864e5,0)|0,C|0,7,0)|0;l=c[o>>2]|0;c[o>>2]=l+1;a[(c[G>>2]|0)+l>>0]=((k&255)<<24>>24)+48;break b}case 89:{l=(c[G>>2]|0)+(c[o>>2]|0)|0;c[z>>2]=c[E+8>>2];Qd(5,l,46437,z)|0;c[o>>2]=(If((c[G>>2]|0)+(c[o>>2]|0)|0)|0)+(c[o>>2]|0);break b}default:{l=c[o>>2]|0;c[o>>2]=l+1;a[(c[G>>2]|0)+l>>0]=37;break b}}while(0)}while(0);c[n>>2]=(c[n>>2]|0)+1}a[(c[G>>2]|0)+(c[o>>2]|0)>>0]=0;ne(c[m>>2]|0,c[G>>2]|0,-1,(c[G>>2]|0)==(H|0)?-1:170);i=J;return}function DO(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e+8|0;c[f>>2]=a;c[e+4>>2]=b;c[e>>2]=d;AO(c[f>>2]|0,0,0);i=e;return}function EO(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e+8|0;c[f>>2]=a;c[e+4>>2]=b;c[e>>2]=d;BO(c[f>>2]|0,0,0);i=e;return}function FO(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e+8|0;c[f>>2]=a;c[e+4>>2]=b;c[e>>2]=d;zO(c[f>>2]|0,0,0);i=e;return}function GO(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0;p=i;i=i+32|0;o=p+28|0;g=p+24|0;h=p+20|0;j=p+16|0;k=p+12|0;m=p+8|0;n=p+4|0;l=p;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[k>>2]=f;d=c[k>>2]|0;e=d+48|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));if(!(c[h>>2]|0)){c[o>>2]=LO(c[g>>2]|0,c[k>>2]|0)|0;o=c[o>>2]|0;i=p;return o|0}f=fe(c[c[j>>2]>>2]|0)|0;c[l>>2]=f;d=c[c[j>>2]>>2]|0;do if((f|0)==2|(c[l>>2]|0)==1){q=+ce(d)*864.0e5+.5;f=+N(q)>=1.0?q>0.0?~~+$(+M(q/4294967296.0),4294967295.0)>>>0:~~+Z((q-+(~~q>>>0))/4294967296.0)>>>0:0;l=c[k>>2]|0;c[l>>2]=~~q>>>0;c[l+4>>2]=f;a[(c[k>>2]|0)+42>>0]=1}else{c[n>>2]=ae(d)|0;if((c[n>>2]|0)!=0?(MO(c[g>>2]|0,c[n>>2]|0,c[k>>2]|0)|0)==0:0)break;c[o>>2]=1;o=c[o>>2]|0;i=p;return o|0}while(0);c[m>>2]=1;while(1){if((c[m>>2]|0)>=(c[h>>2]|0)){d=14;break}c[n>>2]=ae(c[(c[j>>2]|0)+(c[m>>2]<<2)>>2]|0)|0;if(!(c[n>>2]|0)){d=12;break}if(NO(c[g>>2]|0,c[n>>2]|0,c[k>>2]|0)|0){d=12;break}c[m>>2]=(c[m>>2]|0)+1}if((d|0)==12){c[o>>2]=1;o=c[o>>2]|0;i=p;return o|0}else if((d|0)==14){c[o>>2]=0;o=c[o>>2]|0;i=p;return o|0}return 0}function HO(b){b=b|0;var d=0,e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0.0;n=i;i=i+32|0;d=n+28|0;m=n+24|0;j=n+20|0;g=n+16|0;e=n+12|0;f=n+8|0;k=n+4|0;l=n;c[d>>2]=b;if(a[(c[d>>2]|0)+42>>0]|0){i=n;return}if(a[(c[d>>2]|0)+40>>0]|0){c[m>>2]=c[(c[d>>2]|0)+8>>2];c[j>>2]=c[(c[d>>2]|0)+12>>2];c[g>>2]=c[(c[d>>2]|0)+16>>2]}else{c[m>>2]=2e3;c[j>>2]=1;c[g>>2]=1}if((c[j>>2]|0)<=2){c[m>>2]=(c[m>>2]|0)+-1;c[j>>2]=(c[j>>2]|0)+12}c[e>>2]=(c[m>>2]|0)/100|0;c[f>>2]=2-(c[e>>2]|0)+((c[e>>2]|0)/4|0);c[k>>2]=(((c[m>>2]|0)+4716|0)*36525|0)/100|0;c[l>>2]=(((c[j>>2]|0)+1|0)*306001|0)/1e4|0;o=(+((c[k>>2]|0)+(c[l>>2]|0)+(c[g>>2]|0)+(c[f>>2]|0)|0)-1524.5)*864.0e5;m=+N(o)>=1.0?o>0.0?~~+$(+M(o/4294967296.0),4294967295.0)>>>0:~~+Z((o-+(~~o>>>0))/4294967296.0)>>>0:0;b=c[d>>2]|0;c[b>>2]=~~o>>>0;c[b+4>>2]=m;a[(c[d>>2]|0)+42>>0]=1;if(!(a[(c[d>>2]|0)+41>>0]|0)){i=n;return}m=_(c[(c[d>>2]|0)+20>>2]|0,36e5)|0;m=m+((c[(c[d>>2]|0)+24>>2]|0)*6e4|0)|0;o=+h[(c[d>>2]|0)+32>>3]*1.0e3;m=gR(m|0,((m|0)<0)<<31>>31|0,~~o>>>0|0,(+N(o)>=1.0?o>0.0?~~+$(+M(o/4294967296.0),4294967295.0)>>>0:~~+Z((o-+(~~o>>>0))/4294967296.0)>>>0:0)|0)|0;b=c[d>>2]|0;l=b;m=gR(c[l>>2]|0,c[l+4>>2]|0,m|0,C|0)|0;c[b>>2]=m;c[b+4>>2]=C;if(!(a[(c[d>>2]|0)+43>>0]|0)){i=n;return}m=(c[(c[d>>2]|0)+28>>2]|0)*6e4|0;b=c[d>>2]|0;l=b;m=fR(c[l>>2]|0,c[l+4>>2]|0,m|0,((m|0)<0)<<31>>31|0)|0;
  68. c[b>>2]=m;c[b+4>>2]=C;a[(c[d>>2]|0)+40>>0]=0;a[(c[d>>2]|0)+41>>0]=0;a[(c[d>>2]|0)+43>>0]=0;i=n;return}function IO(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;JO(c[d>>2]|0);KO(c[d>>2]|0);i=b;return}function JO(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;d=m+28|0;l=m+24|0;e=m+20|0;f=m+16|0;g=m+12|0;h=m+8|0;j=m+4|0;k=m;c[d>>2]=b;if(a[(c[d>>2]|0)+40>>0]|0){i=m;return}b=c[d>>2]|0;if(a[(c[d>>2]|0)+42>>0]|0){b=gR(c[b>>2]|0,c[b+4>>2]|0,432e5,0)|0;b=pR(b|0,C|0,864e5,0)|0;c[l>>2]=b;c[e>>2]=~~((+(c[l>>2]|0)-1867216.25)/36524.25);c[e>>2]=(c[l>>2]|0)+1+(c[e>>2]|0)-((c[e>>2]|0)/4|0);c[f>>2]=(c[e>>2]|0)+1524;c[g>>2]=~~((+(c[f>>2]|0)-122.1)/365.25);c[h>>2]=((c[g>>2]&32767)*36525|0)/100|0;c[j>>2]=~~(+((c[f>>2]|0)-(c[h>>2]|0)|0)/30.6001);c[k>>2]=~~(+(c[j>>2]|0)*30.6001);c[(c[d>>2]|0)+16>>2]=(c[f>>2]|0)-(c[h>>2]|0)-(c[k>>2]|0);l=c[j>>2]|0;c[(c[d>>2]|0)+12>>2]=(c[j>>2]|0)<14?l-1|0:l-13|0;l=c[g>>2]|0;c[(c[d>>2]|0)+8>>2]=(c[(c[d>>2]|0)+12>>2]|0)>2?l-4716|0:l-4715|0}else{c[b+8>>2]=2e3;c[(c[d>>2]|0)+12>>2]=1;c[(c[d>>2]|0)+16>>2]=1}a[(c[d>>2]|0)+40>>0]=1;i=m;return}function KO(b){b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f+4|0;e=f;c[d>>2]=b;if(a[(c[d>>2]|0)+41>>0]|0){i=f;return}HO(c[d>>2]|0);b=c[d>>2]|0;b=gR(c[b>>2]|0,c[b+4>>2]|0,432e5,0)|0;b=qR(b|0,C|0,864e5,0)|0;c[e>>2]=b;h[(c[d>>2]|0)+32>>3]=+(c[e>>2]|0)/1.0e3;c[e>>2]=~~+h[(c[d>>2]|0)+32>>3];b=(c[d>>2]|0)+32|0;h[b>>3]=+h[b>>3]-+(c[e>>2]|0);c[(c[d>>2]|0)+20>>2]=(c[e>>2]|0)/3600|0;c[e>>2]=(c[e>>2]|0)-((c[(c[d>>2]|0)+20>>2]|0)*3600|0);c[(c[d>>2]|0)+24>>2]=(c[e>>2]|0)/60|0;b=(c[d>>2]|0)+32|0;h[b>>3]=+h[b>>3]+ +((c[e>>2]|0)-((c[(c[d>>2]|0)+24>>2]|0)*60|0)|0);a[(c[d>>2]|0)+41>>0]=1;i=f;return}function LO(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+16|0;e=g+8|0;h=g+4|0;f=g;c[h>>2]=b;c[f>>2]=d;b=VO(c[h>>2]|0)|0;d=c[f>>2]|0;c[d>>2]=b;c[d+4>>2]=C;d=c[f>>2]|0;b=c[d+4>>2]|0;if((b|0)>0|(b|0)==0&(c[d>>2]|0)>>>0>0){a[(c[f>>2]|0)+42>>0]=1;c[e>>2]=0;h=c[e>>2]|0;i=g;return h|0}else{c[e>>2]=1;h=c[e>>2]|0;i=g;return h|0}return 0}function MO(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0.0;m=i;i=i+32|0;f=m+20|0;g=m+16|0;j=m+12|0;k=m+8|0;l=m;c[g>>2]=b;c[j>>2]=d;c[k>>2]=e;if(!(UO(c[j>>2]|0,c[k>>2]|0)|0)){c[f>>2]=0;d=c[f>>2]|0;i=m;return d|0}if(!(QO(c[j>>2]|0,c[k>>2]|0)|0)){c[f>>2]=0;d=c[f>>2]|0;i=m;return d|0}if(!(Td(c[j>>2]|0,46562)|0)){c[f>>2]=LO(c[g>>2]|0,c[k>>2]|0)|0;d=c[f>>2]|0;i=m;return d|0}d=c[j>>2]|0;if(Ky(d,l,If(c[j>>2]|0)|0,1)|0){n=+h[l>>3]*864.0e5+.5;l=+N(n)>=1.0?n>0.0?~~+$(+M(n/4294967296.0),4294967295.0)>>>0:~~+Z((n-+(~~n>>>0))/4294967296.0)>>>0:0;d=c[k>>2]|0;c[d>>2]=~~n>>>0;c[d+4>>2]=l;a[(c[k>>2]|0)+42>>0]=1;c[f>>2]=0;d=c[f>>2]|0;i=m;return d|0}else{c[f>>2]=1;d=c[f>>2]|0;i=m;return d|0}return 0}function NO(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0;z=i;i=i+160|0;g=z+124|0;j=z+120|0;w=z+116|0;x=z+112|0;m=z+108|0;n=z+80|0;y=z+104|0;l=z+72|0;k=z+64|0;o=z+56|0;v=z+100|0;u=z+8|0;t=z;p=z+96|0;q=z+92|0;r=z+88|0;c[g>>2]=b;c[j>>2]=e;c[w>>2]=f;c[x>>2]=1;c[y>>2]=z+128;c[m>>2]=0;while(1){if((c[m>>2]|0)<29)b=(a[(c[j>>2]|0)+(c[m>>2]|0)>>0]|0)!=0;else b=0;f=c[m>>2]|0;if(!b)break;a[(c[y>>2]|0)+(c[m>>2]|0)>>0]=a[18477+(d[(c[j>>2]|0)+f>>0]|0)>>0]|0;c[m>>2]=(c[m>>2]|0)+1}a[(c[y>>2]|0)+f>>0]=0;switch(a[c[y>>2]>>0]|0){case 108:{if(yQ(c[y>>2]|0,46442)|0){y=c[x>>2]|0;i=z;return y|0}HO(c[w>>2]|0);v=OO(c[w>>2]|0,c[g>>2]|0,x)|0;y=c[w>>2]|0;u=y;c[y>>2]=gR(c[u>>2]|0,c[u+4>>2]|0,v|0,C|0)|0;c[y+4>>2]=C;PO(c[w>>2]|0);y=c[x>>2]|0;i=z;return y|0}case 117:{if((yQ(c[y>>2]|0,46452)|0)==0?(a[(c[w>>2]|0)+42>>0]|0)!=0:0){v=c[w>>2]|0;v=gR(c[v>>2]|0,c[v+4>>2]|0,43200,0)|0;v=pR(v|0,C|0,86400,0)|0;v=gR(v|0,C|0,1045635584,49096)|0;y=c[w>>2]|0;c[y>>2]=v;c[y+4>>2]=C;PO(c[w>>2]|0);c[x>>2]=0;y=c[x>>2]|0;i=z;return y|0}if(yQ(c[y>>2]|0,46462)|0){y=c[x>>2]|0;i=z;return y|0}if(a[(c[w>>2]|0)+44>>0]|0){c[x>>2]=0;y=c[x>>2]|0;i=z;return y|0}HO(c[w>>2]|0);y=l;c[y>>2]=OO(c[w>>2]|0,c[g>>2]|0,x)|0;c[y+4>>2]=C;if(!(c[x>>2]|0)){u=l;y=c[w>>2]|0;v=y;u=fR(c[v>>2]|0,c[v+4>>2]|0,c[u>>2]|0,c[u+4>>2]|0)|0;c[y>>2]=u;c[y+4>>2]=C;PO(c[w>>2]|0);y=l;u=c[y>>2]|0;y=c[y+4>>2]|0;v=OO(c[w>>2]|0,c[g>>2]|0,x)|0;v=fR(u|0,y|0,v|0,C|0)|0;y=c[w>>2]|0;u=y;v=gR(c[u>>2]|0,c[u+4>>2]|0,v|0,C|0)|0;c[y>>2]=v;c[y+4>>2]=C}a[(c[w>>2]|0)+44>>0]=1;y=c[x>>2]|0;i=z;return y|0}case 119:{if(CQ(c[y>>2]|0,46466,8)|0){y=c[x>>2]|0;i=z;return y|0}if(!(Ky((c[y>>2]|0)+8|0,n,If((c[y>>2]|0)+8|0)|0,1)|0)){y=c[x>>2]|0;i=z;return y|0}y=~~+h[n>>3];c[m>>2]=y;if(!(((c[m>>2]|0)>=0?+(y|0)==+h[n>>3]:0)&+h[n>>3]<7.0)){y=c[x>>2]|0;i=z;return y|0}IO(c[w>>2]|0);a[(c[w>>2]|0)+43>>0]=0;a[(c[w>>2]|0)+42>>0]=0;HO(c[w>>2]|0);t=c[w>>2]|0;v=k;c[v>>2]=qR(pR(gR(c[t>>2]|0,c[t+4>>2]|0,1296e5,0)|0,C|0,864e5,0)|0,C|0,7,0)|0;c[v+4>>2]=C;v=k;t=c[v+4>>2]|0;y=c[m>>2]|0;u=((y|0)<0)<<31>>31;if((t|0)>(u|0)|((t|0)==(u|0)?(c[v>>2]|0)>>>0>y>>>0:0)){v=k;v=fR(c[v>>2]|0,c[v+4>>2]|0,7,0)|0;y=k;c[y>>2]=v;c[y+4>>2]=C}y=c[m>>2]|0;v=k;v=rR(fR(y|0,((y|0)<0)<<31>>31|0,c[v>>2]|0,c[v+4>>2]|0)|0,C|0,864e5,0)|0;y=c[w>>2]|0;u=y;c[y>>2]=gR(c[u>>2]|0,c[u+4>>2]|0,v|0,C|0)|0;c[y+4>>2]=C;PO(c[w>>2]|0);c[x>>2]=0;y=c[x>>2]|0;i=z;return y|0}case 115:{if(CQ(c[y>>2]|0,46475,9)|0){y=c[x>>2]|0;i=z;return y|0}c[y>>2]=(c[y>>2]|0)+9;JO(c[w>>2]|0);a[(c[w>>2]|0)+41>>0]=1;c[(c[w>>2]|0)+24>>2]=0;c[(c[w>>2]|0)+20>>2]=0;h[(c[w>>2]|0)+32>>3]=0.0;a[(c[w>>2]|0)+43>>0]=0;a[(c[w>>2]|0)+42>>0]=0;if(!(yQ(c[y>>2]|0,46485)|0)){c[(c[w>>2]|0)+16>>2]=1;c[x>>2]=0;y=c[x>>2]|0;i=z;return y|0}if(!(yQ(c[y>>2]|0,46491)|0)){JO(c[w>>2]|0);c[(c[w>>2]|0)+12>>2]=1;c[(c[w>>2]|0)+16>>2]=1;c[x>>2]=0;y=c[x>>2]|0;i=z;return y|0}if(yQ(c[y>>2]|0,46496)|0){y=c[x>>2]|0;i=z;return y|0}c[x>>2]=0;y=c[x>>2]|0;i=z;return y|0}case 57:case 56:case 55:case 54:case 53:case 52:case 51:case 50:case 49:case 48:case 45:case 43:{c[m>>2]=1;while(1){if(!(a[(c[y>>2]|0)+(c[m>>2]|0)>>0]|0))break;if((a[(c[y>>2]|0)+(c[m>>2]|0)>>0]|0)==58)break;if(!((d[19267+(d[(c[y>>2]|0)+(c[m>>2]|0)>>0]|0)>>0]&1|0)!=0^1))break;c[m>>2]=(c[m>>2]|0)+1}if(!(Ky(c[y>>2]|0,n,c[m>>2]|0,1)|0)){c[x>>2]=1;y=c[x>>2]|0;i=z;return y|0}if((a[(c[y>>2]|0)+(c[m>>2]|0)>>0]|0)==58){c[v>>2]=c[y>>2];if(!(d[19267+(d[c[v>>2]>>0]|0)>>0]&4))c[v>>2]=(c[v>>2]|0)+1;f=u;b=f+48|0;do{c[f>>2]=0;f=f+4|0}while((f|0)<(b|0));if(QO(c[v>>2]|0,u)|0){y=c[x>>2]|0;i=z;return y|0}HO(u);v=u;v=fR(c[v>>2]|0,c[v+4>>2]|0,432e5,0)|0;s=u;c[s>>2]=v;c[s+4>>2]=C;s=u;s=pR(c[s>>2]|0,c[s+4>>2]|0,864e5,0)|0;v=t;c[v>>2]=s;c[v+4>>2]=C;t=rR(c[t>>2]|0,c[t+4>>2]|0,864e5,0)|0;v=u;t=fR(c[v>>2]|0,c[v+4>>2]|0,t|0,C|0)|0;v=u;c[v>>2]=t;c[v+4>>2]=C;if((a[c[y>>2]>>0]|0)==45){v=u;v=fR(0,0,c[v>>2]|0,c[v+4>>2]|0)|0;y=u;c[y>>2]=v;c[y+4>>2]=C}HO(c[w>>2]|0);PO(c[w>>2]|0);v=u;y=c[w>>2]|0;w=y;w=gR(c[w>>2]|0,c[w+4>>2]|0,c[v>>2]|0,c[v+4>>2]|0)|0;c[y>>2]=w;c[y+4>>2]=C;c[x>>2]=0;y=c[x>>2]|0;i=z;return y|0}c[y>>2]=(c[y>>2]|0)+(c[m>>2]|0);while(1){f=c[y>>2]|0;if(!(d[19267+(d[c[y>>2]>>0]|0)>>0]&1))break;c[y>>2]=f+1}c[m>>2]=If(f)|0;if((c[m>>2]|0)>10|(c[m>>2]|0)<3){y=c[x>>2]|0;i=z;return y|0}if((a[(c[y>>2]|0)+((c[m>>2]|0)-1)>>0]|0)==115){a[(c[y>>2]|0)+((c[m>>2]|0)-1)>>0]=0;c[m>>2]=(c[m>>2]|0)+-1}HO(c[w>>2]|0);c[x>>2]=0;h[o>>3]=+h[n>>3]<0.0?-.5:.5;if((c[m>>2]|0)==3?(yQ(c[y>>2]|0,46496)|0)==0:0){A=+h[n>>3]*864.0e5+ +h[o>>3];v=+N(A)>=1.0?A>0.0?~~+$(+M(A/4294967296.0),4294967295.0)>>>0:~~+Z((A-+(~~A>>>0))/4294967296.0)>>>0:0;y=c[w>>2]|0;u=y;v=gR(c[u>>2]|0,c[u+4>>2]|0,~~A>>>0|0,v|0)|0;c[y>>2]=v;c[y+4>>2]=C}else s=54;do if((s|0)==54){if((c[m>>2]|0)==4?(yQ(c[y>>2]|0,46500)|0)==0:0){A=+h[n>>3]*36.0e5+ +h[o>>3];v=+N(A)>=1.0?A>0.0?~~+$(+M(A/4294967296.0),4294967295.0)>>>0:~~+Z((A-+(~~A>>>0))/4294967296.0)>>>0:0;y=c[w>>2]|0;u=y;v=gR(c[u>>2]|0,c[u+4>>2]|0,~~A>>>0|0,v|0)|0;c[y>>2]=v;c[y+4>>2]=C;break}if((c[m>>2]|0)==6?(yQ(c[y>>2]|0,46505)|0)==0:0){A=+h[n>>3]*6.0e4+ +h[o>>3];v=+N(A)>=1.0?A>0.0?~~+$(+M(A/4294967296.0),4294967295.0)>>>0:~~+Z((A-+(~~A>>>0))/4294967296.0)>>>0:0;y=c[w>>2]|0;u=y;v=gR(c[u>>2]|0,c[u+4>>2]|0,~~A>>>0|0,v|0)|0;c[y>>2]=v;c[y+4>>2]=C;break}if((c[m>>2]|0)==6?(yQ(c[y>>2]|0,46512)|0)==0:0){A=+h[n>>3]*1.0e3+ +h[o>>3];v=+N(A)>=1.0?A>0.0?~~+$(+M(A/4294967296.0),4294967295.0)>>>0:~~+Z((A-+(~~A>>>0))/4294967296.0)>>>0:0;y=c[w>>2]|0;u=y;v=gR(c[u>>2]|0,c[u+4>>2]|0,~~A>>>0|0,v|0)|0;c[y>>2]=v;c[y+4>>2]=C;break}if((c[m>>2]|0)==5?(yQ(c[y>>2]|0,46485)|0)==0:0){IO(c[w>>2]|0);y=(c[w>>2]|0)+12|0;c[y>>2]=(c[y>>2]|0)+~~+h[n>>3];y=c[(c[w>>2]|0)+12>>2]|0;c[p>>2]=(((c[(c[w>>2]|0)+12>>2]|0)>0?y-1|0:y-12|0)|0)/12|0;y=(c[w>>2]|0)+8|0;c[y>>2]=(c[y>>2]|0)+(c[p>>2]|0);y=(c[w>>2]|0)+12|0;c[y>>2]=(c[y>>2]|0)-((c[p>>2]|0)*12|0);a[(c[w>>2]|0)+42>>0]=0;HO(c[w>>2]|0);c[q>>2]=~~+h[n>>3];if(!(+(c[q>>2]|0)!=+h[n>>3]))break;A=(+h[n>>3]-+(c[q>>2]|0))*30.0*864.0e5+ +h[o>>3];v=+N(A)>=1.0?A>0.0?~~+$(+M(A/4294967296.0),4294967295.0)>>>0:~~+Z((A-+(~~A>>>0))/4294967296.0)>>>0:0;y=c[w>>2]|0;u=y;v=gR(c[u>>2]|0,c[u+4>>2]|0,~~A>>>0|0,v|0)|0;c[y>>2]=v;c[y+4>>2]=C;break}if((c[m>>2]|0)==4?(yQ(c[y>>2]|0,46491)|0)==0:0){c[r>>2]=~~+h[n>>3];IO(c[w>>2]|0);y=(c[w>>2]|0)+8|0;c[y>>2]=(c[y>>2]|0)+(c[r>>2]|0);a[(c[w>>2]|0)+42>>0]=0;HO(c[w>>2]|0);if(!(+(c[r>>2]|0)!=+h[n>>3]))break;A=(+h[n>>3]-+(c[r>>2]|0))*365.0*864.0e5+ +h[o>>3];v=+N(A)>=1.0?A>0.0?~~+$(+M(A/4294967296.0),4294967295.0)>>>0:~~+Z((A-+(~~A>>>0))/4294967296.0)>>>0:0;y=c[w>>2]|0;u=y;v=gR(c[u>>2]|0,c[u+4>>2]|0,~~A>>>0|0,v|0)|0;c[y>>2]=v;c[y+4>>2]=C;break}c[x>>2]=1}while(0);PO(c[w>>2]|0);y=c[x>>2]|0;i=z;return y|0}default:{y=c[x>>2]|0;i=z;return y|0}}return 0}function OO(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+176|0;g=q+96|0;f=q+164|0;j=q+160|0;k=q+156|0;o=q+48|0;p=q;n=q+152|0;m=q+108|0;l=q+104|0;c[f>>2]=b;c[j>>2]=d;c[k>>2]=e;d=m;e=d+44|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));d=o;b=c[f>>2]|0;e=d+48|0;do{c[d>>2]=c[b>>2];d=d+4|0;b=b+4|0}while((d|0)<(e|0));IO(o);if((c[o+8>>2]|0)>=1971?(c[o+8>>2]|0)<2038:0){c[l>>2]=~~(+h[o+32>>3]+.5);h[o+32>>3]=+(c[l>>2]|0)}else{c[o+8>>2]=2e3;c[o+12>>2]=1;c[o+16>>2]=1;c[o+20>>2]=0;c[o+24>>2]=0;h[o+32>>3]=0.0}c[o+28>>2]=0;a[o+42>>0]=0;HO(o);l=o;l=pR(c[l>>2]|0,c[l+4>>2]|0,1e3,0)|0;l=fR(l|0,C|0,413362496,49)|0;c[n>>2]=l;if(TO(n,m)|0){je(c[j>>2]|0,46539,-1);c[c[k>>2]>>2]=1;o=g;c[o>>2]=0;c[o+4>>2]=0;o=g;p=o;p=c[p>>2]|0;o=o+4|0;o=c[o>>2]|0;C=o;i=q;return p|0}else{c[p+8>>2]=(c[m+20>>2]|0)+1900;c[p+12>>2]=(c[m+16>>2]|0)+1;c[p+16>>2]=c[m+12>>2];c[p+20>>2]=c[m+8>>2];c[p+24>>2]=c[m+4>>2];h[p+32>>3]=+(c[m>>2]|0);a[p+40>>0]=1;a[p+41>>0]=1;a[p+42>>0]=0;a[p+43>>0]=0;HO(p);c[c[k>>2]>>2]=0;n=p;p=o;p=fR(c[n>>2]|0,c[n+4>>2]|0,c[p>>2]|0,c[p+4>>2]|0)|0;o=g;c[o>>2]=p;c[o+4>>2]=C;o=g;p=o;p=c[p>>2]|0;o=o+4|0;o=c[o>>2]|0;C=o;i=q;return p|0}return 0}function PO(b){b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;a[(c[e>>2]|0)+40>>0]=0;a[(c[e>>2]|0)+41>>0]=0;a[(c[e>>2]|0)+43>>0]=0;i=d;return}function QO(b,e){b=b|0;e=e|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;q=i;i=i+64|0;p=q+24|0;r=q+16|0;f=q+48|0;g=q+44|0;j=q+40|0;k=q+36|0;l=q+32|0;o=q+28|0;m=q+8|0;n=q;c[g>>2]=b;c[j>>2]=e;h[m>>3]=0.0;b=c[g>>2]|0;c[r>>2]=k;c[r+4>>2]=l;if((RO(b,46519,r)|0)!=2){c[f>>2]=1;r=c[f>>2]|0;i=q;return r|0}c[g>>2]=(c[g>>2]|0)+5;if((a[c[g>>2]>>0]|0)==58){c[g>>2]=(c[g>>2]|0)+1;r=c[g>>2]|0;c[p>>2]=o;if((RO(r,46527,p)|0)!=1){c[f>>2]=1;r=c[f>>2]|0;i=q;return r|0}c[g>>2]=(c[g>>2]|0)+2;if((a[c[g>>2]>>0]|0)==46?(d[19267+(d[(c[g>>2]|0)+1>>0]|0)>>0]&4|0)!=0:0){h[n>>3]=1.0;c[g>>2]=(c[g>>2]|0)+1;while(1){if(!(d[19267+(d[c[g>>2]>>0]|0)>>0]&4))break;h[m>>3]=+h[m>>3]*10.0+ +(a[c[g>>2]>>0]|0)-48.0;h[n>>3]=+h[n>>3]*10.0;c[g>>2]=(c[g>>2]|0)+1}h[m>>3]=+h[m>>3]/+h[n>>3]}}else c[o>>2]=0;a[(c[j>>2]|0)+42>>0]=0;a[(c[j>>2]|0)+41>>0]=1;c[(c[j>>2]|0)+20>>2]=c[k>>2];c[(c[j>>2]|0)+24>>2]=c[l>>2];h[(c[j>>2]|0)+32>>3]=+(c[o>>2]|0)+ +h[m>>3];if(SO(c[g>>2]|0,c[j>>2]|0)|0){c[f>>2]=1;r=c[f>>2]|0;i=q;return r|0}else{a[(c[j>>2]|0)+43>>0]=(c[(c[j>>2]|0)+28>>2]|0)!=0?1:0;c[f>>2]=0;r=c[f>>2]|0;i=q;return r|0}return 0}function RO(f,g,h){f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+48|0;j=s+28|0;k=s+24|0;m=s+8|0;r=s+4|0;p=s+36|0;l=s+35|0;o=s+34|0;q=s;n=s+32|0;c[j>>2]=f;c[k>>2]=g;c[r>>2]=0;c[m>>2]=h;a:while(1){a[l>>0]=(a[c[k>>2]>>0]|0)-48;a[o>>0]=(a[(c[k>>2]|0)+1>>0]|0)-48;c[q>>2]=0;b[n>>1]=b[17286+((a[(c[k>>2]|0)+2>>0]|0)-97<<1)>>1]|0;a[p>>0]=a[(c[k>>2]|0)+3>>0]|0;c[q>>2]=0;while(1){g=a[l>>0]|0;a[l>>0]=g+-1<<24>>24;if(!(g<<24>>24))break;if(!(d[19267+(d[c[j>>2]>>0]|0)>>0]&4)){j=11;break a}c[q>>2]=((c[q>>2]|0)*10|0)+(a[c[j>>2]>>0]|0)-48;c[j>>2]=(c[j>>2]|0)+1}if((c[q>>2]|0)<(a[o>>0]|0)){j=11;break}if((c[q>>2]|0)>(e[n>>1]|0)){j=11;break}if((a[p>>0]|0)!=0?(a[p>>0]|0)!=(a[c[j>>2]>>0]|0):0){j=11;break}f=c[q>>2]|0;h=(c[m>>2]|0)+(4-1)&~(4-1);g=c[h>>2]|0;c[m>>2]=h+4;c[g>>2]=f;c[j>>2]=(c[j>>2]|0)+1;c[r>>2]=(c[r>>2]|0)+1;c[k>>2]=(c[k>>2]|0)+4;if(!(a[p>>0]|0)){j=11;break}}if((j|0)==11){i=s;return c[r>>2]|0}return 0}function SO(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+48|0;n=p;f=p+32|0;g=p+28|0;h=p+24|0;m=p+20|0;k=p+16|0;l=p+12|0;j=p+8|0;c[g>>2]=b;c[h>>2]=e;c[m>>2]=0;while(1){if(!(d[19267+(d[c[g>>2]>>0]|0)>>0]&1))break;c[g>>2]=(c[g>>2]|0)+1}c[(c[h>>2]|0)+28>>2]=0;c[j>>2]=a[c[g>>2]>>0];do if((c[j>>2]|0)==45){c[m>>2]=-1;o=11}else{if((c[j>>2]|0)==43){c[m>>2]=1;o=11;break}if((c[j>>2]|0)==90|(c[j>>2]|0)==122){c[g>>2]=(c[g>>2]|0)+1;break}c[f>>2]=(c[j>>2]|0)!=0&1;o=c[f>>2]|0;i=p;return o|0}while(0);do if((o|0)==11){c[g>>2]=(c[g>>2]|0)+1;o=c[g>>2]|0;c[n>>2]=k;c[n+4>>2]=l;if((RO(o,46531,n)|0)==2){c[g>>2]=(c[g>>2]|0)+5;o=_(c[m>>2]|0,(c[l>>2]|0)+((c[k>>2]|0)*60|0)|0)|0;c[(c[h>>2]|0)+28>>2]=o;break}c[f>>2]=1;o=c[f>>2]|0;i=p;return o|0}while(0);while(1){if(!(d[19267+(d[c[g>>2]>>0]|0)>>0]&1))break;c[g>>2]=(c[g>>2]|0)+1}a[(c[h>>2]|0)+44>>0]=1;c[f>>2]=(a[c[g>>2]>>0]|0)!=0&1;o=c[f>>2]|0;i=p;return o|0}function TO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=i;i=i+16|0;h=g+12|0;d=g+8|0;f=g+4|0;e=g;c[h>>2]=a;c[d>>2]=b;a=Kb(c[h>>2]|0)|0;c[e>>2]=a;c[e>>2]=(c[69]|0)!=0?0:a;if(c[e>>2]|0){d=c[d>>2]|0;b=c[e>>2]|0;a=d+44|0;do{c[d>>2]=c[b>>2];d=d+4|0;b=b+4|0}while((d|0)<(a|0))}c[f>>2]=(c[e>>2]|0)==0&1;i=g;return c[f>>2]|0}function UO(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+48|0;f=o;g=o+36|0;h=o+32|0;j=o+28|0;m=o+24|0;l=o+20|0;k=o+16|0;n=o+12|0;c[h>>2]=b;c[j>>2]=e;if((a[c[h>>2]>>0]|0)==45){c[h>>2]=(c[h>>2]|0)+1;c[n>>2]=1}else c[n>>2]=0;b=c[h>>2]|0;c[f>>2]=m;c[f+4>>2]=l;c[f+8>>2]=k;if((RO(b,46566,f)|0)!=3){c[g>>2]=1;n=c[g>>2]|0;i=o;return n|0}c[h>>2]=(c[h>>2]|0)+10;while(1){if(d[19267+(d[c[h>>2]>>0]|0)>>0]&1)f=1;else f=84==(d[c[h>>2]>>0]|0);e=c[h>>2]|0;if(!f)break;c[h>>2]=e+1}do if(QO(e,c[j>>2]|0)|0){if(!(a[c[h>>2]>>0]|0)){a[(c[j>>2]|0)+41>>0]=0;break}c[g>>2]=1;n=c[g>>2]|0;i=o;return n|0}while(0);a[(c[j>>2]|0)+42>>0]=0;a[(c[j>>2]|0)+40>>0]=1;m=c[m>>2]|0;c[(c[j>>2]|0)+8>>2]=(c[n>>2]|0)!=0?0-m|0:m;c[(c[j>>2]|0)+12>>2]=c[l>>2];c[(c[j>>2]|0)+16>>2]=c[k>>2];if(a[(c[j>>2]|0)+43>>0]|0)HO(c[j>>2]|0);c[g>>2]=0;n=c[g>>2]|0;i=o;return n|0}function VO(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;b=f+8|0;e=f+4|0;d=f;c[b>>2]=a;c[d>>2]=(c[(c[b>>2]|0)+12>>2]|0)+136;a=c[d>>2]|0;if((c[a>>2]|0)==0&(c[a+4>>2]|0)==0?(c[e>>2]=IH(c[c[(c[c[b>>2]>>2]|0)+32>>2]>>2]|0,c[d>>2]|0)|0,(c[e>>2]|0)!=0):0){e=c[d>>2]|0;c[e>>2]=0;c[e+4>>2]=0}e=c[d>>2]|0;C=c[e+4>>2]|0;i=f;return c[e>>2]|0}function WO(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+64|0;g=v+52|0;h=v+48|0;j=v+44|0;u=v+40|0;t=v+36|0;r=v+32|0;m=v+28|0;n=v+24|0;k=v+20|0;l=v+16|0;q=v+12|0;s=v+8|0;o=v+4|0;p=v;c[g>>2]=b;c[h>>2]=e;c[j>>2]=f;c[k>>2]=0;c[l>>2]=0;if((fe(c[c[j>>2]>>2]|0)|0)==5){i=v;return}c[u>>2]=ae(c[c[j>>2]>>2]|0)|0;if(!(c[u>>2]|0)){i=v;return}c[r>>2]=be(c[c[j>>2]>>2]|0)|0;a:do if((c[h>>2]|0)!=1){b=ae(c[(c[j>>2]|0)+4>>2]|0)|0;c[t>>2]=b;if(!b){i=v;return}c[s>>2]=c[t>>2];c[q>>2]=0;while(1){if(!(a[c[s>>2]>>0]|0))break;b=c[s>>2]|0;c[s>>2]=b+1;b:do if((d[b>>0]|0)>=192)while(1){if((d[c[s>>2]>>0]&192|0)!=128)break b;c[s>>2]=(c[s>>2]|0)+1}while(0);c[q>>2]=(c[q>>2]|0)+1}if((c[q>>2]|0)>0){f=c[g>>2]|0;b=c[q>>2]|0;b=rR(b|0,((b|0)<0)<<31>>31|0,5,0)|0;c[l>>2]=GP(f,b,C)|0;if(!(c[l>>2]|0)){i=v;return}c[k>>2]=(c[l>>2]|0)+(c[q>>2]<<2);c[s>>2]=c[t>>2];c[q>>2]=0;while(1){if(!(a[c[s>>2]>>0]|0))break a;c[(c[l>>2]|0)+(c[q>>2]<<2)>>2]=c[s>>2];b=c[s>>2]|0;c[s>>2]=b+1;c:do if((d[b>>0]|0)>=192)while(1){if((d[c[s>>2]>>0]&192|0)!=128)break c;c[s>>2]=(c[s>>2]|0)+1}while(0);a[(c[k>>2]|0)+(c[q>>2]|0)>>0]=(c[s>>2]|0)-(c[(c[l>>2]|0)+(c[q>>2]<<2)>>2]|0);c[q>>2]=(c[q>>2]|0)+1}}}else{c[q>>2]=1;c[k>>2]=47041;c[l>>2]=9964;c[t>>2]=0}while(0);if((c[q>>2]|0)>0){c[m>>2]=ve(c[g>>2]|0)|0;d:do if((c[m>>2]&1|0)!=0&(c[r>>2]|0)>0)do{c[o>>2]=0;c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[q>>2]|0))break;c[o>>2]=d[(c[k>>2]|0)+(c[n>>2]|0)>>0];if((c[o>>2]|0)<=(c[r>>2]|0)?(vQ(c[u>>2]|0,c[(c[l>>2]|0)+(c[n>>2]<<2)>>2]|0,c[o>>2]|0)|0)==0:0)break;c[n>>2]=(c[n>>2]|0)+1}if((c[n>>2]|0)>=(c[q>>2]|0))break d;c[u>>2]=(c[u>>2]|0)+(c[o>>2]|0);c[r>>2]=(c[r>>2]|0)-(c[o>>2]|0)}while((c[r>>2]|0)>0);while(0);e:do if((c[m>>2]&2|0)!=0&(c[r>>2]|0)>0)do{c[p>>2]=0;c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[q>>2]|0))break;c[p>>2]=d[(c[k>>2]|0)+(c[n>>2]|0)>>0];if((c[p>>2]|0)<=(c[r>>2]|0)?(vQ((c[u>>2]|0)+((c[r>>2]|0)-(c[p>>2]|0))|0,c[(c[l>>2]|0)+(c[n>>2]<<2)>>2]|0,c[p>>2]|0)|0)==0:0)break;c[n>>2]=(c[n>>2]|0)+1}if((c[n>>2]|0)>=(c[q>>2]|0))break e;c[r>>2]=(c[r>>2]|0)-(c[p>>2]|0)}while((c[r>>2]|0)>0);while(0);if(c[t>>2]|0)Kd(c[l>>2]|0)}ne(c[g>>2]|0,c[u>>2]|0,c[r>>2]|0,-1);i=v;return}function XO(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;e=n+24|0;f=n+20|0;g=n+16|0;h=n+12|0;k=n+8|0;j=n+4|0;l=n;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;a=(ve(c[e>>2]|0)|0)==0;c[k>>2]=a?0:-1;c[l>>2]=HP(c[e>>2]|0)|0;c[j>>2]=0;if((fe(c[c[g>>2]>>2]|0)|0)==5){i=n;return}c[h>>2]=1;while(1){if((c[h>>2]|0)>=(c[f>>2]|0))break;if((fe(c[(c[g>>2]|0)+(c[h>>2]<<2)>>2]|0)|0)==5){m=9;break}a=cI(c[(c[g>>2]|0)+(c[j>>2]<<2)>>2]|0,c[(c[g>>2]|0)+(c[h>>2]<<2)>>2]|0,c[l>>2]|0)|0;if((a^c[k>>2]|0)>=0)c[j>>2]=c[h>>2];c[h>>2]=(c[h>>2]|0)+1}if((m|0)==9){i=n;return}pe(c[e>>2]|0,c[(c[g>>2]|0)+(c[j>>2]<<2)>>2]|0);i=n;return}function YO(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;g=n+28|0;f=n+20|0;k=n+16|0;l=n+12|0;j=n+8|0;h=n+4|0;m=n;c[g>>2]=a;c[n+24>>2]=d;c[f>>2]=e;c[k>>2]=c[c[f>>2]>>2];c[l>>2]=xe(c[g>>2]|0,40)|0;if(!(c[l>>2]|0)){i=n;return}a=(fe(c[c[f>>2]>>2]|0)|0)==5;f=(b[(c[l>>2]|0)+8>>1]|0)!=0;if(a){if(!f){i=n;return}IP(c[g>>2]|0);i=n;return}d=c[g>>2]|0;if(!f){m=we(d)|0;c[(c[l>>2]|0)+32>>2]=m;gh(c[l>>2]|0,c[k>>2]|0)|0;i=n;return}c[m>>2]=HP(d)|0;c[j>>2]=(ve(c[g>>2]|0)|0)!=0&1;c[h>>2]=cI(c[l>>2]|0,c[k>>2]|0,c[m>>2]|0)|0;if(!((c[j>>2]|0)!=0&(c[h>>2]|0)<0)?!((c[j>>2]|0)==0&(c[h>>2]|0)>0):0){IP(c[g>>2]|0);i=n;return}gh(c[l>>2]|0,c[k>>2]|0)|0;i=n;return}function ZO(a){a=a|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f+4|0;e=f;c[d>>2]=a;c[e>>2]=xe(c[d>>2]|0,0)|0;if(!(c[e>>2]|0)){i=f;return}if(b[(c[e>>2]|0)+8>>1]|0)pe(c[d>>2]|0,c[e>>2]|0);Ug(c[e>>2]|0);i=f;return}function _O(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+16|0;e=g+12|0;h=g+4|0;f=g;c[e>>2]=a;c[g+8>>2]=b;c[h>>2]=d;c[f>>2]=0;switch(fe(c[c[h>>2]>>2]|0)|0){case 1:{c[f>>2]=40517;break}case 3:{c[f>>2]=47031;break}case 2:{c[f>>2]=40512;break}case 4:{c[f>>2]=47036;break}default:c[f>>2]=40525}ne(c[e>>2]|0,c[f>>2]|0,-1,0);i=g;return}function $O(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;g=l+16|0;h=l+8|0;j=l+4|0;k=l;c[g>>2]=b;c[l+12>>2]=e;c[h>>2]=f;switch(fe(c[c[h>>2]>>2]|0)|0){case 2:case 1:case 4:{ke(c[g>>2]|0,be(c[c[h>>2]>>2]|0)|0);i=l;return}case 3:{c[k>>2]=ae(c[c[h>>2]>>2]|0)|0;if(!(c[k>>2]|0)){i=l;return}c[j>>2]=0;a:while(1){if(!(a[c[k>>2]>>0]|0))break;c[j>>2]=(c[j>>2]|0)+1;b=c[k>>2]|0;c[k>>2]=b+1;if((d[b>>0]|0)<192)continue;while(1){if((d[c[k>>2]>>0]&192|0)!=128)continue a;c[k>>2]=(c[k>>2]|0)+1}}ke(c[g>>2]|0,c[j>>2]|0);i=l;return}default:{me(c[g>>2]|0);i=l;return}}}function aP(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;f=q+40|0;g=q+32|0;o=q+28|0;p=q+24|0;k=q+20|0;l=q+16|0;m=q+12|0;n=q+8|0;h=q+4|0;j=q;c[f>>2]=a;c[q+36>>2]=b;c[g>>2]=e;c[h>>2]=1;c[m>>2]=fe(c[c[g>>2]>>2]|0)|0;c[n>>2]=fe(c[(c[g>>2]|0)+4>>2]|0)|0;if((c[m>>2]|0)==5|(c[n>>2]|0)==5){i=q;return}c[k>>2]=be(c[c[g>>2]>>2]|0)|0;c[l>>2]=be(c[(c[g>>2]|0)+4>>2]|0)|0;b=c[c[g>>2]>>2]|0;if((c[m>>2]|0)==4&(c[n>>2]|0)==4){c[o>>2]=$d(b)|0;c[p>>2]=$d(c[(c[g>>2]|0)+4>>2]|0)|0;c[j>>2]=0}else{c[o>>2]=ae(b)|0;c[p>>2]=ae(c[(c[g>>2]|0)+4>>2]|0)|0;c[j>>2]=1}a:while(1){if((c[l>>2]|0)>(c[k>>2]|0))break;if(!(vQ(c[o>>2]|0,c[p>>2]|0,c[l>>2]|0)|0))break;c[h>>2]=(c[h>>2]|0)+1;while(1){c[k>>2]=(c[k>>2]|0)+-1;c[o>>2]=(c[o>>2]|0)+1;if(!(c[j>>2]|0))continue a;if(((d[c[o>>2]>>0]|0)&192|0)!=128)continue a}}if((c[l>>2]|0)>(c[k>>2]|0))c[h>>2]=0;ke(c[f>>2]|0,c[h>>2]|0);i=q;return}function bP(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;m=r+44|0;g=r+40|0;h=r+36|0;p=r+32|0;q=r+28|0;j=r+24|0;l=r+20|0;n=r+8|0;o=r;k=r+16|0;c[m>>2]=b;c[g>>2]=e;c[h>>2]=f;c[k>>2]=0;if((fe(c[(c[h>>2]|0)+4>>2]|0)|0)==5){i=r;return}if((c[g>>2]|0)==3?(fe(c[(c[h>>2]|0)+8>>2]|0)|0)==5:0){i=r;return}c[l>>2]=fe(c[c[h>>2]>>2]|0)|0;b=de(c[(c[h>>2]|0)+4>>2]|0)|0;e=n;c[e>>2]=b;c[e+4>>2]=((b|0)<0)<<31>>31;e=c[c[h>>2]>>2]|0;a:do if((c[l>>2]|0)==4){c[j>>2]=be(e)|0;c[p>>2]=$d(c[c[h>>2]>>2]|0)|0;if(!(c[p>>2]|0)){i=r;return}}else{c[p>>2]=ae(e)|0;if(!(c[p>>2]|0)){i=r;return}c[j>>2]=0;if((c[n+4>>2]|0)<0){c[q>>2]=c[p>>2];while(1){if(!(a[c[q>>2]>>0]|0))break a;b=c[q>>2]|0;c[q>>2]=b+1;b:do if((d[b>>0]|0)>=192)while(1){if((d[c[q>>2]>>0]&192|0)!=128)break b;c[q>>2]=(c[q>>2]|0)+1}while(0);c[j>>2]=(c[j>>2]|0)+1}}}while(0);if((c[g>>2]|0)==3){g=de(c[(c[h>>2]|0)+8>>2]|0)|0;h=o;c[h>>2]=g;c[h+4>>2]=((g|0)<0)<<31>>31;if((c[o+4>>2]|0)<0){g=o;g=fR(0,0,c[g>>2]|0,c[g+4>>2]|0)|0;h=o;c[h>>2]=g;c[h+4>>2]=C;c[k>>2]=1}}else{g=c[(we(c[m>>2]|0)|0)+88>>2]|0;h=o;c[h>>2]=g;c[h+4>>2]=((g|0)<0)<<31>>31}do if((c[n+4>>2]|0)<0){g=c[j>>2]|0;h=n;g=gR(c[h>>2]|0,c[h+4>>2]|0,g|0,((g|0)<0)<<31>>31|0)|0;h=n;c[h>>2]=g;c[h+4>>2]=C;if((c[n+4>>2]|0)<0){f=n;g=o;f=gR(c[g>>2]|0,c[g+4>>2]|0,c[f>>2]|0,c[f+4>>2]|0)|0;g=C;b=o;c[b>>2]=f;c[b+4>>2]=g;b=(c[o+4>>2]|0)<0;h=o;c[h>>2]=b?0:f;c[h+4>>2]=b?0:g;h=n;c[h>>2]=0;c[h+4>>2]=0}}else{h=n;g=c[h+4>>2]|0;if((g|0)>0|(g|0)==0&(c[h>>2]|0)>>>0>0){g=n;g=gR(c[g>>2]|0,c[g+4>>2]|0,-1,-1)|0;h=n;c[h>>2]=g;c[h+4>>2]=C;break}h=o;g=c[h+4>>2]|0;if((g|0)>0|(g|0)==0&(c[h>>2]|0)>>>0>0){g=o;g=gR(c[g>>2]|0,c[g+4>>2]|0,-1,-1)|0;h=o;c[h>>2]=g;c[h+4>>2]=C}}while(0);if((c[k>>2]|0)!=0?(h=o,k=n,h=fR(c[k>>2]|0,c[k+4>>2]|0,c[h>>2]|0,c[h+4>>2]|0)|0,k=n,c[k>>2]=h,c[k+4>>2]=C,(c[n+4>>2]|0)<0):0){h=n;k=o;h=gR(c[k>>2]|0,c[k+4>>2]|0,c[h>>2]|0,c[h+4>>2]|0)|0;k=o;c[k>>2]=h;c[k+4>>2]=C;k=n;c[k>>2]=0;c[k+4>>2]=0}if((c[l>>2]|0)==4){h=n;l=o;l=gR(c[h>>2]|0,c[h+4>>2]|0,c[l>>2]|0,c[l+4>>2]|0)|0;h=C;q=c[j>>2]|0;k=((q|0)<0)<<31>>31;if((h|0)>(k|0)|(h|0)==(k|0)&l>>>0>q>>>0){l=c[j>>2]|0;j=n;j=fR(l|0,((l|0)<0)<<31>>31|0,c[j>>2]|0,c[j+4>>2]|0)|0;l=C;k=o;c[k>>2]=j;c[k+4>>2]=l;k=(c[o+4>>2]|0)<0;q=o;c[q>>2]=k?0:j;c[q+4>>2]=k?0:l}q=o;he(c[m>>2]|0,(c[p>>2]|0)+(c[n>>2]|0)|0,c[q>>2]|0,c[q+4>>2]|0,-1);i=r;return}while(1){l=n;e=c[p>>2]|0;if(!((d[c[p>>2]>>0]|0)!=0?(c[l>>2]|0)!=0|(c[l+4>>2]|0)!=0:0))break;c[p>>2]=e+1;c:do if((d[e>>0]|0)>=192)while(1){if((d[c[p>>2]>>0]&192|0)!=128)break c;c[p>>2]=(c[p>>2]|0)+1}while(0);k=n;k=gR(c[k>>2]|0,c[k+4>>2]|0,-1,-1)|0;l=n;c[l>>2]=k;c[l+4>>2]=C}c[q>>2]=e;while(1){n=o;if(!((d[c[q>>2]>>0]|0)!=0?(c[n>>2]|0)!=0|(c[n+4>>2]|0)!=0:0))break;n=c[q>>2]|0;c[q>>2]=n+1;d:do if((d[n>>0]|0)>=192)while(1){if((d[c[q>>2]>>0]&192|0)!=128)break d;c[q>>2]=(c[q>>2]|0)+1}while(0);l=o;l=gR(c[l>>2]|0,c[l+4>>2]|0,-1,-1)|0;n=o;c[n>>2]=l;c[n+4>>2]=C}q=(c[q>>2]|0)-(c[p>>2]|0)|0;oe(c[m>>2]|0,c[p>>2]|0,q,((q|0)<0)<<31>>31,-1,1);i=r;return}function cP(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+80|0;m=p;f=p+64|0;g=p+60|0;h=p+56|0;n=p+44|0;l=p+16|0;o=p+12|0;k=p+8|0;j=p+4|0;c[f>>2]=b;c[g>>2]=d;c[h>>2]=e;c[j>>2]=we(c[f>>2]|0)|0;if((c[g>>2]|0)<1){i=p;return}b=ae(c[c[h>>2]>>2]|0)|0;c[o>>2]=b;if(!b){i=p;return}c[n>>2]=(c[g>>2]|0)-1;c[n+4>>2]=0;c[n+8>>2]=(c[h>>2]|0)+4;cg(l,c[j>>2]|0,0,0,c[(c[j>>2]|0)+88>>2]|0);a[l+25>>0]=2;o=c[o>>2]|0;c[m>>2]=n;$z(l,o,m);c[k>>2]=c[l+12>>2];n=c[f>>2]|0;o=eg(l)|0;ne(n,o,c[k>>2]|0,170);i=p;return}function dP(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0;h=i;i=i+16|0;f=h+12|0;j=h+4|0;g=h;c[f>>2]=a;c[h+8>>2]=b;c[j>>2]=e;c[g>>2]=ae(c[c[j>>2]>>2]|0)|0;if(!(c[g>>2]|0)){i=h;return}if(!(d[c[g>>2]>>0]|0)){i=h;return}j=c[f>>2]|0;ke(j,jC(g)|0);i=h;return}function eP(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=i;i=i+48|0;f=o+32|0;g=o+28|0;h=o+24|0;m=o+20|0;n=o+16|0;k=o+12|0;l=o;j=o+8|0;c[f>>2]=b;c[g>>2]=d;c[h>>2]=e;b=(c[g>>2]<<2)+1|0;b=Jd(b,((b|0)<0)<<31>>31)|0;c[m>>2]=b;c[n>>2]=b;if(!(c[m>>2]|0)){te(c[f>>2]|0);i=o;return}c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[g>>2]|0))break;p=ee(c[(c[h>>2]|0)+(c[k>>2]<<2)>>2]|0)|0;b=C;e=l;c[e>>2]=p;c[e+4>>2]=b;e=l;d=c[e+4>>2]|0;e=(c[l+4>>2]|0)<0|((d|0)>0|(d|0)==0&(c[e>>2]|0)>>>0>1114111);d=l;c[d>>2]=e?65533:p;c[d+4>>2]=e?0:b;c[j>>2]=c[l>>2]&2097151;d=c[j>>2]|0;do if((c[j>>2]|0)>>>0>=128){e=c[j>>2]|0;if(d>>>0<2048){b=c[n>>2]|0;c[n>>2]=b+1;a[b>>0]=192+(e>>>6&31);b=128+(c[j>>2]&63)&255;p=c[n>>2]|0;c[n>>2]=p+1;a[p>>0]=b;break}d=c[j>>2]|0;if(e>>>0<65536){p=c[n>>2]|0;c[n>>2]=p+1;a[p>>0]=224+(d>>>12&15);p=128+((c[j>>2]|0)>>>6&63)&255;b=c[n>>2]|0;c[n>>2]=b+1;a[b>>0]=p;b=128+(c[j>>2]&63)&255;p=c[n>>2]|0;c[n>>2]=p+1;a[p>>0]=b;break}else{b=c[n>>2]|0;c[n>>2]=b+1;a[b>>0]=240+(d>>>18&7);b=128+((c[j>>2]|0)>>>12&63)&255;p=c[n>>2]|0;c[n>>2]=p+1;a[p>>0]=b;p=128+((c[j>>2]|0)>>>6&63)&255;b=c[n>>2]|0;c[n>>2]=b+1;a[b>>0]=p;b=128+(c[j>>2]&63)&255;p=c[n>>2]|0;c[n>>2]=p+1;a[p>>0]=b;break}}else{p=c[n>>2]|0;c[n>>2]=p+1;a[p>>0]=d}while(0);c[k>>2]=(c[k>>2]|0)+1}p=(c[n>>2]|0)-(c[m>>2]|0)|0;oe(c[f>>2]|0,c[m>>2]|0,p,((p|0)<0)<<31>>31,148,1);i=o;return}function fP(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0;k=i;i=i+32|0;e=k+24|0;f=k+16|0;g=k+8|0;j=k;c[e>>2]=a;c[k+20>>2]=b;c[f>>2]=d;switch(fe(c[c[f>>2]>>2]|0)|0){case 1:{j=g;c[j>>2]=ee(c[c[f>>2]>>2]|0)|0;c[j+4>>2]=C;do if((c[g+4>>2]|0)<0){j=g;if(!((c[j>>2]|0)==0?(c[j+4>>2]|0)==-2147483648:0)){a=g;a=fR(0,0,c[a>>2]|0,c[a+4>>2]|0)|0;j=g;c[j>>2]=a;c[j+4>>2]=C;break}je(c[e>>2]|0,46986,-1);i=k;return}while(0);j=g;le(c[e>>2]|0,c[j>>2]|0,c[j+4>>2]|0);i=k;return}case 5:{me(c[e>>2]|0);i=k;return}default:{h[j>>3]=+ce(c[c[f>>2]>>2]|0);if(+h[j>>3]<0.0)h[j>>3]=-+h[j>>3];ie(c[e>>2]|0,+h[j>>3]);i=k;return}}}function gP(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0.0;m=i;i=i+48|0;k=m+8|0;e=m+40|0;n=m+36|0;f=m+32|0;g=m+28|0;j=m;l=m+24|0;c[e>>2]=a;c[n>>2]=b;c[f>>2]=d;c[g>>2]=0;do if((c[n>>2]|0)==2)if(5==(fe(c[(c[f>>2]|0)+4>>2]|0)|0)){i=m;return}else{n=de(c[(c[f>>2]|0)+4>>2]|0)|0;c[g>>2]=n;n=(c[g>>2]|0)>30?30:n;c[g>>2]=n;c[g>>2]=(c[g>>2]|0)<0?0:n;break}while(0);if((fe(c[c[f>>2]>>2]|0)|0)==5){i=m;return}h[j>>3]=+ce(c[c[f>>2]>>2]|0);do if((c[g>>2]|0)==0&+h[j>>3]>=0.0&+h[j>>3]<9223372036854775808.0){o=+h[j>>3]+.5;h[j>>3]=+(~~o>>>0>>>0)+4294967296.0*+((+N(o)>=1.0?o>0.0?~~+$(+M(o/4294967296.0),4294967295.0)>>>0:~~+Z((o-+(~~o>>>0))/4294967296.0)>>>0:0)|0)}else{if((c[g>>2]|0)==0&+h[j>>3]<0.0?-+h[j>>3]<9223372036854775808.0:0){o=-+h[j>>3]+.5;h[j>>3]=-(+(~~o>>>0>>>0)+4294967296.0*+((+N(o)>=1.0?o>0.0?~~+$(+M(o/4294967296.0),4294967295.0)>>>0:~~+Z((o-+(~~o>>>0))/4294967296.0)>>>0:0)|0));break}o=+h[j>>3];c[k>>2]=c[g>>2];h[k+8>>3]=o;c[l>>2]=Od(47026,k)|0;if(c[l>>2]|0){n=c[l>>2]|0;Ky(n,j,If(c[l>>2]|0)|0,1)|0;Kd(c[l>>2]|0);break}te(c[e>>2]|0);i=m;return}while(0);ie(c[e>>2]|0,+h[j>>3]);i=m;return}function hP(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+32|0;g=m+24|0;n=m+16|0;k=m+12|0;l=m+8|0;h=m+4|0;j=m;c[g>>2]=b;c[m+20>>2]=e;c[n>>2]=f;c[l>>2]=ae(c[c[n>>2]>>2]|0)|0;c[j>>2]=be(c[c[n>>2]>>2]|0)|0;if(!(c[l>>2]|0)){i=m;return}b=c[g>>2]|0;n=c[j>>2]|0;n=gR(n|0,((n|0)<0)<<31>>31|0,1,0)|0;c[k>>2]=GP(b,n,C)|0;if(!(c[k>>2]|0)){i=m;return}c[h>>2]=0;while(1){if((c[h>>2]|0)>=(c[j>>2]|0))break;a[(c[k>>2]|0)+(c[h>>2]|0)>>0]=a[(c[l>>2]|0)+(c[h>>2]|0)>>0]&~(d[19267+(d[(c[l>>2]|0)+(c[h>>2]|0)>>0]|0)>>0]&32);c[h>>2]=(c[h>>2]|0)+1}ne(c[g>>2]|0,c[k>>2]|0,c[j>>2]|0,148);i=m;return}function iP(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+32|0;g=m+24|0;n=m+16|0;k=m+12|0;l=m+8|0;h=m+4|0;j=m;c[g>>2]=b;c[m+20>>2]=e;c[n>>2]=f;c[l>>2]=ae(c[c[n>>2]>>2]|0)|0;c[j>>2]=be(c[c[n>>2]>>2]|0)|0;if(!(c[l>>2]|0)){i=m;return}b=c[g>>2]|0;n=c[j>>2]|0;n=gR(n|0,((n|0)<0)<<31>>31|0,1,0)|0;c[k>>2]=GP(b,n,C)|0;if(!(c[k>>2]|0)){i=m;return}c[h>>2]=0;while(1){if((c[h>>2]|0)>=(c[j>>2]|0))break;a[(c[k>>2]|0)+(c[h>>2]|0)>>0]=a[18477+(d[(c[l>>2]|0)+(c[h>>2]|0)>>0]|0)>>0]|0;c[h>>2]=(c[h>>2]|0)+1}ne(c[g>>2]|0,c[k>>2]|0,c[j>>2]|0,148);i=m;return}function jP(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e+8|0;c[f>>2]=a;c[e+4>>2]=b;c[e>>2]=d;a=c[f>>2]|0;ne(a,jf()|0,-1,0);i=e;return}function kP(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=i;i=i+48|0;g=o+28|0;p=o+20|0;j=o+16|0;k=o+12|0;l=o+8|0;n=o+4|0;m=o;h=o+32|0;c[g>>2]=b;c[o+24>>2]=e;c[p>>2]=f;c[l>>2]=$d(c[c[p>>2]>>2]|0)|0;c[k>>2]=be(c[c[p>>2]>>2]|0)|0;f=c[g>>2]|0;b=c[k>>2]|0;b=rR(b|0,((b|0)<0)<<31>>31|0,2,0)|0;b=gR(b|0,C|0,1,0)|0;b=GP(f,b,C)|0;c[n>>2]=b;c[m>>2]=b;if(!(c[n>>2]|0)){i=o;return}c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[k>>2]|0))break;a[h>>0]=a[c[l>>2]>>0]|0;p=a[47010+((d[h>>0]|0)>>4&15)>>0]|0;b=c[m>>2]|0;c[m>>2]=b+1;a[b>>0]=p;b=a[47010+((d[h>>0]|0)&15)>>0]|0;p=c[m>>2]|0;c[m>>2]=p+1;a[p>>0]=b;c[j>>2]=(c[j>>2]|0)+1;c[l>>2]=(c[l>>2]|0)+1}a[c[m>>2]>>0]=0;ne(c[g>>2]|0,c[n>>2]|0,c[k>>2]<<1,148);i=o;return}function lP(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=i;i=i+32|0;e=g+16|0;f=g;c[e>>2]=a;c[g+12>>2]=b;c[g+8>>2]=d;Sd(8,f);if((c[f+4>>2]|0)<0){d=f;d=fR(0,0,c[d>>2]|0,c[d+4>>2]&2147483647|0)|0;a=f;c[a>>2]=d;c[a+4>>2]=C}le(c[e>>2]|0,c[f>>2]|0,c[f+4>>2]|0);i=g;return}function mP(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;h=i;i=i+32|0;e=h+16|0;j=h+8|0;f=h+4|0;g=h;c[e>>2]=a;c[h+12>>2]=b;c[j>>2]=d;a=de(c[c[j>>2]>>2]|0)|0;c[f>>2]=a;c[f>>2]=(c[f>>2]|0)<1?1:a;a=c[f>>2]|0;c[g>>2]=GP(c[e>>2]|0,a,((a|0)<0)<<31>>31)|0;if(!(c[g>>2]|0)){i=h;return}Sd(c[f>>2]|0,c[g>>2]|0);ge(c[e>>2]|0,c[g>>2]|0,c[f>>2]|0,148);i=h;return}function nP(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+16|0;e=g+12|0;f=g+4|0;h=g;c[e>>2]=a;c[g+8>>2]=b;c[f>>2]=d;c[h>>2]=HP(c[e>>2]|0)|0;if(!(cI(c[c[f>>2]>>2]|0,c[(c[f>>2]|0)+4>>2]|0,c[h>>2]|0)|0)){i=g;return}pe(c[e>>2]|0,c[c[f>>2]>>2]|0);i=g;return}function oP(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e+8|0;c[f>>2]=a;c[e+4>>2]=b;c[e>>2]=d;a=c[f>>2]|0;ne(a,kf()|0,-1,0);i=e;return}function pP(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e;g=e+4|0;c[e+12>>2]=a;c[e+8>>2]=b;c[g>>2]=d;a=de(c[c[g>>2]>>2]|0)|0;c[f>>2]=ae(c[(c[g>>2]|0)+4>>2]|0)|0;Rd(a,19255,f);i=e;return}function qP(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+16|0;e=g+12|0;h=g+4|0;f=g;c[e>>2]=a;c[g+8>>2]=b;c[h>>2]=d;a=ae(c[c[h>>2]>>2]|0)|0;c[f>>2]=a;if(!a){i=g;return}h=c[e>>2]|0;ke(h,yd(c[f>>2]|0)|0);i=g;return}function rP(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;g=e+12|0;h=e+4|0;f=e;c[g>>2]=a;c[e+8>>2]=b;c[h>>2]=d;c[f>>2]=de(c[c[h>>2]>>2]|0)|0;a=c[g>>2]|0;ne(a,Ad(c[f>>2]|0)|0,-1,0);i=e;return}function sP(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=i;i=i+144|0;s=y+32|0;r=y+24|0;g=y+80|0;j=y+72|0;p=y+16|0;q=y+8|0;w=y+84|0;x=y+68|0;v=y+64|0;o=y+60|0;k=y+56|0;l=y+52|0;m=y+48|0;n=y;u=y+44|0;t=y+40|0;c[g>>2]=b;c[y+76>>2]=e;c[j>>2]=f;switch(fe(c[c[j>>2]>>2]|0)|0){case 2:{h[p>>3]=+ce(c[c[j>>2]>>2]|0);h[r>>3]=+h[p>>3];Qd(50,w,29142,r)|0;Ky(w,q,20,1)|0;if(+h[p>>3]!=+h[q>>3]){h[s>>3]=+h[p>>3];Qd(50,w,47003,s)|0}ne(c[g>>2]|0,w,-1,-1);i=y;return}case 1:{pe(c[g>>2]|0,c[c[j>>2]>>2]|0);i=y;return}case 4:{c[x>>2]=0;c[v>>2]=$d(c[c[j>>2]>>2]|0)|0;c[o>>2]=be(c[c[j>>2]>>2]|0)|0;u=c[g>>2]|0;w=c[o>>2]|0;c[x>>2]=GP(u,gR(rR(2,0,w|0,((w|0)<0)<<31>>31|0)|0,C|0,4,0)|0,C)|0;if(!(c[x>>2]|0)){i=y;return}c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[o>>2]|0))break;a[(c[x>>2]|0)+((c[k>>2]<<1)+2)>>0]=a[47010+(a[(c[v>>2]|0)+(c[k>>2]|0)>>0]>>4&15)>>0]|0;a[(c[x>>2]|0)+((c[k>>2]<<1)+3)>>0]=a[47010+(a[(c[v>>2]|0)+(c[k>>2]|0)>>0]&15)>>0]|0;c[k>>2]=(c[k>>2]|0)+1}a[(c[x>>2]|0)+((c[o>>2]<<1)+2)>>0]=39;a[(c[x>>2]|0)+((c[o>>2]<<1)+3)>>0]=0;
  69. a[c[x>>2]>>0]=88;a[(c[x>>2]|0)+1>>0]=39;ne(c[g>>2]|0,c[x>>2]|0,-1,-1);Kd(c[x>>2]|0);i=y;return}case 3:{c[u>>2]=ae(c[c[j>>2]>>2]|0)|0;if(!(c[u>>2]|0)){i=y;return}c[l>>2]=0;x=n;c[x>>2]=0;c[x+4>>2]=0;while(1){if(!(a[(c[u>>2]|0)+(c[l>>2]|0)>>0]|0))break;if((d[(c[u>>2]|0)+(c[l>>2]|0)>>0]|0)==39){w=n;w=gR(c[w>>2]|0,c[w+4>>2]|0,1,0)|0;x=n;c[x>>2]=w;c[x+4>>2]=C}c[l>>2]=(c[l>>2]|0)+1}w=c[g>>2]|0;v=c[l>>2]|0;x=n;x=gR(v|0,((v|0)<0)<<31>>31|0,c[x>>2]|0,c[x+4>>2]|0)|0;x=gR(x|0,C|0,3,0)|0;c[t>>2]=GP(w,x,C)|0;if(!(c[t>>2]|0)){i=y;return}a[c[t>>2]>>0]=39;c[l>>2]=0;c[m>>2]=1;while(1){if(!(a[(c[u>>2]|0)+(c[l>>2]|0)>>0]|0))break;w=a[(c[u>>2]|0)+(c[l>>2]|0)>>0]|0;x=c[m>>2]|0;c[m>>2]=x+1;a[(c[t>>2]|0)+x>>0]=w;if((d[(c[u>>2]|0)+(c[l>>2]|0)>>0]|0)==39){x=c[m>>2]|0;c[m>>2]=x+1;a[(c[t>>2]|0)+x>>0]=39}c[l>>2]=(c[l>>2]|0)+1}x=c[m>>2]|0;c[m>>2]=x+1;a[(c[t>>2]|0)+x>>0]=39;a[(c[t>>2]|0)+(c[m>>2]|0)>>0]=0;ne(c[g>>2]|0,c[t>>2]|0,c[m>>2]|0,148);i=y;return}default:{ne(c[g>>2]|0,40498,4,0);i=y;return}}}function tP(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;g=e+12|0;f=e;c[g>>2]=a;c[e+8>>2]=b;c[e+4>>2]=d;c[f>>2]=we(c[g>>2]|0)|0;d=c[g>>2]|0;a=of(c[f>>2]|0)|0;le(d,a,C);i=e;return}function uP(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;g=e+12|0;f=e;c[g>>2]=a;c[e+8>>2]=b;c[e+4>>2]=d;c[f>>2]=we(c[g>>2]|0)|0;a=c[g>>2]|0;ke(a,pf(c[f>>2]|0)|0);i=e;return}function vP(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;g=e+12|0;f=e;c[g>>2]=a;c[e+8>>2]=b;c[e+4>>2]=d;c[f>>2]=we(c[g>>2]|0)|0;a=c[g>>2]|0;ke(a,qf(c[f>>2]|0)|0);i=e;return}function wP(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=i;i=i+80|0;p=w+64|0;g=w+56|0;v=w+52|0;n=w+48|0;o=w+44|0;u=w+40|0;s=w+36|0;l=w+32|0;m=w+28|0;k=w;j=w+24|0;q=w+20|0;r=w+16|0;t=w+12|0;h=w+8|0;c[p>>2]=b;c[w+60>>2]=e;c[g>>2]=f;c[v>>2]=ae(c[c[g>>2]>>2]|0)|0;if(!(c[v>>2]|0)){i=w;return}c[s>>2]=be(c[c[g>>2]>>2]|0)|0;c[n>>2]=ae(c[(c[g>>2]|0)+4>>2]|0)|0;if(!(c[n>>2]|0)){i=w;return}if(!(d[c[n>>2]>>0]|0)){pe(c[p>>2]|0,c[c[g>>2]>>2]|0);i=w;return}c[l>>2]=be(c[(c[g>>2]|0)+4>>2]|0)|0;c[o>>2]=ae(c[(c[g>>2]|0)+8>>2]|0)|0;if(!(c[o>>2]|0)){i=w;return}c[m>>2]=be(c[(c[g>>2]|0)+8>>2]|0)|0;f=(c[s>>2]|0)+1|0;b=k;c[b>>2]=f;c[b+4>>2]=((f|0)<0)<<31>>31;b=k;c[u>>2]=GP(c[p>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;if(!(c[u>>2]|0)){i=w;return}c[j>>2]=(c[s>>2]|0)-(c[l>>2]|0);c[r>>2]=0;c[q>>2]=0;while(1){if((c[q>>2]|0)>(c[j>>2]|0)){g=18;break}if((d[(c[v>>2]|0)+(c[q>>2]|0)>>0]|0|0)==(d[c[n>>2]>>0]|0|0)?(vQ((c[v>>2]|0)+(c[q>>2]|0)|0,c[n>>2]|0,c[l>>2]|0)|0)==0:0){c[h>>2]=we(c[p>>2]|0)|0;g=(c[m>>2]|0)-(c[l>>2]|0)|0;f=k;g=gR(c[f>>2]|0,c[f+4>>2]|0,g|0,((g|0)<0)<<31>>31|0)|0;f=k;c[f>>2]=g;c[f+4>>2]=C;f=k;f=fR(c[f>>2]|0,c[f+4>>2]|0,1,0)|0;g=C;b=c[(c[h>>2]|0)+88>>2]|0;e=((b|0)<0)<<31>>31;if((g|0)>(e|0)|(g|0)==(e|0)&f>>>0>b>>>0){g=13;break}c[t>>2]=c[u>>2];b=c[k>>2]|0;c[u>>2]=Md(c[u>>2]|0,b,((b|0)<0)<<31>>31)|0;if(!(c[u>>2]|0)){g=15;break}iR((c[u>>2]|0)+(c[r>>2]|0)|0,c[o>>2]|0,c[m>>2]|0)|0;c[r>>2]=(c[r>>2]|0)+(c[m>>2]|0);c[q>>2]=(c[q>>2]|0)+((c[l>>2]|0)-1)}else{f=a[(c[v>>2]|0)+(c[q>>2]|0)>>0]|0;b=c[r>>2]|0;c[r>>2]=b+1;a[(c[u>>2]|0)+b>>0]=f}c[q>>2]=(c[q>>2]|0)+1}if((g|0)==13){se(c[p>>2]|0);Kd(c[u>>2]|0);i=w;return}else if((g|0)==15){te(c[p>>2]|0);Kd(c[t>>2]|0);i=w;return}else if((g|0)==18){iR((c[u>>2]|0)+(c[r>>2]|0)|0,(c[v>>2]|0)+(c[q>>2]|0)|0,(c[s>>2]|0)-(c[q>>2]|0)|0)|0;c[r>>2]=(c[r>>2]|0)+((c[s>>2]|0)-(c[q>>2]|0));a[(c[u>>2]|0)+(c[r>>2]|0)>>0]=0;ne(c[p>>2]|0,c[u>>2]|0,c[r>>2]|0,148);i=w;return}}function xP(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;g=i;i=i+32|0;e=g+20|0;j=g+12|0;h=g;f=g+8|0;c[e>>2]=a;c[g+16>>2]=b;c[j>>2]=d;j=ee(c[c[j>>2]>>2]|0)|0;d=C;b=h;c[b>>2]=j;c[b+4>>2]=d;b=(c[h+4>>2]|0)<0;a=h;c[a>>2]=b?0:j;c[a+4>>2]=b?0:d;a=h;c[f>>2]=qe(c[e>>2]|0,c[a>>2]|0,c[a+4>>2]|0)|0;if(!(c[f>>2]|0)){i=g;return}re(c[e>>2]|0,c[f>>2]|0);i=g;return}function yP(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,j=0,k=0,l=0,m=0,n=0,o=0.0;m=i;i=i+32|0;n=m+24|0;g=m+16|0;j=m+12|0;k=m+8|0;l=m;c[n>>2]=b;c[m+20>>2]=e;c[g>>2]=f;c[j>>2]=xe(c[n>>2]|0,32)|0;c[k>>2]=Te(c[c[g>>2]>>2]|0)|0;if(!((c[j>>2]|0)!=0&(c[k>>2]|0)!=5)){i=m;return}n=(c[j>>2]|0)+16|0;b=n;b=gR(c[b>>2]|0,c[b+4>>2]|0,1,0)|0;c[n>>2]=b;c[n+4>>2]=C;g=c[c[g>>2]>>2]|0;if((c[k>>2]|0)!=1){o=+ce(g);n=c[j>>2]|0;h[n>>3]=+h[n>>3]+o;a[(c[j>>2]|0)+25>>0]=1;i=m;return}n=ee(g)|0;k=l;c[k>>2]=n;c[k+4>>2]=C;k=l;n=c[j>>2]|0;h[n>>3]=+h[n>>3]+(+((c[k>>2]|0)>>>0)+4294967296.0*+(c[k+4>>2]|0));if(d[(c[j>>2]|0)+25>>0]|0|(d[(c[j>>2]|0)+24>>0]|0)){i=m;return}n=l;if(!(_H((c[j>>2]|0)+8|0,c[n>>2]|0,c[n+4>>2]|0)|0)){i=m;return}a[(c[j>>2]|0)+24>>0]=1;i=m;return}function zP(b){b=b|0;var d=0,e=0,f=0,g=0;f=i;i=i+16|0;d=f+4|0;e=f;c[d>>2]=b;c[e>>2]=xe(c[d>>2]|0,0)|0;if(!(c[e>>2]|0)){i=f;return}b=(c[e>>2]|0)+16|0;g=c[b+4>>2]|0;if(!((g|0)>0|(g|0)==0&(c[b>>2]|0)>>>0>0)){i=f;return}if(a[(c[e>>2]|0)+24>>0]|0){je(c[d>>2]|0,46986,-1);i=f;return}d=c[d>>2]|0;b=c[e>>2]|0;if(a[(c[e>>2]|0)+25>>0]|0){ie(d,+h[b>>3]);i=f;return}else{g=b+8|0;le(d,c[g>>2]|0,c[g+4>>2]|0);i=f;return}}function AP(a){a=a|0;var b=0,d=0,e=0,f=0.0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;c[b>>2]=xe(c[e>>2]|0,0)|0;a=c[e>>2]|0;if(!(c[b>>2]|0)){f=0.0;ie(a,f);i=d;return}f=+h[c[b>>2]>>3];ie(a,f);i=d;return}function BP(a){a=a|0;var b=0,d=0,e=0,f=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;c[d>>2]=xe(c[b>>2]|0,0)|0;if(!(c[d>>2]|0)){i=e;return}a=(c[d>>2]|0)+16|0;f=c[a+4>>2]|0;if(!((f|0)>0|(f|0)==0&(c[a>>2]|0)>>>0>0)){i=e;return}f=(c[d>>2]|0)+16|0;ie(c[b>>2]|0,+h[c[d>>2]>>3]/(+((c[f>>2]|0)>>>0)+4294967296.0*+(c[f+4>>2]|0)));i=e;return}function CP(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;g=i;i=i+16|0;j=g+12|0;h=g+8|0;e=g+4|0;f=g;c[j>>2]=a;c[h>>2]=b;c[e>>2]=d;c[f>>2]=xe(c[j>>2]|0,8)|0;if(!(c[h>>2]|0)){if(!(c[f>>2]|0)){i=g;return}}else{j=5!=(fe(c[c[e>>2]>>2]|0)|0);if(!(j&(c[f>>2]|0)!=0)){i=g;return}}j=c[f>>2]|0;h=j;h=gR(c[h>>2]|0,c[h+4>>2]|0,1,0)|0;c[j>>2]=h;c[j+4>>2]=C;i=g;return}function DP(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;c[b>>2]=xe(c[e>>2]|0,0)|0;a=c[e>>2]|0;if(!(c[b>>2]|0)){b=0;e=0;le(a,b,e);i=d;return}e=c[b>>2]|0;b=c[e>>2]|0;e=c[e+4>>2]|0;le(a,b,e);i=d;return}function EP(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+48|0;e=p+36|0;f=p+32|0;g=p+28|0;o=p+24|0;m=p+20|0;n=p+16|0;l=p+12|0;k=p+8|0;h=p+4|0;j=p;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;if((fe(c[c[g>>2]>>2]|0)|0)==5){i=p;return}c[m>>2]=xe(c[e>>2]|0,28)|0;if(!(c[m>>2]|0)){i=p;return}c[h>>2]=we(c[e>>2]|0)|0;c[j>>2]=(c[(c[m>>2]|0)+20>>2]|0)==0&1;c[(c[m>>2]|0)+20>>2]=c[(c[h>>2]|0)+88>>2];if(!(c[j>>2]|0)){if((c[f>>2]|0)==2){c[n>>2]=ae(c[(c[g>>2]|0)+4>>2]|0)|0;c[k>>2]=be(c[(c[g>>2]|0)+4>>2]|0)|0}else{c[n>>2]=38266;c[k>>2]=1}if(c[k>>2]|0)aA(c[m>>2]|0,c[n>>2]|0,c[k>>2]|0)}c[o>>2]=ae(c[c[g>>2]>>2]|0)|0;c[l>>2]=be(c[c[g>>2]>>2]|0)|0;if(!(c[o>>2]|0)){i=p;return}aA(c[m>>2]|0,c[o>>2]|0,c[l>>2]|0);i=p;return}function FP(a){a=a|0;var b=0,e=0,f=0;f=i;i=i+16|0;b=f+4|0;e=f;c[b>>2]=a;c[e>>2]=xe(c[b>>2]|0,0)|0;if(!(c[e>>2]|0)){i=f;return}if((d[(c[e>>2]|0)+24>>0]|0|0)==2){se(c[b>>2]|0);i=f;return}b=c[b>>2]|0;if((d[(c[e>>2]|0)+24>>0]|0|0)==1){te(b);i=f;return}else{ne(b,eg(c[e>>2]|0)|0,-1,148);i=f;return}}function GP(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;h=i;i=i+32|0;e=h+16|0;f=h;g=h+12|0;k=h+8|0;c[e>>2]=a;j=f;c[j>>2]=b;c[j+4>>2]=d;c[k>>2]=we(c[e>>2]|0)|0;d=f;j=c[d+4>>2]|0;a=c[(c[k>>2]|0)+88>>2]|0;b=((a|0)<0)<<31>>31;if((j|0)>(b|0)|((j|0)==(b|0)?(c[d>>2]|0)>>>0>a>>>0:0)){se(c[e>>2]|0);c[g>>2]=0;k=c[g>>2]|0;i=h;return k|0}k=f;c[g>>2]=_f(c[k>>2]|0,c[k+4>>2]|0)|0;if(c[g>>2]|0){k=c[g>>2]|0;i=h;return k|0}te(c[e>>2]|0);k=c[g>>2]|0;i=h;return k|0}function HP(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;c[b>>2]=(c[(c[(c[e>>2]|0)+12>>2]|0)+4>>2]|0)+(((c[(c[e>>2]|0)+16>>2]|0)-1|0)*20|0);i=d;return c[(c[b>>2]|0)+16>>2]|0}function IP(b){b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;a[(c[e>>2]|0)+24>>0]=1;i=d;return}function JP(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;a=$t(c[e>>2]|0,c[f>>2]|0)|0;b=c[(c[e>>2]|0)+528>>2]|0;c[b>>2]=(c[b>>2]|0)+a;i=d;return}function KP(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;f=k+12|0;g=k+8|0;h=k+4|0;j=k;c[f>>2]=b;c[g>>2]=d;c[h>>2]=e;if(!(c[g>>2]|0)){e=c[f>>2]|0;j=c[g>>2]|0;Sf(e,j);i=k;return}c[j>>2]=c[g>>2];while(1){if((c[j>>2]|0)>>>0>=((c[g>>2]|0)+((c[h>>2]|0)*20|0)|0)>>>0)break;if(a[(c[j>>2]|0)+1>>0]|0)qA(c[f>>2]|0,a[(c[j>>2]|0)+1>>0]|0,c[(c[j>>2]|0)+16>>2]|0);c[j>>2]=(c[j>>2]|0)+20}e=c[f>>2]|0;j=c[g>>2]|0;Sf(e,j);i=k;return}function LP(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;d=k+20|0;e=k+16|0;g=k+12|0;h=k+8|0;f=k+4|0;j=k;c[d>>2]=a;c[e>>2]=b;c[g>>2]=c[(c[e>>2]|0)+16>>2];while(1){if(!(c[g>>2]|0))break;if(!((c[d>>2]|0)!=0?(c[(c[d>>2]|0)+528>>2]|0)!=0:0)){a=c[(c[g>>2]|0)+12>>2]|0;if(c[(c[g>>2]|0)+16>>2]|0)c[(c[(c[g>>2]|0)+16>>2]|0)+12>>2]=a;else{c[f>>2]=a;a=c[g>>2]|0;if(c[f>>2]|0)a=c[(c[a+12>>2]|0)+8>>2]|0;else a=c[a+8>>2]|0;c[j>>2]=a;Oj((c[(c[e>>2]|0)+64>>2]|0)+56|0,c[j>>2]|0,c[f>>2]|0)|0}if(c[(c[g>>2]|0)+12>>2]|0)c[(c[(c[g>>2]|0)+12>>2]|0)+16>>2]=c[(c[g>>2]|0)+16>>2]}LF(c[d>>2]|0,c[(c[g>>2]|0)+28>>2]|0);LF(c[d>>2]|0,c[(c[g>>2]|0)+28+4>>2]|0);c[h>>2]=c[(c[g>>2]|0)+4>>2];Sf(c[d>>2]|0,c[g>>2]|0);c[g>>2]=c[h>>2]}i=k;return}function MP(a){a=a|0;return((a|32)+-97|0)>>>0<26|0}function NP(a){a=a|0;return((a|0)==32|(a|0)==9)&1|0}function OP(a){a=a|0;return(a+-97|0)>>>0<26|0}function PP(a){a=a|0;return(a+-65|0)>>>0<26|0}function QP(a){a=a|0;var b=0;b=(PP(a)|0)==0;return(b?a:a|32)|0}function RP(a){a=a|0;var b=0;b=(OP(a)|0)==0;return(b?a:a&95)|0}function SP(){var a=0;if(!(c[2492]|0))a=10016;else a=c[(qb()|0)+60>>2]|0;return a|0}function TP(b){b=b|0;var c=0,e=0;c=0;while(1){if((d[47177+c>>0]|0)==(b|0)){e=2;break}c=c+1|0;if((c|0)==87){c=87;b=47265;e=5;break}}if((e|0)==2)if(!c)b=47265;else{b=47265;e=5}if((e|0)==5)while(1){e=b;while(1){b=e+1|0;if(!(a[e>>0]|0))break;else e=b}c=c+-1|0;if(!c)break;else e=5}return b|0}function UP(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=i;i=i+192|0;j=s+152|0;h=s+136|0;r=s+120|0;q=s+104|0;p=s+96|0;m=s+80|0;l=s+64|0;f=s+48|0;n=s+32|0;g=s+16|0;e=s;t=s+176|0;k=s+168|0;c[t>>2]=d;d=(c[t>>2]|0)+(4-1)&~(4-1);o=c[d>>2]|0;c[t>>2]=d+4;o=(b|0)==4?o|32768:o;a:do switch(b|0){case 14:{c[e>>2]=a;c[e+4>>2]=14;c[e+8>>2]=o;d=XP(mb(221,e|0)|0)|0;break}case 9:{c[g>>2]=a;c[g+4>>2]=16;c[g+8>>2]=k;d=mb(221,g|0)|0;switch(d|0){case-22:{c[n>>2]=a;c[n+4>>2]=9;c[n+8>>2]=o;d=mb(221,n|0)|0;break a}case 0:{d=c[k+4>>2]|0;d=(c[k>>2]|0)==2?0-d|0:d;break a}default:{d=XP(d)|0;break a}}}case 1030:{c[f>>2]=a;c[f+4>>2]=1030;c[f+8>>2]=o;d=mb(221,f|0)|0;if((d|0)!=-22){if((d|0)>-1){c[l>>2]=d;c[l+4>>2]=2;c[l+8>>2]=1;mb(221,l|0)|0}d=XP(d)|0;break a}c[m>>2]=a;c[m+4>>2]=1030;c[m+8>>2]=0;d=mb(221,m|0)|0;if((d|0)==-22){c[q>>2]=a;c[q+4>>2]=0;c[q+8>>2]=o;d=mb(221,q|0)|0;if((d|0)>-1){c[r>>2]=d;c[r+4>>2]=2;c[r+8>>2]=1;mb(221,r|0)|0}d=XP(d)|0;break a}else{if((d|0)>-1){c[p>>2]=d;Cb(6,p|0)|0}d=XP(-22)|0;break a}}default:if((b+-12|0)>>>0<5){c[h>>2]=a;c[h+4>>2]=b;c[h+8>>2]=o;d=XP(mb(221,h|0)|0)|0;break a}else{c[j>>2]=a;c[j+4>>2]=b;c[j+8>>2]=o;d=XP(mb(221,j|0)|0)|0;break a}}while(0);i=s;return d|0}function VP(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+32|0;f=e;g=e+16|0;c[g>>2]=d;h=(c[g>>2]|0)+(4-1)&~(4-1);d=c[h>>2]|0;c[g>>2]=h+4;c[f>>2]=a;c[f+4>>2]=b|32768;c[f+8>>2]=d;d=XP(Db(5,f|0)|0)|0;i=e;return d|0}function WP(b,c){b=b|0;c=c|0;var d=0,e=0;d=0;while(1){a[b+d>>0]=a[49069+d>>0]|0;if((d|0)==14)break;else d=d+1|0}if(!c){a[b+14>>0]=48;a[b+15>>0]=0}else{d=14;e=c;while(1){d=d+1|0;if(e>>>0<10)break;else e=(e>>>0)/10|0}a[b+d>>0]=0;while(1){d=d+-1|0;a[b+d>>0]=(c>>>0)%10|0|48;if(c>>>0<10)break;else c=(c>>>0)/10|0}}return}function XP(a){a=a|0;if(a>>>0>4294963200){c[(SP()|0)>>2]=0-a;a=-1}return a|0}function YP(a){a=+a;return+(+X(+(a+-1416.0996898839683))*2247116418577894884661631.0e283*2247116418577894884661631.0e283)}function ZP(a){a=+a;var b=0;h[k>>3]=a;b=hR(c[k>>2]|0,c[k+4>>2]|0,52)|0;b=b&2047;do if(b>>>0>=1024)if(b>>>0<1049){a=+Y(+(a*2.0-1.0/(+O(+(a*a+-1.0))+a)));break}else{a=+Y(+a)+.6931471805599453;break}else{a=a+-1.0;a=+dQ(a+ +O(+(a*a+a*2.0)))}while(0);return+a}function _P(a){a=+a;var b=0,d=0,e=0,f=0.0;h[k>>3]=a;e=c[k>>2]|0;d=c[k+4>>2]|0;b=hR(e|0,d|0,52)|0;b=b&2047;c[k>>2]=e;c[k+4>>2]=d&2147483647;a=+h[k>>3];do if(b>>>0<=1048){if(b>>>0>1023){a=+Y(+(a*2.0+1.0/(a+ +O(+(a*a+1.0)))));break}if(b>>>0>996){f=a*a;a=+dQ(a+f/(+O(+(f+1.0))+1.0))}}else a=+Y(+a)+.6931471805599453;while(0);return+((d|0)<0?-a:a)}function $P(a){a=+a;var b=0,d=0,e=0,f=0.0;h[k>>3]=a;e=c[k>>2]|0;d=c[k+4>>2]|0;b=hR(e|0,d|0,52)|0;b=b&2047;c[k>>2]=e;c[k+4>>2]=d&2147483647;a=+h[k>>3];if(b>>>0<1022){if(b>>>0>=991){f=a*2.0;a=+dQ(f+a*f/(1.0-a))*.5}}else a=+dQ(a/(1.0-a)*2.0)*.5;return+((d|0)<0?-a:a)}function aQ(a){a=+a;var b=0;h[k>>3]=a;b=c[k+4>>2]&2147483647;c[k>>2]=c[k>>2];c[k+4>>2]=b;a=+h[k>>3];do if(b>>>0<1072049730)if(b>>>0<1045430272)a=1.0;else{a=+bQ(a);a=a*a/((a+1.0)*2.0)+1.0}else if(b>>>0<1082535490){a=+X(+a);a=(a+1.0/a)*.5;break}else{a=+YP(a);break}while(0);return+a}function bQ(a){a=+a;var b=0.0,d=0.0,e=0,f=0,g=0,i=0,j=0.0,l=0,m=0.0;h[k>>3]=a;e=c[k>>2]|0;f=c[k+4>>2]|0;g=f&2147483647;i=hR(e|0,f|0,63)|0;do if(g>>>0>1078159481){g=f&2147483647;if(!(g>>>0>2146435072|(g|0)==2146435072&e>>>0>0))if(!i)if(a>709.782712893384)a=a*8988465674311579538646525.0e283;else l=11;else a=-1.0}else{if(g>>>0<=1071001154)if(g>>>0<1016070144)break;else{j=0.0;g=0;l=14;break}if(g>>>0<1072734898)if(!i){b=a+-.6931471803691238;e=1;d=1.9082149292705877e-10;l=12;break}else{b=a+.6931471803691238;e=-1;d=-1.9082149292705877e-10;l=12;break}else l=11}while(0);if((l|0)==11){e=~~(a*1.4426950408889634+((i|0)!=0?-.5:.5));d=+(e|0);b=a-d*.6931471803691238;d=d*1.9082149292705877e-10;l=12}if((l|0)==12){j=b-d;a=j;j=b-j-d;g=e;l=14}a:do if((l|0)==14){d=a*.5;b=a*d;m=b*(b*(b*(b*(4.008217827329362e-06-b*2.0109921818362437e-07)+-7.93650757867488e-05)+1.5873015872548146e-03)+-.03333333333333313)+1.0;d=3.0-d*m;d=b*((m-d)/(6.0-a*d));if(!g){a=a-(a*d-b);break}b=a*(d-j)-j-b;switch(g|0){case-1:{a=(a-b)*.5+-.5;break a}case 1:if(a<-.25){a=(b-(a+.5))*-2.0;break a}else{a=(a-b)*2.0+1.0;break a}default:{i=lR(g+1023|0,0,52)|0;l=C;c[k>>2]=i;c[k+4>>2]=l;d=+h[k>>3];if(g>>>0>56){a=a-b+1.0;a=((g|0)==1024?a*2.0*8988465674311579538646525.0e283:d*a)+-1.0;break a}e=lR(1023-g|0,0,52)|0;f=C;if((g|0)<20){c[k>>2]=e;c[k+4>>2]=f;a=1.0-+h[k>>3]+(a-b)}else{c[k>>2]=e;c[k+4>>2]=f;a=a-(+h[k>>3]+b)+1.0}a=d*a;break a}}}while(0);return+a}function cQ(a){a=+a;var b=0,d=0,e=0,f=0,g=0.0,i=0.0,j=0.0,l=0.0,m=0.0;h[k>>3]=a;d=c[k>>2]|0;b=c[k+4>>2]|0;e=(b|0)<0;do if(e|b>>>0<1048576){if((d|0)==0&(b&2147483647|0)==0){a=-1.0/(a*a);break}if(e){a=(a-a)/0.0;break}else{h[k>>3]=a*18014398509481984.0;b=c[k+4>>2]|0;e=c[k>>2]|0;d=-1077;f=9;break}}else if(b>>>0<=2146435071)if((d|0)==0&0==0&(b|0)==1072693248)a=0.0;else{e=d;d=-1023;f=9}while(0);if((f|0)==9){f=b+614242|0;c[k>>2]=e;c[k+4>>2]=(f&1048575)+1072079006;m=+h[k>>3]+-1.0;a=m*(m*.5);j=m/(m+2.0);l=j*j;i=l*l;h[k>>3]=m-a;e=c[k+4>>2]|0;c[k>>2]=0;c[k+4>>2]=e;g=+h[k>>3];a=j*(a+(i*(i*(i*.15313837699209373+.22222198432149784)+.3999999999940942)+l*(i*(i*(i*.14798198605116586+.1818357216161805)+.2857142874366239)+.6666666666666735)))+(m-g-a);m=g*.4342944818781689;i=+(d+(f>>>20)|0);l=i*.30102999566361177;j=l+m;a=j+(m+(l-j)+(a*.4342944818781689+(i*3.694239077158931e-13+(g+a)*2.5082946711645275e-11)))}return+a}function dQ(a){a=+a;var b=0,d=0.0,e=0.0,f=0,g=0,i=0.0,j=0.0,l=0.0,m=0.0;h[k>>3]=a;b=c[k+4>>2]|0;do if((b|0)<0|b>>>0<1071284858)if(b>>>0<=3220176895){g=lR(b|0,0,1)|0;if(g>>>0<2034237440)break;if(b>>>0<3218259653){e=0.0;d=0.0;f=11;break}else{f=8;break}}else{if(a==-1.0){a=-s;break}a=(a-a)/0.0;break}else if(b>>>0<=2146435071)f=8;while(0);if((f|0)==8){d=a+1.0;h[k>>3]=d;b=(c[k+4>>2]|0)+614242|0;f=(b>>>20)+-1023|0;if((f|0)<54)a=((f|0)>1?1.0-(d-a):a-(d+-1.0))/d;else a=0.0;c[k>>2]=c[k>>2];c[k+4>>2]=(b&1048575)+1072079006;e=a;a=+h[k>>3]+-1.0;d=+(f|0);f=11}if((f|0)==11){i=a*(a*.5);m=a/(a+2.0);l=m*m;j=l*l;a=d*.6931471803691238+(a+(e+d*1.9082149292705877e-10+m*(i+(j*(j*(j*.15313837699209373+.22222198432149784)+.3999999999940942)+l*(j*(j*(j*.14798198605116586+.1818357216161805)+.2857142874366239)+.6666666666666735)))-i))}return+a}function eQ(a){a=+a;var b=0.0,d=0.0,e=0;h[k>>3]=a;e=c[k+4>>2]|0;d=(e|0)<0?-.5:.5;e=e&2147483647;c[k>>2]=c[k>>2];c[k+4>>2]=e;b=+h[k>>3];do if(e>>>0<1082535490){b=+bQ(b);if(e>>>0>=1072693248){a=d*(b+b/(b+1.0));break}if(e>>>0>=1045430272)a=d*(b*2.0-b*b/(b+1.0))}else a=d*2.0*+YP(b);while(0);return+a}function fQ(a){a=+a;var b=0,d=0;h[k>>3]=a;d=c[k+4>>2]|0;b=d&2147483647;c[k>>2]=c[k>>2];c[k+4>>2]=b;a=+h[k>>3];do if(b>>>0>1071748074)if(b>>>0>1077149696){a=1.0-0.0/a;break}else{a=1.0-2.0/(+bQ(a*2.0)+2.0);break}else{if(b>>>0>1070618798){a=+bQ(a*2.0);a=a/(a+2.0);break}if(b>>>0>1048575){a=+bQ(a*-2.0);a=-a/(a+2.0)}}while(0);return+((d|0)<0?-a:a)}function gQ(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0;k=i;i=i+32|0;h=k;do if((g&4095|0)==0&(((g|0)<0)<<31>>31&-4096|0)==0){if(b>>>0>2147483646){c[(SP()|0)>>2]=12;f=-1;break}j=(e&16|0)!=0;if(j)XQ(-1);c[h>>2]=a;c[h+4>>2]=b;c[h+8>>2]=d;c[h+12>>2]=e;c[h+16>>2]=f;c[h+20>>2]=g>>12;f=XP(cb(192,h|0)|0)|0;if(j)YQ()}else{c[(SP()|0)>>2]=22;f=-1}while(0);i=k;return f|0}function hQ(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;XQ(-1);c[e>>2]=a;c[e+4>>2]=b;a=XP(Xa(91,e|0)|0)|0;YQ();i=d;return a|0}function iQ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+64|0;g=h+16|0;f=h+8|0;d=h;e=h+24|0;c[d>>2]=a;c[d+4>>2]=b;d=jb(94,d|0)|0;if((d|0)==-9?(c[f>>2]=a,c[f+4>>2]=1,(mb(221,f|0)|0)>=0):0){WP(e,a);c[g>>2]=e;c[g+4>>2]=b;d=XP(wb(15,g|0)|0)|0}else d=XP(d)|0;i=h;return d|0}function jQ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+64|0;g=h+16|0;f=h+8|0;d=h;e=h+24|0;c[d>>2]=a;c[d+4>>2]=b;d=db(197,d|0)|0;if((d|0)==-9?(c[f>>2]=a,c[f+4>>2]=1,(mb(221,f|0)|0)>=0):0){WP(e,a);c[g>>2]=e;c[g+4>>2]=b;d=XP(fb(195,g|0)|0)|0}else d=XP(d)|0;i=h;return d|0}function kQ(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=a;c[e+4>>2]=b;a=XP(eb(196,e|0)|0)|0;i=d;return a|0}function lQ(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=a;c[e+4>>2]=b;a=XP(Za(39,e|0)|0)|0;i=d;return a|0}function mQ(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=a;c[e+4>>2]=b;a=XP(fb(195,e|0)|0)|0;i=d;return a|0}function nQ(a){a=a|0;return 0}function oQ(a){a=a|0;return}function pQ(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=c[a+60>>2];a=XP(Cb(6,d|0)|0)|0;i=b;return a|0}function qQ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=i;i=i+32|0;g=f;e=f+20|0;c[g>>2]=c[a+60>>2];c[g+4>>2]=0;c[g+8>>2]=b;c[g+12>>2]=e;c[g+16>>2]=d;if((XP(vb(140,g|0)|0)|0)<0){c[e>>2]=-1;a=-1}else a=c[e>>2]|0;i=f;return a|0}function rQ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;n=q+16|0;m=q;e=q+32|0;o=a+28|0;f=c[o>>2]|0;c[e>>2]=f;p=a+20|0;f=(c[p>>2]|0)-f|0;c[e+4>>2]=f;c[e+8>>2]=b;c[e+12>>2]=d;k=a+60|0;l=a+44|0;b=2;f=f+d|0;while(1){if(!(c[2492]|0)){c[n>>2]=c[k>>2];c[n+4>>2]=e;c[n+8>>2]=b;h=XP(Mb(146,n|0)|0)|0}else{La(154,a|0);c[m>>2]=c[k>>2];c[m+4>>2]=e;c[m+8>>2]=b;h=XP(Mb(146,m|0)|0)|0;Da(0)}if((f|0)==(h|0)){f=6;break}if((h|0)<0){f=8;break}f=f-h|0;g=c[e+4>>2]|0;if(h>>>0<=g>>>0)if((b|0)==2){c[o>>2]=(c[o>>2]|0)+h;j=g;b=2}else j=g;else{j=c[l>>2]|0;c[o>>2]=j;c[p>>2]=j;j=c[e+12>>2]|0;h=h-g|0;e=e+8|0;b=b+-1|0}c[e>>2]=(c[e>>2]|0)+h;c[e+4>>2]=j-h}if((f|0)==6){n=c[l>>2]|0;c[a+16>>2]=n+(c[a+48>>2]|0);a=n;c[o>>2]=a;c[p>>2]=a}else if((f|0)==8){c[a+16>>2]=0;c[o>>2]=0;c[p>>2]=0;c[a>>2]=c[a>>2]|32;if((b|0)==2)d=0;else d=d-(c[e+4>>2]|0)|0}i=q;return d|0}function sQ(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;g=i;i=i+80|0;f=g;c[b+36>>2]=163;if((c[b>>2]&64|0)==0?(c[f>>2]=c[b+60>>2],c[f+4>>2]=21505,c[f+8>>2]=g+12,(Ka(54,f|0)|0)!=0):0)a[b+75>>0]=-1;f=rQ(b,d,e)|0;i=g;return f|0}function tQ(a){a=a|0;var b=0,d=0;do if(a){if((c[a+76>>2]|0)<=-1){b=UQ(a)|0;break}d=(nQ(a)|0)==0;b=UQ(a)|0;if(!d)oQ(a)}else{if(!(c[2503]|0))b=0;else b=tQ(c[2503]|0)|0;Bb(9996);a=c[2498]|0;if(a)do{if((c[a+76>>2]|0)>-1)d=nQ(a)|0;else d=0;if((c[a+20>>2]|0)>>>0>(c[a+28>>2]|0)>>>0)b=UQ(a)|0|b;if(d)oQ(a);a=c[a+56>>2]|0}while((a|0)!=0);ub(9996)}while(0);return b|0}function uQ(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+208|0;o=r+8|0;p=r;f=_(d,b)|0;n=p;c[n>>2]=1;c[n+4>>2]=0;if(f){j=f-d|0;c[o+4>>2]=d;c[o>>2]=d;g=d;b=d;h=2;while(1){b=b+d+g|0;c[o+(h<<2)>>2]=b;if(b>>>0<f>>>0){n=g;g=b;h=h+1|0;b=n}else break}n=0-d|0;k=a+j|0;m=p+4|0;if((j|0)>0){j=k;f=1;h=1;while(1){do if((f&3|0)==3){VQ(a,d,e,h,o);l=c[m>>2]|0;b=l<<30|(c[p>>2]|0)>>>2;c[p>>2]=b;c[m>>2]=l>>>2;h=h+2|0}else{b=h+-1|0;if((c[o+(b<<2)>>2]|0)>>>0<(j-a|0)>>>0)VQ(a,d,e,h,o);else WQ(a,d,e,p,h,0,o);if((h|0)==1){b=c[p>>2]|0;c[m>>2]=b>>>31|c[m>>2]<<1;b=b<<1;c[p>>2]=b;h=0;break}if(b>>>0>31){f=c[p>>2]|0;c[m>>2]=f;c[p>>2]=0;b=h+-33|0;g=0}else{f=c[m>>2]|0;g=c[p>>2]|0}c[m>>2]=g>>>(32-b|0)|f<<b;b=g<<b;c[p>>2]=b;h=1}while(0);f=b|1;c[p>>2]=f;b=a+d|0;if(b>>>0>=k>>>0){f=b;break}else a=b}}else{f=a;h=1}WQ(f,d,e,p,h,0,o);l=p+4|0;b=c[p>>2]|0;if(!((h|0)==1&(b|0)==1&(c[l>>2]|0)==0)){g=f;while(1){if((h|0)<2){f=b+-1|0;do if(f){if(!(f&1)){j=f;f=0;do{f=f+1|0;j=j>>>1}while((j&1|0)==0);if(!f)q=24}else q=24;if((q|0)==24){q=0;k=c[m>>2]|0;if(!k){f=64;q=30;break}if(!(k&1)){j=k;f=0}else{a=0;j=k;f=0;break}while(1){a=f+1|0;j=j>>>1;if(j&1){j=a;break}else f=a}if(!j){a=0;j=k;f=0;break}else f=f+33|0}if(f>>>0>31)q=30;else{a=f;j=c[m>>2]|0}}else{f=32;q=30}while(0);if((q|0)==30){q=0;b=c[m>>2]|0;c[p>>2]=b;c[m>>2]=0;a=f+-32|0;j=0}c[p>>2]=j<<32-a|b>>>a;c[m>>2]=j>>>a;g=g+n|0;f=f+h|0}else{a=b>>>30;k=a|c[m>>2]<<2;f=h+-2|0;c[p>>2]=(b<<1&2147483646|a<<31)^3;c[m>>2]=k>>>1;WQ(g+(0-((c[o+(f<<2)>>2]|0)+d))|0,d,e,p,h+-1|0,1,o);k=c[p>>2]|0;c[m>>2]=k>>>31|c[m>>2]<<1;c[p>>2]=k<<1|1;g=g+n|0;WQ(g,d,e,p,f,1,o)}b=c[p>>2]|0;if((f|0)==1&(b|0)==1&(c[l>>2]|0)==0)break;else h=f}}}i=r;return}function vQ(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;a:do if(!d)d=0;else{f=d;e=b;while(1){b=a[e>>0]|0;d=a[c>>0]|0;if(b<<24>>24!=d<<24>>24)break;f=f+-1|0;if(!f){d=0;break a}else{e=e+1|0;c=c+1|0}}d=(b&255)-(d&255)|0}while(0);return d|0}function wQ(b,d){b=b|0;d=d|0;var e=0,f=0;e=d;a:do if(!((e^b)&3)){if(e&3)do{e=a[d>>0]|0;a[b>>0]=e;if(!(e<<24>>24))break a;d=d+1|0;b=b+1|0}while((d&3|0)!=0);e=c[d>>2]|0;if(!((e&-2139062144^-2139062144)&e+-16843009)){f=b;while(1){d=d+4|0;b=f+4|0;c[f>>2]=e;e=c[d>>2]|0;if((e&-2139062144^-2139062144)&e+-16843009)break;else f=b}}f=8}else f=8;while(0);if((f|0)==8){f=a[d>>0]|0;a[b>>0]=f;if(f<<24>>24)do{d=d+1|0;b=b+1|0;f=a[d>>0]|0;a[b>>0]=f}while(f<<24>>24!=0)}return b|0}function xQ(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=d;do if(!((g^b)&3)){f=(e|0)!=0;a:do if(f&(g&3|0)!=0)while(1){g=a[d>>0]|0;a[b>>0]=g;if(!(g<<24>>24))break a;e=e+-1|0;d=d+1|0;b=b+1|0;f=(e|0)!=0;if(!(f&(d&3|0)!=0)){h=5;break}}else h=5;while(0);if((h|0)==5)if(!f){e=0;break}if(a[d>>0]|0){b:do if(e>>>0>3)do{f=c[d>>2]|0;if((f&-2139062144^-2139062144)&f+-16843009)break b;c[b>>2]=f;e=e+-4|0;d=d+4|0;b=b+4|0}while(e>>>0>3);while(0);h=11}}else h=11;while(0);c:do if((h|0)==11)if(!e)e=0;else while(1){h=a[d>>0]|0;a[b>>0]=h;if(!(h<<24>>24))break c;e=e+-1|0;b=b+1|0;if(!e){e=0;break}else d=d+1|0}while(0);kR(b|0,0,e|0)|0;return b|0}function yQ(b,c){b=b|0;c=c|0;var d=0,e=0;e=a[b>>0]|0;d=a[c>>0]|0;if(e<<24>>24==0?1:e<<24>>24!=d<<24>>24)c=e;else{do{b=b+1|0;c=c+1|0;e=a[b>>0]|0;d=a[c>>0]|0}while(!(e<<24>>24==0?1:e<<24>>24!=d<<24>>24));c=e}return(c&255)-(d&255)|0}function zQ(a,b){a=a|0;b=b|0;wQ(a,b)|0;return a|0}function AQ(a){a=a|0;var b=0,c=0;c=(BQ(a)|0)+1|0;b=_Q(c)|0;if(!b)b=0;else iR(b|0,a|0,c|0)|0;return b|0}function BQ(b){b=b|0;var d=0,e=0,f=0;f=b;a:do if(!(f&3))e=4;else{d=b;b=f;while(1){if(!(a[d>>0]|0))break a;d=d+1|0;b=d;if(!(b&3)){b=d;e=4;break}}}while(0);if((e|0)==4){while(1){d=c[b>>2]|0;if(!((d&-2139062144^-2139062144)&d+-16843009))b=b+4|0;else break}if((d&255)<<24>>24)do b=b+1|0;while((a[b>>0]|0)!=0)}return b-f|0}function CQ(b,c,e){b=b|0;c=c|0;e=e|0;var f=0,g=0;if(!e)c=0;else{f=a[b>>0]|0;a:do if(!(f<<24>>24))f=0;else while(1){e=e+-1|0;g=a[c>>0]|0;if(!(f<<24>>24==g<<24>>24&((e|0)!=0&g<<24>>24!=0)))break a;b=b+1|0;c=c+1|0;f=a[b>>0]|0;if(!(f<<24>>24)){f=0;break}}while(0);c=(f&255)-(d[c>>0]|0)|0}return c|0}function DQ(a,b,c){a=a|0;b=b|0;c=c|0;xQ(a,b,c)|0;return a|0}function EQ(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=a;c[e+4>>2]=b;a=XP(sb(33,e|0)|0)|0;i=d;return a|0}function FQ(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=Cb(6,d|0)|0;a=XP((a|0)==-4?-115:a)|0;i=b;return a|0}function GQ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+64|0;h=j+24|0;g=j+16|0;e=j;f=j+36|0;c[e>>2]=a;c[e+4>>2]=b;c[e+8>>2]=d;e=Lb(207,e|0)|0;if((e|0)==-9?(c[g>>2]=a,c[g+4>>2]=1,(mb(221,g|0)|0)>=0):0){WP(f,a);c[h>>2]=f;c[h+4>>2]=b;c[h+8>>2]=d;e=XP(hb(212,h|0)|0)|0}else e=XP(e)|0;i=j;return e|0}function HQ(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=XP(Oa(118,d|0)|0)|0;i=b;return a|0}function IQ(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=a;c[e+4>>2]=0;c[e+8>>2]=b;c[e+12>>2]=((b|0)<0)<<31>>31;b=XP(gb(194,e|0)|0)|0;i=d;return b|0}function JQ(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+4112|0;e=g;d=g+8|0;if(a)if(!b){c[(SP()|0)>>2]=22;a=0}else f=4;else{b=4096;a=d;f=4}if((f|0)==4){c[e>>2]=a;c[e+4>>2]=b;if((XP(Ra(183,e|0)|0)|0)>=0){if((a|0)==(d|0))a=AQ(d)|0}else a=0}i=g;return a|0}function KQ(){var a=0,b=0;b=i;i=i+16|0;a=pb(201,b|0)|0;i=b;return a|0}function LQ(){var a=0,b=0;b=i;i=i+16|0;a=Qa(20,b|0)|0;i=b;return a|0}function MQ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=i;i=i+32|0;g=f;e=f+20|0;c[g>>2]=a;c[g+4>>2]=0;c[g+8>>2]=b;c[g+12>>2]=e;c[g+16>>2]=d;d=(XP(vb(140,g|0)|0)|0)!=0;i=f;return(d?-1:c[e>>2]|0)|0}function NQ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;c[f>>2]=a;c[f+4>>2]=b;c[f+8>>2]=d;a=XP(Ab(3,f|0)|0)|0;i=e;return a|0}function OQ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;c[f>>2]=a;c[f+4>>2]=b;c[f+8>>2]=d;a=XP(Ea(85,f|0)|0)|0;i=e;return a|0}function PQ(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=XP(Na(40,d|0)|0)|0;i=b;return a|0}function QQ(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;c[b+4>>2]=0;a=(kb(b|0,b|0)|0)==0;i=d;return(a?0:c[b>>2]|0)|0}function RQ(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=XP(yb(10,d|0)|0)|0;i=b;return a|0}function SQ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=i;i=i+16|0;f=e;c[f>>2]=a;c[f+4>>2]=b;c[f+8>>2]=d;a=XP(Eb(4,f|0)|0)|0;i=e;return a|0}function TQ(a){a=a|0;if(!(c[a+68>>2]|0))oQ(a);return}function UQ(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=a+20|0;g=a+28|0;if((c[b>>2]|0)>>>0>(c[g>>2]|0)>>>0?(Ob[c[a+36>>2]&255](a,0,0)|0,(c[b>>2]|0)==0):0)b=-1;else{h=a+4|0;d=c[h>>2]|0;e=a+8|0;f=c[e>>2]|0;if(d>>>0<f>>>0)Ob[c[a+40>>2]&255](a,d-f|0,1)|0;c[a+16>>2]=0;c[g>>2]=0;c[b>>2]=0;c[e>>2]=0;c[h>>2]=0;b=0}return b|0}function VQ(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+240|0;o=p;c[o>>2]=a;a:do if((e|0)>1){n=0-b|0;g=e;h=a;k=a;l=1;while(1){a=h+n|0;m=g+-2|0;j=h+(0-((c[f+(m<<2)>>2]|0)+b))|0;if((Yb[d&255](k,j)|0)>-1?(Yb[d&255](k,a)|0)>-1:0){e=l;break a}e=l+1|0;h=o+(l<<2)|0;if((Yb[d&255](j,a)|0)>-1){c[h>>2]=j;a=j;g=g+-1|0}else{c[h>>2]=a;g=m}if((g|0)<=1)break a;h=a;k=c[o>>2]|0;l=e}}else e=1;while(0);ZQ(b,o,e);i=p;return}function WQ(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+240|0;p=r;k=c[e>>2]|0;e=c[e+4>>2]|0;c[p>>2]=a;o=0-b|0;a:do if((e|0)!=0|(k|0)!=1?(j=a+(0-(c[h+(f<<2)>>2]|0))|0,(Yb[d&255](j,a)|0)>=1):0){g=(g|0)==0;n=j;l=k;m=e;j=1;while(1){if(g&(f|0)>1){e=c[h+(f+-2<<2)>>2]|0;if((Yb[d&255](a+o|0,n)|0)>-1){g=f;e=j;q=20;break a}if((Yb[d&255](a+(0-(e+b))|0,n)|0)>-1){g=f;e=j;q=20;break a}}e=j+1|0;c[p+(j<<2)>>2]=n;g=l+-1|0;do if(g){if(!(g&1)){a=g;g=0;do{g=g+1|0;a=a>>>1}while((a&1|0)==0);if(!g)q=11}else q=11;if((q|0)==11){q=0;if(!m){g=64;q=16;break}if(!(m&1)){a=m;g=0}else{k=0;a=l;j=m;g=0;break}while(1){j=g+1|0;a=a>>>1;if(a&1){a=j;break}else g=j}if(!a){k=0;a=l;j=m;g=0;break}else g=g+33|0}if(g>>>0>31)q=16;else{k=g;a=l;j=m}}else{g=32;q=16}while(0);if((q|0)==16){q=0;k=g+-32|0;a=m;j=0}l=j<<32-k|a>>>k;m=j>>>k;g=g+f|0;if(!((m|0)!=0|(l|0)!=1)){a=n;q=20;break a}a=n+(0-(c[h+(g<<2)>>2]|0))|0;if((Yb[d&255](a,c[p>>2]|0)|0)<1){a=n;f=g;g=0;q=19;break}else{k=n;f=g;g=1;n=a;j=e;a=k}}}else{e=1;q=19}while(0);if((q|0)==19?(g|0)==0:0){g=f;q=20}if((q|0)==20){ZQ(b,p,e);VQ(a,b,d,g,h)}i=r;return}function XQ(a){a=a|0;return}function YQ(){return}function ZQ(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;h=i;i=i+256|0;e=h;a:do if((d|0)>=2?(g=b+(d<<2)|0,c[g>>2]=e,(a|0)!=0):0)while(1){f=a>>>0>256?256:a;iR(e|0,c[b>>2]|0,f|0)|0;e=0;do{j=b+(e<<2)|0;e=e+1|0;iR(c[j>>2]|0,c[b+(e<<2)>>2]|0,f|0)|0;c[j>>2]=(c[j>>2]|0)+f}while((e|0)!=(d|0));if((a|0)==(f|0))break a;a=a-f|0;e=c[g>>2]|0}while(0);i=h;return}function _Q(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;do if(a>>>0<245){o=a>>>0<11?16:a+11&-8;a=o>>>3;i=c[2533]|0;d=i>>>a;if(d&3){a=(d&1^1)+a|0;e=a<<1;d=10172+(e<<2)|0;e=10172+(e+2<<2)|0;f=c[e>>2]|0;g=f+8|0;h=c[g>>2]|0;do if((d|0)!=(h|0)){if(h>>>0<(c[2537]|0)>>>0)Ma();b=h+12|0;if((c[b>>2]|0)==(f|0)){c[b>>2]=d;c[e>>2]=h;break}else Ma()}else c[2533]=i&~(1<<a);while(0);M=a<<3;c[f+4>>2]=M|3;M=f+(M|4)|0;c[M>>2]=c[M>>2]|1;M=g;return M|0}h=c[2535]|0;if(o>>>0>h>>>0){if(d){e=2<<a;e=d<<a&(e|0-e);e=(e&0-e)+-1|0;j=e>>>12&16;e=e>>>j;f=e>>>5&8;e=e>>>f;g=e>>>2&4;e=e>>>g;d=e>>>1&2;e=e>>>d;a=e>>>1&1;a=(f|j|g|d|a)+(e>>>a)|0;e=a<<1;d=10172+(e<<2)|0;e=10172+(e+2<<2)|0;g=c[e>>2]|0;j=g+8|0;f=c[j>>2]|0;do if((d|0)!=(f|0)){if(f>>>0<(c[2537]|0)>>>0)Ma();b=f+12|0;if((c[b>>2]|0)==(g|0)){c[b>>2]=d;c[e>>2]=f;k=c[2535]|0;break}else Ma()}else{c[2533]=i&~(1<<a);k=h}while(0);M=a<<3;h=M-o|0;c[g+4>>2]=o|3;i=g+o|0;c[g+(o|4)>>2]=h|1;c[g+M>>2]=h;if(k){f=c[2538]|0;d=k>>>3;b=d<<1;e=10172+(b<<2)|0;a=c[2533]|0;d=1<<d;if(a&d){a=10172+(b+2<<2)|0;b=c[a>>2]|0;if(b>>>0<(c[2537]|0)>>>0)Ma();else{l=a;m=b}}else{c[2533]=a|d;l=10172+(b+2<<2)|0;m=e}c[l>>2]=f;c[m+12>>2]=f;c[f+8>>2]=m;c[f+12>>2]=e}c[2535]=h;c[2538]=i;M=j;return M|0}a=c[2534]|0;if(a){d=(a&0-a)+-1|0;L=d>>>12&16;d=d>>>L;K=d>>>5&8;d=d>>>K;M=d>>>2&4;d=d>>>M;a=d>>>1&2;d=d>>>a;e=d>>>1&1;e=c[10436+((K|L|M|a|e)+(d>>>e)<<2)>>2]|0;d=(c[e+4>>2]&-8)-o|0;a=e;while(1){b=c[a+16>>2]|0;if(!b){b=c[a+20>>2]|0;if(!b){j=d;break}}a=(c[b+4>>2]&-8)-o|0;M=a>>>0<d>>>0;d=M?a:d;a=b;e=M?b:e}g=c[2537]|0;if(e>>>0<g>>>0)Ma();i=e+o|0;if(e>>>0>=i>>>0)Ma();h=c[e+24>>2]|0;d=c[e+12>>2]|0;do if((d|0)==(e|0)){a=e+20|0;b=c[a>>2]|0;if(!b){a=e+16|0;b=c[a>>2]|0;if(!b){n=0;break}}while(1){d=b+20|0;f=c[d>>2]|0;if(f){b=f;a=d;continue}d=b+16|0;f=c[d>>2]|0;if(!f)break;else{b=f;a=d}}if(a>>>0<g>>>0)Ma();else{c[a>>2]=0;n=b;break}}else{f=c[e+8>>2]|0;if(f>>>0<g>>>0)Ma();b=f+12|0;if((c[b>>2]|0)!=(e|0))Ma();a=d+8|0;if((c[a>>2]|0)==(e|0)){c[b>>2]=d;c[a>>2]=f;n=d;break}else Ma()}while(0);do if(h){b=c[e+28>>2]|0;a=10436+(b<<2)|0;if((e|0)==(c[a>>2]|0)){c[a>>2]=n;if(!n){c[2534]=c[2534]&~(1<<b);break}}else{if(h>>>0<(c[2537]|0)>>>0)Ma();b=h+16|0;if((c[b>>2]|0)==(e|0))c[b>>2]=n;else c[h+20>>2]=n;if(!n)break}a=c[2537]|0;if(n>>>0<a>>>0)Ma();c[n+24>>2]=h;b=c[e+16>>2]|0;do if(b)if(b>>>0<a>>>0)Ma();else{c[n+16>>2]=b;c[b+24>>2]=n;break}while(0);b=c[e+20>>2]|0;if(b)if(b>>>0<(c[2537]|0)>>>0)Ma();else{c[n+20>>2]=b;c[b+24>>2]=n;break}}while(0);if(j>>>0<16){M=j+o|0;c[e+4>>2]=M|3;M=e+(M+4)|0;c[M>>2]=c[M>>2]|1}else{c[e+4>>2]=o|3;c[e+(o|4)>>2]=j|1;c[e+(j+o)>>2]=j;b=c[2535]|0;if(b){g=c[2538]|0;d=b>>>3;b=d<<1;f=10172+(b<<2)|0;a=c[2533]|0;d=1<<d;if(a&d){b=10172+(b+2<<2)|0;a=c[b>>2]|0;if(a>>>0<(c[2537]|0)>>>0)Ma();else{p=b;q=a}}else{c[2533]=a|d;p=10172+(b+2<<2)|0;q=f}c[p>>2]=g;c[q+12>>2]=g;c[g+8>>2]=q;c[g+12>>2]=f}c[2535]=j;c[2538]=i}M=e+8|0;return M|0}else q=o}else q=o}else if(a>>>0<=4294967231){a=a+11|0;m=a&-8;l=c[2534]|0;if(l){d=0-m|0;a=a>>>8;if(a)if(m>>>0>16777215)k=31;else{q=(a+1048320|0)>>>16&8;v=a<<q;p=(v+520192|0)>>>16&4;v=v<<p;k=(v+245760|0)>>>16&2;k=14-(p|q|k)+(v<<k>>>15)|0;k=m>>>(k+7|0)&1|k<<1}else k=0;a=c[10436+(k<<2)>>2]|0;a:do if(!a){f=0;a=0;v=86}else{h=d;f=0;i=m<<((k|0)==31?0:25-(k>>>1)|0);j=a;a=0;while(1){g=c[j+4>>2]&-8;d=g-m|0;if(d>>>0<h>>>0)if((g|0)==(m|0)){g=j;a=j;v=90;break a}else a=j;else d=h;v=c[j+20>>2]|0;j=c[j+16+(i>>>31<<2)>>2]|0;f=(v|0)==0|(v|0)==(j|0)?f:v;
  70. if(!j){v=86;break}else{h=d;i=i<<1}}}while(0);if((v|0)==86){if((f|0)==0&(a|0)==0){a=2<<k;a=l&(a|0-a);if(!a){q=m;break}a=(a&0-a)+-1|0;n=a>>>12&16;a=a>>>n;l=a>>>5&8;a=a>>>l;p=a>>>2&4;a=a>>>p;q=a>>>1&2;a=a>>>q;f=a>>>1&1;f=c[10436+((l|n|p|q|f)+(a>>>f)<<2)>>2]|0;a=0}if(!f){i=d;j=a}else{g=f;v=90}}if((v|0)==90)while(1){v=0;q=(c[g+4>>2]&-8)-m|0;f=q>>>0<d>>>0;d=f?q:d;a=f?g:a;f=c[g+16>>2]|0;if(f){g=f;v=90;continue}g=c[g+20>>2]|0;if(!g){i=d;j=a;break}else v=90}if((j|0)!=0?i>>>0<((c[2535]|0)-m|0)>>>0:0){f=c[2537]|0;if(j>>>0<f>>>0)Ma();h=j+m|0;if(j>>>0>=h>>>0)Ma();g=c[j+24>>2]|0;d=c[j+12>>2]|0;do if((d|0)==(j|0)){a=j+20|0;b=c[a>>2]|0;if(!b){a=j+16|0;b=c[a>>2]|0;if(!b){o=0;break}}while(1){d=b+20|0;e=c[d>>2]|0;if(e){b=e;a=d;continue}d=b+16|0;e=c[d>>2]|0;if(!e)break;else{b=e;a=d}}if(a>>>0<f>>>0)Ma();else{c[a>>2]=0;o=b;break}}else{e=c[j+8>>2]|0;if(e>>>0<f>>>0)Ma();b=e+12|0;if((c[b>>2]|0)!=(j|0))Ma();a=d+8|0;if((c[a>>2]|0)==(j|0)){c[b>>2]=d;c[a>>2]=e;o=d;break}else Ma()}while(0);do if(g){b=c[j+28>>2]|0;a=10436+(b<<2)|0;if((j|0)==(c[a>>2]|0)){c[a>>2]=o;if(!o){c[2534]=c[2534]&~(1<<b);break}}else{if(g>>>0<(c[2537]|0)>>>0)Ma();b=g+16|0;if((c[b>>2]|0)==(j|0))c[b>>2]=o;else c[g+20>>2]=o;if(!o)break}a=c[2537]|0;if(o>>>0<a>>>0)Ma();c[o+24>>2]=g;b=c[j+16>>2]|0;do if(b)if(b>>>0<a>>>0)Ma();else{c[o+16>>2]=b;c[b+24>>2]=o;break}while(0);b=c[j+20>>2]|0;if(b)if(b>>>0<(c[2537]|0)>>>0)Ma();else{c[o+20>>2]=b;c[b+24>>2]=o;break}}while(0);b:do if(i>>>0>=16){c[j+4>>2]=m|3;c[j+(m|4)>>2]=i|1;c[j+(i+m)>>2]=i;b=i>>>3;if(i>>>0<256){a=b<<1;e=10172+(a<<2)|0;d=c[2533]|0;b=1<<b;if(d&b){b=10172+(a+2<<2)|0;a=c[b>>2]|0;if(a>>>0<(c[2537]|0)>>>0)Ma();else{s=b;t=a}}else{c[2533]=d|b;s=10172+(a+2<<2)|0;t=e}c[s>>2]=h;c[t+12>>2]=h;c[j+(m+8)>>2]=t;c[j+(m+12)>>2]=e;break}b=i>>>8;if(b)if(i>>>0>16777215)e=31;else{L=(b+1048320|0)>>>16&8;M=b<<L;K=(M+520192|0)>>>16&4;M=M<<K;e=(M+245760|0)>>>16&2;e=14-(K|L|e)+(M<<e>>>15)|0;e=i>>>(e+7|0)&1|e<<1}else e=0;b=10436+(e<<2)|0;c[j+(m+28)>>2]=e;c[j+(m+20)>>2]=0;c[j+(m+16)>>2]=0;a=c[2534]|0;d=1<<e;if(!(a&d)){c[2534]=a|d;c[b>>2]=h;c[j+(m+24)>>2]=b;c[j+(m+12)>>2]=h;c[j+(m+8)>>2]=h;break}b=c[b>>2]|0;c:do if((c[b+4>>2]&-8|0)!=(i|0)){e=i<<((e|0)==31?0:25-(e>>>1)|0);while(1){a=b+16+(e>>>31<<2)|0;d=c[a>>2]|0;if(!d)break;if((c[d+4>>2]&-8|0)==(i|0)){y=d;break c}else{e=e<<1;b=d}}if(a>>>0<(c[2537]|0)>>>0)Ma();else{c[a>>2]=h;c[j+(m+24)>>2]=b;c[j+(m+12)>>2]=h;c[j+(m+8)>>2]=h;break b}}else y=b;while(0);b=y+8|0;a=c[b>>2]|0;M=c[2537]|0;if(a>>>0>=M>>>0&y>>>0>=M>>>0){c[a+12>>2]=h;c[b>>2]=h;c[j+(m+8)>>2]=a;c[j+(m+12)>>2]=y;c[j+(m+24)>>2]=0;break}else Ma()}else{M=i+m|0;c[j+4>>2]=M|3;M=j+(M+4)|0;c[M>>2]=c[M>>2]|1}while(0);M=j+8|0;return M|0}else q=m}else q=m}else q=-1;while(0);d=c[2535]|0;if(d>>>0>=q>>>0){b=d-q|0;a=c[2538]|0;if(b>>>0>15){c[2538]=a+q;c[2535]=b;c[a+(q+4)>>2]=b|1;c[a+d>>2]=b;c[a+4>>2]=q|3}else{c[2535]=0;c[2538]=0;c[a+4>>2]=d|3;M=a+(d+4)|0;c[M>>2]=c[M>>2]|1}M=a+8|0;return M|0}a=c[2536]|0;if(a>>>0>q>>>0){L=a-q|0;c[2536]=L;M=c[2539]|0;c[2539]=M+q;c[M+(q+4)>>2]=L|1;c[M+4>>2]=q|3;M=M+8|0;return M|0}do if(!(c[2651]|0)){a=ib(30)|0;if(!(a+-1&a)){c[2653]=a;c[2652]=a;c[2654]=-1;c[2655]=-1;c[2656]=0;c[2644]=0;c[2651]=(Fb(0)|0)&-16^1431655768;break}else Ma()}while(0);j=q+48|0;i=c[2653]|0;k=q+47|0;h=i+k|0;i=0-i|0;l=h&i;if(l>>>0<=q>>>0){M=0;return M|0}a=c[2643]|0;if((a|0)!=0?(t=c[2641]|0,y=t+l|0,y>>>0<=t>>>0|y>>>0>a>>>0):0){M=0;return M|0}d:do if(!(c[2644]&4)){a=c[2539]|0;e:do if(a){f=10580;while(1){d=c[f>>2]|0;if(d>>>0<=a>>>0?(r=f+4|0,(d+(c[r>>2]|0)|0)>>>0>a>>>0):0){g=f;a=r;break}f=c[f+8>>2]|0;if(!f){v=174;break e}}d=h-(c[2536]|0)&i;if(d>>>0<2147483647){f=bb(d|0)|0;y=(f|0)==((c[g>>2]|0)+(c[a>>2]|0)|0);a=y?d:0;if(y){if((f|0)!=(-1|0)){w=f;p=a;v=194;break d}}else v=184}else a=0}else v=174;while(0);do if((v|0)==174){g=bb(0)|0;if((g|0)!=(-1|0)){a=g;d=c[2652]|0;f=d+-1|0;if(!(f&a))d=l;else d=l-a+(f+a&0-d)|0;a=c[2641]|0;f=a+d|0;if(d>>>0>q>>>0&d>>>0<2147483647){y=c[2643]|0;if((y|0)!=0?f>>>0<=a>>>0|f>>>0>y>>>0:0){a=0;break}f=bb(d|0)|0;y=(f|0)==(g|0);a=y?d:0;if(y){w=g;p=a;v=194;break d}else v=184}else a=0}else a=0}while(0);f:do if((v|0)==184){g=0-d|0;do if(j>>>0>d>>>0&(d>>>0<2147483647&(f|0)!=(-1|0))?(u=c[2653]|0,u=k-d+u&0-u,u>>>0<2147483647):0)if((bb(u|0)|0)==(-1|0)){bb(g|0)|0;break f}else{d=u+d|0;break}while(0);if((f|0)!=(-1|0)){w=f;p=d;v=194;break d}}while(0);c[2644]=c[2644]|4;v=191}else{a=0;v=191}while(0);if((((v|0)==191?l>>>0<2147483647:0)?(w=bb(l|0)|0,x=bb(0)|0,w>>>0<x>>>0&((w|0)!=(-1|0)&(x|0)!=(-1|0))):0)?(z=x-w|0,A=z>>>0>(q+40|0)>>>0,A):0){p=A?z:a;v=194}if((v|0)==194){a=(c[2641]|0)+p|0;c[2641]=a;if(a>>>0>(c[2642]|0)>>>0)c[2642]=a;h=c[2539]|0;g:do if(h){g=10580;do{a=c[g>>2]|0;d=g+4|0;f=c[d>>2]|0;if((w|0)==(a+f|0)){B=a;C=d;D=f;E=g;v=204;break}g=c[g+8>>2]|0}while((g|0)!=0);if(((v|0)==204?(c[E+12>>2]&8|0)==0:0)?h>>>0<w>>>0&h>>>0>=B>>>0:0){c[C>>2]=D+p;M=(c[2536]|0)+p|0;L=h+8|0;L=(L&7|0)==0?0:0-L&7;K=M-L|0;c[2539]=h+L;c[2536]=K;c[h+(L+4)>>2]=K|1;c[h+(M+4)>>2]=40;c[2540]=c[2655];break}a=c[2537]|0;if(w>>>0<a>>>0){c[2537]=w;a=w}d=w+p|0;g=10580;while(1){if((c[g>>2]|0)==(d|0)){f=g;d=g;v=212;break}g=c[g+8>>2]|0;if(!g){d=10580;break}}if((v|0)==212)if(!(c[d+12>>2]&8)){c[f>>2]=w;n=d+4|0;c[n>>2]=(c[n>>2]|0)+p;n=w+8|0;n=(n&7|0)==0?0:0-n&7;k=w+(p+8)|0;k=(k&7|0)==0?0:0-k&7;b=w+(k+p)|0;m=n+q|0;o=w+m|0;l=b-(w+n)-q|0;c[w+(n+4)>>2]=q|3;h:do if((b|0)!=(h|0)){if((b|0)==(c[2538]|0)){M=(c[2535]|0)+l|0;c[2535]=M;c[2538]=o;c[w+(m+4)>>2]=M|1;c[w+(M+m)>>2]=M;break}i=p+4|0;d=c[w+(i+k)>>2]|0;if((d&3|0)==1){j=d&-8;g=d>>>3;i:do if(d>>>0>=256){h=c[w+((k|24)+p)>>2]|0;e=c[w+(p+12+k)>>2]|0;do if((e|0)==(b|0)){f=k|16;e=w+(i+f)|0;d=c[e>>2]|0;if(!d){e=w+(f+p)|0;d=c[e>>2]|0;if(!d){J=0;break}}while(1){f=d+20|0;g=c[f>>2]|0;if(g){d=g;e=f;continue}f=d+16|0;g=c[f>>2]|0;if(!g)break;else{d=g;e=f}}if(e>>>0<a>>>0)Ma();else{c[e>>2]=0;J=d;break}}else{f=c[w+((k|8)+p)>>2]|0;if(f>>>0<a>>>0)Ma();a=f+12|0;if((c[a>>2]|0)!=(b|0))Ma();d=e+8|0;if((c[d>>2]|0)==(b|0)){c[a>>2]=e;c[d>>2]=f;J=e;break}else Ma()}while(0);if(!h)break;a=c[w+(p+28+k)>>2]|0;d=10436+(a<<2)|0;do if((b|0)!=(c[d>>2]|0)){if(h>>>0<(c[2537]|0)>>>0)Ma();a=h+16|0;if((c[a>>2]|0)==(b|0))c[a>>2]=J;else c[h+20>>2]=J;if(!J)break i}else{c[d>>2]=J;if(J)break;c[2534]=c[2534]&~(1<<a);break i}while(0);d=c[2537]|0;if(J>>>0<d>>>0)Ma();c[J+24>>2]=h;b=k|16;a=c[w+(b+p)>>2]|0;do if(a)if(a>>>0<d>>>0)Ma();else{c[J+16>>2]=a;c[a+24>>2]=J;break}while(0);b=c[w+(i+b)>>2]|0;if(!b)break;if(b>>>0<(c[2537]|0)>>>0)Ma();else{c[J+20>>2]=b;c[b+24>>2]=J;break}}else{e=c[w+((k|8)+p)>>2]|0;f=c[w+(p+12+k)>>2]|0;d=10172+(g<<1<<2)|0;do if((e|0)!=(d|0)){if(e>>>0<a>>>0)Ma();if((c[e+12>>2]|0)==(b|0))break;Ma()}while(0);if((f|0)==(e|0)){c[2533]=c[2533]&~(1<<g);break}do if((f|0)==(d|0))F=f+8|0;else{if(f>>>0<a>>>0)Ma();a=f+8|0;if((c[a>>2]|0)==(b|0)){F=a;break}Ma()}while(0);c[e+12>>2]=f;c[F>>2]=e}while(0);b=w+((j|k)+p)|0;f=j+l|0}else f=l;b=b+4|0;c[b>>2]=c[b>>2]&-2;c[w+(m+4)>>2]=f|1;c[w+(f+m)>>2]=f;b=f>>>3;if(f>>>0<256){a=b<<1;e=10172+(a<<2)|0;d=c[2533]|0;b=1<<b;do if(!(d&b)){c[2533]=d|b;K=10172+(a+2<<2)|0;L=e}else{b=10172+(a+2<<2)|0;a=c[b>>2]|0;if(a>>>0>=(c[2537]|0)>>>0){K=b;L=a;break}Ma()}while(0);c[K>>2]=o;c[L+12>>2]=o;c[w+(m+8)>>2]=L;c[w+(m+12)>>2]=e;break}b=f>>>8;do if(!b)e=0;else{if(f>>>0>16777215){e=31;break}K=(b+1048320|0)>>>16&8;L=b<<K;J=(L+520192|0)>>>16&4;L=L<<J;e=(L+245760|0)>>>16&2;e=14-(J|K|e)+(L<<e>>>15)|0;e=f>>>(e+7|0)&1|e<<1}while(0);b=10436+(e<<2)|0;c[w+(m+28)>>2]=e;c[w+(m+20)>>2]=0;c[w+(m+16)>>2]=0;a=c[2534]|0;d=1<<e;if(!(a&d)){c[2534]=a|d;c[b>>2]=o;c[w+(m+24)>>2]=b;c[w+(m+12)>>2]=o;c[w+(m+8)>>2]=o;break}b=c[b>>2]|0;j:do if((c[b+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){a=b+16+(e>>>31<<2)|0;d=c[a>>2]|0;if(!d)break;if((c[d+4>>2]&-8|0)==(f|0)){M=d;break j}else{e=e<<1;b=d}}if(a>>>0<(c[2537]|0)>>>0)Ma();else{c[a>>2]=o;c[w+(m+24)>>2]=b;c[w+(m+12)>>2]=o;c[w+(m+8)>>2]=o;break h}}else M=b;while(0);b=M+8|0;a=c[b>>2]|0;L=c[2537]|0;if(a>>>0>=L>>>0&M>>>0>=L>>>0){c[a+12>>2]=o;c[b>>2]=o;c[w+(m+8)>>2]=a;c[w+(m+12)>>2]=M;c[w+(m+24)>>2]=0;break}else Ma()}else{M=(c[2536]|0)+l|0;c[2536]=M;c[2539]=o;c[w+(m+4)>>2]=M|1}while(0);M=w+(n|8)|0;return M|0}else d=10580;while(1){a=c[d>>2]|0;if(a>>>0<=h>>>0?(b=c[d+4>>2]|0,e=a+b|0,e>>>0>h>>>0):0)break;d=c[d+8>>2]|0}f=a+(b+-39)|0;a=a+(b+-47+((f&7|0)==0?0:0-f&7))|0;f=h+16|0;a=a>>>0<f>>>0?h:a;b=a+8|0;d=w+8|0;d=(d&7|0)==0?0:0-d&7;M=p+-40-d|0;c[2539]=w+d;c[2536]=M;c[w+(d+4)>>2]=M|1;c[w+(p+-36)>>2]=40;c[2540]=c[2655];d=a+4|0;c[d>>2]=27;c[b>>2]=c[2645];c[b+4>>2]=c[2646];c[b+8>>2]=c[2647];c[b+12>>2]=c[2648];c[2645]=w;c[2646]=p;c[2648]=0;c[2647]=b;b=a+28|0;c[b>>2]=7;if((a+32|0)>>>0<e>>>0)do{M=b;b=b+4|0;c[b>>2]=7}while((M+8|0)>>>0<e>>>0);if((a|0)!=(h|0)){g=a-h|0;c[d>>2]=c[d>>2]&-2;c[h+4>>2]=g|1;c[a>>2]=g;b=g>>>3;if(g>>>0<256){a=b<<1;e=10172+(a<<2)|0;d=c[2533]|0;b=1<<b;if(d&b){b=10172+(a+2<<2)|0;a=c[b>>2]|0;if(a>>>0<(c[2537]|0)>>>0)Ma();else{G=b;H=a}}else{c[2533]=d|b;G=10172+(a+2<<2)|0;H=e}c[G>>2]=h;c[H+12>>2]=h;c[h+8>>2]=H;c[h+12>>2]=e;break}b=g>>>8;if(b)if(g>>>0>16777215)e=31;else{L=(b+1048320|0)>>>16&8;M=b<<L;K=(M+520192|0)>>>16&4;M=M<<K;e=(M+245760|0)>>>16&2;e=14-(K|L|e)+(M<<e>>>15)|0;e=g>>>(e+7|0)&1|e<<1}else e=0;d=10436+(e<<2)|0;c[h+28>>2]=e;c[h+20>>2]=0;c[f>>2]=0;b=c[2534]|0;a=1<<e;if(!(b&a)){c[2534]=b|a;c[d>>2]=h;c[h+24>>2]=d;c[h+12>>2]=h;c[h+8>>2]=h;break}b=c[d>>2]|0;k:do if((c[b+4>>2]&-8|0)!=(g|0)){e=g<<((e|0)==31?0:25-(e>>>1)|0);while(1){a=b+16+(e>>>31<<2)|0;d=c[a>>2]|0;if(!d)break;if((c[d+4>>2]&-8|0)==(g|0)){I=d;break k}else{e=e<<1;b=d}}if(a>>>0<(c[2537]|0)>>>0)Ma();else{c[a>>2]=h;c[h+24>>2]=b;c[h+12>>2]=h;c[h+8>>2]=h;break g}}else I=b;while(0);b=I+8|0;a=c[b>>2]|0;M=c[2537]|0;if(a>>>0>=M>>>0&I>>>0>=M>>>0){c[a+12>>2]=h;c[b>>2]=h;c[h+8>>2]=a;c[h+12>>2]=I;c[h+24>>2]=0;break}else Ma()}}else{M=c[2537]|0;if((M|0)==0|w>>>0<M>>>0)c[2537]=w;c[2645]=w;c[2646]=p;c[2648]=0;c[2542]=c[2651];c[2541]=-1;b=0;do{M=b<<1;L=10172+(M<<2)|0;c[10172+(M+3<<2)>>2]=L;c[10172+(M+2<<2)>>2]=L;b=b+1|0}while((b|0)!=32);M=w+8|0;M=(M&7|0)==0?0:0-M&7;L=p+-40-M|0;c[2539]=w+M;c[2536]=L;c[w+(M+4)>>2]=L|1;c[w+(p+-36)>>2]=40;c[2540]=c[2655]}while(0);b=c[2536]|0;if(b>>>0>q>>>0){L=b-q|0;c[2536]=L;M=c[2539]|0;c[2539]=M+q;c[M+(q+4)>>2]=L|1;c[M+4>>2]=q|3;M=M+8|0;return M|0}}c[(SP()|0)>>2]=12;M=0;return M|0}function $Q(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;if(!a)return;b=a+-8|0;i=c[2537]|0;if(b>>>0<i>>>0)Ma();d=c[a+-4>>2]|0;e=d&3;if((e|0)==1)Ma();o=d&-8;q=a+(o+-8)|0;do if(!(d&1)){b=c[b>>2]|0;if(!e)return;j=-8-b|0;l=a+j|0;m=b+o|0;if(l>>>0<i>>>0)Ma();if((l|0)==(c[2538]|0)){b=a+(o+-4)|0;d=c[b>>2]|0;if((d&3|0)!=3){u=l;g=m;break}c[2535]=m;c[b>>2]=d&-2;c[a+(j+4)>>2]=m|1;c[q>>2]=m;return}f=b>>>3;if(b>>>0<256){e=c[a+(j+8)>>2]|0;d=c[a+(j+12)>>2]|0;b=10172+(f<<1<<2)|0;if((e|0)!=(b|0)){if(e>>>0<i>>>0)Ma();if((c[e+12>>2]|0)!=(l|0))Ma()}if((d|0)==(e|0)){c[2533]=c[2533]&~(1<<f);u=l;g=m;break}if((d|0)!=(b|0)){if(d>>>0<i>>>0)Ma();b=d+8|0;if((c[b>>2]|0)==(l|0))h=b;else Ma()}else h=d+8|0;c[e+12>>2]=d;c[h>>2]=e;u=l;g=m;break}h=c[a+(j+24)>>2]|0;e=c[a+(j+12)>>2]|0;do if((e|0)==(l|0)){d=a+(j+20)|0;b=c[d>>2]|0;if(!b){d=a+(j+16)|0;b=c[d>>2]|0;if(!b){k=0;break}}while(1){e=b+20|0;f=c[e>>2]|0;if(f){b=f;d=e;continue}e=b+16|0;f=c[e>>2]|0;if(!f)break;else{b=f;d=e}}if(d>>>0<i>>>0)Ma();else{c[d>>2]=0;k=b;break}}else{f=c[a+(j+8)>>2]|0;if(f>>>0<i>>>0)Ma();b=f+12|0;if((c[b>>2]|0)!=(l|0))Ma();d=e+8|0;if((c[d>>2]|0)==(l|0)){c[b>>2]=e;c[d>>2]=f;k=e;break}else Ma()}while(0);if(h){b=c[a+(j+28)>>2]|0;d=10436+(b<<2)|0;if((l|0)==(c[d>>2]|0)){c[d>>2]=k;if(!k){c[2534]=c[2534]&~(1<<b);u=l;g=m;break}}else{if(h>>>0<(c[2537]|0)>>>0)Ma();b=h+16|0;if((c[b>>2]|0)==(l|0))c[b>>2]=k;else c[h+20>>2]=k;if(!k){u=l;g=m;break}}d=c[2537]|0;if(k>>>0<d>>>0)Ma();c[k+24>>2]=h;b=c[a+(j+16)>>2]|0;do if(b)if(b>>>0<d>>>0)Ma();else{c[k+16>>2]=b;c[b+24>>2]=k;break}while(0);b=c[a+(j+20)>>2]|0;if(b)if(b>>>0<(c[2537]|0)>>>0)Ma();else{c[k+20>>2]=b;c[b+24>>2]=k;u=l;g=m;break}else{u=l;g=m}}else{u=l;g=m}}else{u=b;g=o}while(0);if(u>>>0>=q>>>0)Ma();b=a+(o+-4)|0;d=c[b>>2]|0;if(!(d&1))Ma();if(!(d&2)){if((q|0)==(c[2539]|0)){t=(c[2536]|0)+g|0;c[2536]=t;c[2539]=u;c[u+4>>2]=t|1;if((u|0)!=(c[2538]|0))return;c[2538]=0;c[2535]=0;return}if((q|0)==(c[2538]|0)){t=(c[2535]|0)+g|0;c[2535]=t;c[2538]=u;c[u+4>>2]=t|1;c[u+t>>2]=t;return}g=(d&-8)+g|0;f=d>>>3;do if(d>>>0>=256){h=c[a+(o+16)>>2]|0;b=c[a+(o|4)>>2]|0;do if((b|0)==(q|0)){d=a+(o+12)|0;b=c[d>>2]|0;if(!b){d=a+(o+8)|0;b=c[d>>2]|0;if(!b){p=0;break}}while(1){e=b+20|0;f=c[e>>2]|0;if(f){b=f;d=e;continue}e=b+16|0;f=c[e>>2]|0;if(!f)break;else{b=f;d=e}}if(d>>>0<(c[2537]|0)>>>0)Ma();else{c[d>>2]=0;p=b;break}}else{d=c[a+o>>2]|0;if(d>>>0<(c[2537]|0)>>>0)Ma();e=d+12|0;if((c[e>>2]|0)!=(q|0))Ma();f=b+8|0;if((c[f>>2]|0)==(q|0)){c[e>>2]=b;c[f>>2]=d;p=b;break}else Ma()}while(0);if(h){b=c[a+(o+20)>>2]|0;d=10436+(b<<2)|0;if((q|0)==(c[d>>2]|0)){c[d>>2]=p;if(!p){c[2534]=c[2534]&~(1<<b);break}}else{if(h>>>0<(c[2537]|0)>>>0)Ma();b=h+16|0;if((c[b>>2]|0)==(q|0))c[b>>2]=p;else c[h+20>>2]=p;if(!p)break}d=c[2537]|0;if(p>>>0<d>>>0)Ma();c[p+24>>2]=h;b=c[a+(o+8)>>2]|0;do if(b)if(b>>>0<d>>>0)Ma();else{c[p+16>>2]=b;c[b+24>>2]=p;break}while(0);b=c[a+(o+12)>>2]|0;if(b)if(b>>>0<(c[2537]|0)>>>0)Ma();else{c[p+20>>2]=b;c[b+24>>2]=p;break}}}else{e=c[a+o>>2]|0;d=c[a+(o|4)>>2]|0;b=10172+(f<<1<<2)|0;if((e|0)!=(b|0)){if(e>>>0<(c[2537]|0)>>>0)Ma();if((c[e+12>>2]|0)!=(q|0))Ma()}if((d|0)==(e|0)){c[2533]=c[2533]&~(1<<f);break}if((d|0)!=(b|0)){if(d>>>0<(c[2537]|0)>>>0)Ma();b=d+8|0;if((c[b>>2]|0)==(q|0))n=b;else Ma()}else n=d+8|0;c[e+12>>2]=d;c[n>>2]=e}while(0);c[u+4>>2]=g|1;c[u+g>>2]=g;if((u|0)==(c[2538]|0)){c[2535]=g;return}}else{c[b>>2]=d&-2;c[u+4>>2]=g|1;c[u+g>>2]=g}b=g>>>3;if(g>>>0<256){d=b<<1;f=10172+(d<<2)|0;e=c[2533]|0;b=1<<b;if(e&b){b=10172+(d+2<<2)|0;d=c[b>>2]|0;if(d>>>0<(c[2537]|0)>>>0)Ma();else{r=b;s=d}}else{c[2533]=e|b;r=10172+(d+2<<2)|0;s=f}c[r>>2]=u;c[s+12>>2]=u;c[u+8>>2]=s;c[u+12>>2]=f;return}b=g>>>8;if(b)if(g>>>0>16777215)f=31;else{r=(b+1048320|0)>>>16&8;s=b<<r;q=(s+520192|0)>>>16&4;s=s<<q;f=(s+245760|0)>>>16&2;f=14-(q|r|f)+(s<<f>>>15)|0;f=g>>>(f+7|0)&1|f<<1}else f=0;b=10436+(f<<2)|0;c[u+28>>2]=f;c[u+20>>2]=0;c[u+16>>2]=0;d=c[2534]|0;e=1<<f;a:do if(d&e){b=c[b>>2]|0;b:do if((c[b+4>>2]&-8|0)!=(g|0)){f=g<<((f|0)==31?0:25-(f>>>1)|0);while(1){d=b+16+(f>>>31<<2)|0;e=c[d>>2]|0;if(!e)break;if((c[e+4>>2]&-8|0)==(g|0)){t=e;break b}else{f=f<<1;b=e}}if(d>>>0<(c[2537]|0)>>>0)Ma();else{c[d>>2]=u;c[u+24>>2]=b;c[u+12>>2]=u;c[u+8>>2]=u;break a}}else t=b;while(0);b=t+8|0;d=c[b>>2]|0;s=c[2537]|0;if(d>>>0>=s>>>0&t>>>0>=s>>>0){c[d+12>>2]=u;c[b>>2]=u;c[u+8>>2]=d;c[u+12>>2]=t;c[u+24>>2]=0;break}else Ma()}else{c[2534]=d|e;c[b>>2]=u;c[u+24>>2]=b;c[u+12>>2]=u;c[u+8>>2]=u}while(0);u=(c[2541]|0)+-1|0;c[2541]=u;if(!u)b=10588;else return;while(1){b=c[b>>2]|0;if(!b)break;else b=b+8|0}c[2541]=-1;return}function aR(a,b){a=a|0;b=b|0;var d=0;if(a){d=_(b,a)|0;if((b|a)>>>0>65535)d=((d>>>0)/(a>>>0)|0|0)==(b|0)?d:-1}else d=0;b=_Q(d)|0;if(!b)return b|0;if(!(c[b+-4>>2]&3))return b|0;kR(b|0,0,d|0)|0;return b|0}function bR(a,b){a=a|0;b=b|0;var d=0,e=0;if(!a){a=_Q(b)|0;return a|0}if(b>>>0>4294967231){c[(SP()|0)>>2]=12;a=0;return a|0}d=cR(a+-8|0,b>>>0<11?16:b+11&-8)|0;if(d){a=d+8|0;return a|0}d=_Q(b)|0;if(!d){a=0;return a|0}e=c[a+-4>>2]|0;e=(e&-8)-((e&3|0)==0?8:4)|0;iR(d|0,a|0,(e>>>0<b>>>0?e:b)|0)|0;$Q(a);a=d;return a|0}function cR(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=a+4|0;p=c[o>>2]|0;j=p&-8;l=a+j|0;i=c[2537]|0;d=p&3;if(!((d|0)!=1&a>>>0>=i>>>0&a>>>0<l>>>0))Ma();e=a+(j|4)|0;f=c[e>>2]|0;if(!(f&1))Ma();if(!d){if(b>>>0<256){a=0;return a|0}if(j>>>0>=(b+4|0)>>>0?(j-b|0)>>>0<=c[2653]<<1>>>0:0)return a|0;a=0;return a|0}if(j>>>0>=b>>>0){d=j-b|0;if(d>>>0<=15)return a|0;c[o>>2]=p&1|b|2;c[a+(b+4)>>2]=d|3;c[e>>2]=c[e>>2]|1;dR(a+b|0,d);return a|0}if((l|0)==(c[2539]|0)){d=(c[2536]|0)+j|0;if(d>>>0<=b>>>0){a=0;return a|0}n=d-b|0;c[o>>2]=p&1|b|2;c[a+(b+4)>>2]=n|1;c[2539]=a+b;c[2536]=n;return a|0}if((l|0)==(c[2538]|0)){e=(c[2535]|0)+j|0;if(e>>>0<b>>>0){a=0;return a|0}d=e-b|0;if(d>>>0>15){c[o>>2]=p&1|b|2;c[a+(b+4)>>2]=d|1;c[a+e>>2]=d;e=a+(e+4)|0;c[e>>2]=c[e>>2]&-2;e=a+b|0}else{c[o>>2]=p&1|e|2;e=a+(e+4)|0;c[e>>2]=c[e>>2]|1;e=0;d=0}c[2535]=d;c[2538]=e;return a|0}if(f&2){a=0;return a|0}m=(f&-8)+j|0;if(m>>>0<b>>>0){a=0;return a|0}n=m-b|0;g=f>>>3;do if(f>>>0>=256){h=c[a+(j+24)>>2]|0;g=c[a+(j+12)>>2]|0;do if((g|0)==(l|0)){e=a+(j+20)|0;d=c[e>>2]|0;if(!d){e=a+(j+16)|0;d=c[e>>2]|0;if(!d){k=0;break}}while(1){f=d+20|0;g=c[f>>2]|0;if(g){d=g;e=f;continue}f=d+16|0;g=c[f>>2]|0;if(!g)break;else{d=g;e=f}}if(e>>>0<i>>>0)Ma();else{c[e>>2]=0;k=d;break}}else{f=c[a+(j+8)>>2]|0;if(f>>>0<i>>>0)Ma();d=f+12|0;if((c[d>>2]|0)!=(l|0))Ma();e=g+8|0;if((c[e>>2]|0)==(l|0)){c[d>>2]=g;c[e>>2]=f;k=g;break}else Ma()}while(0);if(h){d=c[a+(j+28)>>2]|0;e=10436+(d<<2)|0;if((l|0)==(c[e>>2]|0)){c[e>>2]=k;if(!k){c[2534]=c[2534]&~(1<<d);break}}else{if(h>>>0<(c[2537]|0)>>>0)Ma();d=h+16|0;if((c[d>>2]|0)==(l|0))c[d>>2]=k;else c[h+20>>2]=k;if(!k)break}e=c[2537]|0;if(k>>>0<e>>>0)Ma();c[k+24>>2]=h;d=c[a+(j+16)>>2]|0;do if(d)if(d>>>0<e>>>0)Ma();else{c[k+16>>2]=d;c[d+24>>2]=k;break}while(0);d=c[a+(j+20)>>2]|0;if(d)if(d>>>0<(c[2537]|0)>>>0)Ma();else{c[k+20>>2]=d;c[d+24>>2]=k;break}}}else{f=c[a+(j+8)>>2]|0;e=c[a+(j+12)>>2]|0;d=10172+(g<<1<<2)|0;if((f|0)!=(d|0)){if(f>>>0<i>>>0)Ma();if((c[f+12>>2]|0)!=(l|0))Ma()}if((e|0)==(f|0)){c[2533]=c[2533]&~(1<<g);break}if((e|0)!=(d|0)){if(e>>>0<i>>>0)Ma();d=e+8|0;if((c[d>>2]|0)==(l|0))h=d;else Ma()}else h=e+8|0;c[f+12>>2]=e;c[h>>2]=f}while(0);if(n>>>0<16){c[o>>2]=m|p&1|2;b=a+(m|4)|0;c[b>>2]=c[b>>2]|1;return a|0}else{c[o>>2]=p&1|b|2;c[a+(b+4)>>2]=n|3;p=a+(m|4)|0;c[p>>2]=c[p>>2]|1;dR(a+b|0,n);return a|0}return 0}function dR(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;q=a+b|0;d=c[a+4>>2]|0;do if(!(d&1)){k=c[a>>2]|0;if(!(d&3))return;n=a+(0-k)|0;m=k+b|0;j=c[2537]|0;if(n>>>0<j>>>0)Ma();if((n|0)==(c[2538]|0)){e=a+(b+4)|0;d=c[e>>2]|0;if((d&3|0)!=3){t=n;h=m;break}c[2535]=m;c[e>>2]=d&-2;c[a+(4-k)>>2]=m|1;c[q>>2]=m;return}g=k>>>3;if(k>>>0<256){f=c[a+(8-k)>>2]|0;e=c[a+(12-k)>>2]|0;d=10172+(g<<1<<2)|0;if((f|0)!=(d|0)){if(f>>>0<j>>>0)Ma();if((c[f+12>>2]|0)!=(n|0))Ma()}if((e|0)==(f|0)){c[2533]=c[2533]&~(1<<g);t=n;h=m;break}if((e|0)!=(d|0)){if(e>>>0<j>>>0)Ma();d=e+8|0;if((c[d>>2]|0)==(n|0))i=d;else Ma()}else i=e+8|0;c[f+12>>2]=e;c[i>>2]=f;t=n;h=m;break}i=c[a+(24-k)>>2]|0;f=c[a+(12-k)>>2]|0;do if((f|0)==(n|0)){f=16-k|0;e=a+(f+4)|0;d=c[e>>2]|0;if(!d){e=a+f|0;d=c[e>>2]|0;if(!d){l=0;break}}while(1){f=d+20|0;g=c[f>>2]|0;if(g){d=g;e=f;continue}f=d+16|0;g=c[f>>2]|0;if(!g)break;else{d=g;e=f}}if(e>>>0<j>>>0)Ma();else{c[e>>2]=0;l=d;break}}else{g=c[a+(8-k)>>2]|0;if(g>>>0<j>>>0)Ma();d=g+12|0;if((c[d>>2]|0)!=(n|0))Ma();e=f+8|0;if((c[e>>2]|0)==(n|0)){c[d>>2]=f;c[e>>2]=g;l=f;break}else Ma()}while(0);if(i){d=c[a+(28-k)>>2]|0;e=10436+(d<<2)|0;if((n|0)==(c[e>>2]|0)){c[e>>2]=l;if(!l){c[2534]=c[2534]&~(1<<d);t=n;h=m;break}}else{if(i>>>0<(c[2537]|0)>>>0)Ma();d=i+16|0;if((c[d>>2]|0)==(n|0))c[d>>2]=l;else c[i+20>>2]=l;if(!l){t=n;h=m;break}}f=c[2537]|0;if(l>>>0<f>>>0)Ma();c[l+24>>2]=i;d=16-k|0;e=c[a+d>>2]|0;do if(e)if(e>>>0<f>>>0)Ma();else{c[l+16>>2]=e;c[e+24>>2]=l;break}while(0);d=c[a+(d+4)>>2]|0;if(d)if(d>>>0<(c[2537]|0)>>>0)Ma();else{c[l+20>>2]=d;c[d+24>>2]=l;t=n;h=m;break}else{t=n;h=m}}else{t=n;h=m}}else{t=a;h=b}while(0);j=c[2537]|0;if(q>>>0<j>>>0)Ma();d=a+(b+4)|0;e=c[d>>2]|0;if(!(e&2)){if((q|0)==(c[2539]|0)){s=(c[2536]|0)+h|0;c[2536]=s;c[2539]=t;c[t+4>>2]=s|1;if((t|0)!=(c[2538]|0))return;c[2538]=0;c[2535]=0;return}if((q|0)==(c[2538]|0)){s=(c[2535]|0)+h|0;c[2535]=s;c[2538]=t;c[t+4>>2]=s|1;c[t+s>>2]=s;return}h=(e&-8)+h|0;g=e>>>3;do if(e>>>0>=256){i=c[a+(b+24)>>2]|0;f=c[a+(b+12)>>2]|0;do if((f|0)==(q|0)){e=a+(b+20)|0;d=c[e>>2]|0;if(!d){e=a+(b+16)|0;d=c[e>>2]|0;if(!d){p=0;break}}while(1){f=d+20|0;g=c[f>>2]|0;if(g){d=g;e=f;continue}f=d+16|0;g=c[f>>2]|0;if(!g)break;else{d=g;e=f}}if(e>>>0<j>>>0)Ma();else{c[e>>2]=0;p=d;break}}else{g=c[a+(b+8)>>2]|0;if(g>>>0<j>>>0)Ma();d=g+12|0;if((c[d>>2]|0)!=(q|0))Ma();e=f+8|0;if((c[e>>2]|0)==(q|0)){c[d>>2]=f;c[e>>2]=g;p=f;break}else Ma()}while(0);if(i){d=c[a+(b+28)>>2]|0;e=10436+(d<<2)|0;if((q|0)==(c[e>>2]|0)){c[e>>2]=p;if(!p){c[2534]=c[2534]&~(1<<d);break}}else{if(i>>>0<(c[2537]|0)>>>0)Ma();d=i+16|0;if((c[d>>2]|0)==(q|0))c[d>>2]=p;else c[i+20>>2]=p;if(!p)break}e=c[2537]|0;if(p>>>0<e>>>0)Ma();c[p+24>>2]=i;d=c[a+(b+16)>>2]|0;do if(d)if(d>>>0<e>>>0)Ma();else{c[p+16>>2]=d;c[d+24>>2]=p;break}while(0);d=c[a+(b+20)>>2]|0;if(d)if(d>>>0<(c[2537]|0)>>>0)Ma();else{c[p+20>>2]=d;c[d+24>>2]=p;break}}}else{f=c[a+(b+8)>>2]|0;e=c[a+(b+12)>>2]|0;d=10172+(g<<1<<2)|0;if((f|0)!=(d|0)){if(f>>>0<j>>>0)Ma();if((c[f+12>>2]|0)!=(q|0))Ma()}if((e|0)==(f|0)){c[2533]=c[2533]&~(1<<g);break}if((e|0)!=(d|0)){if(e>>>0<j>>>0)Ma();d=e+8|0;if((c[d>>2]|0)==(q|0))o=d;else Ma()}else o=e+8|0;c[f+12>>2]=e;c[o>>2]=f}while(0);c[t+4>>2]=h|1;c[t+h>>2]=h;if((t|0)==(c[2538]|0)){c[2535]=h;return}}else{c[d>>2]=e&-2;c[t+4>>2]=h|1;c[t+h>>2]=h}d=h>>>3;if(h>>>0<256){e=d<<1;g=10172+(e<<2)|0;f=c[2533]|0;d=1<<d;if(f&d){d=10172+(e+2<<2)|0;e=c[d>>2]|0;if(e>>>0<(c[2537]|0)>>>0)Ma();else{r=d;s=e}}else{c[2533]=f|d;r=10172+(e+2<<2)|0;s=g}c[r>>2]=t;c[s+12>>2]=t;c[t+8>>2]=s;c[t+12>>2]=g;return}d=h>>>8;if(d)if(h>>>0>16777215)g=31;else{r=(d+1048320|0)>>>16&8;s=d<<r;q=(s+520192|0)>>>16&4;s=s<<q;g=(s+245760|0)>>>16&2;g=14-(q|r|g)+(s<<g>>>15)|0;g=h>>>(g+7|0)&1|g<<1}else g=0;d=10436+(g<<2)|0;c[t+28>>2]=g;c[t+20>>2]=0;c[t+16>>2]=0;e=c[2534]|0;f=1<<g;if(!(e&f)){c[2534]=e|f;c[d>>2]=t;c[t+24>>2]=d;c[t+12>>2]=t;c[t+8>>2]=t;return}d=c[d>>2]|0;a:do if((c[d+4>>2]&-8|0)!=(h|0)){g=h<<((g|0)==31?0:25-(g>>>1)|0);while(1){e=d+16+(g>>>31<<2)|0;f=c[e>>2]|0;if(!f)break;if((c[f+4>>2]&-8|0)==(h|0)){d=f;break a}else{g=g<<1;d=f}}if(e>>>0<(c[2537]|0)>>>0)Ma();c[e>>2]=t;c[t+24>>2]=d;c[t+12>>2]=t;c[t+8>>2]=t;return}while(0);e=d+8|0;f=c[e>>2]|0;s=c[2537]|0;if(!(f>>>0>=s>>>0&d>>>0>=s>>>0))Ma();c[f+12>>2]=t;c[e>>2]=t;c[t+8>>2]=f;c[t+12>>2]=d;c[t+24>>2]=0;return}function eR(){}function fR(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=b-d-(c>>>0>a>>>0|0)>>>0;return(C=d,a-c>>>0|0)|0}function gR(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return(C=b+d+(c>>>0<a>>>0|0)>>>0,c|0)|0}function hR(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b>>>c;return a>>>c|(b&(1<<c)-1)<<32-c}C=0;return b>>>c-32|0}function iR(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;if((e|0)>=4096)return lb(b|0,d|0,e|0)|0;f=b|0;if((b&3)==(d&3)){while(b&3){if(!e)return f|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}while((e|0)>=4){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0;e=e-4|0}}while((e|0)>0){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}return f|0}function jR(b,c,d){b=b|0;c=c|0;d=d|0;var e=0;if((c|0)<(b|0)&(b|0)<(c+d|0)){e=b;c=c+d|0;b=b+d|0;while((d|0)>0){b=b-1|0;c=c-1|0;d=d-1|0;a[b>>0]=a[c>>0]|0}b=e}else iR(b,c,d)|0;return b|0}function kR(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=b+e|0;if((e|0)>=20){d=d&255;h=b&3;i=d|d<<8|d<<16|d<<24;g=f&~3;if(h){h=b+4-h|0;while((b|0)<(h|0)){a[b>>0]=d;b=b+1|0}}while((b|0)<(g|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(f|0)){a[b>>0]=d;b=b+1|0}return b-e|0}function lR(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b<<c|(a&(1<<c)-1<<32-c)>>>32-c;return a<<c}C=a<<c-32;return 0}function mR(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b>>c;return a>>>c|(b&(1<<c)-1)<<32-c}C=(b|0)<0?-1:0;return b>>c-32|0}function nR(b){b=b|0;var c=0;c=a[m+(b&255)>>0]|0;if((c|0)<8)return c|0;c=a[m+(b>>8&255)>>0]|0;if((c|0)<8)return c+8|0;c=a[m+(b>>16&255)>>0]|0;if((c|0)<8)return c+16|0;return(a[m+(b>>>24)>>0]|0)+24|0}function oR(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=_(e,f)|0;d=a>>>16;a=(c>>>16)+(_(e,d)|0)|0;e=b>>>16;b=_(e,f)|0;return(C=(a>>>16)+(_(e,d)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|c&65535|0)|0}function pR(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=b>>31|((b|0)<0?-1:0)<<1;i=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;f=d>>31|((d|0)<0?-1:0)<<1;e=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;h=fR(j^a,i^b,j,i)|0;g=C;a=f^j;b=e^i;return fR((uR(h,g,fR(f^c,e^d,f,e)|0,C,0)|0)^a,C^b,a,b)|0}function qR(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+16|0;j=f|0;h=b>>31|((b|0)<0?-1:0)<<1;g=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;l=e>>31|((e|0)<0?-1:0)<<1;k=((e|0)<0?-1:0)>>31|((e|0)<0?-1:0)<<1;a=fR(h^a,g^b,h,g)|0;b=C;uR(a,b,fR(l^d,k^e,l,k)|0,C,j)|0;e=fR(c[j>>2]^h,c[j+4>>2]^g,h,g)|0;d=C;i=f;return(C=d,e)|0}function rR(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;f=c;c=oR(e,f)|0;a=C;return(C=(_(b,f)|0)+(_(d,e)|0)+a|a&0,c|0|0)|0}function sR(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return uR(a,b,c,d,0)|0}function tR(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=i;i=i+16|0;f=g|0;uR(a,b,d,e,f)|0;i=g;return(C=c[f+4>>2]|0,c[f>>2]|0)|0}function Km(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0;G=i;i=i+96|0;z=G+80|0;p=G+76|0;h=G+72|0;A=G+68|0;B=G+64|0;x=G+60|0;n=G+56|0;E=G+52|0;D=G+48|0;u=G;o=G+44|0;q=G+40|0;k=G+36|0;l=G+85|0;v=G+32|0;m=G+28|0;s=G+24|0;j=G+20|0;r=G+84|0;y=G+16|0;w=G+12|0;t=G+8|0;c[p>>2]=b;c[h>>2]=e;c[A>>2]=f;c[B>>2]=g;c[x>>2]=c[(c[h>>2]|0)+20>>2];c[n>>2]=c[c[p>>2]>>2];c[c[B>>2]>>2]=0;if((c[(c[x>>2]|0)+68>>2]|0)<(c[(c[n>>2]|0)+24>>2]|0)?(c[(c[x>>2]|0)+68>>2]|0)!=(c[A>>2]|0):0){c[z>>2]=0;F=c[z>>2]|0;i=G;return F|0}b=(c[h>>2]|0)+24|0;g=c[b+4>>2]|0;e=u;c[e>>2]=c[b>>2];c[e+4>>2]=g;c[E>>2]=c[(c[x>>2]|0)+28>>2];e=u;g=(c[p>>2]|0)+32|0;if(!(!((c[e>>2]|0)!=(c[g>>2]|0)?1:(c[e+4>>2]|0)!=(c[g+4>>2]|0))?(d[(c[h>>2]|0)+32>>0]|0)==0:0))F=6;do if((F|0)==6){c[o>>2]=0;c[q>>2]=d[(c[n>>2]|0)+231>>0];c[k>>2]=0;a[l>>0]=0;c[m>>2]=c[h>>2];c[v>>2]=c[(c[h>>2]|0)+8>>2];while(1){if(!(c[v>>2]|0))break;if((c[c[v>>2]>>2]|0)==4)c[k>>2]=1;if((c[c[v>>2]>>2]|0)==1)c[m>>2]=c[v>>2];if(a[(c[v>>2]|0)+32>>0]|0)a[l>>0]=1;c[v>>2]=c[(c[v>>2]|0)+8>>2]}if(!(c[k>>2]|0)){c[z>>2]=0;F=c[z>>2]|0;i=G;return F|0}a:do if(c[(c[x>>2]|0)+40>>2]|0){c[j>>2]=d[(c[m>>2]|0)+32>>0];Mm(c[p>>2]|0,c[m>>2]|0,o);b:while(1){if(c[o>>2]|0)break a;while(1){if(!((a[(c[m>>2]|0)+32>>0]|0)!=0^1))break a;Nm(c[p>>2]|0,c[m>>2]|0,o);if(c[j>>2]|0)continue b;n=(c[m>>2]|0)+24|0;g=u;if(!(((c[n>>2]|0)!=(c[g>>2]|0)?1:(c[n+4>>2]|0)!=(c[g+4>>2]|0))&(c[o>>2]|0)==0))break a}}}while(0);c:do if((a[l>>0]|0)!=0&(c[o>>2]|0)==0)do{if(!((a[(c[m>>2]|0)+32>>0]|0)!=0^1))break c;Nm(c[p>>2]|0,c[m>>2]|0,o)}while((c[o>>2]|0)==0);while(0);if(c[o>>2]|0){c[z>>2]=c[o>>2];F=c[z>>2]|0;i=G;return F|0}c[s>>2]=1;c[v>>2]=c[m>>2];while(1){if(!(c[v>>2]|0))break;a[r>>0]=0;c[y>>2]=c[v>>2];if((c[c[y>>2]>>2]|0)==1)c[y>>2]=c[(c[y>>2]|0)+16>>2];c[w>>2]=c[(c[y>>2]|0)+20>>2];c[E>>2]=c[(c[w>>2]|0)+48>>2];g=(c[w>>2]|0)+56|0;o=c[g+4>>2]|0;h=u;c[h>>2]=c[g>>2];c[h+4>>2]=o;h=(c[(c[w>>2]|0)+4>>2]|0)!=0;d:do if((d[(c[p>>2]|0)+52>>0]|0)==(c[q>>2]|0)){if(h)h=(c[E>>2]|0)>>>0>=((c[c[w>>2]>>2]|0)+(c[(c[w>>2]|0)+4>>2]|0)|0)>>>0;else h=1;a[r>>0]=h&1;while(1){if((c[E>>2]|0)!=0?(g=(c[q>>2]|0)!=0?-1:1,n=u,o=(c[p>>2]|0)+32|0,o=fR(c[n>>2]|0,c[n+4>>2]|0,c[o>>2]|0,c[o+4>>2]|0)|0,rR(g|0,((g|0)<0)<<31>>31|0,o|0,C|0)|0,(C|0)>=0):0)break d;if(d[r>>0]|0)break d;Om(c[q>>2]|0,c[c[w>>2]>>2]|0,c[(c[w>>2]|0)+4>>2]|0,E,u,r)}}else{if(h)if(c[E>>2]|0)h=(c[E>>2]|0)>>>0<=(c[c[w>>2]>>2]|0)>>>0;else h=0;else h=1;a[r>>0]=h&1;while(1){if((c[E>>2]|0)!=0?(g=(c[q>>2]|0)!=0?-1:1,n=u,o=(c[p>>2]|0)+32|0,o=fR(c[n>>2]|0,c[n+4>>2]|0,c[o>>2]|0,c[o+4>>2]|0)|0,o=rR(g|0,((g|0)<0)<<31>>31|0,o|0,C|0)|0,g=C,!((g|0)>0|(g|0)==0&o>>>0>0)):0)break d;if(d[r>>0]|0)break d;Wl(c[q>>2]|0,c[c[w>>2]>>2]|0,c[(c[w>>2]|0)+4>>2]|0,E,u,t,r)}}while(0);c[(c[w>>2]|0)+48>>2]=c[E>>2];n=u;g=c[n+4>>2]|0;o=(c[w>>2]|0)+56|0;c[o>>2]=c[n>>2];c[o+4>>2]=g;if(!((d[r>>0]|0)==0?(g=u,o=(c[p>>2]|0)+32|0,!((c[g>>2]|0)!=(c[o>>2]|0)?1:(c[g+4>>2]|0)!=(c[o+4>>2]|0))):0))c[s>>2]=0;c[v>>2]=c[(c[v>>2]|0)+12>>2]}if(c[s>>2]|0){c[E>>2]=c[(c[x>>2]|0)+48>>2];break}else{c[E>>2]=0;break}}while(0);if(!(c[E>>2]|0)){c[z>>2]=0;F=c[z>>2]|0;i=G;return F|0}if((a[c[E>>2]>>0]|0)==1){c[E>>2]=(c[E>>2]|0)+1;h=c[E>>2]|0;if(d[c[E>>2]>>0]&128)h=Vl(h,D)|0;else{c[D>>2]=d[h>>0];h=1}c[E>>2]=(c[E>>2]|0)+h}else c[D>>2]=0;while(1){if((c[D>>2]|0)>=(c[A>>2]|0))break;Tl(0,E);if(!(a[c[E>>2]>>0]|0)){F=65;break}c[E>>2]=(c[E>>2]|0)+1;h=c[E>>2]|0;if(d[c[E>>2]>>0]&128)h=Vl(h,D)|0;else{c[D>>2]=d[h>>0];h=1}c[E>>2]=(c[E>>2]|0)+h}if((F|0)==65){c[z>>2]=0;F=c[z>>2]|0;i=G;return F|0}if(!(a[c[E>>2]>>0]|0))c[E>>2]=0;c[c[B>>2]>>2]=(c[A>>2]|0)==(c[D>>2]|0)?c[E>>2]|0:0;c[z>>2]=0;F=c[z>>2]|0;i=G;return F|0}function Lm(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;d=h+8|0;g=h+4|0;e=h+12|0;f=h;c[d>>2]=b;c[g>>2]=c[c[d>>2]>>2];a[e>>0]=0;c[f>>2]=0;while(1){b=c[g>>2]|0;if(!(254&(a[c[g>>2]>>0]|a[e>>0])))break;c[g>>2]=b+1;a[e>>0]=a[b>>0]&128;if(a[e>>0]|0)continue;c[f>>2]=(c[f>>2]|0)+1}c[c[d>>2]>>2]=b;i=h;return c[f>>2]|0}function Mm(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;f=m+20|0;g=m+16|0;h=m+12|0;k=m+8|0;j=m+4|0;l=m;c[f>>2]=b;c[g>>2]=d;c[h>>2]=e;if(!(c[g>>2]|0)){i=m;return}if(c[c[h>>2]>>2]|0){i=m;return}c[k>>2]=c[(c[g>>2]|0)+20>>2];if(c[k>>2]|0){Pm(c[k>>2]|0);if(c[(c[k>>2]|0)+40>>2]|0){c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[(c[k>>2]|0)+64>>2]|0))break;c[l>>2]=(c[k>>2]|0)+72+((c[j>>2]|0)*24|0);if(c[(c[l>>2]|0)+20>>2]|0)Ym(c[(c[l>>2]|0)+20>>2]|0)|0;c[j>>2]=(c[j>>2]|0)+1}l=Zm(c[f>>2]|0,0,c[k>>2]|0)|0;c[c[h>>2]>>2]=l}c[(c[k>>2]|0)+8>>2]=0;l=(c[k>>2]|0)+16|0;c[l>>2]=0;c[l+4>>2]=0;c[(c[k>>2]|0)+48>>2]=0}l=(c[g>>2]|0)+24|0;c[l>>2]=0;c[l+4>>2]=0;a[(c[g>>2]|0)+32>>0]=0;a[(c[g>>2]|0)+33>>0]=0;Mm(c[f>>2]|0,c[(c[g>>2]|0)+12>>2]|0,c[h>>2]|0);Mm(c[f>>2]|0,c[(c[g>>2]|0)+16>>2]|0,c[h>>2]|0);i=m;return}function Nm(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=i;i=i+80|0;p=x+64|0;w=x+60|0;q=x+56|0;r=x+52|0;u=x+48|0;v=x+44|0;m=x+8|0;s=x+40|0;t=x+36|0;n=x+32|0;o=x+28|0;l=x;g=x+24|0;j=x+20|0;h=x+16|0;c[p>>2]=b;c[w>>2]=e;c[q>>2]=f;if(c[c[q>>2]>>2]|0){i=x;return}c[r>>2]=d[(c[p>>2]|0)+52>>0];a[(c[w>>2]|0)+33>>0]=1;switch(c[c[w>>2]>>2]|0){case 3:case 1:{c[u>>2]=c[(c[w>>2]|0)+12>>2];c[v>>2]=c[(c[w>>2]|0)+16>>2];if(a[(c[u>>2]|0)+34>>0]|0){Nm(c[p>>2]|0,c[v>>2]|0,c[q>>2]|0);s=(c[v>>2]|0)+24|0;t=c[s+4>>2]|0;u=(c[w>>2]|0)+24|0;c[u>>2]=c[s>>2];c[u+4>>2]=t;a[(c[w>>2]|0)+32>>0]=a[(c[v>>2]|0)+32>>0]|0;i=x;return}o=(a[(c[v>>2]|0)+34>>0]|0)!=0;Nm(c[p>>2]|0,c[u>>2]|0,c[q>>2]|0);if(o){s=(c[u>>2]|0)+24|0;t=c[s+4>>2]|0;v=(c[w>>2]|0)+24|0;c[v>>2]=c[s>>2];c[v+4>>2]=t;a[(c[w>>2]|0)+32>>0]=a[(c[u>>2]|0)+32>>0]|0;i=x;return}Nm(c[p>>2]|0,c[v>>2]|0,c[q>>2]|0);while(1){if(a[(c[u>>2]|0)+32>>0]|0)break;if(a[(c[v>>2]|0)+32>>0]|0)break;if(c[c[q>>2]>>2]|0)break;o=(c[r>>2]|0)!=0?-1:1;l=(c[u>>2]|0)+24|0;n=(c[v>>2]|0)+24|0;n=fR(c[l>>2]|0,c[l+4>>2]|0,c[n>>2]|0,c[n+4>>2]|0)|0;n=rR(o|0,((o|0)<0)<<31>>31|0,n|0,C|0)|0;o=m;c[o>>2]=n;c[o+4>>2]=C;o=m;if((c[o>>2]|0)==0&(c[o+4>>2]|0)==0)break;b=c[p>>2]|0;if((c[m+4>>2]|0)<0){Nm(b,c[u>>2]|0,c[q>>2]|0);continue}else{Nm(b,c[v>>2]|0,c[q>>2]|0);continue}}n=(c[u>>2]|0)+24|0;o=c[n+4>>2]|0;r=(c[w>>2]|0)+24|0;c[r>>2]=c[n>>2];c[r+4>>2]=o;if(d[(c[u>>2]|0)+32>>0]|0)b=1;else b=(d[(c[v>>2]|0)+32>>0]|0)!=0;a[(c[w>>2]|0)+32>>0]=b&1;if((c[c[w>>2]>>2]|0)!=1){i=x;return}if(!(d[(c[w>>2]|0)+32>>0]|0)){i=x;return}a:do if((c[(c[v>>2]|0)+20>>2]|0)!=0?(c[c[(c[v>>2]|0)+20>>2]>>2]|0)!=0:0){c[s>>2]=c[(c[v>>2]|0)+20>>2];while(1){if(c[c[q>>2]>>2]|0)break a;if(d[(c[v>>2]|0)+32>>0]|0)break a;kR(c[(c[s>>2]|0)+28>>2]|0,0,c[(c[s>>2]|0)+32>>2]|0)|0;Nm(c[p>>2]|0,c[v>>2]|0,c[q>>2]|0)}}while(0);if(!(c[(c[u>>2]|0)+20>>2]|0)){i=x;return}if(!(c[c[(c[u>>2]|0)+20>>2]>>2]|0)){i=x;return}c[t>>2]=c[(c[u>>2]|0)+20>>2];while(1){if(c[c[q>>2]>>2]|0){k=53;break}if(d[(c[u>>2]|0)+32>>0]|0){k=53;break}kR(c[(c[t>>2]|0)+28>>2]|0,0,c[(c[t>>2]|0)+32>>2]|0)|0;Nm(c[p>>2]|0,c[u>>2]|0,c[q>>2]|0)}if((k|0)==53){i=x;return}break}case 4:{c[n>>2]=c[(c[w>>2]|0)+12>>2];c[o>>2]=c[(c[w>>2]|0)+16>>2];v=(c[r>>2]|0)!=0?-1:1;t=(c[n>>2]|0)+24|0;u=(c[o>>2]|0)+24|0;u=fR(c[t>>2]|0,c[t+4>>2]|0,c[u>>2]|0,c[u+4>>2]|0)|0;u=rR(v|0,((v|0)<0)<<31>>31|0,u|0,C|0)|0;v=l;c[v>>2]=u;c[v+4>>2]=C;do if((d[(c[o>>2]|0)+32>>0]|0)==0?!((c[l+4>>2]|0)<0?(d[(c[n>>2]|0)+32>>0]|0)==0:0):0){if((d[(c[n>>2]|0)+32>>0]|0)==0?(v=l,u=c[v+4>>2]|0,!((d[(c[o>>2]|0)+32>>0]|0)==0&((u|0)>0|(u|0)==0&(c[v>>2]|0)>>>0>0))):0){Nm(c[p>>2]|0,c[n>>2]|0,c[q>>2]|0);Nm(c[p>>2]|0,c[o>>2]|0,c[q>>2]|0);break}Nm(c[p>>2]|0,c[o>>2]|0,c[q>>2]|0)}else k=33;while(0);if((k|0)==33)Nm(c[p>>2]|0,c[n>>2]|0,c[q>>2]|0);
  71. if(d[(c[n>>2]|0)+32>>0]|0)b=(d[(c[o>>2]|0)+32>>0]|0)!=0;else b=0;a[(c[w>>2]|0)+32>>0]=b&1;v=(c[r>>2]|0)!=0?-1:1;t=(c[n>>2]|0)+24|0;u=(c[o>>2]|0)+24|0;u=fR(c[t>>2]|0,c[t+4>>2]|0,c[u>>2]|0,c[u+4>>2]|0)|0;u=rR(v|0,((v|0)<0)<<31>>31|0,u|0,C|0)|0;v=l;c[v>>2]=u;c[v+4>>2]=C;if((d[(c[o>>2]|0)+32>>0]|0)==0?!((c[l+4>>2]|0)<0?(d[(c[n>>2]|0)+32>>0]|0)==0:0):0){u=(c[o>>2]|0)+24|0;v=c[u+4>>2]|0;w=(c[w>>2]|0)+24|0;c[w>>2]=c[u>>2];c[w+4>>2]=v;i=x;return}u=(c[n>>2]|0)+24|0;v=c[u+4>>2]|0;w=(c[w>>2]|0)+24|0;c[w>>2]=c[u>>2];c[w+4>>2]=v;i=x;return}case 2:{c[g>>2]=c[(c[w>>2]|0)+12>>2];c[j>>2]=c[(c[w>>2]|0)+16>>2];if(!(d[(c[j>>2]|0)+33>>0]|0))Nm(c[p>>2]|0,c[j>>2]|0,c[q>>2]|0);Nm(c[p>>2]|0,c[g>>2]|0,c[q>>2]|0);b:do if(!(d[(c[g>>2]|0)+32>>0]|0))while(1){if(c[c[q>>2]>>2]|0)break b;if(a[(c[j>>2]|0)+32>>0]|0)break b;u=(c[r>>2]|0)!=0?-1:1;t=(c[g>>2]|0)+24|0;v=(c[j>>2]|0)+24|0;v=fR(c[t>>2]|0,c[t+4>>2]|0,c[v>>2]|0,c[v+4>>2]|0)|0;v=rR(u|0,((u|0)<0)<<31>>31|0,v|0,C|0)|0;u=C;if(!((u|0)>0|(u|0)==0&v>>>0>0))break b;Nm(c[p>>2]|0,c[j>>2]|0,c[q>>2]|0)}while(0);t=(c[g>>2]|0)+24|0;u=c[t+4>>2]|0;v=(c[w>>2]|0)+24|0;c[v>>2]=c[t>>2];c[v+4>>2]=u;a[(c[w>>2]|0)+32>>0]=a[(c[g>>2]|0)+32>>0]|0;i=x;return}default:{c[h>>2]=c[(c[w>>2]|0)+20>>2];Pm(c[h>>2]|0);u=Qm(c[p>>2]|0,c[h>>2]|0,(c[w>>2]|0)+32|0)|0;c[c[q>>2]>>2]=u;u=(c[h>>2]|0)+16|0;v=c[u+4>>2]|0;w=(c[w>>2]|0)+24|0;c[w>>2]=c[u>>2];c[w+4>>2]=v;i=x;return}}}function Om(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;j=r+32|0;k=r+28|0;l=r+24|0;m=r+20|0;n=r+16|0;o=r+12|0;q=r+8|0;p=r;c[j>>2]=b;c[k>>2]=d;c[l>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[q>>2]=c[c[m>>2]>>2];if(!(c[q>>2]|0)){c[q>>2]=c[k>>2];p=Ul(c[q>>2]|0,c[n>>2]|0)|0;c[q>>2]=(c[q>>2]|0)+p;p=c[q>>2]|0;q=c[m>>2]|0;c[q>>2]=p;i=r;return}Zl(0,q);while(1){if((c[q>>2]|0)>>>0<((c[k>>2]|0)+(c[l>>2]|0)|0)>>>0)b=(a[c[q>>2]>>0]|0)==0;else b=0;d=c[q>>2]|0;if(!b)break;c[q>>2]=d+1}if(d>>>0>=((c[k>>2]|0)+(c[l>>2]|0)|0)>>>0){a[c[o>>2]>>0]=1;p=c[q>>2]|0;q=c[m>>2]|0;c[q>>2]=p;i=r;return}else{l=Ul(c[q>>2]|0,p)|0;c[q>>2]=(c[q>>2]|0)+l;l=(c[j>>2]|0)!=0?-1:1;o=p;o=rR(l|0,((l|0)<0)<<31>>31|0,c[o>>2]|0,c[o+4>>2]|0)|0;p=c[n>>2]|0;n=p;o=gR(c[n>>2]|0,c[n+4>>2]|0,o|0,C|0)|0;c[p>>2]=o;c[p+4>>2]=C;p=c[q>>2]|0;q=c[m>>2]|0;c[q>>2]=p;i=r;return}}function Pm(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if(c[(c[b>>2]|0)+24>>2]|0)Kd(c[(c[b>>2]|0)+28>>2]|0);c[(c[b>>2]|0)+28>>2]=0;c[(c[b>>2]|0)+32>>2]=0;c[(c[b>>2]|0)+24>>2]=0;i=d;return}function Qm(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;l=i;i=i+32|0;m=l+20|0;f=l+16|0;g=l+12|0;k=l+8|0;h=l+4|0;j=l;c[m>>2]=a;c[f>>2]=b;c[g>>2]=e;c[k>>2]=0;c[h>>2]=c[f>>2];c[j>>2]=c[c[m>>2]>>2];b=c[m>>2]|0;if(c[(c[f>>2]|0)+40>>2]|0){c[k>>2]=Rm(b,c[f>>2]|0,c[g>>2]|0)|0;m=c[k>>2]|0;i=l;return m|0}if((d[b+52>>0]|0|0)!=(d[(c[j>>2]|0)+231>>0]|0|0)?(c[(c[h>>2]|0)+4>>2]|0)!=0:0){Wl(d[(c[j>>2]|0)+231>>0]|0,c[c[h>>2]>>2]|0,c[(c[h>>2]|0)+4>>2]|0,(c[h>>2]|0)+8|0,(c[h>>2]|0)+16|0,(c[h>>2]|0)+32|0,c[g>>2]|0);c[(c[h>>2]|0)+28>>2]=c[(c[h>>2]|0)+8>>2];m=c[k>>2]|0;i=l;return m|0}Sm(c[j>>2]|0,c[h>>2]|0,c[g>>2]|0);m=c[k>>2]|0;i=l;return m|0}function Rm(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0;E=i;i=i+192|0;h=E+172|0;g=E+168|0;j=E+164|0;k=E+160|0;A=E+156|0;v=E+152|0;z=E+148|0;o=E+176|0;n=E+144|0;l=E+8|0;p=E+140|0;r=E;q=E+136|0;u=E+132|0;s=E+128|0;m=E+124|0;w=E+120|0;y=E+116|0;x=E+112|0;t=E+108|0;B=E+104|0;c[g>>2]=b;c[j>>2]=e;c[k>>2]=f;c[A>>2]=0;c[v>>2]=c[j>>2];c[z>>2]=c[c[g>>2]>>2];a[o>>0]=0;if((c[(c[j>>2]|0)+64>>2]|0)==1?(c[(c[j>>2]|0)+40>>2]|0)!=0:0){c[A>>2]=Tm(c[z>>2]|0,c[(c[j>>2]|0)+72+20>>2]|0,(c[v>>2]|0)+16|0,(c[v>>2]|0)+28|0,(c[v>>2]|0)+32|0)|0;if(!(c[(c[v>>2]|0)+28>>2]|0))a[o>>0]=1}else D=5;a:do if((D|0)==5){c[n>>2]=d[(c[g>>2]|0)+52>>0];g=l;e=g+96|0;do{c[g>>2]=0;g=g+4|0}while((g|0)<(e|0));while(1){if(d[o>>0]|0)break a;c[p>>2]=0;f=r;c[f>>2]=0;c[f+4>>2]=0;c[q>>2]=0;while(1){if(c[A>>2]|0)break;if((c[q>>2]|0)>=(c[(c[j>>2]|0)+64>>2]|0))break;if(d[o>>0]|0)break;c[A>>2]=Um(c[z>>2]|0,c[j>>2]|0,c[q>>2]|0,l+((c[q>>2]|0)*24|0)|0,o)|0;do if(!(c[l+((c[q>>2]|0)*24|0)>>2]|0)){if((c[p>>2]|0)!=0?(b=(c[n>>2]|0)!=0?-1:1,e=r,f=l+((c[q>>2]|0)*24|0)+8|0,f=fR(c[e>>2]|0,c[e+4>>2]|0,c[f>>2]|0,c[f+4>>2]|0)|0,rR(b|0,((b|0)<0)<<31>>31|0,f|0,C|0)|0,(C|0)>=0):0)break;e=l+((c[q>>2]|0)*24|0)+8|0;b=c[e+4>>2]|0;f=r;c[f>>2]=c[e>>2];c[f+4>>2]=b;c[p>>2]=1}while(0);c[q>>2]=(c[q>>2]|0)+1}c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[(c[j>>2]|0)+64>>2]|0))break;while(1){if(c[A>>2]|0)break;if(d[o>>0]|0)break;if(c[l+((c[q>>2]|0)*24|0)>>2]|0)break;b=(c[n>>2]|0)!=0?-1:1;e=l+((c[q>>2]|0)*24|0)+8|0;f=r;f=fR(c[e>>2]|0,c[e+4>>2]|0,c[f>>2]|0,c[f+4>>2]|0)|0;rR(b|0,((b|0)<0)<<31>>31|0,f|0,C|0)|0;if((C|0)>=0)break;c[A>>2]=Um(c[z>>2]|0,c[j>>2]|0,c[q>>2]|0,l+((c[q>>2]|0)*24|0)|0,o)|0;b=(c[n>>2]|0)!=0?-1:1;e=l+((c[q>>2]|0)*24|0)+8|0;f=r;f=fR(c[e>>2]|0,c[e+4>>2]|0,c[f>>2]|0,c[f+4>>2]|0)|0;f=rR(b|0,((b|0)<0)<<31>>31|0,f|0,C|0)|0;b=C;if(!((b|0)>0|(b|0)==0&f>>>0>0))continue;e=l+((c[q>>2]|0)*24|0)+8|0;b=c[e+4>>2]|0;f=r;c[f>>2]=c[e>>2];c[f+4>>2]=b;c[q>>2]=0}c[q>>2]=(c[q>>2]|0)+1}if(d[o>>0]|0)continue;c[u>>2]=0;c[s>>2]=c[l+(((c[(c[j>>2]|0)+64>>2]|0)-1|0)*24|0)+20>>2];c[m>>2]=Id((c[s>>2]|0)+1|0)|0;if(!(c[m>>2]|0))break;iR(c[m>>2]|0,c[l+(((c[(c[j>>2]|0)+64>>2]|0)-1|0)*24|0)+16>>2]|0,(c[s>>2]|0)+1|0)|0;c[q>>2]=0;while(1){if((c[q>>2]|0)>=((c[(c[j>>2]|0)+64>>2]|0)-1|0))break;if(!(c[l+((c[q>>2]|0)*24|0)>>2]|0)){c[w>>2]=c[l+((c[q>>2]|0)*24|0)+16>>2];c[y>>2]=c[m>>2];c[x>>2]=c[m>>2];c[t>>2]=(c[(c[j>>2]|0)+64>>2]|0)-1-(c[q>>2]|0);c[B>>2]=Vm(x,c[t>>2]|0,0,1,w,y)|0;if(!(c[B>>2]|0))break;c[u>>2]=(c[x>>2]|0)-(c[m>>2]|0)}c[q>>2]=(c[q>>2]|0)+1}if((c[q>>2]|0)==((c[(c[j>>2]|0)+64>>2]|0)-1|0)){D=35;break}Kd(c[m>>2]|0)}if((D|0)==35){z=r;B=c[z+4>>2]|0;D=(c[v>>2]|0)+16|0;c[D>>2]=c[z>>2];c[D+4>>2]=B;c[(c[v>>2]|0)+28>>2]=c[m>>2];c[(c[v>>2]|0)+32>>2]=c[u>>2];c[(c[v>>2]|0)+24>>2]=1;break}c[h>>2]=7;D=c[h>>2]|0;i=E;return D|0}while(0);a[c[k>>2]>>0]=a[o>>0]|0;c[h>>2]=c[A>>2];D=c[h>>2]|0;i=E;return D|0}function Sm(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;g=n+24|0;j=n+20|0;k=n+16|0;m=n+12|0;l=n+8|0;h=n;c[g>>2]=b;c[j>>2]=e;c[k>>2]=f;c[l>>2]=(c[c[j>>2]>>2]|0)+(c[(c[j>>2]|0)+4>>2]|0);e=c[j>>2]|0;if(c[(c[j>>2]|0)+8>>2]|0)c[m>>2]=c[e+8>>2];else c[m>>2]=c[e>>2];if((c[m>>2]|0)>>>0>=(c[l>>2]|0)>>>0){a[c[k>>2]>>0]=1;i=n;return}f=Ul(c[m>>2]|0,h)|0;c[m>>2]=(c[m>>2]|0)+f;if((d[(c[g>>2]|0)+231>>0]|0)!=0?(c[(c[j>>2]|0)+8>>2]|0)!=0:0){g=h;h=(c[j>>2]|0)+16|0;f=h;g=fR(c[f>>2]|0,c[f+4>>2]|0,c[g>>2]|0,c[g+4>>2]|0)|0;c[h>>2]=g;c[h+4>>2]=C}else{g=h;h=(c[j>>2]|0)+16|0;f=h;g=gR(c[f>>2]|0,c[f+4>>2]|0,c[g>>2]|0,c[g+4>>2]|0)|0;c[h>>2]=g;c[h+4>>2]=C}c[(c[j>>2]|0)+28>>2]=c[m>>2];Zl(0,m);c[(c[j>>2]|0)+32>>2]=(c[m>>2]|0)-(c[(c[j>>2]|0)+28>>2]|0);while(1){if((c[m>>2]|0)>>>0<(c[l>>2]|0)>>>0)b=(a[c[m>>2]>>0]|0)==0;else b=0;e=c[m>>2]|0;if(!b)break;c[m>>2]=e+1}c[(c[j>>2]|0)+8>>2]=e;a[c[k>>2]>>0]=0;i=n;return}function Tm(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=i;i=i+64|0;p=x+60|0;h=x+56|0;j=x+52|0;q=x+48|0;r=x+44|0;s=x+40|0;m=x+36|0;k=x+32|0;o=x+28|0;n=x+24|0;w=x+20|0;v=x+16|0;u=x+12|0;l=x+8|0;t=x;c[h>>2]=a;c[j>>2]=b;c[q>>2]=e;c[r>>2]=f;c[s>>2]=g;c[m>>2]=c[(c[j>>2]|0)+8>>2];c[k>>2]=c[c[j>>2]>>2];c[o>>2]=(d[(c[h>>2]|0)+231>>0]|0|0)!=0?182:183;if(!(c[m>>2]|0)){c[c[r>>2]>>2]=0;c[p>>2]=0;w=c[p>>2]|0;i=x;return w|0}while(1){c[n>>2]=c[c[c[j>>2]>>2]>>2];if(!(c[(c[n>>2]|0)+80>>2]|0)){h=4;break}f=(c[c[k>>2]>>2]|0)+88|0;e=c[f+4>>2]|0;g=t;c[g>>2]=c[f>>2];c[g+4>>2]=e;c[w>>2]=Ql(c[h>>2]|0,c[c[k>>2]>>2]|0,v,u)|0;c[l>>2]=1;while(1){if(c[w>>2]|0)break;if((c[l>>2]|0)>=(c[m>>2]|0))break;if(!(c[(c[(c[k>>2]|0)+(c[l>>2]<<2)>>2]|0)+80>>2]|0))break;e=(c[(c[k>>2]|0)+(c[l>>2]<<2)>>2]|0)+88|0;g=t;if(!((c[e>>2]|0)==(c[g>>2]|0)?(c[e+4>>2]|0)==(c[g+4>>2]|0):0))break;c[w>>2]=Ql(c[h>>2]|0,c[(c[k>>2]|0)+(c[l>>2]<<2)>>2]|0,0,0)|0;c[l>>2]=(c[l>>2]|0)+1}if(c[w>>2]|0){h=12;break}Nl(c[c[j>>2]>>2]|0,c[m>>2]|0,c[l>>2]|0,c[o>>2]|0);if((c[u>>2]|0)>0?(c[(c[c[k>>2]>>2]|0)+56>>2]|0)!=0:0){c[w>>2]=Ol(c[j>>2]|0,c[v>>2]|0,(c[u>>2]|0)+1|0)|0;if(c[w>>2]|0){h=16;break}c[v>>2]=c[(c[j>>2]|0)+16>>2]}if((c[(c[j>>2]|0)+24>>2]|0)>=0)Rl(c[(c[j>>2]|0)+24>>2]|0,1,v,u);if((c[u>>2]|0)>0){h=21;break}}if((h|0)==4)c[c[r>>2]>>2]=0;else if((h|0)==12){c[p>>2]=c[w>>2];w=c[p>>2]|0;i=x;return w|0}else if((h|0)==16){c[p>>2]=c[w>>2];w=c[p>>2]|0;i=x;return w|0}else if((h|0)==21){c[c[r>>2]>>2]=c[v>>2];v=c[t+4>>2]|0;w=c[q>>2]|0;c[w>>2]=c[t>>2];c[w+4>>2]=v;c[c[s>>2]>>2]=c[u>>2]}c[p>>2]=0;w=c[p>>2]|0;i=x;return w|0}function Um(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;h=p+24|0;j=p+20|0;k=p+16|0;l=p+12|0;m=p+8|0;o=p+4|0;n=p;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;c[o>>2]=0;if((c[(c[j>>2]|0)+44>>2]|0)==(c[k>>2]|0)){Sm(c[h>>2]|0,c[j>>2]|0,c[m>>2]|0);c[(c[l>>2]|0)+16>>2]=c[(c[j>>2]|0)+28>>2];c[(c[l>>2]|0)+20>>2]=c[(c[j>>2]|0)+32>>2];b=(c[j>>2]|0)+16|0;n=c[b+4>>2]|0;g=(c[l>>2]|0)+8|0;c[g>>2]=c[b>>2];c[g+4>>2]=n;o=c[o>>2]|0;i=p;return o|0}c[n>>2]=(c[j>>2]|0)+72+((c[k>>2]|0)*24|0);if(!(c[(c[n>>2]|0)+20>>2]|0)){c[c[l>>2]>>2]=1;o=c[o>>2]|0;i=p;return o|0}c[o>>2]=Tm(c[h>>2]|0,c[(c[n>>2]|0)+20>>2]|0,(c[l>>2]|0)+8|0,(c[l>>2]|0)+16|0,(c[l>>2]|0)+20|0)|0;if(c[(c[l>>2]|0)+16>>2]|0){o=c[o>>2]|0;i=p;return o|0}a[c[m>>2]>>0]=1;o=c[o>>2]|0;i=p;return o|0}function Vm(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0;D=i;i=i+96|0;k=D+80|0;l=D+76|0;m=D+72|0;n=D+68|0;o=D+64|0;p=D+60|0;q=D+56|0;x=D+52|0;y=D+48|0;z=D+44|0;r=D+40|0;s=D+36|0;A=D+32|0;v=D+24|0;t=D+16|0;u=D+8|0;w=D;c[l>>2]=b;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[q>>2]=j;c[x>>2]=c[c[l>>2]>>2];c[y>>2]=c[c[p>>2]>>2];c[z>>2]=c[c[q>>2]>>2];c[r>>2]=0;c[s>>2]=0;if((a[c[y>>2]>>0]|0)==1){c[y>>2]=(c[y>>2]|0)+1;g=c[y>>2]|0;if(d[c[y>>2]>>0]&128)g=Vl(g,r)|0;else{c[r>>2]=d[g>>0];g=1}c[y>>2]=(c[y>>2]|0)+g}if((a[c[z>>2]>>0]|0)==1){c[z>>2]=(c[z>>2]|0)+1;g=c[z>>2]|0;if(d[c[z>>2]>>0]&128)g=Vl(g,s)|0;else{c[s>>2]=d[g>>0];g=1}c[z>>2]=(c[z>>2]|0)+g}while(1){if((c[r>>2]|0)!=(c[s>>2]|0))if((c[r>>2]|0)<(c[s>>2]|0)){Tl(0,y);if(!(a[c[y>>2]>>0]|0))break;c[y>>2]=(c[y>>2]|0)+1;g=c[y>>2]|0;if(d[c[y>>2]>>0]&128)g=Vl(g,r)|0;else{c[r>>2]=d[g>>0];g=1}c[y>>2]=(c[y>>2]|0)+g;continue}else{Tl(0,z);if(!(a[c[z>>2]>>0]|0))break;c[z>>2]=(c[z>>2]|0)+1;g=c[z>>2]|0;if(d[c[z>>2]>>0]&128)g=Vl(g,s)|0;else{c[s>>2]=d[g>>0];g=1}c[z>>2]=(c[z>>2]|0)+g;continue}c[A>>2]=c[x>>2];j=v;c[j>>2]=0;c[j+4>>2]=0;j=t;c[j>>2]=0;c[j+4>>2]=0;j=u;c[j>>2]=0;c[j+4>>2]=0;if(c[r>>2]|0){j=c[x>>2]|0;c[x>>2]=j+1;a[j>>0]=1;j=c[r>>2]|0;j=El(c[x>>2]|0,j,((j|0)<0)<<31>>31)|0;c[x>>2]=(c[x>>2]|0)+j}Wm(y,t);j=t;j=fR(c[j>>2]|0,c[j+4>>2]|0,2,0)|0;h=t;c[h>>2]=j;c[h+4>>2]=C;Wm(z,u);h=u;h=fR(c[h>>2]|0,c[h+4>>2]|0,2,0)|0;j=u;c[j>>2]=h;c[j+4>>2]=C;while(1){j=u;b=c[j>>2]|0;j=c[j+4>>2]|0;e=t;h=c[m>>2]|0;h=gR(c[e>>2]|0,c[e+4>>2]|0,h|0,((h|0)<0)<<31>>31|0)|0;if(!((b|0)==(h|0)&(j|0)==(C|0))){if(((c[o>>2]|0)==0?(h=u,e=c[h+4>>2]|0,j=t,b=c[j+4>>2]|0,(e|0)>(b|0)|((e|0)==(b|0)?(c[h>>2]|0)>>>0>(c[j>>2]|0)>>>0:0)):0)?(e=u,h=c[e>>2]|0,e=c[e+4>>2]|0,b=t,j=c[m>>2]|0,j=gR(c[b>>2]|0,c[b+4>>2]|0,j|0,((j|0)<0)<<31>>31|0)|0,b=C,(e|0)<(b|0)|(e|0)==(b|0)&h>>>0<=j>>>0):0)B=19}else B=19;if((B|0)==19){B=0;f=(c[n>>2]|0)!=0;e=t;b=u;j=f?c[e+4>>2]|0:c[b+4>>2]|0;h=w;c[h>>2]=f?c[e>>2]|0:c[b>>2]|0;c[h+4>>2]=j;h=w;h=gR(c[h>>2]|0,c[h+4>>2]|0,2,0)|0;Xm(x,v,h,C);h=v;h=fR(c[h>>2]|0,c[h+4>>2]|0,2,0)|0;j=v;c[j>>2]=h;c[j+4>>2]=C;c[A>>2]=0}if(!((c[n>>2]|0)==0?(e=u,h=c[e>>2]|0,e=c[e+4>>2]|0,b=t,j=c[m>>2]|0,j=gR(c[b>>2]|0,c[b+4>>2]|0,j|0,((j|0)<0)<<31>>31|0)|0,b=C,(e|0)<(b|0)|(e|0)==(b|0)&h>>>0<=j>>>0):0))B=22;if((B|0)==22?(B=0,h=u,e=c[h+4>>2]|0,j=t,b=c[j+4>>2]|0,!((e|0)<(b|0)|((e|0)==(b|0)?(c[h>>2]|0)>>>0<=(c[j>>2]|0)>>>0:0))):0){if(!(a[c[y>>2]>>0]&254))break;Wm(y,t);h=t;h=fR(c[h>>2]|0,c[h+4>>2]|0,2,0)|0;j=t;c[j>>2]=h;c[j+4>>2]=C;continue}if(!(a[c[z>>2]>>0]&254))break;Wm(z,u);h=u;h=fR(c[h>>2]|0,c[h+4>>2]|0,2,0)|0;j=u;c[j>>2]=h;c[j+4>>2]=C}if(c[A>>2]|0)c[x>>2]=c[A>>2];Tl(0,y);Tl(0,z);if(!(a[c[y>>2]>>0]|0))break;if(!(a[c[z>>2]>>0]|0))break;c[y>>2]=(c[y>>2]|0)+1;g=c[y>>2]|0;if(d[c[y>>2]>>0]&128)g=Vl(g,r)|0;else{c[r>>2]=d[g>>0];g=1}c[y>>2]=(c[y>>2]|0)+g;c[z>>2]=(c[z>>2]|0)+1;g=c[z>>2]|0;if(d[c[z>>2]>>0]&128)g=Vl(g,s)|0;else{c[s>>2]=d[g>>0];g=1}c[z>>2]=(c[z>>2]|0)+g}Zl(0,z);Zl(0,y);c[c[p>>2]>>2]=c[y>>2];c[c[q>>2]>>2]=c[z>>2];if((c[c[l>>2]>>2]|0)==(c[x>>2]|0)){c[k>>2]=0;B=c[k>>2]|0;i=D;return B|0}else{B=c[x>>2]|0;c[x>>2]=B+1;a[B>>0]=0;c[c[l>>2]>>2]=c[x>>2];c[k>>2]=1;B=c[k>>2]|0;i=D;return B|0}return 0}function Wm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;g=d+12|0;e=d+8|0;f=d;c[g>>2]=a;c[e>>2]=b;a=Ul(c[c[g>>2]>>2]|0,f)|0;b=c[g>>2]|0;c[b>>2]=(c[b>>2]|0)+a;b=f;a=c[e>>2]|0;e=a;b=gR(c[e>>2]|0,c[e+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;c[a>>2]=b;c[a+4>>2]=C;i=d;return}function Xm(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+16|0;j=f+12|0;g=f+8|0;h=f;c[j>>2]=a;c[g>>2]=b;a=h;c[a>>2]=d;c[a+4>>2]=e;e=c[c[j>>2]>>2]|0;a=h;b=c[g>>2]|0;b=fR(c[a>>2]|0,c[a+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;b=El(e,b,C)|0;e=c[j>>2]|0;c[e>>2]=(c[e>>2]|0)+b;e=h;b=c[e+4>>2]|0;a=c[g>>2]|0;c[a>>2]=c[e>>2];c[a+4>>2]=b;i=f;return}function Ym(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;c[(c[b>>2]|0)+8>>2]=0;c[(c[b>>2]|0)+28>>2]=1;c[d>>2]=0;while(1){if((c[d>>2]|0)>=(c[(c[b>>2]|0)+4>>2]|0))break;c[(c[(c[c[b>>2]>>2]|0)+(c[d>>2]<<2)>>2]|0)+80>>2]=0;c[(c[(c[c[b>>2]>>2]|0)+(c[d>>2]<<2)>>2]|0)+84>>2]=0;a=(c[(c[c[b>>2]>>2]|0)+(c[d>>2]<<2)>>2]|0)+88|0;c[a>>2]=0;c[a+4>>2]=0;c[d>>2]=(c[d>>2]|0)+1}i=e;return 0}function Zm(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=i;i=i+48|0;f=s+44|0;t=s+40|0;l=s+36|0;p=s+32|0;r=s+28|0;m=s+24|0;g=s+20|0;h=s+16|0;j=s+12|0;n=s+8|0;q=s+4|0;o=s;c[f>>2]=a;c[t>>2]=b;c[l>>2]=e;c[p>>2]=c[c[f>>2]>>2];c[r>>2]=0;c[g>>2]=0;if(((c[t>>2]|0)!=0?(d[(c[f>>2]|0)+52>>0]|0|0)==(d[(c[p>>2]|0)+231>>0]|0|0):0)?(c[(c[l>>2]|0)+64>>2]|0)<=4:0)b=(c[(c[l>>2]|0)+64>>2]|0)>0;else b=0;c[h>>2]=b&1;c[m>>2]=0;while(1){if((c[h>>2]|0)!=1)break;if((c[m>>2]|0)>=(c[(c[l>>2]|0)+64>>2]|0))break;c[j>>2]=(c[l>>2]|0)+72+((c[m>>2]|0)*24|0);if(!(c[(c[j>>2]|0)+12>>2]|0)){if((c[(c[j>>2]|0)+20>>2]|0)!=0?(c[(c[(c[j>>2]|0)+20>>2]|0)+36>>2]|0)==0:0)k=11}else k=11;if((k|0)==11){k=0;c[h>>2]=0}if(c[(c[j>>2]|0)+20>>2]|0)c[g>>2]=1;c[m>>2]=(c[m>>2]|0)+1}if(!((c[h>>2]|0)!=0&(c[g>>2]|0)!=0)){c[r>>2]=$m(c[f>>2]|0,c[l>>2]|0)|0;c[(c[l>>2]|0)+40>>2]=0;t=c[r>>2]|0;i=s;return t|0}if((c[(c[l>>2]|0)+68>>2]|0)>=(c[(c[p>>2]|0)+24>>2]|0))b=-1;else b=c[(c[l>>2]|0)+68>>2]|0;c[n>>2]=b;c[m>>2]=0;while(1){if(c[r>>2]|0)break;if((c[m>>2]|0)>=(c[(c[l>>2]|0)+64>>2]|0))break;c[q>>2]=(c[l>>2]|0)+72+((c[m>>2]|0)*24|0);c[o>>2]=c[(c[q>>2]|0)+20>>2];if(c[o>>2]|0)c[r>>2]=_m(c[p>>2]|0,c[o>>2]|0,c[n>>2]|0,c[c[q>>2]>>2]|0,c[(c[q>>2]|0)+4>>2]|0)|0;c[m>>2]=(c[m>>2]|0)+1}c[(c[l>>2]|0)+40>>2]=1;t=c[r>>2]|0;i=s;return t|0}function _m(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+48|0;n=t+40|0;h=t+36|0;o=t+32|0;p=t+28|0;j=t+24|0;k=t+20|0;q=t+16|0;r=t+12|0;l=t+8|0;s=t+4|0;m=t;c[h>>2]=a;c[o>>2]=b;c[p>>2]=e;c[j>>2]=f;c[k>>2]=g;c[l>>2]=c[(c[o>>2]|0)+4>>2];c[s>>2]=(d[(c[h>>2]|0)+231>>0]|0|0)!=0?182:183;c[r>>2]=bm(c[h>>2]|0,c[o>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;if(c[r>>2]|0){c[n>>2]=c[r>>2];s=c[n>>2]|0;i=t;return s|0}c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[l>>2]|0))break;c[m>>2]=c[(c[c[o>>2]>>2]|0)+(c[q>>2]<<2)>>2];if(!(c[(c[m>>2]|0)+40>>2]|0))break;if(cm(c[m>>2]|0,c[j>>2]|0,c[k>>2]|0)|0)break;c[q>>2]=(c[q>>2]|0)+1}c[(c[o>>2]|0)+8>>2]=c[q>>2];c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[(c[o>>2]|0)+8>>2]|0)){h=13;break}c[r>>2]=Pl(c[h>>2]|0,c[(c[c[o>>2]>>2]|0)+(c[q>>2]<<2)>>2]|0)|0;if(c[r>>2]|0){h=11;break}c[q>>2]=(c[q>>2]|0)+1}if((h|0)==11){c[n>>2]=c[r>>2];s=c[n>>2]|0;i=t;return s|0}else if((h|0)==13){Nl(c[c[o>>2]>>2]|0,c[q>>2]|0,c[q>>2]|0,c[s>>2]|0);c[(c[o>>2]|0)+24>>2]=c[p>>2];c[n>>2]=0;s=c[n>>2]|0;i=t;return s|0}return 0}function $m(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;l=i;i=i+32|0;m=l+28|0;d=l+24|0;g=l+20|0;e=l+16|0;k=l+12|0;j=l+8|0;f=l+4|0;h=l;c[m>>2]=a;c[d>>2]=b;c[g>>2]=c[c[m>>2]>>2];c[k>>2]=0;c[e>>2]=0;while(1){if(c[k>>2]|0){d=8;break}if((c[e>>2]|0)>=(c[(c[d>>2]|0)+64>>2]|0)){d=8;break}c[j>>2]=(c[d>>2]|0)+72+((c[e>>2]|0)*24|0);if((c[(c[j>>2]|0)+20>>2]|0)!=0?(c[f>>2]=0,c[h>>2]=0,c[k>>2]=an(c[g>>2]|0,c[j>>2]|0,c[(c[d>>2]|0)+68>>2]|0,f,h)|0,(c[k>>2]|0)==0):0)c[k>>2]=bn(c[g>>2]|0,c[d>>2]|0,c[e>>2]|0,c[h>>2]|0,c[f>>2]|0)|0;c[e>>2]=(c[e>>2]|0)+1}if((d|0)==8){i=l;return c[k>>2]|0}return 0}function an(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+192|0;g=r+176|0;h=r+172|0;j=r+168|0;k=r+164|0;l=r+160|0;p=r+156|0;o=r+152|0;q=r+24|0;m=r+8|0;n=r;c[g>>2]=a;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;c[o>>2]=c[(c[h>>2]|0)+20>>2];d=q;a=d+128|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(a|0));c[m+12>>2]=3|((c[(c[h>>2]|0)+8>>2]|0)!=0?8:0)|((c[(c[h>>2]|0)+12>>2]|0)!=0?32:0)|((c[j>>2]|0)<(c[(c[g>>2]|0)+24>>2]|0)?4:0);c[m+8>>2]=c[j>>2];c[m>>2]=c[c[h>>2]>>2];c[m+4>>2]=c[(c[h>>2]|0)+4>>2];c[p>>2]=ol(c[g>>2]|0,c[o>>2]|0,m)|0;while(1){if(c[p>>2]|0)break;m=pl(c[g>>2]|0,c[o>>2]|0)|0;c[p>>2]=m;if(100!=(m|0))break;c[p>>2]=fn(c[g>>2]|0,q,c[(c[o>>2]|0)+48>>2]|0,c[(c[o>>2]|0)+52>>2]|0)|0}if(!(c[p>>2]|0))c[p>>2]=gn(c[g>>2]|0,q)|0;if(!(c[p>>2]|0)){c[c[l>>2]>>2]=c[q>>2];c[c[k>>2]>>2]=c[q+64>>2];q=c[o>>2]|0;hn(q);q=c[h>>2]|0;q=q+20|0;c[q>>2]=0;q=c[p>>2]|0;i=r;return q|0}c[n>>2]=0;while(1){if((c[n>>2]|0)>=16)break;Kd(c[q+(c[n>>2]<<2)>>2]|0);c[n>>2]=(c[n>>2]|0)+1}q=c[o>>2]|0;hn(q);q=c[h>>2]|0;q=q+20|0;c[q>>2]=0;q=c[p>>2]|0;i=r;return q|0}function bn(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+48|0;h=t+40|0;j=t+36|0;k=t+32|0;l=t+28|0;m=t+24|0;s=t+20|0;q=t+16|0;r=t+12|0;o=t+8|0;p=t+4|0;n=t;c[h>>2]=a;c[j>>2]=b;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;c[s>>2]=0;e=c[j>>2]|0;do if(!(c[l>>2]|0)){Kd(c[e>>2]|0);c[c[j>>2]>>2]=0;c[(c[j>>2]|0)+4>>2]=0}else{if((c[e+44>>2]|0)<0){c[c[j>>2]>>2]=c[l>>2];c[(c[j>>2]|0)+4>>2]=c[m>>2];break}if(!(c[c[j>>2]>>2]|0)){Kd(c[l>>2]|0);break}e=c[c[j>>2]>>2]|0;if((c[(c[j>>2]|0)+44>>2]|0)<(c[k>>2]|0)){c[q>>2]=e;c[o>>2]=c[(c[j>>2]|0)+4>>2];c[r>>2]=c[l>>2];c[p>>2]=c[m>>2];c[n>>2]=(c[k>>2]|0)-(c[(c[j>>2]|0)+44>>2]|0)}else{c[r>>2]=e;c[p>>2]=c[(c[j>>2]|0)+4>>2];c[q>>2]=c[l>>2];c[o>>2]=c[m>>2];c[n>>2]=(c[(c[j>>2]|0)+44>>2]|0)-(c[k>>2]|0)}c[s>>2]=cn(d[(c[h>>2]|0)+231>>0]|0,c[n>>2]|0,c[q>>2]|0,c[o>>2]|0,r,p)|0;Kd(c[q>>2]|0);c[c[j>>2]>>2]=c[r>>2];c[(c[j>>2]|0)+4>>2]=c[p>>2]}while(0);if((c[k>>2]|0)<=(c[(c[j>>2]|0)+44>>2]|0)){s=c[s>>2]|0;i=t;return s|0}c[(c[j>>2]|0)+44>>2]=c[k>>2];s=c[s>>2]|0;i=t;return s|0}function cn(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0;D=i;i=i+112|0;h=D+104|0;j=D+100|0;k=D+96|0;E=D+92|0;F=D+88|0;l=D+84|0;m=D+80|0;r=D+32|0;s=D+24|0;u=D+16|0;o=D+76|0;z=D+72|0;A=D+68|0;x=D+64|0;y=D+60|0;w=D+56|0;p=D+52|0;n=D+48|0;t=D+8|0;B=D+44|0;v=D;q=D+40|0;c[j>>2]=a;c[k>>2]=b;c[E>>2]=d;c[F>>2]=e;c[l>>2]=f;c[m>>2]=g;g=r;c[g>>2]=0;c[g+4>>2]=0;g=s;c[g>>2]=0;c[g+4>>2]=0;g=u;c[g>>2]=0;c[g+4>>2]=0;c[o>>2]=c[c[l>>2]>>2];c[z>>2]=(c[E>>2]|0)+(c[F>>2]|0);c[A>>2]=(c[o>>2]|0)+(c[c[m>>2]>>2]|0);c[x>>2]=c[E>>2];c[y>>2]=c[o>>2];c[p>>2]=0;if(c[j>>2]|0){c[n>>2]=Id((c[c[m>>2]>>2]|0)+10|0)|0;if(!(c[n>>2]|0)){c[h>>2]=7;F=c[h>>2]|0;i=D;return F|0}}else c[n>>2]=c[o>>2];c[w>>2]=c[n>>2];dn(x,c[z>>2]|0,0,r);dn(y,c[A>>2]|0,0,s);while(1){if(!((c[x>>2]|0)!=0?(c[y>>2]|0)!=0:0))break;F=(c[j>>2]|0)!=0?-1:1;g=r;E=s;E=fR(c[g>>2]|0,c[g+4>>2]|0,c[E>>2]|0,c[E+4>>2]|0)|0;E=rR(F|0,((F|0)<0)<<31>>31|0,E|0,C|0)|0;F=t;c[F>>2]=E;c[F+4>>2]=C;F=t;if(!((c[F>>2]|0)==0&(c[F+4>>2]|0)==0))if((c[t+4>>2]|0)<0){Zl(0,x);dn(x,c[z>>2]|0,c[j>>2]|0,r);continue}else{Zl(0,y);dn(y,c[A>>2]|0,c[j>>2]|0,s);continue}else{c[B>>2]=c[w>>2];g=u;E=c[g+4>>2]|0;F=v;c[F>>2]=c[g>>2];c[F+4>>2]=E;c[q>>2]=c[p>>2];F=r;en(w,c[j>>2]|0,u,p,c[F>>2]|0,c[F+4>>2]|0);if(!(Vm(w,c[k>>2]|0,0,1,x,y)|0)){c[w>>2]=c[B>>2];g=v;E=c[g+4>>2]|0;F=u;c[F>>2]=c[g>>2];c[F+4>>2]=E;c[p>>2]=c[q>>2]}dn(x,c[z>>2]|0,c[j>>2]|0,r);dn(y,c[A>>2]|0,c[j>>2]|0,s);continue}}c[c[m>>2]>>2]=(c[w>>2]|0)-(c[n>>2]|0);if(c[j>>2]|0){Kd(c[o>>2]|0);c[c[l>>2]>>2]=c[n>>2]}c[h>>2]=0;F=c[h>>2]|0;i=D;return F|0}function dn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;f=k+20|0;l=k+16|0;j=k+12|0;h=k+8|0;g=k;c[f>>2]=a;c[l>>2]=b;c[j>>2]=d;c[h>>2]=e;d=c[f>>2]|0;if((c[c[f>>2]>>2]|0)>>>0>=(c[l>>2]|0)>>>0){c[d>>2]=0;i=k;return}a=Ul(c[d>>2]|0,g)|0;f=c[f>>2]|0;c[f>>2]=(c[f>>2]|0)+a;f=g;a=c[f>>2]|0;f=c[f+4>>2]|0;d=c[h>>2]|0;e=d;b=c[e>>2]|0;e=c[e+4>>2]|0;if(c[j>>2]|0){j=fR(b|0,e|0,a|0,f|0)|0;l=d;c[l>>2]=j;c[l+4>>2]=C;i=k;return}else{j=gR(b|0,e|0,a|0,f|0)|0;l=d;c[l>>2]=j;c[l+4>>2]=C;i=k;return}}function en(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0;n=i;i=i+32|0;h=n+28|0;o=n+24|0;j=n+20|0;k=n+16|0;l=n+8|0;m=n;c[h>>2]=a;c[o>>2]=b;c[j>>2]=d;c[k>>2]=e;a=l;c[a>>2]=f;c[a+4>>2]=g;if((c[o>>2]|0)!=0?(c[c[k>>2]>>2]|0)!=0:0){o=c[j>>2]|0;a=l;a=fR(c[o>>2]|0,c[o+4>>2]|0,c[a>>2]|0,c[a+4>>2]|0)|0;o=m;c[o>>2]=a;c[o+4>>2]=C}else{o=l;a=c[j>>2]|0;a=fR(c[o>>2]|0,c[o+4>>2]|0,c[a>>2]|0,c[a+4>>2]|0)|0;o=m;c[o>>2]=a;c[o+4>>2]=C}a=m;a=El(c[c[h>>2]>>2]|0,c[a>>2]|0,c[a+4>>2]|0)|0;d=c[h>>2]|0;c[d>>2]=(c[d>>2]|0)+a;d=l;a=c[d+4>>2]|0;o=c[j>>2]|0;c[o>>2]=c[d>>2];c[o+4>>2]=a;c[c[k>>2]>>2]=1;i=n;return}function fn(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+48|0;h=t+40|0;j=t+36|0;k=t+32|0;l=t+28|0;g=t+24|0;m=t+20|0;p=t+16|0;o=t+12|0;n=t+8|0;q=t+4|0;r=t;c[j>>2]=a;c[k>>2]=b;c[l>>2]=e;c[g>>2]=f;a:do if(!(c[c[k>>2]>>2]|0)){s=Id((c[g>>2]|0)+10+1|0)|0;c[c[k>>2]>>2]=s;c[(c[k>>2]|0)+64>>2]=c[g>>2];if(c[c[k>>2]>>2]|0){iR(c[c[k>>2]>>2]|0,c[l>>2]|0,c[g>>2]|0)|0;break}c[h>>2]=7;s=c[h>>2]|0;i=t;return s|0}else{c[m>>2]=c[l>>2];c[p>>2]=c[g>>2];c[o>>2]=0;while(1){if((c[o>>2]|0)>=16)break a;if(!(c[(c[k>>2]|0)+(c[o>>2]<<2)>>2]|0)){s=8;break}c[r>>2]=jn(d[(c[j>>2]|0)+231>>0]|0,c[m>>2]|0,c[p>>2]|0,c[(c[k>>2]|0)+(c[o>>2]<<2)>>2]|0,c[(c[k>>2]|0)+64+(c[o>>2]<<2)>>2]|0,n,q)|0;g=(c[m>>2]|0)!=(c[l>>2]|0);if(c[r>>2]|0)break;if(g)Kd(c[m>>2]|0);Kd(c[(c[k>>2]|0)+(c[o>>2]<<2)>>2]|0);c[(c[k>>2]|0)+(c[o>>2]<<2)>>2]=0;c[m>>2]=c[n>>2];c[p>>2]=c[q>>2];if(((c[o>>2]|0)+1|0)==16){c[(c[k>>2]|0)+(c[o>>2]<<2)>>2]=c[m>>2];c[(c[k>>2]|0)+64+(c[o>>2]<<2)>>2]=c[p>>2]}c[o>>2]=(c[o>>2]|0)+1}if((s|0)==8){c[(c[k>>2]|0)+(c[o>>2]<<2)>>2]=c[m>>2];c[(c[k>>2]|0)+64+(c[o>>2]<<2)>>2]=c[p>>2];break}if(g)Kd(c[m>>2]|0);c[h>>2]=c[r>>2];s=c[h>>2]|0;i=t;return s|0}while(0);c[h>>2]=0;s=c[h>>2]|0;i=t;return s|0}function gn(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+48|0;j=o+32|0;e=o+28|0;k=o+24|0;l=o+20|0;m=o+16|0;g=o+12|0;h=o+8|0;f=o+4|0;n=o;c[e>>2]=a;c[k>>2]=b;c[l>>2]=0;c[m>>2]=0;c[g>>2]=0;a:while(1){if((c[g>>2]|0)>=16){e=10;break}do if(c[(c[k>>2]|0)+(c[g>>2]<<2)>>2]|0){if(!(c[l>>2]|0)){c[l>>2]=c[(c[k>>2]|0)+(c[g>>2]<<2)>>2];c[m>>2]=c[(c[k>>2]|0)+64+(c[g>>2]<<2)>>2];c[(c[k>>2]|0)+(c[g>>2]<<2)>>2]=0;break}c[n>>2]=jn(d[(c[e>>2]|0)+231>>0]|0,c[(c[k>>2]|0)+(c[g>>2]<<2)>>2]|0,c[(c[k>>2]|0)+64+(c[g>>2]<<2)>>2]|0,c[l>>2]|0,c[m>>2]|0,f,h)|0;if(c[n>>2]|0){e=7;break a}Kd(c[(c[k>>2]|0)+(c[g>>2]<<2)>>2]|0);Kd(c[l>>2]|0);c[(c[k>>2]|0)+(c[g>>2]<<2)>>2]=0;c[l>>2]=c[f>>2];c[m>>2]=c[h>>2]}while(0);c[g>>2]=(c[g>>2]|0)+1}if((e|0)==7){Kd(c[l>>2]|0);c[j>>2]=c[n>>2];n=c[j>>2]|0;i=o;return n|0}else if((e|0)==10){c[c[k>>2]>>2]=c[l>>2];c[(c[k>>2]|0)+64>>2]=c[m>>2];c[j>>2]=0;n=c[j>>2]|0;i=o;return n|0}return 0}function hn(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;vl(c[d>>2]|0);Kd(c[d>>2]|0);i=b;return}function jn(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0;y=i;i=i+96|0;j=y+88|0;k=y+84|0;D=y+80|0;A=y+76|0;B=y+72|0;z=y+68|0;l=y+64|0;m=y+60|0;p=y+24|0;q=y+16|0;s=y+8|0;w=y+56|0;x=y+52|0;u=y+48|0;v=y+44|0;t=y+40|0;n=y+36|0;o=y+32|0;r=y;c[k>>2]=a;c[D>>2]=b;c[A>>2]=d;c[B>>2]=e;c[z>>2]=f;c[l>>2]=g;c[m>>2]=h;h=p;c[h>>2]=0;c[h+4>>2]=0;h=q;c[h>>2]=0;c[h+4>>2]=0;h=s;c[h>>2]=0;c[h+4>>2]=0;c[w>>2]=(c[D>>2]|0)+(c[A>>2]|0);c[x>>2]=(c[B>>2]|0)+(c[z>>2]|0);c[u>>2]=c[D>>2];c[v>>2]=c[B>>2];c[o>>2]=0;c[c[l>>2]>>2]=0;c[c[m>>2]>>2]=0;c[n>>2]=Id((c[A>>2]|0)+(c[z>>2]|0)+10-1|0)|0;if(!(c[n>>2]|0)){c[j>>2]=7;D=c[j>>2]|0;i=y;return D|0}c[t>>2]=c[n>>2];dn(u,c[w>>2]|0,0,p);dn(v,c[x>>2]|0,0,q);while(1){if(!((c[u>>2]|0)!=0?1:(c[v>>2]|0)!=0))break;D=(c[k>>2]|0)!=0?-1:1;A=p;B=q;B=fR(c[A>>2]|0,c[A+4>>2]|0,c[B>>2]|0,c[B+4>>2]|0)|0;B=rR(D|0,((D|0)<0)<<31>>31|0,B|0,C|0)|0;D=r;c[D>>2]=B;c[D+4>>2]=C;D=r;if((c[v>>2]|0)!=0&(c[u>>2]|0)!=0&((c[D>>2]|0)==0&(c[D+4>>2]|0)==0)){D=p;en(t,c[k>>2]|0,s,o,c[D>>2]|0,c[D+4>>2]|0);kn(t,u,v);dn(u,c[w>>2]|0,c[k>>2]|0,p);dn(v,c[x>>2]|0,c[k>>2]|0,q);continue}if((c[v>>2]|0)!=0?!((c[u>>2]|0)!=0&(c[r+4>>2]|0)<0):0){D=q;en(t,c[k>>2]|0,s,o,c[D>>2]|0,c[D+4>>2]|0);Zl(t,v);dn(v,c[x>>2]|0,c[k>>2]|0,q);continue}D=p;en(t,c[k>>2]|0,s,o,c[D>>2]|0,c[D+4>>2]|0);Zl(t,u);dn(u,c[w>>2]|0,c[k>>2]|0,p)}c[c[l>>2]>>2]=c[n>>2];c[c[m>>2]>>2]=(c[t>>2]|0)-(c[n>>2]|0);c[j>>2]=0;D=c[j>>2]|0;i=y;return D|0}function kn(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=i;i=i+64|0;g=t+56|0;h=t+52|0;j=t+48|0;q=t+44|0;r=t+40|0;s=t+36|0;m=t+32|0;n=t+28|0;k=t+16|0;l=t+8|0;o=t;p=t+24|0;c[g>>2]=b;c[h>>2]=e;c[j>>2]=f;c[q>>2]=c[c[g>>2]>>2];c[r>>2]=c[c[h>>2]>>2];c[s>>2]=c[c[j>>2]>>2];a:while(1){if((a[c[r>>2]>>0]|0)==0?(a[c[s>>2]>>0]|0)==0:0)break;b=c[r>>2]|0;do if((a[c[r>>2]>>0]|0)==1){e=(c[r>>2]|0)+1|0;if(d[b+1>>0]&128){Vl(e,m)|0;break}else{c[m>>2]=d[e>>0];break}}else if(!(a[b>>0]|0)){c[m>>2]=2147483647;break}else{c[m>>2]=0;break}while(0);b=c[s>>2]|0;do if((a[c[s>>2]>>0]|0)==1){e=(c[s>>2]|0)+1|0;if(d[b+1>>0]&128){Vl(e,n)|0;break}else{c[n>>2]=d[e>>0];break}}else if(!(a[b>>0]|0)){c[n>>2]=2147483647;break}else{c[n>>2]=0;break}while(0);if((c[m>>2]|0)!=(c[n>>2]|0))if((c[m>>2]|0)<(c[n>>2]|0)){f=ln(q,c[m>>2]|0)|0;c[r>>2]=(c[r>>2]|0)+f;Tl(q,r);continue}else{f=ln(q,c[n>>2]|0)|0;c[s>>2]=(c[s>>2]|0)+f;Tl(q,s);continue}f=k;c[f>>2]=0;c[f+4>>2]=0;f=l;c[f>>2]=0;c[f+4>>2]=0;f=o;c[f>>2]=0;c[f+4>>2]=0;c[p>>2]=ln(q,c[m>>2]|0)|0;c[r>>2]=(c[r>>2]|0)+(c[p>>2]|0);c[s>>2]=(c[s>>2]|0)+(c[p>>2]|0);Wm(r,k);Wm(s,l);while(1){e=k;u=c[e+4>>2]|0;b=l;f=c[b+4>>2]|0;b=(u|0)<(f|0)|((u|0)==(f|0)?(c[e>>2]|0)>>>0<(c[b>>2]|0)>>>0:0);e=k;f=l;Xm(q,o,b?c[e>>2]|0:c[f>>2]|0,b?c[e+4>>2]|0:c[f+4>>2]|0);f=o;f=fR(c[f>>2]|0,c[f+4>>2]|0,2,0)|0;e=o;c[e>>2]=f;c[e+4>>2]=C;e=k;f=l;do if(!((c[e>>2]|0)==(c[f>>2]|0)?(c[e+4>>2]|0)==(c[f+4>>2]|0):0)){f=k;b=c[f+4>>2]|0;u=l;e=c[u+4>>2]|0;if((b|0)<(e|0)|((b|0)==(e|0)?(c[f>>2]|0)>>>0<(c[u>>2]|0)>>>0:0)){mn(r,k);break}else{mn(s,l);break}}else{mn(r,k);mn(s,l)}while(0);f=k;u=l;if(!((c[f>>2]|0)!=2147483647|(c[f+4>>2]|0)!=0?1:(c[u>>2]|0)!=2147483647|(c[u+4>>2]|0)!=0))continue a}}u=c[q>>2]|0;c[q>>2]=u+1;a[u>>0]=0;c[c[g>>2]>>2]=c[q>>2];c[c[h>>2]>>2]=(c[r>>2]|0)+1;c[c[j>>2]>>2]=(c[s>>2]|0)+1;i=t;return}function ln(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;e=j+12|0;f=j+8|0;g=j+4|0;h=j;c[e>>2]=b;c[f>>2]=d;c[g>>2]=0;if(!(c[f>>2]|0)){b=c[g>>2]|0;i=j;return b|0}c[h>>2]=c[c[e>>2]>>2];b=c[f>>2]|0;c[g>>2]=1+(El((c[h>>2]|0)+1|0,b,((b|0)<0)<<31>>31)|0);a[c[h>>2]>>0]=1;c[c[e>>2]>>2]=(c[h>>2]|0)+(c[g>>2]|0);b=c[g>>2]|0;i=j;return b|0}function mn(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=i;i=i+16|0;e=g+4|0;f=g;c[e>>2]=b;c[f>>2]=d;if(a[c[c[e>>2]>>2]>>0]&254){Wm(c[e>>2]|0,c[f>>2]|0);b=c[f>>2]|0;d=b;d=fR(c[d>>2]|0,c[d+4>>2]|0,2,0)|0;c[b>>2]=d;c[b+4>>2]=C;i=g;return}else{b=c[f>>2]|0;c[b>>2]=2147483647;c[b+4>>2]=0;i=g;return}}function nn(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+16|0;f=k+12|0;g=k+8|0;j=k+4|0;h=k;c[f>>2]=b;c[g>>2]=d;c[j>>2]=0;if((a[(c[g>>2]|0)+7>>0]|0)!=0?(c[h>>2]=0,c[j>>2]=zn(c[g>>2]|0,h)|0,(c[j>>2]|0)==0):0){h=(c[g>>2]|0)+32|0;Me(c[(c[g>>2]|0)+8>>2]|0,1,c[h>>2]|0,c[h+4>>2]|0)|0;a[(c[g>>2]|0)+7>>0]=0;if(100==(ue(c[(c[g>>2]|0)+8>>2]|0)|0)){c[e>>2]=0;j=c[e>>2]|0;i=k;return j|0}c[j>>2]=Zd(c[(c[g>>2]|0)+8>>2]|0)|0;if((c[j>>2]|0)==0?(c[(c[c[g>>2]>>2]|0)+40>>2]|0)==0:0){c[j>>2]=267;a[(c[g>>2]|0)+6>>0]=1}}if((c[j>>2]|0)!=0&(c[f>>2]|0)!=0)re(c[f>>2]|0,c[j>>2]|0);c[e>>2]=c[j>>2];j=c[e>>2]|0;i=k;return j|0}function on(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;v=i;i=i+80|0;b=v+64|0;r=v+60|0;e=v+56|0;f=v;m=v+52|0;l=v+48|0;p=v+44|0;n=v+40|0;s=v+36|0;q=v+32|0;t=v+28|0;k=v+24|0;g=v+20|0;h=v+16|0;j=v+12|0;o=v+8|0;c[b>>2]=a;c[r>>2]=0;if(!(c[(c[b>>2]|0)+24>>2]|0)){u=c[r>>2]|0;i=v;return u|0}c[l>>2]=c[c[b>>2]>>2];c[p>>2]=c[(c[l>>2]|0)+36>>2];c[n>>2]=c[c[p>>2]>>2];w=Ee(c[(c[b>>2]|0)+8>>2]|0,0)|0;a=f;c[a>>2]=w;c[a+4>>2]=C;c[e>>2]=0;while(1){if(!((c[e>>2]|0)<(c[(c[l>>2]|0)+24>>2]|0)?(c[r>>2]|0)==0:0))break;if(!(d[(c[(c[l>>2]|0)+32>>2]|0)+(c[e>>2]|0)>>0]|0)){c[s>>2]=Fe(c[(c[b>>2]|0)+8>>2]|0,(c[e>>2]|0)+1|0)|0;c[q>>2]=0;c[r>>2]=wn(c[p>>2]|0,c[(c[b>>2]|0)+16>>2]|0,c[s>>2]|0,-1,q)|0;a:while(1){if(c[r>>2]|0)break;c[k>>2]=0;c[g>>2]=0;c[h>>2]=0;c[j>>2]=0;c[r>>2]=Sb[c[(c[n>>2]|0)+20>>2]&255](c[q>>2]|0,t,k,g,h,j)|0;c[m>>2]=c[(c[b>>2]|0)+24>>2];while(1){if(!((c[m>>2]|0)!=0?(c[r>>2]|0)==0:0))continue a;c[o>>2]=c[c[m>>2]>>2];if(!((c[(c[m>>2]|0)+4>>2]|0)<(c[(c[l>>2]|0)+24>>2]|0)?(c[(c[m>>2]|0)+4>>2]|0)!=(c[e>>2]|0):0))u=11;do if((u|0)==11?(u=0,(c[j>>2]|0)==0?1:(c[(c[o>>2]|0)+12>>2]|0)==0):0){if((c[(c[o>>2]|0)+4>>2]|0)!=(c[k>>2]|0)){if(!(c[(c[o>>2]|0)+8>>2]|0))break;if((c[(c[o>>2]|0)+4>>2]|0)>=(c[k>>2]|0))break}if(!(vQ(c[t>>2]|0,c[c[o>>2]>>2]|0,c[(c[o>>2]|0)+4>>2]|0)|0)){x=f;a=c[e>>2]|0;w=c[j>>2]|0;xn((c[m>>2]|0)+12|0,c[x>>2]|0,c[x+4>>2]|0,a,((a|0)<0)<<31>>31,w,((w|0)<0)<<31>>31,r)|0}}while(0);c[m>>2]=c[(c[m>>2]|0)+8>>2]}}if(c[q>>2]|0)Tb[c[(c[n>>2]|0)+16>>2]&255](c[q>>2]|0)|0;if((c[r>>2]|0)==101)c[r>>2]=0}c[e>>2]=(c[e>>2]|0)+1}c[m>>2]=c[(c[b>>2]|0)+24>>2];while(1){if(!((c[m>>2]|0)!=0?(c[r>>2]|0)==0:0))break;if(c[(c[m>>2]|0)+12>>2]|0)c[r>>2]=yn((c[m>>2]|0)+12|0,0,0)|0;c[m>>2]=c[(c[m>>2]|0)+8>>2]}x=c[r>>2]|0;i=v;return x|0}function pn(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;m=p+28|0;l=p+24|0;g=p+20|0;o=p+16|0;n=p+12|0;h=p+8|0;j=p+4|0;k=p;c[m>>2]=b;c[l>>2]=e;c[g>>2]=f;c[o>>2]=1;if(c[c[g>>2]>>2]|0){o=c[o>>2]|0;i=p;return o|0}switch(c[c[l>>2]>>2]|0){case 3:case 1:{if((pn(c[m>>2]|0,c[(c[l>>2]|0)+12>>2]|0,c[g>>2]|0)|0)!=0?(pn(c[m>>2]|0,c[(c[l>>2]|0)+16>>2]|0,c[g>>2]|0)|0)!=0:0)g=(rn(c[l>>2]|0,c[g>>2]|0)|0)!=0;else g=0;c[o>>2]=g&1;if(c[o>>2]|0){o=c[o>>2]|0;i=p;return o|0}if((c[c[l>>2]>>2]|0)!=1){o=c[o>>2]|0;i=p;return o|0}if((c[(c[l>>2]|0)+8>>2]|0)!=0?(c[c[(c[l>>2]|0)+8>>2]>>2]|0)==1:0){o=c[o>>2]|0;i=p;return o|0}c[n>>2]=c[l>>2];while(1){g=c[n>>2]|0;if(c[(c[n>>2]|0)+20>>2]|0)break;f=(c[g+16>>2]|0)+24|0;l=(c[m>>2]|0)+32|0;if((c[f>>2]|0)==(c[l>>2]|0)?(c[f+4>>2]|0)==(c[l+4>>2]|0):0)Pm(c[(c[(c[n>>2]|0)+16>>2]|0)+20>>2]|0);c[n>>2]=c[(c[n>>2]|0)+12>>2]}l=g+24|0;m=(c[m>>2]|0)+32|0;if(!((c[l>>2]|0)==(c[m>>2]|0)?(c[l+4>>2]|0)==(c[m+4>>2]|0):0)){o=c[o>>2]|0;i=p;return o|0}Pm(c[(c[n>>2]|0)+20>>2]|0);o=c[o>>2]|0;i=p;return o|0}case 4:{c[h>>2]=pn(c[m>>2]|0,c[(c[l>>2]|0)+12>>2]|0,c[g>>2]|0)|0;c[j>>2]=pn(c[m>>2]|0,c[(c[l>>2]|0)+16>>2]|0,c[g>>2]|0)|0;c[o>>2]=((c[h>>2]|0)!=0?1:(c[j>>2]|0)!=0)&1;o=c[o>>2]|0;i=p;return o|0}case 2:{if(pn(c[m>>2]|0,c[(c[l>>2]|0)+12>>2]|0,c[g>>2]|0)|0)g=(pn(c[m>>2]|0,c[(c[l>>2]|0)+16>>2]|0,c[g>>2]|0)|0)!=0^1;else g=0;c[o>>2]=g&1;o=c[o>>2]|0;i=p;return o|0}default:{do if(c[(c[m>>2]|0)+24>>2]|0){f=(c[l>>2]|0)+24|0;n=(c[m>>2]|0)+32|0;if(!((c[f>>2]|0)==(c[n>>2]|0)?(c[f+4>>2]|0)==(c[n+4>>2]|0):0)?(d[(c[l>>2]|0)+34>>0]|0)==0:0)break;c[k>>2]=c[(c[l>>2]|0)+20>>2];if(a[(c[l>>2]|0)+34>>0]|0)Pm(c[k>>2]|0);f=sn(c[m>>2]|0,c[k>>2]|0)|0;c[c[g>>2]>>2]=f;c[o>>2]=(c[(c[k>>2]|0)+28>>2]|0)!=0&1;f=(c[m>>2]|0)+32|0;m=c[f+4>>2]|0;n=(c[l>>2]|0)+24|0;c[n>>2]=c[f>>2];c[n+4>>2]=m;o=c[o>>2]|0;i=p;return o|0}while(0);if(!(d[(c[l>>2]|0)+32>>0]|0)){n=(c[l>>2]|0)+24|0;g=(c[m>>2]|0)+32|0;g=(c[n>>2]|0)==(c[g>>2]|0)?(c[n+4>>2]|0)==(c[g+4>>2]|0):0}else g=0;c[o>>2]=g&1;o=c[o>>2]|0;i=p;return o|0;
  72. }}return 0}function qn(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;c[b>>2]=c[(c[e>>2]|0)+24>>2];while(1){if(!(c[b>>2]|0))break;el(c[(c[b>>2]|0)+12>>2]|0);c[(c[b>>2]|0)+12>>2]=0;c[b>>2]=c[(c[b>>2]|0)+8>>2]}i=d;return}function rn(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;e=r+44|0;f=r+40|0;q=r+36|0;o=r+32|0;h=r+28|0;l=r+24|0;k=r+20|0;n=r+16|0;j=r+12|0;g=r+8|0;m=r+4|0;p=r;c[e>>2]=a;c[f>>2]=b;c[q>>2]=1;if(c[c[f>>2]>>2]|0){q=c[q>>2]|0;i=r;return q|0}if((c[c[e>>2]>>2]|0)!=1){q=c[q>>2]|0;i=r;return q|0}if(d[(c[e>>2]|0)+32>>0]|0){q=c[q>>2]|0;i=r;return q|0}if((c[(c[e>>2]|0)+8>>2]|0)!=0?(c[c[(c[e>>2]|0)+8>>2]>>2]|0)==1:0){q=c[q>>2]|0;i=r;return q|0}c[h>>2]=0;c[o>>2]=c[e>>2];while(1){a=c[o>>2]|0;if(!(c[(c[o>>2]|0)+12>>2]|0))break;c[h>>2]=(c[h>>2]|0)+(c[(c[(c[a+16>>2]|0)+20>>2]|0)+32>>2]|0);c[o>>2]=c[(c[o>>2]|0)+12>>2]}c[h>>2]=(c[h>>2]|0)+(c[(c[a+20>>2]|0)+32>>2]|0);if(!(c[h>>2]|0)){c[q>>2]=0;q=c[q>>2]|0;i=r;return q|0}c[l>>2]=Id(c[h>>2]<<1)|0;a:do if(c[l>>2]|0){c[k>>2]=c[(c[(c[o>>2]|0)+20>>2]|0)+28>>2];c[n>>2]=c[(c[(c[o>>2]|0)+20>>2]|0)+64>>2];c[o>>2]=c[(c[o>>2]|0)+8>>2];while(1){if(!((c[q>>2]|0)!=0&(c[o>>2]|0)!=0))break;if((c[c[o>>2]>>2]|0)!=1)break;c[j>>2]=c[(c[(c[o>>2]|0)+16>>2]|0)+20>>2];c[g>>2]=c[(c[o>>2]|0)+4>>2];c[q>>2]=un(c[g>>2]|0,c[l>>2]|0,k,n,c[j>>2]|0)|0;c[o>>2]=c[(c[o>>2]|0)+8>>2]}c[k>>2]=c[(c[(c[(c[e>>2]|0)+16>>2]|0)+20>>2]|0)+28>>2];c[n>>2]=c[(c[(c[(c[e>>2]|0)+16>>2]|0)+20>>2]|0)+64>>2];c[o>>2]=c[(c[e>>2]|0)+12>>2];while(1){if(!((c[o>>2]|0)!=0?(c[q>>2]|0)!=0:0))break a;c[m>>2]=c[(c[(c[o>>2]|0)+8>>2]|0)+4>>2];a=c[o>>2]|0;if((c[c[o>>2]>>2]|0)==1)a=c[(c[a+16>>2]|0)+20>>2]|0;else a=c[a+20>>2]|0;c[p>>2]=a;c[q>>2]=un(c[m>>2]|0,c[l>>2]|0,k,n,c[p>>2]|0)|0;c[o>>2]=c[(c[o>>2]|0)+12>>2]}}else{c[c[f>>2]>>2]=7;c[q>>2]=0}while(0);Kd(c[l>>2]|0);q=c[q>>2]|0;i=r;return q|0}function sn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=i;i=i+80|0;m=y+76|0;n=y+72|0;o=y+68|0;e=y+64|0;q=y+60|0;u=y+56|0;r=y+52|0;l=y+48|0;j=y+44|0;k=y+40|0;f=y+36|0;x=y+32|0;d=y+28|0;g=y+24|0;h=y+20|0;t=y+16|0;s=y+12|0;v=y+8|0;w=y+4|0;p=y;c[n>>2]=a;c[o>>2]=b;c[q>>2]=0;c[u>>2]=0;c[r>>2]=-1;c[e>>2]=0;while(1){if((c[e>>2]|0)>=(c[(c[o>>2]|0)+64>>2]|0)){a=14;break}c[l>>2]=(c[o>>2]|0)+72+((c[e>>2]|0)*24|0);c[j>>2]=c[(c[l>>2]|0)+16>>2];if(c[j>>2]|0){c[x>>2]=tn(c[j>>2]|0,k,f)|0;if(c[x>>2]|0){a=5;break}b=c[q>>2]|0;if(!(c[k>>2]|0)){a=7;break}a=c[k>>2]|0;if(b){c[d>>2]=a;c[g>>2]=c[q>>2];c[h>>2]=c[d>>2];Vm(d,(c[e>>2]|0)-(c[r>>2]|0)|0,0,1,g,h)|0;Kd(c[q>>2]|0);c[q>>2]=c[k>>2];c[u>>2]=(c[d>>2]|0)-(c[q>>2]|0);if(!(c[u>>2]|0)){a=11;break}}else{c[q>>2]=a;c[u>>2]=c[f>>2]}c[r>>2]=c[e>>2]}c[e>>2]=(c[e>>2]|0)+1}if((a|0)==5){c[m>>2]=c[x>>2];x=c[m>>2]|0;i=y;return x|0}else if((a|0)==7){Kd(b);c[(c[o>>2]|0)+28>>2]=0;c[(c[o>>2]|0)+32>>2]=0;c[m>>2]=0;x=c[m>>2]|0;i=y;return x|0}else if((a|0)==11){Kd(c[q>>2]|0);c[(c[o>>2]|0)+28>>2]=0;c[(c[o>>2]|0)+32>>2]=0;c[m>>2]=0;x=c[m>>2]|0;i=y;return x|0}else if((a|0)==14){do if((c[r>>2]|0)>=0){c[t>>2]=c[(c[o>>2]|0)+44>>2];if((c[t>>2]|0)<0){c[(c[o>>2]|0)+28>>2]=c[q>>2];c[(c[o>>2]|0)+32>>2]=c[u>>2];v=(c[n>>2]|0)+32|0;w=c[v+4>>2]|0;x=(c[o>>2]|0)+16|0;c[x>>2]=c[v>>2];c[x+4>>2]=w;c[(c[o>>2]|0)+24>>2]=1;break}if((c[t>>2]|0)>(c[r>>2]|0)){c[v>>2]=c[q>>2];c[w>>2]=c[(c[o>>2]|0)+28>>2];c[s>>2]=(c[t>>2]|0)-(c[r>>2]|0)}else{c[v>>2]=c[(c[o>>2]|0)+28>>2];c[w>>2]=c[q>>2];c[s>>2]=(c[r>>2]|0)-(c[t>>2]|0)}c[p>>2]=Id((c[u>>2]|0)+8|0)|0;if(!(c[p>>2]|0)){Kd(c[q>>2]|0);c[m>>2]=7;x=c[m>>2]|0;i=y;return x|0}c[(c[o>>2]|0)+28>>2]=c[p>>2];if(Vm(p,c[s>>2]|0,0,1,v,w)|0){c[(c[o>>2]|0)+24>>2]=1;c[(c[o>>2]|0)+32>>2]=(c[p>>2]|0)-(c[(c[o>>2]|0)+28>>2]|0)}else{Kd(c[p>>2]|0);c[(c[o>>2]|0)+28>>2]=0;c[(c[o>>2]|0)+32>>2]=0}Kd(c[q>>2]|0)}while(0);c[m>>2]=0;x=c[m>>2]|0;i=y;return x|0}return 0}function tn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;e=l+28|0;f=l+24|0;g=l+20|0;h=l+16|0;k=l+12|0;j=l+8|0;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[c[g>>2]>>2]=0;c[c[h>>2]>>2]=0;if(!(c[(c[f>>2]|0)+12>>2]|0)){c[e>>2]=0;b=c[e>>2]|0;i=l;return b|0}c[k>>2]=Id(c[c[(c[f>>2]|0)+12>>2]>>2]|0)|0;if(c[k>>2]|0){c[j>>2]=Ul(c[(c[(c[f>>2]|0)+12>>2]|0)+4>>2]|0,l)|0;c[c[h>>2]>>2]=(c[c[(c[f>>2]|0)+12>>2]>>2]|0)-(c[j>>2]|0);c[c[g>>2]>>2]=c[k>>2];iR(c[k>>2]|0,(c[(c[(c[f>>2]|0)+12>>2]|0)+4>>2]|0)+(c[j>>2]|0)|0,c[c[h>>2]>>2]|0)|0;c[e>>2]=0;b=c[e>>2]|0;i=l;return b|0}else{c[e>>2]=7;b=c[e>>2]|0;i=l;return b|0}return 0}function un(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;n=i;i=i+48|0;s=n+40|0;r=n+36|0;g=n+32|0;h=n+28|0;j=n+24|0;q=n+20|0;p=n+16|0;k=n+12|0;o=n+8|0;l=n+4|0;m=n;c[s>>2]=a;c[r>>2]=b;c[g>>2]=d;c[h>>2]=e;c[j>>2]=f;c[q>>2]=(c[s>>2]|0)+(c[(c[j>>2]|0)+64>>2]|0);c[p>>2]=(c[s>>2]|0)+(c[c[h>>2]>>2]|0);e=c[(c[j>>2]|0)+28>>2]|0;c[l>>2]=e;c[o>>2]=e;c[m>>2]=vn(l,c[r>>2]|0,c[q>>2]|0,c[p>>2]|0,c[g>>2]|0,o)|0;if(!(c[m>>2]|0)){s=c[m>>2]|0;i=n;return s|0}c[k>>2]=(c[l>>2]|0)-(c[(c[j>>2]|0)+28>>2]|0)-1;kR((c[(c[j>>2]|0)+28>>2]|0)+(c[k>>2]|0)|0,0,(c[(c[j>>2]|0)+32>>2]|0)-(c[k>>2]|0)|0)|0;c[(c[j>>2]|0)+32>>2]=c[k>>2];c[c[g>>2]>>2]=c[(c[j>>2]|0)+28>>2];c[c[h>>2]>>2]=c[(c[j>>2]|0)+64>>2];s=c[m>>2]|0;i=n;return s|0}function vn(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;o=i;i=i+48|0;h=o+44|0;j=o+40|0;u=o+36|0;r=o+32|0;p=o+28|0;q=o+24|0;t=o+20|0;s=o+16|0;l=o+12|0;m=o+8|0;k=o+4|0;n=o;c[h>>2]=a;c[j>>2]=b;c[u>>2]=d;c[r>>2]=e;c[p>>2]=f;c[q>>2]=g;c[t>>2]=c[c[p>>2]>>2];c[s>>2]=c[c[q>>2]>>2];c[l>>2]=c[j>>2];c[n>>2]=1;Vm(l,c[u>>2]|0,0,0,c[p>>2]|0,c[q>>2]|0)|0;g=c[l>>2]|0;c[m>>2]=g;c[k>>2]=g;c[c[p>>2]>>2]=c[t>>2];c[c[q>>2]>>2]=c[s>>2];Vm(m,c[r>>2]|0,1,0,c[q>>2]|0,c[p>>2]|0)|0;if((c[l>>2]|0)!=(c[j>>2]|0)?(c[m>>2]|0)!=(c[k>>2]|0):0){kn(c[h>>2]|0,j,k);u=c[n>>2]|0;i=o;return u|0}if((c[l>>2]|0)!=(c[j>>2]|0)){Zl(c[h>>2]|0,j);u=c[n>>2]|0;i=o;return u|0}if((c[m>>2]|0)!=(c[k>>2]|0)){Zl(c[h>>2]|0,k);u=c[n>>2]|0;i=o;return u|0}else{c[n>>2]=0;u=c[n>>2]|0;i=o;return u|0}return 0}function wn(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;n=i;i=i+32|0;g=n+28|0;h=n+24|0;p=n+20|0;o=n+16|0;j=n+12|0;l=n+8|0;k=n+4|0;m=n;c[g>>2]=a;c[h>>2]=b;c[p>>2]=d;c[o>>2]=e;c[j>>2]=f;c[l>>2]=c[c[g>>2]>>2];c[k>>2]=0;c[m>>2]=Wb[c[(c[l>>2]|0)+12>>2]&255](c[g>>2]|0,c[p>>2]|0,c[o>>2]|0,k)|0;if(((c[m>>2]|0)==0?(c[c[k>>2]>>2]=c[g>>2],(c[c[l>>2]>>2]|0)>=1):0)?(c[m>>2]=Yb[c[(c[l>>2]|0)+24>>2]&255](c[k>>2]|0,c[h>>2]|0)|0,(c[m>>2]|0)!=0):0){Tb[c[(c[l>>2]|0)+16>>2]&255](c[k>>2]|0)|0;c[k>>2]=0}c[c[j>>2]>>2]=c[k>>2];i=n;return c[m>>2]|0}function xn(a,b,d,e,f,g,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+64|0;m=u+48|0;n=u+44|0;o=u+24|0;p=u+16|0;k=u+8|0;l=u+40|0;r=u+36|0;s=u+32|0;q=u;c[n>>2]=a;a=o;c[a>>2]=b;c[a+4>>2]=d;a=p;c[a>>2]=e;c[a+4>>2]=f;a=k;c[a>>2]=g;c[a+4>>2]=h;c[l>>2]=j;c[r>>2]=c[c[n>>2]>>2];c[s>>2]=0;if((c[r>>2]|0)!=0?(j=(c[r>>2]|0)+16|0,a=o,!((c[j>>2]|0)!=(c[a>>2]|0)?1:(c[j+4>>2]|0)!=(c[a+4>>2]|0))):0)t=9;else{b=o;if(c[r>>2]|0){e=(c[r>>2]|0)+16|0;d=c[e>>2]|0;e=c[e+4>>2]|0}else{d=0;e=0}j=fR(c[b>>2]|0,c[b+4>>2]|0,d|0,e|0)|0;a=q;c[a>>2]=j;c[a+4>>2]=C;if(c[r>>2]|0){a=c[r>>2]|0;c[a>>2]=(c[a>>2]|0)+1}q=yn(r,c[q>>2]|0,c[q+4>>2]|0)|0;c[s>>2]=q;if(!q){q=(c[r>>2]|0)+24|0;c[q>>2]=-1;c[q+4>>2]=-1;q=(c[r>>2]|0)+32|0;c[q>>2]=0;c[q+4>>2]=0;q=c[o+4>>2]|0;t=(c[r>>2]|0)+16|0;c[t>>2]=c[o>>2];c[t+4>>2]=q;t=9}}do if((t|0)==9){t=p;q=c[t+4>>2]|0;if((q|0)>0|(q|0)==0&(c[t>>2]|0)>>>0>0?(q=(c[r>>2]|0)+24|0,t=p,(c[q>>2]|0)!=(c[t>>2]|0)?1:(c[q+4>>2]|0)!=(c[t+4>>2]|0)):0){t=yn(r,1,0)|0;c[s>>2]=t;if(t)break;t=p;t=yn(r,c[t>>2]|0,c[t+4>>2]|0)|0;c[s>>2]=t;if(t)break;o=p;q=c[o+4>>2]|0;t=(c[r>>2]|0)+24|0;c[t>>2]=c[o>>2];c[t+4>>2]=q;t=(c[r>>2]|0)+32|0;c[t>>2]=0;c[t+4>>2]=0}t=p;q=c[t+4>>2]|0;if((q|0)>0|(q|0)==0&(c[t>>2]|0)>>>0>=0?(q=k,q=gR(2,0,c[q>>2]|0,c[q+4>>2]|0)|0,t=(c[r>>2]|0)+32|0,t=fR(q|0,C|0,c[t>>2]|0,c[t+4>>2]|0)|0,c[s>>2]=yn(r,t,C)|0,(c[s>>2]|0)==0):0){p=k;q=c[p+4>>2]|0;t=(c[r>>2]|0)+32|0;c[t>>2]=c[p>>2];c[t+4>>2]=q}}while(0);c[c[l>>2]>>2]=c[s>>2];if((c[r>>2]|0)!=(c[c[n>>2]>>2]|0)){c[c[n>>2]>>2]=c[r>>2];c[m>>2]=1;t=c[m>>2]|0;i=u;return t|0}else{c[m>>2]=0;t=c[m>>2]|0;i=u;return t|0}return 0}function yn(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;f=l+20|0;g=l+16|0;h=l;k=l+12|0;j=l+8|0;c[g>>2]=b;b=h;c[b>>2]=d;c[b+4>>2]=e;c[k>>2]=c[c[g>>2]>>2];do if(c[k>>2]|0){if(((c[c[k>>2]>>2]|0)+10+1|0)>(c[(c[k>>2]|0)+8>>2]|0)){c[j>>2]=c[(c[k>>2]|0)+8>>2]<<1;c[k>>2]=Ld(c[k>>2]|0,40+(c[j>>2]|0)|0)|0;if(c[k>>2]|0){c[(c[k>>2]|0)+8>>2]=c[j>>2];c[(c[k>>2]|0)+4>>2]=(c[k>>2]|0)+40;break}Kd(c[c[g>>2]>>2]|0);c[c[g>>2]>>2]=0;c[f>>2]=7;b=c[f>>2]|0;i=l;return b|0}}else{c[k>>2]=Id(140)|0;if(c[k>>2]|0){c[(c[k>>2]|0)+8>>2]=100;c[(c[k>>2]|0)+4>>2]=(c[k>>2]|0)+40;c[c[k>>2]>>2]=0;break}c[f>>2]=7;b=c[f>>2]|0;i=l;return b|0}while(0);j=h;j=El((c[(c[k>>2]|0)+4>>2]|0)+(c[c[k>>2]>>2]|0)|0,c[j>>2]|0,c[j+4>>2]|0)|0;b=c[k>>2]|0;c[b>>2]=(c[b>>2]|0)+j;a[(c[(c[k>>2]|0)+4>>2]|0)+(c[c[k>>2]>>2]|0)>>0]=0;c[c[g>>2]>>2]=c[k>>2];c[f>>2]=0;b=c[f>>2]|0;i=l;return b|0}function zn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;j=l;d=l+24|0;e=l+20|0;f=l+16|0;h=l+12|0;g=l+8|0;k=l+4|0;c[e>>2]=a;c[f>>2]=b;c[h>>2]=0;do if(!(c[(c[e>>2]|0)+8>>2]|0)){c[g>>2]=c[c[e>>2]>>2];c[j>>2]=c[(c[g>>2]|0)+216>>2];c[k>>2]=Od(24088,j)|0;if(c[k>>2]|0){c[h>>2]=af(c[(c[g>>2]|0)+12>>2]|0,c[k>>2]|0,-1,(c[e>>2]|0)+8|0,0)|0;Kd(c[k>>2]|0);break}c[d>>2]=7;k=c[d>>2]|0;i=l;return k|0}while(0);c[c[f>>2]>>2]=c[(c[e>>2]|0)+8>>2];c[d>>2]=c[h>>2];k=c[d>>2]|0;i=l;return k|0}function An(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;f=m+20|0;g=m+16|0;h=m+12|0;j=m+8|0;l=m+4|0;k=m;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[k>>2]=c[c[f>>2]>>2];if((c[k>>2]|0)==5){c[l>>2]=Ob[c[h>>2]&255](c[f>>2]|0,c[c[g>>2]>>2]|0,c[j>>2]|0)|0;d=c[g>>2]|0;c[d>>2]=(c[d>>2]|0)+1;d=c[l>>2]|0;i=m;return d|0}c[l>>2]=An(c[(c[f>>2]|0)+12>>2]|0,c[g>>2]|0,c[h>>2]|0,c[j>>2]|0)|0;if(!((c[l>>2]|0)==0&(c[k>>2]|0)!=2)){d=c[l>>2]|0;i=m;return d|0}c[l>>2]=An(c[(c[f>>2]|0)+16>>2]|0,c[g>>2]|0,c[h>>2]|0,c[j>>2]|0)|0;d=c[l>>2]|0;i=m;return d|0}function Bn(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;f=m+20|0;g=m+16|0;h=m+12|0;k=m+8|0;l=m+4|0;j=m;c[f>>2]=a;c[g>>2]=b;c[h>>2]=e;c[k>>2]=c[c[f>>2]>>2];c[l>>2]=0;if((d[(c[g>>2]|0)+34>>0]|0|0)!=0?(c[c[(c[g>>2]|0)+8>>2]>>2]|0)!=1:0){c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[(c[k>>2]|0)+24>>2]|0))break;c[(c[h>>2]|0)+(((c[j>>2]|0)*3|0)+1<<2)>>2]=c[(c[f>>2]|0)+64>>2];c[(c[h>>2]|0)+(((c[j>>2]|0)*3|0)+2<<2)>>2]=c[(c[f>>2]|0)+64>>2];c[j>>2]=(c[j>>2]|0)+1}l=c[l>>2]|0;i=m;return l|0}c[l>>2]=Cn(c[f>>2]|0,c[g>>2]|0)|0;if(c[l>>2]|0){l=c[l>>2]|0;i=m;return l|0}c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[(c[k>>2]|0)+24>>2]|0))break;c[(c[h>>2]|0)+(((c[j>>2]|0)*3|0)+1<<2)>>2]=c[(c[(c[g>>2]|0)+40>>2]|0)+(((c[j>>2]|0)*3|0)+1<<2)>>2];c[(c[h>>2]|0)+(((c[j>>2]|0)*3|0)+2<<2)>>2]=c[(c[(c[g>>2]|0)+40>>2]|0)+(((c[j>>2]|0)*3|0)+2<<2)>>2];c[j>>2]=(c[j>>2]|0)+1}l=c[l>>2]|0;i=m;return l|0}function Cn(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=i;i=i+64|0;g=s+44|0;h=s+40|0;f=s+36|0;q=s+32|0;p=s+28|0;o=s+24|0;m=s+20|0;l=s+8|0;k=s;j=s+48|0;n=s+16|0;c[h>>2]=b;c[f>>2]=e;c[q>>2]=0;do if(!(c[(c[f>>2]|0)+40>>2]|0)){c[p>>2]=c[c[h>>2]>>2];t=(c[h>>2]|0)+32|0;b=c[t+4>>2]|0;e=l;c[e>>2]=c[t>>2];c[e+4>>2]=b;c[o>>2]=c[f>>2];while(1){if(c[(c[o>>2]|0)+8>>2]|0)f=(c[c[(c[o>>2]|0)+8>>2]>>2]|0)==1;else f=0;b=c[o>>2]|0;if(!f)break;c[o>>2]=c[b+8>>2]}b=b+24|0;e=c[b+4>>2]|0;t=k;c[t>>2]=c[b>>2];c[t+4>>2]=e;a[j>>0]=a[(c[o>>2]|0)+32>>0]|0;c[m>>2]=c[o>>2];while(1){if(!(c[m>>2]|0))break;f=c[m>>2]|0;if((c[c[m>>2]>>2]|0)!=5)f=c[f+16>>2]|0;c[n>>2]=f;t=Id((c[(c[p>>2]|0)+24>>2]|0)*3<<2)|0;c[(c[n>>2]|0)+40>>2]=t;if(!(c[(c[n>>2]|0)+40>>2]|0)){r=12;break}kR(c[(c[n>>2]|0)+40>>2]|0,0,(c[(c[p>>2]|0)+24>>2]|0)*3<<2|0)|0;c[m>>2]=c[(c[m>>2]|0)+12>>2]}if((r|0)==12){c[g>>2]=7;t=c[g>>2]|0;i=s;return t|0}Mm(c[h>>2]|0,c[o>>2]|0,q);while(1){if(!((d[(c[h>>2]|0)+6>>0]|0)==0?(c[q>>2]|0)==0:0))break;do{if(!(d[(c[h>>2]|0)+7>>0]|0))Zd(c[(c[h>>2]|0)+8>>2]|0)|0;Nm(c[h>>2]|0,c[o>>2]|0,q);a[(c[h>>2]|0)+6>>0]=a[(c[o>>2]|0)+32>>0]|0;a[(c[h>>2]|0)+7>>0]=1;c[(c[h>>2]|0)+88>>2]=1;p=(c[o>>2]|0)+24|0;r=c[p+4>>2]|0;t=(c[h>>2]|0)+32|0;c[t>>2]=c[p>>2];c[t+4>>2]=r;if(d[(c[h>>2]|0)+6>>0]|0)break;if((c[c[o>>2]>>2]|0)!=1)break}while((Im(c[h>>2]|0,q)|0)!=0);if(c[q>>2]|0)continue;if(d[(c[h>>2]|0)+6>>0]|0)continue;Dn(c[o>>2]|0)}a[(c[h>>2]|0)+6>>0]=0;p=l;r=c[p+4>>2]|0;t=(c[h>>2]|0)+32|0;c[t>>2]=c[p>>2];c[t+4>>2]=r;if(a[j>>0]|0){a[(c[o>>2]|0)+32>>0]=a[j>>0]|0;break}Mm(c[h>>2]|0,c[o>>2]|0,q);do{Nm(c[h>>2]|0,c[o>>2]|0,q);r=(c[o>>2]|0)+24|0;t=k}while(((c[r>>2]|0)!=(c[t>>2]|0)?1:(c[r+4>>2]|0)!=(c[t+4>>2]|0))?(c[q>>2]|0)==0:0)}while(0);c[g>>2]=c[q>>2];t=c[g>>2]|0;i=s;return t|0}function Dn(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;f=l+16|0;e=l+12|0;j=l+8|0;k=l+4|0;g=l+20|0;h=l;c[f>>2]=b;if(!(c[f>>2]|0)){i=l;return}c[e>>2]=c[(c[f>>2]|0)+20>>2];a:do if((c[e>>2]|0)!=0?(c[(c[e>>2]|0)+28>>2]|0)!=0:0){c[j>>2]=0;c[k>>2]=c[(c[e>>2]|0)+28>>2];while(1){a[g>>0]=0;c[h>>2]=0;while(1){if(!(254&(a[c[k>>2]>>0]|d[g>>0])))break;if(!(d[g>>0]&128))c[h>>2]=(c[h>>2]|0)+1;e=c[k>>2]|0;c[k>>2]=e+1;a[g>>0]=a[e>>0]&128}e=(c[(c[f>>2]|0)+40>>2]|0)+(((c[j>>2]|0)*3|0)+1<<2)|0;c[e>>2]=(c[e>>2]|0)+(c[h>>2]|0);e=(c[(c[f>>2]|0)+40>>2]|0)+(((c[j>>2]|0)*3|0)+2<<2)|0;c[e>>2]=(c[e>>2]|0)+((c[h>>2]|0)>0&1);if(!(a[c[k>>2]>>0]|0))break a;c[k>>2]=(c[k>>2]|0)+1;b=c[k>>2]|0;if(d[c[k>>2]>>0]&128)b=Vl(b,j)|0;else{c[j>>2]=d[b>>0];b=1}c[k>>2]=(c[k>>2]|0)+b}}while(0);Dn(c[(c[f>>2]|0)+12>>2]|0);Dn(c[(c[f>>2]|0)+16>>2]|0);i=l;return}function En(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=i;i=i+32|0;p=o+28|0;f=o+24|0;m=o+20|0;h=o+16|0;l=o+12|0;k=o+8|0;g=o+4|0;j=o;c[p>>2]=b;c[f>>2]=e;c[m>>2]=c[c[c[f>>2]>>2]>>2];c[l>>2]=c[(c[p>>2]|0)+20>>2];c[k>>2]=c[(c[l>>2]|0)+28>>2];c[g>>2]=0;e=c[(c[p>>2]|0)+36>>2]|0;b=c[(c[f>>2]|0)+4>>2]|0;if((a[(c[f>>2]|0)+24>>0]|0)==121)c[h>>2]=_(e,b)|0;else c[h>>2]=_(e,(b+31|0)/32|0)|0;while(1){c[j>>2]=Lm(k)|0;if(!((c[(c[l>>2]|0)+68>>2]|0)<(c[(c[m>>2]|0)+24>>2]|0)?(c[(c[l>>2]|0)+68>>2]|0)!=(c[g>>2]|0):0))n=6;do if((n|0)==6){n=0;e=c[j>>2]|0;if((a[(c[f>>2]|0)+24>>0]|0)==121){c[(c[(c[f>>2]|0)+28>>2]|0)+((c[h>>2]|0)+(c[g>>2]|0)<<2)>>2]=e;break}if(e){p=(c[(c[f>>2]|0)+28>>2]|0)+((c[h>>2]|0)+(((c[g>>2]|0)+1|0)/32|0)<<2)|0;c[p>>2]=c[p>>2]|1<<(c[g>>2]&31)}}while(0);if((a[c[k>>2]>>0]|0)!=1)break;c[k>>2]=(c[k>>2]|0)+1;e=c[k>>2]|0;if(d[c[k>>2]>>0]&128)e=Vl(e,g)|0;else{c[g>>2]=d[e>>0];e=1}c[k>>2]=(c[k>>2]|0)+e}i=o;return}function Fn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+16|0;h=e+12|0;f=e+8|0;j=e+4|0;g=e;c[h>>2]=a;c[f>>2]=b;c[j>>2]=d;c[g>>2]=c[j>>2];c[(c[g>>2]|0)+(c[f>>2]<<4)>>2]=c[h>>2];i=e;return 0}function Gn(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;g=i;i=i+32|0;b=g+16|0;e=g+12|0;d=g;f=g+8|0;c[b>>2]=a;c[e>>2]=c[(c[b>>2]|0)+8>>2];c[f>>2]=0;h=Ul(c[e>>2]|0,d)|0;c[e>>2]=(c[e>>2]|0)+h;h=d;a=d;if((c[h>>2]|0)==0&(c[h+4>>2]|0)==0|(c[a>>2]|0)==1&(c[a+4>>2]|0)==0){c[e>>2]=0;c[f>>2]=1;e=c[e>>2]|0;h=c[b>>2]|0;h=h+8|0;c[h>>2]=e;h=c[f>>2]|0;i=g;return h|0}else{a=d;a=fR(c[a>>2]|0,c[a+4>>2]|0,2,0)|0;h=(c[b>>2]|0)+12|0;c[h>>2]=(c[h>>2]|0)+a;e=c[e>>2]|0;h=c[b>>2]|0;h=h+8|0;c[h>>2]=e;h=c[f>>2]|0;i=g;return h|0}return 0}function Hn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;f=i;i=i+32|0;k=f+20|0;j=f+12|0;e=f+8|0;g=f+4|0;h=f;c[k>>2]=a;c[f+16>>2]=b;c[j>>2]=d;c[e>>2]=0;c[g>>2]=c[(c[k>>2]|0)+20>>2];c[h>>2]=c[j>>2];a=(c[h>>2]|0)+4|0;c[a>>2]=(c[a>>2]|0)+1;a=(c[h>>2]|0)+8|0;c[a>>2]=(c[a>>2]|0)+(c[(c[g>>2]|0)+64>>2]|0);i=f;return c[e>>2]|0}function In(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;l=k+20|0;f=k;g=k+16|0;h=k+12|0;j=k+8|0;c[l>>2]=a;a=f;c[a>>2]=b;c[a+4>>2]=d;c[g>>2]=e;c[h>>2]=0;c[j>>2]=jl(c[l>>2]|0,21,h,0)|0;do if(!(c[j>>2]|0)){l=f;Me(c[h>>2]|0,1,c[l>>2]|0,c[l+4>>2]|0)|0;c[j>>2]=ue(c[h>>2]|0)|0;if((c[j>>2]|0)==100?(He(c[h>>2]|0,0)|0)==4:0){c[j>>2]=0;break}l=Zd(c[h>>2]|0)|0;c[j>>2]=l;c[j>>2]=(c[j>>2]|0)==0?267:l;c[h>>2]=0}while(0);c[c[g>>2]>>2]=c[h>>2];i=k;return c[j>>2]|0}function Jn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=i;i=i+16|0;h=g+12|0;d=g+8|0;e=g+4|0;f=g;c[h>>2]=a;c[d>>2]=b;c[e>>2]=0;c[f>>2]=jl(c[h>>2]|0,22,e,0)|0;do if(!(c[f>>2]|0)){Le(c[e>>2]|0,1,0)|0;if((ue(c[e>>2]|0)|0)==100?(He(c[e>>2]|0,0)|0)==4:0)break;h=Zd(c[e>>2]|0)|0;c[f>>2]=h;c[f>>2]=(c[f>>2]|0)==0?267:h;c[e>>2]=0}while(0);c[c[d>>2]>>2]=c[e>>2];i=g;return c[f>>2]|0}function Kn(b){b=b|0;var e=0,f=0,g=0;f=i;i=i+16|0;g=f+4|0;e=f;c[g>>2]=b;c[e>>2]=(c[g>>2]|0)+(0-(c[(c[g>>2]|0)+-4>>2]|0));b=c[e>>2]|0;if((c[g>>2]|0)==((c[e>>2]|0)+16+4|0))a[b+1>>0]=0;else a[b+2>>0]=0;if(d[c[e>>2]>>0]|0){i=f;return}if(d[(c[e>>2]|0)+1>>0]|0){i=f;return}if(d[(c[e>>2]|0)+2>>0]|0){i=f;return}Kd(c[e>>2]|0);i=f;return}function Ln(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;f=e+8|0;g=e+4|0;h=e;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;a=c[h>>2]|0;c[a>>2]=(c[a>>2]|0)+1;c[(c[f>>2]|0)+36>>2]=c[g>>2];i=e;return 0}function Mn(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;b=f+8|0;d=f+4|0;e=f;c[b>>2]=a;c[d>>2]=$e(c[(c[b>>2]|0)+12>>2]|0,24216,0,0,0)|0;do if(!(c[d>>2]|0)){c[d>>2]=Nn(c[b>>2]|0,1)|0;a=c[(c[b>>2]|0)+12>>2]|0;if(!((c[d>>2]|0)==0|(c[d>>2]|0)==101)){$e(a,24244,0,0,0)|0;$e(c[(c[b>>2]|0)+12>>2]|0,24231,0,0,0)|0;break}c[e>>2]=$e(a,24231,0,0,0)|0;if(c[e>>2]|0)c[d>>2]=c[e>>2]}while(0);sm(c[b>>2]|0);i=f;return c[d>>2]|0}function Nn(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;d=m+28|0;e=m+24|0;f=m+20|0;k=m+16|0;j=m+12|0;l=m+8|0;g=m+4|0;h=m;c[d>>2]=a;c[e>>2]=b;c[f>>2]=0;c[j>>2]=0;c[k>>2]=jl(c[d>>2]|0,27,j,0)|0;if(!(c[k>>2]|0)){Le(c[j>>2]|0,1,c[(c[d>>2]|0)+272>>2]|0)|0;Le(c[j>>2]|0,2,c[(c[d>>2]|0)+248>>2]|0)|0;a:while(1){a=(ue(c[j>>2]|0)|0)==100;b=c[j>>2]|0;if(!a)break;c[h>>2]=De(b,0)|0;c[g>>2]=0;while(1){if(c[k>>2]|0)continue a;if((c[g>>2]|0)>=(c[(c[d>>2]|0)+248>>2]|0))continue a;c[k>>2]=il(c[d>>2]|0,c[h>>2]|0,c[g>>2]|0,-2)|0;if((c[k>>2]|0)==101){c[f>>2]=1;c[k>>2]=0}c[g>>2]=(c[g>>2]|0)+1}}c[l>>2]=Zd(b)|0;if(!(c[k>>2]|0))c[k>>2]=c[l>>2]}sm(c[d>>2]|0);dl(c[d>>2]|0);i=m;return((c[k>>2]|0)==0&(c[e>>2]|0)!=0&(c[f>>2]|0)!=0?101:c[k>>2]|0)|0}function On(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;C=i;i=i+208|0;y=C+32|0;e=C+132|0;f=C+128|0;v=C+124|0;t=C+120|0;A=C+116|0;r=C+112|0;l=C+108|0;B=C+96|0;x=C;s=C+92|0;h=C+88|0;g=C+84|0;p=C+80|0;n=C+76|0;m=C+72|0;z=C+68|0;q=C+64|0;k=C+60|0;o=C+56|0;w=C+52|0;u=C+48|0;j=C+136|0;c[e>>2]=b;c[f>>2]=d;c[v>>2]=c[c[f>>2]>>2];c[t>>2]=c[c[(c[v>>2]|0)+36>>2]>>2];c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;if(!(c[(c[f>>2]|0)+12>>2]|0)){ne(c[e>>2]|0,19266,0,0);i=C;return}c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;c[x+12>>2]=0;c[x+16>>2]=0;c[x+20>>2]=0;c[x+24>>2]=0;c[x+28>>2]=0;c[A>>2]=Dm(c[f>>2]|0,0,r)|0;a:do if(!(c[A>>2]|0)){c[x+24>>2]=Id((c[r>>2]|0)*12|0)|0;if(!(c[x+24>>2]|0)){c[A>>2]=7;break}D=(c[f>>2]|0)+32|0;d=c[D+4>>2]|0;b=x+16|0;c[b>>2]=c[D>>2];c[b+4>>2]=d;c[x>>2]=c[f>>2];c[l>>2]=0;while(1){if((c[l>>2]|0)>=(c[(c[v>>2]|0)+24>>2]|0))break a;c[g>>2]=0;c[p>>2]=0;c[n>>2]=0;c[m>>2]=0;c[x+4>>2]=c[l>>2];c[x+8>>2]=0;Hm(c[(c[f>>2]|0)+12>>2]|0,158,x)|0;c[z>>2]=Fe(c[(c[f>>2]|0)+8>>2]|0,(c[l>>2]|0)+1|0)|0;c[q>>2]=Be(c[(c[f>>2]|0)+8>>2]|0,(c[l>>2]|0)+1|0)|0;if(!(c[z>>2]|0)){if((He(c[(c[f>>2]|0)+8>>2]|0,(c[l>>2]|0)+1|0)|0)!=5)break}else{c[A>>2]=wn(c[(c[v>>2]|0)+36>>2]|0,c[(c[f>>2]|0)+16>>2]|0,c[z>>2]|0,c[q>>2]|0,s)|0;if(c[A>>2]|0)break a;c[A>>2]=Sb[c[(c[t>>2]|0)+20>>2]&255](c[s>>2]|0,h,g,p,n,m)|0;while(1){if(c[A>>2]|0)break;c[o>>2]=2147483647;c[w>>2]=0;c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[r>>2]|0))break;c[u>>2]=(c[x+24>>2]|0)+((c[k>>2]|0)*12|0);if((c[c[u>>2]>>2]|0)!=0?((c[(c[u>>2]|0)+4>>2]|0)-(c[(c[u>>2]|0)+8>>2]|0)|0)<(c[o>>2]|0):0){c[o>>2]=(c[(c[u>>2]|0)+4>>2]|0)-(c[(c[u>>2]|0)+8>>2]|0);c[w>>2]=c[u>>2]}c[k>>2]=(c[k>>2]|0)+1}if(!(c[w>>2]|0)){c[A>>2]=101;continue}d=c[w>>2]|0;if(!(254&a[c[c[w>>2]>>2]>>0]))c[d>>2]=0;else Qn(d,(c[w>>2]|0)+4|0);while(1){if(c[A>>2]|0)break;if((c[m>>2]|0)>=(c[o>>2]|0))break;c[A>>2]=Sb[c[(c[t>>2]|0)+20>>2]&255](c[s>>2]|0,h,g,p,n,m)|0}if(!(c[A>>2]|0)){d=((c[w>>2]|0)-(c[x+24>>2]|0)|0)/12|0;b=c[p>>2]|0;D=(c[n>>2]|0)-(c[p>>2]|0)|0;c[y>>2]=c[l>>2];c[y+4>>2]=d;c[y+8>>2]=b;c[y+12>>2]=D;Qd(64,j,24261,y)|0;c[A>>2]=Rn(B,j,-1)|0;continue}if((c[A>>2]|0)!=101)continue;if(c[(c[v>>2]|0)+40>>2]|0)continue;c[A>>2]=267}if((c[A>>2]|0)==101)c[A>>2]=0;Tb[c[(c[t>>2]|0)+16>>2]&255](c[s>>2]|0)|0;if(c[A>>2]|0)break a}c[l>>2]=(c[l>>2]|0)+1}c[A>>2]=7}while(0);Kd(c[x+24>>2]|0);sm(c[v>>2]|0);d=c[e>>2]|0;if(c[A>>2]|0){re(d,c[A>>2]|0);Kd(c[B>>2]|0);i=C;return}else{ne(d,c[B>>2]|0,(c[B+4>>2]|0)-1|0,148);i=C;return}}function Pn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;m=i;i=i+48|0;n=m+36|0;o=m+28|0;h=m+24|0;g=m+20|0;f=m+16|0;j=m+12|0;e=m+8|0;l=m+4|0;k=m;c[n>>2]=a;c[m+32>>2]=b;c[o>>2]=d;c[h>>2]=c[o>>2];c[e>>2]=0;c[l>>2]=Km(c[c[h>>2]>>2]|0,c[n>>2]|0,c[(c[h>>2]|0)+4>>2]|0,j)|0;c[g>>2]=c[(c[(c[n>>2]|0)+20>>2]|0)+64>>2];if(c[j>>2]|0)Qn(j,e);c[f>>2]=0;while(1){if((c[f>>2]|0)>=(c[g>>2]|0))break;n=(c[h>>2]|0)+8|0;o=c[n>>2]|0;c[n>>2]=o+1;c[k>>2]=(c[(c[h>>2]|0)+24>>2]|0)+(o*12|0);c[(c[k>>2]|0)+8>>2]=(c[g>>2]|0)-(c[f>>2]|0)-1;c[c[k>>2]>>2]=c[j>>2];c[(c[k>>2]|0)+4>>2]=c[e>>2];c[f>>2]=(c[f>>2]|0)+1}i=m;return c[l>>2]|0}function Qn(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+8|0;f=h+4|0;g=h;c[e>>2]=a;c[f>>2]=b;b=c[c[e>>2]>>2]|0;if((d[c[c[e>>2]>>2]>>0]|0)&128)b=Vl(b,g)|0;else{c[g>>2]=d[b>>0];b=1}e=c[e>>2]|0;c[e>>2]=(c[e>>2]|0)+b;f=c[f>>2]|0;c[f>>2]=(c[f>>2]|0)+((c[g>>2]|0)-2);i=h;return}function Rn(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;f=m+20|0;g=m+16|0;h=m+12|0;j=m+8|0;k=m+4|0;l=m;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;if((c[j>>2]|0)<0)c[j>>2]=BQ(c[h>>2]|0)|0;do if(((c[(c[g>>2]|0)+4>>2]|0)+(c[j>>2]|0)+1|0)>=(c[(c[g>>2]|0)+8>>2]|0)){c[k>>2]=(c[(c[g>>2]|0)+8>>2]|0)+(c[j>>2]|0)+100;c[l>>2]=Ld(c[c[g>>2]>>2]|0,c[k>>2]|0)|0;if(c[l>>2]|0){c[c[g>>2]>>2]=c[l>>2];c[(c[g>>2]|0)+8>>2]=c[k>>2];break}c[f>>2]=7;l=c[f>>2]|0;i=m;return l|0}while(0);iR((c[c[g>>2]>>2]|0)+(c[(c[g>>2]|0)+4>>2]|0)|0,c[h>>2]|0,c[j>>2]|0)|0;l=(c[g>>2]|0)+4|0;c[l>>2]=(c[l>>2]|0)+(c[j>>2]|0);a[(c[c[g>>2]>>2]|0)+(c[(c[g>>2]|0)+4>>2]|0)>>0]=0;c[f>>2]=0;l=c[f>>2]|0;i=m;return l|0}function Sn(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;G=i;i=i+224|0;j=G+212|0;k=G+208|0;l=G+204|0;m=G+200|0;n=G+196|0;o=G+192|0;p=G+188|0;B=G+184|0;E=G+180|0;r=G+176|0;F=G+164|0;z=G+160|0;q=G+40|0;y=G+156|0;v=G+152|0;w=G+32|0;x=G+24|0;s=G+148|0;t=G+144|0;A=G+140|0;C=G;u=G+136|0;c[j>>2]=a;c[k>>2]=b;c[l>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[B>>2]=c[c[k>>2]>>2];c[E>>2]=0;c[F>>2]=0;c[F+4>>2]=0;c[F+8>>2]=0;c[z>>2]=0;c[y>>2]=-1;if(!(c[(c[k>>2]|0)+12>>2]|0)){ne(c[j>>2]|0,19266,0,0);i=G;return}c[z>>2]=1;a:while(1){g=w;c[g>>2]=0;c[g+4>>2]=0;g=x;c[g>>2]=0;c[g+4>>2]=0;g=c[p>>2]|0;if((c[p>>2]|0)>=0)c[y>>2]=(g+(c[z>>2]|0)-1|0)/(c[z>>2]|0)|0;else c[y>>2]=_(-1,g)|0;c[v>>2]=0;while(1){if((c[v>>2]|0)>=(c[z>>2]|0))break;c[s>>2]=-1;c[A>>2]=q+((c[v>>2]|0)*24|0);d=c[A>>2]|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;c[d+12>>2]=0;c[d+16>>2]=0;c[d+20>>2]=0;c[t>>2]=0;while(1){if((c[t>>2]|0)>=(c[(c[B>>2]|0)+24>>2]|0))break;c[C>>2]=0;c[C+4>>2]=0;c[C+8>>2]=0;c[C+12>>2]=0;c[C+16>>2]=0;c[C+20>>2]=0;c[u>>2]=0;if(!((c[o>>2]|0)>=0?(c[t>>2]|0)!=(c[o>>2]|0):0)){d=w;c[E>>2]=Tn(c[y>>2]|0,c[k>>2]|0,c[t>>2]|0,c[d>>2]|0,c[d+4>>2]|0,x,C,u)|0;if(c[E>>2]|0)break a;if((c[u>>2]|0)>(c[s>>2]|0)){d=c[A>>2]|0;c[d>>2]=c[C>>2];c[d+4>>2]=c[C+4>>2];c[d+8>>2]=c[C+8>>2];c[d+12>>2]=c[C+12>>2];c[d+16>>2]=c[C+16>>2];c[d+20>>2]=c[C+20>>2];c[s>>2]=c[u>>2]}}c[t>>2]=(c[t>>2]|0)+1}f=(c[A>>2]|0)+8|0;a=w;e=c[a+4>>2]|c[f+4>>2];d=w;c[d>>2]=c[a>>2]|c[f>>2];c[d+4>>2]=e;c[v>>2]=(c[v>>2]|0)+1}e=x;d=w;if(((c[e>>2]|0)==(c[d>>2]|0)?(c[e+4>>2]|0)==(c[d+4>>2]|0):0)|(c[z>>2]|0)==4){D=20;break}c[z>>2]=(c[z>>2]|0)+1}b:do if((D|0)==20){c[r>>2]=0;while(1){if(!((c[r>>2]|0)<(c[z>>2]|0)?(c[E>>2]|0)==0:0))break b;c[E>>2]=Un(c[k>>2]|0,q+((c[r>>2]|0)*24|0)|0,c[r>>2]|0,(c[r>>2]|0)==((c[z>>2]|0)-1|0)&1,c[y>>2]|0,c[l>>2]|0,c[m>>2]|0,c[n>>2]|0,F)|0;c[r>>2]=(c[r>>2]|0)+1}}while(0);sm(c[B>>2]|0);g=c[j>>2]|0;if(c[E>>2]|0){re(g,c[E>>2]|0);Kd(c[F>>2]|0);i=G;return}else{ne(g,c[F>>2]|0,-1,148);i=G;return}}function Tn(a,b,d,e,f,g,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0;D=i;i=i+112|0;k=D+104|0;l=D+100|0;m=D+96|0;n=D+92|0;o=D+16|0;p=D+88|0;q=D+84|0;r=D+80|0;A=D+76|0;z=D+72|0;B=D+48|0;y=D+40|0;t=D+36|0;s=D+32|0;u=D+28|0;v=D+24|0;w=D+8|0;x=D;c[l>>2]=a;c[m>>2]=b;c[n>>2]=d;b=o;c[b>>2]=e;c[b+4>>2]=f;c[p>>2]=g;c[q>>2]=h;c[r>>2]=j;c[t>>2]=-1;c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;c[B+12>>2]=0;c[B+16>>2]=0;c[B+20>>2]=0;c[A>>2]=Dm(c[m>>2]|0,z,0)|0;if(c[A>>2]|0){c[k>>2]=c[A>>2];B=c[k>>2]|0;i=D;return B|0}c[y>>2]=(c[z>>2]|0)*24;c[B+16>>2]=Id(c[y>>2]|0)|0;if(!(c[B+16>>2]|0)){c[k>>2]=7;B=c[k>>2]|0;i=D;return B|0}kR(c[B+16>>2]|0,0,c[y>>2]|0)|0;c[B>>2]=c[m>>2];c[B+4>>2]=c[n>>2];c[B+8>>2]=c[l>>2];c[B+12>>2]=c[z>>2];c[B+20>>2]=-1;c[A>>2]=Hm(c[(c[m>>2]|0)+12>>2]|0,159,B)|0;if(!(c[A>>2]|0)){c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[z>>2]|0))break;if(c[(c[B+16>>2]|0)+((c[s>>2]|0)*24|0)+12>>2]|0){h=lR(1,0,c[s>>2]|0)|0;g=c[p>>2]|0;b=g;j=c[b+4>>2]|C;c[g>>2]=c[b>>2]|h;c[g+4>>2]=j}c[s>>2]=(c[s>>2]|0)+1}c[c[q>>2]>>2]=c[n>>2];while(1){if(!((Xn(B)|0)!=0^1))break;g=o;Yn(B,c[g>>2]|0,c[g+4>>2]|0,u,v,w,x);if((c[v>>2]|0)<=(c[t>>2]|0))continue;c[(c[q>>2]|0)+4>>2]=c[u>>2];g=x;j=c[g+4>>2]|0;h=(c[q>>2]|0)+16|0;c[h>>2]=c[g>>2];c[h+4>>2]=j;h=w;j=c[h+4>>2]|0;g=(c[q>>2]|0)+8|0;c[g>>2]=c[h>>2];c[g+4>>2]=j;c[t>>2]=c[v>>2]}c[c[r>>2]>>2]=c[t>>2]}Kd(c[B+16>>2]|0);c[k>>2]=c[A>>2];B=c[k>>2]|0;i=D;return B|0}function Un(a,b,d,e,f,g,h,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0;N=i;i=i+128|0;l=N+112|0;m=N+108|0;P=N+104|0;n=N+100|0;o=N+96|0;p=N+92|0;q=N+88|0;r=N+84|0;s=N+80|0;t=N+76|0;J=N+72|0;K=N+68|0;L=N+64|0;G=N+60|0;y=N+56|0;z=N+52|0;E=N+48|0;B=N+44|0;w=N;O=N+40|0;I=N+36|0;H=N+32|0;v=N+28|0;u=N+24|0;x=N+20|0;A=N+16|0;D=N+12|0;F=N+8|0;c[m>>2]=a;c[P>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=j;c[t>>2]=k;c[J>>2]=c[c[m>>2]>>2];c[y>>2]=0;c[z>>2]=0;c[E>>2]=0;c[B>>2]=c[(c[P>>2]|0)+4>>2];g=(c[P>>2]|0)+16|0;e=c[g+4>>2]|0;d=w;c[d>>2]=c[g>>2];c[d+4>>2]=e;c[O>>2]=(c[c[P>>2]>>2]|0)+1;c[L>>2]=Fe(c[(c[m>>2]|0)+8>>2]|0,c[O>>2]|0)|0;d=c[(c[m>>2]|0)+8>>2]|0;e=c[O>>2]|0;if(!(c[L>>2]|0))if((He(d,e)|0)!=5){c[l>>2]=7;P=c[l>>2]|0;i=N;return P|0}else{c[l>>2]=0;P=c[l>>2]|0;i=N;return P|0}c[G>>2]=Be(d,e)|0;c[I>>2]=c[c[(c[J>>2]|0)+36>>2]>>2];c[K>>2]=wn(c[(c[J>>2]|0)+36>>2]|0,c[(c[m>>2]|0)+16>>2]|0,c[L>>2]|0,c[G>>2]|0,H)|0;if(c[K>>2]|0){c[l>>2]=c[K>>2];P=c[l>>2]|0;i=N;return P|0}while(1){if(c[K>>2]|0)break;c[u>>2]=-1;c[x>>2]=0;c[A>>2]=0;c[D>>2]=0;c[K>>2]=Sb[c[(c[I>>2]|0)+20>>2]&255](c[H>>2]|0,v,u,x,A,y)|0;if(c[K>>2]|0){M=9;break}if((c[y>>2]|0)<(c[B>>2]|0))continue;if(!(c[E>>2]|0)){c[F>>2]=(c[G>>2]|0)-(c[x>>2]|0);c[K>>2]=Vn(c[J>>2]|0,c[(c[m>>2]|0)+16>>2]|0,c[p>>2]|0,(c[L>>2]|0)+(c[x>>2]|0)|0,c[F>>2]|0,B,w)|0;c[E>>2]=1;do if(!(c[K>>2]|0)){if((c[B>>2]|0)>0|(c[n>>2]|0)>0){c[K>>2]=Rn(c[t>>2]|0,c[s>>2]|0,-1)|0;break}if(c[x>>2]|0)c[K>>2]=Rn(c[t>>2]|0,c[L>>2]|0,c[x>>2]|0)|0}while(0);if(c[K>>2]|0)continue;if((c[y>>2]|0)<(c[B>>2]|0))continue}if((c[y>>2]|0)>=((c[B>>2]|0)+(c[p>>2]|0)|0)){M=21;break}P=w;g=c[P>>2]|0;P=c[P+4>>2]|0;O=lR(1,0,(c[y>>2]|0)-(c[B>>2]|0)|0)|0;c[D>>2]=((g&O|0)!=0|(P&C|0)!=0)&1;if((c[y>>2]|0)>(c[B>>2]|0))c[K>>2]=Rn(c[t>>2]|0,(c[L>>2]|0)+(c[z>>2]|0)|0,(c[x>>2]|0)-(c[z>>2]|0)|0)|0;if((c[K>>2]|0)==0&(c[D>>2]|0)!=0)c[K>>2]=Rn(c[t>>2]|0,c[q>>2]|0,-1)|0;if(!(c[K>>2]|0))c[K>>2]=Rn(c[t>>2]|0,(c[L>>2]|0)+(c[x>>2]|0)|0,(c[A>>2]|0)-(c[x>>2]|0)|0)|0;if((c[K>>2]|0)==0&(c[D>>2]|0)!=0)c[K>>2]=Rn(c[t>>2]|0,c[r>>2]|0,-1)|0;c[z>>2]=c[A>>2]}if((M|0)==9){if((c[K>>2]|0)==101)c[K>>2]=Rn(c[t>>2]|0,(c[L>>2]|0)+(c[z>>2]|0)|0,-1)|0}else if((M|0)==21?(c[o>>2]|0)!=0:0)c[K>>2]=Rn(c[t>>2]|0,c[s>>2]|0,-1)|0;Tb[c[(c[I>>2]|0)+16>>2]&255](c[H>>2]|0)|0;c[l>>2]=c[K>>2];P=c[l>>2]|0;i=N;return P|0}function Vn(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0;F=i;i=i+96|0;w=F+84|0;j=F+80|0;k=F+76|0;x=F+72|0;l=F+68|0;m=F+64|0;y=F+60|0;z=F+56|0;A=F;s=F+52|0;t=F+48|0;r=F+44|0;D=F+40|0;B=F+36|0;E=F+32|0;v=F+28|0;u=F+24|0;q=F+20|0;n=F+16|0;o=F+12|0;p=F+8|0;c[j>>2]=a;c[k>>2]=b;c[x>>2]=d;c[l>>2]=e;c[m>>2]=f;c[y>>2]=g;c[z>>2]=h;a=c[z>>2]|0;g=c[a+4>>2]|0;e=A;c[e>>2]=c[a>>2];c[e+4>>2]=g;e=A;do if((c[e>>2]|0)!=0|(c[e+4>>2]|0)!=0){c[s>>2]=0;while(1){e=A;a=c[e>>2]|0;e=c[e+4>>2]|0;g=lR(1,0,c[s>>2]|0)|0;if(!(((a&g|0)!=0|(e&C|0)!=0)^1))break;c[s>>2]=(c[s>>2]|0)+1}c[t>>2]=0;while(1){e=A;a=c[e>>2]|0;e=c[e+4>>2]|0;g=lR(1,0,(c[x>>2]|0)-1-(c[t>>2]|0)|0)|0;if(!(((a&g|0)!=0|(e&C|0)!=0)^1))break;c[t>>2]=(c[t>>2]|0)+1}c[r>>2]=((c[s>>2]|0)-(c[t>>2]|0)|0)/2|0;if((c[r>>2]|0)>0){c[B>>2]=0;c[v>>2]=c[c[(c[j>>2]|0)+36>>2]>>2];c[E>>2]=wn(c[(c[j>>2]|0)+36>>2]|0,c[k>>2]|0,c[l>>2]|0,c[m>>2]|0,u)|0;if(c[E>>2]|0){c[w>>2]=c[E>>2];E=c[w>>2]|0;i=F;return E|0}while(1){if(c[E>>2]|0)break;if((c[B>>2]|0)>=((c[x>>2]|0)+(c[r>>2]|0)|0))break;c[n>>2]=0;c[o>>2]=0;c[p>>2]=0;c[E>>2]=Sb[c[(c[v>>2]|0)+20>>2]&255](c[u>>2]|0,q,n,o,p,B)|0}Tb[c[(c[v>>2]|0)+16>>2]&255](c[u>>2]|0)|0;j=c[E>>2]|0;if((c[E>>2]|0)!=0&(c[E>>2]|0)!=101){c[w>>2]=j;E=c[w>>2]|0;i=F;return E|0}else{c[D>>2]=((j|0)==101&1)+(c[B>>2]|0)-(c[x>>2]|0);if((c[D>>2]|0)<=0)break;E=c[y>>2]|0;c[E>>2]=(c[E>>2]|0)+(c[D>>2]|0);E=A;D=hR(c[E>>2]|0,c[E+4>>2]|0,c[D>>2]|0)|0;E=c[z>>2]|0;c[E>>2]=D;c[E+4>>2]=C;break}}}while(0);c[w>>2]=0;E=c[w>>2]|0;i=F;return E|0}function Wn(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;j=i;i=i+32|0;l=j+28|0;m=j+24|0;n=j+20|0;k=j+16|0;g=j+12|0;f=j+8|0;h=j+4|0;e=j;c[l>>2]=a;c[m>>2]=b;c[n>>2]=d;c[k>>2]=c[n>>2];c[g>>2]=(c[(c[k>>2]|0)+16>>2]|0)+((c[m>>2]|0)*24|0);c[c[g>>2]>>2]=c[(c[(c[l>>2]|0)+20>>2]|0)+64>>2];c[h>>2]=Km(c[c[k>>2]>>2]|0,c[l>>2]|0,c[(c[k>>2]|0)+4>>2]|0,f)|0;if(!(c[f>>2]|0)){n=c[h>>2]|0;i=j;return n|0}c[e>>2]=0;c[(c[g>>2]|0)+4>>2]=c[f>>2];Qn(f,e);c[(c[g>>2]|0)+12>>2]=c[f>>2];c[(c[g>>2]|0)+20>>2]=c[f>>2];c[(c[g>>2]|0)+8>>2]=c[e>>2];c[(c[g>>2]|0)+16>>2]=c[e>>2];n=c[h>>2]|0;i=j;return n|0}function Xn(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;b=l+28|0;d=l+24|0;e=l+20|0;h=l+16|0;g=l+12|0;f=l+8|0;j=l+4|0;k=l;c[d>>2]=a;a:do if((c[(c[d>>2]|0)+20>>2]|0)<0){c[(c[d>>2]|0)+20>>2]=0;c[e>>2]=0;while(1){if((c[e>>2]|0)>=(c[(c[d>>2]|0)+12>>2]|0))break a;c[h>>2]=(c[(c[d>>2]|0)+16>>2]|0)+((c[e>>2]|0)*24|0);Zn((c[h>>2]|0)+12|0,(c[h>>2]|0)+8|0,c[(c[d>>2]|0)+8>>2]|0);c[e>>2]=(c[e>>2]|0)+1}}else{c[f>>2]=2147483647;c[e>>2]=0;while(1){if((c[e>>2]|0)>=(c[(c[d>>2]|0)+12>>2]|0))break;c[j>>2]=(c[(c[d>>2]|0)+16>>2]|0)+((c[e>>2]|0)*24|0);if((c[(c[j>>2]|0)+12>>2]|0)!=0?(c[(c[j>>2]|0)+8>>2]|0)<(c[f>>2]|0):0)c[f>>2]=c[(c[j>>2]|0)+8>>2];c[e>>2]=(c[e>>2]|0)+1}if((c[f>>2]|0)==2147483647){c[b>>2]=1;k=c[b>>2]|0;i=l;return k|0}j=(c[f>>2]|0)-(c[(c[d>>2]|0)+8>>2]|0)+1|0;c[g>>2]=j;c[(c[d>>2]|0)+20>>2]=j;c[e>>2]=0;while(1){if((c[e>>2]|0)>=(c[(c[d>>2]|0)+12>>2]|0))break a;c[k>>2]=(c[(c[d>>2]|0)+16>>2]|0)+((c[e>>2]|0)*24|0);Zn((c[k>>2]|0)+12|0,(c[k>>2]|0)+8|0,(c[f>>2]|0)+1|0);Zn((c[k>>2]|0)+20|0,(c[k>>2]|0)+16|0,c[g>>2]|0);c[e>>2]=(c[e>>2]|0)+1}}while(0);c[b>>2]=0;k=c[b>>2]|0;i=l;return k|0}function Yn(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=i;i=i+96|0;k=B+84|0;l=B+32|0;m=B+80|0;n=B+76|0;o=B+72|0;p=B+68|0;t=B+64|0;s=B+60|0;q=B+56|0;v=B+24|0;w=B+16|0;A=B+52|0;z=B+48|0;r=B+44|0;u=B+40|0;x=B+8|0;y=B;c[k>>2]=b;b=l;c[b>>2]=d;c[b+4>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[p>>2]=j;c[t>>2]=c[(c[k>>2]|0)+20>>2];c[s>>2]=0;j=v;c[j>>2]=0;c[j+4>>2]=0;j=w;c[j>>2]=0;c[j+4>>2]=0;c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[(c[k>>2]|0)+12>>2]|0))break;c[A>>2]=(c[(c[k>>2]|0)+16>>2]|0)+((c[q>>2]|0)*24|0);
  73. a:do if(c[(c[A>>2]|0)+20>>2]|0){c[z>>2]=c[(c[A>>2]|0)+20>>2];c[r>>2]=c[(c[A>>2]|0)+16>>2];while(1){if((c[r>>2]|0)>=((c[t>>2]|0)+(c[(c[k>>2]|0)+8>>2]|0)|0))break a;f=lR(1,0,c[q>>2]|0)|0;h=x;c[h>>2]=f;c[h+4>>2]=C;h=lR(1,0,(c[r>>2]|0)-(c[t>>2]|0)|0)|0;f=y;c[f>>2]=h;c[f+4>>2]=C;f=v;h=l;j=x;d=c[s>>2]|0;if(((c[f>>2]|c[h>>2])&c[j>>2]|0)!=0?1:((c[f+4>>2]|c[h+4>>2])&c[j+4>>2]|0)!=0)c[s>>2]=d+1;else c[s>>2]=d+1e3;f=x;g=v;h=c[g+4>>2]|c[f+4>>2];j=v;c[j>>2]=c[g>>2]|c[f>>2];c[j+4>>2]=h;c[u>>2]=0;while(1){if((c[u>>2]|0)>=(c[c[A>>2]>>2]|0))break;f=y;f=hR(c[f>>2]|0,c[f+4>>2]|0,c[u>>2]|0)|0;g=w;h=c[g+4>>2]|C;j=w;c[j>>2]=c[g>>2]|f;c[j+4>>2]=h;c[u>>2]=(c[u>>2]|0)+1}if(!(a[c[z>>2]>>0]&254))break a;Qn(z,r)}}while(0);c[q>>2]=(c[q>>2]|0)+1}c[c[m>>2]>>2]=c[t>>2];c[c[n>>2]>>2]=c[s>>2];A=v;z=c[A+4>>2]|0;y=c[o>>2]|0;c[y>>2]=c[A>>2];c[y+4>>2]=z;y=w;z=c[y+4>>2]|0;A=c[p>>2]|0;c[A>>2]=c[y>>2];c[A+4>>2]=z;i=B;return}function Zn(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;f=m+16|0;g=m+12|0;h=m+8|0;k=m+4|0;j=m;c[f>>2]=b;c[g>>2]=d;c[h>>2]=e;c[k>>2]=c[c[f>>2]>>2];if(!(c[k>>2]|0)){i=m;return}c[j>>2]=c[c[g>>2]>>2];while(1){if((c[j>>2]|0)>=(c[h>>2]|0))break;if(!(a[c[k>>2]>>0]&254)){l=5;break}Qn(k,j)}if((l|0)==5){c[j>>2]=-1;c[k>>2]=0}c[c[g>>2]>>2]=c[j>>2];c[c[f>>2]>>2]=c[k>>2];i=m;return}function _n(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;h=i;i=i+32|0;j=h+16|0;d=h+12|0;g=h+8|0;e=h+4|0;f=h;c[j>>2]=a;c[d>>2]=b;c[e>>2]=0;c[f>>2]=0;c[g>>2]=jl(c[j>>2]|0,36,f,0)|0;if(c[g>>2]|0){b=c[e>>2]|0;j=c[d>>2]|0;c[j>>2]=b;j=c[g>>2]|0;i=h;return j|0}if(100==(ue(c[f>>2]|0)|0))c[e>>2]=De(c[f>>2]|0,0)|0;c[g>>2]=Zd(c[f>>2]|0)|0;b=c[e>>2]|0;j=c[d>>2]|0;c[j>>2]=b;j=c[g>>2]|0;i=h;return j|0}function $n(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0;D=i;i=i+128|0;f=D+112|0;g=D+108|0;E=D+104|0;h=D+100|0;A=D+96|0;u=D+92|0;w=D+88|0;x=D+84|0;z=D+80|0;v=D+76|0;n=D+16|0;m=D+64|0;j=D+60|0;t=D+8|0;y=D+52|0;l=D+48|0;p=D+44|0;q=D+40|0;o=D;r=D+36|0;k=D+32|0;B=D+28|0;s=D+24|0;c[g>>2]=a;c[E>>2]=b;c[h>>2]=e;c[u>>2]=c[E>>2];c[v>>2]=0;a=n;c[a>>2]=0;c[a+4>>2]=0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[j>>2]=0;c[D+56>>2]=640;c[z>>2]=Id(640)|0;if(!(c[z>>2]|0)){c[f>>2]=7;E=c[f>>2]|0;i=D;return E|0}c[x>>2]=(c[z>>2]|0)+568;c[w>>2]=(c[x>>2]|0)+16;c[A>>2]=ao(c[g>>2]|0,m)|0;while(1){if(!((c[A>>2]|0)==0?(c[u>>2]|0)>0:0))break;a=c[(c[g>>2]|0)+248>>2]<<10;E=t;c[E>>2]=a;c[E+4>>2]=((a|0)<0)<<31>>31;c[y>>2]=0;c[l>>2]=0;c[p>>2]=0;c[A>>2]=jl(c[g>>2]|0,28,y,0)|0;Le(c[y>>2]|0,1,c[h>>2]|0)|0;if((ue(c[y>>2]|0)|0)==100){a=Ee(c[y>>2]|0,0)|0;E=n;c[E>>2]=a;c[E+4>>2]=C;c[v>>2]=c[h>>2]}else c[v>>2]=-1;c[A>>2]=Zd(c[y>>2]|0)|0;do if((c[A>>2]|0)==0?(c[m+4>>2]|0)!=0:0){c[q>>2]=c[m+4>>2];E=o;c[E>>2]=0;c[E+4>>2]=0;c[r>>2]=0;c[A>>2]=bo(m,o,r)|0;if((c[v>>2]|0)>=0?(b=n,a=t,a=qR(c[b>>2]|0,c[b+4>>2]|0,c[a>>2]|0,c[a+4>>2]|0)|0,b=C,e=o,E=t,E=qR(c[e>>2]|0,c[e+4>>2]|0,c[E>>2]|0,c[E+4>>2]|0)|0,e=C,!((b|0)>(e|0)|(b|0)==(e|0)&a>>>0>=E>>>0)):0){c[m+4>>2]=c[q>>2];break}e=o;a=c[e+4>>2]|0;E=n;c[E>>2]=c[e>>2];c[E+4>>2]=a;c[v>>2]=c[r>>2];c[l>>2]=1;c[j>>2]=1}while(0);if((c[v>>2]|0)<0)break;kR(c[z>>2]|0,0,640)|0;c[(c[x>>2]|0)+12>>2]=1;do if(!(c[A>>2]|0)){E=n;c[A>>2]=co(c[g>>2]|0,c[E>>2]|0,c[E+4>>2]|0,p)|0;if((c[p>>2]|0)!=0?!((c[l>>2]|0)!=0&(c[p>>2]|0)==1):0)break;c[k>>2]=0;a=c[g>>2]|0;E=n;E=gR(c[E>>2]|0,c[E+4>>2]|0,1,0)|0;c[A>>2]=eo(a,E,C,k)|0;if(c[k>>2]|0){E=(c[x>>2]|0)+12|0;c[E>>2]=c[E>>2]|2}}while(0);if(!(c[A>>2]|0)){E=n;c[A>>2]=fo(c[g>>2]|0,c[E>>2]|0,c[E+4>>2]|0,c[v>>2]|0,c[w>>2]|0)|0}if(((0==(c[A>>2]|0)?(c[(c[w>>2]|0)+4>>2]|0)==(c[v>>2]|0):0)?(E=ol(c[g>>2]|0,c[w>>2]|0,c[x>>2]|0)|0,c[A>>2]=E,0==(E|0)):0)?(E=pl(c[g>>2]|0,c[w>>2]|0)|0,c[A>>2]=E,100==(E|0)):0){if((c[l>>2]|0)!=0&(c[p>>2]|0)>0){c[B>>2]=c[(c[w>>2]|0)+40>>2];c[s>>2]=c[(c[w>>2]|0)+44>>2];E=n;c[A>>2]=go(c[g>>2]|0,c[E>>2]|0,c[E+4>>2]|0,(c[p>>2]|0)-1|0,c[B>>2]|0,c[s>>2]|0,c[z>>2]|0)|0}else{E=n;c[A>>2]=ho(c[g>>2]|0,c[E>>2]|0,c[E+4>>2]|0,c[p>>2]|0,c[w>>2]|0,c[z>>2]|0)|0}if((c[A>>2]|0)==0?(c[c[z>>2]>>2]|0)!=0:0){do{c[A>>2]=io(c[g>>2]|0,c[z>>2]|0,c[w>>2]|0)|0;if(!(c[A>>2]|0))c[A>>2]=pl(c[g>>2]|0,c[w>>2]|0)|0;if((c[A>>2]|0)==100?(c[(c[z>>2]|0)+4>>2]|0)>=(c[u>>2]|0):0)c[A>>2]=0}while((c[A>>2]|0)==100);if((c[A>>2]|0)==0?(c[u>>2]=(c[u>>2]|0)-(1+(c[(c[z>>2]|0)+4>>2]|0)),E=n,c[A>>2]=jo(c[g>>2]|0,c[E>>2]|0,c[E+4>>2]|0,c[w>>2]|0,v)|0,(c[v>>2]|0)!=0):0){c[j>>2]=1;E=n;ko(m,c[E>>2]|0,c[E+4>>2]|0,c[v>>2]|0,A)}}if(c[v>>2]|0){a=(c[z>>2]|0)+40|0;a=rR(c[a>>2]|0,c[a+4>>2]|0,-1,-1)|0;E=(c[z>>2]|0)+40|0;c[E>>2]=a;c[E+4>>2]=C}lo(c[g>>2]|0,c[z>>2]|0,A);if((c[v>>2]|0)==0?(d[(c[z>>2]|0)+48>>0]|0|0)==0:0){e=c[g>>2]|0;a=n;a=gR(c[a>>2]|0,c[a+4>>2]|0,1,0)|0;E=(c[z>>2]|0)+40|0;tl(e,a,C,c[E>>2]|0,c[E+4>>2]|0)|0}}vl(c[w>>2]|0)}if((c[j>>2]|0)!=0&(c[A>>2]|0)==0)c[A>>2]=mo(c[g>>2]|0,m)|0;Kd(c[z>>2]|0);Kd(c[m>>2]|0);c[f>>2]=c[A>>2];E=c[f>>2]|0;i=D;return E|0}function ao(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;l=k+24|0;d=k+20|0;g=k+16|0;h=k+12|0;j=k+8|0;e=k+4|0;f=k;c[l>>2]=a;c[d>>2]=b;c[g>>2]=0;c[(c[d>>2]|0)+4>>2]=0;c[h>>2]=jl(c[l>>2]|0,22,g,0)|0;if(c[h>>2]|0){l=c[h>>2]|0;i=k;return l|0}Le(c[g>>2]|0,1,1)|0;if((100==(ue(c[g>>2]|0)|0)?(c[e>>2]=Ae(c[g>>2]|0,0)|0,c[f>>2]=Be(c[g>>2]|0,0)|0,(c[e>>2]|0)!=0):0)?(no(c[d>>2]|0,c[f>>2]|0,h),(c[h>>2]|0)==0):0){iR(c[c[d>>2]>>2]|0,c[e>>2]|0,c[f>>2]|0)|0;c[(c[d>>2]|0)+4>>2]=c[f>>2]}c[j>>2]=Zd(c[g>>2]|0)|0;if(c[h>>2]|0){l=c[h>>2]|0;i=k;return l|0}c[h>>2]=c[j>>2];l=c[h>>2]|0;i=k;return l|0}function bo(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;k=n+20|0;h=n+16|0;g=n+12|0;j=n+8|0;m=n+4|0;l=n;c[h>>2]=b;c[g>>2]=e;c[j>>2]=f;c[m>>2]=c[(c[h>>2]|0)+4>>2];c[l>>2]=(c[(c[h>>2]|0)+4>>2]|0)-2;while(1){if((c[l>>2]|0)<=0)break;if(!(a[(c[c[h>>2]>>2]|0)+((c[l>>2]|0)-1)>>0]&128))break;c[l>>2]=(c[l>>2]|0)+-1}while(1){if((c[l>>2]|0)>0)e=(a[(c[c[h>>2]>>2]|0)+((c[l>>2]|0)-1)>>0]&128|0)!=0;else e=0;b=c[l>>2]|0;if(!e)break;c[l>>2]=b+-1}c[(c[h>>2]|0)+4>>2]=b;b=Ul((c[c[h>>2]>>2]|0)+(c[l>>2]|0)|0,c[g>>2]|0)|0;c[l>>2]=(c[l>>2]|0)+b;b=(c[c[h>>2]>>2]|0)+(c[l>>2]|0)|0;if(d[(c[c[h>>2]>>2]|0)+(c[l>>2]|0)>>0]&128)b=Vl(b,c[j>>2]|0)|0;else{c[c[j>>2]>>2]=d[b>>0];b=1}c[l>>2]=(c[l>>2]|0)+b;if((c[l>>2]|0)!=(c[m>>2]|0)){c[k>>2]=267;m=c[k>>2]|0;i=n;return m|0}else{c[k>>2]=0;m=c[k>>2]|0;i=n;return m|0}return 0}function co(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;l=k+20|0;f=k;g=k+16|0;j=k+12|0;h=k+8|0;c[l>>2]=a;a=f;c[a>>2]=b;c[a+4>>2]=d;c[g>>2]=e;c[h>>2]=0;c[j>>2]=jl(c[l>>2]|0,8,h,0)|0;if(c[j>>2]|0){l=c[j>>2]|0;i=k;return l|0}e=c[h>>2]|0;l=f;l=gR(c[l>>2]|0,c[l+4>>2]|0,1,0)|0;Me(e,1,l,C)|0;ue(c[h>>2]|0)|0;l=De(c[h>>2]|0,0)|0;c[c[g>>2]>>2]=l;c[j>>2]=Zd(c[h>>2]|0)|0;l=c[j>>2]|0;i=k;return l|0}function eo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;l=i;i=i+32|0;f=l+24|0;m=l+20|0;g=l;h=l+16|0;j=l+12|0;k=l+8|0;c[m>>2]=a;a=g;c[a>>2]=b;c[a+4>>2]=d;c[h>>2]=e;c[k>>2]=jl(c[m>>2]|0,15,j,0)|0;if(c[k>>2]|0){c[f>>2]=c[k>>2];m=c[f>>2]|0;i=l;return m|0}m=c[j>>2]|0;k=g;k=gR(c[k>>2]|0,c[k+4>>2]|0,1,0)|0;Me(m,1,k,C)|0;k=c[j>>2]|0;m=g;m=pR(c[m>>2]|0,c[m+4>>2]|0,1024,0)|0;m=gR(m|0,C|0,1,0)|0;m=rR(m|0,C|0,1024,0)|0;Me(k,2,m,C)|0;c[c[h>>2]>>2]=0;if(100==(ue(c[j>>2]|0)|0)){m=(He(c[j>>2]|0,0)|0)==5&1;c[c[h>>2]>>2]=m}c[f>>2]=Zd(c[j>>2]|0)|0;m=c[f>>2]|0;i=l;return m|0}function fo(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;q=i;i=i+48|0;g=q+36|0;h=q;j=q+32|0;k=q+28|0;o=q+24|0;n=q+20|0;m=q+16|0;l=q+12|0;p=q+8|0;c[g>>2]=a;a=h;c[a>>2]=b;c[a+4>>2]=d;c[j>>2]=e;c[k>>2]=f;c[n>>2]=0;b=c[k>>2]|0;d=b+56|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));c[m>>2]=c[j>>2]<<2;f=Id(c[m>>2]|0)|0;c[c[k>>2]>>2]=f;if(!(c[c[k>>2]>>2]|0))c[o>>2]=7;else{kR(c[c[k>>2]>>2]|0,0,c[m>>2]|0)|0;c[o>>2]=jl(c[g>>2]|0,12,n,0)|0}if(c[o>>2]|0){p=c[o>>2]|0;i=q;return p|0}m=h;Me(c[n>>2]|0,1,c[m>>2]|0,c[m+4>>2]|0)|0;c[l>>2]=0;while(1){if(c[o>>2]|0)break;if((ue(c[n>>2]|0)|0)!=100)break;if((c[l>>2]|0)>=(c[j>>2]|0))break;r=c[l>>2]|0;b=Ee(c[n>>2]|0,1)|0;d=C;e=Ee(c[n>>2]|0,2)|0;a=C;f=Ee(c[n>>2]|0,3)|0;g=C;h=Ae(c[n>>2]|0,4)|0;m=Be(c[n>>2]|0,4)|0;c[o>>2]=im(r,0,b,d,e,a,f,g,h,m,(c[c[k>>2]>>2]|0)+(c[l>>2]<<2)|0)|0;m=(c[k>>2]|0)+4|0;c[m>>2]=(c[m>>2]|0)+1;c[l>>2]=(c[l>>2]|0)+1}c[p>>2]=Zd(c[n>>2]|0)|0;if(c[o>>2]|0){r=c[o>>2]|0;i=q;return r|0}c[o>>2]=c[p>>2];r=c[o>>2]|0;i=q;return r|0}function go(b,d,e,f,g,h,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;K=i;i=i+208|0;y=K+200|0;z=K+196|0;k=K+120|0;l=K+192|0;m=K+188|0;n=K+184|0;A=K+180|0;H=K+176|0;G=K+172|0;s=K+112|0;r=K+104|0;q=K+96|0;v=K+168|0;x=K+164|0;I=K+160|0;p=K+156|0;o=K+152|0;t=K+148|0;u=K+48|0;D=K+144|0;w=K+140|0;F=K+136|0;J=K;B=K+132|0;E=K+128|0;c[z>>2]=b;b=k;c[b>>2]=d;c[b+4>>2]=e;c[l>>2]=f;c[m>>2]=g;c[n>>2]=h;c[A>>2]=j;c[G>>2]=0;c[H>>2]=jl(c[z>>2]|0,32,G,0)|0;if(!(c[H>>2]|0)){d=s;c[d>>2]=0;c[d+4>>2]=0;d=r;c[d>>2]=0;c[d+4>>2]=0;d=q;c[d>>2]=0;c[d+4>>2]=0;c[v>>2]=0;c[x>>2]=0;c[p>>2]=0;d=c[G>>2]|0;g=k;g=gR(c[g>>2]|0,c[g+4>>2]|0,1,0)|0;Me(d,1,g,C)|0;Le(c[G>>2]|0,2,c[l>>2]|0)|0;g=(ue(c[G>>2]|0)|0)==100;d=c[G>>2]|0;if(!g){c[y>>2]=Zd(d)|0;J=c[y>>2]|0;i=K;return J|0}g=Ee(d,1)|0;j=s;c[j>>2]=g;c[j+4>>2]=C;j=Ee(c[G>>2]|0,2)|0;g=r;c[g>>2]=j;c[g+4>>2]=C;yl(c[G>>2]|0,3,q,(c[A>>2]|0)+40|0);if((c[(c[A>>2]|0)+40+4>>2]|0)<0){j=(c[A>>2]|0)+40|0;j=rR(c[j>>2]|0,c[j+4>>2]|0,-1,-1)|0;g=(c[A>>2]|0)+40|0;c[g>>2]=j;c[g+4>>2]=C}g=(c[A>>2]|0)+40|0;a[(c[A>>2]|0)+48>>0]=(c[g>>2]|0)==0&(c[g+4>>2]|0)==0&1;c[x>>2]=Be(c[G>>2]|0,4)|0;c[v>>2]=Ae(c[G>>2]|0,4)|0;g=q;c[H>>2]=zo(c[z>>2]|0,c[g>>2]|0,c[g+4>>2]|0,p)|0;if((c[H>>2]|0)==0&(c[p>>2]|0)!=0){c[o>>2]=0;c[t>>2]=0;c[H>>2]=am(c[z>>2]|0,c[r>>2]|0,c[r+4>>2]|0,o,t,0)|0;if(!(c[H>>2]|0)){c[H>>2]=so(u,c[o>>2]|0,c[t>>2]|0)|0;while(1){if(!((c[H>>2]|0)==0?(c[u>>2]|0)!=0:0))break;c[H>>2]=wo(u)|0}if((to(c[m>>2]|0,c[n>>2]|0,c[u+24>>2]|0,c[u+24+4>>2]|0)|0)<=0)c[p>>2]=0;xo(u)}Kd(c[o>>2]|0)}a:do if((c[H>>2]|0)==0&(c[p>>2]|0)!=0){c[w>>2]=a[c[v>>2]>>0];u=q;t=s;t=fR(c[u>>2]|0,c[u+4>>2]|0,c[t>>2]|0,c[t+4>>2]|0)|0;t=gR(t|0,C|0,1,0)|0;c[c[A>>2]>>2]=(t|0)/16|0;t=c[s+4>>2]|0;u=(c[A>>2]|0)+24|0;c[u>>2]=c[s>>2];c[u+4>>2]=t;u=q;t=c[u+4>>2]|0;s=(c[A>>2]|0)+32|0;c[s>>2]=c[u>>2];c[s+4>>2]=t;s=k;t=c[s+4>>2]|0;u=(c[A>>2]|0)+8|0;c[u>>2]=c[s>>2];c[u+4>>2]=t;c[(c[A>>2]|0)+16>>2]=c[l>>2];c[D>>2]=(c[w>>2]|0)+1;while(1){if((c[D>>2]|0)>=16)break;u=(c[A>>2]|0)+24|0;t=_(c[D>>2]|0,c[c[A>>2]>>2]|0)|0;t=gR(c[u>>2]|0,c[u+4>>2]|0,t|0,((t|0)<0)<<31>>31|0)|0;u=(c[A>>2]|0)+56+(c[D>>2]<<5)|0;c[u>>2]=t;c[u+4>>2]=C;c[D>>2]=(c[D>>2]|0)+1}c[F>>2]=(c[A>>2]|0)+56+(c[w>>2]<<5);u=(c[A>>2]|0)+24|0;t=_(c[c[A>>2]>>2]|0,c[w>>2]|0)|0;t=gR(c[u>>2]|0,c[u+4>>2]|0,t|0,((t|0)<0)<<31>>31|0)|0;u=c[F>>2]|0;c[u>>2]=t;c[u+4>>2]=C;if((c[x>>2]|0)>(c[(c[z>>2]|0)+224>>2]|0))d=c[x>>2]|0;else d=c[(c[z>>2]|0)+224>>2]|0;no((c[F>>2]|0)+20|0,d,H);if(!(c[H>>2]|0)){iR(c[(c[F>>2]|0)+20>>2]|0,c[v>>2]|0,c[x>>2]|0)|0;c[(c[F>>2]|0)+20+4>>2]=c[x>>2]}c[D>>2]=c[w>>2];while(1){if(!((c[D>>2]|0)>=0?(c[H>>2]|0)==0:0))break a;c[F>>2]=(c[A>>2]|0)+56+(c[D>>2]<<5);c[H>>2]=so(J,c[(c[F>>2]|0)+20>>2]|0,c[(c[F>>2]|0)+20+4>>2]|0)|0;while(1){if(!((c[J>>2]|0)!=0?(c[H>>2]|0)==0:0))break;c[H>>2]=wo(J)|0}no((c[F>>2]|0)+8|0,c[J+24+4>>2]|0,H);if((c[H>>2]|0)==0?(iR(c[(c[F>>2]|0)+8>>2]|0,c[J+24>>2]|0,c[J+24+4>>2]|0)|0,c[(c[F>>2]|0)+8+4>>2]=c[J+24+4>>2],(c[D>>2]|0)>0):0){c[B>>2]=0;c[E>>2]=0;c[F>>2]=(c[A>>2]|0)+56+((c[D>>2]|0)-1<<5);v=J+16|0;w=c[v+4>>2]|0;x=c[F>>2]|0;c[x>>2]=c[v>>2];c[x+4>>2]=w;x=J+16|0;c[H>>2]=am(c[z>>2]|0,c[x>>2]|0,c[x+4>>2]|0,B,E,0)|0;if((c[E>>2]|0)>(c[(c[z>>2]|0)+224>>2]|0))d=c[E>>2]|0;else d=c[(c[z>>2]|0)+224>>2]|0;no((c[F>>2]|0)+20|0,d,H);if(!(c[H>>2]|0)){iR(c[(c[F>>2]|0)+20>>2]|0,c[B>>2]|0,c[E>>2]|0)|0;c[(c[F>>2]|0)+20+4>>2]=c[E>>2]}Kd(c[B>>2]|0)}xo(J);c[D>>2]=(c[D>>2]|0)+-1}}while(0);c[I>>2]=Zd(c[G>>2]|0)|0;if(!(c[H>>2]|0))c[H>>2]=c[I>>2]}c[y>>2]=c[H>>2];J=c[y>>2]|0;i=K;return J|0}function ho(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+48|0;h=t+44|0;j=t+40|0;k=t;l=t+36|0;m=t+32|0;n=t+28|0;s=t+24|0;o=t+20|0;p=t+16|0;r=t+12|0;q=t+8|0;c[j>>2]=a;a=k;c[a>>2]=b;c[a+4>>2]=d;c[l>>2]=e;c[m>>2]=f;c[n>>2]=g;c[p>>2]=0;c[r>>2]=0;c[q>>2]=0;c[s>>2]=jl(c[j>>2]|0,29,r,0)|0;if(!(c[s>>2]|0)){g=k;Me(c[r>>2]|0,1,c[g>>2]|0,c[g+4>>2]|0)|0;g=c[(c[m>>2]|0)+4>>2]|0;Me(c[r>>2]|0,2,g,((g|0)<0)<<31>>31)|0;if(100==(ue(c[r>>2]|0)|0))c[p>>2]=De(c[r>>2]|0,0)|0;c[s>>2]=Zd(c[r>>2]|0)|0}if(c[s>>2]|0){c[h>>2]=c[s>>2];s=c[h>>2]|0;i=t;return s|0}c[s>>2]=jl(c[j>>2]|0,10,q,0)|0;if(!(c[s>>2]|0)){if(100==(ue(c[q>>2]|0)|0)){r=Ee(c[q>>2]|0,0)|0;g=(c[n>>2]|0)+24|0;c[g>>2]=r;c[g+4>>2]=C;g=(c[n>>2]|0)+24|0;g=fR(c[g>>2]|0,c[g+4>>2]|0,1,0)|0;r=(c[n>>2]|0)+32|0;c[r>>2]=g;c[r+4>>2]=C;r=c[p>>2]<<4;g=(c[n>>2]|0)+32|0;f=g;r=gR(c[f>>2]|0,c[f+4>>2]|0,r|0,((r|0)<0)<<31>>31|0)|0;c[g>>2]=r;c[g+4>>2]=C}c[s>>2]=Zd(c[q>>2]|0)|0}if(c[s>>2]|0){c[h>>2]=c[s>>2];s=c[h>>2]|0;i=t;return s|0}g=(c[n>>2]|0)+32|0;c[s>>2]=zl(c[j>>2]|0,c[g>>2]|0,c[g+4>>2]|0,0,0)|0;if(c[s>>2]|0){c[h>>2]=c[s>>2];s=c[h>>2]|0;i=t;return s|0}r=k;g=c[r+4>>2]|0;s=(c[n>>2]|0)+8|0;c[s>>2]=c[r>>2];c[s+4>>2]=g;c[c[n>>2]>>2]=c[p>>2];c[(c[n>>2]|0)+16>>2]=c[l>>2];c[o>>2]=0;while(1){if((c[o>>2]|0)>=16)break;s=(c[n>>2]|0)+24|0;g=_(c[o>>2]|0,c[c[n>>2]>>2]|0)|0;g=gR(c[s>>2]|0,c[s+4>>2]|0,g|0,((g|0)<0)<<31>>31|0)|0;s=(c[n>>2]|0)+56+(c[o>>2]<<5)|0;c[s>>2]=g;c[s+4>>2]=C;c[o>>2]=(c[o>>2]|0)+1}c[h>>2]=0;s=c[h>>2]|0;i=t;return s|0}function io(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;r=i;i=i+48|0;f=r+44|0;g=r+40|0;s=r+36|0;q=r+32|0;n=r+28|0;h=r+24|0;j=r+20|0;p=r+16|0;l=r+12|0;k=r+8|0;m=r+4|0;o=r;c[f>>2]=b;c[g>>2]=d;c[s>>2]=e;c[q>>2]=c[(c[s>>2]|0)+40>>2];c[n>>2]=c[(c[s>>2]|0)+44>>2];c[h>>2]=c[(c[s>>2]|0)+48>>2];c[j>>2]=c[(c[s>>2]|0)+52>>2];c[p>>2]=0;c[o>>2]=(c[g>>2]|0)+56;c[k>>2]=Gl(c[(c[o>>2]|0)+8>>2]|0,c[(c[o>>2]|0)+8+4>>2]|0,c[q>>2]|0,c[n>>2]|0)|0;c[m>>2]=(c[n>>2]|0)-(c[k>>2]|0);d=c[k>>2]|0;c[l>>2]=Dl(d,((d|0)<0)<<31>>31)|0;d=c[m>>2]|0;d=Dl(d,((d|0)<0)<<31>>31)|0;c[l>>2]=(c[l>>2]|0)+(d+(c[m>>2]|0));d=c[j>>2]|0;d=Dl(d,((d|0)<0)<<31>>31)|0;c[l>>2]=(c[l>>2]|0)+(d+(c[j>>2]|0));if((c[(c[o>>2]|0)+20+4>>2]|0)>0?((c[(c[o>>2]|0)+20+4>>2]|0)+(c[l>>2]|0)|0)>(c[(c[f>>2]|0)+224>>2]|0):0){s=c[o>>2]|0;c[p>>2]=zl(c[f>>2]|0,c[s>>2]|0,c[s+4>>2]|0,c[(c[o>>2]|0)+20>>2]|0,c[(c[o>>2]|0)+20+4>>2]|0)|0;s=(c[g>>2]|0)+4|0;c[s>>2]=(c[s>>2]|0)+1;if(!(c[p>>2]|0))c[p>>2]=yo(c[f>>2]|0,c[g>>2]|0,c[q>>2]|0,(c[k>>2]|0)+1|0)|0;s=c[o>>2]|0;d=s;d=gR(c[d>>2]|0,c[d+4>>2]|0,1,0)|0;c[s>>2]=d;c[s+4>>2]=C;c[(c[o>>2]|0)+8+4>>2]=0;c[(c[o>>2]|0)+20+4>>2]=0;c[m>>2]=c[n>>2];c[l>>2]=1;s=c[m>>2]|0;s=Dl(s,((s|0)<0)<<31>>31)|0;c[l>>2]=(c[l>>2]|0)+(s+(c[m>>2]|0));s=c[j>>2]|0;s=Dl(s,((s|0)<0)<<31>>31)|0;c[l>>2]=(c[l>>2]|0)+(s+(c[j>>2]|0))}d=c[l>>2]|0;s=(c[g>>2]|0)+40|0;e=s;d=gR(c[e>>2]|0,c[e+4>>2]|0,d|0,((d|0)<0)<<31>>31|0)|0;c[s>>2]=d;c[s+4>>2]=C;no((c[o>>2]|0)+20|0,(c[(c[o>>2]|0)+20+4>>2]|0)+(c[l>>2]|0)|0,p);if(c[p>>2]|0){s=c[p>>2]|0;i=r;return s|0}if(!(c[(c[o>>2]|0)+20+4>>2]|0)){c[(c[o>>2]|0)+20+4>>2]=1;a[c[(c[o>>2]|0)+20>>2]>>0]=0}c[p>>2]=vo((c[o>>2]|0)+20|0,(c[o>>2]|0)+8|0,c[q>>2]|0,c[n>>2]|0,c[h>>2]|0,c[j>>2]|0)|0;s=c[p>>2]|0;i=r;return s|0}function jo(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+48|0;g=s+44|0;h=s;j=s+40|0;k=s+36|0;l=s+32|0;n=s+28|0;q=s+24|0;p=s+20|0;m=s+16|0;r=s+12|0;o=s+8|0;c[g>>2]=a;a=h;c[a>>2]=b;c[a+4>>2]=d;c[j>>2]=e;c[k>>2]=f;c[n>>2]=0;c[q>>2]=0;c[l>>2]=(c[(c[j>>2]|0)+4>>2]|0)-1;while(1){if(!((c[l>>2]|0)>=0?(c[q>>2]|0)==0:0))break;c[p>>2]=0;c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[(c[j>>2]|0)+4>>2]|0))break;c[p>>2]=c[(c[c[j>>2]>>2]|0)+(c[m>>2]<<2)>>2];if((c[c[p>>2]>>2]|0)==(c[l>>2]|0))break;c[m>>2]=(c[m>>2]|0)+1}if(!(c[(c[p>>2]|0)+40>>2]|0)){c[q>>2]=Fl(c[g>>2]|0,c[p>>2]|0)|0;if(!(c[q>>2]|0)){f=h;c[q>>2]=oo(c[g>>2]|0,c[f>>2]|0,c[f+4>>2]|0,c[c[p>>2]>>2]|0)|0}c[c[k>>2]>>2]=0}else{c[r>>2]=c[(c[p>>2]|0)+64>>2];c[o>>2]=c[(c[p>>2]|0)+60>>2];f=h;c[q>>2]=po(c[g>>2]|0,c[f>>2]|0,c[f+4>>2]|0,c[c[p>>2]>>2]|0,c[r>>2]|0,c[o>>2]|0)|0;c[n>>2]=(c[n>>2]|0)+1}c[l>>2]=(c[l>>2]|0)+-1}if(c[q>>2]|0){f=c[n>>2]|0;r=c[k>>2]|0;c[r>>2]=f;r=c[q>>2]|0;i=s;return r|0}if((c[n>>2]|0)==(c[(c[j>>2]|0)+4>>2]|0)){f=c[n>>2]|0;r=c[k>>2]|0;c[r>>2]=f;r=c[q>>2]|0;i=s;return r|0}f=h;c[q>>2]=qo(c[g>>2]|0,c[f>>2]|0,c[f+4>>2]|0)|0;f=c[n>>2]|0;r=c[k>>2]|0;c[r>>2]=f;r=c[q>>2]|0;i=s;return r|0}function ko(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;g=k+16|0;h=k;j=k+12|0;l=k+8|0;c[g>>2]=a;a=h;c[a>>2]=b;c[a+4>>2]=d;c[j>>2]=e;c[l>>2]=f;no(c[g>>2]|0,(c[(c[g>>2]|0)+4>>2]|0)+20|0,c[l>>2]|0);if(c[c[l>>2]>>2]|0){i=k;return}l=h;l=El((c[c[g>>2]>>2]|0)+(c[(c[g>>2]|0)+4>>2]|0)|0,c[l>>2]|0,c[l+4>>2]|0)|0;f=(c[g>>2]|0)+4|0;c[f>>2]=(c[f>>2]|0)+l;f=c[j>>2]|0;f=El((c[c[g>>2]>>2]|0)+(c[(c[g>>2]|0)+4>>2]|0)|0,f,((f|0)<0)<<31>>31)|0;l=(c[g>>2]|0)+4|0;c[l>>2]=(c[l>>2]|0)+f;i=k;return}function lo(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;g=r+36|0;n=r+32|0;o=r+28|0;h=r+24|0;j=r+20|0;p=r+16|0;q=r+12|0;l=r+8|0;k=r+4|0;m=r;c[g>>2]=b;c[n>>2]=e;c[o>>2]=f;c[q>>2]=c[c[o>>2]>>2];c[j>>2]=15;while(1){if((c[j>>2]|0)<0)break;c[l>>2]=(c[n>>2]|0)+56+(c[j>>2]<<5);if((c[(c[l>>2]|0)+20+4>>2]|0)>0)break;Kd(c[(c[l>>2]|0)+20>>2]|0);Kd(c[(c[l>>2]|0)+8>>2]|0);c[j>>2]=(c[j>>2]|0)+-1}if((c[j>>2]|0)<0){i=r;return}if(!(c[j>>2]|0)){c[k>>2]=(c[n>>2]|0)+56+32+20;no(c[k>>2]|0,11,q);if(!(c[q>>2]|0)){a[c[c[k>>2]>>2]>>0]=1;e=(c[n>>2]|0)+56|0;e=1+(El((c[c[k>>2]>>2]|0)+1|0,c[e>>2]|0,c[e+4>>2]|0)|0)|0;c[(c[k>>2]|0)+4>>2]=e}c[j>>2]=1}c[p>>2]=(c[n>>2]|0)+56+(c[j>>2]<<5);c[h>>2]=0;while(1){if((c[h>>2]|0)>=(c[j>>2]|0))break;c[m>>2]=(c[n>>2]|0)+56+(c[h>>2]<<5);if((c[q>>2]|0)==0?(c[(c[m>>2]|0)+20+4>>2]|0)>0:0){e=c[m>>2]|0;c[q>>2]=zl(c[g>>2]|0,c[e>>2]|0,c[e+4>>2]|0,c[(c[m>>2]|0)+20>>2]|0,c[(c[m>>2]|0)+20+4>>2]|0)|0}Kd(c[(c[m>>2]|0)+20>>2]|0);Kd(c[(c[m>>2]|0)+8>>2]|0);c[h>>2]=(c[h>>2]|0)+1}if(!(c[q>>2]|0)){m=c[g>>2]|0;g=(c[n>>2]|0)+8|0;g=gR(c[g>>2]|0,c[g+4>>2]|0,1,0)|0;h=(c[n>>2]|0)+24|0;j=(c[n>>2]|0)+56|0;b=(c[n>>2]|0)+32|0;if(!(d[(c[n>>2]|0)+48>>0]|0)){l=(c[n>>2]|0)+40|0;k=c[l>>2]|0;l=c[l+4>>2]|0}else{k=0;l=0}c[q>>2]=Bl(m,g,C,c[(c[n>>2]|0)+16>>2]|0,c[h>>2]|0,c[h+4>>2]|0,c[j>>2]|0,c[j+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0,k,l,c[(c[p>>2]|0)+20>>2]|0,c[(c[p>>2]|0)+20+4>>2]|0)|0}Kd(c[(c[p>>2]|0)+20>>2]|0);Kd(c[(c[p>>2]|0)+8>>2]|0);c[c[o>>2]>>2]=c[q>>2];i=r;return}function mo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=i;i=i+16|0;h=g+12|0;d=g+8|0;e=g+4|0;f=g;c[h>>2]=a;c[d>>2]=b;c[e>>2]=0;c[f>>2]=jl(c[h>>2]|0,23,e,0)|0;if(c[f>>2]|0){h=c[f>>2]|0;i=g;return h|0}Le(c[e>>2]|0,1,1)|0;Je(c[e>>2]|0,2,c[c[d>>2]>>2]|0,c[(c[d>>2]|0)+4>>2]|0,0)|0;ue(c[e>>2]|0)|0;c[f>>2]=Zd(c[e>>2]|0)|0;h=c[f>>2]|0;i=g;return h|0}function no(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+16|0;f=k+12|0;g=k+8|0;j=k+4|0;h=k;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;if(c[c[g>>2]>>2]|0){i=k;return}if((c[f>>2]|0)<=(c[(c[e>>2]|0)+8>>2]|0)){i=k;return}c[j>>2]=c[f>>2];c[h>>2]=Ld(c[c[e>>2]>>2]|0,c[j>>2]|0)|0;if(c[h>>2]|0){c[(c[e>>2]|0)+8>>2]=c[j>>2];c[c[e>>2]>>2]=c[h>>2];i=k;return}else{c[c[g>>2]>>2]=7;i=k;return}}function oo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;l=k+20|0;f=k;g=k+16|0;j=k+12|0;h=k+8|0;c[l>>2]=a;a=f;c[a>>2]=b;c[a+4>>2]=d;c[g>>2]=e;c[h>>2]=0;c[j>>2]=jl(c[l>>2]|0,30,h,0)|0;if(c[j>>2]|0){l=c[j>>2]|0;i=k;return l|0}l=f;Me(c[h>>2]|0,1,c[l>>2]|0,c[l+4>>2]|0)|0;Le(c[h>>2]|0,2,c[g>>2]|0)|0;ue(c[h>>2]|0)|0;c[j>>2]=Zd(c[h>>2]|0)|0;l=c[j>>2]|0;i=k;return l|0}function po(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=i;i=i+112|0;h=B+104|0;j=B+24|0;k=B+100|0;l=B+96|0;m=B+92|0;y=B+88|0;A=B+76|0;p=B+64|0;q=B+16|0;r=B+8|0;s=B;x=B+60|0;z=B+56|0;o=B+52|0;u=B+48|0;n=B+44|0;t=B+40|0;w=B+36|0;v=B+32|0;c[h>>2]=a;a=j;c[a>>2]=b;c[a+4>>2]=d;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;c[y>>2]=0;c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;f=q;c[f>>2]=0;c[f+4>>2]=0;f=r;c[f>>2]=0;c[f+4>>2]=0;f=s;c[f>>2]=0;c[f+4>>2]=0;c[x>>2]=0;c[y>>2]=jl(c[h>>2]|0,32,x,0)|0;if(!(c[y>>2]|0)){f=j;Me(c[x>>2]|0,1,c[f>>2]|0,c[f+4>>2]|0)|0;Le(c[x>>2]|0,2,c[k>>2]|0)|0;if(100==(ue(c[x>>2]|0)|0)){c[o>>2]=Ae(c[x>>2]|0,4)|0;c[u>>2]=Be(c[x>>2]|0,4)|0;a=Ee(c[x>>2]|0,1)|0;f=s;c[f>>2]=a;c[f+4>>2]=C;c[y>>2]=ro(c[o>>2]|0,c[u>>2]|0,A,c[l>>2]|0,c[m>>2]|0,q)|0}c[z>>2]=Zd(c[x>>2]|0)|0;if(!(c[y>>2]|0))c[y>>2]=c[z>>2]}while(1){f=q;if(!((c[y>>2]|0)==0?(c[f>>2]|0)!=0|(c[f+4>>2]|0)!=0:0))break;c[n>>2]=0;c[t>>2]=0;x=q;z=c[x+4>>2]|0;f=r;c[f>>2]=c[x>>2];c[f+4>>2]=z;f=q;c[y>>2]=am(c[h>>2]|0,c[f>>2]|0,c[f+4>>2]|0,n,t,0)|0;if(!(c[y>>2]|0))c[y>>2]=ro(c[n>>2]|0,c[t>>2]|0,p,c[l>>2]|0,c[m>>2]|0,q)|0;if(!(c[y>>2]|0)){f=r;c[y>>2]=zl(c[h>>2]|0,c[f>>2]|0,c[f+4>>2]|0,c[p>>2]|0,c[p+4>>2]|0)|0}Kd(c[n>>2]|0)}f=r;if((c[y>>2]|0)==0&((c[f>>2]|0)!=0|(c[f+4>>2]|0)!=0)?(c[w>>2]=0,c[y>>2]=jl(c[h>>2]|0,17,w,0)|0,(c[y>>2]|0)==0):0){z=s;Me(c[w>>2]|0,1,c[z>>2]|0,c[z+4>>2]|0)|0;z=c[w>>2]|0;f=r;f=fR(c[f>>2]|0,c[f+4>>2]|0,1,0)|0;Me(z,2,f,C)|0;ue(c[w>>2]|0)|0;c[y>>2]=Zd(c[w>>2]|0)|0}if(c[y>>2]|0){f=c[A>>2]|0;Kd(f);f=c[p>>2]|0;Kd(f);f=c[y>>2]|0;i=B;return f|0}c[v>>2]=0;c[y>>2]=jl(c[h>>2]|0,33,v,0)|0;if(c[y>>2]|0){f=c[A>>2]|0;Kd(f);f=c[p>>2]|0;Kd(f);f=c[y>>2]|0;i=B;return f|0}f=r;Me(c[v>>2]|0,1,c[f>>2]|0,c[f+4>>2]|0)|0;Je(c[v>>2]|0,2,c[A>>2]|0,c[A+4>>2]|0,0)|0;f=j;Me(c[v>>2]|0,3,c[f>>2]|0,c[f+4>>2]|0)|0;Le(c[v>>2]|0,4,c[k>>2]|0)|0;ue(c[v>>2]|0)|0;c[y>>2]=Zd(c[v>>2]|0)|0;f=c[A>>2]|0;Kd(f);f=c[p>>2]|0;Kd(f);f=c[y>>2]|0;i=B;return f|0}function qo(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+48|0;f=s+44|0;g=s;p=s+40|0;h=s+36|0;m=s+32|0;l=s+28|0;k=s+24|0;n=s+20|0;o=s+16|0;q=s+12|0;j=s+8|0;c[f>>2]=b;b=g;c[b>>2]=d;c[b+4>>2]=e;c[h>>2]=0;c[m>>2]=0;c[l>>2]=0;c[n>>2]=0;c[o>>2]=0;c[p>>2]=jl(c[f>>2]|0,35,n,0)|0;if(!(c[p>>2]|0)){b=g;Me(c[n>>2]|0,1,c[b>>2]|0,c[b+4>>2]|0)|0;while(1){if(100!=(ue(c[n>>2]|0)|0))break;if((c[m>>2]|0)>=(c[l>>2]|0)){c[l>>2]=(c[l>>2]|0)+16;c[j>>2]=Ld(c[h>>2]|0,c[l>>2]<<2)|0;if(!(c[j>>2]|0)){r=6;break}c[h>>2]=c[j>>2]}e=De(c[n>>2]|0,0)|0;b=c[m>>2]|0;c[m>>2]=b+1;c[(c[h>>2]|0)+(b<<2)>>2]=e}if((r|0)==6)c[p>>2]=7;c[q>>2]=Zd(c[n>>2]|0)|0;if(!(c[p>>2]|0))c[p>>2]=c[q>>2]}if(!(c[p>>2]|0))c[p>>2]=jl(c[f>>2]|0,31,o,0)|0;if(!(c[p>>2]|0)){r=g;Me(c[o>>2]|0,2,c[r>>2]|0,c[r+4>>2]|0)|0}a[(c[f>>2]|0)+232>>0]=1;c[k>>2]=0;while(1){if(c[p>>2]|0){r=21;break}if((c[k>>2]|0)>=(c[m>>2]|0)){r=21;break}if((c[(c[h>>2]|0)+(c[k>>2]<<2)>>2]|0)!=(c[k>>2]|0)){Le(c[o>>2]|0,3,c[(c[h>>2]|0)+(c[k>>2]<<2)>>2]|0)|0;Le(c[o>>2]|0,1,c[k>>2]|0)|0;ue(c[o>>2]|0)|0;c[p>>2]=Zd(c[o>>2]|0)|0}c[k>>2]=(c[k>>2]|0)+1}if((r|0)==21){a[(c[f>>2]|0)+232>>0]=0;Kd(c[h>>2]|0);i=s;return c[p>>2]|0}return 0}function ro(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=i;i=i+112|0;j=w+96|0;k=w+92|0;l=w+88|0;m=w+84|0;n=w+80|0;o=w+76|0;p=w+72|0;t=w;r=w+60|0;s=w+56|0;q=w+52|0;u=w+48|0;c[k>>2]=b;c[l>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[s>>2]=0;c[q>>2]=(a[c[k>>2]>>0]|0)==0&1;no(c[m>>2]|0,c[l>>2]|0,s);if(c[s>>2]|0){c[j>>2]=c[s>>2];v=c[j>>2]|0;i=w;return v|0}c[(c[m>>2]|0)+4>>2]=0;c[s>>2]=so(t,c[k>>2]|0,c[l>>2]|0)|0;while(1){if(!((c[s>>2]|0)==0?(c[t>>2]|0)!=0:0))break;if(!(c[(c[m>>2]|0)+4>>2]|0)){c[u>>2]=to(c[t+24>>2]|0,c[t+24+4>>2]|0,c[n>>2]|0,c[o>>2]|0)|0;if((c[u>>2]|0)>=0?!((c[q>>2]|0)==0&(c[u>>2]|0)==0):0){h=t+16|0;uo(c[m>>2]|0,a[c[k>>2]>>0]|0,c[h>>2]|0,c[h+4>>2]|0);h=t+16|0;f=c[h+4>>2]|0;v=c[p>>2]|0;c[v>>2]=c[h>>2];c[v+4>>2]=f;v=9}}else v=9;if((v|0)==9?(v=0,c[s>>2]=vo(c[m>>2]|0,r,c[t+24>>2]|0,c[t+24+4>>2]|0,c[t+36>>2]|0,c[t+40>>2]|0)|0,(c[s>>2]|0)!=0):0)break;c[s>>2]=wo(t)|0}if(!(c[(c[m>>2]|0)+4>>2]|0)){u=t+16|0;uo(c[m>>2]|0,a[c[k>>2]>>0]|0,c[u>>2]|0,c[u+4>>2]|0);u=t+16|0;f=c[u+4>>2]|0;v=c[p>>2]|0;c[v>>2]=c[u>>2];c[v+4>>2]=f}xo(t);Kd(c[r>>2]|0);c[j>>2]=c[s>>2];v=c[j>>2]|0;i=w;return v|0}function so(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;j=i;i=i+16|0;h=j+8|0;f=j+4|0;g=j;c[h>>2]=b;c[f>>2]=d;c[g>>2]=e;d=c[h>>2]|0;e=d+48|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));c[c[h>>2]>>2]=c[f>>2];c[(c[h>>2]|0)+4>>2]=c[g>>2];d=c[h>>2]|0;if(a[c[c[h>>2]>>2]>>0]|0){g=1+(Ul((c[d>>2]|0)+1|0,(c[h>>2]|0)+16|0)|0)|0;c[(c[h>>2]|0)+8>>2]=g;h=c[h>>2]|0;h=wo(h)|0;i=j;return h|0}else{c[d+8>>2]=1;h=c[h>>2]|0;h=wo(h)|0;i=j;return h|0}return 0}function to(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;j=i;i=i+32|0;m=j+20|0;f=j+16|0;l=j+12|0;g=j+8|0;k=j+4|0;h=j;c[m>>2]=a;c[f>>2]=b;c[l>>2]=d;c[g>>2]=e;c[k>>2]=(c[f>>2]|0)<(c[g>>2]|0)?c[f>>2]|0:c[g>>2]|0;c[h>>2]=vQ(c[m>>2]|0,c[l>>2]|0,c[k>>2]|0)|0;if(c[h>>2]|0){m=c[h>>2]|0;i=j;return m|0}c[h>>2]=(c[f>>2]|0)-(c[g>>2]|0);m=c[h>>2]|0;i=j;return m|0}function uo(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;j=i;i=i+16|0;g=j+12|0;k=j+8|0;h=j;c[g>>2]=b;c[k>>2]=d;b=h;c[b>>2]=e;c[b+4>>2]=f;a[c[c[g>>2]>>2]>>0]=c[k>>2];b=h;e=c[g>>2]|0;if((c[b>>2]|0)!=0|(c[b+4>>2]|0)!=0){k=h;k=1+(El((c[e>>2]|0)+1|0,c[k>>2]|0,c[k+4>>2]|0)|0)|0;c[(c[g>>2]|0)+4>>2]=k;i=j;return}else{c[e+4>>2]=1;i=j;return}}function vo(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+48|0;h=t+40|0;j=t+36|0;k=t+32|0;l=t+28|0;m=t+24|0;n=t+20|0;o=t+16|0;s=t+12|0;p=t+8|0;q=t+4|0;r=t;c[j>>2]=a;c[k>>2]=b;c[l>>2]=d;c[m>>2]=e;c[n>>2]=f;c[o>>2]=g;c[s>>2]=0;c[p>>2]=(c[(c[k>>2]|0)+4>>2]|0)==0&1;no(c[k>>2]|0,c[m>>2]|0,s);if(c[s>>2]|0){c[h>>2]=c[s>>2];d=c[h>>2]|0;i=t;return d|0}c[q>>2]=Gl(c[c[k>>2]>>2]|0,c[(c[k>>2]|0)+4>>2]|0,c[l>>2]|0,c[m>>2]|0)|0;c[r>>2]=(c[m>>2]|0)-(c[q>>2]|0);iR(c[c[k>>2]>>2]|0,c[l>>2]|0,c[m>>2]|0)|0;c[(c[k>>2]|0)+4>>2]=c[m>>2];if(!(c[p>>2]|0)){s=c[q>>2]|0;s=El((c[c[j>>2]>>2]|0)+(c[(c[j>>2]|0)+4>>2]|0)|0,s,((s|0)<0)<<31>>31)|0;d=(c[j>>2]|0)+4|0;c[d>>2]=(c[d>>2]|0)+s}s=c[r>>2]|0;s=El((c[c[j>>2]>>2]|0)+(c[(c[j>>2]|0)+4>>2]|0)|0,s,((s|0)<0)<<31>>31)|0;d=(c[j>>2]|0)+4|0;c[d>>2]=(c[d>>2]|0)+s;iR((c[c[j>>2]>>2]|0)+(c[(c[j>>2]|0)+4>>2]|0)|0,(c[l>>2]|0)+(c[q>>2]|0)|0,c[r>>2]|0)|0;d=(c[j>>2]|0)+4|0;c[d>>2]=(c[d>>2]|0)+(c[r>>2]|0);if(c[n>>2]|0){s=c[o>>2]|0;s=El((c[c[j>>2]>>2]|0)+(c[(c[j>>2]|0)+4>>2]|0)|0,s,((s|0)<0)<<31>>31)|0;d=(c[j>>2]|0)+4|0;c[d>>2]=(c[d>>2]|0)+s;iR((c[c[j>>2]>>2]|0)+(c[(c[j>>2]|0)+4>>2]|0)|0,c[n>>2]|0,c[o>>2]|0)|0;d=(c[j>>2]|0)+4|0;c[d>>2]=(c[d>>2]|0)+(c[o>>2]|0)}c[h>>2]=0;d=c[h>>2]|0;i=t;return d|0}function wo(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,j=0,k=0;j=i;i=i+32|0;g=j+16|0;b=j+12|0;e=j+8|0;f=j+4|0;h=j;c[g>>2]=a;c[b>>2]=(c[(c[g>>2]|0)+24+4>>2]|0)==0&1;c[e>>2]=0;c[f>>2]=0;c[h>>2]=0;a=(c[g>>2]|0)+16|0;if(((c[a>>2]|0)!=0|(c[a+4>>2]|0)!=0)&(c[b>>2]|0)==0){a=(c[g>>2]|0)+16|0;k=a;k=gR(c[k>>2]|0,c[k+4>>2]|0,1,0)|0;c[a>>2]=k;c[a+4>>2]=C}if((c[(c[g>>2]|0)+8>>2]|0)>=(c[(c[g>>2]|0)+4>>2]|0)){c[c[g>>2]>>2]=0;k=c[h>>2]|0;i=j;return k|0}if(!(c[b>>2]|0)){b=(c[c[g>>2]>>2]|0)+(c[(c[g>>2]|0)+8>>2]|0)|0;if((d[(c[c[g>>2]>>2]|0)+(c[(c[g>>2]|0)+8>>2]|0)>>0]|0)&128)b=Vl(b,e)|0;else{c[e>>2]=d[b>>0];b=1}k=(c[g>>2]|0)+8|0;c[k>>2]=(c[k>>2]|0)+b}b=(c[c[g>>2]>>2]|0)+(c[(c[g>>2]|0)+8>>2]|0)|0;if((d[(c[c[g>>2]>>2]|0)+(c[(c[g>>2]|0)+8>>2]|0)>>0]|0)&128)b=Vl(b,f)|0;else{c[f>>2]=d[b>>0];b=1}k=(c[g>>2]|0)+8|0;c[k>>2]=(c[k>>2]|0)+b;no((c[g>>2]|0)+24|0,(c[e>>2]|0)+(c[f>>2]|0)|0,h);if(c[h>>2]|0){k=c[h>>2]|0;i=j;return k|0}iR((c[(c[g>>2]|0)+24>>2]|0)+(c[e>>2]|0)|0,(c[c[g>>2]>>2]|0)+(c[(c[g>>2]|0)+8>>2]|0)|0,c[f>>2]|0)|0;c[(c[g>>2]|0)+24+4>>2]=(c[e>>2]|0)+(c[f>>2]|0);k=(c[g>>2]|0)+8|0;c[k>>2]=(c[k>>2]|0)+(c[f>>2]|0);k=(c[g>>2]|0)+16|0;if(!((c[k>>2]|0)==0&(c[k+4>>2]|0)==0)){k=c[h>>2]|0;i=j;return k|0}b=(c[c[g>>2]>>2]|0)+(c[(c[g>>2]|0)+8>>2]|0)|0;if((d[(c[c[g>>2]>>2]|0)+(c[(c[g>>2]|0)+8>>2]|0)>>0]|0)&128)b=Vl(b,(c[g>>2]|0)+40|0)|0;else{c[(c[g>>2]|0)+40>>2]=d[b>>0];b=1}k=(c[g>>2]|0)+8|0;c[k>>2]=(c[k>>2]|0)+b;c[(c[g>>2]|0)+36>>2]=(c[c[g>>2]>>2]|0)+(c[(c[g>>2]|0)+8>>2]|0);k=(c[g>>2]|0)+8|0;c[k>>2]=(c[k>>2]|0)+(c[(c[g>>2]|0)+40>>2]|0);k=c[h>>2]|0;i=j;return k|0}function xo(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;Kd(c[(c[d>>2]|0)+24>>2]|0);i=b;return}function yo(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+64|0;t=v+60|0;g=v+56|0;h=v+52|0;j=v+48|0;k=v+44|0;n=v+8|0;l=v+40|0;m=v;s=v+36|0;u=v+32|0;o=v+28|0;q=v+24|0;p=v+20|0;r=v+16|0;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[k>>2]=f;b=(c[h>>2]|0)+56|0;d=c[b+4>>2]|0;e=n;c[e>>2]=c[b>>2];c[e+4>>2]=d;c[l>>2]=1;while(1){if((c[l>>2]|0)>=16){g=16;break}e=m;c[e>>2]=0;c[e+4>>2]=0;c[s>>2]=(c[h>>2]|0)+56+(c[l>>2]<<5);c[u>>2]=0;c[o>>2]=Gl(c[(c[s>>2]|0)+8>>2]|0,c[(c[s>>2]|0)+8+4>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;c[q>>2]=(c[k>>2]|0)-(c[o>>2]|0);e=c[o>>2]|0;c[p>>2]=Dl(e,((e|0)<0)<<31>>31)|0;e=c[q>>2]|0;e=Dl(e,((e|0)<0)<<31>>31)|0;c[p>>2]=(c[p>>2]|0)+(e+(c[q>>2]|0));if((c[(c[s>>2]|0)+8+4>>2]|0)!=0?((c[(c[s>>2]|0)+20+4>>2]|0)+(c[p>>2]|0)|0)>(c[(c[g>>2]|0)+224>>2]|0):0){d=c[s>>2]|0;c[u>>2]=zl(c[g>>2]|0,c[d>>2]|0,c[d+4>>2]|0,c[(c[s>>2]|0)+20>>2]|0,c[(c[s>>2]|0)+20+4>>2]|0)|0;a[c[(c[s>>2]|0)+20>>2]>>0]=c[l>>2];d=(c[(c[s>>2]|0)+20>>2]|0)+1|0;b=n;b=gR(c[b>>2]|0,c[b+4>>2]|0,1,0)|0;b=1+(El(d,b,C)|0)|0;c[(c[s>>2]|0)+20+4>>2]=b;b=c[s>>2]|0;d=c[b+4>>2]|0;e=m;c[e>>2]=c[b>>2];c[e+4>>2]=d;e=c[s>>2]|0;d=e;d=gR(c[d>>2]|0,c[d+4>>2]|0,1,0)|0;c[e>>2]=d;c[e+4>>2]=C;c[(c[s>>2]|0)+8+4>>2]=0}else{c[r>>2]=(c[s>>2]|0)+20;if((c[(c[r>>2]|0)+4>>2]|0)==0?(no(c[r>>2]|0,c[(c[g>>2]|0)+224>>2]|0,u),(c[u>>2]|0)==0):0){a[c[c[r>>2]>>2]>>0]=c[l>>2];e=n;e=1+(El((c[c[r>>2]>>2]|0)+1|0,c[e>>2]|0,c[e+4>>2]|0)|0)|0;c[(c[r>>2]|0)+4>>2]=e}no(c[r>>2]|0,(c[(c[r>>2]|0)+4>>2]|0)+(c[p>>2]|0)|0,u);no((c[s>>2]|0)+8|0,c[k>>2]|0,u);if(!(c[u>>2]|0)){if(c[(c[s>>2]|0)+8+4>>2]|0){d=c[o>>2]|0;d=El((c[c[r>>2]>>2]|0)+(c[(c[r>>2]|0)+4>>2]|0)|0,d,((d|0)<0)<<31>>31)|0;e=(c[r>>2]|0)+4|0;c[e>>2]=(c[e>>2]|0)+d}d=c[q>>2]|0;d=El((c[c[r>>2]>>2]|0)+(c[(c[r>>2]|0)+4>>2]|0)|0,d,((d|0)<0)<<31>>31)|0;e=(c[r>>2]|0)+4|0;c[e>>2]=(c[e>>2]|0)+d;iR((c[c[r>>2]>>2]|0)+(c[(c[r>>2]|0)+4>>2]|0)|0,(c[j>>2]|0)+(c[o>>2]|0)|0,c[q>>2]|0)|0;e=(c[r>>2]|0)+4|0;c[e>>2]=(c[e>>2]|0)+(c[q>>2]|0);iR(c[(c[s>>2]|0)+8>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;c[(c[s>>2]|0)+8+4>>2]=c[k>>2]}}e=m;if((c[u>>2]|0)!=0|(c[e>>2]|0)==0&(c[e+4>>2]|0)==0){g=14;break}b=m;d=c[b+4>>2]|0;e=n;c[e>>2]=c[b>>2];c[e+4>>2]=d;c[l>>2]=(c[l>>2]|0)+1}if((g|0)==14){c[t>>2]=c[u>>2];u=c[t>>2]|0;i=v;return u|0}else if((g|0)==16){c[t>>2]=0;u=c[t>>2]|0;i=v;return u|0}return 0}function zo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;l=i;i=i+32|0;m=l+24|0;f=l;g=l+20|0;h=l+16|0;j=l+12|0;k=l+8|0;c[m>>2]=a;a=f;c[a>>2]=b;c[a+4>>2]=d;c[g>>2]=e;c[h>>2]=0;c[j>>2]=0;c[k>>2]=jl(c[m>>2]|0,34,j,0)|0;if(c[k>>2]|0){e=c[h>>2]|0;m=c[g>>2]|0;c[m>>2]=e;m=c[k>>2]|0;i=l;return m|0}m=f;Me(c[j>>2]|0,1,c[m>>2]|0,c[m+4>>2]|0)|0;if(100==(ue(c[j>>2]|0)|0))c[h>>2]=1;c[k>>2]=Zd(c[j>>2]|0)|0;e=c[h>>2]|0;m=c[g>>2]|0;c[m>>2]=e;m=c[k>>2]|0;i=l;return m|0}function Ao(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=i;i=i+64|0;u=t+48|0;g=t+44|0;h=t+40|0;j=t+36|0;q=t+32|0;s=t+28|0;o=t+24|0;l=t+20|0;k=t+16|0;p=t+12|0;m=t+8|0;r=t+4|0;n=t;c[u>>2]=b;c[g>>2]=d;c[h>>2]=e;c[j>>2]=f;c[q>>2]=c[u>>2];c[s>>2]=0;c[o>>2]=0;c[l>>2]=0;c[k>>2]=0;c[p>>2]=0;c[m>>2]=0;if(((c[g>>2]|0)>1?(fe(c[c[h>>2]>>2]|0)|0)==5:0)?(fe(c[(c[h>>2]|0)+((c[(c[q>>2]|0)+24>>2]|0)+2<<2)>>2]|0)|0)!=5:0){c[s>>2]=Bo(c[q>>2]|0,c[(c[h>>2]|0)+((c[(c[q>>2]|0)+24>>2]|0)+2<<2)>>2]|0)|0;u=c[k>>2]|0;Kd(u);u=c[q>>2]|0;sm(u);u=c[s>>2]|0;i=t;return u|0}if((c[g>>2]|0)>1?(de(c[(c[h>>2]|0)+(2+(c[(c[q>>2]|0)+24>>2]|0)+2<<2)>>2]|0)|0)<0:0){c[s>>2]=19;u=c[k>>2]|0;Kd(u);u=c[q>>2]|0;sm(u);u=c[s>>2]|0;i=t;return u|0}c[k>>2]=Id((c[(c[q>>2]|0)+24>>2]|0)+1<<2<<1)|0;if(!(c[k>>2]|0)){c[s>>2]=7;u=c[k>>2]|0;Kd(u);u=c[q>>2]|0;sm(u);u=c[s>>2]|0;i=t;return u|0}c[l>>2]=(c[k>>2]|0)+((c[(c[q>>2]|0)+24>>2]|0)+1<<2);kR(c[k>>2]|0,0,(c[(c[q>>2]|0)+24>>2]|0)+1<<2<<1|0)|0;c[s>>2]=Co(c[q>>2]|0)|0;if(c[s>>2]|0){u=c[k>>2]|0;Kd(u);u=c[q>>2]|0;sm(u);u=c[s>>2]|0;i=t;return u|0}do if((c[g>>2]|0)>1?(c[(c[q>>2]|0)+40>>2]|0)==0:0){c[r>>2]=c[(c[h>>2]|0)+(3+(c[(c[q>>2]|0)+24>>2]|0)<<2)>>2];if((fe(c[r>>2]|0)|0)==5)c[r>>2]=c[(c[h>>2]|0)+4>>2];if((fe(c[r>>2]|0)|0)!=5){if((fe(c[c[h>>2]>>2]|0)|0)!=5?(f=ee(c[c[h>>2]>>2]|0)|0,
  74. u=C,b=ee(c[r>>2]|0)|0,!((f|0)!=(b|0)|(u|0)!=(C|0))):0)break;u=(gf(c[(c[q>>2]|0)+12>>2]|0)|0)==5;e=c[q>>2]|0;if(u){c[s>>2]=Do(e,c[r>>2]|0,p,c[k>>2]|0)|0;break}else{c[s>>2]=Eo(e,c[h>>2]|0,c[j>>2]|0)|0;c[m>>2]=1;break}}}while(0);if(c[s>>2]|0){u=c[k>>2]|0;Kd(u);u=c[q>>2]|0;sm(u);u=c[s>>2]|0;i=t;return u|0}if((fe(c[c[h>>2]>>2]|0)|0)!=5){c[s>>2]=Do(c[q>>2]|0,c[c[h>>2]>>2]|0,p,c[k>>2]|0)|0;c[o>>2]=1}if((c[g>>2]|0)>1&(c[s>>2]|0)==0){c[n>>2]=de(c[(c[h>>2]|0)+(2+(c[(c[q>>2]|0)+24>>2]|0)+2<<2)>>2]|0)|0;if(((c[m>>2]|0)==0?(c[s>>2]=Eo(c[q>>2]|0,c[h>>2]|0,c[j>>2]|0)|0,(c[s>>2]|0)==19):0)?(c[(c[q>>2]|0)+40>>2]|0)==0:0)c[s>>2]=267;do if(!(c[s>>2]|0)){if((c[o>>2]|0)!=0?(r=c[j>>2]|0,u=(c[q>>2]|0)+264|0,!((c[r>>2]|0)!=(c[u>>2]|0)?1:(c[r+4>>2]|0)!=(c[u+4>>2]|0))):0)break;u=c[j>>2]|0;c[s>>2]=Fo(c[q>>2]|0,0,c[n>>2]|0,c[u>>2]|0,c[u+4>>2]|0)|0}while(0);if(!(c[s>>2]|0))c[s>>2]=Go(c[q>>2]|0,c[n>>2]|0,c[h>>2]|0,c[l>>2]|0)|0;if(a[(c[q>>2]|0)+230>>0]|0)Ho(s,c[q>>2]|0,c[l>>2]|0);c[p>>2]=(c[p>>2]|0)+1}if(!(a[(c[q>>2]|0)+228>>0]|0)){u=c[k>>2]|0;Kd(u);u=c[q>>2]|0;sm(u);u=c[s>>2]|0;i=t;return u|0}Io(s,c[q>>2]|0,c[l>>2]|0,c[k>>2]|0,c[p>>2]|0);u=c[k>>2]|0;Kd(u);u=c[q>>2]|0;sm(u);u=c[s>>2]|0;i=t;return u|0}function Bo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;d=k+20|0;e=k+16|0;l=k+12|0;g=k+8|0;h=k+4|0;f=k;c[e>>2]=a;c[l>>2]=b;c[h>>2]=ae(c[l>>2]|0)|0;c[f>>2]=be(c[l>>2]|0)|0;if(!(c[h>>2]|0)){c[d>>2]=7;l=c[d>>2]|0;i=k;return l|0}if((c[f>>2]|0)==8?0==(zd(c[h>>2]|0,21373,8)|0):0)c[g>>2]=Nn(c[e>>2]|0,0)|0;else j=6;do if((j|0)==6){if((c[f>>2]|0)==7?0==(zd(c[h>>2]|0,24342,7)|0):0){c[g>>2]=So(c[e>>2]|0)|0;break}if((c[f>>2]|0)==15?0==(zd(c[h>>2]|0,24350,15)|0):0){c[g>>2]=To(c[e>>2]|0)|0;break}if((c[f>>2]|0)>6?0==(zd(c[h>>2]|0,24366,6)|0):0){c[g>>2]=Uo(c[e>>2]|0,(c[h>>2]|0)+6|0)|0;break}if((c[f>>2]|0)>10?0==(zd(c[h>>2]|0,24373,10)|0):0){c[g>>2]=Vo(c[e>>2]|0,(c[h>>2]|0)+10|0)|0;break}c[g>>2]=1}while(0);c[d>>2]=c[g>>2];l=c[d>>2]|0;i=k;return l|0}function Co(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;b=f+8|0;e=f+4|0;d=f;c[b>>2]=a;c[e>>2]=0;if((c[(c[b>>2]|0)+260>>2]|0)==0?(c[e>>2]=jl(c[b>>2]|0,16,d,0)|0,(c[e>>2]|0)==0):0){Ne(c[d>>2]|0,1)|0;ue(c[d>>2]|0)|0;c[e>>2]=Zd(c[d>>2]|0)|0}i=f;return c[e>>2]|0}function Do(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;n=i;i=i+32|0;g=n+24|0;h=n+20|0;j=n+16|0;k=n+12|0;m=n+8|0;o=n+4|0;l=n;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[k>>2]=f;c[m>>2]=0;c[o>>2]=0;No(m,c[g>>2]|0,c[h>>2]|0,c[k>>2]|0,o);if(!((c[o>>2]|0)!=0&(c[m>>2]|0)==0)){o=c[m>>2]|0;i=n;return o|0}c[l>>2]=0;c[m>>2]=Oo(c[g>>2]|0,c[h>>2]|0,l)|0;if(c[m>>2]|0){o=c[m>>2]|0;i=n;return o|0}if(c[l>>2]|0){c[m>>2]=Po(c[g>>2]|0,1)|0;c[c[j>>2]>>2]=0;kR(c[k>>2]|0,0,(c[(c[g>>2]|0)+24>>2]|0)+1<<2<<1|0)|0;o=c[m>>2]|0;i=n;return o|0}c[c[j>>2]>>2]=(c[c[j>>2]>>2]|0)-1;if(!(c[(c[g>>2]|0)+40>>2]|0))Qo(m,c[g>>2]|0,0,h);if(!(a[(c[g>>2]|0)+230>>0]|0)){o=c[m>>2]|0;i=n;return o|0}Qo(m,c[g>>2]|0,19,h);o=c[m>>2]|0;i=n;return o|0}function Eo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;e=m+24|0;f=m+20|0;g=m+16|0;h=m+12|0;l=m+8|0;j=m+4|0;k=m;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;b=c[f>>2]|0;if(c[(c[f>>2]|0)+40>>2]|0){c[k>>2]=c[(c[g>>2]|0)+((c[b+24>>2]|0)+3<<2)>>2];if((fe(c[k>>2]|0)|0)==5)c[k>>2]=c[(c[g>>2]|0)+4>>2];if((fe(c[k>>2]|0)|0)!=1){c[e>>2]=19;l=c[e>>2]|0;i=m;return l|0}else{k=ee(c[k>>2]|0)|0;l=c[h>>2]|0;c[l>>2]=k;c[l+4>>2]=C;c[e>>2]=0;l=c[e>>2]|0;i=m;return l|0}}c[l>>2]=jl(b,18,j,(c[g>>2]|0)+4|0)|0;if((c[l>>2]|0)==0?(c[(c[f>>2]|0)+44>>2]|0)!=0:0){d=c[j>>2]|0;k=(c[(c[f>>2]|0)+24>>2]|0)+2|0;c[l>>2]=Le(d,k,de(c[(c[g>>2]|0)+((c[(c[f>>2]|0)+24>>2]|0)+4<<2)>>2]|0)|0)|0}if(c[l>>2]|0){c[e>>2]=c[l>>2];l=c[e>>2]|0;i=m;return l|0}if(5!=(fe(c[(c[g>>2]|0)+(3+(c[(c[f>>2]|0)+24>>2]|0)<<2)>>2]|0)|0)){if(5==(fe(c[c[g>>2]>>2]|0)|0)?5!=(fe(c[(c[g>>2]|0)+4>>2]|0)|0):0){c[e>>2]=1;l=c[e>>2]|0;i=m;return l|0}c[l>>2]=Pe(c[j>>2]|0,1,c[(c[g>>2]|0)+(3+(c[(c[f>>2]|0)+24>>2]|0)<<2)>>2]|0)|0;if(c[l>>2]|0){c[e>>2]=c[l>>2];l=c[e>>2]|0;i=m;return l|0}}ue(c[j>>2]|0)|0;c[l>>2]=Zd(c[j>>2]|0)|0;j=of(c[(c[f>>2]|0)+12>>2]|0)|0;k=c[h>>2]|0;c[k>>2]=j;c[k+4>>2]=C;c[e>>2]=c[l>>2];l=c[e>>2]|0;i=m;return l|0}function Fo(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;g=o+24|0;h=o+20|0;j=o+16|0;k=o+12|0;l=o;m=o+8|0;c[h>>2]=a;c[j>>2]=b;c[k>>2]=d;d=l;c[d>>2]=e;c[d+4>>2]=f;d=l;f=c[d+4>>2]|0;a=(c[h>>2]|0)+264|0;b=c[a+4>>2]|0;do if(!((f|0)<(b|0)|((f|0)==(b|0)?(c[d>>2]|0)>>>0<(c[a>>2]|0)>>>0:0))){d=l;a=(c[h>>2]|0)+264|0;if(((c[d>>2]|0)==(c[a>>2]|0)?(c[d+4>>2]|0)==(c[a+4>>2]|0):0)?(c[(c[h>>2]|0)+276>>2]|0)==0:0){n=6;break}if(!((c[(c[h>>2]|0)+272>>2]|0)==(c[k>>2]|0)?(c[(c[h>>2]|0)+260>>2]|0)<=(c[(c[h>>2]|0)+256>>2]|0):0))n=6}else n=6;while(0);if((n|0)==6?(c[m>>2]=gl(c[h>>2]|0)|0,(c[m>>2]|0)!=0):0){c[g>>2]=c[m>>2];n=c[g>>2]|0;i=o;return n|0}a=l;m=c[a+4>>2]|0;n=(c[h>>2]|0)+264|0;c[n>>2]=c[a>>2];c[n+4>>2]=m;c[(c[h>>2]|0)+272>>2]=c[k>>2];c[(c[h>>2]|0)+276>>2]=c[j>>2];c[g>>2]=0;n=c[g>>2]|0;i=o;return n|0}function Go(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;o=q+32|0;g=q+28|0;h=q+24|0;j=q+20|0;k=q+16|0;l=q+12|0;m=q+8|0;n=q+4|0;p=q;c[g>>2]=a;c[h>>2]=b;c[j>>2]=e;c[k>>2]=f;c[l>>2]=2;while(1){if((c[l>>2]|0)>=((c[(c[g>>2]|0)+24>>2]|0)+2|0)){g=8;break}c[m>>2]=(c[l>>2]|0)-2;if(!(d[(c[(c[g>>2]|0)+32>>2]|0)+(c[m>>2]|0)>>0]|0)){c[n>>2]=ae(c[(c[j>>2]|0)+(c[l>>2]<<2)>>2]|0)|0;c[p>>2]=Lo(c[g>>2]|0,c[h>>2]|0,c[n>>2]|0,c[m>>2]|0,(c[k>>2]|0)+(c[m>>2]<<2)|0)|0;if(c[p>>2]|0){g=5;break}b=be(c[(c[j>>2]|0)+(c[l>>2]<<2)>>2]|0)|0;a=(c[k>>2]|0)+(c[(c[g>>2]|0)+24>>2]<<2)|0;c[a>>2]=(c[a>>2]|0)+b}c[l>>2]=(c[l>>2]|0)+1}if((g|0)==5){c[o>>2]=c[p>>2];p=c[o>>2]|0;i=q;return p|0}else if((g|0)==8){c[o>>2]=0;p=c[o>>2]|0;i=q;return p|0}return 0}function Ho(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;e=m+24|0;f=m+20|0;g=m+16|0;j=m+12|0;h=m+8|0;k=m+4|0;l=m;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;if(c[c[e>>2]>>2]|0){i=m;return}c[j>>2]=Id((c[(c[f>>2]|0)+24>>2]|0)*10|0)|0;if(!(c[j>>2]|0)){c[c[e>>2]>>2]=7;i=m;return}Ko(c[(c[f>>2]|0)+24>>2]|0,c[g>>2]|0,c[j>>2]|0,h);c[l>>2]=jl(c[f>>2]|0,20,k,0)|0;if(c[l>>2]|0){Kd(c[j>>2]|0);c[c[e>>2]>>2]=c[l>>2];i=m;return}else{l=(c[f>>2]|0)+264|0;Me(c[k>>2]|0,1,c[l>>2]|0,c[l+4>>2]|0)|0;Je(c[k>>2]|0,2,c[j>>2]|0,c[h>>2]|0,148)|0;ue(c[k>>2]|0)|0;l=Zd(c[k>>2]|0)|0;c[c[e>>2]>>2]=l;i=m;return}}function Io(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+64|0;g=u+48|0;h=u+44|0;j=u+40|0;k=u+36|0;l=u+32|0;q=u+28|0;o=u+24|0;m=u+20|0;r=u+16|0;n=u+12|0;s=u+8|0;p=u+4|0;t=u;c[g>>2]=a;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;c[p>>2]=(c[(c[h>>2]|0)+24>>2]|0)+2;if(c[c[g>>2]>>2]|0){i=u;return}c[m>>2]=Id((c[p>>2]|0)*14|0)|0;if(!(c[m>>2]|0)){c[c[g>>2]>>2]=7;i=u;return}c[q>>2]=(c[m>>2]|0)+(c[p>>2]<<2);c[s>>2]=jl(c[h>>2]|0,22,r,0)|0;if(c[s>>2]|0){Kd(c[m>>2]|0);c[c[g>>2]>>2]=c[s>>2];i=u;return}Le(c[r>>2]|0,1,0)|0;if((ue(c[r>>2]|0)|0)==100){f=c[p>>2]|0;b=c[m>>2]|0;a=Ae(c[r>>2]|0,0)|0;Jo(f,b,a,Be(c[r>>2]|0,0)|0)}else kR(c[m>>2]|0,0,c[p>>2]<<2|0)|0;c[s>>2]=Zd(c[r>>2]|0)|0;if(c[s>>2]|0){Kd(c[m>>2]|0);c[c[g>>2]>>2]=c[s>>2];i=u;return}if((c[l>>2]|0)<0?(c[c[m>>2]>>2]|0)>>>0<(0-(c[l>>2]|0)|0)>>>0:0)c[c[m>>2]>>2]=0;else{a=c[m>>2]|0;c[a>>2]=(c[a>>2]|0)+(c[l>>2]|0)}c[n>>2]=0;while(1){if((c[n>>2]|0)>=((c[(c[h>>2]|0)+24>>2]|0)+1|0))break;c[t>>2]=c[(c[m>>2]|0)+((c[n>>2]|0)+1<<2)>>2];if(((c[t>>2]|0)+(c[(c[j>>2]|0)+(c[n>>2]<<2)>>2]|0)|0)>>>0<(c[(c[k>>2]|0)+(c[n>>2]<<2)>>2]|0)>>>0)c[t>>2]=0;else c[t>>2]=(c[t>>2]|0)+(c[(c[j>>2]|0)+(c[n>>2]<<2)>>2]|0)-(c[(c[k>>2]|0)+(c[n>>2]<<2)>>2]|0);c[(c[m>>2]|0)+((c[n>>2]|0)+1<<2)>>2]=c[t>>2];c[n>>2]=(c[n>>2]|0)+1}Ko(c[p>>2]|0,c[m>>2]|0,c[q>>2]|0,o);c[s>>2]=jl(c[h>>2]|0,23,r,0)|0;if(c[s>>2]|0){Kd(c[m>>2]|0);c[c[g>>2]>>2]=c[s>>2];i=u;return}else{Le(c[r>>2]|0,1,0)|0;Je(c[r>>2]|0,2,c[q>>2]|0,c[o>>2]|0,0)|0;ue(c[r>>2]|0)|0;t=Zd(c[r>>2]|0)|0;c[c[g>>2]>>2]=t;Kd(c[m>>2]|0);i=u;return}}function Jo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;f=m+28|0;g=m+24|0;h=m+20|0;j=m+12|0;k=m+8|0;l=m;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[m+16>>2]=e;c[k>>2]=0;c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[f>>2]|0))break;d=Ul((c[h>>2]|0)+(c[k>>2]|0)|0,l)|0;c[k>>2]=(c[k>>2]|0)+d;c[(c[g>>2]|0)+(c[j>>2]<<2)>>2]=c[l>>2];c[j>>2]=(c[j>>2]|0)+1}i=m;return}function Ko(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;f=m+20|0;g=m+16|0;h=m+12|0;j=m+8|0;k=m+4|0;l=m;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[l>>2]=0;c[k>>2]=0;while(1){a=c[l>>2]|0;if((c[k>>2]|0)>=(c[f>>2]|0))break;d=El((c[h>>2]|0)+a|0,c[(c[g>>2]|0)+(c[k>>2]<<2)>>2]|0,0)|0;c[l>>2]=(c[l>>2]|0)+d;c[k>>2]=(c[k>>2]|0)+1}c[c[j>>2]>>2]=a;i=m;return}function Lo(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=i;i=i+80|0;g=B+72|0;h=B+68|0;j=B+64|0;k=B+60|0;l=B+56|0;m=B+52|0;x=B+48|0;q=B+44|0;o=B+40|0;p=B+36|0;s=B+32|0;z=B+28|0;r=B+24|0;w=B+20|0;v=B+16|0;t=B+12|0;y=B+8|0;n=B+4|0;u=B;c[h>>2]=a;c[j>>2]=b;c[k>>2]=d;c[l>>2]=e;c[m>>2]=f;c[q>>2]=0;c[o>>2]=0;c[p>>2]=0;c[s>>2]=0;c[r>>2]=0;c[w>>2]=c[(c[h>>2]|0)+36>>2];c[v>>2]=c[c[w>>2]>>2];if(!(c[k>>2]|0)){c[c[m>>2]>>2]=0;c[g>>2]=0;A=c[g>>2]|0;i=B;return A|0}c[x>>2]=wn(c[w>>2]|0,c[j>>2]|0,c[k>>2]|0,-1,t)|0;if(c[x>>2]|0){c[g>>2]=c[x>>2];A=c[g>>2]|0;i=B;return A|0}c[y>>2]=c[(c[v>>2]|0)+20>>2];a:while(1){if(c[x>>2]|0)break;d=Sb[c[y>>2]&255](c[t>>2]|0,z,r,q,o,p)|0;c[x>>2]=d;if(d)break;if((c[p>>2]|0)>=(c[s>>2]|0))c[s>>2]=(c[p>>2]|0)+1;if((c[p>>2]|0)>=0&(c[z>>2]|0)!=0^1|(c[r>>2]|0)<=0){A=11;break}c[x>>2]=Mo(c[h>>2]|0,c[l>>2]|0,c[p>>2]|0,(c[(c[h>>2]|0)+252>>2]|0)+4|0,c[z>>2]|0,c[r>>2]|0)|0;c[n>>2]=1;while(1){if(c[x>>2]|0)continue a;if((c[n>>2]|0)>=(c[(c[h>>2]|0)+248>>2]|0))continue a;c[u>>2]=(c[(c[h>>2]|0)+252>>2]|0)+((c[n>>2]|0)*24|0);if((c[r>>2]|0)>=(c[c[u>>2]>>2]|0))c[x>>2]=Mo(c[h>>2]|0,c[l>>2]|0,c[p>>2]|0,(c[u>>2]|0)+4|0,c[z>>2]|0,c[c[u>>2]>>2]|0)|0;c[n>>2]=(c[n>>2]|0)+1}}if((A|0)==11)c[x>>2]=1;Tb[c[(c[v>>2]|0)+16>>2]&255](c[t>>2]|0)|0;A=c[m>>2]|0;c[A>>2]=(c[A>>2]|0)+(c[s>>2]|0);c[g>>2]=(c[x>>2]|0)==101?0:c[x>>2]|0;A=c[g>>2]|0;i=B;return A|0}function Mo(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+32|0;h=q+28|0;j=q+24|0;k=q+20|0;l=q+16|0;m=q+12|0;n=q+8|0;o=q+4|0;p=q;c[h>>2]=a;c[j>>2]=b;c[k>>2]=d;c[l>>2]=e;c[m>>2]=f;c[n>>2]=g;c[p>>2]=0;c[o>>2]=yk(c[l>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;if(c[o>>2]|0){f=(c[h>>2]|0)+260|0;c[f>>2]=(c[f>>2]|0)-((c[c[o>>2]>>2]|0)+(c[n>>2]|0)+20)}a=(c[h>>2]|0)+264|0;e=c[j>>2]|0;f=c[k>>2]|0;if((xn(o,c[a>>2]|0,c[a+4>>2]|0,e,((e|0)<0)<<31>>31,f,((f|0)<0)<<31>>31,p)|0)!=0?(f=c[o>>2]|0,(f|0)==(fk(c[l>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0)|0)):0){Kd(c[o>>2]|0);c[p>>2]=7}if(c[p>>2]|0){f=c[p>>2]|0;i=q;return f|0}f=(c[h>>2]|0)+260|0;c[f>>2]=(c[f>>2]|0)+((c[c[o>>2]>>2]|0)+(c[n>>2]|0)+20);f=c[p>>2]|0;i=q;return f|0}function No(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+64|0;j=u+48|0;k=u+44|0;h=u+40|0;l=u+36|0;m=u+32|0;s=u+28|0;r=u+24|0;n=u+20|0;q=u+16|0;p=u;o=u+12|0;t=u+8|0;c[j>>2]=a;c[k>>2]=b;c[h>>2]=e;c[l>>2]=f;c[m>>2]=g;if(c[c[j>>2]>>2]|0){i=u;return}c[s>>2]=jl(c[k>>2]|0,7,r,h)|0;h=c[r>>2]|0;if(!(c[s>>2]|0)){do if(100==(ue(h)|0)){c[q>>2]=Ro(c[k>>2]|0,c[r>>2]|0)|0;e=Ee(c[r>>2]|0,0)|0;g=p;c[g>>2]=e;c[g+4>>2]=C;c[s>>2]=Fo(c[k>>2]|0,1,c[q>>2]|0,c[p>>2]|0,c[p+4>>2]|0)|0;c[n>>2]=1;while(1){if(c[s>>2]|0)break;if((c[n>>2]|0)>(c[(c[k>>2]|0)+24>>2]|0))break;c[o>>2]=(c[n>>2]|0)-1;if(!(d[(c[(c[k>>2]|0)+32>>2]|0)+(c[o>>2]|0)>>0]|0)){c[t>>2]=Fe(c[r>>2]|0,c[n>>2]|0)|0;c[s>>2]=Lo(c[k>>2]|0,c[q>>2]|0,c[t>>2]|0,-1,(c[l>>2]|0)+(c[o>>2]<<2)|0)|0;g=Be(c[r>>2]|0,c[n>>2]|0)|0;p=(c[l>>2]|0)+(c[(c[k>>2]|0)+24>>2]<<2)|0;c[p>>2]=(c[p>>2]|0)+g}c[n>>2]=(c[n>>2]|0)+1}if(!(c[s>>2]|0)){c[c[m>>2]>>2]=1;break}Zd(c[r>>2]|0)|0;c[c[j>>2]>>2]=c[s>>2];i=u;return}while(0);c[s>>2]=Zd(c[r>>2]|0)|0}else Zd(h)|0;c[c[j>>2]>>2]=c[s>>2];i=u;return}function Oo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+16|0;f=k+12|0;g=k+8|0;h=k+4|0;j=k;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;if(c[(c[e>>2]|0)+40>>2]|0){c[c[g>>2]>>2]=0;c[j>>2]=0;j=c[j>>2]|0;i=k;return j|0}c[j>>2]=jl(c[e>>2]|0,1,h,f)|0;if(c[j>>2]|0){j=c[j>>2]|0;i=k;return j|0}if(100==(ue(c[h>>2]|0)|0)){d=De(c[h>>2]|0,0)|0;c[c[g>>2]>>2]=d}c[j>>2]=Zd(c[h>>2]|0)|0;j=c[j>>2]|0;i=k;return j|0}function Po(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+16|0;e=g+8|0;h=g+4|0;f=g;c[e>>2]=b;c[h>>2]=d;c[f>>2]=0;dl(c[e>>2]|0);if(c[h>>2]|0)Qo(f,c[e>>2]|0,2,0);Qo(f,c[e>>2]|0,3,0);Qo(f,c[e>>2]|0,4,0);if(a[(c[e>>2]|0)+230>>0]|0)Qo(f,c[e>>2]|0,5,0);if(!(a[(c[e>>2]|0)+229>>0]|0)){h=c[f>>2]|0;i=g;return h|0}Qo(f,c[e>>2]|0,6,0);h=c[f>>2]|0;i=g;return h|0}function Qo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;f=m+20|0;g=m+16|0;h=m+12|0;j=m+8|0;k=m+4|0;l=m;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;if(c[c[f>>2]>>2]|0){i=m;return}c[l>>2]=jl(c[g>>2]|0,c[h>>2]|0,k,c[j>>2]|0)|0;if(!(c[l>>2]|0)){ue(c[k>>2]|0)|0;c[l>>2]=Zd(c[k>>2]|0)|0}c[c[f>>2]>>2]=c[l>>2];i=m;return}function Ro(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;e=g+4|0;f=g;c[d>>2]=a;c[e>>2]=b;c[f>>2]=0;if(!(c[(c[d>>2]|0)+44>>2]|0)){b=c[f>>2]|0;i=g;return b|0}c[f>>2]=De(c[e>>2]|0,(c[(c[d>>2]|0)+24>>2]|0)+1|0)|0;b=c[f>>2]|0;i=g;return b|0}function So(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+64|0;f=t;h=t+52|0;q=t+48|0;j=t+44|0;l=t+40|0;k=t+36|0;p=t+32|0;o=t+28|0;g=t+24|0;e=t+20|0;m=t+16|0;n=t+12|0;s=t+8|0;r=t+4|0;c[h>>2]=b;c[q>>2]=Po(c[h>>2]|0,0)|0;if(c[q>>2]|0){s=c[q>>2]|0;i=t;return s|0}c[j>>2]=0;c[l>>2]=0;c[k>>2]=0;c[p>>2]=0;c[o>>2]=0;c[f>>2]=c[(c[h>>2]|0)+216>>2];c[g>>2]=Od(24461,f)|0;if(c[g>>2]|0){c[q>>2]=af(c[(c[h>>2]|0)+12>>2]|0,c[g>>2]|0,-1,p,0)|0;Kd(c[g>>2]|0)}else c[q>>2]=7;do if(!(c[q>>2]|0)){c[e>>2]=((c[(c[h>>2]|0)+24>>2]|0)+1<<2)*3;c[j>>2]=Id(c[e>>2]|0)|0;if(!(c[j>>2]|0)){c[q>>2]=7;break}else{kR(c[j>>2]|0,0,c[e>>2]|0)|0;c[l>>2]=(c[j>>2]|0)+((c[(c[h>>2]|0)+24>>2]|0)+1<<2);c[k>>2]=(c[l>>2]|0)+((c[(c[h>>2]|0)+24>>2]|0)+1<<2);break}}while(0);a:while(1){if(!(c[q>>2]|0))e=100==(ue(c[p>>2]|0)|0);else e=0;b=c[h>>2]|0;if(!e)break;c[n>>2]=Ro(b,c[p>>2]|0)|0;b=c[h>>2]|0;f=c[n>>2]|0;g=Ee(c[p>>2]|0,0)|0;c[q>>2]=Fo(b,0,f,g,C)|0;kR(c[j>>2]|0,0,(c[(c[h>>2]|0)+24>>2]|0)+1<<2|0)|0;c[m>>2]=0;while(1){if(c[q>>2]|0)break;if((c[m>>2]|0)>=(c[(c[h>>2]|0)+24>>2]|0))break;if(!(d[(c[(c[h>>2]|0)+32>>2]|0)+(c[m>>2]|0)>>0]|0)){c[s>>2]=Fe(c[p>>2]|0,(c[m>>2]|0)+1|0)|0;c[q>>2]=Lo(c[h>>2]|0,c[n>>2]|0,c[s>>2]|0,c[m>>2]|0,(c[j>>2]|0)+(c[m>>2]<<2)|0)|0;f=Be(c[p>>2]|0,(c[m>>2]|0)+1|0)|0;g=(c[j>>2]|0)+(c[(c[h>>2]|0)+24>>2]<<2)|0;c[g>>2]=(c[g>>2]|0)+f}c[m>>2]=(c[m>>2]|0)+1}if(a[(c[h>>2]|0)+230>>0]|0)Ho(q,c[h>>2]|0,c[j>>2]|0);if(c[q>>2]|0){Yd(c[p>>2]|0)|0;c[p>>2]=0;continue}c[o>>2]=(c[o>>2]|0)+1;c[m>>2]=0;while(1){if((c[m>>2]|0)>(c[(c[h>>2]|0)+24>>2]|0))continue a;g=(c[l>>2]|0)+(c[m>>2]<<2)|0;c[g>>2]=(c[g>>2]|0)+(c[(c[j>>2]|0)+(c[m>>2]<<2)>>2]|0);c[m>>2]=(c[m>>2]|0)+1}}if(a[b+228>>0]|0)Io(q,c[h>>2]|0,c[l>>2]|0,c[k>>2]|0,c[o>>2]|0);Kd(c[j>>2]|0);if(!(c[p>>2]|0)){s=c[q>>2]|0;i=t;return s|0}c[r>>2]=Yd(c[p>>2]|0)|0;if(c[q>>2]|0){s=c[q>>2]|0;i=t;return s|0}c[q>>2]=c[r>>2];s=c[q>>2]|0;i=t;return s|0}function To(a){a=a|0;var b=0,d=0,e=0,f=0;d=i;i=i+16|0;f=d+8|0;b=d+4|0;e=d;c[f>>2]=a;c[e>>2]=0;a=Yo(c[f>>2]|0,e)|0;c[b>>2]=a;c[b>>2]=(c[b>>2]|0)==0&(c[e>>2]|0)==0?267:a;i=d;return c[b>>2]|0}function Uo(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;e=k+20|0;l=k+16|0;h=k+12|0;g=k+8|0;f=k+4|0;j=k;c[e>>2]=b;c[l>>2]=d;c[g>>2]=8;c[f>>2]=0;c[j>>2]=c[l>>2];c[f>>2]=Wo(j)|0;if((a[c[j>>2]>>0]|0)==44?(a[(c[j>>2]|0)+1>>0]|0)!=0:0){c[j>>2]=(c[j>>2]|0)+1;c[g>>2]=Wo(j)|0}if((c[g>>2]|0)<2?1:(a[c[j>>2]>>0]|0)!=0){c[h>>2]=1;l=c[h>>2]|0;i=k;return l|0}c[h>>2]=0;if(!(a[(c[e>>2]|0)+229>>0]|0))Xo(h,c[e>>2]|0);if(!(c[h>>2]|0))c[h>>2]=$n(c[e>>2]|0,c[f>>2]|0,c[g>>2]|0)|0;sm(c[e>>2]|0);l=c[h>>2]|0;i=k;return l|0}function Vo(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;j=i;i=i+32|0;e=j+16|0;f=j+12|0;k=j+8|0;h=j+4|0;g=j;c[f>>2]=b;c[k>>2]=d;c[h>>2]=0;c[g>>2]=0;d=Wo(k)|0;c[(c[f>>2]|0)+48>>2]=d;if(!((c[(c[f>>2]|0)+48>>2]|0)!=1?(c[(c[f>>2]|0)+48>>2]|0)<=16:0))c[(c[f>>2]|0)+48>>2]=8;if((a[(c[f>>2]|0)+229>>0]|0)==0?(Xo(h,c[f>>2]|0),(c[h>>2]|0)!=0):0){c[e>>2]=c[h>>2];k=c[e>>2]|0;i=j;return k|0}c[h>>2]=jl(c[f>>2]|0,23,g,0)|0;if(c[h>>2]|0){c[e>>2]=c[h>>2];k=c[e>>2]|0;i=j;return k|0}else{Le(c[g>>2]|0,1,2)|0;Le(c[g>>2]|0,2,c[(c[f>>2]|0)+48>>2]|0)|0;ue(c[g>>2]|0)|0;c[h>>2]=Zd(c[g>>2]|0)|0;c[e>>2]=c[h>>2];k=c[e>>2]|0;i=j;return k|0}return 0}function Wo(b){b=b|0;var d=0,e=0,f=0,g=0,h=0;g=i;i=i+16|0;d=g+8|0;f=g+4|0;e=g;c[d>>2]=b;c[f>>2]=c[c[d>>2]>>2];c[e>>2]=0;while(1){if((a[c[f>>2]>>0]|0)<48){b=5;break}if((a[c[f>>2]>>0]|0)>57){b=5;break}h=(c[e>>2]|0)*10|0;b=c[f>>2]|0;c[f>>2]=b+1;c[e>>2]=h+(a[b>>0]|0)-48}if((b|0)==5){c[c[d>>2]>>2]=c[f>>2];i=g;return c[e>>2]|0}return 0}function Xo(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;f=i;i=i+16|0;h=f;g=f+12|0;e=f+8|0;c[g>>2]=b;c[e>>2]=d;d=c[g>>2]|0;b=c[(c[e>>2]|0)+12>>2]|0;j=c[(c[e>>2]|0)+20>>2]|0;c[h>>2]=c[(c[e>>2]|0)+16>>2];c[h+4>>2]=j;hl(d,b,24384,h);if(c[c[g>>2]>>2]|0){i=f;return}a[(c[e>>2]|0)+229>>0]=1;i=f;return}function Yo(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0;F=i;i=i+112|0;j=F+24|0;l=F+108|0;m=F+104|0;B=F+100|0;n=F+16|0;o=F+8|0;g=F+96|0;h=F+92|0;f=F+88|0;e=F+84|0;y=F+80|0;z=F+76|0;k=F+72|0;r=F;u=F+68|0;q=F+64|0;D=F+60|0;w=F+56|0;A=F+52|0;E=F+48|0;x=F+44|0;s=F+40|0;t=F+36|0;v=F+32|0;p=F+28|0;c[l>>2]=a;c[m>>2]=b;c[B>>2]=0;b=n;c[b>>2]=0;c[b+4>>2]=0;b=o;c[b>>2]=0;c[b+4>>2]=0;c[g>>2]=0;c[B>>2]=jl(c[l>>2]|0,27,g,0)|0;if(!(c[B>>2]|0)){Le(c[g>>2]|0,1,c[(c[l>>2]|0)+272>>2]|0)|0;Le(c[g>>2]|0,2,c[(c[l>>2]|0)+248>>2]|0)|0;a:while(1){if(!(c[B>>2]|0))a=(ue(c[g>>2]|0)|0)==100;else a=0;b=c[g>>2]|0;if(!a)break;c[f>>2]=De(b,0)|0;c[e>>2]=0;while(1){if((c[e>>2]|0)>=(c[(c[l>>2]|0)+248>>2]|0))continue a;a=n;H=c[a>>2]|0;a=c[a+4>>2]|0;G=Zo(c[l>>2]|0,c[f>>2]|0,c[e>>2]|0,B)|0;b=n;c[b>>2]=H^G;c[b+4>>2]=a^C;c[e>>2]=(c[e>>2]|0)+1}}c[h>>2]=Zd(b)|0;if(!(c[B>>2]|0))c[B>>2]=c[h>>2]}if(c[B>>2]|0){E=n;D=E;D=c[D>>2]|0;E=E+4|0;E=c[E>>2]|0;G=o;H=G;H=c[H>>2]|0;G=G+4|0;G=c[G>>2]|0;H=(D|0)==(H|0);G=(E|0)==(G|0);G=H&G;G=G&1;H=c[m>>2]|0;c[H>>2]=G;H=c[B>>2]|0;i=F;return H|0}c[y>>2]=c[c[(c[l>>2]|0)+36>>2]>>2];c[z>>2]=0;c[j>>2]=c[(c[l>>2]|0)+216>>2];c[k>>2]=Od(24461,j)|0;if(c[k>>2]|0){c[B>>2]=af(c[(c[l>>2]|0)+12>>2]|0,c[k>>2]|0,-1,z,0)|0;Kd(c[k>>2]|0)}else c[B>>2]=7;b:while(1){if(!(c[B>>2]|0))a=100==(ue(c[z>>2]|0)|0);else a=0;b=c[z>>2]|0;if(!a)break;G=Ee(b,0)|0;H=r;c[H>>2]=G;c[H+4>>2]=C;c[u>>2]=Ro(c[l>>2]|0,c[z>>2]|0)|0;c[q>>2]=0;while(1){if(c[B>>2]|0)continue b;if((c[q>>2]|0)>=(c[(c[l>>2]|0)+24>>2]|0))continue b;if(!(d[(c[(c[l>>2]|0)+32>>2]|0)+(c[q>>2]|0)>>0]|0)){c[D>>2]=Fe(c[z>>2]|0,(c[q>>2]|0)+1|0)|0;c[w>>2]=Be(c[z>>2]|0,(c[q>>2]|0)+1|0)|0;c[A>>2]=0;c[B>>2]=wn(c[(c[l>>2]|0)+36>>2]|0,c[u>>2]|0,c[D>>2]|0,c[w>>2]|0,A)|0;c:while(1){if(c[B>>2]|0)break;c[x>>2]=0;c[s>>2]=0;c[t>>2]=0;c[v>>2]=0;c[B>>2]=Sb[c[(c[y>>2]|0)+20>>2]&255](c[A>>2]|0,E,x,s,t,v)|0;if(c[B>>2]|0)continue;G=o;j=c[G>>2]|0;G=c[G+4>>2]|0;k=r;k=_o(c[E>>2]|0,c[x>>2]|0,c[u>>2]|0,0,c[k>>2]|0,c[k+4>>2]|0,c[q>>2]|0,c[v>>2]|0)|0;H=o;c[H>>2]=j^k;c[H+4>>2]=G^C;c[p>>2]=1;while(1){if((c[p>>2]|0)>=(c[(c[l>>2]|0)+248>>2]|0))continue c;if((c[(c[(c[l>>2]|0)+252>>2]|0)+((c[p>>2]|0)*24|0)>>2]|0)<=(c[x>>2]|0)){G=o;j=c[G>>2]|0;G=c[G+4>>2]|0;k=r;k=_o(c[E>>2]|0,c[(c[(c[l>>2]|0)+252>>2]|0)+((c[p>>2]|0)*24|0)>>2]|0,c[u>>2]|0,c[p>>2]|0,c[k>>2]|0,c[k+4>>2]|0,c[q>>2]|0,c[v>>2]|0)|0;H=o;c[H>>2]=j^k;c[H+4>>2]=G^C}c[p>>2]=(c[p>>2]|0)+1}}if(c[A>>2]|0)Tb[c[(c[y>>2]|0)+16>>2]&255](c[A>>2]|0)|0;if((c[B>>2]|0)==101)c[B>>2]=0}c[q>>2]=(c[q>>2]|0)+1}}Yd(b)|0;E=n;D=E;D=c[D>>2]|0;E=E+4|0;E=c[E>>2]|0;G=o;H=G;H=c[H>>2]|0;G=G+4|0;G=c[G>>2]|0;H=(D|0)==(H|0);G=(E|0)==(G|0);G=H&G;G=G&1;H=c[m>>2]|0;c[H>>2]=G;H=c[B>>2]|0;i=F;return H|0}function Zo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+144|0;g=u+140|0;h=u+136|0;j=u+132|0;k=u+128|0;f=u+112|0;m=u+56|0;t=u+48|0;l=u+32|0;r=u+44|0;s=u+40|0;o=u+24|0;n=u+16|0;p=u+8|0;q=u;c[g>>2]=a;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;d=l;c[d>>2]=0;c[d+4>>2]=0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;d=m;b=d+56|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(b|0));c[f+12>>2]=3;e=f+12|0;c[e>>2]=c[e>>2]|16;c[t>>2]=kl(c[g>>2]|0,c[h>>2]|0,c[j>>2]|0,-2,0,0,0,1,m)|0;if(!(c[t>>2]|0))c[t>>2]=ol(c[g>>2]|0,m,f)|0;if(c[t>>2]|0){vl(m);t=c[t>>2]|0;s=c[k>>2]|0;c[s>>2]=t;s=l;t=s;t=c[t>>2]|0;s=s+4|0;s=c[s>>2]|0;C=s;i=u;return t|0}a:while(1){f=pl(c[g>>2]|0,m)|0;c[t>>2]=f;if(100!=(f|0))break;c[r>>2]=c[m+48>>2];c[s>>2]=(c[r>>2]|0)+(c[m+52>>2]|0);f=o;c[f>>2]=0;c[f+4>>2]=0;f=n;c[f>>2]=0;c[f+4>>2]=0;f=p;c[f>>2]=0;c[f+4>>2]=0;f=Ul(c[r>>2]|0,o)|0;c[r>>2]=(c[r>>2]|0)+f;while(1){if((c[r>>2]|0)>>>0>=(c[s>>2]|0)>>>0)continue a;f=q;c[f>>2]=0;c[f+4>>2]=0;f=Ul(c[r>>2]|0,q)|0;c[r>>2]=(c[r>>2]|0)+f;if((c[r>>2]|0)>>>0>=(c[s>>2]|0)>>>0)continue;e=q;f=q;if(!((c[e>>2]|0)==0&(c[e+4>>2]|0)==0|(c[f>>2]|0)==1&(c[f+4>>2]|0)==0)){b=q;b=fR(c[b>>2]|0,c[b+4>>2]|0,2,0)|0;e=p;b=gR(c[e>>2]|0,c[e+4>>2]|0,b|0,C|0)|0;e=p;c[e>>2]=b;c[e+4>>2]=C;e=l;b=c[e>>2]|0;e=c[e+4>>2]|0;a=o;a=_o(c[m+40>>2]|0,c[m+44>>2]|0,c[h>>2]|0,c[j>>2]|0,c[a>>2]|0,c[a+4>>2]|0,c[n>>2]|0,c[p>>2]|0)|0;f=l;c[f>>2]=b^a;c[f+4>>2]=e^C;continue}f=n;c[f>>2]=0;c[f+4>>2]=0;f=p;c[f>>2]=0;c[f+4>>2]=0;f=q;d=c[r>>2]|0;if((c[f>>2]|0)!=0|(c[f+4>>2]|0)!=0){f=Ul(d,n)|0;c[r>>2]=(c[r>>2]|0)+f;continue}else{e=Ul(d,q)|0;c[r>>2]=(c[r>>2]|0)+e;e=q;f=o;e=gR(c[f>>2]|0,c[f+4>>2]|0,c[e>>2]|0,c[e+4>>2]|0)|0;f=o;c[f>>2]=e;c[f+4>>2]=C;continue}}}vl(m);t=c[t>>2]|0;s=c[k>>2]|0;c[s>>2]=t;s=l;t=s;t=c[t>>2]|0;s=s+4|0;s=c[s>>2]|0;C=s;i=u;return t|0}function _o(b,d,e,f,g,h,j,k){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;p=i;i=i+48|0;l=p+40|0;m=p+36|0;t=p+32|0;s=p+28|0;u=p+8|0;r=p+24|0;q=p+20|0;n=p+16|0;o=p;c[l>>2]=b;c[m>>2]=d;c[t>>2]=e;c[s>>2]=f;d=u;c[d>>2]=g;c[d+4>>2]=h;c[r>>2]=j;c[q>>2]=k;k=u;d=c[k+4>>2]|0;b=o;c[b>>2]=c[k>>2];c[b+4>>2]=d;b=o;b=lR(c[b>>2]|0,c[b+4>>2]|0,3)|0;d=c[t>>2]|0;d=gR(b|0,C|0,d|0,((d|0)<0)<<31>>31|0)|0;b=o;d=gR(c[b>>2]|0,c[b+4>>2]|0,d|0,C|0)|0;b=o;c[b>>2]=d;c[b+4>>2]=C;b=o;b=lR(c[b>>2]|0,c[b+4>>2]|0,3)|0;d=c[s>>2]|0;d=gR(b|0,C|0,d|0,((d|0)<0)<<31>>31|0)|0;b=o;d=gR(c[b>>2]|0,c[b+4>>2]|0,d|0,C|0)|0;b=o;c[b>>2]=d;c[b+4>>2]=C;b=o;b=lR(c[b>>2]|0,c[b+4>>2]|0,3)|0;d=c[r>>2]|0;d=gR(b|0,C|0,d|0,((d|0)<0)<<31>>31|0)|0;b=o;d=gR(c[b>>2]|0,c[b+4>>2]|0,d|0,C|0)|0;b=o;c[b>>2]=d;c[b+4>>2]=C;b=o;b=lR(c[b>>2]|0,c[b+4>>2]|0,3)|0;d=c[q>>2]|0;d=gR(b|0,C|0,d|0,((d|0)<0)<<31>>31|0)|0;b=o;d=gR(c[b>>2]|0,c[b+4>>2]|0,d|0,C|0)|0;b=o;c[b>>2]=d;c[b+4>>2]=C;c[n>>2]=0;while(1){h=o;g=c[h>>2]|0;h=c[h+4>>2]|0;if((c[n>>2]|0)>=(c[m>>2]|0))break;u=lR(g|0,h|0,3)|0;t=a[(c[l>>2]|0)+(c[n>>2]|0)>>0]|0;t=gR(u|0,C|0,t|0,((t|0)<0)<<31>>31|0)|0;u=o;t=gR(c[u>>2]|0,c[u+4>>2]|0,t|0,C|0)|0;u=o;c[u>>2]=t;c[u+4>>2]=C;c[n>>2]=(c[n>>2]|0)+1}C=h;i=p;return g|0}function $o(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0;h=i;i=i+16|0;e=h+8|0;g=h+4|0;f=h;c[e>>2]=b;c[g>>2]=0;c[f>>2]=c[(c[e>>2]|0)+12>>2];a:do if(!(c[f>>2]|0))a[(c[e>>2]|0)+6>>0]=1;else do{if(!(d[(c[e>>2]|0)+7>>0]|0))Zd(c[(c[e>>2]|0)+8>>2]|0)|0;Nm(c[e>>2]|0,c[f>>2]|0,g);a[(c[e>>2]|0)+6>>0]=a[(c[f>>2]|0)+32>>0]|0;a[(c[e>>2]|0)+7>>0]=1;c[(c[e>>2]|0)+88>>2]=1;k=(c[f>>2]|0)+24|0;j=c[k+4>>2]|0;b=(c[e>>2]|0)+32|0;c[b>>2]=c[k>>2];c[b+4>>2]=j;if(d[(c[e>>2]|0)+6>>0]|0)break a}while((Im(c[e>>2]|0,g)|0)!=0);while(0);if(c[g>>2]|0){k=c[g>>2]|0;i=h;return k|0}if(!((d[(c[e>>2]|0)+52>>0]|0|0)==0?(j=(c[e>>2]|0)+32|0,b=c[j+4>>2]|0,k=(c[e>>2]|0)+80|0,f=c[k+4>>2]|0,(b|0)>(f|0)|((b|0)==(f|0)?(c[j>>2]|0)>>>0>(c[k>>2]|0)>>>0:0)):0)){if(!(d[(c[e>>2]|0)+52>>0]|0)){k=c[g>>2]|0;i=h;return k|0}j=(c[e>>2]|0)+32|0;b=c[j+4>>2]|0;k=(c[e>>2]|0)+72|0;f=c[k+4>>2]|0;if(!((b|0)<(f|0)|((b|0)==(f|0)?(c[j>>2]|0)>>>0<(c[k>>2]|0)>>>0:0))){k=c[g>>2]|0;i=h;return k|0}}a[(c[e>>2]|0)+6>>0]=1;k=c[g>>2]|0;i=h;return k|0}function ap(a){a=a|0;var b=0,d=0,e=0,f=0;e=i;i=i+16|0;f=e+8|0;b=e+4|0;d=e;c[f>>2]=a;c[b>>2]=c[f>>2];while(1){if(!(c[b>>2]|0))break;if((c[(c[b>>2]|0)+12>>2]|0)==0?(c[(c[b>>2]|0)+16>>2]|0)==0:0)break;a=c[b>>2]|0;if(c[(c[b>>2]|0)+12>>2]|0)a=c[a+12>>2]|0;else a=c[a+16>>2]|0;c[b>>2]=a}a:while(1){if(!(c[b>>2]|0))break;c[d>>2]=c[(c[b>>2]|0)+8>>2];Ap(c[b>>2]|0);if(((c[d>>2]|0)!=0?(c[b>>2]|0)==(c[(c[d>>2]|0)+12>>2]|0):0)?(c[(c[d>>2]|0)+16>>2]|0)!=0:0){c[b>>2]=c[(c[d>>2]|0)+16>>2];while(1){if(!(c[b>>2]|0))continue a;if((c[(c[b>>2]|0)+12>>2]|0)==0?(c[(c[b>>2]|0)+16>>2]|0)==0:0)continue a;a=c[b>>2]|0;if(c[(c[b>>2]|0)+12>>2]|0)a=c[a+12>>2]|0;else a=c[a+16>>2]|0;c[b>>2]=a}}c[b>>2]=c[d>>2]}i=e;return}function bp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+32|0;e=j+8|0;f=j+20|0;g=j;h=j+16|0;c[f>>2]=a;a=g;c[a>>2]=b;c[a+4>>2]=d;if((c[f>>2]|0)!=0?(c[h>>2]=Te(c[f>>2]|0)|0,(c[h>>2]|0)==1):0){a=ee(c[f>>2]|0)|0;h=e;c[h>>2]=a;c[h+4>>2]=C;h=e;a=h;a=c[a>>2]|0;h=h+4|0;h=c[h>>2]|0;C=h;i=j;return a|0}a=c[g+4>>2]|0;h=e;c[h>>2]=c[g>>2];c[h+4>>2]=a;h=e;a=h;a=c[a>>2]|0;h=h+4|0;h=c[h>>2]|0;C=h;i=j;return a|0}function cp(a,b,d,e,f,g,h,j,k,l){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;s=i;i=i+64|0;r=s+8|0;q=s;z=s+52|0;y=s+48|0;x=s+44|0;w=s+40|0;v=s+36|0;u=s+32|0;m=s+28|0;t=s+24|0;n=s+20|0;o=s+16|0;p=s+12|0;c[z>>2]=a;c[y>>2]=b;c[x>>2]=d;c[w>>2]=e;c[v>>2]=f;c[u>>2]=g;c[m>>2]=h;c[t>>2]=j;c[n>>2]=k;c[o>>2]=l;c[p>>2]=op(c[z>>2]|0,c[y>>2]|0,c[x>>2]|0,c[w>>2]|0,c[v>>2]|0,c[u>>2]|0,c[m>>2]|0,c[t>>2]|0,c[n>>2]|0)|0;if(((c[p>>2]|0)==0?(c[c[n>>2]>>2]|0)!=0:0)?(c[p>>2]=pp(c[n>>2]|0,12)|0,(c[p>>2]|0)==0):0)c[p>>2]=qp(c[c[n>>2]>>2]|0,12)|0;if(!(c[p>>2]|0)){z=c[p>>2]|0;i=s;return z|0}ap(c[c[n>>2]>>2]|0);c[c[n>>2]>>2]=0;if((c[p>>2]|0)==18){z=c[o>>2]|0;c[q>>2]=12;zk(z,24570,q);c[p>>2]=1;z=c[p>>2]|0;i=s;return z|0}if((c[p>>2]|0)!=1){z=c[p>>2]|0;i=s;return z|0}z=c[o>>2]|0;c[r>>2]=c[m>>2];zk(z,24622,r);z=c[p>>2]|0;i=s;return z|0}function dp(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;n=i;i=i+48|0;b=n+36|0;o=n+32|0;m=n+28|0;j=n+24|0;h=n+20|0;e=n+16|0;f=n+12|0;g=n+8|0;k=n+4|0;l=n;c[b>>2]=a;c[o>>2]=c[c[b>>2]>>2];c[m>>2]=0;c[j>>2]=0;c[h>>2]=0;ep(c[b>>2]|0,c[(c[b>>2]|0)+12>>2]|0,j,h,m);do if((c[m>>2]|0)==0&(c[j>>2]|0)>1?(d[(c[o>>2]|0)+228>>0]|0|0)!=0:0){c[e>>2]=Id(((c[j>>2]|0)*24|0)+(c[h>>2]<<2<<1)|0)|0;c[f>>2]=(c[e>>2]|0)+((c[j>>2]|0)*24|0);if(!(c[e>>2]|0)){c[m>>2]=7;break}c[k>>2]=c[e>>2];c[l>>2]=c[f>>2];fp(c[b>>2]|0,0,c[(c[b>>2]|0)+12>>2]|0,k,l,m);c[j>>2]=((c[k>>2]|0)-(c[e>>2]|0)|0)/24|0;c[h>>2]=((c[l>>2]|0)-(c[f>>2]|0)|0)/4|0;a:do if(!(c[m>>2]|0)){c[m>>2]=gp(c[b>>2]|0,0,c[e>>2]|0,c[j>>2]|0)|0;c[g>>2]=0;while(1){if(c[m>>2]|0)break a;if((c[g>>2]|0)>=(c[h>>2]|0))break a;c[m>>2]=gp(c[b>>2]|0,c[(c[f>>2]|0)+(c[g>>2]<<2)>>2]|0,c[e>>2]|0,c[j>>2]|0)|0;c[g>>2]=(c[g>>2]|0)+1}}while(0);Kd(c[e>>2]|0)}while(0);hp(c[b>>2]|0,c[(c[b>>2]|0)+12>>2]|0,m);i=n;return c[m>>2]|0}function ep(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;g=q+32|0;n=q+28|0;h=q+24|0;j=q+20|0;o=q+16|0;k=q+12|0;l=q+8|0;m=q+4|0;p=q;c[g>>2]=a;c[n>>2]=b;c[h>>2]=d;c[j>>2]=e;c[o>>2]=f;if(!(c[n>>2]|0)){i=q;return}if(c[c[o>>2]>>2]|0){i=q;return}a=c[n>>2]|0;if((c[c[n>>2]>>2]|0)!=5){p=c[j>>2]|0;c[p>>2]=(c[p>>2]|0)+((c[a>>2]|0)==4&1);ep(c[g>>2]|0,c[(c[n>>2]|0)+12>>2]|0,c[h>>2]|0,c[j>>2]|0,c[o>>2]|0);ep(c[g>>2]|0,c[(c[n>>2]|0)+16>>2]|0,c[h>>2]|0,c[j>>2]|0,c[o>>2]|0);i=q;return}c[l>>2]=c[(c[a+20>>2]|0)+64>>2];j=c[h>>2]|0;c[j>>2]=(c[j>>2]|0)+(c[l>>2]|0);c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[l>>2]|0)){a=9;break}c[m>>2]=(c[(c[n>>2]|0)+20>>2]|0)+72+((c[k>>2]|0)*24|0);c[p>>2]=mp(c[g>>2]|0,c[c[m>>2]>>2]|0,c[(c[m>>2]|0)+4>>2]|0,c[(c[m>>2]|0)+8>>2]|0,(c[m>>2]|0)+20|0)|0;if(c[p>>2]|0){a=7;break}c[k>>2]=(c[k>>2]|0)+1}if((a|0)==7){c[c[o>>2]>>2]=c[p>>2];i=q;return}else if((a|0)==9){c[(c[(c[n>>2]|0)+20>>2]|0)+44>>2]=-1;i=q;return}}function fp(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;l=r+32|0;m=r+28|0;n=r+24|0;o=r+20|0;p=r+16|0;q=r+12|0;j=r+8|0;h=r+4|0;k=r;c[l>>2]=a;c[m>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;if(c[c[q>>2]>>2]|0){i=r;return}d=c[n>>2]|0;if((c[c[n>>2]>>2]|0)==5){c[j>>2]=c[d+20>>2];c[h>>2]=0;while(1){if(c[c[q>>2]>>2]|0){a=13;break}if((c[h>>2]|0)>=(c[(c[j>>2]|0)+64>>2]|0)){a=13;break}n=c[o>>2]|0;p=c[n>>2]|0;c[n>>2]=p+24;c[k>>2]=p;c[c[k>>2]>>2]=c[j>>2];c[(c[k>>2]|0)+4>>2]=c[h>>2];c[(c[k>>2]|0)+12>>2]=c[m>>2];c[(c[k>>2]|0)+8>>2]=(c[j>>2]|0)+72+((c[h>>2]|0)*24|0);c[(c[k>>2]|0)+20>>2]=c[(c[j>>2]|0)+68>>2];p=lp(c[l>>2]|0,c[(c[(c[k>>2]|0)+8>>2]|0)+20>>2]|0,(c[k>>2]|0)+16|0)|0;c[c[q>>2]>>2]=p;c[h>>2]=(c[h>>2]|0)+1}if((a|0)==13){i=r;return}}if((c[d>>2]|0)==2){i=r;return}if((c[c[n>>2]>>2]|0)==4){c[m>>2]=c[(c[n>>2]|0)+12>>2];c[c[c[p>>2]>>2]>>2]=c[m>>2];k=c[p>>2]|0;c[k>>2]=(c[k>>2]|0)+4}fp(c[l>>2]|0,c[m>>2]|0,c[(c[n>>2]|0)+12>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0);if((c[c[n>>2]>>2]|0)==4){c[m>>2]=c[(c[n>>2]|0)+16>>2];c[c[c[p>>2]>>2]>>2]=c[m>>2];k=c[p>>2]|0;c[k>>2]=(c[k>>2]|0)+4}fp(c[l>>2]|0,c[m>>2]|0,c[(c[n>>2]|0)+16>>2]|0,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0);i=r;return}function gp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=i;i=i+80|0;f=B+76|0;g=B+72|0;h=B+68|0;j=B+64|0;k=B+60|0;w=B+56|0;o=B+52|0;z=B+48|0;m=B+44|0;s=B+40|0;t=B+36|0;r=B+32|0;q=B+28|0;l=B+24|0;v=B+20|0;x=B+16|0;y=B+12|0;p=B+8|0;u=B+4|0;n=B;c[g>>2]=a;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[w>>2]=c[c[g>>2]>>2];c[o>>2]=0;c[z>>2]=0;c[s>>2]=0;c[t>>2]=0;c[r>>2]=0;c[q>>2]=1;if(c[(c[w>>2]|0)+40>>2]|0){c[f>>2]=0;A=c[f>>2]|0;i=B;return A|0}c[m>>2]=0;while(1){if((c[m>>2]|0)>=(c[k>>2]|0))break;if((c[(c[j>>2]|0)+((c[m>>2]|0)*24|0)+12>>2]|0)==(c[h>>2]|0)){c[s>>2]=(c[s>>2]|0)+(c[(c[j>>2]|0)+((c[m>>2]|0)*24|0)+16>>2]|0);c[t>>2]=(c[t>>2]|0)+1}c[m>>2]=(c[m>>2]|0)+1}if((c[s>>2]|0)==0|(c[t>>2]|0)<2){c[f>>2]=0;A=c[f>>2]|0;i=B;return A|0}c[z>>2]=ip(c[g>>2]|0,o)|0;c[m>>2]=0;while(1){if(!((c[m>>2]|0)<(c[t>>2]|0)?(c[z>>2]|0)==0:0))break;c[v>>2]=0;c[l>>2]=0;while(1){if((c[l>>2]|0)>=(c[k>>2]|0))break;do if((c[(c[j>>2]|0)+((c[l>>2]|0)*24|0)+8>>2]|0)!=0?(c[(c[j>>2]|0)+((c[l>>2]|0)*24|0)+12>>2]|0)==(c[h>>2]|0):0){if((c[v>>2]|0)!=0?(c[(c[j>>2]|0)+((c[l>>2]|0)*24|0)+16>>2]|0)>=(c[(c[v>>2]|0)+16>>2]|0):0)break;c[v>>2]=(c[j>>2]|0)+((c[l>>2]|0)*24|0)}while(0);c[l>>2]=(c[l>>2]|0)+1}if((c[m>>2]|0)!=0?(c[(c[v>>2]|0)+16>>2]|0)>=(_(((c[r>>2]|0)+((c[q>>2]|0)/4|0)-1|0)/((c[q>>2]|0)/4|0|0)|0,c[o>>2]|0)|0):0){c[x>>2]=c[(c[v>>2]|0)+8>>2];c[z>>2]=jp(c[g>>2]|0,c[x>>2]|0,c[(c[v>>2]|0)+20>>2]|0)|0;hn(c[(c[x>>2]|0)+20>>2]|0);c[(c[x>>2]|0)+20>>2]=0}else A=23;do if((A|0)==23){A=0;if((c[m>>2]|0)<12)c[q>>2]=c[q>>2]<<2;if(c[m>>2]|0){if((c[(c[c[v>>2]>>2]|0)+64>>2]|0)<=1)break;if((c[m>>2]|0)==((c[t>>2]|0)-1|0))break}c[y>>2]=c[(c[v>>2]|0)+8>>2];c[p>>2]=0;c[u>>2]=0;c[z>>2]=an(c[w>>2]|0,c[y>>2]|0,c[(c[v>>2]|0)+20>>2]|0,p,u)|0;if(!(c[z>>2]|0))c[z>>2]=bn(c[w>>2]|0,c[c[v>>2]>>2]|0,c[(c[v>>2]|0)+4>>2]|0,c[u>>2]|0,c[p>>2]|0)|0;if(!(c[z>>2]|0)){c[n>>2]=kp(c[c[c[v>>2]>>2]>>2]|0,c[(c[c[v>>2]>>2]|0)+4>>2]|0)|0;if((c[m>>2]|0)!=0?(c[n>>2]|0)>=(c[r>>2]|0):0)break;c[r>>2]=c[n>>2]}}while(0);c[(c[v>>2]|0)+8>>2]=0;c[m>>2]=(c[m>>2]|0)+1}c[f>>2]=c[z>>2];A=c[f>>2]|0;i=B;return A|0}function hp(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;g=m+16|0;l=m+12|0;h=m+8|0;k=m+4|0;j=m;c[g>>2]=b;c[l>>2]=e;c[h>>2]=f;if(!(c[l>>2]|0)){i=m;return}if(c[c[h>>2]>>2]|0){i=m;return}if((c[c[l>>2]>>2]|0)!=5){hp(c[g>>2]|0,c[(c[l>>2]|0)+12>>2]|0,c[h>>2]|0);hp(c[g>>2]|0,c[(c[l>>2]|0)+16>>2]|0,c[h>>2]|0);if(d[(c[(c[l>>2]|0)+12>>2]|0)+34>>0]|0)g=(d[(c[(c[l>>2]|0)+16>>2]|0)+34>>0]|0|0)!=0;else g=0;a[(c[l>>2]|0)+34>>0]=g&1;i=m;return}c[k>>2]=c[(c[(c[l>>2]|0)+20>>2]|0)+64>>2];if(c[k>>2]|0){c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[k>>2]|0))break;if(!(c[(c[(c[l>>2]|0)+20>>2]|0)+72+((c[j>>2]|0)*24|0)+16>>2]|0))break;c[j>>2]=(c[j>>2]|0)+1}a[(c[l>>2]|0)+34>>0]=(c[j>>2]|0)==(c[k>>2]|0)}l=Zm(c[g>>2]|0,1,c[(c[l>>2]|0)+20>>2]|0)|0;c[c[h>>2]>>2]=l;i=m;return}function ip(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;
  75. o=i;i=i+48|0;d=o+44|0;e=o+40|0;f=o+36|0;n=o+32|0;k=o+28|0;m=o+24|0;j=o+8|0;h=o;l=o+20|0;g=o+16|0;c[e>>2]=a;c[f>>2]=b;if(!(c[(c[e>>2]|0)+60>>2]|0)){c[k>>2]=c[c[e>>2]>>2];b=j;c[b>>2]=0;c[b+4>>2]=0;b=h;c[b>>2]=0;c[b+4>>2]=0;c[n>>2]=Jn(c[k>>2]|0,m)|0;if(c[n>>2]|0){c[d>>2]=c[n>>2];n=c[d>>2]|0;i=o;return n|0}c[g>>2]=Ae(c[m>>2]|0,0)|0;b=Be(c[m>>2]|0,0)|0;c[l>>2]=(c[g>>2]|0)+b;b=Ul(c[g>>2]|0,j)|0;c[g>>2]=(c[g>>2]|0)+b;while(1){if((c[g>>2]|0)>>>0>=(c[l>>2]|0)>>>0)break;b=Ul(c[g>>2]|0,h)|0;c[g>>2]=(c[g>>2]|0)+b}l=j;b=h;if((c[l>>2]|0)==0&(c[l+4>>2]|0)==0|(c[b>>2]|0)==0&(c[b+4>>2]|0)==0){Zd(c[m>>2]|0)|0;c[d>>2]=267;n=c[d>>2]|0;i=o;return n|0}a=j;b=c[a+4>>2]|0;l=(c[e>>2]|0)+64|0;c[l>>2]=c[a>>2];c[l+4>>2]=b;l=h;b=j;b=pR(c[l>>2]|0,c[l+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;l=c[(c[k>>2]|0)+236>>2]|0;l=gR(b|0,C|0,l|0,((l|0)<0)<<31>>31|0)|0;b=c[(c[k>>2]|0)+236>>2]|0;b=pR(l|0,C|0,b|0,((b|0)<0)<<31>>31|0)|0;c[(c[e>>2]|0)+60>>2]=b;c[n>>2]=Zd(c[m>>2]|0)|0;if(c[n>>2]|0){c[d>>2]=c[n>>2];n=c[d>>2]|0;i=o;return n|0}}c[c[f>>2]>>2]=c[(c[e>>2]|0)+60>>2];c[d>>2]=0;n=c[d>>2]|0;i=o;return n|0}function jp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+16|0;f=k+12|0;g=k+8|0;h=k+4|0;j=k;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=Id(16)|0;if(c[j>>2]|0){b=c[j>>2]|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[c[j>>2]>>2]=c[g>>2];c[(c[j>>2]|0)+8>>2]=c[(c[f>>2]|0)+24>>2];c[(c[j>>2]|0)+4>>2]=c[h>>2];c[(c[f>>2]|0)+24>>2]=c[j>>2];c[(c[g>>2]|0)+16>>2]=c[j>>2];c[e>>2]=0;b=c[e>>2]|0;i=k;return b|0}else{c[e>>2]=7;b=c[e>>2]|0;i=k;return b|0}return 0}function kp(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+16|0;f=k+12|0;h=k+8|0;g=k+4|0;j=k;c[e>>2]=b;c[f>>2]=d;c[h>>2]=0;if(!(c[e>>2]|0)){j=c[h>>2]|0;i=k;return j|0}c[g>>2]=(c[e>>2]|0)+(c[f>>2]|0);c[j>>2]=c[e>>2];while(1){if((c[j>>2]|0)>>>0>=(c[g>>2]|0)>>>0)break;c[h>>2]=(c[h>>2]|0)+1;do{d=c[j>>2]|0;c[j>>2]=d+1}while((a[d>>0]&128|0)!=0);Zl(0,j)}j=c[h>>2]|0;i=k;return j|0}function lp(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;q=i;i=i+48|0;r=q+44|0;f=q+40|0;n=q+36|0;k=q+32|0;o=q+28|0;g=q+24|0;p=q+20|0;m=q+16|0;l=q+12|0;h=q;j=q+8|0;c[r>>2]=a;c[f>>2]=b;c[n>>2]=e;c[k>>2]=c[c[r>>2]>>2];c[o>>2]=0;c[p>>2]=0;c[m>>2]=c[(c[k>>2]|0)+236>>2];c[g>>2]=0;while(1){if(c[p>>2]|0){f=13;break}if((c[g>>2]|0)>=(c[(c[f>>2]|0)+4>>2]|0)){f=13;break}c[l>>2]=c[(c[c[f>>2]>>2]|0)+(c[g>>2]<<2)>>2];a:do if((c[(c[l>>2]|0)+56>>2]|0)==0?(d[(c[l>>2]|0)+5>>0]|0|0)==0:0){b=(c[l>>2]|0)+8|0;e=c[b+4>>2]|0;r=h;c[r>>2]=c[b>>2];c[r+4>>2]=e;while(1){e=h;a=c[e+4>>2]|0;r=(c[l>>2]|0)+16|0;b=c[r+4>>2]|0;if(!((a|0)<(b|0)|((a|0)==(b|0)?(c[e>>2]|0)>>>0<=(c[r>>2]|0)>>>0:0)))break a;r=h;c[p>>2]=am(c[k>>2]|0,c[r>>2]|0,c[r+4>>2]|0,0,j,0)|0;if(c[p>>2]|0)break a;if(((c[j>>2]|0)+35|0)>(c[m>>2]|0))c[o>>2]=(c[o>>2]|0)+(((c[j>>2]|0)+34|0)/(c[m>>2]|0)|0);e=h;e=gR(c[e>>2]|0,c[e+4>>2]|0,1,0)|0;r=h;c[r>>2]=e;c[r+4>>2]=C}}while(0);c[g>>2]=(c[g>>2]|0)+1}if((f|0)==13){c[c[n>>2]>>2]=c[o>>2];i=q;return c[p>>2]|0}return 0}function mp(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;g=r+36|0;h=r+32|0;j=r+28|0;k=r+24|0;l=r+20|0;p=r+16|0;q=r+12|0;n=r+8|0;m=r+4|0;o=r;c[g>>2]=a;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;c[q>>2]=7;c[p>>2]=Id(56)|0;if(!(c[p>>2]|0)){f=c[p>>2]|0;b=c[l>>2]|0;c[b>>2]=f;b=c[q>>2]|0;i=r;return b|0}c[m>>2]=0;c[o>>2]=c[c[g>>2]>>2];a:do if(c[k>>2]|0){c[n>>2]=1;while(1){if(c[m>>2]|0)break;if((c[n>>2]|0)>=(c[(c[o>>2]|0)+248>>2]|0))break;if((c[(c[(c[o>>2]|0)+252>>2]|0)+((c[n>>2]|0)*24|0)>>2]|0)==(c[j>>2]|0)){c[m>>2]=1;c[q>>2]=kl(c[o>>2]|0,c[(c[g>>2]|0)+16>>2]|0,c[n>>2]|0,-2,c[h>>2]|0,c[j>>2]|0,0,0,c[p>>2]|0)|0;c[(c[p>>2]|0)+36>>2]=1}c[n>>2]=(c[n>>2]|0)+1}c[n>>2]=1;while(1){if(c[m>>2]|0)break a;if((c[n>>2]|0)>=(c[(c[o>>2]|0)+248>>2]|0))break a;if((c[(c[(c[o>>2]|0)+252>>2]|0)+((c[n>>2]|0)*24|0)>>2]|0)==((c[j>>2]|0)+1|0)?(c[m>>2]=1,c[q>>2]=kl(c[o>>2]|0,c[(c[g>>2]|0)+16>>2]|0,c[n>>2]|0,-2,c[h>>2]|0,c[j>>2]|0,1,0,c[p>>2]|0)|0,(c[q>>2]|0)==0):0)c[q>>2]=np(c[o>>2]|0,c[(c[g>>2]|0)+16>>2]|0,c[h>>2]|0,c[j>>2]|0,c[p>>2]|0)|0;c[n>>2]=(c[n>>2]|0)+1}}while(0);if(c[m>>2]|0){f=c[p>>2]|0;b=c[l>>2]|0;c[b>>2]=f;b=c[q>>2]|0;i=r;return b|0}c[q>>2]=kl(c[o>>2]|0,c[(c[g>>2]|0)+16>>2]|0,0,-2,c[h>>2]|0,c[j>>2]|0,c[k>>2]|0,0,c[p>>2]|0)|0;c[(c[p>>2]|0)+36>>2]=((c[k>>2]|0)!=0^1)&1;f=c[p>>2]|0;b=c[l>>2]|0;c[b>>2]=f;b=c[q>>2]|0;i=r;return b|0}function np(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+32|0;m=g+16|0;l=g+12|0;k=g+8|0;j=g+4|0;h=g;c[m>>2]=a;c[l>>2]=b;c[k>>2]=d;c[j>>2]=e;c[h>>2]=f;d=dm(c[m>>2]|0,c[l>>2]|0,0,-2,c[k>>2]|0,c[j>>2]|0,0,0,c[h>>2]|0)|0;i=g;return d|0}function op(a,b,d,e,f,g,h,j,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;y=i;i=i+96|0;l=y+80|0;m=y+76|0;n=y+72|0;o=y+68|0;p=y+64|0;q=y+60|0;r=y+56|0;s=y+52|0;t=y+48|0;u=y+44|0;v=y+40|0;w=y+36|0;x=y;c[m>>2]=a;c[n>>2]=b;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=j;c[u>>2]=k;d=x;e=d+36|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));c[x>>2]=c[m>>2];c[x+4>>2]=c[n>>2];c[x+8>>2]=c[o>>2];c[x+16>>2]=c[q>>2];c[x+20>>2]=c[r>>2];c[x+12>>2]=c[p>>2];if(!(c[s>>2]|0)){c[c[u>>2]>>2]=0;c[l>>2]=0;x=c[l>>2]|0;i=y;return x|0}if((c[t>>2]|0)<0)c[t>>2]=BQ(c[s>>2]|0)|0;c[w>>2]=rp(x,c[s>>2]|0,c[t>>2]|0,c[u>>2]|0,v)|0;if((c[w>>2]|0)==0?(c[x+32>>2]|0)!=0:0)c[w>>2]=1;c[l>>2]=c[w>>2];x=c[l>>2]|0;i=y;return x|0}function pp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+64|0;f=t+52|0;g=t+48|0;r=t+44|0;q=t+40|0;o=t+36|0;j=t+32|0;h=t+28|0;k=t+24|0;m=t+20|0;l=t+16|0;p=t+12|0;n=t+8|0;d=t+4|0;e=t;c[f>>2]=a;c[g>>2]=b;c[r>>2]=0;c[q>>2]=c[c[f>>2]>>2];c[o>>2]=0;c[j>>2]=c[c[q>>2]>>2];if(!(c[g>>2]|0))c[r>>2]=1;do if(!(c[r>>2]|0)){if(!((c[j>>2]|0)==3|(c[j>>2]|0)==4)){if((c[j>>2]|0)!=2)break;c[d>>2]=c[(c[q>>2]|0)+12>>2];c[e>>2]=c[(c[q>>2]|0)+16>>2];c[(c[q>>2]|0)+12>>2]=0;c[(c[q>>2]|0)+16>>2]=0;c[(c[d>>2]|0)+8>>2]=0;c[(c[e>>2]|0)+8>>2]=0;c[r>>2]=pp(d,(c[g>>2]|0)-1|0)|0;if(!(c[r>>2]|0))c[r>>2]=pp(e,(c[g>>2]|0)-1|0)|0;if(c[r>>2]|0){ap(c[e>>2]|0);ap(c[d>>2]|0);break}else{c[(c[q>>2]|0)+12>>2]=c[d>>2];c[(c[d>>2]|0)+8>>2]=c[q>>2];c[(c[q>>2]|0)+16>>2]=c[e>>2];c[(c[e>>2]|0)+8>>2]=c[q>>2];break}}c[h>>2]=Id(c[g>>2]<<2)|0;if(!(c[h>>2]|0))c[r>>2]=7;else kR(c[h>>2]|0,0,c[g>>2]<<2|0)|0;if(!(c[r>>2]|0)){c[m>>2]=c[q>>2];while(1){if((c[c[m>>2]>>2]|0)!=(c[j>>2]|0))break;c[m>>2]=c[(c[m>>2]|0)+12>>2]}while(1){c[p>>2]=c[(c[m>>2]|0)+8>>2];c[(c[m>>2]|0)+8>>2]=0;if(c[p>>2]|0)c[(c[p>>2]|0)+12>>2]=0;else c[q>>2]=0;c[r>>2]=pp(m,(c[g>>2]|0)-1|0)|0;if(c[r>>2]|0)break;c[l>>2]=0;while(1){if(!(c[m>>2]|0))break;if((c[l>>2]|0)>=(c[g>>2]|0))break;if(!(c[(c[h>>2]|0)+(c[l>>2]<<2)>>2]|0)){c[(c[h>>2]|0)+(c[l>>2]<<2)>>2]=c[m>>2];c[m>>2]=0}else{c[(c[o>>2]|0)+12>>2]=c[(c[h>>2]|0)+(c[l>>2]<<2)>>2];c[(c[o>>2]|0)+16>>2]=c[m>>2];c[(c[(c[o>>2]|0)+12>>2]|0)+8>>2]=c[o>>2];c[(c[(c[o>>2]|0)+16>>2]|0)+8>>2]=c[o>>2];c[m>>2]=c[o>>2];c[o>>2]=c[(c[o>>2]|0)+8>>2];c[(c[m>>2]|0)+8>>2]=0;c[(c[h>>2]|0)+(c[l>>2]<<2)>>2]=0}c[l>>2]=(c[l>>2]|0)+1}if(c[m>>2]|0){s=24;break}if(!(c[p>>2]|0))break;c[m>>2]=c[(c[p>>2]|0)+16>>2];while(1){if((c[c[m>>2]>>2]|0)!=(c[j>>2]|0))break;c[m>>2]=c[(c[m>>2]|0)+12>>2]}c[(c[(c[p>>2]|0)+16>>2]|0)+8>>2]=c[(c[p>>2]|0)+8>>2];b=c[(c[p>>2]|0)+16>>2]|0;if(c[(c[p>>2]|0)+8>>2]|0)c[(c[(c[p>>2]|0)+8>>2]|0)+12>>2]=b;else c[q>>2]=b;c[(c[p>>2]|0)+8>>2]=c[o>>2];c[o>>2]=c[p>>2]}if((s|0)==24){ap(c[m>>2]|0);c[r>>2]=18}a:do if(!(c[r>>2]|0)){c[m>>2]=0;c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[g>>2]|0))break;do if(c[(c[h>>2]|0)+(c[k>>2]<<2)>>2]|0)if(!(c[m>>2]|0)){c[m>>2]=c[(c[h>>2]|0)+(c[k>>2]<<2)>>2];c[(c[m>>2]|0)+8>>2]=0;break}else{c[(c[o>>2]|0)+16>>2]=c[m>>2];c[(c[o>>2]|0)+12>>2]=c[(c[h>>2]|0)+(c[k>>2]<<2)>>2];c[(c[(c[o>>2]|0)+12>>2]|0)+8>>2]=c[o>>2];c[(c[(c[o>>2]|0)+16>>2]|0)+8>>2]=c[o>>2];c[m>>2]=c[o>>2];c[o>>2]=c[(c[o>>2]|0)+8>>2];c[(c[m>>2]|0)+8>>2]=0;break}while(0);c[k>>2]=(c[k>>2]|0)+1}c[q>>2]=c[m>>2]}else{c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[g>>2]|0))break;ap(c[(c[h>>2]|0)+(c[k>>2]<<2)>>2]|0);c[k>>2]=(c[k>>2]|0)+1}while(1){s=c[o>>2]|0;c[n>>2]=s;if(!s)break a;c[o>>2]=c[(c[n>>2]|0)+8>>2];Kd(c[n>>2]|0)}}while(0);Kd(c[h>>2]|0)}}while(0);if(!(c[r>>2]|0)){q=c[q>>2]|0;s=c[f>>2]|0;c[s>>2]=q;s=c[r>>2]|0;i=t;return s|0}ap(c[q>>2]|0);c[q>>2]=0;q=c[q>>2]|0;s=c[f>>2]|0;c[s>>2]=q;s=c[r>>2]|0;i=t;return s|0}function qp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;e=g+4|0;f=g;c[d>>2]=a;c[e>>2]=b;c[f>>2]=0;do if(c[d>>2]|0){if((c[e>>2]|0)<0){c[f>>2]=18;break}c[f>>2]=qp(c[(c[d>>2]|0)+12>>2]|0,(c[e>>2]|0)-1|0)|0;if(!(c[f>>2]|0))c[f>>2]=qp(c[(c[d>>2]|0)+16>>2]|0,(c[e>>2]|0)-1|0)|0}while(0);i=g;return c[f>>2]|0}function rp(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;x=i;i=i+80|0;g=x+64|0;y=x+60|0;o=x+56|0;p=x+52|0;q=x+48|0;v=x+44|0;m=x+40|0;u=x+36|0;s=x+32|0;n=x+28|0;w=x+24|0;r=x+20|0;t=x+16|0;k=x+12|0;j=x+8|0;h=x+4|0;l=x;c[g>>2]=a;c[y>>2]=b;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[v>>2]=0;c[m>>2]=0;c[u>>2]=0;c[s>>2]=c[o>>2];c[n>>2]=c[y>>2];c[w>>2]=0;c[r>>2]=1;while(1){if(c[w>>2]|0){d=25;break}c[t>>2]=0;c[k>>2]=0;c[w>>2]=sp(c[g>>2]|0,c[n>>2]|0,c[s>>2]|0,t,k)|0;if((c[w>>2]|0)==0&(c[t>>2]|0)!=0){c[h>>2]=c[c[t>>2]>>2];if((c[h>>2]|0)==5)d=1;else d=(c[(c[t>>2]|0)+12>>2]|0)!=0;c[j>>2]=d&1;if((c[j>>2]|0)==0&(c[r>>2]|0)!=0){d=7;break}if(!((c[j>>2]|0)==0|(c[r>>2]|0)!=0)){c[l>>2]=tp(48)|0;if(!(c[l>>2]|0)){d=10;break}c[c[l>>2]>>2]=3;up(v,c[m>>2]|0,c[l>>2]|0);c[m>>2]=c[l>>2]}if(c[m>>2]|0){if(!((c[h>>2]|0)!=1|(c[j>>2]|0)!=0)?(c[c[m>>2]>>2]|0)!=5:0){d=17;break}if((c[h>>2]|0)!=5&(c[j>>2]|0)!=0?(c[c[m>>2]>>2]|0)==1:0){d=17;break}}do if(c[j>>2]|0){d=c[t>>2]|0;if(c[v>>2]|0){c[(c[m>>2]|0)+16>>2]=d;c[(c[t>>2]|0)+8>>2]=c[m>>2];break}else{c[v>>2]=d;break}}else up(v,c[m>>2]|0,c[t>>2]|0);while(0);c[r>>2]=((c[j>>2]|0)!=0^1)&1;c[m>>2]=c[t>>2]}c[s>>2]=(c[s>>2]|0)-(c[k>>2]|0);c[n>>2]=(c[n>>2]|0)+(c[k>>2]|0)}if((d|0)==7){ap(c[t>>2]|0);c[w>>2]=1}else if((d|0)==10){ap(c[t>>2]|0);c[w>>2]=7}else if((d|0)==17){ap(c[t>>2]|0);c[w>>2]=1}else if((d|0)==25){if((c[w>>2]|0)==101&(c[v>>2]|0)!=0&(c[r>>2]|0)!=0)c[w>>2]=1;if((c[w>>2]|0)==101)c[w>>2]=0;c[c[q>>2]>>2]=(c[o>>2]|0)-(c[s>>2]|0)}if(!(c[w>>2]|0)){v=c[v>>2]|0;y=c[p>>2]|0;c[y>>2]=v;y=c[w>>2]|0;i=x;return y|0}ap(c[v>>2]|0);ap(c[u>>2]|0);c[v>>2]=0;v=c[v>>2]|0;y=c[p>>2]|0;c[y>>2]=v;y=c[w>>2]|0;i=x;return y|0}function sp(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+80|0;p=E+72|0;q=E+68|0;r=E+64|0;s=E+60|0;t=E+56|0;u=E+52|0;x=E+48|0;v=E+44|0;w=E+40|0;A=E+36|0;o=E+32|0;B=E+28|0;y=E+24|0;n=E+20|0;m=E+16|0;l=E+12|0;j=E+76|0;k=E+8|0;C=E+4|0;z=E;c[q>>2]=b;c[r>>2]=e;c[s>>2]=f;c[t>>2]=g;c[u>>2]=h;c[o>>2]=0;c[B>>2]=c[r>>2];c[y>>2]=c[s>>2];c[(c[q>>2]|0)+24>>2]=0;while(1){if((c[y>>2]|0)>0)b=(wp(a[c[B>>2]>>0]|0)|0)!=0;else b=0;f=c[y>>2]|0;if(!b)break;c[y>>2]=f+-1;c[B>>2]=(c[B>>2]|0)+1}if(!f){c[p>>2]=101;D=c[p>>2]|0;i=E;return D|0}c[x>>2]=0;while(1){if((c[x>>2]|0)>=4)break;c[n>>2]=2068+(c[x>>2]<<3);if(((d[(c[n>>2]|0)+5>>0]&-2|0)==0?(c[y>>2]|0)>=(d[(c[n>>2]|0)+4>>0]|0):0)?0==(vQ(c[B>>2]|0,c[c[n>>2]>>2]|0,d[(c[n>>2]|0)+4>>0]|0)|0):0){c[m>>2]=10;c[l>>2]=d[(c[n>>2]|0)+4>>0];a:do if((((d[(c[n>>2]|0)+6>>0]|0)==1?(a[(c[B>>2]|0)+4>>0]|0)==47:0)?(a[(c[B>>2]|0)+5>>0]|0)>=48:0)?(a[(c[B>>2]|0)+5>>0]|0)<=57:0){c[m>>2]=0;c[l>>2]=5;while(1){if((a[(c[B>>2]|0)+(c[l>>2]|0)>>0]|0)<48)break a;if((a[(c[B>>2]|0)+(c[l>>2]|0)>>0]|0)>57)break a;c[m>>2]=((c[m>>2]|0)*10|0)+((a[(c[B>>2]|0)+(c[l>>2]|0)>>0]|0)-48);c[l>>2]=(c[l>>2]|0)+1}}while(0);a[j>>0]=a[(c[B>>2]|0)+(c[l>>2]|0)>>0]|0;if(wp(a[j>>0]|0)|0){D=26;break}if((a[j>>0]|0)==34){D=26;break}if((a[j>>0]|0)==40){D=26;break}if((a[j>>0]|0)==41){D=26;break}if(!(a[j>>0]|0)){D=26;break}}c[x>>2]=(c[x>>2]|0)+1}if((D|0)==26){c[o>>2]=tp(48)|0;if(c[o>>2]|0){c[c[o>>2]>>2]=d[(c[n>>2]|0)+6>>0];c[(c[o>>2]|0)+4>>2]=c[m>>2];c[c[t>>2]>>2]=c[o>>2];c[c[u>>2]>>2]=(c[B>>2]|0)-(c[r>>2]|0)+(c[l>>2]|0);c[p>>2]=0;D=c[p>>2]|0;i=E;return D|0}else{c[p>>2]=7;D=c[p>>2]|0;i=E;return D|0}}if((a[c[B>>2]>>0]|0)==34){c[x>>2]=1;while(1){if((c[x>>2]|0)>=(c[y>>2]|0))break;if((a[(c[B>>2]|0)+(c[x>>2]|0)>>0]|0)==34)break;c[x>>2]=(c[x>>2]|0)+1}c[c[u>>2]>>2]=(c[B>>2]|0)-(c[r>>2]|0)+(c[x>>2]|0)+1;if((c[x>>2]|0)==(c[y>>2]|0)){c[p>>2]=1;D=c[p>>2]|0;i=E;return D|0}else{c[p>>2]=xp(c[q>>2]|0,(c[B>>2]|0)+1|0,(c[x>>2]|0)-1|0,c[t>>2]|0)|0;D=c[p>>2]|0;i=E;return D|0}}if((a[c[B>>2]>>0]|0)==40){c[k>>2]=0;D=(c[q>>2]|0)+32|0;c[D>>2]=(c[D>>2]|0)+1;c[A>>2]=rp(c[q>>2]|0,(c[B>>2]|0)+1|0,(c[y>>2]|0)-1|0,c[t>>2]|0,k)|0;if((c[A>>2]|0)==0?(c[c[t>>2]>>2]|0)==0:0)c[A>>2]=101;c[c[u>>2]>>2]=(c[B>>2]|0)-(c[r>>2]|0)+1+(c[k>>2]|0);c[p>>2]=c[A>>2];D=c[p>>2]|0;i=E;return D|0}f=c[q>>2]|0;if((a[c[B>>2]>>0]|0)==41){D=f+32|0;c[D>>2]=(c[D>>2]|0)+-1;c[c[u>>2]>>2]=(c[B>>2]|0)-(c[r>>2]|0)+1;c[c[t>>2]>>2]=0;c[p>>2]=101;D=c[p>>2]|0;i=E;return D|0}c[v>>2]=c[f+20>>2];c[w>>2]=0;c[x>>2]=0;while(1){if((c[x>>2]|0)>=(c[(c[q>>2]|0)+16>>2]|0))break;c[C>>2]=c[(c[(c[q>>2]|0)+8>>2]|0)+(c[x>>2]<<2)>>2];c[z>>2]=BQ(c[C>>2]|0)|0;if(((c[y>>2]|0)>(c[z>>2]|0)?(a[(c[B>>2]|0)+(c[z>>2]|0)>>0]|0)==58:0)?(zd(c[C>>2]|0,c[B>>2]|0,c[z>>2]|0)|0)==0:0){D=50;break}c[x>>2]=(c[x>>2]|0)+1}if((D|0)==50){c[v>>2]=c[x>>2];c[w>>2]=(c[B>>2]|0)-(c[r>>2]|0)+(c[z>>2]|0)+1}c[A>>2]=yp(c[q>>2]|0,c[v>>2]|0,(c[r>>2]|0)+(c[w>>2]|0)|0,(c[s>>2]|0)-(c[w>>2]|0)|0,c[t>>2]|0,c[u>>2]|0)|0;D=c[u>>2]|0;c[D>>2]=(c[D>>2]|0)+(c[w>>2]|0);c[p>>2]=c[A>>2];D=c[p>>2]|0;i=E;return D|0}function tp(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;c[d>>2]=Id(c[b>>2]|0)|0;if(!(c[d>>2]|0)){d=c[d>>2]|0;i=e;return d|0}kR(c[d>>2]|0,0,c[b>>2]|0)|0;d=c[d>>2]|0;i=e;return d|0}function up(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;h=i;i=i+16|0;e=h+12|0;j=h+8|0;f=h+4|0;g=h;c[e>>2]=a;c[j>>2]=b;c[f>>2]=d;c[g>>2]=c[j>>2];while(1){if(c[(c[g>>2]|0)+8>>2]|0){d=vp(c[(c[g>>2]|0)+8>>2]|0)|0;d=(d|0)<=(vp(c[f>>2]|0)|0)}else d=0;b=c[(c[g>>2]|0)+8>>2]|0;if(!d)break;c[g>>2]=b}d=c[f>>2]|0;if(b){c[(c[(c[g>>2]|0)+8>>2]|0)+16>>2]=d;c[(c[f>>2]|0)+8>>2]=c[(c[g>>2]|0)+8>>2];e=c[g>>2]|0;j=c[f>>2]|0;j=j+12|0;c[j>>2]=e;f=c[f>>2]|0;j=c[g>>2]|0;j=j+8|0;c[j>>2]=f;i=h;return}else{c[c[e>>2]>>2]=d;e=c[g>>2]|0;j=c[f>>2]|0;j=j+12|0;c[j>>2]=e;f=c[f>>2]|0;j=c[g>>2]|0;j=j+8|0;c[j>>2]=f;i=h;return}}function vp(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return c[c[b>>2]>>2]|0}function wp(b){b=b|0;var c=0,d=0;d=i;i=i+16|0;c=d;a[c>>0]=b;if(((((a[c>>0]|0)!=32?(a[c>>0]|0)!=9:0)?(a[c>>0]|0)!=10:0)?(a[c>>0]|0)!=13:0)?(a[c>>0]|0)!=11:0)c=(a[c>>0]|0)==12;else c=1;i=d;return c&1|0}function xp(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;D=i;i=i+96|0;g=D+88|0;h=D+84|0;j=D+80|0;k=D+76|0;l=D+72|0;E=D+68|0;w=D+64|0;y=D+60|0;u=D+56|0;v=D+52|0;B=D+48|0;s=D+44|0;t=D+36|0;p=D+32|0;A=D+28|0;r=D+24|0;m=D+20|0;n=D+16|0;o=D+12|0;x=D+8|0;q=D+4|0;z=D;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;c[E>>2]=c[c[h>>2]>>2];c[w>>2]=c[c[E>>2]>>2];c[u>>2]=0;c[v>>2]=0;c[B>>2]=0;c[s>>2]=0;c[D+40>>2]=144;c[t>>2]=0;c[y>>2]=wn(c[E>>2]|0,c[(c[h>>2]|0)+4>>2]|0,c[j>>2]|0,c[k>>2]|0,v)|0;a:do if(!(c[y>>2]|0)){c[p>>2]=0;while(1){if(c[y>>2]|0)break;c[r>>2]=0;c[m>>2]=0;c[n>>2]=0;c[o>>2]=0;c[y>>2]=Sb[c[(c[w>>2]|0)+20>>2]&255](c[v>>2]|0,A,r,m,n,o)|0;if(!(c[y>>2]|0)){c[u>>2]=zp(c[u>>2]|0,144+((c[p>>2]|0)*24|0)|0)|0;if(!(c[u>>2]|0))break a;c[B>>2]=zp(c[B>>2]|0,(c[s>>2]|0)+(c[r>>2]|0)|0)|0;if(!(c[B>>2]|0))break a;c[x>>2]=(c[u>>2]|0)+48+72+((c[p>>2]|0)*24|0);E=c[x>>2]|0;c[E>>2]=0;c[E+4>>2]=0;c[E+8>>2]=0;c[E+12>>2]=0;c[E+16>>2]=0;c[E+20>>2]=0;iR((c[B>>2]|0)+(c[s>>2]|0)|0,c[A>>2]|0,c[r>>2]|0)|0;c[s>>2]=(c[s>>2]|0)+(c[r>>2]|0);c[(c[x>>2]|0)+4>>2]=c[r>>2];if((c[n>>2]|0)<(c[k>>2]|0))e=(a[(c[j>>2]|0)+(c[n>>2]|0)>>0]|0)==42;else e=0;c[(c[x>>2]|0)+8>>2]=e&1;if((c[m>>2]|0)>0)e=(a[(c[j>>2]|0)+((c[m>>2]|0)-1)>>0]|0)==94;else e=0;c[(c[x>>2]|0)+12>>2]=e&1;c[t>>2]=(c[p>>2]|0)+1}c[p>>2]=(c[p>>2]|0)+1}Tb[c[(c[w>>2]|0)+16>>2]&255](c[v>>2]|0)|0;c[v>>2]=0;C=14}else C=14;while(0);do if((C|0)==14){if((c[y>>2]|0)==101){c[z>>2]=0;c[u>>2]=zp(c[u>>2]|0,144+((c[t>>2]|0)*24|0)+(c[s>>2]|0)|0)|0;if(!(c[u>>2]|0))break;kR(c[u>>2]|0,0,(c[u>>2]|0)+48+72-(c[u>>2]|0)|0)|0;c[c[u>>2]>>2]=5;c[(c[u>>2]|0)+20>>2]=(c[u>>2]|0)+48;c[(c[(c[u>>2]|0)+20>>2]|0)+68>>2]=c[(c[h>>2]|0)+20>>2];c[(c[(c[u>>2]|0)+20>>2]|0)+64>>2]=c[t>>2];c[z>>2]=(c[(c[u>>2]|0)+20>>2]|0)+72+((c[t>>2]|0)*24|0);if(c[B>>2]|0){iR(c[z>>2]|0,c[B>>2]|0,c[s>>2]|0)|0;Kd(c[B>>2]|0)}c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[(c[(c[u>>2]|0)+20>>2]|0)+64>>2]|0))break;c[(c[(c[u>>2]|0)+20>>2]|0)+72+((c[q>>2]|0)*24|0)>>2]=c[z>>2];c[z>>2]=(c[z>>2]|0)+(c[(c[(c[u>>2]|0)+20>>2]|0)+72+((c[q>>2]|0)*24|0)+4>>2]|0);c[q>>2]=(c[q>>2]|0)+1}c[y>>2]=0}c[c[l>>2]>>2]=c[u>>2];c[g>>2]=c[y>>2];E=c[g>>2]|0;i=D;return E|0}while(0);if(c[v>>2]|0)Tb[c[(c[w>>2]|0)+16>>2]&255](c[v>>2]|0)|0;Kd(c[B>>2]|0);Kd(c[u>>2]|0);c[c[l>>2]>>2]=0;c[g>>2]=7;E=c[g>>2]|0;i=D;return E|0}function yp(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=i;i=i+80|0;j=B+68|0;k=B+64|0;l=B+60|0;m=B+56|0;n=B+52|0;o=B+48|0;y=B+44|0;w=B+40|0;z=B+36|0;v=B+32|0;x=B+28|0;p=B+24|0;A=B+20|0;u=B+16|0;s=B+12|0;q=B+8|0;r=B+4|0;t=B;c[j>>2]=b;c[k>>2]=d;c[l>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[y>>2]=c[c[j>>2]>>2];c[w>>2]=c[c[y>>2]>>2];c[x>>2]=0;c[p>>2]=0;c[p>>2]=0;while(1){if((c[p>>2]|0)>=(c[m>>2]|0))break;if((a[(c[l>>2]|0)+(c[p>>2]|0)>>0]|0)==40)break;if((a[(c[l>>2]|0)+(c[p>>2]|0)>>0]|0)==41)break;if((a[(c[l>>2]|0)+(c[p>>2]|0)>>0]|0)==34)break;c[p>>2]=(c[p>>2]|0)+1}c[c[o>>2]>>2]=c[p>>2];c[z>>2]=wn(c[y>>2]|0,c[(c[j>>2]|0)+4>>2]|0,c[l>>2]|0,c[p>>2]|0,v)|0;if(c[z>>2]|0){e=c[x>>2]|0;A=c[n>>2]|0;c[A>>2]=e;A=c[z>>2]|0;i=B;return A|0}c[u>>2]=0;c[s>>2]=0;c[q>>2]=0;c[r>>2]=0;c[z>>2]=Sb[c[(c[w>>2]|0)+20>>2]&255](c[v>>2]|0,A,u,s,q,r)|0;if(c[z>>2]|0){if((c[p>>2]|0)!=0&(c[z>>2]|0)==101)c[z>>2]=0}else{c[t>>2]=144+(c[u>>2]|0);c[x>>2]=tp(c[t>>2]|0)|0;a:do if(c[x>>2]|0){c[c[x>>2]>>2]=5;c[(c[x>>2]|0)+20>>2]=(c[x>>2]|0)+48;c[(c[(c[x>>2]|0)+20>>2]|0)+64>>2]=1;c[(c[(c[x>>2]|0)+20>>2]|0)+68>>2]=c[k>>2];c[(c[(c[x>>2]|0)+20>>2]|0)+72+4>>2]=c[u>>2];c[(c[(c[x>>2]|0)+20>>2]|0)+72>>2]=(c[(c[x>>2]|0)+20>>2]|0)+96;iR(c[(c[(c[x>>2]|0)+20>>2]|0)+72>>2]|0,c[A>>2]|0,c[u>>2]|0)|0;if((c[q>>2]|0)<(c[m>>2]|0)?(a[(c[l>>2]|0)+(c[q>>2]|0)>>0]|0)==42:0){c[(c[(c[x>>2]|0)+20>>2]|0)+72+8>>2]=1;c[q>>2]=(c[q>>2]|0)+1}while(1){if(!((c[s>>2]|0)>0?(c[(c[j>>2]|0)+12>>2]|0)!=0:0))break a;if((a[(c[l>>2]|0)+((c[s>>2]|0)-1)>>0]|0)!=94)break a;c[(c[(c[x>>2]|0)+20>>2]|0)+72+12>>2]=1;c[s>>2]=(c[s>>2]|0)+-1}}else c[z>>2]=7;while(0);c[c[o>>2]>>2]=c[q>>2]}Tb[c[(c[w>>2]|0)+16>>2]&255](c[v>>2]|0)|0;e=c[x>>2]|0;A=c[n>>2]|0;c[A>>2]=e;A=c[z>>2]|0;i=B;return A|0}function zp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=i;i=i+16|0;d=f+8|0;g=f+4|0;e=f;c[d>>2]=a;c[g>>2]=b;c[e>>2]=Ld(c[d>>2]|0,c[g>>2]|0)|0;if(c[e>>2]|0){g=c[e>>2]|0;i=f;return g|0}Kd(c[d>>2]|0);g=c[e>>2]|0;i=f;return g|0}function Ap(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;Bp(c[(c[d>>2]|0)+20>>2]|0);Kd(c[(c[d>>2]|0)+40>>2]|0);Kd(c[d>>2]|0);i=b;return}function Bp(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;d=f+4|0;e=f;c[d>>2]=a;if(!(c[d>>2]|0)){i=f;return}Kd(c[c[d>>2]>>2]|0);Pm(c[d>>2]|0);a=c[d>>2]|0;b=a+40|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(b|0));c[e>>2]=0;while(1){if((c[e>>2]|0)>=(c[(c[d>>2]|0)+64>>2]|0))break;hn(c[(c[d>>2]|0)+72+((c[e>>2]|0)*24|0)+20>>2]|0);c[(c[d>>2]|0)+72+((c[e>>2]|0)*24|0)+20>>2]=0;c[e>>2]=(c[e>>2]|0)+1}i=f;return}function Cp(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;b=f+8|0;d=f+4|0;e=f;c[b>>2]=a;c[d>>2]=c[(c[b>>2]|0)+24>>2];while(1){if(!(c[d>>2]|0))break;c[e>>2]=c[(c[d>>2]|0)+8>>2];el(c[(c[d>>2]|0)+12>>2]|0);Kd(c[d>>2]|0);c[d>>2]=c[e>>2]}c[(c[b>>2]|0)+24>>2]=0;i=f;return}function Dp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;g=i;i=i+16|0;e=g+8|0;f=g;c[e>>2]=a;a=f;c[a>>2]=b;c[a+4>>2]=d;if((lf()|0)<3008002){i=g;return}d=f;f=c[d+4>>2]|0;a=(c[e>>2]|0)+48|0;c[a>>2]=c[d>>2];c[a+4>>2]=f;i=g;return}function Ep(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if((lf()|0)<3008012){i=d;return}a=(c[b>>2]|0)+56|0;c[a>>2]=c[a>>2]|1;i=d;return}function Uv(f,g,h,j,k){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0;ra=i;i=i+304|0;F=ra+32|0;E=ra+16|0;D=ra;I=ra+288|0;J=ra+284|0;K=ra+280|0;L=ra+276|0;M=ra+272|0;S=ra+268|0;fa=ra+264|0;n=ra+260|0;m=ra+256|0;U=ra+252|0;aa=ra+248|0;Y=ra+244|0;qa=ra+240|0;da=ra+236|0;ba=ra+232|0;ca=ra+228|0;V=ra+224|0;W=ra+220|0;Z=ra+216|0;T=ra+212|0;oa=ra+208|0;Q=ra+204|0;P=ra+200|0;s=ra+180|0;t=ra+176|0;l=ra+172|0;pa=ra+295|0;R=ra+294|0;G=ra+293|0;r=ra+292|0;ea=ra+168|0;ka=ra+164|0;ia=ra+160|0;ma=ra+156|0;la=ra+152|0;na=ra+148|0;ja=ra+144|0;N=ra+140|0;$=ra+136|0;ga=ra+132|0;C=ra+128|0;A=ra+124|0;q=ra+120|0;w=ra+116|0;y=ra+112|0;z=ra+108|0;p=ra+104|0;B=ra+72|0;u=ra+68|0;x=ra+64|0;o=ra+60|0;v=ra+56|0;O=ra+52|0;X=ra+48|0;ha=ra+44|0;_=ra+40|0;c[I>>2]=f;c[J>>2]=g;c[K>>2]=h;c[L>>2]=j;c[M>>2]=k;c[ca>>2]=0;c[V>>2]=0;c[W>>2]=0;c[Z>>2]=-1;c[oa>>2]=0;c[Q>>2]=0;c[P>>2]=0;a[pa>>0]=0;a[R>>0]=0;c[ea>>2]=0;c[ka>>2]=0;c[ia>>2]=0;c[ma>>2]=0;c[N>>2]=0;c[S>>2]=c[c[I>>2]>>2];c[s>>2]=0;c[s+4>>2]=0;c[s+8>>2]=0;c[s+12>>2]=0;c[s+16>>2]=0;a:do if((c[(c[I>>2]|0)+68>>2]|0)==0?(d[(c[S>>2]|0)+65>>0]|0)==0:0){if(((c[K>>2]|0)!=0?(e[(c[K>>2]|0)+6>>1]&256|0)!=0:0)?(c[(c[K>>2]|0)+52>>2]|0)==0:0){c[ea>>2]=c[c[K>>2]>>2];c[c[K>>2]>>2]=0;Wu(c[S>>2]|0,c[K>>2]|0);c[K>>2]=0}c[n>>2]=c[(c[J>>2]|0)+8+8>>2];if((((((c[n>>2]|0)!=0?(c[fa>>2]=DB(c[I>>2]|0,c[J>>2]|0)|0,(c[fa>>2]|0)!=0):0)?(c[t>>2]=Dh(c[S>>2]|0,c[(c[fa>>2]|0)+64>>2]|0)|0,c[l>>2]=(c[(c[S>>2]|0)+16>>2]|0)+(c[t>>2]<<4),c[m>>2]=c[c[l>>2]>>2],(Mw(c[I>>2]|0,18,c[c[fa>>2]>>2]|0,0,c[m>>2]|0)|0)==0):0)?(a[G>>0]=((d[(c[fa>>2]|0)+42>>0]&32|0)==0^1)&1,c[ga>>2]=sC(c[I>>2]|0,c[fa>>2]|0,108,0,C)|0,c[$>>2]=(c[(c[fa>>2]|0)+12>>2]|0)!=0&1,(zx(c[I>>2]|0,c[fa>>2]|0)|0)==0):0)?(tC(c[I>>2]|0,c[fa>>2]|0,c[C>>2]|0)|0)==0:0)?(c[qa>>2]=Pw(c[I>>2]|0)|0,(c[qa>>2]|0)!=0):0){if(!(d[(c[I>>2]|0)+18>>0]|0))uC(c[qa>>2]|0);ax(c[I>>2]|0,((c[K>>2]|0)!=0?1:(c[ga>>2]|0)!=0)&1,c[t>>2]|0);if(!((c[L>>2]|0)==0?(vC(c[I>>2]|0,c[fa>>2]|0,c[K>>2]|0,c[M>>2]|0,c[t>>2]|0)|0)!=0:0))H=17;b:do if((H|0)==17){c[ia>>2]=wC(c[I>>2]|0,c[t>>2]|0,c[fa>>2]|0)|0;n=(c[(c[I>>2]|0)+76>>2]|0)+1|0;c[la>>2]=n;c[na>>2]=n;n=(c[I>>2]|0)+76|0;c[n>>2]=(c[n>>2]|0)+((b[(c[fa>>2]|0)+34>>1]|0)+1);if(d[(c[fa>>2]|0)+42>>0]&16){c[na>>2]=(c[na>>2]|0)+1;n=(c[I>>2]|0)+76|0;c[n>>2]=(c[n>>2]|0)+1}c[ja>>2]=(c[na>>2]|0)+1;a[r>>0]=(d[(c[fa>>2]|0)+42>>0]&128|0)==0;c:do if(c[L>>2]|0){c[U>>2]=0;while(1){if((c[U>>2]|0)>=(c[(c[L>>2]|0)+4>>2]|0))break;c[(c[c[L>>2]>>2]|0)+(c[U>>2]<<3)+4>>2]=-1;c[U>>2]=(c[U>>2]|0)+1}c[U>>2]=0;while(1){if((c[U>>2]|0)>=(c[(c[L>>2]|0)+4>>2]|0))break c;c[aa>>2]=0;while(1){if((c[aa>>2]|0)>=(b[(c[fa>>2]|0)+34>>1]|0))break;n=(Td(c[(c[c[L>>2]>>2]|0)+(c[U>>2]<<3)>>2]|0,c[(c[(c[fa>>2]|0)+4>>2]|0)+((c[aa>>2]|0)*24|0)>>2]|0)|0)==0;k=c[aa>>2]|0;if(n){H=28;break}c[aa>>2]=k+1}do if((H|0)==28){H=0;c[(c[c[L>>2]>>2]|0)+(c[U>>2]<<3)+4>>2]=k;if((c[U>>2]|0)!=(c[aa>>2]|0))a[r>>0]=0;if((c[aa>>2]|0)!=(b[(c[fa>>2]|0)+32>>1]|0))break;c[Z>>2]=c[U>>2]}while(0);if((c[aa>>2]|0)>=(b[(c[fa>>2]|0)+34>>1]|0)){n=(qi(c[(c[c[L>>2]>>2]|0)+(c[U>>2]<<3)>>2]|0)|0)==0;if(n|(a[G>>0]|0)!=0)break;c[Z>>2]=c[U>>2];a[r>>0]=0}c[U>>2]=(c[U>>2]|0)+1}qa=c[I>>2]|0;pa=c[(c[c[L>>2]>>2]|0)+(c[U>>2]<<3)>>2]|0;c[D>>2]=c[J>>2];c[D+4>>2]=0;c[D+8>>2]=pa;Ah(qa,35073,D);a[(c[I>>2]|0)+17>>0]=1;break a}while(0);do if(!(c[K>>2]|0)){c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;c[B+12>>2]=0;c[B+16>>2]=0;c[B+20>>2]=0;c[B+24>>2]=0;c[B+28>>2]=0;c[B>>2]=c[I>>2];c[oa>>2]=-1;if(c[ea>>2]|0){c[ba>>2]=c[c[ea>>2]>>2];if(gy(B,c[ea>>2]|0)|0)break a;else break}else{c[ba>>2]=0;break}}else{B=(c[I>>2]|0)+76|0;D=(c[B>>2]|0)+1|0;c[B>>2]=D;c[A>>2]=D;c[q>>2]=(Bz(c[qa>>2]|0)|0)+1;Vw(c[qa>>2]|0,16,c[A>>2]|0,0,c[q>>2]|0)|0;ZA(s,13,c[A>>2]|0);c[s+8>>2]=(d[r>>0]|0)!=0?c[ja>>2]|0:0;c[s+12>>2]=b[(c[fa>>2]|0)+34>>1];c[w>>2]=Cv(c[I>>2]|0,c[K>>2]|0,s)|0;c[ka>>2]=c[s+8>>2];if(c[w>>2]|0)break a;if(d[(c[S>>2]|0)+65>>0]|0)break a;if(c[(c[I>>2]|0)+68>>2]|0)break a;xC(c[qa>>2]|0,c[A>>2]|0);Fz(c[qa>>2]|0,(c[q>>2]|0)-1|0);c[ba>>2]=c[c[c[K>>2]>>2]>>2];if(!((c[ga>>2]|0)==0?(yC(c[I>>2]|0,c[t>>2]|0,c[fa>>2]|0)|0)==0:0))a[pa>>0]=1;if(!(a[pa>>0]|0))break;B=(c[I>>2]|0)+72|0;D=c[B>>2]|0;c[B>>2]=D+1;c[oa>>2]=D;c[y>>2]=Wz(c[I>>2]|0)|0;c[z>>2]=Wz(c[I>>2]|0)|0;Rw(c[qa>>2]|0,57,c[oa>>2]|0,c[ba>>2]|0)|0;c[p>>2]=xz(c[qa>>2]|0,18,c[s+4>>2]|0)|0;Vw(c[qa>>2]|0,49,c[ka>>2]|0,c[ba>>2]|0,c[y>>2]|0)|0;Rw(c[qa>>2]|0,74,c[oa>>2]|0,c[z>>2]|0)|0;Vw(c[qa>>2]|0,75,c[oa>>2]|0,c[y>>2]|0,c[z>>2]|0)|0;Ez(c[qa>>2]|0,c[p>>2]|0)|0;Fz(c[qa>>2]|0,c[p>>2]|0);_z(c[I>>2]|0,c[y>>2]|0);_z(c[I>>2]|0,c[z>>2]|0)}while(0);if((c[L>>2]|0)==0&(c[ba>>2]|0)>0)c[Z>>2]=b[(c[fa>>2]|0)+32>>1];c[U>>2]=0;while(1){if((c[U>>2]|0)>=(b[(c[fa>>2]|0)+34>>1]|0))break;c[ca>>2]=(c[ca>>2]|0)+((d[(c[(c[fa>>2]|0)+4>>2]|0)+((c[U>>2]|0)*24|0)+23>>0]&2|0)!=0?1:0);c[U>>2]=(c[U>>2]|0)+1}if((c[L>>2]|0)==0&(c[ba>>2]|0)!=0?(c[ba>>2]|0)!=((b[(c[fa>>2]|0)+34>>1]|0)-(c[ca>>2]|0)|0):0){qa=c[I>>2]|0;oa=(b[(c[fa>>2]|0)+34>>1]|0)-(c[ca>>2]|0)|0;pa=c[ba>>2]|0;c[E>>2]=c[J>>2];c[E+4>>2]=0;c[E+8>>2]=oa;c[E+12>>2]=pa;Ah(qa,35105,E);break a}do if(c[L>>2]|0){if((c[ba>>2]|0)==(c[(c[L>>2]|0)+4>>2]|0))break;qa=c[I>>2]|0;pa=c[(c[L>>2]|0)+4>>2]|0;c[F>>2]=c[ba>>2];c[F+4>>2]=pa;Ah(qa,35157,F);break a}while(0);if(c[(c[S>>2]|0)+24>>2]&128){E=(c[I>>2]|0)+76|0;F=(c[E>>2]|0)+1|0;c[E>>2]=F;c[ma>>2]=F;Rw(c[qa>>2]|0,22,0,c[ma>>2]|0)|0}d:do if(!(c[$>>2]|0)){c[u>>2]=gC(c[I>>2]|0,c[fa>>2]|0,55,0,-1,0,V,W)|0;c[N>>2]=Fw(c[S>>2]|0,(c[u>>2]|0)+1<<2,0)|0;if(!(c[N>>2]|0))break a;c[U>>2]=0;while(1){if((c[U>>2]|0)>=(c[u>>2]|0))break d;E=(c[I>>2]|0)+76|0;F=(c[E>>2]|0)+1|0;c[E>>2]=F;c[(c[N>>2]|0)+(c[U>>2]<<2)>>2]=F;c[U>>2]=(c[U>>2]|0)+1}}while(0);do if(a[pa>>0]|0){c[Q>>2]=xz(c[qa>>2]|0,108,c[oa>>2]|0)|0;c[P>>2]=Bz(c[qa>>2]|0)|0}else{if(!(c[K>>2]|0))break;F=xz(c[qa>>2]|0,18,c[s+4>>2]|0)|0;c[P>>2]=F;c[Q>>2]=F}while(0);c[T>>2]=Cz(c[qa>>2]|0)|0;if(c[C>>2]&1){c[x>>2]=kA(c[I>>2]|0,(b[(c[fa>>2]|0)+34>>1]|0)+1|0)|0;if((c[Z>>2]|0)<0)Rw(c[qa>>2]|0,22,-1,c[x>>2]|0)|0;else{if(a[pa>>0]|0)Vw(c[qa>>2]|0,47,c[oa>>2]|0,c[Z>>2]|0,c[x>>2]|0)|0;else xA(c[I>>2]|0,c[(c[(c[ea>>2]|0)+4>>2]|0)+((c[Z>>2]|0)*20|0)>>2]|0,c[x>>2]|0);c[o>>2]=xz(c[qa>>2]|0,77,c[x>>2]|0)|0;Rw(c[qa>>2]|0,22,-1,c[x>>2]|0)|0;Fz(c[qa>>2]|0,c[o>>2]|0);xz(c[qa>>2]|0,38,c[x>>2]|0)|0}c[aa>>2]=0;c[U>>2]=0;while(1){if((c[U>>2]|0)>=(b[(c[fa>>2]|0)+34>>1]|0))break;e:do if(c[L>>2]|0){c[aa>>2]=0;while(1){if((c[aa>>2]|0)>=(c[(c[L>>2]|0)+4>>2]|0))break e;if((c[(c[c[L>>2]>>2]|0)+(c[aa>>2]<<3)+4>>2]|0)==(c[U>>2]|0))break e;c[aa>>2]=(c[aa>>2]|0)+1}}while(0);do if((a[pa>>0]|0)!=0|(c[ea>>2]|0)!=0){if((c[L>>2]|0)!=0?(c[aa>>2]|0)>=(c[(c[L>>2]|0)+4>>2]|0):0){H=90;break}if(a[pa>>0]|0){Vw(c[qa>>2]|0,47,c[oa>>2]|0,c[aa>>2]|0,(c[x>>2]|0)+(c[U>>2]|0)+1|0)|0;break}else{zC(c[I>>2]|0,c[(c[(c[ea>>2]|0)+4>>2]|0)+((c[aa>>2]|0)*20|0)>>2]|0,(c[x>>2]|0)+(c[U>>2]|0)+1|0);break}}else H=90;while(0);if((H|0)==90){H=0;xA(c[I>>2]|0,c[(c[(c[fa>>2]|0)+4>>2]|0)+((c[U>>2]|0)*24|0)+4>>2]|0,(c[x>>2]|0)+(c[U>>2]|0)+1|0)}if(!(c[L>>2]|0))c[aa>>2]=(c[aa>>2]|0)+1;c[U>>2]=(c[U>>2]|0)+1}if(!(c[$>>2]|0))AC(c[qa>>2]|0,c[fa>>2]|0,(c[x>>2]|0)+1|0);BC(c[I>>2]|0,c[ga>>2]|0,108,0,1,c[fa>>2]|0,(c[x>>2]|0)-(b[(c[fa>>2]|0)+34>>1]|0)-1|0,c[M>>2]|0,c[T>>2]|0);nA(c[I>>2]|0,c[x>>2]|0,(b[(c[fa>>2]|0)+34>>1]|0)+1|0)}do if(!(c[$>>2]|0)){if(d[(c[fa>>2]|0)+42>>0]&16)Rw(c[qa>>2]|0,25,0,c[la>>2]|0)|0;f:do if((c[Z>>2]|0)>=0){do if(a[pa>>0]|0)Vw(c[qa>>2]|0,47,c[oa>>2]|0,c[Z>>2]|0,c[na>>2]|0)|0;else{if(c[K>>2]|0){Rw(c[qa>>2]|0,30,(c[ka>>2]|0)+(c[Z>>2]|0)|0,c[na>>2]|0)|0;break}xA(c[I>>2]|0,c[(c[(c[ea>>2]|0)+4>>2]|0)+((c[Z>>2]|0)*20|0)>>2]|0,c[na>>2]|0);c[v>>2]=Mz(c[qa>>2]|0,-1)|0;if(!(c[v>>2]|0))break;if((d[c[v>>2]>>0]|0)!=25)break;if(d[(c[fa>>2]|0)+42>>0]&16)break;a[R>>0]=1;a[c[v>>2]>>0]=74;c[(c[v>>2]|0)+4>>2]=c[V>>2];c[(c[v>>2]|0)+8>>2]=c[na>>2];c[(c[v>>2]|0)+12>>2]=c[ia>>2]}while(0);if(a[R>>0]|0)break;k=c[qa>>2]|0;if(d[(c[fa>>2]|0)+42>>0]&16){c[O>>2]=Bz(k)|0;Rw(c[qa>>2]|0,76,c[na>>2]|0,(c[O>>2]|0)+2|0)|0}else{c[O>>2]=xz(k,77,c[na>>2]|0)|0;Vw(c[qa>>2]|0,74,c[V>>2]|0,c[na>>2]|0,c[ia>>2]|0)|0;Fz(c[qa>>2]|0,c[O>>2]|0)}xz(c[qa>>2]|0,38,c[na>>2]|0)|0}else{do if(!(d[(c[fa>>2]|0)+42>>0]&16)){if(d[G>>0]|0)break;Vw(c[qa>>2]|0,74,c[V>>2]|0,c[na>>2]|0,c[ia>>2]|0)|0;a[R>>0]=1;break f}while(0);Rw(c[qa>>2]|0,25,0,c[na>>2]|0)|0}while(0);CC(c[I>>2]|0,c[ia>>2]|0,c[na>>2]|0);c[ca>>2]=0;c[U>>2]=0;while(1){if((c[U>>2]|0)>=(b[(c[fa>>2]|0)+34>>1]|0))break;c[X>>2]=(c[na>>2]|0)+1+(c[U>>2]|0);g:do if((c[U>>2]|0)==(b[(c[fa>>2]|0)+32>>1]|0))xz(c[qa>>2]|0,26,c[X>>2]|0)|0;else{h:do if(!(c[L>>2]|0))if(d[(c[(c[fa>>2]|0)+4>>2]|0)+((c[U>>2]|0)*24|0)+23>>0]&2){c[aa>>2]=-1;c[ca>>2]=(c[ca>>2]|0)+1;break}else{c[aa>>2]=(c[U>>2]|0)-(c[ca>>2]|0);break}else{c[aa>>2]=0;while(1){if((c[aa>>2]|0)>=(c[(c[L>>2]|0)+4>>2]|0))break h;if((c[(c[c[L>>2]>>2]|0)+(c[aa>>2]<<3)+4>>2]|0)==(c[U>>2]|0))break h;c[aa>>2]=(c[aa>>2]|0)+1}}while(0);do if(!((c[aa>>2]|0)<0|(c[ba>>2]|0)==0)){if((c[L>>2]|0)!=0?(c[aa>>2]|0)>=(c[(c[L>>2]|0)+4>>2]|0):0)break;if(a[pa>>0]|0){Vw(c[qa>>2]|0,47,c[oa>>2]|0,c[aa>>2]|0,c[X>>2]|0)|0;break g}if(!(c[K>>2]|0)){xA(c[I>>2]|0,c[(c[(c[ea>>2]|0)+4>>2]|0)+((c[aa>>2]|0)*20|0)>>2]|0,c[X>>2]|0);break g}if((c[ka>>2]|0)==(c[ja>>2]|0))break g;Rw(c[qa>>2]|0,31,(c[ka>>2]|0)+(c[aa>>2]|0)|0,c[X>>2]|0)|0;break g}while(0);DC(c[I>>2]|0,c[(c[(c[fa>>2]|0)+4>>2]|0)+((c[U>>2]|0)*24|0)+4>>2]|0,c[X>>2]|0)}while(0);c[U>>2]=(c[U>>2]|0)+1}if(d[(c[fa>>2]|0)+42>>0]&16){c[ha>>2]=Ax(c[S>>2]|0,c[fa>>2]|0)|0;EC(c[I>>2]|0,c[fa>>2]|0);Uw(c[qa>>2]|0,12,1,(b[(c[fa>>2]|0)+34>>1]|0)+2|0,c[la>>2]|0,c[ha>>2]|0,-10)|0;Fh(c[qa>>2]|0,((c[M>>2]|0)==10?2:c[M>>2]|0)&255);Bx(c[I>>2]|0);break}else{FC(c[I>>2]|0,c[fa>>2]|0,c[N>>2]|0,c[V>>2]|0,c[W>>2]|0,c[la>>2]|0,0,(c[Z>>2]|0)>=0&255,c[M>>2]&255,c[T>>2]|0,_,0);GC(c[I>>2]|0,c[fa>>2]|0,0,c[la>>2]|0,0,0);HC(c[I>>2]|0,c[fa>>2]|0,c[V>>2]|0,c[W>>2]|0,c[la>>2]|0,c[N>>2]|0,0,d[R>>0]|0,(c[_>>2]|0)==0&1);break}}while(0);if(c[(c[S>>2]|0)+24>>2]&128)Rw(c[qa>>2]|0,37,c[ma>>2]|0,1)|0;if(c[ga>>2]|0)BC(c[I>>2]|0,c[ga>>2]|0,108,0,2,c[fa>>2]|0,(c[ja>>2]|0)-2-(b[(c[fa>>2]|0)+34>>1]|0)|0,c[M>>2]|0,c[T>>2]|0);Gz(c[qa>>2]|0,c[T>>2]|0);do if(a[pa>>0]|0){Rw(c[qa>>2]|0,7,c[oa>>2]|0,c[P>>2]|0)|0;Fz(c[qa>>2]|0,c[Q>>2]|0);xz(c[qa>>2]|0,61,c[oa>>2]|0)|0}else{if(!(c[K>>2]|0))break;Ez(c[qa>>2]|0,c[P>>2]|0)|0;Fz(c[qa>>2]|0,c[Q>>2]|0)}while(0);if((c[$>>2]|0)!=0?1:(d[(c[fa>>2]|0)+42>>0]&16|0)!=0)break;if((c[V>>2]|0)<(c[W>>2]|0))xz(c[qa>>2]|0,61,c[V>>2]|0)|0;c[Y>>2]=0;c[da>>2]=c[(c[fa>>2]|0)+8>>2];while(1){if(!(c[da>>2]|0))break b;xz(c[qa>>2]|0,61,(c[Y>>2]|0)+(c[W>>2]|0)|0)|0;c[da>>2]=c[(c[da>>2]|0)+20>>2];c[Y>>2]=(c[Y>>2]|0)+1}}while(0);if((d[(c[I>>2]|0)+18>>0]|0)==0?(c[(c[I>>2]|0)+420>>2]|0)==0:0)IC(c[I>>2]|0);if(((c[(c[S>>2]|0)+24>>2]&128|0)!=0?(a[(c[I>>2]|0)+18>>0]|0)==0:0)?(c[(c[I>>2]|0)+420>>2]|0)==0:0){Rw(c[qa>>2]|0,33,c[ma>>2]|0,1)|0;OB(c[qa>>2]|0,1);PB(c[qa>>2]|0,0,0,35182,0)|0}}}while(0);Yu(c[S>>2]|0,c[J>>2]|0);Vu(c[S>>2]|0,c[ea>>2]|0);Wu(c[S>>2]|0,c[K>>2]|0);_u(c[S>>2]|0,c[L>>2]|0);Sf(c[S>>2]|0,c[N>>2]|0);i=ra;return}function Vv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;f=k+16|0;e=k+12|0;g=k+8|0;h=k+4|0;j=k;c[e>>2]=a;c[g>>2]=b;c[h>>2]=d;if((c[g>>2]|0)==0?(c[g>>2]=ph(c[e>>2]|0,8,0)|0,(c[g>>2]|0)==0):0){c[f>>2]=0;j=c[f>>2]|0;i=k;return j|0}d=rC(c[e>>2]|0,c[c[g>>2]>>2]|0,8,(c[g>>2]|0)+4|0,j)|0;c[c[g>>2]>>2]=d;e=c[e>>2]|0;if((c[j>>2]|0)<0){_u(e,c[g>>2]|0);c[f>>2]=0;j=c[f>>2]|0;i=k;return j|0}else{h=Dw(e,c[h>>2]|0)|0;c[(c[c[g>>2]>>2]|0)+(c[j>>2]<<3)>>2]=h;c[f>>2]=c[g>>2];j=c[f>>2]|0;i=k;return j|0}return 0}function Wv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;f=e+8|0;h=e+4|0;g=e;c[f>>2]=a;c[h>>2]=b;c[g>>2]=d;c[(c[f>>2]|0)+4>>2]=c[c[h>>2]>>2];c[(c[f>>2]|0)+8>>2]=(c[c[g>>2]>>2]|0)+(c[(c[g>>2]|0)+4>>2]|0);i=e;return}function Xv(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+64|0;p=t+16|0;o=t+8|0;
  76. f=t+44|0;g=t+40|0;k=t+36|0;r=t+32|0;q=t+50|0;n=t+28|0;l=t;j=t+24|0;m=t+48|0;h=t+20|0;c[f>>2]=d;c[g>>2]=e;c[k>>2]=c[c[f>>2]>>2];if(!(c[g>>2]|0)){i=t;return}c[r>>2]=c[(c[g>>2]|0)+8>>2];do if(a[(c[r>>2]|0)+1>>0]|0){b[q>>1]=0;c[n>>2]=If(c[r>>2]|0)|0;if((a[c[r>>2]>>0]|0)==63){c[j>>2]=0==(Hi((c[r>>2]|0)+1|0,l,(c[n>>2]|0)-1|0,1)|0)&1;s=c[l>>2]&65535;b[q>>1]=s;b[(c[g>>2]|0)+32>>1]=s;s=l;d=c[s+4>>2]|0;if(!(!((c[j>>2]|0)==0|((d|0)<0|(d|0)==0&(c[s>>2]|0)>>>0<1))?(d=l,m=c[d+4>>2]|0,s=c[(c[k>>2]|0)+88+36>>2]|0,e=((s|0)<0)<<31>>31,!((m|0)>(e|0)|((m|0)==(e|0)?(c[d>>2]|0)>>>0>s>>>0:0))):0)){s=c[f>>2]|0;c[o>>2]=c[(c[k>>2]|0)+88+36>>2];Ah(s,35007,o);b[q>>1]=0}o=l;e=c[o+4>>2]|0;s=b[(c[f>>2]|0)+444>>1]|0;d=((s|0)<0)<<31>>31;if((e|0)>(d|0)|((e|0)==(d|0)?(c[o>>2]|0)>>>0>s>>>0:0))b[(c[f>>2]|0)+444>>1]=c[l>>2]}else{b[m>>1]=0;while(1){if((b[m>>1]|0)>=(c[(c[f>>2]|0)+448>>2]|0))break;if((c[(c[(c[f>>2]|0)+476>>2]|0)+(b[m>>1]<<2)>>2]|0)!=0?(yQ(c[(c[(c[f>>2]|0)+476>>2]|0)+(b[m>>1]<<2)>>2]|0,c[r>>2]|0)|0)==0:0){s=14;break}b[m>>1]=(b[m>>1]|0)+1<<16>>16}if((s|0)==14){s=(b[m>>1]|0)+1&65535;b[q>>1]=s;b[(c[g>>2]|0)+32>>1]=s}if(!(b[q>>1]|0)){o=(c[f>>2]|0)+444|0;s=(b[o>>1]|0)+1<<16>>16;b[o>>1]=s;b[(c[g>>2]|0)+32>>1]=s;b[q>>1]=s}}if((b[q>>1]|0)>0){do if((b[q>>1]|0)>(c[(c[f>>2]|0)+448>>2]|0)){c[h>>2]=Ew(c[k>>2]|0,c[(c[f>>2]|0)+476>>2]|0,b[q>>1]<<2,0)|0;if(!(c[h>>2]|0)){i=t;return}else{c[(c[f>>2]|0)+476>>2]=c[h>>2];kR((c[h>>2]|0)+(c[(c[f>>2]|0)+448>>2]<<2)|0,0,(b[q>>1]|0)-(c[(c[f>>2]|0)+448>>2]|0)<<2|0)|0;c[(c[f>>2]|0)+448>>2]=b[q>>1];break}}while(0);if((a[c[r>>2]>>0]|0)==63?(c[(c[(c[f>>2]|0)+476>>2]|0)+((b[q>>1]|0)-1<<2)>>2]|0)!=0:0)break;Sf(c[k>>2]|0,c[(c[(c[f>>2]|0)+476>>2]|0)+((b[q>>1]|0)-1<<2)>>2]|0);s=Iw(c[k>>2]|0,c[r>>2]|0,c[n>>2]|0,0)|0;c[(c[(c[f>>2]|0)+476>>2]|0)+((b[q>>1]|0)-1<<2)>>2]=s}}else{r=(c[f>>2]|0)+444|0;s=(b[r>>1]|0)+1<<16>>16;b[r>>1]=s;b[(c[g>>2]|0)+32>>1]=s}while(0);if(c[(c[f>>2]|0)+68>>2]|0){i=t;return}if((b[(c[f>>2]|0)+444>>1]|0)<=(c[(c[k>>2]|0)+88+36>>2]|0)){i=t;return}Ah(c[f>>2]|0,35050,p);i=t;return}function Yv(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;f=l+16|0;g=l+12|0;h=l+8|0;j=l+4|0;k=l;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;if((c[(c[h>>2]|0)+4>>2]|0)>>>0<=0){a=c[g>>2]|0;i=l;return a|0}c[k>>2]=cz(c[c[f>>2]>>2]|0,95,c[h>>2]|0,c[j>>2]|0)|0;if(!(c[k>>2]|0)){a=c[g>>2]|0;i=l;return a|0}c[(c[k>>2]|0)+12>>2]=c[g>>2];a=(c[k>>2]|0)+4|0;c[a>>2]=c[a>>2]|4352;c[g>>2]=c[k>>2];a=c[g>>2]|0;i=l;return a|0}function Zv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;e=k+20|0;f=k+16|0;g=k+12|0;l=k+8|0;j=k+4|0;h=k;c[f>>2]=a;c[g>>2]=b;c[l>>2]=d;c[h>>2]=c[c[f>>2]>>2];c[j>>2]=cz(c[h>>2]|0,151,c[l>>2]|0,1)|0;if(!(c[j>>2]|0)){Vu(c[h>>2]|0,c[g>>2]|0);c[e>>2]=0;l=c[e>>2]|0;i=k;return l|0}else{c[(c[j>>2]|0)+20>>2]=c[g>>2];dw(c[f>>2]|0,c[j>>2]|0);c[e>>2]=c[j>>2];l=c[e>>2]|0;i=k;return l|0}return 0}function _v(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+32|0;h=g+16|0;m=g+12|0;l=g+8|0;k=g+4|0;j=g;c[h>>2]=a;c[m>>2]=b;c[l>>2]=d;c[k>>2]=e;c[j>>2]=f;f=rv(c[m>>2]|0,c[l>>2]|0,c[c[k>>2]>>2]|0,c[c[j>>2]>>2]|0,0)|0;c[c[h>>2]>>2]=f;c[(c[h>>2]|0)+4>>2]=c[(c[k>>2]|0)+4>>2];c[(c[h>>2]|0)+8>>2]=c[(c[j>>2]|0)+8>>2];i=g;return}function $v(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+16|0;e=g+8|0;h=g+4|0;f=g;c[e>>2]=a;c[h>>2]=b;c[f>>2]=d;if(!(c[h>>2]|0)){i=g;return}h=rv(c[e>>2]|0,19,c[c[f>>2]>>2]|0,0,0)|0;c[c[f>>2]>>2]=h;i=g;return}function aw(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+32|0;h=g+16|0;m=g+12|0;l=g+8|0;k=g+4|0;j=g;c[h>>2]=a;c[m>>2]=b;c[l>>2]=d;c[k>>2]=e;c[j>>2]=f;f=rv(c[m>>2]|0,c[l>>2]|0,c[c[k>>2]>>2]|0,0,0)|0;c[c[h>>2]>>2]=f;c[(c[h>>2]|0)+4>>2]=c[(c[k>>2]|0)+4>>2];c[(c[h>>2]|0)+8>>2]=(c[c[j>>2]>>2]|0)+(c[(c[j>>2]|0)+4>>2]|0);i=g;return}function bw(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+32|0;n=m+16|0;h=m+12|0;j=m+8|0;k=m+4|0;l=m;c[n>>2]=b;c[h>>2]=e;c[j>>2]=f;c[k>>2]=g;c[l>>2]=c[c[n>>2]>>2];if(!((c[j>>2]|0)!=0&(c[h>>2]|0)!=0)){i=m;return}if((d[c[h>>2]>>0]|0|0)!=101){i=m;return}a[c[j>>2]>>0]=c[k>>2];Zu(c[l>>2]|0,c[(c[j>>2]|0)+16>>2]|0);c[(c[j>>2]|0)+16>>2]=0;i=m;return}function cw(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;g=i;i=i+32|0;h=g+16|0;m=g+12|0;l=g+8|0;j=g+4|0;k=g;c[h>>2]=a;c[m>>2]=b;c[l>>2]=d;c[j>>2]=e;c[k>>2]=f;f=rv(c[m>>2]|0,c[l>>2]|0,c[c[j>>2]>>2]|0,0,0)|0;c[c[h>>2]>>2]=f;c[(c[h>>2]|0)+4>>2]=c[c[k>>2]>>2];c[(c[h>>2]|0)+8>>2]=c[(c[j>>2]|0)+8>>2];i=g;return}function dw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f+4|0;e=f;c[d>>2]=a;c[e>>2]=b;if(c[(c[d>>2]|0)+68>>2]|0){i=f;return}ez(c[e>>2]|0);Ey(c[d>>2]|0,c[(c[e>>2]|0)+24>>2]|0)|0;i=f;return}function ew(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;m=i;i=i+32|0;l=m;h=m+28|0;p=m+24|0;j=m+20|0;o=m+16|0;n=m+12|0;k=m+8|0;c[h>>2]=a;c[p>>2]=b;c[j>>2]=e;c[o>>2]=f;c[n>>2]=g;c[k>>2]=Gv(c[h>>2]|0,c[p>>2]|0,0)|0;if((c[o>>2]|0)!=0|(c[n>>2]|0)!=-1?(d[(c[c[h>>2]>>2]|0)+140+5>>0]|0|0)==0:0){p=c[h>>2]|0;o=c[c[j>>2]>>2]|0;c[l>>2]=c[(c[j>>2]|0)+4>>2];c[l+4>>2]=o;Ah(p,34967,l)}Hv(c[h>>2]|0,c[k>>2]|0,c[j>>2]|0,1);i=m;return c[k>>2]|0}function fw(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+80|0;m=u+16|0;l=u+8|0;t=u;p=u+68|0;q=u+64|0;r=u+60|0;h=u+56|0;k=u+52|0;s=u+48|0;g=u+44|0;f=u+40|0;j=u+36|0;n=u+32|0;o=u+28|0;c[p>>2]=b;c[q>>2]=d;c[r>>2]=e;c[s>>2]=c[c[p>>2]>>2];if(a[(c[s>>2]|0)+65>>0]|0){s=c[s>>2]|0;t=c[q>>2]|0;Yu(s,t);i=u;return}if(pz(c[p>>2]|0)|0){s=c[s>>2]|0;t=c[q>>2]|0;Yu(s,t);i=u;return}c[h>>2]=Fj(c[s>>2]|0,c[(c[q>>2]|0)+8+8>>2]|0,c[(c[q>>2]|0)+8+4>>2]|0)|0;if(!(c[h>>2]|0)){f=c[p>>2]|0;g=c[q>>2]|0;if(c[r>>2]|0)zB(f,c[g+8+4>>2]|0);else{c[t>>2]=g;c[t+4>>2]=0;Ah(f,34757,t)}a[(c[p>>2]|0)+17>>0]=1;s=c[s>>2]|0;t=c[q>>2]|0;Yu(s,t);i=u;return}if(a[(c[h>>2]|0)+55>>0]&3){t=c[p>>2]|0;c[l>>2]=0;Ah(t,34775,l);s=c[s>>2]|0;t=c[q>>2]|0;Yu(s,t);i=u;return}c[g>>2]=Dh(c[s>>2]|0,c[(c[h>>2]|0)+24>>2]|0)|0;c[f>>2]=10;c[j>>2]=c[(c[h>>2]|0)+12>>2];c[n>>2]=c[(c[(c[s>>2]|0)+16>>2]|0)+(c[g>>2]<<4)>>2];c[o>>2]=(c[g>>2]|0)==1?20769:20788;if(Mw(c[p>>2]|0,9,c[o>>2]|0,0,c[n>>2]|0)|0){s=c[s>>2]|0;t=c[q>>2]|0;Yu(s,t);i=u;return}if(c[g>>2]|0)c[f>>2]=12;if(Mw(c[p>>2]|0,c[f>>2]|0,c[c[h>>2]>>2]|0,c[c[j>>2]>>2]|0,c[n>>2]|0)|0){s=c[s>>2]|0;t=c[q>>2]|0;Yu(s,t);i=u;return}c[k>>2]=Pw(c[p>>2]|0)|0;if(!(c[k>>2]|0)){s=c[s>>2]|0;t=c[q>>2]|0;Yu(s,t);i=u;return}ax(c[p>>2]|0,1,c[g>>2]|0);t=c[p>>2]|0;o=(c[g>>2]|0)==1?20769:20788;r=c[c[h>>2]>>2]|0;c[m>>2]=c[(c[(c[s>>2]|0)+16>>2]|0)+(c[g>>2]<<4)>>2];c[m+4>>2]=o;c[m+8>>2]=r;Ow(t,34848,m);pC(c[p>>2]|0,c[g>>2]|0,31725,c[c[h>>2]>>2]|0);Qw(c[p>>2]|0,c[g>>2]|0);qC(c[p>>2]|0,c[(c[h>>2]|0)+44>>2]|0,c[g>>2]|0);Uw(c[k>>2]|0,126,c[g>>2]|0,0,0,c[c[h>>2]>>2]|0,0)|0;s=c[s>>2]|0;t=c[q>>2]|0;Yu(s,t);i=u;return}function gw(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;c[b>>2]=Pw(c[e>>2]|0)|0;if(!(c[b>>2]|0)){i=d;return}Rw(c[b>>2]|0,10,0,0)|0;Hh(c[b>>2]|0,0);i=d;return}function hw(f,g,h,j,k){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Ob=0,Pb=0,Qb=0,Rb=0,Sb=0,Tb=0,Ub=0,Vb=0,Wb=0,Xb=0,Yb=0,Zb=0,_b=0,$b=0,ac=0;ac=i;i=i+800|0;Ia=ac+264|0;Sb=ac+256|0;Rb=ac+248|0;db=ac+240|0;Aa=ac+208|0;za=ac+200|0;ya=ac+184|0;xa=ac+160|0;Qb=ac+144|0;Pb=ac+128|0;wa=ac+112|0;va=ac+96|0;cb=ac+72|0;ua=ac+64|0;ta=ac+56|0;sa=ac+48|0;r=ac+40|0;p=ac+32|0;Xb=ac+792|0;l=ac+788|0;s=ac+784|0;n=ac+780|0;o=ac+776|0;_b=ac+772|0;$b=ac+768|0;fb=ac+764|0;m=ac+760|0;q=ac+744|0;Wb=ac+736|0;X=ac+732|0;ra=ac+728|0;Y=ac+724|0;la=ac+720|0;Zb=ac+716|0;Fa=ac+712|0;Yb=ac+708|0;Hb=ac+704|0;v=ac+700|0;na=ac+696|0;$=ac+692|0;Ga=ac+688|0;aa=ac+684|0;B=ac+680|0;T=ac+676|0;Pa=ac+672|0;Da=ac+668|0;E=ac+664|0;ga=ac+660|0;U=ac+656|0;F=ac+652|0;V=ac+648|0;Ba=ac+644|0;Z=ac+640|0;ha=ac+636|0;R=ac+24|0;ba=ac+632|0;D=ac+628|0;y=ac+624|0;N=ac+620|0;S=ac+616|0;z=ac+612|0;oa=ac+608|0;pa=ac+604|0;qa=ac+16|0;ma=ac+600|0;Q=ac+596|0;Ea=ac+592|0;Za=ac+588|0;Ma=ac+584|0;Ra=ac+580|0;Ta=ac+576|0;Ua=ac+572|0;Ya=ac+568|0;ea=ac+564|0;H=ac+560|0;ia=ac+556|0;Db=ac+552|0;Jb=ac+548|0;lb=ac+544|0;Bb=ac+540|0;kb=ac+796|0;fa=ac+536|0;ja=ac+532|0;I=ac+528|0;A=ac+516|0;J=ac+512|0;K=ac+508|0;_=ac+504|0;ca=ac+500|0;da=ac+496|0;ka=ac+492|0;L=ac+488|0;W=ac+484|0;Va=ac+480|0;_a=ac+476|0;Xa=ac+472|0;Wa=ac+468|0;Na=ac+464|0;Qa=ac+460|0;Sa=ac+456|0;eb=ac+452|0;ab=ac+448|0;$a=ac+444|0;bb=ac+440|0;Ka=ac+436|0;Ja=ac+432|0;La=ac+428|0;Oa=ac+424|0;mb=ac+420|0;rb=ac+416|0;hb=ac+412|0;Cb=ac+408|0;qb=ac+404|0;Tb=ac+400|0;Mb=ac+396|0;jb=ac+392|0;Kb=ac+388|0;Eb=ac+384|0;Lb=ac+380|0;Fb=ac+376|0;Gb=ac+372|0;Ib=ac+368|0;Ab=ac+364|0;ob=ac+360|0;pb=ac+356|0;Nb=ac+352|0;Ub=ac+348|0;sb=ac+344|0;ub=ac+340|0;tb=ac+336|0;vb=ac+332|0;wb=ac+328|0;xb=ac+324|0;ib=ac+320|0;Ob=ac+316|0;yb=ac+312|0;zb=ac+308|0;nb=ac+304|0;gb=ac+300|0;Ha=ac+296|0;P=ac+292|0;w=ac+288|0;x=ac+284|0;M=ac+280|0;Ca=ac+276|0;O=ac+272|0;G=ac+268|0;t=ac+8|0;u=ac;c[Xb>>2]=f;c[l>>2]=g;c[s>>2]=h;c[n>>2]=j;c[o>>2]=k;c[_b>>2]=0;c[$b>>2]=0;c[fb>>2]=0;c[Y>>2]=0;c[Zb>>2]=c[c[Xb>>2]>>2];c[Yb>>2]=Pw(c[Xb>>2]|0)|0;if(!(c[Yb>>2]|0)){i=ac;return}KB(c[Yb>>2]|0);c[(c[Xb>>2]|0)+76>>2]=2;c[Wb>>2]=tz(c[Xb>>2]|0,c[l>>2]|0,c[s>>2]|0,m)|0;if((c[Wb>>2]|0)<0){i=ac;return}c[Fa>>2]=(c[(c[Zb>>2]|0)+16>>2]|0)+(c[Wb>>2]<<4);if((c[Wb>>2]|0)==1?(cx(c[Xb>>2]|0)|0)!=0:0){i=ac;return}c[_b>>2]=Dw(c[Zb>>2]|0,c[m>>2]|0)|0;if(!(c[_b>>2]|0)){i=ac;return}k=c[Zb>>2]|0;l=c[n>>2]|0;if(c[o>>2]|0){c[p>>2]=l;c[$b>>2]=Bh(k,32915,p)|0}else c[$b>>2]=Dw(k,l)|0;if((c[(c[s>>2]|0)+4>>2]|0)>>>0>0)l=c[c[Fa>>2]>>2]|0;else l=0;c[fb>>2]=l;a:do if(!(Mw(c[Xb>>2]|0,19,c[_b>>2]|0,c[$b>>2]|0,c[fb>>2]|0)|0)){c[q>>2]=0;c[q+4>>2]=c[_b>>2];c[q+8>>2]=c[$b>>2];c[q+12>>2]=0;c[(c[Zb>>2]|0)+448+8>>2]=0;c[la>>2]=Ff(c[Zb>>2]|0,c[fb>>2]|0,14,q)|0;if(!(c[la>>2]|0)){LB(c[Yb>>2]|0,32919,c[q>>2]|0);Kd(c[q>>2]|0);break}if((c[la>>2]|0)!=12){if(c[q>>2]|0){Yb=c[Xb>>2]|0;c[r>>2]=c[q>>2];Ah(Yb,19255,r);Kd(c[q>>2]|0)}Yb=(c[Xb>>2]|0)+68|0;c[Yb>>2]=(c[Yb>>2]|0)+1;c[(c[Xb>>2]|0)+12>>2]=c[la>>2];break}c[X>>2]=0;c[ra>>2]=57;while(1){if((c[X>>2]|0)>(c[ra>>2]|0))break;c[Y>>2]=((c[X>>2]|0)+(c[ra>>2]|0)|0)/2|0;c[la>>2]=Td(c[_b>>2]|0,c[5312+((c[Y>>2]|0)*12|0)>>2]|0)|0;if(!(c[la>>2]|0))break;l=c[Y>>2]|0;if((c[la>>2]|0)<0){c[ra>>2]=l-1;continue}else{c[X>>2]=l+1;continue}}if((c[X>>2]|0)<=(c[ra>>2]|0)){c[Hb>>2]=5312+((c[Y>>2]|0)*12|0);if((d[(c[Hb>>2]|0)+5>>0]&1|0)!=0?(pz(c[Xb>>2]|0)|0)!=0:0)break;do switch(d[(c[Hb>>2]|0)+4>>0]|0){case 11:{Hh(c[Yb>>2]|0,c[Wb>>2]|0);if(c[$b>>2]|0){c[na>>2]=yj(Ki(c[$b>>2]|0)|0)|0;ax(c[Xb>>2]|0,0,c[Wb>>2]|0);Vw(c[Yb>>2]|0,52,c[Wb>>2]|0,3,c[na>>2]|0)|0;c[(c[(c[Fa>>2]|0)+12>>2]|0)+80>>2]=c[na>>2];zj(c[(c[Fa>>2]|0)+4>>2]|0,c[(c[(c[Fa>>2]|0)+12>>2]|0)+80>>2]|0)|0;break a}else{MB(c[Yb>>2]|0,32926);Xb=(c[Xb>>2]|0)+76|0;c[Xb>>2]=(c[Xb>>2]|0)+2;c[v>>2]=Gh(c[Yb>>2]|0,9,32937,0)|0;c[(c[v>>2]|0)+4>>2]=c[Wb>>2];c[(c[v>>2]|0)+20+4>>2]=c[Wb>>2];c[(c[v>>2]|0)+120+4>>2]=2e3;break a}}case 25:{c[$>>2]=c[(c[Fa>>2]|0)+4>>2];if(c[$b>>2]|0){Yb=Ki(c[$b>>2]|0)|0;c[(c[Zb>>2]|0)+72>>2]=Yb;if(7!=(xi(c[$>>2]|0,c[(c[Zb>>2]|0)+72>>2]|0,-1,0)|0))break a;jh(c[Zb>>2]|0);break a}if(c[$>>2]|0)l=pg(c[$>>2]|0)|0;else l=0;c[Ga>>2]=l;Xb=c[Ga>>2]|0;NB(c[Yb>>2]|0,32973,Xb,((Xb|0)<0)<<31>>31);break a}case 26:{c[aa>>2]=c[(c[Fa>>2]|0)+4>>2];c[B>>2]=-1;if(c[$b>>2]|0)c[B>>2]=(Bi(c[$b>>2]|0,0)|0)&255;b:do if((c[B>>2]|0)>=0?(c[(c[s>>2]|0)+4>>2]|0)==0:0){c[T>>2]=0;while(1){if((c[T>>2]|0)>=(c[(c[Zb>>2]|0)+20>>2]|0))break b;vB(c[(c[(c[Zb>>2]|0)+16>>2]|0)+(c[T>>2]<<4)+4>>2]|0,c[B>>2]|0)|0;c[T>>2]=(c[T>>2]|0)+1}}while(0);c[B>>2]=vB(c[aa>>2]|0,c[B>>2]|0)|0;Xb=c[B>>2]|0;NB(c[Yb>>2]|0,32983,Xb,((Xb|0)<0)<<31>>31);break a}case 23:{bx(c[Xb>>2]|0,c[Wb>>2]|0);l=(c[Xb>>2]|0)+76|0;m=(c[l>>2]|0)+1|0;c[l>>2]=m;c[Pa>>2]=m;m=c[Yb>>2]|0;l=c[Wb>>2]|0;k=c[Pa>>2]|0;if((d[18477+(d[c[_b>>2]>>0]|0)>>0]|0)==112)Rw(m,156,l,k)|0;else Vw(m,157,l,k,yj(Ki(c[$b>>2]|0)|0)|0)|0;Rw(c[Yb>>2]|0,33,c[Pa>>2]|0,1)|0;OB(c[Yb>>2]|0,1);PB(c[Yb>>2]|0,0,0,c[_b>>2]|0,-1)|0;break a}case 22:{c[Da>>2]=32997;c[E>>2]=QB(c[$b>>2]|0)|0;if((c[E>>2]|0)==-1?(c[(c[s>>2]|0)+4>>2]|0)==0:0)c[E>>2]=d[(c[Zb>>2]|0)+67>>0];else{if(!(c[(c[s>>2]|0)+4>>2]|0)){c[U>>2]=2;while(1){if((c[U>>2]|0)>=(c[(c[Zb>>2]|0)+20>>2]|0))break;c[ga>>2]=Of(c[(c[(c[Zb>>2]|0)+16>>2]|0)+(c[U>>2]<<4)+4>>2]|0)|0;uB(c[ga>>2]|0,c[E>>2]|0)|0;c[U>>2]=(c[U>>2]|0)+1}a[(c[Zb>>2]|0)+67>>0]=c[E>>2]}c[ga>>2]=Of(c[(c[Fa>>2]|0)+4>>2]|0)|0;c[E>>2]=uB(c[ga>>2]|0,c[E>>2]|0)|0}if((c[E>>2]|0)==1)c[Da>>2]=33004;LB(c[Yb>>2]|0,33014,c[Da>>2]|0);break a}case 19:{MB(c[Yb>>2]|0,33027);if(c[$b>>2]|0){c[Z>>2]=If(c[$b>>2]|0)|0;c[F>>2]=0;while(1){Xb=RB(c[F>>2]|0)|0;c[Ba>>2]=Xb;if(!Xb)break;if(!(zd(c[$b>>2]|0,c[Ba>>2]|0,c[Z>>2]|0)|0))break;c[F>>2]=(c[F>>2]|0)+1}if(!(c[Ba>>2]|0))c[F>>2]=-1}else c[F>>2]=-1;if((c[F>>2]|0)==-1?(c[(c[s>>2]|0)+4>>2]|0)==0:0){c[Wb>>2]=0;c[(c[s>>2]|0)+4>>2]=1}c[V>>2]=(c[(c[Zb>>2]|0)+20>>2]|0)-1;while(1){if((c[V>>2]|0)<0)break;do if(c[(c[(c[Zb>>2]|0)+16>>2]|0)+(c[V>>2]<<4)+4>>2]|0){if((c[V>>2]|0)!=(c[Wb>>2]|0)?(c[(c[s>>2]|0)+4>>2]|0)!=0:0)break;Hh(c[Yb>>2]|0,c[V>>2]|0);Vw(c[Yb>>2]|0,9,c[V>>2]|0,1,c[F>>2]|0)|0}while(0);c[V>>2]=(c[V>>2]|0)+-1}Rw(c[Yb>>2]|0,33,1,1)|0;break a}case 20:{c[ha>>2]=Of(c[(c[Fa>>2]|0)+4>>2]|0)|0;Xb=R;c[Xb>>2]=-2;c[Xb+4>>2]=-1;if((c[$b>>2]|0)!=0?(Ci(c[$b>>2]|0,R)|0,Xb=R,Wb=c[Xb+4>>2]|0,(Wb|0)<-1|(Wb|0)==-1&(c[Xb>>2]|0)>>>0<4294967295):0){Xb=R;c[Xb>>2]=-1;c[Xb+4>>2]=-1}Wb=R;Wb=SB(c[ha>>2]|0,c[Wb>>2]|0,c[Wb+4>>2]|0)|0;Xb=R;c[Xb>>2]=Wb;c[Xb+4>>2]=C;Xb=R;NB(c[Yb>>2]|0,33040,c[Xb>>2]|0,c[Xb+4>>2]|0);break a}case 1:{c[ba>>2]=c[(c[Fa>>2]|0)+4>>2];if(!(c[$b>>2]|0)){Xb=c[Yb>>2]|0;Yb=TB(c[ba>>2]|0)|0;NB(Xb,33059,Yb,((Yb|0)<0)<<31>>31);break a}c[D>>2]=UB(c[$b>>2]|0)|0;a[(c[Zb>>2]|0)+68>>0]=c[D>>2];c[la>>2]=VB(c[ba>>2]|0,c[D>>2]|0)|0;if(c[la>>2]|0)break a;if(!((c[D>>2]|0)==1|(c[D>>2]|0)==2))break a;c[N>>2]=Bz(c[Yb>>2]|0)|0;c[y>>2]=Gh(c[Yb>>2]|0,5,33071,0)|0;c[(c[y>>2]|0)+4>>2]=c[Wb>>2];c[(c[y>>2]|0)+20+4>>2]=c[Wb>>2];c[(c[y>>2]|0)+40+8>>2]=(c[N>>2]|0)+4;c[(c[y>>2]|0)+80+4>>2]=c[Wb>>2];c[(c[y>>2]|0)+80+12>>2]=(c[D>>2]|0)-1;Hh(c[Yb>>2]|0,c[Wb>>2]|0);break a}case 15:{if(!((c[$b>>2]|0)!=0?(Vb=(Li(c[$b>>2]|0,S)|0)==0,!(Vb|(c[S>>2]|0)<=0)):0))c[S>>2]=2147483647;ax(c[Xb>>2]|0,0,c[Wb>>2]|0);Rw(c[Yb>>2]|0,22,c[S>>2]|0,1)|0;c[z>>2]=xz(c[Yb>>2]|0,146,c[Wb>>2]|0)|0;xz(c[Yb>>2]|0,33,1)|0;Rw(c[Yb>>2]|0,37,1,-1)|0;Rw(c[Yb>>2]|0,138,1,c[z>>2]|0)|0;Fz(c[Yb>>2]|0,c[z>>2]|0);break a}case 4:if(c[$b>>2]|0){c[oa>>2]=Ki(c[$b>>2]|0)|0;c[(c[(c[Fa>>2]|0)+12>>2]|0)+80>>2]=c[oa>>2];zj(c[(c[Fa>>2]|0)+4>>2]|0,c[(c[(c[Fa>>2]|0)+12>>2]|0)+80>>2]|0)|0;break a}else{Xb=c[(c[(c[Fa>>2]|0)+12>>2]|0)+80>>2]|0;NB(c[Yb>>2]|0,32926,Xb,((Xb|0)<0)<<31>>31);break a}case 5:{if(!(c[$b>>2]|0)){k=c[Yb>>2]|0;if(!(c[(c[Zb>>2]|0)+24>>2]&32))l=0;else l=WB(c[(c[Fa>>2]|0)+4>>2]|0,0)|0;NB(k,33091,l,((l|0)<0)<<31>>31);break a}c[pa>>2]=1;if(Li(c[$b>>2]|0,pa)|0)WB(c[(c[Fa>>2]|0)+4>>2]|0,c[pa>>2]|0)|0;Yb=(Bi(c[$b>>2]|0,(c[pa>>2]|0)!=0&255)|0)<<24>>24!=0;l=(c[Zb>>2]|0)+24|0;k=c[l>>2]|0;if(Yb)c[l>>2]=k|32;else c[l>>2]=k&-33;XB(c[Zb>>2]|0);break a}case 24:{Wb=qa;c[Wb>>2]=0;c[Wb+4>>2]=0;c[la>>2]=0;if(!(c[la>>2]|0)){Xb=qa;NB(c[Yb>>2]|0,33103,c[Xb>>2]|0,c[Xb+4>>2]|0);break a}if((c[la>>2]|0)==12)break a;Yb=(c[Xb>>2]|0)+68|0;c[Yb>>2]=(c[Yb>>2]|0)+1;c[(c[Xb>>2]|0)+12>>2]=c[la>>2];break a}case 32:if(c[$b>>2]|0){YB(c[Xb>>2]|0,c[$b>>2]|0)|0;break a}else{NB(c[Yb>>2]|0,33113,d[(c[Zb>>2]|0)+64>>0]|0,0);break a}case 33:{if(!(c[$b>>2]|0)){LB(c[Yb>>2]|0,33124,c[241]|0);break a}if((a[c[$b>>2]>>0]|0)!=0?(c[la>>2]=Nr(c[c[Zb>>2]>>2]|0,c[$b>>2]|0,1,ma)|0,(c[la>>2]|0)!=0|(c[ma>>2]|0)==0):0){Ah(c[Xb>>2]|0,33145,sa);break a}if((d[(c[Zb>>2]|0)+64>>0]|0)<=1)ZB(c[Xb>>2]|0)|0;Kd(c[241]|0);if(a[c[$b>>2]>>0]|0){c[ta>>2]=c[$b>>2];c[241]=Od(19255,ta)|0;break a}else{c[241]=0;break a}}case 30:{if(!(c[$b>>2]|0)){Xb=(d[(c[Fa>>2]|0)+8>>0]|0)-1|0;NB(c[Yb>>2]|0,33170,Xb,((Xb|0)<0)<<31>>31);break a}if(a[(c[Zb>>2]|0)+63>>0]|0){Yb=((Ji(c[$b>>2]|0,0,1)|0)&255)+1&7;c[Q>>2]=Yb;c[Q>>2]=(c[Q>>2]|0)==0?1:Yb;a[(c[Fa>>2]|0)+8>>0]=c[Q>>2];XB(c[Zb>>2]|0);break a}else{Ah(c[Xb>>2]|0,33182,ua);break a}}case 2:{if(!(c[$b>>2]|0)){Xb=(c[(c[Zb>>2]|0)+24>>2]&c[(c[Hb>>2]|0)+8>>2]|0)!=0&1;NB(c[Yb>>2]|0,c[c[Hb>>2]>>2]|0,Xb,((Xb|0)<0)<<31>>31);break a}c[Ea>>2]=c[(c[Hb>>2]|0)+8>>2];if(!(d[(c[Zb>>2]|0)+63>>0]|0))c[Ea>>2]=c[Ea>>2]&-524289;Xb=(Bi(c[$b>>2]|0,0)|0)<<24>>24!=0;l=c[Ea>>2]|0;if(!Xb){Xb=(c[Zb>>2]|0)+24|0;c[Xb>>2]=c[Xb>>2]&~l;if((c[Ea>>2]|0)==16777216){Xb=(c[Zb>>2]|0)+520|0;c[Xb>>2]=0;c[Xb+4>>2]=0}}else{Xb=(c[Zb>>2]|0)+24|0;c[Xb>>2]=c[Xb>>2]|l}Rw(c[Yb>>2]|0,147,0,0)|0;XB(c[Zb>>2]|0);break a}case 31:{if(!(c[$b>>2]|0))break a;c[Za>>2]=pi(c[Zb>>2]|0,c[$b>>2]|0,c[fb>>2]|0)|0;if(!(c[Za>>2]|0))break a;c[Ta>>2]=0;c[Ya>>2]=Ej(c[Za>>2]|0)|0;c[(c[Xb>>2]|0)+76>>2]=6;bx(c[Xb>>2]|0,c[Wb>>2]|0);_B(c[Yb>>2]|0,6,6008);zx(c[Xb>>2]|0,c[Za>>2]|0)|0;c[Ma>>2]=0;c[Ua>>2]=c[(c[Za>>2]|0)+4>>2];while(1){if((c[Ma>>2]|0)>=(b[(c[Za>>2]|0)+34>>1]|0))break a;if(d[(c[Ua>>2]|0)+23>>0]&2)c[Ta>>2]=(c[Ta>>2]|0)+1;else{c:do if(!(d[(c[Ua>>2]|0)+23>>0]&1))c[Ra>>2]=0;else{Xb=(c[Ya>>2]|0)==0;c[Ra>>2]=1;if(Xb)break;while(1){if((c[Ra>>2]|0)>(b[(c[Za>>2]|0)+34>>1]|0))break c;if((b[(c[(c[Ya>>2]|0)+4>>2]|0)+((c[Ra>>2]|0)-1<<1)>>1]|0)==(c[Ma>>2]|0))break c;c[Ra>>2]=(c[Ra>>2]|0)+1}}while(0);l=c[Yb>>2]|0;k=c[c[Ua>>2]>>2]|0;if(c[(c[Ua>>2]|0)+12>>2]|0)m=c[(c[Ua>>2]|0)+12>>2]|0;else m=19266;Vb=(d[(c[Ua>>2]|0)+20>>0]|0)!=0?1:0;Wb=c[(c[Ua>>2]|0)+8>>2]|0;Xb=c[Ra>>2]|0;c[cb>>2]=(c[Ma>>2]|0)-(c[Ta>>2]|0);c[cb+4>>2]=k;c[cb+8>>2]=m;c[cb+12>>2]=Vb;c[cb+16>>2]=Wb;c[cb+20>>2]=Xb;$B(l,1,33235,cb);Rw(c[Yb>>2]|0,33,1,6)|0}c[Ma>>2]=(c[Ma>>2]|0)+1;c[Ua>>2]=(c[Ua>>2]|0)+24}}case 29:{c[Yb>>2]=Pw(c[Xb>>2]|0)|0;c[(c[Xb>>2]|0)+76>>2]=4;bx(c[Xb>>2]|0,c[Wb>>2]|0);_B(c[Yb>>2]|0,4,6032);c[H>>2]=c[(c[(c[Fa>>2]|0)+12>>2]|0)+8+8>>2];while(1){if(!(c[H>>2]|0))break a;c[ia>>2]=c[(c[H>>2]|0)+8>>2];Xb=c[Yb>>2]|0;Ub=c[c[ia>>2]>>2]|0;Vb=aC(b[(c[ia>>2]|0)+40>>1]|0)|0;Wb=aC(b[(c[ia>>2]|0)+38>>1]|0)|0;c[va>>2]=Ub;c[va+4>>2]=0;c[va+8>>2]=Vb;c[va+12>>2]=Wb;$B(Xb,1,33242,va);Rw(c[Yb>>2]|0,33,1,4)|0;c[ea>>2]=c[(c[ia>>2]|0)+8>>2];while(1){if(!(c[ea>>2]|0))break;Xb=c[Yb>>2]|0;Ub=c[c[ea>>2]>>2]|0;Vb=aC(b[(c[ea>>2]|0)+48>>1]|0)|0;Wb=aC(b[c[(c[ea>>2]|0)+8>>2]>>1]|0)|0;c[wa>>2]=Ub;c[wa+4>>2]=Vb;c[wa+8>>2]=Wb;$B(Xb,2,33247,wa);Rw(c[Yb>>2]|0,33,1,4)|0;c[ea>>2]=c[(c[ea>>2]|0)+20>>2]}c[H>>2]=c[c[H>>2]>>2]}}case 16:{if(!(c[$b>>2]|0))break a;c[Db>>2]=Fj(c[Zb>>2]|0,c[$b>>2]|0,c[fb>>2]|0)|0;if(!(c[Db>>2]|0))break a;l=c[Db>>2]|0;if(c[(c[Hb>>2]|0)+8>>2]|0){c[Bb>>2]=e[l+52>>1];c[(c[Xb>>2]|0)+76>>2]=6}else{c[Bb>>2]=e[l+50>>1];c[(c[Xb>>2]|0)+76>>2]=3}c[Jb>>2]=c[(c[Db>>2]|0)+12>>2];bx(c[Xb>>2]|0,c[Wb>>2]|0);_B(c[Yb>>2]|0,c[(c[Xb>>2]|0)+76>>2]|0,6048);c[lb>>2]=0;while(1){if((c[lb>>2]|0)>=(c[Bb>>2]|0))break a;b[kb>>1]=b[(c[(c[Db>>2]|0)+4>>2]|0)+(c[lb>>2]<<1)>>1]|0;l=c[Yb>>2]|0;k=b[kb>>1]|0;if((b[kb>>1]|0)<0)m=0;else m=c[(c[(c[Jb>>2]|0)+4>>2]|0)+((b[kb>>1]|0)*24|0)>>2]|0;c[Pb>>2]=c[lb>>2];c[Pb+4>>2]=k;c[Pb+8>>2]=m;$B(l,1,33251,Pb);if(c[(c[Hb>>2]|0)+8>>2]|0){Wb=c[Yb>>2]|0;Ub=c[(c[(c[Db>>2]|0)+32>>2]|0)+(c[lb>>2]<<2)>>2]|0;Vb=(c[lb>>2]|0)<(e[(c[Db>>2]|0)+50>>1]|0)&1;c[Qb>>2]=d[(c[(c[Db>>2]|0)+28>>2]|0)+(c[lb>>2]|0)>>0];c[Qb+4>>2]=Ub;c[Qb+8>>2]=Vb;$B(Wb,4,33255,Qb)}Rw(c[Yb>>2]|0,33,1,c[(c[Xb>>2]|0)+76>>2]|0)|0;c[lb>>2]=(c[lb>>2]|0)+1}}case 17:{if(!(c[$b>>2]|0))break a;c[ja>>2]=pi(c[Zb>>2]|0,c[$b>>2]|0,c[fb>>2]|0)|0;if(!(c[ja>>2]|0))break a;c[Yb>>2]=Pw(c[Xb>>2]|0)|0;c[(c[Xb>>2]|0)+76>>2]=5;bx(c[Xb>>2]|0,c[Wb>>2]|0);_B(c[Yb>>2]|0,5,6072);c[fa>>2]=c[(c[ja>>2]|0)+8>>2];c[I>>2]=0;while(1){if(!(c[fa>>2]|0))break a;c[A>>2]=c[1523];c[A+4>>2]=c[1524];c[A+8>>2]=c[1525];Xb=c[Yb>>2]|0;Tb=c[c[fa>>2]>>2]|0;Ub=(d[(c[fa>>2]|0)+54>>0]|0)!=0&1;Vb=c[A+((a[(c[fa>>2]|0)+55>>0]&3)<<2)>>2]|0;Wb=(c[(c[fa>>2]|0)+36>>2]|0)!=0&1;c[xa>>2]=c[I>>2];c[xa+4>>2]=Tb;c[xa+8>>2]=Ub;c[xa+12>>2]=Vb;c[xa+16>>2]=Wb;$B(Xb,1,33259,xa);Rw(c[Yb>>2]|0,33,1,5)|0;c[fa>>2]=c[(c[fa>>2]|0)+20>>2];c[I>>2]=(c[I>>2]|0)+1}}case 10:{c[(c[Xb>>2]|0)+76>>2]=3;_B(c[Yb>>2]|0,3,6104);c[J>>2]=0;while(1){if((c[J>>2]|0)>=(c[(c[Zb>>2]|0)+20>>2]|0))break a;if(c[(c[(c[Zb>>2]|0)+16>>2]|0)+(c[J>>2]<<4)+4>>2]|0){Xb=c[Yb>>2]|0;Ub=c[J>>2]|0;Vb=c[(c[(c[Zb>>2]|0)+16>>2]|0)+(c[J>>2]<<4)>>2]|0;Wb=Di(c[(c[(c[Zb>>2]|0)+16>>2]|0)+(c[J>>2]<<4)+4>>2]|0)|0;c[ya>>2]=Ub;c[ya+4>>2]=Vb;c[ya+8>>2]=Wb;$B(Xb,1,33265,ya);Rw(c[Yb>>2]|0,33,1,3)|0}c[J>>2]=(c[J>>2]|0)+1}}case 7:{c[K>>2]=0;c[(c[Xb>>2]|0)+76>>2]=2;_B(c[Yb>>2]|0,2,6116);c[_>>2]=c[(c[Zb>>2]|0)+432+8>>2];while(1){if(!(c[_>>2]|0))break a;c[ca>>2]=c[(c[_>>2]|0)+8>>2];Xb=c[Yb>>2]|0;Vb=c[K>>2]|0;c[K>>2]=Vb+1;Wb=c[c[ca>>2]>>2]|0;c[za>>2]=Vb;c[za+4>>2]=Wb;$B(Xb,1,33269,za);Rw(c[Yb>>2]|0,33,1,2)|0;c[_>>2]=c[c[_>>2]>>2]}}case 14:{if(!(c[$b>>2]|0))break a;c[ka>>2]=pi(c[Zb>>2]|0,c[$b>>2]|0,c[fb>>2]|0)|0;if(!(c[ka>>2]|0))break a;c[Yb>>2]=Pw(c[Xb>>2]|0)|0;c[da>>2]=c[(c[ka>>2]|0)+16>>2];if(!(c[da>>2]|0))break a;c[L>>2]=0;c[(c[Xb>>2]|0)+76>>2]=8;bx(c[Xb>>2]|0,c[Wb>>2]|0);_B(c[Yb>>2]|0,8,6124);while(1){if(!(c[da>>2]|0))break a;c[W>>2]=0;while(1){if((c[W>>2]|0)>=(c[(c[da>>2]|0)+20>>2]|0))break;Xb=c[Yb>>2]|0;Qb=c[L>>2]|0;Rb=c[W>>2]|0;Sb=c[(c[da>>2]|0)+8>>2]|0;Tb=c[(c[(c[ka>>2]|0)+4>>2]|0)+((c[(c[da>>2]|0)+36+(c[W>>2]<<3)>>2]|0)*24|0)>>2]|0;Ub=c[(c[da>>2]|0)+36+(c[W>>2]<<3)+4>>2]|0;Vb=bC(a[(c[da>>2]|0)+25+1>>0]|0)|0;Wb=bC(a[(c[da>>2]|0)+25>>0]|0)|0;c[Aa>>2]=Qb;c[Aa+4>>2]=Rb;c[Aa+8>>2]=Sb;c[Aa+12>>2]=Tb;c[Aa+16>>2]=Ub;c[Aa+20>>2]=Vb;c[Aa+24>>2]=Wb;c[Aa+28>>2]=33281;$B(Xb,1,33272,Aa);Rw(c[Yb>>2]|0,33,1,8)|0;c[W>>2]=(c[W>>2]|0)+1}c[L>>2]=(c[L>>2]|0)+1;c[da>>2]=c[(c[da>>2]|0)+4>>2]}}case 13:{c[ab>>2]=(c[(c[Xb>>2]|0)+76>>2]|0)+1;Ub=(c[Xb>>2]|0)+76|0;c[Ub>>2]=(c[Ub>>2]|0)+4;Ub=(c[Xb>>2]|0)+76|0;Tb=(c[Ub>>2]|0)+1|0;c[Ub>>2]=Tb;c[$a>>2]=Tb;Tb=(c[Xb>>2]|0)+76|0;Ub=(c[Tb>>2]|0)+1|0;c[Tb>>2]=Ub;c[bb>>2]=Ub;c[Yb>>2]=Pw(c[Xb>>2]|0)|0;_B(c[Yb>>2]|0,4,6156);bx(c[Xb>>2]|0,c[Wb>>2]|0);c[Sa>>2]=c[(c[(c[(c[Zb>>2]|0)+16>>2]|0)+(c[Wb>>2]<<4)+12>>2]|0)+8+8>>2];while(1){if(!(c[Sa>>2]|0))break a;if(c[$b>>2]|0){c[_a>>2]=zh(c[Xb>>2]|0,0,c[$b>>2]|0,c[fb>>2]|0)|0;c[Sa>>2]=0}else{c[_a>>2]=c[(c[Sa>>2]|0)+8>>2];c[Sa>>2]=c[c[Sa>>2]>>2]}if(!(c[_a>>2]|0))continue;if(!(c[(c[_a>>2]|0)+16>>2]|0))continue;yz(c[Xb>>2]|0,c[Wb>>2]|0,c[(c[_a>>2]|0)+28>>2]|0,0,c[c[_a>>2]>>2]|0);if(((b[(c[_a>>2]|0)+34>>1]|0)+(c[bb>>2]|0)|0)>(c[(c[Xb>>2]|0)+76>>2]|0))c[(c[Xb>>2]|0)+76>>2]=(b[(c[_a>>2]|0)+34>>1]|0)+(c[bb>>2]|0);zz(c[Xb>>2]|0,0,c[Wb>>2]|0,c[_a>>2]|0,54);Tw(c[Yb>>2]|0,c[ab>>2]|0,c[c[_a>>2]>>2]|0)|0;c[Na>>2]=1;c[Va>>2]=c[(c[_a>>2]|0)+16>>2];d:while(1){if(!(c[Va>>2]|0))break;c[Xa>>2]=pi(c[Zb>>2]|0,c[(c[Va>>2]|0)+8>>2]|0,c[fb>>2]|0)|0;do if(c[Xa>>2]|0){c[Wa>>2]=0;yz(c[Xb>>2]|0,c[Wb>>2]|0,c[(c[Xa>>2]|0)+28>>2]|0,0,c[c[Xa>>2]>>2]|0);c[eb>>2]=cC(c[Xb>>2]|0,c[Xa>>2]|0,c[Va>>2]|0,Wa,0)|0;if(c[eb>>2]|0){Vb=207;break d}if(!(c[Wa>>2]|0)){zz(c[Xb>>2]|0,c[Na>>2]|0,c[Wb>>2]|0,c[Xa>>2]|0,54);break}else{Vw(c[Yb>>2]|0,54,c[Na>>2]|0,c[(c[Wa>>2]|0)+44>>2]|0,c[Wb>>2]|0)|0;Az(c[Xb>>2]|0,c[Wa>>2]|0);break}}while(0);c[Na>>2]=(c[Na>>2]|0)+1;c[Va>>2]=c[(c[Va>>2]|0)+4>>2]}if((Vb|0)==207){Vb=0;c[Sa>>2]=0}if(c[Va>>2]|0)break a;if((c[(c[Xb>>2]|0)+72>>2]|0)<(c[Na>>2]|0))c[(c[Xb>>2]|0)+72>>2]=c[Na>>2];c[Ka>>2]=xz(c[Yb>>2]|0,108,0)|0;c[Na>>2]=1;c[Va>>2]=c[(c[_a>>2]|0)+16>>2];while(1){if(!(c[Va>>2]|0))break;c[Xa>>2]=pi(c[Zb>>2]|0,c[(c[Va>>2]|0)+8>>2]|0,c[fb>>2]|0)|0;c[Wa>>2]=0;c[La>>2]=0;if(c[Xa>>2]|0)c[eb>>2]=cC(c[Xb>>2]|0,c[Xa>>2]|0,c[Va>>2]|0,Wa,La)|0;c[Ja>>2]=Cz(c[Yb>>2]|0)|0;do if((c[Xa>>2]|0)!=0&(c[Wa>>2]|0)==0){c[Oa>>2]=c[(c[Va>>2]|0)+36>>2];l=c[Yb>>2]|0;if((c[Oa>>2]|0)!=(b[(c[_a>>2]|0)+32>>1]|0)){Vw(l,47,0,c[Oa>>2]|0,c[bb>>2]|0)|0;vA(c[Yb>>2]|0,c[_a>>2]|0,c[Oa>>2]|0,c[bb>>2]|0);Rw(c[Yb>>2]|0,76,c[bb>>2]|0,c[Ja>>2]|0)|0;Tb=c[Yb>>2]|0;Ub=c[bb>>2]|0;Rw(Tb,38,Ub,(Bz(c[Yb>>2]|0)|0)+3|0)|0}else Rw(l,103,0,c[bb>>2]|0)|0;Vw(c[Yb>>2]|0,70,c[Na>>2]|0,0,c[bb>>2]|0)|0;Ez(c[Yb>>2]|0,c[Ja>>2]|0)|0;Ub=c[Yb>>2]|0;Fz(Ub,(Bz(c[Yb>>2]|0)|0)-2|0)}else{c[Qa>>2]=0;while(1){if((c[Qa>>2]|0)>=(c[(c[Va>>2]|0)+20>>2]|0))break;l=c[Qa>>2]|0;if(c[La>>2]|0)l=c[(c[La>>2]|0)+(l<<2)>>2]|0;else l=c[(c[Va>>2]|0)+36+(l<<3)>>2]|0;tA(c[Yb>>2]|0,c[_a>>2]|0,0,l,(c[bb>>2]|0)+(c[Qa>>2]|0)|0);Rw(c[Yb>>2]|0,76,(c[bb>>2]|0)+(c[Qa>>2]|0)|0,c[Ja>>2]|0)|0;c[Qa>>2]=(c[Qa>>2]|0)+1}if(!(c[Xa>>2]|0))break;Qb=c[Yb>>2]|0;Rb=c[bb>>2]|0;Sb=c[(c[Va>>2]|0)+20>>2]|0;Tb=c[$a>>2]|0;Ub=dC(c[Zb>>2]|0,c[Wa>>2]|0)|0;Uw(Qb,49,Rb,Sb,Tb,Ub,c[(c[Va>>2]|0)+20>>2]|0)|0;Eh(c[Yb>>2]|0,69,c[Na>>2]|0,c[Ja>>2]|0,c[$a>>2]|0,0)|0}while(0);Rw(c[Yb>>2]|0,103,0,(c[ab>>2]|0)+1|0)|0;Tb=c[Yb>>2]|0;Ub=(c[ab>>2]|0)+2|0;Sb=(c[Na>>2]|0)-1|0;c[db>>2]=c[(c[Va>>2]|0)+8>>2];c[db+4>>2]=Sb;$B(Tb,Ub,33286,db);Rw(c[Yb>>2]|0,33,c[ab>>2]|0,4)|0;Gz(c[Yb>>2]|0,c[Ja>>2]|0);Sf(c[Zb>>2]|0,c[La>>2]|0);c[Na>>2]=(c[Na>>2]|0)+1;c[Va>>2]=c[(c[Va>>2]|0)+4>>2]}Rw(c[Yb>>2]|0,7,0,(c[Ka>>2]|0)+1|0)|0;Fz(c[Yb>>2]|0,c[Ka>>2]|0)}}case 6:{if(!(c[$b>>2]|0))break a;Yb=c[Zb>>2]|0;eC(Yb,(Bi(c[$b>>2]|0,0)|0)&255);break a}case 18:{c[qb>>2]=(d[18477+(d[c[_b>>2]>>0]|0)>>0]|0)==113&1;if(!(c[c[s>>2]>>2]|0))c[Wb>>2]=-1;c[(c[Xb>>2]|0)+76>>2]=6;MB(c[Yb>>2]|0,33289);c[Cb>>2]=100;if((c[$b>>2]|0)!=0?(Li(c[$b>>2]|0,Cb)|0,(c[Cb>>2]|0)<=0):0)c[Cb>>2]=100;Rw(c[Yb>>2]|0,22,c[Cb>>2]|0,1)|0;c[mb>>2]=0;while(1){if((c[mb>>2]|0)>=(c[(c[Zb>>2]|0)+20>>2]|0))break;c[jb>>2]=0;if(!((c[Wb>>2]|0)>=0?(c[mb>>2]|0)!=(c[Wb>>2]|0):0))Vb=242;e:do if((Vb|0)==242){Vb=0;bx(c[Xb>>2]|0,c[mb>>2]|0);c[hb>>2]=xz(c[Yb>>2]|0,138,1)|0;Rw(c[Yb>>2]|0,21,0,0)|0;Fz(c[Yb>>2]|0,c[hb>>2]|0);c[Mb>>2]=(c[(c[(c[Zb>>2]|0)+16>>2]|0)+(c[mb>>2]<<4)+12>>2]|0)+8;c[Tb>>2]=c[(c[Mb>>2]|0)+8>>2];while(1){if(!(c[Tb>>2]|0))break;c[Kb>>2]=c[(c[Tb>>2]|0)+8>>2];if(!(d[(c[Kb>>2]|0)+42>>0]&32)){Rw(c[Yb>>2]|0,22,c[(c[Kb>>2]|0)+28>>2]|0,2+(c[jb>>2]|0)|0)|0;c[jb>>2]=(c[jb>>2]|0)+1}c[Eb>>2]=c[(c[Kb>>2]|0)+8>>2];while(1){if(!(c[Eb>>2]|0))break;Rw(c[Yb>>2]|0,22,c[(c[Eb>>2]|0)+44>>2]|0,2+(c[jb>>2]|0)|0)|0;c[jb>>2]=(c[jb>>2]|0)+1;c[Eb>>2]=c[(c[Eb>>2]|0)+20>>2]}c[Tb>>2]=c[c[Tb>>2]>>2]}if((c[(c[Xb>>2]|0)+76>>2]|0)>((c[jb>>2]|0)+8|0))l=c[(c[Xb>>2]|0)+76>>2]|0;else l=(c[jb>>2]|0)+8|0;c[(c[Xb>>2]|0)+76>>2]=l;Vw(c[Yb>>2]|0,128,2,c[jb>>2]|0,1)|0;Fh(c[Yb>>2]|0,c[mb>>2]&255);c[hb>>2]=xz(c[Yb>>2]|0,76,2)|0;Pb=c[Yb>>2]|0;Qb=c[Zb>>2]|0;c[Rb>>2]=c[(c[(c[Zb>>2]|0)+16>>2]|0)+(c[mb>>2]<<4)>>2];Uw(Pb,97,0,3,0,Bh(Qb,33305,Rb)|0,-1)|0;Vw(c[Yb>>2]|0,29,2,4,1)|0;Vw(c[Yb>>2]|0,94,4,3,2)|0;Rw(c[Yb>>2]|0,33,2,1)|0;Fz(c[Yb>>2]|0,c[hb>>2]|0);c[Tb>>2]=c[(c[Mb>>2]|0)+8>>2];while(1){if(!(c[Tb>>2]|0))break e;if(!((c[qb>>2]|0)!=0^1))break e;c[Lb>>2]=c[(c[Tb>>2]|0)+8>>2];c[Ib>>2]=0;c[Nb>>2]=-1;f:do if(c[(c[Lb>>2]|0)+8>>2]|0){if(!(d[(c[Lb>>2]|0)+42>>0]&32))l=0;else l=Ej(c[Lb>>2]|0)|0;c[Gb>>2]=l;c[hb>>2]=xz(c[Yb>>2]|0,138,1)|0;Rw(c[Yb>>2]|0,21,0,0)|0;Fz(c[Yb>>2]|0,c[hb>>2]|0);fC(c[Xb>>2]|0);gC(c[Xb>>2]|0,c[Lb>>2]|0,54,0,1,0,ob,pb)|0;Rw(c[Yb>>2]|0,22,0,7)|0;c[rb>>2]=0;c[Fb>>2]=c[(c[Lb>>2]|0)+8>>2];while(1){if(!(c[Fb>>2]|0))break;Rw(c[Yb>>2]|0,22,0,8+(c[rb>>2]|0)|0)|0;c[Fb>>2]=c[(c[Fb>>2]|0)+20>>2];c[rb>>2]=(c[rb>>2]|0)+1}if((c[(c[Xb>>2]|0)+76>>2]|0)>(8+(c[rb>>2]|0)|0))l=c[(c[Xb>>2]|0)+76>>2]|0;else l=8+(c[rb>>2]|0)|0;c[(c[Xb>>2]|0)+76>>2]=l;Rw(c[Yb>>2]|0,108,c[ob>>2]|0,0)|0;c[Ab>>2]=Rw(c[Yb>>2]|0,37,7,1)|0;c[rb>>2]=0;while(1){if((c[rb>>2]|0)>=(b[(c[Lb>>2]|0)+34>>1]|0))break;do if((c[rb>>2]|0)!=(b[(c[Lb>>2]|0)+32>>1]|0)){if(!(d[(c[(c[Lb>>2]|0)+4>>2]|0)+((c[rb>>2]|0)*24|0)+20>>0]|0))break;tA(c[Yb>>2]|0,c[Lb>>2]|0,c[ob>>2]|0,c[rb>>2]|0,3);Fh(c[Yb>>2]|0,-128);c[sb>>2]=xz(c[Yb>>2]|0,77,3)|0;Rw(c[Yb>>2]|0,37,1,-1)|0;Qb=c[Zb>>2]|0;Pb=c[(c[(c[Lb>>2]|0)+4>>2]|0)+((c[rb>>2]|0)*24|0)>>2]|0;c[Sb>>2]=c[c[Lb>>2]>>2];c[Sb+4>>2]=Pb;c[Ub>>2]=Bh(Qb,33329,Sb)|0;Uw(c[Yb>>2]|0,97,0,3,0,c[Ub>>2]|0,-1)|0;Rw(c[Yb>>2]|0,33,3,1)|0;c[ub>>2]=xz(c[Yb>>2]|0,138,1)|0;Yw(c[Yb>>2]|0,21)|0;Fz(c[Yb>>2]|0,c[sb>>2]|0);Fz(c[Yb>>2]|0,c[ub>>2]|0)}while(0);c[rb>>2]=(c[rb>>2]|0)+1}c[rb>>2]=0;c[Fb>>2]=c[(c[Lb>>2]|0)+8>>2];while(1){l=c[Yb>>2]|0;if(!(c[Fb>>2]|0))break;c[ib>>2]=Cz(l)|0;if((c[Gb>>2]|0)!=(c[Fb>>2]|0)){c[Nb>>2]=Xz(c[Xb>>2]|0,c[Fb>>2]|0,c[ob>>2]|0,0,0,vb,c[Ib>>2]|0,c[Nb>>2]|0)|0;c[Ib>>2]=c[Fb>>2];Rw(c[Yb>>2]|0,37,8+(c[rb>>2]|0)|0,1)|0;c[tb>>2]=Eh(c[Yb>>2]|0,69,(c[pb>>2]|0)+(c[rb>>2]|0)|0,c[ib>>2]|0,c[Nb>>2]|0,e[(c[Fb>>2]|0)+52>>1]|0)|0;Rw(c[Yb>>2]|0,37,1,-1)|0;Tw(c[Yb>>2]|0,3,33349)|0;Vw(c[Yb>>2]|0,94,7,3,3)|0;Tw(c[Yb>>2]|0,4,33354)|0;Vw(c[Yb>>2]|0,94,4,3,3)|0;c[xb>>2]=Tw(c[Yb>>2]|0,4,c[c[Fb>>2]>>2]|0)|0;Vw(c[Yb>>2]|0,94,4,3,3)|0;Rw(c[Yb>>2]|0,33,3,1)|0;c[wb>>2]=xz(c[Yb>>2]|0,138,1)|0;Yw(c[Yb>>2]|0,21)|0;Fz(c[Yb>>2]|0,c[tb>>2]|0);if(d[(c[Fb>>2]|0)+54>>0]|0){c[Ob>>2]=Cz(c[Yb>>2]|0)|0;c[zb>>2]=0;while(1){if((c[zb>>2]|0)>=(e[(c[Fb>>2]|0)+50>>1]|0))break;c[nb>>2]=b[(c[(c[Fb>>2]|0)+4>>2]|0)+(c[zb>>2]<<1)>>1];if(!((c[nb>>2]|0)>=0?(d[(c[(c[Lb>>2]|0)+4>>2]|0)+((c[nb>>2]|0)*24|0)+20>>0]|0)!=0:0))Rw(c[Yb>>2]|0,76,(c[Nb>>2]|0)+(c[zb>>2]|0)|0,c[Ob>>2]|0)|0;c[zb>>2]=(c[zb>>2]|0)+1}c[yb>>2]=xz(c[Yb>>2]|0,7,(c[pb>>2]|0)+(c[rb>>2]|0)|0)|0;Ez(c[Yb>>2]|0,c[Ob>>2]|0)|0;Fz(c[Yb>>2]|0,c[yb>>2]|0);Eh(c[Yb>>2]|0,115,(c[pb>>2]|0)+(c[rb>>2]|0)|0,c[Ob>>2]|0,c[Nb>>2]|0,e[(c[Fb>>2]|0)+50>>1]|0)|0;Rw(c[Yb>>2]|0,37,1,-1)|0;Tw(c[Yb>>2]|0,3,33375)|0;Ez(c[Yb>>2]|0,c[xb>>2]|0)|0;Gz(c[Yb>>2]|0,c[Ob>>2]|0)}Fz(c[Yb>>2]|0,c[wb>>2]|0);Yz(c[Xb>>2]|0,c[vb>>2]|0)}c[Fb>>2]=c[(c[Fb>>2]|0)+20>>2];c[rb>>2]=(c[rb>>2]|0)+1}Rw(l,7,c[ob>>2]|0,c[Ab>>2]|0)|0;Fz(c[Yb>>2]|0,(c[Ab>>2]|0)-1|0);Tw(c[Yb>>2]|0,2,33402)|0;c[rb>>2]=0;c[Fb>>2]=c[(c[Lb>>2]|0)+8>>2];while(1){if(!(c[Fb>>2]|0))break f;if((c[Gb>>2]|0)!=(c[Fb>>2]|0)){c[hb>>2]=Bz(c[Yb>>2]|0)|0;Rw(c[Yb>>2]|0,138,1,(c[hb>>2]|0)+2|0)|0;Rw(c[Yb>>2]|0,21,0,0)|0;Rw(c[Yb>>2]|0,50,(c[pb>>2]|0)+(c[rb>>2]|0)|0,3)|0;Vw(c[Yb>>2]|0,79,8+(c[rb>>2]|0)|0,(c[hb>>2]|0)+8|0,3)|0;Fh(c[Yb>>2]|0,-112);Rw(c[Yb>>2]|0,37,1,-1)|0;Tw(c[Yb>>2]|0,3,c[c[Fb>>2]>>2]|0)|0;Vw(c[Yb>>2]|0,94,3,2,7)|0;Rw(c[Yb>>2]|0,33,7,1)|0}c[Fb>>2]=c[(c[Fb>>2]|0)+20>>2];c[rb>>2]=(c[rb>>2]|0)+1}}while(0);c[Tb>>2]=c[c[Tb>>2]>>2]}}while(0);c[mb>>2]=(c[mb>>2]|0)+1}c[gb>>2]=Gh(c[Yb>>2]|0,4,33431,0)|0;if(!(c[gb>>2]|0))break a;c[(c[gb>>2]|0)+8>>2]=0-(c[Cb>>2]|0);a[(c[gb>>2]|0)+40+1>>0]=-2;c[(c[gb>>2]|0)+40+16>>2]=33447;break a}case 12:{if(!(c[$b>>2]|0)){if(pz(c[Xb>>2]|0)|0)break a;LB(c[Yb>>2]|0,33450,c[6172+(d[(c[c[Xb>>2]>>2]|0)+62>>0]<<3)>>2]|0);break a}if((e[(c[(c[(c[Zb>>2]|0)+16>>2]|0)+12>>2]|0)+78>>1]&1|0)==1?(e[(c[(c[(c[Zb>>2]|0)+16>>2]|0)+12>>2]|0)+78>>1]&4|0)!=4:0)break a;c[Ha>>2]=6172;while(1){if(!(c[c[Ha>>2]>>2]|0))break;Yb=0==(Td(c[$b>>2]|0,c[c[Ha>>2]>>2]|0)|0);l=c[Ha>>2]|0;if(Yb){Vb=301;break}c[Ha>>2]=l+8}if((Vb|0)==301){if(d[l+4>>0]|0)l=d[(c[Ha>>2]|0)+4>>0]|0;else l=(a[960]|0)==0?3:2;Yb=l&255;a[(c[Zb>>2]|0)+62>>0]=Yb;a[(c[(c[(c[Zb>>2]|0)+16>>2]|0)+12>>2]|0)+77>>0]=Yb}if(c[c[Ha>>2]>>2]|0)break a;Yb=c[Xb>>2]|0;c[Ia>>2]=c[$b>>2];Ah(Yb,33459,Ia);break a}case 0:{c[P>>2]=c[(c[Hb>>2]|0)+8>>2];Hh(c[Yb>>2]|0,c[Wb>>2]|0);if((c[$b>>2]|0)!=0?(d[(c[Hb>>2]|0)+5>>0]&2|0)==0:0){c[w>>2]=Gh(c[Yb>>2]|0,2,33484,0)|0;c[(c[w>>2]|0)+4>>2]=c[Wb>>2];c[(c[w>>2]|0)+20+4>>2]=c[Wb>>2];c[(c[w>>2]|0)+20+8>>2]=c[P>>2];Yb=Ki(c[$b>>2]|0)|0;c[(c[w>>2]|0)+20+12>>2]=Yb;break a}c[x>>2]=Gh(c[Yb>>2]|0,3,33492,0)|0;c[(c[x>>2]|0)+4>>2]=c[Wb>>2];c[(c[x>>2]|0)+20+4>>2]=c[Wb>>2];c[(c[x>>2]|0)+20+12>>2]=c[P>>2];OB(c[Yb>>2]|0,1);PB(c[Yb>>2]|0,0,0,c[_b>>2]|0,-1)|0;break a}case 8:{c[M>>2]=0;c[(c[Xb>>2]|0)+76>>2]=1;MB(c[Yb>>2]|0,33504);while(1){Xb=c[M>>2]|0;c[M>>2]=Xb+1;Xb=Ad(Xb)|0;c[Ca>>2]=Xb;if(!Xb)break a;Tw(c[Yb>>2]|0,1,c[Ca>>2]|0)|0;Rw(c[Yb>>2]|0,33,1,1)|0}}case 36:{c[O>>2]=(c[c[s>>2]>>2]|0)!=0?c[Wb>>2]|0:10;c[G>>2]=0;do if(c[$b>>2]|0){if(!(Td(c[$b>>2]|0,33519)|0)){c[G>>2]=1;break}if(!(Td(c[$b>>2]|0,33524)|0)){c[G>>2]=2;break}if(!(Td(c[$b>>2]|0,33532)|0))c[G>>2]=3}while(0);_B(c[Yb>>2]|0,3,6244);c[(c[Xb>>2]|0)+76>>2]=3;Vw(c[Yb>>2]|0,8,c[O>>2]|0,c[G>>2]|0,1)|0;
  77. Rw(c[Yb>>2]|0,33,1,3)|0;break a}case 35:{if(c[$b>>2]|0){Xb=c[Zb>>2]|0;yf(Xb,Ki(c[$b>>2]|0)|0)|0}if((c[(c[Zb>>2]|0)+216>>2]|0)==139)l=c[(c[Zb>>2]|0)+220>>2]|0;else l=0;NB(c[Yb>>2]|0,33541,l,((l|0)<0)<<31>>31);break a}case 27:{nf(c[Zb>>2]|0)|0;break a}case 28:{if((c[$b>>2]|0)!=0?(Ci(c[$b>>2]|0,t)|0)==0:0){Xb=t;Gd(c[Xb>>2]|0,c[Xb+4>>2]|0)|0}Xb=c[Yb>>2]|0;Yb=Gd(-1,-1)|0;NB(Xb,33568,Yb,C);break a}case 34:{if((c[$b>>2]|0)!=0?(Vb=(Ci(c[$b>>2]|0,u)|0)==0,Xb=u,Wb=c[Xb+4>>2]|0,Vb&((Wb|0)>0|(Wb|0)==0&(c[Xb>>2]|0)>>>0>=0)):0)Df(c[Zb>>2]|0,11,c[u>>2]&2147483647)|0;Xb=c[Yb>>2]|0;Yb=Df(c[Zb>>2]|0,11,-1)|0;NB(Xb,33584,Yb,((Yb|0)<0)<<31>>31);break a}default:{if(c[$b>>2]|0){Xb=c[Zb>>2]|0;uf(Xb,Ki(c[$b>>2]|0)|0)|0}Xb=c[(c[Zb>>2]|0)+496>>2]|0;NB(c[Yb>>2]|0,33560,Xb,((Xb|0)<0)<<31>>31);break a}}while(0)}}while(0);Sf(c[Zb>>2]|0,c[_b>>2]|0);Sf(c[Zb>>2]|0,c[$b>>2]|0);i=ac;return}function iw(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=i;i=i+112|0;t=w+24|0;s=w;f=w+108|0;g=w+104|0;h=w+100|0;p=w+96|0;v=w+92|0;j=w+88|0;q=w+64|0;k=w+56|0;l=w+48|0;r=w+44|0;u=w+40|0;n=w+36|0;m=w+32|0;o=w+28|0;c[f>>2]=b;c[g>>2]=d;c[h>>2]=e;c[p>>2]=c[(c[f>>2]|0)+492>>2];c[j>>2]=c[c[f>>2]>>2];c[(c[f>>2]|0)+492>>2]=0;do if((c[p>>2]|0)!=0?(c[(c[f>>2]|0)+68>>2]|0)==0:0){c[v>>2]=c[c[p>>2]>>2];c[k>>2]=Dh(c[c[f>>2]>>2]|0,c[(c[p>>2]|0)+20>>2]|0)|0;c[(c[p>>2]|0)+28>>2]=c[g>>2];while(1){e=c[p>>2]|0;if(!(c[g>>2]|0))break;c[(c[g>>2]|0)+4>>2]=e;c[g>>2]=c[(c[g>>2]|0)+28>>2]}Cy(l,c[e>>2]|0);EB(q,c[f>>2]|0,c[k>>2]|0,19528,l);if((JB(q,c[(c[p>>2]|0)+28>>2]|0)|0)==0?(HB(q,c[(c[p>>2]|0)+12>>2]|0)|0)==0:0){if(!(a[(c[j>>2]|0)+140+5>>0]|0)){c[r>>2]=Pw(c[f>>2]|0)|0;if(!(c[r>>2]|0))break;ax(c[f>>2]|0,0,c[k>>2]|0);c[u>>2]=Iw(c[j>>2]|0,c[c[h>>2]>>2]|0,c[(c[h>>2]|0)+4>>2]|0,0)|0;q=c[f>>2]|0;b=(c[k>>2]|0)==1?20769:20788;d=c[v>>2]|0;h=c[(c[p>>2]|0)+4>>2]|0;l=c[u>>2]|0;c[s>>2]=c[(c[(c[j>>2]|0)+16>>2]|0)+(c[k>>2]<<4)>>2];c[s+4>>2]=b;c[s+8>>2]=d;c[s+12>>2]=h;c[s+16>>2]=l;Ow(q,32822,s);Sf(c[j>>2]|0,c[u>>2]|0);Qw(c[f>>2]|0,c[k>>2]|0);r=c[r>>2]|0;s=c[k>>2]|0;u=c[j>>2]|0;c[t>>2]=c[v>>2];Sw(r,s,Bh(u,32886,t)|0)}if(a[(c[j>>2]|0)+140+5>>0]|0){c[n>>2]=c[p>>2];c[m>>2]=(c[(c[(c[j>>2]|0)+16>>2]|0)+(c[k>>2]<<4)+12>>2]|0)+40;c[p>>2]=Oj(c[m>>2]|0,c[v>>2]|0,c[p>>2]|0)|0;if(c[p>>2]|0){jh(c[j>>2]|0);break}if((c[(c[n>>2]|0)+20>>2]|0)==(c[(c[n>>2]|0)+24>>2]|0)){c[o>>2]=nj((c[(c[n>>2]|0)+24>>2]|0)+8|0,c[(c[n>>2]|0)+4>>2]|0)|0;c[(c[n>>2]|0)+32>>2]=c[(c[o>>2]|0)+60>>2];c[(c[o>>2]|0)+60>>2]=c[n>>2]}}}}while(0);Pf(c[j>>2]|0,c[p>>2]|0);bv(c[j>>2]|0,c[g>>2]|0);i=w;return}function jw(b,e,f,g,h,j,k,l,m,n){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;Q=i;i=i+160|0;v=Q+48|0;u=Q+32|0;t=Q+24|0;F=Q+16|0;s=Q+8|0;r=Q;I=Q+156|0;o=Q+152|0;p=Q+148|0;x=Q+144|0;y=Q+140|0;J=Q+136|0;K=Q+132|0;L=Q+128|0;z=Q+124|0;A=Q+120|0;O=Q+116|0;E=Q+112|0;P=Q+108|0;M=Q+104|0;N=Q+100|0;D=Q+96|0;q=Q+72|0;C=Q+68|0;B=Q+64|0;G=Q+60|0;H=Q+56|0;c[I>>2]=b;c[o>>2]=e;c[p>>2]=f;c[x>>2]=g;c[y>>2]=h;c[J>>2]=j;c[K>>2]=k;c[L>>2]=l;c[z>>2]=m;c[A>>2]=n;c[O>>2]=0;c[P>>2]=0;c[M>>2]=c[c[I>>2]>>2];do if(c[z>>2]|0)if((c[(c[p>>2]|0)+4>>2]|0)>>>0<=0){c[N>>2]=1;c[D>>2]=c[o>>2];if(c[K>>2]|0){w=6;break}else break}else{Ah(c[I>>2]|0,32505,r);break}else{c[N>>2]=tz(c[I>>2]|0,c[o>>2]|0,c[p>>2]|0,D)|0;if((c[N>>2]|0)>=0&(c[K>>2]|0)!=0)w=6}while(0);do if((w|0)==6?(d[(c[M>>2]|0)+65>>0]|0)==0:0){if((c[N>>2]|0)!=1?(d[(c[M>>2]|0)+140+5>>0]|0)!=0:0){Sf(c[M>>2]|0,c[(c[K>>2]|0)+8+4>>2]|0);c[(c[K>>2]|0)+8+4>>2]=0}c[E>>2]=DB(c[I>>2]|0,c[K>>2]|0)|0;if(((d[(c[M>>2]|0)+140+5>>0]|0)==0?(c[E>>2]|0)!=0?(c[(c[p>>2]|0)+4>>2]|0)==0:0:0)?(c[(c[E>>2]|0)+64>>2]|0)==(c[(c[(c[M>>2]|0)+16>>2]|0)+16+12>>2]|0):0)c[N>>2]=1;if((a[(c[M>>2]|0)+65>>0]|0)==0?(EB(q,c[I>>2]|0,c[N>>2]|0,19528,c[D>>2]|0),(FB(q,c[K>>2]|0)|0)==0):0){c[E>>2]=DB(c[I>>2]|0,c[K>>2]|0)|0;if(!(c[E>>2]|0)){if((d[(c[M>>2]|0)+140+4>>0]|0)!=1)break;a[(c[M>>2]|0)+140+6>>0]=1;break}if(d[(c[E>>2]|0)+42>>0]&16){Ah(c[I>>2]|0,32551,s);break}c[P>>2]=Dw(c[M>>2]|0,c[D>>2]|0)|0;if((c[P>>2]|0)!=0?0==(yx(c[I>>2]|0,c[P>>2]|0)|0):0){if(nj((c[(c[(c[M>>2]|0)+16>>2]|0)+(c[N>>2]<<4)+12>>2]|0)+40|0,c[P>>2]|0)|0){o=c[I>>2]|0;if(c[A>>2]|0){bx(o,c[N>>2]|0);break}else{c[F>>2]=c[D>>2];Ah(o,32592,F);break}}if(!(zd(c[c[E>>2]>>2]|0,28715,7)|0)){Ah(c[I>>2]|0,32618,t);break}if((c[x>>2]|0)!=49?(c[(c[E>>2]|0)+12>>2]|0)!=0:0){N=c[I>>2]|0;H=c[K>>2]|0;c[u>>2]=(c[x>>2]|0)==35?32656:32663;c[u+4>>2]=H;c[u+8>>2]=0;Ah(N,32669,u);break}if((c[x>>2]|0)==49?(c[(c[E>>2]|0)+12>>2]|0)==0:0){N=c[I>>2]|0;c[v>>2]=c[K>>2];c[v+4>>2]=0;Ah(N,32706,v);break}c[C>>2]=Dh(c[M>>2]|0,c[(c[E>>2]|0)+64>>2]|0)|0;c[B>>2]=7;c[G>>2]=c[(c[(c[M>>2]|0)+16>>2]|0)+(c[C>>2]<<4)>>2];if(c[z>>2]|0)o=c[(c[(c[M>>2]|0)+16>>2]|0)+16>>2]|0;else o=c[G>>2]|0;c[H>>2]=o;if((c[C>>2]|0)==1|(c[z>>2]|0)!=0)c[B>>2]=5;if((Mw(c[I>>2]|0,c[B>>2]|0,c[P>>2]|0,c[c[E>>2]>>2]|0,c[H>>2]|0)|0)==0?(Mw(c[I>>2]|0,18,(c[C>>2]|0)==1?20769:20788,0,c[G>>2]|0)|0)==0:0){if((c[x>>2]|0)==49)c[x>>2]=35;c[O>>2]=ph(c[M>>2]|0,36,0)|0;if(!(c[O>>2]|0))break;c[c[O>>2]>>2]=c[P>>2];c[P>>2]=0;H=nh(c[M>>2]|0,c[(c[K>>2]|0)+8+8>>2]|0)|0;c[(c[O>>2]|0)+4>>2]=H;c[(c[O>>2]|0)+20>>2]=c[(c[(c[M>>2]|0)+16>>2]|0)+(c[N>>2]<<4)+12>>2];c[(c[O>>2]|0)+24>>2]=c[(c[E>>2]|0)+64>>2];a[(c[O>>2]|0)+8>>0]=c[y>>2];a[(c[O>>2]|0)+9>>0]=(c[x>>2]|0)==35?1:2;N=ny(c[M>>2]|0,c[L>>2]|0,1)|0;c[(c[O>>2]|0)+12>>2]=N;N=nz(c[M>>2]|0,c[J>>2]|0)|0;c[(c[O>>2]|0)+16>>2]=N;c[(c[I>>2]|0)+492>>2]=c[O>>2]}}}}while(0);Sf(c[M>>2]|0,c[P>>2]|0);Yu(c[M>>2]|0,c[K>>2]|0);_u(c[M>>2]|0,c[J>>2]|0);Zu(c[M>>2]|0,c[L>>2]|0);if(c[(c[I>>2]|0)+492>>2]|0){i=Q;return}Pf(c[M>>2]|0,c[O>>2]|0);i=Q;return}function kw(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0;n=i;i=i+32|0;h=n+16|0;o=n+12|0;j=n+8|0;k=n+4|0;l=n+20|0;m=n;c[h>>2]=b;c[o>>2]=d;c[j>>2]=e;c[k>>2]=f;a[l>>0]=g;c[m>>2]=CB(c[h>>2]|0,110,c[o>>2]|0)|0;if(c[m>>2]|0){o=vy(c[h>>2]|0,c[j>>2]|0,1)|0;c[(c[m>>2]|0)+20>>2]=o;o=ny(c[h>>2]|0,c[k>>2]|0,1)|0;c[(c[m>>2]|0)+16>>2]=o;a[(c[m>>2]|0)+1>>0]=a[l>>0]|0}Vu(c[h>>2]|0,c[j>>2]|0);Zu(c[h>>2]|0,c[k>>2]|0);i=n;return c[m>>2]|0}function lw(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0;n=i;i=i+32|0;h=n+16|0;o=n+12|0;j=n+8|0;k=n+4|0;l=n+20|0;m=n;c[h>>2]=b;c[o>>2]=d;c[j>>2]=e;c[k>>2]=f;a[l>>0]=g;c[m>>2]=CB(c[h>>2]|0,108,c[o>>2]|0)|0;b=c[h>>2]|0;if(c[m>>2]|0){o=Hx(b,c[k>>2]|0,1)|0;c[(c[m>>2]|0)+8>>2]=o;c[(c[m>>2]|0)+24>>2]=c[j>>2];a[(c[m>>2]|0)+1>>0]=a[l>>0]|0;l=c[h>>2]|0;o=c[k>>2]|0;Wu(l,o);o=c[m>>2]|0;i=n;return o|0}else{_u(b,c[j>>2]|0);l=c[h>>2]|0;o=c[k>>2]|0;Wu(l,o);o=c[m>>2]|0;i=n;return o|0}return 0}function mw(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;j=i;i=i+16|0;f=j+12|0;k=j+8|0;g=j+4|0;h=j;c[f>>2]=b;c[k>>2]=d;c[g>>2]=e;c[h>>2]=CB(c[f>>2]|0,109,c[k>>2]|0)|0;if(c[h>>2]|0){k=ny(c[f>>2]|0,c[g>>2]|0,1)|0;c[(c[h>>2]|0)+16>>2]=k;a[(c[h>>2]|0)+1>>0]=10}Zu(c[f>>2]|0,c[g>>2]|0);i=j;return c[h>>2]|0}function nw(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;e=j+12|0;f=j+8|0;g=j+4|0;h=j;c[f>>2]=b;c[g>>2]=d;c[h>>2]=ph(c[f>>2]|0,36,0)|0;if(!(c[h>>2]|0)){Wu(c[f>>2]|0,c[g>>2]|0);c[e>>2]=0;h=c[e>>2]|0;i=j;return h|0}else{a[c[h>>2]>>0]=119;c[(c[h>>2]|0)+8>>2]=c[g>>2];a[(c[h>>2]|0)+1>>0]=10;c[e>>2]=c[h>>2];h=c[e>>2]|0;i=j;return h|0}return 0}function ow(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;p=r;l=r+40|0;m=r+36|0;n=r+32|0;h=r+28|0;f=r+24|0;q=r+20|0;j=r+16|0;o=r+12|0;g=r+8|0;c[l>>2]=b;c[m>>2]=d;c[n>>2]=e;c[h>>2]=0;c[o>>2]=c[c[l>>2]>>2];if(a[(c[o>>2]|0)+65>>0]|0){p=c[o>>2]|0;q=c[m>>2]|0;Yu(p,q);i=r;return}if(pz(c[l>>2]|0)|0){p=c[o>>2]|0;q=c[m>>2]|0;Yu(p,q);i=r;return}c[q>>2]=c[(c[m>>2]|0)+8+4>>2];c[j>>2]=c[(c[m>>2]|0)+8+8>>2];c[f>>2]=0;while(1){if((c[f>>2]|0)>=(c[(c[o>>2]|0)+20>>2]|0))break;b=c[f>>2]|0;c[g>>2]=(c[f>>2]|0)<2?b^1:b;if(!((c[q>>2]|0)!=0?(Td(c[(c[(c[o>>2]|0)+16>>2]|0)+(c[g>>2]<<4)>>2]|0,c[q>>2]|0)|0)!=0:0))k=7;if((k|0)==7?(k=0,c[h>>2]=nj((c[(c[(c[o>>2]|0)+16>>2]|0)+(c[g>>2]<<4)+12>>2]|0)+40|0,c[j>>2]|0)|0,(c[h>>2]|0)!=0):0)break;c[f>>2]=(c[f>>2]|0)+1}if(c[h>>2]|0){AB(c[l>>2]|0,c[h>>2]|0);p=c[o>>2]|0;q=c[m>>2]|0;Yu(p,q);i=r;return}f=c[l>>2]|0;if(c[n>>2]|0)zB(f,c[q>>2]|0);else{c[p>>2]=c[m>>2];c[p+4>>2]=0;Ah(f,32434,p)}a[(c[l>>2]|0)+17>>0]=1;p=c[o>>2]|0;q=c[m>>2]|0;Yu(p,q);i=r;return}function pw(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+16|0;k=f+12|0;j=f+8|0;h=f+4|0;g=f;c[k>>2]=a;c[j>>2]=b;c[h>>2]=d;c[g>>2]=e;iB(c[k>>2]|0,24,5280,c[j>>2]|0,c[j>>2]|0,c[h>>2]|0,c[g>>2]|0);i=f;return}function qw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;iB(c[f>>2]|0,25,5248,c[e>>2]|0,0,0,c[e>>2]|0);i=d;return}function rw(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+64|0;t=u;q=u+48|0;f=u+44|0;g=u+40|0;j=u+36|0;m=u+32|0;o=u+28|0;l=u+24|0;s=u+20|0;r=u+16|0;h=u+12|0;k=u+8|0;n=u+4|0;c[q>>2]=b;c[f>>2]=d;c[g>>2]=e;c[h>>2]=c[c[q>>2]>>2];if(pz(c[q>>2]|0)|0){i=u;return}if(!(c[f>>2]|0)){Sz(c[q>>2]|0,0);i=u;return}if(!((c[g>>2]|0)!=0?(c[c[g>>2]>>2]|0)!=0:0))p=6;do if((p|0)==6){c[n>>2]=Dw(c[c[q>>2]>>2]|0,c[f>>2]|0)|0;if(!(c[n>>2]|0)){i=u;return}c[j>>2]=Mj(c[h>>2]|0,a[(c[h>>2]|0)+62>>0]|0,c[n>>2]|0,0)|0;if(!(c[j>>2]|0)){Sf(c[h>>2]|0,c[n>>2]|0);break}Sz(c[q>>2]|0,c[n>>2]|0);Sf(c[h>>2]|0,c[n>>2]|0);i=u;return}while(0);c[r>>2]=tz(c[q>>2]|0,c[f>>2]|0,c[g>>2]|0,k)|0;if((c[r>>2]|0)<0){i=u;return}c[m>>2]=Dw(c[h>>2]|0,c[k>>2]|0)|0;if(!(c[m>>2]|0)){i=u;return}c[o>>2]=c[(c[(c[h>>2]|0)+16>>2]|0)+(c[r>>2]<<4)>>2];c[l>>2]=pi(c[h>>2]|0,c[m>>2]|0,c[o>>2]|0)|0;if(c[l>>2]|0){Tz(c[q>>2]|0,c[l>>2]|0,0);Sf(c[h>>2]|0,c[m>>2]|0);i=u;return}c[s>>2]=Fj(c[h>>2]|0,c[m>>2]|0,c[o>>2]|0)|0;Sf(c[h>>2]|0,c[m>>2]|0);f=c[q>>2]|0;if(c[s>>2]|0){ax(f,0,c[r>>2]|0);Uz(c[q>>2]|0,c[s>>2]|0,-1);i=u;return}else{Ah(f,31878,t);i=u;return}}function sw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;l=r+44|0;e=r+40|0;f=r+36|0;m=r+32|0;h=r+28|0;g=r+24|0;q=r+20|0;k=r+16|0;o=r+12|0;n=r+8|0;j=r+4|0;p=r;c[l>>2]=a;c[e>>2]=b;c[f>>2]=d;c[m>>2]=c[c[l>>2]>>2];if(pz(c[l>>2]|0)|0){i=r;return}a:do if(c[e>>2]|0){if(c[(c[f>>2]|0)+4>>2]|0){c[h>>2]=tz(c[l>>2]|0,c[e>>2]|0,c[f>>2]|0,j)|0;if((c[h>>2]|0)<0)break;c[k>>2]=c[(c[(c[m>>2]|0)+16>>2]|0)+(c[h>>2]<<4)>>2];c[q>>2]=Dw(c[m>>2]|0,c[j>>2]|0)|0;if(!(c[q>>2]|0))break;j=Fj(c[m>>2]|0,c[q>>2]|0,c[k>>2]|0)|0;c[n>>2]=j;e=c[l>>2]|0;if(!j){n=zh(e,0,c[q>>2]|0,c[k>>2]|0)|0;c[o>>2]=n;if(n)sz(c[l>>2]|0,c[o>>2]|0,0)}else sz(e,c[(c[n>>2]|0)+12>>2]|0,c[n>>2]|0);Sf(c[m>>2]|0,c[q>>2]|0);break}c[h>>2]=rz(c[m>>2]|0,c[e>>2]|0)|0;if((c[h>>2]|0)>=0){qz(c[l>>2]|0,c[h>>2]|0);break}c[q>>2]=Dw(c[m>>2]|0,c[e>>2]|0)|0;if(c[q>>2]|0){k=Fj(c[m>>2]|0,c[q>>2]|0,0)|0;c[n>>2]=k;e=c[l>>2]|0;if(!k){n=zh(e,0,c[q>>2]|0,0)|0;c[o>>2]=n;if(n)sz(c[l>>2]|0,c[o>>2]|0,0)}else sz(e,c[(c[n>>2]|0)+12>>2]|0,c[n>>2]|0);Sf(c[m>>2]|0,c[q>>2]|0)}}else{c[g>>2]=0;while(1){if((c[g>>2]|0)>=(c[(c[m>>2]|0)+20>>2]|0))break a;if((c[g>>2]|0)!=1)qz(c[l>>2]|0,c[g>>2]|0);c[g>>2]=(c[g>>2]|0)+1}}while(0);c[p>>2]=Pw(c[l>>2]|0)|0;if(!(c[p>>2]|0)){i=r;return}Yw(c[p>>2]|0,147)|0;i=r;return}function tw(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+176|0;y=E+96|0;x=E+80|0;w=E+40|0;z=E+16|0;v=E+8|0;h=E;j=E+172|0;k=E+168|0;g=E+164|0;n=E+160|0;A=E+156|0;r=E+152|0;B=E+148|0;l=E+144|0;o=E+140|0;C=E+136|0;u=E+132|0;D=E+128|0;s=E+124|0;t=E+120|0;m=E+116|0;p=E+112|0;q=E+108|0;c[j>>2]=b;c[k>>2]=e;c[g>>2]=f;c[B>>2]=0;c[l>>2]=c[c[j>>2]>>2];c[D>>2]=0;c[s>>2]=0;c[t>>2]=c[(c[l>>2]|0)+24>>2];do if(((a[(c[l>>2]|0)+65>>0]|0)==0?(c[r>>2]=_w(c[j>>2]|0,0,(c[k>>2]|0)+8|0)|0,(c[r>>2]|0)!=0):0)?(c[n>>2]=Dh(c[c[j>>2]>>2]|0,c[(c[r>>2]|0)+64>>2]|0)|0,c[A>>2]=c[(c[(c[l>>2]|0)+16>>2]|0)+(c[n>>2]<<4)>>2],e=(c[l>>2]|0)+24|0,c[e>>2]=c[e>>2]|2097152,c[B>>2]=Dw(c[l>>2]|0,c[g>>2]|0)|0,(c[B>>2]|0)!=0):0){if((pi(c[l>>2]|0,c[B>>2]|0,c[A>>2]|0)|0)==0?(Fj(c[l>>2]|0,c[B>>2]|0,c[A>>2]|0)|0)==0:0){if($w(c[j>>2]|0,c[c[r>>2]>>2]|0)|0)break;if(yx(c[j>>2]|0,c[B>>2]|0)|0)break;g=c[j>>2]|0;if(c[(c[r>>2]|0)+12>>2]|0){c[v>>2]=c[c[r>>2]>>2];Ah(g,29208,v);break}if(Mw(g,26,c[A>>2]|0,c[c[r>>2]>>2]|0,0)|0)break;if(zx(c[j>>2]|0,c[r>>2]|0)|0)break;if((d[(c[r>>2]|0)+42>>0]&16|0)!=0?(c[s>>2]=Ax(c[l>>2]|0,c[r>>2]|0)|0,(c[(c[c[(c[s>>2]|0)+8>>2]>>2]|0)+76>>2]|0)==0):0)c[s>>2]=0;c[u>>2]=Pw(c[j>>2]|0)|0;if(!(c[u>>2]|0))break;ax(c[j>>2]|0,(c[s>>2]|0)!=0&1,c[n>>2]|0);Qw(c[j>>2]|0,c[n>>2]|0);if(c[s>>2]|0){h=(c[j>>2]|0)+76|0;v=(c[h>>2]|0)+1|0;c[h>>2]=v;c[m>>2]=v;Tw(c[u>>2]|0,c[m>>2]|0,c[B>>2]|0)|0;Uw(c[u>>2]|0,155,c[m>>2]|0,0,0,c[s>>2]|0,-10)|0;Bx(c[j>>2]|0)}c[C>>2]=c[c[r>>2]>>2];c[o>>2]=Cx(c[C>>2]|0,-1)|0;if((c[(c[l>>2]|0)+24>>2]&524288|0)!=0?(v=Dx(c[j>>2]|0,c[r>>2]|0)|0,c[D>>2]=v,(v|0)!=0):0){v=c[j>>2]|0;h=(c[n>>2]|0)==1?20769:20788;m=c[C>>2]|0;s=c[B>>2]|0;u=c[D>>2]|0;c[z>>2]=c[A>>2];c[z+4>>2]=h;c[z+8>>2]=m;c[z+12>>2]=s;c[z+16>>2]=u;Ow(v,29235,z);Sf(c[l>>2]|0,c[D>>2]|0)}z=c[j>>2]|0;e=(c[n>>2]|0)==1?20769:20788;h=c[B>>2]|0;m=c[B>>2]|0;n=c[B>>2]|0;s=c[B>>2]|0;u=c[B>>2]|0;v=c[o>>2]|0;C=c[C>>2]|0;c[w>>2]=c[A>>2];c[w+4>>2]=e;c[w+8>>2]=h;c[w+12>>2]=m;c[w+16>>2]=n;c[w+20>>2]=s;c[w+24>>2]=u;c[w+28>>2]=v;c[w+32>>2]=C;Ow(z,29304,w);if(pi(c[l>>2]|0,29688,c[A>>2]|0)|0){C=c[j>>2]|0;w=c[B>>2]|0;z=c[c[r>>2]>>2]|0;c[x>>2]=c[A>>2];c[x+4>>2]=w;c[x+8>>2]=z;Ow(C,29704,x)}C=gx(c[j>>2]|0,c[r>>2]|0)|0;c[D>>2]=C;if(C){C=c[j>>2]|0;z=c[B>>2]|0;A=c[D>>2]|0;c[y>>2]=c[B>>2];c[y+4>>2]=z;c[y+8>>2]=A;Ow(C,29762,y);Sf(c[l>>2]|0,c[D>>2]|0)}a:do if(c[(c[l>>2]|0)+24>>2]&524288){c[p>>2]=Ex(c[r>>2]|0)|0;while(1){if(!(c[p>>2]|0))break a;c[q>>2]=c[c[p>>2]>>2];if((c[q>>2]|0)!=(c[r>>2]|0))ex(c[j>>2]|0,c[c[p>>2]>>2]|0,c[c[q>>2]>>2]|0);c[p>>2]=c[(c[p>>2]|0)+12>>2]}}while(0);ex(c[j>>2]|0,c[r>>2]|0,c[B>>2]|0);break}D=c[j>>2]|0;c[h>>2]=c[B>>2];Ah(D,29149,h)}while(0);Yu(c[l>>2]|0,c[k>>2]|0);Sf(c[l>>2]|0,c[B>>2]|0);c[(c[l>>2]|0)+24>>2]=c[t>>2];i=E;return}function uw(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+128|0;v=D+40|0;u=D+32|0;y=D+24|0;x=D+16|0;w=D+8|0;t=D;g=D+124|0;h=D+120|0;n=D+116|0;o=D+112|0;k=D+108|0;A=D+104|0;C=D+100|0;z=D+96|0;l=D+92|0;m=D+88|0;j=D+84|0;s=D+80|0;p=D+76|0;q=D+72|0;B=D+68|0;r=D+64|0;c[g>>2]=e;c[h>>2]=f;c[s>>2]=c[(c[g>>2]|0)+8>>2];c[j>>2]=c[c[g>>2]>>2];if(c[(c[g>>2]|0)+68>>2]|0){i=D;return}if(d[(c[j>>2]|0)+65>>0]|0){i=D;return}c[n>>2]=c[(c[g>>2]|0)+488>>2];c[k>>2]=Dh(c[j>>2]|0,c[(c[n>>2]|0)+64>>2]|0)|0;c[A>>2]=c[(c[(c[j>>2]|0)+16>>2]|0)+(c[k>>2]<<4)>>2];c[C>>2]=(c[c[n>>2]>>2]|0)+16;c[l>>2]=(c[(c[n>>2]|0)+4>>2]|0)+(((b[(c[n>>2]|0)+34>>1]|0)-1|0)*24|0);c[m>>2]=c[(c[l>>2]|0)+4>>2];c[o>>2]=pi(c[j>>2]|0,c[C>>2]|0,c[A>>2]|0)|0;if(Mw(c[g>>2]|0,26,c[A>>2]|0,c[c[o>>2]>>2]|0,0)|0){i=D;return}if((c[m>>2]|0)!=0?(d[c[m>>2]>>0]|0)==101:0)c[m>>2]=0;if(d[(c[l>>2]|0)+23>>0]&1){Ah(c[g>>2]|0,28751,t);i=D;return}if(c[(c[n>>2]|0)+8>>2]|0){Ah(c[g>>2]|0,28783,w);i=D;return}if((c[(c[j>>2]|0)+24>>2]&524288|0)!=0?(c[m>>2]|0)!=0?(c[(c[n>>2]|0)+16>>2]|0)!=0:0:0){Ah(c[g>>2]|0,28810,x);i=D;return}if(!((c[m>>2]|0)!=0?1:(d[(c[l>>2]|0)+20>>0]|0)==0)){Ah(c[g>>2]|0,28869,y);i=D;return}do if(c[m>>2]|0){c[p>>2]=0;c[q>>2]=dx(c[j>>2]|0,c[m>>2]|0,1,65,p)|0;if(c[q>>2]|0){i=D;return}if(c[p>>2]|0){$g(c[p>>2]|0);break}Ah(c[g>>2]|0,28922,u);i=D;return}while(0);c[z>>2]=Iw(c[j>>2]|0,c[c[h>>2]>>2]|0,c[(c[h>>2]|0)+4>>2]|0,0)|0;if(c[z>>2]|0){c[B>>2]=(c[z>>2]|0)+((c[(c[h>>2]|0)+4>>2]|0)-1);c[r>>2]=c[(c[j>>2]|0)+24>>2];while(1){if((c[B>>2]|0)>>>0<=(c[z>>2]|0)>>>0)break;if((a[c[B>>2]>>0]|0)!=59?(d[19267+(d[c[B>>2]>>0]|0)>>0]&1|0)==0:0)break;y=c[B>>2]|0;c[B>>2]=y+-1;a[y>>0]=0}B=(c[j>>2]|0)+24|0;c[B>>2]=c[B>>2]|2097152;B=c[g>>2]|0;u=(c[k>>2]|0)==1?20769:20788;w=c[(c[n>>2]|0)+44>>2]|0;x=c[z>>2]|0;y=(c[(c[n>>2]|0)+44>>2]|0)+1|0;C=c[C>>2]|0;c[v>>2]=c[A>>2];c[v+4>>2]=u;c[v+8>>2]=w;c[v+12>>2]=x;c[v+16>>2]=y;c[v+20>>2]=C;Ow(B,28968,v);Sf(c[j>>2]|0,c[z>>2]|0);c[(c[j>>2]|0)+24>>2]=c[r>>2]}Vw(c[s>>2]|0,52,c[k>>2]|0,2,4)|0;ex(c[g>>2]|0,c[o>>2]|0,c[c[o>>2]>>2]|0);i=D;return}function vw(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+64|0;t=u+16|0;s=u+8|0;g=u;h=u+56|0;j=u+52|0;p=u+48|0;q=u+44|0;r=u+40|0;m=u+36|0;l=u+32|0;n=u+28|0;k=u+24|0;o=u+20|0;c[h>>2]=e;c[j>>2]=f;c[k>>2]=c[c[h>>2]>>2];do if((a[(c[k>>2]|0)+65>>0]|0)==0?(c[q>>2]=_w(c[h>>2]|0,0,(c[j>>2]|0)+8|0)|0,(c[q>>2]|0)!=0):0){if(d[(c[q>>2]|0)+42>>0]&16){Ah(c[h>>2]|0,28562,g);break}e=c[h>>2]|0;if(c[(c[q>>2]|0)+12>>2]|0){Ah(e,28596,s);break}if(((0==($w(e,c[c[q>>2]>>2]|0)|0)?(c[m>>2]=Dh(c[k>>2]|0,c[(c[q>>2]|0)+64>>2]|0)|0,c[p>>2]=ph(c[k>>2]|0,72,0)|0,(c[p>>2]|0)!=0):0)?(c[(c[h>>2]|0)+488>>2]=c[p>>2],b[(c[p>>2]|0)+36>>1]=1,b[(c[p>>2]|0)+34>>1]=b[(c[q>>2]|0)+34>>1]|0,c[n>>2]=((((b[(c[p>>2]|0)+34>>1]|0)-1|0)/8|0)<<3)+8,s=ph(c[k>>2]|0,(c[n>>2]|0)*24|0,0)|0,c[(c[p>>2]|0)+4>>2]=s,s=c[k>>2]|0,c[t>>2]=c[c[q>>2]>>2],t=Bh(s,28626,t)|0,c[c[p>>2]>>2]=t,(c[(c[p>>2]|0)+4>>2]|0)!=0):0)?(c[c[p>>2]>>2]|0)!=0:0){iR(c[(c[p>>2]|0)+4>>2]|0,c[(c[q>>2]|0)+4>>2]|0,(b[(c[p>>2]|0)+34>>1]|0)*24|0)|0;c[l>>2]=0;while(1){if((c[l>>2]|0)>=(b[(c[p>>2]|0)+34>>1]|0))break;c[o>>2]=(c[(c[p>>2]|0)+4>>2]|0)+((c[l>>2]|0)*24|0);t=nh(c[k>>2]|0,c[c[o>>2]>>2]|0)|0;c[c[o>>2]>>2]=t;c[(c[o>>2]|0)+16>>2]=0;c[(c[o>>2]|0)+12>>2]=0;c[(c[o>>2]|0)+4>>2]=0;c[(c[o>>2]|0)+8>>2]=0;c[l>>2]=(c[l>>2]|0)+1}c[(c[p>>2]|0)+64>>2]=c[(c[(c[k>>2]|0)+16>>2]|0)+(c[m>>2]<<4)+12>>2];c[(c[p>>2]|0)+44>>2]=c[(c[q>>2]|0)+44>>2];b[(c[p>>2]|0)+36>>1]=1;ax(c[h>>2]|0,0,c[m>>2]|0);c[r>>2]=Pw(c[h>>2]|0)|0;if(c[r>>2]|0)Qw(c[h>>2]|0,c[m>>2]|0)}}while(0);Yu(c[k>>2]|0,c[j>>2]|0);i=u;return}function ww(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+96|0;q=u+32|0;p=u+8|0;o=u;e=u+80|0;f=u+76|0;m=u+72|0;g=u+68|0;s=u+64|0;t=u+60|0;h=u+56|0;j=u+52|0;n=u+48|0;k=u+44|0;l=u+40|0;r=u+36|0;c[e>>2]=b;c[f>>2]=d;c[m>>2]=c[(c[e>>2]|0)+488>>2];c[g>>2]=c[c[e>>2]>>2];if(!(c[m>>2]|0)){i=u;return}Kw(c[e>>2]|0);c[(c[e>>2]|0)+516>>2]=0;if((c[(c[m>>2]|0)+48>>2]|0)<1){i=u;return}if(!(a[(c[g>>2]|0)+140+5>>0]|0)){if(c[f>>2]|0)c[(c[e>>2]|0)+500+4>>2]=(c[c[f>>2]>>2]|0)-(c[(c[e>>2]|0)+500>>2]|0)+(c[(c[f>>2]|0)+4>>2]|0);r=c[g>>2]|0;c[o>>2]=(c[e>>2]|0)+500;c[s>>2]=Bh(r,28423,o)|0;c[h>>2]=Dh(c[g>>2]|0,c[(c[m>>2]|0)+64>>2]|0)|0;r=c[e>>2]|0;d=(c[h>>2]|0)==1?20769:20788;k=c[c[m>>2]>>2]|0;b=c[c[m>>2]>>2]|0;l=c[s>>2]|0;o=c[(c[e>>2]|0)+392>>2]|0;c[p>>2]=c[(c[(c[g>>2]|0)+16>>2]|0)+(c[h>>2]<<4)>>2];c[p+4>>2]=d;c[p+8>>2]=k;c[p+12>>2]=b;c[p+16>>2]=l;c[p+20>>2]=o;Ow(r,28447,p);Sf(c[g>>2]|0,c[s>>2]|0);c[n>>2]=Pw(c[e>>2]|0)|0;Qw(c[e>>2]|0,c[h>>2]|0);Rw(c[n>>2]|0,147,0,0)|0;s=c[g>>2]|0;c[q>>2]=c[c[m>>2]>>2];c[t>>2]=Bh(s,28535,q)|0;Sw(c[n>>2]|0,c[h>>2]|0,c[t>>2]|0);s=(c[e>>2]|0)+76|0;t=(c[s>>2]|0)+1|0;c[s>>2]=t;c[j>>2]=t;Tw(c[n>>2]|0,c[j>>2]|0,c[c[m>>2]>>2]|0)|0;Rw(c[n>>2]|0,150,c[h>>2]|0,c[j>>2]|0)|0;i=u;return}c[l>>2]=c[(c[m>>2]|0)+64>>2];c[r>>2]=c[c[m>>2]>>2];c[k>>2]=Oj((c[l>>2]|0)+8|0,c[r>>2]|0,c[m>>2]|0)|0;if(c[k>>2]|0){jh(c[g>>2]|0);i=u;return}else{c[(c[e>>2]|0)+488>>2]=0;i=u;return}}function xw(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;o=i;i=i+32|0;j=o+28|0;r=o+24|0;q=o+20|0;k=o+16|0;p=o+12|0;m=o+8|0;n=o+4|0;l=o;c[j>>2]=b;c[r>>2]=e;c[q>>2]=f;c[k>>2]=g;c[p>>2]=h;lv(c[j>>2]|0,c[r>>2]|0,c[q>>2]|0,0,0,1,c[p>>2]|0);c[n>>2]=c[(c[j>>2]|0)+488>>2];if(!(c[n>>2]|0)){i=o;return}c[l>>2]=c[c[j>>2]>>2];c[m>>2]=Dh(c[l>>2]|0,c[(c[n>>2]|0)+64>>2]|0)|0;r=(c[n>>2]|0)+42|0;a[r>>0]=d[r>>0]|0|16;c[(c[n>>2]|0)+48>>2]=0;r=c[l>>2]|0;q=c[n>>2]|0;Lw(r,q,Dw(c[l>>2]|0,c[k>>2]|0)|0);Lw(c[l>>2]|0,c[n>>2]|0,0);q=c[l>>2]|0;r=c[n>>2]|0;Lw(q,r,nh(c[l>>2]|0,c[c[n>>2]>>2]|0)|0);c[(c[j>>2]|0)+500+4>>2]=(c[c[k>>2]>>2]|0)+(c[(c[k>>2]|0)+4>>2]|0)-(c[(c[j>>2]|0)+500>>2]|0);if(!(c[(c[n>>2]|0)+52>>2]|0)){i=o;return}Mw(c[j>>2]|0,29,c[c[n>>2]>>2]|0,c[c[(c[n>>2]|0)+52>>2]>>2]|0,c[(c[(c[c[j>>2]>>2]|0)+16>>2]|0)+(c[m>>2]<<4)>>2]|0)|0;i=o;return}function yw(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;Kw(c[d>>2]|0);c[(c[d>>2]|0)+516>>2]=0;c[(c[d>>2]|0)+516+4>>2]=0;i=b;return}function zw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=i;i=i+16|0;g=f+8|0;d=f+4|0;e=f;c[g>>2]=a;c[d>>2]=b;c[e>>2]=(c[g>>2]|0)+516;b=c[d>>2]|0;if(!(c[c[e>>2]>>2]|0)){c[c[e>>2]>>2]=c[b>>2];c[(c[e>>2]|0)+4>>2]=c[(c[d>>2]|0)+4>>2];i=f;return}else{c[(c[e>>2]|0)+4>>2]=(c[c[d>>2]>>2]|0)+(c[b+4>>2]|0)-(c[c[e>>2]>>2]|0);i=f;return}}function Aw(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=i;i=i+48|0;q=s;h=s+40|0;j=s+36|0;t=s+32|0;k=s+28|0;l=s+24|0;m=s+20|0;p=s+16|0;r=s+12|0;n=s+8|0;o=s+4|0;c[h>>2]=b;c[j>>2]=d;c[t>>2]=e;c[k>>2]=f;c[l>>2]=g;c[m>>2]=c[c[h>>2]>>2];c[r>>2]=Dw(c[c[h>>2]>>2]|0,c[t>>2]|0)|0;a:do if((c[r>>2]|0)!=0&(c[j>>2]|0)!=0){c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[c[j>>2]>>2]|0))break a;if(!(Td(c[r>>2]|0,c[(c[j>>2]|0)+8+(c[n>>2]<<4)>>2]|0)|0)){t=c[h>>2]|0;c[q>>2]=c[r>>2];Ah(t,28355,q)}c[n>>2]=(c[n>>2]|0)+1}}while(0);if(c[j>>2]|0){c[o>>2]=24+(c[c[j>>2]>>2]<<4);t=c[o>>2]|0;c[p>>2]=Ew(c[m>>2]|0,c[j>>2]|0,t,((t|0)<0)<<31>>31)|0}else c[p>>2]=ph(c[m>>2]|0,24,0)|0;if(a[(c[m>>2]|0)+65>>0]|0){Vu(c[m>>2]|0,c[k>>2]|0);Wu(c[m>>2]|0,c[l>>2]|0);Sf(c[m>>2]|0,c[r>>2]|0);c[p>>2]=c[j>>2];t=c[p>>2]|0;i=s;return t|0}else{c[(c[p>>2]|0)+8+(c[c[p>>2]>>2]<<4)+8>>2]=c[l>>2];c[(c[p>>2]|0)+8+(c[c[p>>2]>>2]<<4)+4>>2]=c[k>>2];c[(c[p>>2]|0)+8+(c[c[p>>2]>>2]<<4)>>2]=c[r>>2];c[(c[p>>2]|0)+8+(c[c[p>>2]>>2]<<4)+12>>2]=0;t=c[p>>2]|0;c[t>>2]=(c[t>>2]|0)+1;t=c[p>>2]|0;i=s;return t|0}return 0}function Bw(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0;j=i;i=i+16|0;l=j+4|0;k=j+8|0;h=j;c[l>>2]=f;a[k>>0]=g;c[h>>2]=b[11910+(c[l>>2]<<1)>>1];c[h>>2]=(c[h>>2]|0)+(d[k>>0]|0);i=j;return e[12532+(c[h>>2]<<1)>>1]|0}function Cw(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;c[d>>2]=c[(c[b>>2]|0)+8>>2];while(1){if((c[c[b>>2]>>2]|0)<0)break;$u(c[b>>2]|0)}c[(c[b>>2]|0)+8>>2]=c[d>>2];i=e;return}function Dw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;e=g+4|0;f=g;c[d>>2]=a;c[e>>2]=b;if(c[e>>2]|0){c[f>>2]=Iw(c[d>>2]|0,c[c[e>>2]>>2]|0,c[(c[e>>2]|0)+4>>2]|0,0)|0;Jw(c[f>>2]|0)|0;f=c[f>>2]|0;i=g;return f|0}else{c[f>>2]=0;f=c[f>>2]|0;i=g;return f|0}return 0}function Ew(a,b,d,f){a=a|0;b=b|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;g=l+16|0;h=l+12|0;j=l+8|0;k=l;c[h>>2]=a;c[j>>2]=b;b=k;c[b>>2]=d;c[b+4>>2]=f;d=c[h>>2]|0;if(!(c[j>>2]|0)){c[g>>2]=Fw(d,c[k>>2]|0,c[k+4>>2]|0)|0;k=c[g>>2]|0;i=l;return k|0}if((au(d,c[j>>2]|0)|0)!=0?(b=k,a=c[b+4>>2]|0,a>>>0<0|((a|0)==0?(c[b>>2]|0)>>>0<=(e[(c[h>>2]|0)+248+4>>1]|0)>>>0:0)):0){c[g>>2]=c[j>>2];k=c[g>>2]|0;i=l;return k|0}c[g>>2]=Gw(c[h>>2]|0,c[j>>2]|0,c[k>>2]|0,c[k+4>>2]|0)|0;k=c[g>>2]|0;i=l;return k|0}function Fw(b,d,f){b=b|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;g=l+16|0;h=l+12|0;j=l;k=l+8|0;c[h>>2]=b;b=j;c[b>>2]=d;c[b+4>>2]=f;do if(c[(c[h>>2]|0)+248>>2]|0){if(a[(c[h>>2]|0)+65>>0]|0){c[g>>2]=0;k=c[g>>2]|0;i=l;return k|0}}else{b=j;f=c[b+4>>2]|0;d=(c[h>>2]|0)+248|0;if(f>>>0>0|((f|0)==0?(c[b>>2]|0)>>>0>(e[(c[h>>2]|0)+248+4>>1]|0)>>>0:0)){k=d+16+4|0;c[k>>2]=(c[k>>2]|0)+1;break}b=c[d+28>>2]|0;c[k>>2]=b;if(!b){k=(c[h>>2]|0)+248+16+8|0;c[k>>2]=(c[k>>2]|0)+1;break}c[(c[h>>2]|0)+248+28>>2]=c[c[k>>2]>>2];j=(c[h>>2]|0)+248+8|0;c[j>>2]=(c[j>>2]|0)+1;j=(c[h>>2]|0)+248+16|0;c[j>>2]=(c[j>>2]|0)+1;if((c[(c[h>>2]|0)+248+8>>2]|0)>(c[(c[h>>2]|0)+248+12>>2]|0))c[(c[h>>2]|0)+248+12>>2]=c[(c[h>>2]|0)+248+8>>2];c[g>>2]=c[k>>2];k=c[g>>2]|0;i=l;return k|0}while(0);k=j;c[g>>2]=Hw(c[h>>2]|0,c[k>>2]|0,c[k+4>>2]|0)|0;k=c[g>>2]|0;i=l;return k|0}function Gw(a,b,f,g){a=a|0;b=b|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;h=m+16|0;j=m+12|0;k=m;l=m+8|0;c[h>>2]=a;c[j>>2]=b;b=k;c[b>>2]=f;c[b+4>>2]=g;c[l>>2]=0;if(d[(c[h>>2]|0)+65>>0]|0){l=c[l>>2]|0;i=m;return l|0}if(au(c[h>>2]|0,c[j>>2]|0)|0){b=k;c[l>>2]=Fw(c[h>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;if(!(c[l>>2]|0)){l=c[l>>2]|0;i=m;return l|0}iR(c[l>>2]|0,c[j>>2]|0,e[(c[h>>2]|0)+248+4>>1]|0|0)|0;Sf(c[h>>2]|0,c[j>>2]|0);l=c[l>>2]|0;i=m;return l|0}else{b=k;c[l>>2]=Md(c[j>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;if(c[l>>2]|0){l=c[l>>2]|0;i=m;return l|0}jh(c[h>>2]|0);l=c[l>>2]|0;i=m;return l|0}return 0}function Hw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=i;i=i+16|0;e=g+12|0;h=g;f=g+8|0;c[e>>2]=a;a=h;c[a>>2]=b;c[a+4>>2]=d;a=h;c[f>>2]=_f(c[a>>2]|0,c[a+4>>2]|0)|0;if(c[f>>2]|0){h=c[f>>2]|0;i=g;return h|0}jh(c[e>>2]|0);h=c[f>>2]|0;i=g;return h|0}function Iw(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;g=m+20|0;h=m+16|0;j=m+12|0;k=m;l=m+8|0;c[h>>2]=b;c[j>>2]=d;d=k;c[d>>2]=e;c[d+4>>2]=f;if(!(c[j>>2]|0)){c[g>>2]=0;l=c[g>>2]|0;i=m;return l|0}b=c[h>>2]|0;d=k;d=gR(c[d>>2]|0,c[d+4>>2]|0,1,0)|0;c[l>>2]=Fw(b,d,C)|0;if(c[l>>2]|0){iR(c[l>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;a[(c[l>>2]|0)+(c[k>>2]|0)>>0]=0}c[g>>2]=c[l>>2];l=c[g>>2]|0;i=m;return l|0}function Jw(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;j=i;i=i+32|0;d=j+12|0;e=j+8|0;h=j+16|0;f=j+4|0;g=j;c[e>>2]=b;if(!(c[e>>2]|0)){c[d>>2]=-1;h=c[d>>2]|0;i=j;return h|0}a[h>>0]=a[c[e>>2]>>0]|0;switch(a[h>>0]|0){case 96:case 34:case 39:break;case 91:{a[h>>0]=93;break}default:{c[d>>2]=-1;h=c[d>>2]|0;i=j;return h|0}}c[f>>2]=1;c[g>>2]=0;while(1){b=c[f>>2]|0;if((a[(c[e>>2]|0)+(c[f>>2]|0)>>0]|0)==(a[h>>0]|0)){if((a[(c[e>>2]|0)+(b+1)>>0]|0)!=(a[h>>0]|0))break;k=a[h>>0]|0;b=c[g>>2]|0;c[g>>2]=b+1;a[(c[e>>2]|0)+b>>0]=k;c[f>>2]=(c[f>>2]|0)+1}else{b=a[(c[e>>2]|0)+b>>0]|0;k=c[g>>2]|0;c[g>>2]=k+1;a[(c[e>>2]|0)+k>>0]=b}c[f>>2]=(c[f>>2]|0)+1}a[(c[e>>2]|0)+(c[g>>2]|0)>>0]=0;c[d>>2]=c[g>>2];k=c[d>>2]|0;i=j;return k|0}function Kw(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;g=i;i=i+16|0;b=g+12|0;f=g+8|0;e=g+4|0;d=g;c[b>>2]=a;if(!(c[(c[b>>2]|0)+516>>2]|0)){i=g;return}if(!(c[(c[b>>2]|0)+488>>2]|0)){i=g;return}c[f>>2]=c[(c[b>>2]|0)+516>>2];c[e>>2]=c[(c[b>>2]|0)+516+4>>2];c[d>>2]=c[c[b>>2]>>2];h=c[d>>2]|0;b=c[(c[b>>2]|0)+488>>2]|0;a=c[e>>2]|0;Lw(h,b,Iw(c[d>>2]|0,c[f>>2]|0,a,((a|0)<0)<<31>>31)|0);i=g;return}function Lw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;e=k+20|0;f=k+16|0;g=k+12|0;l=k+8|0;h=k+4|0;j=k;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[l>>2]=2+(c[(c[f>>2]|0)+48>>2]|0)<<2;d=c[l>>2]|0;c[h>>2]=Ew(c[e>>2]|0,c[(c[f>>2]|0)+52>>2]|0,d,((d|0)<0)<<31>>31)|0;if(!(c[h>>2]|0)){Sf(c[e>>2]|0,c[g>>2]|0);i=k;return}else{d=(c[f>>2]|0)+48|0;l=c[d>>2]|0;c[d>>2]=l+1;c[j>>2]=l;c[(c[h>>2]|0)+(c[j>>2]<<2)>>2]=c[g>>2];c[(c[h>>2]|0)+((c[j>>2]|0)+1<<2)>>2]=0;c[(c[f>>2]|0)+52>>2]=c[h>>2];i=k;return}}function Mw(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;q=r;h=r+32|0;j=r+28|0;k=r+24|0;l=r+20|0;m=r+16|0;n=r+12|0;o=r+8|0;p=r+4|0;c[j>>2]=a;c[k>>2]=b;c[l>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=c[c[j>>2]>>2];if((d[(c[o>>2]|0)+140+5>>0]|0|0)==0?(d[(c[j>>2]|0)+454>>0]|0|0)==0:0){if(!(c[(c[o>>2]|0)+288>>2]|0)){c[h>>2]=0;g=c[h>>2]|0;i=r;return g|0}c[p>>2]=Sb[c[(c[o>>2]|0)+288>>2]&255](c[(c[o>>2]|0)+292>>2]|0,c[k>>2]|0,c[l>>2]|0,c[m>>2]|0,c[n>>2]|0,c[(c[j>>2]|0)+496>>2]|0)|0;if((c[p>>2]|0)!=1){if((c[p>>2]|0)!=0&(c[p>>2]|0)!=2){c[p>>2]=1;Nw(c[j>>2]|0)}}else{Ah(c[j>>2]|0,28385,q);c[(c[j>>2]|0)+12>>2]=23}c[h>>2]=c[p>>2];g=c[h>>2]|0;i=r;return g|0}c[h>>2]=0;g=c[h>>2]|0;i=r;return g|0}function Nw(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b+4|0;c[d>>2]=a;Ah(c[d>>2]|0,28400,b);c[(c[d>>2]|0)+12>>2]=1;i=b;return}function Ow(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+144|0;j=o+36|0;g=o+32|0;h=o+16|0;n=o+8|0;m=o+4|0;k=o;l=o+40|0;c[j>>2]=d;c[g>>2]=e;c[m>>2]=0;c[k>>2]=c[c[j>>2]>>2];if(c[(c[j>>2]|0)+68>>2]|0){i=o;return}c[h>>2]=f;c[n>>2]=Zw(c[k>>2]|0,c[g>>2]|0,h)|0;if(!(c[n>>2]|0)){i=o;return}g=(c[j>>2]|0)+18|0;a[g>>0]=(a[g>>0]|0)+1<<24>>24;g=l;h=(c[j>>2]|0)+444|0;d=g+100|0;do{a[g>>0]=a[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(d|0));g=(c[j>>2]|0)+444|0;d=g+100|0;do{b[g>>1]=0;g=g+2|0}while((g|0)<(d|0));Uh(c[j>>2]|0,c[n>>2]|0,m)|0;Sf(c[k>>2]|0,c[m>>2]|0);Sf(c[k>>2]|0,c[n>>2]|0);g=(c[j>>2]|0)+444|0;h=l;d=g+100|0;do{a[g>>0]=a[h>>0]|0;g=g+1|0;h=h+1|0}while((g|0)<(d|0));n=(c[j>>2]|0)+18|0;a[n>>0]=(a[n>>0]|0)+-1<<24>>24;i=o;return}function Pw(b){b=b|0;var d=0,f=0,g=0;g=i;i=i+16|0;d=g+4|0;f=g;c[d>>2]=b;c[f>>2]=c[(c[d>>2]|0)+8>>2];if(!(c[f>>2]|0)){b=Ch(c[d>>2]|0)|0;c[(c[d>>2]|0)+8>>2]=b;c[f>>2]=b;if(c[f>>2]|0)Yw(c[f>>2]|0,158)|0;if((c[(c[d>>2]|0)+416>>2]|0)==0?((e[(c[c[d>>2]>>2]|0)+60>>1]|0)&8|0)==0:0)a[(c[d>>2]|0)+23>>0]=1}i=g;return c[f>>2]|0}function Qw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;d=i;i=i+16|0;h=d+12|0;e=d+8|0;f=d+4|0;g=d;c[h>>2]=a;c[e>>2]=b;c[f>>2]=c[c[h>>2]>>2];c[g>>2]=c[(c[h>>2]|0)+8>>2];Vw(c[g>>2]|0,52,c[e>>2]|0,1,(c[c[(c[(c[f>>2]|0)+16>>2]|0)+(c[e>>2]<<4)+12>>2]>>2]|0)+1|0)|0;i=d;return}function Rw(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+16|0;k=f+12|0;j=f+8|0;h=f+4|0;g=f;c[k>>2]=a;c[j>>2]=b;c[h>>2]=d;c[g>>2]=e;e=Vw(c[k>>2]|0,c[j>>2]|0,c[h>>2]|0,c[g>>2]|0,0)|0;i=f;return e|0}function Sw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;g=i;i=i+16|0;e=g+12|0;j=g+8|0;h=g+4|0;f=g;c[e>>2]=a;c[j>>2]=b;c[h>>2]=d;Uw(c[e>>2]|0,123,c[j>>2]|0,0,0,c[h>>2]|0,-1)|0;c[f>>2]=0;while(1){if((c[f>>2]|0)>=(c[(c[c[e>>2]>>2]|0)+20>>2]|0))break;Hh(c[e>>2]|0,c[f>>2]|0);c[f>>2]=(c[f>>2]|0)+1}i=g;return}function Tw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;h=e+8|0;g=e+4|0;f=e;c[h>>2]=a;c[g>>2]=b;c[f>>2]=d;d=Uw(c[h>>2]|0,97,0,c[g>>2]|0,0,c[f>>2]|0,0)|0;i=e;return d|0}function Uw(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;k=i;i=i+32|0;n=k+28|0;r=k+24|0;q=k+20|0;p=k+16|0;o=k+12|0;m=k+8|0;l=k+4|0;j=k;c[n>>2]=a;c[r>>2]=b;c[q>>2]=d;c[p>>2]=e;c[o>>2]=f;c[m>>2]=g;c[l>>2]=h;c[j>>2]=Vw(c[n>>2]|0,c[r>>2]|0,c[q>>2]|0,c[p>>2]|0,c[o>>2]|0)|0;Ih(c[n>>2]|0,c[j>>2]|0,c[m>>2]|0,c[l>>2]|0);i=k;return c[j>>2]|0}function Vw(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+32|0;h=q+28|0;j=q+24|0;k=q+20|0;l=q+16|0;m=q+12|0;n=q+8|0;o=q+4|0;p=q;c[j>>2]=b;c[k>>2]=d;c[l>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=c[(c[j>>2]|0)+32>>2];d=c[j>>2]|0;if((c[(c[(c[j>>2]|0)+24>>2]|0)+88>>2]|0)<=(c[o>>2]|0)){c[h>>2]=Ww(d,c[k>>2]|0,c[l>>2]|0,c[m>>2]|0,c[n>>2]|0)|0;p=c[h>>2]|0;i=q;return p|0}else{g=d+32|0;c[g>>2]=(c[g>>2]|0)+1;c[p>>2]=(c[(c[j>>2]|0)+4>>2]|0)+((c[o>>2]|0)*20|0);a[c[p>>2]>>0]=c[k>>2];a[(c[p>>2]|0)+3>>0]=0;c[(c[p>>2]|0)+4>>2]=c[l>>2];c[(c[p>>2]|0)+8>>2]=c[m>>2];c[(c[p>>2]|0)+12>>2]=c[n>>2];c[(c[p>>2]|0)+16>>2]=0;a[(c[p>>2]|0)+1>>0]=0;c[h>>2]=c[o>>2];p=c[h>>2]|0;i=q;return p|0}return 0}function Ww(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;g=n+20|0;h=n+16|0;j=n+12|0;k=n+8|0;l=n+4|0;m=n;c[h>>2]=a;c[j>>2]=b;c[k>>2]=d;c[l>>2]=e;c[m>>2]=f;if(Xw(c[h>>2]|0,1)|0){c[g>>2]=1;f=c[g>>2]|0;i=n;return f|0}else{c[g>>2]=Vw(c[h>>2]|0,c[j>>2]|0,c[k>>2]|0,c[l>>2]|0,c[m>>2]|0)|0;f=c[g>>2]|0;i=n;return f|0}return 0}function Xw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+32|0;d=h+16|0;g=h+8|0;f=h+4|0;e=h;c[d>>2]=a;c[h+12>>2]=b;c[f>>2]=c[(c[d>>2]|0)+24>>2];if(c[(c[f>>2]|0)+88>>2]|0)b=c[(c[f>>2]|0)+88>>2]<<1;else b=51;c[e>>2]=b;c[g>>2]=Ew(c[c[f>>2]>>2]|0,c[(c[d>>2]|0)+4>>2]|0,(c[e>>2]|0)*20|0,0)|0;if(!(c[g>>2]|0)){g=c[g>>2]|0;g=(g|0)!=0;g=g?0:7;i=h;return g|0}e=$t(c[c[f>>2]>>2]|0,c[g>>2]|0)|0;c[(c[f>>2]|0)+92>>2]=e;c[(c[f>>2]|0)+88>>2]=((c[(c[f>>2]|0)+92>>2]|0)>>>0)/20|0;c[(c[d>>2]|0)+4>>2]=c[g>>2];g=c[g>>2]|0;g=(g|0)!=0;g=g?0:7;i=h;return g|0}function Yw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;a=Vw(c[f>>2]|0,c[e>>2]|0,0,0,0)|0;i=d;return a|0}function Zw(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;j=i;i=i+128|0;g=j+40|0;m=j+36|0;l=j+32|0;h=j+28|0;k=j;c[g>>2]=b;c[m>>2]=e;c[l>>2]=f;cg(k,c[g>>2]|0,j+44|0,70,c[(c[g>>2]|0)+88>>2]|0);a[k+25>>0]=1;dg(k,c[m>>2]|0,c[l>>2]|0);c[h>>2]=eg(k)|0;if((d[k+24>>0]|0|0)!=1){m=c[h>>2]|0;i=j;return m|0}jh(c[g>>2]|0);m=c[h>>2]|0;i=j;return m|0}function _w(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+16|0;f=k+12|0;g=k+8|0;j=k+4|0;h=k;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;if(c[c[g>>2]>>2]|0){c[h>>2]=Dh(c[c[e>>2]>>2]|0,c[c[g>>2]>>2]|0)|0;c[j>>2]=c[(c[(c[c[e>>2]>>2]|0)+16>>2]|0)+(c[h>>2]<<4)>>2]}else c[j>>2]=c[(c[g>>2]|0)+4>>2];j=zh(c[e>>2]|0,c[f>>2]|0,c[(c[g>>2]|0)+8>>2]|0,c[j>>2]|0)|0;
  78. i=k;return j|0}function $w(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;g=h;d=h+12|0;e=h+8|0;f=h+4|0;c[e>>2]=a;c[f>>2]=b;if((If(c[f>>2]|0)|0)>6?0==(zd(c[f>>2]|0,28715,7)|0):0){b=c[e>>2]|0;c[g>>2]=c[f>>2];Ah(b,28723,g);c[d>>2]=1;b=c[d>>2]|0;i=h;return b|0}c[d>>2]=0;b=c[d>>2]|0;i=h;return b|0}function ax(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;l=i;i=i+16|0;g=l+12|0;h=l+8|0;j=l+4|0;k=l;c[g>>2]=b;c[h>>2]=e;c[j>>2]=f;f=c[g>>2]|0;if(c[(c[g>>2]|0)+416>>2]|0)f=c[f+416>>2]|0;c[k>>2]=f;bx(c[g>>2]|0,c[j>>2]|0);g=(c[k>>2]|0)+336|0;c[g>>2]=c[g>>2]|1<<c[j>>2];k=(c[k>>2]|0)+20|0;a[k>>0]=d[k>>0]|0|c[h>>2];i=l;return}function bx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=i;i=i+16|0;h=g+12|0;d=g+8|0;f=g+4|0;e=g;c[h>>2]=a;c[d>>2]=b;b=c[h>>2]|0;if(c[(c[h>>2]|0)+416>>2]|0)b=c[b+416>>2]|0;c[f>>2]=b;c[e>>2]=c[c[f>>2]>>2];if((c[(c[f>>2]|0)+340>>2]&1<<c[d>>2]|0)!=0|0){i=g;return}h=(c[f>>2]|0)+340|0;c[h>>2]=c[h>>2]|1<<c[d>>2];c[(c[f>>2]|0)+344+(c[d>>2]<<2)>>2]=c[c[(c[(c[e>>2]|0)+16>>2]|0)+(c[d>>2]<<4)+12>>2]>>2];if((c[d>>2]|0)!=1){i=g;return}cx(c[f>>2]|0)|0;i=g;return}function cx(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;j=k;d=k+20|0;e=k+16|0;f=k+12|0;h=k+8|0;g=k+4|0;c[e>>2]=b;c[f>>2]=c[c[e>>2]>>2];if((c[(c[(c[f>>2]|0)+16>>2]|0)+16+4>>2]|0)==0?(a[(c[e>>2]|0)+453>>0]|0)==0:0){c[h>>2]=Xj(c[c[f>>2]>>2]|0,0,c[f>>2]|0,g,0,542)|0;if(c[h>>2]|0){Ah(c[e>>2]|0,28645,j);c[(c[e>>2]|0)+12>>2]=c[h>>2];c[d>>2]=1;j=c[d>>2]|0;i=k;return j|0}c[(c[(c[f>>2]|0)+16>>2]|0)+16+4>>2]=c[g>>2];if(7==(xi(c[g>>2]|0,c[(c[f>>2]|0)+72>>2]|0,-1,0)|0)){jh(c[f>>2]|0);c[d>>2]=1;j=c[d>>2]|0;i=k;return j|0}}c[d>>2]=0;j=c[d>>2]|0;i=k;return j|0}function dx(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;h=i;i=i+16|0;n=h+8|0;m=h+4|0;l=h+13|0;k=h+12|0;j=h;c[n>>2]=b;c[m>>2]=d;a[l>>0]=e;a[k>>0]=f;c[j>>2]=g;g=ix(c[n>>2]|0,c[m>>2]|0,a[l>>0]|0,a[k>>0]|0,c[j>>2]|0,0)|0;i=h;return g|0}function ex(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+48|0;m=o;e=o+32|0;f=o+28|0;g=o+24|0;l=o+20|0;n=o+16|0;h=o+12|0;k=o+8|0;j=o+4|0;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[l>>2]=Pw(c[e>>2]|0)|0;if(!(c[l>>2]|0)){i=o;return}c[h>>2]=Dh(c[c[e>>2]>>2]|0,c[(c[f>>2]|0)+64>>2]|0)|0;c[k>>2]=fx(c[e>>2]|0,c[f>>2]|0)|0;while(1){if(!(c[k>>2]|0))break;c[j>>2]=Dh(c[c[e>>2]>>2]|0,c[(c[k>>2]|0)+20>>2]|0)|0;Uw(c[l>>2]|0,127,c[j>>2]|0,0,0,c[c[k>>2]>>2]|0,0)|0;c[k>>2]=c[(c[k>>2]|0)+32>>2]}Uw(c[l>>2]|0,125,c[h>>2]|0,0,0,c[c[f>>2]>>2]|0,0)|0;d=c[c[e>>2]>>2]|0;c[m>>2]=c[g>>2];c[n>>2]=Bh(d,29077,m)|0;if(!(c[n>>2]|0)){i=o;return}Sw(c[l>>2]|0,c[h>>2]|0,c[n>>2]|0);d=gx(c[e>>2]|0,c[f>>2]|0)|0;c[n>>2]=d;if(!d){i=o;return}Sw(c[l>>2]|0,1,c[n>>2]|0);i=o;return}function fx(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;l=i;i=i+32|0;k=l+24|0;m=l+20|0;f=l+16|0;e=l+12|0;h=l+8|0;g=l+4|0;j=l;c[m>>2]=b;c[f>>2]=d;c[e>>2]=c[(c[(c[c[m>>2]>>2]|0)+16>>2]|0)+16+12>>2];c[h>>2]=0;if(a[(c[m>>2]|0)+442>>0]|0){c[k>>2]=0;m=c[k>>2]|0;i=l;return m|0}a:do if((c[e>>2]|0)!=(c[(c[f>>2]|0)+64>>2]|0)){c[g>>2]=c[(c[e>>2]|0)+40+8>>2];while(1){if(!(c[g>>2]|0))break a;c[j>>2]=c[(c[g>>2]|0)+8>>2];if((c[(c[j>>2]|0)+24>>2]|0)==(c[(c[f>>2]|0)+64>>2]|0)?0==(Td(c[(c[j>>2]|0)+4>>2]|0,c[c[f>>2]>>2]|0)|0):0){if(c[h>>2]|0)b=c[h>>2]|0;else b=c[(c[f>>2]|0)+60>>2]|0;c[(c[j>>2]|0)+32>>2]=b;c[h>>2]=c[j>>2]}c[g>>2]=c[c[g>>2]>>2]}}while(0);if(c[h>>2]|0)b=c[h>>2]|0;else b=c[(c[f>>2]|0)+60>>2]|0;c[k>>2]=b;m=c[k>>2]|0;i=l;return m|0}function gx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;j=m;d=m+28|0;e=m+24|0;h=m+20|0;l=m+16|0;g=m+12|0;f=m+8|0;k=m+4|0;c[d>>2]=a;c[e>>2]=b;c[l>>2]=0;c[g>>2]=c[(c[(c[c[d>>2]>>2]|0)+16>>2]|0)+16+12>>2];a:do if((c[(c[e>>2]|0)+64>>2]|0)!=(c[g>>2]|0)){c[f>>2]=c[c[d>>2]>>2];c[h>>2]=fx(c[d>>2]|0,c[e>>2]|0)|0;while(1){if(!(c[h>>2]|0))break a;if((c[(c[h>>2]|0)+20>>2]|0)==(c[g>>2]|0))c[l>>2]=hx(c[f>>2]|0,c[l>>2]|0,c[c[h>>2]>>2]|0)|0;c[h>>2]=c[(c[h>>2]|0)+32>>2]}}while(0);if(!(c[l>>2]|0)){l=c[l>>2]|0;i=m;return l|0}h=c[c[d>>2]>>2]|0;c[j>>2]=c[l>>2];c[k>>2]=Bh(h,29089,j)|0;Sf(c[c[d>>2]>>2]|0,c[l>>2]|0);c[l>>2]=c[k>>2];l=c[l>>2]|0;i=m;return l|0}function hx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;j=l+8|0;h=l;e=l+28|0;f=l+24|0;g=l+20|0;k=l+16|0;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;a=c[e>>2]|0;if(c[f>>2]|0){h=c[g>>2]|0;c[j>>2]=c[f>>2];c[j+4>>2]=h;c[k>>2]=Bh(a,29121,j)|0;Sf(c[e>>2]|0,c[f>>2]|0);k=c[k>>2]|0;i=l;return k|0}else{c[h>>2]=c[g>>2];c[k>>2]=Bh(a,29113,h)|0;k=c[k>>2]|0;i=l;return k|0}return 0}function ix(f,g,j,k,l,m){f=f|0;g=g|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0;E=i;i=i+64|0;t=E;z=E+52|0;v=E+48|0;n=E+44|0;x=E+58|0;y=E+57|0;A=E+40|0;o=E+36|0;s=E+32|0;w=E+28|0;B=E+24|0;r=E+20|0;u=E+16|0;D=E+12|0;p=E+56|0;q=E+8|0;c[v>>2]=f;c[n>>2]=g;a[x>>0]=j;a[y>>0]=k;c[A>>2]=l;c[o>>2]=m;c[w>>2]=0;c[B>>2]=0;c[r>>2]=1;c[u>>2]=19266;c[D>>2]=0;if(!(c[n>>2]|0)){c[c[A>>2]>>2]=0;c[z>>2]=0;D=c[z>>2]|0;i=E;return D|0}while(1){l=d[c[n>>2]>>0]|0;c[s>>2]=l;if((l|0)!=156)break;c[n>>2]=c[(c[n>>2]|0)+12>>2]}if((c[s>>2]|0)==157)c[s>>2]=d[(c[n>>2]|0)+38>>0];if((c[s>>2]|0)==38){a[p>>0]=jx(c[(c[n>>2]|0)+8>>2]|0,0)|0;c[D>>2]=ix(c[v>>2]|0,c[(c[n>>2]|0)+12>>2]|0,a[x>>0]|0,a[p>>0]|0,c[A>>2]|0,c[o>>2]|0)|0;if(c[c[A>>2]>>2]|0){kx(c[c[A>>2]>>2]|0,a[p>>0]|0,1);lx(c[c[A>>2]>>2]|0,a[y>>0]|0,1)}c[z>>2]=c[D>>2];D=c[z>>2]|0;i=E;return D|0}do if((c[s>>2]|0)==155){if((d[c[(c[n>>2]|0)+12>>2]>>0]|0|0)!=132?(d[c[(c[n>>2]|0)+12>>2]>>0]|0|0)!=133:0)break;c[n>>2]=c[(c[n>>2]|0)+12>>2];c[s>>2]=d[c[n>>2]>>0];c[r>>2]=-1;c[u>>2]=29135}while(0);do if((c[s>>2]|0)==97|(c[s>>2]|0)==133|(c[s>>2]|0)==132){c[B>>2]=mx(c[v>>2]|0,c[o>>2]|0)|0;if(c[B>>2]|0){if(c[(c[n>>2]|0)+4>>2]&1024){v=c[B>>2]|0;u=c[(c[n>>2]|0)+8>>2]|0;w=c[r>>2]|0;w=rR(u|0,((u|0)<0)<<31>>31|0,w|0,((w|0)<0)<<31>>31|0)|0;eh(v,w,C)}else{l=c[v>>2]|0;g=c[(c[n>>2]|0)+8>>2]|0;c[t>>2]=c[u>>2];c[t+4>>2]=g;c[w>>2]=Bh(l,25552,t)|0;if(!(c[w>>2]|0)){n=43;break}Wh(c[B>>2]|0,-1,c[w>>2]|0,1,170)}if((c[s>>2]|0)==132|(c[s>>2]|0)==133?(d[y>>0]|0|0)==65:0)lx(c[B>>2]|0,67,1);else lx(c[B>>2]|0,a[y>>0]|0,1);if((e[(c[B>>2]|0)+8>>1]|0)&12){y=(c[B>>2]|0)+8|0;b[y>>1]=(e[y>>1]|0)&-3}if((d[x>>0]|0|0)!=1){c[D>>2]=Zt(c[B>>2]|0,d[x>>0]|0)|0;n=42}else n=42}else n=43}else{if((c[s>>2]|0)!=155){if((c[s>>2]|0)==101){c[B>>2]=mx(c[v>>2]|0,c[o>>2]|0)|0;if(!(c[B>>2]|0)){n=43;break}else{n=42;break}}if((c[s>>2]|0)!=134){n=42;break}c[B>>2]=mx(c[v>>2]|0,c[o>>2]|0)|0;if(!(c[B>>2]|0)){n=43;break}c[w>>2]=(c[(c[n>>2]|0)+8>>2]|0)+2;c[q>>2]=(If(c[w>>2]|0)|0)-1;y=c[B>>2]|0;n=ox(c[v>>2]|0,c[w>>2]|0,c[q>>2]|0)|0;dh(y,n,(c[q>>2]|0)/2|0,0,170)|0;n=42;break}w=0==(dx(c[v>>2]|0,c[(c[n>>2]|0)+12>>2]|0,a[x>>0]|0,a[y>>0]|0,B)|0);if(w&(c[B>>2]|0)!=0){nx(c[B>>2]|0)|0;n=c[B>>2]|0;do if(!((e[(c[B>>2]|0)+8>>1]|0)&8)){w=n;n=c[B>>2]|0;if((c[w>>2]|0)==0?(c[w+4>>2]|0)==-2147483648:0){h[n>>3]=9223372036854775808.0;b[(c[B>>2]|0)+8>>1]=(e[(c[B>>2]|0)+8>>1]|0)&-49664|8;break}else{v=n;v=fR(0,0,c[v>>2]|0,c[v+4>>2]|0)|0;w=c[B>>2]|0;c[w>>2]=v;c[w+4>>2]=C;break}}else h[c[B>>2]>>3]=-+h[n>>3];while(0);lx(c[B>>2]|0,a[y>>0]|0,a[x>>0]|0);n=42}else n=42}while(0);if((n|0)==42){c[c[A>>2]>>2]=c[B>>2];c[z>>2]=c[D>>2];D=c[z>>2]|0;i=E;return D|0}else if((n|0)==43){jh(c[v>>2]|0);Sf(c[v>>2]|0,c[w>>2]|0);$g(c[B>>2]|0);c[z>>2]=7;D=c[z>>2]|0;i=E;return D|0}return 0}function jx(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;f=o+21|0;g=o+16|0;h=o+12|0;k=o+8|0;j=o+20|0;m=o+4|0;l=o;c[g>>2]=b;c[h>>2]=e;c[k>>2]=0;a[j>>0]=67;c[m>>2]=0;if(!(c[g>>2]|0)){a[f>>0]=a[j>>0]|0;n=a[f>>0]|0;i=o;return n|0}a:while(1){if(!(a[c[g>>2]>>0]|0))break;c[k>>2]=(c[k>>2]<<8)+(d[18477+(a[c[g>>2]>>0]&255)>>0]|0);c[g>>2]=(c[g>>2]|0)+1;if((c[k>>2]|0)==1667785074){a[j>>0]=66;c[m>>2]=c[g>>2];continue}if((c[k>>2]|0)==1668050786){a[j>>0]=66;continue}if((c[k>>2]|0)==1952807028){a[j>>0]=66;continue}do if((c[k>>2]|0)==1651273570){if((a[j>>0]|0)!=67?(a[j>>0]|0)!=69:0)break;a[j>>0]=65;if((a[c[g>>2]>>0]|0)!=40)continue a;c[m>>2]=c[g>>2];continue a}while(0);if((c[k>>2]|0)==1919246700?(a[j>>0]|0)==67:0){a[j>>0]=69;continue}if((c[k>>2]|0)==1718382433?(a[j>>0]|0)==67:0){a[j>>0]=69;continue}if((c[k>>2]|0)==1685026146?(a[j>>0]|0)==67:0){a[j>>0]=69;continue}if((c[k>>2]&16777215|0)==6909556){n=25;break}}if((n|0)==25)a[j>>0]=68;b:do if((c[h>>2]|0)!=0?(a[c[h>>2]>>0]=1,(a[j>>0]|0)<67):0){if(!(c[m>>2]|0)){a[c[h>>2]>>0]=5;break}while(1){if(!(a[c[m>>2]>>0]|0))break b;if(d[19267+(d[c[m>>2]>>0]|0)>>0]&4)break;c[m>>2]=(c[m>>2]|0)+1}c[l>>2]=0;Li(c[m>>2]|0,l)|0;n=((c[l>>2]|0)/4|0)+1|0;c[l>>2]=n;c[l>>2]=(c[l>>2]|0)>255?255:n;a[c[h>>2]>>0]=c[l>>2]}while(0);a[f>>0]=a[j>>0]|0;n=a[f>>0]|0;i=o;return n|0}function kx(f,g,h){f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0;m=i;i=i+16|0;k=m;j=m+5|0;l=m+4|0;c[k>>2]=f;a[j>>0]=g;a[l>>0]=h;if((e[(c[k>>2]|0)+8>>1]|0)&1){i=m;return}switch(d[j>>0]|0|0){case 65:{j=c[k>>2]|0;if(!((e[(c[k>>2]|0)+8>>1]|0)&16)){lx(j,66,a[l>>0]|0);b[(c[k>>2]|0)+8>>1]=(e[(c[k>>2]|0)+8>>1]|0)&-49664|16;i=m;return}else{l=j+8|0;b[l>>1]=(e[l>>1]|0)&-33264;i=m;return}}case 67:{nx(c[k>>2]|0)|0;i=m;return}case 68:{wx(c[k>>2]|0)|0;i=m;return}case 69:{xx(c[k>>2]|0)|0;i=m;return}default:{f=(c[k>>2]|0)+8|0;b[f>>1]=e[f>>1]|0|((e[(c[k>>2]|0)+8>>1]|0)&16)>>3;lx(c[k>>2]|0,66,a[l>>0]|0);l=(c[k>>2]|0)+8|0;b[l>>1]=(e[l>>1]|0)&-16413;i=m;return}}}function lx(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;f=i;i=i+16|0;j=f;h=f+5|0;g=f+4|0;c[j>>2]=b;a[h>>0]=d;a[g>>0]=e;rx(c[j>>2]|0,a[h>>0]|0,a[g>>0]|0);i=f;return}function mx(a,b){a=a|0;b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d+4|0;c[e>>2]=a;c[d>>2]=b;b=Vh(c[e>>2]|0)|0;i=d;return b|0}function nx(d){d=d|0;var f=0,g=0,j=0,k=0.0;g=i;i=i+16|0;f=g;c[f>>2]=d;do if(!((e[(c[f>>2]|0)+8>>1]|0)&13)){j=0==(Hi(c[(c[f>>2]|0)+16>>2]|0,c[f>>2]|0,c[(c[f>>2]|0)+12>>2]|0,a[(c[f>>2]|0)+10>>0]|0)|0);d=c[f>>2]|0;if(j){b[(c[f>>2]|0)+8>>1]=(e[d+8>>1]|0)&-49664|4;break}else{k=+Yg(d);h[c[f>>2]>>3]=k;b[(c[f>>2]|0)+8>>1]=(e[(c[f>>2]|0)+8>>1]|0)&-49664|8;px(c[f>>2]|0);break}}while(0);j=(c[f>>2]|0)+8|0;b[j>>1]=(e[j>>1]|0)&-19;i=g;return 0}function ox(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;l=k+16|0;f=k+12|0;g=k+8|0;j=k+4|0;h=k;c[l>>2]=b;c[f>>2]=d;c[g>>2]=e;d=((c[g>>2]|0)/2|0)+1|0;c[j>>2]=Fw(c[l>>2]|0,d,((d|0)<0)<<31>>31)|0;c[g>>2]=(c[g>>2]|0)+-1;if(!(c[j>>2]|0)){l=c[j>>2]|0;i=k;return l|0}c[h>>2]=0;while(1){b=c[h>>2]|0;if((c[h>>2]|0)>=(c[g>>2]|0))break;l=((Gi(a[(c[f>>2]|0)+b>>0]|0)|0)&255)<<4;l=(l|(Gi(a[(c[f>>2]|0)+((c[h>>2]|0)+1)>>0]|0)|0)&255)&255;a[(c[j>>2]|0)+((c[h>>2]|0)/2|0)>>0]=l;c[h>>2]=(c[h>>2]|0)+2}a[(c[j>>2]|0)+((b|0)/2|0)>>0]=0;l=c[j>>2]|0;i=k;return l|0}function px(a){a=a|0;var d=0,f=0,g=0,j=0,k=0,l=0,m=0;g=i;i=i+16|0;d=g+8|0;f=g;c[d>>2]=a;k=qx(+h[c[d>>2]>>3])|0;m=f;c[m>>2]=k;c[m+4>>2]=C;m=f;k=f;l=c[k+4>>2]|0;a=f;j=c[a+4>>2]|0;if(!(+h[c[d>>2]>>3]==+((c[m>>2]|0)>>>0)+4294967296.0*+(c[m+4>>2]|0)&((l|0)>-2147483648|(l|0)==-2147483648&(c[k>>2]|0)>>>0>0)&((j|0)<2147483647|(j|0)==2147483647&(c[a>>2]|0)>>>0<4294967295))){i=g;return}k=f;l=c[k+4>>2]|0;m=c[d>>2]|0;c[m>>2]=c[k>>2];c[m+4>>2]=l;b[(c[d>>2]|0)+8>>1]=(e[(c[d>>2]|0)+8>>1]|0)&-49664|4;i=g;return}function qx(a){a=+a;var b=0,d=0,e=0,f=0;e=i;i=i+16|0;b=e+8|0;d=e;h[d>>3]=a;do if(!(+h[d>>3]<=-9223372036854775808.0))if(+h[d>>3]>=9223372036854775808.0){d=b;c[d>>2]=-1;c[d+4>>2]=2147483647;break}else{a=+h[d>>3];f=+N(a)>=1.0?a>0.0?~~+$(+M(a/4294967296.0),4294967295.0)>>>0:~~+Z((a-+(~~a>>>0))/4294967296.0)>>>0:0;d=b;c[d>>2]=~~a>>>0;c[d+4>>2]=f;break}else{f=b;c[f>>2]=0;c[f+4>>2]=-2147483648}while(0);f=b;C=c[f+4>>2]|0;i=e;return c[f>>2]|0}function rx(d,f,g){d=d|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0;l=i;i=i+16|0;k=l;h=l+5|0;j=l+4|0;c[k>>2]=d;a[h>>0]=f;a[j>>0]=g;if((a[h>>0]|0)<67){if((a[h>>0]|0)!=66){i=l;return}if(0==(e[(c[k>>2]|0)+8>>1]&2|0)?(e[(c[k>>2]|0)+8>>1]&12|0)!=0:0)sx(c[k>>2]|0,a[j>>0]|0,1)|0;k=(c[k>>2]|0)+8|0;b[k>>1]=e[k>>1]&-13;i=l;return}if(e[(c[k>>2]|0)+8>>1]&4){i=l;return}h=c[k>>2]|0;if(e[(c[k>>2]|0)+8>>1]&8){px(h);i=l;return}if(!(e[h+8>>1]&2)){i=l;return}xh(c[k>>2]|0,1);i=l;return}function sx(f,g,j){f=f|0;g=g|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;q=r+8|0;p=r;k=r+28|0;l=r+24|0;m=r+33|0;n=r+32|0;o=r+20|0;c[l>>2]=f;a[m>>0]=g;a[n>>0]=j;c[o>>2]=e[(c[l>>2]|0)+8>>1];c[r+16>>2]=32;if(tx(c[l>>2]|0,32)|0){c[k>>2]=7;q=c[k>>2]|0;i=r;return q|0}j=c[(c[l>>2]|0)+16>>2]|0;g=c[l>>2]|0;if(c[o>>2]&4){f=g;o=c[f+4>>2]|0;q=p;c[q>>2]=c[f>>2];c[q+4>>2]=o;Qd(32,j,29137,p)|0}else{h[q>>3]=+h[g>>3];Qd(32,j,29142,q)|0}q=If(c[(c[l>>2]|0)+16>>2]|0)|0;c[(c[l>>2]|0)+12>>2]=q;a[(c[l>>2]|0)+10>>0]=1;q=(c[l>>2]|0)+8|0;b[q>>1]=e[q>>1]|514;if(a[n>>0]|0){q=(c[l>>2]|0)+8|0;b[q>>1]=e[q>>1]&-13}Zt(c[l>>2]|0,d[m>>0]|0)|0;c[k>>2]=0;q=c[k>>2]|0;i=r;return q|0}function tx(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0;j=i;i=i+16|0;f=j+8|0;g=j+4|0;h=j;c[g>>2]=a;c[h>>2]=d;a=c[g>>2]|0;if((c[(c[g>>2]|0)+24>>2]|0)<(c[h>>2]|0)){c[f>>2]=ux(a,c[h>>2]|0,0)|0;h=c[f>>2]|0;i=j;return h|0}else{c[(c[g>>2]|0)+16>>2]=c[a+20>>2];h=(c[g>>2]|0)+8|0;b[h>>1]=(e[h>>1]|0)&13;c[f>>2]=0;h=c[f>>2]|0;i=j;return h|0}return 0}function ux(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;l=i;i=i+16|0;h=l+12|0;j=l+8|0;g=l+4|0;k=l;c[j>>2]=a;c[g>>2]=d;c[k>>2]=f;do if((c[(c[j>>2]|0)+24>>2]|0)<(c[g>>2]|0)){if((c[g>>2]|0)<32)c[g>>2]=32;if(((c[k>>2]|0)!=0?(c[(c[j>>2]|0)+24>>2]|0)>0:0)?(c[(c[j>>2]|0)+16>>2]|0)==(c[(c[j>>2]|0)+20>>2]|0):0){a=c[g>>2]|0;a=vx(c[(c[j>>2]|0)+32>>2]|0,c[(c[j>>2]|0)+16>>2]|0,a,((a|0)<0)<<31>>31)|0;c[(c[j>>2]|0)+20>>2]=a;c[(c[j>>2]|0)+16>>2]=a;c[k>>2]=0}else{if((c[(c[j>>2]|0)+24>>2]|0)>0)Sf(c[(c[j>>2]|0)+32>>2]|0,c[(c[j>>2]|0)+20>>2]|0);a=c[g>>2]|0;a=yh(c[(c[j>>2]|0)+32>>2]|0,a,((a|0)<0)<<31>>31)|0;c[(c[j>>2]|0)+20>>2]=a}g=c[j>>2]|0;if(c[(c[j>>2]|0)+20>>2]|0){a=$t(c[g+32>>2]|0,c[(c[j>>2]|0)+20>>2]|0)|0;c[(c[j>>2]|0)+24>>2]=a;break}fh(g);c[(c[j>>2]|0)+16>>2]=0;c[(c[j>>2]|0)+24>>2]=0;c[h>>2]=7;k=c[h>>2]|0;i=l;return k|0}while(0);if(((c[k>>2]|0)!=0?(c[(c[j>>2]|0)+16>>2]|0)!=0:0)?(c[(c[j>>2]|0)+16>>2]|0)!=(c[(c[j>>2]|0)+20>>2]|0):0)iR(c[(c[j>>2]|0)+20>>2]|0,c[(c[j>>2]|0)+16>>2]|0,c[(c[j>>2]|0)+12>>2]|0)|0;if((e[(c[j>>2]|0)+8>>1]|0)&1024)Qb[c[(c[j>>2]|0)+36>>2]&255](c[(c[j>>2]|0)+16>>2]|0);c[(c[j>>2]|0)+16>>2]=c[(c[j>>2]|0)+20>>2];k=(c[j>>2]|0)+8|0;b[k>>1]=(e[k>>1]|0)&-7169;c[h>>2]=0;k=c[h>>2]|0;i=l;return k|0}function vx(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;j=i;i=i+32|0;f=j+16|0;g=j+12|0;k=j;h=j+8|0;c[f>>2]=a;c[g>>2]=b;b=k;c[b>>2]=d;c[b+4>>2]=e;b=k;c[h>>2]=Ew(c[f>>2]|0,c[g>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0;if(c[h>>2]|0){k=c[h>>2]|0;i=j;return k|0}Sf(c[f>>2]|0,c[g>>2]|0);k=c[h>>2]|0;i=j;return k|0}function wx(a){a=a|0;var d=0,f=0,g=0;d=i;i=i+16|0;f=d;c[f>>2]=a;g=Zg(c[f>>2]|0)|0;a=c[f>>2]|0;c[a>>2]=g;c[a+4>>2]=C;b[(c[f>>2]|0)+8>>1]=(e[(c[f>>2]|0)+8>>1]|0)&-49664|4;i=d;return 0}function xx(a){a=a|0;var d=0,f=0,g=0.0;d=i;i=i+16|0;f=d;c[f>>2]=a;g=+Yg(c[f>>2]|0);h[c[f>>2]>>3]=g;b[(c[f>>2]|0)+8>>1]=(e[(c[f>>2]|0)+8>>1]|0)&-49664|8;i=d;return 0}function yx(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;j=k;f=k+12|0;g=k+8|0;h=k+4|0;c[g>>2]=b;c[h>>2]=e;if((((a[(c[c[g>>2]>>2]|0)+140+5>>0]|0)==0?(d[(c[g>>2]|0)+18>>0]|0)==0:0)?(c[(c[c[g>>2]>>2]|0)+24>>2]&2048|0)==0:0)?0==(zd(c[h>>2]|0,28715,7)|0):0){e=c[g>>2]|0;c[j>>2]=c[h>>2];Ah(e,31646,j);c[f>>2]=1;e=c[f>>2]|0;i=k;return e|0}c[f>>2]=0;e=c[f>>2]|0;i=k;return e|0}function zx(a,f){a=a|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;g=r;h=r+36|0;j=r+32|0;k=r+28|0;p=r+24|0;o=r+20|0;n=r+16|0;m=r+12|0;l=r+8|0;q=r+4|0;c[j>>2]=a;c[k>>2]=f;c[n>>2]=0;c[l>>2]=c[c[j>>2]>>2];if(Fx(c[j>>2]|0,c[k>>2]|0)|0){c[h>>2]=1;q=c[h>>2]|0;i=r;return q|0}if(d[(c[k>>2]|0)+42>>0]&16){c[h>>2]=0;q=c[h>>2]|0;i=r;return q|0}if((b[(c[k>>2]|0)+34>>1]|0)>0){c[h>>2]=0;q=c[h>>2]|0;i=r;return q|0}if((b[(c[k>>2]|0)+34>>1]|0)<0){q=c[j>>2]|0;c[g>>2]=c[c[k>>2]>>2];Ah(q,29854,g);c[h>>2]=1;q=c[h>>2]|0;i=r;return q|0}a=c[l>>2]|0;do if(c[(c[k>>2]|0)+24>>2]|0){q=a+248|0;c[q>>2]=(c[q>>2]|0)+1;Gx(c[j>>2]|0,c[(c[k>>2]|0)+24>>2]|0,(c[k>>2]|0)+34|0,(c[k>>2]|0)+4|0)|0;q=(c[l>>2]|0)+248|0;c[q>>2]=(c[q>>2]|0)+-1}else{c[o>>2]=Hx(a,c[(c[k>>2]|0)+12>>2]|0,0)|0;if(!(c[o>>2]|0)){c[n>>2]=(c[n>>2]|0)+1;break}c[m>>2]=c[(c[j>>2]|0)+72>>2];Ix(c[j>>2]|0,c[(c[o>>2]|0)+32>>2]|0);b[(c[k>>2]|0)+34>>1]=-1;g=(c[l>>2]|0)+248|0;c[g>>2]=(c[g>>2]|0)+1;c[q>>2]=c[(c[l>>2]|0)+288>>2];c[(c[l>>2]|0)+288>>2]=0;c[p>>2]=Jx(c[j>>2]|0,c[o>>2]|0)|0;c[(c[l>>2]|0)+288>>2]=c[q>>2];q=(c[l>>2]|0)+248|0;c[q>>2]=(c[q>>2]|0)+-1;c[(c[j>>2]|0)+72>>2]=c[m>>2];if(c[p>>2]|0){b[(c[k>>2]|0)+34>>1]=b[(c[p>>2]|0)+34>>1]|0;c[(c[k>>2]|0)+4>>2]=c[(c[p>>2]|0)+4>>2];b[(c[p>>2]|0)+34>>1]=0;c[(c[p>>2]|0)+4>>2]=0;Qf(c[l>>2]|0,c[p>>2]|0)}else{b[(c[k>>2]|0)+34>>1]=0;c[n>>2]=(c[n>>2]|0)+1}Wu(c[l>>2]|0,c[o>>2]|0)}while(0);q=(c[(c[k>>2]|0)+64>>2]|0)+78|0;b[q>>1]=e[q>>1]|2;c[h>>2]=c[n>>2];q=c[h>>2]|0;i=r;return q|0}function Ax(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=i;i=i+16|0;d=f+8|0;g=f+4|0;e=f;c[d>>2]=a;c[g>>2]=b;c[e>>2]=c[(c[g>>2]|0)+56>>2];while(1){if(!(c[e>>2]|0)){d=5;break}if((c[c[e>>2]>>2]|0)==(c[d>>2]|0)){d=5;break}c[e>>2]=c[(c[e>>2]|0)+24>>2]}if((d|0)==5){i=f;return c[e>>2]|0}return 0}function Bx(b){b=b|0;var d=0,e=0,f=0;e=i;i=i+16|0;f=e+4|0;d=e;c[f>>2]=b;b=c[f>>2]|0;if(c[(c[f>>2]|0)+416>>2]|0)b=c[b+416>>2]|0;c[d>>2]=b;a[(c[d>>2]|0)+21>>0]=1;i=e;return}function Cx(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0;j=i;i=i+32|0;k=j+16|0;e=j+12|0;h=j+8|0;f=j+4|0;g=j;c[k>>2]=a;c[e>>2]=b;c[h>>2]=0;c[f>>2]=c[k>>2];if((c[e>>2]|0)>=0)c[g>>2]=(c[f>>2]|0)+(c[e>>2]|0);else c[g>>2]=-1;while(1){if(!(d[c[f>>2]>>0]|0)){e=10;break}if((c[f>>2]|0)>>>0>=(c[g>>2]|0)>>>0){e=10;break}k=c[f>>2]|0;c[f>>2]=k+1;a:do if((d[k>>0]|0|0)>=192)while(1){if(((d[c[f>>2]>>0]|0)&192|0)!=128)break a;c[f>>2]=(c[f>>2]|0)+1}while(0);c[h>>2]=(c[h>>2]|0)+1}if((e|0)==10){i=j;return c[h>>2]|0}return 0}function Dx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=i;i=i+16|0;d=g+12|0;h=g+8|0;e=g+4|0;f=g;c[d>>2]=a;c[h>>2]=b;c[f>>2]=0;c[e>>2]=Ex(c[h>>2]|0)|0;while(1){if(!(c[e>>2]|0))break;c[f>>2]=hx(c[c[d>>2]>>2]|0,c[f>>2]|0,c[c[c[e>>2]>>2]>>2]|0)|0;c[e>>2]=c[(c[e>>2]|0)+12>>2]}i=g;return c[f>>2]|0}function Ex(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=nj((c[(c[d>>2]|0)+64>>2]|0)+56|0,c[c[d>>2]>>2]|0)|0;i=b;return a|0}function Fx(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;m=q+8|0;l=q;e=q+44|0;f=q+40|0;g=q+36|0;h=q+32|0;o=q+28|0;j=q+24|0;k=q+20|0;p=q+16|0;n=q+12|0;c[f>>2]=a;c[g>>2]=b;c[h>>2]=c[c[f>>2]>>2];if(((d[(c[g>>2]|0)+42>>0]|0)&16|0)!=0?(Ax(c[h>>2]|0,c[g>>2]|0)|0)==0:0){c[o>>2]=c[c[(c[g>>2]|0)+52>>2]>>2];c[j>>2]=nj((c[h>>2]|0)+312|0,c[o>>2]|0)|0;if(c[j>>2]|0){c[n>>2]=0;c[k>>2]=oz(c[h>>2]|0,c[g>>2]|0,c[j>>2]|0,c[(c[c[j>>2]>>2]|0)+8>>2]|0,n)|0;if(c[k>>2]|0){p=c[f>>2]|0;c[m>>2]=c[n>>2];Ah(p,19255,m)}Sf(c[h>>2]|0,c[n>>2]|0)}else{c[p>>2]=c[c[(c[g>>2]|0)+52>>2]>>2];o=c[f>>2]|0;c[l>>2]=c[p>>2];Ah(o,31494,l);c[k>>2]=1}c[e>>2]=c[k>>2];p=c[e>>2]|0;i=q;return p|0}c[e>>2]=0;p=c[e>>2]|0;i=q;return p|0}function Gx(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;D=i;i=i+112|0;u=D+8|0;t=D;w=D+104|0;E=D+100|0;j=D+96|0;x=D+92|0;y=D+88|0;A=D+84|0;B=D+80|0;C=D+76|0;k=D+72|0;z=D+68|0;q=D+64|0;n=D+60|0;p=D+56|0;v=D+52|0;o=D+48|0;l=D+32|0;r=D+28|0;s=D+24|0;m=D+20|0;c[E>>2]=e;c[j>>2]=f;c[x>>2]=g;c[y>>2]=h;c[A>>2]=c[c[E>>2]>>2];uj(l);if(c[j>>2]|0){c[n>>2]=c[c[j>>2]>>2];c[z>>2]=ph(c[A>>2]|0,(c[n>>2]|0)*24|0,0)|0}else{c[n>>2]=0;c[z>>2]=0}b[c[x>>2]>>1]=c[n>>2];c[c[y>>2]>>2]=c[z>>2];c[B>>2]=0;c[q>>2]=c[z>>2];while(1){if((c[B>>2]|0)>=(c[n>>2]|0))break;if(!((a[(c[A>>2]|0)+65>>0]|0)!=0^1))break;c[p>>2]=Tx(c[(c[(c[j>>2]|0)+4>>2]|0)+((c[B>>2]|0)*20|0)>>2]|0)|0;E=c[(c[(c[j>>2]|0)+4>>2]|0)+((c[B>>2]|0)*20|0)+4>>2]|0;c[v>>2]=E;do if(!E){c[r>>2]=c[p>>2];while(1){f=c[r>>2]|0;if((d[c[r>>2]>>0]|0)!=122)break;c[r>>2]=c[f+16>>2]}if((d[f>>0]|0)==152?(c[(c[r>>2]|0)+44>>2]|0)!=0:0){c[m>>2]=b[(c[r>>2]|0)+32>>1];c[s>>2]=c[(c[r>>2]|0)+44>>2];if((c[m>>2]|0)<0)c[m>>2]=b[(c[s>>2]|0)+32>>1];if((c[m>>2]|0)>=0)f=c[(c[(c[s>>2]|0)+4>>2]|0)+((c[m>>2]|0)*24|0)>>2]|0;else f=25592;c[v>>2]=f;break}if((d[c[r>>2]>>0]|0)==27){c[v>>2]=c[(c[r>>2]|0)+8>>2];break}else{c[v>>2]=c[(c[(c[j>>2]|0)+4>>2]|0)+((c[B>>2]|0)*20|0)+8>>2];break}}while(0);E=c[A>>2]|0;c[t>>2]=c[v>>2];c[v>>2]=Bh(E,19255,t)|0;c[k>>2]=0;while(1){if(c[v>>2]|0)e=(nj(l,c[v>>2]|0)|0)!=0;else e=0;f=c[v>>2]|0;if(!e)break;c[o>>2]=If(f)|0;if((c[o>>2]|0)>0){c[C>>2]=(c[o>>2]|0)-1;while(1){if((c[C>>2]|0)<=0)break;if(!(d[19267+(d[(c[v>>2]|0)+(c[C>>2]|0)>>0]|0)>>0]&4))break;c[C>>2]=(c[C>>2]|0)+-1}if((a[(c[v>>2]|0)+(c[C>>2]|0)>>0]|0)==58)c[o>>2]=c[C>>2]}E=c[A>>2]|0;e=c[o>>2]|0;h=c[v>>2]|0;g=(c[k>>2]|0)+1|0;c[k>>2]=g;c[u>>2]=e;c[u+4>>2]=h;c[u+8>>2]=g;c[v>>2]=Bh(E,31486,u)|0;if((c[k>>2]|0)>>>0<=3)continue;Sd(4,k)}c[c[q>>2]>>2]=f;if((c[v>>2]|0)!=0?(E=Oj(l,c[v>>2]|0,c[q>>2]|0)|0,(E|0)==(c[q>>2]|0)):0)jh(c[A>>2]|0);c[B>>2]=(c[B>>2]|0)+1;c[q>>2]=(c[q>>2]|0)+24}vj(l);if(!(a[(c[A>>2]|0)+65>>0]|0)){c[w>>2]=0;E=c[w>>2]|0;i=D;return E|0}c[C>>2]=0;while(1){f=c[A>>2]|0;if((c[C>>2]|0)>=(c[B>>2]|0))break;Sf(f,c[(c[z>>2]|0)+((c[C>>2]|0)*24|0)>>2]|0);c[C>>2]=(c[C>>2]|0)+1}Sf(f,c[z>>2]|0);c[c[y>>2]>>2]=0;b[c[x>>2]>>1]=0;c[w>>2]=7;E=c[w>>2]|0;i=D;return E|0}function Hx(d,f,g){d=d|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;h=o+20|0;j=o+16|0;k=o+12|0;l=o+8|0;m=o+4|0;n=o;c[j>>2]=d;c[k>>2]=f;c[l>>2]=g;if(!(c[k>>2]|0)){c[h>>2]=0;n=c[h>>2]|0;i=o;return n|0}c[m>>2]=Fw(c[j>>2]|0,72,0)|0;if(!(c[m>>2]|0)){c[h>>2]=0;n=c[h>>2]|0;i=o;return n|0}f=vy(c[j>>2]|0,c[c[k>>2]>>2]|0,c[l>>2]|0)|0;c[c[m>>2]>>2]=f;f=lz(c[j>>2]|0,c[(c[k>>2]|0)+32>>2]|0,c[l>>2]|0)|0;c[(c[m>>2]|0)+32>>2]=f;f=ny(c[j>>2]|0,c[(c[k>>2]|0)+36>>2]|0,c[l>>2]|0)|0;c[(c[m>>2]|0)+36>>2]=f;f=vy(c[j>>2]|0,c[(c[k>>2]|0)+40>>2]|0,c[l>>2]|0)|0;c[(c[m>>2]|0)+40>>2]=f;f=ny(c[j>>2]|0,c[(c[k>>2]|0)+44>>2]|0,c[l>>2]|0)|0;c[(c[m>>2]|0)+44>>2]=f;f=vy(c[j>>2]|0,c[(c[k>>2]|0)+48>>2]|0,c[l>>2]|0)|0;c[(c[m>>2]|0)+48>>2]=f;a[(c[m>>2]|0)+4>>0]=a[(c[k>>2]|0)+4>>0]|0;f=Hx(c[j>>2]|0,c[(c[k>>2]|0)+52>>2]|0,c[l>>2]|0)|0;c[n>>2]=f;c[(c[m>>2]|0)+52>>2]=f;if(c[n>>2]|0)c[(c[n>>2]|0)+56>>2]=c[m>>2];c[(c[m>>2]|0)+56>>2]=0;g=ny(c[j>>2]|0,c[(c[k>>2]|0)+60>>2]|0,c[l>>2]|0)|0;c[(c[m>>2]|0)+60>>2]=g;g=ny(c[j>>2]|0,c[(c[k>>2]|0)+64>>2]|0,c[l>>2]|0)|0;c[(c[m>>2]|0)+64>>2]=g;c[(c[m>>2]|0)+8>>2]=0;c[(c[m>>2]|0)+12>>2]=0;b[(c[m>>2]|0)+6>>1]=(e[(c[k>>2]|0)+6>>1]|0)&-17;c[(c[m>>2]|0)+16>>2]=-1;c[(c[m>>2]|0)+16+4>>2]=-1;g=(c[k>>2]|0)+24|0;f=c[g+4>>2]|0;n=(c[m>>2]|0)+24|0;c[n>>2]=c[g>>2];c[n+4>>2]=f;n=mz(c[j>>2]|0,c[(c[k>>2]|0)+68>>2]|0)|0;c[(c[m>>2]|0)+68>>2]=n;c[h>>2]=c[m>>2];n=c[h>>2]|0;i=o;return n|0}function Ix(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;d=h+12|0;e=h+8|0;f=h+4|0;g=h;c[d>>2]=a;c[e>>2]=b;if(!(c[e>>2]|0)){i=h;return}c[f>>2]=0;c[g>>2]=(c[e>>2]|0)+8;while(1){if((c[f>>2]|0)>=(c[c[e>>2]>>2]|0)){d=8;break}if((c[(c[g>>2]|0)+44>>2]|0)>=0){d=8;break}b=(c[d>>2]|0)+72|0;a=c[b>>2]|0;c[b>>2]=a+1;c[(c[g>>2]|0)+44>>2]=a;if(c[(c[g>>2]|0)+20>>2]|0)Ix(c[d>>2]|0,c[(c[(c[g>>2]|0)+20>>2]|0)+32>>2]|0);c[f>>2]=(c[f>>2]|0)+1;c[g>>2]=(c[g>>2]|0)+72}if((d|0)==8){i=h;return}}function Jx(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;f=m+20|0;g=m+16|0;h=m+12|0;k=m+8|0;j=m+4|0;l=m;c[g>>2]=d;c[h>>2]=e;c[j>>2]=c[c[g>>2]>>2];c[l>>2]=c[(c[j>>2]|0)+24>>2];e=(c[j>>2]|0)+24|0;c[e>>2]=c[e>>2]&-5;e=(c[j>>2]|0)+24|0;c[e>>2]=c[e>>2]|64;Kx(c[g>>2]|0,c[h>>2]|0,0);if(c[(c[g>>2]|0)+68>>2]|0){c[f>>2]=0;l=c[f>>2]|0;i=m;return l|0}while(1){if(!(c[(c[h>>2]|0)+52>>2]|0))break;c[h>>2]=c[(c[h>>2]|0)+52>>2]}c[(c[j>>2]|0)+24>>2]=c[l>>2];c[k>>2]=ph(c[j>>2]|0,72,0)|0;if(!(c[k>>2]|0)){c[f>>2]=0;l=c[f>>2]|0;i=m;return l|0}b[(c[k>>2]|0)+36>>1]=1;c[c[k>>2]>>2]=0;b[(c[k>>2]|0)+38>>1]=200;Gx(c[g>>2]|0,c[c[h>>2]>>2]|0,(c[k>>2]|0)+34|0,(c[k>>2]|0)+4|0)|0;Lx(c[g>>2]|0,c[k>>2]|0,c[h>>2]|0);b[(c[k>>2]|0)+32>>1]=-1;if(a[(c[j>>2]|0)+65>>0]|0){Qf(c[j>>2]|0,c[k>>2]|0);c[f>>2]=0;l=c[f>>2]|0;i=m;return l|0}else{c[f>>2]=c[k>>2];l=c[f>>2]|0;i=m;return l|0}return 0}function Kx(b,f,g){b=b|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0;m=i;i=i+16|0;h=m+12|0;j=m+8|0;k=m+4|0;l=m;c[h>>2]=b;c[j>>2]=f;c[k>>2]=g;if(!(c[j>>2]|0)){i=m;return}c[l>>2]=c[c[h>>2]>>2];if(a[(c[l>>2]|0)+65>>0]|0){i=m;return}if(e[(c[j>>2]|0)+6>>1]&64){i=m;return}Ux(c[h>>2]|0,c[j>>2]|0);if(c[(c[h>>2]|0)+68>>2]|0){i=m;return}if(d[(c[l>>2]|0)+65>>0]|0){i=m;return}Vx(c[h>>2]|0,c[j>>2]|0,c[k>>2]|0);if(c[(c[h>>2]|0)+68>>2]|0){i=m;return}if(d[(c[l>>2]|0)+65>>0]|0){i=m;return}Wx(c[h>>2]|0,c[j>>2]|0);i=m;return}function Lx(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+80|0;h=t+76|0;j=t+72|0;k=t+68|0;m=t+64|0;r=t+32|0;p=t+24|0;q=t+20|0;n=t+16|0;o=t+12|0;l=t+8|0;s=t;c[h>>2]=e;c[j>>2]=f;c[k>>2]=g;c[m>>2]=c[c[h>>2]>>2];f=s;c[f>>2]=0;c[f+4>>2]=0;if(a[(c[m>>2]|0)+65>>0]|0){i=t;return}c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=0;c[r+16>>2]=0;c[r+20>>2]=0;c[r+24>>2]=0;c[r+28>>2]=0;c[r+4>>2]=c[(c[k>>2]|0)+32>>2];c[l>>2]=c[(c[c[k>>2]>>2]|0)+4>>2];c[n>>2]=0;c[p>>2]=c[(c[j>>2]|0)+4>>2];while(1){if((c[n>>2]|0)>=(b[(c[j>>2]|0)+34>>1]|0))break;c[o>>2]=c[(c[l>>2]|0)+((c[n>>2]|0)*20|0)>>2];if(!(c[(c[p>>2]|0)+12>>2]|0)){f=c[m>>2]|0;f=nh(f,Mx(r,c[o>>2]|0,(c[p>>2]|0)+22|0)|0)|0;c[(c[p>>2]|0)+12>>2]=f}g=s;g=gR(c[g>>2]|0,c[g+4>>2]|0,d[(c[p>>2]|0)+22>>0]|0,0)|0;f=s;c[f>>2]=g;c[f+4>>2]=C;f=Nx(c[o>>2]|0)|0;a[(c[p>>2]|0)+21>>0]=f;if(!(a[(c[p>>2]|0)+21>>0]|0))a[(c[p>>2]|0)+21>>0]=65;c[q>>2]=Ox(c[h>>2]|0,c[o>>2]|0)|0;if((c[q>>2]|0)!=0?(c[(c[p>>2]|0)+16>>2]|0)==0:0){f=nh(c[m>>2]|0,c[c[q>>2]>>2]|0)|0;c[(c[p>>2]|0)+16>>2]=f}c[n>>2]=(c[n>>2]|0)+1;c[p>>2]=(c[p>>2]|0)+24}s=rR(c[s>>2]|0,c[s+4>>2]|0,4,0)|0;s=Hj(s,C)|0;b[(c[j>>2]|0)+40>>1]=s;i=t;return}function Mx(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=i;i=i+128|0;h=x+112|0;j=x+108|0;k=x+104|0;w=x+100|0;n=x+96|0;l=x+116|0;s=x+92|0;q=x+88|0;m=x+84|0;t=x+80|0;u=x+48|0;o=x+40|0;v=x+8|0;r=x+4|0;p=x;c[h>>2]=e;c[j>>2]=f;c[k>>2]=g;c[w>>2]=0;a[l>>0]=1;a:do switch(d[c[j>>2]>>0]|0){case 152:case 154:{c[s>>2]=0;c[q>>2]=0;c[m>>2]=b[(c[j>>2]|0)+32>>1];while(1){if(!(c[h>>2]|0))break;if(!((c[s>>2]|0)!=0^1))break;c[t>>2]=c[(c[h>>2]|0)+4>>2];c[n>>2]=0;while(1){if((c[n>>2]|0)>=(c[c[t>>2]>>2]|0))break;if((c[(c[t>>2]|0)+8+((c[n>>2]|0)*72|0)+44>>2]|0)==(c[(c[j>>2]|0)+28>>2]|0))break;c[n>>2]=(c[n>>2]|0)+1}if((c[n>>2]|0)<(c[c[t>>2]>>2]|0)){c[s>>2]=c[(c[t>>2]|0)+8+((c[n>>2]|0)*72|0)+16>>2];c[q>>2]=c[(c[t>>2]|0)+8+((c[n>>2]|0)*72|0)+20>>2];continue}else{c[h>>2]=c[(c[h>>2]|0)+16>>2];continue}}if(c[s>>2]|0){if(c[q>>2]|0){if((c[m>>2]|0)<0)break a;if((c[m>>2]|0)>=(c[c[c[q>>2]>>2]>>2]|0))break a;c[o>>2]=c[(c[(c[c[q>>2]>>2]|0)+4>>2]|0)+((c[m>>2]|0)*20|0)>>2];c[u+4>>2]=c[(c[q>>2]|0)+32>>2];c[u+16>>2]=c[h>>2];c[u>>2]=c[c[h>>2]>>2];c[w>>2]=Mx(u,c[o>>2]|0,l)|0;break a}if(c[(c[s>>2]|0)+64>>2]|0){if((c[m>>2]|0)<0)c[m>>2]=b[(c[s>>2]|0)+32>>1];if((c[m>>2]|0)<0){c[w>>2]=19623;break a}else{c[w>>2]=c[(c[(c[s>>2]|0)+4>>2]|0)+((c[m>>2]|0)*24|0)+12>>2];a[l>>0]=a[(c[(c[s>>2]|0)+4>>2]|0)+((c[m>>2]|0)*24|0)+22>>0]|0;break a}}}break}case 119:{c[r>>2]=c[(c[j>>2]|0)+20>>2];c[p>>2]=c[c[(c[c[r>>2]>>2]|0)+4>>2]>>2];c[v+4>>2]=c[(c[r>>2]|0)+32>>2];c[v+16>>2]=c[h>>2];c[v>>2]=c[c[h>>2]>>2];c[w>>2]=Mx(v,c[p>>2]|0,l)|0;break}default:{}}while(0);if(!(c[k>>2]|0)){w=c[w>>2]|0;i=x;return w|0}a[c[k>>2]>>0]=a[l>>0]|0;w=c[w>>2]|0;i=x;return w|0}function Nx(e){e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;f=k+12|0;g=k+8|0;j=k+4|0;h=k;c[g>>2]=e;c[g>>2]=Tx(c[g>>2]|0)|0;if(c[(c[g>>2]|0)+4>>2]&512){a[f>>0]=0;e=a[f>>0]|0;i=k;return e|0}c[j>>2]=d[c[g>>2]>>0];if((c[j>>2]|0)==119){a[f>>0]=Nx(c[c[(c[c[(c[g>>2]|0)+20>>2]>>2]|0)+4>>2]>>2]|0)|0;e=a[f>>0]|0;i=k;return e|0}if((c[j>>2]|0)==38){a[f>>0]=jx(c[(c[g>>2]|0)+8>>2]|0,0)|0;e=a[f>>0]|0;i=k;return e|0}if((c[j>>2]|0)==154|(c[j>>2]|0)==152|(c[j>>2]|0)==157?(c[(c[g>>2]|0)+44>>2]|0)!=0:0){c[h>>2]=b[(c[g>>2]|0)+32>>1];if((c[h>>2]|0)<0){a[f>>0]=68;e=a[f>>0]|0;i=k;return e|0}else{a[f>>0]=a[(c[(c[(c[g>>2]|0)+44>>2]|0)+4>>2]|0)+((c[h>>2]|0)*24|0)+21>>0]|0;e=a[f>>0]|0;i=k;return e|0}}a[f>>0]=a[(c[g>>2]|0)+1>>0]|0;e=a[f>>0]|0;i=k;return e|0}function Ox(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;r=i;i=i+48|0;g=r+36|0;s=r+32|0;h=r+28|0;n=r+24|0;m=r+20|0;l=r+16|0;k=r+12|0;p=r+8|0;o=r+4|0;j=r;c[g>>2]=e;c[s>>2]=f;c[h>>2]=c[c[g>>2]>>2];c[n>>2]=0;c[m>>2]=c[s>>2];while(1){if(!(c[m>>2]|0))break;c[l>>2]=d[c[m>>2]>>0];if(c[(c[m>>2]|0)+4>>2]&512)break;if((c[l>>2]|0)==38|(c[l>>2]|0)==156){c[m>>2]=c[(c[m>>2]|0)+12>>2];continue}if((c[l>>2]|0)==95){q=9;break}if((c[l>>2]|0)==157?(d[(c[m>>2]|0)+38>>0]|0)==95:0){q=9;break}if((c[l>>2]|0)==154|(c[l>>2]|0)==152|(c[l>>2]|0)==157|(c[l>>2]|0)==62?(c[(c[m>>2]|0)+44>>2]|0)!=0:0){q=12;break}if(!(c[(c[m>>2]|0)+4>>2]&256))break;if((c[(c[m>>2]|0)+12>>2]|0)!=0?(c[(c[(c[m>>2]|0)+12>>2]|0)+4>>2]&256|0)!=0:0){c[m>>2]=c[(c[m>>2]|0)+12>>2];continue}c[o>>2]=c[(c[m>>2]|0)+16>>2];a:do if((c[(c[m>>2]|0)+20>>2]|0)!=0?(c[(c[m>>2]|0)+4>>2]&2048|0)==0:0){c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[c[(c[m>>2]|0)+20>>2]>>2]|0))break a;f=c[j>>2]|0;if(c[(c[(c[(c[(c[m>>2]|0)+20>>2]|0)+4>>2]|0)+((c[j>>2]|0)*20|0)>>2]|0)+4>>2]&256)break;c[j>>2]=f+1}c[o>>2]=c[(c[(c[(c[m>>2]|0)+20>>2]|0)+4>>2]|0)+(f*20|0)>>2]}while(0);c[m>>2]=c[o>>2]}if((q|0)==9)c[n>>2]=Px(c[g>>2]|0,a[(c[h>>2]|0)+62>>0]|0,0,c[(c[m>>2]|0)+8>>2]|0)|0;else if((q|0)==12?(c[k>>2]=b[(c[m>>2]|0)+32>>1],(c[k>>2]|0)>=0):0){c[p>>2]=c[(c[(c[(c[m>>2]|0)+44>>2]|0)+4>>2]|0)+((c[k>>2]|0)*24|0)+16>>2];c[n>>2]=Mj(c[h>>2]|0,a[(c[h>>2]|0)+62>>0]|0,c[p>>2]|0,0)|0}if(!(Qx(c[g>>2]|0,c[n>>2]|0)|0)){s=c[n>>2]|0;i=r;return s|0}c[n>>2]=0;s=c[n>>2]|0;i=r;return s|0}function Px(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=i;i=i+32|0;n=o;h=o+20|0;j=o+24|0;p=o+16|0;k=o+12|0;m=o+8|0;l=o+4|0;c[h>>2]=b;a[j>>0]=e;c[p>>2]=f;c[k>>2]=g;c[l>>2]=c[c[h>>2]>>2];c[m>>2]=c[p>>2];if(!(c[m>>2]|0))c[m>>2]=Mj(c[l>>2]|0,a[j>>0]|0,c[k>>2]|0,0)|0;if(!((c[m>>2]|0)!=0?(c[(c[m>>2]|0)+12>>2]|0)!=0:0)){Rx(c[l>>2]|0,d[j>>0]|0,c[k>>2]|0);c[m>>2]=Mj(c[l>>2]|0,a[j>>0]|0,c[k>>2]|0,0)|0}if(((c[m>>2]|0)!=0?(c[(c[m>>2]|0)+12>>2]|0)==0:0)?(Sx(c[l>>2]|0,c[m>>2]|0)|0)!=0:0)c[m>>2]=0;if(c[m>>2]|0){p=c[m>>2]|0;i=o;return p|0}p=c[h>>2]|0;c[n>>2]=c[k>>2];Ah(p,29884,n);p=c[m>>2]|0;i=o;return p|0}function Qx(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;e=l+20|0;f=l+16|0;g=l+12|0;k=l+8|0;h=l+4|0;j=l;c[f>>2]=b;c[g>>2]=d;if((c[g>>2]|0)!=0?(c[k>>2]=c[c[g>>2]>>2],c[h>>2]=c[c[f>>2]>>2],c[j>>2]=Px(c[f>>2]|0,a[(c[h>>2]|0)+62>>0]|0,c[g>>2]|0,c[k>>2]|0)|0,(c[j>>2]|0)==0):0){c[e>>2]=1;k=c[e>>2]|0;i=l;return k|0}c[e>>2]=0;k=c[e>>2]|0;i=l;return k|0}function Rx(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;g=n+20|0;h=n+16|0;j=n+12|0;l=n+8|0;m=n+4|0;k=n;c[g>>2]=b;c[h>>2]=e;c[j>>2]=f;do if(c[(c[g>>2]|0)+224>>2]|0){c[l>>2]=nh(c[g>>2]|0,c[j>>2]|0)|0;if(c[l>>2]|0){_b[c[(c[g>>2]|0)+224>>2]&255](c[(c[g>>2]|0)+232>>2]|0,c[g>>2]|0,c[h>>2]|0,c[l>>2]|0);Sf(c[g>>2]|0,c[l>>2]|0);break}else{i=n;return}}while(0);if(!(c[(c[g>>2]|0)+228>>2]|0)){i=n;return}c[k>>2]=Vh(c[g>>2]|0)|0;Wh(c[k>>2]|0,-1,c[j>>2]|0,1,0);c[m>>2]=Wg(c[k>>2]|0,((a[960]|0)==0?3:2)&255)|0;if(c[m>>2]|0)_b[c[(c[g>>2]|0)+228>>2]&255](c[(c[g>>2]|0)+232>>2]|0,c[g>>2]|0,d[(c[g>>2]|0)+62>>0]|0,c[m>>2]|0);$g(c[k>>2]|0);i=n;return}function Sx(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;h=l+20|0;e=l+16|0;j=l+12|0;k=l+8|0;g=l+4|0;f=l;c[e>>2]=b;c[j>>2]=d;c[g>>2]=c[c[j>>2]>>2];c[f>>2]=0;while(1){if((c[f>>2]|0)>=3){e=6;break}c[k>>2]=Mj(c[e>>2]|0,a[29915+(c[f>>2]|0)>>0]|0,c[g>>2]|0,0)|0;if(c[(c[k>>2]|0)+12>>2]|0){e=4;break}c[f>>2]=(c[f>>2]|0)+1}if((e|0)==4){g=c[j>>2]|0;k=c[k>>2]|0;c[g>>2]=c[k>>2];c[g+4>>2]=c[k+4>>2];c[g+8>>2]=c[k+8>>2];c[g+12>>2]=c[k+12>>2];c[g+16>>2]=c[k+16>>2];c[(c[j>>2]|0)+16>>2]=0;c[h>>2]=0;k=c[h>>2]|0;i=l;return k|0}else if((e|0)==6){c[h>>2]=1;k=c[h>>2]|0;i=l;return k|0}return 0}function Tx(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;d=e;c[d>>2]=a;while(1){if(c[d>>2]|0)a=(c[(c[d>>2]|0)+4>>2]&4096|0)!=0;else a=0;b=c[d>>2]|0;if(!a)break;a=c[d>>2]|0;if(c[b+4>>2]&262144){c[d>>2]=c[c[(c[a+20>>2]|0)+4>>2]>>2];continue}else{c[d>>2]=c[a+12>>2];continue}}i=e;return b|0}function Ux(b,d){b=b|0;d=d|0;var f=0,g=0,h=0,j=0;h=i;i=i+48|0;j=h+32|0;f=h+28|0;g=h;c[j>>2]=b;c[f>>2]=d;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;
  79. c[g+16>>2]=0;c[g+20>>2]=0;c[g+24>>2]=0;c[g+4>>2]=190;c[g>>2]=c[j>>2];if(a[(c[j>>2]|0)+22>>0]|0){c[g+8>>2]=191;Zx(g,c[f>>2]|0)|0}c[g+8>>2]=192;if(e[(c[f>>2]|0)+6>>1]&512){j=c[f>>2]|0;Zx(g,j)|0;i=h;return}c[g+12>>2]=132;j=c[f>>2]|0;Zx(g,j)|0;i=h;return}function Vx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+48|0;j=e+36|0;f=e+32|0;h=e+28|0;g=e;c[j>>2]=a;c[f>>2]=b;c[h>>2]=d;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;c[g+20>>2]=0;c[g+24>>2]=0;c[g+4>>2]=193;c[g+8>>2]=194;c[g>>2]=c[j>>2];c[g+24>>2]=c[h>>2];Zx(g,c[f>>2]|0)|0;i=e;return}function Wx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+48|0;g=d+32|0;e=d+28|0;f=d;c[g>>2]=a;c[e>>2]=b;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=0;c[f+24>>2]=0;c[f+12>>2]=133;c[f+4>>2]=190;c[f>>2]=c[g>>2];Zx(f,c[e>>2]|0)|0;i=d;return}function Xx(a,f){a=a|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;n=i;i=i+32|0;p=n+28|0;o=n+24|0;j=n+20|0;g=n+16|0;m=n+12|0;h=n+8|0;l=n+4|0;k=n;c[p>>2]=a;c[o>>2]=f;a=(c[o>>2]|0)+6|0;b[a>>1]=e[a>>1]|0|64;c[j>>2]=c[c[p>>2]>>2];c[m>>2]=c[(c[o>>2]|0)+32>>2];c[g>>2]=0;c[h>>2]=(c[m>>2]|0)+8;while(1){if((c[g>>2]|0)>=(c[c[m>>2]>>2]|0))break;c[l>>2]=c[(c[h>>2]|0)+16>>2];if(((d[(c[l>>2]|0)+42>>0]|0)&2|0)!=0?(c[k>>2]=c[(c[h>>2]|0)+20>>2],(c[k>>2]|0)!=0):0){while(1){if(!(c[(c[k>>2]|0)+52>>2]|0))break;c[k>>2]=c[(c[k>>2]|0)+52>>2]}Lx(c[j>>2]|0,c[l>>2]|0,c[k>>2]|0)}c[g>>2]=(c[g>>2]|0)+1;c[h>>2]=(c[h>>2]|0)+72}i=n;return}function Yx(a,b){a=a|0;b=b|0;var d=0;d=i;i=i+16|0;c[d+4>>2]=a;c[d>>2]=b;i=d;return 0}function Zx(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+12|0;f=h+8|0;d=h+4|0;g=h;c[f>>2]=a;c[d>>2]=b;do if(c[d>>2]|0){if((c[(c[f>>2]|0)+8>>2]|0)==0?(c[(c[f>>2]|0)+12>>2]|0)==0:0)break;c[g>>2]=0;a=(c[f>>2]|0)+16|0;c[a>>2]=(c[a>>2]|0)+1;while(1){if(!(c[d>>2]|0)){d=15;break}if((c[(c[f>>2]|0)+8>>2]|0)!=0?(c[g>>2]=Yb[c[(c[f>>2]|0)+8>>2]&255](c[f>>2]|0,c[d>>2]|0)|0,(c[g>>2]|0)!=0):0){d=15;break}if(_x(c[f>>2]|0,c[d>>2]|0)|0){d=11;break}if($x(c[f>>2]|0,c[d>>2]|0)|0){d=11;break}if(c[(c[f>>2]|0)+12>>2]|0)Rb[c[(c[f>>2]|0)+12>>2]&255](c[f>>2]|0,c[d>>2]|0);c[d>>2]=c[(c[d>>2]|0)+52>>2]}if((d|0)==11){g=(c[f>>2]|0)+16|0;c[g>>2]=(c[g>>2]|0)+-1;c[e>>2]=2;g=c[e>>2]|0;i=h;return g|0}else if((d|0)==15){f=(c[f>>2]|0)+16|0;c[f>>2]=(c[f>>2]|0)+-1;c[e>>2]=c[g>>2]&2;g=c[e>>2]|0;i=h;return g|0}}while(0);c[e>>2]=0;g=c[e>>2]|0;i=h;return g|0}function _x(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;e=g+4|0;f=g;c[e>>2]=a;c[f>>2]=b;do if(!(ay(c[e>>2]|0,c[c[f>>2]>>2]|0)|0)){if(by(c[e>>2]|0,c[(c[f>>2]|0)+36>>2]|0)|0){c[d>>2]=2;break}if(ay(c[e>>2]|0,c[(c[f>>2]|0)+40>>2]|0)|0){c[d>>2]=2;break}if(by(c[e>>2]|0,c[(c[f>>2]|0)+44>>2]|0)|0){c[d>>2]=2;break}if(ay(c[e>>2]|0,c[(c[f>>2]|0)+48>>2]|0)|0){c[d>>2]=2;break}if(by(c[e>>2]|0,c[(c[f>>2]|0)+60>>2]|0)|0){c[d>>2]=2;break}if(by(c[e>>2]|0,c[(c[f>>2]|0)+64>>2]|0)|0){c[d>>2]=2;break}else{c[d>>2]=0;break}}else c[d>>2]=2;while(0);i=g;return c[d>>2]|0}function $x(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;k=i;i=i+32|0;j=k+20|0;e=k+16|0;l=k+12|0;h=k+8|0;f=k+4|0;g=k;c[e>>2]=a;c[l>>2]=b;c[h>>2]=c[(c[l>>2]|0)+32>>2];a:do if(c[h>>2]|0){c[f>>2]=c[c[h>>2]>>2];c[g>>2]=(c[h>>2]|0)+8;while(1){if((c[f>>2]|0)<=0)break a;if(Zx(c[e>>2]|0,c[(c[g>>2]|0)+20>>2]|0)|0){e=5;break}if(((d[(c[g>>2]|0)+36+1>>0]|0)>>>2&1|0)!=0?(ay(c[e>>2]|0,c[(c[g>>2]|0)+64>>2]|0)|0)!=0:0){e=8;break}c[f>>2]=(c[f>>2]|0)+-1;c[g>>2]=(c[g>>2]|0)+72}if((e|0)==5){c[j>>2]=2;l=c[j>>2]|0;i=k;return l|0}else if((e|0)==8){c[j>>2]=2;l=c[j>>2]|0;i=k;return l|0}}while(0);c[j>>2]=0;l=c[j>>2]|0;i=k;return l|0}function ay(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+32|0;d=j+16|0;e=j+12|0;f=j+8|0;g=j+4|0;h=j;c[e>>2]=a;c[f>>2]=b;a:do if(c[f>>2]|0){c[g>>2]=c[c[f>>2]>>2];c[h>>2]=c[(c[f>>2]|0)+4>>2];while(1){if((c[g>>2]|0)<=0)break a;if(by(c[e>>2]|0,c[c[h>>2]>>2]|0)|0)break;c[g>>2]=(c[g>>2]|0)+-1;c[h>>2]=(c[h>>2]|0)+20}c[d>>2]=2;a=c[d>>2]|0;i=j;return a|0}while(0);c[d>>2]=0;a=c[d>>2]|0;i=j;return a|0}function by(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f+4|0;e=f;c[d>>2]=a;c[e>>2]=b;if(!(c[e>>2]|0)){a=0;i=f;return a|0}a=cy(c[d>>2]|0,c[e>>2]|0)|0;i=f;return a|0}function cy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+12|0;d=h+8|0;f=h+4|0;g=h;c[d>>2]=a;c[f>>2]=b;c[g>>2]=Yb[c[(c[d>>2]|0)+4>>2]&255](c[d>>2]|0,c[f>>2]|0)|0;do if((c[g>>2]|0)==0?(c[(c[f>>2]|0)+4>>2]&16384|0)==0:0){if(by(c[d>>2]|0,c[(c[f>>2]|0)+12>>2]|0)|0){c[e>>2]=2;g=c[e>>2]|0;i=h;return g|0}if(by(c[d>>2]|0,c[(c[f>>2]|0)+16>>2]|0)|0){c[e>>2]=2;g=c[e>>2]|0;i=h;return g|0}d=c[d>>2]|0;b=(c[f>>2]|0)+20|0;if(c[(c[f>>2]|0)+4>>2]&2048){if(!(Zx(d,c[b>>2]|0)|0))break;c[e>>2]=2;g=c[e>>2]|0;i=h;return g|0}else{if(!(ay(d,c[b>>2]|0)|0))break;c[e>>2]=2;g=c[e>>2]|0;i=h;return g|0}}while(0);c[e>>2]=c[g>>2]&2;g=c[e>>2]|0;i=h;return g|0}function dy(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;J=i;i=i+128|0;C=J+32|0;E=J+24|0;D=J+16|0;B=J+8|0;A=J;I=J+116|0;n=J+112|0;o=J+108|0;x=J+104|0;z=J+100|0;k=J+96|0;m=J+92|0;l=J+88|0;j=J+84|0;w=J+80|0;s=J+76|0;u=J+72|0;F=J+68|0;r=J+64|0;p=J+60|0;t=J+56|0;G=J+52|0;v=J+48|0;q=J+120|0;y=J+44|0;h=J+40|0;c[n>>2]=f;c[o>>2]=g;c[x>>2]=c[(c[n>>2]|0)+24>>2];c[z>>2]=c[c[x>>2]>>2];if(c[(c[o>>2]|0)+4>>2]&4){c[I>>2]=1;I=c[I>>2]|0;i=J;return I|0}f=(c[o>>2]|0)+4|0;c[f>>2]=c[f>>2]|4;switch(d[c[o>>2]>>0]|0){case 27:{c[I>>2]=Fy(c[z>>2]|0,0,0,c[(c[o>>2]|0)+8>>2]|0,c[x>>2]|0,c[o>>2]|0)|0;I=c[I>>2]|0;i=J;return I|0}case 122:{Gy(c[z>>2]|0,c[x>>2]|0,30424,32);c[j>>2]=c[(c[o>>2]|0)+16>>2];if((d[c[j>>2]>>0]|0)==27){c[l>>2]=0;c[m>>2]=c[(c[(c[o>>2]|0)+12>>2]|0)+8>>2];c[k>>2]=c[(c[j>>2]|0)+8>>2]}else{c[l>>2]=c[(c[(c[o>>2]|0)+12>>2]|0)+8>>2];c[m>>2]=c[(c[(c[j>>2]|0)+12>>2]|0)+8>>2];c[k>>2]=c[(c[(c[j>>2]|0)+16>>2]|0)+8>>2]}c[I>>2]=Fy(c[z>>2]|0,c[l>>2]|0,c[m>>2]|0,c[k>>2]|0,c[x>>2]|0,c[o>>2]|0)|0;I=c[I>>2]|0;i=J;return I|0}case 151:{c[w>>2]=c[(c[o>>2]|0)+20>>2];if(c[w>>2]|0)h=c[c[w>>2]>>2]|0;else h=0;c[s>>2]=h;c[u>>2]=0;c[F>>2]=0;c[r>>2]=0;a[q>>0]=a[(c[c[z>>2]>>2]|0)+62>>0]|0;Gy(c[z>>2]|0,c[x>>2]|0,30441,16);c[G>>2]=c[(c[o>>2]|0)+8>>2];c[t>>2]=If(c[G>>2]|0)|0;c[v>>2]=gi(c[c[z>>2]>>2]|0,c[G>>2]|0,c[t>>2]|0,c[s>>2]|0,a[q>>0]|0,0)|0;do if(!(c[v>>2]|0)){c[v>>2]=gi(c[c[z>>2]>>2]|0,c[G>>2]|0,c[t>>2]|0,-2,a[q>>0]|0,0)|0;if(!(c[v>>2]|0)){c[u>>2]=1;break}else{c[F>>2]=1;break}}else{c[r>>2]=(c[(c[v>>2]|0)+16>>2]|0)!=0&1;do if(e[(c[v>>2]|0)+2>>1]&1024){q=(c[o>>2]|0)+4|0;c[q>>2]=c[q>>2]|266240;if((c[s>>2]|0)!=2){c[(c[o>>2]|0)+28>>2]=(a[c[(c[v>>2]|0)+20>>2]>>0]|0)==117?8388608:125829120;break}s=Hy(c[(c[(c[w>>2]|0)+4>>2]|0)+20>>2]|0)|0;c[(c[o>>2]|0)+28>>2]=s;if((c[(c[o>>2]|0)+28>>2]|0)<0){Ah(c[z>>2]|0,30451,A);A=(c[x>>2]|0)+24|0;c[A>>2]=(c[A>>2]|0)+1}}while(0);c[p>>2]=Mw(c[z>>2]|0,31,0,c[(c[v>>2]|0)+20>>2]|0,0)|0;if(c[p>>2]|0){if((c[p>>2]|0)==1){H=c[z>>2]|0;c[B>>2]=c[(c[v>>2]|0)+20>>2];Ah(H,30522,B);H=(c[x>>2]|0)+24|0;c[H>>2]=(c[H>>2]|0)+1}a[c[o>>2]>>0]=101;c[I>>2]=1;I=c[I>>2]|0;i=J;return I|0}else{if(e[(c[v>>2]|0)+2>>1]&10240){B=(c[o>>2]|0)+4|0;c[B>>2]=c[B>>2]|524288}if(e[(c[v>>2]|0)+2>>1]&2048)break;Gy(c[z>>2]|0,c[x>>2]|0,30557,32);break}}while(0);if((c[r>>2]|0)!=0?(e[(c[x>>2]|0)+28>>1]&1|0)==0:0){F=c[z>>2]|0;G=c[G>>2]|0;c[D>>2]=c[t>>2];c[D+4>>2]=G;Ah(F,30585,D);G=(c[x>>2]|0)+24|0;c[G>>2]=(c[G>>2]|0)+1;c[r>>2]=0}else H=31;do if((H|0)==31){if((c[u>>2]|0)!=0?(d[(c[c[z>>2]>>2]|0)+140+5>>0]|0)==0:0){H=c[z>>2]|0;G=c[G>>2]|0;c[E>>2]=c[t>>2];c[E+4>>2]=G;Ah(H,30621,E);H=(c[x>>2]|0)+24|0;c[H>>2]=(c[H>>2]|0)+1;break}if(c[F>>2]|0){H=c[z>>2]|0;G=c[G>>2]|0;c[C>>2]=c[t>>2];c[C+4>>2]=G;Ah(H,30644,C);H=(c[x>>2]|0)+24|0;c[H>>2]=(c[H>>2]|0)+1}}while(0);if(c[r>>2]|0){H=(c[x>>2]|0)+28|0;b[H>>1]=e[H>>1]&-2}ay(c[n>>2]|0,c[w>>2]|0)|0;if(c[r>>2]|0){c[y>>2]=c[x>>2];a[c[o>>2]>>0]=-103;a[(c[o>>2]|0)+38>>0]=0;while(1){if(!(c[y>>2]|0))break;if(!((Iy(c[o>>2]|0,c[(c[y>>2]|0)+4>>2]|0)|0)!=0^1))break;H=(c[o>>2]|0)+38|0;a[H>>0]=(a[H>>0]|0)+1<<24>>24;c[y>>2]=c[(c[y>>2]|0)+16>>2]}if(c[y>>2]|0){H=(c[y>>2]|0)+28|0;b[H>>1]=e[H>>1]|(2|e[(c[v>>2]|0)+2>>1]&4096)}H=(c[x>>2]|0)+28|0;b[H>>1]=e[H>>1]|1}c[I>>2]=1;I=c[I>>2]|0;i=J;return I|0}case 75:case 20:case 119:{if((c[(c[o>>2]|0)+4>>2]&2048|0)!=0?(c[h>>2]=c[(c[x>>2]|0)+20>>2],Gy(c[z>>2]|0,c[x>>2]|0,30689,52),Zx(c[n>>2]|0,c[(c[o>>2]|0)+20>>2]|0)|0,(c[h>>2]|0)!=(c[(c[x>>2]|0)+20>>2]|0)):0){H=(c[o>>2]|0)+4|0;c[H>>2]=c[H>>2]|32}break}case 135:{Gy(c[z>>2]|0,c[x>>2]|0,30700,52);break}default:{}}if(c[(c[z>>2]|0)+68>>2]|0)h=1;else h=(d[(c[c[z>>2]>>2]|0)+65>>0]|0)!=0;c[I>>2]=h?2:0;I=c[I>>2]|0;i=J;return I|0}function ey(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+128|0;C=E+8|0;B=E;D=E+116|0;h=E+112|0;x=E+108|0;s=E+104|0;v=E+72|0;y=E+68|0;l=E+64|0;A=E+60|0;k=E+56|0;n=E+52|0;z=E+48|0;j=E+44|0;t=E+40|0;o=E+36|0;r=E+32|0;m=E+28|0;w=E+24|0;p=E+20|0;u=E+16|0;q=E+12|0;c[h>>2]=f;c[x>>2]=g;if(e[(c[x>>2]|0)+6>>1]&4){c[D>>2]=1;D=c[D>>2]|0;i=E;return D|0}c[s>>2]=c[(c[h>>2]|0)+24>>2];c[A>>2]=c[c[h>>2]>>2];c[j>>2]=c[c[A>>2]>>2];if(!(e[(c[x>>2]|0)+6>>1]&32)){Kx(c[A>>2]|0,c[x>>2]|0,c[s>>2]|0);if(c[(c[A>>2]|0)+68>>2]|0)h=1;else h=(d[(c[j>>2]|0)+65>>0]|0)!=0;c[D>>2]=h?2:1;D=c[D>>2]|0;i=E;return D|0}c[y>>2]=(c[(c[x>>2]|0)+52>>2]|0)!=0&1;c[l>>2]=0;c[z>>2]=c[x>>2];a:while(1){if(!(c[x>>2]|0)){h=68;break}f=(c[x>>2]|0)+6|0;b[f>>1]=e[f>>1]|4;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0;c[v+16>>2]=0;c[v+20>>2]=0;c[v+24>>2]=0;c[v+28>>2]=0;c[v>>2]=c[A>>2];if(fy(v,c[(c[x>>2]|0)+60>>2]|0)|0){h=11;break}if(fy(v,c[(c[x>>2]|0)+64>>2]|0)|0){h=11;break}if(e[(c[x>>2]|0)+6>>1]&16384){c[t>>2]=c[(c[(c[x>>2]|0)+32>>2]|0)+8+20>>2];c[(c[t>>2]|0)+48>>2]=c[(c[x>>2]|0)+48>>2];c[(c[x>>2]|0)+48>>2]=0}c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[c[(c[x>>2]|0)+32>>2]>>2]|0))break;c[o>>2]=(c[(c[x>>2]|0)+32>>2]|0)+8+((c[k>>2]|0)*72|0);if(c[(c[o>>2]|0)+20>>2]|0){c[m>>2]=0;c[w>>2]=c[(c[A>>2]|0)+496>>2];c[r>>2]=c[s>>2];while(1){if(!(c[r>>2]|0))break;c[m>>2]=(c[m>>2]|0)+(c[(c[r>>2]|0)+20>>2]|0);c[r>>2]=c[(c[r>>2]|0)+16>>2]}if(c[(c[o>>2]|0)+8>>2]|0)c[(c[A>>2]|0)+496>>2]=c[(c[o>>2]|0)+8>>2];Vx(c[A>>2]|0,c[(c[o>>2]|0)+20>>2]|0,c[s>>2]|0);c[(c[A>>2]|0)+496>>2]=c[w>>2];if(c[(c[A>>2]|0)+68>>2]|0){h=24;break a}if(d[(c[j>>2]|0)+65>>0]|0){h=24;break a}c[r>>2]=c[s>>2];while(1){if(!(c[r>>2]|0))break;c[m>>2]=(c[m>>2]|0)-(c[(c[r>>2]|0)+20>>2]|0);c[r>>2]=c[(c[r>>2]|0)+16>>2]}f=(c[o>>2]|0)+36+1|0;a[f>>0]=a[f>>0]&-9|((c[m>>2]|0)!=0&1)<<3&255}c[k>>2]=(c[k>>2]|0)+1}b[v+28>>1]=1;c[v+4>>2]=c[(c[x>>2]|0)+32>>2];c[v+16>>2]=c[s>>2];if(gy(v,c[c[x>>2]>>2]|0)|0){h=31;break}c[n>>2]=c[(c[x>>2]|0)+40>>2];if((c[n>>2]|0)==0?(e[v+28>>1]&2|0)==0:0){f=v+28|0;b[f>>1]=e[f>>1]&-2}else{f=(c[x>>2]|0)+6|0;b[f>>1]=e[f>>1]|(8|e[v+28>>1]&4096)}if(!((c[n>>2]|0)!=0?1:(c[(c[x>>2]|0)+44>>2]|0)==0)){h=37;break}c[v+8>>2]=c[c[x>>2]>>2];if(fy(v,c[(c[x>>2]|0)+44>>2]|0)|0){h=39;break}if(fy(v,c[(c[x>>2]|0)+36>>2]|0)|0){h=41;break}c[k>>2]=0;while(1){if((c[k>>2]|0)>=(c[c[(c[x>>2]|0)+32>>2]>>2]|0))break;c[p>>2]=(c[(c[x>>2]|0)+32>>2]|0)+8+((c[k>>2]|0)*72|0);if(((d[(c[p>>2]|0)+36+1>>0]|0)>>>2&1|0)!=0?(gy(v,c[(c[p>>2]|0)+64>>2]|0)|0)!=0:0){h=46;break a}c[k>>2]=(c[k>>2]|0)+1}c[v+16>>2]=0;f=v+28|0;b[f>>1]=e[f>>1]|1;if(e[(c[x>>2]|0)+6>>1]&16384){c[u>>2]=c[(c[(c[x>>2]|0)+32>>2]|0)+8+20>>2];c[(c[x>>2]|0)+48>>2]=c[(c[u>>2]|0)+48>>2];c[(c[u>>2]|0)+48>>2]=0}if((c[y>>2]|0)<=(c[l>>2]|0)?(hy(v,c[x>>2]|0,c[(c[x>>2]|0)+48>>2]|0,29962)|0)!=0:0){h=52;break}if(a[(c[j>>2]|0)+65>>0]|0){h=54;break}b:do if(c[n>>2]|0){if(hy(v,c[x>>2]|0,c[n>>2]|0,29968)|0){h=58;break a}if(d[(c[j>>2]|0)+65>>0]|0){h=58;break a}c[k>>2]=0;c[q>>2]=c[(c[n>>2]|0)+4>>2];while(1){if((c[k>>2]|0)>=(c[c[n>>2]>>2]|0))break b;if(c[(c[c[q>>2]>>2]|0)+4>>2]&2){h=62;break a}c[k>>2]=(c[k>>2]|0)+1;c[q>>2]=(c[q>>2]|0)+20}}while(0);if((c[(c[x>>2]|0)+56>>2]|0)!=0?(c[c[c[x>>2]>>2]>>2]|0)!=(c[c[c[(c[x>>2]|0)+56>>2]>>2]>>2]|0):0){h=66;break}c[x>>2]=c[(c[x>>2]|0)+52>>2];c[l>>2]=(c[l>>2]|0)+1}switch(h|0){case 11:{c[D>>2]=2;D=c[D>>2]|0;i=E;return D|0}case 24:{c[D>>2]=2;D=c[D>>2]|0;i=E;return D|0}case 31:{c[D>>2]=2;D=c[D>>2]|0;i=E;return D|0}case 37:{Ah(c[A>>2]|0,29918,B);c[D>>2]=2;D=c[D>>2]|0;i=E;return D|0}case 39:{c[D>>2]=2;D=c[D>>2]|0;i=E;return D|0}case 41:{c[D>>2]=2;D=c[D>>2]|0;i=E;return D|0}case 46:{c[D>>2]=2;D=c[D>>2]|0;i=E;return D|0}case 52:{c[D>>2]=2;D=c[D>>2]|0;i=E;return D|0}case 54:{c[D>>2]=2;D=c[D>>2]|0;i=E;return D|0}case 58:{c[D>>2]=2;D=c[D>>2]|0;i=E;return D|0}case 62:{Ah(c[A>>2]|0,29974,C);c[D>>2]=2;D=c[D>>2]|0;i=E;return D|0}case 66:{iy(c[A>>2]|0,c[(c[x>>2]|0)+56>>2]|0);c[D>>2]=2;D=c[D>>2]|0;i=E;return D|0}case 68:{if((c[y>>2]|0)!=0?(jy(c[A>>2]|0,c[z>>2]|0)|0)!=0:0){c[D>>2]=2;D=c[D>>2]|0;i=E;return D|0}c[D>>2]=1;D=c[D>>2]|0;i=E;return D|0}}return 0}function fy(d,f){d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+48|0;g=n+40|0;h=n+36|0;j=n+32|0;l=n+44|0;m=n+4|0;k=n;c[h>>2]=d;c[j>>2]=f;if(!(c[j>>2]|0)){c[g>>2]=0;m=c[g>>2]|0;i=n;return m|0}c[k>>2]=c[c[h>>2]>>2];if(Ey(c[k>>2]|0,(c[(c[j>>2]|0)+24>>2]|0)+(c[(c[c[h>>2]>>2]|0)+464>>2]|0)|0)|0){c[g>>2]=1;m=c[g>>2]|0;i=n;return m|0}k=(c[k>>2]|0)+464|0;c[k>>2]=(c[k>>2]|0)+(c[(c[j>>2]|0)+24>>2]|0);b[l>>1]=(e[(c[h>>2]|0)+28>>1]|0)&4098;k=(c[h>>2]|0)+28|0;b[k>>1]=(e[k>>1]|0)&-4099;c[m>>2]=c[c[h>>2]>>2];c[m+4>>2]=193;c[m+8>>2]=194;c[m+12>>2]=0;c[m+16>>2]=0;a[m+20>>0]=0;c[m+24>>2]=c[h>>2];by(m,c[j>>2]|0)|0;k=(c[c[h>>2]>>2]|0)+464|0;c[k>>2]=(c[k>>2]|0)-(c[(c[j>>2]|0)+24>>2]|0);if(!((c[(c[h>>2]|0)+24>>2]|0)<=0?(c[(c[m>>2]|0)+68>>2]|0)<=0:0)){m=(c[j>>2]|0)+4|0;c[m>>2]=c[m>>2]|8}if((e[(c[h>>2]|0)+28>>1]|0)&2){m=(c[j>>2]|0)+4|0;c[m>>2]=c[m>>2]|2}m=(c[h>>2]|0)+28|0;b[m>>1]=e[m>>1]|0|(e[l>>1]|0);c[g>>2]=(c[(c[j>>2]|0)+4>>2]&8|0)!=0&1;m=c[g>>2]|0;i=n;return m|0}function gy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;d=h+12|0;e=h+8|0;f=h+4|0;g=h;c[e>>2]=a;c[f>>2]=b;a:do if(c[f>>2]|0){c[g>>2]=0;while(1){if((c[g>>2]|0)>=(c[c[f>>2]>>2]|0))break a;if(fy(c[e>>2]|0,c[(c[(c[f>>2]|0)+4>>2]|0)+((c[g>>2]|0)*20|0)>>2]|0)|0)break;c[g>>2]=(c[g>>2]|0)+1}c[d>>2]=2;a=c[d>>2]|0;i=h;return a|0}while(0);c[d>>2]=0;a=c[d>>2]|0;i=h;return a|0}function hy(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=i;i=i+64|0;h=w+48|0;j=w+44|0;k=w+40|0;l=w+36|0;m=w+32|0;n=w+28|0;p=w+24|0;o=w+20|0;t=w+16|0;u=w+12|0;q=w+8|0;r=w+4|0;s=w;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;if(!(c[l>>2]|0)){c[h>>2]=0;v=c[h>>2]|0;i=w;return v|0}c[q>>2]=c[c[c[k>>2]>>2]>>2];c[u>>2]=c[c[j>>2]>>2];c[n>>2]=0;c[t>>2]=c[(c[l>>2]|0)+4>>2];a:while(1){if((c[n>>2]|0)>=(c[c[l>>2]>>2]|0)){v=20;break}c[r>>2]=c[c[t>>2]>>2];c[s>>2]=Tx(c[r>>2]|0)|0;if((a[c[m>>2]>>0]|0)!=71?(c[o>>2]=my(c[u>>2]|0,c[c[k>>2]>>2]|0,c[s>>2]|0)|0,(c[o>>2]|0)>0):0)b[(c[t>>2]|0)+16>>1]=c[o>>2];else v=8;b:do if((v|0)==8){v=0;if(ky(c[s>>2]|0,o)|0){if((c[o>>2]|0)<1|(c[o>>2]|0)>65535){v=10;break a}b[(c[t>>2]|0)+16>>1]=c[o>>2];break}b[(c[t>>2]|0)+16>>1]=0;if(fy(c[j>>2]|0,c[r>>2]|0)|0){v=13;break a}c[p>>2]=0;while(1){if((c[p>>2]|0)>=(c[c[c[k>>2]>>2]>>2]|0))break b;if(!(py(c[r>>2]|0,c[(c[(c[c[k>>2]>>2]|0)+4>>2]|0)+((c[p>>2]|0)*20|0)>>2]|0,-1)|0))b[(c[t>>2]|0)+16>>1]=(c[p>>2]|0)+1;c[p>>2]=(c[p>>2]|0)+1}}while(0);c[n>>2]=(c[n>>2]|0)+1;c[t>>2]=(c[t>>2]|0)+20}if((v|0)==10){ly(c[u>>2]|0,c[m>>2]|0,(c[n>>2]|0)+1|0,c[q>>2]|0);c[h>>2]=1;v=c[h>>2]|0;i=w;return v|0}else if((v|0)==13){c[h>>2]=1;v=c[h>>2]|0;i=w;return v|0}else if((v|0)==20){c[h>>2]=yy(c[u>>2]|0,c[k>>2]|0,c[l>>2]|0,c[m>>2]|0)|0;v=c[h>>2]|0;i=w;return v|0}return 0}function iy(a,b){a=a|0;b=b|0;var f=0,g=0,h=0,j=0;h=i;i=i+32|0;g=h+8|0;j=h+16|0;f=h+12|0;c[j>>2]=a;c[f>>2]=b;b=c[j>>2]|0;if((e[(c[f>>2]|0)+6>>1]|0)&256){Ah(b,30184,h);i=h;return}else{c[g>>2]=xy(d[(c[f>>2]|0)+4>>0]|0)|0;Ah(b,30230,g);i=h;return}}function jy(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=i;i=i+80|0;v=w+8|0;q=w+64|0;r=w+60|0;g=w+56|0;s=w+52|0;u=w+48|0;t=w+44|0;h=w+40|0;k=w+36|0;n=w+32|0;j=w+28|0;m=w+24|0;l=w+20|0;o=w+16|0;p=w+12|0;c[r>>2]=e;c[g>>2]=f;c[k>>2]=1;c[u>>2]=c[(c[g>>2]|0)+48>>2];if(!(c[u>>2]|0)){c[q>>2]=0;v=c[q>>2]|0;i=w;return v|0}c[h>>2]=c[c[r>>2]>>2];if((c[c[u>>2]>>2]|0)>(c[(c[h>>2]|0)+88+8>>2]|0)){Ah(c[r>>2]|0,30033,w);c[q>>2]=1;v=c[q>>2]|0;i=w;return v|0}c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[c[u>>2]>>2]|0))break;f=(c[(c[u>>2]|0)+4>>2]|0)+((c[s>>2]|0)*20|0)+13|0;a[f>>0]=a[f>>0]&-2;c[s>>2]=(c[s>>2]|0)+1}c[(c[g>>2]|0)+56>>2]=0;while(1){if(!(c[(c[g>>2]|0)+52>>2]|0))break;c[(c[(c[g>>2]|0)+52>>2]|0)+56>>2]=c[g>>2];c[g>>2]=c[(c[g>>2]|0)+52>>2]}a:while(1){if(!((c[g>>2]|0)!=0?(c[k>>2]|0)!=0:0)){g=36;break}c[k>>2]=0;c[t>>2]=c[c[g>>2]>>2];c[s>>2]=0;c[n>>2]=c[(c[u>>2]|0)+4>>2];while(1){if((c[s>>2]|0)>=(c[c[u>>2]>>2]|0))break;c[j>>2]=-1;do if(!(a[(c[n>>2]|0)+13>>0]&1)){c[m>>2]=Tx(c[c[n>>2]>>2]|0)|0;if(ky(c[m>>2]|0,j)|0){if((c[j>>2]|0)<=0){g=18;break a}if((c[j>>2]|0)>(c[c[t>>2]>>2]|0)){g=18;break a}}else{c[j>>2]=my(c[r>>2]|0,c[t>>2]|0,c[m>>2]|0)|0;if(!(c[j>>2]|0)){c[l>>2]=ny(c[h>>2]|0,c[m>>2]|0,0)|0;if(!(a[(c[h>>2]|0)+65>>0]|0))c[j>>2]=oy(c[r>>2]|0,c[g>>2]|0,c[l>>2]|0)|0;Zu(c[h>>2]|0,c[l>>2]|0)}}if((c[j>>2]|0)<=0){c[k>>2]=1;break}c[o>>2]=Jv(c[h>>2]|0,132,0)|0;if(!(c[o>>2]|0)){g=25;break a}f=(c[o>>2]|0)+4|0;c[f>>2]=c[f>>2]|1024;c[(c[o>>2]|0)+8>>2]=c[j>>2];if((c[c[n>>2]>>2]|0)==(c[m>>2]|0))c[c[n>>2]>>2]=c[o>>2];else{c[p>>2]=c[c[n>>2]>>2];while(1){if((d[c[(c[p>>2]|0)+12>>2]>>0]|0)!=95)break;c[p>>2]=c[(c[p>>2]|0)+12>>2]}c[(c[p>>2]|0)+12>>2]=c[o>>2]}Zu(c[h>>2]|0,c[m>>2]|0);b[(c[n>>2]|0)+16>>1]=c[j>>2];f=(c[n>>2]|0)+13|0;a[f>>0]=a[f>>0]&-2|1}while(0);c[s>>2]=(c[s>>2]|0)+1;c[n>>2]=(c[n>>2]|0)+20}c[g>>2]=c[(c[g>>2]|0)+56>>2]}if((g|0)==18){ly(c[r>>2]|0,29962,(c[s>>2]|0)+1|0,c[c[t>>2]>>2]|0);c[q>>2]=1;v=c[q>>2]|0;i=w;return v|0}else if((g|0)==25){c[q>>2]=1;v=c[q>>2]|0;i=w;return v|0}else if((g|0)==36){c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[c[u>>2]>>2]|0)){g=41;break}if(!(a[(c[(c[u>>2]|0)+4>>2]|0)+((c[s>>2]|0)*20|0)+13>>0]&1)){g=39;break}c[s>>2]=(c[s>>2]|0)+1}if((g|0)==39){u=c[r>>2]|0;c[v>>2]=(c[s>>2]|0)+1;Ah(u,30067,v);c[q>>2]=1;v=c[q>>2]|0;i=w;return v|0}else if((g|0)==41){c[q>>2]=0;v=c[q>>2]|0;i=w;return v|0}}return 0}function ky(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+16|0;f=k+12|0;g=k+8|0;h=k+4|0;j=k;c[f>>2]=a;c[g>>2]=b;c[h>>2]=0;a=c[f>>2]|0;if(c[(c[f>>2]|0)+4>>2]&1024){c[c[g>>2]>>2]=c[a+8>>2];c[e>>2]=1;j=c[e>>2]|0;i=k;return j|0}switch(d[a>>0]|0|0){case 156:{c[h>>2]=ky(c[(c[f>>2]|0)+12>>2]|0,c[g>>2]|0)|0;break}case 155:{if(ky(c[(c[f>>2]|0)+12>>2]|0,j)|0){c[c[g>>2]>>2]=0-(c[j>>2]|0);c[h>>2]=1}break}default:{}}c[e>>2]=c[h>>2];j=c[e>>2]|0;i=k;return j|0}function ly(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;f=i;i=i+32|0;g=f;l=f+24|0;k=f+20|0;h=f+16|0;j=f+12|0;c[l>>2]=a;c[k>>2]=b;c[h>>2]=d;c[j>>2]=e;b=c[l>>2]|0;e=c[k>>2]|0;a=c[j>>2]|0;c[g>>2]=c[h>>2];c[g+4>>2]=e;c[g+8>>2]=a;Ah(b,30128,g);i=f;return}function my(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;f=m+24|0;g=m+16|0;h=m+12|0;j=m+8|0;l=m+4|0;k=m;c[m+20>>2]=a;c[g>>2]=b;c[h>>2]=e;a:do if((d[c[h>>2]>>0]|0|0)==27){c[l>>2]=c[(c[h>>2]|0)+8>>2];c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[c[g>>2]>>2]|0))break a;c[k>>2]=c[(c[(c[g>>2]|0)+4>>2]|0)+((c[j>>2]|0)*20|0)+4>>2];if((c[k>>2]|0)!=0?(Td(c[k>>2]|0,c[l>>2]|0)|0)==0:0)break;c[j>>2]=(c[j>>2]|0)+1}c[f>>2]=(c[j>>2]|0)+1;l=c[f>>2]|0;i=m;return l|0}while(0);c[f>>2]=0;l=c[f>>2]|0;i=m;return l|0}function ny(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;h=e+8|0;g=e+4|0;f=e;c[h>>2]=a;c[g>>2]=b;c[f>>2]=d;b=ry(c[h>>2]|0,c[g>>2]|0,c[f>>2]|0,0)|0;i=e;return b|0}function oy(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;l=i;i=i+80|0;k=l+60|0;q=l+56|0;r=l+52|0;g=l+48|0;h=l+44|0;j=l+40|0;p=l+8|0;n=l+4|0;m=l;o=l+64|0;c[q>>2]=d;c[r>>2]=e;c[g>>2]=f;c[j>>2]=c[c[r>>2]>>2];c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;c[p+16>>2]=0;c[p+20>>2]=0;c[p+24>>2]=0;c[p+28>>2]=0;c[p>>2]=c[q>>2];c[p+4>>2]=c[(c[r>>2]|0)+32>>2];c[p+8>>2]=c[j>>2];b[p+28>>1]=1;c[p+24>>2]=0;c[n>>2]=c[c[q>>2]>>2];a[o>>0]=a[(c[n>>2]|0)+69>>0]|0;a[(c[n>>2]|0)+69>>0]=1;c[m>>2]=fy(p,c[g>>2]|0)|0;a[(c[n>>2]|0)+69>>0]=a[o>>0]|0;if(c[m>>2]|0){c[k>>2]=0;r=c[k>>2]|0;i=l;return r|0}c[h>>2]=0;while(1){if((c[h>>2]|0)>=(c[c[j>>2]>>2]|0)){f=8;break}r=(py(c[(c[(c[j>>2]|0)+4>>2]|0)+((c[h>>2]|0)*20|0)>>2]|0,c[g>>2]|0,-1)|0)<2;d=(c[h>>2]|0)+1|0;if(r){f=6;break}c[h>>2]=d}if((f|0)==6){c[k>>2]=d;r=c[k>>2]|0;i=l;return r|0}else if((f|0)==8){c[k>>2]=0;r=c[k>>2]|0;i=l;return r|0}return 0}function py(a,e,f){a=a|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;g=m+16|0;h=m+12|0;j=m+8|0;k=m+4|0;l=m;c[h>>2]=a;c[j>>2]=e;c[k>>2]=f;if((c[h>>2]|0)==0|(c[j>>2]|0)==0){c[g>>2]=(c[j>>2]|0)==(c[h>>2]|0)?0:2;l=c[g>>2]|0;i=m;return l|0}c[l>>2]=c[(c[h>>2]|0)+4>>2]|c[(c[j>>2]|0)+4>>2];f=c[h>>2]|0;if(c[l>>2]&1024){if((c[f+4>>2]&c[(c[j>>2]|0)+4>>2]&1024|0)!=0?(c[(c[h>>2]|0)+8>>2]|0)==(c[(c[j>>2]|0)+8>>2]|0):0){c[g>>2]=0;l=c[g>>2]|0;i=m;return l|0}c[g>>2]=2;l=c[g>>2]|0;i=m;return l|0}a=d[c[h>>2]>>0]|0;if((d[f>>0]|0)!=(d[c[j>>2]>>0]|0)){if((a|0)==95?(py(c[(c[h>>2]|0)+12>>2]|0,c[j>>2]|0,c[k>>2]|0)|0)<2:0){c[g>>2]=1;l=c[g>>2]|0;i=m;return l|0}if((d[c[j>>2]>>0]|0)==95?(py(c[h>>2]|0,c[(c[j>>2]|0)+12>>2]|0,c[k>>2]|0)|0)<2:0){c[g>>2]=1;l=c[g>>2]|0;i=m;return l|0}c[g>>2]=2;l=c[g>>2]|0;i=m;return l|0}do if(((a|0)!=152?(d[c[h>>2]>>0]|0)!=154:0)?(c[(c[h>>2]|0)+8>>2]|0)!=0:0){f=c[(c[h>>2]|0)+8>>2]|0;a=c[(c[j>>2]|0)+8>>2]|0;if((d[c[h>>2]>>0]|0)==151){if(!(Td(f,a)|0))break;c[g>>2]=2;l=c[g>>2]|0;i=m;return l|0}else{if(!(yQ(f,a)|0))break;c[g>>2]=(d[c[h>>2]>>0]|0)==95?1:2;l=c[g>>2]|0;i=m;return l|0}}while(0);if((c[(c[h>>2]|0)+4>>2]&16|0)!=(c[(c[j>>2]|0)+4>>2]&16|0)){c[g>>2]=2;l=c[g>>2]|0;i=m;return l|0}do if(!(c[l>>2]&16384)){if(c[l>>2]&2048){c[g>>2]=2;l=c[g>>2]|0;i=m;return l|0}if(py(c[(c[h>>2]|0)+12>>2]|0,c[(c[j>>2]|0)+12>>2]|0,c[k>>2]|0)|0){c[g>>2]=2;l=c[g>>2]|0;i=m;return l|0}if(py(c[(c[h>>2]|0)+16>>2]|0,c[(c[j>>2]|0)+16>>2]|0,c[k>>2]|0)|0){c[g>>2]=2;l=c[g>>2]|0;i=m;return l|0}if(qy(c[(c[h>>2]|0)+20>>2]|0,c[(c[j>>2]|0)+20>>2]|0,c[k>>2]|0)|0){c[g>>2]=2;l=c[g>>2]|0;i=m;return l|0}if((c[l>>2]&8192|0)==0?(d[c[h>>2]>>0]|0)!=97:0){if((b[(c[h>>2]|0)+32>>1]|0)!=(b[(c[j>>2]|0)+32>>1]|0)){c[g>>2]=2;l=c[g>>2]|0;i=m;return l|0}if((c[(c[h>>2]|0)+28>>2]|0)!=(c[(c[j>>2]|0)+28>>2]|0)){if((c[(c[h>>2]|0)+28>>2]|0)==(c[k>>2]|0)?(c[(c[j>>2]|0)+28>>2]|0)<0:0)break;c[g>>2]=2;l=c[g>>2]|0;i=m;return l|0}}}while(0);c[g>>2]=0;l=c[g>>2]|0;i=m;return l|0}function qy(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;m=n+24|0;f=n+20|0;g=n+16|0;h=n+12|0;j=n+8|0;k=n+4|0;l=n;c[f>>2]=a;c[g>>2]=b;c[h>>2]=e;if((c[f>>2]|0)==0&(c[g>>2]|0)==0){c[m>>2]=0;m=c[m>>2]|0;i=n;return m|0}if((c[f>>2]|0)==0|(c[g>>2]|0)==0){c[m>>2]=1;m=c[m>>2]|0;i=n;return m|0}if((c[c[f>>2]>>2]|0)!=(c[c[g>>2]>>2]|0)){c[m>>2]=1;m=c[m>>2]|0;i=n;return m|0}c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[c[f>>2]>>2]|0)){f=14;break}c[k>>2]=c[(c[(c[f>>2]|0)+4>>2]|0)+((c[j>>2]|0)*20|0)>>2];c[l>>2]=c[(c[(c[g>>2]|0)+4>>2]|0)+((c[j>>2]|0)*20|0)>>2];if((d[(c[(c[f>>2]|0)+4>>2]|0)+((c[j>>2]|0)*20|0)+12>>0]|0|0)!=(d[(c[(c[g>>2]|0)+4>>2]|0)+((c[j>>2]|0)*20|0)+12>>0]|0|0)){f=10;break}if(py(c[k>>2]|0,c[l>>2]|0,c[h>>2]|0)|0){f=12;break}c[j>>2]=(c[j>>2]|0)+1}if((f|0)==10){c[m>>2]=1;m=c[m>>2]|0;i=n;return m|0}else if((f|0)==12){c[m>>2]=1;m=c[m>>2]|0;i=n;return m|0}else if((f|0)==14){c[m>>2]=0;m=c[m>>2]|0;i=n;return m|0}return 0}function ry(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+64|0;n=t+48|0;o=t+44|0;p=t+40|0;q=t+36|0;r=t+32|0;m=t+28|0;s=t+24|0;k=t+20|0;h=t+16|0;f=t+12|0;j=t+8|0;g=t+4|0;l=t;c[n>>2]=a;c[o>>2]=b;c[p>>2]=d;c[q>>2]=e;c[r>>2]=0;if(!(c[o>>2]|0)){s=c[r>>2]|0;i=t;return s|0}c[m>>2]=c[p>>2]&1;c[k>>2]=0;if(c[q>>2]|0){c[s>>2]=c[c[q>>2]>>2];c[k>>2]=32768}else{b=c[n>>2]|0;e=sy(c[o>>2]|0,c[p>>2]|0)|0;c[s>>2]=Fw(b,e,((e|0)<0)<<31>>31)|0}c[r>>2]=c[s>>2];if(!(c[r>>2]|0)){s=c[r>>2]|0;i=t;return s|0}c[h>>2]=ty(c[o>>2]|0,c[p>>2]|0)|0;c[f>>2]=c[h>>2]&4095;if((c[(c[o>>2]|0)+4>>2]&1024|0)==0?(c[(c[o>>2]|0)+8>>2]|0)!=0:0)c[j>>2]=(If(c[(c[o>>2]|0)+8>>2]|0)|0)+1;else c[j>>2]=0;if(!(c[m>>2]|0)){c[g>>2]=uy(c[o>>2]|0)|0;iR(c[s>>2]|0,c[o>>2]|0,c[g>>2]|0)|0;if((c[g>>2]|0)>>>0<48)kR((c[s>>2]|0)+(c[g>>2]|0)|0,0,48-(c[g>>2]|0)|0)|0}else iR(c[s>>2]|0,c[o>>2]|0,c[f>>2]|0)|0;e=(c[r>>2]|0)+4|0;c[e>>2]=c[e>>2]&-122881;e=(c[r>>2]|0)+4|0;c[e>>2]=c[e>>2]|c[h>>2]&24576;e=(c[r>>2]|0)+4|0;c[e>>2]=c[e>>2]|c[k>>2];if(c[j>>2]|0){k=(c[s>>2]|0)+(c[f>>2]|0)|0;c[(c[r>>2]|0)+8>>2]=k;c[l>>2]=k;iR(c[l>>2]|0,c[(c[o>>2]|0)+8>>2]|0,c[j>>2]|0)|0}do if(!((c[(c[o>>2]|0)+4>>2]|c[(c[r>>2]|0)+4>>2])&16384)){d=c[n>>2]|0;a=(c[o>>2]|0)+20|0;if(c[(c[o>>2]|0)+4>>2]&2048){m=Hx(d,c[a>>2]|0,c[m>>2]|0)|0;c[(c[r>>2]|0)+20>>2]=m;break}else{m=vy(d,c[a>>2]|0,c[m>>2]|0)|0;c[(c[r>>2]|0)+20>>2]=m;break}}while(0);a=c[o>>2]|0;if(!(c[(c[r>>2]|0)+4>>2]&24576)){if(c[a+4>>2]&16384){s=c[r>>2]|0;i=t;return s|0}s=ny(c[n>>2]|0,c[(c[o>>2]|0)+12>>2]|0,0)|0;c[(c[r>>2]|0)+12>>2]=s;s=ny(c[n>>2]|0,c[(c[o>>2]|0)+16>>2]|0,0)|0;c[(c[r>>2]|0)+16>>2]=s;s=c[r>>2]|0;i=t;return s|0}p=wy(a,c[p>>2]|0)|0;c[s>>2]=(c[s>>2]|0)+p;if(c[(c[r>>2]|0)+4>>2]&8192){p=ry(c[n>>2]|0,c[(c[o>>2]|0)+12>>2]|0,1,s)|0;c[(c[r>>2]|0)+12>>2]=p;p=ry(c[n>>2]|0,c[(c[o>>2]|0)+16>>2]|0,1,s)|0;c[(c[r>>2]|0)+16>>2]=p}if(!(c[q>>2]|0)){s=c[r>>2]|0;i=t;return s|0}c[c[q>>2]>>2]=c[s>>2];s=c[r>>2]|0;i=t;return s|0}function sy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;e=g+4|0;f=g;c[d>>2]=a;c[e>>2]=b;c[f>>2]=0;if(!(c[d>>2]|0)){a=c[f>>2]|0;i=g;return a|0}c[f>>2]=wy(c[d>>2]|0,c[e>>2]|0)|0;if(!(c[e>>2]&1)){a=c[f>>2]|0;i=g;return a|0}a=sy(c[(c[d>>2]|0)+12>>2]|0,c[e>>2]|0)|0;a=a+(sy(c[(c[d>>2]|0)+16>>2]|0,c[e>>2]|0)|0)|0;c[f>>2]=(c[f>>2]|0)+a;a=c[f>>2]|0;i=g;return a|0}function ty(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=i;i=i+16|0;d=f+8|0;g=f+4|0;e=f;c[d>>2]=a;c[g>>2]=b;do if(!(c[g>>2]&1))c[e>>2]=48;else{if((c[(c[d>>2]|0)+12>>2]|0)==0?(c[(c[d>>2]|0)+20>>2]|0)==0:0){c[e>>2]=16396;break}c[e>>2]=8220}while(0);i=f;return c[e>>2]|0}function uy(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[d>>2]=a;do if(!(c[(c[d>>2]|0)+4>>2]&16384))if(c[(c[d>>2]|0)+4>>2]&8192){c[b>>2]=28;break}else{c[b>>2]=48;break}else c[b>>2]=12;while(0);i=e;return c[b>>2]|0}function vy(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+48|0;g=q+32|0;h=q+28|0;j=q+24|0;k=q+20|0;n=q+16|0;m=q+12|0;p=q+8|0;l=q+4|0;o=q;c[h>>2]=b;c[j>>2]=e;c[k>>2]=f;if(!(c[j>>2]|0)){c[g>>2]=0;p=c[g>>2]|0;i=q;return p|0}c[n>>2]=Fw(c[h>>2]|0,8,0)|0;if(!(c[n>>2]|0)){c[g>>2]=0;p=c[g>>2]|0;i=q;return p|0}e=c[c[j>>2]>>2]|0;c[l>>2]=e;c[c[n>>2]>>2]=e;a:do if(!(c[k>>2]&1)){c[l>>2]=1;while(1){if((c[l>>2]|0)>=(c[c[j>>2]>>2]|0))break a;c[l>>2]=(c[l>>2]|0)+(c[l>>2]|0)}}while(0);e=Fw(c[h>>2]|0,(c[l>>2]|0)*20|0,0)|0;c[m>>2]=e;c[(c[n>>2]|0)+4>>2]=e;if(!(c[m>>2]|0)){Sf(c[h>>2]|0,c[n>>2]|0);c[g>>2]=0;p=c[g>>2]|0;i=q;return p|0}c[p>>2]=c[(c[j>>2]|0)+4>>2];c[l>>2]=0;while(1){if((c[l>>2]|0)>=(c[c[j>>2]>>2]|0))break;c[o>>2]=c[c[p>>2]>>2];e=ny(c[h>>2]|0,c[o>>2]|0,c[k>>2]|0)|0;c[c[m>>2]>>2]=e;e=nh(c[h>>2]|0,c[(c[p>>2]|0)+4>>2]|0)|0;c[(c[m>>2]|0)+4>>2]=e;e=nh(c[h>>2]|0,c[(c[p>>2]|0)+8>>2]|0)|0;c[(c[m>>2]|0)+8>>2]=e;a[(c[m>>2]|0)+12>>0]=a[(c[p>>2]|0)+12>>0]|0;e=(c[m>>2]|0)+13|0;a[e>>0]=a[e>>0]&-2;e=(c[m>>2]|0)+13|0;a[e>>0]=a[e>>0]&-3|((d[(c[p>>2]|0)+13>>0]|0)>>>1&1)<<1&255;c[(c[m>>2]|0)+16>>2]=c[(c[p>>2]|0)+16>>2];c[l>>2]=(c[l>>2]|0)+1;c[m>>2]=(c[m>>2]|0)+20;c[p>>2]=(c[p>>2]|0)+20}c[g>>2]=c[n>>2];p=c[g>>2]|0;i=q;return p|0}function wy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=i;i=i+16|0;d=f+8|0;g=f+4|0;e=f;c[d>>2]=a;c[g>>2]=b;c[e>>2]=(ty(c[d>>2]|0,c[g>>2]|0)|0)&4095;if((c[(c[d>>2]|0)+4>>2]&1024|0)==0?(c[(c[d>>2]|0)+8>>2]|0)!=0:0){g=(If(c[(c[d>>2]|0)+8>>2]|0)|0)+1|0;c[e>>2]=(c[e>>2]|0)+g}i=f;return(c[e>>2]|0)+7&-8|0}function xy(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;switch(c[e>>2]|0){case 116:{c[b>>2]=30312;break}case 118:{c[b>>2]=30322;break}case 117:{c[b>>2]=30332;break}default:c[b>>2]=30339}i=d;return c[b>>2]|0}function yy(a,f,g,h){a=a|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+48|0;l=t;p=t+36|0;m=t+32|0;j=t+28|0;n=t+24|0;q=t+20|0;r=t+16|0;k=t+12|0;s=t+8|0;o=t+4|0;c[m>>2]=a;c[j>>2]=f;c[n>>2]=g;c[q>>2]=h;c[k>>2]=c[c[m>>2]>>2];if((c[n>>2]|0)!=0?(d[(c[c[m>>2]>>2]|0)+65>>0]|0)==0:0){if((c[c[n>>2]>>2]|0)>(c[(c[k>>2]|0)+88+8>>2]|0)){s=c[m>>2]|0;c[l>>2]=c[q>>2];Ah(s,30345,l);c[p>>2]=1;s=c[p>>2]|0;i=t;return s|0}c[s>>2]=c[c[j>>2]>>2];c[r>>2]=0;c[o>>2]=c[(c[n>>2]|0)+4>>2];while(1){if((c[r>>2]|0)>=(c[c[n>>2]>>2]|0)){j=13;break}if(b[(c[o>>2]|0)+16>>1]|0){k=c[m>>2]|0;if((e[(c[o>>2]|0)+16>>1]|0)>(c[c[s>>2]>>2]|0)){j=10;break}zy(k,c[s>>2]|0,(e[(c[o>>2]|0)+16>>1]|0)-1|0,c[c[o>>2]>>2]|0,c[q>>2]|0,0)}c[r>>2]=(c[r>>2]|0)+1;c[o>>2]=(c[o>>2]|0)+20}if((j|0)==10){ly(k,c[q>>2]|0,(c[r>>2]|0)+1|0,c[c[s>>2]>>2]|0);c[p>>2]=1;s=c[p>>2]|0;i=t;return s|0}else if((j|0)==13){c[p>>2]=0;s=c[p>>2]|0;i=t;return s|0}}c[p>>2]=0;s=c[p>>2]|0;i=t;return s|0}function zy(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;q=i;i=i+48|0;k=q+32|0;t=q+28|0;s=q+24|0;n=q+20|0;l=q+16|0;m=q+12|0;r=q+8|0;p=q+4|0;o=q;c[k>>2]=b;c[t>>2]=e;c[s>>2]=f;c[n>>2]=g;c[l>>2]=h;c[m>>2]=j;c[r>>2]=c[(c[(c[t>>2]|0)+4>>2]|0)+((c[s>>2]|0)*20|0)>>2];c[o>>2]=c[c[k>>2]>>2];c[p>>2]=ny(c[o>>2]|0,c[r>>2]|0,0)|0;if(!(c[p>>2]|0)){i=q;return}if((a[c[l>>2]>>0]|0)!=71)Ay(c[p>>2]|0,c[m>>2]|0);if((d[c[n>>2]>>0]|0)==95)c[p>>2]=By(c[k>>2]|0,c[p>>2]|0,c[(c[n>>2]|0)+8>>2]|0)|0;k=(c[p>>2]|0)+4|0;c[k>>2]=c[k>>2]|4194304;k=(c[n>>2]|0)+4|0;c[k>>2]=c[k>>2]|32768;Zu(c[o>>2]|0,c[n>>2]|0);k=c[n>>2]|0;l=c[p>>2]|0;m=k+48|0;do{c[k>>2]=c[l>>2];k=k+4|0;l=l+4|0}while((k|0)<(m|0));if((c[(c[n>>2]|0)+4>>2]&1024|0)==0?(c[(c[n>>2]|0)+8>>2]|0)!=0:0){t=nh(c[o>>2]|0,c[(c[n>>2]|0)+8>>2]|0)|0;c[(c[n>>2]|0)+8>>2]=t;t=(c[n>>2]|0)+4|0;c[t>>2]=c[t>>2]|65536}Sf(c[o>>2]|0,c[p>>2]|0);i=q;return}function Ay(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+48|0;d=g+32|0;e=g+28|0;f=g;c[d>>2]=a;c[e>>2]=b;if((c[e>>2]|0)<=0){i=g;return}c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;c[f+16>>2]=0;c[f+20>>2]=0;c[f+24>>2]=0;c[f+4>>2]=195;c[f+24>>2]=c[e>>2];by(f,c[d>>2]|0)|0;i=g;return}function By(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;e=i;i=i+32|0;h=e+16|0;g=e+12|0;j=e+8|0;f=e;c[h>>2]=a;c[g>>2]=b;c[j>>2]=d;Cy(f,c[j>>2]|0);d=Yv(c[h>>2]|0,c[g>>2]|0,f,0)|0;i=e;return d|0}function Cy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;c[c[e>>2]>>2]=c[f>>2];b=If(c[f>>2]|0)|0;c[(c[e>>2]|0)+4>>2]=b;i=d;return}function Dy(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;h=i;i=i+16|0;f=h+4|0;g=h;c[f>>2]=b;c[g>>2]=e;if((d[c[g>>2]>>0]|0|0)!=153){i=h;return 0}b=(c[g>>2]|0)+38|0;a[b>>0]=(d[b>>0]|0)+(c[(c[f>>2]|0)+24>>2]|0);i=h;return 0}function Ey(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;h=i;i=i+32|0;g=h;d=h+16|0;j=h+12|0;f=h+8|0;e=h+4|0;c[d>>2]=a;c[j>>2]=b;c[f>>2]=0;c[e>>2]=c[(c[c[d>>2]>>2]|0)+88+12>>2];if((c[j>>2]|0)<=(c[e>>2]|0)){j=c[f>>2]|0;i=h;return j|0}j=c[d>>2]|0;c[g>>2]=c[e>>2];Ah(j,30376,g);c[f>>2]=1;j=c[f>>2]|0;i=h;return j|0}function Fy(f,g,h,j,k,l){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0;X=i;i=i+176|0;W=X+40|0;V=X+24|0;D=X+8|0;B=X;I=X+164|0;J=X+160|0;m=X+156|0;K=X+152|0;L=X+148|0;M=X+144|0;N=X+140|0;q=X+136|0;s=X+132|0;O=X+128|0;o=X+124|0;t=X+120|0;P=X+116|0;x=X+112|0;S=X+108|0;U=X+104|0;T=X+100|0;Q=X+96|0;A=X+92|0;v=X+88|0;w=X+84|0;z=X+80|0;p=X+76|0;F=X+72|0;u=X+68|0;r=X+64|0;E=X+60|0;y=X+56|0;H=X+52|0;R=X+48|0;c[J>>2]=f;c[m>>2]=g;c[K>>2]=h;c[L>>2]=j;c[M>>2]=k;c[N>>2]=l;c[O>>2]=0;c[o>>2]=0;c[t>>2]=0;c[P>>2]=c[c[J>>2]>>2];c[S>>2]=0;c[U>>2]=c[M>>2];c[T>>2]=0;c[Q>>2]=0;c[A>>2]=0;c[(c[N>>2]|0)+28>>2]=-1;c[(c[N>>2]|0)+44>>2]=0;a:do if(c[m>>2]|0){if(e[(c[M>>2]|0)+28>>1]&20){c[m>>2]=0;break}c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[(c[P>>2]|0)+20>>2]|0))break a;h=(Td(c[(c[(c[P>>2]|0)+16>>2]|0)+(c[q>>2]<<4)>>2]|0,c[m>>2]|0)|0)==0;l=c[q>>2]|0;if(h)break;c[q>>2]=l+1}c[T>>2]=c[(c[(c[P>>2]|0)+16>>2]|0)+(l<<4)+12>>2]}while(0);b:while(1){if(!((c[M>>2]|0)!=0?(c[O>>2]|0)==0:0)){G=89;break}c[z>>2]=c[(c[M>>2]|0)+4>>2];if(c[z>>2]|0){c[q>>2]=0;c[x>>2]=(c[z>>2]|0)+8;while(1){if((c[q>>2]|0)>=(c[c[z>>2]>>2]|0))break;
  80. c[A>>2]=c[(c[x>>2]|0)+16>>2];if((c[(c[x>>2]|0)+20>>2]|0)!=0?(e[(c[(c[x>>2]|0)+20>>2]|0)+6>>1]&1024|0)!=0:0){c[p>>2]=0;c[w>>2]=c[c[(c[x>>2]|0)+20>>2]>>2];c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[c[w>>2]>>2]|0))break;if(Ly(c[(c[(c[w>>2]|0)+4>>2]|0)+((c[s>>2]|0)*20|0)+8>>2]|0,c[L>>2]|0,c[K>>2]|0,c[m>>2]|0)|0){c[O>>2]=(c[O>>2]|0)+1;c[o>>2]=2;c[S>>2]=c[x>>2];b[(c[N>>2]|0)+32>>1]=c[s>>2];c[p>>2]=1}c[s>>2]=(c[s>>2]|0)+1}if(!((c[p>>2]|0)!=0|(c[K>>2]|0)==0))G=21}else G=21;c:do if((G|0)==21){G=0;if((c[m>>2]|0)!=0?(c[(c[A>>2]|0)+64>>2]|0)!=(c[T>>2]|0):0)break;if(c[K>>2]|0){if(c[(c[x>>2]|0)+12>>2]|0)l=c[(c[x>>2]|0)+12>>2]|0;else l=c[c[A>>2]>>2]|0;c[F>>2]=l;if(Td(c[F>>2]|0,c[K>>2]|0)|0)break}h=c[o>>2]|0;c[o>>2]=h+1;if(!h)c[S>>2]=c[x>>2];c[s>>2]=0;c[v>>2]=c[(c[A>>2]|0)+4>>2];while(1){if((c[s>>2]|0)>=(b[(c[A>>2]|0)+34>>1]|0))break c;if(!(Td(c[c[v>>2]>>2]|0,c[L>>2]|0)|0)){if((c[O>>2]|0)!=1)break;if((d[(c[x>>2]|0)+36>>0]&4|0)==0?(My(c[(c[x>>2]|0)+52>>2]|0,c[L>>2]|0)|0)==0:0)break}c[s>>2]=(c[s>>2]|0)+1;c[v>>2]=(c[v>>2]|0)+24}c[O>>2]=(c[O>>2]|0)+1;c[S>>2]=c[x>>2];if((c[s>>2]|0)==(b[(c[A>>2]|0)+32>>1]|0))l=-1;else l=(c[s>>2]&65535)<<16>>16;b[(c[N>>2]|0)+32>>1]=l}while(0);c[q>>2]=(c[q>>2]|0)+1;c[x>>2]=(c[x>>2]|0)+72}if(c[S>>2]|0){c[(c[N>>2]|0)+28>>2]=c[(c[S>>2]|0)+44>>2];c[(c[N>>2]|0)+44>>2]=c[(c[S>>2]|0)+16>>2];if(d[(c[S>>2]|0)+36>>0]&8){h=(c[N>>2]|0)+4|0;c[h>>2]=c[h>>2]|1048576}c[T>>2]=c[(c[(c[N>>2]|0)+44>>2]|0)+64>>2]}}if((c[m>>2]|0)==0&(c[K>>2]|0)!=0&(c[o>>2]|0)==0?(c[(c[J>>2]|0)+420>>2]|0)!=0:0){c[u>>2]=d[(c[J>>2]|0)+440>>0];if((c[u>>2]|0)!=109?(Td(30795,c[K>>2]|0)|0)==0:0){c[(c[N>>2]|0)+28>>2]=1;c[A>>2]=c[(c[J>>2]|0)+420>>2]}else G=50;do if((G|0)==50){G=0;if((c[u>>2]|0)!=108?(Td(30799,c[K>>2]|0)|0)==0:0){c[(c[N>>2]|0)+28>>2]=0;c[A>>2]=c[(c[J>>2]|0)+420>>2];break}c[A>>2]=0}while(0);if(c[A>>2]|0){c[T>>2]=c[(c[A>>2]|0)+64>>2];c[o>>2]=(c[o>>2]|0)+1;c[r>>2]=0;c[v>>2]=c[(c[A>>2]|0)+4>>2];while(1){if((c[r>>2]|0)>=(b[(c[A>>2]|0)+34>>1]|0))break;h=(Td(c[c[v>>2]>>2]|0,c[L>>2]|0)|0)==0;n=c[r>>2]|0;if(h){G=58;break}c[r>>2]=n+1;c[v>>2]=(c[v>>2]|0)+24}if((G|0)==58?(G=0,(n|0)==(b[(c[A>>2]|0)+32>>1]|0)):0)c[r>>2]=-1;if(((c[r>>2]|0)>=(b[(c[A>>2]|0)+34>>1]|0)?(qi(c[L>>2]|0)|0)!=0:0)?(d[(c[A>>2]|0)+42>>0]&64|0)==0:0)c[r>>2]=-1;if((c[r>>2]|0)<(b[(c[A>>2]|0)+34>>1]|0)){c[O>>2]=(c[O>>2]|0)+1;l=c[N>>2]|0;do if((c[r>>2]|0)>=0){k=(c[r>>2]|0)>=32?-1:1<<c[r>>2];f=c[J>>2]|0;if(!(c[l+28>>2]|0)){h=f+432|0;c[h>>2]=c[h>>2]|k;break}else{h=f+436|0;c[h>>2]=c[h>>2]|k;break}}else a[l+1>>0]=68;while(0);b[(c[N>>2]|0)+32>>1]=c[r>>2];c[(c[N>>2]|0)+44>>2]=c[A>>2];c[Q>>2]=1}}}if((((c[O>>2]|0)==0&(c[o>>2]|0)==1&(c[S>>2]|0)!=0?(e[(c[M>>2]|0)+28>>1]&32|0)==0:0)?(qi(c[L>>2]|0)|0)!=0:0)?(d[(c[(c[S>>2]|0)+16>>2]|0)+42>>0]&64|0)==0:0){c[O>>2]=1;b[(c[N>>2]|0)+32>>1]=-1;a[(c[N>>2]|0)+1>>0]=68}h=c[(c[M>>2]|0)+8>>2]|0;c[w>>2]=h;d:do if((h|0)!=0&(c[K>>2]|0)==0&(c[O>>2]|0)==0){c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[c[w>>2]>>2]|0))break d;c[E>>2]=c[(c[(c[w>>2]|0)+4>>2]|0)+((c[s>>2]|0)*20|0)+4>>2];if((c[E>>2]|0)!=0?(Td(c[E>>2]|0,c[L>>2]|0)|0)==0:0){G=82;break b}c[s>>2]=(c[s>>2]|0)+1}}while(0);if(c[O>>2]|0)continue;c[M>>2]=c[(c[M>>2]|0)+16>>2];c[t>>2]=(c[t>>2]|0)+1}if((G|0)==82){c[y>>2]=c[(c[(c[w>>2]|0)+4>>2]|0)+((c[s>>2]|0)*20|0)>>2];if((e[(c[M>>2]|0)+28>>1]&1|0)==0?(c[(c[y>>2]|0)+4>>2]&2|0)!=0:0){W=c[J>>2]|0;c[B>>2]=c[E>>2];Ah(W,30803,B);c[I>>2]=2;W=c[I>>2]|0;i=X;return W|0}zy(c[J>>2]|0,c[w>>2]|0,c[s>>2]|0,c[N>>2]|0,19266,c[t>>2]|0);c[O>>2]=1;c[S>>2]=0}else if((G|0)==89){if((c[O>>2]|0)==0&(c[K>>2]|0)==0?(c[(c[N>>2]|0)+4>>2]&64|0)!=0:0){a[c[N>>2]>>0]=97;c[(c[N>>2]|0)+44>>2]=0;c[I>>2]=1;W=c[I>>2]|0;i=X;return W|0}if((c[O>>2]|0)!=1){c[H>>2]=(c[O>>2]|0)==0?30834:30849;do if(!(c[m>>2]|0)){k=c[J>>2]|0;l=c[H>>2]|0;if(c[K>>2]|0){K=c[K>>2]|0;W=c[L>>2]|0;c[V>>2]=l;c[V+4>>2]=K;c[V+8>>2]=W;Ah(k,30884,V);break}else{V=c[L>>2]|0;c[W>>2]=l;c[W+4>>2]=V;Ah(k,30894,W);break}}else{W=c[J>>2]|0;G=c[m>>2]|0;K=c[K>>2]|0;V=c[L>>2]|0;c[D>>2]=c[H>>2];c[D+4>>2]=G;c[D+8>>2]=K;c[D+12>>2]=V;Ah(W,30871,D)}while(0);a[(c[J>>2]|0)+17>>0]=1;W=(c[U>>2]|0)+24|0;c[W>>2]=(c[W>>2]|0)+1}if((c[S>>2]|0)!=0?(b[(c[N>>2]|0)+32>>1]|0)>=0:0){W=b[(c[N>>2]|0)+32>>1]|0;c[R>>2]=W;c[R>>2]=(c[R>>2]|0)>=64?63:W;R=lR(1,0,c[R>>2]|0)|0;W=(c[S>>2]|0)+56|0;S=W;V=c[S+4>>2]|C;c[W>>2]=c[S>>2]|R;c[W+4>>2]=V}Zu(c[P>>2]|0,c[(c[N>>2]|0)+12>>2]|0);c[(c[N>>2]|0)+12>>2]=0;Zu(c[P>>2]|0,c[(c[N>>2]|0)+16>>2]|0);c[(c[N>>2]|0)+16>>2]=0;a[c[N>>2]>>0]=(c[Q>>2]|0)!=0?62:152}if((c[O>>2]|0)!=1){c[I>>2]=2;W=c[I>>2]|0;i=X;return W|0}if(!(c[(c[N>>2]|0)+4>>2]&4194304))Ny(c[J>>2]|0,c[N>>2]|0,c[T>>2]|0,c[(c[M>>2]|0)+4>>2]|0);while(1){W=(c[U>>2]|0)+20|0;c[W>>2]=(c[W>>2]|0)+1;if((c[U>>2]|0)==(c[M>>2]|0))break;c[U>>2]=c[(c[U>>2]|0)+16>>2]}c[I>>2]=1;W=c[I>>2]|0;i=X;return W|0}function Gy(a,b,d,f){a=a|0;b=b|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+32|0;k=m;g=m+24|0;h=m+20|0;j=m+16|0;n=m+12|0;l=m+8|0;c[g>>2]=a;c[h>>2]=b;c[j>>2]=d;c[n>>2]=f;if(!((e[(c[h>>2]|0)+28>>1]|0)&c[n>>2])){i=m;return}c[l>>2]=30711;if(!((e[(c[h>>2]|0)+28>>1]|0)&32)){if((e[(c[h>>2]|0)+28>>1]|0)&4)c[l>>2]=30757}else c[l>>2]=30739;n=c[g>>2]|0;d=c[l>>2]|0;c[k>>2]=c[j>>2];c[k+4>>2]=d;Ah(n,30775,k);i=m;return}function Hy(a){a=a|0;var b=0,e=0,f=0,g=0;g=i;i=i+16|0;b=g+12|0;e=g+8|0;f=g;c[e>>2]=a;h[f>>3]=-1.0;if((d[c[e>>2]>>0]|0|0)!=133){c[b>>2]=-1;f=c[b>>2]|0;i=g;return f|0}a=c[(c[e>>2]|0)+8>>2]|0;Ky(a,f,If(c[(c[e>>2]|0)+8>>2]|0)|0,1)|0;if(+h[f>>3]>1.0){c[b>>2]=-1;f=c[b>>2]|0;i=g;return f|0}else{c[b>>2]=~~(+h[f>>3]*134217728.0);f=c[b>>2]|0;i=g;return f|0}return 0}function Iy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=i;i=i+48|0;f=e+44|0;h=e+40|0;g=e+12|0;d=e;c[f>>2]=a;c[h>>2]=b;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;c[g+12>>2]=0;c[g+16>>2]=0;c[g+20>>2]=0;c[g+24>>2]=0;c[g+4>>2]=196;c[g+24>>2]=d;c[d>>2]=c[h>>2];c[d+4>>2]=0;c[d+8>>2]=0;ay(g,c[(c[f>>2]|0)+20>>2]|0)|0;i=e;return((c[d+4>>2]|0)>0?1:(c[d+8>>2]|0)==0)&1|0}function Jy(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;e=l+20|0;f=l+16|0;j=l+12|0;g=l+8|0;h=l+4|0;k=l;c[e>>2]=a;c[f>>2]=b;if((d[c[f>>2]>>0]|0|0)!=152?(d[c[f>>2]>>0]|0|0)!=154:0){i=l;return 0}c[g>>2]=c[(c[e>>2]|0)+24>>2];c[h>>2]=c[c[g>>2]>>2];if(c[h>>2]|0)e=c[c[h>>2]>>2]|0;else e=0;c[k>>2]=e;c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[k>>2]|0))break;if((c[(c[f>>2]|0)+28>>2]|0)==(c[(c[h>>2]|0)+8+((c[j>>2]|0)*72|0)+44>>2]|0))break;c[j>>2]=(c[j>>2]|0)+1}e=c[g>>2]|0;if((c[j>>2]|0)<(c[k>>2]|0)){k=e+4|0;c[k>>2]=(c[k>>2]|0)+1;i=l;return 0}else{k=e+8|0;c[k>>2]=(c[k>>2]|0)+1;i=l;return 0}return 0}function Ky(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var j=0,k=0.0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0;G=i;i=i+96|0;F=G+76|0;w=G+72|0;x=G+68|0;j=G+64|0;m=G+80|0;r=G+60|0;E=G+56|0;u=G+52|0;t=G+16|0;p=G+48|0;z=G+44|0;q=G+40|0;y=G+36|0;D=G+8|0;A=G+32|0;B=G+28|0;n=G+24|0;v=G;c[w>>2]=b;c[x>>2]=e;c[j>>2]=f;a[m>>0]=g;c[E>>2]=(c[w>>2]|0)+(c[j>>2]|0);c[u>>2]=1;b=t;c[b>>2]=0;c[b+4>>2]=0;c[p>>2]=0;c[z>>2]=1;c[q>>2]=0;c[y>>2]=1;c[A>>2]=0;c[B>>2]=0;h[c[x>>2]>>3]=0.0;if((d[m>>0]|0)==1)c[r>>2]=1;else{c[r>>2]=2;c[n>>2]=3-(d[m>>0]|0);while(1){if((c[n>>2]|0)>=(c[j>>2]|0))break;if(a[(c[w>>2]|0)+(c[n>>2]|0)>>0]|0)break;c[n>>2]=(c[n>>2]|0)+2}c[B>>2]=(c[n>>2]|0)<(c[j>>2]|0)&1;c[E>>2]=(c[w>>2]|0)+(c[n>>2]|0)+(d[m>>0]|0)+-3;c[w>>2]=(c[w>>2]|0)+(d[m>>0]&1)}while(1){if((c[w>>2]|0)>>>0>=(c[E>>2]|0)>>>0)break;if(!(d[19267+(d[c[w>>2]>>0]|0)>>0]&1))break;c[w>>2]=(c[w>>2]|0)+(c[r>>2]|0)}if((c[w>>2]|0)>>>0>=(c[E>>2]|0)>>>0){c[F>>2]=0;F=c[F>>2]|0;i=G;return F|0}if((a[c[w>>2]>>0]|0)!=45){if((a[c[w>>2]>>0]|0)==43)c[w>>2]=(c[w>>2]|0)+(c[r>>2]|0)}else{c[u>>2]=-1;c[w>>2]=(c[w>>2]|0)+(c[r>>2]|0)}while(1){if((c[w>>2]|0)>>>0>=(c[E>>2]|0)>>>0)break;if((a[c[w>>2]>>0]|0)!=48)break;c[w>>2]=(c[w>>2]|0)+(c[r>>2]|0);c[A>>2]=(c[A>>2]|0)+1}while(1){if((c[w>>2]|0)>>>0>=(c[E>>2]|0)>>>0)break;b=t;e=c[b+4>>2]|0;if(!((d[19267+(d[c[w>>2]>>0]|0)>>0]&4|0)!=0&((e|0)<214748364|(e|0)==214748364&(c[b>>2]|0)>>>0<3435973835)))break;b=t;b=rR(c[b>>2]|0,c[b+4>>2]|0,10,0)|0;e=(a[c[w>>2]>>0]|0)-48|0;e=gR(b|0,C|0,e|0,((e|0)<0)<<31>>31|0)|0;b=t;c[b>>2]=e;c[b+4>>2]=C;c[w>>2]=(c[w>>2]|0)+(c[r>>2]|0);c[A>>2]=(c[A>>2]|0)+1}while(1){if((c[w>>2]|0)>>>0>=(c[E>>2]|0)>>>0)break;if(!(d[19267+(d[c[w>>2]>>0]|0)>>0]&4))break;c[w>>2]=(c[w>>2]|0)+(c[r>>2]|0);c[A>>2]=(c[A>>2]|0)+1;c[p>>2]=(c[p>>2]|0)+1}a:do if((c[w>>2]|0)>>>0<(c[E>>2]|0)>>>0){b:do if((a[c[w>>2]>>0]|0)==46){c[w>>2]=(c[w>>2]|0)+(c[r>>2]|0);while(1){if((c[w>>2]|0)>>>0>=(c[E>>2]|0)>>>0)break;b=t;e=c[b+4>>2]|0;if(!((d[19267+(d[c[w>>2]>>0]|0)>>0]&4|0)!=0&((e|0)<214748364|(e|0)==214748364&(c[b>>2]|0)>>>0<3435973835)))break;b=t;b=rR(c[b>>2]|0,c[b+4>>2]|0,10,0)|0;e=(a[c[w>>2]>>0]|0)-48|0;e=gR(b|0,C|0,e|0,((e|0)<0)<<31>>31|0)|0;b=t;c[b>>2]=e;c[b+4>>2]=C;c[w>>2]=(c[w>>2]|0)+(c[r>>2]|0);c[A>>2]=(c[A>>2]|0)+1;c[p>>2]=(c[p>>2]|0)+-1}while(1){if((c[w>>2]|0)>>>0>=(c[E>>2]|0)>>>0)break b;if(!(d[19267+(d[c[w>>2]>>0]|0)>>0]&4))break b;c[w>>2]=(c[w>>2]|0)+(c[r>>2]|0);c[A>>2]=(c[A>>2]|0)+1}}while(0);if((c[w>>2]|0)>>>0<(c[E>>2]|0)>>>0){if(!((a[c[w>>2]>>0]|0)!=101?(a[c[w>>2]>>0]|0)!=69:0))o=38;c:do if((o|0)==38){c[w>>2]=(c[w>>2]|0)+(c[r>>2]|0);c[y>>2]=0;if((c[w>>2]|0)>>>0>=(c[E>>2]|0)>>>0)break a;if((a[c[w>>2]>>0]|0)!=45){if((a[c[w>>2]>>0]|0)==43)c[w>>2]=(c[w>>2]|0)+(c[r>>2]|0)}else{c[z>>2]=-1;c[w>>2]=(c[w>>2]|0)+(c[r>>2]|0)}while(1){if((c[w>>2]|0)>>>0>=(c[E>>2]|0)>>>0)break c;if(!(d[19267+(d[c[w>>2]>>0]|0)>>0]&4))break c;if((c[q>>2]|0)<1e4)j=((c[q>>2]|0)*10|0)+((a[c[w>>2]>>0]|0)-48)|0;else j=1e4;c[q>>2]=j;c[w>>2]=(c[w>>2]|0)+(c[r>>2]|0);c[y>>2]=1}}while(0);if((c[A>>2]|0)!=0&(c[y>>2]|0)!=0)while(1){if((c[w>>2]|0)>>>0>=(c[E>>2]|0)>>>0)break a;if(!(d[19267+(d[c[w>>2]>>0]|0)>>0]&1))break a;c[w>>2]=(c[w>>2]|0)+(c[r>>2]|0)}}}while(0);r=_(c[q>>2]|0,c[z>>2]|0)|0;c[q>>2]=r+(c[p>>2]|0);if((c[q>>2]|0)<0){c[z>>2]=-1;c[q>>2]=_(c[q>>2]|0,-1)|0}else c[z>>2]=1;r=t;do if((c[r>>2]|0)!=0|(c[r+4>>2]|0)!=0){d:do if((c[z>>2]|0)>0)while(1){r=t;p=c[r+4>>2]|0;if(!((p|0)<214748364|(p|0)==214748364&(c[r>>2]|0)>>>0<3435973836?(c[q>>2]|0)>0:0))break d;c[q>>2]=(c[q>>2]|0)+-1;p=t;p=rR(c[p>>2]|0,c[p+4>>2]|0,10,0)|0;r=t;c[r>>2]=p;c[r+4>>2]=C}else while(1){r=t;r=qR(c[r>>2]|0,c[r+4>>2]|0,10,0)|0;if(!((r|0)!=0|(C|0)!=0?0:(c[q>>2]|0)>0))break d;c[q>>2]=(c[q>>2]|0)+-1;p=t;p=pR(c[p>>2]|0,c[p+4>>2]|0,10,0)|0;r=t;c[r>>2]=p;c[r+4>>2]=C}while(0);p=(c[u>>2]|0)<0;r=t;o=c[r>>2]|0;r=c[r+4>>2]|0;b=fR(0,0,o|0,r|0)|0;u=t;c[u>>2]=p?b:o;c[u+4>>2]=p?C:r;if(!(c[q>>2]|0)){z=t;h[D>>3]=+((c[z>>2]|0)>>>0)+4294967296.0*+(c[z+4>>2]|0);break}h[v>>3]=1.0;if((c[q>>2]|0)>307&(c[q>>2]|0)<342){while(1){if(!((c[q>>2]|0)%308|0))break;h[v>>3]=+h[v>>3]*10.0;c[q>>2]=(c[q>>2]|0)-1}u=t;l=+((c[u>>2]|0)>>>0)+4294967296.0*+(c[u+4>>2]|0);k=+h[v>>3];if((c[z>>2]|0)<0){h[D>>3]=l/k;h[D>>3]=+h[D>>3]/1.e+308;break}else{h[D>>3]=l*k;h[D>>3]=+h[D>>3]*1.e+308;break}}if((c[q>>2]|0)>=342){v=t;k=+((c[v>>2]|0)>>>0)+4294967296.0*+(c[v+4>>2]|0);if((c[z>>2]|0)<0){h[D>>3]=0.0*k;break}else{h[D>>3]=s*k;break}}while(1){if(!((c[q>>2]|0)%22|0))break;h[v>>3]=+h[v>>3]*10.0;c[q>>2]=(c[q>>2]|0)-1}while(1){if((c[q>>2]|0)<=0)break;h[v>>3]=+h[v>>3]*1.0e22;c[q>>2]=(c[q>>2]|0)-22}u=t;l=+((c[u>>2]|0)>>>0)+4294967296.0*+(c[u+4>>2]|0);k=+h[v>>3];if((c[z>>2]|0)<0){h[D>>3]=l/k;break}else{h[D>>3]=l*k;break}}else h[D>>3]=((c[u>>2]|0)<0?(c[A>>2]|0)!=0:0)?-0.0:0.0;while(0);h[c[x>>2]>>3]=+h[D>>3];if(((c[A>>2]|0)>0?(c[w>>2]|0)>>>0>=(c[E>>2]|0)>>>0:0)&(c[y>>2]|0)!=0)j=(c[B>>2]|0)==0;else j=0;c[F>>2]=j&1;F=c[F>>2]|0;i=G;return F|0}function Ly(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;g=n+20|0;h=n+16|0;j=n+12|0;k=n+8|0;l=n+4|0;m=n;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;c[m>>2]=0;while(1){if(!(a[(c[h>>2]|0)+(c[m>>2]|0)>>0]|0))break;if((a[(c[h>>2]|0)+(c[m>>2]|0)>>0]|0)==46)break;c[m>>2]=(c[m>>2]|0)+1}do if(c[l>>2]|0){if((zd(c[h>>2]|0,c[l>>2]|0,c[m>>2]|0)|0)==0?(a[(c[l>>2]|0)+(c[m>>2]|0)>>0]|0)==0:0)break;c[g>>2]=0;e=c[g>>2]|0;i=n;return e|0}while(0);c[h>>2]=(c[h>>2]|0)+((c[m>>2]|0)+1);c[m>>2]=0;while(1){if(!(a[(c[h>>2]|0)+(c[m>>2]|0)>>0]|0))break;if((a[(c[h>>2]|0)+(c[m>>2]|0)>>0]|0)==46)break;c[m>>2]=(c[m>>2]|0)+1}do if(c[k>>2]|0){if((zd(c[h>>2]|0,c[k>>2]|0,c[m>>2]|0)|0)==0?(a[(c[k>>2]|0)+(c[m>>2]|0)>>0]|0)==0:0)break;c[g>>2]=0;e=c[g>>2]|0;i=n;return e|0}while(0);c[h>>2]=(c[h>>2]|0)+((c[m>>2]|0)+1);if((c[j>>2]|0)!=0?(Td(c[h>>2]|0,c[j>>2]|0)|0)!=0:0){c[g>>2]=0;e=c[g>>2]|0;i=n;return e|0}c[g>>2]=1;e=c[g>>2]|0;i=n;return e|0}function My(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;d=h+12|0;e=h+8|0;f=h+4|0;g=h;c[e>>2]=a;c[f>>2]=b;a:do if(c[e>>2]|0){c[g>>2]=0;while(1){if((c[g>>2]|0)>=(c[(c[e>>2]|0)+4>>2]|0))break a;if(!(Td(c[(c[c[e>>2]>>2]|0)+(c[g>>2]<<3)>>2]|0,c[f>>2]|0)|0))break;c[g>>2]=(c[g>>2]|0)+1}c[d>>2]=1;b=c[d>>2]|0;i=h;return b|0}while(0);c[d>>2]=0;b=c[d>>2]|0;i=h;return b|0}function Ny(e,f,g,h){e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=i;i=i+48|0;k=s+36|0;l=s+32|0;j=s+28|0;m=s+24|0;t=s+20|0;q=s+16|0;r=s+12|0;p=s+8|0;o=s+4|0;n=s;c[k>>2]=e;c[l>>2]=f;c[j>>2]=g;c[m>>2]=h;c[t>>2]=c[c[k>>2]>>2];c[q>>2]=0;if(!(c[(c[t>>2]|0)+288>>2]|0)){i=s;return}c[o>>2]=Dh(c[c[k>>2]>>2]|0,c[j>>2]|0)|0;if((c[o>>2]|0)<0){i=s;return}a:do if((d[c[l>>2]>>0]|0)==62)c[q>>2]=c[(c[k>>2]|0)+420>>2];else{c[p>>2]=0;while(1){if((c[p>>2]|0)>=(c[c[m>>2]>>2]|0))break a;j=c[p>>2]|0;if((c[(c[l>>2]|0)+28>>2]|0)==(c[(c[m>>2]|0)+8+((c[p>>2]|0)*72|0)+44>>2]|0))break;c[p>>2]=j+1}c[q>>2]=c[(c[m>>2]|0)+8+(j*72|0)+16>>2]}while(0);c[n>>2]=b[(c[l>>2]|0)+32>>1];if(!(c[q>>2]|0)){i=s;return}do if((c[n>>2]|0)<0)if((b[(c[q>>2]|0)+32>>1]|0)>=0){c[r>>2]=c[(c[(c[q>>2]|0)+4>>2]|0)+((b[(c[q>>2]|0)+32>>1]|0)*24|0)>>2];break}else{c[r>>2]=20759;break}else c[r>>2]=c[(c[(c[q>>2]|0)+4>>2]|0)+((c[n>>2]|0)*24|0)>>2];while(0);if(2!=(Oy(c[k>>2]|0,c[c[q>>2]>>2]|0,c[r>>2]|0,c[o>>2]|0)|0)){i=s;return}a[c[l>>2]>>0]=101;i=s;return}function Oy(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+64|0;n=p+16|0;m=p;f=p+48|0;g=p+44|0;h=p+40|0;j=p+36|0;k=p+32|0;o=p+28|0;l=p+24|0;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[k>>2]=c[c[f>>2]>>2];c[o>>2]=c[(c[(c[k>>2]|0)+16>>2]|0)+(c[j>>2]<<4)>>2];c[l>>2]=Sb[c[(c[k>>2]|0)+288>>2]&255](c[(c[k>>2]|0)+292>>2]|0,20,c[g>>2]|0,c[h>>2]|0,c[o>>2]|0,c[(c[f>>2]|0)+496>>2]|0)|0;if((c[l>>2]|0)!=1){if(!((c[l>>2]|0)!=2&(c[l>>2]|0)!=0)){o=c[l>>2]|0;i=p;return o|0}Nw(c[f>>2]|0);o=c[l>>2]|0;i=p;return o|0}e=c[f>>2]|0;if((c[j>>2]|0)!=0?1:(c[(c[k>>2]|0)+20>>2]|0)>2){k=c[g>>2]|0;n=c[h>>2]|0;c[m>>2]=c[o>>2];c[m+4>>2]=k;c[m+8>>2]=n;Ah(e,30901,m)}else{o=c[h>>2]|0;c[n>>2]=c[g>>2];c[n+4>>2]=o;Ah(e,30934,n)}c[(c[f>>2]|0)+12>>2]=23;o=c[l>>2]|0;i=p;return o|0}function St(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;f=m+20|0;g=m+16|0;h=m+12|0;j=m+8|0;k=m+4|0;l=m;c[g>>2]=b;c[h>>2]=e;c[j>>2]=d[c[g>>2]>>0];if(!(c[j>>2]&128)){l=c[h>>2]|0;c[l>>2]=c[j>>2];c[l+4>>2]=0;a[f>>0]=1;l=a[f>>0]|0;i=m;return l|0}c[g>>2]=(c[g>>2]|0)+1;c[k>>2]=d[c[g>>2]>>0];if(!(c[k>>2]&128)){c[j>>2]=c[j>>2]&127;c[j>>2]=c[j>>2]<<7;c[j>>2]=c[j>>2]|c[k>>2];l=c[h>>2]|0;c[l>>2]=c[j>>2];c[l+4>>2]=0;a[f>>0]=2;l=a[f>>0]|0;i=m;return l|0}c[g>>2]=(c[g>>2]|0)+1;c[j>>2]=c[j>>2]<<14;c[j>>2]=c[j>>2]|(d[c[g>>2]>>0]|0);e=(c[j>>2]&128|0)!=0;c[j>>2]=c[j>>2]&2080895;if(!e){c[k>>2]=c[k>>2]&127;c[k>>2]=c[k>>2]<<7;c[j>>2]=c[j>>2]|c[k>>2];l=c[h>>2]|0;c[l>>2]=c[j>>2];c[l+4>>2]=0;a[f>>0]=3;l=a[f>>0]|0;i=m;return l|0}c[g>>2]=(c[g>>2]|0)+1;c[k>>2]=c[k>>2]<<14;c[k>>2]=c[k>>2]|(d[c[g>>2]>>0]|0);e=(c[k>>2]&128|0)!=0;c[k>>2]=c[k>>2]&2080895;b=c[j>>2]|0;if(!e){c[j>>2]=b<<7;c[j>>2]=c[j>>2]|c[k>>2];l=c[h>>2]|0;c[l>>2]=c[j>>2];c[l+4>>2]=0;a[f>>0]=4;l=a[f>>0]|0;i=m;return l|0}c[l>>2]=b;c[g>>2]=(c[g>>2]|0)+1;c[j>>2]=c[j>>2]<<14;c[j>>2]=c[j>>2]|(d[c[g>>2]>>0]|0);if(!(c[j>>2]&128)){c[k>>2]=c[k>>2]<<7;c[j>>2]=c[j>>2]|c[k>>2];c[l>>2]=(c[l>>2]|0)>>>18;k=c[l>>2]|0;l=c[h>>2]|0;c[l>>2]=c[j>>2];c[l+4>>2]=k;a[f>>0]=5;l=a[f>>0]|0;i=m;return l|0}c[l>>2]=c[l>>2]<<7;c[l>>2]=c[l>>2]|c[k>>2];c[g>>2]=(c[g>>2]|0)+1;c[k>>2]=c[k>>2]<<14;c[k>>2]=c[k>>2]|(d[c[g>>2]>>0]|0);if(!(c[k>>2]&128)){c[j>>2]=c[j>>2]&2080895;c[j>>2]=c[j>>2]<<7;c[j>>2]=c[j>>2]|c[k>>2];c[l>>2]=(c[l>>2]|0)>>>18;k=c[l>>2]|0;l=c[h>>2]|0;c[l>>2]=c[j>>2];c[l+4>>2]=k;a[f>>0]=6;l=a[f>>0]|0;i=m;return l|0}c[g>>2]=(c[g>>2]|0)+1;c[j>>2]=c[j>>2]<<14;c[j>>2]=c[j>>2]|(d[c[g>>2]>>0]|0);b=c[j>>2]|0;if(!(c[j>>2]&128)){c[j>>2]=b&-266354561;c[k>>2]=c[k>>2]&2080895;c[k>>2]=c[k>>2]<<7;c[j>>2]=c[j>>2]|c[k>>2];c[l>>2]=(c[l>>2]|0)>>>11;k=c[l>>2]|0;l=c[h>>2]|0;c[l>>2]=c[j>>2];c[l+4>>2]=k;a[f>>0]=7;l=a[f>>0]|0;i=m;return l|0}c[j>>2]=b&2080895;c[g>>2]=(c[g>>2]|0)+1;c[k>>2]=c[k>>2]<<14;c[k>>2]=c[k>>2]|(d[c[g>>2]>>0]|0);if(c[k>>2]&128){c[g>>2]=(c[g>>2]|0)+1;c[j>>2]=c[j>>2]<<15;c[j>>2]=c[j>>2]|(d[c[g>>2]>>0]|0);c[k>>2]=c[k>>2]&2080895;c[k>>2]=c[k>>2]<<8;c[j>>2]=c[j>>2]|c[k>>2];c[l>>2]=c[l>>2]<<4;c[k>>2]=d[(c[g>>2]|0)+-4>>0];c[k>>2]=c[k>>2]&127;c[k>>2]=(c[k>>2]|0)>>>3;c[l>>2]=c[l>>2]|c[k>>2];k=c[l>>2]|0;l=c[h>>2]|0;c[l>>2]=c[j>>2];c[l+4>>2]=k;a[f>>0]=9;l=a[f>>0]|0;i=m;return l|0}else{c[k>>2]=c[k>>2]&-266354561;c[j>>2]=c[j>>2]<<7;c[j>>2]=c[j>>2]|c[k>>2];c[l>>2]=(c[l>>2]|0)>>>4;k=c[l>>2]|0;l=c[h>>2]|0;c[l>>2]=c[j>>2];c[l+4>>2]=k;a[f>>0]=8;l=a[f>>0]|0;i=m;return l|0}return 0}function Tt(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=i;i=i+16|0;e=g+4|0;f=g;c[e>>2]=b;c[f>>2]=d;while(1){if((c[f>>2]|0)>0)b=(a[(c[e>>2]|0)+((c[f>>2]|0)-1)>>0]|0)==32;else b=0;d=c[f>>2]|0;if(!b)break;c[f>>2]=d+-1}i=g;return(d|0)==0|0}function Ut(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;g=n+20|0;h=n+16|0;j=n+12|0;k=n+8|0;m=n+4|0;l=n;c[g>>2]=a;c[h>>2]=b;c[j>>2]=e;c[k>>2]=f;c[m>>2]=0;if(!(c[g>>2]|0)){m=c[m>>2]|0;i=n;return m|0}c[l>>2]=c[(c[g>>2]|0)+4>>2];kg(c[g>>2]|0);if(d[(c[l>>2]|0)+20>>0]|0){c[m>>2]=6;m=c[m>>2]|0;i=n;return m|0}else{c[m>>2]=Vt(c[c[l>>2]>>2]|0,c[h>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;m=c[m>>2]|0;i=n;return m|0}return 0}function Vt(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;g=m+16|0;h=m+12|0;j=m+8|0;k=m+4|0;l=m;c[g>>2]=a;c[h>>2]=b;c[j>>2]=e;c[k>>2]=f;c[l>>2]=0;if(!(c[(c[g>>2]|0)+216>>2]|0)){l=c[l>>2]|0;i=m;return l|0}if(!(c[h>>2]|0))b=0;else b=c[(c[g>>2]|0)+184>>2]|0;c[l>>2]=Is(c[(c[g>>2]|0)+216>>2]|0,c[h>>2]|0,b,c[(c[g>>2]|0)+188>>2]|0,d[(c[g>>2]|0)+10>>0]|0,c[(c[g>>2]|0)+160>>2]|0,c[(c[g>>2]|0)+208>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;l=c[l>>2]|0;i=m;return l|0}function Wt(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;l=i;i=i+32|0;j=l+20|0;n=l+16|0;m=l+12|0;g=l+8|0;h=l+4|0;k=l;c[n>>2]=b;c[m>>2]=d;c[g>>2]=e;c[h>>2]=f;c[k>>2]=c[(c[n>>2]|0)+(c[m>>2]<<2)>>2];while(1){if(!(c[k>>2]|0)){g=7;break}if((zd(c[(c[k>>2]|0)+20>>2]|0,c[g>>2]|0,c[h>>2]|0)|0)==0?(a[(c[(c[k>>2]|0)+20>>2]|0)+(c[h>>2]|0)>>0]|0)==0:0){g=5;break}c[k>>2]=c[(c[k>>2]|0)+24>>2]}if((g|0)==5){c[j>>2]=c[k>>2];n=c[j>>2]|0;i=l;return n|0}else if((g|0)==7){c[j>>2]=0;n=c[j>>2]|0;i=l;return n|0}return 0}function Xt(f,g,h){f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;j=o+12|0;k=o+8|0;l=o+4|0;m=o+16|0;n=o;c[k>>2]=f;c[l>>2]=g;a[m>>0]=h;h=c[k>>2]|0;if((c[l>>2]|0)==-2){c[j>>2]=(c[h+12>>2]|0)==0?0:6;n=c[j>>2]|0;i=o;return n|0}if((b[h>>1]|0)!=(c[l>>2]|0)?(b[c[k>>2]>>1]|0)>=0:0){c[j>>2]=0;n=c[j>>2]|0;i=o;return n|0}if((b[c[k>>2]>>1]|0)==(c[l>>2]|0))c[n>>2]=4;else c[n>>2]=1;if((d[m>>0]|0)!=(e[(c[k>>2]|0)+2>>1]&3|0)){if(d[m>>0]&e[(c[k>>2]|0)+2>>1]&2)c[n>>2]=(c[n>>2]|0)+1}else c[n>>2]=(c[n>>2]|0)+2;c[j>>2]=c[n>>2];n=c[j>>2]|0;i=o;return n|0}function Yt(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;k=i;i=i+32|0;f=k+16|0;g=k+12|0;j=k+8|0;l=k+4|0;m=k+20|0;h=k;c[f>>2]=b;c[g>>2]=e;c[l>>2]=If(c[(c[g>>2]|0)+20>>2]|0)|0;a[m>>0]=a[c[(c[g>>2]|0)+20>>2]>>0]|0;c[h>>2]=((d[18477+(d[m>>0]|0)>>0]|0)+(c[l>>2]|0)|0)%23|0;c[j>>2]=Wt(c[f>>2]|0,c[h>>2]|0,c[(c[g>>2]|0)+20>>2]|0,c[l>>2]|0)|0;if(c[j>>2]|0){c[(c[g>>2]|0)+8>>2]=c[(c[j>>2]|0)+8>>2];c[(c[j>>2]|0)+8>>2]=c[g>>2];i=k;return}else{c[(c[g>>2]|0)+8>>2]=0;c[(c[g>>2]|0)+24>>2]=c[(c[f>>2]|0)+(c[h>>2]<<2)>>2];c[(c[f>>2]|0)+(c[h>>2]<<2)>>2]=c[g>>2];i=k;return}}function Zt(a,b){a=a|0;b=b|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;f=k+12|0;g=k+8|0;h=k+4|0;j=k;c[g>>2]=a;c[h>>2]=b;if(((e[(c[g>>2]|0)+8>>1]|0)&2|0)!=0?(d[(c[g>>2]|0)+10>>0]|0|0)!=(c[h>>2]|0):0){c[j>>2]=_t(c[g>>2]|0,c[h>>2]&255)|0;c[f>>2]=c[j>>2];j=c[f>>2]|0;i=k;return j|0}c[f>>2]=0;j=c[f>>2]|0;i=k;return j|0}function _t(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=i;i=i+48|0;n=v+40|0;o=v+36|0;p=v+45|0;k=v+32|0;t=v+28|0;s=v+24|0;u=v+20|0;r=v+16|0;q=v+12|0;j=v+44|0;h=v+8|0;l=v+4|0;m=v;c[o>>2]=f;a[p>>0]=g;if((d[(c[o>>2]|0)+10>>0]|0|0)!=1?(d[p>>0]|0|0)!=1:0){c[h>>2]=_g(c[o>>2]|0)|0;if(c[h>>2]|0){c[n>>2]=7;u=c[n>>2]|0;i=v;return u|0}c[s>>2]=c[(c[o>>2]|0)+16>>2];c[u>>2]=(c[s>>2]|0)+(c[(c[o>>2]|0)+12>>2]&-2);while(1){if((c[s>>2]|0)>>>0>=(c[u>>2]|0)>>>0)break;a[j>>0]=a[c[s>>2]>>0]|0;a[c[s>>2]>>0]=a[(c[s>>2]|0)+1>>0]|0;c[s>>2]=(c[s>>2]|0)+1;r=a[j>>0]|0;t=c[s>>2]|0;c[s>>2]=t+1;a[t>>0]=r}a[(c[o>>2]|0)+10>>0]=a[p>>0]|0}else{g=(c[o>>2]|0)+12|0;f=c[g>>2]|0;if((d[p>>0]|0|0)==1){c[g>>2]=f&-2;c[k>>2]=(c[(c[o>>2]|0)+12>>2]<<1)+1}else c[k>>2]=(f<<1)+2;c[s>>2]=c[(c[o>>2]|0)+16>>2];c[u>>2]=(c[s>>2]|0)+(c[(c[o>>2]|0)+12>>2]|0);k=c[k>>2]|0;c[t>>2]=yh(c[(c[o>>2]|0)+32>>2]|0,k,((k|0)<0)<<31>>31)|0;if(!(c[t>>2]|0)){c[n>>2]=7;u=c[n>>2]|0;i=v;return u|0}c[r>>2]=c[t>>2];if((d[(c[o>>2]|0)+10>>0]|0|0)==1){a:do if((d[p>>0]|0|0)==2)while(1){if((c[s>>2]|0)>>>0>=(c[u>>2]|0)>>>0)break a;m=c[s>>2]|0;c[s>>2]=m+1;c[q>>2]=d[m>>0];do if((c[q>>2]|0)>>>0>=192){c[q>>2]=d[26420+((c[q>>2]|0)-192)>>0];while(1){if((c[s>>2]|0)!=(c[u>>2]|0))f=((d[c[s>>2]>>0]|0)&192|0)==128;else f=0;g=c[q>>2]|0;if(!f)break;m=c[s>>2]|0;c[s>>2]=m+1;c[q>>2]=(g<<6)+(63&(d[m>>0]|0))}if((g>>>0>=128?(c[q>>2]&-2048|0)!=55296:0)?(c[q>>2]&-2|0)!=65534:0)break;c[q>>2]=65533}while(0);g=c[q>>2]|0;if((c[q>>2]|0)>>>0<=65535){l=c[r>>2]|0;c[r>>2]=l+1;a[l>>0]=g;l=(c[q>>2]|0)>>>8&255;m=c[r>>2]|0;c[r>>2]=m+1;a[m>>0]=l;continue}else{m=(g>>>10&63)+(((c[q>>2]|0)-65536|0)>>>10&192)&255;l=c[r>>2]|0;c[r>>2]=l+1;a[l>>0]=m;l=216+(((c[q>>2]|0)-65536|0)>>>18&3)&255;m=c[r>>2]|0;c[r>>2]=m+1;a[m>>0]=l;m=c[q>>2]&255;l=c[r>>2]|0;c[r>>2]=l+1;a[l>>0]=m;l=220+((c[q>>2]|0)>>>8&3)&255;m=c[r>>2]|0;c[r>>2]=m+1;a[m>>0]=l;continue}}else while(1){if((c[s>>2]|0)>>>0>=(c[u>>2]|0)>>>0)break a;m=c[s>>2]|0;c[s>>2]=m+1;c[q>>2]=d[m>>0];do if((c[q>>2]|0)>>>0>=192){c[q>>2]=d[26420+((c[q>>2]|0)-192)>>0];while(1){if((c[s>>2]|0)!=(c[u>>2]|0))f=((d[c[s>>2]>>0]|0)&192|0)==128;else f=0;g=c[q>>2]|0;if(!f)break;m=c[s>>2]|0;c[s>>2]=m+1;c[q>>2]=(g<<6)+(63&(d[m>>0]|0))}if((g>>>0>=128?(c[q>>2]&-2048|0)!=55296:0)?(c[q>>2]&-2|0)!=65534:0)break;c[q>>2]=65533}while(0);g=c[q>>2]|0;if((c[q>>2]|0)>>>0<=65535){l=c[r>>2]|0;c[r>>2]=l+1;a[l>>0]=g>>>8;l=c[q>>2]&255;m=c[r>>2]|0;c[r>>2]=m+1;a[m>>0]=l;continue}else{l=c[r>>2]|0;c[r>>2]=l+1;a[l>>0]=216+((g-65536|0)>>>18&3);l=((c[q>>2]|0)>>>10&63)+(((c[q>>2]|0)-65536|0)>>>10&192)&255;m=c[r>>2]|0;c[r>>2]=m+1;a[m>>0]=l;m=220+((c[q>>2]|0)>>>8&3)&255;l=c[r>>2]|0;c[r>>2]=l+1;a[l>>0]=m;l=c[q>>2]&255;m=c[r>>2]|0;c[r>>2]=m+1;a[m>>0]=l;continue}}while(0);c[(c[o>>2]|0)+12>>2]=(c[r>>2]|0)-(c[t>>2]|0);u=c[r>>2]|0;c[r>>2]=u+1;a[u>>0]=0}else{b:do if((d[(c[o>>2]|0)+10>>0]|0|0)==2)while(1){if((c[s>>2]|0)>>>0>=(c[u>>2]|0)>>>0)break b;m=c[s>>2]|0;c[s>>2]=m+1;c[q>>2]=d[m>>0];m=c[s>>2]|0;c[s>>2]=m+1;c[q>>2]=(c[q>>2]|0)+((d[m>>0]|0)<<8);if((c[q>>2]|0)>>>0>=55296&(c[q>>2]|0)>>>0<57344?(c[s>>2]|0)>>>0<(c[u>>2]|0)>>>0:0){m=c[s>>2]|0;c[s>>2]=m+1;c[l>>2]=d[m>>0];m=c[s>>2]|0;c[s>>2]=m+1;c[l>>2]=(c[l>>2]|0)+((d[m>>0]|0)<<8);c[q>>2]=(c[l>>2]&1023)+((c[q>>2]&63)<<10)+((c[q>>2]&960)+64<<10)}g=c[q>>2]|0;if((c[q>>2]|0)>>>0<128){m=c[r>>2]|0;c[r>>2]=m+1;a[m>>0]=g;continue}f=c[q>>2]|0;if(g>>>0<2048){k=c[r>>2]|0;c[r>>2]=k+1;a[k>>0]=192+(f>>>6&31);k=128+(c[q>>2]&63)&255;m=c[r>>2]|0;c[r>>2]=m+1;a[m>>0]=k;continue}g=c[q>>2]|0;if(f>>>0<65536){m=c[r>>2]|0;c[r>>2]=m+1;a[m>>0]=224+(g>>>12&15);m=128+((c[q>>2]|0)>>>6&63)&255;k=c[r>>2]|0;c[r>>2]=k+1;a[k>>0]=m;k=128+(c[q>>2]&63)&255;m=c[r>>2]|0;c[r>>2]=m+1;a[m>>0]=k;continue}else{k=c[r>>2]|0;c[r>>2]=k+1;a[k>>0]=240+(g>>>18&7);k=128+((c[q>>2]|0)>>>12&63)&255;m=c[r>>2]|0;c[r>>2]=m+1;a[m>>0]=k;m=128+((c[q>>2]|0)>>>6&63)&255;k=c[r>>2]|0;c[r>>2]=k+1;a[k>>0]=m;k=128+(c[q>>2]&63)&255;m=c[r>>2]|0;c[r>>2]=m+1;a[m>>0]=k;continue}}else while(1){if((c[s>>2]|0)>>>0>=(c[u>>2]|0)>>>0)break b;l=c[s>>2]|0;c[s>>2]=l+1;c[q>>2]=(d[l>>0]|0)<<8;l=c[s>>2]|0;c[s>>2]=l+1;c[q>>2]=(c[q>>2]|0)+(d[l>>0]|0);if((c[q>>2]|0)>>>0>=55296&(c[q>>2]|0)>>>0<57344?(c[s>>2]|0)>>>0<(c[u>>2]|0)>>>0:0){l=c[s>>2]|0;c[s>>2]=l+1;c[m>>2]=(d[l>>0]|0)<<8;l=c[s>>2]|0;c[s>>2]=l+1;c[m>>2]=(c[m>>2]|0)+(d[l>>0]|0);c[q>>2]=(c[m>>2]&1023)+((c[q>>2]&63)<<10)+((c[q>>2]&960)+64<<10)}g=c[q>>2]|0;if((c[q>>2]|0)>>>0<128){l=c[r>>2]|0;c[r>>2]=l+1;a[l>>0]=g;continue}f=c[q>>2]|0;if(g>>>0<2048){k=c[r>>2]|0;c[r>>2]=k+1;a[k>>0]=192+(f>>>6&31);k=128+(c[q>>2]&63)&255;l=c[r>>2]|0;c[r>>2]=l+1;a[l>>0]=k;continue}g=c[q>>2]|0;if(f>>>0<65536){l=c[r>>2]|0;c[r>>2]=l+1;a[l>>0]=224+(g>>>12&15);l=128+((c[q>>2]|0)>>>6&63)&255;k=c[r>>2]|0;c[r>>2]=k+1;a[k>>0]=l;k=128+(c[q>>2]&63)&255;l=c[r>>2]|0;c[r>>2]=l+1;a[l>>0]=k;continue}else{k=c[r>>2]|0;c[r>>2]=k+1;a[k>>0]=240+(g>>>18&7);k=128+((c[q>>2]|0)>>>12&63)&255;l=c[r>>2]|0;c[r>>2]=l+1;a[l>>0]=k;l=128+((c[q>>2]|0)>>>6&63)&255;k=c[r>>2]|0;c[r>>2]=k+1;a[k>>0]=l;k=128+(c[q>>2]&63)&255;l=c[r>>2]|0;c[r>>2]=l+1;a[l>>0]=k;continue}}while(0);c[(c[o>>2]|0)+12>>2]=(c[r>>2]|0)-(c[t>>2]|0)}a[c[r>>2]>>0]=0;c[q>>2]=e[(c[o>>2]|0)+8>>1];Ug(c[o>>2]|0);b[(c[o>>2]|0)+8>>1]=514|c[q>>2]&32799;a[(c[o>>2]|0)+10>>0]=a[p>>0]|0;c[(c[o>>2]|0)+16>>2]=c[t>>2];c[(c[o>>2]|0)+20>>2]=c[(c[o>>2]|0)+16>>2];u=$t(c[(c[o>>2]|0)+32>>2]|0,c[(c[o>>2]|0)+16>>2]|0)|0;c[(c[o>>2]|0)+24>>2]=u}c[n>>2]=0;u=c[n>>2]|0;i=v;return u|0}function $t(a,b){a=a|0;b=b|0;var d=0,f=0,g=0,h=0;h=i;i=i+16|0;d=h+8|0;f=h+4|0;g=h;c[f>>2]=a;c[g>>2]=b;if((c[f>>2]|0)!=0?(au(c[f>>2]|0,c[g>>2]|0)|0)!=0:0){c[d>>2]=e[(c[f>>2]|0)+248+4>>1];b=c[d>>2]|0;i=h;return b|0}c[d>>2]=Tb[c[56>>2]&255](c[g>>2]|0)|0;b=c[d>>2]|0;i=h;return b|0}function au(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f+4|0;e=f;c[d>>2]=a;c[e>>2]=b;if((c[e>>2]|0)>>>0<(c[(c[d>>2]|0)+248+32>>2]|0)>>>0){b=0;b=b&1;i=f;return b|0}b=(c[e>>2]|0)>>>0<(c[(c[d>>2]|0)+248+36>>2]|0)>>>0;b=b&1;i=f;return b|0}function bu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=i;i=i+16|0;d=f+8|0;g=f+4|0;e=f;c[d>>2]=a;c[g>>2]=b;c[e>>2]=c[(c[g>>2]|0)+28>>2];if(!(c[e>>2]|0)){i=f;return}g=c[e>>2]|0;c[g>>2]=(c[g>>2]|0)+-1;if(c[c[e>>2]>>2]|0){i=f;return}Qb[c[(c[e>>2]|0)+4>>2]&255](c[(c[e>>2]|0)+8>>2]|0);Sf(c[d>>2]|0,c[e>>2]|0);i=f;return}function cu(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;b=k+20|0;e=k+16|0;f=k+12|0;h=k+8|0;j=k+4|0;g=k;c[b>>2]=a;Nf(c[b>>2]|0);c[e>>2]=0;while(1){if((c[e>>2]|0)>=(c[(c[b>>2]|0)+20>>2]|0))break;c[h>>2]=c[(c[(c[b>>2]|0)+16>>2]|0)+(c[e>>2]<<4)+12>>2];a:do if(c[(c[(c[b>>2]|0)+16>>2]|0)+(c[e>>2]<<4)+12>>2]|0){c[f>>2]=c[(c[h>>2]|0)+8+8>>2];while(1){if(!(c[f>>2]|0))break a;c[j>>2]=c[(c[f>>2]|0)+8>>2];if((d[(c[j>>2]|0)+42>>0]|0)&16)iu(c[b>>2]|0,c[j>>2]|0);c[f>>2]=c[c[f>>2]>>2]}}while(0);c[e>>2]=(c[e>>2]|0)+1}c[f>>2]=c[(c[b>>2]|0)+312+8>>2];while(1){if(!(c[f>>2]|0))break;c[g>>2]=c[(c[f>>2]|0)+8>>2];if(c[(c[g>>2]|0)+16>>2]|0)iu(c[b>>2]|0,c[(c[g>>2]|0)+16>>2]|0);c[f>>2]=c[c[f>>2]>>2]}ju(c[b>>2]|0);i=k;return}function du(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;gu(c[d>>2]|0,68);i=b;return 0}function eu(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=i;i=i+16|0;f=g+12|0;b=g+8|0;d=g+4|0;e=g;c[b>>2]=a;if(c[(c[b>>2]|0)+4>>2]|0){c[f>>2]=1;f=c[f>>2]|0;i=g;return f|0}c[d>>2]=0;while(1){if((c[d>>2]|0)>=(c[(c[b>>2]|0)+20>>2]|0)){b=9;break}c[e>>2]=c[(c[(c[b>>2]|0)+16>>2]|0)+(c[d>>2]<<4)+4>>2];if((c[e>>2]|0)!=0?(fu(c[e>>2]|0)|0)!=0:0){b=7;break}c[d>>2]=(c[d>>2]|0)+1}if((b|0)==7){c[f>>2]=1;f=c[f>>2]|0;i=g;return f|0}else if((b|0)==9){c[f>>2]=0;f=c[f>>2]|0;i=g;return f|0}return 0}function fu(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return(c[(c[b>>2]|0)+16>>2]|0)!=0|0}function gu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;d=l+24|0;e=l+20|0;g=l+16|0;f=l+12|0;j=l+8|0;h=l+4|0;k=l;c[d>>2]=a;c[e>>2]=b;if(!(c[(c[d>>2]|0)+332>>2]|0)){i=l;return}c[f>>2]=c[(c[d>>2]|0)+332>>2];c[(c[d>>2]|0)+332>>2]=0;c[g>>2]=0;while(1){if((c[g>>2]|0)>=(c[(c[d>>2]|0)+308>>2]|0))break;c[j>>2]=c[(c[f>>2]|0)+(c[g>>2]<<2)>>2];c[h>>2]=c[(c[j>>2]|0)+8>>2];if((c[h>>2]|0)!=0?(c[k>>2]=c[(c[c[h>>2]>>2]|0)+(c[e>>2]|0)>>2],(c[k>>2]|0)!=0):0)Tb[c[k>>2]&255](c[h>>2]|0)|0;c[(c[j>>2]|0)+20>>2]=0;hu(c[j>>2]|0);c[g>>2]=(c[g>>2]|0)+1}Sf(c[d>>2]|0,c[f>>2]|0);c[(c[d>>2]|0)+308>>2]=0;i=l;return}function hu(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;b=f+8|0;d=f+4|0;e=f;c[b>>2]=a;c[d>>2]=c[c[b>>2]>>2];a=(c[b>>2]|0)+12|0;c[a>>2]=(c[a>>2]|0)+-1;if(c[(c[b>>2]|0)+12>>2]|0){i=f;return}c[e>>2]=c[(c[b>>2]|0)+8>>2];if(c[e>>2]|0)Tb[c[(c[c[e>>2]>>2]|0)+16>>2]&255](c[e>>2]|0)|0;Sf(c[d>>2]|0,c[b>>2]|0);i=f;return}function iu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;h=i;i=i+16|0;d=h+12|0;j=h+8|0;f=h+4|0;e=h;c[d>>2]=a;c[j>>2]=b;c[f>>2]=(c[j>>2]|0)+56;while(1){if(!(c[c[f>>2]>>2]|0)){g=6;break}a=c[c[f>>2]>>2]|0;if((c[c[c[f>>2]>>2]>>2]|0)==(c[d>>2]|0))break;c[f>>2]=a+24}if((g|0)==6){i=h;return}c[e>>2]=a;c[c[f>>2]>>2]=c[(c[e>>2]|0)+24>>2];hu(c[e>>2]|0);i=h;return}function ju(a){a=a|0;var b=0,d=0,e=0,f=0;f=i;i=i+16|0;b=f+8|0;d=f+4|0;e=f;c[b>>2]=a;c[d>>2]=c[(c[b>>2]|0)+336>>2];c[(c[b>>2]|0)+336>>2]=0;if(!(c[d>>2]|0)){i=f;return}Oh(c[b>>2]|0);do{c[e>>2]=c[(c[d>>2]|0)+24>>2];hu(c[d>>2]|0);c[d>>2]=c[e>>2]}while((c[d>>2]|0)!=0);i=f;return}function ku(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;Qb[c[160>>2]&255](c[(c[d>>2]|0)+44>>2]|0);i=b;return}function lu(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;c[d>>2]=a;a=1584;b=a+100|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(b|0));c[410]=(c[53]|0)==0&1;if((c[410]|0)!=0&(c[55]|0)!=0&(c[53]|0)==0){c[411]=c[55];c[399]=10;c[409]=1;i=d;return 0}else{c[411]=0;c[399]=10;c[409]=1;i=d;return 0}return 0}function mu(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;c[d>>2]=a;a=1584;b=a+100|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(b|0));i=d;return}function nu(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+32|0;g=m+20|0;h=m+16|0;j=m+12|0;k=m+8|0;l=m+4|0;n=m;c[g>>2]=b;c[h>>2]=e;c[j>>2]=f;c[n>>2]=60+((c[410]|0)*52|0);b=c[n>>2]|0;c[k>>2]=ig(b,((b|0)<0)<<31>>31)|0;if(!(c[k>>2]|0)){n=c[k>>2]|0;i=m;return n|0}if(c[410]|0){c[l>>2]=(c[k>>2]|0)+60;c[(c[l>>2]|0)+12>>2]=10}else c[l>>2]=1584;if(!(d[(c[l>>2]|0)+20+14>>0]|0)){a[(c[l>>2]|0)+20+14>>0]=1;n=(c[l>>2]|0)+20|0;c[(c[l>>2]|0)+20+24>>2]=n;c[(c[l>>2]|0)+20+28>>2]=n}c[c[k>>2]>>2]=c[l>>2];c[(c[k>>2]|0)+4>>2]=c[g>>2];c[(c[k>>2]|0)+8>>2]=c[h>>2];c[(c[k>>2]|0)+12>>2]=(c[g>>2]|0)+(c[h>>2]|0)+32;c[(c[k>>2]|0)+16>>2]=(c[j>>2]|0)!=0?1:0;Eu(c[k>>2]|0);if(c[j>>2]|0){c[(c[k>>2]|0)+20>>2]=10;n=(c[l>>2]|0)+8|0;c[n>>2]=(c[n>>2]|0)+(c[(c[k>>2]|0)+20>>2]|0);c[(c[l>>2]|0)+12>>2]=(c[(c[l>>2]|0)+4>>2]|0)+10-(c[(c[l>>2]|0)+8>>2]|0)}if(c[(c[k>>2]|0)+44>>2]|0){n=c[k>>2]|0;i=m;return n|0}uu(c[k>>2]|0);c[k>>2]=0;n=c[k>>2]|0;i=m;return n|0}function ou(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=i;i=i+16|0;h=g+12|0;d=g+8|0;e=g+4|0;f=g;c[h>>2]=a;c[d>>2]=b;c[e>>2]=c[h>>2];if(!(c[(c[e>>2]|0)+16>>2]|0)){i=g;return}c[f>>2]=c[c[e>>2]>>2];h=(c[f>>2]|0)+4|0;c[h>>2]=(c[h>>2]|0)+((c[d>>2]|0)-(c[(c[e>>2]|0)+24>>2]|0));c[(c[f>>2]|0)+12>>2]=(c[(c[f>>2]|0)+4>>2]|0)+10-(c[(c[f>>2]|0)+8>>2]|0);c[(c[e>>2]|0)+24>>2]=c[d>>2];c[(c[e>>2]|0)+28>>2]=(((c[(c[e>>2]|0)+24>>2]|0)*9|0)>>>0)/10|0;wu(c[e>>2]|0);i=g;return}function pu(a){a=a|0;var b=0,d=0,e=0,f=0;d=i;i=i+16|0;f=d+8|0;b=d+4|0;e=d;c[f>>2]=a;c[e>>2]=c[f>>2];c[b>>2]=c[(c[e>>2]|0)+40>>2];i=d;return c[b>>2]|0}function qu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;h=e+8|0;g=e+4|0;f=e;c[h>>2]=a;c[g>>2]=b;c[f>>2]=d;a=Bu(c[h>>2]|0,c[g>>2]|0,c[f>>2]|0)|0;i=e;return a|0}function ru(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;k=i;i=i+32|0;n=k+24|0;m=k+20|0;l=k+16|0;f=k+12|0;h=k+8|0;g=k+4|0;j=k;c[n>>2]=b;c[m>>2]=d;c[l>>2]=e;c[f>>2]=c[n>>2];c[h>>2]=c[m>>2];c[g>>2]=c[c[f>>2]>>2];if((c[l>>2]|0)==0?(c[(c[g>>2]|0)+16>>2]|0)>>>0<=(c[(c[g>>2]|0)+4>>2]|0)>>>0:0){c[j>>2]=(c[g>>2]|0)+20+24;c[(c[h>>2]|0)+28>>2]=(c[g>>2]|0)+20;m=c[h>>2]|0;n=c[c[j>>2]>>2]|0;c[(c[h>>2]|0)+24>>2]=n;c[n+28>>2]=m;c[c[j>>2]>>2]=c[h>>2];n=(c[f>>2]|0)+36|0;c[n>>2]=(c[n>>2]|0)+1;a[(c[h>>2]|0)+12>>0]=0;i=k;return}yu(c[h>>2]|0,1);
  81. i=k;return}function su(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;l=i;i=i+32|0;o=l+28|0;n=l+24|0;m=l+20|0;f=l+16|0;h=l+12|0;j=l+8|0;k=l+4|0;g=l;c[o>>2]=a;c[n>>2]=b;c[m>>2]=d;c[f>>2]=e;c[h>>2]=c[o>>2];c[j>>2]=c[n>>2];c[g>>2]=((c[m>>2]|0)>>>0)%((c[(c[h>>2]|0)+44>>2]|0)>>>0)|0;c[k>>2]=(c[(c[h>>2]|0)+48>>2]|0)+(c[g>>2]<<2);while(1){if((c[c[k>>2]>>2]|0)==(c[j>>2]|0))break;c[k>>2]=(c[c[k>>2]>>2]|0)+16}c[c[k>>2]>>2]=c[(c[j>>2]|0)+16>>2];c[g>>2]=((c[f>>2]|0)>>>0)%((c[(c[h>>2]|0)+44>>2]|0)>>>0)|0;c[(c[j>>2]|0)+8>>2]=c[f>>2];c[(c[j>>2]|0)+16>>2]=c[(c[(c[h>>2]|0)+48>>2]|0)+(c[g>>2]<<2)>>2];c[(c[(c[h>>2]|0)+48>>2]|0)+(c[g>>2]<<2)>>2]=c[j>>2];if((c[f>>2]|0)>>>0<=(c[(c[h>>2]|0)+32>>2]|0)>>>0){i=l;return}c[(c[h>>2]|0)+32>>2]=c[f>>2];i=l;return}function tu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=i;i=i+16|0;g=f+8|0;d=f+4|0;e=f;c[g>>2]=a;c[d>>2]=b;c[e>>2]=c[g>>2];if((c[d>>2]|0)>>>0>(c[(c[e>>2]|0)+32>>2]|0)>>>0){i=f;return}Au(c[e>>2]|0,c[d>>2]|0);c[(c[e>>2]|0)+32>>2]=(c[d>>2]|0)-1;i=f;return}function uu(a){a=a|0;var b=0,d=0,e=0,f=0;b=i;i=i+16|0;f=b+8|0;d=b+4|0;e=b;c[f>>2]=a;c[d>>2]=c[f>>2];c[e>>2]=c[c[d>>2]>>2];Au(c[d>>2]|0,0);a=(c[e>>2]|0)+4|0;c[a>>2]=(c[a>>2]|0)-(c[(c[d>>2]|0)+24>>2]|0);a=(c[e>>2]|0)+8|0;c[a>>2]=(c[a>>2]|0)-(c[(c[d>>2]|0)+20>>2]|0);c[(c[e>>2]|0)+12>>2]=(c[(c[e>>2]|0)+4>>2]|0)+10-(c[(c[e>>2]|0)+8>>2]|0);wu(c[d>>2]|0);Kd(c[(c[d>>2]|0)+56>>2]|0);Kd(c[(c[d>>2]|0)+48>>2]|0);Kd(c[d>>2]|0);i=b;return}function vu(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=i;i=i+16|0;g=f+12|0;b=f+8|0;d=f+4|0;e=f;c[g>>2]=a;c[b>>2]=c[g>>2];if(!(c[(c[b>>2]|0)+16>>2]|0)){i=f;return}c[d>>2]=c[c[b>>2]>>2];c[e>>2]=c[(c[d>>2]|0)+4>>2];c[(c[d>>2]|0)+4>>2]=0;wu(c[b>>2]|0);c[(c[d>>2]|0)+4>>2]=c[e>>2];i=f;return}function wu(a){a=a|0;var b=0,e=0,f=0,g=0;g=i;i=i+16|0;b=g+8|0;f=g+4|0;e=g;c[b>>2]=a;c[f>>2]=c[c[b>>2]>>2];while(1){if((c[(c[f>>2]|0)+16>>2]|0)>>>0<=(c[(c[f>>2]|0)+4>>2]|0)>>>0)break;a=c[(c[f>>2]|0)+20+28>>2]|0;c[e>>2]=a;if(d[a+14>>0]|0)break;xu(c[e>>2]|0)|0;yu(c[e>>2]|0,1)}if(c[(c[b>>2]|0)+40>>2]|0){i=g;return}if(!(c[(c[b>>2]|0)+56>>2]|0)){i=g;return}Kd(c[(c[b>>2]|0)+56>>2]|0);c[(c[b>>2]|0)+52>>2]=0;c[(c[b>>2]|0)+56>>2]=0;i=g;return}function xu(b){b=b|0;var d=0,e=0,f=0;e=i;i=i+16|0;d=e+4|0;f=e;c[d>>2]=b;c[f>>2]=c[(c[d>>2]|0)+20>>2];c[(c[(c[d>>2]|0)+28>>2]|0)+24>>2]=c[(c[d>>2]|0)+24>>2];c[(c[(c[d>>2]|0)+24>>2]|0)+28>>2]=c[(c[d>>2]|0)+28>>2];c[(c[d>>2]|0)+24>>2]=0;c[(c[d>>2]|0)+28>>2]=0;a[(c[d>>2]|0)+12>>0]=1;b=(c[f>>2]|0)+36|0;c[b>>2]=(c[b>>2]|0)+-1;i=e;return c[d>>2]|0}function yu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;h=i;i=i+32|0;d=h+16|0;e=h+12|0;j=h+8|0;f=h+4|0;g=h;c[d>>2]=a;c[e>>2]=b;c[f>>2]=c[(c[d>>2]|0)+20>>2];c[j>>2]=((c[(c[d>>2]|0)+8>>2]|0)>>>0)%((c[(c[f>>2]|0)+44>>2]|0)>>>0)|0;c[g>>2]=(c[(c[f>>2]|0)+48>>2]|0)+(c[j>>2]<<2);while(1){b=(c[c[g>>2]>>2]|0)+16|0;if((c[c[g>>2]>>2]|0)==(c[d>>2]|0))break;c[g>>2]=b}c[c[g>>2]>>2]=c[b>>2];j=(c[f>>2]|0)+40|0;c[j>>2]=(c[j>>2]|0)+-1;if(!(c[e>>2]|0)){i=h;return}zu(c[d>>2]|0);i=h;return}function zu(b){b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f+4|0;e=f;c[d>>2]=b;c[e>>2]=c[(c[d>>2]|0)+20>>2];if(a[(c[d>>2]|0)+13>>0]|0){c[(c[d>>2]|0)+16>>2]=c[(c[e>>2]|0)+52>>2];c[(c[e>>2]|0)+52>>2]=c[d>>2]}else Yi(c[c[d>>2]>>2]|0);if(!(c[(c[e>>2]|0)+16>>2]|0)){i=f;return}e=(c[c[e>>2]>>2]|0)+16|0;c[e>>2]=(c[e>>2]|0)+-1;i=f;return}function Au(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+16|0;f=k+12|0;g=k+8|0;j=k+4|0;h=k;c[e>>2]=b;c[f>>2]=d;c[g>>2]=0;while(1){if((c[g>>2]|0)>>>0>=(c[(c[e>>2]|0)+44>>2]|0)>>>0)break;c[j>>2]=(c[(c[e>>2]|0)+48>>2]|0)+(c[g>>2]<<2);while(1){b=c[c[j>>2]>>2]|0;c[h>>2]=b;if(!b)break;if((c[(c[h>>2]|0)+8>>2]|0)>>>0<(c[f>>2]|0)>>>0){c[j>>2]=(c[h>>2]|0)+16;continue}b=(c[e>>2]|0)+40|0;c[b>>2]=(c[b>>2]|0)+-1;c[c[j>>2]>>2]=c[(c[h>>2]|0)+16>>2];if(!(a[(c[h>>2]|0)+12>>0]|0))xu(c[h>>2]|0)|0;zu(c[h>>2]|0)}c[g>>2]=(c[g>>2]|0)+1}i=k;return}function Bu(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;l=i;i=i+32|0;j=l+20|0;m=l+16|0;f=l+12|0;g=l+8|0;h=l+4|0;k=l;c[m>>2]=b;c[f>>2]=d;c[g>>2]=e;c[h>>2]=c[m>>2];c[k>>2]=0;c[k>>2]=c[(c[(c[h>>2]|0)+48>>2]|0)+((((c[f>>2]|0)>>>0)%((c[(c[h>>2]|0)+44>>2]|0)>>>0)|0)<<2)>>2];while(1){if(c[k>>2]|0)d=(c[(c[k>>2]|0)+8>>2]|0)!=(c[f>>2]|0);else d=0;e=c[k>>2]|0;if(!d)break;c[k>>2]=c[e+16>>2]}if(e){e=c[k>>2]|0;if(a[(c[k>>2]|0)+12>>0]|0){c[j>>2]=e;m=c[j>>2]|0;i=l;return m|0}else{c[j>>2]=xu(e)|0;m=c[j>>2]|0;i=l;return m|0}}else if(c[g>>2]|0){c[j>>2]=Cu(c[h>>2]|0,c[f>>2]|0,c[g>>2]|0)|0;m=c[j>>2]|0;i=l;return m|0}else{c[j>>2]=0;m=c[j>>2]|0;i=l;return m|0}return 0}function Cu(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+48|0;f=p+32|0;g=p+28|0;h=p+24|0;j=p+20|0;l=p+16|0;m=p+12|0;o=p+8|0;n=p+4|0;k=p;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[m>>2]=c[c[g>>2]>>2];c[o>>2]=0;c[l>>2]=(c[(c[g>>2]|0)+40>>2]|0)-(c[(c[g>>2]|0)+36>>2]|0);do if((c[j>>2]|0)==1){if((c[l>>2]|0)>>>0<(c[(c[m>>2]|0)+12>>2]|0)>>>0?(c[l>>2]|0)>>>0<(c[(c[g>>2]|0)+28>>2]|0)>>>0:0){if(!(Du(c[g>>2]|0)|0))break;if((c[(c[g>>2]|0)+36>>2]|0)>>>0>=(c[l>>2]|0)>>>0)break}c[f>>2]=0;o=c[f>>2]|0;i=p;return o|0}while(0);if((c[(c[g>>2]|0)+40>>2]|0)>>>0>=(c[(c[g>>2]|0)+44>>2]|0)>>>0)Eu(c[g>>2]|0);do if((c[(c[g>>2]|0)+16>>2]|0)!=0?(a[(c[(c[m>>2]|0)+20+28>>2]|0)+14>>0]|0)==0:0){if(((c[(c[g>>2]|0)+40>>2]|0)+1|0)>>>0<(c[(c[g>>2]|0)+24>>2]|0)>>>0?(Du(c[g>>2]|0)|0)==0:0)break;c[o>>2]=c[(c[m>>2]|0)+20+28>>2];yu(c[o>>2]|0,0);xu(c[o>>2]|0)|0;c[n>>2]=c[(c[o>>2]|0)+20>>2];if((c[(c[n>>2]|0)+12>>2]|0)!=(c[(c[g>>2]|0)+12>>2]|0)){zu(c[o>>2]|0);c[o>>2]=0;break}else{m=(c[m>>2]|0)+16|0;c[m>>2]=(c[m>>2]|0)-((c[(c[n>>2]|0)+16>>2]|0)-(c[(c[g>>2]|0)+16>>2]|0));break}}while(0);if(!(c[o>>2]|0))c[o>>2]=Fu(c[g>>2]|0,(c[j>>2]|0)==1&1)|0;if((c[o>>2]|0)!=0?(c[k>>2]=((c[h>>2]|0)>>>0)%((c[(c[g>>2]|0)+44>>2]|0)>>>0)|0,n=(c[g>>2]|0)+40|0,c[n>>2]=(c[n>>2]|0)+1,c[(c[o>>2]|0)+8>>2]=c[h>>2],c[(c[o>>2]|0)+16>>2]=c[(c[(c[g>>2]|0)+48>>2]|0)+(c[k>>2]<<2)>>2],c[(c[o>>2]|0)+20>>2]=c[g>>2],c[(c[o>>2]|0)+28>>2]=0,c[(c[o>>2]|0)+24>>2]=0,a[(c[o>>2]|0)+12>>0]=1,c[c[(c[o>>2]|0)+4>>2]>>2]=0,c[(c[(c[g>>2]|0)+48>>2]|0)+(c[k>>2]<<2)>>2]=c[o>>2],(c[h>>2]|0)>>>0>(c[(c[g>>2]|0)+32>>2]|0)>>>0):0)c[(c[g>>2]|0)+32>>2]=c[h>>2];c[f>>2]=c[o>>2];o=c[f>>2]|0;i=p;return o|0}function Du(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;b=d+4|0;e=d;c[e>>2]=a;if((c[413]|0)!=0?((c[(c[e>>2]|0)+4>>2]|0)+(c[(c[e>>2]|0)+8>>2]|0)|0)<=(c[412]|0):0){c[b>>2]=c[420];e=c[b>>2]|0;i=d;return e|0}c[b>>2]=Hu()|0;e=c[b>>2]|0;i=d;return e|0}function Eu(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;b=k+24|0;d=k+20|0;g=k+16|0;f=k+12|0;j=k+8|0;h=k+4|0;e=k;c[b>>2]=a;a=c[(c[b>>2]|0)+44>>2]<<1;c[g>>2]=a;c[g>>2]=(c[g>>2]|0)>>>0<256?256:a;if(c[(c[b>>2]|0)+44>>2]|0)Sj();c[d>>2]=ig(c[g>>2]<<2,0)|0;if(c[(c[b>>2]|0)+44>>2]|0)Tj();if(!(c[d>>2]|0)){i=k;return}c[f>>2]=0;while(1){if((c[f>>2]|0)>>>0>=(c[(c[b>>2]|0)+44>>2]|0)>>>0)break;c[h>>2]=c[(c[(c[b>>2]|0)+48>>2]|0)+(c[f>>2]<<2)>>2];while(1){a=c[h>>2]|0;c[j>>2]=a;if(!a)break;c[e>>2]=((c[(c[j>>2]|0)+8>>2]|0)>>>0)%((c[g>>2]|0)>>>0)|0;c[h>>2]=c[(c[j>>2]|0)+16>>2];c[(c[j>>2]|0)+16>>2]=c[(c[d>>2]|0)+(c[e>>2]<<2)>>2];c[(c[d>>2]|0)+(c[e>>2]<<2)>>2]=c[j>>2]}c[f>>2]=(c[f>>2]|0)+1}Kd(c[(c[b>>2]|0)+48>>2]|0);c[(c[b>>2]|0)+48>>2]=c[d>>2];c[(c[b>>2]|0)+44>>2]=c[g>>2];i=k;return}function Fu(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;e=l+16|0;f=l+12|0;g=l+8|0;h=l+4|0;j=l;c[f>>2]=b;c[g>>2]=d;c[h>>2]=0;do if(c[(c[f>>2]|0)+52>>2]|0)k=4;else{if((c[(c[f>>2]|0)+40>>2]|0)==0?(Gu(c[f>>2]|0)|0)!=0:0){k=4;break}if(c[g>>2]|0)Sj();c[j>>2]=ej(c[(c[f>>2]|0)+12>>2]|0)|0;c[h>>2]=(c[j>>2]|0)+(c[(c[f>>2]|0)+4>>2]|0);if(c[g>>2]|0)Tj();if(c[j>>2]|0){c[c[h>>2]>>2]=c[j>>2];c[(c[h>>2]|0)+4>>2]=(c[h>>2]|0)+32;a[(c[h>>2]|0)+13>>0]=0;a[(c[h>>2]|0)+14>>0]=0;break}c[e>>2]=0;k=c[e>>2]|0;i=l;return k|0}while(0);if((k|0)==4){c[h>>2]=c[(c[f>>2]|0)+52>>2];c[(c[f>>2]|0)+52>>2]=c[(c[h>>2]|0)+16>>2];c[(c[h>>2]|0)+16>>2]=0}if(c[(c[f>>2]|0)+16>>2]|0){k=(c[c[f>>2]>>2]|0)+16|0;c[k>>2]=(c[k>>2]|0)+1}c[e>>2]=c[h>>2];k=c[e>>2]|0;i=l;return k|0}function Gu(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;l=i;i=i+32|0;d=l+28|0;e=l+24|0;j=l;k=l+20|0;g=l+16|0;f=l+12|0;h=l+8|0;c[e>>2]=b;if(!(c[411]|0)){c[d>>2]=0;k=c[d>>2]|0;i=l;return k|0}if((c[(c[e>>2]|0)+24>>2]|0)>>>0<3){c[d>>2]=0;k=c[d>>2]|0;i=l;return k|0}Sj();if((c[411]|0)>0){b=c[(c[e>>2]|0)+12>>2]|0;m=c[411]|0;m=rR(b|0,((b|0)<0)<<31>>31|0,m|0,((m|0)<0)<<31>>31|0)|0;b=j;c[b>>2]=m;c[b+4>>2]=C}else{b=c[411]|0;b=rR(-1024,-1,b|0,((b|0)<0)<<31>>31|0)|0;m=j;c[m>>2]=b;c[m+4>>2]=C}o=j;b=c[o>>2]|0;o=c[o+4>>2]|0;m=c[(c[e>>2]|0)+12>>2]|0;m=rR(m|0,((m|0)<0)<<31>>31|0,c[(c[e>>2]|0)+24>>2]|0,0)|0;n=C;if((o|0)>(n|0)|(o|0)==(n|0)&b>>>0>m>>>0){o=j;c[o>>2]=_(c[(c[e>>2]|0)+12>>2]|0,c[(c[e>>2]|0)+24>>2]|0)|0;c[o+4>>2]=0}o=j;o=_f(c[o>>2]|0,c[o+4>>2]|0)|0;c[(c[e>>2]|0)+56>>2]=o;c[k>>2]=o;Tj();a:do if(c[k>>2]|0){o=$f(c[k>>2]|0)|0;c[g>>2]=(o|0)/(c[(c[e>>2]|0)+12>>2]|0)|0;c[f>>2]=0;while(1){if((c[f>>2]|0)>=(c[g>>2]|0))break a;c[h>>2]=(c[k>>2]|0)+(c[(c[e>>2]|0)+4>>2]|0);c[c[h>>2]>>2]=c[k>>2];c[(c[h>>2]|0)+4>>2]=(c[h>>2]|0)+32;a[(c[h>>2]|0)+13>>0]=1;a[(c[h>>2]|0)+14>>0]=0;c[(c[h>>2]|0)+16>>2]=c[(c[e>>2]|0)+52>>2];c[(c[e>>2]|0)+52>>2]=c[h>>2];c[k>>2]=(c[k>>2]|0)+(c[(c[e>>2]|0)+12>>2]|0);c[f>>2]=(c[f>>2]|0)+1}}while(0);c[d>>2]=(c[(c[e>>2]|0)+52>>2]|0)!=0&1;o=c[d>>2]|0;i=l;return o|0}function Hu(){return c[77]|0}function Iu(a){a=a|0;var b=0,d=0,e=0,f=0;e=i;i=i+16|0;d=e;f=e+8|0;b=e+4|0;c[f>>2]=a;c[f>>2]=(c[f>>2]|0)+7&-8;c[b>>2]=_Q((c[f>>2]|0)+8|0)|0;a=c[f>>2]|0;if(c[b>>2]|0){f=c[b>>2]|0;c[f>>2]=a;c[f+4>>2]=((a|0)<0)<<31>>31;c[b>>2]=(c[b>>2]|0)+8;f=c[b>>2]|0;i=e;return f|0}else{c[d>>2]=a;Rd(7,27278,d);f=c[b>>2]|0;i=e;return f|0}return 0}function Ju(a){a=a|0;var b=0,d=0,e=0;b=i;i=i+16|0;e=b+4|0;d=b;c[e>>2]=a;c[d>>2]=c[e>>2];c[d>>2]=(c[d>>2]|0)+-8;$Q(c[d>>2]|0);i=b;return}function Ku(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+32|0;g=h;d=h+16|0;e=h+12|0;f=h+8|0;c[d>>2]=a;c[e>>2]=b;c[f>>2]=c[d>>2];c[f>>2]=(c[f>>2]|0)+-8;c[f>>2]=bR(c[f>>2]|0,(c[e>>2]|0)+8|0)|0;if(c[f>>2]|0){a=c[e>>2]|0;g=c[f>>2]|0;c[g>>2]=a;c[g+4>>2]=((a|0)<0)<<31>>31;c[f>>2]=(c[f>>2]|0)+8;g=c[f>>2]|0;i=h;return g|0}else{b=Lu(c[d>>2]|0)|0;a=c[e>>2]|0;c[g>>2]=b;c[g+4>>2]=a;Rd(7,27242,g);g=c[f>>2]|0;i=h;return g|0}return 0}function Lu(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;c[b>>2]=c[e>>2];c[b>>2]=(c[b>>2]|0)+-8;i=d;return c[c[b>>2]>>2]|0}function Mu(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;i=d;return(c[b>>2]|0)+7&-8|0}function Nu(a){a=a|0;var b=0;b=i;i=i+16|0;c[b>>2]=a;i=b;return 0}function Ou(a){a=a|0;var b=0;b=i;i=i+16|0;c[b>>2]=a;i=b;return}function Pu(a){a=a|0;var b=0,d=0,e=0;d=i;i=i+16|0;e=d+4|0;b=d;c[e>>2]=a;c[b>>2]=Yb[c[e>>2]&255](1612,0)|0;if(!(c[b>>2]|0)){e=c[b>>2]|0;i=d;return e|0}c[c[b>>2]>>2]=-1;e=c[b>>2]|0;i=d;return e|0}function Qu(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;n=o+24|0;m=o+20|0;h=o+16|0;l=o+12|0;j=o+8|0;f=o+4|0;g=o;c[m>>2]=b;c[h>>2]=e;a:do switch(d[40089+(d[c[m>>2]>>0]|0)>>0]|0){case 7:{c[l>>2]=1;while(1){if(!(d[19267+(d[(c[m>>2]|0)+(c[l>>2]|0)>>0]|0)>>0]&1))break;c[l>>2]=(c[l>>2]|0)+1}c[c[h>>2]>>2]=159;c[n>>2]=c[l>>2];n=c[n>>2]|0;i=o;return n|0}case 11:{if((d[(c[m>>2]|0)+1>>0]|0)!=45){c[c[h>>2]>>2]=90;c[n>>2]=1;n=c[n>>2]|0;i=o;return n|0}c[l>>2]=2;while(1){k=d[(c[m>>2]|0)+(c[l>>2]|0)>>0]|0;c[j>>2]=k;if(!((k|0)!=0?(c[j>>2]|0)!=10:0))break;c[l>>2]=(c[l>>2]|0)+1}c[c[h>>2]>>2]=159;c[n>>2]=c[l>>2];n=c[n>>2]|0;i=o;return n|0}case 17:{c[c[h>>2]>>2]=22;c[n>>2]=1;n=c[n>>2]|0;i=o;return n|0}case 18:{c[c[h>>2]>>2]=23;c[n>>2]=1;n=c[n>>2]|0;i=o;return n|0}case 19:{c[c[h>>2]>>2]=1;c[n>>2]=1;n=c[n>>2]|0;i=o;return n|0}case 20:{c[c[h>>2]>>2]=89;c[n>>2]=1;n=c[n>>2]|0;i=o;return n|0}case 21:{c[c[h>>2]>>2]=91;c[n>>2]=1;n=c[n>>2]|0;i=o;return n|0}case 16:{if((d[(c[m>>2]|0)+1>>0]|0)==42?(d[(c[m>>2]|0)+2>>0]|0)!=0:0){c[l>>2]=3;c[j>>2]=d[(c[m>>2]|0)+2>>0];while(1){if((c[j>>2]|0)==42?(d[(c[m>>2]|0)+(c[l>>2]|0)>>0]|0)==47:0)break;k=d[(c[m>>2]|0)+(c[l>>2]|0)>>0]|0;c[j>>2]=k;if(!k)break;c[l>>2]=(c[l>>2]|0)+1}if(c[j>>2]|0)c[l>>2]=(c[l>>2]|0)+1;c[c[h>>2]>>2]=159;c[n>>2]=c[l>>2];n=c[n>>2]|0;i=o;return n|0}c[c[h>>2]>>2]=92;c[n>>2]=1;n=c[n>>2]|0;i=o;return n|0}case 22:{c[c[h>>2]>>2]=93;c[n>>2]=1;n=c[n>>2]|0;i=o;return n|0}case 14:{c[c[h>>2]>>2]=79;c[n>>2]=1+((d[(c[m>>2]|0)+1>>0]|0)==61&1);n=c[n>>2]|0;i=o;return n|0}case 12:{m=d[(c[m>>2]|0)+1>>0]|0;c[j>>2]=m;if((m|0)==61){c[c[h>>2]>>2]=81;c[n>>2]=2;n=c[n>>2]|0;i=o;return n|0}if((c[j>>2]|0)==62){c[c[h>>2]>>2]=78;c[n>>2]=2;n=c[n>>2]|0;i=o;return n|0}f=c[h>>2]|0;if((c[j>>2]|0)==60){c[f>>2]=87;c[n>>2]=2;n=c[n>>2]|0;i=o;return n|0}else{c[f>>2]=82;c[n>>2]=1;n=c[n>>2]|0;i=o;return n|0}}case 13:{m=d[(c[m>>2]|0)+1>>0]|0;c[j>>2]=m;if((m|0)==61){c[c[h>>2]>>2]=83;c[n>>2]=2;n=c[n>>2]|0;i=o;return n|0}f=c[h>>2]|0;if((c[j>>2]|0)==62){c[f>>2]=88;c[n>>2]=2;n=c[n>>2]|0;i=o;return n|0}else{c[f>>2]=80;c[n>>2]=1;n=c[n>>2]|0;i=o;return n|0}}case 15:{f=c[h>>2]|0;if((d[(c[m>>2]|0)+1>>0]|0)!=61){c[f>>2]=160;c[n>>2]=2;n=c[n>>2]|0;i=o;return n|0}else{c[f>>2]=78;c[n>>2]=2;n=c[n>>2]|0;i=o;return n|0}}case 10:{f=c[h>>2]|0;if((d[(c[m>>2]|0)+1>>0]|0)!=124){c[f>>2]=86;c[n>>2]=1;n=c[n>>2]|0;i=o;return n|0}else{c[f>>2]=94;c[n>>2]=2;n=c[n>>2]|0;i=o;return n|0}}case 23:{c[c[h>>2]>>2]=26;c[n>>2]=1;n=c[n>>2]|0;i=o;return n|0}case 24:{c[c[h>>2]>>2]=85;c[n>>2]=1;n=c[n>>2]|0;i=o;return n|0}case 25:{c[c[h>>2]>>2]=96;c[n>>2]=1;n=c[n>>2]|0;i=o;return n|0}case 8:{c[f>>2]=d[c[m>>2]>>0];c[l>>2]=1;while(1){k=d[(c[m>>2]|0)+(c[l>>2]|0)>>0]|0;c[j>>2]=k;if(!k)break;if((c[j>>2]|0)==(c[f>>2]|0)){if((d[(c[m>>2]|0)+((c[l>>2]|0)+1)>>0]|0)!=(c[f>>2]|0))break;c[l>>2]=(c[l>>2]|0)+1}c[l>>2]=(c[l>>2]|0)+1}if((c[j>>2]|0)==39){c[c[h>>2]>>2]=97;c[n>>2]=(c[l>>2]|0)+1;n=c[n>>2]|0;i=o;return n|0}f=c[h>>2]|0;if(c[j>>2]|0){c[f>>2]=27;c[n>>2]=(c[l>>2]|0)+1;n=c[n>>2]|0;i=o;return n|0}else{c[f>>2]=160;c[n>>2]=c[l>>2];n=c[n>>2]|0;i=o;return n|0}}case 26:{if(d[19267+(d[(c[m>>2]|0)+1>>0]|0)>>0]&4)k=64;else{c[c[h>>2]>>2]=122;c[n>>2]=1;n=c[n>>2]|0;i=o;return n|0}break}case 3:{k=64;break}case 9:{c[l>>2]=1;c[j>>2]=d[c[m>>2]>>0];while(1){if((c[j>>2]|0)==93)break;k=d[(c[m>>2]|0)+(c[l>>2]|0)>>0]|0;c[j>>2]=k;if(!k)break;c[l>>2]=(c[l>>2]|0)+1}c[c[h>>2]>>2]=(c[j>>2]|0)==93?27:160;c[n>>2]=c[l>>2];n=c[n>>2]|0;i=o;return n|0}case 6:{c[c[h>>2]>>2]=135;c[l>>2]=1;while(1){f=c[l>>2]|0;if(!(d[19267+(d[(c[m>>2]|0)+(c[l>>2]|0)>>0]|0)>>0]&4))break;c[l>>2]=f+1}c[n>>2]=f;n=c[n>>2]|0;i=o;return n|0}case 5:case 4:{c[g>>2]=0;c[c[h>>2]>>2]=135;c[l>>2]=1;while(1){b=d[(c[m>>2]|0)+(c[l>>2]|0)>>0]|0;c[j>>2]=b;if(!b)break;if(d[19267+(c[j>>2]&255)>>0]&70)c[g>>2]=(c[g>>2]|0)+1;else{if((c[j>>2]|0)==40&(c[g>>2]|0)>0){k=107;break}if((c[j>>2]|0)!=58)break;if((d[(c[m>>2]|0)+((c[l>>2]|0)+1)>>0]|0)!=58)break;c[l>>2]=(c[l>>2]|0)+1}c[l>>2]=(c[l>>2]|0)+1}do if((k|0)==107){while(1){c[l>>2]=(c[l>>2]|0)+1;k=d[(c[m>>2]|0)+(c[l>>2]|0)>>0]|0;c[j>>2]=k;if(!k)break;if((c[j>>2]|0)!=41?(d[19267+(c[j>>2]&255)>>0]&1|0)==0:0)k=107;else break}if((c[j>>2]|0)==41){c[l>>2]=(c[l>>2]|0)+1;break}else{c[c[h>>2]>>2]=160;break}}while(0);if(!(c[g>>2]|0))c[c[h>>2]>>2]=160;c[n>>2]=c[l>>2];n=c[n>>2]|0;i=o;return n|0}case 1:{c[l>>2]=1;while(1){f=c[l>>2]|0;if((d[40089+(d[(c[m>>2]|0)+(c[l>>2]|0)>>0]|0)>>0]|0)>1)break;c[l>>2]=f+1}if(d[19267+(d[(c[m>>2]|0)+f>>0]|0)>>0]&70){c[l>>2]=(c[l>>2]|0)+1;break a}c[c[h>>2]>>2]=27;c[n>>2]=Oi(c[m>>2]|0,c[l>>2]|0,c[h>>2]|0)|0;n=c[n>>2]|0;i=o;return n|0}case 0:{if((d[(c[m>>2]|0)+1>>0]|0)==39){c[c[h>>2]>>2]=134;c[l>>2]=2;while(1){f=c[l>>2]|0;if(!(d[19267+(d[(c[m>>2]|0)+(c[l>>2]|0)>>0]|0)>>0]&8))break;c[l>>2]=f+1}if(!((d[(c[m>>2]|0)+f>>0]|0)==39?((c[l>>2]|0)%2|0|0)==0:0))k=131;b:do if((k|0)==131){c[c[h>>2]>>2]=160;while(1){if(!(d[(c[m>>2]|0)+(c[l>>2]|0)>>0]|0))break b;if((d[(c[m>>2]|0)+(c[l>>2]|0)>>0]|0)==39)break b;c[l>>2]=(c[l>>2]|0)+1}}while(0);if(a[(c[m>>2]|0)+(c[l>>2]|0)>>0]|0)c[l>>2]=(c[l>>2]|0)+1;c[n>>2]=c[l>>2];n=c[n>>2]|0;i=o;return n|0}else k=138;break}case 2:{k=138;break}default:{c[c[h>>2]>>2]=160;c[n>>2]=1;n=c[n>>2]|0;i=o;return n|0}}while(0);if((k|0)==64){c[c[h>>2]>>2]=132;do if((d[c[m>>2]>>0]|0)==48){if((d[(c[m>>2]|0)+1>>0]|0)!=120?(d[(c[m>>2]|0)+1>>0]|0)!=88:0)break;if(d[19267+(d[(c[m>>2]|0)+2>>0]|0)>>0]&8){c[l>>2]=3;while(1){f=c[l>>2]|0;if(!(d[19267+(d[(c[m>>2]|0)+(c[l>>2]|0)>>0]|0)>>0]&8))break;c[l>>2]=f+1}c[n>>2]=f;n=c[n>>2]|0;i=o;return n|0}}while(0);c[l>>2]=0;while(1){f=c[l>>2]|0;if(!(d[19267+(d[(c[m>>2]|0)+(c[l>>2]|0)>>0]|0)>>0]&4))break;c[l>>2]=f+1}if((d[(c[m>>2]|0)+f>>0]|0)==46){c[l>>2]=(c[l>>2]|0)+1;while(1){if(!(d[19267+(d[(c[m>>2]|0)+(c[l>>2]|0)>>0]|0)>>0]&4))break;c[l>>2]=(c[l>>2]|0)+1}c[c[h>>2]>>2]=133}if(!((d[(c[m>>2]|0)+(c[l>>2]|0)>>0]|0)!=101?(d[(c[m>>2]|0)+(c[l>>2]|0)>>0]|0)!=69:0))k=82;do if((k|0)==82){if(!(d[19267+(d[(c[m>>2]|0)+((c[l>>2]|0)+1)>>0]|0)>>0]&4)){if((d[(c[m>>2]|0)+((c[l>>2]|0)+1)>>0]|0)!=43?(d[(c[m>>2]|0)+((c[l>>2]|0)+1)>>0]|0)!=45:0)break;if(!(d[19267+(d[(c[m>>2]|0)+((c[l>>2]|0)+2)>>0]|0)>>0]&4))break}c[l>>2]=(c[l>>2]|0)+2;while(1){if(!(d[19267+(d[(c[m>>2]|0)+(c[l>>2]|0)>>0]|0)>>0]&4))break;c[l>>2]=(c[l>>2]|0)+1}c[c[h>>2]>>2]=133}while(0);while(1){if(!(d[19267+(d[(c[m>>2]|0)+(c[l>>2]|0)>>0]|0)>>0]&70))break;c[c[h>>2]>>2]=160;c[l>>2]=(c[l>>2]|0)+1}c[n>>2]=c[l>>2];n=c[n>>2]|0;i=o;return n|0}else if((k|0)==138)c[l>>2]=1;while(1){if(!(d[19267+(d[(c[m>>2]|0)+(c[l>>2]|0)>>0]|0)>>0]&70))break;c[l>>2]=(c[l>>2]|0)+1}c[c[h>>2]>>2]=27;c[n>>2]=c[l>>2];n=c[n>>2]|0;i=o;return n|0}function Ru(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=i;i=i+48|0;m=o+32|0;p=o+28|0;j=o+24|0;h=o+20|0;l=o+8|0;k=o+4|0;n=o;c[p>>2]=d;c[j>>2]=e;c[h>>2]=g;c[n>>2]=c[p>>2];if((c[c[n>>2]>>2]|0)<0){c[c[n>>2]>>2]=0;c[(c[n>>2]|0)+4>>2]=-1;b[(c[n>>2]|0)+12>>1]=0;a[(c[n>>2]|0)+12+2>>0]=0}c[l>>2]=c[f>>2];c[l+4>>2]=c[f+4>>2];c[(c[n>>2]|0)+8>>2]=c[h>>2];while(1){c[k>>2]=cv(c[n>>2]|0,c[j>>2]&255)|0;h=c[k>>2]|0;do if((c[k>>2]|0)>976){g=c[n>>2]|0;if((h|0)<=1304){ev(g,(c[k>>2]|0)-977|0);break}else{p=c[j>>2]|0;c[m>>2]=c[l>>2];c[m+4>>2]=c[l+4>>2];c[m+8>>2]=c[l+8>>2];fv(g,p,m);av(c[n>>2]|0,c[j>>2]&255,l);c[j>>2]=253;break}}else{if((h|0)>435)c[k>>2]=(c[k>>2]|0)+328;dv(c[n>>2]|0,c[k>>2]|0,c[j>>2]|0,l);p=(c[n>>2]|0)+4|0;c[p>>2]=(c[p>>2]|0)+-1;c[j>>2]=253}while(0);if((c[j>>2]|0)==253){h=13;break}if((c[c[n>>2]>>2]|0)<0){h=13;break}}if((h|0)==13){i=o;return}}function Su(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=i;i=i+16|0;g=f+8|0;d=f+4|0;e=f;c[g>>2]=a;c[d>>2]=b;c[e>>2]=c[g>>2];while(1){if((c[c[e>>2]>>2]|0)<0)break;$u(c[e>>2]|0)}Qb[c[d>>2]&255](c[e>>2]|0);i=f;return}function Tu(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;if(!(c[b>>2]|0)){i=e;return}c[d>>2]=c[c[b>>2]>>2];Rf(c[d>>2]|0,c[b>>2]|0);a=c[(c[b>>2]|0)+52>>2]|0;if(c[(c[b>>2]|0)+48>>2]|0)c[(c[(c[b>>2]|0)+48>>2]|0)+52>>2]=a;else c[(c[d>>2]|0)+4>>2]=a;if(c[(c[b>>2]|0)+52>>2]|0)c[(c[(c[b>>2]|0)+52>>2]|0)+48>>2]=c[(c[b>>2]|0)+48>>2];c[(c[b>>2]|0)+40>>2]=-1241070648;c[c[b>>2]>>2]=0;Sf(c[d>>2]|0,c[b>>2]|0);i=e;return}function Uu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;d=h+12|0;e=h+8|0;f=h+4|0;g=h;c[d>>2]=a;c[e>>2]=b;if(!(c[e>>2]|0)){i=h;return}c[f>>2]=0;while(1){if((c[f>>2]|0)>=(c[c[e>>2]>>2]|0))break;c[g>>2]=(c[e>>2]|0)+8+(c[f>>2]<<4);Vu(c[d>>2]|0,c[(c[g>>2]|0)+4>>2]|0);Wu(c[d>>2]|0,c[(c[g>>2]|0)+8>>2]|0);Sf(c[d>>2]|0,c[c[g>>2]>>2]|0);c[f>>2]=(c[f>>2]|0)+1}Sf(c[d>>2]|0,c[e>>2]|0);i=h;return}function Vu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+16|0;d=h+12|0;e=h+8|0;f=h+4|0;g=h;c[d>>2]=a;c[e>>2]=b;if(!(c[e>>2]|0)){i=h;return}c[g>>2]=c[(c[e>>2]|0)+4>>2];c[f>>2]=0;while(1){a=c[d>>2]|0;if((c[f>>2]|0)>=(c[c[e>>2]>>2]|0))break;Zu(a,c[c[g>>2]>>2]|0);Sf(c[d>>2]|0,c[(c[g>>2]|0)+4>>2]|0);Sf(c[d>>2]|0,c[(c[g>>2]|0)+8>>2]|0);c[f>>2]=(c[f>>2]|0)+1;c[g>>2]=(c[g>>2]|0)+20}Sf(a,c[(c[e>>2]|0)+4>>2]|0);Sf(c[d>>2]|0,c[e>>2]|0);i=h;return}function Wu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;Xu(c[f>>2]|0,c[e>>2]|0,1);i=d;return}function Xu(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;e=j+12|0;f=j+8|0;g=j+4|0;h=j;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;while(1){if(!(c[f>>2]|0))break;c[h>>2]=c[(c[f>>2]|0)+52>>2];Vu(c[e>>2]|0,c[c[f>>2]>>2]|0);Yu(c[e>>2]|0,c[(c[f>>2]|0)+32>>2]|0);Zu(c[e>>2]|0,c[(c[f>>2]|0)+36>>2]|0);Vu(c[e>>2]|0,c[(c[f>>2]|0)+40>>2]|0);Zu(c[e>>2]|0,c[(c[f>>2]|0)+44>>2]|0);Vu(c[e>>2]|0,c[(c[f>>2]|0)+48>>2]|0);Zu(c[e>>2]|0,c[(c[f>>2]|0)+60>>2]|0);Zu(c[e>>2]|0,c[(c[f>>2]|0)+64>>2]|0);Uu(c[e>>2]|0,c[(c[f>>2]|0)+68>>2]|0);if(c[g>>2]|0)Sf(c[e>>2]|0,c[f>>2]|0);c[f>>2]=c[h>>2];c[g>>2]=1}i=j;return}function Yu(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;e=j+12|0;f=j+8|0;g=j+4|0;h=j;c[e>>2]=a;c[f>>2]=b;if(!(c[f>>2]|0)){i=j;return}c[h>>2]=(c[f>>2]|0)+8;c[g>>2]=0;while(1){a=c[e>>2]|0;if((c[g>>2]|0)>=(c[c[f>>2]>>2]|0))break;Sf(a,c[(c[h>>2]|0)+4>>2]|0);Sf(c[e>>2]|0,c[(c[h>>2]|0)+8>>2]|0);Sf(c[e>>2]|0,c[(c[h>>2]|0)+12>>2]|0);if((d[(c[h>>2]|0)+36+1>>0]|0)>>>1&1)Sf(c[e>>2]|0,c[(c[h>>2]|0)+64>>2]|0);if((d[(c[h>>2]|0)+36+1>>0]|0)>>>2&1)Vu(c[e>>2]|0,c[(c[h>>2]|0)+64>>2]|0);Qf(c[e>>2]|0,c[(c[h>>2]|0)+16>>2]|0);Wu(c[e>>2]|0,c[(c[h>>2]|0)+20>>2]|0);Zu(c[e>>2]|0,c[(c[h>>2]|0)+48>>2]|0);_u(c[e>>2]|0,c[(c[h>>2]|0)+52>>2]|0);c[g>>2]=(c[g>>2]|0)+1;c[h>>2]=(c[h>>2]|0)+72}Sf(a,c[f>>2]|0);i=j;return}function Zu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f+4|0;e=f;c[d>>2]=a;c[e>>2]=b;if(!(c[e>>2]|0)){i=f;return}do if(!(c[(c[e>>2]|0)+4>>2]&16384)){Zu(c[d>>2]|0,c[(c[e>>2]|0)+12>>2]|0);Zu(c[d>>2]|0,c[(c[e>>2]|0)+16>>2]|0);if(c[(c[e>>2]|0)+4>>2]&65536)Sf(c[d>>2]|0,c[(c[e>>2]|0)+8>>2]|0);a=c[d>>2]|0;b=(c[e>>2]|0)+20|0;if(c[(c[e>>2]|0)+4>>2]&2048){Wu(a,c[b>>2]|0);break}else{Vu(a,c[b>>2]|0);break}}while(0);if(c[(c[e>>2]|0)+4>>2]&32768){i=f;return}Sf(c[d>>2]|0,c[e>>2]|0);i=f;return}function _u(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;e=g+4|0;f=g;c[d>>2]=a;c[e>>2]=b;if(!(c[e>>2]|0)){i=g;return}c[f>>2]=0;while(1){a=c[d>>2]|0;if((c[f>>2]|0)>=(c[(c[e>>2]|0)+4>>2]|0))break;Sf(a,c[(c[c[e>>2]>>2]|0)+(c[f>>2]<<3)>>2]|0);c[f>>2]=(c[f>>2]|0)+1}Sf(a,c[c[e>>2]>>2]|0);Sf(c[d>>2]|0,c[e>>2]|0);i=g;return}function $u(b){b=b|0;var d=0,e=0,f=0,g=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=b;g=c[f>>2]|0;b=c[g>>2]|0;c[g>>2]=b+-1;c[e>>2]=(c[f>>2]|0)+12+(b<<4);av(c[f>>2]|0,a[(c[e>>2]|0)+2>>0]|0,(c[e>>2]|0)+4|0);i=d;return}function av(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;j=i;i=i+16|0;l=j+8|0;k=j+12|0;g=j+4|0;h=j;c[l>>2]=b;a[k>>0]=e;c[g>>2]=f;c[h>>2]=c[(c[l>>2]|0)+8>>2];do switch(d[k>>0]|0|0){case 208:case 197:case 196:case 163:{Wu(c[c[h>>2]>>2]|0,c[c[g>>2]>>2]|0);i=j;return}case 175:case 174:{Zu(c[c[h>>2]>>2]|0,c[c[g>>2]>>2]|0);i=j;return}case 227:case 220:case 211:case 210:case 209:case 206:case 204:case 201:case 189:case 188:case 179:{Vu(c[c[h>>2]>>2]|0,c[c[g>>2]>>2]|0);i=j;return}case 214:case 213:case 202:case 195:{Yu(c[c[h>>2]>>2]|0,c[c[g>>2]>>2]|0);i=j;return}case 251:case 198:{Uu(c[c[h>>2]>>2]|0,c[c[g>>2]>>2]|0);i=j;return}case 242:case 237:case 228:case 226:case 217:case 205:case 203:{Zu(c[c[h>>2]>>2]|0,c[c[g>>2]>>2]|0);i=j;return}case 222:case 219:case 218:{_u(c[c[h>>2]>>2]|0,c[c[g>>2]>>2]|0);i=j;return}case 238:case 233:{bv(c[c[h>>2]>>2]|0,c[c[g>>2]>>2]|0);i=j;return}case 235:{_u(c[c[h>>2]>>2]|0,c[(c[g>>2]|0)+4>>2]|0);i=j;return}default:{i=j;return}}while(0)}function bv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;e=g+4|0;f=g;c[d>>2]=a;c[e>>2]=b;while(1){if(!(c[e>>2]|0))break;c[f>>2]=c[e>>2];c[e>>2]=c[(c[e>>2]|0)+28>>2];Zu(c[d>>2]|0,c[(c[f>>2]|0)+16>>2]|0);Vu(c[d>>2]|0,c[(c[f>>2]|0)+20>>2]|0);Wu(c[d>>2]|0,c[(c[f>>2]|0)+8>>2]|0);_u(c[d>>2]|0,c[(c[f>>2]|0)+24>>2]|0);Sf(c[d>>2]|0,c[f>>2]|0)}i=g;return}function cv(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=i;i=i+32|0;h=p+16|0;q=p+12|0;j=p+21|0;k=p+8|0;n=p+4|0;l=p+20|0;m=p;c[q>>2]=f;a[j>>0]=g;c[n>>2]=e[(c[q>>2]|0)+12+(c[c[q>>2]>>2]<<4)>>1];if((c[n>>2]|0)>=977){c[h>>2]=c[n>>2];q=c[h>>2]|0;i=p;return q|0}while(1){c[k>>2]=b[15538+(c[n>>2]<<1)>>1];if((c[k>>2]|0)==-89){o=4;break}c[k>>2]=(c[k>>2]|0)+(d[j>>0]|0);if(!((c[k>>2]|0)<0|(c[k>>2]|0)>=1501)?(d[38518+(c[k>>2]|0)>>0]|0)==(d[j>>0]|0):0){o=15;break}if((d[j>>0]|0)<=0)break;if((d[j>>0]|0)>>>0>=70){o=11;break}q=a[40019+(d[j>>0]|0)>>0]|0;a[l>>0]=q;if(!(q&255)){o=11;break}a[j>>0]=a[l>>0]|0}if((o|0)==4){c[h>>2]=e[16410+(c[n>>2]<<1)>>1];q=c[h>>2]|0;i=p;return q|0}else if((o|0)==11){c[m>>2]=(c[k>>2]|0)-(d[j>>0]|0)+70;if((c[m>>2]|0)>=0&(c[m>>2]|0)<1501?(d[38518+(c[m>>2]|0)>>0]|0)==70:0){c[h>>2]=e[12532+(c[m>>2]<<1)>>1];q=c[h>>2]|0;i=p;return q|0}}else if((o|0)==15){c[h>>2]=e[12532+(c[k>>2]<<1)>>1];q=c[h>>2]|0;i=p;return q|0}c[h>>2]=e[16410+(c[n>>2]<<1)>>1];q=c[h>>2]|0;i=p;return q|0}function dv(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;h=n+16|0;j=n+12|0;k=n+8|0;l=n+4|0;m=n;c[h>>2]=d;c[j>>2]=e;c[k>>2]=f;c[l>>2]=g;f=c[h>>2]|0;c[f>>2]=(c[f>>2]|0)+1;f=c[h>>2]|0;if((c[c[h>>2]>>2]|0)>=100){gH(f,c[l>>2]|0);i=n;return}else{c[m>>2]=(c[h>>2]|0)+12+(c[f>>2]<<4);b[c[m>>2]>>1]=c[j>>2];a[(c[m>>2]|0)+2>>0]=c[k>>2];m=(c[m>>2]|0)+4|0;l=c[l>>2]|0;c[m>>2]=c[l>>2];c[m+4>>2]=c[l+4>>2];c[m+8>>2]=c[l+8>>2];i=n;return}}function ev(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;$=i;i=i+256|0;M=$+40|0;L=$+32|0;O=$+24|0;N=$+16|0;R=$+8|0;K=$;U=$+248|0;V=$+244|0;X=$+240|0;W=$+236|0;Y=$+224|0;Z=$+220|0;_=$+216|0;T=$+212|0;I=$+200|0;J=$+188|0;j=$+168|0;k=$+164|0;y=$+160|0;r=$+156|0;o=$+152|0;P=$+144|0;z=$+136|0;p=$+132|0;l=$+128|0;A=$+124|0;q=$+120|0;n=$+116|0;v=$+112|0;w=$+108|0;B=$+104|0;C=$+100|0;E=$+96|0;D=$+92|0;F=$+88|0;G=$+84|0;H=$+80|0;s=$+76|0;t=$+72|0;u=$+68|0;x=$+64|0;Q=$+60|0;m=$+56|0;h=$+48|0;c[U>>2]=f;c[V>>2]=g;c[T>>2]=c[(c[U>>2]|0)+8>>2];c[Z>>2]=(c[U>>2]|0)+12+(c[c[U>>2]>>2]<<4);c[Y>>2]=c[1265];c[Y+4>>2]=c[1266];c[Y+8>>2]=c[1267];a:do switch(c[V>>2]|0){case 6:{a[(c[T>>2]|0)+453>>0]=1;break}case 7:{a[(c[T>>2]|0)+453>>0]=2;break}case 8:{gv(c[T>>2]|0);break}case 9:{hv(c[T>>2]|0,c[(c[Z>>2]|0)+-16+4>>2]|0);break}case 13:{c[Y>>2]=7;break}case 117:case 115:case 16:case 15:case 14:{c[Y>>2]=d[(c[Z>>2]|0)+2>>0];break}case 18:case 17:{iv(c[T>>2]|0);break}case 19:{jv(c[T>>2]|0);break}case 22:{kv(c[T>>2]|0,0,(c[Z>>2]|0)+4|0);break}case 23:{kv(c[T>>2]|0,1,(c[Z>>2]|0)+4|0);break}case 24:{kv(c[T>>2]|0,2,(c[Z>>2]|0)+4|0);break}case 26:{lv(c[T>>2]|0,(c[Z>>2]|0)+-16+4|0,(c[Z>>2]|0)+4|0,c[(c[Z>>2]|0)+-64+4>>2]|0,0,0,c[(c[Z>>2]|0)+-32+4>>2]|0);break}case 27:{mv(c[T>>2]|0);T=(c[Z>>2]|0)+4|0;c[Y>>2]=c[T>>2];c[Y+4>>2]=c[T+4>>2];break}case 247:case 222:case 219:case 124:case 108:case 97:case 85:case 83:case 81:case 68:case 34:case 31:case 28:{c[Y>>2]=0;break}case 248:case 223:case 220:case 107:case 84:case 69:case 30:case 29:{c[Y>>2]=1;break}case 32:{nv(c[T>>2]|0,(c[Z>>2]|0)+-32+4|0,(c[Z>>2]|0)+-16+4|0,c[(c[Z>>2]|0)+4>>2]&255,0);break}case 33:{nv(c[T>>2]|0,0,0,0,c[(c[Z>>2]|0)+4>>2]|0);Wu(c[c[T>>2]>>2]|0,c[(c[Z>>2]|0)+4>>2]|0);break}case 35:{if((c[(c[Z>>2]|0)+4+4>>2]|0)==5?(zd(c[(c[Z>>2]|0)+4>>2]|0,25592,5)|0)==0:0){c[Y>>2]=96;break a}c[Y>>2]=0;T=c[T>>2]|0;S=c[(c[Z>>2]|0)+4>>2]|0;c[K>>2]=c[(c[Z>>2]|0)+4+4>>2];c[K+4>>2]=S;Ah(T,27365,K);break}case 38:{c[Y>>2]=c[(c[Z>>2]|0)+-32+4>>2];c[Y+4>>2]=(c[(c[T>>2]|0)+508>>2]|0)-(c[(c[Z>>2]|0)+-32+4>>2]|0)+(c[(c[T>>2]|0)+508+4>>2]|0);break}case 39:{ov(c[T>>2]|0,(c[Z>>2]|0)+4|0);S=(c[Z>>2]|0)+4|0;c[Y>>2]=c[S>>2];c[Y+4>>2]=c[S+4>>2];c[(c[T>>2]|0)+328+4>>2]=0;break}case 280:case 264:case 263:case 262:case 261:case 260:case 259:case 258:case 257:case 151:case 142:case 131:case 130:case 48:case 45:case 42:case 41:case 40:{T=(c[Z>>2]|0)+4|0;c[Y>>2]=c[T>>2];c[Y+4>>2]=c[T+4>>2];break}case 44:{pv(c[T>>2]|0,(c[Z>>2]|0)+4|0);break}case 46:{c[Y>>2]=c[(c[Z>>2]|0)+-48+4>>2];c[Y+4>>2]=(c[(c[Z>>2]|0)+4>>2]|0)+(c[(c[Z>>2]|0)+4+4>>2]|0)-(c[(c[Z>>2]|0)+-48+4>>2]|0);break}case 47:{c[Y>>2]=c[(c[Z>>2]|0)+-80+4>>2];c[Y+4>>2]=(c[(c[Z>>2]|0)+4>>2]|0)+(c[(c[Z>>2]|0)+4+4>>2]|0)-(c[(c[Z>>2]|0)+-80+4>>2]|0);break}case 49:{c[Y>>2]=c[(c[Z>>2]|0)+-16+4>>2];c[Y+4>>2]=(c[(c[Z>>2]|0)+4+4>>2]|0)+((c[(c[Z>>2]|0)+4>>2]|0)-(c[(c[Z>>2]|0)+-16+4>>2]|0));break}case 92:case 54:{T=(c[T>>2]|0)+328|0;S=(c[Z>>2]|0)+4|0;c[T>>2]=c[S>>2];c[T+4>>2]=c[S+4>>2];break}case 57:case 55:{qv(c[T>>2]|0,(c[Z>>2]|0)+4|0);break}case 56:{qv(c[T>>2]|0,(c[Z>>2]|0)+-16+4|0);break}case 58:{c[I>>2]=rv(c[T>>2]|0,155,c[(c[Z>>2]|0)+4>>2]|0,0,0)|0;c[I+4>>2]=c[(c[Z>>2]|0)+-16+4>>2];c[I+8>>2]=c[(c[Z>>2]|0)+4+8>>2];qv(c[T>>2]|0,I);break}case 59:{sv(J,c[T>>2]|0,97,(c[Z>>2]|0)+4|0);qv(c[T>>2]|0,J);break}case 61:{tv(c[T>>2]|0,c[(c[Z>>2]|0)+4>>2]|0);break}case 62:{uv(c[T>>2]|0,0,c[(c[Z>>2]|0)+-16+4>>2]|0,c[(c[Z>>2]|0)+4>>2]|0,c[(c[Z>>2]|0)+-32+4>>2]|0);break}case 63:{vv(c[T>>2]|0,0,0,0,0,c[(c[Z>>2]|0)+4>>2]|0,0,0,0,0)|0;break}case 64:{wv(c[T>>2]|0,c[(c[Z>>2]|0)+-16+4>>2]|0);break}case 65:{xv(c[T>>2]|0,0,(c[Z>>2]|0)+-32+4|0,c[(c[Z>>2]|0)+-16+4>>2]|0,c[(c[Z>>2]|0)+4>>2]|0);break}case 66:{yv(c[T>>2]|0,c[(c[Z>>2]|0)+4>>2]|0);break}case 67:{zv(c[T>>2]|0,(c[Z>>2]|0)+4|0);break}case 70:{c[Y>>2]=0;break}case 71:{c[Y>>2]=c[(c[Z>>2]|0)+-16+4>>2]&~c[(c[Z>>2]|0)+4+4>>2]|c[(c[Z>>2]|0)+4>>2];break}case 73:case 72:{c[Y>>2]=0;c[Y+4>>2]=0;break}case 74:{c[Y>>2]=c[(c[Z>>2]|0)+4>>2];c[Y+4>>2]=255;break}case 75:{c[Y>>2]=c[(c[Z>>2]|0)+4>>2]<<8;c[Y+4>>2]=65280;break}case 76:{c[Y>>2]=7;break}case 77:{c[Y>>2]=8;break}case 78:{c[Y>>2]=9;break}case 79:{c[Y>>2]=6;break}case 80:{c[Y>>2]=0;break}case 178:case 103:case 102:case 100:case 98:case 82:{c[Y>>2]=c[(c[Z>>2]|0)+4>>2];break}case 86:{c[Y+4>>2]=0;c[Y>>2]=0;break}case 87:{T=(c[Z>>2]|0)+-16+4|0;c[Y>>2]=c[T>>2];c[Y+4>>2]=c[T+4>>2];break}case 90:{c[(c[T>>2]|0)+328+4>>2]=0;break}case 93:{uv(c[T>>2]|0,c[(c[Z>>2]|0)+-48+4>>2]|0,c[(c[Z>>2]|0)+4>>2]|0,c[(c[Z>>2]|0)+-32+4>>2]|0,0);break}case 94:{vv(c[T>>2]|0,0,0,0,c[(c[Z>>2]|0)+-32+4>>2]|0,c[(c[Z>>2]|0)+4>>2]|0,0,0,0,0)|0;break}case 95:{wv(c[T>>2]|0,c[(c[Z>>2]|0)+-32+4>>2]|0);break}case 96:{xv(c[T>>2]|0,c[(c[Z>>2]|0)+-96+4>>2]|0,(c[Z>>2]|0)+-48+4|0,c[(c[Z>>2]|0)+-32+4>>2]|0,c[(c[Z>>2]|0)+-16+4>>2]|0);yv(c[T>>2]|0,c[(c[Z>>2]|0)+4>>2]|0);break}case 101:case 99:{c[Y>>2]=10;break}case 104:{c[Y>>2]=4;break}case 179:case 105:{c[Y>>2]=5;break}case 106:{Av(c[T>>2]|0,c[(c[Z>>2]|0)+4>>2]|0,0,c[(c[Z>>2]|0)+-16+4>>2]|0);break}case 109:{Bv(c[T>>2]|0,(c[Z>>2]|0)+-128+4|0,(c[Z>>2]|0)+-64+4|0,(c[Z>>2]|0)+-48+4|0,c[(c[Z>>2]|0)+-32+4>>2]|0,c[(c[Z>>2]|0)+4>>2]|0,c[(c[Z>>2]|0)+-112+4>>2]|0,c[(c[Z>>2]|0)+-80+4>>2]|0);break}case 110:{Av(c[T>>2]|0,c[(c[Z>>2]|0)+4>>2]|0,1,c[(c[Z>>2]|0)+-16+4>>2]|0);break}case 111:{c[j>>2]=c[1268];c[j+4>>2]=c[1269];c[j+8>>2]=c[1270];c[j+12>>2]=c[1271];c[j+16>>2]=c[1272];Cv(c[T>>2]|0,c[(c[Z>>2]|0)+4>>2]|0,j)|0;Wu(c[c[T>>2]>>2]|0,c[(c[Z>>2]|0)+4>>2]|0);break}case 112:{c[k>>2]=c[(c[Z>>2]|0)+4>>2];if(c[k>>2]|0){c[(c[k>>2]|0)+68>>2]=c[(c[Z>>2]|0)+-16+4>>2];Dv(c[T>>2]|0,c[k>>2]|0)}else Uu(c[c[T>>2]>>2]|0,c[(c[Z>>2]|0)+-16+4>>2]|0);c[Y>>2]=c[k>>2];break}case 119:case 113:{c[Y>>2]=c[(c[Z>>2]|0)+4>>2];break}case 114:{c[y>>2]=c[(c[Z>>2]|0)+4>>2];c[r>>2]=c[(c[Z>>2]|0)+-32+4>>2];if((c[y>>2]|0)!=0?(c[(c[y>>2]|0)+52>>2]|0)!=0:0){c[P+4>>2]=0;Dv(c[T>>2]|0,c[y>>2]|0);c[o>>2]=Ev(c[T>>2]|0,0,0,0,P,c[y>>2]|0,0,0)|0;c[y>>2]=Fv(c[T>>2]|0,0,c[o>>2]|0,0,0,0,0,0,0,0)|0}if(c[y>>2]|0){a[(c[y>>2]|0)+4>>0]=c[(c[Z>>2]|0)+-16+4>>2];c[(c[y>>2]|0)+52>>2]=c[r>>2];if(c[r>>2]|0){S=(c[r>>2]|0)+6|0;b[S>>1]=e[S>>1]&-513}S=(c[y>>2]|0)+6|0;b[S>>1]=e[S>>1]&-513;if((c[(c[Z>>2]|0)+-16+4>>2]|0)!=116)a[(c[T>>2]|0)+22>>0]=1}else Wu(c[c[T>>2]>>2]|0,c[r>>2]|0);c[Y>>2]=c[y>>2];break}case 116:{c[Y>>2]=116;break}case 118:{c[Y>>2]=Fv(c[T>>2]|0,c[(c[Z>>2]|0)+-96+4>>2]|0,c[(c[Z>>2]|0)+-80+4>>2]|0,c[(c[Z>>2]|0)+-64+4>>2]|0,c[(c[Z>>2]|0)+-48+4>>2]|0,c[(c[Z>>2]|0)+-32+4>>2]|0,c[(c[Z>>2]|0)+-16+4>>2]|0,c[(c[Z>>2]|0)+-112+4>>2]&65535,c[(c[Z>>2]|0)+4>>2]|0,c[(c[Z>>2]|0)+4+4>>2]|0)|0;break}case 120:{c[Y>>2]=Fv(c[T>>2]|0,c[(c[Z>>2]|0)+-16+4>>2]|0,0,0,0,0,0,256,0,0)|0;break}case 121:{c[p>>2]=c[(c[Z>>2]|0)+-64+4>>2];c[z>>2]=Fv(c[T>>2]|0,c[(c[Z>>2]|0)+-16+4>>2]|0,0,0,0,0,0,768,0,0)|0;if(c[p>>2]|0){T=(c[p>>2]|0)+6|0;b[T>>1]=e[T>>1]&-513}if(c[z>>2]|0){a[(c[z>>2]|0)+4>>0]=116;c[p>>2]=c[(c[Z>>2]|0)+-64+4>>2];c[(c[z>>2]|0)+52>>2]=c[p>>2];c[Y>>2]=c[z>>2];break a}else{c[Y>>2]=c[p>>2];break a}}case 122:{c[Y>>2]=1;break}case 123:
  82. {c[Y>>2]=2;break}case 244:case 125:{c[Y>>2]=c[(c[Z>>2]|0)+-16+4>>2];break}case 243:case 237:case 162:case 155:case 126:{c[Y>>2]=0;break}case 127:{c[Y>>2]=Gv(c[T>>2]|0,c[(c[Z>>2]|0)+-32+4>>2]|0,c[(c[Z>>2]|0)+-16+4>>2]|0)|0;if((c[(c[Z>>2]|0)+4+4>>2]|0)>>>0>0)Hv(c[T>>2]|0,c[Y>>2]|0,(c[Z>>2]|0)+4|0,1);Iv(c[T>>2]|0,c[Y>>2]|0,(c[Z>>2]|0)+-16+4|0);break}case 128:{c[l>>2]=Jv(c[c[T>>2]>>2]|0,158,0)|0;c[Y>>2]=Gv(c[T>>2]|0,c[(c[Z>>2]|0)+-16+4>>2]|0,c[l>>2]|0)|0;break}case 129:{c[A>>2]=rv(c[T>>2]|0,158,0,0,(c[Z>>2]|0)+4|0)|0;c[q>>2]=rv(c[T>>2]|0,27,0,0,(c[Z>>2]|0)+-32+4|0)|0;c[n>>2]=rv(c[T>>2]|0,122,c[q>>2]|0,c[A>>2]|0,0)|0;c[Y>>2]=Gv(c[T>>2]|0,c[(c[Z>>2]|0)+-48+4>>2]|0,c[n>>2]|0)|0;break}case 132:{c[Y+4>>2]=0;break}case 133:{c[Y>>2]=ph(c[c[T>>2]>>2]|0,80,0)|0;break}case 134:{c[Y>>2]=c[(c[Z>>2]|0)+4>>2];Kv(c[Y>>2]|0);break}case 135:{c[Y>>2]=c[(c[Z>>2]|0)+-16+4>>2];if((c[Y>>2]|0)!=0?(c[c[Y>>2]>>2]|0)>0:0)a[(c[Y>>2]|0)+8+(((c[c[Y>>2]>>2]|0)-1|0)*72|0)+36>>0]=c[(c[Z>>2]|0)+4>>2];break}case 136:{c[Y>>2]=0;break}case 137:{c[Y>>2]=Ev(c[T>>2]|0,c[(c[Z>>2]|0)+-96+4>>2]|0,(c[Z>>2]|0)+-80+4|0,(c[Z>>2]|0)+-64+4|0,(c[Z>>2]|0)+-48+4|0,0,c[(c[Z>>2]|0)+-16+4>>2]|0,c[(c[Z>>2]|0)+4>>2]|0)|0;Lv(c[T>>2]|0,c[Y>>2]|0,(c[Z>>2]|0)+-32+4|0);break}case 138:{c[Y>>2]=Ev(c[T>>2]|0,c[(c[Z>>2]|0)+-128+4>>2]|0,(c[Z>>2]|0)+-112+4|0,(c[Z>>2]|0)+-96+4|0,(c[Z>>2]|0)+-32+4|0,0,c[(c[Z>>2]|0)+-16+4>>2]|0,c[(c[Z>>2]|0)+4>>2]|0)|0;Mv(c[T>>2]|0,c[Y>>2]|0,c[(c[Z>>2]|0)+-64+4>>2]|0);break}case 139:{c[Y>>2]=Ev(c[T>>2]|0,c[(c[Z>>2]|0)+-96+4>>2]|0,0,0,(c[Z>>2]|0)+-32+4|0,c[(c[Z>>2]|0)+-64+4>>2]|0,c[(c[Z>>2]|0)+-16+4>>2]|0,c[(c[Z>>2]|0)+4>>2]|0)|0;break}case 140:{if((((c[(c[Z>>2]|0)+-96+4>>2]|0)==0?(c[(c[Z>>2]|0)+-32+4+4>>2]|0)==0:0)?(c[(c[Z>>2]|0)+-16+4>>2]|0)==0:0)?(c[(c[Z>>2]|0)+4>>2]|0)==0:0){c[Y>>2]=c[(c[Z>>2]|0)+-64+4>>2];break a}if((c[c[(c[Z>>2]|0)+-64+4>>2]>>2]|0)!=1){Kv(c[(c[Z>>2]|0)+-64+4>>2]|0);c[B>>2]=Fv(c[T>>2]|0,0,c[(c[Z>>2]|0)+-64+4>>2]|0,0,0,0,0,1024,0,0)|0;c[Y>>2]=Ev(c[T>>2]|0,c[(c[Z>>2]|0)+-96+4>>2]|0,0,0,(c[Z>>2]|0)+-32+4|0,c[B>>2]|0,c[(c[Z>>2]|0)+-16+4>>2]|0,c[(c[Z>>2]|0)+4>>2]|0)|0;break a}c[Y>>2]=Ev(c[T>>2]|0,c[(c[Z>>2]|0)+-96+4>>2]|0,0,0,(c[Z>>2]|0)+-32+4|0,0,c[(c[Z>>2]|0)+-16+4>>2]|0,c[(c[Z>>2]|0)+4>>2]|0)|0;if(c[Y>>2]|0){c[v>>2]=(c[Y>>2]|0)+8+(((c[c[Y>>2]>>2]|0)-1|0)*72|0);c[w>>2]=(c[(c[Z>>2]|0)+-64+4>>2]|0)+8;c[(c[v>>2]|0)+8>>2]=c[(c[w>>2]|0)+8>>2];c[(c[v>>2]|0)+4>>2]=c[(c[w>>2]|0)+4>>2];c[(c[v>>2]|0)+20>>2]=c[(c[w>>2]|0)+20>>2];c[(c[w>>2]|0)+4>>2]=0;c[(c[w>>2]|0)+8>>2]=0;c[(c[w>>2]|0)+20>>2]=0}Yu(c[c[T>>2]>>2]|0,c[(c[Z>>2]|0)+-64+4>>2]|0);break}case 150:case 141:{c[Y>>2]=0;c[Y+4>>2]=0;break}case 143:{c[Y>>2]=Nv(c[c[T>>2]>>2]|0,0,(c[Z>>2]|0)+-16+4|0,(c[Z>>2]|0)+4|0)|0;break}case 144:{c[Y>>2]=1;break}case 145:{c[Y>>2]=Ov(c[T>>2]|0,(c[Z>>2]|0)+-16+4|0,0,0)|0;break}case 146:{c[Y>>2]=Ov(c[T>>2]|0,(c[Z>>2]|0)+-32+4|0,(c[Z>>2]|0)+-16+4|0,0)|0;break}case 147:{c[Y>>2]=Ov(c[T>>2]|0,(c[Z>>2]|0)+-48+4|0,(c[Z>>2]|0)+-32+4|0,(c[Z>>2]|0)+-16+4|0)|0;break}case 234:case 232:case 172:case 165:case 148:{c[Y>>2]=c[(c[Z>>2]|0)+4>>2];break}case 235:case 233:case 171:case 164:case 149:{c[Y>>2]=0;break}case 152:{c[Y>>2]=0;c[Y+4>>2]=1;break}case 181:case 153:{c[Y>>2]=c[(c[Z>>2]|0)+-16+4>>2];break}case 180:case 154:{c[Y>>2]=0;break}case 236:case 163:case 156:{c[Y>>2]=c[(c[Z>>2]|0)+4>>2];break}case 157:{c[Y>>2]=Gv(c[T>>2]|0,c[(c[Z>>2]|0)+-48+4>>2]|0,c[(c[Z>>2]|0)+-16+4>>2]|0)|0;Pv(c[Y>>2]|0,c[(c[Z>>2]|0)+4>>2]|0);break}case 158:{c[Y>>2]=Gv(c[T>>2]|0,0,c[(c[Z>>2]|0)+-16+4>>2]|0)|0;Pv(c[Y>>2]|0,c[(c[Z>>2]|0)+4>>2]|0);break}case 159:{c[Y>>2]=0;break}case 160:{c[Y>>2]=1;break}case 161:{c[Y>>2]=-1;break}case 166:{c[Y>>2]=0;c[Y+4>>2]=0;break}case 167:{c[Y>>2]=c[(c[Z>>2]|0)+4>>2];c[Y+4>>2]=0;break}case 168:{c[Y>>2]=c[(c[Z>>2]|0)+-32+4>>2];c[Y+4>>2]=c[(c[Z>>2]|0)+4>>2];break}case 169:{c[Y+4>>2]=c[(c[Z>>2]|0)+-32+4>>2];c[Y>>2]=c[(c[Z>>2]|0)+4>>2];break}case 170:{Qv(c[T>>2]|0,c[(c[Z>>2]|0)+-80+4>>2]|0,1);Lv(c[T>>2]|0,c[(c[Z>>2]|0)+-32+4>>2]|0,(c[Z>>2]|0)+-16+4|0);Rv(c[T>>2]|0,c[(c[Z>>2]|0)+-32+4>>2]|0,c[(c[Z>>2]|0)+4>>2]|0);break}case 173:{Qv(c[T>>2]|0,c[(c[Z>>2]|0)+-112+4>>2]|0,1);Lv(c[T>>2]|0,c[(c[Z>>2]|0)+-64+4>>2]|0,(c[Z>>2]|0)+-48+4|0);Sv(c[T>>2]|0,c[(c[Z>>2]|0)+-16+4>>2]|0,27392);Tv(c[T>>2]|0,c[(c[Z>>2]|0)+-64+4>>2]|0,c[(c[Z>>2]|0)+-16+4>>2]|0,c[(c[Z>>2]|0)+4>>2]|0,c[(c[Z>>2]|0)+-80+4>>2]|0);break}case 174:{c[Y>>2]=Gv(c[T>>2]|0,c[(c[Z>>2]|0)+-64+4>>2]|0,c[(c[Z>>2]|0)+4>>2]|0)|0;Hv(c[T>>2]|0,c[Y>>2]|0,(c[Z>>2]|0)+-32+4|0,1);break}case 175:{c[Y>>2]=Gv(c[T>>2]|0,0,c[(c[Z>>2]|0)+4>>2]|0)|0;Hv(c[T>>2]|0,c[Y>>2]|0,(c[Z>>2]|0)+-32+4|0,1);break}case 176:{Qv(c[T>>2]|0,c[(c[Z>>2]|0)+-80+4>>2]|0,1);Uv(c[T>>2]|0,c[(c[Z>>2]|0)+-32+4>>2]|0,c[(c[Z>>2]|0)+4>>2]|0,c[(c[Z>>2]|0)+-16+4>>2]|0,c[(c[Z>>2]|0)+-64+4>>2]|0);break}case 177:{Qv(c[T>>2]|0,c[(c[Z>>2]|0)+-96+4>>2]|0,1);Uv(c[T>>2]|0,c[(c[Z>>2]|0)+-48+4>>2]|0,0,c[(c[Z>>2]|0)+-32+4>>2]|0,c[(c[Z>>2]|0)+-80+4>>2]|0);break}case 182:{c[Y>>2]=Vv(c[c[T>>2]>>2]|0,c[(c[Z>>2]|0)+-32+4>>2]|0,(c[Z>>2]|0)+4|0)|0;break}case 183:{c[Y>>2]=Vv(c[c[T>>2]>>2]|0,0,(c[Z>>2]|0)+4|0)|0;break}case 184:{T=(c[Z>>2]|0)+4|0;c[Y>>2]=c[T>>2];c[Y+4>>2]=c[T+4>>2];c[Y+8>>2]=c[T+8>>2];break}case 185:{c[Y>>2]=c[(c[Z>>2]|0)+-16+4>>2];Wv(Y,(c[Z>>2]|0)+-32+4|0,(c[Z>>2]|0)+4|0);break}case 192:case 191:case 186:{sv(Y,c[T>>2]|0,d[(c[Z>>2]|0)+2>>0]|0,(c[Z>>2]|0)+4|0);break}case 188:case 187:{sv(Y,c[T>>2]|0,27,(c[Z>>2]|0)+4|0);break}case 189:{c[C>>2]=rv(c[T>>2]|0,27,0,0,(c[Z>>2]|0)+-32+4|0)|0;c[E>>2]=rv(c[T>>2]|0,27,0,0,(c[Z>>2]|0)+4|0)|0;c[Y>>2]=rv(c[T>>2]|0,122,c[C>>2]|0,c[E>>2]|0,0)|0;Wv(Y,(c[Z>>2]|0)+-32+4|0,(c[Z>>2]|0)+4|0);break}case 190:{c[D>>2]=rv(c[T>>2]|0,27,0,0,(c[Z>>2]|0)+-64+4|0)|0;c[F>>2]=rv(c[T>>2]|0,27,0,0,(c[Z>>2]|0)+-32+4|0)|0;c[G>>2]=rv(c[T>>2]|0,27,0,0,(c[Z>>2]|0)+4|0)|0;c[H>>2]=rv(c[T>>2]|0,122,c[F>>2]|0,c[G>>2]|0,0)|0;c[Y>>2]=rv(c[T>>2]|0,122,c[D>>2]|0,c[H>>2]|0,0)|0;Wv(Y,(c[Z>>2]|0)+-64+4|0,(c[Z>>2]|0)+4|0);break}case 193:{do if(((c[(c[Z>>2]|0)+4+4>>2]|0)>>>0>=2?(a[c[(c[Z>>2]|0)+4>>2]>>0]|0)==35:0)?(d[19267+(d[(c[(c[Z>>2]|0)+4>>2]|0)+1>>0]|0)>>0]&4|0)!=0:0){h=c[T>>2]|0;j=(c[Z>>2]|0)+4|0;if(!(d[(c[T>>2]|0)+18>>0]|0)){c[R>>2]=j;Ah(h,27341,R);c[Y>>2]=0;break}c[Y>>2]=rv(h,157,0,0,j)|0;if(c[Y>>2]|0)Li((c[(c[Z>>2]|0)+4>>2]|0)+1|0,(c[Y>>2]|0)+28|0)|0}else S=161;while(0);if((S|0)==161){sv(Y,c[T>>2]|0,135,(c[Z>>2]|0)+4|0);Xv(c[T>>2]|0,c[Y>>2]|0)}Wv(Y,(c[Z>>2]|0)+4|0,(c[Z>>2]|0)+4|0);break}case 194:{c[Y>>2]=Yv(c[T>>2]|0,c[(c[Z>>2]|0)+-32+4>>2]|0,(c[Z>>2]|0)+4|0,1)|0;c[Y+4>>2]=c[(c[Z>>2]|0)+-32+4+4>>2];c[Y+8>>2]=(c[(c[Z>>2]|0)+4>>2]|0)+(c[(c[Z>>2]|0)+4+4>>2]|0);break}case 195:{c[Y>>2]=rv(c[T>>2]|0,38,c[(c[Z>>2]|0)+-48+4>>2]|0,0,(c[Z>>2]|0)+-16+4|0)|0;Wv(Y,(c[Z>>2]|0)+-80+4|0,(c[Z>>2]|0)+4|0);break}case 196:{if((c[(c[Z>>2]|0)+-16+4>>2]|0)!=0?(c[c[(c[Z>>2]|0)+-16+4>>2]>>2]|0)>(c[(c[c[T>>2]>>2]|0)+88+24>>2]|0):0){S=c[T>>2]|0;c[N>>2]=(c[Z>>2]|0)+-64+4;Ah(S,27401,N)}c[Y>>2]=Zv(c[T>>2]|0,c[(c[Z>>2]|0)+-16+4>>2]|0,(c[Z>>2]|0)+-64+4|0)|0;Wv(Y,(c[Z>>2]|0)+-64+4|0,(c[Z>>2]|0)+4|0);if((c[(c[Z>>2]|0)+-32+4>>2]|0)==1?(c[Y>>2]|0)!=0:0){T=(c[Y>>2]|0)+4|0;c[T>>2]=c[T>>2]|16}break}case 197:{c[Y>>2]=Zv(c[T>>2]|0,0,(c[Z>>2]|0)+-48+4|0)|0;Wv(Y,(c[Z>>2]|0)+-48+4|0,(c[Z>>2]|0)+4|0);break}case 198:{c[Y>>2]=Zv(c[T>>2]|0,0,(c[Z>>2]|0)+4|0)|0;Wv(Y,(c[Z>>2]|0)+4|0,(c[Z>>2]|0)+4|0);break}case 206:case 205:case 204:case 203:case 202:case 201:case 200:case 199:{_v(Y,c[T>>2]|0,d[(c[Z>>2]|0)+-16+2>>0]|0,(c[Z>>2]|0)+-32+4|0,(c[Z>>2]|0)+4|0);break}case 207:{T=(c[Z>>2]|0)+4|0;c[Y>>2]=c[T>>2];c[Y+4>>2]=c[T+4>>2];c[Y+8>>2]=0;break}case 208:{T=(c[Z>>2]|0)+4|0;c[Y>>2]=c[T>>2];c[Y+4>>2]=c[T+4>>2];c[Y+8>>2]=1;break}case 209:{c[s>>2]=Gv(c[T>>2]|0,0,c[(c[Z>>2]|0)+4>>2]|0)|0;c[s>>2]=Gv(c[T>>2]|0,c[s>>2]|0,c[(c[Z>>2]|0)+-32+4>>2]|0)|0;c[Y>>2]=Zv(c[T>>2]|0,c[s>>2]|0,(c[Z>>2]|0)+-16+4|0)|0;$v(c[T>>2]|0,c[(c[Z>>2]|0)+-16+4+8>>2]|0,Y);c[Y+4>>2]=c[(c[Z>>2]|0)+-32+4+4>>2];c[Y+8>>2]=c[(c[Z>>2]|0)+4+8>>2];if(c[Y>>2]|0){T=(c[Y>>2]|0)+4|0;c[T>>2]=c[T>>2]|128}break}case 210:{c[t>>2]=Gv(c[T>>2]|0,0,c[(c[Z>>2]|0)+-32+4>>2]|0)|0;c[t>>2]=Gv(c[T>>2]|0,c[t>>2]|0,c[(c[Z>>2]|0)+-64+4>>2]|0)|0;c[t>>2]=Gv(c[T>>2]|0,c[t>>2]|0,c[(c[Z>>2]|0)+4>>2]|0)|0;c[Y>>2]=Zv(c[T>>2]|0,c[t>>2]|0,(c[Z>>2]|0)+-48+4|0)|0;$v(c[T>>2]|0,c[(c[Z>>2]|0)+-48+4+8>>2]|0,Y);c[Y+4>>2]=c[(c[Z>>2]|0)+-64+4+4>>2];c[Y+8>>2]=c[(c[Z>>2]|0)+4+8>>2];if(c[Y>>2]|0){T=(c[Y>>2]|0)+4|0;c[T>>2]=c[T>>2]|128}break}case 211:{aw(Y,c[T>>2]|0,d[(c[Z>>2]|0)+2>>0]|0,(c[Z>>2]|0)+-16+4|0,(c[Z>>2]|0)+4|0);break}case 212:{aw(Y,c[T>>2]|0,77,(c[Z>>2]|0)+-32+4|0,(c[Z>>2]|0)+4|0);break}case 213:{_v(Y,c[T>>2]|0,73,(c[Z>>2]|0)+-32+4|0,(c[Z>>2]|0)+4|0);bw(c[T>>2]|0,c[(c[Z>>2]|0)+4>>2]|0,c[Y>>2]|0,76);break}case 214:{_v(Y,c[T>>2]|0,148,(c[Z>>2]|0)+-48+4|0,(c[Z>>2]|0)+4|0);bw(c[T>>2]|0,c[(c[Z>>2]|0)+4>>2]|0,c[Y>>2]|0,77);break}case 216:case 215:{cw(Y,c[T>>2]|0,d[(c[Z>>2]|0)+-16+2>>0]|0,(c[Z>>2]|0)+4|0,(c[Z>>2]|0)+-16+4|0);break}case 217:{cw(Y,c[T>>2]|0,155,(c[Z>>2]|0)+4|0,(c[Z>>2]|0)+-16+4|0);break}case 218:{cw(Y,c[T>>2]|0,156,(c[Z>>2]|0)+4|0,(c[Z>>2]|0)+-16+4|0);break}case 221:{c[u>>2]=Gv(c[T>>2]|0,0,c[(c[Z>>2]|0)+-32+4>>2]|0)|0;c[u>>2]=Gv(c[T>>2]|0,c[u>>2]|0,c[(c[Z>>2]|0)+4>>2]|0)|0;c[Y>>2]=rv(c[T>>2]|0,74,c[(c[Z>>2]|0)+-64+4>>2]|0,0,0)|0;if(c[Y>>2]|0)c[(c[Y>>2]|0)+20>>2]=c[u>>2];else Vu(c[c[T>>2]>>2]|0,c[u>>2]|0);$v(c[T>>2]|0,c[(c[Z>>2]|0)+-48+4>>2]|0,Y);c[Y+4>>2]=c[(c[Z>>2]|0)+-64+4+4>>2];c[Y+8>>2]=c[(c[Z>>2]|0)+4+8>>2];break}case 224:{do if(!(c[(c[Z>>2]|0)+-16+4>>2]|0)){c[Y>>2]=rv(c[T>>2]|0,132,0,0,5092+(c[(c[Z>>2]|0)+-48+4>>2]<<3)|0)|0;Zu(c[c[T>>2]>>2]|0,c[(c[Z>>2]|0)+-64+4>>2]|0)}else{if((c[c[(c[Z>>2]|0)+-16+4>>2]>>2]|0)==1){c[x>>2]=c[c[(c[(c[Z>>2]|0)+-16+4>>2]|0)+4>>2]>>2];c[c[(c[(c[Z>>2]|0)+-16+4>>2]|0)+4>>2]>>2]=0;Vu(c[c[T>>2]>>2]|0,c[(c[Z>>2]|0)+-16+4>>2]|0);if(c[x>>2]|0){S=(c[x>>2]|0)+4|0;c[S>>2]=c[S>>2]&-257;S=(c[x>>2]|0)+4|0;c[S>>2]=c[S>>2]|512}c[Y>>2]=rv(c[T>>2]|0,(c[(c[Z>>2]|0)+-48+4>>2]|0)!=0?78:79,c[(c[Z>>2]|0)+-64+4>>2]|0,c[x>>2]|0,0)|0;break}c[Y>>2]=rv(c[T>>2]|0,75,c[(c[Z>>2]|0)+-64+4>>2]|0,0,0)|0;if(c[Y>>2]|0){c[(c[Y>>2]|0)+20>>2]=c[(c[Z>>2]|0)+-16+4>>2];dw(c[T>>2]|0,c[Y>>2]|0)}else Vu(c[c[T>>2]>>2]|0,c[(c[Z>>2]|0)+-16+4>>2]|0);$v(c[T>>2]|0,c[(c[Z>>2]|0)+-48+4>>2]|0,Y)}while(0);c[Y+4>>2]=c[(c[Z>>2]|0)+-64+4+4>>2];c[Y+8>>2]=(c[(c[Z>>2]|0)+4>>2]|0)+(c[(c[Z>>2]|0)+4+4>>2]|0);break}case 225:{c[Y>>2]=rv(c[T>>2]|0,119,0,0,0)|0;if(c[Y>>2]|0){c[(c[Y>>2]|0)+20>>2]=c[(c[Z>>2]|0)+-16+4>>2];S=(c[Y>>2]|0)+4|0;c[S>>2]=c[S>>2]|2099200;dw(c[T>>2]|0,c[Y>>2]|0)}else Wu(c[c[T>>2]>>2]|0,c[(c[Z>>2]|0)+-16+4>>2]|0);c[Y+4>>2]=c[(c[Z>>2]|0)+-32+4>>2];c[Y+8>>2]=(c[(c[Z>>2]|0)+4>>2]|0)+(c[(c[Z>>2]|0)+4+4>>2]|0);break}case 226:{c[Y>>2]=rv(c[T>>2]|0,75,c[(c[Z>>2]|0)+-64+4>>2]|0,0,0)|0;if(c[Y>>2]|0){c[(c[Y>>2]|0)+20>>2]=c[(c[Z>>2]|0)+-16+4>>2];S=(c[Y>>2]|0)+4|0;c[S>>2]=c[S>>2]|2099200;dw(c[T>>2]|0,c[Y>>2]|0)}else Wu(c[c[T>>2]>>2]|0,c[(c[Z>>2]|0)+-16+4>>2]|0);$v(c[T>>2]|0,c[(c[Z>>2]|0)+-48+4>>2]|0,Y);c[Y+4>>2]=c[(c[Z>>2]|0)+-64+4+4>>2];c[Y+8>>2]=(c[(c[Z>>2]|0)+4>>2]|0)+(c[(c[Z>>2]|0)+4+4>>2]|0);break}case 227:{c[Q>>2]=Nv(c[c[T>>2]>>2]|0,0,(c[Z>>2]|0)+-16+4|0,(c[Z>>2]|0)+4|0)|0;c[Y>>2]=rv(c[T>>2]|0,75,c[(c[Z>>2]|0)+-48+4>>2]|0,0,0)|0;h=c[T>>2]|0;if(c[Y>>2]|0){S=Fv(h,0,c[Q>>2]|0,0,0,0,0,0,0,0)|0;c[(c[Y>>2]|0)+20>>2]=S;S=(c[Y>>2]|0)+4|0;c[S>>2]=c[S>>2]|2099200;dw(c[T>>2]|0,c[Y>>2]|0)}else Yu(c[h>>2]|0,c[Q>>2]|0);$v(c[T>>2]|0,c[(c[Z>>2]|0)+-32+4>>2]|0,Y);c[Y+4>>2]=c[(c[Z>>2]|0)+-48+4+4>>2];h=c[Z>>2]|0;if(c[(c[Z>>2]|0)+4>>2]|0)h=(c[(c[Z>>2]|0)+4>>2]|0)+(c[h+4+4>>2]|0)|0;else h=(c[(c[Z>>2]|0)+-16+4>>2]|0)+(c[h+-16+4+4>>2]|0)|0;c[Y+8>>2]=h;break}case 228:{S=rv(c[T>>2]|0,20,0,0,0)|0;c[Y>>2]=S;c[m>>2]=S;if(c[m>>2]|0){c[(c[m>>2]|0)+20>>2]=c[(c[Z>>2]|0)+-16+4>>2];S=(c[m>>2]|0)+4|0;c[S>>2]=c[S>>2]|2099200;dw(c[T>>2]|0,c[m>>2]|0)}else Wu(c[c[T>>2]>>2]|0,c[(c[Z>>2]|0)+-16+4>>2]|0);c[Y+4>>2]=c[(c[Z>>2]|0)+-48+4>>2];c[Y+8>>2]=(c[(c[Z>>2]|0)+4>>2]|0)+(c[(c[Z>>2]|0)+4+4>>2]|0);break}case 229:{c[Y>>2]=rv(c[T>>2]|0,136,c[(c[Z>>2]|0)+-48+4>>2]|0,0,0)|0;if(c[Y>>2]|0){if(c[(c[Z>>2]|0)+-16+4>>2]|0)h=Gv(c[T>>2]|0,c[(c[Z>>2]|0)+-32+4>>2]|0,c[(c[Z>>2]|0)+-16+4>>2]|0)|0;else h=c[(c[Z>>2]|0)+-32+4>>2]|0;c[(c[Y>>2]|0)+20>>2]=h;dw(c[T>>2]|0,c[Y>>2]|0)}else{Vu(c[c[T>>2]>>2]|0,c[(c[Z>>2]|0)+-32+4>>2]|0);Zu(c[c[T>>2]>>2]|0,c[(c[Z>>2]|0)+-16+4>>2]|0)}c[Y+4>>2]=c[(c[Z>>2]|0)+-64+4>>2];c[Y+8>>2]=(c[(c[Z>>2]|0)+4>>2]|0)+(c[(c[Z>>2]|0)+4+4>>2]|0);break}case 230:{c[Y>>2]=Gv(c[T>>2]|0,c[(c[Z>>2]|0)+-64+4>>2]|0,c[(c[Z>>2]|0)+-32+4>>2]|0)|0;c[Y>>2]=Gv(c[T>>2]|0,c[Y>>2]|0,c[(c[Z>>2]|0)+4>>2]|0)|0;break}case 231:{c[Y>>2]=Gv(c[T>>2]|0,0,c[(c[Z>>2]|0)+-32+4>>2]|0)|0;c[Y>>2]=Gv(c[T>>2]|0,c[Y>>2]|0,c[(c[Z>>2]|0)+4>>2]|0)|0;break}case 238:{c[Y>>2]=Gv(c[T>>2]|0,c[(c[Z>>2]|0)+-32+4>>2]|0,c[(c[Z>>2]|0)+4>>2]|0)|0;break}case 239:{c[Y>>2]=Gv(c[T>>2]|0,0,c[(c[Z>>2]|0)+4>>2]|0)|0;break}case 240:{vv(c[T>>2]|0,(c[Z>>2]|0)+-112+4|0,(c[Z>>2]|0)+-96+4|0,Nv(c[c[T>>2]>>2]|0,0,(c[Z>>2]|0)+-64+4|0,0)|0,c[(c[Z>>2]|0)+-32+4>>2]|0,c[(c[Z>>2]|0)+-160+4>>2]|0,(c[Z>>2]|0)+-176+4|0,c[(c[Z>>2]|0)+4>>2]|0,0,c[(c[Z>>2]|0)+-128+4>>2]|0)|0;break}case 292:case 241:{c[Y>>2]=2;break}case 242:{c[Y>>2]=0;break}case 245:{c[Y>>2]=ew(c[T>>2]|0,c[(c[Z>>2]|0)+-64+4>>2]|0,(c[Z>>2]|0)+-32+4|0,c[(c[Z>>2]|0)+-16+4>>2]|0,c[(c[Z>>2]|0)+4>>2]|0)|0;break}case 246:{c[Y>>2]=ew(c[T>>2]|0,0,(c[Z>>2]|0)+-32+4|0,c[(c[Z>>2]|0)+-16+4>>2]|0,c[(c[Z>>2]|0)+4>>2]|0)|0;break}case 249:{fw(c[T>>2]|0,c[(c[Z>>2]|0)+4>>2]|0,c[(c[Z>>2]|0)+-16+4>>2]|0);break}case 251:case 250:{gw(c[T>>2]|0);break}case 252:{hw(c[T>>2]|0,(c[Z>>2]|0)+-16+4|0,(c[Z>>2]|0)+4|0,0,0);break}case 253:{hw(c[T>>2]|0,(c[Z>>2]|0)+-48+4|0,(c[Z>>2]|0)+-32+4|0,(c[Z>>2]|0)+4|0,0);break}case 254:{hw(c[T>>2]|0,(c[Z>>2]|0)+-64+4|0,(c[Z>>2]|0)+-48+4|0,(c[Z>>2]|0)+-16+4|0,0);break}case 255:{hw(c[T>>2]|0,(c[Z>>2]|0)+-48+4|0,(c[Z>>2]|0)+-32+4|0,(c[Z>>2]|0)+4|0,1);break}case 256:{hw(c[T>>2]|0,(c[Z>>2]|0)+-64+4|0,(c[Z>>2]|0)+-48+4|0,(c[Z>>2]|0)+-16+4|0,1);break}case 265:{c[h>>2]=c[(c[Z>>2]|0)+-48+4>>2];c[h+4>>2]=(c[(c[Z>>2]|0)+4>>2]|0)-(c[(c[Z>>2]|0)+-48+4>>2]|0)+(c[(c[Z>>2]|0)+4+4>>2]|0);iw(c[T>>2]|0,c[(c[Z>>2]|0)+-16+4>>2]|0,h);break}case 266:{jw(c[T>>2]|0,(c[Z>>2]|0)+-112+4|0,(c[Z>>2]|0)+-96+4|0,c[(c[Z>>2]|0)+-80+4>>2]|0,c[(c[Z>>2]|0)+-64+4>>2]|0,c[(c[Z>>2]|0)+-64+4+4>>2]|0,c[(c[Z>>2]|0)+-32+4>>2]|0,c[(c[Z>>2]|0)+4>>2]|0,c[(c[Z>>2]|0)+-160+4>>2]|0,c[(c[Z>>2]|0)+-128+4>>2]|0);h=c[Z>>2]|0;if(!(c[(c[Z>>2]|0)+-96+4+4>>2]|0)){T=h+-112+4|0;c[Y>>2]=c[T>>2];c[Y+4>>2]=c[T+4>>2];break a}else{T=h+-96+4|0;c[Y>>2]=c[T>>2];c[Y+4>>2]=c[T+4>>2];break a}}case 270:case 267:{c[Y>>2]=35;break}case 268:{c[Y>>2]=31;break}case 269:{c[Y>>2]=49;break}case 272:case 271:{c[Y>>2]=d[(c[Z>>2]|0)+2>>0];c[Y+4>>2]=0;break}case 273:{c[Y>>2]=110;c[Y+4>>2]=c[(c[Z>>2]|0)+4>>2];break}case 297:case 276:{c[Y>>2]=0;break}case 298:case 277:{c[Y>>2]=c[(c[Z>>2]|0)+4>>2];break}case 278:{c[(c[(c[(c[Z>>2]|0)+-32+4>>2]|0)+32>>2]|0)+28>>2]=c[(c[Z>>2]|0)+-16+4>>2];c[(c[(c[Z>>2]|0)+-32+4>>2]|0)+32>>2]=c[(c[Z>>2]|0)+-16+4>>2];c[Y>>2]=c[(c[Z>>2]|0)+-32+4>>2];break}case 279:{c[(c[(c[Z>>2]|0)+-16+4>>2]|0)+32>>2]=c[(c[Z>>2]|0)+-16+4>>2];c[Y>>2]=c[(c[Z>>2]|0)+-16+4>>2];break}case 281:{S=(c[Z>>2]|0)+4|0;c[Y>>2]=c[S>>2];c[Y+4>>2]=c[S+4>>2];Ah(c[T>>2]|0,27435,O);break}case 283:{Ah(c[T>>2]|0,27530,L);break}case 284:{Ah(c[T>>2]|0,27614,M);break}case 285:{c[Y>>2]=kw(c[c[T>>2]>>2]|0,(c[Z>>2]|0)+-64+4|0,c[(c[Z>>2]|0)+-16+4>>2]|0,c[(c[Z>>2]|0)+4>>2]|0,c[(c[Z>>2]|0)+-80+4>>2]&255)|0;break}case 286:{c[Y>>2]=lw(c[c[T>>2]>>2]|0,(c[Z>>2]|0)+-32+4|0,c[(c[Z>>2]|0)+-16+4>>2]|0,c[(c[Z>>2]|0)+4>>2]|0,c[(c[Z>>2]|0)+-64+4>>2]&255)|0;break}case 287:{c[Y>>2]=mw(c[c[T>>2]>>2]|0,(c[Z>>2]|0)+-32+4|0,c[(c[Z>>2]|0)+4>>2]|0)|0;break}case 288:{c[Y>>2]=nw(c[c[T>>2]>>2]|0,c[(c[Z>>2]|0)+4>>2]|0)|0;break}case 289:{c[Y>>2]=rv(c[T>>2]|0,57,0,0,0)|0;if(c[Y>>2]|0)a[(c[Y>>2]|0)+1>>0]=4;c[Y+4>>2]=c[(c[Z>>2]|0)+-48+4>>2];c[Y+8>>2]=(c[(c[Z>>2]|0)+4>>2]|0)+(c[(c[Z>>2]|0)+4+4>>2]|0);break}case 290:{c[Y>>2]=rv(c[T>>2]|0,57,0,0,(c[Z>>2]|0)+-16+4|0)|0;if(c[Y>>2]|0)a[(c[Y>>2]|0)+1>>0]=c[(c[Z>>2]|0)+-48+4>>2];c[Y+4>>2]=c[(c[Z>>2]|0)+-80+4>>2];c[Y+8>>2]=(c[(c[Z>>2]|0)+4>>2]|0)+(c[(c[Z>>2]|0)+4+4>>2]|0);break}case 291:{c[Y>>2]=1;break}case 293:{c[Y>>2]=3;break}case 294:{ow(c[T>>2]|0,c[(c[Z>>2]|0)+4>>2]|0,c[(c[Z>>2]|0)+-16+4>>2]|0);break}case 295:{pw(c[T>>2]|0,c[(c[Z>>2]|0)+-48+4>>2]|0,c[(c[Z>>2]|0)+-16+4>>2]|0,c[(c[Z>>2]|0)+4>>2]|0);break}case 296:{qw(c[T>>2]|0,c[(c[Z>>2]|0)+4>>2]|0);break}case 301:{rw(c[T>>2]|0,0,0);break}case 302:{rw(c[T>>2]|0,(c[Z>>2]|0)+-16+4|0,(c[Z>>2]|0)+4|0);break}case 303:{sw(c[T>>2]|0,0,0);break}case 304:{sw(c[T>>2]|0,(c[Z>>2]|0)+-16+4|0,(c[Z>>2]|0)+4|0);break}case 305:{tw(c[T>>2]|0,c[(c[Z>>2]|0)+-48+4>>2]|0,(c[Z>>2]|0)+4|0);break}case 306:{uw(c[T>>2]|0,(c[Z>>2]|0)+4|0);break}case 307:{mv(c[T>>2]|0);vw(c[T>>2]|0,c[(c[Z>>2]|0)+4>>2]|0);break}case 310:{ww(c[T>>2]|0,0);break}case 311:{ww(c[T>>2]|0,(c[Z>>2]|0)+4|0);break}case 312:{xw(c[T>>2]|0,(c[Z>>2]|0)+-48+4|0,(c[Z>>2]|0)+-32+4|0,(c[Z>>2]|0)+4|0,c[(c[Z>>2]|0)+-64+4>>2]|0);break}case 315:{yw(c[T>>2]|0);break}case 319:case 318:case 317:{zw(c[T>>2]|0,(c[Z>>2]|0)+4|0);break}case 323:{c[Y>>2]=0;break}case 325:case 324:{c[Y>>2]=c[(c[Z>>2]|0)+4>>2];break}case 326:{c[Y>>2]=Aw(c[T>>2]|0,0,(c[Z>>2]|0)+-80+4|0,c[(c[Z>>2]|0)+-64+4>>2]|0,c[(c[Z>>2]|0)+-16+4>>2]|0)|0;break}case 327:{c[Y>>2]=Aw(c[T>>2]|0,c[(c[Z>>2]|0)+-112+4>>2]|0,(c[Z>>2]|0)+-80+4|0,c[(c[Z>>2]|0)+-64+4>>2]|0,c[(c[Z>>2]|0)+-16+4>>2]|0)|0;break}default:{}}while(0);c[X>>2]=d[27699+(c[V>>2]<<1)>>0];c[_>>2]=d[27699+(c[V>>2]<<1)+1>>0];V=c[U>>2]|0;c[V>>2]=(c[V>>2]|0)-(c[_>>2]|0);c[W>>2]=Bw(e[(c[Z>>2]|0)+(0-(c[_>>2]|0)<<4)>>1]|0,c[X>>2]&255)|0;if((c[W>>2]|0)>976){Cw(c[U>>2]|0);i=$;return}if((c[W>>2]|0)>435)c[W>>2]=(c[W>>2]|0)+328;h=c[U>>2]|0;if(c[_>>2]|0){c[h>>2]=(c[h>>2]|0)+1;c[Z>>2]=(c[Z>>2]|0)+(0-((c[_>>2]|0)-1)<<4);b[c[Z>>2]>>1]=c[W>>2];a[(c[Z>>2]|0)+2>>0]=c[X>>2];_=(c[Z>>2]|0)+4|0;c[_>>2]=c[Y>>2];c[_+4>>2]=c[Y+4>>2];c[_+8>>2]=c[Y+8>>2];i=$;return}else{dv(h,c[W>>2]|0,c[X>>2]|0,Y);i=$;return}}function fv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;h=e;f=e+12|0;g=e+4|0;c[f>>2]=a;c[e+8>>2]=b;c[g>>2]=c[(c[f>>2]|0)+8>>2];a=c[g>>2]|0;c[h>>2]=d;Ah(a,27341,h);c[(c[f>>2]|0)+8>>2]=c[g>>2];i=e;return}function gv(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;e=m+24|0;f=m+20|0;k=m+16|0;h=m+12|0;g=m+8|0;l=m+4|0;j=m;c[e>>2]=b;c[f>>2]=c[c[e>>2]>>2];if(a[(c[e>>2]|0)+18>>0]|0){i=m;return}if((d[(c[f>>2]|0)+65>>0]|0)==0?(c[(c[e>>2]|0)+68>>2]|0)==0:0){c[k>>2]=Pw(c[e>>2]|0)|0;do if(c[k>>2]|0){do{}while((mA(c[k>>2]|0,61)|0)!=0);Yw(c[k>>2]|0,21)|0;if(!(d[(c[f>>2]|0)+65>>0]|0)){if((c[(c[e>>2]|0)+340>>2]|0)==0?(c[(c[e>>2]|0)+324>>2]|0)==0:0)break;Fz(c[k>>2]|0,0);c[h>>2]=0;while(1){if((c[h>>2]|0)>=(c[(c[f>>2]|0)+20>>2]|0))break;if(((c[(c[e>>2]|0)+340>>2]&1<<c[h>>2]|0)!=0|0)!=0?(Hh(c[k>>2]|0,c[h>>2]|0),Eh(c[k>>2]|0,2,c[h>>2]|0,(c[(c[e>>2]|0)+336>>2]&1<<c[h>>2]|0)!=0&1,c[(c[e>>2]|0)+344+(c[h>>2]<<2)>>2]|0,c[(c[(c[(c[f>>2]|0)+16>>2]|0)+(c[h>>2]<<4)+12>>2]|0)+4>>2]|0)|0,(d[(c[f>>2]|0)+140+5>>0]|0)==0):0)Fh(c[k>>2]|0,1);c[h>>2]=(c[h>>2]|0)+1}c[g>>2]=0;while(1){if((c[g>>2]|0)>=(c[(c[e>>2]|0)+456>>2]|0))break;c[l>>2]=Ax(c[f>>2]|0,c[(c[(c[e>>2]|0)+524>>2]|0)+(c[g>>2]<<2)>>2]|0)|0;Uw(c[k>>2]|0,149,0,0,0,c[l>>2]|0,-10)|0;c[g>>2]=(c[g>>2]|0)+1}c[(c[e>>2]|0)+456>>2]=0;eH(c[e>>2]|0);fH(c[e>>2]|0);a:do if(c[(c[e>>2]|0)+324>>2]|0){c[j>>2]=c[(c[e>>2]|0)+324>>2];a[(c[e>>2]|0)+23>>0]=0;c[g>>2]=0;while(1){if((c[g>>2]|0)>=(c[c[j>>2]>>2]|0))break a;xA(c[e>>2]|0,c[(c[(c[j>>2]|0)+4>>2]|0)+((c[g>>2]|0)*20|0)>>2]|0,c[(c[(c[j>>2]|0)+4>>2]|0)+((c[g>>2]|0)*20|0)+16>>2]|0);c[g>>2]=(c[g>>2]|0)+1}}while(0);Ez(c[k>>2]|0,1)|0}}while(0);if(((c[k>>2]|0)!=0?(c[(c[e>>2]|0)+68>>2]|0)==0:0)?(a[(c[f>>2]|0)+65>>0]|0)==0:0){if((c[(c[e>>2]|0)+412>>2]|0)!=0?(c[(c[e>>2]|0)+72>>2]|0)==0:0)c[(c[e>>2]|0)+72>>2]=1;Jh(c[k>>2]|0,c[e>>2]|0);c[(c[e>>2]|0)+12>>2]=101;i=m;return}c[(c[e>>2]|0)+12>>2]=1;i=m;return}if(c[(c[e>>2]|0)+12>>2]|0){i=m;return}c[(c[e>>2]|0)+12>>2]=1;i=m;return}function hv(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0;j=i;i=i+32|0;d=j+16|0;e=j+12|0;f=j+8|0;h=j+4|0;g=j;c[d>>2]=a;c[e>>2]=b;c[f>>2]=c[c[d>>2]>>2];if(Mw(c[d>>2]|0,22,38426,0,0)|0){i=j;return}c[h>>2]=Pw(c[d>>2]|0)|0;if(!(c[h>>2]|0)){i=j;return}a:do if((c[e>>2]|0)!=7){c[g>>2]=0;while(1){if((c[g>>2]|0)>=(c[(c[f>>2]|0)+20>>2]|0))break a;Rw(c[h>>2]|0,2,c[g>>2]|0,((c[e>>2]|0)==9&1)+1|0)|0;Hh(c[h>>2]|0,c[g>>2]|0);c[g>>2]=(c[g>>2]|0)+1}}while(0);Yw(c[h>>2]|0,1)|0;i=j;return}function iv(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;if(Mw(c[b>>2]|0,22,38449,0,0)|0){i=e;return}c[d>>2]=Pw(c[b>>2]|0)|0;if(!(c[d>>2]|0)){i=e;return}xz(c[d>>2]|0,1,1)|0;i=e;return}function jv(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;if(Mw(c[b>>2]|0,22,38440,0,0)|0){i=e;return}c[d>>2]=Pw(c[b>>2]|0)|0;if(!(c[d>>2]|0)){i=e;return}Rw(c[d>>2]|0,1,1,1)|0;i=e;return}function kv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;j=i;i=i+32|0;e=j+16|0;f=j+12|0;k=j+8|0;h=j+4|0;g=j;c[e>>2]=a;c[f>>2]=b;c[k>>2]=d;c[h>>2]=Dw(c[c[e>>2]>>2]|0,c[k>>2]|0)|0;if(!(c[h>>2]|0)){i=j;return}c[g>>2]=Pw(c[e>>2]|0)|0;if((c[g>>2]|0)!=0?(Mw(c[e>>2]|0,32,c[6348+(c[f>>2]<<2)>>2]|0,c[h>>2]|0,0)|0)==0:0){Uw(c[g>>2]|0,0,c[f>>2]|0,0,0,c[h>>2]|0,-1)|0;i=j;return}Sf(c[c[e>>2]>>2]|0,c[h>>2]|0);i=j;return}function lv(e,f,g,h,j,k,l){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;J=i;i=i+112|0;t=J+16|0;G=J+8|0;s=J;w=J+96|0;m=J+92|0;n=J+88|0;o=J+84|0;x=J+80|0;y=J+76|0;z=J+72|0;r=J+68|0;H=J+64|0;A=J+60|0;F=J+56|0;I=J+52|0;B=J+48|0;u=J+44|0;v=J+40|0;p=J+36|0;q=J+32|0;C=J+28|0;D=J+24|0;E=J+20|0;c[w>>2]=e;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[x>>2]=j;c[y>>2]=k;c[z>>2]=l;c[H>>2]=0;c[A>>2]=c[c[w>>2]>>2];if((d[(c[A>>2]|0)+140+5>>0]|0)!=0?(c[(c[A>>2]|0)+140>>2]|0)==1:0){c[I>>2]=d[(c[A>>2]|0)+140+4>>0];c[H>>2]=nh(c[A>>2]|0,(c[I>>2]|0)==1?20769:20788)|0;c[B>>2]=c[m>>2]}else{c[I>>2]=tz(c[w>>2]|0,c[m>>2]|0,c[n>>2]|0,B)|0;if((c[I>>2]|0)<0){i=J;return}if((c[o>>2]|0)!=0?(c[I>>2]|0)!=1?(c[(c[n>>2]|0)+4>>2]|0)>>>0>0:0:0){Ah(c[w>>2]|0,38316,s);i=J;return}if(c[o>>2]|0)c[I>>2]=1;c[H>>2]=Dw(c[A>>2]|0,c[B>>2]|0)|0}s=(c[w>>2]|0)+500|0;e=c[B>>2]|0;c[s>>2]=c[e>>2];c[s+4>>2]=c[e+4>>2];if(!(c[H>>2]|0)){i=J;return}a:do if(!(yx(c[w>>2]|0,c[H>>2]|0)|0)){if((d[(c[A>>2]|0)+140+4>>0]|0)==1)c[o>>2]=1;c[u>>2]=c[(c[(c[A>>2]|0)+16>>2]|0)+(c[I>>2]<<4)>>2];if(!(Mw(c[w>>2]|0,18,(c[o>>2]|0)==1?20769:20788,0,c[u>>2]|0)|0)){if((c[y>>2]|0)==0?(Mw(c[w>>2]|0,d[38357+((c[o>>2]|0)+(c[x>>2]<<1))>>0]|0,c[H>>2]|0,0,c[u>>2]|0)|0)!=0:0)break;do if(!(a[(c[w>>2]|0)+454>>0]|0)){c[v>>2]=c[(c[(c[A>>2]|0)+16>>2]|0)+(c[I>>2]<<4)>>2];if(pz(c[w>>2]|0)|0)break a;c[r>>2]=pi(c[A>>2]|0,c[H>>2]|0,c[v>>2]|0)|0;if(!(c[r>>2]|0)){if(!(Fj(c[A>>2]|0,c[H>>2]|0,c[v>>2]|0)|0))break;I=c[w>>2]|0;c[t>>2]=c[H>>2];Ah(I,38385,t);break a}m=c[w>>2]|0;if(c[z>>2]|0){bx(m,c[I>>2]|0);break a}else{c[G>>2]=c[B>>2];Ah(m,38361,G);break a}}while(0);c[r>>2]=ph(c[A>>2]|0,72,0)|0;if(!(c[r>>2]|0)){c[(c[w>>2]|0)+12>>2]=7;I=(c[w>>2]|0)+68|0;c[I>>2]=(c[I>>2]|0)+1;break}c[c[r>>2]>>2]=c[H>>2];b[(c[r>>2]|0)+32>>1]=-1;c[(c[r>>2]|0)+64>>2]=c[(c[(c[A>>2]|0)+16>>2]|0)+(c[I>>2]<<4)+12>>2];b[(c[r>>2]|0)+36>>1]=1;b[(c[r>>2]|0)+38>>1]=200;c[(c[w>>2]|0)+488>>2]=c[r>>2];if((a[(c[w>>2]|0)+18>>0]|0)==0?(yQ(c[H>>2]|0,29688)|0)==0:0)c[(c[(c[r>>2]|0)+64>>2]|0)+72>>2]=c[r>>2];if(a[(c[A>>2]|0)+140+5>>0]|0){i=J;return}H=Pw(c[w>>2]|0)|0;c[F>>2]=H;if(!H){i=J;return}ax(c[w>>2]|0,1,c[I>>2]|0);if(c[y>>2]|0)Yw(c[F>>2]|0,149)|0;H=(c[w>>2]|0)+76|0;m=(c[H>>2]|0)+1|0;c[H>>2]=m;c[(c[w>>2]|0)+392>>2]=m;c[C>>2]=m;m=(c[w>>2]|0)+76|0;H=(c[m>>2]|0)+1|0;c[m>>2]=H;c[(c[w>>2]|0)+396>>2]=H;c[D>>2]=H;H=(c[w>>2]|0)+76|0;m=(c[H>>2]|0)+1|0;c[H>>2]=m;c[E>>2]=m;Vw(c[F>>2]|0,51,c[I>>2]|0,c[E>>2]|0,2)|0;Hh(c[F>>2]|0,c[I>>2]|0);c[p>>2]=xz(c[F>>2]|0,45,c[E>>2]|0)|0;c[q>>2]=(c[(c[A>>2]|0)+24>>2]&32768|0)!=0?1:4;Vw(c[F>>2]|0,52,c[I>>2]|0,2,c[q>>2]|0)|0;Vw(c[F>>2]|0,52,c[I>>2]|0,5,d[(c[A>>2]|0)+62>>0]|0)|0;Fz(c[F>>2]|0,c[p>>2]|0);m=c[F>>2]|0;if((c[x>>2]|0)!=0|(c[y>>2]|0)!=0)Rw(m,22,0,c[D>>2]|0)|0;else{H=Rw(m,122,c[I>>2]|0,c[D>>2]|0)|0;c[(c[w>>2]|0)+424>>2]=H}dH(c[w>>2]|0,c[I>>2]|0);Rw(c[F>>2]|0,74,0,c[C>>2]|0)|0;Uw(c[F>>2]|0,27,6,c[E>>2]|0,0,38420,-2)|0;Vw(c[F>>2]|0,75,0,c[E>>2]|0,c[C>>2]|0)|0;Fh(c[F>>2]|0,8);Yw(c[F>>2]|0,61)|0;i=J;return}}while(0);Sf(c[A>>2]|0,c[H>>2]|0);i=J;return}function mv(b){b=b|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=b;b=(c[e>>2]|0)+24|0;a[b>>0]=(a[b>>0]|0)+1<<24>>24;b=(c[c[e>>2]>>2]|0)+248|0;c[b>>2]=(c[b>>2]|0)+1;i=d;return}function nv(e,f,g,h,j){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0;R=i;i=i+208|0;K=R+72|0;I=R+64|0;M=R+32|0;L=R+16|0;J=R+8|0;H=R;k=R+192|0;l=R+188|0;m=R+184|0;n=R+196|0;o=R+180|0;w=R+176|0;r=R+172|0;t=R+168|0;z=R+164|0;u=R+160|0;G=R+156|0;P=R+152|0;Q=R+148|0;O=R+144|0;s=R+124|0;F=R+120|0;q=R+116|0;D=R+112|0;E=R+108|0;p=R+104|0;C=R+100|0;y=R+96|0;x=R+92|0;A=R+88|0;B=R+84|0;N=R+80|0;v=R+76|0;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;a[n>>0]=h;c[o>>2]=j;c[r>>2]=c[c[k>>2]>>2];if((c[m>>2]|0)==0&(c[o>>2]|0)==0){i=R;return}c[w>>2]=c[(c[k>>2]|0)+488>>2];if(!(c[w>>2]|0)){i=R;return}if((a[(c[r>>2]|0)+140+5>>0]|0)!=0?(c[(c[w>>2]|0)+28>>2]=c[(c[r>>2]|0)+140>>2],(c[(c[w>>2]|0)+28>>2]|0)==1):0){h=(c[w>>2]|0)+42|0;a[h>>0]=d[h>>0]|1}do if(d[n>>0]&32){if(d[(c[w>>2]|0)+42>>0]&8){Ah(c[k>>2]|0,37995,H);i=R;return}if(!(d[(c[w>>2]|0)+42>>0]&4)){H=c[k>>2]|0;c[J>>2]=c[c[w>>2]>>2];Ah(H,38045,J);break}else{J=(c[w>>2]|0)+42|0;a[J>>0]=d[J>>0]|96;ZG(c[k>>2]|0,c[w>>2]|0);break}}while(0);c[t>>2]=Dh(c[r>>2]|0,c[(c[w>>2]|0)+64>>2]|0)|0;if(c[(c[w>>2]|0)+24>>2]|0)SG(c[k>>2]|0,c[w>>2]|0,4,0,c[(c[w>>2]|0)+24>>2]|0);_G(c[w>>2]|0);c[z>>2]=c[(c[w>>2]|0)+8>>2];while(1){if(!(c[z>>2]|0))break;VG(c[z>>2]|0);c[z>>2]=c[(c[z>>2]|0)+20>>2]}if(!(a[(c[r>>2]|0)+140+5>>0]|0)){c[G>>2]=Pw(c[k>>2]|0)|0;if(!(c[G>>2]|0)){i=R;return}xz(c[G>>2]|0,61,0)|0;if(!(c[(c[w>>2]|0)+12>>2]|0)){c[P>>2]=33805;c[Q>>2]=38077}else{c[P>>2]=36955;c[Q>>2]=38083}do if(c[o>>2]|0){H=(c[k>>2]|0)+76|0;J=(c[H>>2]|0)+1|0;c[H>>2]=J;c[F>>2]=J;J=(c[k>>2]|0)+76|0;H=(c[J>>2]|0)+1|0;c[J>>2]=H;c[D>>2]=H;H=(c[k>>2]|0)+76|0;J=(c[H>>2]|0)+1|0;c[H>>2]=J;c[E>>2]=J;Bx(c[k>>2]|0);Vw(c[G>>2]|0,55,1,c[(c[k>>2]|0)+396>>2]|0,c[t>>2]|0)|0;Fh(c[G>>2]|0,16);c[(c[k>>2]|0)+72>>2]=2;c[q>>2]=(Bz(c[G>>2]|0)|0)+1;Vw(c[G>>2]|0,16,c[F>>2]|0,0,c[q>>2]|0)|0;ZA(s,13,c[F>>2]|0);Cv(c[k>>2]|0,c[o>>2]|0,s)|0;xC(c[G>>2]|0,c[F>>2]|0);Fz(c[G>>2]|0,(c[q>>2]|0)-1|0);if(c[(c[k>>2]|0)+68>>2]|0){i=R;return}c[C>>2]=Jx(c[k>>2]|0,c[o>>2]|0)|0;if(!(c[C>>2]|0)){i=R;return}else{b[(c[w>>2]|0)+34>>1]=b[(c[C>>2]|0)+34>>1]|0;c[(c[w>>2]|0)+4>>2]=c[(c[C>>2]|0)+4>>2];b[(c[C>>2]|0)+34>>1]=0;c[(c[C>>2]|0)+4>>2]=0;Qf(c[r>>2]|0,c[C>>2]|0);c[p>>2]=xz(c[G>>2]|0,18,c[s+4>>2]|0)|0;Vw(c[G>>2]|0,49,c[s+8>>2]|0,c[s+12>>2]|0,c[D>>2]|0)|0;AC(c[G>>2]|0,c[w>>2]|0,0);Rw(c[G>>2]|0,74,1,c[E>>2]|0)|0;Vw(c[G>>2]|0,75,1,c[D>>2]|0,c[E>>2]|0)|0;Ez(c[G>>2]|0,c[p>>2]|0)|0;Fz(c[G>>2]|0,c[p>>2]|0);xz(c[G>>2]|0,61,1)|0;break}}while(0);if(c[o>>2]|0)c[O>>2]=$G(c[r>>2]|0,c[w>>2]|0)|0;else{c[y>>2]=(d[n>>0]|0)!=0?(c[k>>2]|0)+508|0:c[m>>2]|0;c[u>>2]=(c[c[y>>2]>>2]|0)-(c[(c[k>>2]|0)+500>>2]|0);if((a[c[c[y>>2]>>2]>>0]|0)!=59)c[u>>2]=(c[u>>2]|0)+(c[(c[y>>2]|0)+4>>2]|0);J=c[r>>2]|0;h=c[u>>2]|0;H=c[(c[k>>2]|0)+500>>2]|0;c[L>>2]=c[Q>>2];c[L+4>>2]=h;c[L+8>>2]=H;c[O>>2]=Bh(J,38088,L)|0}Q=c[k>>2]|0;E=(c[t>>2]|0)==1?20769:20788;F=c[P>>2]|0;h=c[c[w>>2]>>2]|0;H=c[c[w>>2]>>2]|0;J=c[(c[k>>2]|0)+396>>2]|0;L=c[O>>2]|0;P=c[(c[k>>2]|0)+392>>2]|0;c[M>>2]=c[(c[(c[r>>2]|0)+16>>2]|0)+(c[t>>2]<<4)>>2];c[M+4>>2]=E;c[M+8>>2]=F;c[M+12>>2]=h;c[M+16>>2]=H;c[M+20>>2]=J;c[M+24>>2]=L;c[M+28>>2]=P;Ow(Q,38103,M);Sf(c[r>>2]|0,c[O>>2]|0);Qw(c[k>>2]|0,c[t>>2]|0);if((d[(c[w>>2]|0)+42>>0]&8|0)!=0?(c[x>>2]=(c[(c[r>>2]|0)+16>>2]|0)+(c[t>>2]<<4),(c[(c[(c[x>>2]|0)+12>>2]|0)+72>>2]|0)==0):0){Q=c[k>>2]|0;c[I>>2]=c[c[x>>2]>>2];Ow(Q,38190,I)}O=c[G>>2]|0;P=c[t>>2]|0;Q=c[r>>2]|0;c[K>>2]=c[c[w>>2]>>2];Sw(O,P,Bh(Q,38232,K)|0)}if(!(a[(c[r>>2]|0)+140+5>>0]|0)){i=R;return}c[B>>2]=c[(c[w>>2]|0)+64>>2];c[A>>2]=Oj((c[B>>2]|0)+8|0,c[c[w>>2]>>2]|0,c[w>>2]|0)|0;if(c[A>>2]|0){jh(c[r>>2]|0);i=R;return}c[(c[k>>2]|0)+488>>2]=0;Q=(c[r>>2]|0)+24|0;c[Q>>2]=c[Q>>2]|2;if(c[(c[w>>2]|0)+12>>2]|0){i=R;return}c[N>>2]=c[(c[k>>2]|0)+500>>2];if(!(c[c[l>>2]>>2]|0))c[l>>2]=c[m>>2];c[v>>2]=(c[c[l>>2]>>2]|0)-(c[N>>2]|0);Q=13+(Cx(c[N>>2]|0,c[v>>2]|0)|0)|0;c[(c[w>>2]|0)+44>>2]=Q;i=R;return}function ov(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;o=r+8|0;n=r;f=r+40|0;g=r+36|0;l=r+32|0;k=r+28|0;p=r+24|0;m=r+20|0;j=r+16|0;h=r+12|0;c[f>>2]=d;c[g>>2]=e;c[j>>2]=c[c[f>>2]>>2];d=c[(c[f>>2]|0)+488>>2]|0;c[l>>2]=d;if(!d){i=r;return}if(((b[(c[l>>2]|0)+34>>1]|0)+1|0)>(c[(c[j>>2]|0)+88+8>>2]|0)){q=c[f>>2]|0;c[n>>2]=c[c[l>>2]>>2];Ah(q,37946,n);i=r;return}c[p>>2]=Dw(c[j>>2]|0,c[g>>2]|0)|0;if(!(c[p>>2]|0)){i=r;return}c[k>>2]=0;while(1){if((c[k>>2]|0)>=(b[(c[l>>2]|0)+34>>1]|0))break;if(!(Td(c[p>>2]|0,c[(c[(c[l>>2]|0)+4>>2]|0)+((c[k>>2]|0)*24|0)>>2]|0)|0)){q=8;break}c[k>>2]=(c[k>>2]|0)+1}if((q|0)==8){q=c[f>>2]|0;c[o>>2]=c[p>>2];Ah(q,37969,o);Sf(c[j>>2]|0,c[p>>2]|0);i=r;return}do if(!(b[(c[l>>2]|0)+34>>1]&7)){c[h>>2]=Ew(c[j>>2]|0,c[(c[l>>2]|0)+4>>2]|0,((b[(c[l>>2]|0)+34>>1]|0)+8|0)*24|0,0)|0;if(c[h>>2]|0){c[(c[l>>2]|0)+4>>2]=c[h>>2];break}Sf(c[j>>2]|0,c[p>>2]|0);i=r;return}while(0);c[m>>2]=(c[(c[l>>2]|0)+4>>2]|0)+((b[(c[l>>2]|0)+34>>1]|0)*24|0);q=c[m>>2]|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0;c[q+16>>2]=0;c[q+20>>2]=0;c[c[m>>2]>>2]=c[p>>2];a[(c[m>>2]|0)+21>>0]=65;a[(c[m>>2]|0)+22>>0]=1;q=(c[l>>2]|0)+34|0;b[q>>1]=(b[q>>1]|0)+1<<16>>16;i=r;return}function pv(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;f=k+12|0;g=k+8|0;h=k+4|0;j=k;c[f>>2]=d;c[g>>2]=e;c[h>>2]=c[(c[f>>2]|0)+488>>2];if(!(c[h>>2]|0)){i=k;return}if((b[(c[h>>2]|0)+34>>1]|0)<1){i=k;return}c[j>>2]=(c[(c[h>>2]|0)+4>>2]|0)+(((b[(c[h>>2]|0)+34>>1]|0)-1|0)*24|0);Sf(c[c[f>>2]>>2]|0,c[(c[j>>2]|0)+12>>2]|0);e=Dw(c[c[f>>2]>>2]|0,c[g>>2]|0)|0;c[(c[j>>2]|0)+12>>2]=e;e=jx(c[(c[j>>2]|0)+12>>2]|0,(c[j>>2]|0)+22|0)|0;a[(c[j>>2]|0)+21>>0]=e;i=k;return}function qv(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;l=m;f=m+20|0;g=m+16|0;j=m+12|0;k=m+8|0;h=m+4|0;c[f>>2]=d;c[g>>2]=e;c[h>>2]=c[c[f>>2]>>2];c[j>>2]=c[(c[f>>2]|0)+488>>2];if(!(c[j>>2]|0)){e=c[h>>2]|0;l=c[g>>2]|0;l=c[l>>2]|0;Zu(e,l);i=m;return}c[k>>2]=(c[(c[j>>2]|0)+4>>2]|0)+(((b[(c[j>>2]|0)+34>>1]|0)-1|0)*24|0);if(YG(c[c[g>>2]>>2]|0,a[(c[h>>2]|0)+140+5>>0]|0)|0){Zu(c[h>>2]|0,c[(c[k>>2]|0)+4>>2]|0);e=ny(c[h>>2]|0,c[c[g>>2]>>2]|0,1)|0;c[(c[k>>2]|0)+4>>2]=e;Sf(c[h>>2]|0,c[(c[k>>2]|0)+8>>2]|0);e=(c[(c[g>>2]|0)+8>>2]|0)-(c[(c[g>>2]|0)+4>>2]|0)|0;e=Iw(c[h>>2]|0,c[(c[g>>2]|0)+4>>2]|0,e,((e|0)<0)<<31>>31)|0;c[(c[k>>2]|0)+8>>2]=e;e=c[h>>2]|0;l=c[g>>2]|0;l=c[l>>2]|0;Zu(e,l);i=m;return}else{e=c[f>>2]|0;c[l>>2]=c[c[k>>2]>>2];Ah(e,37901,l);e=c[h>>2]|0;l=c[g>>2]|0;l=c[l>>2]|0;Zu(e,l);i=m;return}}function rv(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;g=n+20|0;h=n+16|0;j=n+12|0;k=n+8|0;l=n+4|0;m=n;c[g>>2]=a;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;if((c[h>>2]|0)==72?(c[(c[g>>2]|0)+68>>2]|0)==0:0)c[m>>2]=az(c[c[g>>2]>>2]|0,c[j>>2]|0,c[k>>2]|0)|0;else{c[m>>2]=cz(c[c[g>>2]>>2]|0,c[h>>2]&255,c[l>>2]|0,1)|0;dz(c[c[g>>2]>>2]|0,c[m>>2]|0,c[j>>2]|0,c[k>>2]|0)}if(!(c[m>>2]|0)){f=c[m>>2]|0;i=n;return f|0}Ey(c[g>>2]|0,c[(c[m>>2]|0)+24>>2]|0)|0;f=c[m>>2]|0;i=n;return f|0}function sv(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;f=i;i=i+16|0;g=f+12|0;k=f+8|0;j=f+4|0;h=f;c[g>>2]=a;c[k>>2]=b;c[j>>2]=d;c[h>>2]=e;e=rv(c[k>>2]|0,c[j>>2]|0,0,0,c[h>>2]|0)|0;c[c[g>>2]>>2]=e;c[(c[g>>2]|0)+4>>2]=c[c[h>>2]>>2];c[(c[g>>2]|0)+8>>2]=(c[c[h>>2]>>2]|0)+(c[(c[h>>2]|0)+4>>2]|0);i=f;return}function tv(d,e){d=d|0;e=e|0;var f=0,g=0,h=0,j=0;h=i;i=i+16|0;j=h+8|0;f=h+4|0;g=h;c[j>>2]=d;c[f>>2]=e;c[g>>2]=c[(c[j>>2]|0)+488>>2];if(!(c[g>>2]|0)){i=h;return}if((b[(c[g>>2]|0)+34>>1]|0)<1){i=h;return}a[(c[(c[g>>2]|0)+4>>2]|0)+(((b[(c[g>>2]|0)+34>>1]|0)-1|0)*24|0)+20>>0]=c[f>>2];i=h;return}function uv(e,f,g,h,j){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=i;i=i+64|0;y=z+8|0;k=z;s=z+60|0;t=z+56|0;
  83. u=z+52|0;v=z+48|0;w=z+44|0;p=z+40|0;r=z+36|0;m=z+32|0;l=z+28|0;n=z+24|0;o=z+20|0;q=z+16|0;x=z+12|0;c[s>>2]=e;c[t>>2]=f;c[u>>2]=g;c[v>>2]=h;c[w>>2]=j;c[p>>2]=c[(c[s>>2]|0)+488>>2];c[r>>2]=0;c[m>>2]=-1;if(!(c[p>>2]|0)){x=c[s>>2]|0;x=c[x>>2]|0;y=c[t>>2]|0;Vu(x,y);i=z;return}if(d[(c[s>>2]|0)+454>>0]|0){x=c[s>>2]|0;x=c[x>>2]|0;y=c[t>>2]|0;Vu(x,y);i=z;return}if(d[(c[p>>2]|0)+42>>0]&4){x=c[s>>2]|0;c[k>>2]=c[c[p>>2]>>2];Ah(x,37804,k);x=c[s>>2]|0;x=c[x>>2]|0;y=c[t>>2]|0;Vu(x,y);i=z;return}k=(c[p>>2]|0)+42|0;a[k>>0]=d[k>>0]|4;a:do if(!(c[t>>2]|0)){c[m>>2]=(b[(c[p>>2]|0)+34>>1]|0)-1;q=(c[(c[p>>2]|0)+4>>2]|0)+((c[m>>2]|0)*24|0)+23|0;a[q>>0]=d[q>>0]|1;c[r>>2]=c[(c[(c[p>>2]|0)+4>>2]|0)+((c[m>>2]|0)*24|0)+12>>2];c[n>>2]=1}else{c[n>>2]=c[c[t>>2]>>2];c[l>>2]=0;while(1){if((c[l>>2]|0)>=(c[n>>2]|0))break a;c[o>>2]=Tx(c[(c[(c[t>>2]|0)+4>>2]|0)+((c[l>>2]|0)*20|0)>>2]|0)|0;TG(c[o>>2]|0);b:do if((d[c[o>>2]>>0]|0)==27){c[q>>2]=c[(c[o>>2]|0)+8>>2];c[m>>2]=0;while(1){if((c[m>>2]|0)>=(b[(c[p>>2]|0)+34>>1]|0))break b;k=(Td(c[q>>2]|0,c[(c[(c[p>>2]|0)+4>>2]|0)+((c[m>>2]|0)*24|0)>>2]|0)|0)==0;h=c[m>>2]|0;if(k)break;c[m>>2]=h+1}k=(c[(c[p>>2]|0)+4>>2]|0)+(h*24|0)+23|0;a[k>>0]=d[k>>0]|1;c[r>>2]=c[(c[(c[p>>2]|0)+4>>2]|0)+((c[m>>2]|0)*24|0)+12>>2]}while(0);c[l>>2]=(c[l>>2]|0)+1}}while(0);if((c[n>>2]|0)==1&(c[r>>2]|0)!=0?(r=(Td(c[r>>2]|0,19623)|0)==0,r&(c[w>>2]|0)!=1):0){b[(c[p>>2]|0)+32>>1]=c[m>>2];a[(c[p>>2]|0)+43>>0]=c[u>>2];y=(c[p>>2]|0)+42|0;a[y>>0]=d[y>>0]|c[v>>2]<<3;if(!(c[t>>2]|0)){x=c[s>>2]|0;x=c[x>>2]|0;y=c[t>>2]|0;Vu(x,y);i=z;return}a[(c[s>>2]|0)+452>>0]=a[(c[(c[t>>2]|0)+4>>2]|0)+12>>0]|0;x=c[s>>2]|0;x=c[x>>2]|0;y=c[t>>2]|0;Vu(x,y);i=z;return}h=c[s>>2]|0;if(c[v>>2]|0){Ah(h,37845,y);x=c[s>>2]|0;x=c[x>>2]|0;y=c[t>>2]|0;Vu(x,y);i=z;return}c[x>>2]=vv(h,0,0,0,c[t>>2]|0,c[u>>2]|0,0,0,c[w>>2]|0,0)|0;if(c[x>>2]|0){y=(c[x>>2]|0)+55|0;a[y>>0]=a[y>>0]&-4|2}c[t>>2]=0;x=c[s>>2]|0;x=c[x>>2]|0;y=c[t>>2]|0;Vu(x,y);i=z;return}function vv(f,g,h,j,k,l,m,n,o,p){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;var q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0;ya=i;i=i+352|0;ea=ya+112|0;da=ya+88|0;ca=ya+72|0;ba=ya+64|0;aa=ya+56|0;B=ya+48|0;$=ya+40|0;A=ya+32|0;z=ya+24|0;D=ya+16|0;C=ya+8|0;y=ya;F=ya+336|0;q=ya+332|0;r=ya+328|0;ra=ya+324|0;sa=ya+320|0;la=ya+316|0;G=ya+312|0;ta=ya+308|0;s=ya+304|0;H=ya+300|0;wa=ya+296|0;oa=ya+292|0;va=ya+288|0;xa=ya+284|0;Q=ya+280|0;I=ya+276|0;K=ya+272|0;x=ya+248|0;Z=ya+240|0;ua=ya+236|0;T=ya+232|0;ma=ya+228|0;W=ya+224|0;V=ya+220|0;O=ya+216|0;P=ya+212|0;ja=ya+208|0;X=ya+204|0;t=ya+200|0;v=ya+196|0;E=ya+192|0;w=ya+184|0;u=ya+180|0;R=ya+176|0;Y=ya+172|0;ia=ya+168|0;S=ya+164|0;N=ya+160|0;fa=ya+156|0;U=ya+152|0;L=ya+148|0;ga=ya+144|0;ha=ya+140|0;na=ya+136|0;_=ya+132|0;ka=ya+128|0;J=ya+124|0;M=ya+120|0;pa=ya+116|0;c[F>>2]=f;c[q>>2]=g;c[r>>2]=h;c[ra>>2]=j;c[sa>>2]=k;c[la>>2]=l;c[G>>2]=m;c[ta>>2]=n;c[s>>2]=o;c[H>>2]=p;c[wa>>2]=0;c[oa>>2]=0;c[va>>2]=0;c[xa>>2]=0;c[ua>>2]=c[c[F>>2]>>2];c[W>>2]=0;c[O>>2]=0;c[ja>>2]=0;c[X>>2]=0;a:do if((((d[(c[ua>>2]|0)+65>>0]|0)==0?(d[(c[F>>2]|0)+454>>0]|0)==0:0)?(c[(c[F>>2]|0)+68>>2]|0)<=0:0)?0==(pz(c[F>>2]|0)|0):0){p=c[F>>2]|0;if(c[ra>>2]|0){c[ma>>2]=tz(p,c[q>>2]|0,c[r>>2]|0,W)|0;if((c[ma>>2]|0)<0)break;if(((a[(c[ua>>2]|0)+140+5>>0]|0)==0?(c[oa>>2]=DB(c[F>>2]|0,c[ra>>2]|0)|0,(c[oa>>2]|0)!=0?(c[(c[r>>2]|0)+4>>2]|0)==0:0):0)?(c[(c[oa>>2]|0)+64>>2]|0)==(c[(c[(c[ua>>2]|0)+16>>2]|0)+16+12>>2]|0):0)c[ma>>2]=1;EB(x,c[F>>2]|0,c[ma>>2]|0,33970,c[W>>2]|0);FB(x,c[ra>>2]|0)|0;c[oa>>2]=_w(c[F>>2]|0,0,(c[ra>>2]|0)+8|0)|0;if(!(c[oa>>2]|0))break;if((c[ma>>2]|0)==1?(c[(c[(c[ua>>2]|0)+16>>2]|0)+(c[ma>>2]<<4)+12>>2]|0)!=(c[(c[oa>>2]|0)+64>>2]|0):0){qa=c[F>>2]|0;c[y>>2]=c[c[oa>>2]>>2];Ah(qa,37370,y);break}if(d[(c[oa>>2]|0)+42>>0]&32)c[X>>2]=Ej(c[oa>>2]|0)|0}else{c[oa>>2]=c[p+488>>2];if(!(c[oa>>2]|0))break;c[ma>>2]=Dh(c[ua>>2]|0,c[(c[oa>>2]|0)+64>>2]|0)|0}c[T>>2]=(c[(c[ua>>2]|0)+16>>2]|0)+(c[ma>>2]<<4);if(((zd(c[c[oa>>2]>>2]|0,28715,7)|0)==0?(d[(c[ua>>2]|0)+140+5>>0]|0)==0:0)?(zd((c[c[oa>>2]>>2]|0)+7|0,37420,9)|0)!=0:0){qa=c[F>>2]|0;c[C>>2]=c[c[oa>>2]>>2];Ah(qa,37430,C);break}if(c[(c[oa>>2]|0)+12>>2]|0){Ah(c[F>>2]|0,37458,D);break}if(d[(c[oa>>2]|0)+42>>0]&16){Ah(c[F>>2]|0,37483,z);break}if(c[W>>2]|0){c[xa>>2]=Dw(c[ua>>2]|0,c[W>>2]|0)|0;if(!(c[xa>>2]|0))break;if(yx(c[F>>2]|0,c[xa>>2]|0)|0)break;if((a[(c[ua>>2]|0)+140+5>>0]|0)==0?(pi(c[ua>>2]|0,c[xa>>2]|0,0)|0)!=0:0){qa=c[F>>2]|0;c[A>>2]=c[xa>>2];Ah(qa,37517,A);break}if(Fj(c[ua>>2]|0,c[xa>>2]|0,c[c[T>>2]>>2]|0)|0){p=c[F>>2]|0;if(c[H>>2]|0){bx(p,c[ma>>2]|0);break}else{c[$>>2]=c[xa>>2];Ah(p,37551,$);break}}}else{c[v>>2]=c[(c[oa>>2]|0)+8>>2];c[t>>2]=1;while(1){if(!(c[v>>2]|0))break;c[v>>2]=c[(c[v>>2]|0)+20>>2];c[t>>2]=(c[t>>2]|0)+1}$=c[ua>>2]|0;H=c[t>>2]|0;c[B>>2]=c[c[oa>>2]>>2];c[B+4>>2]=H;c[xa>>2]=Bh($,37575,B)|0;if(!(c[xa>>2]|0))break}c[E>>2]=c[c[T>>2]>>2];if((Mw(c[F>>2]|0,18,(c[ma>>2]|0)==1?20769:20788,0,c[E>>2]|0)|0)==0?(c[I>>2]=1,c[I>>2]=(c[ma>>2]|0)==1?3:1,(Mw(c[F>>2]|0,c[I>>2]|0,c[xa>>2]|0,c[c[oa>>2]>>2]|0,c[E>>2]|0)|0)==0):0){if(!(c[sa>>2]|0)){Cy(w,c[(c[(c[oa>>2]|0)+4>>2]|0)+(((b[(c[oa>>2]|0)+34>>1]|0)-1|0)*24|0)>>2]|0);$=c[F>>2]|0;c[sa>>2]=Gv($,0,cz(c[ua>>2]|0,27,w,0)|0)|0;if(!(c[sa>>2]|0))break;Pv(c[sa>>2]|0,c[s>>2]|0)}else Sv(c[F>>2]|0,c[sa>>2]|0,33970);c[I>>2]=0;while(1){if((c[I>>2]|0)>=(c[c[sa>>2]>>2]|0))break;c[u>>2]=c[(c[(c[sa>>2]|0)+4>>2]|0)+((c[I>>2]|0)*20|0)>>2];if((d[c[u>>2]>>0]|0)==95){$=1+(If(c[(c[u>>2]|0)+8>>2]|0)|0)|0;c[O>>2]=(c[O>>2]|0)+$}c[I>>2]=(c[I>>2]|0)+1}c[Q>>2]=If(c[xa>>2]|0)|0;if(c[X>>2]|0)p=e[(c[X>>2]|0)+50>>1]|0;else p=1;c[P>>2]=p;c[va>>2]=HD(c[ua>>2]|0,(c[c[sa>>2]>>2]|0)+(c[P>>2]|0)&65535,(c[Q>>2]|0)+(c[O>>2]|0)+1|0,ja)|0;if(!(a[(c[ua>>2]|0)+65>>0]|0)){c[c[va>>2]>>2]=c[ja>>2];c[ja>>2]=(c[ja>>2]|0)+((c[Q>>2]|0)+1);iR(c[c[va>>2]>>2]|0,c[xa>>2]|0,(c[Q>>2]|0)+1|0)|0;c[(c[va>>2]|0)+12>>2]=c[oa>>2];a[(c[va>>2]|0)+54>>0]=c[la>>2];$=(c[va>>2]|0)+55|0;a[$>>0]=a[$>>0]&-9|((c[la>>2]|0)!=0&1)<<3&255;$=(c[va>>2]|0)+55|0;a[$>>0]=a[$>>0]&-4|((c[W>>2]|0)!=0?0:1)&3;c[(c[va>>2]|0)+24>>2]=c[(c[(c[ua>>2]|0)+16>>2]|0)+(c[ma>>2]<<4)+12>>2];b[(c[va>>2]|0)+50>>1]=c[c[sa>>2]>>2];if(c[ta>>2]|0){SG(c[F>>2]|0,c[oa>>2]|0,16,c[ta>>2]|0,0);c[(c[va>>2]|0)+36>>2]=c[ta>>2];c[ta>>2]=0}if((d[(c[(c[T>>2]|0)+12>>2]|0)+76>>0]|0)>=4)c[Z>>2]=-1;else c[Z>>2]=0;c[I>>2]=0;c[V>>2]=c[(c[sa>>2]|0)+4>>2];while(1){if((c[I>>2]|0)>=(c[c[sa>>2]>>2]|0))break;TG(c[c[V>>2]>>2]|0);SG(c[F>>2]|0,c[oa>>2]|0,32,c[c[V>>2]>>2]|0,0);if(c[(c[F>>2]|0)+68>>2]|0)break a;c[R>>2]=Tx(c[c[V>>2]>>2]|0)|0;if((d[c[R>>2]>>0]|0)!=152){if((c[oa>>2]|0)==(c[(c[F>>2]|0)+488>>2]|0)){qa=65;break}do if(!(c[(c[va>>2]|0)+40>>2]|0)){c[S>>2]=vy(c[ua>>2]|0,c[sa>>2]|0,0)|0;c[(c[va>>2]|0)+40>>2]=c[S>>2];if(a[(c[ua>>2]|0)+65>>0]|0)break;c[V>>2]=(c[(c[S>>2]|0)+4>>2]|0)+((c[I>>2]|0)*20|0)}while(0);c[K>>2]=-2;b[(c[(c[va>>2]|0)+4>>2]|0)+(c[I>>2]<<1)>>1]=-2;$=(c[va>>2]|0)+55|0;a[$>>0]=a[$>>0]&-9}else{c[K>>2]=b[(c[R>>2]|0)+32>>1];do if((c[K>>2]|0)<0)c[K>>2]=b[(c[oa>>2]|0)+32>>1];else{if(d[(c[(c[oa>>2]|0)+4>>2]|0)+((c[K>>2]|0)*24|0)+20>>0]|0)break;$=(c[va>>2]|0)+55|0;a[$>>0]=a[$>>0]&-9}while(0);b[(c[(c[va>>2]|0)+4>>2]|0)+(c[I>>2]<<1)>>1]=c[K>>2]}c[ia>>2]=0;do if((d[c[c[V>>2]>>2]>>0]|0)==95){c[ia>>2]=c[(c[c[V>>2]>>2]|0)+8>>2];c[N>>2]=(If(c[ia>>2]|0)|0)+1;iR(c[ja>>2]|0,c[ia>>2]|0,c[N>>2]|0)|0;c[ia>>2]=c[ja>>2];c[ja>>2]=(c[ja>>2]|0)+(c[N>>2]|0);c[O>>2]=(c[O>>2]|0)-(c[N>>2]|0)}else{if((c[K>>2]|0)<0)break;c[ia>>2]=c[(c[(c[oa>>2]|0)+4>>2]|0)+((c[K>>2]|0)*24|0)+16>>2]}while(0);if(!(c[ia>>2]|0))c[ia>>2]=35690;if((a[(c[ua>>2]|0)+140+5>>0]|0)==0?(Dz(c[F>>2]|0,c[ia>>2]|0)|0)==0:0)break a;c[(c[(c[va>>2]|0)+32>>2]|0)+(c[I>>2]<<2)>>2]=c[ia>>2];c[Y>>2]=d[(c[V>>2]|0)+12>>0]&c[Z>>2];a[(c[(c[va>>2]|0)+28>>2]|0)+(c[I>>2]|0)>>0]=c[Y>>2];c[I>>2]=(c[I>>2]|0)+1;c[V>>2]=(c[V>>2]|0)+20}if((qa|0)==65){Ah(c[F>>2]|0,37598,aa);break}b:do if(c[X>>2]|0){c[K>>2]=0;while(1){if((c[K>>2]|0)>=(e[(c[X>>2]|0)+50>>1]|0))break b;c[fa>>2]=b[(c[(c[X>>2]|0)+4>>2]|0)+(c[K>>2]<<1)>>1];if(UG(c[(c[va>>2]|0)+4>>2]|0,e[(c[va>>2]|0)+50>>1]|0,c[fa>>2]|0)|0){ja=(c[va>>2]|0)+52|0;b[ja>>1]=(b[ja>>1]|0)+-1<<16>>16}else{b[(c[(c[va>>2]|0)+4>>2]|0)+(c[I>>2]<<1)>>1]=c[fa>>2];c[(c[(c[va>>2]|0)+32>>2]|0)+(c[I>>2]<<2)>>2]=c[(c[(c[X>>2]|0)+32>>2]|0)+(c[K>>2]<<2)>>2];a[(c[(c[va>>2]|0)+28>>2]|0)+(c[I>>2]|0)>>0]=a[(c[(c[X>>2]|0)+28>>2]|0)+(c[K>>2]|0)>>0]|0;c[I>>2]=(c[I>>2]|0)+1}c[K>>2]=(c[K>>2]|0)+1}}else{b[(c[(c[va>>2]|0)+4>>2]|0)+(c[I>>2]<<1)>>1]=-1;c[(c[(c[va>>2]|0)+32>>2]|0)+(c[I>>2]<<2)>>2]=35690}while(0);Cj(c[va>>2]|0);if(!(c[(c[F>>2]|0)+488>>2]|0))VG(c[va>>2]|0);c:do if((c[oa>>2]|0)==(c[(c[F>>2]|0)+488>>2]|0)){c[U>>2]=c[(c[oa>>2]|0)+8>>2];while(1){if(!(c[U>>2]|0))break c;if((e[(c[U>>2]|0)+50>>1]|0)==(e[(c[va>>2]|0)+50>>1]|0)){c[L>>2]=0;while(1){if((c[L>>2]|0)>=(e[(c[U>>2]|0)+50>>1]|0))break;if((b[(c[(c[U>>2]|0)+4>>2]|0)+(c[L>>2]<<1)>>1]|0)!=(b[(c[(c[va>>2]|0)+4>>2]|0)+(c[L>>2]<<1)>>1]|0))break;c[ga>>2]=c[(c[(c[U>>2]|0)+32>>2]|0)+(c[L>>2]<<2)>>2];c[ha>>2]=c[(c[(c[va>>2]|0)+32>>2]|0)+(c[L>>2]<<2)>>2];if((c[ga>>2]|0)!=(c[ha>>2]|0)?(Td(c[ga>>2]|0,c[ha>>2]|0)|0)!=0:0)break;c[L>>2]=(c[L>>2]|0)+1}if((c[L>>2]|0)==(e[(c[U>>2]|0)+50>>1]|0))break}c[U>>2]=c[(c[U>>2]|0)+20>>2]}do if((d[(c[U>>2]|0)+54>>0]|0)!=(d[(c[va>>2]|0)+54>>0]|0)){do if((d[(c[U>>2]|0)+54>>0]|0)!=10){if((d[(c[va>>2]|0)+54>>0]|0)==10)break;qa=c[F>>2]|0;c[ba>>2]=0;Ah(qa,37659,ba)}while(0);if((d[(c[U>>2]|0)+54>>0]|0)!=10)break;a[(c[U>>2]|0)+54>>0]=a[(c[va>>2]|0)+54>>0]|0}while(0);c[wa>>2]=c[U>>2];break a}while(0);do if(a[(c[ua>>2]|0)+140+5>>0]|0){c[na>>2]=Oj((c[(c[va>>2]|0)+24>>2]|0)+24|0,c[c[va>>2]>>2]|0,c[va>>2]|0)|0;p=c[ua>>2]|0;if(c[na>>2]|0){jh(p);break a}na=p+24|0;c[na>>2]=c[na>>2]|2;if(!(c[ra>>2]|0))break;c[(c[va>>2]|0)+44>>2]=c[(c[ua>>2]|0)+140>>2]}else{if(!((c[ra>>2]|0)!=0?1:(d[(c[oa>>2]|0)+42>>0]&32|0)==0))break;ja=(c[F>>2]|0)+76|0;na=(c[ja>>2]|0)+1|0;c[ja>>2]=na;c[J>>2]=na;c[_>>2]=Pw(c[F>>2]|0)|0;if(!(c[_>>2]|0))break a;ax(c[F>>2]|0,1,c[ma>>2]|0);na=Yw(c[_>>2]|0,160)|0;c[(c[va>>2]|0)+44>>2]=na;Rw(c[_>>2]|0,121,c[ma>>2]|0,c[J>>2]|0)|0;if(c[G>>2]|0){c[M>>2]=(c[(c[F>>2]|0)+508>>2]|0)-(c[c[W>>2]>>2]|0)+(c[(c[F>>2]|0)+508+4>>2]|0);if((a[(c[c[W>>2]>>2]|0)+((c[M>>2]|0)-1)>>0]|0)==59)c[M>>2]=(c[M>>2]|0)+-1;na=c[ua>>2]|0;ia=c[M>>2]|0;ja=c[c[W>>2]>>2]|0;c[ca>>2]=(c[la>>2]|0)==0?19266:37701;c[ca+4>>2]=ia;c[ca+8>>2]=ja;c[ka>>2]=Bh(na,37709,ca)|0}else c[ka>>2]=0;na=c[F>>2]|0;fa=(c[ma>>2]|0)==1?20769:20788;ga=c[c[va>>2]>>2]|0;ha=c[c[oa>>2]>>2]|0;ia=c[J>>2]|0;ja=c[ka>>2]|0;c[da>>2]=c[(c[(c[ua>>2]|0)+16>>2]|0)+(c[ma>>2]<<4)>>2];c[da+4>>2]=fa;c[da+8>>2]=ga;c[da+12>>2]=ha;c[da+16>>2]=ia;c[da+20>>2]=ja;Ow(na,37729,da);Sf(c[ua>>2]|0,c[ka>>2]|0);if(c[ra>>2]|0){Uz(c[F>>2]|0,c[va>>2]|0,c[J>>2]|0);Qw(c[F>>2]|0,c[ma>>2]|0);ka=c[_>>2]|0;ma=c[ma>>2]|0;na=c[ua>>2]|0;c[ea>>2]=c[c[va>>2]>>2];Sw(ka,ma,Bh(na,37777,ea)|0);xz(c[_>>2]|0,147,0)|0}Fz(c[_>>2]|0,c[(c[va>>2]|0)+44>>2]|0)}while(0);if(!((c[ra>>2]|0)==0?1:(d[(c[ua>>2]|0)+140+5>>0]|0)!=0))break;do if((c[la>>2]|0)!=5)qa=132;else{if(!(c[(c[oa>>2]|0)+8>>2]|0)){qa=132;break}if((d[(c[(c[oa>>2]|0)+8>>2]|0)+54>>0]|0)==5){qa=132;break}c[pa>>2]=c[(c[oa>>2]|0)+8>>2];while(1){if(c[(c[pa>>2]|0)+20>>2]|0)l=(d[(c[(c[pa>>2]|0)+20>>2]|0)+54>>0]|0)!=5;else l=0;p=c[(c[pa>>2]|0)+20>>2]|0;if(!l)break;c[pa>>2]=p}c[(c[va>>2]|0)+20>>2]=p;c[(c[pa>>2]|0)+20>>2]=c[va>>2]}while(0);if((qa|0)==132){c[(c[va>>2]|0)+20>>2]=c[(c[oa>>2]|0)+8>>2];c[(c[oa>>2]|0)+8>>2]=c[va>>2]}c[wa>>2]=c[va>>2];c[va>>2]=0}}}while(0);if(!(c[va>>2]|0)){qa=c[ua>>2]|0;va=c[ta>>2]|0;Zu(qa,va);va=c[ua>>2]|0;ta=c[sa>>2]|0;Vu(va,ta);ta=c[ua>>2]|0;va=c[ra>>2]|0;Yu(ta,va);va=c[ua>>2]|0;xa=c[xa>>2]|0;Sf(va,xa);xa=c[wa>>2]|0;i=ya;return xa|0}WG(c[ua>>2]|0,c[va>>2]|0);qa=c[ua>>2]|0;va=c[ta>>2]|0;Zu(qa,va);va=c[ua>>2]|0;ta=c[sa>>2]|0;Vu(va,ta);ta=c[ua>>2]|0;va=c[ra>>2]|0;Yu(ta,va);va=c[ua>>2]|0;xa=c[xa>>2]|0;Sf(va,xa);xa=c[wa>>2]|0;i=ya;return xa|0}function wv(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;f=k+12|0;g=k+8|0;j=k+4|0;h=k;c[f>>2]=b;c[g>>2]=e;c[j>>2]=c[(c[f>>2]|0)+488>>2];c[h>>2]=c[c[f>>2]>>2];if(((c[j>>2]|0)!=0?(a[(c[f>>2]|0)+454>>0]|0)==0:0)?(Ei(c[(c[(c[h>>2]|0)+16>>2]|0)+(d[(c[h>>2]|0)+140+4>>0]<<4)+4>>2]|0)|0)==0:0){b=Gv(c[f>>2]|0,c[(c[j>>2]|0)+24>>2]|0,c[g>>2]|0)|0;c[(c[j>>2]|0)+24>>2]=b;if(!(c[(c[f>>2]|0)+328+4>>2]|0)){i=k;return}Hv(c[f>>2]|0,c[(c[j>>2]|0)+24>>2]|0,(c[f>>2]|0)+328|0,1);i=k;return}Zu(c[c[f>>2]>>2]|0,c[g>>2]|0);i=k;return}function xv(e,f,g,h,j){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+96|0;B=E+16|0;o=E+8|0;n=E;p=E+80|0;q=E+76|0;k=E+72|0;r=E+68|0;s=E+64|0;t=E+60|0;z=E+56|0;A=E+52|0;y=E+48|0;m=E+44|0;u=E+40|0;x=E+36|0;C=E+32|0;l=E+28|0;v=E+24|0;w=E+20|0;c[p>>2]=e;c[q>>2]=f;c[k>>2]=g;c[r>>2]=h;c[s>>2]=j;c[t>>2]=c[c[p>>2]>>2];c[z>>2]=0;c[y>>2]=c[(c[p>>2]|0)+488>>2];a:do if((c[y>>2]|0)!=0?(d[(c[p>>2]|0)+454>>0]|0)==0:0){if(!(c[q>>2]|0)){c[l>>2]=(b[(c[y>>2]|0)+34>>1]|0)-1;if((c[l>>2]|0)<0)break;if((c[r>>2]|0)!=0?(c[c[r>>2]>>2]|0)!=1:0){D=c[p>>2]|0;C=c[k>>2]|0;c[n>>2]=c[(c[(c[y>>2]|0)+4>>2]|0)+((c[l>>2]|0)*24|0)>>2];c[n+4>>2]=C;Ah(D,37167,n);break}c[x>>2]=1}else{if((c[r>>2]|0)!=0?(c[c[r>>2]>>2]|0)!=(c[c[q>>2]>>2]|0):0){Ah(c[p>>2]|0,37230,o);break}c[x>>2]=c[c[q>>2]>>2]}c[m>>2]=44+((c[x>>2]|0)-1<<3)+(c[(c[k>>2]|0)+4>>2]|0)+1;b:do if(c[r>>2]|0){c[u>>2]=0;while(1){if((c[u>>2]|0)>=(c[c[r>>2]>>2]|0))break b;o=(If(c[(c[(c[r>>2]|0)+4>>2]|0)+((c[u>>2]|0)*20|0)+4>>2]|0)|0)+1|0;c[m>>2]=(c[m>>2]|0)+o;c[u>>2]=(c[u>>2]|0)+1}}while(0);o=c[m>>2]|0;c[z>>2]=ph(c[t>>2]|0,o,((o|0)<0)<<31>>31)|0;if(c[z>>2]|0){c[c[z>>2]>>2]=c[y>>2];c[(c[z>>2]|0)+4>>2]=c[(c[y>>2]|0)+16>>2];c[C>>2]=(c[z>>2]|0)+36+(c[x>>2]<<3);c[(c[z>>2]|0)+8>>2]=c[C>>2];iR(c[C>>2]|0,c[c[k>>2]>>2]|0,c[(c[k>>2]|0)+4>>2]|0)|0;a[(c[C>>2]|0)+(c[(c[k>>2]|0)+4>>2]|0)>>0]=0;Jw(c[C>>2]|0)|0;c[C>>2]=(c[C>>2]|0)+((c[(c[k>>2]|0)+4>>2]|0)+1);c[(c[z>>2]|0)+20>>2]=c[x>>2];c:do if(!(c[q>>2]|0))c[(c[z>>2]|0)+36>>2]=(b[(c[y>>2]|0)+34>>1]|0)-1;else{c[u>>2]=0;while(1){if((c[u>>2]|0)>=(c[x>>2]|0))break c;c[v>>2]=0;while(1){if((c[v>>2]|0)>=(b[(c[y>>2]|0)+34>>1]|0))break;o=(Td(c[(c[(c[y>>2]|0)+4>>2]|0)+((c[v>>2]|0)*24|0)>>2]|0,c[(c[(c[q>>2]|0)+4>>2]|0)+((c[u>>2]|0)*20|0)+4>>2]|0)|0)==0;k=c[v>>2]|0;if(o){D=25;break}c[v>>2]=k+1}if((D|0)==25){D=0;c[(c[z>>2]|0)+36+(c[u>>2]<<3)>>2]=k}if((c[v>>2]|0)>=(b[(c[y>>2]|0)+34>>1]|0))break;c[u>>2]=(c[u>>2]|0)+1}D=c[p>>2]|0;c[B>>2]=c[(c[(c[q>>2]|0)+4>>2]|0)+((c[u>>2]|0)*20|0)+4>>2];Ah(D,37324,B);break a}while(0);d:do if(c[r>>2]|0){c[u>>2]=0;while(1){if((c[u>>2]|0)>=(c[x>>2]|0))break d;c[w>>2]=If(c[(c[(c[r>>2]|0)+4>>2]|0)+((c[u>>2]|0)*20|0)+4>>2]|0)|0;c[(c[z>>2]|0)+36+(c[u>>2]<<3)+4>>2]=c[C>>2];iR(c[C>>2]|0,c[(c[(c[r>>2]|0)+4>>2]|0)+((c[u>>2]|0)*20|0)+4>>2]|0,c[w>>2]|0)|0;a[(c[C>>2]|0)+(c[w>>2]|0)>>0]=0;c[C>>2]=(c[C>>2]|0)+((c[w>>2]|0)+1);c[u>>2]=(c[u>>2]|0)+1}}while(0);a[(c[z>>2]|0)+24>>0]=0;a[(c[z>>2]|0)+25>>0]=c[s>>2];a[(c[z>>2]|0)+25+1>>0]=c[s>>2]>>8;c[A>>2]=Oj((c[(c[y>>2]|0)+64>>2]|0)+56|0,c[(c[z>>2]|0)+8>>2]|0,c[z>>2]|0)|0;if((c[A>>2]|0)==(c[z>>2]|0)){jh(c[t>>2]|0);break}if(c[A>>2]|0){c[(c[z>>2]|0)+12>>2]=c[A>>2];c[(c[A>>2]|0)+16>>2]=c[z>>2]}c[(c[y>>2]|0)+16>>2]=c[z>>2];c[z>>2]=0}}while(0);Sf(c[t>>2]|0,c[z>>2]|0);Vu(c[t>>2]|0,c[q>>2]|0);Vu(c[t>>2]|0,c[r>>2]|0);i=E;return}function yv(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;h=i;i=i+16|0;j=h+12|0;e=h+8|0;g=h+4|0;f=h;c[j>>2]=b;c[e>>2]=d;b=c[(c[j>>2]|0)+488>>2]|0;c[g>>2]=b;if(!b){i=h;return}j=c[(c[g>>2]|0)+16>>2]|0;c[f>>2]=j;if(!j){i=h;return}a[(c[f>>2]|0)+24>>0]=c[e>>2];i=h;return}function zv(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;e=m+24|0;f=m+20|0;j=m+16|0;h=m+12|0;l=m+8|0;g=m+4|0;k=m;c[e>>2]=a;c[f>>2]=d;d=c[(c[e>>2]|0)+488>>2]|0;c[j>>2]=d;if(!d){i=m;return}c[h>>2]=(b[(c[j>>2]|0)+34>>1]|0)-1;c[g>>2]=c[c[e>>2]>>2];c[l>>2]=Dw(c[g>>2]|0,c[f>>2]|0)|0;if(!(c[l>>2]|0)){i=m;return}d=(Dz(c[e>>2]|0,c[l>>2]|0)|0)!=0;e=c[g>>2]|0;if(!d){Sf(e,c[l>>2]|0);i=m;return}Sf(e,c[(c[(c[j>>2]|0)+4>>2]|0)+((c[h>>2]|0)*24|0)+16>>2]|0);c[(c[(c[j>>2]|0)+4>>2]|0)+((c[h>>2]|0)*24|0)+16>>2]=c[l>>2];c[k>>2]=c[(c[j>>2]|0)+8>>2];while(1){if(!(c[k>>2]|0))break;if((b[c[(c[k>>2]|0)+4>>2]>>1]|0)==(c[h>>2]|0))c[c[(c[k>>2]|0)+32>>2]>>2]=c[(c[(c[j>>2]|0)+4>>2]|0)+((c[h>>2]|0)*24|0)+16>>2];c[k>>2]=c[(c[k>>2]|0)+20>>2]}i=m;return}function Av(b,e,f,g){b=b|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=i;i=i+80|0;t=x+16|0;s=x+8|0;r=x;h=x+64|0;j=x+60|0;k=x+56|0;l=x+52|0;p=x+48|0;q=x+44|0;n=x+40|0;o=x+36|0;m=x+32|0;w=x+28|0;v=x+24|0;u=x+20|0;c[h>>2]=b;c[j>>2]=e;c[k>>2]=f;c[l>>2]=g;c[n>>2]=c[c[h>>2]>>2];do if((a[(c[n>>2]|0)+65>>0]|0)==0?(pz(c[h>>2]|0)|0)==0:0){if(c[l>>2]|0){b=(c[n>>2]|0)+69|0;a[b>>0]=(a[b>>0]|0)+1<<24>>24}c[p>>2]=_w(c[h>>2]|0,c[k>>2]|0,(c[j>>2]|0)+8|0)|0;if(c[l>>2]|0){b=(c[n>>2]|0)+69|0;a[b>>0]=(a[b>>0]|0)+-1<<24>>24}if(!(c[p>>2]|0)){if(!(c[l>>2]|0))break;zB(c[h>>2]|0,c[(c[j>>2]|0)+8+4>>2]|0);break}c[o>>2]=Dh(c[n>>2]|0,c[(c[p>>2]|0)+64>>2]|0)|0;if((d[(c[p>>2]|0)+42>>0]&16|0)!=0?(zx(c[h>>2]|0,c[p>>2]|0)|0)!=0:0)break;c[w>>2]=(c[o>>2]|0)==1?20769:20788;c[v>>2]=c[(c[(c[n>>2]|0)+16>>2]|0)+(c[o>>2]<<4)>>2];c[u>>2]=0;if(!(Mw(c[h>>2]|0,9,c[w>>2]|0,0,c[v>>2]|0)|0)){do if(c[k>>2]|0)if((c[o>>2]|0)==1){c[m>>2]=15;break}else{c[m>>2]=17;break}else{if(d[(c[p>>2]|0)+42>>0]&16){c[m>>2]=30;c[u>>2]=c[(c[(Ax(c[n>>2]|0,c[p>>2]|0)|0)+4>>2]|0)+4>>2];break}if((c[o>>2]|0)==1){c[m>>2]=13;break}else{c[m>>2]=11;break}}while(0);if((Mw(c[h>>2]|0,c[m>>2]|0,c[c[p>>2]>>2]|0,c[u>>2]|0,c[v>>2]|0)|0)==0?(Mw(c[h>>2]|0,9,c[c[p>>2]>>2]|0,0,c[v>>2]|0)|0)==0:0){if((zd(c[c[p>>2]>>2]|0,28715,7)|0)==0?(zd(c[c[p>>2]>>2]|0,36960,11)|0)!=0:0){w=c[h>>2]|0;c[r>>2]=c[c[p>>2]>>2];Ah(w,36972,r);break}if((c[k>>2]|0)!=0?(c[(c[p>>2]|0)+12>>2]|0)==0:0){w=c[h>>2]|0;c[s>>2]=c[c[p>>2]>>2];Ah(w,37e3,s);break}if((c[k>>2]|0)==0?(c[(c[p>>2]|0)+12>>2]|0)!=0:0){w=c[h>>2]|0;c[t>>2]=c[c[p>>2]>>2];Ah(w,37034,t);break}c[q>>2]=Pw(c[h>>2]|0)|0;if(c[q>>2]|0){ax(c[h>>2]|0,1,c[o>>2]|0);pC(c[h>>2]|0,c[o>>2]|0,31729,c[c[p>>2]>>2]|0);NG(c[h>>2]|0,c[j>>2]|0,c[p>>2]|0);OG(c[h>>2]|0,c[p>>2]|0,c[o>>2]|0,c[k>>2]|0)}}}}while(0);Yu(c[n>>2]|0,c[j>>2]|0);i=x;return}function Bv(e,f,g,h,j,k,l,m){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=i;i=i+96|0;w=D+88|0;n=D+84|0;o=D+80|0;p=D+76|0;x=D+72|0;y=D+68|0;q=D+64|0;r=D+60|0;t=D+56|0;A=D+52|0;C=D+48|0;B=D+40|0;v=D+16|0;u=D+12|0;s=D+8|0;z=D+4|0;c[w>>2]=e;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;c[x>>2]=j;c[y>>2]=k;c[q>>2]=l;c[r>>2]=m;c[u>>2]=0;c[z>>2]=c[c[w>>2]>>2];l=c[w>>2]|0;if((b[(c[w>>2]|0)+444>>1]|0)<=0){lv(l,c[o>>2]|0,c[p>>2]|0,c[q>>2]|0,1,0,c[r>>2]|0);c[t>>2]=c[(c[w>>2]|0)+488>>2];if((((c[t>>2]|0)!=0?(c[(c[w>>2]|0)+68>>2]|0)==0:0)?(tz(c[w>>2]|0,c[o>>2]|0,c[p>>2]|0,u)|0,c[s>>2]=Dh(c[z>>2]|0,c[(c[t>>2]|0)+64>>2]|0)|0,EB(v,c[w>>2]|0,c[s>>2]|0,36955,c[u>>2]|0),(GB(v,c[y>>2]|0)|0)==0):0)?(v=Hx(c[z>>2]|0,c[y>>2]|0,1)|0,c[(c[t>>2]|0)+12>>2]=v,v=vy(c[z>>2]|0,c[x>>2]|0,1)|0,c[(c[t>>2]|0)+24>>2]=v,(a[(c[z>>2]|0)+65>>0]|0)==0):0){v=(c[w>>2]|0)+508|0;c[B>>2]=c[v>>2];c[B+4>>2]=c[v+4>>2];if((a[c[B>>2]>>0]|0)!=59)c[B>>2]=(c[B>>2]|0)+(c[B+4>>2]|0);c[B+4>>2]=0;c[A>>2]=(c[B>>2]|0)-(c[c[n>>2]>>2]|0);c[C>>2]=c[c[n>>2]>>2];while(1){l=c[A>>2]|0;if(!(d[19267+(d[(c[C>>2]|0)+((c[A>>2]|0)-1)>>0]|0)>>0]&1))break;c[A>>2]=l+-1}c[B>>2]=(c[C>>2]|0)+(l-1);c[B+4>>2]=1;nv(c[w>>2]|0,0,B,0,0)}}else Ah(l,36919,D);Wu(c[z>>2]|0,c[y>>2]|0);Vu(c[z>>2]|0,c[x>>2]|0);i=D;return}function Cv(f,g,h){f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0;Da=i;i=i+432|0;w=Da;O=Da+412|0;P=Da+408|0;Q=Da+404|0;R=Da+400|0;$=Da+396|0;ga=Da+392|0;qa=Da+388|0;Ca=Da+384|0;l=Da+380|0;la=Da+376|0;pa=Da+372|0;M=Da+368|0;ma=Da+364|0;na=Da+360|0;sa=Da+356|0;ya=Da+344|0;za=Da+312|0;xa=Da+264|0;da=Da+256|0;Z=Da+252|0;ea=Da+248|0;o=Da+244|0;r=Da+240|0;m=Da+236|0;t=Da+232|0;p=Da+228|0;k=Da+208|0;s=Da+204|0;j=Da+200|0;v=Da+196|0;n=Da+192|0;u=Da+188|0;q=Da+184|0;x=Da+416|0;N=Da+152|0;aa=Da+148|0;ca=Da+144|0;fa=Da+140|0;ba=Da+136|0;_=Da+132|0;T=Da+128|0;Ba=Da+124|0;Aa=Da+120|0;ja=Da+116|0;z=Da+112|0;A=Da+108|0;oa=Da+104|0;S=Da+100|0;U=Da+96|0;ua=Da+92|0;W=Da+88|0;Y=Da+84|0;X=Da+80|0;V=Da+76|0;wa=Da+72|0;ta=Da+68|0;va=Da+64|0;ha=Da+60|0;ia=Da+56|0;ka=Da+52|0;ra=Da+48|0;H=Da+44|0;L=Da+40|0;E=Da+36|0;D=Da+32|0;I=Da+28|0;J=Da+24|0;G=Da+20|0;F=Da+16|0;K=Da+12|0;B=Da+418|0;c[P>>2]=f;c[Q>>2]=g;c[R>>2]=h;c[la>>2]=0;c[sa>>2]=1;c[ea>>2]=c[(c[P>>2]|0)+468>>2];h=(c[P>>2]|0)+472|0;f=c[h>>2]|0;c[h>>2]=f+1;c[(c[P>>2]|0)+468>>2]=f;c[Z>>2]=c[c[P>>2]>>2];if(((c[Q>>2]|0)!=0?(d[(c[Z>>2]|0)+65>>0]|0)==0:0)?(c[(c[P>>2]|0)+68>>2]|0)==0:0){if(Mw(c[P>>2]|0,21,0,0,0)|0){c[O>>2]=1;Ca=c[O>>2]|0;i=Da;return Ca|0}g=xa;h=g+48|0;do{c[g>>2]=0;g=g+4|0}while((g|0)<(h|0));if((d[c[R>>2]>>0]|0)<=8){Vu(c[Z>>2]|0,c[(c[Q>>2]|0)+48>>2]|0);c[(c[Q>>2]|0)+48>>2]=0;f=(c[Q>>2]|0)+6|0;b[f>>1]=e[f>>1]&-2}Kx(c[P>>2]|0,c[Q>>2]|0,0);c[za>>2]=0;c[za+4>>2]=0;c[za+8>>2]=0;c[za+12>>2]=0;c[za+16>>2]=0;c[za+20>>2]=0;c[za+24>>2]=0;c[za+28>>2]=0;c[za>>2]=c[(c[Q>>2]|0)+48>>2];c[pa>>2]=c[(c[Q>>2]|0)+32>>2];a:do if(((c[(c[P>>2]|0)+68>>2]|0)==0?(d[(c[Z>>2]|0)+65>>0]|0)==0:0)?(c[l>>2]=(e[(c[Q>>2]|0)+6>>1]&8|0)!=0&1,(VF(c[P>>2]|0,c[R>>2]|0,c[c[c[Q>>2]>>2]>>2]|0)|0)==0):0){c[$>>2]=0;while(1){if(c[(c[Q>>2]|0)+52>>2]|0)break;if((c[$>>2]|0)>=(c[c[pa>>2]>>2]|0))break;c[o>>2]=(c[pa>>2]|0)+8+((c[$>>2]|0)*72|0);c[r>>2]=c[(c[o>>2]|0)+20>>2];c[t>>2]=c[(c[o>>2]|0)+16>>2];if(c[r>>2]|0){if((b[(c[t>>2]|0)+34>>1]|0)!=(c[c[c[r>>2]>>2]>>2]|0)){y=17;break}c[m>>2]=(e[(c[r>>2]|0)+6>>1]&8|0)!=0&1;if(WF(c[P>>2]|0,c[Q>>2]|0,c[$>>2]|0,c[l>>2]|0,c[m>>2]|0)|0){if(c[m>>2]|0){c[l>>2]=1;f=(c[Q>>2]|0)+6|0;b[f>>1]=e[f>>1]|8}c[$>>2]=-1}c[pa>>2]=c[(c[Q>>2]|0)+32>>2];if(a[(c[Z>>2]|0)+65>>0]|0)break a;if((d[c[R>>2]>>0]|0)>8)c[za>>2]=c[(c[Q>>2]|0)+48>>2]}c[$>>2]=(c[$>>2]|0)+1}if((y|0)==17){Ca=c[P>>2]|0;Aa=c[c[t>>2]>>2]|0;Ba=c[c[c[r>>2]>>2]>>2]|0;c[w>>2]=b[(c[t>>2]|0)+34>>1];c[w+4>>2]=Aa;c[w+8>>2]=Ba;Ah(Ca,36434,w);break}c[Ca>>2]=Pw(c[P>>2]|0)|0;if(c[Ca>>2]|0){if(c[(c[Q>>2]|0)+52>>2]|0){c[sa>>2]=XF(c[P>>2]|0,c[Q>>2]|0,c[R>>2]|0)|0;c[(c[P>>2]|0)+468>>2]=c[ea>>2];c[O>>2]=c[sa>>2];Ca=c[O>>2]|0;i=Da;return Ca|0}c[$>>2]=0;while(1){if((c[$>>2]|0)>=(c[c[pa>>2]>>2]|0))break;c[p>>2]=(c[pa>>2]|0)+8+((c[$>>2]|0)*72|0);c[s>>2]=c[(c[p>>2]|0)+20>>2];do if(c[s>>2]|0){if(c[(c[p>>2]|0)+24>>2]|0){if((d[(c[p>>2]|0)+36+1>>0]|0)>>>4&1)break;Rw(c[Ca>>2]|0,14,c[(c[p>>2]|0)+28>>2]|0,c[(c[p>>2]|0)+24>>2]|0)|0;break}t=YF(c[Q>>2]|0)|0;w=(c[P>>2]|0)+464|0;c[w>>2]=(c[w>>2]|0)+t;if(!(d[(c[p>>2]|0)+36>>0]&32))ZF(c[Z>>2]|0,c[s>>2]|0,c[(c[Q>>2]|0)+36>>2]|0,c[(c[p>>2]|0)+44>>2]|0)|0;do if((c[c[pa>>2]>>2]|0)==1){if(e[(c[Q>>2]|0)+6>>1]&2){y=41;break}if(e[(c[Z>>2]|0)+60>>1]&256){y=41;break}c[j>>2]=(Bz(c[Ca>>2]|0)|0)+1;t=(c[P>>2]|0)+76|0;w=(c[t>>2]|0)+1|0;c[t>>2]=w;c[(c[p>>2]|0)+28>>2]=w;Vw(c[Ca>>2]|0,16,c[(c[p>>2]|0)+28>>2]|0,0,c[j>>2]|0)|0;c[(c[p>>2]|0)+24>>2]=c[j>>2];ZA(k,13,c[(c[p>>2]|0)+28>>2]|0);a[(c[p>>2]|0)+40>>0]=c[(c[P>>2]|0)+472>>2];Cv(c[P>>2]|0,c[s>>2]|0,k)|0;w=(c[s>>2]|0)+24|0;w=Hj(c[w>>2]|0,c[w+4>>2]|0)|0;b[(c[(c[p>>2]|0)+16>>2]|0)+38>>1]=w;w=(c[p>>2]|0)+36+1|0;a[w>>0]=a[w>>0]&-17|16;c[(c[p>>2]|0)+32>>2]=c[k+8>>2];xC(c[Ca>>2]|0,c[(c[p>>2]|0)+28>>2]|0);Fz(c[Ca>>2]|0,(c[j>>2]|0)-1|0);_F(c[P>>2]|0)}else y=41;while(0);if((y|0)==41){y=0;c[n>>2]=0;t=(c[P>>2]|0)+76|0;w=(c[t>>2]|0)+1|0;c[t>>2]=w;c[(c[p>>2]|0)+28>>2]=w;c[v>>2]=Rw(c[Ca>>2]|0,22,0,c[(c[p>>2]|0)+28>>2]|0)|0;c[(c[p>>2]|0)+24>>2]=(c[v>>2]|0)+1;if(!((d[(c[p>>2]|0)+36+1>>0]|0)>>>3&1))c[n>>2]=UA(c[P>>2]|0)|0;ZA(k,12,c[(c[p>>2]|0)+44>>2]|0);a[(c[p>>2]|0)+40>>0]=c[(c[P>>2]|0)+472>>2];Cv(c[P>>2]|0,c[s>>2]|0,k)|0;w=(c[s>>2]|0)+24|0;w=Hj(c[w>>2]|0,c[w+4>>2]|0)|0;b[(c[(c[p>>2]|0)+16>>2]|0)+38>>1]=w;if(c[n>>2]|0)Fz(c[Ca>>2]|0,c[n>>2]|0);c[u>>2]=xz(c[Ca>>2]|0,15,c[(c[p>>2]|0)+28>>2]|0)|0;wD(c[Ca>>2]|0,c[v>>2]|0,c[u>>2]|0);_F(c[P>>2]|0)}if(a[(c[Z>>2]|0)+65>>0]|0)break a;t=YF(c[Q>>2]|0)|0;w=(c[P>>2]|0)+464|0;c[w>>2]=(c[w>>2]|0)-t}while(0);c[$>>2]=(c[$>>2]|0)+1}c[la>>2]=c[c[Q>>2]>>2];c[M>>2]=c[(c[Q>>2]|0)+36>>2];c[ma>>2]=c[(c[Q>>2]|0)+40>>2];c[na>>2]=c[(c[Q>>2]|0)+44>>2];a[ya>>0]=(e[(c[Q>>2]|0)+6>>1]&1|0)!=0;if((e[(c[Q>>2]|0)+6>>1]&9|0)==1?(qy(c[za>>2]|0,c[la>>2]|0,-1)|0)==0:0){y=(c[Q>>2]|0)+6|0;b[y>>1]=e[y>>1]&-2;y=vy(c[Z>>2]|0,c[la>>2]|0,0)|0;c[(c[Q>>2]|0)+40>>2]=y;c[ma>>2]=y}if(c[za>>2]|0){c[q>>2]=$F(c[P>>2]|0,c[za>>2]|0,0,c[c[la>>2]>>2]|0)|0;w=(c[P>>2]|0)+72|0;y=c[w>>2]|0;c[w>>2]=y+1;c[za+8>>2]=y;c[za+20>>2]=Uw(c[Ca>>2]|0,57,c[za+8>>2]|0,(c[c[za>>2]>>2]|0)+1+(c[c[la>>2]>>2]|0)|0,0,c[q>>2]|0,-6)|0}else c[za+20>>2]=-1;if((d[c[R>>2]>>0]|0)==12)Rw(c[Ca>>2]|0,57,c[(c[R>>2]|0)+4>>2]|0,c[c[la>>2]>>2]|0)|0;c[da>>2]=Cz(c[Ca>>2]|0)|0;y=(c[Q>>2]|0)+24|0;c[y>>2]=-1;c[y+4>>2]=2147483647;aG(c[P>>2]|0,c[Q>>2]|0,c[da>>2]|0);if((c[(c[Q>>2]|0)+8>>2]|0)==0?(c[za+20>>2]|0)>=0:0){bG(c[Ca>>2]|0,c[za+20>>2]|0,58);y=za+28|0;a[y>>0]=d[y>>0]|1}if(e[(c[Q>>2]|0)+6>>1]&1){y=(c[P>>2]|0)+72|0;w=c[y>>2]|0;c[y>>2]=w+1;c[ya+4>>2]=w;w=c[Ca>>2]|0;y=c[ya+4>>2]|0;c[ya+8>>2]=Uw(w,57,y,0,0,$F(c[P>>2]|0,c[c[Q>>2]>>2]|0,0,0)|0,-6)|0;Fh(c[Ca>>2]|0,8);a[ya+1>>0]=3}else a[ya+1>>0]=0;if((c[l>>2]|0)==0&(c[ma>>2]|0)==0){b[x>>1]=(d[ya>>0]|0)!=0?1024:0;c[qa>>2]=RC(c[P>>2]|0,c[pa>>2]|0,c[M>>2]|0,c[za>>2]|0,c[c[Q>>2]>>2]|0,b[x>>1]|0,0)|0;if(!(c[qa>>2]|0))break;Aa=cG(c[qa>>2]|0)|0;va=C;Ba=(c[Q>>2]|0)+24|0;wa=c[Ba+4>>2]|0;if(va>>>0<wa>>>0|((va|0)==(wa|0)?Aa>>>0<(c[Ba>>2]|0)>>>0:0)){Aa=cG(c[qa>>2]|0)|0;Ba=(c[Q>>2]|0)+24|0;c[Ba>>2]=Aa;c[Ba+4>>2]=C}do if(d[ya>>0]|0){if(!(dG(c[qa>>2]|0)|0))break;a[ya+1>>0]=dG(c[qa>>2]|0)|0}while(0);do if(c[za>>2]|0){c[za+4>>2]=eG(c[qa>>2]|0)|0;if((c[za+4>>2]|0)!=(c[c[za>>2]>>2]|0))break;c[za>>2]=0}while(0);do if((c[za+20>>2]|0)>=0){if(c[za>>2]|0)break;pA(c[Ca>>2]|0,c[za+20>>2]|0)|0}while(0);ua=c[P>>2]|0;va=c[Q>>2]|0;wa=c[la>>2]|0;Aa=c[R>>2]|0;Ba=fG(c[qa>>2]|0)|0;hG(ua,va,wa,-1,za,ya,Aa,Ba,gG(c[qa>>2]|0)|0);SC(c[qa>>2]|0)}else{c[Ba>>2]=0;c[Aa>>2]=0;c[ja>>2]=0;g=c[Q>>2]|0;do if(c[ma>>2]|0){c[z>>2]=c[c[g>>2]>>2];c[A>>2]=c[(c[c[Q>>2]>>2]|0)+4>>2];while(1){if((c[z>>2]|0)<=0)break;b[(c[A>>2]|0)+16+2>>1]=0;c[z>>2]=(c[z>>2]|0)+-1;c[A>>2]=(c[A>>2]|0)+20}c[z>>2]=c[c[ma>>2]>>2];c[A>>2]=c[(c[ma>>2]|0)+4>>2];while(1){if((c[z>>2]|0)<=0)break;b[(c[A>>2]|0)+16+2>>1]=0;c[z>>2]=(c[z>>2]|0)+-1;c[A>>2]=(c[A>>2]|0)+20}A=(c[Q>>2]|0)+24|0;z=c[A+4>>2]|0;if(!(z>>>0>0|(z|0)==0&(c[A>>2]|0)>>>0>100))break;A=(c[Q>>2]|0)+24|0;c[A>>2]=100;c[A+4>>2]=0}else{A=g+24|0;c[A>>2]=1;c[A+4>>2]=0}while(0);if(!(qy(c[ma>>2]|0,c[za>>2]|0,-1)|0))c[ja>>2]=1;c[T>>2]=Cz(c[Ca>>2]|0)|0;c[N>>2]=0;c[N+4>>2]=0;c[N+8>>2]=0;c[N+12>>2]=0;c[N+16>>2]=0;c[N+20>>2]=0;c[N+24>>2]=0;c[N+28>>2]=0;c[N>>2]=c[P>>2];c[N+4>>2]=c[pa>>2];c[N+12>>2]=xa;c[xa+16>>2]=(c[(c[P>>2]|0)+76>>2]|0)+1;if(c[ma>>2]|0)g=c[c[ma>>2]>>2]|0;else g=0;c[xa+12>>2]=g;c[xa+24>>2]=c[ma>>2];iG(N,c[la>>2]|0);iG(N,c[za>>2]|0);if(c[na>>2]|0)jG(N,c[na>>2]|0);c[xa+36>>2]=c[xa+32>>2];c[$>>2]=0;while(1){if((c[$>>2]|0)>=(c[xa+44>>2]|0))break;A=N+28|0;b[A>>1]=e[A>>1]|8;iG(N,c[(c[(c[xa+40>>2]|0)+(c[$>>2]<<4)>>2]|0)+20>>2]|0);A=N+28|0;b[A>>1]=e[A>>1]&-9;c[$>>2]=(c[$>>2]|0)+1}c[xa+20>>2]=c[(c[P>>2]|0)+76>>2];if(a[(c[Z>>2]|0)+65>>0]|0)break;if(c[ma>>2]|0){L=(c[P>>2]|0)+72|0;N=c[L>>2]|0;c[L>>2]=N+1;c[xa+4>>2]=N;c[oa>>2]=$F(c[P>>2]|0,c[ma>>2]|0,0,c[xa+32>>2]|0)|0;c[X>>2]=Uw(c[Ca>>2]|0,58,c[xa+4>>2]|0,c[xa+12>>2]|0,0,c[oa>>2]|0,-6)|0;N=(c[P>>2]|0)+76|0;L=(c[N>>2]|0)+1|0;c[N>>2]=L;c[fa>>2]=L;L=(c[P>>2]|0)+76|0;N=(c[L>>2]|0)+1|0;c[L>>2]=N;c[ba>>2]=N;N=(c[P>>2]|0)+76|0;L=(c[N>>2]|0)+1|0;c[N>>2]=L;c[ua>>2]=L;c[U>>2]=Cz(c[Ca>>2]|0)|0;L=(c[P>>2]|0)+76|0;N=(c[L>>2]|0)+1|0;c[L>>2]=N;c[wa>>2]=N;c[V>>2]=Cz(c[Ca>>2]|0)|0;c[aa>>2]=(c[(c[P>>2]|0)+76>>2]|0)+1;N=(c[P>>2]|0)+76|0;c[N>>2]=(c[N>>2]|0)+(c[c[ma>>2]>>2]|0);c[ca>>2]=(c[(c[P>>2]|0)+76>>2]|0)+1;N=(c[P>>2]|0)+76|0;c[N>>2]=(c[N>>2]|0)+(c[c[ma>>2]>>2]|0);Rw(c[Ca>>2]|0,22,0,c[ba>>2]|0)|0;Rw(c[Ca>>2]|0,22,0,c[fa>>2]|0)|0;Vw(c[Ca>>2]|0,25,0,c[aa>>2]|0,(c[aa>>2]|0)+(c[c[ma>>2]>>2]|0)-1|0)|0;Rw(c[Ca>>2]|0,14,c[wa>>2]|0,c[V>>2]|0)|0;c[qa>>2]=RC(c[P>>2]|0,c[pa>>2]|0,c[M>>2]|0,c[ma>>2]|0,0,(256|((c[ja>>2]|0)!=0?2048:0))&65535,0)|0;if(!(c[qa>>2]|0))break;N=eG(c[qa>>2]|0)|0;if((N|0)==(c[c[ma>>2]>>2]|0))c[_>>2]=0;else{if(d[ya>>0]|0)g=(e[(c[Q>>2]|0)+6>>1]&1|0)==0;else g=0;kG(c[P>>2]|0,g?36474:36483);c[_>>2]=1;c[ia>>2]=c[c[ma>>2]>>2];c[ha>>2]=c[ia>>2];c[ga>>2]=c[ia>>2];c[$>>2]=0;while(1){if((c[$>>2]|0)>=(c[xa+32>>2]|0))break;if((c[(c[xa+28>>2]|0)+((c[$>>2]|0)*24|0)+12>>2]|0)>=(c[ga>>2]|0)){c[ha>>2]=(c[ha>>2]|0)+1;c[ga>>2]=(c[ga>>2]|0)+1}c[$>>2]=(c[$>>2]|0)+1}c[ta>>2]=kA(c[P>>2]|0,c[ha>>2]|0)|0;fC(c[P>>2]|0);GA(c[P>>2]|0,c[ma>>2]|0,c[ta>>2]|0,0,0)|0;c[ga>>2]=c[ia>>2];c[$>>2]=0;while(1){if((c[$>>2]|0)>=(c[xa+32>>2]|0))break;c[ka>>2]=(c[xa+28>>2]|0)+((c[$>>2]|0)*24|0);if((c[(c[ka>>2]|0)+12>>2]|0)>=(c[ga>>2]|0)){c[ra>>2]=(c[ga>>2]|0)+(c[ta>>2]|0);vD(c[P>>2]|0,c[c[ka>>2]>>2]|0,c[(c[ka>>2]|0)+8>>2]|0,c[(c[ka>>2]|0)+4>>2]|0,c[ra>>2]|0);c[ga>>2]=(c[ga>>2]|0)+1}c[$>>2]=(c[$>>2]|0)+1}c[va>>2]=Wz(c[P>>2]|0)|0;Vw(c[Ca>>2]|0,49,c[ta>>2]|0,c[ha>>2]|0,c[va>>2]|0)|0;Rw(c[Ca>>2]|0,109,c[xa+4>>2]|0,c[va>>2]|0)|0;_z(c[P>>2]|0,c[va>>2]|0);nA(c[P>>2]|0,c[ta>>2]|0,c[ha>>2]|0);SC(c[qa>>2]|0);ta=(c[P>>2]|0)+72|0;va=c[ta>>2]|0;c[ta>>2]=va+1;c[Ba>>2]=va;c[xa+8>>2]=va;c[Aa>>2]=Wz(c[P>>2]|0)|0;Vw(c[Ca>>2]|0,60,c[Ba>>2]|0,c[Aa>>2]|0,c[ha>>2]|0)|0;Rw(c[Ca>>2]|0,106,c[xa+4>>2]|0,c[T>>2]|0)|0;a[xa+1>>0]=1;fC(c[P>>2]|0)}do if(c[ja>>2]|0){if(e[(c[Z>>2]|0)+60>>1]&4)break;if((c[_>>2]|0)==0?(lG(c[qa>>2]|0)|0)==0:0)break;c[za>>2]=0;pA(c[Ca>>2]|0,c[za+20>>2]|0)|0}while(0);c[Y>>2]=Bz(c[Ca>>2]|0)|0;fC(c[P>>2]|0);if(c[_>>2]|0)Vw(c[Ca>>2]|0,100,c[xa+4>>2]|0,c[Aa>>2]|0,c[Ba>>2]|0)|0;c[ga>>2]=0;while(1){if((c[ga>>2]|0)>=(c[c[ma>>2]>>2]|0))break;if(c[_>>2]|0)Vw(c[Ca>>2]|0,47,c[Ba>>2]|0,c[ga>>2]|0,(c[ca>>2]|0)+(c[ga>>2]|0)|0)|0;else{a[xa>>0]=1;xA(c[P>>2]|0,c[(c[(c[ma>>2]|0)+4>>2]|0)+((c[ga>>2]|0)*20|0)>>2]|0,(c[ca>>2]|0)+(c[ga>>2]|0)|0)}c[ga>>2]=(c[ga>>2]|0)+1}ta=c[Ca>>2]|0;va=c[aa>>2]|0;Aa=c[ca>>2]|0;Ba=c[c[ma>>2]>>2]|0;Uw(ta,42,va,Aa,Ba,Vz(c[oa>>2]|0)|0,-6)|0;c[S>>2]=Bz(c[Ca>>2]|0)|0;Vw(c[Ca>>2]|0,43,(c[S>>2]|0)+1|0,0,(c[S>>2]|0)+1|0)|0;mG(c[P>>2]|0,c[ca>>2]|0,c[aa>>2]|0,c[c[ma>>2]>>2]|0);Rw(c[Ca>>2]|0,14,c[ua>>2]|0,c[U>>2]|0)|0;Rw(c[Ca>>2]|0,138,c[ba>>2]|0,c[T>>2]|0)|0;Rw(c[Ca>>2]|0,14,c[wa>>2]|0,c[V>>2]|0)|0;Fz(c[Ca>>2]|0,c[S>>2]|0);nG(c[P>>2]|0,xa);Rw(c[Ca>>2]|0,22,1,c[fa>>2]|0)|0;if(c[_>>2]|0)Rw(c[Ca>>2]|0,3,c[xa+4>>2]|0,c[Y>>2]|0)|0;else{SC(c[qa>>2]|0);pA(c[Ca>>2]|0,c[X>>2]|0)|0}Rw(c[Ca>>2]|0,14,c[ua>>2]|0,c[U>>2]|0)|0;Ez(c[Ca>>2]|0,c[T>>2]|0)|0;c[W>>2]=Bz(c[Ca>>2]|0)|0;Rw(c[Ca>>2]|0,22,1,c[ba>>2]|0)|0;xz(c[Ca>>2]|0,15,c[ua>>2]|0)|0;Gz(c[Ca>>2]|0,c[U>>2]|0);c[U>>2]=Bz(c[Ca>>2]|0)|0;Rw(c[Ca>>2]|0,138,c[fa>>2]|0,(c[U>>2]|0)+2|0)|0;xz(c[Ca>>2]|0,15,c[ua>>2]|0)|0;oG(c[P>>2]|0,xa);LA(c[P>>2]|0,c[na>>2]|0,(c[U>>2]|0)+1|0,16);hG(c[P>>2]|0,c[Q>>2]|0,c[c[Q>>2]>>2]|0,-1,za,ya,c[R>>2]|0,(c[U>>2]|0)+1|0,c[W>>2]|0);xz(c[Ca>>2]|0,15,c[ua>>2]|0)|0;Gz(c[Ca>>2]|0,c[V>>2]|0);pG(c[P>>2]|0,xa);xz(c[Ca>>2]|0,15,c[wa>>2]|0)|0}else{c[H>>2]=0;Ba=qG(c[Q>>2]|0,xa)|0;c[L>>2]=Ba;if(Ba){c[E>>2]=Dh(c[c[P>>2]>>2]|0,c[(c[L>>2]|0)+64>>2]|0)|0;Aa=(c[P>>2]|0)+72|0;Ba=c[Aa>>2]|0;c[Aa>>2]=Ba+1;c[D>>2]=Ba;c[J>>2]=0;c[G>>2]=0;c[F>>2]=c[(c[L>>2]|0)+28>>2];bx(c[P>>2]|0,c[E>>2]|0);yz(c[P>>2]|0,c[E>>2]|0,c[(c[L>>2]|0)+28>>2]|0,0,c[c[L>>2]>>2]|0);if(d[(c[L>>2]|0)+42>>0]&32)c[G>>2]=Ej(c[L>>2]|0)|0;c[I>>2]=c[(c[L>>2]|0)+8>>2];while(1){if(!(c[I>>2]|0))break;do if(!((d[(c[I>>2]|0)+55>>0]|0)>>>2&1)){if((b[(c[I>>2]|0)+48>>1]|0)>=(b[(c[L>>2]|0)+40>>1]|0))break;if(c[(c[I>>2]|0)+36>>2]|0)break;if((c[G>>2]|0)!=0?(b[(c[I>>2]|0)+48>>1]|0)>=(b[(c[G>>2]|0)+48>>1]|0):0)break;c[G>>2]=c[I>>2]}while(0);c[I>>2]=c[(c[I>>2]|0)+20>>2]}if(c[G>>2]|0){c[F>>2]=c[(c[G>>2]|0)+44>>2];c[J>>2]=Pz(c[P>>2]|0,c[G>>2]|0)|0}Eh(c[Ca>>2]|0,54,c[D>>2]|0,c[F>>2]|0,c[E>>2]|0,1)|0;if(c[J>>2]|0)Ih(c[Ca>>2]|0,-1,c[J>>2]|0,-6);
  84. Rw(c[Ca>>2]|0,50,c[D>>2]|0,c[(c[xa+40>>2]|0)+8>>2]|0)|0;xz(c[Ca>>2]|0,61,c[D>>2]|0)|0;rG(c[P>>2]|0,c[L>>2]|0,c[G>>2]|0)}else{c[K>>2]=0;a[B>>0]=0;if(!(c[(c[Q>>2]|0)+44>>2]|0))a[B>>0]=sG(xa,K)|0;do if(a[B>>0]|0){c[K>>2]=vy(c[Z>>2]|0,c[K>>2]|0,0)|0;c[H>>2]=c[K>>2];if(a[(c[Z>>2]|0)+65>>0]|0)break;a[(c[(c[K>>2]|0)+4>>2]|0)+12>>0]=(d[B>>0]|0)!=1?1:0;a[c[c[(c[K>>2]|0)+4>>2]>>2]>>0]=-104}while(0);pG(c[P>>2]|0,xa);c[qa>>2]=RC(c[P>>2]|0,c[pa>>2]|0,c[M>>2]|0,c[K>>2]|0,0,d[B>>0]|0,0)|0;if(!(c[qa>>2]|0)){Vu(c[Z>>2]|0,c[H>>2]|0);break}nG(c[P>>2]|0,xa);if((eG(c[qa>>2]|0)|0)>0){Ba=c[Ca>>2]|0;Ez(Ba,gG(c[qa>>2]|0)|0)|0}SC(c[qa>>2]|0);oG(c[P>>2]|0,xa)}c[za>>2]=0;LA(c[P>>2]|0,c[na>>2]|0,c[T>>2]|0,16);hG(c[P>>2]|0,c[Q>>2]|0,c[c[Q>>2]>>2]|0,-1,0,0,c[R>>2]|0,c[T>>2]|0,c[T>>2]|0);Vu(c[Z>>2]|0,c[H>>2]|0)}Gz(c[Ca>>2]|0,c[T>>2]|0)}if((d[ya+1>>0]|0)==3)kG(c[P>>2]|0,36474);if(c[za>>2]|0){kG(c[P>>2]|0,(c[za+4>>2]|0)>0?36492:36515);tG(c[P>>2]|0,c[Q>>2]|0,za,c[c[la>>2]>>2]|0,c[R>>2]|0)}Gz(c[Ca>>2]|0,c[da>>2]|0);c[sa>>2]=(c[(c[P>>2]|0)+68>>2]|0)>0&1}}while(0);c[(c[P>>2]|0)+468>>2]=c[ea>>2];if((c[sa>>2]|0)==0?(d[c[R>>2]>>0]|0)==9:0)uG(c[P>>2]|0,c[pa>>2]|0,c[la>>2]|0);Sf(c[Z>>2]|0,c[xa+28>>2]|0);Sf(c[Z>>2]|0,c[xa+40>>2]|0);c[O>>2]=c[sa>>2];Ca=c[O>>2]|0;i=Da;return Ca|0}c[O>>2]=1;Ca=c[O>>2]|0;i=Da;return Ca|0}function Dv(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;m=n;f=n+24|0;g=n+20|0;l=n+16|0;k=n+12|0;j=n+8|0;h=n+4|0;c[f>>2]=a;c[g>>2]=d;if(!(c[(c[g>>2]|0)+52>>2]|0)){i=n;return}c[l>>2]=0;c[h>>2]=0;c[k>>2]=c[g>>2];while(1){if(!(c[k>>2]|0))break;c[(c[k>>2]|0)+56>>2]=c[l>>2];a=(c[k>>2]|0)+6|0;b[a>>1]=e[a>>1]|0|128;c[l>>2]=c[k>>2];c[k>>2]=c[(c[k>>2]|0)+52>>2];c[h>>2]=(c[h>>2]|0)+1}if((e[(c[g>>2]|0)+6>>1]|0)&512){i=n;return}a=c[(c[c[f>>2]>>2]|0)+88+16>>2]|0;c[j>>2]=a;if((a|0)<=0){i=n;return}if((c[h>>2]|0)<=(c[j>>2]|0)){i=n;return}Ah(c[f>>2]|0,36400,m);i=n;return}function Ev(a,b,d,e,f,g,h,j){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=i;i=i+48|0;v=x;k=x+44|0;l=x+40|0;m=x+36|0;n=x+32|0;o=x+28|0;p=x+24|0;q=x+20|0;r=x+16|0;s=x+12|0;u=x+8|0;t=x+4|0;c[l>>2]=a;c[m>>2]=b;c[n>>2]=d;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=j;c[t>>2]=c[c[l>>2]>>2];if((c[m>>2]|0)==0?(c[r>>2]|0)!=0|(c[s>>2]|0)!=0:0){j=c[l>>2]|0;c[v>>2]=(c[r>>2]|0)!=0?36355:36358;Ah(j,36364,v)}else w=4;if(((w|0)==4?(c[m>>2]=Nv(c[t>>2]|0,c[m>>2]|0,c[n>>2]|0,c[o>>2]|0)|0,(c[m>>2]|0)!=0):0)?(c[c[m>>2]>>2]|0)!=0:0){c[u>>2]=(c[m>>2]|0)+8+(((c[c[m>>2]>>2]|0)-1|0)*72|0);if(c[(c[p>>2]|0)+4>>2]|0){w=Dw(c[t>>2]|0,c[p>>2]|0)|0;c[(c[u>>2]|0)+12>>2]=w}c[(c[u>>2]|0)+20>>2]=c[q>>2];c[(c[u>>2]|0)+48>>2]=c[r>>2];c[(c[u>>2]|0)+52>>2]=c[s>>2];c[k>>2]=c[m>>2];w=c[k>>2]|0;i=x;return w|0}Zu(c[t>>2]|0,c[r>>2]|0);_u(c[t>>2]|0,c[s>>2]|0);Wu(c[t>>2]|0,c[q>>2]|0);c[k>>2]=0;w=c[k>>2]|0;i=x;return w|0}function Fv(d,e,f,g,h,j,k,l,m,n){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=i;i=i+128|0;o=B+112|0;p=B+108|0;q=B+104|0;r=B+100|0;s=B+96|0;t=B+92|0;u=B+88|0;v=B+116|0;w=B+84|0;x=B+80|0;z=B+76|0;A=B;y=B+72|0;c[o>>2]=d;c[p>>2]=e;c[q>>2]=f;c[r>>2]=g;c[s>>2]=h;c[t>>2]=j;c[u>>2]=k;b[v>>1]=l;c[w>>2]=m;c[x>>2]=n;c[y>>2]=c[c[o>>2]>>2];l=Fw(c[y>>2]|0,72,0)|0;c[z>>2]=l;c[z>>2]=(c[z>>2]|0)==0?A:l;if(!(c[p>>2]|0)){l=c[o>>2]|0;c[p>>2]=Gv(l,0,Jv(c[y>>2]|0,158,0)|0)|0}c[c[z>>2]>>2]=c[p>>2];a[(c[z>>2]|0)+4>>0]=119;b[(c[z>>2]|0)+6>>1]=b[v>>1]|0;c[(c[z>>2]|0)+8>>2]=0;c[(c[z>>2]|0)+12>>2]=0;c[(c[z>>2]|0)+16>>2]=-1;c[(c[z>>2]|0)+16+4>>2]=-1;l=(c[z>>2]|0)+24|0;c[l>>2]=0;c[l+4>>2]=0;if(!(c[q>>2]|0))c[q>>2]=ph(c[y>>2]|0,80,0)|0;c[(c[z>>2]|0)+32>>2]=c[q>>2];c[(c[z>>2]|0)+36>>2]=c[r>>2];c[(c[z>>2]|0)+40>>2]=c[s>>2];c[(c[z>>2]|0)+44>>2]=c[t>>2];c[(c[z>>2]|0)+48>>2]=c[u>>2];c[(c[z>>2]|0)+52>>2]=0;c[(c[z>>2]|0)+56>>2]=0;c[(c[z>>2]|0)+60>>2]=c[w>>2];c[(c[z>>2]|0)+64>>2]=c[x>>2];c[(c[z>>2]|0)+68>>2]=0;if(!(a[(c[y>>2]|0)+65>>0]|0)){A=c[z>>2]|0;i=B;return A|0}Xu(c[y>>2]|0,c[z>>2]|0,(c[z>>2]|0)!=(A|0)&1);c[z>>2]=0;A=c[z>>2]|0;i=B;return A|0}function Gv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;l=i;i=i+32|0;f=l+24|0;m=l+20|0;g=l+16|0;h=l+12|0;j=l+8|0;e=l+4|0;k=l;c[m>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=c[c[m>>2]>>2];if(!(c[g>>2]|0)){c[g>>2]=Fw(c[j>>2]|0,8,0)|0;if((c[g>>2]|0)!=0?(c[c[g>>2]>>2]=0,m=Fw(c[j>>2]|0,20,0)|0,c[(c[g>>2]|0)+4>>2]=m,(c[(c[g>>2]|0)+4>>2]|0)!=0):0)e=7;else e=8}else if(!(c[c[g>>2]>>2]&(c[c[g>>2]>>2]|0)-1)){c[e>>2]=Ew(c[j>>2]|0,c[(c[g>>2]|0)+4>>2]|0,(c[c[g>>2]>>2]<<1)*20|0,0)|0;if(!(c[e>>2]|0))e=8;else{c[(c[g>>2]|0)+4>>2]=c[e>>2];e=7}}else e=7;if((e|0)==7){j=c[g>>2]|0;m=c[j>>2]|0;c[j>>2]=m+1;c[k>>2]=(c[(c[g>>2]|0)+4>>2]|0)+(m*20|0);m=c[k>>2]|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[m+16>>2]=0;c[c[k>>2]>>2]=c[h>>2];c[f>>2]=c[g>>2];m=c[f>>2]|0;i=l;return m|0}else if((e|0)==8){Zu(c[j>>2]|0,c[h>>2]|0);Vu(c[j>>2]|0,c[g>>2]|0);c[f>>2]=0;m=c[f>>2]|0;i=l;return m|0}return 0}function Hv(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;f=l+16|0;g=l+12|0;h=l+8|0;j=l+4|0;k=l;c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;if(!(c[g>>2]|0)){i=l;return}c[k>>2]=(c[(c[g>>2]|0)+4>>2]|0)+(((c[c[g>>2]>>2]|0)-1|0)*20|0);a=Iw(c[c[f>>2]>>2]|0,c[c[h>>2]>>2]|0,c[(c[h>>2]|0)+4>>2]|0,0)|0;c[(c[k>>2]|0)+4>>2]=a;if(!(c[j>>2]|0)){i=l;return}if(!(c[(c[k>>2]|0)+4>>2]|0)){i=l;return}Jw(c[(c[k>>2]|0)+4>>2]|0)|0;i=l;return}function Iv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;j=i;i=i+32|0;k=j+16|0;e=j+12|0;f=j+8|0;g=j+4|0;h=j;c[k>>2]=a;c[e>>2]=b;c[f>>2]=d;c[g>>2]=c[c[k>>2]>>2];if(!(c[e>>2]|0)){i=j;return}c[h>>2]=(c[(c[e>>2]|0)+4>>2]|0)+(((c[c[e>>2]>>2]|0)-1|0)*20|0);Sf(c[g>>2]|0,c[(c[h>>2]|0)+8>>2]|0);k=(c[(c[f>>2]|0)+8>>2]|0)-(c[(c[f>>2]|0)+4>>2]|0)|0;k=Iw(c[g>>2]|0,c[(c[f>>2]|0)+4>>2]|0,k,((k|0)<0)<<31>>31)|0;c[(c[h>>2]|0)+8>>2]=k;i=j;return}function Jv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+32|0;f=j+16|0;g=j+12|0;e=j+8|0;h=j;c[f>>2]=a;c[g>>2]=b;c[e>>2]=d;c[h>>2]=c[e>>2];if(c[e>>2]|0)e=If(c[e>>2]|0)|0;else e=0;c[h+4>>2]=e;h=cz(c[f>>2]|0,c[g>>2]|0,h,0)|0;i=j;return h|0}function Kv(b){b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f+4|0;e=f;c[d>>2]=b;if(!(c[d>>2]|0)){i=f;return}c[e>>2]=(c[c[d>>2]>>2]|0)-1;while(1){if((c[e>>2]|0)<=0)break;a[(c[d>>2]|0)+8+((c[e>>2]|0)*72|0)+36>>0]=a[(c[d>>2]|0)+8+(((c[e>>2]|0)-1|0)*72|0)+36>>0]|0;c[e>>2]=(c[e>>2]|0)+-1}a[(c[d>>2]|0)+8+36>>0]=0;i=f;return}function Lv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;f=k+12|0;g=k+8|0;h=k+4|0;j=k;c[f>>2]=b;c[g>>2]=d;c[h>>2]=e;if(!(c[g>>2]|0)){i=k;return}if((c[c[g>>2]>>2]|0)<=0){i=k;return}c[j>>2]=(c[g>>2]|0)+8+(((c[c[g>>2]>>2]|0)-1|0)*72|0);if((c[(c[h>>2]|0)+4>>2]|0)==1?(c[c[h>>2]>>2]|0)==0:0){b=(c[j>>2]|0)+36+1|0;a[b>>0]=a[b>>0]&-2|1;i=k;return}b=Dw(c[c[f>>2]>>2]|0,c[h>>2]|0)|0;c[(c[j>>2]|0)+64>>2]=b;b=(c[j>>2]|0)+36+1|0;a[b>>0]=a[b>>0]&-3|((c[(c[j>>2]|0)+64>>2]|0)!=0&1)<<1&255;i=k;return}function Mv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;f=k+12|0;g=k+8|0;h=k+4|0;j=k;c[f>>2]=b;c[g>>2]=d;c[h>>2]=e;if(c[g>>2]|0){c[j>>2]=(c[g>>2]|0)+8+(((c[c[g>>2]>>2]|0)-1|0)*72|0);c[(c[j>>2]|0)+64>>2]=c[h>>2];b=(c[j>>2]|0)+36+1|0;a[b>>0]=a[b>>0]&-5|4;i=k;return}else{Vu(c[c[f>>2]>>2]|0,c[h>>2]|0);i=k;return}}function Nv(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;g=o+24|0;h=o+20|0;j=o+16|0;k=o+12|0;l=o+8|0;m=o+4|0;n=o;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;do if(!(c[j>>2]|0)){c[j>>2]=Fw(c[h>>2]|0,80,0)|0;if(c[j>>2]|0){c[(c[j>>2]|0)+4>>2]=1;c[c[j>>2]>>2]=0;break}c[g>>2]=0;n=c[g>>2]|0;i=o;return n|0}while(0);c[j>>2]=UF(c[h>>2]|0,c[j>>2]|0,1,c[c[j>>2]>>2]|0)|0;if(a[(c[h>>2]|0)+65>>0]|0){Yu(c[h>>2]|0,c[j>>2]|0);c[g>>2]=0;n=c[g>>2]|0;i=o;return n|0}c[m>>2]=(c[j>>2]|0)+8+(((c[c[j>>2]>>2]|0)-1|0)*72|0);if((c[l>>2]|0)!=0?(c[c[l>>2]>>2]|0)==0:0)c[l>>2]=0;if(c[l>>2]|0){c[n>>2]=c[l>>2];c[l>>2]=c[k>>2];c[k>>2]=c[n>>2]}n=Dw(c[h>>2]|0,c[k>>2]|0)|0;c[(c[m>>2]|0)+8>>2]=n;n=Dw(c[h>>2]|0,c[l>>2]|0)|0;c[(c[m>>2]|0)+4>>2]=n;c[g>>2]=c[j>>2];n=c[g>>2]|0;i=o;return n|0}function Ov(a,b,e,f){a=a|0;b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+80|0;r=u+16|0;q=u;g=u+64|0;h=u+60|0;j=u+56|0;k=u+52|0;o=u+48|0;l=u+36|0;p=u+32|0;m=u+28|0;n=u+24|0;s=u+20|0;c[g>>2]=a;c[h>>2]=b;c[j>>2]=e;c[k>>2]=f;c[o>>2]=0;c[l>>2]=c[h>>2];c[l+4>>2]=c[j>>2];c[l+8>>2]=c[k>>2];c[m>>2]=0;while(1){if((c[m>>2]|0)>=3)break;if(!(c[l+(c[m>>2]<<2)>>2]|0))break;c[p>>2]=c[l+(c[m>>2]<<2)>>2];c[n>>2]=0;while(1){if((c[n>>2]|0)>=7)break;if((c[(c[p>>2]|0)+4>>2]|0)==(d[36199+((c[n>>2]|0)*3|0)+1>>0]|0|0)?(zd(c[c[p>>2]>>2]|0,36220+(d[36199+((c[n>>2]|0)*3|0)>>0]|0)|0,c[(c[p>>2]|0)+4>>2]|0)|0)==0:0){t=8;break}c[n>>2]=(c[n>>2]|0)+1}if((t|0)==8){t=0;c[o>>2]=c[o>>2]|(d[36199+((c[n>>2]|0)*3|0)+2>>0]|0)}if((c[n>>2]|0)>=7){t=11;break}c[m>>2]=(c[m>>2]|0)+1}if((t|0)==11)c[o>>2]=c[o>>2]|64;if((c[o>>2]&33|0)!=33?(c[o>>2]&64|0)==0:0){if(!(c[o>>2]&32)){t=c[o>>2]|0;i=u;return t|0}if((c[o>>2]&24|0)==8){t=c[o>>2]|0;i=u;return t|0}Ah(c[g>>2]|0,36300,r);c[o>>2]=1;t=c[o>>2]|0;i=u;return t|0}c[s>>2]=36254;if(!(c[k>>2]|0))c[s>>2]=(c[s>>2]|0)+1;t=c[g>>2]|0;a=c[j>>2]|0;r=c[s>>2]|0;s=c[k>>2]|0;c[q>>2]=c[h>>2];c[q+4>>2]=a;c[q+8>>2]=r;c[q+12>>2]=s;Ah(t,36256,q);c[o>>2]=1;t=c[o>>2]|0;i=u;return t|0}function Pv(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=i;i=i+16|0;e=g+4|0;f=g;c[e>>2]=b;c[f>>2]=d;if((c[e>>2]|0)==0|(c[f>>2]|0)<0){i=g;return}a[(c[(c[e>>2]|0)+4>>2]|0)+(((c[c[e>>2]>>2]|0)-1|0)*20|0)+12>>0]=c[f>>2];i=g;return}function Qv(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0;j=i;i=i+16|0;f=j+4|0;g=j;h=j+8|0;c[f>>2]=b;c[g>>2]=d;a[h>>0]=e;if(!(c[g>>2]|0)){i=j;return}c[(c[g>>2]|0)+4>>2]=c[(c[f>>2]|0)+536>>2];c[(c[f>>2]|0)+536>>2]=c[g>>2];if(!(a[h>>0]|0)){i=j;return}c[(c[f>>2]|0)+540>>2]=c[g>>2];i=j;return}function Rv(f,g,h){f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0;Y=i;i=i+192|0;H=Y+180|0;I=Y+176|0;J=Y+172|0;X=Y+168|0;V=Y+164|0;t=Y+160|0;N=Y+156|0;G=Y+152|0;T=Y+148|0;n=Y+144|0;O=Y+140|0;Q=Y+136|0;o=Y+132|0;M=Y+128|0;W=Y+120|0;r=Y+88|0;l=Y+84|0;S=Y+80|0;q=Y+76|0;z=Y+72|0;w=Y+64|0;K=Y+60|0;U=Y+56|0;m=Y+52|0;p=Y+188|0;B=Y+48|0;D=Y+186|0;P=Y+44|0;C=Y+40|0;v=Y+36|0;L=Y+32|0;j=Y+28|0;R=Y+24|0;E=Y+20|0;x=Y+16|0;s=Y+184|0;k=Y+12|0;F=Y+8|0;y=Y+4|0;A=Y;c[H>>2]=f;c[I>>2]=g;c[J>>2]=h;c[O>>2]=0;c[Q>>2]=0;c[S>>2]=-1;c[K>>2]=0;c[m>>2]=0;b[p>>1]=1;c[P>>2]=0;c[C>>2]=0;c[v>>2]=0;c[L>>2]=0;c[j>>2]=0;c[W>>2]=0;c[W+4>>2]=0;c[M>>2]=c[c[H>>2]>>2];a:do if(((c[(c[H>>2]|0)+68>>2]|0)==0?(d[(c[M>>2]|0)+65>>0]|0)==0:0)?(c[V>>2]=DB(c[H>>2]|0,c[I>>2]|0)|0,(c[V>>2]|0)!=0):0){c[E>>2]=sC(c[H>>2]|0,c[V>>2]|0,109,0,0)|0;c[R>>2]=(c[(c[V>>2]|0)+12>>2]|0)!=0&1;if(c[E>>2]|0)f=1;else f=(DE(c[H>>2]|0,c[V>>2]|0,0,0)|0)!=0;c[x>>2]=f&1;if(((zx(c[H>>2]|0,c[V>>2]|0)|0)==0?(tC(c[H>>2]|0,c[V>>2]|0,(c[E>>2]|0)!=0?1:0)|0)==0:0)?(c[l>>2]=Dh(c[M>>2]|0,c[(c[V>>2]|0)+64>>2]|0)|0,c[t>>2]=c[(c[(c[M>>2]|0)+16>>2]|0)+(c[l>>2]<<4)>>2],c[q>>2]=Mw(c[H>>2]|0,9,c[c[V>>2]>>2]|0,0,c[t>>2]|0)|0,(c[q>>2]|0)!=1):0){h=(c[H>>2]|0)+72|0;t=c[h>>2]|0;c[h>>2]=t+1;c[(c[I>>2]|0)+8+44>>2]=t;c[n>>2]=t;c[o>>2]=0;c[T>>2]=c[(c[V>>2]|0)+8>>2];while(1){if(!(c[T>>2]|0))break;t=(c[H>>2]|0)+72|0;c[t>>2]=(c[t>>2]|0)+1;c[T>>2]=c[(c[T>>2]|0)+20>>2];c[o>>2]=(c[o>>2]|0)+1}if(c[R>>2]|0)PF(c[H>>2]|0,W,c[c[V>>2]>>2]|0);c[X>>2]=Pw(c[H>>2]|0)|0;if(c[X>>2]|0){if(!(d[(c[H>>2]|0)+18>>0]|0))uC(c[X>>2]|0);ax(c[H>>2]|0,1,c[l>>2]|0);if(c[R>>2]|0){QF(c[H>>2]|0,c[V>>2]|0,c[J>>2]|0,c[n>>2]|0);t=c[n>>2]|0;c[Q>>2]=t;c[O>>2]=t}c[r>>2]=0;c[r+4>>2]=0;c[r+8>>2]=0;c[r+12>>2]=0;c[r+16>>2]=0;c[r+20>>2]=0;c[r+24>>2]=0;c[r+28>>2]=0;c[r>>2]=c[H>>2];c[r+4>>2]=c[I>>2];if(!(fy(r,c[J>>2]|0)|0)){if(c[(c[M>>2]|0)+24>>2]&128){r=(c[H>>2]|0)+76|0;t=(c[r>>2]|0)+1|0;c[r>>2]=t;c[S>>2]=t;Rw(c[X>>2]|0,22,0,c[S>>2]|0)|0}b:do if(!((c[q>>2]|0)==0&(c[J>>2]|0)==0^1|(c[x>>2]|0)!=0)?(d[(c[V>>2]|0)+42>>0]&16|0)==0:0){yz(c[H>>2]|0,c[l>>2]|0,c[(c[V>>2]|0)+28>>2]|0,1,c[c[V>>2]>>2]|0);if(!(d[(c[V>>2]|0)+42>>0]&32))Uw(c[X>>2]|0,119,c[(c[V>>2]|0)+28>>2]|0,c[l>>2]|0,c[S>>2]|0,c[c[V>>2]>>2]|0,-2)|0;c[T>>2]=c[(c[V>>2]|0)+8>>2];while(1){if(!(c[T>>2]|0))break b;Rw(c[X>>2]|0,119,c[(c[T>>2]|0)+44>>2]|0,c[l>>2]|0)|0;c[T>>2]=c[(c[T>>2]|0)+20>>2]}}else u=29;while(0);c:do if((u|0)==29){b[s>>1]=12;b[s>>1]=e[s>>1]|((c[x>>2]|0)!=0?0:8192);if(!(d[(c[V>>2]|0)+42>>0]&32)){c[U>>2]=0;b[p>>1]=1;t=(c[H>>2]|0)+76|0;u=(c[t>>2]|0)+1|0;c[t>>2]=u;c[C>>2]=u;Rw(c[X>>2]|0,25,0,c[C>>2]|0)|0}else{c[U>>2]=Ej(c[V>>2]|0)|0;b[p>>1]=b[(c[U>>2]|0)+50>>1]|0;c[m>>2]=(c[(c[H>>2]|0)+76>>2]|0)+1;t=(c[H>>2]|0)+76|0;c[t>>2]=(c[t>>2]|0)+(b[p>>1]|0);t=(c[H>>2]|0)+72|0;u=c[t>>2]|0;c[t>>2]=u+1;c[P>>2]=u;c[j>>2]=Rw(c[X>>2]|0,57,c[P>>2]|0,b[p>>1]|0)|0;Az(c[H>>2]|0,c[U>>2]|0)}c[G>>2]=RC(c[H>>2]|0,c[I>>2]|0,c[J>>2]|0,0,0,b[s>>1]|0,(c[n>>2]|0)+1|0)|0;if(!(c[G>>2]|0))break a;c[z>>2]=SF(c[G>>2]|0,w)|0;if(c[(c[M>>2]|0)+24>>2]&128)Rw(c[X>>2]|0,37,c[S>>2]|0,1)|0;do if(c[U>>2]|0){c[N>>2]=0;while(1){if((c[N>>2]|0)>=(b[p>>1]|0))break;tA(c[X>>2]|0,c[V>>2]|0,c[n>>2]|0,b[(c[(c[U>>2]|0)+4>>2]|0)+(c[N>>2]<<1)>>1]|0,(c[m>>2]|0)+(c[N>>2]|0)|0);c[N>>2]=(c[N>>2]|0)+1}c[B>>2]=c[m>>2]}else{c[B>>2]=(c[(c[H>>2]|0)+76>>2]|0)+1;c[B>>2]=zA(c[H>>2]|0,c[V>>2]|0,-1,c[n>>2]|0,c[B>>2]|0,0)|0;if((c[B>>2]|0)<=(c[(c[H>>2]|0)+76>>2]|0))break;c[(c[H>>2]|0)+76>>2]=c[B>>2]}while(0);do if(!(c[z>>2]|0))if(c[U>>2]|0){r=(c[H>>2]|0)+76|0;q=(c[r>>2]|0)+1|0;c[r>>2]=q;c[B>>2]=q;b[D>>1]=0;q=c[X>>2]|0;r=c[m>>2]|0;s=b[p>>1]|0;t=c[B>>2]|0;u=dC(c[c[H>>2]>>2]|0,c[U>>2]|0)|0;Uw(q,49,r,s,t,u,b[p>>1]|0)|0;Rw(c[X>>2]|0,110,c[P>>2]|0,c[B>>2]|0)|0;break}else{b[D>>1]=1;Rw(c[X>>2]|0,129,c[C>>2]|0,c[B>>2]|0)|0;break}else{b[D>>1]=b[p>>1]|0;u=(c[o>>2]|0)+2|0;c[K>>2]=Fw(c[M>>2]|0,u,((u|0)<0)<<31>>31)|0;if(!(c[K>>2]|0)){SC(c[G>>2]|0);break a}kR(c[K>>2]|0,1,(c[o>>2]|0)+1|0)|0;a[(c[K>>2]|0)+((c[o>>2]|0)+1)>>0]=0;if((c[w>>2]|0)>=0)a[(c[K>>2]|0)+((c[w>>2]|0)-(c[n>>2]|0))>>0]=0;if((c[w+4>>2]|0)>=0)a[(c[K>>2]|0)+((c[w+4>>2]|0)-(c[n>>2]|0))>>0]=0;if(!(c[j>>2]|0))break;pA(c[X>>2]|0,c[j>>2]|0)|0}while(0);if(c[z>>2]|0)c[v>>2]=Cz(c[X>>2]|0)|0;else SC(c[G>>2]|0);do if(!(c[R>>2]|0)){c[k>>2]=0;if((c[z>>2]|0)==2)c[k>>2]=UA(c[H>>2]|0)|0;gC(c[H>>2]|0,c[V>>2]|0,55,8,c[n>>2]|0,c[K>>2]|0,O,Q)|0;if((c[z>>2]|0)!=2)break;Fz(c[X>>2]|0,c[k>>2]|0)}while(0);do if(!(c[z>>2]|0)){f=c[X>>2]|0;if(c[U>>2]|0){c[L>>2]=xz(f,108,c[P>>2]|0)|0;Rw(c[X>>2]|0,101,c[P>>2]|0,c[B>>2]|0)|0;break}else{c[L>>2]=Vw(f,130,c[C>>2]|0,0,c[B>>2]|0)|0;break}}else{if(d[(c[V>>2]|0)+42>>0]&16)break;if(!(d[(c[K>>2]|0)+((c[O>>2]|0)-(c[n>>2]|0))>>0]|0))break;Eh(c[X>>2]|0,68,c[O>>2]|0,c[v>>2]|0,c[B>>2]|0,b[D>>1]|0)|0}while(0);do if(d[(c[V>>2]|0)+42>>0]&16){c[F>>2]=Ax(c[M>>2]|0,c[V>>2]|0)|0;EC(c[H>>2]|0,c[V>>2]|0);Uw(c[X>>2]|0,12,0,1,c[B>>2]|0,c[F>>2]|0,-10)|0;Fh(c[X>>2]|0,2);Bx(c[H>>2]|0);if((c[z>>2]|0)!=1)break;if(c[(c[H>>2]|0)+416>>2]|0)break;a[(c[H>>2]|0)+20>>0]=0}else{c[y>>2]=(d[(c[H>>2]|0)+18>>0]|0)==0&1;c[A>>2]=-1;do if(!(c[x>>2]|0)){if((c[w+4>>2]|0)==(c[O>>2]|0))break;c[A>>2]=c[w+4>>2]}while(0);FE(c[H>>2]|0,c[V>>2]|0,c[E>>2]|0,c[O>>2]|0,c[Q>>2]|0,c[B>>2]|0,b[D>>1]|0,c[y>>2]&255,10,c[z>>2]&255,c[A>>2]|0)}while(0);do if(!(c[z>>2]|0)){f=c[X>>2]|0;if(c[U>>2]|0){Rw(f,7,c[P>>2]|0,(c[L>>2]|0)+1|0)|0;Fz(c[X>>2]|0,c[L>>2]|0);break}else{Ez(f,c[L>>2]|0)|0;Fz(c[X>>2]|0,c[L>>2]|0);break}}else{Gz(c[X>>2]|0,c[v>>2]|0);SC(c[G>>2]|0)}while(0);if(c[R>>2]|0)break;if(d[(c[V>>2]|0)+42>>0]&16)break;if(!(c[U>>2]|0))xz(c[X>>2]|0,61,c[O>>2]|0)|0;c[N>>2]=0;c[T>>2]=c[(c[V>>2]|0)+8>>2];while(1){if(!(c[T>>2]|0))break c;xz(c[X>>2]|0,61,(c[Q>>2]|0)+(c[N>>2]|0)|0)|0;c[N>>2]=(c[N>>2]|0)+1;c[T>>2]=c[(c[T>>2]|0)+20>>2]}}while(0);if((d[(c[H>>2]|0)+18>>0]|0)==0?(c[(c[H>>2]|0)+420>>2]|0)==0:0)IC(c[H>>2]|0);if(((c[(c[M>>2]|0)+24>>2]&128|0)!=0?(a[(c[H>>2]|0)+18>>0]|0)==0:0)?(c[(c[H>>2]|0)+420>>2]|0)==0:0){Rw(c[X>>2]|0,33,c[S>>2]|0,1)|0;OB(c[X>>2]|0,1);PB(c[X>>2]|0,0,0,36186,0)|0}}}}}while(0);TF(W);Yu(c[M>>2]|0,c[I>>2]|0);Zu(c[M>>2]|0,c[J>>2]|0);Sf(c[M>>2]|0,c[K>>2]|0);i=Y;return}function Sv(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;j=k;e=k+16|0;f=k+12|0;g=k+8|0;h=k+4|0;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[h>>2]=c[(c[c[e>>2]>>2]|0)+88+8>>2];if(!(c[f>>2]|0)){i=k;return}if((c[c[f>>2]>>2]|0)<=(c[h>>2]|0)){i=k;return}d=c[e>>2]|0;c[j>>2]=c[g>>2];Ah(d,36163,j);i=k;return}function Tv(f,g,h,j,k){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0;oa=i;i=i+256|0;q=oa;X=oa+244|0;Y=oa+240|0;Z=oa+236|0;_=oa+232|0;K=oa+228|0;da=oa+224|0;C=oa+220|0;ka=oa+216|0;ba=oa+212|0;x=oa+208|0;na=oa+204|0;ia=oa+200|0;ja=oa+196|0;v=oa+192|0;t=oa+188|0;ea=oa+184|0;ga=oa+180|0;ca=oa+176|0;L=oa+172|0;aa=oa+168|0;$=oa+164|0;y=oa+254|0;B=oa+253|0;O=oa+252|0;z=oa+160|0;ma=oa+152|0;p=oa+120|0;l=oa+112|0;R=oa+108|0;P=oa+104|0;ha=oa+100|0;W=oa+96|0;H=oa+92|0;S=oa+88|0;G=oa+84|0;D=oa+80|0;fa=oa+76|0;Q=oa+72|0;s=oa+64|0;la=oa+56|0;V=oa+52|0;U=oa+48|0;I=oa+44|0;F=oa+40|0;A=oa+36|0;T=oa+32|0;n=oa+28|0;o=oa+24|0;m=oa+250|0;u=oa+20|0;w=oa+248|0;r=oa+16|0;E=oa+12|0;M=oa+8|0;N=oa+4|0;c[X>>2]=f;c[Y>>2]=g;c[Z>>2]=h;c[_>>2]=j;c[K>>2]=k;c[ba>>2]=0;c[L>>2]=0;c[aa>>2]=0;c[z>>2]=0;c[fa>>2]=0;c[Q>>2]=0;c[la>>2]=0;c[V>>2]=0;c[U>>2]=0;c[I>>2]=0;c[F>>2]=0;c[A>>2]=0;c[T>>2]=0;c[ma>>2]=0;c[ma+4>>2]=0;c[ca>>2]=c[c[X>>2]>>2];if(c[(c[X>>2]|0)+68>>2]|0){TF(ma);na=c[ca>>2]|0;ma=c[aa>>2]|0;Sf(na,ma);ma=c[ca>>2]|0;na=c[Y>>2]|0;Yu(ma,na);na=c[ca>>2]|0;ma=c[Z>>2]|0;Vu(na,ma);ma=c[ca>>2]|0;na=c[_>>2]|0;Zu(ma,na);i=oa;return}if(d[(c[ca>>2]|0)+65>>0]|0){TF(ma);na=c[ca>>2]|0;ma=c[aa>>2]|0;Sf(na,ma);ma=c[ca>>2]|0;na=c[Y>>2]|0;Yu(ma,na);na=c[ca>>2]|0;ma=c[Z>>2]|0;Vu(na,ma);ma=c[ca>>2]|0;na=c[_>>2]|0;Zu(ma,na);i=oa;return}c[ka>>2]=DB(c[X>>2]|0,c[Y>>2]|0)|0;if(!(c[ka>>2]|0)){TF(ma);na=c[ca>>2]|0;ma=c[aa>>2]|0;Sf(na,ma);ma=c[ca>>2]|0;na=c[Y>>2]|0;Yu(ma,na);na=c[ca>>2]|0;ma=c[Z>>2]|0;Vu(na,ma);ma=c[ca>>2]|0;na=c[_>>2]|0;Zu(ma,na);i=oa;return}c[l>>2]=Dh(c[c[X>>2]>>2]|0,c[(c[ka>>2]|0)+64>>2]|0)|0;c[S>>2]=sC(c[X>>2]|0,c[ka>>2]|0,110,c[Z>>2]|0,G)|0;c[H>>2]=(c[(c[ka>>2]|0)+12>>2]|0)!=0&1;if(zx(c[X>>2]|0,c[ka>>2]|0)|0){TF(ma);na=c[ca>>2]|0;ma=c[aa>>2]|0;Sf(na,ma);ma=c[ca>>2]|0;na=c[Y>>2]|0;Yu(ma,na);na=c[ca>>2]|0;ma=c[Z>>2]|0;Vu(na,ma);ma=c[ca>>2]|0;na=c[_>>2]|0;Zu(ma,na);i=oa;return}if(tC(c[X>>2]|0,c[ka>>2]|0,c[G>>2]|0)|0){TF(ma);na=c[ca>>2]|0;ma=c[aa>>2]|0;Sf(na,ma);ma=c[ca>>2]|0;na=c[Y>>2]|0;Yu(ma,na);na=c[ca>>2]|0;ma=c[Z>>2]|0;Vu(na,ma);ma=c[ca>>2]|0;na=c[_>>2]|0;Zu(ma,na);i=oa;return}g=(c[X>>2]|0)+72|0;j=c[g>>2]|0;c[g>>2]=j+1;c[ea>>2]=j;c[t>>2]=j;c[(c[Y>>2]|0)+8+44>>2]=j;c[ga>>2]=(c[ea>>2]|0)+1;if(!(d[(c[ka>>2]|0)+42>>0]&32))k=0;else k=Ej(c[ka>>2]|0)|0;c[ja>>2]=k;c[v>>2]=0;c[ia>>2]=c[(c[ka>>2]|0)+8>>2];while(1){if(!(c[ia>>2]|0))break;if((c[ja>>2]|0)!=0?(a[(c[ia>>2]|0)+55>>0]&3|0)==2:0){c[ea>>2]=c[(c[X>>2]|0)+72>>2];c[(c[Y>>2]|0)+8+44>>2]=c[ea>>2]}j=(c[X>>2]|0)+72|0;c[j>>2]=(c[j>>2]|0)+1;c[ia>>2]=c[(c[ia>>2]|0)+20>>2];c[v>>2]=(c[v>>2]|0)+1}c[aa>>2]=Fw(c[ca>>2]|0,((b[(c[ka>>2]|0)+34>>1]|0)+(c[v>>2]|0)<<2)+(c[v>>2]|0)+2|0,0)|0;if(!(c[aa>>2]|0)){TF(ma);na=c[ca>>2]|0;ma=c[aa>>2]|0;Sf(na,ma);ma=c[ca>>2]|0;na=c[Y>>2]|0;Yu(ma,na);na=c[ca>>2]|0;ma=c[Z>>2]|0;Vu(na,ma);ma=c[ca>>2]|0;na=c[_>>2]|0;Zu(ma,na);i=oa;return}c[L>>2]=(c[aa>>2]|0)+(b[(c[ka>>2]|0)+34>>1]<<2);c[$>>2]=(c[L>>2]|0)+(c[v>>2]<<2);kR(c[$>>2]|0,1,(c[v>>2]|0)+1|0)|0;a[(c[$>>2]|0)+((c[v>>2]|0)+1)>>0]=0;c[da>>2]=0;while(1){if((c[da>>2]|0)>=(b[(c[ka>>2]|0)+34>>1]|0))break;c[(c[aa>>2]|0)+(c[da>>2]<<2)>>2]=-1;c[da>>2]=(c[da>>2]|0)+1}c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;c[p+16>>2]=0;c[p+20>>2]=0;c[p+24>>2]=0;c[p+28>>2]=0;c[p>>2]=c[X>>2];c[p+4>>2]=c[Y>>2];a[y>>0]=0;a[B>>0]=0;c[da>>2]=0;while(1){if((c[da>>2]|0)>=(c[c[Z>>2]>>2]|0)){J=41;break}if(fy(p,c[(c[(c[Z>>2]|0)+4>>2]|0)+((c[da>>2]|0)*20|0)>>2]|0)|0){J=185;break}c[C>>2]=0;while(1){if((c[C>>2]|0)>=(b[(c[ka>>2]|0)+34>>1]|0))break;j=(Td(c[(c[(c[ka>>2]|0)+4>>2]|0)+((c[C>>2]|0)*24|0)>>2]|0,c[(c[(c[Z>>2]|0)+4>>2]|0)+((c[da>>2]|0)*20|0)+4>>2]|0)|0)==0;k=c[C>>2]|0;if(j){J=23;break}c[C>>2]=k+1}if((J|0)==23){J=0;if((k|0)!=(b[(c[ka>>2]|0)+32>>1]|0)){if((c[ja>>2]|0)!=0?(d[(c[(c[ka>>2]|0)+4>>2]|0)+((c[C>>2]|0)*24|0)+23>>0]&1|0)!=0:0)a[y>>0]=1}else{a[B>>0]=1;c[z>>2]=c[(c[(c[Z>>2]|0)+4>>2]|0)+((c[da>>2]|0)*20|0)>>2]}c[(c[aa>>2]|0)+(c[C>>2]<<2)>>2]=c[da>>2]}if((c[C>>2]|0)>=(b[(c[ka>>2]|0)+34>>1]|0)){if(c[ja>>2]|0){J=34;break}if(!(qi(c[(c[(c[Z>>2]|0)+4>>2]|0)+((c[da>>2]|0)*20|0)+4>>2]|0)|0)){J=34;break}c[C>>2]=-1;a[B>>0]=1;c[z>>2]=c[(c[(c[Z>>2]|0)+4>>2]|0)+((c[da>>2]|0)*20|0)>>2]}if((c[C>>2]|0)<0)k=20759;else k=c[(c[(c[ka>>2]|0)+4>>2]|0)+((c[C>>2]|0)*24|0)>>2]|0;c[n>>2]=Mw(c[X>>2]|0,23,c[c[ka>>2]>>2]|0,k,c[(c[(c[ca>>2]|0)+16>>2]|0)+(c[l>>2]<<4)>>2]|0)|0;if((c[n>>2]|0)==1){J=185;break}if((c[n>>2]|0)==2)c[(c[aa>>2]|0)+(c[C>>2]<<2)>>2]=-1;c[da>>2]=(c[da>>2]|0)+1}if((J|0)==34){na=c[X>>2]|0;c[q>>2]=c[(c[(c[Z>>2]|0)+4>>2]|0)+((c[da>>2]|0)*20|0)+4>>2];Ah(na,24991,q);a[(c[X>>2]|0)+17>>0]=1;TF(ma);na=c[ca>>2]|0;ma=c[aa>>2]|0;Sf(na,ma);ma=c[ca>>2]|0;na=c[Y>>2]|0;Yu(ma,na);na=c[ca>>2]|0;ma=c[Z>>2]|0;Vu(na,ma);ma=c[ca>>2]|0;na=c[_>>2]|0;Zu(ma,na);i=oa;return}else if((J|0)==41){a[O>>0]=(d[B>>0]|0)+(d[y>>0]|0);n=(d[(c[ka>>2]|0)+42>>0]&16|0)!=0;q=(c[Y>>2]|0)+8+56|0;c[q>>2]=n?-1:0;c[q+4>>2]=n?-1:0;c[P>>2]=DE(c[X>>2]|0,c[ka>>2]|0,c[aa>>2]|0,d[O>>0]|0)|0;c[C>>2]=0;c[ia>>2]=c[(c[ka>>2]|0)+8>>2];while(1){if(!(c[ia>>2]|0))break;a:do if((!((d[O>>0]|0)!=0|(c[P>>2]|0)!=0)?(c[(c[ia>>2]|0)+36>>2]|0)==0:0)?(c[ia>>2]|0)!=(c[ja>>2]|0):0){c[o>>2]=0;c[da>>2]=0;while(1){if((c[da>>2]|0)>=(e[(c[ia>>2]|0)+50>>1]|0))break a;b[m>>1]=b[(c[(c[ia>>2]|0)+4>>2]|0)+(c[da>>2]<<1)>>1]|0;if((b[m>>1]|0)<0)break;if((c[(c[aa>>2]|0)+(b[m>>1]<<2)>>2]|0)>=0)break;c[da>>2]=(c[da>>2]|0)+1}n=(c[X>>2]|0)+76|0;q=(c[n>>2]|0)+1|0;c[n>>2]=q;c[o>>2]=q}else J=46;while(0);if((J|0)==46){J=0;n=(c[X>>2]|0)+76|0;q=(c[n>>2]|0)+1|0;c[n>>2]=q;c[o>>2]=q}if(!(c[o>>2]|0))a[(c[$>>2]|0)+((c[C>>2]|0)+1)>>0]=0;c[(c[L>>2]|0)+(c[C>>2]<<2)>>2]=c[o>>2];c[ia>>2]=c[(c[ia>>2]|0)+20>>2];c[C>>2]=(c[C>>2]|0)+1}c[na>>2]=Pw(c[X>>2]|0)|0;if(!(c[na>>2]|0)){TF(ma);na=c[ca>>2]|0;ma=c[aa>>2]|0;Sf(na,ma);ma=c[ca>>2]|0;na=c[Y>>2]|0;Yu(ma,na);na=c[ca>>2]|0;ma=c[Z>>2]|0;Vu(na,ma);ma=c[ca>>2]|0;na=c[_>>2]|0;Zu(ma,na);i=oa;return}if(!(d[(c[X>>2]|0)+18>>0]|0))uC(c[na>>2]|0);ax(c[X>>2]|0,1,c[l>>2]|0);if(!(d[(c[ka>>2]|0)+42>>0]&16)){q=(c[X>>2]|0)+76|0;o=(c[q>>2]|0)+1|0;c[q>>2]=o;c[A>>2]=o;o=(c[X>>2]|0)+76|0;q=(c[o>>2]|0)+1|0;c[o>>2]=q;c[U>>2]=q;c[V>>2]=q;if((d[y>>0]|0)!=0|(c[S>>2]|0)!=0|(c[P>>2]|0)!=0){c[F>>2]=(c[(c[X>>2]|0)+76>>2]|0)+1;q=(c[X>>2]|0)+76|0;c[q>>2]=(c[q>>2]|0)+(b[(c[ka>>2]|0)+34>>1]|0)}if((d[O>>0]|0)!=0|(c[S>>2]|0)!=0|(c[P>>2]|0)!=0){o=(c[X>>2]|0)+76|0;q=(c[o>>2]|0)+1|0;c[o>>2]=q;c[U>>2]=q}c[I>>2]=(c[(c[X>>2]|0)+76>>2]|0)+1;q=(c[X>>2]|0)+76|0;c[q>>2]=(c[q>>2]|0)+(b[(c[ka>>2]|0)+34>>1]|0)}if(c[H>>2]|0)PF(c[X>>2]|0,ma,c[c[ka>>2]>>2]|0);if(c[H>>2]|0)QF(c[X>>2]|0,c[ka>>2]|0,c[_>>2]|0,c[ea>>2]|0);if(fy(p,c[_>>2]|0)|0){TF(ma);na=c[ca>>2]|0;ma=c[aa>>2]|0;Sf(na,ma);ma=c[ca>>2]|0;na=c[Y>>2]|0;Yu(ma,na);na=c[ca>>2]|0;ma=c[Z>>2]|0;Vu(na,ma);ma=c[ca>>2]|0;na=c[_>>2]|0;Zu(ma,na);i=oa;return}if(d[(c[ka>>2]|0)+42>>0]&16){RF(c[X>>2]|0,c[Y>>2]|0,c[ka>>2]|0,c[Z>>2]|0,c[z>>2]|0,c[aa>>2]|0,c[_>>2]|0,c[K>>2]|0);TF(ma);na=c[ca>>2]|0;ma=c[aa>>2]|0;Sf(na,ma);ma=c[ca>>2]|0;na=c[Y>>2]|0;Yu(ma,na);na=c[ca>>2]|0;ma=c[Z>>2]|0;Vu(na,ma);ma=c[ca>>2]|0;na=c[_>>2]|0;Zu(ma,na);i=oa;return}if(!(d[(c[ka>>2]|0)+42>>0]&32)){Vw(c[na>>2]|0,25,0,c[A>>2]|0,c[V>>2]|0)|0;c[x>>2]=RC(c[X>>2]|0,c[Y>>2]|0,c[_>>2]|0,0,0,4,c[ga>>2]|0)|0;if(!(c[x>>2]|0)){TF(ma);na=c[ca>>2]|0;ma=c[aa>>2]|0;Sf(na,ma);ma=c[ca>>2]|0;na=c[Y>>2]|0;Yu(ma,na);na=c[ca>>2]|0;ma=c[Z>>2]|0;Vu(na,ma);ma=c[ca>>2]|0;na=c[_>>2]|0;Zu(ma,na);i=oa;return}c[R>>2]=SF(c[x>>2]|0,s)|0;Rw(c[na>>2]|0,103,c[ea>>2]|0,c[V>>2]|0)|0;if(!(c[R>>2]|0))Rw(c[na>>2]|0,129,c[A>>2]|0,c[V>>2]|0)|0;SC(c[x>>2]|0)}else{b[w>>1]=b[(c[ja>>2]|0)+50>>1]|0;c[u>>2]=(c[(c[X>>2]|0)+76>>2]|0)+1;q=(c[X>>2]|0)+76|0;c[q>>2]=(c[q>>2]|0)+(b[w>>1]|0);q=(c[X>>2]|0)+76|0;p=(c[q>>2]|0)+1|0;c[q>>2]=p;c[T>>2]=p;p=(c[X>>2]|0)+72|0;q=c[p>>2]|0;c[p>>2]=q+1;c[fa>>2]=q;Rw(c[na>>2]|0,25,0,c[u>>2]|0)|0;c[r>>2]=Rw(c[na>>2]|0,57,c[fa>>2]|0,b[w>>1]|0)|0;Az(c[X>>2]|0,c[ja>>2]|0);c[x>>2]=RC(c[X>>2]|0,c[Y>>2]|0,c[_>>2]|0,0,0,4,c[ga>>2]|0)|0;if(!(c[x>>2]|0)){TF(ma);na=c[ca>>2]|0;ma=c[aa>>2]|0;Sf(na,ma);ma=c[ca>>2]|0;na=c[Y>>2]|0;Yu(ma,na);na=c[ca>>2]|0;ma=c[Z>>2]|0;Vu(na,ma);ma=c[ca>>2]|0;na=c[_>>2]|0;Zu(ma,na);i=oa;return}c[R>>2]=SF(c[x>>2]|0,s)|0;c[da>>2]=0;while(1){if((c[da>>2]|0)>=(b[w>>1]|0))break;tA(c[na>>2]|0,c[ka>>2]|0,c[ea>>2]|0,b[(c[(c[ja>>2]|0)+4>>2]|0)+(c[da>>2]<<1)>>1]|0,(c[u>>2]|0)+(c[da>>2]|0)|0);c[da>>2]=(c[da>>2]|0)+1}k=c[na>>2]|0;if(c[R>>2]|0){pA(k,c[r>>2]|0)|0;c[Q>>2]=b[w>>1];c[T>>2]=c[u>>2]}else{p=c[u>>2]|0;q=b[w>>1]|0;r=c[T>>2]|0;u=dC(c[ca>>2]|0,c[ja>>2]|0)|0;Uw(k,49,p,q,r,u,b[w>>1]|0)|0;Rw(c[na>>2]|0,110,c[fa>>2]|0,c[T>>2]|0)|0}SC(c[x>>2]|0)}if((c[(c[ca>>2]|0)+24>>2]&128|0)!=0?(c[(c[X>>2]|0)+420>>2]|0)==0:0){w=(c[X>>2]|0)+76|0;x=(c[w>>2]|0)+1|0;c[w>>2]=x;c[la>>2]=x;Rw(c[na>>2]|0,22,0,c[la>>2]|0)|0}c[ha>>2]=Cz(c[na>>2]|0)|0;if(!(c[H>>2]|0)){b:do if((c[K>>2]|0)==5)kR(c[$>>2]|0,1,(c[v>>2]|0)+1|0)|0;else{c[ia>>2]=c[(c[ka>>2]|0)+8>>2];while(1){if(!(c[ia>>2]|0))break b;if((d[(c[ia>>2]|0)+54>>0]|0)==5)break;c[ia>>2]=c[(c[ia>>2]|0)+20>>2]}kR(c[$>>2]|0,1,(c[v>>2]|0)+1|0)|0}while(0);do if(c[R>>2]|0){if((c[s>>2]|0)>=0)a[(c[$>>2]|0)+((c[s>>2]|0)-(c[t>>2]|0))>>0]=0;if((c[s+4>>2]|0)<0)break;a[(c[$>>2]|0)+((c[s+4>>2]|0)-(c[t>>2]|0))>>0]=0}while(0);gC(c[X>>2]|0,c[ka>>2]|0,55,0,c[t>>2]|0,c[$>>2]|0,0,0)|0}do if(!(c[R>>2]|0)){k=c[na>>2]|0;if(c[ja>>2]|0){c[W>>2]=Cz(k)|0;Rw(c[na>>2]|0,108,c[fa>>2]|0,c[ha>>2]|0)|0;c[ba>>2]=Rw(c[na>>2]|0,101,c[fa>>2]|0,c[T>>2]|0)|0;Eh(c[na>>2]|0,68,c[ea>>2]|0,c[W>>2]|0,c[T>>2]|0,0)|0;break}else{c[W>>2]=Vw(k,130,c[A>>2]|0,c[ha>>2]|0,c[V>>2]|0)|0;Vw(c[na>>2]|0,70,c[ea>>2]|0,c[W>>2]|0,c[V>>2]|0)|0;break}}else{if(!((c[H>>2]|0)!=0?1:(d[(c[$>>2]|0)+((c[ea>>2]|0)-(c[t>>2]|0))>>0]|0)==0))Eh(c[na>>2]|0,68,c[ea>>2]|0,c[ha>>2]|0,c[T>>2]|0,c[Q>>2]|0)|0;c[W>>2]=c[ha>>2];Rw(c[na>>2]|0,76,(c[ja>>2]|0)!=0?c[T>>2]|0:c[V>>2]|0,c[ha>>2]|0)|0}while(0);if(a[B>>0]|0){xA(c[X>>2]|0,c[z>>2]|0,c[U>>2]|0);xz(c[na>>2]|0,38,c[U>>2]|0)|0}do if((d[y>>0]|0)!=0|(c[P>>2]|0)!=0|(c[S>>2]|0)!=0){if(c[P>>2]|0)k=IE(c[X>>2]|0,c[ka>>2]|0)|0;else k=0;c[E>>2]=k;A=HE(c[X>>2]|0,c[S>>2]|0,c[Z>>2]|0,0,3,c[ka>>2]|0,c[K>>2]|0)|0;c[E>>2]=c[E>>2]|A;c[da>>2]=0;while(1){if((c[da>>2]|0)>=(b[(c[ka>>2]|0)+34>>1]|0))break;do if((c[E>>2]|0)==-1)J=120;else{if((c[da>>2]|0)<32?(c[E>>2]&1<<c[da>>2]|0)!=0:0){J=120;break}if(d[(c[(c[ka>>2]|0)+4>>2]|0)+((c[da>>2]|0)*24|0)+23>>0]&1){J=120;break}Rw(c[na>>2]|0,25,0,(c[F>>2]|0)+(c[da>>2]|0)|0)|0}while(0);if((J|0)==120){J=0;tA(c[na>>2]|0,c[ka>>2]|0,c[ea>>2]|0,c[da>>2]|0,(c[F>>2]|0)+(c[da>>2]|0)|0)}c[da>>2]=(c[da>>2]|0)+1}if(!((d[B>>0]|0)==0&(c[ja>>2]|0)==0))break;Rw(c[na>>2]|0,30,c[V>>2]|0,c[U>>2]|0)|0}while(0);c[D>>2]=HE(c[X>>2]|0,c[S>>2]|0,c[Z>>2]|0,1,1,c[ka>>2]|0,c[K>>2]|0)|0;c[da>>2]=0;while(1){if((c[da>>2]|0)>=(b[(c[ka>>2]|0)+34>>1]|0))break;c:do if((c[da>>2]|0)==(b[(c[ka>>2]|0)+32>>1]|0))Rw(c[na>>2]|0,25,0,(c[I>>2]|0)+(c[da>>2]|0)|0)|0;else{c[C>>2]=c[(c[aa>>2]|0)+(c[da>>2]<<2)>>2];if((c[C>>2]|0)>=0){xA(c[X>>2]|0,c[(c[(c[Z>>2]|0)+4>>2]|0)+((c[C>>2]|0)*20|0)>>2]|0,(c[I>>2]|0)+(c[da>>2]|0)|0);break}do if(!((c[da>>2]|0)>31?1:0==(c[G>>2]&1|0))){if(c[D>>2]&1<<c[da>>2])break;Rw(c[na>>2]|0,25,0,(c[I>>2]|0)+(c[da>>2]|0)|0)|0;break c}while(0);vD(c[X>>2]|0,c[ka>>2]|0,c[da>>2]|0,c[ea>>2]|0,(c[I>>2]|0)+(c[da>>2]|0)|0)}while(0);c[da>>2]=(c[da>>2]|0)+1}d:do if(c[G>>2]&1){AC(c[na>>2]|0,c[ka>>2]|0,c[I>>2]|0);BC(c[X>>2]|0,c[S>>2]|0,110,c[Z>>2]|0,1,c[ka>>2]|0,c[V>>2]|0,c[K>>2]|0,c[W>>2]|0);k=c[na>>2]|0;h=c[ea>>2]|0;f=c[W>>2]|0;if(c[ja>>2]|0)Eh(k,68,h,f,c[T>>2]|0,c[Q>>2]|0)|0;else Vw(k,70,h,f,c[V>>2]|0)|0;c[da>>2]=0;while(1){if((c[da>>2]|0)>=(b[(c[ka>>2]|0)+34>>1]|0))break d;do if((c[(c[aa>>2]|0)+(c[da>>2]<<2)>>2]|0)<0){if((c[da>>2]|0)==(b[(c[ka>>2]|0)+32>>1]|0))break;tA(c[na>>2]|0,c[ka>>2]|0,c[ea>>2]|0,c[da>>2]|0,(c[I>>2]|0)+(c[da>>2]|0)|0)}while(0);c[da>>2]=(c[da>>2]|0)+1}}while(0);do if(!(c[H>>2]|0)){c[M>>2]=0;c[N>>2]=0;FC(c[X>>2]|0,c[ka>>2]|0,c[L>>2]|0,c[ea>>2]|0,c[ga>>2]|0,c[U>>2]|0,c[V>>2]|0,a[O>>0]|0,c[K>>2]&255,c[W>>2]|0,N,c[aa>>2]|0);if(c[P>>2]|0)GC(c[X>>2]|0,c[ka>>2]|0,c[V>>2]|0,0,c[aa>>2]|0,d[O>>0]|0);if(!((c[N>>2]|0)==0?(d[O>>0]|0)==0:0))J=151;do if((J|0)==151){k=c[na>>2]|0;h=c[ea>>2]|0;if(c[ja>>2]|0){c[M>>2]=Eh(k,68,h,0,c[T>>2]|0,c[Q>>2]|0)|0;break}else{c[M>>2]=Vw(k,70,h,0,c[V>>2]|0)|0;break}}while(0);GE(c[X>>2]|0,c[ka>>2]|0,c[ea>>2]|0,c[ga>>2]|0,c[L>>2]|0,-1);if(!((c[P>>2]|0)==0?!((d[O>>0]|0)!=0|(c[ja>>2]|0)!=0):0))Rw(c[na>>2]|0,95,c[ea>>2]|0,0)|0;if(!((c[N>>2]|0)==0?(d[O>>0]|0)==0:0))Fz(c[na>>2]|0,c[M>>2]|0);if(c[P>>2]|0)GC(c[X>>2]|0,c[ka>>2]|0,0,c[U>>2]|0,c[aa>>2]|0,d[O>>0]|0);HC(c[X>>2]|0,c[ka>>2]|0,c[ea>>2]|0,c[ga>>2]|0,c[U>>2]|0,c[L>>2]|0,1,0,0);if(!(c[P>>2]|0))break;JE(c[X>>2]|0,c[ka>>2]|0,c[Z>>2]|0,c[V>>2]|0,c[aa>>2]|0,d[O>>0]|0)}while(0);do if(c[(c[ca>>2]|0)+24>>2]&128){if(c[(c[X>>2]|0)+420>>2]|0)break;Rw(c[na>>2]|0,37,c[la>>2]|0,1)|0}while(0);BC(c[X>>2]|0,c[S>>2]|0,110,c[Z>>2]|0,2,c[ka>>2]|0,c[V>>2]|0,c[K>>2]|0,c[W>>2]|0);do if(!(c[R>>2]|0)){h=c[na>>2]|0;k=c[W>>2]|0;if(c[ja>>2]|0){Gz(h,k);Rw(c[na>>2]|0,7,c[fa>>2]|0,c[ba>>2]|0)|0;break}else{Ez(h,k)|0;break}}while(0);Gz(c[na>>2]|0,c[ha>>2]|0);c[da>>2]=0;c[ia>>2]=c[(c[ka>>2]|0)+8>>2];while(1){if(!(c[ia>>2]|0))break;if(a[(c[$>>2]|0)+((c[da>>2]|0)+1)>>0]|0)Rw(c[na>>2]|0,61,(c[ga>>2]|0)+(c[da>>2]|0)|0,0)|0;c[ia>>2]=c[(c[ia>>2]|0)+20>>2];c[da>>2]=(c[da>>2]|0)+1}if((c[ea>>2]|0)<(c[ga>>2]|0))Rw(c[na>>2]|0,61,c[ea>>2]|0,0)|0;do if(!(d[(c[X>>2]|0)+18>>0]|0)){if(c[(c[X>>2]|0)+420>>2]|0)break;IC(c[X>>2]|0)}while(0);if(!(c[(c[ca>>2]|0)+24>>2]&128)){TF(ma);na=c[ca>>2]|0;ma=c[aa>>2]|0;Sf(na,ma);ma=c[ca>>2]|0;na=c[Y>>2]|0;Yu(ma,na);na=c[ca>>2]|0;ma=c[Z>>2]|0;Vu(na,ma);ma=c[ca>>2]|0;na=c[_>>2]|0;Zu(ma,na);i=oa;return}if(c[(c[X>>2]|0)+420>>2]|0){TF(ma);na=c[ca>>2]|0;ma=c[aa>>2]|0;Sf(na,ma);ma=c[ca>>2]|0;na=c[Y>>2]|0;Yu(ma,na);na=c[ca>>2]|0;ma=c[Z>>2]|0;Vu(na,ma);ma=c[ca>>2]|0;na=c[_>>2]|0;Zu(ma,na);i=oa;return}if(a[(c[X>>2]|0)+18>>0]|0){TF(ma);na=c[ca>>2]|0;ma=c[aa>>2]|0;Sf(na,ma);ma=c[ca>>2]|0;na=c[Y>>2]|0;Yu(ma,na);na=c[ca>>2]|0;ma=c[Z>>2]|0;Vu(na,ma);ma=c[ca>>2]|0;na=c[_>>2]|0;Zu(ma,na);i=oa;return}Rw(c[na>>2]|0,33,c[la>>2]|0,1)|0;OB(c[na>>2]|0,1);PB(c[na>>2]|0,0,0,36150,0)|0;TF(ma);na=c[ca>>2]|0;ma=c[aa>>2]|0;Sf(na,ma);ma=c[ca>>2]|0;na=c[Y>>2]|0;Yu(ma,na);na=c[ca>>2]|0;ma=c[Z>>2]|0;Vu(na,ma);ma=c[ca>>2]|0;na=c[_>>2]|0;Zu(ma,na);i=oa;return}else if((J|0)==185){TF(ma);na=c[ca>>2]|0;ma=c[aa>>2]|0;Sf(na,ma);ma=c[ca>>2]|0;na=c[Y>>2]|0;Yu(ma,na);na=c[ca>>2]|0;ma=c[Z>>2]|0;Vu(na,ma);ma=c[ca>>2]|0;na=c[_>>2]|0;Zu(ma,na);i=oa;return}}function LC(e,f,g,h,j,k,l,m,n){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;K=i;i=i+96|0;o=K+84|0;p=K+80|0;q=K+76|0;r=K+72|0;s=K+68|0;t=K+64|0;u=K+60|0;v=K+56|0;w=K+52|0;x=K+48|0;J=K+44|0;z=K+40|0;C=K+36|0;E=K+32|0;B=K+28|0;H=K+24|0;F=K+20|0;I=K+16|0;G=K+12|0;A=K+8|0;y=K+4|0;D=K;c[o>>2]=e;c[p>>2]=f;c[q>>2]=g;c[r>>2]=h;c[s>>2]=j;c[t>>2]=k;c[u>>2]=l;c[v>>2]=m;c[w>>2]=n;c[J>>2]=Pw(c[o>>2]|0)|0;c[z>>2]=(c[(c[o>>2]|0)+72>>2]|0)-1;c[C>>2]=Cz(c[J>>2]|0)|0;if((c[v>>2]|0)<0)Rw(c[J>>2]|0,136,d[(c[s>>2]|0)+24>>0]|0,c[C>>2]|0)|0;c[x>>2]=0;while(1){if((c[x>>2]|0)>=(c[(c[s>>2]|0)+20>>2]|0))break;c[E>>2]=(c[(c[t>>2]|0)+(c[x>>2]<<2)>>2]|0)+(c[u>>2]|0)+1;Rw(c[J>>2]|0,76,c[E>>2]|0,c[C>>2]|0)|0;c[x>>2]=(c[x>>2]|0)+1}do if(!(c[w>>2]|0)){if(!(c[r>>2]|0)){c[H>>2]=Wz(c[o>>2]|0)|0;Rw(c[J>>2]|0,31,(c[c[t>>2]>>2]|0)+1+(c[u>>2]|0)|0,c[H>>2]|0)|0;c[B>>2]=Rw(c[J>>2]|0,38,c[H>>2]|0,0)|0;if((c[v>>2]|0)==1?(c[q>>2]|0)==(c[c[s>>2]>>2]|0):0){Vw(c[J>>2]|0,79,c[u>>2]|0,c[C>>2]|0,c[H>>2]|0)|0;Fh(c[J>>2]|0,-112)}zz(c[o>>2]|0,c[z>>2]|0,c[p>>2]|0,c[q>>2]|0,54);Vw(c[J>>2]|0,70,c[z>>2]|0,0,c[H>>2]|0)|0;Ez(c[J>>2]|0,c[C>>2]|0)|0;I=c[J>>2]|0;Fz(I,(Bz(c[J>>2]|0)|0)-2|0);Fz(c[J>>2]|0,c[B>>2]|0);
  85. _z(c[o>>2]|0,c[H>>2]|0);break}c[F>>2]=c[(c[s>>2]|0)+20>>2];c[I>>2]=kA(c[o>>2]|0,c[F>>2]|0)|0;c[G>>2]=Wz(c[o>>2]|0)|0;Vw(c[J>>2]|0,54,c[z>>2]|0,c[(c[r>>2]|0)+44>>2]|0,c[p>>2]|0)|0;Az(c[o>>2]|0,c[r>>2]|0);c[x>>2]=0;while(1){if((c[x>>2]|0)>=(c[F>>2]|0))break;Rw(c[J>>2]|0,30,(c[(c[t>>2]|0)+(c[x>>2]<<2)>>2]|0)+1+(c[u>>2]|0)|0,(c[I>>2]|0)+(c[x>>2]|0)|0)|0;c[x>>2]=(c[x>>2]|0)+1}if((c[v>>2]|0)==1?(c[q>>2]|0)==(c[c[s>>2]>>2]|0):0){H=Bz(c[J>>2]|0)|0;c[A>>2]=H+(c[F>>2]|0)+1;c[x>>2]=0;while(1){if((c[x>>2]|0)>=(c[F>>2]|0))break;c[y>>2]=(c[(c[t>>2]|0)+(c[x>>2]<<2)>>2]|0)+1+(c[u>>2]|0);c[D>>2]=(b[(c[(c[r>>2]|0)+4>>2]|0)+(c[x>>2]<<1)>>1]|0)+1+(c[u>>2]|0);if((b[(c[(c[r>>2]|0)+4>>2]|0)+(c[x>>2]<<1)>>1]|0)==(b[(c[q>>2]|0)+32>>1]|0))c[D>>2]=c[u>>2];Vw(c[J>>2]|0,78,c[y>>2]|0,c[A>>2]|0,c[D>>2]|0)|0;Fh(c[J>>2]|0,16);c[x>>2]=(c[x>>2]|0)+1}Ez(c[J>>2]|0,c[C>>2]|0)|0}h=c[J>>2]|0;e=c[I>>2]|0;g=c[F>>2]|0;l=c[G>>2]|0;H=dC(c[c[o>>2]>>2]|0,c[r>>2]|0)|0;Uw(h,49,e,g,l,H,c[F>>2]|0)|0;Eh(c[J>>2]|0,69,c[z>>2]|0,c[C>>2]|0,c[G>>2]|0,0)|0;_z(c[o>>2]|0,c[G>>2]|0);nA(c[o>>2]|0,c[I>>2]|0,c[F>>2]|0)}while(0);if((((a[(c[s>>2]|0)+24>>0]|0)==0?(c[(c[c[o>>2]>>2]|0)+24>>2]&16777216|0)==0:0)?(c[(c[o>>2]|0)+416>>2]|0)==0:0)?(a[(c[o>>2]|0)+20>>0]|0)==0:0){bA(c[o>>2]|0,787,2,0,-2,4);H=c[J>>2]|0;I=c[C>>2]|0;Gz(H,I);I=c[J>>2]|0;J=c[z>>2]|0;xz(I,61,J)|0;i=K;return}if((c[v>>2]|0)>0?(d[(c[s>>2]|0)+24>>0]|0)==0:0)Bx(c[o>>2]|0);Rw(c[J>>2]|0,135,d[(c[s>>2]|0)+24>>0]|0,c[v>>2]|0)|0;H=c[J>>2]|0;I=c[C>>2]|0;Gz(H,I);I=c[J>>2]|0;J=c[z>>2]|0;xz(I,61,J)|0;i=K;return}function MC(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0;j=i;i=i+32|0;e=j+16|0;k=j+12|0;f=j+8|0;h=j+4|0;g=j;c[k>>2]=a;c[f>>2]=b;b=c[k>>2]|0;if(c[(c[k>>2]|0)+416>>2]|0)b=c[b+416>>2]|0;c[h>>2]=b;do if(c[(c[h>>2]|0)+532>>2]|0){c[g>>2]=c[c[(c[h>>2]|0)+532>>2]>>2];if(!((c[g>>2]|0)==(c[(c[f>>2]|0)+28>>2]|0)?(d[(c[f>>2]|0)+25>>0]|0|0)==7:0)){if((c[g>>2]|0)!=(c[(c[f>>2]|0)+28+4>>2]|0))break;if((d[(c[f>>2]|0)+25+1>>0]|0|0)!=7)break}c[e>>2]=1;k=c[e>>2]|0;i=j;return k|0}while(0);c[e>>2]=0;k=c[e>>2]|0;i=j;return k|0}function NC(a,e,f,g){a=a|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+48|0;h=s+32|0;j=s+28|0;k=s+24|0;l=s+20|0;m=s+16|0;n=s+12|0;q=s+8|0;o=s+4|0;p=s;c[j>>2]=a;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;c[n>>2]=0;a:while(1){if((c[n>>2]|0)>=(c[(c[k>>2]|0)+20>>2]|0)){r=14;break}c[q>>2]=c[(c[k>>2]|0)+36+(c[n>>2]<<3)+4>>2];c[o>>2]=0;while(1){if((c[o>>2]|0)>=(b[(c[j>>2]|0)+34>>1]|0))break;if(!((c[(c[l>>2]|0)+(c[o>>2]<<2)>>2]|0)<0?!((c[m>>2]|0)!=0?(c[o>>2]|0)==(b[(c[j>>2]|0)+32>>1]|0):0):0))r=7;do if((r|0)==7){r=0;c[p>>2]=(c[(c[j>>2]|0)+4>>2]|0)+((c[o>>2]|0)*24|0);f=c[p>>2]|0;if(c[q>>2]|0)if(!(Td(c[f>>2]|0,c[q>>2]|0)|0)){r=9;break a}else break;else if(d[f+23>>0]&1){r=11;break a}else break}while(0);c[o>>2]=(c[o>>2]|0)+1}c[n>>2]=(c[n>>2]|0)+1}if((r|0)==9){c[h>>2]=1;r=c[h>>2]|0;i=s;return r|0}else if((r|0)==11){c[h>>2]=1;r=c[h>>2]|0;i=s;return r|0}else if((r|0)==14){c[h>>2]=0;r=c[h>>2]|0;i=s;return r|0}return 0}function OC(a,f,g,h,j,k,l,m){a=a|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0;O=i;i=i+144|0;n=O+128|0;o=O+124|0;p=O+120|0;q=O+116|0;r=O+112|0;s=O+108|0;t=O+104|0;u=O+100|0;v=O+96|0;w=O+92|0;K=O+88|0;L=O+56|0;J=O+48|0;z=O+44|0;M=O+40|0;D=O+36|0;H=O+32|0;B=O+28|0;x=O+134|0;N=O+24|0;F=O+20|0;E=O+16|0;I=O+12|0;C=O+8|0;A=O+4|0;G=O;y=O+132|0;c[n>>2]=a;c[o>>2]=f;c[p>>2]=g;c[q>>2]=h;c[r>>2]=j;c[s>>2]=k;c[t>>2]=l;c[u>>2]=m;c[v>>2]=c[c[n>>2]>>2];c[K>>2]=0;c[z>>2]=0;c[M>>2]=Pw(c[n>>2]|0)|0;if((c[u>>2]|0)<0)c[z>>2]=Rw(c[M>>2]|0,136,d[(c[r>>2]|0)+24>>0]|0,0)|0;c[w>>2]=0;while(1){if((c[w>>2]|0)>=(c[(c[r>>2]|0)+20>>2]|0))break;if(c[q>>2]|0)k=b[(c[(c[q>>2]|0)+4>>2]|0)+(c[w>>2]<<1)>>1]|0;else k=-1;b[x>>1]=k;c[D>>2]=PC(c[n>>2]|0,c[p>>2]|0,c[t>>2]|0,b[x>>1]|0)|0;if(c[s>>2]|0)k=c[(c[s>>2]|0)+(c[w>>2]<<2)>>2]|0;else k=c[(c[r>>2]|0)+36>>2]|0;b[x>>1]=k;c[N>>2]=c[(c[(c[c[r>>2]>>2]|0)+4>>2]|0)+((b[x>>1]|0)*24|0)>>2];c[H>>2]=Jv(c[v>>2]|0,27,c[N>>2]|0)|0;c[B>>2]=rv(c[n>>2]|0,79,c[D>>2]|0,c[H>>2]|0,0)|0;c[K>>2]=az(c[v>>2]|0,c[K>>2]|0,c[B>>2]|0)|0;c[w>>2]=(c[w>>2]|0)+1}if((c[u>>2]|0)>0?(c[p>>2]|0)==(c[c[r>>2]>>2]|0):0){if(!(d[(c[p>>2]|0)+42>>0]&32)){c[E>>2]=PC(c[n>>2]|0,c[p>>2]|0,c[t>>2]|0,-1)|0;c[I>>2]=QC(c[v>>2]|0,c[p>>2]|0,c[(c[o>>2]|0)+8+44>>2]|0,-1)|0;c[F>>2]=rv(c[n>>2]|0,78,c[E>>2]|0,c[I>>2]|0,0)|0}else{c[A>>2]=0;c[G>>2]=Ej(c[p>>2]|0)|0;c[w>>2]=0;while(1){if((c[w>>2]|0)>=(e[(c[G>>2]|0)+50>>1]|0))break;b[y>>1]=b[(c[(c[q>>2]|0)+4>>2]|0)+(c[w>>2]<<1)>>1]|0;c[E>>2]=PC(c[n>>2]|0,c[p>>2]|0,c[t>>2]|0,b[y>>1]|0)|0;c[I>>2]=QC(c[v>>2]|0,c[p>>2]|0,c[(c[o>>2]|0)+8+44>>2]|0,b[y>>1]|0)|0;c[C>>2]=rv(c[n>>2]|0,79,c[E>>2]|0,c[I>>2]|0,0)|0;c[A>>2]=az(c[v>>2]|0,c[A>>2]|0,c[C>>2]|0)|0;c[w>>2]=(c[w>>2]|0)+1}c[F>>2]=rv(c[n>>2]|0,19,c[A>>2]|0,0,0)|0}c[K>>2]=az(c[v>>2]|0,c[K>>2]|0,c[F>>2]|0)|0}c[L>>2]=0;c[L+4>>2]=0;c[L+8>>2]=0;c[L+12>>2]=0;c[L+16>>2]=0;c[L+20>>2]=0;c[L+24>>2]=0;c[L+28>>2]=0;c[L+4>>2]=c[o>>2];c[L>>2]=c[n>>2];fy(L,c[K>>2]|0)|0;c[J>>2]=RC(c[n>>2]|0,c[o>>2]|0,c[K>>2]|0,0,0,0,0)|0;Rw(c[M>>2]|0,135,d[(c[r>>2]|0)+24>>0]|0,c[u>>2]|0)|0;if(c[J>>2]|0)SC(c[J>>2]|0);Zu(c[v>>2]|0,c[K>>2]|0);if(!(c[z>>2]|0)){i=O;return}Fz(c[M>>2]|0,c[z>>2]|0);i=O;return}function PC(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+32|0;h=q+24|0;j=q+20|0;k=q+16|0;l=q+28|0;o=q+12|0;n=q+8|0;p=q+4|0;m=q;c[h>>2]=d;c[j>>2]=e;c[k>>2]=f;b[l>>1]=g;c[m>>2]=c[c[h>>2]>>2];c[o>>2]=Jv(c[m>>2]|0,157,0)|0;if(!(c[o>>2]|0)){p=c[o>>2]|0;i=q;return p|0}if((b[l>>1]|0)>=0?(b[l>>1]|0)!=(b[(c[j>>2]|0)+32>>1]|0):0){c[n>>2]=(c[(c[j>>2]|0)+4>>2]|0)+((b[l>>1]|0)*24|0);c[(c[o>>2]|0)+28>>2]=(c[k>>2]|0)+(b[l>>1]|0)+1;a[(c[o>>2]|0)+1>>0]=a[(c[n>>2]|0)+21>>0]|0;c[p>>2]=c[(c[n>>2]|0)+16>>2];if(!(c[p>>2]|0))c[p>>2]=c[c[(c[m>>2]|0)+8>>2]>>2];c[o>>2]=By(c[h>>2]|0,c[o>>2]|0,c[p>>2]|0)|0;p=c[o>>2]|0;i=q;return p|0}c[(c[o>>2]|0)+28>>2]=c[k>>2];a[(c[o>>2]|0)+1>>0]=68;p=c[o>>2]|0;i=q;return p|0}function QC(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;l=i;i=i+32|0;m=l+12|0;g=l+8|0;h=l+4|0;j=l+16|0;k=l;c[m>>2]=a;c[g>>2]=d;c[h>>2]=e;b[j>>1]=f;c[k>>2]=Jv(c[m>>2]|0,152,0)|0;if(!(c[k>>2]|0)){m=c[k>>2]|0;i=l;return m|0}c[(c[k>>2]|0)+44>>2]=c[g>>2];c[(c[k>>2]|0)+28>>2]=c[h>>2];b[(c[k>>2]|0)+32>>1]=b[j>>1]|0;m=c[k>>2]|0;i=l;return m|0}function RC(f,g,h,j,k,l,m){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0;ca=i;i=i+192|0;n=ca+24|0;q=ca+180|0;r=ca+176|0;s=ca+172|0;o=ca+168|0;t=ca+164|0;u=ca+160|0;v=ca+184|0;w=ca+156|0;p=ca+152|0;I=ca+148|0;W=ca+144|0;_=ca+140|0;J=ca+16|0;Y=ca+120|0;R=ca+116|0;P=ca+112|0;Q=ca+108|0;G=ca+104|0;B=ca+100|0;X=ca+96|0;z=ca+186|0;Z=ca+8|0;U=ca+92|0;M=ca+88|0;$=ca+84|0;A=ca+80|0;S=ca+76|0;E=ca+72|0;T=ca+68|0;V=ca+64|0;D=ca+60|0;K=ca+56|0;y=ca;H=ca+52|0;N=ca+48|0;F=ca+44|0;L=ca+40|0;O=ca+36|0;x=ca+32|0;aa=ca+28|0;c[r>>2]=f;c[s>>2]=g;c[o>>2]=h;c[t>>2]=j;c[u>>2]=k;b[v>>1]=l;c[w>>2]=m;c[_>>2]=c[(c[r>>2]|0)+8>>2];a[z>>0]=0;c[B>>2]=c[c[r>>2]>>2];c[Y>>2]=0;c[Y+4>>2]=0;c[Y+8>>2]=0;c[Y+12>>2]=0;c[Y+16>>2]=0;if((c[t>>2]|0)!=0?(c[c[t>>2]>>2]|0)>=64:0)c[t>>2]=0;c[Y+8>>2]=c[t>>2];if(e[(c[B>>2]|0)+60>>1]&32)b[v>>1]=e[v>>1]&-1025;if((c[c[s>>2]>>2]|0)>64){ba=c[r>>2]|0;c[n>>2]=64;Ah(ba,35216,n);c[q>>2]=0;ba=c[q>>2]|0;i=ca;return ba|0}if(e[v>>1]&64)m=1;else m=c[c[s>>2]>>2]|0;c[I>>2]=m;c[p>>2]=816+(((c[I>>2]|0)-1|0)*80|0)+7&-8;c[W>>2]=ph(c[B>>2]|0,(c[p>>2]|0)+72|0,0)|0;a:do if(!(a[(c[B>>2]|0)+65>>0]|0)){c[(c[W>>2]|0)+60+4>>2]=-1;c[(c[W>>2]|0)+60>>2]=-1;a[(c[W>>2]|0)+41>>0]=c[I>>2];c[c[W>>2]>>2]=c[r>>2];c[(c[W>>2]|0)+4>>2]=c[s>>2];c[(c[W>>2]|0)+8>>2]=c[t>>2];c[(c[W>>2]|0)+12>>2]=c[u>>2];l=Cz(c[_>>2]|0)|0;c[(c[W>>2]|0)+48>>2]=l;c[(c[W>>2]|0)+52>>2]=l;b[(c[W>>2]|0)+34>>1]=b[v>>1]|0;c[(c[W>>2]|0)+56>>2]=c[(c[r>>2]|0)+428>>2];c[R>>2]=(c[W>>2]|0)+68;c[Y>>2]=c[W>>2];c[Y+4>>2]=(c[W>>2]|0)+328;c[Y+12>>2]=(c[W>>2]|0)+(c[p>>2]|0);ZC(c[Y+12>>2]|0);c[c[R>>2]>>2]=0;aD((c[W>>2]|0)+328|0,c[W>>2]|0);bD((c[W>>2]|0)+328|0,c[o>>2]|0,72);c[G>>2]=0;while(1){m=(c[I>>2]|0)==0;if((c[G>>2]|0)>=(c[(c[Y+4>>2]|0)+12>>2]|0))break;if(!(!m?(dB(c[(c[(c[Y+4>>2]|0)+20>>2]|0)+((c[G>>2]|0)*48|0)>>2]|0)|0)==0:0)){LA(c[r>>2]|0,c[(c[(c[Y+4>>2]|0)+20>>2]|0)+((c[G>>2]|0)*48|0)>>2]|0,c[(c[W>>2]|0)+52>>2]|0,16);p=(c[(c[Y+4>>2]|0)+20>>2]|0)+((c[G>>2]|0)*48|0)+20|0;b[p>>1]=e[p>>1]|4}c[G>>2]=(c[G>>2]|0)+1}if(m){if(c[t>>2]|0)a[(c[W>>2]|0)+36>>0]=c[c[t>>2]>>2];if(e[v>>1]&1024)a[(c[W>>2]|0)+40>>0]=1}c[G>>2]=0;while(1){if((c[G>>2]|0)>=(c[c[s>>2]>>2]|0))break;cD(c[R>>2]|0,c[(c[s>>2]|0)+8+((c[G>>2]|0)*72|0)+44>>2]|0);dD(c[r>>2]|0,(c[s>>2]|0)+8+((c[G>>2]|0)*72|0)|0,(c[W>>2]|0)+328|0);c[G>>2]=(c[G>>2]|0)+1}eD(c[s>>2]|0,(c[W>>2]|0)+328|0);if(!(a[(c[B>>2]|0)+65>>0]|0)){do if(e[v>>1]&1024){if(fD(c[r>>2]|0,c[s>>2]|0,(c[W>>2]|0)+328|0,c[u>>2]|0)|0){a[(c[W>>2]|0)+40>>0]=1;break}if(!(c[t>>2]|0)){t=(c[W>>2]|0)+34|0;b[t>>1]=e[t>>1]|512;c[(c[W>>2]|0)+8>>2]=c[u>>2]}}while(0);if(!((c[I>>2]|0)==1?(gD(Y)|0)!=0:0)){c[X>>2]=hD(Y)|0;if(c[X>>2]|0)break;iD(c[W>>2]|0,0)|0;if(a[(c[B>>2]|0)+65>>0]|0)break;if((c[(c[W>>2]|0)+8>>2]|0)!=0?(iD(c[W>>2]|0,(b[(c[W>>2]|0)+32>>1]|0)+1&65535)|0,(a[(c[B>>2]|0)+65>>0]|0)!=0):0)break}if((c[(c[W>>2]|0)+8>>2]|0)==0?(c[(c[B>>2]|0)+24>>2]&131072|0)!=0:0){X=(c[W>>2]|0)+24|0;c[X>>2]=-1;c[X+4>>2]=-1}if((c[(c[r>>2]|0)+68>>2]|0)==0?(d[(c[B>>2]|0)+65>>0]|0)==0:0){b:do if(((c[u>>2]|0)!=0?(d[(c[W>>2]|0)+41>>0]|0)>=2:0)?(e[(c[B>>2]|0)+60>>1]&1024|0)==0:0){u=jD(c[R>>2]|0,c[u>>2]|0)|0;X=Z;c[X>>2]=u;c[X+4>>2]=C;if(c[Y+8>>2]|0){u=jD(c[R>>2]|0,c[Y+8>>2]|0)|0;t=Z;R=c[t+4>>2]|C;X=Z;c[X>>2]=c[t>>2]|u;c[X+4>>2]=R}while(1){if((d[(c[W>>2]|0)+41>>0]|0)<2)break b;c[Q>>2]=c[(c[W>>2]|0)+736+(((d[(c[W>>2]|0)+41>>0]|0)-1|0)*80|0)+64>>2];if(!(d[(c[(c[W>>2]|0)+4>>2]|0)+8+((d[(c[Q>>2]|0)+16>>0]|0)*72|0)+36>>0]&8))break b;if((e[v>>1]&1024|0)==0?(c[(c[Q>>2]|0)+36>>2]&4096|0)==0:0)break b;R=Z;X=(c[Q>>2]|0)+8|0;if((c[R>>2]&c[X>>2]|0)!=0?1:(c[R+4>>2]&c[X+4>>2]|0)!=0)break b;c[M>>2]=(c[(c[Y+4>>2]|0)+20>>2]|0)+((c[(c[Y+4>>2]|0)+12>>2]|0)*48|0);c[U>>2]=c[(c[Y+4>>2]|0)+20>>2];while(1){if((c[U>>2]|0)>>>0>=(c[M>>2]|0)>>>0)break;R=(c[U>>2]|0)+40|0;X=(c[Q>>2]|0)+8|0;if(((c[R>>2]&c[X>>2]|0)!=0?1:(c[R+4>>2]&c[X+4>>2]|0)!=0)?(c[(c[c[U>>2]>>2]|0)+4>>2]&1|0)==0:0)break;c[U>>2]=(c[U>>2]|0)+48}if((c[U>>2]|0)>>>0<(c[M>>2]|0)>>>0)break b;X=(c[W>>2]|0)+41|0;a[X>>0]=(a[X>>0]|0)+-1<<24>>24;c[I>>2]=(c[I>>2]|0)+-1}}while(0);Z=(c[c[W>>2]>>2]|0)+428|0;c[Z>>2]=(c[Z>>2]|0)+(b[(c[W>>2]|0)+32>>1]|0);do if(e[v>>1]&4){c[$>>2]=c[(c[(c[W>>2]|0)+736+64>>2]|0)+36>>2];c[A>>2]=(c[$>>2]&4096|0)!=0&1;if(!(c[A>>2]|0)){if(!(e[v>>1]&8192))break;if(c[$>>2]&1024)break}a[(c[W>>2]|0)+38>>0]=(c[A>>2]|0)!=0?1:2;if((d[(c[(c[s>>2]|0)+8+16>>2]|0)+42>>0]&32|0)==0?(c[$>>2]&64|0)!=0:0){if(e[v>>1]&8192)a[z>>0]=8;c[(c[(c[W>>2]|0)+736+64>>2]|0)+36>>2]=c[$>>2]&-65}}while(0);c[G>>2]=0;c[P>>2]=(c[W>>2]|0)+736;while(1){if((c[G>>2]|0)>=(c[I>>2]|0))break;c[T>>2]=(c[s>>2]|0)+8+((d[(c[P>>2]|0)+44>>0]|0)*72|0);c[S>>2]=c[(c[T>>2]|0)+16>>2];c[E>>2]=Dh(c[B>>2]|0,c[(c[S>>2]|0)+64>>2]|0)|0;c[Q>>2]=c[(c[P>>2]|0)+64>>2];c:do if((d[(c[S>>2]|0)+42>>0]&2|0)==0?(c[(c[S>>2]|0)+12>>2]|0)==0:0){if(c[(c[Q>>2]|0)+36>>2]&1024){c[V>>2]=Ax(c[B>>2]|0,c[S>>2]|0)|0;c[D>>2]=c[(c[T>>2]|0)+44>>2];Uw(c[_>>2]|0,152,c[D>>2]|0,0,0,c[V>>2]|0,-10)|0;break}if(d[(c[S>>2]|0)+42>>0]&16)break;do if(!(c[(c[Q>>2]|0)+36>>2]&64)){if(e[v>>1]&16)break;c[K>>2]=54;if(d[(c[W>>2]|0)+38>>0]|0){c[K>>2]=55;c[(c[W>>2]|0)+60>>2]=c[(c[T>>2]|0)+44>>2]}zz(c[r>>2]|0,c[(c[T>>2]|0)+44>>2]|0,c[E>>2]|0,c[S>>2]|0,c[K>>2]|0);do if(!(d[(c[W>>2]|0)+38>>0]|0)){if((b[(c[S>>2]|0)+34>>1]|0)>=64)break;if(d[(c[S>>2]|0)+42>>0]&32)break;Y=(c[T>>2]|0)+56|0;Z=c[Y+4>>2]|0;$=y;c[$>>2]=c[Y>>2];c[$+4>>2]=Z;c[H>>2]=0;while(1){$=y;if(!((c[$>>2]|0)!=0|(c[$+4>>2]|0)!=0))break;Z=y;Z=hR(c[Z>>2]|0,c[Z+4>>2]|0,1)|0;$=y;c[$>>2]=Z;c[$+4>>2]=C;c[H>>2]=(c[H>>2]|0)+1}Ih(c[_>>2]|0,-1,c[H>>2]|0,-14)}while(0);Fh(c[_>>2]|0,a[z>>0]|0);break c}while(0);yz(c[r>>2]|0,c[E>>2]|0,c[(c[S>>2]|0)+28>>2]|0,0,c[c[S>>2]>>2]|0)}while(0);do if(c[(c[Q>>2]|0)+36>>2]&512){c[N>>2]=c[(c[Q>>2]|0)+24+4>>2];c[L>>2]=54;do if(!(d[(c[S>>2]|0)+42>>0]&32))ba=93;else{if((a[(c[N>>2]|0)+55>>0]&3|0)!=2){ba=93;break}if(!(e[v>>1]&64)){ba=93;break}c[F>>2]=c[(c[P>>2]|0)+4>>2];c[L>>2]=0}while(0);d:do if((ba|0)==93){ba=0;if(d[(c[W>>2]|0)+38>>0]|0){c[O>>2]=c[(c[(c[T>>2]|0)+16>>2]|0)+8>>2];c[F>>2]=c[w>>2];while(1){if(!(c[O>>2]|0))break;if((c[O>>2]|0)==(c[N>>2]|0))break;c[F>>2]=(c[F>>2]|0)+1;c[O>>2]=c[(c[O>>2]|0)+20>>2]}c[L>>2]=55;c[(c[W>>2]|0)+60+4>>2]=c[F>>2];break}else{do if(c[w>>2]|0){if(!(e[v>>1]&64))break;c[F>>2]=c[w>>2];if(!(e[v>>1]&4096))break d;c[L>>2]=53;break d}while(0);Z=(c[r>>2]|0)+72|0;$=c[Z>>2]|0;c[Z>>2]=$+1;c[F>>2]=$;break}}while(0);c[(c[P>>2]|0)+8>>2]=c[F>>2];if(!(c[L>>2]|0))break;Vw(c[_>>2]|0,c[L>>2]|0,c[F>>2]|0,c[(c[N>>2]|0)+44>>2]|0,c[E>>2]|0)|0;Az(c[r>>2]|0,c[N>>2]|0);if(!(c[(c[Q>>2]|0)+36>>2]&15))break;if(c[(c[Q>>2]|0)+36>>2]&32770)break;if(e[(c[W>>2]|0)+34>>1]&1)break;Fh(c[_>>2]|0,2)}while(0);if((c[E>>2]|0)>=0)bx(c[r>>2]|0,c[E>>2]|0);c[G>>2]=(c[G>>2]|0)+1;c[P>>2]=(c[P>>2]|0)+80}ba=Bz(c[_>>2]|0)|0;c[(c[W>>2]|0)+44>>2]=ba;if(!(a[(c[B>>2]|0)+65>>0]|0)){ba=J;c[ba>>2]=-1;c[ba+4>>2]=-1;c[G>>2]=0;while(1){if((c[G>>2]|0)>=(c[I>>2]|0))break;c[P>>2]=(c[W>>2]|0)+736+((c[G>>2]|0)*80|0);c[aa>>2]=c[(c[(c[P>>2]|0)+64>>2]|0)+36>>2];if((c[(c[(c[P>>2]|0)+64>>2]|0)+36>>2]&16384|0)!=0?(ba=J,kD(c[r>>2]|0,(c[W>>2]|0)+328|0,(c[s>>2]|0)+8+((d[(c[P>>2]|0)+44>>0]|0)*72|0)|0,c[ba>>2]|0,c[ba+4>>2]|0,c[P>>2]|0),(a[(c[B>>2]|0)+65>>0]|0)!=0):0)break a;c[x>>2]=lD(c[r>>2]|0,c[s>>2]|0,c[P>>2]|0,c[G>>2]|0,d[(c[P>>2]|0)+44>>0]|0,b[v>>1]|0)|0;$=Bz(c[_>>2]|0)|0;c[(c[P>>2]|0)+32>>2]=$;$=J;$=mD(c[W>>2]|0,c[G>>2]|0,c[$>>2]|0,c[$+4>>2]|0)|0;ba=J;c[ba>>2]=$;c[ba+4>>2]=C;c[(c[W>>2]|0)+48>>2]=c[(c[P>>2]|0)+24>>2];do if((c[aa>>2]&8192|0)==0?(e[v>>1]&64|0)!=0:0)break;while(0);c[G>>2]=(c[G>>2]|0)+1}c[q>>2]=c[W>>2];ba=c[q>>2]|0;i=ca;return ba|0}}}}else{Sf(c[B>>2]|0,c[W>>2]|0);c[W>>2]=0}while(0);if(c[W>>2]|0){c[(c[r>>2]|0)+428>>2]=c[(c[W>>2]|0)+56>>2];UC(c[B>>2]|0,c[W>>2]|0)}c[q>>2]=0;ba=c[q>>2]|0;i=ca;return ba|0}function SC(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;E=i;i=i+96|0;m=E+80|0;v=E+76|0;A=E+72|0;o=E+68|0;s=E+64|0;t=E+60|0;z=E+56|0;n=E+52|0;h=E+48|0;l=E+44|0;j=E+40|0;k=E+36|0;p=E+32|0;q=E+28|0;u=E+24|0;r=E+20|0;y=E+16|0;x=E+12|0;B=E+8|0;C=E+4|0;w=E;c[m>>2]=f;c[v>>2]=c[c[m>>2]>>2];c[A>>2]=c[(c[v>>2]|0)+8>>2];c[z>>2]=c[(c[m>>2]|0)+4>>2];c[n>>2]=c[c[v>>2]>>2];fC(c[v>>2]|0);c[o>>2]=(d[(c[m>>2]|0)+41>>0]|0)-1;while(1){if((c[o>>2]|0)<0)break;c[s>>2]=(c[m>>2]|0)+736+((c[o>>2]|0)*80|0);c[t>>2]=c[(c[s>>2]|0)+64>>2];Gz(c[A>>2]|0,c[(c[s>>2]|0)+24>>2]|0);if((d[(c[s>>2]|0)+45>>0]|0)!=160){Vw(c[A>>2]|0,d[(c[s>>2]|0)+45>>0]|0,c[(c[s>>2]|0)+48>>2]|0,c[(c[s>>2]|0)+52>>2]|0,d[(c[s>>2]|0)+46>>0]|0)|0;Fh(c[A>>2]|0,a[(c[s>>2]|0)+47>>0]|0)}a:do if((c[(c[t>>2]|0)+36>>2]&2048|0)!=0?(c[(c[s>>2]|0)+56>>2]|0)>0:0){Gz(c[A>>2]|0,c[(c[s>>2]|0)+16>>2]|0);c[j>>2]=c[(c[s>>2]|0)+56>>2];c[l>>2]=(c[(c[s>>2]|0)+56+4>>2]|0)+(((c[j>>2]|0)-1|0)*12|0);while(1){if((c[j>>2]|0)<=0)break a;Fz(c[A>>2]|0,(c[(c[l>>2]|0)+4>>2]|0)+1|0);Rw(c[A>>2]|0,d[(c[l>>2]|0)+8>>0]|0,c[c[l>>2]>>2]|0,c[(c[l>>2]|0)+4>>2]|0)|0;Fz(c[A>>2]|0,(c[(c[l>>2]|0)+4>>2]|0)-1|0);c[j>>2]=(c[j>>2]|0)+-1;c[l>>2]=(c[l>>2]|0)+-12}}while(0);Gz(c[A>>2]|0,c[(c[s>>2]|0)+12>>2]|0);if(c[(c[s>>2]|0)+20>>2]|0){Ez(c[A>>2]|0,c[(c[s>>2]|0)+20>>2]|0)|0;Fz(c[A>>2]|0,c[(c[s>>2]|0)+20>>2]|0);Fz(c[A>>2]|0,(c[(c[s>>2]|0)+20>>2]|0)-2|0)}if(c[(c[s>>2]|0)+40>>2]|0){if(c[(Mz(c[A>>2]|0,(c[(c[s>>2]|0)+40>>2]|0)-1|0)|0)+4>>2]|0)c[k>>2]=141;else c[k>>2]=142;Rw(c[A>>2]|0,c[k>>2]|0,c[(c[s>>2]|0)+36>>2]|0,c[(c[s>>2]|0)+40>>2]|0)|0}if(c[c[s>>2]>>2]|0){c[h>>2]=xz(c[A>>2]|0,138,c[c[s>>2]>>2]|0)|0;if(!(c[(c[t>>2]|0)+36>>2]&64))xz(c[A>>2]|0,104,c[(c[z>>2]|0)+8+((c[o>>2]|0)*72|0)+44>>2]|0)|0;if(c[(c[t>>2]|0)+36>>2]&512)xz(c[A>>2]|0,104,c[(c[s>>2]|0)+8>>2]|0)|0;f=c[A>>2]|0;g=c[s>>2]|0;if((d[(c[s>>2]|0)+45>>0]|0)==15)Rw(f,14,c[g+48>>2]|0,c[(c[s>>2]|0)+28>>2]|0)|0;else Ez(f,c[g+28>>2]|0)|0;Fz(c[A>>2]|0,c[h>>2]|0)}c[o>>2]=(c[o>>2]|0)+-1}Gz(c[A>>2]|0,c[(c[m>>2]|0)+52>>2]|0);c[o>>2]=0;c[s>>2]=(c[m>>2]|0)+736;while(1){if((c[o>>2]|0)>=(d[(c[m>>2]|0)+41>>0]|0))break;c[r>>2]=0;c[y>>2]=(c[z>>2]|0)+8+((d[(c[s>>2]|0)+44>>0]|0)*72|0);c[x>>2]=c[(c[y>>2]|0)+16>>2];c[t>>2]=c[(c[s>>2]|0)+64>>2];if(((d[(c[y>>2]|0)+36+1>>0]|0)>>>4&1|0)!=0?(a[(c[n>>2]|0)+65>>0]|0)==0:0)TC(c[A>>2]|0,c[(c[s>>2]|0)+32>>2]|0,c[(c[s>>2]|0)+4>>2]|0,c[(c[y>>2]|0)+32>>2]|0,0);else D=32;b:do if((D|0)==32){D=0;if(((d[(c[x>>2]|0)+42>>0]&2|0)==0?(c[(c[x>>2]|0)+12>>2]|0)==0:0)?(e[(c[m>>2]|0)+34>>1]&16|0)==0:0){c[B>>2]=c[(c[t>>2]|0)+36>>2];if((d[(c[m>>2]|0)+38>>0]|0)==0?(c[B>>2]&64|0)==0:0)xz(c[A>>2]|0,61,c[(c[y>>2]|0)+44>>2]|0)|0;if(((c[B>>2]&512|0)!=0?(c[B>>2]&16640|0)==0:0)?(c[(c[s>>2]|0)+8>>2]|0)!=(c[(c[m>>2]|0)+60+4>>2]|0):0)xz(c[A>>2]|0,61,c[(c[s>>2]|0)+8>>2]|0)|0}f=c[t>>2]|0;if(!(c[(c[t>>2]|0)+36>>2]&576)){if(c[f+36>>2]&8192)c[r>>2]=c[(c[s>>2]|0)+56>>2]}else c[r>>2]=c[f+24+4>>2];if(c[r>>2]|0){if((d[(c[m>>2]|0)+38>>0]|0)!=0?(d[(c[(c[r>>2]|0)+12>>2]|0)+42>>0]&32|0)==0:0)break;if(!(a[(c[n>>2]|0)+65>>0]|0)){c[q>>2]=Bz(c[A>>2]|0)|0;c[p>>2]=c[(c[s>>2]|0)+32>>2];c[u>>2]=Mz(c[A>>2]|0,c[p>>2]|0)|0;while(1){if((c[p>>2]|0)>=(c[q>>2]|0))break b;do if((c[(c[u>>2]|0)+4>>2]|0)==(c[(c[s>>2]|0)+4>>2]|0)){f=c[u>>2]|0;if((d[c[u>>2]>>0]|0)!=47){if((d[f>>0]|0)!=103)break;c[(c[u>>2]|0)+4>>2]=c[(c[s>>2]|0)+8>>2];a[c[u>>2]>>0]=113;break}c[C>>2]=c[f+8>>2];if(d[(c[x>>2]|0)+42>>0]&32){c[w>>2]=Ej(c[x>>2]|0)|0;c[C>>2]=b[(c[(c[w>>2]|0)+4>>2]|0)+(c[C>>2]<<1)>>1]}c[C>>2]=(uA(c[r>>2]|0,c[C>>2]&65535)|0)<<16>>16;if((c[C>>2]|0)>=0){c[(c[u>>2]|0)+8>>2]=c[C>>2];c[(c[u>>2]|0)+4>>2]=c[(c[s>>2]|0)+8>>2]}}while(0);c[p>>2]=(c[p>>2]|0)+1;c[u>>2]=(c[u>>2]|0)+20}}}}while(0);c[o>>2]=(c[o>>2]|0)+1;c[s>>2]=(c[s>>2]|0)+80}c[(c[v>>2]|0)+428>>2]=c[(c[m>>2]|0)+56>>2];UC(c[n>>2]|0,c[m>>2]|0);i=E;return}function TC(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;p=i;i=i+32|0;q=p+24|0;j=p+20|0;k=p+16|0;l=p+12|0;m=p+8|0;o=p+4|0;n=p;c[q>>2]=b;c[j>>2]=e;c[k>>2]=f;c[l>>2]=g;c[m>>2]=h;c[o>>2]=Mz(c[q>>2]|0,c[j>>2]|0)|0;c[n>>2]=Bz(c[q>>2]|0)|0;while(1){if((c[j>>2]|0)>=(c[n>>2]|0))break;do if((c[(c[o>>2]|0)+4>>2]|0)==(c[k>>2]|0)){h=c[o>>2]|0;if((d[c[o>>2]>>0]|0|0)==47){a[h>>0]=30;c[(c[o>>2]|0)+4>>2]=(c[(c[o>>2]|0)+8>>2]|0)+(c[l>>2]|0);c[(c[o>>2]|0)+8>>2]=c[(c[o>>2]|0)+12>>2];c[(c[o>>2]|0)+12>>2]=0;break}if((d[h>>0]|0|0)==103){h=c[o>>2]|0;if(c[m>>2]|0){a[h>>0]=37;c[(c[o>>2]|0)+4>>2]=c[(c[o>>2]|0)+8>>2];c[(c[o>>2]|0)+8>>2]=1;break}else{a[h>>0]=25;c[(c[o>>2]|0)+4>>2]=0;c[(c[o>>2]|0)+12>>2]=0;break}}}while(0);c[j>>2]=(c[j>>2]|0)+1;c[o>>2]=(c[o>>2]|0)+20}i=p;return}function UC(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+16|0;f=k+12|0;g=k+8|0;j=k+4|0;h=k;c[e>>2]=a;c[f>>2]=b;if(!(c[f>>2]|0)){i=k;return}c[g>>2]=0;while(1){if((c[g>>2]|0)>=(d[(c[f>>2]|0)+41>>0]|0|0))break;c[j>>2]=(c[f>>2]|0)+736+((c[g>>2]|0)*80|0);if((c[(c[j>>2]|0)+64>>2]|0)!=0?(c[(c[(c[j>>2]|0)+64>>2]|0)+36>>2]&2048|0)!=0:0)Sf(c[e>>2]|0,c[(c[j>>2]|0)+56+4>>2]|0);c[g>>2]=(c[g>>2]|0)+1}VC((c[f>>2]|0)+328|0);while(1){if(!(c[(c[f>>2]|0)+16>>2]|0))break;c[h>>2]=c[(c[f>>2]|0)+16>>2];c[(c[f>>2]|0)+16>>2]=c[(c[h>>2]|0)+52>>2];WC(c[e>>2]|0,c[h>>2]|0)}Sf(c[e>>2]|0,c[f>>2]|0);i=k;return}function VC(a){a=a|0;var b=0,d=0,f=0,g=0,h=0;h=i;i=i+16|0;b=h+12|0;g=h+8|0;d=h+4|0;f=h;c[b>>2]=a;c[f>>2]=c[c[c[c[b>>2]>>2]>>2]>>2];c[g>>2]=(c[(c[b>>2]|0)+12>>2]|0)-1;c[d>>2]=c[(c[b>>2]|0)+20>>2];while(1){if((c[g>>2]|0)<0)break;if((e[(c[d>>2]|0)+20>>1]|0)&1)Zu(c[f>>2]|0,c[c[d>>2]>>2]|0);if(!((e[(c[d>>2]|0)+20>>1]|0)&16)){if((e[(c[d>>2]|0)+20>>1]|0)&32)$C(c[f>>2]|0,c[(c[d>>2]|0)+12>>2]|0)}else _C(c[f>>2]|0,c[(c[d>>2]|0)+12>>2]|0);c[g>>2]=(c[g>>2]|0)+-1;c[d>>2]=(c[d>>2]|0)+48}if((c[(c[b>>2]|0)+20>>2]|0)==((c[b>>2]|0)+24|0)){i=h;return}Sf(c[f>>2]|0,c[(c[b>>2]|0)+20>>2]|0);i=h;return}function WC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;XC(c[f>>2]|0,c[e>>2]|0);Sf(c[f>>2]|0,c[e>>2]|0);i=d;return}function XC(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f+4|0;e=f;c[d>>2]=a;c[e>>2]=b;if((c[(c[e>>2]|0)+48>>2]|0)!=((c[e>>2]|0)+56|0))Sf(c[d>>2]|0,c[(c[e>>2]|0)+48>>2]|0);YC(c[d>>2]|0,c[e>>2]|0);ZC(c[e>>2]|0);i=f;return}function YC(b,e){b=b|0;e=e|0;var f=0,g=0,h=0;h=i;i=i+16|0;f=h+4|0;g=h;c[f>>2]=b;c[g>>2]=e;if(!(c[(c[g>>2]|0)+36>>2]&17408)){i=h;return}if((c[(c[g>>2]|0)+36>>2]&1024|0)!=0?(d[(c[g>>2]|0)+24+4>>0]|0|0)!=0:0){Kd(c[(c[g>>2]|0)+24+8>>2]|0);a[(c[g>>2]|0)+24+4>>0]=0;c[(c[g>>2]|0)+24+8>>2]=0;i=h;return}if(!(c[(c[g>>2]|0)+36>>2]&16384)){i=h;return}if(!(c[(c[g>>2]|0)+24+4>>2]|0)){i=h;return}Sf(c[f>>2]|0,c[(c[(c[g>>2]|0)+24+4>>2]|0)+16>>2]|0);Sf(c[f>>2]|0,c[(c[g>>2]|0)+24+4>>2]|0);c[(c[g>>2]|0)+24+4>>2]=0;i=h;return}function ZC(a){a=a|0;var d=0,e=0;d=i;i=i+16|0;e=d;c[e>>2]=a;c[(c[e>>2]|0)+48>>2]=(c[e>>2]|0)+56;b[(c[e>>2]|0)+40>>1]=0;b[(c[e>>2]|0)+44>>1]=3;c[(c[e>>2]|0)+36>>2]=0;i=d;return}function _C(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;VC(c[e>>2]|0);Sf(c[f>>2]|0,c[e>>2]|0);i=d;return}function $C(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;VC(c[e>>2]|0);Sf(c[f>>2]|0,c[e>>2]|0);i=d;return}function aD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;c[c[e>>2]>>2]=c[f>>2];c[(c[e>>2]|0)+4>>2]=0;c[(c[e>>2]|0)+12>>2]=0;c[(c[e>>2]|0)+16>>2]=8;c[(c[e>>2]|0)+20>>2]=(c[e>>2]|0)+24;i=d;return}function bD(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;l=i;i=i+16|0;g=l+8|0;h=l+4|0;j=l+12|0;k=l;c[g>>2]=b;c[h>>2]=e;a[j>>0]=f;c[k>>2]=Tx(c[h>>2]|0)|0;a[(c[g>>2]|0)+8>>0]=a[j>>0]|0;if(!(c[k>>2]|0)){i=l;return}f=c[g>>2]|0;if((d[c[k>>2]>>0]|0|0)!=(d[j>>0]|0|0)){nE(f,c[h>>2]|0,0)|0;i=l;return}else{bD(f,c[(c[k>>2]|0)+12>>2]|0,a[j>>0]|0);bD(c[g>>2]|0,c[(c[k>>2]|0)+16>>2]|0,a[j>>0]|0);i=l;return}}function cD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;e=d+4|0;f=d;c[e>>2]=a;c[f>>2]=b;b=c[f>>2]|0;f=c[e>>2]|0;a=c[f>>2]|0;c[f>>2]=a+1;c[(c[e>>2]|0)+4+(a<<2)>>2]=b;i=d;return}function dD(a,e,f){a=a|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;q=r;g=r+40|0;h=r+36|0;j=r+32|0;p=r+28|0;o=r+24|0;k=r+20|0;l=r+16|0;m=r+12|0;n=r+8|0;c[g>>2]=a;c[h>>2]=e;c[j>>2]=f;if(!((d[(c[h>>2]|0)+36+1>>0]|0)>>>2&1)){i=r;return}c[p>>2]=c[(c[h>>2]|0)+16>>2];c[l>>2]=c[(c[h>>2]|0)+64>>2];if(!(c[l>>2]|0)){i=r;return}c[k>>2]=0;c[o>>2]=0;while(1){if((c[o>>2]|0)>=(c[c[l>>2]>>2]|0)){e=13;break}while(1){if((c[k>>2]|0)<(b[(c[p>>2]|0)+34>>1]|0))e=(d[(c[(c[p>>2]|0)+4>>2]|0)+((c[k>>2]|0)*24|0)+23>>0]&2|0)==0;else e=0;a=c[k>>2]|0;if(!e)break;c[k>>2]=a+1}f=c[g>>2]|0;if((a|0)>=(b[(c[p>>2]|0)+34>>1]|0)){e=10;break}c[m>>2]=rv(f,152,0,0,0)|0;if(!(c[m>>2]|0)){e=13;break}c[(c[m>>2]|0)+28>>2]=c[(c[h>>2]|0)+44>>2];a=c[k>>2]|0;c[k>>2]=a+1;b[(c[m>>2]|0)+32>>1]=a;c[(c[m>>2]|0)+44>>2]=c[p>>2];a=c[g>>2]|0;f=c[m>>2]|0;c[n>>2]=rv(a,79,f,ny(c[c[g>>2]>>2]|0,c[(c[(c[l>>2]|0)+4>>2]|0)+((c[o>>2]|0)*20|0)>>2]|0,0)|0,0)|0;nE(c[j>>2]|0,c[n>>2]|0,1)|0;c[o>>2]=(c[o>>2]|0)+1}if((e|0)==10){o=c[o>>2]|0;c[q>>2]=c[c[p>>2]>>2];c[q+4>>2]=o;Ah(f,35704,q);i=r;return}else if((e|0)==13){i=r;return}}function eD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;e=g+4|0;f=g;c[d>>2]=a;c[e>>2]=b;c[f>>2]=(c[(c[e>>2]|0)+12>>2]|0)-1;while(1){if((c[f>>2]|0)<0)break;jE(c[d>>2]|0,c[e>>2]|0,c[f>>2]|0);c[f>>2]=(c[f>>2]|0)+-1}i=g;return}function fD(a,f,g,h){a=a|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+48|0;j=u+36|0;k=u+32|0;l=u+28|0;m=u+24|0;n=u+20|0;s=u+16|0;r=u+12|0;o=u+8|0;p=u+4|0;q=u;c[k>>2]=a;c[l>>2]=f;c[m>>2]=g;c[n>>2]=h;if((c[c[l>>2]>>2]|0)!=1){c[j>>2]=0;t=c[j>>2]|0;i=u;return t|0}c[p>>2]=c[(c[l>>2]|0)+8+44>>2];c[s>>2]=c[(c[l>>2]|0)+8+16>>2];c[o>>2]=0;while(1){if((c[o>>2]|0)>=(c[c[n>>2]>>2]|0))break;c[q>>2]=Tx(c[(c[(c[n>>2]|0)+4>>2]|0)+((c[o>>2]|0)*20|0)>>2]|0)|0;if(((d[c[q>>2]>>0]|0)==152?(c[(c[q>>2]|0)+28>>2]|0)==(c[p>>2]|0):0)?(b[(c[q>>2]|0)+32>>1]|0)<0:0){t=8;break}c[o>>2]=(c[o>>2]|0)+1}if((t|0)==8){c[j>>2]=1;t=c[j>>2]|0;i=u;return t|0}c[r>>2]=c[(c[s>>2]|0)+8>>2];while(1){if(!(c[r>>2]|0)){t=22;break}if(d[(c[r>>2]|0)+54>>0]|0){c[o>>2]=0;while(1){if((c[o>>2]|0)>=(e[(c[r>>2]|0)+50>>1]|0))break;if(!(xD(c[m>>2]|0,c[p>>2]|0,c[o>>2]|0,-1,-1,2,c[r>>2]|0)|0)){if((iE(c[k>>2]|0,c[n>>2]|0,c[p>>2]|0,c[r>>2]|0,c[o>>2]|0)|0)<0)break;if(!(bE(c[r>>2]|0,c[o>>2]|0)|0))break}c[o>>2]=(c[o>>2]|0)+1}if((c[o>>2]|0)==(e[(c[r>>2]|0)+50>>1]|0)){t=20;break}}c[r>>2]=c[(c[r>>2]|0)+20>>2]}if((t|0)==20){c[j>>2]=1;t=c[j>>2]|0;i=u;return t|0}else if((t|0)==22){c[j>>2]=0;t=c[j>>2]|0;i=u;return t|0}return 0}function gD(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+48|0;g=t+44|0;h=t+40|0;s=t+36|0;n=t+32|0;r=t+28|0;q=t+24|0;o=t+20|0;j=t+16|0;k=t+12|0;p=t+8|0;m=t+4|0;l=t;c[h>>2]=f;c[s>>2]=c[c[h>>2]>>2];if((e[(c[s>>2]|0)+34>>1]|0)&32){c[g>>2]=0;s=c[g>>2]|0;i=t;return s|0}c[n>>2]=(c[(c[s>>2]|0)+4>>2]|0)+8;c[p>>2]=c[(c[n>>2]|0)+16>>2];if((d[(c[p>>2]|0)+42>>0]|0)&16){c[g>>2]=0;s=c[g>>2]|0;i=t;return s|0}if((d[(c[n>>2]|0)+36+1>>0]|0)>>>1&1){c[g>>2]=0;s=c[g>>2]|0;i=t;return s|0}c[j>>2]=c[(c[n>>2]|0)+44>>2];c[r>>2]=(c[s>>2]|0)+328;c[o>>2]=c[(c[h>>2]|0)+12>>2];c[(c[o>>2]|0)+36>>2]=0;b[(c[o>>2]|0)+42>>1]=0;c[q>>2]=xD(c[r>>2]|0,c[j>>2]|0,-1,0,0,130,0)|0;a:do if(c[q>>2]|0){c[(c[o>>2]|0)+36>>2]=4353;c[c[(c[o>>2]|0)+48>>2]>>2]=c[q>>2];b[(c[o>>2]|0)+40>>1]=1;b[(c[o>>2]|0)+24>>1]=1;b[(c[o>>2]|0)+20>>1]=33}else{c[m>>2]=c[(c[p>>2]|0)+8>>2];while(1){if(!(c[m>>2]|0))break a;if(((d[(c[m>>2]|0)+54>>0]|0|0)!=0?(c[(c[m>>2]|0)+36>>2]|0)==0:0)?(e[(c[m>>2]|0)+50>>1]|0|0)<=3:0){c[l>>2]=((d[(c[m>>2]|0)+55>>0]|0)>>>3&1|0)!=0?130:2;c[k>>2]=0;while(1){if((c[k>>2]|0)>=(e[(c[m>>2]|0)+50>>1]|0|0))break;c[q>>2]=xD(c[r>>2]|0,c[j>>2]|0,c[k>>2]|0,0,0,c[l>>2]|0,c[m>>2]|0)|0;if(!(c[q>>2]|0))break;c[(c[(c[o>>2]|0)+48>>2]|0)+(c[k>>2]<<2)>>2]=c[q>>2];c[k>>2]=(c[k>>2]|0)+1}if((c[k>>2]|0)==(e[(c[m>>2]|0)+50>>1]|0|0))break}c[m>>2]=c[(c[m>>2]|0)+20>>2]}c[(c[o>>2]|0)+36>>2]=4609;if(!(((d[(c[m>>2]|0)+55>>0]|0)>>>5&1|0)==0?(r=(c[n>>2]|0)+56|0,p=c[r>>2]|0,r=c[r+4>>2]|0,q=$D(c[m>>2]|0)|0,!((p&~q|0)==0&(r&~C|0)==0)):0)){r=(c[o>>2]|0)+36|0;c[r>>2]=c[r>>2]|64}b[(c[o>>2]|0)+40>>1]=c[k>>2];b[(c[o>>2]|0)+24>>1]=c[k>>2];c[(c[o>>2]|0)+24+4>>2]=c[m>>2];b[(c[o>>2]|0)+20>>1]=39}while(0);if(!(c[(c[o>>2]|0)+36>>2]|0)){c[g>>2]=0;s=c[g>>2]|0;i=t;return s|0}b[(c[o>>2]|0)+22>>1]=1;c[(c[s>>2]|0)+736+64>>2]=c[o>>2];q=nD((c[s>>2]|0)+68|0,c[j>>2]|0)|0;r=(c[o>>2]|0)+8|0;c[r>>2]=q;c[r+4>>2]=C;c[(c[s>>2]|0)+736+4>>2]=c[j>>2];b[(c[s>>2]|0)+32>>1]=1;if(c[(c[s>>2]|0)+8>>2]|0)a[(c[s>>2]|0)+36>>0]=c[c[(c[s>>2]|0)+8>>2]>>2];if((e[(c[s>>2]|0)+34>>1]|0)&1024)a[(c[s>>2]|0)+40>>0]=1;c[g>>2]=1;s=c[g>>2]|0;i=t;return s|0}function hD(b){b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;s=i;i=i+80|0;e=s+60|0;n=s+56|0;g=s+16|0;h=s+8|0;f=s+52|0;t=s+48|0;m=s+44|0;l=s+40|0;p=s+36|0;r=s+32|0;q=s+28|0;o=s+64|0;j=s;k=s+24|0;c[e>>2]=b;c[n>>2]=c[c[e>>2]>>2];b=g;c[b>>2]=0;c[b+4>>2]=0;b=h;c[b>>2]=0;c[b+4>>2]=0;c[t>>2]=c[(c[n>>2]|0)+4>>2];c[l>>2]=(c[t>>2]|0)+8+((d[(c[n>>2]|0)+41>>0]|0)*72|0);c[p>>2]=c[c[c[n>>2]>>2]>>2];c[r>>2]=0;a[o>>0]=0;c[q>>2]=c[(c[e>>2]|0)+12>>2];ZC(c[q>>2]|0);c[f>>2]=0;c[m>>2]=(c[t>>2]|0)+8;while(1){if((c[m>>2]|0)>>>0>=(c[l>>2]|0)>>>0){e=19;break}b=j;c[b>>2]=0;c[b+4>>2]=0;a[(c[q>>2]|0)+16>>0]=c[f>>2];b=nD((c[n>>2]|0)+68|0,c[(c[m>>2]|0)+44>>2]|0)|0;t=(c[q>>2]|0)+8|0;c[t>>2]=b;c[t+4>>2]=C;if((d[(c[m>>2]|0)+36>>0]|0|(d[o>>0]|0))&10){u=h;b=c[u+4>>2]|0;t=g;c[t>>2]=c[u>>2];c[t+4>>2]=b}a[o>>0]=a[(c[m>>2]|0)+36>>0]|0;if((d[(c[(c[m>>2]|0)+16>>2]|0)+42>>0]|0)&16){c[k>>2]=(c[m>>2]|0)+72;while(1){if((c[k>>2]|0)>>>0>=(c[l>>2]|0)>>>0)break;u=j;if(!(!((c[u>>2]|0)!=0|(c[u+4>>2]|0)!=0)?((d[(c[k>>2]|0)+36>>0]|0)&10|0)==0:0)){b=nD((c[n>>2]|0)+68|0,c[(c[k>>2]|0)+44>>2]|0)|0;v=j;t=c[v+4>>2]|C;u=j;c[u>>2]=c[v>>2]|b;c[u+4>>2]=t}c[k>>2]=(c[k>>2]|0)+72}u=g;v=j;c[r>>2]=OD(c[e>>2]|0,c[u>>2]|0,c[u+4>>2]|0,c[v>>2]|0,c[v+4>>2]|0)|0}else{v=g;c[r>>2]=PD(c[e>>2]|0,c[v>>2]|0,c[v+4>>2]|0)|0}if(!(c[r>>2]|0)){u=g;v=j;c[r>>2]=QD(c[e>>2]|0,c[u>>2]|0,c[u+4>>2]|0,c[v>>2]|0,c[v+4>>2]|0)|0}t=(c[q>>2]|0)+8|0;b=h;u=c[b+4>>2]|c[t+4>>2];v=h;c[v>>2]=c[b>>2]|c[t>>2];c[v+4>>2]=u;if(c[r>>2]|0){e=19;break}if(d[(c[p>>2]|0)+65>>0]|0){e=19;break}c[f>>2]=(c[f>>2]|0)+1;c[m>>2]=(c[m>>2]|0)+72}if((e|0)==19){XC(c[p>>2]|0,c[q>>2]|0);i=s;return c[r>>2]|0}return 0}function iD(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0;U=i;i=i+160|0;E=U+32|0;M=U+132|0;N=U+128|0;G=U+146|0;r=U+124|0;P=U+120|0;z=U+116|0;O=U+112|0;H=U+108|0;n=U+104|0;p=U+100|0;t=U+96|0;w=U+92|0;s=U+144|0;u=U+142|0;y=U+88|0;v=U+84|0;k=U+80|0;m=U+76|0;R=U+72|0;A=U+68|0;K=U+64|0;j=U+60|0;l=U+56|0;S=U+52|0;h=U+48|0;x=U+140|0;B=U+138|0;C=U+136|0;o=U+148|0;q=U+24|0;D=U+16|0;J=U+44|0;I=U+8|0;L=U+40|0;T=U;Q=U+36|0;c[N>>2]=f;b[G>>1]=g;c[t>>2]=0;b[s>>1]=0;b[u>>1]=0;c[l>>2]=0;c[z>>2]=c[c[N>>2]>>2];c[O>>2]=c[c[z>>2]>>2];c[P>>2]=d[(c[N>>2]|0)+41>>0];if((c[P>>2]|0)<=1)g=1;else g=(c[P>>2]|0)==2?5:10;c[r>>2]=g;if((c[(c[N>>2]|0)+8>>2]|0)!=0?(b[G>>1]|0)!=0:0)c[w>>2]=c[c[(c[N>>2]|0)+8>>2]>>2];else c[w>>2]=0;c[h>>2]=(_(32+(c[P>>2]<<2)|0,c[r>>2]|0)|0)<<1;c[h>>2]=(c[h>>2]|0)+(c[w>>2]<<1);h=c[h>>2]|0;c[S>>2]=Fw(c[O>>2]|0,h,((h|0)<0)<<31>>31)|0;if(!(c[S>>2]|0)){c[M>>2]=7;T=c[M>>2]|0;i=U;return T|0}c[m>>2]=c[S>>2];c[k>>2]=(c[m>>2]|0)+(c[r>>2]<<5);h=c[k>>2]|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[h+16>>2]=0;c[h+20>>2]=0;c[h+24>>2]=0;c[h+28>>2]=0;c[j>>2]=(c[k>>2]|0)+(c[r>>2]<<5);c[n>>2]=c[r>>2]<<1;c[R>>2]=c[m>>2];while(1){if((c[n>>2]|0)<=0)break;c[(c[R>>2]|0)+24>>2]=c[j>>2];c[n>>2]=(c[n>>2]|0)+-1;c[R>>2]=(c[R>>2]|0)+32;c[j>>2]=(c[j>>2]|0)+(c[P>>2]<<2)}if(c[w>>2]|0){c[l>>2]=c[j>>2];kR(c[l>>2]|0,0,c[w>>2]<<1|0)|0}if((c[(c[z>>2]|0)+428>>2]|0)>>>0<48)g=c[(c[z>>2]|0)+428>>2]|0;else g=48;b[(c[k>>2]|0)+16>>1]=g;c[v>>2]=1;if(c[w>>2]|0)a[(c[k>>2]|0)+22>>0]=(c[P>>2]|0)>0?-1:c[w>>2]|0;c[H>>2]=0;while(1){if((c[H>>2]|0)>=(c[P>>2]|0))break;c[y>>2]=0;c[n>>2]=0;c[R>>2]=c[k>>2];while(1){if((c[n>>2]|0)>=(c[v>>2]|0))break;c[K>>2]=c[(c[N>>2]|0)+16>>2];while(1){if(!(c[K>>2]|0))break;a[o>>0]=a[(c[R>>2]|0)+22>>0]|0;h=D;c[h>>2]=0;c[h+4>>2]=0;h=c[K>>2]|0;j=c[R>>2]|0;a:do if(!((c[h>>2]&~c[j>>2]|0)!=0?1:(c[h+4>>2]&~c[j+4>>2]|0)!=0)?(h=(c[K>>2]|0)+8|0,j=c[R>>2]|0,!((c[h>>2]&c[j>>2]|0)!=0?1:(c[h+4>>2]&c[j+4>>2]|0)!=0)):0){b[C>>1]=KD(b[(c[K>>2]|0)+18>>1]|0,(b[(c[K>>2]|0)+20>>1]|0)+(b[(c[R>>2]|0)+16>>1]|0)&65535)|0;b[C>>1]=KD(b[C>>1]|0,b[(c[R>>2]|0)+20>>1]|0)|0;b[x>>1]=(b[(c[R>>2]|0)+16>>1]|0)+(b[(c[K>>2]|0)+22>>1]|0);g=c[R>>2]|0;f=(c[K>>2]|0)+8|0;h=c[g+4>>2]|c[f+4>>2];j=q;c[j>>2]=c[g>>2]|c[f>>2];c[j+4>>2]=h;if((a[o>>0]|0)<0)a[o>>0]=LD(c[N>>2]|0,c[(c[N>>2]|0)+8>>2]|0,c[R>>2]|0,b[(c[N>>2]|0)+34>>1]|0,c[H>>2]&65535,c[K>>2]|0,D)|0;else{f=(c[R>>2]|0)+8|0;h=c[f+4>>2]|0;j=D;c[j>>2]=c[f>>2];c[j+4>>2]=h}if((a[o>>0]|0)>=0?(a[o>>0]|0)<(c[w>>2]|0):0){if(!(b[(c[l>>2]|0)+(a[o>>0]<<1)>>1]|0)){j=MD(b[G>>1]|0,c[w>>2]|0,a[o>>0]|0)|0;b[(c[l>>2]|0)+(a[o>>0]<<1)>>1]=j}b[B>>1]=KD(b[C>>1]|0,b[(c[l>>2]|0)+(a[o>>0]<<1)>>1]|0)|0}else b[B>>1]=b[C>>1]|0;c[p>>2]=0;c[A>>2]=c[m>>2];while(1){if((c[p>>2]|0)>=(c[y>>2]|0))break;h=c[A>>2]|0;j=q;if(((c[h>>2]|0)==(c[j>>2]|0)?(c[h+4>>2]|0)==(c[j+4>>2]|0):0)?((a[(c[A>>2]|0)+22>>0]^a[o>>0])&128|0)==0:0)break;c[p>>2]=(c[p>>2]|0)+1;c[A>>2]=(c[A>>2]|0)+32}do if((c[p>>2]|0)<(c[y>>2]|0)){if((b[(c[A>>2]|0)+18>>1]|0)<(b[B>>1]|0))break a;if((b[(c[A>>2]|0)+18>>1]|0)!=(b[B>>1]|0))break;if((b[(c[A>>2]|0)+16>>1]|0)<=(b[x>>1]|0))break a}else{do if((c[y>>2]|0)>=(c[r>>2]|0)){if((b[B>>1]|0)>(b[s>>1]|0))break a;if((b[B>>1]|0)!=(b[s>>1]|0))break;if((b[C>>1]|0)>=(b[u>>1]|0))break a}while(0);if((c[y>>2]|0)<(c[r>>2]|0)){j=c[y>>2]|0;c[y>>2]=j+1;c[p>>2]=j}else c[p>>2]=c[t>>2];c[A>>2]=(c[m>>2]|0)+(c[p>>2]<<5)}while(0);g=c[R>>2]|0;j=(c[K>>2]|0)+8|0;h=c[g+4>>2]|c[j+4>>2];f=c[A>>2]|0;c[f>>2]=c[g>>2]|c[j>>2];c[f+4>>2]=h;f=D;h=c[f+4>>2]|0;j=(c[A>>2]|0)+8|0;c[j>>2]=c[f>>2];c[j+4>>2]=h;b[(c[A>>2]|0)+16>>1]=b[x>>1]|0;
  86. b[(c[A>>2]|0)+18>>1]=b[B>>1]|0;b[(c[A>>2]|0)+20>>1]=b[C>>1]|0;a[(c[A>>2]|0)+22>>0]=a[o>>0]|0;iR(c[(c[A>>2]|0)+24>>2]|0,c[(c[R>>2]|0)+24>>2]|0,c[H>>2]<<2|0)|0;c[(c[(c[A>>2]|0)+24>>2]|0)+(c[H>>2]<<2)>>2]=c[K>>2];if((c[y>>2]|0)>=(c[r>>2]|0)){c[t>>2]=0;b[s>>1]=b[(c[m>>2]|0)+18>>1]|0;b[u>>1]=b[(c[m>>2]|0)+16>>1]|0;c[p>>2]=1;c[A>>2]=(c[m>>2]|0)+32;while(1){if((c[p>>2]|0)>=(c[r>>2]|0))break a;do if((b[(c[A>>2]|0)+18>>1]|0)<=(b[s>>1]|0)){if((b[(c[A>>2]|0)+18>>1]|0)!=(b[s>>1]|0))break;if((b[(c[A>>2]|0)+20>>1]|0)>(b[u>>1]|0))F=58}else F=58;while(0);if((F|0)==58){F=0;b[s>>1]=b[(c[A>>2]|0)+18>>1]|0;b[u>>1]=b[(c[A>>2]|0)+20>>1]|0;c[t>>2]=c[p>>2]}c[p>>2]=(c[p>>2]|0)+1;c[A>>2]=(c[A>>2]|0)+32}}}while(0);c[K>>2]=c[(c[K>>2]|0)+52>>2]}c[n>>2]=(c[n>>2]|0)+1;c[R>>2]=(c[R>>2]|0)+32}c[R>>2]=c[m>>2];c[m>>2]=c[k>>2];c[k>>2]=c[R>>2];c[v>>2]=c[y>>2];c[H>>2]=(c[H>>2]|0)+1}if(!(c[v>>2]|0)){Ah(c[z>>2]|0,35564,E);Sf(c[O>>2]|0,c[S>>2]|0);c[M>>2]=1;T=c[M>>2]|0;i=U;return T|0}c[R>>2]=c[k>>2];c[n>>2]=1;while(1){if((c[n>>2]|0)>=(c[v>>2]|0))break;if((b[(c[R>>2]|0)+18>>1]|0)>(b[(c[k>>2]|0)+(c[n>>2]<<5)+18>>1]|0))c[R>>2]=(c[k>>2]|0)+(c[n>>2]<<5);c[n>>2]=(c[n>>2]|0)+1}c[H>>2]=0;while(1){g=c[N>>2]|0;if((c[H>>2]|0)>=(c[P>>2]|0))break;c[J>>2]=g+736+((c[H>>2]|0)*80|0);F=c[(c[(c[R>>2]|0)+24>>2]|0)+(c[H>>2]<<2)>>2]|0;c[K>>2]=F;c[(c[J>>2]|0)+64>>2]=F;a[(c[J>>2]|0)+44>>0]=a[(c[K>>2]|0)+16>>0]|0;c[(c[J>>2]|0)+4>>2]=c[(c[(c[N>>2]|0)+4>>2]|0)+8+((d[(c[J>>2]|0)+44>>0]|0)*72|0)+44>>2];c[H>>2]=(c[H>>2]|0)+1}if(((((e[g+34>>1]&1024|0)!=0?(e[(c[N>>2]|0)+34>>1]&512|0)==0:0)?(d[(c[N>>2]|0)+40>>0]|0)==0:0)?(b[G>>1]|0)!=0:0)?(c[L>>2]=(LD(c[N>>2]|0,c[(c[N>>2]|0)+12>>2]|0,c[R>>2]|0,512,(c[P>>2]|0)-1&65535,c[(c[(c[R>>2]|0)+24>>2]|0)+((c[P>>2]|0)-1<<2)>>2]|0,I)|0)<<24>>24,(c[L>>2]|0)==(c[c[(c[N>>2]|0)+12>>2]>>2]|0)):0)a[(c[N>>2]|0)+40>>0]=2;if(c[(c[N>>2]|0)+8>>2]|0){g=a[(c[R>>2]|0)+22>>0]|0;if(e[(c[N>>2]|0)+34>>1]&512){if((g<<24>>24|0)==(c[c[(c[N>>2]|0)+8>>2]>>2]|0))a[(c[N>>2]|0)+40>>0]=2}else{a[(c[N>>2]|0)+36>>0]=g;if((a[(c[N>>2]|0)+36>>0]|0)<0)a[(c[N>>2]|0)+36>>0]=0;J=(c[R>>2]|0)+8|0;K=c[J+4>>2]|0;L=(c[N>>2]|0)+24|0;c[L>>2]=c[J>>2];c[L+4>>2]=K}if(((e[(c[N>>2]|0)+34>>1]&2048|0)!=0?(c[P>>2]|0)>0?(a[(c[N>>2]|0)+36>>0]|0)==(c[c[(c[N>>2]|0)+8>>2]>>2]|0):0:0)?(L=T,c[L>>2]=0,c[L+4>>2]=0,c[Q>>2]=(LD(c[N>>2]|0,c[(c[N>>2]|0)+8>>2]|0,c[R>>2]|0,0,(c[P>>2]|0)-1&65535,c[(c[(c[R>>2]|0)+24>>2]|0)+((c[P>>2]|0)-1<<2)>>2]|0,T)|0)<<24>>24,(c[Q>>2]|0)==(c[c[(c[N>>2]|0)+8>>2]>>2]|0)):0){a[(c[N>>2]|0)+37>>0]=1;P=T;Q=c[P+4>>2]|0;T=(c[N>>2]|0)+24|0;c[T>>2]=c[P>>2];c[T+4>>2]=Q}}b[(c[N>>2]|0)+32>>1]=b[(c[R>>2]|0)+16>>1]|0;Sf(c[O>>2]|0,c[S>>2]|0);c[M>>2]=0;T=c[M>>2]|0;i=U;return T|0}function jD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0;h=i;i=i+32|0;d=h+16|0;e=h+12|0;f=h+8|0;g=h;c[d>>2]=a;c[e>>2]=b;a=g;c[a>>2]=0;c[a+4>>2]=0;if(!(c[e>>2]|0)){b=g;a=b;a=c[a>>2]|0;b=b+4|0;b=c[b>>2]|0;C=b;i=h;return a|0}c[f>>2]=0;while(1){if((c[f>>2]|0)>=(c[c[e>>2]>>2]|0))break;j=ID(c[d>>2]|0,c[(c[(c[e>>2]|0)+4>>2]|0)+((c[f>>2]|0)*20|0)>>2]|0)|0;k=g;b=c[k+4>>2]|C;a=g;c[a>>2]=c[k>>2]|j;c[a+4>>2]=b;c[f>>2]=(c[f>>2]|0)+1}j=g;k=j;k=c[k>>2]|0;j=j+4|0;j=c[j>>2]|0;C=j;i=h;return k|0}function kD(f,g,h,j,k,l){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0;Y=i;i=i+176|0;q=Y+40|0;N=Y+160|0;t=Y+156|0;u=Y+152|0;v=Y+32|0;O=Y+148|0;E=Y+144|0;J=Y+140|0;K=Y+136|0;G=Y+132|0;X=Y+128|0;Q=Y+124|0;I=Y+120|0;R=Y+116|0;W=Y+112|0;S=Y+108|0;y=Y+104|0;D=Y+100|0;F=Y+96|0;H=Y+92|0;s=Y+88|0;B=Y+24|0;x=Y+16|0;p=Y+164|0;T=Y+84|0;A=Y+80|0;U=Y+76|0;P=Y+72|0;V=Y+68|0;o=Y+64|0;n=Y+60|0;m=Y+8|0;z=Y+56|0;w=Y;L=Y+52|0;M=Y+48|0;c[N>>2]=f;c[t>>2]=g;c[u>>2]=h;g=v;c[g>>2]=j;c[g+4>>2]=k;c[O>>2]=l;a[p>>0]=0;c[T>>2]=0;c[A>>2]=0;c[P>>2]=0;c[X>>2]=c[(c[N>>2]|0)+8>>2];c[Q>>2]=UA(c[N>>2]|0)|0;c[E>>2]=0;c[I>>2]=c[(c[u>>2]|0)+16>>2];c[K>>2]=(c[(c[t>>2]|0)+20>>2]|0)+((c[(c[t>>2]|0)+12>>2]|0)*48|0);c[H>>2]=c[(c[O>>2]|0)+64>>2];g=B;c[g>>2]=0;c[g+4>>2]=0;c[J>>2]=c[(c[t>>2]|0)+20>>2];while(1){if((c[J>>2]|0)>>>0>=(c[K>>2]|0)>>>0)break;c[o>>2]=c[c[J>>2]>>2];g=c[H>>2]|0;if((((c[g>>2]|0)==0&(c[g+4>>2]|0)==0?(e[(c[J>>2]|0)+20>>1]&2|0)==0:0)?(c[(c[o>>2]|0)+4>>2]&1|0)==0:0)?(ED(c[o>>2]|0,c[(c[u>>2]|0)+44>>2]|0)|0)!=0:0){h=c[c[N>>2]>>2]|0;g=c[T>>2]|0;c[T>>2]=az(h,g,ny(c[c[N>>2]>>2]|0,c[o>>2]|0,0)|0)|0}g=v;if(FD(c[J>>2]|0,c[u>>2]|0,c[g>>2]|0,c[g+4>>2]|0)|0){c[n>>2]=c[(c[J>>2]|0)+12>>2];if((c[n>>2]|0)>=64){j=0;k=-2147483648}else{j=lR(1,0,c[n>>2]|0)|0;k=C}g=m;c[g>>2]=j;c[g+4>>2]=k;if(!(a[p>>0]|0)){g=c[(c[(c[I>>2]|0)+4>>2]|0)+((c[n>>2]|0)*24|0)>>2]|0;c[q>>2]=c[c[I>>2]>>2];c[q+4>>2]=g;Rd(284,35527,q);a[p>>0]=1}h=B;g=m;if((c[h>>2]&c[g>>2]|0)==0?(c[h+4>>2]&c[g+4>>2]|0)==0:0){if(GD(c[c[N>>2]>>2]|0,c[H>>2]|0,(c[E>>2]|0)+1|0)|0){r=57;break}l=c[J>>2]|0;f=c[E>>2]|0;c[E>>2]=f+1;c[(c[(c[H>>2]|0)+48>>2]|0)+(f<<2)>>2]=l;f=m;l=B;h=c[l+4>>2]|c[f+4>>2];g=B;c[g>>2]=c[l>>2]|c[f>>2];c[g+4>>2]=h}}c[J>>2]=(c[J>>2]|0)+48}if((r|0)==57){W=c[N>>2]|0;W=c[W>>2]|0;X=c[T>>2]|0;Zu(W,X);i=Y;return}o=c[E>>2]&65535;b[(c[H>>2]|0)+40>>1]=o;b[(c[H>>2]|0)+24>>1]=o;c[(c[H>>2]|0)+36>>2]=16961;o=(c[u>>2]|0)+56|0;p=B;q=c[o+4>>2]&(~c[p+4>>2]|-2147483648);r=x;c[r>>2]=c[o>>2]&~c[p>>2];c[r+4>>2]=q;if(63<(b[(c[I>>2]|0)+34>>1]|0))j=63;else j=b[(c[I>>2]|0)+34>>1]|0;c[D>>2]=j;c[y>>2]=0;while(1){if((c[y>>2]|0)>=(c[D>>2]|0))break;r=x;p=c[r>>2]|0;r=c[r+4>>2]|0;q=lR(1,0,c[y>>2]|0)|0;if((p&q|0)!=0|(r&C|0)!=0)c[E>>2]=(c[E>>2]|0)+1;c[y>>2]=(c[y>>2]|0)+1}if(0!=0?1:(c[(c[u>>2]|0)+56+4>>2]&-2147483648|0)!=0)c[E>>2]=(c[E>>2]|0)+((b[(c[I>>2]|0)+34>>1]|0)-64+1);c[G>>2]=HD(c[c[N>>2]>>2]|0,(c[E>>2]|0)+1&65535,0,s)|0;if(!(c[G>>2]|0)){W=c[N>>2]|0;W=c[W>>2]|0;X=c[T>>2]|0;Zu(W,X);i=Y;return}c[(c[H>>2]|0)+24+4>>2]=c[G>>2];c[c[G>>2]>>2]=35553;c[(c[G>>2]|0)+12>>2]=c[I>>2];c[S>>2]=0;s=B;c[s>>2]=0;c[s+4>>2]=0;c[J>>2]=c[(c[t>>2]|0)+20>>2];while(1){if((c[J>>2]|0)>>>0>=(c[K>>2]|0)>>>0)break;s=v;if(FD(c[J>>2]|0,c[u>>2]|0,c[s>>2]|0,c[s+4>>2]|0)|0){c[z>>2]=c[(c[J>>2]|0)+12>>2];if((c[z>>2]|0)>=64){j=0;k=-2147483648}else{j=lR(1,0,c[z>>2]|0)|0;k=C}r=w;c[r>>2]=j;c[r+4>>2]=k;r=B;s=w;if((c[r>>2]&c[s>>2]|0)==0?(c[r+4>>2]&c[s+4>>2]|0)==0:0){c[L>>2]=c[c[J>>2]>>2];q=w;p=B;r=c[p+4>>2]|c[q+4>>2];s=B;c[s>>2]=c[p>>2]|c[q>>2];c[s+4>>2]=r;b[(c[(c[G>>2]|0)+4>>2]|0)+(c[S>>2]<<1)>>1]=c[(c[J>>2]|0)+12>>2];c[F>>2]=VA(c[N>>2]|0,c[(c[L>>2]|0)+12>>2]|0,c[(c[L>>2]|0)+16>>2]|0)|0;if(c[F>>2]|0)j=c[c[F>>2]>>2]|0;else j=35690;c[(c[(c[G>>2]|0)+32>>2]|0)+(c[S>>2]<<2)>>2]=j;c[S>>2]=(c[S>>2]|0)+1}}c[J>>2]=(c[J>>2]|0)+48}c[y>>2]=0;while(1){if((c[y>>2]|0)>=(c[D>>2]|0))break;L=x;J=c[L>>2]|0;L=c[L+4>>2]|0;K=lR(1,0,c[y>>2]|0)|0;if((J&K|0)!=0|(L&C|0)!=0){b[(c[(c[G>>2]|0)+4>>2]|0)+(c[S>>2]<<1)>>1]=c[y>>2];c[(c[(c[G>>2]|0)+32>>2]|0)+(c[S>>2]<<2)>>2]=35690;c[S>>2]=(c[S>>2]|0)+1}c[y>>2]=(c[y>>2]|0)+1}a:do if(0!=0?1:(c[(c[u>>2]|0)+56+4>>2]&-2147483648|0)!=0){c[y>>2]=63;while(1){if((c[y>>2]|0)>=(b[(c[I>>2]|0)+34>>1]|0))break a;b[(c[(c[G>>2]|0)+4>>2]|0)+(c[S>>2]<<1)>>1]=c[y>>2];c[(c[(c[G>>2]|0)+32>>2]|0)+(c[S>>2]<<2)>>2]=35690;c[S>>2]=(c[S>>2]|0)+1;c[y>>2]=(c[y>>2]|0)+1}}while(0);b[(c[(c[G>>2]|0)+4>>2]|0)+(c[S>>2]<<1)>>1]=-1;c[(c[(c[G>>2]|0)+32>>2]|0)+(c[S>>2]<<2)>>2]=35690;K=(c[N>>2]|0)+72|0;L=c[K>>2]|0;c[K>>2]=L+1;c[(c[O>>2]|0)+8>>2]=L;Rw(c[X>>2]|0,56,c[(c[O>>2]|0)+8>>2]|0,(c[E>>2]|0)+1|0)|0;Az(c[N>>2]|0,c[G>>2]|0);iA(c[N>>2]|0);c[U>>2]=(c[(c[c[t>>2]>>2]|0)+4>>2]|0)+8+((d[(c[O>>2]|0)+44>>0]|0)*72|0);if((d[(c[U>>2]|0)+36+1>>0]|0)>>>4&1){c[M>>2]=c[(c[U>>2]|0)+28>>2];c[P>>2]=Rw(c[X>>2]|0,22,0,0)|0;Vw(c[X>>2]|0,16,c[M>>2]|0,0,c[(c[U>>2]|0)+24>>2]|0)|0;c[R>>2]=xz(c[X>>2]|0,18,c[M>>2]|0)|0}else c[R>>2]=xz(c[X>>2]|0,108,c[(c[O>>2]|0)+4>>2]|0)|0;if(c[T>>2]|0){c[A>>2]=Cz(c[X>>2]|0)|0;LA(c[N>>2]|0,c[T>>2]|0,c[A>>2]|0,16);M=(c[H>>2]|0)+36|0;c[M>>2]=c[M>>2]|131072}c[W>>2]=Wz(c[N>>2]|0)|0;c[V>>2]=Xz(c[N>>2]|0,c[G>>2]|0,c[(c[O>>2]|0)+4>>2]|0,c[W>>2]|0,0,0,0,0)|0;Rw(c[X>>2]|0,110,c[(c[O>>2]|0)+8>>2]|0,c[W>>2]|0)|0;Fh(c[X>>2]|0,16);if(c[T>>2]|0)Gz(c[X>>2]|0,c[A>>2]|0);j=c[X>>2]|0;if((d[(c[U>>2]|0)+36+1>>0]|0)>>>4&1){Lz(j,c[P>>2]|0,(c[V>>2]|0)+(c[S>>2]|0)|0);TC(c[X>>2]|0,c[R>>2]|0,c[(c[O>>2]|0)+4>>2]|0,c[(c[U>>2]|0)+32>>2]|0,1);Ez(c[X>>2]|0,c[R>>2]|0)|0;V=(c[U>>2]|0)+36+1|0;a[V>>0]=a[V>>0]&-17}else Rw(j,7,c[(c[O>>2]|0)+4>>2]|0,(c[R>>2]|0)+1|0)|0;Fh(c[X>>2]|0,3);Fz(c[X>>2]|0,c[R>>2]|0);_z(c[N>>2]|0,c[W>>2]|0);gA(c[N>>2]|0);Fz(c[X>>2]|0,c[Q>>2]|0);W=c[N>>2]|0;W=c[W>>2]|0;X=c[T>>2]|0;Zu(W,X);i=Y;return}function lD(f,g,h,j,k,l){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0;O=i;i=i+256|0;H=O+40|0;G=O+32|0;J=O+24|0;I=O+16|0;F=O+8|0;E=O;s=O+144|0;m=O+140|0;n=O+136|0;o=O+132|0;t=O+128|0;u=O+124|0;p=O+148|0;B=O+120|0;z=O+116|0;D=O+112|0;q=O+108|0;w=O+104|0;x=O+100|0;A=O+96|0;v=O+92|0;L=O+88|0;C=O+60|0;r=O+152|0;K=O+56|0;y=O+52|0;M=O+48|0;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;c[t>>2]=j;c[u>>2]=k;b[p>>1]=l;c[B>>2]=0;do if((d[(c[m>>2]|0)+453>>0]|0|0)==2){c[z>>2]=(c[n>>2]|0)+8+((d[(c[o>>2]|0)+44>>0]|0)*72|0);c[D>>2]=c[(c[m>>2]|0)+8>>2];c[q>>2]=c[c[m>>2]>>2];c[w>>2]=c[(c[m>>2]|0)+468>>2];c[A>>2]=c[(c[o>>2]|0)+64>>2];c[v>>2]=c[(c[A>>2]|0)+36>>2];if((c[v>>2]&8192|0)==0?((e[p>>1]|0)&64|0)==0:0){do if(c[v>>2]&48)m=1;else{if((c[v>>2]&1024|0)==0?(e[(c[A>>2]|0)+24>>1]|0|0)>0:0){m=1;break}m=((e[p>>1]|0)&3|0)!=0}while(0);c[x>>2]=m&1;cg(C,c[q>>2]|0,r,100,1e9);AD(C,(c[x>>2]|0)!=0?35264:35271);m=c[z>>2]|0;if(c[(c[z>>2]|0)+20>>2]|0){c[E>>2]=d[m+40>>0];$z(C,35276,E)}else{c[F>>2]=c[m+8>>2];$z(C,35289,F)}if(c[(c[z>>2]|0)+12>>2]|0){c[I>>2]=c[(c[z>>2]|0)+12>>2];$z(C,35299,I)}do if(!(c[v>>2]&1280)){c[K>>2]=0;c[y>>2]=c[(c[A>>2]|0)+24+4>>2];if(((d[(c[(c[z>>2]|0)+16>>2]|0)+42>>0]|0)&32|0)!=0?(a[(c[y>>2]|0)+55>>0]&3|0)==2:0){if(c[x>>2]|0)c[K>>2]=35306}else N=19;do if((N|0)==19){if(c[v>>2]&131072){c[K>>2]=35318;break}if(c[v>>2]&16384){c[K>>2]=35351;break}if(c[v>>2]&64){c[K>>2]=35376;break}else{c[K>>2]=35394;break}}while(0);if(c[K>>2]|0){aA(C,35403,7);N=c[K>>2]|0;c[J>>2]=c[c[y>>2]>>2];$z(C,N,J);BD(C,c[A>>2]|0)}}else{if((c[v>>2]&256|0)!=0?(c[v>>2]&15|0)!=0:0){do if(!(c[v>>2]&5)){if((c[v>>2]&48|0)==48){c[M>>2]=35413;break}if(c[v>>2]&32){c[M>>2]=35427;break}else{c[M>>2]=35429;break}}else c[M>>2]=35411;while(0);c[G>>2]=c[M>>2];$z(C,35431,G);break}if(c[v>>2]&1024){N=c[(c[A>>2]|0)+24+8>>2]|0;c[H>>2]=c[(c[A>>2]|0)+24>>2];c[H+4>>2]=N;$z(C,35469,H)}}while(0);c[L>>2]=eg(C)|0;c[B>>2]=Uw(c[D>>2]|0,161,c[w>>2]|0,c[t>>2]|0,c[u>>2]|0,c[L>>2]|0,-1)|0;break}c[s>>2]=0;N=c[s>>2]|0;i=O;return N|0}while(0);c[s>>2]=c[B>>2];N=c[s>>2]|0;i=O;return N|0}function mD(f,g,h,j){f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0;Za=i;i=i+368|0;Ia=Za+8|0;Ja=Za+352|0;Z=Za+348|0;Ka=Za;Oa=Za+344|0;Ha=Za+340|0;Na=Za+336|0;F=Za+332|0;N=Za+328|0;Fa=Za+324|0;Ta=Za+320|0;Ga=Za+316|0;Wa=Za+312|0;Va=Za+308|0;Ua=Za+304|0;Ma=Za+300|0;Ya=Za+296|0;E=Za+292|0;v=Za+288|0;La=Za+284|0;K=Za+280|0;l=Za+276|0;k=Za+272|0;A=Za+268|0;z=Za+264|0;D=Za+260|0;B=Za+256|0;u=Za+252|0;t=Za+248|0;m=Za+244|0;o=Za+240|0;n=Za+236|0;p=Za+232|0;r=Za+228|0;s=Za+224|0;q=Za+220|0;M=Za+358|0;V=Za+216|0;S=Za+212|0;R=Za+208|0;W=Za+204|0;J=Za+200|0;X=Za+196|0;L=Za+192|0;P=Za+188|0;ba=Za+184|0;w=Za+180|0;O=Za+176|0;Y=Za+172|0;I=Za+363|0;G=Za+362|0;H=Za+361|0;x=Za+168|0;y=Za+360|0;T=Za+164|0;U=Za+160|0;Q=Za+156|0;sa=Za+152|0;qa=Za+148|0;na=Za+144|0;aa=Za+140|0;za=Za+136|0;Ba=Za+132|0;Aa=Za+128|0;ca=Za+124|0;ea=Za+120|0;Ca=Za+116|0;ha=Za+112|0;Da=Za+356|0;ma=Za+108|0;xa=Za+104|0;ja=Za+100|0;la=Za+96|0;ta=Za+92|0;ga=Za+88|0;oa=Za+84|0;ra=Za+80|0;wa=Za+76|0;pa=Za+72|0;ia=Za+68|0;va=Za+64|0;_=Za+60|0;ya=Za+56|0;fa=Za+52|0;ua=Za+48|0;ka=Za+44|0;da=Za+40|0;$=Za+36|0;Qa=Za+32|0;Xa=Za+28|0;Ra=Za+24|0;Sa=Za+20|0;Pa=Za+16|0;c[Ja>>2]=f;c[Z>>2]=g;g=Ka;c[g>>2]=h;c[g+4>>2]=j;c[K>>2]=0;c[l>>2]=0;c[Ua>>2]=c[c[Ja>>2]>>2];c[Ya>>2]=c[(c[Ua>>2]|0)+8>>2];c[Wa>>2]=(c[Ja>>2]|0)+328;c[Ma>>2]=c[c[Ua>>2]>>2];c[Ta>>2]=(c[Ja>>2]|0)+736+((c[Z>>2]|0)*80|0);c[Ga>>2]=c[(c[Ta>>2]|0)+64>>2];c[E>>2]=(c[(c[Ja>>2]|0)+4>>2]|0)+8+((d[(c[Ta>>2]|0)+44>>0]|0)*72|0);c[Na>>2]=c[(c[E>>2]|0)+44>>2];g=Ka;h=c[g>>2]|0;g=c[g+4>>2]|0;j=nD((c[Ja>>2]|0)+68|0,c[Na>>2]|0)|0;f=(c[Ta>>2]|0)+72|0;c[f>>2]=h&~j;c[f+4>>2]=g&~C;f=(c[Ja>>2]|0)+24|0;f=hR(c[f>>2]|0,c[f+4>>2]|0,c[Z>>2]|0)|0;c[Fa>>2]=f&1;if(c[(c[Ga>>2]|0)+36>>2]&64)h=(e[(c[Ja>>2]|0)+34>>1]&32|0)==0;else h=0;c[N>>2]=h&1;f=Cz(c[Ya>>2]|0)|0;c[(c[Ta>>2]|0)+16>>2]=f;c[(c[Ta>>2]|0)+12>>2]=f;c[v>>2]=f;f=Cz(c[Ya>>2]|0)|0;c[(c[Ta>>2]|0)+24>>2]=f;c[La>>2]=f;if((d[(c[Ta>>2]|0)+44>>0]|0)>0?(d[(c[E>>2]|0)+36>>0]&8|0)!=0:0){g=(c[Ua>>2]|0)+76|0;f=(c[g>>2]|0)+1|0;c[g>>2]=f;c[c[Ta>>2]>>2]=f;Rw(c[Ya>>2]|0,22,0,c[c[Ta>>2]>>2]|0)|0}do if(!((d[(c[E>>2]|0)+36+1>>0]|0)>>>4&1)){h=c[Ga>>2]|0;if(c[(c[Ga>>2]|0)+36>>2]&1024){c[D>>2]=e[h+40>>1];iA(c[Ua>>2]|0);c[A>>2]=kA(c[Ua>>2]|0,(c[D>>2]|0)+2|0)|0;c[z>>2]=c[(c[Ta>>2]|0)+12>>2];c[Oa>>2]=0;while(1){if((c[Oa>>2]|0)>=(c[D>>2]|0))break;c[B>>2]=(c[A>>2]|0)+(c[Oa>>2]|0)+2;c[Va>>2]=c[(c[(c[Ga>>2]|0)+48>>2]|0)+(c[Oa>>2]<<2)>>2];do if(c[Va>>2]|0){h=c[Ua>>2]|0;j=c[Va>>2]|0;if(e[(c[Va>>2]|0)+18>>1]&1){oD(h,j,c[Ta>>2]|0,c[Oa>>2]|0,c[Fa>>2]|0,c[B>>2]|0)|0;c[z>>2]=c[(c[Ta>>2]|0)+16>>2];break}else{xA(h,c[(c[j>>2]|0)+16>>2]|0,c[B>>2]|0);break}}while(0);c[Oa>>2]=(c[Oa>>2]|0)+1}Rw(c[Ya>>2]|0,22,c[(c[Ga>>2]|0)+24>>2]|0,c[A>>2]|0)|0;Rw(c[Ya>>2]|0,22,c[D>>2]|0,(c[A>>2]|0)+1|0)|0;Uw(c[Ya>>2]|0,11,c[Na>>2]|0,c[z>>2]|0,c[A>>2]|0,c[(c[Ga>>2]|0)+24+8>>2]|0,(d[(c[Ga>>2]|0)+24+4>>0]|0)!=0?-11:-2)|0;a[(c[Ga>>2]|0)+24+4>>0]=0;c[Oa>>2]=0;while(1){if(!((c[Oa>>2]|0)<(c[D>>2]|0)?(c[Oa>>2]|0)<16:0))break;if(e[(c[Ga>>2]|0)+24+6>>1]>>c[Oa>>2]&1)pD(c[Ta>>2]|0,c[(c[(c[Ga>>2]|0)+48>>2]|0)+(c[Oa>>2]<<2)>>2]|0);c[Oa>>2]=(c[Oa>>2]|0)+1}c[(c[Ta>>2]|0)+48>>2]=c[Na>>2];a[(c[Ta>>2]|0)+45>>0]=(d[(c[Ja>>2]|0)+38>>0]|0)!=0?160:154;Ha=Bz(c[Ya>>2]|0)|0;c[(c[Ta>>2]|0)+52>>2]=Ha;nA(c[Ua>>2]|0,c[A>>2]|0,(c[D>>2]|0)+2|0);gA(c[Ua>>2]|0);break}if((c[h+36>>2]&256|0)!=0?(c[(c[Ga>>2]|0)+36>>2]&5|0)!=0:0){c[Va>>2]=c[c[(c[Ga>>2]|0)+48>>2]>>2];Ga=(c[Ua>>2]|0)+76|0;Ha=(c[Ga>>2]|0)+1|0;c[Ga>>2]=Ha;c[l>>2]=Ha;c[K>>2]=oD(c[Ua>>2]|0,c[Va>>2]|0,c[Ta>>2]|0,0,c[Fa>>2]|0,c[l>>2]|0)|0;if((c[K>>2]|0)!=(c[l>>2]|0))_z(c[Ua>>2]|0,c[l>>2]|0);c[F>>2]=c[(c[Ta>>2]|0)+16>>2];Rw(c[Ya>>2]|0,38,c[K>>2]|0,c[F>>2]|0)|0;Vw(c[Ya>>2]|0,70,c[Na>>2]|0,c[F>>2]|0,c[K>>2]|0)|0;CA(c[Ua>>2]|0,c[K>>2]|0,1);gB(c[Ua>>2]|0,c[Na>>2]|0,-1,c[K>>2]|0);a[(c[Ta>>2]|0)+45>>0]=-96;break}if((c[(c[Ga>>2]|0)+36>>2]&256|0)!=0?(c[(c[Ga>>2]|0)+36>>2]&2|0)!=0:0){c[u>>2]=160;c[m>>2]=0;c[Oa>>2]=0;c[n>>2]=0;c[o>>2]=0;if(c[(c[Ga>>2]|0)+36>>2]&32){Ha=c[Oa>>2]|0;c[Oa>>2]=Ha+1;c[o>>2]=c[(c[(c[Ga>>2]|0)+48>>2]|0)+(Ha<<2)>>2]}if(c[(c[Ga>>2]|0)+36>>2]&16){Ha=c[Oa>>2]|0;c[Oa>>2]=Ha+1;c[n>>2]=c[(c[(c[Ga>>2]|0)+48>>2]|0)+(Ha<<2)>>2]}if(c[Fa>>2]|0){c[Va>>2]=c[o>>2];c[o>>2]=c[n>>2];c[n>>2]=c[Va>>2]}if(c[o>>2]|0){c[p>>2]=c[c[o>>2]>>2];c[r>>2]=DA(c[Ua>>2]|0,c[(c[p>>2]|0)+16>>2]|0,s)|0;Vw(c[Ya>>2]|0,d[35244+((d[c[p>>2]>>0]|0)-80)>>0]|0,c[Na>>2]|0,c[v>>2]|0,c[r>>2]|0)|0;CA(c[Ua>>2]|0,c[r>>2]|0,1);_z(c[Ua>>2]|0,c[s>>2]|0);pD(c[Ta>>2]|0,c[o>>2]|0)}else Rw(c[Ya>>2]|0,(c[Fa>>2]|0)!=0?105:108,c[Na>>2]|0,c[v>>2]|0)|0;if(c[n>>2]|0){c[q>>2]=c[c[n>>2]>>2];Ga=(c[Ua>>2]|0)+76|0;Ha=(c[Ga>>2]|0)+1|0;c[Ga>>2]=Ha;c[m>>2]=Ha;xA(c[Ua>>2]|0,c[(c[q>>2]|0)+16>>2]|0,c[m>>2]|0);if((d[c[q>>2]>>0]|0)!=82?(d[c[q>>2]>>0]|0)!=80:0)c[u>>2]=(c[Fa>>2]|0)!=0?82:80;else c[u>>2]=(c[Fa>>2]|0)!=0?81:83;pD(c[Ta>>2]|0,c[n>>2]|0)}c[t>>2]=Bz(c[Ya>>2]|0)|0;a[(c[Ta>>2]|0)+45>>0]=(c[Fa>>2]|0)!=0?6:7;c[(c[Ta>>2]|0)+48>>2]=c[Na>>2];c[(c[Ta>>2]|0)+52>>2]=c[t>>2];if((c[u>>2]|0)==160)break;Ga=(c[Ua>>2]|0)+76|0;Ha=(c[Ga>>2]|0)+1|0;c[Ga>>2]=Ha;c[K>>2]=Ha;Rw(c[Ya>>2]|0,103,c[Na>>2]|0,c[K>>2]|0)|0;gB(c[Ua>>2]|0,c[Na>>2]|0,-1,c[K>>2]|0);Vw(c[Ya>>2]|0,c[u>>2]|0,c[m>>2]|0,c[v>>2]|0,c[K>>2]|0)|0;Fh(c[Ya>>2]|0,83);break}h=c[Ga>>2]|0;if(c[(c[Ga>>2]|0)+36>>2]&512){b[M>>1]=b[h+24>>1]|0;c[S>>2]=0;c[R>>2]=0;c[w>>2]=0;a[I>>0]=0;a[G>>0]=0;a[H>>0]=0;c[P>>2]=c[(c[Ga>>2]|0)+24+4>>2];c[ba>>2]=c[(c[Ta>>2]|0)+8>>2];if(((e[(c[Ja>>2]|0)+34>>1]&1|0)!=0?(a[(c[Ja>>2]|0)+36>>0]|0)>0:0)?(e[(c[P>>2]|0)+50>>1]|0)>(e[M>>1]|0):0){a[G>>0]=1;c[w>>2]=1}c[Oa>>2]=e[M>>1];if(c[(c[Ga>>2]|0)+36>>2]&32){Ea=c[Oa>>2]|0;c[Oa>>2]=Ea+1;c[S>>2]=c[(c[(c[Ga>>2]|0)+48>>2]|0)+(Ea<<2)>>2];c[w>>2]=1}if(c[(c[Ga>>2]|0)+36>>2]&16){Ea=c[Oa>>2]|0;c[Oa>>2]=Ea+1;c[R>>2]=c[(c[(c[Ga>>2]|0)+48>>2]|0)+(Ea<<2)>>2];c[w>>2]=1;if(e[(c[R>>2]|0)+20>>1]&256){Da=(c[Ua>>2]|0)+76|0;Ea=(c[Da>>2]|0)+1|0;c[Da>>2]=Ea;c[(c[Ta>>2]|0)+36>>2]=Ea;Rw(c[Ya>>2]|0,22,c[Fa>>2]^(d[(c[(c[P>>2]|0)+28>>2]|0)+(e[M>>1]|0)>>0]|0)==1,c[(c[Ta>>2]|0)+36>>2]|0)|0;Ea=Bz(c[Ya>>2]|0)|0;c[(c[Ta>>2]|0)+40>>2]=Ea}if(((c[S>>2]|0)==0?(Ea=b[(c[(c[P>>2]|0)+4>>2]|0)+(e[M>>1]<<1)>>1]|0,c[Oa>>2]=Ea,(Ea|0)>=0):0)?(d[(c[(c[(c[P>>2]|0)+12>>2]|0)+4>>2]|0)+((c[Oa>>2]|0)*24|0)+20>>0]|0)==0:0)a[G>>0]=1}if((e[M>>1]|0)<(e[(c[P>>2]|0)+50>>1]|0)?(c[Fa>>2]|0)==((d[(c[(c[P>>2]|0)+28>>2]|0)+(e[M>>1]|0)>>0]|0)==0|0):0)Ea=64;else Ea=62;if(((Ea|0)==62?(c[Fa>>2]|0)!=0:0)?(e[(c[P>>2]|0)+50>>1]|0)==(e[M>>1]|0):0)Ea=64;if((Ea|0)==64){c[x>>2]=c[R>>2];c[R>>2]=c[S>>2];c[S>>2]=c[x>>2];a[y>>0]=a[G>>0]|0;a[G>>0]=a[H>>0]|0;a[H>>0]=a[y>>0]|0}c[V>>2]=qD(c[Ua>>2]|0,c[Ta>>2]|0,c[Fa>>2]|0,c[w>>2]|0,Y)|0;if(c[Y>>2]|0)a[I>>0]=a[(c[Y>>2]|0)+(e[M>>1]|0)>>0]|0;c[F>>2]=c[(c[Ta>>2]|0)+16>>2];if(c[S>>2]|0)h=(e[(c[S>>2]|0)+18>>1]&40|0)!=0;else h=1;c[W>>2]=h&1;if(c[R>>2]|0)h=(e[(c[R>>2]|0)+18>>1]&40|0)!=0;else h=1;c[J>>2]=h&1;if(c[S>>2]|0)h=1;else h=(e[M>>1]|0)>0;c[X>>2]=h&1;c[L>>2]=e[M>>1];if(!(c[S>>2]|0)){if(a[G>>0]|0){Rw(c[Ya>>2]|0,25,0,(c[V>>2]|0)+(e[M>>1]|0)|0)|0;c[L>>2]=(c[L>>2]|0)+1;c[W>>2]=0;c[X>>2]=1}}else{c[T>>2]=c[(c[c[S>>2]>>2]|0)+16>>2];xA(c[Ua>>2]|0,c[T>>2]|0,(c[V>>2]|0)+(e[M>>1]|0)|0);rD(c[Ya>>2]|0,c[Ta>>2]|0,c[S>>2]|0);do if(!(e[(c[S>>2]|0)+20>>1]&0)){if(!(RA(c[T>>2]|0)|0))break;Rw(c[Ya>>2]|0,76,(c[V>>2]|0)+(e[M>>1]|0)|0,c[F>>2]|0)|0}while(0);do if(c[Y>>2]|0){if(((SA(c[T>>2]|0,a[(c[Y>>2]|0)+(e[M>>1]|0)>>0]|0)|0)<<24>>24|0)==65)a[(c[Y>>2]|0)+(e[M>>1]|0)>>0]=65;if(!(sD(c[T>>2]|0,a[(c[Y>>2]|0)+(e[M>>1]|0)>>0]|0)|0))break;a[(c[Y>>2]|0)+(e[M>>1]|0)>>0]=65}while(0);c[L>>2]=(c[L>>2]|0)+1}tD(c[Ua>>2]|0,c[V>>2]|0,(c[L>>2]|0)-(d[G>>0]|0)|0,c[Y>>2]|0);c[O>>2]=d[35248+((c[X>>2]<<2)+(c[W>>2]<<1)+(c[Fa>>2]|0))>>0];Eh(c[Ya>>2]|0,c[O>>2]|0,c[ba>>2]|0,c[F>>2]|0,c[V>>2]|0,c[L>>2]|0)|0;c[L>>2]=e[M>>1];do if(c[R>>2]|0){c[U>>2]=c[(c[c[R>>2]>>2]|0)+16>>2];oA(c[Ua>>2]|0,(c[V>>2]|0)+(e[M>>1]|0)|0,1);xA(c[Ua>>2]|0,c[U>>2]|0,(c[V>>2]|0)+(e[M>>1]|0)|0);rD(c[Ya>>2]|0,c[Ta>>2]|0,c[R>>2]|0);do if(!(e[(c[R>>2]|0)+20>>1]&0)){if(!(RA(c[U>>2]|0)|0))break;Rw(c[Ya>>2]|0,76,(c[V>>2]|0)+(e[M>>1]|0)|0,c[F>>2]|0)|0}while(0);do if(((SA(c[U>>2]|0,a[I>>0]|0)|0)<<24>>24|0)!=65){if(sD(c[U>>2]|0,a[I>>0]|0)|0)break;tD(c[Ua>>2]|0,(c[V>>2]|0)+(e[M>>1]|0)|0,1,I)}while(0);c[L>>2]=(c[L>>2]|0)+1}else{if(!(a[H>>0]|0))break;Rw(c[Ya>>2]|0,25,0,(c[V>>2]|0)+(e[M>>1]|0)|0)|0;c[J>>2]=0;c[L>>2]=(c[L>>2]|0)+1}while(0);Sf(c[Ma>>2]|0,c[Y>>2]|0);Ea=Bz(c[Ya>>2]|0)|0;c[(c[Ta>>2]|0)+52>>2]=Ea;if(c[L>>2]|0){c[O>>2]=d[35256+((c[Fa>>2]<<1)+(c[J>>2]|0))>>0];Eh(c[Ya>>2]|0,c[O>>2]|0,c[ba>>2]|0,c[F>>2]|0,c[V>>2]|0,c[L>>2]|0)|0}pD(c[Ta>>2]|0,c[S>>2]|0);pD(c[Ta>>2]|0,c[R>>2]|0);do if(!(c[N>>2]|0)){if(!(d[(c[(c[P>>2]|0)+12>>2]|0)+42>>0]&32))if(d[(c[Ja>>2]|0)+38>>0]|0){Ea=(c[Ua>>2]|0)+76|0;Ha=(c[Ea>>2]|0)+1|0;c[Ea>>2]=Ha;c[K>>2]=Ha;Rw(c[Ya>>2]|0,113,c[ba>>2]|0,c[K>>2]|0)|0;gB(c[Ua>>2]|0,c[Na>>2]|0,-1,c[K>>2]|0);Vw(c[Ya>>2]|0,70,c[Na>>2]|0,0,c[K>>2]|0)|0;break}else{uD(c[Ja>>2]|0,c[P>>2]|0,c[Na>>2]|0,c[ba>>2]|0);break}if((c[Na>>2]|0)==(c[ba>>2]|0))break;c[Q>>2]=Ej(c[(c[P>>2]|0)+12>>2]|0)|0;c[K>>2]=kA(c[Ua>>2]|0,e[(c[Q>>2]|0)+50>>1]|0)|0;c[Oa>>2]=0;while(1){if((c[Oa>>2]|0)>=(e[(c[Q>>2]|0)+50>>1]|0))break;c[Ha>>2]=(uA(c[P>>2]|0,b[(c[(c[Q>>2]|0)+4>>2]|0)+(c[Oa>>2]<<1)>>1]|0)|0)<<16>>16;Vw(c[Ya>>2]|0,47,c[ba>>2]|0,c[Ha>>2]|0,(c[K>>2]|0)+(c[Oa>>2]|0)|0)|0;c[Oa>>2]=(c[Oa>>2]|0)+1}Eh(c[Ya>>2]|0,68,c[Na>>2]|0,c[La>>2]|0,c[K>>2]|0,e[(c[Q>>2]|0)+50>>1]|0)|0}while(0);do if(!(c[(c[Ga>>2]|0)+36>>2]&4096)){h=(c[Ta>>2]|0)+45|0;if(c[Fa>>2]|0){a[h>>0]=6;break}else{a[h>>0]=7;break}}else a[(c[Ta>>2]|0)+45>>0]=-96;while(0);c[(c[Ta>>2]|0)+48>>2]=c[ba>>2];a[(c[Ta>>2]|0)+46>>0]=(c[(c[Ga>>2]|0)+36>>2]&65536|0)!=0?1:0;if(c[(c[Ga>>2]|0)+36>>2]&15)break;a[(c[Ta>>2]|0)+47>>0]=1;break}if(!(c[h+36>>2]&8192))if((d[(c[E>>2]|0)+36+1>>0]|0)>>>5&1){a[(c[Ta>>2]|0)+45>>0]=-96;break}else{a[(c[Ta>>2]|0)+45>>0]=a[35260+(c[Fa>>2]|0)>>0]|0;c[(c[Ta>>2]|0)+48>>2]=c[Na>>2];Ha=1+(Rw(c[Ya>>2]|0,d[35262+(c[Fa>>2]|0)>>0]|0,c[Na>>2]|0,c[v>>2]|0)|0)|0;c[(c[Ta>>2]|0)+52>>2]=Ha;a[(c[Ta>>2]|0)+47>>0]=1;break}c[na>>2]=0;h=(c[Ua>>2]|0)+72|0;Fa=c[h>>2]|0;c[h>>2]=Fa+1;c[aa>>2]=Fa;Fa=(c[Ua>>2]|0)+76|0;h=(c[Fa>>2]|0)+1|0;c[Fa>>2]=h;c[za>>2]=h;c[Ba>>2]=0;c[Aa>>2]=0;c[ca>>2]=Cz(c[Ya>>2]|0)|0;c[Ca>>2]=0;c[ma>>2]=0;c[xa>>2]=c[(c[E>>2]|0)+16>>2];c[Va>>2]=c[c[(c[Ga>>2]|0)+48>>2]>>2];c[sa>>2]=c[(c[Va>>2]|0)+12>>2];a[(c[Ta>>2]|0)+45>>0]=15;c[(c[Ta>>2]|0)+48>>2]=c[za>>2];h=c[Ja>>2]|0;a:do if((d[(c[Ja>>2]|0)+41>>0]|0)>1){c[ja>>2]=(d[h+41>>0]|0)-(c[Z>>2]|0)-1;c[qa>>2]=yh(c[Ma>>2]|0,80+((c[ja>>2]|0)*72|0)|0,0)|0;if(!(c[qa>>2]|0)){Wa=Ka;Ya=c[Wa+4>>2]|0;Xa=Ia;c[Xa>>2]=c[Wa>>2];c[Xa+4>>2]=Ya;Xa=Ia;Ya=Xa;Ya=c[Ya>>2]|0;Xa=Xa+4|0;Xa=c[Xa>>2]|0;C=Xa;i=Za;return Ya|0}c[(c[qa>>2]|0)+4>>2]=(c[ja>>2]|0)+1&255;c[c[qa>>2]>>2]=c[(c[qa>>2]|0)+4>>2];g=(c[qa>>2]|0)+8|0;h=c[E>>2]|0;j=g+72|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(j|0));c[la>>2]=(c[(c[Ja>>2]|0)+4>>2]|0)+8;c[Ha>>2]=1;while(1){if((c[Ha>>2]|0)>(c[ja>>2]|0))break a;g=(c[qa>>2]|0)+8+((c[Ha>>2]|0)*72|0)|0;h=(c[la>>2]|0)+((d[(c[Ta>>2]|0)+((c[Ha>>2]|0)*80|0)+44>>0]|0)*72|0)|0;j=g+72|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(j|0));c[Ha>>2]=(c[Ha>>2]|0)+1}}else c[qa>>2]=c[h+4>>2];while(0);if(!(e[(c[Ja>>2]|0)+34>>1]&8)){if(!(d[(c[xa>>2]|0)+42>>0]&32)){Ga=(c[Ua>>2]|0)+76|0;Ha=(c[Ga>>2]|0)+1|0;c[Ga>>2]=Ha;c[Ba>>2]=Ha;Rw(c[Ya>>2]|0,25,0,c[Ba>>2]|0)|0}else{c[ta>>2]=Ej(c[xa>>2]|0)|0;Ga=(c[Ua>>2]|0)+72|0;Ha=c[Ga>>2]|0;c[Ga>>2]=Ha+1;c[Ba>>2]=Ha;Rw(c[Ya>>2]|0,57,c[Ba>>2]|0,e[(c[ta>>2]|0)+50>>1]|0)|0;Az(c[Ua>>2]|0,c[ta>>2]|0)}Ga=(c[Ua>>2]|0)+76|0;Ha=(c[Ga>>2]|0)+1|0;c[Ga>>2]=Ha;c[Aa>>2]=Ha}c[ea>>2]=Rw(c[Ya>>2]|0,22,0,c[za>>2]|0)|0;if((c[(c[Wa>>2]|0)+12>>2]|0)>1){c[ga>>2]=0;while(1){if((c[ga>>2]|0)>=(c[(c[Wa>>2]|0)+12>>2]|0))break;c[oa>>2]=c[(c[(c[Wa>>2]|0)+20>>2]|0)+((c[ga>>2]|0)*48|0)>>2];if(((((c[(c[Wa>>2]|0)+20>>2]|0)+((c[ga>>2]|0)*48|0)|0)!=(c[Va>>2]|0)?(c[(c[oa>>2]|0)+4>>2]&1|0)==0:0)?(e[(c[(c[Wa>>2]|0)+20>>2]|0)+((c[ga>>2]|0)*48|0)+20>>1]&6|0)==0:0)?(e[(c[(c[Wa>>2]|0)+20>>2]|0)+((c[ga>>2]|0)*48|0)+18>>1]&8191|0)!=0:0){c[oa>>2]=ny(c[Ma>>2]|0,c[oa>>2]|0,0)|0;c[ma>>2]=az(c[Ma>>2]|0,c[ma>>2]|0,c[oa>>2]|0)|0}c[ga>>2]=(c[ga>>2]|0)+1}if(c[ma>>2]|0)c[ma>>2]=rv(c[Ua>>2]|0,328,0,c[ma>>2]|0,0)|0}b[Da>>1]=240;c[ha>>2]=0;while(1){if((c[ha>>2]|0)>=(c[(c[sa>>2]|0)+12>>2]|0))break;c[ra>>2]=(c[(c[sa>>2]|0)+20>>2]|0)+((c[ha>>2]|0)*48|0);if(!((c[(c[ra>>2]|0)+8>>2]|0)!=(c[Na>>2]|0)?(e[(c[ra>>2]|0)+18>>1]&1024|0)==0:0)){c[pa>>2]=c[c[ra>>2]>>2];c[ia>>2]=0;if((c[ma>>2]|0)!=0?(c[(c[pa>>2]|0)+4>>2]&1|0)==0:0){c[(c[ma>>2]|0)+12>>2]=c[pa>>2];c[pa>>2]=c[ma>>2]}c[wa>>2]=RC(c[Ua>>2]|0,c[qa>>2]|0,c[pa>>2]|0,0,0,b[Da>>1]|0,c[aa>>2]|0)|0;if(c[wa>>2]|0){c[_>>2]=lD(c[Ua>>2]|0,c[qa>>2]|0,(c[wa>>2]|0)+736|0,c[Z>>2]|0,d[(c[Ta>>2]|0)+44>>0]|0,0)|0;do if(!(e[(c[Ja>>2]|0)+34>>1]&8)){c[fa>>2]=(c[ha>>2]|0)==((c[(c[sa>>2]|0)+12>>2]|0)-1|0)?-1:c[ha>>2]|0;if(!(d[(c[xa>>2]|0)+42>>0]&32)){c[ya>>2]=zA(c[Ua>>2]|0,c[xa>>2]|0,-1,c[Na>>2]|0,c[Aa>>2]|0,0)|0;c[ia>>2]=Eh(c[Ya>>2]|0,131,c[Ba>>2]|0,0,c[ya>>2]|0,c[fa>>2]|0)|0;break}c[ua>>2]=Ej(c[xa>>2]|0)|0;c[ka>>2]=e[(c[ua>>2]|0)+50>>1];c[ya>>2]=kA(c[Ua>>2]|0,c[ka>>2]|0)|0;c[da>>2]=0;while(1){if((c[da>>2]|0)>=(c[ka>>2]|0))break;c[$>>2]=b[(c[(c[ua>>2]|0)+4>>2]|0)+(c[da>>2]<<1)>>1];vD(c[Ua>>2]|0,c[xa>>2]|0,c[$>>2]|0,c[Na>>2]|0,(c[ya>>2]|0)+(c[da>>2]|0)|0);c[da>>2]=(c[da>>2]|0)+1}if(c[fa>>2]|0)c[ia>>2]=Eh(c[Ya>>2]|0,69,c[Ba>>2]|0,0,c[ya>>2]|0,c[ka>>2]|0)|0;do if((c[fa>>2]|0)>=0){Vw(c[Ya>>2]|0,49,c[ya>>2]|0,c[ka>>2]|0,c[Aa>>2]|0)|0;Vw(c[Ya>>2]|0,110,c[Ba>>2]|0,c[Aa>>2]|0,0)|0;if(!(c[fa>>2]|0))break;Fh(c[Ya>>2]|0,16)}while(0);nA(c[Ua>>2]|0,c[ya>>2]|0,c[ka>>2]|0)}while(0);Rw(c[Ya>>2]|0,14,c[za>>2]|0,c[ca>>2]|0)|0;if(c[ia>>2]|0)Fz(c[Ya>>2]|0,c[ia>>2]|0);if(a[(c[wa>>2]|0)+39>>0]|0)c[Ca>>2]=1;c[va>>2]=c[(c[wa>>2]|0)+736+64>>2];do if(c[(c[va>>2]|0)+36>>2]&512){if((c[ha>>2]|0)!=0?(c[(c[va>>2]|0)+24+4>>2]|0)!=(c[na>>2]|0):0){Ea=168;break}if((d[(c[xa>>2]|0)+42>>0]&32|0)!=0?(a[(c[(c[va>>2]|0)+24+4>>2]|0)+55>>0]&3|0)==2:0){Ea=168;break}c[na>>2]=c[(c[va>>2]|0)+24+4>>2];b[Da>>1]=e[Da>>1]|4096}else Ea=168;while(0);if((Ea|0)==168){Ea=0;c[na>>2]=0}SC(c[wa>>2]|0)}}c[ha>>2]=(c[ha>>2]|0)+1}c[(c[Ta>>2]|0)+56>>2]=c[na>>2];if(c[na>>2]|0)c[(c[Ta>>2]|0)+8>>2]=c[aa>>2];if(c[ma>>2]|0){c[(c[ma>>2]|0)+12>>2]=0;Zu(c[Ma>>2]|0,c[ma>>2]|0)}Ga=c[Ya>>2]|0;Ha=c[ea>>2]|0;wD(Ga,Ha,Bz(c[Ya>>2]|0)|0);Ez(c[Ya>>2]|0,c[(c[Ta>>2]|0)+12>>2]|0)|0;Gz(c[Ya>>2]|0,c[ca>>2]|0);if((d[(c[Ja>>2]|0)+41>>0]|0)>1)Sf(c[Ma>>2]|0,c[qa>>2]|0);if(!(c[Ca>>2]|0))pD(c[Ta>>2]|0,c[Va>>2]|0)}else{c[k>>2]=c[(c[E>>2]|0)+28>>2];Vw(c[Ya>>2]|0,16,c[k>>2]|0,0,c[(c[E>>2]|0)+24>>2]|0)|0;Ha=Rw(c[Ya>>2]|0,18,c[k>>2]|0,c[v>>2]|0)|0;c[(c[Ta>>2]|0)+52>>2]=Ha;a[(c[Ta>>2]|0)+45>>0]=13}while(0);c[Va>>2]=c[(c[Wa>>2]|0)+20>>2];c[Oa>>2]=c[(c[Wa>>2]|0)+12>>2];while(1){if((c[Oa>>2]|0)<=0)break;c[Xa>>2]=0;do if(!(e[(c[Va>>2]|0)+20>>1]&6)){Ga=(c[Va>>2]|0)+40|0;Ha=(c[Ta>>2]|0)+72|0;if((c[Ga>>2]&c[Ha>>2]|0)!=0?1:(c[Ga+4>>2]&c[Ha+4>>2]|0)!=0){a[(c[Ja>>2]|0)+39>>0]=1;break}c[Qa>>2]=c[c[Va>>2]>>2];if((c[c[Ta>>2]>>2]|0)!=0?(c[(c[Qa>>2]|0)+4>>2]&1|0)==0:0)break;if(e[(c[Va>>2]|0)+20>>1]&512)c[Xa>>2]=xz(c[Ya>>2]|0,46,c[(c[Ta>>2]|0)+36>>2]|0)|0;LA(c[Ua>>2]|0,c[Qa>>2]|0,c[La>>2]|0,16);if(c[Xa>>2]|0)Fz(c[Ya>>2]|0,c[Xa>>2]|0);Ha=(c[Va>>2]|0)+20|0;b[Ha>>1]=e[Ha>>1]|4}while(0);c[Oa>>2]=(c[Oa>>2]|0)+-1;c[Va>>2]=(c[Va>>2]|0)+48}c[Va>>2]=c[(c[Wa>>2]|0)+20>>2];c[Oa>>2]=c[(c[Wa>>2]|0)+12>>2];while(1){if((c[Oa>>2]|0)<=0)break;if((((((((e[(c[Va>>2]|0)+20>>1]&6|0)==0?(e[(c[Va>>2]|0)+18>>1]&130|0)!=0:0)?(e[(c[Va>>2]|0)+18>>1]&2048|0)!=0:0)?(c[(c[Va>>2]|0)+8>>2]|0)==(c[Na>>2]|0):0)?(c[c[Ta>>2]>>2]|0)==0:0)?(c[Ra>>2]=c[c[Va>>2]>>2],Xa=Ka,c[Pa>>2]=xD(c[Wa>>2]|0,c[Na>>2]|0,c[(c[Va>>2]|0)+12>>2]|0,c[Xa>>2]|0,c[Xa+4>>2]|0,131,0)|0,(c[Pa>>2]|0)!=0):0)?(e[(c[Pa>>2]|0)+20>>1]&4|0)==0:0)?(c[Sa>>2]=yh(c[Ma>>2]|0,48,0)|0,(c[Sa>>2]|0)!=0):0){g=c[Sa>>2]|0;h=c[c[Pa>>2]>>2]|0;j=g+48|0;do{c[g>>2]=c[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(j|0));c[(c[Sa>>2]|0)+12>>2]=c[(c[Ra>>2]|0)+12>>2];LA(c[Ua>>2]|0,c[Sa>>2]|0,c[La>>2]|0,16);Sf(c[Ma>>2]|0,c[Sa>>2]|0)}c[Oa>>2]=(c[Oa>>2]|0)+-1;c[Va>>2]=(c[Va>>2]|0)+48}b:do if(c[c[Ta>>2]>>2]|0){Xa=Bz(c[Ya>>2]|0)|0;c[(c[Ta>>2]|0)+28>>2]=Xa;Rw(c[Ya>>2]|0,22,1,c[c[Ta>>2]>>2]|0)|0;fC(c[Ua>>2]|0);c[Va>>2]=c[(c[Wa>>2]|0)+20>>2];c[Oa>>2]=0;while(1){if((c[Oa>>2]|0)>=(c[(c[Wa>>2]|0)+12>>2]|0))break b;if((e[(c[Va>>2]|0)+20>>1]&6|0)==0?(Xa=(c[Va>>2]|0)+40|0,Ya=(c[Ta>>2]|0)+72|0,!((c[Xa>>2]&c[Ya>>2]|0)!=0?1:(c[Xa+4>>2]&c[Ya+4>>2]|0)!=0)):0){LA(c[Ua>>2]|0,c[c[Va>>2]>>2]|0,c[La>>2]|0,16);Ya=(c[Va>>2]|0)+20|0;b[Ya>>1]=e[Ya>>1]|4}c[Oa>>2]=(c[Oa>>2]|0)+1;c[Va>>2]=(c[Va>>2]|0)+48}}while(0);Wa=(c[Ta>>2]|0)+72|0;Ya=c[Wa+4>>2]|0;Xa=Ia;c[Xa>>2]=c[Wa>>2];c[Xa+4>>2]=Ya;Xa=Ia;Ya=Xa;Ya=c[Ya>>2]|0;Xa=Xa+4|0;Xa=c[Xa>>2]|0;C=Xa;i=Za;return Ya|0}function nD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=i;i=i+32|0;g=h;d=h+16|0;e=h+12|0;f=h+8|0;c[d>>2]=a;c[e>>2]=b;c[f>>2]=0;while(1){if((c[f>>2]|0)>=(c[c[d>>2]>>2]|0)){b=6;break}a=c[f>>2]|0;if((c[(c[d>>2]|0)+4+(c[f>>2]<<2)>>2]|0)==(c[e>>2]|0)){b=4;break}c[f>>2]=a+1}if((b|0)==4){e=lR(1,0,a|0)|0;f=g;c[f>>2]=e;c[f+4>>2]=C;f=g;g=f;g=c[g>>2]|0;f=f+4|0;f=c[f>>2]|0;C=f;i=h;return g|0}else if((b|0)==6){f=g;c[f>>2]=0;c[f+4>>2]=0;f=g;g=f;g=c[g>>2]|0;f=f+4|0;f=c[f>>2]|0;C=f;i=h;return g|0}return 0}function oD(b,e,f,g,h,j){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=i;i=i+64|0;k=x+48|0;q=x+44|0;r=x+40|0;l=x+36|0;s=x+32|0;m=x+28|0;o=x+24|0;w=x+20|0;u=x+16|0;t=x+12|0;p=x+8|0;v=x+4|0;n=x;c[k>>2]=b;c[q>>2]=e;c[r>>2]=f;c[l>>2]=g;c[s>>2]=h;c[m>>2]=j;c[o>>2]=c[c[q>>2]>>2];c[w>>2]=c[(c[k>>2]|0)+8>>2];if((d[c[o>>2]>>0]|0|0)!=79?(d[c[o>>2]>>0]|0|0)!=73:0){if((d[c[o>>2]>>0]|0|0)==76){c[u>>2]=c[m>>2];Rw(c[w>>2]|0,25,0,c[u>>2]|0)|0;v=c[r>>2]|0;w=c[q>>2]|0;pD(v,w);w=c[u>>2]|0;i=x;return w|0}c[n>>2]=c[(c[r>>2]|0)+64>>2];if(((c[(c[n>>2]|0)+36>>2]&1024|0)==0?(c[(c[n>>2]|0)+24+4>>2]|0)!=0:0)?(d[(c[(c[(c[n>>2]|0)+24+4>>2]|0)+28>>2]|0)+(c[l>>2]|0)>>0]|0|0)!=0:0)c[s>>2]=((c[s>>2]|0)!=0^1)&1;c[u>>2]=c[m>>2];c[t>>2]=PA(c[k>>2]|0,c[o>>2]|0,4,0)|0;if((c[t>>2]|0)==4)c[s>>2]=((c[s>>2]|0)!=0^1)&1;c[p>>2]=c[(c[o>>2]|0)+28>>2];Rw(c[w>>2]|0,(c[s>>2]|0)!=0?105:108,c[p>>2]|0,0)|0;o=(c[n>>2]|0)+36|0;c[o>>2]=c[o>>2]|2048;if(!(c[(c[r>>2]|0)+56>>2]|0)){o=Cz(c[w>>2]|0)|0;c[(c[r>>2]|0)+16>>2]=o}o=(c[r>>2]|0)+56|0;c[o>>2]=(c[o>>2]|0)+1;k=vx(c[c[k>>2]>>2]|0,c[(c[r>>2]|0)+56+4>>2]|0,(c[(c[r>>2]|0)+56>>2]|0)*12|0,0)|0;c[(c[r>>2]|0)+56+4>>2]=k;c[v>>2]=c[(c[r>>2]|0)+56+4>>2];k=(c[r>>2]|0)+56|0;if(!(c[v>>2]|0)){c[k>>2]=0;v=c[r>>2]|0;w=c[q>>2]|0;pD(v,w);w=c[u>>2]|0;i=x;return w|0}c[v>>2]=(c[v>>2]|0)+(((c[k>>2]|0)-1|0)*12|0);c[c[v>>2]>>2]=c[p>>2];m=c[w>>2]|0;k=c[p>>2]|0;l=c[u>>2]|0;if((c[t>>2]|0)==1){t=Rw(m,103,k,l)|0;c[(c[v>>2]|0)+4>>2]=t}else{t=Vw(m,47,k,0,l)|0;c[(c[v>>2]|0)+4>>2]=t}a[(c[v>>2]|0)+8>>0]=(c[s>>2]|0)!=0?4:5;xz(c[w>>2]|0,76,c[u>>2]|0)|0;v=c[r>>2]|0;w=c[q>>2]|0;pD(v,w);w=c[u>>2]|0;i=x;return w|0}c[u>>2]=yA(c[k>>2]|0,c[(c[o>>2]|0)+16>>2]|0,c[m>>2]|0)|0;v=c[r>>2]|0;w=c[q>>2]|0;pD(v,w);w=c[u>>2]|0;i=x;return w|0}function pD(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0;l=i;i=i+16|0;h=l+8|0;j=l+4|0;k=l;c[h>>2]=f;c[j>>2]=g;c[k>>2]=0;while(1){if(!(c[j>>2]|0)){h=14;break}if((e[(c[j>>2]|0)+20>>1]|0)&4){h=14;break}if((c[c[h>>2]>>2]|0)!=0?(c[(c[c[j>>2]>>2]|0)+4>>2]&1|0)==0:0){h=14;break}f=(c[h>>2]|0)+72|0;g=(c[j>>2]|0)+40|0;if(!((c[f>>2]&c[g>>2]|0)==0?(c[f+4>>2]&c[g+4>>2]|0)==0:0)){h=14;break}if((c[k>>2]|0)!=0?((e[(c[j>>2]|0)+20>>1]|0)&1024|0)!=0:0){g=(c[j>>2]|0)+20|0;b[g>>1]=e[g>>1]|0|512}else{g=(c[j>>2]|0)+20|0;b[g>>1]=e[g>>1]|0|4}if((c[(c[j>>2]|0)+4>>2]|0)<0){h=14;break}c[j>>2]=(c[(c[(c[j>>2]|0)+24>>2]|0)+20>>2]|0)+((c[(c[j>>2]|0)+4>>2]|0)*48|0);g=(c[j>>2]|0)+22|0;a[g>>0]=(a[g>>0]|0)+-1<<24>>24;if(d[(c[j>>2]|0)+22>>0]|0){h=14;break}c[k>>2]=(c[k>>2]|0)+1}if((h|0)==14){i=l;return}}function qD(d,f,g,h,j){d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;A=i;i=i+80|0;k=A+60|0;l=A+56|0;m=A+52|0;C=A+48|0;n=A+44|0;q=A+66|0;s=A+64|0;y=A+40|0;B=A+36|0;v=A+32|0;t=A+28|0;p=A+24|0;x=A+20|0;r=A+16|0;z=A+12|0;o=A+8|0;w=A+4|0;u=A;c[k>>2]=d;c[l>>2]=f;c[m>>2]=g;c[C>>2]=h;c[n>>2]=j;c[y>>2]=c[(c[k>>2]|0)+8>>2];c[t>>2]=c[(c[l>>2]|0)+64>>2];b[q>>1]=b[(c[t>>2]|0)+24>>1]|0;b[s>>1]=b[(c[t>>2]|0)+42>>1]|0;c[B>>2]=c[(c[t>>2]|0)+24+4>>2];c[x>>2]=(c[(c[k>>2]|0)+76>>2]|0)+1;c[r>>2]=(e[(c[t>>2]|0)+24>>1]|0)+(c[C>>2]|0);j=(c[k>>2]|0)+76|0;c[j>>2]=(c[j>>2]|0)+(c[r>>2]|0);j=c[c[k>>2]>>2]|0;c[z>>2]=nh(j,dC(c[c[k>>2]>>2]|0,c[B>>2]|0)|0)|0;a:do if(b[s>>1]|0){c[o>>2]=c[(c[l>>2]|0)+8>>2];xz(c[y>>2]|0,(c[m>>2]|0)!=0?105:108,c[o>>2]|0)|0;c[p>>2]=Yw(c[y>>2]|0,13)|0;C=Eh(c[y>>2]|0,(c[m>>2]|0)!=0?63:66,c[o>>2]|0,0,c[x>>2]|0,e[s>>1]|0)|0;c[(c[l>>2]|0)+20>>2]=C;Fz(c[y>>2]|0,c[p>>2]|0);c[p>>2]=0;while(1){if((c[p>>2]|0)>=(e[s>>1]|0))break a;Vw(c[y>>2]|0,47,c[o>>2]|0,c[p>>2]|0,(c[x>>2]|0)+(c[p>>2]|0)|0)|0;c[p>>2]=(c[p>>2]|0)+1}}while(0);c[p>>2]=e[s>>1];while(1){if((c[p>>2]|0)>=(e[q>>1]|0))break;c[v>>2]=c[(c[(c[t>>2]|0)+48>>2]|0)+(c[p>>2]<<2)>>2];c[w>>2]=oD(c[k>>2]|0,c[v>>2]|0,c[l>>2]|0,c[p>>2]|0,c[m>>2]|0,(c[x>>2]|0)+(c[p>>2]|0)|0)|0;do if((c[w>>2]|0)!=((c[x>>2]|0)+(c[p>>2]|0)|0))if((c[r>>2]|0)==1){_z(c[k>>2]|0,c[x>>2]|0);c[x>>2]=c[w>>2];break}else{Rw(c[y>>2]|0,31,c[w>>2]|0,(c[x>>2]|0)+(c[p>>2]|0)|0)|0;break}while(0);if(!(e[(c[v>>2]|0)+18>>1]&257)){
  87. c[u>>2]=c[(c[c[v>>2]>>2]|0)+16>>2];if((e[(c[v>>2]|0)+20>>1]&2048|0)==0?(RA(c[u>>2]|0)|0)!=0:0)Rw(c[y>>2]|0,76,(c[x>>2]|0)+(c[p>>2]|0)|0,c[(c[l>>2]|0)+12>>2]|0)|0;if(c[z>>2]|0){if(((SA(c[u>>2]|0,a[(c[z>>2]|0)+(c[p>>2]|0)>>0]|0)|0)<<24>>24|0)==65)a[(c[z>>2]|0)+(c[p>>2]|0)>>0]=65;if(sD(c[u>>2]|0,a[(c[z>>2]|0)+(c[p>>2]|0)>>0]|0)|0)a[(c[z>>2]|0)+(c[p>>2]|0)>>0]=65}}c[p>>2]=(c[p>>2]|0)+1}c[c[n>>2]>>2]=c[z>>2];i=A;return c[x>>2]|0}function rD(b,d,f){b=b|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;k=i;i=i+16|0;g=k+12|0;h=k+8|0;l=k+4|0;j=k;c[g>>2]=b;c[h>>2]=d;c[l>>2]=f;if(!((e[(c[l>>2]|0)+20>>1]|0)&256)){i=k;return}c[j>>2]=Mz(c[g>>2]|0,-1)|0;c[(c[j>>2]|0)+12>>2]=c[(c[h>>2]|0)+36>>2];a[(c[j>>2]|0)+3>>0]=1;i=k;return}function sD(e,f){e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;l=i;i=i+16|0;k=l+4|0;g=l;h=l+9|0;j=l+8|0;c[g>>2]=e;a[h>>0]=f;a:do if((a[h>>0]|0)==65)c[k>>2]=1;else{while(1){if((d[c[g>>2]>>0]|0)==156)e=1;else e=(d[c[g>>2]>>0]|0)==155;f=c[g>>2]|0;if(!e)break;c[g>>2]=c[f+12>>2]}a[j>>0]=a[f>>0]|0;if((d[j>>0]|0)==157)a[j>>0]=a[(c[g>>2]|0)+38>>0]|0;switch(d[j>>0]|0){case 132:{if((a[h>>0]|0)==68)f=1;else f=(a[h>>0]|0)==67;c[k>>2]=f&1;break a}case 133:{if((a[h>>0]|0)==69)f=1;else f=(a[h>>0]|0)==67;c[k>>2]=f&1;break a}case 97:{c[k>>2]=(a[h>>0]|0)==66&1;break a}case 134:{c[k>>2]=1;break a}case 152:{if((b[(c[g>>2]|0)+32>>1]|0)<0)if((a[h>>0]|0)==68)f=1;else f=(a[h>>0]|0)==67;else f=0;c[k>>2]=f&1;break a}default:{c[k>>2]=0;break a}}}while(0);i=l;return c[k>>2]|0}function tD(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;g=m+16|0;h=m+12|0;j=m+8|0;k=m+4|0;l=m;c[g>>2]=b;c[h>>2]=d;c[j>>2]=e;c[k>>2]=f;c[l>>2]=c[(c[g>>2]|0)+8>>2];if(!(c[k>>2]|0)){i=m;return}while(1){if((c[j>>2]|0)<=0)break;if((a[c[k>>2]>>0]|0)!=65)break;c[j>>2]=(c[j>>2]|0)+-1;c[h>>2]=(c[h>>2]|0)+1;c[k>>2]=(c[k>>2]|0)+1}while(1){if((c[j>>2]|0)>1)e=(a[(c[k>>2]|0)+((c[j>>2]|0)-1)>>0]|0)==65;else e=0;d=c[j>>2]|0;if(!e)break;c[j>>2]=d+-1}if((d|0)<=0){i=m;return}Uw(c[l>>2]|0,48,c[h>>2]|0,c[j>>2]|0,0,c[k>>2]|0,c[j>>2]|0)|0;CA(c[g>>2]|0,c[h>>2]|0,c[j>>2]|0);i=m;return}function uD(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;o=i;i=i+48|0;p=o+32|0;h=o+28|0;q=o+24|0;r=o+20|0;l=o+16|0;n=o+12|0;k=o+8|0;m=o+4|0;j=o;c[p>>2]=a;c[h>>2]=d;c[q>>2]=f;c[r>>2]=g;c[l>>2]=c[c[p>>2]>>2];c[n>>2]=c[(c[l>>2]|0)+8>>2];Vw(c[n>>2]|0,112,c[r>>2]|0,0,c[q>>2]|0)|0;if(!(e[(c[p>>2]|0)+34>>1]&32)){i=o;return}f=c[l>>2]|0;if(c[(c[l>>2]|0)+416>>2]|0)f=c[f+416>>2]|0;if(c[f+336>>2]|0){i=o;return}c[m>>2]=c[(c[h>>2]|0)+12>>2];c[j>>2]=ph(c[c[l>>2]>>2]|0,(b[(c[m>>2]|0)+34>>1]|0)+1<<2,0)|0;if(!(c[j>>2]|0)){i=o;return}c[c[j>>2]>>2]=b[(c[m>>2]|0)+34>>1];c[k>>2]=0;while(1){if((c[k>>2]|0)>=((e[(c[h>>2]|0)+52>>1]|0)-1|0))break;if((b[(c[(c[h>>2]|0)+4>>2]|0)+(c[k>>2]<<1)>>1]|0)>=0)c[(c[j>>2]|0)+((b[(c[(c[h>>2]|0)+4>>2]|0)+(c[k>>2]<<1)>>1]|0)+1<<2)>>2]=(c[k>>2]|0)+1;c[k>>2]=(c[k>>2]|0)+1}Ih(c[n>>2]|0,-1,c[j>>2]|0,-15);i=o;return}function vD(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;k=i;i=i+32|0;g=k+20|0;n=k+16|0;m=k+12|0;l=k+8|0;h=k+4|0;j=k;c[g>>2]=a;c[n>>2]=b;c[m>>2]=d;c[l>>2]=e;c[h>>2]=f;c[j>>2]=zA(c[g>>2]|0,c[n>>2]|0,c[m>>2]|0,c[l>>2]|0,c[h>>2]|0,0)|0;if((c[j>>2]|0)==(c[h>>2]|0)){i=k;return}Rw(c[(c[g>>2]|0)+8>>2]|0,31,c[j>>2]|0,c[h>>2]|0)|0;i=k;return}function wD(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+16|0;g=e+8|0;f=e+4|0;h=e;c[g>>2]=a;c[f>>2]=b;c[h>>2]=d;d=c[h>>2]|0;c[(Mz(c[g>>2]|0,c[f>>2]|0)|0)+4>>2]=d;i=e;return}function xD(a,b,d,f,g,h,j){a=a|0;b=b|0;d=d|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;q=i;i=i+144|0;n=q+132|0;u=q+128|0;t=q+124|0;s=q+120|0;k=q;l=q+116|0;r=q+112|0;p=q+108|0;o=q+104|0;m=q+8|0;c[u>>2]=a;c[t>>2]=b;c[s>>2]=d;a=k;c[a>>2]=f;c[a+4>>2]=g;c[l>>2]=h;c[r>>2]=j;c[p>>2]=0;c[o>>2]=yD(m,c[u>>2]|0,c[t>>2]|0,c[s>>2]|0,c[l>>2]|0,c[r>>2]|0)|0;c[l>>2]=c[l>>2]&130;while(1){if(!(c[o>>2]|0)){f=10;break}t=(c[o>>2]|0)+32|0;u=k;if((c[t>>2]&c[u>>2]|0)==0?(c[t+4>>2]&c[u+4>>2]|0)==0:0){u=(c[o>>2]|0)+32|0;if((c[u>>2]|0)==0&(c[u+4>>2]|0)==0?((e[(c[o>>2]|0)+18>>1]|0)&c[l>>2]|0)!=0:0){f=6;break}if(!(c[p>>2]|0))c[p>>2]=c[o>>2]}c[o>>2]=zD(m)|0}if((f|0)==6){c[n>>2]=c[o>>2];u=c[n>>2]|0;i=q;return u|0}else if((f|0)==10){c[n>>2]=c[p>>2];u=c[n>>2]|0;i=q;return u|0}return 0}function yD(d,e,f,g,h,j){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;q=i;i=i+32|0;k=q+24|0;r=q+20|0;l=q+16|0;m=q+12|0;n=q+8|0;o=q+4|0;p=q;c[k>>2]=d;c[r>>2]=e;c[l>>2]=f;c[m>>2]=g;c[n>>2]=h;c[o>>2]=j;c[p>>2]=0;c[c[k>>2]>>2]=c[r>>2];c[(c[k>>2]|0)+4>>2]=c[r>>2];c[(c[k>>2]|0)+12>>2]=0;if((c[o>>2]|0)!=0?(c[p>>2]=c[m>>2],c[m>>2]=b[(c[(c[o>>2]|0)+4>>2]|0)+(c[p>>2]<<1)>>1],(c[m>>2]|0)==-2):0)c[(c[k>>2]|0)+12>>2]=c[(c[(c[(c[o>>2]|0)+40>>2]|0)+4>>2]|0)+((c[p>>2]|0)*20|0)>>2];if((c[o>>2]|0)!=0&(c[m>>2]|0)>=0){a[(c[k>>2]|0)+16>>0]=a[(c[(c[(c[o>>2]|0)+12>>2]|0)+4>>2]|0)+((c[m>>2]|0)*24|0)+21>>0]|0;c[(c[k>>2]|0)+8>>2]=c[(c[(c[o>>2]|0)+32>>2]|0)+(c[p>>2]<<2)>>2]}else{a[(c[k>>2]|0)+16>>0]=0;c[(c[k>>2]|0)+8>>2]=0}c[(c[k>>2]|0)+20>>2]=c[n>>2];c[(c[k>>2]|0)+24>>2]=0;c[(c[k>>2]|0)+28>>2]=c[l>>2];b[(c[k>>2]|0)+72>>1]=c[m>>2];a[(c[k>>2]|0)+17>>0]=1;a[(c[k>>2]|0)+18>>0]=1;r=zD(c[k>>2]|0)|0;i=q;return r|0}function zD(f){f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+48|0;o=s+36|0;p=s+32|0;h=s+28|0;g=s+40|0;n=s+24|0;m=s+20|0;r=s+16|0;q=s+12|0;j=s+8|0;k=s+4|0;l=s;c[p>>2]=f;c[q>>2]=c[(c[p>>2]|0)+24>>2];a:while(1){if((d[(c[p>>2]|0)+18>>0]|0)>(d[(c[p>>2]|0)+17>>0]|0)){g=40;break}c[h>>2]=c[(c[p>>2]|0)+28+((d[(c[p>>2]|0)+18>>0]|0)-1<<2)>>2];b[g>>1]=b[(c[p>>2]|0)+72+((d[(c[p>>2]|0)+18>>0]|0)-1<<1)>>1]|0;if((b[g>>1]|0)==-2?(c[(c[p>>2]|0)+12>>2]|0)==0:0){g=5;break}while(1){f=c[(c[p>>2]|0)+4>>2]|0;c[m>>2]=f;if(!f)break;c[r>>2]=(c[(c[m>>2]|0)+20>>2]|0)+((c[q>>2]|0)*48|0);while(1){if((c[q>>2]|0)>=(c[(c[m>>2]|0)+12>>2]|0))break;do if((c[(c[r>>2]|0)+8>>2]|0)==(c[h>>2]|0)?(c[(c[r>>2]|0)+12>>2]|0)==(b[g>>1]|0):0){if((b[g>>1]|0)==-2?(py(c[(c[c[r>>2]>>2]|0)+12>>2]|0,c[(c[p>>2]|0)+12>>2]|0,c[h>>2]|0)|0)!=0:0)break;if((d[(c[p>>2]|0)+18>>0]|0)>1?(c[(c[c[r>>2]>>2]|0)+4>>2]&1|0)!=0:0)break;if(((e[(c[r>>2]|0)+18>>1]&2048|0)!=0?(d[(c[p>>2]|0)+17>>0]|0)<11:0)?(f=Tx(c[(c[c[r>>2]>>2]|0)+16>>2]|0)|0,c[n>>2]=f,(d[f>>0]|0)==152):0){c[j>>2]=0;while(1){if((c[j>>2]|0)>=(d[(c[p>>2]|0)+17>>0]|0))break;if((c[(c[p>>2]|0)+28+(c[j>>2]<<2)>>2]|0)==(c[(c[n>>2]|0)+28>>2]|0)?(b[(c[p>>2]|0)+72+(c[j>>2]<<1)>>1]|0)==(b[(c[n>>2]|0)+32>>1]|0):0)break;c[j>>2]=(c[j>>2]|0)+1}if((c[j>>2]|0)==(d[(c[p>>2]|0)+17>>0]|0)){c[(c[p>>2]|0)+28+(c[j>>2]<<2)>>2]=c[(c[n>>2]|0)+28>>2];b[(c[p>>2]|0)+72+(c[j>>2]<<1)>>1]=b[(c[n>>2]|0)+32>>1]|0;f=(c[p>>2]|0)+17|0;a[f>>0]=(a[f>>0]|0)+1<<24>>24}}if(e[(c[r>>2]|0)+18>>1]&c[(c[p>>2]|0)+20>>2]){if((c[(c[p>>2]|0)+8>>2]|0)!=0?(e[(c[r>>2]|0)+18>>1]&256|0)==0:0){c[l>>2]=c[c[c[m>>2]>>2]>>2];c[n>>2]=c[c[r>>2]>>2];if(!(WA(c[n>>2]|0,a[(c[p>>2]|0)+16>>0]|0)|0))break;c[k>>2]=VA(c[l>>2]|0,c[(c[n>>2]|0)+12>>2]|0,c[(c[n>>2]|0)+16>>2]|0)|0;if(!(c[k>>2]|0))c[k>>2]=c[(c[c[l>>2]>>2]|0)+8>>2];if(Td(c[c[k>>2]>>2]|0,c[(c[p>>2]|0)+8>>2]|0)|0)break}if(!(e[(c[r>>2]|0)+18>>1]&130)){g=36;break a}f=c[(c[c[r>>2]>>2]|0)+16>>2]|0;c[n>>2]=f;if((d[f>>0]|0)!=152){g=36;break a}if((c[(c[n>>2]|0)+28>>2]|0)!=(c[(c[p>>2]|0)+28>>2]|0)){g=36;break a}if((b[(c[n>>2]|0)+32>>1]|0)!=(b[(c[p>>2]|0)+72>>1]|0)){g=36;break a}}}while(0);c[q>>2]=(c[q>>2]|0)+1;c[r>>2]=(c[r>>2]|0)+48}c[(c[p>>2]|0)+4>>2]=c[(c[(c[p>>2]|0)+4>>2]|0)+4>>2];c[q>>2]=0}c[(c[p>>2]|0)+4>>2]=c[c[p>>2]>>2];c[q>>2]=0;f=(c[p>>2]|0)+18|0;a[f>>0]=(a[f>>0]|0)+1<<24>>24}if((g|0)==5){c[o>>2]=0;r=c[o>>2]|0;i=s;return r|0}else if((g|0)==36){c[(c[p>>2]|0)+24>>2]=(c[q>>2]|0)+1;c[o>>2]=c[r>>2];r=c[o>>2]|0;i=s;return r|0}else if((g|0)==40){c[o>>2]=0;r=c[o>>2]|0;i=s;return r|0}return 0}function AD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;a=c[f>>2]|0;b=c[e>>2]|0;aA(a,b,If(c[e>>2]|0)|0);i=d;return}function BD(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+48|0;n=r;f=r+32|0;g=r+28|0;m=r+24|0;k=r+38|0;l=r+36|0;h=r+20|0;j=r+16|0;o=r+12|0;p=r+8|0;q=r+4|0;c[f>>2]=a;c[g>>2]=d;c[m>>2]=c[(c[g>>2]|0)+24+4>>2];b[k>>1]=b[(c[g>>2]|0)+24>>1]|0;b[l>>1]=b[(c[g>>2]|0)+42>>1]|0;if((e[k>>1]|0|0)==0?(c[(c[g>>2]|0)+36>>2]&48|0)==0:0){i=r;return}aA(c[f>>2]|0,35496,2);c[h>>2]=0;while(1){if((c[h>>2]|0)>=(e[k>>1]|0|0))break;c[o>>2]=CD(c[m>>2]|0,c[h>>2]|0)|0;if(c[h>>2]|0)aA(c[f>>2]|0,35499,5);d=c[f>>2]|0;a=(c[h>>2]|0)>=(e[l>>1]|0|0)?35505:35510;c[n>>2]=c[o>>2];$z(d,a,n);c[h>>2]=(c[h>>2]|0)+1}c[j>>2]=c[h>>2];if(c[(c[g>>2]|0)+36>>2]&32){c[p>>2]=CD(c[m>>2]|0,c[h>>2]|0)|0;n=c[f>>2]|0;o=c[h>>2]|0;c[h>>2]=o+1;DD(n,o,c[p>>2]|0,35427)}if(c[(c[g>>2]|0)+36>>2]&16){c[q>>2]=CD(c[m>>2]|0,c[j>>2]|0)|0;DD(c[f>>2]|0,c[h>>2]|0,c[q>>2]|0,35429)}aA(c[f>>2]|0,35518,1);i=r;return}function CD(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+8|0;f=h+4|0;g=h;c[f>>2]=a;c[g>>2]=d;c[g>>2]=b[(c[(c[f>>2]|0)+4>>2]|0)+(c[g>>2]<<1)>>1];if((c[g>>2]|0)==-2){c[e>>2]=35520;a=c[e>>2]|0;i=h;return a|0}if((c[g>>2]|0)==-1){c[e>>2]=25592;a=c[e>>2]|0;i=h;return a|0}else{c[e>>2]=c[(c[(c[(c[f>>2]|0)+12>>2]|0)+4>>2]|0)+((c[g>>2]|0)*24|0)>>2];a=c[e>>2]|0;i=h;return a|0}return 0}function DD(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;j=i;i=i+16|0;f=j+12|0;k=j+8|0;g=j+4|0;h=j;c[f>>2]=a;c[k>>2]=b;c[g>>2]=d;c[h>>2]=e;if(c[k>>2]|0)aA(c[f>>2]|0,35499,5);AD(c[f>>2]|0,c[g>>2]|0);aA(c[f>>2]|0,c[h>>2]|0,1);aA(c[f>>2]|0,21139,1);i=j;return}function ED(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;a=$A(c[f>>2]|0,3,c[e>>2]|0)|0;i=d;return a|0}function FD(b,d,f,g){b=b|0;d=d|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;h=n+16|0;j=n+12|0;k=n+8|0;l=n;m=n+20|0;c[j>>2]=b;c[k>>2]=d;b=l;c[b>>2]=f;c[b+4>>2]=g;if((c[(c[j>>2]|0)+8>>2]|0)!=(c[(c[k>>2]|0)+44>>2]|0)){c[h>>2]=0;b=c[h>>2]|0;i=n;return b|0}if(!((e[(c[j>>2]|0)+18>>1]|0)&130)){c[h>>2]=0;b=c[h>>2]|0;i=n;return b|0}d=(c[j>>2]|0)+32|0;b=l;if((c[d>>2]&c[b>>2]|0)!=0?1:(c[d+4>>2]&c[b+4>>2]|0)!=0){c[h>>2]=0;b=c[h>>2]|0;i=n;return b|0}if((c[(c[j>>2]|0)+12>>2]|0)<0){c[h>>2]=0;b=c[h>>2]|0;i=n;return b|0}a[m>>0]=a[(c[(c[(c[k>>2]|0)+16>>2]|0)+4>>2]|0)+((c[(c[j>>2]|0)+12>>2]|0)*24|0)+21>>0]|0;if(WA(c[c[j>>2]>>2]|0,a[m>>0]|0)|0){c[h>>2]=1;b=c[h>>2]|0;i=n;return b|0}else{c[h>>2]=0;b=c[h>>2]|0;i=n;return b|0}return 0}function GD(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;g=m+16|0;h=m+12|0;j=m+8|0;k=m+4|0;l=m;c[h>>2]=a;c[j>>2]=d;c[k>>2]=f;if((e[(c[j>>2]|0)+44>>1]|0|0)>=(c[k>>2]|0)){c[g>>2]=0;l=c[g>>2]|0;i=m;return l|0}c[k>>2]=(c[k>>2]|0)+7&-8;c[l>>2]=Fw(c[h>>2]|0,c[k>>2]<<2,0)|0;if(!(c[l>>2]|0)){c[g>>2]=7;l=c[g>>2]|0;i=m;return l|0}iR(c[l>>2]|0,c[(c[j>>2]|0)+48>>2]|0,(e[(c[j>>2]|0)+44>>1]|0)<<2|0)|0;if((c[(c[j>>2]|0)+48>>2]|0)!=((c[j>>2]|0)+56|0))Sf(c[h>>2]|0,c[(c[j>>2]|0)+48>>2]|0);c[(c[j>>2]|0)+48>>2]=c[l>>2];b[(c[j>>2]|0)+44>>1]=c[k>>2];c[g>>2]=0;l=c[g>>2]|0;i=m;return l|0}function HD(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;m=i;i=i+32|0;n=m+20|0;g=m+24|0;o=m+16|0;h=m+12|0;k=m+8|0;j=m+4|0;l=m;c[n>>2]=a;b[g>>1]=d;c[o>>2]=e;c[h>>2]=f;c[j>>2]=56+((b[g>>1]<<2)+7&-8)+(((b[g>>1]|0)+1<<1)+(b[g>>1]<<1)+(b[g>>1]|0)+7&-8);f=(c[j>>2]|0)+(c[o>>2]|0)|0;c[k>>2]=ph(c[n>>2]|0,f,((f|0)<0)<<31>>31)|0;if(!(c[k>>2]|0)){o=c[k>>2]|0;i=m;return o|0}c[l>>2]=(c[k>>2]|0)+56;c[(c[k>>2]|0)+32>>2]=c[l>>2];c[l>>2]=(c[l>>2]|0)+((b[g>>1]<<2)+7&-8);c[(c[k>>2]|0)+8>>2]=c[l>>2];c[l>>2]=(c[l>>2]|0)+((b[g>>1]|0)+1<<1);c[(c[k>>2]|0)+4>>2]=c[l>>2];c[l>>2]=(c[l>>2]|0)+(b[g>>1]<<1);c[(c[k>>2]|0)+28>>2]=c[l>>2];b[(c[k>>2]|0)+52>>1]=b[g>>1]|0;b[(c[k>>2]|0)+50>>1]=(b[g>>1]|0)-1;c[c[h>>2]>>2]=(c[k>>2]|0)+(c[j>>2]|0);o=c[k>>2]|0;i=m;return o|0}function ID(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;j=i;i=i+32|0;f=j+8|0;e=j+20|0;g=j+16|0;h=j;c[e>>2]=a;c[g>>2]=b;a=h;c[a>>2]=0;c[a+4>>2]=0;if(!(c[g>>2]|0)){g=f;c[g>>2]=0;c[g+4>>2]=0;g=f;h=g;h=c[h>>2]|0;g=g+4|0;g=c[g>>2]|0;C=g;i=j;return h|0}b=c[e>>2]|0;a=c[g>>2]|0;if((d[c[g>>2]>>0]|0|0)==152){g=nD(b,c[a+28>>2]|0)|0;e=h;c[e>>2]=g;c[e+4>>2]=C;e=h;h=c[e+4>>2]|0;g=f;c[g>>2]=c[e>>2];c[g+4>>2]=h;g=f;h=g;h=c[h>>2]|0;g=g+4|0;g=c[g>>2]|0;C=g;i=j;return h|0}l=ID(b,c[a+16>>2]|0)|0;k=h;c[k>>2]=l;c[k+4>>2]=C;k=ID(c[e>>2]|0,c[(c[g>>2]|0)+12>>2]|0)|0;l=h;a=c[l+4>>2]|C;b=h;c[b>>2]=c[l>>2]|k;c[b+4>>2]=a;b=c[e>>2]|0;a=(c[g>>2]|0)+20|0;if(c[(c[g>>2]|0)+4>>2]&2048){g=JD(b,c[a>>2]|0)|0;e=h;k=c[e+4>>2]|C;l=h;c[l>>2]=c[e>>2]|g;c[l+4>>2]=k}else{g=jD(b,c[a>>2]|0)|0;e=h;k=c[e+4>>2]|C;l=h;c[l>>2]=c[e>>2]|g;c[l+4>>2]=k}l=c[h+4>>2]|0;k=f;c[k>>2]=c[h>>2];c[k+4>>2]=l;k=f;l=k;l=c[l>>2]|0;k=k+4|0;k=c[k>>2]|0;C=k;i=j;return l|0}function JD(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0;j=i;i=i+32|0;d=j+20|0;e=j+16|0;g=j;h=j+12|0;f=j+8|0;c[d>>2]=a;c[e>>2]=b;b=g;c[b>>2]=0;c[b+4>>2]=0;while(1){if(!(c[e>>2]|0))break;c[h>>2]=c[(c[e>>2]|0)+32>>2];k=jD(c[d>>2]|0,c[c[e>>2]>>2]|0)|0;l=g;a=c[l+4>>2]|C;b=g;c[b>>2]=c[l>>2]|k;c[b+4>>2]=a;b=jD(c[d>>2]|0,c[(c[e>>2]|0)+40>>2]|0)|0;a=g;k=c[a+4>>2]|C;l=g;c[l>>2]=c[a>>2]|b;c[l+4>>2]=k;l=jD(c[d>>2]|0,c[(c[e>>2]|0)+48>>2]|0)|0;k=g;b=c[k+4>>2]|C;a=g;c[a>>2]=c[k>>2]|l;c[a+4>>2]=b;a=ID(c[d>>2]|0,c[(c[e>>2]|0)+36>>2]|0)|0;b=g;l=c[b+4>>2]|C;k=g;c[k>>2]=c[b>>2]|a;c[k+4>>2]=l;k=ID(c[d>>2]|0,c[(c[e>>2]|0)+44>>2]|0)|0;l=g;a=c[l+4>>2]|C;b=g;c[b>>2]=c[l>>2]|k;c[b+4>>2]=a;a:do if(c[h>>2]|0){c[f>>2]=0;while(1){if((c[f>>2]|0)>=(c[c[h>>2]>>2]|0))break a;k=JD(c[d>>2]|0,c[(c[h>>2]|0)+8+((c[f>>2]|0)*72|0)+20>>2]|0)|0;l=g;a=c[l+4>>2]|C;b=g;c[b>>2]=c[l>>2]|k;c[b+4>>2]=a;b=ID(c[d>>2]|0,c[(c[h>>2]|0)+8+((c[f>>2]|0)*72|0)+48>>2]|0)|0;a=g;k=c[a+4>>2]|C;l=g;c[l>>2]=c[a>>2]|b;c[l+4>>2]=k;c[f>>2]=(c[f>>2]|0)+1}}while(0);c[e>>2]=c[(c[e>>2]|0)+52>>2]}l=g;C=c[l+4>>2]|0;i=j;return c[l>>2]|0}function KD(a,c){a=a|0;c=c|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+4|0;f=h+2|0;g=h;b[f>>1]=a;b[g>>1]=c;if((b[f>>1]|0)>=(b[g>>1]|0)){a=b[f>>1]|0;if((b[f>>1]|0)>((b[g>>1]|0)+49|0)){b[e>>1]=a;g=b[e>>1]|0;i=h;return g|0}c=b[f>>1]|0;if((a<<16>>16|0)>((b[g>>1]|0)+31|0)){b[e>>1]=c+1;g=b[e>>1]|0;i=h;return g|0}else{b[e>>1]=c+(d[35582+((b[f>>1]|0)-(b[g>>1]|0))>>0]|0);g=b[e>>1]|0;i=h;return g|0}}else{a=b[g>>1]|0;if((b[g>>1]|0)>((b[f>>1]|0)+49|0)){b[e>>1]=a;g=b[e>>1]|0;i=h;return g|0}c=b[g>>1]|0;if((a<<16>>16|0)>((b[f>>1]|0)+31|0)){b[e>>1]=c+1;g=b[e>>1]|0;i=h;return g|0}else{b[e>>1]=c+(d[35582+((b[g>>1]|0)-(b[f>>1]|0))>>0]|0);g=b[e>>1]|0;i=h;return g|0}}return 0}function LD(f,g,h,j,k,l,m){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0;$=i;i=i+144|0;W=$+141|0;n=$+120|0;o=$+116|0;p=$+112|0;q=$+132|0;r=$+130|0;s=$+108|0;t=$+104|0;T=$+140|0;R=$+139|0;S=$+138|0;B=$+137|0;w=$+136|0;A=$+135|0;G=$+128|0;F=$+126|0;H=$+124|0;z=$+100|0;X=$+96|0;D=$+92|0;y=$+88|0;x=$+84|0;N=$+80|0;P=$+76|0;O=$+72|0;L=$+68|0;M=$+64|0;v=$+60|0;Z=$+40|0;I=$+32|0;J=$+24|0;Q=$+16|0;U=$+56|0;V=$+52|0;u=$+134|0;K=$+48|0;E=$+8|0;Y=$;c[n>>2]=f;c[o>>2]=g;c[p>>2]=h;b[q>>1]=j;b[r>>1]=k;c[s>>2]=l;c[t>>2]=m;c[N>>2]=0;c[v>>2]=c[c[c[n>>2]>>2]>>2];j=Z;c[j>>2]=0;c[j+4>>2]=0;if((e[r>>1]|0)!=0?(e[(c[v>>2]|0)+60>>1]&128|0)!=0:0){a[W>>0]=0;_=a[W>>0]|0;i=$;return _|0}b[H>>1]=c[c[o>>2]>>2];if((e[H>>1]|0)>63){a[W>>0]=0;_=a[W>>0]|0;i=$;return _|0}a[B>>0]=1;f=lR(1,0,e[H>>1]|0)|0;f=fR(f|0,C|0,1,0)|0;j=I;c[j>>2]=f;c[j+4>>2]=C;j=J;c[j>>2]=0;c[j+4>>2]=0;j=Q;c[j>>2]=0;c[j+4>>2]=0;c[z>>2]=0;while(1){if(!(d[B>>0]|0))break;f=Z;h=c[f+4>>2]|0;j=I;m=c[j+4>>2]|0;if(!(h>>>0<m>>>0|((h|0)==(m|0)?(c[f>>2]|0)>>>0<(c[j>>2]|0)>>>0:0)))break;if((c[z>>2]|0)>(e[r>>1]|0))break;if((c[z>>2]|0)>0){m=(c[N>>2]|0)+8|0;h=Q;f=c[h+4>>2]|c[m+4>>2];j=Q;c[j>>2]=c[h>>2]|c[m>>2];c[j+4>>2]=f}if((c[z>>2]|0)<(e[r>>1]|0))k=c[(c[(c[p>>2]|0)+24>>2]|0)+(c[z>>2]<<2)>>2]|0;else k=c[s>>2]|0;c[N>>2]=k;k=c[N>>2]|0;if(c[(c[N>>2]|0)+36>>2]&1024){_=16;break}c[y>>2]=c[(c[(c[n>>2]|0)+4>>2]|0)+8+((d[k+16>>0]|0)*72|0)+44>>2];c[X>>2]=0;while(1){if((c[X>>2]|0)>=(e[H>>1]|0))break;f=lR(1,0,c[X>>2]|0)|0;j=Z;do if(((!((f&c[j>>2]|0)!=0?1:(C&c[j+4>>2]|0)!=0)?(c[O>>2]=Tx(c[(c[(c[o>>2]|0)+4>>2]|0)+((c[X>>2]|0)*20|0)>>2]|0)|0,(d[c[O>>2]>>0]|0)==152):0)?(c[(c[O>>2]|0)+28>>2]|0)==(c[y>>2]|0):0)?(j=Q,c[P>>2]=xD((c[n>>2]|0)+328|0,c[y>>2]|0,b[(c[O>>2]|0)+32>>1]|0,~c[j>>2],~c[j+4>>2],386,0)|0,(c[P>>2]|0)!=0):0){if((e[(c[P>>2]|0)+18>>1]&130|0)!=0?(b[(c[O>>2]|0)+32>>1]|0)>=0:0){c[L>>2]=Ox(c[c[n>>2]>>2]|0,c[(c[(c[o>>2]|0)+4>>2]|0)+((c[X>>2]|0)*20|0)>>2]|0)|0;if(!(c[L>>2]|0))c[L>>2]=c[(c[v>>2]|0)+8>>2];c[U>>2]=c[c[L>>2]>>2];c[L>>2]=Ox(c[c[n>>2]>>2]|0,c[c[P>>2]>>2]|0)|0;if(!(c[L>>2]|0))c[L>>2]=c[(c[v>>2]|0)+8>>2];c[V>>2]=c[c[L>>2]>>2];if(Td(c[U>>2]|0,c[V>>2]|0)|0)break}m=lR(1,0,c[X>>2]|0)|0;h=Z;f=c[h+4>>2]|C;j=Z;c[j>>2]=c[h>>2]|m;c[j+4>>2]=f}while(0);c[X>>2]=(c[X>>2]|0)+1}if(!(c[(c[N>>2]|0)+36>>2]&4096)){if(c[(c[N>>2]|0)+36>>2]&256){c[M>>2]=0;b[G>>1]=0;b[F>>1]=1}else{j=c[(c[N>>2]|0)+24+4>>2]|0;c[M>>2]=j;if(!j){_=38;break}if((d[(c[M>>2]|0)+55>>0]|0)>>>2&1){_=38;break}b[G>>1]=b[(c[M>>2]|0)+50>>1]|0;b[F>>1]=b[(c[M>>2]|0)+52>>1]|0;a[B>>0]=(d[(c[M>>2]|0)+54>>0]|0)!=0}a[T>>0]=0;a[R>>0]=0;a[w>>0]=0;c[D>>2]=0;while(1){if((c[D>>2]|0)>=(e[F>>1]|0))break;if(((c[D>>2]|0)<(e[(c[N>>2]|0)+24>>1]|0)?(e[(c[N>>2]|0)+42>>1]|0)==0:0)?(j=e[(c[(c[(c[N>>2]|0)+48>>2]|0)+(c[D>>2]<<2)>>2]|0)+18>>1]|0,c[X>>2]=j,(j&386|0)!=0):0){if(c[X>>2]&256)a[B>>0]=0}else{if(c[M>>2]|0){c[x>>2]=b[(c[(c[M>>2]|0)+4>>2]|0)+(c[D>>2]<<1)>>1];a[S>>0]=a[(c[(c[M>>2]|0)+28>>2]|0)+(c[D>>2]|0)>>0]|0;if((c[x>>2]|0)==(b[(c[(c[M>>2]|0)+12>>2]|0)+32>>1]|0))c[x>>2]=-1}else{c[x>>2]=-1;a[S>>0]=0}do if((d[B>>0]|0)!=0&(c[x>>2]|0)>=0?(c[D>>2]|0)>=(e[(c[N>>2]|0)+24>>1]|0):0){if(d[(c[(c[(c[M>>2]|0)+12>>2]|0)+4>>2]|0)+((c[x>>2]|0)*24|0)+20>>0]|0)break;a[B>>0]=0}while(0);a[u>>0]=1;a[A>>0]=0;c[X>>2]=0;a:while(1){if(!(d[u>>0]|0))break;if((c[X>>2]|0)>=(e[H>>1]|0))break;f=lR(1,0,c[X>>2]|0)|0;j=Z;do if(!((f&c[j>>2]|0)!=0?1:(C&c[j+4>>2]|0)!=0)){c[O>>2]=Tx(c[(c[(c[o>>2]|0)+4>>2]|0)+((c[X>>2]|0)*20|0)>>2]|0)|0;if(!(e[q>>1]&768))a[u>>0]=0;k=c[O>>2]|0;if((c[x>>2]|0)>=-1){if((d[k>>0]|0)!=152)break;if((c[(c[O>>2]|0)+28>>2]|0)!=(c[y>>2]|0))break;if((b[(c[O>>2]|0)+32>>1]|0)!=(c[x>>2]|0))break}else if(py(k,c[(c[(c[(c[M>>2]|0)+40>>2]|0)+4>>2]|0)+((c[D>>2]|0)*20|0)>>2]|0,c[y>>2]|0)|0)break;if((c[x>>2]|0)<0){_=70;break a}c[L>>2]=Ox(c[c[n>>2]>>2]|0,c[(c[(c[o>>2]|0)+4>>2]|0)+((c[X>>2]|0)*20|0)>>2]|0)|0;if(!(c[L>>2]|0))c[L>>2]=c[(c[v>>2]|0)+8>>2];if(!(Td(c[c[L>>2]>>2]|0,c[(c[(c[M>>2]|0)+32>>2]|0)+(c[D>>2]<<2)>>2]|0)|0)){_=70;break a}}while(0);c[X>>2]=(c[X>>2]|0)+1}if((_|0)==70){_=0;a[A>>0]=1}do if(d[A>>0]|0){if(e[q>>1]&256)break;if(a[T>>0]|0){if((d[R>>0]^d[S>>0]|0)==(d[(c[(c[o>>2]|0)+4>>2]|0)+((c[X>>2]|0)*20|0)+12>>0]|0))break;a[A>>0]=0;break}a[R>>0]=d[S>>0]^d[(c[(c[o>>2]|0)+4>>2]|0)+((c[X>>2]|0)*20|0)+12>>0];if(a[R>>0]|0){m=lR(1,0,c[z>>2]|0)|0;j=c[t>>2]|0;h=j;f=c[h+4>>2]|C;c[j>>2]=c[h>>2]|m;c[j+4>>2]=f}a[T>>0]=1}while(0);if(!(a[A>>0]|0)){_=84;break}if((c[x>>2]|0)<0)a[w>>0]=1;m=lR(1,0,c[X>>2]|0)|0;h=Z;f=c[h+4>>2]|C;j=Z;c[j>>2]=c[h>>2]|m;c[j+4>>2]=f}c[D>>2]=(c[D>>2]|0)+1}do if((_|0)==84){_=0;if((c[D>>2]|0)!=0?(c[D>>2]|0)>=(e[G>>1]|0):0)break;a[B>>0]=0}while(0);if(a[w>>0]|0)a[B>>0]=1}b:do if(a[B>>0]|0){m=(c[N>>2]|0)+8|0;h=J;f=c[h+4>>2]|c[m+4>>2];j=J;c[j>>2]=c[h>>2]|c[m>>2];c[j+4>>2]=f;c[X>>2]=0;while(1){if((c[X>>2]|0)>=(e[H>>1]|0))break b;f=lR(1,0,c[X>>2]|0)|0;j=Z;do if(!((f&c[j>>2]|0)!=0?1:(C&c[j+4>>2]|0)!=0)){c[K>>2]=c[(c[(c[o>>2]|0)+4>>2]|0)+((c[X>>2]|0)*20|0)>>2];f=ID((c[n>>2]|0)+68|0,c[K>>2]|0)|0;j=E;c[j>>2]=f;c[j+4>>2]=C;j=E;if((c[j>>2]|0)==0&(c[j+4>>2]|0)==0?(FA(c[K>>2]|0)|0)==0:0)break;f=E;j=J;if((c[f>>2]&~c[j>>2]|0)==0?(c[f+4>>2]&~c[j+4>>2]|0)==0:0){m=lR(1,0,c[X>>2]|0)|0;h=Z;f=c[h+4>>2]|C;j=Z;c[j>>2]=c[h>>2]|m;c[j+4>>2]=f}}while(0);c[X>>2]=(c[X>>2]|0)+1}}while(0);c[z>>2]=(c[z>>2]|0)+1}if((_|0)==16){if(a[k+24+5>>0]|0){U=I;V=c[U+4>>2]|0;_=Z;c[_>>2]=c[U>>2];c[_+4>>2]=V}}else if((_|0)==38){a[W>>0]=0;_=a[W>>0]|0;i=$;return _|0}V=Z;_=I;if((c[V>>2]|0)==(c[_>>2]|0)?(c[V+4>>2]|0)==(c[_+4>>2]|0):0){a[W>>0]=b[H>>1];_=a[W>>0]|0;i=$;return _|0}if(a[B>>0]|0){a[W>>0]=-1;_=a[W>>0]|0;i=$;return _|0}c[X>>2]=(e[H>>1]|0)-1;while(1){if((c[X>>2]|0)<=0){_=108;break}V=lR(1,0,c[X>>2]|0)|0;V=fR(V|0,C|0,1,0)|0;U=Y;c[U>>2]=V;c[U+4>>2]=C;U=Z;V=Y;_=Y;k=c[X>>2]|0;if((c[U>>2]&c[V>>2]|0)==(c[_>>2]|0)?(c[U+4>>2]&c[V+4>>2]|0)==(c[_+4>>2]|0):0){_=106;break}c[X>>2]=k+-1}if((_|0)==106){a[W>>0]=k;_=a[W>>0]|0;i=$;return _|0}else if((_|0)==108){a[W>>0]=0;_=a[W>>0]|0;i=$;return _|0}return 0}function MD(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;g=i;i=i+16|0;j=g+12|0;k=g+4|0;l=g;h=g+10|0;f=g+8|0;b[j>>1]=a;c[k>>2]=d;c[l>>2]=e;e=(((c[k>>2]|0)-(c[l>>2]|0)|0)*100|0)/(c[k>>2]|0)|0;b[h>>1]=((Hj(e,((e|0)<0)<<31>>31)|0)<<16>>16)-66;e=b[j>>1]|0;e=e+((ND(b[j>>1]|0)|0)<<16>>16)|0;b[f>>1]=e+(b[h>>1]|0)+16;i=g;return b[f>>1]|0}function ND(a){a=a|0;var c=0,d=0;d=i;i=i+16|0;c=d;b[c>>1]=a;if((b[c>>1]|0)<=10){a=0;a=a&65535;i=d;return a|0}a=b[c>>1]|0;a=((Hj(a,((a|0)<0)<<31>>31)|0)<<16>>16)-33|0;a=a&65535;i=d;return a|0}function OD(f,g,j,k,l){f=f|0;g=g|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;K=i;i=i+112|0;I=K+16|0;m=K+104|0;n=K+100|0;o=K+8|0;L=K;M=K+96|0;z=K+92|0;E=K+88|0;A=K+84|0;B=K+80|0;p=K+76|0;x=K+72|0;w=K+68|0;D=K+64|0;C=K+60|0;q=K+56|0;t=K+52|0;s=K+48|0;u=K+44|0;v=K+40|0;G=K+36|0;H=K+32|0;r=K+28|0;y=K+24|0;F=K+20|0;c[n>>2]=f;f=o;c[f>>2]=g;c[f+4>>2]=j;f=L;c[f>>2]=k;c[f+4>>2]=l;c[G>>2]=0;c[H>>2]=0;c[F>>2]=0;c[M>>2]=c[c[n>>2]>>2];c[z>>2]=c[c[M>>2]>>2];c[p>>2]=c[c[z>>2]>>2];c[E>>2]=c[(c[n>>2]|0)+4>>2];c[y>>2]=c[(c[n>>2]|0)+12>>2];c[A>>2]=(c[(c[M>>2]|0)+4>>2]|0)+8+((d[(c[y>>2]|0)+16>>0]|0)*72|0);c[B>>2]=c[(c[A>>2]|0)+16>>2];f=L;c[x>>2]=fE(c[z>>2]|0,c[E>>2]|0,c[f>>2]|0,c[f+4>>2]|0,c[A>>2]|0,c[(c[n>>2]|0)+8>>2]|0)|0;if(!(c[x>>2]|0)){c[m>>2]=7;M=c[m>>2]|0;i=K;return M|0}M=c[y>>2]|0;c[M>>2]=0;c[M+4>>2]=0;b[(c[y>>2]|0)+18>>1]=0;c[(c[y>>2]|0)+36>>2]=1024;b[(c[y>>2]|0)+40>>1]=0;a[(c[y>>2]|0)+24+4>>0]=0;c[D>>2]=c[(c[x>>2]|0)+16>>2];c[v>>2]=c[c[x>>2]>>2];if(GD(c[p>>2]|0,c[y>>2]|0,c[v>>2]|0)|0){Sf(c[p>>2]|0,c[x>>2]|0);c[m>>2]=7;M=c[m>>2]|0;i=K;return M|0}c[r>>2]=0;a:while(1){if((c[r>>2]|0)>3)break;if(((c[G>>2]|0)==0?(c[r>>2]&1|0)!=0:0)?(c[r>>2]=(c[r>>2]|0)+1,(c[r>>2]|0)>3):0)break;if((c[H>>2]|0)==0&(c[r>>2]|0)>1)break;c[w>>2]=c[(c[x>>2]|0)+4>>2];c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[c[x>>2]>>2]|0))break;c[t>>2]=c[(c[w>>2]|0)+8>>2];c[C>>2]=(c[(c[E>>2]|0)+20>>2]|0)+((c[t>>2]|0)*48|0);b:do switch(c[r>>2]|0){case 0:{a[(c[w>>2]|0)+5>>0]=0;if(e[(c[C>>2]|0)+18>>1]&1)c[G>>2]=1;L=(c[C>>2]|0)+32|0;M=o;if((c[L>>2]&~c[M>>2]|0)!=0?1:(c[L+4>>2]&~c[M+4>>2]|0)!=0){c[H>>2]=1;break b}if(!(e[(c[C>>2]|0)+18>>1]&1))a[(c[w>>2]|0)+5>>0]=1;break}case 1:{L=(c[C>>2]|0)+32|0;M=o;a[(c[w>>2]|0)+5>>0]=((c[L>>2]&~c[M>>2]|0)==0?(c[L+4>>2]&~c[M+4>>2]|0)==0:0)&1;break}case 2:{a[(c[w>>2]|0)+5>>0]=(e[(c[C>>2]|0)+18>>1]&1|0)==0;break}default:a[(c[w>>2]|0)+5>>0]=1}while(0);c[q>>2]=(c[q>>2]|0)+1;c[w>>2]=(c[w>>2]|0)+12}kR(c[D>>2]|0,0,c[c[x>>2]>>2]<<3|0)|0;if(c[(c[x>>2]|0)+28>>2]|0)Kd(c[(c[x>>2]|0)+24>>2]|0);c[(c[x>>2]|0)+24>>2]=0;c[(c[x>>2]|0)+20>>2]=0;c[(c[x>>2]|0)+28>>2]=0;c[(c[x>>2]|0)+32>>2]=0;h[(c[x>>2]|0)+40>>3]=5.e+98;f=(c[x>>2]|0)+48|0;c[f>>2]=25;c[f+4>>2]=0;c[(c[x>>2]|0)+56>>2]=0;f=(c[A>>2]|0)+56|0;L=c[f+4>>2]|0;M=(c[x>>2]|0)+64|0;c[M>>2]=c[f>>2];c[M+4>>2]=L;c[F>>2]=gE(c[z>>2]|0,c[B>>2]|0,c[x>>2]|0)|0;if(c[F>>2]|0)break;c[w>>2]=c[(c[x>>2]|0)+4>>2];f=o;L=c[f+4>>2]|0;M=c[y>>2]|0;c[M>>2]=c[f>>2];c[M+4>>2]=L;c[u>>2]=-1;c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[v>>2]|0))break;c[(c[(c[y>>2]|0)+48>>2]|0)+(c[q>>2]<<2)>>2]=0;c[q>>2]=(c[q>>2]|0)+1}b[(c[y>>2]|0)+24+6>>1]=0;c[q>>2]=0;while(1){if((c[q>>2]|0)>=(c[v>>2]|0))break;M=(c[(c[D>>2]|0)+(c[q>>2]<<3)>>2]|0)-1|0;c[s>>2]=M;if((M|0)>=0){c[t>>2]=c[(c[w>>2]|0)+8>>2];if((c[t>>2]|0)<0?1:(c[s>>2]|0)>=(c[v>>2]|0)){J=36;break a}if((c[t>>2]|0)>=(c[(c[E>>2]|0)+12>>2]|0)){J=36;break a}if(c[(c[(c[y>>2]|0)+48>>2]|0)+(c[s>>2]<<2)>>2]|0){J=36;break a}c[C>>2]=(c[(c[E>>2]|0)+20>>2]|0)+((c[t>>2]|0)*48|0);f=(c[C>>2]|0)+32|0;M=c[y>>2]|0;l=M;L=c[l+4>>2]|c[f+4>>2];c[M>>2]=c[l>>2]|c[f>>2];c[M+4>>2]=L;c[(c[(c[y>>2]|0)+48>>2]|0)+(c[s>>2]<<2)>>2]=c[C>>2];if((c[s>>2]|0)>(c[u>>2]|0))c[u>>2]=c[s>>2];if((c[s>>2]|0)<16?(d[(c[D>>2]|0)+(c[q>>2]<<3)+4>>0]|0)!=0:0){M=(c[y>>2]|0)+24+6|0;b[M>>1]=e[M>>1]|1<<c[s>>2]}if(e[(c[C>>2]|0)+18>>1]&1){if(!(d[(c[D>>2]|0)+(c[q>>2]<<3)+4>>0]|0))break;c[(c[x>>2]|0)+32>>2]=0;M=(c[x>>2]|0)+56|0;c[M>>2]=c[M>>2]&-2}}c[q>>2]=(c[q>>2]|0)+1;c[w>>2]=(c[w>>2]|0)+12}if((c[q>>2]|0)>=(c[v>>2]|0)){b[(c[y>>2]|0)+40>>1]=(c[u>>2]|0)+1;c[(c[y>>2]|0)+24>>2]=c[(c[x>>2]|0)+20>>2];a[(c[y>>2]|0)+24+4>>0]=c[(c[x>>2]|0)+28>>2];c[(c[x>>2]|0)+28>>2]=0;c[(c[y>>2]|0)+24+8>>2]=c[(c[x>>2]|0)+24>>2];if(c[(c[x>>2]|0)+32>>2]|0)g=c[(c[x>>2]|0)+8>>2]|0;else g=0;a[(c[y>>2]|0)+24+5>>0]=g;b[(c[y>>2]|0)+18>>1]=0;g=hE(+h[(c[x>>2]|0)+40>>3])|0;b[(c[y>>2]|0)+20>>1]=g;g=(c[x>>2]|0)+48|0;g=Hj(c[g>>2]|0,c[g+4>>2]|0)|0;b[(c[y>>2]|0)+22>>1]=g;g=(c[y>>2]|0)+36|0;j=c[g>>2]|0;if(c[(c[x>>2]|0)+56>>2]&1)c[g>>2]=j|4096;else c[g>>2]=j&-4097;TD(c[n>>2]|0,c[y>>2]|0)|0;if(a[(c[y>>2]|0)+24+4>>0]|0){Kd(c[(c[y>>2]|0)+24+8>>2]|0);a[(c[y>>2]|0)+24+4>>0]=0}}c[r>>2]=(c[r>>2]|0)+1}if((J|0)==36){c[F>>2]=1;M=c[z>>2]|0;c[I>>2]=c[c[B>>2]>>2];Ah(M,35614,I)}if(c[(c[x>>2]|0)+28>>2]|0)Kd(c[(c[x>>2]|0)+24>>2]|0);Sf(c[p>>2]|0,c[x>>2]|0);c[m>>2]=c[F>>2];M=c[m>>2]|0;i=K;return M|0}function PD(f,g,h){f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0;E=i;i=i+144|0;j=E+128|0;k=E+8|0;y=E+124|0;s=E+120|0;B=E+64|0;m=E+140|0;l=E+136|0;F=E+56|0;t=E+52|0;r=E+48|0;D=E+44|0;o=E+40|0;n=E+36|0;A=E+134|0;z=E+132|0;w=E+32|0;u=E+28|0;q=E+24|0;v=E+20|0;x=E+16|0;p=E;c[j>>2]=f;f=k;c[f>>2]=g;c[f+4>>2]=h;b[l>>1]=-1;c[D>>2]=0;c[o>>2]=1;c[r>>2]=c[(c[j>>2]|0)+12>>2];c[y>>2]=c[c[j>>2]>>2];c[F>>2]=c[(c[y>>2]|0)+4>>2];c[t>>2]=(c[F>>2]|0)+8+((d[(c[r>>2]|0)+16>>0]|0)*72|0);c[u>>2]=c[(c[t>>2]|0)+16>>2];c[w>>2]=c[(c[j>>2]|0)+4>>2];do if(c[(c[t>>2]|0)+68>>2]|0)c[s>>2]=c[(c[t>>2]|0)+68>>2];else{if(d[(c[u>>2]|0)+42>>0]&32){c[s>>2]=c[(c[u>>2]|0)+8>>2];break}g=B;h=g+56|0;do{c[g>>2]=0;g=g+4|0}while((g|0)<(h|0));b[B+50>>1]=1;b[B+52>>1]=1;c[B+4>>2]=l;c[B+8>>2]=m;a[B+54>>0]=5;c[B+12>>2]=c[u>>2];b[B+48>>1]=b[(c[u>>2]|0)+40>>1]|0;b[m>>1]=b[(c[u>>2]|0)+38>>1]|0;b[m+2>>1]=0;c[q>>2]=c[(c[(c[t>>2]|0)+16>>2]|0)+8>>2];if(!(a[(c[t>>2]|0)+36+1>>0]&1))c[B+20>>2]=c[q>>2];c[s>>2]=B}while(0);b[A>>1]=b[(c[u>>2]|0)+38>>1]|0;b[z>>1]=ND(b[A>>1]|0)|0;a:do if((((((((c[(c[j>>2]|0)+16>>2]|0)==0?(e[(c[y>>2]|0)+34>>1]&128|0)==0:0)?(c[(c[c[c[y>>2]>>2]>>2]|0)+24>>2]&1048576|0)!=0:0)?(c[(c[t>>2]|0)+68>>2]|0)==0:0)?(a[(c[t>>2]|0)+36+1>>0]&1|0)==0:0)?(d[(c[u>>2]|0)+42>>0]&32|0)==0:0)?((d[(c[t>>2]|0)+36+1>>0]|0)>>>3&1|0)==0:0)?((d[(c[t>>2]|0)+36+1>>0]|0)>>>5&1|0)==0:0){c[x>>2]=(c[(c[w>>2]|0)+20>>2]|0)+((c[(c[w>>2]|0)+12>>2]|0)*48|0);c[v>>2]=c[(c[w>>2]|0)+20>>2];while(1){if(c[D>>2]|0)break a;if((c[v>>2]|0)>>>0>=(c[x>>2]|0)>>>0)break a;B=(c[v>>2]|0)+32|0;F=(c[r>>2]|0)+8|0;if(!((c[B>>2]&c[F>>2]|0)!=0?1:(c[B+4>>2]&c[F+4>>2]|0)!=0)?(FD(c[v>>2]|0,c[t>>2]|0,0,0)|0)!=0:0){b[(c[r>>2]|0)+24>>1]=1;b[(c[r>>2]|0)+42>>1]=0;c[(c[r>>2]|0)+24+4>>2]=0;b[(c[r>>2]|0)+40>>1]=1;c[c[(c[r>>2]|0)+48>>2]>>2]=c[v>>2];b[(c[r>>2]|0)+18>>1]=(b[z>>1]|0)+(b[A>>1]|0)+4;if((c[(c[u>>2]|0)+12>>2]|0)==0?(d[(c[u>>2]|0)+42>>0]&2|0)==0:0){F=(c[r>>2]|0)+18|0;b[F>>1]=(b[F>>1]|0)+24}b[(c[r>>2]|0)+22>>1]=43;m=KD(b[z>>1]|0,b[(c[r>>2]|0)+22>>1]|0)|0;b[(c[r>>2]|0)+20>>1]=m;c[(c[r>>2]|0)+36>>2]=16384;m=k;q=(c[v>>2]|0)+32|0;B=c[m+4>>2]|c[q+4>>2];F=c[r>>2]|0;c[F>>2]=c[m>>2]|c[q>>2];c[F+4>>2]=B;c[D>>2]=TD(c[j>>2]|0,c[r>>2]|0)|0}c[v>>2]=(c[v>>2]|0)+48}}while(0);b:while(1){if(!((c[D>>2]|0)==0?(c[s>>2]|0)!=0:0)){g=46;break}if(!((c[(c[s>>2]|0)+36>>2]|0)!=0?(YD(c[(c[t>>2]|0)+44>>2]|0,c[w>>2]|0,c[(c[s>>2]|0)+36>>2]|0)|0)==0:0)){b[A>>1]=b[c[(c[s>>2]|0)+8>>2]>>1]|0;b[(c[r>>2]|0)+24>>1]=0;b[(c[r>>2]|0)+42>>1]=0;b[(c[r>>2]|0)+40>>1]=0;a[(c[r>>2]|0)+17>>0]=0;b[(c[r>>2]|0)+18>>1]=0;z=k;B=c[z+4>>2]|0;F=c[r>>2]|0;c[F>>2]=c[z>>2];c[F+4>>2]=B;b[(c[r>>2]|0)+22>>1]=b[A>>1]|0;c[(c[r>>2]|0)+24+4>>2]=c[s>>2];c[n>>2]=ZD(c[j>>2]|0,c[s>>2]|0,c[(c[t>>2]|0)+44>>2]|0)|0;do if((c[(c[s>>2]|0)+44>>2]|0)<=0){c[(c[r>>2]|0)+36>>2]=256;a[(c[r>>2]|0)+17>>0]=(c[n>>2]|0)!=0?c[o>>2]|0:0;b[(c[r>>2]|0)+20>>1]=(b[A>>1]|0)+16;_D(c[w>>2]|0,c[r>>2]|0,b[A>>1]|0);c[D>>2]=TD(c[j>>2]|0,c[r>>2]|0)|0;b[(c[r>>2]|0)+22>>1]=b[A>>1]|0;if(c[D>>2]|0){g=46;break b}}else{if((d[(c[s>>2]|0)+55>>0]|0)>>>5&1){c[(c[r>>2]|0)+36>>2]=576;F=p;c[F>>2]=0;c[F+4>>2]=0}else{B=(c[t>>2]|0)+56|0;x=c[B>>2]|0;B=c[B+4>>2]|0;z=$D(c[s>>2]|0)|0;F=p;c[F>>2]=x&~z;c[F+4>>2]=B&~C;F=p;c[(c[r>>2]|0)+36>>2]=(c[F>>2]|0)==0&(c[F+4>>2]|0)==0?576:512}if((c[n>>2]|0)==0?(d[(c[u>>2]|0)+42>>0]&32|0)==0:0){F=p;if(!((c[F>>2]|0)==0&(c[F+4>>2]|0)==0))break;if((d[(c[s>>2]|0)+55>>0]|0)>>>2&1)break;if((b[(c[s>>2]|0)+48>>1]|0)>=(b[(c[u>>2]|0)+40>>1]|0))break;if(!((c[6]|0)!=0?(e[(c[y>>2]|0)+34>>1]&4|0)==0:0))break;if(e[(c[c[c[y>>2]>>2]>>2]|0)+60>>1]&64)break}a[(c[r>>2]|0)+17>>0]=(c[n>>2]|0)!=0?c[o>>2]|0:0;b[(c[r>>2]|0)+20>>1]=(b[A>>1]|0)+1+(((b[(c[s>>2]|0)+48>>1]|0)*15|0)/(b[(c[u>>2]|0)+40>>1]|0)|0);F=p;if((c[F>>2]|0)!=0|(c[F+4>>2]|0)!=0){F=KD(b[(c[r>>2]|0)+20>>1]|0,(b[A>>1]|0)+16&65535)|0;b[(c[r>>2]|0)+20>>1]=F}_D(c[w>>2]|0,c[r>>2]|0,b[A>>1]|0);c[D>>2]=TD(c[j>>2]|0,c[r>>2]|0)|0;b[(c[r>>2]|0)+22>>1]=b[A>>1]|0;if(c[D>>2]|0){g=46;break b}}while(0);c[D>>2]=aE(c[j>>2]|0,c[t>>2]|0,c[s>>2]|0,0)|0;if(c[(c[t>>2]|0)+68>>2]|0){g=46;break}}c[s>>2]=c[(c[s>>2]|0)+20>>2];c[o>>2]=(c[o>>2]|0)+1}if((g|0)==46){i=E;return c[D>>2]|0}return 0}function QD(f,g,h,j,k){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;I=i;i=i+672|0;m=I+668|0;n=I+584|0;o=I+576|0;l=I+664|0;z=I+660|0;u=I+656|0;y=I+652|0;A=I+648|0;B=I+644|0;q=I+640|0;G=I+168|0;E=I+620|0;F=I+112|0;C=I+56|0;t=I+616|0;w=I+612|0;x=I+608|0;v=I+604|0;s=I+600|0;p=I+596|0;r=I+592|0;D=I;c[m>>2]=f;f=n;c[f>>2]=g;c[f+4>>2]=h;g=o;c[g>>2]=j;c[g+4>>2]=k;c[l>>2]=c[c[m>>2]>>2];c[B>>2]=0;c[z>>2]=c[(c[m>>2]|0)+4>>2];c[A>>2]=(c[(c[z>>2]|0)+20>>2]|0)+((c[(c[z>>2]|0)+12>>2]|0)*48|0);c[u>>2]=c[(c[m>>2]|0)+12>>2];g=F;h=g+56|0;do{c[g>>2]=0;g=g+4|0}while((g|0)<(h|0));c[t>>2]=(c[(c[l>>2]|0)+4>>2]|0)+8+((d[(c[u>>2]|0)+16>>0]|0)*72|0);c[q>>2]=c[(c[t>>2]|0)+44>>2];c[y>>2]=c[(c[z>>2]|0)+20>>2];while(1){if(!((c[y>>2]|0)>>>0<(c[A>>2]|0)>>>0?(c[B>>2]|0)==0:0))break;a:do if((e[(c[y>>2]|0)+18>>1]&512|0)!=0?(f=(c[(c[y>>2]|0)+12>>2]|0)+408|0,l=(c[u>>2]|0)+8|0,(c[f>>2]&c[l>>2]|0)!=0?1:(c[f+4>>2]&c[l+4>>2]|0)!=0):0){c[w>>2]=c[(c[y>>2]|0)+12>>2];c[x>>2]=(c[(c[w>>2]|0)+20>>2]|0)+((c[(c[w>>2]|0)+12>>2]|0)*48|0);c[s>>2]=1;l=c[m>>2]|0;c[E>>2]=c[l>>2];c[E+4>>2]=c[l+4>>2];c[E+8>>2]=c[l+8>>2];c[E+12>>2]=c[l+12>>2];c[E+16>>2]=c[l+16>>2];c[E+8>>2]=0;c[E+16>>2]=C;c[v>>2]=c[(c[w>>2]|0)+20>>2];b:while(1){if((c[v>>2]|0)>>>0>=(c[x>>2]|0)>>>0)break;g=c[v>>2]|0;if(!(e[(c[v>>2]|0)+18>>1]&1024)){if((c[g+8>>2]|0)==(c[q>>2]|0)){c[G>>2]=c[c[z>>2]>>2];c[G+4>>2]=c[z>>2];a[G+8>>0]=72;c[G+12>>2]=1;c[G+20>>2]=c[v>>2];c[E+4>>2]=G;H=11}}else{c[E+4>>2]=c[g+12>>2];H=11}c:do if((H|0)==11){H=0;b[C>>1]=0;h=n;g=c[h>>2]|0;h=c[h+4>>2]|0;if(d[(c[(c[t>>2]|0)+16>>2]|0)+42>>0]&16){l=o;c[B>>2]=OD(E,g,h,c[l>>2]|0,c[l+4>>2]|0)|0}else c[B>>2]=PD(E,g,h)|0;if(!(c[B>>2]|0)){f=n;l=o;c[B>>2]=QD(E,c[f>>2]|0,c[f+4>>2]|0,c[l>>2]|0,c[l+4>>2]|0)|0}if(!(e[C>>1]|0)){H=17;break b}if(c[s>>2]|0){RD(F,C);c[s>>2]=0;break}RD(D,F);b[F>>1]=0;c[p>>2]=0;while(1){if((c[p>>2]|0)>=(e[D>>1]|0))break c;c[r>>2]=0;while(1){g=c[p>>2]|0;if((c[r>>2]|0)>=(e[C>>1]|0))break;l=D+8+(g<<4)|0;f=C+8+(c[r>>2]<<4)|0;k=c[l>>2]|c[f>>2];f=c[l+4>>2]|c[f+4>>2];l=KD(b[D+8+(c[p>>2]<<4)+8>>1]|0,b[C+8+(c[r>>2]<<4)+8>>1]|0)|0;SD(F,k,f,l,KD(b[D+8+(c[p>>2]<<4)+10>>1]|0,b[C+8+(c[r>>2]<<4)+10>>1]|0)|0)|0;c[r>>2]=(c[r>>2]|0)+1}c[p>>2]=g+1}}while(0);c[v>>2]=(c[v>>2]|0)+48}if((H|0)==17){H=0;b[F>>1]=0}b[(c[u>>2]|0)+40>>1]=1;c[c[(c[u>>2]|0)+48>>2]>>2]=c[y>>2];c[(c[u>>2]|0)+36>>2]=8192;b[(c[u>>2]|0)+18>>1]=0;a[(c[u>>2]|0)+17>>0]=0;l=(c[u>>2]|0)+24|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[p>>2]=0;while(1){if(c[B>>2]|0)break a;if((c[p>>2]|0)>=(e[F>>1]|0))break a;b[(c[u>>2]|0)+20>>1]=(b[F+8+(c[p>>2]<<4)+8>>1]|0)+1;b[(c[u>>2]|0)+22>>1]=b[F+8+(c[p>>2]<<4)+10>>1]|0;
  88. k=F+8+(c[p>>2]<<4)|0;f=c[k+4>>2]|0;l=c[u>>2]|0;c[l>>2]=c[k>>2];c[l+4>>2]=f;c[B>>2]=TD(c[m>>2]|0,c[u>>2]|0)|0;c[p>>2]=(c[p>>2]|0)+1}}while(0);c[y>>2]=(c[y>>2]|0)+48}i=I;return c[B>>2]|0}function RD(a,d){a=a|0;d=d|0;var f=0,g=0,h=0;f=i;i=i+16|0;g=f+4|0;h=f;c[g>>2]=a;c[h>>2]=d;b[c[g>>2]>>1]=b[c[h>>2]>>1]|0;iR((c[g>>2]|0)+8|0,(c[h>>2]|0)+8|0,(e[c[g>>2]>>1]|0)<<4|0)|0;i=f;return}function SD(a,d,f,g,h){a=a|0;d=d|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=i;i=i+32|0;k=r+16|0;l=r+12|0;m=r;n=r+24|0;o=r+22|0;p=r+20|0;q=r+8|0;c[l>>2]=a;a=m;c[a>>2]=d;c[a+4>>2]=f;b[n>>1]=g;b[o>>1]=h;b[p>>1]=b[c[l>>2]>>1]|0;c[q>>2]=(c[l>>2]|0)+8;while(1){if((e[p>>1]|0)<=0){j=9;break}if((b[n>>1]|0)<=(b[(c[q>>2]|0)+8>>1]|0)?(h=m,a=c[q>>2]|0,g=m,(c[h>>2]&c[a>>2]|0)==(c[g>>2]|0)?(c[h+4>>2]&c[a+4>>2]|0)==(c[g+4>>2]|0):0):0)break;if((b[(c[q>>2]|0)+8>>1]|0)<=(b[n>>1]|0)?(h=c[q>>2]|0,a=m,g=c[q>>2]|0,(c[h>>2]&c[a>>2]|0)==(c[g>>2]|0)?(c[h+4>>2]&c[a+4>>2]|0)==(c[g+4>>2]|0):0):0){j=7;break}b[p>>1]=(b[p>>1]|0)+-1<<16>>16;c[q>>2]=(c[q>>2]|0)+16}if((j|0)==7){c[k>>2]=0;q=c[k>>2]|0;i=r;return q|0}do if((j|0)==9){d=c[l>>2]|0;if((e[c[l>>2]>>1]|0)<3){p=b[d>>1]|0;b[d>>1]=p+1<<16>>16;c[q>>2]=(c[l>>2]|0)+8+((p&65535)<<4);b[(c[q>>2]|0)+10>>1]=b[o>>1]|0;break}c[q>>2]=d+8;b[p>>1]=1;while(1){d=b[(c[q>>2]|0)+8>>1]|0;if((e[p>>1]|0)>=(e[c[l>>2]>>1]|0))break;if((d|0)>(b[(c[l>>2]|0)+8+(e[p>>1]<<4)+8>>1]|0))c[q>>2]=(c[l>>2]|0)+8+(e[p>>1]<<4);b[p>>1]=(b[p>>1]|0)+1<<16>>16}if((d|0)<=(b[n>>1]|0)){c[k>>2]=0;q=c[k>>2]|0;i=r;return q|0}}while(0);l=m;m=c[l+4>>2]|0;p=c[q>>2]|0;c[p>>2]=c[l>>2];c[p+4>>2]=m;b[(c[q>>2]|0)+8>>1]=b[n>>1]|0;if((b[(c[q>>2]|0)+10>>1]|0)>(b[o>>1]|0))b[(c[q>>2]|0)+10>>1]=b[o>>1]|0;c[k>>2]=1;q=c[k>>2]|0;i=r;return q|0}function TD(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+48|0;e=p+36|0;f=p+32|0;g=p+28|0;n=p+24|0;j=p+20|0;m=p+16|0;h=p+12|0;o=p+8|0;l=p+4|0;k=p;c[f>>2]=a;c[g>>2]=d;c[m>>2]=c[c[f>>2]>>2];c[h>>2]=c[c[c[m>>2]>>2]>>2];if(c[(c[f>>2]|0)+16>>2]|0){if(b[(c[g>>2]|0)+40>>1]|0){o=c[g>>2]|0;SD(c[(c[f>>2]|0)+16>>2]|0,c[o>>2]|0,c[o+4>>2]|0,b[(c[g>>2]|0)+20>>1]|0,b[(c[g>>2]|0)+22>>1]|0)|0}c[e>>2]=0;o=c[e>>2]|0;i=p;return o|0}UD(c[(c[m>>2]|0)+16>>2]|0,c[g>>2]|0);c[n>>2]=VD((c[m>>2]|0)+16|0,c[g>>2]|0)|0;if(!(c[n>>2]|0)){c[e>>2]=0;o=c[e>>2]|0;i=p;return o|0}c[j>>2]=c[c[n>>2]>>2];a:do if(!(c[j>>2]|0)){o=Fw(c[h>>2]|0,72,0)|0;c[j>>2]=o;c[c[n>>2]>>2]=o;if(c[j>>2]|0){ZC(c[j>>2]|0);c[(c[j>>2]|0)+52>>2]=0;break}c[e>>2]=7;o=c[e>>2]|0;i=p;return o|0}else{c[o>>2]=(c[j>>2]|0)+52;while(1){if(!(c[c[o>>2]>>2]|0))break a;c[o>>2]=VD(c[o>>2]|0,c[g>>2]|0)|0;if(!(c[o>>2]|0))break a;c[l>>2]=c[c[o>>2]>>2];if(!(c[l>>2]|0))break a;c[c[o>>2]>>2]=c[(c[l>>2]|0)+52>>2];WC(c[h>>2]|0,c[l>>2]|0)}}while(0);WD(c[h>>2]|0,c[j>>2]|0,c[g>>2]|0)|0;if(((c[(c[j>>2]|0)+36>>2]&1024|0)==0?(c[k>>2]=c[(c[j>>2]|0)+24+4>>2],(c[k>>2]|0)!=0):0)?(c[(c[k>>2]|0)+44>>2]|0)==0:0)c[(c[j>>2]|0)+24+4>>2]=0;c[e>>2]=0;o=c[e>>2]|0;i=p;return o|0}function UD(a,e){a=a|0;e=e|0;var f=0,g=0,h=0;h=i;i=i+16|0;f=h+4|0;g=h;c[f>>2]=a;c[g>>2]=e;if(!((c[f>>2]|0)!=0?(c[(c[g>>2]|0)+36>>2]&512|0)!=0:0)){i=h;return}do{do if((d[(c[f>>2]|0)+16>>0]|0)==(d[(c[g>>2]|0)+16>>0]|0)?(c[(c[f>>2]|0)+36>>2]&512|0)!=0:0){if(XD(c[f>>2]|0,c[g>>2]|0)|0){b[(c[g>>2]|0)+20>>1]=b[(c[f>>2]|0)+20>>1]|0;b[(c[g>>2]|0)+22>>1]=(b[(c[f>>2]|0)+22>>1]|0)-1;break}if(XD(c[g>>2]|0,c[f>>2]|0)|0){b[(c[g>>2]|0)+20>>1]=b[(c[f>>2]|0)+20>>1]|0;b[(c[g>>2]|0)+22>>1]=(b[(c[f>>2]|0)+22>>1]|0)+1}}while(0);c[f>>2]=c[(c[f>>2]|0)+52>>2]}while((c[f>>2]|0)!=0);i=h;return}function VD(a,f){a=a|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;l=i;i=i+16|0;j=l+12|0;k=l+8|0;g=l+4|0;h=l;c[k>>2]=a;c[g>>2]=f;c[h>>2]=c[c[k>>2]>>2];while(1){if(!(c[h>>2]|0)){g=19;break}if((d[(c[h>>2]|0)+16>>0]|0)==(d[(c[g>>2]|0)+16>>0]|0)?(d[(c[h>>2]|0)+17>>0]|0)==(d[(c[g>>2]|0)+17>>0]|0):0){if(((((c[(c[h>>2]|0)+36>>2]&16384|0)!=0?(e[(c[g>>2]|0)+42>>1]|0)==0:0)?(c[(c[g>>2]|0)+36>>2]&512|0)!=0:0)?(c[(c[g>>2]|0)+36>>2]&1|0)!=0:0)?(m=c[h>>2]|0,f=c[g>>2]|0,a=c[g>>2]|0,(c[m>>2]&c[f>>2]|0)==(c[a>>2]|0)?(c[m+4>>2]&c[f+4>>2]|0)==(c[a+4>>2]|0):0):0){g=19;break}f=c[h>>2]|0;a=c[g>>2]|0;m=c[h>>2]|0;if(((((c[f>>2]&c[a>>2]|0)==(c[m>>2]|0)?(c[f+4>>2]&c[a+4>>2]|0)==(c[m+4>>2]|0):0)?(b[(c[h>>2]|0)+18>>1]|0)<=(b[(c[g>>2]|0)+18>>1]|0):0)?(b[(c[h>>2]|0)+20>>1]|0)<=(b[(c[g>>2]|0)+20>>1]|0):0)?(b[(c[h>>2]|0)+22>>1]|0)<=(b[(c[g>>2]|0)+22>>1]|0):0){g=14;break}f=c[h>>2]|0;a=c[g>>2]|0;m=c[g>>2]|0;if((((c[f>>2]&c[a>>2]|0)==(c[m>>2]|0)?(c[f+4>>2]&c[a+4>>2]|0)==(c[m+4>>2]|0):0)?(b[(c[h>>2]|0)+20>>1]|0)>=(b[(c[g>>2]|0)+20>>1]|0):0)?(b[(c[h>>2]|0)+22>>1]|0)>=(b[(c[g>>2]|0)+22>>1]|0):0){g=19;break}}c[k>>2]=(c[h>>2]|0)+52;c[h>>2]=c[c[k>>2]>>2]}if((g|0)==14){c[j>>2]=0;m=c[j>>2]|0;i=l;return m|0}else if((g|0)==19){c[j>>2]=c[k>>2];m=c[j>>2]|0;i=l;return m|0}return 0}function WD(b,d,f){b=b|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;k=i;i=i+16|0;h=k+12|0;l=k+8|0;g=k+4|0;j=k;c[l>>2]=b;c[g>>2]=d;c[j>>2]=f;YC(c[l>>2]|0,c[g>>2]|0);d=(GD(c[l>>2]|0,c[g>>2]|0,e[(c[j>>2]|0)+40>>1]|0)|0)!=0;b=c[g>>2]|0;if(d){l=b+24|0;c[l>>2]=0;c[l+4>>2]=0;c[l+8>>2]=0;c[h>>2]=7;l=c[h>>2]|0;i=k;return l|0}f=c[j>>2]|0;d=b+44|0;do{c[b>>2]=c[f>>2];b=b+4|0;f=f+4|0}while((b|0)<(d|0));iR(c[(c[g>>2]|0)+48>>2]|0,c[(c[j>>2]|0)+48>>2]|0,(e[(c[g>>2]|0)+40>>1]|0)<<2|0)|0;b=c[j>>2]|0;if(!(c[(c[j>>2]|0)+36>>2]&1024)){if(c[b+36>>2]&16384)c[(c[j>>2]|0)+24+4>>2]=0}else a[b+24+4>>0]=0;c[h>>2]=0;l=c[h>>2]|0;i=k;return l|0}function XD(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;k=l+16|0;f=l+12|0;g=l+8|0;h=l+4|0;j=l;c[f>>2]=a;c[g>>2]=d;if(((e[(c[f>>2]|0)+40>>1]|0)-(e[(c[f>>2]|0)+42>>1]|0)|0)>=((e[(c[g>>2]|0)+40>>1]|0)-(e[(c[g>>2]|0)+42>>1]|0)|0)){c[k>>2]=0;k=c[k>>2]|0;i=l;return k|0}if((e[(c[g>>2]|0)+42>>1]|0)>(e[(c[f>>2]|0)+42>>1]|0)){c[k>>2]=0;k=c[k>>2]|0;i=l;return k|0}if((b[(c[f>>2]|0)+20>>1]|0)>=(b[(c[g>>2]|0)+20>>1]|0)){if((b[(c[f>>2]|0)+20>>1]|0)>(b[(c[g>>2]|0)+20>>1]|0)){c[k>>2]=0;k=c[k>>2]|0;i=l;return k|0}if((b[(c[f>>2]|0)+22>>1]|0)>(b[(c[g>>2]|0)+22>>1]|0)){c[k>>2]=0;k=c[k>>2]|0;i=l;return k|0}}c[h>>2]=(e[(c[f>>2]|0)+40>>1]|0)-1;while(1){if((c[h>>2]|0)<0){f=20;break}if(c[(c[(c[f>>2]|0)+48>>2]|0)+(c[h>>2]<<2)>>2]|0){c[j>>2]=(e[(c[g>>2]|0)+40>>1]|0)-1;while(1){if((c[j>>2]|0)<0)break;if((c[(c[(c[g>>2]|0)+48>>2]|0)+(c[j>>2]<<2)>>2]|0)==(c[(c[(c[f>>2]|0)+48>>2]|0)+(c[h>>2]<<2)>>2]|0))break;c[j>>2]=(c[j>>2]|0)+-1}if((c[j>>2]|0)<0){f=18;break}}c[h>>2]=(c[h>>2]|0)+-1}if((f|0)==18){c[k>>2]=0;k=c[k>>2]|0;i=l;return k|0}else if((f|0)==20){c[k>>2]=1;k=c[k>>2]|0;i=l;return k|0}return 0}function YD(a,e,f){a=a|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;g=p+24|0;h=p+20|0;j=p+16|0;k=p+12|0;l=p+8|0;n=p+4|0;m=p;c[h>>2]=a;c[j>>2]=e;c[k>>2]=f;while(1){if((d[c[k>>2]>>0]|0)!=72)break;if(!(YD(c[h>>2]|0,c[j>>2]|0,c[(c[k>>2]|0)+12>>2]|0)|0)){o=4;break}c[k>>2]=c[(c[k>>2]|0)+16>>2]}if((o|0)==4){c[g>>2]=0;o=c[g>>2]|0;i=p;return o|0}c[l>>2]=0;c[n>>2]=c[(c[j>>2]|0)+20>>2];while(1){if((c[l>>2]|0)>=(c[(c[j>>2]|0)+12>>2]|0)){o=13;break}c[m>>2]=c[c[n>>2]>>2];if(eE(c[m>>2]|0,c[k>>2]|0,c[h>>2]|0)|0){if(!(c[(c[m>>2]|0)+4>>2]&1)){o=11;break}if((b[(c[m>>2]|0)+36>>1]|0)==(c[h>>2]|0)){o=11;break}}c[l>>2]=(c[l>>2]|0)+1;c[n>>2]=(c[n>>2]|0)+48}if((o|0)==11){c[g>>2]=1;o=c[g>>2]|0;i=p;return o|0}else if((o|0)==13){c[g>>2]=0;o=c[g>>2]|0;i=p;return o|0}return 0}function ZD(a,f,g){a=a|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+48|0;h=s+32|0;j=s+28|0;k=s+24|0;l=s+20|0;q=s+16|0;m=s+12|0;n=s+8|0;o=s+4|0;p=s;c[j>>2]=a;c[k>>2]=f;c[l>>2]=g;if((d[(c[k>>2]|0)+55>>0]|0)>>>2&1){c[h>>2]=0;r=c[h>>2]|0;i=s;return r|0}f=c[(c[c[j>>2]>>2]|0)+8>>2]|0;c[q>>2]=f;if(!f){c[h>>2]=0;r=c[h>>2]|0;i=s;return r|0}c[n>>2]=0;a:while(1){if((c[n>>2]|0)>=(c[c[q>>2]>>2]|0)){r=24;break}c[p>>2]=Tx(c[(c[(c[q>>2]|0)+4>>2]|0)+((c[n>>2]|0)*20|0)>>2]|0)|0;b:do if((d[c[p>>2]>>0]|0)==152?(c[(c[p>>2]|0)+28>>2]|0)==(c[l>>2]|0):0){if((b[(c[p>>2]|0)+32>>1]|0)<0){r=10;break a}c[o>>2]=0;while(1){if((c[o>>2]|0)>=(e[(c[k>>2]|0)+50>>1]|0))break b;if((b[(c[p>>2]|0)+32>>1]|0)==(b[(c[(c[k>>2]|0)+4>>2]|0)+(c[o>>2]<<1)>>1]|0)){r=14;break a}c[o>>2]=(c[o>>2]|0)+1}}else r=16;while(0);c:do if((r|0)==16?(r=0,f=c[(c[k>>2]|0)+40>>2]|0,c[m>>2]=f,(f|0)!=0):0){c[o>>2]=0;while(1){if((c[o>>2]|0)>=(e[(c[k>>2]|0)+50>>1]|0))break c;if((b[(c[(c[k>>2]|0)+4>>2]|0)+(c[o>>2]<<1)>>1]|0)==-2?(py(c[p>>2]|0,c[(c[(c[m>>2]|0)+4>>2]|0)+((c[o>>2]|0)*20|0)>>2]|0,c[l>>2]|0)|0)==0:0){r=21;break a}c[o>>2]=(c[o>>2]|0)+1}}while(0);c[n>>2]=(c[n>>2]|0)+1}if((r|0)==10){c[h>>2]=1;r=c[h>>2]|0;i=s;return r|0}else if((r|0)==14){c[h>>2]=1;r=c[h>>2]|0;i=s;return r|0}else if((r|0)==21){c[h>>2]=1;r=c[h>>2]|0;i=s;return r|0}else if((r|0)==24){c[h>>2]=0;r=c[h>>2]|0;i=s;return r|0}return 0}function _D(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=i;i=i+48|0;g=s+36|0;h=s+32|0;j=s+42|0;q=s+28|0;r=s+24|0;o=s;k=s+20|0;m=s+16|0;n=s+12|0;l=s+40|0;p=s+8|0;c[g>>2]=a;c[h>>2]=d;b[j>>1]=f;t=c[h>>2]|0;f=(c[h>>2]|0)+8|0;d=~(c[t+4>>2]|c[f+4>>2]);a=o;c[a>>2]=~(c[t>>2]|c[f>>2]);c[a+4>>2]=d;b[l>>1]=0;c[k>>2]=c[(c[g>>2]|0)+12>>2];c[q>>2]=c[(c[g>>2]|0)+20>>2];while(1){if((c[k>>2]|0)<=0)break;if(e[(c[q>>2]|0)+20>>1]&2)break;a=(c[q>>2]|0)+40|0;t=(c[h>>2]|0)+8|0;do if(!((c[a>>2]&c[t>>2]|0)==0?(c[a+4>>2]&c[t+4>>2]|0)==0:0)?(a=(c[q>>2]|0)+40|0,t=o,!((c[a>>2]&c[t>>2]|0)!=0?1:(c[a+4>>2]&c[t+4>>2]|0)!=0)):0){c[m>>2]=(e[(c[h>>2]|0)+40>>1]|0)-1;while(1){if((c[m>>2]|0)<0)break;c[r>>2]=c[(c[(c[h>>2]|0)+48>>2]|0)+(c[m>>2]<<2)>>2];if(c[r>>2]|0){if((c[r>>2]|0)==(c[q>>2]|0))break;if((c[(c[r>>2]|0)+4>>2]|0)>=0?((c[(c[g>>2]|0)+20>>2]|0)+((c[(c[r>>2]|0)+4>>2]|0)*48|0)|0)==(c[q>>2]|0):0)break}c[m>>2]=(c[m>>2]|0)+-1}if((c[m>>2]|0)<0){if((b[(c[q>>2]|0)+16>>1]|0)<=0){t=(c[h>>2]|0)+22|0;b[t>>1]=(b[t>>1]|0)+(b[(c[q>>2]|0)+16>>1]|0);break}t=(c[h>>2]|0)+22|0;b[t>>1]=(b[t>>1]|0)+-1<<16>>16;if(e[(c[q>>2]|0)+18>>1]&130){c[p>>2]=c[(c[c[q>>2]>>2]|0)+16>>2];t=(ky(c[p>>2]|0,n)|0)!=0;if(t&(c[n>>2]|0)>=-1&(c[n>>2]|0)<=1)c[n>>2]=10;else c[n>>2]=20;if((b[l>>1]|0)<(c[n>>2]|0))b[l>>1]=c[n>>2]}}}while(0);c[k>>2]=(c[k>>2]|0)+-1;c[q>>2]=(c[q>>2]|0)+48}if((b[(c[h>>2]|0)+22>>1]|0)<=((b[j>>1]|0)-(b[l>>1]|0)|0)){i=s;return}b[(c[h>>2]|0)+22>>1]=(b[j>>1]|0)-(b[l>>1]|0);i=s;return}function $D(a){a=a|0;var d=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;j=i;i=i+32|0;d=j+16|0;g=j;f=j+12|0;h=j+8|0;c[d>>2]=a;a=g;c[a>>2]=0;c[a+4>>2]=0;c[f>>2]=(e[(c[d>>2]|0)+52>>1]|0)-1;while(1){if((c[f>>2]|0)<0)break;c[h>>2]=b[(c[(c[d>>2]|0)+4>>2]|0)+(c[f>>2]<<1)>>1];if((c[h>>2]|0)>=0&(c[h>>2]|0)<63){l=lR(1,0,c[h>>2]|0)|0;m=g;k=c[m+4>>2]|C;a=g;c[a>>2]=c[m>>2]|l;c[a+4>>2]=k}c[f>>2]=(c[f>>2]|0)+-1}m=g;C=c[m+4>>2]|0;i=j;return c[m>>2]|0}function aE(f,g,h,j){f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0;O=i;i=i+208|0;l=O+172|0;m=O+168|0;n=O+164|0;o=O+160|0;p=O+196|0;P=O+156|0;A=O+152|0;q=O+148|0;z=O+144|0;B=O+140|0;k=O+136|0;N=O+40|0;L=O;I=O+194|0;H=O+192|0;K=O+190|0;M=O+36|0;J=O+188|0;G=O+32|0;F=O+186|0;E=O+184|0;C=O+28|0;x=O+24|0;r=O+182|0;D=O+180|0;w=O+178|0;u=O+20|0;y=O+16|0;s=O+12|0;t=O+8|0;v=O+176|0;c[m>>2]=f;c[n>>2]=g;c[o>>2]=h;b[p>>1]=j;c[P>>2]=c[c[m>>2]>>2];c[A>>2]=c[c[P>>2]>>2];c[q>>2]=c[c[A>>2]>>2];c[G>>2]=0;c[C>>2]=0;c[x>>2]=0;c[z>>2]=c[(c[m>>2]|0)+12>>2];if(a[(c[q>>2]|0)+65>>0]|0){c[l>>2]=7;P=c[l>>2]|0;i=O;return P|0}do if(!(c[(c[z>>2]|0)+36>>2]&32))if(d[(c[n>>2]|0)+36>>0]&8){c[k>>2]=63;break}else{c[k>>2]=447;break}else c[k>>2]=24;while(0);if((d[(c[o>>2]|0)+55>>0]|0)>>>2&1)c[k>>2]=c[k>>2]&-61;b[H>>1]=b[(c[z>>2]|0)+24>>1]|0;b[K>>1]=b[(c[z>>2]|0)+42>>1]|0;b[I>>1]=b[(c[z>>2]|0)+40>>1]|0;c[M>>2]=c[(c[z>>2]|0)+36>>2];h=c[z>>2]|0;g=c[h+4>>2]|0;P=L;c[P>>2]=c[h>>2];c[P+4>>2]=g;b[J>>1]=b[(c[z>>2]|0)+22>>1]|0;c[B>>2]=yD(N,c[(c[m>>2]|0)+4>>2]|0,c[(c[n>>2]|0)+44>>2]|0,e[H>>1]|0,c[k>>2]|0,c[o>>2]|0)|0;b[(c[z>>2]|0)+18>>1]=0;b[F>>1]=b[c[(c[o>>2]|0)+8>>2]>>1]|0;b[E>>1]=ND(b[F>>1]|0)|0;a:while(1){if(!((c[G>>2]|0)==0?(c[B>>2]|0)!=0:0))break;b[r>>1]=b[(c[B>>2]|0)+18>>1]|0;c[u>>2]=0;if((e[r>>1]|0)!=256?(e[(c[B>>2]|0)+20>>1]&0|0)==0:0)j=15;else j=14;if((j|0)==14?(j=0,(bE(c[o>>2]|0,e[H>>1]|0)|0)==0):0)j=15;do if((j|0)==15?(0,g=(c[B>>2]|0)+32|0,P=(c[z>>2]|0)+8|0,!((c[g>>2]&c[P>>2]|0)!=0?1:(c[g+4>>2]&c[P+4>>2]|0)!=0)):0){if((e[(c[B>>2]|0)+20>>1]&256|0)!=0?(e[(c[B>>2]|0)+18>>1]|0)==16:0)break;c[(c[z>>2]|0)+36>>2]=c[M>>2];b[(c[z>>2]|0)+24>>1]=b[H>>1]|0;b[(c[z>>2]|0)+40>>1]=b[I>>1]|0;if(GD(c[q>>2]|0,c[z>>2]|0,(e[(c[z>>2]|0)+40>>1]|0)+1|0)|0)break a;f=c[B>>2]|0;h=(c[z>>2]|0)+40|0;k=b[h>>1]|0;b[h>>1]=k+1<<16>>16;c[(c[(c[z>>2]|0)+48>>2]|0)+((k&65535)<<2)>>2]=f;k=L;f=(c[B>>2]|0)+32|0;h=(c[z>>2]|0)+8|0;g=(c[k+4>>2]|c[f+4>>2])&~c[h+4>>2];P=c[z>>2]|0;c[P>>2]=(c[k>>2]|c[f>>2])&~c[h>>2];c[P+4>>2]=g;do if(e[r>>1]&1){c[y>>2]=c[c[B>>2]>>2];P=(c[z>>2]|0)+36|0;c[P>>2]=c[P>>2]|4;if(c[(c[y>>2]|0)+4>>2]&2048){c[u>>2]=46;break}if((c[(c[y>>2]|0)+20>>2]|0)!=0?(c[c[(c[y>>2]|0)+20>>2]>>2]|0)!=0:0){P=c[c[(c[y>>2]|0)+20>>2]>>2]|0;c[u>>2]=(Hj(P,((P|0)<0)<<31>>31)|0)<<16>>16}}else{if(e[r>>1]&130){c[s>>2]=b[(c[(c[o>>2]|0)+4>>2]|0)+(e[H>>1]<<1)>>1];P=(c[z>>2]|0)+36|0;c[P>>2]=c[P>>2]|1;if((c[s>>2]|0)!=-1){if((c[s>>2]|0)<=0)break;if(b[p>>1]|0)break;if((e[H>>1]|0)!=((e[(c[o>>2]|0)+50>>1]|0)-1|0))break}if((c[s>>2]|0)>=0?((d[(c[o>>2]|0)+55>>0]|0)>>>3&1|0)==0:0){P=(c[z>>2]|0)+36|0;c[P>>2]=c[P>>2]|65536;break}P=(c[z>>2]|0)+36|0;c[P>>2]=c[P>>2]|4096;break}if(e[r>>1]&256){P=(c[z>>2]|0)+36|0;c[P>>2]=c[P>>2]|8;break}j=(c[z>>2]|0)+36|0;k=c[j>>2]|0;if(e[r>>1]&36){c[j>>2]=k|34;c[x>>2]=c[B>>2];c[C>>2]=0;if(!(e[(c[B>>2]|0)+20>>1]&256))break;c[C>>2]=(c[B>>2]|0)+48;if(GD(c[q>>2]|0,c[z>>2]|0,(e[(c[z>>2]|0)+40>>1]|0)+1|0)|0)break a;g=c[C>>2]|0;h=(c[z>>2]|0)+40|0;P=b[h>>1]|0;b[h>>1]=P+1<<16>>16;c[(c[(c[z>>2]|0)+48>>2]|0)+((P&65535)<<2)>>2]=g;P=(c[z>>2]|0)+36|0;c[P>>2]=c[P>>2]|16;break}else{c[j>>2]=k|18;c[C>>2]=c[B>>2];if(c[(c[z>>2]|0)+36>>2]&32)j=c[(c[(c[z>>2]|0)+48>>2]|0)+((e[(c[z>>2]|0)+40>>1]|0)-2<<2)>>2]|0;else j=0;c[x>>2]=j;break}}while(0);do if(!(c[(c[z>>2]|0)+36>>2]&2)){g=(c[z>>2]|0)+24|0;P=(b[g>>1]|0)+1<<16>>16;b[g>>1]=P;c[t>>2]=P&65535;if((b[(c[B>>2]|0)+16>>1]|0)<=0?(b[(c[(c[o>>2]|0)+4>>2]|0)+(e[H>>1]<<1)>>1]|0)>=0:0){P=(c[z>>2]|0)+22|0;b[P>>1]=(b[P>>1]|0)+(b[(c[B>>2]|0)+16>>1]|0);P=(c[z>>2]|0)+22|0;b[P>>1]=(b[P>>1]|0)-(c[u>>2]|0);break}P=(c[z>>2]|0)+22|0;b[P>>1]=(b[P>>1]|0)+((b[(c[(c[o>>2]|0)+8>>2]|0)+(c[t>>2]<<1)>>1]|0)-(b[(c[(c[o>>2]|0)+8>>2]|0)+((c[t>>2]|0)-1<<1)>>1]|0));if(e[r>>1]&256){P=(c[z>>2]|0)+22|0;b[P>>1]=(b[P>>1]|0)+10}}else cE(c[A>>2]|0,c[m>>2]|0,c[x>>2]|0,c[C>>2]|0,c[z>>2]|0)|0;while(0);b[D>>1]=(b[(c[z>>2]|0)+22>>1]|0)+1+(((b[(c[o>>2]|0)+48>>1]|0)*15|0)/(b[(c[(c[n>>2]|0)+16>>2]|0)+40>>1]|0)|0);P=KD(b[E>>1]|0,b[D>>1]|0)|0;b[(c[z>>2]|0)+20>>1]=P;if(!(c[(c[z>>2]|0)+36>>2]&320)){P=KD(b[(c[z>>2]|0)+20>>1]|0,(b[(c[z>>2]|0)+22>>1]|0)+16&65535)|0;b[(c[z>>2]|0)+20>>1]=P}b[w>>1]=b[(c[z>>2]|0)+22>>1]|0;P=(c[z>>2]|0)+20|0;b[P>>1]=(b[P>>1]|0)+((b[p>>1]|0)+(c[u>>2]|0));P=(c[z>>2]|0)+22|0;b[P>>1]=(b[P>>1]|0)+((b[p>>1]|0)+(c[u>>2]|0));_D(c[(c[m>>2]|0)+4>>2]|0,c[z>>2]|0,b[F>>1]|0);c[G>>2]=TD(c[m>>2]|0,c[z>>2]|0)|0;if(c[(c[z>>2]|0)+36>>2]&2)b[(c[z>>2]|0)+22>>1]=b[J>>1]|0;else b[(c[z>>2]|0)+22>>1]=b[w>>1]|0;if((c[(c[z>>2]|0)+36>>2]&16|0)==0?(e[(c[z>>2]|0)+24>>1]|0)<(e[(c[o>>2]|0)+52>>1]|0):0)aE(c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,(b[p>>1]|0)+(c[u>>2]|0)&65535)|0;b[(c[z>>2]|0)+22>>1]=b[J>>1]|0}while(0);c[B>>2]=zD(N)|0}N=c[L+4>>2]|0;P=c[z>>2]|0;c[P>>2]=c[L>>2];c[P+4>>2]=N;b[(c[z>>2]|0)+24>>1]=b[H>>1]|0;b[(c[z>>2]|0)+42>>1]=b[K>>1]|0;c[(c[z>>2]|0)+36>>2]=c[M>>2];b[(c[z>>2]|0)+22>>1]=b[J>>1]|0;b[(c[z>>2]|0)+40>>1]=b[I>>1]|0;if(((((e[H>>1]|0)==(e[K>>1]|0)?((e[H>>1]|0)+1|0)<(e[(c[o>>2]|0)+50>>1]|0):0)?((d[(c[o>>2]|0)+55>>0]|0)>>>6&1|0)==0:0)?(b[(c[(c[o>>2]|0)+8>>2]|0)+((e[H>>1]|0)+1<<1)>>1]|0)>=42:0)?(P=GD(c[q>>2]|0,c[z>>2]|0,(e[(c[z>>2]|0)+40>>1]|0)+1|0)|0,c[G>>2]=P,(P|0)==0):0){N=(c[z>>2]|0)+24|0;b[N>>1]=(b[N>>1]|0)+1<<16>>16;N=(c[z>>2]|0)+42|0;b[N>>1]=(b[N>>1]|0)+1<<16>>16;N=(c[z>>2]|0)+40|0;P=b[N>>1]|0;b[N>>1]=P+1<<16>>16;c[(c[(c[z>>2]|0)+48>>2]|0)+((P&65535)<<2)>>2]=0;P=(c[z>>2]|0)+36|0;c[P>>2]=c[P>>2]|32768;b[v>>1]=(b[(c[(c[o>>2]|0)+8>>2]|0)+(e[H>>1]<<1)>>1]|0)-(b[(c[(c[o>>2]|0)+8>>2]|0)+((e[H>>1]|0)+1<<1)>>1]|0);P=(c[z>>2]|0)+22|0;b[P>>1]=(b[P>>1]|0)-(b[v>>1]|0);b[v>>1]=(b[v>>1]|0)+5;aE(c[m>>2]|0,c[n>>2]|0,c[o>>2]|0,(b[v>>1]|0)+(b[p>>1]|0)&65535)|0;b[(c[z>>2]|0)+22>>1]=b[J>>1]|0;b[(c[z>>2]|0)+24>>1]=b[H>>1]|0;b[(c[z>>2]|0)+42>>1]=b[K>>1]|0;c[(c[z>>2]|0)+36>>2]=c[M>>2]}c[l>>2]=c[G>>2];P=c[l>>2]|0;i=O;return P|0}function bE(a,e){a=a|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;h=i;i=i+16|0;f=h+12|0;g=h+8|0;k=h+4|0;j=h;c[g>>2]=a;c[k>>2]=e;c[j>>2]=b[(c[(c[g>>2]|0)+4>>2]|0)+(c[k>>2]<<1)>>1];e=c[j>>2]|0;if((c[j>>2]|0)>=0){c[f>>2]=d[(c[(c[(c[g>>2]|0)+12>>2]|0)+4>>2]|0)+(e*24|0)+20>>0];k=c[f>>2]|0;i=h;return k|0}if((e|0)==-1){c[f>>2]=1;k=c[f>>2]|0;i=h;return k|0}else{c[f>>2]=0;k=c[f>>2]|0;i=h;return k|0}return 0}function cE(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;h=o+16|0;j=o+12|0;k=o+8|0;n=o+4|0;m=o;l=o+28|0;c[o+24>>2]=a;c[o+20>>2]=d;c[h>>2]=e;c[j>>2]=f;c[k>>2]=g;c[n>>2]=0;c[m>>2]=b[(c[k>>2]|0)+22>>1];b[l>>1]=dE(c[h>>2]|0,c[m>>2]&65535)|0;b[l>>1]=dE(c[j>>2]|0,b[l>>1]|0)|0;if(((c[h>>2]|0)!=0?(c[j>>2]|0)!=0?(b[(c[h>>2]|0)+16>>1]|0)>0:0:0)?(b[(c[j>>2]|0)+16>>1]|0)>0:0)b[l>>1]=(b[l>>1]|0)-20;c[m>>2]=(c[m>>2]|0)-(((c[h>>2]|0)!=0&1)+((c[j>>2]|0)!=0&1));if((b[l>>1]|0)<10)b[l>>1]=10;if((b[l>>1]|0)>=(c[m>>2]|0)){a=c[m>>2]|0;a=a&65535;f=c[k>>2]|0;f=f+22|0;b[f>>1]=a;n=c[n>>2]|0;i=o;return n|0}c[m>>2]=b[l>>1];a=c[m>>2]|0;a=a&65535;f=c[k>>2]|0;f=f+22|0;b[f>>1]=a;n=c[n>>2]|0;i=o;return n|0}function dE(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0;h=i;i=i+16|0;f=h;j=h+6|0;g=h+4|0;c[f>>2]=a;b[j>>1]=d;b[g>>1]=b[j>>1]|0;do if(c[f>>2]|0){d=c[f>>2]|0;if((b[(c[f>>2]|0)+16>>1]|0)<=0){b[g>>1]=(b[g>>1]|0)+(b[d+16>>1]|0);break}if(!(e[d+20>>1]&0))b[g>>1]=(b[g>>1]|0)-20}while(0);i=h;return b[g>>1]|0}function eE(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;f=k+12|0;g=k+8|0;h=k+4|0;j=k;c[g>>2]=a;c[h>>2]=b;c[j>>2]=e;if(!(py(c[g>>2]|0,c[h>>2]|0,c[j>>2]|0)|0)){c[f>>2]=1;b=c[f>>2]|0;i=k;return b|0}do if((d[c[h>>2]>>0]|0|0)==71){if((eE(c[g>>2]|0,c[(c[h>>2]|0)+12>>2]|0,c[j>>2]|0)|0)==0?(eE(c[g>>2]|0,c[(c[h>>2]|0)+16>>2]|0,c[j>>2]|0)|0)==0:0)break;c[f>>2]=1;b=c[f>>2]|0;i=k;return b|0}while(0);if((((d[c[h>>2]>>0]|0|0)==77?(py(c[(c[g>>2]|0)+12>>2]|0,c[(c[h>>2]|0)+12>>2]|0,c[j>>2]|0)|0)==0:0)?(d[c[g>>2]>>0]|0|0)!=76:0)?(d[c[g>>2]>>0]|0|0)!=73:0){c[f>>2]=1;b=c[f>>2]|0;i=k;return b|0}c[f>>2]=0;b=c[f>>2]|0;i=k;return b|0}function fE(f,g,h,j,k,l){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;G=i;i=i+96|0;F=G+8|0;m=G+76|0;n=G+72|0;o=G+68|0;p=G;q=G+64|0;r=G+60|0;s=G+56|0;t=G+52|0;w=G+48|0;A=G+44|0;C=G+40|0;E=G+36|0;D=G+32|0;v=G+28|0;B=G+24|0;u=G+20|0;y=G+16|0;x=G+80|0;z=G+12|0;c[n>>2]=f;c[o>>2]=g;g=p;c[g>>2]=h;c[g+4>>2]=j;c[q>>2]=k;c[r>>2]=l;c[w>>2]=0;c[s>>2]=0;c[D>>2]=c[(c[o>>2]|0)+20>>2];while(1){if((c[s>>2]|0)>=(c[(c[o>>2]|0)+12>>2]|0))break;if((((c[(c[D>>2]|0)+8>>2]|0)==(c[(c[q>>2]|0)+44>>2]|0)?(k=(c[D>>2]|0)+32|0,g=p,!((c[k>>2]&c[g>>2]|0)!=0?1:(c[k+4>>2]&c[g+4>>2]|0)!=0)):0)?(e[(c[D>>2]|0)+18>>1]&-2433|0)!=0:0)?(e[(c[D>>2]|0)+20>>1]&0|0)==0:0)c[w>>2]=(c[w>>2]|0)+1;c[s>>2]=(c[s>>2]|0)+1;c[D>>2]=(c[D>>2]|0)+48}c[v>>2]=0;if(c[r>>2]|0){c[u>>2]=c[c[r>>2]>>2];c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[u>>2]|0))break;c[y>>2]=c[(c[(c[r>>2]|0)+4>>2]|0)+((c[s>>2]|0)*20|0)>>2];if((d[c[y>>2]>>0]|0)!=152)break;if((c[(c[y>>2]|0)+28>>2]|0)!=(c[(c[q>>2]|0)+44>>2]|0))break;c[s>>2]=(c[s>>2]|0)+1}if((c[s>>2]|0)==(c[u>>2]|0))c[v>>2]=c[u>>2]}c[B>>2]=ph(c[c[n>>2]>>2]|0,72+((c[w>>2]|0)*20|0)+(c[v>>2]<<3)|0,0)|0;if(!(c[B>>2]|0)){Ah(c[n>>2]|0,32392,F);c[m>>2]=0;F=c[m>>2]|0;i=G;return F|0}c[A>>2]=(c[B>>2]|0)+72;c[C>>2]=(c[A>>2]|0)+((c[w>>2]|0)*12|0);c[E>>2]=(c[C>>2]|0)+(c[v>>2]<<3);c[c[B>>2]>>2]=c[w>>2];c[(c[B>>2]|0)+8>>2]=c[v>>2];c[(c[B>>2]|0)+4>>2]=c[A>>2];c[(c[B>>2]|0)+12>>2]=c[C>>2];c[(c[B>>2]|0)+16>>2]=c[E>>2];c[t>>2]=0;c[s>>2]=0;c[D>>2]=c[(c[o>>2]|0)+20>>2];while(1){if((c[s>>2]|0)>=(c[(c[o>>2]|0)+12>>2]|0))break;if((((c[(c[D>>2]|0)+8>>2]|0)==(c[(c[q>>2]|0)+44>>2]|0)?(g=(c[D>>2]|0)+32|0,F=p,!((c[g>>2]&c[F>>2]|0)!=0?1:(c[g+4>>2]&c[F+4>>2]|0)!=0)):0)?(e[(c[D>>2]|0)+18>>1]&-2433|0)!=0:0)?(e[(c[D>>2]|0)+20>>1]&0|0)==0:0){c[(c[A>>2]|0)+((c[t>>2]|0)*12|0)>>2]=c[(c[D>>2]|0)+12>>2];c[(c[A>>2]|0)+((c[t>>2]|0)*12|0)+8>>2]=c[s>>2];F=b[(c[D>>2]|0)+18>>1]&255;a[x>>0]=F;a[x>>0]=(d[x>>0]|0)==1?2:F;if((d[x>>0]|0)==64)a[x>>0]=a[(c[D>>2]|0)+23>>0]|0;a[(c[A>>2]|0)+((c[t>>2]|0)*12|0)+4>>0]=a[x>>0]|0;c[t>>2]=(c[t>>2]|0)+1}c[s>>2]=(c[s>>2]|0)+1;c[D>>2]=(c[D>>2]|0)+48}c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[v>>2]|0))break;c[z>>2]=c[(c[(c[r>>2]|0)+4>>2]|0)+((c[s>>2]|0)*20|0)>>2];c[(c[C>>2]|0)+(c[s>>2]<<3)>>2]=b[(c[z>>2]|0)+32>>1];a[(c[C>>2]|0)+(c[s>>2]<<3)+4>>0]=a[(c[(c[r>>2]|0)+4>>2]|0)+((c[s>>2]|0)*20|0)+12>>0]|0;c[s>>2]=(c[s>>2]|0)+1}c[m>>2]=c[B>>2];F=c[m>>2]|0;i=G;return F|0}function gE(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+48|0;o=p+16|0;n=p+8|0;m=p;f=p+40|0;g=p+36|0;h=p+32|0;k=p+28|0;j=p+24|0;l=p+20|0;c[f>>2]=b;c[g>>2]=d;c[h>>2]=e;c[k>>2]=c[(Ax(c[c[f>>2]>>2]|0,c[g>>2]|0)|0)+8>>2];c[l>>2]=Yb[c[(c[c[k>>2]>>2]|0)+12>>2]&255](c[k>>2]|0,c[h>>2]|0)|0;do if(c[l>>2]|0){if((c[l>>2]|0)==7){jh(c[c[f>>2]>>2]|0);break}e=c[f>>2]|0;if(c[(c[k>>2]|0)+8>>2]|0){c[n>>2]=c[(c[k>>2]|0)+8>>2];Ah(e,19255,n);break}else{c[m>>2]=ih(c[l>>2]|0)|0;Ah(e,19255,m);break}}while(0);Kd(c[(c[k>>2]|0)+8>>2]|0);c[(c[k>>2]|0)+8>>2]=0;c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[c[h>>2]>>2]|0))break;if((a[(c[(c[h>>2]|0)+4>>2]|0)+((c[j>>2]|0)*12|0)+5>>0]|0)==0?(c[(c[(c[h>>2]|0)+16>>2]|0)+(c[j>>2]<<3)>>2]|0)>0:0){n=c[f>>2]|0;c[o>>2]=c[c[g>>2]>>2];Ah(n,35642,o)}c[j>>2]=(c[j>>2]|0)+1}i=p;return c[(c[f>>2]|0)+68>>2]|0}function hE(a){a=+a;var d=0,e=0,f=0,g=0,j=0;j=i;i=i+32|0;d=j+18|0;e=j+8|0;f=j;g=j+16|0;h[e>>3]=a;if(+h[e>>3]<=1.0){b[d>>1]=0;g=b[d>>1]|0;i=j;return g|0}if(+h[e>>3]<=2.0e9){a=+h[e>>3];b[d>>1]=Hj(~~a>>>0,+N(a)>=1.0?a>0.0?~~+$(+M(a/4294967296.0),4294967295.0)>>>0:~~+Z((a-+(~~a>>>0))/4294967296.0)>>>0:0)|0;g=b[d>>1]|0;i=j;return g|0}else{c[f>>2]=c[e>>2];c[f+4>>2]=c[e+4>>2];f=hR(c[f>>2]|0,c[f+4>>2]|0,52)|0;f=fR(f|0,C|0,1022,0)|0;b[g>>1]=f;b[d>>1]=(b[g>>1]|0)*10;g=b[d>>1]|0;i=j;return g|0}return 0}function iE(a,e,f,g,h){a=a|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=i;i=i+48|0;r=t+36|0;j=t+32|0;k=t+28|0;l=t+24|0;m=t+20|0;n=t+16|0;s=t+12|0;q=t+8|0;o=t+4|0;p=t;c[j>>2]=a;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;c[n>>2]=h;c[q>>2]=c[(c[(c[m>>2]|0)+32>>2]|0)+(c[n>>2]<<2)>>2];c[s>>2]=0;while(1){if((c[s>>2]|0)>=(c[c[k>>2]>>2]|0)){j=10;break}c[o>>2]=Tx(c[(c[(c[k>>2]|0)+4>>2]|0)+((c[s>>2]|0)*20|0)>>2]|0)|0;if(((((d[c[o>>2]>>0]|0)==152?(b[(c[o>>2]|0)+32>>1]|0)==(b[(c[(c[m>>2]|0)+4>>2]|0)+(c[n>>2]<<1)>>1]|0):0)?(c[(c[o>>2]|0)+28>>2]|0)==(c[l>>2]|0):0)?(c[p>>2]=Ox(c[j>>2]|0,c[(c[(c[k>>2]|0)+4>>2]|0)+((c[s>>2]|0)*20|0)>>2]|0)|0,(c[p>>2]|0)!=0):0)?0==(Td(c[c[p>>2]>>2]|0,c[q>>2]|0)|0):0){j=8;break}c[s>>2]=(c[s>>2]|0)+1}if((j|0)==8){c[r>>2]=c[s>>2];s=c[r>>2]|0;i=t;return s|0}else if((j|0)==10){c[r>>2]=-1;s=c[r>>2]|0;i=t;return s|0}return 0}function jE(f,g,h){f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0;ga=i;i=i+224|0;l=ga+196|0;m=ga+192|0;n=ga+188|0;j=ga+184|0;$=ga+180|0;P=ga+176|0;K=ga+172|0;da=ga+40|0;aa=ga+32|0;t=ga+24|0;Z=ga+168|0;E=ga+164|0;F=ga+160|0;G=ga+156|0;W=ga+152|0;q=ga+148|0;s=ga+208|0;k=ga+16|0;x=ga+144|0;w=ga+140|0;L=ga+136|0;X=ga+132|0;H=ga+204|0;Q=ga+128|0;J=ga+124|0;r=ga+202|0;y=ga+120|0;O=ga+116|0;u=ga+112|0;R=ga+108|0;z=ga+104|0;M=ga+100|0;_=ga+96|0;S=ga+92|0;T=ga+88|0;A=ga+84|0;B=ga+80|0;fa=ga+76|0;ea=ga+200|0;v=ga+72|0;o=ga+207|0;p=ga+206|0;I=ga+68|0;D=ga+64|0;Y=ga+60|0;N=ga+56|0;V=ga+52|0;ba=ga+8|0;ca=ga;U=ga+48|0;c[l>>2]=f;c[m>>2]=g;c[n>>2]=h;c[j>>2]=c[c[m>>2]>>2];g=t;c[g>>2]=0;c[g+4>>2]=0;c[Z>>2]=0;c[E>>2]=0;c[F>>2]=0;c[W>>2]=c[c[j>>2]>>2];c[q>>2]=c[c[W>>2]>>2];if(a[(c[q>>2]|0)+65>>0]|0){i=ga;return}c[$>>2]=(c[(c[m>>2]|0)+20>>2]|0)+((c[n>>2]|0)*48|0);c[P>>2]=(c[j>>2]|0)+68;c[K>>2]=c[c[$>>2]>>2];g=ID(c[P>>2]|0,c[(c[K>>2]|0)+12>>2]|0)|0;j=da;c[j>>2]=g;c[j+4>>2]=C;c[G>>2]=d[c[K>>2]>>0];do if((c[G>>2]|0)==75){h=c[P>>2]|0;f=(c[K>>2]|0)+20|0;if(c[(c[K>>2]|0)+4>>2]&2048){g=JD(h,c[f>>2]|0)|0;j=(c[$>>2]|0)+32|0;c[j>>2]=g;c[j+4>>2]=C;break}else{g=jD(h,c[f>>2]|0)|0;j=(c[$>>2]|0)+32|0;c[j>>2]=g;c[j+4>>2]=C;break}}else if((c[G>>2]|0)==76){j=(c[$>>2]|0)+32|0;c[j>>2]=0;c[j+4>>2]=0;break}else{g=ID(c[P>>2]|0,c[(c[K>>2]|0)+16>>2]|0)|0;j=(c[$>>2]|0)+32|0;c[j>>2]=g;c[j+4>>2]=C;break}while(0);g=ID(c[P>>2]|0,c[K>>2]|0)|0;j=aa;c[j>>2]=g;c[j+4>>2]=C;if(c[(c[K>>2]|0)+4>>2]&1){h=nD(c[P>>2]|0,b[(c[K>>2]|0)+36>>1]|0)|0;f=k;c[f>>2]=h;c[f+4>>2]=C;f=k;h=aa;g=c[h+4>>2]|c[f+4>>2];j=aa;c[j>>2]=c[h>>2]|c[f>>2];c[j+4>>2]=g;j=k;j=fR(c[j>>2]|0,c[j+4>>2]|0,1,0)|0;k=t;c[k>>2]=j;c[k+4>>2]=C}j=aa;h=c[j+4>>2]|0;k=(c[$>>2]|0)+40|0;c[k>>2]=c[j>>2];c[k+4>>2]=h;c[(c[$>>2]|0)+8>>2]=-1;c[(c[$>>2]|0)+4>>2]=-1;b[(c[$>>2]|0)+18>>1]=0;k=(kE(c[G>>2]|0)|0)!=0;h=c[K>>2]|0;a:do if(k){c[L>>2]=Tx(c[h+12>>2]|0)|0;c[X>>2]=Tx(c[(c[K>>2]|0)+16>>2]|0)|0;O=(c[$>>2]|0)+32|0;R=da;b[H>>1]=((c[O>>2]&c[R>>2]|0)==0?(c[O+4>>2]&c[R+4>>2]|0)==0:0)?8191:2048;R=da;if(lE(c[l>>2]|0,c[R>>2]|0,c[R+4>>2]|0,c[L>>2]|0,x,w)|0){c[(c[$>>2]|0)+8>>2]=c[x>>2];c[(c[$>>2]|0)+12>>2]=c[w>>2];R=(mE(c[G>>2]|0)|0)&65535;b[(c[$>>2]|0)+18>>1]=R&e[H>>1]}if((c[G>>2]|0)==73){R=(c[$>>2]|0)+20|0;b[R>>1]=e[R>>1]|2048}if((c[X>>2]|0)!=0?(R=(c[$>>2]|0)+32|0,(lE(c[l>>2]|0,c[R>>2]|0,c[R+4>>2]|0,c[X>>2]|0,x,w)|0)!=0):0){b[r>>1]=0;if((c[(c[$>>2]|0)+8>>2]|0)>=0){c[J>>2]=ny(c[q>>2]|0,c[K>>2]|0,0)|0;if(a[(c[q>>2]|0)+65>>0]|0){Zu(c[q>>2]|0,c[J>>2]|0);i=ga;return}c[y>>2]=nE(c[m>>2]|0,c[J>>2]|0,3)|0;if(!(c[y>>2]|0)){i=ga;return}c[Q>>2]=(c[(c[m>>2]|0)+20>>2]|0)+((c[y>>2]|0)*48|0);oE(c[m>>2]|0,c[y>>2]|0,c[n>>2]|0);if((c[G>>2]|0)==73){X=(c[Q>>2]|0)+20|0;b[X>>1]=e[X>>1]|2048}c[$>>2]=(c[(c[m>>2]|0)+20>>2]|0)+((c[n>>2]|0)*48|0);X=(c[$>>2]|0)+20|0;b[X>>1]=e[X>>1]|8;if(pE(c[W>>2]|0,c[J>>2]|0)|0){X=(c[$>>2]|0)+18|0;b[X>>1]=e[X>>1]|2048;b[r>>1]=2048}}else{c[J>>2]=c[K>>2];c[Q>>2]=c[$>>2]}qE(c[W>>2]|0,c[J>>2]|0);c[(c[Q>>2]|0)+8>>2]=c[x>>2];c[(c[Q>>2]|0)+12>>2]=c[w>>2];O=da;R=t;da=c[O+4>>2]|c[R+4>>2];X=(c[Q>>2]|0)+32|0;c[X>>2]=c[O>>2]|c[R>>2];c[X+4>>2]=da;X=aa;aa=c[X+4>>2]|0;da=(c[Q>>2]|0)+40|0;c[da>>2]=c[X>>2];c[da+4>>2]=aa;da=(mE(d[c[J>>2]>>0]|0)|0)&65535;b[(c[Q>>2]|0)+18>>1]=da+(e[r>>1]|0)&e[H>>1]}}else{if((d[h>>0]|0)==74?(d[(c[m>>2]|0)+8>>0]|0)==72:0){c[O>>2]=c[(c[K>>2]|0)+20>>2];c[u>>2]=0;while(1){if((c[u>>2]|0)>=2)break a;X=c[W>>2]|0;aa=d[35688+(c[u>>2]|0)>>0]|0;da=ny(c[q>>2]|0,c[(c[K>>2]|0)+12>>2]|0,0)|0;c[R>>2]=rv(X,aa,da,ny(c[q>>2]|0,c[(c[(c[O>>2]|0)+4>>2]|0)+((c[u>>2]|0)*20|0)>>2]|0,0)|0,0)|0;rE(c[R>>2]|0,c[K>>2]|0);c[z>>2]=nE(c[m>>2]|0,c[R>>2]|0,3)|0;jE(c[l>>2]|0,c[m>>2]|0,c[z>>2]|0);c[$>>2]=(c[(c[m>>2]|0)+20>>2]|0)+((c[n>>2]|0)*48|0);oE(c[m>>2]|0,c[z>>2]|0,c[n>>2]|0);c[u>>2]=(c[u>>2]|0)+1}}if((d[c[K>>2]>>0]|0)==71){sE(c[l>>2]|0,c[m>>2]|0,c[n>>2]|0);c[$>>2]=(c[(c[m>>2]|0)+20>>2]|0)+((c[n>>2]|0)*48|0)}}while(0);if((d[(c[m>>2]|0)+8>>0]|0)==72?(tE(c[W>>2]|0,c[K>>2]|0,Z,E,F)|0)!=0:0){b[ea>>1]=259;c[M>>2]=c[(c[(c[(c[K>>2]|0)+20>>2]|0)+4>>2]|0)+20>>2];c[_>>2]=ny(c[q>>2]|0,c[Z>>2]|0,0)|0;b:do if((c[F>>2]|0)!=0?(a[(c[c[W>>2]>>2]|0)+65>>0]|0)==0:0){ea=(c[$>>2]|0)+20|0;b[ea>>1]=e[ea>>1]|1024;c[v>>2]=0;while(1){ea=a[(c[(c[Z>>2]|0)+8>>2]|0)+(c[v>>2]|0)>>0]|0;a[o>>0]=ea;if(!(ea<<24>>24))break b;a[(c[(c[Z>>2]|0)+8>>2]|0)+(c[v>>2]|0)>>0]=a[o>>0]&~(d[19267+(d[o>>0]|0)>>0]&32);a[(c[(c[_>>2]|0)+8>>2]|0)+(c[v>>2]|0)>>0]=a[18477+(d[o>>0]|0)>>0]|0;c[v>>2]=(c[v>>2]|0)+1}}while(0);if(!(a[(c[q>>2]|0)+65>>0]|0)){ea=(If(c[(c[_>>2]|0)+8>>2]|0)|0)-1|0;c[I>>2]=(c[(c[_>>2]|0)+8>>2]|0)+ea;a[p>>0]=a[c[I>>2]>>0]|0;if(c[F>>2]|0){if((d[p>>0]|0)==64)c[E>>2]=0;a[p>>0]=a[18477+(d[p>>0]|0)>>0]|0}a[c[I>>2]>>0]=(d[p>>0]|0)+1}c[fa>>2]=(c[F>>2]|0)!=0?21290:35690;c[S>>2]=ny(c[q>>2]|0,c[M>>2]|0,0)|0;da=c[W>>2]|0;ea=By(c[W>>2]|0,c[S>>2]|0,c[fa>>2]|0)|0;c[S>>2]=rv(da,83,ea,c[Z>>2]|0,0)|0;rE(c[S>>2]|0,c[K>>2]|0);c[A>>2]=nE(c[m>>2]|0,c[S>>2]|0,259)|0;jE(c[l>>2]|0,c[m>>2]|0,c[A>>2]|0);c[T>>2]=ny(c[q>>2]|0,c[M>>2]|0,0)|0;ea=c[W>>2]|0;fa=By(c[W>>2]|0,c[T>>2]|0,c[fa>>2]|0)|0;c[T>>2]=rv(ea,82,fa,c[_>>2]|0,0)|0;rE(c[T>>2]|0,c[K>>2]|0);c[B>>2]=nE(c[m>>2]|0,c[T>>2]|0,259)|0;jE(c[l>>2]|0,c[m>>2]|0,c[B>>2]|0);c[$>>2]=(c[(c[m>>2]|0)+20>>2]|0)+((c[n>>2]|0)*48|0);if(c[E>>2]|0){oE(c[m>>2]|0,c[A>>2]|0,c[n>>2]|0);oE(c[m>>2]|0,c[B>>2]|0,c[n>>2]|0)}}if((uE(c[K>>2]|0,s)|0)!=0?(c[Y>>2]=c[c[(c[(c[K>>2]|0)+20>>2]|0)+4>>2]>>2],c[N>>2]=c[(c[(c[(c[K>>2]|0)+20>>2]|0)+4>>2]|0)+20>>2],ea=ID(c[P>>2]|0,c[Y>>2]|0)|0,fa=ca,c[fa>>2]=ea,c[fa+4>>2]=C,fa=ID(c[P>>2]|0,c[N>>2]|0)|0,ea=ba,c[ea>>2]=fa,c[ea+4>>2]=C,ea=ca,fa=ba,(c[ea>>2]&c[fa>>2]|0)==0?(c[ea+4>>2]&c[fa+4>>2]|0)==0:0):0){fa=c[W>>2]|0;c[U>>2]=rv(fa,51,0,ny(c[q>>2]|0,c[Y>>2]|0,0)|0,0)|0;c[D>>2]=nE(c[m>>2]|0,c[U>>2]|0,3)|0;c[V>>2]=(c[(c[m>>2]|0)+20>>2]|0)+((c[D>>2]|0)*48|0);fa=ca;ea=c[fa+4>>2]|0;da=(c[V>>2]|0)+32|0;c[da>>2]=c[fa>>2];c[da+4>>2]=ea;c[(c[V>>2]|0)+8>>2]=c[(c[N>>2]|0)+28>>2];c[(c[V>>2]|0)+12>>2]=b[(c[N>>2]|0)+32>>1];b[(c[V>>2]|0)+18>>1]=64;a[(c[V>>2]|0)+23>>0]=a[s>>0]|0;oE(c[m>>2]|0,c[D>>2]|0,c[n>>2]|0);c[$>>2]=(c[(c[m>>2]|0)+20>>2]|0)+((c[n>>2]|0)*48|0);da=(c[$>>2]|0)+20|0;b[da>>1]=e[da>>1]|8;da=(c[$>>2]|0)+40|0;ea=c[da+4>>2]|0;fa=(c[V>>2]|0)+40|0;c[fa>>2]=c[da>>2];c[fa+4>>2]=ea}da=t;fa=(c[$>>2]|0)+32|0;ca=fa;ea=c[ca+4>>2]|c[da+4>>2];c[fa>>2]=c[ca>>2]|c[da>>2];c[fa+4>>2]=ea;i=ga;return}function kE(a){a=a|0;var b=0,d=0;d=i;i=i+16|0;b=d;c[b>>2]=a;if((c[b>>2]|0)!=75?!((c[b>>2]|0)>=79&(c[b>>2]|0)<=83|(c[b>>2]|0)==76):0)b=(c[b>>2]|0)==73;else b=1;i=d;return b&1|0}function lE(a,f,g,h,j,k){a=a|0;f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=i;i=i+48|0;q=u+36|0;l=u+32|0;m=u;n=u+28|0;r=u+24|0;s=u+20|0;p=u+16|0;o=u+12|0;t=u+8|0;c[l>>2]=a;a=m;c[a>>2]=f;c[a+4>>2]=g;c[n>>2]=h;c[r>>2]=j;c[s>>2]=k;if((d[c[n>>2]>>0]|0)==152){c[c[r>>2]>>2]=c[(c[n>>2]|0)+28>>2];c[c[s>>2]>>2]=b[(c[n>>2]|0)+32>>1];c[q>>2]=1;t=c[q>>2]|0;i=u;return t|0}j=m;if((c[j>>2]|0)==0&(c[j+4>>2]|0)==0){c[q>>2]=0;t=c[q>>2]|0;i=u;return t|0}j=m;a=c[j>>2]|0;j=c[j+4>>2]|0;k=m;k=fR(c[k>>2]|0,c[k+4>>2]|0,1,0)|0;if((a&k|0)!=0|(j&C|0)!=0){c[q>>2]=0;t=c[q>>2]|0;i=u;return t|0}c[o>>2]=0;while(1){j=m;k=c[j+4>>2]|0;f=c[o>>2]|0;if(!(k>>>0>0|(k|0)==0&(c[j>>2]|0)>>>0>1))break;c[o>>2]=f+1;k=m;k=hR(c[k>>2]|0,c[k+4>>2]|0,1)|0;j=m;c[j>>2]=k;c[j+4>>2]=C}c[t>>2]=c[(c[l>>2]|0)+8+(f*72|0)+44>>2];c[p>>2]=c[(c[(c[l>>2]|0)+8+((c[o>>2]|0)*72|0)+16>>2]|0)+8>>2];a:while(1){if(!(c[p>>2]|0)){f=20;break}b:do if(c[(c[p>>2]|0)+40>>2]|0){c[o>>2]=0;while(1){if((c[o>>2]|0)>=(e[(c[p>>2]|0)+50>>1]|0))break b;if((b[(c[(c[p>>2]|0)+4>>2]|0)+(c[o>>2]<<1)>>1]|0)==-2?(py(c[n>>2]|0,c[(c[(c[(c[p>>2]|0)+40>>2]|0)+4>>2]|0)+((c[o>>2]|0)*20|0)>>2]|0,c[t>>2]|0)|0)==0:0){f=17;break a}c[o>>2]=(c[o>>2]|0)+1}}while(0);c[p>>2]=c[(c[p>>2]|0)+20>>2]}if((f|0)==17){c[c[r>>2]>>2]=c[t>>2];c[c[s>>2]>>2]=-2;c[q>>2]=1;t=c[q>>2]|0;i=u;return t|0}else if((f|0)==20){c[q>>2]=0;t=c[q>>2]|0;i=u;return t|0}return 0}function mE(a){a=a|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f;e=f+4|0;c[d>>2]=a;do if((c[d>>2]|0)!=75){if((c[d>>2]|0)==76){b[e>>1]=256;break}if((c[d>>2]|0)==73){b[e>>1]=128;break}else{b[e>>1]=2<<(c[d>>2]|0)-79;break}}else b[e>>1]=1;while(0);i=f;return b[e>>1]|0}function nE(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;g=p+24|0;h=p+20|0;j=p+16|0;k=p+28|0;o=p+12|0;m=p+8|0;n=p+4|0;l=p;c[h>>2]=a;c[j>>2]=d;b[k>>1]=f;do if((c[(c[h>>2]|0)+12>>2]|0)>=(c[(c[h>>2]|0)+16>>2]|0)){c[n>>2]=c[(c[h>>2]|0)+20>>2];c[l>>2]=c[c[c[c[h>>2]>>2]>>2]>>2];f=Fw(c[l>>2]|0,(c[(c[h>>2]|0)+16>>2]|0)*48<<1,0)|0;c[(c[h>>2]|0)+20>>2]=f;if(c[(c[h>>2]|0)+20>>2]|0){iR(c[(c[h>>2]|0)+20>>2]|0,c[n>>2]|0,(c[(c[h>>2]|0)+12>>2]|0)*48|0)|0;if((c[n>>2]|0)!=((c[h>>2]|0)+24|0))Sf(c[l>>2]|0,c[n>>2]|0);f=(($t(c[l>>2]|0,c[(c[h>>2]|0)+20>>2]|0)|0)>>>0)/48|0;c[(c[h>>2]|0)+16>>2]=f;kR((c[(c[h>>2]|0)+20>>2]|0)+((c[(c[h>>2]|0)+12>>2]|0)*48|0)|0,0,((c[(c[h>>2]|0)+16>>2]|0)-(c[(c[h>>2]|0)+12>>2]|0)|0)*48|0)|0;
  89. break}if((e[k>>1]|0)&1)Zu(c[l>>2]|0,c[j>>2]|0);c[(c[h>>2]|0)+20>>2]=c[n>>2];c[g>>2]=0;f=c[g>>2]|0;i=p;return f|0}while(0);a=(c[h>>2]|0)+12|0;f=c[a>>2]|0;c[a>>2]=f+1;c[m>>2]=f;c[o>>2]=(c[(c[h>>2]|0)+20>>2]|0)+(f*48|0);if((c[j>>2]|0)!=0?(c[(c[j>>2]|0)+4>>2]&262144|0)!=0:0){f=c[(c[j>>2]|0)+28>>2]|0;f=((Hj(f,((f|0)<0)<<31>>31)|0)<<16>>16)-270&65535;b[(c[o>>2]|0)+16>>1]=f}else b[(c[o>>2]|0)+16>>1]=1;f=Tx(c[j>>2]|0)|0;c[c[o>>2]>>2]=f;b[(c[o>>2]|0)+20>>1]=b[k>>1]|0;c[(c[o>>2]|0)+24>>2]=c[h>>2];c[(c[o>>2]|0)+4>>2]=-1;c[g>>2]=c[m>>2];f=c[g>>2]|0;i=p;return f|0}function oE(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0;g=i;i=i+16|0;j=g+8|0;k=g+4|0;h=g;c[j>>2]=d;c[k>>2]=e;c[h>>2]=f;c[(c[(c[j>>2]|0)+20>>2]|0)+((c[k>>2]|0)*48|0)+4>>2]=c[h>>2];b[(c[(c[j>>2]|0)+20>>2]|0)+((c[k>>2]|0)*48|0)+16>>1]=b[(c[(c[j>>2]|0)+20>>2]|0)+((c[h>>2]|0)*48|0)+16>>1]|0;d=(c[(c[j>>2]|0)+20>>2]|0)+((c[h>>2]|0)*48|0)+22|0;a[d>>0]=(a[d>>0]|0)+1<<24>>24;i=g;return}function pE(b,f){b=b|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;m=p+20|0;j=p+16|0;k=p+12|0;g=p+25|0;h=p+24|0;l=p+8|0;n=p+4|0;o=p;c[j>>2]=b;c[k>>2]=f;if(e[(c[c[j>>2]>>2]|0)+60>>1]&512){c[m>>2]=0;o=c[m>>2]|0;i=p;return o|0}if((d[c[k>>2]>>0]|0)!=79?(d[c[k>>2]>>0]|0)!=73:0){c[m>>2]=0;o=c[m>>2]|0;i=p;return o|0}if(c[(c[k>>2]|0)+4>>2]&1){c[m>>2]=0;o=c[m>>2]|0;i=p;return o|0}a[g>>0]=Nx(c[(c[k>>2]|0)+12>>2]|0)|0;a[h>>0]=Nx(c[(c[k>>2]|0)+16>>2]|0)|0;do if((a[g>>0]|0)!=(a[h>>0]|0)){if((a[g>>0]|0)>=67?(a[h>>0]|0)>=67:0)break;c[m>>2]=0;o=c[m>>2]|0;i=p;return o|0}while(0);c[l>>2]=VA(c[j>>2]|0,c[(c[k>>2]|0)+12>>2]|0,c[(c[k>>2]|0)+16>>2]|0)|0;if((c[l>>2]|0)!=0?(Td(c[c[l>>2]>>2]|0,35690)|0)!=0:0){c[l>>2]=Ox(c[j>>2]|0,c[(c[k>>2]|0)+12>>2]|0)|0;if(c[l>>2]|0)g=c[c[l>>2]>>2]|0;else g=0;c[n>>2]=g;c[l>>2]=Ox(c[j>>2]|0,c[(c[k>>2]|0)+16>>2]|0)|0;if(c[l>>2]|0)g=c[c[l>>2]>>2]|0;else g=0;c[o>>2]=g;c[m>>2]=(Td(c[n>>2]|0,c[o>>2]|0)|0)==0&1;o=c[m>>2]|0;i=p;return o|0}c[m>>2]=1;o=c[m>>2]|0;i=p;return o|0}function qE(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0;m=i;i=i+16|0;h=m+8|0;j=m+4|0;k=m+14|0;n=m+12|0;l=m;c[h>>2]=f;c[j>>2]=g;b[k>>1]=c[(c[(c[j>>2]|0)+16>>2]|0)+4>>2]&256;b[n>>1]=c[(c[(c[j>>2]|0)+12>>2]|0)+4>>2]&256;do if((e[k>>1]|0)==(e[n>>1]|0)){if(b[k>>1]|0){n=(c[(c[j>>2]|0)+16>>2]|0)+4|0;c[n>>2]=c[n>>2]&-257;break}if(Ox(c[h>>2]|0,c[(c[j>>2]|0)+12>>2]|0)|0){n=(c[(c[j>>2]|0)+12>>2]|0)+4|0;c[n>>2]=c[n>>2]|256}}while(0);c[l>>2]=c[(c[j>>2]|0)+16>>2];c[(c[j>>2]|0)+16>>2]=c[(c[j>>2]|0)+12>>2];c[(c[j>>2]|0)+12>>2]=c[l>>2];if((d[c[j>>2]>>0]|0)<80){i=m;return}a[c[j>>2]>>0]=((d[c[j>>2]>>0]|0)-80^2)+80;i=m;return}function rE(a,d){a=a|0;d=d|0;var e=0,f=0,g=0;g=i;i=i+16|0;e=g+4|0;f=g;c[e>>2]=a;c[f>>2]=d;if(!(c[e>>2]|0)){i=g;return}a=(c[e>>2]|0)+4|0;c[a>>2]=c[a>>2]|c[(c[f>>2]|0)+4>>2]&1;b[(c[e>>2]|0)+36>>1]=b[(c[f>>2]|0)+36>>1]|0;i=g;return}function sE(f,g,h){f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;V=i;i=i+160|0;w=V+156|0;x=V+152|0;y=V+148|0;T=V+144|0;R=V+140|0;D=V+136|0;S=V+132|0;L=V+128|0;E=V+124|0;Q=V+120|0;P=V+116|0;t=V+112|0;B=V+24|0;n=V+16|0;p=V+108|0;r=V+104|0;q=V+100|0;o=V+96|0;j=V+8|0;k=V;u=V+92|0;l=V+88|0;s=V+84|0;m=V+80|0;v=V+76|0;J=V+72|0;F=V+68|0;G=V+64|0;I=V+60|0;z=V+56|0;A=V+52|0;K=V+48|0;N=V+44|0;M=V+40|0;O=V+36|0;H=V+32|0;c[w>>2]=f;c[x>>2]=g;c[y>>2]=h;c[T>>2]=c[c[x>>2]>>2];c[R>>2]=c[c[T>>2]>>2];c[D>>2]=c[c[R>>2]>>2];c[S>>2]=(c[(c[x>>2]|0)+20>>2]|0)+((c[y>>2]|0)*48|0);c[L>>2]=c[c[S>>2]>>2];g=ph(c[D>>2]|0,416,0)|0;c[t>>2]=g;c[(c[S>>2]|0)+12>>2]=g;if(!(c[t>>2]|0)){i=V;return}g=(c[S>>2]|0)+20|0;b[g>>1]=e[g>>1]|16;c[Q>>2]=c[t>>2];aD(c[Q>>2]|0,c[T>>2]|0);bD(c[Q>>2]|0,c[L>>2]|0,71);eD(c[w>>2]|0,c[Q>>2]|0);if(a[(c[D>>2]|0)+65>>0]|0){i=V;return}g=n;c[g>>2]=-1;c[g+4>>2]=-1;g=B;c[g>>2]=-1;c[g+4>>2]=-1;c[E>>2]=(c[(c[Q>>2]|0)+12>>2]|0)-1;c[P>>2]=c[(c[Q>>2]|0)+20>>2];while(1){g=n;if(!((c[E>>2]|0)>=0?(c[g>>2]|0)!=0|(c[g+4>>2]|0)!=0:0))break;do if(!(e[(c[P>>2]|0)+18>>1]&511)){g=B;c[g>>2]=0;c[g+4>>2]=0;c[p>>2]=Fw(c[D>>2]|0,408,0)|0;if(c[p>>2]|0){g=j;c[g>>2]=0;c[g+4>>2]=0;c[(c[P>>2]|0)+12>>2]=c[p>>2];g=(c[P>>2]|0)+20|0;b[g>>1]=e[g>>1]|32;b[(c[P>>2]|0)+18>>1]=1024;c[r>>2]=c[p>>2];aD(c[r>>2]|0,c[c[x>>2]>>2]|0);bD(c[r>>2]|0,c[c[P>>2]>>2]|0,72);eD(c[w>>2]|0,c[r>>2]|0);c[(c[r>>2]|0)+4>>2]=c[x>>2];a:do if(!(a[(c[D>>2]|0)+65>>0]|0)){c[o>>2]=0;c[q>>2]=c[(c[r>>2]|0)+20>>2];while(1){if((c[o>>2]|0)>=(c[(c[r>>2]|0)+12>>2]|0))break a;if(kE(d[c[c[q>>2]>>2]>>0]|0)|0){h=nD((c[T>>2]|0)+68|0,c[(c[q>>2]|0)+8>>2]|0)|0;W=j;f=c[W+4>>2]|C;g=j;c[g>>2]=c[W>>2]|h;c[g+4>>2]=f}c[o>>2]=(c[o>>2]|0)+1;c[q>>2]=(c[q>>2]|0)+48}}while(0);f=j;h=n;g=c[h+4>>2]&c[f+4>>2];W=n;c[W>>2]=c[h>>2]&c[f>>2];c[W+4>>2]=g}}else if(!(e[(c[P>>2]|0)+20>>1]&8)){g=nD((c[T>>2]|0)+68|0,c[(c[P>>2]|0)+8>>2]|0)|0;W=k;c[W>>2]=g;c[W+4>>2]=C;if(e[(c[P>>2]|0)+20>>1]&2){c[u>>2]=(c[(c[Q>>2]|0)+20>>2]|0)+((c[(c[P>>2]|0)+4>>2]|0)*48|0);f=nD((c[T>>2]|0)+68|0,c[(c[u>>2]|0)+8>>2]|0)|0;h=k;g=c[h+4>>2]|C;W=k;c[W>>2]=c[h>>2]|f;c[W+4>>2]=g}f=k;h=n;g=c[h+4>>2]&c[f+4>>2];W=n;c[W>>2]=c[h>>2]&c[f>>2];c[W+4>>2]=g;if(!(e[(c[P>>2]|0)+18>>1]&2)){W=B;c[W>>2]=0;c[W+4>>2]=0;break}else{f=k;h=B;g=c[h+4>>2]&c[f+4>>2];W=B;c[W>>2]=c[h>>2]&c[f>>2];c[W+4>>2]=g;break}}while(0);c[E>>2]=(c[E>>2]|0)+-1;c[P>>2]=(c[P>>2]|0)+48}f=n;g=c[f+4>>2]|0;W=(c[t>>2]|0)+408|0;c[W>>2]=c[f>>2];c[W+4>>2]=g;W=n;b[(c[S>>2]|0)+18>>1]=(c[W>>2]|0)==0&(c[W+4>>2]|0)==0?0:512;W=n;b:do if((c[W>>2]|0)!=0|(c[W+4>>2]|0)!=0?(c[(c[Q>>2]|0)+12>>2]|0)==2:0){c[l>>2]=0;c:while(1){g=c[(c[Q>>2]|0)+20>>2]|0;W=c[l>>2]|0;c[l>>2]=W+1;W=zE(g,W)|0;c[s>>2]=W;if(!W)break b;c[m>>2]=0;while(1){g=(c[(c[Q>>2]|0)+20>>2]|0)+48|0;W=c[m>>2]|0;c[m>>2]=W+1;W=zE(g,W)|0;c[v>>2]=W;if(!W)continue c;AE(c[w>>2]|0,c[x>>2]|0,c[s>>2]|0,c[v>>2]|0)}}}while(0);W=B;if(!((c[W>>2]|0)!=0|(c[W+4>>2]|0)!=0)){i=V;return}c[J>>2]=0;c[F>>2]=-1;c[G>>2]=-1;c[I>>2]=0;c[I>>2]=0;while(1){if((c[I>>2]|0)>=2)break;if(!((c[J>>2]|0)!=0^1))break;c[P>>2]=c[(c[Q>>2]|0)+20>>2];c[E>>2]=(c[(c[Q>>2]|0)+12>>2]|0)-1;while(1){if((c[E>>2]|0)<0)break;W=(c[P>>2]|0)+20|0;b[W>>1]=e[W>>1]&-65;if((c[(c[P>>2]|0)+8>>2]|0)!=(c[G>>2]|0)?(W=B,v=c[W>>2]|0,W=c[W+4>>2]|0,g=nD((c[T>>2]|0)+68|0,c[(c[P>>2]|0)+8>>2]|0)|0,!((v&g|0)==0&(W&C|0)==0)):0){U=36;break}c[E>>2]=(c[E>>2]|0)+-1;c[P>>2]=(c[P>>2]|0)+48}if((U|0)==36){U=0;c[F>>2]=c[(c[P>>2]|0)+12>>2];c[G>>2]=c[(c[P>>2]|0)+8>>2]}if((c[E>>2]|0)<0)break;c[J>>2]=1;while(1){if(!((c[E>>2]|0)>=0?(c[J>>2]|0)!=0:0))break;j=c[P>>2]|0;do if((c[(c[P>>2]|0)+8>>2]|0)!=(c[G>>2]|0)){W=j+20|0;b[W>>1]=e[W>>1]&-65}else{if((c[j+12>>2]|0)!=(c[F>>2]|0)){c[J>>2]=0;break}c[A>>2]=(Nx(c[(c[c[P>>2]>>2]|0)+16>>2]|0)|0)<<24>>24;c[z>>2]=(Nx(c[(c[c[P>>2]>>2]|0)+12>>2]|0)|0)<<24>>24;if((c[A>>2]|0)!=0?(c[A>>2]|0)!=(c[z>>2]|0):0){c[J>>2]=0;break}W=(c[P>>2]|0)+20|0;b[W>>1]=e[W>>1]|64}while(0);c[E>>2]=(c[E>>2]|0)+-1;c[P>>2]=(c[P>>2]|0)+48}c[I>>2]=(c[I>>2]|0)+1}if(!(c[J>>2]|0)){i=V;return}c[N>>2]=0;c[M>>2]=0;c[E>>2]=(c[(c[Q>>2]|0)+12>>2]|0)-1;c[P>>2]=c[(c[Q>>2]|0)+20>>2];while(1){if((c[E>>2]|0)<0)break;if(e[(c[P>>2]|0)+20>>1]&64){c[K>>2]=ny(c[D>>2]|0,c[(c[c[P>>2]>>2]|0)+16>>2]|0,0)|0;c[N>>2]=Gv(c[c[T>>2]>>2]|0,c[N>>2]|0,c[K>>2]|0)|0;c[M>>2]=c[(c[c[P>>2]>>2]|0)+12>>2]}c[E>>2]=(c[E>>2]|0)+-1;c[P>>2]=(c[P>>2]|0)+48}c[K>>2]=ny(c[D>>2]|0,c[M>>2]|0,0)|0;c[O>>2]=rv(c[R>>2]|0,75,c[K>>2]|0,0,0)|0;if(c[O>>2]|0){rE(c[O>>2]|0,c[L>>2]|0);c[(c[O>>2]|0)+20>>2]=c[N>>2];c[H>>2]=nE(c[x>>2]|0,c[O>>2]|0,3)|0;jE(c[w>>2]|0,c[x>>2]|0,c[H>>2]|0);c[S>>2]=(c[(c[x>>2]|0)+20>>2]|0)+((c[y>>2]|0)*48|0);oE(c[x>>2]|0,c[H>>2]|0,c[y>>2]|0)}else Vu(c[D>>2]|0,c[N>>2]|0);b[(c[S>>2]|0)+18>>1]=4096;i=V;return}function KH(f){f=f|0;var g=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,_=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0,ab=0,bb=0,cb=0,db=0,eb=0,fb=0,gb=0,hb=0,ib=0,jb=0,kb=0,lb=0,mb=0,nb=0,ob=0,pb=0,qb=0,rb=0,sb=0,tb=0,ub=0,vb=0,wb=0,xb=0,yb=0,zb=0,Ab=0,Bb=0,Cb=0,Db=0,Eb=0,Fb=0,Gb=0,Hb=0,Ib=0,Jb=0,Kb=0,Lb=0,Mb=0,Nb=0,Pb=0,Qb=0,Sb=0,Vb=0,_b=0,$b=0,ac=0,bc=0,cc=0,dc=0,ec=0,fc=0,gc=0,hc=0,ic=0,jc=0,kc=0,lc=0,mc=0,nc=0,oc=0,pc=0,qc=0,rc=0,sc=0,tc=0,uc=0,vc=0,wc=0,xc=0,yc=0,zc=0,Ac=0,Bc=0,Cc=0,Dc=0,Ec=0,Fc=0,Gc=0,Hc=0,Ic=0,Jc=0,Kc=0,Lc=0,Mc=0,Nc=0,Oc=0,Pc=0,Qc=0,Rc=0,Sc=0,Tc=0,Uc=0,Vc=0,Wc=0,Xc=0,Yc=0,Zc=0,_c=0,$c=0,ad=0,bd=0,cd=0,dd=0,ed=0,fd=0,gd=0,hd=0,id=0,jd=0,kd=0,ld=0,md=0,nd=0,od=0,pd=0,qd=0,rd=0,sd=0,td=0,ud=0,vd=0,wd=0,xd=0,yd=0,zd=0,Ad=0,Bd=0,Cd=0,Dd=0,Ed=0,Fd=0,Gd=0,Hd=0,Id=0,Jd=0,Kd=0,Ld=0,Md=0,Nd=0,Od=0,Pd=0,Qd=0,Ud=0,Vd=0,Wd=0,Xd=0,Yd=0,Zd=0,_d=0,$d=0,be=0,ce=0,de=0,ee=0,fe=0,ge=0,he=0,ie=0,je=0,ke=0,le=0,me=0,ne=0,oe=0,pe=0,qe=0,re=0,se=0,te=0,ue=0,ve=0,we=0,xe=0,ye=0,ze=0,Ae=0,Be=0,Ce=0,De=0,Ee=0,Fe=0,Ge=0,He=0,Ie=0,Je=0,Ke=0,Le=0,Me=0,Ne=0,Oe=0,Pe=0,Qe=0,Re=0,Se=0,Te=0,Ue=0,Ve=0,We=0,Xe=0,Ye=0,Ze=0,_e=0,af=0,bf=0,cf=0,df=0,ef=0,ff=0,gf=0,hf=0,jf=0,kf=0,lf=0,mf=0,nf=0,of=0,pf=0,qf=0,rf=0,sf=0,tf=0,uf=0,vf=0,wf=0,xf=0,yf=0,zf=0.0,Af=0;xf=i;i=i+1824|0;Qe=xf+496|0;Pe=xf+488|0;Oe=xf+480|0;Ne=xf+472|0;Me=xf+456|0;Le=xf+448|0;Ke=xf+440|0;Je=xf+432|0;Ie=xf+424|0;He=xf+416|0;Ge=xf+400|0;Fe=xf+392|0;Ee=xf+384|0;De=xf+376|0;Ce=xf+368|0;Be=xf+360|0;Ae=xf+352|0;uf=xf+336|0;tf=xf+328|0;sf=xf+320|0;ze=xf+312|0;lf=xf+1612|0;n=xf+1608|0;pf=xf+1604|0;rf=xf+1600|0;mf=xf+1596|0;fe=xf+1819|0;H=xf+1818|0;fa=xf+1592|0;of=xf+1588|0;db=xf+1584|0;l=xf+1580|0;Oc=xf+1576|0;Pc=xf+1572|0;Qc=xf+1568|0;id=xf+1564|0;o=xf+1560|0;nf=xf+304|0;g=xf+1556|0;dc=xf+1552|0;Gd=xf+1548|0;wf=xf+1544|0;vf=xf+1540|0;Gc=xf+1536|0;qf=xf+1532|0;B=xf+1528|0;jb=xf+1626|0;vd=xf+1524|0;Ha=xf+1520|0;pb=xf+1516|0;tb=xf+1512|0;Ia=xf+1508|0;Wc=xf+1504|0;S=xf+1500|0;Qa=xf+296|0;x=xf+1817|0;L=xf+1624|0;re=xf+1622|0;se=xf+1620|0;ba=xf+288|0;da=xf+280|0;Od=xf+272|0;Pd=xf+264|0;Ja=xf+1496|0;mc=xf+1492|0;X=xf+1488|0;nc=xf+1484|0;ca=xf+256|0;te=xf+248|0;ea=xf+240|0;nb=xf+1816|0;Qd=xf+1480|0;s=xf+1815|0;O=xf+1618|0;P=xf+1616|0;Ma=xf+1476|0;Y=xf+1472|0;sb=xf+1468|0;ub=xf+1464|0;Sc=xf+1460|0;wa=xf+1456|0;ec=xf+1452|0;y=xf+1448|0;ve=xf+1444|0;we=xf+1440|0;z=xf+1436|0;Fd=xf+232|0;vb=xf+1432|0;Cb=xf+1428|0;fc=xf+1424|0;m=xf+1420|0;Fa=xf+1416|0;U=xf+1412|0;Dc=xf+1408|0;je=xf+192|0;Ye=xf+1404|0;bf=xf+1400|0;_e=xf+1396|0;lb=xf+1392|0;mb=xf+184|0;w=xf+1388|0;ne=xf+1384|0;nd=xf+1380|0;We=xf+1376|0;A=xf+1814|0;ff=xf+1372|0;md=xf+1368|0;Ua=xf+176|0;_a=xf+1364|0;Ra=xf+168|0;gb=xf+160|0;fb=xf+1360|0;me=xf+1356|0;zc=xf+1352|0;Vc=xf+1348|0;Xa=xf+1344|0;Xe=xf+1340|0;K=xf+1336|0;W=xf+1332|0;Da=xf+1328|0;Ga=xf+1324|0;Va=xf+152|0;gc=xf+1320|0;rb=xf+1316|0;ef=xf+1312|0;cb=xf+1308|0;hd=xf+1304|0;pd=xf+1300|0;rd=xf+1296|0;ua=xf+1292|0;xa=xf+1288|0;Ba=xf+1284|0;Aa=xf+1280|0;E=xf+1276|0;ta=xf+1272|0;yb=xf+1268|0;pa=xf+1264|0;la=xf+1260|0;qa=xf+1256|0;ha=xf+1252|0;ga=xf+1248|0;Ac=xf+1244|0;Ya=xf+1240|0;Tc=xf+1236|0;wb=xf+1232|0;ia=xf+1228|0;Se=xf+1224|0;Dd=xf+1220|0;qc=xf+1216|0;Bc=xf+1212|0;vc=xf+1208|0;Uc=xf+1204|0;Hd=xf+1200|0;wc=xf+1196|0;Db=xf+1192|0;xc=xf+1188|0;Wd=xf+1184|0;kb=xf+1180|0;Eb=xf+1176|0;Kd=xf+1160|0;Za=xf+1152|0;ma=xf+144|0;I=xf+1148|0;t=xf+1144|0;qe=xf+1140|0;ya=xf+1136|0;Fb=xf+1132|0;Xd=xf+1128|0;Lc=xf+1124|0;Mc=xf+1120|0;Ld=xf+1104|0;r=xf+1631|0;Gb=xf+1100|0;hc=xf+1096|0;Yd=xf+1092|0;na=xf+136|0;ue=xf+128|0;Hb=xf+1088|0;Zd=xf+1084|0;D=xf+1080|0;Xc=xf+1076|0;Hc=xf+1072|0;yc=xf+1068|0;Rc=xf+1064|0;oa=xf+120|0;Ib=xf+1060|0;hb=xf+1056|0;le=xf+1052|0;Ze=xf+1048|0;jf=xf+1044|0;ob=xf+1040|0;Jb=xf+1036|0;R=xf+1630|0;Kb=xf+1032|0;_d=xf+1028|0;ab=xf+1024|0;Lb=xf+1020|0;Mb=xf+1016|0;ic=xf+1012|0;Ka=xf+1008|0;La=xf+112|0;Nb=xf+1004|0;xe=xf+104|0;wd=xf+1e3|0;ad=xf+996|0;Pb=xf+992|0;Qb=xf+988|0;jc=xf+984|0;$d=xf+980|0;Sb=xf+976|0;kc=xf+972|0;be=xf+968|0;Vb=xf+964|0;ce=xf+960|0;_b=xf+956|0;$a=xf+952|0;cf=xf+948|0;$b=xf+944|0;lc=xf+940|0;de=xf+936|0;Md=xf+920|0;ac=xf+916|0;qd=xf+912|0;ge=xf+96|0;bc=xf+908|0;ee=xf+904|0;Nd=xf+888|0;ra=xf+884|0;ja=xf+880|0;Ta=xf+876|0;cc=xf+872|0;Id=xf+868|0;Q=xf+864|0;Cc=xf+860|0;ka=xf+856|0;df=xf+852|0;gf=xf+848|0;za=xf+832|0;eb=xf+828|0;q=xf+824|0;Ea=xf+820|0;Wa=xf+816|0;Te=xf+812|0;Jd=xf+808|0;ye=xf+88|0;va=xf+804|0;J=xf+800|0;bb=xf+796|0;Sa=xf+792|0;od=xf+788|0;Yc=xf+784|0;Fc=xf+780|0;Ic=xf+776|0;kd=xf+772|0;oe=xf+768|0;Jc=xf+764|0;Nc=xf+760|0;Kc=xf+756|0;Na=xf+752|0;oc=xf+748|0;_=xf+744|0;pc=xf+740|0;Zc=xf+736|0;pe=xf+48|0;_c=xf+732|0;aa=xf+728|0;p=xf+716|0;$c=xf+712|0;Ab=xf+708|0;jd=xf+704|0;F=xf+700|0;G=xf+696|0;af=xf+692|0;Bb=xf+688|0;Ca=xf+1629|0;qb=xf+684|0;Ue=xf+680|0;ud=xf+676|0;ke=xf+8|0;hf=xf+672|0;rc=xf+668|0;sd=xf+664|0;xd=xf+660|0;bd=xf+656|0;Oa=xf+652|0;sa=xf+648|0;cd=xf+644|0;ld=xf+640|0;xb=xf+636|0;td=xf+632|0;yd=xf+628|0;sc=xf+624|0;Ud=xf+620|0;T=xf+616|0;u=xf+612|0;zd=xf+608|0;dd=xf+604|0;Ec=xf+600|0;ie=xf+568|0;tc=xf+564|0;Ad=xf+560|0;ed=xf+556|0;Vd=xf+552|0;uc=xf+548|0;Bd=xf+544|0;gd=xf+540|0;Cd=xf+536|0;fd=xf+532|0;Pa=xf+528|0;V=xf+524|0;he=xf;v=xf+520|0;Ed=xf+516|0;Re=xf+1628|0;ib=xf+512|0;zb=xf+508|0;kf=xf+504|0;Ve=xf+500|0;c[lf>>2]=f;c[n>>2]=c[(c[lf>>2]|0)+4>>2];c[pf>>2]=c[n>>2];c[rf>>2]=0;c[mf>>2]=c[c[lf>>2]>>2];a[fe>>0]=0;a[H>>0]=a[(c[mf>>2]|0)+62>>0]|0;c[fa>>2]=0;c[of>>2]=0;c[db>>2]=0;c[l>>2]=c[(c[lf>>2]|0)+8>>2];c[Oc>>2]=0;c[Pc>>2]=0;c[Qc>>2]=0;c[id>>2]=0;c[o>>2]=0;yf=(c[mf>>2]|0)+32|0;f=c[yf+4>>2]|0;j=nf;c[j>>2]=c[yf>>2];c[j+4>>2]=f;PH(c[lf>>2]|0);a:do if((c[(c[lf>>2]|0)+80>>2]|0)==7)k=860;else{c[(c[lf>>2]|0)+80>>2]=0;yf=(c[lf>>2]|0)+136|0;c[yf>>2]=0;c[yf+4>>2]=0;c[(c[lf>>2]|0)+20>>2]=0;c[(c[mf>>2]|0)+448+8>>2]=0;b:do if(!(c[(c[mf>>2]|0)+240>>2]|0)){if(c[(c[mf>>2]|0)+296>>2]|0){c[g>>2]=c[(c[lf>>2]|0)+108+16>>2];c[db>>2]=(c[(c[mf>>2]|0)+304>>2]|0)-(((c[g>>2]|0)>>>0)%((c[(c[mf>>2]|0)+304>>2]|0)>>>0)|0)}c[pf>>2]=(c[n>>2]|0)+((c[(c[lf>>2]|0)+76>>2]|0)*20|0);c:while(1){if(c[rf>>2]|0)break a;c[of>>2]=(c[of>>2]|0)+1;d:do switch(d[c[pf>>2]>>0]|0){case 13:{k=8;break}case 14:{c[Oc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);b[(c[Oc>>2]|0)+8>>1]=4;yf=((c[pf>>2]|0)-(c[n>>2]|0)|0)/20|0;k=c[Oc>>2]|0;c[k>>2]=yf;c[k+4>>2]=((yf|0)<0)<<31>>31;k=15;break}case 15:{c[Oc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);c[pf>>2]=(c[n>>2]|0)+((c[c[Oc>>2]>>2]|0)*20|0);b[(c[Oc>>2]|0)+8>>1]=128;break}case 16:{c[id>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);j=(c[(c[pf>>2]|0)+12>>2]|0)-1|0;yf=c[id>>2]|0;c[yf>>2]=j;c[yf+4>>2]=((j|0)<0)<<31>>31;b[(c[id>>2]|0)+8>>1]=4;if(c[(c[pf>>2]|0)+8>>2]|0)k=15;break}case 17:{c[Oc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);c[dc>>2]=(c[n>>2]|0)+((c[c[Oc>>2]>>2]|0)*20|0);c[pf>>2]=(c[n>>2]|0)+(((c[(c[dc>>2]|0)+8>>2]|0)-1|0)*20|0);b[(c[Oc>>2]|0)+8>>1]=128;break}case 18:{c[Oc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);b[(c[Oc>>2]|0)+8>>1]=4;c[Gd>>2]=c[c[Oc>>2]>>2];j=((c[pf>>2]|0)-(c[n>>2]|0)|0)/20|0;yf=c[Oc>>2]|0;c[yf>>2]=j;c[yf+4>>2]=((j|0)<0)<<31>>31;c[pf>>2]=(c[n>>2]|0)+((c[Gd>>2]|0)*20|0);break}case 20:{c[Qc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+12>>2]|0)*40|0);if(e[(c[Qc>>2]|0)+8>>1]&1)k=21;break}case 21:{k=21;break}case 22:{c[id>>2]=UH(c[lf>>2]|0,c[pf>>2]|0)|0;j=c[(c[pf>>2]|0)+4>>2]|0;yf=c[id>>2]|0;c[yf>>2]=j;c[yf+4>>2]=((j|0)<0)<<31>>31;break}case 23:{c[id>>2]=UH(c[lf>>2]|0,c[pf>>2]|0)|0;f=c[(c[pf>>2]|0)+16>>2]|0;j=c[f+4>>2]|0;yf=c[id>>2]|0;c[yf>>2]=c[f>>2];c[yf+4>>2]=j;break}case 133:{c[id>>2]=UH(c[lf>>2]|0,c[pf>>2]|0)|0;b[(c[id>>2]|0)+8>>1]=8;h[c[id>>2]>>3]=+h[c[(c[pf>>2]|0)+16>>2]>>3];break}case 97:{c[id>>2]=UH(c[lf>>2]|0,c[pf>>2]|0)|0;a[c[pf>>2]>>0]=24;yf=If(c[(c[pf>>2]|0)+16>>2]|0)|0;c[(c[pf>>2]|0)+4>>2]=yf;if((d[H>>0]|0)!=1){c[rf>>2]=dh(c[id>>2]|0,c[(c[pf>>2]|0)+16>>2]|0,-1,1,0)|0;if((c[rf>>2]|0)==18){k=859;break c}if(Zt(c[id>>2]|0,d[H>>0]|0)|0){k=860;break a}c[(c[id>>2]|0)+24>>2]=0;yf=(c[id>>2]|0)+8|0;b[yf>>1]=e[yf>>1]|2048;if((a[(c[pf>>2]|0)+1>>0]|0)==-1)Sf(c[mf>>2]|0,c[(c[pf>>2]|0)+16>>2]|0);a[(c[pf>>2]|0)+1>>0]=-1;c[(c[pf>>2]|0)+16>>2]=c[(c[id>>2]|0)+16>>2];c[(c[pf>>2]|0)+4>>2]=c[(c[id>>2]|0)+12>>2]}if((c[(c[pf>>2]|0)+4>>2]|0)>(c[(c[mf>>2]|0)+88>>2]|0)){k=859;break c}else k=50;break}case 24:{k=50;break}case 25:{c[id>>2]=UH(c[lf>>2]|0,c[pf>>2]|0)|0;c[B>>2]=(c[(c[pf>>2]|0)+12>>2]|0)-(c[(c[pf>>2]|0)+8>>2]|0);yf=((c[(c[pf>>2]|0)+4>>2]|0)!=0?257:1)&65535;b[jb>>1]=yf;b[(c[id>>2]|0)+8>>1]=yf;while(1){if((c[B>>2]|0)<=0)break d;c[id>>2]=(c[id>>2]|0)+40;fh(c[id>>2]|0);b[(c[id>>2]|0)+8>>1]=b[jb>>1]|0;c[B>>2]=(c[B>>2]|0)+-1}}case 26:{c[id>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);b[(c[id>>2]|0)+8>>1]=(e[(c[id>>2]|0)+8>>1]|1)&-129;break}case 27:{c[id>>2]=UH(c[lf>>2]|0,c[pf>>2]|0)|0;dh(c[id>>2]|0,c[(c[pf>>2]|0)+16>>2]|0,c[(c[pf>>2]|0)+4>>2]|0,0,0)|0;a[(c[id>>2]|0)+10>>0]=a[H>>0]|0;break}case 28:{c[vd>>2]=(c[(c[lf>>2]|0)+60>>2]|0)+(((c[(c[pf>>2]|0)+4>>2]|0)-1|0)*40|0);if(VH(c[vd>>2]|0)|0){k=859;break c}c[id>>2]=UH(c[lf>>2]|0,c[pf>>2]|0)|0;BF(c[id>>2]|0,c[vd>>2]|0,2048);break}case 29:{c[Ha>>2]=c[(c[pf>>2]|0)+12>>2];c[pb>>2]=c[(c[pf>>2]|0)+4>>2];c[tb>>2]=c[(c[pf>>2]|0)+8>>2];c[Oc>>2]=(c[l>>2]|0)+((c[pb>>2]|0)*40|0);c[id>>2]=(c[l>>2]|0)+((c[tb>>2]|0)*40|0);do{EH(c[id>>2]|0,c[Oc>>2]|0);if((e[(c[id>>2]|0)+8>>1]&4096|0)!=0?(_g(c[id>>2]|0)|0)!=0:0){k=860;break a}c[Oc>>2]=(c[Oc>>2]|0)+40;c[id>>2]=(c[id>>2]|0)+40;yf=(c[Ha>>2]|0)+-1|0;c[Ha>>2]=yf}while((yf|0)!=0);break}case 30:{c[Ia>>2]=c[(c[pf>>2]|0)+12>>2];c[Oc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);c[id>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+8>>2]|0)*40|0);while(1){BF(c[id>>2]|0,c[Oc>>2]|0,4096);if((e[(c[id>>2]|0)+8>>1]&4096|0)!=0?(_g(c[id>>2]|0)|0)!=0:0){k=860;break a}yf=c[Ia>>2]|0;c[Ia>>2]=yf+-1;if(!yf)break d;c[id>>2]=(c[id>>2]|0)+40;c[Oc>>2]=(c[Oc>>2]|0)+40}}case 31:{c[Oc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);c[id>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+8>>2]|0)*40|0);BF(c[id>>2]|0,c[Oc>>2]|0,4096);break}case 32:{c[Oc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);c[id>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+8>>2]|0)*40|0);yf=c[Oc>>2]|0;eh(c[id>>2]|0,c[yf>>2]|0,c[yf+4>>2]|0);break}case 33:{if(((c[(c[mf>>2]|0)+296>>2]|0)!=0?(c[of>>2]|0)>>>0>=(c[db>>2]|0)>>>0:0)?(Tb[c[(c[mf>>2]|0)+296>>2]&255](c[(c[mf>>2]|0)+300>>2]|0)|0)!=0:0){k=74;break c}yf=WH(c[lf>>2]|0,0)|0;c[rf>>2]=yf;if(0==(yf|0)?(c[rf>>2]=XH(c[lf>>2]|0,1)|0,(c[rf>>2]|0)==0):0){k=77;break c}break}case 94:{c[Oc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);c[Pc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+8>>2]|0)*40|0);c[id>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+12>>2]|0)*40|0);if((e[(c[Oc>>2]|0)+8>>1]|e[(c[Pc>>2]|0)+8>>1])&1){fh(c[id>>2]|0);break d}if((e[(c[Oc>>2]|0)+8>>1]&16384|0)!=0?(Vg(c[Oc>>2]|0)|0)!=0:0){k=860;break a}if((e[(c[Pc>>2]|0)+8>>1]&16384|0)!=0?(Vg(c[Pc>>2]|0)|0)!=0:0){k=860;break a}if((e[(c[Oc>>2]|0)+8>>1]&18|0)==0?(sx(c[Oc>>2]|0,a[H>>0]|0,0)|0)!=0:0){k=860;break a}if((e[(c[Pc>>2]|0)+8>>1]&18|0)==0?(sx(c[Pc>>2]|0,a[H>>0]|0,0)|0)!=0:0){k=860;break a}g=(c[(c[Oc>>2]|0)+12>>2]|0)+(c[(c[Pc>>2]|0)+12>>2]|0)|0;j=Qa;c[j>>2]=g;c[j+4>>2]=((g|0)<0)<<31>>31;j=Qa;g=c[j+4>>2]|0;yf=c[(c[mf>>2]|0)+88>>2]|0;f=((yf|0)<0)<<31>>31;if((g|0)>(f|0)|((g|0)==(f|0)?(c[j>>2]|0)>>>0>yf>>>0:0)){k=859;break c}if(ux(c[id>>2]|0,(c[Qa>>2]|0)+2|0,(c[id>>2]|0)==(c[Pc>>2]|0)&1)|0){k=860;break a}b[(c[id>>2]|0)+8>>1]=e[(c[id>>2]|0)+8>>1]&-49664|2;if((c[id>>2]|0)!=(c[Pc>>2]|0))iR(c[(c[id>>2]|0)+16>>2]|0,c[(c[Pc>>2]|0)+16>>2]|0,c[(c[Pc>>2]|0)+12>>2]|0)|0;iR((c[(c[id>>2]|0)+16>>2]|0)+(c[(c[Pc>>2]|0)+12>>2]|0)|0,c[(c[Oc>>2]|0)+16>>2]|0,c[(c[Oc>>2]|0)+12>>2]|0)|0;a[(c[(c[id>>2]|0)+16>>2]|0)+(c[Qa>>2]|0)>>0]=0;yf=Qa;yf=gR(c[yf>>2]|0,c[yf+4>>2]|0,1,0)|0;a[(c[(c[id>>2]|0)+16>>2]|0)+yf>>0]=0;yf=(c[id>>2]|0)+8|0;b[yf>>1]=e[yf>>1]|512;c[(c[id>>2]|0)+12>>2]=c[Qa>>2];a[(c[id>>2]|0)+10>>0]=a[H>>0]|0;break}case 93:case 92:case 91:case 90:case 89:{c[Oc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);b[re>>1]=ZH(c[Oc>>2]|0)|0;c[Pc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+8>>2]|0)*40|0);b[se>>1]=ZH(c[Pc>>2]|0)|0;c[id>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+12>>2]|0)*40|0);b[L>>1]=e[(c[Oc>>2]|0)+8>>1]|e[(c[Pc>>2]|0)+8>>1];e:do if(!(e[L>>1]&1)){f:do if(e[re>>1]&e[se>>1]&4){yf=c[Oc>>2]|0;j=c[yf+4>>2]|0;f=ba;c[f>>2]=c[yf>>2];c[f+4>>2]=j;f=c[Pc>>2]|0;j=c[f+4>>2]|0;yf=da;c[yf>>2]=c[f>>2];c[yf+4>>2]=j;a[x>>0]=1;switch(d[c[pf>>2]>>0]|0){case 89:{yf=ba;if(_H(da,c[yf>>2]|0,c[yf+4>>2]|0)|0)break f;break}case 90:{yf=ba;if($H(da,c[yf>>2]|0,c[yf+4>>2]|0)|0)break f;break}case 91:{yf=ba;if(aI(da,c[yf>>2]|0,c[yf+4>>2]|0)|0)break f;break}case 92:{yf=ba;if((c[yf>>2]|0)==0&(c[yf+4>>2]|0)==0)break e;j=ba;yf=da;if(((c[j>>2]|0)==-1?(c[j+4>>2]|0)==-1:0)&((c[yf>>2]|0)==0?(c[yf+4>>2]|0)==-2147483648:0))break f;j=ba;f=da;yf=da;c[yf>>2]=pR(c[f>>2]|0,c[f+4>>2]|0,c[j>>2]|0,c[j+4>>2]|0)|0;c[yf+4>>2]=C;break}default:{yf=ba;if((c[yf>>2]|0)==0&(c[yf+4>>2]|0)==0)break e;yf=ba;if((c[yf>>2]|0)==-1?(c[yf+4>>2]|0)==-1:0){yf=ba;c[yf>>2]=1;c[yf+4>>2]=0}j=ba;f=da;yf=da;c[yf>>2]=qR(c[f>>2]|0,c[f+4>>2]|0,c[j>>2]|0,c[j+4>>2]|0)|0;c[yf+4>>2]=C}}f=da;j=c[f+4>>2]|0;yf=c[id>>2]|0;c[yf>>2]=c[f>>2];c[yf+4>>2]=j;b[(c[id>>2]|0)+8>>1]=e[(c[id>>2]|0)+8>>1]&-49664|4;break d}else a[x>>0]=0;while(0);h[Od>>3]=+Yg(c[Oc>>2]|0);h[Pd>>3]=+Yg(c[Pc>>2]|0);switch(d[c[pf>>2]>>0]|0){case 89:{h[Pd>>3]=+h[Pd>>3]+ +h[Od>>3];break}case 90:{h[Pd>>3]=+h[Pd>>3]-+h[Od>>3];break}case 91:{h[Pd>>3]=+h[Pd>>3]*+h[Od>>3];break}case 92:{if(+h[Od>>3]==0.0)break e;h[Pd>>3]=+h[Pd>>3]/+h[Od>>3];break}default:{zf=+h[Od>>3];yf=+N(zf)>=1.0?zf>0.0?~~+$(+M(zf/4294967296.0),4294967295.0)>>>0:~~+Z((zf-+(~~zf>>>0))/4294967296.0)>>>0:0;j=ba;c[j>>2]=~~zf>>>0;c[j+4>>2]=yf;zf=+h[Pd>>3];j=+N(zf)>=1.0?zf>0.0?~~+$(+M(zf/4294967296.0),4294967295.0)>>>0:~~+Z((zf-+(~~zf>>>0))/4294967296.0)>>>0:0;yf=da;c[yf>>2]=~~zf>>>0;c[yf+4>>2]=j;yf=ba;if((c[yf>>2]|0)==0&(c[yf+4>>2]|0)==0)break e;yf=ba;if((c[yf>>2]|0)==-1?(c[yf+4>>2]|0)==-1:0){yf=ba;c[yf>>2]=1;c[yf+4>>2]=0}j=da;yf=ba;h[Pd>>3]=+((qR(c[j>>2]|0,c[j+4>>2]|0,c[yf>>2]|0,c[yf+4>>2]|0)|0)>>>0)+4294967296.0*+(C|0)}}if(!(HF(+h[Pd>>3])|0)){h[c[id>>2]>>3]=+h[Pd>>3];b[(c[id>>2]|0)+8>>1]=e[(c[id>>2]|0)+8>>1]&-49664|8;if((a[x>>0]|0)!=0?1:((e[re>>1]|e[se>>1])&8|0)!=0)break d;px(c[id>>2]|0);break d}}while(0);fh(c[id>>2]|0);break}case 34:{if(c[(c[pf>>2]|0)+4>>2]|0)eh((c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0)|0,0,0);break}case 35:{c[Ja>>2]=d[(c[pf>>2]|0)+3>>0];c[mc>>2]=Fw(c[mf>>2]|0,32+((c[Ja>>2]|0)-1<<2)|0,0)|0;if(!(c[mc>>2]|0)){k=860;break a}c[c[mc>>2]>>2]=0;c[(c[mc>>2]|0)+4>>2]=c[(c[pf>>2]|0)+16>>2];c[(c[mc>>2]|0)+16>>2]=((c[pf>>2]|0)-(c[n>>2]|0)|0)/20|0;c[(c[mc>>2]|0)+12>>2]=c[lf>>2];a[(c[mc>>2]|0)+26>>0]=c[Ja>>2];a[(c[pf>>2]|0)+1>>0]=-20;c[(c[pf>>2]|0)+16>>2]=c[mc>>2];a[c[pf>>2]>>0]=36;k=132;break}case 36:{k=132;break}case 88:case 87:case 86:case 85:{c[Oc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);c[Pc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+8>>2]|0)*40|0);c[id>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+12>>2]|0)*40|0);if((e[(c[Oc>>2]|0)+8>>1]|e[(c[Pc>>2]|0)+8>>1])&1){fh(c[id>>2]|0);break d}yf=Zg(c[Pc>>2]|0)|0;j=ca;c[j>>2]=yf;c[j+4>>2]=C;j=Zg(c[Oc>>2]|0)|0;yf=ea;c[yf>>2]=j;c[yf+4>>2]=C;a[nb>>0]=a[c[pf>>2]>>0]|0;do if((d[nb>>0]|0)!=85){f=ea;g=c[f>>2]|0;f=c[f+4>>2]|0;if((d[nb>>0]|0)==86){Af=ca;j=c[Af+4>>2]|f;yf=ca;c[yf>>2]=c[Af>>2]|g;c[yf+4>>2]=j;break}if((g|0)!=0|(f|0)!=0){if((c[ea+4>>2]|0)<0){a[nb>>0]=175-(d[nb>>0]|0);yf=ea;j=c[yf+4>>2]|0;yf=(j|0)>-1|(j|0)==-1&(c[yf>>2]|0)>>>0>4294967232;j=ea;j=fR(0,0,c[j>>2]|0,c[j+4>>2]|0)|0;Af=ea;c[Af>>2]=yf?j:64;c[Af+4>>2]=yf?C:0}Af=ea;yf=c[Af+4>>2]|0;if((yf|0)>0|(yf|0)==0&(c[Af>>2]|0)>>>0>=64){Af=ca;yf=c[Af+4>>2]|0;if((yf|0)>0|(yf|0)==0&(c[Af>>2]|0)>>>0>=0)g=1;else g=(d[nb>>0]|0)==87;yf=g?0:-1;Af=ca;c[Af>>2]=yf;c[Af+4>>2]=((yf|0)<0)<<31>>31;break}c[te>>2]=c[ca>>2];c[te+4>>2]=c[ca+4>>2];g=c[ea>>2]|0;j=te;f=c[j>>2]|0;j=c[j+4>>2]|0;if((d[nb>>0]|0)!=87){yf=hR(f|0,j|0,g|0)|0;Af=te;c[Af>>2]=yf;c[Af+4>>2]=C;if((c[ca+4>>2]|0)<0){j=ea;j=fR(64,0,c[j>>2]|0,c[j+4>>2]|0)|0;j=lR(-1,-1,j|0)|0;f=te;yf=c[f+4>>2]|C;Af=te;c[Af>>2]=c[f>>2]|j;c[Af+4>>2]=yf}}else{yf=lR(f|0,j|0,g|0)|0;Af=te;c[Af>>2]=yf;c[Af+4>>2]=C}c[ca>>2]=c[te>>2];c[ca+4>>2]=c[te+4>>2]}}else{j=ea;f=ca;yf=c[f+4>>2]&c[j+4>>2];Af=ca;c[Af>>2]=c[f>>2]&c[j>>2];c[Af+4>>2]=yf}while(0);j=ca;yf=c[j+4>>2]|0;Af=c[id>>2]|0;c[Af>>2]=c[j>>2];c[Af+4>>2]=yf;b[(c[id>>2]|0)+8>>1]=e[(c[id>>2]|0)+8>>1]&-49664|4;break}case 37:{c[Oc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);wx(c[Oc>>2]|0)|0;yf=c[(c[pf>>2]|0)+8>>2]|0;Af=c[Oc>>2]|0;j=Af;yf=gR(c[j>>2]|0,c[j+4>>2]|0,yf|0,((yf|0)<0)<<31>>31|0)|0;c[Af>>2]=yf;c[Af+4>>2]=C;break}case 38:{c[Oc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);if((e[(c[Oc>>2]|0)+8>>1]&4|0)==0?(rx(c[Oc>>2]|0,67,a[H>>0]|0),(e[(c[Oc>>2]|0)+8>>1]&4|0)==0):0)if(!(c[(c[pf>>2]|0)+8>>2]|0)){k=165;break c}else{k=15;break d}b[(c[Oc>>2]|0)+8>>1]=e[(c[Oc>>2]|0)+8>>1]&-49664|4;break}case 39:{c[Oc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);if(e[(c[Oc>>2]|0)+8>>1]&4)xx(c[Oc>>2]|0)|0;break}case 40:{c[Oc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);if(e[(c[Oc>>2]|0)+8>>1]&16384)g=Vg(c[Oc>>2]|0)|0;else g=0;c[rf>>2]=g;kx(c[Oc>>2]|0,c[(c[pf>>2]|0)+8>>2]&255,a[H>>0]|0);break}case 83:case 80:case 81:case 82:case 78:case 79:{c[Oc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);c[Qc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+12>>2]|0)*40|0);b[O>>1]=b[(c[Oc>>2]|0)+8>>1]|0;b[P>>1]=b[(c[Qc>>2]|0)+8>>1]|0;g=d[(c[pf>>2]|0)+3>>0]|0;do if((e[O>>1]|e[P>>1])&1){if(!(g&128)){g=c[pf>>2]|0;if(!(d[(c[pf>>2]|0)+3>>0]&32))if(d[g+3>>0]&16){k=15;break d}else break d;else{c[id>>2]=(c[l>>2]|0)+((c[g+8>>2]|0)*40|0);b[(c[id>>2]|0)+8>>1]=e[(c[id>>2]|0)+8>>1]&-49664|1;break d}}if(((e[O>>1]&1|0)!=0?(e[P>>1]&1|0)!=0:0)?(e[P>>1]&256|0)==0:0){c[Qd>>2]=0;break}c[Qd>>2]=1}else{a[s>>0]=g&71;if((a[s>>0]|0)>=67){if((e[O>>1]&14|0)==2)xh(c[Oc>>2]|0,0);if((e[P>>1]&14|0)==2)xh(c[Qc>>2]|0,0)}else if((a[s>>0]|0)==66){if((e[O>>1]&2|0)==0?(e[O>>1]&12|0)!=0:0){sx(c[Oc>>2]|0,a[H>>0]|0,1)|0;b[O>>1]=e[(c[Oc>>2]|0)+8>>1]&-33280|e[O>>1]&33279}if((e[P>>1]&2|0)==0?(e[P>>1]&12|0)!=0:0){sx(c[Qc>>2]|0,a[H>>0]|0,1)|0;b[P>>1]=e[(c[Qc>>2]|0)+8>>1]&-33280|e[P>>1]&33279}}if(e[O>>1]&16384){Vg(c[Oc>>2]|0)|0;b[O>>1]=e[O>>1]&-16385}if(e[P>>1]&16384){Vg(c[Qc>>2]|0)|0;b[P>>1]=e[P>>1]&-16385}c[Qd>>2]=cI(c[Qc>>2]|0,c[Oc>>2]|0,c[(c[pf>>2]|0)+16>>2]|0)|0}while(0);switch(d[c[pf>>2]>>0]|0){case 79:{c[Qd>>2]=(c[Qd>>2]|0)==0&1;break}case 78:{c[Qd>>2]=(c[Qd>>2]|0)!=0&1;break}case 82:{c[Qd>>2]=(c[Qd>>2]|0)<0&1;break}case 81:{c[Qd>>2]=(c[Qd>>2]|0)<=0&1;break}case 80:{c[Qd>>2]=(c[Qd>>2]|0)>0&1;break}default:c[Qd>>2]=(c[Qd>>2]|0)>=0&1}b[(c[Oc>>2]|0)+8>>1]=b[O>>1]|0;b[(c[Qc>>2]|0)+8>>1]=b[P>>1]|0;if(!(d[(c[pf>>2]|0)+3>>0]&32))if(c[Qd>>2]|0){k=15;break d}else break d;else{c[id>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+8>>2]|0)*40|0);b[(c[id>>2]|0)+8>>1]=e[(c[id>>2]|0)+8>>1]&-49664|4;yf=c[Qd>>2]|0;Af=c[id>>2]|0;c[Af>>2]=yf;c[Af+4>>2]=((yf|0)<0)<<31>>31;break d}}case 41:{c[o>>2]=(c[(c[pf>>2]|0)+16>>2]|0)+4;break}case 42:{if(!(d[(c[pf>>2]|0)+3>>0]&1))c[o>>2]=0;c[Ma>>2]=c[(c[pf>>2]|0)+12>>2];c[Sc>>2]=c[(c[pf>>2]|0)+16>>2];c[sb>>2]=c[(c[pf>>2]|0)+4>>2];c[ub>>2]=c[(c[pf>>2]|0)+8>>2];c[Y>>2]=0;while(1){if((c[Y>>2]|0)>=(c[Ma>>2]|0))break;g=c[Y>>2]|0;if(c[o>>2]|0)g=c[(c[o>>2]|0)+(g<<2)>>2]|0;c[wa>>2]=g;c[ec>>2]=c[(c[Sc>>2]|0)+20+(c[Y>>2]<<2)>>2];c[y>>2]=d[(c[(c[Sc>>2]|0)+16>>2]|0)+(c[Y>>2]|0)>>0];c[fa>>2]=cI((c[l>>2]|0)+(((c[sb>>2]|0)+(c[wa>>2]|0)|0)*40|0)|0,(c[l>>2]|0)+(((c[ub>>2]|0)+(c[wa>>2]|0)|0)*40|0)|0,c[ec>>2]|0)|0;if(c[fa>>2]|0){k=217;break}c[Y>>2]=(c[Y>>2]|0)+1}if((k|0)==217?(k=0,(c[y>>2]|0)!=0):0)c[fa>>2]=0-(c[fa>>2]|0);c[o>>2]=0;break}case 43:{if((c[fa>>2]|0)<0){c[pf>>2]=(c[n>>2]|0)+(((c[(c[pf>>2]|0)+4>>2]|0)-1|0)*20|0);break d}g=c[pf>>2]|0;if(!(c[fa>>2]|0)){c[pf>>2]=(c[n>>2]|0)+(((c[g+8>>2]|0)-1|0)*20|0);break d}else{c[pf>>2]=(c[n>>2]|0)+(((c[g+12>>2]|0)-1|0)*20|0);break d}}case 71:case 72:{c[Oc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);if(e[(c[Oc>>2]|0)+8>>1]&1)c[ve>>2]=2;else{Af=Zg(c[Oc>>2]|0)|0;c[ve>>2]=((Af|0)!=0|(C|0)!=0)&1}c[Pc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+8>>2]|0)*40|0);if(e[(c[Pc>>2]|0)+8>>1]&1)c[we>>2]=2;else{Af=Zg(c[Pc>>2]|0)|0;c[we>>2]=((Af|0)!=0|(C|0)!=0)&1}g=((c[ve>>2]|0)*3|0)+(c[we>>2]|0)|0;if((d[c[pf>>2]>>0]|0)==72)c[ve>>2]=d[40716+g>>0];else c[ve>>2]=d[40725+g>>0];c[id>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+12>>2]|0)*40|0);if((c[ve>>2]|0)==2){b[(c[id>>2]|0)+8>>1]=e[(c[id>>2]|0)+8>>1]&-49664|1;break d}else{yf=c[ve>>2]|0;Af=c[id>>2]|0;c[Af>>2]=yf;c[Af+4>>2]=((yf|0)<0)<<31>>31;b[(c[id>>2]|0)+8>>1]=e[(c[id>>2]|0)+8>>1]&-49664|4;break d}}case 19:{c[Oc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);c[id>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+8>>2]|0)*40|0);fh(c[id>>2]|0);if(!(e[(c[Oc>>2]|0)+8>>1]&1)){b[(c[id>>2]|0)+8>>1]=4;yf=Zg(c[Oc>>2]|0)|0;yf=(((yf|0)!=0|(C|0)!=0)^1)&1;Af=c[id>>2]|0;c[Af>>2]=yf;c[Af+4>>2]=((yf|0)<0)<<31>>31}break}case 96:{c[Oc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);c[id>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+8>>2]|0)*40|0);fh(c[id>>2]|0);if(!(e[(c[Oc>>2]|0)+8>>1]&1)){b[(c[id>>2]|0)+8>>1]=4;yf=Zg(c[Oc>>2]|0)|0;Af=c[id>>2]|0;c[Af>>2]=~yf;c[Af+4>>2]=~C}break}case 44:{if(a[(c[(c[lf>>2]|0)+200>>2]|0)+(c[(c[pf>>2]|0)+4>>2]|0)>>0]|0)k=15;else a[(c[(c[lf>>2]|0)+200>>2]|0)+(c[(c[pf>>2]|0)+4>>2]|0)>>0]=1;break}case 46:case 45:{c[Oc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);if(!(e[(c[Oc>>2]|0)+8>>1]&1)){c[z>>2]=+Yg(c[Oc>>2]|0)!=0.0&1;if((d[c[pf>>2]>>0]|0)==46)c[z>>2]=((c[z>>2]|0)!=0^1)&1}else c[z>>2]=c[(c[pf>>2]|0)+12>>2];if(c[z>>2]|0)k=15;break}case 76:{c[Oc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);if(e[(c[Oc>>2]|0)+8>>1]&1)k=15;break}case 77:{c[Oc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);if(!(e[(c[Oc>>2]|0)+8>>1]&1))k=15;break}case 47:{c[Cb>>2]=c[(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<2)>>2];c[vb>>2]=c[(c[pf>>2]|0)+8>>2];c[rf>>2]=dI(Cb,vb)|0;c[Dc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+12>>2]|0)*40|0);c[m>>2]=c[(c[Cb>>2]|0)+76>>2];c[fc>>2]=c[(c[Cb>>2]|0)+16>>2];if(c[rf>>2]|0){k=861;break c}g=c[Cb>>2]|0;do if((c[(c[Cb>>2]|0)+56>>2]|0)!=(c[(c[lf>>2]|0)+72>>2]|0)){f=c[Cb>>2]|0;do if(a[g+2>>0]|0)if((d[f>>0]|0)==3){c[nd>>2]=(c[l>>2]|0)+((c[(c[Cb>>2]|0)+16>>2]|0)*40|0);Af=c[(c[nd>>2]|0)+12>>2]|0;c[w>>2]=Af;c[(c[Cb>>2]|0)+64>>2]=Af;c[(c[Cb>>2]|0)+60>>2]=Af;c[(c[Cb>>2]|0)+72>>2]=c[(c[nd>>2]|0)+16>>2];break}else{fh(c[Dc>>2]|0);break d}else{g=c[fc>>2]|0;if(!(d[f+4>>0]|0)){sH(g,Fd)|0;Af=eI(c[fc>>2]|0,w)|0;c[(c[Cb>>2]|0)+72>>2]=Af;c[(c[Cb>>2]|0)+60>>2]=c[Fd>>2]}else{fI(g,(c[Cb>>2]|0)+60|0)|0;Af=gI(c[fc>>2]|0,w)|0;c[(c[Cb>>2]|0)+72>>2]=Af}g=c[(c[Cb>>2]|0)+60>>2]|0;if((c[(c[Cb>>2]|0)+60>>2]|0)>>>0<=(c[w>>2]|0)>>>0){c[(c[Cb>>2]|0)+64>>2]=g;break}if(g>>>0>(c[(c[mf>>2]|0)+88>>2]|0)>>>0){k=859;break c}c[(c[Cb>>2]|0)+64>>2]=c[w>>2]}while(0);c[(c[Cb>>2]|0)+56>>2]=c[(c[lf>>2]|0)+72>>2];g=c[(c[Cb>>2]|0)+72>>2]|0;if((d[c[(c[Cb>>2]|0)+72>>2]>>0]|0)<128){c[lb>>2]=d[g>>0];g=1}else g=(tF(g,lb)|0)&255;c[(c[Cb>>2]|0)+68>>2]=g&255;b[(c[Cb>>2]|0)+14>>1]=0;c[c[m>>2]>>2]=c[lb>>2];if((c[w>>2]|0)>>>0<(c[lb>>2]|0)>>>0){c[(c[Cb>>2]|0)+72>>2]=0;c[(c[Cb>>2]|0)+64>>2]=0;if((c[lb>>2]|0)>>>0<=98307?(c[lb>>2]|0)>>>0<=(c[(c[Cb>>2]|0)+60>>2]|0)>>>0:0){k=272;break}c[rf>>2]=Lj(76686)|0;break d}else k=272}else if((e[g+14>>1]|0)<=(c[vb>>2]|0))k=272;else c[ne>>2]=c[(c[Cb>>2]|0)+80+(c[vb>>2]<<2)>>2];while(0);if((k|0)==272){k=0;do if((c[(c[Cb>>2]|0)+68>>2]|0)>>>0<(c[c[m>>2]>>2]|0)>>>0){if(!(c[(c[Cb>>2]|0)+72>>2]|0)){g=je;f=g+40|0;do{c[g>>2]=0;g=g+4|0}while((g|0)<(f|0));c[rf>>2]=hI(c[fc>>2]|0,0,c[c[m>>2]>>2]|0,((a[(c[Cb>>2]|0)+4>>0]|0)!=0^1)&1,je)|0;if(c[rf>>2]|0)break d;c[Ye>>2]=c[je+16>>2]}else c[Ye>>2]=c[(c[Cb>>2]|0)+72>>2];c[U>>2]=e[(c[Cb>>2]|0)+14>>1];Af=mb;c[Af>>2]=c[(c[m>>2]|0)+(c[U>>2]<<2)>>2];c[Af+4>>2]=0;c[bf>>2]=(c[Ye>>2]|0)+(c[(c[Cb>>2]|0)+68>>2]|0);c[_e>>2]=(c[Ye>>2]|0)+(c[c[m>>2]>>2]|0);do{Af=d[c[bf>>2]>>0]|0;c[ne>>2]=Af;g=c[bf>>2]|0;if(Af>>>0<128){c[bf>>2]=g+1;yf=(iI(c[ne>>2]&255)|0)&255;Af=mb;yf=gR(c[Af>>2]|0,c[Af+4>>2]|0,yf|0,0)|0;Af=mb;c[Af>>2]=yf;c[Af+4>>2]=C}else{yf=(tF(g,ne)|0)&255;c[bf>>2]=(c[bf>>2]|0)+yf;yf=uF(c[ne>>2]|0)|0;Af=mb;yf=gR(c[Af>>2]|0,c[Af+4>>2]|0,yf|0,0)|0;Af=mb;c[Af>>2]=yf;c[Af+4>>2]=C}yf=c[ne>>2]|0;Af=c[U>>2]|0;c[U>>2]=Af+1;c[(c[Cb>>2]|0)+80+(Af<<2)>>2]=yf;c[(c[m>>2]|0)+(c[U>>2]<<2)>>2]=c[mb>>2];if((c[U>>2]|0)>(c[vb>>2]|0))break}while((c[bf>>2]|0)>>>0<(c[_e>>2]|0)>>>0);b[(c[Cb>>2]|0)+14>>1]=c[U>>2];c[(c[Cb>>2]|0)+68>>2]=(c[bf>>2]|0)-(c[Ye>>2]|0);if(!(c[(c[Cb>>2]|0)+72>>2]|0))Ug(je);
  90. if((c[bf>>2]|0)>>>0>=(c[_e>>2]|0)>>>0){if((c[bf>>2]|0)>>>0<=(c[_e>>2]|0)>>>0?(Af=mb,!((c[Af+4>>2]|0)!=0?1:(c[Af>>2]|0)!=(c[(c[Cb>>2]|0)+60>>2]|0))):0)k=288}else k=288;if((k|0)==288?(k=0,Af=mb,yf=c[Af+4>>2]|0,!(yf>>>0>0|((yf|0)==0?(c[Af>>2]|0)>>>0>(c[(c[Cb>>2]|0)+60>>2]|0)>>>0:0))):0)break;c[rf>>2]=Lj(76747)|0;break d}else c[ne>>2]=0;while(0);if((e[(c[Cb>>2]|0)+14>>1]|0)<=(c[vb>>2]|0)){g=c[Dc>>2]|0;if((a[(c[pf>>2]|0)+1>>0]|0)==-8){BF(g,c[(c[pf>>2]|0)+16>>2]|0,2048);break d}else{fh(g);break d}}}if(e[(c[Dc>>2]|0)+8>>1]&9312)fh(c[Dc>>2]|0);a[(c[Dc>>2]|0)+10>>0]=a[H>>0]|0;if((c[(c[Cb>>2]|0)+64>>2]|0)>>>0>=(c[(c[m>>2]|0)+((c[vb>>2]|0)+1<<2)>>2]|0)>>>0){c[Ye>>2]=(c[(c[Cb>>2]|0)+72>>2]|0)+(c[(c[m>>2]|0)+(c[vb>>2]<<2)>>2]|0);if((c[ne>>2]|0)>>>0<12){vF(c[Ye>>2]|0,c[ne>>2]|0,c[Dc>>2]|0)|0;break d}g=(((c[ne>>2]|0)-12|0)>>>0)/2|0;c[Fa>>2]=g;c[(c[Dc>>2]|0)+12>>2]=g;g=c[Dc>>2]|0;if((c[(c[Dc>>2]|0)+24>>2]|0)<((c[Fa>>2]|0)+2|0)){b[g+8>>1]=1;if(ux(c[Dc>>2]|0,(c[Fa>>2]|0)+2|0,0)|0){k=860;break a}}else c[(c[Dc>>2]|0)+16>>2]=c[g+20>>2];iR(c[(c[Dc>>2]|0)+16>>2]|0,c[Ye>>2]|0,c[Fa>>2]|0)|0;a[(c[(c[Dc>>2]|0)+16>>2]|0)+(c[Fa>>2]|0)>>0]=0;a[(c[(c[Dc>>2]|0)+16>>2]|0)+((c[Fa>>2]|0)+1)>>0]=0;b[(c[Dc>>2]|0)+8>>1]=b[17282+((c[ne>>2]&1)<<1)>>1]|0;break d}do if(d[(c[pf>>2]|0)+3>>0]&192){if((c[ne>>2]|0)>>>0>=12?(c[ne>>2]&1|0)==0:0)break;if(!(d[(c[pf>>2]|0)+3>>0]&128))k=309}else k=309;while(0);if((k|0)==309?(k=0,Af=uF(c[ne>>2]|0)|0,c[Fa>>2]=Af,(Af|0)!=0):0){c[rf>>2]=hI(c[fc>>2]|0,c[(c[m>>2]|0)+(c[vb>>2]<<2)>>2]|0,c[Fa>>2]|0,((a[(c[Cb>>2]|0)+4>>0]|0)!=0^1)&1,c[Dc>>2]|0)|0;if(c[rf>>2]|0)break d;vF(c[(c[Dc>>2]|0)+16>>2]|0,c[ne>>2]|0,c[Dc>>2]|0)|0;Af=(c[Dc>>2]|0)+8|0;b[Af>>1]=e[Af>>1]&-4097;break d}vF(40734,c[ne>>2]|0,c[Dc>>2]|0)|0;break}case 48:{c[We>>2]=c[(c[pf>>2]|0)+16>>2];c[Oc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);while(1){Af=c[We>>2]|0;c[We>>2]=Af+1;Af=a[Af>>0]|0;a[A>>0]=Af;if(!(Af<<24>>24))break d;rx(c[Oc>>2]|0,a[A>>0]|0,a[H>>0]|0);c[Oc>>2]=(c[Oc>>2]|0)+40}}case 49:{Af=Ua;c[Af>>2]=0;c[Af+4>>2]=0;c[_a>>2]=0;Af=gb;c[Af>>2]=0;c[Af+4>>2]=0;c[Xa>>2]=c[(c[pf>>2]|0)+4>>2];c[Xe>>2]=c[(c[pf>>2]|0)+16>>2];c[zc>>2]=(c[l>>2]|0)+((c[Xa>>2]|0)*40|0);c[Xa>>2]=c[(c[pf>>2]|0)+8>>2];c[Vc>>2]=(c[zc>>2]|0)+(((c[Xa>>2]|0)-1|0)*40|0);c[K>>2]=d[(c[lf>>2]|0)+87>>0];c[id>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+12>>2]|0)*40|0);if(c[Xe>>2]|0){c[md>>2]=c[zc>>2];do{yf=c[md>>2]|0;c[md>>2]=yf+40;Af=c[Xe>>2]|0;c[Xe>>2]=Af+1;rx(yf,a[Af>>0]|0,a[H>>0]|0)}while((a[c[Xe>>2]>>0]|0)!=0)}c[md>>2]=c[Vc>>2];do{Af=jI(c[md>>2]|0,c[K>>2]|0,Ga)|0;c[me>>2]=Af;c[(c[md>>2]|0)+28>>2]=Af;do if(e[(c[md>>2]|0)+8>>1]&16384){Af=Ua;g=c[md>>2]|0;if((c[Af>>2]|0)!=0|(c[Af+4>>2]|0)!=0)if(Vg(g)|0){k=860;break a}else break;else{yf=c[g>>2]|0;Af=gb;yf=gR(c[Af>>2]|0,c[Af+4>>2]|0,yf|0,((yf|0)<0)<<31>>31|0)|0;Af=gb;c[Af>>2]=yf;c[Af+4>>2]=C;c[Ga>>2]=(c[Ga>>2]|0)-(c[c[md>>2]>>2]|0);break}}while(0);yf=Ua;yf=gR(c[yf>>2]|0,c[yf+4>>2]|0,c[Ga>>2]|0,0)|0;Af=Ua;c[Af>>2]=yf;c[Af+4>>2]=C;if((c[me>>2]|0)>>>0<=127)g=1;else g=zF(c[me>>2]|0,0)|0;c[_a>>2]=(c[_a>>2]|0)+g;Af=(c[md>>2]|0)+-40|0;c[md>>2]=Af}while(Af>>>0>=(c[zc>>2]|0)>>>0);g=c[_a>>2]|0;if((c[_a>>2]|0)>126){c[fb>>2]=zF(g,((g|0)<0)<<31>>31)|0;c[_a>>2]=(c[_a>>2]|0)+(c[fb>>2]|0);yf=c[fb>>2]|0;Af=c[_a>>2]|0;if((yf|0)<(zF(Af,((Af|0)<0)<<31>>31)|0))c[_a>>2]=(c[_a>>2]|0)+1}else c[_a>>2]=g+1;f=c[_a>>2]|0;yf=Ua;yf=gR(f|0,((f|0)<0)<<31>>31|0,c[yf>>2]|0,c[yf+4>>2]|0)|0;f=Ra;c[f>>2]=yf;c[f+4>>2]=C;f=Ra;yf=gb;yf=gR(c[f>>2]|0,c[f+4>>2]|0,c[yf>>2]|0,c[yf+4>>2]|0)|0;f=C;Af=c[(c[mf>>2]|0)+88>>2]|0;j=((Af|0)<0)<<31>>31;if((f|0)>(j|0)|(f|0)==(j|0)&yf>>>0>Af>>>0){k=859;break c}if(tx(c[id>>2]|0,c[Ra>>2]|0)|0){k=860;break a}c[ff>>2]=c[(c[id>>2]|0)+16>>2];if((c[_a>>2]|0)>>>0<128){a[c[ff>>2]>>0]=c[_a>>2];g=1}else{g=c[_a>>2]|0;g=kI(c[ff>>2]|0,g,((g|0)<0)<<31>>31)|0}c[W>>2]=g&255;c[Da>>2]=c[_a>>2];c[md>>2]=c[zc>>2];do{c[me>>2]=c[(c[md>>2]|0)+28>>2];if((c[me>>2]|0)>>>0<128){a[(c[ff>>2]|0)+(c[W>>2]|0)>>0]=c[me>>2];g=1}else g=kI((c[ff>>2]|0)+(c[W>>2]|0)|0,c[me>>2]|0,0)|0;c[W>>2]=(c[W>>2]|0)+(g&255);Af=lI((c[ff>>2]|0)+(c[Da>>2]|0)|0,c[md>>2]|0,c[me>>2]|0)|0;c[Da>>2]=(c[Da>>2]|0)+Af;Af=(c[md>>2]|0)+40|0;c[md>>2]=Af}while(Af>>>0<=(c[Vc>>2]|0)>>>0);c[(c[id>>2]|0)+12>>2]=c[Ra>>2];b[(c[id>>2]|0)+8>>1]=16;Af=gb;if((c[Af>>2]|0)!=0|(c[Af+4>>2]|0)!=0){c[c[id>>2]>>2]=c[gb>>2];Af=(c[id>>2]|0)+8|0;b[Af>>1]=e[Af>>1]|16384}a[(c[id>>2]|0)+10>>0]=1;break}case 50:{c[gc>>2]=c[(c[(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<2)>>2]|0)+16>>2];j=Va;c[j>>2]=0;c[j+4>>2]=0;c[rf>>2]=mI(c[gc>>2]|0,Va)|0;c[id>>2]=UH(c[lf>>2]|0,c[pf>>2]|0)|0;j=Va;yf=c[j+4>>2]|0;Af=c[id>>2]|0;c[Af>>2]=c[j>>2];c[Af+4>>2]=yf;break}case 0:{c[rb>>2]=c[(c[pf>>2]|0)+4>>2];c[ef>>2]=c[(c[pf>>2]|0)+16>>2];if(!(c[rb>>2]|0)){if((c[(c[mf>>2]|0)+156>>2]|0)>0){SH(c[lf>>2]|0,40742,Be);c[rf>>2]=5;break d}c[cb>>2]=If(c[ef>>2]|0)|0;c[rf>>2]=nI(c[mf>>2]|0,0,(c[(c[mf>>2]|0)+504>>2]|0)+(c[(c[mf>>2]|0)+500>>2]|0)|0)|0;if(c[rf>>2]|0){k=861;break c}c[hd>>2]=Fw(c[mf>>2]|0,32+(c[cb>>2]|0)+1|0,0)|0;if(!(c[hd>>2]|0))break d;c[c[hd>>2]>>2]=(c[hd>>2]|0)+32;iR(c[c[hd>>2]>>2]|0,c[ef>>2]|0,(c[cb>>2]|0)+1|0)|0;g=c[mf>>2]|0;if(a[(c[mf>>2]|0)+63>>0]|0){a[g+63>>0]=0;a[(c[mf>>2]|0)+71>>0]=1}else{Af=g+500|0;c[Af>>2]=(c[Af>>2]|0)+1}c[(c[hd>>2]|0)+24>>2]=c[(c[mf>>2]|0)+492>>2];c[(c[mf>>2]|0)+492>>2]=c[hd>>2];Af=(c[mf>>2]|0)+512|0;yf=c[Af+4>>2]|0;j=(c[hd>>2]|0)+8|0;c[j>>2]=c[Af>>2];c[j+4>>2]=yf;j=(c[mf>>2]|0)+520|0;yf=c[j+4>>2]|0;Af=(c[hd>>2]|0)+16|0;c[Af>>2]=c[j>>2];c[Af+4>>2]=yf;break d}c[ua>>2]=0;c[pd>>2]=c[(c[mf>>2]|0)+492>>2];while(1){if(!(c[pd>>2]|0))break;if(!(Td(c[c[pd>>2]>>2]|0,c[ef>>2]|0)|0))break;c[ua>>2]=(c[ua>>2]|0)+1;c[pd>>2]=c[(c[pd>>2]|0)+24>>2]}if(!(c[pd>>2]|0)){Af=c[lf>>2]|0;c[Ce>>2]=c[ef>>2];SH(Af,40793,Ce);c[rf>>2]=1;break d}if((c[rb>>2]|0)==1?(c[(c[mf>>2]|0)+156>>2]|0)>0:0){SH(c[lf>>2]|0,40815,De);c[rf>>2]=5;break d}if(!(c[(c[pd>>2]|0)+24>>2]|0))g=(d[(c[mf>>2]|0)+71>>0]|0)!=0;else g=0;c[Ba>>2]=g&1;if(!((c[Ba>>2]|0)!=0&(c[rb>>2]|0)==1)){c[ua>>2]=(c[(c[mf>>2]|0)+500>>2]|0)-(c[ua>>2]|0)-1;g:do if((c[rb>>2]|0)==2){c[Aa>>2]=(c[(c[mf>>2]|0)+24>>2]&2|0)!=0&1;c[xa>>2]=0;while(1){if((c[xa>>2]|0)>=(c[(c[mf>>2]|0)+20>>2]|0))break g;c[rf>>2]=oI(c[(c[(c[mf>>2]|0)+16>>2]|0)+(c[xa>>2]<<4)+4>>2]|0,516,(c[Aa>>2]|0)==0&1)|0;if(c[rf>>2]|0){k=861;break c}c[xa>>2]=(c[xa>>2]|0)+1}}else c[Aa>>2]=0;while(0);c[xa>>2]=0;while(1){if((c[xa>>2]|0)>=(c[(c[mf>>2]|0)+20>>2]|0))break;c[rf>>2]=pI(c[(c[(c[mf>>2]|0)+16>>2]|0)+(c[xa>>2]<<4)+4>>2]|0,c[rb>>2]|0,c[ua>>2]|0)|0;if(c[rf>>2]|0){k=861;break c}c[xa>>2]=(c[xa>>2]|0)+1}if(c[Aa>>2]|0){Oh(c[mf>>2]|0);zg(c[mf>>2]|0);c[(c[mf>>2]|0)+24>>2]=c[(c[mf>>2]|0)+24>>2]|2}}else{Af=WH(c[lf>>2]|0,1)|0;c[rf>>2]=Af;if(Af){k=858;break c}a[(c[mf>>2]|0)+63>>0]=1;if((TH(c[lf>>2]|0)|0)==5){k=367;break c}a[(c[mf>>2]|0)+71>>0]=0;c[rf>>2]=c[(c[lf>>2]|0)+80>>2]}while(1){if((c[(c[mf>>2]|0)+492>>2]|0)==(c[pd>>2]|0))break;c[rd>>2]=c[(c[mf>>2]|0)+492>>2];c[(c[mf>>2]|0)+492>>2]=c[(c[rd>>2]|0)+24>>2];Sf(c[mf>>2]|0,c[rd>>2]|0);Af=(c[mf>>2]|0)+500|0;c[Af>>2]=(c[Af>>2]|0)+-1}g=c[pd>>2]|0;if((c[rb>>2]|0)==1){c[(c[mf>>2]|0)+492>>2]=c[g+24>>2];Sf(c[mf>>2]|0,c[pd>>2]|0);if(!(c[Ba>>2]|0)){Af=(c[mf>>2]|0)+500|0;c[Af>>2]=(c[Af>>2]|0)+-1}}else{Af=g+8|0;yf=c[Af+4>>2]|0;j=(c[mf>>2]|0)+512|0;c[j>>2]=c[Af>>2];c[j+4>>2]=yf;j=(c[pd>>2]|0)+16|0;yf=c[j+4>>2]|0;Af=(c[mf>>2]|0)+520|0;c[Af>>2]=c[j>>2];c[Af+4>>2]=yf}if((c[Ba>>2]|0)==0|(c[rb>>2]|0)==2?(c[rf>>2]=nI(c[mf>>2]|0,c[rb>>2]|0,c[ua>>2]|0)|0,(c[rf>>2]|0)!=0):0){k=861;break c}break}case 1:{c[E>>2]=c[(c[pf>>2]|0)+4>>2];c[ta>>2]=c[(c[pf>>2]|0)+8>>2];if((c[E>>2]|0)==(d[(c[mf>>2]|0)+63>>0]|0)){if(c[E>>2]|0)g=(c[ta>>2]|0)!=0?40924:40967;else g=41008;SH(c[lf>>2]|0,g,Fe);c[rf>>2]=1;break d}if(c[ta>>2]|0){k=391;break c}if(!(c[E>>2]|0)){k=395;break c}if((c[(c[mf>>2]|0)+156>>2]|0)<=0){k=395;break c}SH(c[lf>>2]|0,40869,Ee);c[rf>>2]=5;break}case 2:{if((c[(c[pf>>2]|0)+8>>2]|0)!=0?(c[(c[mf>>2]|0)+24>>2]&33554432|0)!=0:0){k=407;break c}c[yb>>2]=c[(c[(c[mf>>2]|0)+16>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<4)+4>>2];if(c[yb>>2]|0){c[rf>>2]=mg(c[yb>>2]|0,c[(c[pf>>2]|0)+8>>2]|0)|0;if((c[rf>>2]&255|0)==5){k=410;break c}if(c[rf>>2]|0){k=861;break c}do if((c[(c[pf>>2]|0)+8>>2]|0)!=0?((e[(c[lf>>2]|0)+88>>1]|0)>>>5&1|0)!=0:0){if((d[(c[mf>>2]|0)+63>>0]|0)!=0?(c[(c[mf>>2]|0)+152>>2]|0)<=1:0)break;if(!(c[(c[lf>>2]|0)+104>>2]|0)){Af=(c[mf>>2]|0)+504|0;c[Af>>2]=(c[Af>>2]|0)+1;c[(c[lf>>2]|0)+104>>2]=(c[(c[mf>>2]|0)+500>>2]|0)+(c[(c[mf>>2]|0)+504>>2]|0)}c[rf>>2]=nI(c[mf>>2]|0,0,(c[(c[lf>>2]|0)+104>>2]|0)-1|0)|0;if(!(c[rf>>2]|0))c[rf>>2]=sI(c[yb>>2]|0,c[(c[lf>>2]|0)+104>>2]|0)|0;Af=(c[mf>>2]|0)+512|0;yf=c[Af+4>>2]|0;j=(c[lf>>2]|0)+152|0;c[j>>2]=c[Af>>2];c[j+4>>2]=yf;j=(c[mf>>2]|0)+520|0;yf=c[j+4>>2]|0;Af=(c[lf>>2]|0)+160|0;c[Af>>2]=c[j>>2];c[Af+4>>2]=yf}while(0);ng(c[yb>>2]|0,1,pa);c[la>>2]=c[(c[(c[(c[mf>>2]|0)+16>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<4)+12>>2]|0)+4>>2]}else{c[pa>>2]=0;c[la>>2]=0}if(d[(c[pf>>2]|0)+3>>0]|0){if((c[pa>>2]|0)==(c[(c[pf>>2]|0)+12>>2]|0)?(c[la>>2]|0)==(c[(c[pf>>2]|0)+16>>2]|0):0)break d;Sf(c[mf>>2]|0,c[(c[lf>>2]|0)+44>>2]|0);Af=nh(c[mf>>2]|0,41056)|0;c[(c[lf>>2]|0)+44>>2]=Af;if((c[c[(c[(c[mf>>2]|0)+16>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<4)+12>>2]>>2]|0)!=(c[pa>>2]|0))rj(c[mf>>2]|0,c[(c[pf>>2]|0)+4>>2]|0);Af=(c[lf>>2]|0)+88|0;b[Af>>1]=b[Af>>1]&-9|8;c[rf>>2]=17}break}case 51:{c[ha>>2]=c[(c[pf>>2]|0)+4>>2];c[ga>>2]=c[(c[pf>>2]|0)+12>>2];ng(c[(c[(c[mf>>2]|0)+16>>2]|0)+(c[ha>>2]<<4)+4>>2]|0,c[ga>>2]|0,qa);c[id>>2]=UH(c[lf>>2]|0,c[pf>>2]|0)|0;yf=c[qa>>2]|0;Af=c[id>>2]|0;c[Af>>2]=yf;c[Af+4>>2]=((yf|0)<0)<<31>>31;break}case 52:{c[Ac>>2]=(c[(c[mf>>2]|0)+16>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<4);c[rf>>2]=yg(c[(c[Ac>>2]|0)+4>>2]|0,c[(c[pf>>2]|0)+8>>2]|0,c[(c[pf>>2]|0)+12>>2]|0)|0;g=c[pf>>2]|0;if((c[(c[pf>>2]|0)+8>>2]|0)!=1){if((c[g+8>>2]|0)==2)a[(c[(c[Ac>>2]|0)+12>>2]|0)+76>>0]=c[(c[pf>>2]|0)+12>>2]}else{c[c[(c[Ac>>2]|0)+12>>2]>>2]=c[g+12>>2];Af=(c[mf>>2]|0)+24|0;c[Af>>2]=c[Af>>2]|2}if((c[(c[pf>>2]|0)+4>>2]|0)==1){Oh(c[mf>>2]|0);Af=(c[lf>>2]|0)+88|0;b[Af>>1]=b[Af>>1]&-9}break}case 53:{c[qc>>2]=c[(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<2)>>2];if((c[qc>>2]|0)!=0?(c[(c[qc>>2]|0)+8>>2]|0)==(c[(c[pf>>2]|0)+8>>2]|0):0)k=453;else k=438;break}case 55:case 54:{k=438;break}case 57:case 56:{c[vc>>2]=tI(c[lf>>2]|0,c[(c[pf>>2]|0)+4>>2]|0,c[(c[pf>>2]|0)+8>>2]|0,-1,0)|0;if(!(c[vc>>2]|0)){k=860;break a}a[(c[vc>>2]|0)+2>>0]=1;Af=(c[vc>>2]|0)+5|0;a[Af>>0]=a[Af>>0]&-2|1;c[rf>>2]=Xj(c[c[mf>>2]>>2]|0,0,c[mf>>2]|0,(c[vc>>2]|0)+20|0,5|d[(c[pf>>2]|0)+3>>0],1054)|0;if(!(c[rf>>2]|0))c[rf>>2]=mg(c[(c[vc>>2]|0)+20>>2]|0,1)|0;do if(!(c[rf>>2]|0)){Af=c[(c[pf>>2]|0)+16>>2]|0;c[Uc>>2]=Af;g=c[(c[vc>>2]|0)+20>>2]|0;if(!Af){c[rf>>2]=uI(g,1,4,0,c[(c[vc>>2]|0)+16>>2]|0)|0;a[(c[vc>>2]|0)+4>>0]=1;break}c[rf>>2]=wI(g,Hd,2|d[(c[pf>>2]|0)+3>>0])|0;if(!(c[rf>>2]|0)){c[(c[vc>>2]|0)+24>>2]=c[Uc>>2];c[rf>>2]=uI(c[(c[vc>>2]|0)+20>>2]|0,c[Hd>>2]|0,4,c[Uc>>2]|0,c[(c[vc>>2]|0)+16>>2]|0)|0}a[(c[vc>>2]|0)+4>>0]=0}while(0);Af=(c[vc>>2]|0)+5|0;a[Af>>0]=a[Af>>0]&-5|((d[(c[pf>>2]|0)+3>>0]|0)!=8&1)<<2&255;break}case 58:{c[wc>>2]=tI(c[lf>>2]|0,c[(c[pf>>2]|0)+4>>2]|0,c[(c[pf>>2]|0)+8>>2]|0,-1,1)|0;if(!(c[wc>>2]|0)){k=860;break a}c[(c[wc>>2]|0)+24>>2]=c[(c[pf>>2]|0)+16>>2];c[rf>>2]=xI(c[mf>>2]|0,c[(c[pf>>2]|0)+12>>2]|0,c[wc>>2]|0)|0;break}case 59:{c[Db>>2]=c[(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<2)>>2];j=(c[Db>>2]|0)+32|0;Af=j;yf=c[Af>>2]|0;Af=c[Af+4>>2]|0;f=gR(yf|0,Af|0,1,0)|0;c[j>>2]=f;c[j+4>>2]=C;if((yf|0)==0&(Af|0)==0)k=15;break}case 60:{c[xc>>2]=tI(c[lf>>2]|0,c[(c[pf>>2]|0)+4>>2]|0,c[(c[pf>>2]|0)+12>>2]|0,-1,3)|0;if(!(c[xc>>2]|0)){k=860;break a}a[(c[xc>>2]|0)+2>>0]=1;c[(c[xc>>2]|0)+16>>2]=c[(c[pf>>2]|0)+8>>2];a[(c[xc>>2]|0)+4>>0]=1;break}case 61:{yI(c[lf>>2]|0,c[(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<2)>>2]|0);c[(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<2)>>2]=0;break}case 66:case 65:case 64:case 63:{c[Eb>>2]=c[(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<2)>>2];c[kb>>2]=d[c[pf>>2]>>0];c[I>>2]=0;a[(c[Eb>>2]|0)+2>>0]=0;if(a[(c[Eb>>2]|0)+4>>0]|0){c[Qc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+12>>2]|0)*40|0);if((e[(c[Qc>>2]|0)+8>>1]&14|0)==2)xh(c[Qc>>2]|0,0);yf=Zg(c[Qc>>2]|0)|0;Af=ma;c[Af>>2]=yf;c[Af+4>>2]=C;do if(!(e[(c[Qc>>2]|0)+8>>1]&4)){if(!(e[(c[Qc>>2]|0)+8>>1]&8)){k=15;break d}Af=ma;if(+h[c[Qc>>2]>>3]<+((c[Af>>2]|0)>>>0)+4294967296.0*+(c[Af+4>>2]|0)){if(c[kb>>2]&1)break;c[kb>>2]=(c[kb>>2]|0)+-1;break}Af=ma;if(+h[c[Qc>>2]>>3]>+((c[Af>>2]|0)>>>0)+4294967296.0*+(c[Af+4>>2]|0)?(c[kb>>2]&1|0)==1:0)c[kb>>2]=(c[kb>>2]|0)+1}while(0);k=ma;c[rf>>2]=eF(c[(c[Eb>>2]|0)+16>>2]|0,0,c[k>>2]|0,c[k+4>>2]|0,0,Wd)|0;k=ma;yf=c[k+4>>2]|0;Af=(c[Eb>>2]|0)+40|0;c[Af>>2]=c[k>>2];c[Af+4>>2]=yf;if(c[rf>>2]|0){k=861;break c}else k=489}else{if(zI(c[(c[Eb>>2]|0)+16>>2]|0,2)|0)c[I>>2]=1;c[Za>>2]=c[(c[pf>>2]|0)+16>>2];c[Kd>>2]=c[(c[Eb>>2]|0)+24>>2];b[Kd+8>>1]=c[Za>>2];a[Kd+10>>0]=(1&(c[kb>>2]|0)-63|0)!=0?-1:1;c[Kd+4>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+12>>2]|0)*40|0);if(e[(c[Kd+4>>2]|0)+8>>1]&16384)Vg(c[Kd+4>>2]|0)|0;a[Kd+14>>0]=0;c[rf>>2]=eF(c[(c[Eb>>2]|0)+16>>2]|0,Kd,0,0,0,Wd)|0;if(c[rf>>2]|0){k=861;break c}if(!((c[I>>2]|0)!=0?(d[Kd+14>>0]|0)==0:0))k=489}do if((k|0)==489){k=0;a[(c[Eb>>2]|0)+3>>0]=0;c[(c[Eb>>2]|0)+56>>2]=0;g=c[Wd>>2]|0;if((c[kb>>2]|0)>=65){if((g|0)>=0?!((c[Wd>>2]|0)==0&(c[kb>>2]|0)==66):0){c[Wd>>2]=0;break}c[Wd>>2]=0;c[rf>>2]=TE(c[(c[Eb>>2]|0)+16>>2]|0,Wd)|0;if(c[rf>>2]|0){k=861;break c}else break}else{if((g|0)<=0?!((c[Wd>>2]|0)==0&(c[kb>>2]|0)==63):0){c[Wd>>2]=AI(c[(c[Eb>>2]|0)+16>>2]|0)|0;break}c[Wd>>2]=0;c[rf>>2]=UE(c[(c[Eb>>2]|0)+16>>2]|0,Wd)|0;if(c[rf>>2]|0){k=861;break c}else break}}while(0);if(!(c[Wd>>2]|0)){if(c[I>>2]|0)c[pf>>2]=(c[pf>>2]|0)+20}else k=15;break}case 69:case 68:case 67:{c[Fb>>2]=c[(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<2)>>2];c[Qc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+12>>2]|0)*40|0);c[Lc>>2]=0;g=c[(c[Fb>>2]|0)+24>>2]|0;if((c[(c[pf>>2]|0)+16>>2]|0)>0){c[Ld>>2]=g;b[Ld+8>>1]=c[(c[pf>>2]|0)+16>>2];c[Ld+4>>2]=c[Qc>>2];c[ya>>2]=0;while(1){if((c[ya>>2]|0)>=(e[Ld+8>>1]|0))break;if(e[(c[Ld+4>>2]|0)+((c[ya>>2]|0)*40|0)+8>>1]&16384)Vg((c[Ld+4>>2]|0)+((c[ya>>2]|0)*40|0)|0)|0;c[ya>>2]=(c[ya>>2]|0)+1}c[Mc>>2]=Ld}else{c[Mc>>2]=cF(g,r,183,Lc)|0;if(!(c[Mc>>2]|0)){k=860;break a}if(e[(c[Qc>>2]|0)+8>>1]&16384)Vg(c[Qc>>2]|0)|0;dF(c[(c[Fb>>2]|0)+24>>2]|0,c[(c[Qc>>2]|0)+12>>2]|0,c[(c[Qc>>2]|0)+16>>2]|0,c[Mc>>2]|0)}a[(c[Mc>>2]|0)+10>>0]=0;c[qe>>2]=0;h:do if((d[c[pf>>2]>>0]|0)==67){c[ya>>2]=0;while(1){if((c[ya>>2]|0)>=(e[(c[Mc>>2]|0)+8>>1]|0))break h;if(e[(c[(c[Mc>>2]|0)+4>>2]|0)+((c[ya>>2]|0)*40|0)+8>>1]&1)break;c[ya>>2]=(c[ya>>2]|0)+1}c[qe>>2]=1}while(0);c[rf>>2]=eF(c[(c[Fb>>2]|0)+16>>2]|0,c[Mc>>2]|0,0,0,0,Xd)|0;Sf(c[mf>>2]|0,c[Lc>>2]|0);if(!(c[rf>>2]|0)){c[(c[Fb>>2]|0)+28>>2]=c[Xd>>2];c[t>>2]=(c[Xd>>2]|0)==0&1;a[(c[Fb>>2]|0)+2>>0]=1-(c[t>>2]|0);a[(c[Fb>>2]|0)+3>>0]=0;c[(c[Fb>>2]|0)+56>>2]=0;if((d[c[pf>>2]>>0]|0)==69)if(c[t>>2]|0){k=15;break d}else break d;else if((c[qe>>2]|0)==0&(c[t>>2]|0)!=0)break d;else{k=15;break d}}break}case 70:{c[Qc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+12>>2]|0)*40|0);c[Gb>>2]=c[(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<2)>>2];c[hc>>2]=c[(c[Gb>>2]|0)+16>>2];c[Yd>>2]=0;Af=c[Qc>>2]|0;yf=c[Af+4>>2]|0;j=na;c[j>>2]=c[Af>>2];c[j+4>>2]=yf;j=na;c[rf>>2]=eF(c[hc>>2]|0,0,c[j>>2]|0,c[j+4>>2]|0,0,Yd)|0;j=na;yf=c[j+4>>2]|0;Af=(c[Gb>>2]|0)+40|0;c[Af>>2]=c[j>>2];c[Af+4>>2]=yf;a[(c[Gb>>2]|0)+2>>0]=0;c[(c[Gb>>2]|0)+56>>2]=0;a[(c[Gb>>2]|0)+3>>0]=0;c[(c[Gb>>2]|0)+28>>2]=c[Yd>>2];if(c[Yd>>2]|0)if(!(c[(c[pf>>2]|0)+8>>2]|0))c[rf>>2]=Lj(78267)|0;else k=15;break}case 73:{c[id>>2]=UH(c[lf>>2]|0,c[pf>>2]|0)|0;Af=(c[(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<2)>>2]|0)+32|0;yf=Af;j=c[yf>>2]|0;yf=c[yf+4>>2]|0;f=gR(j|0,yf|0,1,0)|0;c[Af>>2]=f;c[Af+4>>2]=C;Af=c[id>>2]|0;c[Af>>2]=j;c[Af+4>>2]=yf;break}case 74:{Af=ue;c[Af>>2]=0;c[Af+4>>2]=0;c[Zd>>2]=0;c[id>>2]=UH(c[lf>>2]|0,c[pf>>2]|0)|0;c[Hb>>2]=c[(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<2)>>2];do if(!((d[(c[Hb>>2]|0)+5>>0]|0)>>>1&1)){c[rf>>2]=BI(c[(c[Hb>>2]|0)+16>>2]|0,Zd)|0;if(c[rf>>2]|0){k=861;break c}if(c[Zd>>2]|0){Af=ue;c[Af>>2]=1;c[Af+4>>2]=0;break}c[rf>>2]=sH(c[(c[Hb>>2]|0)+16>>2]|0,ue)|0;Af=ue;yf=c[Af+4>>2]|0;if((yf|0)>2147483647|(yf|0)==2147483647&(c[Af>>2]|0)>>>0>=4294967295){Af=(c[Hb>>2]|0)+5|0;a[Af>>0]=a[Af>>0]&-3|2;break}else{yf=ue;yf=gR(c[yf>>2]|0,c[yf+4>>2]|0,1,0)|0;Af=ue;c[Af>>2]=yf;c[Af+4>>2]=C;break}}while(0);if(c[(c[pf>>2]|0)+12>>2]|0){if(c[(c[lf>>2]|0)+176>>2]|0){c[Hc>>2]=c[(c[lf>>2]|0)+176>>2];while(1){if(!(c[(c[Hc>>2]|0)+4>>2]|0))break;c[Hc>>2]=c[(c[Hc>>2]|0)+4>>2]}c[Xc>>2]=(c[(c[Hc>>2]|0)+16>>2]|0)+((c[(c[pf>>2]|0)+12>>2]|0)*40|0)}else c[Xc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+12>>2]|0)*40|0);wx(c[Xc>>2]|0)|0;Af=c[Xc>>2]|0;if((c[Af>>2]|0)==-1?(c[Af+4>>2]|0)==2147483647:0){k=542;break c}if((d[(c[Hb>>2]|0)+5>>0]|0)>>>1&1){k=542;break c}f=ue;yf=c[f>>2]|0;f=c[f+4>>2]|0;Af=c[Xc>>2]|0;Af=gR(c[Af>>2]|0,c[Af+4>>2]|0,1,0)|0;j=C;if((f|0)<(j|0)|(f|0)==(j|0)&yf>>>0<Af>>>0){yf=c[Xc>>2]|0;yf=gR(c[yf>>2]|0,c[yf+4>>2]|0,1,0)|0;Af=ue;c[Af>>2]=yf;c[Af+4>>2]=C}j=ue;yf=c[j+4>>2]|0;Af=c[Xc>>2]|0;c[Af>>2]=c[j>>2];c[Af+4>>2]=yf}if((d[(c[Hb>>2]|0)+5>>0]|0)>>>1&1){c[D>>2]=0;do{Sd(8,ue);j=ue;Af=c[j+4>>2]&1073741823;yf=ue;c[yf>>2]=c[j>>2];c[yf+4>>2]=Af;yf=ue;yf=gR(c[yf>>2]|0,c[yf+4>>2]|0,1,0)|0;Af=ue;c[Af>>2]=yf;c[Af+4>>2]=C;Af=ue;Af=eF(c[(c[Hb>>2]|0)+16>>2]|0,0,c[Af>>2]|0,c[Af+4>>2]|0,0,Zd)|0;c[rf>>2]=Af;if(!((Af|0)==0&(c[Zd>>2]|0)==0))break;Af=(c[D>>2]|0)+1|0;c[D>>2]=Af}while((Af|0)<100);if((c[rf>>2]|0)==0&(c[Zd>>2]|0)==0){k=551;break c}}a[(c[Hb>>2]|0)+3>>0]=0;c[(c[Hb>>2]|0)+56>>2]=0;j=ue;yf=c[j+4>>2]|0;Af=c[id>>2]|0;c[Af>>2]=c[j>>2];c[Af+4>>2]=yf;break}case 84:case 75:{c[yc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+8>>2]|0)*40|0);c[Ib>>2]=c[(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<2)>>2];g=c[(c[pf>>2]|0)+12>>2]|0;if((d[c[pf>>2]>>0]|0)==75){c[Rc>>2]=(c[l>>2]|0)+(g*40|0);j=c[Rc>>2]|0;yf=c[j+4>>2]|0;Af=oa;c[Af>>2]=c[j>>2];c[Af+4>>2]=yf}else{Af=oa;c[Af>>2]=g;c[Af+4>>2]=((g|0)<0)<<31>>31}if(d[(c[pf>>2]|0)+3>>0]&1){Af=(c[lf>>2]|0)+92|0;c[Af>>2]=(c[Af>>2]|0)+1}if(d[(c[pf>>2]|0)+3>>0]&2){yf=oa;j=c[yf>>2]|0;yf=c[yf+4>>2]|0;Af=nf;c[Af>>2]=j;c[Af+4>>2]=yf;Af=(c[mf>>2]|0)+32|0;c[Af>>2]=j;c[Af+4>>2]=yf}if(e[(c[yc>>2]|0)+8>>1]&1){c[(c[yc>>2]|0)+16>>2]=0;c[(c[yc>>2]|0)+12>>2]=0}if(d[(c[pf>>2]|0)+3>>0]&16)g=c[(c[Ib>>2]|0)+28>>2]|0;else g=0;c[le>>2]=g;if(e[(c[yc>>2]|0)+8>>1]&16384)c[hb>>2]=c[c[yc>>2]>>2];else c[hb>>2]=0;Af=oa;c[rf>>2]=CI(c[(c[Ib>>2]|0)+16>>2]|0,0,c[Af>>2]|0,c[Af+4>>2]|0,c[(c[yc>>2]|0)+16>>2]|0,c[(c[yc>>2]|0)+12>>2]|0,c[hb>>2]|0,(d[(c[pf>>2]|0)+3>>0]&8|0)!=0&1,c[le>>2]|0)|0;a[(c[Ib>>2]|0)+3>>0]=0;c[(c[Ib>>2]|0)+56>>2]=0;if(((c[rf>>2]|0)==0?(c[(c[mf>>2]|0)+212>>2]|0)!=0:0)?(c[(c[pf>>2]|0)+16>>2]|0)!=0:0){c[Ze>>2]=c[(c[(c[mf>>2]|0)+16>>2]|0)+(a[(c[Ib>>2]|0)+1>>0]<<4)>>2];c[jf>>2]=c[(c[pf>>2]|0)+16>>2];c[ob>>2]=(d[(c[pf>>2]|0)+3>>0]&4|0)!=0?23:18;Af=oa;Xb[c[(c[mf>>2]|0)+212>>2]&255](c[(c[mf>>2]|0)+208>>2]|0,c[ob>>2]|0,c[Ze>>2]|0,c[jf>>2]|0,c[Af>>2]|0,c[Af+4>>2]|0)}break}case 95:{c[Jb>>2]=c[(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<2)>>2];if((c[(c[mf>>2]|0)+212>>2]|0)!=0?(c[(c[pf>>2]|0)+16>>2]|0)!=0:0)g=(d[(c[Jb>>2]|0)+4>>0]|0)!=0;else g=0;a[R>>0]=g&1;if((d[(c[pf>>2]|0)+3>>0]|0)!=0?(d[R>>0]|0)!=0:0)sH(c[(c[Jb>>2]|0)+16>>2]|0,(c[Jb>>2]|0)+40|0)|0;c[rf>>2]=DI(c[(c[Jb>>2]|0)+16>>2]|0,a[(c[pf>>2]|0)+3>>0]|0)|0;c[(c[Jb>>2]|0)+56>>2]=0;if((c[rf>>2]|0)==0?(d[R>>0]|0)!=0:0){Af=(c[Jb>>2]|0)+40|0;Xb[c[(c[mf>>2]|0)+212>>2]&255](c[(c[mf>>2]|0)+208>>2]|0,9,c[(c[(c[mf>>2]|0)+16>>2]|0)+(a[(c[Jb>>2]|0)+1>>0]<<4)>>2]|0,c[(c[pf>>2]|0)+16>>2]|0,c[Af>>2]|0,c[Af+4>>2]|0)}if(c[(c[pf>>2]|0)+8>>2]&1){Af=(c[lf>>2]|0)+92|0;c[Af>>2]=(c[Af>>2]|0)+1}break}case 98:{QH(c[mf>>2]|0,c[(c[lf>>2]|0)+92>>2]|0);c[(c[lf>>2]|0)+92>>2]=0;break}case 99:{c[Kb>>2]=c[(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<2)>>2];c[Qc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+12>>2]|0)*40|0);c[ab>>2]=c[(c[pf>>2]|0)+16>>2];c[_d>>2]=0;c[rf>>2]=EI(c[Kb>>2]|0,c[Qc>>2]|0,c[ab>>2]|0,_d)|0;if(c[_d>>2]|0)k=15;break}case 100:{c[id>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+8>>2]|0)*40|0);c[Lb>>2]=c[(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<2)>>2];c[rf>>2]=FI(c[Lb>>2]|0,c[id>>2]|0)|0;c[(c[(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[pf>>2]|0)+12>>2]<<2)>>2]|0)+56>>2]=0;break}case 102:case 101:{c[id>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+8>>2]|0)*40|0);c[Mb>>2]=c[(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<2)>>2];c[ic>>2]=c[(c[Mb>>2]|0)+16>>2];g=c[ic>>2]|0;if(d[(c[Mb>>2]|0)+4>>0]|0){fI(g,Ka)|0;if((c[Ka>>2]|0)>>>0>(c[(c[mf>>2]|0)+88>>2]|0)>>>0){k=859;break c}}else{sH(g,La)|0;yf=La;f=c[yf+4>>2]|0;Af=c[(c[mf>>2]|0)+88>>2]|0;j=((Af|0)<0)<<31>>31;if((f|0)>(j|0)|((f|0)==(j|0)?(c[yf>>2]|0)>>>0>Af>>>0:0)){k=859;break c}c[Ka>>2]=c[La>>2]}if(tx(c[id>>2]|0,(c[Ka>>2]|0)>>>0>32?c[Ka>>2]|0:32)|0){k=860;break a}c[(c[id>>2]|0)+12>>2]=c[Ka>>2];b[(c[id>>2]|0)+8>>1]=e[(c[id>>2]|0)+8>>1]&-49664|16;g=c[ic>>2]|0;f=c[Ka>>2]|0;j=c[(c[id>>2]|0)+16>>2]|0;if(!(d[(c[Mb>>2]|0)+4>>0]|0))c[rf>>2]=tH(g,0,f,j)|0;else c[rf>>2]=Mh(g,0,f,j)|0;a[(c[id>>2]|0)+10>>0]=1;break}case 103:{c[id>>2]=UH(c[lf>>2]|0,c[pf>>2]|0)|0;c[Nb>>2]=c[(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<2)>>2];if(a[(c[Nb>>2]|0)+2>>0]|0){b[(c[id>>2]|0)+8>>1]=1;break d}g=c[Nb>>2]|0;do if(!(a[(c[Nb>>2]|0)+3>>0]|0)){f=c[Nb>>2]|0;if((d[g>>0]|0)==2){c[wd>>2]=c[c[f+16>>2]>>2];c[ad>>2]=c[c[wd>>2]>>2];c[rf>>2]=Yb[c[(c[ad>>2]|0)+48>>2]&255](c[(c[Nb>>2]|0)+16>>2]|0,xe)|0;GI(c[lf>>2]|0,c[wd>>2]|0);break}c[rf>>2]=HI(f)|0;if(c[rf>>2]|0){k=861;break c}if(a[(c[Nb>>2]|0)+2>>0]|0){b[(c[id>>2]|0)+8>>1]=1;break d}else{c[rf>>2]=sH(c[(c[Nb>>2]|0)+16>>2]|0,xe)|0;break}}else{j=g+40|0;yf=c[j+4>>2]|0;Af=xe;c[Af>>2]=c[j>>2];c[Af+4>>2]=yf}while(0);j=xe;yf=c[j+4>>2]|0;Af=c[id>>2]|0;c[Af>>2]=c[j>>2];c[Af+4>>2]=yf;break}case 104:{c[Pb>>2]=c[(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<2)>>2];a[(c[Pb>>2]|0)+2>>0]=1;c[(c[Pb>>2]|0)+56>>2]=0;if(!(d[c[Pb>>2]>>0]|0))pB(c[(c[Pb>>2]|0)+16>>2]|0);break}case 105:{c[Qb>>2]=c[(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<2)>>2];c[jc>>2]=c[(c[Qb>>2]|0)+16>>2];c[$d>>2]=0;c[rf>>2]=BI(c[jc>>2]|0,$d)|0;a[(c[Qb>>2]|0)+2>>0]=c[$d>>2];a[(c[Qb>>2]|0)+3>>0]=0;c[(c[Qb>>2]|0)+56>>2]=0;c[(c[Qb>>2]|0)+28>>2]=c[(c[pf>>2]|0)+12>>2];if((c[$d>>2]|0)!=0?(c[(c[pf>>2]|0)+8>>2]|0)>0:0)k=15;break}case 107:case 106:{k=(c[lf>>2]|0)+108+8|0;c[k>>2]=(c[k>>2]|0)+1;k=609;break}case 108:{k=609;break}case 3:{c[Vb>>2]=c[(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<2)>>2];c[ce>>2]=0;c[rf>>2]=KI(c[mf>>2]|0,c[Vb>>2]|0,ce)|0;k=616;break}case 5:case 4:{if(c[(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<2)>>2]|0)k=615;break}case 7:case 6:{k=615;break}case 110:case 109:{c[_b>>2]=c[(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<2)>>2];c[Pc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+8>>2]|0)*40|0);if(d[(c[pf>>2]|0)+3>>0]&1){Af=(c[lf>>2]|0)+92|0;c[Af>>2]=(c[Af>>2]|0)+1}if(e[(c[Pc>>2]|0)+8>>1]&16384)g=Vg(c[Pc>>2]|0)|0;else g=0;c[rf>>2]=g;if(!(c[rf>>2]|0)){if((d[c[pf>>2]>>0]|0)==109){c[rf>>2]=LI(c[_b>>2]|0,c[Pc>>2]|0)|0;break d}c[$a>>2]=c[(c[Pc>>2]|0)+12>>2];c[cf>>2]=c[(c[Pc>>2]|0)+16>>2];g=c[$a>>2]|0;if(d[(c[pf>>2]|0)+3>>0]&16)f=c[(c[_b>>2]|0)+28>>2]|0;else f=0;c[rf>>2]=CI(c[(c[_b>>2]|0)+16>>2]|0,c[cf>>2]|0,g,((g|0)<0)<<31>>31,19266,0,0,c[(c[pf>>2]|0)+12>>2]|0,f)|0;c[(c[_b>>2]|0)+56>>2]=0}break}case 111:{c[$b>>2]=c[(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<2)>>2];c[lc>>2]=c[(c[$b>>2]|0)+16>>2];c[Md>>2]=c[(c[$b>>2]|0)+24>>2];b[Md+8>>1]=c[(c[pf>>2]|0)+12>>2];a[Md+10>>0]=0;c[Md+4>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+8>>2]|0)*40|0);c[rf>>2]=eF(c[lc>>2]|0,Md,0,0,0,de)|0;if((c[rf>>2]|0)==0&(c[de>>2]|0)==0)c[rf>>2]=DI(c[lc>>2]|0,4)|0;c[(c[$b>>2]|0)+56>>2]=0;break}case 113:case 112:{c[ac>>2]=c[(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<2)>>2];c[rf>>2]=HI(c[ac>>2]|0)|0;if(c[rf>>2]|0){k=861;break c}if(a[(c[ac>>2]|0)+2>>0]|0){fh((c[l>>2]|0)+((c[(c[pf>>2]|0)+8>>2]|0)*40|0)|0);break d}Af=ge;c[Af>>2]=0;c[Af+4>>2]=0;c[rf>>2]=MI(c[mf>>2]|0,c[(c[ac>>2]|0)+16>>2]|0,ge)|0;if(c[rf>>2]|0){k=861;break c}if((d[c[pf>>2]>>0]|0)==112){c[qd>>2]=c[(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[pf>>2]|0)+12>>2]<<2)>>2];a[(c[qd>>2]|0)+2>>0]=0;j=ge;yf=c[j+4>>2]|0;Af=(c[qd>>2]|0)+40|0;c[Af>>2]=c[j>>2];c[Af+4>>2]=yf;a[(c[qd>>2]|0)+3>>0]=1;c[(c[qd>>2]|0)+52>>2]=c[(c[pf>>2]|0)+16>>2];c[(c[qd>>2]|0)+48>>2]=c[ac>>2];break d}else{c[id>>2]=UH(c[lf>>2]|0,c[pf>>2]|0)|0;j=ge;yf=c[j+4>>2]|0;Af=c[id>>2]|0;c[Af>>2]=c[j>>2];c[Af+4>>2]=yf;b[(c[id>>2]|0)+8>>1]=4;break d}}case 117:case 116:case 115:case 114:{c[bc>>2]=c[(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<2)>>2];c[Nd>>2]=c[(c[bc>>2]|0)+24>>2];b[Nd+8>>1]=c[(c[pf>>2]|0)+16>>2];g=Nd+10|0;if((d[c[pf>>2]>>0]|0)<116)a[g>>0]=-1;else a[g>>0]=0;c[Nd+4>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+12>>2]|0)*40|0);c[ee>>2]=0;c[rf>>2]=NI(c[mf>>2]|0,c[bc>>2]|0,Nd,ee)|0;g=c[ee>>2]|0;if(!(d[c[pf>>2]>>0]&1))c[ee>>2]=0-g;else c[ee>>2]=g+1;if((c[ee>>2]|0)>0)k=15;break}case 118:{c[id>>2]=UH(c[lf>>2]|0,c[pf>>2]|0)|0;b[(c[id>>2]|0)+8>>1]=1;if((c[(c[mf>>2]|0)+152>>2]|0)>((c[(c[mf>>2]|0)+164>>2]|0)+1|0)){c[rf>>2]=6;a[(c[lf>>2]|0)+86>>0]=2;break d}c[ja>>2]=c[(c[pf>>2]|0)+12>>2];c[ra>>2]=0;c[rf>>2]=OI(c[(c[(c[mf>>2]|0)+16>>2]|0)+(c[ja>>2]<<4)+4>>2]|0,c[(c[pf>>2]|0)+4>>2]|0,ra)|0;b[(c[id>>2]|0)+8>>1]=4;yf=c[ra>>2]|0;Af=c[id>>2]|0;c[Af>>2]=yf;c[Af+4>>2]=((yf|0)<0)<<31>>31;if((c[rf>>2]|0)==0&(c[ra>>2]|0)!=0){PI(c[mf>>2]|0,c[ja>>2]|0,c[ra>>2]|0,c[(c[pf>>2]|0)+4>>2]|0);a[fe>>0]=(c[ja>>2]|0)+1}break}case 119:{c[Ta>>2]=0;c[rf>>2]=QI(c[(c[(c[mf>>2]|0)+16>>2]|0)+(c[(c[pf>>2]|0)+8>>2]<<4)+4>>2]|0,c[(c[pf>>2]|0)+4>>2]|0,(c[(c[pf>>2]|0)+12>>2]|0)!=0?Ta:0)|0;if((c[(c[pf>>2]|0)+12>>2]|0)!=0?(Af=(c[lf>>2]|0)+92|0,c[Af>>2]=(c[Af>>2]|0)+(c[Ta>>2]|0),(c[(c[pf>>2]|0)+12>>2]|0)>0):0){yf=c[Ta>>2]|0;Af=(c[l>>2]|0)+((c[(c[pf>>2]|0)+12>>2]|0)*40|0)|0;j=Af;yf=gR(c[j>>2]|0,c[j+4>>2]|0,yf|0,((yf|0)<0)<<31>>31|0)|0;c[Af>>2]=yf;c[Af+4>>2]=C}break}case 120:{c[cc>>2]=c[(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<2)>>2];if((d[c[cc>>2]>>0]|0)==1){RI(c[mf>>2]|0,c[(c[cc>>2]|0)+16>>2]|0);break d}else{c[rf>>2]=SI(c[(c[cc>>2]|0)+16>>2]|0)|0;break d}}case 122:case 121:{c[id>>2]=UH(c[lf>>2]|0,c[pf>>2]|0)|0;c[Id>>2]=0;c[Cc>>2]=(c[(c[mf>>2]|0)+16>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<4);if((d[c[pf>>2]>>0]|0)==122)c[Q>>2]=1;else c[Q>>2]=2;c[rf>>2]=wI(c[(c[Cc>>2]|0)+4>>2]|0,Id,c[Q>>2]|0)|0;yf=c[Id>>2]|0;Af=c[id>>2]|0;c[Af>>2]=yf;c[Af+4>>2]=((yf|0)<0)<<31>>31;break}case 123:{c[ka>>2]=c[(c[pf>>2]|0)+4>>2];c[df>>2]=(c[ka>>2]|0)==1?20769:20788;c[za>>2]=c[mf>>2];c[za+8>>2]=c[(c[pf>>2]|0)+4>>2];c[za+4>>2]=(c[lf>>2]|0)+44;Af=c[mf>>2]|0;j=c[df>>2]|0;yf=c[(c[pf>>2]|0)+16>>2]|0;c[Ge>>2]=c[(c[(c[mf>>2]|0)+16>>2]|0)+(c[ka>>2]<<4)>>2];c[Ge+4>>2]=j;c[Ge+8>>2]=yf;c[gf>>2]=Bh(Af,41084,Ge)|0;if(!(c[gf>>2]|0))c[rf>>2]=7;else{a[(c[mf>>2]|0)+140+5>>0]=1;c[za+12>>2]=0;c[rf>>2]=$e(c[mf>>2]|0,c[gf>>2]|0,140,za,0)|0;if(!(c[rf>>2]|0))c[rf>>2]=c[za+12>>2];Sf(c[mf>>2]|0,c[gf>>2]|0);a[(c[mf>>2]|0)+140+5>>0]=0}if(c[rf>>2]|0)zg(c[mf>>2]|0);if((c[rf>>2]|0)==7){k=860;break a}break}case 124:{c[rf>>2]=Aj(c[mf>>2]|0,c[(c[pf>>2]|0)+4>>2]|0)|0;break}case 125:{TI(c[mf>>2]|0,c[(c[pf>>2]|0)+4>>2]|0,c[(c[pf>>2]|0)+16>>2]|0);break}case 126:{UI(c[mf>>2]|0,c[(c[pf>>2]|0)+4>>2]|0,c[(c[pf>>2]|0)+16>>2]|0);break}case 127:{VI(c[mf>>2]|0,c[(c[pf>>2]|0)+4>>2]|0,c[(c[pf>>2]|0)+16>>2]|0);break}case 128:{c[eb>>2]=c[(c[pf>>2]|0)+8>>2];c[q>>2]=Fw(c[mf>>2]|0,(c[eb>>2]|0)+1<<2,0)|0;if(!(c[q>>2]|0)){k=860;break a}c[Jd>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+12>>2]|0)*40|0);c[Oc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);c[Ea>>2]=0;while(1){g=c[Ea>>2]|0;if((c[Ea>>2]|0)>=(c[eb>>2]|0))break;Af=Zg((c[Oc>>2]|0)+(g*40|0)|0)|0;c[(c[q>>2]|0)+(c[Ea>>2]<<2)>>2]=Af;c[Ea>>2]=(c[Ea>>2]|0)+1}c[(c[q>>2]|0)+(g<<2)>>2]=0;c[Te>>2]=WI(c[(c[(c[mf>>2]|0)+16>>2]|0)+(d[(c[pf>>2]|0)+3>>0]<<4)+4>>2]|0,c[q>>2]|0,c[eb>>2]|0,c[c[Jd>>2]>>2]|0,Wa)|0;Sf(c[mf>>2]|0,c[q>>2]|0);yf=c[Wa>>2]|0;Af=c[Jd>>2]|0;j=Af;yf=fR(c[j>>2]|0,c[j+4>>2]|0,yf|0,((yf|0)<0)<<31>>31|0)|0;c[Af>>2]=yf;c[Af+4>>2]=C;fh(c[Oc>>2]|0);if(c[Wa>>2]|0){if(!(c[Te>>2]|0)){k=860;break a}dh(c[Oc>>2]|0,c[Te>>2]|0,-1,1,148)|0}Zt(c[Oc>>2]|0,d[H>>0]|0)|0;break}case 129:{c[Oc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);c[Pc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+8>>2]|0)*40|0);if((e[(c[Oc>>2]|0)+8>>1]&32|0)==0?(XI(c[Oc>>2]|0),(e[(c[Oc>>2]|0)+8>>1]&32|0)==0):0){k=860;break a}Af=c[Pc>>2]|0;YI(c[c[Oc>>2]>>2]|0,c[Af>>2]|0,c[Af+4>>2]|0);break}case 130:{c[Oc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);if((e[(c[Oc>>2]|0)+8>>1]&32|0)!=0?(ZI(c[c[Oc>>2]>>2]|0,ye)|0)!=0:0){k=ye;eh((c[l>>2]|0)+((c[(c[pf>>2]|0)+12>>2]|0)*40|0)|0,c[k>>2]|0,c[k+4>>2]|0);k=9;break d}fh(c[Oc>>2]|0);k=8;break}case 131:{c[Oc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);c[Qc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+12>>2]|0)*40|0);c[va>>2]=c[(c[pf>>2]|0)+16>>2];if((e[(c[Oc>>2]|0)+8>>1]&32|0)==0?(XI(c[Oc>>2]|0),(e[(c[Oc>>2]|0)+8>>1]&32|0)==0):0){k=860;break a}if((c[va>>2]|0)!=0?(Af=c[Qc>>2]|0,c[J>>2]=_I(c[c[Oc>>2]>>2]|0,c[va>>2]|0,c[Af>>2]|0,c[Af+4>>2]|0)|0,(c[J>>2]|0)!=0):0){k=15;break d}if((c[va>>2]|0)>=0){Af=c[Qc>>2]|0;YI(c[c[Oc>>2]>>2]|0,c[Af>>2]|0,c[Af+4>>2]|0)}break}case 132:{c[kd>>2]=c[(c[pf>>2]|0)+16>>2];c[od>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+12>>2]|0)*40|0);if(a[(c[pf>>2]|0)+3>>0]|0){c[oe>>2]=c[(c[kd>>2]|0)+20>>2];c[Ic>>2]=c[(c[lf>>2]|0)+176>>2];while(1){if(!(c[Ic>>2]|0))break;if((c[(c[Ic>>2]|0)+28>>2]|0)==(c[oe>>2]|0))break;c[Ic>>2]=c[(c[Ic>>2]|0)+4>>2]}if(c[Ic>>2]|0)break d}if((c[(c[lf>>2]|0)+184>>2]|0)>=(c[(c[mf>>2]|0)+88+40>>2]|0)){c[rf>>2]=1;SH(c[lf>>2]|0,41148,He);break d}i:do if(!(e[(c[od>>2]|0)+8>>1]&64)){c[bb>>2]=(c[(c[kd>>2]|0)+8>>2]|0)+(c[(c[kd>>2]|0)+12>>2]|0);c[Sa>>2]=80+((c[bb>>2]|0)*40|0)+(c[(c[kd>>2]|0)+12>>2]<<2)+(c[(c[kd>>2]|0)+16>>2]|0);Af=c[Sa>>2]|0;c[Ic>>2]=ph(c[mf>>2]|0,Af,((Af|0)<0)<<31>>31)|0;if(!(c[Ic>>2]|0)){k=860;break a}Ug(c[od>>2]|0);b[(c[od>>2]|0)+8>>1]=64;c[c[od>>2]>>2]=c[Ic>>2];c[c[Ic>>2]>>2]=c[lf>>2];c[(c[Ic>>2]|0)+60>>2]=c[bb>>2];c[(c[Ic>>2]|0)+64>>2]=c[(c[kd>>2]|0)+12>>2];c[(c[Ic>>2]|0)+44>>2]=((c[pf>>2]|0)-(c[n>>2]|0)|0)/20|0;c[(c[Ic>>2]|0)+16>>2]=c[(c[lf>>2]|0)+8>>2];c[(c[Ic>>2]|0)+52>>2]=c[(c[lf>>2]|0)+28>>2];c[(c[Ic>>2]|0)+24>>2]=c[(c[lf>>2]|0)+56>>2];c[(c[Ic>>2]|0)+40>>2]=c[(c[lf>>2]|0)+36>>2];c[(c[Ic>>2]|0)+8>>2]=c[(c[lf>>2]|0)+4>>2];c[(c[Ic>>2]|0)+48>>2]=c[(c[lf>>2]|0)+32>>2];c[(c[Ic>>2]|0)+28>>2]=c[(c[kd>>2]|0)+20>>2];c[(c[Ic>>2]|0)+20>>2]=c[(c[lf>>2]|0)+200>>2];c[(c[Ic>>2]|0)+56>>2]=c[(c[lf>>2]|0)+196>>2];c[Fc>>2]=(c[Ic>>2]|0)+80+((c[(c[Ic>>2]|0)+60>>2]|0)*40|0);c[Yc>>2]=(c[Ic>>2]|0)+80;while(1){if((c[Yc>>2]|0)==(c[Fc>>2]|0))break i;b[(c[Yc>>2]|0)+8>>1]=128;c[(c[Yc>>2]|0)+32>>2]=c[mf>>2];c[Yc>>2]=(c[Yc>>2]|0)+40}}else c[Ic>>2]=c[c[od>>2]>>2];while(0);j=(c[lf>>2]|0)+184|0;c[j>>2]=(c[j>>2]|0)+1;c[(c[Ic>>2]|0)+4>>2]=c[(c[lf>>2]|0)+176>>2];j=nf;yf=c[j+4>>2]|0;Af=(c[Ic>>2]|0)+32|0;c[Af>>2]=c[j>>2];c[Af+4>>2]=yf;c[(c[Ic>>2]|0)+68>>2]=c[(c[lf>>2]|0)+92>>2];c[(c[Ic>>2]|0)+72>>2]=c[(c[c[lf>>2]>>2]|0)+80>>2];c[(c[lf>>2]|0)+92>>2]=0;c[(c[lf>>2]|0)+176>>2]=c[Ic>>2];Af=(c[Ic>>2]|0)+80+-40|0;c[l>>2]=Af;c[(c[lf>>2]|0)+8>>2]=Af;c[(c[lf>>2]|0)+28>>2]=c[(c[Ic>>2]|0)+60>>2];c[(c[lf>>2]|0)+36>>2]=c[(c[Ic>>2]|0)+64>>2]&65535;c[(c[lf>>2]|0)+56>>2]=(c[l>>2]|0)+(((c[(c[lf>>2]|0)+28>>2]|0)+1|0)*40|0);Af=c[c[kd>>2]>>2]|0;c[n>>2]=Af;c[(c[lf>>2]|0)+4>>2]=Af;c[(c[lf>>2]|0)+32>>2]=c[(c[kd>>2]|0)+4>>2];c[(c[lf>>2]|0)+200>>2]=(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[lf>>2]|0)+36>>2]<<2);c[(c[lf>>2]|0)+196>>2]=c[(c[kd>>2]|0)+16>>2];c[pf>>2]=(c[n>>2]|0)+-20;kR(c[(c[lf>>2]|0)+200>>2]|0,0,c[(c[lf>>2]|0)+196>>2]|0)|0;break}case 134:{c[id>>2]=UH(c[lf>>2]|0,c[pf>>2]|0)|0;c[Jc>>2]=c[(c[lf>>2]|0)+176>>2];c[Nc>>2]=(c[(c[Jc>>2]|0)+16>>2]|0)+(((c[(c[pf>>2]|0)+4>>2]|0)+(c[(c[(c[Jc>>2]|0)+8>>2]|0)+((c[(c[Jc>>2]|0)+44>>2]|0)*20|0)+4>>2]|0)|0)*40|0);BF(c[id>>2]|0,c[Nc>>2]|0,4096);break}case 135:{g=c[pf>>2]|0;if(c[(c[mf>>2]|0)+24>>2]&16777216){yf=c[g+8>>2]|0;Af=(c[mf>>2]|0)+520|0;j=Af;yf=gR(c[j>>2]|0,c[j+4>>2]|0,yf|0,((yf|0)<0)<<31>>31|0)|0;c[Af>>2]=yf;c[Af+4>>2]=C;break d}f=c[(c[pf>>2]|0)+8>>2]|0;j=((f|0)<0)<<31>>31;if(c[g+4>>2]|0){Af=(c[mf>>2]|0)+512|0;yf=Af;yf=gR(c[yf>>2]|0,c[yf+4>>2]|0,f|0,j|0)|0;c[Af>>2]=yf;c[Af+4>>2]=C;break d}else{Af=(c[lf>>2]|0)+144|0;yf=Af;yf=gR(c[yf>>2]|0,c[yf+4>>2]|0,f|0,j|0)|0;c[Af>>2]=yf;c[Af+4>>2]=C;break d}}case 136:if(c[(c[pf>>2]|0)+4>>2]|0){Af=(c[mf>>2]|0)+512|0;if(!((c[Af>>2]|0)==0&(c[Af+4>>2]|0)==0))break d;Af=(c[mf>>2]|0)+520|0;
  91. if((c[Af>>2]|0)==0&(c[Af+4>>2]|0)==0){k=15;break d}else break d}else{Af=(c[lf>>2]|0)+144|0;if(!((c[Af>>2]|0)==0&(c[Af+4>>2]|0)==0))break d;Af=(c[mf>>2]|0)+520|0;if((c[Af>>2]|0)==0&(c[Af+4>>2]|0)==0){k=15;break d}else break d}case 137:{if(c[(c[lf>>2]|0)+176>>2]|0){c[Kc>>2]=c[(c[lf>>2]|0)+176>>2];while(1){if(!(c[(c[Kc>>2]|0)+4>>2]|0))break;c[Kc>>2]=c[(c[Kc>>2]|0)+4>>2]}c[Oc>>2]=(c[(c[Kc>>2]|0)+16>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0)}else c[Oc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);wx(c[Oc>>2]|0)|0;c[Pc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+8>>2]|0)*40|0);wx(c[Pc>>2]|0)|0;yf=c[Oc>>2]|0;f=c[yf+4>>2]|0;Af=c[Pc>>2]|0;j=c[Af+4>>2]|0;if((f|0)<(j|0)|((f|0)==(j|0)?(c[yf>>2]|0)>>>0<(c[Af>>2]|0)>>>0:0)){j=c[Pc>>2]|0;yf=c[j+4>>2]|0;Af=c[Oc>>2]|0;c[Af>>2]=c[j>>2];c[Af+4>>2]=yf}break}case 138:{c[Oc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);Af=c[Oc>>2]|0;yf=c[Af+4>>2]|0;if((yf|0)>0|(yf|0)==0&(c[Af>>2]|0)>>>0>0){Af=c[(c[pf>>2]|0)+12>>2]|0;k=c[Oc>>2]|0;yf=k;Af=fR(c[yf>>2]|0,c[yf+4>>2]|0,Af|0,((Af|0)<0)<<31>>31|0)|0;c[k>>2]=Af;c[k+4>>2]=C;k=15}break}case 139:{c[Oc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);c[Qc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+12>>2]|0)*40|0);c[id>>2]=UH(c[lf>>2]|0,c[pf>>2]|0)|0;Af=c[Oc>>2]|0;yf=c[Af+4>>2]|0;if((yf|0)<0|(yf|0)==0&(c[Af>>2]|0)>>>0<=0){g=-1;f=-1}else{g=c[Oc>>2]|0;Af=c[Qc>>2]|0;yf=c[Af+4>>2]|0;if((yf|0)>0|(yf|0)==0&(c[Af>>2]|0)>>>0>0){j=c[Qc>>2]|0;f=c[j>>2]|0;j=c[j+4>>2]|0}else{f=0;j=0}g=gR(c[g>>2]|0,c[g+4>>2]|0,f|0,j|0)|0;f=C}Af=c[id>>2]|0;c[Af>>2]=g;c[Af+4>>2]=f;break}case 140:{c[Oc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);Af=c[Oc>>2]|0;if((c[Af>>2]|0)!=0|(c[Af+4>>2]|0)!=0){Af=c[(c[pf>>2]|0)+12>>2]|0;k=c[Oc>>2]|0;yf=k;Af=fR(c[yf>>2]|0,c[yf+4>>2]|0,Af|0,((Af|0)<0)<<31>>31|0)|0;c[k>>2]=Af;c[k+4>>2]=C;k=15}break}case 141:{c[Oc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);Af=c[Oc>>2]|0;yf=Af;yf=gR(c[yf>>2]|0,c[yf+4>>2]|0,-1,-1)|0;c[Af>>2]=yf;c[Af+4>>2]=C;Af=c[Oc>>2]|0;if((c[Af>>2]|0)==0&(c[Af+4>>2]|0)==0)k=15;break}case 142:{c[Oc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);j=c[Oc>>2]|0;Af=j;yf=c[Af>>2]|0;Af=c[Af+4>>2]|0;f=gR(yf|0,Af|0,1,0)|0;c[j>>2]=f;c[j+4>>2]=C;if((yf|0)==0&(Af|0)==0)k=15;break}case 143:{c[Na>>2]=d[(c[pf>>2]|0)+3>>0];c[oc>>2]=Fw(c[mf>>2]|0,32+((c[Na>>2]|0)-1<<2)|0,0)|0;if(!(c[oc>>2]|0)){k=860;break a}c[(c[oc>>2]|0)+8>>2]=0;c[(c[oc>>2]|0)+4>>2]=c[(c[pf>>2]|0)+16>>2];c[(c[oc>>2]|0)+16>>2]=((c[pf>>2]|0)-(c[n>>2]|0)|0)/20|0;c[(c[oc>>2]|0)+12>>2]=c[lf>>2];a[(c[oc>>2]|0)+26>>0]=c[Na>>2];a[(c[pf>>2]|0)+1>>0]=-20;c[(c[pf>>2]|0)+16>>2]=c[oc>>2];a[c[pf>>2]>>0]=-112;k=740;break}case 144:{k=740;break}case 145:{c[_c>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);c[rf>>2]=EF(c[_c>>2]|0,c[(c[pf>>2]|0)+16>>2]|0)|0;if(c[rf>>2]|0){Af=c[lf>>2]|0;c[Je>>2]=ae(c[_c>>2]|0)|0;SH(Af,19255,Je)}Zt(c[_c>>2]|0,d[H>>0]|0)|0;if(VH(c[_c>>2]|0)|0){k=859;break c}break}case 8:{c[p>>2]=0;c[p+8>>2]=-1;c[p+4>>2]=-1;c[rf>>2]=ki(c[mf>>2]|0,c[(c[pf>>2]|0)+4>>2]|0,c[(c[pf>>2]|0)+8>>2]|0,p+4|0,p+8|0)|0;if((c[rf>>2]|0)==5){c[rf>>2]=0;c[p>>2]=1}c[aa>>2]=0;c[$c>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+12>>2]|0)*40|0);while(1){if((c[aa>>2]|0)>=3)break d;Af=c[p+(c[aa>>2]<<2)>>2]|0;eh(c[$c>>2]|0,Af,((Af|0)<0)<<31>>31);c[aa>>2]=(c[aa>>2]|0)+1;c[$c>>2]=(c[$c>>2]|0)+40}}case 9:{c[id>>2]=UH(c[lf>>2]|0,c[pf>>2]|0)|0;c[F>>2]=c[(c[pf>>2]|0)+12>>2];c[Ab>>2]=c[(c[(c[mf>>2]|0)+16>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<4)+4>>2];c[jd>>2]=Of(c[Ab>>2]|0)|0;c[G>>2]=qg(c[jd>>2]|0)|0;if((c[F>>2]|0)==-1)c[F>>2]=c[G>>2];if(!($I(c[jd>>2]|0)|0))c[F>>2]=c[G>>2];c[af>>2]=Fi(c[jd>>2]|0,1)|0;do if((c[F>>2]|0)==5){if((If(c[af>>2]|0)|0)!=0?(aJ(c[jd>>2]|0)|0)!=0:0)break;c[F>>2]=c[G>>2]}while(0);do if((c[F>>2]|0)!=(c[G>>2]|0)?(c[G>>2]|0)==5|(c[F>>2]|0)==5:0){if((a[(c[mf>>2]|0)+63>>0]|0)!=0?(c[(c[mf>>2]|0)+152>>2]|0)<=1:0){if((c[G>>2]|0)==5){c[rf>>2]=bJ(c[jd>>2]|0)|0;if(!(c[rf>>2]|0))cJ(c[jd>>2]|0,c[F>>2]|0)|0}else if((c[G>>2]|0)==4)cJ(c[jd>>2]|0,2)|0;if(c[rf>>2]|0)break;c[rf>>2]=Ag(c[Ab>>2]|0,(c[F>>2]|0)==5?2:1)|0;break}c[rf>>2]=1;Af=c[lf>>2]|0;c[Ke>>2]=(c[F>>2]|0)==5?41185:41190;SH(Af,41197,Ke);break d}while(0);if(c[rf>>2]|0)c[F>>2]=c[G>>2];c[F>>2]=cJ(c[jd>>2]|0,c[F>>2]|0)|0;b[(c[id>>2]|0)+8>>1]=2562;Af=RB(c[F>>2]|0)|0;c[(c[id>>2]|0)+16>>2]=Af;Af=If(c[(c[id>>2]|0)+16>>2]|0)|0;c[(c[id>>2]|0)+12>>2]=Af;a[(c[id>>2]|0)+10>>0]=1;Zt(c[id>>2]|0,d[H>>0]|0)|0;break}case 10:{c[rf>>2]=dJ((c[lf>>2]|0)+44|0,c[mf>>2]|0)|0;break}case 146:{c[Bb>>2]=c[(c[(c[mf>>2]|0)+16>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<4)+4>>2];c[rf>>2]=eJ(c[Bb>>2]|0)|0;if((c[rf>>2]|0)==101){c[rf>>2]=0;k=15}break}case 147:if(c[(c[pf>>2]|0)+4>>2]|0){Af=(c[lf>>2]|0)+88|0;b[Af>>1]=b[Af>>1]&-9|8;break d}else{Oh(c[mf>>2]|0);break d}case 148:{a[Ca>>0]=c[(c[pf>>2]|0)+12>>2];if((d[Ca>>0]|0)==0?0!=(c[(c[mf>>2]|0)+24>>2]&16384|0):0)break d;c[qb>>2]=c[(c[pf>>2]|0)+4>>2];c[rf>>2]=fJ(c[(c[(c[mf>>2]|0)+16>>2]|0)+(c[qb>>2]<<4)+4>>2]|0,c[(c[pf>>2]|0)+8>>2]|0,a[Ca>>0]|0)|0;if((c[rf>>2]&255|0)==6){c[Ue>>2]=c[(c[pf>>2]|0)+16>>2];Af=c[lf>>2]|0;c[Le>>2]=c[Ue>>2];SH(Af,41249,Le)}break}case 149:{c[ud>>2]=c[(c[pf>>2]|0)+16>>2];c[rf>>2]=gJ(c[mf>>2]|0,c[ud>>2]|0)|0;if(c[ud>>2]|0)GI(c[lf>>2]|0,c[(c[ud>>2]|0)+8>>2]|0);break}case 150:{g=ke;f=g+40|0;do{c[g>>2]=0;g=g+4|0}while((g|0)<(f|0));c[ke+32>>2]=c[mf>>2];c[rf>>2]=gh(ke,(c[l>>2]|0)+((c[(c[pf>>2]|0)+8>>2]|0)*40|0)|0)|0;c[hf>>2]=ae(ke)|0;if(c[hf>>2]|0)c[rf>>2]=hJ(c[mf>>2]|0,c[(c[pf>>2]|0)+4>>2]|0,c[hf>>2]|0,(c[lf>>2]|0)+44|0)|0;Ug(ke);break}case 151:{Af=(c[mf>>2]|0)+164|0;c[Af>>2]=(c[Af>>2]|0)+1;c[rf>>2]=iJ(c[mf>>2]|0,c[(c[pf>>2]|0)+4>>2]|0,c[(c[pf>>2]|0)+16>>2]|0)|0;Af=(c[mf>>2]|0)+164|0;c[Af>>2]=(c[Af>>2]|0)+-1;break}case 152:{c[rc>>2]=0;c[sd>>2]=0;c[xd>>2]=c[(c[(c[pf>>2]|0)+16>>2]|0)+8>>2];if((c[xd>>2]|0)!=0?(c[c[xd>>2]>>2]|0)!=0:0){c[bd>>2]=c[c[xd>>2]>>2];c[rf>>2]=Yb[c[(c[bd>>2]|0)+24>>2]&255](c[xd>>2]|0,sd)|0;GI(c[lf>>2]|0,c[xd>>2]|0);if(c[rf>>2]|0)break d;c[c[sd>>2]>>2]=c[xd>>2];c[rc>>2]=tI(c[lf>>2]|0,c[(c[pf>>2]|0)+4>>2]|0,0,-1,2)|0;if(!(c[rc>>2]|0)){k=804;break c}c[(c[rc>>2]|0)+16>>2]=c[sd>>2];Af=(c[xd>>2]|0)+4|0;c[Af>>2]=(c[Af>>2]|0)+1;break d}c[rf>>2]=6;break}case 11:{c[ld>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+12>>2]|0)*40|0);c[xb>>2]=(c[ld>>2]|0)+40;c[sc>>2]=c[(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<2)>>2];c[td>>2]=c[(c[sc>>2]|0)+16>>2];c[yd>>2]=c[c[td>>2]>>2];c[cd>>2]=c[c[yd>>2]>>2];c[Oa>>2]=c[c[xb>>2]>>2];c[sa>>2]=c[c[ld>>2]>>2];c[Ud>>2]=0;c[u>>2]=c[(c[lf>>2]|0)+12>>2];c[T>>2]=0;while(1){if((c[T>>2]|0)>=(c[Oa>>2]|0))break;c[(c[u>>2]|0)+(c[T>>2]<<2)>>2]=(c[xb>>2]|0)+(((c[T>>2]|0)+1|0)*40|0);c[T>>2]=(c[T>>2]|0)+1}c[rf>>2]=Zb[c[(c[cd>>2]|0)+32>>2]&255](c[td>>2]|0,c[sa>>2]|0,c[(c[pf>>2]|0)+16>>2]|0,c[Oa>>2]|0,c[u>>2]|0)|0;GI(c[lf>>2]|0,c[yd>>2]|0);if(!(c[rf>>2]|0))c[Ud>>2]=Tb[c[(c[cd>>2]|0)+40>>2]&255](c[td>>2]|0)|0;a[(c[sc>>2]|0)+2>>0]=0;if(c[Ud>>2]|0)k=15;break}case 153:{c[tc>>2]=c[(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<2)>>2];c[Ec>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+12>>2]|0)*40|0);if(a[(c[tc>>2]|0)+2>>0]|0){fh(c[Ec>>2]|0);break d}c[zd>>2]=c[c[(c[tc>>2]|0)+16>>2]>>2];c[dd>>2]=c[c[zd>>2]>>2];c[ie>>2]=0;c[ie+4>>2]=0;c[ie+8>>2]=0;c[ie+12>>2]=0;c[ie+16>>2]=0;c[ie+20>>2]=0;c[ie+24>>2]=0;c[ie+28>>2]=0;c[ie>>2]=c[Ec>>2];b[(c[Ec>>2]|0)+8>>1]=e[(c[Ec>>2]|0)+8>>1]&-49664|1;c[rf>>2]=Ob[c[(c[dd>>2]|0)+44>>2]&255](c[(c[tc>>2]|0)+16>>2]|0,ie,c[(c[pf>>2]|0)+8>>2]|0)|0;GI(c[lf>>2]|0,c[zd>>2]|0);if(c[ie+20>>2]|0)c[rf>>2]=c[ie+20>>2];Zt(c[Ec>>2]|0,d[H>>0]|0)|0;if(VH(c[Ec>>2]|0)|0){k=859;break c}break}case 154:{c[Vd>>2]=0;c[uc>>2]=c[(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<2)>>2];if(!(a[(c[uc>>2]|0)+2>>0]|0)){c[Ad>>2]=c[c[(c[uc>>2]|0)+16>>2]>>2];c[ed>>2]=c[c[Ad>>2]>>2];c[rf>>2]=Tb[c[(c[ed>>2]|0)+36>>2]&255](c[(c[uc>>2]|0)+16>>2]|0)|0;GI(c[lf>>2]|0,c[Ad>>2]|0);if(!(c[rf>>2]|0))c[Vd>>2]=Tb[c[(c[ed>>2]|0)+40>>2]&255](c[(c[uc>>2]|0)+16>>2]|0)|0;if(c[Vd>>2]|0)k=9;else k=8}break}case 155:{c[Bd>>2]=c[(c[(c[pf>>2]|0)+16>>2]|0)+8>>2];c[gd>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0);c[rf>>2]=Zt(c[gd>>2]|0,1)|0;if(!(c[rf>>2]|0)){c[rf>>2]=Yb[c[(c[c[Bd>>2]>>2]|0)+76>>2]&255](c[Bd>>2]|0,c[(c[gd>>2]|0)+16>>2]|0)|0;GI(c[lf>>2]|0,c[Bd>>2]|0);Af=(c[lf>>2]|0)+88|0;b[Af>>1]=b[Af>>1]&-9}break}case 12:{c[Cd>>2]=c[(c[(c[pf>>2]|0)+16>>2]|0)+8>>2];if((c[Cd>>2]|0)!=0?(c[c[Cd>>2]>>2]|0)!=0:0){c[fd>>2]=c[c[Cd>>2]>>2];c[Pa>>2]=c[(c[pf>>2]|0)+8>>2];if(!(c[(c[fd>>2]|0)+52>>2]|0))break d;a[Re>>0]=a[(c[mf>>2]|0)+70>>0]|0;c[v>>2]=c[(c[lf>>2]|0)+12>>2];c[Ed>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+12>>2]|0)*40|0);c[V>>2]=0;while(1){if((c[V>>2]|0)>=(c[Pa>>2]|0))break;c[(c[v>>2]|0)+(c[V>>2]<<2)>>2]=c[Ed>>2];c[Ed>>2]=(c[Ed>>2]|0)+40;c[V>>2]=(c[V>>2]|0)+1}a[(c[mf>>2]|0)+70>>0]=a[(c[pf>>2]|0)+3>>0]|0;c[rf>>2]=Wb[c[(c[fd>>2]|0)+52>>2]&255](c[Cd>>2]|0,c[Pa>>2]|0,c[v>>2]|0,he)|0;a[(c[mf>>2]|0)+70>>0]=a[Re>>0]|0;GI(c[lf>>2]|0,c[Cd>>2]|0);if((c[rf>>2]|0)==0?(c[(c[pf>>2]|0)+4>>2]|0)!=0:0){yf=he;j=c[yf>>2]|0;yf=c[yf+4>>2]|0;Af=nf;c[Af>>2]=j;c[Af+4>>2]=yf;Af=(c[mf>>2]|0)+32|0;c[Af>>2]=j;c[Af+4>>2]=yf}if((c[rf>>2]&255|0)==19?(d[(c[(c[pf>>2]|0)+16>>2]|0)+16>>0]|0)!=0:0){if((d[(c[pf>>2]|0)+3>>0]|0)==4){c[rf>>2]=0;break d}if((d[(c[pf>>2]|0)+3>>0]|0)==5)g=2;else g=d[(c[pf>>2]|0)+3>>0]|0;a[(c[lf>>2]|0)+86>>0]=g;break d}Af=(c[lf>>2]|0)+92|0;c[Af>>2]=(c[Af>>2]|0)+1;break d}c[rf>>2]=6;break}case 156:{c[id>>2]=UH(c[lf>>2]|0,c[pf>>2]|0)|0;yf=rg(c[(c[(c[mf>>2]|0)+16>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<4)+4>>2]|0)|0;Af=c[id>>2]|0;c[Af>>2]=yf;c[Af+4>>2]=0;break}case 157:{c[id>>2]=UH(c[lf>>2]|0,c[pf>>2]|0)|0;c[zb>>2]=c[(c[(c[mf>>2]|0)+16>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<4)+4>>2];c[ib>>2]=0;if((c[(c[pf>>2]|0)+12>>2]|0)!=0?(c[ib>>2]=rg(c[zb>>2]|0)|0,(c[ib>>2]|0)>>>0<(c[(c[pf>>2]|0)+12>>2]|0)>>>0):0)c[ib>>2]=c[(c[pf>>2]|0)+12>>2];yf=jJ(c[zb>>2]|0,c[ib>>2]|0)|0;Af=c[id>>2]|0;c[Af>>2]=yf;c[Af+4>>2]=((yf|0)<0)<<31>>31;break}case 158:{if((c[(c[mf>>2]|0)+176>>2]|0)!=0?((e[(c[lf>>2]|0)+88>>1]|0)>>>9&1|0)==0:0){if(c[(c[pf>>2]|0)+16>>2]|0)g=c[(c[pf>>2]|0)+16>>2]|0;else g=c[(c[lf>>2]|0)+168>>2]|0;c[kf>>2]=g;if(g){c[Ve>>2]=kJ(c[lf>>2]|0,c[kf>>2]|0)|0;Rb[c[(c[mf>>2]|0)+176>>2]&255](c[(c[mf>>2]|0)+180>>2]|0,c[Ve>>2]|0);Sf(c[mf>>2]|0,c[Ve>>2]|0)}}if(c[(c[pf>>2]|0)+8>>2]|0)k=15;break}default:{}}while(0);do if((k|0)==21){k=0;c[qf>>2]=((c[pf>>2]|0)-(c[n>>2]|0)|0)/20|0;if(c[(c[pf>>2]|0)+4>>2]|0){k=26;break c}if(!(c[(c[lf>>2]|0)+176>>2]|0)){k=26;break c}c[Gc>>2]=c[(c[lf>>2]|0)+176>>2];c[(c[lf>>2]|0)+176>>2]=c[(c[Gc>>2]|0)+4>>2];j=(c[lf>>2]|0)+184|0;c[j>>2]=(c[j>>2]|0)+-1;QH(c[mf>>2]|0,c[(c[lf>>2]|0)+92>>2]|0);c[qf>>2]=RH(c[Gc>>2]|0)|0;j=(c[mf>>2]|0)+32|0;yf=c[j+4>>2]|0;Af=nf;c[Af>>2]=c[j>>2];c[Af+4>>2]=yf;if((c[(c[pf>>2]|0)+8>>2]|0)==4)c[qf>>2]=(c[(c[(c[lf>>2]|0)+4>>2]|0)+((c[qf>>2]|0)*20|0)+8>>2]|0)-1;c[n>>2]=c[(c[lf>>2]|0)+4>>2];c[l>>2]=c[(c[lf>>2]|0)+8>>2];c[pf>>2]=(c[n>>2]|0)+((c[qf>>2]|0)*20|0)}else if((k|0)==50){k=0;c[id>>2]=UH(c[lf>>2]|0,c[pf>>2]|0)|0;b[(c[id>>2]|0)+8>>1]=2562;c[(c[id>>2]|0)+16>>2]=c[(c[pf>>2]|0)+16>>2];c[(c[id>>2]|0)+12>>2]=c[(c[pf>>2]|0)+4>>2];a[(c[id>>2]|0)+10>>0]=a[H>>0]|0;if((a[(c[pf>>2]|0)+3>>0]|0)!=0?(c[Qc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+12>>2]|0)*40|0),Af=c[Qc>>2]|0,(c[Af>>2]|0)!=0|(c[Af+4>>2]|0)!=0):0)b[(c[id>>2]|0)+8>>1]=2576}else if((k|0)==132){k=0;c[nc>>2]=c[(c[pf>>2]|0)+16>>2];c[id>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+12>>2]|0)*40|0);j:do if((c[c[nc>>2]>>2]|0)!=(c[id>>2]|0)){c[c[nc>>2]>>2]=c[id>>2];c[X>>2]=(d[(c[nc>>2]|0)+26>>0]|0)-1;while(1){if((c[X>>2]|0)<0)break j;c[(c[nc>>2]|0)+28+(c[X>>2]<<2)>>2]=(c[l>>2]|0)+(((c[(c[pf>>2]|0)+8>>2]|0)+(c[X>>2]|0)|0)*40|0);c[X>>2]=(c[X>>2]|0)+-1}}while(0);b[(c[c[nc>>2]>>2]|0)+8>>1]=e[(c[c[nc>>2]>>2]|0)+8>>1]&-49664|1;a[(c[nc>>2]|0)+25>>0]=0;Af=nf;yf=c[Af+4>>2]|0;j=(c[mf>>2]|0)+32|0;c[j>>2]=c[Af>>2];c[j+4>>2]=yf;Ub[c[(c[(c[nc>>2]|0)+4>>2]|0)+12>>2]&255](c[nc>>2]|0,d[(c[nc>>2]|0)+26>>0]|0,(c[nc>>2]|0)+28|0);j=(c[mf>>2]|0)+32|0;yf=c[j+4>>2]|0;Af=nf;c[Af>>2]=c[j>>2];c[Af+4>>2]=yf;if(a[(c[nc>>2]|0)+25>>0]|0){if(c[(c[nc>>2]|0)+20>>2]|0){Af=c[lf>>2]|0;c[Ae>>2]=ae(c[c[nc>>2]>>2]|0)|0;SH(Af,19255,Ae);c[rf>>2]=c[(c[nc>>2]|0)+20>>2]}bI(c[lf>>2]|0,c[(c[nc>>2]|0)+16>>2]|0,c[(c[pf>>2]|0)+4>>2]|0)}if((e[(c[id>>2]|0)+8>>1]&18|0)!=0?(Zt(c[c[nc>>2]>>2]|0,d[H>>0]|0)|0,(VH(c[c[nc>>2]>>2]|0)|0)!=0):0){k=859;break c}}else if((k|0)==438){k=0;if((e[(c[lf>>2]|0)+88>>1]|0)>>>3&1){c[rf>>2]=516;break}c[Ya>>2]=0;c[Tc>>2]=0;c[wb>>2]=c[(c[pf>>2]|0)+8>>2];c[ia>>2]=c[(c[pf>>2]|0)+12>>2];c[Bc>>2]=(c[(c[mf>>2]|0)+16>>2]|0)+(c[ia>>2]<<4);c[Dd>>2]=c[(c[Bc>>2]|0)+4>>2];if((d[c[pf>>2]>>0]|0)==55){c[Se>>2]=4|d[(c[pf>>2]|0)+3>>0]&8;if((d[(c[(c[Bc>>2]|0)+12>>2]|0)+76>>0]|0)<(d[(c[lf>>2]|0)+87>>0]|0))a[(c[lf>>2]|0)+87>>0]=a[(c[(c[Bc>>2]|0)+12>>2]|0)+76>>0]|0}else c[Se>>2]=0;if((d[(c[pf>>2]|0)+3>>0]&16|0)!=0?(c[Pc>>2]=(c[l>>2]|0)+((c[wb>>2]|0)*40|0),wx(c[Pc>>2]|0)|0,c[wb>>2]=c[c[Pc>>2]>>2],(c[wb>>2]|0)<2):0){k=446;break c}g=c[pf>>2]|0;if((a[(c[pf>>2]|0)+1>>0]|0)!=-6){if((a[g+1>>0]|0)==-14)c[Ya>>2]=c[(c[pf>>2]|0)+16>>2]}else{c[Tc>>2]=c[g+16>>2];c[Ya>>2]=(e[(c[Tc>>2]|0)+6>>1]|0)+(e[(c[Tc>>2]|0)+8>>1]|0)}c[qc>>2]=tI(c[lf>>2]|0,c[(c[pf>>2]|0)+4>>2]|0,c[Ya>>2]|0,c[ia>>2]|0,0)|0;if(!(c[qc>>2]|0)){k=860;break a}a[(c[qc>>2]|0)+2>>0]=1;k=(c[qc>>2]|0)+5|0;a[k>>0]=a[k>>0]&-5|4;c[(c[qc>>2]|0)+8>>2]=c[wb>>2];c[rf>>2]=uI(c[Dd>>2]|0,c[wb>>2]|0,c[Se>>2]|0,c[Tc>>2]|0,c[(c[qc>>2]|0)+16>>2]|0)|0;c[(c[qc>>2]|0)+24>>2]=c[Tc>>2];a[(c[qc>>2]|0)+4>>0]=(a[(c[pf>>2]|0)+1>>0]|0)!=-6;k=453}else if((k|0)==609){k=0;c[Sb>>2]=c[(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<2)>>2];c[be>>2]=1;g=c[Sb>>2]|0;if((d[c[Sb>>2]>>0]|0)==1)c[rf>>2]=II(g,be)|0;else{c[kc>>2]=c[g+16>>2];c[rf>>2]=JI(c[kc>>2]|0,be)|0;a[(c[Sb>>2]|0)+3>>0]=0;c[(c[Sb>>2]|0)+56>>2]=0}a[(c[Sb>>2]|0)+2>>0]=c[be>>2];if(c[be>>2]|0)k=15}else if((k|0)==615){c[Vb>>2]=c[(c[(c[lf>>2]|0)+56>>2]|0)+(c[(c[pf>>2]|0)+4>>2]<<2)>>2];c[ce>>2]=c[(c[pf>>2]|0)+12>>2];c[rf>>2]=Yb[c[(c[pf>>2]|0)+16>>2]&255](c[(c[Vb>>2]|0)+16>>2]|0,ce)|0;k=616}else if((k|0)==740){k=0;c[pc>>2]=c[(c[pf>>2]|0)+16>>2];c[Zc>>2]=(c[l>>2]|0)+((c[(c[pf>>2]|0)+12>>2]|0)*40|0);k:do if((c[(c[pc>>2]|0)+8>>2]|0)!=(c[Zc>>2]|0)){c[(c[pc>>2]|0)+8>>2]=c[Zc>>2];c[_>>2]=(d[(c[pc>>2]|0)+26>>0]|0)-1;while(1){if((c[_>>2]|0)<0)break k;c[(c[pc>>2]|0)+28+(c[_>>2]<<2)>>2]=(c[l>>2]|0)+(((c[(c[pf>>2]|0)+8>>2]|0)+(c[_>>2]|0)|0)*40|0);c[_>>2]=(c[_>>2]|0)+-1}}while(0);Af=(c[Zc>>2]|0)+12|0;c[Af>>2]=(c[Af>>2]|0)+1;AF(pe,c[mf>>2]|0,1);c[c[pc>>2]>>2]=pe;a[(c[pc>>2]|0)+25>>0]=0;a[(c[pc>>2]|0)+24>>0]=0;Ub[c[(c[(c[pc>>2]|0)+4>>2]|0)+12>>2]&255](c[pc>>2]|0,d[(c[pc>>2]|0)+26>>0]|0,(c[pc>>2]|0)+28|0);if(a[(c[pc>>2]|0)+25>>0]|0){if(c[(c[pc>>2]|0)+20>>2]|0){Af=c[lf>>2]|0;c[Ie>>2]=ae(pe)|0;SH(Af,19255,Ie);c[rf>>2]=c[(c[pc>>2]|0)+20>>2]}Ug(pe)}if((a[(c[pc>>2]|0)+24>>0]|0)!=0?(c[_>>2]=c[(c[pf>>2]|0)+-20+4>>2],(c[_>>2]|0)!=0):0)eh((c[l>>2]|0)+((c[_>>2]|0)*40|0)|0,1,0)}while(0);do if((k|0)==15){k=0;c[pf>>2]=(c[n>>2]|0)+(((c[(c[pf>>2]|0)+8>>2]|0)-1|0)*20|0)}else if((k|0)==453){k=0;vI(c[(c[qc>>2]|0)+16>>2]|0,d[(c[pf>>2]|0)+3>>0]&3)}else if((k|0)==616){c[(c[Vb>>2]|0)+56>>2]=0;g=(c[Vb>>2]|0)+2|0;if(!(c[ce>>2]|0)){a[g>>0]=0;k=(c[lf>>2]|0)+108+(d[(c[pf>>2]|0)+3>>0]<<2)|0;c[k>>2]=(c[k>>2]|0)+1;k=8;break}else{a[g>>0]=1;k=9;break}}while(0);if((k|0)==8){c[pf>>2]=(c[n>>2]|0)+(((c[(c[pf>>2]|0)+8>>2]|0)-1|0)*20|0);k=9}if((k|0)==9){k=0;if(c[(c[mf>>2]|0)+240>>2]|0)break b;if(((c[(c[mf>>2]|0)+296>>2]|0)!=0?(c[of>>2]|0)>>>0>=(c[db>>2]|0)>>>0:0)?(c[db>>2]=(c[of>>2]|0)+(c[(c[mf>>2]|0)+304>>2]|0)-(((c[of>>2]|0)>>>0)%((c[(c[mf>>2]|0)+304>>2]|0)>>>0)|0),(Tb[c[(c[mf>>2]|0)+296>>2]&255](c[(c[mf>>2]|0)+300>>2]|0)|0)!=0):0){k=13;break}}c[pf>>2]=(c[pf>>2]|0)+20}switch(k|0){case 13:{c[rf>>2]=9;break a}case 26:{c[(c[lf>>2]|0)+80>>2]=c[(c[pf>>2]|0)+4>>2];a[(c[lf>>2]|0)+86>>0]=c[(c[pf>>2]|0)+8>>2];c[(c[lf>>2]|0)+76>>2]=c[qf>>2];if(c[(c[lf>>2]|0)+80>>2]|0){if(a[(c[pf>>2]|0)+3>>0]|0)c[wf>>2]=c[6408+((d[(c[pf>>2]|0)+3>>0]|0)-1<<2)>>2];else c[wf>>2]=0;c[vf>>2]=40646;if((c[wf>>2]|0)!=0?(c[(c[pf>>2]|0)+16>>2]|0)!=0:0){Af=c[lf>>2]|0;yf=c[(c[pf>>2]|0)+16>>2]|0;c[ze>>2]=c[wf>>2];c[ze+4>>2]=yf;SH(Af,40670,ze)}else k=33;do if((k|0)==33){g=c[lf>>2]|0;if(c[(c[pf>>2]|0)+16>>2]|0){c[sf>>2]=c[(c[pf>>2]|0)+16>>2];SH(g,19255,sf);break}else{c[tf>>2]=c[wf>>2];SH(g,40695,tf);break}}while(0);yf=c[(c[pf>>2]|0)+4>>2]|0;Af=c[vf>>2]|0;vf=c[(c[lf>>2]|0)+168>>2]|0;wf=c[(c[lf>>2]|0)+44>>2]|0;c[uf>>2]=c[qf>>2];c[uf+4>>2]=vf;c[uf+8>>2]=wf;Rd(yf,Af,uf)}c[rf>>2]=TH(c[lf>>2]|0)|0;if((c[rf>>2]|0)==5){c[rf>>2]=5;c[(c[lf>>2]|0)+80>>2]=5;Af=nf;vf=Af;vf=c[vf>>2]|0;Af=Af+4|0;Af=c[Af>>2]|0;yf=c[mf>>2]|0;yf=yf+32|0;wf=yf;c[wf>>2]=vf;yf=yf+4|0;c[yf>>2]=Af;yf=c[of>>2]|0;Af=c[lf>>2]|0;Af=Af+108|0;Af=Af+16|0;wf=c[Af>>2]|0;yf=wf+yf|0;c[Af>>2]=yf;Af=c[rf>>2]|0;i=xf;return Af|0}else{c[rf>>2]=(c[(c[lf>>2]|0)+80>>2]|0)!=0?1:101;Af=nf;vf=Af;vf=c[vf>>2]|0;Af=Af+4|0;Af=c[Af>>2]|0;yf=c[mf>>2]|0;yf=yf+32|0;wf=yf;c[wf>>2]=vf;yf=yf+4|0;c[yf>>2]=Af;yf=c[of>>2]|0;Af=c[lf>>2]|0;Af=Af+108|0;Af=Af+16|0;wf=c[Af>>2]|0;yf=wf+yf|0;c[Af>>2]=yf;Af=c[rf>>2]|0;i=xf;return Af|0}}case 74:{c[rf>>2]=9;break a}case 77:{c[(c[lf>>2]|0)+72>>2]=(c[(c[lf>>2]|0)+72>>2]|0)+2|1;Af=(c[l>>2]|0)+((c[(c[pf>>2]|0)+4>>2]|0)*40|0)|0;c[(c[lf>>2]|0)+20>>2]=Af;c[Wc>>2]=Af;c[S>>2]=0;while(1){if((c[S>>2]|0)>=(c[(c[pf>>2]|0)+8>>2]|0))break;if((e[(c[Wc>>2]|0)+((c[S>>2]|0)*40|0)+8>>1]&4096|0)!=0?(_g((c[Wc>>2]|0)+((c[S>>2]|0)*40|0)|0)|0)!=0:0){k=860;break a}YH((c[Wc>>2]|0)+((c[S>>2]|0)*40|0)|0)|0;c[S>>2]=(c[S>>2]|0)+1}if(a[(c[mf>>2]|0)+65>>0]|0){k=860;break a}c[(c[lf>>2]|0)+76>>2]=(((c[pf>>2]|0)-(c[n>>2]|0)|0)/20|0)+1;c[rf>>2]=100;Af=nf;vf=Af;vf=c[vf>>2]|0;Af=Af+4|0;Af=c[Af>>2]|0;yf=c[mf>>2]|0;yf=yf+32|0;wf=yf;c[wf>>2]=vf;yf=yf+4|0;c[yf>>2]=Af;yf=c[of>>2]|0;Af=c[lf>>2]|0;Af=Af+108|0;Af=Af+16|0;wf=c[Af>>2]|0;yf=wf+yf|0;c[Af>>2]=yf;Af=c[rf>>2]|0;i=xf;return Af|0}case 165:{c[rf>>2]=20;k=861;break}case 367:{c[(c[lf>>2]|0)+76>>2]=((c[pf>>2]|0)-(c[n>>2]|0)|0)/20|0;a[(c[mf>>2]|0)+63>>0]=0;c[rf>>2]=5;c[(c[lf>>2]|0)+80>>2]=5;Af=nf;vf=Af;vf=c[vf>>2]|0;Af=Af+4|0;Af=c[Af>>2]|0;yf=c[mf>>2]|0;yf=yf+32|0;wf=yf;c[wf>>2]=vf;yf=yf+4|0;c[yf>>2]=Af;yf=c[of>>2]|0;Af=c[lf>>2]|0;Af=Af+108|0;Af=Af+16|0;wf=c[Af>>2]|0;yf=wf+yf|0;c[Af>>2]=yf;Af=c[rf>>2]|0;i=xf;return Af|0}case 391:{qI(c[mf>>2]|0,516);a[(c[mf>>2]|0)+63>>0]=1;break}case 395:{Af=WH(c[lf>>2]|0,1)|0;c[rf>>2]=Af;if(Af){Af=nf;vf=Af;vf=c[vf>>2]|0;Af=Af+4|0;Af=c[Af>>2]|0;yf=c[mf>>2]|0;yf=yf+32|0;wf=yf;c[wf>>2]=vf;yf=yf+4|0;c[yf>>2]=Af;yf=c[of>>2]|0;Af=c[lf>>2]|0;Af=Af+108|0;Af=Af+16|0;wf=c[Af>>2]|0;yf=wf+yf|0;c[Af>>2]=yf;Af=c[rf>>2]|0;i=xf;return Af|0}else{a[(c[mf>>2]|0)+63>>0]=c[E>>2];break}}case 407:{c[rf>>2]=8;k=861;break}case 410:{c[(c[lf>>2]|0)+76>>2]=((c[pf>>2]|0)-(c[n>>2]|0)|0)/20|0;c[(c[lf>>2]|0)+80>>2]=c[rf>>2];Af=nf;vf=Af;vf=c[vf>>2]|0;Af=Af+4|0;Af=c[Af>>2]|0;yf=c[mf>>2]|0;yf=yf+32|0;wf=yf;c[wf>>2]=vf;yf=yf+4|0;c[yf>>2]=Af;yf=c[of>>2]|0;Af=c[lf>>2]|0;Af=Af+108|0;Af=Af+16|0;wf=c[Af>>2]|0;yf=wf+yf|0;c[Af>>2]=yf;Af=c[rf>>2]|0;i=xf;return Af|0}case 446:{c[rf>>2]=Lj(77597)|0;k=861;break}case 542:{c[rf>>2]=13;k=861;break}case 551:{c[rf>>2]=13;k=861;break}case 804:{Tb[c[(c[bd>>2]|0)+28>>2]&255](c[sd>>2]|0)|0;k=860;break a}case 858:{Af=nf;vf=Af;vf=c[vf>>2]|0;Af=Af+4|0;Af=c[Af>>2]|0;yf=c[mf>>2]|0;yf=yf+32|0;wf=yf;c[wf>>2]=vf;yf=yf+4|0;c[yf>>2]=Af;yf=c[of>>2]|0;Af=c[lf>>2]|0;Af=Af+108|0;Af=Af+16|0;wf=c[Af>>2]|0;yf=wf+yf|0;c[Af>>2]=yf;Af=c[rf>>2]|0;i=xf;return Af|0}case 859:{SH(c[lf>>2]|0,19034,Ne);c[rf>>2]=18;break a}}if((k|0)==861){if(a[(c[mf>>2]|0)+65>>0]|0)c[rf>>2]=7;if((c[rf>>2]|0)==3082)break a;Af=c[lf>>2]|0;c[Pe>>2]=ih(c[rf>>2]|0)|0;SH(Af,19255,Pe);break a}if((TH(c[lf>>2]|0)|0)==5){c[(c[lf>>2]|0)+76>>2]=((c[pf>>2]|0)-(c[n>>2]|0)|0)/20|0;a[(c[mf>>2]|0)+63>>0]=1-(c[E>>2]|0);c[rf>>2]=5;c[(c[lf>>2]|0)+80>>2]=5;Af=nf;vf=Af;vf=c[vf>>2]|0;Af=Af+4|0;Af=c[Af>>2]|0;yf=c[mf>>2]|0;yf=yf+32|0;wf=yf;c[wf>>2]=vf;yf=yf+4|0;c[yf>>2]=Af;yf=c[of>>2]|0;Af=c[lf>>2]|0;Af=Af+108|0;Af=Af+16|0;wf=c[Af>>2]|0;yf=wf+yf|0;c[Af>>2]=yf;Af=c[rf>>2]|0;i=xf;return Af|0}rI(c[mf>>2]|0);if(!(c[(c[lf>>2]|0)+80>>2]|0)){c[rf>>2]=101;Af=nf;vf=Af;vf=c[vf>>2]|0;Af=Af+4|0;Af=c[Af>>2]|0;yf=c[mf>>2]|0;yf=yf+32|0;wf=yf;c[wf>>2]=vf;yf=yf+4|0;c[yf>>2]=Af;yf=c[of>>2]|0;Af=c[lf>>2]|0;Af=Af+108|0;Af=Af+16|0;wf=c[Af>>2]|0;yf=wf+yf|0;c[Af>>2]=yf;Af=c[rf>>2]|0;i=xf;return Af|0}else{c[rf>>2]=1;Af=nf;vf=Af;vf=c[vf>>2]|0;Af=Af+4|0;Af=c[Af>>2]|0;yf=c[mf>>2]|0;yf=yf+32|0;wf=yf;c[wf>>2]=vf;yf=yf+4|0;c[yf>>2]=Af;yf=c[of>>2]|0;Af=c[lf>>2]|0;Af=Af+108|0;Af=Af+16|0;wf=c[Af>>2]|0;yf=wf+yf|0;c[Af>>2]=yf;Af=c[rf>>2]|0;i=xf;return Af|0}}while(0);c[rf>>2]=(d[(c[mf>>2]|0)+65>>0]|0)!=0?7:9;c[(c[lf>>2]|0)+80>>2]=c[rf>>2];Af=c[lf>>2]|0;c[Qe>>2]=ih(c[rf>>2]|0)|0;SH(Af,19255,Qe)}while(0);if((k|0)==860){jh(c[mf>>2]|0);SH(c[lf>>2]|0,32392,Oe);c[rf>>2]=7}c[(c[lf>>2]|0)+80>>2]=c[rf>>2];Af=c[rf>>2]|0;wf=c[(c[lf>>2]|0)+168>>2]|0;yf=c[(c[lf>>2]|0)+44>>2]|0;c[Me>>2]=((c[pf>>2]|0)-(c[n>>2]|0)|0)/20|0;c[Me+4>>2]=wf;c[Me+8>>2]=yf;Rd(Af,41278,Me);TH(c[lf>>2]|0)|0;if((c[rf>>2]|0)==3082)jh(c[mf>>2]|0);c[rf>>2]=1;if((d[fe>>0]|0)<=0){Af=nf;vf=Af;vf=c[vf>>2]|0;Af=Af+4|0;Af=c[Af>>2]|0;yf=c[mf>>2]|0;yf=yf+32|0;wf=yf;c[wf>>2]=vf;yf=yf+4|0;c[yf>>2]=Af;yf=c[of>>2]|0;Af=c[lf>>2]|0;Af=Af+108|0;Af=Af+16|0;wf=c[Af>>2]|0;yf=wf+yf|0;c[Af>>2]=yf;Af=c[rf>>2]|0;i=xf;return Af|0}rj(c[mf>>2]|0,(d[fe>>0]|0)-1|0);Af=nf;vf=Af;vf=c[vf>>2]|0;Af=Af+4|0;Af=c[Af>>2]|0;yf=c[mf>>2]|0;yf=yf+32|0;wf=yf;c[wf>>2]=vf;yf=yf+4|0;c[yf>>2]=Af;yf=c[of>>2]|0;Af=c[lf>>2]|0;Af=Af+108|0;Af=Af+16|0;wf=c[Af>>2]|0;yf=wf+yf|0;c[Af>>2]=yf;Af=c[rf>>2]|0;i=xf;return Af|0}function LH(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=i;i=i+32|0;b=h+16|0;g=h+12|0;d=h+8|0;f=h+4|0;e=h;c[b>>2]=a;c[g>>2]=0;c[d>>2]=0;while(1){if((c[d>>2]|0)>=(c[(c[b>>2]|0)+20>>2]|0))break;c[f>>2]=c[(c[(c[b>>2]|0)+16>>2]|0)+(c[d>>2]<<4)+4>>2];if((c[f>>2]|0)!=0?(kg(c[f>>2]|0),c[e>>2]=NH(Of(c[f>>2]|0)|0)|0,((c[e>>2]|0)>0?(c[(c[b>>2]|0)+216>>2]|0)!=0:0)&(c[g>>2]|0)==0):0)c[g>>2]=Wb[c[(c[b>>2]|0)+216>>2]&255](c[(c[b>>2]|0)+220>>2]|0,c[b>>2]|0,c[(c[(c[b>>2]|0)+16>>2]|0)+(c[d>>2]<<4)>>2]|0,c[e>>2]|0)|0;c[d>>2]=(c[d>>2]|0)+1}i=h;return c[g>>2]|0}function MH(b){b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;e=g+4|0;f=g;c[d>>2]=b;c[e>>2]=c[c[d>>2]>>2];c[f>>2]=c[(c[d>>2]|0)+80>>2];b=c[e>>2]|0;if(!(c[(c[d>>2]|0)+44>>2]|0)){jg(b,c[f>>2]|0);f=c[f>>2]|0;i=g;return f|0}b=b+66|0;a[b>>0]=(a[b>>0]|0)+1<<24>>24;Sj();if(!(c[(c[e>>2]|0)+236>>2]|0)){b=Vh(c[e>>2]|0)|0;c[(c[e>>2]|0)+236>>2]=b}Wh(c[(c[e>>2]|0)+236>>2]|0,-1,c[(c[d>>2]|0)+44>>2]|0,1,-1);Tj();d=(c[e>>2]|0)+66|0;a[d>>0]=(a[d>>0]|0)+-1<<24>>24;c[(c[e>>2]|0)+52>>2]=c[f>>2];f=c[f>>2]|0;i=g;return f|0}function NH(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=OH(c[(c[d>>2]|0)+216>>2]|0)|0;i=b;return a|0}function OH(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[b>>2]=a;c[d>>2]=0;if(!(c[b>>2]|0)){d=c[d>>2]|0;i=e;return d|0}c[d>>2]=c[(c[b>>2]|0)+12>>2];c[(c[b>>2]|0)+12>>2]=0;d=c[d>>2]|0;i=e;return d|0}function PH(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;h=i;i=i+32|0;b=h+16|0;f=h+12|0;e=h+8|0;d=h+4|0;g=h;c[b>>2]=a;if(!(c[(c[b>>2]|0)+100>>2]|0)){i=h;return}c[e>>2]=c[c[b>>2]>>2];c[d>>2]=c[(c[e>>2]|0)+16>>2];c[g>>2]=c[(c[e>>2]|0)+20>>2];c[f>>2]=0;while(1){if((c[f>>2]|0)>=(c[g>>2]|0))break;if(((c[f>>2]|0)!=1?(c[(c[b>>2]|0)+100>>2]&1<<c[f>>2]|0)!=0:0)?(c[(c[d>>2]|0)+(c[f>>2]<<4)+4>>2]|0)!=0:0)kg(c[(c[d>>2]|0)+(c[f>>2]<<4)+4>>2]|0);c[f>>2]=(c[f>>2]|0)+1}i=h;return}function QH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;c[(c[f>>2]|0)+80>>2]=c[e>>2];b=(c[f>>2]|0)+84|0;c[b>>2]=(c[b>>2]|0)+(c[e>>2]|0);i=d;return}function RH(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;d=i;i=i+16|0;b=d+4|0;e=d;c[b>>2]=a;c[e>>2]=c[c[b>>2]>>2];kM(c[e>>2]|0);c[(c[e>>2]|0)+200>>2]=c[(c[b>>2]|0)+20>>2];c[(c[e>>2]|0)+196>>2]=c[(c[b>>2]|0)+56>>2];c[(c[e>>2]|0)+4>>2]=c[(c[b>>2]|0)+8>>2];c[(c[e>>2]|0)+32>>2]=c[(c[b>>2]|0)+48>>2];c[(c[e>>2]|0)+8>>2]=c[(c[b>>2]|0)+16>>2];c[(c[e>>2]|0)+28>>2]=c[(c[b>>2]|0)+52>>2];c[(c[e>>2]|0)+56>>2]=c[(c[b>>2]|0)+24>>2];c[(c[e>>2]|0)+36>>2]=c[(c[b>>2]|0)+40>>2];g=(c[b>>2]|0)+32|0;f=c[g+4>>2]|0;a=(c[c[e>>2]>>2]|0)+32|0;c[a>>2]=c[g>>2];c[a+4>>2]=f;c[(c[e>>2]|0)+92>>2]=c[(c[b>>2]|0)+68>>2];c[(c[c[e>>2]>>2]|0)+80>>2]=c[(c[b>>2]|0)+72>>2];i=d;return c[(c[b>>2]|0)+44>>2]|0}function SH(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=i;i=i+32|0;f=e+20|0;h=e+16|0;g=e;c[f>>2]=a;c[h>>2]=b;Sf(c[c[f>>2]>>2]|0,c[(c[f>>2]|0)+44>>2]|0);c[g>>2]=d;b=Zw(c[c[f>>2]>>2]|0,c[h>>2]|0,g)|0;c[(c[f>>2]|0)+44>>2]=b;i=e;return}function TH(b){b=b|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;k=o+24|0;l=o+20|0;h=o+16|0;m=o+12|0;g=o+8|0;n=o+4|0;f=o;c[l>>2]=b;c[m>>2]=c[c[l>>2]>>2];if(a[(c[m>>2]|0)+65>>0]|0)c[(c[l>>2]|0)+80>>2]=7;if(c[(c[l>>2]|0)+200>>2]|0)kR(c[(c[l>>2]|0)+200>>2]|0,0,c[(c[l>>2]|0)+196>>2]|0)|0;cM(c[l>>2]|0);if((c[(c[l>>2]|0)+40>>2]|0)!=-1108210269){c[k>>2]=0;n=c[k>>2]|0;i=o;return n|0}if((c[(c[l>>2]|0)+76>>2]|0)>=0?((e[(c[l>>2]|0)+88>>1]|0)>>>7&1|0)!=0:0){c[n>>2]=0;PH(c[l>>2]|0);c[g>>2]=c[(c[l>>2]|0)+80>>2]&255;if((c[g>>2]|0)==7|(c[g>>2]|0)==10|(c[g>>2]|0)==9)b=1;else b=(c[g>>2]|0)==13;c[f>>2]=b&1;do if((c[f>>2]|0)!=0?(c[g>>2]|0)!=9?1:((e[(c[l>>2]|0)+88>>1]|0)>>>6&1|0)==0:0){if((c[g>>2]|0)==7|(c[g>>2]|0)==13?((e[(c[l>>2]|0)+88>>1]|0)>>>5&1|0)!=0:0){c[n>>2]=2;break}qI(c[m>>2]|0,516);rI(c[m>>2]|0);a[(c[m>>2]|0)+63>>0]=1;c[(c[l>>2]|0)+92>>2]=0}while(0);if(!(c[(c[l>>2]|0)+80>>2]|0))WH(c[l>>2]|0,0)|0;if((c[(c[m>>2]|0)+308>>2]|0)>0?(c[(c[m>>2]|0)+332>>2]|0)==0:0)j=38;else if((d[(c[m>>2]|0)+63>>0]|0)!=0?(c[(c[m>>2]|0)+156>>2]|0)==(((e[(c[l>>2]|0)+88>>1]|0)>>>6&1|0)==0|0):0){if((c[(c[l>>2]|0)+80>>2]|0)!=0?(c[f>>2]|0)!=0?1:(d[(c[l>>2]|0)+86>>0]|0)!=3:0){qI(c[m>>2]|0,0);c[(c[l>>2]|0)+92>>2]=0}else j=25;do if((j|0)==25){c[h>>2]=WH(c[l>>2]|0,1)|0;do if(c[h>>2]|0){if(!((e[(c[l>>2]|0)+88>>1]|0)>>>6&1)){c[h>>2]=787;break}c[k>>2]=1;n=c[k>>2]|0;i=o;return n|0}else c[h>>2]=dM(c[m>>2]|0,c[l>>2]|0)|0;while(0);if((c[h>>2]|0)==5?((e[(c[l>>2]|0)+88>>1]|0)>>>6&1|0)!=0:0){c[k>>2]=5;n=c[k>>2]|0;i=o;return n|0}if(c[h>>2]|0){c[(c[l>>2]|0)+80>>2]=c[h>>2];qI(c[m>>2]|0,0);c[(c[l>>2]|0)+92>>2]=0;break}else{g=(c[m>>2]|0)+512|0;c[g>>2]=0;c[g+4>>2]=0;g=(c[m>>2]|0)+520|0;c[g>>2]=0;c[g+4>>2]=0;g=(c[m>>2]|0)+24|0;c[g>>2]=c[g>>2]&-16777217;sj(c[m>>2]|0);break}}while(0);c[(c[m>>2]|0)+504>>2]=0}else j=38;do if((j|0)==38?(c[n>>2]|0)==0:0){if((c[(c[l>>2]|0)+80>>2]|0)!=0?(d[(c[l>>2]|0)+86>>0]|0)!=3:0)if((d[(c[l>>2]|0)+86>>0]|0)==2){c[n>>2]=2;break}else{qI(c[m>>2]|0,516);rI(c[m>>2]|0);a[(c[m>>2]|0)+63>>0]=1;c[(c[l>>2]|0)+92>>2]=0;break}c[n>>2]=1}while(0);if((c[n>>2]|0)!=0?(c[h>>2]=XH(c[l>>2]|0,c[n>>2]|0)|0,(c[h>>2]|0)!=0):0){if(!((c[(c[l>>2]|0)+80>>2]|0)!=0?(c[(c[l>>2]|0)+80>>2]&255|0)!=19:0)){c[(c[l>>2]|0)+80>>2]=c[h>>2];Sf(c[m>>2]|0,c[(c[l>>2]|0)+44>>2]|0);c[(c[l>>2]|0)+44>>2]=0}qI(c[m>>2]|0,516);rI(c[m>>2]|0);a[(c[m>>2]|0)+63>>0]=1;c[(c[l>>2]|0)+92>>2]=0}if((e[(c[l>>2]|0)+88>>1]|0)>>>2&1){b=c[m>>2]|0;if((c[n>>2]|0)!=2)QH(b,c[(c[l>>2]|0)+92>>2]|0);else QH(b,0);c[(c[l>>2]|0)+92>>2]=0}}if((c[(c[l>>2]|0)+76>>2]|0)>=0){n=(c[m>>2]|0)+148|0;c[n>>2]=(c[n>>2]|0)+-1;if(!((e[(c[l>>2]|0)+88>>1]|0)>>>6&1)){n=(c[m>>2]|0)+156|0;c[n>>2]=(c[n>>2]|0)+-1}if((e[(c[l>>2]|0)+88>>1]|0)>>>7&1){n=(c[m>>2]|0)+152|0;c[n>>2]=(c[n>>2]|0)+-1}}c[(c[l>>2]|0)+40>>2]=1369188723;if(a[(c[m>>2]|0)+65>>0]|0)c[(c[l>>2]|0)+80>>2]=7;c[k>>2]=(c[(c[l>>2]|0)+80>>2]|0)==5?5:0;n=c[k>>2]|0;i=o;return n|0}function UH(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0;h=i;i=i+16|0;f=h+12|0;k=h+8|0;j=h+4|0;g=h;c[k>>2]=a;c[j>>2]=d;c[g>>2]=(c[(c[k>>2]|0)+8>>2]|0)+((c[(c[j>>2]|0)+8>>2]|0)*40|0);a=c[g>>2]|0;if((e[(c[g>>2]|0)+8>>1]|0)&9312){c[f>>2]=bM(a)|0;k=c[f>>2]|0;i=h;return k|0}else{b[a+8>>1]=4;c[f>>2]=c[g>>2];k=c[f>>2]|0;i=h;return k|0}return 0}function VH(a){a=a|0;var b=0,d=0,f=0,g=0;g=i;i=i+16|0;b=g+8|0;d=g+4|0;f=g;c[d>>2]=a;if(!((e[(c[d>>2]|0)+8>>1]|0)&18)){c[b>>2]=0;a=c[b>>2]|0;i=g;return a|0}c[f>>2]=c[(c[d>>2]|0)+12>>2];if((e[(c[d>>2]|0)+8>>1]|0)&16384)c[f>>2]=(c[f>>2]|0)+(c[c[d>>2]>>2]|0);c[b>>2]=(c[f>>2]|0)>(c[(c[(c[d>>2]|0)+32>>2]|0)+88>>2]|0)&1;a=c[b>>2]|0;i=g;return a|0}function WH(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;j=l;e=l+16|0;f=l+12|0;g=l+8|0;h=l+4|0;c[f>>2]=b;c[g>>2]=d;c[h>>2]=c[c[f>>2]>>2];if(!((c[g>>2]|0)!=0?(d=(c[h>>2]|0)+512|0,b=(c[h>>2]|0)+520|0,b=gR(c[d>>2]|0,c[d+4>>2]|0,c[b>>2]|0,c[b+4>>2]|0)|0,d=C,(d|0)>0|(d|0)==0&b>>>0>0):0))k=3;do if((k|0)==3){if((c[g>>2]|0)==0?(k=(c[f>>2]|0)+144|0,b=c[k+4>>2]|0,(b|0)>0|(b|0)==0&(c[k>>2]|0)>>>0>0):0)break;c[e>>2]=0;k=c[e>>2]|0;i=l;return k|0}while(0);c[(c[f>>2]|0)+80>>2]=787;a[(c[f>>2]|0)+86>>0]=2;SH(c[f>>2]|0,36044,j);c[e>>2]=1;k=c[e>>2]|0;i=l;return k|0}function XH(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;d=m+28|0;e=m+24|0;f=m+20|0;k=m+16|0;g=m+12|0;h=m+8|0;l=m+4|0;j=m;c[d>>2]=a;c[e>>2]=b;c[f>>2]=c[c[d>>2]>>2];c[k>>2]=0;if(!(c[(c[f>>2]|0)+504>>2]|0)){l=c[k>>2]|0;i=m;return l|0}if(!(c[(c[d>>2]|0)+104>>2]|0)){l=c[k>>2]|0;i=m;return l|0}c[h>>2]=(c[(c[d>>2]|0)+104>>2]|0)-1;c[g>>2]=0;while(1){if((c[g>>2]|0)>=(c[(c[f>>2]|0)+20>>2]|0))break;c[l>>2]=0;c[j>>2]=c[(c[(c[f>>2]|0)+16>>2]|0)+(c[g>>2]<<4)+4>>2];if(c[j>>2]|0){if((c[e>>2]|0)==2)c[l>>2]=pI(c[j>>2]|0,2,c[h>>2]|0)|0;if(!(c[l>>2]|0))c[l>>2]=pI(c[j>>2]|0,1,c[h>>2]|0)|0;if(!(c[k>>2]|0))c[k>>2]=c[l>>2]}c[g>>2]=(c[g>>2]|0)+1}l=(c[f>>2]|0)+504|0;c[l>>2]=(c[l>>2]|0)+-1;c[(c[d>>2]|0)+104>>2]=0;if(!(c[k>>2]|0)){if((c[e>>2]|0)==2)c[k>>2]=nI(c[f>>2]|0,2,c[h>>2]|0)|0;if(!(c[k>>2]|0))c[k>>2]=nI(c[f>>2]|0,1,c[h>>2]|0)|0}if((c[e>>2]|0)!=2){l=c[k>>2]|0;i=m;return l|0}l=(c[d>>2]|0)+152|0;j=c[l+4>>2]|0;a=(c[f>>2]|0)+512|0;c[a>>2]=c[l>>2];c[a+4>>2]=j;a=(c[d>>2]|0)+160|0;j=c[a+4>>2]|0;l=(c[f>>2]|0)+520|0;c[l>>2]=c[a>>2];c[l+4>>2]=j;l=c[k>>2]|0;i=m;return l|0}function YH(a){a=a|0;var b=0,d=0,f=0;f=i;i=i+16|0;b=f+4|0;d=f;c[d>>2]=a;if(((e[(c[d>>2]|0)+8>>1]|0)&514|0)!=2){c[b>>2]=0;a=c[b>>2]|0;i=f;return a|0}else{c[b>>2]=aM(c[d>>2]|0)|0;a=c[b>>2]|0;i=f;return a|0}return 0}function ZH(a){a=a|0;var d=0,f=0,g=0;g=i;i=i+16|0;d=g+4|0;f=g;c[f>>2]=a;a=e[(c[f>>2]|0)+8>>1]|0;do if(!((e[(c[f>>2]|0)+8>>1]|0)&12))if(a&18){b[d>>1]=$L(c[f>>2]|0)|0;break}else{b[d>>1]=0;break}else b[d>>1]=a&12;while(0);i=g;return b[d>>1]|0}function _H(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;j=i;i=i+32|0;e=j+20|0;f=j+16|0;g=j+8|0;h=j;c[f>>2]=a;k=g;c[k>>2]=b;c[k+4>>2]=d;b=c[f>>2]|0;k=c[b+4>>2]|0;a=h;c[a>>2]=c[b>>2];c[a+4>>2]=k;a=g;k=c[a+4>>2]|0;b=h;d=c[b+4>>2]|0;if((k|0)>0|(k|0)==0&(c[a>>2]|0)>>>0>=0){if((d|0)>0|(d|0)==0&(c[b>>2]|0)>>>0>0?(h,h=fR(-1,2147483647,c[h>>2]|0,c[h+4>>2]|0)|0,d=C,k=g,a=c[k+4>>2]|0,(d|0)<(a|0)|((d|0)==(a|0)?h>>>0<(c[k>>2]|0)>>>0:0)):0){c[e>>2]=1;k=c[e>>2]|0;i=j;return k|0}}else if((d|0)<0?(h,h=gR(c[h>>2]|0,c[h+4>>2]|0,-1,2147483647)|0,h=fR(0,0,h|0,C|0)|0,d=C,k=g,k=gR(c[k>>2]|0,c[k+4>>2]|0,1,0)|0,a=C,(d|0)>(a|0)|(d|0)==(a|0)&h>>>0>k>>>0):0){c[e>>2]=1;k=c[e>>2]|0;i=j;return k|0}h=g;k=c[f>>2]|0;g=k;h=gR(c[g>>2]|0,c[g+4>>2]|0,c[h>>2]|0,c[h+4>>2]|0)|0;c[k>>2]=h;c[k+4>>2]=C;c[e>>2]=0;k=c[e>>2]|0;i=j;return k|0}function $H(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;e=h+12|0;f=h+8|0;g=h;c[f>>2]=a;a=g;c[a>>2]=b;c[a+4>>2]=d;a=g;b=c[f>>2]|0;if(!((c[a>>2]|0)==0?(c[a+4>>2]|0)==-2147483648:0)){g=fR(0,0,c[g>>2]|0,c[g+4>>2]|0)|0;c[e>>2]=_H(b,g,C)|0;g=c[e>>2]|0;i=h;return g|0}a=b;d=c[a+4>>2]|0;if((d|0)>0|(d|0)==0&(c[a>>2]|0)>>>0>=0){c[e>>2]=1;g=c[e>>2]|0;i=h;return g|0}else{a=g;g=c[f>>2]|0;f=g;f=fR(c[f>>2]|0,c[f+4>>2]|0,c[a>>2]|0,c[a+4>>2]|0)|0;c[g>>2]=f;c[g+4>>2]=C;c[e>>2]=0;g=c[e>>2]|0;i=h;return g|0}return 0}function aI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;n=i;i=i+64|0;e=n+60|0;f=n+56|0;g=n+48|0;o=n+40|0;j=n+32|0;h=n+24|0;l=n+16|0;k=n+8|0;m=n;c[f>>2]=a;a=g;c[a>>2]=b;c[a+4>>2]=d;d=c[f>>2]|0;b=c[d+4>>2]|0;a=o;c[a>>2]=c[d>>2];c[a+4>>2]=b;a=o;a=pR(c[a>>2]|0,c[a+4>>2]|0,0,1)|0;b=j;c[b>>2]=a;c[b+4>>2]=C;b=o;b=qR(c[b>>2]|0,c[b+4>>2]|0,0,1)|0;a=h;c[a>>2]=b;c[a+4>>2]=C;a=g;a=pR(c[a>>2]|0,c[a+4>>2]|0,0,1)|0;b=l;c[b>>2]=a;c[b+4>>2]=C;b=g;b=qR(c[b>>2]|0,c[b+4>>2]|0,0,1)|0;a=k;c[a>>2]=b;c[a+4>>2]=C;a=j;b=l;b=(c[b>>2]|0)==0&(c[b+4>>2]|0)==0;do if((c[a>>2]|0)==0&(c[a+4>>2]|0)==0){if(!b){o=h;l=rR(c[o>>2]|0,c[o+4>>2]|0,c[l>>2]|0,c[l+4>>2]|0)|0;o=m;c[o>>2]=l;c[o+4>>2]=C;break}m=g;o=c[f>>2]|0;l=o;m=rR(c[l>>2]|0,c[l+4>>2]|0,c[m>>2]|0,c[m+4>>2]|0)|0;c[o>>2]=m;c[o+4>>2]=C;c[e>>2]=0;o=c[e>>2]|0;i=n;return o|0}else{if(b){o=j;l=k;l=rR(c[o>>2]|0,c[o+4>>2]|0,c[l>>2]|0,c[l+4>>2]|0)|0;o=m;c[o>>2]=l;c[o+4>>2]=C;break}c[e>>2]=1;
  92. o=c[e>>2]|0;i=n;return o|0}while(0);j=m;g=c[j+4>>2]|0;o=m;l=c[o+4>>2]|0;if((g|0)<-1|(g|0)==-1&(c[j>>2]|0)>>>0<2147483648|((l|0)>0|(l|0)==0&(c[o>>2]|0)>>>0>=2147483648)){c[e>>2]=1;o=c[e>>2]|0;i=n;return o|0}o=m;o=rR(c[o>>2]|0,c[o+4>>2]|0,0,1)|0;l=m;c[l>>2]=o;c[l+4>>2]=C;l=h;o=k;o=rR(c[l>>2]|0,c[l+4>>2]|0,c[o>>2]|0,c[o+4>>2]|0)|0;if(_H(m,o,C)|0){c[e>>2]=1;o=c[e>>2]|0;i=n;return o|0}else{l=m;m=c[l+4>>2]|0;o=c[f>>2]|0;c[o>>2]=c[l>>2];c[o+4>>2]=m;c[e>>2]=0;o=c[e>>2]|0;i=n;return o|0}return 0}function bI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+16|0;f=k+12|0;g=k+8|0;j=k+4|0;h=k;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[j>>2]=(c[e>>2]|0)+204;a:while(1){if(!(c[c[j>>2]>>2]|0))break;c[h>>2]=c[c[j>>2]>>2];do if((c[f>>2]|0)>=0){if((c[c[h>>2]>>2]|0)==(c[f>>2]|0)){if((c[(c[h>>2]|0)+4>>2]|0)>31)break;if(!(c[g>>2]&1<<c[(c[h>>2]|0)+4>>2]))break}c[j>>2]=(c[h>>2]|0)+16;continue a}while(0);if(c[(c[h>>2]|0)+12>>2]|0)Qb[c[(c[h>>2]|0)+12>>2]&255](c[(c[h>>2]|0)+8>>2]|0);c[c[j>>2]>>2]=c[(c[h>>2]|0)+16>>2];Sf(c[c[e>>2]>>2]|0,c[h>>2]|0)}i=k;return}function cI(a,b,d){a=a|0;b=b|0;d=d|0;var f=0,g=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;f=o+24|0;g=o+20|0;j=o+16|0;k=o+12|0;m=o+8|0;n=o+4|0;l=o;c[g>>2]=a;c[j>>2]=b;c[k>>2]=d;c[m>>2]=e[(c[g>>2]|0)+8>>1];c[n>>2]=e[(c[j>>2]|0)+8>>1];c[l>>2]=c[m>>2]|c[n>>2];do if(!(c[l>>2]&1)){if(!(c[l>>2]&12)){if(c[l>>2]&2){if(!(c[m>>2]&2)){c[f>>2]=1;break}if(!(c[n>>2]&2)){c[f>>2]=-1;break}if(c[k>>2]|0){c[f>>2]=yF(c[g>>2]|0,c[j>>2]|0,c[k>>2]|0,0)|0;break}}c[f>>2]=_L(c[g>>2]|0,c[j>>2]|0)|0;break}if(c[m>>2]&c[n>>2]&4){a=c[g>>2]|0;n=c[a+4>>2]|0;b=c[j>>2]|0;d=c[b+4>>2]|0;if((n|0)<(d|0)|((n|0)==(d|0)?(c[a>>2]|0)>>>0<(c[b>>2]|0)>>>0:0)){c[f>>2]=-1;break}a=c[g>>2]|0;n=c[a+4>>2]|0;b=c[j>>2]|0;d=c[b+4>>2]|0;if((n|0)>(d|0)|((n|0)==(d|0)?(c[a>>2]|0)>>>0>(c[b>>2]|0)>>>0:0)){c[f>>2]=1;break}else{c[f>>2]=0;break}}if(c[m>>2]&c[n>>2]&8){if(+h[c[g>>2]>>3]<+h[c[j>>2]>>3]){c[f>>2]=-1;break}if(+h[c[g>>2]>>3]>+h[c[j>>2]>>3]){c[f>>2]=1;break}else{c[f>>2]=0;break}}if(c[m>>2]&4)if(c[n>>2]&8){b=c[g>>2]|0;c[f>>2]=wF(c[b>>2]|0,c[b+4>>2]|0,+h[c[j>>2]>>3])|0;break}else{c[f>>2]=-1;break}if(!(c[m>>2]&8)){c[f>>2]=1;break}if(c[n>>2]&4){b=c[j>>2]|0;c[f>>2]=0-(wF(c[b>>2]|0,c[b+4>>2]|0,+h[c[g>>2]>>3])|0);break}else{c[f>>2]=-1;break}}else c[f>>2]=(c[n>>2]&1)-(c[m>>2]&1);while(0);i=o;return c[f>>2]|0}function dI(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;f=l+16|0;g=l+12|0;h=l+8|0;k=l+4|0;j=l;c[g>>2]=b;c[h>>2]=e;c[k>>2]=c[c[g>>2]>>2];do if(!(d[c[k>>2]>>0]|0)){e=c[k>>2]|0;if(!(a[(c[k>>2]|0)+3>>0]|0)){if(!(nL(c[e+16>>2]|0)|0))break;c[f>>2]=oL(c[k>>2]|0)|0;k=c[f>>2]|0;i=l;return k|0}if((c[e+52>>2]|0)!=0?(b=c[(c[(c[k>>2]|0)+52>>2]|0)+(1+(c[c[h>>2]>>2]|0)<<2)>>2]|0,c[j>>2]=b,(b|0)>0):0){c[c[g>>2]>>2]=c[(c[k>>2]|0)+48>>2];c[c[h>>2]>>2]=(c[j>>2]|0)-1;c[f>>2]=0;k=c[f>>2]|0;i=l;return k|0}c[f>>2]=ZL(c[k>>2]|0)|0;k=c[f>>2]|0;i=l;return k|0}while(0);c[f>>2]=0;k=c[f>>2]|0;i=l;return k|0}function eI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;a=YL(c[f>>2]|0,c[e>>2]|0)|0;i=d;return a|0}function fI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;iF(c[f>>2]|0);c[c[e>>2]>>2]=c[(c[f>>2]|0)+16+12>>2];i=d;return 0}function gI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=i;i=i+16|0;f=d+4|0;e=d;c[f>>2]=a;c[e>>2]=b;a=YL(c[f>>2]|0,c[e>>2]|0)|0;i=d;return a|0}function hI(a,d,e,f,g){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=i;i=i+32|0;h=q+28|0;j=q+24|0;k=q+20|0;l=q+16|0;m=q+12|0;p=q+8|0;n=q+4|0;o=q;c[h>>2]=a;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;c[m>>2]=g;c[n>>2]=0;c[o>>2]=0;e=c[h>>2]|0;if(c[l>>2]|0)c[p>>2]=eI(e,n)|0;else c[p>>2]=gI(e,n)|0;if(((c[j>>2]|0)+(c[k>>2]|0)|0)>>>0<=(c[n>>2]|0)>>>0){c[(c[m>>2]|0)+16>>2]=(c[p>>2]|0)+(c[j>>2]|0);b[(c[m>>2]|0)+8>>1]=4112;c[(c[m>>2]|0)+12>>2]=c[k>>2];p=c[o>>2]|0;i=q;return p|0}else{c[o>>2]=XL(c[h>>2]|0,c[j>>2]|0,c[k>>2]|0,c[l>>2]|0,c[m>>2]|0)|0;p=c[o>>2]|0;i=q;return p|0}return 0}function iI(b){b=b|0;var c=0,e=0;e=i;i=i+16|0;c=e;a[c>>0]=b;i=e;return a[35916+(d[c>>0]|0)>>0]|0}function jI(a,b,d){a=a|0;b=b|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+48|0;n=o+36|0;f=o+32|0;k=o+28|0;j=o+24|0;g=o+20|0;h=o+16|0;l=o+8|0;m=o;c[f>>2]=a;c[k>>2]=b;c[j>>2]=d;c[g>>2]=e[(c[f>>2]|0)+8>>1];if(c[g>>2]&1){c[c[j>>2]>>2]=0;c[n>>2]=0;n=c[n>>2]|0;i=o;return n|0}if(!(c[g>>2]&4)){if(c[g>>2]&8){c[c[j>>2]>>2]=8;c[n>>2]=7;n=c[n>>2]|0;i=o;return n|0}c[h>>2]=c[(c[f>>2]|0)+12>>2];if(c[g>>2]&16384)c[h>>2]=(c[h>>2]|0)+(c[c[f>>2]>>2]|0);c[c[j>>2]>>2]=c[h>>2];c[n>>2]=(c[h>>2]<<1)+12+((c[g>>2]&2|0)!=0&1);n=c[n>>2]|0;i=o;return n|0}a=c[f>>2]|0;f=c[a+4>>2]|0;b=l;c[b>>2]=c[a>>2];c[b+4>>2]=f;b=l;f=c[b>>2]|0;b=c[b+4>>2]|0;if((c[l+4>>2]|0)<0){a=m;c[a>>2]=~f;c[a+4>>2]=~b}else{a=m;c[a>>2]=f;c[a+4>>2]=b}a=m;d=c[a+4>>2]|0;if(d>>>0<0|(d|0)==0&(c[a>>2]|0)>>>0<=127){a=l;f=c[j>>2]|0;if((0==(c[a+4>>2]|0)?(c[l>>2]&1|0)==(c[a>>2]|0):0)&(c[k>>2]|0)>=4){c[f>>2]=0;c[n>>2]=8+(c[m>>2]|0);n=c[n>>2]|0;i=o;return n|0}else{c[f>>2]=1;c[n>>2]=1;n=c[n>>2]|0;i=o;return n|0}}l=m;k=c[l+4>>2]|0;if(k>>>0<0|(k|0)==0&(c[l>>2]|0)>>>0<=32767){c[c[j>>2]>>2]=2;c[n>>2]=2;n=c[n>>2]|0;i=o;return n|0}l=m;k=c[l+4>>2]|0;if(k>>>0<0|(k|0)==0&(c[l>>2]|0)>>>0<=8388607){c[c[j>>2]>>2]=3;c[n>>2]=3;n=c[n>>2]|0;i=o;return n|0}l=m;k=c[l+4>>2]|0;if(k>>>0<0|(k|0)==0&(c[l>>2]|0)>>>0<=2147483647){c[c[j>>2]>>2]=4;c[n>>2]=4;n=c[n>>2]|0;i=o;return n|0}l=c[m+4>>2]|0;f=c[j>>2]|0;if(l>>>0<32767|(l|0)==32767&(c[m>>2]|0)>>>0<=4294967295){c[f>>2]=6;c[n>>2]=5;n=c[n>>2]|0;i=o;return n|0}else{c[f>>2]=8;c[n>>2]=6;n=c[n>>2]|0;i=o;return n|0}return 0}function kI(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;j=i;i=i+16|0;f=j+12|0;g=j+8|0;h=j;c[g>>2]=b;b=h;c[b>>2]=d;c[b+4>>2]=e;b=h;k=c[b+4>>2]|0;e=h;d=c[e>>2]|0;e=c[e+4>>2]|0;if(k>>>0<0|(k|0)==0&(c[b>>2]|0)>>>0<=127){a[c[g>>2]>>0]=d&127;c[f>>2]=1;k=c[f>>2]|0;i=j;return k|0}if(e>>>0<0|(e|0)==0&d>>>0<=16383){k=h;k=hR(c[k>>2]|0,c[k+4>>2]|0,7)|0;a[c[g>>2]>>0]=k&127|128;a[(c[g>>2]|0)+1>>0]=c[h>>2]&127;c[f>>2]=2;k=c[f>>2]|0;i=j;return k|0}else{k=h;c[f>>2]=WL(c[g>>2]|0,c[k>>2]|0,c[k+4>>2]|0)|0;k=c[f>>2]|0;i=j;return k|0}return 0}function lI(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;g=o+28|0;h=o+24|0;j=o+20|0;k=o+16|0;m=o+12|0;n=o;l=o+8|0;c[h>>2]=b;c[j>>2]=e;c[k>>2]=f;b=c[k>>2]|0;if((c[k>>2]|0)>>>0<=7&(c[k>>2]|0)>>>0>0){if((b|0)==7){j=c[j>>2]|0;c[n>>2]=c[j>>2];c[n+4>>2]=c[j+4>>2]}else{e=c[j>>2]|0;f=c[e+4>>2]|0;j=n;c[j>>2]=c[e>>2];c[j+4>>2]=f}k=d[35916+(c[k>>2]|0)>>0]|0;c[l>>2]=k;c[m>>2]=k;do{k=c[n>>2]&255;j=(c[l>>2]|0)+-1|0;c[l>>2]=j;a[(c[h>>2]|0)+j>>0]=k;j=n;j=hR(c[j>>2]|0,c[j+4>>2]|0,8)|0;k=n;c[k>>2]=j;c[k+4>>2]=C}while((c[l>>2]|0)!=0);c[g>>2]=c[m>>2];n=c[g>>2]|0;i=o;return n|0}else{if(b>>>0<12){c[g>>2]=0;n=c[g>>2]|0;i=o;return n|0}c[m>>2]=c[(c[j>>2]|0)+12>>2];if((c[m>>2]|0)>>>0>0)iR(c[h>>2]|0,c[(c[j>>2]|0)+16>>2]|0,c[m>>2]|0)|0;c[g>>2]=c[m>>2];n=c[g>>2]|0;i=o;return n|0}return 0}function mI(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=i;i=i+32|0;k=p+28|0;l=p+24|0;m=p+20|0;n=p;o=p+16|0;h=p+12|0;j=p+8|0;c[l>>2]=f;c[m>>2]=g;g=n;c[g>>2]=0;c[g+4>>2]=0;if(!(c[(c[l>>2]|0)+52>>2]|0)){o=c[m>>2]|0;c[o>>2]=0;c[o+4>>2]=0;c[k>>2]=0;o=c[k>>2]|0;i=p;return o|0}c[o>>2]=gF(c[l>>2]|0)|0;a:while(1){if(c[o>>2]|0){f=16;break}c[j>>2]=c[(c[l>>2]|0)+120+(a[(c[l>>2]|0)+68>>0]<<2)>>2];if(!((d[(c[j>>2]|0)+4>>0]|0)==0?(a[(c[j>>2]|0)+2>>0]|0)!=0:0)){f=n;f=gR(c[f>>2]|0,c[f+4>>2]|0,e[(c[j>>2]|0)+18>>1]|0,0)|0;g=n;c[g>>2]=f;c[g+4>>2]=C}if(a[(c[j>>2]|0)+4>>0]|0){do{if(!(a[(c[l>>2]|0)+68>>0]|0)){f=10;break a}ZE(c[l>>2]|0)}while((e[(c[l>>2]|0)+80+(a[(c[l>>2]|0)+68>>0]<<1)>>1]|0)>=(e[(c[(c[l>>2]|0)+120+(a[(c[l>>2]|0)+68>>0]<<2)>>2]|0)+18>>1]|0));g=(c[l>>2]|0)+80+(a[(c[l>>2]|0)+68>>0]<<1)|0;b[g>>1]=(b[g>>1]|0)+1<<16>>16;c[j>>2]=c[(c[l>>2]|0)+120+(a[(c[l>>2]|0)+68>>0]<<2)>>2]}c[h>>2]=e[(c[l>>2]|0)+80+(a[(c[l>>2]|0)+68>>0]<<1)>>1];f=c[l>>2]|0;g=c[j>>2]|0;if((c[h>>2]|0)==(e[(c[j>>2]|0)+18>>1]|0)){c[o>>2]=XE(f,$q((c[(c[j>>2]|0)+56>>2]|0)+((d[g+5>>0]|0)+8)|0)|0)|0;continue}else{c[o>>2]=XE(f,$q((c[g+56>>2]|0)+(e[(c[j>>2]|0)+20>>1]&(d[(c[(c[j>>2]|0)+64>>2]|0)+(c[h>>2]<<1)>>0]<<8|d[(c[(c[j>>2]|0)+64>>2]|0)+(c[h>>2]<<1)+1>>0]))|0)|0)|0;continue}}if((f|0)==10){j=n;n=c[j+4>>2]|0;o=c[m>>2]|0;c[o>>2]=c[j>>2];c[o+4>>2]=n;c[k>>2]=gF(c[l>>2]|0)|0;o=c[k>>2]|0;i=p;return o|0}else if((f|0)==16){c[k>>2]=c[o>>2];o=c[k>>2]|0;i=p;return o|0}return 0}function nI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;e=n+28|0;f=n+24|0;g=n+20|0;m=n+16|0;h=n+12|0;k=n+8|0;j=n+4|0;l=n;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[m>>2]=0;if(!(c[(c[e>>2]|0)+332>>2]|0)){m=c[m>>2]|0;i=n;return m|0}c[h>>2]=0;while(1){if(c[m>>2]|0){e=15;break}if((c[h>>2]|0)>=(c[(c[e>>2]|0)+308>>2]|0)){e=15;break}c[k>>2]=c[(c[(c[e>>2]|0)+332>>2]|0)+(c[h>>2]<<2)>>2];c[j>>2]=c[c[(c[k>>2]|0)+4>>2]>>2];if((c[(c[k>>2]|0)+8>>2]|0)!=0?(c[c[j>>2]>>2]|0)>=2:0){switch(c[f>>2]|0){case 0:{c[l>>2]=c[(c[j>>2]|0)+80>>2];c[(c[k>>2]|0)+20>>2]=(c[g>>2]|0)+1;break}case 2:{c[l>>2]=c[(c[j>>2]|0)+88>>2];break}default:c[l>>2]=c[(c[j>>2]|0)+84>>2]}if((c[l>>2]|0)!=0?(c[(c[k>>2]|0)+20>>2]|0)>(c[g>>2]|0):0)c[m>>2]=Yb[c[l>>2]&255](c[(c[k>>2]|0)+8>>2]|0,c[g>>2]|0)|0}c[h>>2]=(c[h>>2]|0)+1}if((e|0)==15){m=c[m>>2]|0;i=n;return m|0}return 0}function oI(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0;o=i;i=i+32|0;g=o+20|0;h=o+16|0;j=o+12|0;l=o+8|0;m=o+4|0;k=o;c[g>>2]=b;c[h>>2]=e;c[j>>2]=f;c[m>>2]=0;if(!(c[g>>2]|0)){n=c[m>>2]|0;i=o;return n|0}kg(c[g>>2]|0);c[l>>2]=c[(c[(c[g>>2]|0)+4>>2]|0)+8>>2];a:while(1){if(!(c[l>>2]|0)){n=15;break}do if((c[j>>2]|0)!=0?(d[(c[l>>2]|0)+64>>0]&1|0)==0:0){if((d[(c[l>>2]|0)+66>>0]|0)!=1?(d[(c[l>>2]|0)+66>>0]|0)!=2:0)break;c[m>>2]=pH(c[l>>2]|0)|0;if(c[m>>2]|0)break a}else n=10;while(0);if((n|0)==10){n=0;pB(c[l>>2]|0);a[(c[l>>2]|0)+66>>0]=4;c[(c[l>>2]|0)+60>>2]=c[h>>2]}c[k>>2]=0;while(1){if((c[k>>2]|0)>(a[(c[l>>2]|0)+68>>0]|0))break;qB(c[(c[l>>2]|0)+120+(c[k>>2]<<2)>>2]|0);c[(c[l>>2]|0)+120+(c[k>>2]<<2)>>2]=0;c[k>>2]=(c[k>>2]|0)+1}c[l>>2]=c[(c[l>>2]|0)+8>>2]}if((n|0)==15){n=c[m>>2]|0;i=o;return n|0}oI(c[g>>2]|0,c[m>>2]|0,0)|0;n=c[m>>2]|0;i=o;return n|0}function pI(a,b,f){a=a|0;b=b|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;g=m+16|0;h=m+12|0;j=m+8|0;l=m+4|0;k=m;c[g>>2]=a;c[h>>2]=b;c[j>>2]=f;c[l>>2]=0;if(!(c[g>>2]|0)){l=c[l>>2]|0;i=m;return l|0}if((d[(c[g>>2]|0)+8>>0]|0|0)!=2){l=c[l>>2]|0;i=m;return l|0}c[k>>2]=c[(c[g>>2]|0)+4>>2];kg(c[g>>2]|0);c[l>>2]=Kr(c[c[k>>2]>>2]|0,c[h>>2]|0,c[j>>2]|0)|0;if(c[l>>2]|0){l=c[l>>2]|0;i=m;return l|0}if((c[j>>2]|0)<0?((e[(c[k>>2]|0)+22>>1]|0)&8|0)!=0:0)c[(c[k>>2]|0)+44>>2]=0;c[l>>2]=VL(c[k>>2]|0)|0;a=$q((c[(c[(c[k>>2]|0)+12>>2]|0)+56>>2]|0)+28|0)|0;c[(c[k>>2]|0)+44>>2]=a;l=c[l>>2]|0;i=m;return l|0}function qI(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;m=i;i=i+32|0;f=m+20|0;g=m+16|0;h=m+12|0;j=m+8|0;l=m+4|0;k=m;c[f>>2]=b;c[g>>2]=e;c[j>>2]=0;Sj();Nf(c[f>>2]|0);if(c[(c[f>>2]|0)+24>>2]&2)b=(d[(c[f>>2]|0)+140+5>>0]|0)==0;else b=0;c[l>>2]=b&1;c[h>>2]=0;while(1){if((c[h>>2]|0)>=(c[(c[f>>2]|0)+20>>2]|0))break;c[k>>2]=c[(c[(c[f>>2]|0)+16>>2]|0)+(c[h>>2]<<4)+4>>2];if(c[k>>2]|0){if(bi(c[k>>2]|0)|0)c[j>>2]=1;Mg(c[k>>2]|0,c[g>>2]|0,((c[l>>2]|0)!=0^1)&1)|0}c[h>>2]=(c[h>>2]|0)+1}du(c[f>>2]|0)|0;Tj();if((c[(c[f>>2]|0)+24>>2]&2|0)!=0?(d[(c[f>>2]|0)+140+5>>0]|0)==0:0){Oh(c[f>>2]|0);zg(c[f>>2]|0)}l=(c[f>>2]|0)+512|0;c[l>>2]=0;c[l+4>>2]=0;l=(c[f>>2]|0)+520|0;c[l>>2]=0;c[l+4>>2]=0;l=(c[f>>2]|0)+24|0;c[l>>2]=c[l>>2]&-16777217;if(!(c[(c[f>>2]|0)+204>>2]|0)){i=m;return}if((c[j>>2]|0)==0?(a[(c[f>>2]|0)+63>>0]|0)!=0:0){i=m;return}Qb[c[(c[f>>2]|0)+204>>2]&255](c[(c[f>>2]|0)+200>>2]|0);i=m;return}function rI(b){b=b|0;var d=0,e=0,f=0;f=i;i=i+16|0;d=f+4|0;e=f;c[d>>2]=b;while(1){b=c[d>>2]|0;if(!(c[(c[d>>2]|0)+492>>2]|0))break;c[e>>2]=c[b+492>>2];c[(c[d>>2]|0)+492>>2]=c[(c[e>>2]|0)+24>>2];Sf(c[d>>2]|0,c[e>>2]|0)}c[b+500>>2]=0;c[(c[d>>2]|0)+504>>2]=0;a[(c[d>>2]|0)+71>>0]=0;i=f;return}function sI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=i;i=i+16|0;h=e+12|0;f=e+8|0;d=e+4|0;g=e;c[h>>2]=a;c[f>>2]=b;c[g>>2]=c[(c[h>>2]|0)+4>>2];kg(c[h>>2]|0);c[d>>2]=SL(c[c[g>>2]>>2]|0,c[f>>2]|0)|0;i=e;return c[d>>2]|0}function tI(e,f,g,h,j){e=e|0;f=f|0;g=g|0;h=h|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+32|0;k=s+24|0;l=s+20|0;n=s+16|0;o=s+12|0;p=s+28|0;r=s+8|0;m=s+4|0;q=s;c[k>>2]=e;c[l>>2]=f;c[n>>2]=g;c[o>>2]=h;a[p>>0]=j;c[r>>2]=(c[(c[k>>2]|0)+8>>2]|0)+(((c[(c[k>>2]|0)+28>>2]|0)-(c[l>>2]|0)|0)*40|0);c[q>>2]=0;j=88+(c[n>>2]<<3)|0;if(!(d[p>>0]|0))f=QL()|0;else f=0;c[m>>2]=j+f;if(c[(c[(c[k>>2]|0)+56>>2]|0)+(c[l>>2]<<2)>>2]|0){yI(c[k>>2]|0,c[(c[(c[k>>2]|0)+56>>2]|0)+(c[l>>2]<<2)>>2]|0);c[(c[(c[k>>2]|0)+56>>2]|0)+(c[l>>2]<<2)>>2]=0}if(tx(c[r>>2]|0,c[m>>2]|0)|0){r=c[q>>2]|0;i=s;return r|0}j=c[(c[r>>2]|0)+16>>2]|0;c[q>>2]=j;c[(c[(c[k>>2]|0)+56>>2]|0)+(c[l>>2]<<2)>>2]=j;j=c[q>>2]|0;f=j+88|0;do{c[j>>2]=0;j=j+4|0}while((j|0)<(f|0));a[c[q>>2]>>0]=a[p>>0]|0;a[(c[q>>2]|0)+1>>0]=c[o>>2];b[(c[q>>2]|0)+12>>1]=c[n>>2];c[(c[q>>2]|0)+76>>2]=(c[q>>2]|0)+80+(c[n>>2]<<2);if(d[p>>0]|0){r=c[q>>2]|0;i=s;return r|0}c[(c[q>>2]|0)+16>>2]=(c[(c[r>>2]|0)+16>>2]|0)+(88+(c[n>>2]<<3));RL(c[(c[q>>2]|0)+16>>2]|0);r=c[q>>2]|0;i=s;return r|0}function uI(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,j=0,k=0,l=0,m=0,n=0;n=i;i=i+32|0;g=n+20|0;h=n+16|0;j=n+12|0;k=n+8|0;l=n+4|0;m=n;c[g>>2]=a;c[h>>2]=b;c[j>>2]=d;c[k>>2]=e;c[l>>2]=f;if((c[h>>2]|0)<1){c[m>>2]=Lj(59722)|0;d=c[m>>2]|0;i=n;return d|0}else{kg(c[g>>2]|0);c[m>>2]=OL(c[g>>2]|0,c[h>>2]|0,c[j>>2]|0,c[k>>2]|0,c[l>>2]|0)|0;d=c[m>>2]|0;i=n;return d|0}return 0}function vI(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=i;i=i+16|0;f=e+4|0;g=e;c[f>>2]=b;c[g>>2]=d;a[(c[f>>2]|0)+67>>0]=c[g>>2];i=e;return}function wI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;f=i;i=i+16|0;j=f+12|0;h=f+8|0;g=f+4|0;e=f;c[j>>2]=a;c[h>>2]=b;c[g>>2]=d;kg(c[j>>2]|0);c[e>>2]=NL(c[j>>2]|0,c[h>>2]|0,c[g>>2]|0)|0;i=f;return c[e>>2]|0}function xI(f,g,h){f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;w=i;i=i+64|0;r=w+48|0;j=w+44|0;k=w+40|0;u=w+36|0;l=w+32|0;m=w+28|0;t=w+24|0;s=w+20|0;p=w+16|0;o=w+12|0;v=w+8|0;n=w+4|0;q=w;c[r>>2]=f;c[j>>2]=g;c[k>>2]=h;c[v>>2]=0;c[p>>2]=24+((e[(c[(c[k>>2]|0)+24>>2]|0)+6>>1]|0)-1<<2);c[o>>2]=136;h=(c[o>>2]|0)+(c[p>>2]|0)|0;c[t>>2]=ph(c[r>>2]|0,h,((h|0)<0)<<31>>31)|0;c[(c[k>>2]|0)+16>>2]=c[t>>2];if(!(c[t>>2]|0)){c[v>>2]=7;v=c[v>>2]|0;i=w;return v|0}o=(c[t>>2]|0)+(c[o>>2]|0)|0;c[s>>2]=o;c[(c[t>>2]|0)+28>>2]=o;iR(c[s>>2]|0,c[(c[k>>2]|0)+24>>2]|0,c[p>>2]|0)|0;c[(c[s>>2]|0)+12>>2]=0;if(c[j>>2]|0){p=(c[s>>2]|0)+8|0;b[p>>1]=(e[p>>1]|0)+((e[(c[s>>2]|0)+6>>1]|0)-(c[j>>2]|0));b[(c[s>>2]|0)+6>>1]=c[j>>2]}p=pg(c[(c[(c[r>>2]|0)+16>>2]|0)+4>>2]|0)|0;c[u>>2]=p;c[(c[t>>2]|0)+12>>2]=p;a[(c[t>>2]|0)+59>>0]=1;a[(c[t>>2]|0)+58>>0]=-1;a[(c[t>>2]|0)+57>>0]=(d[(c[t>>2]|0)+59>>0]|0|0)>1;c[(c[t>>2]|0)+24>>2]=c[r>>2];c[l>>2]=0;while(1){if((c[l>>2]|0)>=(d[(c[t>>2]|0)+59>>0]|0|0))break;c[n>>2]=(c[t>>2]|0)+64+((c[l>>2]|0)*72|0);c[(c[n>>2]|0)+8>>2]=c[t>>2];c[l>>2]=(c[l>>2]|0)+1}if(!(Sq(c[r>>2]|0)|0)){c[q>>2]=c[58];p=_(c[q>>2]|0,c[u>>2]|0)|0;c[c[t>>2]>>2]=p;c[m>>2]=c[(c[(c[(c[r>>2]|0)+16>>2]|0)+12>>2]|0)+80>>2];if((c[m>>2]|0)<(c[q>>2]|0))c[m>>2]=c[q>>2];p=c[m>>2]|0;q=c[u>>2]|0;q=rR(p|0,((p|0)<0)<<31>>31|0,q|0,((q|0)<0)<<31>>31|0)|0;p=C;if((p|0)<0|(p|0)==0&q>>>0<536870912){q=c[m>>2]|0;j=c[u>>2]|0;j=rR(q|0,((q|0)<0)<<31>>31|0,j|0,((j|0)<0)<<31>>31|0)|0}else j=536870912;c[(c[t>>2]|0)+4>>2]=j;if((c[50]|0)==0?(c[(c[t>>2]|0)+52>>2]=c[u>>2],u=c[u>>2]|0,u=_f(u,((u|0)<0)<<31>>31)|0,c[(c[t>>2]|0)+36+4>>2]=u,(c[(c[t>>2]|0)+36+4>>2]|0)==0):0)c[v>>2]=7}if(((e[(c[s>>2]|0)+6>>1]|0)+(e[(c[s>>2]|0)+8>>1]|0)|0)>=13){v=c[v>>2]|0;i=w;return v|0}if((c[(c[s>>2]|0)+20>>2]|0)!=0?(c[(c[s>>2]|0)+20>>2]|0)!=(c[(c[r>>2]|0)+8>>2]|0):0){v=c[v>>2]|0;i=w;return v|0}a[(c[t>>2]|0)+60>>0]=3;v=c[v>>2]|0;i=w;return v|0}function yI(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0;j=i;i=i+16|0;e=j+12|0;h=j+8|0;g=j+4|0;f=j;c[e>>2]=a;c[h>>2]=b;if(!(c[h>>2]|0)){i=j;return}switch(d[c[h>>2]>>0]|0|0){case 1:{ML(c[c[e>>2]>>2]|0,c[h>>2]|0);i=j;return}case 0:{e=c[h>>2]|0;if(c[(c[h>>2]|0)+20>>2]|0){lB(c[e+20>>2]|0)|0;i=j;return}else{nB(c[e+16>>2]|0)|0;i=j;return}}case 2:{c[g>>2]=c[(c[h>>2]|0)+16>>2];c[f>>2]=c[c[c[g>>2]>>2]>>2];h=(c[c[g>>2]>>2]|0)+4|0;c[h>>2]=(c[h>>2]|0)+-1;Tb[c[(c[f>>2]|0)+28>>2]&255](c[g>>2]|0)|0;i=j;return}default:{i=j;return}}}function zI(a,b){a=a|0;b=b|0;var e=0,f=0,g=0;g=i;i=i+16|0;f=g+4|0;e=g;c[f>>2]=a;c[e>>2]=b;i=g;return((d[(c[f>>2]|0)+67>>0]|0)&c[e>>2]|0)!=0|0}function AI(a){a=a|0;var b=0,e=0;e=i;i=i+16|0;b=e;c[b>>2]=a;i=e;return 1!=(d[(c[b>>2]|0)+66>>0]|0|0)|0}function BI(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;h=k+12|0;g=k+8|0;f=k+4|0;j=k;c[g>>2]=b;c[f>>2]=e;if(1==(d[(c[g>>2]|0)+66>>0]|0|0)?((d[(c[g>>2]|0)+64>>0]|0)&8|0)!=0:0){c[h>>2]=0;j=c[h>>2]|0;i=k;return j|0}c[j>>2]=gF(c[g>>2]|0)|0;do if(!(c[j>>2]|0)){f=c[f>>2]|0;if(!(d[(c[g>>2]|0)+66>>0]|0)){c[f>>2]=1;break}c[f>>2]=0;c[j>>2]=YE(c[g>>2]|0)|0;f=(c[g>>2]|0)+64|0;b=d[f>>0]|0;if(!(c[j>>2]|0)){a[f>>0]=b|8;break}else{a[f>>0]=b&-9;break}}while(0);c[h>>2]=c[j>>2];j=c[h>>2]|0;i=k;return j|0}function CI(f,g,h,j,k,l,m,n,o){f=f|0;g=g|0;h=h|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;I=i;i=i+80|0;p=I+72|0;q=I+68|0;r=I+64|0;s=I;t=I+60|0;u=I+56|0;v=I+52|0;w=I+48|0;J=I+44|0;F=I+40|0;y=I+36|0;G=I+32|0;x=I+28|0;E=I+24|0;B=I+20|0;D=I+16|0;A=I+12|0;z=I+8|0;H=I+76|0;c[q>>2]=f;c[r>>2]=g;g=s;c[g>>2]=h;c[g+4>>2]=j;c[t>>2]=k;c[u>>2]=l;c[v>>2]=m;c[w>>2]=n;c[J>>2]=o;c[y>>2]=c[J>>2];c[G>>2]=0;c[B>>2]=c[c[q>>2]>>2];c[D>>2]=c[(c[B>>2]|0)+4>>2];c[z>>2]=0;h=c[q>>2]|0;if((d[(c[q>>2]|0)+66>>0]|0)==4){c[p>>2]=c[h+60>>2];J=c[p>>2]|0;i=I;return J|0}if((d[h+64>>0]&32|0)!=0?(c[F>>2]=nH(c[D>>2]|0,c[(c[q>>2]|0)+52>>2]|0,c[q>>2]|0)|0,(c[F>>2]|0)!=0):0){c[p>>2]=c[F>>2];J=c[p>>2]|0;i=I;return J|0}do if(!(c[(c[q>>2]|0)+72>>2]|0)){J=s;sK(c[B>>2]|0,c[J>>2]|0,c[J+4>>2]|0,0);J=s;B=c[J+4>>2]|0;if((d[(c[q>>2]|0)+64>>0]&2|0)!=0&((B|0)>0|(B|0)==0&(c[J>>2]|0)>>>0>0)?(J=(c[q>>2]|0)+16|0,o=c[J>>2]|0,J=c[J+4>>2]|0,B=s,B=fR(c[B>>2]|0,c[B+4>>2]|0,1,0)|0,(o|0)==(B|0)&(J|0)==(C|0)):0){c[y>>2]=-1;break}if((c[y>>2]|0)==0?(J=s,c[F>>2]=eF(c[q>>2]|0,0,c[J>>2]|0,c[J+4>>2]|0,c[w>>2]|0,y)|0,(c[F>>2]|0)!=0):0){c[p>>2]=c[F>>2];J=c[p>>2]|0;i=I;return J|0}}else if((c[y>>2]|0)==0?(J=s,c[F>>2]=bF(c[q>>2]|0,c[r>>2]|0,c[J>>2]|0,c[J+4>>2]|0,c[w>>2]|0,y)|0,(c[F>>2]|0)!=0):0){c[p>>2]=c[F>>2];J=c[p>>2]|0;i=I;return J|0}while(0);c[E>>2]=c[(c[q>>2]|0)+120+(a[(c[q>>2]|0)+68>>0]<<2)>>2];c[z>>2]=c[(c[D>>2]|0)+80>>2];J=s;c[F>>2]=LL(c[E>>2]|0,c[z>>2]|0,c[r>>2]|0,c[J>>2]|0,c[J+4>>2]|0,c[t>>2]|0,c[u>>2]|0,c[v>>2]|0,G)|0;do if(!(c[F>>2]|0)){c[x>>2]=e[(c[q>>2]|0)+80+(a[(c[q>>2]|0)+68>>0]<<1)>>1];if(!(c[y>>2]|0)){c[F>>2]=Dg(c[(c[E>>2]|0)+72>>2]|0)|0;if(c[F>>2]|0)break;c[A>>2]=(c[(c[E>>2]|0)+56>>2]|0)+(e[(c[E>>2]|0)+20>>1]&(d[(c[(c[E>>2]|0)+64>>2]|0)+(c[x>>2]<<1)>>0]<<8|d[(c[(c[E>>2]|0)+64>>2]|0)+(c[x>>2]<<1)+1>>0]));if(!(a[(c[E>>2]|0)+4>>0]|0)){J=c[z>>2]|0;D=c[A>>2]|0;a[J>>0]=a[D>>0]|0;a[J+1>>0]=a[D+1>>0]|0;a[J+2>>0]=a[D+2>>0]|0;a[J+3>>0]=a[D+3>>0]|0}c[F>>2]=uK(c[E>>2]|0,c[A>>2]|0,H)|0;rL(c[E>>2]|0,c[x>>2]|0,e[H>>1]|0,F);if(c[F>>2]|0)break}else if((c[y>>2]|0)<0?(e[(c[E>>2]|0)+18>>1]|0)>0:0){H=(c[q>>2]|0)+80+(a[(c[q>>2]|0)+68>>0]<<1)|0;J=(b[H>>1]|0)+1<<16>>16;b[H>>1]=J;c[x>>2]=J&65535}sL(c[E>>2]|0,c[x>>2]|0,c[z>>2]|0,c[G>>2]|0,0,0,F);b[(c[q>>2]|0)+16+18>>1]=0;if((c[F>>2]|0)==0?(d[(c[E>>2]|0)+1>>0]|0)!=0:0){J=(c[q>>2]|0)+64|0;a[J>>0]=d[J>>0]&-3;c[F>>2]=tL(c[q>>2]|0)|0;a[(c[(c[q>>2]|0)+120+(a[(c[q>>2]|0)+68>>0]<<2)>>2]|0)+1>>0]=0;a[(c[q>>2]|0)+66>>0]=0}}while(0);c[p>>2]=c[F>>2];J=c[p>>2]|0;i=I;return J|0}function DI(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;z=i;i=i+64|0;t=z+56|0;u=z+52|0;A=z+63|0;l=z+48|0;m=z+44|0;y=z+40|0;x=z+36|0;n=z+32|0;w=z+28|0;v=z+24|0;q=z+60|0;s=z+20|0;r=z+62|0;k=z+16|0;o=z+12|0;j=z+8|0;h=z+4|0;p=z;c[u>>2]=f;a[A>>0]=g;c[l>>2]=c[c[u>>2]>>2];c[m>>2]=c[(c[l>>2]|0)+4>>2];c[s>>2]=0;a[r>>0]=d[A>>0]&2;c[v>>2]=a[(c[u>>2]|0)+68>>0];c[w>>2]=e[(c[u>>2]|0)+80+(c[v>>2]<<1)>>1];c[x>>2]=c[(c[u>>2]|0)+120+(c[v>>2]<<2)>>2];c[n>>2]=(c[(c[x>>2]|0)+56>>2]|0)+(e[(c[x>>2]|0)+20>>1]&(d[(c[(c[x>>2]|0)+64>>2]|0)+(c[w>>2]<<1)>>0]<<8|d[(c[(c[x>>2]|0)+64>>2]|0)+(c[w>>2]<<1)+1>>0]));if((a[(c[x>>2]|0)+4>>0]|0)==0?(c[k>>2]=0,c[y>>2]=UE(c[u>>2]|0,k)|0,(c[y>>2]|0)!=0):0){c[t>>2]=c[y>>2];A=c[t>>2]|0;i=z;return A|0}if((d[(c[u>>2]|0)+64>>0]&32|0)!=0?(c[y>>2]=nH(c[m>>2]|0,c[(c[u>>2]|0)+52>>2]|0,c[u>>2]|0)|0,(c[y>>2]|0)!=0):0){c[t>>2]=c[y>>2];A=c[t>>2]|0;i=z;return A|0}if(!(c[(c[u>>2]|0)+72>>2]|0)){A=(c[u>>2]|0)+16|0;sK(c[l>>2]|0,c[A>>2]|0,c[A+4>>2]|0,0)}do if(a[r>>0]|0){if((a[(c[x>>2]|0)+4>>0]|0)!=0?(A=e[(c[x>>2]|0)+16>>1]|0,A=A+((Mt(c[x>>2]|0,c[n>>2]|0)|0)&65535)+2|0,(A|0)<=((c[(c[m>>2]|0)+36>>2]<<1>>>0)/3|0|0)):0){c[s>>2]=1;break}c[y>>2]=rH(c[u>>2]|0)|0;if(c[y>>2]|0){c[t>>2]=c[y>>2];A=c[t>>2]|0;i=z;return A|0}}while(0);c[y>>2]=Dg(c[(c[x>>2]|0)+72>>2]|0)|0;if(c[y>>2]|0){c[t>>2]=c[y>>2];A=c[t>>2]|0;i=z;return A|0}c[y>>2]=uK(c[x>>2]|0,c[n>>2]|0,q)|0;rL(c[x>>2]|0,c[w>>2]|0,e[q>>1]|0,y);if(c[y>>2]|0){c[t>>2]=c[y>>2];A=c[t>>2]|0;i=z;return A|0}if(!(a[(c[x>>2]|0)+4>>0]|0)){c[o>>2]=c[(c[u>>2]|0)+120+(a[(c[u>>2]|0)+68>>0]<<2)>>2];c[h>>2]=c[(c[(c[u>>2]|0)+120+((c[v>>2]|0)+1<<2)>>2]|0)+84>>2];c[n>>2]=(c[(c[o>>2]|0)+56>>2]|0)+(e[(c[o>>2]|0)+20>>1]&(d[(c[(c[o>>2]|0)+64>>2]|0)+((e[(c[o>>2]|0)+18>>1]|0)-1<<1)>>0]<<8|d[(c[(c[o>>2]|0)+64>>2]|0)+((e[(c[o>>2]|0)+18>>1]|0)-1<<1)+1>>0]));if((c[n>>2]|0)>>>0<((c[(c[o>>2]|0)+56>>2]|0)+4|0)>>>0){c[t>>2]=Lj(63773)|0;A=c[t>>2]|0;i=z;return A|0}c[j>>2]=(Yb[c[(c[o>>2]|0)+76>>2]&255](c[o>>2]|0,c[n>>2]|0)|0)&65535;c[p>>2]=c[(c[m>>2]|0)+80>>2];c[y>>2]=Dg(c[(c[o>>2]|0)+72>>2]|0)|0;sL(c[x>>2]|0,c[w>>2]|0,(c[n>>2]|0)+-4|0,(c[j>>2]|0)+4|0,c[p>>2]|0,c[h>>2]|0,y);rL(c[o>>2]|0,(e[(c[o>>2]|0)+18>>1]|0)-1|0,c[j>>2]|0,y);if(c[y>>2]|0){c[t>>2]=c[y>>2];A=c[t>>2]|0;i=z;return A|0}}c[y>>2]=tL(c[u>>2]|0)|0;if((c[y>>2]|0)==0?(a[(c[u>>2]|0)+68>>0]|0)>(c[v>>2]|0):0){while(1){g=c[u>>2]|0;if((a[(c[u>>2]|0)+68>>0]|0)<=(c[v>>2]|0))break;q=g+68|0;A=a[q>>0]|0;a[q>>0]=A+-1<<24>>24;qB(c[(c[u>>2]|0)+120+(A<<24>>24<<2)>>2]|0)}c[y>>2]=tL(g)|0}do if(!(c[y>>2]|0)){g=c[u>>2]|0;if(!(c[s>>2]|0)){c[y>>2]=gF(g)|0;if(!(a[r>>0]|0))break;a[(c[u>>2]|0)+66>>0]=3;break}a[g+66>>0]=2;g=(c[u>>2]|0)+60|0;if((c[w>>2]|0)>=(e[(c[x>>2]|0)+18>>1]|0)){c[g>>2]=-1;b[(c[u>>2]|0)+80+(c[v>>2]<<1)>>1]=(e[(c[x>>2]|0)+18>>1]|0)-1;break}else{c[g>>2]=1;break}}while(0);c[t>>2]=c[y>>2];A=c[t>>2]|0;i=z;return A|0}function EI(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=i;i=i+48|0;o=s+44|0;t=s+40|0;p=s+36|0;h=s+32|0;q=s+28|0;n=s+24|0;r=s+20|0;m=s+16|0;j=s+12|0;l=s+8|0;k=s+4|0;c[t>>2]=a;c[p>>2]=d;c[h>>2]=f;c[q>>2]=g;c[n>>2]=c[(c[t>>2]|0)+16>>2];c[r>>2]=c[(c[n>>2]|0)+32>>2];c[m>>2]=c[(c[t>>2]|0)+24>>2];do if(!(c[r>>2]|0)){t=cF(c[m>>2]|0,0,0,s)|0;c[(c[n>>2]|0)+32>>2]=t;c[r>>2]=t;if(c[r>>2]|0){b[(c[r>>2]|0)+8>>1]=c[h>>2];break}c[o>>2]=7;t=c[o>>2]|0;i=s;return t|0}while(0);c[l>>2]=qL(c[n>>2]|0,k)|0;dF(c[m>>2]|0,c[k>>2]|0,c[l>>2]|0,c[r>>2]|0);c[j>>2]=0;while(1){if((c[j>>2]|0)>=(c[h>>2]|0)){h=10;break}if((e[(c[(c[r>>2]|0)+4>>2]|0)+((c[j>>2]|0)*40|0)+8>>1]|0)&1){h=8;break}c[j>>2]=(c[j>>2]|0)+1}if((h|0)==8){c[c[q>>2]>>2]=-1;c[o>>2]=0;t=c[o>>2]|0;i=s;return t|0}else if((h|0)==10){t=rF(c[(c[p>>2]|0)+12>>2]|0,c[(c[p>>2]|0)+16>>2]|0,c[r>>2]|0)|0;c[c[q>>2]>>2]=t;c[o>>2]=0;t=c[o>>2]|0;i=s;return t|0}return 0}function FI(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;k=i;i=i+32|0;f=k+20|0;m=k+16|0;g=k+12|0;l=k+8|0;j=k+4|0;h=k;c[m>>2]=a;c[g>>2]=d;c[l>>2]=c[(c[m>>2]|0)+16>>2];c[j>>2]=qL(c[l>>2]|0,h)|0;if(tx(c[g>>2]|0,c[h>>2]|0)|0){c[f>>2]=7;m=c[f>>2]|0;i=k;return m|0}else{c[(c[g>>2]|0)+12>>2]=c[h>>2];b[(c[g>>2]|0)+8>>1]=(e[(c[g>>2]|0)+8>>1]|0)&-49664|16;iR(c[(c[g>>2]|0)+16>>2]|0,c[j>>2]|0,c[h>>2]|0)|0;c[f>>2]=0;m=c[f>>2]|0;i=k;return m|0}return 0}function GI(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=i;i=i+16|0;d=g+8|0;e=g+4|0;f=g;c[d>>2]=a;c[e>>2]=b;if(!(c[(c[e>>2]|0)+8>>2]|0)){i=g;return}c[f>>2]=c[c[d>>2]>>2];Sf(c[f>>2]|0,c[(c[d>>2]|0)+44>>2]|0);b=nh(c[f>>2]|0,c[(c[e>>2]|0)+8>>2]|0)|0;c[(c[d>>2]|0)+44>>2]=b;Kd(c[(c[e>>2]|0)+8>>2]|0);c[(c[e>>2]|0)+8>>2]=0;i=g;return}function HI(a){a=a|0;var b=0,d=0,e=0;e=i;i=i+16|0;b=e+4|0;d=e;c[d>>2]=a;if(nL(c[(c[d>>2]|0)+16>>2]|0)|0){c[b>>2]=oL(c[d>>2]|0)|0;a=c[b>>2]|0;i=e;return a|0}else{c[b>>2]=0;a=c[b>>2]|0;i=e;return a|0}return 0}function II(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,j=0,k=0;j=i;i=i+32|0;f=j+16|0;k=j+12|0;e=j+8|0;g=j+4|0;h=j;c[k>>2]=a;c[e>>2]=b;c[h>>2]=0;c[g>>2]=c[(c[k>>2]|0)+16>>2];b=c[g>>2]|0;if(d[(c[g>>2]|0)+56>>0]|0){c[h>>2]=EK(b)|0;c[h>>2]=c[h>>2];if(!(c[h>>2]|0)){c[h>>2]=bL(c[g>>2]|0)|0;c[c[e>>2]>>2]=0}c[f>>2]=c[h>>2];k=c[f>>2]|0;i=j;return k|0}a=c[e>>2]|0;if(c[b+36>>2]|0){c[a>>2]=0;c[h>>2]=HK((c[g>>2]|0)+64|0,(c[g>>2]|0)+36|0)|0}else c[a>>2]=1;c[f>>2]=c[h>>2];k=c[f>>2]|0;i=j;return k|0}function JI(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0;h=i;i=i+16|0;f=h+8|0;e=h+4|0;g=h;c[f>>2]=a;c[e>>2]=b;c[g>>2]=gF(c[f>>2]|0)|0;do if(!(c[g>>2]|0)){e=c[e>>2]|0;if(!(d[(c[f>>2]|0)+66>>0]|0)){c[e>>2]=1;break}else{c[e>>2]=0;c[g>>2]=JF(c[f>>2]|0)|0;break}}while(0);i=h;return c[g>>2]|0}function KI(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0;l=i;i=i+32|0;f=l+20|0;m=l+16|0;g=l+12|0;j=l+8|0;k=l+4|0;h=l;c[f>>2]=b;c[m>>2]=d;c[g>>2]=e;c[j>>2]=c[(c[m>>2]|0)+16>>2];b=c[j>>2]|0;if(a[(c[j>>2]|0)+56>>0]|0){c[k>>2]=UK(c[b+20>>2]|0,c[g>>2]|0)|0;m=c[k>>2]|0;i=l;return m|0}c[h>>2]=c[b+36>>2];c[(c[j>>2]|0)+36>>2]=c[(c[h>>2]|0)+4>>2];c[(c[h>>2]|0)+4>>2]=0;if(!(c[(c[j>>2]|0)+36+4>>2]|0))oK(c[f>>2]|0,c[h>>2]|0);c[c[g>>2]>>2]=((c[(c[j>>2]|0)+36>>2]|0)!=0^1)&1;c[k>>2]=0;m=c[k>>2]|0;i=l;return m|0}function LI(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;t=i;i=i+64|0;j=t+52|0;u=t+48|0;k=t+44|0;r=t+40|0;s=t+36|0;q=t+32|0;g=t+28|0;p=t+24|0;h=t+20|0;f=t+16|0;n=t+12|0;l=t+8|0;m=t+4|0;o=t;c[u>>2]=b;c[k>>2]=e;c[s>>2]=0;c[r>>2]=c[(c[u>>2]|0)+16>>2];b=(c[(c[k>>2]|0)+16>>2]|0)+1|0;if((d[(c[(c[k>>2]|0)+16>>2]|0)+1>>0]|0|0)<128)c[f>>2]=d[b>>0];else tF(b,f)|0;do if((c[f>>2]|0)>0&(c[f>>2]|0)<10&(c[f>>2]|0)!=7){u=(c[r>>2]|0)+60|0;a[u>>0]=(d[u>>0]|0)&1}else{if((c[f>>2]|0)>10?(c[f>>2]&1|0)!=0:0){u=(c[r>>2]|0)+60|0;a[u>>0]=(d[u>>0]|0)&2;break}a[(c[r>>2]|0)+60>>0]=0}while(0);c[p>>2]=(c[(c[k>>2]|0)+12>>2]|0)+8;f=c[(c[k>>2]|0)+12>>2]|0;u=c[(c[k>>2]|0)+12>>2]|0;c[h>>2]=f+(zF(u,((u|0)<0)<<31>>31)|0);if(c[(c[r>>2]|0)+4>>2]|0){b=c[r>>2]|0;if(c[(c[r>>2]|0)+36+4>>2]|0){if(c[b+48>>2]|0)b=((c[(c[r>>2]|0)+48>>2]|0)+(c[p>>2]|0)|0)>(c[(c[r>>2]|0)+4>>2]|0);else b=0;c[g>>2]=b&1}else{if((c[b+36+8>>2]|0)<=(c[(c[r>>2]|0)+4>>2]|0))if((c[(c[r>>2]|0)+36+8>>2]|0)>(c[c[r>>2]>>2]|0))b=(Hu()|0)!=0;else b=0;else b=1;c[g>>2]=b&1}if(c[g>>2]|0){c[s>>2]=EK(c[r>>2]|0)|0;c[(c[r>>2]|0)+36+8>>2]=0;c[(c[r>>2]|0)+48>>2]=0}}u=(c[r>>2]|0)+36+8|0;c[u>>2]=(c[u>>2]|0)+(c[h>>2]|0);if((c[h>>2]|0)>(c[(c[r>>2]|0)+8>>2]|0))c[(c[r>>2]|0)+8>>2]=c[h>>2];do if(c[(c[r>>2]|0)+36+4>>2]|0){c[n>>2]=(c[(c[r>>2]|0)+48>>2]|0)+(c[p>>2]|0);do if((c[n>>2]|0)>(c[(c[r>>2]|0)+52>>2]|0)){c[m>>2]=(c[(c[r>>2]|0)+36>>2]|0)-(c[(c[r>>2]|0)+36+4>>2]|0);c[o>>2]=c[(c[r>>2]|0)+52>>2]<<1;while(1){b=c[o>>2]|0;if((c[o>>2]|0)>=(c[n>>2]|0))break;c[o>>2]=b<<1}if((b|0)>(c[(c[r>>2]|0)+4>>2]|0))c[o>>2]=c[(c[r>>2]|0)+4>>2];if((c[o>>2]|0)<(c[n>>2]|0))c[o>>2]=c[n>>2];u=c[o>>2]|0;c[l>>2]=bg(c[(c[r>>2]|0)+36+4>>2]|0,u,((u|0)<0)<<31>>31)|0;if(c[l>>2]|0){c[(c[r>>2]|0)+36>>2]=(c[l>>2]|0)+(c[m>>2]|0);c[(c[r>>2]|0)+36+4>>2]=c[l>>2];c[(c[r>>2]|0)+52>>2]=c[o>>2];break}c[j>>2]=7;u=c[j>>2]|0;i=t;return u|0}while(0);c[q>>2]=(c[(c[r>>2]|0)+36+4>>2]|0)+(c[(c[r>>2]|0)+48>>2]|0);u=(c[r>>2]|0)+48|0;c[u>>2]=(c[u>>2]|0)+((c[p>>2]|0)+7&-8);if(c[(c[r>>2]|0)+36>>2]|0)c[(c[q>>2]|0)+4>>2]=(c[(c[r>>2]|0)+36>>2]|0)-(c[(c[r>>2]|0)+36+4>>2]|0)}else{u=c[p>>2]|0;c[q>>2]=_f(u,((u|0)<0)<<31>>31)|0;if(c[q>>2]|0){c[(c[q>>2]|0)+4>>2]=c[(c[r>>2]|0)+36>>2];break}c[j>>2]=7;u=c[j>>2]|0;i=t;return u|0}while(0);iR((c[q>>2]|0)+8|0,c[(c[k>>2]|0)+16>>2]|0,c[(c[k>>2]|0)+12>>2]|0)|0;c[c[q>>2]>>2]=c[(c[k>>2]|0)+12>>2];c[(c[r>>2]|0)+36>>2]=c[q>>2];c[j>>2]=c[s>>2];u=c[j>>2]|0;i=t;return u|0}function MI(a,b,e){a=a|0;b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;o=i;i=i+128|0;g=o+116|0;r=o+112|0;q=o+108|0;h=o+104|0;p=o+80|0;f=o+100|0;l=o+96|0;m=o+92|0;j=o+88|0;k=o+40|0;n=o;c[r>>2]=a;c[q>>2]=b;c[h>>2]=e;e=p;c[e>>2]=0;c[e+4>>2]=0;sH(c[q>>2]|0,p)|0;AF(k,c[r>>2]|0,0);c[f>>2]=hI(c[q>>2]|0,0,c[p>>2]|0,1,k)|0;if(c[f>>2]|0){c[g>>2]=c[f>>2];r=c[g>>2]|0;i=o;return r|0}a=c[k+16>>2]|0;if((d[c[k+16>>2]>>0]|0|0)<128)c[l>>2]=d[a>>0];else tF(a,l)|0;if((c[l>>2]|0)>>>0>=3?(c[l>>2]|0)<=(c[k+12>>2]|0):0){a=(c[k+16>>2]|0)+((c[l>>2]|0)-1)|0;if((d[(c[k+16>>2]|0)+((c[l>>2]|0)-1)>>0]|0|0)<128)c[m>>2]=d[a>>0];else tF(a,m)|0;if(!((c[m>>2]|0)>>>0<1|(c[m>>2]|0)>>>0>9|(c[m>>2]|0)==7)?(c[j>>2]=d[35916+(c[m>>2]|0)>>0],(c[k+12>>2]|0)>>>0>=((c[l>>2]|0)+(c[j>>2]|0)|0)>>>0):0){vF((c[k+16>>2]|0)+((c[k+12>>2]|0)-(c[j>>2]|0))|0,c[m>>2]|0,n)|0;p=n;q=c[p+4>>2]|0;r=c[h>>2]|0;c[r>>2]=c[p>>2];c[r+4>>2]=q;Ug(k);c[g>>2]=0;r=c[g>>2]|0;i=o;return r|0}}Ug(k);c[g>>2]=Lj(72119)|0;r=c[g>>2]|0;i=o;return r|0}function NI(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=i;i=i+80|0;f=o+72|0;g=o+68|0;p=o+64|0;h=o+60|0;j=o+56|0;l=o+40|0;n=o+52|0;m=o+48|0;k=o;c[g>>2]=a;c[p>>2]=b;c[h>>2]=d;c[j>>2]=e;b=l;c[b>>2]=0;c[b+4>>2]=0;c[m>>2]=c[(c[p>>2]|0)+16>>2];sH(c[m>>2]|0,l)|0;b=l;a=c[b+4>>2]|0;e=l;d=c[e+4>>2]|0;if((a|0)<0|(a|0)==0&(c[b>>2]|0)>>>0<=0|((d|0)>0|(d|0)==0&(c[e>>2]|0)>>>0>2147483647)){c[c[j>>2]>>2]=0;c[f>>2]=Lj(72153)|0;p=c[f>>2]|0;i=o;return p|0}AF(k,c[g>>2]|0,0);c[n>>2]=hI(c[m>>2]|0,0,c[l>>2]|0,1,k)|0;if(c[n>>2]|0){c[f>>2]=c[n>>2];p=c[f>>2]|0;i=o;return p|0}else{p=rF(c[k+12>>2]|0,c[k+16>>2]|0,c[h>>2]|0)|0;c[c[j>>2]>>2]=p;Ug(k);c[f>>2]=0;p=c[f>>2]|0;i=o;return p|0}return 0}function OI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0;f=i;i=i+16|0;j=f+12|0;h=f+8|0;g=f+4|0;e=f;c[j>>2]=a;c[h>>2]=b;c[g>>2]=d;kg(c[j>>2]|0);c[e>>2]=DK(c[j>>2]|0,c[h>>2]|0,c[g>>2]|0)|0;i=f;return c[e>>2]|0}function PI(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;n=i;i=i+48|0;p=n+32|0;o=n+28|0;f=n+24|0;g=n+20|0;j=n+16|0;k=n+12|0;h=n+8|0;m=n+4|0;l=n;c[p>>2]=a;c[o>>2]=b;c[f>>2]=d;c[g>>2]=e;c[h>>2]=(c[(c[p>>2]|0)+16>>2]|0)+(c[o>>2]<<4);c[k>>2]=(c[(c[h>>2]|0)+12>>2]|0)+8;c[j>>2]=c[(c[k>>2]|0)+8>>2];while(1){if(!(c[j>>2]|0))break;c[m>>2]=c[(c[j>>2]|0)+8>>2];if((c[(c[m>>2]|0)+28>>2]|0)==(c[f>>2]|0))c[(c[m>>2]|0)+28>>2]=c[g>>2];c[j>>2]=c[c[j>>2]>>2]}c[k>>2]=(c[(c[h>>2]|0)+12>>2]|0)+24;c[j>>2]=c[(c[k>>2]|0)+8>>2];while(1){if(!(c[j>>2]|0))break;c[l>>2]=c[(c[j>>2]|0)+8>>2];if((c[(c[l>>2]|0)+44>>2]|0)==(c[f>>2]|0))c[(c[l>>2]|0)+44>>2]=c[g>>2];c[j>>2]=c[c[j>>2]>>2]}i=n;return}function QI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;k=i;i=i+32|0;e=k+16|0;f=k+12|0;g=k+8|0;j=k+4|0;h=k;c[e>>2]=a;c[f>>2]=b;c[g>>2]=d;c[h>>2]=c[(c[e>>2]|0)+4>>2];kg(c[e>>2]|0);c[j>>2]=nH(c[h>>2]|0,c[f>>2]|0,0)|0;if(c[j>>2]|0){j=c[j>>2]|0;i=k;return j|0}sK(c[e>>2]|0,0,0,1);c[j>>2]=tK(c[h>>2]|0,c[f>>2]|0,0,c[g>>2]|0)|0;j=c[j>>2]|0;i=k;return j|0}function RI(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0;k=i;i=i+16|0;f=k+12|0;g=k+8|0;h=k+4|0;j=k;c[f>>2]=b;c[g>>2]=e;mK(c[(c[g>>2]|0)+20>>2]|0);c[(c[g>>2]|0)+20>>2]=0;c[h>>2]=0;while(1){if((c[h>>2]|0)>=(d[(c[g>>2]|0)+59>>0]|0|0))break;c[j>>2]=(c[g>>2]|0)+64+((c[h>>2]|0)*72|0);nK(c[f>>2]|0,c[j>>2]|0);c[(c[j>>2]|0)+8>>2]=c[g>>2];c[h>>2]=(c[h>>2]|0)+1}if(!(c[(c[g>>2]|0)+36+4>>2]|0))oK(0,c[(c[g>>2]|0)+36>>2]|0);c[(c[g>>2]|0)+36>>2]=0;c[(c[g>>2]|0)+36+8>>2]=0;a[(c[g>>2]|0)+56>>0]=0;c[(c[g>>2]|0)+48>>2]=0;c[(c[g>>2]|0)+8>>2]=0;Sf(c[f>>2]|0,c[(c[g>>2]|0)+32>>2]|0);c[(c[g>>2]|0)+32>>2]=0;i=k;return}function SI(a){a=a|0;var b=0,d=0;b=i;i=i+16|0;d=b;c[d>>2]=a;a=QI(c[c[d>>2]>>2]|0,c[(c[d>>2]|0)+52>>2]|0,0)|0;i=b;return a|0}function TI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0;e=i;i=i+32|0;f=e+16|0;k=e+12|0;h=e+8|0;g=e+4|0;j=e;c[f>>2]=a;c[k>>2]=b;c[h>>2]=d;c[j>>2]=(c[(c[f>>2]|0)+16>>2]|0)+(c[k>>2]<<4);c[g>>2]=Oj((c[(c[j>>2]|0)+12>>2]|0)+8|0,c[h>>2]|0,0)|0;Qf(c[f>>2]|0,c[g>>2]|0);d=(c[f>>2]|0)+24|0;c[d>>2]=c[d>>2]|2;i=e;
  93. return}function UI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0;h=i;i=i+32|0;e=h+20|0;l=h+16|0;j=h+12|0;g=h+8|0;k=h+4|0;f=h;c[e>>2]=a;c[l>>2]=b;c[j>>2]=d;c[k>>2]=(c[(c[(c[e>>2]|0)+16>>2]|0)+(c[l>>2]<<4)+12>>2]|0)+24;c[g>>2]=Oj(c[k>>2]|0,c[j>>2]|0,0)|0;if(!(c[g>>2]|0)){l=c[e>>2]|0;l=l+24|0;k=c[l>>2]|0;k=k|2;c[l>>2]=k;i=h;return}a=c[g>>2]|0;if((c[(c[(c[g>>2]|0)+12>>2]|0)+8>>2]|0)!=(c[g>>2]|0)){c[f>>2]=c[(c[a+12>>2]|0)+8>>2];while(1){if(c[f>>2]|0)b=(c[(c[f>>2]|0)+20>>2]|0)!=(c[g>>2]|0);else b=0;a=c[f>>2]|0;if(!b)break;c[f>>2]=c[a+20>>2]}if((a|0)!=0?(c[(c[f>>2]|0)+20>>2]|0)==(c[g>>2]|0):0)c[(c[f>>2]|0)+20>>2]=c[(c[g>>2]|0)+20>>2]}else c[(c[(c[g>>2]|0)+12>>2]|0)+8>>2]=c[a+20>>2];WG(c[e>>2]|0,c[g>>2]|0);l=c[e>>2]|0;l=l+24|0;k=c[l>>2]|0;k=k|2;c[l>>2]=k;i=h;return}function VI(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,j=0,k=0,l=0,m=0;j=i;i=i+32|0;f=j+24|0;m=j+20|0;k=j+16|0;g=j+12|0;l=j+8|0;e=j+4|0;h=j;c[f>>2]=a;c[m>>2]=b;c[k>>2]=d;c[l>>2]=(c[(c[(c[f>>2]|0)+16>>2]|0)+(c[m>>2]<<4)+12>>2]|0)+40;c[g>>2]=Oj(c[l>>2]|0,c[k>>2]|0,0)|0;if(!(c[g>>2]|0)){i=j;return}if((c[(c[g>>2]|0)+20>>2]|0)==(c[(c[g>>2]|0)+24>>2]|0)){c[e>>2]=BB(c[g>>2]|0)|0;c[h>>2]=(c[e>>2]|0)+60;while(1){a=(c[c[h>>2]>>2]|0)+32|0;if((c[c[h>>2]>>2]|0)==(c[g>>2]|0))break;c[h>>2]=a}c[c[h>>2]>>2]=c[a>>2]}Pf(c[f>>2]|0,c[g>>2]|0);m=(c[f>>2]|0)+24|0;c[m>>2]=c[m>>2]|2;i=j;return}function WI(b,e,f,g,h){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;t=i;i=i+240|0;s=t+16|0;r=t+8|0;v=t+124|0;j=t+120|0;k=t+116|0;u=t+112|0;l=t+108|0;m=t+104|0;p=t+32|0;o=t+24|0;q=t+20|0;n=t;c[v>>2]=b;c[j>>2]=e;c[k>>2]=f;c[u>>2]=g;c[l>>2]=h;c[o>>2]=c[(c[v>>2]|0)+4>>2];c[q>>2]=c[(c[(c[o>>2]|0)+4>>2]|0)+24>>2];kg(c[v>>2]|0);c[p>>2]=c[o>>2];c[p+4>>2]=c[c[o>>2]>>2];c[p+12>>2]=$E(c[p>>2]|0)|0;c[p+16>>2]=c[u>>2];c[p+20>>2]=0;c[p+24>>2]=0;c[p+28>>2]=0;c[p+32>>2]=0;c[p+36>>2]=0;c[p+8>>2]=0;c[p+68>>2]=0;cg(p+40|0,0,t+128|0,100,1e9);a[p+40+25>>0]=1;a:do if(c[p+12>>2]|0){c[p+8>>2]=ig((((c[p+12>>2]|0)>>>0)/8|0)+1|0,0)|0;if(!(c[p+8>>2]|0)){c[p+24>>2]=1;break}c[p+68>>2]=Ti(c[(c[o>>2]|0)+32>>2]|0)|0;if(!(c[p+68>>2]|0)){c[p+24>>2]=1;break}c[m>>2]=(((c[381]|0)>>>0)/((c[(c[o>>2]|0)+32>>2]|0)>>>0)|0)+1;if((c[m>>2]|0)>>>0<=(c[p+12>>2]|0)>>>0)dK(p,c[m>>2]|0);c[p+28>>2]=42551;v=$q((c[(c[(c[o>>2]|0)+12>>2]|0)+56>>2]|0)+32|0)|0;eK(p,1,v,$q((c[(c[(c[o>>2]|0)+12>>2]|0)+56>>2]|0)+36|0)|0);c[p+28>>2]=0;v=(c[(c[o>>2]|0)+4>>2]|0)+24|0;c[v>>2]=c[v>>2]&-268435457;c[m>>2]=0;while(1){if(!((c[m>>2]|0)<(c[k>>2]|0)?(c[p+16>>2]|0)!=0:0))break;if(c[(c[j>>2]|0)+(c[m>>2]<<2)>>2]|0){if((d[(c[o>>2]|0)+17>>0]|0)!=0?(c[(c[j>>2]|0)+(c[m>>2]<<2)>>2]|0)>1:0)fK(p,c[(c[j>>2]|0)+(c[m>>2]<<2)>>2]|0,1,0);gK(p,c[(c[j>>2]|0)+(c[m>>2]<<2)>>2]|0,n,-1,2147483647)|0}c[m>>2]=(c[m>>2]|0)+1}c[(c[(c[o>>2]|0)+4>>2]|0)+24>>2]=c[q>>2];c[m>>2]=1;while(1){if(!((c[m>>2]|0)>>>0<=(c[p+12>>2]|0)>>>0?(c[p+16>>2]|0)!=0:0))break a;do if(!(hK(p,c[m>>2]|0)|0)){v=lF(c[o>>2]|0,c[m>>2]|0)|0;if((v|0)==(c[m>>2]|0)?(a[(c[o>>2]|0)+17>>0]|0)!=0:0)break;c[r>>2]=c[m>>2];iK(p,42567,r)}while(0);if(((hK(p,c[m>>2]|0)|0)!=0?(v=lF(c[o>>2]|0,c[m>>2]|0)|0,(v|0)==(c[m>>2]|0)):0)?(d[(c[o>>2]|0)+17>>0]|0)!=0:0){c[s>>2]=c[m>>2];iK(p,42589,s)}c[m>>2]=(c[m>>2]|0)+1}}while(0);Wi(c[p+68>>2]|0);Kd(c[p+8>>2]|0);if(c[p+24>>2]|0){fA(p+40|0);v=p+20|0;c[v>>2]=(c[v>>2]|0)+1}c[c[l>>2]>>2]=c[p+20>>2];if(c[p+20>>2]|0){v=p+40|0;v=eg(v)|0;i=t;return v|0}fA(p+40|0);v=p+40|0;v=eg(v)|0;i=t;return v|0}function XI(d){d=d|0;var e=0,f=0,g=0;g=i;i=i+16|0;e=g+4|0;f=g;c[e>>2]=d;c[f>>2]=c[(c[e>>2]|0)+32>>2];Ug(c[e>>2]|0);d=Fw(c[f>>2]|0,64,0)|0;c[(c[e>>2]|0)+20>>2]=d;if(a[(c[f>>2]|0)+65>>0]|0){b[(c[e>>2]|0)+8>>1]=1;c[(c[e>>2]|0)+24>>2]=0;i=g;return}else{d=$t(c[f>>2]|0,c[(c[e>>2]|0)+20>>2]|0)|0;c[(c[e>>2]|0)+24>>2]=d;d=cK(c[f>>2]|0,c[(c[e>>2]|0)+20>>2]|0,c[(c[e>>2]|0)+24>>2]|0)|0;c[c[e>>2]>>2]=d;b[(c[e>>2]|0)+8>>1]=32;i=g;return}}function YI(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;g=l+16|0;h=l;j=l+12|0;k=l+8|0;c[g>>2]=a;a=h;c[a>>2]=d;c[a+4>>2]=f;c[j>>2]=$J(c[g>>2]|0)|0;if(!(c[j>>2]|0)){i=l;return}d=h;f=c[d+4>>2]|0;a=c[j>>2]|0;c[a>>2]=c[d>>2];c[a+4>>2]=f;c[(c[j>>2]|0)+8>>2]=0;c[k>>2]=c[(c[g>>2]|0)+12>>2];if(c[k>>2]|0){if(((e[(c[g>>2]|0)+26>>1]|0)&1|0)!=0?(h,d=c[h+4>>2]|0,a=c[k>>2]|0,f=c[a+4>>2]|0,(d|0)<(f|0)|((d|0)==(f|0)?(c[h>>2]|0)>>>0<=(c[a>>2]|0)>>>0:0)):0){a=(c[g>>2]|0)+26|0;b[a>>1]=(e[a>>1]|0)&-2}c[(c[k>>2]|0)+8>>2]=c[j>>2]}else c[(c[g>>2]|0)+8>>2]=c[j>>2];c[(c[g>>2]|0)+12>>2]=c[j>>2];i=l;return}function ZI(a,b){a=a|0;b=b|0;var d=0,f=0,g=0,h=0,j=0;h=i;i=i+16|0;d=h+8|0;f=h+4|0;g=h;c[f>>2]=a;c[g>>2]=b;if(!((e[(c[f>>2]|0)+26>>1]|0)&2))bK(c[f>>2]|0);if(!(c[(c[f>>2]|0)+8>>2]|0)){c[d>>2]=0;b=c[d>>2]|0;i=h;return b|0}j=c[(c[f>>2]|0)+8>>2]|0;a=c[j+4>>2]|0;b=c[g>>2]|0;c[b>>2]=c[j>>2];c[b+4>>2]=a;c[(c[f>>2]|0)+8>>2]=c[(c[(c[f>>2]|0)+8>>2]|0)+8>>2];if(!(c[(c[f>>2]|0)+8>>2]|0))FF(c[f>>2]|0);c[d>>2]=1;j=c[d>>2]|0;i=h;return j|0}function _I(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=i;i=i+48|0;o=s+36|0;h=s+32|0;j=s+28|0;p=s;q=s+24|0;r=s+20|0;m=s+16|0;k=s+12|0;l=s+8|0;c[h>>2]=a;c[j>>2]=d;a=p;c[a>>2]=f;c[a+4>>2]=g;if((c[j>>2]|0)!=(c[(c[h>>2]|0)+28>>2]|0)){c[q>>2]=c[(c[h>>2]|0)+8>>2];if(c[q>>2]|0){c[m>>2]=(c[h>>2]|0)+20;if(!((e[(c[h>>2]|0)+26>>1]|0)&1))c[q>>2]=XJ(c[q>>2]|0)|0;c[r>>2]=c[(c[h>>2]|0)+20>>2];while(1){if(!(c[r>>2]|0))break;c[m>>2]=(c[r>>2]|0)+8;if(!(c[(c[r>>2]|0)+12>>2]|0)){n=8;break}ZJ(c[(c[r>>2]|0)+12>>2]|0,k,l);c[(c[r>>2]|0)+12>>2]=0;c[q>>2]=_J(c[k>>2]|0,c[q>>2]|0)|0;c[r>>2]=c[(c[r>>2]|0)+8>>2]}if((n|0)==8){n=YJ(c[q>>2]|0)|0;c[(c[r>>2]|0)+12>>2]=n}if((c[r>>2]|0)==0?(n=$J(c[h>>2]|0)|0,c[r>>2]=n,c[c[m>>2]>>2]=n,(c[r>>2]|0)!=0):0){n=c[r>>2]|0;c[n>>2]=0;c[n+4>>2]=0;c[(c[r>>2]|0)+8>>2]=0;n=YJ(c[q>>2]|0)|0;c[(c[r>>2]|0)+12>>2]=n}c[(c[h>>2]|0)+8>>2]=0;c[(c[h>>2]|0)+12>>2]=0;n=(c[h>>2]|0)+26|0;b[n>>1]=e[n>>1]|0|1}c[(c[h>>2]|0)+28>>2]=c[j>>2]}c[r>>2]=c[(c[h>>2]|0)+20>>2];a:while(1){if(!(c[r>>2]|0)){n=25;break}c[q>>2]=c[(c[r>>2]|0)+12>>2];while(1){if(!(c[q>>2]|0))break;m=c[q>>2]|0;a=c[m+4>>2]|0;n=p;l=c[n+4>>2]|0;f=c[q>>2]|0;if((a|0)<(l|0)|((a|0)==(l|0)?(c[m>>2]|0)>>>0<(c[n>>2]|0)>>>0:0)){c[q>>2]=c[f+8>>2];continue}m=f;a=c[m+4>>2]|0;n=p;l=c[n+4>>2]|0;if(!((a|0)>(l|0)|((a|0)==(l|0)?(c[m>>2]|0)>>>0>(c[n>>2]|0)>>>0:0))){n=23;break a}c[q>>2]=c[(c[q>>2]|0)+12>>2]}c[r>>2]=c[(c[r>>2]|0)+8>>2]}if((n|0)==23){c[o>>2]=1;r=c[o>>2]|0;i=s;return r|0}else if((n|0)==25){c[o>>2]=0;r=c[o>>2]|0;i=s;return r|0}return 0}function $I(a){a=a|0;var b=0,e=0,f=0;f=i;i=i+16|0;b=f+4|0;e=f;c[e>>2]=a;if((d[(c[e>>2]|0)+17>>0]|0|0)>=3){c[b>>2]=0;a=c[b>>2]|0;i=f;return a|0}if((c[c[(c[e>>2]|0)+68>>2]>>2]|0)!=0?(a=(c[e>>2]|0)+80|0,e=c[a+4>>2]|0,(e|0)>0|(e|0)==0&(c[a>>2]|0)>>>0>0):0){c[b>>2]=0;a=c[b>>2]|0;i=f;return a|0}c[b>>2]=1;a=c[b>>2]|0;i=f;return a|0}function aJ(a){a=a|0;var b=0,e=0,f=0;e=i;i=i+16|0;f=e+4|0;b=e;c[f>>2]=a;c[b>>2]=c[c[(c[f>>2]|0)+64>>2]>>2];if(d[(c[f>>2]|0)+4>>0]|0){f=1;f=f&1;i=e;return f|0}if((c[c[b>>2]>>2]|0)<2){f=0;f=f&1;i=e;return f|0}f=(c[(c[b>>2]|0)+52>>2]|0)!=0;f=f&1;i=e;return f|0}function bJ(a){a=a|0;var b=0,e=0,f=0,g=0;g=i;i=i+16|0;b=g+8|0;f=g+4|0;e=g;c[b>>2]=a;c[f>>2]=0;if(!(c[(c[b>>2]|0)+216>>2]|0)){c[e>>2]=0;c[f>>2]=vt(c[b>>2]|0,1)|0;if(!(c[f>>2]|0))c[f>>2]=Nr(c[c[b>>2]>>2]|0,c[(c[b>>2]|0)+220>>2]|0,0,e)|0;if((c[f>>2]|0)==0&(c[e>>2]|0)!=0)c[f>>2]=SJ(c[b>>2]|0)|0}if(c[f>>2]|0){f=c[f>>2]|0;i=g;return f|0}if(!(c[(c[b>>2]|0)+216>>2]|0)){f=c[f>>2]|0;i=g;return f|0}c[f>>2]=TJ(c[b>>2]|0)|0;if(c[f>>2]|0){f=c[f>>2]|0;i=g;return f|0}c[f>>2]=cr(c[(c[b>>2]|0)+216>>2]|0,d[(c[b>>2]|0)+10>>0]|0,c[(c[b>>2]|0)+160>>2]|0,c[(c[b>>2]|0)+208>>2]|0)|0;c[(c[b>>2]|0)+216>>2]=0;Xi(c[b>>2]|0);f=c[f>>2]|0;i=g;return f|0}function cJ(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,j=0,k=0,l=0;l=i;i=i+32|0;f=l+12|0;g=l+8|0;h=l+16|0;j=l+4|0;k=l;c[f>>2]=b;c[g>>2]=e;a[h>>0]=a[(c[f>>2]|0)+5>>0]|0;if((a[(c[f>>2]|0)+16>>0]|0)!=0?(c[g>>2]|0)!=4&(c[g>>2]|0)!=2:0)c[g>>2]=d[h>>0];do if((c[g>>2]|0)!=(d[h>>0]|0)){a[(c[f>>2]|0)+5>>0]=c[g>>2];if(((a[(c[f>>2]|0)+4>>0]|0)==0?(d[h>>0]&5|0)==1:0)?(c[g>>2]&1|0)==0:0){hr(c[(c[f>>2]|0)+68>>2]|0)|0;if((d[(c[f>>2]|0)+18>>0]|0)>=2){qr(c[c[f>>2]>>2]|0,c[(c[f>>2]|0)+180>>2]|0,0)|0;break}c[j>>2]=0;c[k>>2]=d[(c[f>>2]|0)+17>>0];if(!(c[k>>2]|0))c[j>>2]=LJ(c[f>>2]|0)|0;if((d[(c[f>>2]|0)+17>>0]|0)==1)c[j>>2]=vt(c[f>>2]|0,2)|0;if(!(c[j>>2]|0))qr(c[c[f>>2]>>2]|0,c[(c[f>>2]|0)+180>>2]|0,0)|0;if((c[j>>2]|0)==0&(c[k>>2]|0)==1){wr(c[f>>2]|0,1)|0;break}if(c[k>>2]|0)break;dr(c[f>>2]|0);break}if((c[g>>2]|0)==2)hr(c[(c[f>>2]|0)+68>>2]|0)|0}while(0);i=l;return d[(c[f>>2]|0)+5>>0]|0}function uR(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;l=a;j=b;k=j;h=d;n=e;i=n;if(!k){g=(f|0)!=0;if(!i){if(g){c[f>>2]=(l>>>0)%(h>>>0);c[f+4>>2]=0}n=0;f=(l>>>0)/(h>>>0)>>>0;return(C=n,f)|0}else{if(!g){n=0;f=0;return(C=n,f)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;f=0;return(C=n,f)|0}}g=(i|0)==0;do if(h){if(!g){g=(aa(i|0)|0)-(aa(k|0)|0)|0;if(g>>>0<=31){m=g+1|0;i=31-g|0;b=g-31>>31;h=m;a=l>>>(m>>>0)&b|k<<i;b=k>>>(m>>>0)&b;g=0;i=l<<i;break}if(!f){n=0;f=0;return(C=n,f)|0}c[f>>2]=a|0;c[f+4>>2]=j|b&0;n=0;f=0;return(C=n,f)|0}g=h-1|0;if(g&h){i=(aa(h|0)|0)+33-(aa(k|0)|0)|0;p=64-i|0;m=32-i|0;j=m>>31;o=i-32|0;b=o>>31;h=i;a=m-1>>31&k>>>(o>>>0)|(k<<m|l>>>(i>>>0))&b;b=b&k>>>(i>>>0);g=l<<p&j;i=(k<<p|l>>>(o>>>0))&j|l<<m&i-33>>31;break}if(f){c[f>>2]=g&l;c[f+4>>2]=0}if((h|0)==1){o=j|b&0;p=a|0|0;return(C=o,p)|0}else{p=nR(h|0)|0;o=k>>>(p>>>0)|0;p=k<<32-p|l>>>(p>>>0)|0;return(C=o,p)|0}}else{if(g){if(f){c[f>>2]=(k>>>0)%(h>>>0);c[f+4>>2]=0}o=0;p=(k>>>0)/(h>>>0)>>>0;return(C=o,p)|0}if(!l){if(f){c[f>>2]=0;c[f+4>>2]=(k>>>0)%(i>>>0)}o=0;p=(k>>>0)/(i>>>0)>>>0;return(C=o,p)|0}g=i-1|0;if(!(g&i)){if(f){c[f>>2]=a|0;c[f+4>>2]=g&k|b&0}o=0;p=k>>>((nR(i|0)|0)>>>0);return(C=o,p)|0}g=(aa(i|0)|0)-(aa(k|0)|0)|0;if(g>>>0<=30){b=g+1|0;i=31-g|0;h=b;a=k<<i|l>>>(b>>>0);b=k>>>(b>>>0);g=0;i=l<<i;break}if(!f){o=0;p=0;return(C=o,p)|0}c[f>>2]=a|0;c[f+4>>2]=j|b&0;o=0;p=0;return(C=o,p)|0}while(0);if(!h){k=i;j=0;i=0}else{m=d|0|0;l=n|e&0;k=gR(m|0,l|0,-1,-1)|0;d=C;j=i;i=0;do{e=j;j=g>>>31|j<<1;g=i|g<<1;e=a<<1|e>>>31|0;n=a>>>31|b<<1|0;fR(k,d,e,n)|0;p=C;o=p>>31|((p|0)<0?-1:0)<<1;i=o&1;a=fR(e,n,o&m,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l)|0;b=C;h=h-1|0}while((h|0)!=0);k=j;j=0}h=0;if(f){c[f>>2]=a;c[f+4>>2]=b}o=(g|0)>>>31|(k|h)<<1|(h<<1|g>>>31)&0|j;p=(g<<1|0>>>31)&-2|i;return(C=o,p)|0}function vR(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Ob[a&255](b|0,c|0,d|0)|0}function wR(a,b,c){a=a|0;b=b|0;c=c|0;return ea(0,a|0,b|0,c|0)|0}function xR(a,b,c){a=a|0;b=b|0;c=c|0;return ea(1,a|0,b|0,c|0)|0}function yR(a,b,c){a=a|0;b=b|0;c=c|0;return ea(2,a|0,b|0,c|0)|0}function zR(a,b,c){a=a|0;b=b|0;c=c|0;return ea(3,a|0,b|0,c|0)|0}function AR(a,b,c){a=a|0;b=b|0;c=c|0;return ea(4,a|0,b|0,c|0)|0}function BR(a,b,c){a=a|0;b=b|0;c=c|0;return ea(5,a|0,b|0,c|0)|0}function CR(a,b,c){a=a|0;b=b|0;c=c|0;return ea(6,a|0,b|0,c|0)|0}function DR(a,b,c){a=a|0;b=b|0;c=c|0;return ea(7,a|0,b|0,c|0)|0}function ER(a,b,c){a=a|0;b=b|0;c=c|0;return ea(8,a|0,b|0,c|0)|0}function FR(a,b,c){a=a|0;b=b|0;c=c|0;return ea(9,a|0,b|0,c|0)|0}function GR(a,b,c){a=a|0;b=b|0;c=c|0;return ea(10,a|0,b|0,c|0)|0}function HR(a,b,c){a=a|0;b=b|0;c=c|0;return ea(11,a|0,b|0,c|0)|0}function IR(a,b,c){a=a|0;b=b|0;c=c|0;return ea(12,a|0,b|0,c|0)|0}function JR(a,b,c){a=a|0;b=b|0;c=c|0;return ea(13,a|0,b|0,c|0)|0}function KR(a,b,c){a=a|0;b=b|0;c=c|0;return ea(14,a|0,b|0,c|0)|0}function LR(a,b,c){a=a|0;b=b|0;c=c|0;return ea(15,a|0,b|0,c|0)|0}function MR(a,b,c){a=a|0;b=b|0;c=c|0;return ea(16,a|0,b|0,c|0)|0}function NR(a,b,c){a=a|0;b=b|0;c=c|0;return ea(17,a|0,b|0,c|0)|0}function OR(a,b,c){a=a|0;b=b|0;c=c|0;return ea(18,a|0,b|0,c|0)|0}function PR(a,b,c){a=a|0;b=b|0;c=c|0;return ea(19,a|0,b|0,c|0)|0}function QR(a,b,c){a=a|0;b=b|0;c=c|0;return ea(20,a|0,b|0,c|0)|0}function RR(a,b,c){a=a|0;b=b|0;c=c|0;return ea(21,a|0,b|0,c|0)|0}function SR(a,b,c){a=a|0;b=b|0;c=c|0;return ea(22,a|0,b|0,c|0)|0}function TR(a,b,c){a=a|0;b=b|0;c=c|0;return ea(23,a|0,b|0,c|0)|0}function UR(a,b,c){a=a|0;b=b|0;c=c|0;return ea(24,a|0,b|0,c|0)|0}function VR(a,b,c){a=a|0;b=b|0;c=c|0;return ea(25,a|0,b|0,c|0)|0}function WR(a,b,c){a=a|0;b=b|0;c=c|0;return ea(26,a|0,b|0,c|0)|0}function XR(a,b,c){a=a|0;b=b|0;c=c|0;return ea(27,a|0,b|0,c|0)|0}function YR(a,b,c){a=a|0;b=b|0;c=c|0;return ea(28,a|0,b|0,c|0)|0}function ZR(a,b,c){a=a|0;b=b|0;c=c|0;return ea(29,a|0,b|0,c|0)|0}function _R(a,b,c){a=a|0;b=b|0;c=c|0;return ea(30,a|0,b|0,c|0)|0}function $R(a,b,c){a=a|0;b=b|0;c=c|0;return ea(31,a|0,b|0,c|0)|0}function aS(a,b,c){a=a|0;b=b|0;c=c|0;return ea(32,a|0,b|0,c|0)|0}function bS(a,b,c){a=a|0;b=b|0;c=c|0;return ea(33,a|0,b|0,c|0)|0}function cS(a,b,c){a=a|0;b=b|0;c=c|0;return ea(34,a|0,b|0,c|0)|0}function dS(a,b,c){a=a|0;b=b|0;c=c|0;return ea(35,a|0,b|0,c|0)|0}function eS(a,b,c){a=a|0;b=b|0;c=c|0;return ea(36,a|0,b|0,c|0)|0}function fS(a,b,c){a=a|0;b=b|0;c=c|0;return ea(37,a|0,b|0,c|0)|0}function gS(a,b,c){a=a|0;b=b|0;c=c|0;return ea(38,a|0,b|0,c|0)|0}function hS(a,b,c){a=a|0;b=b|0;c=c|0;return ea(39,a|0,b|0,c|0)|0}function iS(a,b,c){a=a|0;b=b|0;c=c|0;return ea(40,a|0,b|0,c|0)|0}function jS(a,b,c){a=a|0;b=b|0;c=c|0;return ea(41,a|0,b|0,c|0)|0}function kS(a,b,c){a=a|0;b=b|0;c=c|0;return ea(42,a|0,b|0,c|0)|0}function lS(a,b,c){a=a|0;b=b|0;c=c|0;return ea(43,a|0,b|0,c|0)|0}function mS(a,b,c){a=a|0;b=b|0;c=c|0;return ea(44,a|0,b|0,c|0)|0}function nS(a,b,c){a=a|0;b=b|0;c=c|0;return ea(45,a|0,b|0,c|0)|0}function oS(a,b,c){a=a|0;b=b|0;c=c|0;return ea(46,a|0,b|0,c|0)|0}function pS(a,b,c){a=a|0;b=b|0;c=c|0;return ea(47,a|0,b|0,c|0)|0}function qS(a,b,c){a=a|0;b=b|0;c=c|0;return ea(48,a|0,b|0,c|0)|0}function rS(a,b,c){a=a|0;b=b|0;c=c|0;return ea(49,a|0,b|0,c|0)|0}function sS(a,b,c){a=a|0;b=b|0;c=c|0;return ea(50,a|0,b|0,c|0)|0}function tS(a,b,c){a=a|0;b=b|0;c=c|0;return ea(51,a|0,b|0,c|0)|0}function uS(a,b,c){a=a|0;b=b|0;c=c|0;return ea(52,a|0,b|0,c|0)|0}function vS(a,b,c){a=a|0;b=b|0;c=c|0;return ea(53,a|0,b|0,c|0)|0}function wS(a,b,c){a=a|0;b=b|0;c=c|0;return ea(54,a|0,b|0,c|0)|0}function xS(a,b,c){a=a|0;b=b|0;c=c|0;return ea(55,a|0,b|0,c|0)|0}function yS(a,b,c){a=a|0;b=b|0;c=c|0;return ea(56,a|0,b|0,c|0)|0}function zS(a,b,c){a=a|0;b=b|0;c=c|0;return ea(57,a|0,b|0,c|0)|0}function AS(a,b,c){a=a|0;b=b|0;c=c|0;return ea(58,a|0,b|0,c|0)|0}function BS(a,b,c){a=a|0;b=b|0;c=c|0;return ea(59,a|0,b|0,c|0)|0}function CS(a,b,c){a=a|0;b=b|0;c=c|0;return ea(60,a|0,b|0,c|0)|0}function DS(a,b,c){a=a|0;b=b|0;c=c|0;return ea(61,a|0,b|0,c|0)|0}function ES(a,b,c){a=a|0;b=b|0;c=c|0;return ea(62,a|0,b|0,c|0)|0}function FS(a,b,c){a=a|0;b=b|0;c=c|0;return ea(63,a|0,b|0,c|0)|0}function GS(a){a=a|0;return Pb[a&255]()|0}function HS(){return ga(0)|0}function IS(){return ga(1)|0}function JS(){return ga(2)|0}function KS(){return ga(3)|0}function LS(){return ga(4)|0}function MS(){return ga(5)|0}function NS(){return ga(6)|0}function OS(){return ga(7)|0}function PS(){return ga(8)|0}function QS(){return ga(9)|0}function RS(){return ga(10)|0}function SS(){return ga(11)|0}function TS(){return ga(12)|0}function US(){return ga(13)|0}function VS(){return ga(14)|0}function WS(){return ga(15)|0}function XS(){return ga(16)|0}function YS(){return ga(17)|0}function ZS(){return ga(18)|0}function _S(){return ga(19)|0}function $S(){return ga(20)|0}function aT(){return ga(21)|0}function bT(){return ga(22)|0}function cT(){return ga(23)|0}function dT(){return ga(24)|0}function eT(){return ga(25)|0}function fT(){return ga(26)|0}function gT(){return ga(27)|0}function hT(){return ga(28)|0}function iT(){return ga(29)|0}function jT(){return ga(30)|0}function kT(){return ga(31)|0}function lT(){return ga(32)|0}function mT(){return ga(33)|0}function nT(){return ga(34)|0}function oT(){return ga(35)|0}function pT(){return ga(36)|0}function qT(){return ga(37)|0}function rT(){return ga(38)|0}function sT(){return ga(39)|0}function tT(){return ga(40)|0}function uT(){return ga(41)|0}function vT(){return ga(42)|0}function wT(){return ga(43)|0}function xT(){return ga(44)|0}function yT(){return ga(45)|0}function zT(){return ga(46)|0}function AT(){return ga(47)|0}function BT(){return ga(48)|0}function CT(){return ga(49)|0}function DT(){return ga(50)|0}function ET(){return ga(51)|0}function FT(){return ga(52)|0}function GT(){return ga(53)|0}function HT(){return ga(54)|0}function IT(){return ga(55)|0}function JT(){return ga(56)|0}function KT(){return ga(57)|0}function LT(){return ga(58)|0}function MT(){return ga(59)|0}function NT(){return ga(60)|0}function OT(){return ga(61)|0}function PT(){return ga(62)|0}function QT(){return ga(63)|0}function RT(a,b){a=a|0;b=b|0;Qb[a&255](b|0)}function ST(a){a=a|0;ia(0,a|0)}function TT(a){a=a|0;ia(1,a|0)}function UT(a){a=a|0;ia(2,a|0)}function VT(a){a=a|0;ia(3,a|0)}function WT(a){a=a|0;ia(4,a|0)}function XT(a){a=a|0;ia(5,a|0)}function YT(a){a=a|0;ia(6,a|0)}function ZT(a){a=a|0;ia(7,a|0)}function _T(a){a=a|0;ia(8,a|0)}function $T(a){a=a|0;ia(9,a|0)}function aU(a){a=a|0;ia(10,a|0)}function bU(a){a=a|0;ia(11,a|0)}function cU(a){a=a|0;ia(12,a|0)}function dU(a){a=a|0;ia(13,a|0)}function eU(a){a=a|0;ia(14,a|0)}function fU(a){a=a|0;ia(15,a|0)}function gU(a){a=a|0;ia(16,a|0)}function hU(a){a=a|0;ia(17,a|0)}function iU(a){a=a|0;ia(18,a|0)}function jU(a){a=a|0;ia(19,a|0)}function kU(a){a=a|0;ia(20,a|0)}function lU(a){a=a|0;ia(21,a|0)}function mU(a){a=a|0;ia(22,a|0)}function nU(a){a=a|0;ia(23,a|0)}function oU(a){a=a|0;ia(24,a|0)}function pU(a){a=a|0;ia(25,a|0)}function qU(a){a=a|0;ia(26,a|0)}function rU(a){a=a|0;ia(27,a|0)}function sU(a){a=a|0;ia(28,a|0)}function tU(a){a=a|0;ia(29,a|0)}function uU(a){a=a|0;ia(30,a|0)}function vU(a){a=a|0;ia(31,a|0)}function wU(a){a=a|0;ia(32,a|0)}function xU(a){a=a|0;ia(33,a|0)}function yU(a){a=a|0;ia(34,a|0)}function zU(a){a=a|0;ia(35,a|0)}function AU(a){a=a|0;ia(36,a|0)}function BU(a){a=a|0;ia(37,a|0)}function CU(a){a=a|0;ia(38,a|0)}function DU(a){a=a|0;ia(39,a|0)}function EU(a){a=a|0;ia(40,a|0)}function FU(a){a=a|0;ia(41,a|0)}function GU(a){a=a|0;ia(42,a|0)}function HU(a){a=a|0;ia(43,a|0)}function IU(a){a=a|0;ia(44,a|0)}function JU(a){a=a|0;ia(45,a|0)}function KU(a){a=a|0;ia(46,a|0)}function LU(a){a=a|0;ia(47,a|0)}function MU(a){a=a|0;ia(48,a|0)}function NU(a){a=a|0;ia(49,a|0)}function OU(a){a=a|0;ia(50,a|0)}function PU(a){a=a|0;ia(51,a|0)}function QU(a){a=a|0;ia(52,a|0)}function RU(a){a=a|0;ia(53,a|0)}function SU(a){a=a|0;ia(54,a|0)}function TU(a){a=a|0;ia(55,a|0)}function UU(a){a=a|0;ia(56,a|0)}function VU(a){a=a|0;ia(57,a|0)}function WU(a){a=a|0;ia(58,a|0)}function XU(a){a=a|0;ia(59,a|0)}function YU(a){a=a|0;ia(60,a|0)}function ZU(a){a=a|0;ia(61,a|0)}function _U(a){a=a|0;ia(62,a|0)}function $U(a){a=a|0;ia(63,a|0)}function aV(a,b,c){a=a|0;b=b|0;c=c|0;Rb[a&255](b|0,c|0)}function bV(a,b){a=a|0;b=b|0;ka(0,a|0,b|0)}function cV(a,b){a=a|0;b=b|0;ka(1,a|0,b|0)}function dV(a,b){a=a|0;b=b|0;ka(2,a|0,b|0)}function eV(a,b){a=a|0;b=b|0;ka(3,a|0,b|0)}function fV(a,b){a=a|0;b=b|0;ka(4,a|0,b|0)}function gV(a,b){a=a|0;b=b|0;ka(5,a|0,b|0)}function hV(a,b){a=a|0;b=b|0;ka(6,a|0,b|0)}function iV(a,b){a=a|0;b=b|0;ka(7,a|0,b|0)}function jV(a,b){a=a|0;b=b|0;ka(8,a|0,b|0)}function kV(a,b){a=a|0;b=b|0;ka(9,a|0,b|0)}function lV(a,b){a=a|0;b=b|0;ka(10,a|0,b|0)}function mV(a,b){a=a|0;b=b|0;ka(11,a|0,b|0)}function nV(a,b){a=a|0;b=b|0;ka(12,a|0,b|0)}function oV(a,b){a=a|0;b=b|0;ka(13,a|0,b|0)}function pV(a,b){a=a|0;b=b|0;ka(14,a|0,b|0)}function qV(a,b){a=a|0;b=b|0;ka(15,a|0,b|0)}function rV(a,b){a=a|0;b=b|0;ka(16,a|0,b|0)}function sV(a,b){a=a|0;b=b|0;ka(17,a|0,b|0)}function tV(a,b){a=a|0;b=b|0;ka(18,a|0,b|0)}function uV(a,b){a=a|0;b=b|0;ka(19,a|0,b|0)}function vV(a,b){a=a|0;b=b|0;ka(20,a|0,b|0)}function wV(a,b){a=a|0;b=b|0;ka(21,a|0,b|0)}function xV(a,b){a=a|0;b=b|0;ka(22,a|0,b|0)}function yV(a,b){a=a|0;b=b|0;ka(23,a|0,b|0)}function zV(a,b){a=a|0;b=b|0;ka(24,a|0,b|0)}function AV(a,b){a=a|0;b=b|0;ka(25,a|0,b|0)}function BV(a,b){a=a|0;b=b|0;ka(26,a|0,b|0)}function CV(a,b){a=a|0;b=b|0;ka(27,a|0,b|0)}function DV(a,b){a=a|0;b=b|0;ka(28,a|0,b|0)}function EV(a,b){a=a|0;b=b|0;ka(29,a|0,b|0)}function FV(a,b){a=a|0;b=b|0;ka(30,a|0,b|0)}function GV(a,b){a=a|0;b=b|0;ka(31,a|0,b|0)}function HV(a,b){a=a|0;b=b|0;ka(32,a|0,b|0)}function IV(a,b){a=a|0;b=b|0;ka(33,a|0,b|0)}function JV(a,b){a=a|0;b=b|0;ka(34,a|0,b|0)}function KV(a,b){a=a|0;b=b|0;ka(35,a|0,b|0)}function LV(a,b){a=a|0;b=b|0;ka(36,a|0,b|0)}function MV(a,b){a=a|0;b=b|0;ka(37,a|0,b|0)}function NV(a,b){a=a|0;b=b|0;ka(38,a|0,b|0)}function OV(a,b){a=a|0;b=b|0;ka(39,a|0,b|0)}function PV(a,b){a=a|0;b=b|0;ka(40,a|0,b|0)}function QV(a,b){a=a|0;b=b|0;ka(41,a|0,b|0)}function RV(a,b){a=a|0;b=b|0;ka(42,a|0,b|0)}function SV(a,b){a=a|0;b=b|0;ka(43,a|0,b|0)}function TV(a,b){a=a|0;b=b|0;ka(44,a|0,b|0)}function UV(a,b){a=a|0;b=b|0;ka(45,a|0,b|0)}function VV(a,b){a=a|0;b=b|0;ka(46,a|0,b|0)}function WV(a,b){a=a|0;b=b|0;ka(47,a|0,b|0)}function XV(a,b){a=a|0;b=b|0;ka(48,a|0,b|0)}function YV(a,b){a=a|0;b=b|0;ka(49,a|0,b|0)}function ZV(a,b){a=a|0;b=b|0;ka(50,a|0,b|0)}function _V(a,b){a=a|0;b=b|0;ka(51,a|0,b|0)}function $V(a,b){a=a|0;b=b|0;ka(52,a|0,b|0)}function aW(a,b){a=a|0;b=b|0;ka(53,a|0,b|0)}function bW(a,b){a=a|0;b=b|0;ka(54,a|0,b|0)}function cW(a,b){a=a|0;b=b|0;ka(55,a|0,b|0)}function dW(a,b){a=a|0;b=b|0;ka(56,a|0,b|0)}function eW(a,b){a=a|0;b=b|0;ka(57,a|0,b|0)}function fW(a,b){a=a|0;b=b|0;ka(58,a|0,b|0)}function gW(a,b){a=a|0;b=b|0;ka(59,a|0,b|0)}function hW(a,b){a=a|0;b=b|0;ka(60,a|0,b|0)}function iW(a,b){a=a|0;b=b|0;ka(61,a|0,b|0)}function jW(a,b){a=a|0;b=b|0;ka(62,a|0,b|0)}function kW(a,b){a=a|0;b=b|0;ka(63,a|0,b|0)}function lW(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Sb[a&255](b|0,c|0,d|0,e|0,f|0,g|0)|0}function mW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(0,a|0,b|0,c|0,d|0,e|0,f|0)|0}function nW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(1,a|0,b|0,c|0,d|0,e|0,f|0)|0}function oW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(2,a|0,b|0,c|0,d|0,e|0,f|0)|0}function pW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(3,a|0,b|0,c|0,d|0,e|0,f|0)|0}function qW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(4,a|0,b|0,c|0,d|0,e|0,f|0)|0}function rW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(5,a|0,b|0,c|0,d|0,e|0,f|0)|0}function sW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(6,a|0,b|0,c|0,d|0,e|0,f|0)|0}function tW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(7,a|0,b|0,c|0,d|0,e|0,f|0)|0}function uW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(8,a|0,b|0,c|0,d|0,e|0,f|0)|0}function vW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(9,a|0,b|0,c|0,d|0,e|0,f|0)|0}function wW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(10,a|0,b|0,c|0,d|0,e|0,f|0)|0}function xW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(11,a|0,b|0,c|0,d|0,e|0,f|0)|0}function yW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(12,a|0,b|0,c|0,d|0,e|0,f|0)|0}function zW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(13,a|0,b|0,c|0,d|0,e|0,f|0)|0}function AW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(14,a|0,b|0,c|0,d|0,e|0,f|0)|0}function BW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(15,a|0,b|0,c|0,d|0,e|0,f|0)|0}function CW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(16,a|0,b|0,c|0,d|0,e|0,f|0)|0}function DW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(17,a|0,b|0,c|0,d|0,e|0,f|0)|0}function EW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(18,a|0,b|0,c|0,d|0,e|0,f|0)|0}function FW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(19,a|0,b|0,c|0,d|0,e|0,f|0)|0}function GW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(20,a|0,b|0,c|0,d|0,e|0,f|0)|0}function HW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(21,a|0,b|0,c|0,d|0,e|0,f|0)|0}function IW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(22,a|0,b|0,c|0,d|0,e|0,f|0)|0}function JW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(23,a|0,b|0,c|0,d|0,e|0,f|0)|0}function KW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(24,a|0,b|0,c|0,d|0,e|0,f|0)|0}function LW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(25,a|0,b|0,c|0,d|0,e|0,f|0)|0}function MW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(26,a|0,b|0,c|0,d|0,e|0,f|0)|0}function NW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(27,a|0,b|0,c|0,d|0,e|0,f|0)|0}function OW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(28,a|0,b|0,c|0,d|0,e|0,f|0)|0}function PW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(29,a|0,b|0,c|0,d|0,e|0,f|0)|0}function QW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(30,a|0,b|0,c|0,d|0,e|0,f|0)|0}function RW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(31,a|0,b|0,c|0,d|0,e|0,f|0)|0}function SW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(32,a|0,b|0,c|0,d|0,e|0,f|0)|0}function TW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(33,a|0,b|0,c|0,d|0,e|0,f|0)|0}function UW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(34,a|0,b|0,c|0,d|0,e|0,f|0)|0}function VW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(35,a|0,b|0,c|0,d|0,e|0,f|0)|0}function WW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(36,a|0,b|0,c|0,d|0,e|0,f|0)|0}function XW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(37,a|0,b|0,c|0,d|0,e|0,f|0)|0}function YW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(38,a|0,b|0,c|0,d|0,e|0,f|0)|0}function ZW(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(39,a|0,b|0,c|0,d|0,e|0,f|0)|0}function _W(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(40,a|0,b|0,c|0,d|0,e|0,f|0)|0}function $W(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(41,a|0,b|0,c|0,d|0,e|0,f|0)|0}function aX(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(42,a|0,b|0,c|0,d|0,e|0,f|0)|0}function bX(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(43,a|0,b|0,c|0,d|0,e|0,f|0)|0}function cX(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(44,a|0,b|0,c|0,d|0,e|0,f|0)|0}function dX(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(45,a|0,b|0,c|0,d|0,e|0,f|0)|0}function eX(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(46,a|0,b|0,c|0,d|0,e|0,f|0)|0}function fX(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(47,a|0,b|0,c|0,d|0,e|0,f|0)|0}function gX(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(48,a|0,b|0,c|0,d|0,e|0,f|0)|0}function hX(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(49,a|0,b|0,c|0,d|0,e|0,f|0)|0}function iX(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(50,a|0,b|0,c|0,d|0,e|0,f|0)|0}function jX(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(51,a|0,b|0,c|0,d|0,e|0,f|0)|0}function kX(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(52,a|0,b|0,c|0,d|0,e|0,f|0)|0}function lX(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(53,a|0,b|0,c|0,d|0,e|0,f|0)|0}function mX(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(54,a|0,b|0,c|0,d|0,e|0,f|0)|0}function nX(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(55,a|0,b|0,c|0,d|0,e|0,f|0)|0}function oX(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(56,a|0,b|0,c|0,d|0,e|0,f|0)|0}function pX(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(57,a|0,b|0,c|0,d|0,e|0,f|0)|0}function qX(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(58,a|0,b|0,c|0,d|0,e|0,f|0)|0}function rX(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(59,a|0,b|0,c|0,d|0,e|0,f|0)|0}function sX(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(60,a|0,b|0,c|0,d|0,e|0,f|0)|0}function tX(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(61,a|0,b|0,c|0,d|0,e|0,f|0)|0}function uX(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(62,a|0,b|0,c|0,d|0,e|0,f|0)|0}function vX(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return ma(63,a|0,b|0,c|0,d|0,e|0,f|0)|0}function wX(a,b){a=a|0;b=b|0;return Tb[a&255](b|0)|0}function xX(a){a=a|0;return oa(0,a|0)|0}function yX(a){a=a|0;return oa(1,a|0)|0}function zX(a){a=a|0;return oa(2,a|0)|0}function AX(a){a=a|0;return oa(3,a|0)|0}function BX(a){a=a|0;return oa(4,a|0)|0}function CX(a){a=a|0;return oa(5,a|0)|0}function DX(a){a=a|0;return oa(6,a|0)|0}function EX(a){a=a|0;return oa(7,a|0)|0}function FX(a){a=a|0;return oa(8,a|0)|0}function GX(a){a=a|0;return oa(9,a|0)|0}function HX(a){a=a|0;return oa(10,a|0)|0}function IX(a){a=a|0;return oa(11,a|0)|0}function JX(a){a=a|0;return oa(12,a|0)|0}function KX(a){a=a|0;return oa(13,a|0)|0}function LX(a){a=a|0;return oa(14,a|0)|0}function MX(a){a=a|0;return oa(15,a|0)|0}function NX(a){a=a|0;return oa(16,a|0)|0}function OX(a){a=a|0;return oa(17,a|0)|0}function PX(a){a=a|0;return oa(18,a|0)|0}function QX(a){a=a|0;return oa(19,a|0)|0}function RX(a){a=a|0;return oa(20,a|0)|0}function SX(a){a=a|0;return oa(21,a|0)|0}function TX(a){a=a|0;return oa(22,a|0)|0}function UX(a){a=a|0;return oa(23,a|0)|0}function VX(a){a=a|0;return oa(24,a|0)|0}function WX(a){a=a|0;return oa(25,a|0)|0}function XX(a){a=a|0;return oa(26,a|0)|0}function YX(a){a=a|0;return oa(27,a|0)|0}function ZX(a){a=a|0;return oa(28,a|0)|0}function _X(a){a=a|0;return oa(29,a|0)|0}function $X(a){a=a|0;return oa(30,a|0)|0}function aY(a){a=a|0;return oa(31,a|0)|0}function bY(a){a=a|0;return oa(32,a|0)|0}function cY(a){a=a|0;return oa(33,a|0)|0}function dY(a){a=a|0;return oa(34,a|0)|0}function eY(a){a=a|0;return oa(35,a|0)|0}function fY(a){a=a|0;return oa(36,a|0)|0}function gY(a){a=a|0;return oa(37,a|0)|0}function hY(a){a=a|0;return oa(38,a|0)|0}function iY(a){a=a|0;return oa(39,a|0)|0}function jY(a){a=a|0;return oa(40,a|0)|0}function kY(a){a=a|0;return oa(41,a|0)|0}function lY(a){a=a|0;return oa(42,a|0)|0}function mY(a){a=a|0;return oa(43,a|0)|0}function nY(a){a=a|0;return oa(44,a|0)|0}function oY(a){a=a|0;return oa(45,a|0)|0}function pY(a){a=a|0;return oa(46,a|0)|0}function qY(a){a=a|0;return oa(47,a|0)|0}function rY(a){a=a|0;return oa(48,a|0)|0}function sY(a){a=a|0;return oa(49,a|0)|0}function tY(a){a=a|0;return oa(50,a|0)|0}function uY(a){a=a|0;return oa(51,a|0)|0}function vY(a){a=a|0;return oa(52,a|0)|0}function wY(a){a=a|0;return oa(53,a|0)|0}function xY(a){a=a|0;return oa(54,a|0)|0}function yY(a){a=a|0;return oa(55,a|0)|0}function zY(a){a=a|0;return oa(56,a|0)|0}function AY(a){a=a|0;return oa(57,a|0)|0}function BY(a){a=a|0;return oa(58,a|0)|0}function CY(a){a=a|0;return oa(59,a|0)|0}function DY(a){a=a|0;return oa(60,a|0)|0}function EY(a){a=a|0;return oa(61,a|0)|0}function FY(a){a=a|0;return oa(62,a|0)|0}function GY(a){a=a|0;return oa(63,a|0)|0}function HY(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ub[a&255](b|0,c|0,d|0)}function IY(a,b,c){a=a|0;b=b|0;c=c|0;qa(0,a|0,b|0,c|0)}function JY(a,b,c){a=a|0;b=b|0;c=c|0;qa(1,a|0,b|0,c|0)}function KY(a,b,c){a=a|0;b=b|0;c=c|0;qa(2,a|0,b|0,c|0)}function LY(a,b,c){a=a|0;b=b|0;c=c|0;qa(3,a|0,b|0,c|0)}function MY(a,b,c){a=a|0;b=b|0;c=c|0;qa(4,a|0,b|0,c|0)}function NY(a,b,c){a=a|0;b=b|0;c=c|0;qa(5,a|0,b|0,c|0)}function OY(a,b,c){a=a|0;b=b|0;c=c|0;qa(6,a|0,b|0,c|0)}function PY(a,b,c){a=a|0;b=b|0;c=c|0;qa(7,a|0,b|0,c|0)}function QY(a,b,c){a=a|0;b=b|0;c=c|0;qa(8,a|0,b|0,c|0)}function RY(a,b,c){a=a|0;b=b|0;c=c|0;qa(9,a|0,b|0,c|0)}function SY(a,b,c){a=a|0;b=b|0;c=c|0;qa(10,a|0,b|0,c|0)}function TY(a,b,c){a=a|0;b=b|0;c=c|0;qa(11,a|0,b|0,c|0)}function UY(a,b,c){a=a|0;b=b|0;c=c|0;qa(12,a|0,b|0,c|0)}function VY(a,b,c){a=a|0;b=b|0;c=c|0;qa(13,a|0,b|0,c|0)}function WY(a,b,c){a=a|0;b=b|0;c=c|0;qa(14,a|0,b|0,c|0)}function XY(a,b,c){a=a|0;b=b|0;c=c|0;qa(15,a|0,b|0,c|0)}function YY(a,b,c){a=a|0;b=b|0;c=c|0;qa(16,a|0,b|0,c|0)}function ZY(a,b,c){a=a|0;b=b|0;c=c|0;qa(17,a|0,b|0,c|0)}function _Y(a,b,c){a=a|0;b=b|0;c=c|0;qa(18,a|0,b|0,c|0)}function $Y(a,b,c){a=a|0;b=b|0;c=c|0;qa(19,a|0,b|0,c|0)}function aZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(20,a|0,b|0,c|0)}function bZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(21,a|0,b|0,c|0)}function cZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(22,a|0,b|0,c|0)}function dZ(a,b,c){
  94. a=a|0;b=b|0;c=c|0;qa(23,a|0,b|0,c|0)}function eZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(24,a|0,b|0,c|0)}function fZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(25,a|0,b|0,c|0)}function gZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(26,a|0,b|0,c|0)}function hZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(27,a|0,b|0,c|0)}function iZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(28,a|0,b|0,c|0)}function jZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(29,a|0,b|0,c|0)}function kZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(30,a|0,b|0,c|0)}function lZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(31,a|0,b|0,c|0)}function mZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(32,a|0,b|0,c|0)}function nZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(33,a|0,b|0,c|0)}function oZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(34,a|0,b|0,c|0)}function pZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(35,a|0,b|0,c|0)}function qZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(36,a|0,b|0,c|0)}function rZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(37,a|0,b|0,c|0)}function sZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(38,a|0,b|0,c|0)}function tZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(39,a|0,b|0,c|0)}function uZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(40,a|0,b|0,c|0)}function vZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(41,a|0,b|0,c|0)}function wZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(42,a|0,b|0,c|0)}function xZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(43,a|0,b|0,c|0)}function yZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(44,a|0,b|0,c|0)}function zZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(45,a|0,b|0,c|0)}function AZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(46,a|0,b|0,c|0)}function BZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(47,a|0,b|0,c|0)}function CZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(48,a|0,b|0,c|0)}function DZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(49,a|0,b|0,c|0)}function EZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(50,a|0,b|0,c|0)}function FZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(51,a|0,b|0,c|0)}function GZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(52,a|0,b|0,c|0)}function HZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(53,a|0,b|0,c|0)}function IZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(54,a|0,b|0,c|0)}function JZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(55,a|0,b|0,c|0)}function KZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(56,a|0,b|0,c|0)}function LZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(57,a|0,b|0,c|0)}function MZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(58,a|0,b|0,c|0)}function NZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(59,a|0,b|0,c|0)}function OZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(60,a|0,b|0,c|0)}function PZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(61,a|0,b|0,c|0)}function QZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(62,a|0,b|0,c|0)}function RZ(a,b,c){a=a|0;b=b|0;c=c|0;qa(63,a|0,b|0,c|0)}function SZ(a){a=a|0;Vb[a&255]()}function TZ(){sa(0)}function UZ(){sa(1)}function VZ(){sa(2)}function WZ(){sa(3)}function XZ(){sa(4)}function YZ(){sa(5)}function ZZ(){sa(6)}function _Z(){sa(7)}function $Z(){sa(8)}function a_(){sa(9)}function b_(){sa(10)}function c_(){sa(11)}function d_(){sa(12)}function e_(){sa(13)}function f_(){sa(14)}function g_(){sa(15)}function h_(){sa(16)}function i_(){sa(17)}function j_(){sa(18)}function k_(){sa(19)}function l_(){sa(20)}function m_(){sa(21)}function n_(){sa(22)}function o_(){sa(23)}function p_(){sa(24)}function q_(){sa(25)}function r_(){sa(26)}function s_(){sa(27)}function t_(){sa(28)}function u_(){sa(29)}function v_(){sa(30)}function w_(){sa(31)}function x_(){sa(32)}function y_(){sa(33)}function z_(){sa(34)}function A_(){sa(35)}function B_(){sa(36)}function C_(){sa(37)}function D_(){sa(38)}function E_(){sa(39)}function F_(){sa(40)}function G_(){sa(41)}function H_(){sa(42)}function I_(){sa(43)}function J_(){sa(44)}function K_(){sa(45)}function L_(){sa(46)}function M_(){sa(47)}function N_(){sa(48)}function O_(){sa(49)}function P_(){sa(50)}function Q_(){sa(51)}function R_(){sa(52)}function S_(){sa(53)}function T_(){sa(54)}function U_(){sa(55)}function V_(){sa(56)}function W_(){sa(57)}function X_(){sa(58)}function Y_(){sa(59)}function Z_(){sa(60)}function __(){sa(61)}function $_(){sa(62)}function a$(){sa(63)}function b$(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Wb[a&255](b|0,c|0,d|0,e|0)|0}function c$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(0,a|0,b|0,c|0,d|0)|0}function d$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(1,a|0,b|0,c|0,d|0)|0}function e$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(2,a|0,b|0,c|0,d|0)|0}function f$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(3,a|0,b|0,c|0,d|0)|0}function g$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(4,a|0,b|0,c|0,d|0)|0}function h$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(5,a|0,b|0,c|0,d|0)|0}function i$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(6,a|0,b|0,c|0,d|0)|0}function j$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(7,a|0,b|0,c|0,d|0)|0}function k$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(8,a|0,b|0,c|0,d|0)|0}function l$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(9,a|0,b|0,c|0,d|0)|0}function m$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(10,a|0,b|0,c|0,d|0)|0}function n$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(11,a|0,b|0,c|0,d|0)|0}function o$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(12,a|0,b|0,c|0,d|0)|0}function p$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(13,a|0,b|0,c|0,d|0)|0}function q$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(14,a|0,b|0,c|0,d|0)|0}function r$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(15,a|0,b|0,c|0,d|0)|0}function s$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(16,a|0,b|0,c|0,d|0)|0}function t$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(17,a|0,b|0,c|0,d|0)|0}function u$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(18,a|0,b|0,c|0,d|0)|0}function v$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(19,a|0,b|0,c|0,d|0)|0}function w$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(20,a|0,b|0,c|0,d|0)|0}function x$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(21,a|0,b|0,c|0,d|0)|0}function y$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(22,a|0,b|0,c|0,d|0)|0}function z$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(23,a|0,b|0,c|0,d|0)|0}function A$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(24,a|0,b|0,c|0,d|0)|0}function B$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(25,a|0,b|0,c|0,d|0)|0}function C$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(26,a|0,b|0,c|0,d|0)|0}function D$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(27,a|0,b|0,c|0,d|0)|0}function E$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(28,a|0,b|0,c|0,d|0)|0}function F$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(29,a|0,b|0,c|0,d|0)|0}function G$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(30,a|0,b|0,c|0,d|0)|0}function H$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(31,a|0,b|0,c|0,d|0)|0}function I$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(32,a|0,b|0,c|0,d|0)|0}function J$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(33,a|0,b|0,c|0,d|0)|0}function K$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(34,a|0,b|0,c|0,d|0)|0}function L$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(35,a|0,b|0,c|0,d|0)|0}function M$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(36,a|0,b|0,c|0,d|0)|0}function N$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(37,a|0,b|0,c|0,d|0)|0}function O$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(38,a|0,b|0,c|0,d|0)|0}function P$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(39,a|0,b|0,c|0,d|0)|0}function Q$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(40,a|0,b|0,c|0,d|0)|0}function R$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(41,a|0,b|0,c|0,d|0)|0}function S$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(42,a|0,b|0,c|0,d|0)|0}function T$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(43,a|0,b|0,c|0,d|0)|0}function U$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(44,a|0,b|0,c|0,d|0)|0}function V$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(45,a|0,b|0,c|0,d|0)|0}function W$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(46,a|0,b|0,c|0,d|0)|0}function X$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(47,a|0,b|0,c|0,d|0)|0}function Y$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(48,a|0,b|0,c|0,d|0)|0}function Z$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(49,a|0,b|0,c|0,d|0)|0}function _$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(50,a|0,b|0,c|0,d|0)|0}function $$(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(51,a|0,b|0,c|0,d|0)|0}function a0(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(52,a|0,b|0,c|0,d|0)|0}function b0(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(53,a|0,b|0,c|0,d|0)|0}function c0(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(54,a|0,b|0,c|0,d|0)|0}function d0(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(55,a|0,b|0,c|0,d|0)|0}function e0(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(56,a|0,b|0,c|0,d|0)|0}function f0(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(57,a|0,b|0,c|0,d|0)|0}function g0(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(58,a|0,b|0,c|0,d|0)|0}function h0(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(59,a|0,b|0,c|0,d|0)|0}function i0(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(60,a|0,b|0,c|0,d|0)|0}function j0(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(61,a|0,b|0,c|0,d|0)|0}function k0(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(62,a|0,b|0,c|0,d|0)|0}function l0(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ua(63,a|0,b|0,c|0,d|0)|0}function m0(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Xb[a&255](b|0,c|0,d|0,e|0,f|0,g|0)}function n0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(0,a|0,b|0,c|0,d|0,e|0,f|0)}function o0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(1,a|0,b|0,c|0,d|0,e|0,f|0)}function p0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(2,a|0,b|0,c|0,d|0,e|0,f|0)}function q0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(3,a|0,b|0,c|0,d|0,e|0,f|0)}function r0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(4,a|0,b|0,c|0,d|0,e|0,f|0)}function s0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(5,a|0,b|0,c|0,d|0,e|0,f|0)}function t0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(6,a|0,b|0,c|0,d|0,e|0,f|0)}function u0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(7,a|0,b|0,c|0,d|0,e|0,f|0)}function v0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(8,a|0,b|0,c|0,d|0,e|0,f|0)}function w0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(9,a|0,b|0,c|0,d|0,e|0,f|0)}function x0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(10,a|0,b|0,c|0,d|0,e|0,f|0)}function y0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(11,a|0,b|0,c|0,d|0,e|0,f|0)}function z0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(12,a|0,b|0,c|0,d|0,e|0,f|0)}function A0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(13,a|0,b|0,c|0,d|0,e|0,f|0)}function B0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(14,a|0,b|0,c|0,d|0,e|0,f|0)}function C0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(15,a|0,b|0,c|0,d|0,e|0,f|0)}function D0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(16,a|0,b|0,c|0,d|0,e|0,f|0)}function E0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(17,a|0,b|0,c|0,d|0,e|0,f|0)}function F0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(18,a|0,b|0,c|0,d|0,e|0,f|0)}function G0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(19,a|0,b|0,c|0,d|0,e|0,f|0)}function H0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(20,a|0,b|0,c|0,d|0,e|0,f|0)}function I0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(21,a|0,b|0,c|0,d|0,e|0,f|0)}function J0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(22,a|0,b|0,c|0,d|0,e|0,f|0)}function K0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(23,a|0,b|0,c|0,d|0,e|0,f|0)}function L0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(24,a|0,b|0,c|0,d|0,e|0,f|0)}function M0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(25,a|0,b|0,c|0,d|0,e|0,f|0)}function N0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(26,a|0,b|0,c|0,d|0,e|0,f|0)}function O0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(27,a|0,b|0,c|0,d|0,e|0,f|0)}function P0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(28,a|0,b|0,c|0,d|0,e|0,f|0)}function Q0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(29,a|0,b|0,c|0,d|0,e|0,f|0)}function R0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(30,a|0,b|0,c|0,d|0,e|0,f|0)}function S0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(31,a|0,b|0,c|0,d|0,e|0,f|0)}function T0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(32,a|0,b|0,c|0,d|0,e|0,f|0)}function U0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(33,a|0,b|0,c|0,d|0,e|0,f|0)}function V0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(34,a|0,b|0,c|0,d|0,e|0,f|0)}function W0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(35,a|0,b|0,c|0,d|0,e|0,f|0)}function X0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(36,a|0,b|0,c|0,d|0,e|0,f|0)}function Y0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(37,a|0,b|0,c|0,d|0,e|0,f|0)}function Z0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(38,a|0,b|0,c|0,d|0,e|0,f|0)}function _0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(39,a|0,b|0,c|0,d|0,e|0,f|0)}function $0(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(40,a|0,b|0,c|0,d|0,e|0,f|0)}function a1(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(41,a|0,b|0,c|0,d|0,e|0,f|0)}function b1(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(42,a|0,b|0,c|0,d|0,e|0,f|0)}function c1(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(43,a|0,b|0,c|0,d|0,e|0,f|0)}function d1(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(44,a|0,b|0,c|0,d|0,e|0,f|0)}function e1(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(45,a|0,b|0,c|0,d|0,e|0,f|0)}function f1(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(46,a|0,b|0,c|0,d|0,e|0,f|0)}function g1(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(47,a|0,b|0,c|0,d|0,e|0,f|0)}function h1(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(48,a|0,b|0,c|0,d|0,e|0,f|0)}function i1(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(49,a|0,b|0,c|0,d|0,e|0,f|0)}function j1(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(50,a|0,b|0,c|0,d|0,e|0,f|0)}function k1(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(51,a|0,b|0,c|0,d|0,e|0,f|0)}function l1(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(52,a|0,b|0,c|0,d|0,e|0,f|0)}function m1(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(53,a|0,b|0,c|0,d|0,e|0,f|0)}function n1(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(54,a|0,b|0,c|0,d|0,e|0,f|0)}function o1(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(55,a|0,b|0,c|0,d|0,e|0,f|0)}function p1(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(56,a|0,b|0,c|0,d|0,e|0,f|0)}function q1(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(57,a|0,b|0,c|0,d|0,e|0,f|0)}function r1(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(58,a|0,b|0,c|0,d|0,e|0,f|0)}function s1(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(59,a|0,b|0,c|0,d|0,e|0,f|0)}function t1(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(60,a|0,b|0,c|0,d|0,e|0,f|0)}function u1(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(61,a|0,b|0,c|0,d|0,e|0,f|0)}function v1(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(62,a|0,b|0,c|0,d|0,e|0,f|0)}function w1(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;wa(63,a|0,b|0,c|0,d|0,e|0,f|0)}function x1(a,b,c){a=a|0;b=b|0;c=c|0;return Yb[a&255](b|0,c|0)|0}function y1(a,b){a=a|0;b=b|0;return ya(0,a|0,b|0)|0}function z1(a,b){a=a|0;b=b|0;return ya(1,a|0,b|0)|0}function A1(a,b){a=a|0;b=b|0;return ya(2,a|0,b|0)|0}function B1(a,b){a=a|0;b=b|0;return ya(3,a|0,b|0)|0}function C1(a,b){a=a|0;b=b|0;return ya(4,a|0,b|0)|0}function D1(a,b){a=a|0;b=b|0;return ya(5,a|0,b|0)|0}function E1(a,b){a=a|0;b=b|0;return ya(6,a|0,b|0)|0}function F1(a,b){a=a|0;b=b|0;return ya(7,a|0,b|0)|0}function G1(a,b){a=a|0;b=b|0;return ya(8,a|0,b|0)|0}function H1(a,b){a=a|0;b=b|0;return ya(9,a|0,b|0)|0}function I1(a,b){a=a|0;b=b|0;return ya(10,a|0,b|0)|0}function J1(a,b){a=a|0;b=b|0;return ya(11,a|0,b|0)|0}function K1(a,b){a=a|0;b=b|0;return ya(12,a|0,b|0)|0}function L1(a,b){a=a|0;b=b|0;return ya(13,a|0,b|0)|0}function M1(a,b){a=a|0;b=b|0;return ya(14,a|0,b|0)|0}function N1(a,b){a=a|0;b=b|0;return ya(15,a|0,b|0)|0}function O1(a,b){a=a|0;b=b|0;return ya(16,a|0,b|0)|0}function P1(a,b){a=a|0;b=b|0;return ya(17,a|0,b|0)|0}function Q1(a,b){a=a|0;b=b|0;return ya(18,a|0,b|0)|0}function R1(a,b){a=a|0;b=b|0;return ya(19,a|0,b|0)|0}function S1(a,b){a=a|0;b=b|0;return ya(20,a|0,b|0)|0}function T1(a,b){a=a|0;b=b|0;return ya(21,a|0,b|0)|0}function U1(a,b){a=a|0;b=b|0;return ya(22,a|0,b|0)|0}function V1(a,b){a=a|0;b=b|0;return ya(23,a|0,b|0)|0}function W1(a,b){a=a|0;b=b|0;return ya(24,a|0,b|0)|0}function X1(a,b){a=a|0;b=b|0;return ya(25,a|0,b|0)|0}function Y1(a,b){a=a|0;b=b|0;return ya(26,a|0,b|0)|0}function Z1(a,b){a=a|0;b=b|0;return ya(27,a|0,b|0)|0}function _1(a,b){a=a|0;b=b|0;return ya(28,a|0,b|0)|0}function $1(a,b){a=a|0;b=b|0;return ya(29,a|0,b|0)|0}function a2(a,b){a=a|0;b=b|0;return ya(30,a|0,b|0)|0}function b2(a,b){a=a|0;b=b|0;return ya(31,a|0,b|0)|0}function c2(a,b){a=a|0;b=b|0;return ya(32,a|0,b|0)|0}function d2(a,b){a=a|0;b=b|0;return ya(33,a|0,b|0)|0}function e2(a,b){a=a|0;b=b|0;return ya(34,a|0,b|0)|0}function f2(a,b){a=a|0;b=b|0;return ya(35,a|0,b|0)|0}function g2(a,b){a=a|0;b=b|0;return ya(36,a|0,b|0)|0}function h2(a,b){a=a|0;b=b|0;return ya(37,a|0,b|0)|0}function i2(a,b){a=a|0;b=b|0;return ya(38,a|0,b|0)|0}function j2(a,b){a=a|0;b=b|0;return ya(39,a|0,b|0)|0}function k2(a,b){a=a|0;b=b|0;return ya(40,a|0,b|0)|0}function l2(a,b){a=a|0;b=b|0;return ya(41,a|0,b|0)|0}function m2(a,b){a=a|0;b=b|0;return ya(42,a|0,b|0)|0}function n2(a,b){a=a|0;b=b|0;return ya(43,a|0,b|0)|0}function o2(a,b){a=a|0;b=b|0;return ya(44,a|0,b|0)|0}function p2(a,b){a=a|0;b=b|0;return ya(45,a|0,b|0)|0}function q2(a,b){a=a|0;b=b|0;return ya(46,a|0,b|0)|0}function r2(a,b){a=a|0;b=b|0;return ya(47,a|0,b|0)|0}function s2(a,b){a=a|0;b=b|0;return ya(48,a|0,b|0)|0}function t2(a,b){a=a|0;b=b|0;return ya(49,a|0,b|0)|0}function u2(a,b){a=a|0;b=b|0;return ya(50,a|0,b|0)|0}function v2(a,b){a=a|0;b=b|0;return ya(51,a|0,b|0)|0}function w2(a,b){a=a|0;b=b|0;return ya(52,a|0,b|0)|0}function x2(a,b){a=a|0;b=b|0;return ya(53,a|0,b|0)|0}function y2(a,b){a=a|0;b=b|0;return ya(54,a|0,b|0)|0}function z2(a,b){a=a|0;b=b|0;return ya(55,a|0,b|0)|0}function A2(a,b){a=a|0;b=b|0;return ya(56,a|0,b|0)|0}function B2(a,b){a=a|0;b=b|0;return ya(57,a|0,b|0)|0}function C2(a,b){a=a|0;b=b|0;return ya(58,a|0,b|0)|0}function D2(a,b){a=a|0;b=b|0;return ya(59,a|0,b|0)|0}function E2(a,b){a=a|0;b=b|0;return ya(60,a|0,b|0)|0}function F2(a,b){a=a|0;b=b|0;return ya(61,a|0,b|0)|0}function G2(a,b){a=a|0;b=b|0;return ya(62,a|0,b|0)|0}function H2(a,b){a=a|0;b=b|0;return ya(63,a|0,b|0)|0}function I2(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Zb[a&255](b|0,c|0,d|0,e|0,f|0)|0}function J2(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(0,a|0,b|0,c|0,d|0,e|0)|0}function K2(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(1,a|0,b|0,c|0,d|0,e|0)|0}function L2(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(2,a|0,b|0,c|0,d|0,e|0)|0}function M2(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(3,a|0,b|0,c|0,d|0,e|0)|0}function N2(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(4,a|0,b|0,c|0,d|0,e|0)|0}function O2(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(5,a|0,b|0,c|0,d|0,e|0)|0}function P2(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(6,a|0,b|0,c|0,d|0,e|0)|0}function Q2(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(7,a|0,b|0,c|0,d|0,e|0)|0}function R2(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(8,a|0,b|0,c|0,d|0,e|0)|0}function S2(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(9,a|0,b|0,c|0,d|0,e|0)|0}function T2(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(10,a|0,b|0,c|0,d|0,e|0)|0}function U2(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(11,a|0,b|0,c|0,d|0,e|0)|0}function V2(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(12,a|0,b|0,c|0,d|0,e|0)|0}function W2(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(13,a|0,b|0,c|0,d|0,e|0)|0}function X2(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(14,a|0,b|0,c|0,d|0,e|0)|0}function Y2(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(15,a|0,b|0,c|0,d|0,e|0)|0}function Z2(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(16,a|0,b|0,c|0,d|0,e|0)|0}function _2(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(17,a|0,b|0,c|0,d|0,e|0)|0}function $2(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(18,a|0,b|0,c|0,d|0,e|0)|0}function a3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(19,a|0,b|0,c|0,d|0,e|0)|0}function b3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(20,a|0,b|0,c|0,d|0,e|0)|0}function c3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(21,a|0,b|0,c|0,d|0,e|0)|0}function d3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(22,a|0,b|0,c|0,d|0,e|0)|0}function e3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(23,a|0,b|0,c|0,d|0,e|0)|0}function f3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(24,a|0,b|0,c|0,d|0,e|0)|0}function g3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(25,a|0,b|0,c|0,d|0,e|0)|0}function h3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(26,a|0,b|0,c|0,d|0,e|0)|0}function i3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(27,a|0,b|0,c|0,d|0,e|0)|0}function j3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(28,a|0,b|0,c|0,d|0,e|0)|0}function k3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(29,a|0,b|0,c|0,d|0,e|0)|0}function l3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(30,a|0,b|0,c|0,d|0,e|0)|0}function m3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(31,a|0,b|0,c|0,d|0,e|0)|0}function n3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(32,a|0,b|0,c|0,d|0,e|0)|0}function o3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(33,a|0,b|0,c|0,d|0,e|0)|0}function p3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(34,a|0,b|0,c|0,d|0,e|0)|0}function q3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(35,a|0,b|0,c|0,d|0,e|0)|0}function r3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(36,a|0,b|0,c|0,d|0,e|0)|0}function s3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(37,a|0,b|0,c|0,d|0,e|0)|0}function t3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(38,a|0,b|0,c|0,d|0,e|0)|0}function u3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(39,a|0,b|0,c|0,d|0,e|0)|0}function v3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(40,a|0,b|0,c|0,d|0,e|0)|0}function w3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(41,a|0,b|0,c|0,d|0,e|0)|0}function x3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(42,a|0,b|0,c|0,d|0,e|0)|0}function y3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(43,a|0,b|0,c|0,d|0,e|0)|0}function z3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(44,a|0,b|0,c|0,d|0,e|0)|0}function A3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(45,a|0,b|0,c|0,d|0,e|0)|0}function B3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(46,a|0,b|0,c|0,d|0,e|0)|0}function C3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(47,a|0,b|0,c|0,d|0,e|0)|0}function D3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(48,a|0,b|0,c|0,d|0,e|0)|0}function E3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(49,a|0,b|0,c|0,d|0,e|0)|0}function F3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(50,a|0,b|0,c|0,d|0,e|0)|0}function G3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(51,a|0,b|0,c|0,d|0,e|0)|0}function H3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(52,a|0,b|0,c|0,d|0,e|0)|0}function I3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(53,a|0,b|0,c|0,d|0,e|0)|0}function J3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(54,a|0,b|0,c|0,d|0,e|0)|0}function K3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(55,a|0,b|0,c|0,d|0,e|0)|0}function L3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(56,a|0,b|0,c|0,d|0,e|0)|0}function M3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(57,a|0,b|0,c|0,d|0,e|0)|0}function N3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(58,a|0,b|0,c|0,d|0,e|0)|0}function O3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(59,a|0,b|0,c|0,d|0,e|0)|0}function P3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(60,a|0,b|0,c|0,d|0,e|0)|0}function Q3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(61,a|0,b|0,c|0,d|0,e|0)|0}function R3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(62,a|0,b|0,c|0,d|0,e|0)|0}function S3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Aa(63,a|0,b|0,c|0,d|0,e|0)|0}function T3(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;_b[a&255](b|0,c|0,d|0,e|0)}function U3(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(0,a|0,b|0,c|0,d|0)}function V3(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(1,a|0,b|0,c|0,d|0)}function W3(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(2,a|0,b|0,c|0,d|0)}function X3(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(3,a|0,b|0,c|0,d|0)}function Y3(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(4,a|0,b|0,c|0,d|0)}function Z3(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(5,a|0,b|0,c|0,d|0)}function _3(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(6,a|0,b|0,c|0,d|0)}function $3(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(7,a|0,b|0,c|0,d|0)}function a4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(8,a|0,b|0,c|0,d|0)}function b4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(9,a|0,b|0,c|0,d|0)}function c4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(10,a|0,b|0,c|0,d|0)}function d4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(11,a|0,b|0,c|0,d|0)}function e4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(12,a|0,b|0,c|0,d|0)}function f4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(13,a|0,b|0,c|0,d|0)}function g4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(14,a|0,b|0,c|0,d|0)}function h4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(15,a|0,b|0,c|0,d|0)}function i4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(16,a|0,b|0,c|0,d|0)}function j4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(17,a|0,b|0,c|0,d|0)}function k4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(18,a|0,b|0,c|0,d|0)}function l4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(19,a|0,b|0,c|0,d|0)}function m4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(20,a|0,b|0,c|0,d|0)}function n4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(21,a|0,b|0,c|0,d|0)}function o4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(22,a|0,b|0,c|0,d|0)}function p4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(23,a|0,b|0,c|0,d|0)}function q4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(24,a|0,b|0,c|0,d|0)}function r4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(25,a|0,b|0,c|0,d|0)}function s4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(26,a|0,b|0,c|0,d|0)}function t4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(27,a|0,b|0,c|0,d|0)}function u4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(28,a|0,b|0,c|0,d|0)}function v4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(29,a|0,b|0,c|0,d|0)}function w4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(30,a|0,b|0,c|0,d|0)}function x4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(31,a|0,b|0,c|0,d|0)}function y4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(32,a|0,b|0,c|0,d|0)}function z4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(33,a|0,b|0,c|0,d|0)}function A4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(34,a|0,b|0,c|0,d|0)}function B4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(35,a|0,b|0,c|0,d|0)}function C4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(36,a|0,b|0,c|0,d|0)}function D4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(37,a|0,b|0,c|0,d|0)}function E4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(38,a|0,b|0,c|0,d|0)}function F4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(39,a|0,b|0,c|0,d|0)}function G4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(40,a|0,b|0,c|0,d|0)}function H4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(41,a|0,b|0,c|0,d|0)}function I4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(42,a|0,b|0,c|0,d|0)}function J4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(43,a|0,b|0,c|0,d|0)}function K4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(44,a|0,b|0,c|0,d|0)}function L4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(45,a|0,b|0,c|0,d|0)}function M4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(46,a|0,b|0,c|0,d|0)}function N4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(47,a|0,b|0,c|0,d|0)}function O4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(48,a|0,b|0,c|0,d|0)}function P4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(49,a|0,b|0,c|0,d|0)}function Q4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(50,a|0,b|0,c|0,d|0)}function R4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(51,a|0,b|0,c|0,d|0)}function S4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(52,a|0,b|0,c|0,d|0)}function T4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(53,a|0,b|0,c|0,d|0)}function U4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(54,a|0,b|0,c|0,d|0)}function V4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(55,a|0,b|0,c|0,d|0)}function W4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(56,a|0,b|0,c|0,d|0)}function X4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(57,a|0,b|0,c|0,d|0)}function Y4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(58,a|0,b|0,c|0,d|0)}function Z4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(59,a|0,b|0,c|0,d|0)}function _4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(60,a|0,b|0,c|0,d|0)}function $4(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(61,a|0,b|0,c|0,d|0)}function a5(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(62,a|0,b|0,c|0,d|0)}function b5(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ca(63,a|0,b|0,c|0,d|0)}function c5(a,b,c){a=a|0;b=b|0;c=c|0;ba(0);return 0}function d5(){ba(1);return 0}function e5(a){a=a|0;ba(2)}function f5(a,b){a=a|0;b=b|0;ba(3)}function g5(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;ba(4);return 0}function h5(a){a=a|0;ba(5);return 0}function i5(a,b,c){a=a|0;b=b|0;c=c|0;ba(6)}function j5(){ba(7)}function k5(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ba(8);return 0}function l5(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;ba(9)}function m5(a,b){a=a|0;b=b|0;ba(10);return 0}function n5(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;ba(11);return 0}function o5(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;ba(12)}var Ob=[c5,c5,wR,c5,xR,c5,yR,c5,zR,c5,AR,c5,BR,c5,CR,c5,DR,c5,ER,c5,FR,c5,GR,c5,HR,c5,IR,c5,JR,c5,KR,c5,LR,c5,MR,c5,NR,c5,OR,c5,PR,c5,QR,c5,RR,c5,SR,c5,TR,c5,UR,c5,VR,c5,WR,c5,XR,c5,YR,c5,ZR,c5,_R,c5,$R,c5,aS,c5,bS,c5,cS,c5,dS,c5,eS,c5,fS,c5,gS,c5,hS,c5,iS,c5,jS,c5,kS,c5,lS,c5,mS,c5,nS,c5,oS,c5,pS,c5,qS,c5,rS,c5,sS,c5,tS,c5,uS,c5,vS,c5,wS,c5,xS,c5,yS,c5,zS,c5,AS,c5,BS,c5,CS,c5,DS,c5,ES,c5,FS,c5,RM,UM,XM,ZM,Tk,tk,Zp,nq,Cq,Fq,Fr,nu,qu,eN,kN,yN,UP,NQ,SQ,GQ,OQ,sQ,qQ,Ln,Gm,Jm,Hn,Fn,Pn,Wn,pF,qF,rF,rQ,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5,c5];var Pb=[d5,d5,HS,d5,IS,d5,JS,d5,KS,d5,LS,d5,MS,d5,NS,d5,OS,d5,PS,d5,QS,d5,RS,d5,SS,d5,TS,d5,US,d5,VS,d5,WS,d5,XS,d5,YS,d5,ZS,d5,_S,d5,$S,d5,aT,d5,bT,d5,cT,d5,dT,d5,eT,d5,fT,d5,gT,d5,hT,d5,iT,d5,jT,d5,kT,d5,lT,d5,mT,d5,nT,d5,oT,d5,pT,d5,qT,d5,rT,d5,sT,d5,tT,d5,uT,d5,vT,d5,wT,d5,xT,d5,yT,d5,zT,d5,AT,d5,BT,d5,CT,d5,DT,d5,ET,d5,FT,d5,GT,d5,HT,d5,IT,d5,JT,d5,KT,d5,LT,d5,MT,d5,NT,d5,OT,d5,PT,d5,QT,d5,KQ,AN,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5,d5];var Qb=[e5,e5,ST,e5,TT,e5,UT,e5,VT,e5,WT,e5,XT,e5,YT,e5,ZT,e5,_T,e5,$T,e5,aU,e5,bU,e5,cU,e5,dU,e5,eU,e5,fU,e5,gU,e5,hU,e5,iU,e5,jU,e5,kU,e5,lU,e5,mU,e5,nU,e5,oU,e5,pU,e5,qU,e5,rU,e5,sU,e5,tU,e5,uU,e5,vU,e5,wU,e5,xU,e5,yU,e5,zU,e5,AU,e5,BU,e5,CU,e5,DU,e5,EU,e5,FU,e5,GU,e5,HU,e5,IU,e5,JU,e5,KU,e5,LU,e5,MU,e5,NU,e5,OU,e5,PU,e5,QU,e5,RU,e5,SU,e5,TU,e5,UU,e5,VU,e5,WU,e5,XU,e5,YU,e5,ZU,e5,_U,e5,$U,e5,Wc,Xc,Zc,_c,$c,ad,mu,uu,vu,Ju,Ou,oN,ZO,zP,AP,BP,DP,FP,Kd,Uq,tj,hk,Kn,Oz,TQ,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5,e5];var Rb=[f5,f5,bV,f5,cV,f5,dV,f5,eV,f5,fV,f5,gV,f5,hV,f5,iV,f5,jV,f5,kV,f5,lV,f5,mV,f5,nV,f5,oV,f5,pV,f5,qV,f5,rV,f5,sV,f5,tV,f5,uV,f5,vV,f5,wV,f5,xV,f5,yV,f5,zV,f5,AV,f5,BV,f5,CV,f5,DV,f5,EV,f5,FV,f5,GV,f5,HV,f5,IV,f5,JV,f5,KV,f5,LV,f5,MV,f5,NV,f5,OV,f5,PV,f5,QV,f5,RV,f5,SV,f5,TV,f5,UV,f5,VV,f5,WV,f5,XV,f5,YV,f5,ZV,f5,_V,f5,$V,f5,aW,f5,bW,f5,cW,f5,dW,f5,eW,f5,fW,f5,gW,f5,hW,f5,iW,f5,jW,f5,kW,f5,ou,tu,Ry,Xx,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5,f5];
  95. var Sb=[g5,g5,mW,g5,nW,g5,oW,g5,pW,g5,qW,g5,rW,g5,sW,g5,tW,g5,uW,g5,vW,g5,wW,g5,xW,g5,yW,g5,zW,g5,AW,g5,BW,g5,CW,g5,DW,g5,EW,g5,FW,g5,GW,g5,HW,g5,IW,g5,JW,g5,KW,g5,LW,g5,MW,g5,NW,g5,OW,g5,PW,g5,QW,g5,RW,g5,SW,g5,TW,g5,UW,g5,VW,g5,WW,g5,XW,g5,YW,g5,ZW,g5,_W,g5,$W,g5,aX,g5,bX,g5,cX,g5,dX,g5,eX,g5,fX,g5,gX,g5,hX,g5,iX,g5,jX,g5,kX,g5,lX,g5,mX,g5,nX,g5,oX,g5,pX,g5,qX,g5,rX,g5,sX,g5,tX,g5,uX,g5,vX,g5,Jk,Kk,lk,bq,rq,uq,Jq,gQ,PK,QK,RK,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5,g5];var Tb=[h5,h5,xX,h5,yX,h5,zX,h5,AX,h5,BX,h5,CX,h5,DX,h5,EX,h5,FX,h5,GX,h5,HX,h5,IX,h5,JX,h5,KX,h5,LX,h5,MX,h5,NX,h5,OX,h5,PX,h5,QX,h5,RX,h5,SX,h5,TX,h5,UX,h5,VX,h5,WX,h5,XX,h5,YX,h5,ZX,h5,_X,h5,$X,h5,aY,h5,bY,h5,cY,h5,dY,h5,eY,h5,fY,h5,gY,h5,hY,h5,iY,h5,jY,h5,kY,h5,lY,h5,mY,h5,nY,h5,oY,h5,pY,h5,qY,h5,rY,h5,sY,h5,tY,h5,uY,h5,vY,h5,wY,h5,xY,h5,yY,h5,zY,h5,AY,h5,BY,h5,CY,h5,DY,h5,EY,h5,FY,h5,GY,h5,Mk,Nk,Pk,Rk,Sk,Wk,Xk,Yk,Zk,nk,pk,rk,sk,_p,aq,oq,qq,wq,yq,Aq,Bq,Gq,Iq,Cr,lu,pu,Iu,Lu,Mu,Nu,bN,lN,mN,FQ,RQ,PQ,RN,aO,pQ,ae,$f,Yq,fq,gq,kq,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5,h5];var Ub=[i5,i5,IY,i5,JY,i5,KY,i5,LY,i5,MY,i5,NY,i5,OY,i5,PY,i5,QY,i5,RY,i5,SY,i5,TY,i5,UY,i5,VY,i5,WY,i5,XY,i5,YY,i5,ZY,i5,_Y,i5,$Y,i5,aZ,i5,bZ,i5,cZ,i5,dZ,i5,eZ,i5,fZ,i5,gZ,i5,hZ,i5,iZ,i5,jZ,i5,kZ,i5,lZ,i5,mZ,i5,nZ,i5,oZ,i5,pZ,i5,qZ,i5,rZ,i5,sZ,i5,tZ,i5,uZ,i5,vZ,i5,wZ,i5,xZ,i5,yZ,i5,zZ,i5,AZ,i5,BZ,i5,CZ,i5,DZ,i5,EZ,i5,FZ,i5,GZ,i5,HZ,i5,IZ,i5,JZ,i5,KZ,i5,LZ,i5,MZ,i5,NZ,i5,OZ,i5,PZ,i5,QZ,i5,RZ,i5,jc,kc,lc,mc,nc,oc,pc,qc,rc,sc,tc,uc,vc,wc,xc,yc,zc,Ac,Bc,Cc,Dc,Ec,Fc,Gc,Hc,Ic,Jc,Kc,Lc,Mc,Nc,Oc,Pc,Qc,Rc,Sc,Tc,Uc,Vc,Yc,lm,mm,nm,om,ru,Nz,Jz,Iz,kB,tB,WO,XO,YO,_O,$O,aP,bP,cP,dP,eP,fP,gP,hP,iP,jP,kP,lP,mP,nP,oP,pP,qP,rP,sP,tP,uP,vP,wP,xP,yP,CP,EP,hC,vO,wO,xO,yO,zO,AO,BO,CO,DO,EO,FO,hi,Up,Nt,Pt,Qt,i5,i5,i5,i5,i5,i5,i5,i5,i5,i5,i5,i5,i5,i5,i5,i5,i5,i5,i5,i5,i5,i5,i5,i5,i5,i5,i5];var Vb=[j5,j5,TZ,j5,UZ,j5,VZ,j5,WZ,j5,XZ,j5,YZ,j5,ZZ,j5,_Z,j5,$Z,j5,a_,j5,b_,j5,c_,j5,d_,j5,e_,j5,f_,j5,g_,j5,h_,j5,i_,j5,j_,j5,k_,j5,l_,j5,m_,j5,n_,j5,o_,j5,p_,j5,q_,j5,r_,j5,s_,j5,t_,j5,u_,j5,v_,j5,w_,j5,x_,j5,y_,j5,z_,j5,A_,j5,B_,j5,C_,j5,D_,j5,E_,j5,F_,j5,G_,j5,H_,j5,I_,j5,J_,j5,K_,j5,L_,j5,M_,j5,N_,j5,O_,j5,P_,j5,Q_,j5,R_,j5,S_,j5,T_,j5,U_,j5,V_,j5,W_,j5,X_,j5,Y_,j5,Z_,j5,__,j5,$_,j5,a$,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5,j5];var Wb=[k5,k5,c$,k5,d$,k5,e$,k5,f$,k5,g$,k5,h$,k5,i$,k5,j$,k5,k$,k5,l$,k5,m$,k5,n$,k5,o$,k5,p$,k5,q$,k5,r$,k5,s$,k5,t$,k5,u$,k5,v$,k5,w$,k5,x$,k5,y$,k5,z$,k5,A$,k5,B$,k5,C$,k5,D$,k5,E$,k5,F$,k5,G$,k5,H$,k5,I$,k5,J$,k5,K$,k5,L$,k5,M$,k5,N$,k5,O$,k5,P$,k5,Q$,k5,R$,k5,S$,k5,T$,k5,U$,k5,V$,k5,W$,k5,X$,k5,Y$,k5,Z$,k5,_$,k5,$$,k5,a0,k5,b0,k5,c0,k5,d0,k5,e0,k5,f0,k5,g0,k5,h0,k5,i0,k5,j0,k5,k0,k5,l0,k5,SM,TM,Vk,$p,pq,Hq,nN,rN,Mh,ii,wj,Dj,Ek,Fk,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5,k5];var Xb=[l5,l5,n0,l5,o0,l5,p0,l5,q0,l5,r0,l5,s0,l5,t0,l5,u0,l5,v0,l5,w0,l5,x0,l5,y0,l5,z0,l5,A0,l5,B0,l5,C0,l5,D0,l5,E0,l5,F0,l5,G0,l5,H0,l5,I0,l5,J0,l5,K0,l5,L0,l5,M0,l5,N0,l5,O0,l5,P0,l5,Q0,l5,R0,l5,S0,l5,T0,l5,U0,l5,V0,l5,W0,l5,X0,l5,Y0,l5,Z0,l5,_0,l5,$0,l5,a1,l5,b1,l5,c1,l5,d1,l5,e1,l5,f1,l5,g1,l5,h1,l5,i1,l5,j1,l5,k1,l5,l1,l5,m1,l5,n1,l5,o1,l5,p1,l5,q1,l5,r1,l5,s1,l5,t1,l5,u1,l5,v1,l5,w1,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5,l5];var Yb=[m5,m5,y1,m5,z1,m5,A1,m5,B1,m5,C1,m5,D1,m5,E1,m5,F1,m5,G1,m5,H1,m5,I1,m5,J1,m5,K1,m5,L1,m5,M1,m5,N1,m5,O1,m5,P1,m5,Q1,m5,R1,m5,S1,m5,T1,m5,U1,m5,V1,m5,W1,m5,X1,m5,Y1,m5,Z1,m5,_1,m5,$1,m5,a2,m5,b2,m5,c2,m5,d2,m5,e2,m5,f2,m5,g2,m5,h2,m5,i2,m5,j2,m5,k2,m5,l2,m5,m2,m5,n2,m5,o2,m5,p2,m5,q2,m5,r2,m5,s2,m5,t2,m5,u2,m5,v2,m5,w2,m5,x2,m5,y2,m5,z2,m5,A2,m5,B2,m5,C2,m5,D2,m5,E2,m5,F2,m5,G2,m5,H2,m5,VM,WM,YM,_M,$M,Lk,Ok,Uk,$k,al,bl,cl,mk,ok,uk,vq,xq,Dq,Gr,Hr,Ku,lO,QN,aN,fN,gN,hN,iN,jN,pN,EQ,JQ,mQ,jQ,IQ,iQ,zN,lQ,hQ,kQ,SN,TN,UN,bO,cO,dO,kd,ld,ei,_f,Gk,Hk,Il,Jl,Ml,km,jt,os,Mt,Ot,Yx,Py,Qy,dy,ey,Dy,Jy,aB,bB,NF,TE,UE,yG,zG,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5,m5];var Zb=[n5,n5,J2,n5,K2,n5,L2,n5,M2,n5,N2,n5,O2,n5,P2,n5,Q2,n5,R2,n5,S2,n5,T2,n5,U2,n5,V2,n5,W2,n5,X2,n5,Y2,n5,Z2,n5,_2,n5,$2,n5,a3,n5,b3,n5,c3,n5,d3,n5,e3,n5,f3,n5,g3,n5,h3,n5,i3,n5,j3,n5,k3,n5,l3,n5,m3,n5,n3,n5,o3,n5,p3,n5,q3,n5,r3,n5,s3,n5,t3,n5,u3,n5,v3,n5,w3,n5,x3,n5,y3,n5,z3,n5,A3,n5,B3,n5,C3,n5,D3,n5,E3,n5,F3,n5,G3,n5,H3,n5,I3,n5,J3,n5,K3,n5,L3,n5,M3,n5,N3,n5,O3,n5,P3,n5,Q3,n5,R3,n5,S3,n5,QM,Qk,_k,qk,zq,Dr,Er,cN,dN,qN,eO,Uj,Vj,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5,n5];var _b=[o5,o5,U3,o5,V3,o5,W3,o5,X3,o5,Y3,o5,Z3,o5,_3,o5,$3,o5,a4,o5,b4,o5,c4,o5,d4,o5,e4,o5,f4,o5,g4,o5,h4,o5,i4,o5,j4,o5,k4,o5,l4,o5,m4,o5,n4,o5,o4,o5,p4,o5,q4,o5,r4,o5,s4,o5,t4,o5,u4,o5,v4,o5,w4,o5,x4,o5,y4,o5,z4,o5,A4,o5,B4,o5,C4,o5,D4,o5,E4,o5,F4,o5,G4,o5,H4,o5,I4,o5,J4,o5,K4,o5,L4,o5,M4,o5,N4,o5,O4,o5,P4,o5,Q4,o5,R4,o5,S4,o5,T4,o5,U4,o5,V4,o5,W4,o5,X4,o5,Y4,o5,Z4,o5,_4,o5,$4,o5,a5,o5,b5,o5,su,vd,xd,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5,o5];return{_sqlite3_value_blob:$d,_sqlite3_column_name:Ie,_sqlite3_reset:Zd,_sqlite3_column_type:He,_sqlite3_exec:$e,_sqlite3_result_null:me,_sqlite3_step:ue,_bitshift64Lshr:hR,_sqlite3_prepare_v2:af,_sqlite3_close_v2:sf,_sqlite3_open:Ef,_bitshift64Shl:lR,_sqlite3_result_text:ne,_fflush:tQ,_sqlite3_column_bytes:Be,_sqlite3_bind_int:Le,_sqlite3_bind_blob:Je,_memset:kR,_sqlite3_value_double:ce,_memcpy:iR,_sqlite3_result_double:ie,_sqlite3_value_text:ae,_sqlite3_changes:pf,_sqlite3_column_blob:Ae,_sqlite3_bind_parameter_index:Se,_sqlite3_value_type:fe,_i64Subtract:fR,_sqlite3_column_text:Fe,_i64Add:gR,_sqlite3_value_bytes:be,_sqlite3_finalize:Yd,_sqlite3_column_double:Ce,_sqlite3_create_function_v2:wf,_sqlite3_free:Kd,_sqlite3_value_int:de,_sqlite3_data_count:ze,_sqlite3_bind_text:Oe,_sqlite3_bind_double:Ke,___errno_location:SP,_RegisterExtensionFunctions:ic,_free:$Q,_memmove:jR,_sqlite3_errmsg:bf,_sqlite3_clear_bindings:_d,_malloc:_Q,runPostSets:eR,stackAlloc:$b,stackSave:ac,stackRestore:bc,establishStackSpace:cc,setThrew:dc,setTempRet0:gc,getTempRet0:hc,dynCall_iiii:vR,dynCall_i:GS,dynCall_vi:RT,dynCall_vii:aV,dynCall_iiiiiii:lW,dynCall_ii:wX,dynCall_viii:HY,dynCall_v:SZ,dynCall_iiiii:b$,dynCall_viiiiii:m0,dynCall_iii:x1,dynCall_iiiiii:I2,dynCall_viiii:T3}}(f.mb,f.nb,buffer);f._sqlite3_value_blob=W._sqlite3_value_blob;f._sqlite3_column_name=W._sqlite3_column_name;f._sqlite3_reset=W._sqlite3_reset;f._sqlite3_column_type=W._sqlite3_column_type;f._sqlite3_exec=W._sqlite3_exec;f._sqlite3_result_null=W._sqlite3_result_null;f._sqlite3_step=W._sqlite3_step;var Tc=f._bitshift64Lshr=W._bitshift64Lshr;f._sqlite3_prepare_v2=W._sqlite3_prepare_v2;f._sqlite3_close_v2=W._sqlite3_close_v2;f._sqlite3_open=W._sqlite3_open;var bd=f._bitshift64Shl=W._bitshift64Shl;f._sqlite3_result_text=W._sqlite3_result_text;f._fflush=W._fflush;f._sqlite3_column_bytes=W._sqlite3_column_bytes;f._sqlite3_bind_int=W._sqlite3_bind_int;f._sqlite3_bind_blob=W._sqlite3_bind_blob;var ad=f._memset=W._memset;f._sqlite3_value_double=W._sqlite3_value_double;var Yc=f._memcpy=W._memcpy;f._sqlite3_result_double=W._sqlite3_result_double;f._sqlite3_value_text=W._sqlite3_value_text;f._sqlite3_changes=W._sqlite3_changes;f._sqlite3_column_blob=W._sqlite3_column_blob;f._sqlite3_bind_parameter_index=W._sqlite3_bind_parameter_index;f._sqlite3_value_type=W._sqlite3_value_type;var zb=f._i64Subtract=W._i64Subtract;f._sqlite3_column_text=W._sqlite3_column_text;var Ab=f._i64Add=W._i64Add;f._sqlite3_value_bytes=W._sqlite3_value_bytes;f._sqlite3_finalize=W._sqlite3_finalize;f._sqlite3_column_double=W._sqlite3_column_double;f._sqlite3_create_function_v2=W._sqlite3_create_function_v2;f._sqlite3_free=W._sqlite3_free;f._sqlite3_value_int=W._sqlite3_value_int;f._sqlite3_data_count=W._sqlite3_data_count;f._sqlite3_bind_text=W._sqlite3_bind_text;f._sqlite3_bind_double=W._sqlite3_bind_double;f.___errno_location=W.___errno_location;f._RegisterExtensionFunctions=W._RegisterExtensionFunctions;var Pa=f._free=W._free;f.runPostSets=W.runPostSets;var Zc=f._memmove=W._memmove;f._sqlite3_errmsg=W._sqlite3_errmsg;f._sqlite3_clear_bindings=W._sqlite3_clear_bindings;var Ga=f._malloc=W._malloc;f.dynCall_iiii=W.dynCall_iiii;f.dynCall_i=W.dynCall_i;f.dynCall_vi=W.dynCall_vi;f.dynCall_vii=W.dynCall_vii;f.dynCall_iiiiiii=W.dynCall_iiiiiii;f.dynCall_ii=W.dynCall_ii;f.dynCall_viii=W.dynCall_viii;f.dynCall_v=W.dynCall_v;f.dynCall_iiiii=W.dynCall_iiiii;f.dynCall_viiiiii=W.dynCall_viiiiii;f.dynCall_iii=W.dynCall_iii;f.dynCall_iiiiii=W.dynCall_iiiiii;f.dynCall_viiii=W.dynCall_viiii;l.R=W.stackAlloc;l.qa=W.stackSave;l.ga=W.stackRestore;l.we=W.establishStackSpace;l.Qb=W.setTempRet0;l.Ab=W.getTempRet0;function ka(a){this.name="ExitStatus";this.message="Program terminated with exit("+a+")";this.status=a}ka.prototype=Error();ka.prototype.constructor=ka;var Vd=null,vb=function Wd(){f.calledRun||Xd();f.calledRun||(vb=Wd)};f.callMain=f.te=function(a){function b(){for(var a=0;3>a;a++)d.push(0)}assert(0==tb,"cannot call main when async dependencies remain! (listen on __ATMAIN__)");assert(0==bb.length,"cannot call main when preRun functions remain to be called");a=a||[];Ja||(Ja=!0,ab(cb));var c=a.length+1,d=[z(B(f.thisProgram),"i8",0)];b();for(var e=0;e<c-1;e+=1)d.push(z(B(a[e]),"i8",0)),b();d.push(0);d=z(d,"i32",0);try{var g=f._main(c,d,0);Yd(g,!0)}catch(h){if(!(h instanceof ka))if("SimulateInfiniteLoop"==h)f.noExitRuntime=!0;else throw h&&"object"===typeof h&&h.stack&&f.fa("exception thrown: "+[h,h.stack]),h}finally{}};function Xd(a){function b(){if(!f.calledRun&&(f.calledRun=!0,!oa)){Ja||(Ja=!0,ab(cb));ab(db);if(f.onRuntimeInitialized)f.onRuntimeInitialized();f._main&&Zd&&f.callMain(a);if(f.postRun)for("function"==typeof f.postRun&&(f.postRun=[f.postRun]);f.postRun.length;)hb(f.postRun.shift());ab(fb)}}a=a||f.arguments;null===Vd&&(Vd=Date.now());if(!(0<tb)){if(f.preRun)for("function"==typeof f.preRun&&(f.preRun=[f.preRun]);f.preRun.length;)gb(f.preRun.shift());ab(bb);0<tb||f.calledRun||(f.setStatus?(f.setStatus("Running..."),setTimeout(function(){setTimeout(function(){f.setStatus("")},1);b()},1)):b())}}f.run=f.run=Xd;function Yd(a,b){if(!b||!f.noExitRuntime){if(!f.noExitRuntime&&(oa=!0,k=void 0,ab(eb),f.onExit))f.onExit(a);ea?(process.stdout.once("drain",function(){process.exit(a)}),console.log(" "),setTimeout(function(){process.exit(a)},500)):fa&&"function"===typeof quit&&quit(a);throw new ka(a)}}f.exit=f.exit=Yd;var $d=[];function p(a){void 0!==a?(f.print(a),f.fa(a),a=JSON.stringify(a)):a="";oa=!0;var b="abort("+a+") at "+Qa()+"\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";$d&&$d.forEach(function(c){b=c(b,a)});throw b}f.abort=f.abort=p;if(f.preInit)for("function"==typeof f.preInit&&(f.preInit=[f.preInit]);0<f.preInit.length;)f.preInit.pop()();var Zd=!0;f.noInitialRun&&(Zd=!1);Xd();var Database,ae,be,X,ce,Z,de,ee,fe,ge,he,ie,je,ke,le,me,ne,oe,pe,qe,re,se,te,ue,ve,we,xe,ye,ze,Ae,Be,Ce,De,Ee,Fe,Ge,He,Ie,Je,Ke,l=f.Runtime;Z=l.R(4);X={};ce=function(){function a(a,c){this.u=a;this.db=c;this.K=1;this.va=[]}a.prototype.bind=function(a){if(!this.u)throw"Statement closed";this.reset();return Array.isArray(a)?this.pb(a):this.qb(a)};a.prototype.step=function(){var a;if(!this.u)throw"Statement closed";this.K=1;switch(a=Ee(this.u)){case X.hb:return!0;case X.DONE:return!1;default:return this.db.handleError(a)}};a.prototype.yb=function(a){null==a&&(a=this.K++);return oe(this.u,a)};a.prototype.zb=function(a){null==a&&(a=this.K++);return qe(this.u,a)};a.prototype.getBlob=function(a){var c,d,e,g;null==a&&(a=this.K++);g=ne(this.u,a);d=me(this.u,a);e=new Uint8Array(g);for(a=c=0;0<=g?c<g:c>g;a=0<=g?++c:--c)e[a]=u[d+a];return e};a.prototype.get=function(a){var c,d,e;null!=a&&this.bind(a)&&this.step();e=[];a=c=0;for(d=te(this.u);0<=d?c<d:c>d;a=0<=d?++c:--c)switch(re(this.u,a)){case X.gb:case X.FLOAT:e.push(this.yb(a));break;case X.ib:e.push(this.zb(a));break;case X.cb:e.push(this.getBlob(a));break;default:e.push(null)}return e};a.prototype.getColumnNames=function(){var a,c,d,e;e=[];a=c=0;for(d=te(this.u);0<=d?c<d:c>d;a=0<=d?++c:--c)e.push(pe(this.u,a));return e};a.prototype.getAsObject=function(a){var c,d,e,g,h,m;m=this.get(a);g=this.getColumnNames();h={};a=c=0;for(d=g.length;c<d;a=++c)e=g[a],h[e]=m[a];return h};a.prototype.run=function(a){null!=a&&this.bind(a);this.step();return this.reset()};a.prototype.tb=function(a,c){var d,e;null==c&&(c=this.K++);d=B(a);this.va.push(e=z(d,"i8",0));this.db.handleError(ie(this.u,c,e,d.length-1,0))};a.prototype.ob=function(a,c){var d;null==c&&(c=this.K++);this.va.push(d=z(a,"i8",0));this.db.handleError(ee(this.u,c,d,a.length,0))};a.prototype.sb=function(a,c){null==c&&(c=this.K++);this.db.handleError((a===(a|0)?ge:fe)(this.u,c,a))};a.prototype.rb=function(a){null==a&&(a=this.K++);ee(this.u,a,0,0,0)};a.prototype.Na=function(a,c){null==c&&(c=this.K++);switch(typeof a){case"string":this.tb(a,c);break;case"number":case"boolean":this.sb(a+0,c);break;case"object":if(null===a){this.rb(c);break}if(null!=a.length){this.ob(a,c);break}throw"Wrong API use : tried to bind a value of an unknown type ("+a+")."}};a.prototype.qb=function(a){var c,d,e;for(c in a)e=a[c],d=he(this.u,c),0!==d&&this.Na(e,d);return!0};a.prototype.pb=function(a){var c,d,e,g;e=c=0;for(d=a.length;c<d;e=++c)g=a[e],this.Na(g,e+1);return!0};a.prototype.reset=function(){this.freemem();return ke(this.u)===X.ka&&Ae(this.u)===X.ka};a.prototype.freemem=function(){for(var a;a=this.va.pop();)Pa(a);return null};a.prototype.free=function(){var a;this.freemem();a=we(this.u)===X.ka;delete this.db.ra[this.u];this.u=ae;return a};return a}();Database=function(){function a(a){this.filename="dbfile_"+(4294967295*Math.random()>>>0);null!=a&&Gc("/",this.filename,a,!0,!0);this.handleError(xe(this.filename,Z));this.db=y(Z,"i32");be(this.db);this.ra={}}a.prototype.run=function(a,c){var d;if(!this.db)throw"Database closed";c?(d=this.prepare(a,c),d.step(),d.free()):this.handleError(ve(this.db,a,0,0,Z));return this};a.prototype.exec=function(a){var c,d,e,g,h;if(!this.db)throw"Database closed";g=l.qa();d=l.R(a.length<<3);wa(a,d);a=l.R(4);for(e=[];y(d,"i8")!==ae;)if(ya(Z,0,"i32"),ya(a,0,"i32"),this.handleError(ze(this.db,d,-1,Z,a)),c=y(Z,"i32"),d=y(a,"i32"),c!==ae){h=new ce(c,this);for(c=null;h.step();)null===c&&(c={columns:h.getColumnNames(),values:[]},e.push(c)),c.values.push(h.get());h.free()}l.ga(g);return e};a.prototype.each=function(a,c,d,e){"function"===typeof c&&(e=d,d=c,c=void 0);for(a=this.prepare(a,c);a.step();)d(a.getAsObject());a.free();if("function"===typeof e)return e()};a.prototype.prepare=function(a,c){var d,e;ya(Z,0,"i32");this.handleError(ye(this.db,a,-1,Z,ae));d=y(Z,"i32");if(d===ae)throw"Nothing to prepare";e=new ce(d,this);null!=c&&e.bind(c);return this.ra[d]=e};a.prototype["export"]=function(){var a,c,d,e;d=this.ra;for(a in d)e=d[a],e.free();this.handleError(le(this.db));e=this.filename;a=a={encoding:"binary"};a.flags=a.flags||"r";a.encoding=a.encoding||"binary";if("utf8"!==a.encoding&&"binary"!==a.encoding)throw Error('Invalid encoding type "'+a.encoding+'"');d=wc(e,a.flags);e=rc(e).size;var g=new Uint8Array(e);Ac(d,g,0,e,0);"utf8"===a.encoding?c=La(g,0):"binary"===a.encoding&&(c=g);yc(d);this.handleError(xe(this.filename,Z));this.db=y(Z,"i32");return c};a.prototype.close=function(){var a,c,d;c=this.ra;for(a in c)d=c[a],d.free();this.handleError(le(this.db));qc("/"+this.filename);return this.db=null};a.prototype.handleError=function(a){if(a===X.ka)return null;a=ue(this.db);throw Error(a)};a.prototype.getRowsModified=function(){return je(this.db)};a.prototype.create_function=function(a,c){var d;d=l.La(function(a,b,d){var m,t,r,x,v;t=[];for(m=r=0;0<=b?r<=b:r>=b;m=0<=b?++r:--r)x=y(d+4*m,"i32"),v=Ke(x),m=function(){switch(!1){case 1!==v:return Ie;case 2!==v:return He;case 3!==v:return Je;case 4!==v:return function(a){var b,c,d,e;e=Ge(a);b=Fe(a);a=new Uint8Array(e);for(c=d=0;0<=e?d<e:d>e;c=0<=e?++d:--d)a[c]=u[b+c];return a};default:return function(){return null}}}(),m=m(x),t.push(m);if(b=c.apply(null,t))switch(typeof b){case"number":return Be(a,b);case"string":return De(a,b,-1,-1)}else return Ce(a)});this.handleError(se(this.db,a,c.length,X.jb,0,d,0,0,0));return this};return a}();xe=f.cwrap("sqlite3_open","number",["string","number"]);le=f.cwrap("sqlite3_close_v2","number",["number"]);ve=f.cwrap("sqlite3_exec","number",["number","string","number","number","number"]);f.cwrap("sqlite3_free","",["number"]);je=f.cwrap("sqlite3_changes","number",["number"]);ye=f.cwrap("sqlite3_prepare_v2","number",["number","string","number","number","number"]);ze=f.cwrap("sqlite3_prepare_v2","number",["number","number","number","number","number"]);ie=f.cwrap("sqlite3_bind_text","number",["number","number","number","number","number"]);ee=f.cwrap("sqlite3_bind_blob","number",["number","number","number","number","number"]);fe=f.cwrap("sqlite3_bind_double","number",["number","number","number"]);ge=f.cwrap("sqlite3_bind_int","number",["number","number","number"]);he=f.cwrap("sqlite3_bind_parameter_index","number",["number","string"]);Ee=f.cwrap("sqlite3_step","number",["number"]);ue=f.cwrap("sqlite3_errmsg","string",["number"]);te=f.cwrap("sqlite3_data_count","number",["number"]);oe=f.cwrap("sqlite3_column_double","number",["number","number"]);qe=f.cwrap("sqlite3_column_text","string",["number","number"]);me=f.cwrap("sqlite3_column_blob","number",["number","number"]);ne=f.cwrap("sqlite3_column_bytes","number",["number","number"]);re=f.cwrap("sqlite3_column_type","number",["number","number"]);pe=f.cwrap("sqlite3_column_name","string",["number","number"]);Ae=f.cwrap("sqlite3_reset","number",["number"]);ke=f.cwrap("sqlite3_clear_bindings","number",["number"]);we=f.cwrap("sqlite3_finalize","number",["number"]);se=f.cwrap("sqlite3_create_function_v2","number","number string number number number number number number number".split(" "));Ke=f.cwrap("sqlite3_value_type","number",["number"]);Ge=f.cwrap("sqlite3_value_bytes","number",["number"]);Je=f.cwrap("sqlite3_value_text","string",["number"]);Ie=f.cwrap("sqlite3_value_int","number",["number"]);Fe=f.cwrap("sqlite3_value_blob","number",["number"]);He=f.cwrap("sqlite3_value_double","number",["number"]);Be=f.cwrap("sqlite3_result_double","",["number","number"]);Ce=f.cwrap("sqlite3_result_null","",["number"]);De=f.cwrap("sqlite3_result_text","",["number","string","number","number"]);be=f.cwrap("RegisterExtensionFunctions","number",["number"]);this.SQL={Database:Database};for(de in this.SQL)f[de]=this.SQL[de];ae=0;X.ka=0;X.ERROR=1;X.$d=2;X.je=3;X.Ub=4;X.Wb=5;X.ce=6;X.NOMEM=7;X.me=8;X.ae=9;X.be=10;X.Zb=11;X.NOTFOUND=12;X.Yd=13;X.Xb=14;X.ke=15;X.EMPTY=16;X.ne=17;X.pe=18;X.Yb=19;X.de=20;X.ee=21;X.fe=22;X.Vb=23;X.Xd=24;X.le=25;X.ge=26;X.he=27;X.qe=28;X.hb=100;X.DONE=101;X.gb=1;X.FLOAT=2;X.ib=3;X.cb=4;X.ie=5;X.jb=1;return this["SQL"]}();if(typeof module!=="undefined")module.exports=SQL;if(typeof define==="function")define(SQL)}).call(this,require("_process"),require("buffer").Buffer,"/node_modules/sql.js/js")},{_process:"/data/github/geopackage-node/node_modules/browserify/node_modules/process/browser.js",buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js",crypto:"/data/github/geopackage-node/node_modules/browserify/node_modules/crypto-browserify/index.js",fs:"/data/github/geopackage-node/node_modules/browserify/lib/_empty.js",path:"/data/github/geopackage-node/node_modules/browserify/node_modules/path-browserify/index.js"}],"/data/github/geopackage-node/node_modules/wkx/lib/binaryreader.js":[function(require,module,exports){(function(Buffer){module.exports=BinaryReader;function BinaryReader(buffer,isBigEndian){this.buffer=buffer;this.position=0;this.isBigEndian=isBigEndian||false}function _read(readLE,readBE,size){return function(){var value;if(this.isBigEndian)value=readBE.call(this.buffer,this.position);else value=readLE.call(this.buffer,this.position);this.position+=size;return value}}BinaryReader.prototype.readUInt8=_read(Buffer.prototype.readUInt8,Buffer.prototype.readUInt8,1);BinaryReader.prototype.readUInt16=_read(Buffer.prototype.readUInt16LE,Buffer.prototype.readUInt16BE,2);BinaryReader.prototype.readUInt32=_read(Buffer.prototype.readUInt32LE,Buffer.prototype.readUInt32BE,4);BinaryReader.prototype.readInt8=_read(Buffer.prototype.readInt8,Buffer.prototype.readInt8,1);BinaryReader.prototype.readInt16=_read(Buffer.prototype.readInt16LE,Buffer.prototype.readInt16BE,2);BinaryReader.prototype.readInt32=_read(Buffer.prototype.readInt32LE,Buffer.prototype.readInt32BE,4);BinaryReader.prototype.readFloat=_read(Buffer.prototype.readFloatLE,Buffer.prototype.readFloatBE,4);BinaryReader.prototype.readDouble=_read(Buffer.prototype.readDoubleLE,Buffer.prototype.readDoubleBE,8);BinaryReader.prototype.readVarInt=function(){var nextByte,result=0,bytesRead=0;do{nextByte=this.buffer[this.position+bytesRead];result+=(nextByte&127)<<7*bytesRead;bytesRead++}while(nextByte>=128);this.position+=bytesRead;return result}}).call(this,require("buffer").Buffer)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js"}],"/data/github/geopackage-node/node_modules/wkx/lib/binarywriter.js":[function(require,module,exports){(function(Buffer){module.exports=BinaryWriter;function BinaryWriter(size,allowResize){this.buffer=new Buffer(size);this.position=0;this.allowResize=allowResize}function _write(write,size){return function(value,noAssert){this.ensureSize(size);write.call(this.buffer,value,this.position,noAssert);this.position+=size}}BinaryWriter.prototype.writeUInt8=_write(Buffer.prototype.writeUInt8,1);BinaryWriter.prototype.writeUInt16LE=_write(Buffer.prototype.writeUInt16LE,2);BinaryWriter.prototype.writeUInt16BE=_write(Buffer.prototype.writeUInt16BE,2);BinaryWriter.prototype.writeUInt32LE=_write(Buffer.prototype.writeUInt32LE,4);BinaryWriter.prototype.writeUInt32BE=_write(Buffer.prototype.writeUInt32BE,4);BinaryWriter.prototype.writeInt8=_write(Buffer.prototype.writeInt8,1);BinaryWriter.prototype.writeInt16LE=_write(Buffer.prototype.writeInt16LE,2);BinaryWriter.prototype.writeInt16BE=_write(Buffer.prototype.writeInt16BE,2);BinaryWriter.prototype.writeInt32LE=_write(Buffer.prototype.writeInt32LE,4);BinaryWriter.prototype.writeInt32BE=_write(Buffer.prototype.writeInt32BE,4);BinaryWriter.prototype.writeFloatLE=_write(Buffer.prototype.writeFloatLE,4);BinaryWriter.prototype.writeFloatBE=_write(Buffer.prototype.writeFloatBE,4);BinaryWriter.prototype.writeDoubleLE=_write(Buffer.prototype.writeDoubleLE,8);BinaryWriter.prototype.writeDoubleBE=_write(Buffer.prototype.writeDoubleBE,8);BinaryWriter.prototype.writeBuffer=function(buffer){this.ensureSize(buffer.length);buffer.copy(this.buffer,this.position,0,buffer.length);this.position+=buffer.length};BinaryWriter.prototype.writeVarInt=function(value){var length=1;while((value&4294967168)!==0){this.writeUInt8(value&127|128);value>>>=7;length++}this.writeUInt8(value&127);return length};BinaryWriter.prototype.ensureSize=function(size){if(this.buffer.length<this.position+size){if(this.allowResize){var tempBuffer=new Buffer(this.position+size);this.buffer.copy(tempBuffer,0,0,this.buffer.length);this.buffer=tempBuffer}else{throw new RangeError("index out of range")}}}}).call(this,require("buffer").Buffer)},{buffer:"/data/github/geopackage-node/node_modules/browserify/node_modules/buffer/index.js"}],"/data/github/geopackage-node/node_modules/wkx/lib/geometry.js":[function(require,module,exports){(function(Buffer){module.exports=Geometry;var Types=require("./types");var Point=require("./point");var LineString=require("./linestring");var Polygon=require("./polygon");var MultiPoint=require("./multipoint");var MultiLineString=require("./multilinestring");var MultiPolygon=require("./multipolygon");var GeometryCollection=require("./geometrycollection");var BinaryReader=require("./binaryreader");var BinaryWriter=require("./binarywriter");var WktParser=require("./wktparser");var ZigZag=require("./zigzag.js");function Geometry(){this.srid=undefined;this.hasZ=false;this.hasM=false}Geometry.parse=function(value,options){var valueType=typeof value;if(valueType==="string"||value instanceof WktParser)return Geometry._parseWkt(value);else if(Buffer.isBuffer(value)||value instanceof BinaryReader)return Geometry._parseWkb(value,options);else throw new Error("first argument must be a string or Buffer")};Geometry._parseWkt=function(value){var wktParser,srid;if(value instanceof WktParser)wktParser=value;else wktParser=new WktParser(value);var match=wktParser.matchRegex([/^SRID=(\d+);/]);if(match)srid=match[1];var geometryType=wktParser.matchType();var dimension=wktParser.matchDimension();var options={srid:srid,hasZ:dimension.hasZ,hasM:dimension.hasM};switch(geometryType){case Types.wkt.Point:return Point._parseWkt(wktParser,options);case Types.wkt.LineString:return LineString._parseWkt(wktParser,options);case Types.wkt.Polygon:return Polygon._parseWkt(wktParser,options);case Types.wkt.MultiPoint:return MultiPoint._parseWkt(wktParser,options);case Types.wkt.MultiLineString:return MultiLineString._parseWkt(wktParser,options);case Types.wkt.MultiPolygon:return MultiPolygon._parseWkt(wktParser,options);case Types.wkt.GeometryCollection:return GeometryCollection._parseWkt(wktParser,options)}};Geometry._parseWkb=function(value,parentOptions){var binaryReader,hasSrid,srid,wkbType,geometryType,options={};if(value instanceof BinaryReader)binaryReader=value;else binaryReader=new BinaryReader(value);binaryReader.isBigEndian=!binaryReader.readInt8();wkbType=binaryReader.readUInt32();options.hasSrid=(wkbType&536870912)===536870912;if(options.hasSrid)options.srid=binaryReader.readUInt32();options.hasZ=false;options.hasM=false;if(!options.hasSrid&&(!parentOptions||!parentOptions.hasSrid)){if(wkbType>=1e3&&wkbType<2e3){options.hasZ=true;geometryType=wkbType-1e3}else if(wkbType>=2e3&&wkbType<3e3){options.hasM=true;geometryType=wkbType-2e3}else if(wkbType>=3e3&&wkbType<4e3){options.hasZ=true;options.hasM=true;geometryType=wkbType-3e3}else{geometryType=wkbType}}else{if(wkbType&2147483648)options.hasZ=true;if(wkbType&1073741824)options.hasM=true;geometryType=wkbType&15}switch(geometryType){case Types.wkb.Point:return Point._parseWkb(binaryReader,options);case Types.wkb.LineString:return LineString._parseWkb(binaryReader,options);case Types.wkb.Polygon:return Polygon._parseWkb(binaryReader,options);case Types.wkb.MultiPoint:return MultiPoint._parseWkb(binaryReader,options);case Types.wkb.MultiLineString:return MultiLineString._parseWkb(binaryReader,options);case Types.wkb.MultiPolygon:return MultiPolygon._parseWkb(binaryReader,options);case Types.wkb.GeometryCollection:return GeometryCollection._parseWkb(binaryReader,options);default:throw new Error("GeometryType "+geometryType+" not supported")}};Geometry.parseTwkb=function(value){var binaryReader,options={};if(value instanceof BinaryReader)binaryReader=value;else binaryReader=new BinaryReader(value);var type=binaryReader.readUInt8();var metadataHeader=binaryReader.readUInt8();var geometryType=type&15;options.precision=ZigZag.decode(type>>4);options.precisionFactor=Math.pow(10,options.precision);options.hasBoundingBox=metadataHeader>>0&1;options.hasSizeAttribute=metadataHeader>>1&1;options.hasIdList=metadataHeader>>2&1;options.hasExtendedPrecision=metadataHeader>>3&1;options.isEmpty=metadataHeader>>4&1;if(options.hasExtendedPrecision){var extendedPrecision=binaryReader.readUInt8();options.hasZ=(extendedPrecision&1)===1;options.hasM=(extendedPrecision&2)===2;options.zPrecision=ZigZag.decode((extendedPrecision&28)>>2);options.zPrecisionFactor=Math.pow(10,options.zPrecision);options.mPrecision=ZigZag.decode((extendedPrecision&224)>>5);options.mPrecisionFactor=Math.pow(10,options.mPrecision)}else{options.hasZ=false;options.hasM=false}if(options.hasSizeAttribute)binaryReader.readVarInt();if(options.hasBoundingBox){var dimensions=2;if(options.hasZ)dimensions++;if(options.hasM)dimensions++;for(var i=0;i<dimensions;i++){binaryReader.readVarInt();binaryReader.readVarInt()}}switch(geometryType){case Types.wkb.Point:return Point._parseTwkb(binaryReader,options);case Types.wkb.LineString:return LineString._parseTwkb(binaryReader,options);case Types.wkb.Polygon:return Polygon._parseTwkb(binaryReader,options);case Types.wkb.MultiPoint:return MultiPoint._parseTwkb(binaryReader,options);case Types.wkb.MultiLineString:return MultiLineString._parseTwkb(binaryReader,options);case Types.wkb.MultiPolygon:return MultiPolygon._parseTwkb(binaryReader,options);case Types.wkb.GeometryCollection:return GeometryCollection._parseTwkb(binaryReader,options);default:throw new Error("GeometryType "+geometryType+" not supported")}};Geometry.parseGeoJSON=function(value){var geometry;switch(value.type){case Types.geoJSON.Point:geometry=Point._parseGeoJSON(value);break;case Types.geoJSON.LineString:geometry=LineString._parseGeoJSON(value);break;case Types.geoJSON.Polygon:geometry=Polygon._parseGeoJSON(value);break;case Types.geoJSON.MultiPoint:geometry=MultiPoint._parseGeoJSON(value);break;case Types.geoJSON.MultiLineString:geometry=MultiLineString._parseGeoJSON(value);break;case Types.geoJSON.MultiPolygon:geometry=MultiPolygon._parseGeoJSON(value);break;case Types.geoJSON.GeometryCollection:geometry=GeometryCollection._parseGeoJSON(value);break;default:throw new Error("GeometryType "+value.type+" not supported")}if(value.crs&&value.crs.type&&value.crs.type==="name"&&value.crs.properties&&value.crs.properties.name){var crs=value.crs.properties.name;if(crs.indexOf("EPSG:")===0)geometry.srid=parseInt(crs.substring(5));else if(crs.indexOf("urn:ogc:def:crs:EPSG::")===0)geometry.srid=parseInt(crs.substring(22));else throw new Error("Unsupported crs: "+crs)}return geometry};Geometry.prototype.toEwkt=function(){return"SRID="+this.srid+";"+this.toWkt()};Geometry.prototype.toEwkb=function(){var ewkb=new BinaryWriter(this._getWkbSize()+4);var wkb=this.toWkb();ewkb.writeInt8(1);ewkb.writeUInt32LE(wkb.slice(1,5).readUInt32LE(0)|536870912,true);ewkb.writeUInt32LE(this.srid);
  96. ewkb.writeBuffer(wkb.slice(5));return ewkb.buffer};Geometry.prototype._getWktType=function(wktType,isEmpty){var wkt=wktType;if(this.hasZ&&this.hasM)wkt+=" ZM ";else if(this.hasZ)wkt+=" Z ";else if(this.hasM)wkt+=" M ";if(isEmpty&&!this.hasZ&&!this.hasM)wkt+=" ";if(isEmpty)wkt+="EMPTY";return wkt};Geometry.prototype._getWktCoordinate=function(point){var coordinates=point.x+" "+point.y;if(this.hasZ)coordinates+=" "+point.z;if(this.hasM)coordinates+=" "+point.m;return coordinates};Geometry.prototype._writeWkbType=function(wkb,geometryType,parentOptions){var dimensionType=0;if(typeof this.srid==="undefined"&&(!parentOptions||typeof parentOptions.srid==="undefined")){if(this.hasZ&&this.hasM)dimensionType+=3e3;else if(this.hasZ)dimensionType+=1e3;else if(this.hasM)dimensionType+=2e3}else{if(this.hasZ)dimensionType|=2147483648;if(this.hasM)dimensionType|=1073741824}wkb.writeUInt32LE(dimensionType+geometryType,true)};Geometry.getTwkbPrecision=function(xyPrecision,zPrecision,mPrecision){return{xy:xyPrecision,z:zPrecision,m:mPrecision,xyFactor:Math.pow(10,xyPrecision),zFactor:Math.pow(10,zPrecision),mFactor:Math.pow(10,mPrecision)}};Geometry.prototype._writeTwkbHeader=function(twkb,geometryType,precision,isEmpty){var type=(ZigZag.encode(precision.xy)<<4)+geometryType;var metadataHeader=(this.hasZ||this.hasM)<<3;metadataHeader+=isEmpty<<4;twkb.writeUInt8(type);twkb.writeUInt8(metadataHeader);if(this.hasZ||this.hasM){var extendedPrecision=0;if(this.hasZ)extendedPrecision|=1;if(this.hasM)extendedPrecision|=2;twkb.writeUInt8(extendedPrecision)}};Geometry.prototype.toGeoJSON=function(options){var geoJSON={};if(this.srid){if(options){if(options.shortCrs){geoJSON.crs={type:"name",properties:{name:"EPSG:"+this.srid}}}else if(options.longCrs){geoJSON.crs={type:"name",properties:{name:"urn:ogc:def:crs:EPSG::"+this.srid}}}}}return geoJSON}}).call(this,{isBuffer:require("../../browserify/node_modules/insert-module-globals/node_modules/is-buffer/index.js")})},{"../../browserify/node_modules/insert-module-globals/node_modules/is-buffer/index.js":"/data/github/geopackage-node/node_modules/browserify/node_modules/insert-module-globals/node_modules/is-buffer/index.js","./binaryreader":"/data/github/geopackage-node/node_modules/wkx/lib/binaryreader.js","./binarywriter":"/data/github/geopackage-node/node_modules/wkx/lib/binarywriter.js","./geometrycollection":"/data/github/geopackage-node/node_modules/wkx/lib/geometrycollection.js","./linestring":"/data/github/geopackage-node/node_modules/wkx/lib/linestring.js","./multilinestring":"/data/github/geopackage-node/node_modules/wkx/lib/multilinestring.js","./multipoint":"/data/github/geopackage-node/node_modules/wkx/lib/multipoint.js","./multipolygon":"/data/github/geopackage-node/node_modules/wkx/lib/multipolygon.js","./point":"/data/github/geopackage-node/node_modules/wkx/lib/point.js","./polygon":"/data/github/geopackage-node/node_modules/wkx/lib/polygon.js","./types":"/data/github/geopackage-node/node_modules/wkx/lib/types.js","./wktparser":"/data/github/geopackage-node/node_modules/wkx/lib/wktparser.js","./zigzag.js":"/data/github/geopackage-node/node_modules/wkx/lib/zigzag.js"}],"/data/github/geopackage-node/node_modules/wkx/lib/geometrycollection.js":[function(require,module,exports){module.exports=GeometryCollection;var util=require("util");var Types=require("./types");var Geometry=require("./geometry");var BinaryWriter=require("./binarywriter");function GeometryCollection(geometries){Geometry.call(this);this.geometries=geometries||[]}util.inherits(GeometryCollection,Geometry);GeometryCollection.Z=function(geometries){var geometryCollection=new GeometryCollection(geometries);geometryCollection.hasZ=true;return geometryCollection};GeometryCollection.M=function(geometries){var geometryCollection=new GeometryCollection(geometries);geometryCollection.hasM=true;return geometryCollection};GeometryCollection.ZM=function(geometries){var geometryCollection=new GeometryCollection(geometries);geometryCollection.hasZ=true;geometryCollection.hasM=true;return geometryCollection};GeometryCollection._parseWkt=function(value,options){var geometryCollection=new GeometryCollection;geometryCollection.srid=options.srid;geometryCollection.hasZ=options.hasZ;geometryCollection.hasM=options.hasM;if(value.isMatch(["EMPTY"]))return geometryCollection;value.expectGroupStart();do{geometryCollection.geometries.push(Geometry.parse(value))}while(value.isMatch([","]));value.expectGroupEnd();return geometryCollection};GeometryCollection._parseWkb=function(value,options){var geometryCollection=new GeometryCollection;geometryCollection.srid=options.srid;geometryCollection.hasZ=options.hasZ;geometryCollection.hasM=options.hasM;var geometryCount=value.readUInt32();for(var i=0;i<geometryCount;i++)geometryCollection.geometries.push(Geometry.parse(value,options));return geometryCollection};GeometryCollection._parseTwkb=function(value,options){var geometryCollection=new GeometryCollection;geometryCollection.hasZ=options.hasZ;geometryCollection.hasM=options.hasM;if(options.isEmpty)return geometryCollection;var geometryCount=value.readVarInt();for(var i=0;i<geometryCount;i++)geometryCollection.geometries.push(Geometry.parseTwkb(value));return geometryCollection};GeometryCollection._parseGeoJSON=function(value){var geometryCollection=new GeometryCollection;for(var i=0;i<value.geometries.length;i++)geometryCollection.geometries.push(Geometry.parseGeoJSON(value.geometries[i]));if(geometryCollection.geometries.length>0)geometryCollection.hasZ=geometryCollection.geometries[0].hasZ;return geometryCollection};GeometryCollection.prototype.toWkt=function(){if(this.geometries.length===0)return this._getWktType(Types.wkt.GeometryCollection,true);var wkt=this._getWktType(Types.wkt.GeometryCollection,false)+"(";for(var i=0;i<this.geometries.length;i++)wkt+=this.geometries[i].toWkt()+",";wkt=wkt.slice(0,-1);wkt+=")";return wkt};GeometryCollection.prototype.toWkb=function(){var wkb=new BinaryWriter(this._getWkbSize());wkb.writeInt8(1);this._writeWkbType(wkb,Types.wkb.GeometryCollection);wkb.writeUInt32LE(this.geometries.length);for(var i=0;i<this.geometries.length;i++)wkb.writeBuffer(this.geometries[i].toWkb({srid:this.srid}));return wkb.buffer};GeometryCollection.prototype.toTwkb=function(){var twkb=new BinaryWriter(0,true);var precision=Geometry.getTwkbPrecision(5,0,0);var isEmpty=this.geometries.length===0;this._writeTwkbHeader(twkb,Types.wkb.GeometryCollection,precision,isEmpty);if(this.geometries.length>0){twkb.writeVarInt(this.geometries.length);for(var i=0;i<this.geometries.length;i++)twkb.writeBuffer(this.geometries[i].toTwkb())}return twkb.buffer};GeometryCollection.prototype._getWkbSize=function(){var size=1+4+4;for(var i=0;i<this.geometries.length;i++)size+=this.geometries[i]._getWkbSize();return size};GeometryCollection.prototype.toGeoJSON=function(options){var geoJSON=Geometry.prototype.toGeoJSON.call(this,options);geoJSON.type=Types.geoJSON.GeometryCollection;geoJSON.geometries=[];for(var i=0;i<this.geometries.length;i++)geoJSON.geometries.push(this.geometries[i].toGeoJSON());return geoJSON}},{"./binarywriter":"/data/github/geopackage-node/node_modules/wkx/lib/binarywriter.js","./geometry":"/data/github/geopackage-node/node_modules/wkx/lib/geometry.js","./types":"/data/github/geopackage-node/node_modules/wkx/lib/types.js",util:"/data/github/geopackage-node/node_modules/browserify/node_modules/util/util.js"}],"/data/github/geopackage-node/node_modules/wkx/lib/linestring.js":[function(require,module,exports){module.exports=LineString;var util=require("util");var Geometry=require("./geometry");var Types=require("./types");var Point=require("./point");var BinaryWriter=require("./binarywriter");var ZigZag=require("./zigzag.js");function LineString(points){Geometry.call(this);this.points=points||[];if(this.points.length>0){this.hasZ=this.points[0].hasZ;this.hasM=this.points[0].hasM}}util.inherits(LineString,Geometry);LineString.Z=function(points){var lineString=new LineString(points);lineString.hasZ=true;return lineString};LineString.M=function(points){var lineString=new LineString(points);lineString.hasM=true;return lineString};LineString.ZM=function(points){var lineString=new LineString(points);lineString.hasZ=true;lineString.hasM=true;return lineString};LineString._parseWkt=function(value,options){var lineString=new LineString;lineString.srid=options.srid;lineString.hasZ=options.hasZ;lineString.hasM=options.hasM;if(value.isMatch(["EMPTY"]))return lineString;value.expectGroupStart();lineString.points.push.apply(lineString.points,value.matchCoordinates(options));value.expectGroupEnd();return lineString};LineString._parseWkb=function(value,options){var lineString=new LineString;lineString.srid=options.srid;lineString.hasZ=options.hasZ;lineString.hasM=options.hasM;var pointCount=value.readUInt32();for(var i=0;i<pointCount;i++)lineString.points.push(Point._readWkbPoint(value,options));return lineString};LineString._parseTwkb=function(value,options){var lineString=new LineString;lineString.hasZ=options.hasZ;lineString.hasM=options.hasM;if(options.isEmpty)return lineString;var previousPoint=new Point(0,0,options.hasZ?0:undefined,options.hasM?0:undefined);var pointCount=value.readVarInt();for(var i=0;i<pointCount;i++)lineString.points.push(Point._readTwkbPoint(value,options,previousPoint));return lineString};LineString._parseGeoJSON=function(value){var lineString=new LineString;if(value.coordinates.length>0)lineString.hasZ=value.coordinates[0].length>2;for(var i=0;i<value.coordinates.length;i++)lineString.points.push(Point._readGeoJSONPoint(value.coordinates[i]));return lineString};LineString.prototype.toWkt=function(){if(this.points.length===0)return this._getWktType(Types.wkt.LineString,true);return this._getWktType(Types.wkt.LineString,false)+this._toInnerWkt()};LineString.prototype._toInnerWkt=function(){var innerWkt="(";for(var i=0;i<this.points.length;i++)innerWkt+=this._getWktCoordinate(this.points[i])+",";innerWkt=innerWkt.slice(0,-1);innerWkt+=")";return innerWkt};LineString.prototype.toWkb=function(parentOptions){var wkb=new BinaryWriter(this._getWkbSize());wkb.writeInt8(1);this._writeWkbType(wkb,Types.wkb.LineString,parentOptions);wkb.writeUInt32LE(this.points.length);for(var i=0;i<this.points.length;i++)this.points[i]._writeWkbPoint(wkb);return wkb.buffer};LineString.prototype.toTwkb=function(){var twkb=new BinaryWriter(0,true);var precision=Geometry.getTwkbPrecision(5,0,0);var isEmpty=this.points.length===0;this._writeTwkbHeader(twkb,Types.wkb.LineString,precision,isEmpty);if(this.points.length>0){twkb.writeVarInt(this.points.length);var previousPoint=new Point(0,0,0,0);for(var i=0;i<this.points.length;i++)this.points[i]._writeTwkbPoint(twkb,precision,previousPoint)}return twkb.buffer};LineString.prototype._getWkbSize=function(){var coordinateSize=16;if(this.hasZ)coordinateSize+=8;if(this.hasM)coordinateSize+=8;return 1+4+4+this.points.length*coordinateSize};LineString.prototype.toGeoJSON=function(options){var geoJSON=Geometry.prototype.toGeoJSON.call(this,options);geoJSON.type=Types.geoJSON.LineString;geoJSON.coordinates=[];for(var i=0;i<this.points.length;i++){if(this.hasZ)geoJSON.coordinates.push([this.points[i].x,this.points[i].y,this.points[i].z]);else geoJSON.coordinates.push([this.points[i].x,this.points[i].y])}return geoJSON}},{"./binarywriter":"/data/github/geopackage-node/node_modules/wkx/lib/binarywriter.js","./geometry":"/data/github/geopackage-node/node_modules/wkx/lib/geometry.js","./point":"/data/github/geopackage-node/node_modules/wkx/lib/point.js","./types":"/data/github/geopackage-node/node_modules/wkx/lib/types.js","./zigzag.js":"/data/github/geopackage-node/node_modules/wkx/lib/zigzag.js",util:"/data/github/geopackage-node/node_modules/browserify/node_modules/util/util.js"}],"/data/github/geopackage-node/node_modules/wkx/lib/multilinestring.js":[function(require,module,exports){module.exports=MultiLineString;var util=require("util");var Types=require("./types");var Geometry=require("./geometry");var Point=require("./point");var LineString=require("./linestring");var BinaryWriter=require("./binarywriter");var ZigZag=require("./zigzag.js");function MultiLineString(lineStrings){Geometry.call(this);this.lineStrings=lineStrings||[]}util.inherits(MultiLineString,Geometry);MultiLineString.Z=function(lineStrings){var multiLineString=new MultiLineString(lineStrings);multiLineString.hasZ=true;return multiLineString};MultiLineString.M=function(lineStrings){var multiLineString=new MultiLineString(lineStrings);multiLineString.hasM=true;return multiLineString};MultiLineString.ZM=function(lineStrings){var multiLineString=new MultiLineString(lineStrings);multiLineString.hasZ=true;multiLineString.hasM=true;return multiLineString};MultiLineString._parseWkt=function(value,options){var multiLineString=new MultiLineString;multiLineString.srid=options.srid;multiLineString.hasZ=options.hasZ;multiLineString.hasM=options.hasM;if(value.isMatch(["EMPTY"]))return multiLineString;value.expectGroupStart();do{value.expectGroupStart();multiLineString.lineStrings.push(new LineString(value.matchCoordinates(options)));value.expectGroupEnd()}while(value.isMatch([","]));value.expectGroupEnd();return multiLineString};MultiLineString._parseWkb=function(value,options){var multiLineString=new MultiLineString;multiLineString.srid=options.srid;multiLineString.hasZ=options.hasZ;multiLineString.hasM=options.hasM;var lineStringCount=value.readUInt32();for(var i=0;i<lineStringCount;i++)multiLineString.lineStrings.push(Geometry.parse(value,options));return multiLineString};MultiLineString._parseTwkb=function(value,options){var multiLineString=new MultiLineString;multiLineString.hasZ=options.hasZ;multiLineString.hasM=options.hasM;if(options.isEmpty)return multiLineString;var previousPoint=new Point(0,0,options.hasZ?0:undefined,options.hasM?0:undefined);var lineStringCount=value.readVarInt();for(var i=0;i<lineStringCount;i++){var lineString=new LineString;lineString.hasZ=options.hasZ;lineString.hasM=options.hasM;var pointCount=value.readVarInt();for(var j=0;j<pointCount;j++)lineString.points.push(Point._readTwkbPoint(value,options,previousPoint));multiLineString.lineStrings.push(lineString)}return multiLineString};MultiLineString._parseGeoJSON=function(value){var multiLineString=new MultiLineString;if(value.coordinates.length>0&&value.coordinates[0].length>0)multiLineString.hasZ=value.coordinates[0][0].length>2;for(var i=0;i<value.coordinates.length;i++)multiLineString.lineStrings.push(LineString._parseGeoJSON({coordinates:value.coordinates[i]}));return multiLineString};MultiLineString.prototype.toWkt=function(){if(this.lineStrings.length===0)return this._getWktType(Types.wkt.MultiLineString,true);var wkt=this._getWktType(Types.wkt.MultiLineString,false)+"(";for(var i=0;i<this.lineStrings.length;i++)wkt+=this.lineStrings[i]._toInnerWkt()+",";wkt=wkt.slice(0,-1);wkt+=")";return wkt};MultiLineString.prototype.toWkb=function(){var wkb=new BinaryWriter(this._getWkbSize());wkb.writeInt8(1);this._writeWkbType(wkb,Types.wkb.MultiLineString);wkb.writeUInt32LE(this.lineStrings.length);for(var i=0;i<this.lineStrings.length;i++)wkb.writeBuffer(this.lineStrings[i].toWkb({srid:this.srid}));return wkb.buffer};MultiLineString.prototype.toTwkb=function(){var twkb=new BinaryWriter(0,true);var precision=Geometry.getTwkbPrecision(5,0,0);var isEmpty=this.lineStrings.length===0;this._writeTwkbHeader(twkb,Types.wkb.MultiLineString,precision,isEmpty);if(this.lineStrings.length>0){twkb.writeVarInt(this.lineStrings.length);var previousPoint=new Point(0,0,0,0);for(var i=0;i<this.lineStrings.length;i++){twkb.writeVarInt(this.lineStrings[i].points.length);for(var j=0;j<this.lineStrings[i].points.length;j++)this.lineStrings[i].points[j]._writeTwkbPoint(twkb,precision,previousPoint)}}return twkb.buffer};MultiLineString.prototype._getWkbSize=function(){var size=1+4+4;for(var i=0;i<this.lineStrings.length;i++)size+=this.lineStrings[i]._getWkbSize();return size};MultiLineString.prototype.toGeoJSON=function(options){var geoJSON=Geometry.prototype.toGeoJSON.call(this,options);geoJSON.type=Types.geoJSON.MultiLineString;geoJSON.coordinates=[];for(var i=0;i<this.lineStrings.length;i++)geoJSON.coordinates.push(this.lineStrings[i].toGeoJSON().coordinates);return geoJSON}},{"./binarywriter":"/data/github/geopackage-node/node_modules/wkx/lib/binarywriter.js","./geometry":"/data/github/geopackage-node/node_modules/wkx/lib/geometry.js","./linestring":"/data/github/geopackage-node/node_modules/wkx/lib/linestring.js","./point":"/data/github/geopackage-node/node_modules/wkx/lib/point.js","./types":"/data/github/geopackage-node/node_modules/wkx/lib/types.js","./zigzag.js":"/data/github/geopackage-node/node_modules/wkx/lib/zigzag.js",util:"/data/github/geopackage-node/node_modules/browserify/node_modules/util/util.js"}],"/data/github/geopackage-node/node_modules/wkx/lib/multipoint.js":[function(require,module,exports){module.exports=MultiPoint;var util=require("util");var Types=require("./types");var Geometry=require("./geometry");var Point=require("./point");var BinaryWriter=require("./binarywriter");var ZigZag=require("./zigzag");function MultiPoint(points){Geometry.call(this);this.points=points||[]}util.inherits(MultiPoint,Geometry);MultiPoint.Z=function(points){var multiPoint=new MultiPoint(points);multiPoint.hasZ=true;return multiPoint};MultiPoint.M=function(points){var multiPoint=new MultiPoint(points);multiPoint.hasM=true;return multiPoint};MultiPoint.ZM=function(points){var multiPoint=new MultiPoint(points);multiPoint.hasZ=true;multiPoint.hasM=true;return multiPoint};MultiPoint._parseWkt=function(value,options){var multiPoint=new MultiPoint;multiPoint.srid=options.srid;multiPoint.hasZ=options.hasZ;multiPoint.hasM=options.hasM;if(value.isMatch(["EMPTY"]))return multiPoint;value.expectGroupStart();multiPoint.points.push.apply(multiPoint.points,value.matchCoordinates(options));value.expectGroupEnd();return multiPoint};MultiPoint._parseWkb=function(value,options){var multiPoint=new MultiPoint;multiPoint.srid=options.srid;multiPoint.hasZ=options.hasZ;multiPoint.hasM=options.hasM;var pointCount=value.readUInt32();for(var i=0;i<pointCount;i++)multiPoint.points.push(Geometry.parse(value,options));return multiPoint};MultiPoint._parseTwkb=function(value,options){var multiPoint=new MultiPoint;multiPoint.hasZ=options.hasZ;multiPoint.hasM=options.hasM;if(options.isEmpty)return multiPoint;var previousPoint=new Point(0,0,options.hasZ?0:undefined,options.hasM?0:undefined);var pointCount=value.readVarInt();for(var i=0;i<pointCount;i++)multiPoint.points.push(Point._readTwkbPoint(value,options,previousPoint));return multiPoint};MultiPoint._parseGeoJSON=function(value){var multiPoint=new MultiPoint;if(value.coordinates.length>0)multiPoint.hasZ=value.coordinates[0].length>2;for(var i=0;i<value.coordinates.length;i++)multiPoint.points.push(Point._parseGeoJSON({coordinates:value.coordinates[i]}));return multiPoint};MultiPoint.prototype.toWkt=function(){if(this.points.length===0)return this._getWktType(Types.wkt.MultiPoint,true);var wkt=this._getWktType(Types.wkt.MultiPoint,false)+"(";for(var i=0;i<this.points.length;i++)wkt+=this._getWktCoordinate(this.points[i])+",";wkt=wkt.slice(0,-1);wkt+=")";return wkt};MultiPoint.prototype.toWkb=function(){var wkb=new BinaryWriter(this._getWkbSize());wkb.writeInt8(1);this._writeWkbType(wkb,Types.wkb.MultiPoint);wkb.writeUInt32LE(this.points.length);for(var i=0;i<this.points.length;i++)wkb.writeBuffer(this.points[i].toWkb({srid:this.srid}));return wkb.buffer};MultiPoint.prototype.toTwkb=function(){var twkb=new BinaryWriter(0,true);var precision=Geometry.getTwkbPrecision(5,0,0);var isEmpty=this.points.length===0;this._writeTwkbHeader(twkb,Types.wkb.MultiPoint,precision,isEmpty);if(this.points.length>0){twkb.writeVarInt(this.points.length);var previousPoint=new Point(0,0,0,0);for(var i=0;i<this.points.length;i++)this.points[i]._writeTwkbPoint(twkb,precision,previousPoint)}return twkb.buffer};MultiPoint.prototype._getWkbSize=function(){var coordinateSize=16;if(this.hasZ)coordinateSize+=8;if(this.hasM)coordinateSize+=8;coordinateSize+=5;return 1+4+4+this.points.length*coordinateSize};MultiPoint.prototype.toGeoJSON=function(options){var geoJSON=Geometry.prototype.toGeoJSON.call(this,options);geoJSON.type=Types.geoJSON.MultiPoint;geoJSON.coordinates=[];for(var i=0;i<this.points.length;i++)geoJSON.coordinates.push(this.points[i].toGeoJSON().coordinates);return geoJSON}},{"./binarywriter":"/data/github/geopackage-node/node_modules/wkx/lib/binarywriter.js","./geometry":"/data/github/geopackage-node/node_modules/wkx/lib/geometry.js","./point":"/data/github/geopackage-node/node_modules/wkx/lib/point.js","./types":"/data/github/geopackage-node/node_modules/wkx/lib/types.js","./zigzag":"/data/github/geopackage-node/node_modules/wkx/lib/zigzag.js",util:"/data/github/geopackage-node/node_modules/browserify/node_modules/util/util.js"}],"/data/github/geopackage-node/node_modules/wkx/lib/multipolygon.js":[function(require,module,exports){module.exports=MultiPolygon;var util=require("util");var Types=require("./types");var Geometry=require("./geometry");var Point=require("./point");var Polygon=require("./polygon");var BinaryWriter=require("./binarywriter");var ZigZag=require("./zigzag.js");function MultiPolygon(polygons){Geometry.call(this);this.polygons=polygons||[]}util.inherits(MultiPolygon,Geometry);MultiPolygon.Z=function(polygons){var multiPolygon=new MultiPolygon(polygons);multiPolygon.hasZ=true;return multiPolygon};MultiPolygon.M=function(polygons){var multiPolygon=new MultiPolygon(polygons);multiPolygon.hasM=true;return multiPolygon};MultiPolygon.ZM=function(polygons){var multiPolygon=new MultiPolygon(polygons);multiPolygon.hasZ=true;multiPolygon.hasM=true;return multiPolygon};MultiPolygon._parseWkt=function(value,options){var multiPolygon=new MultiPolygon;multiPolygon.srid=options.srid;multiPolygon.hasZ=options.hasZ;multiPolygon.hasM=options.hasM;if(value.isMatch(["EMPTY"]))return multiPolygon;value.expectGroupStart();do{value.expectGroupStart();var exteriorRing=[];var interiorRings=[];value.expectGroupStart();exteriorRing.push.apply(exteriorRing,value.matchCoordinates(options));value.expectGroupEnd();while(value.isMatch([","])){value.expectGroupStart();interiorRings.push(value.matchCoordinates(options));value.expectGroupEnd()}multiPolygon.polygons.push(new Polygon(exteriorRing,interiorRings));value.expectGroupEnd()}while(value.isMatch([","]));value.expectGroupEnd();return multiPolygon};MultiPolygon._parseWkb=function(value,options){var multiPolygon=new MultiPolygon;multiPolygon.srid=options.srid;multiPolygon.hasZ=options.hasZ;multiPolygon.hasM=options.hasM;var polygonCount=value.readUInt32();for(var i=0;i<polygonCount;i++)multiPolygon.polygons.push(Geometry.parse(value,options));return multiPolygon};MultiPolygon._parseTwkb=function(value,options){var multiPolygon=new MultiPolygon;multiPolygon.hasZ=options.hasZ;multiPolygon.hasM=options.hasM;if(options.isEmpty)return multiPolygon;var previousPoint=new Point(0,0,options.hasZ?0:undefined,options.hasM?0:undefined);var polygonCount=value.readVarInt();for(var i=0;i<polygonCount;i++){var polygon=new Polygon;polygon.hasZ=options.hasZ;polygon.hasM=options.hasM;var ringCount=value.readVarInt();var exteriorRingCount=value.readVarInt();for(var j=0;j<exteriorRingCount;j++)polygon.exteriorRing.push(Point._readTwkbPoint(value,options,previousPoint));for(j=1;j<ringCount;j++){var interiorRing=[];var interiorRingCount=value.readVarInt();for(var k=0;k<interiorRingCount;k++)interiorRing.push(Point._readTwkbPoint(value,options,previousPoint));polygon.interiorRings.push(interiorRing)}multiPolygon.polygons.push(polygon)}return multiPolygon};MultiPolygon._parseGeoJSON=function(value){var multiPolygon=new MultiPolygon;if(value.coordinates.length>0&&value.coordinates[0].length>0&&value.coordinates[0][0].length>0)multiPolygon.hasZ=value.coordinates[0][0][0].length>2;for(var i=0;i<value.coordinates.length;i++)multiPolygon.polygons.push(Polygon._parseGeoJSON({coordinates:value.coordinates[i]}));return multiPolygon};MultiPolygon.prototype.toWkt=function(){if(this.polygons.length===0)return this._getWktType(Types.wkt.MultiPolygon,true);var wkt=this._getWktType(Types.wkt.MultiPolygon,false)+"(";for(var i=0;i<this.polygons.length;i++)wkt+=this.polygons[i]._toInnerWkt()+",";wkt=wkt.slice(0,-1);wkt+=")";return wkt};MultiPolygon.prototype.toWkb=function(){var wkb=new BinaryWriter(this._getWkbSize());wkb.writeInt8(1);this._writeWkbType(wkb,Types.wkb.MultiPolygon);wkb.writeUInt32LE(this.polygons.length);for(var i=0;i<this.polygons.length;i++)wkb.writeBuffer(this.polygons[i].toWkb({srid:this.srid}));return wkb.buffer};MultiPolygon.prototype.toTwkb=function(){var twkb=new BinaryWriter(0,true);var precision=Geometry.getTwkbPrecision(5,0,0);var isEmpty=this.polygons.length===0;this._writeTwkbHeader(twkb,Types.wkb.MultiPolygon,precision,isEmpty);if(this.polygons.length>0){twkb.writeVarInt(this.polygons.length);var previousPoint=new Point(0,0,0,0);for(var i=0;i<this.polygons.length;i++){twkb.writeVarInt(1+this.polygons[i].interiorRings.length);twkb.writeVarInt(this.polygons[i].exteriorRing.length);for(var j=0;j<this.polygons[i].exteriorRing.length;j++)this.polygons[i].exteriorRing[j]._writeTwkbPoint(twkb,precision,previousPoint);for(j=0;j<this.polygons[i].interiorRings.length;j++){twkb.writeVarInt(this.polygons[i].interiorRings[j].length);for(var k=0;k<this.polygons[i].interiorRings[j].length;k++)this.polygons[i].interiorRings[j][k]._writeTwkbPoint(twkb,precision,previousPoint)}}}return twkb.buffer};MultiPolygon.prototype._getWkbSize=function(){var size=1+4+4;for(var i=0;i<this.polygons.length;i++)size+=this.polygons[i]._getWkbSize();return size};MultiPolygon.prototype.toGeoJSON=function(options){var geoJSON=Geometry.prototype.toGeoJSON.call(this,options);geoJSON.type=Types.geoJSON.MultiPolygon;geoJSON.coordinates=[];for(var i=0;i<this.polygons.length;i++)geoJSON.coordinates.push(this.polygons[i].toGeoJSON().coordinates);return geoJSON}},{"./binarywriter":"/data/github/geopackage-node/node_modules/wkx/lib/binarywriter.js","./geometry":"/data/github/geopackage-node/node_modules/wkx/lib/geometry.js","./point":"/data/github/geopackage-node/node_modules/wkx/lib/point.js","./polygon":"/data/github/geopackage-node/node_modules/wkx/lib/polygon.js","./types":"/data/github/geopackage-node/node_modules/wkx/lib/types.js","./zigzag.js":"/data/github/geopackage-node/node_modules/wkx/lib/zigzag.js",util:"/data/github/geopackage-node/node_modules/browserify/node_modules/util/util.js"}],"/data/github/geopackage-node/node_modules/wkx/lib/point.js":[function(require,module,exports){module.exports=Point;var util=require("util");var Geometry=require("./geometry");var Types=require("./types");var BinaryWriter=require("./binarywriter");var ZigZag=require("./zigzag.js");function Point(x,y,z,m){Geometry.call(this);this.x=x;this.y=y;this.z=z;this.m=m;this.hasZ=typeof this.z!=="undefined";this.hasM=typeof this.m!=="undefined"}util.inherits(Point,Geometry);Point.Z=function(x,y,z){var point=new Point(x,y,z);point.hasZ=true;return point};Point.M=function(x,y,m){var point=new Point(x,y,undefined,m);point.hasM=true;return point};Point.ZM=function(x,y,z,m){var point=new Point(x,y,z,m);point.hasZ=true;point.hasM=true;return point};Point._parseWkt=function(value,options){var point=new Point;point.srid=options.srid;point.hasZ=options.hasZ;point.hasM=options.hasM;if(value.isMatch(["EMPTY"]))return point;value.expectGroupStart();var coordinate=value.matchCoordinate(options);point.x=coordinate.x;point.y=coordinate.y;point.z=coordinate.z;point.m=coordinate.m;value.expectGroupEnd();return point};Point._parseWkb=function(value,options){var point=Point._readWkbPoint(value,options);point.srid=options.srid;return point};Point._readWkbPoint=function(value,options){return new Point(value.readDouble(),value.readDouble(),options.hasZ?value.readDouble():undefined,options.hasM?value.readDouble():undefined)};Point._parseTwkb=function(value,options){var point=new Point;point.hasZ=options.hasZ;point.hasM=options.hasM;if(options.isEmpty)return point;point.x=ZigZag.decode(value.readVarInt())/options.precisionFactor;point.y=ZigZag.decode(value.readVarInt())/options.precisionFactor;point.z=options.hasZ?ZigZag.decode(value.readVarInt())/options.zPrecisionFactor:undefined;point.m=options.hasM?ZigZag.decode(value.readVarInt())/options.mPrecisionFactor:undefined;return point};Point._readTwkbPoint=function(value,options,previousPoint){previousPoint.x+=ZigZag.decode(value.readVarInt())/options.precisionFactor;previousPoint.y+=ZigZag.decode(value.readVarInt())/options.precisionFactor;if(options.hasZ)previousPoint.z+=ZigZag.decode(value.readVarInt())/options.zPrecisionFactor;if(options.hasM)previousPoint.m+=ZigZag.decode(value.readVarInt())/options.mPrecisionFactor;return new Point(previousPoint.x,previousPoint.y,previousPoint.z,previousPoint.m)};Point._parseGeoJSON=function(value){return Point._readGeoJSONPoint(value.coordinates)};Point._readGeoJSONPoint=function(coordinates){if(coordinates.length===0)return new Point;if(coordinates.length>2)return new Point(coordinates[0],coordinates[1],coordinates[2]);return new Point(coordinates[0],coordinates[1])};Point.prototype.toWkt=function(){if(typeof this.x==="undefined"&&typeof this.y==="undefined"&&typeof this.z==="undefined"&&typeof this.m==="undefined")return this._getWktType(Types.wkt.Point,true);return this._getWktType(Types.wkt.Point,false)+"("+this._getWktCoordinate(this)+")"};Point.prototype.toWkb=function(parentOptions){var wkb=new BinaryWriter(this._getWkbSize());wkb.writeInt8(1);if(typeof this.x==="undefined"&&typeof this.y==="undefined"){this._writeWkbType(wkb,Types.wkb.MultiPoint,parentOptions);wkb.writeUInt32LE(0)}else{this._writeWkbType(wkb,Types.wkb.Point,parentOptions);this._writeWkbPoint(wkb)}return wkb.buffer};Point.prototype._writeWkbPoint=function(wkb){wkb.writeDoubleLE(this.x);wkb.writeDoubleLE(this.y);if(this.hasZ)wkb.writeDoubleLE(this.z);if(this.hasM)wkb.writeDoubleLE(this.m)};Point.prototype.toTwkb=function(){var twkb=new BinaryWriter(0,true);var precision=Geometry.getTwkbPrecision(5,0,0);var isEmpty=typeof this.x==="undefined"&&typeof this.y==="undefined";this._writeTwkbHeader(twkb,Types.wkb.Point,precision,isEmpty);if(!isEmpty)this._writeTwkbPoint(twkb,precision,new Point(0,0,0,0));return twkb.buffer};Point.prototype._writeTwkbPoint=function(twkb,precision,previousPoint){var x=this.x*precision.xyFactor;var y=this.y*precision.xyFactor;var z=this.z*precision.zFactor;var m=this.m*precision.mFactor;twkb.writeVarInt(ZigZag.encode(x-previousPoint.x));twkb.writeVarInt(ZigZag.encode(y-previousPoint.y));if(this.hasZ)twkb.writeVarInt(ZigZag.encode(z-previousPoint.z));if(this.hasM)twkb.writeVarInt(ZigZag.encode(m-previousPoint.m));previousPoint.x=x;previousPoint.y=y;previousPoint.z=z;previousPoint.m=m};Point.prototype._getWkbSize=function(){if(typeof this.x==="undefined"&&typeof this.y==="undefined")return 1+4+4;var size=1+4+8+8;if(this.hasZ)size+=8;if(this.hasM)size+=8;return size};Point.prototype.toGeoJSON=function(options){var geoJSON=Geometry.prototype.toGeoJSON.call(this,options);geoJSON.type=Types.geoJSON.Point;if(typeof this.x==="undefined"&&typeof this.y==="undefined")geoJSON.coordinates=[];else if(typeof this.z!=="undefined")geoJSON.coordinates=[this.x,this.y,this.z];else geoJSON.coordinates=[this.x,this.y];return geoJSON}},{"./binarywriter":"/data/github/geopackage-node/node_modules/wkx/lib/binarywriter.js","./geometry":"/data/github/geopackage-node/node_modules/wkx/lib/geometry.js","./types":"/data/github/geopackage-node/node_modules/wkx/lib/types.js","./zigzag.js":"/data/github/geopackage-node/node_modules/wkx/lib/zigzag.js",util:"/data/github/geopackage-node/node_modules/browserify/node_modules/util/util.js"}],"/data/github/geopackage-node/node_modules/wkx/lib/polygon.js":[function(require,module,exports){module.exports=Polygon;var util=require("util");
  97. var Geometry=require("./geometry");var Types=require("./types");var Point=require("./point");var BinaryWriter=require("./binarywriter");var ZigZag=require("./zigzag");function Polygon(exteriorRing,interiorRings){Geometry.call(this);this.exteriorRing=exteriorRing||[];this.interiorRings=interiorRings||[];if(this.exteriorRing.length>0){this.hasZ=this.exteriorRing[0].hasZ;this.hasM=this.exteriorRing[0].hasM}}util.inherits(Polygon,Geometry);Polygon.Z=function(exteriorRing,interiorRings){var polygon=new Polygon(exteriorRing,interiorRings);polygon.hasZ=true;return polygon};Polygon.M=function(exteriorRing,interiorRings){var polygon=new Polygon(exteriorRing,interiorRings);polygon.hasM=true;return polygon};Polygon.ZM=function(exteriorRing,interiorRings){var polygon=new Polygon(exteriorRing,interiorRings);polygon.hasZ=true;polygon.hasM=true;return polygon};Polygon._parseWkt=function(value,options){var polygon=new Polygon;polygon.srid=options.srid;polygon.hasZ=options.hasZ;polygon.hasM=options.hasM;if(value.isMatch(["EMPTY"]))return polygon;value.expectGroupStart();value.expectGroupStart();polygon.exteriorRing.push.apply(polygon.exteriorRing,value.matchCoordinates(options));value.expectGroupEnd();while(value.isMatch([","])){value.expectGroupStart();polygon.interiorRings.push(value.matchCoordinates(options));value.expectGroupEnd()}value.expectGroupEnd();return polygon};Polygon._parseWkb=function(value,options){var polygon=new Polygon;polygon.srid=options.srid;polygon.hasZ=options.hasZ;polygon.hasM=options.hasM;var ringCount=value.readUInt32();if(ringCount>0){var exteriorRingCount=value.readUInt32();for(var i=0;i<exteriorRingCount;i++)polygon.exteriorRing.push(Point._readWkbPoint(value,options));for(i=1;i<ringCount;i++){var interiorRing=[];var interiorRingCount=value.readUInt32();for(var j=0;j<interiorRingCount;j++)interiorRing.push(Point._readWkbPoint(value,options));polygon.interiorRings.push(interiorRing)}}return polygon};Polygon._parseTwkb=function(value,options){var polygon=new Polygon;polygon.hasZ=options.hasZ;polygon.hasM=options.hasM;if(options.isEmpty)return polygon;var previousPoint=new Point(0,0,options.hasZ?0:undefined,options.hasM?0:undefined);var ringCount=value.readVarInt();var exteriorRingCount=value.readVarInt();for(var i=0;i<exteriorRingCount;i++)polygon.exteriorRing.push(Point._readTwkbPoint(value,options,previousPoint));for(i=1;i<ringCount;i++){var interiorRing=[];var interiorRingCount=value.readVarInt();for(var j=0;j<interiorRingCount;j++)interiorRing.push(Point._readTwkbPoint(value,options,previousPoint));polygon.interiorRings.push(interiorRing)}return polygon};Polygon._parseGeoJSON=function(value){var polygon=new Polygon;if(value.coordinates.length>0&&value.coordinates[0].length>0)polygon.hasZ=value.coordinates[0][0].length>2;for(var i=0;i<value.coordinates.length;i++){if(i>0)polygon.interiorRings.push([]);for(var j=0;j<value.coordinates[i].length;j++){if(i===0)polygon.exteriorRing.push(Point._readGeoJSONPoint(value.coordinates[i][j]));else polygon.interiorRings[i-1].push(Point._readGeoJSONPoint(value.coordinates[i][j]))}}return polygon};Polygon.prototype.toWkt=function(){if(this.exteriorRing.length===0)return this._getWktType(Types.wkt.Polygon,true);return this._getWktType(Types.wkt.Polygon,false)+this._toInnerWkt()};Polygon.prototype._toInnerWkt=function(){var innerWkt="((";for(var i=0;i<this.exteriorRing.length;i++)innerWkt+=this._getWktCoordinate(this.exteriorRing[i])+",";innerWkt=innerWkt.slice(0,-1);innerWkt+=")";for(i=0;i<this.interiorRings.length;i++){innerWkt+=",(";for(var j=0;j<this.interiorRings[i].length;j++){innerWkt+=this._getWktCoordinate(this.interiorRings[i][j])+","}innerWkt=innerWkt.slice(0,-1);innerWkt+=")"}innerWkt+=")";return innerWkt};Polygon.prototype.toWkb=function(parentOptions){var wkb=new BinaryWriter(this._getWkbSize());wkb.writeInt8(1);this._writeWkbType(wkb,Types.wkb.Polygon,parentOptions);if(this.exteriorRing.length>0){wkb.writeUInt32LE(1+this.interiorRings.length);wkb.writeUInt32LE(this.exteriorRing.length)}else{wkb.writeUInt32LE(0)}for(var i=0;i<this.exteriorRing.length;i++)this.exteriorRing[i]._writeWkbPoint(wkb);for(i=0;i<this.interiorRings.length;i++){wkb.writeUInt32LE(this.interiorRings[i].length);for(var j=0;j<this.interiorRings[i].length;j++)this.interiorRings[i][j]._writeWkbPoint(wkb)}return wkb.buffer};Polygon.prototype.toTwkb=function(){var twkb=new BinaryWriter(0,true);var precision=Geometry.getTwkbPrecision(5,0,0);var isEmpty=this.exteriorRing.length===0;this._writeTwkbHeader(twkb,Types.wkb.Polygon,precision,isEmpty);if(this.exteriorRing.length>0){twkb.writeVarInt(1+this.interiorRings.length);twkb.writeVarInt(this.exteriorRing.length);var previousPoint=new Point(0,0,0,0);for(var i=0;i<this.exteriorRing.length;i++)this.exteriorRing[i]._writeTwkbPoint(twkb,precision,previousPoint);for(i=0;i<this.interiorRings.length;i++){twkb.writeVarInt(this.interiorRings[i].length);for(var j=0;j<this.interiorRings[i].length;j++)this.interiorRings[i][j]._writeTwkbPoint(twkb,precision,previousPoint)}}return twkb.buffer};Polygon.prototype._getWkbSize=function(){var coordinateSize=16;if(this.hasZ)coordinateSize+=8;if(this.hasM)coordinateSize+=8;var size=1+4+4;if(this.exteriorRing.length>0)size+=4+this.exteriorRing.length*coordinateSize;for(var i=0;i<this.interiorRings.length;i++)size+=4+this.interiorRings[i].length*coordinateSize;return size};Polygon.prototype.toGeoJSON=function(options){var geoJSON=Geometry.prototype.toGeoJSON.call(this,options);geoJSON.type=Types.geoJSON.Polygon;geoJSON.coordinates=[];if(this.exteriorRing.length>0){var exteriorRing=[];for(var i=0;i<this.exteriorRing.length;i++){if(this.hasZ)exteriorRing.push([this.exteriorRing[i].x,this.exteriorRing[i].y,this.exteriorRing[i].z]);else exteriorRing.push([this.exteriorRing[i].x,this.exteriorRing[i].y])}geoJSON.coordinates.push(exteriorRing)}for(var j=0;j<this.interiorRings.length;j++){var interiorRing=[];for(var k=0;k<this.interiorRings[j].length;k++){if(this.hasZ)interiorRing.push([this.interiorRings[j][k].x,this.interiorRings[j][k].y,this.interiorRings[j][k].z]);else interiorRing.push([this.interiorRings[j][k].x,this.interiorRings[j][k].y])}geoJSON.coordinates.push(interiorRing)}return geoJSON}},{"./binarywriter":"/data/github/geopackage-node/node_modules/wkx/lib/binarywriter.js","./geometry":"/data/github/geopackage-node/node_modules/wkx/lib/geometry.js","./point":"/data/github/geopackage-node/node_modules/wkx/lib/point.js","./types":"/data/github/geopackage-node/node_modules/wkx/lib/types.js","./zigzag":"/data/github/geopackage-node/node_modules/wkx/lib/zigzag.js",util:"/data/github/geopackage-node/node_modules/browserify/node_modules/util/util.js"}],"/data/github/geopackage-node/node_modules/wkx/lib/types.js":[function(require,module,exports){module.exports={wkt:{Point:"POINT",LineString:"LINESTRING",Polygon:"POLYGON",MultiPoint:"MULTIPOINT",MultiLineString:"MULTILINESTRING",MultiPolygon:"MULTIPOLYGON",GeometryCollection:"GEOMETRYCOLLECTION"},wkb:{Point:1,LineString:2,Polygon:3,MultiPoint:4,MultiLineString:5,MultiPolygon:6,GeometryCollection:7},geoJSON:{Point:"Point",LineString:"LineString",Polygon:"Polygon",MultiPoint:"MultiPoint",MultiLineString:"MultiLineString",MultiPolygon:"MultiPolygon",GeometryCollection:"GeometryCollection"}}},{}],"/data/github/geopackage-node/node_modules/wkx/lib/wktparser.js":[function(require,module,exports){module.exports=WktParser;var Types=require("./types");var Point=require("./point");function WktParser(value){this.value=value;this.position=0}WktParser.prototype.match=function(tokens){this.skipWhitespaces();for(var i=0;i<tokens.length;i++){if(this.value.substring(this.position).indexOf(tokens[i])===0){this.position+=tokens[i].length;return tokens[i]}}return null};WktParser.prototype.matchRegex=function(tokens){this.skipWhitespaces();for(var i=0;i<tokens.length;i++){var match=this.value.substring(this.position).match(tokens[i]);if(match){this.position+=match[0].length;return match}}return null};WktParser.prototype.isMatch=function(tokens){this.skipWhitespaces();for(var i=0;i<tokens.length;i++){if(this.value.substring(this.position).indexOf(tokens[i])===0){this.position+=tokens[i].length;return true}}return false};WktParser.prototype.matchType=function(){var geometryType=this.match([Types.wkt.Point,Types.wkt.LineString,Types.wkt.Polygon,Types.wkt.MultiPoint,Types.wkt.MultiLineString,Types.wkt.MultiPolygon,Types.wkt.GeometryCollection]);if(!geometryType)throw new Error("Expected geometry type");return geometryType};WktParser.prototype.matchDimension=function(){var dimension=this.match(["ZM","Z","M"]);switch(dimension){case"ZM":return{hasZ:true,hasM:true};case"Z":return{hasZ:true,hasM:false};case"M":return{hasZ:false,hasM:true};default:return{hasZ:false,hasM:false}}};WktParser.prototype.expectGroupStart=function(){if(!this.isMatch(["("]))throw new Error("Expected group start")};WktParser.prototype.expectGroupEnd=function(){if(!this.isMatch([")"]))throw new Error("Expected group end")};WktParser.prototype.matchCoordinate=function(options){var match;if(options.hasZ&&options.hasM)match=this.matchRegex([/^(-?\d+\.?\d*)\s+(-?\d+\.?\d*)\s+(-?\d+\.?\d*)\s+(-?\d+\.?\d*)/]);else if(options.hasZ||options.hasM)match=this.matchRegex([/^(-?\d+\.?\d*)\s+(-?\d+\.?\d*)\s+(-?\d+\.?\d*)/]);else match=this.matchRegex([/^(-?\d+\.?\d*)\s+(-?\d+\.?\d*)/]);if(!match)throw new Error("Expected coordinates");if(options.hasZ&&options.hasM)return new Point(parseFloat(match[1]),parseFloat(match[2]),parseFloat(match[3]),parseFloat(match[4]));else if(options.hasZ)return new Point(parseFloat(match[1]),parseFloat(match[2]),parseFloat(match[3]));else if(options.hasM)return new Point(parseFloat(match[1]),parseFloat(match[2]),undefined,parseFloat(match[3]));else return new Point(parseFloat(match[1]),parseFloat(match[2]))};WktParser.prototype.matchCoordinates=function(options){var coordinates=[];do{var startsWithBracket=this.isMatch(["("]);coordinates.push(this.matchCoordinate(options));if(startsWithBracket)this.expectGroupEnd()}while(this.isMatch([","]));return coordinates};WktParser.prototype.skipWhitespaces=function(){while(this.position<this.value.length&&this.value[this.position]===" ")this.position++}},{"./point":"/data/github/geopackage-node/node_modules/wkx/lib/point.js","./types":"/data/github/geopackage-node/node_modules/wkx/lib/types.js"}],"/data/github/geopackage-node/node_modules/wkx/lib/wkx.js":[function(require,module,exports){exports.Types=require("./types");exports.Geometry=require("./geometry");exports.Point=require("./point");exports.LineString=require("./linestring");exports.Polygon=require("./polygon");exports.MultiPoint=require("./multipoint");exports.MultiLineString=require("./multilinestring");exports.MultiPolygon=require("./multipolygon");exports.GeometryCollection=require("./geometrycollection")},{"./geometry":"/data/github/geopackage-node/node_modules/wkx/lib/geometry.js","./geometrycollection":"/data/github/geopackage-node/node_modules/wkx/lib/geometrycollection.js","./linestring":"/data/github/geopackage-node/node_modules/wkx/lib/linestring.js","./multilinestring":"/data/github/geopackage-node/node_modules/wkx/lib/multilinestring.js","./multipoint":"/data/github/geopackage-node/node_modules/wkx/lib/multipoint.js","./multipolygon":"/data/github/geopackage-node/node_modules/wkx/lib/multipolygon.js","./point":"/data/github/geopackage-node/node_modules/wkx/lib/point.js","./polygon":"/data/github/geopackage-node/node_modules/wkx/lib/polygon.js","./types":"/data/github/geopackage-node/node_modules/wkx/lib/types.js"}],"/data/github/geopackage-node/node_modules/wkx/lib/zigzag.js":[function(require,module,exports){module.exports={encode:function(value){return value<<1^value>>31},decode:function(value){return value>>1^-(value&1)}}},{}]},{},["/data/github/geopackage-node/index.js"])("/data/github/geopackage-node/index.js")});